From cefa0397bb8771f3aef819887159439af6277f9c Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Thu, 4 Jun 2026 10:41:46 -0700 Subject: [PATCH] More fixes to package and library fingerprinting. (#7297) Fix import logic to make all imported packages be children of the `NameScopeId::Package` scope. Previously, indirectly-imported packages would end up as children of their importing package's scope, which resulted in them not being treated as packages at all, and in particular not being fingerprinted as packages. Fixing that caused a failure in the fingerprinting logic as we started to encounter packages with no correspoding import scopes. Instead of looking for import scopes, use a simpler mechanism to map packages to their package names, and clean up. Unfortunately the latter change churns all the fingerprints again :( Hopefully this is the last time for a while. --- toolchain/check/import_ref.cpp | 2 +- toolchain/check/testdata/alias/basics.carbon | 10 +- .../check/testdata/alias/export_name.carbon | 70 +- toolchain/check/testdata/alias/import.carbon | 96 +- .../check/testdata/alias/import_access.carbon | 4 +- .../check/testdata/alias/import_order.carbon | 50 +- toolchain/check/testdata/array/basics.carbon | 84 +- .../check/testdata/array/bound_values.carbon | 86 +- toolchain/check/testdata/array/import.carbon | 50 +- .../testdata/array/index_not_literal.carbon | 164 +- .../array/init_dependent_bound.carbon | 110 +- .../testdata/as/adapter_conversion.carbon | 154 +- toolchain/check/testdata/as/basics.carbon | 108 +- toolchain/check/testdata/as/const.carbon | 96 +- .../check/testdata/as/maybe_unformed.carbon | 140 +- toolchain/check/testdata/as/partial.carbon | 170 +- toolchain/check/testdata/as/var_init.carbon | 22 +- .../testdata/basics/include_in_dumps.carbon | 128 +- toolchain/check/testdata/basics/parens.carbon | 72 +- .../check/testdata/builtins/bool/eq.carbon | 56 +- .../check/testdata/builtins/bool/neq.carbon | 56 +- .../check/testdata/builtins/float/add.carbon | 10 +- .../testdata/builtins/float/convert.carbon | 544 +- .../builtins/float/convert_checked.carbon | 618 +- .../builtins/float/convert_int.carbon | 254 +- .../check/testdata/builtins/float/div.carbon | 10 +- .../check/testdata/builtins/float/eq.carbon | 8 +- .../testdata/builtins/float/greater.carbon | 8 +- .../testdata/builtins/float/greater_eq.carbon | 8 +- .../check/testdata/builtins/float/less.carbon | 8 +- .../testdata/builtins/float/less_eq.carbon | 8 +- .../check/testdata/builtins/float/mul.carbon | 10 +- .../testdata/builtins/float/negate.carbon | 8 +- .../check/testdata/builtins/float/neq.carbon | 8 +- .../check/testdata/builtins/float/sub.carbon | 10 +- .../builtins/int/convert_checked.carbon | 88 +- .../builtins/int/convert_float.carbon | 70 +- .../builtins/int/convert_float_checked.carbon | 16 +- .../testdata/builtins/pointer/is_null.carbon | 64 +- .../builtins/pointer/make_null.carbon | 60 +- .../check/testdata/builtins/print/char.carbon | 38 +- .../check/testdata/builtins/print/int.carbon | 80 +- .../check/testdata/builtins/read/char.carbon | 20 +- toolchain/check/testdata/choice/basic.carbon | 256 +- .../check/testdata/choice/generic.carbon | 6 +- .../testdata/class/abstract/abstract.carbon | 102 +- .../abstract/fail_abstract_in_struct.carbon | 54 +- .../abstract/fail_abstract_in_tuple.carbon | 54 +- .../class/access/access_modifers.carbon | 334 +- .../class/access/import_access.carbon | 8 +- .../class/access/inheritance_access.carbon | 428 +- .../class/access/todo_access_modifiers.carbon | 4 +- .../check/testdata/class/adapter/adapt.carbon | 8 +- .../testdata/class/adapter/adapt_copy.carbon | 546 +- .../class/adapter/extend_adapt.carbon | 126 +- .../adapter/fail_adapt_with_subobjects.carbon | 8 +- .../testdata/class/adapter/init_adapt.carbon | 228 +- toolchain/check/testdata/class/basic.carbon | 112 +- .../class/complete_in_member_fn.carbon | 44 +- .../class/cross_package_import.carbon | 12 +- .../check/testdata/class/destroy_calls.carbon | 212 +- .../check/testdata/class/export_name.carbon | 8 +- toolchain/check/testdata/class/extern.carbon | 8 +- .../class/field/compound_field.carbon | 176 +- .../testdata/class/field/field_access.carbon | 144 +- .../class/field/field_access_in_value.carbon | 146 +- .../class/field/field_initializer.carbon | 50 +- .../check/testdata/class/field/static.carbon | 80 +- .../testdata/class/forward_declared.carbon | 60 +- .../check/testdata/class/generic/adapt.carbon | 502 +- .../class/generic/base_is_generic.carbon | 490 +- .../check/testdata/class/generic/basic.carbon | 186 +- .../check/testdata/class/generic/call.carbon | 554 +- .../generic/complete_in_conversion.carbon | 184 +- .../check/testdata/class/generic/field.carbon | 344 +- .../class/generic/generic_vs_params.carbon | 138 +- .../testdata/class/generic/import.carbon | 510 +- .../check/testdata/class/generic/init.carbon | 450 +- .../class/generic/member_access.carbon | 366 +- .../class/generic/member_inline.carbon | 144 +- .../class/generic/member_lookup.carbon | 112 +- .../class/generic/member_out_of_line.carbon | 190 +- .../testdata/class/generic/member_type.carbon | 890 +-- .../class/generic/method_deduce.carbon | 232 +- .../testdata/class/generic/redeclare.carbon | 104 +- .../check/testdata/class/generic/self.carbon | 68 +- .../testdata/class/generic/stringify.carbon | 414 +- .../testdata/class/implicit_import.carbon | 18 +- toolchain/check/testdata/class/import.carbon | 310 +- .../testdata/class/import_indirect.carbon | 348 +- .../testdata/class/import_member_cycle.carbon | 42 +- .../testdata/class/import_struct_cycle.carbon | 98 +- .../class/indirect_import_member.carbon | 86 +- .../testdata/class/inheritance/base.carbon | 178 +- .../class/inheritance/base_field.carbon | 86 +- .../base_function_unqualified.carbon | 4 +- .../class/inheritance/base_method.carbon | 80 +- .../inheritance/base_method_qualified.carbon | 110 +- .../inheritance/base_method_shadow.carbon | 106 +- .../class/inheritance/derived_to_base.carbon | 396 +- .../class/inheritance/import_base.carbon | 186 +- .../class/inheritance/self_conversion.carbon | 136 +- toolchain/check/testdata/class/init.carbon | 142 +- toolchain/check/testdata/class/init_as.carbon | 138 +- .../check/testdata/class/init_nested.carbon | 32 +- toolchain/check/testdata/class/local.carbon | 92 +- .../class/method/generic_method.carbon | 18 +- .../check/testdata/class/method/method.carbon | 258 +- .../class/method/static_method.carbon | 50 +- .../testdata/class/method/virtual.carbon | 306 +- toolchain/check/testdata/class/nested.carbon | 324 +- .../check/testdata/class/nested_name.carbon | 82 +- .../check/testdata/class/partial/init.carbon | 10 +- .../testdata/class/partial/qualifier.carbon | 134 +- .../check/testdata/class/redeclaration.carbon | 10 +- .../check/testdata/class/reenter_scope.carbon | 22 +- toolchain/check/testdata/class/reorder.carbon | 56 +- .../testdata/class/reorder_qualified.carbon | 190 +- toolchain/check/testdata/class/scope.carbon | 100 +- .../testdata/class/self/fail_ref_self.carbon | 44 +- .../check/testdata/class/self/raw_self.carbon | 112 +- .../testdata/class/self/raw_self_type.carbon | 130 +- .../check/testdata/class/self/self.carbon | 88 +- .../testdata/class/self/self_type.carbon | 106 +- .../testdata/class/syntactic_merge.carbon | 138 +- .../class/syntactic_merge_literal.carbon | 196 +- toolchain/check/testdata/const/basics.carbon | 224 +- toolchain/check/testdata/const/import.carbon | 98 +- toolchain/check/testdata/deduce/array.carbon | 734 +-- .../testdata/deduce/binding_pattern.carbon | 268 +- .../check/testdata/deduce/conversion.carbon | 64 +- .../check/testdata/deduce/generic_type.carbon | 562 +- .../check/testdata/deduce/int_float.carbon | 76 +- toolchain/check/testdata/deduce/tuple.carbon | 344 +- .../testdata/deduce/type_operator.carbon | 212 +- .../value_with_type_through_access.carbon | 556 +- .../check/testdata/eval/aggregates.carbon | 904 +-- toolchain/check/testdata/eval/binding.carbon | 138 +- toolchain/check/testdata/eval/branch.carbon | 24 +- toolchain/check/testdata/eval/call.carbon | 210 +- toolchain/check/testdata/eval/symbolic.carbon | 38 +- toolchain/check/testdata/facet/access.carbon | 262 +- .../facet/call_combined_impl_witness.carbon | 328 +- ...t_class_type_to_generic_facet_value.carbon | 350 +- ...rt_class_value_to_facet_value_value.carbon | 36 +- ..._value_to_generic_facet_value_value.carbon | 540 +- ...t_value_as_type_knows_original_type.carbon | 46 +- .../convert_facet_value_to_itself.carbon | 36 +- ..._facet_value_to_narrowed_facet_type.carbon | 426 +- ...t_facet_value_value_to_blanket_impl.carbon | 162 +- ..._value_to_generic_facet_value_value.carbon | 434 +- ...convert_facet_value_value_to_itself.carbon | 58 +- .../testdata/facet/convert_interface.carbon | 12 +- .../testdata/facet/facet_assoc_const.carbon | 18 +- ...t_class_type_to_generic_facet_value.carbon | 112 +- ...convert_facet_value_to_missing_impl.carbon | 110 +- ...uction_uses_runtime_type_conversion.carbon | 118 +- .../check/testdata/facet/period_self.carbon | 160 +- .../testdata/facet/require_import.carbon | 194 +- .../check/testdata/facet/runtime_value.carbon | 8 +- .../facet/self_in_interface_param.carbon | 70 +- toolchain/check/testdata/for/actual.carbon | 1164 ++-- toolchain/check/testdata/for/basic.carbon | 114 +- toolchain/check/testdata/for/pattern.carbon | 730 +-- .../function/builtin/adapted_type.carbon | 94 +- .../testdata/function/builtin/call.carbon | 166 +- .../builtin/call_from_operator.carbon | 970 +-- .../function/builtin/definition.carbon | 18 +- .../function/builtin/fail_redefined.carbon | 150 +- .../testdata/function/builtin/method.carbon | 294 +- .../function/builtin/positional.carbon | 10 +- .../function/call/fail_param_count.carbon | 14 +- .../function/call/fail_param_type.carbon | 12 +- .../call/fail_return_type_mismatch.carbon | 74 +- .../check/testdata/function/call/form.carbon | 164 +- .../check/testdata/function/call/i32.carbon | 90 +- .../function/call/more_param_ir.carbon | 110 +- .../testdata/function/call/params_one.carbon | 48 +- .../function/call/params_one_comma.carbon | 56 +- .../testdata/function/call/params_two.carbon | 76 +- .../function/call/params_two_comma.carbon | 100 +- .../call/prefer_unqualified_lookup.carbon | 62 +- .../check/testdata/function/call/ref.carbon | 80 +- .../fail_import_incomplete_return.carbon | 44 +- .../declaration/fail_param_in_type.carbon | 6 +- .../declaration/fail_param_redecl.carbon | 10 +- .../function/declaration/fail_redecl.carbon | 24 +- .../function/declaration/import.carbon | 478 +- .../declaration/param_same_name.carbon | 10 +- .../testdata/function/declaration/ref.carbon | 12 +- .../fail_decl_param_mismatch.carbon | 72 +- .../function/definition/fail_redef.carbon | 12 +- .../definition/implicit_import.carbon | 12 +- .../function/definition/import.carbon | 160 +- .../function/definition/params_one.carbon | 6 +- .../definition/params_one_comma.carbon | 6 +- .../function/definition/params_two.carbon | 10 +- .../definition/params_two_comma.carbon | 10 +- .../definition/syntactic_merge.carbon | 122 +- .../testdata/function/generic/call.carbon | 424 +- .../call_method_on_generic_facet.carbon | 234 +- .../testdata/function/generic/deduce.carbon | 554 +- .../generic/deduce_nested_facet_value.carbon | 114 +- .../fail_deduce_imported_function.carbon | 56 +- .../function/generic/import_specific.carbon | 10 +- .../generic/indirect_generic_type.carbon | 30 +- .../function/generic/param_in_type.carbon | 66 +- .../function/generic/redeclare.carbon | 42 +- .../function/generic/resolve_used.carbon | 120 +- .../function/generic/return_slot.carbon | 168 +- .../function/generic/type_param.carbon | 44 +- .../function/generic/type_param_scope.carbon | 30 +- .../testdata/generic/call_basic_depth.carbon | 42 +- .../testdata/generic/complete_type.carbon | 102 +- .../testdata/generic/dependent_param.carbon | 276 +- .../generic/dot_self_symbolic_type.carbon | 340 +- toolchain/check/testdata/generic/local.carbon | 92 +- .../testdata/generic/template/convert.carbon | 206 +- .../generic/template/member_access.carbon | 254 +- .../generic/template/unimplemented.carbon | 154 +- .../generic/template_dependence.carbon | 30 +- .../check/testdata/generic/var_param.carbon | 82 +- toolchain/check/testdata/global/basics.carbon | 14 +- toolchain/check/testdata/if/basics.carbon | 16 +- toolchain/check/testdata/if_expr/basic.carbon | 98 +- .../if_expr/constant_condition.carbon | 250 +- .../testdata/if_expr/control_flow.carbon | 108 +- .../check/testdata/if_expr/nested.carbon | 136 +- .../check/testdata/if_expr/struct.carbon | 124 +- .../testdata/impl/assoc_const_self.carbon | 300 +- toolchain/check/testdata/impl/compound.carbon | 366 +- .../check/testdata/impl/error_recovery.carbon | 18 +- .../testdata/impl/extend_impl_generic.carbon | 376 +- .../check/testdata/impl/fail_alias.carbon | 12 +- .../testdata/impl/fail_call_invalid.carbon | 60 +- .../impl/fail_extend_impl_forall.carbon | 28 +- .../impl/fail_extend_impl_scope.carbon | 68 +- .../impl/fail_extend_impl_type_as.carbon | 6 +- .../testdata/impl/fail_impl_as_scope.carbon | 196 +- .../impl/fail_impl_bad_assoc_fn.carbon | 876 +-- .../impl/fail_impl_bad_interface.carbon | 6 +- .../testdata/impl/fail_impl_bad_type.carbon | 12 +- .../testdata/impl/fail_redefinition.carbon | 12 +- .../impl/fail_self_type_mismatch.carbon | 208 +- .../check/testdata/impl/forward_decls.carbon | 246 +- .../impl/generic_redeclaration.carbon | 378 +- toolchain/check/testdata/impl/impl_as.carbon | 44 +- .../impl/impl_assoc_const_with_prelude.carbon | 350 +- .../check/testdata/impl/impl_forall.carbon | 18 +- .../check/testdata/impl/impl_thunk.carbon | 710 +- .../impl/impl_thunk_min_prelude.carbon | 58 +- .../testdata/impl/import_builtin_call.carbon | 648 +- .../testdata/impl/import_compound.carbon | 286 +- .../testdata/impl/import_extend_impl.carbon | 90 +- .../check/testdata/impl/import_generic.carbon | 1194 ++-- .../impl/import_interface_assoc_const.carbon | 352 +- .../check/testdata/impl/import_self.carbon | 106 +- .../testdata/impl/import_self_specific.carbon | 336 +- .../check/testdata/impl/import_thunk.carbon | 474 +- .../testdata/impl/import_use_generic.carbon | 146 +- .../check/testdata/impl/incomplete.carbon | 60 +- .../check/testdata/impl/interface_args.carbon | 1070 +-- .../check/testdata/impl/lookup/alias.carbon | 24 +- .../impl/lookup/canonical_query_self.carbon | 314 +- .../lookup/fail_todo_undefined_impl.carbon | 72 +- .../check/testdata/impl/lookup/generic.carbon | 842 +-- .../testdata/impl/lookup/impl_forall.carbon | 310 +- .../check/testdata/impl/lookup/import.carbon | 1448 ++-- .../impl/lookup/instance_method.carbon | 74 +- ...g_generic_inside_rewrite_constraint.carbon | 654 +- ...pecialization_with_symbolic_rewrite.carbon | 1184 ++-- .../testdata/impl/lookup/specific_args.carbon | 598 +- .../testdata/impl/lookup/transitive.carbon | 138 +- .../testdata/impl/multiple_extend.carbon | 320 +- .../name_lookup_in_impl_definition.carbon | 10 +- .../impl/no_definition_in_impl_file.carbon | 36 +- .../check/testdata/impl/self_in_class.carbon | 50 +- .../testdata/impl/self_in_signature.carbon | 404 +- .../impl/todo_impl_with_unrelated_fn.carbon | 18 +- .../testdata/impl/use_assoc_entity.carbon | 472 +- .../index/array_element_access.carbon | 148 +- .../check/testdata/index/expr_category.carbon | 292 +- .../index/fail_array_large_index.carbon | 128 +- .../index/fail_array_non_int_indexing.carbon | 80 +- .../fail_array_out_of_bound_access.carbon | 104 +- .../testdata/index/fail_expr_category.carbon | 204 +- .../testdata/index/fail_invalid_base.carbon | 28 +- .../testdata/index/fail_name_not_found.carbon | 12 +- .../index/fail_negative_indexing.carbon | 126 +- .../index/fail_non_tuple_access.carbon | 6 +- .../testdata/interface/as_type_of_type.carbon | 88 +- .../interface/assoc_const_in_generic.carbon | 104 +- .../check/testdata/interface/basic.carbon | 16 +- .../interface/compound_member_access.carbon | 732 +-- .../testdata/interface/default_fn.carbon | 92 +- .../testdata/interface/export_name.carbon | 8 +- .../fail_add_member_outside_definition.carbon | 50 +- .../interface/fail_assoc_const_alias.carbon | 96 +- .../fail_assoc_const_bad_default.carbon | 16 +- .../fail_assoc_fn_invalid_use.carbon | 46 +- .../interface/fail_definition_imported.carbon | 12 +- .../testdata/interface/fail_duplicate.carbon | 70 +- .../fail_generic_redeclaration.carbon | 62 +- .../interface/fail_member_lookup.carbon | 34 +- .../fail_todo_assoc_const_default.carbon | 56 +- .../fail_todo_define_default_fn_inline.carbon | 18 +- ..._todo_define_default_fn_out_of_line.carbon | 106 +- .../check/testdata/interface/final.carbon | 252 +- .../check/testdata/interface/generic.carbon | 288 +- .../testdata/interface/generic_import.carbon | 106 +- .../testdata/interface/generic_method.carbon | 1296 ++-- .../interface/generic_vs_params.carbon | 228 +- .../check/testdata/interface/import.carbon | 252 +- .../testdata/interface/import_access.carbon | 8 +- .../interface/import_interface_decl.carbon | 8 +- .../testdata/interface/incomplete.carbon | 44 +- .../testdata/interface/member_lookup.carbon | 428 +- .../check/testdata/interface/require.carbon | 236 +- .../check/testdata/interface/self.carbon | 8 +- .../testdata/interface/syntactic_merge.carbon | 280 +- .../interface/todo_define_not_default.carbon | 84 +- .../interop/cpp/basics/import/import.carbon | 36 +- .../interop/cpp/basics/import/indirect.carbon | 188 +- .../interop/cpp/class/import/abstract.carbon | 4 +- .../interop/cpp/class/import/access.carbon | 194 +- .../interop/cpp/class/import/base.carbon | 100 +- .../interop/cpp/class/import/class.carbon | 70 +- .../cpp/class/import/constructor.carbon | 624 +- .../interop/cpp/class/import/field.carbon | 200 +- .../interop/cpp/class/import/method.carbon | 208 +- .../interop/cpp/class/import/template.carbon | 144 +- .../interop/cpp/class/import/union.carbon | 44 +- .../interop/cpp/enum/anonymous.carbon | 22 +- .../testdata/interop/cpp/enum/convert.carbon | 74 +- .../testdata/interop/cpp/enum/copy.carbon | 26 +- .../testdata/interop/cpp/enum/using.carbon | 40 +- .../import/arithmetic_types_bridged.carbon | 1372 ++-- .../import/arithmetic_types_direct.carbon | 490 +- .../interop/cpp/function/import/class.carbon | 94 +- .../cpp/function/import/decayed_param.carbon | 374 +- .../cpp/function/import/default_arg.carbon | 542 +- .../cpp/function/import/extern_c.carbon | 90 +- .../cpp/function/import/full_semir.carbon | 174 +- .../cpp/function/import/function.carbon | 44 +- .../cpp/function/import/in_template.carbon | 36 +- .../interop/cpp/function/import/inline.carbon | 190 +- .../cpp/function/import/overloads.carbon | 1838 +++--- .../cpp/function/import/pointer.carbon | 1038 +-- .../function/import/qualified_param.carbon | 52 +- .../cpp/function/import/reference.carbon | 310 +- .../interop/cpp/function/import/return.carbon | 58 +- .../interop/cpp/function/import/struct.carbon | 88 +- .../interop/cpp/function/import/union.carbon | 88 +- .../cpp/function/import/variadic.carbon | 138 +- .../cpp/function/import/void_pointer.carbon | 332 +- .../testdata/interop/cpp/impls/as.carbon | 236 +- .../testdata/interop/cpp/impls/copy.carbon | 104 +- .../testdata/interop/cpp/impls/destroy.carbon | 84 +- .../interop/cpp/impls/implicit_as.carbon | 466 +- .../testdata/interop/cpp/macros/macros.carbon | 576 +- .../interop/cpp/namespace/import.carbon | 4 +- .../cpp/operators/arithmetic_operators.carbon | 5824 ++++++++--------- .../interop/cpp/operators/deref.carbon | 46 +- .../interop/cpp/operators/eq_with.carbon | 566 +- .../interop/cpp/operators/operators.carbon | 536 +- .../interop/cpp/operators/ordered_with.carbon | 878 +-- .../interop/cpp/operators/spaceship.carbon | 418 +- .../cpp/primitive_types/arithmetic.carbon | 470 +- .../long_and_long_long.llp64.carbon | 3764 +++++------ .../long_and_long_long.lp64.carbon | 3592 +++++----- .../cpp/primitive_types/void_pointer.carbon | 396 +- .../testdata/interop/cpp/range_for.carbon | 3304 +++++----- .../cpp/stdlib/initializer_list.carbon | 248 +- .../interop/cpp/stdlib/string_view.carbon | 56 +- .../cpp/template/alias_template.carbon | 32 +- .../cpp/template/argument_count.carbon | 180 +- .../cpp/template/class_template.carbon | 18 +- .../interop/cpp/template/concept.carbon | 68 +- .../cpp/template/non_type_param.carbon | 50 +- .../template/template_template_param.carbon | 26 +- .../interop/cpp/template/type_param.carbon | 52 +- .../interop/cpp/template/var_template.carbon | 106 +- .../interop/cpp/type_alias/import.carbon | 162 +- .../interop/cpp/var/import/global.carbon | 58 +- .../testdata/let/compile_time_bindings.carbon | 70 +- toolchain/check/testdata/let/convert.carbon | 22 +- .../testdata/let/fail_duplicate_decl.carbon | 72 +- .../testdata/let/fail_missing_value.carbon | 6 +- .../check/testdata/let/fail_modifiers.carbon | 116 +- .../testdata/let/fail_use_in_init.carbon | 4 +- toolchain/check/testdata/let/global.carbon | 78 +- toolchain/check/testdata/let/local.carbon | 28 +- toolchain/check/testdata/let/ref.carbon | 16 +- .../check/testdata/let/shadowed_decl.carbon | 82 +- .../check/testdata/main_run/no_return.carbon | 12 +- .../check/testdata/main_run/return_i32.carbon | 110 +- .../testdata/named_constraint/convert.carbon | 14 +- .../testdata/named_constraint/empty.carbon | 56 +- .../named_constraint/empty_generic.carbon | 100 +- .../extend_name_lookup.carbon | 96 +- .../testdata/named_constraint/generic.carbon | 54 +- .../import_constraint_decl.carbon | 26 +- .../testdata/named_constraint/require.carbon | 388 +- .../testdata/namespace/add_to_import.carbon | 54 +- .../check/testdata/namespace/alias.carbon | 62 +- .../fail_conflict_after_merge.carbon | 12 +- ...onflict_in_imports_namespace_second.carbon | 4 +- .../namespace/fail_decl_in_alias.carbon | 50 +- .../testdata/namespace/fail_duplicate.carbon | 12 +- .../namespace/fail_not_top_level.carbon | 30 +- .../testdata/namespace/fail_params.carbon | 12 +- .../check/testdata/namespace/function.carbon | 14 +- .../namespace/imported_indirect.carbon | 4 +- .../merging_with_indirections.carbon | 54 +- .../check/testdata/namespace/shadow.carbon | 106 +- .../testdata/operators/builtin/and.carbon | 38 +- .../operators/builtin/assignment.carbon | 354 +- .../fail_and_or_not_in_function.carbon | 20 +- .../fail_assignment_to_non_assignable.carbon | 256 +- .../fail_redundant_compound_access.carbon | 106 +- .../builtin/fail_type_mismatch.carbon | 6 +- .../fail_type_mismatch_assignment.carbon | 52 +- .../builtin/fail_type_mismatch_once.carbon | 16 +- .../builtin/fail_unimplemented_op.carbon | 16 +- .../testdata/operators/builtin/or.carbon | 44 +- .../operators/builtin/unary_op.carbon | 28 +- .../testdata/operators/overloaded/add.carbon | 26 +- .../operators/overloaded/bit_and.carbon | 26 +- .../overloaded/bit_complement.carbon | 6 +- .../operators/overloaded/bit_or.carbon | 26 +- .../operators/overloaded/bit_xor.carbon | 26 +- .../testdata/operators/overloaded/dec.carbon | 6 +- .../testdata/operators/overloaded/div.carbon | 26 +- .../testdata/operators/overloaded/eq.carbon | 132 +- .../overloaded/fail_assign_non_ref.carbon | 52 +- .../overloaded/fail_error_recovery.carbon | 12 +- .../operators/overloaded/fail_no_impl.carbon | 54 +- .../operators/overloaded/implicit_as.carbon | 146 +- .../testdata/operators/overloaded/inc.carbon | 6 +- .../operators/overloaded/index.carbon | 174 +- .../overloaded/index_with_prelude.carbon | 364 +- .../operators/overloaded/left_shift.carbon | 26 +- .../testdata/operators/overloaded/mod.carbon | 26 +- .../testdata/operators/overloaded/mul.carbon | 26 +- .../operators/overloaded/negate.carbon | 6 +- .../operators/overloaded/ordered.carbon | 144 +- .../operators/overloaded/right_shift.carbon | 26 +- .../overloaded/string_indexing.carbon | 86 +- .../testdata/operators/overloaded/sub.carbon | 26 +- .../package_expr/fail_not_found.carbon | 12 +- .../check/testdata/package_expr/syntax.carbon | 182 +- .../packages/cross_package_export.carbon | 116 +- .../packages/cross_package_import.carbon | 12 +- .../testdata/packages/export_import.carbon | 120 +- .../testdata/packages/export_mixed.carbon | 100 +- .../testdata/packages/export_name.carbon | 248 +- .../fail_conflict_no_namespaces.carbon | 28 +- .../packages/fail_export_name_member.carbon | 8 +- .../packages/fail_import_type_error.carbon | 18 +- .../packages/implicit_imports_entities.carbon | 58 +- .../packages/implicit_imports_prelude.carbon | 84 +- .../testdata/packages/missing_prelude.carbon | 202 +- .../check/testdata/packages/raw_core.carbon | 122 +- .../testdata/pointer/address_of_deref.carbon | 90 +- .../testdata/pointer/address_of_lvalue.carbon | 332 +- toolchain/check/testdata/pointer/arrow.carbon | 48 +- toolchain/check/testdata/pointer/basic.carbon | 140 +- .../pointer/convert_qualifiers.carbon | 62 +- .../testdata/pointer/fail_deref_error.carbon | 6 +- .../pointer/fail_deref_not_pointer.carbon | 6 +- .../pointer/fail_type_mismatch.carbon | 6 +- .../check/testdata/pointer/import.carbon | 160 +- .../testdata/pointer/nested_const.carbon | 102 +- toolchain/check/testdata/pointer/types.carbon | 122 +- .../primitives/import_symbolic.carbon | 240 +- .../primitives/string_literals.carbon | 36 +- .../testdata/primitives/type_literals.carbon | 300 +- .../testdata/return/code_after_return.carbon | 6 +- .../return/code_after_return_value.carbon | 56 +- .../testdata/return/fail_call_in_type.carbon | 14 +- .../return/fail_missing_return.carbon | 10 +- .../fail_return_with_returned_var.carbon | 124 +- .../return/fail_returned_var_shadow.carbon | 146 +- .../return/fail_returned_var_type.carbon | 74 +- .../testdata/return/fail_type_mismatch.carbon | 16 +- .../testdata/return/fail_value_missing.carbon | 10 +- .../testdata/return/fail_var_in_type.carbon | 14 +- .../return/import_convert_function.carbon | 1562 ++--- .../check/testdata/return/returned_var.carbon | 124 +- .../testdata/return/returned_var_scope.carbon | 138 +- toolchain/check/testdata/return/struct.carbon | 66 +- toolchain/check/testdata/return/tuple.carbon | 96 +- toolchain/check/testdata/return/value.carbon | 50 +- .../testdata/struct/fail_assign_empty.carbon | 6 +- .../struct/fail_duplicate_name.carbon | 26 +- .../struct/fail_field_name_mismatch.carbon | 132 +- .../struct/fail_field_type_mismatch.carbon | 6 +- .../struct/fail_member_access_type.carbon | 74 +- .../struct/fail_non_member_access.carbon | 70 +- .../struct/fail_too_few_values.carbon | 52 +- .../testdata/struct/fail_type_assign.carbon | 12 +- .../testdata/struct/fail_value_as_type.carbon | 6 +- toolchain/check/testdata/struct/import.carbon | 254 +- .../struct/literal_member_access.carbon | 58 +- .../testdata/struct/member_access.carbon | 160 +- .../struct/nested_struct_in_place.carbon | 64 +- .../check/testdata/struct/one_entry.carbon | 108 +- .../testdata/struct/partially_const.carbon | 108 +- .../testdata/struct/reorder_fields.carbon | 126 +- .../testdata/struct/tuple_as_element.carbon | 180 +- .../check/testdata/struct/two_entries.carbon | 198 +- toolchain/check/testdata/tuple/basics.carbon | 46 +- .../testdata/tuple/element_access.carbon | 230 +- toolchain/check/testdata/tuple/import.carbon | 328 +- .../testdata/tuple/in_place_tuple_init.carbon | 234 +- .../check/testdata/tuple/tuple_pattern.carbon | 20 +- .../check/testdata/var/export_name.carbon | 22 +- .../var/fail_init_type_mismatch.carbon | 6 +- .../var/fail_storage_is_literal.carbon | 6 +- .../check/testdata/var/global_decl.carbon | 4 +- .../testdata/var/global_decl_import.carbon | 4 +- .../testdata/var/global_decl_with_init.carbon | 4 +- .../check/testdata/var/global_lookup.carbon | 10 +- .../var/global_lookup_in_scope.carbon | 12 +- .../check/testdata/var/initialization.carbon | 4 +- .../check/testdata/var/var_pattern.carbon | 104 +- .../testdata/where_expr/constraints.carbon | 106 +- .../testdata/where_expr/designator.carbon | 28 +- .../testdata/where_expr/dot_self_index.carbon | 148 +- .../testdata/where_expr/equal_rewrite.carbon | 96 +- .../testdata/where_expr/non_generic.carbon | 6 +- .../compile/optimize/optimize_debug.carbon | 6 +- .../compile/optimize/optimize_default.carbon | 6 +- .../compile/optimize/optimize_none.carbon | 18 +- .../compile/optimize/optimize_size.carbon | 18 +- .../compile/optimize/optimize_speed.carbon | 6 +- .../testdata/array/array_in_place.carbon | 14 +- .../testdata/array/assign_return_value.carbon | 20 +- toolchain/lower/testdata/array/base.carbon | 44 +- .../testdata/array/function_param.carbon | 10 +- toolchain/lower/testdata/array/iterate.carbon | 102 +- toolchain/lower/testdata/array/layout.carbon | 14 +- toolchain/lower/testdata/builtins/char.carbon | 6 +- toolchain/lower/testdata/builtins/cpp.carbon | 14 +- .../testdata/builtins/maybe_unformed.carbon | 16 +- toolchain/lower/testdata/choice/basic.carbon | 10 +- toolchain/lower/testdata/class/adapt.carbon | 14 +- toolchain/lower/testdata/class/basic.carbon | 18 +- toolchain/lower/testdata/class/convert.carbon | 20 +- toolchain/lower/testdata/class/field.carbon | 54 +- toolchain/lower/testdata/class/generic.carbon | 110 +- toolchain/lower/testdata/class/static.carbon | 6 +- toolchain/lower/testdata/class/virtual.carbon | 190 +- toolchain/lower/testdata/for/bindings.carbon | 90 +- .../lower/testdata/for/break_continue.carbon | 98 +- toolchain/lower/testdata/for/for.carbon | 98 +- .../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 +- .../function/call/struct_param.carbon | 4 +- .../testdata/function/call/tuple_param.carbon | 4 +- .../call/tuple_param_with_return_slot.carbon | 14 +- .../testdata/function/call/var_param.carbon | 6 +- .../function/definition/destroy.carbon | 20 +- .../function/definition/var_param.carbon | 26 +- .../testdata/function/generic/call.carbon | 46 +- .../function/generic/call_basic.carbon | 130 +- .../function/generic/call_basic_depth.carbon | 34 +- .../function/generic/call_dedup_ptr.carbon | 12 +- .../function/generic/call_deref_ptr.carbon | 58 +- .../call_different_associated_const.carbon | 12 +- .../generic/call_different_impls.carbon | 12 +- .../call_different_impls_with_const.carbon | 18 +- .../generic/call_different_specific.carbon | 58 +- .../generic/call_impl_function.carbon | 12 +- .../function/generic/call_method.carbon | 18 +- .../generic/call_recursive_basic.carbon | 58 +- .../generic/call_recursive_diamond.carbon | 106 +- .../generic/call_recursive_impl.carbon | 16 +- .../generic/call_recursive_mutual.carbon | 58 +- .../generic/call_recursive_reorder.carbon | 24 +- .../call_recursive_reorder_more.carbon | 92 +- .../generic/call_recursive_sccs_deep.carbon | 166 +- .../generic/call_specific_in_class.carbon | 104 +- ...ross_library_name_collision_private.carbon | 22 +- .../testdata/function/generic/import.carbon | 18 +- .../generic/import_core_witness.carbon | 14 +- .../function/generic/import_unused_def.carbon | 8 +- .../function/generic/local_function.carbon | 12 +- .../function/generic/reverse_canonical.carbon | 58 +- .../function/generic/self_canonical.carbon | 34 +- .../generic/type_representation.carbon | 76 +- toolchain/lower/testdata/impl/impl.carbon | 32 +- .../lower/testdata/impl/import_facet.carbon | 22 +- .../lower/testdata/impl/import_thunk.carbon | 120 +- .../lower/testdata/impl/period_self.carbon | 14 +- toolchain/lower/testdata/impl/thunk.carbon | 82 +- .../index/array_element_access.carbon | 32 +- .../lower/testdata/interface/where.carbon | 6 +- .../interop/cpp/class/import/alignment.carbon | 36 +- .../interop/cpp/class/import/dynamic.carbon | 10 +- .../interop/cpp/class/virtual_fn.carbon | 16 +- .../testdata/interop/cpp/constructor.carbon | 40 +- .../testdata/interop/cpp/function_decl.carbon | 6 +- .../testdata/interop/cpp/import_inline.carbon | 6 +- .../lower/testdata/interop/cpp/method.carbon | 16 +- .../lower/testdata/interop/cpp/nullptr.carbon | 42 +- .../testdata/interop/cpp/operators.carbon | 48 +- .../testdata/interop/cpp/parameters.carbon | 56 +- .../lower/testdata/interop/cpp/pointer.carbon | 118 +- .../testdata/interop/cpp/reference.carbon | 48 +- .../lower/testdata/interop/cpp/return.carbon | 56 +- .../testdata/interop/cpp/reverse/class.carbon | 50 +- .../interop/cpp/reverse/method.carbon | 18 +- .../interop/cpp/std_initializer_list.carbon | 36 +- .../lower/testdata/interop/cpp/thunks.carbon | 24 +- .../lower/testdata/interop/cpp/void.carbon | 102 +- .../lower/testdata/let/copy_value_rep.carbon | 14 +- toolchain/lower/testdata/let/tuple.carbon | 24 +- .../testdata/operators/assignment.carbon | 16 +- .../lower/testdata/operators/increment.carbon | 18 +- .../testdata/operators/overloaded.carbon | 12 +- .../packages/imported_package_mangle.carbon | 60 +- .../imported_package_mangle_string.carbon | 16 +- .../imported_type_completeness.carbon | 46 +- .../packages/private_external_mangle.carbon | 32 +- .../separate_compilation_witness.carbon | 413 +- .../testdata/pointer/address_of_field.carbon | 14 +- .../testdata/pointer/address_of_unused.carbon | 6 +- toolchain/lower/testdata/pointer/basic.carbon | 6 +- .../lower/testdata/primitives/char.carbon | 344 +- .../testdata/primitives/int_types.carbon | 48 +- .../primitives/numeric_literals.carbon | 28 +- .../lower/testdata/primitives/optional.carbon | 268 +- .../lower/testdata/primitives/string.carbon | 10 +- .../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 | 24 +- .../struct/nested_struct_in_place.carbon | 14 +- .../lower/testdata/struct/one_entry.carbon | 14 +- .../lower/testdata/struct/two_entries.carbon | 18 +- .../tuple/access/element_access.carbon | 20 +- .../tuple/access/return_value_access.carbon | 16 +- .../tuple/nested_tuple_in_place.carbon | 14 +- .../lower/testdata/tuple/one_entry.carbon | 14 +- .../lower/testdata/tuple/two_entries.carbon | 18 +- .../testdata/tuple/value_formation.carbon | 14 +- toolchain/lower/testdata/var/global.carbon | 12 +- toolchain/lower/testdata/var/import.carbon | 8 +- toolchain/lower/testdata/var/local.carbon | 22 +- toolchain/lower/testdata/var/nested.carbon | 10 +- toolchain/lower/testdata/var/param.carbon | 12 +- .../lower/testdata/var/uninitialized.carbon | 12 +- toolchain/sem_ir/inst_fingerprinter.cpp | 42 +- 656 files changed, 53759 insertions(+), 53510 deletions(-) diff --git a/toolchain/check/import_ref.cpp b/toolchain/check/import_ref.cpp index 4f2019f10282..6994dec09179 100644 --- a/toolchain/check/import_ref.cpp +++ b/toolchain/check/import_ref.cpp @@ -3713,7 +3713,7 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, // A package from a different file becomes a child of the package here, as it // would be if it were imported. auto parent_scope_id = - inst.name_scope_id == SemIR::NameScopeId::Package + resolver.import_name_scopes().IsPackage(inst.name_scope_id) ? SemIR::NameScopeId::Package : GetLocalNameScopeId(resolver, name_scope.parent_scope_id()); diff --git a/toolchain/check/testdata/alias/basics.carbon b/toolchain/check/testdata/alias/basics.carbon index 93df2e911a96..c3a6a418144d 100644 --- a/toolchain/check/testdata/alias/basics.carbon +++ b/toolchain/check/testdata/alias/basics.carbon @@ -179,7 +179,7 @@ extern alias C = Class; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %.7a6: ref %C = temporary invalid, %C.val [concrete] +// CHECK:STDOUT: %.115: ref %C = temporary invalid, %C.val [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -196,7 +196,7 @@ extern alias C = Class; // CHECK:STDOUT: %.loc10_13.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc10_13.2: init %C to %.loc10_13.1 = class_init () [concrete = constants.%C.val] // CHECK:STDOUT: %.loc10_13.3: init %C = converted @__global_init.%.loc10, %.loc10_13.2 [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc10_13.4: ref %C = temporary %.loc10_13.1, %.loc10_13.3 [concrete = constants.%.7a6] +// CHECK:STDOUT: %.loc10_13.4: ref %C = temporary %.loc10_13.1, %.loc10_13.3 [concrete = constants.%.115] // CHECK:STDOUT: %.loc10_13.5: %C = acquire_value %.loc10_13.4 [concrete = constants.%C.val] // CHECK:STDOUT: %d: %C = value_binding d, %.loc10_13.5 // CHECK:STDOUT: } @@ -214,15 +214,15 @@ extern alias C = Class; // CHECK:STDOUT: %A.generic: %A.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %A.966: type = class_type @A, @A(%empty_struct_type) [concrete] +// CHECK:STDOUT: %A.940: type = class_type @A, @A(%empty_struct_type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %A.ref: %A.type = name_ref A, %A.decl [concrete = constants.%A.generic] // CHECK:STDOUT: %.loc7_14: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc7_15: type = converted %.loc7_14, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %A: type = class_type @A, @A(constants.%empty_struct_type) [concrete = constants.%A.966] -// CHECK:STDOUT: %a: type = alias_binding a, %A [concrete = constants.%A.966] +// CHECK:STDOUT: %A: type = class_type @A, @A(constants.%empty_struct_type) [concrete = constants.%A.940] +// CHECK:STDOUT: %a: type = alias_binding a, %A [concrete = constants.%A.940] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/alias/export_name.carbon b/toolchain/check/testdata/alias/export_name.carbon index eebfc6a3b071..d994e2ff56f0 100644 --- a/toolchain/check/testdata/alias/export_name.carbon +++ b/toolchain/check/testdata/alias/export_name.carbon @@ -123,7 +123,7 @@ var d: D* = &c; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//base, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -141,7 +141,7 @@ var d: D* = &c; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export_orig.carbon @@ -160,7 +160,7 @@ var d: D* = &c; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//base, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -178,7 +178,7 @@ var d: D* = &c; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_export.carbon @@ -199,7 +199,7 @@ var d: D* = &c; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -223,7 +223,7 @@ var d: D* = &c; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8db // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -281,24 +281,24 @@ var d: D* = &c; // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %addr: %ptr.6be = addr_of file.%c.var [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %addr: %ptr.6b6 = addr_of file.%c.var [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.881: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.0ff: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5cf: %ptr.as.Copy.impl.Op.type.0ff = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.6be, (%Copy.impl_witness.881) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.d3f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.40e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d3f, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.5cf [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.5cf, @ptr.as.Copy.impl.Op(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.65f: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b22: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.c19: %ptr.as.Copy.impl.Op.type.b22 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.6b6, (%Copy.impl_witness.65f) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c6a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.a68: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c6a, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.c19 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.c19, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -311,10 +311,10 @@ var d: D* = &c; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//export_orig, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//export_orig, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//export_orig, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -328,29 +328,29 @@ var d: D* = &c; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.0d5 = var_pattern %c.patt [concrete] +// 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: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt [concrete] // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var [concrete = %c.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.1c8 = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.1c8 = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.fcb = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.fcb = var_pattern %d.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %d.var: ref %ptr.6be = var %d.var_patt [concrete] -// CHECK:STDOUT: %.loc8: type = splice_block %ptr [concrete = constants.%ptr.6be] { +// CHECK:STDOUT: %d.var: ref %ptr.6b6 = var %d.var_patt [concrete] +// CHECK:STDOUT: %.loc8: type = splice_block %ptr [concrete = constants.%ptr.6b6] { // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%C] -// CHECK:STDOUT: %ptr: type = ptr_type %D.ref [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr: type = ptr_type %D.ref [concrete = constants.%ptr.6b6] // CHECK:STDOUT: } -// CHECK:STDOUT: %d: ref %ptr.6be = ref_binding d, %d.var [concrete = %d.var] +// CHECK:STDOUT: %d: ref %ptr.6b6 = ref_binding d, %d.var [concrete = %d.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "export_orig.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8db // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -360,12 +360,12 @@ var d: D* = &c; // CHECK:STDOUT: %.loc7_1: init %C = converted %.loc7_13.1, %.loc7_13.2 [concrete = constants.%C.val] // CHECK:STDOUT: assign file.%c.var, %.loc7_1 // CHECK:STDOUT: %c.ref: ref %C = name_ref c, file.%c [concrete = file.%c.var] -// CHECK:STDOUT: %addr: %ptr.6be = addr_of %c.ref [concrete = constants.%addr] -// CHECK:STDOUT: %impl.elem0: %.40e = impl_witness_access constants.%Copy.impl_witness.881, element0 [concrete = constants.%ptr.as.Copy.impl.Op.5cf] +// CHECK:STDOUT: %addr: %ptr.6b6 = addr_of %c.ref [concrete = constants.%addr] +// CHECK:STDOUT: %impl.elem0: %.a68 = impl_witness_access constants.%Copy.impl_witness.65f, element0 [concrete = constants.%ptr.as.Copy.impl.Op.c19] // CHECK:STDOUT: %bound_method.loc8_13.1: = bound_method %addr, %impl.elem0 [concrete = constants.%ptr.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%C) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %addr, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.6be = call %bound_method.loc8_13.2(%addr) [concrete = constants.%addr] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.6b6 = call %bound_method.loc8_13.2(%addr) [concrete = constants.%addr] // CHECK:STDOUT: assign file.%d.var, %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/alias/import.carbon b/toolchain/check/testdata/alias/import.carbon index 697dbc66a8df..e8557b9270c1 100644 --- a/toolchain/check/testdata/alias/import.carbon +++ b/toolchain/check/testdata/alias/import.carbon @@ -72,16 +72,16 @@ var c: () = a_alias_alias; // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.a66: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%ptr) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.63b: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%ptr) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.eaa: %T.as.DefaultOrUnformed.impl.Op.type.63b = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr, (%DefaultOrUnformed.impl_witness.a66) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.eaa, @T.as.DefaultOrUnformed.impl.Op(%ptr) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.b96: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%ptr) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.19b: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%ptr) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.876: %T.as.DefaultOrUnformed.impl.Op.type.19b = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr, (%DefaultOrUnformed.impl_witness.b96) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.876, @T.as.DefaultOrUnformed.impl.Op(%ptr) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -91,8 +91,8 @@ var c: () = a_alias_alias; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -107,8 +107,8 @@ var c: () = a_alias_alias; // CHECK:STDOUT: %C.ref.loc6: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %c_alias: type = alias_binding c_alias, %C.ref.loc6 [concrete = constants.%C] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.1c8 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.1c8 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.fcb = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.fcb = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %ptr = var %a.var_patt [concrete] // CHECK:STDOUT: %.loc8: type = splice_block %ptr [concrete = constants.%ptr] { @@ -128,11 +128,11 @@ var c: () = a_alias_alias; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%ptr, (constants.%DefaultOrUnformed.impl_witness.a66) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%ptr, (constants.%DefaultOrUnformed.impl_witness.b96) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc8_10.1: %DefaultOrUnformed.type = converted constants.%ptr, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc8_10.1 [concrete = constants.%ptr] // CHECK:STDOUT: %.loc8_10.2: type = converted %.loc8_10.1, %as_type [concrete = constants.%ptr] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.eaa, @T.as.DefaultOrUnformed.impl.Op(constants.%ptr) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.876, @T.as.DefaultOrUnformed.impl.Op(constants.%ptr) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %ptr = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign file.%a.var, %T.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: return @@ -145,32 +145,32 @@ var c: () = a_alias_alias; // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.019: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.ecd, @T.as.DefaultOrUnformed.impl(%ptr) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.63b: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%ptr) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.eaa: %T.as.DefaultOrUnformed.impl.Op.type.63b = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr, (%DefaultOrUnformed.impl_witness.019) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.eaa, @T.as.DefaultOrUnformed.impl.Op(%ptr) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.c92: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.75f, @T.as.DefaultOrUnformed.impl(%ptr) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.19b: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%ptr) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.876: %T.as.DefaultOrUnformed.impl.Op.type.19b = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr, (%DefaultOrUnformed.impl_witness.c92) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.876, @T.as.DefaultOrUnformed.impl.Op(%ptr) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C = import_ref Main//class1, C, unloaded // CHECK:STDOUT: %Main.c_alias: type = import_ref Main//class1, c_alias, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.a = import_ref Main//class1, a, unloaded -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import, [concrete] { +// CHECK:STDOUT: %Core.048aa3.1: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .DefaultOrUnformed = %Core.DefaultOrUnformed // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//class1, loc4_10, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//class1, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//class1, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Main.import_ref.355: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Main//class1, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.ecd = impl_witness_table (%Main.import_ref.355), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.c41: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Main//class1, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.75f = impl_witness_table (%Main.import_ref.c41), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -178,7 +178,7 @@ var c: () = a_alias_alias; // CHECK:STDOUT: .C = imports.%Main.C // CHECK:STDOUT: .c_alias = imports.%Main.c_alias // CHECK:STDOUT: .a = imports.%Main.a -// CHECK:STDOUT: .Core = imports.%Core.979 +// CHECK:STDOUT: .Core = imports.%Core.048aa3.1 // CHECK:STDOUT: .c_alias_alias = %c_alias_alias // CHECK:STDOUT: .b = %b // CHECK:STDOUT: } @@ -187,8 +187,8 @@ var c: () = a_alias_alias; // CHECK:STDOUT: %c_alias.ref.loc6: type = name_ref c_alias, imports.%Main.c_alias [concrete = constants.%C] // CHECK:STDOUT: %c_alias_alias: type = alias_binding c_alias_alias, %c_alias.ref.loc6 [concrete = constants.%C] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.1c8 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.1c8 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.fcb = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.fcb = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %ptr = var %b.var_patt [concrete] // CHECK:STDOUT: %.loc8: type = splice_block %ptr [concrete = constants.%ptr] { @@ -202,16 +202,16 @@ var c: () = a_alias_alias; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%ptr, (constants.%DefaultOrUnformed.impl_witness.019) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%ptr, (constants.%DefaultOrUnformed.impl_witness.c92) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc8_16.1: %DefaultOrUnformed.type = converted constants.%ptr, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc8_16.1 [concrete = constants.%ptr] // CHECK:STDOUT: %.loc8_16.2: type = converted %.loc8_16.1, %as_type [concrete = constants.%ptr] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.eaa, @T.as.DefaultOrUnformed.impl.Op(constants.%ptr) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.876, @T.as.DefaultOrUnformed.impl.Op(constants.%ptr) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %ptr = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign file.%b.var, %T.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: return @@ -224,16 +224,16 @@ var c: () = a_alias_alias; // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.a66: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%ptr) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.63b: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%ptr) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.eaa: %T.as.DefaultOrUnformed.impl.Op.type.63b = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr, (%DefaultOrUnformed.impl_witness.a66) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.eaa, @T.as.DefaultOrUnformed.impl.Op(%ptr) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.b96: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%ptr) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.19b: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%ptr) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.876: %T.as.DefaultOrUnformed.impl.Op.type.19b = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr, (%DefaultOrUnformed.impl_witness.b96) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.876, @T.as.DefaultOrUnformed.impl.Op(%ptr) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -245,10 +245,10 @@ var c: () = a_alias_alias; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//class2, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//class2, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//class2, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -261,8 +261,8 @@ var c: () = a_alias_alias; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.1c8 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.1c8 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.fcb = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.fcb = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %ptr = var %c.var_patt [concrete] // CHECK:STDOUT: %.loc6: type = splice_block %ptr [concrete = constants.%ptr] { @@ -276,16 +276,16 @@ var c: () = a_alias_alias; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8db // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%ptr, (constants.%DefaultOrUnformed.impl_witness.a66) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%ptr, (constants.%DefaultOrUnformed.impl_witness.b96) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc6_22.1: %DefaultOrUnformed.type = converted constants.%ptr, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc6_22.1 [concrete = constants.%ptr] // CHECK:STDOUT: %.loc6_22.2: type = converted %.loc6_22.1, %as_type [concrete = constants.%ptr] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.eaa, @T.as.DefaultOrUnformed.impl.Op(constants.%ptr) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.876, @T.as.DefaultOrUnformed.impl.Op(constants.%ptr) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %ptr = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign file.%c.var, %T.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/alias/import_access.carbon b/toolchain/check/testdata/alias/import_access.carbon index 92c5c50704e2..ec8265b4e1c0 100644 --- a/toolchain/check/testdata/alias/import_access.carbon +++ b/toolchain/check/testdata/alias/import_access.carbon @@ -97,7 +97,7 @@ var inst: Test.A = {}; // CHECK:STDOUT: %Test.C = import_ref Test//def, C, unloaded // CHECK:STDOUT: %Test.A: type = import_ref Test//def, A, loaded [concrete = constants.%C] // CHECK:STDOUT: %Test.import_ref.8f2: = import_ref Test//def, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Test.import_ref.50c = import_ref Test//def, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Test.import_ref.fcf = import_ref Test//def, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -121,7 +121,7 @@ var inst: Test.A = {}; // CHECK:STDOUT: complete_type_witness = imports.%Test.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Test.import_ref.50c +// CHECK:STDOUT: .Self = imports.%Test.import_ref.fcf // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/alias/import_order.carbon b/toolchain/check/testdata/alias/import_order.carbon index 15d034cf0e38..77ca4dd72ce4 100644 --- a/toolchain/check/testdata/alias/import_order.carbon +++ b/toolchain/check/testdata/alias/import_order.carbon @@ -82,15 +82,15 @@ var a_val: a = {.v = b_val.v}; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct.5f2: %struct_type.v = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.c57: ref %empty_tuple.type = class_element_access file.%d_val.var, element0 [concrete] +// CHECK:STDOUT: %.30c: ref %empty_tuple.type = class_element_access file.%d_val.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %empty_tuple.type [concrete] -// CHECK:STDOUT: %struct.51e: %struct_type.v = struct_value (%.c57) [concrete] -// CHECK:STDOUT: %.6a6: ref %empty_tuple.type = class_element_access file.%c_val.var, element0 [concrete] -// CHECK:STDOUT: %struct.947: %struct_type.v = struct_value (%.6a6) [concrete] -// CHECK:STDOUT: %.01b: ref %empty_tuple.type = class_element_access file.%b_val.var, element0 [concrete] -// CHECK:STDOUT: %struct.7df: %struct_type.v = struct_value (%.01b) [concrete] -// CHECK:STDOUT: %.b9e: ref %empty_tuple.type = class_element_access file.%a_val.var, element0 [concrete] +// CHECK:STDOUT: %struct.1dc: %struct_type.v = struct_value (%.30c) [concrete] +// CHECK:STDOUT: %.0bf: ref %empty_tuple.type = class_element_access file.%c_val.var, element0 [concrete] +// CHECK:STDOUT: %struct.2e7: %struct_type.v = struct_value (%.0bf) [concrete] +// CHECK:STDOUT: %.9b2: ref %empty_tuple.type = class_element_access file.%b_val.var, element0 [concrete] +// CHECK:STDOUT: %struct.8ba: %struct_type.v = struct_value (%.9b2) [concrete] +// CHECK:STDOUT: %.028: ref %empty_tuple.type = class_element_access file.%a_val.var, element0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -100,9 +100,9 @@ var a_val: a = {.v = b_val.v}; // CHECK:STDOUT: %Main.c: type = import_ref Main//a, c, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.d: type = import_ref Main//a, d, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.146: = import_ref Main//a, loc4_22, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.b80: %C.elem = import_ref Main//a, loc4_16, loaded [concrete = %.f9a] -// CHECK:STDOUT: %.f9a: %C.elem = field_decl v, element0 [concrete] +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.0c6: %C.elem = import_ref Main//a, loc4_16, loaded [concrete = %.a44] +// CHECK:STDOUT: %.a44: %C.elem = field_decl v, element0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -152,15 +152,15 @@ var a_val: a = {.v = b_val.v}; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.146 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .v = imports.%Main.import_ref.b80 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .v = imports.%Main.import_ref.0c6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc7_23.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_24.1: %struct_type.v = struct_literal (%.loc7_23.1) [concrete = constants.%struct.5f2] -// CHECK:STDOUT: %.loc7_24.2: ref %empty_tuple.type = class_element_access file.%d_val.var, element0 [concrete = constants.%.c57] +// CHECK:STDOUT: %.loc7_24.2: ref %empty_tuple.type = class_element_access file.%d_val.var, element0 [concrete = constants.%.30c] // CHECK:STDOUT: %.loc7_23.2: init %empty_tuple.type to %.loc7_24.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_24.3: init %empty_tuple.type = converted %.loc7_23.1, %.loc7_23.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_24.4: init %empty_tuple.type to %.loc7_24.2 = in_place_init %.loc7_24.3 [concrete = constants.%empty_tuple] @@ -168,10 +168,10 @@ var a_val: a = {.v = b_val.v}; // CHECK:STDOUT: %.loc7_1: init %C = converted %.loc7_24.1, %.loc7_24.5 [concrete = constants.%C.val] // CHECK:STDOUT: assign file.%d_val.var, %.loc7_1 // CHECK:STDOUT: %d_val.ref: ref %C = name_ref d_val, file.%d_val [concrete = file.%d_val.var] -// CHECK:STDOUT: %v.ref.loc8: %C.elem = name_ref v, imports.%Main.import_ref.b80 [concrete = imports.%.f9a] -// CHECK:STDOUT: %.loc8_27.1: ref %empty_tuple.type = class_element_access %d_val.ref, element0 [concrete = constants.%.c57] -// CHECK:STDOUT: %.loc8_29.1: %struct_type.v = struct_literal (%.loc8_27.1) [concrete = constants.%struct.51e] -// CHECK:STDOUT: %.loc8_29.2: ref %empty_tuple.type = class_element_access file.%c_val.var, element0 [concrete = constants.%.6a6] +// CHECK:STDOUT: %v.ref.loc8: %C.elem = name_ref v, imports.%Main.import_ref.0c6 [concrete = imports.%.a44] +// CHECK:STDOUT: %.loc8_27.1: ref %empty_tuple.type = class_element_access %d_val.ref, element0 [concrete = constants.%.30c] +// CHECK:STDOUT: %.loc8_29.1: %struct_type.v = struct_literal (%.loc8_27.1) [concrete = constants.%struct.1dc] +// CHECK:STDOUT: %.loc8_29.2: ref %empty_tuple.type = class_element_access file.%c_val.var, element0 [concrete = constants.%.0bf] // CHECK:STDOUT: %.loc8_27.2: init %empty_tuple.type to %.loc8_29.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_29.3: init %empty_tuple.type = converted %.loc8_27.1, %.loc8_27.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_29.4: init %empty_tuple.type to %.loc8_29.2 = in_place_init %.loc8_29.3 [concrete = constants.%empty_tuple] @@ -179,10 +179,10 @@ var a_val: a = {.v = b_val.v}; // CHECK:STDOUT: %.loc8_1: init %C = converted %.loc8_29.1, %.loc8_29.5 [concrete = constants.%C.val] // CHECK:STDOUT: assign file.%c_val.var, %.loc8_1 // CHECK:STDOUT: %c_val.ref: ref %C = name_ref c_val, file.%c_val [concrete = file.%c_val.var] -// CHECK:STDOUT: %v.ref.loc9: %C.elem = name_ref v, imports.%Main.import_ref.b80 [concrete = imports.%.f9a] -// CHECK:STDOUT: %.loc9_27.1: ref %empty_tuple.type = class_element_access %c_val.ref, element0 [concrete = constants.%.6a6] -// CHECK:STDOUT: %.loc9_29.1: %struct_type.v = struct_literal (%.loc9_27.1) [concrete = constants.%struct.947] -// CHECK:STDOUT: %.loc9_29.2: ref %empty_tuple.type = class_element_access file.%b_val.var, element0 [concrete = constants.%.01b] +// CHECK:STDOUT: %v.ref.loc9: %C.elem = name_ref v, imports.%Main.import_ref.0c6 [concrete = imports.%.a44] +// CHECK:STDOUT: %.loc9_27.1: ref %empty_tuple.type = class_element_access %c_val.ref, element0 [concrete = constants.%.0bf] +// CHECK:STDOUT: %.loc9_29.1: %struct_type.v = struct_literal (%.loc9_27.1) [concrete = constants.%struct.2e7] +// CHECK:STDOUT: %.loc9_29.2: ref %empty_tuple.type = class_element_access file.%b_val.var, element0 [concrete = constants.%.9b2] // CHECK:STDOUT: %.loc9_27.2: init %empty_tuple.type to %.loc9_29.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc9_29.3: init %empty_tuple.type = converted %.loc9_27.1, %.loc9_27.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc9_29.4: init %empty_tuple.type to %.loc9_29.2 = in_place_init %.loc9_29.3 [concrete = constants.%empty_tuple] @@ -190,10 +190,10 @@ var a_val: a = {.v = b_val.v}; // CHECK:STDOUT: %.loc9_1: init %C = converted %.loc9_29.1, %.loc9_29.5 [concrete = constants.%C.val] // CHECK:STDOUT: assign file.%b_val.var, %.loc9_1 // CHECK:STDOUT: %b_val.ref: ref %C = name_ref b_val, file.%b_val [concrete = file.%b_val.var] -// CHECK:STDOUT: %v.ref.loc10: %C.elem = name_ref v, imports.%Main.import_ref.b80 [concrete = imports.%.f9a] -// CHECK:STDOUT: %.loc10_27.1: ref %empty_tuple.type = class_element_access %b_val.ref, element0 [concrete = constants.%.01b] -// CHECK:STDOUT: %.loc10_29.1: %struct_type.v = struct_literal (%.loc10_27.1) [concrete = constants.%struct.7df] -// CHECK:STDOUT: %.loc10_29.2: ref %empty_tuple.type = class_element_access file.%a_val.var, element0 [concrete = constants.%.b9e] +// CHECK:STDOUT: %v.ref.loc10: %C.elem = name_ref v, imports.%Main.import_ref.0c6 [concrete = imports.%.a44] +// CHECK:STDOUT: %.loc10_27.1: ref %empty_tuple.type = class_element_access %b_val.ref, element0 [concrete = constants.%.9b2] +// CHECK:STDOUT: %.loc10_29.1: %struct_type.v = struct_literal (%.loc10_27.1) [concrete = constants.%struct.8ba] +// CHECK:STDOUT: %.loc10_29.2: ref %empty_tuple.type = class_element_access file.%a_val.var, element0 [concrete = constants.%.028] // CHECK:STDOUT: %.loc10_27.2: init %empty_tuple.type to %.loc10_29.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc10_29.3: init %empty_tuple.type = converted %.loc10_27.1, %.loc10_27.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc10_29.4: init %empty_tuple.type to %.loc10_29.2 = in_place_init %.loc10_29.3 [concrete = constants.%empty_tuple] diff --git a/toolchain/check/testdata/array/basics.carbon b/toolchain/check/testdata/array/basics.carbon index b5f734a69b55..cfb459907ae8 100644 --- a/toolchain/check/testdata/array/basics.carbon +++ b/toolchain/check/testdata/array/basics.carbon @@ -173,40 +173,40 @@ var a: array(1, 1); // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %tuple.type.ff9: type = tuple_type (type, type, type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.ff9 = tuple_value (%C, %C, %C) [concrete] -// CHECK:STDOUT: %tuple.type.851: type = tuple_type (%C, %C, %C) [concrete] +// CHECK:STDOUT: %tuple.type.a8c: type = tuple_type (%C, %C, %C) [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %array_type: type = array_type %int_2, %tuple.type.851 [concrete] -// CHECK:STDOUT: %pattern_type.05c: type = pattern_type %array_type [concrete] -// CHECK:STDOUT: %tuple.type.ac5: type = tuple_type (%tuple.type.851, %tuple.type.851) [concrete] +// CHECK:STDOUT: %array_type: type = array_type %int_2, %tuple.type.a8c [concrete] +// CHECK:STDOUT: %pattern_type.c3e: type = pattern_type %array_type [concrete] +// 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.790b3b.4: type = fn_type @Destroy.Op.loc10_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.05c = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.05c = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.c3e = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.c3e = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %array_type = var %v.var_patt // CHECK:STDOUT: %F.ref.loc10_40: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %.loc10_48.1: ref %tuple.type.851 = splice_block %.loc10_48.6 { +// CHECK:STDOUT: %.loc10_48.1: ref %tuple.type.a8c = splice_block %.loc10_48.6 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %.loc10_48.6: ref %tuple.type.851 = array_index %v.var, %int_0 +// CHECK:STDOUT: %.loc10_48.6: ref %tuple.type.a8c = array_index %v.var, %int_0 // CHECK:STDOUT: } -// CHECK:STDOUT: %F.call.loc10_42: init %tuple.type.851 to %.loc10_48.1 = call %F.ref.loc10_40() +// CHECK:STDOUT: %F.call.loc10_42: init %tuple.type.a8c to %.loc10_48.1 = call %F.ref.loc10_40() // CHECK:STDOUT: %F.ref.loc10_45: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %.loc10_48.2: ref %tuple.type.851 = splice_block %.loc10_48.5 { +// CHECK:STDOUT: %.loc10_48.2: ref %tuple.type.a8c = splice_block %.loc10_48.5 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] -// CHECK:STDOUT: %.loc10_48.5: ref %tuple.type.851 = array_index %v.var, %int_1 +// CHECK:STDOUT: %.loc10_48.5: ref %tuple.type.a8c = array_index %v.var, %int_1 // CHECK:STDOUT: } -// CHECK:STDOUT: %F.call.loc10_47: init %tuple.type.851 to %.loc10_48.2 = call %F.ref.loc10_45() -// CHECK:STDOUT: %.loc10_48.3: %tuple.type.ac5 = tuple_literal (%F.call.loc10_42, %F.call.loc10_47) +// CHECK:STDOUT: %F.call.loc10_47: init %tuple.type.a8c to %.loc10_48.2 = call %F.ref.loc10_45() +// CHECK:STDOUT: %.loc10_48.3: %tuple.type.8c7 = tuple_literal (%F.call.loc10_42, %F.call.loc10_47) // CHECK:STDOUT: %.loc10_48.4: init %array_type to %v.var = array_init (%F.call.loc10_42, %F.call.loc10_47) // CHECK:STDOUT: %.loc10_3: init %array_type = converted %.loc10_48.3, %.loc10_48.4 // CHECK:STDOUT: assign %v.var, %.loc10_3 @@ -216,11 +216,11 @@ var a: array(1, 1); // CHECK:STDOUT: %C.ref.loc10_30: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc10_31.1: %tuple.type.ff9 = tuple_literal (%C.ref.loc10_24, %C.ref.loc10_27, %C.ref.loc10_30) [concrete = constants.%tuple] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] -// CHECK:STDOUT: %.loc10_31.2: type = converted %.loc10_31.1, constants.%tuple.type.851 [concrete = constants.%tuple.type.851] +// CHECK:STDOUT: %.loc10_31.2: type = converted %.loc10_31.1, constants.%tuple.type.a8c [concrete = constants.%tuple.type.a8c] // CHECK:STDOUT: %array_type: type = array_type %int_2, %.loc10_31.2 [concrete = constants.%array_type] // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref %array_type = ref_binding v, %v.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.2dd605.4 +// 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: // CHECK:STDOUT: } @@ -232,7 +232,7 @@ var a: array(1, 1); // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.3(%self.param: ref %tuple.type.851) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_3.3(%self.param: ref %tuple.type.a8c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -252,24 +252,24 @@ var a: array(1, 1); // CHECK:STDOUT: %pattern_type.035: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.227: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%array_type) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.c44: %DefaultOrUnformed.type = facet_value %array_type, (%DefaultOrUnformed.impl_witness.227) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.3c6: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%array_type) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.b2c: %DefaultOrUnformed.type = facet_value %array_type, (%DefaultOrUnformed.impl_witness.3c6) [concrete] // CHECK:STDOUT: %tuple.type: type = tuple_type (%empty_tuple.type, %empty_tuple.type, %empty_tuple.type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%empty_tuple, %empty_tuple, %empty_tuple) [concrete] // CHECK:STDOUT: %pattern_type.8c1: type = pattern_type %tuple.type [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.55e: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%tuple.type) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.c29: %DefaultOrUnformed.type = facet_value %tuple.type, (%DefaultOrUnformed.impl_witness.55e) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc7 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.762: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%tuple.type) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.38b: %DefaultOrUnformed.type = facet_value %tuple.type, (%DefaultOrUnformed.impl_witness.762) [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { @@ -279,8 +279,8 @@ var a: array(1, 1); // CHECK:STDOUT: %a.var_patt: %pattern_type.035 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %array_type = var %a.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7: %DefaultOrUnformed.type = facet_value constants.%array_type, (constants.%DefaultOrUnformed.impl_witness.227) [concrete = constants.%DefaultOrUnformed.facet.c44] -// CHECK:STDOUT: %.loc7_29.1: %DefaultOrUnformed.type = converted constants.%array_type, %DefaultOrUnformed.facet.loc7 [concrete = constants.%DefaultOrUnformed.facet.c44] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7: %DefaultOrUnformed.type = facet_value constants.%array_type, (constants.%DefaultOrUnformed.impl_witness.3c6) [concrete = constants.%DefaultOrUnformed.facet.b2c] +// CHECK:STDOUT: %.loc7_29.1: %DefaultOrUnformed.type = converted constants.%array_type, %DefaultOrUnformed.facet.loc7 [concrete = constants.%DefaultOrUnformed.facet.b2c] // CHECK:STDOUT: %as_type.loc7: type = facet_access_type %.loc7_29.1 [concrete = constants.%array_type] // CHECK:STDOUT: %.loc7_29.2: type = converted %.loc7_29.1, %as_type.loc7 [concrete = constants.%array_type] // CHECK:STDOUT: @@ -299,8 +299,8 @@ var a: array(1, 1); // CHECK:STDOUT: %b.var_patt: %pattern_type.8c1 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %tuple.type = var %b.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%tuple.type, (constants.%DefaultOrUnformed.impl_witness.55e) [concrete = constants.%DefaultOrUnformed.facet.c29] -// CHECK:STDOUT: %.loc8_29.1: %DefaultOrUnformed.type = converted constants.%tuple.type, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.c29] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%tuple.type, (constants.%DefaultOrUnformed.impl_witness.762) [concrete = constants.%DefaultOrUnformed.facet.38b] +// CHECK:STDOUT: %.loc8_29.1: %DefaultOrUnformed.type = converted constants.%tuple.type, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.38b] // CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_29.1 [concrete = constants.%tuple.type] // CHECK:STDOUT: %.loc8_29.2: type = converted %.loc8_29.1, %as_type.loc8 [concrete = constants.%tuple.type] // CHECK:STDOUT: @@ -318,9 +318,9 @@ var a: array(1, 1); // CHECK:STDOUT: %.loc8_28.6: type = converted %.loc8_28.2, constants.%tuple.type [concrete = constants.%tuple.type] // CHECK:STDOUT: } // CHECK:STDOUT: %b: ref %tuple.type = ref_binding b, %b.var -// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %b.var, constants.%Destroy.Op.2dd605.2 +// 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.2dd605.3 +// 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: // CHECK:STDOUT: } @@ -350,10 +350,10 @@ var a: array(1, 1); // CHECK:STDOUT: %pattern_type.fe8: type = pattern_type %array_type [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.790b3b.2: type = fn_type @Destroy.Op.loc8_34.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc8_3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { @@ -383,9 +383,9 @@ var a: array(1, 1); // CHECK:STDOUT: %array_type: type = array_type %int_1, %.loc8_24.2 [concrete = constants.%array_type] // CHECK:STDOUT: } // CHECK:STDOUT: %t: ref %array_type = ref_binding t, %t.var -// CHECK:STDOUT: %Destroy.Op.bound.loc8_34: = bound_method %.loc8_34.2, constants.%Destroy.Op.2dd605.2 +// 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.2dd605.3 +// 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: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/array/bound_values.carbon b/toolchain/check/testdata/array/bound_values.carbon index 798dce15c521..9940cde8a559 100644 --- a/toolchain/check/testdata/array/bound_values.carbon +++ b/toolchain/check/testdata/array/bound_values.carbon @@ -72,11 +72,11 @@ var b: array(1, 39999999999999999993); // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %AddWith.type.9af: type = facet_type <@AddWith, @AddWith(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %AddWith.type.832: type = facet_type <@AddWith, @AddWith(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %AddWith.impl_witness: = impl_witness imports.%AddWith.impl_witness_table [concrete] -// CHECK:STDOUT: %AddWith.facet: %AddWith.type.9af = facet_value Core.IntLiteral, (%AddWith.impl_witness) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.2fc: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(Core.IntLiteral, %AddWith.facet) [concrete] -// CHECK:STDOUT: %.799: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.2fc, %AddWith.facet [concrete] +// CHECK:STDOUT: %AddWith.facet: %AddWith.type.832 = facet_value Core.IntLiteral, (%AddWith.impl_witness) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.24b: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(Core.IntLiteral, %AddWith.facet) [concrete] +// CHECK:STDOUT: %.0f2: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.24b, %AddWith.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.AddWith.impl.Op.type: type = fn_type @Core.IntLiteral.as.AddWith.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.AddWith.impl.Op: %Core.IntLiteral.as.AddWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.AddWith.impl.Op.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.AddWith.impl.Op [concrete] @@ -86,8 +86,8 @@ var b: array(1, 39999999999999999993); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core.import_ref.abd = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63: %Core.IntLiteral.as.AddWith.impl.Op.type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.AddWith.impl.Op] -// CHECK:STDOUT: %AddWith.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.f63), @Core.IntLiteral.as.AddWith.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Core.IntLiteral.as.AddWith.impl.Op.type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.AddWith.impl.Op] +// CHECK:STDOUT: %AddWith.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.9c3), @Core.IntLiteral.as.AddWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -95,7 +95,7 @@ var b: array(1, 39999999999999999993); // CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem1: %.799 = impl_witness_access constants.%AddWith.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.AddWith.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.0f2 = impl_witness_access constants.%AddWith.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.AddWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %int_1, %impl.elem1 [concrete = constants.%Core.IntLiteral.as.AddWith.impl.Op.bound] // CHECK:STDOUT: %Core.IntLiteral.as.AddWith.impl.Op.call: init Core.IntLiteral = call %bound_method(%int_1, %int_2) [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc6_18.1: Core.IntLiteral = value_of_initializer %Core.IntLiteral.as.AddWith.impl.Op.call [concrete = constants.%int_3.1ba] @@ -116,41 +116,41 @@ var b: array(1, 39999999999999999993); // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] -// CHECK:STDOUT: %As.type.1f3: type = facet_type <@As, @As(%u32)> [concrete] +// CHECK:STDOUT: %As.type.8bf: type = facet_type <@As, @As(%u32)> [concrete] // CHECK:STDOUT: %To.fe9: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.150: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.b6a: %Core.IntLiteral.as.As.impl.Convert.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.fb3: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.f86: %Core.IntLiteral.as.As.impl.Convert.type.fb3 = struct_value () [symbolic] // CHECK:STDOUT: %From.fe9: Core.IntLiteral = symbolic_binding From, 0 [symbolic] -// CHECK:STDOUT: %As.impl_witness.e23: = impl_witness imports.%As.impl_witness_table.613, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.ad9: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.046: %Core.IntLiteral.as.As.impl.Convert.type.ad9 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.1f3 = facet_value Core.IntLiteral, (%As.impl_witness.e23) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.027: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%u32, %As.facet) [concrete] -// CHECK:STDOUT: %.da2: type = fn_type_with_self_type %As.WithSelf.Convert.type.027, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_3.1ba, %Core.IntLiteral.as.As.impl.Convert.046 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.046, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.b52: = bound_method %int_3.1ba, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.ae2: %u32 = int_value 3 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.type.594: type = fn_type @UInt.as.ImplicitAs.impl.Convert.1, @UInt.as.ImplicitAs.impl.791(%From.fe9) [symbolic] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.141: %UInt.as.ImplicitAs.impl.Convert.type.594 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.7fa: = impl_witness imports.%ImplicitAs.impl_witness_table.1b2, @UInt.as.ImplicitAs.impl.791(%int_32) [concrete] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.type.913: type = fn_type @UInt.as.ImplicitAs.impl.Convert.1, @UInt.as.ImplicitAs.impl.791(%int_32) [concrete] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.585: %UInt.as.ImplicitAs.impl.Convert.type.913 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.43a: %ImplicitAs.type.ace = facet_value %u32, (%ImplicitAs.impl_witness.7fa) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c1e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.43a) [concrete] -// CHECK:STDOUT: %.e98: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c1e, %ImplicitAs.facet.43a [concrete] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.bound: = bound_method %int_3.ae2, %UInt.as.ImplicitAs.impl.Convert.585 [concrete] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %UInt.as.ImplicitAs.impl.Convert.585, @UInt.as.ImplicitAs.impl.Convert.1(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.70f: = bound_method %int_3.ae2, %UInt.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %As.impl_witness.384: = impl_witness imports.%As.impl_witness_table.8fa, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.afd: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.776: %Core.IntLiteral.as.As.impl.Convert.type.afd = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.8bf = facet_value Core.IntLiteral, (%As.impl_witness.384) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.adb: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%u32, %As.facet) [concrete] +// CHECK:STDOUT: %.74e: type = fn_type_with_self_type %As.WithSelf.Convert.type.adb, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_3.1ba, %Core.IntLiteral.as.As.impl.Convert.776 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.776, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.407: = bound_method %int_3.1ba, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_3.543: %u32 = int_value 3 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.type.3ec: type = fn_type @UInt.as.ImplicitAs.impl.Convert.1, @UInt.as.ImplicitAs.impl.3d3(%From.fe9) [symbolic] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.06e: %UInt.as.ImplicitAs.impl.Convert.type.3ec = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.4e9: = impl_witness imports.%ImplicitAs.impl_witness_table.a83, @UInt.as.ImplicitAs.impl.3d3(%int_32) [concrete] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.type.7ad: type = fn_type @UInt.as.ImplicitAs.impl.Convert.1, @UInt.as.ImplicitAs.impl.3d3(%int_32) [concrete] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.364: %UInt.as.ImplicitAs.impl.Convert.type.7ad = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.6c0: %ImplicitAs.type.7cb = facet_value %u32, (%ImplicitAs.impl_witness.4e9) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.74c: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.6c0) [concrete] +// CHECK:STDOUT: %.c85: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.74c, %ImplicitAs.facet.6c0 [concrete] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.bound: = bound_method %int_3.543, %UInt.as.ImplicitAs.impl.Convert.364 [concrete] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %UInt.as.ImplicitAs.impl.Convert.364, @UInt.as.ImplicitAs.impl.Convert.1(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.51a: = bound_method %int_3.543, %UInt.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_3.1ba, %i32 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.8db: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.150) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.b6a)] -// CHECK:STDOUT: %As.impl_witness_table.613 = impl_witness_table (%Core.import_ref.8db), @Core.IntLiteral.as.As.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.96b: @UInt.as.ImplicitAs.impl.791.%UInt.as.ImplicitAs.impl.Convert.type (%UInt.as.ImplicitAs.impl.Convert.type.594) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @UInt.as.ImplicitAs.impl.791.%UInt.as.ImplicitAs.impl.Convert (constants.%UInt.as.ImplicitAs.impl.Convert.141)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.1b2 = impl_witness_table (%Core.import_ref.96b), @UInt.as.ImplicitAs.impl.791 [concrete] +// CHECK:STDOUT: %Core.import_ref.59a: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.fb3) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.f86)] +// CHECK:STDOUT: %As.impl_witness_table.8fa = impl_witness_table (%Core.import_ref.59a), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.baa: @UInt.as.ImplicitAs.impl.3d3.%UInt.as.ImplicitAs.impl.Convert.type (%UInt.as.ImplicitAs.impl.Convert.type.3ec) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @UInt.as.ImplicitAs.impl.3d3.%UInt.as.ImplicitAs.impl.Convert (constants.%UInt.as.ImplicitAs.impl.Convert.06e)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a83 = impl_witness_table (%Core.import_ref.baa), @UInt.as.ImplicitAs.impl.3d3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -158,17 +158,17 @@ var b: array(1, 39999999999999999993); // CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %int_3.loc6: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %u32: type = type_literal constants.%u32 [concrete = constants.%u32] -// CHECK:STDOUT: %impl.elem0.loc6_18.1: %.da2 = impl_witness_access constants.%As.impl_witness.e23, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.046] +// CHECK:STDOUT: %impl.elem0.loc6_18.1: %.74e = impl_witness_access constants.%As.impl_witness.384, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.776] // CHECK:STDOUT: %bound_method.loc6_18.1: = bound_method %int_3.loc6, %impl.elem0.loc6_18.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc6_18.1: = specific_function %impl.elem0.loc6_18.1, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_18.2: = bound_method %int_3.loc6, %specific_fn.loc6_18.1 [concrete = constants.%bound_method.b52] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %u32 = call %bound_method.loc6_18.2(%int_3.loc6) [concrete = constants.%int_3.ae2] -// CHECK:STDOUT: %.loc6_18.1: %u32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_3.ae2] -// CHECK:STDOUT: %.loc6_18.2: %u32 = converted %int_3.loc6, %.loc6_18.1 [concrete = constants.%int_3.ae2] -// CHECK:STDOUT: %impl.elem0.loc6_18.2: %.e98 = impl_witness_access constants.%ImplicitAs.impl_witness.7fa, element0 [concrete = constants.%UInt.as.ImplicitAs.impl.Convert.585] +// CHECK:STDOUT: %bound_method.loc6_18.2: = bound_method %int_3.loc6, %specific_fn.loc6_18.1 [concrete = constants.%bound_method.407] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %u32 = call %bound_method.loc6_18.2(%int_3.loc6) [concrete = constants.%int_3.543] +// CHECK:STDOUT: %.loc6_18.1: %u32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_3.543] +// CHECK:STDOUT: %.loc6_18.2: %u32 = converted %int_3.loc6, %.loc6_18.1 [concrete = constants.%int_3.543] +// CHECK:STDOUT: %impl.elem0.loc6_18.2: %.c85 = impl_witness_access constants.%ImplicitAs.impl_witness.4e9, element0 [concrete = constants.%UInt.as.ImplicitAs.impl.Convert.364] // CHECK:STDOUT: %bound_method.loc6_18.3: = bound_method %.loc6_18.2, %impl.elem0.loc6_18.2 [concrete = constants.%UInt.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc6_18.2: = specific_function %impl.elem0.loc6_18.2, @UInt.as.ImplicitAs.impl.Convert.1(constants.%int_32) [concrete = constants.%UInt.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_18.4: = bound_method %.loc6_18.2, %specific_fn.loc6_18.2 [concrete = constants.%bound_method.70f] +// CHECK:STDOUT: %bound_method.loc6_18.4: = bound_method %.loc6_18.2, %specific_fn.loc6_18.2 [concrete = constants.%bound_method.51a] // CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.loc6_18.4(%.loc6_18.2) [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc6_18.3: Core.IntLiteral = value_of_initializer %UInt.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc6_18.4: Core.IntLiteral = converted %.loc6_18.2, %.loc6_18.3 [concrete = constants.%int_3.1ba] diff --git a/toolchain/check/testdata/array/import.carbon b/toolchain/check/testdata/array/import.carbon index aa29f8499142..e18d12c96bab 100644 --- a/toolchain/check/testdata/array/import.carbon +++ b/toolchain/check/testdata/array/import.carbon @@ -63,23 +63,23 @@ fn F() -> i32 { // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_42, %i32 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc6_12.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.F: %F.type = import_ref Main//library, F, loaded [concrete = constants.%F] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%n.param: %i32) -> out %return.param: %i32 { @@ -91,12 +91,12 @@ fn F() -> i32 { // CHECK:STDOUT: %.loc6_12.2: ref %array_type = temporary %.loc6_12.1, %F.call // CHECK:STDOUT: %.loc6_15.1: ref %i32 = array_index %.loc6_12.2, %n.ref // CHECK:STDOUT: %.loc6_15.2: %i32 = acquire_value %.loc6_15.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_15.1: = bound_method %.loc6_15.2, %impl.elem0 // 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.2dd605.3 +// 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: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } @@ -120,31 +120,31 @@ fn F() -> i32 { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.34b: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.97e: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.d9c) [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.0c6) [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.b32: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.e8e [concrete] +// CHECK:STDOUT: %assoc0.524: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.98e [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//symbolic_decl, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.C: type = import_ref Main//symbolic_decl, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.444: %I.assoc_type = import_ref Main//symbolic_decl, loc5_12, loaded [concrete = constants.%assoc0.b32] -// CHECK:STDOUT: %Main.import_ref.ffc: %array_type = import_ref Main//symbolic_decl, loc10_33, loaded [concrete = constants.%array] -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.ffc), @C.as.I.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.e8e: %array_type = import_ref Main//symbolic_decl, loc5_12, loaded [concrete = %value] +// CHECK:STDOUT: %Main.import_ref.3ab: %I.assoc_type = import_ref Main//symbolic_decl, loc5_12, loaded [concrete = constants.%assoc0.524] +// CHECK:STDOUT: %Main.import_ref.c09: %array_type = import_ref Main//symbolic_decl, loc10_33, loaded [concrete = constants.%array] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.c09), @C.as.I.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.98e: %array_type = import_ref Main//symbolic_decl, loc5_12, loaded [concrete = %value] // CHECK:STDOUT: %value: %array_type = assoc_const_decl @value [concrete] {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.34b = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.97e = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] @@ -152,7 +152,7 @@ fn F() -> i32 { // CHECK:STDOUT: %.loc7_29: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_29 [concrete = constants.%C] // CHECK:STDOUT: %.loc7_34: type = converted %.loc7_29, %as_type [concrete = constants.%C] -// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.444 [concrete = constants.%assoc0.b32] +// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.3ab [concrete = constants.%assoc0.524] // CHECK:STDOUT: %impl.elem0.loc7: %array_type = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%array] // CHECK:STDOUT: %.loc7_22: type = splice_block %array_type [concrete = constants.%array_type] { // CHECK:STDOUT: %i32.loc7: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/array/index_not_literal.carbon b/toolchain/check/testdata/array/index_not_literal.carbon index ba98c16faec7..8551e9ca560c 100644 --- a/toolchain/check/testdata/array/index_not_literal.carbon +++ b/toolchain/check/testdata/array/index_not_literal.carbon @@ -59,52 +59,52 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %tuple.type.37f: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.2d5: %tuple.type.37f = tuple_value (%int_1.5b8, %int_2.ecc, %int_3.1ba) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.d9c, %int_2.228, %int_3.6cc) [concrete] -// CHECK:STDOUT: %.2d4: ref %array_type = temporary invalid, %array [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc10_20.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.2d4, %Destroy.Op.2dd605.3 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %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] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%arr.param: %array_type, %i.param: %i32) -> out %return.param: %i32 { @@ -114,7 +114,7 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %.loc4_15.1: ref %array_type = value_as_ref %arr.ref // CHECK:STDOUT: %.loc4_15.2: ref %i32 = array_index %.loc4_15.1, %i.ref // CHECK:STDOUT: %.loc4_15.3: %i32 = acquire_value %.loc4_15.2 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc4_15.1: = bound_method %.loc4_15.3, %impl.elem0 // 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.loc4_15.2: = bound_method %.loc4_15.3, %specific_fn @@ -130,47 +130,47 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc10_20.1: %tuple.type.37f = tuple_literal (%int_1.loc10_13, %int_2.loc10_16, %int_3) [concrete = constants.%tuple.2d5] // CHECK:STDOUT: %int_1.loc10_23: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc10_20.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_20.1: = bound_method %int_1.loc10_13, %impl.elem0.loc10_20.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc10_20.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_20.1: = bound_method %int_1.loc10_13, %impl.elem0.loc10_20.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc10_20.1: = specific_function %impl.elem0.loc10_20.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_20.2: = bound_method %int_1.loc10_13, %specific_fn.loc10_20.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_20.1: init %i32 = call %bound_method.loc10_20.2(%int_1.loc10_13) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc10_20.2: init %i32 = converted %int_1.loc10_13, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_20.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc10_20.2: = bound_method %int_1.loc10_13, %specific_fn.loc10_20.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_20.1: init %i32 = call %bound_method.loc10_20.2(%int_1.loc10_13) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc10_20.2: init %i32 = converted %int_1.loc10_13, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_20.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc10_20.3: ref %array_type = temporary_storage // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc10_20.4: ref %i32 = array_index %.loc10_20.3, %int_0 -// CHECK:STDOUT: %.loc10_20.5: init %i32 to %.loc10_20.4 = in_place_init %.loc10_20.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc10_20.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_20.3: = bound_method %int_2.loc10_16, %impl.elem0.loc10_20.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc10_20.5: init %i32 to %.loc10_20.4 = in_place_init %.loc10_20.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc10_20.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_20.3: = bound_method %int_2.loc10_16, %impl.elem0.loc10_20.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc10_20.2: = specific_function %impl.elem0.loc10_20.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_20.4: = bound_method %int_2.loc10_16, %specific_fn.loc10_20.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_20.2: init %i32 = call %bound_method.loc10_20.4(%int_2.loc10_16) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc10_20.6: init %i32 = converted %int_2.loc10_16, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_20.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc10_20.4: = bound_method %int_2.loc10_16, %specific_fn.loc10_20.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_20.2: init %i32 = call %bound_method.loc10_20.4(%int_2.loc10_16) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc10_20.6: init %i32 = converted %int_2.loc10_16, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_20.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %int_1.loc10_20: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc10_20.7: ref %i32 = array_index %.loc10_20.3, %int_1.loc10_20 -// CHECK:STDOUT: %.loc10_20.8: init %i32 to %.loc10_20.7 = in_place_init %.loc10_20.6 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %impl.elem0.loc10_20.3: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_20.5: = bound_method %int_3, %impl.elem0.loc10_20.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %.loc10_20.8: init %i32 to %.loc10_20.7 = in_place_init %.loc10_20.6 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %impl.elem0.loc10_20.3: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_20.5: = bound_method %int_3, %impl.elem0.loc10_20.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc10_20.3: = specific_function %impl.elem0.loc10_20.3, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_20.6: = bound_method %int_3, %specific_fn.loc10_20.3 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_20.3: init %i32 = call %bound_method.loc10_20.6(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc10_20.9: init %i32 = converted %int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_20.3 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc10_20.6: = bound_method %int_3, %specific_fn.loc10_20.3 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_20.3: init %i32 = call %bound_method.loc10_20.6(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc10_20.9: init %i32 = converted %int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_20.3 [concrete = constants.%int_3.410] // CHECK:STDOUT: %int_2.loc10_20: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc10_20.10: ref %i32 = array_index %.loc10_20.3, %int_2.loc10_20 -// CHECK:STDOUT: %.loc10_20.11: init %i32 to %.loc10_20.10 = in_place_init %.loc10_20.9 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %.loc10_20.11: init %i32 to %.loc10_20.10 = in_place_init %.loc10_20.9 [concrete = constants.%int_3.410] // CHECK:STDOUT: %.loc10_20.12: init %array_type to %.loc10_20.3 = array_init (%.loc10_20.5, %.loc10_20.8, %.loc10_20.11) [concrete = constants.%array] // CHECK:STDOUT: %.loc10_20.13: init %array_type = converted %.loc10_20.1, %.loc10_20.12 [concrete = constants.%array] -// CHECK:STDOUT: %.loc10_20.14: ref %array_type = temporary %.loc10_20.3, %.loc10_20.13 [concrete = constants.%.2d4] +// CHECK:STDOUT: %.loc10_20.14: ref %array_type = temporary %.loc10_20.3, %.loc10_20.13 [concrete = constants.%.981] // CHECK:STDOUT: %.loc10_20.15: %array_type = acquire_value %.loc10_20.14 [concrete = constants.%array] -// CHECK:STDOUT: %impl.elem0.loc10_23: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_23.1: = bound_method %int_1.loc10_23, %impl.elem0.loc10_23 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc10_23: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_23.1: = bound_method %int_1.loc10_23, %impl.elem0.loc10_23 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc10_23: = specific_function %impl.elem0.loc10_23, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_23.2: = bound_method %int_1.loc10_23, %specific_fn.loc10_23 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_23: init %i32 = call %bound_method.loc10_23.2(%int_1.loc10_23) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc10_23.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_23 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc10_23.2: %i32 = converted %int_1.loc10_23, %.loc10_23.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc10_23.2: = bound_method %int_1.loc10_23, %specific_fn.loc10_23 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_23: init %i32 = call %bound_method.loc10_23.2(%int_1.loc10_23) [concrete = constants.%int_1.0c6] +// 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.%.2d4) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.981) // CHECK:STDOUT: return %F.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -198,25 +198,25 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %struct: %struct_type.index = struct_value (%int_2.ecc) [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%a.param: %array_type) -> out %return.param: %empty_struct_type { @@ -227,13 +227,13 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %struct: %struct_type.index = struct_value (%int_2) [concrete = constants.%struct] // CHECK:STDOUT: %.loc6_23.2: %struct_type.index = converted %.loc6_23.1, %struct [concrete = constants.%struct] // CHECK:STDOUT: %.loc6_24.1: Core.IntLiteral = struct_access %.loc6_23.2, element0 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc6_24.1: = bound_method %.loc6_24.1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_24.2: = bound_method %.loc6_24.1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc6_24.2(%.loc6_24.1) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc6_24.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc6_24.3: %i32 = converted %.loc6_24.1, %.loc6_24.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc6_24.2(%.loc6_24.1) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc6_24.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc6_24.3: %i32 = converted %.loc6_24.1, %.loc6_24.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc6_30.1: ref %array_type = value_as_ref %a.ref // CHECK:STDOUT: %.loc6_30.2: ref %empty_struct_type = array_index %.loc6_30.1, %.loc6_24.3 // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct] diff --git a/toolchain/check/testdata/array/init_dependent_bound.carbon b/toolchain/check/testdata/array/init_dependent_bound.carbon index dee554b65b4d..ee4ba3e204fe 100644 --- a/toolchain/check/testdata/array/init_dependent_bound.carbon +++ b/toolchain/check/testdata/array/init_dependent_bound.carbon @@ -69,22 +69,22 @@ fn H() { G(3); } // CHECK:STDOUT: %array.ca4: %array_type.1b3 = tuple_value () [symbolic] // 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.7b5: %Destroy.type = facet_value %array_type.1b3, (%Destroy.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.855: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.7b5) [symbolic] -// CHECK:STDOUT: %.8c2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.855, %Destroy.facet.7b5 [symbolic] -// CHECK:STDOUT: %impl.elem0: %.8c2 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op(%Destroy.facet.7b5) [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: %.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: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %array_type.29f: type = array_type %int_0, %C [concrete] -// CHECK:STDOUT: %complete_type.de5: = complete_type_witness %array_type.29f [concrete] -// CHECK:STDOUT: %pattern_type.ca4: type = pattern_type %array_type.29f [concrete] -// CHECK:STDOUT: %array.656: %array_type.29f = tuple_value () [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] +// CHECK:STDOUT: %pattern_type.6be: type = pattern_type %array_type.988 [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.e20: = custom_witness (%Destroy.Op), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.b41: %Destroy.type = facet_value %array_type.29f, (%custom_witness.e20) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.431: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.b41) [concrete] -// CHECK:STDOUT: %.31c: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.431, %Destroy.facet.b41 [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: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%T.loc4_7.2: type) { @@ -96,10 +96,10 @@ fn H() { G(3); } // CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc7_29.2 [symbolic = %pattern_type (constants.%pattern_type.bd6)] // 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: %Destroy.type = facet_value %array_type.loc7_29.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.7b5)] -// 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.855)] -// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc7_3.2 (constants.%.8c2)] -// CHECK:STDOUT: %impl.elem0.loc7_3.2: @G.%.loc7_3.2 (%.8c2) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %array_type.loc7_29.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.a52)] +// 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.a67)] +// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc7_3.2 (constants.%.1e5)] +// CHECK:STDOUT: %impl.elem0.loc7_3.2: @G.%.loc7_3.2 (%.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) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -119,16 +119,16 @@ fn H() { G(3); } // CHECK:STDOUT: %array_type.loc7_29.1: type = array_type %int_0, %T.ref [symbolic = %array_type.loc7_29.2 (constants.%array_type.1b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %arr: ref @G.%array_type.loc7_29.2 (%array_type.1b3) = ref_binding arr, %arr.var -// CHECK:STDOUT: %impl.elem0.loc7_3.1: @G.%.loc7_3.2 (%.8c2) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc7_3.1: @G.%.loc7_3.2 (%.1e5) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %arr.var, %impl.elem0.loc7_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc7_3.1: = specific_impl_function %impl.elem0.loc7_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.7b5) [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(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.29f) = "no_op"; +// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %array_type.988) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { // CHECK:STDOUT: %T.loc4_7.1 => constants.%T @@ -138,14 +138,14 @@ fn H() { G(3); } // CHECK:STDOUT: %T.loc4_7.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %array_type.loc7_29.2 => constants.%array_type.29f -// CHECK:STDOUT: %require_complete => constants.%complete_type.de5 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ca4 -// CHECK:STDOUT: %array => constants.%array.656 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e20 -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.b41 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.431 -// CHECK:STDOUT: %.loc7_3.2 => constants.%.31c +// CHECK:STDOUT: %array_type.loc7_29.2 => constants.%array_type.988 +// CHECK:STDOUT: %require_complete => constants.%complete_type.e80 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6be +// CHECK:STDOUT: %array => constants.%array.497 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9 +// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.396 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.ccc +// CHECK:STDOUT: %.loc7_3.2 => 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: } @@ -155,42 +155,42 @@ fn H() { G(3); } // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %N.bbe: %i32 = symbolic_binding N, 0, template [template] +// CHECK:STDOUT: %N.37f: %i32 = symbolic_binding N, 0, template [template] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%int_1, %int_2, %int_3.1ba) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %From: Core.IntLiteral = symbolic_binding From, 0 [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.f73: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.34b: %Int.as.ImplicitAs.impl.Convert.type.f73 = struct_value () [symbolic] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.062: = impl_witness imports.%ImplicitAs.impl_witness_table.eac, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.337: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.64e: %Int.as.ImplicitAs.impl.Convert.type.337 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.89e: %ImplicitAs.type.ace = facet_value %i32, (%ImplicitAs.impl_witness.062) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b68: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.89e) [concrete] -// CHECK:STDOUT: %.7a9: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b68, %ImplicitAs.facet.89e [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %int_3.6cc, %Int.as.ImplicitAs.impl.Convert.64e [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.64e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.353: = bound_method %int_3.6cc, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.48d: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.0f9: %Int.as.ImplicitAs.impl.Convert.type.48d = struct_value () [symbolic] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.416: = impl_witness imports.%ImplicitAs.impl_witness_table.b8b, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.683: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.69e: %Int.as.ImplicitAs.impl.Convert.type.683 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.657: %ImplicitAs.type.7cb = facet_value %i32, (%ImplicitAs.impl_witness.416) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.dc6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.657) [concrete] +// CHECK:STDOUT: %.b08: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.dc6, %ImplicitAs.facet.657 [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %int_3.410, %Int.as.ImplicitAs.impl.Convert.69e [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.69e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.545: = bound_method %int_3.410, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %inst.splice_block: = inst_value [concrete] { -// CHECK:STDOUT: %.55d: Core.IntLiteral = splice_block %.437 [concrete = %int_3.1ba] { -// CHECK:STDOUT: %impl.elem0: %.7a9 = impl_witness_access %ImplicitAs.impl_witness.062, element0 [concrete = %Int.as.ImplicitAs.impl.Convert.64e] -// CHECK:STDOUT: %bound_method.d9d: = bound_method %int_3.6cc, %impl.elem0 [concrete = %Int.as.ImplicitAs.impl.Convert.bound] +// CHECK:STDOUT: %.23f: Core.IntLiteral = splice_block %.49c [concrete = %int_3.1ba] { +// CHECK:STDOUT: %impl.elem0: %.b08 = impl_witness_access %ImplicitAs.impl_witness.416, element0 [concrete = %Int.as.ImplicitAs.impl.Convert.69e] +// CHECK:STDOUT: %bound_method.bd7: = bound_method %int_3.410, %impl.elem0 [concrete = %Int.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete = %Int.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.edd: = bound_method %int_3.6cc, %specific_fn [concrete = %bound_method.353] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.edd(%int_3.6cc) [concrete = %int_3.1ba] -// CHECK:STDOUT: %.01e: Core.IntLiteral = value_of_initializer %Int.as.ImplicitAs.impl.Convert.call [concrete = %int_3.1ba] -// CHECK:STDOUT: %.437: Core.IntLiteral = converted %int_3.6cc, %.01e [concrete = %int_3.1ba] +// CHECK:STDOUT: %bound_method.4bf: = bound_method %int_3.410, %specific_fn [concrete = %bound_method.545] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.4bf(%int_3.410) [concrete = %int_3.1ba] +// CHECK:STDOUT: %.382: Core.IntLiteral = value_of_initializer %Int.as.ImplicitAs.impl.Convert.call [concrete = %int_3.1ba] +// CHECK:STDOUT: %.49c: Core.IntLiteral = converted %int_3.410, %.382 [concrete = %int_3.1ba] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.835: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.f73) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.34b)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.eac = impl_witness_table (%Core.import_ref.835), @Int.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.32e: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.48d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.0f9)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b8b = impl_witness_table (%Core.import_ref.32e), @Int.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%N.loc5_16.2: %i32) { @@ -217,12 +217,12 @@ fn H() { G(3); } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G(constants.%N.bbe) { -// CHECK:STDOUT: %N.loc5_16.1 => constants.%N.bbe +// CHECK:STDOUT: specific @G(constants.%N.37f) { +// CHECK:STDOUT: %N.loc5_16.1 => constants.%N.37f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G(constants.%int_3.6cc) { -// CHECK:STDOUT: %N.loc5_16.1 => constants.%int_3.6cc +// CHECK:STDOUT: specific @G(constants.%int_3.410) { +// CHECK:STDOUT: %N.loc5_16.1 => constants.%int_3.410 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %.loc11_30.2 => constants.%inst.splice_block diff --git a/toolchain/check/testdata/as/adapter_conversion.carbon b/toolchain/check/testdata/as/adapter_conversion.carbon index c78521024f0c..0431217b0116 100644 --- a/toolchain/check/testdata/as/adapter_conversion.carbon +++ b/toolchain/check/testdata/as/adapter_conversion.carbon @@ -177,30 +177,30 @@ var b: B = {.x = ()} as B; // CHECK:STDOUT: %A.Make.type: type = fn_type @A.Make [concrete] // CHECK:STDOUT: %A.Make: %A.Make.type = struct_value () [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] -// CHECK:STDOUT: %pattern_type.787: type = pattern_type %B [concrete] -// CHECK:STDOUT: %ptr.294: type = ptr_type %B [concrete] -// CHECK:STDOUT: %pattern_type.bb8: type = pattern_type %ptr.294 [concrete] +// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete] +// CHECK:STDOUT: %ptr.432: type = ptr_type %B [concrete] +// CHECK:STDOUT: %pattern_type.3c8: type = pattern_type %ptr.432 [concrete] // CHECK:STDOUT: %a_ref.var: ref %B = var file.%a_ref.var_patt [concrete] -// CHECK:STDOUT: %addr: %ptr.294 = addr_of %a_ref.var [concrete] +// CHECK:STDOUT: %addr: %ptr.432 = addr_of %a_ref.var [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b_val.patt: %pattern_type.787 = value_binding_pattern b_val [concrete] +// CHECK:STDOUT: %b_val.patt: %pattern_type.e39 = value_binding_pattern b_val [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %B.ref.loc22: type = name_ref B, %B.decl [concrete = constants.%B] // CHECK:STDOUT: %b_val: %B = value_binding b_val, @__global_init.%.loc22_22.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b_ptr.patt: %pattern_type.bb8 = value_binding_pattern b_ptr [concrete] +// CHECK:STDOUT: %b_ptr.patt: %pattern_type.3c8 = value_binding_pattern b_ptr [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc23: type = splice_block %ptr [concrete = constants.%ptr.294] { +// CHECK:STDOUT: %.loc23: type = splice_block %ptr [concrete = constants.%ptr.432] { // CHECK:STDOUT: %B.ref.loc23: type = name_ref B, %B.decl [concrete = constants.%B] -// CHECK:STDOUT: %ptr: type = ptr_type %B.ref.loc23 [concrete = constants.%ptr.294] +// CHECK:STDOUT: %ptr: type = ptr_type %B.ref.loc23 [concrete = constants.%ptr.432] // CHECK:STDOUT: } -// CHECK:STDOUT: %b_ptr: %ptr.294 = value_binding b_ptr, @__global_init.%addr +// CHECK:STDOUT: %b_ptr: %ptr.432 = value_binding b_ptr, @__global_init.%addr // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b_factory.patt: %pattern_type.787 = ref_binding_pattern b_factory [concrete] -// CHECK:STDOUT: %b_factory.var_patt: %pattern_type.787 = var_pattern %b_factory.patt [concrete] +// CHECK:STDOUT: %b_factory.patt: %pattern_type.e39 = ref_binding_pattern b_factory [concrete] +// CHECK:STDOUT: %b_factory.var_patt: %pattern_type.e39 = var_pattern %b_factory.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b_factory.var: ref %B = var %b_factory.var_patt [concrete] // CHECK:STDOUT: %B.ref.loc25: type = name_ref B, %B.decl [concrete = constants.%B] @@ -218,7 +218,7 @@ var b: B = {.x = ()} as B; // CHECK:STDOUT: %B.ref.loc23: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %.loc23_25.1: ref %B = as_compatible %a_ref.ref.loc23 [concrete = constants.%a_ref.var] // CHECK:STDOUT: %.loc23_25.2: ref %B = converted %a_ref.ref.loc23, %.loc23_25.1 [concrete = constants.%a_ref.var] -// CHECK:STDOUT: %addr: %ptr.294 = addr_of %.loc23_25.2 [concrete = constants.%addr] +// CHECK:STDOUT: %addr: %ptr.432 = addr_of %.loc23_25.2 [concrete = constants.%addr] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %Make.ref: %A.Make.type = name_ref Make, @A.%A.Make.decl [concrete = constants.%A.Make] // CHECK:STDOUT: %.loc25_1: ref %B = splice_block file.%b_factory.var [concrete = file.%b_factory.var] {} @@ -236,39 +236,39 @@ var b: B = {.x = ()} as B; // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %As.type.c00: type = facet_type <@As, @As(%i32)> [concrete] +// CHECK:STDOUT: %As.type.155: type = facet_type <@As, @As(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.54d: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.421: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.978: %Core.IntLiteral.as.As.impl.Convert.type.421 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.c00 = facet_value Core.IntLiteral, (%As.impl_witness.54d) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.f0c: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] -// CHECK:STDOUT: %.c18: type = fn_type_with_self_type %As.WithSelf.Convert.type.f0c, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.978 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.978, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.03e: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.e79: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.8a4: %Core.IntLiteral.as.As.impl.Convert.type.e79 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.155 = facet_value Core.IntLiteral, (%As.impl_witness.03e) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.8ea: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] +// CHECK:STDOUT: %.fbc: type = fn_type_with_self_type %As.WithSelf.Convert.type.8ea, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.8a4 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.8a4, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %int_1.64d: %A = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.403: %A = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.ccb = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9ef = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %A.ref: type = name_ref A, %A.decl [concrete = constants.%A] // CHECK:STDOUT: %a: %A = value_binding a, @__global_init.%.loc9_23.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = value_binding_pattern n [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = value_binding_pattern n [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, @__global_init.%.loc10_16.2 @@ -278,16 +278,16 @@ var b: B = {.x = ()} as B; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i32.loc9: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.c18 = impl_witness_access constants.%As.impl_witness.54d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.978] +// CHECK:STDOUT: %impl.elem0: %.fbc = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.8a4] // CHECK:STDOUT: %bound_method.loc9_15.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_15.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc9_15.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc9_15.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc9_15.2: %i32 = converted %int_1, %.loc9_15.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc9_15.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_15.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_15.2: %i32 = converted %int_1, %.loc9_15.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %.loc9_23.1: %A = as_compatible %.loc9_15.2 [concrete = constants.%int_1.64d] -// CHECK:STDOUT: %.loc9_23.2: %A = converted %.loc9_15.2, %.loc9_23.1 [concrete = constants.%int_1.64d] +// CHECK:STDOUT: %.loc9_23.1: %A = as_compatible %.loc9_15.2 [concrete = constants.%int_1.403] +// CHECK:STDOUT: %.loc9_23.2: %A = converted %.loc9_15.2, %.loc9_23.1 [concrete = constants.%int_1.403] // CHECK:STDOUT: %a.ref: %A = name_ref a, file.%a // CHECK:STDOUT: %i32.loc10: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc10_16.1: %i32 = as_compatible %a.ref @@ -330,44 +330,44 @@ var b: B = {.x = ()} as B; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] -// CHECK:STDOUT: %pattern_type.787: type = pattern_type %B [concrete] +// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %struct_type.x.y.4cf: type = struct_type {.x: Core.IntLiteral, .y: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.x.y.4cf = struct_value (%int_1.5b8, %int_2.ecc) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %A.val: %A = struct_value (%int_1.d9c, %int_2.228) [concrete] -// CHECK:STDOUT: %B.val: %B = struct_value (%int_1.d9c, %int_2.228) [concrete] -// CHECK:STDOUT: %.ae0: ref %B = temporary invalid, %B.val [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %A.val: %A = struct_value (%int_1.0c6, %int_2.295) [concrete] +// CHECK:STDOUT: %B.val: %B = struct_value (%int_1.0c6, %int_2.295) [concrete] +// CHECK:STDOUT: %.07b: ref %B = temporary invalid, %B.val [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b_value.patt: %pattern_type.787 = value_binding_pattern b_value [concrete] +// CHECK:STDOUT: %b_value.patt: %pattern_type.e39 = value_binding_pattern b_value [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %B.ref: type = name_ref B, %B.decl [concrete = constants.%B] -// CHECK:STDOUT: %.loc14_42.1: ref %B = temporary @__global_init.%.loc14_34.3, @__global_init.%.loc14_42.2 [concrete = constants.%.ae0] +// CHECK:STDOUT: %.loc14_42.1: ref %B = temporary @__global_init.%.loc14_34.3, @__global_init.%.loc14_42.2 [concrete = constants.%.07b] // CHECK:STDOUT: %.loc14_42.2: %B = acquire_value %.loc14_42.1 [concrete = constants.%B.val] // CHECK:STDOUT: %b_value: %B = value_binding b_value, %.loc14_42.2 // CHECK:STDOUT: } @@ -378,23 +378,23 @@ var b: B = {.x = ()} as B; // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc14_34.1: %struct_type.x.y.4cf = struct_literal (%int_1, %int_2) [concrete = constants.%struct] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %impl.elem0.loc14_34.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc14_34.1: = bound_method %int_1, %impl.elem0.loc14_34.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc14_34.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc14_34.1: = bound_method %int_1, %impl.elem0.loc14_34.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc14_34.1: = specific_function %impl.elem0.loc14_34.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc14_34.2: = bound_method %int_1, %specific_fn.loc14_34.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_34.1: init %i32 = call %bound_method.loc14_34.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc14_34.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_34.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc14_34.2: = bound_method %int_1, %specific_fn.loc14_34.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_34.1: init %i32 = call %bound_method.loc14_34.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc14_34.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_34.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc14_34.3: ref %A = temporary_storage // CHECK:STDOUT: %.loc14_34.4: ref %i32 = class_element_access %.loc14_34.3, element0 -// CHECK:STDOUT: %.loc14_34.5: init %i32 to %.loc14_34.4 = in_place_init %.loc14_34.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc14_34.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc14_34.3: = bound_method %int_2, %impl.elem0.loc14_34.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc14_34.5: init %i32 to %.loc14_34.4 = in_place_init %.loc14_34.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc14_34.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc14_34.3: = bound_method %int_2, %impl.elem0.loc14_34.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc14_34.2: = specific_function %impl.elem0.loc14_34.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc14_34.4: = bound_method %int_2, %specific_fn.loc14_34.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_34.2: init %i32 = call %bound_method.loc14_34.4(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc14_34.6: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_34.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc14_34.4: = bound_method %int_2, %specific_fn.loc14_34.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_34.2: init %i32 = call %bound_method.loc14_34.4(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc14_34.6: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_34.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc14_34.7: ref %i32 = class_element_access %.loc14_34.3, element1 -// CHECK:STDOUT: %.loc14_34.8: init %i32 to %.loc14_34.7 = in_place_init %.loc14_34.6 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %.loc14_34.8: init %i32 to %.loc14_34.7 = in_place_init %.loc14_34.6 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc14_34.9: init %A to %.loc14_34.3 = class_init (%.loc14_34.5, %.loc14_34.8) [concrete = constants.%A.val] // CHECK:STDOUT: %.loc14_36: init %A = converted %.loc14_34.1, %.loc14_34.9 [concrete = constants.%A.val] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] @@ -412,7 +412,7 @@ var b: B = {.x = ()} as B; // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.c8c: type = tuple_type (%empty_struct_type, type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.c8c = tuple_value (%empty_struct, %Noncopyable) [concrete] -// CHECK:STDOUT: %tuple.type.185: type = tuple_type (%empty_struct_type, %Noncopyable) [concrete] +// CHECK:STDOUT: %tuple.type.c68: type = tuple_type (%empty_struct_type, %Noncopyable) [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %A [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -426,9 +426,9 @@ var b: B = {.x = ()} as B; // CHECK:STDOUT: %Noncopyable.ref: type = name_ref Noncopyable, file.%Noncopyable.decl [concrete = constants.%Noncopyable] // CHECK:STDOUT: %.loc14_49.1: %tuple.type.c8c = tuple_literal (%.loc14_35, %Noncopyable.ref) [concrete = constants.%tuple] // CHECK:STDOUT: %.loc14_49.2: type = converted constants.%empty_struct, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %.loc14_49.3: type = converted %.loc14_49.1, constants.%tuple.type.185 [concrete = constants.%tuple.type.185] -// CHECK:STDOUT: %.loc14_30.1: %tuple.type.185 = as_compatible %a.ref -// CHECK:STDOUT: %.loc14_30.2: %tuple.type.185 = converted %a.ref, %.loc14_30.1 +// CHECK:STDOUT: %.loc14_49.3: type = converted %.loc14_49.1, constants.%tuple.type.c68 [concrete = constants.%tuple.type.c68] +// CHECK:STDOUT: %.loc14_30.1: %tuple.type.c68 = as_compatible %a.ref +// CHECK:STDOUT: %.loc14_30.2: %tuple.type.c68 = converted %a.ref, %.loc14_30.1 // CHECK:STDOUT: %A.ref.loc14_55: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %.loc14_52.1: %A = as_compatible %.loc14_30.2 // CHECK:STDOUT: %.loc14_52.2: %A = converted %.loc14_30.2, %.loc14_52.1 diff --git a/toolchain/check/testdata/as/basics.carbon b/toolchain/check/testdata/as/basics.carbon index 9b8f6064d045..eb3fab173e06 100644 --- a/toolchain/check/testdata/as/basics.carbon +++ b/toolchain/check/testdata/as/basics.carbon @@ -210,18 +210,18 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%X, %X) [concrete] -// CHECK:STDOUT: %tuple.type.33e: type = tuple_type (%X, %X) [concrete] -// CHECK:STDOUT: %pattern_type.f4c: type = pattern_type %tuple.type.33e [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc13_40.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc20 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// 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: %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.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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Let() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f4c = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.3ee = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Make.ref.loc13_27: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make] // CHECK:STDOUT: %.loc13_32.1: ref %X = temporary_storage @@ -229,27 +229,27 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %Make.ref.loc13_35: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make] // CHECK:STDOUT: %.loc13_40.1: ref %X = temporary_storage // CHECK:STDOUT: %Make.call.loc13_40: init %X to %.loc13_40.1 = call %Make.ref.loc13_35() -// CHECK:STDOUT: %.loc13_41.1: %tuple.type.33e = tuple_literal (%Make.call.loc13_32, %Make.call.loc13_40) +// CHECK:STDOUT: %.loc13_41.1: %tuple.type.359 = tuple_literal (%Make.call.loc13_32, %Make.call.loc13_40) // CHECK:STDOUT: %X.ref.loc13_47: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %X.ref.loc13_50: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc13_51.1: %tuple.type.24b = tuple_literal (%X.ref.loc13_47, %X.ref.loc13_50) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc13_51.2: type = converted %.loc13_51.1, constants.%tuple.type.33e [concrete = constants.%tuple.type.33e] -// CHECK:STDOUT: %.loc13_22.1: type = splice_block %.loc13_22.3 [concrete = constants.%tuple.type.33e] { +// CHECK:STDOUT: %.loc13_51.2: type = converted %.loc13_51.1, constants.%tuple.type.359 [concrete = constants.%tuple.type.359] +// CHECK:STDOUT: %.loc13_22.1: type = splice_block %.loc13_22.3 [concrete = constants.%tuple.type.359] { // CHECK:STDOUT: %X.ref.loc13_18: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %X.ref.loc13_21: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc13_22.2: %tuple.type.24b = tuple_literal (%X.ref.loc13_18, %X.ref.loc13_21) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc13_22.3: type = converted %.loc13_22.2, constants.%tuple.type.33e [concrete = constants.%tuple.type.33e] +// CHECK:STDOUT: %.loc13_22.3: type = converted %.loc13_22.2, constants.%tuple.type.359 [concrete = constants.%tuple.type.359] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc13_32.2: ref %X = temporary %.loc13_32.1, %Make.call.loc13_32 // CHECK:STDOUT: %.loc13_32.3: %X = acquire_value %.loc13_32.2 // CHECK:STDOUT: %.loc13_40.2: ref %X = temporary %.loc13_40.1, %Make.call.loc13_40 // CHECK:STDOUT: %.loc13_40.3: %X = acquire_value %.loc13_40.2 -// CHECK:STDOUT: %tuple: %tuple.type.33e = tuple_value (%.loc13_32.3, %.loc13_40.3) -// CHECK:STDOUT: %.loc13_41.2: %tuple.type.33e = converted %.loc13_41.1, %tuple -// CHECK:STDOUT: %a: %tuple.type.33e = value_binding a, %.loc13_41.2 -// CHECK:STDOUT: %Destroy.Op.bound.loc13_40: = bound_method %.loc13_40.2, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %tuple: %tuple.type.359 = tuple_value (%.loc13_32.3, %.loc13_40.3) +// CHECK:STDOUT: %.loc13_41.2: %tuple.type.359 = converted %.loc13_41.1, %tuple +// CHECK:STDOUT: %a: %tuple.type.359 = value_binding a, %.loc13_41.2 +// 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.2dd605.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: // CHECK:STDOUT: } @@ -264,37 +264,37 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: fn @Var() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f4c = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.f4c = var_pattern %b.patt [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: } -// CHECK:STDOUT: %b.var: ref %tuple.type.33e = var %b.var_patt +// CHECK:STDOUT: %b.var: ref %tuple.type.359 = var %b.var_patt // CHECK:STDOUT: %Make.ref.loc20_27: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make] // CHECK:STDOUT: %tuple.elem0: ref %X = tuple_access %b.var, element0 // CHECK:STDOUT: %Make.call.loc20_32: init %X to %tuple.elem0 = call %Make.ref.loc20_27() // CHECK:STDOUT: %Make.ref.loc20_35: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make] // CHECK:STDOUT: %tuple.elem1: ref %X = tuple_access %b.var, element1 // CHECK:STDOUT: %Make.call.loc20_40: init %X to %tuple.elem1 = call %Make.ref.loc20_35() -// CHECK:STDOUT: %.loc20_41.1: %tuple.type.33e = tuple_literal (%Make.call.loc20_32, %Make.call.loc20_40) +// CHECK:STDOUT: %.loc20_41.1: %tuple.type.359 = tuple_literal (%Make.call.loc20_32, %Make.call.loc20_40) // CHECK:STDOUT: %X.ref.loc20_47: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %X.ref.loc20_50: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc20_51.1: %tuple.type.24b = tuple_literal (%X.ref.loc20_47, %X.ref.loc20_50) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc20_51.2: type = converted %.loc20_51.1, constants.%tuple.type.33e [concrete = constants.%tuple.type.33e] -// CHECK:STDOUT: %.loc20_41.2: init %tuple.type.33e to %b.var = tuple_init (%Make.call.loc20_32, %Make.call.loc20_40) -// CHECK:STDOUT: %.loc20_3: init %tuple.type.33e = converted %.loc20_41.1, %.loc20_41.2 +// CHECK:STDOUT: %.loc20_51.2: type = converted %.loc20_51.1, constants.%tuple.type.359 [concrete = constants.%tuple.type.359] +// CHECK:STDOUT: %.loc20_41.2: init %tuple.type.359 to %b.var = tuple_init (%Make.call.loc20_32, %Make.call.loc20_40) +// CHECK:STDOUT: %.loc20_3: init %tuple.type.359 = converted %.loc20_41.1, %.loc20_41.2 // CHECK:STDOUT: assign %b.var, %.loc20_3 -// CHECK:STDOUT: %.loc20_22.1: type = splice_block %.loc20_22.3 [concrete = constants.%tuple.type.33e] { +// CHECK:STDOUT: %.loc20_22.1: type = splice_block %.loc20_22.3 [concrete = constants.%tuple.type.359] { // CHECK:STDOUT: %X.ref.loc20_18: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %X.ref.loc20_21: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc20_22.2: %tuple.type.24b = tuple_literal (%X.ref.loc20_18, %X.ref.loc20_21) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc20_22.3: type = converted %.loc20_22.2, constants.%tuple.type.33e [concrete = constants.%tuple.type.33e] +// CHECK:STDOUT: %.loc20_22.3: type = converted %.loc20_22.2, constants.%tuple.type.359 [concrete = constants.%tuple.type.359] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: ref %tuple.type.33e = ref_binding b, %b.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %b.var, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %b: ref %tuple.type.359 = ref_binding b, %b.var +// 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: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20(%self.param: ref %tuple.type.33e) { +// CHECK:STDOUT: fn @Destroy.Op.loc20(%self.param: ref %tuple.type.359) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -304,20 +304,20 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: constants { // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.7b3: type = pattern_type %X [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %X [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ptr.324: type = ptr_type %X [concrete] -// CHECK:STDOUT: %pattern_type.f44: type = pattern_type %ptr.324 [concrete] +// CHECK:STDOUT: %ptr.db8: type = ptr_type %X [concrete] +// CHECK:STDOUT: %pattern_type.990: type = pattern_type %ptr.db8 [concrete] // CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete] // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc24_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Value(%n.param: %X) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %m.patt: %pattern_type.7b3 = value_binding_pattern m [concrete] +// CHECK:STDOUT: %m.patt: %pattern_type.6cb = value_binding_pattern m [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %n.ref: %X = name_ref n, %n // CHECK:STDOUT: %X.ref.loc10_26: type = name_ref X, file.%X.decl [concrete = constants.%X] @@ -326,28 +326,28 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Reference(%p.param: %ptr.324) { +// CHECK:STDOUT: fn @Reference(%p.param: %ptr.db8) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %q.patt: %pattern_type.f44 = value_binding_pattern q [concrete] +// CHECK:STDOUT: %q.patt: %pattern_type.990 = value_binding_pattern q [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %p.ref: %ptr.324 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.db8 = name_ref p, %p // CHECK:STDOUT: %.loc16_24: ref %X = deref %p.ref // CHECK:STDOUT: %X.ref.loc16_30: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %addr: %ptr.324 = addr_of %.loc16_24 -// CHECK:STDOUT: %.loc16_18: type = splice_block %ptr.loc16 [concrete = constants.%ptr.324] { +// CHECK:STDOUT: %addr: %ptr.db8 = addr_of %.loc16_24 +// CHECK:STDOUT: %.loc16_18: type = splice_block %ptr.loc16 [concrete = constants.%ptr.db8] { // CHECK:STDOUT: %X.ref.loc16_17: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %ptr.loc16: type = ptr_type %X.ref.loc16_17 [concrete = constants.%ptr.324] +// CHECK:STDOUT: %ptr.loc16: type = ptr_type %X.ref.loc16_17 [concrete = constants.%ptr.db8] // CHECK:STDOUT: } -// CHECK:STDOUT: %q: %ptr.324 = value_binding q, %addr +// CHECK:STDOUT: %q: %ptr.db8 = value_binding q, %addr // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Initializing() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.7b3 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.7b3 = var_pattern %x.patt [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: } // CHECK:STDOUT: %x.var: ref %X = var %x.var_patt // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make] @@ -357,7 +357,7 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: assign %x.var, %Make.call // CHECK:STDOUT: %X.ref.loc24_17: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %x: ref %X = ref_binding x, %x.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op.2dd605.2 +// 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: // CHECK:STDOUT: } @@ -377,23 +377,23 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete] // CHECK:STDOUT: %Y: type = class_type @Y [concrete] -// CHECK:STDOUT: %pattern_type.d5e: type = pattern_type %Y [concrete] +// CHECK:STDOUT: %pattern_type.7ab: type = pattern_type %Y [concrete] // CHECK:STDOUT: %struct.948: %struct_type.x = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: %X.val: %X = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %As.type.09c: type = facet_type <@As, @As(%Y)> [concrete] -// CHECK:STDOUT: %As.impl_witness.1df: = impl_witness @X.as.As.impl.%As.impl_witness_table [concrete] +// CHECK:STDOUT: %As.type.f20: type = facet_type <@As, @As(%Y)> [concrete] +// CHECK:STDOUT: %As.impl_witness.915: = impl_witness @X.as.As.impl.%As.impl_witness_table [concrete] // CHECK:STDOUT: %X.as.As.impl.Convert.type: type = fn_type @X.as.As.impl.Convert [concrete] // CHECK:STDOUT: %X.as.As.impl.Convert: %X.as.As.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %As.facet.b65: %As.type.09c = facet_value %X, (%As.impl_witness.1df) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.776: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%Y, %As.facet.b65) [concrete] -// CHECK:STDOUT: %.8c9: type = fn_type_with_self_type %As.WithSelf.Convert.type.776, %As.facet.b65 [concrete] +// CHECK:STDOUT: %As.facet.9dc: %As.type.f20 = facet_value %X, (%As.impl_witness.915) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.f49: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%Y, %As.facet.9dc) [concrete] +// CHECK:STDOUT: %.db2: type = fn_type_with_self_type %As.WithSelf.Convert.type.f49, %As.facet.9dc [concrete] // CHECK:STDOUT: %X.as.As.impl.Convert.bound: = bound_method %X.val, %X.as.As.impl.Convert [concrete] -// CHECK:STDOUT: %.56f: ref %X = temporary invalid, %X.val [concrete] +// CHECK:STDOUT: %.650: ref %X = temporary invalid, %X.val [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.d5e = value_binding_pattern n [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.7ab = value_binding_pattern n [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Y.ref: type = name_ref Y, %Y.decl [concrete = constants.%Y] // CHECK:STDOUT: %.loc19_29.1: ref %Y = temporary @__global_init.%.loc19_29.1, @__global_init.%.loc19_29.2 @@ -414,10 +414,10 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %.loc19_21.6: init %X to %.loc19_21.2 = class_init (%.loc19_21.5) [concrete = constants.%X.val] // CHECK:STDOUT: %.loc19_23.1: init %X = converted %.loc19_21.1, %.loc19_21.6 [concrete = constants.%X.val] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y] -// CHECK:STDOUT: %impl.elem0: %.8c9 = impl_witness_access constants.%As.impl_witness.1df, element0 [concrete = constants.%X.as.As.impl.Convert] +// CHECK:STDOUT: %impl.elem0: %.db2 = impl_witness_access constants.%As.impl_witness.915, element0 [concrete = constants.%X.as.As.impl.Convert] // CHECK:STDOUT: %bound_method: = bound_method %.loc19_23.1, %impl.elem0 [concrete = constants.%X.as.As.impl.Convert.bound] // CHECK:STDOUT: %.loc19_29.1: ref %Y = temporary_storage -// CHECK:STDOUT: %.loc19_23.2: ref %X = temporary %.loc19_21.2, %.loc19_23.1 [concrete = constants.%.56f] +// CHECK:STDOUT: %.loc19_23.2: ref %X = temporary %.loc19_21.2, %.loc19_23.1 [concrete = constants.%.650] // CHECK:STDOUT: %.loc19_23.3: %X = acquire_value %.loc19_23.2 [concrete = constants.%X.val] // CHECK:STDOUT: %X.as.As.impl.Convert.call: init %Y to %.loc19_29.1 = call %bound_method(%.loc19_23.3) // CHECK:STDOUT: %.loc19_29.2: init %Y = converted %.loc19_23.1, %X.as.As.impl.Convert.call diff --git a/toolchain/check/testdata/as/const.carbon b/toolchain/check/testdata/as/const.carbon index 8fbd5ea24c41..e1f665003302 100644 --- a/toolchain/check/testdata/as/const.carbon +++ b/toolchain/check/testdata/as/const.carbon @@ -100,22 +100,22 @@ fn Use() { // CHECK:STDOUT: %Init.type: type = fn_type @Init [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Init: %Init.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.324: type = ptr_type %X [concrete] +// CHECK:STDOUT: %ptr.db8: type = ptr_type %X [concrete] // CHECK:STDOUT: %const: type = const_type %X [concrete] -// CHECK:STDOUT: %pattern_type.393: type = pattern_type %const [concrete] -// CHECK:STDOUT: %ptr.2c7: type = ptr_type %const [concrete] -// CHECK:STDOUT: %pattern_type.f4d: type = pattern_type %ptr.2c7 [concrete] +// CHECK:STDOUT: %pattern_type.dfd: type = pattern_type %const [concrete] +// CHECK:STDOUT: %ptr.faf: type = ptr_type %const [concrete] +// CHECK:STDOUT: %pattern_type.7f7: type = pattern_type %ptr.faf [concrete] // CHECK:STDOUT: %reference.var: ref %const = var file.%reference.var_patt [concrete] -// CHECK:STDOUT: %addr.128: %ptr.2c7 = addr_of %reference.var [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc14_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %addr.c2d: %ptr.faf = addr_of %reference.var [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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.393 = ref_binding_pattern i [concrete] -// CHECK:STDOUT: %i.var_patt: %pattern_type.393 = var_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.dfd = ref_binding_pattern i [concrete] +// CHECK:STDOUT: %i.var_patt: %pattern_type.dfd = var_pattern %i.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i.var: ref %const = var %i.var_patt // CHECK:STDOUT: %Init.ref: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init] @@ -132,7 +132,7 @@ fn Use() { // CHECK:STDOUT: } // CHECK:STDOUT: %i: ref %const = ref_binding i, %i.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.393 = value_binding_pattern v [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.dfd = value_binding_pattern v [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %value.ref: %X = name_ref value, file.%value // CHECK:STDOUT: %X.ref.loc15_42: type = name_ref X, file.%X.decl [concrete = constants.%X] @@ -145,36 +145,36 @@ fn Use() { // CHECK:STDOUT: } // CHECK:STDOUT: %v: %const = value_binding v, %.loc15_33.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f4d = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7f7 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %reference.ref: ref %X = name_ref reference, file.%reference [concrete = file.%reference.var] // CHECK:STDOUT: %X.ref.loc16_49: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %const.loc16_43: type = const_type %X.ref.loc16_49 [concrete = constants.%const] // CHECK:STDOUT: %.loc16_40.1: ref %const = as_compatible %reference.ref [concrete = constants.%reference.var] // CHECK:STDOUT: %.loc16_40.2: ref %const = converted %reference.ref, %.loc16_40.1 [concrete = constants.%reference.var] -// CHECK:STDOUT: %addr: %ptr.2c7 = addr_of %.loc16_40.2 [concrete = constants.%addr.128] -// CHECK:STDOUT: %.loc16_24: type = splice_block %ptr.loc16 [concrete = constants.%ptr.2c7] { +// CHECK:STDOUT: %addr: %ptr.faf = addr_of %.loc16_40.2 [concrete = constants.%addr.c2d] +// CHECK:STDOUT: %.loc16_24: type = splice_block %ptr.loc16 [concrete = constants.%ptr.faf] { // CHECK:STDOUT: %X.ref.loc16_23: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %const.loc16_17: type = const_type %X.ref.loc16_23 [concrete = constants.%const] -// CHECK:STDOUT: %ptr.loc16: type = ptr_type %const.loc16_17 [concrete = constants.%ptr.2c7] +// CHECK:STDOUT: %ptr.loc16: type = ptr_type %const.loc16_17 [concrete = constants.%ptr.faf] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.2c7 = value_binding a, %addr +// CHECK:STDOUT: %a: %ptr.faf = value_binding a, %addr // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f4d = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.7f7 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %ptr.ref: %ptr.324 = name_ref ptr, file.%ptr.loc9_8 +// CHECK:STDOUT: %ptr.ref: %ptr.db8 = name_ref ptr, file.%ptr.loc9_8 // CHECK:STDOUT: %X.ref.loc17_41: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %const.loc17_35: type = const_type %X.ref.loc17_41 [concrete = constants.%const] -// CHECK:STDOUT: %ptr.loc17_42: type = ptr_type %const.loc17_35 [concrete = constants.%ptr.2c7] -// CHECK:STDOUT: %.loc17_32.1: %ptr.2c7 = as_compatible %ptr.ref -// CHECK:STDOUT: %.loc17_32.2: %ptr.2c7 = converted %ptr.ref, %.loc17_32.1 -// CHECK:STDOUT: %.loc17_24: type = splice_block %ptr.loc17_24 [concrete = constants.%ptr.2c7] { +// CHECK:STDOUT: %ptr.loc17_42: type = ptr_type %const.loc17_35 [concrete = constants.%ptr.faf] +// CHECK:STDOUT: %.loc17_32.1: %ptr.faf = as_compatible %ptr.ref +// CHECK:STDOUT: %.loc17_32.2: %ptr.faf = converted %ptr.ref, %.loc17_32.1 +// CHECK:STDOUT: %.loc17_24: type = splice_block %ptr.loc17_24 [concrete = constants.%ptr.faf] { // CHECK:STDOUT: %X.ref.loc17_23: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %const.loc17_17: type = const_type %X.ref.loc17_23 [concrete = constants.%const] -// CHECK:STDOUT: %ptr.loc17_24: type = ptr_type %const.loc17_17 [concrete = constants.%ptr.2c7] +// CHECK:STDOUT: %ptr.loc17_24: type = ptr_type %const.loc17_17 [concrete = constants.%ptr.faf] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: %ptr.2c7 = value_binding b, %.loc17_32.2 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %i.var, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %b: %ptr.faf = value_binding b, %.loc17_32.2 +// 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: // CHECK:STDOUT: } @@ -205,16 +205,16 @@ fn Use() { // CHECK:STDOUT: %Init.type: type = fn_type @Init [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Init: %Init.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.7b3: type = pattern_type %X [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc12_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %X [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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.7b3 = ref_binding_pattern i [concrete] -// CHECK:STDOUT: %i.var_patt: %pattern_type.7b3 = var_pattern %i.patt [concrete] +// 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: } // CHECK:STDOUT: %i.var: ref %X = var %i.var_patt // CHECK:STDOUT: %Init.ref: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init] @@ -227,7 +227,7 @@ fn Use() { // CHECK:STDOUT: %X.ref.loc12_17: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %i: ref %X = ref_binding i, %i.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.7b3 = value_binding_pattern v [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.6cb = value_binding_pattern v [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %value.ref: %const = name_ref value, file.%value // CHECK:STDOUT: %X.ref.loc13_30: type = name_ref X, file.%X.decl [concrete = constants.%X] @@ -235,7 +235,7 @@ fn Use() { // CHECK:STDOUT: %.loc13_27.2: %X = converted %value.ref, %.loc13_27.1 // CHECK:STDOUT: %X.ref.loc13_17: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %v: %X = value_binding v, %.loc13_27.2 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %i.var, constants.%Destroy.Op.2dd605.2 +// 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: // CHECK:STDOUT: } @@ -257,41 +257,41 @@ fn Use() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %const: type = const_type %X [concrete] -// CHECK:STDOUT: %ptr.2c7: type = ptr_type %const [concrete] -// CHECK:STDOUT: %ptr.324: type = ptr_type %X [concrete] -// CHECK:STDOUT: %pattern_type.f44: type = pattern_type %ptr.324 [concrete] +// CHECK:STDOUT: %ptr.faf: type = ptr_type %const [concrete] +// CHECK:STDOUT: %ptr.db8: type = ptr_type %X [concrete] +// CHECK:STDOUT: %pattern_type.990: type = pattern_type %ptr.db8 [concrete] // CHECK:STDOUT: %reference.var: ref %X = var file.%reference.var_patt [concrete] -// CHECK:STDOUT: %addr.728: %ptr.324 = addr_of %reference.var [concrete] +// CHECK:STDOUT: %addr.c0f: %ptr.db8 = addr_of %reference.var [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f44 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.990 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %reference.ref: ref %const = name_ref reference, file.%reference [concrete = file.%reference.var] // CHECK:STDOUT: %X.ref.loc11_44: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc11_41.1: ref %X = as_compatible %reference.ref [concrete = constants.%reference.var] // CHECK:STDOUT: %.loc11_41.2: ref %X = converted %reference.ref, %.loc11_41.1 [concrete = constants.%reference.var] -// CHECK:STDOUT: %addr: %ptr.324 = addr_of %.loc11_41.2 [concrete = constants.%addr.728] -// CHECK:STDOUT: %.loc11_18: type = splice_block %ptr.loc11 [concrete = constants.%ptr.324] { +// CHECK:STDOUT: %addr: %ptr.db8 = addr_of %.loc11_41.2 [concrete = constants.%addr.c0f] +// CHECK:STDOUT: %.loc11_18: type = splice_block %ptr.loc11 [concrete = constants.%ptr.db8] { // CHECK:STDOUT: %X.ref.loc11_17: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %ptr.loc11: type = ptr_type %X.ref.loc11_17 [concrete = constants.%ptr.324] +// CHECK:STDOUT: %ptr.loc11: type = ptr_type %X.ref.loc11_17 [concrete = constants.%ptr.db8] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.324 = value_binding a, %addr +// CHECK:STDOUT: %a: %ptr.db8 = value_binding a, %addr // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f44 = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.990 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %ptr.ref: %ptr.2c7 = name_ref ptr, file.%ptr.loc7_8 +// CHECK:STDOUT: %ptr.ref: %ptr.faf = name_ref ptr, file.%ptr.loc7_8 // CHECK:STDOUT: %X.ref.loc12_36: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %ptr.loc12_37: type = ptr_type %X.ref.loc12_36 [concrete = constants.%ptr.324] -// CHECK:STDOUT: %.loc12_33.1: %ptr.324 = as_compatible %ptr.ref -// CHECK:STDOUT: %.loc12_33.2: %ptr.324 = converted %ptr.ref, %.loc12_33.1 -// CHECK:STDOUT: %.loc12_18: type = splice_block %ptr.loc12_18 [concrete = constants.%ptr.324] { +// CHECK:STDOUT: %ptr.loc12_37: type = ptr_type %X.ref.loc12_36 [concrete = constants.%ptr.db8] +// CHECK:STDOUT: %.loc12_33.1: %ptr.db8 = as_compatible %ptr.ref +// CHECK:STDOUT: %.loc12_33.2: %ptr.db8 = converted %ptr.ref, %.loc12_33.1 +// CHECK:STDOUT: %.loc12_18: type = splice_block %ptr.loc12_18 [concrete = constants.%ptr.db8] { // CHECK:STDOUT: %X.ref.loc12_17: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %ptr.loc12_18: type = ptr_type %X.ref.loc12_17 [concrete = constants.%ptr.324] +// CHECK:STDOUT: %ptr.loc12_18: type = ptr_type %X.ref.loc12_17 [concrete = constants.%ptr.db8] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: %ptr.324 = value_binding b, %.loc12_33.2 +// CHECK:STDOUT: %b: %ptr.db8 = value_binding b, %.loc12_33.2 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/as/maybe_unformed.carbon b/toolchain/check/testdata/as/maybe_unformed.carbon index 8d4debbcf389..2ff3790f893a 100644 --- a/toolchain/check/testdata/as/maybe_unformed.carbon +++ b/toolchain/check/testdata/as/maybe_unformed.carbon @@ -138,14 +138,14 @@ fn Use() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] -// CHECK:STDOUT: %ptr.324: type = ptr_type %X [concrete] +// CHECK:STDOUT: %ptr.db8: type = ptr_type %X [concrete] // CHECK:STDOUT: %MaybeUnformed.type: type = generic_class_type @MaybeUnformed [concrete] // CHECK:STDOUT: %MaybeUnformed.generic: %MaybeUnformed.type = struct_value () [concrete] -// CHECK:STDOUT: %MaybeUnformed.146: type = class_type @MaybeUnformed, @MaybeUnformed(%X) [concrete] -// CHECK:STDOUT: %ptr.c5f: type = ptr_type %MaybeUnformed.146 [concrete] -// CHECK:STDOUT: %pattern_type.af3: type = pattern_type %ptr.c5f [concrete] -// CHECK:STDOUT: %reference.var: ref %MaybeUnformed.146 = var file.%reference.var_patt [concrete] -// CHECK:STDOUT: %addr.a76: %ptr.c5f = addr_of %reference.var [concrete] +// CHECK:STDOUT: %MaybeUnformed.198: type = class_type @MaybeUnformed, @MaybeUnformed(%X) [concrete] +// CHECK:STDOUT: %ptr.b8c: type = ptr_type %MaybeUnformed.198 [concrete] +// CHECK:STDOUT: %pattern_type.abe: type = pattern_type %ptr.b8c [concrete] +// CHECK:STDOUT: %reference.var: ref %MaybeUnformed.198 = var file.%reference.var_patt [concrete] +// CHECK:STDOUT: %addr.d37: %ptr.b8c = addr_of %reference.var [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -162,43 +162,43 @@ fn Use() { // CHECK:STDOUT: fn @Use() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.af3 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.abe = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %reference.ref: ref %X = name_ref reference, file.%reference [concrete = file.%reference.var] // CHECK:STDOUT: %Core.ref.loc12_57: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %MaybeUnformed.ref.loc12_61: %MaybeUnformed.type = name_ref MaybeUnformed, imports.%Core.MaybeUnformed [concrete = constants.%MaybeUnformed.generic] // CHECK:STDOUT: %X.ref.loc12_76: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %MaybeUnformed.loc12_77: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.146] -// CHECK:STDOUT: %.loc12_54.1: ref %MaybeUnformed.146 = as_compatible %reference.ref [concrete = constants.%reference.var] -// CHECK:STDOUT: %.loc12_54.2: ref %MaybeUnformed.146 = converted %reference.ref, %.loc12_54.1 [concrete = constants.%reference.var] -// CHECK:STDOUT: %addr: %ptr.c5f = addr_of %.loc12_54.2 [concrete = constants.%addr.a76] -// CHECK:STDOUT: %.loc12_38: type = splice_block %ptr.loc12 [concrete = constants.%ptr.c5f] { +// CHECK:STDOUT: %MaybeUnformed.loc12_77: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.198] +// CHECK:STDOUT: %.loc12_54.1: ref %MaybeUnformed.198 = as_compatible %reference.ref [concrete = constants.%reference.var] +// CHECK:STDOUT: %.loc12_54.2: ref %MaybeUnformed.198 = converted %reference.ref, %.loc12_54.1 [concrete = constants.%reference.var] +// CHECK:STDOUT: %addr: %ptr.b8c = addr_of %.loc12_54.2 [concrete = constants.%addr.d37] +// CHECK:STDOUT: %.loc12_38: type = splice_block %ptr.loc12 [concrete = constants.%ptr.b8c] { // CHECK:STDOUT: %Core.ref.loc12_17: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %MaybeUnformed.ref.loc12_21: %MaybeUnformed.type = name_ref MaybeUnformed, imports.%Core.MaybeUnformed [concrete = constants.%MaybeUnformed.generic] // CHECK:STDOUT: %X.ref.loc12_36: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %MaybeUnformed.loc12_37: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.146] -// CHECK:STDOUT: %ptr.loc12: type = ptr_type %MaybeUnformed.loc12_37 [concrete = constants.%ptr.c5f] +// CHECK:STDOUT: %MaybeUnformed.loc12_37: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.198] +// CHECK:STDOUT: %ptr.loc12: type = ptr_type %MaybeUnformed.loc12_37 [concrete = constants.%ptr.b8c] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.c5f = value_binding a, %addr +// CHECK:STDOUT: %a: %ptr.b8c = value_binding a, %addr // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.af3 = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.abe = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %ptr.ref: %ptr.324 = name_ref ptr, file.%ptr.loc7_8 +// CHECK:STDOUT: %ptr.ref: %ptr.db8 = name_ref ptr, file.%ptr.loc7_8 // CHECK:STDOUT: %Core.ref.loc13_49: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %MaybeUnformed.ref.loc13_53: %MaybeUnformed.type = name_ref MaybeUnformed, imports.%Core.MaybeUnformed [concrete = constants.%MaybeUnformed.generic] // CHECK:STDOUT: %X.ref.loc13_68: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %MaybeUnformed.loc13_69: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.146] -// CHECK:STDOUT: %ptr.loc13_70: type = ptr_type %MaybeUnformed.loc13_69 [concrete = constants.%ptr.c5f] -// CHECK:STDOUT: %.loc13_46.1: %ptr.c5f = as_compatible %ptr.ref -// CHECK:STDOUT: %.loc13_46.2: %ptr.c5f = converted %ptr.ref, %.loc13_46.1 -// CHECK:STDOUT: %.loc13_38: type = splice_block %ptr.loc13_38 [concrete = constants.%ptr.c5f] { +// CHECK:STDOUT: %MaybeUnformed.loc13_69: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.198] +// CHECK:STDOUT: %ptr.loc13_70: type = ptr_type %MaybeUnformed.loc13_69 [concrete = constants.%ptr.b8c] +// CHECK:STDOUT: %.loc13_46.1: %ptr.b8c = as_compatible %ptr.ref +// CHECK:STDOUT: %.loc13_46.2: %ptr.b8c = converted %ptr.ref, %.loc13_46.1 +// CHECK:STDOUT: %.loc13_38: type = splice_block %ptr.loc13_38 [concrete = constants.%ptr.b8c] { // CHECK:STDOUT: %Core.ref.loc13_17: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %MaybeUnformed.ref.loc13_21: %MaybeUnformed.type = name_ref MaybeUnformed, imports.%Core.MaybeUnformed [concrete = constants.%MaybeUnformed.generic] // CHECK:STDOUT: %X.ref.loc13_36: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %MaybeUnformed.loc13_37: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.146] -// CHECK:STDOUT: %ptr.loc13_38: type = ptr_type %MaybeUnformed.loc13_37 [concrete = constants.%ptr.c5f] +// CHECK:STDOUT: %MaybeUnformed.loc13_37: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.198] +// CHECK:STDOUT: %ptr.loc13_38: type = ptr_type %MaybeUnformed.loc13_37 [concrete = constants.%ptr.b8c] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: %ptr.c5f = value_binding b, %.loc13_46.2 +// CHECK:STDOUT: %b: %ptr.b8c = value_binding b, %.loc13_46.2 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -217,13 +217,13 @@ fn Use() { // CHECK:STDOUT: %Init: %Init.type = struct_value () [concrete] // CHECK:STDOUT: %MaybeUnformed.type: type = generic_class_type @MaybeUnformed [concrete] // CHECK:STDOUT: %MaybeUnformed.generic: %MaybeUnformed.type = struct_value () [concrete] -// CHECK:STDOUT: %MaybeUnformed.146: type = class_type @MaybeUnformed, @MaybeUnformed(%X) [concrete] -// CHECK:STDOUT: %pattern_type.b54: type = pattern_type %MaybeUnformed.146 [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] +// CHECK:STDOUT: %MaybeUnformed.198: type = class_type @MaybeUnformed, @MaybeUnformed(%X) [concrete] +// CHECK:STDOUT: %pattern_type.009: type = pattern_type %MaybeUnformed.198 [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc19_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc19_3.3 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -235,50 +235,50 @@ fn Use() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.MaybeUnformed: %MaybeUnformed.type = import_ref Core//prelude/parts/maybe_unformed, MaybeUnformed, loaded [concrete = constants.%MaybeUnformed.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.b54 = ref_binding_pattern i [concrete] -// CHECK:STDOUT: %i.var_patt: %pattern_type.b54 = var_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.009 = ref_binding_pattern i [concrete] +// CHECK:STDOUT: %i.var_patt: %pattern_type.009 = var_pattern %i.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %i.var: ref %MaybeUnformed.146 = var %i.var_patt +// CHECK:STDOUT: %i.var: ref %MaybeUnformed.198 = var %i.var_patt // CHECK:STDOUT: %Init.ref: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init] // CHECK:STDOUT: %.loc19_46: ref %X = temporary_storage // CHECK:STDOUT: %Init.call: init %X to %.loc19_46 = call %Init.ref() // CHECK:STDOUT: %Core.ref.loc19_51: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %MaybeUnformed.ref.loc19_55: %MaybeUnformed.type = name_ref MaybeUnformed, imports.%Core.MaybeUnformed [concrete = constants.%MaybeUnformed.generic] // CHECK:STDOUT: %X.ref.loc19_70: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %MaybeUnformed.loc19_71: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.146] -// CHECK:STDOUT: %.loc19_48: %MaybeUnformed.146 = converted %Init.call, [concrete = ] +// CHECK:STDOUT: %MaybeUnformed.loc19_71: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.198] +// CHECK:STDOUT: %.loc19_48: %MaybeUnformed.198 = converted %Init.call, [concrete = ] // CHECK:STDOUT: assign %i.var, -// CHECK:STDOUT: %.loc19_37: type = splice_block %MaybeUnformed.loc19_37 [concrete = constants.%MaybeUnformed.146] { +// CHECK:STDOUT: %.loc19_37: type = splice_block %MaybeUnformed.loc19_37 [concrete = constants.%MaybeUnformed.198] { // CHECK:STDOUT: %Core.ref.loc19_17: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %MaybeUnformed.ref.loc19_21: %MaybeUnformed.type = name_ref MaybeUnformed, imports.%Core.MaybeUnformed [concrete = constants.%MaybeUnformed.generic] // CHECK:STDOUT: %X.ref.loc19_36: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %MaybeUnformed.loc19_37: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.146] +// CHECK:STDOUT: %MaybeUnformed.loc19_37: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.198] // CHECK:STDOUT: } -// CHECK:STDOUT: %i: ref %MaybeUnformed.146 = ref_binding i, %i.var +// CHECK:STDOUT: %i: ref %MaybeUnformed.198 = ref_binding i, %i.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.b54 = value_binding_pattern v [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.009 = value_binding_pattern v [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %value.ref: %X = name_ref value, file.%value // CHECK:STDOUT: %Core.ref.loc27_50: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %MaybeUnformed.ref.loc27_54: %MaybeUnformed.type = name_ref MaybeUnformed, imports.%Core.MaybeUnformed [concrete = constants.%MaybeUnformed.generic] // CHECK:STDOUT: %X.ref.loc27_69: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %MaybeUnformed.loc27_70: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.146] -// CHECK:STDOUT: %.loc27_47: %MaybeUnformed.146 = converted %value.ref, [concrete = ] -// CHECK:STDOUT: %.loc27_37: type = splice_block %MaybeUnformed.loc27_37 [concrete = constants.%MaybeUnformed.146] { +// CHECK:STDOUT: %MaybeUnformed.loc27_70: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.198] +// CHECK:STDOUT: %.loc27_47: %MaybeUnformed.198 = converted %value.ref, [concrete = ] +// CHECK:STDOUT: %.loc27_37: type = splice_block %MaybeUnformed.loc27_37 [concrete = constants.%MaybeUnformed.198] { // CHECK:STDOUT: %Core.ref.loc27_17: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %MaybeUnformed.ref.loc27_21: %MaybeUnformed.type = name_ref MaybeUnformed, imports.%Core.MaybeUnformed [concrete = constants.%MaybeUnformed.generic] // CHECK:STDOUT: %X.ref.loc27_36: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %MaybeUnformed.loc27_37: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.146] +// CHECK:STDOUT: %MaybeUnformed.loc27_37: type = class_type @MaybeUnformed, @MaybeUnformed(constants.%X) [concrete = constants.%MaybeUnformed.198] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: %MaybeUnformed.146 = value_binding v, [concrete = ] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %i.var, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %v: %MaybeUnformed.198 = value_binding v, [concrete = ] +// 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: // CHECK:STDOUT: } @@ -290,7 +290,7 @@ fn Use() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc19_3.3(%self.param: ref %MaybeUnformed.146) { +// CHECK:STDOUT: fn @Destroy.Op.loc19_3.3(%self.param: ref %MaybeUnformed.198) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -304,52 +304,52 @@ fn Use() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %X: type = class_type @X [concrete] -// CHECK:STDOUT: %MaybeUnformed.146: type = class_type @MaybeUnformed, @MaybeUnformed(%X) [concrete] -// CHECK:STDOUT: %ptr.c5f: type = ptr_type %MaybeUnformed.146 [concrete] -// CHECK:STDOUT: %pattern_type.7b3: type = pattern_type %X [concrete] -// CHECK:STDOUT: %ptr.324: type = ptr_type %X [concrete] -// CHECK:STDOUT: %pattern_type.f44: type = pattern_type %ptr.324 [concrete] +// CHECK:STDOUT: %MaybeUnformed.198: type = class_type @MaybeUnformed, @MaybeUnformed(%X) [concrete] +// CHECK:STDOUT: %ptr.b8c: type = ptr_type %MaybeUnformed.198 [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %X [concrete] +// CHECK:STDOUT: %ptr.db8: type = ptr_type %X [concrete] +// CHECK:STDOUT: %pattern_type.990: type = pattern_type %ptr.db8 [concrete] // CHECK:STDOUT: %reference.var: ref %X = var file.%reference.var_patt [concrete] -// CHECK:STDOUT: %addr.61a: %ptr.324 = addr_of %reference.var [concrete] +// CHECK:STDOUT: %addr.8ef: %ptr.db8 = addr_of %reference.var [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.7b3 = value_binding_pattern v [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.6cb = value_binding_pattern v [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %value.ref: %MaybeUnformed.146 = name_ref value, file.%value +// CHECK:STDOUT: %value.ref: %MaybeUnformed.198 = name_ref value, file.%value // CHECK:STDOUT: %X.ref.loc13_37: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc13_34.1: %X = as_compatible %value.ref // CHECK:STDOUT: %.loc13_34.2: %X = converted %value.ref, %.loc13_34.1 // CHECK:STDOUT: %X.ref.loc13_17: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %v: %X = value_binding v, %.loc13_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f44 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.990 = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %reference.ref: ref %MaybeUnformed.146 = name_ref reference, file.%reference [concrete = file.%reference.var] +// CHECK:STDOUT: %reference.ref: ref %MaybeUnformed.198 = name_ref reference, file.%reference [concrete = file.%reference.var] // CHECK:STDOUT: %X.ref.loc14_44: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc14_41.1: ref %X = as_compatible %reference.ref [concrete = constants.%reference.var] // CHECK:STDOUT: %.loc14_41.2: ref %X = converted %reference.ref, %.loc14_41.1 [concrete = constants.%reference.var] -// CHECK:STDOUT: %addr: %ptr.324 = addr_of %.loc14_41.2 [concrete = constants.%addr.61a] -// CHECK:STDOUT: %.loc14_18: type = splice_block %ptr.loc14 [concrete = constants.%ptr.324] { +// CHECK:STDOUT: %addr: %ptr.db8 = addr_of %.loc14_41.2 [concrete = constants.%addr.8ef] +// CHECK:STDOUT: %.loc14_18: type = splice_block %ptr.loc14 [concrete = constants.%ptr.db8] { // CHECK:STDOUT: %X.ref.loc14_17: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %ptr.loc14: type = ptr_type %X.ref.loc14_17 [concrete = constants.%ptr.324] +// CHECK:STDOUT: %ptr.loc14: type = ptr_type %X.ref.loc14_17 [concrete = constants.%ptr.db8] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.324 = value_binding a, %addr +// CHECK:STDOUT: %a: %ptr.db8 = value_binding a, %addr // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f44 = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.990 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %ptr.ref: %ptr.c5f = name_ref ptr, file.%ptr.loc9_8 +// CHECK:STDOUT: %ptr.ref: %ptr.b8c = name_ref ptr, file.%ptr.loc9_8 // CHECK:STDOUT: %X.ref.loc15_36: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %ptr.loc15_37: type = ptr_type %X.ref.loc15_36 [concrete = constants.%ptr.324] -// CHECK:STDOUT: %.loc15_33.1: %ptr.324 = as_compatible %ptr.ref -// CHECK:STDOUT: %.loc15_33.2: %ptr.324 = converted %ptr.ref, %.loc15_33.1 -// CHECK:STDOUT: %.loc15_18: type = splice_block %ptr.loc15_18 [concrete = constants.%ptr.324] { +// CHECK:STDOUT: %ptr.loc15_37: type = ptr_type %X.ref.loc15_36 [concrete = constants.%ptr.db8] +// CHECK:STDOUT: %.loc15_33.1: %ptr.db8 = as_compatible %ptr.ref +// CHECK:STDOUT: %.loc15_33.2: %ptr.db8 = converted %ptr.ref, %.loc15_33.1 +// CHECK:STDOUT: %.loc15_18: type = splice_block %ptr.loc15_18 [concrete = constants.%ptr.db8] { // CHECK:STDOUT: %X.ref.loc15_17: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %ptr.loc15_18: type = ptr_type %X.ref.loc15_17 [concrete = constants.%ptr.324] +// CHECK:STDOUT: %ptr.loc15_18: type = ptr_type %X.ref.loc15_17 [concrete = constants.%ptr.db8] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: %ptr.324 = value_binding b, %.loc15_33.2 +// CHECK:STDOUT: %b: %ptr.db8 = value_binding b, %.loc15_33.2 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/as/partial.carbon b/toolchain/check/testdata/as/partial.carbon index d6c03a60bac4..1b0b61ed6b2a 100644 --- a/toolchain/check/testdata/as/partial.carbon +++ b/toolchain/check/testdata/as/partial.carbon @@ -114,88 +114,88 @@ fn Use() { // CHECK:STDOUT: %Init.type: type = fn_type @Init [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Init: %Init.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.324: type = ptr_type %X [concrete] -// CHECK:STDOUT: %.879: type = partial_type %X [concrete] -// CHECK:STDOUT: %pattern_type.379: type = pattern_type %.879 [concrete] -// CHECK:STDOUT: %ptr.878: type = ptr_type %.879 [concrete] -// CHECK:STDOUT: %pattern_type.173: type = pattern_type %ptr.878 [concrete] -// CHECK:STDOUT: %reference.var: ref %.879 = var file.%reference.var_patt [concrete] -// CHECK:STDOUT: %addr.d16: %ptr.878 = addr_of %reference.var [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc14_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.db8: type = ptr_type %X [concrete] +// CHECK:STDOUT: %.d74: type = partial_type %X [concrete] +// CHECK:STDOUT: %pattern_type.53b: type = pattern_type %.d74 [concrete] +// CHECK:STDOUT: %ptr.44a: type = ptr_type %.d74 [concrete] +// CHECK:STDOUT: %pattern_type.12c: type = pattern_type %ptr.44a [concrete] +// CHECK:STDOUT: %reference.var: ref %.d74 = var file.%reference.var_patt [concrete] +// CHECK:STDOUT: %addr.b93: %ptr.44a = addr_of %reference.var [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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.379 = ref_binding_pattern i [concrete] -// CHECK:STDOUT: %i.var_patt: %pattern_type.379 = var_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.53b = ref_binding_pattern i [concrete] +// CHECK:STDOUT: %i.var_patt: %pattern_type.53b = var_pattern %i.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %i.var: ref %.879 = var %i.var_patt +// CHECK:STDOUT: %i.var: ref %.d74 = var %i.var_patt // CHECK:STDOUT: %Init.ref: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init] -// CHECK:STDOUT: %.loc14_3: ref %.879 = splice_block %i.var {} +// CHECK:STDOUT: %.loc14_3: ref %.d74 = splice_block %i.var {} // CHECK:STDOUT: %Init.call: init %X to %.loc14_3 = call %Init.ref() // CHECK:STDOUT: %X.ref.loc14_47: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc14_39: type = partial_type %X.ref.loc14_47 [concrete = constants.%.879] -// CHECK:STDOUT: %.loc14_36.1: init %.879 = as_compatible %Init.call -// CHECK:STDOUT: %.loc14_36.2: init %.879 = converted %Init.call, %.loc14_36.1 +// CHECK:STDOUT: %.loc14_39: type = partial_type %X.ref.loc14_47 [concrete = constants.%.d74] +// CHECK:STDOUT: %.loc14_36.1: init %.d74 = as_compatible %Init.call +// CHECK:STDOUT: %.loc14_36.2: init %.d74 = converted %Init.call, %.loc14_36.1 // CHECK:STDOUT: assign %i.var, %.loc14_36.2 -// CHECK:STDOUT: %.loc14_17.1: type = splice_block %.loc14_17.2 [concrete = constants.%.879] { +// CHECK:STDOUT: %.loc14_17.1: type = splice_block %.loc14_17.2 [concrete = constants.%.d74] { // CHECK:STDOUT: %X.ref.loc14_25: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc14_17.2: type = partial_type %X.ref.loc14_25 [concrete = constants.%.879] +// CHECK:STDOUT: %.loc14_17.2: type = partial_type %X.ref.loc14_25 [concrete = constants.%.d74] // CHECK:STDOUT: } -// CHECK:STDOUT: %i: ref %.879 = ref_binding i, %i.var +// CHECK:STDOUT: %i: ref %.d74 = ref_binding i, %i.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.379 = value_binding_pattern v [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.53b = value_binding_pattern v [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %value.ref: %X = name_ref value, file.%value // CHECK:STDOUT: %X.ref.loc15_46: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc15_38: type = partial_type %X.ref.loc15_46 [concrete = constants.%.879] -// CHECK:STDOUT: %.loc15_35.1: %.879 = as_compatible %value.ref -// CHECK:STDOUT: %.loc15_35.2: %.879 = converted %value.ref, %.loc15_35.1 -// CHECK:STDOUT: %.loc15_17.1: type = splice_block %.loc15_17.2 [concrete = constants.%.879] { +// CHECK:STDOUT: %.loc15_38: type = partial_type %X.ref.loc15_46 [concrete = constants.%.d74] +// CHECK:STDOUT: %.loc15_35.1: %.d74 = as_compatible %value.ref +// CHECK:STDOUT: %.loc15_35.2: %.d74 = converted %value.ref, %.loc15_35.1 +// CHECK:STDOUT: %.loc15_17.1: type = splice_block %.loc15_17.2 [concrete = constants.%.d74] { // CHECK:STDOUT: %X.ref.loc15_25: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc15_17.2: type = partial_type %X.ref.loc15_25 [concrete = constants.%.879] +// CHECK:STDOUT: %.loc15_17.2: type = partial_type %X.ref.loc15_25 [concrete = constants.%.d74] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: %.879 = value_binding v, %.loc15_35.2 +// CHECK:STDOUT: %v: %.d74 = value_binding v, %.loc15_35.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.173 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.12c = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %reference.ref: ref %X = name_ref reference, file.%reference [concrete = file.%reference.var] // CHECK:STDOUT: %X.ref.loc16_53: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc16_45: type = partial_type %X.ref.loc16_53 [concrete = constants.%.879] -// CHECK:STDOUT: %.loc16_42.1: ref %.879 = as_compatible %reference.ref [concrete = constants.%reference.var] -// CHECK:STDOUT: %.loc16_42.2: ref %.879 = converted %reference.ref, %.loc16_42.1 [concrete = constants.%reference.var] -// CHECK:STDOUT: %addr: %ptr.878 = addr_of %.loc16_42.2 [concrete = constants.%addr.d16] -// CHECK:STDOUT: %.loc16_26: type = splice_block %ptr.loc16 [concrete = constants.%ptr.878] { +// CHECK:STDOUT: %.loc16_45: type = partial_type %X.ref.loc16_53 [concrete = constants.%.d74] +// CHECK:STDOUT: %.loc16_42.1: ref %.d74 = as_compatible %reference.ref [concrete = constants.%reference.var] +// CHECK:STDOUT: %.loc16_42.2: ref %.d74 = converted %reference.ref, %.loc16_42.1 [concrete = constants.%reference.var] +// CHECK:STDOUT: %addr: %ptr.44a = addr_of %.loc16_42.2 [concrete = constants.%addr.b93] +// CHECK:STDOUT: %.loc16_26: type = splice_block %ptr.loc16 [concrete = constants.%ptr.44a] { // CHECK:STDOUT: %X.ref.loc16_25: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc16_17: type = partial_type %X.ref.loc16_25 [concrete = constants.%.879] -// CHECK:STDOUT: %ptr.loc16: type = ptr_type %.loc16_17 [concrete = constants.%ptr.878] +// CHECK:STDOUT: %.loc16_17: type = partial_type %X.ref.loc16_25 [concrete = constants.%.d74] +// CHECK:STDOUT: %ptr.loc16: type = ptr_type %.loc16_17 [concrete = constants.%ptr.44a] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.878 = value_binding a, %addr +// CHECK:STDOUT: %a: %ptr.44a = value_binding a, %addr // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.173 = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.12c = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %ptr.ref: %ptr.324 = name_ref ptr, file.%ptr.loc9_8 +// CHECK:STDOUT: %ptr.ref: %ptr.db8 = name_ref ptr, file.%ptr.loc9_8 // CHECK:STDOUT: %X.ref.loc17_45: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc17_37: type = partial_type %X.ref.loc17_45 [concrete = constants.%.879] -// CHECK:STDOUT: %ptr.loc17_46: type = ptr_type %.loc17_37 [concrete = constants.%ptr.878] -// CHECK:STDOUT: %.loc17_34.1: %ptr.878 = as_compatible %ptr.ref -// CHECK:STDOUT: %.loc17_34.2: %ptr.878 = converted %ptr.ref, %.loc17_34.1 -// CHECK:STDOUT: %.loc17_26: type = splice_block %ptr.loc17_26 [concrete = constants.%ptr.878] { +// CHECK:STDOUT: %.loc17_37: type = partial_type %X.ref.loc17_45 [concrete = constants.%.d74] +// CHECK:STDOUT: %ptr.loc17_46: type = ptr_type %.loc17_37 [concrete = constants.%ptr.44a] +// CHECK:STDOUT: %.loc17_34.1: %ptr.44a = as_compatible %ptr.ref +// CHECK:STDOUT: %.loc17_34.2: %ptr.44a = converted %ptr.ref, %.loc17_34.1 +// CHECK:STDOUT: %.loc17_26: type = splice_block %ptr.loc17_26 [concrete = constants.%ptr.44a] { // CHECK:STDOUT: %X.ref.loc17_25: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc17_17: type = partial_type %X.ref.loc17_25 [concrete = constants.%.879] -// CHECK:STDOUT: %ptr.loc17_26: type = ptr_type %.loc17_17 [concrete = constants.%ptr.878] +// CHECK:STDOUT: %.loc17_17: type = partial_type %X.ref.loc17_25 [concrete = constants.%.d74] +// CHECK:STDOUT: %ptr.loc17_26: type = ptr_type %.loc17_17 [concrete = constants.%ptr.44a] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: %ptr.878 = value_binding b, %.loc17_34.2 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %i.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %b: %ptr.44a = value_binding b, %.loc17_34.2 +// 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: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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 %.879) { +// CHECK:STDOUT: fn @Destroy.Op.loc14_3.2(%self.param: ref %.d74) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -210,38 +210,38 @@ fn Use() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %.879: type = partial_type %X [concrete] +// CHECK:STDOUT: %.d74: type = partial_type %X [concrete] // CHECK:STDOUT: %Init.type: type = fn_type @Init [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Init: %Init.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.7b3: type = pattern_type %X [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc12_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %X [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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.7b3 = ref_binding_pattern i [concrete] -// CHECK:STDOUT: %i.var_patt: %pattern_type.7b3 = var_pattern %i.patt [concrete] +// 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: } // CHECK:STDOUT: %i.var: ref %X = var %i.var_patt // CHECK:STDOUT: %Init.ref.loc10: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init] // CHECK:STDOUT: %.loc10_3.1: ref %X = splice_block %i.var {} -// CHECK:STDOUT: %Init.call.loc10: init %.879 to %.loc10_3.1 = call %Init.ref.loc10() +// CHECK:STDOUT: %Init.call.loc10: init %.d74 to %.loc10_3.1 = call %Init.ref.loc10() // CHECK:STDOUT: %.loc10_3.2: init %X = as_compatible %Init.call.loc10 // CHECK:STDOUT: %.loc10_3.3: init %X = converted %Init.call.loc10, %.loc10_3.2 // CHECK:STDOUT: assign %i.var, %.loc10_3.3 // CHECK:STDOUT: %X.ref.loc10: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %i: ref %X = ref_binding i, %i.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %j.patt: %pattern_type.7b3 = ref_binding_pattern j [concrete] -// CHECK:STDOUT: %j.var_patt: %pattern_type.7b3 = var_pattern %j.patt [concrete] +// CHECK:STDOUT: %j.patt: %pattern_type.6cb = ref_binding_pattern j [concrete] +// CHECK:STDOUT: %j.var_patt: %pattern_type.6cb = var_pattern %j.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %j.var: ref %X = var %j.var_patt // CHECK:STDOUT: %Init.ref.loc11: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init] // CHECK:STDOUT: %.loc11_3: ref %X = splice_block %j.var {} -// CHECK:STDOUT: %Init.call.loc11: init %.879 to %.loc11_3 = call %Init.ref.loc11() +// CHECK:STDOUT: %Init.call.loc11: init %.d74 to %.loc11_3 = call %Init.ref.loc11() // CHECK:STDOUT: %X.ref.loc11_31: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc11_28.1: init %X = as_compatible %Init.call.loc11 // CHECK:STDOUT: %.loc11_28.2: init %X = converted %Init.call.loc11, %.loc11_28.1 @@ -249,24 +249,24 @@ fn Use() { // CHECK:STDOUT: %X.ref.loc11_17: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %j: ref %X = ref_binding j, %j.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %k.patt: %pattern_type.7b3 = ref_binding_pattern k [concrete] -// CHECK:STDOUT: %k.var_patt: %pattern_type.7b3 = var_pattern %k.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: } // CHECK:STDOUT: %k.var: ref %X = var %k.var_patt // CHECK:STDOUT: %Init.ref.loc12: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init] // CHECK:STDOUT: %.loc12_3: ref %X = splice_block %k.var {} -// CHECK:STDOUT: %Init.call.loc12: init %.879 to %.loc12_3 = call %Init.ref.loc12() +// CHECK:STDOUT: %Init.call.loc12: init %.d74 to %.loc12_3 = call %Init.ref.loc12() // CHECK:STDOUT: %X.ref.loc12_38: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc12_35.1: init %X = as_compatible %Init.call.loc12 // CHECK:STDOUT: %.loc12_35.2: init %X = converted %Init.call.loc12, %.loc12_35.1 // CHECK:STDOUT: assign %k.var, %.loc12_35.2 // CHECK:STDOUT: %X.ref.loc12_17: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %k: ref %X = ref_binding k, %k.var -// CHECK:STDOUT: %Destroy.Op.bound.loc12: = bound_method %k.var, constants.%Destroy.Op.2dd605.2 +// 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.2dd605.2 +// 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.2dd605.2 +// 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: // CHECK:STDOUT: } @@ -282,52 +282,52 @@ fn Use() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %X: type = class_type @X [concrete] -// CHECK:STDOUT: %.879: type = partial_type %X [concrete] -// CHECK:STDOUT: %ptr.878: type = ptr_type %.879 [concrete] -// CHECK:STDOUT: %pattern_type.7b3: type = pattern_type %X [concrete] -// CHECK:STDOUT: %ptr.324: type = ptr_type %X [concrete] -// CHECK:STDOUT: %pattern_type.f44: type = pattern_type %ptr.324 [concrete] +// CHECK:STDOUT: %.d74: type = partial_type %X [concrete] +// CHECK:STDOUT: %ptr.44a: type = ptr_type %.d74 [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %X [concrete] +// CHECK:STDOUT: %ptr.db8: type = ptr_type %X [concrete] +// CHECK:STDOUT: %pattern_type.990: type = pattern_type %ptr.db8 [concrete] // CHECK:STDOUT: %reference.var: ref %X = var file.%reference.var_patt [concrete] -// CHECK:STDOUT: %addr.fa4: %ptr.324 = addr_of %reference.var [concrete] +// CHECK:STDOUT: %addr.433: %ptr.db8 = addr_of %reference.var [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.7b3 = value_binding_pattern v [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.6cb = value_binding_pattern v [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %value.ref: %.879 = name_ref value, file.%value +// CHECK:STDOUT: %value.ref: %.d74 = name_ref value, file.%value // CHECK:STDOUT: %X.ref.loc14_37: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc14_34.1: %X = as_compatible %value.ref // CHECK:STDOUT: %.loc14_34.2: %X = converted %value.ref, %.loc14_34.1 // CHECK:STDOUT: %X.ref.loc14_17: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %v: %X = value_binding v, %.loc14_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f44 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.990 = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %reference.ref: ref %.879 = name_ref reference, file.%reference [concrete = file.%reference.var] +// CHECK:STDOUT: %reference.ref: ref %.d74 = name_ref reference, file.%reference [concrete = file.%reference.var] // CHECK:STDOUT: %X.ref.loc15_44: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc15_41.1: ref %X = as_compatible %reference.ref [concrete = constants.%reference.var] // CHECK:STDOUT: %.loc15_41.2: ref %X = converted %reference.ref, %.loc15_41.1 [concrete = constants.%reference.var] -// CHECK:STDOUT: %addr: %ptr.324 = addr_of %.loc15_41.2 [concrete = constants.%addr.fa4] -// CHECK:STDOUT: %.loc15_18: type = splice_block %ptr.loc15 [concrete = constants.%ptr.324] { +// CHECK:STDOUT: %addr: %ptr.db8 = addr_of %.loc15_41.2 [concrete = constants.%addr.433] +// CHECK:STDOUT: %.loc15_18: type = splice_block %ptr.loc15 [concrete = constants.%ptr.db8] { // CHECK:STDOUT: %X.ref.loc15_17: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %ptr.loc15: type = ptr_type %X.ref.loc15_17 [concrete = constants.%ptr.324] +// CHECK:STDOUT: %ptr.loc15: type = ptr_type %X.ref.loc15_17 [concrete = constants.%ptr.db8] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.324 = value_binding a, %addr +// CHECK:STDOUT: %a: %ptr.db8 = value_binding a, %addr // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f44 = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.990 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %ptr.ref: %ptr.878 = name_ref ptr, file.%ptr.loc10_8 +// CHECK:STDOUT: %ptr.ref: %ptr.44a = name_ref ptr, file.%ptr.loc10_8 // CHECK:STDOUT: %X.ref.loc16_36: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %ptr.loc16_37: type = ptr_type %X.ref.loc16_36 [concrete = constants.%ptr.324] -// CHECK:STDOUT: %.loc16_33.1: %ptr.324 = as_compatible %ptr.ref -// CHECK:STDOUT: %.loc16_33.2: %ptr.324 = converted %ptr.ref, %.loc16_33.1 -// CHECK:STDOUT: %.loc16_18: type = splice_block %ptr.loc16_18 [concrete = constants.%ptr.324] { +// CHECK:STDOUT: %ptr.loc16_37: type = ptr_type %X.ref.loc16_36 [concrete = constants.%ptr.db8] +// CHECK:STDOUT: %.loc16_33.1: %ptr.db8 = as_compatible %ptr.ref +// CHECK:STDOUT: %.loc16_33.2: %ptr.db8 = converted %ptr.ref, %.loc16_33.1 +// CHECK:STDOUT: %.loc16_18: type = splice_block %ptr.loc16_18 [concrete = constants.%ptr.db8] { // CHECK:STDOUT: %X.ref.loc16_17: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %ptr.loc16_18: type = ptr_type %X.ref.loc16_17 [concrete = constants.%ptr.324] +// CHECK:STDOUT: %ptr.loc16_18: type = ptr_type %X.ref.loc16_17 [concrete = constants.%ptr.db8] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: %ptr.324 = value_binding b, %.loc16_33.2 +// CHECK:STDOUT: %b: %ptr.db8 = value_binding b, %.loc16_33.2 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/as/var_init.carbon b/toolchain/check/testdata/as/var_init.carbon index c3bb3115e3e6..3b4ef49f6938 100644 --- a/toolchain/check/testdata/as/var_init.carbon +++ b/toolchain/check/testdata/as/var_init.carbon @@ -33,29 +33,29 @@ fn Convert(unused t: ()) { // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.f56: type = facet_type <@ImplicitAs, @ImplicitAs(%X)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7cc: type = facet_type <@ImplicitAs, @ImplicitAs(%X)> [concrete] // CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness @empty_tuple.type.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.7b3: type = pattern_type %X [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %X [concrete] // CHECK:STDOUT: %empty_tuple.type.as.ImplicitAs.impl.Convert.type: type = fn_type @empty_tuple.type.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %empty_tuple.type.as.ImplicitAs.impl.Convert: %empty_tuple.type.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.f56 = facet_value %empty_tuple.type, (%ImplicitAs.impl_witness) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.676: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%X, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.7cc = facet_value %empty_tuple.type, (%ImplicitAs.impl_witness) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.8de: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%X, %ImplicitAs.facet) [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %.d88: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.676, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %.ce8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.8de, %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.790b3b.2: type = fn_type @Destroy.Op.loc12_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Convert(%t.param: %empty_tuple.type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.7b3 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.7b3 = var_pattern %x.patt [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: } // CHECK:STDOUT: %x.var: ref %X = var %x.var_patt // CHECK:STDOUT: %.loc12_22.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %impl.elem0: %.d88 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%empty_tuple.type.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0: %.ce8 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%empty_tuple.type.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method: = bound_method %.loc12_22.1, %impl.elem0 [concrete = constants.%empty_tuple.type.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %.loc12_3.1: ref %X = splice_block %x.var {} // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] @@ -65,7 +65,7 @@ fn Convert(unused t: ()) { // CHECK:STDOUT: assign %x.var, %.loc12_3.2 // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %x: ref %X = ref_binding x, %x.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op.2dd605.2 +// 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: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/basics/include_in_dumps.carbon b/toolchain/check/testdata/basics/include_in_dumps.carbon index 3f2df1e0d4ca..4c92a768b975 100644 --- a/toolchain/check/testdata/basics/include_in_dumps.carbon +++ b/toolchain/check/testdata/basics/include_in_dumps.carbon @@ -121,17 +121,17 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.a3c: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %I.WithSelf.Op.type.e92: type = fn_type @I.WithSelf.Op, @I.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %I.WithSelf.Op.653: %I.WithSelf.Op.type.e92 = struct_value () [symbolic] +// CHECK:STDOUT: %pattern_type.c60: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %I.WithSelf.Op.type.dce: type = fn_type @I.WithSelf.Op, @I.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %I.WithSelf.Op.c70: %I.WithSelf.Op.type.dce = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.Op.decl [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.Op.type.c64: type = fn_type @I.WithSelf.Op, @I.WithSelf(%I.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.Op.a13: %I.WithSelf.Op.type.c64 = struct_value () [concrete] +// CHECK:STDOUT: %I.WithSelf.Op.type.194: type = fn_type @I.WithSelf.Op, @I.WithSelf(%I.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.Op.95d: %I.WithSelf.Op.type.194 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -143,9 +143,9 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %I.WithSelf.Op.decl: @I.WithSelf.%I.WithSelf.Op.type (%I.WithSelf.Op.type.e92) = fn_decl @I.WithSelf.Op [symbolic = @I.WithSelf.%I.WithSelf.Op (constants.%I.WithSelf.Op.653)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.a3c) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.a3c) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %I.WithSelf.Op.decl: @I.WithSelf.%I.WithSelf.Op.type (%I.WithSelf.Op.type.dce) = fn_decl @I.WithSelf.Op [symbolic = @I.WithSelf.%I.WithSelf.Op (constants.%I.WithSelf.Op.c70)] { +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.c60) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.c60) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @I.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc8_15.1: type = splice_block %.loc8_15.2 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type)] { @@ -168,7 +168,7 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: generic fn @I.WithSelf.Op(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc8_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc8_15.1 [symbolic = %pattern_type (constants.%pattern_type.a3c)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc8_15.1 [symbolic = %pattern_type (constants.%pattern_type.c60)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @I.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -176,27 +176,27 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: specific @I.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %I.WithSelf.Op.type => constants.%I.WithSelf.Op.type.e92 -// CHECK:STDOUT: %I.WithSelf.Op => constants.%I.WithSelf.Op.653 +// CHECK:STDOUT: %I.WithSelf.Op.type => constants.%I.WithSelf.Op.type.dce +// CHECK:STDOUT: %I.WithSelf.Op => constants.%I.WithSelf.Op.c70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc8_15.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a3c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.Op.type => constants.%I.WithSelf.Op.type.c64 -// CHECK:STDOUT: %I.WithSelf.Op => constants.%I.WithSelf.Op.a13 +// CHECK:STDOUT: %I.WithSelf.Op.type => constants.%I.WithSelf.Op.type.194 +// CHECK:STDOUT: %I.WithSelf.Op => constants.%I.WithSelf.Op.95d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.Op(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet // CHECK:STDOUT: %Self.as_type.loc8_15.1 => constants.%C -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d5 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- import_included.carbon @@ -205,23 +205,23 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.Op.type.674: type = fn_type @I.WithSelf.Op, @I.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %I.WithSelf.Op.b4d: %I.WithSelf.Op.type.674 = struct_value () [symbolic] +// CHECK:STDOUT: %I.WithSelf.Op.type.351: type = fn_type @I.WithSelf.Op, @I.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %I.WithSelf.Op.fcf: %I.WithSelf.Op.type.351 = struct_value () [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.3df: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.66b [concrete] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.421 [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.Op.type.91c: type = fn_type @I.WithSelf.Op, @I.WithSelf(%I.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.Op.323: %I.WithSelf.Op.type.91c = struct_value () [concrete] -// CHECK:STDOUT: %.e08: type = fn_type_with_self_type %I.WithSelf.Op.type.91c, %I.facet [concrete] +// CHECK:STDOUT: %I.WithSelf.Op.type.06d: type = fn_type @I.WithSelf.Op, @I.WithSelf(%I.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.Op.c74: %I.WithSelf.Op.type.06d = struct_value () [concrete] +// CHECK:STDOUT: %.536: type = fn_type_with_self_type %I.WithSelf.Op.type.06d, %I.facet [concrete] // CHECK:STDOUT: %C.as.I.impl.Op.type: type = fn_type @C.as.I.impl.Op [concrete] // CHECK:STDOUT: %C.as.I.impl.Op: %C.as.I.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -234,17 +234,17 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//included_with_range, loc16_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//included_with_range, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.3a7: %I.assoc_type = import_ref Main//included_with_range, loc8_22, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//included_with_range, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.ddc: %I.assoc_type = import_ref Main//included_with_range, loc8_22, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.Op = import_ref Main//included_with_range, Op, unloaded -// CHECK:STDOUT: %Main.import_ref.c42703.2: %I.type = import_ref Main//included_with_range, loc7_13, loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//included_with_range, loc7_13, unloaded -// CHECK:STDOUT: %Main.import_ref.66b: @I.WithSelf.%I.WithSelf.Op.type (%I.WithSelf.Op.type.674) = import_ref Main//included_with_range, loc8_22, loaded [symbolic = @I.WithSelf.%I.WithSelf.Op (constants.%I.WithSelf.Op.b4d)] -// CHECK:STDOUT: %Main.import_ref.5d3: = import_ref Main//included_with_range, loc13_15, loaded [concrete = constants.%I.impl_witness] -// CHECK:STDOUT: %Main.import_ref.f5a: type = import_ref Main//included_with_range, loc13_8, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.98c: type = import_ref Main//included_with_range, loc13_13, loaded [concrete = constants.%I.type] -// CHECK:STDOUT: %Main.import_ref.4f1: %C.as.I.impl.Op.type = import_ref Main//included_with_range, loc14_32, loaded [concrete = constants.%C.as.I.impl.Op] -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.4f1), @C.as.I.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.e59c42.2: %I.type = import_ref Main//included_with_range, loc7_13, loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//included_with_range, loc7_13, unloaded +// CHECK:STDOUT: %Main.import_ref.421: @I.WithSelf.%I.WithSelf.Op.type (%I.WithSelf.Op.type.351) = import_ref Main//included_with_range, loc8_22, loaded [symbolic = @I.WithSelf.%I.WithSelf.Op (constants.%I.WithSelf.Op.fcf)] +// CHECK:STDOUT: %Main.import_ref.b48: = import_ref Main//included_with_range, loc13_15, loaded [concrete = constants.%I.impl_witness] +// CHECK:STDOUT: %Main.import_ref.335: type = import_ref Main//included_with_range, loc13_8, loaded [concrete = constants.%C] +// CHECK:STDOUT: %Main.import_ref.c3f: type = import_ref Main//included_with_range, loc13_13, loaded [concrete = constants.%I.type] +// CHECK:STDOUT: %Main.import_ref.341: %C.as.I.impl.Op.type = import_ref Main//included_with_range, loc14_32, loaded [concrete = constants.%C.as.I.impl.Op] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.341), @C.as.I.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -257,8 +257,8 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] @@ -268,40 +268,40 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "exclude/included_with_range.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .Op = imports.%Main.import_ref.3a7 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .Op = imports.%Main.import_ref.ddc // CHECK:STDOUT: witness = (imports.%Main.Op) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.I.impl: imports.%Main.import_ref.f5a as imports.%Main.import_ref.98c [from "exclude/included_with_range.carbon"] { +// CHECK:STDOUT: impl @C.as.I.impl: imports.%Main.import_ref.335 as imports.%Main.import_ref.c3f [from "exclude/included_with_range.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Main.import_ref.5d3 +// CHECK:STDOUT: witness = imports.%Main.import_ref.b48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "exclude/included_with_range.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%c.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] -// CHECK:STDOUT: %Op.ref: %I.assoc_type = name_ref Op, imports.%Main.import_ref.3a7 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.e08 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.Op] +// CHECK:STDOUT: %Op.ref: %I.assoc_type = name_ref Op, imports.%Main.import_ref.ddc [concrete = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %.536 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %C.as.I.impl.Op.call: init %empty_tuple.type = call %bound_method(%c.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.WithSelf.Op(imports.%Main.import_ref.c42703.2: %I.type) [from "exclude/included_with_range.carbon"] { +// CHECK:STDOUT: generic fn @I.WithSelf.Op(imports.%Main.import_ref.e59c42.2: %I.type) [from "exclude/included_with_range.carbon"] { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.3df)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.b3a)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -311,41 +311,41 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: specific @I.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %I.WithSelf.Op.type => constants.%I.WithSelf.Op.type.674 -// CHECK:STDOUT: %I.WithSelf.Op => constants.%I.WithSelf.Op.b4d +// CHECK:STDOUT: %I.WithSelf.Op.type => constants.%I.WithSelf.Op.type.351 +// CHECK:STDOUT: %I.WithSelf.Op => constants.%I.WithSelf.Op.fcf // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3df +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b3a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.Op.type => constants.%I.WithSelf.Op.type.91c -// CHECK:STDOUT: %I.WithSelf.Op => constants.%I.WithSelf.Op.323 +// CHECK:STDOUT: %I.WithSelf.Op.type => constants.%I.WithSelf.Op.type.06d +// CHECK:STDOUT: %I.WithSelf.Op => constants.%I.WithSelf.Op.c74 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- import_excluded.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.Op.type.674: type = fn_type @I.WithSelf.Op, @I.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %I.WithSelf.Op.b4d: %I.WithSelf.Op.type.674 = struct_value () [symbolic] +// CHECK:STDOUT: %I.WithSelf.Op.type.351: type = fn_type @I.WithSelf.Op, @I.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %I.WithSelf.Op.fcf: %I.WithSelf.Op.type.351 = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.66b [concrete] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.421 [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.Op.type.91c: type = fn_type @I.WithSelf.Op, @I.WithSelf(%I.facet) [concrete] -// CHECK:STDOUT: %.e08: type = fn_type_with_self_type %I.WithSelf.Op.type.91c, %I.facet [concrete] +// CHECK:STDOUT: %I.WithSelf.Op.type.06d: type = fn_type @I.WithSelf.Op, @I.WithSelf(%I.facet) [concrete] +// CHECK:STDOUT: %.536: type = fn_type_with_self_type %I.WithSelf.Op.type.06d, %I.facet [concrete] // CHECK:STDOUT: %C.as.I.impl.Op.type: type = fn_type @C.as.I.impl.Op [concrete] // CHECK:STDOUT: %C.as.I.impl.Op: %C.as.I.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -357,10 +357,10 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.3a7: %I.assoc_type = import_ref Main//excluded_with_range, loc6_22, loaded [concrete = constants.%assoc0] -// CHECK:STDOUT: %Main.import_ref.66b: @I.WithSelf.%I.WithSelf.Op.type (%I.WithSelf.Op.type.674) = import_ref Main//excluded_with_range, loc6_22, loaded [symbolic = @I.WithSelf.%I.WithSelf.Op (constants.%I.WithSelf.Op.b4d)] -// CHECK:STDOUT: %Main.import_ref.4f1: %C.as.I.impl.Op.type = import_ref Main//excluded_with_range, loc12_32, loaded [concrete = constants.%C.as.I.impl.Op] -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.4f1), @C.as.I.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.ddc: %I.assoc_type = import_ref Main//excluded_with_range, loc6_22, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.421: @I.WithSelf.%I.WithSelf.Op.type (%I.WithSelf.Op.type.351) = import_ref Main//excluded_with_range, loc6_22, loaded [symbolic = @I.WithSelf.%I.WithSelf.Op (constants.%I.WithSelf.Op.fcf)] +// CHECK:STDOUT: %Main.import_ref.341: %C.as.I.impl.Op.type = import_ref Main//excluded_with_range, loc12_32, loaded [concrete = constants.%C.as.I.impl.Op] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.341), @C.as.I.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -373,8 +373,8 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] @@ -386,8 +386,8 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: !entry: // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] -// CHECK:STDOUT: %Op.ref: %I.assoc_type = name_ref Op, imports.%Main.import_ref.3a7 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.e08 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.Op] +// CHECK:STDOUT: %Op.ref: %I.assoc_type = name_ref Op, imports.%Main.import_ref.ddc [concrete = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %.536 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %C.as.I.impl.Op.call: init %empty_tuple.type = call %bound_method(%c.ref) // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/basics/parens.carbon b/toolchain/check/testdata/basics/parens.carbon index 342f43beb27f..5c80e4db9caa 100644 --- a/toolchain/check/testdata/basics/parens.carbon +++ b/toolchain/check/testdata/basics/parens.carbon @@ -21,28 +21,28 @@ var b: i32 = ((2)); // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = 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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -53,9 +53,9 @@ var b: i32 = ((2)); // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -66,15 +66,15 @@ var b: i32 = ((2)); // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.104 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var %a.var_patt [concrete] // CHECK:STDOUT: %i32.loc14: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: ref %i32 = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt [concrete] // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -84,20 +84,20 @@ var b: i32 = ((2)); // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc14: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc14_1.1: = bound_method %int_1, %impl.elem0.loc14 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc14: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc14_1.1: = bound_method %int_1, %impl.elem0.loc14 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc14_1.2: = bound_method %int_1, %specific_fn.loc14 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14: init %i32 = call %bound_method.loc14_1.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc14: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc14_1.2: = bound_method %int_1, %specific_fn.loc14 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14: init %i32 = call %bound_method.loc14_1.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc14: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: assign file.%a.var, %.loc14 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc15: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_1.1: = bound_method %int_2, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %impl.elem0.loc15: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_1.1: = bound_method %int_2, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_1.2: = bound_method %int_2, %specific_fn.loc15 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %i32 = call %bound_method.loc15_1.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc15: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc15_1.2: = bound_method %int_2, %specific_fn.loc15 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %i32 = call %bound_method.loc15_1.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc15: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%int_2.295] // CHECK:STDOUT: assign file.%b.var, %.loc15 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/bool/eq.carbon b/toolchain/check/testdata/builtins/bool/eq.carbon index 8a8d652cb0c7..390271dd7a73 100644 --- a/toolchain/check/testdata/builtins/bool/eq.carbon +++ b/toolchain/check/testdata/builtins/bool/eq.carbon @@ -52,19 +52,19 @@ var d: C(false == false) = True(); // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] -// CHECK:STDOUT: %C.4d4: type = class_type @C, @C(%true) [concrete] -// CHECK:STDOUT: %pattern_type.1d4: type = pattern_type %C.4d4 [concrete] +// CHECK:STDOUT: %C.ac4: type = class_type @C, @C(%true) [concrete] +// CHECK:STDOUT: %pattern_type.2ef: type = pattern_type %C.ac4 [concrete] // CHECK:STDOUT: %True.type: type = fn_type @True [concrete] // CHECK:STDOUT: %True: %True.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.1d4 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.1d4 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.2ef = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.2ef = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %C.4d4 = var %a.var_patt [concrete] -// CHECK:STDOUT: %.loc12_24.1: type = splice_block %C.loc12 [concrete = constants.%C.4d4] { +// CHECK:STDOUT: %a.var: ref %C.ac4 = var %a.var_patt [concrete] +// CHECK:STDOUT: %.loc12_24.1: type = splice_block %C.loc12 [concrete = constants.%C.ac4] { // CHECK:STDOUT: %C.ref.loc12: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %Eq.ref.loc12: %Eq.type = name_ref Eq, %Eq.decl [concrete = constants.%Eq] // CHECK:STDOUT: %true.loc12_13: bool = bool_literal true [concrete = constants.%true] @@ -72,16 +72,16 @@ var d: C(false == false) = True(); // CHECK:STDOUT: %Eq.call.loc12: init bool = call %Eq.ref.loc12(%true.loc12_13, %true.loc12_19) [concrete = constants.%true] // CHECK:STDOUT: %.loc12_24.2: bool = value_of_initializer %Eq.call.loc12 [concrete = constants.%true] // CHECK:STDOUT: %.loc12_24.3: bool = converted %Eq.call.loc12, %.loc12_24.2 [concrete = constants.%true] -// CHECK:STDOUT: %C.loc12: type = class_type @C, @C(constants.%true) [concrete = constants.%C.4d4] +// CHECK:STDOUT: %C.loc12: type = class_type @C, @C(constants.%true) [concrete = constants.%C.ac4] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %C.4d4 = ref_binding a, %a.var [concrete = %a.var] +// CHECK:STDOUT: %a: ref %C.ac4 = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %True.ref.loc12: %True.type = name_ref True, file.%True.decl [concrete = constants.%True] -// CHECK:STDOUT: %.loc12: ref %C.4d4 = splice_block file.%a.var [concrete = file.%a.var] {} -// CHECK:STDOUT: %True.call.loc12: init %C.4d4 to %.loc12 = call %True.ref.loc12() +// CHECK:STDOUT: %.loc12: ref %C.ac4 = splice_block file.%a.var [concrete = file.%a.var] {} +// CHECK:STDOUT: %True.call.loc12: init %C.ac4 to %.loc12 = call %True.ref.loc12() // CHECK:STDOUT: assign file.%a.var, %True.call.loc12 // CHECK:STDOUT: // CHECK:STDOUT: } @@ -92,51 +92,51 @@ var d: C(false == false) = True(); // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] -// CHECK:STDOUT: %C.4d4: type = class_type @C, @C(%true) [concrete] -// CHECK:STDOUT: %pattern_type.1d4: type = pattern_type %C.4d4 [concrete] +// CHECK:STDOUT: %C.ac4: type = class_type @C, @C(%true) [concrete] +// CHECK:STDOUT: %pattern_type.2ef: type = pattern_type %C.ac4 [concrete] // CHECK:STDOUT: %True.type: type = fn_type @True [concrete] // CHECK:STDOUT: %True: %True.type = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.type.037: type = facet_type <@EqWith, @EqWith(bool)> [concrete] +// CHECK:STDOUT: %EqWith.type.539: type = facet_type <@EqWith, @EqWith(bool)> [concrete] // CHECK:STDOUT: %EqWith.impl_witness: = impl_witness imports.%EqWith.impl_witness_table [concrete] -// CHECK:STDOUT: %EqWith.facet: %EqWith.type.037 = facet_value bool, (%EqWith.impl_witness) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.b58: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(bool, %EqWith.facet) [concrete] -// CHECK:STDOUT: %.214: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.b58, %EqWith.facet [concrete] +// CHECK:STDOUT: %EqWith.facet: %EqWith.type.539 = facet_value bool, (%EqWith.impl_witness) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.f32: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(bool, %EqWith.facet) [concrete] +// CHECK:STDOUT: %.670: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.f32, %EqWith.facet [concrete] // CHECK:STDOUT: %bool.as.EqWith.impl.Equal.type: type = fn_type @bool.as.EqWith.impl.Equal [concrete] // CHECK:STDOUT: %bool.as.EqWith.impl.Equal: %bool.as.EqWith.impl.Equal.type = struct_value () [concrete] // CHECK:STDOUT: %bool.as.EqWith.impl.Equal.bound.e7c: = bound_method %true, %bool.as.EqWith.impl.Equal [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b5b: %bool.as.EqWith.impl.Equal.type = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.EqWith.impl.Equal] -// CHECK:STDOUT: %Core.import_ref.7a2 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %EqWith.impl_witness_table = impl_witness_table (%Core.import_ref.b5b, %Core.import_ref.7a2), @bool.as.EqWith.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.a87: %bool.as.EqWith.impl.Equal.type = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.EqWith.impl.Equal] +// CHECK:STDOUT: %Core.import_ref.e3a = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %EqWith.impl_witness_table = impl_witness_table (%Core.import_ref.a87, %Core.import_ref.e3a), @bool.as.EqWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.1d4 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.1d4 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.2ef = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.2ef = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %C.4d4 = var %a.var_patt [concrete] -// CHECK:STDOUT: %.loc10_22.1: type = splice_block %C.loc10 [concrete = constants.%C.4d4] { +// CHECK:STDOUT: %a.var: ref %C.ac4 = var %a.var_patt [concrete] +// CHECK:STDOUT: %.loc10_22.1: type = splice_block %C.loc10 [concrete = constants.%C.ac4] { // CHECK:STDOUT: %C.ref.loc10: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %true.loc10_10: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %true.loc10_18: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem0.loc10: %.214 = impl_witness_access constants.%EqWith.impl_witness, element0 [concrete = constants.%bool.as.EqWith.impl.Equal] +// CHECK:STDOUT: %impl.elem0.loc10: %.670 = impl_witness_access constants.%EqWith.impl_witness, element0 [concrete = constants.%bool.as.EqWith.impl.Equal] // CHECK:STDOUT: %bound_method.loc10: = bound_method %true.loc10_10, %impl.elem0.loc10 [concrete = constants.%bool.as.EqWith.impl.Equal.bound.e7c] // CHECK:STDOUT: %bool.as.EqWith.impl.Equal.call.loc10: init bool = call %bound_method.loc10(%true.loc10_10, %true.loc10_18) [concrete = constants.%true] // CHECK:STDOUT: %.loc10_22.2: bool = value_of_initializer %bool.as.EqWith.impl.Equal.call.loc10 [concrete = constants.%true] // CHECK:STDOUT: %.loc10_22.3: bool = converted %bool.as.EqWith.impl.Equal.call.loc10, %.loc10_22.2 [concrete = constants.%true] -// CHECK:STDOUT: %C.loc10: type = class_type @C, @C(constants.%true) [concrete = constants.%C.4d4] +// CHECK:STDOUT: %C.loc10: type = class_type @C, @C(constants.%true) [concrete = constants.%C.ac4] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %C.4d4 = ref_binding a, %a.var [concrete = %a.var] +// CHECK:STDOUT: %a: ref %C.ac4 = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %True.ref.loc10: %True.type = name_ref True, file.%True.decl [concrete = constants.%True] -// CHECK:STDOUT: %.loc10: ref %C.4d4 = splice_block file.%a.var [concrete = file.%a.var] {} -// CHECK:STDOUT: %True.call.loc10: init %C.4d4 to %.loc10 = call %True.ref.loc10() +// CHECK:STDOUT: %.loc10: ref %C.ac4 = splice_block file.%a.var [concrete = file.%a.var] {} +// CHECK:STDOUT: %True.call.loc10: init %C.ac4 to %.loc10 = call %True.ref.loc10() // CHECK:STDOUT: assign file.%a.var, %True.call.loc10 // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/bool/neq.carbon b/toolchain/check/testdata/builtins/bool/neq.carbon index 4da1d3791b72..323665968de1 100644 --- a/toolchain/check/testdata/builtins/bool/neq.carbon +++ b/toolchain/check/testdata/builtins/bool/neq.carbon @@ -53,19 +53,19 @@ var d: C(false != false) = False(); // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %false: bool = bool_literal false [concrete] -// CHECK:STDOUT: %C.2a3: type = class_type @C, @C(%false) [concrete] -// CHECK:STDOUT: %pattern_type.81f: type = pattern_type %C.2a3 [concrete] +// CHECK:STDOUT: %C.4b2: type = class_type @C, @C(%false) [concrete] +// CHECK:STDOUT: %pattern_type.794: type = pattern_type %C.4b2 [concrete] // CHECK:STDOUT: %False.type: type = fn_type @False [concrete] // CHECK:STDOUT: %False: %False.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.81f = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.81f = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.794 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.794 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %C.2a3 = var %a.var_patt [concrete] -// CHECK:STDOUT: %.loc12_25.1: type = splice_block %C.loc12 [concrete = constants.%C.2a3] { +// CHECK:STDOUT: %a.var: ref %C.4b2 = var %a.var_patt [concrete] +// CHECK:STDOUT: %.loc12_25.1: type = splice_block %C.loc12 [concrete = constants.%C.4b2] { // CHECK:STDOUT: %C.ref.loc12: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %Neq.ref.loc12: %Neq.type = name_ref Neq, %Neq.decl [concrete = constants.%Neq] // CHECK:STDOUT: %true.loc12_14: bool = bool_literal true [concrete = constants.%true] @@ -73,16 +73,16 @@ var d: C(false != false) = False(); // CHECK:STDOUT: %Neq.call.loc12: init bool = call %Neq.ref.loc12(%true.loc12_14, %true.loc12_20) [concrete = constants.%false] // CHECK:STDOUT: %.loc12_25.2: bool = value_of_initializer %Neq.call.loc12 [concrete = constants.%false] // CHECK:STDOUT: %.loc12_25.3: bool = converted %Neq.call.loc12, %.loc12_25.2 [concrete = constants.%false] -// CHECK:STDOUT: %C.loc12: type = class_type @C, @C(constants.%false) [concrete = constants.%C.2a3] +// CHECK:STDOUT: %C.loc12: type = class_type @C, @C(constants.%false) [concrete = constants.%C.4b2] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %C.2a3 = ref_binding a, %a.var [concrete = %a.var] +// CHECK:STDOUT: %a: ref %C.4b2 = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %False.ref.loc12: %False.type = name_ref False, file.%False.decl [concrete = constants.%False] -// CHECK:STDOUT: %.loc12: ref %C.2a3 = splice_block file.%a.var [concrete = file.%a.var] {} -// CHECK:STDOUT: %False.call.loc12: init %C.2a3 to %.loc12 = call %False.ref.loc12() +// CHECK:STDOUT: %.loc12: ref %C.4b2 = splice_block file.%a.var [concrete = file.%a.var] {} +// CHECK:STDOUT: %False.call.loc12: init %C.4b2 to %.loc12 = call %False.ref.loc12() // CHECK:STDOUT: assign file.%a.var, %False.call.loc12 // CHECK:STDOUT: // CHECK:STDOUT: } @@ -94,51 +94,51 @@ var d: C(false != false) = False(); // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %false: bool = bool_literal false [concrete] -// CHECK:STDOUT: %C.2a3: type = class_type @C, @C(%false) [concrete] -// CHECK:STDOUT: %pattern_type.81f: type = pattern_type %C.2a3 [concrete] +// CHECK:STDOUT: %C.4b2: type = class_type @C, @C(%false) [concrete] +// CHECK:STDOUT: %pattern_type.794: type = pattern_type %C.4b2 [concrete] // CHECK:STDOUT: %False.type: type = fn_type @False [concrete] // CHECK:STDOUT: %False: %False.type = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.type.037: type = facet_type <@EqWith, @EqWith(bool)> [concrete] +// CHECK:STDOUT: %EqWith.type.539: type = facet_type <@EqWith, @EqWith(bool)> [concrete] // CHECK:STDOUT: %EqWith.impl_witness: = impl_witness imports.%EqWith.impl_witness_table [concrete] -// CHECK:STDOUT: %EqWith.facet: %EqWith.type.037 = facet_value bool, (%EqWith.impl_witness) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.133: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(bool, %EqWith.facet) [concrete] -// CHECK:STDOUT: %.7b3: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.133, %EqWith.facet [concrete] +// CHECK:STDOUT: %EqWith.facet: %EqWith.type.539 = facet_value bool, (%EqWith.impl_witness) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.e09: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(bool, %EqWith.facet) [concrete] +// CHECK:STDOUT: %.72d: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.e09, %EqWith.facet [concrete] // CHECK:STDOUT: %bool.as.EqWith.impl.NotEqual.type: type = fn_type @bool.as.EqWith.impl.NotEqual [concrete] // CHECK:STDOUT: %bool.as.EqWith.impl.NotEqual: %bool.as.EqWith.impl.NotEqual.type = struct_value () [concrete] // CHECK:STDOUT: %bool.as.EqWith.impl.NotEqual.bound.598: = bound_method %true, %bool.as.EqWith.impl.NotEqual [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.a57 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.3bc: %bool.as.EqWith.impl.NotEqual.type = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.EqWith.impl.NotEqual] -// CHECK:STDOUT: %EqWith.impl_witness_table = impl_witness_table (%Core.import_ref.a57, %Core.import_ref.3bc), @bool.as.EqWith.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.91e = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.adc: %bool.as.EqWith.impl.NotEqual.type = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.EqWith.impl.NotEqual] +// CHECK:STDOUT: %EqWith.impl_witness_table = impl_witness_table (%Core.import_ref.91e, %Core.import_ref.adc), @bool.as.EqWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.81f = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.81f = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.794 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.794 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %C.2a3 = var %a.var_patt [concrete] -// CHECK:STDOUT: %.loc10_22.1: type = splice_block %C.loc10 [concrete = constants.%C.2a3] { +// CHECK:STDOUT: %a.var: ref %C.4b2 = var %a.var_patt [concrete] +// CHECK:STDOUT: %.loc10_22.1: type = splice_block %C.loc10 [concrete = constants.%C.4b2] { // CHECK:STDOUT: %C.ref.loc10: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %true.loc10_10: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %true.loc10_18: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem1.loc10: %.7b3 = impl_witness_access constants.%EqWith.impl_witness, element1 [concrete = constants.%bool.as.EqWith.impl.NotEqual] +// CHECK:STDOUT: %impl.elem1.loc10: %.72d = impl_witness_access constants.%EqWith.impl_witness, element1 [concrete = constants.%bool.as.EqWith.impl.NotEqual] // CHECK:STDOUT: %bound_method.loc10: = bound_method %true.loc10_10, %impl.elem1.loc10 [concrete = constants.%bool.as.EqWith.impl.NotEqual.bound.598] // CHECK:STDOUT: %bool.as.EqWith.impl.NotEqual.call.loc10: init bool = call %bound_method.loc10(%true.loc10_10, %true.loc10_18) [concrete = constants.%false] // CHECK:STDOUT: %.loc10_22.2: bool = value_of_initializer %bool.as.EqWith.impl.NotEqual.call.loc10 [concrete = constants.%false] // CHECK:STDOUT: %.loc10_22.3: bool = converted %bool.as.EqWith.impl.NotEqual.call.loc10, %.loc10_22.2 [concrete = constants.%false] -// CHECK:STDOUT: %C.loc10: type = class_type @C, @C(constants.%false) [concrete = constants.%C.2a3] +// CHECK:STDOUT: %C.loc10: type = class_type @C, @C(constants.%false) [concrete = constants.%C.4b2] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %C.2a3 = ref_binding a, %a.var [concrete = %a.var] +// CHECK:STDOUT: %a: ref %C.4b2 = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %False.ref.loc10: %False.type = name_ref False, file.%False.decl [concrete = constants.%False] -// CHECK:STDOUT: %.loc10: ref %C.2a3 = splice_block file.%a.var [concrete = file.%a.var] {} -// CHECK:STDOUT: %False.call.loc10: init %C.2a3 to %.loc10 = call %False.ref.loc10() +// CHECK:STDOUT: %.loc10: ref %C.4b2 = splice_block file.%a.var [concrete = file.%a.var] {} +// CHECK:STDOUT: %False.call.loc10: init %C.4b2 to %.loc10 = call %False.ref.loc10() // CHECK:STDOUT: assign file.%a.var, %False.call.loc10 // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/add.carbon b/toolchain/check/testdata/builtins/float/add.carbon index 27a5169519f4..52aac1f19d22 100644 --- a/toolchain/check/testdata/builtins/float/add.carbon +++ b/toolchain/check/testdata/builtins/float/add.carbon @@ -72,17 +72,17 @@ fn AddLiteral(a: Literal(), b: Literal()) -> Literal() = "float.add"; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %Add.type: type = fn_type @Add [concrete] // CHECK:STDOUT: %Add: %Add.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.b55, %b.param: %f64.b55) -> out %return.param: %f64.b55 { +// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.dc1, %b.param: %f64.dc1) -> out %return.param: %f64.dc1 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Add.ref: %Add.type = name_ref Add, file.%Add.decl [concrete = constants.%Add] -// CHECK:STDOUT: %a.ref: %f64.b55 = name_ref a, %a -// CHECK:STDOUT: %b.ref: %f64.b55 = name_ref b, %b -// CHECK:STDOUT: %Add.call: init %f64.b55 = call %Add.ref(%a.ref, %b.ref) +// CHECK:STDOUT: %a.ref: %f64.dc1 = name_ref a, %a +// CHECK:STDOUT: %b.ref: %f64.dc1 = name_ref b, %b +// CHECK:STDOUT: %Add.call: init %f64.dc1 = call %Add.ref(%a.ref, %b.ref) // CHECK:STDOUT: return %Add.call // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/float/convert.carbon b/toolchain/check/testdata/builtins/float/convert.carbon index cfc1ecbff741..ecd03071198c 100644 --- a/toolchain/check/testdata/builtins/float/convert.carbon +++ b/toolchain/check/testdata/builtins/float/convert.carbon @@ -161,18 +161,18 @@ let b: f64 = Float32ToFloat64(1.0e30); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [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: %FloatLiteralToFloat64.type: type = fn_type @FloatLiteralToFloat64 [concrete] // CHECK:STDOUT: %FloatLiteralToFloat64: %FloatLiteralToFloat64.type = struct_value () [concrete] // CHECK:STDOUT: %float.1f7: Core.FloatLiteral = float_literal_value 0e-1 [concrete] -// CHECK:STDOUT: %float.1af: %f64.b55 = float_value 0 [concrete] +// CHECK:STDOUT: %float.895: %f64.dc1 = float_value 0 [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %float.642: %f64.b55 = float_value 1 [concrete] +// CHECK:STDOUT: %float.3b9: %f64.dc1 = float_value 1 [concrete] // CHECK:STDOUT: %float.12a: Core.FloatLiteral = float_literal_value 10e307 [concrete] -// CHECK:STDOUT: %float.3b9: %f64.b55 = float_value 1.0E+308 [concrete] +// CHECK:STDOUT: %float.672: %f64.dc1 = float_value 1.0E+308 [concrete] // CHECK:STDOUT: %float.82f: Core.FloatLiteral = float_literal_value 10e308 [concrete] -// CHECK:STDOUT: %float.f70: %f64.b55 = float_value +Inf [concrete] +// CHECK:STDOUT: %float.7ae: %f64.dc1 = float_value +Inf [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -181,49 +181,49 @@ let b: f64 = Float32ToFloat64(1.0e30); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f3c = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc6_39.1: %f64.b55 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc6 [concrete = constants.%float.1af] -// CHECK:STDOUT: %.loc6_39.2: %f64.b55 = converted @__global_init.%FloatLiteralToFloat64.call.loc6, %.loc6_39.1 [concrete = constants.%float.1af] -// CHECK:STDOUT: %a: %f64.b55 = value_binding a, %.loc6_39.2 +// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc6_39.1: %f64.dc1 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc6 [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc6_39.2: %f64.dc1 = converted @__global_init.%FloatLiteralToFloat64.call.loc6, %.loc6_39.1 [concrete = constants.%float.895] +// CHECK:STDOUT: %a: %f64.dc1 = value_binding a, %.loc6_39.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f3c = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc7_39.1: %f64.b55 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc7 [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc7_39.2: %f64.b55 = converted @__global_init.%FloatLiteralToFloat64.call.loc7, %.loc7_39.1 [concrete = constants.%float.642] -// CHECK:STDOUT: %b: %f64.b55 = value_binding b, %.loc7_39.2 +// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc7_39.1: %f64.dc1 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc7 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc7_39.2: %f64.dc1 = converted @__global_init.%FloatLiteralToFloat64.call.loc7, %.loc7_39.1 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %b: %f64.dc1 = value_binding b, %.loc7_39.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.f3c = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.fb7 = value_binding_pattern c [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc8_43.1: %f64.b55 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc8 [concrete = constants.%float.3b9] -// CHECK:STDOUT: %.loc8_43.2: %f64.b55 = converted @__global_init.%FloatLiteralToFloat64.call.loc8, %.loc8_43.1 [concrete = constants.%float.3b9] -// CHECK:STDOUT: %c: %f64.b55 = value_binding c, %.loc8_43.2 +// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc8_43.1: %f64.dc1 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc8 [concrete = constants.%float.672] +// CHECK:STDOUT: %.loc8_43.2: %f64.dc1 = converted @__global_init.%FloatLiteralToFloat64.call.loc8, %.loc8_43.1 [concrete = constants.%float.672] +// CHECK:STDOUT: %c: %f64.dc1 = value_binding c, %.loc8_43.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.f3c = value_binding_pattern d [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.fb7 = value_binding_pattern d [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc10: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc10_43.1: %f64.b55 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc10 [concrete = constants.%float.f70] -// CHECK:STDOUT: %.loc10_43.2: %f64.b55 = converted @__global_init.%FloatLiteralToFloat64.call.loc10, %.loc10_43.1 [concrete = constants.%float.f70] -// CHECK:STDOUT: %d: %f64.b55 = value_binding d, %.loc10_43.2 +// CHECK:STDOUT: %f64.loc10: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc10_43.1: %f64.dc1 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc10 [concrete = constants.%float.7ae] +// CHECK:STDOUT: %.loc10_43.2: %f64.dc1 = converted @__global_init.%FloatLiteralToFloat64.call.loc10, %.loc10_43.1 [concrete = constants.%float.7ae] +// CHECK:STDOUT: %d: %f64.dc1 = value_binding d, %.loc10_43.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %FloatLiteralToFloat64.ref.loc6: %FloatLiteralToFloat64.type = name_ref FloatLiteralToFloat64, imports.%Main.FloatLiteralToFloat64 [concrete = constants.%FloatLiteralToFloat64] // CHECK:STDOUT: %float.loc6: Core.FloatLiteral = float_literal_value 0e-1 [concrete = constants.%float.1f7] -// CHECK:STDOUT: %FloatLiteralToFloat64.call.loc6: init %f64.b55 = call %FloatLiteralToFloat64.ref.loc6(%float.loc6) [concrete = constants.%float.1af] +// CHECK:STDOUT: %FloatLiteralToFloat64.call.loc6: init %f64.dc1 = call %FloatLiteralToFloat64.ref.loc6(%float.loc6) [concrete = constants.%float.895] // CHECK:STDOUT: %FloatLiteralToFloat64.ref.loc7: %FloatLiteralToFloat64.type = name_ref FloatLiteralToFloat64, imports.%Main.FloatLiteralToFloat64 [concrete = constants.%FloatLiteralToFloat64] // CHECK:STDOUT: %float.loc7: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] -// CHECK:STDOUT: %FloatLiteralToFloat64.call.loc7: init %f64.b55 = call %FloatLiteralToFloat64.ref.loc7(%float.loc7) [concrete = constants.%float.642] +// CHECK:STDOUT: %FloatLiteralToFloat64.call.loc7: init %f64.dc1 = call %FloatLiteralToFloat64.ref.loc7(%float.loc7) [concrete = constants.%float.3b9] // CHECK:STDOUT: %FloatLiteralToFloat64.ref.loc8: %FloatLiteralToFloat64.type = name_ref FloatLiteralToFloat64, imports.%Main.FloatLiteralToFloat64 [concrete = constants.%FloatLiteralToFloat64] // CHECK:STDOUT: %float.loc8: Core.FloatLiteral = float_literal_value 10e307 [concrete = constants.%float.12a] -// CHECK:STDOUT: %FloatLiteralToFloat64.call.loc8: init %f64.b55 = call %FloatLiteralToFloat64.ref.loc8(%float.loc8) [concrete = constants.%float.3b9] +// CHECK:STDOUT: %FloatLiteralToFloat64.call.loc8: init %f64.dc1 = call %FloatLiteralToFloat64.ref.loc8(%float.loc8) [concrete = constants.%float.672] // CHECK:STDOUT: %FloatLiteralToFloat64.ref.loc10: %FloatLiteralToFloat64.type = name_ref FloatLiteralToFloat64, imports.%Main.FloatLiteralToFloat64 [concrete = constants.%FloatLiteralToFloat64] // CHECK:STDOUT: %float.loc10: Core.FloatLiteral = float_literal_value 10e308 [concrete = constants.%float.82f] -// CHECK:STDOUT: %FloatLiteralToFloat64.call.loc10: init %f64.b55 = call %FloatLiteralToFloat64.ref.loc10(%float.loc10) [concrete = constants.%float.f70] +// CHECK:STDOUT: %FloatLiteralToFloat64.call.loc10: init %f64.dc1 = call %FloatLiteralToFloat64.ref.loc10(%float.loc10) [concrete = constants.%float.7ae] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -231,18 +231,18 @@ let b: f64 = Float32ToFloat64(1.0e30); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.f3b: type = pattern_type %f32.a26 [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %pattern_type.240: type = pattern_type %f32.c73 [concrete] // CHECK:STDOUT: %FloatLiteralToFloat32.type: type = fn_type @FloatLiteralToFloat32 [concrete] // CHECK:STDOUT: %FloatLiteralToFloat32: %FloatLiteralToFloat32.type = struct_value () [concrete] // CHECK:STDOUT: %float.1f7: Core.FloatLiteral = float_literal_value 0e-1 [concrete] -// CHECK:STDOUT: %float.e89: %f32.a26 = float_value 0 [concrete] +// CHECK:STDOUT: %float.5cd: %f32.c73 = float_value 0 [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] +// CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: %float.8d2: Core.FloatLiteral = float_literal_value 10e37 [concrete] -// CHECK:STDOUT: %float.16a: %f32.a26 = float_value 9.99999968E+37 [concrete] +// CHECK:STDOUT: %float.c47: %f32.c73 = float_value 9.99999968E+37 [concrete] // CHECK:STDOUT: %float.cfc: Core.FloatLiteral = float_literal_value 10e38 [concrete] -// CHECK:STDOUT: %float.81c: %f32.a26 = float_value +Inf [concrete] +// CHECK:STDOUT: %float.021: %f32.c73 = float_value +Inf [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -251,49 +251,49 @@ let b: f64 = Float32ToFloat64(1.0e30); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f3b = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc6: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc6_39.1: %f32.a26 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc6 [concrete = constants.%float.e89] -// CHECK:STDOUT: %.loc6_39.2: %f32.a26 = converted @__global_init.%FloatLiteralToFloat32.call.loc6, %.loc6_39.1 [concrete = constants.%float.e89] -// CHECK:STDOUT: %a: %f32.a26 = value_binding a, %.loc6_39.2 +// CHECK:STDOUT: %f32.loc6: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc6_39.1: %f32.c73 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc6 [concrete = constants.%float.5cd] +// CHECK:STDOUT: %.loc6_39.2: %f32.c73 = converted @__global_init.%FloatLiteralToFloat32.call.loc6, %.loc6_39.1 [concrete = constants.%float.5cd] +// CHECK:STDOUT: %a: %f32.c73 = value_binding a, %.loc6_39.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f3b = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc7: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc7_39.1: %f32.a26 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc7 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc7_39.2: %f32.a26 = converted @__global_init.%FloatLiteralToFloat32.call.loc7, %.loc7_39.1 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %b: %f32.a26 = value_binding b, %.loc7_39.2 +// CHECK:STDOUT: %f32.loc7: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc7_39.1: %f32.c73 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc7 [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc7_39.2: %f32.c73 = converted @__global_init.%FloatLiteralToFloat32.call.loc7, %.loc7_39.1 [concrete = constants.%float.943] +// CHECK:STDOUT: %b: %f32.c73 = value_binding b, %.loc7_39.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.f3b = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.240 = value_binding_pattern c [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc8: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc8_42.1: %f32.a26 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc8 [concrete = constants.%float.16a] -// CHECK:STDOUT: %.loc8_42.2: %f32.a26 = converted @__global_init.%FloatLiteralToFloat32.call.loc8, %.loc8_42.1 [concrete = constants.%float.16a] -// CHECK:STDOUT: %c: %f32.a26 = value_binding c, %.loc8_42.2 +// CHECK:STDOUT: %f32.loc8: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc8_42.1: %f32.c73 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc8 [concrete = constants.%float.c47] +// CHECK:STDOUT: %.loc8_42.2: %f32.c73 = converted @__global_init.%FloatLiteralToFloat32.call.loc8, %.loc8_42.1 [concrete = constants.%float.c47] +// CHECK:STDOUT: %c: %f32.c73 = value_binding c, %.loc8_42.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.f3b = value_binding_pattern d [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.240 = value_binding_pattern d [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc10: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc10_42.1: %f32.a26 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc10 [concrete = constants.%float.81c] -// CHECK:STDOUT: %.loc10_42.2: %f32.a26 = converted @__global_init.%FloatLiteralToFloat32.call.loc10, %.loc10_42.1 [concrete = constants.%float.81c] -// CHECK:STDOUT: %d: %f32.a26 = value_binding d, %.loc10_42.2 +// CHECK:STDOUT: %f32.loc10: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc10_42.1: %f32.c73 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc10 [concrete = constants.%float.021] +// CHECK:STDOUT: %.loc10_42.2: %f32.c73 = converted @__global_init.%FloatLiteralToFloat32.call.loc10, %.loc10_42.1 [concrete = constants.%float.021] +// CHECK:STDOUT: %d: %f32.c73 = value_binding d, %.loc10_42.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %FloatLiteralToFloat32.ref.loc6: %FloatLiteralToFloat32.type = name_ref FloatLiteralToFloat32, imports.%Main.FloatLiteralToFloat32 [concrete = constants.%FloatLiteralToFloat32] // CHECK:STDOUT: %float.loc6: Core.FloatLiteral = float_literal_value 0e-1 [concrete = constants.%float.1f7] -// CHECK:STDOUT: %FloatLiteralToFloat32.call.loc6: init %f32.a26 = call %FloatLiteralToFloat32.ref.loc6(%float.loc6) [concrete = constants.%float.e89] +// CHECK:STDOUT: %FloatLiteralToFloat32.call.loc6: init %f32.c73 = call %FloatLiteralToFloat32.ref.loc6(%float.loc6) [concrete = constants.%float.5cd] // CHECK:STDOUT: %FloatLiteralToFloat32.ref.loc7: %FloatLiteralToFloat32.type = name_ref FloatLiteralToFloat32, imports.%Main.FloatLiteralToFloat32 [concrete = constants.%FloatLiteralToFloat32] // CHECK:STDOUT: %float.loc7: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] -// CHECK:STDOUT: %FloatLiteralToFloat32.call.loc7: init %f32.a26 = call %FloatLiteralToFloat32.ref.loc7(%float.loc7) [concrete = constants.%float.2ec] +// CHECK:STDOUT: %FloatLiteralToFloat32.call.loc7: init %f32.c73 = call %FloatLiteralToFloat32.ref.loc7(%float.loc7) [concrete = constants.%float.943] // CHECK:STDOUT: %FloatLiteralToFloat32.ref.loc8: %FloatLiteralToFloat32.type = name_ref FloatLiteralToFloat32, imports.%Main.FloatLiteralToFloat32 [concrete = constants.%FloatLiteralToFloat32] // CHECK:STDOUT: %float.loc8: Core.FloatLiteral = float_literal_value 10e37 [concrete = constants.%float.8d2] -// CHECK:STDOUT: %FloatLiteralToFloat32.call.loc8: init %f32.a26 = call %FloatLiteralToFloat32.ref.loc8(%float.loc8) [concrete = constants.%float.16a] +// CHECK:STDOUT: %FloatLiteralToFloat32.call.loc8: init %f32.c73 = call %FloatLiteralToFloat32.ref.loc8(%float.loc8) [concrete = constants.%float.c47] // CHECK:STDOUT: %FloatLiteralToFloat32.ref.loc10: %FloatLiteralToFloat32.type = name_ref FloatLiteralToFloat32, imports.%Main.FloatLiteralToFloat32 [concrete = constants.%FloatLiteralToFloat32] // CHECK:STDOUT: %float.loc10: Core.FloatLiteral = float_literal_value 10e38 [concrete = constants.%float.cfc] -// CHECK:STDOUT: %FloatLiteralToFloat32.call.loc10: init %f32.a26 = call %FloatLiteralToFloat32.ref.loc10(%float.loc10) [concrete = constants.%float.81c] +// CHECK:STDOUT: %FloatLiteralToFloat32.call.loc10: init %f32.c73 = call %FloatLiteralToFloat32.ref.loc10(%float.loc10) [concrete = constants.%float.021] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -301,97 +301,97 @@ let b: f64 = Float32ToFloat64(1.0e30); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [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: %Float64ToFloat64.type: type = fn_type @Float64ToFloat64 [concrete] // CHECK:STDOUT: %Float64ToFloat64: %Float64ToFloat64.type = struct_value () [concrete] // CHECK:STDOUT: %float.1f7: Core.FloatLiteral = float_literal_value 0e-1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.857: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.b55)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.91e: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.dc1)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.83f: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.857 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.83f) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.096: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.b55, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.119: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.096, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.4d4: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.a29: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.1af: %f64.b55 = float_value 0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.43c: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.91e = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.43c) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6c5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.dc1, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.2d7: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6c5, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.af3: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.819: = 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: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.bef: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %bound_method.c5a: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.642: %f64.b55 = float_value 1 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.757: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %bound_method.143: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.3b9: %f64.dc1 = float_value 1 [concrete] // CHECK:STDOUT: %float.12a: Core.FloatLiteral = float_literal_value 10e307 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.72f: = bound_method %float.12a, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %bound_method.b4f: = bound_method %float.12a, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.3b9: %f64.b55 = float_value 1.0E+308 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.2af: = bound_method %float.12a, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %bound_method.18f: = bound_method %float.12a, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.672: %f64.dc1 = float_value 1.0E+308 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Float64ToFloat64: %Float64ToFloat64.type = import_ref Main//f64, Float64ToFloat64, loaded [concrete = constants.%Float64ToFloat64] -// CHECK:STDOUT: %Core.import_ref.63c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.63c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f3c = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc6_34.1: %f64.b55 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc6 [concrete = constants.%float.1af] -// CHECK:STDOUT: %.loc6_34.2: %f64.b55 = converted @__global_init.%Float64ToFloat64.call.loc6, %.loc6_34.1 [concrete = constants.%float.1af] -// CHECK:STDOUT: %a: %f64.b55 = value_binding a, %.loc6_34.2 +// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc6_34.1: %f64.dc1 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc6 [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc6_34.2: %f64.dc1 = converted @__global_init.%Float64ToFloat64.call.loc6, %.loc6_34.1 [concrete = constants.%float.895] +// CHECK:STDOUT: %a: %f64.dc1 = value_binding a, %.loc6_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f3c = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc7_34.1: %f64.b55 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc7 [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc7_34.2: %f64.b55 = converted @__global_init.%Float64ToFloat64.call.loc7, %.loc7_34.1 [concrete = constants.%float.642] -// CHECK:STDOUT: %b: %f64.b55 = value_binding b, %.loc7_34.2 +// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc7_34.1: %f64.dc1 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc7 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc7_34.2: %f64.dc1 = converted @__global_init.%Float64ToFloat64.call.loc7, %.loc7_34.1 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %b: %f64.dc1 = value_binding b, %.loc7_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.f3c = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.fb7 = value_binding_pattern c [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc8_38.1: %f64.b55 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc8 [concrete = constants.%float.3b9] -// CHECK:STDOUT: %.loc8_38.2: %f64.b55 = converted @__global_init.%Float64ToFloat64.call.loc8, %.loc8_38.1 [concrete = constants.%float.3b9] -// CHECK:STDOUT: %c: %f64.b55 = value_binding c, %.loc8_38.2 +// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc8_38.1: %f64.dc1 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc8 [concrete = constants.%float.672] +// CHECK:STDOUT: %.loc8_38.2: %f64.dc1 = converted @__global_init.%Float64ToFloat64.call.loc8, %.loc8_38.1 [concrete = constants.%float.672] +// CHECK:STDOUT: %c: %f64.dc1 = value_binding c, %.loc8_38.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Float64ToFloat64.ref.loc6: %Float64ToFloat64.type = name_ref Float64ToFloat64, imports.%Main.Float64ToFloat64 [concrete = constants.%Float64ToFloat64] // CHECK:STDOUT: %float.loc6: Core.FloatLiteral = float_literal_value 0e-1 [concrete = constants.%float.1f7] -// CHECK:STDOUT: %impl.elem0.loc6: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] -// CHECK:STDOUT: %bound_method.loc6_31.1: = bound_method %float.loc6, %impl.elem0.loc6 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.4d4] +// CHECK:STDOUT: %impl.elem0.loc6: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] +// CHECK:STDOUT: %bound_method.loc6_31.1: = bound_method %float.loc6, %impl.elem0.loc6 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.af3] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_31.2: = bound_method %float.loc6, %specific_fn.loc6 [concrete = constants.%bound_method.a29] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %f64.b55 = call %bound_method.loc6_31.2(%float.loc6) [concrete = constants.%float.1af] -// CHECK:STDOUT: %.loc6_31.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%float.1af] -// CHECK:STDOUT: %.loc6_31.2: %f64.b55 = converted %float.loc6, %.loc6_31.1 [concrete = constants.%float.1af] -// CHECK:STDOUT: %Float64ToFloat64.call.loc6: init %f64.b55 = call %Float64ToFloat64.ref.loc6(%.loc6_31.2) [concrete = constants.%float.1af] +// CHECK:STDOUT: %bound_method.loc6_31.2: = bound_method %float.loc6, %specific_fn.loc6 [concrete = constants.%bound_method.819] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %f64.dc1 = call %bound_method.loc6_31.2(%float.loc6) [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc6_31.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc6_31.2: %f64.dc1 = converted %float.loc6, %.loc6_31.1 [concrete = constants.%float.895] +// CHECK:STDOUT: %Float64ToFloat64.call.loc6: init %f64.dc1 = call %Float64ToFloat64.ref.loc6(%.loc6_31.2) [concrete = constants.%float.895] // CHECK:STDOUT: %Float64ToFloat64.ref.loc7: %Float64ToFloat64.type = name_ref Float64ToFloat64, imports.%Main.Float64ToFloat64 [concrete = constants.%Float64ToFloat64] // CHECK:STDOUT: %float.loc7: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] -// CHECK:STDOUT: %impl.elem0.loc7: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] -// CHECK:STDOUT: %bound_method.loc7_31.1: = bound_method %float.loc7, %impl.elem0.loc7 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.bef] +// CHECK:STDOUT: %impl.elem0.loc7: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] +// CHECK:STDOUT: %bound_method.loc7_31.1: = bound_method %float.loc7, %impl.elem0.loc7 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.757] // CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_31.2: = bound_method %float.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.c5a] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %f64.b55 = call %bound_method.loc7_31.2(%float.loc7) [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc7_31.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc7_31.2: %f64.b55 = converted %float.loc7, %.loc7_31.1 [concrete = constants.%float.642] -// CHECK:STDOUT: %Float64ToFloat64.call.loc7: init %f64.b55 = call %Float64ToFloat64.ref.loc7(%.loc7_31.2) [concrete = constants.%float.642] +// CHECK:STDOUT: %bound_method.loc7_31.2: = bound_method %float.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.143] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %f64.dc1 = call %bound_method.loc7_31.2(%float.loc7) [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc7_31.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc7_31.2: %f64.dc1 = converted %float.loc7, %.loc7_31.1 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %Float64ToFloat64.call.loc7: init %f64.dc1 = call %Float64ToFloat64.ref.loc7(%.loc7_31.2) [concrete = constants.%float.3b9] // CHECK:STDOUT: %Float64ToFloat64.ref.loc8: %Float64ToFloat64.type = name_ref Float64ToFloat64, imports.%Main.Float64ToFloat64 [concrete = constants.%Float64ToFloat64] // CHECK:STDOUT: %float.loc8: Core.FloatLiteral = float_literal_value 10e307 [concrete = constants.%float.12a] -// CHECK:STDOUT: %impl.elem0.loc8: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] -// CHECK:STDOUT: %bound_method.loc8_31.1: = bound_method %float.loc8, %impl.elem0.loc8 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.72f] +// CHECK:STDOUT: %impl.elem0.loc8: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] +// CHECK:STDOUT: %bound_method.loc8_31.1: = bound_method %float.loc8, %impl.elem0.loc8 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.2af] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_31.2: = bound_method %float.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.b4f] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %f64.b55 = call %bound_method.loc8_31.2(%float.loc8) [concrete = constants.%float.3b9] -// CHECK:STDOUT: %.loc8_31.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%float.3b9] -// CHECK:STDOUT: %.loc8_31.2: %f64.b55 = converted %float.loc8, %.loc8_31.1 [concrete = constants.%float.3b9] -// CHECK:STDOUT: %Float64ToFloat64.call.loc8: init %f64.b55 = call %Float64ToFloat64.ref.loc8(%.loc8_31.2) [concrete = constants.%float.3b9] +// CHECK:STDOUT: %bound_method.loc8_31.2: = bound_method %float.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.18f] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %f64.dc1 = call %bound_method.loc8_31.2(%float.loc8) [concrete = constants.%float.672] +// CHECK:STDOUT: %.loc8_31.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%float.672] +// CHECK:STDOUT: %.loc8_31.2: %f64.dc1 = converted %float.loc8, %.loc8_31.1 [concrete = constants.%float.672] +// CHECK:STDOUT: %Float64ToFloat64.call.loc8: init %f64.dc1 = call %Float64ToFloat64.ref.loc8(%.loc8_31.2) [concrete = constants.%float.672] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -399,97 +399,97 @@ let b: f64 = Float32ToFloat64(1.0e30); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.f3b: type = pattern_type %f32.a26 [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %pattern_type.240: type = pattern_type %f32.c73 [concrete] // CHECK:STDOUT: %Float32ToFloat32.type: type = fn_type @Float32ToFloat32 [concrete] // CHECK:STDOUT: %Float32ToFloat32: %Float32ToFloat32.type = struct_value () [concrete] // CHECK:STDOUT: %float.1f7: Core.FloatLiteral = float_literal_value 0e-1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.d0d: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.a26)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.ed3: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.c73)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.65d: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.d0d = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.65d) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c87: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.a26, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.3a8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c87, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.3a0: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.7ae: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.e89: %f32.a26 = float_value 0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.303: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.ed3 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.303) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2e4: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.c73, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.17b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2e4, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.2b0: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.ff6: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.5cd: %f32.c73 = float_value 0 [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.1ac: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %bound_method.aaa: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.565: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// 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: %float.8d2: Core.FloatLiteral = float_literal_value 10e37 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.f18: = bound_method %float.8d2, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %bound_method.137: = bound_method %float.8d2, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.16a: %f32.a26 = float_value 9.99999968E+37 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.b87: = bound_method %float.8d2, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %bound_method.4fc: = bound_method %float.8d2, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.c47: %f32.c73 = float_value 9.99999968E+37 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Float32ToFloat32: %Float32ToFloat32.type = import_ref Main//f32, Float32ToFloat32, loaded [concrete = constants.%Float32ToFloat32] -// CHECK:STDOUT: %Core.import_ref.63c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.63c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f3b = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc6: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc6_34.1: %f32.a26 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc6 [concrete = constants.%float.e89] -// CHECK:STDOUT: %.loc6_34.2: %f32.a26 = converted @__global_init.%Float32ToFloat32.call.loc6, %.loc6_34.1 [concrete = constants.%float.e89] -// CHECK:STDOUT: %a: %f32.a26 = value_binding a, %.loc6_34.2 +// CHECK:STDOUT: %f32.loc6: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc6_34.1: %f32.c73 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc6 [concrete = constants.%float.5cd] +// CHECK:STDOUT: %.loc6_34.2: %f32.c73 = converted @__global_init.%Float32ToFloat32.call.loc6, %.loc6_34.1 [concrete = constants.%float.5cd] +// CHECK:STDOUT: %a: %f32.c73 = value_binding a, %.loc6_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f3b = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc7: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc7_34.1: %f32.a26 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc7 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc7_34.2: %f32.a26 = converted @__global_init.%Float32ToFloat32.call.loc7, %.loc7_34.1 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %b: %f32.a26 = value_binding b, %.loc7_34.2 +// CHECK:STDOUT: %f32.loc7: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc7_34.1: %f32.c73 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc7 [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc7_34.2: %f32.c73 = converted @__global_init.%Float32ToFloat32.call.loc7, %.loc7_34.1 [concrete = constants.%float.943] +// CHECK:STDOUT: %b: %f32.c73 = value_binding b, %.loc7_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.f3b = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.240 = value_binding_pattern c [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc8: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc8_37.1: %f32.a26 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc8 [concrete = constants.%float.16a] -// CHECK:STDOUT: %.loc8_37.2: %f32.a26 = converted @__global_init.%Float32ToFloat32.call.loc8, %.loc8_37.1 [concrete = constants.%float.16a] -// CHECK:STDOUT: %c: %f32.a26 = value_binding c, %.loc8_37.2 +// CHECK:STDOUT: %f32.loc8: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc8_37.1: %f32.c73 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc8 [concrete = constants.%float.c47] +// CHECK:STDOUT: %.loc8_37.2: %f32.c73 = converted @__global_init.%Float32ToFloat32.call.loc8, %.loc8_37.1 [concrete = constants.%float.c47] +// CHECK:STDOUT: %c: %f32.c73 = value_binding c, %.loc8_37.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Float32ToFloat32.ref.loc6: %Float32ToFloat32.type = name_ref Float32ToFloat32, imports.%Main.Float32ToFloat32 [concrete = constants.%Float32ToFloat32] // CHECK:STDOUT: %float.loc6: Core.FloatLiteral = float_literal_value 0e-1 [concrete = constants.%float.1f7] -// CHECK:STDOUT: %impl.elem0.loc6: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] -// CHECK:STDOUT: %bound_method.loc6_31.1: = bound_method %float.loc6, %impl.elem0.loc6 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.3a0] +// CHECK:STDOUT: %impl.elem0.loc6: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] +// CHECK:STDOUT: %bound_method.loc6_31.1: = bound_method %float.loc6, %impl.elem0.loc6 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.2b0] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_31.2: = bound_method %float.loc6, %specific_fn.loc6 [concrete = constants.%bound_method.7ae] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %f32.a26 = call %bound_method.loc6_31.2(%float.loc6) [concrete = constants.%float.e89] -// CHECK:STDOUT: %.loc6_31.1: %f32.a26 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%float.e89] -// CHECK:STDOUT: %.loc6_31.2: %f32.a26 = converted %float.loc6, %.loc6_31.1 [concrete = constants.%float.e89] -// CHECK:STDOUT: %Float32ToFloat32.call.loc6: init %f32.a26 = call %Float32ToFloat32.ref.loc6(%.loc6_31.2) [concrete = constants.%float.e89] +// CHECK:STDOUT: %bound_method.loc6_31.2: = bound_method %float.loc6, %specific_fn.loc6 [concrete = constants.%bound_method.ff6] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %f32.c73 = call %bound_method.loc6_31.2(%float.loc6) [concrete = constants.%float.5cd] +// CHECK:STDOUT: %.loc6_31.1: %f32.c73 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%float.5cd] +// CHECK:STDOUT: %.loc6_31.2: %f32.c73 = converted %float.loc6, %.loc6_31.1 [concrete = constants.%float.5cd] +// CHECK:STDOUT: %Float32ToFloat32.call.loc6: init %f32.c73 = call %Float32ToFloat32.ref.loc6(%.loc6_31.2) [concrete = constants.%float.5cd] // CHECK:STDOUT: %Float32ToFloat32.ref.loc7: %Float32ToFloat32.type = name_ref Float32ToFloat32, imports.%Main.Float32ToFloat32 [concrete = constants.%Float32ToFloat32] // CHECK:STDOUT: %float.loc7: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] -// CHECK:STDOUT: %impl.elem0.loc7: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] -// CHECK:STDOUT: %bound_method.loc7_31.1: = bound_method %float.loc7, %impl.elem0.loc7 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.1ac] +// CHECK:STDOUT: %impl.elem0.loc7: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] +// CHECK:STDOUT: %bound_method.loc7_31.1: = bound_method %float.loc7, %impl.elem0.loc7 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.565] // CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_31.2: = bound_method %float.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.aaa] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %f32.a26 = call %bound_method.loc7_31.2(%float.loc7) [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc7_31.1: %f32.a26 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc7_31.2: %f32.a26 = converted %float.loc7, %.loc7_31.1 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %Float32ToFloat32.call.loc7: init %f32.a26 = call %Float32ToFloat32.ref.loc7(%.loc7_31.2) [concrete = constants.%float.2ec] +// CHECK:STDOUT: %bound_method.loc7_31.2: = bound_method %float.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.3e4] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %f32.c73 = call %bound_method.loc7_31.2(%float.loc7) [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc7_31.1: %f32.c73 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc7_31.2: %f32.c73 = converted %float.loc7, %.loc7_31.1 [concrete = constants.%float.943] +// CHECK:STDOUT: %Float32ToFloat32.call.loc7: init %f32.c73 = call %Float32ToFloat32.ref.loc7(%.loc7_31.2) [concrete = constants.%float.943] // CHECK:STDOUT: %Float32ToFloat32.ref.loc8: %Float32ToFloat32.type = name_ref Float32ToFloat32, imports.%Main.Float32ToFloat32 [concrete = constants.%Float32ToFloat32] // CHECK:STDOUT: %float.loc8: Core.FloatLiteral = float_literal_value 10e37 [concrete = constants.%float.8d2] -// CHECK:STDOUT: %impl.elem0.loc8: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] -// CHECK:STDOUT: %bound_method.loc8_31.1: = bound_method %float.loc8, %impl.elem0.loc8 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.f18] +// CHECK:STDOUT: %impl.elem0.loc8: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] +// CHECK:STDOUT: %bound_method.loc8_31.1: = bound_method %float.loc8, %impl.elem0.loc8 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.b87] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_31.2: = bound_method %float.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.137] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %f32.a26 = call %bound_method.loc8_31.2(%float.loc8) [concrete = constants.%float.16a] -// CHECK:STDOUT: %.loc8_31.1: %f32.a26 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%float.16a] -// CHECK:STDOUT: %.loc8_31.2: %f32.a26 = converted %float.loc8, %.loc8_31.1 [concrete = constants.%float.16a] -// CHECK:STDOUT: %Float32ToFloat32.call.loc8: init %f32.a26 = call %Float32ToFloat32.ref.loc8(%.loc8_31.2) [concrete = constants.%float.16a] +// CHECK:STDOUT: %bound_method.loc8_31.2: = bound_method %float.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.4fc] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %f32.c73 = call %bound_method.loc8_31.2(%float.loc8) [concrete = constants.%float.c47] +// CHECK:STDOUT: %.loc8_31.1: %f32.c73 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%float.c47] +// CHECK:STDOUT: %.loc8_31.2: %f32.c73 = converted %float.loc8, %.loc8_31.1 [concrete = constants.%float.c47] +// CHECK:STDOUT: %Float32ToFloat32.call.loc8: init %f32.c73 = call %Float32ToFloat32.ref.loc8(%.loc8_31.2) [concrete = constants.%float.c47] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -497,80 +497,80 @@ let b: f64 = Float32ToFloat64(1.0e30); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.f3b: type = pattern_type %f32.a26 [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %pattern_type.240: type = pattern_type %f32.c73 [concrete] // CHECK:STDOUT: %Float64ToFloat32.type: type = fn_type @Float64ToFloat32 [concrete] // CHECK:STDOUT: %Float64ToFloat32: %Float64ToFloat32.type = struct_value () [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.857: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.b55)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.91e: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.dc1)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.83f: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.857 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.83f) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.096: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.b55, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.119: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.096, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.bef: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.c5a: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.642: %f64.b55 = float_value 1 [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.43c: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.91e = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.43c) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6c5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.dc1, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.2d7: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6c5, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.757: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.143: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.3b9: %f64.dc1 = float_value 1 [concrete] +// CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: %float.cfc: Core.FloatLiteral = float_literal_value 10e38 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.af3: = bound_method %float.cfc, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %bound_method.8d2: = bound_method %float.cfc, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.dae: %f64.b55 = float_value 9.9999999999999994E+38 [concrete] -// CHECK:STDOUT: %float.81c: %f32.a26 = float_value +Inf [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.b1e: = bound_method %float.cfc, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %bound_method.ac6: = bound_method %float.cfc, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.7b6: %f64.dc1 = float_value 9.9999999999999994E+38 [concrete] +// CHECK:STDOUT: %float.021: %f32.c73 = float_value +Inf [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Float64ToFloat32: %Float64ToFloat32.type = import_ref Main//f32, Float64ToFloat32, loaded [concrete = constants.%Float64ToFloat32] -// CHECK:STDOUT: %Core.import_ref.63c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.63c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f3b = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc7: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc7_34.1: %f32.a26 = value_of_initializer @__global_init.%Float64ToFloat32.call.loc7 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc7_34.2: %f32.a26 = converted @__global_init.%Float64ToFloat32.call.loc7, %.loc7_34.1 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %a: %f32.a26 = value_binding a, %.loc7_34.2 +// CHECK:STDOUT: %f32.loc7: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc7_34.1: %f32.c73 = value_of_initializer @__global_init.%Float64ToFloat32.call.loc7 [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc7_34.2: %f32.c73 = converted @__global_init.%Float64ToFloat32.call.loc7, %.loc7_34.1 [concrete = constants.%float.943] +// CHECK:STDOUT: %a: %f32.c73 = value_binding a, %.loc7_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f3b = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc9: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc9_37.1: %f32.a26 = value_of_initializer @__global_init.%Float64ToFloat32.call.loc9 [concrete = constants.%float.81c] -// CHECK:STDOUT: %.loc9_37.2: %f32.a26 = converted @__global_init.%Float64ToFloat32.call.loc9, %.loc9_37.1 [concrete = constants.%float.81c] -// CHECK:STDOUT: %b: %f32.a26 = value_binding b, %.loc9_37.2 +// CHECK:STDOUT: %f32.loc9: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc9_37.1: %f32.c73 = value_of_initializer @__global_init.%Float64ToFloat32.call.loc9 [concrete = constants.%float.021] +// CHECK:STDOUT: %.loc9_37.2: %f32.c73 = converted @__global_init.%Float64ToFloat32.call.loc9, %.loc9_37.1 [concrete = constants.%float.021] +// CHECK:STDOUT: %b: %f32.c73 = value_binding b, %.loc9_37.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Float64ToFloat32.ref.loc7: %Float64ToFloat32.type = name_ref Float64ToFloat32, imports.%Main.Float64ToFloat32 [concrete = constants.%Float64ToFloat32] // CHECK:STDOUT: %float.loc7: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] -// CHECK:STDOUT: %impl.elem0.loc7: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] -// CHECK:STDOUT: %bound_method.loc7_31.1: = bound_method %float.loc7, %impl.elem0.loc7 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.bef] +// CHECK:STDOUT: %impl.elem0.loc7: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] +// CHECK:STDOUT: %bound_method.loc7_31.1: = bound_method %float.loc7, %impl.elem0.loc7 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.757] // CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_31.2: = bound_method %float.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.c5a] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %f64.b55 = call %bound_method.loc7_31.2(%float.loc7) [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc7_31.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc7_31.2: %f64.b55 = converted %float.loc7, %.loc7_31.1 [concrete = constants.%float.642] -// CHECK:STDOUT: %Float64ToFloat32.call.loc7: init %f32.a26 = call %Float64ToFloat32.ref.loc7(%.loc7_31.2) [concrete = constants.%float.2ec] +// CHECK:STDOUT: %bound_method.loc7_31.2: = bound_method %float.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.143] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %f64.dc1 = call %bound_method.loc7_31.2(%float.loc7) [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc7_31.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc7_31.2: %f64.dc1 = converted %float.loc7, %.loc7_31.1 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %Float64ToFloat32.call.loc7: init %f32.c73 = call %Float64ToFloat32.ref.loc7(%.loc7_31.2) [concrete = constants.%float.943] // CHECK:STDOUT: %Float64ToFloat32.ref.loc9: %Float64ToFloat32.type = name_ref Float64ToFloat32, imports.%Main.Float64ToFloat32 [concrete = constants.%Float64ToFloat32] // CHECK:STDOUT: %float.loc9: Core.FloatLiteral = float_literal_value 10e38 [concrete = constants.%float.cfc] -// CHECK:STDOUT: %impl.elem0.loc9: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] -// CHECK:STDOUT: %bound_method.loc9_31.1: = bound_method %float.loc9, %impl.elem0.loc9 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.af3] +// CHECK:STDOUT: %impl.elem0.loc9: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] +// CHECK:STDOUT: %bound_method.loc9_31.1: = bound_method %float.loc9, %impl.elem0.loc9 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.b1e] // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_31.2: = bound_method %float.loc9, %specific_fn.loc9 [concrete = constants.%bound_method.8d2] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %f64.b55 = call %bound_method.loc9_31.2(%float.loc9) [concrete = constants.%float.dae] -// CHECK:STDOUT: %.loc9_31.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%float.dae] -// CHECK:STDOUT: %.loc9_31.2: %f64.b55 = converted %float.loc9, %.loc9_31.1 [concrete = constants.%float.dae] -// CHECK:STDOUT: %Float64ToFloat32.call.loc9: init %f32.a26 = call %Float64ToFloat32.ref.loc9(%.loc9_31.2) [concrete = constants.%float.81c] +// CHECK:STDOUT: %bound_method.loc9_31.2: = bound_method %float.loc9, %specific_fn.loc9 [concrete = constants.%bound_method.ac6] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %f64.dc1 = call %bound_method.loc9_31.2(%float.loc9) [concrete = constants.%float.7b6] +// CHECK:STDOUT: %.loc9_31.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%float.7b6] +// CHECK:STDOUT: %.loc9_31.2: %f64.dc1 = converted %float.loc9, %.loc9_31.1 [concrete = constants.%float.7b6] +// CHECK:STDOUT: %Float64ToFloat32.call.loc9: init %f32.c73 = call %Float64ToFloat32.ref.loc9(%.loc9_31.2) [concrete = constants.%float.021] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -578,80 +578,80 @@ let b: f64 = Float32ToFloat64(1.0e30); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [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: %Float32ToFloat64.type: type = fn_type @Float32ToFloat64 [concrete] // CHECK:STDOUT: %Float32ToFloat64: %Float32ToFloat64.type = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.d0d: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.a26)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.ed3: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.c73)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.65d: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.d0d = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.65d) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c87: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.a26, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.3a8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c87, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.1ac: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.aaa: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] -// CHECK:STDOUT: %float.642: %f64.b55 = float_value 1 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.303: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.ed3 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.303) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2e4: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.c73, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.17b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2e4, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.565: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// 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: %float.3b9: %f64.dc1 = float_value 1 [concrete] // CHECK:STDOUT: %float.c02: Core.FloatLiteral = float_literal_value 10e29 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.1c5: = bound_method %float.c02, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %bound_method.dc8: = bound_method %float.c02, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.419: %f32.a26 = float_value 1.00000002E+30 [concrete] -// CHECK:STDOUT: %float.e6a: %f64.b55 = float_value 1.0000000150474662E+30 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.fc1: = bound_method %float.c02, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %bound_method.1c7: = bound_method %float.c02, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.518: %f32.c73 = float_value 1.00000002E+30 [concrete] +// CHECK:STDOUT: %float.84e: %f64.dc1 = float_value 1.0000000150474662E+30 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Float32ToFloat64: %Float32ToFloat64.type = import_ref Main//f32, Float32ToFloat64, loaded [concrete = constants.%Float32ToFloat64] -// CHECK:STDOUT: %Core.import_ref.63c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.63c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f3c = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc7_34.1: %f64.b55 = value_of_initializer @__global_init.%Float32ToFloat64.call.loc7 [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc7_34.2: %f64.b55 = converted @__global_init.%Float32ToFloat64.call.loc7, %.loc7_34.1 [concrete = constants.%float.642] -// CHECK:STDOUT: %a: %f64.b55 = value_binding a, %.loc7_34.2 +// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc7_34.1: %f64.dc1 = value_of_initializer @__global_init.%Float32ToFloat64.call.loc7 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc7_34.2: %f64.dc1 = converted @__global_init.%Float32ToFloat64.call.loc7, %.loc7_34.1 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %a: %f64.dc1 = value_binding a, %.loc7_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f3c = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc8_37.1: %f64.b55 = value_of_initializer @__global_init.%Float32ToFloat64.call.loc8 [concrete = constants.%float.e6a] -// CHECK:STDOUT: %.loc8_37.2: %f64.b55 = converted @__global_init.%Float32ToFloat64.call.loc8, %.loc8_37.1 [concrete = constants.%float.e6a] -// CHECK:STDOUT: %b: %f64.b55 = value_binding b, %.loc8_37.2 +// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc8_37.1: %f64.dc1 = value_of_initializer @__global_init.%Float32ToFloat64.call.loc8 [concrete = constants.%float.84e] +// CHECK:STDOUT: %.loc8_37.2: %f64.dc1 = converted @__global_init.%Float32ToFloat64.call.loc8, %.loc8_37.1 [concrete = constants.%float.84e] +// CHECK:STDOUT: %b: %f64.dc1 = value_binding b, %.loc8_37.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Float32ToFloat64.ref.loc7: %Float32ToFloat64.type = name_ref Float32ToFloat64, imports.%Main.Float32ToFloat64 [concrete = constants.%Float32ToFloat64] // CHECK:STDOUT: %float.loc7: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] -// CHECK:STDOUT: %impl.elem0.loc7: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] -// CHECK:STDOUT: %bound_method.loc7_31.1: = bound_method %float.loc7, %impl.elem0.loc7 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.1ac] +// CHECK:STDOUT: %impl.elem0.loc7: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] +// CHECK:STDOUT: %bound_method.loc7_31.1: = bound_method %float.loc7, %impl.elem0.loc7 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.565] // CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_31.2: = bound_method %float.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.aaa] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %f32.a26 = call %bound_method.loc7_31.2(%float.loc7) [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc7_31.1: %f32.a26 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc7_31.2: %f32.a26 = converted %float.loc7, %.loc7_31.1 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %Float32ToFloat64.call.loc7: init %f64.b55 = call %Float32ToFloat64.ref.loc7(%.loc7_31.2) [concrete = constants.%float.642] +// CHECK:STDOUT: %bound_method.loc7_31.2: = bound_method %float.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.3e4] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %f32.c73 = call %bound_method.loc7_31.2(%float.loc7) [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc7_31.1: %f32.c73 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc7_31.2: %f32.c73 = converted %float.loc7, %.loc7_31.1 [concrete = constants.%float.943] +// CHECK:STDOUT: %Float32ToFloat64.call.loc7: init %f64.dc1 = call %Float32ToFloat64.ref.loc7(%.loc7_31.2) [concrete = constants.%float.3b9] // CHECK:STDOUT: %Float32ToFloat64.ref.loc8: %Float32ToFloat64.type = name_ref Float32ToFloat64, imports.%Main.Float32ToFloat64 [concrete = constants.%Float32ToFloat64] // CHECK:STDOUT: %float.loc8: Core.FloatLiteral = float_literal_value 10e29 [concrete = constants.%float.c02] -// CHECK:STDOUT: %impl.elem0.loc8: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] -// CHECK:STDOUT: %bound_method.loc8_31.1: = bound_method %float.loc8, %impl.elem0.loc8 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.1c5] +// CHECK:STDOUT: %impl.elem0.loc8: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] +// CHECK:STDOUT: %bound_method.loc8_31.1: = bound_method %float.loc8, %impl.elem0.loc8 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.fc1] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_31.2: = bound_method %float.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.dc8] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %f32.a26 = call %bound_method.loc8_31.2(%float.loc8) [concrete = constants.%float.419] -// CHECK:STDOUT: %.loc8_31.1: %f32.a26 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%float.419] -// CHECK:STDOUT: %.loc8_31.2: %f32.a26 = converted %float.loc8, %.loc8_31.1 [concrete = constants.%float.419] -// CHECK:STDOUT: %Float32ToFloat64.call.loc8: init %f64.b55 = call %Float32ToFloat64.ref.loc8(%.loc8_31.2) [concrete = constants.%float.e6a] +// CHECK:STDOUT: %bound_method.loc8_31.2: = bound_method %float.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.1c7] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %f32.c73 = call %bound_method.loc8_31.2(%float.loc8) [concrete = constants.%float.518] +// CHECK:STDOUT: %.loc8_31.1: %f32.c73 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%float.518] +// CHECK:STDOUT: %.loc8_31.2: %f32.c73 = converted %float.loc8, %.loc8_31.1 [concrete = constants.%float.518] +// CHECK:STDOUT: %Float32ToFloat64.call.loc8: init %f64.dc1 = call %Float32ToFloat64.ref.loc8(%.loc8_31.2) [concrete = constants.%float.84e] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/float/convert_checked.carbon b/toolchain/check/testdata/builtins/float/convert_checked.carbon index 772a6bd091d7..eaa710fcdf52 100644 --- a/toolchain/check/testdata/builtins/float/convert_checked.carbon +++ b/toolchain/check/testdata/builtins/float/convert_checked.carbon @@ -197,16 +197,16 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [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: %FloatLiteralToFloat64.type: type = fn_type @FloatLiteralToFloat64 [concrete] // CHECK:STDOUT: %FloatLiteralToFloat64: %FloatLiteralToFloat64.type = struct_value () [concrete] // CHECK:STDOUT: %float.1f7: Core.FloatLiteral = float_literal_value 0e-1 [concrete] -// CHECK:STDOUT: %float.1af: %f64.b55 = float_value 0 [concrete] +// CHECK:STDOUT: %float.895: %f64.dc1 = float_value 0 [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %float.642: %f64.b55 = float_value 1 [concrete] +// CHECK:STDOUT: %float.3b9: %f64.dc1 = float_value 1 [concrete] // CHECK:STDOUT: %float.12a: Core.FloatLiteral = float_literal_value 10e307 [concrete] -// CHECK:STDOUT: %float.3b9: %f64.b55 = float_value 1.0E+308 [concrete] +// CHECK:STDOUT: %float.672: %f64.dc1 = float_value 1.0E+308 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -215,39 +215,39 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f3c = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc6_39.1: %f64.b55 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc6 [concrete = constants.%float.1af] -// CHECK:STDOUT: %.loc6_39.2: %f64.b55 = converted @__global_init.%FloatLiteralToFloat64.call.loc6, %.loc6_39.1 [concrete = constants.%float.1af] -// CHECK:STDOUT: %a: %f64.b55 = value_binding a, %.loc6_39.2 +// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc6_39.1: %f64.dc1 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc6 [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc6_39.2: %f64.dc1 = converted @__global_init.%FloatLiteralToFloat64.call.loc6, %.loc6_39.1 [concrete = constants.%float.895] +// CHECK:STDOUT: %a: %f64.dc1 = value_binding a, %.loc6_39.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f3c = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc7_39.1: %f64.b55 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc7 [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc7_39.2: %f64.b55 = converted @__global_init.%FloatLiteralToFloat64.call.loc7, %.loc7_39.1 [concrete = constants.%float.642] -// CHECK:STDOUT: %b: %f64.b55 = value_binding b, %.loc7_39.2 +// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc7_39.1: %f64.dc1 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc7 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc7_39.2: %f64.dc1 = converted @__global_init.%FloatLiteralToFloat64.call.loc7, %.loc7_39.1 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %b: %f64.dc1 = value_binding b, %.loc7_39.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.f3c = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.fb7 = value_binding_pattern c [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc8_43.1: %f64.b55 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc8 [concrete = constants.%float.3b9] -// CHECK:STDOUT: %.loc8_43.2: %f64.b55 = converted @__global_init.%FloatLiteralToFloat64.call.loc8, %.loc8_43.1 [concrete = constants.%float.3b9] -// CHECK:STDOUT: %c: %f64.b55 = value_binding c, %.loc8_43.2 +// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc8_43.1: %f64.dc1 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call.loc8 [concrete = constants.%float.672] +// CHECK:STDOUT: %.loc8_43.2: %f64.dc1 = converted @__global_init.%FloatLiteralToFloat64.call.loc8, %.loc8_43.1 [concrete = constants.%float.672] +// CHECK:STDOUT: %c: %f64.dc1 = value_binding c, %.loc8_43.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %FloatLiteralToFloat64.ref.loc6: %FloatLiteralToFloat64.type = name_ref FloatLiteralToFloat64, imports.%Main.FloatLiteralToFloat64 [concrete = constants.%FloatLiteralToFloat64] // CHECK:STDOUT: %float.loc6: Core.FloatLiteral = float_literal_value 0e-1 [concrete = constants.%float.1f7] -// CHECK:STDOUT: %FloatLiteralToFloat64.call.loc6: init %f64.b55 = call %FloatLiteralToFloat64.ref.loc6(%float.loc6) [concrete = constants.%float.1af] +// CHECK:STDOUT: %FloatLiteralToFloat64.call.loc6: init %f64.dc1 = call %FloatLiteralToFloat64.ref.loc6(%float.loc6) [concrete = constants.%float.895] // CHECK:STDOUT: %FloatLiteralToFloat64.ref.loc7: %FloatLiteralToFloat64.type = name_ref FloatLiteralToFloat64, imports.%Main.FloatLiteralToFloat64 [concrete = constants.%FloatLiteralToFloat64] // CHECK:STDOUT: %float.loc7: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] -// CHECK:STDOUT: %FloatLiteralToFloat64.call.loc7: init %f64.b55 = call %FloatLiteralToFloat64.ref.loc7(%float.loc7) [concrete = constants.%float.642] +// CHECK:STDOUT: %FloatLiteralToFloat64.call.loc7: init %f64.dc1 = call %FloatLiteralToFloat64.ref.loc7(%float.loc7) [concrete = constants.%float.3b9] // CHECK:STDOUT: %FloatLiteralToFloat64.ref.loc8: %FloatLiteralToFloat64.type = name_ref FloatLiteralToFloat64, imports.%Main.FloatLiteralToFloat64 [concrete = constants.%FloatLiteralToFloat64] // CHECK:STDOUT: %float.loc8: Core.FloatLiteral = float_literal_value 10e307 [concrete = constants.%float.12a] -// CHECK:STDOUT: %FloatLiteralToFloat64.call.loc8: init %f64.b55 = call %FloatLiteralToFloat64.ref.loc8(%float.loc8) [concrete = constants.%float.3b9] +// CHECK:STDOUT: %FloatLiteralToFloat64.call.loc8: init %f64.dc1 = call %FloatLiteralToFloat64.ref.loc8(%float.loc8) [concrete = constants.%float.672] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -255,16 +255,16 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.f3b: type = pattern_type %f32.a26 [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %pattern_type.240: type = pattern_type %f32.c73 [concrete] // CHECK:STDOUT: %FloatLiteralToFloat32.type: type = fn_type @FloatLiteralToFloat32 [concrete] // CHECK:STDOUT: %FloatLiteralToFloat32: %FloatLiteralToFloat32.type = struct_value () [concrete] // CHECK:STDOUT: %float.1f7: Core.FloatLiteral = float_literal_value 0e-1 [concrete] -// CHECK:STDOUT: %float.e89: %f32.a26 = float_value 0 [concrete] +// CHECK:STDOUT: %float.5cd: %f32.c73 = float_value 0 [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] +// CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: %float.8d2: Core.FloatLiteral = float_literal_value 10e37 [concrete] -// CHECK:STDOUT: %float.16a: %f32.a26 = float_value 9.99999968E+37 [concrete] +// CHECK:STDOUT: %float.c47: %f32.c73 = float_value 9.99999968E+37 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -273,39 +273,39 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f3b = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc6: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc6_39.1: %f32.a26 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc6 [concrete = constants.%float.e89] -// CHECK:STDOUT: %.loc6_39.2: %f32.a26 = converted @__global_init.%FloatLiteralToFloat32.call.loc6, %.loc6_39.1 [concrete = constants.%float.e89] -// CHECK:STDOUT: %a: %f32.a26 = value_binding a, %.loc6_39.2 +// CHECK:STDOUT: %f32.loc6: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc6_39.1: %f32.c73 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc6 [concrete = constants.%float.5cd] +// CHECK:STDOUT: %.loc6_39.2: %f32.c73 = converted @__global_init.%FloatLiteralToFloat32.call.loc6, %.loc6_39.1 [concrete = constants.%float.5cd] +// CHECK:STDOUT: %a: %f32.c73 = value_binding a, %.loc6_39.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f3b = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc7: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc7_39.1: %f32.a26 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc7 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc7_39.2: %f32.a26 = converted @__global_init.%FloatLiteralToFloat32.call.loc7, %.loc7_39.1 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %b: %f32.a26 = value_binding b, %.loc7_39.2 +// CHECK:STDOUT: %f32.loc7: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc7_39.1: %f32.c73 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc7 [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc7_39.2: %f32.c73 = converted @__global_init.%FloatLiteralToFloat32.call.loc7, %.loc7_39.1 [concrete = constants.%float.943] +// CHECK:STDOUT: %b: %f32.c73 = value_binding b, %.loc7_39.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.f3b = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.240 = value_binding_pattern c [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc8: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc8_42.1: %f32.a26 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc8 [concrete = constants.%float.16a] -// CHECK:STDOUT: %.loc8_42.2: %f32.a26 = converted @__global_init.%FloatLiteralToFloat32.call.loc8, %.loc8_42.1 [concrete = constants.%float.16a] -// CHECK:STDOUT: %c: %f32.a26 = value_binding c, %.loc8_42.2 +// CHECK:STDOUT: %f32.loc8: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc8_42.1: %f32.c73 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call.loc8 [concrete = constants.%float.c47] +// CHECK:STDOUT: %.loc8_42.2: %f32.c73 = converted @__global_init.%FloatLiteralToFloat32.call.loc8, %.loc8_42.1 [concrete = constants.%float.c47] +// CHECK:STDOUT: %c: %f32.c73 = value_binding c, %.loc8_42.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %FloatLiteralToFloat32.ref.loc6: %FloatLiteralToFloat32.type = name_ref FloatLiteralToFloat32, imports.%Main.FloatLiteralToFloat32 [concrete = constants.%FloatLiteralToFloat32] // CHECK:STDOUT: %float.loc6: Core.FloatLiteral = float_literal_value 0e-1 [concrete = constants.%float.1f7] -// CHECK:STDOUT: %FloatLiteralToFloat32.call.loc6: init %f32.a26 = call %FloatLiteralToFloat32.ref.loc6(%float.loc6) [concrete = constants.%float.e89] +// CHECK:STDOUT: %FloatLiteralToFloat32.call.loc6: init %f32.c73 = call %FloatLiteralToFloat32.ref.loc6(%float.loc6) [concrete = constants.%float.5cd] // CHECK:STDOUT: %FloatLiteralToFloat32.ref.loc7: %FloatLiteralToFloat32.type = name_ref FloatLiteralToFloat32, imports.%Main.FloatLiteralToFloat32 [concrete = constants.%FloatLiteralToFloat32] // CHECK:STDOUT: %float.loc7: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] -// CHECK:STDOUT: %FloatLiteralToFloat32.call.loc7: init %f32.a26 = call %FloatLiteralToFloat32.ref.loc7(%float.loc7) [concrete = constants.%float.2ec] +// CHECK:STDOUT: %FloatLiteralToFloat32.call.loc7: init %f32.c73 = call %FloatLiteralToFloat32.ref.loc7(%float.loc7) [concrete = constants.%float.943] // CHECK:STDOUT: %FloatLiteralToFloat32.ref.loc8: %FloatLiteralToFloat32.type = name_ref FloatLiteralToFloat32, imports.%Main.FloatLiteralToFloat32 [concrete = constants.%FloatLiteralToFloat32] // CHECK:STDOUT: %float.loc8: Core.FloatLiteral = float_literal_value 10e37 [concrete = constants.%float.8d2] -// CHECK:STDOUT: %FloatLiteralToFloat32.call.loc8: init %f32.a26 = call %FloatLiteralToFloat32.ref.loc8(%float.loc8) [concrete = constants.%float.16a] +// CHECK:STDOUT: %FloatLiteralToFloat32.call.loc8: init %f32.c73 = call %FloatLiteralToFloat32.ref.loc8(%float.loc8) [concrete = constants.%float.c47] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -313,97 +313,97 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [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: %Float64ToFloat64.type: type = fn_type @Float64ToFloat64 [concrete] // CHECK:STDOUT: %Float64ToFloat64: %Float64ToFloat64.type = struct_value () [concrete] // CHECK:STDOUT: %float.1f7: Core.FloatLiteral = float_literal_value 0e-1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.857: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.b55)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.91e: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.dc1)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.83f: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.857 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.83f) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.096: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.b55, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.119: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.096, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.4d4: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.a29: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.1af: %f64.b55 = float_value 0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.43c: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.91e = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.43c) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6c5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.dc1, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.2d7: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6c5, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.af3: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.819: = 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: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.bef: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %bound_method.c5a: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.642: %f64.b55 = float_value 1 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.757: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %bound_method.143: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.3b9: %f64.dc1 = float_value 1 [concrete] // CHECK:STDOUT: %float.12a: Core.FloatLiteral = float_literal_value 10e307 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.72f: = bound_method %float.12a, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %bound_method.b4f: = bound_method %float.12a, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.3b9: %f64.b55 = float_value 1.0E+308 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.2af: = bound_method %float.12a, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %bound_method.18f: = bound_method %float.12a, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.672: %f64.dc1 = float_value 1.0E+308 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Float64ToFloat64: %Float64ToFloat64.type = import_ref Main//f64, Float64ToFloat64, loaded [concrete = constants.%Float64ToFloat64] -// CHECK:STDOUT: %Core.import_ref.63c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.63c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f3c = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc6_34.1: %f64.b55 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc6 [concrete = constants.%float.1af] -// CHECK:STDOUT: %.loc6_34.2: %f64.b55 = converted @__global_init.%Float64ToFloat64.call.loc6, %.loc6_34.1 [concrete = constants.%float.1af] -// CHECK:STDOUT: %a: %f64.b55 = value_binding a, %.loc6_34.2 +// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc6_34.1: %f64.dc1 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc6 [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc6_34.2: %f64.dc1 = converted @__global_init.%Float64ToFloat64.call.loc6, %.loc6_34.1 [concrete = constants.%float.895] +// CHECK:STDOUT: %a: %f64.dc1 = value_binding a, %.loc6_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f3c = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc7_34.1: %f64.b55 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc7 [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc7_34.2: %f64.b55 = converted @__global_init.%Float64ToFloat64.call.loc7, %.loc7_34.1 [concrete = constants.%float.642] -// CHECK:STDOUT: %b: %f64.b55 = value_binding b, %.loc7_34.2 +// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc7_34.1: %f64.dc1 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc7 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc7_34.2: %f64.dc1 = converted @__global_init.%Float64ToFloat64.call.loc7, %.loc7_34.1 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %b: %f64.dc1 = value_binding b, %.loc7_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.f3c = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.fb7 = value_binding_pattern c [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc8_38.1: %f64.b55 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc8 [concrete = constants.%float.3b9] -// CHECK:STDOUT: %.loc8_38.2: %f64.b55 = converted @__global_init.%Float64ToFloat64.call.loc8, %.loc8_38.1 [concrete = constants.%float.3b9] -// CHECK:STDOUT: %c: %f64.b55 = value_binding c, %.loc8_38.2 +// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc8_38.1: %f64.dc1 = value_of_initializer @__global_init.%Float64ToFloat64.call.loc8 [concrete = constants.%float.672] +// CHECK:STDOUT: %.loc8_38.2: %f64.dc1 = converted @__global_init.%Float64ToFloat64.call.loc8, %.loc8_38.1 [concrete = constants.%float.672] +// CHECK:STDOUT: %c: %f64.dc1 = value_binding c, %.loc8_38.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Float64ToFloat64.ref.loc6: %Float64ToFloat64.type = name_ref Float64ToFloat64, imports.%Main.Float64ToFloat64 [concrete = constants.%Float64ToFloat64] // CHECK:STDOUT: %float.loc6: Core.FloatLiteral = float_literal_value 0e-1 [concrete = constants.%float.1f7] -// CHECK:STDOUT: %impl.elem0.loc6: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] -// CHECK:STDOUT: %bound_method.loc6_31.1: = bound_method %float.loc6, %impl.elem0.loc6 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.4d4] +// CHECK:STDOUT: %impl.elem0.loc6: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] +// CHECK:STDOUT: %bound_method.loc6_31.1: = bound_method %float.loc6, %impl.elem0.loc6 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.af3] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_31.2: = bound_method %float.loc6, %specific_fn.loc6 [concrete = constants.%bound_method.a29] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %f64.b55 = call %bound_method.loc6_31.2(%float.loc6) [concrete = constants.%float.1af] -// CHECK:STDOUT: %.loc6_31.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%float.1af] -// CHECK:STDOUT: %.loc6_31.2: %f64.b55 = converted %float.loc6, %.loc6_31.1 [concrete = constants.%float.1af] -// CHECK:STDOUT: %Float64ToFloat64.call.loc6: init %f64.b55 = call %Float64ToFloat64.ref.loc6(%.loc6_31.2) [concrete = constants.%float.1af] +// CHECK:STDOUT: %bound_method.loc6_31.2: = bound_method %float.loc6, %specific_fn.loc6 [concrete = constants.%bound_method.819] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %f64.dc1 = call %bound_method.loc6_31.2(%float.loc6) [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc6_31.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc6_31.2: %f64.dc1 = converted %float.loc6, %.loc6_31.1 [concrete = constants.%float.895] +// CHECK:STDOUT: %Float64ToFloat64.call.loc6: init %f64.dc1 = call %Float64ToFloat64.ref.loc6(%.loc6_31.2) [concrete = constants.%float.895] // CHECK:STDOUT: %Float64ToFloat64.ref.loc7: %Float64ToFloat64.type = name_ref Float64ToFloat64, imports.%Main.Float64ToFloat64 [concrete = constants.%Float64ToFloat64] // CHECK:STDOUT: %float.loc7: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] -// CHECK:STDOUT: %impl.elem0.loc7: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] -// CHECK:STDOUT: %bound_method.loc7_31.1: = bound_method %float.loc7, %impl.elem0.loc7 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.bef] +// CHECK:STDOUT: %impl.elem0.loc7: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] +// CHECK:STDOUT: %bound_method.loc7_31.1: = bound_method %float.loc7, %impl.elem0.loc7 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.757] // CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_31.2: = bound_method %float.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.c5a] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %f64.b55 = call %bound_method.loc7_31.2(%float.loc7) [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc7_31.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc7_31.2: %f64.b55 = converted %float.loc7, %.loc7_31.1 [concrete = constants.%float.642] -// CHECK:STDOUT: %Float64ToFloat64.call.loc7: init %f64.b55 = call %Float64ToFloat64.ref.loc7(%.loc7_31.2) [concrete = constants.%float.642] +// CHECK:STDOUT: %bound_method.loc7_31.2: = bound_method %float.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.143] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %f64.dc1 = call %bound_method.loc7_31.2(%float.loc7) [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc7_31.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc7_31.2: %f64.dc1 = converted %float.loc7, %.loc7_31.1 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %Float64ToFloat64.call.loc7: init %f64.dc1 = call %Float64ToFloat64.ref.loc7(%.loc7_31.2) [concrete = constants.%float.3b9] // CHECK:STDOUT: %Float64ToFloat64.ref.loc8: %Float64ToFloat64.type = name_ref Float64ToFloat64, imports.%Main.Float64ToFloat64 [concrete = constants.%Float64ToFloat64] // CHECK:STDOUT: %float.loc8: Core.FloatLiteral = float_literal_value 10e307 [concrete = constants.%float.12a] -// CHECK:STDOUT: %impl.elem0.loc8: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] -// CHECK:STDOUT: %bound_method.loc8_31.1: = bound_method %float.loc8, %impl.elem0.loc8 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.72f] +// CHECK:STDOUT: %impl.elem0.loc8: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] +// CHECK:STDOUT: %bound_method.loc8_31.1: = bound_method %float.loc8, %impl.elem0.loc8 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.2af] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_31.2: = bound_method %float.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.b4f] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %f64.b55 = call %bound_method.loc8_31.2(%float.loc8) [concrete = constants.%float.3b9] -// CHECK:STDOUT: %.loc8_31.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%float.3b9] -// CHECK:STDOUT: %.loc8_31.2: %f64.b55 = converted %float.loc8, %.loc8_31.1 [concrete = constants.%float.3b9] -// CHECK:STDOUT: %Float64ToFloat64.call.loc8: init %f64.b55 = call %Float64ToFloat64.ref.loc8(%.loc8_31.2) [concrete = constants.%float.3b9] +// CHECK:STDOUT: %bound_method.loc8_31.2: = bound_method %float.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.18f] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %f64.dc1 = call %bound_method.loc8_31.2(%float.loc8) [concrete = constants.%float.672] +// CHECK:STDOUT: %.loc8_31.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%float.672] +// CHECK:STDOUT: %.loc8_31.2: %f64.dc1 = converted %float.loc8, %.loc8_31.1 [concrete = constants.%float.672] +// CHECK:STDOUT: %Float64ToFloat64.call.loc8: init %f64.dc1 = call %Float64ToFloat64.ref.loc8(%.loc8_31.2) [concrete = constants.%float.672] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -411,97 +411,97 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.f3b: type = pattern_type %f32.a26 [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %pattern_type.240: type = pattern_type %f32.c73 [concrete] // CHECK:STDOUT: %Float32ToFloat32.type: type = fn_type @Float32ToFloat32 [concrete] // CHECK:STDOUT: %Float32ToFloat32: %Float32ToFloat32.type = struct_value () [concrete] // CHECK:STDOUT: %float.1f7: Core.FloatLiteral = float_literal_value 0e-1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.d0d: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.a26)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.ed3: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.c73)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.65d: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.d0d = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.65d) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c87: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.a26, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.3a8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c87, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.3a0: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.7ae: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.e89: %f32.a26 = float_value 0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.303: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.ed3 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.303) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2e4: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.c73, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.17b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2e4, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.2b0: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.ff6: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.5cd: %f32.c73 = float_value 0 [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.1ac: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %bound_method.aaa: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.565: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// 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: %float.8d2: Core.FloatLiteral = float_literal_value 10e37 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.f18: = bound_method %float.8d2, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %bound_method.137: = bound_method %float.8d2, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.16a: %f32.a26 = float_value 9.99999968E+37 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.b87: = bound_method %float.8d2, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %bound_method.4fc: = bound_method %float.8d2, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.c47: %f32.c73 = float_value 9.99999968E+37 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Float32ToFloat32: %Float32ToFloat32.type = import_ref Main//f32, Float32ToFloat32, loaded [concrete = constants.%Float32ToFloat32] -// CHECK:STDOUT: %Core.import_ref.63c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.63c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f3b = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc6: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc6_34.1: %f32.a26 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc6 [concrete = constants.%float.e89] -// CHECK:STDOUT: %.loc6_34.2: %f32.a26 = converted @__global_init.%Float32ToFloat32.call.loc6, %.loc6_34.1 [concrete = constants.%float.e89] -// CHECK:STDOUT: %a: %f32.a26 = value_binding a, %.loc6_34.2 +// CHECK:STDOUT: %f32.loc6: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc6_34.1: %f32.c73 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc6 [concrete = constants.%float.5cd] +// CHECK:STDOUT: %.loc6_34.2: %f32.c73 = converted @__global_init.%Float32ToFloat32.call.loc6, %.loc6_34.1 [concrete = constants.%float.5cd] +// CHECK:STDOUT: %a: %f32.c73 = value_binding a, %.loc6_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f3b = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc7: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc7_34.1: %f32.a26 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc7 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc7_34.2: %f32.a26 = converted @__global_init.%Float32ToFloat32.call.loc7, %.loc7_34.1 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %b: %f32.a26 = value_binding b, %.loc7_34.2 +// CHECK:STDOUT: %f32.loc7: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc7_34.1: %f32.c73 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc7 [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc7_34.2: %f32.c73 = converted @__global_init.%Float32ToFloat32.call.loc7, %.loc7_34.1 [concrete = constants.%float.943] +// CHECK:STDOUT: %b: %f32.c73 = value_binding b, %.loc7_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.f3b = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.240 = value_binding_pattern c [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc8: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc8_37.1: %f32.a26 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc8 [concrete = constants.%float.16a] -// CHECK:STDOUT: %.loc8_37.2: %f32.a26 = converted @__global_init.%Float32ToFloat32.call.loc8, %.loc8_37.1 [concrete = constants.%float.16a] -// CHECK:STDOUT: %c: %f32.a26 = value_binding c, %.loc8_37.2 +// CHECK:STDOUT: %f32.loc8: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc8_37.1: %f32.c73 = value_of_initializer @__global_init.%Float32ToFloat32.call.loc8 [concrete = constants.%float.c47] +// CHECK:STDOUT: %.loc8_37.2: %f32.c73 = converted @__global_init.%Float32ToFloat32.call.loc8, %.loc8_37.1 [concrete = constants.%float.c47] +// CHECK:STDOUT: %c: %f32.c73 = value_binding c, %.loc8_37.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Float32ToFloat32.ref.loc6: %Float32ToFloat32.type = name_ref Float32ToFloat32, imports.%Main.Float32ToFloat32 [concrete = constants.%Float32ToFloat32] // CHECK:STDOUT: %float.loc6: Core.FloatLiteral = float_literal_value 0e-1 [concrete = constants.%float.1f7] -// CHECK:STDOUT: %impl.elem0.loc6: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] -// CHECK:STDOUT: %bound_method.loc6_31.1: = bound_method %float.loc6, %impl.elem0.loc6 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.3a0] +// CHECK:STDOUT: %impl.elem0.loc6: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] +// CHECK:STDOUT: %bound_method.loc6_31.1: = bound_method %float.loc6, %impl.elem0.loc6 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.2b0] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_31.2: = bound_method %float.loc6, %specific_fn.loc6 [concrete = constants.%bound_method.7ae] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %f32.a26 = call %bound_method.loc6_31.2(%float.loc6) [concrete = constants.%float.e89] -// CHECK:STDOUT: %.loc6_31.1: %f32.a26 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%float.e89] -// CHECK:STDOUT: %.loc6_31.2: %f32.a26 = converted %float.loc6, %.loc6_31.1 [concrete = constants.%float.e89] -// CHECK:STDOUT: %Float32ToFloat32.call.loc6: init %f32.a26 = call %Float32ToFloat32.ref.loc6(%.loc6_31.2) [concrete = constants.%float.e89] +// CHECK:STDOUT: %bound_method.loc6_31.2: = bound_method %float.loc6, %specific_fn.loc6 [concrete = constants.%bound_method.ff6] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %f32.c73 = call %bound_method.loc6_31.2(%float.loc6) [concrete = constants.%float.5cd] +// CHECK:STDOUT: %.loc6_31.1: %f32.c73 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%float.5cd] +// CHECK:STDOUT: %.loc6_31.2: %f32.c73 = converted %float.loc6, %.loc6_31.1 [concrete = constants.%float.5cd] +// CHECK:STDOUT: %Float32ToFloat32.call.loc6: init %f32.c73 = call %Float32ToFloat32.ref.loc6(%.loc6_31.2) [concrete = constants.%float.5cd] // CHECK:STDOUT: %Float32ToFloat32.ref.loc7: %Float32ToFloat32.type = name_ref Float32ToFloat32, imports.%Main.Float32ToFloat32 [concrete = constants.%Float32ToFloat32] // CHECK:STDOUT: %float.loc7: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] -// CHECK:STDOUT: %impl.elem0.loc7: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] -// CHECK:STDOUT: %bound_method.loc7_31.1: = bound_method %float.loc7, %impl.elem0.loc7 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.1ac] +// CHECK:STDOUT: %impl.elem0.loc7: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] +// CHECK:STDOUT: %bound_method.loc7_31.1: = bound_method %float.loc7, %impl.elem0.loc7 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.565] // CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_31.2: = bound_method %float.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.aaa] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %f32.a26 = call %bound_method.loc7_31.2(%float.loc7) [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc7_31.1: %f32.a26 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc7_31.2: %f32.a26 = converted %float.loc7, %.loc7_31.1 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %Float32ToFloat32.call.loc7: init %f32.a26 = call %Float32ToFloat32.ref.loc7(%.loc7_31.2) [concrete = constants.%float.2ec] +// CHECK:STDOUT: %bound_method.loc7_31.2: = bound_method %float.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.3e4] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %f32.c73 = call %bound_method.loc7_31.2(%float.loc7) [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc7_31.1: %f32.c73 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc7_31.2: %f32.c73 = converted %float.loc7, %.loc7_31.1 [concrete = constants.%float.943] +// CHECK:STDOUT: %Float32ToFloat32.call.loc7: init %f32.c73 = call %Float32ToFloat32.ref.loc7(%.loc7_31.2) [concrete = constants.%float.943] // CHECK:STDOUT: %Float32ToFloat32.ref.loc8: %Float32ToFloat32.type = name_ref Float32ToFloat32, imports.%Main.Float32ToFloat32 [concrete = constants.%Float32ToFloat32] // CHECK:STDOUT: %float.loc8: Core.FloatLiteral = float_literal_value 10e37 [concrete = constants.%float.8d2] -// CHECK:STDOUT: %impl.elem0.loc8: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] -// CHECK:STDOUT: %bound_method.loc8_31.1: = bound_method %float.loc8, %impl.elem0.loc8 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.f18] +// CHECK:STDOUT: %impl.elem0.loc8: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] +// CHECK:STDOUT: %bound_method.loc8_31.1: = bound_method %float.loc8, %impl.elem0.loc8 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.b87] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_31.2: = bound_method %float.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.137] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %f32.a26 = call %bound_method.loc8_31.2(%float.loc8) [concrete = constants.%float.16a] -// CHECK:STDOUT: %.loc8_31.1: %f32.a26 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%float.16a] -// CHECK:STDOUT: %.loc8_31.2: %f32.a26 = converted %float.loc8, %.loc8_31.1 [concrete = constants.%float.16a] -// CHECK:STDOUT: %Float32ToFloat32.call.loc8: init %f32.a26 = call %Float32ToFloat32.ref.loc8(%.loc8_31.2) [concrete = constants.%float.16a] +// CHECK:STDOUT: %bound_method.loc8_31.2: = bound_method %float.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.4fc] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %f32.c73 = call %bound_method.loc8_31.2(%float.loc8) [concrete = constants.%float.c47] +// CHECK:STDOUT: %.loc8_31.1: %f32.c73 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%float.c47] +// CHECK:STDOUT: %.loc8_31.2: %f32.c73 = converted %float.loc8, %.loc8_31.1 [concrete = constants.%float.c47] +// CHECK:STDOUT: %Float32ToFloat32.call.loc8: init %f32.c73 = call %Float32ToFloat32.ref.loc8(%.loc8_31.2) [concrete = constants.%float.c47] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -509,58 +509,58 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.f3b: type = pattern_type %f32.a26 [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %pattern_type.240: type = pattern_type %f32.c73 [concrete] // CHECK:STDOUT: %Float64ToFloat32.type: type = fn_type @Float64ToFloat32 [concrete] // CHECK:STDOUT: %Float64ToFloat32: %Float64ToFloat32.type = struct_value () [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.857: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.b55)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.91e: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.dc1)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.83f: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.857 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.83f) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.096: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.b55, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.119: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.096, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.43c: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.91e = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.43c) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6c5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.dc1, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.2d7: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6c5, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.642: %f64.b55 = float_value 1 [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] +// CHECK:STDOUT: %float.3b9: %f64.dc1 = float_value 1 [concrete] +// CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Float64ToFloat32: %Float64ToFloat32.type = import_ref Main//f32, Float64ToFloat32, loaded [concrete = constants.%Float64ToFloat32] -// CHECK:STDOUT: %Core.import_ref.63c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.63c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f3b = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc6_34.1: %f32.a26 = value_of_initializer @__global_init.%Float64ToFloat32.call [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc6_34.2: %f32.a26 = converted @__global_init.%Float64ToFloat32.call, %.loc6_34.1 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %a: %f32.a26 = value_binding a, %.loc6_34.2 +// CHECK:STDOUT: %f32: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc6_34.1: %f32.c73 = value_of_initializer @__global_init.%Float64ToFloat32.call [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc6_34.2: %f32.c73 = converted @__global_init.%Float64ToFloat32.call, %.loc6_34.1 [concrete = constants.%float.943] +// CHECK:STDOUT: %a: %f32.c73 = value_binding a, %.loc6_34.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Float64ToFloat32.ref: %Float64ToFloat32.type = name_ref Float64ToFloat32, imports.%Main.Float64ToFloat32 [concrete = constants.%Float64ToFloat32] // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] -// CHECK:STDOUT: %impl.elem0: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] +// CHECK:STDOUT: %impl.elem0: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] // CHECK:STDOUT: %bound_method.loc6_31.1: = bound_method %float, %impl.elem0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_31.2: = bound_method %float, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.b55 = call %bound_method.loc6_31.2(%float) [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc6_31.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc6_31.2: %f64.b55 = converted %float, %.loc6_31.1 [concrete = constants.%float.642] -// CHECK:STDOUT: %Float64ToFloat32.call: init %f32.a26 = call %Float64ToFloat32.ref(%.loc6_31.2) [concrete = constants.%float.2ec] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.dc1 = call %bound_method.loc6_31.2(%float) [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc6_31.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc6_31.2: %f64.dc1 = converted %float, %.loc6_31.1 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %Float64ToFloat32.call: init %f32.c73 = call %Float64ToFloat32.ref(%.loc6_31.2) [concrete = constants.%float.943] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -568,28 +568,28 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.f3b: type = pattern_type %f32.a26 [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %pattern_type.240: type = pattern_type %f32.c73 [concrete] // CHECK:STDOUT: %Float64ToFloat32.type: type = fn_type @Float64ToFloat32 [concrete] // CHECK:STDOUT: %Float64ToFloat32: %Float64ToFloat32.type = struct_value () [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [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: %float.cfcfd2.1: Core.FloatLiteral = float_literal_value 10e38 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.857: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.b55)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.91e: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.dc1)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.83f: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.857 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.83f) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.096: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.b55, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.119: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.096, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.cfcfd2.1, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.43c: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.91e = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.43c) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6c5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.dc1, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.2d7: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6c5, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.cfcfd2.1, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %float.cfcfd2.1, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.dae: %f64.b55 = float_value 9.9999999999999994E+38 [concrete] +// CHECK:STDOUT: %float.7b6: %f64.dc1 = float_value 9.9999999999999994E+38 [concrete] // CHECK:STDOUT: %FloatLiteralToFloat32.type: type = fn_type @FloatLiteralToFloat32 [concrete] // CHECK:STDOUT: %FloatLiteralToFloat32: %FloatLiteralToFloat32.type = struct_value () [concrete] // CHECK:STDOUT: %float.cfcfd2.2: Core.FloatLiteral = float_literal_value 10e38 [concrete] @@ -602,52 +602,52 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64); // CHECK:STDOUT: %Main.FloatLiteralToFloat32: %FloatLiteralToFloat32.type = import_ref Main//f32, FloatLiteralToFloat32, loaded [concrete = constants.%FloatLiteralToFloat32] // CHECK:STDOUT: %Main.Float64ToFloat32: %Float64ToFloat32.type = import_ref Main//f32, Float64ToFloat32, loaded [concrete = constants.%Float64ToFloat32] // CHECK:STDOUT: %Main.FloatLiteralToFloat64: %FloatLiteralToFloat64.type = import_ref Main//f64, FloatLiteralToFloat64, loaded [concrete = constants.%FloatLiteralToFloat64] -// CHECK:STDOUT: %Core.import_ref.63c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.63c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f3b = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.240 = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc11: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc11_37.1: %f32.a26 = value_of_initializer @__global_init.%Float64ToFloat32.call [concrete = ] -// CHECK:STDOUT: %.loc11_37.2: %f32.a26 = converted @__global_init.%Float64ToFloat32.call, %.loc11_37.1 [concrete = ] -// CHECK:STDOUT: %a: %f32.a26 = value_binding a, %.loc11_37.2 [concrete = ] +// CHECK:STDOUT: %f32.loc11: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc11_37.1: %f32.c73 = value_of_initializer @__global_init.%Float64ToFloat32.call [concrete = ] +// CHECK:STDOUT: %.loc11_37.2: %f32.c73 = converted @__global_init.%Float64ToFloat32.call, %.loc11_37.1 [concrete = ] +// CHECK:STDOUT: %a: %f32.c73 = value_binding a, %.loc11_37.2 [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f3b = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32.loc16: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc16_42.1: %f32.a26 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call [concrete = ] -// CHECK:STDOUT: %.loc16_42.2: %f32.a26 = converted @__global_init.%FloatLiteralToFloat32.call, %.loc16_42.1 [concrete = ] -// CHECK:STDOUT: %b: %f32.a26 = value_binding b, %.loc16_42.2 [concrete = ] +// CHECK:STDOUT: %f32.loc16: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc16_42.1: %f32.c73 = value_of_initializer @__global_init.%FloatLiteralToFloat32.call [concrete = ] +// CHECK:STDOUT: %.loc16_42.2: %f32.c73 = converted @__global_init.%FloatLiteralToFloat32.call, %.loc16_42.1 [concrete = ] +// CHECK:STDOUT: %b: %f32.c73 = value_binding b, %.loc16_42.2 [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.f3c = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.fb7 = value_binding_pattern c [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc21_43.1: %f64.b55 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call [concrete = ] -// CHECK:STDOUT: %.loc21_43.2: %f64.b55 = converted @__global_init.%FloatLiteralToFloat64.call, %.loc21_43.1 [concrete = ] -// CHECK:STDOUT: %c: %f64.b55 = value_binding c, %.loc21_43.2 [concrete = ] +// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc21_43.1: %f64.dc1 = value_of_initializer @__global_init.%FloatLiteralToFloat64.call [concrete = ] +// CHECK:STDOUT: %.loc21_43.2: %f64.dc1 = converted @__global_init.%FloatLiteralToFloat64.call, %.loc21_43.1 [concrete = ] +// CHECK:STDOUT: %c: %f64.dc1 = value_binding c, %.loc21_43.2 [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Float64ToFloat32.ref: %Float64ToFloat32.type = name_ref Float64ToFloat32, imports.%Main.Float64ToFloat32 [concrete = constants.%Float64ToFloat32] // CHECK:STDOUT: %float.loc11: Core.FloatLiteral = float_literal_value 10e38 [concrete = constants.%float.cfcfd2.1] -// CHECK:STDOUT: %impl.elem0: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] +// CHECK:STDOUT: %impl.elem0: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] // CHECK:STDOUT: %bound_method.loc11_31.1: = bound_method %float.loc11, %impl.elem0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_31.2: = bound_method %float.loc11, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.b55 = call %bound_method.loc11_31.2(%float.loc11) [concrete = constants.%float.dae] -// CHECK:STDOUT: %.loc11_31.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.dae] -// CHECK:STDOUT: %.loc11_31.2: %f64.b55 = converted %float.loc11, %.loc11_31.1 [concrete = constants.%float.dae] -// CHECK:STDOUT: %Float64ToFloat32.call: init %f32.a26 = call %Float64ToFloat32.ref(%.loc11_31.2) [concrete = ] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.dc1 = call %bound_method.loc11_31.2(%float.loc11) [concrete = constants.%float.7b6] +// CHECK:STDOUT: %.loc11_31.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.7b6] +// CHECK:STDOUT: %.loc11_31.2: %f64.dc1 = converted %float.loc11, %.loc11_31.1 [concrete = constants.%float.7b6] +// CHECK:STDOUT: %Float64ToFloat32.call: init %f32.c73 = call %Float64ToFloat32.ref(%.loc11_31.2) [concrete = ] // CHECK:STDOUT: %FloatLiteralToFloat32.ref: %FloatLiteralToFloat32.type = name_ref FloatLiteralToFloat32, imports.%Main.FloatLiteralToFloat32 [concrete = constants.%FloatLiteralToFloat32] // CHECK:STDOUT: %float.loc16: Core.FloatLiteral = float_literal_value 10e38 [concrete = constants.%float.cfcfd2.2] -// CHECK:STDOUT: %FloatLiteralToFloat32.call: init %f32.a26 = call %FloatLiteralToFloat32.ref(%float.loc16) [concrete = ] +// CHECK:STDOUT: %FloatLiteralToFloat32.call: init %f32.c73 = call %FloatLiteralToFloat32.ref(%float.loc16) [concrete = ] // CHECK:STDOUT: %FloatLiteralToFloat64.ref: %FloatLiteralToFloat64.type = name_ref FloatLiteralToFloat64, imports.%Main.FloatLiteralToFloat64 [concrete = constants.%FloatLiteralToFloat64] // CHECK:STDOUT: %float.loc21: Core.FloatLiteral = float_literal_value 10e308 [concrete = constants.%float.82f] -// CHECK:STDOUT: %FloatLiteralToFloat64.call: init %f64.b55 = call %FloatLiteralToFloat64.ref(%float.loc21) [concrete = ] +// CHECK:STDOUT: %FloatLiteralToFloat64.call: init %f64.dc1 = call %FloatLiteralToFloat64.ref(%float.loc21) [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -655,80 +655,80 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [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: %Float32ToFloat64.type: type = fn_type @Float32ToFloat64 [concrete] // CHECK:STDOUT: %Float32ToFloat64: %Float32ToFloat64.type = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.d0d: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.a26)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.ed3: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.c73)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.65d: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.d0d = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.65d) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c87: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.a26, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.3a8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c87, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.1ac: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.aaa: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] -// CHECK:STDOUT: %float.642: %f64.b55 = float_value 1 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.303: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.ed3 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.303) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2e4: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.c73, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.17b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2e4, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.565: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// 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: %float.3b9: %f64.dc1 = float_value 1 [concrete] // CHECK:STDOUT: %float.c02: Core.FloatLiteral = float_literal_value 10e29 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.1c5: = bound_method %float.c02, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %bound_method.dc8: = bound_method %float.c02, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.419: %f32.a26 = float_value 1.00000002E+30 [concrete] -// CHECK:STDOUT: %float.e6a: %f64.b55 = float_value 1.0000000150474662E+30 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.fc1: = bound_method %float.c02, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %bound_method.1c7: = bound_method %float.c02, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.518: %f32.c73 = float_value 1.00000002E+30 [concrete] +// CHECK:STDOUT: %float.84e: %f64.dc1 = float_value 1.0000000150474662E+30 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Float32ToFloat64: %Float32ToFloat64.type = import_ref Main//f32, Float32ToFloat64, loaded [concrete = constants.%Float32ToFloat64] -// CHECK:STDOUT: %Core.import_ref.63c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.63c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f3c = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc6_34.1: %f64.b55 = value_of_initializer @__global_init.%Float32ToFloat64.call.loc6 [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc6_34.2: %f64.b55 = converted @__global_init.%Float32ToFloat64.call.loc6, %.loc6_34.1 [concrete = constants.%float.642] -// CHECK:STDOUT: %a: %f64.b55 = value_binding a, %.loc6_34.2 +// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc6_34.1: %f64.dc1 = value_of_initializer @__global_init.%Float32ToFloat64.call.loc6 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc6_34.2: %f64.dc1 = converted @__global_init.%Float32ToFloat64.call.loc6, %.loc6_34.1 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %a: %f64.dc1 = value_binding a, %.loc6_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f3c = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc7_37.1: %f64.b55 = value_of_initializer @__global_init.%Float32ToFloat64.call.loc7 [concrete = constants.%float.e6a] -// CHECK:STDOUT: %.loc7_37.2: %f64.b55 = converted @__global_init.%Float32ToFloat64.call.loc7, %.loc7_37.1 [concrete = constants.%float.e6a] -// CHECK:STDOUT: %b: %f64.b55 = value_binding b, %.loc7_37.2 +// CHECK:STDOUT: %f64.loc7: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc7_37.1: %f64.dc1 = value_of_initializer @__global_init.%Float32ToFloat64.call.loc7 [concrete = constants.%float.84e] +// CHECK:STDOUT: %.loc7_37.2: %f64.dc1 = converted @__global_init.%Float32ToFloat64.call.loc7, %.loc7_37.1 [concrete = constants.%float.84e] +// CHECK:STDOUT: %b: %f64.dc1 = value_binding b, %.loc7_37.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Float32ToFloat64.ref.loc6: %Float32ToFloat64.type = name_ref Float32ToFloat64, imports.%Main.Float32ToFloat64 [concrete = constants.%Float32ToFloat64] // CHECK:STDOUT: %float.loc6: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] -// CHECK:STDOUT: %impl.elem0.loc6: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] -// CHECK:STDOUT: %bound_method.loc6_31.1: = bound_method %float.loc6, %impl.elem0.loc6 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.1ac] +// CHECK:STDOUT: %impl.elem0.loc6: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] +// CHECK:STDOUT: %bound_method.loc6_31.1: = bound_method %float.loc6, %impl.elem0.loc6 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.565] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_31.2: = bound_method %float.loc6, %specific_fn.loc6 [concrete = constants.%bound_method.aaa] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %f32.a26 = call %bound_method.loc6_31.2(%float.loc6) [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc6_31.1: %f32.a26 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc6_31.2: %f32.a26 = converted %float.loc6, %.loc6_31.1 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %Float32ToFloat64.call.loc6: init %f64.b55 = call %Float32ToFloat64.ref.loc6(%.loc6_31.2) [concrete = constants.%float.642] +// CHECK:STDOUT: %bound_method.loc6_31.2: = bound_method %float.loc6, %specific_fn.loc6 [concrete = constants.%bound_method.3e4] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %f32.c73 = call %bound_method.loc6_31.2(%float.loc6) [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc6_31.1: %f32.c73 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc6_31.2: %f32.c73 = converted %float.loc6, %.loc6_31.1 [concrete = constants.%float.943] +// CHECK:STDOUT: %Float32ToFloat64.call.loc6: init %f64.dc1 = call %Float32ToFloat64.ref.loc6(%.loc6_31.2) [concrete = constants.%float.3b9] // CHECK:STDOUT: %Float32ToFloat64.ref.loc7: %Float32ToFloat64.type = name_ref Float32ToFloat64, imports.%Main.Float32ToFloat64 [concrete = constants.%Float32ToFloat64] // CHECK:STDOUT: %float.loc7: Core.FloatLiteral = float_literal_value 10e29 [concrete = constants.%float.c02] -// CHECK:STDOUT: %impl.elem0.loc7: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] -// CHECK:STDOUT: %bound_method.loc7_31.1: = bound_method %float.loc7, %impl.elem0.loc7 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.1c5] +// CHECK:STDOUT: %impl.elem0.loc7: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] +// CHECK:STDOUT: %bound_method.loc7_31.1: = bound_method %float.loc7, %impl.elem0.loc7 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.fc1] // CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_31.2: = bound_method %float.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.dc8] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %f32.a26 = call %bound_method.loc7_31.2(%float.loc7) [concrete = constants.%float.419] -// CHECK:STDOUT: %.loc7_31.1: %f32.a26 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%float.419] -// CHECK:STDOUT: %.loc7_31.2: %f32.a26 = converted %float.loc7, %.loc7_31.1 [concrete = constants.%float.419] -// CHECK:STDOUT: %Float32ToFloat64.call.loc7: init %f64.b55 = call %Float32ToFloat64.ref.loc7(%.loc7_31.2) [concrete = constants.%float.e6a] +// CHECK:STDOUT: %bound_method.loc7_31.2: = bound_method %float.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.1c7] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %f32.c73 = call %bound_method.loc7_31.2(%float.loc7) [concrete = constants.%float.518] +// CHECK:STDOUT: %.loc7_31.1: %f32.c73 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%float.518] +// CHECK:STDOUT: %.loc7_31.2: %f32.c73 = converted %float.loc7, %.loc7_31.1 [concrete = constants.%float.518] +// CHECK:STDOUT: %Float32ToFloat64.call.loc7: init %f64.dc1 = call %Float32ToFloat64.ref.loc7(%.loc7_31.2) [concrete = constants.%float.84e] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -736,61 +736,61 @@ let convert_not_constant: f64 = Float64ToFloat64(not_constant_64); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [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: %float.1f7: Core.FloatLiteral = float_literal_value 0e-1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.857: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.b55)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.91e: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.dc1)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.83f: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.857 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.83f) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.096: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.b55, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.119: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.096, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.43c: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.91e = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.43c) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6c5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.dc1, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.2d7: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6c5, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.1af: %f64.b55 = float_value 0 [concrete] +// CHECK:STDOUT: %float.895: %f64.dc1 = float_value 0 [concrete] // CHECK:STDOUT: %Float64ToFloat64.type: type = fn_type @Float64ToFloat64 [concrete] // CHECK:STDOUT: %Float64ToFloat64: %Float64ToFloat64.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Float64ToFloat64: %Float64ToFloat64.type = import_ref Main//f64, Float64ToFloat64, loaded [concrete = constants.%Float64ToFloat64] -// CHECK:STDOUT: %Core.import_ref.63c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.63c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %not_constant_64.patt: %pattern_type.f3c = value_binding_pattern not_constant_64 [concrete] +// CHECK:STDOUT: %not_constant_64.patt: %pattern_type.fb7 = value_binding_pattern not_constant_64 [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %impl.elem0: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] +// CHECK:STDOUT: %f64.loc6: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %impl.elem0: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] // CHECK:STDOUT: %bound_method.loc6_28.1: = bound_method @__global_init.%float, %impl.elem0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_28.2: = bound_method @__global_init.%float, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.b55 = call %bound_method.loc6_28.2(@__global_init.%float) [concrete = constants.%float.1af] -// CHECK:STDOUT: %.loc6_28.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.1af] -// CHECK:STDOUT: %.loc6_28.2: %f64.b55 = converted @__global_init.%float, %.loc6_28.1 [concrete = constants.%float.1af] -// CHECK:STDOUT: %not_constant_64: %f64.b55 = value_binding not_constant_64, %.loc6_28.2 +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.dc1 = call %bound_method.loc6_28.2(@__global_init.%float) [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc6_28.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc6_28.2: %f64.dc1 = converted @__global_init.%float, %.loc6_28.1 [concrete = constants.%float.895] +// CHECK:STDOUT: %not_constant_64: %f64.dc1 = value_binding not_constant_64, %.loc6_28.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %convert_not_constant.patt: %pattern_type.f3c = value_binding_pattern convert_not_constant [concrete] +// CHECK:STDOUT: %convert_not_constant.patt: %pattern_type.fb7 = value_binding_pattern convert_not_constant [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64.loc15: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc15_65.1: %f64.b55 = value_of_initializer @__global_init.%Float64ToFloat64.call -// CHECK:STDOUT: %.loc15_65.2: %f64.b55 = converted @__global_init.%Float64ToFloat64.call, %.loc15_65.1 -// CHECK:STDOUT: %convert_not_constant: %f64.b55 = value_binding convert_not_constant, %.loc15_65.2 +// CHECK:STDOUT: %f64.loc15: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc15_65.1: %f64.dc1 = value_of_initializer @__global_init.%Float64ToFloat64.call +// CHECK:STDOUT: %.loc15_65.2: %f64.dc1 = converted @__global_init.%Float64ToFloat64.call, %.loc15_65.1 +// CHECK:STDOUT: %convert_not_constant: %f64.dc1 = value_binding convert_not_constant, %.loc15_65.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 0e-1 [concrete = constants.%float.1f7] // CHECK:STDOUT: %Float64ToFloat64.ref: %Float64ToFloat64.type = name_ref Float64ToFloat64, imports.%Main.Float64ToFloat64 [concrete = constants.%Float64ToFloat64] -// CHECK:STDOUT: %not_constant_64.ref: %f64.b55 = name_ref not_constant_64, file.%not_constant_64 -// CHECK:STDOUT: %Float64ToFloat64.call: init %f64.b55 = call %Float64ToFloat64.ref(%not_constant_64.ref) +// CHECK:STDOUT: %not_constant_64.ref: %f64.dc1 = name_ref not_constant_64, file.%not_constant_64 +// CHECK:STDOUT: %Float64ToFloat64.call: init %f64.dc1 = call %Float64ToFloat64.ref(%not_constant_64.ref) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/float/convert_int.carbon b/toolchain/check/testdata/builtins/float/convert_int.carbon index 25595e6ae3dc..68374c85f312 100644 --- a/toolchain/check/testdata/builtins/float/convert_int.carbon +++ b/toolchain/check/testdata/builtins/float/convert_int.carbon @@ -224,46 +224,46 @@ let inf_val: i32 = ConvertF64ToI32(Div(1.0, 0.0)); // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.dc0: type = pattern_type Core.IntLiteral [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %ConvertF64ToI32.type: type = fn_type @ConvertF64ToI32 [concrete] // CHECK:STDOUT: %ConvertF64ToI32: %ConvertF64ToI32.type = struct_value () [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.8ef: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %float.bab60c.1: Core.FloatLiteral = float_literal_value 21474836480e-1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.047: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.8ef)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.91e: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.dc1)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.080: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.dc5: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.080 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.141: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.828: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.565: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.828 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.047 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.141) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.1e2: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.8ef, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.dfd: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.1e2, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.43d: = bound_method %float.bab60c.1, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.565 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.565, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.f0d: = bound_method %float.bab60c.1, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.5f5: %f64.8ef = float_value 2147483648 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.43c: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.91e = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.43c) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6c5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.dc1, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.2d7: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6c5, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.d5f: = bound_method %float.bab60c.1, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.a8b: = bound_method %float.bab60c.1, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.d5c: %f64.dc1 = float_value 2147483648 [concrete] // CHECK:STDOUT: %Negate.type: type = fn_type @Negate [concrete] // CHECK:STDOUT: %Negate: %Negate.type = struct_value () [concrete] // CHECK:STDOUT: %float.449: Core.FloatLiteral = float_literal_value 21474836490e-1 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.0c7: = bound_method %float.449, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.565 [concrete] -// CHECK:STDOUT: %bound_method.855: = bound_method %float.449, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.f40: %f64.8ef = float_value 2147483649 [concrete] -// CHECK:STDOUT: %float.9be: %f64.8ef = float_value -2147483649 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.92c: = bound_method %float.449, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %bound_method.af3: = bound_method %float.449, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.f2a: %f64.dc1 = float_value 2147483649 [concrete] +// CHECK:STDOUT: %float.caa: %f64.dc1 = float_value -2147483649 [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] -// CHECK:STDOUT: %pattern_type.126: type = pattern_type %u32 [concrete] +// CHECK:STDOUT: %pattern_type.668: type = pattern_type %u32 [concrete] // CHECK:STDOUT: %ConvertF64ToU32.type: type = fn_type @ConvertF64ToU32 [concrete] // CHECK:STDOUT: %ConvertF64ToU32: %ConvertF64ToU32.type = struct_value () [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.ffa: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.565 [concrete] -// CHECK:STDOUT: %bound_method.9d1: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.9b4: %f64.8ef = float_value 1 [concrete] -// CHECK:STDOUT: %float.08a: %f64.8ef = float_value -1 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.757: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %bound_method.143: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.3b9: %f64.dc1 = float_value 1 [concrete] +// CHECK:STDOUT: %float.b2f: %f64.dc1 = float_value -1 [concrete] // CHECK:STDOUT: %ConvertFloatLiteralToI32.type: type = fn_type @ConvertFloatLiteralToI32 [concrete] // CHECK:STDOUT: %ConvertFloatLiteralToI32: %ConvertFloatLiteralToI32.type = struct_value () [concrete] // CHECK:STDOUT: %float.bab60c.2: Core.FloatLiteral = float_literal_value 21474836480e-1 [concrete] @@ -293,7 +293,7 @@ let inf_val: i32 = ConvertF64ToI32(Div(1.0, 0.0)); // CHECK:STDOUT: %Main.ConvertFloatLiteralToU32: %ConvertFloatLiteralToU32.type = import_ref Main//float_to_int, ConvertFloatLiteralToU32, loaded [concrete = constants.%ConvertFloatLiteralToU32] // CHECK:STDOUT: %Main.ConvertFloatLiteralToIntLiteral: %ConvertFloatLiteralToIntLiteral.type = import_ref Main//float_to_int, ConvertFloatLiteralToIntLiteral, loaded [concrete = constants.%ConvertFloatLiteralToIntLiteral] // CHECK:STDOUT: %Main.Negate: %Negate.type = import_ref Main//float_to_int, Negate, loaded [concrete = constants.%Negate] -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import, [concrete] { +// CHECK:STDOUT: %Core.048aa3.1: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .Int = %Core.Int // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: .UInt = %Core.UInt @@ -302,44 +302,44 @@ let inf_val: i32 = ConvertF64ToI32(Div(1.0, 0.0)); // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.c01: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.080) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.dc5)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c01), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.UInt: %UInt.type = import_ref Core//prelude/parts/uint, UInt, loaded [concrete = constants.%UInt.generic] // CHECK:STDOUT: %Core.IntLiteral: %IntLiteral.type = import_ref Core//prelude/parts/int_literal, IntLiteral, loaded [concrete = constants.%IntLiteral] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %overflow.patt: %pattern_type.104 = value_binding_pattern overflow [concrete] +// CHECK:STDOUT: %overflow.patt: %pattern_type.6b6 = value_binding_pattern overflow [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc9: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc9_49.1: %i32 = value_of_initializer @__global_init.%ConvertF64ToI32.call.loc9 [concrete = ] // CHECK:STDOUT: %.loc9_49.2: %i32 = converted @__global_init.%ConvertF64ToI32.call.loc9, %.loc9_49.1 [concrete = ] // CHECK:STDOUT: %overflow: %i32 = value_binding overflow, %.loc9_49.2 [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %underflow.patt: %pattern_type.104 = value_binding_pattern underflow [concrete] +// CHECK:STDOUT: %underflow.patt: %pattern_type.6b6 = value_binding_pattern underflow [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15_58.1: %i32 = value_of_initializer @__global_init.%ConvertF64ToI32.call.loc15 [concrete = ] // CHECK:STDOUT: %.loc15_58.2: %i32 = converted @__global_init.%ConvertF64ToI32.call.loc15, %.loc15_58.1 [concrete = ] // CHECK:STDOUT: %underflow: %i32 = value_binding underflow, %.loc15_58.2 [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %unsigned_neg.patt: %pattern_type.126 = value_binding_pattern unsigned_neg [concrete] +// CHECK:STDOUT: %unsigned_neg.patt: %pattern_type.668 = value_binding_pattern unsigned_neg [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %u32.loc21: type = type_literal constants.%u32 [concrete = constants.%u32] // CHECK:STDOUT: %.loc21_52.1: %u32 = value_of_initializer @__global_init.%ConvertF64ToU32.call [concrete = ] // CHECK:STDOUT: %.loc21_52.2: %u32 = converted @__global_init.%ConvertF64ToU32.call, %.loc21_52.1 [concrete = ] // CHECK:STDOUT: %unsigned_neg: %u32 = value_binding unsigned_neg, %.loc21_52.2 [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %literal_overflow.patt: %pattern_type.104 = value_binding_pattern literal_overflow [concrete] +// CHECK:STDOUT: %literal_overflow.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc27: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc27_66.1: %i32 = value_of_initializer @__global_init.%ConvertFloatLiteralToI32.call.loc27 [concrete = ] // CHECK:STDOUT: %.loc27_66.2: %i32 = converted @__global_init.%ConvertFloatLiteralToI32.call.loc27, %.loc27_66.1 [concrete = ] // CHECK:STDOUT: %literal_overflow: %i32 = value_binding literal_overflow, %.loc27_66.2 [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %giant_literal_overflow.patt: %pattern_type.104 = value_binding_pattern giant_literal_overflow [concrete] +// CHECK:STDOUT: %giant_literal_overflow.patt: %pattern_type.6b6 = value_binding_pattern giant_literal_overflow [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc33: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc33_71.1: %i32 = value_of_initializer @__global_init.%ConvertFloatLiteralToI32.call.loc33 [concrete = ] @@ -349,7 +349,7 @@ let inf_val: i32 = ConvertF64ToI32(Div(1.0, 0.0)); // CHECK:STDOUT: %giant_literal_to_int_literal_overflow.patt: %pattern_type.dc0 = value_binding_pattern giant_literal_to_int_literal_overflow [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc40_60.1: type = splice_block %.loc40_60.3 [concrete = Core.IntLiteral] { -// CHECK:STDOUT: %Core.ref.loc40: = name_ref Core, imports.%Core.979 [concrete = imports.%Core.979] +// CHECK:STDOUT: %Core.ref.loc40: = name_ref Core, imports.%Core.048aa3.1 [concrete = imports.%Core.048aa3.1] // CHECK:STDOUT: %IntLiteral.ref.loc40: %IntLiteral.type = name_ref IntLiteral, imports.%Core.IntLiteral [concrete = constants.%IntLiteral] // CHECK:STDOUT: %IntLiteral.call.loc40: init type = call %IntLiteral.ref.loc40() [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc40_60.2: type = value_of_initializer %IntLiteral.call.loc40 [concrete = Core.IntLiteral] @@ -359,7 +359,7 @@ let inf_val: i32 = ConvertF64ToI32(Div(1.0, 0.0)); // CHECK:STDOUT: %.loc40_108.2: Core.IntLiteral = converted @__global_init.%ConvertFloatLiteralToIntLiteral.call.loc40, %.loc40_108.1 [concrete = ] // CHECK:STDOUT: %giant_literal_to_int_literal_overflow: Core.IntLiteral = value_binding giant_literal_to_int_literal_overflow, %.loc40_108.2 [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %giant_exponent_literal_overflow.patt: %pattern_type.104 = value_binding_pattern giant_exponent_literal_overflow [concrete] +// CHECK:STDOUT: %giant_exponent_literal_overflow.patt: %pattern_type.6b6 = value_binding_pattern giant_exponent_literal_overflow [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc47: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc47_107.1: %i32 = value_of_initializer @__global_init.%ConvertFloatLiteralToI32.call.loc47 [concrete = ] @@ -369,7 +369,7 @@ let inf_val: i32 = ConvertF64ToI32(Div(1.0, 0.0)); // CHECK:STDOUT: %giant_exponent_literal_to_int_literal_overflow.patt: %pattern_type.dc0 = value_binding_pattern giant_exponent_literal_to_int_literal_overflow [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc55_69.1: type = splice_block %.loc55_69.3 [concrete = Core.IntLiteral] { -// CHECK:STDOUT: %Core.ref.loc55: = name_ref Core, imports.%Core.979 [concrete = imports.%Core.979] +// CHECK:STDOUT: %Core.ref.loc55: = name_ref Core, imports.%Core.048aa3.1 [concrete = imports.%Core.048aa3.1] // CHECK:STDOUT: %IntLiteral.ref.loc55: %IntLiteral.type = name_ref IntLiteral, imports.%Core.IntLiteral [concrete = constants.%IntLiteral] // CHECK:STDOUT: %IntLiteral.call.loc55: init type = call %IntLiteral.ref.loc55() [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc55_69.2: type = value_of_initializer %IntLiteral.call.loc55 [concrete = Core.IntLiteral] @@ -379,49 +379,49 @@ let inf_val: i32 = ConvertF64ToI32(Div(1.0, 0.0)); // CHECK:STDOUT: %.loc55_143.2: Core.IntLiteral = converted @__global_init.%ConvertFloatLiteralToIntLiteral.call.loc55, %.loc55_143.1 [concrete = ] // CHECK:STDOUT: %giant_exponent_literal_to_int_literal_overflow: Core.IntLiteral = value_binding giant_exponent_literal_to_int_literal_overflow, %.loc55_143.2 [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %literal_overflow_large_mantissa.patt: %pattern_type.104 = value_binding_pattern literal_overflow_large_mantissa [concrete] +// CHECK:STDOUT: %literal_overflow_large_mantissa.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow_large_mantissa [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc62: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc62_82.1: %i32 = value_of_initializer @__global_init.%ConvertFloatLiteralToI32.call.loc62 [concrete = ] // CHECK:STDOUT: %.loc62_82.2: %i32 = converted @__global_init.%ConvertFloatLiteralToI32.call.loc62, %.loc62_82.1 [concrete = ] // CHECK:STDOUT: %literal_overflow_large_mantissa: %i32 = value_binding literal_overflow_large_mantissa, %.loc62_82.2 [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %literal_overflow_med_mantissa.patt: %pattern_type.104 = value_binding_pattern literal_overflow_med_mantissa [concrete] +// CHECK:STDOUT: %literal_overflow_med_mantissa.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow_med_mantissa [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc69: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc69_80.1: %i32 = value_of_initializer @__global_init.%ConvertFloatLiteralToI32.call.loc69 [concrete = ] // CHECK:STDOUT: %.loc69_80.2: %i32 = converted @__global_init.%ConvertFloatLiteralToI32.call.loc69, %.loc69_80.1 [concrete = ] // CHECK:STDOUT: %literal_overflow_med_mantissa: %i32 = value_binding literal_overflow_med_mantissa, %.loc69_80.2 [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %literal_overflow_hex_med_mantissa.patt: %pattern_type.104 = value_binding_pattern literal_overflow_hex_med_mantissa [concrete] +// CHECK:STDOUT: %literal_overflow_hex_med_mantissa.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow_hex_med_mantissa [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc76: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc76_85.1: %i32 = value_of_initializer @__global_init.%ConvertFloatLiteralToI32.call.loc76 [concrete = ] // CHECK:STDOUT: %.loc76_85.2: %i32 = converted @__global_init.%ConvertFloatLiteralToI32.call.loc76, %.loc76_85.1 [concrete = ] // CHECK:STDOUT: %literal_overflow_hex_med_mantissa: %i32 = value_binding literal_overflow_hex_med_mantissa, %.loc76_85.2 [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %literal_overflow_small_mantissa.patt: %pattern_type.104 = value_binding_pattern literal_overflow_small_mantissa [concrete] +// CHECK:STDOUT: %literal_overflow_small_mantissa.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow_small_mantissa [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc83: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc83_75.1: %i32 = value_of_initializer @__global_init.%ConvertFloatLiteralToI32.call.loc83 [concrete = ] // CHECK:STDOUT: %.loc83_75.2: %i32 = converted @__global_init.%ConvertFloatLiteralToI32.call.loc83, %.loc83_75.1 [concrete = ] // CHECK:STDOUT: %literal_overflow_small_mantissa: %i32 = value_binding literal_overflow_small_mantissa, %.loc83_75.2 [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %literal_overflow_bin_small_mantissa.patt: %pattern_type.104 = value_binding_pattern literal_overflow_bin_small_mantissa [concrete] +// CHECK:STDOUT: %literal_overflow_bin_small_mantissa.patt: %pattern_type.6b6 = value_binding_pattern literal_overflow_bin_small_mantissa [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc90: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc90_81.1: %i32 = value_of_initializer @__global_init.%ConvertFloatLiteralToI32.call.loc90 [concrete = ] // CHECK:STDOUT: %.loc90_81.2: %i32 = converted @__global_init.%ConvertFloatLiteralToI32.call.loc90, %.loc90_81.1 [concrete = ] // CHECK:STDOUT: %literal_overflow_bin_small_mantissa: %i32 = value_binding literal_overflow_bin_small_mantissa, %.loc90_81.2 [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %literal_overflow_unsigned_neg.patt: %pattern_type.126 = value_binding_pattern literal_overflow_unsigned_neg [concrete] +// CHECK:STDOUT: %literal_overflow_unsigned_neg.patt: %pattern_type.668 = value_binding_pattern literal_overflow_unsigned_neg [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %u32.loc97: type = type_literal constants.%u32 [concrete = constants.%u32] // CHECK:STDOUT: %.loc97_72.1: %u32 = value_of_initializer @__global_init.%ConvertFloatLiteralToU32.call.loc97 [concrete = ] // CHECK:STDOUT: %.loc97_72.2: %u32 = converted @__global_init.%ConvertFloatLiteralToU32.call.loc97, %.loc97_72.1 [concrete = ] // CHECK:STDOUT: %literal_overflow_unsigned_neg: %u32 = value_binding literal_overflow_unsigned_neg, %.loc97_72.2 [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %literal_overflow_bin_unsigned_neg.patt: %pattern_type.126 = value_binding_pattern literal_overflow_bin_unsigned_neg [concrete] +// CHECK:STDOUT: %literal_overflow_bin_unsigned_neg.patt: %pattern_type.668 = value_binding_pattern literal_overflow_bin_unsigned_neg [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %u32.loc104: type = type_literal constants.%u32 [concrete = constants.%u32] // CHECK:STDOUT: %.loc104_79.1: %u32 = value_of_initializer @__global_init.%ConvertFloatLiteralToU32.call.loc104 [concrete = ] @@ -433,41 +433,41 @@ let inf_val: i32 = ConvertF64ToI32(Div(1.0, 0.0)); // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ConvertF64ToI32.ref.loc9: %ConvertF64ToI32.type = name_ref ConvertF64ToI32, imports.%Main.ConvertF64ToI32 [concrete = constants.%ConvertF64ToI32] // CHECK:STDOUT: %float.loc9: Core.FloatLiteral = float_literal_value 21474836480e-1 [concrete = constants.%float.bab60c.1] -// CHECK:STDOUT: %impl.elem0.loc9: %.dfd = impl_witness_access constants.%ImplicitAs.impl_witness.141, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.565] -// CHECK:STDOUT: %bound_method.loc9_37.1: = bound_method %float.loc9, %impl.elem0.loc9 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.43d] +// CHECK:STDOUT: %impl.elem0.loc9: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] +// CHECK:STDOUT: %bound_method.loc9_37.1: = bound_method %float.loc9, %impl.elem0.loc9 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.d5f] // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_37.2: = bound_method %float.loc9, %specific_fn.loc9 [concrete = constants.%bound_method.f0d] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %f64.8ef = call %bound_method.loc9_37.2(%float.loc9) [concrete = constants.%float.5f5] -// CHECK:STDOUT: %.loc9_37.1: %f64.8ef = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%float.5f5] -// CHECK:STDOUT: %.loc9_37.2: %f64.8ef = converted %float.loc9, %.loc9_37.1 [concrete = constants.%float.5f5] +// CHECK:STDOUT: %bound_method.loc9_37.2: = bound_method %float.loc9, %specific_fn.loc9 [concrete = constants.%bound_method.a8b] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %f64.dc1 = call %bound_method.loc9_37.2(%float.loc9) [concrete = constants.%float.d5c] +// CHECK:STDOUT: %.loc9_37.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%float.d5c] +// CHECK:STDOUT: %.loc9_37.2: %f64.dc1 = converted %float.loc9, %.loc9_37.1 [concrete = constants.%float.d5c] // CHECK:STDOUT: %ConvertF64ToI32.call.loc9: init %i32 = call %ConvertF64ToI32.ref.loc9(%.loc9_37.2) [concrete = ] // CHECK:STDOUT: %ConvertF64ToI32.ref.loc15: %ConvertF64ToI32.type = name_ref ConvertF64ToI32, imports.%Main.ConvertF64ToI32 [concrete = constants.%ConvertF64ToI32] // CHECK:STDOUT: %Negate.ref.loc15: %Negate.type = name_ref Negate, imports.%Main.Negate [concrete = constants.%Negate] // CHECK:STDOUT: %float.loc15: Core.FloatLiteral = float_literal_value 21474836490e-1 [concrete = constants.%float.449] -// CHECK:STDOUT: %impl.elem0.loc15: %.dfd = impl_witness_access constants.%ImplicitAs.impl_witness.141, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.565] -// CHECK:STDOUT: %bound_method.loc15_45.1: = bound_method %float.loc15, %impl.elem0.loc15 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.0c7] +// CHECK:STDOUT: %impl.elem0.loc15: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] +// CHECK:STDOUT: %bound_method.loc15_45.1: = bound_method %float.loc15, %impl.elem0.loc15 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.92c] // CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_45.2: = bound_method %float.loc15, %specific_fn.loc15 [concrete = constants.%bound_method.855] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %f64.8ef = call %bound_method.loc15_45.2(%float.loc15) [concrete = constants.%float.f40] -// CHECK:STDOUT: %.loc15_45.1: %f64.8ef = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%float.f40] -// CHECK:STDOUT: %.loc15_45.2: %f64.8ef = converted %float.loc15, %.loc15_45.1 [concrete = constants.%float.f40] -// CHECK:STDOUT: %Negate.call.loc15: init %f64.8ef = call %Negate.ref.loc15(%.loc15_45.2) [concrete = constants.%float.9be] -// CHECK:STDOUT: %.loc15_57.1: %f64.8ef = value_of_initializer %Negate.call.loc15 [concrete = constants.%float.9be] -// CHECK:STDOUT: %.loc15_57.2: %f64.8ef = converted %Negate.call.loc15, %.loc15_57.1 [concrete = constants.%float.9be] +// CHECK:STDOUT: %bound_method.loc15_45.2: = bound_method %float.loc15, %specific_fn.loc15 [concrete = constants.%bound_method.af3] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %f64.dc1 = call %bound_method.loc15_45.2(%float.loc15) [concrete = constants.%float.f2a] +// CHECK:STDOUT: %.loc15_45.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%float.f2a] +// CHECK:STDOUT: %.loc15_45.2: %f64.dc1 = converted %float.loc15, %.loc15_45.1 [concrete = constants.%float.f2a] +// CHECK:STDOUT: %Negate.call.loc15: init %f64.dc1 = call %Negate.ref.loc15(%.loc15_45.2) [concrete = constants.%float.caa] +// CHECK:STDOUT: %.loc15_57.1: %f64.dc1 = value_of_initializer %Negate.call.loc15 [concrete = constants.%float.caa] +// CHECK:STDOUT: %.loc15_57.2: %f64.dc1 = converted %Negate.call.loc15, %.loc15_57.1 [concrete = constants.%float.caa] // CHECK:STDOUT: %ConvertF64ToI32.call.loc15: init %i32 = call %ConvertF64ToI32.ref.loc15(%.loc15_57.2) [concrete = ] // CHECK:STDOUT: %ConvertF64ToU32.ref: %ConvertF64ToU32.type = name_ref ConvertF64ToU32, imports.%Main.ConvertF64ToU32 [concrete = constants.%ConvertF64ToU32] // CHECK:STDOUT: %Negate.ref.loc21: %Negate.type = name_ref Negate, imports.%Main.Negate [concrete = constants.%Negate] // CHECK:STDOUT: %float.loc21: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] -// CHECK:STDOUT: %impl.elem0.loc21: %.dfd = impl_witness_access constants.%ImplicitAs.impl_witness.141, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.565] -// CHECK:STDOUT: %bound_method.loc21_48.1: = bound_method %float.loc21, %impl.elem0.loc21 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.ffa] +// CHECK:STDOUT: %impl.elem0.loc21: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] +// CHECK:STDOUT: %bound_method.loc21_48.1: = bound_method %float.loc21, %impl.elem0.loc21 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.757] // CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc21_48.2: = bound_method %float.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.9d1] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %f64.8ef = call %bound_method.loc21_48.2(%float.loc21) [concrete = constants.%float.9b4] -// CHECK:STDOUT: %.loc21_48.1: %f64.8ef = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%float.9b4] -// CHECK:STDOUT: %.loc21_48.2: %f64.8ef = converted %float.loc21, %.loc21_48.1 [concrete = constants.%float.9b4] -// CHECK:STDOUT: %Negate.call.loc21: init %f64.8ef = call %Negate.ref.loc21(%.loc21_48.2) [concrete = constants.%float.08a] -// CHECK:STDOUT: %.loc21_51.1: %f64.8ef = value_of_initializer %Negate.call.loc21 [concrete = constants.%float.08a] -// CHECK:STDOUT: %.loc21_51.2: %f64.8ef = converted %Negate.call.loc21, %.loc21_51.1 [concrete = constants.%float.08a] +// CHECK:STDOUT: %bound_method.loc21_48.2: = bound_method %float.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.143] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %f64.dc1 = call %bound_method.loc21_48.2(%float.loc21) [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc21_48.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc21_48.2: %f64.dc1 = converted %float.loc21, %.loc21_48.1 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %Negate.call.loc21: init %f64.dc1 = call %Negate.ref.loc21(%.loc21_48.2) [concrete = constants.%float.b2f] +// CHECK:STDOUT: %.loc21_51.1: %f64.dc1 = value_of_initializer %Negate.call.loc21 [concrete = constants.%float.b2f] +// CHECK:STDOUT: %.loc21_51.2: %f64.dc1 = converted %Negate.call.loc21, %.loc21_51.1 [concrete = constants.%float.b2f] // CHECK:STDOUT: %ConvertF64ToU32.call: init %u32 = call %ConvertF64ToU32.ref(%.loc21_51.2) [concrete = ] // CHECK:STDOUT: %ConvertFloatLiteralToI32.ref.loc27: %ConvertFloatLiteralToI32.type = name_ref ConvertFloatLiteralToI32, imports.%Main.ConvertFloatLiteralToI32 [concrete = constants.%ConvertFloatLiteralToI32] // CHECK:STDOUT: %float.loc27: Core.FloatLiteral = float_literal_value 21474836480e-1 [concrete = constants.%float.bab60c.2] @@ -513,59 +513,59 @@ let inf_val: i32 = ConvertF64ToI32(Div(1.0, 0.0)); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %ConvertF64ToI32.type: type = fn_type @ConvertF64ToI32 [concrete] // CHECK:STDOUT: %ConvertF64ToI32: %ConvertF64ToI32.type = struct_value () [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.8ef: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %Div.type: type = fn_type @Div [concrete] // CHECK:STDOUT: %Div: %Div.type = struct_value () [concrete] // CHECK:STDOUT: %float.1f75e4.1: Core.FloatLiteral = float_literal_value 0e-1 [concrete] // CHECK:STDOUT: %float.1f75e4.2: Core.FloatLiteral = float_literal_value 0e-1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.047: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.8ef)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.91e: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.dc1)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.080: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.dc5: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.080 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.141: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.828: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.565: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.828 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.047 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.141) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.1e2: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.8ef, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.dfd: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.1e2, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.040aeb.1: = bound_method %float.1f75e4.1, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.565 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.565, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.155552.1: = bound_method %float.1f75e4.1, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.ff2: %f64.8ef = float_value 0 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.040aeb.2: = bound_method %float.1f75e4.2, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.565 [concrete] -// CHECK:STDOUT: %bound_method.155552.2: = bound_method %float.1f75e4.2, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.142: %f64.8ef = float_value NaN [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.43c: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.91e = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.43c) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6c5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.dc1, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.2d7: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6c5, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.af318c.1: = bound_method %float.1f75e4.1, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.819b88.1: = bound_method %float.1f75e4.1, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.895: %f64.dc1 = float_value 0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.af318c.2: = bound_method %float.1f75e4.2, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %bound_method.819b88.2: = bound_method %float.1f75e4.2, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.a8a: %f64.dc1 = float_value NaN [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] // CHECK:STDOUT: %float.1f75e4.3: Core.FloatLiteral = float_literal_value 0e-1 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.ffa: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.565 [concrete] -// CHECK:STDOUT: %bound_method.9d1: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.9b4: %f64.8ef = float_value 1 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.040aeb.3: = bound_method %float.1f75e4.3, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.565 [concrete] -// CHECK:STDOUT: %bound_method.155552.3: = bound_method %float.1f75e4.3, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.ab6: %f64.8ef = float_value +Inf [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.757: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %bound_method.143: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.3b9: %f64.dc1 = float_value 1 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.af318c.3: = bound_method %float.1f75e4.3, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %bound_method.819b88.3: = bound_method %float.1f75e4.3, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.7ae: %f64.dc1 = float_value +Inf [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.ConvertF64ToI32: %ConvertF64ToI32.type = import_ref Main//float_to_int, ConvertF64ToI32, loaded [concrete = constants.%ConvertF64ToI32] // CHECK:STDOUT: %Main.Div: %Div.type = import_ref Main//float_to_int, Div, loaded [concrete = constants.%Div] -// CHECK:STDOUT: %Core.import_ref.c01: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.080) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.dc5)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c01), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %nan_val.patt: %pattern_type.104 = value_binding_pattern nan_val [concrete] +// CHECK:STDOUT: %nan_val.patt: %pattern_type.6b6 = value_binding_pattern nan_val [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc9: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc9_49.1: %i32 = value_of_initializer @__global_init.%ConvertF64ToI32.call.loc9 [concrete = ] // CHECK:STDOUT: %.loc9_49.2: %i32 = converted @__global_init.%ConvertF64ToI32.call.loc9, %.loc9_49.1 [concrete = ] // CHECK:STDOUT: %nan_val: %i32 = value_binding nan_val, %.loc9_49.2 [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %inf_val.patt: %pattern_type.104 = value_binding_pattern inf_val [concrete] +// CHECK:STDOUT: %inf_val.patt: %pattern_type.6b6 = value_binding_pattern inf_val [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15_49.1: %i32 = value_of_initializer @__global_init.%ConvertF64ToI32.call.loc15 [concrete = ] @@ -579,45 +579,45 @@ let inf_val: i32 = ConvertF64ToI32(Div(1.0, 0.0)); // CHECK:STDOUT: %Div.ref.loc9: %Div.type = name_ref Div, imports.%Main.Div [concrete = constants.%Div] // CHECK:STDOUT: %float.loc9_40: Core.FloatLiteral = float_literal_value 0e-1 [concrete = constants.%float.1f75e4.1] // CHECK:STDOUT: %float.loc9_45: Core.FloatLiteral = float_literal_value 0e-1 [concrete = constants.%float.1f75e4.2] -// CHECK:STDOUT: %impl.elem0.loc9_40: %.dfd = impl_witness_access constants.%ImplicitAs.impl_witness.141, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.565] -// CHECK:STDOUT: %bound_method.loc9_40.1: = bound_method %float.loc9_40, %impl.elem0.loc9_40 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.040aeb.1] +// CHECK:STDOUT: %impl.elem0.loc9_40: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] +// CHECK:STDOUT: %bound_method.loc9_40.1: = bound_method %float.loc9_40, %impl.elem0.loc9_40 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.af318c.1] // CHECK:STDOUT: %specific_fn.loc9_40: = specific_function %impl.elem0.loc9_40, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_40.2: = bound_method %float.loc9_40, %specific_fn.loc9_40 [concrete = constants.%bound_method.155552.1] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc9_40: init %f64.8ef = call %bound_method.loc9_40.2(%float.loc9_40) [concrete = constants.%float.ff2] -// CHECK:STDOUT: %.loc9_40.1: %f64.8ef = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc9_40 [concrete = constants.%float.ff2] -// CHECK:STDOUT: %.loc9_40.2: %f64.8ef = converted %float.loc9_40, %.loc9_40.1 [concrete = constants.%float.ff2] -// CHECK:STDOUT: %impl.elem0.loc9_45: %.dfd = impl_witness_access constants.%ImplicitAs.impl_witness.141, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.565] -// CHECK:STDOUT: %bound_method.loc9_45.1: = bound_method %float.loc9_45, %impl.elem0.loc9_45 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.040aeb.2] +// CHECK:STDOUT: %bound_method.loc9_40.2: = bound_method %float.loc9_40, %specific_fn.loc9_40 [concrete = constants.%bound_method.819b88.1] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc9_40: init %f64.dc1 = call %bound_method.loc9_40.2(%float.loc9_40) [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc9_40.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc9_40 [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc9_40.2: %f64.dc1 = converted %float.loc9_40, %.loc9_40.1 [concrete = constants.%float.895] +// CHECK:STDOUT: %impl.elem0.loc9_45: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] +// CHECK:STDOUT: %bound_method.loc9_45.1: = bound_method %float.loc9_45, %impl.elem0.loc9_45 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.af318c.2] // CHECK:STDOUT: %specific_fn.loc9_45: = specific_function %impl.elem0.loc9_45, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_45.2: = bound_method %float.loc9_45, %specific_fn.loc9_45 [concrete = constants.%bound_method.155552.2] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc9_45: init %f64.8ef = call %bound_method.loc9_45.2(%float.loc9_45) [concrete = constants.%float.ff2] -// CHECK:STDOUT: %.loc9_45.1: %f64.8ef = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc9_45 [concrete = constants.%float.ff2] -// CHECK:STDOUT: %.loc9_45.2: %f64.8ef = converted %float.loc9_45, %.loc9_45.1 [concrete = constants.%float.ff2] -// CHECK:STDOUT: %Div.call.loc9: init %f64.8ef = call %Div.ref.loc9(%.loc9_40.2, %.loc9_45.2) [concrete = constants.%float.142] -// CHECK:STDOUT: %.loc9_48.1: %f64.8ef = value_of_initializer %Div.call.loc9 [concrete = constants.%float.142] -// CHECK:STDOUT: %.loc9_48.2: %f64.8ef = converted %Div.call.loc9, %.loc9_48.1 [concrete = constants.%float.142] +// CHECK:STDOUT: %bound_method.loc9_45.2: = bound_method %float.loc9_45, %specific_fn.loc9_45 [concrete = constants.%bound_method.819b88.2] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc9_45: init %f64.dc1 = call %bound_method.loc9_45.2(%float.loc9_45) [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc9_45.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc9_45 [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc9_45.2: %f64.dc1 = converted %float.loc9_45, %.loc9_45.1 [concrete = constants.%float.895] +// CHECK:STDOUT: %Div.call.loc9: init %f64.dc1 = call %Div.ref.loc9(%.loc9_40.2, %.loc9_45.2) [concrete = constants.%float.a8a] +// CHECK:STDOUT: %.loc9_48.1: %f64.dc1 = value_of_initializer %Div.call.loc9 [concrete = constants.%float.a8a] +// CHECK:STDOUT: %.loc9_48.2: %f64.dc1 = converted %Div.call.loc9, %.loc9_48.1 [concrete = constants.%float.a8a] // CHECK:STDOUT: %ConvertF64ToI32.call.loc9: init %i32 = call %ConvertF64ToI32.ref.loc9(%.loc9_48.2) [concrete = ] // CHECK:STDOUT: %ConvertF64ToI32.ref.loc15: %ConvertF64ToI32.type = name_ref ConvertF64ToI32, imports.%Main.ConvertF64ToI32 [concrete = constants.%ConvertF64ToI32] // CHECK:STDOUT: %Div.ref.loc15: %Div.type = name_ref Div, imports.%Main.Div [concrete = constants.%Div] // CHECK:STDOUT: %float.loc15_40: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] // CHECK:STDOUT: %float.loc15_45: Core.FloatLiteral = float_literal_value 0e-1 [concrete = constants.%float.1f75e4.3] -// CHECK:STDOUT: %impl.elem0.loc15_40: %.dfd = impl_witness_access constants.%ImplicitAs.impl_witness.141, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.565] -// CHECK:STDOUT: %bound_method.loc15_40.1: = bound_method %float.loc15_40, %impl.elem0.loc15_40 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.ffa] +// CHECK:STDOUT: %impl.elem0.loc15_40: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] +// CHECK:STDOUT: %bound_method.loc15_40.1: = bound_method %float.loc15_40, %impl.elem0.loc15_40 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.757] // CHECK:STDOUT: %specific_fn.loc15_40: = specific_function %impl.elem0.loc15_40, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_40.2: = bound_method %float.loc15_40, %specific_fn.loc15_40 [concrete = constants.%bound_method.9d1] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc15_40: init %f64.8ef = call %bound_method.loc15_40.2(%float.loc15_40) [concrete = constants.%float.9b4] -// CHECK:STDOUT: %.loc15_40.1: %f64.8ef = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc15_40 [concrete = constants.%float.9b4] -// CHECK:STDOUT: %.loc15_40.2: %f64.8ef = converted %float.loc15_40, %.loc15_40.1 [concrete = constants.%float.9b4] -// CHECK:STDOUT: %impl.elem0.loc15_45: %.dfd = impl_witness_access constants.%ImplicitAs.impl_witness.141, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.565] -// CHECK:STDOUT: %bound_method.loc15_45.1: = bound_method %float.loc15_45, %impl.elem0.loc15_45 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.040aeb.3] +// CHECK:STDOUT: %bound_method.loc15_40.2: = bound_method %float.loc15_40, %specific_fn.loc15_40 [concrete = constants.%bound_method.143] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc15_40: init %f64.dc1 = call %bound_method.loc15_40.2(%float.loc15_40) [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc15_40.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc15_40 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc15_40.2: %f64.dc1 = converted %float.loc15_40, %.loc15_40.1 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %impl.elem0.loc15_45: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] +// CHECK:STDOUT: %bound_method.loc15_45.1: = bound_method %float.loc15_45, %impl.elem0.loc15_45 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound.af318c.3] // CHECK:STDOUT: %specific_fn.loc15_45: = specific_function %impl.elem0.loc15_45, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_45.2: = bound_method %float.loc15_45, %specific_fn.loc15_45 [concrete = constants.%bound_method.155552.3] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc15_45: init %f64.8ef = call %bound_method.loc15_45.2(%float.loc15_45) [concrete = constants.%float.ff2] -// CHECK:STDOUT: %.loc15_45.1: %f64.8ef = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc15_45 [concrete = constants.%float.ff2] -// CHECK:STDOUT: %.loc15_45.2: %f64.8ef = converted %float.loc15_45, %.loc15_45.1 [concrete = constants.%float.ff2] -// CHECK:STDOUT: %Div.call.loc15: init %f64.8ef = call %Div.ref.loc15(%.loc15_40.2, %.loc15_45.2) [concrete = constants.%float.ab6] -// CHECK:STDOUT: %.loc15_48.1: %f64.8ef = value_of_initializer %Div.call.loc15 [concrete = constants.%float.ab6] -// CHECK:STDOUT: %.loc15_48.2: %f64.8ef = converted %Div.call.loc15, %.loc15_48.1 [concrete = constants.%float.ab6] +// CHECK:STDOUT: %bound_method.loc15_45.2: = bound_method %float.loc15_45, %specific_fn.loc15_45 [concrete = constants.%bound_method.819b88.3] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc15_45: init %f64.dc1 = call %bound_method.loc15_45.2(%float.loc15_45) [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc15_45.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call.loc15_45 [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc15_45.2: %f64.dc1 = converted %float.loc15_45, %.loc15_45.1 [concrete = constants.%float.895] +// CHECK:STDOUT: %Div.call.loc15: init %f64.dc1 = call %Div.ref.loc15(%.loc15_40.2, %.loc15_45.2) [concrete = constants.%float.7ae] +// CHECK:STDOUT: %.loc15_48.1: %f64.dc1 = value_of_initializer %Div.call.loc15 [concrete = constants.%float.7ae] +// CHECK:STDOUT: %.loc15_48.2: %f64.dc1 = converted %Div.call.loc15, %.loc15_48.1 [concrete = constants.%float.7ae] // CHECK:STDOUT: %ConvertF64ToI32.call.loc15: init %i32 = call %ConvertF64ToI32.ref.loc15(%.loc15_48.2) [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/div.carbon b/toolchain/check/testdata/builtins/float/div.carbon index 539c7dbe5c1e..159f53d2519e 100644 --- a/toolchain/check/testdata/builtins/float/div.carbon +++ b/toolchain/check/testdata/builtins/float/div.carbon @@ -83,17 +83,17 @@ fn DivLiteral(a: Literal(), b: Literal()) -> Literal() = "float.div"; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %Div.type: type = fn_type @Div [concrete] // CHECK:STDOUT: %Div: %Div.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.b55, %b.param: %f64.b55) -> out %return.param: %f64.b55 { +// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.dc1, %b.param: %f64.dc1) -> out %return.param: %f64.dc1 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Div.ref: %Div.type = name_ref Div, file.%Div.decl [concrete = constants.%Div] -// CHECK:STDOUT: %a.ref: %f64.b55 = name_ref a, %a -// CHECK:STDOUT: %b.ref: %f64.b55 = name_ref b, %b -// CHECK:STDOUT: %Div.call: init %f64.b55 = call %Div.ref(%a.ref, %b.ref) +// CHECK:STDOUT: %a.ref: %f64.dc1 = name_ref a, %a +// CHECK:STDOUT: %b.ref: %f64.dc1 = name_ref b, %b +// CHECK:STDOUT: %Div.call: init %f64.dc1 = call %Div.ref(%a.ref, %b.ref) // CHECK:STDOUT: return %Div.call // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/float/eq.carbon b/toolchain/check/testdata/builtins/float/eq.carbon index 766a9b61ff9b..d634ab31c6f8 100644 --- a/toolchain/check/testdata/builtins/float/eq.carbon +++ b/toolchain/check/testdata/builtins/float/eq.carbon @@ -52,16 +52,16 @@ fn Eq(a: Core.FloatLiteral(), b: Core.FloatLiteral()) -> bool = "float.eq"; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %Eq.type: type = fn_type @Eq [concrete] // CHECK:STDOUT: %Eq: %Eq.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.b55, %b.param: %f64.b55) -> out %return.param: bool { +// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.dc1, %b.param: %f64.dc1) -> out %return.param: bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Eq.ref: %Eq.type = name_ref Eq, file.%Eq.decl [concrete = constants.%Eq] -// CHECK:STDOUT: %a.ref: %f64.b55 = name_ref a, %a -// CHECK:STDOUT: %b.ref: %f64.b55 = name_ref b, %b +// CHECK:STDOUT: %a.ref: %f64.dc1 = name_ref a, %a +// CHECK:STDOUT: %b.ref: %f64.dc1 = name_ref b, %b // CHECK:STDOUT: %Eq.call: init bool = call %Eq.ref(%a.ref, %b.ref) // CHECK:STDOUT: return %Eq.call // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/greater.carbon b/toolchain/check/testdata/builtins/float/greater.carbon index fbfedce3867b..d0b48f0d6465 100644 --- a/toolchain/check/testdata/builtins/float/greater.carbon +++ b/toolchain/check/testdata/builtins/float/greater.carbon @@ -36,16 +36,16 @@ fn RuntimeCallIsValid(a: f64, b: f64) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %Greater.type: type = fn_type @Greater [concrete] // CHECK:STDOUT: %Greater: %Greater.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.b55, %b.param: %f64.b55) -> out %return.param: bool { +// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.dc1, %b.param: %f64.dc1) -> out %return.param: bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Greater.ref: %Greater.type = name_ref Greater, file.%Greater.decl [concrete = constants.%Greater] -// CHECK:STDOUT: %a.ref: %f64.b55 = name_ref a, %a -// CHECK:STDOUT: %b.ref: %f64.b55 = name_ref b, %b +// CHECK:STDOUT: %a.ref: %f64.dc1 = name_ref a, %a +// CHECK:STDOUT: %b.ref: %f64.dc1 = name_ref b, %b // CHECK:STDOUT: %Greater.call: init bool = call %Greater.ref(%a.ref, %b.ref) // CHECK:STDOUT: return %Greater.call // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/greater_eq.carbon b/toolchain/check/testdata/builtins/float/greater_eq.carbon index b6f05f1f2a61..630d9ffe3381 100644 --- a/toolchain/check/testdata/builtins/float/greater_eq.carbon +++ b/toolchain/check/testdata/builtins/float/greater_eq.carbon @@ -36,16 +36,16 @@ fn RuntimeCallIsValid(a: f64, b: f64) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %GreaterEq.type: type = fn_type @GreaterEq [concrete] // CHECK:STDOUT: %GreaterEq: %GreaterEq.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.b55, %b.param: %f64.b55) -> out %return.param: bool { +// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.dc1, %b.param: %f64.dc1) -> out %return.param: bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %GreaterEq.ref: %GreaterEq.type = name_ref GreaterEq, file.%GreaterEq.decl [concrete = constants.%GreaterEq] -// CHECK:STDOUT: %a.ref: %f64.b55 = name_ref a, %a -// CHECK:STDOUT: %b.ref: %f64.b55 = name_ref b, %b +// CHECK:STDOUT: %a.ref: %f64.dc1 = name_ref a, %a +// CHECK:STDOUT: %b.ref: %f64.dc1 = name_ref b, %b // CHECK:STDOUT: %GreaterEq.call: init bool = call %GreaterEq.ref(%a.ref, %b.ref) // CHECK:STDOUT: return %GreaterEq.call // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/less.carbon b/toolchain/check/testdata/builtins/float/less.carbon index 550f41b0049c..382ff2db3e40 100644 --- a/toolchain/check/testdata/builtins/float/less.carbon +++ b/toolchain/check/testdata/builtins/float/less.carbon @@ -36,16 +36,16 @@ fn RuntimeCallIsValid(a: f64, b: f64) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %Less.type: type = fn_type @Less [concrete] // CHECK:STDOUT: %Less: %Less.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.b55, %b.param: %f64.b55) -> out %return.param: bool { +// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.dc1, %b.param: %f64.dc1) -> out %return.param: bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Less.ref: %Less.type = name_ref Less, file.%Less.decl [concrete = constants.%Less] -// CHECK:STDOUT: %a.ref: %f64.b55 = name_ref a, %a -// CHECK:STDOUT: %b.ref: %f64.b55 = name_ref b, %b +// CHECK:STDOUT: %a.ref: %f64.dc1 = name_ref a, %a +// CHECK:STDOUT: %b.ref: %f64.dc1 = name_ref b, %b // CHECK:STDOUT: %Less.call: init bool = call %Less.ref(%a.ref, %b.ref) // CHECK:STDOUT: return %Less.call // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/less_eq.carbon b/toolchain/check/testdata/builtins/float/less_eq.carbon index 96b90fd408e1..801a16137ae4 100644 --- a/toolchain/check/testdata/builtins/float/less_eq.carbon +++ b/toolchain/check/testdata/builtins/float/less_eq.carbon @@ -46,16 +46,16 @@ fn LessEq(a: Core.FloatLiteral(), b: Core.FloatLiteral()) -> bool = "float.less_ // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %LessEq.type: type = fn_type @LessEq [concrete] // CHECK:STDOUT: %LessEq: %LessEq.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.b55, %b.param: %f64.b55) -> out %return.param: bool { +// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.dc1, %b.param: %f64.dc1) -> out %return.param: bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %LessEq.ref: %LessEq.type = name_ref LessEq, file.%LessEq.decl [concrete = constants.%LessEq] -// CHECK:STDOUT: %a.ref: %f64.b55 = name_ref a, %a -// CHECK:STDOUT: %b.ref: %f64.b55 = name_ref b, %b +// CHECK:STDOUT: %a.ref: %f64.dc1 = name_ref a, %a +// CHECK:STDOUT: %b.ref: %f64.dc1 = name_ref b, %b // CHECK:STDOUT: %LessEq.call: init bool = call %LessEq.ref(%a.ref, %b.ref) // CHECK:STDOUT: return %LessEq.call // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/mul.carbon b/toolchain/check/testdata/builtins/float/mul.carbon index 04eb8a2b4bc4..eaffd52a57bb 100644 --- a/toolchain/check/testdata/builtins/float/mul.carbon +++ b/toolchain/check/testdata/builtins/float/mul.carbon @@ -81,17 +81,17 @@ fn MulLiteral(a: Literal(), b: Literal()) -> Literal() = "float.mul"; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %Mul.type: type = fn_type @Mul [concrete] // CHECK:STDOUT: %Mul: %Mul.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.b55, %b.param: %f64.b55) -> out %return.param: %f64.b55 { +// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.dc1, %b.param: %f64.dc1) -> out %return.param: %f64.dc1 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Mul.ref: %Mul.type = name_ref Mul, file.%Mul.decl [concrete = constants.%Mul] -// CHECK:STDOUT: %a.ref: %f64.b55 = name_ref a, %a -// CHECK:STDOUT: %b.ref: %f64.b55 = name_ref b, %b -// CHECK:STDOUT: %Mul.call: init %f64.b55 = call %Mul.ref(%a.ref, %b.ref) +// CHECK:STDOUT: %a.ref: %f64.dc1 = name_ref a, %a +// CHECK:STDOUT: %b.ref: %f64.dc1 = name_ref b, %b +// CHECK:STDOUT: %Mul.call: init %f64.dc1 = call %Mul.ref(%a.ref, %b.ref) // CHECK:STDOUT: return %Mul.call // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/float/negate.carbon b/toolchain/check/testdata/builtins/float/negate.carbon index 8bc3506cbf98..60ef206acedc 100644 --- a/toolchain/check/testdata/builtins/float/negate.carbon +++ b/toolchain/check/testdata/builtins/float/negate.carbon @@ -70,16 +70,16 @@ fn RuntimeCallIsValidBadReturnType(a: f64) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %Negate.type: type = fn_type @Negate [concrete] // CHECK:STDOUT: %Negate: %Negate.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.b55, %b.param: %f64.b55) -> out %return.param: %f64.b55 { +// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.dc1, %b.param: %f64.dc1) -> out %return.param: %f64.dc1 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Negate.ref: %Negate.type = name_ref Negate, file.%Negate.decl [concrete = constants.%Negate] -// CHECK:STDOUT: %a.ref: %f64.b55 = name_ref a, %a -// CHECK:STDOUT: %Negate.call: init %f64.b55 = call %Negate.ref(%a.ref) +// CHECK:STDOUT: %a.ref: %f64.dc1 = name_ref a, %a +// CHECK:STDOUT: %Negate.call: init %f64.dc1 = call %Negate.ref(%a.ref) // CHECK:STDOUT: return %Negate.call // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/float/neq.carbon b/toolchain/check/testdata/builtins/float/neq.carbon index a6a21bd8defe..cc2cfea1615d 100644 --- a/toolchain/check/testdata/builtins/float/neq.carbon +++ b/toolchain/check/testdata/builtins/float/neq.carbon @@ -44,16 +44,16 @@ fn WrongResult(a: f64, b: f64) -> f64 = "float.neq"; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %Neq.type: type = fn_type @Neq [concrete] // CHECK:STDOUT: %Neq: %Neq.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.b55, %b.param: %f64.b55) -> out %return.param: bool { +// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.dc1, %b.param: %f64.dc1) -> out %return.param: bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Neq.ref: %Neq.type = name_ref Neq, file.%Neq.decl [concrete = constants.%Neq] -// CHECK:STDOUT: %a.ref: %f64.b55 = name_ref a, %a -// CHECK:STDOUT: %b.ref: %f64.b55 = name_ref b, %b +// CHECK:STDOUT: %a.ref: %f64.dc1 = name_ref a, %a +// CHECK:STDOUT: %b.ref: %f64.dc1 = name_ref b, %b // CHECK:STDOUT: %Neq.call: init bool = call %Neq.ref(%a.ref, %b.ref) // CHECK:STDOUT: return %Neq.call // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/float/sub.carbon b/toolchain/check/testdata/builtins/float/sub.carbon index 6e68b4834fed..67f65d316e6e 100644 --- a/toolchain/check/testdata/builtins/float/sub.carbon +++ b/toolchain/check/testdata/builtins/float/sub.carbon @@ -81,17 +81,17 @@ fn SubLiteral(a: Literal(), b: Literal()) -> Literal() = "float.sub"; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %Sub.type: type = fn_type @Sub [concrete] // CHECK:STDOUT: %Sub: %Sub.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.b55, %b.param: %f64.b55) -> out %return.param: %f64.b55 { +// CHECK:STDOUT: fn @RuntimeCallIsValid(%a.param: %f64.dc1, %b.param: %f64.dc1) -> out %return.param: %f64.dc1 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Sub.ref: %Sub.type = name_ref Sub, file.%Sub.decl [concrete = constants.%Sub] -// CHECK:STDOUT: %a.ref: %f64.b55 = name_ref a, %a -// CHECK:STDOUT: %b.ref: %f64.b55 = name_ref b, %b -// CHECK:STDOUT: %Sub.call: init %f64.b55 = call %Sub.ref(%a.ref, %b.ref) +// CHECK:STDOUT: %a.ref: %f64.dc1 = name_ref a, %a +// CHECK:STDOUT: %b.ref: %f64.dc1 = name_ref b, %b +// CHECK:STDOUT: %Sub.call: init %f64.dc1 = call %Sub.ref(%a.ref, %b.ref) // CHECK:STDOUT: return %Sub.call // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/int/convert_checked.carbon b/toolchain/check/testdata/builtins/int/convert_checked.carbon index 202fb7e0ffdf..e2fde2dbe494 100644 --- a/toolchain/check/testdata/builtins/int/convert_checked.carbon +++ b/toolchain/check/testdata/builtins/int/convert_checked.carbon @@ -267,69 +267,69 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.126: type = pattern_type %u32 [concrete] +// CHECK:STDOUT: %pattern_type.668: type = pattern_type %u32 [concrete] // CHECK:STDOUT: %Int32ToUint32.type: type = fn_type @Int32ToUint32 [concrete] // CHECK:STDOUT: %Int32ToUint32: %Int32ToUint32.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.cf3: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a20: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.cd7: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a20 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e84: = impl_witness imports.%ImplicitAs.impl_witness_table.fca, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.104: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.785: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.104 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.cf3 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e84) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b79: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.56d: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b79, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.785 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.785, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.6b0: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %int_1.ce2: %u32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.92d: %u32 = int_value 1 [concrete] // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] -// CHECK:STDOUT: %pattern_type.e2a: type = pattern_type %i16 [concrete] +// CHECK:STDOUT: %pattern_type.203: type = pattern_type %i16 [concrete] // CHECK:STDOUT: %Int32ToInt16.type: type = fn_type @Int32ToInt16 [concrete] // CHECK:STDOUT: %Int32ToInt16: %Int32ToInt16.type = struct_value () [concrete] -// CHECK:STDOUT: %int_1.f7f: %i16 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.d17: %i16 = int_value 1 [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.c79: type = pattern_type %i64 [concrete] +// CHECK:STDOUT: %pattern_type.f57: type = pattern_type %i64 [concrete] // CHECK:STDOUT: %Int32ToInt64.type: type = fn_type @Int32ToInt64 [concrete] // CHECK:STDOUT: %Int32ToInt64: %Int32ToInt64.type = struct_value () [concrete] -// CHECK:STDOUT: %int_1.9b9: %i64 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.d98: %i64 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Int32ToUint32: %Int32ToUint32.type = import_ref Main//int_ops, Int32ToUint32, loaded [concrete = constants.%Int32ToUint32] // CHECK:STDOUT: %Main.Int32ToInt16: %Int32ToInt16.type = import_ref Main//int_ops, Int32ToInt16, loaded [concrete = constants.%Int32ToInt16] // CHECK:STDOUT: %Main.Int32ToInt64: %Int32ToInt64.type = import_ref Main//int_ops, Int32ToInt64, loaded [concrete = constants.%Int32ToInt64] -// CHECK:STDOUT: %Core.import_ref.4e5: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a20) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.cd7)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.fca = impl_witness_table (%Core.import_ref.4e5), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %SizePreserving.patt: %pattern_type.126 = value_binding_pattern SizePreserving [concrete] +// CHECK:STDOUT: %SizePreserving.patt: %pattern_type.668 = value_binding_pattern SizePreserving [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %u32: type = type_literal constants.%u32 [concrete = constants.%u32] -// CHECK:STDOUT: %.loc6_42.1: %u32 = value_of_initializer @__global_init.%Int32ToUint32.call [concrete = constants.%int_1.ce2] -// CHECK:STDOUT: %.loc6_42.2: %u32 = converted @__global_init.%Int32ToUint32.call, %.loc6_42.1 [concrete = constants.%int_1.ce2] +// CHECK:STDOUT: %.loc6_42.1: %u32 = value_of_initializer @__global_init.%Int32ToUint32.call [concrete = constants.%int_1.92d] +// CHECK:STDOUT: %.loc6_42.2: %u32 = converted @__global_init.%Int32ToUint32.call, %.loc6_42.1 [concrete = constants.%int_1.92d] // CHECK:STDOUT: %SizePreserving: %u32 = value_binding SizePreserving, %.loc6_42.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %Narrowing.patt: %pattern_type.e2a = value_binding_pattern Narrowing [concrete] +// CHECK:STDOUT: %Narrowing.patt: %pattern_type.203 = value_binding_pattern Narrowing [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i16: type = type_literal constants.%i16 [concrete = constants.%i16] -// CHECK:STDOUT: %.loc7_36.1: %i16 = value_of_initializer @__global_init.%Int32ToInt16.call [concrete = constants.%int_1.f7f] -// CHECK:STDOUT: %.loc7_36.2: %i16 = converted @__global_init.%Int32ToInt16.call, %.loc7_36.1 [concrete = constants.%int_1.f7f] +// CHECK:STDOUT: %.loc7_36.1: %i16 = value_of_initializer @__global_init.%Int32ToInt16.call [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc7_36.2: %i16 = converted @__global_init.%Int32ToInt16.call, %.loc7_36.1 [concrete = constants.%int_1.d17] // CHECK:STDOUT: %Narrowing: %i16 = value_binding Narrowing, %.loc7_36.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %Widening.patt: %pattern_type.c79 = value_binding_pattern Widening [concrete] +// CHECK:STDOUT: %Widening.patt: %pattern_type.f57 = value_binding_pattern Widening [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i64: type = type_literal constants.%i64 [concrete = constants.%i64] -// CHECK:STDOUT: %.loc8_35.1: %i64 = value_of_initializer @__global_init.%Int32ToInt64.call [concrete = constants.%int_1.9b9] -// CHECK:STDOUT: %.loc8_35.2: %i64 = converted @__global_init.%Int32ToInt64.call, %.loc8_35.1 [concrete = constants.%int_1.9b9] +// CHECK:STDOUT: %.loc8_35.1: %i64 = value_of_initializer @__global_init.%Int32ToInt64.call [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc8_35.2: %i64 = converted @__global_init.%Int32ToInt64.call, %.loc8_35.1 [concrete = constants.%int_1.d98] // CHECK:STDOUT: %Widening: %i64 = value_binding Widening, %.loc8_35.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -337,34 +337,34 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant); // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Int32ToUint32.ref: %Int32ToUint32.type = name_ref Int32ToUint32, imports.%Main.Int32ToUint32 [concrete = constants.%Int32ToUint32] // CHECK:STDOUT: %int_1.loc6: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc6: %.56d = impl_witness_access constants.%ImplicitAs.impl_witness.e84, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.785] +// CHECK:STDOUT: %impl.elem0.loc6: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc6_41.1: = bound_method %int_1.loc6, %impl.elem0.loc6 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_41.2: = bound_method %int_1.loc6, %specific_fn.loc6 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %i32 = call %bound_method.loc6_41.2(%int_1.loc6) [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc6_41.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc6_41.2: %i32 = converted %int_1.loc6, %.loc6_41.1 [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %Int32ToUint32.call: init %u32 = call %Int32ToUint32.ref(%.loc6_41.2) [concrete = constants.%int_1.ce2] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %i32 = call %bound_method.loc6_41.2(%int_1.loc6) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc6_41.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc6_41.2: %i32 = converted %int_1.loc6, %.loc6_41.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %Int32ToUint32.call: init %u32 = call %Int32ToUint32.ref(%.loc6_41.2) [concrete = constants.%int_1.92d] // CHECK:STDOUT: %Int32ToInt16.ref: %Int32ToInt16.type = name_ref Int32ToInt16, imports.%Main.Int32ToInt16 [concrete = constants.%Int32ToInt16] // CHECK:STDOUT: %int_1.loc7: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc7: %.56d = impl_witness_access constants.%ImplicitAs.impl_witness.e84, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.785] +// CHECK:STDOUT: %impl.elem0.loc7: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc7_35.1: = bound_method %int_1.loc7, %impl.elem0.loc7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_35.2: = bound_method %int_1.loc7, %specific_fn.loc7 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %i32 = call %bound_method.loc7_35.2(%int_1.loc7) [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc7_35.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc7_35.2: %i32 = converted %int_1.loc7, %.loc7_35.1 [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %Int32ToInt16.call: init %i16 = call %Int32ToInt16.ref(%.loc7_35.2) [concrete = constants.%int_1.f7f] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %i32 = call %bound_method.loc7_35.2(%int_1.loc7) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_35.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_35.2: %i32 = converted %int_1.loc7, %.loc7_35.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %Int32ToInt16.call: init %i16 = call %Int32ToInt16.ref(%.loc7_35.2) [concrete = constants.%int_1.d17] // CHECK:STDOUT: %Int32ToInt64.ref: %Int32ToInt64.type = name_ref Int32ToInt64, imports.%Main.Int32ToInt64 [concrete = constants.%Int32ToInt64] // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc8: %.56d = impl_witness_access constants.%ImplicitAs.impl_witness.e84, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.785] +// CHECK:STDOUT: %impl.elem0.loc8: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_34.1: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_34.2: = bound_method %int_1.loc8, %specific_fn.loc8 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %i32 = call %bound_method.loc8_34.2(%int_1.loc8) [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc8_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc8_34.2: %i32 = converted %int_1.loc8, %.loc8_34.1 [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %Int32ToInt64.call: init %i64 = call %Int32ToInt64.ref(%.loc8_34.2) [concrete = constants.%int_1.9b9] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %i32 = call %bound_method.loc8_34.2(%int_1.loc8) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_34.2: %i32 = converted %int_1.loc8, %.loc8_34.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %Int32ToInt64.call: init %i64 = call %Int32ToInt64.ref(%.loc8_34.2) [concrete = constants.%int_1.d98] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/int/convert_float.carbon b/toolchain/check/testdata/builtins/int/convert_float.carbon index 801bbc145ad4..b948fa520fba 100644 --- a/toolchain/check/testdata/builtins/int/convert_float.carbon +++ b/toolchain/check/testdata/builtins/int/convert_float.carbon @@ -71,8 +71,8 @@ let invalid: f64 = ConvertIntLiteralToFloatLiteral(-1) as f64; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [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: %ConvertIntLiteralToF64.type: type = fn_type @ConvertIntLiteralToF64 [concrete] // CHECK:STDOUT: %ConvertIntLiteralToF64: %ConvertIntLiteralToF64.type = struct_value () [concrete] // CHECK:STDOUT: %int_1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000: Core.IntLiteral = int_value 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 [concrete] @@ -84,19 +84,19 @@ let invalid: f64 = ConvertIntLiteralToFloatLiteral(-1) as f64; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %overflow.patt: %pattern_type.f3c = value_binding_pattern overflow [concrete] +// CHECK:STDOUT: %overflow.patt: %pattern_type.fb7 = value_binding_pattern overflow [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc9_354.1: %f64.b55 = value_of_initializer @__global_init.%ConvertIntLiteralToF64.call [concrete = ] -// CHECK:STDOUT: %.loc9_354.2: %f64.b55 = converted @__global_init.%ConvertIntLiteralToF64.call, %.loc9_354.1 [concrete = ] -// CHECK:STDOUT: %overflow: %f64.b55 = value_binding overflow, %.loc9_354.2 [concrete = ] +// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc9_354.1: %f64.dc1 = value_of_initializer @__global_init.%ConvertIntLiteralToF64.call [concrete = ] +// CHECK:STDOUT: %.loc9_354.2: %f64.dc1 = converted @__global_init.%ConvertIntLiteralToF64.call, %.loc9_354.1 [concrete = ] +// CHECK:STDOUT: %overflow: %f64.dc1 = value_binding overflow, %.loc9_354.2 [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ConvertIntLiteralToF64.ref: %ConvertIntLiteralToF64.type = name_ref ConvertIntLiteralToF64, imports.%Main.ConvertIntLiteralToF64 [concrete = constants.%ConvertIntLiteralToF64] // CHECK:STDOUT: %int_1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000: Core.IntLiteral = int_value 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 [concrete = constants.%int_1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] -// CHECK:STDOUT: %ConvertIntLiteralToF64.call: init %f64.b55 = call %ConvertIntLiteralToF64.ref(%int_1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) [concrete = ] +// CHECK:STDOUT: %ConvertIntLiteralToF64.call: init %f64.dc1 = call %ConvertIntLiteralToF64.ref(%int_1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -104,70 +104,70 @@ let invalid: f64 = ConvertIntLiteralToFloatLiteral(-1) as f64; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [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: %ConvertIntLiteralToFloatLiteral.type: type = fn_type @ConvertIntLiteralToFloatLiteral [concrete] // CHECK:STDOUT: %ConvertIntLiteralToFloatLiteral: %ConvertIntLiteralToFloatLiteral.type = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] // CHECK:STDOUT: %Negate.impl_witness: = impl_witness imports.%Negate.impl_witness_table [concrete] // CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, (%Negate.impl_witness) [concrete] -// CHECK:STDOUT: %Negate.WithSelf.Op.type.309: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] -// CHECK:STDOUT: %.f38: type = fn_type_with_self_type %Negate.WithSelf.Op.type.309, %Negate.facet [concrete] +// CHECK:STDOUT: %Negate.WithSelf.Op.type.802: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] +// CHECK:STDOUT: %.765: type = fn_type_with_self_type %Negate.WithSelf.Op.type.802, %Negate.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.type: type = fn_type @Core.IntLiteral.as.Negate.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op: %Core.IntLiteral.as.Negate.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.bound: = bound_method %int_1, %Core.IntLiteral.as.Negate.impl.Op [concrete] // CHECK:STDOUT: %int_-1: Core.IntLiteral = int_value -1 [concrete] -// CHECK:STDOUT: %As.type.e53: type = facet_type <@As, @As(%f64.b55)> [concrete] +// CHECK:STDOUT: %As.type.0e0: type = facet_type <@As, @As(%f64.dc1)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.bad: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.df8: %Core.FloatLiteral.as.As.impl.Convert.type.bad = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.cf2: = impl_witness imports.%As.impl_witness_table, @Core.FloatLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.8de: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bcc: %Core.FloatLiteral.as.As.impl.Convert.type.8de = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.e53 = facet_value Core.FloatLiteral, (%As.impl_witness.cf2) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.d43: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%f64.b55, %As.facet) [concrete] -// CHECK:STDOUT: %.f88: type = fn_type_with_self_type %As.WithSelf.Convert.type.d43, %As.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.As.impl.Convert.bcc, @Core.FloatLiteral.as.As.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.69a: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.829: %Core.FloatLiteral.as.As.impl.Convert.type.69a = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.115: = impl_witness imports.%As.impl_witness_table, @Core.FloatLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.0cf: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.20d: %Core.FloatLiteral.as.As.impl.Convert.type.0cf = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.0e0 = facet_value Core.FloatLiteral, (%As.impl_witness.115) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.4d9: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%f64.dc1, %As.facet) [concrete] +// CHECK:STDOUT: %.e52: type = fn_type_with_self_type %As.WithSelf.Convert.type.4d9, %As.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.As.impl.Convert.20d, @Core.FloatLiteral.as.As.impl.Convert(%int_64) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.ConvertIntLiteralToFloatLiteral: %ConvertIntLiteralToFloatLiteral.type = import_ref Main//int_to_float, ConvertIntLiteralToFloatLiteral, loaded [concrete = constants.%ConvertIntLiteralToFloatLiteral] // CHECK:STDOUT: %Core.import_ref.abd = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63: %Core.IntLiteral.as.Negate.impl.Op.type = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] -// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.f63), @Core.IntLiteral.as.Negate.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.81f: @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert.type (%Core.FloatLiteral.as.As.impl.Convert.type.bad) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert (constants.%Core.FloatLiteral.as.As.impl.Convert.df8)] -// CHECK:STDOUT: %As.impl_witness_table = impl_witness_table (%Core.import_ref.81f), @Core.FloatLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Core.IntLiteral.as.Negate.impl.Op.type = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] +// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.9c3), @Core.IntLiteral.as.Negate.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c06: @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert.type (%Core.FloatLiteral.as.As.impl.Convert.type.69a) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert (constants.%Core.FloatLiteral.as.As.impl.Convert.829)] +// CHECK:STDOUT: %As.impl_witness_table = impl_witness_table (%Core.import_ref.c06), @Core.FloatLiteral.as.As.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %invalid.patt: %pattern_type.f3c = value_binding_pattern invalid [concrete] +// CHECK:STDOUT: %invalid.patt: %pattern_type.fb7 = value_binding_pattern invalid [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f64: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %invalid: %f64.b55 = value_binding invalid, @__global_init.%.loc9_56.2 [concrete = ] +// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %invalid: %f64.dc1 = value_binding invalid, @__global_init.%.loc9_56.2 [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ConvertIntLiteralToFloatLiteral.ref: %ConvertIntLiteralToFloatLiteral.type = name_ref ConvertIntLiteralToFloatLiteral, imports.%Main.ConvertIntLiteralToFloatLiteral [concrete = constants.%ConvertIntLiteralToFloatLiteral] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] -// CHECK:STDOUT: %impl.elem1: %.f38 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.765 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] // CHECK:STDOUT: %bound_method.loc9_52: = bound_method %int_1, %impl.elem1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op.bound] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.call: init Core.IntLiteral = call %bound_method.loc9_52(%int_1) [concrete = constants.%int_-1] // CHECK:STDOUT: %.loc9_52.1: Core.IntLiteral = value_of_initializer %Core.IntLiteral.as.Negate.impl.Op.call [concrete = constants.%int_-1] // CHECK:STDOUT: %.loc9_52.2: Core.IntLiteral = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc9_52.1 [concrete = constants.%int_-1] // CHECK:STDOUT: %ConvertIntLiteralToFloatLiteral.call: init Core.FloatLiteral = call %ConvertIntLiteralToFloatLiteral.ref(%.loc9_52.2) [concrete = ] -// CHECK:STDOUT: %f64: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %impl.elem0: %.f88 = impl_witness_access constants.%As.impl_witness.cf2, element0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.bcc] +// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %impl.elem0: %.e52 = impl_witness_access constants.%As.impl_witness.115, element0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.20d] // CHECK:STDOUT: %bound_method.loc9_56.1: = bound_method %ConvertIntLiteralToFloatLiteral.call, %impl.elem0 [concrete = ] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.FloatLiteral.as.As.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_56.2: = bound_method %ConvertIntLiteralToFloatLiteral.call, %specific_fn [concrete = ] // CHECK:STDOUT: %.loc9_54.1: Core.FloatLiteral = value_of_initializer %ConvertIntLiteralToFloatLiteral.call [concrete = ] // CHECK:STDOUT: %.loc9_54.2: Core.FloatLiteral = converted %ConvertIntLiteralToFloatLiteral.call, %.loc9_54.1 [concrete = ] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.call: init %f64.b55 = call %bound_method.loc9_56.2(%.loc9_54.2) [concrete = ] -// CHECK:STDOUT: %.loc9_56.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.As.impl.Convert.call [concrete = ] -// CHECK:STDOUT: %.loc9_56.2: %f64.b55 = converted %ConvertIntLiteralToFloatLiteral.call, %.loc9_56.1 [concrete = ] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.call: init %f64.dc1 = call %bound_method.loc9_56.2(%.loc9_54.2) [concrete = ] +// CHECK:STDOUT: %.loc9_56.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.As.impl.Convert.call [concrete = ] +// CHECK:STDOUT: %.loc9_56.2: %f64.dc1 = converted %ConvertIntLiteralToFloatLiteral.call, %.loc9_56.1 [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/int/convert_float_checked.carbon b/toolchain/check/testdata/builtins/int/convert_float_checked.carbon index aaa3da0b9cb7..e5bd5ea04519 100644 --- a/toolchain/check/testdata/builtins/int/convert_float_checked.carbon +++ b/toolchain/check/testdata/builtins/int/convert_float_checked.carbon @@ -47,8 +47,8 @@ let lossy: f32 = ConvertIntLiteralToF32(123456789); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.f3b: type = pattern_type %f32.a26 [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %pattern_type.240: type = pattern_type %f32.c73 [concrete] // CHECK:STDOUT: %ConvertIntLiteralToF32.type: type = fn_type @ConvertIntLiteralToF32 [concrete] // CHECK:STDOUT: %ConvertIntLiteralToF32: %ConvertIntLiteralToF32.type = struct_value () [concrete] // CHECK:STDOUT: %int_123456789: Core.IntLiteral = int_value 123456789 [concrete] @@ -60,19 +60,19 @@ let lossy: f32 = ConvertIntLiteralToF32(123456789); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %lossy.patt: %pattern_type.f3b = value_binding_pattern lossy [concrete] +// CHECK:STDOUT: %lossy.patt: %pattern_type.240 = value_binding_pattern lossy [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f32: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc9_50.1: %f32.a26 = value_of_initializer @__global_init.%ConvertIntLiteralToF32.call [concrete = ] -// CHECK:STDOUT: %.loc9_50.2: %f32.a26 = converted @__global_init.%ConvertIntLiteralToF32.call, %.loc9_50.1 [concrete = ] -// CHECK:STDOUT: %lossy: %f32.a26 = value_binding lossy, %.loc9_50.2 [concrete = ] +// CHECK:STDOUT: %f32: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc9_50.1: %f32.c73 = value_of_initializer @__global_init.%ConvertIntLiteralToF32.call [concrete = ] +// CHECK:STDOUT: %.loc9_50.2: %f32.c73 = converted @__global_init.%ConvertIntLiteralToF32.call, %.loc9_50.1 [concrete = ] +// CHECK:STDOUT: %lossy: %f32.c73 = value_binding lossy, %.loc9_50.2 [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ConvertIntLiteralToF32.ref: %ConvertIntLiteralToF32.type = name_ref ConvertIntLiteralToF32, imports.%Main.ConvertIntLiteralToF32 [concrete = constants.%ConvertIntLiteralToF32] // CHECK:STDOUT: %int_123456789: Core.IntLiteral = int_value 123456789 [concrete = constants.%int_123456789] -// CHECK:STDOUT: %ConvertIntLiteralToF32.call: init %f32.a26 = call %ConvertIntLiteralToF32.ref(%int_123456789) [concrete = ] +// CHECK:STDOUT: %ConvertIntLiteralToF32.call: init %f32.c73 = call %ConvertIntLiteralToF32.ref(%int_123456789) [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/pointer/is_null.carbon b/toolchain/check/testdata/builtins/pointer/is_null.carbon index 5eb083d8cb91..8a2dad1d86fe 100644 --- a/toolchain/check/testdata/builtins/pointer/is_null.carbon +++ b/toolchain/check/testdata/builtins/pointer/is_null.carbon @@ -100,9 +100,9 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null"; // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] // CHECK:STDOUT: %IsNullEmptyStruct.type: type = fn_type @IsNullEmptyStruct [concrete] // CHECK:STDOUT: %IsNullEmptyStruct: %IsNullEmptyStruct.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.758: type = maybe_unformed_type %ptr.6be [concrete] -// CHECK:STDOUT: %pattern_type.24c: type = pattern_type %.758 [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.9e8: type = maybe_unformed_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %pattern_type.e22: type = pattern_type %.9e8 [concrete] // CHECK:STDOUT: %IsNullC.type: type = fn_type @IsNullC [concrete] // CHECK:STDOUT: %IsNullC: %IsNullC.type = struct_value () [concrete] // CHECK:STDOUT: %TestEmptyStruct.type: type = fn_type @TestEmptyStruct [concrete] @@ -135,23 +135,23 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null"; // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestC.decl: %TestC.type = fn_decl @TestC [concrete = constants.%TestC] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.24c = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.24c = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.e22 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.e22 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc15_34.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_34.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc15_34.2: Core.Form = init_form %.loc15_34.1 [concrete = constants.%.f34] -// CHECK:STDOUT: %c.param: %.758 = value_param call_param0 -// CHECK:STDOUT: %.loc15_28.1: type = splice_block %.loc15_28.3 [concrete = constants.%.758] { +// CHECK:STDOUT: %c.param: %.9e8 = value_param call_param0 +// CHECK:STDOUT: %.loc15_28.1: type = splice_block %.loc15_28.3 [concrete = constants.%.9e8] { // CHECK:STDOUT: %MakeUnformed.ref: %MakeUnformed.type = name_ref MakeUnformed, file.%MakeUnformed.decl [concrete = constants.%MakeUnformed] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr: type = ptr_type %C.ref [concrete = constants.%ptr.6be] -// CHECK:STDOUT: %MakeUnformed.call: init type = call %MakeUnformed.ref(%ptr) [concrete = constants.%.758] -// CHECK:STDOUT: %.loc15_28.2: type = value_of_initializer %MakeUnformed.call [concrete = constants.%.758] -// CHECK:STDOUT: %.loc15_28.3: type = converted %MakeUnformed.call, %.loc15_28.2 [concrete = constants.%.758] +// CHECK:STDOUT: %ptr: type = ptr_type %C.ref [concrete = constants.%ptr.6b6] +// CHECK:STDOUT: %MakeUnformed.call: init type = call %MakeUnformed.ref(%ptr) [concrete = constants.%.9e8] +// CHECK:STDOUT: %.loc15_28.2: type = value_of_initializer %MakeUnformed.call [concrete = constants.%.9e8] +// CHECK:STDOUT: %.loc15_28.3: type = converted %MakeUnformed.call, %.loc15_28.2 [concrete = constants.%.9e8] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %.758 = value_binding c, %c.param +// CHECK:STDOUT: %c: %.9e8 = value_binding c, %c.param // CHECK:STDOUT: %return.param: ref bool = out_param call_param1 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } @@ -165,10 +165,10 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null"; // CHECK:STDOUT: return %IsNullEmptyStruct.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @TestC(%c.param: %.758) -> out %return.param: bool { +// CHECK:STDOUT: fn @TestC(%c.param: %.9e8) -> out %return.param: bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %IsNullC.ref: %IsNullC.type = name_ref IsNullC, file.%IsNullC.decl [concrete = constants.%IsNullC] -// CHECK:STDOUT: %c.ref: %.758 = name_ref c, %c +// CHECK:STDOUT: %c.ref: %.9e8 = name_ref c, %c // CHECK:STDOUT: %IsNullC.call: init bool = call %IsNullC.ref(%c.ref) // CHECK:STDOUT: return %IsNullC.call // CHECK:STDOUT: } @@ -190,13 +190,13 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null"; // CHECK:STDOUT: %pattern_type.b42: type = pattern_type %.b2d [concrete] // CHECK:STDOUT: %TestEmptyStruct.type: type = fn_type @TestEmptyStruct [concrete] // CHECK:STDOUT: %TestEmptyStruct: %TestEmptyStruct.type = struct_value () [concrete] -// CHECK:STDOUT: %IsNull.specific_fn.23d: = specific_function %IsNull, @IsNull(%empty_struct_type) [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.758: type = maybe_unformed_type %ptr.6be [concrete] -// CHECK:STDOUT: %pattern_type.24c: type = pattern_type %.758 [concrete] +// CHECK:STDOUT: %IsNull.specific_fn.add: = specific_function %IsNull, @IsNull(%empty_struct_type) [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.9e8: type = maybe_unformed_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %pattern_type.e22: type = pattern_type %.9e8 [concrete] // CHECK:STDOUT: %TestC.type: type = fn_type @TestC [concrete] // CHECK:STDOUT: %TestC: %TestC.type = struct_value () [concrete] -// CHECK:STDOUT: %IsNull.specific_fn.f42: = specific_function %IsNull, @IsNull(%C) [concrete] +// CHECK:STDOUT: %IsNull.specific_fn.5e3: = specific_function %IsNull, @IsNull(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -223,23 +223,23 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null"; // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestC.decl: %TestC.type = fn_decl @TestC [concrete = constants.%TestC] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.24c = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.24c = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.e22 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.e22 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc14_34.1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14_34.1: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc14_34.2: Core.Form = init_form %.loc14_34.1 [concrete = constants.%.f34] -// CHECK:STDOUT: %c.param: %.758 = value_param call_param0 -// CHECK:STDOUT: %.loc14_28.1: type = splice_block %.loc14_28.3 [concrete = constants.%.758] { +// CHECK:STDOUT: %c.param: %.9e8 = value_param call_param0 +// CHECK:STDOUT: %.loc14_28.1: type = splice_block %.loc14_28.3 [concrete = constants.%.9e8] { // CHECK:STDOUT: %MakeUnformed.ref: %MakeUnformed.type = name_ref MakeUnformed, file.%MakeUnformed.decl [concrete = constants.%MakeUnformed] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr: type = ptr_type %C.ref [concrete = constants.%ptr.6be] -// CHECK:STDOUT: %MakeUnformed.call: init type = call %MakeUnformed.ref(%ptr) [concrete = constants.%.758] -// CHECK:STDOUT: %.loc14_28.2: type = value_of_initializer %MakeUnformed.call [concrete = constants.%.758] -// CHECK:STDOUT: %.loc14_28.3: type = converted %MakeUnformed.call, %.loc14_28.2 [concrete = constants.%.758] +// CHECK:STDOUT: %ptr: type = ptr_type %C.ref [concrete = constants.%ptr.6b6] +// CHECK:STDOUT: %MakeUnformed.call: init type = call %MakeUnformed.ref(%ptr) [concrete = constants.%.9e8] +// CHECK:STDOUT: %.loc14_28.2: type = value_of_initializer %MakeUnformed.call [concrete = constants.%.9e8] +// CHECK:STDOUT: %.loc14_28.3: type = converted %MakeUnformed.call, %.loc14_28.2 [concrete = constants.%.9e8] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %.758 = value_binding c, %c.param +// CHECK:STDOUT: %c: %.9e8 = value_binding c, %c.param // CHECK:STDOUT: %return.param: ref bool = out_param call_param1 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } @@ -249,16 +249,16 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null"; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %IsNull.ref: %IsNull.type = name_ref IsNull, file.%IsNull.decl [concrete = constants.%IsNull] // CHECK:STDOUT: %s.ref: %.b2d = name_ref s, %s -// CHECK:STDOUT: %IsNull.specific_fn: = specific_function %IsNull.ref, @IsNull(constants.%empty_struct_type) [concrete = constants.%IsNull.specific_fn.23d] +// CHECK:STDOUT: %IsNull.specific_fn: = specific_function %IsNull.ref, @IsNull(constants.%empty_struct_type) [concrete = constants.%IsNull.specific_fn.add] // CHECK:STDOUT: %IsNull.call: init bool = call %IsNull.specific_fn(%s.ref) // CHECK:STDOUT: return %IsNull.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @TestC(%c.param: %.758) -> out %return.param: bool { +// CHECK:STDOUT: fn @TestC(%c.param: %.9e8) -> out %return.param: bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %IsNull.ref: %IsNull.type = name_ref IsNull, file.%IsNull.decl [concrete = constants.%IsNull] -// CHECK:STDOUT: %c.ref: %.758 = name_ref c, %c -// CHECK:STDOUT: %IsNull.specific_fn: = specific_function %IsNull.ref, @IsNull(constants.%C) [concrete = constants.%IsNull.specific_fn.f42] +// CHECK:STDOUT: %c.ref: %.9e8 = name_ref c, %c +// CHECK:STDOUT: %IsNull.specific_fn: = specific_function %IsNull.ref, @IsNull(constants.%C) [concrete = constants.%IsNull.specific_fn.5e3] // CHECK:STDOUT: %IsNull.call: init bool = call %IsNull.specific_fn(%c.ref) // CHECK:STDOUT: return %IsNull.call // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/pointer/make_null.carbon b/toolchain/check/testdata/builtins/pointer/make_null.carbon index 4a4be8aad4fb..4295f8fa0e22 100644 --- a/toolchain/check/testdata/builtins/pointer/make_null.carbon +++ b/toolchain/check/testdata/builtins/pointer/make_null.carbon @@ -76,9 +76,9 @@ fn NotPointer() -> MakeUnformed({}) = "pointer.make_null"; // CHECK:STDOUT: %pattern_type.b42: type = pattern_type %.b2d [concrete] // CHECK:STDOUT: %MakeNullEmptyStruct.type: type = fn_type @MakeNullEmptyStruct [concrete] // CHECK:STDOUT: %MakeNullEmptyStruct: %MakeNullEmptyStruct.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.758: type = maybe_unformed_type %ptr.6be [concrete] -// CHECK:STDOUT: %pattern_type.24c: type = pattern_type %.758 [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.9e8: type = maybe_unformed_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %pattern_type.e22: type = pattern_type %.9e8 [concrete] // CHECK:STDOUT: %MakeNullC.type: type = fn_type @MakeNullC [concrete] // CHECK:STDOUT: %MakeNullC: %MakeNullC.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -100,19 +100,19 @@ fn NotPointer() -> MakeUnformed({}) = "pointer.make_null"; // CHECK:STDOUT: %.loc11_48.2: %.b2d = converted @__global_init.%MakeNullEmptyStruct.call, %.loc11_48.1 // CHECK:STDOUT: %s: %.b2d = value_binding s, %.loc11_48.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.24c = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.e22 = value_binding_pattern c [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc12_23.1: type = splice_block %.loc12_23.3 [concrete = constants.%.758] { +// CHECK:STDOUT: %.loc12_23.1: type = splice_block %.loc12_23.3 [concrete = constants.%.9e8] { // CHECK:STDOUT: %MakeUnformed.ref.loc12: %MakeUnformed.type = name_ref MakeUnformed, %MakeUnformed.decl [concrete = constants.%MakeUnformed] // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc12: type = ptr_type %C.ref [concrete = constants.%ptr.6be] -// CHECK:STDOUT: %MakeUnformed.call.loc12: init type = call %MakeUnformed.ref.loc12(%ptr.loc12) [concrete = constants.%.758] -// CHECK:STDOUT: %.loc12_23.2: type = value_of_initializer %MakeUnformed.call.loc12 [concrete = constants.%.758] -// CHECK:STDOUT: %.loc12_23.3: type = converted %MakeUnformed.call.loc12, %.loc12_23.2 [concrete = constants.%.758] +// CHECK:STDOUT: %ptr.loc12: type = ptr_type %C.ref [concrete = constants.%ptr.6b6] +// CHECK:STDOUT: %MakeUnformed.call.loc12: init type = call %MakeUnformed.ref.loc12(%ptr.loc12) [concrete = constants.%.9e8] +// CHECK:STDOUT: %.loc12_23.2: type = value_of_initializer %MakeUnformed.call.loc12 [concrete = constants.%.9e8] +// CHECK:STDOUT: %.loc12_23.3: type = converted %MakeUnformed.call.loc12, %.loc12_23.2 [concrete = constants.%.9e8] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc12_37.1: %.758 = value_of_initializer @__global_init.%MakeNullC.call -// CHECK:STDOUT: %.loc12_37.2: %.758 = converted @__global_init.%MakeNullC.call, %.loc12_37.1 -// CHECK:STDOUT: %c: %.758 = value_binding c, %.loc12_37.2 +// CHECK:STDOUT: %.loc12_37.1: %.9e8 = value_of_initializer @__global_init.%MakeNullC.call +// CHECK:STDOUT: %.loc12_37.2: %.9e8 = converted @__global_init.%MakeNullC.call, %.loc12_37.1 +// CHECK:STDOUT: %c: %.9e8 = value_binding c, %.loc12_37.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -120,7 +120,7 @@ fn NotPointer() -> MakeUnformed({}) = "pointer.make_null"; // CHECK:STDOUT: %MakeNullEmptyStruct.ref: %MakeNullEmptyStruct.type = name_ref MakeNullEmptyStruct, file.%MakeNullEmptyStruct.decl [concrete = constants.%MakeNullEmptyStruct] // CHECK:STDOUT: %MakeNullEmptyStruct.call: init %.b2d = call %MakeNullEmptyStruct.ref() // CHECK:STDOUT: %MakeNullC.ref: %MakeNullC.type = name_ref MakeNullC, file.%MakeNullC.decl [concrete = constants.%MakeNullC] -// CHECK:STDOUT: %MakeNullC.call: init %.758 = call %MakeNullC.ref() +// CHECK:STDOUT: %MakeNullC.call: init %.9e8 = call %MakeNullC.ref() // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -137,11 +137,11 @@ fn NotPointer() -> MakeUnformed({}) = "pointer.make_null"; // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] // CHECK:STDOUT: %.b2d: type = maybe_unformed_type %ptr.c28 [concrete] // CHECK:STDOUT: %pattern_type.b42: type = pattern_type %.b2d [concrete] -// CHECK:STDOUT: %MakeNull.specific_fn.3a2: = specific_function %MakeNull, @MakeNull(%empty_struct_type) [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.758: type = maybe_unformed_type %ptr.6be [concrete] -// CHECK:STDOUT: %pattern_type.24c: type = pattern_type %.758 [concrete] -// CHECK:STDOUT: %MakeNull.specific_fn.1c8: = specific_function %MakeNull, @MakeNull(%C) [concrete] +// CHECK:STDOUT: %MakeNull.specific_fn.391: = specific_function %MakeNull, @MakeNull(%empty_struct_type) [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.9e8: type = maybe_unformed_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %pattern_type.e22: type = pattern_type %.9e8 [concrete] +// CHECK:STDOUT: %MakeNull.specific_fn.75f: = specific_function %MakeNull, @MakeNull(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -161,19 +161,19 @@ fn NotPointer() -> MakeUnformed({}) = "pointer.make_null"; // CHECK:STDOUT: %.loc10_39.2: %.b2d = converted @__global_init.%MakeNull.call.loc10, %.loc10_39.1 // CHECK:STDOUT: %s: %.b2d = value_binding s, %.loc10_39.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.24c = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.e22 = value_binding_pattern c [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc11_23.1: type = splice_block %.loc11_23.3 [concrete = constants.%.758] { +// CHECK:STDOUT: %.loc11_23.1: type = splice_block %.loc11_23.3 [concrete = constants.%.9e8] { // CHECK:STDOUT: %MakeUnformed.ref.loc11: %MakeUnformed.type = name_ref MakeUnformed, %MakeUnformed.decl [concrete = constants.%MakeUnformed] // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc11: type = ptr_type %C.ref [concrete = constants.%ptr.6be] -// CHECK:STDOUT: %MakeUnformed.call.loc11: init type = call %MakeUnformed.ref.loc11(%ptr.loc11) [concrete = constants.%.758] -// CHECK:STDOUT: %.loc11_23.2: type = value_of_initializer %MakeUnformed.call.loc11 [concrete = constants.%.758] -// CHECK:STDOUT: %.loc11_23.3: type = converted %MakeUnformed.call.loc11, %.loc11_23.2 [concrete = constants.%.758] +// CHECK:STDOUT: %ptr.loc11: type = ptr_type %C.ref [concrete = constants.%ptr.6b6] +// CHECK:STDOUT: %MakeUnformed.call.loc11: init type = call %MakeUnformed.ref.loc11(%ptr.loc11) [concrete = constants.%.9e8] +// CHECK:STDOUT: %.loc11_23.2: type = value_of_initializer %MakeUnformed.call.loc11 [concrete = constants.%.9e8] +// CHECK:STDOUT: %.loc11_23.3: type = converted %MakeUnformed.call.loc11, %.loc11_23.2 [concrete = constants.%.9e8] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc11_37.1: %.758 = value_of_initializer @__global_init.%MakeNull.call.loc11 -// CHECK:STDOUT: %.loc11_37.2: %.758 = converted @__global_init.%MakeNull.call.loc11, %.loc11_37.1 -// CHECK:STDOUT: %c: %.758 = value_binding c, %.loc11_37.2 +// CHECK:STDOUT: %.loc11_37.1: %.9e8 = value_of_initializer @__global_init.%MakeNull.call.loc11 +// CHECK:STDOUT: %.loc11_37.2: %.9e8 = converted @__global_init.%MakeNull.call.loc11, %.loc11_37.1 +// CHECK:STDOUT: %c: %.9e8 = value_binding c, %.loc11_37.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -181,12 +181,12 @@ fn NotPointer() -> MakeUnformed({}) = "pointer.make_null"; // CHECK:STDOUT: %MakeNull.ref.loc10: %MakeNull.type = name_ref MakeNull, file.%MakeNull.decl [concrete = constants.%MakeNull] // CHECK:STDOUT: %.loc10_38: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc10_39: type = converted %.loc10_38, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %MakeNull.specific_fn.loc10: = specific_function %MakeNull.ref.loc10, @MakeNull(constants.%empty_struct_type) [concrete = constants.%MakeNull.specific_fn.3a2] +// CHECK:STDOUT: %MakeNull.specific_fn.loc10: = specific_function %MakeNull.ref.loc10, @MakeNull(constants.%empty_struct_type) [concrete = constants.%MakeNull.specific_fn.391] // CHECK:STDOUT: %MakeNull.call.loc10: init %.b2d = call %MakeNull.specific_fn.loc10() // CHECK:STDOUT: %MakeNull.ref.loc11: %MakeNull.type = name_ref MakeNull, file.%MakeNull.decl [concrete = constants.%MakeNull] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %MakeNull.specific_fn.loc11: = specific_function %MakeNull.ref.loc11, @MakeNull(constants.%C) [concrete = constants.%MakeNull.specific_fn.1c8] -// CHECK:STDOUT: %MakeNull.call.loc11: init %.758 = call %MakeNull.specific_fn.loc11() +// CHECK:STDOUT: %MakeNull.specific_fn.loc11: = specific_function %MakeNull.ref.loc11, @MakeNull(constants.%C) [concrete = constants.%MakeNull.specific_fn.75f] +// CHECK:STDOUT: %MakeNull.call.loc11: init %.9e8 = call %MakeNull.specific_fn.loc11() // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/print/char.carbon b/toolchain/check/testdata/builtins/print/char.carbon index 9eed50474166..3840357d68e1 100644 --- a/toolchain/check/testdata/builtins/print/char.carbon +++ b/toolchain/check/testdata/builtins/print/char.carbon @@ -29,22 +29,22 @@ fn Main() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %PrintChar.type.d9b: type = fn_type @PrintChar.loc15 [concrete] -// CHECK:STDOUT: %PrintChar.4c8: %PrintChar.type.d9b = struct_value () [concrete] +// CHECK:STDOUT: %PrintChar.type.7a7: type = fn_type @PrintChar.loc15 [concrete] +// CHECK:STDOUT: %PrintChar.772: %PrintChar.type.7a7 = struct_value () [concrete] // CHECK:STDOUT: %.75c: Core.CharLiteral = char_value U+0031 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.f44: type = facet_type <@ImplicitAs, @ImplicitAs(%char)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.4fa: = impl_witness imports.%ImplicitAs.impl_witness_table.e28 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.f44 = facet_value Core.CharLiteral, (%ImplicitAs.impl_witness.4fa) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b40: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%char, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.dd0: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b40, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.e81: type = facet_type <@ImplicitAs, @ImplicitAs(%char)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.780: = impl_witness imports.%ImplicitAs.impl_witness_table.8a5 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.e81 = facet_value Core.CharLiteral, (%ImplicitAs.impl_witness.780) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.0c6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%char, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1e6: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.0c6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.CharLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert: %Core.CharLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert.bound.17b: = bound_method %.75c, %Core.CharLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %int_49: %char = int_value 49 [concrete] -// CHECK:STDOUT: %PrintChar.type.d35: type = fn_type @PrintChar.1 [concrete] -// CHECK:STDOUT: %PrintChar.d31: %PrintChar.type.d35 = struct_value () [concrete] +// CHECK:STDOUT: %PrintChar.type.b3c: type = fn_type @PrintChar.1 [concrete] +// CHECK:STDOUT: %PrintChar.063: %PrintChar.type.b3c = struct_value () [concrete] // CHECK:STDOUT: %.f8d: Core.CharLiteral = char_value U+0032 [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert.bound.e67: = bound_method %.f8d, %Core.CharLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %int_50: %char = int_value 50 [concrete] @@ -62,26 +62,26 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Char: type = import_ref Core//prelude/types/char, Char, loaded [concrete = constants.%char] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.ade: %Core.CharLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/char, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.e28 = impl_witness_table (%Core.import_ref.ade), @Core.CharLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.PrintChar: %PrintChar.type.d35 = import_ref Core//io, PrintChar, loaded [concrete = constants.%PrintChar.d31] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.06c: %Core.CharLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/char, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.8a5 = impl_witness_table (%Core.import_ref.06c), @Core.CharLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.PrintChar: %PrintChar.type.b3c = import_ref Core//io, PrintChar, loaded [concrete = constants.%PrintChar.063] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Main() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %PrintChar.ref.loc19: %PrintChar.type.d9b = name_ref PrintChar, file.%PrintChar.decl [concrete = constants.%PrintChar.4c8] +// CHECK:STDOUT: %PrintChar.ref.loc19: %PrintChar.type.7a7 = name_ref PrintChar, file.%PrintChar.decl [concrete = constants.%PrintChar.772] // CHECK:STDOUT: %.loc19_13.1: Core.CharLiteral = char_value U+0031 [concrete = constants.%.75c] -// CHECK:STDOUT: %impl.elem0.loc19: %.dd0 = impl_witness_access constants.%ImplicitAs.impl_witness.4fa, element0 [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc19: %.1e6 = impl_witness_access constants.%ImplicitAs.impl_witness.780, element0 [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc19: = bound_method %.loc19_13.1, %impl.elem0.loc19 [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert.bound.17b] // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %char = call %bound_method.loc19(%.loc19_13.1) [concrete = constants.%int_49] // CHECK:STDOUT: %.loc19_13.2: %char = value_of_initializer %Core.CharLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_49] // CHECK:STDOUT: %.loc19_13.3: %char = converted %.loc19_13.1, %.loc19_13.2 [concrete = constants.%int_49] // CHECK:STDOUT: %PrintChar.call.loc19: init %i32 = call %PrintChar.ref.loc19(%.loc19_13.3) // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %PrintChar.ref.loc20: %PrintChar.type.d35 = name_ref PrintChar, imports.%Core.PrintChar [concrete = constants.%PrintChar.d31] +// CHECK:STDOUT: %PrintChar.ref.loc20: %PrintChar.type.b3c = name_ref PrintChar, imports.%Core.PrintChar [concrete = constants.%PrintChar.063] // CHECK:STDOUT: %.loc20_18.1: Core.CharLiteral = char_value U+0032 [concrete = constants.%.f8d] -// CHECK:STDOUT: %impl.elem0.loc20: %.dd0 = impl_witness_access constants.%ImplicitAs.impl_witness.4fa, element0 [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc20: %.1e6 = impl_witness_access constants.%ImplicitAs.impl_witness.780, element0 [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc20: = bound_method %.loc20_18.1, %impl.elem0.loc20 [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert.bound.e67] // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %char = call %bound_method.loc20(%.loc20_18.1) [concrete = constants.%int_50] // CHECK:STDOUT: %.loc20_18.2: %char = value_of_initializer %Core.CharLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_50] diff --git a/toolchain/check/testdata/builtins/print/int.carbon b/toolchain/check/testdata/builtins/print/int.carbon index 7cabb1050273..676b7aaead4f 100644 --- a/toolchain/check/testdata/builtins/print/int.carbon +++ b/toolchain/check/testdata/builtins/print/int.carbon @@ -29,31 +29,31 @@ fn Main() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %Print.type.bc9: type = fn_type @Print.loc15 [concrete] -// CHECK:STDOUT: %Print.818: %Print.type.bc9 = struct_value () [concrete] +// CHECK:STDOUT: %Print.type.009: type = fn_type @Print.loc15 [concrete] +// CHECK:STDOUT: %Print.9c5: %Print.type.009 = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Print.type.a10: type = fn_type @Print.1 [concrete] -// CHECK:STDOUT: %Print.2fc: %Print.type.a10 = struct_value () [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %Print.type.4a7: type = fn_type @Print.1 [concrete] +// CHECK:STDOUT: %Print.d24: %Print.type.4a7 = struct_value () [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = 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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -66,34 +66,34 @@ fn Main() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] -// CHECK:STDOUT: %Core.Print: %Print.type.a10 = import_ref Core//io, Print, loaded [concrete = constants.%Print.2fc] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] +// CHECK:STDOUT: %Core.Print: %Print.type.4a7 = import_ref Core//io, Print, loaded [concrete = constants.%Print.d24] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Main() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %Print.ref.loc19: %Print.type.bc9 = name_ref Print, file.%Print.decl [concrete = constants.%Print.818] +// CHECK:STDOUT: %Print.ref.loc19: %Print.type.009 = name_ref Print, file.%Print.decl [concrete = constants.%Print.9c5] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc19: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc19_9.1: = bound_method %int_1, %impl.elem0.loc19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc19: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc19_9.1: = bound_method %int_1, %impl.elem0.loc19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc19_9.2: = bound_method %int_1, %specific_fn.loc19 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %i32 = call %bound_method.loc19_9.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc19_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc19_9.2: %i32 = converted %int_1, %.loc19_9.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc19_9.2: = bound_method %int_1, %specific_fn.loc19 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %i32 = call %bound_method.loc19_9.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc19_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc19_9.2: %i32 = converted %int_1, %.loc19_9.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %Print.call.loc19: init %empty_tuple.type = call %Print.ref.loc19(%.loc19_9.2) // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %Print.ref.loc20: %Print.type.a10 = name_ref Print, imports.%Core.Print [concrete = constants.%Print.2fc] +// CHECK:STDOUT: %Print.ref.loc20: %Print.type.4a7 = name_ref Print, imports.%Core.Print [concrete = constants.%Print.d24] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc20: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc20_14.1: = bound_method %int_2, %impl.elem0.loc20 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %impl.elem0.loc20: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc20_14.1: = bound_method %int_2, %impl.elem0.loc20 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc20_14.2: = bound_method %int_2, %specific_fn.loc20 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %i32 = call %bound_method.loc20_14.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc20_14.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc20_14.2: %i32 = converted %int_2, %.loc20_14.1 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc20_14.2: = bound_method %int_2, %specific_fn.loc20 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %i32 = call %bound_method.loc20_14.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc20_14.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc20_14.2: %i32 = converted %int_2, %.loc20_14.1 [concrete = constants.%int_2.295] // CHECK:STDOUT: %Print.call.loc20: init %empty_tuple.type = call %Print.ref.loc20(%.loc20_14.2) // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/read/char.carbon b/toolchain/check/testdata/builtins/read/char.carbon index 1746792f6866..861dcec99564 100644 --- a/toolchain/check/testdata/builtins/read/char.carbon +++ b/toolchain/check/testdata/builtins/read/char.carbon @@ -30,11 +30,11 @@ fn Main() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %ReadChar.type.ee2: type = fn_type @ReadChar.loc4 [concrete] -// CHECK:STDOUT: %ReadChar.192: %ReadChar.type.ee2 = struct_value () [concrete] -// CHECK:STDOUT: %ReadChar.type.413: type = fn_type @ReadChar.1 [concrete] -// CHECK:STDOUT: %ReadChar.367: %ReadChar.type.413 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %ReadChar.type.fc4: type = fn_type @ReadChar.loc4 [concrete] +// CHECK:STDOUT: %ReadChar.c25: %ReadChar.type.fc4 = struct_value () [concrete] +// CHECK:STDOUT: %ReadChar.type.490: type = fn_type @ReadChar.1 [concrete] +// CHECK:STDOUT: %ReadChar.3b5: %ReadChar.type.490 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -46,25 +46,25 @@ fn Main() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ReadChar: %ReadChar.type.413 = import_ref Core//io, ReadChar, loaded [concrete = constants.%ReadChar.367] +// CHECK:STDOUT: %Core.ReadChar: %ReadChar.type.490 = import_ref Core//io, ReadChar, loaded [concrete = constants.%ReadChar.3b5] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = value_binding_pattern n [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = value_binding_pattern n [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %ReadChar.ref.loc8: %ReadChar.type.ee2 = name_ref ReadChar, file.%ReadChar.decl [concrete = constants.%ReadChar.192] +// CHECK:STDOUT: %ReadChar.ref.loc8: %ReadChar.type.fc4 = name_ref ReadChar, file.%ReadChar.decl [concrete = constants.%ReadChar.c25] // CHECK:STDOUT: %ReadChar.call.loc8: init %i32 = call %ReadChar.ref.loc8() // CHECK:STDOUT: %i32.loc8: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc8_32.1: %i32 = value_of_initializer %ReadChar.call.loc8 // CHECK:STDOUT: %.loc8_32.2: %i32 = converted %ReadChar.call.loc8, %.loc8_32.1 // CHECK:STDOUT: %n: %i32 = value_binding n, %.loc8_32.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %m.patt: %pattern_type.104 = value_binding_pattern m [concrete] +// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = value_binding_pattern m [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %ReadChar.ref.loc9: %ReadChar.type.413 = name_ref ReadChar, imports.%Core.ReadChar [concrete = constants.%ReadChar.367] +// CHECK:STDOUT: %ReadChar.ref.loc9: %ReadChar.type.490 = name_ref ReadChar, imports.%Core.ReadChar [concrete = constants.%ReadChar.3b5] // CHECK:STDOUT: %ReadChar.call.loc9: init %i32 = call %ReadChar.ref.loc9() // CHECK:STDOUT: %i32.loc9: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc9_37.1: %i32 = value_of_initializer %ReadChar.call.loc9 diff --git a/toolchain/check/testdata/choice/basic.carbon b/toolchain/check/testdata/choice/basic.carbon index 30766d783263..dbd06c3e50f4 100644 --- a/toolchain/check/testdata/choice/basic.carbon +++ b/toolchain/check/testdata/choice/basic.carbon @@ -88,7 +88,7 @@ let never: Never = {}; // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.discriminant = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: %Always.val: %Always = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.d82: ref %Always = temporary invalid, %Always.val [concrete] +// CHECK:STDOUT: %.302: ref %Always = temporary invalid, %Always.val [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %Always [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -114,7 +114,7 @@ let never: Never = {}; // CHECK:STDOUT: %.loc6_1.8: init %empty_tuple.type to %.loc6_1.5 = in_place_init %.loc6_1.7 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_1.9: init %Always to %.loc6_1.4 = class_init (%.loc6_1.8) [concrete = constants.%Always.val] // CHECK:STDOUT: %.loc6_1.10: init %Always = converted %.loc6_1.3, %.loc6_1.9 [concrete = constants.%Always.val] -// CHECK:STDOUT: %.loc6_1.11: ref %Always = temporary %.loc6_1.4, %.loc6_1.10 [concrete = constants.%.d82] +// CHECK:STDOUT: %.loc6_1.11: ref %Always = temporary %.loc6_1.4, %.loc6_1.10 [concrete = constants.%.302] // CHECK:STDOUT: %.loc6_1.12: %Always = acquire_value %.loc6_1.11 [concrete = constants.%Always.val] // CHECK:STDOUT: %Sunny: %Always = value_binding Sunny, %.loc6_1.12 // CHECK:STDOUT: complete_type_witness = %complete_type @@ -139,186 +139,186 @@ let never: Never = {}; // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %u2: type = class_type @UInt, @UInt(%int_2.ecc) [concrete] // CHECK:STDOUT: %struct_type.discriminant: type = struct_type {.discriminant: %u2} [concrete] -// CHECK:STDOUT: %complete_type.fdb: = complete_type_witness %struct_type.discriminant [concrete] +// CHECK:STDOUT: %complete_type.b01: = complete_type_witness %struct_type.discriminant [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.631: type = facet_type <@ImplicitAs, @ImplicitAs(%u2)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.452: type = facet_type <@ImplicitAs, @ImplicitAs(%u2)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.498: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.2ae: = impl_witness imports.%ImplicitAs.impl_witness_table.0c6, @Core.IntLiteral.as.ImplicitAs.impl(%int_2.ecc) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.d31: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_2.ecc) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.153: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.d31 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.631 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.2ae) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.54e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%u2, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.e81: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.54e, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c3b: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.153 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.153, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_2.ecc) [concrete] -// CHECK:STDOUT: %bound_method.c76: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.59e: %u2 = int_value 0 [concrete] -// CHECK:STDOUT: %struct.90e: %struct_type.discriminant = struct_value (%int_0.59e) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.170: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.e93: = impl_witness imports.%ImplicitAs.impl_witness_table.42f, @Core.IntLiteral.as.ImplicitAs.impl(%int_2.ecc) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.d95: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_2.ecc) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.409: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.d95 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.452 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e93) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.119: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%u2, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.66c: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.119, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.941: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.409 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.409, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_2.ecc) [concrete] +// CHECK:STDOUT: %bound_method.6ef: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_0.336: %u2 = int_value 0 [concrete] +// CHECK:STDOUT: %struct.b15: %struct_type.discriminant = struct_value (%int_0.336) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.743: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.521: %UInt.as.Copy.impl.Op.type.743 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.60d: = impl_witness imports.%Copy.impl_witness_table.306, @UInt.as.Copy.impl(%int_2.ecc) [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.3cf: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%int_2.ecc) [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.2f2: %UInt.as.Copy.impl.Op.type.3cf = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %u2, (%Copy.impl_witness.60d) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.4bf: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.58f: type = fn_type_with_self_type %Copy.WithSelf.Op.type.4bf, %Copy.facet [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.bound.901: = bound_method %int_0.59e, %UInt.as.Copy.impl.Op.2f2 [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.2f2, @UInt.as.Copy.impl.Op(%int_2.ecc) [concrete] -// CHECK:STDOUT: %bound_method.56e: = bound_method %int_0.59e, %UInt.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %Ordering.val.6b0: %Ordering = struct_value (%int_0.59e) [concrete] -// CHECK:STDOUT: %.864: ref %Ordering = temporary invalid, %Ordering.val.6b0 [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.0c5: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%N) [symbolic] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.38a: %UInt.as.Copy.impl.Op.type.0c5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.f92: = impl_witness imports.%Copy.impl_witness_table.fe3, @UInt.as.Copy.impl(%int_2.ecc) [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.d68: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%int_2.ecc) [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.4d1: %UInt.as.Copy.impl.Op.type.d68 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %u2, (%Copy.impl_witness.f92) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.21e: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.594: type = fn_type_with_self_type %Copy.WithSelf.Op.type.21e, %Copy.facet [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.bound.c6b: = bound_method %int_0.336, %UInt.as.Copy.impl.Op.4d1 [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.4d1, @UInt.as.Copy.impl.Op(%int_2.ecc) [concrete] +// CHECK:STDOUT: %bound_method.645: = bound_method %int_0.336, %UInt.as.Copy.impl.Op.specific_fn [concrete] +// CHECK:STDOUT: %Ordering.val.236: %Ordering = struct_value (%int_0.336) [concrete] +// CHECK:STDOUT: %.156: ref %Ordering = temporary invalid, %Ordering.val.236 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.00c: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.153 [concrete] -// CHECK:STDOUT: %bound_method.337: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.b2e: %u2 = int_value 1 [concrete] -// CHECK:STDOUT: %struct.f89: %struct_type.discriminant = struct_value (%int_1.b2e) [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.bound.aa3: = bound_method %int_1.b2e, %UInt.as.Copy.impl.Op.2f2 [concrete] -// CHECK:STDOUT: %bound_method.187: = bound_method %int_1.b2e, %UInt.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %Ordering.val.82c: %Ordering = struct_value (%int_1.b2e) [concrete] -// CHECK:STDOUT: %.3d5: ref %Ordering = temporary invalid, %Ordering.val.82c [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.623: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.153 [concrete] -// CHECK:STDOUT: %bound_method.139: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.2e7: %u2 = int_value 2 [concrete] -// CHECK:STDOUT: %struct.2aa: %struct_type.discriminant = struct_value (%int_2.2e7) [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.bound.dd4: = bound_method %int_2.2e7, %UInt.as.Copy.impl.Op.2f2 [concrete] -// CHECK:STDOUT: %bound_method.f03: = bound_method %int_2.2e7, %UInt.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %Ordering.val.3c2: %Ordering = struct_value (%int_2.2e7) [concrete] -// CHECK:STDOUT: %.164: ref %Ordering = temporary invalid, %Ordering.val.3c2 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.48e: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.409 [concrete] +// CHECK:STDOUT: %bound_method.0f5: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.508: %u2 = int_value 1 [concrete] +// CHECK:STDOUT: %struct.2cb: %struct_type.discriminant = struct_value (%int_1.508) [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.bound.1e1: = bound_method %int_1.508, %UInt.as.Copy.impl.Op.4d1 [concrete] +// CHECK:STDOUT: %bound_method.373: = bound_method %int_1.508, %UInt.as.Copy.impl.Op.specific_fn [concrete] +// CHECK:STDOUT: %Ordering.val.4d4: %Ordering = struct_value (%int_1.508) [concrete] +// CHECK:STDOUT: %.ce0: ref %Ordering = temporary invalid, %Ordering.val.4d4 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.6c9: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.409 [concrete] +// CHECK:STDOUT: %bound_method.135: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_2.996: %u2 = int_value 2 [concrete] +// CHECK:STDOUT: %struct.40a: %struct_type.discriminant = struct_value (%int_2.996) [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.bound.424: = bound_method %int_2.996, %UInt.as.Copy.impl.Op.4d1 [concrete] +// CHECK:STDOUT: %bound_method.f90: = bound_method %int_2.996, %UInt.as.Copy.impl.Op.specific_fn [concrete] +// CHECK:STDOUT: %Ordering.val.fca: %Ordering = struct_value (%int_2.996) [concrete] +// CHECK:STDOUT: %.267: ref %Ordering = temporary invalid, %Ordering.val.fca [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.23e: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.153 [concrete] -// CHECK:STDOUT: %bound_method.5aa: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.14f: %u2 = int_value 3 [concrete] -// CHECK:STDOUT: %struct.6c3: %struct_type.discriminant = struct_value (%int_3.14f) [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.bound.fd5: = bound_method %int_3.14f, %UInt.as.Copy.impl.Op.2f2 [concrete] -// CHECK:STDOUT: %bound_method.285: = bound_method %int_3.14f, %UInt.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %Ordering.val.4db: %Ordering = struct_value (%int_3.14f) [concrete] -// CHECK:STDOUT: %.185: ref %Ordering = temporary invalid, %Ordering.val.4db [concrete] -// CHECK:STDOUT: %pattern_type.a68: type = pattern_type %Ordering [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.0d0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.409 [concrete] +// CHECK:STDOUT: %bound_method.f45: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_3.184: %u2 = int_value 3 [concrete] +// CHECK:STDOUT: %struct.376: %struct_type.discriminant = struct_value (%int_3.184) [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.bound.f14: = bound_method %int_3.184, %UInt.as.Copy.impl.Op.4d1 [concrete] +// CHECK:STDOUT: %bound_method.f04: = bound_method %int_3.184, %UInt.as.Copy.impl.Op.specific_fn [concrete] +// CHECK:STDOUT: %Ordering.val.3b4: %Ordering = struct_value (%int_3.184) [concrete] +// CHECK:STDOUT: %.a83: ref %Ordering = temporary invalid, %Ordering.val.3b4 [concrete] +// CHECK:STDOUT: %pattern_type.542: type = pattern_type %Ordering [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.e9f: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6) = import_ref Core//prelude/parts/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.498)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0c6 = impl_witness_table (%Core.import_ref.e9f), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.3cf: @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op.type (%UInt.as.Copy.impl.Op.type.743) = import_ref Core//prelude/parts/uint, loc{{\d+_\d+}}, loaded [symbolic = @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op (constants.%UInt.as.Copy.impl.Op.521)] -// CHECK:STDOUT: %Copy.impl_witness_table.306 = impl_witness_table (%Core.import_ref.3cf), @UInt.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.aa5: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199) = import_ref Core//prelude/parts/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.170)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.42f = impl_witness_table (%Core.import_ref.aa5), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.791: @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op.type (%UInt.as.Copy.impl.Op.type.0c5) = import_ref Core//prelude/parts/uint, loc{{\d+_\d+}}, loaded [symbolic = @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op (constants.%UInt.as.Copy.impl.Op.38a)] +// CHECK:STDOUT: %Copy.impl_witness_table.fe3 = impl_witness_table (%Core.import_ref.791), @UInt.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %Ordering.decl: type = class_decl @Ordering [concrete = constants.%Ordering] {} {} // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %less.patt: %pattern_type.a68 = value_binding_pattern less [concrete] +// CHECK:STDOUT: %less.patt: %pattern_type.542 = value_binding_pattern less [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Ordering.ref.loc11: type = name_ref Ordering, %Ordering.decl [concrete = constants.%Ordering] // CHECK:STDOUT: %less: %Ordering = value_binding less, @__global_init.%Less.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %equiv.patt: %pattern_type.a68 = value_binding_pattern equiv [concrete] +// CHECK:STDOUT: %equiv.patt: %pattern_type.542 = value_binding_pattern equiv [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Ordering.ref.loc12: type = name_ref Ordering, %Ordering.decl [concrete = constants.%Ordering] // CHECK:STDOUT: %equiv: %Ordering = value_binding equiv, @__global_init.%Equivalent.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %greater.patt: %pattern_type.a68 = value_binding_pattern greater [concrete] +// CHECK:STDOUT: %greater.patt: %pattern_type.542 = value_binding_pattern greater [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Ordering.ref.loc13: type = name_ref Ordering, %Ordering.decl [concrete = constants.%Ordering] // CHECK:STDOUT: %greater: %Ordering = value_binding greater, @__global_init.%Greater.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %inc.patt: %pattern_type.a68 = value_binding_pattern inc [concrete] +// CHECK:STDOUT: %inc.patt: %pattern_type.542 = value_binding_pattern inc [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Ordering.ref.loc14: type = name_ref Ordering, %Ordering.decl [concrete = constants.%Ordering] // CHECK:STDOUT: %inc: %Ordering = value_binding inc, @__global_init.%Incomparable.ref // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Ordering { -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.discriminant [concrete = constants.%complete_type.fdb] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.discriminant [concrete = constants.%complete_type.b01] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc5_7.1: %.e81 = impl_witness_access constants.%ImplicitAs.impl_witness.2ae, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.153] -// CHECK:STDOUT: %bound_method.loc5_7.1: = bound_method %int_0, %impl.elem0.loc5_7.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c3b] +// CHECK:STDOUT: %impl.elem0.loc5_7.1: %.66c = impl_witness_access constants.%ImplicitAs.impl_witness.e93, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.409] +// CHECK:STDOUT: %bound_method.loc5_7.1: = bound_method %int_0, %impl.elem0.loc5_7.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.941] // CHECK:STDOUT: %specific_fn.loc5_7.1: = specific_function %impl.elem0.loc5_7.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_2.ecc) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc5_7.2: = bound_method %int_0, %specific_fn.loc5_7.1 [concrete = constants.%bound_method.c76] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5: init %u2 = call %bound_method.loc5_7.2(%int_0) [concrete = constants.%int_0.59e] -// CHECK:STDOUT: %.loc5_7.1: %u2 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5 [concrete = constants.%int_0.59e] -// CHECK:STDOUT: %.loc5_7.2: %u2 = converted %int_0, %.loc5_7.1 [concrete = constants.%int_0.59e] -// CHECK:STDOUT: %.loc5_7.3: %struct_type.discriminant = struct_literal (%.loc5_7.2) [concrete = constants.%struct.90e] -// CHECK:STDOUT: %impl.elem0.loc5_7.2: %.58f = impl_witness_access constants.%Copy.impl_witness.60d, element0 [concrete = constants.%UInt.as.Copy.impl.Op.2f2] -// CHECK:STDOUT: %bound_method.loc5_7.3: = bound_method %.loc5_7.2, %impl.elem0.loc5_7.2 [concrete = constants.%UInt.as.Copy.impl.Op.bound.901] +// CHECK:STDOUT: %bound_method.loc5_7.2: = bound_method %int_0, %specific_fn.loc5_7.1 [concrete = constants.%bound_method.6ef] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5: init %u2 = call %bound_method.loc5_7.2(%int_0) [concrete = constants.%int_0.336] +// CHECK:STDOUT: %.loc5_7.1: %u2 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5 [concrete = constants.%int_0.336] +// CHECK:STDOUT: %.loc5_7.2: %u2 = converted %int_0, %.loc5_7.1 [concrete = constants.%int_0.336] +// CHECK:STDOUT: %.loc5_7.3: %struct_type.discriminant = struct_literal (%.loc5_7.2) [concrete = constants.%struct.b15] +// CHECK:STDOUT: %impl.elem0.loc5_7.2: %.594 = impl_witness_access constants.%Copy.impl_witness.f92, element0 [concrete = constants.%UInt.as.Copy.impl.Op.4d1] +// CHECK:STDOUT: %bound_method.loc5_7.3: = bound_method %.loc5_7.2, %impl.elem0.loc5_7.2 [concrete = constants.%UInt.as.Copy.impl.Op.bound.c6b] // CHECK:STDOUT: %specific_fn.loc5_7.2: = specific_function %impl.elem0.loc5_7.2, @UInt.as.Copy.impl.Op(constants.%int_2.ecc) [concrete = constants.%UInt.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc5_7.4: = bound_method %.loc5_7.2, %specific_fn.loc5_7.2 [concrete = constants.%bound_method.56e] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.call.loc5: init %u2 = call %bound_method.loc5_7.4(%.loc5_7.2) [concrete = constants.%int_0.59e] +// CHECK:STDOUT: %bound_method.loc5_7.4: = bound_method %.loc5_7.2, %specific_fn.loc5_7.2 [concrete = constants.%bound_method.645] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.call.loc5: init %u2 = call %bound_method.loc5_7.4(%.loc5_7.2) [concrete = constants.%int_0.336] // CHECK:STDOUT: %.loc5_7.4: ref %Ordering = temporary_storage // CHECK:STDOUT: %.loc5_7.5: ref %u2 = class_element_access %.loc5_7.4, element0 -// CHECK:STDOUT: %.loc5_7.6: init %u2 to %.loc5_7.5 = in_place_init %UInt.as.Copy.impl.Op.call.loc5 [concrete = constants.%int_0.59e] -// CHECK:STDOUT: %.loc5_7.7: init %Ordering to %.loc5_7.4 = class_init (%.loc5_7.6) [concrete = constants.%Ordering.val.6b0] -// CHECK:STDOUT: %.loc5_7.8: init %Ordering = converted %.loc5_7.3, %.loc5_7.7 [concrete = constants.%Ordering.val.6b0] -// CHECK:STDOUT: %.loc5_7.9: ref %Ordering = temporary %.loc5_7.4, %.loc5_7.8 [concrete = constants.%.864] -// CHECK:STDOUT: %.loc5_7.10: %Ordering = acquire_value %.loc5_7.9 [concrete = constants.%Ordering.val.6b0] +// CHECK:STDOUT: %.loc5_7.6: init %u2 to %.loc5_7.5 = in_place_init %UInt.as.Copy.impl.Op.call.loc5 [concrete = constants.%int_0.336] +// CHECK:STDOUT: %.loc5_7.7: init %Ordering to %.loc5_7.4 = class_init (%.loc5_7.6) [concrete = constants.%Ordering.val.236] +// CHECK:STDOUT: %.loc5_7.8: init %Ordering = converted %.loc5_7.3, %.loc5_7.7 [concrete = constants.%Ordering.val.236] +// CHECK:STDOUT: %.loc5_7.9: ref %Ordering = temporary %.loc5_7.4, %.loc5_7.8 [concrete = constants.%.156] +// CHECK:STDOUT: %.loc5_7.10: %Ordering = acquire_value %.loc5_7.9 [concrete = constants.%Ordering.val.236] // CHECK:STDOUT: %Less: %Ordering = value_binding Less, %.loc5_7.10 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc6_13.1: %.e81 = impl_witness_access constants.%ImplicitAs.impl_witness.2ae, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.153] -// CHECK:STDOUT: %bound_method.loc6_13.1: = bound_method %int_1, %impl.elem0.loc6_13.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.00c] +// CHECK:STDOUT: %impl.elem0.loc6_13.1: %.66c = impl_witness_access constants.%ImplicitAs.impl_witness.e93, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.409] +// CHECK:STDOUT: %bound_method.loc6_13.1: = bound_method %int_1, %impl.elem0.loc6_13.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.48e] // CHECK:STDOUT: %specific_fn.loc6_13.1: = specific_function %impl.elem0.loc6_13.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_2.ecc) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_13.2: = bound_method %int_1, %specific_fn.loc6_13.1 [concrete = constants.%bound_method.337] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %u2 = call %bound_method.loc6_13.2(%int_1) [concrete = constants.%int_1.b2e] -// CHECK:STDOUT: %.loc6_13.1: %u2 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%int_1.b2e] -// CHECK:STDOUT: %.loc6_13.2: %u2 = converted %int_1, %.loc6_13.1 [concrete = constants.%int_1.b2e] -// CHECK:STDOUT: %.loc6_13.3: %struct_type.discriminant = struct_literal (%.loc6_13.2) [concrete = constants.%struct.f89] -// CHECK:STDOUT: %impl.elem0.loc6_13.2: %.58f = impl_witness_access constants.%Copy.impl_witness.60d, element0 [concrete = constants.%UInt.as.Copy.impl.Op.2f2] -// CHECK:STDOUT: %bound_method.loc6_13.3: = bound_method %.loc6_13.2, %impl.elem0.loc6_13.2 [concrete = constants.%UInt.as.Copy.impl.Op.bound.aa3] +// CHECK:STDOUT: %bound_method.loc6_13.2: = bound_method %int_1, %specific_fn.loc6_13.1 [concrete = constants.%bound_method.0f5] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %u2 = call %bound_method.loc6_13.2(%int_1) [concrete = constants.%int_1.508] +// CHECK:STDOUT: %.loc6_13.1: %u2 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%int_1.508] +// CHECK:STDOUT: %.loc6_13.2: %u2 = converted %int_1, %.loc6_13.1 [concrete = constants.%int_1.508] +// CHECK:STDOUT: %.loc6_13.3: %struct_type.discriminant = struct_literal (%.loc6_13.2) [concrete = constants.%struct.2cb] +// CHECK:STDOUT: %impl.elem0.loc6_13.2: %.594 = impl_witness_access constants.%Copy.impl_witness.f92, element0 [concrete = constants.%UInt.as.Copy.impl.Op.4d1] +// CHECK:STDOUT: %bound_method.loc6_13.3: = bound_method %.loc6_13.2, %impl.elem0.loc6_13.2 [concrete = constants.%UInt.as.Copy.impl.Op.bound.1e1] // CHECK:STDOUT: %specific_fn.loc6_13.2: = specific_function %impl.elem0.loc6_13.2, @UInt.as.Copy.impl.Op(constants.%int_2.ecc) [concrete = constants.%UInt.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_13.4: = bound_method %.loc6_13.2, %specific_fn.loc6_13.2 [concrete = constants.%bound_method.187] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.call.loc6: init %u2 = call %bound_method.loc6_13.4(%.loc6_13.2) [concrete = constants.%int_1.b2e] +// CHECK:STDOUT: %bound_method.loc6_13.4: = bound_method %.loc6_13.2, %specific_fn.loc6_13.2 [concrete = constants.%bound_method.373] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.call.loc6: init %u2 = call %bound_method.loc6_13.4(%.loc6_13.2) [concrete = constants.%int_1.508] // CHECK:STDOUT: %.loc6_13.4: ref %Ordering = temporary_storage // CHECK:STDOUT: %.loc6_13.5: ref %u2 = class_element_access %.loc6_13.4, element0 -// CHECK:STDOUT: %.loc6_13.6: init %u2 to %.loc6_13.5 = in_place_init %UInt.as.Copy.impl.Op.call.loc6 [concrete = constants.%int_1.b2e] -// CHECK:STDOUT: %.loc6_13.7: init %Ordering to %.loc6_13.4 = class_init (%.loc6_13.6) [concrete = constants.%Ordering.val.82c] -// CHECK:STDOUT: %.loc6_13.8: init %Ordering = converted %.loc6_13.3, %.loc6_13.7 [concrete = constants.%Ordering.val.82c] -// CHECK:STDOUT: %.loc6_13.9: ref %Ordering = temporary %.loc6_13.4, %.loc6_13.8 [concrete = constants.%.3d5] -// CHECK:STDOUT: %.loc6_13.10: %Ordering = acquire_value %.loc6_13.9 [concrete = constants.%Ordering.val.82c] +// CHECK:STDOUT: %.loc6_13.6: init %u2 to %.loc6_13.5 = in_place_init %UInt.as.Copy.impl.Op.call.loc6 [concrete = constants.%int_1.508] +// CHECK:STDOUT: %.loc6_13.7: init %Ordering to %.loc6_13.4 = class_init (%.loc6_13.6) [concrete = constants.%Ordering.val.4d4] +// CHECK:STDOUT: %.loc6_13.8: init %Ordering = converted %.loc6_13.3, %.loc6_13.7 [concrete = constants.%Ordering.val.4d4] +// CHECK:STDOUT: %.loc6_13.9: ref %Ordering = temporary %.loc6_13.4, %.loc6_13.8 [concrete = constants.%.ce0] +// CHECK:STDOUT: %.loc6_13.10: %Ordering = acquire_value %.loc6_13.9 [concrete = constants.%Ordering.val.4d4] // CHECK:STDOUT: %Equivalent: %Ordering = value_binding Equivalent, %.loc6_13.10 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc7_10.1: %.e81 = impl_witness_access constants.%ImplicitAs.impl_witness.2ae, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.153] -// CHECK:STDOUT: %bound_method.loc7_10.1: = bound_method %int_2, %impl.elem0.loc7_10.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.623] +// CHECK:STDOUT: %impl.elem0.loc7_10.1: %.66c = impl_witness_access constants.%ImplicitAs.impl_witness.e93, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.409] +// CHECK:STDOUT: %bound_method.loc7_10.1: = bound_method %int_2, %impl.elem0.loc7_10.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.6c9] // CHECK:STDOUT: %specific_fn.loc7_10.1: = specific_function %impl.elem0.loc7_10.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_2.ecc) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_10.2: = bound_method %int_2, %specific_fn.loc7_10.1 [concrete = constants.%bound_method.139] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %u2 = call %bound_method.loc7_10.2(%int_2) [concrete = constants.%int_2.2e7] -// CHECK:STDOUT: %.loc7_10.1: %u2 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%int_2.2e7] -// CHECK:STDOUT: %.loc7_10.2: %u2 = converted %int_2, %.loc7_10.1 [concrete = constants.%int_2.2e7] -// CHECK:STDOUT: %.loc7_10.3: %struct_type.discriminant = struct_literal (%.loc7_10.2) [concrete = constants.%struct.2aa] -// CHECK:STDOUT: %impl.elem0.loc7_10.2: %.58f = impl_witness_access constants.%Copy.impl_witness.60d, element0 [concrete = constants.%UInt.as.Copy.impl.Op.2f2] -// CHECK:STDOUT: %bound_method.loc7_10.3: = bound_method %.loc7_10.2, %impl.elem0.loc7_10.2 [concrete = constants.%UInt.as.Copy.impl.Op.bound.dd4] +// CHECK:STDOUT: %bound_method.loc7_10.2: = bound_method %int_2, %specific_fn.loc7_10.1 [concrete = constants.%bound_method.135] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %u2 = call %bound_method.loc7_10.2(%int_2) [concrete = constants.%int_2.996] +// CHECK:STDOUT: %.loc7_10.1: %u2 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%int_2.996] +// CHECK:STDOUT: %.loc7_10.2: %u2 = converted %int_2, %.loc7_10.1 [concrete = constants.%int_2.996] +// CHECK:STDOUT: %.loc7_10.3: %struct_type.discriminant = struct_literal (%.loc7_10.2) [concrete = constants.%struct.40a] +// CHECK:STDOUT: %impl.elem0.loc7_10.2: %.594 = impl_witness_access constants.%Copy.impl_witness.f92, element0 [concrete = constants.%UInt.as.Copy.impl.Op.4d1] +// CHECK:STDOUT: %bound_method.loc7_10.3: = bound_method %.loc7_10.2, %impl.elem0.loc7_10.2 [concrete = constants.%UInt.as.Copy.impl.Op.bound.424] // CHECK:STDOUT: %specific_fn.loc7_10.2: = specific_function %impl.elem0.loc7_10.2, @UInt.as.Copy.impl.Op(constants.%int_2.ecc) [concrete = constants.%UInt.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_10.4: = bound_method %.loc7_10.2, %specific_fn.loc7_10.2 [concrete = constants.%bound_method.f03] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.call.loc7: init %u2 = call %bound_method.loc7_10.4(%.loc7_10.2) [concrete = constants.%int_2.2e7] +// CHECK:STDOUT: %bound_method.loc7_10.4: = bound_method %.loc7_10.2, %specific_fn.loc7_10.2 [concrete = constants.%bound_method.f90] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.call.loc7: init %u2 = call %bound_method.loc7_10.4(%.loc7_10.2) [concrete = constants.%int_2.996] // CHECK:STDOUT: %.loc7_10.4: ref %Ordering = temporary_storage // CHECK:STDOUT: %.loc7_10.5: ref %u2 = class_element_access %.loc7_10.4, element0 -// CHECK:STDOUT: %.loc7_10.6: init %u2 to %.loc7_10.5 = in_place_init %UInt.as.Copy.impl.Op.call.loc7 [concrete = constants.%int_2.2e7] -// CHECK:STDOUT: %.loc7_10.7: init %Ordering to %.loc7_10.4 = class_init (%.loc7_10.6) [concrete = constants.%Ordering.val.3c2] -// CHECK:STDOUT: %.loc7_10.8: init %Ordering = converted %.loc7_10.3, %.loc7_10.7 [concrete = constants.%Ordering.val.3c2] -// CHECK:STDOUT: %.loc7_10.9: ref %Ordering = temporary %.loc7_10.4, %.loc7_10.8 [concrete = constants.%.164] -// CHECK:STDOUT: %.loc7_10.10: %Ordering = acquire_value %.loc7_10.9 [concrete = constants.%Ordering.val.3c2] +// CHECK:STDOUT: %.loc7_10.6: init %u2 to %.loc7_10.5 = in_place_init %UInt.as.Copy.impl.Op.call.loc7 [concrete = constants.%int_2.996] +// CHECK:STDOUT: %.loc7_10.7: init %Ordering to %.loc7_10.4 = class_init (%.loc7_10.6) [concrete = constants.%Ordering.val.fca] +// CHECK:STDOUT: %.loc7_10.8: init %Ordering = converted %.loc7_10.3, %.loc7_10.7 [concrete = constants.%Ordering.val.fca] +// CHECK:STDOUT: %.loc7_10.9: ref %Ordering = temporary %.loc7_10.4, %.loc7_10.8 [concrete = constants.%.267] +// CHECK:STDOUT: %.loc7_10.10: %Ordering = acquire_value %.loc7_10.9 [concrete = constants.%Ordering.val.fca] // CHECK:STDOUT: %Greater: %Ordering = value_binding Greater, %.loc7_10.10 // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc9_1.1: %.e81 = impl_witness_access constants.%ImplicitAs.impl_witness.2ae, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.153] -// CHECK:STDOUT: %bound_method.loc9_1.1: = bound_method %int_3, %impl.elem0.loc9_1.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.23e] +// CHECK:STDOUT: %impl.elem0.loc9_1.1: %.66c = impl_witness_access constants.%ImplicitAs.impl_witness.e93, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.409] +// CHECK:STDOUT: %bound_method.loc9_1.1: = bound_method %int_3, %impl.elem0.loc9_1.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.0d0] // CHECK:STDOUT: %specific_fn.loc9_1.1: = specific_function %impl.elem0.loc9_1.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_2.ecc) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_1.2: = bound_method %int_3, %specific_fn.loc9_1.1 [concrete = constants.%bound_method.5aa] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %u2 = call %bound_method.loc9_1.2(%int_3) [concrete = constants.%int_3.14f] -// CHECK:STDOUT: %.loc9_1.1: %u2 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_3.14f] -// CHECK:STDOUT: %.loc9_1.2: %u2 = converted %int_3, %.loc9_1.1 [concrete = constants.%int_3.14f] -// CHECK:STDOUT: %.loc9_1.3: %struct_type.discriminant = struct_literal (%.loc9_1.2) [concrete = constants.%struct.6c3] -// CHECK:STDOUT: %impl.elem0.loc9_1.2: %.58f = impl_witness_access constants.%Copy.impl_witness.60d, element0 [concrete = constants.%UInt.as.Copy.impl.Op.2f2] -// CHECK:STDOUT: %bound_method.loc9_1.3: = bound_method %.loc9_1.2, %impl.elem0.loc9_1.2 [concrete = constants.%UInt.as.Copy.impl.Op.bound.fd5] +// CHECK:STDOUT: %bound_method.loc9_1.2: = bound_method %int_3, %specific_fn.loc9_1.1 [concrete = constants.%bound_method.f45] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %u2 = call %bound_method.loc9_1.2(%int_3) [concrete = constants.%int_3.184] +// CHECK:STDOUT: %.loc9_1.1: %u2 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_3.184] +// CHECK:STDOUT: %.loc9_1.2: %u2 = converted %int_3, %.loc9_1.1 [concrete = constants.%int_3.184] +// CHECK:STDOUT: %.loc9_1.3: %struct_type.discriminant = struct_literal (%.loc9_1.2) [concrete = constants.%struct.376] +// CHECK:STDOUT: %impl.elem0.loc9_1.2: %.594 = impl_witness_access constants.%Copy.impl_witness.f92, element0 [concrete = constants.%UInt.as.Copy.impl.Op.4d1] +// CHECK:STDOUT: %bound_method.loc9_1.3: = bound_method %.loc9_1.2, %impl.elem0.loc9_1.2 [concrete = constants.%UInt.as.Copy.impl.Op.bound.f14] // CHECK:STDOUT: %specific_fn.loc9_1.2: = specific_function %impl.elem0.loc9_1.2, @UInt.as.Copy.impl.Op(constants.%int_2.ecc) [concrete = constants.%UInt.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_1.4: = bound_method %.loc9_1.2, %specific_fn.loc9_1.2 [concrete = constants.%bound_method.285] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.call.loc9: init %u2 = call %bound_method.loc9_1.4(%.loc9_1.2) [concrete = constants.%int_3.14f] +// CHECK:STDOUT: %bound_method.loc9_1.4: = bound_method %.loc9_1.2, %specific_fn.loc9_1.2 [concrete = constants.%bound_method.f04] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.call.loc9: init %u2 = call %bound_method.loc9_1.4(%.loc9_1.2) [concrete = constants.%int_3.184] // CHECK:STDOUT: %.loc9_1.4: ref %Ordering = temporary_storage // CHECK:STDOUT: %.loc9_1.5: ref %u2 = class_element_access %.loc9_1.4, element0 -// CHECK:STDOUT: %.loc9_1.6: init %u2 to %.loc9_1.5 = in_place_init %UInt.as.Copy.impl.Op.call.loc9 [concrete = constants.%int_3.14f] -// CHECK:STDOUT: %.loc9_1.7: init %Ordering to %.loc9_1.4 = class_init (%.loc9_1.6) [concrete = constants.%Ordering.val.4db] -// CHECK:STDOUT: %.loc9_1.8: init %Ordering = converted %.loc9_1.3, %.loc9_1.7 [concrete = constants.%Ordering.val.4db] -// CHECK:STDOUT: %.loc9_1.9: ref %Ordering = temporary %.loc9_1.4, %.loc9_1.8 [concrete = constants.%.185] -// CHECK:STDOUT: %.loc9_1.10: %Ordering = acquire_value %.loc9_1.9 [concrete = constants.%Ordering.val.4db] +// CHECK:STDOUT: %.loc9_1.6: init %u2 to %.loc9_1.5 = in_place_init %UInt.as.Copy.impl.Op.call.loc9 [concrete = constants.%int_3.184] +// CHECK:STDOUT: %.loc9_1.7: init %Ordering to %.loc9_1.4 = class_init (%.loc9_1.6) [concrete = constants.%Ordering.val.3b4] +// CHECK:STDOUT: %.loc9_1.8: init %Ordering = converted %.loc9_1.3, %.loc9_1.7 [concrete = constants.%Ordering.val.3b4] +// CHECK:STDOUT: %.loc9_1.9: ref %Ordering = temporary %.loc9_1.4, %.loc9_1.8 [concrete = constants.%.a83] +// CHECK:STDOUT: %.loc9_1.10: %Ordering = acquire_value %.loc9_1.9 [concrete = constants.%Ordering.val.3b4] // CHECK:STDOUT: %Incomparable: %Ordering = value_binding Incomparable, %.loc9_1.10 // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: diff --git a/toolchain/check/testdata/choice/generic.carbon b/toolchain/check/testdata/choice/generic.carbon index 0fc4661e7aac..1d5c6351059a 100644 --- a/toolchain/check/testdata/choice/generic.carbon +++ b/toolchain/check/testdata/choice/generic.carbon @@ -33,7 +33,7 @@ choice Always(T:! type) { // CHECK:STDOUT: %struct: %struct_type.discriminant = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %Always [symbolic] // CHECK:STDOUT: %Always.val: %Always = struct_value (%empty_tuple) [symbolic] -// CHECK:STDOUT: %.b8b: ref %Always = temporary invalid, %Always.val [symbolic] +// CHECK:STDOUT: %.4eb: ref %Always = temporary invalid, %Always.val [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -55,7 +55,7 @@ choice Always(T:! type) { // CHECK:STDOUT: %Always: type = class_type @Always, @Always(%T.loc14_16.1) [symbolic = %Always (constants.%Always)] // CHECK:STDOUT: %require_complete: = require_complete_type %Always [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %Always.val: @Always.%Always (%Always) = struct_value (constants.%empty_tuple) [symbolic = %Always.val (constants.%Always.val)] -// CHECK:STDOUT: %.loc16_1.13: ref @Always.%Always (%Always) = temporary invalid, %Always.val [symbolic = %.loc16_1.13 (constants.%.b8b)] +// CHECK:STDOUT: %.loc16_1.13: ref @Always.%Always (%Always) = temporary invalid, %Always.val [symbolic = %.loc16_1.13 (constants.%.4eb)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.discriminant [concrete = constants.%complete_type] @@ -70,7 +70,7 @@ choice Always(T:! type) { // CHECK:STDOUT: %.loc16_1.8: init %empty_tuple.type to %.loc16_1.5 = in_place_init %.loc16_1.7 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc16_1.9: init @Always.%Always (%Always) to %.loc16_1.4 = class_init (%.loc16_1.8) [symbolic = %Always.val (constants.%Always.val)] // CHECK:STDOUT: %.loc16_1.10: init @Always.%Always (%Always) = converted %.loc16_1.3, %.loc16_1.9 [symbolic = %Always.val (constants.%Always.val)] -// CHECK:STDOUT: %.loc16_1.11: ref @Always.%Always (%Always) = temporary %.loc16_1.4, %.loc16_1.10 [symbolic = %.loc16_1.13 (constants.%.b8b)] +// CHECK:STDOUT: %.loc16_1.11: ref @Always.%Always (%Always) = temporary %.loc16_1.4, %.loc16_1.10 [symbolic = %.loc16_1.13 (constants.%.4eb)] // CHECK:STDOUT: %.loc16_1.12: @Always.%Always (%Always) = acquire_value %.loc16_1.11 [symbolic = %Always.val (constants.%Always.val)] // CHECK:STDOUT: %Sunny: @Always.%Always (%Always) = value_binding Sunny, %.loc16_1.12 // CHECK:STDOUT: complete_type_witness = %complete_type diff --git a/toolchain/check/testdata/class/abstract/abstract.carbon b/toolchain/check/testdata/class/abstract/abstract.carbon index 744c2ca45ca0..a7d96f0aefee 100644 --- a/toolchain/check/testdata/class/abstract/abstract.carbon +++ b/toolchain/check/testdata/class/abstract/abstract.carbon @@ -549,19 +549,19 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] -// CHECK:STDOUT: %Derived.elem.cdb: type = unbound_element_type %Derived, %Abstract [concrete] +// CHECK:STDOUT: %Derived.elem.ce6: type = unbound_element_type %Derived, %Abstract [concrete] // CHECK:STDOUT: %empty_struct.a40: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %Derived.elem.11a: type = unbound_element_type %Derived, %empty_struct_type [concrete] -// CHECK:STDOUT: %struct_type.base.d.ea4: type = struct_type {.base: %Abstract, .d: %empty_struct_type} [concrete] -// CHECK:STDOUT: %complete_type.f69: = complete_type_witness %struct_type.base.d.ea4 [concrete] -// CHECK:STDOUT: %.a36: Core.Form = init_form %Derived [concrete] -// CHECK:STDOUT: %pattern_type.cd3: type = pattern_type %Derived [concrete] +// CHECK:STDOUT: %Derived.elem.1ef: type = unbound_element_type %Derived, %empty_struct_type [concrete] +// CHECK:STDOUT: %struct_type.base.d.008: type = struct_type {.base: %Abstract, .d: %empty_struct_type} [concrete] +// CHECK:STDOUT: %complete_type.3c7: = complete_type_witness %struct_type.base.d.008 [concrete] +// CHECK:STDOUT: %.3c6: Core.Form = init_form %Derived [concrete] +// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete] // CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete] // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.base.d.e0f: type = struct_type {.base: %empty_struct_type, .d: %empty_struct_type} [concrete] // CHECK:STDOUT: %struct: %struct_type.base.d.e0f = struct_value (%empty_struct.a40, %empty_struct.a40) [concrete] -// CHECK:STDOUT: %.e7f: type = partial_type %Abstract [concrete] -// CHECK:STDOUT: %empty_struct.41d: %.e7f = struct_value () [concrete] +// CHECK:STDOUT: %.79f: type = partial_type %Abstract [concrete] +// CHECK:STDOUT: %empty_struct.5e0: %.79f = struct_value () [concrete] // CHECK:STDOUT: %Abstract.val: %Abstract = struct_value () [concrete] // CHECK:STDOUT: %Derived.val: %Derived = struct_value (%Abstract.val, %empty_struct.a40) [concrete] // CHECK:STDOUT: } @@ -584,11 +584,11 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %Abstract.decl: type = class_decl @Abstract [concrete = constants.%Abstract] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.cd3 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.cd3 = return_slot_pattern %return.param_patt, %Derived.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.746 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.746 = return_slot_pattern %return.param_patt, %Derived.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] -// CHECK:STDOUT: %.loc12: Core.Form = init_form %Derived.ref [concrete = constants.%.a36] +// CHECK:STDOUT: %.loc12: Core.Form = init_form %Derived.ref [concrete = constants.%.3c6] // CHECK:STDOUT: %return.param: ref %Derived = out_param call_param0 // CHECK:STDOUT: %return: ref %Derived = return_slot %return.param // CHECK:STDOUT: } @@ -604,9 +604,9 @@ fn CallReturnAbstract() { // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract] -// CHECK:STDOUT: %.loc7: %Derived.elem.cdb = base_decl %Abstract.ref, element0 [concrete] -// CHECK:STDOUT: %.loc9: %Derived.elem.11a = field_decl d, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d.ea4 [concrete = constants.%complete_type.f69] +// CHECK:STDOUT: %.loc7: %Derived.elem.ce6 = base_decl %Abstract.ref, element0 [concrete] +// CHECK:STDOUT: %.loc9: %Derived.elem.1ef = field_decl d, element1 [concrete] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d.008 [concrete = constants.%complete_type.3c7] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -622,9 +622,9 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %.loc13_20.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct.a40] // CHECK:STDOUT: %.loc13_29.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct.a40] // CHECK:STDOUT: %.loc13_30.1: %struct_type.base.d.e0f = struct_literal (%.loc13_20.1, %.loc13_29.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc13_30.2: ref %.e7f = class_element_access %return.param, element0 -// CHECK:STDOUT: %.loc13_20.2: init %.e7f to %.loc13_30.2 = class_init () [concrete = constants.%empty_struct.41d] -// CHECK:STDOUT: %.loc13_30.3: init %.e7f = converted %.loc13_20.1, %.loc13_20.2 [concrete = constants.%empty_struct.41d] +// CHECK:STDOUT: %.loc13_30.2: ref %.79f = class_element_access %return.param, element0 +// CHECK:STDOUT: %.loc13_20.2: init %.79f to %.loc13_30.2 = class_init () [concrete = constants.%empty_struct.5e0] +// CHECK:STDOUT: %.loc13_30.3: init %.79f = converted %.loc13_20.1, %.loc13_20.2 [concrete = constants.%empty_struct.5e0] // CHECK:STDOUT: %.loc13_30.4: init %Abstract = as_compatible %.loc13_30.3 [concrete = constants.%Abstract.val] // CHECK:STDOUT: %.loc13_30.5: ref %empty_struct_type = class_element_access %return.param, element1 // CHECK:STDOUT: %.loc13_29.2: init %empty_struct_type to %.loc13_30.5 = struct_init () [concrete = constants.%empty_struct.a40] @@ -642,12 +642,12 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] -// CHECK:STDOUT: %Derived.elem.cdb: type = unbound_element_type %Derived, %Abstract [concrete] -// CHECK:STDOUT: %Derived.elem.11a: type = unbound_element_type %Derived, %empty_struct_type [concrete] +// CHECK:STDOUT: %Derived.elem.ce6: type = unbound_element_type %Derived, %Abstract [concrete] +// CHECK:STDOUT: %Derived.elem.1ef: type = unbound_element_type %Derived, %empty_struct_type [concrete] // CHECK:STDOUT: %struct_type.base.d: type = struct_type {.base: %Abstract, .d: %empty_struct_type} [concrete] -// CHECK:STDOUT: %complete_type.f69: = complete_type_witness %struct_type.base.d [concrete] -// CHECK:STDOUT: %pattern_type.b21: type = pattern_type %Abstract [concrete] -// CHECK:STDOUT: %.f2a: Core.Form = init_form %Abstract [concrete] +// CHECK:STDOUT: %complete_type.3c7: = complete_type_witness %struct_type.base.d [concrete] +// CHECK:STDOUT: %pattern_type.169: type = pattern_type %Abstract [concrete] +// CHECK:STDOUT: %.749: Core.Form = init_form %Abstract [concrete] // CHECK:STDOUT: %Return.type: type = fn_type @Return [concrete] // CHECK:STDOUT: %Return: %Return.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -670,13 +670,13 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %Abstract.decl: type = class_decl @Abstract [concrete = constants.%Abstract] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Return.decl: %Return.type = fn_decl @Return [concrete = constants.%Return] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.b21 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.b21 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.b21 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.b21 = return_slot_pattern %return.param_patt, %Abstract.ref.loc19_27 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.169 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.169 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.169 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.169 = return_slot_pattern %return.param_patt, %Abstract.ref.loc19_27 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Abstract.ref.loc19_27: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract] -// CHECK:STDOUT: %.loc19: Core.Form = init_form %Abstract.ref.loc19_27 [concrete = constants.%.f2a] +// CHECK:STDOUT: %.loc19: Core.Form = init_form %Abstract.ref.loc19_27 [concrete = constants.%.749] // CHECK:STDOUT: %a.param: %Abstract = value_param call_param0 // CHECK:STDOUT: %Abstract.ref.loc19_14: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract] // CHECK:STDOUT: %a: %Abstract = value_binding a, %a.param @@ -695,9 +695,9 @@ fn CallReturnAbstract() { // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract] -// CHECK:STDOUT: %.loc7: %Derived.elem.cdb = base_decl %Abstract.ref, element0 [concrete] -// CHECK:STDOUT: %.loc9: %Derived.elem.11a = field_decl d, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d [concrete = constants.%complete_type.f69] +// CHECK:STDOUT: %.loc7: %Derived.elem.ce6 = base_decl %Abstract.ref, element0 [concrete] +// CHECK:STDOUT: %.loc9: %Derived.elem.1ef = field_decl d, element1 [concrete] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d [concrete = constants.%complete_type.3c7] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -725,11 +725,11 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %struct_type.a.225: type = struct_type {.a: %empty_struct_type} [concrete] // CHECK:STDOUT: %complete_type.8c6: = complete_type_witness %struct_type.a.225 [concrete] // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] -// CHECK:STDOUT: %Derived.elem.cdb: type = unbound_element_type %Derived, %Abstract [concrete] -// CHECK:STDOUT: %Derived.elem.11a: type = unbound_element_type %Derived, %empty_struct_type [concrete] -// CHECK:STDOUT: %struct_type.base.d.ea4: type = struct_type {.base: %Abstract, .d: %empty_struct_type} [concrete] -// CHECK:STDOUT: %complete_type.f69: = complete_type_witness %struct_type.base.d.ea4 [concrete] -// CHECK:STDOUT: %pattern_type.cd3: type = pattern_type %Derived [concrete] +// CHECK:STDOUT: %Derived.elem.ce6: type = unbound_element_type %Derived, %Abstract [concrete] +// CHECK:STDOUT: %Derived.elem.1ef: type = unbound_element_type %Derived, %empty_struct_type [concrete] +// CHECK:STDOUT: %struct_type.base.d.008: type = struct_type {.base: %Abstract, .d: %empty_struct_type} [concrete] +// CHECK:STDOUT: %complete_type.3c7: = complete_type_witness %struct_type.base.d.008 [concrete] +// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete] // CHECK:STDOUT: %.469: Core.Form = init_form %empty_struct_type [concrete] // CHECK:STDOUT: %Access.type: type = fn_type @Access [concrete] // CHECK:STDOUT: %Access: %Access.type = struct_value () [concrete] @@ -753,8 +753,8 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %Abstract.decl: type = class_decl @Abstract [concrete = constants.%Abstract] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] { -// CHECK:STDOUT: %d.param_patt: %pattern_type.cd3 = value_param_pattern [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.cd3 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.746 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.746 = at_binding_pattern d, %d.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern %return.param_patt, %.loc13_27.2 [concrete] // CHECK:STDOUT: } { @@ -781,9 +781,9 @@ fn CallReturnAbstract() { // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract] -// CHECK:STDOUT: %.loc8: %Derived.elem.cdb = base_decl %Abstract.ref, element0 [concrete] -// CHECK:STDOUT: %.loc10: %Derived.elem.11a = field_decl d, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d.ea4 [concrete = constants.%complete_type.f69] +// CHECK:STDOUT: %.loc8: %Derived.elem.ce6 = base_decl %Abstract.ref, element0 [concrete] +// CHECK:STDOUT: %.loc10: %Derived.elem.1ef = field_decl d, element1 [concrete] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d.008 [concrete = constants.%complete_type.3c7] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -797,7 +797,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: fn @Access(%d.param: %Derived) -> out %return.param: %empty_struct_type { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %d.ref: %Derived = name_ref d, %d -// CHECK:STDOUT: %base.ref: %Derived.elem.cdb = name_ref base, @Derived.%.loc8 [concrete = @Derived.%.loc8] +// CHECK:STDOUT: %base.ref: %Derived.elem.ce6 = name_ref base, @Derived.%.loc8 [concrete = @Derived.%.loc8] // CHECK:STDOUT: %.loc21: ref %Abstract = class_element_access %d.ref, element0 // CHECK:STDOUT: %a.ref: = name_ref a, [concrete = ] // CHECK:STDOUT: return @@ -860,16 +860,16 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] // CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Abstract [concrete] -// CHECK:STDOUT: %struct_type.base.754: type = struct_type {.base: %Abstract} [concrete] -// CHECK:STDOUT: %complete_type.521: = complete_type_witness %struct_type.base.754 [concrete] +// CHECK:STDOUT: %struct_type.base.285: type = struct_type {.base: %Abstract} [concrete] +// CHECK:STDOUT: %complete_type.7ce: = complete_type_witness %struct_type.base.285 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %Abstract [concrete] // CHECK:STDOUT: %empty_struct.a40: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.base.f5e: type = struct_type {.base: %empty_struct_type} [concrete] // CHECK:STDOUT: %struct: %struct_type.base.f5e = struct_value (%empty_struct.a40) [concrete] -// CHECK:STDOUT: %.e7f: type = partial_type %Abstract [concrete] -// CHECK:STDOUT: %empty_struct.41d: %.e7f = struct_value () [concrete] +// CHECK:STDOUT: %.79f: type = partial_type %Abstract [concrete] +// CHECK:STDOUT: %empty_struct.5e0: %.79f = struct_value () [concrete] // CHECK:STDOUT: %Abstract.val: %Abstract = struct_value () [concrete] // CHECK:STDOUT: %Derived.val: %Derived = struct_value (%Abstract.val) [concrete] // CHECK:STDOUT: } @@ -905,7 +905,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract] // CHECK:STDOUT: %.loc7: %Derived.elem = base_decl %Abstract.ref, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.754 [concrete = constants.%complete_type.521] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.285 [concrete = constants.%complete_type.7ce] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -924,9 +924,9 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %.loc22_39.1: %struct_type.base.f5e = struct_literal (%.loc22_38.1) [concrete = constants.%struct] // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] // CHECK:STDOUT: %.loc22_39.2: ref %Derived = temporary_storage -// CHECK:STDOUT: %.loc22_39.3: ref %.e7f = class_element_access %.loc22_39.2, element0 -// CHECK:STDOUT: %.loc22_38.2: init %.e7f to %.loc22_39.3 = class_init () [concrete = constants.%empty_struct.41d] -// CHECK:STDOUT: %.loc22_39.4: init %.e7f = converted %.loc22_38.1, %.loc22_38.2 [concrete = constants.%empty_struct.41d] +// CHECK:STDOUT: %.loc22_39.3: ref %.79f = class_element_access %.loc22_39.2, element0 +// CHECK:STDOUT: %.loc22_38.2: init %.79f to %.loc22_39.3 = class_init () [concrete = constants.%empty_struct.5e0] +// CHECK:STDOUT: %.loc22_39.4: init %.79f = converted %.loc22_38.1, %.loc22_38.2 [concrete = constants.%empty_struct.5e0] // CHECK:STDOUT: %.loc22_39.5: init %Abstract = as_compatible %.loc22_39.4 [concrete = constants.%Abstract.val] // CHECK:STDOUT: %.loc22_39.6: init %Derived to %.loc22_39.2 = class_init (%.loc22_39.5) [concrete = constants.%Derived.val] // CHECK:STDOUT: %.loc22_41: init %Derived = converted %.loc22_39.1, %.loc22_39.6 [concrete = constants.%Derived.val] @@ -941,7 +941,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %Abstract: type = class_type @Abstract [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %.f2a: Core.Form = init_form %Abstract [concrete] +// CHECK:STDOUT: %.749: Core.Form = init_form %Abstract [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %Abstract [concrete] // CHECK:STDOUT: %ReturnAbstract.type: type = fn_type @ReturnAbstract [concrete] // CHECK:STDOUT: %ReturnAbstract: %ReturnAbstract.type = struct_value () [concrete] @@ -970,7 +970,7 @@ fn CallReturnAbstract() { // CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %Abstract.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract] -// CHECK:STDOUT: %.loc6: Core.Form = init_form %Abstract.ref [concrete = constants.%.f2a] +// CHECK:STDOUT: %.loc6: Core.Form = init_form %Abstract.ref [concrete = constants.%.749] // CHECK:STDOUT: %return.param: ref %Abstract = out_param call_param0 // CHECK:STDOUT: %return: ref %Abstract = return_slot %return.param // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/abstract/fail_abstract_in_struct.carbon b/toolchain/check/testdata/class/abstract/fail_abstract_in_struct.carbon index f6484352945b..e73631c56d02 100644 --- a/toolchain/check/testdata/class/abstract/fail_abstract_in_struct.carbon +++ b/toolchain/check/testdata/class/abstract/fail_abstract_in_struct.carbon @@ -165,7 +165,7 @@ var v5: {.m: Abstract}; // CHECK:STDOUT: %Abstract2: type = class_type @Abstract2 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %struct_type.m2.c3a: type = struct_type {.m2: %Abstract2} [concrete] +// CHECK:STDOUT: %struct_type.m2.bb3: type = struct_type {.m2: %Abstract2} [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -179,9 +179,9 @@ var v5: {.m: Abstract}; // CHECK:STDOUT: %v.var_patt: = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref = var %v.var_patt [concrete = ] -// CHECK:STDOUT: %.loc12: type = splice_block %struct_type.m2 [concrete = constants.%struct_type.m2.c3a] { +// CHECK:STDOUT: %.loc12: type = splice_block %struct_type.m2 [concrete = constants.%struct_type.m2.bb3] { // CHECK:STDOUT: %Abstract2.ref: type = name_ref Abstract2, %Abstract2.decl [concrete = constants.%Abstract2] -// CHECK:STDOUT: %struct_type.m2: type = struct_type {.m2: %Abstract2} [concrete = constants.%struct_type.m2.c3a] +// CHECK:STDOUT: %struct_type.m2: type = struct_type {.m2: %Abstract2} [concrete = constants.%struct_type.m2.bb3] // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref = ref_binding v, [concrete = ] // CHECK:STDOUT: } @@ -206,11 +206,11 @@ var v5: {.m: Abstract}; // CHECK:STDOUT: %Abstract3: type = class_type @Abstract3 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.305: type = pattern_type %Abstract3 [concrete] +// CHECK:STDOUT: %pattern_type.457: type = pattern_type %Abstract3 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.m3.3d6: type = struct_type {.m3: %Abstract3} [concrete] -// CHECK:STDOUT: %pattern_type.d3b: type = pattern_type %struct_type.m3.3d6 [concrete] +// CHECK:STDOUT: %struct_type.m3.937: type = struct_type {.m3: %Abstract3} [concrete] +// CHECK:STDOUT: %pattern_type.2be: type = pattern_type %struct_type.m3.937 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -220,8 +220,8 @@ var v5: {.m: Abstract}; // CHECK:STDOUT: } // CHECK:STDOUT: %Abstract3.decl: type = class_decl @Abstract3 [concrete = constants.%Abstract3] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.305 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.305 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.457 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.457 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %Abstract3 = value_param call_param0 // CHECK:STDOUT: %Abstract3.ref.loc6: type = name_ref Abstract3, file.%Abstract3.decl [concrete = constants.%Abstract3] @@ -240,15 +240,15 @@ var v5: {.m: Abstract}; // CHECK:STDOUT: fn @F(%a.param: %Abstract3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %l.patt: %pattern_type.d3b = value_binding_pattern l [concrete] +// CHECK:STDOUT: %l.patt: %pattern_type.2be = value_binding_pattern l [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.ref: %Abstract3 = name_ref a, %a -// CHECK:STDOUT: %.loc14_44: %struct_type.m3.3d6 = struct_literal (%a.ref) -// CHECK:STDOUT: %.loc14_32: type = splice_block %struct_type.m3 [concrete = constants.%struct_type.m3.3d6] { +// CHECK:STDOUT: %.loc14_44: %struct_type.m3.937 = struct_literal (%a.ref) +// CHECK:STDOUT: %.loc14_32: type = splice_block %struct_type.m3 [concrete = constants.%struct_type.m3.937] { // CHECK:STDOUT: %Abstract3.ref.loc14: type = name_ref Abstract3, file.%Abstract3.decl [concrete = constants.%Abstract3] -// CHECK:STDOUT: %struct_type.m3: type = struct_type {.m3: %Abstract3} [concrete = constants.%struct_type.m3.3d6] +// CHECK:STDOUT: %struct_type.m3: type = struct_type {.m3: %Abstract3} [concrete = constants.%struct_type.m3.937] // CHECK:STDOUT: } -// CHECK:STDOUT: %l: %struct_type.m3.3d6 = value_binding l, [concrete = ] +// CHECK:STDOUT: %l: %struct_type.m3.937 = value_binding l, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -259,7 +259,7 @@ var v5: {.m: Abstract}; // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Abstract5: type = class_type @Abstract5 [concrete] -// CHECK:STDOUT: %struct_type.m4.m5.e93: type = struct_type {.m4: %Abstract4, .m5: %Abstract5} [concrete] +// CHECK:STDOUT: %struct_type.m4.m5.5e1: type = struct_type {.m4: %Abstract4, .m5: %Abstract5} [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -275,10 +275,10 @@ var v5: {.m: Abstract}; // CHECK:STDOUT: %v2.var_patt: = var_pattern %v2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v2.var: ref = var %v2.var_patt [concrete = ] -// CHECK:STDOUT: %.loc13: type = splice_block %struct_type.m4.m5 [concrete = constants.%struct_type.m4.m5.e93] { +// CHECK:STDOUT: %.loc13: type = splice_block %struct_type.m4.m5 [concrete = constants.%struct_type.m4.m5.5e1] { // CHECK:STDOUT: %Abstract4.ref: type = name_ref Abstract4, %Abstract4.decl [concrete = constants.%Abstract4] // CHECK:STDOUT: %Abstract5.ref: type = name_ref Abstract5, %Abstract5.decl [concrete = constants.%Abstract5] -// CHECK:STDOUT: %struct_type.m4.m5: type = struct_type {.m4: %Abstract4, .m5: %Abstract5} [concrete = constants.%struct_type.m4.m5.e93] +// CHECK:STDOUT: %struct_type.m4.m5: type = struct_type {.m4: %Abstract4, .m5: %Abstract5} [concrete = constants.%struct_type.m4.m5.5e1] // CHECK:STDOUT: } // CHECK:STDOUT: %v2: ref = ref_binding v2, [concrete = ] // CHECK:STDOUT: } @@ -313,7 +313,7 @@ var v5: {.m: Abstract}; // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %struct_type.m6.c1.19a: type = struct_type {.m6: %Abstract6, .c1: %empty_tuple.type} [concrete] +// CHECK:STDOUT: %struct_type.m6.c1.a63: type = struct_type {.m6: %Abstract6, .c1: %empty_tuple.type} [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -327,11 +327,11 @@ var v5: {.m: Abstract}; // CHECK:STDOUT: %v3.var_patt: = var_pattern %v3.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v3.var: ref = var %v3.var_patt [concrete = ] -// CHECK:STDOUT: %.loc12_33: type = splice_block %struct_type.m6.c1 [concrete = constants.%struct_type.m6.c1.19a] { +// CHECK:STDOUT: %.loc12_33: type = splice_block %struct_type.m6.c1 [concrete = constants.%struct_type.m6.c1.a63] { // CHECK:STDOUT: %Abstract6.ref: type = name_ref Abstract6, %Abstract6.decl [concrete = constants.%Abstract6] // CHECK:STDOUT: %.loc12_32.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc12_32.2: type = converted %.loc12_32.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %struct_type.m6.c1: type = struct_type {.m6: %Abstract6, .c1: %empty_tuple.type} [concrete = constants.%struct_type.m6.c1.19a] +// CHECK:STDOUT: %struct_type.m6.c1: type = struct_type {.m6: %Abstract6, .c1: %empty_tuple.type} [concrete = constants.%struct_type.m6.c1.a63] // CHECK:STDOUT: } // CHECK:STDOUT: %v3: ref = ref_binding v3, [concrete = ] // CHECK:STDOUT: } @@ -358,7 +358,7 @@ var v5: {.m: Abstract}; // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %struct_type.c2.m7.383: type = struct_type {.c2: %empty_tuple.type, .m7: %Abstract7} [concrete] +// CHECK:STDOUT: %struct_type.c2.m7.518: type = struct_type {.c2: %empty_tuple.type, .m7: %Abstract7} [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -372,11 +372,11 @@ var v5: {.m: Abstract}; // CHECK:STDOUT: %v4.var_patt: = var_pattern %v4.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v4.var: ref = var %v4.var_patt [concrete = ] -// CHECK:STDOUT: %.loc12_33: type = splice_block %struct_type.c2.m7 [concrete = constants.%struct_type.c2.m7.383] { +// CHECK:STDOUT: %.loc12_33: type = splice_block %struct_type.c2.m7 [concrete = constants.%struct_type.c2.m7.518] { // CHECK:STDOUT: %.loc12_16.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc12_16.2: type = converted %.loc12_16.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %Abstract7.ref: type = name_ref Abstract7, %Abstract7.decl [concrete = constants.%Abstract7] -// CHECK:STDOUT: %struct_type.c2.m7: type = struct_type {.c2: %empty_tuple.type, .m7: %Abstract7} [concrete = constants.%struct_type.c2.m7.383] +// CHECK:STDOUT: %struct_type.c2.m7: type = struct_type {.c2: %empty_tuple.type, .m7: %Abstract7} [concrete = constants.%struct_type.c2.m7.518] // CHECK:STDOUT: } // CHECK:STDOUT: %v4: ref = ref_binding v4, [concrete = ] // CHECK:STDOUT: } @@ -424,13 +424,13 @@ var v5: {.m: Abstract}; // CHECK:STDOUT: %Abstract: type = class_type @Abstract [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %struct_type.m.b56: type = struct_type {.m: %Abstract} [concrete] +// CHECK:STDOUT: %struct_type.m.b92: type = struct_type {.m: %Abstract} [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Abstract: type = import_ref Main//lib, Abstract, loaded [concrete = constants.%Abstract] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//lib, loc3_26, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.a0b = import_ref Main//lib, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.fe1 = import_ref Main//lib, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -444,9 +444,9 @@ var v5: {.m: Abstract}; // CHECK:STDOUT: %v5.var_patt: = var_pattern %v5.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v5.var: ref = var %v5.var_patt [concrete = ] -// CHECK:STDOUT: %.loc13: type = splice_block %struct_type.m [concrete = constants.%struct_type.m.b56] { +// CHECK:STDOUT: %.loc13: type = splice_block %struct_type.m [concrete = constants.%struct_type.m.b92] { // CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, imports.%Main.Abstract [concrete = constants.%Abstract] -// CHECK:STDOUT: %struct_type.m: type = struct_type {.m: %Abstract} [concrete = constants.%struct_type.m.b56] +// CHECK:STDOUT: %struct_type.m: type = struct_type {.m: %Abstract} [concrete = constants.%struct_type.m.b92] // CHECK:STDOUT: } // CHECK:STDOUT: %v5: ref = ref_binding v5, [concrete = ] // CHECK:STDOUT: } @@ -455,7 +455,7 @@ var v5: {.m: Abstract}; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.a0b +// CHECK:STDOUT: .Self = imports.%Main.import_ref.fe1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/class/abstract/fail_abstract_in_tuple.carbon b/toolchain/check/testdata/class/abstract/fail_abstract_in_tuple.carbon index 84eb98083a13..85620a00f859 100644 --- a/toolchain/check/testdata/class/abstract/fail_abstract_in_tuple.carbon +++ b/toolchain/check/testdata/class/abstract/fail_abstract_in_tuple.carbon @@ -188,7 +188,7 @@ fn Var5() { // CHECK:STDOUT: %Var: %Var.type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.85c = tuple_value (%Abstract2) [concrete] -// CHECK:STDOUT: %tuple.type.9e1: type = tuple_type (%Abstract2) [concrete] +// CHECK:STDOUT: %tuple.type.ea9: type = tuple_type (%Abstract2) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -228,10 +228,10 @@ fn Var5() { // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref = var %v.var_patt [concrete = ] // CHECK:STDOUT: assign %v.var, -// CHECK:STDOUT: %.loc13_28.1: type = splice_block %.loc13_28.3 [concrete = constants.%tuple.type.9e1] { +// CHECK:STDOUT: %.loc13_28.1: type = splice_block %.loc13_28.3 [concrete = constants.%tuple.type.ea9] { // CHECK:STDOUT: %Abstract2.ref: type = name_ref Abstract2, file.%Abstract2.decl [concrete = constants.%Abstract2] // CHECK:STDOUT: %.loc13_28.2: %tuple.type.85c = tuple_literal (%Abstract2.ref) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc13_28.3: type = converted %.loc13_28.2, constants.%tuple.type.9e1 [concrete = constants.%tuple.type.9e1] +// CHECK:STDOUT: %.loc13_28.3: type = converted %.loc13_28.2, constants.%tuple.type.ea9 [concrete = constants.%tuple.type.ea9] // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref = ref_binding v, [concrete = ] // CHECK:STDOUT: return @@ -243,13 +243,13 @@ fn Var5() { // CHECK:STDOUT: %Abstract3: type = class_type @Abstract3 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.305: type = pattern_type %Abstract3 [concrete] +// CHECK:STDOUT: %pattern_type.457: type = pattern_type %Abstract3 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.85c = tuple_value (%Abstract3) [concrete] -// CHECK:STDOUT: %tuple.type.469: type = tuple_type (%Abstract3) [concrete] -// CHECK:STDOUT: %pattern_type.542: type = pattern_type %tuple.type.469 [concrete] +// CHECK:STDOUT: %tuple.type.4cc: type = tuple_type (%Abstract3) [concrete] +// CHECK:STDOUT: %pattern_type.ac0: type = pattern_type %tuple.type.4cc [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -268,8 +268,8 @@ fn Var5() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Abstract3.decl: type = class_decl @Abstract3 [concrete = constants.%Abstract3] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.305 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.305 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.457 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.457 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %Abstract3 = value_param call_param0 // CHECK:STDOUT: %Abstract3.ref.loc6: type = name_ref Abstract3, file.%Abstract3.decl [concrete = constants.%Abstract3] @@ -288,16 +288,16 @@ fn Var5() { // CHECK:STDOUT: fn @F(%a.param: %Abstract3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %l.patt: %pattern_type.542 = value_binding_pattern l [concrete] +// CHECK:STDOUT: %l.patt: %pattern_type.ac0 = value_binding_pattern l [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.ref: %Abstract3 = name_ref a, %a -// CHECK:STDOUT: %.loc14_35: %tuple.type.469 = tuple_literal (%a.ref) -// CHECK:STDOUT: %.loc14_28.1: type = splice_block %.loc14_28.3 [concrete = constants.%tuple.type.469] { +// CHECK:STDOUT: %.loc14_35: %tuple.type.4cc = tuple_literal (%a.ref) +// CHECK:STDOUT: %.loc14_28.1: type = splice_block %.loc14_28.3 [concrete = constants.%tuple.type.4cc] { // CHECK:STDOUT: %Abstract3.ref.loc14: type = name_ref Abstract3, file.%Abstract3.decl [concrete = constants.%Abstract3] // CHECK:STDOUT: %.loc14_28.2: %tuple.type.85c = tuple_literal (%Abstract3.ref.loc14) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc14_28.3: type = converted %.loc14_28.2, constants.%tuple.type.469 [concrete = constants.%tuple.type.469] +// CHECK:STDOUT: %.loc14_28.3: type = converted %.loc14_28.2, constants.%tuple.type.4cc [concrete = constants.%tuple.type.4cc] // CHECK:STDOUT: } -// CHECK:STDOUT: %l: %tuple.type.469 = value_binding l, [concrete = ] +// CHECK:STDOUT: %l: %tuple.type.4cc = value_binding l, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -312,7 +312,7 @@ fn Var5() { // CHECK:STDOUT: %Var2: %Var2.type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%Abstract4, %Abstract5) [concrete] -// CHECK:STDOUT: %tuple.type.44f: type = tuple_type (%Abstract4, %Abstract5) [concrete] +// CHECK:STDOUT: %tuple.type.417: type = tuple_type (%Abstract4, %Abstract5) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -362,11 +362,11 @@ fn Var5() { // CHECK:STDOUT: } // CHECK:STDOUT: %v2.var: ref = var %v2.var_patt [concrete = ] // CHECK:STDOUT: assign %v2.var, -// CHECK:STDOUT: %.loc14_39.1: type = splice_block %.loc14_39.3 [concrete = constants.%tuple.type.44f] { +// CHECK:STDOUT: %.loc14_39.1: type = splice_block %.loc14_39.3 [concrete = constants.%tuple.type.417] { // CHECK:STDOUT: %Abstract4.ref: type = name_ref Abstract4, file.%Abstract4.decl [concrete = constants.%Abstract4] // CHECK:STDOUT: %Abstract5.ref: type = name_ref Abstract5, file.%Abstract5.decl [concrete = constants.%Abstract5] // CHECK:STDOUT: %.loc14_39.2: %tuple.type.24b = tuple_literal (%Abstract4.ref, %Abstract5.ref) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc14_39.3: type = converted %.loc14_39.2, constants.%tuple.type.44f [concrete = constants.%tuple.type.44f] +// CHECK:STDOUT: %.loc14_39.3: type = converted %.loc14_39.2, constants.%tuple.type.417 [concrete = constants.%tuple.type.417] // CHECK:STDOUT: } // CHECK:STDOUT: %v2: ref = ref_binding v2, [concrete = ] // CHECK:STDOUT: return @@ -383,7 +383,7 @@ fn Var5() { // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.159: type = tuple_type (type, %empty_struct_type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.159 = tuple_value (%Abstract6, %empty_struct) [concrete] -// CHECK:STDOUT: %tuple.type.30f: type = tuple_type (%Abstract6, %empty_struct_type) [concrete] +// CHECK:STDOUT: %tuple.type.427: type = tuple_type (%Abstract6, %empty_struct_type) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -423,12 +423,12 @@ fn Var5() { // CHECK:STDOUT: } // CHECK:STDOUT: %v3.var: ref = var %v3.var_patt [concrete = ] // CHECK:STDOUT: assign %v3.var, -// CHECK:STDOUT: %.loc13_32.1: type = splice_block %.loc13_32.4 [concrete = constants.%tuple.type.30f] { +// CHECK:STDOUT: %.loc13_32.1: type = splice_block %.loc13_32.4 [concrete = constants.%tuple.type.427] { // CHECK:STDOUT: %Abstract6.ref: type = name_ref Abstract6, file.%Abstract6.decl [concrete = constants.%Abstract6] // CHECK:STDOUT: %.loc13_31: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc13_32.2: %tuple.type.159 = tuple_literal (%Abstract6.ref, %.loc13_31) [concrete = constants.%tuple] // CHECK:STDOUT: %.loc13_32.3: type = converted constants.%empty_struct, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %.loc13_32.4: type = converted %.loc13_32.2, constants.%tuple.type.30f [concrete = constants.%tuple.type.30f] +// CHECK:STDOUT: %.loc13_32.4: type = converted %.loc13_32.2, constants.%tuple.type.427 [concrete = constants.%tuple.type.427] // CHECK:STDOUT: } // CHECK:STDOUT: %v3: ref = ref_binding v3, [concrete = ] // CHECK:STDOUT: return @@ -445,7 +445,7 @@ fn Var5() { // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.c8c: type = tuple_type (%empty_struct_type, type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.c8c = tuple_value (%empty_struct, %Abstract7) [concrete] -// CHECK:STDOUT: %tuple.type.54d: type = tuple_type (%empty_struct_type, %Abstract7) [concrete] +// CHECK:STDOUT: %tuple.type.9db: type = tuple_type (%empty_struct_type, %Abstract7) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -485,12 +485,12 @@ fn Var5() { // CHECK:STDOUT: } // CHECK:STDOUT: %v4.var: ref = var %v4.var_patt [concrete = ] // CHECK:STDOUT: assign %v4.var, -// CHECK:STDOUT: %.loc13_32.1: type = splice_block %.loc13_32.4 [concrete = constants.%tuple.type.54d] { +// CHECK:STDOUT: %.loc13_32.1: type = splice_block %.loc13_32.4 [concrete = constants.%tuple.type.9db] { // CHECK:STDOUT: %.loc13_20: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %Abstract7.ref: type = name_ref Abstract7, file.%Abstract7.decl [concrete = constants.%Abstract7] // CHECK:STDOUT: %.loc13_32.2: %tuple.type.c8c = tuple_literal (%.loc13_20, %Abstract7.ref) [concrete = constants.%tuple] // CHECK:STDOUT: %.loc13_32.3: type = converted constants.%empty_struct, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %.loc13_32.4: type = converted %.loc13_32.2, constants.%tuple.type.54d [concrete = constants.%tuple.type.54d] +// CHECK:STDOUT: %.loc13_32.4: type = converted %.loc13_32.2, constants.%tuple.type.9db [concrete = constants.%tuple.type.9db] // CHECK:STDOUT: } // CHECK:STDOUT: %v4: ref = ref_binding v4, [concrete = ] // CHECK:STDOUT: return @@ -538,7 +538,7 @@ fn Var5() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.85c = tuple_value (%Abstract) [concrete] -// CHECK:STDOUT: %tuple.type.7b5: type = tuple_type (%Abstract) [concrete] +// CHECK:STDOUT: %tuple.type.763: type = tuple_type (%Abstract) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -550,7 +550,7 @@ fn Var5() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//lib, loc3_26, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.a0b = import_ref Main//lib, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.fe1 = import_ref Main//lib, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -569,7 +569,7 @@ fn Var5() { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.a0b +// CHECK:STDOUT: .Self = imports.%Main.import_ref.fe1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Var5() { @@ -580,10 +580,10 @@ fn Var5() { // CHECK:STDOUT: } // CHECK:STDOUT: %v5.var: ref = var %v5.var_patt [concrete = ] // CHECK:STDOUT: assign %v5.var, -// CHECK:STDOUT: %.loc14_28.1: type = splice_block %.loc14_28.3 [concrete = constants.%tuple.type.7b5] { +// CHECK:STDOUT: %.loc14_28.1: type = splice_block %.loc14_28.3 [concrete = constants.%tuple.type.763] { // CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, imports.%Main.Abstract [concrete = constants.%Abstract] // CHECK:STDOUT: %.loc14_28.2: %tuple.type.85c = tuple_literal (%Abstract.ref) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc14_28.3: type = converted %.loc14_28.2, constants.%tuple.type.7b5 [concrete = constants.%tuple.type.7b5] +// CHECK:STDOUT: %.loc14_28.3: type = converted %.loc14_28.2, constants.%tuple.type.763 [concrete = constants.%tuple.type.763] // CHECK:STDOUT: } // CHECK:STDOUT: %v5: ref = ref_binding v5, [concrete = ] // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/class/access/access_modifers.carbon b/toolchain/check/testdata/class/access/access_modifers.carbon index bdc1f46db490..2dc934e8edde 100644 --- a/toolchain/check/testdata/class/access/access_modifers.carbon +++ b/toolchain/check/testdata/class/access/access_modifers.carbon @@ -160,46 +160,46 @@ class A { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Circle.elem: type = unbound_element_type %Circle, %i32 [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e3e: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_5.354: %i32 = int_value 5 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %.795: Core.Form = init_form %i32 [concrete] +// 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.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: %Circle.SomeInternalFunction.type: type = fn_type @Circle.SomeInternalFunction [concrete] // CHECK:STDOUT: %Circle.SomeInternalFunction: %Circle.SomeInternalFunction.type = struct_value () [concrete] -// CHECK:STDOUT: %.013: Core.Form = init_form %Circle [concrete] -// CHECK:STDOUT: %pattern_type.f75: type = pattern_type %Circle [concrete] +// CHECK:STDOUT: %.816: Core.Form = init_form %Circle [concrete] +// CHECK:STDOUT: %pattern_type.f70: type = pattern_type %Circle [concrete] // CHECK:STDOUT: %Circle.Make.type: type = fn_type @Circle.Make [concrete] // CHECK:STDOUT: %Circle.Make: %Circle.Make.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.radius.8a0: type = struct_type {.radius: %i32} [concrete] -// CHECK:STDOUT: %complete_type.de6: = complete_type_witness %struct_type.radius.8a0 [concrete] +// CHECK:STDOUT: %struct_type.radius.c2c: type = struct_type {.radius: %i32} [concrete] +// CHECK:STDOUT: %complete_type.e75: = complete_type_witness %struct_type.radius.c2c [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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: %struct_type.radius.f47: type = struct_type {.radius: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.radius.f47 = struct_value (%int_5.64b) [concrete] -// CHECK:STDOUT: %Circle.val: %Circle = struct_value (%int_5.354) [concrete] +// CHECK:STDOUT: %Circle.val: %Circle = struct_value (%int_5.eef) [concrete] // CHECK:STDOUT: %Run.type: type = fn_type @Run [concrete] // CHECK:STDOUT: %Run: %Run.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc18_36.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc18_36.4 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -211,9 +211,9 @@ class A { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -231,37 +231,37 @@ class A { // CHECK:STDOUT: class @Circle { // CHECK:STDOUT: %.loc5: %Circle.elem = field_decl radius, element0 [concrete] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %SOME_INTERNAL_CONSTANT.patt: %pattern_type.104 = value_binding_pattern SOME_INTERNAL_CONSTANT [concrete] +// CHECK:STDOUT: %SOME_INTERNAL_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern SOME_INTERNAL_CONSTANT [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc6_45.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc6_45.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f6c] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_45.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method.e3e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc6_45.2(%int_5) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc6_45.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc6_45.2: %i32 = converted %int_5, %.loc6_45.1 [concrete = constants.%int_5.354] +// CHECK:STDOUT: %bound_method.loc6_45.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method.c9d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc6_45.2(%int_5) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc6_45.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc6_45.2: %i32 = converted %int_5, %.loc6_45.1 [concrete = constants.%int_5.eef] // CHECK:STDOUT: %SOME_INTERNAL_CONSTANT: %i32 = value_binding SOME_INTERNAL_CONSTANT, %.loc6_45.2 // CHECK:STDOUT: %Circle.SomeInternalFunction.decl: %Circle.SomeInternalFunction.type = fn_decl @Circle.SomeInternalFunction [concrete = constants.%Circle.SomeInternalFunction] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Circle.Make.decl: %Circle.Make.type = fn_decl @Circle.Make [concrete = constants.%Circle.Make] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.f75 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.f75 = return_slot_pattern %return.param_patt, %Self.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f70 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f70 = return_slot_pattern %return.param_patt, %Self.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Circle [concrete = constants.%Circle] -// CHECK:STDOUT: %.loc12: Core.Form = init_form %Self.ref [concrete = constants.%.013] +// CHECK:STDOUT: %.loc12: Core.Form = init_form %Self.ref [concrete = constants.%.816] // CHECK:STDOUT: %return.param: ref %Circle = out_param call_param0 // CHECK:STDOUT: %return: ref %Circle = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.radius.8a0 [concrete = constants.%complete_type.de6] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.radius.c2c [concrete = constants.%complete_type.e75] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -275,12 +275,12 @@ class A { // CHECK:STDOUT: fn @Circle.SomeInternalFunction() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_13.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_13.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_13.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc9_13.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc9: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc9_13.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc9_13.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc9: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: return %.loc9 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -288,14 +288,14 @@ class A { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %.loc13_24.1: %struct_type.radius.f47 = struct_literal (%int_5) [concrete = constants.%struct] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc13_24.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc13_24.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f6c] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc13_24.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method.e3e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc13_24.2(%int_5) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc13_24.2: init %i32 = converted %int_5, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_5.354] +// CHECK:STDOUT: %bound_method.loc13_24.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method.c9d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc13_24.2(%int_5) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc13_24.2: init %i32 = converted %int_5, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_5.eef] // CHECK:STDOUT: %.loc13_24.3: ref %i32 = class_element_access %return.param, element0 -// CHECK:STDOUT: %.loc13_24.4: init %i32 to %.loc13_24.3 = in_place_init %.loc13_24.2 [concrete = constants.%int_5.354] +// CHECK:STDOUT: %.loc13_24.4: init %i32 to %.loc13_24.3 = in_place_init %.loc13_24.2 [concrete = constants.%int_5.eef] // CHECK:STDOUT: %.loc13_24.5: init %Circle to %return.param = class_init (%.loc13_24.4) [concrete = constants.%Circle.val] // CHECK:STDOUT: %.loc13_25: init %Circle = converted %.loc13_24.1, %.loc13_24.5 [concrete = constants.%Circle.val] // CHECK:STDOUT: return %.loc13_25 to %return.param @@ -304,7 +304,7 @@ class A { // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %circle.patt: %pattern_type.f75 = value_binding_pattern circle [concrete] +// CHECK:STDOUT: %circle.patt: %pattern_type.f70 = value_binding_pattern circle [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Circle.ref.loc18_24: type = name_ref Circle, file.%Circle.decl [concrete = constants.%Circle] // CHECK:STDOUT: %Make.ref: %Circle.Make.type = name_ref Make, @Circle.%Circle.Make.decl [concrete = constants.%Circle.Make] @@ -315,7 +315,7 @@ class A { // CHECK:STDOUT: %.loc18_36.3: %Circle = acquire_value %.loc18_36.2 // CHECK:STDOUT: %circle: %Circle = value_binding circle, %.loc18_36.3 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %radius.patt: %pattern_type.104 = value_binding_pattern radius [concrete] +// CHECK:STDOUT: %radius.patt: %pattern_type.6b6 = value_binding_pattern radius [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %circle.ref.loc26: %Circle = name_ref circle, %circle // CHECK:STDOUT: %radius.ref.loc26: = name_ref radius, [concrete = ] @@ -329,7 +329,7 @@ class A { // CHECK:STDOUT: %SOME_INTERNAL_CONSTANT.ref: = name_ref SOME_INTERNAL_CONSTANT, [concrete = ] // CHECK:STDOUT: %circle.ref.loc51: %Circle = name_ref circle, %circle // CHECK:STDOUT: %SomeInternalFunction.ref: = name_ref SomeInternalFunction, [concrete = ] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc18_36.2, constants.%Destroy.Op.2dd605.4 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc18_36.2, constants.%Destroy.Op.1a2547.4 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc18_36.2) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -341,7 +341,7 @@ class A { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_36.3(%self.param: ref %struct_type.radius.8a0) { +// CHECK:STDOUT: fn @Destroy.Op.loc18_36.3(%self.param: ref %struct_type.radius.c2c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -359,10 +359,10 @@ class A { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %i32 [concrete] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %i32} [concrete] -// CHECK:STDOUT: %complete_type.9a8: = complete_type_witness %struct_type.x [concrete] +// CHECK:STDOUT: %complete_type.0c6: = complete_type_witness %struct_type.x [concrete] // CHECK:STDOUT: %Run.type: type = fn_type @Run [concrete] // CHECK:STDOUT: %Run: %Run.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -389,7 +389,7 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %.loc5: %A.elem = field_decl x, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x [concrete = constants.%complete_type.9a8] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x [concrete = constants.%complete_type.0c6] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -400,7 +400,7 @@ class A { // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.104 = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = value_binding_pattern x [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %x.ref: = name_ref x, [concrete = ] @@ -418,10 +418,10 @@ class A { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Circle.elem: type = unbound_element_type %Circle, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.f75: type = pattern_type %Circle [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.f70: type = pattern_type %Circle [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %Circle.GetRadius.type: type = fn_type @Circle.GetRadius [concrete] // CHECK:STDOUT: %Circle.GetRadius: %Circle.GetRadius.type = struct_value () [concrete] // CHECK:STDOUT: %Circle.SomeInternalFunction.type: type = fn_type @Circle.SomeInternalFunction [concrete] @@ -429,34 +429,34 @@ class A { // CHECK:STDOUT: %Circle.Compute.type: type = fn_type @Circle.Compute [concrete] // CHECK:STDOUT: %Circle.Compute: %Circle.Compute.type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.radius: type = struct_type {.radius: %i32} [concrete] -// CHECK:STDOUT: %complete_type.de6: = complete_type_witness %struct_type.radius [concrete] +// CHECK:STDOUT: %complete_type.e75: = complete_type_witness %struct_type.radius [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -469,11 +469,11 @@ class A { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -488,13 +488,13 @@ class A { // CHECK:STDOUT: class @Circle { // CHECK:STDOUT: %.loc5: %Circle.elem = field_decl radius, element0 [concrete] // CHECK:STDOUT: %Circle.GetRadius.decl: %Circle.GetRadius.type = fn_decl @Circle.GetRadius [concrete = constants.%Circle.GetRadius] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.f75 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.f75 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f70 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f70 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc7: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc7: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %self.param: %Circle = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Circle [concrete = constants.%Circle] // CHECK:STDOUT: %self: %Circle = value_binding self, %self.param @@ -502,29 +502,29 @@ class A { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Circle.SomeInternalFunction.decl: %Circle.SomeInternalFunction.type = fn_decl @Circle.SomeInternalFunction [concrete = constants.%Circle.SomeInternalFunction] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc11: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc11: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Circle.Compute.decl: %Circle.Compute.type = fn_decl @Circle.Compute [concrete = constants.%Circle.Compute] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.f75 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.f75 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f70 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f70 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %self.param: %Circle = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Circle [concrete = constants.%Circle] // CHECK:STDOUT: %self: %Circle = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.radius [concrete = constants.%complete_type.de6] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.radius [concrete = constants.%complete_type.e75] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -541,7 +541,7 @@ class A { // CHECK:STDOUT: %radius.ref: %Circle.elem = name_ref radius, @Circle.%.loc5 [concrete = @Circle.%.loc5] // CHECK:STDOUT: %.loc8_16.1: ref %i32 = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc8_16.2: %i32 = acquire_value %.loc8_16.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc8_16.1: = bound_method %.loc8_16.2, %impl.elem0 // 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.loc8_16.2: = bound_method %.loc8_16.2, %specific_fn @@ -552,12 +552,12 @@ class A { // CHECK:STDOUT: fn @Circle.SomeInternalFunction() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc12_13.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_13.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc12_13.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc12: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc12_13.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc12: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: return %.loc12 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -577,24 +577,24 @@ class A { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_5.354: %i32 = int_value 5 [concrete] +// CHECK:STDOUT: %int_5.eef: %i32 = int_value 5 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -607,9 +607,9 @@ class A { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -621,7 +621,7 @@ class A { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.104 = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = value_binding_pattern x [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %x: %i32 = value_binding x, @__global_init.%x.ref @@ -629,17 +629,17 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.104 = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = value_binding_pattern x [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc5_16.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_16.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc5_16.2(%int_5) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc5_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc5_16.2: %i32 = converted %int_5, %.loc5_16.1 [concrete = constants.%int_5.354] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc5_16.2(%int_5) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc5_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc5_16.2: %i32 = converted %int_5, %.loc5_16.1 [concrete = constants.%int_5.eef] // CHECK:STDOUT: %x: %i32 = value_binding x, %.loc5_16.2 // CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type.357] // CHECK:STDOUT: complete_type_witness = %complete_type @@ -664,24 +664,24 @@ class A { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_5.354: %i32 = int_value 5 [concrete] +// CHECK:STDOUT: %int_5.eef: %i32 = int_value 5 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -694,9 +694,9 @@ class A { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -709,12 +709,12 @@ class A { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.104 = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = value_binding_pattern x [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %x: %i32 = value_binding x, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.104 = value_binding_pattern y [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.6b6 = value_binding_pattern y [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc24: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %y: %i32 = value_binding y, [concrete = ] @@ -722,30 +722,30 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.104 = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = value_binding_pattern x [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_5.loc5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc5: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc5: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc5_26.1: = bound_method %int_5.loc5, %impl.elem0.loc5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_26.2: = bound_method %int_5.loc5, %specific_fn.loc5 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5: init %i32 = call %bound_method.loc5_26.2(%int_5.loc5) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc5_26.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc5_26.2: %i32 = converted %int_5.loc5, %.loc5_26.1 [concrete = constants.%int_5.354] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5: init %i32 = call %bound_method.loc5_26.2(%int_5.loc5) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc5_26.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc5_26.2: %i32 = converted %int_5.loc5, %.loc5_26.1 [concrete = constants.%int_5.eef] // CHECK:STDOUT: %x: %i32 = value_binding x, %.loc5_26.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.104 = value_binding_pattern y [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.6b6 = value_binding_pattern y [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_5.loc6: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc6: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc6: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc6_24.1: = bound_method %int_5.loc6, %impl.elem0.loc6 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_24.2: = bound_method %int_5.loc6, %specific_fn.loc6 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %i32 = call %bound_method.loc6_24.2(%int_5.loc6) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc6_24.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc6_24.2: %i32 = converted %int_5.loc6, %.loc6_24.1 [concrete = constants.%int_5.354] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %i32 = call %bound_method.loc6_24.2(%int_5.loc6) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc6_24.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc6_24.2: %i32 = converted %int_5.loc6, %.loc6_24.1 [concrete = constants.%int_5.eef] // CHECK:STDOUT: %y: %i32 = value_binding y, %.loc6_24.2 // CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type.357] // CHECK:STDOUT: complete_type_witness = %complete_type diff --git a/toolchain/check/testdata/class/access/import_access.carbon b/toolchain/check/testdata/class/access/import_access.carbon index 621a767abe00..cdc53204624f 100644 --- a/toolchain/check/testdata/class/access/import_access.carbon +++ b/toolchain/check/testdata/class/access/import_access.carbon @@ -216,7 +216,7 @@ private class Redecl {} // CHECK:STDOUT: imports { // CHECK:STDOUT: %Test.Def: type = import_ref Test//def, Def, loaded [concrete = constants.%Def] // CHECK:STDOUT: %Test.import_ref.8f2: = import_ref Test//def, loc4_20, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Test.import_ref.735 = import_ref Test//def, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Test.import_ref.f7d = import_ref Test//def, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -239,7 +239,7 @@ private class Redecl {} // CHECK:STDOUT: complete_type_witness = imports.%Test.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Test.import_ref.735 +// CHECK:STDOUT: .Self = imports.%Test.import_ref.f7d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -333,7 +333,7 @@ private class Redecl {} // CHECK:STDOUT: imports { // CHECK:STDOUT: %Test.ForwardWithDef: type = import_ref Test//forward_with_def, ForwardWithDef, loaded [concrete = constants.%ForwardWithDef] // CHECK:STDOUT: %Test.import_ref.8f2: = import_ref Test//forward_with_def, loc6_23, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Test.import_ref.b78 = import_ref Test//forward_with_def, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Test.import_ref.a3c = import_ref Test//forward_with_def, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -356,7 +356,7 @@ private class Redecl {} // CHECK:STDOUT: complete_type_witness = imports.%Test.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Test.import_ref.b78 +// CHECK:STDOUT: .Self = imports.%Test.import_ref.a3c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/class/access/inheritance_access.carbon b/toolchain/check/testdata/class/access/inheritance_access.carbon index 2470d6f97f3b..13a2280909f7 100644 --- a/toolchain/check/testdata/class/access/inheritance_access.carbon +++ b/toolchain/check/testdata/class/access/inheritance_access.carbon @@ -294,29 +294,29 @@ class B { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Shape.elem: type = unbound_element_type %Shape, %i32 [concrete] // CHECK:STDOUT: %struct_type.x.y: type = struct_type {.x: %i32, .y: %i32} [concrete] -// CHECK:STDOUT: %complete_type.571: = complete_type_witness %struct_type.x.y [concrete] +// CHECK:STDOUT: %complete_type.292: = complete_type_witness %struct_type.x.y [concrete] // CHECK:STDOUT: %Circle: type = class_type @Circle [concrete] // CHECK:STDOUT: %Circle.elem: type = unbound_element_type %Circle, %Shape [concrete] -// CHECK:STDOUT: %pattern_type.f75: type = pattern_type %Circle [concrete] +// CHECK:STDOUT: %pattern_type.f70: type = pattern_type %Circle [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.79d: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] -// CHECK:STDOUT: %.ac5: Core.Form = init_form %tuple.type.e5a [concrete] -// CHECK:STDOUT: %pattern_type.7d6: type = pattern_type %tuple.type.e5a [concrete] +// CHECK:STDOUT: %tuple.b59: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %.c11: Core.Form = init_form %tuple.type.e55 [concrete] +// CHECK:STDOUT: %pattern_type.394: type = pattern_type %tuple.type.e55 [concrete] // CHECK:STDOUT: %Circle.GetPosition.type: type = fn_type @Circle.GetPosition [concrete] // CHECK:STDOUT: %Circle.GetPosition: %Circle.GetPosition.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.167: type = struct_type {.base: %Shape} [concrete] -// CHECK:STDOUT: %complete_type.9d9: = complete_type_witness %struct_type.base.167 [concrete] +// CHECK:STDOUT: %struct_type.base.175: type = struct_type {.base: %Shape} [concrete] +// CHECK:STDOUT: %complete_type.1e3: = complete_type_witness %struct_type.base.175 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -328,8 +328,8 @@ class B { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -346,7 +346,7 @@ class B { // CHECK:STDOUT: class @Shape { // CHECK:STDOUT: %.loc5: %Shape.elem = field_decl x, element0 [concrete] // CHECK:STDOUT: %.loc6: %Shape.elem = field_decl y, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x.y [concrete = constants.%complete_type.571] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x.y [concrete = constants.%complete_type.292] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -359,23 +359,23 @@ class B { // CHECK:STDOUT: %Shape.ref: type = name_ref Shape, file.%Shape.decl [concrete = constants.%Shape] // CHECK:STDOUT: %.loc10: %Circle.elem = base_decl %Shape.ref, element0 [concrete] // CHECK:STDOUT: %Circle.GetPosition.decl: %Circle.GetPosition.type = fn_decl @Circle.GetPosition [concrete = constants.%Circle.GetPosition] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.f75 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.f75 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7d6 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7d6 = return_slot_pattern %return.param_patt, %.loc12_44.2 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f70 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f70 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.394 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.394 = return_slot_pattern %return.param_patt, %.loc12_44.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc12_36: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc12_41: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc12_44.1: %tuple.type.24b = tuple_literal (%i32.loc12_36, %i32.loc12_41) [concrete = constants.%tuple.79d] -// CHECK:STDOUT: %.loc12_44.2: type = converted %.loc12_44.1, constants.%tuple.type.e5a [concrete = constants.%tuple.type.e5a] -// CHECK:STDOUT: %.loc12_44.3: Core.Form = init_form %.loc12_44.2 [concrete = constants.%.ac5] +// CHECK:STDOUT: %.loc12_44.1: %tuple.type.24b = tuple_literal (%i32.loc12_36, %i32.loc12_41) [concrete = constants.%tuple.b59] +// CHECK:STDOUT: %.loc12_44.2: type = converted %.loc12_44.1, constants.%tuple.type.e55 [concrete = constants.%tuple.type.e55] +// CHECK:STDOUT: %.loc12_44.3: Core.Form = init_form %.loc12_44.2 [concrete = constants.%.c11] // CHECK:STDOUT: %self.param: %Circle = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Circle [concrete = constants.%Circle] // CHECK:STDOUT: %self: %Circle = value_binding self, %self.param -// CHECK:STDOUT: %return.param: ref %tuple.type.e5a = out_param call_param1 -// CHECK:STDOUT: %return: ref %tuple.type.e5a = return_slot %return.param +// CHECK:STDOUT: %return.param: ref %tuple.type.e55 = out_param call_param1 +// CHECK:STDOUT: %return: ref %tuple.type.e55 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.167 [concrete = constants.%complete_type.9d9] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.175 [concrete = constants.%complete_type.1e3] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -388,7 +388,7 @@ class B { // CHECK:STDOUT: extend %Shape.ref // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Circle.GetPosition(%self.param: %Circle) -> out %return.param: %tuple.type.e5a { +// CHECK:STDOUT: fn @Circle.GetPosition(%self.param: %Circle) -> out %return.param: %tuple.type.e55 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref.loc13_13: %Circle = name_ref self, %self // CHECK:STDOUT: %x.ref: %Shape.elem = name_ref x, @Shape.%.loc5 [concrete = @Shape.%.loc5] @@ -400,9 +400,9 @@ class B { // CHECK:STDOUT: %.loc13_25.1: ref %Shape = class_element_access %self.ref.loc13_21, element0 // CHECK:STDOUT: %.loc13_25.2: ref %Shape = converted %self.ref.loc13_21, %.loc13_25.1 // CHECK:STDOUT: %.loc13_25.3: ref %i32 = class_element_access %.loc13_25.2, element1 -// CHECK:STDOUT: %.loc13_27.1: %tuple.type.e5a = tuple_literal (%.loc13_17.3, %.loc13_25.3) +// CHECK:STDOUT: %.loc13_27.1: %tuple.type.e55 = tuple_literal (%.loc13_17.3, %.loc13_25.3) // CHECK:STDOUT: %.loc13_17.4: %i32 = acquire_value %.loc13_17.3 -// CHECK:STDOUT: %impl.elem0.loc13_17: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc13_17: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc13_17.1: = bound_method %.loc13_17.4, %impl.elem0.loc13_17 // CHECK:STDOUT: %specific_fn.loc13_17: = specific_function %impl.elem0.loc13_17, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc13_17.2: = bound_method %.loc13_17.4, %specific_fn.loc13_17 @@ -410,15 +410,15 @@ class B { // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %return.param, element0 // CHECK:STDOUT: %.loc13_27.2: init %i32 to %tuple.elem0 = in_place_init %Int.as.Copy.impl.Op.call.loc13_17 // CHECK:STDOUT: %.loc13_25.4: %i32 = acquire_value %.loc13_25.3 -// CHECK:STDOUT: %impl.elem0.loc13_25: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc13_25: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc13_25.1: = bound_method %.loc13_25.4, %impl.elem0.loc13_25 // CHECK:STDOUT: %specific_fn.loc13_25: = specific_function %impl.elem0.loc13_25, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc13_25.2: = bound_method %.loc13_25.4, %specific_fn.loc13_25 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc13_25: init %i32 = call %bound_method.loc13_25.2(%.loc13_25.4) // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access %return.param, element1 // CHECK:STDOUT: %.loc13_27.3: init %i32 to %tuple.elem1 = in_place_init %Int.as.Copy.impl.Op.call.loc13_25 -// CHECK:STDOUT: %.loc13_27.4: init %tuple.type.e5a to %return.param = tuple_init (%.loc13_27.2, %.loc13_27.3) -// CHECK:STDOUT: %.loc13_28: init %tuple.type.e5a = converted %.loc13_27.1, %.loc13_27.4 +// CHECK:STDOUT: %.loc13_27.4: init %tuple.type.e55 to %return.param = tuple_init (%.loc13_27.2, %.loc13_27.3) +// CHECK:STDOUT: %.loc13_28: init %tuple.type.e55 = converted %.loc13_27.1, %.loc13_27.4 // CHECK:STDOUT: return %.loc13_28 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: @@ -437,22 +437,22 @@ class B { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %B.F.type: type = fn_type @B.F [concrete] // CHECK:STDOUT: %B.F: %B.F.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.722: type = struct_type {.base: %A} [concrete] -// CHECK:STDOUT: %complete_type.27e: = complete_type_witness %struct_type.base.722 [concrete] +// CHECK:STDOUT: %struct_type.base.cb7: type = struct_type {.base: %A} [concrete] +// CHECK:STDOUT: %complete_type.d5e: = complete_type_witness %struct_type.base.cb7 [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %B [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %C.G.type: type = fn_type @C.G [concrete] // CHECK:STDOUT: %C.G: %C.G.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.cef: type = struct_type {.base: %B} [concrete] -// CHECK:STDOUT: %complete_type.3f7: = complete_type_witness %struct_type.base.cef [concrete] +// CHECK:STDOUT: %struct_type.base.e05: type = struct_type {.base: %B} [concrete] +// CHECK:STDOUT: %complete_type.c77: = complete_type_witness %struct_type.base.e05 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -491,15 +491,15 @@ class B { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %.loc9: %B.elem = base_decl %A.ref, element0 [concrete] // CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [concrete = constants.%B.F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc10: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc10: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.722 [concrete = constants.%complete_type.27e] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.cb7 [concrete = constants.%complete_type.d5e] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -514,8 +514,8 @@ class B { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %.loc14: %C.elem = base_decl %B.ref, element0 [concrete] // CHECK:STDOUT: %C.G.decl: %C.G.type = fn_decl @C.G [concrete = constants.%C.G] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.0d5 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [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, %.loc15_26.2 [concrete] // CHECK:STDOUT: } { @@ -528,7 +528,7 @@ class B { // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param1 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.cef [concrete = constants.%complete_type.3f7] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.e05 [concrete = constants.%complete_type.c77] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -561,25 +561,25 @@ class B { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// 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_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_5.354: %i32 = int_value 5 [concrete] +// CHECK:STDOUT: %int_5.eef: %i32 = int_value 5 [concrete] // CHECK:STDOUT: %A.SomeProtectedFunction.type: type = fn_type @A.SomeProtectedFunction [concrete] // CHECK:STDOUT: %A.SomeProtectedFunction: %A.SomeProtectedFunction.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] @@ -591,17 +591,17 @@ class B { // CHECK:STDOUT: %B.H.type: type = fn_type @B.H [concrete] // CHECK:STDOUT: %B.H: %B.H.type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %A} [concrete] -// CHECK:STDOUT: %complete_type.27e: = complete_type_witness %struct_type.base [concrete] +// CHECK:STDOUT: %complete_type.d5e: = complete_type_witness %struct_type.base [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -613,12 +613,12 @@ class B { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -634,24 +634,24 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %SOME_CONSTANT.patt: %pattern_type.104 = value_binding_pattern SOME_CONSTANT [concrete] +// CHECK:STDOUT: %SOME_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern SOME_CONSTANT [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc5_38.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_38.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc5_38.2(%int_5) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc5_38.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc5_38.2: %i32 = converted %int_5, %.loc5_38.1 [concrete = constants.%int_5.354] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc5_38.2(%int_5) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc5_38.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc5_38.2: %i32 = converted %int_5, %.loc5_38.1 [concrete = constants.%int_5.eef] // CHECK:STDOUT: %SOME_CONSTANT: %i32 = value_binding SOME_CONSTANT, %.loc5_38.2 // CHECK:STDOUT: %A.SomeProtectedFunction.decl: %A.SomeProtectedFunction.type = fn_decl @A.SomeProtectedFunction [concrete = constants.%A.SomeProtectedFunction] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc6: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc6: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -669,24 +669,24 @@ class B { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %.loc12: %B.elem = base_decl %A.ref, element0 [concrete] // CHECK:STDOUT: %B.G.decl: %B.G.type = fn_decl @B.G [concrete = constants.%B.G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc14: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc14: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.H.decl: %B.H.type = fn_decl @B.H [concrete = constants.%B.H] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc18: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc18: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base [concrete = constants.%complete_type.27e] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base [concrete = constants.%complete_type.d5e] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -701,12 +701,12 @@ class B { // CHECK:STDOUT: fn @A.SomeProtectedFunction() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc7_13.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_13.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc7_13.2(%int_5) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc7: init %i32 = converted %int_5, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_5.354] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc7_13.2(%int_5) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc7: init %i32 = converted %int_5, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_5.eef] // CHECK:STDOUT: return %.loc7 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -714,7 +714,7 @@ class B { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %SOME_CONSTANT.ref: %i32 = name_ref SOME_CONSTANT, @A.%SOME_CONSTANT -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc15_13.1: = bound_method %SOME_CONSTANT.ref, %impl.elem0 // 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 %SOME_CONSTANT.ref, %specific_fn @@ -738,18 +738,18 @@ class B { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Shape.elem: type = unbound_element_type %Shape, %i32 [concrete] // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %i32} [concrete] -// CHECK:STDOUT: %complete_type.d92: = complete_type_witness %struct_type.y [concrete] +// CHECK:STDOUT: %complete_type.620: = complete_type_witness %struct_type.y [concrete] // CHECK:STDOUT: %Square: type = class_type @Square [concrete] // CHECK:STDOUT: %Square.elem: type = unbound_element_type %Square, %Shape [concrete] -// CHECK:STDOUT: %pattern_type.c7b: type = pattern_type %Square [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.1f6: type = pattern_type %Square [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %Square.GetPosition.type: type = fn_type @Square.GetPosition [concrete] // CHECK:STDOUT: %Square.GetPosition: %Square.GetPosition.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.167: type = struct_type {.base: %Shape} [concrete] -// CHECK:STDOUT: %complete_type.9d9: = complete_type_witness %struct_type.base.167 [concrete] +// CHECK:STDOUT: %struct_type.base.175: type = struct_type {.base: %Shape} [concrete] +// CHECK:STDOUT: %complete_type.1e3: = complete_type_witness %struct_type.base.175 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -774,7 +774,7 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: class @Shape { // CHECK:STDOUT: %.loc5: %Shape.elem = field_decl y, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.y [concrete = constants.%complete_type.d92] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.y [concrete = constants.%complete_type.620] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -786,20 +786,20 @@ class B { // CHECK:STDOUT: %Shape.ref: type = name_ref Shape, file.%Shape.decl [concrete = constants.%Shape] // CHECK:STDOUT: %.loc9: %Square.elem = base_decl %Shape.ref, element0 [concrete] // CHECK:STDOUT: %Square.GetPosition.decl: %Square.GetPosition.type = fn_decl @Square.GetPosition [concrete = constants.%Square.GetPosition] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.c7b = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.c7b = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.1f6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1f6 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc11: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc11: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %self.param: %Square = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Square [concrete = constants.%Square] // CHECK:STDOUT: %self: %Square = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.167 [concrete = constants.%complete_type.9d9] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.175 [concrete = constants.%complete_type.1e3] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -942,8 +942,8 @@ class B { // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %B [concrete] // CHECK:STDOUT: %C.G.type: type = fn_type @C.G [concrete] // CHECK:STDOUT: %C.G: %C.G.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.cef: type = struct_type {.base: %B} [concrete] -// CHECK:STDOUT: %complete_type.3f7: = complete_type_witness %struct_type.base.cef [concrete] +// CHECK:STDOUT: %struct_type.base.e05: type = struct_type {.base: %B} [concrete] +// CHECK:STDOUT: %complete_type.c77: = complete_type_witness %struct_type.base.e05 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -978,7 +978,7 @@ class B { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %.loc9: %C.elem = base_decl %B.ref, element0 [concrete] // CHECK:STDOUT: %C.G.decl: %C.G.type = fn_decl @C.G [concrete = constants.%C.G] {} {} -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.cef [concrete = constants.%complete_type.3f7] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.e05 [concrete = constants.%complete_type.c77] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1016,29 +1016,29 @@ class B { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_86.bd3: Core.IntLiteral = int_value 86 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_86.bd3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_86.bd3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// 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_86.bd3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_86.845: %i32 = int_value 86 [concrete] +// CHECK:STDOUT: %int_86.81c: %i32 = int_value 86 [concrete] // CHECK:STDOUT: %B.Fb.type: type = fn_type @B.Fb [concrete] // CHECK:STDOUT: %B.Fb: %B.Fb.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.722: type = struct_type {.base: %A} [concrete] -// CHECK:STDOUT: %complete_type.27e: = complete_type_witness %struct_type.base.722 [concrete] +// CHECK:STDOUT: %struct_type.base.cb7: type = struct_type {.base: %A} [concrete] +// CHECK:STDOUT: %complete_type.d5e: = complete_type_witness %struct_type.base.cb7 [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %B [concrete] // CHECK:STDOUT: %C.G1.type: type = fn_type @C.G1 [concrete] @@ -1047,8 +1047,8 @@ class B { // CHECK:STDOUT: %C.G2: %C.G2.type = struct_value () [concrete] // CHECK:STDOUT: %C.G3.type: type = fn_type @C.G3 [concrete] // CHECK:STDOUT: %C.G3: %C.G3.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.cef: type = struct_type {.base: %B} [concrete] -// CHECK:STDOUT: %complete_type.3f7: = complete_type_witness %struct_type.base.cef [concrete] +// CHECK:STDOUT: %struct_type.base.e05: type = struct_type {.base: %B} [concrete] +// CHECK:STDOUT: %complete_type.c77: = complete_type_witness %struct_type.base.e05 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1059,9 +1059,9 @@ class B { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1093,20 +1093,20 @@ class B { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %.loc9: %B.elem = base_decl %A.ref, element0 [concrete] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %SOME_PRIVATE_CONSTANT.patt: %pattern_type.104 = value_binding_pattern SOME_PRIVATE_CONSTANT [concrete] +// CHECK:STDOUT: %SOME_PRIVATE_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern SOME_PRIVATE_CONSTANT [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_86: Core.IntLiteral = int_value 86 [concrete = constants.%int_86.bd3] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc11_44.1: = bound_method %int_86, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_44.2: = bound_method %int_86, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc11_44.2(%int_86) [concrete = constants.%int_86.845] -// CHECK:STDOUT: %.loc11_44.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_86.845] -// CHECK:STDOUT: %.loc11_44.2: %i32 = converted %int_86, %.loc11_44.1 [concrete = constants.%int_86.845] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc11_44.2(%int_86) [concrete = constants.%int_86.81c] +// CHECK:STDOUT: %.loc11_44.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_86.81c] +// CHECK:STDOUT: %.loc11_44.2: %i32 = converted %int_86, %.loc11_44.1 [concrete = constants.%int_86.81c] // CHECK:STDOUT: %SOME_PRIVATE_CONSTANT: %i32 = value_binding SOME_PRIVATE_CONSTANT, %.loc11_44.2 // CHECK:STDOUT: %B.Fb.decl: %B.Fb.type = fn_decl @B.Fb [concrete = constants.%B.Fb] {} {} -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.722 [concrete = constants.%complete_type.27e] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.cb7 [concrete = constants.%complete_type.d5e] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1123,17 +1123,17 @@ class B { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %.loc16: %C.elem = base_decl %B.ref, element0 [concrete] // CHECK:STDOUT: %C.G1.decl: %C.G1.type = fn_decl @C.G1 [concrete = constants.%C.G1] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.G2.decl: %C.G2.type = fn_decl @C.G2 [concrete = constants.%C.G2] {} {} // CHECK:STDOUT: %C.G3.decl: %C.G3.type = fn_decl @C.G3 [concrete = constants.%C.G3] {} {} -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.cef [concrete = constants.%complete_type.3f7] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.e05 [concrete = constants.%complete_type.c77] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1190,8 +1190,8 @@ class B { // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %B [concrete] // CHECK:STDOUT: %C.G.type: type = fn_type @C.G [concrete] // CHECK:STDOUT: %C.G: %C.G.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.cef: type = struct_type {.base: %B} [concrete] -// CHECK:STDOUT: %complete_type.3f7: = complete_type_witness %struct_type.base.cef [concrete] +// CHECK:STDOUT: %struct_type.base.e05: type = struct_type {.base: %B} [concrete] +// CHECK:STDOUT: %complete_type.c77: = complete_type_witness %struct_type.base.e05 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1226,7 +1226,7 @@ class B { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %.loc9: %C.elem = base_decl %B.ref, element0 [concrete] // CHECK:STDOUT: %C.G.decl: %C.G.type = fn_decl @C.G [concrete = constants.%C.G] {} {} -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.cef [concrete = constants.%complete_type.3f7] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.e05 [concrete = constants.%complete_type.c77] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1259,25 +1259,25 @@ class B { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// 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_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_5.354: %i32 = int_value 5 [concrete] +// CHECK:STDOUT: %int_5.eef: %i32 = int_value 5 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Internal: type = class_type @Internal [concrete] @@ -1285,11 +1285,11 @@ class B { // CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %Internal [concrete] // CHECK:STDOUT: %B.G.type: type = fn_type @B.G [concrete] // CHECK:STDOUT: %B.G: %B.G.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.787: type = pattern_type %B [concrete] +// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete] // CHECK:STDOUT: %B.SomeFunc.type: type = fn_type @B.SomeFunc [concrete] // CHECK:STDOUT: %B.SomeFunc: %B.SomeFunc.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.internal.f2f: type = struct_type {.internal: %Internal} [concrete] -// CHECK:STDOUT: %complete_type.39f: = complete_type_witness %struct_type.internal.f2f [concrete] +// CHECK:STDOUT: %struct_type.internal.a00: type = struct_type {.internal: %Internal} [concrete] +// CHECK:STDOUT: %complete_type.aff: = complete_type_witness %struct_type.internal.a00 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1300,9 +1300,9 @@ class B { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1320,30 +1320,30 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %SOME_PROTECTED_CONSTANT.patt: %pattern_type.104 = value_binding_pattern SOME_PROTECTED_CONSTANT [concrete] +// CHECK:STDOUT: %SOME_PROTECTED_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern SOME_PROTECTED_CONSTANT [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_5.loc5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc5: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc5: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc5_48.1: = bound_method %int_5.loc5, %impl.elem0.loc5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_48.2: = bound_method %int_5.loc5, %specific_fn.loc5 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5: init %i32 = call %bound_method.loc5_48.2(%int_5.loc5) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc5_48.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc5_48.2: %i32 = converted %int_5.loc5, %.loc5_48.1 [concrete = constants.%int_5.354] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5: init %i32 = call %bound_method.loc5_48.2(%int_5.loc5) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc5_48.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc5_48.2: %i32 = converted %int_5.loc5, %.loc5_48.1 [concrete = constants.%int_5.eef] // CHECK:STDOUT: %SOME_PROTECTED_CONSTANT: %i32 = value_binding SOME_PROTECTED_CONSTANT, %.loc5_48.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %SOME_PRIVATE_CONSTANT.patt: %pattern_type.104 = value_binding_pattern SOME_PRIVATE_CONSTANT [concrete] +// CHECK:STDOUT: %SOME_PRIVATE_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern SOME_PRIVATE_CONSTANT [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_5.loc6: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc6: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc6: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc6_44.1: = bound_method %int_5.loc6, %impl.elem0.loc6 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_44.2: = bound_method %int_5.loc6, %specific_fn.loc6 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %i32 = call %bound_method.loc6_44.2(%int_5.loc6) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc6_44.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc6_44.2: %i32 = converted %int_5.loc6, %.loc6_44.1 [concrete = constants.%int_5.354] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %i32 = call %bound_method.loc6_44.2(%int_5.loc6) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc6_44.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc6_44.2: %i32 = converted %int_5.loc6, %.loc6_44.1 [concrete = constants.%int_5.eef] // CHECK:STDOUT: %SOME_PRIVATE_CONSTANT: %i32 = value_binding SOME_PRIVATE_CONSTANT, %.loc6_44.2 // CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type.357] // CHECK:STDOUT: complete_type_witness = %complete_type @@ -1356,17 +1356,17 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: class @Internal { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %INTERNAL_CONSTANT.patt: %pattern_type.104 = value_binding_pattern INTERNAL_CONSTANT [concrete] +// CHECK:STDOUT: %INTERNAL_CONSTANT.patt: %pattern_type.6b6 = value_binding_pattern INTERNAL_CONSTANT [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc10_42.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_42.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc10_42.2(%int_5) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc10_42.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc10_42.2: %i32 = converted %int_5, %.loc10_42.1 [concrete = constants.%int_5.354] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc10_42.2(%int_5) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc10_42.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc10_42.2: %i32 = converted %int_5, %.loc10_42.1 [concrete = constants.%int_5.eef] // CHECK:STDOUT: %INTERNAL_CONSTANT: %i32 = value_binding INTERNAL_CONSTANT, %.loc10_42.2 // CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type.357] // CHECK:STDOUT: complete_type_witness = %complete_type @@ -1379,29 +1379,29 @@ class B { // CHECK:STDOUT: class @B { // CHECK:STDOUT: %.loc14: %B.elem = field_decl internal, element0 [concrete] // CHECK:STDOUT: %B.G.decl: %B.G.type = fn_decl @B.G [concrete = constants.%B.G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.SomeFunc.decl: %B.SomeFunc.type = fn_decl @B.SomeFunc [concrete = constants.%B.SomeFunc] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.787 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.787 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.e39 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.e39 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc36: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc36: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %self.param: %B = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B [concrete = constants.%B] // CHECK:STDOUT: %self: %B = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.internal.f2f [concrete = constants.%complete_type.39f] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.internal.a00 [concrete = constants.%complete_type.aff] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1442,14 +1442,14 @@ class B { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %i32 [concrete] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %i32} [concrete] -// CHECK:STDOUT: %complete_type.9a8: = complete_type_witness %struct_type.x [concrete] +// CHECK:STDOUT: %complete_type.0c6: = complete_type_witness %struct_type.x [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %A [concrete] -// CHECK:STDOUT: %pattern_type.787: type = pattern_type %B [concrete] +// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete] // CHECK:STDOUT: %B.F.type: type = fn_type @B.F [concrete] // CHECK:STDOUT: %B.F: %B.F.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.722: type = struct_type {.base: %A} [concrete] -// CHECK:STDOUT: %complete_type.27e: = complete_type_witness %struct_type.base.722 [concrete] +// CHECK:STDOUT: %struct_type.base.cb7: type = struct_type {.base: %A} [concrete] +// CHECK:STDOUT: %complete_type.d5e: = complete_type_witness %struct_type.base.cb7 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1474,7 +1474,7 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %.loc5: %A.elem = field_decl x, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x [concrete = constants.%complete_type.9a8] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x [concrete = constants.%complete_type.0c6] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1487,14 +1487,14 @@ class B { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %.loc9: %B.elem = base_decl %A.ref, element0 [concrete] // CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [concrete = constants.%B.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.787 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.787 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.e39 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.e39 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %B = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B [concrete = constants.%B] // CHECK:STDOUT: %self: %B = value_binding self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.722 [concrete = constants.%complete_type.27e] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.cb7 [concrete = constants.%complete_type.d5e] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1523,14 +1523,14 @@ class B { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %i32 [concrete] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %i32} [concrete] -// CHECK:STDOUT: %complete_type.9a8: = complete_type_witness %struct_type.x [concrete] +// CHECK:STDOUT: %complete_type.0c6: = complete_type_witness %struct_type.x [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %A [concrete] -// CHECK:STDOUT: %pattern_type.787: type = pattern_type %B [concrete] +// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete] // CHECK:STDOUT: %B.F.type: type = fn_type @B.F [concrete] // CHECK:STDOUT: %B.F: %B.F.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.722: type = struct_type {.base: %A} [concrete] -// CHECK:STDOUT: %complete_type.27e: = complete_type_witness %struct_type.base.722 [concrete] +// CHECK:STDOUT: %struct_type.base.cb7: type = struct_type {.base: %A} [concrete] +// CHECK:STDOUT: %complete_type.d5e: = complete_type_witness %struct_type.base.cb7 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1555,7 +1555,7 @@ class B { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %.loc5: %A.elem = field_decl x, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x [concrete = constants.%complete_type.9a8] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x [concrete = constants.%complete_type.0c6] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1568,14 +1568,14 @@ class B { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %.loc9: %B.elem = base_decl %A.ref, element0 [concrete] // CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [concrete = constants.%B.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.787 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.787 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.e39 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.e39 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %B = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B [concrete = constants.%B] // CHECK:STDOUT: %self: %B = value_binding self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.722 [concrete = constants.%complete_type.27e] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.cb7 [concrete = constants.%complete_type.d5e] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/class/access/todo_access_modifiers.carbon b/toolchain/check/testdata/class/access/todo_access_modifiers.carbon index 044d4b43af06..cd81a3bc9a8b 100644 --- a/toolchain/check/testdata/class/access/todo_access_modifiers.carbon +++ b/toolchain/check/testdata/class/access/todo_access_modifiers.carbon @@ -37,7 +37,7 @@ class Access { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Access.elem: type = unbound_element_type %Access, %i32 [concrete] // CHECK:STDOUT: %struct_type.k.l: type = struct_type {.k: %i32, .l: %i32} [concrete] -// CHECK:STDOUT: %complete_type.c7d: = complete_type_witness %struct_type.k.l [concrete] +// CHECK:STDOUT: %complete_type.047: = complete_type_witness %struct_type.k.l [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -63,7 +63,7 @@ class Access { // CHECK:STDOUT: %Access.G.decl: %Access.G.type = fn_decl @Access.G [concrete = constants.%Access.G] {} {} // CHECK:STDOUT: %.loc21: %Access.elem = field_decl k, element0 [concrete] // CHECK:STDOUT: %.loc23: %Access.elem = field_decl l, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.k.l [concrete = constants.%complete_type.c7d] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.k.l [concrete = constants.%complete_type.047] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/class/adapter/adapt.carbon b/toolchain/check/testdata/class/adapter/adapt.carbon index 205f333f6565..8671a56e43b0 100644 --- a/toolchain/check/testdata/class/adapter/adapt.carbon +++ b/toolchain/check/testdata/class/adapter/adapt.carbon @@ -80,7 +80,7 @@ interface I { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %SomeClass.elem: type = unbound_element_type %SomeClass, %i32 [concrete] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete] -// CHECK:STDOUT: %complete_type.abf: = complete_type_witness %struct_type.a.b [concrete] +// CHECK:STDOUT: %complete_type.7b9: = complete_type_witness %struct_type.a.b [concrete] // CHECK:STDOUT: %SomeClassAdapter: type = class_type @SomeClassAdapter [concrete] // CHECK:STDOUT: %StructAdapter: type = class_type @StructAdapter [concrete] // CHECK:STDOUT: } @@ -110,7 +110,7 @@ interface I { // CHECK:STDOUT: class @SomeClass { // CHECK:STDOUT: %.loc5: %SomeClass.elem = field_decl a, element0 [concrete] // CHECK:STDOUT: %.loc6: %SomeClass.elem = field_decl b, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.abf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.7b9] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -122,7 +122,7 @@ interface I { // CHECK:STDOUT: class @SomeClassAdapter { // CHECK:STDOUT: %SomeClass.ref: type = name_ref SomeClass, file.%SomeClass.decl [concrete = constants.%SomeClass] // CHECK:STDOUT: adapt_decl %SomeClass.ref [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.abf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.7b9] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -135,7 +135,7 @@ interface I { // CHECK:STDOUT: %i32.loc14_23: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b] // CHECK:STDOUT: adapt_decl %struct_type.a.b [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.abf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.7b9] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/class/adapter/adapt_copy.carbon b/toolchain/check/testdata/class/adapter/adapt_copy.carbon index c551c5fa4662..935fff73fd10 100644 --- a/toolchain/check/testdata/class/adapter/adapt_copy.carbon +++ b/toolchain/check/testdata/class/adapter/adapt_copy.carbon @@ -176,27 +176,27 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %pattern_type.8c3: type = pattern_type %AdaptCopyable [concrete] -// CHECK:STDOUT: %.d6a: Core.Form = init_form %AdaptCopyable [concrete] +// CHECK:STDOUT: %pattern_type.3b9: type = pattern_type %AdaptCopyable [concrete] +// CHECK:STDOUT: %.748: Core.Form = init_form %AdaptCopyable [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc16_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: %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] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.830: %tuple.type.24b = tuple_value (%AdaptCopyable, %u32) [concrete] -// CHECK:STDOUT: %tuple.type.26d: type = tuple_type (%AdaptCopyable, %u32) [concrete] -// CHECK:STDOUT: %pattern_type.6f8: type = pattern_type %tuple.type.26d [concrete] -// CHECK:STDOUT: %.081: Core.Form = init_form %tuple.type.26d [concrete] +// CHECK:STDOUT: %tuple.ca7: %tuple.type.24b = tuple_value (%AdaptCopyable, %u32) [concrete] +// CHECK:STDOUT: %tuple.type.28f: type = tuple_type (%AdaptCopyable, %u32) [concrete] +// CHECK:STDOUT: %pattern_type.c42: type = pattern_type %tuple.type.28f [concrete] +// CHECK:STDOUT: %.ac9: Core.Form = init_form %tuple.type.28f [concrete] // CHECK:STDOUT: %InTuple.type: type = fn_type @InTuple [concrete] // CHECK:STDOUT: %InTuple: %InTuple.type = struct_value () [concrete] // CHECK:STDOUT: %u32.builtin: type = int_type unsigned, %int_32 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.5: type = fn_type @Destroy.Op.loc35_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.5: %Destroy.Op.type.790b3b.5 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc35_3.3 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.5: %Destroy.Op.type.1d8f74.5 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -224,13 +224,13 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %AdaptCopyable.decl: type = class_decl @AdaptCopyable [concrete = constants.%AdaptCopyable] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.8c3 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.8c3 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.8c3 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.8c3 = return_slot_pattern %return.param_patt, %AdaptCopyable.ref.loc8_27 [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.3b9 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.3b9 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.3b9 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.3b9 = return_slot_pattern %return.param_patt, %AdaptCopyable.ref.loc8_27 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptCopyable.ref.loc8_27: type = name_ref AdaptCopyable, file.%AdaptCopyable.decl [concrete = constants.%AdaptCopyable] -// CHECK:STDOUT: %.loc8: Core.Form = init_form %AdaptCopyable.ref.loc8_27 [concrete = constants.%.d6a] +// CHECK:STDOUT: %.loc8: Core.Form = init_form %AdaptCopyable.ref.loc8_27 [concrete = constants.%.748] // CHECK:STDOUT: %c.param: %AdaptCopyable = value_param call_param0 // CHECK:STDOUT: %AdaptCopyable.ref.loc8_9: type = name_ref AdaptCopyable, file.%AdaptCopyable.decl [concrete = constants.%AdaptCopyable] // CHECK:STDOUT: %c: %AdaptCopyable = value_binding c, %c.param @@ -238,26 +238,26 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %return: ref %AdaptCopyable = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InTuple.decl: %InTuple.type = fn_decl @InTuple [concrete = constants.%InTuple] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.6f8 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.6f8 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.6f8 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.6f8 = return_slot_pattern %return.param_patt, %.loc27_59.2 [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.c42 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.c42 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.c42 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.c42 = return_slot_pattern %return.param_patt, %.loc27_59.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptCopyable.ref.loc27_41: type = name_ref AdaptCopyable, file.%AdaptCopyable.decl [concrete = constants.%AdaptCopyable] // CHECK:STDOUT: %u32.loc27_56: type = type_literal constants.%u32 [concrete = constants.%u32] -// CHECK:STDOUT: %.loc27_59.1: %tuple.type.24b = tuple_literal (%AdaptCopyable.ref.loc27_41, %u32.loc27_56) [concrete = constants.%tuple.830] -// CHECK:STDOUT: %.loc27_59.2: type = converted %.loc27_59.1, constants.%tuple.type.26d [concrete = constants.%tuple.type.26d] -// CHECK:STDOUT: %.loc27_59.3: Core.Form = init_form %.loc27_59.2 [concrete = constants.%.081] -// CHECK:STDOUT: %c.param: %tuple.type.26d = value_param call_param0 -// CHECK:STDOUT: %.loc27_34.1: type = splice_block %.loc27_34.3 [concrete = constants.%tuple.type.26d] { +// CHECK:STDOUT: %.loc27_59.1: %tuple.type.24b = tuple_literal (%AdaptCopyable.ref.loc27_41, %u32.loc27_56) [concrete = constants.%tuple.ca7] +// CHECK:STDOUT: %.loc27_59.2: type = converted %.loc27_59.1, constants.%tuple.type.28f [concrete = constants.%tuple.type.28f] +// CHECK:STDOUT: %.loc27_59.3: Core.Form = init_form %.loc27_59.2 [concrete = constants.%.ac9] +// CHECK:STDOUT: %c.param: %tuple.type.28f = value_param call_param0 +// CHECK:STDOUT: %.loc27_34.1: type = splice_block %.loc27_34.3 [concrete = constants.%tuple.type.28f] { // CHECK:STDOUT: %AdaptCopyable.ref.loc27_16: type = name_ref AdaptCopyable, file.%AdaptCopyable.decl [concrete = constants.%AdaptCopyable] // CHECK:STDOUT: %u32.loc27_31: type = type_literal constants.%u32 [concrete = constants.%u32] -// CHECK:STDOUT: %.loc27_34.2: %tuple.type.24b = tuple_literal (%AdaptCopyable.ref.loc27_16, %u32.loc27_31) [concrete = constants.%tuple.830] -// CHECK:STDOUT: %.loc27_34.3: type = converted %.loc27_34.2, constants.%tuple.type.26d [concrete = constants.%tuple.type.26d] +// CHECK:STDOUT: %.loc27_34.2: %tuple.type.24b = tuple_literal (%AdaptCopyable.ref.loc27_16, %u32.loc27_31) [concrete = constants.%tuple.ca7] +// CHECK:STDOUT: %.loc27_34.3: type = converted %.loc27_34.2, constants.%tuple.type.28f [concrete = constants.%tuple.type.28f] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %tuple.type.26d = value_binding c, %c.param -// CHECK:STDOUT: %return.param: ref %tuple.type.26d = out_param call_param1 -// CHECK:STDOUT: %return: ref %tuple.type.26d = return_slot %return.param +// CHECK:STDOUT: %c: %tuple.type.28f = value_binding c, %c.param +// CHECK:STDOUT: %return.param: ref %tuple.type.28f = out_param call_param1 +// CHECK:STDOUT: %return: ref %tuple.type.28f = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -274,8 +274,8 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: fn @F(%c.param: %AdaptCopyable) -> out %return.param: %AdaptCopyable { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.8c3 = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.8c3 = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.3b9 = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.3b9 = var_pattern %d.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %d.var: ref %AdaptCopyable = var %d.var_patt // CHECK:STDOUT: %c.ref: %AdaptCopyable = name_ref c, %c @@ -284,7 +284,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %d: ref %AdaptCopyable = ref_binding d, %d.var // 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.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %d.var, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%d.var) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -296,27 +296,27 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @InTuple(%c.param: %tuple.type.26d) -> out %return.param: %tuple.type.26d { +// CHECK:STDOUT: fn @InTuple(%c.param: %tuple.type.28f) -> out %return.param: %tuple.type.28f { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.6f8 = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.6f8 = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.c42 = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.c42 = var_pattern %d.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %d.var: ref %tuple.type.26d = var %d.var_patt -// CHECK:STDOUT: %c.ref: %tuple.type.26d = name_ref c, %c +// CHECK:STDOUT: %d.var: ref %tuple.type.28f = var %d.var_patt +// CHECK:STDOUT: %c.ref: %tuple.type.28f = name_ref c, %c // CHECK:STDOUT: %tuple.elem0.loc35: %AdaptCopyable = tuple_access %c.ref, element0 // CHECK:STDOUT: assign %d.var, -// CHECK:STDOUT: %.loc35_29.1: type = splice_block %.loc35_29.3 [concrete = constants.%tuple.type.26d] { +// CHECK:STDOUT: %.loc35_29.1: type = splice_block %.loc35_29.3 [concrete = constants.%tuple.type.28f] { // CHECK:STDOUT: %AdaptCopyable.ref.loc35: type = name_ref AdaptCopyable, file.%AdaptCopyable.decl [concrete = constants.%AdaptCopyable] // CHECK:STDOUT: %u32.loc35: type = type_literal constants.%u32 [concrete = constants.%u32] -// CHECK:STDOUT: %.loc35_29.2: %tuple.type.24b = tuple_literal (%AdaptCopyable.ref.loc35, %u32.loc35) [concrete = constants.%tuple.830] -// CHECK:STDOUT: %.loc35_29.3: type = converted %.loc35_29.2, constants.%tuple.type.26d [concrete = constants.%tuple.type.26d] +// CHECK:STDOUT: %.loc35_29.2: %tuple.type.24b = tuple_literal (%AdaptCopyable.ref.loc35, %u32.loc35) [concrete = constants.%tuple.ca7] +// CHECK:STDOUT: %.loc35_29.3: type = converted %.loc35_29.2, constants.%tuple.type.28f [concrete = constants.%tuple.type.28f] // CHECK:STDOUT: } -// CHECK:STDOUT: %d: ref %tuple.type.26d = ref_binding d, %d.var -// CHECK:STDOUT: %d.ref: ref %tuple.type.26d = name_ref d, %d +// CHECK:STDOUT: %d: ref %tuple.type.28f = ref_binding d, %d.var +// 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.2dd605.5 +// 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: return to %return.param // CHECK:STDOUT: } @@ -328,7 +328,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc35_3.3(%self.param: ref %tuple.type.26d) { +// CHECK:STDOUT: fn @Destroy.Op.loc35_3.3(%self.param: ref %tuple.type.28f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -344,48 +344,48 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.79d: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.b59: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %complete_type.3bf: = complete_type_witness %tuple.type.e5a [concrete] -// CHECK:STDOUT: %pattern_type.df9: type = pattern_type %AdaptTuple [concrete] -// CHECK:STDOUT: %.482: Core.Form = init_form %AdaptTuple [concrete] +// CHECK:STDOUT: %complete_type.6c4: = complete_type_witness %tuple.type.e55 [concrete] +// CHECK:STDOUT: %pattern_type.ea1: type = pattern_type %AdaptTuple [concrete] +// CHECK:STDOUT: %.6bf: Core.Form = init_form %AdaptTuple [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.14d: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet.14d [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.987: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet.987 [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.790b3b.4: type = fn_type @Destroy.Op.loc9_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: %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] -// CHECK:STDOUT: %tuple.900: %tuple.type.24b = tuple_value (%AdaptTuple, %u32) [concrete] -// CHECK:STDOUT: %tuple.type.a9e: type = tuple_type (%AdaptTuple, %u32) [concrete] -// CHECK:STDOUT: %pattern_type.14f: type = pattern_type %tuple.type.a9e [concrete] -// CHECK:STDOUT: %.e59: Core.Form = init_form %tuple.type.a9e [concrete] +// CHECK:STDOUT: %tuple.9ca: %tuple.type.24b = tuple_value (%AdaptTuple, %u32) [concrete] +// CHECK:STDOUT: %tuple.type.e88: type = tuple_type (%AdaptTuple, %u32) [concrete] +// CHECK:STDOUT: %pattern_type.996: type = pattern_type %tuple.type.e88 [concrete] +// CHECK:STDOUT: %.c2f: Core.Form = init_form %tuple.type.e88 [concrete] // CHECK:STDOUT: %InTuple.type: type = fn_type @InTuple [concrete] // CHECK:STDOUT: %InTuple: %InTuple.type = struct_value () [concrete] // CHECK:STDOUT: %u32.builtin: type = int_type unsigned, %int_32 [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.743: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.521: %UInt.as.Copy.impl.Op.type.743 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.cfa: = impl_witness imports.%Copy.impl_witness_table.306, @UInt.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.46f: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.a73: %UInt.as.Copy.impl.Op.type.46f = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.87e: %Copy.type = facet_value %u32, (%Copy.impl_witness.cfa) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7b4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.87e) [concrete] -// CHECK:STDOUT: %.637: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7b4, %Copy.facet.87e [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.a73, @UInt.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.7: type = fn_type @Destroy.Op.loc14_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.7: %Destroy.Op.type.790b3b.7 = struct_value () [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.0c5: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%N) [symbolic] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.38a: %UInt.as.Copy.impl.Op.type.0c5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.9d9: = impl_witness imports.%Copy.impl_witness_table.fe3, @UInt.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.2fd: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.46f: %UInt.as.Copy.impl.Op.type.2fd = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.a37: %Copy.type = facet_value %u32, (%Copy.impl_witness.9d9) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.ec6: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.a37) [concrete] +// CHECK:STDOUT: %.5f1: type = fn_type_with_self_type %Copy.WithSelf.Op.type.ec6, %Copy.facet.a37 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -399,12 +399,12 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %Core.UInt: %UInt.type = import_ref Core//prelude/parts/uint, UInt, loaded [concrete = constants.%UInt.generic] -// CHECK:STDOUT: %Core.import_ref.3cf: @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op.type (%UInt.as.Copy.impl.Op.type.743) = import_ref Core//prelude/parts/uint, loc{{\d+_\d+}}, loaded [symbolic = @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op (constants.%UInt.as.Copy.impl.Op.521)] -// CHECK:STDOUT: %Copy.impl_witness_table.306 = impl_witness_table (%Core.import_ref.3cf), @UInt.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.791: @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op.type (%UInt.as.Copy.impl.Op.type.0c5) = import_ref Core//prelude/parts/uint, loc{{\d+_\d+}}, loaded [symbolic = @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op (constants.%UInt.as.Copy.impl.Op.38a)] +// CHECK:STDOUT: %Copy.impl_witness_table.fe3 = impl_witness_table (%Core.import_ref.791), @UInt.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -417,13 +417,13 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %AdaptTuple.decl: type = class_decl @AdaptTuple [concrete = constants.%AdaptTuple] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.df9 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.df9 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.df9 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.df9 = return_slot_pattern %return.param_patt, %AdaptTuple.ref.loc8_24 [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.ea1 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.ea1 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.ea1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.ea1 = return_slot_pattern %return.param_patt, %AdaptTuple.ref.loc8_24 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptTuple.ref.loc8_24: type = name_ref AdaptTuple, file.%AdaptTuple.decl [concrete = constants.%AdaptTuple] -// CHECK:STDOUT: %.loc8: Core.Form = init_form %AdaptTuple.ref.loc8_24 [concrete = constants.%.482] +// CHECK:STDOUT: %.loc8: Core.Form = init_form %AdaptTuple.ref.loc8_24 [concrete = constants.%.6bf] // CHECK:STDOUT: %c.param: %AdaptTuple = value_param call_param0 // CHECK:STDOUT: %AdaptTuple.ref.loc8_9: type = name_ref AdaptTuple, file.%AdaptTuple.decl [concrete = constants.%AdaptTuple] // CHECK:STDOUT: %c: %AdaptTuple = value_binding c, %c.param @@ -431,36 +431,36 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %return: ref %AdaptTuple = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InTuple.decl: %InTuple.type = fn_decl @InTuple [concrete = constants.%InTuple] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.14f = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.14f = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.14f = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.14f = return_slot_pattern %return.param_patt, %.loc13_53.2 [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.996 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.996 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.996 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.996 = return_slot_pattern %return.param_patt, %.loc13_53.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptTuple.ref.loc13_38: type = name_ref AdaptTuple, file.%AdaptTuple.decl [concrete = constants.%AdaptTuple] // CHECK:STDOUT: %u32.loc13_50: type = type_literal constants.%u32 [concrete = constants.%u32] -// CHECK:STDOUT: %.loc13_53.1: %tuple.type.24b = tuple_literal (%AdaptTuple.ref.loc13_38, %u32.loc13_50) [concrete = constants.%tuple.900] -// CHECK:STDOUT: %.loc13_53.2: type = converted %.loc13_53.1, constants.%tuple.type.a9e [concrete = constants.%tuple.type.a9e] -// CHECK:STDOUT: %.loc13_53.3: Core.Form = init_form %.loc13_53.2 [concrete = constants.%.e59] -// CHECK:STDOUT: %c.param: %tuple.type.a9e = value_param call_param0 -// CHECK:STDOUT: %.loc13_31.1: type = splice_block %.loc13_31.3 [concrete = constants.%tuple.type.a9e] { +// CHECK:STDOUT: %.loc13_53.1: %tuple.type.24b = tuple_literal (%AdaptTuple.ref.loc13_38, %u32.loc13_50) [concrete = constants.%tuple.9ca] +// CHECK:STDOUT: %.loc13_53.2: type = converted %.loc13_53.1, constants.%tuple.type.e88 [concrete = constants.%tuple.type.e88] +// CHECK:STDOUT: %.loc13_53.3: Core.Form = init_form %.loc13_53.2 [concrete = constants.%.c2f] +// CHECK:STDOUT: %c.param: %tuple.type.e88 = value_param call_param0 +// CHECK:STDOUT: %.loc13_31.1: type = splice_block %.loc13_31.3 [concrete = constants.%tuple.type.e88] { // CHECK:STDOUT: %AdaptTuple.ref.loc13_16: type = name_ref AdaptTuple, file.%AdaptTuple.decl [concrete = constants.%AdaptTuple] // CHECK:STDOUT: %u32.loc13_28: type = type_literal constants.%u32 [concrete = constants.%u32] -// CHECK:STDOUT: %.loc13_31.2: %tuple.type.24b = tuple_literal (%AdaptTuple.ref.loc13_16, %u32.loc13_28) [concrete = constants.%tuple.900] -// CHECK:STDOUT: %.loc13_31.3: type = converted %.loc13_31.2, constants.%tuple.type.a9e [concrete = constants.%tuple.type.a9e] +// CHECK:STDOUT: %.loc13_31.2: %tuple.type.24b = tuple_literal (%AdaptTuple.ref.loc13_16, %u32.loc13_28) [concrete = constants.%tuple.9ca] +// CHECK:STDOUT: %.loc13_31.3: type = converted %.loc13_31.2, constants.%tuple.type.e88 [concrete = constants.%tuple.type.e88] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %tuple.type.a9e = value_binding c, %c.param -// CHECK:STDOUT: %return.param: ref %tuple.type.a9e = out_param call_param1 -// CHECK:STDOUT: %return: ref %tuple.type.a9e = return_slot %return.param +// CHECK:STDOUT: %c: %tuple.type.e88 = value_binding c, %c.param +// CHECK:STDOUT: %return.param: ref %tuple.type.e88 = out_param call_param1 +// CHECK:STDOUT: %return: ref %tuple.type.e88 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @AdaptTuple { // CHECK:STDOUT: %i32.loc5_10: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc5_15: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc5_18: %tuple.type.24b = tuple_literal (%i32.loc5_10, %i32.loc5_15) [concrete = constants.%tuple.79d] -// CHECK:STDOUT: %.loc5_19: type = converted %.loc5_18, constants.%tuple.type.e5a [concrete = constants.%tuple.type.e5a] +// CHECK:STDOUT: %.loc5_18: %tuple.type.24b = tuple_literal (%i32.loc5_10, %i32.loc5_15) [concrete = constants.%tuple.b59] +// CHECK:STDOUT: %.loc5_19: type = converted %.loc5_18, constants.%tuple.type.e55 [concrete = constants.%tuple.type.e55] // CHECK:STDOUT: adapt_decl %.loc5_19 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%tuple.type.e5a [concrete = constants.%complete_type.3bf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%tuple.type.e55 [concrete = constants.%complete_type.6c4] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -470,60 +470,60 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: fn @F(%c.param: %AdaptTuple) -> out %return.param: %AdaptTuple { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.df9 = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.df9 = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.ea1 = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.ea1 = var_pattern %d.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %d.var: ref %AdaptTuple = var %d.var_patt // CHECK:STDOUT: %c.ref: %AdaptTuple = name_ref c, %c -// CHECK:STDOUT: %.loc9_3.1: %tuple.type.e5a = as_compatible %c.ref +// CHECK:STDOUT: %.loc9_3.1: %tuple.type.e55 = as_compatible %c.ref // CHECK:STDOUT: %tuple.elem0.loc9_3.1: %i32 = tuple_access %.loc9_3.1, element0 -// CHECK:STDOUT: %impl.elem0.loc9_3.1: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc9_3.1: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc9_3.1: = bound_method %tuple.elem0.loc9_3.1, %impl.elem0.loc9_3.1 // CHECK:STDOUT: %specific_fn.loc9_3.1: = specific_function %impl.elem0.loc9_3.1, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9_3.2: = bound_method %tuple.elem0.loc9_3.1, %specific_fn.loc9_3.1 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc9_3.1: init %i32 = call %bound_method.loc9_3.2(%tuple.elem0.loc9_3.1) -// CHECK:STDOUT: %.loc9_3.2: ref %tuple.type.e5a = as_compatible %d.var +// CHECK:STDOUT: %.loc9_3.2: ref %tuple.type.e55 = as_compatible %d.var // CHECK:STDOUT: %tuple.elem0.loc9_3.2: ref %i32 = tuple_access %.loc9_3.2, element0 // CHECK:STDOUT: %.loc9_3.3: init %i32 to %tuple.elem0.loc9_3.2 = in_place_init %Int.as.Copy.impl.Op.call.loc9_3.1 // CHECK:STDOUT: %tuple.elem1.loc9_3.1: %i32 = tuple_access %.loc9_3.1, element1 -// CHECK:STDOUT: %impl.elem0.loc9_3.2: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc9_3.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc9_3.3: = bound_method %tuple.elem1.loc9_3.1, %impl.elem0.loc9_3.2 // CHECK:STDOUT: %specific_fn.loc9_3.2: = specific_function %impl.elem0.loc9_3.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9_3.4: = bound_method %tuple.elem1.loc9_3.1, %specific_fn.loc9_3.2 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc9_3.2: init %i32 = call %bound_method.loc9_3.4(%tuple.elem1.loc9_3.1) // CHECK:STDOUT: %tuple.elem1.loc9_3.2: ref %i32 = tuple_access %.loc9_3.2, element1 // CHECK:STDOUT: %.loc9_3.4: init %i32 to %tuple.elem1.loc9_3.2 = in_place_init %Int.as.Copy.impl.Op.call.loc9_3.2 -// CHECK:STDOUT: %.loc9_3.5: init %tuple.type.e5a to %.loc9_3.2 = tuple_init (%.loc9_3.3, %.loc9_3.4) +// CHECK:STDOUT: %.loc9_3.5: init %tuple.type.e55 to %.loc9_3.2 = tuple_init (%.loc9_3.3, %.loc9_3.4) // CHECK:STDOUT: %.loc9_3.6: init %AdaptTuple = as_compatible %.loc9_3.5 // CHECK:STDOUT: %.loc9_3.7: init %AdaptTuple = converted %c.ref, %.loc9_3.6 // CHECK:STDOUT: assign %d.var, %.loc9_3.7 // CHECK:STDOUT: %AdaptTuple.ref.loc9: type = name_ref AdaptTuple, file.%AdaptTuple.decl [concrete = constants.%AdaptTuple] // CHECK:STDOUT: %d: ref %AdaptTuple = ref_binding d, %d.var // CHECK:STDOUT: %d.ref: ref %AdaptTuple = name_ref d, %d -// CHECK:STDOUT: %.loc10_11.1: ref %tuple.type.e5a = as_compatible %d.ref +// CHECK:STDOUT: %.loc10_11.1: ref %tuple.type.e55 = as_compatible %d.ref // CHECK:STDOUT: %tuple.elem0.loc10_11.1: ref %i32 = tuple_access %.loc10_11.1, element0 // CHECK:STDOUT: %.loc10_11.2: %i32 = acquire_value %tuple.elem0.loc10_11.1 -// CHECK:STDOUT: %impl.elem0.loc10_11.1: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc10_11.1: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc10_11.1: = bound_method %.loc10_11.2, %impl.elem0.loc10_11.1 // CHECK:STDOUT: %specific_fn.loc10_11.1: = specific_function %impl.elem0.loc10_11.1, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc10_11.2: = bound_method %.loc10_11.2, %specific_fn.loc10_11.1 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc10_11.1: init %i32 = call %bound_method.loc10_11.2(%.loc10_11.2) -// CHECK:STDOUT: %.loc10_11.3: ref %tuple.type.e5a = as_compatible %return.param +// CHECK:STDOUT: %.loc10_11.3: ref %tuple.type.e55 = as_compatible %return.param // CHECK:STDOUT: %tuple.elem0.loc10_11.2: ref %i32 = tuple_access %.loc10_11.3, element0 // CHECK:STDOUT: %.loc10_11.4: init %i32 to %tuple.elem0.loc10_11.2 = in_place_init %Int.as.Copy.impl.Op.call.loc10_11.1 // CHECK:STDOUT: %tuple.elem1.loc10_11.1: ref %i32 = tuple_access %.loc10_11.1, element1 // CHECK:STDOUT: %.loc10_11.5: %i32 = acquire_value %tuple.elem1.loc10_11.1 -// CHECK:STDOUT: %impl.elem0.loc10_11.2: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc10_11.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc10_11.3: = bound_method %.loc10_11.5, %impl.elem0.loc10_11.2 // CHECK:STDOUT: %specific_fn.loc10_11.2: = specific_function %impl.elem0.loc10_11.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc10_11.4: = bound_method %.loc10_11.5, %specific_fn.loc10_11.2 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc10_11.2: init %i32 = call %bound_method.loc10_11.4(%.loc10_11.5) // CHECK:STDOUT: %tuple.elem1.loc10_11.2: ref %i32 = tuple_access %.loc10_11.3, element1 // CHECK:STDOUT: %.loc10_11.6: init %i32 to %tuple.elem1.loc10_11.2 = in_place_init %Int.as.Copy.impl.Op.call.loc10_11.2 -// CHECK:STDOUT: %.loc10_11.7: init %tuple.type.e5a to %.loc10_11.3 = tuple_init (%.loc10_11.4, %.loc10_11.6) +// 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.2dd605.4 +// 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: return %.loc10_11.9 to %return.param // CHECK:STDOUT: } @@ -535,7 +535,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %tuple.type.e5a) { +// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %tuple.type.e55) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -545,93 +545,93 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @InTuple(%c.param: %tuple.type.a9e) -> out %return.param: %tuple.type.a9e { +// CHECK:STDOUT: fn @InTuple(%c.param: %tuple.type.e88) -> out %return.param: %tuple.type.e88 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.14f = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.14f = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.996 = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.996 = var_pattern %d.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %d.var: ref %tuple.type.a9e = var %d.var_patt -// CHECK:STDOUT: %c.ref: %tuple.type.a9e = name_ref c, %c +// CHECK:STDOUT: %d.var: ref %tuple.type.e88 = var %d.var_patt +// CHECK:STDOUT: %c.ref: %tuple.type.e88 = name_ref c, %c // CHECK:STDOUT: %tuple.elem0.loc14_30.1: %AdaptTuple = tuple_access %c.ref, element0 -// CHECK:STDOUT: %.loc14_30.1: %tuple.type.e5a = as_compatible %tuple.elem0.loc14_30.1 +// CHECK:STDOUT: %.loc14_30.1: %tuple.type.e55 = as_compatible %tuple.elem0.loc14_30.1 // CHECK:STDOUT: %tuple.elem0.loc14_30.2: %i32 = tuple_access %.loc14_30.1, element0 -// CHECK:STDOUT: %impl.elem0.loc14_30.1: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc14_30.1: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc14_30.1: = bound_method %tuple.elem0.loc14_30.2, %impl.elem0.loc14_30.1 // CHECK:STDOUT: %specific_fn.loc14_30.1: = specific_function %impl.elem0.loc14_30.1, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc14_30.2: = bound_method %tuple.elem0.loc14_30.2, %specific_fn.loc14_30.1 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc14_30.1: init %i32 = call %bound_method.loc14_30.2(%tuple.elem0.loc14_30.2) // CHECK:STDOUT: %tuple.elem0.loc14_30.3: ref %AdaptTuple = tuple_access %d.var, element0 -// CHECK:STDOUT: %.loc14_30.2: ref %tuple.type.e5a = as_compatible %tuple.elem0.loc14_30.3 +// CHECK:STDOUT: %.loc14_30.2: ref %tuple.type.e55 = as_compatible %tuple.elem0.loc14_30.3 // CHECK:STDOUT: %tuple.elem0.loc14_30.4: ref %i32 = tuple_access %.loc14_30.2, element0 // CHECK:STDOUT: %.loc14_30.3: init %i32 to %tuple.elem0.loc14_30.4 = in_place_init %Int.as.Copy.impl.Op.call.loc14_30.1 // CHECK:STDOUT: %tuple.elem1.loc14_30.1: %i32 = tuple_access %.loc14_30.1, element1 -// CHECK:STDOUT: %impl.elem0.loc14_30.2: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc14_30.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc14_30.3: = bound_method %tuple.elem1.loc14_30.1, %impl.elem0.loc14_30.2 // CHECK:STDOUT: %specific_fn.loc14_30.2: = specific_function %impl.elem0.loc14_30.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc14_30.4: = bound_method %tuple.elem1.loc14_30.1, %specific_fn.loc14_30.2 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc14_30.2: init %i32 = call %bound_method.loc14_30.4(%tuple.elem1.loc14_30.1) // CHECK:STDOUT: %tuple.elem1.loc14_30.2: ref %i32 = tuple_access %.loc14_30.2, element1 // CHECK:STDOUT: %.loc14_30.4: init %i32 to %tuple.elem1.loc14_30.2 = in_place_init %Int.as.Copy.impl.Op.call.loc14_30.2 -// CHECK:STDOUT: %.loc14_30.5: init %tuple.type.e5a to %.loc14_30.2 = tuple_init (%.loc14_30.3, %.loc14_30.4) +// CHECK:STDOUT: %.loc14_30.5: init %tuple.type.e55 to %.loc14_30.2 = tuple_init (%.loc14_30.3, %.loc14_30.4) // CHECK:STDOUT: %.loc14_30.6: init %AdaptTuple = as_compatible %.loc14_30.5 // CHECK:STDOUT: %.loc14_30.7: init %AdaptTuple = converted %tuple.elem0.loc14_30.1, %.loc14_30.6 // CHECK:STDOUT: %tuple.elem1.loc14_30.3: %u32 = tuple_access %c.ref, element1 -// CHECK:STDOUT: %impl.elem0.loc14_30.3: %.637 = impl_witness_access constants.%Copy.impl_witness.cfa, element0 [concrete = constants.%UInt.as.Copy.impl.Op.a73] +// CHECK:STDOUT: %impl.elem0.loc14_30.3: %.5f1 = impl_witness_access constants.%Copy.impl_witness.9d9, element0 [concrete = constants.%UInt.as.Copy.impl.Op.46f] // CHECK:STDOUT: %bound_method.loc14_30.5: = bound_method %tuple.elem1.loc14_30.3, %impl.elem0.loc14_30.3 // CHECK:STDOUT: %specific_fn.loc14_30.3: = specific_function %impl.elem0.loc14_30.3, @UInt.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%UInt.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc14_30.6: = bound_method %tuple.elem1.loc14_30.3, %specific_fn.loc14_30.3 // CHECK:STDOUT: %UInt.as.Copy.impl.Op.call.loc14: init %u32 = call %bound_method.loc14_30.6(%tuple.elem1.loc14_30.3) // CHECK:STDOUT: %tuple.elem1.loc14_30.4: ref %u32 = tuple_access %d.var, element1 // CHECK:STDOUT: %.loc14_30.8: init %u32 to %tuple.elem1.loc14_30.4 = in_place_init %UInt.as.Copy.impl.Op.call.loc14 -// CHECK:STDOUT: %.loc14_30.9: init %tuple.type.a9e to %d.var = tuple_init (%.loc14_30.7, %.loc14_30.8) -// CHECK:STDOUT: %.loc14_3: init %tuple.type.a9e = converted %c.ref, %.loc14_30.9 +// CHECK:STDOUT: %.loc14_30.9: init %tuple.type.e88 to %d.var = tuple_init (%.loc14_30.7, %.loc14_30.8) +// CHECK:STDOUT: %.loc14_3: init %tuple.type.e88 = converted %c.ref, %.loc14_30.9 // CHECK:STDOUT: assign %d.var, %.loc14_3 -// CHECK:STDOUT: %.loc14_26.1: type = splice_block %.loc14_26.3 [concrete = constants.%tuple.type.a9e] { +// CHECK:STDOUT: %.loc14_26.1: type = splice_block %.loc14_26.3 [concrete = constants.%tuple.type.e88] { // CHECK:STDOUT: %AdaptTuple.ref.loc14: type = name_ref AdaptTuple, file.%AdaptTuple.decl [concrete = constants.%AdaptTuple] // CHECK:STDOUT: %u32.loc14: type = type_literal constants.%u32 [concrete = constants.%u32] -// CHECK:STDOUT: %.loc14_26.2: %tuple.type.24b = tuple_literal (%AdaptTuple.ref.loc14, %u32.loc14) [concrete = constants.%tuple.900] -// CHECK:STDOUT: %.loc14_26.3: type = converted %.loc14_26.2, constants.%tuple.type.a9e [concrete = constants.%tuple.type.a9e] +// CHECK:STDOUT: %.loc14_26.2: %tuple.type.24b = tuple_literal (%AdaptTuple.ref.loc14, %u32.loc14) [concrete = constants.%tuple.9ca] +// CHECK:STDOUT: %.loc14_26.3: type = converted %.loc14_26.2, constants.%tuple.type.e88 [concrete = constants.%tuple.type.e88] // CHECK:STDOUT: } -// CHECK:STDOUT: %d: ref %tuple.type.a9e = ref_binding d, %d.var -// CHECK:STDOUT: %d.ref: ref %tuple.type.a9e = name_ref d, %d +// CHECK:STDOUT: %d: ref %tuple.type.e88 = ref_binding d, %d.var +// CHECK:STDOUT: %d.ref: ref %tuple.type.e88 = name_ref d, %d // CHECK:STDOUT: %tuple.elem0.loc15_10.1: ref %AdaptTuple = tuple_access %d.ref, element0 -// CHECK:STDOUT: %.loc15_10.1: ref %tuple.type.e5a = as_compatible %tuple.elem0.loc15_10.1 +// CHECK:STDOUT: %.loc15_10.1: ref %tuple.type.e55 = as_compatible %tuple.elem0.loc15_10.1 // CHECK:STDOUT: %tuple.elem0.loc15_10.2: ref %i32 = tuple_access %.loc15_10.1, element0 // CHECK:STDOUT: %.loc15_10.2: %i32 = acquire_value %tuple.elem0.loc15_10.2 -// CHECK:STDOUT: %impl.elem0.loc15_10.1: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc15_10.1: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc15_10.1: = bound_method %.loc15_10.2, %impl.elem0.loc15_10.1 // CHECK:STDOUT: %specific_fn.loc15_10.1: = specific_function %impl.elem0.loc15_10.1, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc15_10.2: = bound_method %.loc15_10.2, %specific_fn.loc15_10.1 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc15_10.1: init %i32 = call %bound_method.loc15_10.2(%.loc15_10.2) // CHECK:STDOUT: %tuple.elem0.loc15_10.3: ref %AdaptTuple = tuple_access %return.param, element0 -// CHECK:STDOUT: %.loc15_10.3: ref %tuple.type.e5a = as_compatible %tuple.elem0.loc15_10.3 +// CHECK:STDOUT: %.loc15_10.3: ref %tuple.type.e55 = as_compatible %tuple.elem0.loc15_10.3 // CHECK:STDOUT: %tuple.elem0.loc15_10.4: ref %i32 = tuple_access %.loc15_10.3, element0 // CHECK:STDOUT: %.loc15_10.4: init %i32 to %tuple.elem0.loc15_10.4 = in_place_init %Int.as.Copy.impl.Op.call.loc15_10.1 // CHECK:STDOUT: %tuple.elem1.loc15_10.1: ref %i32 = tuple_access %.loc15_10.1, element1 // CHECK:STDOUT: %.loc15_10.5: %i32 = acquire_value %tuple.elem1.loc15_10.1 -// CHECK:STDOUT: %impl.elem0.loc15_10.2: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc15_10.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc15_10.3: = bound_method %.loc15_10.5, %impl.elem0.loc15_10.2 // CHECK:STDOUT: %specific_fn.loc15_10.2: = specific_function %impl.elem0.loc15_10.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc15_10.4: = bound_method %.loc15_10.5, %specific_fn.loc15_10.2 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc15_10.2: init %i32 = call %bound_method.loc15_10.4(%.loc15_10.5) // CHECK:STDOUT: %tuple.elem1.loc15_10.2: ref %i32 = tuple_access %.loc15_10.3, element1 // CHECK:STDOUT: %.loc15_10.6: init %i32 to %tuple.elem1.loc15_10.2 = in_place_init %Int.as.Copy.impl.Op.call.loc15_10.2 -// CHECK:STDOUT: %.loc15_10.7: init %tuple.type.e5a to %.loc15_10.3 = tuple_init (%.loc15_10.4, %.loc15_10.6) +// CHECK:STDOUT: %.loc15_10.7: init %tuple.type.e55 to %.loc15_10.3 = tuple_init (%.loc15_10.4, %.loc15_10.6) // CHECK:STDOUT: %.loc15_10.8: init %AdaptTuple = as_compatible %.loc15_10.7 // CHECK:STDOUT: %.loc15_10.9: init %AdaptTuple = converted %tuple.elem0.loc15_10.1, %.loc15_10.8 // CHECK:STDOUT: %tuple.elem1.loc15_10.3: ref %u32 = tuple_access %d.ref, element1 // CHECK:STDOUT: %.loc15_10.10: %u32 = acquire_value %tuple.elem1.loc15_10.3 -// CHECK:STDOUT: %impl.elem0.loc15_10.3: %.637 = impl_witness_access constants.%Copy.impl_witness.cfa, element0 [concrete = constants.%UInt.as.Copy.impl.Op.a73] +// CHECK:STDOUT: %impl.elem0.loc15_10.3: %.5f1 = impl_witness_access constants.%Copy.impl_witness.9d9, element0 [concrete = constants.%UInt.as.Copy.impl.Op.46f] // CHECK:STDOUT: %bound_method.loc15_10.5: = bound_method %.loc15_10.10, %impl.elem0.loc15_10.3 // CHECK:STDOUT: %specific_fn.loc15_10.3: = specific_function %impl.elem0.loc15_10.3, @UInt.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%UInt.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc15_10.6: = bound_method %.loc15_10.10, %specific_fn.loc15_10.3 // CHECK:STDOUT: %UInt.as.Copy.impl.Op.call.loc15: init %u32 = call %bound_method.loc15_10.6(%.loc15_10.10) // CHECK:STDOUT: %tuple.elem1.loc15_10.4: ref %u32 = tuple_access %return.param, element1 // 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.a9e to %return.param = tuple_init (%.loc15_10.9, %.loc15_10.11) -// CHECK:STDOUT: %.loc15_11: init %tuple.type.a9e = converted %d.ref, %.loc15_10.12 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %d.var, constants.%Destroy.Op.2dd605.7 +// 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: return %.loc15_11 to %return.param // CHECK:STDOUT: } @@ -643,7 +643,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_3.3(%self.param: ref %tuple.type.a9e) { +// CHECK:STDOUT: fn @Destroy.Op.loc14_3.3(%self.param: ref %tuple.type.e88) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -656,14 +656,14 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %AdaptNoncopyable: type = class_type @AdaptNoncopyable [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %pattern_type.f07: type = pattern_type %AdaptNoncopyable [concrete] -// CHECK:STDOUT: %.b35: Core.Form = init_form %AdaptNoncopyable [concrete] +// CHECK:STDOUT: %pattern_type.d14: type = pattern_type %AdaptNoncopyable [concrete] +// CHECK:STDOUT: %.a97: Core.Form = init_form %AdaptNoncopyable [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc20_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -688,13 +688,13 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Noncopyable.decl: type = class_decl @Noncopyable [concrete = constants.%Noncopyable] {} {} // CHECK:STDOUT: %AdaptNoncopyable.decl: type = class_decl @AdaptNoncopyable [concrete = constants.%AdaptNoncopyable] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.f07 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.f07 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.f07 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.f07 = return_slot_pattern %return.param_patt, %AdaptNoncopyable.ref.loc12_30 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.d14 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.d14 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.d14 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.d14 = return_slot_pattern %return.param_patt, %AdaptNoncopyable.ref.loc12_30 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptNoncopyable.ref.loc12_30: type = name_ref AdaptNoncopyable, file.%AdaptNoncopyable.decl [concrete = constants.%AdaptNoncopyable] -// CHECK:STDOUT: %.loc12: Core.Form = init_form %AdaptNoncopyable.ref.loc12_30 [concrete = constants.%.b35] +// CHECK:STDOUT: %.loc12: Core.Form = init_form %AdaptNoncopyable.ref.loc12_30 [concrete = constants.%.a97] // CHECK:STDOUT: %a.param: %AdaptNoncopyable = value_param call_param0 // CHECK:STDOUT: %AdaptNoncopyable.ref.loc12_9: type = name_ref AdaptNoncopyable, file.%AdaptNoncopyable.decl [concrete = constants.%AdaptNoncopyable] // CHECK:STDOUT: %a: %AdaptNoncopyable = value_binding a, %a.param @@ -725,8 +725,8 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: fn @G(%a.param: %AdaptNoncopyable) -> out %return.param: %AdaptNoncopyable { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f07 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.f07 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.d14 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.d14 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %AdaptNoncopyable = var %b.var_patt // CHECK:STDOUT: %a.ref: %AdaptNoncopyable = name_ref a, %a @@ -735,7 +735,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %b: ref %AdaptNoncopyable = ref_binding b, %b.var // 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.2dd605.2 +// 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: return to %return.param // CHECK:STDOUT: } @@ -761,27 +761,27 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.ff9: type = tuple_type (type, type, type) [concrete] -// CHECK:STDOUT: %tuple.a41: %tuple.type.ff9 = tuple_value (%i32, %Noncopyable, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.820: type = tuple_type (%i32, %Noncopyable, %i32) [concrete] +// CHECK:STDOUT: %tuple.97d: %tuple.type.ff9 = tuple_value (%i32, %Noncopyable, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.227: type = tuple_type (%i32, %Noncopyable, %i32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %complete_type.bad: = complete_type_witness %tuple.type.820 [concrete] -// CHECK:STDOUT: %pattern_type.0b1: type = pattern_type %AdaptNoncopyableIndirect [concrete] -// CHECK:STDOUT: %.150: Core.Form = init_form %AdaptNoncopyableIndirect [concrete] +// CHECK:STDOUT: %complete_type.591: = complete_type_witness %tuple.type.227 [concrete] +// CHECK:STDOUT: %pattern_type.be3: type = pattern_type %AdaptNoncopyableIndirect [concrete] +// CHECK:STDOUT: %.284: Core.Form = init_form %AdaptNoncopyableIndirect [concrete] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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.790b3b.6: type = fn_type @Destroy.Op.loc23_3.6 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -794,8 +794,8 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -810,13 +810,13 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Noncopyable.decl: type = class_decl @Noncopyable [concrete = constants.%Noncopyable] {} {} // CHECK:STDOUT: %AdaptNoncopyableIndirect.decl: type = class_decl @AdaptNoncopyableIndirect [concrete = constants.%AdaptNoncopyableIndirect] {} {} // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.0b1 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.0b1 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0b1 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0b1 = return_slot_pattern %return.param_patt, %AdaptNoncopyableIndirect.ref.loc12_38 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.be3 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.be3 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.be3 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.be3 = return_slot_pattern %return.param_patt, %AdaptNoncopyableIndirect.ref.loc12_38 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptNoncopyableIndirect.ref.loc12_38: type = name_ref AdaptNoncopyableIndirect, file.%AdaptNoncopyableIndirect.decl [concrete = constants.%AdaptNoncopyableIndirect] -// CHECK:STDOUT: %.loc12: Core.Form = init_form %AdaptNoncopyableIndirect.ref.loc12_38 [concrete = constants.%.150] +// CHECK:STDOUT: %.loc12: Core.Form = init_form %AdaptNoncopyableIndirect.ref.loc12_38 [concrete = constants.%.284] // CHECK:STDOUT: %a.param: %AdaptNoncopyableIndirect = value_param call_param0 // CHECK:STDOUT: %AdaptNoncopyableIndirect.ref.loc12_9: type = name_ref AdaptNoncopyableIndirect, file.%AdaptNoncopyableIndirect.decl [concrete = constants.%AdaptNoncopyableIndirect] // CHECK:STDOUT: %a: %AdaptNoncopyableIndirect = value_binding a, %a.param @@ -837,10 +837,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %i32.loc9_10: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %Noncopyable.ref: type = name_ref Noncopyable, file.%Noncopyable.decl [concrete = constants.%Noncopyable] // CHECK:STDOUT: %i32.loc9_28: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc9_31: %tuple.type.ff9 = tuple_literal (%i32.loc9_10, %Noncopyable.ref, %i32.loc9_28) [concrete = constants.%tuple.a41] -// CHECK:STDOUT: %.loc9_32: type = converted %.loc9_31, constants.%tuple.type.820 [concrete = constants.%tuple.type.820] +// CHECK:STDOUT: %.loc9_31: %tuple.type.ff9 = tuple_literal (%i32.loc9_10, %Noncopyable.ref, %i32.loc9_28) [concrete = constants.%tuple.97d] +// CHECK:STDOUT: %.loc9_32: type = converted %.loc9_31, constants.%tuple.type.227 [concrete = constants.%tuple.type.227] // CHECK:STDOUT: adapt_decl %.loc9_32 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%tuple.type.820 [concrete = constants.%complete_type.bad] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%tuple.type.227 [concrete = constants.%complete_type.591] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -851,19 +851,19 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: fn @H(%a.param: %AdaptNoncopyableIndirect) -> out %return.param: %AdaptNoncopyableIndirect { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.0b1 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.0b1 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.be3 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.be3 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %AdaptNoncopyableIndirect = var %b.var_patt // CHECK:STDOUT: %a.ref: %AdaptNoncopyableIndirect = name_ref a, %a -// CHECK:STDOUT: %.loc23_3.1: %tuple.type.820 = as_compatible %a.ref +// CHECK:STDOUT: %.loc23_3.1: %tuple.type.227 = as_compatible %a.ref // CHECK:STDOUT: %tuple.elem0.loc23_3.1: %i32 = tuple_access %.loc23_3.1, element0 -// CHECK:STDOUT: %impl.elem0.loc23: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc23: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc23_3.1: = bound_method %tuple.elem0.loc23_3.1, %impl.elem0.loc23 // CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc23_3.2: = bound_method %tuple.elem0.loc23_3.1, %specific_fn.loc23 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc23: init %i32 = call %bound_method.loc23_3.2(%tuple.elem0.loc23_3.1) -// CHECK:STDOUT: %.loc23_3.2: ref %tuple.type.820 = as_compatible %b.var +// CHECK:STDOUT: %.loc23_3.2: ref %tuple.type.227 = as_compatible %b.var // CHECK:STDOUT: %tuple.elem0.loc23_3.2: ref %i32 = tuple_access %.loc23_3.2, element0 // CHECK:STDOUT: %.loc23_3.3: init %i32 to %tuple.elem0.loc23_3.2 = in_place_init %Int.as.Copy.impl.Op.call.loc23 // CHECK:STDOUT: %tuple.elem1.loc23: %Noncopyable = tuple_access %.loc23_3.1, element1 @@ -871,20 +871,20 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %AdaptNoncopyableIndirect.ref.loc23: type = name_ref AdaptNoncopyableIndirect, file.%AdaptNoncopyableIndirect.decl [concrete = constants.%AdaptNoncopyableIndirect] // CHECK:STDOUT: %b: ref %AdaptNoncopyableIndirect = ref_binding b, %b.var // CHECK:STDOUT: %b.ref: ref %AdaptNoncopyableIndirect = name_ref b, %b -// CHECK:STDOUT: %.loc34_11.1: ref %tuple.type.820 = as_compatible %b.ref +// CHECK:STDOUT: %.loc34_11.1: ref %tuple.type.227 = as_compatible %b.ref // CHECK:STDOUT: %tuple.elem0.loc34_11.1: ref %i32 = tuple_access %.loc34_11.1, element0 // CHECK:STDOUT: %.loc34_11.2: %i32 = acquire_value %tuple.elem0.loc34_11.1 -// CHECK:STDOUT: %impl.elem0.loc34: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc34: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc34_11.1: = bound_method %.loc34_11.2, %impl.elem0.loc34 // CHECK:STDOUT: %specific_fn.loc34: = specific_function %impl.elem0.loc34, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc34_11.2: = bound_method %.loc34_11.2, %specific_fn.loc34 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc34: init %i32 = call %bound_method.loc34_11.2(%.loc34_11.2) -// CHECK:STDOUT: %.loc34_11.3: ref %tuple.type.820 = as_compatible %return.param +// CHECK:STDOUT: %.loc34_11.3: ref %tuple.type.227 = as_compatible %return.param // CHECK:STDOUT: %tuple.elem0.loc34_11.2: ref %i32 = tuple_access %.loc34_11.3, element0 // 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.2dd605.6 +// 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: return to %return.param // CHECK:STDOUT: } @@ -903,7 +903,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_3.5(%self.param: ref %tuple.type.820) { +// CHECK:STDOUT: fn @Destroy.Op.loc23_3.5(%self.param: ref %tuple.type.227) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -925,46 +925,46 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %struct_type.e.f: type = struct_type {.e: %i32, .f: %i32} [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %complete_type.fec: = complete_type_witness %struct_type.e.f [concrete] -// CHECK:STDOUT: %pattern_type.5f2: type = pattern_type %AdaptStruct [concrete] -// CHECK:STDOUT: %.8bf: Core.Form = init_form %AdaptStruct [concrete] +// CHECK:STDOUT: %complete_type.db4: = complete_type_witness %struct_type.e.f [concrete] +// CHECK:STDOUT: %pattern_type.27f: type = pattern_type %AdaptStruct [concrete] +// CHECK:STDOUT: %.ae3: Core.Form = init_form %AdaptStruct [concrete] // CHECK:STDOUT: %I.type: type = fn_type @I [concrete] // CHECK:STDOUT: %I: %I.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.14d: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet.14d [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.987: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet.987 [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.790b3b.4: type = fn_type @Destroy.Op.loc9_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: %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] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.741: %tuple.type.24b = tuple_value (%AdaptStruct, %u32) [concrete] -// CHECK:STDOUT: %tuple.type.65e: type = tuple_type (%AdaptStruct, %u32) [concrete] -// CHECK:STDOUT: %pattern_type.4cb: type = pattern_type %tuple.type.65e [concrete] -// CHECK:STDOUT: %.532: Core.Form = init_form %tuple.type.65e [concrete] +// CHECK:STDOUT: %tuple.f52: %tuple.type.24b = tuple_value (%AdaptStruct, %u32) [concrete] +// CHECK:STDOUT: %tuple.type.e00: type = tuple_type (%AdaptStruct, %u32) [concrete] +// CHECK:STDOUT: %pattern_type.418: type = pattern_type %tuple.type.e00 [concrete] +// CHECK:STDOUT: %.70d: Core.Form = init_form %tuple.type.e00 [concrete] // CHECK:STDOUT: %InTuple.type: type = fn_type @InTuple [concrete] // CHECK:STDOUT: %InTuple: %InTuple.type = struct_value () [concrete] // CHECK:STDOUT: %u32.builtin: type = int_type unsigned, %int_32 [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.743: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.521: %UInt.as.Copy.impl.Op.type.743 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.cfa: = impl_witness imports.%Copy.impl_witness_table.306, @UInt.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.46f: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.a73: %UInt.as.Copy.impl.Op.type.46f = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.87e: %Copy.type = facet_value %u32, (%Copy.impl_witness.cfa) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7b4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.87e) [concrete] -// CHECK:STDOUT: %.637: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7b4, %Copy.facet.87e [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.a73, @UInt.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.7: type = fn_type @Destroy.Op.loc14_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.7: %Destroy.Op.type.790b3b.7 = struct_value () [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.0c5: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%N) [symbolic] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.38a: %UInt.as.Copy.impl.Op.type.0c5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.9d9: = impl_witness imports.%Copy.impl_witness_table.fe3, @UInt.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.2fd: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.46f: %UInt.as.Copy.impl.Op.type.2fd = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.a37: %Copy.type = facet_value %u32, (%Copy.impl_witness.9d9) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.ec6: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.a37) [concrete] +// CHECK:STDOUT: %.5f1: type = fn_type_with_self_type %Copy.WithSelf.Op.type.ec6, %Copy.facet.a37 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -978,12 +978,12 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %Core.UInt: %UInt.type = import_ref Core//prelude/parts/uint, UInt, loaded [concrete = constants.%UInt.generic] -// CHECK:STDOUT: %Core.import_ref.3cf: @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op.type (%UInt.as.Copy.impl.Op.type.743) = import_ref Core//prelude/parts/uint, loc{{\d+_\d+}}, loaded [symbolic = @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op (constants.%UInt.as.Copy.impl.Op.521)] -// CHECK:STDOUT: %Copy.impl_witness_table.306 = impl_witness_table (%Core.import_ref.3cf), @UInt.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.791: @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op.type (%UInt.as.Copy.impl.Op.type.0c5) = import_ref Core//prelude/parts/uint, loc{{\d+_\d+}}, loaded [symbolic = @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op (constants.%UInt.as.Copy.impl.Op.38a)] +// CHECK:STDOUT: %Copy.impl_witness_table.fe3 = impl_witness_table (%Core.import_ref.791), @UInt.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -996,13 +996,13 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %AdaptStruct.decl: type = class_decl @AdaptStruct [concrete = constants.%AdaptStruct] {} {} // CHECK:STDOUT: %I.decl: %I.type = fn_decl @I [concrete = constants.%I] { -// CHECK:STDOUT: %g.param_patt: %pattern_type.5f2 = value_param_pattern [concrete] -// CHECK:STDOUT: %g.patt: %pattern_type.5f2 = at_binding_pattern g, %g.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.5f2 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.5f2 = return_slot_pattern %return.param_patt, %AdaptStruct.ref.loc8_25 [concrete] +// CHECK:STDOUT: %g.param_patt: %pattern_type.27f = value_param_pattern [concrete] +// CHECK:STDOUT: %g.patt: %pattern_type.27f = at_binding_pattern g, %g.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.27f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.27f = return_slot_pattern %return.param_patt, %AdaptStruct.ref.loc8_25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptStruct.ref.loc8_25: type = name_ref AdaptStruct, file.%AdaptStruct.decl [concrete = constants.%AdaptStruct] -// CHECK:STDOUT: %.loc8: Core.Form = init_form %AdaptStruct.ref.loc8_25 [concrete = constants.%.8bf] +// CHECK:STDOUT: %.loc8: Core.Form = init_form %AdaptStruct.ref.loc8_25 [concrete = constants.%.ae3] // CHECK:STDOUT: %g.param: %AdaptStruct = value_param call_param0 // CHECK:STDOUT: %AdaptStruct.ref.loc8_9: type = name_ref AdaptStruct, file.%AdaptStruct.decl [concrete = constants.%AdaptStruct] // CHECK:STDOUT: %g: %AdaptStruct = value_binding g, %g.param @@ -1010,26 +1010,26 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %return: ref %AdaptStruct = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InTuple.decl: %InTuple.type = fn_decl @InTuple [concrete = constants.%InTuple] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.4cb = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.4cb = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.4cb = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.4cb = return_slot_pattern %return.param_patt, %.loc13_55.2 [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.418 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.418 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.418 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.418 = return_slot_pattern %return.param_patt, %.loc13_55.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptStruct.ref.loc13_39: type = name_ref AdaptStruct, file.%AdaptStruct.decl [concrete = constants.%AdaptStruct] // CHECK:STDOUT: %u32.loc13_52: type = type_literal constants.%u32 [concrete = constants.%u32] -// CHECK:STDOUT: %.loc13_55.1: %tuple.type.24b = tuple_literal (%AdaptStruct.ref.loc13_39, %u32.loc13_52) [concrete = constants.%tuple.741] -// CHECK:STDOUT: %.loc13_55.2: type = converted %.loc13_55.1, constants.%tuple.type.65e [concrete = constants.%tuple.type.65e] -// CHECK:STDOUT: %.loc13_55.3: Core.Form = init_form %.loc13_55.2 [concrete = constants.%.532] -// CHECK:STDOUT: %c.param: %tuple.type.65e = value_param call_param0 -// CHECK:STDOUT: %.loc13_32.1: type = splice_block %.loc13_32.3 [concrete = constants.%tuple.type.65e] { +// CHECK:STDOUT: %.loc13_55.1: %tuple.type.24b = tuple_literal (%AdaptStruct.ref.loc13_39, %u32.loc13_52) [concrete = constants.%tuple.f52] +// CHECK:STDOUT: %.loc13_55.2: type = converted %.loc13_55.1, constants.%tuple.type.e00 [concrete = constants.%tuple.type.e00] +// CHECK:STDOUT: %.loc13_55.3: Core.Form = init_form %.loc13_55.2 [concrete = constants.%.70d] +// CHECK:STDOUT: %c.param: %tuple.type.e00 = value_param call_param0 +// CHECK:STDOUT: %.loc13_32.1: type = splice_block %.loc13_32.3 [concrete = constants.%tuple.type.e00] { // CHECK:STDOUT: %AdaptStruct.ref.loc13_16: type = name_ref AdaptStruct, file.%AdaptStruct.decl [concrete = constants.%AdaptStruct] // CHECK:STDOUT: %u32.loc13_29: type = type_literal constants.%u32 [concrete = constants.%u32] -// CHECK:STDOUT: %.loc13_32.2: %tuple.type.24b = tuple_literal (%AdaptStruct.ref.loc13_16, %u32.loc13_29) [concrete = constants.%tuple.741] -// CHECK:STDOUT: %.loc13_32.3: type = converted %.loc13_32.2, constants.%tuple.type.65e [concrete = constants.%tuple.type.65e] +// CHECK:STDOUT: %.loc13_32.2: %tuple.type.24b = tuple_literal (%AdaptStruct.ref.loc13_16, %u32.loc13_29) [concrete = constants.%tuple.f52] +// CHECK:STDOUT: %.loc13_32.3: type = converted %.loc13_32.2, constants.%tuple.type.e00 [concrete = constants.%tuple.type.e00] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %tuple.type.65e = value_binding c, %c.param -// CHECK:STDOUT: %return.param: ref %tuple.type.65e = out_param call_param1 -// CHECK:STDOUT: %return: ref %tuple.type.65e = return_slot %return.param +// CHECK:STDOUT: %c: %tuple.type.e00 = value_binding c, %c.param +// CHECK:STDOUT: %return.param: ref %tuple.type.e00 = out_param call_param1 +// CHECK:STDOUT: %return: ref %tuple.type.e00 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1038,7 +1038,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %i32.loc5_23: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.e.f: type = struct_type {.e: %i32, .f: %i32} [concrete = constants.%struct_type.e.f] // CHECK:STDOUT: adapt_decl %struct_type.e.f [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.e.f [concrete = constants.%complete_type.fec] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.e.f [concrete = constants.%complete_type.db4] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1048,14 +1048,14 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: fn @I(%g.param: %AdaptStruct) -> out %return.param: %AdaptStruct { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %h.patt: %pattern_type.5f2 = ref_binding_pattern h [concrete] -// CHECK:STDOUT: %h.var_patt: %pattern_type.5f2 = var_pattern %h.patt [concrete] +// CHECK:STDOUT: %h.patt: %pattern_type.27f = ref_binding_pattern h [concrete] +// CHECK:STDOUT: %h.var_patt: %pattern_type.27f = var_pattern %h.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %h.var: ref %AdaptStruct = var %h.var_patt // CHECK:STDOUT: %g.ref: %AdaptStruct = name_ref g, %g // CHECK:STDOUT: %.loc9_3.1: %struct_type.e.f = as_compatible %g.ref // CHECK:STDOUT: %.loc9_3.2: %i32 = struct_access %.loc9_3.1, element0 -// CHECK:STDOUT: %impl.elem0.loc9_3.1: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc9_3.1: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc9_3.1: = bound_method %.loc9_3.2, %impl.elem0.loc9_3.1 // CHECK:STDOUT: %specific_fn.loc9_3.1: = specific_function %impl.elem0.loc9_3.1, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9_3.2: = bound_method %.loc9_3.2, %specific_fn.loc9_3.1 @@ -1064,7 +1064,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc9_3.4: ref %i32 = struct_access %.loc9_3.3, element0 // CHECK:STDOUT: %.loc9_3.5: init %i32 to %.loc9_3.4 = in_place_init %Int.as.Copy.impl.Op.call.loc9_3.1 // CHECK:STDOUT: %.loc9_3.6: %i32 = struct_access %.loc9_3.1, element1 -// CHECK:STDOUT: %impl.elem0.loc9_3.2: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc9_3.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc9_3.3: = bound_method %.loc9_3.6, %impl.elem0.loc9_3.2 // CHECK:STDOUT: %specific_fn.loc9_3.2: = specific_function %impl.elem0.loc9_3.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9_3.4: = bound_method %.loc9_3.6, %specific_fn.loc9_3.2 @@ -1081,7 +1081,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc10_11.1: ref %struct_type.e.f = as_compatible %h.ref // CHECK:STDOUT: %.loc10_11.2: ref %i32 = struct_access %.loc10_11.1, element0 // CHECK:STDOUT: %.loc10_11.3: %i32 = acquire_value %.loc10_11.2 -// CHECK:STDOUT: %impl.elem0.loc10_11.1: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc10_11.1: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc10_11.1: = bound_method %.loc10_11.3, %impl.elem0.loc10_11.1 // CHECK:STDOUT: %specific_fn.loc10_11.1: = specific_function %impl.elem0.loc10_11.1, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc10_11.2: = bound_method %.loc10_11.3, %specific_fn.loc10_11.1 @@ -1091,7 +1091,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc10_11.6: init %i32 to %.loc10_11.5 = in_place_init %Int.as.Copy.impl.Op.call.loc10_11.1 // CHECK:STDOUT: %.loc10_11.7: ref %i32 = struct_access %.loc10_11.1, element1 // CHECK:STDOUT: %.loc10_11.8: %i32 = acquire_value %.loc10_11.7 -// CHECK:STDOUT: %impl.elem0.loc10_11.2: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc10_11.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc10_11.3: = bound_method %.loc10_11.8, %impl.elem0.loc10_11.2 // CHECK:STDOUT: %specific_fn.loc10_11.2: = specific_function %impl.elem0.loc10_11.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc10_11.4: = bound_method %.loc10_11.8, %specific_fn.loc10_11.2 @@ -1101,7 +1101,7 @@ 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.2dd605.4 +// 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: return %.loc10_11.13 to %return.param // CHECK:STDOUT: } @@ -1123,18 +1123,18 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @InTuple(%c.param: %tuple.type.65e) -> out %return.param: %tuple.type.65e { +// CHECK:STDOUT: fn @InTuple(%c.param: %tuple.type.e00) -> out %return.param: %tuple.type.e00 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.4cb = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.4cb = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.418 = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.418 = var_pattern %d.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %d.var: ref %tuple.type.65e = var %d.var_patt -// CHECK:STDOUT: %c.ref: %tuple.type.65e = name_ref c, %c +// CHECK:STDOUT: %d.var: ref %tuple.type.e00 = var %d.var_patt +// CHECK:STDOUT: %c.ref: %tuple.type.e00 = name_ref c, %c // CHECK:STDOUT: %tuple.elem0.loc14_31.1: %AdaptStruct = tuple_access %c.ref, element0 // CHECK:STDOUT: %.loc14_31.1: %struct_type.e.f = as_compatible %tuple.elem0.loc14_31.1 // CHECK:STDOUT: %.loc14_31.2: %i32 = struct_access %.loc14_31.1, element0 -// CHECK:STDOUT: %impl.elem0.loc14_31.1: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc14_31.1: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc14_31.1: = bound_method %.loc14_31.2, %impl.elem0.loc14_31.1 // CHECK:STDOUT: %specific_fn.loc14_31.1: = specific_function %impl.elem0.loc14_31.1, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc14_31.2: = bound_method %.loc14_31.2, %specific_fn.loc14_31.1 @@ -1144,7 +1144,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc14_31.4: ref %i32 = struct_access %.loc14_31.3, element0 // CHECK:STDOUT: %.loc14_31.5: init %i32 to %.loc14_31.4 = in_place_init %Int.as.Copy.impl.Op.call.loc14_31.1 // CHECK:STDOUT: %.loc14_31.6: %i32 = struct_access %.loc14_31.1, element1 -// CHECK:STDOUT: %impl.elem0.loc14_31.2: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc14_31.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc14_31.3: = bound_method %.loc14_31.6, %impl.elem0.loc14_31.2 // CHECK:STDOUT: %specific_fn.loc14_31.2: = specific_function %impl.elem0.loc14_31.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc14_31.4: = bound_method %.loc14_31.6, %specific_fn.loc14_31.2 @@ -1155,29 +1155,29 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc14_31.10: init %AdaptStruct = as_compatible %.loc14_31.9 // CHECK:STDOUT: %.loc14_31.11: init %AdaptStruct = converted %tuple.elem0.loc14_31.1, %.loc14_31.10 // CHECK:STDOUT: %tuple.elem1.loc14_31.1: %u32 = tuple_access %c.ref, element1 -// CHECK:STDOUT: %impl.elem0.loc14_31.3: %.637 = impl_witness_access constants.%Copy.impl_witness.cfa, element0 [concrete = constants.%UInt.as.Copy.impl.Op.a73] +// CHECK:STDOUT: %impl.elem0.loc14_31.3: %.5f1 = impl_witness_access constants.%Copy.impl_witness.9d9, element0 [concrete = constants.%UInt.as.Copy.impl.Op.46f] // CHECK:STDOUT: %bound_method.loc14_31.5: = bound_method %tuple.elem1.loc14_31.1, %impl.elem0.loc14_31.3 // CHECK:STDOUT: %specific_fn.loc14_31.3: = specific_function %impl.elem0.loc14_31.3, @UInt.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%UInt.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc14_31.6: = bound_method %tuple.elem1.loc14_31.1, %specific_fn.loc14_31.3 // CHECK:STDOUT: %UInt.as.Copy.impl.Op.call.loc14: init %u32 = call %bound_method.loc14_31.6(%tuple.elem1.loc14_31.1) // CHECK:STDOUT: %tuple.elem1.loc14_31.2: ref %u32 = tuple_access %d.var, element1 // CHECK:STDOUT: %.loc14_31.12: init %u32 to %tuple.elem1.loc14_31.2 = in_place_init %UInt.as.Copy.impl.Op.call.loc14 -// CHECK:STDOUT: %.loc14_31.13: init %tuple.type.65e to %d.var = tuple_init (%.loc14_31.11, %.loc14_31.12) -// CHECK:STDOUT: %.loc14_3: init %tuple.type.65e = converted %c.ref, %.loc14_31.13 +// CHECK:STDOUT: %.loc14_31.13: init %tuple.type.e00 to %d.var = tuple_init (%.loc14_31.11, %.loc14_31.12) +// CHECK:STDOUT: %.loc14_3: init %tuple.type.e00 = converted %c.ref, %.loc14_31.13 // CHECK:STDOUT: assign %d.var, %.loc14_3 -// CHECK:STDOUT: %.loc14_27.1: type = splice_block %.loc14_27.3 [concrete = constants.%tuple.type.65e] { +// CHECK:STDOUT: %.loc14_27.1: type = splice_block %.loc14_27.3 [concrete = constants.%tuple.type.e00] { // CHECK:STDOUT: %AdaptStruct.ref.loc14: type = name_ref AdaptStruct, file.%AdaptStruct.decl [concrete = constants.%AdaptStruct] // CHECK:STDOUT: %u32.loc14: type = type_literal constants.%u32 [concrete = constants.%u32] -// CHECK:STDOUT: %.loc14_27.2: %tuple.type.24b = tuple_literal (%AdaptStruct.ref.loc14, %u32.loc14) [concrete = constants.%tuple.741] -// CHECK:STDOUT: %.loc14_27.3: type = converted %.loc14_27.2, constants.%tuple.type.65e [concrete = constants.%tuple.type.65e] +// CHECK:STDOUT: %.loc14_27.2: %tuple.type.24b = tuple_literal (%AdaptStruct.ref.loc14, %u32.loc14) [concrete = constants.%tuple.f52] +// CHECK:STDOUT: %.loc14_27.3: type = converted %.loc14_27.2, constants.%tuple.type.e00 [concrete = constants.%tuple.type.e00] // CHECK:STDOUT: } -// CHECK:STDOUT: %d: ref %tuple.type.65e = ref_binding d, %d.var -// CHECK:STDOUT: %d.ref: ref %tuple.type.65e = name_ref d, %d +// CHECK:STDOUT: %d: ref %tuple.type.e00 = ref_binding d, %d.var +// CHECK:STDOUT: %d.ref: ref %tuple.type.e00 = name_ref d, %d // CHECK:STDOUT: %tuple.elem0.loc15_10.1: ref %AdaptStruct = tuple_access %d.ref, element0 // CHECK:STDOUT: %.loc15_10.1: ref %struct_type.e.f = as_compatible %tuple.elem0.loc15_10.1 // CHECK:STDOUT: %.loc15_10.2: ref %i32 = struct_access %.loc15_10.1, element0 // CHECK:STDOUT: %.loc15_10.3: %i32 = acquire_value %.loc15_10.2 -// CHECK:STDOUT: %impl.elem0.loc15_10.1: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc15_10.1: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc15_10.1: = bound_method %.loc15_10.3, %impl.elem0.loc15_10.1 // CHECK:STDOUT: %specific_fn.loc15_10.1: = specific_function %impl.elem0.loc15_10.1, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc15_10.2: = bound_method %.loc15_10.3, %specific_fn.loc15_10.1 @@ -1188,7 +1188,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc15_10.6: init %i32 to %.loc15_10.5 = in_place_init %Int.as.Copy.impl.Op.call.loc15_10.1 // CHECK:STDOUT: %.loc15_10.7: ref %i32 = struct_access %.loc15_10.1, element1 // CHECK:STDOUT: %.loc15_10.8: %i32 = acquire_value %.loc15_10.7 -// CHECK:STDOUT: %impl.elem0.loc15_10.2: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc15_10.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc15_10.3: = bound_method %.loc15_10.8, %impl.elem0.loc15_10.2 // CHECK:STDOUT: %specific_fn.loc15_10.2: = specific_function %impl.elem0.loc15_10.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc15_10.4: = bound_method %.loc15_10.8, %specific_fn.loc15_10.2 @@ -1200,16 +1200,16 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc15_10.13: init %AdaptStruct = converted %tuple.elem0.loc15_10.1, %.loc15_10.12 // CHECK:STDOUT: %tuple.elem1.loc15_10.1: ref %u32 = tuple_access %d.ref, element1 // CHECK:STDOUT: %.loc15_10.14: %u32 = acquire_value %tuple.elem1.loc15_10.1 -// CHECK:STDOUT: %impl.elem0.loc15_10.3: %.637 = impl_witness_access constants.%Copy.impl_witness.cfa, element0 [concrete = constants.%UInt.as.Copy.impl.Op.a73] +// CHECK:STDOUT: %impl.elem0.loc15_10.3: %.5f1 = impl_witness_access constants.%Copy.impl_witness.9d9, element0 [concrete = constants.%UInt.as.Copy.impl.Op.46f] // CHECK:STDOUT: %bound_method.loc15_10.5: = bound_method %.loc15_10.14, %impl.elem0.loc15_10.3 // CHECK:STDOUT: %specific_fn.loc15_10.3: = specific_function %impl.elem0.loc15_10.3, @UInt.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%UInt.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc15_10.6: = bound_method %.loc15_10.14, %specific_fn.loc15_10.3 // CHECK:STDOUT: %UInt.as.Copy.impl.Op.call.loc15: init %u32 = call %bound_method.loc15_10.6(%.loc15_10.14) // CHECK:STDOUT: %tuple.elem1.loc15_10.2: ref %u32 = tuple_access %return.param, element1 // 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.65e to %return.param = tuple_init (%.loc15_10.13, %.loc15_10.15) -// CHECK:STDOUT: %.loc15_11: init %tuple.type.65e = converted %d.ref, %.loc15_10.16 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %d.var, constants.%Destroy.Op.2dd605.7 +// 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: return %.loc15_11 to %return.param // CHECK:STDOUT: } @@ -1221,7 +1221,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc14_3.3(%self.param: ref %tuple.type.65e) { +// CHECK:STDOUT: fn @Destroy.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/adapter/extend_adapt.carbon b/toolchain/check/testdata/class/adapter/extend_adapt.carbon index dc38fc3c6ce2..4f3094127858 100644 --- a/toolchain/check/testdata/class/adapter/extend_adapt.carbon +++ b/toolchain/check/testdata/class/adapter/extend_adapt.carbon @@ -155,11 +155,11 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %SomeClass.elem: type = unbound_element_type %SomeClass, %i32 [concrete] // CHECK:STDOUT: %SomeClass.StaticMemberFunction.type: type = fn_type @SomeClass.StaticMemberFunction [concrete] // CHECK:STDOUT: %SomeClass.StaticMemberFunction: %SomeClass.StaticMemberFunction.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.2d2: type = pattern_type %SomeClassAdapter [concrete] +// CHECK:STDOUT: %pattern_type.54b: type = pattern_type %SomeClassAdapter [concrete] // CHECK:STDOUT: %SomeClass.AdapterMethod.type: type = fn_type @SomeClass.AdapterMethod [concrete] // CHECK:STDOUT: %SomeClass.AdapterMethod: %SomeClass.AdapterMethod.type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete] -// CHECK:STDOUT: %complete_type.abf: = complete_type_witness %struct_type.a.b [concrete] +// CHECK:STDOUT: %complete_type.7b9: = complete_type_witness %struct_type.a.b [concrete] // CHECK:STDOUT: %TestStaticMemberFunction.type: type = fn_type @TestStaticMemberFunction [concrete] // CHECK:STDOUT: %TestStaticMemberFunction: %TestStaticMemberFunction.type = struct_value () [concrete] // CHECK:STDOUT: %TestAdapterMethod.type: type = fn_type @TestAdapterMethod [concrete] @@ -188,16 +188,16 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %SomeClass.decl: type = class_decl @SomeClass [concrete = constants.%SomeClass] {} {} // CHECK:STDOUT: %SomeClassAdapter.decl.loc15: type = class_decl @SomeClassAdapter [concrete = constants.%SomeClassAdapter] {} {} // CHECK:STDOUT: %TestStaticMemberFunction.decl: %TestStaticMemberFunction.type = fn_decl @TestStaticMemberFunction [concrete = constants.%TestStaticMemberFunction] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.2d2 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.2d2 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.54b = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.54b = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %SomeClassAdapter = value_param call_param0 // CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl.loc4 [concrete = constants.%SomeClassAdapter] // CHECK:STDOUT: %a: %SomeClassAdapter = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestAdapterMethod.decl: %TestAdapterMethod.type = fn_decl @TestAdapterMethod [concrete = constants.%TestAdapterMethod] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.2d2 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.2d2 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.54b = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.54b = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %SomeClassAdapter = value_param call_param0 // CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl.loc4 [concrete = constants.%SomeClassAdapter] @@ -208,7 +208,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: class @SomeClassAdapter { // CHECK:STDOUT: %SomeClass.ref: type = name_ref SomeClass, file.%SomeClass.decl [concrete = constants.%SomeClass] // CHECK:STDOUT: adapt_decl %SomeClass.ref [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.abf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.7b9] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -224,14 +224,14 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %.loc8: %SomeClass.elem = field_decl b, element1 [concrete] // CHECK:STDOUT: %SomeClass.StaticMemberFunction.decl: %SomeClass.StaticMemberFunction.type = fn_decl @SomeClass.StaticMemberFunction [concrete = constants.%SomeClass.StaticMemberFunction] {} {} // CHECK:STDOUT: %SomeClass.AdapterMethod.decl: %SomeClass.AdapterMethod.type = fn_decl @SomeClass.AdapterMethod [concrete = constants.%SomeClass.AdapterMethod] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.2d2 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.2d2 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.54b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.54b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %SomeClassAdapter = value_param call_param0 // CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl.loc4 [concrete = constants.%SomeClassAdapter] // CHECK:STDOUT: %self: %SomeClassAdapter = value_binding self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.abf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.7b9] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -268,18 +268,18 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %SomeClass: type = class_type @SomeClass [concrete] -// CHECK:STDOUT: %pattern_type.824: type = pattern_type %SomeClass [concrete] +// CHECK:STDOUT: %pattern_type.b5d: type = pattern_type %SomeClass [concrete] // CHECK:STDOUT: %SomeClass.F.type: type = fn_type @SomeClass.F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %SomeClass.F: %SomeClass.F.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %SomeClassAdapter: type = class_type @SomeClassAdapter [concrete] -// CHECK:STDOUT: %pattern_type.2d2: type = pattern_type %SomeClassAdapter [concrete] +// CHECK:STDOUT: %pattern_type.54b: type = pattern_type %SomeClassAdapter [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -288,7 +288,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -302,8 +302,8 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %SomeClass.decl: type = class_decl @SomeClass [concrete = constants.%SomeClass] {} {} // CHECK:STDOUT: %SomeClassAdapter.decl: type = class_decl @SomeClassAdapter [concrete = constants.%SomeClassAdapter] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.2d2 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.2d2 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.54b = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.54b = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %SomeClassAdapter = value_param call_param0 // CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl [concrete = constants.%SomeClassAdapter] @@ -313,8 +313,8 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @SomeClass { // CHECK:STDOUT: %SomeClass.F.decl: %SomeClass.F.type = fn_decl @SomeClass.F [concrete = constants.%SomeClass.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.824 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.824 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.b5d = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.b5d = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %SomeClass = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%SomeClass [concrete = constants.%SomeClass] @@ -361,17 +361,17 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %SomeClass.elem: type = unbound_element_type %SomeClass, %i32 [concrete] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete] -// CHECK:STDOUT: %complete_type.abf: = complete_type_witness %struct_type.a.b [concrete] +// CHECK:STDOUT: %complete_type.7b9: = complete_type_witness %struct_type.a.b [concrete] // CHECK:STDOUT: %SomeClassAdapter: type = class_type @SomeClassAdapter [concrete] -// CHECK:STDOUT: %pattern_type.2d2: type = pattern_type %SomeClassAdapter [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.54b: type = pattern_type %SomeClassAdapter [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -382,7 +382,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -396,13 +396,13 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %SomeClass.decl: type = class_decl @SomeClass [concrete = constants.%SomeClass] {} {} // CHECK:STDOUT: %SomeClassAdapter.decl: type = class_decl @SomeClassAdapter [concrete = constants.%SomeClassAdapter] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.2d2 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.2d2 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.54b = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.54b = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc13: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc13: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %SomeClassAdapter = value_param call_param0 // CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl [concrete = constants.%SomeClassAdapter] // CHECK:STDOUT: %a: %SomeClassAdapter = value_binding a, %a.param @@ -414,7 +414,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: class @SomeClass { // CHECK:STDOUT: %.loc5: %SomeClass.elem = field_decl a, element0 [concrete] // CHECK:STDOUT: %.loc6: %SomeClass.elem = field_decl b, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.abf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.7b9] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -426,7 +426,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: class @SomeClassAdapter { // CHECK:STDOUT: %SomeClass.ref: type = name_ref SomeClass, file.%SomeClass.decl [concrete = constants.%SomeClass] // CHECK:STDOUT: adapt_decl %SomeClass.ref [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.abf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.7b9] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -454,10 +454,10 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete] -// CHECK:STDOUT: %complete_type.abf: = complete_type_witness %struct_type.a.b [concrete] -// CHECK:STDOUT: %pattern_type.915: type = pattern_type %StructAdapter [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %complete_type.7b9: = complete_type_witness %struct_type.a.b [concrete] +// CHECK:STDOUT: %pattern_type.9b8: type = pattern_type %StructAdapter [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -480,13 +480,13 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %StructAdapter.decl: type = class_decl @StructAdapter [concrete = constants.%StructAdapter] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.915 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.915 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.9b8 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9b8 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %StructAdapter = value_param call_param0 // CHECK:STDOUT: %StructAdapter.ref: type = name_ref StructAdapter, file.%StructAdapter.decl [concrete = constants.%StructAdapter] // CHECK:STDOUT: %a: %StructAdapter = value_binding a, %a.param @@ -500,7 +500,7 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %i32.loc5_30: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b] // CHECK:STDOUT: adapt_decl %struct_type.a.b [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.abf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.7b9] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -526,11 +526,11 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] -// CHECK:STDOUT: %complete_type.3bf: = complete_type_witness %tuple.type.e5a [concrete] -// CHECK:STDOUT: %pattern_type.c00: type = pattern_type %TupleAdapter [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %complete_type.6c4: = complete_type_witness %tuple.type.e55 [concrete] +// CHECK:STDOUT: %pattern_type.59f: type = pattern_type %TupleAdapter [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] @@ -554,13 +554,13 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %TupleAdapter.decl: type = class_decl @TupleAdapter [concrete = constants.%TupleAdapter] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.c00 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.c00 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.59f = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.59f = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %TupleAdapter = value_param call_param0 // CHECK:STDOUT: %TupleAdapter.ref: type = name_ref TupleAdapter, file.%TupleAdapter.decl [concrete = constants.%TupleAdapter] // CHECK:STDOUT: %a: %TupleAdapter = value_binding a, %a.param @@ -573,9 +573,9 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %i32.loc5_17: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc5_22: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc5_25: %tuple.type.24b = tuple_literal (%i32.loc5_17, %i32.loc5_22) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc5_26: type = converted %.loc5_25, constants.%tuple.type.e5a [concrete = constants.%tuple.type.e5a] +// CHECK:STDOUT: %.loc5_26: type = converted %.loc5_25, constants.%tuple.type.e55 [concrete = constants.%tuple.type.e55] // CHECK:STDOUT: adapt_decl %.loc5_26 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%tuple.type.e5a [concrete = constants.%complete_type.3bf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%tuple.type.e55 [concrete = constants.%complete_type.6c4] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -604,12 +604,12 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %pattern_type.b5c: type = pattern_type %IntAdapter [concrete] +// CHECK:STDOUT: %pattern_type.353: type = pattern_type %IntAdapter [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -655,13 +655,13 @@ fn F(a: IntAdapter) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %IntAdapter.decl: type = class_decl @IntAdapter [concrete = constants.%IntAdapter] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.b5c = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.b5c = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.353 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.353 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc10: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc10: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %IntAdapter = value_param call_param0 // CHECK:STDOUT: %IntAdapter.ref: type = name_ref IntAdapter, file.%IntAdapter.decl [concrete = constants.%IntAdapter] // CHECK:STDOUT: %a: %IntAdapter = value_binding a, %a.param diff --git a/toolchain/check/testdata/class/adapter/fail_adapt_with_subobjects.carbon b/toolchain/check/testdata/class/adapter/fail_adapt_with_subobjects.carbon index 2b911ccbb01f..82b974794b72 100644 --- a/toolchain/check/testdata/class/adapter/fail_adapt_with_subobjects.carbon +++ b/toolchain/check/testdata/class/adapter/fail_adapt_with_subobjects.carbon @@ -201,12 +201,12 @@ class AdaptWithBaseAndFields { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %AdaptWithBaseAndFields: type = class_type @AdaptWithBaseAndFields [concrete] -// CHECK:STDOUT: %AdaptWithBaseAndFields.elem.00a: type = unbound_element_type %AdaptWithBaseAndFields, %Base [concrete] +// CHECK:STDOUT: %AdaptWithBaseAndFields.elem.8fd: type = unbound_element_type %AdaptWithBaseAndFields, %Base [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %AdaptWithBaseAndFields.elem.b83: type = unbound_element_type %AdaptWithBaseAndFields, %i32 [concrete] +// CHECK:STDOUT: %AdaptWithBaseAndFields.elem.3f0: type = unbound_element_type %AdaptWithBaseAndFields, %i32 [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -240,8 +240,8 @@ class AdaptWithBaseAndFields { // CHECK:STDOUT: // CHECK:STDOUT: class @AdaptWithBaseAndFields { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] -// CHECK:STDOUT: %.loc7: %AdaptWithBaseAndFields.elem.00a = base_decl %Base.ref, element [concrete] -// CHECK:STDOUT: %.loc8: %AdaptWithBaseAndFields.elem.b83 = field_decl n, element [concrete] +// CHECK:STDOUT: %.loc7: %AdaptWithBaseAndFields.elem.8fd = base_decl %Base.ref, element [concrete] +// CHECK:STDOUT: %.loc8: %AdaptWithBaseAndFields.elem.3f0 = field_decl n, element [concrete] // CHECK:STDOUT: %.loc16_10: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc16_11: type = converted %.loc16_10, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: adapt_decl %.loc16_11 [concrete] diff --git a/toolchain/check/testdata/class/adapter/init_adapt.carbon b/toolchain/check/testdata/class/adapter/init_adapt.carbon index f4c9b2e6bf6b..3bd86dbdd6a5 100644 --- a/toolchain/check/testdata/class/adapter/init_adapt.carbon +++ b/toolchain/check/testdata/class/adapter/init_adapt.carbon @@ -105,40 +105,40 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [concrete] -// CHECK:STDOUT: %struct_type.a.b.b47: type = struct_type {.a: %i32, .b: %i32} [concrete] -// CHECK:STDOUT: %complete_type.abf: = complete_type_witness %struct_type.a.b.b47 [concrete] +// CHECK:STDOUT: %struct_type.a.b.b4c: type = struct_type {.a: %i32, .b: %i32} [concrete] +// CHECK:STDOUT: %complete_type.7b9: = complete_type_witness %struct_type.a.b.b4c [concrete] // CHECK:STDOUT: %AdaptC: type = class_type @AdaptC [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.a.b.cfd = struct_value (%int_1.5b8, %int_2.ecc) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %C.val: %C = struct_value (%int_1.d9c, %int_2.228) [concrete] -// CHECK:STDOUT: %.d03: ref %C = temporary invalid, %C.val [concrete] -// CHECK:STDOUT: %pattern_type.fae: type = pattern_type %AdaptC [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %C.val: %C = struct_value (%int_1.0c6, %int_2.295) [concrete] +// CHECK:STDOUT: %.c76: ref %C = temporary invalid, %C.val [concrete] +// CHECK:STDOUT: %pattern_type.720: type = pattern_type %AdaptC [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] // CHECK:STDOUT: %MakeC.type: type = fn_type @MakeC [concrete] // CHECK:STDOUT: %MakeC: %MakeC.type = struct_value () [concrete] -// CHECK:STDOUT: %.de2: Core.Form = init_form %AdaptC [concrete] +// CHECK:STDOUT: %.624: Core.Form = init_form %AdaptC [concrete] // CHECK:STDOUT: %MakeAdaptC.type: type = fn_type @MakeAdaptC [concrete] // CHECK:STDOUT: %MakeAdaptC: %MakeAdaptC.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -151,9 +151,9 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -173,69 +173,69 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %AdaptC.decl: type = class_decl @AdaptC [concrete = constants.%AdaptC] {} {} // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.0d5 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.98b = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %C.ref.loc13: type = name_ref C, %C.decl [concrete = constants.%C] -// CHECK:STDOUT: %impl.elem0.loc13_27.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc13_27.1: = bound_method @__global_init.%int_1, %impl.elem0.loc13_27.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc13_27.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc13_27.1: = bound_method @__global_init.%int_1, %impl.elem0.loc13_27.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc13_27.1: = specific_function %impl.elem0.loc13_27.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc13_27.2: = bound_method @__global_init.%int_1, %specific_fn.loc13_27.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_27.1: init %i32 = call %bound_method.loc13_27.2(@__global_init.%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc13_27.1: init %i32 = converted @__global_init.%int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_27.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc13_27.2: = bound_method @__global_init.%int_1, %specific_fn.loc13_27.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_27.1: init %i32 = call %bound_method.loc13_27.2(@__global_init.%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc13_27.1: init %i32 = converted @__global_init.%int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_27.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc13_27.2: ref %C = temporary_storage // CHECK:STDOUT: %.loc13_27.3: ref %i32 = class_element_access %.loc13_27.2, element0 -// CHECK:STDOUT: %.loc13_27.4: init %i32 to %.loc13_27.3 = in_place_init %.loc13_27.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc13_27.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc13_27.3: = bound_method @__global_init.%int_2, %impl.elem0.loc13_27.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc13_27.4: init %i32 to %.loc13_27.3 = in_place_init %.loc13_27.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc13_27.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc13_27.3: = bound_method @__global_init.%int_2, %impl.elem0.loc13_27.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc13_27.2: = specific_function %impl.elem0.loc13_27.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc13_27.4: = bound_method @__global_init.%int_2, %specific_fn.loc13_27.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_27.2: init %i32 = call %bound_method.loc13_27.4(@__global_init.%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc13_27.5: init %i32 = converted @__global_init.%int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_27.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc13_27.4: = bound_method @__global_init.%int_2, %specific_fn.loc13_27.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_27.2: init %i32 = call %bound_method.loc13_27.4(@__global_init.%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc13_27.5: init %i32 = converted @__global_init.%int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_27.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc13_27.6: ref %i32 = class_element_access %.loc13_27.2, element1 -// CHECK:STDOUT: %.loc13_27.7: init %i32 to %.loc13_27.6 = in_place_init %.loc13_27.5 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %.loc13_27.7: init %i32 to %.loc13_27.6 = in_place_init %.loc13_27.5 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc13_27.8: init %C to %.loc13_27.2 = class_init (%.loc13_27.4, %.loc13_27.7) [concrete = constants.%C.val] // CHECK:STDOUT: %.loc13_27.9: init %C = converted @__global_init.%.loc13, %.loc13_27.8 [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc13_27.10: ref %C = temporary %.loc13_27.2, %.loc13_27.9 [concrete = constants.%.d03] +// CHECK:STDOUT: %.loc13_27.10: ref %C = temporary %.loc13_27.2, %.loc13_27.9 [concrete = constants.%.c76] // CHECK:STDOUT: %.loc13_27.11: %C = acquire_value %.loc13_27.10 [concrete = constants.%C.val] // CHECK:STDOUT: %a: %C = value_binding a, %.loc13_27.11 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.fae = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.720 = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %AdaptC.ref.loc15: type = name_ref AdaptC, %AdaptC.decl [concrete = constants.%AdaptC] // CHECK:STDOUT: %b: %AdaptC = value_binding b, @__global_init.%.loc15_19.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %C.ref.loc17: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: %C = value_binding c, @__global_init.%.loc17_14.2 // CHECK:STDOUT: %MakeC.decl: %MakeC.type = fn_decl @MakeC [concrete = constants.%MakeC] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc19: Core.Form = init_form %C.ref [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc19: Core.Form = init_form %C.ref [concrete = constants.%.a44] // CHECK:STDOUT: %return.param: ref %C = out_param call_param0 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %MakeAdaptC.decl: %MakeAdaptC.type = fn_decl @MakeAdaptC [concrete = constants.%MakeAdaptC] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.fae = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.fae = return_slot_pattern %return.param_patt, %AdaptC.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.720 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.720 = return_slot_pattern %return.param_patt, %AdaptC.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptC.ref: type = name_ref AdaptC, file.%AdaptC.decl [concrete = constants.%AdaptC] -// CHECK:STDOUT: %.loc21: Core.Form = init_form %AdaptC.ref [concrete = constants.%.de2] +// CHECK:STDOUT: %.loc21: Core.Form = init_form %AdaptC.ref [concrete = constants.%.624] // CHECK:STDOUT: %return.param: ref %AdaptC = out_param call_param0 // CHECK:STDOUT: %return: ref %AdaptC = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.fae = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.fae = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.720 = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.720 = var_pattern %d.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %d.var: ref %AdaptC = var %d.var_patt [concrete] // CHECK:STDOUT: %AdaptC.ref.loc23: type = name_ref AdaptC, %AdaptC.decl [concrete = constants.%AdaptC] // CHECK:STDOUT: %d: ref %AdaptC = ref_binding d, %d.var [concrete = %d.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %e.patt: %pattern_type.0d5 = ref_binding_pattern e [concrete] -// CHECK:STDOUT: %e.var_patt: %pattern_type.0d5 = var_pattern %e.patt [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.98b = ref_binding_pattern e [concrete] +// CHECK:STDOUT: %e.var_patt: %pattern_type.98b = var_pattern %e.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %e.var: ref %C = var %e.var_patt [concrete] // CHECK:STDOUT: %C.ref.loc25: type = name_ref C, %C.decl [concrete = constants.%C] @@ -245,7 +245,7 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: class @C { // CHECK:STDOUT: %.loc5: %C.elem = field_decl a, element0 [concrete] // CHECK:STDOUT: %.loc6: %C.elem = field_decl b, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.b47 [concrete = constants.%complete_type.abf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.b4c [concrete = constants.%complete_type.7b9] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -257,7 +257,7 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: class @AdaptC { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: adapt_decl %C.ref [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.b47 [concrete = constants.%complete_type.abf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.b4c [concrete = constants.%complete_type.7b9] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -308,40 +308,40 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [concrete] -// CHECK:STDOUT: %struct_type.a.b.b47: type = struct_type {.a: %i32, .b: %i32} [concrete] -// CHECK:STDOUT: %complete_type.abf: = complete_type_witness %struct_type.a.b.b47 [concrete] +// CHECK:STDOUT: %struct_type.a.b.b4c: type = struct_type {.a: %i32, .b: %i32} [concrete] +// CHECK:STDOUT: %complete_type.7b9: = complete_type_witness %struct_type.a.b.b4c [concrete] // CHECK:STDOUT: %AdaptC: type = class_type @AdaptC [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.a.b.cfd = struct_value (%int_1.5b8, %int_2.ecc) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %C.val: %C = struct_value (%int_1.d9c, %int_2.228) [concrete] -// CHECK:STDOUT: %.d03: ref %C = temporary invalid, %C.val [concrete] -// CHECK:STDOUT: %pattern_type.fae: type = pattern_type %AdaptC [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %C.val: %C = struct_value (%int_1.0c6, %int_2.295) [concrete] +// CHECK:STDOUT: %.c76: ref %C = temporary invalid, %C.val [concrete] +// CHECK:STDOUT: %pattern_type.720: type = pattern_type %AdaptC [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] // CHECK:STDOUT: %MakeC.type: type = fn_type @MakeC [concrete] // CHECK:STDOUT: %MakeC: %MakeC.type = struct_value () [concrete] -// CHECK:STDOUT: %.de2: Core.Form = init_form %AdaptC [concrete] +// CHECK:STDOUT: %.624: Core.Form = init_form %AdaptC [concrete] // CHECK:STDOUT: %MakeAdaptC.type: type = fn_type @MakeAdaptC [concrete] // CHECK:STDOUT: %MakeAdaptC: %MakeAdaptC.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -354,9 +354,9 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -376,71 +376,71 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %AdaptC.decl: type = class_decl @AdaptC [concrete = constants.%AdaptC] {} {} // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.0d5 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.98b = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %C.ref.loc13: type = name_ref C, %C.decl [concrete = constants.%C] -// CHECK:STDOUT: %impl.elem0.loc13_27.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc13_27.1: = bound_method @__global_init.%int_1, %impl.elem0.loc13_27.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc13_27.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc13_27.1: = bound_method @__global_init.%int_1, %impl.elem0.loc13_27.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc13_27.1: = specific_function %impl.elem0.loc13_27.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc13_27.2: = bound_method @__global_init.%int_1, %specific_fn.loc13_27.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_27.1: init %i32 = call %bound_method.loc13_27.2(@__global_init.%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc13_27.1: init %i32 = converted @__global_init.%int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_27.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc13_27.2: = bound_method @__global_init.%int_1, %specific_fn.loc13_27.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_27.1: init %i32 = call %bound_method.loc13_27.2(@__global_init.%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc13_27.1: init %i32 = converted @__global_init.%int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_27.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc13_27.2: ref %C = temporary_storage // CHECK:STDOUT: %.loc13_27.3: ref %i32 = class_element_access %.loc13_27.2, element0 -// CHECK:STDOUT: %.loc13_27.4: init %i32 to %.loc13_27.3 = in_place_init %.loc13_27.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc13_27.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc13_27.3: = bound_method @__global_init.%int_2, %impl.elem0.loc13_27.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc13_27.4: init %i32 to %.loc13_27.3 = in_place_init %.loc13_27.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc13_27.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc13_27.3: = bound_method @__global_init.%int_2, %impl.elem0.loc13_27.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc13_27.2: = specific_function %impl.elem0.loc13_27.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc13_27.4: = bound_method @__global_init.%int_2, %specific_fn.loc13_27.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_27.2: init %i32 = call %bound_method.loc13_27.4(@__global_init.%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc13_27.5: init %i32 = converted @__global_init.%int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_27.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc13_27.4: = bound_method @__global_init.%int_2, %specific_fn.loc13_27.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_27.2: init %i32 = call %bound_method.loc13_27.4(@__global_init.%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc13_27.5: init %i32 = converted @__global_init.%int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_27.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc13_27.6: ref %i32 = class_element_access %.loc13_27.2, element1 -// CHECK:STDOUT: %.loc13_27.7: init %i32 to %.loc13_27.6 = in_place_init %.loc13_27.5 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %.loc13_27.7: init %i32 to %.loc13_27.6 = in_place_init %.loc13_27.5 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc13_27.8: init %C to %.loc13_27.2 = class_init (%.loc13_27.4, %.loc13_27.7) [concrete = constants.%C.val] // CHECK:STDOUT: %.loc13_27.9: init %C = converted @__global_init.%.loc13, %.loc13_27.8 [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc13_27.10: ref %C = temporary %.loc13_27.2, %.loc13_27.9 [concrete = constants.%.d03] +// CHECK:STDOUT: %.loc13_27.10: ref %C = temporary %.loc13_27.2, %.loc13_27.9 [concrete = constants.%.c76] // CHECK:STDOUT: %.loc13_27.11: %C = acquire_value %.loc13_27.10 [concrete = constants.%C.val] // CHECK:STDOUT: %a: %C = value_binding a, %.loc13_27.11 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.fae = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.720 = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %AdaptC.ref.loc24: type = name_ref AdaptC, %AdaptC.decl [concrete = constants.%AdaptC] // CHECK:STDOUT: %.loc24: %AdaptC = converted @__global_init.%a.ref, [concrete = ] // CHECK:STDOUT: %b: %AdaptC = value_binding b, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %C.ref.loc33: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc33: %C = converted @__global_init.%b.ref, [concrete = ] // CHECK:STDOUT: %c: %C = value_binding c, [concrete = ] // CHECK:STDOUT: %MakeC.decl: %MakeC.type = fn_decl @MakeC [concrete = constants.%MakeC] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc35: Core.Form = init_form %C.ref [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc35: Core.Form = init_form %C.ref [concrete = constants.%.a44] // CHECK:STDOUT: %return.param: ref %C = out_param call_param0 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %MakeAdaptC.decl: %MakeAdaptC.type = fn_decl @MakeAdaptC [concrete = constants.%MakeAdaptC] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.fae = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.fae = return_slot_pattern %return.param_patt, %AdaptC.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.720 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.720 = return_slot_pattern %return.param_patt, %AdaptC.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AdaptC.ref: type = name_ref AdaptC, file.%AdaptC.decl [concrete = constants.%AdaptC] -// CHECK:STDOUT: %.loc37: Core.Form = init_form %AdaptC.ref [concrete = constants.%.de2] +// CHECK:STDOUT: %.loc37: Core.Form = init_form %AdaptC.ref [concrete = constants.%.624] // CHECK:STDOUT: %return.param: ref %AdaptC = out_param call_param0 // CHECK:STDOUT: %return: ref %AdaptC = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.fae = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.fae = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.720 = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.720 = var_pattern %d.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %d.var: ref %AdaptC = var %d.var_patt [concrete] // CHECK:STDOUT: %AdaptC.ref.loc46: type = name_ref AdaptC, %AdaptC.decl [concrete = constants.%AdaptC] // CHECK:STDOUT: %d: ref %AdaptC = ref_binding d, %d.var [concrete = %d.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %e.patt: %pattern_type.0d5 = ref_binding_pattern e [concrete] -// CHECK:STDOUT: %e.var_patt: %pattern_type.0d5 = var_pattern %e.patt [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.98b = ref_binding_pattern e [concrete] +// CHECK:STDOUT: %e.var_patt: %pattern_type.98b = var_pattern %e.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %e.var: ref %C = var %e.var_patt [concrete] // CHECK:STDOUT: %C.ref.loc55: type = name_ref C, %C.decl [concrete = constants.%C] @@ -450,7 +450,7 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: class @C { // CHECK:STDOUT: %.loc5: %C.elem = field_decl a, element0 [concrete] // CHECK:STDOUT: %.loc6: %C.elem = field_decl b, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.b47 [concrete = constants.%complete_type.abf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.b4c [concrete = constants.%complete_type.7b9] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -462,7 +462,7 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: class @AdaptC { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: adapt_decl %C.ref [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.b47 [concrete = constants.%complete_type.abf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.b4c [concrete = constants.%complete_type.7b9] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/class/basic.carbon b/toolchain/check/testdata/class/basic.carbon index b1a5427961a0..7ed375e639b4 100644 --- a/toolchain/check/testdata/class/basic.carbon +++ b/toolchain/check/testdata/class/basic.carbon @@ -39,44 +39,44 @@ fn Run() -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [concrete] // CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G [concrete] // CHECK:STDOUT: %Class.G: %Class.G.type = struct_value () [concrete] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [concrete] // CHECK:STDOUT: %struct_type.k: type = struct_type {.k: %i32} [concrete] -// CHECK:STDOUT: %complete_type.b06: = complete_type_witness %struct_type.k [concrete] +// CHECK:STDOUT: %complete_type.d82: = complete_type_witness %struct_type.k [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %Run.type: type = fn_type @Run [concrete] // CHECK:STDOUT: %Run: %Run.type = struct_value () [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_4.a4d: %i32 = int_value 4 [concrete] +// CHECK:STDOUT: %int_4.4eb: %i32 = int_value 4 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -89,11 +89,11 @@ fn Run() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -105,13 +105,13 @@ fn Run() -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc25_23 [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc25_23 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc25_23: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32.loc25_23 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32.loc25_23 [concrete = constants.%.795] // CHECK:STDOUT: %n.param.loc25: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc25_15: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n.loc25: %i32 = value_binding n, %n.param.loc25 @@ -119,11 +119,11 @@ fn Run() -> i32 { // CHECK:STDOUT: %return.loc25: ref %i32 = return_slot %return.param.loc25 // CHECK:STDOUT: } // CHECK:STDOUT: %Run.decl: %Run.type = fn_decl @Run [concrete = constants.%Run] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc29: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc29: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -131,13 +131,13 @@ fn Run() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc16_19 [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc16_19 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc16_19: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32.loc16_19 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32.loc16_19 [concrete = constants.%.795] // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc16_11: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param @@ -145,13 +145,13 @@ fn Run() -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc25_23 [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc25_23 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc20_19: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32.loc20_19 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32.loc20_19 [concrete = constants.%.795] // CHECK:STDOUT: %n.param.loc20: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc20_11: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n.loc20: %i32 = value_binding n, %n.param.loc20 @@ -159,7 +159,7 @@ fn Run() -> i32 { // CHECK:STDOUT: %return.loc20: ref %i32 = return_slot %return.param.loc20 // CHECK:STDOUT: } // CHECK:STDOUT: %.loc22: %Class.elem = field_decl k, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.k [concrete = constants.%complete_type.b06] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.k [concrete = constants.%complete_type.d82] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -172,7 +172,7 @@ fn Run() -> i32 { // CHECK:STDOUT: fn @Class.F(%n.param: %i32) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc17_12.1: = bound_method %n.ref, %impl.elem0 // 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.loc17_12.2: = bound_method %n.ref, %specific_fn @@ -183,7 +183,7 @@ fn Run() -> i32 { // CHECK:STDOUT: fn @Class.G(%n.param.loc25: %i32) -> out %return.param.loc25: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n.loc25 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc26_10.1: = bound_method %n.ref, %impl.elem0 // 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_10.2: = bound_method %n.ref, %specific_fn @@ -196,13 +196,13 @@ fn Run() -> i32 { // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] // CHECK:STDOUT: %F.ref: %Class.F.type = name_ref F, @Class.%Class.F.decl [concrete = constants.%Class.F] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc30_18.1: = bound_method %int_4, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc30_18.2: = bound_method %int_4, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc30_18.2(%int_4) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc30_18.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc30_18.2: %i32 = converted %int_4, %.loc30_18.1 [concrete = constants.%int_4.a4d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc30_18.2(%int_4) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc30_18.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc30_18.2: %i32 = converted %int_4, %.loc30_18.1 [concrete = constants.%int_4.4eb] // CHECK:STDOUT: %Class.F.call: init %i32 = call %F.ref(%.loc30_18.2) // CHECK:STDOUT: return %Class.F.call // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/complete_in_member_fn.carbon b/toolchain/check/testdata/class/complete_in_member_fn.carbon index 8b3637fed5c2..e77747a03a68 100644 --- a/toolchain/check/testdata/class/complete_in_member_fn.carbon +++ b/toolchain/check/testdata/class/complete_in_member_fn.carbon @@ -22,29 +22,29 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %C.F.type: type = fn_type @C.F [concrete] // CHECK:STDOUT: %C.F: %C.F.type = struct_value () [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete] -// CHECK:STDOUT: %complete_type.f2a: = complete_type_witness %struct_type.a [concrete] +// CHECK:STDOUT: %complete_type.388: = complete_type_witness %struct_type.a [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -56,8 +56,8 @@ class C { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -71,13 +71,13 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16_17: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc16_17: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: %C = value_binding c, %c.param @@ -85,7 +85,7 @@ class C { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %.loc18: %C.elem = field_decl a, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a [concrete = constants.%complete_type.f2a] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a [concrete = constants.%complete_type.388] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -101,7 +101,7 @@ class C { // CHECK:STDOUT: %a.ref: %C.elem = name_ref a, @C.%.loc18 [concrete = @C.%.loc18] // CHECK:STDOUT: %.loc16_31.1: ref %i32 = class_element_access %c.ref, element0 // CHECK:STDOUT: %.loc16_31.2: %i32 = acquire_value %.loc16_31.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc16_31.1: = bound_method %.loc16_31.2, %impl.elem0 // 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.loc16_31.2: = bound_method %.loc16_31.2, %specific_fn diff --git a/toolchain/check/testdata/class/cross_package_import.carbon b/toolchain/check/testdata/class/cross_package_import.carbon index b61132a2b13e..f89aee999049 100644 --- a/toolchain/check/testdata/class/cross_package_import.carbon +++ b/toolchain/check/testdata/class/cross_package_import.carbon @@ -210,7 +210,7 @@ var c: Other.C = {}; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//other_define, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.8f2: = import_ref Other//other_define, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.862 = import_ref Other//other_define, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.0cc = import_ref Other//other_define, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -237,7 +237,7 @@ var c: Other.C = {}; // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.862 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.0cc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -321,7 +321,7 @@ var c: Other.C = {}; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//other_define, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.8f2: = import_ref Other//other_define, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.862 = import_ref Other//other_define, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.0cc = import_ref Other//other_define, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -348,7 +348,7 @@ var c: Other.C = {}; // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.862 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.0cc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -383,7 +383,7 @@ var c: Other.C = {}; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//other_define, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.8f2: = import_ref Other//other_define, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.862 = import_ref Other//other_define, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.0cc = import_ref Other//other_define, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -410,7 +410,7 @@ var c: Other.C = {}; // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.862 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.0cc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/class/destroy_calls.carbon b/toolchain/check/testdata/class/destroy_calls.carbon index a1fcee0e07db..2d5d99b0fc22 100644 --- a/toolchain/check/testdata/class/destroy_calls.carbon +++ b/toolchain/check/testdata/class/destroy_calls.carbon @@ -98,19 +98,19 @@ fn G() { F({}); } // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %A.val: %A = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.787: type = pattern_type %B [concrete] +// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete] // CHECK:STDOUT: %B.val: %B = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc12_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc11 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc10 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -120,8 +120,8 @@ fn G() { F({}); } // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.ccb = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.ccb = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9ef = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.9ef = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %A = var %a.var_patt // CHECK:STDOUT: %.loc10_22.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -131,8 +131,8 @@ fn G() { F({}); } // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %a: ref %A = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.787 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.787 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.e39 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.e39 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %B = var %b.var_patt // CHECK:STDOUT: %.loc11_22.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -142,8 +142,8 @@ fn G() { F({}); } // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %b: ref %B = ref_binding b, %b.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.0d5 = var_pattern %c.patt [concrete] +// 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: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt // CHECK:STDOUT: %.loc12_22.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -152,11 +152,11 @@ fn G() { F({}); } // CHECK:STDOUT: assign %c.var, %.loc12_3 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var -// CHECK:STDOUT: %Destroy.Op.bound.loc12: = bound_method %c.var, constants.%Destroy.Op.2dd605.2 +// 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.2dd605.3 +// 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.2dd605.4 +// 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: return // CHECK:STDOUT: } @@ -188,20 +188,20 @@ fn G() { F({}); } // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %A.val: %A = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.787: type = pattern_type %B [concrete] +// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete] // CHECK:STDOUT: %B.val: %B = struct_value () [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc13_5.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc11 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc10 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -211,8 +211,8 @@ fn G() { F({}); } // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.ccb = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.ccb = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9ef = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.9ef = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %A = var %a.var_patt // CHECK:STDOUT: %.loc10_22.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -222,8 +222,8 @@ fn G() { F({}); } // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %a: ref %A = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.787 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.787 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.e39 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.e39 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %B = var %b.var_patt // CHECK:STDOUT: %.loc11_22.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -237,8 +237,8 @@ fn G() { F({}); } // CHECK:STDOUT: // CHECK:STDOUT: !if.then: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.0d5 = var_pattern %c.patt [concrete] +// 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: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt // CHECK:STDOUT: %.loc13_24.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -250,11 +250,11 @@ fn G() { F({}); } // CHECK:STDOUT: br !if.else // CHECK:STDOUT: // CHECK:STDOUT: !if.else: -// CHECK:STDOUT: %Destroy.Op.bound.loc13: = bound_method %c.var, constants.%Destroy.Op.2dd605.2 +// 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.Op.bound.loc11: = bound_method %b.var, constants.%Destroy.Op.2dd605.3 +// 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.2dd605.4 +// 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: return // CHECK:STDOUT: } @@ -292,12 +292,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.790b3b.2: type = fn_type @Destroy.Op.loc14_10.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc13 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc12 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc14_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.loc13 [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: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -321,11 +321,11 @@ fn G() { F({}); } // CHECK:STDOUT: %.loc14_10.1: ref %C = temporary_storage // CHECK:STDOUT: %C.Make.call: init %C to %.loc14_10.1 = call %Make.ref.loc14() // CHECK:STDOUT: %.loc14_10.2: ref %C = temporary %.loc14_10.1, %C.Make.call -// CHECK:STDOUT: %Destroy.Op.bound.loc14: = bound_method %.loc14_10.2, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc14: = bound_method %.loc14_10.2, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc14: init %empty_tuple.type = call %Destroy.Op.bound.loc14(%.loc14_10.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc13: = bound_method %.loc13_10.2, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %Destroy.Op.bound.loc13: = bound_method %.loc13_10.2, constants.%Destroy.Op.1a2547.3 // CHECK:STDOUT: %Destroy.Op.call.loc13: init %empty_tuple.type = call %Destroy.Op.bound.loc13(%.loc13_10.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc12: = bound_method %.loc12_10.2, constants.%Destroy.Op.2dd605.4 +// 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: return // CHECK:STDOUT: } @@ -357,12 +357,12 @@ fn G() { F({}); } // CHECK:STDOUT: %D.generic: %D.type = struct_value () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %D.66a: type = class_type @D, @D(%C) [concrete] -// CHECK:STDOUT: %pattern_type.855: type = pattern_type %D.66a [concrete] +// CHECK:STDOUT: %D.dee: type = class_type @D, @D(%C) [concrete] +// CHECK:STDOUT: %pattern_type.6fa: type = pattern_type %D.dee [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %D.val: %D.66a = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -372,28 +372,28 @@ fn G() { F({}); } // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.855 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.855 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6fa = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.6fa = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %D.66a = var %a.var_patt +// CHECK:STDOUT: %a.var: ref %D.dee = var %a.var_patt // CHECK:STDOUT: %.loc9_25.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc9_25.2: init %D.66a to %a.var = class_init () [concrete = constants.%D.val] -// CHECK:STDOUT: %.loc9_3: init %D.66a = converted %.loc9_25.1, %.loc9_25.2 [concrete = constants.%D.val] +// CHECK:STDOUT: %.loc9_25.2: init %D.dee to %a.var = class_init () [concrete = constants.%D.val] +// CHECK:STDOUT: %.loc9_3: init %D.dee = converted %.loc9_25.1, %.loc9_25.2 [concrete = constants.%D.val] // CHECK:STDOUT: assign %a.var, %.loc9_3 -// CHECK:STDOUT: %.loc9_20: type = splice_block %D [concrete = constants.%D.66a] { +// CHECK:STDOUT: %.loc9_20: type = splice_block %D [concrete = constants.%D.dee] { // CHECK:STDOUT: %D.ref: %D.type = name_ref D, file.%D.decl [concrete = constants.%D.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %D: type = class_type @D, @D(constants.%C) [concrete = constants.%D.66a] +// CHECK:STDOUT: %D: type = class_type @D, @D(constants.%C) [concrete = constants.%D.dee] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %D.66a = ref_binding a, %a.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %a: ref %D.dee = ref_binding a, %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: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.66a) { +// CHECK:STDOUT: fn @Destroy.Op.loc9_3.2(%self.param: ref %D.dee) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -408,31 +408,31 @@ fn G() { F({}); } // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%T) [template] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%T) [template] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %C.1f9 [template] -// CHECK:STDOUT: %pattern_type.69e: type = pattern_type %C.1f9 [template] +// CHECK:STDOUT: %require_complete: = require_complete_type %C.1d0 [template] +// CHECK:STDOUT: %pattern_type.ebe: type = pattern_type %C.1d0 [template] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %C.val.ad6: %C.1f9 = struct_value () [template] +// CHECK:STDOUT: %C.val.d4f: %C.1d0 = struct_value () [template] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %C.1f9, @Destroy [template] -// CHECK:STDOUT: %Destroy.facet.61a: %Destroy.type = facet_value %C.1f9, (%Destroy.lookup_impl_witness) [template] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.269: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.61a) [template] -// CHECK:STDOUT: %.320: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.269, %Destroy.facet.61a [template] -// CHECK:STDOUT: %impl.elem0: %.320 = impl_witness_access %Destroy.lookup_impl_witness, element0 [template] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op(%Destroy.facet.61a) [template] -// CHECK:STDOUT: %C.ea5: type = class_type @C, @C(%empty_struct_type) [concrete] -// CHECK:STDOUT: %pattern_type.4ac: type = pattern_type %C.ea5 [concrete] -// CHECK:STDOUT: %C.val.986: %C.ea5 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc7_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.2: = custom_witness (%Destroy.Op.2dd605.2), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.3e3: %Destroy.type = facet_value %C.ea5, (%custom_witness.e20f1f.2) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.e1c: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.3e3) [concrete] -// CHECK:STDOUT: %.f04: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.e1c, %Destroy.facet.3e3 [concrete] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %C.1d0, @Destroy [template] +// CHECK:STDOUT: %Destroy.facet.19f: %Destroy.type = facet_value %C.1d0, (%Destroy.lookup_impl_witness) [template] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.fc4: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.19f) [template] +// CHECK:STDOUT: %.cb3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.fc4, %Destroy.facet.19f [template] +// CHECK:STDOUT: %impl.elem0: %.cb3 = impl_witness_access %Destroy.lookup_impl_witness, element0 [template] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op(%Destroy.facet.19f) [template] +// 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: %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: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -451,37 +451,37 @@ fn G() { F({}); } // CHECK:STDOUT: %T.loc6_16.1: type = symbolic_binding T, 0, template [template = %T.loc6_16.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.loc7_20.2: type = class_type @C, @C(%T.loc6_16.1) [template = %C.loc7_20.2 (constants.%C.1f9)] +// CHECK:STDOUT: %C.loc7_20.2: type = class_type @C, @C(%T.loc6_16.1) [template = %C.loc7_20.2 (constants.%C.1d0)] // CHECK:STDOUT: %require_complete: = require_complete_type %C.loc7_20.2 [template = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %C.loc7_20.2 [template = %pattern_type (constants.%pattern_type.69e)] -// CHECK:STDOUT: %C.val: @F.%C.loc7_20.2 (%C.1f9) = struct_value () [template = %C.val (constants.%C.val.ad6)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %C.loc7_20.2 [template = %pattern_type (constants.%pattern_type.ebe)] +// CHECK:STDOUT: %C.val: @F.%C.loc7_20.2 (%C.1d0) = struct_value () [template = %C.val (constants.%C.val.d4f)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %C.loc7_20.2, @Destroy [template = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C.loc7_20.2, (%Destroy.lookup_impl_witness) [template = %Destroy.facet (constants.%Destroy.facet.61a)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [template = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.269)] -// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [template = %.loc7_3.2 (constants.%.320)] -// CHECK:STDOUT: %impl.elem0.loc7_3.2: @F.%.loc7_3.2 (%.320) = impl_witness_access %Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc7_3.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C.loc7_20.2, (%Destroy.lookup_impl_witness) [template = %Destroy.facet (constants.%Destroy.facet.19f)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [template = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.fc4)] +// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [template = %.loc7_3.2 (constants.%.cb3)] +// CHECK:STDOUT: %impl.elem0.loc7_3.2: @F.%.loc7_3.2 (%.cb3) = impl_witness_access %Destroy.lookup_impl_witness, element0 [template = %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) [template = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: @F.%pattern_type (%pattern_type.69e) = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: @F.%pattern_type (%pattern_type.69e) = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: @F.%pattern_type (%pattern_type.ebe) = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: @F.%pattern_type (%pattern_type.ebe) = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref @F.%C.loc7_20.2 (%C.1f9) = var %v.var_patt +// CHECK:STDOUT: %v.var: ref @F.%C.loc7_20.2 (%C.1d0) = var %v.var_patt // CHECK:STDOUT: %.loc7_25.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc7_25.2: init @F.%C.loc7_20.2 (%C.1f9) to %v.var = class_init () [template = %C.val (constants.%C.val.ad6)] -// CHECK:STDOUT: %.loc7_3.1: init @F.%C.loc7_20.2 (%C.1f9) = converted %.loc7_25.1, %.loc7_25.2 [template = %C.val (constants.%C.val.ad6)] +// CHECK:STDOUT: %.loc7_25.2: init @F.%C.loc7_20.2 (%C.1d0) to %v.var = class_init () [template = %C.val (constants.%C.val.d4f)] +// CHECK:STDOUT: %.loc7_3.1: init @F.%C.loc7_20.2 (%C.1d0) = converted %.loc7_25.1, %.loc7_25.2 [template = %C.val (constants.%C.val.d4f)] // CHECK:STDOUT: assign %v.var, %.loc7_3.1 -// CHECK:STDOUT: %.loc7_20: type = splice_block %C.loc7_20.1 [template = %C.loc7_20.2 (constants.%C.1f9)] { +// CHECK:STDOUT: %.loc7_20: type = splice_block %C.loc7_20.1 [template = %C.loc7_20.2 (constants.%C.1d0)] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_16.2 [template = %T.loc6_16.1 (constants.%T)] -// CHECK:STDOUT: %C.loc7_20.1: type = class_type @C, @C(constants.%T) [template = %C.loc7_20.2 (constants.%C.1f9)] +// CHECK:STDOUT: %C.loc7_20.1: type = class_type @C, @C(constants.%T) [template = %C.loc7_20.2 (constants.%C.1d0)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref @F.%C.loc7_20.2 (%C.1f9) = ref_binding v, %v.var -// CHECK:STDOUT: %impl.elem0.loc7_3.1: @F.%.loc7_3.2 (%.320) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc7_3.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %v: ref @F.%C.loc7_20.2 (%C.1d0) = ref_binding v, %v.var +// CHECK:STDOUT: %impl.elem0.loc7_3.1: @F.%.loc7_3.2 (%.cb3) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc7_3.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %v.var, %impl.elem0.loc7_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc7_3.1: = specific_impl_function %impl.elem0.loc7_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.61a) [template = %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(constants.%Destroy.facet.19f) [template = %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 @@ -490,7 +490,7 @@ fn G() { F({}); } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.ea5) { +// CHECK:STDOUT: fn @Destroy.Op.loc7_3.2(%self.param: ref %C.d8e) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -503,15 +503,15 @@ fn G() { F({}); } // CHECK:STDOUT: %T.loc6_16.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.loc7_20.2 => constants.%C.ea5 +// CHECK:STDOUT: %C.loc7_20.2 => constants.%C.d8e // CHECK:STDOUT: %require_complete => constants.%complete_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4ac -// CHECK:STDOUT: %C.val => constants.%C.val.986 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e20f1f.2 -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.3e3 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e1c -// CHECK:STDOUT: %.loc7_3.2 => constants.%.f04 -// CHECK:STDOUT: %impl.elem0.loc7_3.2 => constants.%Destroy.Op.2dd605.2 -// CHECK:STDOUT: %specific_impl_fn.loc7_3.2 => constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2fd +// CHECK:STDOUT: %C.val => constants.%C.val.58e +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.2 +// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.da3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.294 +// CHECK:STDOUT: %.loc7_3.2 => 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: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/export_name.carbon b/toolchain/check/testdata/class/export_name.carbon index a3aa00562f59..10914cd6c9e0 100644 --- a/toolchain/check/testdata/class/export_name.carbon +++ b/toolchain/check/testdata/class/export_name.carbon @@ -76,7 +76,7 @@ var c: C = {}; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//base, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -91,7 +91,7 @@ var c: C = {}; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_export.carbon @@ -108,7 +108,7 @@ var c: C = {}; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//export, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -130,7 +130,7 @@ var c: C = {}; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8db // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/class/extern.carbon b/toolchain/check/testdata/class/extern.carbon index cf19a0d98077..cc27bb601990 100644 --- a/toolchain/check/testdata/class/extern.carbon +++ b/toolchain/check/testdata/class/extern.carbon @@ -604,7 +604,7 @@ extern class C; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//def, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//def, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//def, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -619,7 +619,7 @@ extern class C; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_extern_decl_after_import_def.carbon @@ -632,7 +632,7 @@ extern class C; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//def, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//def, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//def, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -647,6 +647,6 @@ extern class C; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/field/compound_field.carbon b/toolchain/check/testdata/class/field/compound_field.carbon index 35e907216f57..4fada03f53cd 100644 --- a/toolchain/check/testdata/class/field/compound_field.carbon +++ b/toolchain/check/testdata/class/field/compound_field.carbon @@ -50,48 +50,48 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [concrete] // CHECK:STDOUT: %struct_type.a.b.c: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [concrete] -// CHECK:STDOUT: %complete_type.57e: = complete_type_witness %struct_type.a.b.c [concrete] +// CHECK:STDOUT: %complete_type.bae: = complete_type_witness %struct_type.a.b.c [concrete] // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] -// CHECK:STDOUT: %Derived.elem.25d: type = unbound_element_type %Derived, %Base [concrete] -// CHECK:STDOUT: %Derived.elem.165: type = unbound_element_type %Derived, %i32 [concrete] -// CHECK:STDOUT: %struct_type.base.d.e.0c9: type = struct_type {.base: %Base, .d: %i32, .e: %i32} [concrete] -// CHECK:STDOUT: %complete_type.c27: = complete_type_witness %struct_type.base.d.e.0c9 [concrete] -// CHECK:STDOUT: %pattern_type.cd3: type = pattern_type %Derived [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %Derived.elem.93c: type = unbound_element_type %Derived, %Base [concrete] +// CHECK:STDOUT: %Derived.elem.577: type = unbound_element_type %Derived, %i32 [concrete] +// CHECK:STDOUT: %struct_type.base.d.e.26c: type = struct_type {.base: %Base, .d: %i32, .e: %i32} [concrete] +// CHECK:STDOUT: %complete_type.9b3: = complete_type_witness %struct_type.base.d.e.26c [concrete] +// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %AccessDerived.type: type = fn_type @AccessDerived [concrete] // CHECK:STDOUT: %AccessDerived: %AccessDerived.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] +// 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: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.14d: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet.14d [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.987: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet.987 [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: %AccessBase.type: type = fn_type @AccessBase [concrete] // CHECK:STDOUT: %AccessBase: %AccessBase.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.054: type = ptr_type %Derived [concrete] -// CHECK:STDOUT: %pattern_type.df0: type = pattern_type %ptr.054 [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %.060: Core.Form = init_form %ptr.847 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr.847 [concrete] +// CHECK:STDOUT: %ptr.64c: type = ptr_type %Derived [concrete] +// CHECK:STDOUT: %pattern_type.56c: type = pattern_type %ptr.64c [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %.952: Core.Form = init_form %ptr.d08 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete] // CHECK:STDOUT: %AccessDerivedIndirect.type: type = fn_type @AccessDerivedIndirect [concrete] // CHECK:STDOUT: %AccessDerivedIndirect: %AccessDerivedIndirect.type = struct_value () [concrete] -// CHECK:STDOUT: %Copy.impl_witness.c37: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ae4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.6e4: %ptr.as.Copy.impl.Op.type.ae4 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.17a: %Copy.type = facet_value %ptr.847, (%Copy.impl_witness.c37) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.165: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.17a) [concrete] -// CHECK:STDOUT: %.cd7: type = fn_type_with_self_type %Copy.WithSelf.Op.type.165, %Copy.facet.17a [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.6e4, @ptr.as.Copy.impl.Op(%i32) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.ce1: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c1c: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.d1c: %ptr.as.Copy.impl.Op.type.c1c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.b49: %Copy.type = facet_value %ptr.d08, (%Copy.impl_witness.ce1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.f9d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.b49) [concrete] +// CHECK:STDOUT: %.ac9: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f9d, %Copy.facet.b49 [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: %AccessBaseIndirect.type: type = fn_type @AccessBaseIndirect [concrete] // CHECK:STDOUT: %AccessBaseIndirect: %AccessBaseIndirect.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -105,10 +105,10 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -125,13 +125,13 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %AccessDerived.decl: %AccessDerived.type = fn_decl @AccessDerived [concrete = constants.%AccessDerived] { -// CHECK:STDOUT: %d.param_patt: %pattern_type.cd3 = value_param_pattern [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.cd3 = at_binding_pattern d, %d.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.746 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.746 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc28: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc28: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %d.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Derived.ref.loc28: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] // CHECK:STDOUT: %d: %Derived = value_binding d, %d.param @@ -139,13 +139,13 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessBase.decl: %AccessBase.type = fn_decl @AccessBase [concrete = constants.%AccessBase] { -// CHECK:STDOUT: %d.param_patt: %pattern_type.cd3 = value_param_pattern [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.cd3 = at_binding_pattern d, %d.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.746 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.746 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc32: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc32: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %d.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] // CHECK:STDOUT: %d: %Derived = value_binding d, %d.param @@ -153,40 +153,40 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessDerivedIndirect.decl: %AccessDerivedIndirect.type = fn_decl @AccessDerivedIndirect [concrete = constants.%AccessDerivedIndirect] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.df0 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.df0 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7b5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7b5 = return_slot_pattern %return.param_patt, %ptr.loc36_45 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f00 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f00 = return_slot_pattern %return.param_patt, %ptr.loc36_45 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr.loc36_45: type = ptr_type %i32 [concrete = constants.%ptr.847] -// CHECK:STDOUT: %.loc36_45: Core.Form = init_form %ptr.loc36_45 [concrete = constants.%.060] -// CHECK:STDOUT: %p.param: %ptr.054 = value_param call_param0 -// CHECK:STDOUT: %.loc36_36: type = splice_block %ptr.loc36_36 [concrete = constants.%ptr.054] { +// CHECK:STDOUT: %ptr.loc36_45: type = ptr_type %i32 [concrete = constants.%ptr.d08] +// CHECK:STDOUT: %.loc36_45: Core.Form = init_form %ptr.loc36_45 [concrete = constants.%.952] +// CHECK:STDOUT: %p.param: %ptr.64c = value_param call_param0 +// CHECK:STDOUT: %.loc36_36: type = splice_block %ptr.loc36_36 [concrete = constants.%ptr.64c] { // CHECK:STDOUT: %Derived.ref.loc36: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] -// CHECK:STDOUT: %ptr.loc36_36: type = ptr_type %Derived.ref.loc36 [concrete = constants.%ptr.054] +// CHECK:STDOUT: %ptr.loc36_36: type = ptr_type %Derived.ref.loc36 [concrete = constants.%ptr.64c] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.054 = value_binding p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.847 = out_param call_param1 -// CHECK:STDOUT: %return: ref %ptr.847 = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.64c = value_binding p, %p.param +// CHECK:STDOUT: %return.param: ref %ptr.d08 = out_param call_param1 +// CHECK:STDOUT: %return: ref %ptr.d08 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessBaseIndirect.decl: %AccessBaseIndirect.type = fn_decl @AccessBaseIndirect [concrete = constants.%AccessBaseIndirect] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.df0 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.df0 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7b5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7b5 = return_slot_pattern %return.param_patt, %ptr.loc40_42 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f00 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f00 = return_slot_pattern %return.param_patt, %ptr.loc40_42 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr.loc40_42: type = ptr_type %i32 [concrete = constants.%ptr.847] -// CHECK:STDOUT: %.loc40_42: Core.Form = init_form %ptr.loc40_42 [concrete = constants.%.060] -// CHECK:STDOUT: %p.param: %ptr.054 = value_param call_param0 -// CHECK:STDOUT: %.loc40_33: type = splice_block %ptr.loc40_33 [concrete = constants.%ptr.054] { +// CHECK:STDOUT: %ptr.loc40_42: type = ptr_type %i32 [concrete = constants.%ptr.d08] +// CHECK:STDOUT: %.loc40_42: Core.Form = init_form %ptr.loc40_42 [concrete = constants.%.952] +// CHECK:STDOUT: %p.param: %ptr.64c = value_param call_param0 +// CHECK:STDOUT: %.loc40_33: type = splice_block %ptr.loc40_33 [concrete = constants.%ptr.64c] { // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] -// CHECK:STDOUT: %ptr.loc40_33: type = ptr_type %Derived.ref [concrete = constants.%ptr.054] +// CHECK:STDOUT: %ptr.loc40_33: type = ptr_type %Derived.ref [concrete = constants.%ptr.64c] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.054 = value_binding p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.847 = out_param call_param1 -// CHECK:STDOUT: %return: ref %ptr.847 = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.64c = value_binding p, %p.param +// CHECK:STDOUT: %return.param: ref %ptr.d08 = out_param call_param1 +// CHECK:STDOUT: %return: ref %ptr.d08 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -194,7 +194,7 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: %.loc16: %Base.elem = field_decl a, element0 [concrete] // CHECK:STDOUT: %.loc17: %Base.elem = field_decl b, element1 [concrete] // CHECK:STDOUT: %.loc18: %Base.elem = field_decl c, element2 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.c [concrete = constants.%complete_type.57e] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.c [concrete = constants.%complete_type.bae] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -206,10 +206,10 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] -// CHECK:STDOUT: %.loc22: %Derived.elem.25d = base_decl %Base.ref, element0 [concrete] -// CHECK:STDOUT: %.loc24: %Derived.elem.165 = field_decl d, element1 [concrete] -// CHECK:STDOUT: %.loc25: %Derived.elem.165 = field_decl e, element2 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d.e.0c9 [concrete = constants.%complete_type.c27] +// CHECK:STDOUT: %.loc22: %Derived.elem.93c = base_decl %Base.ref, element0 [concrete] +// CHECK:STDOUT: %.loc24: %Derived.elem.577 = field_decl d, element1 [concrete] +// CHECK:STDOUT: %.loc25: %Derived.elem.577 = field_decl e, element2 [concrete] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d.e.26c [concrete = constants.%complete_type.9b3] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -225,10 +225,10 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %d.ref.loc29_10: %Derived = name_ref d, %d // CHECK:STDOUT: %Derived.ref.loc29: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] -// CHECK:STDOUT: %d.ref.loc29_20: %Derived.elem.165 = name_ref d, @Derived.%.loc24 [concrete = @Derived.%.loc24] +// CHECK:STDOUT: %d.ref.loc29_20: %Derived.elem.577 = name_ref d, @Derived.%.loc24 [concrete = @Derived.%.loc24] // CHECK:STDOUT: %.loc29_11.1: ref %i32 = class_element_access %d.ref.loc29_10, element1 // CHECK:STDOUT: %.loc29_11.2: %i32 = acquire_value %.loc29_11.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc29_11.1: = bound_method %.loc29_11.2, %impl.elem0 // 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.loc29_11.2: = bound_method %.loc29_11.2, %specific_fn @@ -245,7 +245,7 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: %.loc33_11.2: ref %Base = converted %d.ref, %.loc33_11.1 // CHECK:STDOUT: %.loc33_11.3: ref %i32 = class_element_access %.loc33_11.2, element1 // CHECK:STDOUT: %.loc33_11.4: %i32 = acquire_value %.loc33_11.3 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc33_11.1: = bound_method %.loc33_11.4, %impl.elem0 // 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.loc33_11.2: = bound_method %.loc33_11.4, %specific_fn @@ -253,37 +253,37 @@ fn AccessBaseIndirect(p: Derived*) -> i32* { // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @AccessDerivedIndirect(%p.param: %ptr.054) -> out %return.param: %ptr.847 { +// CHECK:STDOUT: fn @AccessDerivedIndirect(%p.param: %ptr.64c) -> out %return.param: %ptr.d08 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.054 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.64c = name_ref p, %p // CHECK:STDOUT: %Derived.ref.loc37: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] -// CHECK:STDOUT: %d.ref: %Derived.elem.165 = name_ref d, @Derived.%.loc24 [concrete = @Derived.%.loc24] +// CHECK:STDOUT: %d.ref: %Derived.elem.577 = name_ref d, @Derived.%.loc24 [concrete = @Derived.%.loc24] // CHECK:STDOUT: %.loc37_12.1: ref %Derived = deref %p.ref // CHECK:STDOUT: %.loc37_12.2: ref %i32 = class_element_access %.loc37_12.1, element1 -// CHECK:STDOUT: %addr: %ptr.847 = addr_of %.loc37_12.2 -// CHECK:STDOUT: %impl.elem0: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %addr: %ptr.d08 = addr_of %.loc37_12.2 +// CHECK:STDOUT: %impl.elem0: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc37_10.1: = bound_method %addr, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc37_10.2: = bound_method %addr, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.847 = call %bound_method.loc37_10.2(%addr) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d08 = call %bound_method.loc37_10.2(%addr) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @AccessBaseIndirect(%p.param: %ptr.054) -> out %return.param: %ptr.847 { +// CHECK:STDOUT: fn @AccessBaseIndirect(%p.param: %ptr.64c) -> out %return.param: %ptr.d08 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.054 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.64c = name_ref p, %p // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %b.ref: %Base.elem = name_ref b, @Base.%.loc17 [concrete = @Base.%.loc17] // CHECK:STDOUT: %.loc41_12.1: ref %Derived = deref %p.ref // CHECK:STDOUT: %.loc41_12.2: ref %Base = class_element_access %.loc41_12.1, element0 // CHECK:STDOUT: %.loc41_12.3: ref %Base = converted %.loc41_12.1, %.loc41_12.2 // CHECK:STDOUT: %.loc41_12.4: ref %i32 = class_element_access %.loc41_12.3, element1 -// CHECK:STDOUT: %addr: %ptr.847 = addr_of %.loc41_12.4 -// CHECK:STDOUT: %impl.elem0: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %addr: %ptr.d08 = addr_of %.loc41_12.4 +// CHECK:STDOUT: %impl.elem0: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc41_10.1: = bound_method %addr, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc41_10.2: = bound_method %addr, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.847 = call %bound_method.loc41_10.2(%addr) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d08 = call %bound_method.loc41_10.2(%addr) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/field/field_access.carbon b/toolchain/check/testdata/class/field/field_access.carbon index c1abf35cf0a6..4257cd6095a2 100644 --- a/toolchain/check/testdata/class/field/field_access.carbon +++ b/toolchain/check/testdata/class/field/field_access.carbon @@ -36,58 +36,58 @@ fn Run() { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [concrete] // CHECK:STDOUT: %struct_type.j.k: type = struct_type {.j: %i32, .k: %i32} [concrete] -// CHECK:STDOUT: %complete_type.edd: = complete_type_witness %struct_type.j.k [concrete] +// CHECK:STDOUT: %complete_type.212: = complete_type_witness %struct_type.j.k [concrete] // CHECK:STDOUT: %Run.type: type = fn_type @Run [concrete] // CHECK:STDOUT: %Run: %Run.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.415: type = pattern_type %Class [concrete] +// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.410: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%Class) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.f58: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Class) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.795: %T.as.DefaultOrUnformed.impl.Op.type.f58 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Class, (%DefaultOrUnformed.impl_witness.410) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.795, @T.as.DefaultOrUnformed.impl.Op(%Class) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.4e8: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%Class) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.cac: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Class) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.de4: %T.as.DefaultOrUnformed.impl.Op.type.cac = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Class, (%DefaultOrUnformed.impl_witness.4e8) [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: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = 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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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.790b3b.2: type = fn_type @Destroy.Op.loc25_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc21_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -102,14 +102,14 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -127,7 +127,7 @@ fn Run() { // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %.loc16: %Class.elem = field_decl j, element0 [concrete] // CHECK:STDOUT: %.loc17: %Class.elem = field_decl k, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.j.k [concrete = constants.%complete_type.edd] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.j.k [concrete = constants.%complete_type.212] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -139,15 +139,15 @@ fn Run() { // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.415 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.415 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.f15 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.f15 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %Class = var %c.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Class, (constants.%DefaultOrUnformed.impl_witness.410) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Class, (constants.%DefaultOrUnformed.impl_witness.4e8) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc21_15.1: %DefaultOrUnformed.type = converted constants.%Class, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc21_15.1 [concrete = constants.%Class] // CHECK:STDOUT: %.loc21_15.2: type = converted %.loc21_15.1, %as_type [concrete = constants.%Class] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.795, @T.as.DefaultOrUnformed.impl.Op(constants.%Class) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.de4, @T.as.DefaultOrUnformed.impl.Op(constants.%Class) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %.loc21_3: ref %Class = splice_block %c.var {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %Class to %.loc21_3 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign %c.var, %T.as.DefaultOrUnformed.impl.Op.call @@ -157,34 +157,34 @@ fn Run() { // CHECK:STDOUT: %j.ref.loc22: %Class.elem = name_ref j, @Class.%.loc16 [concrete = @Class.%.loc16] // CHECK:STDOUT: %.loc22_4: ref %i32 = class_element_access %c.ref.loc22, element0 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc22: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc22_7.1: = bound_method %int_1, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc22: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc22_7.1: = bound_method %int_1, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem0.loc22, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc22_7.2: = bound_method %int_1, %specific_fn.loc22 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %i32 = call %bound_method.loc22_7.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc22_7: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc22_7.2: = bound_method %int_1, %specific_fn.loc22 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %i32 = call %bound_method.loc22_7.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc22_7: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: assign %.loc22_4, %.loc22_7 // CHECK:STDOUT: %c.ref.loc23: ref %Class = name_ref c, %c // CHECK:STDOUT: %k.ref.loc23: %Class.elem = name_ref k, @Class.%.loc17 [concrete = @Class.%.loc17] // CHECK:STDOUT: %.loc23_4: ref %i32 = class_element_access %c.ref.loc23, element1 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc23: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc23_7.1: = bound_method %int_2, %impl.elem0.loc23 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %impl.elem0.loc23: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc23_7.1: = bound_method %int_2, %impl.elem0.loc23 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc23_7.2: = bound_method %int_2, %specific_fn.loc23 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23: init %i32 = call %bound_method.loc23_7.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc23_7: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc23_7.2: = bound_method %int_2, %specific_fn.loc23 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23: init %i32 = call %bound_method.loc23_7.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc23_7: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23 [concrete = constants.%int_2.295] // CHECK:STDOUT: assign %.loc23_4, %.loc23_7 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cj.patt: %pattern_type.104 = ref_binding_pattern cj [concrete] -// CHECK:STDOUT: %cj.var_patt: %pattern_type.104 = var_pattern %cj.patt [concrete] +// CHECK:STDOUT: %cj.patt: %pattern_type.6b6 = ref_binding_pattern cj [concrete] +// CHECK:STDOUT: %cj.var_patt: %pattern_type.6b6 = var_pattern %cj.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cj.var: ref %i32 = var %cj.var_patt // CHECK:STDOUT: %c.ref.loc24: ref %Class = name_ref c, %c // CHECK:STDOUT: %j.ref.loc24: %Class.elem = name_ref j, @Class.%.loc16 [concrete = @Class.%.loc16] // CHECK:STDOUT: %.loc24_25.1: ref %i32 = class_element_access %c.ref.loc24, element0 // CHECK:STDOUT: %.loc24_25.2: %i32 = acquire_value %.loc24_25.1 -// CHECK:STDOUT: %impl.elem0.loc24: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc24: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc24_25.1: = bound_method %.loc24_25.2, %impl.elem0.loc24 // CHECK:STDOUT: %specific_fn.loc24: = specific_function %impl.elem0.loc24, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc24_25.2: = bound_method %.loc24_25.2, %specific_fn.loc24 @@ -193,15 +193,15 @@ fn Run() { // CHECK:STDOUT: %i32.loc24: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %cj: ref %i32 = ref_binding cj, %cj.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %ck.patt: %pattern_type.104 = ref_binding_pattern ck [concrete] -// CHECK:STDOUT: %ck.var_patt: %pattern_type.104 = var_pattern %ck.patt [concrete] +// 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: } // CHECK:STDOUT: %ck.var: ref %i32 = var %ck.var_patt // CHECK:STDOUT: %c.ref.loc25: ref %Class = name_ref c, %c // CHECK:STDOUT: %k.ref.loc25: %Class.elem = name_ref k, @Class.%.loc17 [concrete = @Class.%.loc17] // CHECK:STDOUT: %.loc25_25.1: ref %i32 = class_element_access %c.ref.loc25, element1 // CHECK:STDOUT: %.loc25_25.2: %i32 = acquire_value %.loc25_25.1 -// CHECK:STDOUT: %impl.elem0.loc25: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc25: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc25_25.1: = bound_method %.loc25_25.2, %impl.elem0.loc25 // CHECK:STDOUT: %specific_fn.loc25: = specific_function %impl.elem0.loc25, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc25_25.2: = bound_method %.loc25_25.2, %specific_fn.loc25 @@ -209,11 +209,11 @@ fn Run() { // CHECK:STDOUT: assign %ck.var, %Int.as.Copy.impl.Op.call.loc25 // CHECK:STDOUT: %i32.loc25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %ck: ref %i32 = ref_binding ck, %ck.var -// CHECK:STDOUT: %Destroy.Op.bound.loc25: = bound_method %ck.var, constants.%Destroy.Op.2dd605.2 +// 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.2dd605.2 +// 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.2dd605.4 +// 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: 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 60b6c1db50dc..f656950b0a47 100644 --- a/toolchain/check/testdata/class/field/field_access_in_value.carbon +++ b/toolchain/check/testdata/class/field/field_access_in_value.carbon @@ -37,58 +37,58 @@ fn Test() { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [concrete] // CHECK:STDOUT: %struct_type.j.k: type = struct_type {.j: %i32, .k: %i32} [concrete] -// CHECK:STDOUT: %complete_type.edd: = complete_type_witness %struct_type.j.k [concrete] +// CHECK:STDOUT: %complete_type.212: = complete_type_witness %struct_type.j.k [concrete] // CHECK:STDOUT: %Test.type: type = fn_type @Test [concrete] // CHECK:STDOUT: %Test: %Test.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.415: type = pattern_type %Class [concrete] +// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.410: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%Class) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.f58: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Class) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.795: %T.as.DefaultOrUnformed.impl.Op.type.f58 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Class, (%DefaultOrUnformed.impl_witness.410) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.795, @T.as.DefaultOrUnformed.impl.Op(%Class) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.4e8: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%Class) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.cac: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Class) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.de4: %T.as.DefaultOrUnformed.impl.Op.type.cac = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Class, (%DefaultOrUnformed.impl_witness.4e8) [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: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = 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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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.790b3b.2: type = fn_type @Destroy.Op.loc26_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc21_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -103,14 +103,14 @@ fn Test() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -128,7 +128,7 @@ fn Test() { // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %.loc16: %Class.elem = field_decl j, element0 [concrete] // CHECK:STDOUT: %.loc17: %Class.elem = field_decl k, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.j.k [concrete = constants.%complete_type.edd] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.j.k [concrete = constants.%complete_type.212] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -140,15 +140,15 @@ fn Test() { // CHECK:STDOUT: fn @Test() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cv.patt: %pattern_type.415 = ref_binding_pattern cv [concrete] -// CHECK:STDOUT: %cv.var_patt: %pattern_type.415 = var_pattern %cv.patt [concrete] +// CHECK:STDOUT: %cv.patt: %pattern_type.f15 = ref_binding_pattern cv [concrete] +// CHECK:STDOUT: %cv.var_patt: %pattern_type.f15 = var_pattern %cv.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cv.var: ref %Class = var %cv.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Class, (constants.%DefaultOrUnformed.impl_witness.410) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Class, (constants.%DefaultOrUnformed.impl_witness.4e8) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc21_16.1: %DefaultOrUnformed.type = converted constants.%Class, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc21_16.1 [concrete = constants.%Class] // CHECK:STDOUT: %.loc21_16.2: type = converted %.loc21_16.1, %as_type [concrete = constants.%Class] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.795, @T.as.DefaultOrUnformed.impl.Op(constants.%Class) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.de4, @T.as.DefaultOrUnformed.impl.Op(constants.%Class) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %.loc21_3: ref %Class = splice_block %cv.var {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %Class to %.loc21_3 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign %cv.var, %T.as.DefaultOrUnformed.impl.Op.call @@ -158,41 +158,41 @@ fn Test() { // CHECK:STDOUT: %j.ref.loc22: %Class.elem = name_ref j, @Class.%.loc16 [concrete = @Class.%.loc16] // CHECK:STDOUT: %.loc22_5: ref %i32 = class_element_access %cv.ref.loc22, element0 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc22: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc22_8.1: = bound_method %int_1, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc22: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc22_8.1: = bound_method %int_1, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem0.loc22, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc22_8.2: = bound_method %int_1, %specific_fn.loc22 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %i32 = call %bound_method.loc22_8.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc22_8: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc22_8.2: = bound_method %int_1, %specific_fn.loc22 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %i32 = call %bound_method.loc22_8.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc22_8: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: assign %.loc22_5, %.loc22_8 // CHECK:STDOUT: %cv.ref.loc23: ref %Class = name_ref cv, %cv // CHECK:STDOUT: %k.ref.loc23: %Class.elem = name_ref k, @Class.%.loc17 [concrete = @Class.%.loc17] // CHECK:STDOUT: %.loc23_5: ref %i32 = class_element_access %cv.ref.loc23, element1 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc23: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc23_8.1: = bound_method %int_2, %impl.elem0.loc23 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %impl.elem0.loc23: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc23_8.1: = bound_method %int_2, %impl.elem0.loc23 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc23_8.2: = bound_method %int_2, %specific_fn.loc23 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23: init %i32 = call %bound_method.loc23_8.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc23_8: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc23_8.2: = bound_method %int_2, %specific_fn.loc23 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23: init %i32 = call %bound_method.loc23_8.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc23_8: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23 [concrete = constants.%int_2.295] // CHECK:STDOUT: assign %.loc23_5, %.loc23_8 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.415 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.f15 = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cv.ref.loc24: ref %Class = name_ref cv, %cv // CHECK:STDOUT: %Class.ref.loc24: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] // CHECK:STDOUT: %.loc24: %Class = acquire_value %cv.ref.loc24 // CHECK:STDOUT: %c: %Class = value_binding c, %.loc24 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cj.patt: %pattern_type.104 = ref_binding_pattern cj [concrete] -// CHECK:STDOUT: %cj.var_patt: %pattern_type.104 = var_pattern %cj.patt [concrete] +// CHECK:STDOUT: %cj.patt: %pattern_type.6b6 = ref_binding_pattern cj [concrete] +// CHECK:STDOUT: %cj.var_patt: %pattern_type.6b6 = var_pattern %cj.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cj.var: ref %i32 = var %cj.var_patt // CHECK:STDOUT: %c.ref.loc25: %Class = name_ref c, %c // CHECK:STDOUT: %j.ref.loc25: %Class.elem = name_ref j, @Class.%.loc16 [concrete = @Class.%.loc16] // CHECK:STDOUT: %.loc25_25.1: ref %i32 = class_element_access %c.ref.loc25, element0 // CHECK:STDOUT: %.loc25_25.2: %i32 = acquire_value %.loc25_25.1 -// CHECK:STDOUT: %impl.elem0.loc25: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc25: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc25_25.1: = bound_method %.loc25_25.2, %impl.elem0.loc25 // CHECK:STDOUT: %specific_fn.loc25: = specific_function %impl.elem0.loc25, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc25_25.2: = bound_method %.loc25_25.2, %specific_fn.loc25 @@ -201,15 +201,15 @@ fn Test() { // CHECK:STDOUT: %i32.loc25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %cj: ref %i32 = ref_binding cj, %cj.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %ck.patt: %pattern_type.104 = ref_binding_pattern ck [concrete] -// CHECK:STDOUT: %ck.var_patt: %pattern_type.104 = var_pattern %ck.patt [concrete] +// 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: } // CHECK:STDOUT: %ck.var: ref %i32 = var %ck.var_patt // CHECK:STDOUT: %c.ref.loc26: %Class = name_ref c, %c // CHECK:STDOUT: %k.ref.loc26: %Class.elem = name_ref k, @Class.%.loc17 [concrete = @Class.%.loc17] // CHECK:STDOUT: %.loc26_25.1: ref %i32 = class_element_access %c.ref.loc26, element1 // CHECK:STDOUT: %.loc26_25.2: %i32 = acquire_value %.loc26_25.1 -// CHECK:STDOUT: %impl.elem0.loc26: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc26: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc26_25.1: = bound_method %.loc26_25.2, %impl.elem0.loc26 // CHECK:STDOUT: %specific_fn.loc26: = specific_function %impl.elem0.loc26, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc26_25.2: = bound_method %.loc26_25.2, %specific_fn.loc26 @@ -217,11 +217,11 @@ fn Test() { // CHECK:STDOUT: assign %ck.var, %Int.as.Copy.impl.Op.call.loc26 // CHECK:STDOUT: %i32.loc26: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %ck: ref %i32 = ref_binding ck, %ck.var -// CHECK:STDOUT: %Destroy.Op.bound.loc26: = bound_method %ck.var, constants.%Destroy.Op.2dd605.2 +// 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.2dd605.2 +// 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.2dd605.4 +// 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: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/field/field_initializer.carbon b/toolchain/check/testdata/class/field/field_initializer.carbon index 50b8951839fa..1e7c092daf00 100644 --- a/toolchain/check/testdata/class/field/field_initializer.carbon +++ b/toolchain/check/testdata/class/field/field_initializer.carbon @@ -92,38 +92,38 @@ var C: Class = {}; // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [concrete] // CHECK:STDOUT: %int_123.fff: Core.IntLiteral = int_value 123 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.5b5: %i32 = int_value 123 [concrete] +// CHECK:STDOUT: %int_123.2bf: %i32 = int_value 123 [concrete] // CHECK:STDOUT: %struct_type.field: type = struct_type {.field: %i32} [concrete] -// CHECK:STDOUT: %complete_type.c67: = complete_type_witness %struct_type.field [concrete] -// CHECK:STDOUT: %pattern_type.415: type = pattern_type %Class [concrete] +// CHECK:STDOUT: %complete_type.935: = complete_type_witness %struct_type.field [concrete] +// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %Class.val: %Class = struct_value (%int_123.5b5) [concrete] +// CHECK:STDOUT: %Class.val: %Class = struct_value (%int_123.2bf) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %C.patt: %pattern_type.415 = ref_binding_pattern C [concrete] -// CHECK:STDOUT: %C.var_patt: %pattern_type.415 = var_pattern %C.patt [concrete] +// CHECK:STDOUT: %C.patt: %pattern_type.f15 = ref_binding_pattern C [concrete] +// CHECK:STDOUT: %C.var_patt: %pattern_type.f15 = var_pattern %C.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %C.var: ref %Class = var %C.var_patt [concrete] // CHECK:STDOUT: %Class.ref: type = name_ref Class, %Class.decl [concrete = constants.%Class] @@ -133,14 +133,14 @@ var C: Class = {}; // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %.loc5_12: %Class.elem = field_decl field, element0, initializer = inst640000D4 [concrete] // CHECK:STDOUT: %int_123: Core.IntLiteral = int_value 123 [concrete = constants.%int_123.fff] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc5_20.1: = bound_method %int_123, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_20.2: = bound_method %int_123, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc5_20.2(%int_123) [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %.loc5_20.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %.loc5_20.2: %i32 = converted %int_123, %.loc5_20.1 [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.field [concrete = constants.%complete_type.c67] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc5_20.2(%int_123) [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %.loc5_20.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %.loc5_20.2: %i32 = converted %int_123, %.loc5_20.1 [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.field [concrete = constants.%complete_type.935] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -151,7 +151,7 @@ var C: Class = {}; // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc8_17.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc8_17.2: init %Class to file.%C.var = class_init (constants.%int_123.5b5) [concrete = constants.%Class.val] +// CHECK:STDOUT: %.loc8_17.2: init %Class to file.%C.var = class_init (constants.%int_123.2bf) [concrete = constants.%Class.val] // CHECK:STDOUT: %.loc8_1: init %Class = converted %.loc8_17.1, %.loc8_17.2 [concrete = constants.%Class.val] // CHECK:STDOUT: assign file.%C.var, %.loc8_1 // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/field/static.carbon b/toolchain/check/testdata/class/field/static.carbon index 68013a52b992..85b0595a3aba 100644 --- a/toolchain/check/testdata/class/field/static.carbon +++ b/toolchain/check/testdata/class/field/static.carbon @@ -59,43 +59,43 @@ fn F() { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.3a3: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%i32) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %i32, (%DefaultOrUnformed.impl_witness.3a3) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.e52: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%i32) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %i32, (%DefaultOrUnformed.impl_witness.e52) [concrete] // CHECK:STDOUT: %int_123.fff: Core.IntLiteral = int_value 123 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.d08: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.f4c: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_123.5b5: %i32 = int_value 123 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.b1d: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.450: = 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: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_456.010: Core.IntLiteral = int_value 456 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.114: = bound_method %int_456.010, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.3d7: = bound_method %int_456.010, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_456.b9d: %i32 = int_value 456 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.efc: = bound_method %int_456.010, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %bound_method.c5c: = bound_method %int_456.010, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_456.8dd: %i32 = int_value 456 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -105,15 +105,15 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %static_field.patt: %pattern_type.104 = ref_binding_pattern static_field [concrete] -// CHECK:STDOUT: %static_field.var_patt: %pattern_type.104 = var_pattern %static_field.patt [concrete] +// CHECK:STDOUT: %static_field.patt: %pattern_type.6b6 = ref_binding_pattern static_field [concrete] +// CHECK:STDOUT: %static_field.var_patt: %pattern_type.6b6 = var_pattern %static_field.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %static_field.var: ref %i32 = var %static_field.var_patt [concrete] // CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %static_field: ref %i32 = ref_binding static_field, %static_field.var [concrete = %static_field.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %static_field_with_init.patt: %pattern_type.104 = ref_binding_pattern static_field_with_init [concrete] -// CHECK:STDOUT: %static_field_with_init.var_patt: %pattern_type.104 = var_pattern %static_field_with_init.patt [concrete] +// CHECK:STDOUT: %static_field_with_init.patt: %pattern_type.6b6 = ref_binding_pattern static_field_with_init [concrete] +// CHECK:STDOUT: %static_field_with_init.var_patt: %pattern_type.6b6 = var_pattern %static_field_with_init.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %static_field_with_init.var: ref %i32 = var %static_field_with_init.var_patt [concrete] // CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -132,19 +132,19 @@ fn F() { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %static_field.ref: ref %i32 = name_ref static_field, @C.%static_field [concrete = @C.%static_field.var] // CHECK:STDOUT: %int_456: Core.IntLiteral = int_value 456 [concrete = constants.%int_456.010] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_18.1: = bound_method %int_456, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.114] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_18.1: = bound_method %int_456, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.efc] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_18.2: = bound_method %int_456, %specific_fn [concrete = constants.%bound_method.3d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc10_18.2(%int_456) [concrete = constants.%int_456.b9d] -// CHECK:STDOUT: %.loc10: init %i32 = converted %int_456, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_456.b9d] +// CHECK:STDOUT: %bound_method.loc10_18.2: = bound_method %int_456, %specific_fn [concrete = constants.%bound_method.c5c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc10_18.2(%int_456) [concrete = constants.%int_456.8dd] +// CHECK:STDOUT: %.loc10: init %i32 = converted %int_456, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_456.8dd] // CHECK:STDOUT: assign %static_field.ref, %.loc10 // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%i32, (constants.%DefaultOrUnformed.impl_witness.3a3) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%i32, (constants.%DefaultOrUnformed.impl_witness.e52) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc5_31.1: %DefaultOrUnformed.type = converted constants.%i32, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc5_31.1 [concrete = constants.%i32] // CHECK:STDOUT: %.loc5_31.2: type = converted %.loc5_31.1, %as_type [concrete = constants.%i32] @@ -152,12 +152,12 @@ fn F() { // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %i32 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign @C.%static_field.var, %T.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: %int_123: Core.IntLiteral = int_value 123 [concrete = constants.%int_123.fff] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %int_123, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.d08] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %int_123, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.b1d] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_10.2: = bound_method %int_123, %specific_fn [concrete = constants.%bound_method.f4c] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc6_10.2(%int_123) [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %.loc6: init %i32 = converted %int_123, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_123.5b5] +// CHECK:STDOUT: %bound_method.loc6_10.2: = bound_method %int_123, %specific_fn [concrete = constants.%bound_method.450] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc6_10.2(%int_123) [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %.loc6: init %i32 = converted %int_123, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_123.2bf] // CHECK:STDOUT: assign @C.%static_field_with_init.var, %.loc6 // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/forward_declared.carbon b/toolchain/check/testdata/class/forward_declared.carbon index c704c4e6e425..1b915827cb96 100644 --- a/toolchain/check/testdata/class/forward_declared.carbon +++ b/toolchain/check/testdata/class/forward_declared.carbon @@ -20,22 +20,22 @@ fn F(p: Class*) -> Class* { return p; } // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Class: type = class_type @Class [concrete] -// CHECK:STDOUT: %ptr.e55: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %pattern_type.732: type = pattern_type %ptr.e55 [concrete] -// CHECK:STDOUT: %.db0: Core.Form = init_form %ptr.e55 [concrete] +// CHECK:STDOUT: %ptr.7ee: type = ptr_type %Class [concrete] +// CHECK:STDOUT: %pattern_type.8c5: type = pattern_type %ptr.7ee [concrete] +// CHECK:STDOUT: %.90e: Core.Form = init_form %ptr.7ee [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.f8f: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%Class) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.4ac: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Class) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.b07: %ptr.as.Copy.impl.Op.type.4ac = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e55, (%Copy.impl_witness.f8f) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7db: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.044: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7db, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.b07, @ptr.as.Copy.impl.Op(%Class) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.fa4: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%Class) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.6c2: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Class) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.8fa: %ptr.as.Copy.impl.Op.type.6c2 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.7ee, (%Copy.impl_witness.fa4) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8bf: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.4c3: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8bf, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -45,8 +45,8 @@ fn F(p: Class*) -> Class* { return p; } // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -58,35 +58,35 @@ fn F(p: Class*) -> Class* { return p; } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.732 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.732 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.732 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.732 = return_slot_pattern %return.param_patt, %ptr.loc17_25 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.8c5 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.8c5 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.8c5 = return_slot_pattern %return.param_patt, %ptr.loc17_25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref.loc17_20: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %ptr.loc17_25: type = ptr_type %Class.ref.loc17_20 [concrete = constants.%ptr.e55] -// CHECK:STDOUT: %.loc17_25: Core.Form = init_form %ptr.loc17_25 [concrete = constants.%.db0] -// CHECK:STDOUT: %p.param: %ptr.e55 = value_param call_param0 -// CHECK:STDOUT: %.loc17_14: type = splice_block %ptr.loc17_14 [concrete = constants.%ptr.e55] { +// CHECK:STDOUT: %ptr.loc17_25: type = ptr_type %Class.ref.loc17_20 [concrete = constants.%ptr.7ee] +// CHECK:STDOUT: %.loc17_25: Core.Form = init_form %ptr.loc17_25 [concrete = constants.%.90e] +// CHECK:STDOUT: %p.param: %ptr.7ee = value_param call_param0 +// CHECK:STDOUT: %.loc17_14: type = splice_block %ptr.loc17_14 [concrete = constants.%ptr.7ee] { // CHECK:STDOUT: %Class.ref.loc17_9: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %ptr.loc17_14: type = ptr_type %Class.ref.loc17_9 [concrete = constants.%ptr.e55] +// CHECK:STDOUT: %ptr.loc17_14: type = ptr_type %Class.ref.loc17_9 [concrete = constants.%ptr.7ee] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.e55 = value_binding p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.e55 = out_param call_param1 -// CHECK:STDOUT: %return: ref %ptr.e55 = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.7ee = value_binding p, %p.param +// CHECK:STDOUT: %return.param: ref %ptr.7ee = out_param call_param1 +// CHECK:STDOUT: %return: ref %ptr.7ee = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Class; // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%p.param: %ptr.e55) -> out %return.param: %ptr.e55 { +// CHECK:STDOUT: fn @F(%p.param: %ptr.7ee) -> out %return.param: %ptr.7ee { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.e55 = name_ref p, %p -// CHECK:STDOUT: %impl.elem0: %.044 = impl_witness_access constants.%Copy.impl_witness.f8f, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b07] +// CHECK:STDOUT: %p.ref: %ptr.7ee = name_ref p, %p +// CHECK:STDOUT: %impl.elem0: %.4c3 = impl_witness_access constants.%Copy.impl_witness.fa4, element0 [concrete = constants.%ptr.as.Copy.impl.Op.8fa] // CHECK:STDOUT: %bound_method.loc17_36.1: = bound_method %p.ref, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%Class) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc17_36.2: = bound_method %p.ref, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.e55 = call %bound_method.loc17_36.2(%p.ref) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.7ee = call %bound_method.loc17_36.2(%p.ref) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/adapt.carbon b/toolchain/check/testdata/class/generic/adapt.carbon index b4c91ee354dd..46f7d309f78f 100644 --- a/toolchain/check/testdata/class/generic/adapt.carbon +++ b/toolchain/check/testdata/class/generic/adapt.carbon @@ -134,9 +134,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%T.67d) [symbolic] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%T.67d) [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T.67d [symbolic] -// CHECK:STDOUT: %C.elem.e58: type = unbound_element_type %C.1f9, %T.67d [symbolic] +// CHECK:STDOUT: %C.elem.4d5: type = unbound_element_type %C.1d0, %T.67d [symbolic] // CHECK:STDOUT: %struct_type.x.0c5: type = struct_type {.x: %T.67d} [symbolic] // CHECK:STDOUT: %complete_type.735: = complete_type_witness %struct_type.x.0c5 [symbolic] // CHECK:STDOUT: %Adapter: type = class_type @Adapter [concrete] @@ -145,27 +145,27 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %C.249: type = class_type @C, @C(%i32) [concrete] +// CHECK:STDOUT: %C.3b7: type = class_type @C, @C(%i32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %C.elem.6fe: type = unbound_element_type %C.249, %i32 [concrete] -// CHECK:STDOUT: %struct_type.x.06a: type = struct_type {.x: %i32} [concrete] -// CHECK:STDOUT: %complete_type.9a8: = complete_type_witness %struct_type.x.06a [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %Adapter [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %C.elem.29b: type = unbound_element_type %C.3b7, %i32 [concrete] +// CHECK:STDOUT: %struct_type.x.a15: type = struct_type {.x: %i32} [concrete] +// CHECK:STDOUT: %complete_type.0c6: = complete_type_witness %struct_type.x.a15 [concrete] +// CHECK:STDOUT: %pattern_type.e90: type = pattern_type %Adapter [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Access.type: type = fn_type @Access [concrete] // CHECK:STDOUT: %Access: %Access.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -177,8 +177,8 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -200,13 +200,13 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Adapter.decl: type = class_decl @Adapter [concrete = constants.%Adapter] {} {} // CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.479 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.479 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc12 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.e90 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.e90 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc12 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc12: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc12: Core.Form = init_form %i32.loc12 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc12: Core.Form = init_form %i32.loc12 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %Adapter = value_param call_param0 // CHECK:STDOUT: %Adapter.ref: type = name_ref Adapter, file.%Adapter.decl [concrete = constants.%Adapter] // CHECK:STDOUT: %a: %Adapter = value_binding a, %a.param @@ -220,18 +220,18 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_10.1 [symbolic = %require_complete (constants.%require_complete.944)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_10.1) [symbolic = %C (constants.%C.1f9)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %T.loc4_10.1 [symbolic = %C.elem (constants.%C.elem.e58)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_10.1) [symbolic = %C (constants.%C.1d0)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %T.loc4_10.1 [symbolic = %C.elem (constants.%C.elem.4d5)] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @C.%T.loc4_10.1 (%T.67d)} [symbolic = %struct_type.x (constants.%struct_type.x.0c5)] // CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness %struct_type.x [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.735)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc5: @C.%C.elem (%C.elem.e58) = field_decl x, element0 [concrete] +// CHECK:STDOUT: %.loc5: @C.%C.elem (%C.elem.4d5) = field_decl x, element0 [concrete] // CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness constants.%struct_type.x.0c5 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.735)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.1f9 +// CHECK:STDOUT: .Self = constants.%C.1d0 // CHECK:STDOUT: .T = // CHECK:STDOUT: .x = %.loc5 // CHECK:STDOUT: } @@ -240,9 +240,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: class @Adapter { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.249] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.3b7] // CHECK:STDOUT: adapt_decl %C [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x.06a [concrete = constants.%complete_type.9a8] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x.a15 [concrete = constants.%complete_type.0c6] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -255,13 +255,13 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %a.ref: %Adapter = name_ref a, %a // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %i32.loc13: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.249] -// CHECK:STDOUT: %.loc13_13.1: %C.249 = as_compatible %a.ref -// CHECK:STDOUT: %.loc13_13.2: %C.249 = converted %a.ref, %.loc13_13.1 -// CHECK:STDOUT: %x.ref: %C.elem.6fe = name_ref x, @C.%.loc5 [concrete = @C.%.loc5] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.3b7] +// CHECK:STDOUT: %.loc13_13.1: %C.3b7 = as_compatible %a.ref +// CHECK:STDOUT: %.loc13_13.2: %C.3b7 = converted %a.ref, %.loc13_13.1 +// CHECK:STDOUT: %x.ref: %C.elem.29b = name_ref x, @C.%.loc5 [concrete = @C.%.loc5] // CHECK:STDOUT: %.loc13_23.1: ref %i32 = class_element_access %.loc13_13.2, element0 // CHECK:STDOUT: %.loc13_23.2: %i32 = acquire_value %.loc13_23.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc13_23.1: = bound_method %.loc13_23.2, %impl.elem0 // 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.loc13_23.2: = bound_method %.loc13_23.2, %specific_fn @@ -278,10 +278,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %C => constants.%C.249 -// CHECK:STDOUT: %C.elem => constants.%C.elem.6fe -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.06a -// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.9a8 +// CHECK:STDOUT: %C => constants.%C.3b7 +// CHECK:STDOUT: %C.elem => constants.%C.elem.29b +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.a15 +// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.0c6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- import_adapt_specific_type.carbon @@ -300,51 +300,51 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %struct_type.x.0c5: type = struct_type {.x: %T.67d} [symbolic] // CHECK:STDOUT: %complete_type.735: = complete_type_witness %struct_type.x.0c5 [symbolic] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%T.67d) [symbolic] -// CHECK:STDOUT: %C.elem.e58: type = unbound_element_type %C.1f9, %T.67d [symbolic] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%T.67d) [symbolic] +// CHECK:STDOUT: %C.elem.4d5: type = unbound_element_type %C.1d0, %T.67d [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T.67d [symbolic] -// CHECK:STDOUT: %C.4e8: type = class_type @C, @C(%i32) [concrete] -// CHECK:STDOUT: %struct_type.x.375: type = struct_type {.x: %i32} [concrete] -// CHECK:STDOUT: %complete_type.75b: = complete_type_witness %struct_type.x.375 [concrete] -// CHECK:STDOUT: %C.elem.505: type = unbound_element_type %C.4e8, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %Adapter [concrete] -// CHECK:STDOUT: %.6c9: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.c62: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %C.3b7: type = class_type @C, @C(%i32) [concrete] +// CHECK:STDOUT: %struct_type.x.a15: type = struct_type {.x: %i32} [concrete] +// CHECK:STDOUT: %complete_type.0c6: = complete_type_witness %struct_type.x.a15 [concrete] +// CHECK:STDOUT: %C.elem.29b: type = unbound_element_type %C.3b7, %i32 [concrete] +// CHECK:STDOUT: %pattern_type.e90: type = pattern_type %Adapter [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %ImportedAccess.type: type = fn_type @ImportedAccess [concrete] // CHECK:STDOUT: %ImportedAccess: %ImportedAccess.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.947: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.c83: %Int.as.Copy.impl.Op.type.947 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.7e7: = impl_witness imports.%Copy.impl_witness_table.53f, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c58: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.59c: %Int.as.Copy.impl.Op.type.c58 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.7e7) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.fae: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.b11: type = fn_type_with_self_type %Copy.WithSelf.Op.type.fae, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.59c, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: %C.type = import_ref Main//adapt_specific_type, C, loaded [concrete = constants.%C.generic] // CHECK:STDOUT: %Main.Adapter: type = import_ref Main//adapt_specific_type, Adapter, loaded [concrete = constants.%Adapter] // CHECK:STDOUT: %Main.Access = import_ref Main//adapt_specific_type, Access, unloaded -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import, [concrete] { +// CHECK:STDOUT: %Core.048aa3.1: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .Int = %Core.Int // CHECK:STDOUT: .Copy = %Core.Copy // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.7e3: = import_ref Main//adapt_specific_type, loc6_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.735)] -// CHECK:STDOUT: %Main.import_ref.6a5 = import_ref Main//adapt_specific_type, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.6d1: @C.%C.elem (%C.elem.e58) = import_ref Main//adapt_specific_type, loc5_8, loaded [concrete = %.1f5] +// CHECK:STDOUT: %Main.import_ref.189 = import_ref Main//adapt_specific_type, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.ba1: @C.%C.elem (%C.elem.4d5) = import_ref Main//adapt_specific_type, loc5_8, loaded [concrete = %.c54] // CHECK:STDOUT: %Main.import_ref.b3b: type = import_ref Main//adapt_specific_type, loc4_10, loaded [symbolic = @C.%T (constants.%T.67d)] -// CHECK:STDOUT: %Main.import_ref.018: = import_ref Main//adapt_specific_type, loc10_1, loaded [concrete = constants.%complete_type.75b] -// CHECK:STDOUT: %Main.import_ref.796 = import_ref Main//adapt_specific_type, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.9e9: = import_ref Main//adapt_specific_type, loc10_1, loaded [concrete = constants.%complete_type.0c6] +// CHECK:STDOUT: %Main.import_ref.58b = import_ref Main//adapt_specific_type, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %.1f5: @C.%C.elem (%C.elem.e58) = field_decl x, element0 [concrete] +// CHECK:STDOUT: %.c54: @C.%C.elem (%C.elem.4d5) = field_decl x, element0 [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.3f2: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.947) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.c83)] -// CHECK:STDOUT: %Copy.impl_witness_table.53f = impl_witness_table (%Core.import_ref.3f2), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -352,19 +352,19 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: .C = imports.%Main.C // CHECK:STDOUT: .Adapter = imports.%Main.Adapter // CHECK:STDOUT: .Access = imports.%Main.Access -// CHECK:STDOUT: .Core = imports.%Core.979 +// CHECK:STDOUT: .Core = imports.%Core.048aa3.1 // CHECK:STDOUT: .ImportedAccess = %ImportedAccess.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %ImportedAccess.decl: %ImportedAccess.type = fn_decl @ImportedAccess [concrete = constants.%ImportedAccess] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.479 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.479 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.c62 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.c62 = return_slot_pattern %return.param_patt, %i32.loc6 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.e90 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.e90 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc6 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc6: Core.Form = init_form %i32.loc6 [concrete = constants.%.6c9] +// CHECK:STDOUT: %.loc6: Core.Form = init_form %i32.loc6 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %Adapter = value_param call_param0 // CHECK:STDOUT: %Adapter.ref: type = name_ref Adapter, imports.%Main.Adapter [concrete = constants.%Adapter] // CHECK:STDOUT: %a: %Adapter = value_binding a, %a.param @@ -374,10 +374,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Adapter [from "adapt_specific_type.carbon"] { -// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.018 +// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.9e9 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.796 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.58b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(imports.%Main.import_ref.b3b: type) [from "adapt_specific_type.carbon"] { @@ -385,8 +385,8 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic = %require_complete (constants.%require_complete.944)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.1f9)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %T [symbolic = %C.elem (constants.%C.elem.e58)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.1d0)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %T [symbolic = %C.elem (constants.%C.elem.4d5)] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @C.%T (%T.67d)} [symbolic = %struct_type.x (constants.%struct_type.x.0c5)] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x [symbolic = %complete_type (constants.%complete_type.735)] // CHECK:STDOUT: @@ -394,8 +394,8 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.7e3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.6a5 -// CHECK:STDOUT: .x = imports.%Main.import_ref.6d1 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.189 +// CHECK:STDOUT: .x = imports.%Main.import_ref.ba1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -404,13 +404,13 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %a.ref: %Adapter = name_ref a, %a // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C.generic] // CHECK:STDOUT: %i32.loc7: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.4e8] -// CHECK:STDOUT: %.loc7_13.1: %C.4e8 = as_compatible %a.ref -// CHECK:STDOUT: %.loc7_13.2: %C.4e8 = converted %a.ref, %.loc7_13.1 -// CHECK:STDOUT: %x.ref: %C.elem.505 = name_ref x, imports.%Main.import_ref.6d1 [concrete = imports.%.1f5] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.3b7] +// CHECK:STDOUT: %.loc7_13.1: %C.3b7 = as_compatible %a.ref +// CHECK:STDOUT: %.loc7_13.2: %C.3b7 = converted %a.ref, %.loc7_13.1 +// CHECK:STDOUT: %x.ref: %C.elem.29b = name_ref x, imports.%Main.import_ref.ba1 [concrete = imports.%.c54] // CHECK:STDOUT: %.loc7_23.1: ref %i32 = class_element_access %.loc7_13.2, element0 // CHECK:STDOUT: %.loc7_23.2: %i32 = acquire_value %.loc7_23.1 -// CHECK:STDOUT: %impl.elem0: %.b11 = impl_witness_access constants.%Copy.impl_witness.7e7, element0 [concrete = constants.%Int.as.Copy.impl.Op.59c] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc7_23.1: = bound_method %.loc7_23.2, %impl.elem0 // 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.loc7_23.2: = bound_method %.loc7_23.2, %specific_fn @@ -427,10 +427,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %C => constants.%C.4e8 -// CHECK:STDOUT: %C.elem => constants.%C.elem.505 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.375 -// CHECK:STDOUT: %complete_type => constants.%complete_type.75b +// CHECK:STDOUT: %C => constants.%C.3b7 +// CHECK:STDOUT: %C.elem => constants.%C.elem.29b +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.a15 +// CHECK:STDOUT: %complete_type => constants.%complete_type.0c6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_extend_adapt_specific_type.carbon @@ -442,9 +442,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %C.elem.e58: type = unbound_element_type %C.1f9, %T [symbolic] +// CHECK:STDOUT: %C.elem.4d5: type = unbound_element_type %C.1d0, %T [symbolic] // CHECK:STDOUT: %struct_type.x.0c5: type = struct_type {.x: %T} [symbolic] // CHECK:STDOUT: %complete_type.735: = complete_type_witness %struct_type.x.0c5 [symbolic] // CHECK:STDOUT: %Adapter: type = class_type @Adapter [concrete] @@ -452,19 +452,19 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %C.249: type = class_type @C, @C(%i32) [concrete] +// CHECK:STDOUT: %C.3b7: type = class_type @C, @C(%i32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %C.elem.6fe: type = unbound_element_type %C.249, %i32 [concrete] -// CHECK:STDOUT: %struct_type.x.06a: type = struct_type {.x: %i32} [concrete] -// CHECK:STDOUT: %complete_type.9a8: = complete_type_witness %struct_type.x.06a [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %Adapter [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %C.elem.29b: type = unbound_element_type %C.3b7, %i32 [concrete] +// CHECK:STDOUT: %struct_type.x.a15: type = struct_type {.x: %i32} [concrete] +// CHECK:STDOUT: %complete_type.0c6: = complete_type_witness %struct_type.x.a15 [concrete] +// CHECK:STDOUT: %pattern_type.e90: type = pattern_type %Adapter [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Access.type: type = fn_type @Access [concrete] // CHECK:STDOUT: %Access: %Access.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -475,7 +475,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -497,13 +497,13 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Adapter.decl: type = class_decl @Adapter [concrete = constants.%Adapter] {} {} // CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.479 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.479 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.e90 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.e90 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc12: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc12: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %Adapter = value_param call_param0 // CHECK:STDOUT: %Adapter.ref: type = name_ref Adapter, file.%Adapter.decl [concrete = constants.%Adapter] // CHECK:STDOUT: %a: %Adapter = value_binding a, %a.param @@ -517,18 +517,18 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_10.1 [symbolic = %require_complete (constants.%require_complete.944)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_10.1) [symbolic = %C (constants.%C.1f9)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %T.loc4_10.1 [symbolic = %C.elem (constants.%C.elem.e58)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_10.1) [symbolic = %C (constants.%C.1d0)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %T.loc4_10.1 [symbolic = %C.elem (constants.%C.elem.4d5)] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @C.%T.loc4_10.1 (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.0c5)] // CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness %struct_type.x [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.735)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc5: @C.%C.elem (%C.elem.e58) = field_decl x, element0 [concrete] +// CHECK:STDOUT: %.loc5: @C.%C.elem (%C.elem.4d5) = field_decl x, element0 [concrete] // CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness constants.%struct_type.x.0c5 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.735)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.1f9 +// CHECK:STDOUT: .Self = constants.%C.1d0 // CHECK:STDOUT: .T = // CHECK:STDOUT: .x = %.loc5 // CHECK:STDOUT: } @@ -537,9 +537,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: class @Adapter { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.249] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.3b7] // CHECK:STDOUT: adapt_decl %C [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x.06a [concrete = constants.%complete_type.9a8] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x.a15 [concrete = constants.%complete_type.0c6] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -552,8 +552,8 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: fn @Access(%a.param: %Adapter) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %Adapter = name_ref a, %a -// CHECK:STDOUT: %x.ref: %C.elem.6fe = name_ref x, @C.%.loc5 [concrete = @C.%.loc5] -// CHECK:STDOUT: %.loc21_11.1: %C.249 = converted %a.ref, [concrete = ] +// CHECK:STDOUT: %x.ref: %C.elem.29b = name_ref x, @C.%.loc5 [concrete = @C.%.loc5] +// CHECK:STDOUT: %.loc21_11.1: %C.3b7 = converted %a.ref, [concrete = ] // CHECK:STDOUT: %.loc21_11.2: %i32 = class_element_access , element0 [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -567,10 +567,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %C => constants.%C.249 -// CHECK:STDOUT: %C.elem => constants.%C.elem.6fe -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.06a -// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.9a8 +// CHECK:STDOUT: %C => constants.%C.3b7 +// CHECK:STDOUT: %C.elem => constants.%C.elem.29b +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.a15 +// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.0c6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- extend_adapt_specific_type_library.carbon @@ -582,9 +582,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %C.elem.e58: type = unbound_element_type %C.1f9, %T [symbolic] +// CHECK:STDOUT: %C.elem.4d5: type = unbound_element_type %C.1d0, %T [symbolic] // CHECK:STDOUT: %struct_type.x.0c5: type = struct_type {.x: %T} [symbolic] // CHECK:STDOUT: %complete_type.735: = complete_type_witness %struct_type.x.0c5 [symbolic] // CHECK:STDOUT: %Adapter: type = class_type @Adapter [concrete] @@ -592,12 +592,12 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %C.249: type = class_type @C, @C(%i32) [concrete] +// CHECK:STDOUT: %C.3b7: type = class_type @C, @C(%i32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %C.elem.6fe: type = unbound_element_type %C.249, %i32 [concrete] -// CHECK:STDOUT: %struct_type.x.06a: type = struct_type {.x: %i32} [concrete] -// CHECK:STDOUT: %complete_type.9a8: = complete_type_witness %struct_type.x.06a [concrete] +// CHECK:STDOUT: %C.elem.29b: type = unbound_element_type %C.3b7, %i32 [concrete] +// CHECK:STDOUT: %struct_type.x.a15: type = struct_type {.x: %i32} [concrete] +// CHECK:STDOUT: %complete_type.0c6: = complete_type_witness %struct_type.x.a15 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -633,18 +633,18 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.loc7_10.1 [symbolic = %require_complete (constants.%require_complete.944)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc7_10.1) [symbolic = %C (constants.%C.1f9)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %T.loc7_10.1 [symbolic = %C.elem (constants.%C.elem.e58)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc7_10.1) [symbolic = %C (constants.%C.1d0)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %T.loc7_10.1 [symbolic = %C.elem (constants.%C.elem.4d5)] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @C.%T.loc7_10.1 (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.0c5)] // CHECK:STDOUT: %complete_type.loc9_1.2: = complete_type_witness %struct_type.x [symbolic = %complete_type.loc9_1.2 (constants.%complete_type.735)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc8: @C.%C.elem (%C.elem.e58) = field_decl x, element0 [concrete] +// CHECK:STDOUT: %.loc8: @C.%C.elem (%C.elem.4d5) = field_decl x, element0 [concrete] // CHECK:STDOUT: %complete_type.loc9_1.1: = complete_type_witness constants.%struct_type.x.0c5 [symbolic = %complete_type.loc9_1.2 (constants.%complete_type.735)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc9_1.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.1f9 +// CHECK:STDOUT: .Self = constants.%C.1d0 // CHECK:STDOUT: .T = // CHECK:STDOUT: .x = %.loc8 // CHECK:STDOUT: } @@ -653,9 +653,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: class @Adapter { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.249] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.3b7] // CHECK:STDOUT: adapt_decl %C [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x.06a [concrete = constants.%complete_type.9a8] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x.a15 [concrete = constants.%complete_type.0c6] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -673,10 +673,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %C => constants.%C.249 -// CHECK:STDOUT: %C.elem => constants.%C.elem.6fe -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.06a -// CHECK:STDOUT: %complete_type.loc9_1.2 => constants.%complete_type.9a8 +// CHECK:STDOUT: %C => constants.%C.3b7 +// CHECK:STDOUT: %C.elem => constants.%C.elem.29b +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.a15 +// CHECK:STDOUT: %complete_type.loc9_1.2 => constants.%complete_type.0c6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_import_extend_adapt_specific_type.carbon @@ -692,60 +692,60 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %struct_type.x.0c5: type = struct_type {.x: %T} [symbolic] // CHECK:STDOUT: %complete_type.735: = complete_type_witness %struct_type.x.0c5 [symbolic] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%T) [symbolic] -// CHECK:STDOUT: %C.elem.e58: type = unbound_element_type %C.1f9, %T [symbolic] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.elem.4d5: type = unbound_element_type %C.1d0, %T [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %C.4e8: type = class_type @C, @C(%i32) [concrete] -// CHECK:STDOUT: %struct_type.x.375: type = struct_type {.x: %i32} [concrete] -// CHECK:STDOUT: %complete_type.75b: = complete_type_witness %struct_type.x.375 [concrete] -// CHECK:STDOUT: %C.elem.505: type = unbound_element_type %C.4e8, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %Adapter [concrete] -// CHECK:STDOUT: %.6c9: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.c62: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %C.3b7: type = class_type @C, @C(%i32) [concrete] +// CHECK:STDOUT: %struct_type.x.a15: type = struct_type {.x: %i32} [concrete] +// CHECK:STDOUT: %complete_type.0c6: = complete_type_witness %struct_type.x.a15 [concrete] +// CHECK:STDOUT: %C.elem.29b: type = unbound_element_type %C.3b7, %i32 [concrete] +// CHECK:STDOUT: %pattern_type.e90: type = pattern_type %Adapter [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %ImportedAccess.type: type = fn_type @ImportedAccess [concrete] // CHECK:STDOUT: %ImportedAccess: %ImportedAccess.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C = import_ref Main//extend_adapt_specific_type_library, C, unloaded // CHECK:STDOUT: %Main.Adapter: type = import_ref Main//extend_adapt_specific_type_library, Adapter, loaded [concrete = constants.%Adapter] -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import, [concrete] { +// CHECK:STDOUT: %Core.048aa3.1: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .Int = %Core.Int // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.7e3: = import_ref Main//extend_adapt_specific_type_library, loc9_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.735)] -// CHECK:STDOUT: %Main.import_ref.6a5 = import_ref Main//extend_adapt_specific_type_library, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.6d1: @C.%C.elem (%C.elem.e58) = import_ref Main//extend_adapt_specific_type_library, loc8_8, loaded [concrete = %.1f5] +// CHECK:STDOUT: %Main.import_ref.189 = import_ref Main//extend_adapt_specific_type_library, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.ba1: @C.%C.elem (%C.elem.4d5) = import_ref Main//extend_adapt_specific_type_library, loc8_8, loaded [concrete = %.c54] // CHECK:STDOUT: %Main.import_ref.b3b: type = import_ref Main//extend_adapt_specific_type_library, loc7_10, loaded [symbolic = @C.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.018: = import_ref Main//extend_adapt_specific_type_library, loc13_1, loaded [concrete = constants.%complete_type.75b] -// CHECK:STDOUT: %Main.import_ref.796 = import_ref Main//extend_adapt_specific_type_library, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.784492.2: type = import_ref Main//extend_adapt_specific_type_library, loc12_21, loaded [concrete = constants.%C.4e8] +// CHECK:STDOUT: %Main.import_ref.9e9: = import_ref Main//extend_adapt_specific_type_library, loc13_1, loaded [concrete = constants.%complete_type.0c6] +// CHECK:STDOUT: %Main.import_ref.58b = import_ref Main//extend_adapt_specific_type_library, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.6b2392.2: type = import_ref Main//extend_adapt_specific_type_library, loc12_21, loaded [concrete = constants.%C.3b7] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %.1f5: @C.%C.elem (%C.elem.e58) = field_decl x, element0 [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %.c54: @C.%C.elem (%C.elem.4d5) = field_decl x, element0 [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .C = imports.%Main.C // CHECK:STDOUT: .Adapter = imports.%Main.Adapter -// CHECK:STDOUT: .Core = imports.%Core.979 +// CHECK:STDOUT: .Core = imports.%Core.048aa3.1 // CHECK:STDOUT: .ImportedAccess = %ImportedAccess.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %ImportedAccess.decl: %ImportedAccess.type = fn_decl @ImportedAccess [concrete = constants.%ImportedAccess] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.479 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.479 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.c62 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.c62 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.e90 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.e90 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc6: Core.Form = init_form %i32 [concrete = constants.%.6c9] +// CHECK:STDOUT: %.loc6: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %Adapter = value_param call_param0 // CHECK:STDOUT: %Adapter.ref: type = name_ref Adapter, imports.%Main.Adapter [concrete = constants.%Adapter] // CHECK:STDOUT: %a: %Adapter = value_binding a, %a.param @@ -755,12 +755,12 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Adapter [from "extend_adapt_specific_type_library.carbon"] { -// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.018 +// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.9e9 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.796 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.58b // CHECK:STDOUT: .x = -// CHECK:STDOUT: extend imports.%Main.import_ref.784492.2 +// CHECK:STDOUT: extend imports.%Main.import_ref.6b2392.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(imports.%Main.import_ref.b3b: type) [from "extend_adapt_specific_type_library.carbon"] { @@ -768,8 +768,8 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic = %require_complete (constants.%require_complete.944)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.1f9)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %T [symbolic = %C.elem (constants.%C.elem.e58)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.1d0)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %T [symbolic = %C.elem (constants.%C.elem.4d5)] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @C.%T (%T)} [symbolic = %struct_type.x (constants.%struct_type.x.0c5)] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x [symbolic = %complete_type (constants.%complete_type.735)] // CHECK:STDOUT: @@ -777,16 +777,16 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.7e3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.6a5 -// CHECK:STDOUT: .x = imports.%Main.import_ref.6d1 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.189 +// CHECK:STDOUT: .x = imports.%Main.import_ref.ba1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ImportedAccess(%a.param: %Adapter) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %Adapter = name_ref a, %a -// CHECK:STDOUT: %x.ref: %C.elem.505 = name_ref x, imports.%Main.import_ref.6d1 [concrete = imports.%.1f5] -// CHECK:STDOUT: %.loc15_11.1: %C.4e8 = converted %a.ref, [concrete = ] +// CHECK:STDOUT: %x.ref: %C.elem.29b = name_ref x, imports.%Main.import_ref.ba1 [concrete = imports.%.c54] +// CHECK:STDOUT: %.loc15_11.1: %C.3b7 = converted %a.ref, [concrete = ] // CHECK:STDOUT: %.loc15_11.2: %i32 = class_element_access , element0 [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -800,10 +800,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %C => constants.%C.4e8 -// CHECK:STDOUT: %C.elem => constants.%C.elem.505 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.375 -// CHECK:STDOUT: %complete_type => constants.%complete_type.75b +// CHECK:STDOUT: %C => constants.%C.3b7 +// CHECK:STDOUT: %C.elem => constants.%C.elem.29b +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.a15 +// CHECK:STDOUT: %complete_type => constants.%complete_type.0c6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- adapt_generic_type.carbon @@ -815,7 +815,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Adapter.type: type = generic_class_type @Adapter [concrete] // CHECK:STDOUT: %Adapter.generic: %Adapter.type = struct_value () [concrete] -// CHECK:STDOUT: %Adapter.aec: type = class_type @Adapter, @Adapter(%T.67d) [symbolic] +// CHECK:STDOUT: %Adapter.359: type = class_type @Adapter, @Adapter(%T.67d) [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T.67d [symbolic] // CHECK:STDOUT: %complete_type.1aa: = complete_type_witness %T.67d [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -823,25 +823,25 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %Adapter.d4a: type = class_type @Adapter, @Adapter(%i32) [concrete] -// CHECK:STDOUT: %pattern_type.fc9b: type = pattern_type %Adapter.d4a [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Adapter.0d1: type = class_type @Adapter, @Adapter(%i32) [concrete] +// CHECK:STDOUT: %pattern_type.493: type = pattern_type %Adapter.0d1 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Convert.type: type = fn_type @Convert [concrete] // CHECK:STDOUT: %Convert: %Convert.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %complete_type.c90: = complete_type_witness %i32 [concrete] +// CHECK:STDOUT: %complete_type.e42: = complete_type_witness %i32 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -853,8 +853,8 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -874,20 +874,20 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %T.loc4_16.2: type = symbolic_binding T, 0 [symbolic = %T.loc4_16.1 (constants.%T.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: %Convert.decl: %Convert.type = fn_decl @Convert [concrete = constants.%Convert] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.fc9b = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.fc9b = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc8_32 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.493 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.493 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc8_32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc8_32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc8_32: Core.Form = init_form %i32.loc8_32 [concrete = constants.%.7ea] -// CHECK:STDOUT: %a.param: %Adapter.d4a = value_param call_param0 -// CHECK:STDOUT: %.loc8_26: type = splice_block %Adapter [concrete = constants.%Adapter.d4a] { +// CHECK:STDOUT: %.loc8_32: Core.Form = init_form %i32.loc8_32 [concrete = constants.%.795] +// CHECK:STDOUT: %a.param: %Adapter.0d1 = value_param call_param0 +// CHECK:STDOUT: %.loc8_26: type = splice_block %Adapter [concrete = constants.%Adapter.0d1] { // CHECK:STDOUT: %Adapter.ref: %Adapter.type = name_ref Adapter, file.%Adapter.decl [concrete = constants.%Adapter.generic] // CHECK:STDOUT: %i32.loc8_23: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %Adapter: type = class_type @Adapter, @Adapter(constants.%i32) [concrete = constants.%Adapter.d4a] +// CHECK:STDOUT: %Adapter: type = class_type @Adapter, @Adapter(constants.%i32) [concrete = constants.%Adapter.0d1] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %Adapter.d4a = value_binding a, %a.param +// CHECK:STDOUT: %a: %Adapter.0d1 = value_binding a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -907,18 +907,18 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Adapter.aec +// CHECK:STDOUT: .Self = constants.%Adapter.359 // CHECK:STDOUT: .T = // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert(%a.param: %Adapter.d4a) -> out %return.param: %i32 { +// CHECK:STDOUT: fn @Convert(%a.param: %Adapter.0d1) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %Adapter.d4a = name_ref a, %a +// CHECK:STDOUT: %a.ref: %Adapter.0d1 = name_ref a, %a // CHECK:STDOUT: %i32.loc9: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc9_12.1: %i32 = as_compatible %a.ref // CHECK:STDOUT: %.loc9_12.2: %i32 = converted %a.ref, %.loc9_12.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc9_12.1: = bound_method %.loc9_12.2, %impl.elem0 // 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.loc9_12.2: = bound_method %.loc9_12.2, %specific_fn @@ -935,7 +935,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.c90 +// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.e42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- import_adapt_generic_type.carbon @@ -951,34 +951,34 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %Adapter.d4a: type = class_type @Adapter, @Adapter(%i32) [concrete] -// CHECK:STDOUT: %pattern_type.fc9b: type = pattern_type %Adapter.d4a [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Adapter.0d1: type = class_type @Adapter, @Adapter(%i32) [concrete] +// CHECK:STDOUT: %pattern_type.493: type = pattern_type %Adapter.0d1 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %ImportedConvert.type: type = fn_type @ImportedConvert [concrete] // CHECK:STDOUT: %ImportedConvert: %ImportedConvert.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %complete_type.c90: = complete_type_witness %i32 [concrete] +// CHECK:STDOUT: %complete_type.e42: = complete_type_witness %i32 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %C: type = class_type @C [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [concrete] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [concrete] -// CHECK:STDOUT: %complete_type.edf: = complete_type_witness %struct_type.n [concrete] -// CHECK:STDOUT: %Adapter.557: type = class_type @Adapter, @Adapter(%C) [concrete] -// CHECK:STDOUT: %pattern_type.432: type = pattern_type %Adapter.557 [concrete] +// CHECK:STDOUT: %complete_type.cdf: = complete_type_witness %struct_type.n [concrete] +// CHECK:STDOUT: %Adapter.347: type = class_type @Adapter, @Adapter(%C) [concrete] +// CHECK:STDOUT: %pattern_type.5db: type = pattern_type %Adapter.347 [concrete] // CHECK:STDOUT: %ImportedConvertLocal.type: type = fn_type @ImportedConvertLocal [concrete] // CHECK:STDOUT: %ImportedConvertLocal: %ImportedConvertLocal.type = struct_value () [concrete] -// CHECK:STDOUT: %complete_type.02c: = complete_type_witness %C [concrete] +// CHECK:STDOUT: %complete_type.c1f: = complete_type_witness %C [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -991,12 +991,12 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.80d: = import_ref Main//adapt_generic_type, loc6_1, loaded [symbolic = @Adapter.%complete_type (constants.%complete_type.1aa)] -// CHECK:STDOUT: %Main.import_ref.e2a = import_ref Main//adapt_generic_type, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.b12 = import_ref Main//adapt_generic_type, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.b3b: type = import_ref Main//adapt_generic_type, loc4_16, loaded [symbolic = @Adapter.%T (constants.%T.67d)] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1011,39 +1011,39 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %ImportedConvert.decl: %ImportedConvert.type = fn_decl @ImportedConvert [concrete = constants.%ImportedConvert] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.fc9b = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.fc9b = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc6_40 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.493 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.493 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc6_40 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_40: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc6_40: Core.Form = init_form %i32.loc6_40 [concrete = constants.%.7ea] -// CHECK:STDOUT: %a.param: %Adapter.d4a = value_param call_param0 -// CHECK:STDOUT: %.loc6_34: type = splice_block %Adapter [concrete = constants.%Adapter.d4a] { +// CHECK:STDOUT: %.loc6_40: Core.Form = init_form %i32.loc6_40 [concrete = constants.%.795] +// CHECK:STDOUT: %a.param: %Adapter.0d1 = value_param call_param0 +// CHECK:STDOUT: %.loc6_34: type = splice_block %Adapter [concrete = constants.%Adapter.0d1] { // CHECK:STDOUT: %Adapter.ref: %Adapter.type = name_ref Adapter, imports.%Main.Adapter [concrete = constants.%Adapter.generic] // CHECK:STDOUT: %i32.loc6_31: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %Adapter: type = class_type @Adapter, @Adapter(constants.%i32) [concrete = constants.%Adapter.d4a] +// CHECK:STDOUT: %Adapter: type = class_type @Adapter, @Adapter(constants.%i32) [concrete = constants.%Adapter.0d1] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %Adapter.d4a = value_binding a, %a.param +// CHECK:STDOUT: %a: %Adapter.0d1 = value_binding a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %ImportedConvertLocal.decl: %ImportedConvertLocal.type = fn_decl @ImportedConvertLocal [concrete = constants.%ImportedConvertLocal] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.432 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.432 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.5db = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.5db = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc14_43: Core.Form = init_form %i32 [concrete = constants.%.7ea] -// CHECK:STDOUT: %a.param: %Adapter.557 = value_param call_param0 -// CHECK:STDOUT: %.loc14_37: type = splice_block %Adapter [concrete = constants.%Adapter.557] { +// CHECK:STDOUT: %.loc14_43: Core.Form = init_form %i32 [concrete = constants.%.795] +// CHECK:STDOUT: %a.param: %Adapter.347 = value_param call_param0 +// CHECK:STDOUT: %.loc14_37: type = splice_block %Adapter [concrete = constants.%Adapter.347] { // CHECK:STDOUT: %Adapter.ref: %Adapter.type = name_ref Adapter, imports.%Main.Adapter [concrete = constants.%Adapter.generic] // CHECK:STDOUT: %C.ref.loc14: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Adapter: type = class_type @Adapter, @Adapter(constants.%C) [concrete = constants.%Adapter.557] +// CHECK:STDOUT: %Adapter: type = class_type @Adapter, @Adapter(constants.%C) [concrete = constants.%Adapter.347] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %Adapter.557 = value_binding a, %a.param +// CHECK:STDOUT: %a: %Adapter.347 = value_binding a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -1060,13 +1060,13 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.80d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e2a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.b12 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %.loc11: %C.elem = field_decl n, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.edf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.cdf] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1074,13 +1074,13 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: .n = %.loc11 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ImportedConvert(%a.param: %Adapter.d4a) -> out %return.param: %i32 { +// CHECK:STDOUT: fn @ImportedConvert(%a.param: %Adapter.0d1) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %Adapter.d4a = name_ref a, %a +// CHECK:STDOUT: %a.ref: %Adapter.0d1 = name_ref a, %a // CHECK:STDOUT: %i32.loc7: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc7_12.1: %i32 = as_compatible %a.ref // CHECK:STDOUT: %.loc7_12.2: %i32 = converted %a.ref, %.loc7_12.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc7_12.1: = bound_method %.loc7_12.2, %impl.elem0 // 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.loc7_12.2: = bound_method %.loc7_12.2, %specific_fn @@ -1088,16 +1088,16 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ImportedConvertLocal(%a.param: %Adapter.557) -> out %return.param: %i32 { +// CHECK:STDOUT: fn @ImportedConvertLocal(%a.param: %Adapter.347) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %Adapter.557 = name_ref a, %a +// CHECK:STDOUT: %a.ref: %Adapter.347 = name_ref a, %a // CHECK:STDOUT: %C.ref.loc15: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc15_13.1: %C = as_compatible %a.ref // CHECK:STDOUT: %.loc15_13.2: %C = converted %a.ref, %.loc15_13.1 // CHECK:STDOUT: %n.ref: %C.elem = name_ref n, @C.%.loc11 [concrete = @C.%.loc11] // CHECK:STDOUT: %.loc15_18.1: ref %i32 = class_element_access %.loc15_13.2, element0 // CHECK:STDOUT: %.loc15_18.2: %i32 = acquire_value %.loc15_18.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc15_18.1: = bound_method %.loc15_18.2, %impl.elem0 // 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_18.2: = bound_method %.loc15_18.2, %specific_fn @@ -1114,14 +1114,14 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %complete_type => constants.%complete_type.c90 +// CHECK:STDOUT: %complete_type => constants.%complete_type.e42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Adapter(constants.%C) { // CHECK:STDOUT: %T => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.edf -// CHECK:STDOUT: %complete_type => constants.%complete_type.02c +// CHECK:STDOUT: %require_complete => constants.%complete_type.cdf +// CHECK:STDOUT: %complete_type => constants.%complete_type.c1f // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/base_is_generic.carbon b/toolchain/check/testdata/class/generic/base_is_generic.carbon index 4d38a6558149..ac5972223c63 100644 --- a/toolchain/check/testdata/class/generic/base_is_generic.carbon +++ b/toolchain/check/testdata/class/generic/base_is_generic.carbon @@ -98,9 +98,9 @@ fn H() { // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Base.type: type = generic_class_type @Base [concrete] // CHECK:STDOUT: %Base.generic: %Base.type = struct_value () [concrete] -// CHECK:STDOUT: %Base.0fc: type = class_type @Base, @Base(%T.67d) [symbolic] +// CHECK:STDOUT: %Base.798: type = class_type @Base, @Base(%T.67d) [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T.67d [symbolic] -// CHECK:STDOUT: %Base.elem.c41: type = unbound_element_type %Base.0fc, %T.67d [symbolic] +// CHECK:STDOUT: %Base.elem.a3c: type = unbound_element_type %Base.798, %T.67d [symbolic] // CHECK:STDOUT: %struct_type.x.0c5: type = struct_type {.x: %T.67d} [symbolic] // CHECK:STDOUT: %complete_type.735: = complete_type_witness %struct_type.x.0c5 [symbolic] // CHECK:STDOUT: %Param: type = class_type @Param [concrete] @@ -109,32 +109,32 @@ fn H() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Param.elem: type = unbound_element_type %Param, %i32 [concrete] // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %i32} [concrete] -// CHECK:STDOUT: %complete_type.d92: = complete_type_witness %struct_type.y [concrete] +// CHECK:STDOUT: %complete_type.620: = complete_type_witness %struct_type.y [concrete] // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] -// CHECK:STDOUT: %Base.247: type = class_type @Base, @Base(%Param) [concrete] -// CHECK:STDOUT: %Base.elem.3c5: type = unbound_element_type %Base.247, %Param [concrete] -// CHECK:STDOUT: %struct_type.x.81c: type = struct_type {.x: %Param} [concrete] -// CHECK:STDOUT: %complete_type.a8b: = complete_type_witness %struct_type.x.81c [concrete] -// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base.247 [concrete] -// CHECK:STDOUT: %struct_type.base.496: type = struct_type {.base: %Base.247} [concrete] -// CHECK:STDOUT: %complete_type.cd1: = complete_type_witness %struct_type.base.496 [concrete] -// CHECK:STDOUT: %pattern_type.cd3: type = pattern_type %Derived [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %Base.947: type = class_type @Base, @Base(%Param) [concrete] +// CHECK:STDOUT: %Base.elem.3f2: type = unbound_element_type %Base.947, %Param [concrete] +// CHECK:STDOUT: %struct_type.x.301: type = struct_type {.x: %Param} [concrete] +// CHECK:STDOUT: %complete_type.38f: = complete_type_witness %struct_type.x.301 [concrete] +// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base.947 [concrete] +// CHECK:STDOUT: %struct_type.base.a1b: type = struct_type {.base: %Base.947} [concrete] +// CHECK:STDOUT: %complete_type.90c: = complete_type_witness %struct_type.base.a1b [concrete] +// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %DoubleFieldAccess.type: type = fn_type @DoubleFieldAccess [concrete] // CHECK:STDOUT: %DoubleFieldAccess: %DoubleFieldAccess.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -146,8 +146,8 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -171,13 +171,13 @@ fn H() { // CHECK:STDOUT: %Param.decl: type = class_decl @Param [concrete = constants.%Param] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %DoubleFieldAccess.decl: %DoubleFieldAccess.type = fn_decl @DoubleFieldAccess [concrete = constants.%DoubleFieldAccess] { -// CHECK:STDOUT: %d.param_patt: %pattern_type.cd3 = value_param_pattern [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.cd3 = at_binding_pattern d, %d.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.746 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.746 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %d.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] // CHECK:STDOUT: %d: %Derived = value_binding d, %d.param @@ -191,18 +191,18 @@ fn H() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_18.1 [symbolic = %require_complete (constants.%require_complete.944)] -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc4_18.1) [symbolic = %Base (constants.%Base.0fc)] -// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.loc4_18.1 [symbolic = %Base.elem (constants.%Base.elem.c41)] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc4_18.1) [symbolic = %Base (constants.%Base.798)] +// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.loc4_18.1 [symbolic = %Base.elem (constants.%Base.elem.a3c)] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @Base.%T.loc4_18.1 (%T.67d)} [symbolic = %struct_type.x (constants.%struct_type.x.0c5)] // CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness %struct_type.x [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.735)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc5: @Base.%Base.elem (%Base.elem.c41) = field_decl x, element0 [concrete] +// CHECK:STDOUT: %.loc5: @Base.%Base.elem (%Base.elem.a3c) = field_decl x, element0 [concrete] // CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness constants.%struct_type.x.0c5 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.735)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Base.0fc +// CHECK:STDOUT: .Self = constants.%Base.798 // CHECK:STDOUT: .T = // CHECK:STDOUT: .x = %.loc5 // CHECK:STDOUT: } @@ -210,7 +210,7 @@ fn H() { // CHECK:STDOUT: // CHECK:STDOUT: class @Param { // CHECK:STDOUT: %.loc9: %Param.elem = field_decl y, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.y [concrete = constants.%complete_type.d92] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.y [concrete = constants.%complete_type.620] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -221,9 +221,9 @@ fn H() { // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Base.ref: %Base.type = name_ref Base, file.%Base.decl [concrete = constants.%Base.generic] // CHECK:STDOUT: %Param.ref: type = name_ref Param, file.%Param.decl [concrete = constants.%Param] -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(constants.%Param) [concrete = constants.%Base.247] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(constants.%Param) [concrete = constants.%Base.947] // CHECK:STDOUT: %.loc13: %Derived.elem = base_decl %Base, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.496 [concrete = constants.%complete_type.cd1] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.a1b [concrete = constants.%complete_type.90c] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -238,14 +238,14 @@ fn H() { // CHECK:STDOUT: fn @DoubleFieldAccess(%d.param: %Derived) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %d.ref: %Derived = name_ref d, %d -// CHECK:STDOUT: %x.ref: %Base.elem.3c5 = name_ref x, @Base.%.loc5 [concrete = @Base.%.loc5] -// CHECK:STDOUT: %.loc17_11.1: ref %Base.247 = class_element_access %d.ref, element0 -// CHECK:STDOUT: %.loc17_11.2: ref %Base.247 = converted %d.ref, %.loc17_11.1 +// CHECK:STDOUT: %x.ref: %Base.elem.3f2 = name_ref x, @Base.%.loc5 [concrete = @Base.%.loc5] +// CHECK:STDOUT: %.loc17_11.1: ref %Base.947 = class_element_access %d.ref, element0 +// CHECK:STDOUT: %.loc17_11.2: ref %Base.947 = converted %d.ref, %.loc17_11.1 // CHECK:STDOUT: %.loc17_11.3: ref %Param = class_element_access %.loc17_11.2, element0 // CHECK:STDOUT: %y.ref: %Param.elem = name_ref y, @Param.%.loc9 [concrete = @Param.%.loc9] // CHECK:STDOUT: %.loc17_13.1: ref %i32 = class_element_access %.loc17_11.3, element0 // CHECK:STDOUT: %.loc17_13.2: %i32 = acquire_value %.loc17_13.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc17_13.1: = bound_method %.loc17_13.2, %impl.elem0 // 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.loc17_13.2: = bound_method %.loc17_13.2, %specific_fn @@ -261,11 +261,11 @@ fn H() { // CHECK:STDOUT: %T.loc4_18.1 => constants.%Param // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.d92 -// CHECK:STDOUT: %Base => constants.%Base.247 -// CHECK:STDOUT: %Base.elem => constants.%Base.elem.3c5 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.81c -// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.a8b +// CHECK:STDOUT: %require_complete => constants.%complete_type.620 +// CHECK:STDOUT: %Base => constants.%Base.947 +// CHECK:STDOUT: %Base.elem => constants.%Base.elem.3f2 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.301 +// CHECK:STDOUT: %complete_type.loc6_1.2 => constants.%complete_type.38f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- import.carbon @@ -279,35 +279,35 @@ fn H() { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %i32} [concrete] -// CHECK:STDOUT: %complete_type.689: = complete_type_witness %struct_type.y [concrete] +// CHECK:STDOUT: %complete_type.620: = complete_type_witness %struct_type.y [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %struct_type.x.0c5: type = struct_type {.x: %T.67d} [symbolic] // CHECK:STDOUT: %complete_type.735: = complete_type_witness %struct_type.x.0c5 [symbolic] -// CHECK:STDOUT: %Base.0fc: type = class_type @Base, @Base(%T.67d) [symbolic] -// CHECK:STDOUT: %Base.elem.c41: type = unbound_element_type %Base.0fc, %T.67d [symbolic] +// CHECK:STDOUT: %Base.798: type = class_type @Base, @Base(%T.67d) [symbolic] +// CHECK:STDOUT: %Base.elem.a3c: type = unbound_element_type %Base.798, %T.67d [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T.67d [symbolic] -// CHECK:STDOUT: %Base.247: type = class_type @Base, @Base(%Param) [concrete] -// CHECK:STDOUT: %struct_type.x.81c: type = struct_type {.x: %Param} [concrete] -// CHECK:STDOUT: %complete_type.a8b: = complete_type_witness %struct_type.x.81c [concrete] -// CHECK:STDOUT: %Base.elem.3c5: type = unbound_element_type %Base.247, %Param [concrete] -// CHECK:STDOUT: %struct_type.base.496: type = struct_type {.base: %Base.247} [concrete] -// CHECK:STDOUT: %complete_type.cd1: = complete_type_witness %struct_type.base.496 [concrete] -// CHECK:STDOUT: %pattern_type.cd3: type = pattern_type %Derived [concrete] -// CHECK:STDOUT: %.6c9: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.c62: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Base.947: type = class_type @Base, @Base(%Param) [concrete] +// CHECK:STDOUT: %struct_type.x.301: type = struct_type {.x: %Param} [concrete] +// CHECK:STDOUT: %complete_type.38f: = complete_type_witness %struct_type.x.301 [concrete] +// CHECK:STDOUT: %Base.elem.3f2: type = unbound_element_type %Base.947, %Param [concrete] +// CHECK:STDOUT: %struct_type.base.a1b: type = struct_type {.base: %Base.947} [concrete] +// CHECK:STDOUT: %complete_type.90c: = complete_type_witness %struct_type.base.a1b [concrete] +// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %ImportedDoubleFieldAccess.type: type = fn_type @ImportedDoubleFieldAccess [concrete] // CHECK:STDOUT: %ImportedDoubleFieldAccess: %ImportedDoubleFieldAccess.type = struct_value () [concrete] // CHECK:STDOUT: %Param.elem: type = unbound_element_type %Param, %i32 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.947: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.c83: %Int.as.Copy.impl.Op.type.947 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.7e7: = impl_witness imports.%Copy.impl_witness_table.53f, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c58: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.59c: %Int.as.Copy.impl.Op.type.c58 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.7e7) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.fae: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.b11: type = fn_type_with_self_type %Copy.WithSelf.Op.type.fae, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.59c, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -315,29 +315,29 @@ fn H() { // CHECK:STDOUT: %Main.Param = import_ref Main//extend_generic_base, Param, unloaded // CHECK:STDOUT: %Main.Derived: type = import_ref Main//extend_generic_base, Derived, loaded [concrete = constants.%Derived] // CHECK:STDOUT: %Main.DoubleFieldAccess = import_ref Main//extend_generic_base, DoubleFieldAccess, unloaded -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import, [concrete] { +// CHECK:STDOUT: %Core.048aa3.1: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .Int = %Core.Int // CHECK:STDOUT: .Copy = %Core.Copy // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.8aa: = import_ref Main//extend_generic_base, loc10_1, loaded [concrete = constants.%complete_type.689] -// CHECK:STDOUT: %Main.import_ref.3c6 = import_ref Main//extend_generic_base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.87f: %Param.elem = import_ref Main//extend_generic_base, loc9_8, loaded [concrete = %.8ab] +// CHECK:STDOUT: %Main.import_ref.cb0: = import_ref Main//extend_generic_base, loc10_1, loaded [concrete = constants.%complete_type.620] +// CHECK:STDOUT: %Main.import_ref.61b = import_ref Main//extend_generic_base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.573: %Param.elem = import_ref Main//extend_generic_base, loc9_8, loaded [concrete = %.8bf] // CHECK:STDOUT: %Main.import_ref.7e3: = import_ref Main//extend_generic_base, loc6_1, loaded [symbolic = @Base.%complete_type (constants.%complete_type.735)] -// CHECK:STDOUT: %Main.import_ref.50e = import_ref Main//extend_generic_base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.1ef: @Base.%Base.elem (%Base.elem.c41) = import_ref Main//extend_generic_base, loc5_8, loaded [concrete = %.ae1] +// CHECK:STDOUT: %Main.import_ref.821 = import_ref Main//extend_generic_base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.da1: @Base.%Base.elem (%Base.elem.a3c) = import_ref Main//extend_generic_base, loc5_8, loaded [concrete = %.866] // CHECK:STDOUT: %Main.import_ref.b3b: type = import_ref Main//extend_generic_base, loc4_18, loaded [symbolic = @Base.%T (constants.%T.67d)] -// CHECK:STDOUT: %Main.import_ref.a49: = import_ref Main//extend_generic_base, loc14_1, loaded [concrete = constants.%complete_type.cd1] -// CHECK:STDOUT: %Main.import_ref.b11 = import_ref Main//extend_generic_base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.cde = import_ref Main//extend_generic_base, loc13_27, unloaded -// CHECK:STDOUT: %Main.import_ref.2f0a35.2: type = import_ref Main//extend_generic_base, loc13_26, loaded [concrete = constants.%Base.247] +// CHECK:STDOUT: %Main.import_ref.58d: = import_ref Main//extend_generic_base, loc14_1, loaded [concrete = constants.%complete_type.90c] +// CHECK:STDOUT: %Main.import_ref.87c = import_ref Main//extend_generic_base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.4a4 = import_ref Main//extend_generic_base, loc13_27, unloaded +// CHECK:STDOUT: %Main.import_ref.c669b4.2: type = import_ref Main//extend_generic_base, loc13_26, loaded [concrete = constants.%Base.947] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %.ae1: @Base.%Base.elem (%Base.elem.c41) = field_decl x, element0 [concrete] -// CHECK:STDOUT: %.8ab: %Param.elem = field_decl y, element0 [concrete] +// CHECK:STDOUT: %.866: @Base.%Base.elem (%Base.elem.a3c) = field_decl x, element0 [concrete] +// CHECK:STDOUT: %.8bf: %Param.elem = field_decl y, element0 [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.3f2: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.947) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.c83)] -// CHECK:STDOUT: %Copy.impl_witness_table.53f = impl_witness_table (%Core.import_ref.3f2), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -346,19 +346,19 @@ fn H() { // CHECK:STDOUT: .Param = imports.%Main.Param // CHECK:STDOUT: .Derived = imports.%Main.Derived // CHECK:STDOUT: .DoubleFieldAccess = imports.%Main.DoubleFieldAccess -// CHECK:STDOUT: .Core = imports.%Core.979 +// CHECK:STDOUT: .Core = imports.%Core.048aa3.1 // CHECK:STDOUT: .ImportedDoubleFieldAccess = %ImportedDoubleFieldAccess.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %ImportedDoubleFieldAccess.decl: %ImportedDoubleFieldAccess.type = fn_decl @ImportedDoubleFieldAccess [concrete = constants.%ImportedDoubleFieldAccess] { -// CHECK:STDOUT: %d.param_patt: %pattern_type.cd3 = value_param_pattern [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.cd3 = at_binding_pattern d, %d.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.c62 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.c62 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.746 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.746 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc6: Core.Form = init_form %i32 [concrete = constants.%.6c9] +// CHECK:STDOUT: %.loc6: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %d.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, imports.%Main.Derived [concrete = constants.%Derived] // CHECK:STDOUT: %d: %Derived = value_binding d, %d.param @@ -368,21 +368,21 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Derived [from "extend_generic_base.carbon"] { -// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.a49 +// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.58d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.b11 -// CHECK:STDOUT: .base = imports.%Main.import_ref.cde +// CHECK:STDOUT: .Self = imports.%Main.import_ref.87c +// CHECK:STDOUT: .base = imports.%Main.import_ref.4a4 // CHECK:STDOUT: .x = -// CHECK:STDOUT: extend imports.%Main.import_ref.2f0a35.2 +// CHECK:STDOUT: extend imports.%Main.import_ref.c669b4.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Param [from "extend_generic_base.carbon"] { -// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8aa +// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.cb0 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.3c6 -// CHECK:STDOUT: .y = imports.%Main.import_ref.87f +// CHECK:STDOUT: .Self = imports.%Main.import_ref.61b +// CHECK:STDOUT: .y = imports.%Main.import_ref.573 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Base(imports.%Main.import_ref.b3b: type) [from "extend_generic_base.carbon"] { @@ -390,8 +390,8 @@ fn H() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic = %require_complete (constants.%require_complete.944)] -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base.0fc)] -// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T [symbolic = %Base.elem (constants.%Base.elem.c41)] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base.798)] +// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T [symbolic = %Base.elem (constants.%Base.elem.a3c)] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @Base.%T (%T.67d)} [symbolic = %struct_type.x (constants.%struct_type.x.0c5)] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.x [symbolic = %complete_type (constants.%complete_type.735)] // CHECK:STDOUT: @@ -399,22 +399,22 @@ fn H() { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.7e3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.50e -// CHECK:STDOUT: .x = imports.%Main.import_ref.1ef +// CHECK:STDOUT: .Self = imports.%Main.import_ref.821 +// CHECK:STDOUT: .x = imports.%Main.import_ref.da1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ImportedDoubleFieldAccess(%d.param: %Derived) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %d.ref: %Derived = name_ref d, %d -// CHECK:STDOUT: %x.ref: %Base.elem.3c5 = name_ref x, imports.%Main.import_ref.1ef [concrete = imports.%.ae1] -// CHECK:STDOUT: %.loc7_11.1: ref %Base.247 = class_element_access %d.ref, element0 -// CHECK:STDOUT: %.loc7_11.2: ref %Base.247 = converted %d.ref, %.loc7_11.1 +// CHECK:STDOUT: %x.ref: %Base.elem.3f2 = name_ref x, imports.%Main.import_ref.da1 [concrete = imports.%.866] +// CHECK:STDOUT: %.loc7_11.1: ref %Base.947 = class_element_access %d.ref, element0 +// CHECK:STDOUT: %.loc7_11.2: ref %Base.947 = converted %d.ref, %.loc7_11.1 // CHECK:STDOUT: %.loc7_11.3: ref %Param = class_element_access %.loc7_11.2, element0 -// CHECK:STDOUT: %y.ref: %Param.elem = name_ref y, imports.%Main.import_ref.87f [concrete = imports.%.8ab] +// CHECK:STDOUT: %y.ref: %Param.elem = name_ref y, imports.%Main.import_ref.573 [concrete = imports.%.8bf] // CHECK:STDOUT: %.loc7_13.1: ref %i32 = class_element_access %.loc7_11.3, element0 // CHECK:STDOUT: %.loc7_13.2: %i32 = acquire_value %.loc7_13.1 -// CHECK:STDOUT: %impl.elem0: %.b11 = impl_witness_access constants.%Copy.impl_witness.7e7, element0 [concrete = constants.%Int.as.Copy.impl.Op.59c] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc7_13.1: = bound_method %.loc7_13.2, %impl.elem0 // 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.loc7_13.2: = bound_method %.loc7_13.2, %specific_fn @@ -430,11 +430,11 @@ fn H() { // CHECK:STDOUT: %T => constants.%Param // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.689 -// CHECK:STDOUT: %Base => constants.%Base.247 -// CHECK:STDOUT: %Base.elem => constants.%Base.elem.3c5 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.81c -// CHECK:STDOUT: %complete_type => constants.%complete_type.a8b +// CHECK:STDOUT: %require_complete => constants.%complete_type.620 +// CHECK:STDOUT: %Base => constants.%Base.947 +// CHECK:STDOUT: %Base.elem => constants.%Base.elem.3f2 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.301 +// CHECK:STDOUT: %complete_type => constants.%complete_type.38f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_extend_symbolic_base.carbon @@ -446,7 +446,7 @@ fn H() { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic] // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %X.G.type: type = fn_type @X.G [concrete] @@ -455,7 +455,7 @@ fn H() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %C.7b5: type = class_type @C, @C(%X) [concrete] +// CHECK:STDOUT: %C.a43: type = class_type @C, @C(%X) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -499,7 +499,7 @@ fn H() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.1f9 +// CHECK:STDOUT: .Self = constants.%C.1d0 // CHECK:STDOUT: .T = // CHECK:STDOUT: .base = %.loc9 // CHECK:STDOUT: .G = @@ -526,7 +526,7 @@ fn H() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%X) [concrete = constants.%C.7b5] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%X) [concrete = constants.%C.a43] // CHECK:STDOUT: %G.ref: = name_ref G, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -551,26 +551,26 @@ fn H() { // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %X.type: type = generic_class_type @X [concrete] // CHECK:STDOUT: %X.generic: %X.type = struct_value () [concrete] -// CHECK:STDOUT: %X.029fe2.1: type = class_type @X, @X(%U) [symbolic] +// CHECK:STDOUT: %X.da69a4.1: type = class_type @X, @X(%U) [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %U [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %U [symbolic] -// CHECK:STDOUT: %X.G.type.ad5676.1: type = fn_type @X.G, @X(%U) [symbolic] -// CHECK:STDOUT: %X.G.ae862d.1: %X.G.type.ad5676.1 = struct_value () [symbolic] +// CHECK:STDOUT: %X.G.type.4063b8.1: type = fn_type @X.G, @X(%U) [symbolic] +// CHECK:STDOUT: %X.G.ff3d53.1: %X.G.type.4063b8.1 = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %require_complete.944: = require_complete_type %U [symbolic] -// CHECK:STDOUT: %X.G.specific_fn.771: = specific_function %X.G.ae862d.1, @X.G(%U) [symbolic] +// CHECK:STDOUT: %X.G.specific_fn.196: = specific_function %X.G.ff3d53.1, @X.G(%U) [symbolic] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%T) [symbolic] -// CHECK:STDOUT: %X.029fe2.2: type = class_type @X, @X(%T) [symbolic] -// CHECK:STDOUT: %X.G.type.ad5676.2: type = fn_type @X.G, @X(%T) [symbolic] -// CHECK:STDOUT: %X.G.ae862d.2: %X.G.type.ad5676.2 = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.84d: = require_complete_type %X.029fe2.2 [symbolic] -// CHECK:STDOUT: %C.elem.7b3: type = unbound_element_type %C.1f9, %X.029fe2.2 [symbolic] -// CHECK:STDOUT: %struct_type.base.e67: type = struct_type {.base: %X.029fe2.2} [symbolic] -// CHECK:STDOUT: %complete_type.ac6: = complete_type_witness %struct_type.base.e67 [symbolic] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %X.da69a4.2: type = class_type @X, @X(%T) [symbolic] +// CHECK:STDOUT: %X.G.type.4063b8.2: type = fn_type @X.G, @X(%T) [symbolic] +// CHECK:STDOUT: %X.G.ff3d53.2: %X.G.type.4063b8.2 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.ec9: = require_complete_type %X.da69a4.2 [symbolic] +// CHECK:STDOUT: %C.elem.bbb: type = unbound_element_type %C.1d0, %X.da69a4.2 [symbolic] +// CHECK:STDOUT: %struct_type.base.8ee: type = struct_type {.base: %X.da69a4.2} [symbolic] +// CHECK:STDOUT: %complete_type.584: = complete_type_witness %struct_type.base.8ee [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -579,16 +579,16 @@ fn H() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %C.249: type = class_type @C, @C(%i32) [concrete] -// CHECK:STDOUT: %X.9ec: type = class_type @X, @X(%i32) [concrete] -// CHECK:STDOUT: %X.G.type.461: type = fn_type @X.G, @X(%i32) [concrete] -// CHECK:STDOUT: %X.G.e0a: %X.G.type.461 = struct_value () [concrete] -// CHECK:STDOUT: %C.elem.bdd: type = unbound_element_type %C.249, %X.9ec [concrete] -// CHECK:STDOUT: %struct_type.base.f49: type = struct_type {.base: %X.9ec} [concrete] -// CHECK:STDOUT: %complete_type.54c: = complete_type_witness %struct_type.base.f49 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %X.G.specific_fn.2a6: = specific_function %X.G.e0a, @X.G(%i32) [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %C.3b7: type = class_type @C, @C(%i32) [concrete] +// CHECK:STDOUT: %X.c03: type = class_type @X, @X(%i32) [concrete] +// CHECK:STDOUT: %X.G.type.aea: type = fn_type @X.G, @X(%i32) [concrete] +// CHECK:STDOUT: %X.G.df3: %X.G.type.aea = struct_value () [concrete] +// CHECK:STDOUT: %C.elem.433: type = unbound_element_type %C.3b7, %X.c03 [concrete] +// CHECK:STDOUT: %struct_type.base.013: type = struct_type {.base: %X.c03} [concrete] +// CHECK:STDOUT: %complete_type.3c0: = complete_type_witness %struct_type.base.013 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %X.G.specific_fn.2b6: = specific_function %X.G.df3, @X.G(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -633,11 +633,11 @@ fn H() { // CHECK:STDOUT: %U.loc4_15.1: type = symbolic_binding U, 0 [symbolic = %U.loc4_15.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X.G.type: type = fn_type @X.G, @X(%U.loc4_15.1) [symbolic = %X.G.type (constants.%X.G.type.ad5676.1)] -// CHECK:STDOUT: %X.G: @X.%X.G.type (%X.G.type.ad5676.1) = struct_value () [symbolic = %X.G (constants.%X.G.ae862d.1)] +// CHECK:STDOUT: %X.G.type: type = fn_type @X.G, @X(%U.loc4_15.1) [symbolic = %X.G.type (constants.%X.G.type.4063b8.1)] +// CHECK:STDOUT: %X.G: @X.%X.G.type (%X.G.type.4063b8.1) = struct_value () [symbolic = %X.G (constants.%X.G.ff3d53.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %X.G.decl: @X.%X.G.type (%X.G.type.ad5676.1) = fn_decl @X.G [symbolic = @X.%X.G (constants.%X.G.ae862d.1)] { +// CHECK:STDOUT: %X.G.decl: @X.%X.G.type (%X.G.type.4063b8.1) = fn_decl @X.G [symbolic = @X.%X.G (constants.%X.G.ff3d53.1)] { // CHECK:STDOUT: %return.param_patt: @X.G.%pattern_type (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @X.G.%pattern_type (%pattern_type.51d) = return_slot_pattern %return.param_patt, %U.ref [concrete] // CHECK:STDOUT: } { @@ -650,7 +650,7 @@ fn H() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%X.029fe2.1 +// CHECK:STDOUT: .Self = constants.%X.da69a4.1 // CHECK:STDOUT: .U = // CHECK:STDOUT: .G = %X.G.decl // CHECK:STDOUT: } @@ -660,23 +660,23 @@ fn H() { // CHECK:STDOUT: %T.loc8_10.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_10.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X.loc9_19.2: type = class_type @X, @X(%T.loc8_10.1) [symbolic = %X.loc9_19.2 (constants.%X.029fe2.2)] -// CHECK:STDOUT: %require_complete: = require_complete_type %X.loc9_19.2 [symbolic = %require_complete (constants.%require_complete.84d)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc8_10.1) [symbolic = %C (constants.%C.1f9)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %X.loc9_19.2 [symbolic = %C.elem (constants.%C.elem.7b3)] -// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: @C.%X.loc9_19.2 (%X.029fe2.2)} [symbolic = %struct_type.base (constants.%struct_type.base.e67)] -// CHECK:STDOUT: %complete_type.loc10_1.2: = complete_type_witness %struct_type.base [symbolic = %complete_type.loc10_1.2 (constants.%complete_type.ac6)] +// CHECK:STDOUT: %X.loc9_19.2: type = class_type @X, @X(%T.loc8_10.1) [symbolic = %X.loc9_19.2 (constants.%X.da69a4.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %X.loc9_19.2 [symbolic = %require_complete (constants.%require_complete.ec9)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc8_10.1) [symbolic = %C (constants.%C.1d0)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %X.loc9_19.2 [symbolic = %C.elem (constants.%C.elem.bbb)] +// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: @C.%X.loc9_19.2 (%X.da69a4.2)} [symbolic = %struct_type.base (constants.%struct_type.base.8ee)] +// CHECK:STDOUT: %complete_type.loc10_1.2: = complete_type_witness %struct_type.base [symbolic = %complete_type.loc10_1.2 (constants.%complete_type.584)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %X.ref: %X.type = name_ref X, file.%X.decl [concrete = constants.%X.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_10.2 [symbolic = %T.loc8_10.1 (constants.%T)] -// CHECK:STDOUT: %X.loc9_19.1: type = class_type @X, @X(constants.%T) [symbolic = %X.loc9_19.2 (constants.%X.029fe2.2)] -// CHECK:STDOUT: %.loc9: @C.%C.elem (%C.elem.7b3) = base_decl %X.loc9_19.1, element0 [concrete] -// CHECK:STDOUT: %complete_type.loc10_1.1: = complete_type_witness constants.%struct_type.base.e67 [symbolic = %complete_type.loc10_1.2 (constants.%complete_type.ac6)] +// CHECK:STDOUT: %X.loc9_19.1: type = class_type @X, @X(constants.%T) [symbolic = %X.loc9_19.2 (constants.%X.da69a4.2)] +// CHECK:STDOUT: %.loc9: @C.%C.elem (%C.elem.bbb) = base_decl %X.loc9_19.1, element0 [concrete] +// CHECK:STDOUT: %complete_type.loc10_1.1: = complete_type_witness constants.%struct_type.base.8ee [symbolic = %complete_type.loc10_1.2 (constants.%complete_type.584)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc10_1.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.1f9 +// CHECK:STDOUT: .Self = constants.%C.1d0 // CHECK:STDOUT: .X = // CHECK:STDOUT: .T = // CHECK:STDOUT: .base = %.loc9 @@ -692,15 +692,15 @@ fn H() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %U [symbolic = %require_complete (constants.%require_complete.944)] -// CHECK:STDOUT: %X.G.type: type = fn_type @X.G, @X(%U) [symbolic = %X.G.type (constants.%X.G.type.ad5676.1)] -// CHECK:STDOUT: %X.G: @X.G.%X.G.type (%X.G.type.ad5676.1) = struct_value () [symbolic = %X.G (constants.%X.G.ae862d.1)] -// CHECK:STDOUT: %X.G.specific_fn.loc5_24.2: = specific_function %X.G, @X.G(%U) [symbolic = %X.G.specific_fn.loc5_24.2 (constants.%X.G.specific_fn.771)] +// CHECK:STDOUT: %X.G.type: type = fn_type @X.G, @X(%U) [symbolic = %X.G.type (constants.%X.G.type.4063b8.1)] +// CHECK:STDOUT: %X.G: @X.G.%X.G.type (%X.G.type.4063b8.1) = struct_value () [symbolic = %X.G (constants.%X.G.ff3d53.1)] +// CHECK:STDOUT: %X.G.specific_fn.loc5_24.2: = specific_function %X.G, @X.G(%U) [symbolic = %X.G.specific_fn.loc5_24.2 (constants.%X.G.specific_fn.196)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: @X.G.%U (%U) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc5_24: @X.G.%X.G.type (%X.G.type.ad5676.1) = specific_constant @X.%X.G.decl, @X(constants.%U) [symbolic = %X.G (constants.%X.G.ae862d.1)] -// CHECK:STDOUT: %G.ref: @X.G.%X.G.type (%X.G.type.ad5676.1) = name_ref G, %.loc5_24 [symbolic = %X.G (constants.%X.G.ae862d.1)] -// CHECK:STDOUT: %X.G.specific_fn.loc5_24.1: = specific_function %G.ref, @X.G(constants.%U) [symbolic = %X.G.specific_fn.loc5_24.2 (constants.%X.G.specific_fn.771)] +// CHECK:STDOUT: %.loc5_24: @X.G.%X.G.type (%X.G.type.4063b8.1) = specific_constant @X.%X.G.decl, @X(constants.%U) [symbolic = %X.G (constants.%X.G.ff3d53.1)] +// CHECK:STDOUT: %G.ref: @X.G.%X.G.type (%X.G.type.4063b8.1) = name_ref G, %.loc5_24 [symbolic = %X.G (constants.%X.G.ff3d53.1)] +// CHECK:STDOUT: %X.G.specific_fn.loc5_24.1: = specific_function %G.ref, @X.G(constants.%U) [symbolic = %X.G.specific_fn.loc5_24.2 (constants.%X.G.specific_fn.196)] // CHECK:STDOUT: %.loc5_13.1: ref @X.G.%U (%U) = splice_block %return.param {} // CHECK:STDOUT: %X.G.call: init @X.G.%U (%U) to %.loc5_13.1 = call %X.G.specific_fn.loc5_24.1() // CHECK:STDOUT: return %X.G.call to %return.param @@ -710,14 +710,14 @@ fn H() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.104 = value_binding_pattern i [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.6b6 = value_binding_pattern i [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %i32.loc13_25: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.249] -// CHECK:STDOUT: %.loc13_29: %X.G.type.461 = specific_constant @X.%X.G.decl, @X(constants.%i32) [concrete = constants.%X.G.e0a] -// CHECK:STDOUT: %G.ref: %X.G.type.461 = name_ref G, %.loc13_29 [concrete = constants.%X.G.e0a] -// CHECK:STDOUT: %X.G.specific_fn: = specific_function %G.ref, @X.G(constants.%i32) [concrete = constants.%X.G.specific_fn.2a6] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.3b7] +// CHECK:STDOUT: %.loc13_29: %X.G.type.aea = specific_constant @X.%X.G.decl, @X(constants.%i32) [concrete = constants.%X.G.df3] +// CHECK:STDOUT: %G.ref: %X.G.type.aea = name_ref G, %.loc13_29 [concrete = constants.%X.G.df3] +// CHECK:STDOUT: %X.G.specific_fn: = specific_function %G.ref, @X.G(constants.%i32) [concrete = constants.%X.G.specific_fn.2b6] // CHECK:STDOUT: %X.G.call: init %i32 = call %X.G.specific_fn() // CHECK:STDOUT: %i32.loc13_17: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc13_32.1: %i32 = value_of_initializer %X.G.call @@ -730,8 +730,8 @@ fn H() { // CHECK:STDOUT: %U.loc4_15.1 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X.G.type => constants.%X.G.type.ad5676.1 -// CHECK:STDOUT: %X.G => constants.%X.G.ae862d.1 +// CHECK:STDOUT: %X.G.type => constants.%X.G.type.4063b8.1 +// CHECK:STDOUT: %X.G => constants.%X.G.ff3d53.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X.G(constants.%U) { @@ -741,9 +741,9 @@ fn H() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.944 -// CHECK:STDOUT: %X.G.type => constants.%X.G.type.ad5676.1 -// CHECK:STDOUT: %X.G => constants.%X.G.ae862d.1 -// CHECK:STDOUT: %X.G.specific_fn.loc5_24.2 => constants.%X.G.specific_fn.771 +// CHECK:STDOUT: %X.G.type => constants.%X.G.type.4063b8.1 +// CHECK:STDOUT: %X.G => constants.%X.G.ff3d53.1 +// CHECK:STDOUT: %X.G.specific_fn.loc5_24.2 => constants.%X.G.specific_fn.196 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { @@ -754,40 +754,40 @@ fn H() { // CHECK:STDOUT: %U.loc4_15.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X.G.type => constants.%X.G.type.ad5676.2 -// CHECK:STDOUT: %X.G => constants.%X.G.ae862d.2 +// CHECK:STDOUT: %X.G.type => constants.%X.G.type.4063b8.2 +// CHECK:STDOUT: %X.G => constants.%X.G.ff3d53.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%i32) { // CHECK:STDOUT: %T.loc8_10.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X.loc9_19.2 => constants.%X.9ec +// CHECK:STDOUT: %X.loc9_19.2 => constants.%X.c03 // CHECK:STDOUT: %require_complete => constants.%complete_type.357 -// CHECK:STDOUT: %C => constants.%C.249 -// CHECK:STDOUT: %C.elem => constants.%C.elem.bdd -// CHECK:STDOUT: %struct_type.base => constants.%struct_type.base.f49 -// CHECK:STDOUT: %complete_type.loc10_1.2 => constants.%complete_type.54c +// CHECK:STDOUT: %C => constants.%C.3b7 +// CHECK:STDOUT: %C.elem => constants.%C.elem.433 +// CHECK:STDOUT: %struct_type.base => constants.%struct_type.base.013 +// CHECK:STDOUT: %complete_type.loc10_1.2 => constants.%complete_type.3c0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%i32) { // CHECK:STDOUT: %U.loc4_15.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X.G.type => constants.%X.G.type.461 -// CHECK:STDOUT: %X.G => constants.%X.G.e0a +// CHECK:STDOUT: %X.G.type => constants.%X.G.type.aea +// CHECK:STDOUT: %X.G => constants.%X.G.df3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X.G(constants.%i32) { // CHECK:STDOUT: %U => constants.%i32 -// CHECK:STDOUT: %.loc5_13.2 => constants.%.7ea -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.104 +// CHECK:STDOUT: %.loc5_13.2 => constants.%.795 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6b6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %X.G.type => constants.%X.G.type.461 -// CHECK:STDOUT: %X.G => constants.%X.G.e0a -// CHECK:STDOUT: %X.G.specific_fn.loc5_24.2 => constants.%X.G.specific_fn.2a6 +// CHECK:STDOUT: %X.G.type => constants.%X.G.type.aea +// CHECK:STDOUT: %X.G => constants.%X.G.df3 +// CHECK:STDOUT: %X.G.specific_fn.loc5_24.2 => constants.%X.G.specific_fn.2b6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- import_extend_generic_symbolic_base.carbon @@ -801,36 +801,36 @@ fn H() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %X.G.type.ad5676.1: type = fn_type @X.G, @X(%U) [symbolic] -// CHECK:STDOUT: %X.G.ae862d.1: %X.G.type.ad5676.1 = struct_value () [symbolic] +// CHECK:STDOUT: %X.G.type.4063b8.1: type = fn_type @X.G, @X(%U) [symbolic] +// CHECK:STDOUT: %X.G.ff3d53.1: %X.G.type.4063b8.1 = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %U [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %U [symbolic] -// CHECK:STDOUT: %X.G.specific_fn.771: = specific_function %X.G.ae862d.1, @X.G(%U) [symbolic] +// CHECK:STDOUT: %X.G.specific_fn.196: = specific_function %X.G.ff3d53.1, @X.G(%U) [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %U [symbolic] -// CHECK:STDOUT: %X.029fe2.2: type = class_type @X, @X(%T) [symbolic] -// CHECK:STDOUT: %X.G.type.ad5676.2: type = fn_type @X.G, @X(%T) [symbolic] -// CHECK:STDOUT: %X.G.ae862d.2: %X.G.type.ad5676.2 = struct_value () [symbolic] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%T) [symbolic] -// CHECK:STDOUT: %C.elem.7b3: type = unbound_element_type %C.1f9, %X.029fe2.2 [symbolic] -// CHECK:STDOUT: %struct_type.base.e67: type = struct_type {.base: %X.029fe2.2} [symbolic] -// CHECK:STDOUT: %complete_type.ac6: = complete_type_witness %struct_type.base.e67 [symbolic] -// CHECK:STDOUT: %require_complete.84d: = require_complete_type %X.029fe2.2 [symbolic] -// CHECK:STDOUT: %C.249: type = class_type @C, @C(%i32) [concrete] -// CHECK:STDOUT: %X.9ec: type = class_type @X, @X(%i32) [concrete] -// CHECK:STDOUT: %X.G.type.461: type = fn_type @X.G, @X(%i32) [concrete] -// CHECK:STDOUT: %X.G.e0a: %X.G.type.461 = struct_value () [concrete] -// CHECK:STDOUT: %C.elem.bdd: type = unbound_element_type %C.249, %X.9ec [concrete] -// CHECK:STDOUT: %struct_type.base.f49: type = struct_type {.base: %X.9ec} [concrete] -// CHECK:STDOUT: %complete_type.54c: = complete_type_witness %struct_type.base.f49 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %X.G.specific_fn.2a6: = specific_function %X.G.e0a, @X.G(%i32) [concrete] +// CHECK:STDOUT: %X.da69a4.2: type = class_type @X, @X(%T) [symbolic] +// CHECK:STDOUT: %X.G.type.4063b8.2: type = fn_type @X.G, @X(%T) [symbolic] +// CHECK:STDOUT: %X.G.ff3d53.2: %X.G.type.4063b8.2 = struct_value () [symbolic] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.elem.bbb: type = unbound_element_type %C.1d0, %X.da69a4.2 [symbolic] +// CHECK:STDOUT: %struct_type.base.8ee: type = struct_type {.base: %X.da69a4.2} [symbolic] +// CHECK:STDOUT: %complete_type.584: = complete_type_witness %struct_type.base.8ee [symbolic] +// CHECK:STDOUT: %require_complete.ec9: = require_complete_type %X.da69a4.2 [symbolic] +// CHECK:STDOUT: %C.3b7: type = class_type @C, @C(%i32) [concrete] +// CHECK:STDOUT: %X.c03: type = class_type @X, @X(%i32) [concrete] +// CHECK:STDOUT: %X.G.type.aea: type = fn_type @X.G, @X(%i32) [concrete] +// CHECK:STDOUT: %X.G.df3: %X.G.type.aea = struct_value () [concrete] +// CHECK:STDOUT: %C.elem.433: type = unbound_element_type %C.3b7, %X.c03 [concrete] +// CHECK:STDOUT: %struct_type.base.013: type = struct_type {.base: %X.c03} [concrete] +// CHECK:STDOUT: %complete_type.3c0: = complete_type_witness %struct_type.base.013 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %X.G.specific_fn.2b6: = specific_function %X.G.df3, @X.G(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -845,13 +845,13 @@ fn H() { // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Main.import_ref.b3bc94.1: type = import_ref Main//extend_generic_symbolic_base, loc4_15, loaded [symbolic = @X.%U (constants.%U)] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//extend_generic_symbolic_base, loc6_1, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.241 = import_ref Main//extend_generic_symbolic_base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.43d: @X.%X.G.type (%X.G.type.ad5676.1) = import_ref Main//extend_generic_symbolic_base, loc5_15, loaded [symbolic = @X.%X.G (constants.%X.G.ae862d.1)] +// CHECK:STDOUT: %Main.import_ref.8d6 = import_ref Main//extend_generic_symbolic_base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c0: @X.%X.G.type (%X.G.type.4063b8.1) = import_ref Main//extend_generic_symbolic_base, loc5_15, loaded [symbolic = @X.%X.G (constants.%X.G.ff3d53.1)] // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//extend_generic_symbolic_base, loc4_15, loaded [symbolic = @X.%U (constants.%U)] -// CHECK:STDOUT: %Main.import_ref.248: = import_ref Main//extend_generic_symbolic_base, loc10_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.ac6)] -// CHECK:STDOUT: %Main.import_ref.6a5 = import_ref Main//extend_generic_symbolic_base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.e6c = import_ref Main//extend_generic_symbolic_base, loc9_20, unloaded -// CHECK:STDOUT: %Main.import_ref.38f538.2: type = import_ref Main//extend_generic_symbolic_base, loc9_19, loaded [symbolic = @C.%X (constants.%X.029fe2.2)] +// CHECK:STDOUT: %Main.import_ref.f1c: = import_ref Main//extend_generic_symbolic_base, loc10_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.584)] +// CHECK:STDOUT: %Main.import_ref.189 = import_ref Main//extend_generic_symbolic_base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.799 = import_ref Main//extend_generic_symbolic_base, loc9_20, unloaded +// CHECK:STDOUT: %Main.import_ref.338d56.2: type = import_ref Main//extend_generic_symbolic_base, loc9_19, loaded [symbolic = @C.%X (constants.%X.da69a4.2)] // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//extend_generic_symbolic_base, loc8_10, loaded [symbolic = @C.%T (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -872,21 +872,21 @@ fn H() { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X: type = class_type @X, @X(%T) [symbolic = %X (constants.%X.029fe2.2)] -// CHECK:STDOUT: %require_complete: = require_complete_type %X [symbolic = %require_complete (constants.%require_complete.84d)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.1f9)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %X [symbolic = %C.elem (constants.%C.elem.7b3)] -// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: @C.%X (%X.029fe2.2)} [symbolic = %struct_type.base (constants.%struct_type.base.e67)] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base [symbolic = %complete_type (constants.%complete_type.ac6)] +// CHECK:STDOUT: %X: type = class_type @X, @X(%T) [symbolic = %X (constants.%X.da69a4.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %X [symbolic = %require_complete (constants.%require_complete.ec9)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.1d0)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %X [symbolic = %C.elem (constants.%C.elem.bbb)] +// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: @C.%X (%X.da69a4.2)} [symbolic = %struct_type.base (constants.%struct_type.base.8ee)] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base [symbolic = %complete_type (constants.%complete_type.584)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.248 +// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.f1c // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.6a5 -// CHECK:STDOUT: .base = imports.%Main.import_ref.e6c +// CHECK:STDOUT: .Self = imports.%Main.import_ref.189 +// CHECK:STDOUT: .base = imports.%Main.import_ref.799 // CHECK:STDOUT: .G = -// CHECK:STDOUT: extend imports.%Main.import_ref.38f538.2 +// CHECK:STDOUT: extend imports.%Main.import_ref.338d56.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -894,29 +894,29 @@ fn H() { // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic = %U (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X.G.type: type = fn_type @X.G, @X(%U) [symbolic = %X.G.type (constants.%X.G.type.ad5676.1)] -// CHECK:STDOUT: %X.G: @X.%X.G.type (%X.G.type.ad5676.1) = struct_value () [symbolic = %X.G (constants.%X.G.ae862d.1)] +// CHECK:STDOUT: %X.G.type: type = fn_type @X.G, @X(%U) [symbolic = %X.G.type (constants.%X.G.type.4063b8.1)] +// CHECK:STDOUT: %X.G: @X.%X.G.type (%X.G.type.4063b8.1) = struct_value () [symbolic = %X.G (constants.%X.G.ff3d53.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.241 -// CHECK:STDOUT: .G = imports.%Main.import_ref.43d +// CHECK:STDOUT: .Self = imports.%Main.import_ref.8d6 +// CHECK:STDOUT: .G = imports.%Main.import_ref.2c0 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @H() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %j.patt: %pattern_type.104 = value_binding_pattern j [concrete] +// CHECK:STDOUT: %j.patt: %pattern_type.6b6 = value_binding_pattern j [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C.generic] // CHECK:STDOUT: %i32.loc7_25: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.249] -// CHECK:STDOUT: %.loc7_29: %X.G.type.461 = specific_constant imports.%Main.import_ref.43d, @X(constants.%i32) [concrete = constants.%X.G.e0a] -// CHECK:STDOUT: %G.ref: %X.G.type.461 = name_ref G, %.loc7_29 [concrete = constants.%X.G.e0a] -// CHECK:STDOUT: %X.G.specific_fn: = specific_function %G.ref, @X.G(constants.%i32) [concrete = constants.%X.G.specific_fn.2a6] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.3b7] +// CHECK:STDOUT: %.loc7_29: %X.G.type.aea = specific_constant imports.%Main.import_ref.2c0, @X(constants.%i32) [concrete = constants.%X.G.df3] +// CHECK:STDOUT: %G.ref: %X.G.type.aea = name_ref G, %.loc7_29 [concrete = constants.%X.G.df3] +// CHECK:STDOUT: %X.G.specific_fn: = specific_function %G.ref, @X.G(constants.%i32) [concrete = constants.%X.G.specific_fn.2b6] // CHECK:STDOUT: %X.G.call: init %i32 = call %X.G.specific_fn() // CHECK:STDOUT: %i32.loc7_17: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc7_32.1: %i32 = value_of_initializer %X.G.call @@ -932,9 +932,9 @@ fn H() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %U [symbolic = %require_complete (constants.%require_complete.944)] -// CHECK:STDOUT: %X.G.type: type = fn_type @X.G, @X(%U) [symbolic = %X.G.type (constants.%X.G.type.ad5676.1)] -// CHECK:STDOUT: %X.G: @X.G.%X.G.type (%X.G.type.ad5676.1) = struct_value () [symbolic = %X.G (constants.%X.G.ae862d.1)] -// CHECK:STDOUT: %X.G.specific_fn: = specific_function %X.G, @X.G(%U) [symbolic = %X.G.specific_fn (constants.%X.G.specific_fn.771)] +// CHECK:STDOUT: %X.G.type: type = fn_type @X.G, @X(%U) [symbolic = %X.G.type (constants.%X.G.type.4063b8.1)] +// CHECK:STDOUT: %X.G: @X.G.%X.G.type (%X.G.type.4063b8.1) = struct_value () [symbolic = %X.G (constants.%X.G.ff3d53.1)] +// CHECK:STDOUT: %X.G.specific_fn: = specific_function %X.G, @X.G(%U) [symbolic = %X.G.specific_fn (constants.%X.G.specific_fn.196)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -943,8 +943,8 @@ fn H() { // CHECK:STDOUT: %U => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X.G.type => constants.%X.G.type.ad5676.1 -// CHECK:STDOUT: %X.G => constants.%X.G.ae862d.1 +// CHECK:STDOUT: %X.G.type => constants.%X.G.type.4063b8.1 +// CHECK:STDOUT: %X.G => constants.%X.G.ff3d53.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X.G(constants.%U) { @@ -954,17 +954,17 @@ fn H() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.944 -// CHECK:STDOUT: %X.G.type => constants.%X.G.type.ad5676.1 -// CHECK:STDOUT: %X.G => constants.%X.G.ae862d.1 -// CHECK:STDOUT: %X.G.specific_fn => constants.%X.G.specific_fn.771 +// CHECK:STDOUT: %X.G.type => constants.%X.G.type.4063b8.1 +// CHECK:STDOUT: %X.G => constants.%X.G.ff3d53.1 +// CHECK:STDOUT: %X.G.specific_fn => constants.%X.G.specific_fn.196 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%T) { // CHECK:STDOUT: %U => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X.G.type => constants.%X.G.type.ad5676.2 -// CHECK:STDOUT: %X.G => constants.%X.G.ae862d.2 +// CHECK:STDOUT: %X.G.type => constants.%X.G.type.4063b8.2 +// CHECK:STDOUT: %X.G => constants.%X.G.ff3d53.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { @@ -975,31 +975,31 @@ fn H() { // CHECK:STDOUT: %T => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X => constants.%X.9ec +// CHECK:STDOUT: %X => constants.%X.c03 // CHECK:STDOUT: %require_complete => constants.%complete_type.357 -// CHECK:STDOUT: %C => constants.%C.249 -// CHECK:STDOUT: %C.elem => constants.%C.elem.bdd -// CHECK:STDOUT: %struct_type.base => constants.%struct_type.base.f49 -// CHECK:STDOUT: %complete_type => constants.%complete_type.54c +// CHECK:STDOUT: %C => constants.%C.3b7 +// CHECK:STDOUT: %C.elem => constants.%C.elem.433 +// CHECK:STDOUT: %struct_type.base => constants.%struct_type.base.013 +// CHECK:STDOUT: %complete_type => constants.%complete_type.3c0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%i32) { // CHECK:STDOUT: %U => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X.G.type => constants.%X.G.type.461 -// CHECK:STDOUT: %X.G => constants.%X.G.e0a +// CHECK:STDOUT: %X.G.type => constants.%X.G.type.aea +// CHECK:STDOUT: %X.G => constants.%X.G.df3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X.G(constants.%i32) { // CHECK:STDOUT: %U => constants.%i32 -// CHECK:STDOUT: %.1 => constants.%.7ea -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.104 +// CHECK:STDOUT: %.1 => constants.%.795 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6b6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %X.G.type => constants.%X.G.type.461 -// CHECK:STDOUT: %X.G => constants.%X.G.e0a -// CHECK:STDOUT: %X.G.specific_fn => constants.%X.G.specific_fn.2a6 +// CHECK:STDOUT: %X.G.type => constants.%X.G.type.aea +// CHECK:STDOUT: %X.G => constants.%X.G.df3 +// CHECK:STDOUT: %X.G.specific_fn => constants.%X.G.specific_fn.2b6 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/basic.carbon b/toolchain/check/testdata/class/generic/basic.carbon index 80a1c0934ef8..3075ce94696f 100644 --- a/toolchain/check/testdata/class/generic/basic.carbon +++ b/toolchain/check/testdata/class/generic/basic.carbon @@ -36,42 +36,42 @@ class Declaration(T:! type); // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %T.f49: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.e81: type = pattern_type %Copy.type [concrete] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [concrete] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.f49) [symbolic] -// CHECK:STDOUT: %pattern_type.16a: type = pattern_type %Class [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f49 [symbolic] -// CHECK:STDOUT: %ptr.a3f: type = ptr_type %T.as_type [symbolic] -// CHECK:STDOUT: %.0e7: Core.Form = init_form %ptr.a3f [symbolic] -// CHECK:STDOUT: %pattern_type.eec: type = pattern_type %ptr.a3f [symbolic] -// CHECK:STDOUT: %Class.GetAddr.type: type = fn_type @Class.GetAddr, @Class(%T.f49) [symbolic] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.f84) [symbolic] +// CHECK:STDOUT: %pattern_type.e18: type = pattern_type %Class [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f84 [symbolic] +// CHECK:STDOUT: %ptr.215: type = ptr_type %T.as_type [symbolic] +// CHECK:STDOUT: %.4fb: Core.Form = init_form %ptr.215 [symbolic] +// CHECK:STDOUT: %pattern_type.d5b: type = pattern_type %ptr.215 [symbolic] +// CHECK:STDOUT: %Class.GetAddr.type: type = fn_type @Class.GetAddr, @Class(%T.f84) [symbolic] // CHECK:STDOUT: %Class.GetAddr: %Class.GetAddr.type = struct_value () [symbolic] -// CHECK:STDOUT: %.dedae6.2: Core.Form = init_form %T.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.c0fdca.2: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %Class.GetValue.type: type = fn_type @Class.GetValue, @Class(%T.f49) [symbolic] +// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %Class.GetValue.type: type = fn_type @Class.GetValue, @Class(%T.f84) [symbolic] // CHECK:STDOUT: %Class.GetValue: %Class.GetValue.type = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.77e: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.d83: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type [symbolic] // CHECK:STDOUT: %struct_type.k: type = struct_type {.k: %T.as_type} [symbolic] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.k [symbolic] -// CHECK:STDOUT: %require_complete.28e: = require_complete_type %Class [symbolic] -// CHECK:STDOUT: %require_complete.040: = require_complete_type %ptr.a3f [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2dd: = lookup_impl_witness %T.f49, @Copy [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.e9f10f.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f49) [symbolic] -// CHECK:STDOUT: %.e16: type = fn_type_with_self_type %Copy.WithSelf.Op.type.e9f10f.2, %T.f49 [symbolic] -// CHECK:STDOUT: %impl.elem0.41e: %.e16 = impl_witness_access %Copy.lookup_impl_witness.2dd, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7ec: = specific_impl_function %impl.elem0.41e, @Copy.WithSelf.Op(%T.f49) [symbolic] +// CHECK:STDOUT: %require_complete.1dd: = require_complete_type %Class [symbolic] +// CHECK:STDOUT: %require_complete.94b: = require_complete_type %ptr.215 [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d9c: = lookup_impl_witness %T.f84, @Copy [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c85f21.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f84) [symbolic] +// CHECK:STDOUT: %.c29: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c85f21.2, %T.f84 [symbolic] +// CHECK:STDOUT: %impl.elem0.bd2: %.c29 = impl_witness_access %Copy.lookup_impl_witness.d9c, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e2a: = specific_impl_function %impl.elem0.bd2, @Copy.WithSelf.Op(%T.f84) [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] -// CHECK:STDOUT: %Copy.lookup_impl_witness.fd9: = lookup_impl_witness %ptr.a3f, @Copy [symbolic] -// CHECK:STDOUT: %.7ac: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type) [symbolic] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.a3f, (%Copy.lookup_impl_witness.fd9) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.4e8: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] -// CHECK:STDOUT: %.93e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.4e8, %Copy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.d58: %.93e = impl_witness_access %Copy.lookup_impl_witness.fd9, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.436: = specific_impl_function %impl.elem0.d58, @Copy.WithSelf.Op(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.cf6: = lookup_impl_witness %ptr.215, @Copy [symbolic] +// CHECK:STDOUT: %.a33: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type) [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.215, (%Copy.lookup_impl_witness.cf6) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.6e0: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] +// CHECK:STDOUT: %.45d: type = fn_type_with_self_type %Copy.WithSelf.Op.type.6e0, %Copy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.c5d: %.45d = impl_witness_access %Copy.lookup_impl_witness.cf6, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.5cf: = specific_impl_function %impl.elem0.c5d, @Copy.WithSelf.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: %Declaration.type: type = generic_class_type @Declaration [concrete] // CHECK:STDOUT: %Declaration.generic: %Declaration.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -87,14 +87,14 @@ class Declaration(T:! type); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { -// CHECK:STDOUT: %T.patt: %pattern_type.b72 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.e81 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc5_14.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc5_14.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f84)] // CHECK:STDOUT: } // CHECK:STDOUT: %Declaration.decl: %Declaration.type = class_decl @Declaration [concrete = constants.%Declaration.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -108,7 +108,7 @@ class Declaration(T:! type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Class(%T.loc5_14.2: %Copy.type) { -// CHECK:STDOUT: %T.loc5_14.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc5_14.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f84)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Class.GetAddr.type: type = fn_type @Class.GetAddr, @Class(%T.loc5_14.1) [symbolic = %Class.GetAddr.type (constants.%Class.GetAddr.type)] @@ -116,7 +116,7 @@ class Declaration(T:! type); // CHECK:STDOUT: %Class.GetValue.type: type = fn_type @Class.GetValue, @Class(%T.loc5_14.1) [symbolic = %Class.GetValue.type (constants.%Class.GetValue.type)] // CHECK:STDOUT: %Class.GetValue: @Class.%Class.GetValue.type (%Class.GetValue.type) = struct_value () [symbolic = %Class.GetValue (constants.%Class.GetValue)] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T.loc5_14.1 [symbolic = %T.as_type (constants.%T.as_type)] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic = %require_complete (constants.%require_complete.77e)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic = %require_complete (constants.%require_complete.d83)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc5_14.1) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type [symbolic = %Class.elem (constants.%Class.elem)] // CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @Class.%T.as_type (%T.as_type)} [symbolic = %struct_type.k (constants.%struct_type.k)] @@ -124,38 +124,38 @@ class Declaration(T:! type); // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Class.GetAddr.decl: @Class.%Class.GetAddr.type (%Class.GetAddr.type) = fn_decl @Class.GetAddr [symbolic = @Class.%Class.GetAddr (constants.%Class.GetAddr)] { -// CHECK:STDOUT: %self.param_patt: @Class.GetAddr.%pattern_type.loc6_22 (%pattern_type.16a) = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Class.GetAddr.%pattern_type.loc6_22 (%pattern_type.16a) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.GetAddr.%pattern_type.loc6_36 (%pattern_type.eec) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.GetAddr.%pattern_type.loc6_36 (%pattern_type.eec) = return_slot_pattern %return.param_patt, %ptr.loc6_36.2 [concrete] +// CHECK:STDOUT: %self.param_patt: @Class.GetAddr.%pattern_type.loc6_22 (%pattern_type.e18) = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Class.GetAddr.%pattern_type.loc6_22 (%pattern_type.e18) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.GetAddr.%pattern_type.loc6_36 (%pattern_type.d5b) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.GetAddr.%pattern_type.loc6_36 (%pattern_type.d5b) = return_slot_pattern %return.param_patt, %ptr.loc6_36.2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T (constants.%T.f49)] +// CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc6_36.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc6_36.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc6_36.2: type = converted %T.ref, %T.as_type.loc6_36.2 [symbolic = %T.as_type.loc6_36.1 (constants.%T.as_type)] -// CHECK:STDOUT: %ptr.loc6_36.2: type = ptr_type %.loc6_36.2 [symbolic = %ptr.loc6_36.1 (constants.%ptr.a3f)] -// CHECK:STDOUT: %.loc6_36.3: Core.Form = init_form %ptr.loc6_36.2 [symbolic = %.loc6_36.1 (constants.%.0e7)] +// CHECK:STDOUT: %ptr.loc6_36.2: type = ptr_type %.loc6_36.2 [symbolic = %ptr.loc6_36.1 (constants.%ptr.215)] +// CHECK:STDOUT: %.loc6_36.3: Core.Form = init_form %ptr.loc6_36.2 [symbolic = %.loc6_36.1 (constants.%.4fb)] // CHECK:STDOUT: %self.param: ref @Class.GetAddr.%Class (%Class) = ref_param call_param0 // CHECK:STDOUT: %.loc6_24.1: type = splice_block %Self.ref [symbolic = %Class (constants.%Class)] { -// CHECK:STDOUT: %.loc6_24.2: type = specific_constant constants.%Class, @Class(constants.%T.f49) [symbolic = %Class (constants.%Class)] +// CHECK:STDOUT: %.loc6_24.2: type = specific_constant constants.%Class, @Class(constants.%T.f84) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc6_24.2 [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: ref @Class.GetAddr.%Class (%Class) = ref_binding self, %self.param -// CHECK:STDOUT: %return.param: ref @Class.GetAddr.%ptr.loc6_36.1 (%ptr.a3f) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Class.GetAddr.%ptr.loc6_36.1 (%ptr.a3f) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @Class.GetAddr.%ptr.loc6_36.1 (%ptr.215) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Class.GetAddr.%ptr.loc6_36.1 (%ptr.215) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Class.GetValue.decl: @Class.%Class.GetValue.type (%Class.GetValue.type) = fn_decl @Class.GetValue [symbolic = @Class.%Class.GetValue (constants.%Class.GetValue)] { -// CHECK:STDOUT: %self.param_patt: @Class.GetValue.%pattern_type.loc10_19 (%pattern_type.16a) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Class.GetValue.%pattern_type.loc10_19 (%pattern_type.16a) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.GetValue.%pattern_type.loc10_32 (%pattern_type.c0fdca.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.GetValue.%pattern_type.loc10_32 (%pattern_type.c0fdca.2) = return_slot_pattern %return.param_patt, %.loc10_32.3 [concrete] +// CHECK:STDOUT: %self.param_patt: @Class.GetValue.%pattern_type.loc10_19 (%pattern_type.e18) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Class.GetValue.%pattern_type.loc10_19 (%pattern_type.e18) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.GetValue.%pattern_type.loc10_32 (%pattern_type.2c66b4.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.GetValue.%pattern_type.loc10_32 (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt, %.loc10_32.3 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T (constants.%T.f49)] +// CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc10_32.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc10_32.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc10_32.3: type = converted %T.ref, %T.as_type.loc10_32.2 [symbolic = %T.as_type.loc10_32.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc10_32.4: Core.Form = init_form %.loc10_32.3 [symbolic = %.loc10_32.2 (constants.%.dedae6.2)] +// CHECK:STDOUT: %.loc10_32.4: Core.Form = init_form %.loc10_32.3 [symbolic = %.loc10_32.2 (constants.%.1ce700.2)] // CHECK:STDOUT: %self.param: @Class.GetValue.%Class (%Class) = value_param call_param0 // CHECK:STDOUT: %.loc10_21.1: type = splice_block %Self.ref [symbolic = %Class (constants.%Class)] { -// CHECK:STDOUT: %.loc10_21.2: type = specific_constant constants.%Class, @Class(constants.%T.f49) [symbolic = %Class (constants.%Class)] +// CHECK:STDOUT: %.loc10_21.2: type = specific_constant constants.%Class, @Class(constants.%T.f84) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc10_21.2 [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: @Class.GetValue.%Class (%Class) = value_binding self, %self.param @@ -182,58 +182,58 @@ class Declaration(T:! type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Class.GetAddr(@Class.%T.loc5_14.2: %Copy.type) { -// CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.f49)] +// CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.f84)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %pattern_type.loc6_22: type = pattern_type %Class [symbolic = %pattern_type.loc6_22 (constants.%pattern_type.16a)] +// CHECK:STDOUT: %pattern_type.loc6_22: type = pattern_type %Class [symbolic = %pattern_type.loc6_22 (constants.%pattern_type.e18)] // CHECK:STDOUT: %T.as_type.loc6_36.1: type = facet_access_type %T [symbolic = %T.as_type.loc6_36.1 (constants.%T.as_type)] -// CHECK:STDOUT: %ptr.loc6_36.1: type = ptr_type %T.as_type.loc6_36.1 [symbolic = %ptr.loc6_36.1 (constants.%ptr.a3f)] -// CHECK:STDOUT: %.loc6_36.1: Core.Form = init_form %ptr.loc6_36.1 [symbolic = %.loc6_36.1 (constants.%.0e7)] -// CHECK:STDOUT: %pattern_type.loc6_36: type = pattern_type %ptr.loc6_36.1 [symbolic = %pattern_type.loc6_36 (constants.%pattern_type.eec)] +// CHECK:STDOUT: %ptr.loc6_36.1: type = ptr_type %T.as_type.loc6_36.1 [symbolic = %ptr.loc6_36.1 (constants.%ptr.215)] +// CHECK:STDOUT: %.loc6_36.1: Core.Form = init_form %ptr.loc6_36.1 [symbolic = %.loc6_36.1 (constants.%.4fb)] +// CHECK:STDOUT: %pattern_type.loc6_36: type = pattern_type %ptr.loc6_36.1 [symbolic = %pattern_type.loc6_36 (constants.%pattern_type.d5b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_22: = require_complete_type %Class [symbolic = %require_complete.loc6_22 (constants.%require_complete.28e)] -// CHECK:STDOUT: %require_complete.loc6_32: = require_complete_type %ptr.loc6_36.1 [symbolic = %require_complete.loc6_32 (constants.%require_complete.040)] +// CHECK:STDOUT: %require_complete.loc6_22: = require_complete_type %Class [symbolic = %require_complete.loc6_22 (constants.%require_complete.1dd)] +// CHECK:STDOUT: %require_complete.loc6_32: = require_complete_type %ptr.loc6_36.1 [symbolic = %require_complete.loc6_32 (constants.%require_complete.94b)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc6_36.1 [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %.loc7_12.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.loc6_36.1) [symbolic = %.loc7_12.1 (constants.%.7ac)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc6_36.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.fd9)] +// CHECK:STDOUT: %.loc7_12.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.loc6_36.1) [symbolic = %.loc7_12.1 (constants.%.a33)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc6_36.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.cf6)] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc6_36.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.4e8)] -// CHECK:STDOUT: %.loc7_12.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc7_12.2 (constants.%.93e)] -// CHECK:STDOUT: %impl.elem0.loc7_12.2: @Class.GetAddr.%.loc7_12.2 (%.93e) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.d58)] -// CHECK:STDOUT: %specific_impl_fn.loc7_12.2: = specific_impl_function %impl.elem0.loc7_12.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.436)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.6e0)] +// CHECK:STDOUT: %.loc7_12.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc7_12.2 (constants.%.45d)] +// CHECK:STDOUT: %impl.elem0.loc7_12.2: @Class.GetAddr.%.loc7_12.2 (%.45d) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.c5d)] +// CHECK:STDOUT: %specific_impl_fn.loc7_12.2: = specific_impl_function %impl.elem0.loc7_12.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.5cf)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: ref @Class.GetAddr.%Class (%Class)) -> out %return.param: @Class.GetAddr.%ptr.loc6_36.1 (%ptr.a3f) { +// CHECK:STDOUT: fn(%self.param: ref @Class.GetAddr.%Class (%Class)) -> out %return.param: @Class.GetAddr.%ptr.loc6_36.1 (%ptr.215) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: ref @Class.GetAddr.%Class (%Class) = name_ref self, %self // CHECK:STDOUT: %k.ref: @Class.GetAddr.%Class.elem (%Class.elem) = name_ref k, @Class.%.loc14 [concrete = @Class.%.loc14] // CHECK:STDOUT: %.loc7_17: ref @Class.GetAddr.%T.as_type.loc6_36.1 (%T.as_type) = class_element_access %self.ref, element0 -// CHECK:STDOUT: %addr: @Class.GetAddr.%ptr.loc6_36.1 (%ptr.a3f) = addr_of %.loc7_17 -// CHECK:STDOUT: %impl.elem0.loc7_12.1: @Class.GetAddr.%.loc7_12.2 (%.93e) = impl_witness_access constants.%Copy.lookup_impl_witness.fd9, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.d58)] +// CHECK:STDOUT: %addr: @Class.GetAddr.%ptr.loc6_36.1 (%ptr.215) = addr_of %.loc7_17 +// CHECK:STDOUT: %impl.elem0.loc7_12.1: @Class.GetAddr.%.loc7_12.2 (%.45d) = impl_witness_access constants.%Copy.lookup_impl_witness.cf6, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.c5d)] // CHECK:STDOUT: %bound_method.loc7_12.1: = bound_method %addr, %impl.elem0.loc7_12.1 -// CHECK:STDOUT: %specific_impl_fn.loc7_12.1: = specific_impl_function %impl.elem0.loc7_12.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.436)] +// CHECK:STDOUT: %specific_impl_fn.loc7_12.1: = specific_impl_function %impl.elem0.loc7_12.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.5cf)] // CHECK:STDOUT: %bound_method.loc7_12.2: = bound_method %addr, %specific_impl_fn.loc7_12.1 -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.GetAddr.%ptr.loc6_36.1 (%ptr.a3f) = call %bound_method.loc7_12.2(%addr) +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.GetAddr.%ptr.loc6_36.1 (%ptr.215) = call %bound_method.loc7_12.2(%addr) // CHECK:STDOUT: return %Copy.WithSelf.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Class.GetValue(@Class.%T.loc5_14.2: %Copy.type) { -// CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.f49)] +// CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.f84)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %pattern_type.loc10_19: type = pattern_type %Class [symbolic = %pattern_type.loc10_19 (constants.%pattern_type.16a)] +// CHECK:STDOUT: %pattern_type.loc10_19: type = pattern_type %Class [symbolic = %pattern_type.loc10_19 (constants.%pattern_type.e18)] // CHECK:STDOUT: %T.as_type.loc10_32.1: type = facet_access_type %T [symbolic = %T.as_type.loc10_32.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc10_32.2: Core.Form = init_form %T.as_type.loc10_32.1 [symbolic = %.loc10_32.2 (constants.%.dedae6.2)] -// CHECK:STDOUT: %pattern_type.loc10_32: type = pattern_type %T.as_type.loc10_32.1 [symbolic = %pattern_type.loc10_32 (constants.%pattern_type.c0fdca.2)] +// CHECK:STDOUT: %.loc10_32.2: Core.Form = init_form %T.as_type.loc10_32.1 [symbolic = %.loc10_32.2 (constants.%.1ce700.2)] +// CHECK:STDOUT: %pattern_type.loc10_32: type = pattern_type %T.as_type.loc10_32.1 [symbolic = %pattern_type.loc10_32 (constants.%pattern_type.2c66b4.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Class [symbolic = %require_complete.loc10 (constants.%require_complete.28e)] +// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Class [symbolic = %require_complete.loc10 (constants.%require_complete.1dd)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc10_32.1 [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %require_complete.loc11: = require_complete_type %T.as_type.loc10_32.1 [symbolic = %require_complete.loc11 (constants.%require_complete.77e)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.2)] -// CHECK:STDOUT: %.loc11_16.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc11_16.3 (constants.%.e16)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2dd)] -// CHECK:STDOUT: %impl.elem0.loc11_16.2: @Class.GetValue.%.loc11_16.3 (%.e16) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.41e)] -// CHECK:STDOUT: %specific_impl_fn.loc11_16.2: = specific_impl_function %impl.elem0.loc11_16.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %require_complete.loc11: = require_complete_type %T.as_type.loc10_32.1 [symbolic = %require_complete.loc11 (constants.%require_complete.d83)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.2)] +// CHECK:STDOUT: %.loc11_16.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc11_16.3 (constants.%.c29)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c)] +// CHECK:STDOUT: %impl.elem0.loc11_16.2: @Class.GetValue.%.loc11_16.3 (%.c29) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.bd2)] +// CHECK:STDOUT: %specific_impl_fn.loc11_16.2: = specific_impl_function %impl.elem0.loc11_16.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @Class.GetValue.%Class (%Class)) -> out %return.param: @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) { // CHECK:STDOUT: !entry: @@ -241,9 +241,9 @@ class Declaration(T:! type); // CHECK:STDOUT: %k.ref: @Class.GetValue.%Class.elem (%Class.elem) = name_ref k, @Class.%.loc14 [concrete = @Class.%.loc14] // CHECK:STDOUT: %.loc11_16.1: ref @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc11_16.2: @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) = acquire_value %.loc11_16.1 -// CHECK:STDOUT: %impl.elem0.loc11_16.1: @Class.GetValue.%.loc11_16.3 (%.e16) = impl_witness_access constants.%Copy.lookup_impl_witness.2dd, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.41e)] +// CHECK:STDOUT: %impl.elem0.loc11_16.1: @Class.GetValue.%.loc11_16.3 (%.c29) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.bd2)] // CHECK:STDOUT: %bound_method.loc11_16.1: = bound_method %.loc11_16.2, %impl.elem0.loc11_16.1 -// CHECK:STDOUT: %specific_impl_fn.loc11_16.1: = specific_impl_function %impl.elem0.loc11_16.1, @Copy.WithSelf.Op(constants.%T.f49) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %specific_impl_fn.loc11_16.1: = specific_impl_function %impl.elem0.loc11_16.1, @Copy.WithSelf.Op(constants.%T.f84) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: %bound_method.loc11_16.2: = bound_method %.loc11_16.2, %specific_impl_fn.loc11_16.1 // CHECK:STDOUT: %.loc10_32.1: ref @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) = splice_block %return.param {} // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) to %.loc10_32.1 = call %bound_method.loc11_16.2(%.loc11_16.2) @@ -251,8 +251,8 @@ class Declaration(T:! type); // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%T.f49) { -// CHECK:STDOUT: %T.loc5_14.1 => constants.%T.f49 +// CHECK:STDOUT: specific @Class(constants.%T.f84) { +// CHECK:STDOUT: %T.loc5_14.1 => constants.%T.f84 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Class.GetAddr.type => constants.%Class.GetAddr.type @@ -260,30 +260,30 @@ class Declaration(T:! type); // CHECK:STDOUT: %Class.GetValue.type => constants.%Class.GetValue.type // CHECK:STDOUT: %Class.GetValue => constants.%Class.GetValue // CHECK:STDOUT: %T.as_type => constants.%T.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.77e +// CHECK:STDOUT: %require_complete => constants.%require_complete.d83 // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %Class.elem => constants.%Class.elem // CHECK:STDOUT: %struct_type.k => constants.%struct_type.k // CHECK:STDOUT: %complete_type.loc15_1.2 => constants.%complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class.GetAddr(constants.%T.f49) { -// CHECK:STDOUT: %T => constants.%T.f49 +// CHECK:STDOUT: specific @Class.GetAddr(constants.%T.f84) { +// CHECK:STDOUT: %T => constants.%T.f84 // CHECK:STDOUT: %Class => constants.%Class -// CHECK:STDOUT: %pattern_type.loc6_22 => constants.%pattern_type.16a +// CHECK:STDOUT: %pattern_type.loc6_22 => constants.%pattern_type.e18 // CHECK:STDOUT: %T.as_type.loc6_36.1 => constants.%T.as_type -// CHECK:STDOUT: %ptr.loc6_36.1 => constants.%ptr.a3f -// CHECK:STDOUT: %.loc6_36.1 => constants.%.0e7 -// CHECK:STDOUT: %pattern_type.loc6_36 => constants.%pattern_type.eec +// CHECK:STDOUT: %ptr.loc6_36.1 => constants.%ptr.215 +// CHECK:STDOUT: %.loc6_36.1 => constants.%.4fb +// CHECK:STDOUT: %pattern_type.loc6_36 => constants.%pattern_type.d5b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class.GetValue(constants.%T.f49) { -// CHECK:STDOUT: %T => constants.%T.f49 +// CHECK:STDOUT: specific @Class.GetValue(constants.%T.f84) { +// CHECK:STDOUT: %T => constants.%T.f84 // CHECK:STDOUT: %Class => constants.%Class -// CHECK:STDOUT: %pattern_type.loc10_19 => constants.%pattern_type.16a +// CHECK:STDOUT: %pattern_type.loc10_19 => constants.%pattern_type.e18 // CHECK:STDOUT: %T.as_type.loc10_32.1 => constants.%T.as_type -// CHECK:STDOUT: %.loc10_32.2 => constants.%.dedae6.2 -// CHECK:STDOUT: %pattern_type.loc10_32 => constants.%pattern_type.c0fdca.2 +// CHECK:STDOUT: %.loc10_32.2 => constants.%.1ce700.2 +// CHECK:STDOUT: %pattern_type.loc10_32 => constants.%pattern_type.2c66b4.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Declaration(constants.%T.67d) { diff --git a/toolchain/check/testdata/class/generic/call.carbon b/toolchain/check/testdata/class/generic/call.carbon index d83c7b4469c7..9e614e8fc40e 100644 --- a/toolchain/check/testdata/class/generic/call.carbon +++ b/toolchain/check/testdata/class/generic/call.carbon @@ -102,53 +102,53 @@ class Outer(T:! type) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %N.96a: %i32 = symbolic_binding N, 1 [symbolic] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %N.ce9: %i32 = symbolic_binding N, 1 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [concrete] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] -// CHECK:STDOUT: %Class.3fe: type = class_type @Class, @Class(%T.67d, %N.96a) [symbolic] +// CHECK:STDOUT: %Class.2bd: type = class_type @Class, @Class(%T.67d, %N.ce9) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e3e: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_5.354: %i32 = int_value 5 [concrete] -// CHECK:STDOUT: %Class.c83: type = class_type @Class, @Class(%ptr.847, %int_5.354) [concrete] -// CHECK:STDOUT: %pattern_type.0c0: type = pattern_type %Class.c83 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %Class.4f7: type = class_type @Class, @Class(%ptr.d08, %int_5.eef) [concrete] +// CHECK:STDOUT: %pattern_type.081: type = pattern_type %Class.4f7 [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.916: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%Class.c83) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.dbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Class.c83) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.46b: %T.as.DefaultOrUnformed.impl.Op.type.dbe = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.377: %DefaultOrUnformed.type = facet_value %Class.c83, (%DefaultOrUnformed.impl_witness.916) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.9d0: = specific_function %T.as.DefaultOrUnformed.impl.Op.46b, @T.as.DefaultOrUnformed.impl.Op(%Class.c83) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.d52: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%Class.4f7) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.cd1: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Class.4f7) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.bc2: %T.as.DefaultOrUnformed.impl.Op.type.cd1 = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.912: %DefaultOrUnformed.type = facet_value %Class.4f7, (%DefaultOrUnformed.impl_witness.d52) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.5c2: = specific_function %T.as.DefaultOrUnformed.impl.Op.bc2, @T.as.DefaultOrUnformed.impl.Op(%Class.4f7) [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %Class.214: type = class_type @Class, @Class(%empty_tuple.type, %int_0.62d) [concrete] -// CHECK:STDOUT: %pattern_type.f93: type = pattern_type %Class.214 [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.358: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%Class.214) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.379: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Class.214) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.11e: %T.as.DefaultOrUnformed.impl.Op.type.379 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.863: %DefaultOrUnformed.type = facet_value %Class.214, (%DefaultOrUnformed.impl_witness.358) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.30c: = specific_function %T.as.DefaultOrUnformed.impl.Op.11e, @T.as.DefaultOrUnformed.impl.Op(%Class.214) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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: %Class.958: type = class_type @Class, @Class(%empty_tuple.type, %int_0.3c0) [concrete] +// CHECK:STDOUT: %pattern_type.a95: type = pattern_type %Class.958 [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.57a: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%Class.958) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.a07: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Class.958) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.7eb: %T.as.DefaultOrUnformed.impl.Op.type.a07 = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.1b4: %DefaultOrUnformed.type = facet_value %Class.958, (%DefaultOrUnformed.impl_witness.57a) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.894: = specific_function %T.as.DefaultOrUnformed.impl.Op.7eb, @T.as.DefaultOrUnformed.impl.Op(%Class.958) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -160,12 +160,12 @@ class Outer(T:! type) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -178,7 +178,7 @@ class Outer(T:! type) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %N.patt: %pattern_type.104 = symbolic_binding_pattern N, 1 [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.6b6 = symbolic_binding_pattern N, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_17.1: type = splice_block %.loc4_17.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc4_14: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -189,53 +189,53 @@ class Outer(T:! type) { // CHECK:STDOUT: %.Self.loc4_24: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_24.2: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.96a)] +// CHECK:STDOUT: %N.loc4_24.2: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.ce9)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.0c0 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.0c0 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.081 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.081 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %Class.c83 = var %a.var_patt [concrete] -// CHECK:STDOUT: %.loc6_21.1: type = splice_block %Class.loc6 [concrete = constants.%Class.c83] { +// CHECK:STDOUT: %a.var: ref %Class.4f7 = var %a.var_patt [concrete] +// CHECK:STDOUT: %.loc6_21.1: type = splice_block %Class.loc6 [concrete = constants.%Class.4f7] { // CHECK:STDOUT: %Class.ref.loc6: %Class.type = name_ref Class, %Class.decl [concrete = constants.%Class.generic] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %i32 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr: type = ptr_type %i32 [concrete = constants.%ptr.d08] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0.loc6: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc6_21.1: = bound_method %int_5, %impl.elem0.loc6 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c] +// CHECK:STDOUT: %impl.elem0.loc6: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc6_21.1: = bound_method %int_5, %impl.elem0.loc6 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f6c] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_21.2: = bound_method %int_5, %specific_fn.loc6 [concrete = constants.%bound_method.e3e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %i32 = call %bound_method.loc6_21.2(%int_5) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc6_21.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc6_21.3: %i32 = converted %int_5, %.loc6_21.2 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %Class.loc6: type = class_type @Class, @Class(constants.%ptr.847, constants.%int_5.354) [concrete = constants.%Class.c83] +// CHECK:STDOUT: %bound_method.loc6_21.2: = bound_method %int_5, %specific_fn.loc6 [concrete = constants.%bound_method.c9d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %i32 = call %bound_method.loc6_21.2(%int_5) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc6_21.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc6_21.3: %i32 = converted %int_5, %.loc6_21.2 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %Class.loc6: type = class_type @Class, @Class(constants.%ptr.d08, constants.%int_5.eef) [concrete = constants.%Class.4f7] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %Class.c83 = ref_binding a, %a.var [concrete = %a.var] +// CHECK:STDOUT: %a: ref %Class.4f7 = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f93 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.f93 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.a95 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.a95 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.var: ref %Class.214 = var %b.var_patt [concrete] -// CHECK:STDOUT: %.loc9_19.1: type = splice_block %Class.loc9 [concrete = constants.%Class.214] { +// CHECK:STDOUT: %b.var: ref %Class.958 = var %b.var_patt [concrete] +// CHECK:STDOUT: %.loc9_19.1: type = splice_block %Class.loc9 [concrete = constants.%Class.958] { // CHECK:STDOUT: %Class.ref.loc9: %Class.type = name_ref Class, %Class.decl [concrete = constants.%Class.generic] // CHECK:STDOUT: %.loc9_15: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc9_19.2: type = converted %.loc9_15, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %impl.elem0.loc9: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_19.1: = bound_method %int_0, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc9: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_19.1: = bound_method %int_0, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_19.2: = bound_method %int_0, %specific_fn.loc9 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_19.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc9_19.3: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc9_19.4: %i32 = converted %int_0, %.loc9_19.3 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %Class.loc9: type = class_type @Class, @Class(constants.%empty_tuple.type, constants.%int_0.62d) [concrete = constants.%Class.214] +// CHECK:STDOUT: %bound_method.loc9_19.2: = bound_method %int_0, %specific_fn.loc9 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_19.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc9_19.3: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc9_19.4: %i32 = converted %int_0, %.loc9_19.3 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %Class.loc9: type = class_type @Class, @Class(constants.%empty_tuple.type, constants.%int_0.3c0) [concrete = constants.%Class.958] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: ref %Class.214 = ref_binding b, %b.var [concrete = %b.var] +// CHECK:STDOUT: %b: ref %Class.958 = ref_binding b, %b.var [concrete = %b.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Class(%T.loc4_14.2: type, %N.loc4_24.2: %i32) { // CHECK:STDOUT: %T.loc4_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T.67d)] -// CHECK:STDOUT: %N.loc4_24.1: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.96a)] +// CHECK:STDOUT: %N.loc4_24.1: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.ce9)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -244,46 +244,46 @@ class Outer(T:! type) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Class.3fe +// CHECK:STDOUT: .Self = constants.%Class.2bd // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6: %DefaultOrUnformed.type = facet_value constants.%Class.c83, (constants.%DefaultOrUnformed.impl_witness.916) [concrete = constants.%DefaultOrUnformed.facet.377] -// CHECK:STDOUT: %.loc6_22.1: %DefaultOrUnformed.type = converted constants.%Class.c83, %DefaultOrUnformed.facet.loc6 [concrete = constants.%DefaultOrUnformed.facet.377] -// CHECK:STDOUT: %as_type.loc6: type = facet_access_type %.loc6_22.1 [concrete = constants.%Class.c83] -// CHECK:STDOUT: %.loc6_22.2: type = converted %.loc6_22.1, %as_type.loc6 [concrete = constants.%Class.c83] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.1: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.46b, @T.as.DefaultOrUnformed.impl.Op(constants.%Class.c83) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn.9d0] -// CHECK:STDOUT: %.loc6_1: ref %Class.c83 = splice_block file.%a.var [concrete = file.%a.var] {} -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc6: init %Class.c83 to %.loc6_1 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.1() +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6: %DefaultOrUnformed.type = facet_value constants.%Class.4f7, (constants.%DefaultOrUnformed.impl_witness.d52) [concrete = constants.%DefaultOrUnformed.facet.912] +// CHECK:STDOUT: %.loc6_22.1: %DefaultOrUnformed.type = converted constants.%Class.4f7, %DefaultOrUnformed.facet.loc6 [concrete = constants.%DefaultOrUnformed.facet.912] +// CHECK:STDOUT: %as_type.loc6: type = facet_access_type %.loc6_22.1 [concrete = constants.%Class.4f7] +// CHECK:STDOUT: %.loc6_22.2: type = converted %.loc6_22.1, %as_type.loc6 [concrete = constants.%Class.4f7] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.1: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.bc2, @T.as.DefaultOrUnformed.impl.Op(constants.%Class.4f7) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn.5c2] +// CHECK:STDOUT: %.loc6_1: ref %Class.4f7 = splice_block file.%a.var [concrete = file.%a.var] {} +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc6: init %Class.4f7 to %.loc6_1 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.1() // CHECK:STDOUT: assign file.%a.var, %T.as.DefaultOrUnformed.impl.Op.call.loc6 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc9: %DefaultOrUnformed.type = facet_value constants.%Class.214, (constants.%DefaultOrUnformed.impl_witness.358) [concrete = constants.%DefaultOrUnformed.facet.863] -// CHECK:STDOUT: %.loc9_20.1: %DefaultOrUnformed.type = converted constants.%Class.214, %DefaultOrUnformed.facet.loc9 [concrete = constants.%DefaultOrUnformed.facet.863] -// CHECK:STDOUT: %as_type.loc9: type = facet_access_type %.loc9_20.1 [concrete = constants.%Class.214] -// CHECK:STDOUT: %.loc9_20.2: type = converted %.loc9_20.1, %as_type.loc9 [concrete = constants.%Class.214] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.2: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.11e, @T.as.DefaultOrUnformed.impl.Op(constants.%Class.214) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn.30c] -// CHECK:STDOUT: %.loc9_1: ref %Class.214 = splice_block file.%b.var [concrete = file.%b.var] {} -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc9: init %Class.214 to %.loc9_1 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.2() +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc9: %DefaultOrUnformed.type = facet_value constants.%Class.958, (constants.%DefaultOrUnformed.impl_witness.57a) [concrete = constants.%DefaultOrUnformed.facet.1b4] +// CHECK:STDOUT: %.loc9_20.1: %DefaultOrUnformed.type = converted constants.%Class.958, %DefaultOrUnformed.facet.loc9 [concrete = constants.%DefaultOrUnformed.facet.1b4] +// CHECK:STDOUT: %as_type.loc9: type = facet_access_type %.loc9_20.1 [concrete = constants.%Class.958] +// CHECK:STDOUT: %.loc9_20.2: type = converted %.loc9_20.1, %as_type.loc9 [concrete = constants.%Class.958] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.2: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.7eb, @T.as.DefaultOrUnformed.impl.Op(constants.%Class.958) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn.894] +// CHECK:STDOUT: %.loc9_1: ref %Class.958 = splice_block file.%b.var [concrete = file.%b.var] {} +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc9: init %Class.958 to %.loc9_1 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.2() // CHECK:STDOUT: assign file.%b.var, %T.as.DefaultOrUnformed.impl.Op.call.loc9 // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%T.67d, constants.%N.96a) { +// CHECK:STDOUT: specific @Class(constants.%T.67d, constants.%N.ce9) { // CHECK:STDOUT: %T.loc4_14.1 => constants.%T.67d -// CHECK:STDOUT: %N.loc4_24.1 => constants.%N.96a +// CHECK:STDOUT: %N.loc4_24.1 => constants.%N.ce9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%ptr.847, constants.%int_5.354) { -// CHECK:STDOUT: %T.loc4_14.1 => constants.%ptr.847 -// CHECK:STDOUT: %N.loc4_24.1 => constants.%int_5.354 +// CHECK:STDOUT: specific @Class(constants.%ptr.d08, constants.%int_5.eef) { +// CHECK:STDOUT: %T.loc4_14.1 => constants.%ptr.d08 +// CHECK:STDOUT: %N.loc4_24.1 => constants.%int_5.eef // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%empty_tuple.type, constants.%int_0.62d) { +// CHECK:STDOUT: specific @Class(constants.%empty_tuple.type, constants.%int_0.3c0) { // CHECK:STDOUT: %T.loc4_14.1 => constants.%empty_tuple.type -// CHECK:STDOUT: %N.loc4_24.1 => constants.%int_0.62d +// CHECK:STDOUT: %N.loc4_24.1 => constants.%int_0.3c0 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -299,11 +299,11 @@ class Outer(T:! type) { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %N.96a: %i32 = symbolic_binding N, 1 [symbolic] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %N.ce9: %i32 = symbolic_binding N, 1 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [concrete] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T, %N.96a) [symbolic] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T, %N.ce9) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %i32 [concrete] @@ -327,7 +327,7 @@ class Outer(T:! type) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %N.patt: %pattern_type.104 = symbolic_binding_pattern N, 1 [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.6b6 = symbolic_binding_pattern N, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_17.1: type = splice_block %.loc4_17.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc4_14: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -338,7 +338,7 @@ class Outer(T:! type) { // CHECK:STDOUT: %.Self.loc4_24: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_24.2: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.96a)] +// CHECK:STDOUT: %N.loc4_24.2: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.ce9)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: = ref_binding_pattern a [concrete] @@ -355,7 +355,7 @@ class Outer(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic class @Class(%T.loc4_14.2: type, %N.loc4_24.2: %i32) { // CHECK:STDOUT: %T.loc4_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T)] -// CHECK:STDOUT: %N.loc4_24.1: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.96a)] +// CHECK:STDOUT: %N.loc4_24.1: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.ce9)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -374,9 +374,9 @@ class Outer(T:! type) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%T, constants.%N.96a) { +// CHECK:STDOUT: specific @Class(constants.%T, constants.%N.ce9) { // CHECK:STDOUT: %T.loc4_14.1 => constants.%T -// CHECK:STDOUT: %N.loc4_24.1 => constants.%N.96a +// CHECK:STDOUT: %N.loc4_24.1 => constants.%N.ce9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_too_many.carbon @@ -390,11 +390,11 @@ class Outer(T:! type) { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %N.96a: %i32 = symbolic_binding N, 1 [symbolic] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %N.ce9: %i32 = symbolic_binding N, 1 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [concrete] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T, %N.96a) [symbolic] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T, %N.ce9) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %i32 [concrete] @@ -420,7 +420,7 @@ class Outer(T:! type) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %N.patt: %pattern_type.104 = symbolic_binding_pattern N, 1 [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.6b6 = symbolic_binding_pattern N, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_17.1: type = splice_block %.loc4_17.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc4_14: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -431,7 +431,7 @@ class Outer(T:! type) { // CHECK:STDOUT: %.Self.loc4_24: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_24.2: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.96a)] +// CHECK:STDOUT: %N.loc4_24.2: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.ce9)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: = ref_binding_pattern a [concrete] @@ -450,7 +450,7 @@ class Outer(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic class @Class(%T.loc4_14.2: type, %N.loc4_24.2: %i32) { // CHECK:STDOUT: %T.loc4_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T)] -// CHECK:STDOUT: %N.loc4_24.1: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.96a)] +// CHECK:STDOUT: %N.loc4_24.1: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.ce9)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -469,9 +469,9 @@ class Outer(T:! type) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%T, constants.%N.96a) { +// CHECK:STDOUT: specific @Class(constants.%T, constants.%N.ce9) { // CHECK:STDOUT: %T.loc4_14.1 => constants.%T -// CHECK:STDOUT: %N.loc4_24.1 => constants.%N.96a +// CHECK:STDOUT: %N.loc4_24.1 => constants.%N.ce9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_no_conversion.carbon @@ -485,17 +485,17 @@ class Outer(T:! type) { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %N.96a: %i32 = symbolic_binding N, 1 [symbolic] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %N.ce9: %i32 = symbolic_binding N, 1 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [concrete] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T, %N.96a) [symbolic] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T, %N.ce9) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -506,7 +506,7 @@ class Outer(T:! type) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -518,7 +518,7 @@ class Outer(T:! type) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %N.patt: %pattern_type.104 = symbolic_binding_pattern N, 1 [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.6b6 = symbolic_binding_pattern N, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_17.1: type = splice_block %.loc4_17.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc4_14: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -529,7 +529,7 @@ class Outer(T:! type) { // CHECK:STDOUT: %.Self.loc4_24: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_24.2: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.96a)] +// CHECK:STDOUT: %N.loc4_24.2: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.ce9)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: = ref_binding_pattern a [concrete] @@ -548,7 +548,7 @@ class Outer(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic class @Class(%T.loc4_14.2: type, %N.loc4_24.2: %i32) { // CHECK:STDOUT: %T.loc4_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T)] -// CHECK:STDOUT: %N.loc4_24.1: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.96a)] +// CHECK:STDOUT: %N.loc4_24.1: %i32 = symbolic_binding N, 1 [symbolic = %N.loc4_24.1 (constants.%N.ce9)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -567,9 +567,9 @@ class Outer(T:! type) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%T, constants.%N.96a) { +// CHECK:STDOUT: specific @Class(constants.%T, constants.%N.ce9) { // CHECK:STDOUT: %T.loc4_14.1 => constants.%T -// CHECK:STDOUT: %N.loc4_24.1 => constants.%N.96a +// CHECK:STDOUT: %N.loc4_24.1 => constants.%N.ce9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- call_in_nested_return_type.carbon @@ -581,50 +581,50 @@ class Outer(T:! type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Outer.type: type = generic_class_type @Outer [concrete] // CHECK:STDOUT: %Outer.generic: %Outer.type = struct_value () [concrete] -// CHECK:STDOUT: %Outer.3b5: type = class_type @Outer, @Outer(%T) [symbolic] +// CHECK:STDOUT: %Outer.dee: type = class_type @Outer, @Outer(%T) [symbolic] // CHECK:STDOUT: %U: type = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %Inner.type.e77: type = generic_class_type @Inner, @Outer(%T) [symbolic] -// CHECK:STDOUT: %Inner.generic.92c: %Inner.type.e77 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.6c4: type = class_type @Inner, @Inner(%T, %U) [symbolic] -// CHECK:STDOUT: %.a27: Core.Form = init_form %Outer.3b5 [symbolic] -// CHECK:STDOUT: %pattern_type.159: type = pattern_type %Outer.3b5 [symbolic] -// CHECK:STDOUT: %Inner.A.type.24f: type = fn_type @Inner.A, @Inner(%T, %U) [symbolic] -// CHECK:STDOUT: %Inner.A.54a: %Inner.A.type.24f = struct_value () [symbolic] -// CHECK:STDOUT: %Outer.ef0: type = class_type @Outer, @Outer(%U) [symbolic] -// CHECK:STDOUT: %.709: Core.Form = init_form %Outer.ef0 [symbolic] -// CHECK:STDOUT: %pattern_type.e97: type = pattern_type %Outer.ef0 [symbolic] -// CHECK:STDOUT: %Inner.B.type.ec0: type = fn_type @Inner.B, @Inner(%T, %U) [symbolic] -// CHECK:STDOUT: %Inner.B.af7: %Inner.B.type.ec0 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.36f: type = class_type @Inner, @Inner(%T, %T) [symbolic] -// CHECK:STDOUT: %.188: Core.Form = init_form %Inner.36f [symbolic] -// CHECK:STDOUT: %pattern_type.1b2: type = pattern_type %Inner.36f [symbolic] -// CHECK:STDOUT: %Inner.C.type.9fc: type = fn_type @Inner.C, @Inner(%T, %U) [symbolic] -// CHECK:STDOUT: %Inner.C.ce9: %Inner.C.type.9fc = struct_value () [symbolic] -// CHECK:STDOUT: %.f86: Core.Form = init_form %Inner.6c4 [symbolic] -// CHECK:STDOUT: %pattern_type.c25: type = pattern_type %Inner.6c4 [symbolic] -// CHECK:STDOUT: %Inner.D.type.6aa: type = fn_type @Inner.D, @Inner(%T, %U) [symbolic] -// CHECK:STDOUT: %Inner.D.aa1: %Inner.D.type.6aa = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.type.8f7: type = generic_class_type @Inner, @Outer(%T) [symbolic] +// CHECK:STDOUT: %Inner.generic.b3a: %Inner.type.8f7 = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.34b: type = class_type @Inner, @Inner(%T, %U) [symbolic] +// CHECK:STDOUT: %.156: Core.Form = init_form %Outer.dee [symbolic] +// CHECK:STDOUT: %pattern_type.dec: type = pattern_type %Outer.dee [symbolic] +// CHECK:STDOUT: %Inner.A.type.b38: type = fn_type @Inner.A, @Inner(%T, %U) [symbolic] +// CHECK:STDOUT: %Inner.A.456: %Inner.A.type.b38 = struct_value () [symbolic] +// CHECK:STDOUT: %Outer.20b: type = class_type @Outer, @Outer(%U) [symbolic] +// CHECK:STDOUT: %.aaf: Core.Form = init_form %Outer.20b [symbolic] +// CHECK:STDOUT: %pattern_type.a71: type = pattern_type %Outer.20b [symbolic] +// CHECK:STDOUT: %Inner.B.type.374: type = fn_type @Inner.B, @Inner(%T, %U) [symbolic] +// CHECK:STDOUT: %Inner.B.cc2: %Inner.B.type.374 = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.61d: type = class_type @Inner, @Inner(%T, %T) [symbolic] +// CHECK:STDOUT: %.2f2: Core.Form = init_form %Inner.61d [symbolic] +// CHECK:STDOUT: %pattern_type.5b1: type = pattern_type %Inner.61d [symbolic] +// CHECK:STDOUT: %Inner.C.type.5dd: type = fn_type @Inner.C, @Inner(%T, %U) [symbolic] +// CHECK:STDOUT: %Inner.C.5e1: %Inner.C.type.5dd = struct_value () [symbolic] +// CHECK:STDOUT: %.556: Core.Form = init_form %Inner.34b [symbolic] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %Inner.34b [symbolic] +// CHECK:STDOUT: %Inner.D.type.faa: type = fn_type @Inner.D, @Inner(%T, %U) [symbolic] +// CHECK:STDOUT: %Inner.D.039: %Inner.D.type.faa = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %require_complete.f6c: = require_complete_type %Outer.3b5 [symbolic] +// CHECK:STDOUT: %require_complete.dae: = require_complete_type %Outer.dee [symbolic] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %Outer.val.c83: %Outer.3b5 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.type.e6e: type = generic_class_type @Inner, @Outer(%U) [symbolic] -// CHECK:STDOUT: %Inner.generic.635: %Inner.type.e6e = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.d76: = require_complete_type %Outer.ef0 [symbolic] -// CHECK:STDOUT: %Outer.val.2ba: %Outer.ef0 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.A.type.96a: type = fn_type @Inner.A, @Inner(%T, %T) [symbolic] -// CHECK:STDOUT: %Inner.A.ffa: %Inner.A.type.96a = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.B.type.7a7: type = fn_type @Inner.B, @Inner(%T, %T) [symbolic] -// CHECK:STDOUT: %Inner.B.919: %Inner.B.type.7a7 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.C.type.072: type = fn_type @Inner.C, @Inner(%T, %T) [symbolic] -// CHECK:STDOUT: %Inner.C.857: %Inner.C.type.072 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.D.type.76e: type = fn_type @Inner.D, @Inner(%T, %T) [symbolic] -// CHECK:STDOUT: %Inner.D.44a: %Inner.D.type.76e = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.ec2: = require_complete_type %Inner.36f [symbolic] -// CHECK:STDOUT: %Inner.val.3d4: %Inner.36f = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.600: = require_complete_type %Inner.6c4 [symbolic] -// CHECK:STDOUT: %Inner.val.fa0: %Inner.6c4 = struct_value () [symbolic] +// CHECK:STDOUT: %Outer.val.1e6: %Outer.dee = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.type.1c5: type = generic_class_type @Inner, @Outer(%U) [symbolic] +// CHECK:STDOUT: %Inner.generic.8bb: %Inner.type.1c5 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.7da: = require_complete_type %Outer.20b [symbolic] +// CHECK:STDOUT: %Outer.val.8e5: %Outer.20b = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.A.type.6cc: type = fn_type @Inner.A, @Inner(%T, %T) [symbolic] +// CHECK:STDOUT: %Inner.A.0e7: %Inner.A.type.6cc = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.B.type.e01: type = fn_type @Inner.B, @Inner(%T, %T) [symbolic] +// CHECK:STDOUT: %Inner.B.020: %Inner.B.type.e01 = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.C.type.382: type = fn_type @Inner.C, @Inner(%T, %T) [symbolic] +// CHECK:STDOUT: %Inner.C.fa4: %Inner.C.type.382 = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.D.type.f65: type = fn_type @Inner.D, @Inner(%T, %T) [symbolic] +// CHECK:STDOUT: %Inner.D.9e2: %Inner.D.type.f65 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.25e: = require_complete_type %Inner.61d [symbolic] +// CHECK:STDOUT: %Inner.val.284: %Inner.61d = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.8ae: = require_complete_type %Inner.34b [symbolic] +// CHECK:STDOUT: %Inner.val.9fd: %Inner.34b = struct_value () [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -655,11 +655,11 @@ class Outer(T:! type) { // CHECK:STDOUT: %T.loc2_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc2_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc2_14.1) [symbolic = %Inner.type (constants.%Inner.type.e77)] -// CHECK:STDOUT: %Inner.generic: @Outer.%Inner.type (%Inner.type.e77) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.92c)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc2_14.1) [symbolic = %Inner.type (constants.%Inner.type.8f7)] +// CHECK:STDOUT: %Inner.generic: @Outer.%Inner.type (%Inner.type.8f7) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.b3a)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Inner.decl: @Outer.%Inner.type (%Inner.type.e77) = class_decl @Inner [symbolic = @Outer.%Inner.generic (constants.%Inner.generic.92c)] { +// CHECK:STDOUT: %Inner.decl: @Outer.%Inner.type (%Inner.type.8f7) = class_decl @Inner [symbolic = @Outer.%Inner.generic (constants.%Inner.generic.b3a)] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc3_19.1: type = splice_block %.loc3_19.2 [concrete = type] { @@ -672,7 +672,7 @@ class Outer(T:! type) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Outer.3b5 +// CHECK:STDOUT: .Self = constants.%Outer.dee // CHECK:STDOUT: .Inner = %Inner.decl // CHECK:STDOUT: .Outer = // CHECK:STDOUT: .T = @@ -684,67 +684,67 @@ class Outer(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Inner.A.type: type = fn_type @Inner.A, @Inner(%T, %U.loc3_16.1) [symbolic = %Inner.A.type (constants.%Inner.A.type.24f)] -// CHECK:STDOUT: %Inner.A: @Inner.%Inner.A.type (%Inner.A.type.24f) = struct_value () [symbolic = %Inner.A (constants.%Inner.A.54a)] -// CHECK:STDOUT: %Inner.B.type: type = fn_type @Inner.B, @Inner(%T, %U.loc3_16.1) [symbolic = %Inner.B.type (constants.%Inner.B.type.ec0)] -// CHECK:STDOUT: %Inner.B: @Inner.%Inner.B.type (%Inner.B.type.ec0) = struct_value () [symbolic = %Inner.B (constants.%Inner.B.af7)] -// CHECK:STDOUT: %Inner.C.type: type = fn_type @Inner.C, @Inner(%T, %U.loc3_16.1) [symbolic = %Inner.C.type (constants.%Inner.C.type.9fc)] -// CHECK:STDOUT: %Inner.C: @Inner.%Inner.C.type (%Inner.C.type.9fc) = struct_value () [symbolic = %Inner.C (constants.%Inner.C.ce9)] -// CHECK:STDOUT: %Inner.D.type: type = fn_type @Inner.D, @Inner(%T, %U.loc3_16.1) [symbolic = %Inner.D.type (constants.%Inner.D.type.6aa)] -// CHECK:STDOUT: %Inner.D: @Inner.%Inner.D.type (%Inner.D.type.6aa) = struct_value () [symbolic = %Inner.D (constants.%Inner.D.aa1)] +// CHECK:STDOUT: %Inner.A.type: type = fn_type @Inner.A, @Inner(%T, %U.loc3_16.1) [symbolic = %Inner.A.type (constants.%Inner.A.type.b38)] +// CHECK:STDOUT: %Inner.A: @Inner.%Inner.A.type (%Inner.A.type.b38) = struct_value () [symbolic = %Inner.A (constants.%Inner.A.456)] +// CHECK:STDOUT: %Inner.B.type: type = fn_type @Inner.B, @Inner(%T, %U.loc3_16.1) [symbolic = %Inner.B.type (constants.%Inner.B.type.374)] +// CHECK:STDOUT: %Inner.B: @Inner.%Inner.B.type (%Inner.B.type.374) = struct_value () [symbolic = %Inner.B (constants.%Inner.B.cc2)] +// CHECK:STDOUT: %Inner.C.type: type = fn_type @Inner.C, @Inner(%T, %U.loc3_16.1) [symbolic = %Inner.C.type (constants.%Inner.C.type.5dd)] +// CHECK:STDOUT: %Inner.C: @Inner.%Inner.C.type (%Inner.C.type.5dd) = struct_value () [symbolic = %Inner.C (constants.%Inner.C.5e1)] +// CHECK:STDOUT: %Inner.D.type: type = fn_type @Inner.D, @Inner(%T, %U.loc3_16.1) [symbolic = %Inner.D.type (constants.%Inner.D.type.faa)] +// CHECK:STDOUT: %Inner.D: @Inner.%Inner.D.type (%Inner.D.type.faa) = struct_value () [symbolic = %Inner.D (constants.%Inner.D.039)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Inner.A.decl: @Inner.%Inner.A.type (%Inner.A.type.24f) = fn_decl @Inner.A [symbolic = @Inner.%Inner.A (constants.%Inner.A.54a)] { -// CHECK:STDOUT: %return.param_patt: @Inner.A.%pattern_type (%pattern_type.159) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Inner.A.%pattern_type (%pattern_type.159) = return_slot_pattern %return.param_patt, %Outer.loc4_22.2 [concrete] +// CHECK:STDOUT: %Inner.A.decl: @Inner.%Inner.A.type (%Inner.A.type.b38) = fn_decl @Inner.A [symbolic = @Inner.%Inner.A (constants.%Inner.A.456)] { +// CHECK:STDOUT: %return.param_patt: @Inner.A.%pattern_type (%pattern_type.dec) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Inner.A.%pattern_type (%pattern_type.dec) = return_slot_pattern %return.param_patt, %Outer.loc4_22.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc2_14.2 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Outer.loc4_22.2: type = class_type @Outer, @Outer(constants.%T) [symbolic = %Outer.loc4_22.1 (constants.%Outer.3b5)] -// CHECK:STDOUT: %.loc4_22.2: Core.Form = init_form %Outer.loc4_22.2 [symbolic = %.loc4_22.1 (constants.%.a27)] -// CHECK:STDOUT: %return.param: ref @Inner.A.%Outer.loc4_22.1 (%Outer.3b5) = out_param call_param0 -// CHECK:STDOUT: %return: ref @Inner.A.%Outer.loc4_22.1 (%Outer.3b5) = return_slot %return.param +// CHECK:STDOUT: %Outer.loc4_22.2: type = class_type @Outer, @Outer(constants.%T) [symbolic = %Outer.loc4_22.1 (constants.%Outer.dee)] +// CHECK:STDOUT: %.loc4_22.2: Core.Form = init_form %Outer.loc4_22.2 [symbolic = %.loc4_22.1 (constants.%.156)] +// CHECK:STDOUT: %return.param: ref @Inner.A.%Outer.loc4_22.1 (%Outer.dee) = out_param call_param0 +// CHECK:STDOUT: %return: ref @Inner.A.%Outer.loc4_22.1 (%Outer.dee) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Inner.B.decl: @Inner.%Inner.B.type (%Inner.B.type.ec0) = fn_decl @Inner.B [symbolic = @Inner.%Inner.B (constants.%Inner.B.af7)] { -// CHECK:STDOUT: %return.param_patt: @Inner.B.%pattern_type (%pattern_type.e97) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Inner.B.%pattern_type (%pattern_type.e97) = return_slot_pattern %return.param_patt, %Outer.loc7_22.2 [concrete] +// CHECK:STDOUT: %Inner.B.decl: @Inner.%Inner.B.type (%Inner.B.type.374) = fn_decl @Inner.B [symbolic = @Inner.%Inner.B (constants.%Inner.B.cc2)] { +// CHECK:STDOUT: %return.param_patt: @Inner.B.%pattern_type (%pattern_type.a71) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Inner.B.%pattern_type (%pattern_type.a71) = return_slot_pattern %return.param_patt, %Outer.loc7_22.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %U.ref: type = name_ref U, @Inner.%U.loc3_16.2 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %Outer.loc7_22.2: type = class_type @Outer, @Outer(constants.%U) [symbolic = %Outer.loc7_22.1 (constants.%Outer.ef0)] -// CHECK:STDOUT: %.loc7_22.2: Core.Form = init_form %Outer.loc7_22.2 [symbolic = %.loc7_22.1 (constants.%.709)] -// CHECK:STDOUT: %return.param: ref @Inner.B.%Outer.loc7_22.1 (%Outer.ef0) = out_param call_param0 -// CHECK:STDOUT: %return: ref @Inner.B.%Outer.loc7_22.1 (%Outer.ef0) = return_slot %return.param +// CHECK:STDOUT: %Outer.loc7_22.2: type = class_type @Outer, @Outer(constants.%U) [symbolic = %Outer.loc7_22.1 (constants.%Outer.20b)] +// CHECK:STDOUT: %.loc7_22.2: Core.Form = init_form %Outer.loc7_22.2 [symbolic = %.loc7_22.1 (constants.%.aaf)] +// CHECK:STDOUT: %return.param: ref @Inner.B.%Outer.loc7_22.1 (%Outer.20b) = out_param call_param0 +// CHECK:STDOUT: %return: ref @Inner.B.%Outer.loc7_22.1 (%Outer.20b) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Inner.C.decl: @Inner.%Inner.C.type (%Inner.C.type.9fc) = fn_decl @Inner.C [symbolic = @Inner.%Inner.C (constants.%Inner.C.ce9)] { -// CHECK:STDOUT: %return.param_patt: @Inner.C.%pattern_type (%pattern_type.1b2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Inner.C.%pattern_type (%pattern_type.1b2) = return_slot_pattern %return.param_patt, %Inner.loc10_22.2 [concrete] +// CHECK:STDOUT: %Inner.C.decl: @Inner.%Inner.C.type (%Inner.C.type.5dd) = fn_decl @Inner.C [symbolic = @Inner.%Inner.C (constants.%Inner.C.5e1)] { +// CHECK:STDOUT: %return.param_patt: @Inner.C.%pattern_type (%pattern_type.5b1) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Inner.C.%pattern_type (%pattern_type.5b1) = return_slot_pattern %return.param_patt, %Inner.loc10_22.2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc10_15: @Inner.C.%Inner.type (%Inner.type.e77) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.92c)] -// CHECK:STDOUT: %Inner.ref: @Inner.C.%Inner.type (%Inner.type.e77) = name_ref Inner, %.loc10_15 [symbolic = %Inner.generic (constants.%Inner.generic.92c)] +// CHECK:STDOUT: %.loc10_15: @Inner.C.%Inner.type (%Inner.type.8f7) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.b3a)] +// CHECK:STDOUT: %Inner.ref: @Inner.C.%Inner.type (%Inner.type.8f7) = name_ref Inner, %.loc10_15 [symbolic = %Inner.generic (constants.%Inner.generic.b3a)] // CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc2_14.2 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Inner.loc10_22.2: type = class_type @Inner, @Inner(constants.%T, constants.%T) [symbolic = %Inner.loc10_22.1 (constants.%Inner.36f)] -// CHECK:STDOUT: %.loc10_22.2: Core.Form = init_form %Inner.loc10_22.2 [symbolic = %.loc10_22.1 (constants.%.188)] -// CHECK:STDOUT: %return.param: ref @Inner.C.%Inner.loc10_22.1 (%Inner.36f) = out_param call_param0 -// CHECK:STDOUT: %return: ref @Inner.C.%Inner.loc10_22.1 (%Inner.36f) = return_slot %return.param +// CHECK:STDOUT: %Inner.loc10_22.2: type = class_type @Inner, @Inner(constants.%T, constants.%T) [symbolic = %Inner.loc10_22.1 (constants.%Inner.61d)] +// CHECK:STDOUT: %.loc10_22.2: Core.Form = init_form %Inner.loc10_22.2 [symbolic = %.loc10_22.1 (constants.%.2f2)] +// CHECK:STDOUT: %return.param: ref @Inner.C.%Inner.loc10_22.1 (%Inner.61d) = out_param call_param0 +// CHECK:STDOUT: %return: ref @Inner.C.%Inner.loc10_22.1 (%Inner.61d) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Inner.D.decl: @Inner.%Inner.D.type (%Inner.D.type.6aa) = fn_decl @Inner.D [symbolic = @Inner.%Inner.D (constants.%Inner.D.aa1)] { -// CHECK:STDOUT: %return.param_patt: @Inner.D.%pattern_type (%pattern_type.c25) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Inner.D.%pattern_type (%pattern_type.c25) = return_slot_pattern %return.param_patt, %Inner.loc13_22.2 [concrete] +// CHECK:STDOUT: %Inner.D.decl: @Inner.%Inner.D.type (%Inner.D.type.faa) = fn_decl @Inner.D [symbolic = @Inner.%Inner.D (constants.%Inner.D.039)] { +// CHECK:STDOUT: %return.param_patt: @Inner.D.%pattern_type (%pattern_type.f00) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Inner.D.%pattern_type (%pattern_type.f00) = return_slot_pattern %return.param_patt, %Inner.loc13_22.2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc13_15: @Inner.D.%Inner.type (%Inner.type.e77) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.92c)] -// CHECK:STDOUT: %Inner.ref: @Inner.D.%Inner.type (%Inner.type.e77) = name_ref Inner, %.loc13_15 [symbolic = %Inner.generic (constants.%Inner.generic.92c)] +// CHECK:STDOUT: %.loc13_15: @Inner.D.%Inner.type (%Inner.type.8f7) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.b3a)] +// CHECK:STDOUT: %Inner.ref: @Inner.D.%Inner.type (%Inner.type.8f7) = name_ref Inner, %.loc13_15 [symbolic = %Inner.generic (constants.%Inner.generic.b3a)] // CHECK:STDOUT: %U.ref: type = name_ref U, @Inner.%U.loc3_16.2 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %Inner.loc13_22.2: type = class_type @Inner, @Inner(constants.%T, constants.%U) [symbolic = %Inner.loc13_22.1 (constants.%Inner.6c4)] -// CHECK:STDOUT: %.loc13_22.2: Core.Form = init_form %Inner.loc13_22.2 [symbolic = %.loc13_22.1 (constants.%.f86)] -// CHECK:STDOUT: %return.param: ref @Inner.D.%Inner.loc13_22.1 (%Inner.6c4) = out_param call_param0 -// CHECK:STDOUT: %return: ref @Inner.D.%Inner.loc13_22.1 (%Inner.6c4) = return_slot %return.param +// CHECK:STDOUT: %Inner.loc13_22.2: type = class_type @Inner, @Inner(constants.%T, constants.%U) [symbolic = %Inner.loc13_22.1 (constants.%Inner.34b)] +// CHECK:STDOUT: %.loc13_22.2: Core.Form = init_form %Inner.loc13_22.2 [symbolic = %.loc13_22.1 (constants.%.556)] +// CHECK:STDOUT: %return.param: ref @Inner.D.%Inner.loc13_22.1 (%Inner.34b) = out_param call_param0 +// CHECK:STDOUT: %return: ref @Inner.D.%Inner.loc13_22.1 (%Inner.34b) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Inner.6c4 +// CHECK:STDOUT: .Self = constants.%Inner.34b // CHECK:STDOUT: .Outer = // CHECK:STDOUT: .T = // CHECK:STDOUT: .A = %Inner.A.decl @@ -758,81 +758,81 @@ class Outer(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Inner.A(@Outer.%T.loc2_14.2: type, @Inner.%U.loc3_16.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Outer.loc4_22.1: type = class_type @Outer, @Outer(%T) [symbolic = %Outer.loc4_22.1 (constants.%Outer.3b5)] -// CHECK:STDOUT: %.loc4_22.1: Core.Form = init_form %Outer.loc4_22.1 [symbolic = %.loc4_22.1 (constants.%.a27)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Outer.loc4_22.1 [symbolic = %pattern_type (constants.%pattern_type.159)] +// CHECK:STDOUT: %Outer.loc4_22.1: type = class_type @Outer, @Outer(%T) [symbolic = %Outer.loc4_22.1 (constants.%Outer.dee)] +// CHECK:STDOUT: %.loc4_22.1: Core.Form = init_form %Outer.loc4_22.1 [symbolic = %.loc4_22.1 (constants.%.156)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Outer.loc4_22.1 [symbolic = %pattern_type (constants.%pattern_type.dec)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Outer.loc4_22.1 [symbolic = %require_complete (constants.%require_complete.f6c)] -// CHECK:STDOUT: %Outer.val: @Inner.A.%Outer.loc4_22.1 (%Outer.3b5) = struct_value () [symbolic = %Outer.val (constants.%Outer.val.c83)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Outer.loc4_22.1 [symbolic = %require_complete (constants.%require_complete.dae)] +// CHECK:STDOUT: %Outer.val: @Inner.A.%Outer.loc4_22.1 (%Outer.dee) = struct_value () [symbolic = %Outer.val (constants.%Outer.val.1e6)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> out %return.param: @Inner.A.%Outer.loc4_22.1 (%Outer.3b5) { +// CHECK:STDOUT: fn() -> out %return.param: @Inner.A.%Outer.loc4_22.1 (%Outer.dee) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc5_15.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc5_15.2: init @Inner.A.%Outer.loc4_22.1 (%Outer.3b5) to %return.param = class_init () [symbolic = %Outer.val (constants.%Outer.val.c83)] -// CHECK:STDOUT: %.loc5_16: init @Inner.A.%Outer.loc4_22.1 (%Outer.3b5) = converted %.loc5_15.1, %.loc5_15.2 [symbolic = %Outer.val (constants.%Outer.val.c83)] +// CHECK:STDOUT: %.loc5_15.2: init @Inner.A.%Outer.loc4_22.1 (%Outer.dee) to %return.param = class_init () [symbolic = %Outer.val (constants.%Outer.val.1e6)] +// CHECK:STDOUT: %.loc5_16: init @Inner.A.%Outer.loc4_22.1 (%Outer.dee) = converted %.loc5_15.1, %.loc5_15.2 [symbolic = %Outer.val (constants.%Outer.val.1e6)] // CHECK:STDOUT: return %.loc5_16 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Inner.B(@Outer.%T.loc2_14.2: type, @Inner.%U.loc3_16.2: type) { // CHECK:STDOUT: %U: type = symbolic_binding U, 1 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %Outer.loc7_22.1: type = class_type @Outer, @Outer(%U) [symbolic = %Outer.loc7_22.1 (constants.%Outer.ef0)] -// CHECK:STDOUT: %.loc7_22.1: Core.Form = init_form %Outer.loc7_22.1 [symbolic = %.loc7_22.1 (constants.%.709)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Outer.loc7_22.1 [symbolic = %pattern_type (constants.%pattern_type.e97)] +// CHECK:STDOUT: %Outer.loc7_22.1: type = class_type @Outer, @Outer(%U) [symbolic = %Outer.loc7_22.1 (constants.%Outer.20b)] +// CHECK:STDOUT: %.loc7_22.1: Core.Form = init_form %Outer.loc7_22.1 [symbolic = %.loc7_22.1 (constants.%.aaf)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Outer.loc7_22.1 [symbolic = %pattern_type (constants.%pattern_type.a71)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Outer.loc7_22.1 [symbolic = %require_complete (constants.%require_complete.d76)] -// CHECK:STDOUT: %Outer.val: @Inner.B.%Outer.loc7_22.1 (%Outer.ef0) = struct_value () [symbolic = %Outer.val (constants.%Outer.val.2ba)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Outer.loc7_22.1 [symbolic = %require_complete (constants.%require_complete.7da)] +// CHECK:STDOUT: %Outer.val: @Inner.B.%Outer.loc7_22.1 (%Outer.20b) = struct_value () [symbolic = %Outer.val (constants.%Outer.val.8e5)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> out %return.param: @Inner.B.%Outer.loc7_22.1 (%Outer.ef0) { +// CHECK:STDOUT: fn() -> out %return.param: @Inner.B.%Outer.loc7_22.1 (%Outer.20b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc8_15.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc8_15.2: init @Inner.B.%Outer.loc7_22.1 (%Outer.ef0) to %return.param = class_init () [symbolic = %Outer.val (constants.%Outer.val.2ba)] -// CHECK:STDOUT: %.loc8_16: init @Inner.B.%Outer.loc7_22.1 (%Outer.ef0) = converted %.loc8_15.1, %.loc8_15.2 [symbolic = %Outer.val (constants.%Outer.val.2ba)] +// CHECK:STDOUT: %.loc8_15.2: init @Inner.B.%Outer.loc7_22.1 (%Outer.20b) to %return.param = class_init () [symbolic = %Outer.val (constants.%Outer.val.8e5)] +// CHECK:STDOUT: %.loc8_16: init @Inner.B.%Outer.loc7_22.1 (%Outer.20b) = converted %.loc8_15.1, %.loc8_15.2 [symbolic = %Outer.val (constants.%Outer.val.8e5)] // CHECK:STDOUT: return %.loc8_16 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Inner.C(@Outer.%T.loc2_14.2: type, @Inner.%U.loc3_16.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T) [symbolic = %Inner.type (constants.%Inner.type.e77)] -// CHECK:STDOUT: %Inner.generic: @Inner.C.%Inner.type (%Inner.type.e77) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.92c)] -// CHECK:STDOUT: %Inner.loc10_22.1: type = class_type @Inner, @Inner(%T, %T) [symbolic = %Inner.loc10_22.1 (constants.%Inner.36f)] -// CHECK:STDOUT: %.loc10_22.1: Core.Form = init_form %Inner.loc10_22.1 [symbolic = %.loc10_22.1 (constants.%.188)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Inner.loc10_22.1 [symbolic = %pattern_type (constants.%pattern_type.1b2)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T) [symbolic = %Inner.type (constants.%Inner.type.8f7)] +// CHECK:STDOUT: %Inner.generic: @Inner.C.%Inner.type (%Inner.type.8f7) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.b3a)] +// CHECK:STDOUT: %Inner.loc10_22.1: type = class_type @Inner, @Inner(%T, %T) [symbolic = %Inner.loc10_22.1 (constants.%Inner.61d)] +// CHECK:STDOUT: %.loc10_22.1: Core.Form = init_form %Inner.loc10_22.1 [symbolic = %.loc10_22.1 (constants.%.2f2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Inner.loc10_22.1 [symbolic = %pattern_type (constants.%pattern_type.5b1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Inner.loc10_22.1 [symbolic = %require_complete (constants.%require_complete.ec2)] -// CHECK:STDOUT: %Inner.val: @Inner.C.%Inner.loc10_22.1 (%Inner.36f) = struct_value () [symbolic = %Inner.val (constants.%Inner.val.3d4)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Inner.loc10_22.1 [symbolic = %require_complete (constants.%require_complete.25e)] +// CHECK:STDOUT: %Inner.val: @Inner.C.%Inner.loc10_22.1 (%Inner.61d) = struct_value () [symbolic = %Inner.val (constants.%Inner.val.284)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> out %return.param: @Inner.C.%Inner.loc10_22.1 (%Inner.36f) { +// CHECK:STDOUT: fn() -> out %return.param: @Inner.C.%Inner.loc10_22.1 (%Inner.61d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc11_15.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc11_15.2: init @Inner.C.%Inner.loc10_22.1 (%Inner.36f) to %return.param = class_init () [symbolic = %Inner.val (constants.%Inner.val.3d4)] -// CHECK:STDOUT: %.loc11_16: init @Inner.C.%Inner.loc10_22.1 (%Inner.36f) = converted %.loc11_15.1, %.loc11_15.2 [symbolic = %Inner.val (constants.%Inner.val.3d4)] +// CHECK:STDOUT: %.loc11_15.2: init @Inner.C.%Inner.loc10_22.1 (%Inner.61d) to %return.param = class_init () [symbolic = %Inner.val (constants.%Inner.val.284)] +// CHECK:STDOUT: %.loc11_16: init @Inner.C.%Inner.loc10_22.1 (%Inner.61d) = converted %.loc11_15.1, %.loc11_15.2 [symbolic = %Inner.val (constants.%Inner.val.284)] // CHECK:STDOUT: return %.loc11_16 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Inner.D(@Outer.%T.loc2_14.2: type, @Inner.%U.loc3_16.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T) [symbolic = %Inner.type (constants.%Inner.type.e77)] -// CHECK:STDOUT: %Inner.generic: @Inner.D.%Inner.type (%Inner.type.e77) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.92c)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T) [symbolic = %Inner.type (constants.%Inner.type.8f7)] +// CHECK:STDOUT: %Inner.generic: @Inner.D.%Inner.type (%Inner.type.8f7) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.b3a)] // CHECK:STDOUT: %U: type = symbolic_binding U, 1 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %Inner.loc13_22.1: type = class_type @Inner, @Inner(%T, %U) [symbolic = %Inner.loc13_22.1 (constants.%Inner.6c4)] -// CHECK:STDOUT: %.loc13_22.1: Core.Form = init_form %Inner.loc13_22.1 [symbolic = %.loc13_22.1 (constants.%.f86)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Inner.loc13_22.1 [symbolic = %pattern_type (constants.%pattern_type.c25)] +// CHECK:STDOUT: %Inner.loc13_22.1: type = class_type @Inner, @Inner(%T, %U) [symbolic = %Inner.loc13_22.1 (constants.%Inner.34b)] +// CHECK:STDOUT: %.loc13_22.1: Core.Form = init_form %Inner.loc13_22.1 [symbolic = %.loc13_22.1 (constants.%.556)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Inner.loc13_22.1 [symbolic = %pattern_type (constants.%pattern_type.f00)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Inner.loc13_22.1 [symbolic = %require_complete (constants.%require_complete.600)] -// CHECK:STDOUT: %Inner.val: @Inner.D.%Inner.loc13_22.1 (%Inner.6c4) = struct_value () [symbolic = %Inner.val (constants.%Inner.val.fa0)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Inner.loc13_22.1 [symbolic = %require_complete (constants.%require_complete.8ae)] +// CHECK:STDOUT: %Inner.val: @Inner.D.%Inner.loc13_22.1 (%Inner.34b) = struct_value () [symbolic = %Inner.val (constants.%Inner.val.9fd)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> out %return.param: @Inner.D.%Inner.loc13_22.1 (%Inner.6c4) { +// CHECK:STDOUT: fn() -> out %return.param: @Inner.D.%Inner.loc13_22.1 (%Inner.34b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc14_15.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc14_15.2: init @Inner.D.%Inner.loc13_22.1 (%Inner.6c4) to %return.param = class_init () [symbolic = %Inner.val (constants.%Inner.val.fa0)] -// CHECK:STDOUT: %.loc14_16: init @Inner.D.%Inner.loc13_22.1 (%Inner.6c4) = converted %.loc14_15.1, %.loc14_15.2 [symbolic = %Inner.val (constants.%Inner.val.fa0)] +// CHECK:STDOUT: %.loc14_15.2: init @Inner.D.%Inner.loc13_22.1 (%Inner.34b) to %return.param = class_init () [symbolic = %Inner.val (constants.%Inner.val.9fd)] +// CHECK:STDOUT: %.loc14_16: init @Inner.D.%Inner.loc13_22.1 (%Inner.34b) = converted %.loc14_15.1, %.loc14_15.2 [symbolic = %Inner.val (constants.%Inner.val.9fd)] // CHECK:STDOUT: return %.loc14_16 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -841,8 +841,8 @@ class Outer(T:! type) { // CHECK:STDOUT: %T.loc2_14.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.e77 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.92c +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.8f7 +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.b3a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(constants.%T, constants.%U) { @@ -850,36 +850,36 @@ class Outer(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Inner.A.type => constants.%Inner.A.type.24f -// CHECK:STDOUT: %Inner.A => constants.%Inner.A.54a -// CHECK:STDOUT: %Inner.B.type => constants.%Inner.B.type.ec0 -// CHECK:STDOUT: %Inner.B => constants.%Inner.B.af7 -// CHECK:STDOUT: %Inner.C.type => constants.%Inner.C.type.9fc -// CHECK:STDOUT: %Inner.C => constants.%Inner.C.ce9 -// CHECK:STDOUT: %Inner.D.type => constants.%Inner.D.type.6aa -// CHECK:STDOUT: %Inner.D => constants.%Inner.D.aa1 +// CHECK:STDOUT: %Inner.A.type => constants.%Inner.A.type.b38 +// CHECK:STDOUT: %Inner.A => constants.%Inner.A.456 +// CHECK:STDOUT: %Inner.B.type => constants.%Inner.B.type.374 +// CHECK:STDOUT: %Inner.B => constants.%Inner.B.cc2 +// CHECK:STDOUT: %Inner.C.type => constants.%Inner.C.type.5dd +// CHECK:STDOUT: %Inner.C => constants.%Inner.C.5e1 +// CHECK:STDOUT: %Inner.D.type => constants.%Inner.D.type.faa +// CHECK:STDOUT: %Inner.D => constants.%Inner.D.039 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner.A(constants.%T, constants.%U) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Outer.loc4_22.1 => constants.%Outer.3b5 -// CHECK:STDOUT: %.loc4_22.1 => constants.%.a27 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.159 +// CHECK:STDOUT: %Outer.loc4_22.1 => constants.%Outer.dee +// CHECK:STDOUT: %.loc4_22.1 => constants.%.156 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.dec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%U) { // CHECK:STDOUT: %T.loc2_14.1 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.e6e -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.635 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.1c5 +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.8bb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner.B(constants.%T, constants.%U) { // CHECK:STDOUT: %U => constants.%U -// CHECK:STDOUT: %Outer.loc7_22.1 => constants.%Outer.ef0 -// CHECK:STDOUT: %.loc7_22.1 => constants.%.709 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e97 +// CHECK:STDOUT: %Outer.loc7_22.1 => constants.%Outer.20b +// CHECK:STDOUT: %.loc7_22.1 => constants.%.aaf +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(constants.%T, constants.%T) { @@ -887,32 +887,32 @@ class Outer(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Inner.A.type => constants.%Inner.A.type.96a -// CHECK:STDOUT: %Inner.A => constants.%Inner.A.ffa -// CHECK:STDOUT: %Inner.B.type => constants.%Inner.B.type.7a7 -// CHECK:STDOUT: %Inner.B => constants.%Inner.B.919 -// CHECK:STDOUT: %Inner.C.type => constants.%Inner.C.type.072 -// CHECK:STDOUT: %Inner.C => constants.%Inner.C.857 -// CHECK:STDOUT: %Inner.D.type => constants.%Inner.D.type.76e -// CHECK:STDOUT: %Inner.D => constants.%Inner.D.44a +// CHECK:STDOUT: %Inner.A.type => constants.%Inner.A.type.6cc +// CHECK:STDOUT: %Inner.A => constants.%Inner.A.0e7 +// CHECK:STDOUT: %Inner.B.type => constants.%Inner.B.type.e01 +// CHECK:STDOUT: %Inner.B => constants.%Inner.B.020 +// CHECK:STDOUT: %Inner.C.type => constants.%Inner.C.type.382 +// CHECK:STDOUT: %Inner.C => constants.%Inner.C.fa4 +// CHECK:STDOUT: %Inner.D.type => constants.%Inner.D.type.f65 +// CHECK:STDOUT: %Inner.D => constants.%Inner.D.9e2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner.C(constants.%T, constants.%U) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.e77 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.92c -// CHECK:STDOUT: %Inner.loc10_22.1 => constants.%Inner.36f -// CHECK:STDOUT: %.loc10_22.1 => constants.%.188 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1b2 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.8f7 +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.b3a +// CHECK:STDOUT: %Inner.loc10_22.1 => constants.%Inner.61d +// CHECK:STDOUT: %.loc10_22.1 => constants.%.2f2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5b1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner.D(constants.%T, constants.%U) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.e77 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.92c +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.8f7 +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.b3a // CHECK:STDOUT: %U => constants.%U -// CHECK:STDOUT: %Inner.loc13_22.1 => constants.%Inner.6c4 -// CHECK:STDOUT: %.loc13_22.1 => constants.%.f86 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c25 +// CHECK:STDOUT: %Inner.loc13_22.1 => constants.%Inner.34b +// CHECK:STDOUT: %.loc13_22.1 => constants.%.556 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f00 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/complete_in_conversion.carbon b/toolchain/check/testdata/class/generic/complete_in_conversion.carbon index 1e4e83cec740..b6e6c0721f4b 100644 --- a/toolchain/check/testdata/class/generic/complete_in_conversion.carbon +++ b/toolchain/check/testdata/class/generic/complete_in_conversion.carbon @@ -43,61 +43,61 @@ fn F(a: A(0)*) { // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %.805: Core.Form = init_form type [concrete] // CHECK:STDOUT: %pattern_type.dc0: type = pattern_type Core.IntLiteral [concrete] -// CHECK:STDOUT: %Int.type.d17: type = fn_type @Int.loc2 [concrete] -// CHECK:STDOUT: %Int.c99: %Int.type.d17 = struct_value () [concrete] +// CHECK:STDOUT: %Int.type.9c0: type = fn_type @Int.loc2 [concrete] +// CHECK:STDOUT: %Int.c4a: %Int.type.9c0 = struct_value () [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %Int.type.392: type = generic_class_type @Int.1 [concrete] -// CHECK:STDOUT: %Int.generic: %Int.type.392 = struct_value () [concrete] +// CHECK:STDOUT: %Int.type.6c1: type = generic_class_type @Int.1 [concrete] +// CHECK:STDOUT: %Int.generic: %Int.type.6c1 = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int.1, @Int.1(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %N.bbe: %i32 = symbolic_binding N, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %N.37f: %i32 = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %A.type: type = generic_class_type @A [concrete] // CHECK:STDOUT: %A.generic: %A.type = struct_value () [concrete] -// CHECK:STDOUT: %A.723: type = class_type @A, @A(%N.bbe) [symbolic] -// CHECK:STDOUT: %A.elem.e23: type = unbound_element_type %A.723, %B [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %A.6bc: type = class_type @A, @A(%N.37f) [symbolic] +// CHECK:STDOUT: %A.elem.5cd: type = unbound_element_type %A.6bc, %B [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.337: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.64e: %Int.as.ImplicitAs.impl.Convert.type.337 = struct_value () [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound.802: = bound_method %N.bbe, %Int.as.ImplicitAs.impl.Convert.64e [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.64e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.f71: = bound_method %N.bbe, %Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.f71(%N.bbe) [symbolic] -// CHECK:STDOUT: %iN.builtin.a84: type = int_type signed, %Int.as.ImplicitAs.impl.Convert.call [symbolic] -// CHECK:STDOUT: %require_complete.88a: = require_complete_type %iN.builtin.a84 [symbolic] -// CHECK:STDOUT: %A.elem.10f: type = unbound_element_type %A.723, %iN.builtin.a84 [symbolic] -// CHECK:STDOUT: %struct_type.base.n: type = struct_type {.base: %B, .n: %iN.builtin.a84} [symbolic] -// CHECK:STDOUT: %complete_type.aa1: = complete_type_witness %struct_type.base.n [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.683: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.69e: %Int.as.ImplicitAs.impl.Convert.type.683 = struct_value () [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound.c18: = bound_method %N.37f, %Int.as.ImplicitAs.impl.Convert.69e [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.69e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.7c3: = bound_method %N.37f, %Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.7c3(%N.37f) [symbolic] +// CHECK:STDOUT: %iN.builtin.9da: type = int_type signed, %Int.as.ImplicitAs.impl.Convert.call [symbolic] +// CHECK:STDOUT: %require_complete.468: = require_complete_type %iN.builtin.9da [symbolic] +// CHECK:STDOUT: %A.elem.81f: type = unbound_element_type %A.6bc, %iN.builtin.9da [symbolic] +// CHECK:STDOUT: %struct_type.base.n: type = struct_type {.base: %B, .n: %iN.builtin.9da} [symbolic] +// CHECK:STDOUT: %complete_type.877: = complete_type_witness %struct_type.base.n [symbolic] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.840: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.840) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet.840 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %A.705: type = class_type @A, @A(%int_0.62d) [concrete] -// CHECK:STDOUT: %ptr.ffd: type = ptr_type %A.705 [concrete] -// CHECK:STDOUT: %pattern_type.9bc: type = pattern_type %ptr.ffd [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.9f1: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.9f1) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet.9f1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.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: %A.32a: type = class_type @A, @A(%int_0.3c0) [concrete] +// CHECK:STDOUT: %ptr.4dd: type = ptr_type %A.32a [concrete] +// CHECK:STDOUT: %pattern_type.0c3: type = pattern_type %ptr.4dd [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.294: type = ptr_type %B [concrete] -// CHECK:STDOUT: %pattern_type.bb8: type = pattern_type %ptr.294 [concrete] -// CHECK:STDOUT: %A.elem.666: type = unbound_element_type %A.705, %B [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound.619: = bound_method %int_0.62d, %Int.as.ImplicitAs.impl.Convert.64e [concrete] -// CHECK:STDOUT: %bound_method.fb8: = bound_method %int_0.62d, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %ptr.432: type = ptr_type %B [concrete] +// CHECK:STDOUT: %pattern_type.3c8: type = pattern_type %ptr.432 [concrete] +// CHECK:STDOUT: %A.elem.dc2: type = unbound_element_type %A.32a, %B [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound.319: = bound_method %int_0.3c0, %Int.as.ImplicitAs.impl.Convert.69e [concrete] +// CHECK:STDOUT: %bound_method.df0: = bound_method %int_0.3c0, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -109,10 +109,10 @@ fn F(a: A(0)*) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.IntLiteral: %IntLiteral.type = import_ref Core//prelude/parts/int_literal, IntLiteral, loaded [concrete = constants.%IntLiteral] -// CHECK:STDOUT: %Core.Int: %Int.type.392 = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.Int: %Int.type.6c1 = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -124,7 +124,7 @@ fn F(a: A(0)*) { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %Int.decl: %Int.type.d17 = fn_decl @Int.loc2 [concrete = constants.%Int.c99] { +// CHECK:STDOUT: %Int.decl: %Int.type.9c0 = fn_decl @Int.loc2 [concrete = constants.%Int.c4a] { // CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern [concrete] // CHECK:STDOUT: %N.patt: %pattern_type.dc0 = at_binding_pattern N, %N.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] @@ -146,33 +146,33 @@ fn F(a: A(0)*) { // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: %A.decl: %A.type = class_decl @A [concrete = constants.%A.generic] { -// CHECK:STDOUT: %N.patt: %pattern_type.104 = symbolic_binding_pattern N, 0 [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.6b6 = symbolic_binding_pattern N, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6: type = splice_block %i32 [concrete = constants.%i32] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc6_10.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc6_10.1 (constants.%N.bbe)] +// CHECK:STDOUT: %N.loc6_10.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc6_10.1 (constants.%N.37f)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.9bc = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.9bc = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.0c3 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.0c3 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %a.param: %ptr.ffd = value_param call_param0 -// CHECK:STDOUT: %.loc12_13: type = splice_block %ptr.loc12 [concrete = constants.%ptr.ffd] { +// CHECK:STDOUT: %a.param: %ptr.4dd = value_param call_param0 +// CHECK:STDOUT: %.loc12_13: type = splice_block %ptr.loc12 [concrete = constants.%ptr.4dd] { // CHECK:STDOUT: %A.ref: %A.type = name_ref A, file.%A.decl [concrete = constants.%A.generic] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc12_12.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc12_12.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc12_12.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc12_12.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc12_12.2: %i32 = converted %int_0, %.loc12_12.1 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %A: type = class_type @A, @A(constants.%int_0.62d) [concrete = constants.%A.705] -// CHECK:STDOUT: %ptr.loc12: type = ptr_type %A [concrete = constants.%ptr.ffd] +// CHECK:STDOUT: %bound_method.loc12_12.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc12_12.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc12_12.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc12_12.2: %i32 = converted %int_0, %.loc12_12.1 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %A: type = class_type @A, @A(constants.%int_0.3c0) [concrete = constants.%A.32a] +// CHECK:STDOUT: %ptr.loc12: type = ptr_type %A [concrete = constants.%ptr.4dd] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.ffd = value_binding a, %a.param +// CHECK:STDOUT: %a: %ptr.4dd = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -187,29 +187,29 @@ fn F(a: A(0)*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @A(%N.loc6_10.2: %i32) { -// CHECK:STDOUT: %N.loc6_10.1: %i32 = symbolic_binding N, 0 [symbolic = %N.loc6_10.1 (constants.%N.bbe)] +// CHECK:STDOUT: %N.loc6_10.1: %i32 = symbolic_binding N, 0 [symbolic = %N.loc6_10.1 (constants.%N.37f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %A: type = class_type @A, @A(%N.loc6_10.1) [symbolic = %A (constants.%A.723)] -// CHECK:STDOUT: %A.elem.loc7: type = unbound_element_type %A, constants.%B [symbolic = %A.elem.loc7 (constants.%A.elem.e23)] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.loc6_10.1, constants.%Int.as.ImplicitAs.impl.Convert.64e [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound.802)] -// CHECK:STDOUT: %bound_method: = bound_method %N.loc6_10.1, constants.%Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic = %bound_method (constants.%bound_method.f71)] +// CHECK:STDOUT: %A: type = class_type @A, @A(%N.loc6_10.1) [symbolic = %A (constants.%A.6bc)] +// CHECK:STDOUT: %A.elem.loc7: type = unbound_element_type %A, constants.%B [symbolic = %A.elem.loc7 (constants.%A.elem.5cd)] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.loc6_10.1, constants.%Int.as.ImplicitAs.impl.Convert.69e [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound.c18)] +// CHECK:STDOUT: %bound_method: = bound_method %N.loc6_10.1, constants.%Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic = %bound_method (constants.%bound_method.7c3)] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method(%N.loc6_10.1) [symbolic = %Int.as.ImplicitAs.impl.Convert.call (constants.%Int.as.ImplicitAs.impl.Convert.call)] -// CHECK:STDOUT: %iN.builtin: type = int_type signed, %Int.as.ImplicitAs.impl.Convert.call [symbolic = %iN.builtin (constants.%iN.builtin.a84)] -// CHECK:STDOUT: %require_complete: = require_complete_type %iN.builtin [symbolic = %require_complete (constants.%require_complete.88a)] -// CHECK:STDOUT: %A.elem.loc9: type = unbound_element_type %A, %iN.builtin [symbolic = %A.elem.loc9 (constants.%A.elem.10f)] -// CHECK:STDOUT: %struct_type.base.n: type = struct_type {.base: %B, .n: @A.%iN.builtin (%iN.builtin.a84)} [symbolic = %struct_type.base.n (constants.%struct_type.base.n)] -// CHECK:STDOUT: %complete_type.loc10_1.2: = complete_type_witness %struct_type.base.n [symbolic = %complete_type.loc10_1.2 (constants.%complete_type.aa1)] +// CHECK:STDOUT: %iN.builtin: type = int_type signed, %Int.as.ImplicitAs.impl.Convert.call [symbolic = %iN.builtin (constants.%iN.builtin.9da)] +// CHECK:STDOUT: %require_complete: = require_complete_type %iN.builtin [symbolic = %require_complete (constants.%require_complete.468)] +// CHECK:STDOUT: %A.elem.loc9: type = unbound_element_type %A, %iN.builtin [symbolic = %A.elem.loc9 (constants.%A.elem.81f)] +// CHECK:STDOUT: %struct_type.base.n: type = struct_type {.base: %B, .n: @A.%iN.builtin (%iN.builtin.9da)} [symbolic = %struct_type.base.n (constants.%struct_type.base.n)] +// CHECK:STDOUT: %complete_type.loc10_1.2: = complete_type_witness %struct_type.base.n [symbolic = %complete_type.loc10_1.2 (constants.%complete_type.877)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %.loc7: @A.%A.elem.loc7 (%A.elem.e23) = base_decl %B.ref, element0 [concrete] -// CHECK:STDOUT: %.loc9: @A.%A.elem.loc9 (%A.elem.10f) = field_decl n, element1 [concrete] -// CHECK:STDOUT: %complete_type.loc10_1.1: = complete_type_witness constants.%struct_type.base.n [symbolic = %complete_type.loc10_1.2 (constants.%complete_type.aa1)] +// CHECK:STDOUT: %.loc7: @A.%A.elem.loc7 (%A.elem.5cd) = base_decl %B.ref, element0 [concrete] +// CHECK:STDOUT: %.loc9: @A.%A.elem.loc9 (%A.elem.81f) = field_decl n, element1 [concrete] +// CHECK:STDOUT: %complete_type.loc10_1.1: = complete_type_witness constants.%struct_type.base.n [symbolic = %complete_type.loc10_1.2 (constants.%complete_type.877)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc10_1.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%A.723 +// CHECK:STDOUT: .Self = constants.%A.6bc // CHECK:STDOUT: .B = // CHECK:STDOUT: .base = %.loc7 // CHECK:STDOUT: .Int = @@ -221,36 +221,36 @@ fn F(a: A(0)*) { // CHECK:STDOUT: // CHECK:STDOUT: fn @Int.loc2(%N.param: Core.IntLiteral) -> out %return.param: type = "int.make_type_signed"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%a.param: %ptr.ffd) { +// CHECK:STDOUT: fn @F(%a.param: %ptr.4dd) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.bb8 = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.3c8 = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.ref: %ptr.ffd = name_ref a, %a -// CHECK:STDOUT: %.loc20_18: type = splice_block %ptr.loc20 [concrete = constants.%ptr.294] { +// CHECK:STDOUT: %a.ref: %ptr.4dd = name_ref a, %a +// CHECK:STDOUT: %.loc20_18: type = splice_block %ptr.loc20 [concrete = constants.%ptr.432] { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %ptr.loc20: type = ptr_type %B.ref [concrete = constants.%ptr.294] +// CHECK:STDOUT: %ptr.loc20: type = ptr_type %B.ref [concrete = constants.%ptr.432] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc20_22.1: ref %A.705 = deref %a.ref +// CHECK:STDOUT: %.loc20_22.1: ref %A.32a = deref %a.ref // CHECK:STDOUT: %.loc20_22.2: ref %B = class_element_access %.loc20_22.1, element0 -// CHECK:STDOUT: %addr: %ptr.294 = addr_of %.loc20_22.2 -// CHECK:STDOUT: %.loc20_22.3: %ptr.294 = converted %a.ref, %addr -// CHECK:STDOUT: %b: %ptr.294 = value_binding b, %.loc20_22.3 +// CHECK:STDOUT: %addr: %ptr.432 = addr_of %.loc20_22.2 +// CHECK:STDOUT: %.loc20_22.3: %ptr.432 = converted %a.ref, %addr +// CHECK:STDOUT: %b: %ptr.432 = value_binding b, %.loc20_22.3 // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A(constants.%N.bbe) { -// CHECK:STDOUT: %N.loc6_10.1 => constants.%N.bbe +// CHECK:STDOUT: specific @A(constants.%N.37f) { +// CHECK:STDOUT: %N.loc6_10.1 => constants.%N.37f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A(constants.%int_0.62d) { -// CHECK:STDOUT: %N.loc6_10.1 => constants.%int_0.62d +// CHECK:STDOUT: specific @A(constants.%int_0.3c0) { +// CHECK:STDOUT: %N.loc6_10.1 => constants.%int_0.3c0 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %A => constants.%A.705 -// CHECK:STDOUT: %A.elem.loc7 => constants.%A.elem.666 -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound => constants.%Int.as.ImplicitAs.impl.Convert.bound.619 -// CHECK:STDOUT: %bound_method => constants.%bound_method.fb8 +// CHECK:STDOUT: %A => constants.%A.32a +// CHECK:STDOUT: %A.elem.loc7 => constants.%A.elem.dc2 +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound => constants.%Int.as.ImplicitAs.impl.Convert.bound.319 +// CHECK:STDOUT: %bound_method => constants.%bound_method.df0 // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call => constants.%int_0.5c6 // CHECK:STDOUT: %iN.builtin => // CHECK:STDOUT: %require_complete => diff --git a/toolchain/check/testdata/class/generic/field.carbon b/toolchain/check/testdata/class/generic/field.carbon index c86433b25414..d59c10109d6c 100644 --- a/toolchain/check/testdata/class/generic/field.carbon +++ b/toolchain/check/testdata/class/generic/field.carbon @@ -41,9 +41,9 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [concrete] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] -// CHECK:STDOUT: %Class.e25: type = class_type @Class, @Class(%T.67d) [symbolic] +// CHECK:STDOUT: %Class.7bc: type = class_type @Class, @Class(%T.67d) [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T.67d [symbolic] -// CHECK:STDOUT: %Class.elem.d7a: type = unbound_element_type %Class.e25, %T.67d [symbolic] +// CHECK:STDOUT: %Class.elem.959: type = unbound_element_type %Class.7bc, %T.67d [symbolic] // CHECK:STDOUT: %struct_type.x.0c5: type = struct_type {.x: %T.67d} [symbolic] // CHECK:STDOUT: %complete_type.735: = complete_type_witness %struct_type.x.0c5 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -51,64 +51,64 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %Class.4e5: type = class_type @Class, @Class(%i32) [concrete] -// CHECK:STDOUT: %pattern_type.7e9: type = pattern_type %Class.4e5 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Class.1b7: type = class_type @Class, @Class(%i32) [concrete] +// CHECK:STDOUT: %pattern_type.5da: type = pattern_type %Class.1b7 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %Class.elem.3ae: type = unbound_element_type %Class.4e5, %i32 [concrete] -// CHECK:STDOUT: %struct_type.x.06a: type = struct_type {.x: %i32} [concrete] -// CHECK:STDOUT: %complete_type.9a8: = complete_type_witness %struct_type.x.06a [concrete] +// CHECK:STDOUT: %Class.elem.344: type = unbound_element_type %Class.1b7, %i32 [concrete] +// CHECK:STDOUT: %struct_type.x.a15: type = struct_type {.x: %i32} [concrete] +// CHECK:STDOUT: %complete_type.0c6: = complete_type_witness %struct_type.x.a15 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.f49: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f49 [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2ddaf7.1: = lookup_impl_witness %T.f49, @Copy [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.e9f10f.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f49) [symbolic] -// CHECK:STDOUT: %.e16121.1: type = fn_type_with_self_type %Copy.WithSelf.Op.type.e9f10f.2, %T.f49 [symbolic] -// CHECK:STDOUT: %impl.elem0.41e7eb.1: %.e16121.1 = impl_witness_access %Copy.lookup_impl_witness.2ddaf7.1, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7ecd07.1: = specific_impl_function %impl.elem0.41e7eb.1, @Copy.WithSelf.Op(%T.f49) [symbolic] -// CHECK:STDOUT: %.dedae6.2: Core.Form = init_form %T.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.c0fdca.2: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %require_complete.77e193.1: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Class.fd471f.1: type = class_type @Class, @Class(%T.as_type) [symbolic] -// CHECK:STDOUT: %pattern_type.9287e8.1: type = pattern_type %Class.fd471f.1 [symbolic] +// 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: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f84 [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d9c332.1: = lookup_impl_witness %T.f84, @Copy [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c85f21.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f84) [symbolic] +// CHECK:STDOUT: %.c29330.1: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c85f21.2, %T.f84 [symbolic] +// CHECK:STDOUT: %impl.elem0.bd2456.1: %.c29330.1 = impl_witness_access %Copy.lookup_impl_witness.d9c332.1, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e2af7e.1: = specific_impl_function %impl.elem0.bd2456.1, @Copy.WithSelf.Op(%T.f84) [symbolic] +// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.d83f06.1: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.e81: type = pattern_type %Copy.type [concrete] +// CHECK:STDOUT: %Copy.impl_witness.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %Class.c74ef3.1: type = class_type @Class, @Class(%T.as_type) [symbolic] +// CHECK:STDOUT: %pattern_type.6b8c16.1: type = pattern_type %Class.c74ef3.1 [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %Class.elem.ecafe7.1: type = unbound_element_type %Class.fd471f.1, %T.as_type [symbolic] -// CHECK:STDOUT: %struct_type.x.419606.1: type = struct_type {.x: %T.as_type} [symbolic] -// CHECK:STDOUT: %complete_type.dd36b8.1: = complete_type_witness %struct_type.x.419606.1 [symbolic] -// CHECK:STDOUT: %require_complete.892f16.1: = require_complete_type %Class.fd471f.1 [symbolic] -// CHECK:STDOUT: %U.f49: %Copy.type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %U.as_type.09c: type = facet_access_type %U.f49 [symbolic] -// CHECK:STDOUT: %Class.fd471f.2: type = class_type @Class, @Class(%U.as_type.09c) [symbolic] -// CHECK:STDOUT: %pattern_type.9287e8.2: type = pattern_type %Class.fd471f.2 [symbolic] -// CHECK:STDOUT: %.dedae6.3: Core.Form = init_form %U.as_type.09c [symbolic] -// CHECK:STDOUT: %pattern_type.c0fdca.3: type = pattern_type %U.as_type.09c [symbolic] +// CHECK:STDOUT: %Class.elem.14b853.1: type = unbound_element_type %Class.c74ef3.1, %T.as_type [symbolic] +// CHECK:STDOUT: %struct_type.x.ac1e9e.1: type = struct_type {.x: %T.as_type} [symbolic] +// CHECK:STDOUT: %complete_type.b8dd1a.1: = complete_type_witness %struct_type.x.ac1e9e.1 [symbolic] +// CHECK:STDOUT: %require_complete.3b48fd.1: = require_complete_type %Class.c74ef3.1 [symbolic] +// CHECK:STDOUT: %U.f84: %Copy.type = symbolic_binding U, 0 [symbolic] +// CHECK:STDOUT: %U.as_type.c1c: type = facet_access_type %U.f84 [symbolic] +// CHECK:STDOUT: %Class.c74ef3.2: type = class_type @Class, @Class(%U.as_type.c1c) [symbolic] +// CHECK:STDOUT: %pattern_type.6b8c16.2: type = pattern_type %Class.c74ef3.2 [symbolic] +// CHECK:STDOUT: %.1ce700.3: Core.Form = init_form %U.as_type.c1c [symbolic] +// CHECK:STDOUT: %pattern_type.2c66b4.3: type = pattern_type %U.as_type.c1c [symbolic] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.77e193.2: = require_complete_type %U.as_type.09c [symbolic] -// CHECK:STDOUT: %Class.elem.ecafe7.2: type = unbound_element_type %Class.fd471f.2, %U.as_type.09c [symbolic] -// CHECK:STDOUT: %struct_type.x.419606.2: type = struct_type {.x: %U.as_type.09c} [symbolic] -// CHECK:STDOUT: %complete_type.dd36b8.2: = complete_type_witness %struct_type.x.419606.2 [symbolic] -// CHECK:STDOUT: %require_complete.892f16.2: = require_complete_type %Class.fd471f.2 [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2ddaf7.2: = lookup_impl_witness %U.f49, @Copy [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.e9f10f.3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.f49) [symbolic] -// CHECK:STDOUT: %.e16121.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type.e9f10f.3, %U.f49 [symbolic] -// CHECK:STDOUT: %impl.elem0.41e7eb.2: %.e16121.2 = impl_witness_access %Copy.lookup_impl_witness.2ddaf7.2, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7ecd07.2: = specific_impl_function %impl.elem0.41e7eb.2, @Copy.WithSelf.Op(%U.f49) [symbolic] +// CHECK:STDOUT: %require_complete.d83f06.2: = require_complete_type %U.as_type.c1c [symbolic] +// CHECK:STDOUT: %Class.elem.14b853.2: type = unbound_element_type %Class.c74ef3.2, %U.as_type.c1c [symbolic] +// CHECK:STDOUT: %struct_type.x.ac1e9e.2: type = struct_type {.x: %U.as_type.c1c} [symbolic] +// CHECK:STDOUT: %complete_type.b8dd1a.2: = complete_type_witness %struct_type.x.ac1e9e.2 [symbolic] +// CHECK:STDOUT: %require_complete.3b48fd.2: = require_complete_type %Class.c74ef3.2 [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d9c332.2: = lookup_impl_witness %U.f84, @Copy [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c85f21.3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.f84) [symbolic] +// CHECK:STDOUT: %.c29330.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c85f21.3, %U.f84 [symbolic] +// CHECK:STDOUT: %impl.elem0.bd2456.2: %.c29330.2 = impl_witness_access %Copy.lookup_impl_witness.d9c332.2, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e2af7e.2: = specific_impl_function %impl.elem0.bd2456.2, @Copy.WithSelf.Op(%U.f84) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -120,8 +120,8 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -135,80 +135,80 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %T.loc5_14.2: type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.7e9 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.7e9 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc9_24 [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.5da = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.5da = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc9_24 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc9_24: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc9_24: Core.Form = init_form %i32.loc9_24 [concrete = constants.%.7ea] -// CHECK:STDOUT: %c.param: %Class.4e5 = value_param call_param0 -// CHECK:STDOUT: %.loc9_18: type = splice_block %Class [concrete = constants.%Class.4e5] { +// CHECK:STDOUT: %.loc9_24: Core.Form = init_form %i32.loc9_24 [concrete = constants.%.795] +// CHECK:STDOUT: %c.param: %Class.1b7 = value_param call_param0 +// CHECK:STDOUT: %.loc9_18: type = splice_block %Class [concrete = constants.%Class.1b7] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] // CHECK:STDOUT: %i32.loc9_15: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%i32) [concrete = constants.%Class.4e5] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%i32) [concrete = constants.%Class.1b7] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %Class.4e5 = value_binding c, %c.param +// CHECK:STDOUT: %c: %Class.1b7 = value_binding c, %c.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %T.patt: %pattern_type.b72 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %c.param_patt: @G.%pattern_type.loc13_22 (%pattern_type.9287e8.1) = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: @G.%pattern_type.loc13_22 (%pattern_type.9287e8.1) = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @G.%pattern_type.loc13_37 (%pattern_type.c0fdca.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @G.%pattern_type.loc13_37 (%pattern_type.c0fdca.2) = return_slot_pattern %return.param_patt, %.loc13_37.3 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.e81 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %c.param_patt: @G.%pattern_type.loc13_22 (%pattern_type.6b8c16.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: @G.%pattern_type.loc13_22 (%pattern_type.6b8c16.1) = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @G.%pattern_type.loc13_37 (%pattern_type.2c66b4.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @G.%pattern_type.loc13_37 (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt, %.loc13_37.3 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc13_37: %Copy.type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.ref.loc13_37: %Copy.type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc13_37: type = facet_access_type %T.ref.loc13_37 [symbolic = %T.as_type.loc13_31.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc13_37.3: type = converted %T.ref.loc13_37, %T.as_type.loc13_37 [symbolic = %T.as_type.loc13_31.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc13_37.4: Core.Form = init_form %.loc13_37.3 [symbolic = %.loc13_37.2 (constants.%.dedae6.2)] +// CHECK:STDOUT: %.loc13_37.4: Core.Form = init_form %.loc13_37.3 [symbolic = %.loc13_37.2 (constants.%.1ce700.2)] // CHECK:STDOUT: %.loc13_14: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc13_7.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc13_7.1 (constants.%T.f49)] -// CHECK:STDOUT: %c.param: @G.%Class.loc13_31.1 (%Class.fd471f.1) = value_param call_param0 -// CHECK:STDOUT: %.loc13_31.1: type = splice_block %Class.loc13_31.2 [symbolic = %Class.loc13_31.1 (constants.%Class.fd471f.1)] { +// CHECK:STDOUT: %T.loc13_7.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc13_7.1 (constants.%T.f84)] +// CHECK:STDOUT: %c.param: @G.%Class.loc13_31.1 (%Class.c74ef3.1) = value_param call_param0 +// CHECK:STDOUT: %.loc13_31.1: type = splice_block %Class.loc13_31.2 [symbolic = %Class.loc13_31.1 (constants.%Class.c74ef3.1)] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] -// CHECK:STDOUT: %T.ref.loc13_30: %Copy.type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.ref.loc13_30: %Copy.type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc13_31.2: type = facet_access_type %T.ref.loc13_30 [symbolic = %T.as_type.loc13_31.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc13_31.2: type = converted %T.ref.loc13_30, %T.as_type.loc13_31.2 [symbolic = %T.as_type.loc13_31.1 (constants.%T.as_type)] -// CHECK:STDOUT: %Class.loc13_31.2: type = class_type @Class, @Class(constants.%T.as_type) [symbolic = %Class.loc13_31.1 (constants.%Class.fd471f.1)] +// CHECK:STDOUT: %Class.loc13_31.2: type = class_type @Class, @Class(constants.%T.as_type) [symbolic = %Class.loc13_31.1 (constants.%Class.c74ef3.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: @G.%Class.loc13_31.1 (%Class.fd471f.1) = value_binding c, %c.param +// CHECK:STDOUT: %c: @G.%Class.loc13_31.1 (%Class.c74ef3.1) = value_binding c, %c.param // CHECK:STDOUT: %return.param: ref @G.%T.as_type.loc13_31.1 (%T.as_type) = out_param call_param1 // CHECK:STDOUT: %return: ref @G.%T.as_type.loc13_31.1 (%T.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { -// CHECK:STDOUT: %U.patt: %pattern_type.b72 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %c.param_patt: @H.%pattern_type.loc17_22 (%pattern_type.9287e8.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: @H.%pattern_type.loc17_22 (%pattern_type.9287e8.2) = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @H.%pattern_type.loc17_37 (%pattern_type.c0fdca.3) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @H.%pattern_type.loc17_37 (%pattern_type.c0fdca.3) = return_slot_pattern %return.param_patt, %.loc17_37.3 [concrete] +// CHECK:STDOUT: %U.patt: %pattern_type.e81 = symbolic_binding_pattern U, 0 [concrete] +// CHECK:STDOUT: %c.param_patt: @H.%pattern_type.loc17_22 (%pattern_type.6b8c16.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: @H.%pattern_type.loc17_22 (%pattern_type.6b8c16.2) = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @H.%pattern_type.loc17_37 (%pattern_type.2c66b4.3) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @H.%pattern_type.loc17_37 (%pattern_type.2c66b4.3) = return_slot_pattern %return.param_patt, %.loc17_37.3 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.ref.loc17_37: %Copy.type = name_ref U, %U.loc17_7.2 [symbolic = %U.loc17_7.1 (constants.%U.f49)] -// CHECK:STDOUT: %U.as_type.loc17_37: type = facet_access_type %U.ref.loc17_37 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.09c)] -// CHECK:STDOUT: %.loc17_37.3: type = converted %U.ref.loc17_37, %U.as_type.loc17_37 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.09c)] -// CHECK:STDOUT: %.loc17_37.4: Core.Form = init_form %.loc17_37.3 [symbolic = %.loc17_37.2 (constants.%.dedae6.3)] +// CHECK:STDOUT: %U.ref.loc17_37: %Copy.type = name_ref U, %U.loc17_7.2 [symbolic = %U.loc17_7.1 (constants.%U.f84)] +// CHECK:STDOUT: %U.as_type.loc17_37: type = facet_access_type %U.ref.loc17_37 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.c1c)] +// CHECK:STDOUT: %.loc17_37.3: type = converted %U.ref.loc17_37, %U.as_type.loc17_37 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.c1c)] +// CHECK:STDOUT: %.loc17_37.4: Core.Form = init_form %.loc17_37.3 [symbolic = %.loc17_37.2 (constants.%.1ce700.3)] // CHECK:STDOUT: %.loc17_14: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc17_7.2: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc17_7.1 (constants.%U.f49)] -// CHECK:STDOUT: %c.param: @H.%Class.loc17_31.1 (%Class.fd471f.2) = value_param call_param0 -// CHECK:STDOUT: %.loc17_31.1: type = splice_block %Class.loc17_31.2 [symbolic = %Class.loc17_31.1 (constants.%Class.fd471f.2)] { +// CHECK:STDOUT: %U.loc17_7.2: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc17_7.1 (constants.%U.f84)] +// CHECK:STDOUT: %c.param: @H.%Class.loc17_31.1 (%Class.c74ef3.2) = value_param call_param0 +// CHECK:STDOUT: %.loc17_31.1: type = splice_block %Class.loc17_31.2 [symbolic = %Class.loc17_31.1 (constants.%Class.c74ef3.2)] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] -// CHECK:STDOUT: %U.ref.loc17_30: %Copy.type = name_ref U, %U.loc17_7.2 [symbolic = %U.loc17_7.1 (constants.%U.f49)] -// CHECK:STDOUT: %U.as_type.loc17_31.2: type = facet_access_type %U.ref.loc17_30 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.09c)] -// CHECK:STDOUT: %.loc17_31.2: type = converted %U.ref.loc17_30, %U.as_type.loc17_31.2 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.09c)] -// CHECK:STDOUT: %Class.loc17_31.2: type = class_type @Class, @Class(constants.%U.as_type.09c) [symbolic = %Class.loc17_31.1 (constants.%Class.fd471f.2)] +// CHECK:STDOUT: %U.ref.loc17_30: %Copy.type = name_ref U, %U.loc17_7.2 [symbolic = %U.loc17_7.1 (constants.%U.f84)] +// CHECK:STDOUT: %U.as_type.loc17_31.2: type = facet_access_type %U.ref.loc17_30 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.c1c)] +// CHECK:STDOUT: %.loc17_31.2: type = converted %U.ref.loc17_30, %U.as_type.loc17_31.2 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.c1c)] +// CHECK:STDOUT: %Class.loc17_31.2: type = class_type @Class, @Class(constants.%U.as_type.c1c) [symbolic = %Class.loc17_31.1 (constants.%Class.c74ef3.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: @H.%Class.loc17_31.1 (%Class.fd471f.2) = value_binding c, %c.param -// CHECK:STDOUT: %return.param: ref @H.%U.as_type.loc17_31.1 (%U.as_type.09c) = out_param call_param1 -// CHECK:STDOUT: %return: ref @H.%U.as_type.loc17_31.1 (%U.as_type.09c) = return_slot %return.param +// CHECK:STDOUT: %c: @H.%Class.loc17_31.1 (%Class.c74ef3.2) = value_binding c, %c.param +// CHECK:STDOUT: %return.param: ref @H.%U.as_type.loc17_31.1 (%U.as_type.c1c) = out_param call_param1 +// CHECK:STDOUT: %return: ref @H.%U.as_type.loc17_31.1 (%U.as_type.c1c) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -217,30 +217,30 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.loc5_14.1 [symbolic = %require_complete (constants.%require_complete.944)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc5_14.1) [symbolic = %Class (constants.%Class.e25)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.loc5_14.1 [symbolic = %Class.elem (constants.%Class.elem.d7a)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc5_14.1) [symbolic = %Class (constants.%Class.7bc)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.loc5_14.1 [symbolic = %Class.elem (constants.%Class.elem.959)] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: @Class.%T.loc5_14.1 (%T.67d)} [symbolic = %struct_type.x (constants.%struct_type.x.0c5)] // CHECK:STDOUT: %complete_type.loc7_1.2: = complete_type_witness %struct_type.x [symbolic = %complete_type.loc7_1.2 (constants.%complete_type.735)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc6: @Class.%Class.elem (%Class.elem.d7a) = field_decl x, element0 [concrete] +// CHECK:STDOUT: %.loc6: @Class.%Class.elem (%Class.elem.959) = field_decl x, element0 [concrete] // CHECK:STDOUT: %complete_type.loc7_1.1: = complete_type_witness constants.%struct_type.x.0c5 [symbolic = %complete_type.loc7_1.2 (constants.%complete_type.735)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc7_1.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Class.e25 +// CHECK:STDOUT: .Self = constants.%Class.7bc // CHECK:STDOUT: .T = // CHECK:STDOUT: .x = %.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%c.param: %Class.4e5) -> out %return.param: %i32 { +// CHECK:STDOUT: fn @F(%c.param: %Class.1b7) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: %Class.4e5 = name_ref c, %c -// CHECK:STDOUT: %x.ref: %Class.elem.3ae = name_ref x, @Class.%.loc6 [concrete = @Class.%.loc6] +// CHECK:STDOUT: %c.ref: %Class.1b7 = name_ref c, %c +// CHECK:STDOUT: %x.ref: %Class.elem.344 = name_ref x, @Class.%.loc6 [concrete = @Class.%.loc6] // CHECK:STDOUT: %.loc10_11.1: ref %i32 = class_element_access %c.ref, element0 // CHECK:STDOUT: %.loc10_11.2: %i32 = acquire_value %.loc10_11.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc10_11.1: = bound_method %.loc10_11.2, %impl.elem0 // 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.loc10_11.2: = bound_method %.loc10_11.2, %specific_fn @@ -249,32 +249,32 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%T.loc13_7.2: %Copy.type) { -// CHECK:STDOUT: %T.loc13_7.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc13_7.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc13_7.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc13_7.1 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc13_31.1: type = facet_access_type %T.loc13_7.1 [symbolic = %T.as_type.loc13_31.1 (constants.%T.as_type)] -// CHECK:STDOUT: %Class.loc13_31.1: type = class_type @Class, @Class(%T.as_type.loc13_31.1) [symbolic = %Class.loc13_31.1 (constants.%Class.fd471f.1)] -// CHECK:STDOUT: %pattern_type.loc13_22: type = pattern_type %Class.loc13_31.1 [symbolic = %pattern_type.loc13_22 (constants.%pattern_type.9287e8.1)] -// CHECK:STDOUT: %.loc13_37.2: Core.Form = init_form %T.as_type.loc13_31.1 [symbolic = %.loc13_37.2 (constants.%.dedae6.2)] -// CHECK:STDOUT: %pattern_type.loc13_37: type = pattern_type %T.as_type.loc13_31.1 [symbolic = %pattern_type.loc13_37 (constants.%pattern_type.c0fdca.2)] +// CHECK:STDOUT: %Class.loc13_31.1: type = class_type @Class, @Class(%T.as_type.loc13_31.1) [symbolic = %Class.loc13_31.1 (constants.%Class.c74ef3.1)] +// CHECK:STDOUT: %pattern_type.loc13_22: type = pattern_type %Class.loc13_31.1 [symbolic = %pattern_type.loc13_22 (constants.%pattern_type.6b8c16.1)] +// CHECK:STDOUT: %.loc13_37.2: Core.Form = init_form %T.as_type.loc13_31.1 [symbolic = %.loc13_37.2 (constants.%.1ce700.2)] +// CHECK:STDOUT: %pattern_type.loc13_37: type = pattern_type %T.as_type.loc13_31.1 [symbolic = %pattern_type.loc13_37 (constants.%pattern_type.2c66b4.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13: = require_complete_type %Class.loc13_31.1 [symbolic = %require_complete.loc13 (constants.%require_complete.892f16.1)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc13_31.1, %T.as_type.loc13_31.1 [symbolic = %Class.elem (constants.%Class.elem.ecafe7.1)] -// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %T.as_type.loc13_31.1 [symbolic = %require_complete.loc14 (constants.%require_complete.77e193.1)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc13_7.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.2)] -// CHECK:STDOUT: %.loc14_11.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc13_7.1 [symbolic = %.loc14_11.3 (constants.%.e16121.1)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc13_7.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2ddaf7.1)] -// CHECK:STDOUT: %impl.elem0.loc14_11.2: @G.%.loc14_11.3 (%.e16121.1) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_11.2 (constants.%impl.elem0.41e7eb.1)] -// CHECK:STDOUT: %specific_impl_fn.loc14_11.2: = specific_impl_function %impl.elem0.loc14_11.2, @Copy.WithSelf.Op(%T.loc13_7.1) [symbolic = %specific_impl_fn.loc14_11.2 (constants.%specific_impl_fn.7ecd07.1)] +// CHECK:STDOUT: %require_complete.loc13: = require_complete_type %Class.loc13_31.1 [symbolic = %require_complete.loc13 (constants.%require_complete.3b48fd.1)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc13_31.1, %T.as_type.loc13_31.1 [symbolic = %Class.elem (constants.%Class.elem.14b853.1)] +// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %T.as_type.loc13_31.1 [symbolic = %require_complete.loc14 (constants.%require_complete.d83f06.1)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc13_7.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.2)] +// CHECK:STDOUT: %.loc14_11.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc13_7.1 [symbolic = %.loc14_11.3 (constants.%.c29330.1)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc13_7.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c332.1)] +// CHECK:STDOUT: %impl.elem0.loc14_11.2: @G.%.loc14_11.3 (%.c29330.1) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_11.2 (constants.%impl.elem0.bd2456.1)] +// CHECK:STDOUT: %specific_impl_fn.loc14_11.2: = specific_impl_function %impl.elem0.loc14_11.2, @Copy.WithSelf.Op(%T.loc13_7.1) [symbolic = %specific_impl_fn.loc14_11.2 (constants.%specific_impl_fn.e2af7e.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%c.param: @G.%Class.loc13_31.1 (%Class.fd471f.1)) -> out %return.param: @G.%T.as_type.loc13_31.1 (%T.as_type) { +// CHECK:STDOUT: fn(%c.param: @G.%Class.loc13_31.1 (%Class.c74ef3.1)) -> out %return.param: @G.%T.as_type.loc13_31.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: @G.%Class.loc13_31.1 (%Class.fd471f.1) = name_ref c, %c -// CHECK:STDOUT: %x.ref: @G.%Class.elem (%Class.elem.ecafe7.1) = name_ref x, @Class.%.loc6 [concrete = @Class.%.loc6] +// CHECK:STDOUT: %c.ref: @G.%Class.loc13_31.1 (%Class.c74ef3.1) = name_ref c, %c +// CHECK:STDOUT: %x.ref: @G.%Class.elem (%Class.elem.14b853.1) = name_ref x, @Class.%.loc6 [concrete = @Class.%.loc6] // CHECK:STDOUT: %.loc14_11.1: ref @G.%T.as_type.loc13_31.1 (%T.as_type) = class_element_access %c.ref, element0 // CHECK:STDOUT: %.loc14_11.2: @G.%T.as_type.loc13_31.1 (%T.as_type) = acquire_value %.loc14_11.1 -// CHECK:STDOUT: %impl.elem0.loc14_11.1: @G.%.loc14_11.3 (%.e16121.1) = impl_witness_access constants.%Copy.lookup_impl_witness.2ddaf7.1, element0 [symbolic = %impl.elem0.loc14_11.2 (constants.%impl.elem0.41e7eb.1)] +// CHECK:STDOUT: %impl.elem0.loc14_11.1: @G.%.loc14_11.3 (%.c29330.1) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c332.1, element0 [symbolic = %impl.elem0.loc14_11.2 (constants.%impl.elem0.bd2456.1)] // CHECK:STDOUT: %bound_method.loc14_11.1: = bound_method %.loc14_11.2, %impl.elem0.loc14_11.1 -// CHECK:STDOUT: %specific_impl_fn.loc14_11.1: = specific_impl_function %impl.elem0.loc14_11.1, @Copy.WithSelf.Op(constants.%T.f49) [symbolic = %specific_impl_fn.loc14_11.2 (constants.%specific_impl_fn.7ecd07.1)] +// CHECK:STDOUT: %specific_impl_fn.loc14_11.1: = specific_impl_function %impl.elem0.loc14_11.1, @Copy.WithSelf.Op(constants.%T.f84) [symbolic = %specific_impl_fn.loc14_11.2 (constants.%specific_impl_fn.e2af7e.1)] // CHECK:STDOUT: %bound_method.loc14_11.2: = bound_method %.loc14_11.2, %specific_impl_fn.loc14_11.1 // CHECK:STDOUT: %.loc13_37.1: ref @G.%T.as_type.loc13_31.1 (%T.as_type) = splice_block %return.param {} // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @G.%T.as_type.loc13_31.1 (%T.as_type) to %.loc13_37.1 = call %bound_method.loc14_11.2(%.loc14_11.2) @@ -283,35 +283,35 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @H(%U.loc17_7.2: %Copy.type) { -// CHECK:STDOUT: %U.loc17_7.1: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc17_7.1 (constants.%U.f49)] -// CHECK:STDOUT: %U.as_type.loc17_31.1: type = facet_access_type %U.loc17_7.1 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.09c)] -// CHECK:STDOUT: %Class.loc17_31.1: type = class_type @Class, @Class(%U.as_type.loc17_31.1) [symbolic = %Class.loc17_31.1 (constants.%Class.fd471f.2)] -// CHECK:STDOUT: %pattern_type.loc17_22: type = pattern_type %Class.loc17_31.1 [symbolic = %pattern_type.loc17_22 (constants.%pattern_type.9287e8.2)] -// CHECK:STDOUT: %.loc17_37.2: Core.Form = init_form %U.as_type.loc17_31.1 [symbolic = %.loc17_37.2 (constants.%.dedae6.3)] -// CHECK:STDOUT: %pattern_type.loc17_37: type = pattern_type %U.as_type.loc17_31.1 [symbolic = %pattern_type.loc17_37 (constants.%pattern_type.c0fdca.3)] +// CHECK:STDOUT: %U.loc17_7.1: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc17_7.1 (constants.%U.f84)] +// CHECK:STDOUT: %U.as_type.loc17_31.1: type = facet_access_type %U.loc17_7.1 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.c1c)] +// CHECK:STDOUT: %Class.loc17_31.1: type = class_type @Class, @Class(%U.as_type.loc17_31.1) [symbolic = %Class.loc17_31.1 (constants.%Class.c74ef3.2)] +// CHECK:STDOUT: %pattern_type.loc17_22: type = pattern_type %Class.loc17_31.1 [symbolic = %pattern_type.loc17_22 (constants.%pattern_type.6b8c16.2)] +// CHECK:STDOUT: %.loc17_37.2: Core.Form = init_form %U.as_type.loc17_31.1 [symbolic = %.loc17_37.2 (constants.%.1ce700.3)] +// CHECK:STDOUT: %pattern_type.loc17_37: type = pattern_type %U.as_type.loc17_31.1 [symbolic = %pattern_type.loc17_37 (constants.%pattern_type.2c66b4.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc17: = require_complete_type %Class.loc17_31.1 [symbolic = %require_complete.loc17 (constants.%require_complete.892f16.2)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc17_31.1, %U.as_type.loc17_31.1 [symbolic = %Class.elem (constants.%Class.elem.ecafe7.2)] -// CHECK:STDOUT: %require_complete.loc18: = require_complete_type %U.as_type.loc17_31.1 [symbolic = %require_complete.loc18 (constants.%require_complete.77e193.2)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.loc17_7.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.3)] -// CHECK:STDOUT: %.loc18_11.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %U.loc17_7.1 [symbolic = %.loc18_11.3 (constants.%.e16121.2)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %U.loc17_7.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2ddaf7.2)] -// CHECK:STDOUT: %impl.elem0.loc18_11.2: @H.%.loc18_11.3 (%.e16121.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0.41e7eb.2)] -// CHECK:STDOUT: %specific_impl_fn.loc18_11.2: = specific_impl_function %impl.elem0.loc18_11.2, @Copy.WithSelf.Op(%U.loc17_7.1) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn.7ecd07.2)] +// CHECK:STDOUT: %require_complete.loc17: = require_complete_type %Class.loc17_31.1 [symbolic = %require_complete.loc17 (constants.%require_complete.3b48fd.2)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc17_31.1, %U.as_type.loc17_31.1 [symbolic = %Class.elem (constants.%Class.elem.14b853.2)] +// CHECK:STDOUT: %require_complete.loc18: = require_complete_type %U.as_type.loc17_31.1 [symbolic = %require_complete.loc18 (constants.%require_complete.d83f06.2)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.loc17_7.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.3)] +// CHECK:STDOUT: %.loc18_11.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %U.loc17_7.1 [symbolic = %.loc18_11.3 (constants.%.c29330.2)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %U.loc17_7.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c332.2)] +// CHECK:STDOUT: %impl.elem0.loc18_11.2: @H.%.loc18_11.3 (%.c29330.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0.bd2456.2)] +// CHECK:STDOUT: %specific_impl_fn.loc18_11.2: = specific_impl_function %impl.elem0.loc18_11.2, @Copy.WithSelf.Op(%U.loc17_7.1) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn.e2af7e.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%c.param: @H.%Class.loc17_31.1 (%Class.fd471f.2)) -> out %return.param: @H.%U.as_type.loc17_31.1 (%U.as_type.09c) { +// CHECK:STDOUT: fn(%c.param: @H.%Class.loc17_31.1 (%Class.c74ef3.2)) -> out %return.param: @H.%U.as_type.loc17_31.1 (%U.as_type.c1c) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: @H.%Class.loc17_31.1 (%Class.fd471f.2) = name_ref c, %c -// CHECK:STDOUT: %x.ref: @H.%Class.elem (%Class.elem.ecafe7.2) = name_ref x, @Class.%.loc6 [concrete = @Class.%.loc6] -// CHECK:STDOUT: %.loc18_11.1: ref @H.%U.as_type.loc17_31.1 (%U.as_type.09c) = class_element_access %c.ref, element0 -// CHECK:STDOUT: %.loc18_11.2: @H.%U.as_type.loc17_31.1 (%U.as_type.09c) = acquire_value %.loc18_11.1 -// CHECK:STDOUT: %impl.elem0.loc18_11.1: @H.%.loc18_11.3 (%.e16121.2) = impl_witness_access constants.%Copy.lookup_impl_witness.2ddaf7.2, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0.41e7eb.2)] +// CHECK:STDOUT: %c.ref: @H.%Class.loc17_31.1 (%Class.c74ef3.2) = name_ref c, %c +// CHECK:STDOUT: %x.ref: @H.%Class.elem (%Class.elem.14b853.2) = name_ref x, @Class.%.loc6 [concrete = @Class.%.loc6] +// CHECK:STDOUT: %.loc18_11.1: ref @H.%U.as_type.loc17_31.1 (%U.as_type.c1c) = class_element_access %c.ref, element0 +// CHECK:STDOUT: %.loc18_11.2: @H.%U.as_type.loc17_31.1 (%U.as_type.c1c) = acquire_value %.loc18_11.1 +// CHECK:STDOUT: %impl.elem0.loc18_11.1: @H.%.loc18_11.3 (%.c29330.2) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c332.2, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0.bd2456.2)] // CHECK:STDOUT: %bound_method.loc18_11.1: = bound_method %.loc18_11.2, %impl.elem0.loc18_11.1 -// CHECK:STDOUT: %specific_impl_fn.loc18_11.1: = specific_impl_function %impl.elem0.loc18_11.1, @Copy.WithSelf.Op(constants.%U.f49) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn.7ecd07.2)] +// CHECK:STDOUT: %specific_impl_fn.loc18_11.1: = specific_impl_function %impl.elem0.loc18_11.1, @Copy.WithSelf.Op(constants.%U.f84) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn.e2af7e.2)] // CHECK:STDOUT: %bound_method.loc18_11.2: = bound_method %.loc18_11.2, %specific_impl_fn.loc18_11.1 -// CHECK:STDOUT: %.loc17_37.1: ref @H.%U.as_type.loc17_31.1 (%U.as_type.09c) = splice_block %return.param {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @H.%U.as_type.loc17_31.1 (%U.as_type.09c) to %.loc17_37.1 = call %bound_method.loc18_11.2(%.loc18_11.2) +// CHECK:STDOUT: %.loc17_37.1: ref @H.%U.as_type.loc17_31.1 (%U.as_type.c1c) = splice_block %return.param {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @H.%U.as_type.loc17_31.1 (%U.as_type.c1c) to %.loc17_37.1 = call %bound_method.loc18_11.2(%.loc18_11.2) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -325,49 +325,49 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %Class => constants.%Class.4e5 -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.3ae -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.06a -// CHECK:STDOUT: %complete_type.loc7_1.2 => constants.%complete_type.9a8 +// CHECK:STDOUT: %Class => constants.%Class.1b7 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.344 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.a15 +// CHECK:STDOUT: %complete_type.loc7_1.2 => constants.%complete_type.0c6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T.as_type) { // CHECK:STDOUT: %T.loc5_14.1 => constants.%T.as_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.77e193.1 -// CHECK:STDOUT: %Class => constants.%Class.fd471f.1 -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.ecafe7.1 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.419606.1 -// CHECK:STDOUT: %complete_type.loc7_1.2 => constants.%complete_type.dd36b8.1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.d83f06.1 +// CHECK:STDOUT: %Class => constants.%Class.c74ef3.1 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.14b853.1 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.ac1e9e.1 +// CHECK:STDOUT: %complete_type.loc7_1.2 => constants.%complete_type.b8dd1a.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G(constants.%T.f49) { -// CHECK:STDOUT: %T.loc13_7.1 => constants.%T.f49 +// CHECK:STDOUT: specific @G(constants.%T.f84) { +// CHECK:STDOUT: %T.loc13_7.1 => constants.%T.f84 // CHECK:STDOUT: %T.as_type.loc13_31.1 => constants.%T.as_type -// CHECK:STDOUT: %Class.loc13_31.1 => constants.%Class.fd471f.1 -// CHECK:STDOUT: %pattern_type.loc13_22 => constants.%pattern_type.9287e8.1 -// CHECK:STDOUT: %.loc13_37.2 => constants.%.dedae6.2 -// CHECK:STDOUT: %pattern_type.loc13_37 => constants.%pattern_type.c0fdca.2 +// CHECK:STDOUT: %Class.loc13_31.1 => constants.%Class.c74ef3.1 +// CHECK:STDOUT: %pattern_type.loc13_22 => constants.%pattern_type.6b8c16.1 +// CHECK:STDOUT: %.loc13_37.2 => constants.%.1ce700.2 +// CHECK:STDOUT: %pattern_type.loc13_37 => constants.%pattern_type.2c66b4.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%U.as_type.09c) { -// CHECK:STDOUT: %T.loc5_14.1 => constants.%U.as_type.09c +// CHECK:STDOUT: specific @Class(constants.%U.as_type.c1c) { +// CHECK:STDOUT: %T.loc5_14.1 => constants.%U.as_type.c1c // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.77e193.2 -// CHECK:STDOUT: %Class => constants.%Class.fd471f.2 -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.ecafe7.2 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.419606.2 -// CHECK:STDOUT: %complete_type.loc7_1.2 => constants.%complete_type.dd36b8.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.d83f06.2 +// CHECK:STDOUT: %Class => constants.%Class.c74ef3.2 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.14b853.2 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.ac1e9e.2 +// CHECK:STDOUT: %complete_type.loc7_1.2 => constants.%complete_type.b8dd1a.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @H(constants.%U.f49) { -// CHECK:STDOUT: %U.loc17_7.1 => constants.%U.f49 -// CHECK:STDOUT: %U.as_type.loc17_31.1 => constants.%U.as_type.09c -// CHECK:STDOUT: %Class.loc17_31.1 => constants.%Class.fd471f.2 -// CHECK:STDOUT: %pattern_type.loc17_22 => constants.%pattern_type.9287e8.2 -// CHECK:STDOUT: %.loc17_37.2 => constants.%.dedae6.3 -// CHECK:STDOUT: %pattern_type.loc17_37 => constants.%pattern_type.c0fdca.3 +// CHECK:STDOUT: specific @H(constants.%U.f84) { +// CHECK:STDOUT: %U.loc17_7.1 => constants.%U.f84 +// CHECK:STDOUT: %U.as_type.loc17_31.1 => constants.%U.as_type.c1c +// CHECK:STDOUT: %Class.loc17_31.1 => constants.%Class.c74ef3.2 +// CHECK:STDOUT: %pattern_type.loc17_22 => constants.%pattern_type.6b8c16.2 +// CHECK:STDOUT: %.loc17_37.2 => constants.%.1ce700.3 +// CHECK:STDOUT: %pattern_type.loc17_37 => constants.%pattern_type.2c66b4.3 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/generic_vs_params.carbon b/toolchain/check/testdata/class/generic/generic_vs_params.carbon index db18f813bb2f..366de750f902 100644 --- a/toolchain/check/testdata/class/generic/generic_vs_params.carbon +++ b/toolchain/check/testdata/class/generic/generic_vs_params.carbon @@ -91,35 +91,35 @@ class Foo[T:! type]; // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %GenericAndParams.type.d85: type = generic_class_type @GenericAndParams.loc6 [concrete] -// CHECK:STDOUT: %GenericAndParams.generic.29c: %GenericAndParams.type.d85 = struct_value () [concrete] -// CHECK:STDOUT: %GenericAndParams.dd1: type = class_type @GenericAndParams.loc6, @GenericAndParams.loc6(%T) [symbolic] +// CHECK:STDOUT: %GenericAndParams.type.aa5: type = generic_class_type @GenericAndParams.loc6 [concrete] +// CHECK:STDOUT: %GenericAndParams.generic.128: %GenericAndParams.type.aa5 = struct_value () [concrete] +// CHECK:STDOUT: %GenericAndParams.bd1: type = class_type @GenericAndParams.loc6, @GenericAndParams.loc6(%T) [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%T) [symbolic] -// CHECK:STDOUT: %GenericNoParams.f81: type = class_type @GenericNoParams, @GenericNoParams(%T) [symbolic] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %GenericNoParams.8d1: type = class_type @GenericNoParams, @GenericNoParams(%T) [symbolic] // CHECK:STDOUT: %U: type = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %GenericAndParams.type.b76: type = generic_class_type @GenericAndParams.loc10, @C(%T) [symbolic] -// CHECK:STDOUT: %GenericAndParams.generic.055: %GenericAndParams.type.b76 = struct_value () [symbolic] -// CHECK:STDOUT: %GenericAndParams.2d6: type = class_type @GenericAndParams.loc10, @GenericAndParams.loc10(%T, %U) [symbolic] +// CHECK:STDOUT: %GenericAndParams.type.c37: type = generic_class_type @GenericAndParams.loc10, @C(%T) [symbolic] +// CHECK:STDOUT: %GenericAndParams.generic.6c8: %GenericAndParams.type.c37 = struct_value () [symbolic] +// CHECK:STDOUT: %GenericAndParams.423: type = class_type @GenericAndParams.loc10, @GenericAndParams.loc10(%T, %U) [symbolic] // CHECK:STDOUT: %X: type = class_type @X [concrete] -// CHECK:STDOUT: %pattern_type.e27: type = pattern_type %NotGenericNoParams [concrete] +// CHECK:STDOUT: %pattern_type.2dc: type = pattern_type %NotGenericNoParams [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %NotGenericNoParams.val: %NotGenericNoParams = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.082: type = pattern_type %NotGenericButParams [concrete] +// CHECK:STDOUT: %pattern_type.8e7: type = pattern_type %NotGenericButParams [concrete] // CHECK:STDOUT: %NotGenericButParams.val: %NotGenericButParams = struct_value () [concrete] -// CHECK:STDOUT: %GenericAndParams.3d8: type = class_type @GenericAndParams.loc6, @GenericAndParams.loc6(%X) [concrete] -// CHECK:STDOUT: %pattern_type.130: type = pattern_type %GenericAndParams.3d8 [concrete] -// CHECK:STDOUT: %GenericAndParams.val.070: %GenericAndParams.3d8 = struct_value () [concrete] -// CHECK:STDOUT: %C.7b5: type = class_type @C, @C(%X) [concrete] -// CHECK:STDOUT: %GenericNoParams.936: type = class_type @GenericNoParams, @GenericNoParams(%X) [concrete] -// CHECK:STDOUT: %GenericAndParams.type.2f5: type = generic_class_type @GenericAndParams.loc10, @C(%X) [concrete] -// CHECK:STDOUT: %GenericAndParams.generic.23f: %GenericAndParams.type.2f5 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.953: type = pattern_type %GenericNoParams.936 [concrete] -// CHECK:STDOUT: %GenericNoParams.val: %GenericNoParams.936 = struct_value () [concrete] -// CHECK:STDOUT: %GenericAndParams.bf8: type = class_type @GenericAndParams.loc10, @GenericAndParams.loc10(%X, %X) [concrete] -// CHECK:STDOUT: %pattern_type.2d5: type = pattern_type %GenericAndParams.bf8 [concrete] -// CHECK:STDOUT: %GenericAndParams.val.afa: %GenericAndParams.bf8 = struct_value () [concrete] +// CHECK:STDOUT: %GenericAndParams.421: type = class_type @GenericAndParams.loc6, @GenericAndParams.loc6(%X) [concrete] +// CHECK:STDOUT: %pattern_type.053: type = pattern_type %GenericAndParams.421 [concrete] +// CHECK:STDOUT: %GenericAndParams.val.83c: %GenericAndParams.421 = struct_value () [concrete] +// CHECK:STDOUT: %C.a43: type = class_type @C, @C(%X) [concrete] +// CHECK:STDOUT: %GenericNoParams.ee8: type = class_type @GenericNoParams, @GenericNoParams(%X) [concrete] +// CHECK:STDOUT: %GenericAndParams.type.4b3: type = generic_class_type @GenericAndParams.loc10, @C(%X) [concrete] +// CHECK:STDOUT: %GenericAndParams.generic.e4e: %GenericAndParams.type.4b3 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.a4a: type = pattern_type %GenericNoParams.ee8 [concrete] +// CHECK:STDOUT: %GenericNoParams.val: %GenericNoParams.ee8 = struct_value () [concrete] +// CHECK:STDOUT: %GenericAndParams.353: type = class_type @GenericAndParams.loc10, @GenericAndParams.loc10(%X, %X) [concrete] +// CHECK:STDOUT: %pattern_type.4e2: type = pattern_type %GenericAndParams.353 [concrete] +// CHECK:STDOUT: %GenericAndParams.val.150: %GenericAndParams.353 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -137,7 +137,7 @@ class Foo[T:! type]; // CHECK:STDOUT: } // CHECK:STDOUT: %NotGenericNoParams.decl: type = class_decl @NotGenericNoParams [concrete = constants.%NotGenericNoParams] {} {} // CHECK:STDOUT: %NotGenericButParams.decl: %NotGenericButParams.type = class_decl @NotGenericButParams [concrete = constants.%NotGenericButParams.generic] {} {} -// CHECK:STDOUT: %GenericAndParams.decl: %GenericAndParams.type.d85 = class_decl @GenericAndParams.loc6 [concrete = constants.%GenericAndParams.generic.29c] { +// CHECK:STDOUT: %GenericAndParams.decl: %GenericAndParams.type.aa5 = class_decl @GenericAndParams.loc6 [concrete = constants.%GenericAndParams.generic.128] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6_28.1: type = splice_block %.loc6_28.2 [concrete = type] { @@ -157,15 +157,15 @@ class Foo[T:! type]; // CHECK:STDOUT: } // CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {} // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.e27 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.e27 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.2dc = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.2dc = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %NotGenericNoParams = var %a.var_patt [concrete] // CHECK:STDOUT: %NotGenericNoParams.ref: type = name_ref NotGenericNoParams, %NotGenericNoParams.decl [concrete = constants.%NotGenericNoParams] // CHECK:STDOUT: %a: ref %NotGenericNoParams = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.082 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.082 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.8e7 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.8e7 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %NotGenericButParams = var %b.var_patt [concrete] // CHECK:STDOUT: %.loc16: type = splice_block %NotGenericButParams [concrete = constants.%NotGenericButParams] { @@ -174,44 +174,44 @@ class Foo[T:! type]; // CHECK:STDOUT: } // CHECK:STDOUT: %b: ref %NotGenericButParams = ref_binding b, %b.var [concrete = %b.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.130 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.130 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.053 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.053 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %c.var: ref %GenericAndParams.3d8 = var %c.var_patt [concrete] -// CHECK:STDOUT: %.loc17: type = splice_block %GenericAndParams.loc17 [concrete = constants.%GenericAndParams.3d8] { -// CHECK:STDOUT: %GenericAndParams.ref.loc17: %GenericAndParams.type.d85 = name_ref GenericAndParams, %GenericAndParams.decl [concrete = constants.%GenericAndParams.generic.29c] +// CHECK:STDOUT: %c.var: ref %GenericAndParams.421 = var %c.var_patt [concrete] +// CHECK:STDOUT: %.loc17: type = splice_block %GenericAndParams.loc17 [concrete = constants.%GenericAndParams.421] { +// CHECK:STDOUT: %GenericAndParams.ref.loc17: %GenericAndParams.type.aa5 = name_ref GenericAndParams, %GenericAndParams.decl [concrete = constants.%GenericAndParams.generic.128] // CHECK:STDOUT: %X.ref.loc17: type = name_ref X, %X.decl [concrete = constants.%X] -// CHECK:STDOUT: %GenericAndParams.loc17: type = class_type @GenericAndParams.loc6, @GenericAndParams.loc6(constants.%X) [concrete = constants.%GenericAndParams.3d8] +// CHECK:STDOUT: %GenericAndParams.loc17: type = class_type @GenericAndParams.loc6, @GenericAndParams.loc6(constants.%X) [concrete = constants.%GenericAndParams.421] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: ref %GenericAndParams.3d8 = ref_binding c, %c.var [concrete = %c.var] +// CHECK:STDOUT: %c: ref %GenericAndParams.421 = ref_binding c, %c.var [concrete = %c.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.953 = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.953 = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.a4a = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.a4a = var_pattern %d.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %d.var: ref %GenericNoParams.936 = var %d.var_patt [concrete] -// CHECK:STDOUT: %.loc18_12.1: type = splice_block %GenericNoParams.ref [concrete = constants.%GenericNoParams.936] { +// CHECK:STDOUT: %d.var: ref %GenericNoParams.ee8 = var %d.var_patt [concrete] +// CHECK:STDOUT: %.loc18_12.1: type = splice_block %GenericNoParams.ref [concrete = constants.%GenericNoParams.ee8] { // CHECK:STDOUT: %C.ref.loc18: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %X.ref.loc18: type = name_ref X, %X.decl [concrete = constants.%X] -// CHECK:STDOUT: %C.loc18: type = class_type @C, @C(constants.%X) [concrete = constants.%C.7b5] -// CHECK:STDOUT: %.loc18_12.2: type = specific_constant @C.%GenericNoParams.decl, @C(constants.%X) [concrete = constants.%GenericNoParams.936] -// CHECK:STDOUT: %GenericNoParams.ref: type = name_ref GenericNoParams, %.loc18_12.2 [concrete = constants.%GenericNoParams.936] +// CHECK:STDOUT: %C.loc18: type = class_type @C, @C(constants.%X) [concrete = constants.%C.a43] +// CHECK:STDOUT: %.loc18_12.2: type = specific_constant @C.%GenericNoParams.decl, @C(constants.%X) [concrete = constants.%GenericNoParams.ee8] +// CHECK:STDOUT: %GenericNoParams.ref: type = name_ref GenericNoParams, %.loc18_12.2 [concrete = constants.%GenericNoParams.ee8] // CHECK:STDOUT: } -// CHECK:STDOUT: %d: ref %GenericNoParams.936 = ref_binding d, %d.var [concrete = %d.var] +// CHECK:STDOUT: %d: ref %GenericNoParams.ee8 = ref_binding d, %d.var [concrete = %d.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %e.patt: %pattern_type.2d5 = ref_binding_pattern e [concrete] -// CHECK:STDOUT: %e.var_patt: %pattern_type.2d5 = var_pattern %e.patt [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.4e2 = ref_binding_pattern e [concrete] +// CHECK:STDOUT: %e.var_patt: %pattern_type.4e2 = var_pattern %e.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %e.var: ref %GenericAndParams.bf8 = var %e.var_patt [concrete] -// CHECK:STDOUT: %.loc19_31: type = splice_block %GenericAndParams.loc19 [concrete = constants.%GenericAndParams.bf8] { +// CHECK:STDOUT: %e.var: ref %GenericAndParams.353 = var %e.var_patt [concrete] +// CHECK:STDOUT: %.loc19_31: type = splice_block %GenericAndParams.loc19 [concrete = constants.%GenericAndParams.353] { // CHECK:STDOUT: %C.ref.loc19: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %X.ref.loc19_10: type = name_ref X, %X.decl [concrete = constants.%X] -// CHECK:STDOUT: %C.loc19: type = class_type @C, @C(constants.%X) [concrete = constants.%C.7b5] -// CHECK:STDOUT: %.loc19_12: %GenericAndParams.type.2f5 = specific_constant @C.%GenericAndParams.decl, @C(constants.%X) [concrete = constants.%GenericAndParams.generic.23f] -// CHECK:STDOUT: %GenericAndParams.ref.loc19: %GenericAndParams.type.2f5 = name_ref GenericAndParams, %.loc19_12 [concrete = constants.%GenericAndParams.generic.23f] +// CHECK:STDOUT: %C.loc19: type = class_type @C, @C(constants.%X) [concrete = constants.%C.a43] +// CHECK:STDOUT: %.loc19_12: %GenericAndParams.type.4b3 = specific_constant @C.%GenericAndParams.decl, @C(constants.%X) [concrete = constants.%GenericAndParams.generic.e4e] +// CHECK:STDOUT: %GenericAndParams.ref.loc19: %GenericAndParams.type.4b3 = name_ref GenericAndParams, %.loc19_12 [concrete = constants.%GenericAndParams.generic.e4e] // CHECK:STDOUT: %X.ref.loc19_30: type = name_ref X, %X.decl [concrete = constants.%X] -// CHECK:STDOUT: %GenericAndParams.loc19: type = class_type @GenericAndParams.loc10, @GenericAndParams.loc10(constants.%X, constants.%X) [concrete = constants.%GenericAndParams.bf8] +// CHECK:STDOUT: %GenericAndParams.loc19: type = class_type @GenericAndParams.loc10, @GenericAndParams.loc10(constants.%X, constants.%X) [concrete = constants.%GenericAndParams.353] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: ref %GenericAndParams.bf8 = ref_binding e, %e.var [concrete = %e.var] +// CHECK:STDOUT: %e: ref %GenericAndParams.353 = ref_binding e, %e.var [concrete = %e.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NotGenericNoParams { @@ -240,7 +240,7 @@ class Foo[T:! type]; // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%GenericAndParams.dd1 +// CHECK:STDOUT: .Self = constants.%GenericAndParams.bd1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -248,13 +248,13 @@ class Foo[T:! type]; // CHECK:STDOUT: %T.loc8_10.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_10.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericNoParams: type = class_type @GenericNoParams, @GenericNoParams(%T.loc8_10.1) [symbolic = %GenericNoParams (constants.%GenericNoParams.f81)] -// CHECK:STDOUT: %GenericAndParams.type: type = generic_class_type @GenericAndParams.loc10, @C(%T.loc8_10.1) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.b76)] -// CHECK:STDOUT: %GenericAndParams.generic: @C.%GenericAndParams.type (%GenericAndParams.type.b76) = struct_value () [symbolic = %GenericAndParams.generic (constants.%GenericAndParams.generic.055)] +// CHECK:STDOUT: %GenericNoParams: type = class_type @GenericNoParams, @GenericNoParams(%T.loc8_10.1) [symbolic = %GenericNoParams (constants.%GenericNoParams.8d1)] +// CHECK:STDOUT: %GenericAndParams.type: type = generic_class_type @GenericAndParams.loc10, @C(%T.loc8_10.1) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.c37)] +// CHECK:STDOUT: %GenericAndParams.generic: @C.%GenericAndParams.type (%GenericAndParams.type.c37) = struct_value () [symbolic = %GenericAndParams.generic (constants.%GenericAndParams.generic.6c8)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %GenericNoParams.decl: type = class_decl @GenericNoParams [symbolic = @C.%GenericNoParams (constants.%GenericNoParams.f81)] {} {} -// CHECK:STDOUT: %GenericAndParams.decl: @C.%GenericAndParams.type (%GenericAndParams.type.b76) = class_decl @GenericAndParams.loc10 [symbolic = @C.%GenericAndParams.generic (constants.%GenericAndParams.generic.055)] { +// CHECK:STDOUT: %GenericNoParams.decl: type = class_decl @GenericNoParams [symbolic = @C.%GenericNoParams (constants.%GenericNoParams.8d1)] {} {} +// CHECK:STDOUT: %GenericAndParams.decl: @C.%GenericAndParams.type (%GenericAndParams.type.c37) = class_decl @GenericAndParams.loc10 [symbolic = @C.%GenericAndParams.generic (constants.%GenericAndParams.generic.6c8)] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10_30.1: type = splice_block %.loc10_30.2 [concrete = type] { @@ -267,7 +267,7 @@ class Foo[T:! type]; // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.1f9 +// CHECK:STDOUT: .Self = constants.%C.1d0 // CHECK:STDOUT: .GenericNoParams = %GenericNoParams.decl // CHECK:STDOUT: .GenericAndParams = %GenericAndParams.decl // CHECK:STDOUT: } @@ -281,7 +281,7 @@ class Foo[T:! type]; // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%GenericNoParams.f81 +// CHECK:STDOUT: .Self = constants.%GenericNoParams.8d1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -295,7 +295,7 @@ class Foo[T:! type]; // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%GenericAndParams.2d6 +// CHECK:STDOUT: .Self = constants.%GenericAndParams.423 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -318,16 +318,16 @@ class Foo[T:! type]; // CHECK:STDOUT: %.loc16_1: init %NotGenericButParams = converted %.loc16_33.1, %.loc16_33.2 [concrete = constants.%NotGenericButParams.val] // CHECK:STDOUT: assign file.%b.var, %.loc16_1 // CHECK:STDOUT: %.loc17_31.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc17_31.2: init %GenericAndParams.3d8 to file.%c.var = class_init () [concrete = constants.%GenericAndParams.val.070] -// CHECK:STDOUT: %.loc17_1: init %GenericAndParams.3d8 = converted %.loc17_31.1, %.loc17_31.2 [concrete = constants.%GenericAndParams.val.070] +// CHECK:STDOUT: %.loc17_31.2: init %GenericAndParams.421 to file.%c.var = class_init () [concrete = constants.%GenericAndParams.val.83c] +// CHECK:STDOUT: %.loc17_1: init %GenericAndParams.421 = converted %.loc17_31.1, %.loc17_31.2 [concrete = constants.%GenericAndParams.val.83c] // CHECK:STDOUT: assign file.%c.var, %.loc17_1 // CHECK:STDOUT: %.loc18_32.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc18_32.2: init %GenericNoParams.936 to file.%d.var = class_init () [concrete = constants.%GenericNoParams.val] -// CHECK:STDOUT: %.loc18_1: init %GenericNoParams.936 = converted %.loc18_32.1, %.loc18_32.2 [concrete = constants.%GenericNoParams.val] +// CHECK:STDOUT: %.loc18_32.2: init %GenericNoParams.ee8 to file.%d.var = class_init () [concrete = constants.%GenericNoParams.val] +// CHECK:STDOUT: %.loc18_1: init %GenericNoParams.ee8 = converted %.loc18_32.1, %.loc18_32.2 [concrete = constants.%GenericNoParams.val] // CHECK:STDOUT: assign file.%d.var, %.loc18_1 // CHECK:STDOUT: %.loc19_36.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc19_36.2: init %GenericAndParams.bf8 to file.%e.var = class_init () [concrete = constants.%GenericAndParams.val.afa] -// CHECK:STDOUT: %.loc19_1: init %GenericAndParams.bf8 = converted %.loc19_36.1, %.loc19_36.2 [concrete = constants.%GenericAndParams.val.afa] +// CHECK:STDOUT: %.loc19_36.2: init %GenericAndParams.353 to file.%e.var = class_init () [concrete = constants.%GenericAndParams.val.150] +// CHECK:STDOUT: %.loc19_1: init %GenericAndParams.353 = converted %.loc19_36.1, %.loc19_36.2 [concrete = constants.%GenericAndParams.val.150] // CHECK:STDOUT: assign file.%e.var, %.loc19_1 // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -356,9 +356,9 @@ class Foo[T:! type]; // CHECK:STDOUT: %T.loc8_10.1 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericNoParams => constants.%GenericNoParams.936 -// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.2f5 -// CHECK:STDOUT: %GenericAndParams.generic => constants.%GenericAndParams.generic.23f +// CHECK:STDOUT: %GenericNoParams => constants.%GenericNoParams.ee8 +// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.4b3 +// CHECK:STDOUT: %GenericAndParams.generic => constants.%GenericAndParams.generic.e4e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericNoParams(constants.%X) { diff --git a/toolchain/check/testdata/class/generic/import.carbon b/toolchain/check/testdata/class/generic/import.carbon index fa9dd49f52cf..bef89b0dcab5 100644 --- a/toolchain/check/testdata/class/generic/import.carbon +++ b/toolchain/check/testdata/class/generic/import.carbon @@ -99,38 +99,38 @@ class Class(U:! type) { // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] // CHECK:STDOUT: %CompleteClass.type: type = generic_class_type @CompleteClass [concrete] // CHECK:STDOUT: %CompleteClass.generic: %CompleteClass.type = struct_value () [concrete] -// CHECK:STDOUT: %CompleteClass.e87: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic] +// CHECK:STDOUT: %CompleteClass.bae: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type %CompleteClass.e87, %i32 [symbolic] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type %CompleteClass.bae, %i32 [symbolic] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %CompleteClass.F.type: type = fn_type @CompleteClass.F, @CompleteClass(%T) [symbolic] // CHECK:STDOUT: %CompleteClass.F: %CompleteClass.F.type = struct_value () [symbolic] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [concrete] -// CHECK:STDOUT: %complete_type.edf: = complete_type_witness %struct_type.n [concrete] +// CHECK:STDOUT: %complete_type.cdf: = complete_type_witness %struct_type.n [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %CompleteClass.818: type = class_type @CompleteClass, @CompleteClass(%i32) [concrete] -// CHECK:STDOUT: %.d12: Core.Form = init_form %CompleteClass.818 [concrete] -// CHECK:STDOUT: %pattern_type.28b: type = pattern_type %CompleteClass.818 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %CompleteClass.d55: type = class_type @CompleteClass, @CompleteClass(%i32) [concrete] +// CHECK:STDOUT: %.290: Core.Form = init_form %CompleteClass.d55 [concrete] +// CHECK:STDOUT: %pattern_type.97d: type = pattern_type %CompleteClass.d55 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -143,9 +143,9 @@ class Class(U:! type) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -175,15 +175,15 @@ class Class(U:! type) { // CHECK:STDOUT: %T.loc6_22.2: type = symbolic_binding T, 0 [symbolic = %T.loc6_22.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.28b = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.28b = return_slot_pattern %return.param_patt, %CompleteClass [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.97d = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.97d = return_slot_pattern %return.param_patt, %CompleteClass [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %CompleteClass.ref: %CompleteClass.type = name_ref CompleteClass, file.%CompleteClass.decl [concrete = constants.%CompleteClass.generic] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%i32) [concrete = constants.%CompleteClass.818] -// CHECK:STDOUT: %.loc11: Core.Form = init_form %CompleteClass [concrete = constants.%.d12] -// CHECK:STDOUT: %return.param: ref %CompleteClass.818 = out_param call_param0 -// CHECK:STDOUT: %return: ref %CompleteClass.818 = return_slot %return.param +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%i32) [concrete = constants.%CompleteClass.d55] +// CHECK:STDOUT: %.loc11: Core.Form = init_form %CompleteClass [concrete = constants.%.290] +// CHECK:STDOUT: %return.param: ref %CompleteClass.d55 = out_param call_param0 +// CHECK:STDOUT: %return: ref %CompleteClass.d55 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -197,7 +197,7 @@ class Class(U:! type) { // CHECK:STDOUT: %T.loc6_22.1: type = symbolic_binding T, 0 [symbolic = %T.loc6_22.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T.loc6_22.1) [symbolic = %CompleteClass (constants.%CompleteClass.e87)] +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T.loc6_22.1) [symbolic = %CompleteClass (constants.%CompleteClass.bae)] // CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type %CompleteClass, constants.%i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem)] // CHECK:STDOUT: %CompleteClass.F.type: type = fn_type @CompleteClass.F, @CompleteClass(%T.loc6_22.1) [symbolic = %CompleteClass.F.type (constants.%CompleteClass.F.type)] // CHECK:STDOUT: %CompleteClass.F: @CompleteClass.%CompleteClass.F.type (%CompleteClass.F.type) = struct_value () [symbolic = %CompleteClass.F (constants.%CompleteClass.F)] @@ -205,19 +205,19 @@ class Class(U:! type) { // CHECK:STDOUT: class { // CHECK:STDOUT: %.loc7: @CompleteClass.%CompleteClass.elem (%CompleteClass.elem) = field_decl n, element0 [concrete] // CHECK:STDOUT: %CompleteClass.F.decl: @CompleteClass.%CompleteClass.F.type (%CompleteClass.F.type) = fn_decl @CompleteClass.F [symbolic = @CompleteClass.%CompleteClass.F (constants.%CompleteClass.F)] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc8_13: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc8_13: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.edf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.cdf] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%CompleteClass.e87 +// CHECK:STDOUT: .Self = constants.%CompleteClass.bae // CHECK:STDOUT: .n = %.loc7 // CHECK:STDOUT: .F = %CompleteClass.F.decl // CHECK:STDOUT: } @@ -229,17 +229,17 @@ class Class(U:! type) { // CHECK:STDOUT: fn() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_27.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_27.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_27.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc8_27: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_27.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc8_27: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: return %.loc8_27 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> out %return.param: %CompleteClass.818; +// CHECK:STDOUT: fn @F() -> out %return.param: %CompleteClass.d55; // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { // CHECK:STDOUT: %T.loc4_14.1 => constants.%T @@ -249,7 +249,7 @@ class Class(U:! type) { // CHECK:STDOUT: %T.loc6_22.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.e87 +// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.bae // CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem // CHECK:STDOUT: %CompleteClass.F.type => constants.%CompleteClass.F.type // CHECK:STDOUT: %CompleteClass.F => constants.%CompleteClass.F @@ -267,11 +267,11 @@ class Class(U:! type) { // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.b95: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.b95 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.867: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.c67: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.867 = struct_value () [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] @@ -286,56 +286,56 @@ class Class(U:! type) { // CHECK:STDOUT: %CompleteClass.generic: %CompleteClass.type = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %struct_type.n.c42: type = struct_type {.n: %i32} [concrete] -// CHECK:STDOUT: %complete_type.298: = complete_type_witness %struct_type.n.c42 [concrete] -// CHECK:STDOUT: %CompleteClass.e87: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic] -// CHECK:STDOUT: %CompleteClass.F.type.55f: type = fn_type @CompleteClass.F, @CompleteClass(%T) [symbolic] -// CHECK:STDOUT: %CompleteClass.F.fb1: %CompleteClass.F.type.55f = struct_value () [symbolic] -// CHECK:STDOUT: %CompleteClass.elem.e53: type = unbound_element_type %CompleteClass.e87, %i32 [symbolic] -// CHECK:STDOUT: %CompleteClass.8c0: type = class_type @CompleteClass, @CompleteClass(%i32) [concrete] -// CHECK:STDOUT: %.15c: Core.Form = init_form %CompleteClass.8c0 [concrete] -// CHECK:STDOUT: %pattern_type.3f4: type = pattern_type %CompleteClass.8c0 [concrete] +// CHECK:STDOUT: %struct_type.n.9ed: type = struct_type {.n: %i32} [concrete] +// CHECK:STDOUT: %complete_type.cdf: = complete_type_witness %struct_type.n.9ed [concrete] +// CHECK:STDOUT: %CompleteClass.bae: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic] +// CHECK:STDOUT: %CompleteClass.F.type.4ea: type = fn_type @CompleteClass.F, @CompleteClass(%T) [symbolic] +// CHECK:STDOUT: %CompleteClass.F.c7a: %CompleteClass.F.type.4ea = struct_value () [symbolic] +// CHECK:STDOUT: %CompleteClass.elem.c1f: type = unbound_element_type %CompleteClass.bae, %i32 [symbolic] +// CHECK:STDOUT: %CompleteClass.d55: type = class_type @CompleteClass, @CompleteClass(%i32) [concrete] +// CHECK:STDOUT: %.290: Core.Form = init_form %CompleteClass.d55 [concrete] +// CHECK:STDOUT: %pattern_type.97d: type = pattern_type %CompleteClass.d55 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %CompleteClass.elem.337: type = unbound_element_type %CompleteClass.8c0, %i32 [concrete] -// CHECK:STDOUT: %CompleteClass.F.type.8a2: type = fn_type @CompleteClass.F, @CompleteClass(%i32) [concrete] -// CHECK:STDOUT: %CompleteClass.F.e56: %CompleteClass.F.type.8a2 = struct_value () [concrete] +// CHECK:STDOUT: %CompleteClass.elem.2cc: type = unbound_element_type %CompleteClass.d55, %i32 [concrete] +// CHECK:STDOUT: %CompleteClass.F.type.dac: type = fn_type @CompleteClass.F, @CompleteClass(%i32) [concrete] +// CHECK:STDOUT: %CompleteClass.F.623: %CompleteClass.F.type.dac = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.n.44a: type = struct_type {.n: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.n.44a = struct_value (%int_1.5b8) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.e71: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3bc: = impl_witness imports.%ImplicitAs.impl_witness_table.6a8, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.777: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.6e2: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.777 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.e71 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3bc) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b69: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.7e8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b69, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.6e2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.6e2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.778: = impl_witness imports.%ImplicitAs.impl_witness_table.1f3, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.778) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2eb: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.d74: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2eb, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.6b0: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %CompleteClass.val: %CompleteClass.8c0 = struct_value (%int_1.6b0) [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %CompleteClass.val: %CompleteClass.d55 = struct_value (%int_1.0c6) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.CompleteClass: %CompleteClass.type = import_ref Main//foo, CompleteClass, loaded [concrete = constants.%CompleteClass.generic] -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import, [concrete] { +// CHECK:STDOUT: %Core.048aa3.1: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .Int = %Core.Int // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.b8a: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.867) = import_ref Main//foo, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.c67)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.6a8 = impl_witness_table (%Main.import_ref.b8a), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.717: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Main//foo, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.1f3 = impl_witness_table (%Main.import_ref.717), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Main.import_ref.b3bc94.1: type = import_ref Main//foo, loc4_14, loaded [symbolic = @Class.%T.1 (constants.%T)] // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//foo, loc6_22, loaded [symbolic = @CompleteClass.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.67b: = import_ref Main//foo, loc9_1, loaded [concrete = constants.%complete_type.298] -// CHECK:STDOUT: %Main.import_ref.684 = import_ref Main//foo, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.760 = import_ref Main//foo, loc7_8, unloaded -// CHECK:STDOUT: %Main.import_ref.0f8 = import_ref Main//foo, loc8_17, unloaded +// CHECK:STDOUT: %Main.import_ref.0aa: = import_ref Main//foo, loc9_1, loaded [concrete = constants.%complete_type.cdf] +// CHECK:STDOUT: %Main.import_ref.5db = import_ref Main//foo, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.29d = import_ref Main//foo, loc7_8, unloaded +// CHECK:STDOUT: %Main.import_ref.a02 = import_ref Main//foo, loc8_17, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//foo, loc6_22, loaded [symbolic = @CompleteClass.%T (constants.%T)] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.b95 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -343,7 +343,7 @@ class Class(U:! type) { // CHECK:STDOUT: .Class = %Class.decl // CHECK:STDOUT: .CompleteClass = imports.%Main.CompleteClass // CHECK:STDOUT: .F = %F.decl -// CHECK:STDOUT: .Core = imports.%Core.979 +// CHECK:STDOUT: .Core = imports.%Core.048aa3.1 // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_19.1 = import // CHECK:STDOUT: %default.import.loc2_19.2 = import @@ -358,15 +358,15 @@ class Class(U:! type) { // CHECK:STDOUT: %T.loc4: type = symbolic_binding T, 0 [symbolic = %T.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.3f4 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.3f4 = return_slot_pattern %return.param_patt, %CompleteClass [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.97d = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.97d = return_slot_pattern %return.param_patt, %CompleteClass [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %CompleteClass.ref: %CompleteClass.type = name_ref CompleteClass, imports.%Main.CompleteClass [concrete = constants.%CompleteClass.generic] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%i32) [concrete = constants.%CompleteClass.8c0] -// CHECK:STDOUT: %.loc8: Core.Form = init_form %CompleteClass [concrete = constants.%.15c] -// CHECK:STDOUT: %return.param: ref %CompleteClass.8c0 = out_param call_param0 -// CHECK:STDOUT: %return: ref %CompleteClass.8c0 = return_slot %return.param +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%i32) [concrete = constants.%CompleteClass.d55] +// CHECK:STDOUT: %.loc8: Core.Form = init_form %CompleteClass [concrete = constants.%.290] +// CHECK:STDOUT: %return.param: ref %CompleteClass.d55 = out_param call_param0 +// CHECK:STDOUT: %return: ref %CompleteClass.d55 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -396,18 +396,18 @@ class Class(U:! type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic = %CompleteClass (constants.%CompleteClass.e87)] -// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type %CompleteClass, constants.%i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem.e53)] -// CHECK:STDOUT: %CompleteClass.F.type: type = fn_type @CompleteClass.F, @CompleteClass(%T) [symbolic = %CompleteClass.F.type (constants.%CompleteClass.F.type.55f)] -// CHECK:STDOUT: %CompleteClass.F: @CompleteClass.%CompleteClass.F.type (%CompleteClass.F.type.55f) = struct_value () [symbolic = %CompleteClass.F (constants.%CompleteClass.F.fb1)] +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic = %CompleteClass (constants.%CompleteClass.bae)] +// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type %CompleteClass, constants.%i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem.c1f)] +// CHECK:STDOUT: %CompleteClass.F.type: type = fn_type @CompleteClass.F, @CompleteClass(%T) [symbolic = %CompleteClass.F.type (constants.%CompleteClass.F.type.4ea)] +// CHECK:STDOUT: %CompleteClass.F: @CompleteClass.%CompleteClass.F.type (%CompleteClass.F.type.4ea) = struct_value () [symbolic = %CompleteClass.F (constants.%CompleteClass.F.c7a)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.67b +// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.0aa // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.684 -// CHECK:STDOUT: .n = imports.%Main.import_ref.760 -// CHECK:STDOUT: .F = imports.%Main.import_ref.0f8 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.5db +// CHECK:STDOUT: .n = imports.%Main.import_ref.29d +// CHECK:STDOUT: .F = imports.%Main.import_ref.a02 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -417,20 +417,20 @@ class Class(U:! type) { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> out %return.param: %CompleteClass.8c0 [from "foo.carbon"] { +// CHECK:STDOUT: fn @F() -> out %return.param: %CompleteClass.d55 [from "foo.carbon"] { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_17.1: %struct_type.n.44a = struct_literal (%int_1) [concrete = constants.%struct] -// CHECK:STDOUT: %impl.elem0: %.7e8 = impl_witness_access constants.%ImplicitAs.impl_witness.3bc, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.6e2] +// CHECK:STDOUT: %impl.elem0: %.d74 = impl_witness_access constants.%ImplicitAs.impl_witness.778, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc9_17.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_17.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc9_17.2(%int_1) [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc9_17.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.6b0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc9_17.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_17.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc9_17.3: ref %i32 = class_element_access %return.param, element0 -// CHECK:STDOUT: %.loc9_17.4: init %i32 to %.loc9_17.3 = in_place_init %.loc9_17.2 [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc9_17.5: init %CompleteClass.8c0 to %return.param = class_init (%.loc9_17.4) [concrete = constants.%CompleteClass.val] -// CHECK:STDOUT: %.loc9_18: init %CompleteClass.8c0 = converted %.loc9_17.1, %.loc9_17.5 [concrete = constants.%CompleteClass.val] +// CHECK:STDOUT: %.loc9_17.4: init %i32 to %.loc9_17.3 = in_place_init %.loc9_17.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_17.5: init %CompleteClass.d55 to %return.param = class_init (%.loc9_17.4) [concrete = constants.%CompleteClass.val] +// CHECK:STDOUT: %.loc9_18: init %CompleteClass.d55 = converted %.loc9_17.1, %.loc9_17.5 [concrete = constants.%CompleteClass.val] // CHECK:STDOUT: return %.loc9_18 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: @@ -442,10 +442,10 @@ class Class(U:! type) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.e87 -// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.e53 -// CHECK:STDOUT: %CompleteClass.F.type => constants.%CompleteClass.F.type.55f -// CHECK:STDOUT: %CompleteClass.F => constants.%CompleteClass.F.fb1 +// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.bae +// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.c1f +// CHECK:STDOUT: %CompleteClass.F.type => constants.%CompleteClass.F.type.4ea +// CHECK:STDOUT: %CompleteClass.F => constants.%CompleteClass.F.c7a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass.F(constants.%T) {} @@ -454,10 +454,10 @@ class Class(U:! type) { // CHECK:STDOUT: %T => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.8c0 -// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.337 -// CHECK:STDOUT: %CompleteClass.F.type => constants.%CompleteClass.F.type.8a2 -// CHECK:STDOUT: %CompleteClass.F => constants.%CompleteClass.F.e56 +// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.d55 +// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.2cc +// CHECK:STDOUT: %CompleteClass.F.type => constants.%CompleteClass.F.type.dac +// CHECK:STDOUT: %CompleteClass.F => constants.%CompleteClass.F.623 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_foo.carbon @@ -469,43 +469,43 @@ class Class(U:! type) { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %UseMethod.type: type = fn_type @UseMethod [concrete] // CHECK:STDOUT: %UseMethod: %UseMethod.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %CompleteClass.type: type = generic_class_type @CompleteClass [concrete] // CHECK:STDOUT: %CompleteClass.generic: %CompleteClass.type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [concrete] -// CHECK:STDOUT: %complete_type.edf: = complete_type_witness %struct_type.n [concrete] +// CHECK:STDOUT: %complete_type.cdf: = complete_type_witness %struct_type.n [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %CompleteClass.e87: type = class_type @CompleteClass, @CompleteClass(%T.67d) [symbolic] -// CHECK:STDOUT: %CompleteClass.F.type.55f: type = fn_type @CompleteClass.F, @CompleteClass(%T.67d) [symbolic] -// CHECK:STDOUT: %CompleteClass.F.fb1: %CompleteClass.F.type.55f = struct_value () [symbolic] -// CHECK:STDOUT: %CompleteClass.elem.df3: type = unbound_element_type %CompleteClass.e87, %i32 [symbolic] -// CHECK:STDOUT: %CompleteClass.818: type = class_type @CompleteClass, @CompleteClass(%i32) [concrete] -// CHECK:STDOUT: %CompleteClass.elem.7aa: type = unbound_element_type %CompleteClass.818, %i32 [concrete] -// CHECK:STDOUT: %CompleteClass.F.type.805: type = fn_type @CompleteClass.F, @CompleteClass(%i32) [concrete] -// CHECK:STDOUT: %CompleteClass.F.5b4: %CompleteClass.F.type.805 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.28b: type = pattern_type %CompleteClass.818 [concrete] +// CHECK:STDOUT: %CompleteClass.bae: type = class_type @CompleteClass, @CompleteClass(%T.67d) [symbolic] +// CHECK:STDOUT: %CompleteClass.F.type.4ea: type = fn_type @CompleteClass.F, @CompleteClass(%T.67d) [symbolic] +// CHECK:STDOUT: %CompleteClass.F.c7a: %CompleteClass.F.type.4ea = struct_value () [symbolic] +// CHECK:STDOUT: %CompleteClass.elem.c1f: type = unbound_element_type %CompleteClass.bae, %i32 [symbolic] +// CHECK:STDOUT: %CompleteClass.d55: type = class_type @CompleteClass, @CompleteClass(%i32) [concrete] +// CHECK:STDOUT: %CompleteClass.elem.2cc: type = unbound_element_type %CompleteClass.d55, %i32 [concrete] +// CHECK:STDOUT: %CompleteClass.F.type.dac: type = fn_type @CompleteClass.F, @CompleteClass(%i32) [concrete] +// CHECK:STDOUT: %CompleteClass.F.623: %CompleteClass.F.type.dac = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.97d: type = pattern_type %CompleteClass.d55 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %CompleteClass.F.specific_fn: = specific_function %CompleteClass.F.5b4, @CompleteClass.F(%i32) [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.790b3b.4: type = fn_type @Destroy.Op.loc6_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: %UseField.type: type = fn_type @UseField [concrete] // CHECK:STDOUT: %UseField: %UseField.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -521,16 +521,16 @@ class Class(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Main.import_ref.b3bc94.1: type = import_ref Main//foo, loc6_22, loaded [symbolic = @CompleteClass.%T (constants.%T.67d)] -// CHECK:STDOUT: %Main.import_ref.67b: = import_ref Main//foo, loc9_1, loaded [concrete = constants.%complete_type.edf] -// CHECK:STDOUT: %Main.import_ref.684 = import_ref Main//foo, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.827: @CompleteClass.%CompleteClass.elem (%CompleteClass.elem.df3) = import_ref Main//foo, loc7_8, loaded [concrete = %.5f2] -// CHECK:STDOUT: %Main.import_ref.799: @CompleteClass.%CompleteClass.F.type (%CompleteClass.F.type.55f) = import_ref Main//foo, loc8_17, loaded [symbolic = @CompleteClass.%CompleteClass.F (constants.%CompleteClass.F.fb1)] +// CHECK:STDOUT: %Main.import_ref.0aa: = import_ref Main//foo, loc9_1, loaded [concrete = constants.%complete_type.cdf] +// CHECK:STDOUT: %Main.import_ref.5db = import_ref Main//foo, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.111: @CompleteClass.%CompleteClass.elem (%CompleteClass.elem.c1f) = import_ref Main//foo, loc7_8, loaded [concrete = %.5a2] +// CHECK:STDOUT: %Main.import_ref.895: @CompleteClass.%CompleteClass.F.type (%CompleteClass.F.type.4ea) = import_ref Main//foo, loc8_17, loaded [symbolic = @CompleteClass.%CompleteClass.F (constants.%CompleteClass.F.c7a)] // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//foo, loc6_22, loaded [symbolic = @CompleteClass.%T (constants.%T.67d)] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %.5f2: @CompleteClass.%CompleteClass.elem (%CompleteClass.elem.df3) = field_decl n, element0 [concrete] +// CHECK:STDOUT: %.5a2: @CompleteClass.%CompleteClass.elem (%CompleteClass.elem.c1f) = field_decl n, element0 [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -545,20 +545,20 @@ class Class(U:! type) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %UseMethod.decl: %UseMethod.type = fn_decl @UseMethod [concrete = constants.%UseMethod] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc5 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc5 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %UseField.decl: %UseField.type = fn_decl @UseField [concrete = constants.%UseField] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc10 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc10 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc10: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc10: Core.Form = init_form %i32.loc10 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc10: Core.Form = init_form %i32.loc10 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -568,44 +568,44 @@ class Class(U:! type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic = %CompleteClass (constants.%CompleteClass.e87)] -// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type %CompleteClass, constants.%i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem.df3)] -// CHECK:STDOUT: %CompleteClass.F.type: type = fn_type @CompleteClass.F, @CompleteClass(%T) [symbolic = %CompleteClass.F.type (constants.%CompleteClass.F.type.55f)] -// CHECK:STDOUT: %CompleteClass.F: @CompleteClass.%CompleteClass.F.type (%CompleteClass.F.type.55f) = struct_value () [symbolic = %CompleteClass.F (constants.%CompleteClass.F.fb1)] +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic = %CompleteClass (constants.%CompleteClass.bae)] +// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type %CompleteClass, constants.%i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem.c1f)] +// CHECK:STDOUT: %CompleteClass.F.type: type = fn_type @CompleteClass.F, @CompleteClass(%T) [symbolic = %CompleteClass.F.type (constants.%CompleteClass.F.type.4ea)] +// CHECK:STDOUT: %CompleteClass.F: @CompleteClass.%CompleteClass.F.type (%CompleteClass.F.type.4ea) = struct_value () [symbolic = %CompleteClass.F (constants.%CompleteClass.F.c7a)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.67b +// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.0aa // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.684 -// CHECK:STDOUT: .n = imports.%Main.import_ref.827 -// CHECK:STDOUT: .F = imports.%Main.import_ref.799 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.5db +// CHECK:STDOUT: .n = imports.%Main.import_ref.111 +// CHECK:STDOUT: .F = imports.%Main.import_ref.895 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @UseMethod() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.28b = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.28b = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.97d = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.97d = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref %CompleteClass.818 = var %v.var_patt +// CHECK:STDOUT: %v.var: ref %CompleteClass.d55 = var %v.var_patt // CHECK:STDOUT: %F.ref.loc6: %F.type = name_ref F, imports.%Main.F [concrete = constants.%F] -// CHECK:STDOUT: %.loc6_3: ref %CompleteClass.818 = splice_block %v.var {} -// CHECK:STDOUT: %F.call: init %CompleteClass.818 to %.loc6_3 = call %F.ref.loc6() +// CHECK:STDOUT: %.loc6_3: ref %CompleteClass.d55 = splice_block %v.var {} +// CHECK:STDOUT: %F.call: init %CompleteClass.d55 to %.loc6_3 = call %F.ref.loc6() // CHECK:STDOUT: assign %v.var, %F.call -// CHECK:STDOUT: %.loc6_27: type = splice_block %CompleteClass [concrete = constants.%CompleteClass.818] { +// CHECK:STDOUT: %.loc6_27: type = splice_block %CompleteClass [concrete = constants.%CompleteClass.d55] { // CHECK:STDOUT: %CompleteClass.ref: %CompleteClass.type = name_ref CompleteClass, imports.%Main.CompleteClass [concrete = constants.%CompleteClass.generic] // CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%i32) [concrete = constants.%CompleteClass.818] +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%i32) [concrete = constants.%CompleteClass.d55] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref %CompleteClass.818 = ref_binding v, %v.var -// CHECK:STDOUT: %v.ref: ref %CompleteClass.818 = name_ref v, %v -// CHECK:STDOUT: %.loc7: %CompleteClass.F.type.805 = specific_constant imports.%Main.import_ref.799, @CompleteClass(constants.%i32) [concrete = constants.%CompleteClass.F.5b4] -// CHECK:STDOUT: %F.ref.loc7: %CompleteClass.F.type.805 = name_ref F, %.loc7 [concrete = constants.%CompleteClass.F.5b4] +// CHECK:STDOUT: %v: ref %CompleteClass.d55 = ref_binding v, %v.var +// CHECK:STDOUT: %v.ref: ref %CompleteClass.d55 = name_ref v, %v +// CHECK:STDOUT: %.loc7: %CompleteClass.F.type.dac = specific_constant imports.%Main.import_ref.895, @CompleteClass(constants.%i32) [concrete = constants.%CompleteClass.F.623] +// 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.2dd605.4 +// 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: return %CompleteClass.F.call // CHECK:STDOUT: } @@ -630,7 +630,7 @@ class Class(U:! type) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc6_3.4(%self.param: ref %CompleteClass.818) { +// CHECK:STDOUT: fn @Destroy.Op.loc6_3.4(%self.param: ref %CompleteClass.d55) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -638,30 +638,30 @@ class Class(U:! type) { // CHECK:STDOUT: fn @UseField() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.28b = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.28b = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.97d = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.97d = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref %CompleteClass.818 = var %v.var_patt +// CHECK:STDOUT: %v.var: ref %CompleteClass.d55 = var %v.var_patt // CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%Main.F [concrete = constants.%F] -// CHECK:STDOUT: %.loc11_3: ref %CompleteClass.818 = splice_block %v.var {} -// CHECK:STDOUT: %F.call: init %CompleteClass.818 to %.loc11_3 = call %F.ref() +// CHECK:STDOUT: %.loc11_3: ref %CompleteClass.d55 = splice_block %v.var {} +// CHECK:STDOUT: %F.call: init %CompleteClass.d55 to %.loc11_3 = call %F.ref() // CHECK:STDOUT: assign %v.var, %F.call -// CHECK:STDOUT: %.loc11_27: type = splice_block %CompleteClass [concrete = constants.%CompleteClass.818] { +// CHECK:STDOUT: %.loc11_27: type = splice_block %CompleteClass [concrete = constants.%CompleteClass.d55] { // CHECK:STDOUT: %CompleteClass.ref: %CompleteClass.type = name_ref CompleteClass, imports.%Main.CompleteClass [concrete = constants.%CompleteClass.generic] // CHECK:STDOUT: %i32.loc11: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%i32) [concrete = constants.%CompleteClass.818] +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%i32) [concrete = constants.%CompleteClass.d55] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref %CompleteClass.818 = ref_binding v, %v.var -// CHECK:STDOUT: %v.ref: ref %CompleteClass.818 = name_ref v, %v -// CHECK:STDOUT: %n.ref: %CompleteClass.elem.7aa = name_ref n, imports.%Main.import_ref.827 [concrete = imports.%.5f2] +// CHECK:STDOUT: %v: ref %CompleteClass.d55 = ref_binding v, %v.var +// CHECK:STDOUT: %v.ref: ref %CompleteClass.d55 = name_ref v, %v +// CHECK:STDOUT: %n.ref: %CompleteClass.elem.2cc = name_ref n, imports.%Main.import_ref.111 [concrete = imports.%.5a2] // CHECK:STDOUT: %.loc12_11.1: ref %i32 = class_element_access %v.ref, element0 // CHECK:STDOUT: %.loc12_11.2: %i32 = acquire_value %.loc12_11.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc12_11.1: = bound_method %.loc12_11.2, %impl.elem0 // 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.2dd605.4 +// 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: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } @@ -670,10 +670,10 @@ class Class(U:! type) { // CHECK:STDOUT: %T => constants.%T.67d // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.e87 -// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.df3 -// CHECK:STDOUT: %CompleteClass.F.type => constants.%CompleteClass.F.type.55f -// CHECK:STDOUT: %CompleteClass.F => constants.%CompleteClass.F.fb1 +// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.bae +// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.c1f +// CHECK:STDOUT: %CompleteClass.F.type => constants.%CompleteClass.F.type.4ea +// CHECK:STDOUT: %CompleteClass.F => constants.%CompleteClass.F.c7a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass.F(constants.%T.67d) {} @@ -682,10 +682,10 @@ class Class(U:! type) { // CHECK:STDOUT: %T => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.818 -// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.7aa -// CHECK:STDOUT: %CompleteClass.F.type => constants.%CompleteClass.F.type.805 -// CHECK:STDOUT: %CompleteClass.F => constants.%CompleteClass.F.5b4 +// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.d55 +// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.2cc +// CHECK:STDOUT: %CompleteClass.F.type => constants.%CompleteClass.F.type.dac +// CHECK:STDOUT: %CompleteClass.F => constants.%CompleteClass.F.623 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass.F(constants.%i32) { @@ -706,36 +706,36 @@ class Class(U:! type) { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [concrete] -// CHECK:STDOUT: %complete_type.298: = complete_type_witness %struct_type.n [concrete] +// CHECK:STDOUT: %complete_type.cdf: = complete_type_witness %struct_type.n [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %CompleteClass.e87: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic] -// CHECK:STDOUT: %CompleteClass.F.type.55f: type = fn_type @CompleteClass.F, @CompleteClass(%T) [symbolic] -// CHECK:STDOUT: %CompleteClass.F.fb1: %CompleteClass.F.type.55f = struct_value () [symbolic] -// CHECK:STDOUT: %CompleteClass.elem.e53: type = unbound_element_type %CompleteClass.e87, %i32 [symbolic] -// CHECK:STDOUT: %ptr.b07: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %CompleteClass.6eb: type = class_type @CompleteClass, @CompleteClass(%ptr.b07) [concrete] -// CHECK:STDOUT: %CompleteClass.elem.eac: type = unbound_element_type %CompleteClass.6eb, %i32 [concrete] -// CHECK:STDOUT: %CompleteClass.F.type.a68: type = fn_type @CompleteClass.F, @CompleteClass(%ptr.b07) [concrete] -// CHECK:STDOUT: %CompleteClass.F.aed: %CompleteClass.F.type.a68 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.7e9: type = pattern_type %CompleteClass.6eb [concrete] +// CHECK:STDOUT: %CompleteClass.bae: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic] +// CHECK:STDOUT: %CompleteClass.F.type.4ea: type = fn_type @CompleteClass.F, @CompleteClass(%T) [symbolic] +// CHECK:STDOUT: %CompleteClass.F.c7a: %CompleteClass.F.type.4ea = struct_value () [symbolic] +// CHECK:STDOUT: %CompleteClass.elem.c1f: type = unbound_element_type %CompleteClass.bae, %i32 [symbolic] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %CompleteClass.22b: type = class_type @CompleteClass, @CompleteClass(%ptr.d08) [concrete] +// CHECK:STDOUT: %CompleteClass.elem.014: type = unbound_element_type %CompleteClass.22b, %i32 [concrete] +// CHECK:STDOUT: %CompleteClass.F.type.a78: type = fn_type @CompleteClass.F, @CompleteClass(%ptr.d08) [concrete] +// CHECK:STDOUT: %CompleteClass.F.819: %CompleteClass.F.type.a78 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.ff3: type = pattern_type %CompleteClass.22b [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %CompleteClass.8c0: type = class_type @CompleteClass, @CompleteClass(%i32) [concrete] -// CHECK:STDOUT: %CompleteClass.elem.337: type = unbound_element_type %CompleteClass.8c0, %i32 [concrete] -// CHECK:STDOUT: %CompleteClass.F.type.8a2: type = fn_type @CompleteClass.F, @CompleteClass(%i32) [concrete] -// CHECK:STDOUT: %CompleteClass.F.e56: %CompleteClass.F.type.8a2 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %CompleteClass.d55: type = class_type @CompleteClass, @CompleteClass(%i32) [concrete] +// CHECK:STDOUT: %CompleteClass.elem.2cc: type = unbound_element_type %CompleteClass.d55, %i32 [concrete] +// CHECK:STDOUT: %CompleteClass.F.type.dac: type = fn_type @CompleteClass.F, @CompleteClass(%i32) [concrete] +// CHECK:STDOUT: %CompleteClass.F.623: %CompleteClass.F.type.dac = struct_value () [concrete] +// 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.790b3b.4: type = fn_type @Destroy.Op.loc13_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Class = import_ref Main//foo, Class, unloaded // CHECK:STDOUT: %Main.CompleteClass: %CompleteClass.type = import_ref Main//foo, CompleteClass, loaded [concrete = constants.%CompleteClass.generic] // CHECK:STDOUT: %Main.F: %F.type = import_ref Main//foo, F, loaded [concrete = constants.%F] -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import, [concrete] { +// CHECK:STDOUT: %Core.048aa3.1: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .Int = %Core.Int // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: .Destroy = %Core.Destroy @@ -743,13 +743,13 @@ class Class(U:! type) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.b3bc94.1: type = import_ref Main//foo, loc6_22, loaded [symbolic = @CompleteClass.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.67b: = import_ref Main//foo, loc9_1, loaded [concrete = constants.%complete_type.298] -// CHECK:STDOUT: %Main.import_ref.684 = import_ref Main//foo, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.760 = import_ref Main//foo, loc7_8, unloaded -// CHECK:STDOUT: %Main.import_ref.0f8 = import_ref Main//foo, loc8_17, unloaded +// CHECK:STDOUT: %Main.import_ref.0aa: = import_ref Main//foo, loc9_1, loaded [concrete = constants.%complete_type.cdf] +// CHECK:STDOUT: %Main.import_ref.5db = import_ref Main//foo, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.29d = import_ref Main//foo, loc7_8, unloaded +// CHECK:STDOUT: %Main.import_ref.a02 = import_ref Main//foo, loc8_17, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//foo, loc6_22, loaded [symbolic = @CompleteClass.%T (constants.%T)] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -758,7 +758,7 @@ class Class(U:! type) { // CHECK:STDOUT: .Class = imports.%Main.Class // CHECK:STDOUT: .CompleteClass = imports.%Main.CompleteClass // CHECK:STDOUT: .F = imports.%Main.F -// CHECK:STDOUT: .Core = imports.%Core.979 +// CHECK:STDOUT: .Core = imports.%Core.048aa3.1 // CHECK:STDOUT: .Use = %Use.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core @@ -770,41 +770,41 @@ class Class(U:! type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic = %CompleteClass (constants.%CompleteClass.e87)] -// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type %CompleteClass, constants.%i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem.e53)] -// CHECK:STDOUT: %CompleteClass.F.type: type = fn_type @CompleteClass.F, @CompleteClass(%T) [symbolic = %CompleteClass.F.type (constants.%CompleteClass.F.type.55f)] -// CHECK:STDOUT: %CompleteClass.F: @CompleteClass.%CompleteClass.F.type (%CompleteClass.F.type.55f) = struct_value () [symbolic = %CompleteClass.F (constants.%CompleteClass.F.fb1)] +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic = %CompleteClass (constants.%CompleteClass.bae)] +// CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type %CompleteClass, constants.%i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem.c1f)] +// CHECK:STDOUT: %CompleteClass.F.type: type = fn_type @CompleteClass.F, @CompleteClass(%T) [symbolic = %CompleteClass.F.type (constants.%CompleteClass.F.type.4ea)] +// CHECK:STDOUT: %CompleteClass.F: @CompleteClass.%CompleteClass.F.type (%CompleteClass.F.type.4ea) = struct_value () [symbolic = %CompleteClass.F (constants.%CompleteClass.F.c7a)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.67b +// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.0aa // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.684 -// CHECK:STDOUT: .n = imports.%Main.import_ref.760 -// CHECK:STDOUT: .F = imports.%Main.import_ref.0f8 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.5db +// CHECK:STDOUT: .n = imports.%Main.import_ref.29d +// CHECK:STDOUT: .F = imports.%Main.import_ref.a02 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.7e9 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.7e9 = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.ff3 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.ff3 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref %CompleteClass.6eb = var %v.var_patt +// CHECK:STDOUT: %v.var: ref %CompleteClass.22b = var %v.var_patt // CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%Main.F [concrete = constants.%F] -// CHECK:STDOUT: %.loc13_41: ref %CompleteClass.8c0 = temporary_storage -// CHECK:STDOUT: %F.call: init %CompleteClass.8c0 to %.loc13_41 = call %F.ref() -// CHECK:STDOUT: %.loc13_3: %CompleteClass.6eb = converted %F.call, [concrete = ] +// CHECK:STDOUT: %.loc13_41: ref %CompleteClass.d55 = temporary_storage +// CHECK:STDOUT: %F.call: init %CompleteClass.d55 to %.loc13_41 = call %F.ref() +// CHECK:STDOUT: %.loc13_3: %CompleteClass.22b = converted %F.call, [concrete = ] // CHECK:STDOUT: assign %v.var, -// CHECK:STDOUT: %.loc13_35: type = splice_block %CompleteClass [concrete = constants.%CompleteClass.6eb] { +// CHECK:STDOUT: %.loc13_35: type = splice_block %CompleteClass [concrete = constants.%CompleteClass.22b] { // CHECK:STDOUT: %CompleteClass.ref: %CompleteClass.type = name_ref CompleteClass, imports.%Main.CompleteClass [concrete = constants.%CompleteClass.generic] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %i32 [concrete = constants.%ptr.b07] -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%ptr.b07) [concrete = constants.%CompleteClass.6eb] +// CHECK:STDOUT: %ptr: type = ptr_type %i32 [concrete = constants.%ptr.d08] +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(constants.%ptr.d08) [concrete = constants.%CompleteClass.22b] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref %CompleteClass.6eb = ref_binding v, %v.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.2dd605.4 +// CHECK:STDOUT: %v: ref %CompleteClass.22b = ref_binding v, %v.var +// 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: return // CHECK:STDOUT: } @@ -829,7 +829,7 @@ class Class(U:! type) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_3.4(%self.param: ref %CompleteClass.6eb) { +// CHECK:STDOUT: fn @Destroy.Op.loc13_3.4(%self.param: ref %CompleteClass.22b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -838,32 +838,32 @@ class Class(U:! type) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.e87 -// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.e53 -// CHECK:STDOUT: %CompleteClass.F.type => constants.%CompleteClass.F.type.55f -// CHECK:STDOUT: %CompleteClass.F => constants.%CompleteClass.F.fb1 +// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.bae +// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.c1f +// CHECK:STDOUT: %CompleteClass.F.type => constants.%CompleteClass.F.type.4ea +// CHECK:STDOUT: %CompleteClass.F => constants.%CompleteClass.F.c7a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass.F(constants.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @CompleteClass(constants.%ptr.b07) { -// CHECK:STDOUT: %T => constants.%ptr.b07 +// CHECK:STDOUT: specific @CompleteClass(constants.%ptr.d08) { +// CHECK:STDOUT: %T => constants.%ptr.d08 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.6eb -// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.eac -// CHECK:STDOUT: %CompleteClass.F.type => constants.%CompleteClass.F.type.a68 -// CHECK:STDOUT: %CompleteClass.F => constants.%CompleteClass.F.aed +// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.22b +// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.014 +// CHECK:STDOUT: %CompleteClass.F.type => constants.%CompleteClass.F.type.a78 +// CHECK:STDOUT: %CompleteClass.F => constants.%CompleteClass.F.819 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass(constants.%i32) { // CHECK:STDOUT: %T => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.8c0 -// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.337 -// CHECK:STDOUT: %CompleteClass.F.type => constants.%CompleteClass.F.type.8a2 -// CHECK:STDOUT: %CompleteClass.F => constants.%CompleteClass.F.e56 +// CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.d55 +// CHECK:STDOUT: %CompleteClass.elem => constants.%CompleteClass.elem.2cc +// CHECK:STDOUT: %CompleteClass.F.type => constants.%CompleteClass.F.type.dac +// CHECK:STDOUT: %CompleteClass.F => constants.%CompleteClass.F.623 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_foo.impl.carbon @@ -873,19 +873,19 @@ class Class(U:! type) { // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Class.type.d8c37e.1: type = generic_class_type @Class.1 [concrete] -// CHECK:STDOUT: %Class.generic.f1d2f4.1: %Class.type.d8c37e.1 = struct_value () [concrete] +// CHECK:STDOUT: %Class.type.3256be.1: type = generic_class_type @Class.1 [concrete] +// CHECK:STDOUT: %Class.generic.4154f7.1: %Class.type.3256be.1 = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Class.type.d8c37e.2: type = generic_class_type @Class.loc12 [concrete] -// CHECK:STDOUT: %Class.generic.f1d2f4.2: %Class.type.d8c37e.2 = struct_value () [concrete] -// CHECK:STDOUT: %Class.e25855.2: type = class_type @Class.loc12, @Class.loc12(%U) [symbolic] +// CHECK:STDOUT: %Class.type.3256be.2: type = generic_class_type @Class.loc12 [concrete] +// CHECK:STDOUT: %Class.generic.4154f7.2: %Class.type.3256be.2 = struct_value () [concrete] +// CHECK:STDOUT: %Class.7bcfd6.2: type = class_type @Class.loc12, @Class.loc12(%U) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.Class: %Class.type.d8c37e.1 = import_ref Main//foo, Class, loaded [concrete = constants.%Class.generic.f1d2f4.1] +// CHECK:STDOUT: %Main.Class: %Class.type.3256be.1 = import_ref Main//foo, Class, loaded [concrete = constants.%Class.generic.4154f7.1] // CHECK:STDOUT: %Main.CompleteClass = import_ref Main//foo, CompleteClass, unloaded // CHECK:STDOUT: %Main.F = import_ref Main//foo, F, unloaded -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import, [concrete] { +// CHECK:STDOUT: %Core.048aa3.1: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } @@ -897,13 +897,13 @@ class Class(U:! type) { // CHECK:STDOUT: .Class = imports.%Main.Class // CHECK:STDOUT: .CompleteClass = imports.%Main.CompleteClass // CHECK:STDOUT: .F = imports.%Main.F -// CHECK:STDOUT: .Core = imports.%Core.979 +// CHECK:STDOUT: .Core = imports.%Core.048aa3.1 // CHECK:STDOUT: .T = // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_19.1 = import // CHECK:STDOUT: %default.import.loc2_19.2 = import // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %Class.decl: %Class.type.d8c37e.2 = class_decl @Class.loc12 [concrete = constants.%Class.generic.f1d2f4.2] { +// CHECK:STDOUT: %Class.decl: %Class.type.3256be.2 = class_decl @Class.loc12 [concrete = constants.%Class.generic.4154f7.2] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc12_17.1: type = splice_block %.loc12_17.2 [concrete = type] { @@ -931,7 +931,7 @@ class Class(U:! type) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Class.e25855.2 +// CHECK:STDOUT: .Self = constants.%Class.7bcfd6.2 // CHECK:STDOUT: .T = // CHECK:STDOUT: .x = %.loc17 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/generic/init.carbon b/toolchain/check/testdata/class/generic/init.carbon index f1b1b12a88e5..ed5e12fd2fcf 100644 --- a/toolchain/check/testdata/class/generic/init.carbon +++ b/toolchain/check/testdata/class/generic/init.carbon @@ -58,73 +58,73 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %BitAndWith.type.fd8: type = generic_interface_type @BitAndWith [concrete] -// CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.fd8 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.2af: type = facet_type <@BitAndWith, @BitAndWith(type)> [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] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.2af = facet_value type, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.5d1: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %.9ee: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.5d1, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %Copy.type, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %facet_type: type = facet_type <@Destroy & @Copy> [concrete] -// CHECK:STDOUT: %pattern_type.980: type = pattern_type %facet_type [concrete] -// CHECK:STDOUT: %T.cb0: %facet_type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.c70: type = facet_access_type %T.cb0 [symbolic] -// CHECK:STDOUT: %pattern_type.e2d: type = pattern_type %T.as_type.c70 [symbolic] -// CHECK:STDOUT: %.f8e: Core.Form = init_form %T.as_type.c70 [symbolic] +// CHECK:STDOUT: %pattern_type.709: type = pattern_type %facet_type [concrete] +// CHECK:STDOUT: %T.283: %facet_type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.74b: type = facet_access_type %T.283 [symbolic] +// CHECK:STDOUT: %pattern_type.44a: type = pattern_type %T.as_type.74b [symbolic] +// CHECK:STDOUT: %.2b9: Core.Form = init_form %T.as_type.74b [symbolic] // CHECK:STDOUT: %InitFromStructGeneric.type: type = fn_type @InitFromStructGeneric [concrete] // CHECK:STDOUT: %InitFromStructGeneric: %InitFromStructGeneric.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.f4b: = require_complete_type %T.as_type.c70 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.420: = lookup_impl_witness %T.cb0, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.4ff: %Destroy.type = facet_value %T.as_type.c70, (%Destroy.lookup_impl_witness.420) [symbolic] -// CHECK:STDOUT: %Class.b88: type = class_type @Class, @Class(%Destroy.facet.4ff) [symbolic] -// CHECK:STDOUT: %Class.elem.e92: type = unbound_element_type %Class.b88, %T.as_type.c70 [symbolic] -// CHECK:STDOUT: %struct_type.k.81f: type = struct_type {.k: %T.as_type.c70} [symbolic] -// CHECK:STDOUT: %require_complete.e57: = require_complete_type %Class.b88 [symbolic] -// CHECK:STDOUT: %pattern_type.c9b: type = pattern_type %Class.b88 [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.300: = lookup_impl_witness %T.cb0, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.11a: %Copy.type = facet_value %T.as_type.c70, (%Copy.lookup_impl_witness.300) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cc7: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.11a) [symbolic] -// CHECK:STDOUT: %.4f1: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cc7, %Copy.facet.11a [symbolic] -// CHECK:STDOUT: %impl.elem0.9fa: %.4f1 = impl_witness_access %Copy.lookup_impl_witness.300, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.dfd: = specific_impl_function %impl.elem0.9fa, @Copy.WithSelf.Op(%Copy.facet.11a) [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.20f: = lookup_impl_witness %Class.b88, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.a36: %Destroy.type = facet_value %Class.b88, (%Destroy.lookup_impl_witness.20f) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.bd2: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.a36) [symbolic] -// CHECK:STDOUT: %.70e: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.bd2, %Destroy.facet.a36 [symbolic] -// CHECK:STDOUT: %impl.elem0.686: %.70e = impl_witness_access %Destroy.lookup_impl_witness.20f, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.bab: = specific_impl_function %impl.elem0.686, @Destroy.WithSelf.Op(%Destroy.facet.a36) [symbolic] +// CHECK:STDOUT: %require_complete.44d: = require_complete_type %T.as_type.74b [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.28a: = lookup_impl_witness %T.283, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.16e: %Destroy.type = facet_value %T.as_type.74b, (%Destroy.lookup_impl_witness.28a) [symbolic] +// CHECK:STDOUT: %Class.55b: type = class_type @Class, @Class(%Destroy.facet.16e) [symbolic] +// CHECK:STDOUT: %Class.elem.b97: type = unbound_element_type %Class.55b, %T.as_type.74b [symbolic] +// CHECK:STDOUT: %struct_type.k.aa4: type = struct_type {.k: %T.as_type.74b} [symbolic] +// CHECK:STDOUT: %require_complete.ff5: = require_complete_type %Class.55b [symbolic] +// CHECK:STDOUT: %pattern_type.0b6: type = pattern_type %Class.55b [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.4df: = lookup_impl_witness %T.283, @Copy [symbolic] +// CHECK:STDOUT: %Copy.facet.3f0: %Copy.type = facet_value %T.as_type.74b, (%Copy.lookup_impl_witness.4df) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.090: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.3f0) [symbolic] +// CHECK:STDOUT: %.018: type = fn_type_with_self_type %Copy.WithSelf.Op.type.090, %Copy.facet.3f0 [symbolic] +// CHECK:STDOUT: %impl.elem0.170: %.018 = impl_witness_access %Copy.lookup_impl_witness.4df, element0 [symbolic] +// 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: %.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: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // 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.790b3b.2: type = fn_type @Destroy.Op.loc15_19.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.2: = custom_witness (%Destroy.Op.2dd605.2), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.95d: %Destroy.type = facet_value %i32, (%custom_witness.e20f1f.2) [concrete] -// CHECK:STDOUT: %Class.f09: type = class_type @Class, @Class(%Destroy.facet.95d) [concrete] -// CHECK:STDOUT: %Class.elem.3e9: type = unbound_element_type %Class.f09, %i32 [concrete] -// CHECK:STDOUT: %struct_type.k.baa: type = struct_type {.k: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.786: type = pattern_type %Class.f09 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.14d: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet.14d [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc15_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: %struct_type.k.e7c: type = struct_type {.k: %i32} [concrete] +// CHECK:STDOUT: %pattern_type.82c: type = pattern_type %Class.a32 [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.987: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet.987 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -138,57 +138,57 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.fd8 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @type.as.BitAndWith.impl [concrete] +// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.a06 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @type.as.BitAndWith.impl [concrete] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %InitFromStructGeneric.decl: %InitFromStructGeneric.type = fn_decl @InitFromStructGeneric [concrete = constants.%InitFromStructGeneric] { -// CHECK:STDOUT: %T.patt: %pattern_type.980 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.e2d) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.e2d) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.e2d) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.e2d) = return_slot_pattern %return.param_patt, %.loc9_65.3 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.709 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %x.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.44a) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.44a) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.44a) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.44a) = return_slot_pattern %return.param_patt, %.loc9_65.3 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc9_65: %facet_type = name_ref T, %T.loc9_27.2 [symbolic = %T.loc9_27.1 (constants.%T.cb0)] -// CHECK:STDOUT: %T.as_type.loc9_65: type = facet_access_type %T.ref.loc9_65 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.c70)] -// CHECK:STDOUT: %.loc9_65.3: type = converted %T.ref.loc9_65, %T.as_type.loc9_65 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.c70)] -// CHECK:STDOUT: %.loc9_65.4: Core.Form = init_form %.loc9_65.3 [symbolic = %.loc9_65.2 (constants.%.f8e)] +// CHECK:STDOUT: %T.ref.loc9_65: %facet_type = name_ref T, %T.loc9_27.2 [symbolic = %T.loc9_27.1 (constants.%T.283)] +// CHECK:STDOUT: %T.as_type.loc9_65: type = facet_access_type %T.ref.loc9_65 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.74b)] +// CHECK:STDOUT: %.loc9_65.3: type = converted %T.ref.loc9_65, %T.as_type.loc9_65 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.74b)] +// CHECK:STDOUT: %.loc9_65.4: Core.Form = init_form %.loc9_65.3 [symbolic = %.loc9_65.2 (constants.%.2b9)] // CHECK:STDOUT: %.loc9_40.1: type = splice_block %.loc9_40.3 [concrete = constants.%facet_type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref.loc9_30: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: %Core.ref.loc9_42: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Destroy.ref: type = name_ref Destroy, imports.%Core.Destroy [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %impl.elem0.loc9: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc9: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method.loc9: = bound_method %Copy.ref, %impl.elem0.loc9 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method.loc9(%Copy.ref, %Destroy.ref) [concrete = constants.%facet_type] // CHECK:STDOUT: %.loc9_40.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type] // CHECK:STDOUT: %.loc9_40.3: type = converted %type.as.BitAndWith.impl.Op.call, %.loc9_40.2 [concrete = constants.%facet_type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc9_27.2: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc9_27.1 (constants.%T.cb0)] -// CHECK:STDOUT: %x.param: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.c70) = value_param call_param0 -// CHECK:STDOUT: %.loc9_59.1: type = splice_block %.loc9_59.2 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.c70)] { -// CHECK:STDOUT: %T.ref.loc9_59: %facet_type = name_ref T, %T.loc9_27.2 [symbolic = %T.loc9_27.1 (constants.%T.cb0)] -// CHECK:STDOUT: %T.as_type.loc9_59.2: type = facet_access_type %T.ref.loc9_59 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.c70)] -// CHECK:STDOUT: %.loc9_59.2: type = converted %T.ref.loc9_59, %T.as_type.loc9_59.2 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.c70)] +// CHECK:STDOUT: %T.loc9_27.2: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc9_27.1 (constants.%T.283)] +// CHECK:STDOUT: %x.param: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b) = value_param call_param0 +// CHECK:STDOUT: %.loc9_59.1: type = splice_block %.loc9_59.2 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.74b)] { +// CHECK:STDOUT: %T.ref.loc9_59: %facet_type = name_ref T, %T.loc9_27.2 [symbolic = %T.loc9_27.1 (constants.%T.283)] +// CHECK:STDOUT: %T.as_type.loc9_59.2: type = facet_access_type %T.ref.loc9_59 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.74b)] +// CHECK:STDOUT: %.loc9_59.2: type = converted %T.ref.loc9_59, %T.as_type.loc9_59.2 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.74b)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.c70) = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.c70) = out_param call_param1 -// CHECK:STDOUT: %return: ref @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.c70) = return_slot %return.param +// CHECK:STDOUT: %x: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b) = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b) = out_param call_param1 +// CHECK:STDOUT: %return: ref @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InitFromStructSpecific.decl: %InitFromStructSpecific.type = fn_decl @InitFromStructSpecific [concrete = constants.%InitFromStructSpecific] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.104 = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc14_38 [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc14_38 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc14_38: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc14: Core.Form = init_form %i32.loc14_38 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc14: Core.Form = init_form %i32.loc14_38 [concrete = constants.%.795] // CHECK:STDOUT: %x.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc14_30: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %x: %i32 = value_binding x, %x.param @@ -198,74 +198,74 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @InitFromStructGeneric(%T.loc9_27.2: %facet_type) { -// CHECK:STDOUT: %T.loc9_27.1: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc9_27.1 (constants.%T.cb0)] -// CHECK:STDOUT: %T.as_type.loc9_59.1: type = facet_access_type %T.loc9_27.1 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.c70)] -// CHECK:STDOUT: %pattern_type.loc9: type = pattern_type %T.as_type.loc9_59.1 [symbolic = %pattern_type.loc9 (constants.%pattern_type.e2d)] -// CHECK:STDOUT: %.loc9_65.2: Core.Form = init_form %T.as_type.loc9_59.1 [symbolic = %.loc9_65.2 (constants.%.f8e)] +// CHECK:STDOUT: %T.loc9_27.1: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc9_27.1 (constants.%T.283)] +// CHECK:STDOUT: %T.as_type.loc9_59.1: type = facet_access_type %T.loc9_27.1 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.74b)] +// CHECK:STDOUT: %pattern_type.loc9: type = pattern_type %T.as_type.loc9_59.1 [symbolic = %pattern_type.loc9 (constants.%pattern_type.44a)] +// CHECK:STDOUT: %.loc9_65.2: Core.Form = init_form %T.as_type.loc9_59.1 [symbolic = %.loc9_65.2 (constants.%.2b9)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.as_type.loc9_59.1 [symbolic = %require_complete.loc9 (constants.%require_complete.f4b)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc10_17: = lookup_impl_witness %T.loc9_27.1, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc10_17 (constants.%Destroy.lookup_impl_witness.420)] -// CHECK:STDOUT: %Destroy.facet.loc10_17.2: %Destroy.type = facet_value %T.as_type.loc9_59.1, (%Destroy.lookup_impl_witness.loc10_17) [symbolic = %Destroy.facet.loc10_17.2 (constants.%Destroy.facet.4ff)] -// CHECK:STDOUT: %Class.loc10_17.2: type = class_type @Class, @Class(%Destroy.facet.loc10_17.2) [symbolic = %Class.loc10_17.2 (constants.%Class.b88)] -// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Class.loc10_17.2 [symbolic = %require_complete.loc10 (constants.%require_complete.e57)] -// CHECK:STDOUT: %pattern_type.loc10: type = pattern_type %Class.loc10_17.2 [symbolic = %pattern_type.loc10 (constants.%pattern_type.c9b)] -// CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.c70)} [symbolic = %struct_type.k (constants.%struct_type.k.81f)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc9_27.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.300)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc9_59.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.11a)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.cc7)] -// CHECK:STDOUT: %.loc10_27: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc10_27 (constants.%.4f1)] -// CHECK:STDOUT: %impl.elem0.loc10_27.2: @InitFromStructGeneric.%.loc10_27 (%.4f1) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.9fa)] -// CHECK:STDOUT: %specific_impl_fn.loc10_27.2: = specific_impl_function %impl.elem0.loc10_27.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.dfd)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc10_17.2, %T.as_type.loc9_59.1 [symbolic = %Class.elem (constants.%Class.elem.e92)] -// 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.20f)] -// CHECK:STDOUT: %Destroy.facet.loc10_3: %Destroy.type = facet_value %Class.loc10_17.2, (%Destroy.lookup_impl_witness.loc10_3) [symbolic = %Destroy.facet.loc10_3 (constants.%Destroy.facet.a36)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc10_3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.bd2)] -// CHECK:STDOUT: %.loc10_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet.loc10_3 [symbolic = %.loc10_3.2 (constants.%.70e)] -// CHECK:STDOUT: %impl.elem0.loc10_3.2: @InitFromStructGeneric.%.loc10_3.2 (%.70e) = impl_witness_access %Destroy.lookup_impl_witness.loc10_3, element0 [symbolic = %impl.elem0.loc10_3.2 (constants.%impl.elem0.686)] -// CHECK:STDOUT: %specific_impl_fn.loc10_3.2: = specific_impl_function %impl.elem0.loc10_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc10_3) [symbolic = %specific_impl_fn.loc10_3.2 (constants.%specific_impl_fn.bab)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.as_type.loc9_59.1 [symbolic = %require_complete.loc9 (constants.%require_complete.44d)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc10_17: = lookup_impl_witness %T.loc9_27.1, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc10_17 (constants.%Destroy.lookup_impl_witness.28a)] +// CHECK:STDOUT: %Destroy.facet.loc10_17.2: %Destroy.type = facet_value %T.as_type.loc9_59.1, (%Destroy.lookup_impl_witness.loc10_17) [symbolic = %Destroy.facet.loc10_17.2 (constants.%Destroy.facet.16e)] +// CHECK:STDOUT: %Class.loc10_17.2: type = class_type @Class, @Class(%Destroy.facet.loc10_17.2) [symbolic = %Class.loc10_17.2 (constants.%Class.55b)] +// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Class.loc10_17.2 [symbolic = %require_complete.loc10 (constants.%require_complete.ff5)] +// CHECK:STDOUT: %pattern_type.loc10: type = pattern_type %Class.loc10_17.2 [symbolic = %pattern_type.loc10 (constants.%pattern_type.0b6)] +// CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b)} [symbolic = %struct_type.k (constants.%struct_type.k.aa4)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc9_27.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.4df)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc9_59.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.3f0)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.090)] +// CHECK:STDOUT: %.loc10_27: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc10_27 (constants.%.018)] +// CHECK:STDOUT: %impl.elem0.loc10_27.2: @InitFromStructGeneric.%.loc10_27 (%.018) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.170)] +// CHECK:STDOUT: %specific_impl_fn.loc10_27.2: = specific_impl_function %impl.elem0.loc10_27.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.be5)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc10_17.2, %T.as_type.loc9_59.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: %Destroy.type = facet_value %Class.loc10_17.2, (%Destroy.lookup_impl_witness.loc10_3) [symbolic = %Destroy.facet.loc10_3 (constants.%Destroy.facet.25e)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc10_3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d76)] +// CHECK:STDOUT: %.loc10_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet.loc10_3 [symbolic = %.loc10_3.2 (constants.%.0da)] +// CHECK:STDOUT: %impl.elem0.loc10_3.2: @InitFromStructGeneric.%.loc10_3.2 (%.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) [symbolic = %specific_impl_fn.loc10_3.2 (constants.%specific_impl_fn.fa9)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.c70)) -> out %return.param: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.c70) { +// CHECK:STDOUT: fn(%x.param: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b)) -> out %return.param: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: @InitFromStructGeneric.%pattern_type.loc10 (%pattern_type.c9b) = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: @InitFromStructGeneric.%pattern_type.loc10 (%pattern_type.c9b) = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: @InitFromStructGeneric.%pattern_type.loc10 (%pattern_type.0b6) = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: @InitFromStructGeneric.%pattern_type.loc10 (%pattern_type.0b6) = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.b88) = var %v.var_patt -// CHECK:STDOUT: %x.ref: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.c70) = name_ref x, %x -// CHECK:STDOUT: %.loc10_28.1: @InitFromStructGeneric.%struct_type.k (%struct_type.k.81f) = struct_literal (%x.ref) -// CHECK:STDOUT: %impl.elem0.loc10_27.1: @InitFromStructGeneric.%.loc10_27 (%.4f1) = impl_witness_access constants.%Copy.lookup_impl_witness.300, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.9fa)] +// CHECK:STDOUT: %v.var: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.55b) = var %v.var_patt +// CHECK:STDOUT: %x.ref: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b) = name_ref x, %x +// CHECK:STDOUT: %.loc10_28.1: @InitFromStructGeneric.%struct_type.k (%struct_type.k.aa4) = struct_literal (%x.ref) +// CHECK:STDOUT: %impl.elem0.loc10_27.1: @InitFromStructGeneric.%.loc10_27 (%.018) = impl_witness_access constants.%Copy.lookup_impl_witness.4df, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.170)] // CHECK:STDOUT: %bound_method.loc10_27.1: = bound_method %x.ref, %impl.elem0.loc10_27.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_27.1: = specific_impl_function %impl.elem0.loc10_27.1, @Copy.WithSelf.Op(constants.%Copy.facet.11a) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.dfd)] +// CHECK:STDOUT: %specific_impl_fn.loc10_27.1: = specific_impl_function %impl.elem0.loc10_27.1, @Copy.WithSelf.Op(constants.%Copy.facet.3f0) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.be5)] // CHECK:STDOUT: %bound_method.loc10_27.2: = bound_method %x.ref, %specific_impl_fn.loc10_27.1 -// CHECK:STDOUT: %.loc10_28.2: ref @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.c70) = class_element_access %v.var, element0 -// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc10: init @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.c70) to %.loc10_28.2 = call %bound_method.loc10_27.2(%x.ref) -// CHECK:STDOUT: %.loc10_28.3: init @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.c70) to %.loc10_28.2 = in_place_init %Copy.WithSelf.Op.call.loc10 -// CHECK:STDOUT: %.loc10_28.4: init @InitFromStructGeneric.%Class.loc10_17.2 (%Class.b88) to %v.var = class_init (%.loc10_28.3) -// CHECK:STDOUT: %.loc10_3.1: init @InitFromStructGeneric.%Class.loc10_17.2 (%Class.b88) = converted %.loc10_28.1, %.loc10_28.4 +// CHECK:STDOUT: %.loc10_28.2: ref @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b) = class_element_access %v.var, element0 +// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc10: init @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b) to %.loc10_28.2 = call %bound_method.loc10_27.2(%x.ref) +// CHECK:STDOUT: %.loc10_28.3: init @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b) to %.loc10_28.2 = in_place_init %Copy.WithSelf.Op.call.loc10 +// CHECK:STDOUT: %.loc10_28.4: init @InitFromStructGeneric.%Class.loc10_17.2 (%Class.55b) to %v.var = class_init (%.loc10_28.3) +// CHECK:STDOUT: %.loc10_3.1: init @InitFromStructGeneric.%Class.loc10_17.2 (%Class.55b) = converted %.loc10_28.1, %.loc10_28.4 // CHECK:STDOUT: assign %v.var, %.loc10_3.1 -// CHECK:STDOUT: %.loc10_17.1: type = splice_block %Class.loc10_17.1 [symbolic = %Class.loc10_17.2 (constants.%Class.b88)] { +// CHECK:STDOUT: %.loc10_17.1: type = splice_block %Class.loc10_17.1 [symbolic = %Class.loc10_17.2 (constants.%Class.55b)] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] -// CHECK:STDOUT: %T.ref.loc10: %facet_type = name_ref T, %T.loc9_27.2 [symbolic = %T.loc9_27.1 (constants.%T.cb0)] -// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.c70)] -// CHECK:STDOUT: %Destroy.facet.loc10_17.1: %Destroy.type = facet_value %T.as_type.loc10, (constants.%Destroy.lookup_impl_witness.420) [symbolic = %Destroy.facet.loc10_17.2 (constants.%Destroy.facet.4ff)] -// CHECK:STDOUT: %.loc10_17.2: %Destroy.type = converted %T.ref.loc10, %Destroy.facet.loc10_17.1 [symbolic = %Destroy.facet.loc10_17.2 (constants.%Destroy.facet.4ff)] -// CHECK:STDOUT: %Class.loc10_17.1: type = class_type @Class, @Class(constants.%Destroy.facet.4ff) [symbolic = %Class.loc10_17.2 (constants.%Class.b88)] +// CHECK:STDOUT: %T.ref.loc10: %facet_type = name_ref T, %T.loc9_27.2 [symbolic = %T.loc9_27.1 (constants.%T.283)] +// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.74b)] +// CHECK:STDOUT: %Destroy.facet.loc10_17.1: %Destroy.type = facet_value %T.as_type.loc10, (constants.%Destroy.lookup_impl_witness.28a) [symbolic = %Destroy.facet.loc10_17.2 (constants.%Destroy.facet.16e)] +// CHECK:STDOUT: %.loc10_17.2: %Destroy.type = converted %T.ref.loc10, %Destroy.facet.loc10_17.1 [symbolic = %Destroy.facet.loc10_17.2 (constants.%Destroy.facet.16e)] +// CHECK:STDOUT: %Class.loc10_17.1: type = class_type @Class, @Class(constants.%Destroy.facet.16e) [symbolic = %Class.loc10_17.2 (constants.%Class.55b)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.b88) = ref_binding v, %v.var -// CHECK:STDOUT: %v.ref: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.b88) = name_ref v, %v -// CHECK:STDOUT: %k.ref: @InitFromStructGeneric.%Class.elem (%Class.elem.e92) = name_ref k, @Class.%.loc5 [concrete = @Class.%.loc5] -// CHECK:STDOUT: %.loc11_11.1: ref @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.c70) = class_element_access %v.ref, element0 -// CHECK:STDOUT: %.loc11_11.2: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.c70) = acquire_value %.loc11_11.1 -// CHECK:STDOUT: %impl.elem0.loc11: @InitFromStructGeneric.%.loc10_27 (%.4f1) = impl_witness_access constants.%Copy.lookup_impl_witness.300, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.9fa)] +// CHECK:STDOUT: %v: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.55b) = ref_binding v, %v.var +// CHECK:STDOUT: %v.ref: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.55b) = name_ref v, %v +// CHECK:STDOUT: %k.ref: @InitFromStructGeneric.%Class.elem (%Class.elem.b97) = name_ref k, @Class.%.loc5 [concrete = @Class.%.loc5] +// CHECK:STDOUT: %.loc11_11.1: ref @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b) = class_element_access %v.ref, element0 +// CHECK:STDOUT: %.loc11_11.2: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b) = acquire_value %.loc11_11.1 +// CHECK:STDOUT: %impl.elem0.loc11: @InitFromStructGeneric.%.loc10_27 (%.018) = impl_witness_access constants.%Copy.lookup_impl_witness.4df, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.170)] // CHECK:STDOUT: %bound_method.loc11_11.1: = bound_method %.loc11_11.2, %impl.elem0.loc11 -// CHECK:STDOUT: %specific_impl_fn.loc11: = specific_impl_function %impl.elem0.loc11, @Copy.WithSelf.Op(constants.%Copy.facet.11a) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.dfd)] +// CHECK:STDOUT: %specific_impl_fn.loc11: = specific_impl_function %impl.elem0.loc11, @Copy.WithSelf.Op(constants.%Copy.facet.3f0) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.be5)] // CHECK:STDOUT: %bound_method.loc11_11.2: = bound_method %.loc11_11.2, %specific_impl_fn.loc11 -// CHECK:STDOUT: %.loc9_65.1: ref @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.c70) = splice_block %return.param {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc11: init @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.c70) to %.loc9_65.1 = call %bound_method.loc11_11.2(%.loc11_11.2) -// CHECK:STDOUT: %impl.elem0.loc10_3.1: @InitFromStructGeneric.%.loc10_3.2 (%.70e) = impl_witness_access constants.%Destroy.lookup_impl_witness.20f, element0 [symbolic = %impl.elem0.loc10_3.2 (constants.%impl.elem0.686)] +// CHECK:STDOUT: %.loc9_65.1: ref @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b) = splice_block %return.param {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc11: init @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.74b) to %.loc9_65.1 = call %bound_method.loc11_11.2(%.loc11_11.2) +// CHECK:STDOUT: %impl.elem0.loc10_3.1: @InitFromStructGeneric.%.loc10_3.2 (%.0da) = impl_witness_access constants.%Destroy.lookup_impl_witness.62e, element0 [symbolic = %impl.elem0.loc10_3.2 (constants.%impl.elem0.730)] // CHECK:STDOUT: %bound_method.loc10_3.1: = bound_method %v.var, %impl.elem0.loc10_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_3.1: = specific_impl_function %impl.elem0.loc10_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.a36) [symbolic = %specific_impl_fn.loc10_3.2 (constants.%specific_impl_fn.bab)] +// 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: %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 @@ -275,40 +275,40 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: fn @InitFromStructSpecific(%x.param: %i32) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.786 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.786 = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.82c = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.82c = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref %Class.f09 = var %v.var_patt +// CHECK:STDOUT: %v.var: ref %Class.a32 = var %v.var_patt // CHECK:STDOUT: %x.ref: %i32 = name_ref x, %x -// CHECK:STDOUT: %.loc15_30.1: %struct_type.k.baa = struct_literal (%x.ref) -// CHECK:STDOUT: %impl.elem0.loc15: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %.loc15_30.1: %struct_type.k.e7c = struct_literal (%x.ref) +// CHECK:STDOUT: %impl.elem0.loc15: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc15_29.1: = bound_method %x.ref, %impl.elem0.loc15 // CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc15_29.2: = bound_method %x.ref, %specific_fn.loc15 // 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.f09 to %v.var = class_init (%.loc15_30.3) -// CHECK:STDOUT: %.loc15_3: init %Class.f09 = converted %.loc15_30.1, %.loc15_30.4 +// 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: assign %v.var, %.loc15_3 -// CHECK:STDOUT: %.loc15_19.1: type = splice_block %Class [concrete = constants.%Class.f09] { +// CHECK:STDOUT: %.loc15_19.1: type = splice_block %Class [concrete = constants.%Class.a32] { // 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.e20f1f.2) [concrete = constants.%Destroy.facet.95d] -// CHECK:STDOUT: %.loc15_19.2: %Destroy.type = converted %i32.loc15, %Destroy.facet [concrete = constants.%Destroy.facet.95d] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%Destroy.facet.95d) [concrete = constants.%Class.f09] +// 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: } -// CHECK:STDOUT: %v: ref %Class.f09 = ref_binding v, %v.var -// CHECK:STDOUT: %v.ref: ref %Class.f09 = name_ref v, %v -// CHECK:STDOUT: %k.ref: %Class.elem.3e9 = name_ref k, @Class.%.loc5 [concrete = @Class.%.loc5] +// CHECK:STDOUT: %v: ref %Class.a32 = ref_binding v, %v.var +// CHECK:STDOUT: %v.ref: ref %Class.a32 = name_ref v, %v +// CHECK:STDOUT: %k.ref: %Class.elem.8f3 = name_ref k, @Class.%.loc5 [concrete = @Class.%.loc5] // 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: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc16: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc16_11.1: = bound_method %.loc16_11.2, %impl.elem0.loc16 // 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.2dd605.4 +// 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: return %Int.as.Copy.impl.Op.call.loc16 // CHECK:STDOUT: } @@ -320,21 +320,21 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_3.1(%self.param: ref %struct_type.k.baa) { +// CHECK:STDOUT: fn @Destroy.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.f09) { +// CHECK:STDOUT: fn @Destroy.Op.loc15_3.2(%self.param: ref %Class.a32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @InitFromStructGeneric(constants.%T.cb0) { -// CHECK:STDOUT: %T.loc9_27.1 => constants.%T.cb0 -// CHECK:STDOUT: %T.as_type.loc9_59.1 => constants.%T.as_type.c70 -// CHECK:STDOUT: %pattern_type.loc9 => constants.%pattern_type.e2d -// CHECK:STDOUT: %.loc9_65.2 => constants.%.f8e +// CHECK:STDOUT: specific @InitFromStructGeneric(constants.%T.283) { +// CHECK:STDOUT: %T.loc9_27.1 => constants.%T.283 +// CHECK:STDOUT: %T.as_type.loc9_59.1 => constants.%T.as_type.74b +// CHECK:STDOUT: %pattern_type.loc9 => constants.%pattern_type.44a +// CHECK:STDOUT: %.loc9_65.2 => constants.%.2b9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- adapt.carbon @@ -345,40 +345,40 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %Adapt.type: type = generic_class_type @Adapt [concrete] // CHECK:STDOUT: %Adapt.generic: %Adapt.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %T.f49: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f49 [symbolic] -// CHECK:STDOUT: %pattern_type.c0fdca.2: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %.dedae6.2: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.e81: type = pattern_type %Copy.type [concrete] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f84 [symbolic] +// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %T.as_type [symbolic] // CHECK:STDOUT: %InitFromAdaptedGeneric.type: type = fn_type @InitFromAdaptedGeneric [concrete] // CHECK:STDOUT: %InitFromAdaptedGeneric: %InitFromAdaptedGeneric.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.77e: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %Adapt.cbc: type = class_type @Adapt, @Adapt(%T.as_type) [symbolic] -// CHECK:STDOUT: %require_complete.b9c: = require_complete_type %Adapt.cbc [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2dd: = lookup_impl_witness %T.f49, @Copy [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.e9f10f.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f49) [symbolic] -// CHECK:STDOUT: %.e16: type = fn_type_with_self_type %Copy.WithSelf.Op.type.e9f10f.2, %T.f49 [symbolic] -// CHECK:STDOUT: %impl.elem0.41e: %.e16 = impl_witness_access %Copy.lookup_impl_witness.2dd, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7ec: = specific_impl_function %impl.elem0.41e, @Copy.WithSelf.Op(%T.f49) [symbolic] +// CHECK:STDOUT: %require_complete.d83: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %Adapt.210: type = class_type @Adapt, @Adapt(%T.as_type) [symbolic] +// CHECK:STDOUT: %require_complete.29a: = require_complete_type %Adapt.210 [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d9c: = lookup_impl_witness %T.f84, @Copy [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c85f21.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f84) [symbolic] +// CHECK:STDOUT: %.c29: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c85f21.2, %T.f84 [symbolic] +// CHECK:STDOUT: %impl.elem0.bd2: %.c29 = impl_witness_access %Copy.lookup_impl_witness.d9c, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e2a: = specific_impl_function %impl.elem0.bd2, @Copy.WithSelf.Op(%T.f84) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %InitFromAdaptedSpecific.type: type = fn_type @InitFromAdaptedSpecific [concrete] // CHECK:STDOUT: %InitFromAdaptedSpecific: %InitFromAdaptedSpecific.type = struct_value () [concrete] -// CHECK:STDOUT: %Adapt.e48: type = class_type @Adapt, @Adapt(%i32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] +// CHECK:STDOUT: %Adapt.f89: type = class_type @Adapt, @Adapt(%i32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -390,31 +390,31 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %InitFromAdaptedGeneric.decl: %InitFromAdaptedGeneric.type = fn_decl @InitFromAdaptedGeneric [concrete = constants.%InitFromAdaptedGeneric] { -// CHECK:STDOUT: %T.patt: %pattern_type.b72 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.c0fdca.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.c0fdca.2) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.c0fdca.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.c0fdca.2) = return_slot_pattern %return.param_patt, %.loc9_51.3 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.e81 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %x.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt, %.loc9_51.3 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc9_51: %Copy.type = name_ref T, %T.loc9_28.2 [symbolic = %T.loc9_28.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.ref.loc9_51: %Copy.type = name_ref T, %T.loc9_28.2 [symbolic = %T.loc9_28.1 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc9_51: type = facet_access_type %T.ref.loc9_51 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc9_51.3: type = converted %T.ref.loc9_51, %T.as_type.loc9_51 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_51.4: Core.Form = init_form %.loc9_51.3 [symbolic = %.loc9_51.2 (constants.%.dedae6.2)] +// CHECK:STDOUT: %.loc9_51.4: Core.Form = init_form %.loc9_51.3 [symbolic = %.loc9_51.2 (constants.%.1ce700.2)] // CHECK:STDOUT: %.loc9_35: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc9_28.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc9_28.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc9_28.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc9_28.1 (constants.%T.f84)] // CHECK:STDOUT: %x.param: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc9_45.1: type = splice_block %.loc9_45.2 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc9_45: %Copy.type = name_ref T, %T.loc9_28.2 [symbolic = %T.loc9_28.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.ref.loc9_45: %Copy.type = name_ref T, %T.loc9_28.2 [symbolic = %T.loc9_28.1 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc9_45.2: type = facet_access_type %T.ref.loc9_45 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc9_45.2: type = converted %T.ref.loc9_45, %T.as_type.loc9_45.2 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] // CHECK:STDOUT: } @@ -423,13 +423,13 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %return: ref @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InitFromAdaptedSpecific.decl: %InitFromAdaptedSpecific.type = fn_decl @InitFromAdaptedSpecific [concrete = constants.%InitFromAdaptedSpecific] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.104 = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc13_39 [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc13_39 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc13_39: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc13: Core.Form = init_form %i32.loc13_39 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc13: Core.Form = init_form %i32.loc13_39 [concrete = constants.%.795] // CHECK:STDOUT: %x.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc13_31: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %x: %i32 = value_binding x, %x.param @@ -439,39 +439,39 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @InitFromAdaptedGeneric(%T.loc9_28.2: %Copy.type) { -// CHECK:STDOUT: %T.loc9_28.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc9_28.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc9_28.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc9_28.1 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc9_45.1: type = facet_access_type %T.loc9_28.1 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_45.1 [symbolic = %pattern_type (constants.%pattern_type.c0fdca.2)] -// CHECK:STDOUT: %.loc9_51.2: Core.Form = init_form %T.as_type.loc9_45.1 [symbolic = %.loc9_51.2 (constants.%.dedae6.2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_45.1 [symbolic = %pattern_type (constants.%pattern_type.2c66b4.2)] +// CHECK:STDOUT: %.loc9_51.2: Core.Form = init_form %T.as_type.loc9_45.1 [symbolic = %.loc9_51.2 (constants.%.1ce700.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.as_type.loc9_45.1 [symbolic = %require_complete.loc9 (constants.%require_complete.77e)] -// CHECK:STDOUT: %Adapt.loc10_23.2: type = class_type @Adapt, @Adapt(%T.as_type.loc9_45.1) [symbolic = %Adapt.loc10_23.2 (constants.%Adapt.cbc)] -// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Adapt.loc10_23.2 [symbolic = %require_complete.loc10 (constants.%require_complete.b9c)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc9_28.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.2)] -// CHECK:STDOUT: %.loc10_26.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc9_28.1 [symbolic = %.loc10_26.3 (constants.%.e16)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc9_28.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2dd)] -// CHECK:STDOUT: %impl.elem0.loc10_26.2: @InitFromAdaptedGeneric.%.loc10_26.3 (%.e16) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_26.2 (constants.%impl.elem0.41e)] -// CHECK:STDOUT: %specific_impl_fn.loc10_26.2: = specific_impl_function %impl.elem0.loc10_26.2, @Copy.WithSelf.Op(%T.loc9_28.1) [symbolic = %specific_impl_fn.loc10_26.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.as_type.loc9_45.1 [symbolic = %require_complete.loc9 (constants.%require_complete.d83)] +// CHECK:STDOUT: %Adapt.loc10_23.2: type = class_type @Adapt, @Adapt(%T.as_type.loc9_45.1) [symbolic = %Adapt.loc10_23.2 (constants.%Adapt.210)] +// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Adapt.loc10_23.2 [symbolic = %require_complete.loc10 (constants.%require_complete.29a)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc9_28.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.2)] +// CHECK:STDOUT: %.loc10_26.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc9_28.1 [symbolic = %.loc10_26.3 (constants.%.c29)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc9_28.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c)] +// CHECK:STDOUT: %impl.elem0.loc10_26.2: @InitFromAdaptedGeneric.%.loc10_26.3 (%.c29) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_26.2 (constants.%impl.elem0.bd2)] +// CHECK:STDOUT: %specific_impl_fn.loc10_26.2: = specific_impl_function %impl.elem0.loc10_26.2, @Copy.WithSelf.Op(%T.loc9_28.1) [symbolic = %specific_impl_fn.loc10_26.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type)) -> out %return.param: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %Adapt.ref: %Adapt.type = name_ref Adapt, file.%Adapt.decl [concrete = constants.%Adapt.generic] -// CHECK:STDOUT: %T.ref.loc10_22: %Copy.type = name_ref T, %T.loc9_28.2 [symbolic = %T.loc9_28.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.ref.loc10_22: %Copy.type = name_ref T, %T.loc9_28.2 [symbolic = %T.loc9_28.1 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc10_23: type = facet_access_type %T.ref.loc10_22 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc10_23: type = converted %T.ref.loc10_22, %T.as_type.loc10_23 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] -// CHECK:STDOUT: %Adapt.loc10_23.1: type = class_type @Adapt, @Adapt(constants.%T.as_type) [symbolic = %Adapt.loc10_23.2 (constants.%Adapt.cbc)] -// CHECK:STDOUT: %.loc10_13.1: @InitFromAdaptedGeneric.%Adapt.loc10_23.2 (%Adapt.cbc) = as_compatible %x.ref -// CHECK:STDOUT: %.loc10_13.2: @InitFromAdaptedGeneric.%Adapt.loc10_23.2 (%Adapt.cbc) = converted %x.ref, %.loc10_13.1 -// CHECK:STDOUT: %T.ref.loc10_29: %Copy.type = name_ref T, %T.loc9_28.2 [symbolic = %T.loc9_28.1 (constants.%T.f49)] +// CHECK:STDOUT: %Adapt.loc10_23.1: type = class_type @Adapt, @Adapt(constants.%T.as_type) [symbolic = %Adapt.loc10_23.2 (constants.%Adapt.210)] +// CHECK:STDOUT: %.loc10_13.1: @InitFromAdaptedGeneric.%Adapt.loc10_23.2 (%Adapt.210) = as_compatible %x.ref +// CHECK:STDOUT: %.loc10_13.2: @InitFromAdaptedGeneric.%Adapt.loc10_23.2 (%Adapt.210) = converted %x.ref, %.loc10_13.1 +// CHECK:STDOUT: %T.ref.loc10_29: %Copy.type = name_ref T, %T.loc9_28.2 [symbolic = %T.loc9_28.1 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc10_29: type = facet_access_type %T.ref.loc10_29 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc10_29: type = converted %T.ref.loc10_29, %T.as_type.loc10_29 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc10_26.1: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = as_compatible %.loc10_13.2 // CHECK:STDOUT: %.loc10_26.2: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = converted %.loc10_13.2, %.loc10_26.1 -// CHECK:STDOUT: %impl.elem0.loc10_26.1: @InitFromAdaptedGeneric.%.loc10_26.3 (%.e16) = impl_witness_access constants.%Copy.lookup_impl_witness.2dd, element0 [symbolic = %impl.elem0.loc10_26.2 (constants.%impl.elem0.41e)] +// CHECK:STDOUT: %impl.elem0.loc10_26.1: @InitFromAdaptedGeneric.%.loc10_26.3 (%.c29) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c, element0 [symbolic = %impl.elem0.loc10_26.2 (constants.%impl.elem0.bd2)] // CHECK:STDOUT: %bound_method.loc10_26.1: = bound_method %.loc10_26.2, %impl.elem0.loc10_26.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_26.1: = specific_impl_function %impl.elem0.loc10_26.1, @Copy.WithSelf.Op(constants.%T.f49) [symbolic = %specific_impl_fn.loc10_26.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %specific_impl_fn.loc10_26.1: = specific_impl_function %impl.elem0.loc10_26.1, @Copy.WithSelf.Op(constants.%T.f84) [symbolic = %specific_impl_fn.loc10_26.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: %bound_method.loc10_26.2: = bound_method %.loc10_26.2, %specific_impl_fn.loc10_26.1 // CHECK:STDOUT: %.loc9_51.1: ref @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = splice_block %return.param {} // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) to %.loc9_51.1 = call %bound_method.loc10_26.2(%.loc10_26.2) @@ -484,13 +484,13 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %x.ref: %i32 = name_ref x, %x // CHECK:STDOUT: %Adapt.ref: %Adapt.type = name_ref Adapt, file.%Adapt.decl [concrete = constants.%Adapt.generic] // CHECK:STDOUT: %i32.loc14_22: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %Adapt: type = class_type @Adapt, @Adapt(constants.%i32) [concrete = constants.%Adapt.e48] -// CHECK:STDOUT: %.loc14_13.1: %Adapt.e48 = as_compatible %x.ref -// CHECK:STDOUT: %.loc14_13.2: %Adapt.e48 = converted %x.ref, %.loc14_13.1 +// CHECK:STDOUT: %Adapt: type = class_type @Adapt, @Adapt(constants.%i32) [concrete = constants.%Adapt.f89] +// CHECK:STDOUT: %.loc14_13.1: %Adapt.f89 = as_compatible %x.ref +// CHECK:STDOUT: %.loc14_13.2: %Adapt.f89 = converted %x.ref, %.loc14_13.1 // CHECK:STDOUT: %i32.loc14_31: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc14_28.1: %i32 = as_compatible %.loc14_13.2 // CHECK:STDOUT: %.loc14_28.2: %i32 = converted %.loc14_13.2, %.loc14_28.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc14_28.1: = bound_method %.loc14_28.2, %impl.elem0 // 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.loc14_28.2: = bound_method %.loc14_28.2, %specific_fn @@ -498,10 +498,10 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @InitFromAdaptedGeneric(constants.%T.f49) { -// CHECK:STDOUT: %T.loc9_28.1 => constants.%T.f49 +// CHECK:STDOUT: specific @InitFromAdaptedGeneric(constants.%T.f84) { +// CHECK:STDOUT: %T.loc9_28.1 => constants.%T.f84 // CHECK:STDOUT: %T.as_type.loc9_45.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c0fdca.2 -// CHECK:STDOUT: %.loc9_51.2 => constants.%.dedae6.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2c66b4.2 +// CHECK:STDOUT: %.loc9_51.2 => constants.%.1ce700.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_access.carbon b/toolchain/check/testdata/class/generic/member_access.carbon index 933e351629a5..fc5b9a3f25c4 100644 --- a/toolchain/check/testdata/class/generic/member_access.carbon +++ b/toolchain/check/testdata/class/generic/member_access.carbon @@ -66,85 +66,85 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %T.f49: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Class.98f: type = class_type @Class, @Class(%T.f49) [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f49 [symbolic] -// CHECK:STDOUT: %require_complete.77e: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.c0fdca.2: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %Class.elem.a2d: type = unbound_element_type %Class.98f, %T.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.16a: type = pattern_type %Class.98f [symbolic] -// CHECK:STDOUT: %.dedae6.2: Core.Form = init_form %T.as_type [symbolic] -// CHECK:STDOUT: %Class.Get.type.44e: type = fn_type @Class.Get, @Class(%T.f49) [symbolic] -// CHECK:STDOUT: %Class.Get.b53: %Class.Get.type.44e = struct_value () [symbolic] -// CHECK:STDOUT: %ptr.a3f: type = ptr_type %T.as_type [symbolic] -// CHECK:STDOUT: %.0e7: Core.Form = init_form %ptr.a3f [symbolic] -// CHECK:STDOUT: %pattern_type.eec: type = pattern_type %ptr.a3f [symbolic] -// CHECK:STDOUT: %Class.GetAddr.type.60b: type = fn_type @Class.GetAddr, @Class(%T.f49) [symbolic] -// CHECK:STDOUT: %Class.GetAddr.2a7: %Class.GetAddr.type.60b = struct_value () [symbolic] -// CHECK:STDOUT: %struct_type.x.419: type = struct_type {.x: %T.as_type} [symbolic] -// CHECK:STDOUT: %complete_type.dd3: = complete_type_witness %struct_type.x.419 [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2dd: = lookup_impl_witness %T.f49, @Copy [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.e9f10f.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f49) [symbolic] -// CHECK:STDOUT: %.e16: type = fn_type_with_self_type %Copy.WithSelf.Op.type.e9f10f.2, %T.f49 [symbolic] -// CHECK:STDOUT: %impl.elem0.41e: %.e16 = impl_witness_access %Copy.lookup_impl_witness.2dd, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7ec: = specific_impl_function %impl.elem0.41e, @Copy.WithSelf.Op(%T.f49) [symbolic] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Class.575: type = class_type @Class, @Class(%T.f84) [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f84 [symbolic] +// CHECK:STDOUT: %require_complete.d83: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %Class.elem.1ee: type = unbound_element_type %Class.575, %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.e18: type = pattern_type %Class.575 [symbolic] +// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %Class.Get.type.0dd: type = fn_type @Class.Get, @Class(%T.f84) [symbolic] +// CHECK:STDOUT: %Class.Get.112: %Class.Get.type.0dd = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.215: type = ptr_type %T.as_type [symbolic] +// CHECK:STDOUT: %.4fb: Core.Form = init_form %ptr.215 [symbolic] +// CHECK:STDOUT: %pattern_type.d5b: type = pattern_type %ptr.215 [symbolic] +// CHECK:STDOUT: %Class.GetAddr.type.f90: type = fn_type @Class.GetAddr, @Class(%T.f84) [symbolic] +// CHECK:STDOUT: %Class.GetAddr.c34: %Class.GetAddr.type.f90 = struct_value () [symbolic] +// CHECK:STDOUT: %struct_type.x.ac1: type = struct_type {.x: %T.as_type} [symbolic] +// CHECK:STDOUT: %complete_type.b8d: = complete_type_witness %struct_type.x.ac1 [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d9c: = lookup_impl_witness %T.f84, @Copy [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c85f21.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f84) [symbolic] +// CHECK:STDOUT: %.c29: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c85f21.2, %T.f84 [symbolic] +// CHECK:STDOUT: %impl.elem0.bd2: %.c29 = impl_witness_access %Copy.lookup_impl_witness.d9c, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e2a: = specific_impl_function %impl.elem0.bd2, @Copy.WithSelf.Op(%T.f84) [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.fd9: = lookup_impl_witness %ptr.a3f, @Copy [symbolic] -// CHECK:STDOUT: %.7ac: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type) [symbolic] -// CHECK:STDOUT: %Copy.facet.d43: %Copy.type = facet_value %ptr.a3f, (%Copy.lookup_impl_witness.fd9) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.4e8: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.d43) [symbolic] -// CHECK:STDOUT: %.93e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.4e8, %Copy.facet.d43 [symbolic] -// CHECK:STDOUT: %impl.elem0.d58: %.93e = impl_witness_access %Copy.lookup_impl_witness.fd9, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.436: = specific_impl_function %impl.elem0.d58, @Copy.WithSelf.Op(%Copy.facet.d43) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.cf6: = lookup_impl_witness %ptr.215, @Copy [symbolic] +// CHECK:STDOUT: %.a33: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type) [symbolic] +// CHECK:STDOUT: %Copy.facet.ed3: %Copy.type = facet_value %ptr.215, (%Copy.lookup_impl_witness.cf6) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.6e0: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.ed3) [symbolic] +// CHECK:STDOUT: %.45d: type = fn_type_with_self_type %Copy.WithSelf.Op.type.6e0, %Copy.facet.ed3 [symbolic] +// CHECK:STDOUT: %impl.elem0.c5d: %.45d = impl_witness_access %Copy.lookup_impl_witness.cf6, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.5cf: = specific_impl_function %impl.elem0.c5d, @Copy.WithSelf.Op(%Copy.facet.ed3) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %Copy.facet.14d: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Class.b6c: type = class_type @Class, @Class(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %pattern_type.b80: type = pattern_type %Class.b6c [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Class.elem.760: type = unbound_element_type %Class.b6c, %i32 [concrete] -// CHECK:STDOUT: %Class.Get.type.46c: type = fn_type @Class.Get, @Class(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %Class.Get.494: %Class.Get.type.46c = struct_value () [concrete] -// CHECK:STDOUT: %Class.GetAddr.type.f08: type = fn_type @Class.GetAddr, @Class(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %Class.GetAddr.dfd: %Class.GetAddr.type.f08 = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.x.06a: type = struct_type {.x: %i32} [concrete] -// CHECK:STDOUT: %complete_type.9a8: = complete_type_witness %struct_type.x.06a [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet.14d [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Class.Get.specific_fn: = specific_function %Class.Get.494, @Class.Get(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %ptr.67a: type = ptr_type %Class.b6c [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %.060: Core.Form = init_form %ptr.847 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr.847 [concrete] -// CHECK:STDOUT: %Class.GetAddr.specific_fn: = specific_function %Class.GetAddr.dfd, @Class.GetAddr(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %complete_type.34c: = complete_type_witness %ptr.847 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.c37: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ae4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.6e4: %ptr.as.Copy.impl.Op.type.ae4 = struct_value () [concrete] -// CHECK:STDOUT: %.b35: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %Copy.facet.17a: %Copy.type = facet_value %ptr.847, (%Copy.impl_witness.c37) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.165: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.17a) [concrete] -// CHECK:STDOUT: %.cd7: type = fn_type_with_self_type %Copy.WithSelf.Op.type.165, %Copy.facet.17a [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.6e4, @ptr.as.Copy.impl.Op(%i32) [concrete] +// CHECK:STDOUT: %Copy.facet.987: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Class.ce6: type = class_type @Class, @Class(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %pattern_type.658: type = pattern_type %Class.ce6 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Class.elem.32a: type = unbound_element_type %Class.ce6, %i32 [concrete] +// CHECK:STDOUT: %Class.Get.type.9ad: type = fn_type @Class.Get, @Class(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %Class.Get.ae0: %Class.Get.type.9ad = struct_value () [concrete] +// CHECK:STDOUT: %Class.GetAddr.type.1ad: type = fn_type @Class.GetAddr, @Class(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %Class.GetAddr.26c: %Class.GetAddr.type.1ad = struct_value () [concrete] +// CHECK:STDOUT: %struct_type.x.a15: type = struct_type {.x: %i32} [concrete] +// CHECK:STDOUT: %complete_type.0c6: = complete_type_witness %struct_type.x.a15 [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet.987 [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: %Class.Get.specific_fn: = specific_function %Class.Get.ae0, @Class.Get(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %ptr.57b: type = ptr_type %Class.ce6 [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %.952: Core.Form = init_form %ptr.d08 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete] +// CHECK:STDOUT: %Class.GetAddr.specific_fn: = specific_function %Class.GetAddr.26c, @Class.GetAddr(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %complete_type.07f: = complete_type_witness %ptr.d08 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.ce1: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c1c: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.d1c: %ptr.as.Copy.impl.Op.type.c1c = struct_value () [concrete] +// CHECK:STDOUT: %.c00: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %Copy.facet.b49: %Copy.type = facet_value %ptr.d08, (%Copy.impl_witness.ce1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.f9d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.b49) [concrete] +// CHECK:STDOUT: %.ac9: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f9d, %Copy.facet.b49 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Class(%T.loc4_14.2: %Copy.type) { @@ -158,7 +158,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: complete_type_witness = %complete_type.loc18_1.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Class.98f +// CHECK:STDOUT: .Self = constants.%Class.575 // CHECK:STDOUT: .T = // CHECK:STDOUT: .x = %.loc5 // CHECK:STDOUT: .Get = %Class.Get.decl @@ -171,23 +171,23 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc7_27.1 [symbolic = %Class.elem (constants.%Class.elem.a2d)] -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.as_type.loc7_27.1 [symbolic = %require_complete.loc9 (constants.%require_complete.77e)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.2)] -// CHECK:STDOUT: %.loc9_16.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc9_16.3 (constants.%.e16)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2dd)] -// CHECK:STDOUT: %impl.elem0.loc9_16.2: @Class.Get.%.loc9_16.3 (%.e16) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_16.2 (constants.%impl.elem0.41e)] -// CHECK:STDOUT: %specific_impl_fn.loc9_16.2: = specific_impl_function %impl.elem0.loc9_16.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc9_16.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc7_27.1 [symbolic = %Class.elem (constants.%Class.elem.1ee)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.as_type.loc7_27.1 [symbolic = %require_complete.loc9 (constants.%require_complete.d83)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.2)] +// CHECK:STDOUT: %.loc9_16.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc9_16.3 (constants.%.c29)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c)] +// CHECK:STDOUT: %impl.elem0.loc9_16.2: @Class.Get.%.loc9_16.3 (%.c29) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_16.2 (constants.%impl.elem0.bd2)] +// CHECK:STDOUT: %specific_impl_fn.loc9_16.2: = specific_impl_function %impl.elem0.loc9_16.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc9_16.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Class.Get.%Class (%Class.98f)) -> out %return.param: @Class.Get.%T.as_type.loc7_27.1 (%T.as_type) { +// CHECK:STDOUT: fn(%self.param: @Class.Get.%Class (%Class.575)) -> out %return.param: @Class.Get.%T.as_type.loc7_27.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: @Class.Get.%Class (%Class.98f) = name_ref self, %self -// CHECK:STDOUT: %x.ref: @Class.Get.%Class.elem (%Class.elem.a2d) = name_ref x, @Class.%.loc5 [concrete = @Class.%.loc5] +// CHECK:STDOUT: %self.ref: @Class.Get.%Class (%Class.575) = name_ref self, %self +// CHECK:STDOUT: %x.ref: @Class.Get.%Class.elem (%Class.elem.1ee) = name_ref x, @Class.%.loc5 [concrete = @Class.%.loc5] // CHECK:STDOUT: %.loc9_16.1: ref @Class.Get.%T.as_type.loc7_27.1 (%T.as_type) = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc9_16.2: @Class.Get.%T.as_type.loc7_27.1 (%T.as_type) = acquire_value %.loc9_16.1 -// CHECK:STDOUT: %impl.elem0.loc9_16.1: @Class.Get.%.loc9_16.3 (%.e16) = impl_witness_access constants.%Copy.lookup_impl_witness.2dd, element0 [symbolic = %impl.elem0.loc9_16.2 (constants.%impl.elem0.41e)] +// CHECK:STDOUT: %impl.elem0.loc9_16.1: @Class.Get.%.loc9_16.3 (%.c29) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c, element0 [symbolic = %impl.elem0.loc9_16.2 (constants.%impl.elem0.bd2)] // CHECK:STDOUT: %bound_method.loc9_16.1: = bound_method %.loc9_16.2, %impl.elem0.loc9_16.1 -// CHECK:STDOUT: %specific_impl_fn.loc9_16.1: = specific_impl_function %impl.elem0.loc9_16.1, @Copy.WithSelf.Op(constants.%T.f49) [symbolic = %specific_impl_fn.loc9_16.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %specific_impl_fn.loc9_16.1: = specific_impl_function %impl.elem0.loc9_16.1, @Copy.WithSelf.Op(constants.%T.f84) [symbolic = %specific_impl_fn.loc9_16.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: %bound_method.loc9_16.2: = bound_method %.loc9_16.2, %specific_impl_fn.loc9_16.1 // CHECK:STDOUT: // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.Get.%T.as_type.loc7_27.1 (%T.as_type) to %.loc7_27.1 = call %bound_method.loc9_16.2(%.loc9_16.2) @@ -200,37 +200,37 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc13_36.1 [symbolic = %Class.elem (constants.%Class.elem.a2d)] -// CHECK:STDOUT: %.loc15_12.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.loc13_36.1) [symbolic = %.loc15_12.1 (constants.%.7ac)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc13_36.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.fd9)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc13_36.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.d43)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.4e8)] -// CHECK:STDOUT: %.loc15_12.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc15_12.2 (constants.%.93e)] -// CHECK:STDOUT: %impl.elem0.loc15_12.2: @Class.GetAddr.%.loc15_12.2 (%.93e) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_12.2 (constants.%impl.elem0.d58)] -// CHECK:STDOUT: %specific_impl_fn.loc15_12.2: = specific_impl_function %impl.elem0.loc15_12.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc15_12.2 (constants.%specific_impl_fn.436)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc13_36.1 [symbolic = %Class.elem (constants.%Class.elem.1ee)] +// CHECK:STDOUT: %.loc15_12.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.loc13_36.1) [symbolic = %.loc15_12.1 (constants.%.a33)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc13_36.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.cf6)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc13_36.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.ed3)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.6e0)] +// CHECK:STDOUT: %.loc15_12.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc15_12.2 (constants.%.45d)] +// CHECK:STDOUT: %impl.elem0.loc15_12.2: @Class.GetAddr.%.loc15_12.2 (%.45d) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_12.2 (constants.%impl.elem0.c5d)] +// CHECK:STDOUT: %specific_impl_fn.loc15_12.2: = specific_impl_function %impl.elem0.loc15_12.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc15_12.2 (constants.%specific_impl_fn.5cf)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: ref @Class.GetAddr.%Class (%Class.98f)) -> out %return.param: @Class.GetAddr.%ptr.loc13_36.1 (%ptr.a3f) { +// CHECK:STDOUT: fn(%self.param: ref @Class.GetAddr.%Class (%Class.575)) -> out %return.param: @Class.GetAddr.%ptr.loc13_36.1 (%ptr.215) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: ref @Class.GetAddr.%Class (%Class.98f) = name_ref self, %self -// CHECK:STDOUT: %x.ref: @Class.GetAddr.%Class.elem (%Class.elem.a2d) = name_ref x, @Class.%.loc5 [concrete = @Class.%.loc5] +// CHECK:STDOUT: %self.ref: ref @Class.GetAddr.%Class (%Class.575) = name_ref self, %self +// CHECK:STDOUT: %x.ref: @Class.GetAddr.%Class.elem (%Class.elem.1ee) = name_ref x, @Class.%.loc5 [concrete = @Class.%.loc5] // CHECK:STDOUT: %.loc15_17: ref @Class.GetAddr.%T.as_type.loc13_36.1 (%T.as_type) = class_element_access %self.ref, element0 -// CHECK:STDOUT: %addr: @Class.GetAddr.%ptr.loc13_36.1 (%ptr.a3f) = addr_of %.loc15_17 -// CHECK:STDOUT: %impl.elem0.loc15_12.1: @Class.GetAddr.%.loc15_12.2 (%.93e) = impl_witness_access constants.%Copy.lookup_impl_witness.fd9, element0 [symbolic = %impl.elem0.loc15_12.2 (constants.%impl.elem0.d58)] +// CHECK:STDOUT: %addr: @Class.GetAddr.%ptr.loc13_36.1 (%ptr.215) = addr_of %.loc15_17 +// CHECK:STDOUT: %impl.elem0.loc15_12.1: @Class.GetAddr.%.loc15_12.2 (%.45d) = impl_witness_access constants.%Copy.lookup_impl_witness.cf6, element0 [symbolic = %impl.elem0.loc15_12.2 (constants.%impl.elem0.c5d)] // CHECK:STDOUT: %bound_method.loc15_12.1: = bound_method %addr, %impl.elem0.loc15_12.1 -// CHECK:STDOUT: %specific_impl_fn.loc15_12.1: = specific_impl_function %impl.elem0.loc15_12.1, @Copy.WithSelf.Op(constants.%Copy.facet.d43) [symbolic = %specific_impl_fn.loc15_12.2 (constants.%specific_impl_fn.436)] +// CHECK:STDOUT: %specific_impl_fn.loc15_12.1: = specific_impl_function %impl.elem0.loc15_12.1, @Copy.WithSelf.Op(constants.%Copy.facet.ed3) [symbolic = %specific_impl_fn.loc15_12.2 (constants.%specific_impl_fn.5cf)] // CHECK:STDOUT: %bound_method.loc15_12.2: = bound_method %addr, %specific_impl_fn.loc15_12.1 -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.GetAddr.%ptr.loc13_36.1 (%ptr.a3f) = call %bound_method.loc15_12.2(%addr) +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.GetAddr.%ptr.loc13_36.1 (%ptr.215) = call %bound_method.loc15_12.2(%addr) // CHECK:STDOUT: return %Copy.WithSelf.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @DirectFieldAccess(%x.param: %Class.b6c) -> out %return.param: %i32 { +// CHECK:STDOUT: fn @DirectFieldAccess(%x.param: %Class.ce6) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref.loc22_10: %Class.b6c = name_ref x, %x -// CHECK:STDOUT: %x.ref.loc22_11: %Class.elem.760 = name_ref x, @Class.%.loc5 [concrete = @Class.%.loc5] +// CHECK:STDOUT: %x.ref.loc22_10: %Class.ce6 = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc22_11: %Class.elem.32a = name_ref x, @Class.%.loc5 [concrete = @Class.%.loc5] // CHECK:STDOUT: %.loc22_11.1: ref %i32 = class_element_access %x.ref.loc22_10, element0 // CHECK:STDOUT: %.loc22_11.2: %i32 = acquire_value %.loc22_11.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc22_11.1: = bound_method %.loc22_11.2, %impl.elem0 // 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.loc22_11.2: = bound_method %.loc22_11.2, %specific_fn @@ -238,33 +238,33 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @MethodCall(%x.param: %Class.b6c) -> out %return.param: %i32 { +// CHECK:STDOUT: fn @MethodCall(%x.param: %Class.ce6) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: %Class.b6c = name_ref x, %x -// CHECK:STDOUT: %.loc28: %Class.Get.type.46c = specific_constant @Class.%Class.Get.decl, @Class(constants.%Copy.facet.14d) [concrete = constants.%Class.Get.494] -// CHECK:STDOUT: %Get.ref: %Class.Get.type.46c = name_ref Get, %.loc28 [concrete = constants.%Class.Get.494] +// CHECK:STDOUT: %x.ref: %Class.ce6 = name_ref x, %x +// CHECK:STDOUT: %.loc28: %Class.Get.type.9ad = specific_constant @Class.%Class.Get.decl, @Class(constants.%Copy.facet.987) [concrete = constants.%Class.Get.ae0] +// CHECK:STDOUT: %Get.ref: %Class.Get.type.9ad = name_ref Get, %.loc28 [concrete = constants.%Class.Get.ae0] // CHECK:STDOUT: %Class.Get.bound: = bound_method %x.ref, %Get.ref -// CHECK:STDOUT: %Class.Get.specific_fn: = specific_function %Get.ref, @Class.Get(constants.%Copy.facet.14d) [concrete = constants.%Class.Get.specific_fn] +// CHECK:STDOUT: %Class.Get.specific_fn: = specific_function %Get.ref, @Class.Get(constants.%Copy.facet.987) [concrete = constants.%Class.Get.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %x.ref, %Class.Get.specific_fn // CHECK:STDOUT: %Class.Get.call: init %i32 = call %bound_method(%x.ref) // CHECK:STDOUT: return %Class.Get.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @AddrMethodCall(%p.param: %ptr.67a) -> out %return.param: %i32 { +// CHECK:STDOUT: fn @AddrMethodCall(%p.param: %ptr.57b) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.67a = name_ref p, %p -// CHECK:STDOUT: %.loc34_12.1: ref %Class.b6c = deref %p.ref -// CHECK:STDOUT: %.loc34_12.2: %Class.GetAddr.type.f08 = specific_constant @Class.%Class.GetAddr.decl, @Class(constants.%Copy.facet.14d) [concrete = constants.%Class.GetAddr.dfd] -// CHECK:STDOUT: %GetAddr.ref: %Class.GetAddr.type.f08 = name_ref GetAddr, %.loc34_12.2 [concrete = constants.%Class.GetAddr.dfd] +// CHECK:STDOUT: %p.ref: %ptr.57b = name_ref p, %p +// CHECK:STDOUT: %.loc34_12.1: ref %Class.ce6 = deref %p.ref +// CHECK:STDOUT: %.loc34_12.2: %Class.GetAddr.type.1ad = specific_constant @Class.%Class.GetAddr.decl, @Class(constants.%Copy.facet.987) [concrete = constants.%Class.GetAddr.26c] +// CHECK:STDOUT: %GetAddr.ref: %Class.GetAddr.type.1ad = name_ref GetAddr, %.loc34_12.2 [concrete = constants.%Class.GetAddr.26c] // CHECK:STDOUT: %Class.GetAddr.bound: = bound_method %.loc34_12.1, %GetAddr.ref -// CHECK:STDOUT: %Class.GetAddr.specific_fn: = specific_function %GetAddr.ref, @Class.GetAddr(constants.%Copy.facet.14d) [concrete = constants.%Class.GetAddr.specific_fn] +// CHECK:STDOUT: %Class.GetAddr.specific_fn: = specific_function %GetAddr.ref, @Class.GetAddr(constants.%Copy.facet.987) [concrete = constants.%Class.GetAddr.specific_fn] // CHECK:STDOUT: %bound_method.loc34_22: = bound_method %.loc34_12.1, %Class.GetAddr.specific_fn -// CHECK:STDOUT: %Class.GetAddr.call: init %ptr.847 = call %bound_method.loc34_22(%.loc34_12.1) -// CHECK:STDOUT: %.loc34_22.1: %ptr.847 = value_of_initializer %Class.GetAddr.call -// CHECK:STDOUT: %.loc34_22.2: %ptr.847 = converted %Class.GetAddr.call, %.loc34_22.1 +// CHECK:STDOUT: %Class.GetAddr.call: init %ptr.d08 = call %bound_method.loc34_22(%.loc34_12.1) +// CHECK:STDOUT: %.loc34_22.1: %ptr.d08 = value_of_initializer %Class.GetAddr.call +// CHECK:STDOUT: %.loc34_22.2: %ptr.d08 = converted %Class.GetAddr.call, %.loc34_22.1 // CHECK:STDOUT: %.loc34_10.1: ref %i32 = deref %.loc34_22.2 // CHECK:STDOUT: %.loc34_10.2: %i32 = acquire_value %.loc34_10.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc34_10.1: = bound_method %.loc34_10.2, %impl.elem0 // 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.loc34_10.2: = bound_method %.loc34_10.2, %specific_fn @@ -272,95 +272,95 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%T.f49) { -// CHECK:STDOUT: %T.loc4_14.1 => constants.%T.f49 +// CHECK:STDOUT: specific @Class(constants.%T.f84) { +// CHECK:STDOUT: %T.loc4_14.1 => constants.%T.f84 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type => constants.%T.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.77e -// CHECK:STDOUT: %Class => constants.%Class.98f -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.a2d -// CHECK:STDOUT: %Class.Get.type => constants.%Class.Get.type.44e -// CHECK:STDOUT: %Class.Get => constants.%Class.Get.b53 -// CHECK:STDOUT: %Class.GetAddr.type => constants.%Class.GetAddr.type.60b -// CHECK:STDOUT: %Class.GetAddr => constants.%Class.GetAddr.2a7 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.419 -// CHECK:STDOUT: %complete_type.loc18_1.2 => constants.%complete_type.dd3 +// CHECK:STDOUT: %require_complete => constants.%require_complete.d83 +// CHECK:STDOUT: %Class => constants.%Class.575 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.1ee +// CHECK:STDOUT: %Class.Get.type => constants.%Class.Get.type.0dd +// CHECK:STDOUT: %Class.Get => constants.%Class.Get.112 +// CHECK:STDOUT: %Class.GetAddr.type => constants.%Class.GetAddr.type.f90 +// CHECK:STDOUT: %Class.GetAddr => constants.%Class.GetAddr.c34 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.ac1 +// CHECK:STDOUT: %complete_type.loc18_1.2 => constants.%complete_type.b8d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class.Get(constants.%T.f49) { -// CHECK:STDOUT: %T => constants.%T.f49 -// CHECK:STDOUT: %Class => constants.%Class.98f -// CHECK:STDOUT: %pattern_type.loc7_14 => constants.%pattern_type.16a +// CHECK:STDOUT: specific @Class.Get(constants.%T.f84) { +// CHECK:STDOUT: %T => constants.%T.f84 +// CHECK:STDOUT: %Class => constants.%Class.575 +// CHECK:STDOUT: %pattern_type.loc7_14 => constants.%pattern_type.e18 // CHECK:STDOUT: %T.as_type.loc7_27.1 => constants.%T.as_type -// CHECK:STDOUT: %.loc7_27.2 => constants.%.dedae6.2 -// CHECK:STDOUT: %pattern_type.loc7_27 => constants.%pattern_type.c0fdca.2 +// CHECK:STDOUT: %.loc7_27.2 => constants.%.1ce700.2 +// CHECK:STDOUT: %pattern_type.loc7_27 => constants.%pattern_type.2c66b4.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class.GetAddr(constants.%T.f49) { -// CHECK:STDOUT: %T => constants.%T.f49 -// CHECK:STDOUT: %Class => constants.%Class.98f -// CHECK:STDOUT: %pattern_type.loc13_22 => constants.%pattern_type.16a +// CHECK:STDOUT: specific @Class.GetAddr(constants.%T.f84) { +// CHECK:STDOUT: %T => constants.%T.f84 +// CHECK:STDOUT: %Class => constants.%Class.575 +// CHECK:STDOUT: %pattern_type.loc13_22 => constants.%pattern_type.e18 // CHECK:STDOUT: %T.as_type.loc13_36.1 => constants.%T.as_type -// CHECK:STDOUT: %ptr.loc13_36.1 => constants.%ptr.a3f -// CHECK:STDOUT: %.loc13_36.1 => constants.%.0e7 -// CHECK:STDOUT: %pattern_type.loc13_36 => constants.%pattern_type.eec +// CHECK:STDOUT: %ptr.loc13_36.1 => constants.%ptr.215 +// CHECK:STDOUT: %.loc13_36.1 => constants.%.4fb +// CHECK:STDOUT: %pattern_type.loc13_36 => constants.%pattern_type.d5b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%Copy.facet.14d) { -// CHECK:STDOUT: %T.loc4_14.1 => constants.%Copy.facet.14d +// CHECK:STDOUT: specific @Class(constants.%Copy.facet.987) { +// CHECK:STDOUT: %T.loc4_14.1 => constants.%Copy.facet.987 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type => constants.%i32 // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %Class => constants.%Class.b6c -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.760 -// CHECK:STDOUT: %Class.Get.type => constants.%Class.Get.type.46c -// CHECK:STDOUT: %Class.Get => constants.%Class.Get.494 -// CHECK:STDOUT: %Class.GetAddr.type => constants.%Class.GetAddr.type.f08 -// CHECK:STDOUT: %Class.GetAddr => constants.%Class.GetAddr.dfd -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.06a -// CHECK:STDOUT: %complete_type.loc18_1.2 => constants.%complete_type.9a8 +// CHECK:STDOUT: %Class => constants.%Class.ce6 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.32a +// CHECK:STDOUT: %Class.Get.type => constants.%Class.Get.type.9ad +// CHECK:STDOUT: %Class.Get => constants.%Class.Get.ae0 +// CHECK:STDOUT: %Class.GetAddr.type => constants.%Class.GetAddr.type.1ad +// CHECK:STDOUT: %Class.GetAddr => constants.%Class.GetAddr.26c +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.a15 +// CHECK:STDOUT: %complete_type.loc18_1.2 => constants.%complete_type.0c6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class.Get(constants.%Copy.facet.14d) { -// CHECK:STDOUT: %T => constants.%Copy.facet.14d -// CHECK:STDOUT: %Class => constants.%Class.b6c -// CHECK:STDOUT: %pattern_type.loc7_14 => constants.%pattern_type.b80 +// CHECK:STDOUT: specific @Class.Get(constants.%Copy.facet.987) { +// CHECK:STDOUT: %T => constants.%Copy.facet.987 +// CHECK:STDOUT: %Class => constants.%Class.ce6 +// CHECK:STDOUT: %pattern_type.loc7_14 => constants.%pattern_type.658 // CHECK:STDOUT: %T.as_type.loc7_27.1 => constants.%i32 -// CHECK:STDOUT: %.loc7_27.2 => constants.%.7ea -// CHECK:STDOUT: %pattern_type.loc7_27 => constants.%pattern_type.104 +// CHECK:STDOUT: %.loc7_27.2 => constants.%.795 +// CHECK:STDOUT: %pattern_type.loc7_27 => constants.%pattern_type.6b6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7 => constants.%complete_type.9a8 -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.760 +// CHECK:STDOUT: %require_complete.loc7 => constants.%complete_type.0c6 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.32a // CHECK:STDOUT: %require_complete.loc9 => constants.%complete_type.f8a -// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.7e2 -// CHECK:STDOUT: %.loc9_16.3 => constants.%.604 -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.1a4 -// CHECK:STDOUT: %impl.elem0.loc9_16.2 => constants.%Int.as.Copy.impl.Op.ce7 +// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.d09 +// CHECK:STDOUT: %.loc9_16.3 => constants.%.7a6 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.0e0 +// CHECK:STDOUT: %impl.elem0.loc9_16.2 => constants.%Int.as.Copy.impl.Op.4f6 // CHECK:STDOUT: %specific_impl_fn.loc9_16.2 => constants.%Int.as.Copy.impl.Op.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class.GetAddr(constants.%Copy.facet.14d) { -// CHECK:STDOUT: %T => constants.%Copy.facet.14d -// CHECK:STDOUT: %Class => constants.%Class.b6c -// CHECK:STDOUT: %pattern_type.loc13_22 => constants.%pattern_type.b80 +// CHECK:STDOUT: specific @Class.GetAddr(constants.%Copy.facet.987) { +// CHECK:STDOUT: %T => constants.%Copy.facet.987 +// CHECK:STDOUT: %Class => constants.%Class.ce6 +// CHECK:STDOUT: %pattern_type.loc13_22 => constants.%pattern_type.658 // CHECK:STDOUT: %T.as_type.loc13_36.1 => constants.%i32 -// CHECK:STDOUT: %ptr.loc13_36.1 => constants.%ptr.847 -// CHECK:STDOUT: %.loc13_36.1 => constants.%.060 -// CHECK:STDOUT: %pattern_type.loc13_36 => constants.%pattern_type.7b5 +// CHECK:STDOUT: %ptr.loc13_36.1 => constants.%ptr.d08 +// CHECK:STDOUT: %.loc13_36.1 => constants.%.952 +// CHECK:STDOUT: %pattern_type.loc13_36 => constants.%pattern_type.f00 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13_22 => constants.%complete_type.9a8 -// CHECK:STDOUT: %require_complete.loc13_32 => constants.%complete_type.34c -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.760 -// CHECK:STDOUT: %.loc15_12.1 => constants.%.b35 -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.c37 -// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.17a -// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.165 -// CHECK:STDOUT: %.loc15_12.2 => constants.%.cd7 -// CHECK:STDOUT: %impl.elem0.loc15_12.2 => constants.%ptr.as.Copy.impl.Op.6e4 +// CHECK:STDOUT: %require_complete.loc13_22 => constants.%complete_type.0c6 +// CHECK:STDOUT: %require_complete.loc13_32 => constants.%complete_type.07f +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.32a +// CHECK:STDOUT: %.loc15_12.1 => constants.%.c00 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.ce1 +// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.b49 +// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.f9d +// CHECK:STDOUT: %.loc15_12.2 => constants.%.ac9 +// CHECK:STDOUT: %impl.elem0.loc15_12.2 => constants.%ptr.as.Copy.impl.Op.d1c // CHECK:STDOUT: %specific_impl_fn.loc15_12.2 => constants.%ptr.as.Copy.impl.Op.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: @@ -371,8 +371,8 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [concrete] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic] -// CHECK:STDOUT: %.188: Core.Form = init_form %Class [symbolic] -// CHECK:STDOUT: %pattern_type.f8f: type = pattern_type %Class [symbolic] +// CHECK:STDOUT: %.030: Core.Form = init_form %Class [symbolic] +// CHECK:STDOUT: %pattern_type.36e: type = pattern_type %Class [symbolic] // CHECK:STDOUT: %Class.Make.type: type = fn_type @Class.Make, @Class(%T) [symbolic] // CHECK:STDOUT: %Class.Make: %Class.Make.type = struct_value () [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %Class [symbolic] @@ -405,7 +405,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: specific @StaticMemberFunctionCall(constants.%T) { // CHECK:STDOUT: %T.loc8_30.1 => constants.%T // CHECK:STDOUT: %Class.loc8_49.1 => constants.%Class -// CHECK:STDOUT: %.loc8_49.2 => constants.%.188 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f8f +// CHECK:STDOUT: %.loc8_49.2 => constants.%.030 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.36e // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_inline.carbon b/toolchain/check/testdata/class/generic/member_inline.carbon index 0b0698773180..0cff51dfcef7 100644 --- a/toolchain/check/testdata/class/generic/member_inline.carbon +++ b/toolchain/check/testdata/class/generic/member_inline.carbon @@ -51,29 +51,29 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %T.f49: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.e81: type = pattern_type %Copy.type [concrete] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [concrete] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.f49) [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f49 [symbolic] -// CHECK:STDOUT: %pattern_type.c0fdca.2: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %.dedae6.2: Core.Form = init_form %T.as_type [symbolic] -// CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F, @Class(%T.f49) [symbolic] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.f84) [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f84 [symbolic] +// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F, @Class(%T.f84) [symbolic] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [symbolic] -// CHECK:STDOUT: %pattern_type.16a: type = pattern_type %Class [symbolic] -// CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G, @Class(%T.f49) [symbolic] +// CHECK:STDOUT: %pattern_type.e18: type = pattern_type %Class [symbolic] +// CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G, @Class(%T.f84) [symbolic] // CHECK:STDOUT: %Class.G: %Class.G.type = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.77e: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.d83: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type [symbolic] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %T.as_type} [symbolic] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2dd: = lookup_impl_witness %T.f49, @Copy [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.e9f10f.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f49) [symbolic] -// CHECK:STDOUT: %.e16: type = fn_type_with_self_type %Copy.WithSelf.Op.type.e9f10f.2, %T.f49 [symbolic] -// CHECK:STDOUT: %impl.elem0.41e: %.e16 = impl_witness_access %Copy.lookup_impl_witness.2dd, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7ec: = specific_impl_function %impl.elem0.41e, @Copy.WithSelf.Op(%T.f49) [symbolic] -// CHECK:STDOUT: %require_complete.28e: = require_complete_type %Class [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d9c: = lookup_impl_witness %T.f84, @Copy [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c85f21.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f84) [symbolic] +// CHECK:STDOUT: %.c29: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c85f21.2, %T.f84 [symbolic] +// CHECK:STDOUT: %impl.elem0.bd2: %.c29 = impl_witness_access %Copy.lookup_impl_witness.d9c, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e2a: = specific_impl_function %impl.elem0.bd2, @Copy.WithSelf.Op(%T.f84) [symbolic] +// CHECK:STDOUT: %require_complete.1dd: = require_complete_type %Class [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -87,19 +87,19 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { -// CHECK:STDOUT: %T.patt: %pattern_type.b72 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.e81 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc5_14.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc5_14.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f84)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Class(%T.loc5_14.2: %Copy.type) { -// CHECK:STDOUT: %T.loc5_14.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc5_14.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f84)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F, @Class(%T.loc5_14.1) [symbolic = %Class.F.type (constants.%Class.F.type)] @@ -107,7 +107,7 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G, @Class(%T.loc5_14.1) [symbolic = %Class.G.type (constants.%Class.G.type)] // CHECK:STDOUT: %Class.G: @Class.%Class.G.type (%Class.G.type) = struct_value () [symbolic = %Class.G (constants.%Class.G)] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T.loc5_14.1 [symbolic = %T.as_type (constants.%T.as_type)] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic = %require_complete (constants.%require_complete.77e)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic = %require_complete (constants.%require_complete.d83)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc5_14.1) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type [symbolic = %Class.elem (constants.%Class.elem)] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Class.%T.as_type (%T.as_type)} [symbolic = %struct_type.n (constants.%struct_type.n)] @@ -115,18 +115,18 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Class.F.decl: @Class.%Class.F.type (%Class.F.type) = fn_decl @Class.F [symbolic = @Class.%Class.F (constants.%Class.F)] { -// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.c0fdca.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.c0fdca.2) = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.c0fdca.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.c0fdca.2) = return_slot_pattern %return.param_patt, %.loc6_17.3 [concrete] +// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt, %.loc6_17.3 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc6_17: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T (constants.%T.f49)] +// CHECK:STDOUT: %T.ref.loc6_17: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc6_17: type = facet_access_type %T.ref.loc6_17 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc6_17.3: type = converted %T.ref.loc6_17, %T.as_type.loc6_17 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc6_17.4: Core.Form = init_form %.loc6_17.3 [symbolic = %.loc6_17.2 (constants.%.dedae6.2)] +// CHECK:STDOUT: %.loc6_17.4: Core.Form = init_form %.loc6_17.3 [symbolic = %.loc6_17.2 (constants.%.1ce700.2)] // CHECK:STDOUT: %n.param: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc6_11.1: type = splice_block %.loc6_11.2 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc6_11: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T (constants.%T.f49)] +// CHECK:STDOUT: %T.ref.loc6_11: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc6_11.2: type = facet_access_type %T.ref.loc6_11 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc6_11.2: type = converted %T.ref.loc6_11, %T.as_type.loc6_11.2 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] // CHECK:STDOUT: } @@ -135,18 +135,18 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: %return: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: @Class.%Class.G.type (%Class.G.type) = fn_decl @Class.G [symbolic = @Class.%Class.G (constants.%Class.G)] { -// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc10_12 (%pattern_type.16a) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc10_12 (%pattern_type.16a) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc10_25 (%pattern_type.c0fdca.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc10_25 (%pattern_type.c0fdca.2) = return_slot_pattern %return.param_patt, %.loc10_25.3 [concrete] +// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc10_12 (%pattern_type.e18) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc10_12 (%pattern_type.e18) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc10_25 (%pattern_type.2c66b4.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc10_25 (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt, %.loc10_25.3 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T (constants.%T.f49)] +// CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc10_25.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc10_25.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc10_25.3: type = converted %T.ref, %T.as_type.loc10_25.2 [symbolic = %T.as_type.loc10_25.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc10_25.4: Core.Form = init_form %.loc10_25.3 [symbolic = %.loc10_25.2 (constants.%.dedae6.2)] +// CHECK:STDOUT: %.loc10_25.4: Core.Form = init_form %.loc10_25.3 [symbolic = %.loc10_25.2 (constants.%.1ce700.2)] // CHECK:STDOUT: %self.param: @Class.G.%Class (%Class) = value_param call_param0 // CHECK:STDOUT: %.loc10_14.1: type = splice_block %Self.ref [symbolic = %Class (constants.%Class)] { -// CHECK:STDOUT: %.loc10_14.2: type = specific_constant constants.%Class, @Class(constants.%T.f49) [symbolic = %Class (constants.%Class)] +// CHECK:STDOUT: %.loc10_14.2: type = specific_constant constants.%Class, @Class(constants.%T.f84) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc10_14.2 [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: @Class.G.%Class (%Class) = value_binding self, %self.param @@ -167,25 +167,25 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Class.F(@Class.%T.loc5_14.2: %Copy.type) { -// CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.f49)] +// CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc6_11.1: type = facet_access_type %T [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc6_11.1 [symbolic = %pattern_type (constants.%pattern_type.c0fdca.2)] -// CHECK:STDOUT: %.loc6_17.2: Core.Form = init_form %T.as_type.loc6_11.1 [symbolic = %.loc6_17.2 (constants.%.dedae6.2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc6_11.1 [symbolic = %pattern_type (constants.%pattern_type.2c66b4.2)] +// CHECK:STDOUT: %.loc6_17.2: Core.Form = init_form %T.as_type.loc6_11.1 [symbolic = %.loc6_17.2 (constants.%.1ce700.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_11.1 [symbolic = %require_complete (constants.%require_complete.77e)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.2)] -// CHECK:STDOUT: %.loc7: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc7 (constants.%.e16)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2dd)] -// CHECK:STDOUT: %impl.elem0.loc7_12.2: @Class.F.%.loc7 (%.e16) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.41e)] -// CHECK:STDOUT: %specific_impl_fn.loc7_12.2: = specific_impl_function %impl.elem0.loc7_12.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_11.1 [symbolic = %require_complete (constants.%require_complete.d83)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.2)] +// CHECK:STDOUT: %.loc7: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc7 (constants.%.c29)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c)] +// CHECK:STDOUT: %impl.elem0.loc7_12.2: @Class.F.%.loc7 (%.c29) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.bd2)] +// CHECK:STDOUT: %specific_impl_fn.loc7_12.2: = specific_impl_function %impl.elem0.loc7_12.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%n.param: @Class.F.%T.as_type.loc6_11.1 (%T.as_type)) -> out %return.param: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = name_ref n, %n -// CHECK:STDOUT: %impl.elem0.loc7_12.1: @Class.F.%.loc7 (%.e16) = impl_witness_access constants.%Copy.lookup_impl_witness.2dd, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.41e)] +// CHECK:STDOUT: %impl.elem0.loc7_12.1: @Class.F.%.loc7 (%.c29) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.bd2)] // CHECK:STDOUT: %bound_method.loc7_12.1: = bound_method %n.ref, %impl.elem0.loc7_12.1 -// CHECK:STDOUT: %specific_impl_fn.loc7_12.1: = specific_impl_function %impl.elem0.loc7_12.1, @Copy.WithSelf.Op(constants.%T.f49) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %specific_impl_fn.loc7_12.1: = specific_impl_function %impl.elem0.loc7_12.1, @Copy.WithSelf.Op(constants.%T.f84) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: %bound_method.loc7_12.2: = bound_method %n.ref, %specific_impl_fn.loc7_12.1 // CHECK:STDOUT: %.loc6_17.1: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = splice_block %return.param {} // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.F.%T.as_type.loc6_11.1 (%T.as_type) to %.loc6_17.1 = call %bound_method.loc7_12.2(%n.ref) @@ -194,22 +194,22 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Class.G(@Class.%T.loc5_14.2: %Copy.type) { -// CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.f49)] +// CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.f84)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %pattern_type.loc10_12: type = pattern_type %Class [symbolic = %pattern_type.loc10_12 (constants.%pattern_type.16a)] +// CHECK:STDOUT: %pattern_type.loc10_12: type = pattern_type %Class [symbolic = %pattern_type.loc10_12 (constants.%pattern_type.e18)] // CHECK:STDOUT: %T.as_type.loc10_25.1: type = facet_access_type %T [symbolic = %T.as_type.loc10_25.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc10_25.2: Core.Form = init_form %T.as_type.loc10_25.1 [symbolic = %.loc10_25.2 (constants.%.dedae6.2)] -// CHECK:STDOUT: %pattern_type.loc10_25: type = pattern_type %T.as_type.loc10_25.1 [symbolic = %pattern_type.loc10_25 (constants.%pattern_type.c0fdca.2)] +// CHECK:STDOUT: %.loc10_25.2: Core.Form = init_form %T.as_type.loc10_25.1 [symbolic = %.loc10_25.2 (constants.%.1ce700.2)] +// CHECK:STDOUT: %pattern_type.loc10_25: type = pattern_type %T.as_type.loc10_25.1 [symbolic = %pattern_type.loc10_25 (constants.%pattern_type.2c66b4.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Class [symbolic = %require_complete.loc10 (constants.%require_complete.28e)] +// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Class [symbolic = %require_complete.loc10 (constants.%require_complete.1dd)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc10_25.1 [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %require_complete.loc11: = require_complete_type %T.as_type.loc10_25.1 [symbolic = %require_complete.loc11 (constants.%require_complete.77e)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.2)] -// CHECK:STDOUT: %.loc11_16.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc11_16.3 (constants.%.e16)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2dd)] -// CHECK:STDOUT: %impl.elem0.loc11_16.2: @Class.G.%.loc11_16.3 (%.e16) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.41e)] -// CHECK:STDOUT: %specific_impl_fn.loc11_16.2: = specific_impl_function %impl.elem0.loc11_16.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %require_complete.loc11: = require_complete_type %T.as_type.loc10_25.1 [symbolic = %require_complete.loc11 (constants.%require_complete.d83)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.2)] +// CHECK:STDOUT: %.loc11_16.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc11_16.3 (constants.%.c29)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c)] +// CHECK:STDOUT: %impl.elem0.loc11_16.2: @Class.G.%.loc11_16.3 (%.c29) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.bd2)] +// CHECK:STDOUT: %specific_impl_fn.loc11_16.2: = specific_impl_function %impl.elem0.loc11_16.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @Class.G.%Class (%Class)) -> out %return.param: @Class.G.%T.as_type.loc10_25.1 (%T.as_type) { // CHECK:STDOUT: !entry: @@ -217,9 +217,9 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: %n.ref: @Class.G.%Class.elem (%Class.elem) = name_ref n, @Class.%.loc14 [concrete = @Class.%.loc14] // CHECK:STDOUT: %.loc11_16.1: ref @Class.G.%T.as_type.loc10_25.1 (%T.as_type) = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc11_16.2: @Class.G.%T.as_type.loc10_25.1 (%T.as_type) = acquire_value %.loc11_16.1 -// CHECK:STDOUT: %impl.elem0.loc11_16.1: @Class.G.%.loc11_16.3 (%.e16) = impl_witness_access constants.%Copy.lookup_impl_witness.2dd, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.41e)] +// CHECK:STDOUT: %impl.elem0.loc11_16.1: @Class.G.%.loc11_16.3 (%.c29) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.bd2)] // CHECK:STDOUT: %bound_method.loc11_16.1: = bound_method %.loc11_16.2, %impl.elem0.loc11_16.1 -// CHECK:STDOUT: %specific_impl_fn.loc11_16.1: = specific_impl_function %impl.elem0.loc11_16.1, @Copy.WithSelf.Op(constants.%T.f49) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %specific_impl_fn.loc11_16.1: = specific_impl_function %impl.elem0.loc11_16.1, @Copy.WithSelf.Op(constants.%T.f84) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: %bound_method.loc11_16.2: = bound_method %.loc11_16.2, %specific_impl_fn.loc11_16.1 // CHECK:STDOUT: %.loc10_25.1: ref @Class.G.%T.as_type.loc10_25.1 (%T.as_type) = splice_block %return.param {} // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.G.%T.as_type.loc10_25.1 (%T.as_type) to %.loc10_25.1 = call %bound_method.loc11_16.2(%.loc11_16.2) @@ -227,8 +227,8 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%T.f49) { -// CHECK:STDOUT: %T.loc5_14.1 => constants.%T.f49 +// CHECK:STDOUT: specific @Class(constants.%T.f84) { +// CHECK:STDOUT: %T.loc5_14.1 => constants.%T.f84 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Class.F.type => constants.%Class.F.type @@ -236,27 +236,27 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: %Class.G.type => constants.%Class.G.type // CHECK:STDOUT: %Class.G => constants.%Class.G // CHECK:STDOUT: %T.as_type => constants.%T.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.77e +// CHECK:STDOUT: %require_complete => constants.%require_complete.d83 // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %Class.elem => constants.%Class.elem // CHECK:STDOUT: %struct_type.n => constants.%struct_type.n // CHECK:STDOUT: %complete_type.loc15_1.2 => constants.%complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class.F(constants.%T.f49) { -// CHECK:STDOUT: %T => constants.%T.f49 +// CHECK:STDOUT: specific @Class.F(constants.%T.f84) { +// CHECK:STDOUT: %T => constants.%T.f84 // CHECK:STDOUT: %T.as_type.loc6_11.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c0fdca.2 -// CHECK:STDOUT: %.loc6_17.2 => constants.%.dedae6.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2c66b4.2 +// CHECK:STDOUT: %.loc6_17.2 => constants.%.1ce700.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class.G(constants.%T.f49) { -// CHECK:STDOUT: %T => constants.%T.f49 +// CHECK:STDOUT: specific @Class.G(constants.%T.f84) { +// CHECK:STDOUT: %T => constants.%T.f84 // CHECK:STDOUT: %Class => constants.%Class -// CHECK:STDOUT: %pattern_type.loc10_12 => constants.%pattern_type.16a +// CHECK:STDOUT: %pattern_type.loc10_12 => constants.%pattern_type.e18 // CHECK:STDOUT: %T.as_type.loc10_25.1 => constants.%T.as_type -// CHECK:STDOUT: %.loc10_25.2 => constants.%.dedae6.2 -// CHECK:STDOUT: %pattern_type.loc10_25 => constants.%pattern_type.c0fdca.2 +// CHECK:STDOUT: %.loc10_25.2 => constants.%.1ce700.2 +// CHECK:STDOUT: %pattern_type.loc10_25 => constants.%pattern_type.2c66b4.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_member_inline_missing_self_dot.carbon @@ -265,7 +265,7 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Copy.type [concrete] +// CHECK:STDOUT: %pattern_type.e81: type = pattern_type %Copy.type [concrete] // CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] @@ -289,7 +289,7 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { -// CHECK:STDOUT: %T.patt: %pattern_type.b72 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.e81 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] diff --git a/toolchain/check/testdata/class/generic/member_lookup.carbon b/toolchain/check/testdata/class/generic/member_lookup.carbon index ee594ec65b57..4609ff577e8a 100644 --- a/toolchain/check/testdata/class/generic/member_lookup.carbon +++ b/toolchain/check/testdata/class/generic/member_lookup.carbon @@ -80,22 +80,22 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %T.f49: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f49 [symbolic] -// CHECK:STDOUT: %Derived.97c: type = class_type @Derived, @Derived(%T.as_type) [symbolic] -// CHECK:STDOUT: %pattern_type.0dc: type = pattern_type %Derived.97c [symbolic] -// CHECK:STDOUT: %.dedae6.2: Core.Form = init_form %T.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.c0fdca.2: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %Base.faf: type = class_type @Base, @Base(%T.as_type) [symbolic] -// CHECK:STDOUT: %require_complete.346: = require_complete_type %Base.faf [symbolic] -// CHECK:STDOUT: %require_complete.77e: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %Derived.elem.1df: type = unbound_element_type %Derived.97c, %T.as_type [symbolic] -// CHECK:STDOUT: %Base.elem.5af: type = unbound_element_type %Base.faf, %T.as_type [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2dd: = lookup_impl_witness %T.f49, @Copy [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.e9f10f.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f49) [symbolic] -// CHECK:STDOUT: %.e16: type = fn_type_with_self_type %Copy.WithSelf.Op.type.e9f10f.2, %T.f49 [symbolic] -// CHECK:STDOUT: %impl.elem0.41e: %.e16 = impl_witness_access %Copy.lookup_impl_witness.2dd, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7ec: = specific_impl_function %impl.elem0.41e, @Copy.WithSelf.Op(%T.f49) [symbolic] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f84 [symbolic] +// CHECK:STDOUT: %Derived.e87: type = class_type @Derived, @Derived(%T.as_type) [symbolic] +// CHECK:STDOUT: %pattern_type.ebc: type = pattern_type %Derived.e87 [symbolic] +// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %Base.146: type = class_type @Base, @Base(%T.as_type) [symbolic] +// CHECK:STDOUT: %require_complete.0fb: = require_complete_type %Base.146 [symbolic] +// CHECK:STDOUT: %require_complete.d83: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %Derived.elem.eb3: type = unbound_element_type %Derived.e87, %T.as_type [symbolic] +// CHECK:STDOUT: %Base.elem.209: type = unbound_element_type %Base.146, %T.as_type [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d9c: = lookup_impl_witness %T.f84, @Copy [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c85f21.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f84) [symbolic] +// CHECK:STDOUT: %.c29: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c85f21.2, %T.f84 [symbolic] +// CHECK:STDOUT: %impl.elem0.bd2: %.c29 = impl_witness_access %Copy.lookup_impl_witness.d9c, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e2a: = specific_impl_function %impl.elem0.bd2, @Copy.WithSelf.Op(%T.f84) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @AccessDerived(%T.loc13_19.2: %Copy.type) { @@ -103,23 +103,23 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived.loc13_45.1, %T.as_type.loc13_45.1 [symbolic = %Derived.elem (constants.%Derived.elem.1df)] -// CHECK:STDOUT: %require_complete.loc15: = require_complete_type %T.as_type.loc13_45.1 [symbolic = %require_complete.loc15 (constants.%require_complete.77e)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc13_19.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.2)] -// CHECK:STDOUT: %.loc15_11.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc13_19.1 [symbolic = %.loc15_11.3 (constants.%.e16)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc13_19.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2dd)] -// CHECK:STDOUT: %impl.elem0.loc15_11.2: @AccessDerived.%.loc15_11.3 (%.e16) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_11.2 (constants.%impl.elem0.41e)] -// CHECK:STDOUT: %specific_impl_fn.loc15_11.2: = specific_impl_function %impl.elem0.loc15_11.2, @Copy.WithSelf.Op(%T.loc13_19.1) [symbolic = %specific_impl_fn.loc15_11.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived.loc13_45.1, %T.as_type.loc13_45.1 [symbolic = %Derived.elem (constants.%Derived.elem.eb3)] +// CHECK:STDOUT: %require_complete.loc15: = require_complete_type %T.as_type.loc13_45.1 [symbolic = %require_complete.loc15 (constants.%require_complete.d83)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc13_19.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.2)] +// CHECK:STDOUT: %.loc15_11.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc13_19.1 [symbolic = %.loc15_11.3 (constants.%.c29)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc13_19.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c)] +// CHECK:STDOUT: %impl.elem0.loc15_11.2: @AccessDerived.%.loc15_11.3 (%.c29) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_11.2 (constants.%impl.elem0.bd2)] +// CHECK:STDOUT: %specific_impl_fn.loc15_11.2: = specific_impl_function %impl.elem0.loc15_11.2, @Copy.WithSelf.Op(%T.loc13_19.1) [symbolic = %specific_impl_fn.loc15_11.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @AccessDerived.%Derived.loc13_45.1 (%Derived.97c)) -> out %return.param: @AccessDerived.%T.as_type.loc13_45.1 (%T.as_type) { +// CHECK:STDOUT: fn(%x.param: @AccessDerived.%Derived.loc13_45.1 (%Derived.e87)) -> out %return.param: @AccessDerived.%T.as_type.loc13_45.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @AccessDerived.%Derived.loc13_45.1 (%Derived.97c) = name_ref x, %x -// CHECK:STDOUT: %d.ref: @AccessDerived.%Derived.elem (%Derived.elem.1df) = name_ref d, @Derived.%.loc10 [concrete = @Derived.%.loc10] +// CHECK:STDOUT: %x.ref: @AccessDerived.%Derived.loc13_45.1 (%Derived.e87) = name_ref x, %x +// CHECK:STDOUT: %d.ref: @AccessDerived.%Derived.elem (%Derived.elem.eb3) = name_ref d, @Derived.%.loc10 [concrete = @Derived.%.loc10] // CHECK:STDOUT: %.loc15_11.1: ref @AccessDerived.%T.as_type.loc13_45.1 (%T.as_type) = class_element_access %x.ref, element1 // CHECK:STDOUT: %.loc15_11.2: @AccessDerived.%T.as_type.loc13_45.1 (%T.as_type) = acquire_value %.loc15_11.1 -// CHECK:STDOUT: %impl.elem0.loc15_11.1: @AccessDerived.%.loc15_11.3 (%.e16) = impl_witness_access constants.%Copy.lookup_impl_witness.2dd, element0 [symbolic = %impl.elem0.loc15_11.2 (constants.%impl.elem0.41e)] +// CHECK:STDOUT: %impl.elem0.loc15_11.1: @AccessDerived.%.loc15_11.3 (%.c29) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c, element0 [symbolic = %impl.elem0.loc15_11.2 (constants.%impl.elem0.bd2)] // CHECK:STDOUT: %bound_method.loc15_11.1: = bound_method %.loc15_11.2, %impl.elem0.loc15_11.1 -// CHECK:STDOUT: %specific_impl_fn.loc15_11.1: = specific_impl_function %impl.elem0.loc15_11.1, @Copy.WithSelf.Op(constants.%T.f49) [symbolic = %specific_impl_fn.loc15_11.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %specific_impl_fn.loc15_11.1: = specific_impl_function %impl.elem0.loc15_11.1, @Copy.WithSelf.Op(constants.%T.f84) [symbolic = %specific_impl_fn.loc15_11.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: %bound_method.loc15_11.2: = bound_method %.loc15_11.2, %specific_impl_fn.loc15_11.1 // CHECK:STDOUT: // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @AccessDerived.%T.as_type.loc13_45.1 (%T.as_type) to %.loc13_51.1 = call %bound_method.loc15_11.2(%.loc15_11.2) @@ -132,27 +132,27 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.as_type.loc19_42.1) [symbolic = %Base (constants.%Base.faf)] -// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.as_type.loc19_42.1 [symbolic = %Base.elem (constants.%Base.elem.5af)] -// CHECK:STDOUT: %require_complete.loc21_11: = require_complete_type %Base [symbolic = %require_complete.loc21_11 (constants.%require_complete.346)] -// CHECK:STDOUT: %require_complete.loc21_13: = require_complete_type %T.as_type.loc19_42.1 [symbolic = %require_complete.loc21_13 (constants.%require_complete.77e)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc19_16.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.2)] -// CHECK:STDOUT: %.loc21_11.5: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc19_16.1 [symbolic = %.loc21_11.5 (constants.%.e16)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc19_16.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2dd)] -// CHECK:STDOUT: %impl.elem0.loc21_11.2: @AccessBase.%.loc21_11.5 (%.e16) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_11.2 (constants.%impl.elem0.41e)] -// CHECK:STDOUT: %specific_impl_fn.loc21_11.2: = specific_impl_function %impl.elem0.loc21_11.2, @Copy.WithSelf.Op(%T.loc19_16.1) [symbolic = %specific_impl_fn.loc21_11.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.as_type.loc19_42.1) [symbolic = %Base (constants.%Base.146)] +// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.as_type.loc19_42.1 [symbolic = %Base.elem (constants.%Base.elem.209)] +// CHECK:STDOUT: %require_complete.loc21_11: = require_complete_type %Base [symbolic = %require_complete.loc21_11 (constants.%require_complete.0fb)] +// CHECK:STDOUT: %require_complete.loc21_13: = require_complete_type %T.as_type.loc19_42.1 [symbolic = %require_complete.loc21_13 (constants.%require_complete.d83)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc19_16.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.2)] +// CHECK:STDOUT: %.loc21_11.5: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc19_16.1 [symbolic = %.loc21_11.5 (constants.%.c29)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc19_16.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c)] +// CHECK:STDOUT: %impl.elem0.loc21_11.2: @AccessBase.%.loc21_11.5 (%.c29) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_11.2 (constants.%impl.elem0.bd2)] +// CHECK:STDOUT: %specific_impl_fn.loc21_11.2: = specific_impl_function %impl.elem0.loc21_11.2, @Copy.WithSelf.Op(%T.loc19_16.1) [symbolic = %specific_impl_fn.loc21_11.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @AccessBase.%Derived.loc19_42.1 (%Derived.97c)) -> out %return.param: @AccessBase.%T.as_type.loc19_42.1 (%T.as_type) { +// CHECK:STDOUT: fn(%x.param: @AccessBase.%Derived.loc19_42.1 (%Derived.e87)) -> out %return.param: @AccessBase.%T.as_type.loc19_42.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @AccessBase.%Derived.loc19_42.1 (%Derived.97c) = name_ref x, %x -// CHECK:STDOUT: %b.ref: @AccessBase.%Base.elem (%Base.elem.5af) = name_ref b, @Base.%.loc5 [concrete = @Base.%.loc5] -// CHECK:STDOUT: %.loc21_11.1: ref @AccessBase.%Base (%Base.faf) = class_element_access %x.ref, element0 -// CHECK:STDOUT: %.loc21_11.2: ref @AccessBase.%Base (%Base.faf) = converted %x.ref, %.loc21_11.1 +// CHECK:STDOUT: %x.ref: @AccessBase.%Derived.loc19_42.1 (%Derived.e87) = name_ref x, %x +// CHECK:STDOUT: %b.ref: @AccessBase.%Base.elem (%Base.elem.209) = name_ref b, @Base.%.loc5 [concrete = @Base.%.loc5] +// CHECK:STDOUT: %.loc21_11.1: ref @AccessBase.%Base (%Base.146) = class_element_access %x.ref, element0 +// CHECK:STDOUT: %.loc21_11.2: ref @AccessBase.%Base (%Base.146) = converted %x.ref, %.loc21_11.1 // CHECK:STDOUT: %.loc21_11.3: ref @AccessBase.%T.as_type.loc19_42.1 (%T.as_type) = class_element_access %.loc21_11.2, element0 // CHECK:STDOUT: %.loc21_11.4: @AccessBase.%T.as_type.loc19_42.1 (%T.as_type) = acquire_value %.loc21_11.3 -// CHECK:STDOUT: %impl.elem0.loc21_11.1: @AccessBase.%.loc21_11.5 (%.e16) = impl_witness_access constants.%Copy.lookup_impl_witness.2dd, element0 [symbolic = %impl.elem0.loc21_11.2 (constants.%impl.elem0.41e)] +// CHECK:STDOUT: %impl.elem0.loc21_11.1: @AccessBase.%.loc21_11.5 (%.c29) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c, element0 [symbolic = %impl.elem0.loc21_11.2 (constants.%impl.elem0.bd2)] // CHECK:STDOUT: %bound_method.loc21_11.1: = bound_method %.loc21_11.4, %impl.elem0.loc21_11.1 -// CHECK:STDOUT: %specific_impl_fn.loc21_11.1: = specific_impl_function %impl.elem0.loc21_11.1, @Copy.WithSelf.Op(constants.%T.f49) [symbolic = %specific_impl_fn.loc21_11.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %specific_impl_fn.loc21_11.1: = specific_impl_function %impl.elem0.loc21_11.1, @Copy.WithSelf.Op(constants.%T.f84) [symbolic = %specific_impl_fn.loc21_11.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: %bound_method.loc21_11.2: = bound_method %.loc21_11.4, %specific_impl_fn.loc21_11.1 // CHECK:STDOUT: // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @AccessBase.%T.as_type.loc19_42.1 (%T.as_type) to %.loc19_48.1 = call %bound_method.loc21_11.2(%.loc21_11.4) @@ -160,21 +160,21 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AccessDerived(constants.%T.f49) { -// CHECK:STDOUT: %T.loc13_19.1 => constants.%T.f49 +// CHECK:STDOUT: specific @AccessDerived(constants.%T.f84) { +// CHECK:STDOUT: %T.loc13_19.1 => constants.%T.f84 // CHECK:STDOUT: %T.as_type.loc13_45.1 => constants.%T.as_type -// CHECK:STDOUT: %Derived.loc13_45.1 => constants.%Derived.97c -// CHECK:STDOUT: %pattern_type.loc13_34 => constants.%pattern_type.0dc -// CHECK:STDOUT: %.loc13_51.2 => constants.%.dedae6.2 -// CHECK:STDOUT: %pattern_type.loc13_51 => constants.%pattern_type.c0fdca.2 +// CHECK:STDOUT: %Derived.loc13_45.1 => constants.%Derived.e87 +// CHECK:STDOUT: %pattern_type.loc13_34 => constants.%pattern_type.ebc +// CHECK:STDOUT: %.loc13_51.2 => constants.%.1ce700.2 +// CHECK:STDOUT: %pattern_type.loc13_51 => constants.%pattern_type.2c66b4.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AccessBase(constants.%T.f49) { -// CHECK:STDOUT: %T.loc19_16.1 => constants.%T.f49 +// CHECK:STDOUT: specific @AccessBase(constants.%T.f84) { +// CHECK:STDOUT: %T.loc19_16.1 => constants.%T.f84 // CHECK:STDOUT: %T.as_type.loc19_42.1 => constants.%T.as_type -// CHECK:STDOUT: %Derived.loc19_42.1 => constants.%Derived.97c -// CHECK:STDOUT: %pattern_type.loc19_31 => constants.%pattern_type.0dc -// CHECK:STDOUT: %.loc19_48.2 => constants.%.dedae6.2 -// CHECK:STDOUT: %pattern_type.loc19_48 => constants.%pattern_type.c0fdca.2 +// CHECK:STDOUT: %Derived.loc19_42.1 => constants.%Derived.e87 +// CHECK:STDOUT: %pattern_type.loc19_31 => constants.%pattern_type.ebc +// CHECK:STDOUT: %.loc19_48.2 => constants.%.1ce700.2 +// CHECK:STDOUT: %pattern_type.loc19_48 => constants.%pattern_type.2c66b4.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_out_of_line.carbon b/toolchain/check/testdata/class/generic/member_out_of_line.carbon index aa06de813e5a..b2401955169c 100644 --- a/toolchain/check/testdata/class/generic/member_out_of_line.carbon +++ b/toolchain/check/testdata/class/generic/member_out_of_line.carbon @@ -118,29 +118,29 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %T.f49: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.e81: type = pattern_type %Copy.type [concrete] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [concrete] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.f49) [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f49 [symbolic] -// CHECK:STDOUT: %pattern_type.c0fdca.2: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %.dedae6.2: Core.Form = init_form %T.as_type [symbolic] -// CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F, @Class(%T.f49) [symbolic] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.f84) [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f84 [symbolic] +// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F, @Class(%T.f84) [symbolic] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [symbolic] -// CHECK:STDOUT: %pattern_type.16a: type = pattern_type %Class [symbolic] -// CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G, @Class(%T.f49) [symbolic] +// CHECK:STDOUT: %pattern_type.e18: type = pattern_type %Class [symbolic] +// CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G, @Class(%T.f84) [symbolic] // CHECK:STDOUT: %Class.G: %Class.G.type = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.77e: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.d83: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type [symbolic] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %T.as_type} [symbolic] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2dd: = lookup_impl_witness %T.f49, @Copy [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.e9f10f.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f49) [symbolic] -// CHECK:STDOUT: %.e16: type = fn_type_with_self_type %Copy.WithSelf.Op.type.e9f10f.2, %T.f49 [symbolic] -// CHECK:STDOUT: %impl.elem0.41e: %.e16 = impl_witness_access %Copy.lookup_impl_witness.2dd, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7ec: = specific_impl_function %impl.elem0.41e, @Copy.WithSelf.Op(%T.f49) [symbolic] -// CHECK:STDOUT: %require_complete.28e: = require_complete_type %Class [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d9c: = lookup_impl_witness %T.f84, @Copy [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c85f21.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f84) [symbolic] +// CHECK:STDOUT: %.c29: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c85f21.2, %T.f84 [symbolic] +// CHECK:STDOUT: %impl.elem0.bd2: %.c29 = impl_witness_access %Copy.lookup_impl_witness.d9c, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e2a: = specific_impl_function %impl.elem0.bd2, @Copy.WithSelf.Op(%T.f84) [symbolic] +// CHECK:STDOUT: %require_complete.1dd: = require_complete_type %Class [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -154,34 +154,34 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { -// CHECK:STDOUT: %T.patt: %pattern_type.b72 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.e81 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc5_14.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc5_14.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f84)] // CHECK:STDOUT: } // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [symbolic = constants.%Class.F] { -// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.c0fdca.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.c0fdca.2) = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.c0fdca.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.c0fdca.2) = return_slot_pattern %return.param_patt, %.loc11_36.2 [concrete] +// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt, %.loc11_36.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_18: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc11: %Copy.type = symbolic_binding T, 0 [symbolic = @Class.%T.loc5_14.1 (constants.%T.f49)] -// CHECK:STDOUT: %T.ref.loc11_36: %Copy.type = name_ref T, %T.loc11 [symbolic = %T.loc6 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc11: %Copy.type = symbolic_binding T, 0 [symbolic = @Class.%T.loc5_14.1 (constants.%T.f84)] +// CHECK:STDOUT: %T.ref.loc11_36: %Copy.type = name_ref T, %T.loc11 [symbolic = %T.loc6 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc11_36: type = facet_access_type %T.ref.loc11_36 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc11_36.2: type = converted %T.ref.loc11_36, %T.as_type.loc11_36 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc11_36.3: Core.Form = init_form %.loc11_36.2 [symbolic = %.loc6_17.1 (constants.%.dedae6.2)] +// CHECK:STDOUT: %.loc11_36.3: Core.Form = init_form %.loc11_36.2 [symbolic = %.loc6_17.1 (constants.%.1ce700.2)] // CHECK:STDOUT: %n.param.loc11: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc11_30.1: type = splice_block %.loc11_30.2 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc11_30: %Copy.type = name_ref T, %T.loc11 [symbolic = %T.loc6 (constants.%T.f49)] +// CHECK:STDOUT: %T.ref.loc11_30: %Copy.type = name_ref T, %T.loc11 [symbolic = %T.loc6 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc11_30: type = facet_access_type %T.ref.loc11_30 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc11_30.2: type = converted %T.ref.loc11_30, %T.as_type.loc11_30 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] // CHECK:STDOUT: } @@ -190,24 +190,24 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %return.loc11: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = return_slot %return.param.loc11 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [symbolic = constants.%Class.G] { -// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc7_12 (%pattern_type.16a) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc7_12 (%pattern_type.16a) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.c0fdca.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.c0fdca.2) = return_slot_pattern %return.param_patt, %.loc15_44.2 [concrete] +// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc7_12 (%pattern_type.e18) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc7_12 (%pattern_type.e18) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.2c66b4.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt, %.loc15_44.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_18: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc15: %Copy.type = symbolic_binding T, 0 [symbolic = @Class.%T.loc5_14.1 (constants.%T.f49)] -// CHECK:STDOUT: %T.ref.loc15: %Copy.type = name_ref T, %T.loc15 [symbolic = %T.loc7 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc15: %Copy.type = symbolic_binding T, 0 [symbolic = @Class.%T.loc5_14.1 (constants.%T.f84)] +// CHECK:STDOUT: %T.ref.loc15: %Copy.type = name_ref T, %T.loc15 [symbolic = %T.loc7 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc15: type = facet_access_type %T.ref.loc15 [symbolic = %T.as_type.loc7_25.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc15_44.2: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.as_type.loc7_25.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc15_44.3: Core.Form = init_form %.loc15_44.2 [symbolic = %.loc7_25.1 (constants.%.dedae6.2)] +// CHECK:STDOUT: %.loc15_44.3: Core.Form = init_form %.loc15_44.2 [symbolic = %.loc7_25.1 (constants.%.1ce700.2)] // CHECK:STDOUT: %self.param.loc15: @Class.G.%Class (%Class) = value_param call_param0 // CHECK:STDOUT: %.loc15_33.1: type = splice_block %Self.ref.loc15 [symbolic = %Class (constants.%Class)] { -// CHECK:STDOUT: %.loc15_33.2: type = specific_constant constants.%Class, @Class(constants.%T.f49) [symbolic = %Class (constants.%Class)] +// CHECK:STDOUT: %.loc15_33.2: type = specific_constant constants.%Class, @Class(constants.%T.f84) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Self.ref.loc15: type = name_ref Self, %.loc15_33.2 [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: } // CHECK:STDOUT: %self.loc15: @Class.G.%Class (%Class) = value_binding self, %self.param.loc15 @@ -217,7 +217,7 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Class(%T.loc5_14.2: %Copy.type) { -// CHECK:STDOUT: %T.loc5_14.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc5_14.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f84)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F, @Class(%T.loc5_14.1) [symbolic = %Class.F.type (constants.%Class.F.type)] @@ -225,7 +225,7 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G, @Class(%T.loc5_14.1) [symbolic = %Class.G.type (constants.%Class.G.type)] // CHECK:STDOUT: %Class.G: @Class.%Class.G.type (%Class.G.type) = struct_value () [symbolic = %Class.G (constants.%Class.G)] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T.loc5_14.1 [symbolic = %T.as_type (constants.%T.as_type)] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic = %require_complete (constants.%require_complete.77e)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic = %require_complete (constants.%require_complete.d83)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc5_14.1) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type [symbolic = %Class.elem (constants.%Class.elem)] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Class.%T.as_type (%T.as_type)} [symbolic = %struct_type.n (constants.%struct_type.n)] @@ -233,18 +233,18 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Class.F.decl: @Class.%Class.F.type (%Class.F.type) = fn_decl @Class.F [symbolic = @Class.%Class.F (constants.%Class.F)] { -// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.c0fdca.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.c0fdca.2) = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.c0fdca.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.c0fdca.2) = return_slot_pattern %return.param_patt, %.loc11_36.2 [concrete] +// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt, %.loc11_36.2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc6_17: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T.loc6 (constants.%T.f49)] +// CHECK:STDOUT: %T.ref.loc6_17: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T.loc6 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc6_17: type = facet_access_type %T.ref.loc6_17 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc6_17.2: type = converted %T.ref.loc6_17, %T.as_type.loc6_17 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc6_17.3: Core.Form = init_form %.loc6_17.2 [symbolic = %.loc6_17.1 (constants.%.dedae6.2)] +// CHECK:STDOUT: %.loc6_17.3: Core.Form = init_form %.loc6_17.2 [symbolic = %.loc6_17.1 (constants.%.1ce700.2)] // CHECK:STDOUT: %n.param.loc6: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc6_11.1: type = splice_block %.loc6_11.2 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc6_11: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T.loc6 (constants.%T.f49)] +// CHECK:STDOUT: %T.ref.loc6_11: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T.loc6 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc6_11.2: type = facet_access_type %T.ref.loc6_11 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc6_11.2: type = converted %T.ref.loc6_11, %T.as_type.loc6_11.2 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] // CHECK:STDOUT: } @@ -253,18 +253,18 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %return.loc6: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = return_slot %return.param.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: @Class.%Class.G.type (%Class.G.type) = fn_decl @Class.G [symbolic = @Class.%Class.G (constants.%Class.G)] { -// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc7_12 (%pattern_type.16a) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc7_12 (%pattern_type.16a) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.c0fdca.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.c0fdca.2) = return_slot_pattern %return.param_patt, %.loc15_44.2 [concrete] +// CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc7_12 (%pattern_type.e18) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc7_12 (%pattern_type.e18) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.2c66b4.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt, %.loc15_44.2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc7: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T.loc7 (constants.%T.f49)] +// CHECK:STDOUT: %T.ref.loc7: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T.loc7 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc7_25.2: type = facet_access_type %T.ref.loc7 [symbolic = %T.as_type.loc7_25.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc7_25.2: type = converted %T.ref.loc7, %T.as_type.loc7_25.2 [symbolic = %T.as_type.loc7_25.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc7_25.3: Core.Form = init_form %.loc7_25.2 [symbolic = %.loc7_25.1 (constants.%.dedae6.2)] +// CHECK:STDOUT: %.loc7_25.3: Core.Form = init_form %.loc7_25.2 [symbolic = %.loc7_25.1 (constants.%.1ce700.2)] // CHECK:STDOUT: %self.param.loc7: @Class.G.%Class (%Class) = value_param call_param0 // CHECK:STDOUT: %.loc7_14.1: type = splice_block %Self.ref.loc7 [symbolic = %Class (constants.%Class)] { -// CHECK:STDOUT: %.loc7_14.2: type = specific_constant constants.%Class, @Class(constants.%T.f49) [symbolic = %Class (constants.%Class)] +// CHECK:STDOUT: %.loc7_14.2: type = specific_constant constants.%Class, @Class(constants.%T.f84) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Self.ref.loc7: type = name_ref Self, %.loc7_14.2 [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: } // CHECK:STDOUT: %self.loc7: @Class.G.%Class (%Class) = value_binding self, %self.param.loc7 @@ -285,25 +285,25 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Class.F(@Class.%T.loc5_14.2: %Copy.type) { -// CHECK:STDOUT: %T.loc6: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc6 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc6: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc6 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc6_11.1: type = facet_access_type %T.loc6 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc6_11.1 [symbolic = %pattern_type (constants.%pattern_type.c0fdca.2)] -// CHECK:STDOUT: %.loc6_17.1: Core.Form = init_form %T.as_type.loc6_11.1 [symbolic = %.loc6_17.1 (constants.%.dedae6.2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc6_11.1 [symbolic = %pattern_type (constants.%pattern_type.2c66b4.2)] +// CHECK:STDOUT: %.loc6_17.1: Core.Form = init_form %T.as_type.loc6_11.1 [symbolic = %.loc6_17.1 (constants.%.1ce700.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_11.1 [symbolic = %require_complete (constants.%require_complete.77e)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc6) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.2)] -// CHECK:STDOUT: %.loc12: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc6 [symbolic = %.loc12 (constants.%.e16)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc6, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2dd)] -// CHECK:STDOUT: %impl.elem0.loc12_10.2: @Class.F.%.loc12 (%.e16) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc12_10.2 (constants.%impl.elem0.41e)] -// CHECK:STDOUT: %specific_impl_fn.loc12_10.2: = specific_impl_function %impl.elem0.loc12_10.2, @Copy.WithSelf.Op(%T.loc6) [symbolic = %specific_impl_fn.loc12_10.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_11.1 [symbolic = %require_complete (constants.%require_complete.d83)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc6) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.2)] +// CHECK:STDOUT: %.loc12: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc6 [symbolic = %.loc12 (constants.%.c29)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc6, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c)] +// CHECK:STDOUT: %impl.elem0.loc12_10.2: @Class.F.%.loc12 (%.c29) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc12_10.2 (constants.%impl.elem0.bd2)] +// CHECK:STDOUT: %specific_impl_fn.loc12_10.2: = specific_impl_function %impl.elem0.loc12_10.2, @Copy.WithSelf.Op(%T.loc6) [symbolic = %specific_impl_fn.loc12_10.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%n.param.loc11: @Class.F.%T.as_type.loc6_11.1 (%T.as_type)) -> out %return.param.loc11: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = name_ref n, %n.loc11 -// CHECK:STDOUT: %impl.elem0.loc12_10.1: @Class.F.%.loc12 (%.e16) = impl_witness_access constants.%Copy.lookup_impl_witness.2dd, element0 [symbolic = %impl.elem0.loc12_10.2 (constants.%impl.elem0.41e)] +// CHECK:STDOUT: %impl.elem0.loc12_10.1: @Class.F.%.loc12 (%.c29) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c, element0 [symbolic = %impl.elem0.loc12_10.2 (constants.%impl.elem0.bd2)] // CHECK:STDOUT: %bound_method.loc12_10.1: = bound_method %n.ref, %impl.elem0.loc12_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc12_10.1: = specific_impl_function %impl.elem0.loc12_10.1, @Copy.WithSelf.Op(constants.%T.f49) [symbolic = %specific_impl_fn.loc12_10.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %specific_impl_fn.loc12_10.1: = specific_impl_function %impl.elem0.loc12_10.1, @Copy.WithSelf.Op(constants.%T.f84) [symbolic = %specific_impl_fn.loc12_10.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: %bound_method.loc12_10.2: = bound_method %n.ref, %specific_impl_fn.loc12_10.1 // CHECK:STDOUT: %.loc11_36.1: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = splice_block %return.param.loc11 {} // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.F.%T.as_type.loc6_11.1 (%T.as_type) to %.loc11_36.1 = call %bound_method.loc12_10.2(%n.ref) @@ -312,22 +312,22 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Class.G(@Class.%T.loc5_14.2: %Copy.type) { -// CHECK:STDOUT: %T.loc7: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc7 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc7: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc7 (constants.%T.f84)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc7) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %pattern_type.loc7_12: type = pattern_type %Class [symbolic = %pattern_type.loc7_12 (constants.%pattern_type.16a)] +// CHECK:STDOUT: %pattern_type.loc7_12: type = pattern_type %Class [symbolic = %pattern_type.loc7_12 (constants.%pattern_type.e18)] // CHECK:STDOUT: %T.as_type.loc7_25.1: type = facet_access_type %T.loc7 [symbolic = %T.as_type.loc7_25.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc7_25.1: Core.Form = init_form %T.as_type.loc7_25.1 [symbolic = %.loc7_25.1 (constants.%.dedae6.2)] -// CHECK:STDOUT: %pattern_type.loc7_25: type = pattern_type %T.as_type.loc7_25.1 [symbolic = %pattern_type.loc7_25 (constants.%pattern_type.c0fdca.2)] +// CHECK:STDOUT: %.loc7_25.1: Core.Form = init_form %T.as_type.loc7_25.1 [symbolic = %.loc7_25.1 (constants.%.1ce700.2)] +// CHECK:STDOUT: %pattern_type.loc7_25: type = pattern_type %T.as_type.loc7_25.1 [symbolic = %pattern_type.loc7_25 (constants.%pattern_type.2c66b4.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc15: = require_complete_type %Class [symbolic = %require_complete.loc15 (constants.%require_complete.28e)] +// CHECK:STDOUT: %require_complete.loc15: = require_complete_type %Class [symbolic = %require_complete.loc15 (constants.%require_complete.1dd)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc7_25.1 [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %require_complete.loc16: = require_complete_type %T.as_type.loc7_25.1 [symbolic = %require_complete.loc16 (constants.%require_complete.77e)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc7) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.2)] -// CHECK:STDOUT: %.loc16_14.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc7 [symbolic = %.loc16_14.3 (constants.%.e16)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc7, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2dd)] -// CHECK:STDOUT: %impl.elem0.loc16_14.2: @Class.G.%.loc16_14.3 (%.e16) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_14.2 (constants.%impl.elem0.41e)] -// CHECK:STDOUT: %specific_impl_fn.loc16_14.2: = specific_impl_function %impl.elem0.loc16_14.2, @Copy.WithSelf.Op(%T.loc7) [symbolic = %specific_impl_fn.loc16_14.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %require_complete.loc16: = require_complete_type %T.as_type.loc7_25.1 [symbolic = %require_complete.loc16 (constants.%require_complete.d83)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc7) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.2)] +// CHECK:STDOUT: %.loc16_14.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc7 [symbolic = %.loc16_14.3 (constants.%.c29)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc7, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c)] +// CHECK:STDOUT: %impl.elem0.loc16_14.2: @Class.G.%.loc16_14.3 (%.c29) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_14.2 (constants.%impl.elem0.bd2)] +// CHECK:STDOUT: %specific_impl_fn.loc16_14.2: = specific_impl_function %impl.elem0.loc16_14.2, @Copy.WithSelf.Op(%T.loc7) [symbolic = %specific_impl_fn.loc16_14.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param.loc15: @Class.G.%Class (%Class)) -> out %return.param.loc15: @Class.G.%T.as_type.loc7_25.1 (%T.as_type) { // CHECK:STDOUT: !entry: @@ -335,9 +335,9 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %n.ref: @Class.G.%Class.elem (%Class.elem) = name_ref n, @Class.%.loc8 [concrete = @Class.%.loc8] // CHECK:STDOUT: %.loc16_14.1: ref @Class.G.%T.as_type.loc7_25.1 (%T.as_type) = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc16_14.2: @Class.G.%T.as_type.loc7_25.1 (%T.as_type) = acquire_value %.loc16_14.1 -// CHECK:STDOUT: %impl.elem0.loc16_14.1: @Class.G.%.loc16_14.3 (%.e16) = impl_witness_access constants.%Copy.lookup_impl_witness.2dd, element0 [symbolic = %impl.elem0.loc16_14.2 (constants.%impl.elem0.41e)] +// CHECK:STDOUT: %impl.elem0.loc16_14.1: @Class.G.%.loc16_14.3 (%.c29) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c, element0 [symbolic = %impl.elem0.loc16_14.2 (constants.%impl.elem0.bd2)] // CHECK:STDOUT: %bound_method.loc16_14.1: = bound_method %.loc16_14.2, %impl.elem0.loc16_14.1 -// CHECK:STDOUT: %specific_impl_fn.loc16_14.1: = specific_impl_function %impl.elem0.loc16_14.1, @Copy.WithSelf.Op(constants.%T.f49) [symbolic = %specific_impl_fn.loc16_14.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %specific_impl_fn.loc16_14.1: = specific_impl_function %impl.elem0.loc16_14.1, @Copy.WithSelf.Op(constants.%T.f84) [symbolic = %specific_impl_fn.loc16_14.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: %bound_method.loc16_14.2: = bound_method %.loc16_14.2, %specific_impl_fn.loc16_14.1 // CHECK:STDOUT: %.loc15_44.1: ref @Class.G.%T.as_type.loc7_25.1 (%T.as_type) = splice_block %return.param.loc15 {} // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.G.%T.as_type.loc7_25.1 (%T.as_type) to %.loc15_44.1 = call %bound_method.loc16_14.2(%.loc16_14.2) @@ -345,8 +345,8 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%T.f49) { -// CHECK:STDOUT: %T.loc5_14.1 => constants.%T.f49 +// CHECK:STDOUT: specific @Class(constants.%T.f84) { +// CHECK:STDOUT: %T.loc5_14.1 => constants.%T.f84 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Class.F.type => constants.%Class.F.type @@ -354,27 +354,27 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %Class.G.type => constants.%Class.G.type // CHECK:STDOUT: %Class.G => constants.%Class.G // CHECK:STDOUT: %T.as_type => constants.%T.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.77e +// CHECK:STDOUT: %require_complete => constants.%require_complete.d83 // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %Class.elem => constants.%Class.elem // CHECK:STDOUT: %struct_type.n => constants.%struct_type.n // CHECK:STDOUT: %complete_type.loc9_1.2 => constants.%complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class.F(constants.%T.f49) { -// CHECK:STDOUT: %T.loc6 => constants.%T.f49 +// CHECK:STDOUT: specific @Class.F(constants.%T.f84) { +// CHECK:STDOUT: %T.loc6 => constants.%T.f84 // CHECK:STDOUT: %T.as_type.loc6_11.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c0fdca.2 -// CHECK:STDOUT: %.loc6_17.1 => constants.%.dedae6.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2c66b4.2 +// CHECK:STDOUT: %.loc6_17.1 => constants.%.1ce700.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class.G(constants.%T.f49) { -// CHECK:STDOUT: %T.loc7 => constants.%T.f49 +// CHECK:STDOUT: specific @Class.G(constants.%T.f84) { +// CHECK:STDOUT: %T.loc7 => constants.%T.f84 // CHECK:STDOUT: %Class => constants.%Class -// CHECK:STDOUT: %pattern_type.loc7_12 => constants.%pattern_type.16a +// CHECK:STDOUT: %pattern_type.loc7_12 => constants.%pattern_type.e18 // CHECK:STDOUT: %T.as_type.loc7_25.1 => constants.%T.as_type -// CHECK:STDOUT: %.loc7_25.1 => constants.%.dedae6.2 -// CHECK:STDOUT: %pattern_type.loc7_25 => constants.%pattern_type.c0fdca.2 +// CHECK:STDOUT: %.loc7_25.1 => constants.%.1ce700.2 +// CHECK:STDOUT: %pattern_type.loc7_25 => constants.%pattern_type.2c66b4.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- nested.carbon @@ -392,12 +392,12 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %B.type: type = generic_class_type @B, @A(%T) [symbolic] // CHECK:STDOUT: %B.generic: %B.type = struct_value () [symbolic] // CHECK:STDOUT: %B: type = class_type @B, @B(%T, %_) [symbolic] -// CHECK:STDOUT: %pattern_type.29a: type = pattern_type %B [symbolic] +// CHECK:STDOUT: %pattern_type.b16: type = pattern_type %B [symbolic] // CHECK:STDOUT: %B.F.type: type = fn_type @B.F, @B(%T, %_) [symbolic] // CHECK:STDOUT: %B.F: %B.F.type = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %require_complete.148: = require_complete_type %B [symbolic] +// CHECK:STDOUT: %require_complete.0e8: = require_complete_type %B [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -412,8 +412,8 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %T.loc5_10.2: type = symbolic_binding T, 0 [symbolic = %T.loc5_10.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [symbolic = constants.%B.F] { -// CHECK:STDOUT: %self.param_patt: @B.F.%pattern_type.loc7_14 (%pattern_type.29a) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @B.F.%pattern_type.loc7_14 (%pattern_type.29a) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @B.F.%pattern_type.loc7_14 (%pattern_type.b16) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @B.F.%pattern_type.loc7_14 (%pattern_type.b16) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %a.param_patt: @B.F.%pattern_type.loc7_23 (%pattern_type.51d) = value_param_pattern [concrete] // CHECK:STDOUT: %a.patt: @B.F.%pattern_type.loc7_23 (%pattern_type.51d) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { @@ -477,8 +477,8 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %B.F.decl: @B.%B.F.type (%B.F.type) = fn_decl @B.F [symbolic = @B.%B.F (constants.%B.F)] { -// CHECK:STDOUT: %self.param_patt: @B.F.%pattern_type.loc7_14 (%pattern_type.29a) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @B.F.%pattern_type.loc7_14 (%pattern_type.29a) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @B.F.%pattern_type.loc7_14 (%pattern_type.b16) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @B.F.%pattern_type.loc7_14 (%pattern_type.b16) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %a.param_patt: @B.F.%pattern_type.loc7_23 (%pattern_type.51d) = value_param_pattern [concrete] // CHECK:STDOUT: %a.patt: @B.F.%pattern_type.loc7_23 (%pattern_type.51d) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { @@ -506,11 +506,11 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %T.loc7: type = symbolic_binding T, 0 [symbolic = %T.loc7 (constants.%T)] // CHECK:STDOUT: %_.loc7: @B.F.%T.loc7 (%T) = symbolic_binding _, 1 [symbolic = %_.loc7 (constants.%_)] // CHECK:STDOUT: %B: type = class_type @B, @B(%T.loc7, %_.loc7) [symbolic = %B (constants.%B)] -// CHECK:STDOUT: %pattern_type.loc7_14: type = pattern_type %B [symbolic = %pattern_type.loc7_14 (constants.%pattern_type.29a)] +// CHECK:STDOUT: %pattern_type.loc7_14: type = pattern_type %B [symbolic = %pattern_type.loc7_14 (constants.%pattern_type.b16)] // CHECK:STDOUT: %pattern_type.loc7_23: type = pattern_type %T.loc7 [symbolic = %pattern_type.loc7_23 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc11_38: = require_complete_type %B [symbolic = %require_complete.loc11_38 (constants.%require_complete.148)] +// CHECK:STDOUT: %require_complete.loc11_38: = require_complete_type %B [symbolic = %require_complete.loc11_38 (constants.%require_complete.0e8)] // CHECK:STDOUT: %require_complete.loc11_54: = require_complete_type %T.loc7 [symbolic = %require_complete.loc11_54 (constants.%require_complete.944)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param.loc11: @B.F.%B (%B), %a.param.loc11: @B.F.%T.loc7 (%T)) { @@ -541,7 +541,7 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %T.loc7 => constants.%T // CHECK:STDOUT: %_.loc7 => constants.%_ // CHECK:STDOUT: %B => constants.%B -// CHECK:STDOUT: %pattern_type.loc7_14 => constants.%pattern_type.29a +// CHECK:STDOUT: %pattern_type.loc7_14 => constants.%pattern_type.b16 // CHECK:STDOUT: %pattern_type.loc7_23 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_type.carbon b/toolchain/check/testdata/class/generic/member_type.carbon index 74701feab350..7692efecd6d4 100644 --- a/toolchain/check/testdata/class/generic/member_type.carbon +++ b/toolchain/check/testdata/class/generic/member_type.carbon @@ -62,83 +62,83 @@ fn Test() -> i32 { // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %T.f49: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.e81: type = pattern_type %Copy.type [concrete] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Outer.type: type = generic_class_type @Outer [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Outer.generic: %Outer.type = struct_value () [concrete] -// CHECK:STDOUT: %Outer.467: type = class_type @Outer, @Outer(%T.f49) [symbolic] -// CHECK:STDOUT: %Inner.c8f: type = class_type @Inner, @Inner(%T.f49) [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f49 [symbolic] -// CHECK:STDOUT: %require_complete.77e: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.c0fdca.2: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %Inner.elem.36d: type = unbound_element_type %Inner.c8f, %T.as_type [symbolic] -// CHECK:STDOUT: %struct_type.n.fa5: type = struct_type {.n: %T.as_type} [symbolic] -// CHECK:STDOUT: %complete_type.c3a: = complete_type_witness %struct_type.n.fa5 [symbolic] -// CHECK:STDOUT: %.6d6: Core.Form = init_form %Inner.c8f [symbolic] -// CHECK:STDOUT: %pattern_type.f8c: type = pattern_type %Inner.c8f [symbolic] -// CHECK:STDOUT: %Outer.F.type.4f4: type = fn_type @Outer.F, @Outer(%T.f49) [symbolic] -// CHECK:STDOUT: %Outer.F.51f: %Outer.F.type.4f4 = struct_value () [symbolic] +// CHECK:STDOUT: %Outer.409: type = class_type @Outer, @Outer(%T.f84) [symbolic] +// CHECK:STDOUT: %Inner.06b: type = class_type @Inner, @Inner(%T.f84) [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f84 [symbolic] +// CHECK:STDOUT: %require_complete.d83: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %Inner.elem.51d: type = unbound_element_type %Inner.06b, %T.as_type [symbolic] +// CHECK:STDOUT: %struct_type.n.797: type = struct_type {.n: %T.as_type} [symbolic] +// CHECK:STDOUT: %complete_type.22c: = complete_type_witness %struct_type.n.797 [symbolic] +// CHECK:STDOUT: %.c17: Core.Form = init_form %Inner.06b [symbolic] +// CHECK:STDOUT: %pattern_type.c1c: type = pattern_type %Inner.06b [symbolic] +// CHECK:STDOUT: %Outer.F.type.823: type = fn_type @Outer.F, @Outer(%T.f84) [symbolic] +// CHECK:STDOUT: %Outer.F.e27: %Outer.F.type.823 = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %require_complete.93b: = require_complete_type %Inner.c8f [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2dd: = lookup_impl_witness %T.f49, @Copy [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.e9f10f.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f49) [symbolic] -// CHECK:STDOUT: %.e16: type = fn_type_with_self_type %Copy.WithSelf.Op.type.e9f10f.2, %T.f49 [symbolic] -// CHECK:STDOUT: %impl.elem0.41e: %.e16 = impl_witness_access %Copy.lookup_impl_witness.2dd, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7ec: = specific_impl_function %impl.elem0.41e, @Copy.WithSelf.Op(%T.f49) [symbolic] +// CHECK:STDOUT: %require_complete.972: = require_complete_type %Inner.06b [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d9c: = lookup_impl_witness %T.f84, @Copy [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c85f21.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f84) [symbolic] +// CHECK:STDOUT: %.c29: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c85f21.2, %T.f84 [symbolic] +// CHECK:STDOUT: %impl.elem0.bd2: %.c29 = impl_witness_access %Copy.lookup_impl_witness.d9c, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e2a: = specific_impl_function %impl.elem0.bd2, @Copy.WithSelf.Op(%T.f84) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Test.type: type = fn_type @Test [concrete] // CHECK:STDOUT: %Test: %Test.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.14d: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Outer.0c2: type = class_type @Outer, @Outer(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %Inner.cc9: type = class_type @Inner, @Inner(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %Outer.F.type.3a5: type = fn_type @Outer.F, @Outer(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %Outer.F.a82: %Outer.F.type.3a5 = struct_value () [concrete] -// CHECK:STDOUT: %Inner.elem.8cd: type = unbound_element_type %Inner.cc9, %i32 [concrete] -// CHECK:STDOUT: %struct_type.n.c7a: type = struct_type {.n: %i32} [concrete] -// CHECK:STDOUT: %complete_type.edf: = complete_type_witness %struct_type.n.c7a [concrete] -// CHECK:STDOUT: %pattern_type.37d: type = pattern_type %Inner.cc9 [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.987: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Outer.90e: type = class_type @Outer, @Outer(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %Inner.096: type = class_type @Inner, @Inner(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %Outer.F.type.3ad: type = fn_type @Outer.F, @Outer(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %Outer.F.17f: %Outer.F.type.3ad = struct_value () [concrete] +// CHECK:STDOUT: %Inner.elem.362: type = unbound_element_type %Inner.096, %i32 [concrete] +// CHECK:STDOUT: %struct_type.n.9ed: type = struct_type {.n: %i32} [concrete] +// CHECK:STDOUT: %complete_type.cdf: = complete_type_witness %struct_type.n.9ed [concrete] +// CHECK:STDOUT: %pattern_type.1e8: type = pattern_type %Inner.096 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.061: = impl_witness imports.%Copy.impl_witness_table.fb5 [concrete] -// CHECK:STDOUT: %Copy.facet.23a: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.061) [concrete] -// CHECK:STDOUT: %.e0c: Core.Form = init_form %Inner.cc9 [concrete] -// CHECK:STDOUT: %Outer.F.specific_fn: = specific_function %Outer.F.a82, @Outer.F(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %Copy.impl_witness.6da: = impl_witness imports.%Copy.impl_witness_table.06e [concrete] +// CHECK:STDOUT: %Copy.facet.f12: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.6da) [concrete] +// CHECK:STDOUT: %.8bc: Core.Form = init_form %Inner.096 [concrete] +// CHECK:STDOUT: %Outer.F.specific_fn: = specific_function %Outer.F.17f, @Outer.F(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet.14d [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet.987 [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.790b3b.4: type = fn_type @Destroy.Op.loc13_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -152,13 +152,13 @@ fn Test() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.83f = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Copy.impl_witness_table.fb5 = impl_witness_table (%Core.import_ref.83f), @Core.IntLiteral.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.bbf = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Copy.impl_witness_table.06e = impl_witness_table (%Core.import_ref.bbf), @Core.IntLiteral.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -170,60 +170,60 @@ fn Test() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Outer.decl: %Outer.type = class_decl @Outer [concrete = constants.%Outer.generic] { -// CHECK:STDOUT: %T.patt: %pattern_type.b72 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.e81 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc4_14.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc4_14.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T.f84)] // CHECK:STDOUT: } // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc12 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc12 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc12: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc12: Core.Form = init_form %i32.loc12 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc12: Core.Form = init_form %i32.loc12 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Outer(%T.loc4_14.2: %Copy.type) { -// CHECK:STDOUT: %T.loc4_14.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc4_14.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T.f84)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%T.loc4_14.1) [symbolic = %Inner (constants.%Inner.c8f)] -// CHECK:STDOUT: %Outer.F.type: type = fn_type @Outer.F, @Outer(%T.loc4_14.1) [symbolic = %Outer.F.type (constants.%Outer.F.type.4f4)] -// CHECK:STDOUT: %Outer.F: @Outer.%Outer.F.type (%Outer.F.type.4f4) = struct_value () [symbolic = %Outer.F (constants.%Outer.F.51f)] +// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%T.loc4_14.1) [symbolic = %Inner (constants.%Inner.06b)] +// CHECK:STDOUT: %Outer.F.type: type = fn_type @Outer.F, @Outer(%T.loc4_14.1) [symbolic = %Outer.F.type (constants.%Outer.F.type.823)] +// CHECK:STDOUT: %Outer.F: @Outer.%Outer.F.type (%Outer.F.type.823) = struct_value () [symbolic = %Outer.F (constants.%Outer.F.e27)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Inner.decl: type = class_decl @Inner [symbolic = @Outer.%Inner (constants.%Inner.c8f)] {} {} -// CHECK:STDOUT: %Outer.F.decl: @Outer.%Outer.F.type (%Outer.F.type.4f4) = fn_decl @Outer.F [symbolic = @Outer.%Outer.F (constants.%Outer.F.51f)] { -// CHECK:STDOUT: %n.param_patt: @Outer.F.%pattern_type.loc9_9 (%pattern_type.c0fdca.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: @Outer.F.%pattern_type.loc9_9 (%pattern_type.c0fdca.2) = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Outer.F.%pattern_type.loc9_17 (%pattern_type.f8c) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Outer.F.%pattern_type.loc9_17 (%pattern_type.f8c) = return_slot_pattern %return.param_patt, %Inner.ref [concrete] +// CHECK:STDOUT: %Inner.decl: type = class_decl @Inner [symbolic = @Outer.%Inner (constants.%Inner.06b)] {} {} +// CHECK:STDOUT: %Outer.F.decl: @Outer.%Outer.F.type (%Outer.F.type.823) = fn_decl @Outer.F [symbolic = @Outer.%Outer.F (constants.%Outer.F.e27)] { +// CHECK:STDOUT: %n.param_patt: @Outer.F.%pattern_type.loc9_9 (%pattern_type.2c66b4.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @Outer.F.%pattern_type.loc9_9 (%pattern_type.2c66b4.2) = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Outer.F.%pattern_type.loc9_17 (%pattern_type.c1c) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Outer.F.%pattern_type.loc9_17 (%pattern_type.c1c) = return_slot_pattern %return.param_patt, %Inner.ref [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc9_17.2: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%T.f49) [symbolic = %Inner (constants.%Inner.c8f)] -// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc9_17.2 [symbolic = %Inner (constants.%Inner.c8f)] -// CHECK:STDOUT: %.loc9_17.3: Core.Form = init_form %Inner.ref [symbolic = %.loc9_17.1 (constants.%.6d6)] +// CHECK:STDOUT: %.loc9_17.2: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%T.f84) [symbolic = %Inner (constants.%Inner.06b)] +// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc9_17.2 [symbolic = %Inner (constants.%Inner.06b)] +// CHECK:STDOUT: %.loc9_17.3: Core.Form = init_form %Inner.ref [symbolic = %.loc9_17.1 (constants.%.c17)] // CHECK:STDOUT: %n.param: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc9_11.1: type = splice_block %.loc9_11.2 [symbolic = %T.as_type.loc9_11.1 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Outer.%T.loc4_14.2 [symbolic = %T (constants.%T.f49)] +// CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Outer.%T.loc4_14.2 [symbolic = %T (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc9_11.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_11.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc9_11.2: type = converted %T.ref, %T.as_type.loc9_11.2 [symbolic = %T.as_type.loc9_11.1 (constants.%T.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: %n: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) = value_binding n, %n.param -// CHECK:STDOUT: %return.param: ref @Outer.F.%Inner (%Inner.c8f) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Outer.F.%Inner (%Inner.c8f) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @Outer.F.%Inner (%Inner.06b) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Outer.F.%Inner (%Inner.06b) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type.357] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Outer.467 +// CHECK:STDOUT: .Self = constants.%Outer.409 // CHECK:STDOUT: .Inner = %Inner.decl // CHECK:STDOUT: .T = // CHECK:STDOUT: .F = %Outer.F.decl @@ -232,57 +232,57 @@ fn Test() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4_14.2: %Copy.type) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.f49)] +// CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.f84)] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic = %T.as_type (constants.%T.as_type)] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic = %require_complete (constants.%require_complete.77e)] -// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%T) [symbolic = %Inner (constants.%Inner.c8f)] -// CHECK:STDOUT: %Inner.elem: type = unbound_element_type %Inner, %T.as_type [symbolic = %Inner.elem (constants.%Inner.elem.36d)] -// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Inner.%T.as_type (%T.as_type)} [symbolic = %struct_type.n (constants.%struct_type.n.fa5)] -// CHECK:STDOUT: %complete_type.loc7_3.2: = complete_type_witness %struct_type.n [symbolic = %complete_type.loc7_3.2 (constants.%complete_type.c3a)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic = %require_complete (constants.%require_complete.d83)] +// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%T) [symbolic = %Inner (constants.%Inner.06b)] +// CHECK:STDOUT: %Inner.elem: type = unbound_element_type %Inner, %T.as_type [symbolic = %Inner.elem (constants.%Inner.elem.51d)] +// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Inner.%T.as_type (%T.as_type)} [symbolic = %struct_type.n (constants.%struct_type.n.797)] +// CHECK:STDOUT: %complete_type.loc7_3.2: = complete_type_witness %struct_type.n [symbolic = %complete_type.loc7_3.2 (constants.%complete_type.22c)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc6: @Inner.%Inner.elem (%Inner.elem.36d) = field_decl n, element0 [concrete] -// CHECK:STDOUT: %complete_type.loc7_3.1: = complete_type_witness constants.%struct_type.n.fa5 [symbolic = %complete_type.loc7_3.2 (constants.%complete_type.c3a)] +// CHECK:STDOUT: %.loc6: @Inner.%Inner.elem (%Inner.elem.51d) = field_decl n, element0 [concrete] +// CHECK:STDOUT: %complete_type.loc7_3.1: = complete_type_witness constants.%struct_type.n.797 [symbolic = %complete_type.loc7_3.2 (constants.%complete_type.22c)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc7_3.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Inner.c8f +// CHECK:STDOUT: .Self = constants.%Inner.06b // CHECK:STDOUT: .T = // CHECK:STDOUT: .n = %.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Outer.F(@Outer.%T.loc4_14.2: %Copy.type) { -// CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.f49)] +// CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc9_11.1: type = facet_access_type %T [symbolic = %T.as_type.loc9_11.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type.loc9_9: type = pattern_type %T.as_type.loc9_11.1 [symbolic = %pattern_type.loc9_9 (constants.%pattern_type.c0fdca.2)] -// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%T) [symbolic = %Inner (constants.%Inner.c8f)] -// CHECK:STDOUT: %.loc9_17.1: Core.Form = init_form %Inner [symbolic = %.loc9_17.1 (constants.%.6d6)] -// CHECK:STDOUT: %pattern_type.loc9_17: type = pattern_type %Inner [symbolic = %pattern_type.loc9_17 (constants.%pattern_type.f8c)] +// CHECK:STDOUT: %pattern_type.loc9_9: type = pattern_type %T.as_type.loc9_11.1 [symbolic = %pattern_type.loc9_9 (constants.%pattern_type.2c66b4.2)] +// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%T) [symbolic = %Inner (constants.%Inner.06b)] +// CHECK:STDOUT: %.loc9_17.1: Core.Form = init_form %Inner [symbolic = %.loc9_17.1 (constants.%.c17)] +// CHECK:STDOUT: %pattern_type.loc9_17: type = pattern_type %Inner [symbolic = %pattern_type.loc9_17 (constants.%pattern_type.c1c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_9: = require_complete_type %T.as_type.loc9_11.1 [symbolic = %require_complete.loc9_9 (constants.%require_complete.77e)] -// CHECK:STDOUT: %require_complete.loc9_14: = require_complete_type %Inner [symbolic = %require_complete.loc9_14 (constants.%require_complete.93b)] -// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type)} [symbolic = %struct_type.n (constants.%struct_type.n.fa5)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.2)] -// CHECK:STDOUT: %.loc9_38: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc9_38 (constants.%.e16)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2dd)] -// CHECK:STDOUT: %impl.elem0.loc9_38.2: @Outer.F.%.loc9_38 (%.e16) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_38.2 (constants.%impl.elem0.41e)] -// CHECK:STDOUT: %specific_impl_fn.loc9_38.2: = specific_impl_function %impl.elem0.loc9_38.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc9_38.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %require_complete.loc9_9: = require_complete_type %T.as_type.loc9_11.1 [symbolic = %require_complete.loc9_9 (constants.%require_complete.d83)] +// CHECK:STDOUT: %require_complete.loc9_14: = require_complete_type %Inner [symbolic = %require_complete.loc9_14 (constants.%require_complete.972)] +// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type)} [symbolic = %struct_type.n (constants.%struct_type.n.797)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.2)] +// CHECK:STDOUT: %.loc9_38: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc9_38 (constants.%.c29)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c)] +// CHECK:STDOUT: %impl.elem0.loc9_38.2: @Outer.F.%.loc9_38 (%.c29) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_38.2 (constants.%impl.elem0.bd2)] +// CHECK:STDOUT: %specific_impl_fn.loc9_38.2: = specific_impl_function %impl.elem0.loc9_38.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc9_38.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%n.param: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type)) -> out %return.param: @Outer.F.%Inner (%Inner.c8f) { +// CHECK:STDOUT: fn(%n.param: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type)) -> out %return.param: @Outer.F.%Inner (%Inner.06b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) = name_ref n, %n -// CHECK:STDOUT: %.loc9_39.1: @Outer.F.%struct_type.n (%struct_type.n.fa5) = struct_literal (%n.ref) -// CHECK:STDOUT: %impl.elem0.loc9_38.1: @Outer.F.%.loc9_38 (%.e16) = impl_witness_access constants.%Copy.lookup_impl_witness.2dd, element0 [symbolic = %impl.elem0.loc9_38.2 (constants.%impl.elem0.41e)] +// CHECK:STDOUT: %.loc9_39.1: @Outer.F.%struct_type.n (%struct_type.n.797) = struct_literal (%n.ref) +// CHECK:STDOUT: %impl.elem0.loc9_38.1: @Outer.F.%.loc9_38 (%.c29) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c, element0 [symbolic = %impl.elem0.loc9_38.2 (constants.%impl.elem0.bd2)] // CHECK:STDOUT: %bound_method.loc9_38.1: = bound_method %n.ref, %impl.elem0.loc9_38.1 -// CHECK:STDOUT: %specific_impl_fn.loc9_38.1: = specific_impl_function %impl.elem0.loc9_38.1, @Copy.WithSelf.Op(constants.%T.f49) [symbolic = %specific_impl_fn.loc9_38.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %specific_impl_fn.loc9_38.1: = specific_impl_function %impl.elem0.loc9_38.1, @Copy.WithSelf.Op(constants.%T.f84) [symbolic = %specific_impl_fn.loc9_38.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: %bound_method.loc9_38.2: = bound_method %n.ref, %specific_impl_fn.loc9_38.1 // CHECK:STDOUT: %.loc9_39.2: ref @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) = class_element_access %return.param, element0 // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) to %.loc9_39.2 = call %bound_method.loc9_38.2(%n.ref) // CHECK:STDOUT: %.loc9_39.3: init @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) to %.loc9_39.2 = in_place_init %Copy.WithSelf.Op.call -// CHECK:STDOUT: %.loc9_39.4: init @Outer.F.%Inner (%Inner.c8f) to %return.param = class_init (%.loc9_39.3) -// CHECK:STDOUT: %.loc9_40: init @Outer.F.%Inner (%Inner.c8f) = converted %.loc9_39.1, %.loc9_39.4 +// CHECK:STDOUT: %.loc9_39.4: init @Outer.F.%Inner (%Inner.06b) to %return.param = class_init (%.loc9_39.3) +// CHECK:STDOUT: %.loc9_40: init @Outer.F.%Inner (%Inner.06b) = converted %.loc9_39.1, %.loc9_39.4 // CHECK:STDOUT: return %.loc9_40 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -290,51 +290,51 @@ fn Test() -> i32 { // CHECK:STDOUT: fn @Test() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.37d = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.37d = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.1e8 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.1e8 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %c.var: ref %Inner.cc9 = var %c.var_patt +// CHECK:STDOUT: %c.var: ref %Inner.096 = var %c.var_patt // CHECK:STDOUT: %Outer.ref.loc13_29: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %i32.loc13_35: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %Copy.facet.loc13_38: %Copy.type = facet_value %i32.loc13_35, (constants.%Copy.impl_witness.1a4) [concrete = constants.%Copy.facet.14d] -// CHECK:STDOUT: %.loc13_38: %Copy.type = converted %i32.loc13_35, %Copy.facet.loc13_38 [concrete = constants.%Copy.facet.14d] -// CHECK:STDOUT: %Outer.loc13_38: type = class_type @Outer, @Outer(constants.%Copy.facet.14d) [concrete = constants.%Outer.0c2] -// CHECK:STDOUT: %.loc13_39: %Outer.F.type.3a5 = specific_constant @Outer.%Outer.F.decl, @Outer(constants.%Copy.facet.14d) [concrete = constants.%Outer.F.a82] -// CHECK:STDOUT: %F.ref: %Outer.F.type.3a5 = name_ref F, %.loc13_39 [concrete = constants.%Outer.F.a82] +// CHECK:STDOUT: %Copy.facet.loc13_38: %Copy.type = facet_value %i32.loc13_35, (constants.%Copy.impl_witness.0e0) [concrete = constants.%Copy.facet.987] +// CHECK:STDOUT: %.loc13_38: %Copy.type = converted %i32.loc13_35, %Copy.facet.loc13_38 [concrete = constants.%Copy.facet.987] +// CHECK:STDOUT: %Outer.loc13_38: type = class_type @Outer, @Outer(constants.%Copy.facet.987) [concrete = constants.%Outer.90e] +// CHECK:STDOUT: %.loc13_39: %Outer.F.type.3ad = specific_constant @Outer.%Outer.F.decl, @Outer(constants.%Copy.facet.987) [concrete = constants.%Outer.F.17f] +// CHECK:STDOUT: %F.ref: %Outer.F.type.3ad = name_ref F, %.loc13_39 [concrete = constants.%Outer.F.17f] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %Copy.facet.loc13_43: %Copy.type = facet_value Core.IntLiteral, (constants.%Copy.impl_witness.061) [concrete = constants.%Copy.facet.23a] -// CHECK:STDOUT: %.loc13_43: %Copy.type = converted Core.IntLiteral, %Copy.facet.loc13_43 [concrete = constants.%Copy.facet.23a] -// CHECK:STDOUT: %Outer.F.specific_fn: = specific_function %F.ref, @Outer.F(constants.%Copy.facet.14d) [concrete = constants.%Outer.F.specific_fn] -// CHECK:STDOUT: %.loc13_3: ref %Inner.cc9 = splice_block %c.var {} -// CHECK:STDOUT: %impl.elem0.loc13: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %Copy.facet.loc13_43: %Copy.type = facet_value Core.IntLiteral, (constants.%Copy.impl_witness.6da) [concrete = constants.%Copy.facet.f12] +// CHECK:STDOUT: %.loc13_43: %Copy.type = converted Core.IntLiteral, %Copy.facet.loc13_43 [concrete = constants.%Copy.facet.f12] +// CHECK:STDOUT: %Outer.F.specific_fn: = specific_function %F.ref, @Outer.F(constants.%Copy.facet.987) [concrete = constants.%Outer.F.specific_fn] +// CHECK:STDOUT: %.loc13_3: ref %Inner.096 = splice_block %c.var {} +// CHECK:STDOUT: %impl.elem0.loc13: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc13_42.1: = bound_method %int_1, %impl.elem0.loc13 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_42.2: = bound_method %int_1, %specific_fn.loc13 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc13_42.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc13_42.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc13_42.2: %i32 = converted %int_1, %.loc13_42.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %Outer.F.call: init %Inner.cc9 to %.loc13_3 = call %Outer.F.specific_fn(%.loc13_42.2) +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc13_42.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc13_42.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc13_42.2: %i32 = converted %int_1, %.loc13_42.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %Outer.F.call: init %Inner.096 to %.loc13_3 = call %Outer.F.specific_fn(%.loc13_42.2) // CHECK:STDOUT: assign %c.var, %Outer.F.call -// CHECK:STDOUT: %.loc13_20.1: type = splice_block %Inner.ref [concrete = constants.%Inner.cc9] { +// CHECK:STDOUT: %.loc13_20.1: type = splice_block %Inner.ref [concrete = constants.%Inner.096] { // CHECK:STDOUT: %Outer.ref.loc13_10: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %i32.loc13_16: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %Copy.facet.loc13_19: %Copy.type = facet_value %i32.loc13_16, (constants.%Copy.impl_witness.1a4) [concrete = constants.%Copy.facet.14d] -// CHECK:STDOUT: %.loc13_19: %Copy.type = converted %i32.loc13_16, %Copy.facet.loc13_19 [concrete = constants.%Copy.facet.14d] -// CHECK:STDOUT: %Outer.loc13_19: type = class_type @Outer, @Outer(constants.%Copy.facet.14d) [concrete = constants.%Outer.0c2] -// CHECK:STDOUT: %.loc13_20.2: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%Copy.facet.14d) [concrete = constants.%Inner.cc9] -// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc13_20.2 [concrete = constants.%Inner.cc9] +// CHECK:STDOUT: %Copy.facet.loc13_19: %Copy.type = facet_value %i32.loc13_16, (constants.%Copy.impl_witness.0e0) [concrete = constants.%Copy.facet.987] +// CHECK:STDOUT: %.loc13_19: %Copy.type = converted %i32.loc13_16, %Copy.facet.loc13_19 [concrete = constants.%Copy.facet.987] +// CHECK:STDOUT: %Outer.loc13_19: type = class_type @Outer, @Outer(constants.%Copy.facet.987) [concrete = constants.%Outer.90e] +// CHECK:STDOUT: %.loc13_20.2: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%Copy.facet.987) [concrete = constants.%Inner.096] +// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc13_20.2 [concrete = constants.%Inner.096] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: ref %Inner.cc9 = ref_binding c, %c.var -// CHECK:STDOUT: %c.ref: ref %Inner.cc9 = name_ref c, %c -// CHECK:STDOUT: %n.ref: %Inner.elem.8cd = name_ref n, @Inner.%.loc6 [concrete = @Inner.%.loc6] +// CHECK:STDOUT: %c: ref %Inner.096 = ref_binding c, %c.var +// CHECK:STDOUT: %c.ref: ref %Inner.096 = name_ref c, %c +// CHECK:STDOUT: %n.ref: %Inner.elem.362 = name_ref n, @Inner.%.loc6 [concrete = @Inner.%.loc6] // CHECK:STDOUT: %.loc14_11.1: ref %i32 = class_element_access %c.ref, element0 // CHECK:STDOUT: %.loc14_11.2: %i32 = acquire_value %.loc14_11.1 -// CHECK:STDOUT: %impl.elem0.loc14: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc14: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc14_11.1: = bound_method %.loc14_11.2, %impl.elem0.loc14 // 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.2dd605.4 +// 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: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } @@ -346,81 +346,81 @@ fn Test() -> i32 { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_3.3(%self.param: ref %struct_type.n.c7a) { +// CHECK:STDOUT: fn @Destroy.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.cc9) { +// CHECK:STDOUT: fn @Destroy.Op.loc13_3.4(%self.param: ref %Inner.096) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Outer(constants.%T.f49) { -// CHECK:STDOUT: %T.loc4_14.1 => constants.%T.f49 +// CHECK:STDOUT: specific @Outer(constants.%T.f84) { +// CHECK:STDOUT: %T.loc4_14.1 => constants.%T.f84 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner => constants.%Inner.c8f -// CHECK:STDOUT: %Outer.F.type => constants.%Outer.F.type.4f4 -// CHECK:STDOUT: %Outer.F => constants.%Outer.F.51f +// CHECK:STDOUT: %Inner => constants.%Inner.06b +// CHECK:STDOUT: %Outer.F.type => constants.%Outer.F.type.823 +// CHECK:STDOUT: %Outer.F => constants.%Outer.F.e27 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner(constants.%T.f49) { +// CHECK:STDOUT: specific @Inner(constants.%T.f84) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T => constants.%T.f49 +// CHECK:STDOUT: %T => constants.%T.f84 // CHECK:STDOUT: %T.as_type => constants.%T.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.77e -// CHECK:STDOUT: %Inner => constants.%Inner.c8f -// CHECK:STDOUT: %Inner.elem => constants.%Inner.elem.36d -// CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.fa5 -// CHECK:STDOUT: %complete_type.loc7_3.2 => constants.%complete_type.c3a +// CHECK:STDOUT: %require_complete => constants.%require_complete.d83 +// CHECK:STDOUT: %Inner => constants.%Inner.06b +// CHECK:STDOUT: %Inner.elem => constants.%Inner.elem.51d +// CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.797 +// CHECK:STDOUT: %complete_type.loc7_3.2 => constants.%complete_type.22c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Outer.F(constants.%T.f49) { -// CHECK:STDOUT: %T => constants.%T.f49 +// CHECK:STDOUT: specific @Outer.F(constants.%T.f84) { +// CHECK:STDOUT: %T => constants.%T.f84 // CHECK:STDOUT: %T.as_type.loc9_11.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc9_9 => constants.%pattern_type.c0fdca.2 -// CHECK:STDOUT: %Inner => constants.%Inner.c8f -// CHECK:STDOUT: %.loc9_17.1 => constants.%.6d6 -// CHECK:STDOUT: %pattern_type.loc9_17 => constants.%pattern_type.f8c +// CHECK:STDOUT: %pattern_type.loc9_9 => constants.%pattern_type.2c66b4.2 +// CHECK:STDOUT: %Inner => constants.%Inner.06b +// CHECK:STDOUT: %.loc9_17.1 => constants.%.c17 +// CHECK:STDOUT: %pattern_type.loc9_17 => constants.%pattern_type.c1c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Outer(constants.%Copy.facet.14d) { -// CHECK:STDOUT: %T.loc4_14.1 => constants.%Copy.facet.14d +// CHECK:STDOUT: specific @Outer(constants.%Copy.facet.987) { +// CHECK:STDOUT: %T.loc4_14.1 => constants.%Copy.facet.987 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner => constants.%Inner.cc9 -// CHECK:STDOUT: %Outer.F.type => constants.%Outer.F.type.3a5 -// CHECK:STDOUT: %Outer.F => constants.%Outer.F.a82 +// CHECK:STDOUT: %Inner => constants.%Inner.096 +// CHECK:STDOUT: %Outer.F.type => constants.%Outer.F.type.3ad +// CHECK:STDOUT: %Outer.F => constants.%Outer.F.17f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner(constants.%Copy.facet.14d) { +// CHECK:STDOUT: specific @Inner(constants.%Copy.facet.987) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T => constants.%Copy.facet.14d +// CHECK:STDOUT: %T => constants.%Copy.facet.987 // CHECK:STDOUT: %T.as_type => constants.%i32 // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %Inner => constants.%Inner.cc9 -// CHECK:STDOUT: %Inner.elem => constants.%Inner.elem.8cd -// CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.c7a -// CHECK:STDOUT: %complete_type.loc7_3.2 => constants.%complete_type.edf +// CHECK:STDOUT: %Inner => constants.%Inner.096 +// CHECK:STDOUT: %Inner.elem => constants.%Inner.elem.362 +// CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.9ed +// CHECK:STDOUT: %complete_type.loc7_3.2 => constants.%complete_type.cdf // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Outer.F(constants.%Copy.facet.14d) { -// CHECK:STDOUT: %T => constants.%Copy.facet.14d +// CHECK:STDOUT: specific @Outer.F(constants.%Copy.facet.987) { +// CHECK:STDOUT: %T => constants.%Copy.facet.987 // CHECK:STDOUT: %T.as_type.loc9_11.1 => constants.%i32 -// CHECK:STDOUT: %pattern_type.loc9_9 => constants.%pattern_type.104 -// CHECK:STDOUT: %Inner => constants.%Inner.cc9 -// CHECK:STDOUT: %.loc9_17.1 => constants.%.e0c -// CHECK:STDOUT: %pattern_type.loc9_17 => constants.%pattern_type.37d +// CHECK:STDOUT: %pattern_type.loc9_9 => constants.%pattern_type.6b6 +// CHECK:STDOUT: %Inner => constants.%Inner.096 +// CHECK:STDOUT: %.loc9_17.1 => constants.%.8bc +// CHECK:STDOUT: %pattern_type.loc9_17 => constants.%pattern_type.1e8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc9_9 => constants.%complete_type.f8a -// CHECK:STDOUT: %require_complete.loc9_14 => constants.%complete_type.edf -// CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.c7a -// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.7e2 -// CHECK:STDOUT: %.loc9_38 => constants.%.604 -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.1a4 -// CHECK:STDOUT: %impl.elem0.loc9_38.2 => constants.%Int.as.Copy.impl.Op.ce7 +// CHECK:STDOUT: %require_complete.loc9_14 => constants.%complete_type.cdf +// CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.9ed +// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.d09 +// CHECK:STDOUT: %.loc9_38 => constants.%.7a6 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.0e0 +// CHECK:STDOUT: %impl.elem0.loc9_38.2 => constants.%Int.as.Copy.impl.Op.4f6 // CHECK:STDOUT: %specific_impl_fn.loc9_38.2 => constants.%Int.as.Copy.impl.Op.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: @@ -434,80 +434,80 @@ fn Test() -> i32 { // CHECK:STDOUT: %Outer.type: type = generic_class_type @Outer [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Outer.generic: %Outer.type = struct_value () [concrete] -// CHECK:STDOUT: %Outer.3b5: type = class_type @Outer, @Outer(%T) [symbolic] -// CHECK:STDOUT: %Inner.type.4f1: type = facet_type <@Inner, @Inner(%T)> [symbolic] -// CHECK:STDOUT: %Self.381: %Inner.type.4f1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type.115: type = facet_access_type %Self.381 [symbolic] -// CHECK:STDOUT: %pattern_type.87e: type = pattern_type %Self.as_type.115 [symbolic] +// CHECK:STDOUT: %Outer.dee: type = class_type @Outer, @Outer(%T) [symbolic] +// CHECK:STDOUT: %Inner.type.84b: type = facet_type <@Inner, @Inner(%T)> [symbolic] +// CHECK:STDOUT: %Self.656: %Inner.type.84b = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type.abe: type = facet_access_type %Self.656 [symbolic] +// CHECK:STDOUT: %pattern_type.397: type = pattern_type %Self.as_type.abe [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %Inner.WithSelf.F.type.f3a: type = fn_type @Inner.WithSelf.F, @Inner.WithSelf(%T, %Self.381) [symbolic] -// CHECK:STDOUT: %Inner.WithSelf.F.d63: %Inner.WithSelf.F.type.f3a = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.assoc_type.126: type = assoc_entity_type @Inner, @Inner(%T) [symbolic] -// CHECK:STDOUT: %assoc0.9af: %Inner.assoc_type.126 = assoc_entity element0, @Inner.WithSelf.%Inner.WithSelf.F.decl [symbolic] -// CHECK:STDOUT: %C.514: type = class_type @C, @C(%T) [symbolic] -// CHECK:STDOUT: %Inner.impl_witness.3ba: = impl_witness @C.as.Inner.impl.%Inner.impl_witness_table, @C.as.Inner.impl(%T) [symbolic] -// CHECK:STDOUT: %require_complete.41e: = require_complete_type %Inner.type.4f1 [symbolic] -// CHECK:STDOUT: %pattern_type.55d: type = pattern_type %C.514 [symbolic] -// CHECK:STDOUT: %C.as.Inner.impl.F.type.5c2: type = fn_type @C.as.Inner.impl.F, @C.as.Inner.impl(%T) [symbolic] -// CHECK:STDOUT: %C.as.Inner.impl.F.8eb: %C.as.Inner.impl.F.type.5c2 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.facet.b3f: %Inner.type.4f1 = facet_value %C.514, (%Inner.impl_witness.3ba) [symbolic] -// CHECK:STDOUT: %Inner.WithSelf.F.type.922: type = fn_type @Inner.WithSelf.F, @Inner.WithSelf(%T, %Inner.facet.b3f) [symbolic] -// CHECK:STDOUT: %Inner.WithSelf.F.f36: %Inner.WithSelf.F.type.922 = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.WithSelf.F.type.792: type = fn_type @Inner.WithSelf.F, @Inner.WithSelf(%T, %Self.656) [symbolic] +// CHECK:STDOUT: %Inner.WithSelf.F.576: %Inner.WithSelf.F.type.792 = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.assoc_type.b6b: type = assoc_entity_type @Inner, @Inner(%T) [symbolic] +// CHECK:STDOUT: %assoc0.6dc: %Inner.assoc_type.b6b = assoc_entity element0, @Inner.WithSelf.%Inner.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %C.7d7: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %Inner.impl_witness.d0a: = impl_witness @C.as.Inner.impl.%Inner.impl_witness_table, @C.as.Inner.impl(%T) [symbolic] +// CHECK:STDOUT: %require_complete.fcc: = require_complete_type %Inner.type.84b [symbolic] +// CHECK:STDOUT: %pattern_type.6fd: type = pattern_type %C.7d7 [symbolic] +// CHECK:STDOUT: %C.as.Inner.impl.F.type.1ec: type = fn_type @C.as.Inner.impl.F, @C.as.Inner.impl(%T) [symbolic] +// CHECK:STDOUT: %C.as.Inner.impl.F.4be: %C.as.Inner.impl.F.type.1ec = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.facet.285: %Inner.type.84b = facet_value %C.7d7, (%Inner.impl_witness.d0a) [symbolic] +// CHECK:STDOUT: %Inner.WithSelf.F.type.b47: type = fn_type @Inner.WithSelf.F, @Inner.WithSelf(%T, %Inner.facet.285) [symbolic] +// CHECK:STDOUT: %Inner.WithSelf.F.350: %Inner.WithSelf.F.type.b47 = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %require_complete.d21: = require_complete_type %C.514 [symbolic] +// CHECK:STDOUT: %require_complete.895: = require_complete_type %C.7d7 [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %Inner.lookup_impl_witness: = lookup_impl_witness %C.514, @Inner, @Inner(%T) [symbolic] -// CHECK:STDOUT: %.f4b: require_specific_def_type = require_specific_def @C.as.Inner.impl(%T) [symbolic] -// CHECK:STDOUT: %Inner.facet.629: %Inner.type.4f1 = facet_value %C.514, (%Inner.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Inner.WithSelf.F.type.550: type = fn_type @Inner.WithSelf.F, @Inner.WithSelf(%T, %Inner.facet.629) [symbolic] -// CHECK:STDOUT: %Inner.WithSelf.F.b8b: %Inner.WithSelf.F.type.550 = struct_value () [symbolic] -// CHECK:STDOUT: %.cb2: type = fn_type_with_self_type %Inner.WithSelf.F.type.550, %Inner.facet.629 [symbolic] -// CHECK:STDOUT: %impl.elem0: %.cb2 = impl_witness_access %Inner.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Inner.WithSelf.F(%T, %Inner.facet.629) [symbolic] +// CHECK:STDOUT: %Inner.lookup_impl_witness: = lookup_impl_witness %C.7d7, @Inner, @Inner(%T) [symbolic] +// CHECK:STDOUT: %.72e: require_specific_def_type = require_specific_def @C.as.Inner.impl(%T) [symbolic] +// CHECK:STDOUT: %Inner.facet.8ef: %Inner.type.84b = facet_value %C.7d7, (%Inner.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Inner.WithSelf.F.type.26a: type = fn_type @Inner.WithSelf.F, @Inner.WithSelf(%T, %Inner.facet.8ef) [symbolic] +// CHECK:STDOUT: %Inner.WithSelf.F.3e0: %Inner.WithSelf.F.type.26a = struct_value () [symbolic] +// CHECK:STDOUT: %.35d: type = fn_type_with_self_type %Inner.WithSelf.F.type.26a, %Inner.facet.8ef [symbolic] +// CHECK:STDOUT: %impl.elem0: %.35d = impl_witness_access %Inner.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Inner.WithSelf.F(%T, %Inner.facet.8ef) [symbolic] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %Outer.f42: type = class_type @Outer, @Outer(%i32) [concrete] -// CHECK:STDOUT: %Inner.type.d1b: type = facet_type <@Inner, @Inner(%i32)> [concrete] -// CHECK:STDOUT: %C.525: type = class_type @C, @C(%i32) [concrete] -// CHECK:STDOUT: %Inner.impl_witness.38e: = impl_witness @D.as.Inner.impl.%Inner.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.693: %Inner.type.d1b = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Inner.WithSelf.F.type.cf7: type = fn_type @Inner.WithSelf.F, @Inner.WithSelf(%i32, %Self.381) [symbolic] -// CHECK:STDOUT: %Inner.WithSelf.F.9bb: %Inner.WithSelf.F.type.cf7 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.assoc_type.7bd: type = assoc_entity_type @Inner, @Inner(%i32) [concrete] -// CHECK:STDOUT: %assoc0.c3f: %Inner.assoc_type.7bd = assoc_entity element0, @Inner.WithSelf.%Inner.WithSelf.F.decl [concrete] -// CHECK:STDOUT: %pattern_type.f1a: type = pattern_type %D [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Outer.e7c: type = class_type @Outer, @Outer(%i32) [concrete] +// CHECK:STDOUT: %Inner.type.5cc: type = facet_type <@Inner, @Inner(%i32)> [concrete] +// CHECK:STDOUT: %C.b7f: type = class_type @C, @C(%i32) [concrete] +// CHECK:STDOUT: %Inner.impl_witness.8fa: = impl_witness @D.as.Inner.impl.%Inner.impl_witness_table [concrete] +// CHECK:STDOUT: %Self.8b6: %Inner.type.5cc = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Inner.WithSelf.F.type.62d: type = fn_type @Inner.WithSelf.F, @Inner.WithSelf(%i32, %Self.656) [symbolic] +// CHECK:STDOUT: %Inner.WithSelf.F.389: %Inner.WithSelf.F.type.62d = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.assoc_type.477: type = assoc_entity_type @Inner, @Inner(%i32) [concrete] +// CHECK:STDOUT: %assoc0.7b8: %Inner.assoc_type.477 = assoc_entity element0, @Inner.WithSelf.%Inner.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %pattern_type.d8d: type = pattern_type %D [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %D.as.Inner.impl.F.type: type = fn_type @D.as.Inner.impl.F [concrete] // CHECK:STDOUT: %D.as.Inner.impl.F: %D.as.Inner.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %Inner.facet.072: %Inner.type.d1b = facet_value %D, (%Inner.impl_witness.38e) [concrete] -// CHECK:STDOUT: %Inner.WithSelf.F.type.6d5: type = fn_type @Inner.WithSelf.F, @Inner.WithSelf(%i32, %Inner.facet.072) [concrete] -// CHECK:STDOUT: %Inner.WithSelf.F.2ef: %Inner.WithSelf.F.type.6d5 = struct_value () [concrete] +// CHECK:STDOUT: %Inner.facet.45b: %Inner.type.5cc = facet_value %D, (%Inner.impl_witness.8fa) [concrete] +// CHECK:STDOUT: %Inner.WithSelf.F.type.576: type = fn_type @Inner.WithSelf.F, @Inner.WithSelf(%i32, %Inner.facet.45b) [concrete] +// CHECK:STDOUT: %Inner.WithSelf.F.adb: %Inner.WithSelf.F.type.576 = struct_value () [concrete] // CHECK:STDOUT: %Test.type: type = fn_type @Test [concrete] // CHECK:STDOUT: %Test: %Test.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %pattern_type.abe: type = pattern_type %C.525 [concrete] +// CHECK:STDOUT: %pattern_type.9d0: type = pattern_type %C.b7f [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %C.val: %C.525 = struct_value () [concrete] -// CHECK:STDOUT: %Inner.impl_witness.4a5: = impl_witness @C.as.Inner.impl.%Inner.impl_witness_table, @C.as.Inner.impl(%i32) [concrete] -// CHECK:STDOUT: %complete_type.15f: = complete_type_witness %Inner.type.d1b [concrete] -// CHECK:STDOUT: %C.as.Inner.impl.F.type.8de: type = fn_type @C.as.Inner.impl.F, @C.as.Inner.impl(%i32) [concrete] -// CHECK:STDOUT: %C.as.Inner.impl.F.40e: %C.as.Inner.impl.F.type.8de = struct_value () [concrete] -// CHECK:STDOUT: %.b2e: require_specific_def_type = require_specific_def @C.as.Inner.impl(%i32) [concrete] -// CHECK:STDOUT: %Inner.facet.51d: %Inner.type.d1b = facet_value %C.525, (%Inner.impl_witness.4a5) [concrete] -// CHECK:STDOUT: %Inner.WithSelf.F.type.8fb: type = fn_type @Inner.WithSelf.F, @Inner.WithSelf(%i32, %Inner.facet.51d) [concrete] -// CHECK:STDOUT: %Inner.WithSelf.F.723: %Inner.WithSelf.F.type.8fb = struct_value () [concrete] -// CHECK:STDOUT: %.633: type = fn_type_with_self_type %Inner.WithSelf.F.type.8fb, %Inner.facet.51d [concrete] -// CHECK:STDOUT: %C.as.Inner.impl.F.specific_fn: = specific_function %C.as.Inner.impl.F.40e, @C.as.Inner.impl.F(%i32) [concrete] +// CHECK:STDOUT: %C.val: %C.b7f = struct_value () [concrete] +// CHECK:STDOUT: %Inner.impl_witness.cdc: = impl_witness @C.as.Inner.impl.%Inner.impl_witness_table, @C.as.Inner.impl(%i32) [concrete] +// CHECK:STDOUT: %complete_type.11e: = complete_type_witness %Inner.type.5cc [concrete] +// CHECK:STDOUT: %C.as.Inner.impl.F.type.237: type = fn_type @C.as.Inner.impl.F, @C.as.Inner.impl(%i32) [concrete] +// CHECK:STDOUT: %C.as.Inner.impl.F.e77: %C.as.Inner.impl.F.type.237 = struct_value () [concrete] +// CHECK:STDOUT: %.fff: require_specific_def_type = require_specific_def @C.as.Inner.impl(%i32) [concrete] +// CHECK:STDOUT: %Inner.facet.39b: %Inner.type.5cc = facet_value %C.b7f, (%Inner.impl_witness.cdc) [concrete] +// CHECK:STDOUT: %Inner.WithSelf.F.type.a78: type = fn_type @Inner.WithSelf.F, @Inner.WithSelf(%i32, %Inner.facet.39b) [concrete] +// CHECK:STDOUT: %Inner.WithSelf.F.e60: %Inner.WithSelf.F.type.a78 = struct_value () [concrete] +// CHECK:STDOUT: %.8da: type = fn_type_with_self_type %Inner.WithSelf.F.type.a78, %Inner.facet.39b [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.790b3b.2: type = fn_type @Destroy.Op.loc23_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -540,11 +540,11 @@ fn Test() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc22 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc22 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc22: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc22: Core.Form = init_form %i32.loc22 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc22: Core.Form = init_form %i32.loc22 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -553,34 +553,34 @@ fn Test() -> i32 { // CHECK:STDOUT: generic interface @Inner(@Outer.%T.loc4_14.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T)> [symbolic = %Inner.type (constants.%Inner.type.4f1)] -// CHECK:STDOUT: %Self.loc5_19.2: @Inner.%Inner.type (%Inner.type.4f1) = symbolic_binding Self, 1 [symbolic = %Self.loc5_19.2 (constants.%Self.381)] +// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T)> [symbolic = %Inner.type (constants.%Inner.type.84b)] +// CHECK:STDOUT: %Self.loc5_19.2: @Inner.%Inner.type (%Inner.type.84b) = symbolic_binding Self, 1 [symbolic = %Self.loc5_19.2 (constants.%Self.656)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc5_19.1: @Inner.%Inner.type (%Inner.type.4f1) = symbolic_binding Self, 1 [symbolic = %Self.loc5_19.2 (constants.%Self.381)] +// CHECK:STDOUT: %Self.loc5_19.1: @Inner.%Inner.type (%Inner.type.84b) = symbolic_binding Self, 1 [symbolic = %Self.loc5_19.2 (constants.%Self.656)] // CHECK:STDOUT: %Inner.WithSelf.decl = interface_with_self_decl @Inner [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Inner.WithSelf.F.decl: @Inner.WithSelf.%Inner.WithSelf.F.type (%Inner.WithSelf.F.type.f3a) = fn_decl @Inner.WithSelf.F [symbolic = @Inner.WithSelf.%Inner.WithSelf.F (constants.%Inner.WithSelf.F.d63)] { -// CHECK:STDOUT: %self.param_patt: @Inner.WithSelf.F.%pattern_type.loc6_14 (%pattern_type.87e) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Inner.WithSelf.F.%pattern_type.loc6_14 (%pattern_type.87e) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %Inner.WithSelf.F.decl: @Inner.WithSelf.%Inner.WithSelf.F.type (%Inner.WithSelf.F.type.792) = fn_decl @Inner.WithSelf.F [symbolic = @Inner.WithSelf.%Inner.WithSelf.F (constants.%Inner.WithSelf.F.576)] { +// CHECK:STDOUT: %self.param_patt: @Inner.WithSelf.F.%pattern_type.loc6_14 (%pattern_type.397) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Inner.WithSelf.F.%pattern_type.loc6_14 (%pattern_type.397) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @Inner.WithSelf.F.%pattern_type.loc6_27 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @Inner.WithSelf.F.%pattern_type.loc6_27 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_14.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc6_27.2: Core.Form = init_form %T.ref [symbolic = %.loc6_27.1 (constants.%.184)] -// CHECK:STDOUT: %self.param: @Inner.WithSelf.F.%Self.as_type.loc6_16.1 (%Self.as_type.115) = value_param call_param0 -// CHECK:STDOUT: %.loc6_16.1: type = splice_block %.loc6_16.3 [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.115)] { -// CHECK:STDOUT: %.loc6_16.2: @Inner.WithSelf.F.%Inner.type (%Inner.type.4f1) = specific_constant @Inner.%Self.loc5_19.1, @Inner(constants.%T) [symbolic = %Self (constants.%Self.381)] -// CHECK:STDOUT: %Self.ref: @Inner.WithSelf.F.%Inner.type (%Inner.type.4f1) = name_ref Self, %.loc6_16.2 [symbolic = %Self (constants.%Self.381)] -// CHECK:STDOUT: %Self.as_type.loc6_16.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.115)] -// CHECK:STDOUT: %.loc6_16.3: type = converted %Self.ref, %Self.as_type.loc6_16.2 [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.115)] +// CHECK:STDOUT: %self.param: @Inner.WithSelf.F.%Self.as_type.loc6_16.1 (%Self.as_type.abe) = value_param call_param0 +// CHECK:STDOUT: %.loc6_16.1: type = splice_block %.loc6_16.3 [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.abe)] { +// CHECK:STDOUT: %.loc6_16.2: @Inner.WithSelf.F.%Inner.type (%Inner.type.84b) = specific_constant @Inner.%Self.loc5_19.1, @Inner(constants.%T) [symbolic = %Self (constants.%Self.656)] +// CHECK:STDOUT: %Self.ref: @Inner.WithSelf.F.%Inner.type (%Inner.type.84b) = name_ref Self, %.loc6_16.2 [symbolic = %Self (constants.%Self.656)] +// CHECK:STDOUT: %Self.as_type.loc6_16.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.abe)] +// CHECK:STDOUT: %.loc6_16.3: type = converted %Self.ref, %Self.as_type.loc6_16.2 [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.abe)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Inner.WithSelf.F.%Self.as_type.loc6_16.1 (%Self.as_type.115) = value_binding self, %self.param +// CHECK:STDOUT: %self: @Inner.WithSelf.F.%Self.as_type.loc6_16.1 (%Self.as_type.abe) = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref @Inner.WithSelf.F.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @Inner.WithSelf.F.%T (%T) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc6_28.1: @Inner.WithSelf.%Inner.assoc_type (%Inner.assoc_type.126) = assoc_entity element0, %Inner.WithSelf.F.decl [symbolic = %assoc0.loc6_28.2 (constants.%assoc0.9af)] +// CHECK:STDOUT: %assoc0.loc6_28.1: @Inner.WithSelf.%Inner.assoc_type (%Inner.assoc_type.b6b) = assoc_entity element0, %Inner.WithSelf.F.decl [symbolic = %assoc0.loc6_28.2 (constants.%assoc0.6dc)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc5_19.1 @@ -598,35 +598,35 @@ fn Test() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @C.as.Inner.impl(@Outer.%T.loc4_14.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.514)] -// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T)> [symbolic = %Inner.type (constants.%Inner.type.4f1)] -// CHECK:STDOUT: %Inner.impl_witness.loc10_19.2: = impl_witness %Inner.impl_witness_table, @C.as.Inner.impl(%T) [symbolic = %Inner.impl_witness.loc10_19.2 (constants.%Inner.impl_witness.3ba)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.7d7)] +// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T)> [symbolic = %Inner.type (constants.%Inner.type.84b)] +// CHECK:STDOUT: %Inner.impl_witness.loc10_19.2: = impl_witness %Inner.impl_witness_table, @C.as.Inner.impl(%T) [symbolic = %Inner.impl_witness.loc10_19.2 (constants.%Inner.impl_witness.d0a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Inner.type [symbolic = %require_complete (constants.%require_complete.41e)] -// CHECK:STDOUT: %C.as.Inner.impl.F.type: type = fn_type @C.as.Inner.impl.F, @C.as.Inner.impl(%T) [symbolic = %C.as.Inner.impl.F.type (constants.%C.as.Inner.impl.F.type.5c2)] -// CHECK:STDOUT: %C.as.Inner.impl.F: @C.as.Inner.impl.%C.as.Inner.impl.F.type (%C.as.Inner.impl.F.type.5c2) = struct_value () [symbolic = %C.as.Inner.impl.F (constants.%C.as.Inner.impl.F.8eb)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Inner.type [symbolic = %require_complete (constants.%require_complete.fcc)] +// CHECK:STDOUT: %C.as.Inner.impl.F.type: type = fn_type @C.as.Inner.impl.F, @C.as.Inner.impl(%T) [symbolic = %C.as.Inner.impl.F.type (constants.%C.as.Inner.impl.F.type.1ec)] +// CHECK:STDOUT: %C.as.Inner.impl.F: @C.as.Inner.impl.%C.as.Inner.impl.F.type (%C.as.Inner.impl.F.type.1ec) = struct_value () [symbolic = %C.as.Inner.impl.F (constants.%C.as.Inner.impl.F.4be)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %Self.ref as %Inner.ref { -// CHECK:STDOUT: %C.as.Inner.impl.F.decl: @C.as.Inner.impl.%C.as.Inner.impl.F.type (%C.as.Inner.impl.F.type.5c2) = fn_decl @C.as.Inner.impl.F [symbolic = @C.as.Inner.impl.%C.as.Inner.impl.F (constants.%C.as.Inner.impl.F.8eb)] { -// CHECK:STDOUT: %self.param_patt: @C.as.Inner.impl.F.%pattern_type.loc11_16 (%pattern_type.55d) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @C.as.Inner.impl.F.%pattern_type.loc11_16 (%pattern_type.55d) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %C.as.Inner.impl.F.decl: @C.as.Inner.impl.%C.as.Inner.impl.F.type (%C.as.Inner.impl.F.type.1ec) = fn_decl @C.as.Inner.impl.F [symbolic = @C.as.Inner.impl.%C.as.Inner.impl.F (constants.%C.as.Inner.impl.F.4be)] { +// CHECK:STDOUT: %self.param_patt: @C.as.Inner.impl.F.%pattern_type.loc11_16 (%pattern_type.6fd) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @C.as.Inner.impl.F.%pattern_type.loc11_16 (%pattern_type.6fd) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @C.as.Inner.impl.F.%pattern_type.loc11_26 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @C.as.Inner.impl.F.%pattern_type.loc11_26 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_14.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc11_26.3: Core.Form = init_form %T.ref [symbolic = %.loc11_26.2 (constants.%.184)] -// CHECK:STDOUT: %self.param: @C.as.Inner.impl.F.%C (%C.514) = value_param call_param0 -// CHECK:STDOUT: %.loc11_18.1: type = splice_block %C.ref [symbolic = %C (constants.%C.514)] { -// CHECK:STDOUT: %.loc11_18.2: type = specific_constant @Outer.%C.decl, @Outer(constants.%T) [symbolic = %C (constants.%C.514)] -// CHECK:STDOUT: %C.ref: type = name_ref C, %.loc11_18.2 [symbolic = %C (constants.%C.514)] +// CHECK:STDOUT: %self.param: @C.as.Inner.impl.F.%C (%C.7d7) = value_param call_param0 +// CHECK:STDOUT: %.loc11_18.1: type = splice_block %C.ref [symbolic = %C (constants.%C.7d7)] { +// CHECK:STDOUT: %.loc11_18.2: type = specific_constant @Outer.%C.decl, @Outer(constants.%T) [symbolic = %C (constants.%C.7d7)] +// CHECK:STDOUT: %C.ref: type = name_ref C, %.loc11_18.2 [symbolic = %C (constants.%C.7d7)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @C.as.Inner.impl.F.%C (%C.514) = value_binding self, %self.param +// CHECK:STDOUT: %self: @C.as.Inner.impl.F.%C (%C.7d7) = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref @C.as.Inner.impl.F.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @C.as.Inner.impl.F.%T (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Inner.impl_witness_table = impl_witness_table (%C.as.Inner.impl.F.decl), @C.as.Inner.impl [concrete] -// CHECK:STDOUT: %Inner.impl_witness.loc10_19.1: = impl_witness %Inner.impl_witness_table, @C.as.Inner.impl(constants.%T) [symbolic = %Inner.impl_witness.loc10_19.2 (constants.%Inner.impl_witness.3ba)] +// CHECK:STDOUT: %Inner.impl_witness.loc10_19.1: = impl_witness %Inner.impl_witness_table, @C.as.Inner.impl(constants.%T) [symbolic = %Inner.impl_witness.loc10_19.2 (constants.%Inner.impl_witness.d0a)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .C = @@ -640,13 +640,13 @@ fn Test() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: impl @D.as.Inner.impl: %Self.ref as %Inner.ref { // CHECK:STDOUT: %D.as.Inner.impl.F.decl: %D.as.Inner.impl.F.type = fn_decl @D.as.Inner.impl.F [concrete = constants.%D.as.Inner.impl.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.f1a = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.f1a = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.d8d = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.d8d = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc18: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc18: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %self.param: %D = value_param call_param0 // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %self: %D = value_binding self, %self.param @@ -654,7 +654,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Inner.impl_witness_table = impl_witness_table (%D.as.Inner.impl.F.decl), @D.as.Inner.impl [concrete] -// CHECK:STDOUT: %Inner.impl_witness: = impl_witness %Inner.impl_witness_table [concrete = constants.%Inner.impl_witness.38e] +// CHECK:STDOUT: %Inner.impl_witness: = impl_witness %Inner.impl_witness_table [concrete = constants.%Inner.impl_witness.8fa] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .D = @@ -667,17 +667,17 @@ fn Test() -> i32 { // CHECK:STDOUT: %T.loc4_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T.loc4_14.1)> [symbolic = %Inner.type (constants.%Inner.type.4f1)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_14.1) [symbolic = %C (constants.%C.514)] +// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T.loc4_14.1)> [symbolic = %Inner.type (constants.%Inner.type.84b)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_14.1) [symbolic = %C (constants.%C.7d7)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Inner.decl: type = interface_decl @Inner [symbolic = @Outer.%Inner.type (constants.%Inner.type.4f1)] {} {} -// CHECK:STDOUT: %C.decl: type = class_decl @C [symbolic = @Outer.%C (constants.%C.514)] {} {} +// CHECK:STDOUT: %Inner.decl: type = interface_decl @Inner [symbolic = @Outer.%Inner.type (constants.%Inner.type.84b)] {} {} +// CHECK:STDOUT: %C.decl: type = class_decl @C [symbolic = @Outer.%C (constants.%C.7d7)] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type.357] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Outer.3b5 +// CHECK:STDOUT: .Self = constants.%Outer.dee // CHECK:STDOUT: .Inner = %Inner.decl // CHECK:STDOUT: .T = // CHECK:STDOUT: .C = %C.decl @@ -689,15 +689,15 @@ fn Test() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: impl_decl @C.as.Inner.impl [concrete] {} { -// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C.514 [symbolic = %C (constants.%C.514)] -// CHECK:STDOUT: %.loc10: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.type (constants.%Inner.type.4f1)] -// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc10 [symbolic = %Inner.type (constants.%Inner.type.4f1)] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C.7d7 [symbolic = %C (constants.%C.7d7)] +// CHECK:STDOUT: %.loc10: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.type (constants.%Inner.type.84b)] +// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc10 [symbolic = %Inner.type (constants.%Inner.type.84b)] // CHECK:STDOUT: } // CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type.357] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.514 +// CHECK:STDOUT: .Self = constants.%C.7d7 // CHECK:STDOUT: .Inner = // CHECK:STDOUT: .C = // CHECK:STDOUT: .T = @@ -709,9 +709,9 @@ fn Test() -> i32 { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%D [concrete = constants.%D] // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %Outer: type = class_type @Outer, @Outer(constants.%i32) [concrete = constants.%Outer.f42] -// CHECK:STDOUT: %.loc17: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%i32) [concrete = constants.%Inner.type.d1b] -// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc17 [concrete = constants.%Inner.type.d1b] +// CHECK:STDOUT: %Outer: type = class_type @Outer, @Outer(constants.%i32) [concrete = constants.%Outer.e7c] +// CHECK:STDOUT: %.loc17: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%i32) [concrete = constants.%Inner.type.5cc] +// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc17 [concrete = constants.%Inner.type.5cc] // CHECK:STDOUT: } // CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type.357] // CHECK:STDOUT: complete_type_witness = %complete_type @@ -722,50 +722,50 @@ fn Test() -> i32 { // CHECK:STDOUT: .D = // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Inner.WithSelf.F(@Outer.%T.loc4_14.2: type, @Inner.%Self.loc5_19.1: @Inner.%Inner.type (%Inner.type.4f1)) { +// CHECK:STDOUT: generic fn @Inner.WithSelf.F(@Outer.%T.loc4_14.2: type, @Inner.%Self.loc5_19.1: @Inner.%Inner.type (%Inner.type.84b)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T)> [symbolic = %Inner.type (constants.%Inner.type.4f1)] -// CHECK:STDOUT: %Self: @Inner.WithSelf.F.%Inner.type (%Inner.type.4f1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.381)] -// CHECK:STDOUT: %Self.as_type.loc6_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.115)] -// CHECK:STDOUT: %pattern_type.loc6_14: type = pattern_type %Self.as_type.loc6_16.1 [symbolic = %pattern_type.loc6_14 (constants.%pattern_type.87e)] +// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T)> [symbolic = %Inner.type (constants.%Inner.type.84b)] +// CHECK:STDOUT: %Self: @Inner.WithSelf.F.%Inner.type (%Inner.type.84b) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.656)] +// CHECK:STDOUT: %Self.as_type.loc6_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.abe)] +// CHECK:STDOUT: %pattern_type.loc6_14: type = pattern_type %Self.as_type.loc6_16.1 [symbolic = %pattern_type.loc6_14 (constants.%pattern_type.397)] // CHECK:STDOUT: %.loc6_27.1: Core.Form = init_form %T [symbolic = %.loc6_27.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc6_27: type = pattern_type %T [symbolic = %pattern_type.loc6_27 (constants.%pattern_type.51d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Inner.WithSelf.F.%Self.as_type.loc6_16.1 (%Self.as_type.115)) -> out %return.param: @Inner.WithSelf.F.%T (%T); +// CHECK:STDOUT: fn(%self.param: @Inner.WithSelf.F.%Self.as_type.loc6_16.1 (%Self.as_type.abe)) -> out %return.param: @Inner.WithSelf.F.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @C.as.Inner.impl.F(@Outer.%T.loc4_14.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.514)] -// CHECK:STDOUT: %pattern_type.loc11_16: type = pattern_type %C [symbolic = %pattern_type.loc11_16 (constants.%pattern_type.55d)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.7d7)] +// CHECK:STDOUT: %pattern_type.loc11_16: type = pattern_type %C [symbolic = %pattern_type.loc11_16 (constants.%pattern_type.6fd)] // CHECK:STDOUT: %.loc11_26.2: Core.Form = init_form %T [symbolic = %.loc11_26.2 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc11_26: type = pattern_type %T [symbolic = %pattern_type.loc11_26 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc11_16: = require_complete_type %C [symbolic = %require_complete.loc11_16 (constants.%require_complete.d21)] +// CHECK:STDOUT: %require_complete.loc11_16: = require_complete_type %C [symbolic = %require_complete.loc11_16 (constants.%require_complete.895)] // CHECK:STDOUT: %require_complete.loc11_23: = require_complete_type %T [symbolic = %require_complete.loc11_23 (constants.%require_complete.944)] -// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T)> [symbolic = %Inner.type (constants.%Inner.type.4f1)] -// CHECK:STDOUT: %require_complete.loc11_48: = require_complete_type %Inner.type [symbolic = %require_complete.loc11_48 (constants.%require_complete.41e)] -// CHECK:STDOUT: %Inner.assoc_type: type = assoc_entity_type @Inner, @Inner(%T) [symbolic = %Inner.assoc_type (constants.%Inner.assoc_type.126)] -// CHECK:STDOUT: %assoc0: @C.as.Inner.impl.F.%Inner.assoc_type (%Inner.assoc_type.126) = assoc_entity element0, @Inner.WithSelf.%Inner.WithSelf.F.decl [symbolic = %assoc0 (constants.%assoc0.9af)] -// CHECK:STDOUT: %.loc11_41.1: require_specific_def_type = require_specific_def @C.as.Inner.impl(%T) [symbolic = %.loc11_41.1 (constants.%.f4b)] +// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T)> [symbolic = %Inner.type (constants.%Inner.type.84b)] +// CHECK:STDOUT: %require_complete.loc11_48: = require_complete_type %Inner.type [symbolic = %require_complete.loc11_48 (constants.%require_complete.fcc)] +// CHECK:STDOUT: %Inner.assoc_type: type = assoc_entity_type @Inner, @Inner(%T) [symbolic = %Inner.assoc_type (constants.%Inner.assoc_type.b6b)] +// CHECK:STDOUT: %assoc0: @C.as.Inner.impl.F.%Inner.assoc_type (%Inner.assoc_type.b6b) = assoc_entity element0, @Inner.WithSelf.%Inner.WithSelf.F.decl [symbolic = %assoc0 (constants.%assoc0.6dc)] +// CHECK:STDOUT: %.loc11_41.1: require_specific_def_type = require_specific_def @C.as.Inner.impl(%T) [symbolic = %.loc11_41.1 (constants.%.72e)] // CHECK:STDOUT: %Inner.lookup_impl_witness: = lookup_impl_witness %C, @Inner, @Inner(%T) [symbolic = %Inner.lookup_impl_witness (constants.%Inner.lookup_impl_witness)] -// CHECK:STDOUT: %Inner.facet: @C.as.Inner.impl.F.%Inner.type (%Inner.type.4f1) = facet_value %C, (%Inner.lookup_impl_witness) [symbolic = %Inner.facet (constants.%Inner.facet.629)] -// CHECK:STDOUT: %Inner.WithSelf.F.type: type = fn_type @Inner.WithSelf.F, @Inner.WithSelf(%T, %Inner.facet) [symbolic = %Inner.WithSelf.F.type (constants.%Inner.WithSelf.F.type.550)] -// CHECK:STDOUT: %.loc11_41.2: type = fn_type_with_self_type %Inner.WithSelf.F.type, %Inner.facet [symbolic = %.loc11_41.2 (constants.%.cb2)] -// CHECK:STDOUT: %impl.elem0.loc11_41.2: @C.as.Inner.impl.F.%.loc11_41.2 (%.cb2) = impl_witness_access %Inner.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_41.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %Inner.facet: @C.as.Inner.impl.F.%Inner.type (%Inner.type.84b) = facet_value %C, (%Inner.lookup_impl_witness) [symbolic = %Inner.facet (constants.%Inner.facet.8ef)] +// CHECK:STDOUT: %Inner.WithSelf.F.type: type = fn_type @Inner.WithSelf.F, @Inner.WithSelf(%T, %Inner.facet) [symbolic = %Inner.WithSelf.F.type (constants.%Inner.WithSelf.F.type.26a)] +// CHECK:STDOUT: %.loc11_41.2: type = fn_type_with_self_type %Inner.WithSelf.F.type, %Inner.facet [symbolic = %.loc11_41.2 (constants.%.35d)] +// CHECK:STDOUT: %impl.elem0.loc11_41.2: @C.as.Inner.impl.F.%.loc11_41.2 (%.35d) = impl_witness_access %Inner.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_41.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc11_41.2: = specific_impl_function %impl.elem0.loc11_41.2, @Inner.WithSelf.F(%T, %Inner.facet) [symbolic = %specific_impl_fn.loc11_41.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @C.as.Inner.impl.F.%C (%C.514)) -> out %return.param: @C.as.Inner.impl.F.%T (%T) { +// CHECK:STDOUT: fn(%self.param: @C.as.Inner.impl.F.%C (%C.7d7)) -> out %return.param: @C.as.Inner.impl.F.%T (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: @C.as.Inner.impl.F.%C (%C.514) = name_ref self, %self -// CHECK:STDOUT: %.loc11_43: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.type (constants.%Inner.type.4f1)] -// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc11_43 [symbolic = %Inner.type (constants.%Inner.type.4f1)] -// CHECK:STDOUT: %.loc11_48: @C.as.Inner.impl.F.%Inner.assoc_type (%Inner.assoc_type.126) = specific_constant @Inner.WithSelf.%assoc0.loc6_28.1, @Inner.WithSelf(constants.%T, constants.%Self.381) [symbolic = %assoc0 (constants.%assoc0.9af)] -// CHECK:STDOUT: %F.ref: @C.as.Inner.impl.F.%Inner.assoc_type (%Inner.assoc_type.126) = name_ref F, %.loc11_48 [symbolic = %assoc0 (constants.%assoc0.9af)] -// CHECK:STDOUT: %impl.elem0.loc11_41.1: @C.as.Inner.impl.F.%.loc11_41.2 (%.cb2) = impl_witness_access constants.%Inner.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_41.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %self.ref: @C.as.Inner.impl.F.%C (%C.7d7) = name_ref self, %self +// CHECK:STDOUT: %.loc11_43: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.type (constants.%Inner.type.84b)] +// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc11_43 [symbolic = %Inner.type (constants.%Inner.type.84b)] +// CHECK:STDOUT: %.loc11_48: @C.as.Inner.impl.F.%Inner.assoc_type (%Inner.assoc_type.b6b) = specific_constant @Inner.WithSelf.%assoc0.loc6_28.1, @Inner.WithSelf(constants.%T, constants.%Self.656) [symbolic = %assoc0 (constants.%assoc0.6dc)] +// CHECK:STDOUT: %F.ref: @C.as.Inner.impl.F.%Inner.assoc_type (%Inner.assoc_type.b6b) = name_ref F, %.loc11_48 [symbolic = %assoc0 (constants.%assoc0.6dc)] +// CHECK:STDOUT: %impl.elem0.loc11_41.1: @C.as.Inner.impl.F.%.loc11_41.2 (%.35d) = impl_witness_access constants.%Inner.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_41.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc11_41: = bound_method %self.ref, %impl.elem0.loc11_41.1 -// CHECK:STDOUT: %specific_impl_fn.loc11_41.1: = specific_impl_function %impl.elem0.loc11_41.1, @Inner.WithSelf.F(constants.%T, constants.%Inner.facet.629) [symbolic = %specific_impl_fn.loc11_41.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc11_41.1: = specific_impl_function %impl.elem0.loc11_41.1, @Inner.WithSelf.F(constants.%T, constants.%Inner.facet.8ef) [symbolic = %specific_impl_fn.loc11_41.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc11_52: = bound_method %self.ref, %specific_impl_fn.loc11_41.1 // CHECK:STDOUT: %.loc11_26.1: ref @C.as.Inner.impl.F.%T (%T) = splice_block %return.param {} // CHECK:STDOUT: %Inner.WithSelf.F.call: init @C.as.Inner.impl.F.%T (%T) to %.loc11_26.1 = call %bound_method.loc11_52(%self.ref) @@ -778,44 +778,44 @@ fn Test() -> i32 { // CHECK:STDOUT: fn @Test() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.abe = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.abe = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.9d0 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.9d0 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %c.var: ref %C.525 = var %c.var_patt +// CHECK:STDOUT: %c.var: ref %C.b7f = var %c.var_patt // CHECK:STDOUT: %.loc23_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc23_26.2: init %C.525 to %c.var = class_init () [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc23_3: init %C.525 = converted %.loc23_26.1, %.loc23_26.2 [concrete = constants.%C.val] +// CHECK:STDOUT: %.loc23_26.2: init %C.b7f to %c.var = class_init () [concrete = constants.%C.val] +// CHECK:STDOUT: %.loc23_3: init %C.b7f = converted %.loc23_26.1, %.loc23_26.2 [concrete = constants.%C.val] // CHECK:STDOUT: assign %c.var, %.loc23_3 -// CHECK:STDOUT: %.loc23_20.1: type = splice_block %C.ref [concrete = constants.%C.525] { +// CHECK:STDOUT: %.loc23_20.1: type = splice_block %C.ref [concrete = constants.%C.b7f] { // CHECK:STDOUT: %Outer.ref.loc23: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %i32.loc23: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %Outer.loc23: type = class_type @Outer, @Outer(constants.%i32) [concrete = constants.%Outer.f42] -// CHECK:STDOUT: %.loc23_20.2: type = specific_constant @Outer.%C.decl, @Outer(constants.%i32) [concrete = constants.%C.525] -// CHECK:STDOUT: %C.ref: type = name_ref C, %.loc23_20.2 [concrete = constants.%C.525] +// CHECK:STDOUT: %Outer.loc23: type = class_type @Outer, @Outer(constants.%i32) [concrete = constants.%Outer.e7c] +// CHECK:STDOUT: %.loc23_20.2: type = specific_constant @Outer.%C.decl, @Outer(constants.%i32) [concrete = constants.%C.b7f] +// CHECK:STDOUT: %C.ref: type = name_ref C, %.loc23_20.2 [concrete = constants.%C.b7f] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: ref %C.525 = ref_binding c, %c.var -// CHECK:STDOUT: %c.ref: ref %C.525 = name_ref c, %c +// CHECK:STDOUT: %c: ref %C.b7f = ref_binding c, %c.var +// CHECK:STDOUT: %c.ref: ref %C.b7f = name_ref c, %c // CHECK:STDOUT: %Outer.ref.loc24: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %i32.loc24: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %Outer.loc24: type = class_type @Outer, @Outer(constants.%i32) [concrete = constants.%Outer.f42] -// CHECK:STDOUT: %.loc24_23: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%i32) [concrete = constants.%Inner.type.d1b] -// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc24_23 [concrete = constants.%Inner.type.d1b] -// CHECK:STDOUT: %.loc24_29: %Inner.assoc_type.7bd = specific_constant @Inner.WithSelf.%assoc0.loc6_28.1, @Inner.WithSelf(constants.%i32, constants.%Self.381) [concrete = constants.%assoc0.c3f] -// CHECK:STDOUT: %F.ref: %Inner.assoc_type.7bd = name_ref F, %.loc24_29 [concrete = constants.%assoc0.c3f] -// CHECK:STDOUT: %impl.elem0: %.633 = impl_witness_access constants.%Inner.impl_witness.4a5, element0 [concrete = constants.%C.as.Inner.impl.F.40e] +// CHECK:STDOUT: %Outer.loc24: type = class_type @Outer, @Outer(constants.%i32) [concrete = constants.%Outer.e7c] +// CHECK:STDOUT: %.loc24_23: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%i32) [concrete = constants.%Inner.type.5cc] +// CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc24_23 [concrete = constants.%Inner.type.5cc] +// CHECK:STDOUT: %.loc24_29: %Inner.assoc_type.477 = specific_constant @Inner.WithSelf.%assoc0.loc6_28.1, @Inner.WithSelf(constants.%i32, constants.%Self.656) [concrete = constants.%assoc0.7b8] +// CHECK:STDOUT: %F.ref: %Inner.assoc_type.477 = name_ref F, %.loc24_29 [concrete = constants.%assoc0.7b8] +// CHECK:STDOUT: %impl.elem0: %.8da = impl_witness_access constants.%Inner.impl_witness.cdc, element0 [concrete = constants.%C.as.Inner.impl.F.e77] // CHECK:STDOUT: %bound_method.loc24_11: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @C.as.Inner.impl.F(constants.%i32) [concrete = constants.%C.as.Inner.impl.F.specific_fn] // CHECK:STDOUT: %bound_method.loc24_33: = bound_method %c.ref, %specific_fn -// CHECK:STDOUT: %.loc24_10: %C.525 = acquire_value %c.ref +// 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.2dd605.2 +// 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: 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: -// CHECK:STDOUT: fn @Destroy.Op.loc23_3.2(%self.param: ref %C.525) { +// CHECK:STDOUT: fn @Destroy.Op.loc23_3.2(%self.param: ref %C.b7f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -824,34 +824,34 @@ fn Test() -> i32 { // CHECK:STDOUT: %T.loc4_14.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.4f1 -// CHECK:STDOUT: %C => constants.%C.514 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.84b +// CHECK:STDOUT: %C => constants.%C.7d7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(constants.%T) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.4f1 -// CHECK:STDOUT: %Self.loc5_19.2 => constants.%Self.381 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.84b +// CHECK:STDOUT: %Self.loc5_19.2 => constants.%Self.656 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.WithSelf(constants.%T, constants.%Self.381) { +// CHECK:STDOUT: specific @Inner.WithSelf(constants.%T, constants.%Self.656) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.4f1 -// CHECK:STDOUT: %Self => constants.%Self.381 -// CHECK:STDOUT: %Inner.WithSelf.F.type => constants.%Inner.WithSelf.F.type.f3a -// CHECK:STDOUT: %Inner.WithSelf.F => constants.%Inner.WithSelf.F.d63 -// CHECK:STDOUT: %Inner.assoc_type => constants.%Inner.assoc_type.126 -// CHECK:STDOUT: %assoc0.loc6_28.2 => constants.%assoc0.9af +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.84b +// CHECK:STDOUT: %Self => constants.%Self.656 +// CHECK:STDOUT: %Inner.WithSelf.F.type => constants.%Inner.WithSelf.F.type.792 +// CHECK:STDOUT: %Inner.WithSelf.F => constants.%Inner.WithSelf.F.576 +// CHECK:STDOUT: %Inner.assoc_type => constants.%Inner.assoc_type.b6b +// CHECK:STDOUT: %assoc0.loc6_28.2 => constants.%assoc0.6dc // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.WithSelf.F(constants.%T, constants.%Self.381) { +// CHECK:STDOUT: specific @Inner.WithSelf.F(constants.%T, constants.%Self.656) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.4f1 -// CHECK:STDOUT: %Self => constants.%Self.381 -// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%Self.as_type.115 -// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.87e +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.84b +// CHECK:STDOUT: %Self => constants.%Self.656 +// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%Self.as_type.abe +// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.397 // CHECK:STDOUT: %.loc6_27.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -862,62 +862,62 @@ fn Test() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.Inner.impl(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %C => constants.%C.514 -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.4f1 -// CHECK:STDOUT: %Inner.impl_witness.loc10_19.2 => constants.%Inner.impl_witness.3ba +// CHECK:STDOUT: %C => constants.%C.7d7 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.84b +// CHECK:STDOUT: %Inner.impl_witness.loc10_19.2 => constants.%Inner.impl_witness.d0a // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.41e -// CHECK:STDOUT: %C.as.Inner.impl.F.type => constants.%C.as.Inner.impl.F.type.5c2 -// CHECK:STDOUT: %C.as.Inner.impl.F => constants.%C.as.Inner.impl.F.8eb +// CHECK:STDOUT: %require_complete => constants.%require_complete.fcc +// CHECK:STDOUT: %C.as.Inner.impl.F.type => constants.%C.as.Inner.impl.F.type.1ec +// CHECK:STDOUT: %C.as.Inner.impl.F => constants.%C.as.Inner.impl.F.4be // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.Inner.impl.F(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %C => constants.%C.514 -// CHECK:STDOUT: %pattern_type.loc11_16 => constants.%pattern_type.55d +// CHECK:STDOUT: %C => constants.%C.7d7 +// CHECK:STDOUT: %pattern_type.loc11_16 => constants.%pattern_type.6fd // CHECK:STDOUT: %.loc11_26.2 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc11_26 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.WithSelf(constants.%T, constants.%Inner.facet.b3f) { +// CHECK:STDOUT: specific @Inner.WithSelf(constants.%T, constants.%Inner.facet.285) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.4f1 -// CHECK:STDOUT: %Self => constants.%Inner.facet.b3f -// CHECK:STDOUT: %Inner.WithSelf.F.type => constants.%Inner.WithSelf.F.type.922 -// CHECK:STDOUT: %Inner.WithSelf.F => constants.%Inner.WithSelf.F.f36 -// CHECK:STDOUT: %Inner.assoc_type => constants.%Inner.assoc_type.126 -// CHECK:STDOUT: %assoc0.loc6_28.2 => constants.%assoc0.9af +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.84b +// CHECK:STDOUT: %Self => constants.%Inner.facet.285 +// CHECK:STDOUT: %Inner.WithSelf.F.type => constants.%Inner.WithSelf.F.type.b47 +// CHECK:STDOUT: %Inner.WithSelf.F => constants.%Inner.WithSelf.F.350 +// CHECK:STDOUT: %Inner.assoc_type => constants.%Inner.assoc_type.b6b +// CHECK:STDOUT: %assoc0.loc6_28.2 => constants.%assoc0.6dc // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.WithSelf.F(constants.%T, constants.%Inner.facet.b3f) { +// CHECK:STDOUT: specific @Inner.WithSelf.F(constants.%T, constants.%Inner.facet.285) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.4f1 -// CHECK:STDOUT: %Self => constants.%Inner.facet.b3f -// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%C.514 -// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.55d +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.84b +// CHECK:STDOUT: %Self => constants.%Inner.facet.285 +// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%C.7d7 +// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.6fd // CHECK:STDOUT: %.loc6_27.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.WithSelf(constants.%T, constants.%Inner.facet.629) { +// CHECK:STDOUT: specific @Inner.WithSelf(constants.%T, constants.%Inner.facet.8ef) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.4f1 -// CHECK:STDOUT: %Self => constants.%Inner.facet.629 -// CHECK:STDOUT: %Inner.WithSelf.F.type => constants.%Inner.WithSelf.F.type.550 -// CHECK:STDOUT: %Inner.WithSelf.F => constants.%Inner.WithSelf.F.b8b -// CHECK:STDOUT: %Inner.assoc_type => constants.%Inner.assoc_type.126 -// CHECK:STDOUT: %assoc0.loc6_28.2 => constants.%assoc0.9af +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.84b +// CHECK:STDOUT: %Self => constants.%Inner.facet.8ef +// CHECK:STDOUT: %Inner.WithSelf.F.type => constants.%Inner.WithSelf.F.type.26a +// CHECK:STDOUT: %Inner.WithSelf.F => constants.%Inner.WithSelf.F.3e0 +// CHECK:STDOUT: %Inner.assoc_type => constants.%Inner.assoc_type.b6b +// CHECK:STDOUT: %assoc0.loc6_28.2 => constants.%assoc0.6dc // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.WithSelf.F(constants.%T, constants.%Inner.facet.629) { +// CHECK:STDOUT: specific @Inner.WithSelf.F(constants.%T, constants.%Inner.facet.8ef) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.4f1 -// CHECK:STDOUT: %Self => constants.%Inner.facet.629 -// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%C.514 -// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.55d +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.84b +// CHECK:STDOUT: %Self => constants.%Inner.facet.8ef +// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%C.7d7 +// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.6fd // CHECK:STDOUT: %.loc6_27.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -926,106 +926,106 @@ fn Test() -> i32 { // CHECK:STDOUT: %T.loc4_14.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.d1b -// CHECK:STDOUT: %C => constants.%C.525 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.5cc +// CHECK:STDOUT: %C => constants.%C.b7f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(constants.%i32) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32 -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.d1b -// CHECK:STDOUT: %Self.loc5_19.2 => constants.%Self.693 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.5cc +// CHECK:STDOUT: %Self.loc5_19.2 => constants.%Self.8b6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%i32) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.WithSelf(constants.%i32, constants.%Self.381) { +// CHECK:STDOUT: specific @Inner.WithSelf(constants.%i32, constants.%Self.656) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32 -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.d1b -// CHECK:STDOUT: %Self => constants.%Self.381 -// CHECK:STDOUT: %Inner.WithSelf.F.type => constants.%Inner.WithSelf.F.type.cf7 -// CHECK:STDOUT: %Inner.WithSelf.F => constants.%Inner.WithSelf.F.9bb -// CHECK:STDOUT: %Inner.assoc_type => constants.%Inner.assoc_type.7bd -// CHECK:STDOUT: %assoc0.loc6_28.2 => constants.%assoc0.c3f +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.5cc +// CHECK:STDOUT: %Self => constants.%Self.656 +// CHECK:STDOUT: %Inner.WithSelf.F.type => constants.%Inner.WithSelf.F.type.62d +// CHECK:STDOUT: %Inner.WithSelf.F => constants.%Inner.WithSelf.F.389 +// CHECK:STDOUT: %Inner.assoc_type => constants.%Inner.assoc_type.477 +// CHECK:STDOUT: %assoc0.loc6_28.2 => constants.%assoc0.7b8 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.WithSelf(constants.%i32, constants.%Inner.facet.072) { +// CHECK:STDOUT: specific @Inner.WithSelf(constants.%i32, constants.%Inner.facet.45b) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32 -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.d1b -// CHECK:STDOUT: %Self => constants.%Inner.facet.072 -// CHECK:STDOUT: %Inner.WithSelf.F.type => constants.%Inner.WithSelf.F.type.6d5 -// CHECK:STDOUT: %Inner.WithSelf.F => constants.%Inner.WithSelf.F.2ef -// CHECK:STDOUT: %Inner.assoc_type => constants.%Inner.assoc_type.7bd -// CHECK:STDOUT: %assoc0.loc6_28.2 => constants.%assoc0.c3f +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.5cc +// CHECK:STDOUT: %Self => constants.%Inner.facet.45b +// CHECK:STDOUT: %Inner.WithSelf.F.type => constants.%Inner.WithSelf.F.type.576 +// CHECK:STDOUT: %Inner.WithSelf.F => constants.%Inner.WithSelf.F.adb +// CHECK:STDOUT: %Inner.assoc_type => constants.%Inner.assoc_type.477 +// CHECK:STDOUT: %assoc0.loc6_28.2 => constants.%assoc0.7b8 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.WithSelf.F(constants.%i32, constants.%Inner.facet.072) { +// CHECK:STDOUT: specific @Inner.WithSelf.F(constants.%i32, constants.%Inner.facet.45b) { // CHECK:STDOUT: %T => constants.%i32 -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.d1b -// CHECK:STDOUT: %Self => constants.%Inner.facet.072 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.5cc +// CHECK:STDOUT: %Self => constants.%Inner.facet.45b // CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%D -// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.f1a -// CHECK:STDOUT: %.loc6_27.1 => constants.%.7ea -// CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.104 +// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.d8d +// CHECK:STDOUT: %.loc6_27.1 => constants.%.795 +// CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.6b6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.Inner.impl(constants.%i32) { // CHECK:STDOUT: %T => constants.%i32 -// CHECK:STDOUT: %C => constants.%C.525 -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.d1b -// CHECK:STDOUT: %Inner.impl_witness.loc10_19.2 => constants.%Inner.impl_witness.4a5 +// CHECK:STDOUT: %C => constants.%C.b7f +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.5cc +// CHECK:STDOUT: %Inner.impl_witness.loc10_19.2 => constants.%Inner.impl_witness.cdc // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.15f -// CHECK:STDOUT: %C.as.Inner.impl.F.type => constants.%C.as.Inner.impl.F.type.8de -// CHECK:STDOUT: %C.as.Inner.impl.F => constants.%C.as.Inner.impl.F.40e +// CHECK:STDOUT: %require_complete => constants.%complete_type.11e +// CHECK:STDOUT: %C.as.Inner.impl.F.type => constants.%C.as.Inner.impl.F.type.237 +// CHECK:STDOUT: %C.as.Inner.impl.F => constants.%C.as.Inner.impl.F.e77 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.WithSelf(constants.%i32, constants.%Inner.facet.51d) { +// CHECK:STDOUT: specific @Inner.WithSelf(constants.%i32, constants.%Inner.facet.39b) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32 -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.d1b -// CHECK:STDOUT: %Self => constants.%Inner.facet.51d -// CHECK:STDOUT: %Inner.WithSelf.F.type => constants.%Inner.WithSelf.F.type.8fb -// CHECK:STDOUT: %Inner.WithSelf.F => constants.%Inner.WithSelf.F.723 -// CHECK:STDOUT: %Inner.assoc_type => constants.%Inner.assoc_type.7bd -// CHECK:STDOUT: %assoc0.loc6_28.2 => constants.%assoc0.c3f +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.5cc +// CHECK:STDOUT: %Self => constants.%Inner.facet.39b +// CHECK:STDOUT: %Inner.WithSelf.F.type => constants.%Inner.WithSelf.F.type.a78 +// CHECK:STDOUT: %Inner.WithSelf.F => constants.%Inner.WithSelf.F.e60 +// CHECK:STDOUT: %Inner.assoc_type => constants.%Inner.assoc_type.477 +// CHECK:STDOUT: %assoc0.loc6_28.2 => constants.%assoc0.7b8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.Inner.impl.F(constants.%i32) { // CHECK:STDOUT: %T => constants.%i32 -// CHECK:STDOUT: %C => constants.%C.525 -// CHECK:STDOUT: %pattern_type.loc11_16 => constants.%pattern_type.abe -// CHECK:STDOUT: %.loc11_26.2 => constants.%.7ea -// CHECK:STDOUT: %pattern_type.loc11_26 => constants.%pattern_type.104 +// CHECK:STDOUT: %C => constants.%C.b7f +// CHECK:STDOUT: %pattern_type.loc11_16 => constants.%pattern_type.9d0 +// CHECK:STDOUT: %.loc11_26.2 => constants.%.795 +// CHECK:STDOUT: %pattern_type.loc11_26 => constants.%pattern_type.6b6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc11_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc11_23 => constants.%complete_type.f8a -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.d1b -// CHECK:STDOUT: %require_complete.loc11_48 => constants.%complete_type.15f -// CHECK:STDOUT: %Inner.assoc_type => constants.%Inner.assoc_type.7bd -// CHECK:STDOUT: %assoc0 => constants.%assoc0.c3f -// CHECK:STDOUT: %.loc11_41.1 => constants.%.b2e -// CHECK:STDOUT: %Inner.lookup_impl_witness => constants.%Inner.impl_witness.4a5 -// CHECK:STDOUT: %Inner.facet => constants.%Inner.facet.51d -// CHECK:STDOUT: %Inner.WithSelf.F.type => constants.%Inner.WithSelf.F.type.8fb -// CHECK:STDOUT: %.loc11_41.2 => constants.%.633 -// CHECK:STDOUT: %impl.elem0.loc11_41.2 => constants.%C.as.Inner.impl.F.40e +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.5cc +// CHECK:STDOUT: %require_complete.loc11_48 => constants.%complete_type.11e +// CHECK:STDOUT: %Inner.assoc_type => constants.%Inner.assoc_type.477 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.7b8 +// CHECK:STDOUT: %.loc11_41.1 => constants.%.fff +// CHECK:STDOUT: %Inner.lookup_impl_witness => constants.%Inner.impl_witness.cdc +// CHECK:STDOUT: %Inner.facet => constants.%Inner.facet.39b +// CHECK:STDOUT: %Inner.WithSelf.F.type => constants.%Inner.WithSelf.F.type.a78 +// CHECK:STDOUT: %.loc11_41.2 => constants.%.8da +// CHECK:STDOUT: %impl.elem0.loc11_41.2 => constants.%C.as.Inner.impl.F.e77 // CHECK:STDOUT: %specific_impl_fn.loc11_41.2 => constants.%C.as.Inner.impl.F.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.WithSelf.F(constants.%i32, constants.%Inner.facet.51d) { +// CHECK:STDOUT: specific @Inner.WithSelf.F(constants.%i32, constants.%Inner.facet.39b) { // CHECK:STDOUT: %T => constants.%i32 -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.d1b -// CHECK:STDOUT: %Self => constants.%Inner.facet.51d -// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%C.525 -// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.abe -// CHECK:STDOUT: %.loc6_27.1 => constants.%.7ea -// CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.104 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.5cc +// CHECK:STDOUT: %Self => constants.%Inner.facet.39b +// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%C.b7f +// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.9d0 +// CHECK:STDOUT: %.loc6_27.1 => constants.%.795 +// CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.6b6 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/method_deduce.carbon b/toolchain/check/testdata/class/generic/method_deduce.carbon index cf4c22ff4b8b..706a8e9ff703 100644 --- a/toolchain/check/testdata/class/generic/method_deduce.carbon +++ b/toolchain/check/testdata/class/generic/method_deduce.carbon @@ -42,47 +42,47 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] -// CHECK:STDOUT: %Class.e25: type = class_type @Class, @Class(%T) [symbolic] +// CHECK:STDOUT: %Class.7bc: type = class_type @Class, @Class(%T) [symbolic] // CHECK:STDOUT: %U: type = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %tuple.4b9: %tuple.type.24b = tuple_value (%T, %U) [symbolic] // CHECK:STDOUT: %tuple.type.a5e: type = tuple_type (%T, %U) [symbolic] // CHECK:STDOUT: %.f18: Core.Form = init_form %tuple.type.a5e [symbolic] // CHECK:STDOUT: %pattern_type.eee: type = pattern_type %tuple.type.a5e [symbolic] -// CHECK:STDOUT: %Class.Get.type.3ba: type = fn_type @Class.Get, @Class(%T) [symbolic] -// CHECK:STDOUT: %Class.Get.b24: %Class.Get.type.3ba = struct_value () [symbolic] +// CHECK:STDOUT: %Class.Get.type.49d: type = fn_type @Class.Get, @Class(%T) [symbolic] +// CHECK:STDOUT: %Class.Get.ceb: %Class.Get.type.49d = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %Class.GetNoDeduce.type.0d0: type = fn_type @Class.GetNoDeduce, @Class(%T) [symbolic] -// CHECK:STDOUT: %Class.GetNoDeduce.c56: %Class.GetNoDeduce.type.0d0 = struct_value () [symbolic] +// CHECK:STDOUT: %Class.GetNoDeduce.type.83e: type = fn_type @Class.GetNoDeduce, @Class(%T) [symbolic] +// CHECK:STDOUT: %Class.GetNoDeduce.a04: %Class.GetNoDeduce.type.83e = struct_value () [symbolic] // CHECK:STDOUT: %require_complete.220: = require_complete_type %tuple.type.a5e [symbolic] -// CHECK:STDOUT: %Class.Get.specific_fn.567: = specific_function %Class.Get.b24, @Class.Get(%T, %U) [symbolic] +// CHECK:STDOUT: %Class.Get.specific_fn.ba5: = specific_function %Class.Get.ceb, @Class.Get(%T, %U) [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %Class.GetNoDeduce.specific_fn.2a2: = specific_function %Class.GetNoDeduce.c56, @Class.GetNoDeduce(%T, %U) [symbolic] -// CHECK:STDOUT: %Class.34e: type = class_type @Class, @Class(%A) [concrete] -// CHECK:STDOUT: %pattern_type.b13: type = pattern_type %Class.34e [concrete] -// CHECK:STDOUT: %tuple.9a7: %tuple.type.24b = tuple_value (%A, %B) [concrete] -// CHECK:STDOUT: %tuple.type.e74: type = tuple_type (%A, %B) [concrete] -// CHECK:STDOUT: %.210: Core.Form = init_form %tuple.type.e74 [concrete] -// CHECK:STDOUT: %pattern_type.498: type = pattern_type %tuple.type.e74 [concrete] +// CHECK:STDOUT: %Class.GetNoDeduce.specific_fn.def: = specific_function %Class.GetNoDeduce.a04, @Class.GetNoDeduce(%T, %U) [symbolic] +// CHECK:STDOUT: %Class.30a: type = class_type @Class, @Class(%A) [concrete] +// CHECK:STDOUT: %pattern_type.89e: type = pattern_type %Class.30a [concrete] +// CHECK:STDOUT: %tuple.9aa: %tuple.type.24b = tuple_value (%A, %B) [concrete] +// CHECK:STDOUT: %tuple.type.1e7: type = tuple_type (%A, %B) [concrete] +// CHECK:STDOUT: %.7f5: Core.Form = init_form %tuple.type.1e7 [concrete] +// CHECK:STDOUT: %pattern_type.7c6: type = pattern_type %tuple.type.1e7 [concrete] // CHECK:STDOUT: %CallGenericMethod.type: type = fn_type @CallGenericMethod [concrete] // CHECK:STDOUT: %CallGenericMethod: %CallGenericMethod.type = struct_value () [concrete] -// CHECK:STDOUT: %Class.Get.type.bb5: type = fn_type @Class.Get, @Class(%A) [concrete] -// CHECK:STDOUT: %Class.Get.0b1: %Class.Get.type.bb5 = struct_value () [concrete] -// CHECK:STDOUT: %Class.GetNoDeduce.type.f19: type = fn_type @Class.GetNoDeduce, @Class(%A) [concrete] -// CHECK:STDOUT: %Class.GetNoDeduce.61c: %Class.GetNoDeduce.type.f19 = struct_value () [concrete] -// CHECK:STDOUT: %Class.Get.specific_fn.c6e: = specific_function %Class.Get.0b1, @Class.Get(%A, %B) [concrete] +// CHECK:STDOUT: %Class.Get.type.9a5: type = fn_type @Class.Get, @Class(%A) [concrete] +// CHECK:STDOUT: %Class.Get.e47: %Class.Get.type.9a5 = struct_value () [concrete] +// CHECK:STDOUT: %Class.GetNoDeduce.type.7e9: type = fn_type @Class.GetNoDeduce, @Class(%A) [concrete] +// CHECK:STDOUT: %Class.GetNoDeduce.c1e: %Class.GetNoDeduce.type.7e9 = struct_value () [concrete] +// CHECK:STDOUT: %Class.Get.specific_fn.0ec: = specific_function %Class.Get.e47, @Class.Get(%A, %B) [concrete] // CHECK:STDOUT: %CallGenericMethodWithNonDeducedParam.type: type = fn_type @CallGenericMethodWithNonDeducedParam [concrete] // CHECK:STDOUT: %CallGenericMethodWithNonDeducedParam: %CallGenericMethodWithNonDeducedParam.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] -// CHECK:STDOUT: %Class.GetNoDeduce.specific_fn.b1e: = specific_function %Class.GetNoDeduce.61c, @Class.GetNoDeduce(%A, %B) [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] +// CHECK:STDOUT: %Class.GetNoDeduce.specific_fn.931: = specific_function %Class.GetNoDeduce.c1e, @Class.GetNoDeduce(%A, %B) [concrete] // CHECK:STDOUT: %A.val: %A = struct_value () [concrete] -// CHECK:STDOUT: %.e61: ref %A = temporary invalid, %A.val [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.790b3b.2: type = fn_type @Destroy.Op.loc28_25.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e61, %Destroy.Op.2dd605.2 [concrete] -// CHECK:STDOUT: %complete_type.25e: = complete_type_witness %tuple.type.e74 [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc28_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: %complete_type.c44: = complete_type_witness %tuple.type.1e7 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -116,46 +116,46 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %T.loc18_14.2: type = symbolic_binding T, 0 [symbolic = %T.loc18_14.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericMethod.decl: %CallGenericMethod.type = fn_decl @CallGenericMethod [concrete = constants.%CallGenericMethod] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.b13 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.b13 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.498 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.498 = return_slot_pattern %return.param_patt, %.loc23_43.3 [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.89e = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.89e = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c6 = return_slot_pattern %return.param_patt, %.loc23_43.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref.loc23_39: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %B.ref.loc23: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %.loc23_43.2: %tuple.type.24b = tuple_literal (%A.ref.loc23_39, %B.ref.loc23) [concrete = constants.%tuple.9a7] -// CHECK:STDOUT: %.loc23_43.3: type = converted %.loc23_43.2, constants.%tuple.type.e74 [concrete = constants.%tuple.type.e74] -// CHECK:STDOUT: %.loc23_43.4: Core.Form = init_form %.loc23_43.3 [concrete = constants.%.210] -// CHECK:STDOUT: %c.param: %Class.34e = value_param call_param0 -// CHECK:STDOUT: %.loc23_32: type = splice_block %Class [concrete = constants.%Class.34e] { +// CHECK:STDOUT: %.loc23_43.2: %tuple.type.24b = tuple_literal (%A.ref.loc23_39, %B.ref.loc23) [concrete = constants.%tuple.9aa] +// CHECK:STDOUT: %.loc23_43.3: type = converted %.loc23_43.2, constants.%tuple.type.1e7 [concrete = constants.%tuple.type.1e7] +// CHECK:STDOUT: %.loc23_43.4: Core.Form = init_form %.loc23_43.3 [concrete = constants.%.7f5] +// CHECK:STDOUT: %c.param: %Class.30a = value_param call_param0 +// CHECK:STDOUT: %.loc23_32: type = splice_block %Class [concrete = constants.%Class.30a] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] // CHECK:STDOUT: %A.ref.loc23_31: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%A) [concrete = constants.%Class.34e] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%A) [concrete = constants.%Class.30a] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %Class.34e = value_binding c, %c.param -// CHECK:STDOUT: %return.param: ref %tuple.type.e74 = out_param call_param1 -// CHECK:STDOUT: %return: ref %tuple.type.e74 = return_slot %return.param +// CHECK:STDOUT: %c: %Class.30a = value_binding c, %c.param +// CHECK:STDOUT: %return.param: ref %tuple.type.1e7 = out_param call_param1 +// CHECK:STDOUT: %return: ref %tuple.type.1e7 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericMethodWithNonDeducedParam.decl: %CallGenericMethodWithNonDeducedParam.type = fn_decl @CallGenericMethodWithNonDeducedParam [concrete = constants.%CallGenericMethodWithNonDeducedParam] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.b13 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.b13 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.498 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.498 = return_slot_pattern %return.param_patt, %.loc27_62.3 [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.89e = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.89e = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7c6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7c6 = return_slot_pattern %return.param_patt, %.loc27_62.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref.loc27_58: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %B.ref.loc27: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %.loc27_62.2: %tuple.type.24b = tuple_literal (%A.ref.loc27_58, %B.ref.loc27) [concrete = constants.%tuple.9a7] -// CHECK:STDOUT: %.loc27_62.3: type = converted %.loc27_62.2, constants.%tuple.type.e74 [concrete = constants.%tuple.type.e74] -// CHECK:STDOUT: %.loc27_62.4: Core.Form = init_form %.loc27_62.3 [concrete = constants.%.210] -// CHECK:STDOUT: %c.param: %Class.34e = value_param call_param0 -// CHECK:STDOUT: %.loc27_51: type = splice_block %Class [concrete = constants.%Class.34e] { +// CHECK:STDOUT: %.loc27_62.2: %tuple.type.24b = tuple_literal (%A.ref.loc27_58, %B.ref.loc27) [concrete = constants.%tuple.9aa] +// CHECK:STDOUT: %.loc27_62.3: type = converted %.loc27_62.2, constants.%tuple.type.1e7 [concrete = constants.%tuple.type.1e7] +// CHECK:STDOUT: %.loc27_62.4: Core.Form = init_form %.loc27_62.3 [concrete = constants.%.7f5] +// CHECK:STDOUT: %c.param: %Class.30a = value_param call_param0 +// CHECK:STDOUT: %.loc27_51: type = splice_block %Class [concrete = constants.%Class.30a] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] // CHECK:STDOUT: %A.ref.loc27_50: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%A) [concrete = constants.%Class.34e] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(constants.%A) [concrete = constants.%Class.30a] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %Class.34e = value_binding c, %c.param -// CHECK:STDOUT: %return.param: ref %tuple.type.e74 = out_param call_param1 -// CHECK:STDOUT: %return: ref %tuple.type.e74 = return_slot %return.param +// CHECK:STDOUT: %c: %Class.30a = value_binding c, %c.param +// CHECK:STDOUT: %return.param: ref %tuple.type.1e7 = out_param call_param1 +// CHECK:STDOUT: %return: ref %tuple.type.1e7 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -179,13 +179,13 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %T.loc18_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc18_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Class.Get.type: type = fn_type @Class.Get, @Class(%T.loc18_14.1) [symbolic = %Class.Get.type (constants.%Class.Get.type.3ba)] -// CHECK:STDOUT: %Class.Get: @Class.%Class.Get.type (%Class.Get.type.3ba) = struct_value () [symbolic = %Class.Get (constants.%Class.Get.b24)] -// CHECK:STDOUT: %Class.GetNoDeduce.type: type = fn_type @Class.GetNoDeduce, @Class(%T.loc18_14.1) [symbolic = %Class.GetNoDeduce.type (constants.%Class.GetNoDeduce.type.0d0)] -// CHECK:STDOUT: %Class.GetNoDeduce: @Class.%Class.GetNoDeduce.type (%Class.GetNoDeduce.type.0d0) = struct_value () [symbolic = %Class.GetNoDeduce (constants.%Class.GetNoDeduce.c56)] +// CHECK:STDOUT: %Class.Get.type: type = fn_type @Class.Get, @Class(%T.loc18_14.1) [symbolic = %Class.Get.type (constants.%Class.Get.type.49d)] +// CHECK:STDOUT: %Class.Get: @Class.%Class.Get.type (%Class.Get.type.49d) = struct_value () [symbolic = %Class.Get (constants.%Class.Get.ceb)] +// CHECK:STDOUT: %Class.GetNoDeduce.type: type = fn_type @Class.GetNoDeduce, @Class(%T.loc18_14.1) [symbolic = %Class.GetNoDeduce.type (constants.%Class.GetNoDeduce.type.83e)] +// CHECK:STDOUT: %Class.GetNoDeduce: @Class.%Class.GetNoDeduce.type (%Class.GetNoDeduce.type.83e) = struct_value () [symbolic = %Class.GetNoDeduce (constants.%Class.GetNoDeduce.a04)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Class.Get.decl: @Class.%Class.Get.type (%Class.Get.type.3ba) = fn_decl @Class.Get [symbolic = @Class.%Class.Get (constants.%Class.Get.b24)] { +// CHECK:STDOUT: %Class.Get.decl: @Class.%Class.Get.type (%Class.Get.type.49d) = fn_decl @Class.Get [symbolic = @Class.%Class.Get (constants.%Class.Get.ceb)] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: %return.param_patt: @Class.Get.%pattern_type (%pattern_type.eee) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @Class.Get.%pattern_type (%pattern_type.eee) = return_slot_pattern %return.param_patt, %.loc19_28.4 [concrete] @@ -203,7 +203,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %return.param: ref @Class.Get.%tuple.type (%tuple.type.a5e) = out_param call_param0 // CHECK:STDOUT: %return: ref @Class.Get.%tuple.type (%tuple.type.a5e) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Class.GetNoDeduce.decl: @Class.%Class.GetNoDeduce.type (%Class.GetNoDeduce.type.0d0) = fn_decl @Class.GetNoDeduce [symbolic = @Class.%Class.GetNoDeduce (constants.%Class.GetNoDeduce.c56)] { +// CHECK:STDOUT: %Class.GetNoDeduce.decl: @Class.%Class.GetNoDeduce.type (%Class.GetNoDeduce.type.83e) = fn_decl @Class.GetNoDeduce [symbolic = @Class.%Class.GetNoDeduce (constants.%Class.GetNoDeduce.a04)] { // CHECK:STDOUT: %x.param_patt: @Class.GetNoDeduce.%pattern_type.loc20_19 (%pattern_type.51d) = value_param_pattern [concrete] // CHECK:STDOUT: %x.patt: @Class.GetNoDeduce.%pattern_type.loc20_19 (%pattern_type.51d) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] @@ -230,7 +230,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Class.e25 +// CHECK:STDOUT: .Self = constants.%Class.7bc // CHECK:STDOUT: .T = // CHECK:STDOUT: .Get = %Class.Get.decl // CHECK:STDOUT: .GetNoDeduce = %Class.GetNoDeduce.decl @@ -247,16 +247,16 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %tuple.type [symbolic = %require_complete (constants.%require_complete.220)] -// CHECK:STDOUT: %Class.Get.type: type = fn_type @Class.Get, @Class(%T) [symbolic = %Class.Get.type (constants.%Class.Get.type.3ba)] -// CHECK:STDOUT: %Class.Get: @Class.Get.%Class.Get.type (%Class.Get.type.3ba) = struct_value () [symbolic = %Class.Get (constants.%Class.Get.b24)] -// CHECK:STDOUT: %Class.Get.specific_fn.loc19_39.2: = specific_function %Class.Get, @Class.Get(%T, %U.loc19_11.1) [symbolic = %Class.Get.specific_fn.loc19_39.2 (constants.%Class.Get.specific_fn.567)] +// CHECK:STDOUT: %Class.Get.type: type = fn_type @Class.Get, @Class(%T) [symbolic = %Class.Get.type (constants.%Class.Get.type.49d)] +// CHECK:STDOUT: %Class.Get: @Class.Get.%Class.Get.type (%Class.Get.type.49d) = struct_value () [symbolic = %Class.Get (constants.%Class.Get.ceb)] +// CHECK:STDOUT: %Class.Get.specific_fn.loc19_39.2: = specific_function %Class.Get, @Class.Get(%T, %U.loc19_11.1) [symbolic = %Class.Get.specific_fn.loc19_39.2 (constants.%Class.Get.specific_fn.ba5)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: @Class.Get.%tuple.type (%tuple.type.a5e) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc19_39: @Class.Get.%Class.Get.type (%Class.Get.type.3ba) = specific_constant @Class.%Class.Get.decl, @Class(constants.%T) [symbolic = %Class.Get (constants.%Class.Get.b24)] -// CHECK:STDOUT: %Get.ref: @Class.Get.%Class.Get.type (%Class.Get.type.3ba) = name_ref Get, %.loc19_39 [symbolic = %Class.Get (constants.%Class.Get.b24)] +// CHECK:STDOUT: %.loc19_39: @Class.Get.%Class.Get.type (%Class.Get.type.49d) = specific_constant @Class.%Class.Get.decl, @Class(constants.%T) [symbolic = %Class.Get (constants.%Class.Get.ceb)] +// CHECK:STDOUT: %Get.ref: @Class.Get.%Class.Get.type (%Class.Get.type.49d) = name_ref Get, %.loc19_39 [symbolic = %Class.Get (constants.%Class.Get.ceb)] // CHECK:STDOUT: %U.ref.loc19_43: type = name_ref U, %U.loc19_11.2 [symbolic = %U.loc19_11.1 (constants.%U)] -// CHECK:STDOUT: %Class.Get.specific_fn.loc19_39.1: = specific_function %Get.ref, @Class.Get(constants.%T, constants.%U) [symbolic = %Class.Get.specific_fn.loc19_39.2 (constants.%Class.Get.specific_fn.567)] +// CHECK:STDOUT: %Class.Get.specific_fn.loc19_39.1: = specific_function %Get.ref, @Class.Get(constants.%T, constants.%U) [symbolic = %Class.Get.specific_fn.loc19_39.2 (constants.%Class.Get.specific_fn.ba5)] // CHECK:STDOUT: %.loc19_28.1: ref @Class.Get.%tuple.type (%tuple.type.a5e) = splice_block %return.param {} // CHECK:STDOUT: %Class.Get.call: init @Class.Get.%tuple.type (%tuple.type.a5e) to %.loc19_28.1 = call %Class.Get.specific_fn.loc19_39.1() // CHECK:STDOUT: return %Class.Get.call to %return.param @@ -274,51 +274,51 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic = %require_complete (constants.%require_complete.944)] -// CHECK:STDOUT: %Class.GetNoDeduce.type: type = fn_type @Class.GetNoDeduce, @Class(%T) [symbolic = %Class.GetNoDeduce.type (constants.%Class.GetNoDeduce.type.0d0)] -// CHECK:STDOUT: %Class.GetNoDeduce: @Class.GetNoDeduce.%Class.GetNoDeduce.type (%Class.GetNoDeduce.type.0d0) = struct_value () [symbolic = %Class.GetNoDeduce (constants.%Class.GetNoDeduce.c56)] -// CHECK:STDOUT: %Class.GetNoDeduce.specific_fn.loc20_53.2: = specific_function %Class.GetNoDeduce, @Class.GetNoDeduce(%T, %U.loc20_25.1) [symbolic = %Class.GetNoDeduce.specific_fn.loc20_53.2 (constants.%Class.GetNoDeduce.specific_fn.2a2)] +// CHECK:STDOUT: %Class.GetNoDeduce.type: type = fn_type @Class.GetNoDeduce, @Class(%T) [symbolic = %Class.GetNoDeduce.type (constants.%Class.GetNoDeduce.type.83e)] +// CHECK:STDOUT: %Class.GetNoDeduce: @Class.GetNoDeduce.%Class.GetNoDeduce.type (%Class.GetNoDeduce.type.83e) = struct_value () [symbolic = %Class.GetNoDeduce (constants.%Class.GetNoDeduce.a04)] +// CHECK:STDOUT: %Class.GetNoDeduce.specific_fn.loc20_53.2: = specific_function %Class.GetNoDeduce, @Class.GetNoDeduce(%T, %U.loc20_25.1) [symbolic = %Class.GetNoDeduce.specific_fn.loc20_53.2 (constants.%Class.GetNoDeduce.specific_fn.def)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @Class.GetNoDeduce.%T (%T)) -> out %return.param: @Class.GetNoDeduce.%tuple.type (%tuple.type.a5e) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc20_53: @Class.GetNoDeduce.%Class.GetNoDeduce.type (%Class.GetNoDeduce.type.0d0) = specific_constant @Class.%Class.GetNoDeduce.decl, @Class(constants.%T) [symbolic = %Class.GetNoDeduce (constants.%Class.GetNoDeduce.c56)] -// CHECK:STDOUT: %GetNoDeduce.ref: @Class.GetNoDeduce.%Class.GetNoDeduce.type (%Class.GetNoDeduce.type.0d0) = name_ref GetNoDeduce, %.loc20_53 [symbolic = %Class.GetNoDeduce (constants.%Class.GetNoDeduce.c56)] +// CHECK:STDOUT: %.loc20_53: @Class.GetNoDeduce.%Class.GetNoDeduce.type (%Class.GetNoDeduce.type.83e) = specific_constant @Class.%Class.GetNoDeduce.decl, @Class(constants.%T) [symbolic = %Class.GetNoDeduce (constants.%Class.GetNoDeduce.a04)] +// CHECK:STDOUT: %GetNoDeduce.ref: @Class.GetNoDeduce.%Class.GetNoDeduce.type (%Class.GetNoDeduce.type.83e) = name_ref GetNoDeduce, %.loc20_53 [symbolic = %Class.GetNoDeduce (constants.%Class.GetNoDeduce.a04)] // CHECK:STDOUT: %x.ref: @Class.GetNoDeduce.%T (%T) = name_ref x, %x // CHECK:STDOUT: %U.ref.loc20_68: type = name_ref U, %U.loc20_25.2 [symbolic = %U.loc20_25.1 (constants.%U)] -// CHECK:STDOUT: %Class.GetNoDeduce.specific_fn.loc20_53.1: = specific_function %GetNoDeduce.ref, @Class.GetNoDeduce(constants.%T, constants.%U) [symbolic = %Class.GetNoDeduce.specific_fn.loc20_53.2 (constants.%Class.GetNoDeduce.specific_fn.2a2)] +// CHECK:STDOUT: %Class.GetNoDeduce.specific_fn.loc20_53.1: = specific_function %GetNoDeduce.ref, @Class.GetNoDeduce(constants.%T, constants.%U) [symbolic = %Class.GetNoDeduce.specific_fn.loc20_53.2 (constants.%Class.GetNoDeduce.specific_fn.def)] // CHECK:STDOUT: %.loc20_42.1: ref @Class.GetNoDeduce.%tuple.type (%tuple.type.a5e) = splice_block %return.param {} // CHECK:STDOUT: %Class.GetNoDeduce.call: init @Class.GetNoDeduce.%tuple.type (%tuple.type.a5e) to %.loc20_42.1 = call %Class.GetNoDeduce.specific_fn.loc20_53.1(%x.ref) // CHECK:STDOUT: return %Class.GetNoDeduce.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallGenericMethod(%c.param: %Class.34e) -> out %return.param: %tuple.type.e74 { +// CHECK:STDOUT: fn @CallGenericMethod(%c.param: %Class.30a) -> out %return.param: %tuple.type.1e7 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: %Class.34e = name_ref c, %c -// CHECK:STDOUT: %.loc24: %Class.Get.type.bb5 = specific_constant @Class.%Class.Get.decl, @Class(constants.%A) [concrete = constants.%Class.Get.0b1] -// CHECK:STDOUT: %Get.ref: %Class.Get.type.bb5 = name_ref Get, %.loc24 [concrete = constants.%Class.Get.0b1] +// CHECK:STDOUT: %c.ref: %Class.30a = name_ref c, %c +// CHECK:STDOUT: %.loc24: %Class.Get.type.9a5 = specific_constant @Class.%Class.Get.decl, @Class(constants.%A) [concrete = constants.%Class.Get.e47] +// CHECK:STDOUT: %Get.ref: %Class.Get.type.9a5 = name_ref Get, %.loc24 [concrete = constants.%Class.Get.e47] // CHECK:STDOUT: %B.ref.loc24: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %Class.Get.specific_fn: = specific_function %Get.ref, @Class.Get(constants.%A, constants.%B) [concrete = constants.%Class.Get.specific_fn.c6e] -// CHECK:STDOUT: %.loc23_43.1: ref %tuple.type.e74 = splice_block %return.param {} -// CHECK:STDOUT: %Class.Get.call: init %tuple.type.e74 to %.loc23_43.1 = call %Class.Get.specific_fn() +// CHECK:STDOUT: %Class.Get.specific_fn: = specific_function %Get.ref, @Class.Get(constants.%A, constants.%B) [concrete = constants.%Class.Get.specific_fn.0ec] +// CHECK:STDOUT: %.loc23_43.1: ref %tuple.type.1e7 = splice_block %return.param {} +// CHECK:STDOUT: %Class.Get.call: init %tuple.type.1e7 to %.loc23_43.1 = call %Class.Get.specific_fn() // CHECK:STDOUT: return %Class.Get.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallGenericMethodWithNonDeducedParam(%c.param: %Class.34e) -> out %return.param: %tuple.type.e74 { +// CHECK:STDOUT: fn @CallGenericMethodWithNonDeducedParam(%c.param: %Class.30a) -> out %return.param: %tuple.type.1e7 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: %Class.34e = name_ref c, %c -// CHECK:STDOUT: %.loc28_11: %Class.GetNoDeduce.type.f19 = specific_constant @Class.%Class.GetNoDeduce.decl, @Class(constants.%A) [concrete = constants.%Class.GetNoDeduce.61c] -// CHECK:STDOUT: %GetNoDeduce.ref: %Class.GetNoDeduce.type.f19 = name_ref GetNoDeduce, %.loc28_11 [concrete = constants.%Class.GetNoDeduce.61c] +// CHECK:STDOUT: %c.ref: %Class.30a = name_ref c, %c +// CHECK:STDOUT: %.loc28_11: %Class.GetNoDeduce.type.7e9 = specific_constant @Class.%Class.GetNoDeduce.decl, @Class(constants.%A) [concrete = constants.%Class.GetNoDeduce.c1e] +// CHECK:STDOUT: %GetNoDeduce.ref: %Class.GetNoDeduce.type.7e9 = name_ref GetNoDeduce, %.loc28_11 [concrete = constants.%Class.GetNoDeduce.c1e] // CHECK:STDOUT: %.loc28_25.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %B.ref.loc28: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %Class.GetNoDeduce.specific_fn: = specific_function %GetNoDeduce.ref, @Class.GetNoDeduce(constants.%A, constants.%B) [concrete = constants.%Class.GetNoDeduce.specific_fn.b1e] -// CHECK:STDOUT: %.loc27_62.1: ref %tuple.type.e74 = splice_block %return.param {} +// CHECK:STDOUT: %Class.GetNoDeduce.specific_fn: = specific_function %GetNoDeduce.ref, @Class.GetNoDeduce(constants.%A, constants.%B) [concrete = constants.%Class.GetNoDeduce.specific_fn.931] +// CHECK:STDOUT: %.loc27_62.1: ref %tuple.type.1e7 = splice_block %return.param {} // CHECK:STDOUT: %.loc28_25.2: ref %A = temporary_storage // CHECK:STDOUT: %.loc28_25.3: init %A to %.loc28_25.2 = class_init () [concrete = constants.%A.val] // CHECK:STDOUT: %.loc28_25.4: init %A = converted %.loc28_25.1, %.loc28_25.3 [concrete = constants.%A.val] -// CHECK:STDOUT: %.loc28_25.5: ref %A = temporary %.loc28_25.2, %.loc28_25.4 [concrete = constants.%.e61] +// CHECK:STDOUT: %.loc28_25.5: ref %A = temporary %.loc28_25.2, %.loc28_25.4 [concrete = constants.%.367] // CHECK:STDOUT: %.loc28_25.6: %A = acquire_value %.loc28_25.5 [concrete = constants.%A.val] -// CHECK:STDOUT: %Class.GetNoDeduce.call: init %tuple.type.e74 to %.loc27_62.1 = call %Class.GetNoDeduce.specific_fn(%.loc28_25.6) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.e61) +// CHECK:STDOUT: %Class.GetNoDeduce.call: init %tuple.type.1e7 to %.loc27_62.1 = call %Class.GetNoDeduce.specific_fn(%.loc28_25.6) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.367) // CHECK:STDOUT: return %Class.GetNoDeduce.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: @@ -333,10 +333,10 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %T.loc18_14.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Class.Get.type => constants.%Class.Get.type.3ba -// CHECK:STDOUT: %Class.Get => constants.%Class.Get.b24 -// CHECK:STDOUT: %Class.GetNoDeduce.type => constants.%Class.GetNoDeduce.type.0d0 -// CHECK:STDOUT: %Class.GetNoDeduce => constants.%Class.GetNoDeduce.c56 +// CHECK:STDOUT: %Class.Get.type => constants.%Class.Get.type.49d +// CHECK:STDOUT: %Class.Get => constants.%Class.Get.ceb +// CHECK:STDOUT: %Class.GetNoDeduce.type => constants.%Class.GetNoDeduce.type.83e +// CHECK:STDOUT: %Class.GetNoDeduce => constants.%Class.GetNoDeduce.a04 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.Get(constants.%T, constants.%U) { @@ -349,9 +349,9 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.220 -// CHECK:STDOUT: %Class.Get.type => constants.%Class.Get.type.3ba -// CHECK:STDOUT: %Class.Get => constants.%Class.Get.b24 -// CHECK:STDOUT: %Class.Get.specific_fn.loc19_39.2 => constants.%Class.Get.specific_fn.567 +// CHECK:STDOUT: %Class.Get.type => constants.%Class.Get.type.49d +// CHECK:STDOUT: %Class.Get => constants.%Class.Get.ceb +// CHECK:STDOUT: %Class.Get.specific_fn.loc19_39.2 => constants.%Class.Get.specific_fn.ba5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.GetNoDeduce(constants.%T, constants.%U) { @@ -365,49 +365,49 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.944 -// CHECK:STDOUT: %Class.GetNoDeduce.type => constants.%Class.GetNoDeduce.type.0d0 -// CHECK:STDOUT: %Class.GetNoDeduce => constants.%Class.GetNoDeduce.c56 -// CHECK:STDOUT: %Class.GetNoDeduce.specific_fn.loc20_53.2 => constants.%Class.GetNoDeduce.specific_fn.2a2 +// CHECK:STDOUT: %Class.GetNoDeduce.type => constants.%Class.GetNoDeduce.type.83e +// CHECK:STDOUT: %Class.GetNoDeduce => constants.%Class.GetNoDeduce.a04 +// CHECK:STDOUT: %Class.GetNoDeduce.specific_fn.loc20_53.2 => constants.%Class.GetNoDeduce.specific_fn.def // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%A) { // CHECK:STDOUT: %T.loc18_14.1 => constants.%A // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Class.Get.type => constants.%Class.Get.type.bb5 -// CHECK:STDOUT: %Class.Get => constants.%Class.Get.0b1 -// CHECK:STDOUT: %Class.GetNoDeduce.type => constants.%Class.GetNoDeduce.type.f19 -// CHECK:STDOUT: %Class.GetNoDeduce => constants.%Class.GetNoDeduce.61c +// CHECK:STDOUT: %Class.Get.type => constants.%Class.Get.type.9a5 +// CHECK:STDOUT: %Class.Get => constants.%Class.Get.e47 +// CHECK:STDOUT: %Class.GetNoDeduce.type => constants.%Class.GetNoDeduce.type.7e9 +// CHECK:STDOUT: %Class.GetNoDeduce => constants.%Class.GetNoDeduce.c1e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.Get(constants.%A, constants.%B) { // CHECK:STDOUT: %U.loc19_11.1 => constants.%B // CHECK:STDOUT: %T => constants.%A -// CHECK:STDOUT: %tuple => constants.%tuple.9a7 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.e74 -// CHECK:STDOUT: %.loc19_28.2 => constants.%.210 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.498 +// CHECK:STDOUT: %tuple => constants.%tuple.9aa +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.1e7 +// CHECK:STDOUT: %.loc19_28.2 => constants.%.7f5 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7c6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.25e -// CHECK:STDOUT: %Class.Get.type => constants.%Class.Get.type.bb5 -// CHECK:STDOUT: %Class.Get => constants.%Class.Get.0b1 -// CHECK:STDOUT: %Class.Get.specific_fn.loc19_39.2 => constants.%Class.Get.specific_fn.c6e +// CHECK:STDOUT: %require_complete => constants.%complete_type.c44 +// CHECK:STDOUT: %Class.Get.type => constants.%Class.Get.type.9a5 +// CHECK:STDOUT: %Class.Get => constants.%Class.Get.e47 +// CHECK:STDOUT: %Class.Get.specific_fn.loc19_39.2 => constants.%Class.Get.specific_fn.0ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.GetNoDeduce(constants.%A, constants.%B) { // CHECK:STDOUT: %T => constants.%A -// CHECK:STDOUT: %pattern_type.loc20_19 => constants.%pattern_type.ccb +// CHECK:STDOUT: %pattern_type.loc20_19 => constants.%pattern_type.9ef // CHECK:STDOUT: %U.loc20_25.1 => constants.%B -// CHECK:STDOUT: %tuple => constants.%tuple.9a7 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.e74 -// CHECK:STDOUT: %.loc20_42.2 => constants.%.210 -// CHECK:STDOUT: %pattern_type.loc20_42 => constants.%pattern_type.498 +// CHECK:STDOUT: %tuple => constants.%tuple.9aa +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.1e7 +// CHECK:STDOUT: %.loc20_42.2 => constants.%.7f5 +// CHECK:STDOUT: %pattern_type.loc20_42 => constants.%pattern_type.7c6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.357 -// CHECK:STDOUT: %Class.GetNoDeduce.type => constants.%Class.GetNoDeduce.type.f19 -// CHECK:STDOUT: %Class.GetNoDeduce => constants.%Class.GetNoDeduce.61c -// CHECK:STDOUT: %Class.GetNoDeduce.specific_fn.loc20_53.2 => constants.%Class.GetNoDeduce.specific_fn.b1e +// CHECK:STDOUT: %Class.GetNoDeduce.type => constants.%Class.GetNoDeduce.type.7e9 +// CHECK:STDOUT: %Class.GetNoDeduce => constants.%Class.GetNoDeduce.c1e +// CHECK:STDOUT: %Class.GetNoDeduce.specific_fn.loc20_53.2 => constants.%Class.GetNoDeduce.specific_fn.931 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/redeclare.carbon b/toolchain/check/testdata/class/generic/redeclare.carbon index 96d9bc64f41b..391acd6b7505 100644 --- a/toolchain/check/testdata/class/generic/redeclare.carbon +++ b/toolchain/check/testdata/class/generic/redeclare.carbon @@ -165,14 +165,14 @@ class E(U:! type) {} // CHECK:STDOUT: --- fail_mismatch_param_list.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %A.895: type = class_type @A.loc4 [concrete] +// CHECK:STDOUT: %A.5a2: type = class_type @A.loc4 [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %A.type: type = generic_class_type @A.loc12 [concrete] // CHECK:STDOUT: %A.generic: %A.type = struct_value () [concrete] -// CHECK:STDOUT: %A.6ed: type = class_type @A.loc12, @A.loc12(%T) [symbolic] +// CHECK:STDOUT: %A.47a: type = class_type @A.loc12, @A.loc12(%T) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -190,7 +190,7 @@ class E(U:! type) {} // CHECK:STDOUT: .A = %A.decl.loc4 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %A.decl.loc4: type = class_decl @A.loc4 [concrete = constants.%A.895] {} {} +// CHECK:STDOUT: %A.decl.loc4: type = class_decl @A.loc4 [concrete = constants.%A.5a2] {} {} // CHECK:STDOUT: %A.decl.loc12: %A.type = class_decl @A.loc12 [concrete = constants.%A.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { @@ -214,7 +214,7 @@ class E(U:! type) {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%A.6ed +// CHECK:STDOUT: .Self = constants.%A.47a // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -230,17 +230,17 @@ class E(U:! type) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] -// CHECK:STDOUT: %N.9fa: %A = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %B.type.8c3028.1: type = generic_class_type @B.loc6 [concrete] -// CHECK:STDOUT: %B.generic.cc25e6.1: %B.type.8c3028.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] +// CHECK:STDOUT: %N.37f: %A = symbolic_binding N, 0 [symbolic] +// CHECK:STDOUT: %B.type.7937a9.1: type = generic_class_type @B.loc6 [concrete] +// CHECK:STDOUT: %B.generic.60ca48.1: %B.type.7937a9.1 = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] // CHECK:STDOUT: %N.bd9: %T = symbolic_binding N, 1 [symbolic] -// CHECK:STDOUT: %B.type.8c3028.2: type = generic_class_type @B.loc14 [concrete] -// CHECK:STDOUT: %B.generic.cc25e6.2: %B.type.8c3028.2 = struct_value () [concrete] -// CHECK:STDOUT: %B.510: type = class_type @B.loc14, @B.loc14(%T, %N.bd9) [symbolic] +// CHECK:STDOUT: %B.type.7937a9.2: type = generic_class_type @B.loc14 [concrete] +// CHECK:STDOUT: %B.generic.60ca48.2: %B.type.7937a9.2 = struct_value () [concrete] +// CHECK:STDOUT: %B.2b1: type = class_type @B.loc14, @B.loc14(%T, %N.bd9) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -258,16 +258,16 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {} -// CHECK:STDOUT: %B.decl.loc6: %B.type.8c3028.1 = class_decl @B.loc6 [concrete = constants.%B.generic.cc25e6.1] { -// CHECK:STDOUT: %N.patt: %pattern_type.ccb = symbolic_binding_pattern N, 0 [concrete] +// CHECK:STDOUT: %B.decl.loc6: %B.type.7937a9.1 = class_decl @B.loc6 [concrete = constants.%B.generic.60ca48.1] { +// CHECK:STDOUT: %N.patt: %pattern_type.9ef = symbolic_binding_pattern N, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6: type = splice_block %A.ref [concrete = constants.%A] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc6_10.2: %A = symbolic_binding N, 0 [symbolic = %N.loc6_10.1 (constants.%N.9fa)] +// CHECK:STDOUT: %N.loc6_10.2: %A = symbolic_binding N, 0 [symbolic = %N.loc6_10.1 (constants.%N.37f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %B.decl.loc14: %B.type.8c3028.2 = class_decl @B.loc14 [concrete = constants.%B.generic.cc25e6.2] { +// CHECK:STDOUT: %B.decl.loc14: %B.type.7937a9.2 = class_decl @B.loc14 [concrete = constants.%B.generic.60ca48.2] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %N.patt: @B.loc14.%pattern_type (%pattern_type.51d) = symbolic_binding_pattern N, 1 [concrete] // CHECK:STDOUT: } { @@ -293,7 +293,7 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @B.loc6(%N.loc6_10.2: %A) { -// CHECK:STDOUT: %N.loc6_10.1: %A = symbolic_binding N, 0 [symbolic = %N.loc6_10.1 (constants.%N.9fa)] +// CHECK:STDOUT: %N.loc6_10.1: %A = symbolic_binding N, 0 [symbolic = %N.loc6_10.1 (constants.%N.37f)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } @@ -310,12 +310,12 @@ class E(U:! type) {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%B.510 +// CHECK:STDOUT: .Self = constants.%B.2b1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @B.loc6(constants.%N.9fa) { -// CHECK:STDOUT: %N.loc6_10.1 => constants.%N.9fa +// CHECK:STDOUT: specific @B.loc6(constants.%N.37f) { +// CHECK:STDOUT: %N.loc6_10.1 => constants.%N.37f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @B.loc14(constants.%T, constants.%N.bd9) { @@ -334,13 +334,13 @@ class E(U:! type) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %C.type.6471b2.1: type = generic_class_type @C.loc6 [concrete] -// CHECK:STDOUT: %C.generic.d80214.1: %C.type.6471b2.1 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] +// CHECK:STDOUT: %C.type.a601fe.1: type = generic_class_type @C.loc6 [concrete] +// CHECK:STDOUT: %C.generic.4b4597.1: %C.type.a601fe.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] // CHECK:STDOUT: %U: %A = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %C.type.6471b2.2: type = generic_class_type @C.loc14 [concrete] -// CHECK:STDOUT: %C.generic.d80214.2: %C.type.6471b2.2 = struct_value () [concrete] -// CHECK:STDOUT: %C.24f: type = class_type @C.loc14, @C.loc14(%T, %U) [symbolic] +// CHECK:STDOUT: %C.type.a601fe.2: type = generic_class_type @C.loc14 [concrete] +// CHECK:STDOUT: %C.generic.4b4597.2: %C.type.a601fe.2 = struct_value () [concrete] +// CHECK:STDOUT: %C.394: type = class_type @C.loc14, @C.loc14(%T, %U) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -358,7 +358,7 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {} -// CHECK:STDOUT: %C.decl.loc6: %C.type.6471b2.1 = class_decl @C.loc6 [concrete = constants.%C.generic.d80214.1] { +// CHECK:STDOUT: %C.decl.loc6: %C.type.a601fe.1 = class_decl @C.loc6 [concrete = constants.%C.generic.4b4597.1] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6_13.1: type = splice_block %.loc6_13.2 [concrete = type] { @@ -367,9 +367,9 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc6_10.2: type = symbolic_binding T, 0 [symbolic = %T.loc6_10.1 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %C.decl.loc14: %C.type.6471b2.2 = class_decl @C.loc14 [concrete = constants.%C.generic.d80214.2] { +// CHECK:STDOUT: %C.decl.loc14: %C.type.a601fe.2 = class_decl @C.loc14 [concrete = constants.%C.generic.4b4597.2] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %U.patt: %pattern_type.ccb = symbolic_binding_pattern U, 1 [concrete] +// CHECK:STDOUT: %U.patt: %pattern_type.9ef = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14_13.1: type = splice_block %.loc14_13.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc14_10: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -409,7 +409,7 @@ class E(U:! type) {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.24f +// CHECK:STDOUT: .Self = constants.%C.394 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -432,13 +432,13 @@ class E(U:! type) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %D.type.2fde6d.1: type = generic_class_type @D.loc6 [concrete] -// CHECK:STDOUT: %D.generic.820c89.1: %D.type.2fde6d.1 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] -// CHECK:STDOUT: %T.9fa: %A = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %D.type.2fde6d.2: type = generic_class_type @D.loc14 [concrete] -// CHECK:STDOUT: %D.generic.820c89.2: %D.type.2fde6d.2 = struct_value () [concrete] -// CHECK:STDOUT: %D.eb9: type = class_type @D.loc14, @D.loc14(%T.9fa) [symbolic] +// CHECK:STDOUT: %D.type.ff75f2.1: type = generic_class_type @D.loc6 [concrete] +// CHECK:STDOUT: %D.generic.7223e9.1: %D.type.ff75f2.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] +// CHECK:STDOUT: %T.37f: %A = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %D.type.ff75f2.2: type = generic_class_type @D.loc14 [concrete] +// CHECK:STDOUT: %D.generic.7223e9.2: %D.type.ff75f2.2 = struct_value () [concrete] +// CHECK:STDOUT: %D.ad0: type = class_type @D.loc14, @D.loc14(%T.37f) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -456,7 +456,7 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {} -// CHECK:STDOUT: %D.decl.loc6: %D.type.2fde6d.1 = class_decl @D.loc6 [concrete = constants.%D.generic.820c89.1] { +// CHECK:STDOUT: %D.decl.loc6: %D.type.ff75f2.1 = class_decl @D.loc6 [concrete = constants.%D.generic.7223e9.1] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6_13.1: type = splice_block %.loc6_13.2 [concrete = type] { @@ -465,14 +465,14 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc6_10.2: type = symbolic_binding T, 0 [symbolic = %T.loc6_10.1 (constants.%T.67d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %D.decl.loc14: %D.type.2fde6d.2 = class_decl @D.loc14 [concrete = constants.%D.generic.820c89.2] { -// CHECK:STDOUT: %T.patt: %pattern_type.ccb = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %D.decl.loc14: %D.type.ff75f2.2 = class_decl @D.loc14 [concrete = constants.%D.generic.7223e9.2] { +// CHECK:STDOUT: %T.patt: %pattern_type.9ef = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14: type = splice_block %A.ref [concrete = constants.%A] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc14_10.2: %A = symbolic_binding T, 0 [symbolic = %T.loc14_10.1 (constants.%T.9fa)] +// CHECK:STDOUT: %T.loc14_10.2: %A = symbolic_binding T, 0 [symbolic = %T.loc14_10.1 (constants.%T.37f)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -491,7 +491,7 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @D.loc14(%T.loc14_10.2: %A) { -// CHECK:STDOUT: %T.loc14_10.1: %A = symbolic_binding T, 0 [symbolic = %T.loc14_10.1 (constants.%T.9fa)] +// CHECK:STDOUT: %T.loc14_10.1: %A = symbolic_binding T, 0 [symbolic = %T.loc14_10.1 (constants.%T.37f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -500,7 +500,7 @@ class E(U:! type) {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%D.eb9 +// CHECK:STDOUT: .Self = constants.%D.ad0 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -508,8 +508,8 @@ class E(U:! type) {} // CHECK:STDOUT: %T.loc6_10.1 => constants.%T.67d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @D.loc14(constants.%T.9fa) { -// CHECK:STDOUT: %T.loc14_10.1 => constants.%T.9fa +// CHECK:STDOUT: specific @D.loc14(constants.%T.37f) { +// CHECK:STDOUT: %T.loc14_10.1 => constants.%T.37f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch_param_name.carbon @@ -519,12 +519,12 @@ class E(U:! type) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %E.type.a48856.1: type = generic_class_type @E.loc4 [concrete] -// CHECK:STDOUT: %E.generic.0bcbc8.1: %E.type.a48856.1 = struct_value () [concrete] +// CHECK:STDOUT: %E.type.0b1ef1.1: type = generic_class_type @E.loc4 [concrete] +// CHECK:STDOUT: %E.generic.5469ef.1: %E.type.0b1ef1.1 = struct_value () [concrete] // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %E.type.a48856.2: type = generic_class_type @E.loc12 [concrete] -// CHECK:STDOUT: %E.generic.0bcbc8.2: %E.type.a48856.2 = struct_value () [concrete] -// CHECK:STDOUT: %E.44ccac.2: type = class_type @E.loc12, @E.loc12(%U) [symbolic] +// CHECK:STDOUT: %E.type.0b1ef1.2: type = generic_class_type @E.loc12 [concrete] +// CHECK:STDOUT: %E.generic.5469ef.2: %E.type.0b1ef1.2 = struct_value () [concrete] +// CHECK:STDOUT: %E.7de02e.2: type = class_type @E.loc12, @E.loc12(%U) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -542,7 +542,7 @@ class E(U:! type) {} // CHECK:STDOUT: .E = %E.decl.loc4 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %E.decl.loc4: %E.type.a48856.1 = class_decl @E.loc4 [concrete = constants.%E.generic.0bcbc8.1] { +// CHECK:STDOUT: %E.decl.loc4: %E.type.0b1ef1.1 = class_decl @E.loc4 [concrete = constants.%E.generic.5469ef.1] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_13.1: type = splice_block %.loc4_13.2 [concrete = type] { @@ -551,7 +551,7 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc4_10.2: type = symbolic_binding T, 0 [symbolic = %T.loc4_10.1 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %E.decl.loc12: %E.type.a48856.2 = class_decl @E.loc12 [concrete = constants.%E.generic.0bcbc8.2] { +// CHECK:STDOUT: %E.decl.loc12: %E.type.0b1ef1.2 = class_decl @E.loc12 [concrete = constants.%E.generic.5469ef.2] { // CHECK:STDOUT: %U.patt: %pattern_type = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc12_13.1: type = splice_block %.loc12_13.2 [concrete = type] { @@ -578,7 +578,7 @@ class E(U:! type) {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%E.44ccac.2 +// CHECK:STDOUT: .Self = constants.%E.7de02e.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/self.carbon b/toolchain/check/testdata/class/generic/self.carbon index 620746ecb5f0..3e46c94b6221 100644 --- a/toolchain/check/testdata/class/generic/self.carbon +++ b/toolchain/check/testdata/class/generic/self.carbon @@ -34,8 +34,8 @@ class Class(T:! type) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic] -// CHECK:STDOUT: %.188: Core.Form = init_form %Class [symbolic] -// CHECK:STDOUT: %pattern_type.f8f: type = pattern_type %Class [symbolic] +// CHECK:STDOUT: %.030: Core.Form = init_form %Class [symbolic] +// CHECK:STDOUT: %pattern_type.36e: type = pattern_type %Class [symbolic] // CHECK:STDOUT: %Class.MakeSelf.type: type = fn_type @Class.MakeSelf, @Class(%T) [symbolic] // CHECK:STDOUT: %Class.MakeSelf: %Class.MakeSelf.type = struct_value () [symbolic] // CHECK:STDOUT: %Class.MakeClass.type: type = fn_type @Class.MakeClass, @Class(%T) [symbolic] @@ -51,11 +51,11 @@ class Class(T:! type) { // CHECK:STDOUT: %Class.MakeClass.specific_fn: = specific_function %Class.MakeClass, @Class.MakeClass(%T) [symbolic] // 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.856: %Destroy.type = facet_value %Class, (%Destroy.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.81d: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.856) [symbolic] -// CHECK:STDOUT: %.350: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.81d, %Destroy.facet.856 [symbolic] -// CHECK:STDOUT: %impl.elem0: %.350 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op(%Destroy.facet.856) [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: %.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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -97,23 +97,23 @@ class Class(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Class.MakeSelf.decl: @Class.%Class.MakeSelf.type (%Class.MakeSelf.type) = fn_decl @Class.MakeSelf [symbolic = @Class.%Class.MakeSelf (constants.%Class.MakeSelf)] { -// CHECK:STDOUT: %return.param_patt: @Class.MakeSelf.%pattern_type (%pattern_type.f8f) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.MakeSelf.%pattern_type (%pattern_type.f8f) = return_slot_pattern %return.param_patt, %Self.ref [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.MakeSelf.%pattern_type (%pattern_type.36e) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.MakeSelf.%pattern_type (%pattern_type.36e) = return_slot_pattern %return.param_patt, %Self.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc18_20.2: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc18_20.2 [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %.loc18_20.3: Core.Form = init_form %Self.ref [symbolic = %.loc18_20.1 (constants.%.188)] +// CHECK:STDOUT: %.loc18_20.3: Core.Form = init_form %Self.ref [symbolic = %.loc18_20.1 (constants.%.030)] // CHECK:STDOUT: %return.param: ref @Class.MakeSelf.%Class (%Class) = out_param call_param0 // CHECK:STDOUT: %return: ref @Class.MakeSelf.%Class (%Class) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Class.MakeClass.decl: @Class.%Class.MakeClass.type (%Class.MakeClass.type) = fn_decl @Class.MakeClass [symbolic = @Class.%Class.MakeClass (constants.%Class.MakeClass)] { -// CHECK:STDOUT: %return.param_patt: @Class.MakeClass.%pattern_type (%pattern_type.f8f) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.MakeClass.%pattern_type (%pattern_type.f8f) = return_slot_pattern %return.param_patt, %Class.loc19_28.2 [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.MakeClass.%pattern_type (%pattern_type.36e) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.MakeClass.%pattern_type (%pattern_type.36e) = return_slot_pattern %return.param_patt, %Class.loc19_28.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc15_14.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Class.loc19_28.2: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc19_28.1 (constants.%Class)] -// CHECK:STDOUT: %.loc19_28.2: Core.Form = init_form %Class.loc19_28.2 [symbolic = %.loc19_28.1 (constants.%.188)] +// CHECK:STDOUT: %.loc19_28.2: Core.Form = init_form %Class.loc19_28.2 [symbolic = %.loc19_28.1 (constants.%.030)] // CHECK:STDOUT: %return.param: ref @Class.MakeClass.%Class.loc19_28.1 (%Class) = out_param call_param0 // CHECK:STDOUT: %return: ref @Class.MakeClass.%Class.loc19_28.1 (%Class) = return_slot %return.param // CHECK:STDOUT: } @@ -134,8 +134,8 @@ class Class(T:! type) { // CHECK:STDOUT: generic fn @Class.MakeSelf(@Class.%T.loc15_14.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %.loc18_20.1: Core.Form = init_form %Class [symbolic = %.loc18_20.1 (constants.%.188)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Class [symbolic = %pattern_type (constants.%pattern_type.f8f)] +// CHECK:STDOUT: %.loc18_20.1: Core.Form = init_form %Class [symbolic = %.loc18_20.1 (constants.%.030)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Class [symbolic = %pattern_type (constants.%pattern_type.36e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %Class [symbolic = %require_complete (constants.%require_complete)] @@ -153,8 +153,8 @@ class Class(T:! type) { // CHECK:STDOUT: generic fn @Class.MakeClass(@Class.%T.loc15_14.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Class.loc19_28.1: type = class_type @Class, @Class(%T) [symbolic = %Class.loc19_28.1 (constants.%Class)] -// CHECK:STDOUT: %.loc19_28.1: Core.Form = init_form %Class.loc19_28.1 [symbolic = %.loc19_28.1 (constants.%.188)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Class.loc19_28.1 [symbolic = %pattern_type (constants.%pattern_type.f8f)] +// CHECK:STDOUT: %.loc19_28.1: Core.Form = init_form %Class.loc19_28.1 [symbolic = %.loc19_28.1 (constants.%.030)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Class.loc19_28.1 [symbolic = %pattern_type (constants.%pattern_type.36e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %Class.loc19_28.1 [symbolic = %require_complete (constants.%require_complete)] @@ -174,7 +174,7 @@ class Class(T:! type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Class.loc21_26.2: type = class_type @Class, @Class(%T) [symbolic = %Class.loc21_26.2 (constants.%Class)] // CHECK:STDOUT: %require_complete: = require_complete_type %Class.loc21_26.2 [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Class.loc21_26.2 [symbolic = %pattern_type (constants.%pattern_type.f8f)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Class.loc21_26.2 [symbolic = %pattern_type (constants.%pattern_type.36e)] // CHECK:STDOUT: %Class.MakeSelf.type: type = fn_type @Class.MakeSelf, @Class(%T) [symbolic = %Class.MakeSelf.type (constants.%Class.MakeSelf.type)] // CHECK:STDOUT: %Class.MakeSelf: @Class.F.%Class.MakeSelf.type (%Class.MakeSelf.type) = struct_value () [symbolic = %Class.MakeSelf (constants.%Class.MakeSelf)] // CHECK:STDOUT: %Class.MakeSelf.specific_fn.loc21_30.2: = specific_function %Class.MakeSelf, @Class.MakeSelf(%T) [symbolic = %Class.MakeSelf.specific_fn.loc21_30.2 (constants.%Class.MakeSelf.specific_fn)] @@ -182,17 +182,17 @@ class Class(T:! type) { // CHECK:STDOUT: %Class.MakeClass: @Class.F.%Class.MakeClass.type (%Class.MakeClass.type) = struct_value () [symbolic = %Class.MakeClass (constants.%Class.MakeClass)] // CHECK:STDOUT: %Class.MakeClass.specific_fn.loc22_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: %Destroy.type = facet_value %Class.loc21_26.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.856)] -// 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.81d)] -// CHECK:STDOUT: %.loc22_5.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc22_5.2 (constants.%.350)] -// CHECK:STDOUT: %impl.elem0.loc22_5.2: @Class.F.%.loc22_5.2 (%.350) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_5.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class.loc21_26.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.86d)] +// 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.297)] +// CHECK:STDOUT: %.loc22_5.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc22_5.2 (constants.%.73f)] +// CHECK:STDOUT: %impl.elem0.loc22_5.2: @Class.F.%.loc22_5.2 (%.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) [symbolic = %specific_impl_fn.loc22_5.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: @Class.F.%pattern_type (%pattern_type.f8f) = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: @Class.F.%pattern_type (%pattern_type.f8f) = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: @Class.F.%pattern_type (%pattern_type.36e) = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: @Class.F.%pattern_type (%pattern_type.36e) = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref @Class.F.%Class.loc21_26.2 (%Class) = var %c.var_patt // CHECK:STDOUT: %.loc21_30: @Class.F.%Class.MakeSelf.type (%Class.MakeSelf.type) = specific_constant @Class.%Class.MakeSelf.decl, @Class(constants.%T) [symbolic = %Class.MakeSelf (constants.%Class.MakeSelf)] @@ -208,8 +208,8 @@ class Class(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %c: ref @Class.F.%Class.loc21_26.2 (%Class) = ref_binding c, %c.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: @Class.F.%pattern_type (%pattern_type.f8f) = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: @Class.F.%pattern_type (%pattern_type.f8f) = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: @Class.F.%pattern_type (%pattern_type.36e) = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: @Class.F.%pattern_type (%pattern_type.36e) = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref @Class.F.%Class.loc21_26.2 (%Class) = var %s.var_patt // CHECK:STDOUT: %.loc22_26: @Class.F.%Class.MakeClass.type (%Class.MakeClass.type) = specific_constant @Class.%Class.MakeClass.decl, @Class(constants.%T) [symbolic = %Class.MakeClass (constants.%Class.MakeClass)] @@ -223,14 +223,14 @@ class Class(T:! type) { // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc22_19.2 [symbolic = %Class.loc21_26.2 (constants.%Class)] // CHECK:STDOUT: } // CHECK:STDOUT: %s: ref @Class.F.%Class.loc21_26.2 (%Class) = ref_binding s, %s.var -// CHECK:STDOUT: %impl.elem0.loc22_5.1: @Class.F.%.loc22_5.2 (%.350) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_5.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc22_5.1: @Class.F.%.loc22_5.2 (%.73f) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_5.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %s.var, %impl.elem0.loc22_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc22_5.1: = specific_impl_function %impl.elem0.loc22_5.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.856) [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(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.2 (%.350) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_5.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc21: @Class.F.%.loc22_5.2 (%.73f) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_5.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %c.var, %impl.elem0.loc21 -// CHECK:STDOUT: %specific_impl_fn.loc21: = specific_impl_function %impl.elem0.loc21, @Destroy.WithSelf.Op(constants.%Destroy.facet.856) [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(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 @@ -254,8 +254,8 @@ class Class(T:! type) { // CHECK:STDOUT: specific @Class.MakeSelf(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Class => constants.%Class -// CHECK:STDOUT: %.loc18_20.1 => constants.%.188 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f8f +// CHECK:STDOUT: %.loc18_20.1 => constants.%.030 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.36e // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete @@ -265,8 +265,8 @@ class Class(T:! type) { // CHECK:STDOUT: specific @Class.MakeClass(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Class.loc19_28.1 => constants.%Class -// CHECK:STDOUT: %.loc19_28.1 => constants.%.188 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f8f +// CHECK:STDOUT: %.loc19_28.1 => constants.%.030 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.36e // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete diff --git a/toolchain/check/testdata/class/generic/stringify.carbon b/toolchain/check/testdata/class/generic/stringify.carbon index 45ee91d6ff40..9e6bb48b5c08 100644 --- a/toolchain/check/testdata/class/generic/stringify.carbon +++ b/toolchain/check/testdata/class/generic/stringify.carbon @@ -94,19 +94,19 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %EmptyParams.type: type = generic_class_type @EmptyParams [concrete] // CHECK:STDOUT: %EmptyParams.generic: %EmptyParams.type = struct_value () [concrete] // CHECK:STDOUT: %EmptyParams: type = class_type @EmptyParams [concrete] -// CHECK:STDOUT: %pattern_type.da8: type = pattern_type %NoParams [concrete] +// CHECK:STDOUT: %pattern_type.c07: type = pattern_type %NoParams [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.a13: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%NoParams) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.299: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%NoParams) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.cfc: %T.as.DefaultOrUnformed.impl.Op.type.299 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %NoParams, (%DefaultOrUnformed.impl_witness.a13) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.cfc, @T.as.DefaultOrUnformed.impl.Op(%NoParams) [concrete] -// CHECK:STDOUT: %pattern_type.72b: type = pattern_type %EmptyParams [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.1d3: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%NoParams) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.273: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%NoParams) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.c14: %T.as.DefaultOrUnformed.impl.Op.type.273 = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %NoParams, (%DefaultOrUnformed.impl_witness.1d3) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.c14, @T.as.DefaultOrUnformed.impl.Op(%NoParams) [concrete] +// CHECK:STDOUT: %pattern_type.c83: type = pattern_type %EmptyParams [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -117,9 +117,9 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -134,15 +134,15 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %NoParams.decl: type = class_decl @NoParams [concrete = constants.%NoParams] {} {} // CHECK:STDOUT: %EmptyParams.decl: %EmptyParams.type = class_decl @EmptyParams [concrete = constants.%EmptyParams.generic] {} {} // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.da8 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.da8 = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.c07 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.c07 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %NoParams = var %v.var_patt [concrete] // CHECK:STDOUT: %NoParams.ref: type = name_ref NoParams, %NoParams.decl [concrete = constants.%NoParams] // CHECK:STDOUT: %v: ref %NoParams = ref_binding v, %v.var [concrete = %v.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %w.patt: %pattern_type.72b = ref_binding_pattern w [concrete] -// CHECK:STDOUT: %w.var_patt: %pattern_type.72b = var_pattern %w.patt [concrete] +// CHECK:STDOUT: %w.patt: %pattern_type.c83 = ref_binding_pattern w [concrete] +// CHECK:STDOUT: %w.var_patt: %pattern_type.c83 = var_pattern %w.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %w.var: ref %EmptyParams = var %w.var_patt [concrete] // CHECK:STDOUT: %.loc15: type = splice_block %EmptyParams [concrete = constants.%EmptyParams] { @@ -170,11 +170,11 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%NoParams, (constants.%DefaultOrUnformed.impl_witness.a13) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%NoParams, (constants.%DefaultOrUnformed.impl_witness.1d3) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc7_16.1: %DefaultOrUnformed.type = converted constants.%NoParams, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_16.1 [concrete = constants.%NoParams] // CHECK:STDOUT: %.loc7_16.2: type = converted %.loc7_16.1, %as_type [concrete = constants.%NoParams] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.cfc, @T.as.DefaultOrUnformed.impl.Op(constants.%NoParams) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.c14, @T.as.DefaultOrUnformed.impl.Op(constants.%NoParams) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %.loc7_1: ref %NoParams = splice_block file.%v.var [concrete = file.%v.var] {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %NoParams to %.loc7_1 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign file.%v.var, %T.as.DefaultOrUnformed.impl.Op.call @@ -193,37 +193,37 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Outer.type: type = generic_class_type @Outer [concrete] // CHECK:STDOUT: %Outer.generic: %Outer.type = struct_value () [concrete] -// CHECK:STDOUT: %Outer.3b5: type = class_type @Outer, @Outer(%T.67d) [symbolic] +// CHECK:STDOUT: %Outer.dee: type = class_type @Outer, @Outer(%T.67d) [symbolic] // CHECK:STDOUT: %U: type = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %Inner.type.e77: type = generic_class_type @Inner, @Outer(%T.67d) [symbolic] -// CHECK:STDOUT: %Inner.generic.92c: %Inner.type.e77 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.6c4: type = class_type @Inner, @Inner(%T.67d, %U) [symbolic] +// CHECK:STDOUT: %Inner.type.8f7: type = generic_class_type @Inner, @Outer(%T.67d) [symbolic] +// CHECK:STDOUT: %Inner.generic.b3a: %Inner.type.8f7 = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.34b: type = class_type @Inner, @Inner(%T.67d, %U) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] -// CHECK:STDOUT: %Outer.22d: type = class_type @Outer, @Outer(%ptr.c28) [concrete] -// CHECK:STDOUT: %Inner.type.33d: type = generic_class_type @Inner, @Outer(%ptr.c28) [concrete] -// CHECK:STDOUT: %Inner.generic.9bf: %Inner.type.33d = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.1b3: type = pattern_type %Outer.22d [concrete] +// CHECK:STDOUT: %Outer.2d6: type = class_type @Outer, @Outer(%ptr.c28) [concrete] +// CHECK:STDOUT: %Inner.type.626: type = generic_class_type @Inner, @Outer(%ptr.c28) [concrete] +// CHECK:STDOUT: %Inner.generic.93c: %Inner.type.626 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.e03: type = pattern_type %Outer.2d6 [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.cc5: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%Outer.22d) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.69d: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Outer.22d) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.51b: %T.as.DefaultOrUnformed.impl.Op.type.69d = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Outer.22d, (%DefaultOrUnformed.impl_witness.cc5) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.51b, @T.as.DefaultOrUnformed.impl.Op(%Outer.22d) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.080: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%Outer.2d6) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.359: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Outer.2d6) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.811: %T.as.DefaultOrUnformed.impl.Op.type.359 = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Outer.2d6, (%DefaultOrUnformed.impl_witness.080) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.811, @T.as.DefaultOrUnformed.impl.Op(%Outer.2d6) [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete] -// CHECK:STDOUT: %ptr.084: type = ptr_type %struct_type.a [concrete] -// CHECK:STDOUT: %Inner.132: type = class_type @Inner, @Inner(%ptr.c28, %ptr.084) [concrete] -// CHECK:STDOUT: %pattern_type.c01: type = pattern_type %Inner.132 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.e4c: type = ptr_type %struct_type.a [concrete] +// CHECK:STDOUT: %Inner.61f: type = class_type @Inner, @Inner(%ptr.c28, %ptr.e4c) [concrete] +// CHECK:STDOUT: %pattern_type.85f: type = pattern_type %Inner.61f [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -235,10 +235,10 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -259,48 +259,48 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %T.loc4_14.2: type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.1b3 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.1b3 = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.e03 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.e03 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref %Outer.22d = var %v.var_patt [concrete] -// CHECK:STDOUT: %.loc9_17: type = splice_block %Outer.loc9 [concrete = constants.%Outer.22d] { +// CHECK:STDOUT: %v.var: ref %Outer.2d6 = var %v.var_patt [concrete] +// CHECK:STDOUT: %.loc9_17: type = splice_block %Outer.loc9 [concrete = constants.%Outer.2d6] { // CHECK:STDOUT: %Outer.ref.loc9: %Outer.type = name_ref Outer, %Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %.loc9_15: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc9_16: type = converted %.loc9_15, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %ptr.loc9: type = ptr_type %.loc9_16 [concrete = constants.%ptr.c28] -// CHECK:STDOUT: %Outer.loc9: type = class_type @Outer, @Outer(constants.%ptr.c28) [concrete = constants.%Outer.22d] +// CHECK:STDOUT: %Outer.loc9: type = class_type @Outer, @Outer(constants.%ptr.c28) [concrete = constants.%Outer.2d6] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref %Outer.22d = ref_binding v, %v.var [concrete = %v.var] +// CHECK:STDOUT: %v: ref %Outer.2d6 = ref_binding v, %v.var [concrete = %v.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %w.patt: %pattern_type.c01 = ref_binding_pattern w [concrete] -// CHECK:STDOUT: %w.var_patt: %pattern_type.c01 = var_pattern %w.patt [concrete] +// CHECK:STDOUT: %w.patt: %pattern_type.85f = ref_binding_pattern w [concrete] +// CHECK:STDOUT: %w.var_patt: %pattern_type.85f = var_pattern %w.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %w.var: ref %Inner.132 = var %w.var_patt [concrete] -// CHECK:STDOUT: %.loc19_35: type = splice_block %Inner [concrete = constants.%Inner.132] { +// CHECK:STDOUT: %w.var: ref %Inner.61f = var %w.var_patt [concrete] +// CHECK:STDOUT: %.loc19_35: type = splice_block %Inner [concrete = constants.%Inner.61f] { // CHECK:STDOUT: %Outer.ref.loc19: %Outer.type = name_ref Outer, %Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %.loc19_15: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc19_16: type = converted %.loc19_15, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %ptr.loc19_16: type = ptr_type %.loc19_16 [concrete = constants.%ptr.c28] -// CHECK:STDOUT: %Outer.loc19: type = class_type @Outer, @Outer(constants.%ptr.c28) [concrete = constants.%Outer.22d] -// CHECK:STDOUT: %.loc19_18: %Inner.type.33d = specific_constant @Outer.%Inner.decl, @Outer(constants.%ptr.c28) [concrete = constants.%Inner.generic.9bf] -// CHECK:STDOUT: %Inner.ref: %Inner.type.33d = name_ref Inner, %.loc19_18 [concrete = constants.%Inner.generic.9bf] +// CHECK:STDOUT: %Outer.loc19: type = class_type @Outer, @Outer(constants.%ptr.c28) [concrete = constants.%Outer.2d6] +// CHECK:STDOUT: %.loc19_18: %Inner.type.626 = specific_constant @Outer.%Inner.decl, @Outer(constants.%ptr.c28) [concrete = constants.%Inner.generic.93c] +// CHECK:STDOUT: %Inner.ref: %Inner.type.626 = name_ref Inner, %.loc19_18 [concrete = constants.%Inner.generic.93c] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a] -// CHECK:STDOUT: %ptr.loc19_34: type = ptr_type %struct_type.a [concrete = constants.%ptr.084] -// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(constants.%ptr.c28, constants.%ptr.084) [concrete = constants.%Inner.132] +// CHECK:STDOUT: %ptr.loc19_34: type = ptr_type %struct_type.a [concrete = constants.%ptr.e4c] +// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(constants.%ptr.c28, constants.%ptr.e4c) [concrete = constants.%Inner.61f] // CHECK:STDOUT: } -// CHECK:STDOUT: %w: ref %Inner.132 = ref_binding w, %w.var [concrete = %w.var] +// CHECK:STDOUT: %w: ref %Inner.61f = ref_binding w, %w.var [concrete = %w.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Outer(%T.loc4_14.2: type) { // CHECK:STDOUT: %T.loc4_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc4_14.1) [symbolic = %Inner.type (constants.%Inner.type.e77)] -// CHECK:STDOUT: %Inner.generic: @Outer.%Inner.type (%Inner.type.e77) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.92c)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc4_14.1) [symbolic = %Inner.type (constants.%Inner.type.8f7)] +// CHECK:STDOUT: %Inner.generic: @Outer.%Inner.type (%Inner.type.8f7) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.b3a)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Inner.decl: @Outer.%Inner.type (%Inner.type.e77) = class_decl @Inner [symbolic = @Outer.%Inner.generic (constants.%Inner.generic.92c)] { +// CHECK:STDOUT: %Inner.decl: @Outer.%Inner.type (%Inner.type.8f7) = class_decl @Inner [symbolic = @Outer.%Inner.generic (constants.%Inner.generic.b3a)] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_19.1: type = splice_block %.loc5_19.2 [concrete = type] { @@ -313,7 +313,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Outer.3b5 +// CHECK:STDOUT: .Self = constants.%Outer.dee // CHECK:STDOUT: .Inner = %Inner.decl // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -328,22 +328,22 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Inner.6c4 +// CHECK:STDOUT: .Self = constants.%Inner.34b // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Outer.22d, (constants.%DefaultOrUnformed.impl_witness.cc5) [concrete = constants.%DefaultOrUnformed.facet] -// CHECK:STDOUT: %.loc9_18.1: %DefaultOrUnformed.type = converted constants.%Outer.22d, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] -// CHECK:STDOUT: %as_type: type = facet_access_type %.loc9_18.1 [concrete = constants.%Outer.22d] -// CHECK:STDOUT: %.loc9_18.2: type = converted %.loc9_18.1, %as_type [concrete = constants.%Outer.22d] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.51b, @T.as.DefaultOrUnformed.impl.Op(constants.%Outer.22d) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] -// CHECK:STDOUT: %.loc9_1: ref %Outer.22d = splice_block file.%v.var [concrete = file.%v.var] {} -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %Outer.22d to %.loc9_1 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Outer.2d6, (constants.%DefaultOrUnformed.impl_witness.080) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %.loc9_18.1: %DefaultOrUnformed.type = converted constants.%Outer.2d6, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %as_type: type = facet_access_type %.loc9_18.1 [concrete = constants.%Outer.2d6] +// CHECK:STDOUT: %.loc9_18.2: type = converted %.loc9_18.1, %as_type [concrete = constants.%Outer.2d6] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.811, @T.as.DefaultOrUnformed.impl.Op(constants.%Outer.2d6) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %.loc9_1: ref %Outer.2d6 = splice_block file.%v.var [concrete = file.%v.var] {} +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %Outer.2d6 to %.loc9_1 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign file.%v.var, %T.as.DefaultOrUnformed.impl.Op.call -// CHECK:STDOUT: %v.ref: ref %Outer.22d = name_ref v, file.%v [concrete = file.%v.var] -// CHECK:STDOUT: %.loc19: %Inner.132 = converted %v.ref, [concrete = ] +// CHECK:STDOUT: %v.ref: ref %Outer.2d6 = name_ref v, file.%v [concrete = file.%v.var] +// CHECK:STDOUT: %.loc19: %Inner.61f = converted %v.ref, [concrete = ] // CHECK:STDOUT: assign file.%w.var, // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -360,12 +360,12 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %T.loc4_14.1 => constants.%ptr.c28 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.33d -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.9bf +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.626 +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.93c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner(constants.%ptr.c28, constants.%ptr.084) { -// CHECK:STDOUT: %U.loc5_16.1 => constants.%ptr.084 +// CHECK:STDOUT: specific @Inner(constants.%ptr.c28, constants.%ptr.e4c) { +// CHECK:STDOUT: %U.loc5_16.1 => constants.%ptr.e4c // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -380,32 +380,32 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %N.bbe: %i32 = symbolic_binding N, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %N.37f: %i32 = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.9c1: type = class_type @C, @C(%N.bbe) [symbolic] +// CHECK:STDOUT: %C.adf: type = class_type @C, @C(%N.37f) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %int_123.fff: Core.IntLiteral = int_value 123 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.5b5: %i32 = int_value 123 [concrete] -// CHECK:STDOUT: %C.22c: type = class_type @C, @C(%int_123.5b5) [concrete] -// CHECK:STDOUT: %pattern_type.9fc: type = pattern_type %C.22c [concrete] +// CHECK:STDOUT: %int_123.2bf: %i32 = int_value 123 [concrete] +// CHECK:STDOUT: %C.ece: type = class_type @C, @C(%int_123.2bf) [concrete] +// CHECK:STDOUT: %pattern_type.b05: type = pattern_type %C.ece [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -417,9 +417,9 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -430,36 +430,36 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { -// CHECK:STDOUT: %N.patt: %pattern_type.104 = symbolic_binding_pattern N, 0 [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.6b6 = symbolic_binding_pattern N, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4: type = splice_block %i32 [concrete = constants.%i32] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_10.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc4_10.1 (constants.%N.bbe)] +// CHECK:STDOUT: %N.loc4_10.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc4_10.1 (constants.%N.37f)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.9fc = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.9fc = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.b05 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.b05 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref %C.22c = var %v.var_patt [concrete] -// CHECK:STDOUT: %.loc13_13.1: type = splice_block %C [concrete = constants.%C.22c] { +// CHECK:STDOUT: %v.var: ref %C.ece = var %v.var_patt [concrete] +// CHECK:STDOUT: %.loc13_13.1: type = splice_block %C [concrete = constants.%C.ece] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_123: Core.IntLiteral = int_value 123 [concrete = constants.%int_123.fff] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc13_13.1: = bound_method %int_123, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_13.2: = bound_method %int_123, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc13_13.2(%int_123) [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %.loc13_13.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %.loc13_13.3: %i32 = converted %int_123, %.loc13_13.2 [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_123.5b5) [concrete = constants.%C.22c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc13_13.2(%int_123) [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %.loc13_13.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %.loc13_13.3: %i32 = converted %int_123, %.loc13_13.2 [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_123.2bf) [concrete = constants.%C.ece] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref %C.22c = ref_binding v, %v.var [concrete = %v.var] +// CHECK:STDOUT: %v: ref %C.ece = ref_binding v, %v.var [concrete = %v.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(%N.loc4_10.2: %i32) { -// CHECK:STDOUT: %N.loc4_10.1: %i32 = symbolic_binding N, 0 [symbolic = %N.loc4_10.1 (constants.%N.bbe)] +// CHECK:STDOUT: %N.loc4_10.1: %i32 = symbolic_binding N, 0 [symbolic = %N.loc4_10.1 (constants.%N.37f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -468,24 +468,24 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.9c1 +// CHECK:STDOUT: .Self = constants.%C.adf // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc13_18: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %.loc13_1: %C.22c = converted %.loc13_18, [concrete = ] +// CHECK:STDOUT: %.loc13_1: %C.ece = converted %.loc13_18, [concrete = ] // CHECK:STDOUT: assign file.%v.var, // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%N.bbe) { -// CHECK:STDOUT: %N.loc4_10.1 => constants.%N.bbe +// CHECK:STDOUT: specific @C(constants.%N.37f) { +// CHECK:STDOUT: %N.loc4_10.1 => constants.%N.37f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_123.5b5) { -// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_123.5b5 +// CHECK:STDOUT: specific @C(constants.%int_123.2bf) { +// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_123.2bf // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -499,58 +499,58 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %D.elem: type = unbound_element_type %D, %i32 [concrete] -// CHECK:STDOUT: %struct_type.a.b.b47: type = struct_type {.a: %i32, .b: %i32} [concrete] -// CHECK:STDOUT: %complete_type.abf: = complete_type_witness %struct_type.a.b.b47 [concrete] +// CHECK:STDOUT: %struct_type.a.b.b4c: type = struct_type {.a: %i32, .b: %i32} [concrete] +// CHECK:STDOUT: %complete_type.7b9: = complete_type_witness %struct_type.a.b.b4c [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.f1a: type = pattern_type %D [concrete] +// CHECK:STDOUT: %pattern_type.d8d: type = pattern_type %D [concrete] // CHECK:STDOUT: %F: %D = symbolic_binding F, 0 [symbolic] // CHECK:STDOUT: %E.type: type = generic_class_type @E [concrete] // CHECK:STDOUT: %E.generic: %E.type = struct_value () [concrete] -// CHECK:STDOUT: %E.02d: type = class_type @E, @E(%F) [symbolic] +// CHECK:STDOUT: %E.30e: type = class_type @E, @E(%F) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.4aa: %struct_type.a.b.cfd = struct_value (%int_1.5b8, %int_2.ecc) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %D.val.d42: %D = struct_value (%int_1.d9c, %int_2.228) [concrete] -// CHECK:STDOUT: %.62c: ref %D = temporary invalid, %D.val.d42 [concrete] -// CHECK:STDOUT: %E.e69: type = class_type @E, @E(%D.val.d42) [concrete] -// CHECK:STDOUT: %pattern_type.f35: type = pattern_type %E.e69 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %D.val.b1d: %D = struct_value (%int_1.0c6, %int_2.295) [concrete] +// CHECK:STDOUT: %.24e: ref %D = temporary invalid, %D.val.b1d [concrete] +// CHECK:STDOUT: %E.7b7: type = class_type @E, @E(%D.val.b1d) [concrete] +// CHECK:STDOUT: %pattern_type.e71: type = pattern_type %E.7b7 [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %struct.cb7: %struct_type.a.b.cfd = struct_value (%int_3.1ba, %int_4.0c1) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.9f5: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_4.a4d: %i32 = int_value 4 [concrete] -// CHECK:STDOUT: %D.val.d13: %D = struct_value (%int_3.6cc, %int_4.a4d) [concrete] -// CHECK:STDOUT: %.cc2: ref %D = temporary invalid, %D.val.d13 [concrete] -// CHECK:STDOUT: %E.a15: type = class_type @E, @E(%D.val.d13) [concrete] -// CHECK:STDOUT: %E.val: %E.a15 = struct_value () [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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [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] +// CHECK:STDOUT: %int_4.4eb: %i32 = int_value 4 [concrete] +// CHECK:STDOUT: %D.val.fbf: %D = struct_value (%int_3.410, %int_4.4eb) [concrete] +// CHECK:STDOUT: %.230: ref %D = temporary invalid, %D.val.fbf [concrete] +// CHECK:STDOUT: %E.6af: type = class_type @E, @E(%D.val.fbf) [concrete] +// CHECK:STDOUT: %E.val: %E.6af = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -561,9 +561,9 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -576,7 +576,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %E.decl: %E.type = class_decl @E [concrete = constants.%E.generic] { -// CHECK:STDOUT: %F.patt: %pattern_type.f1a = symbolic_binding_pattern F, 0 [concrete] +// CHECK:STDOUT: %F.patt: %pattern_type.d8d = symbolic_binding_pattern F, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9: type = splice_block %D.ref [concrete = constants.%D] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -585,45 +585,45 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %F.loc9_10.2: %D = symbolic_binding F, 0 [symbolic = %F.loc9_10.1 (constants.%F)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %g.patt: %pattern_type.f35 = ref_binding_pattern g [concrete] -// CHECK:STDOUT: %g.var_patt: %pattern_type.f35 = var_pattern %g.patt [concrete] +// CHECK:STDOUT: %g.patt: %pattern_type.e71 = ref_binding_pattern g [concrete] +// CHECK:STDOUT: %g.var_patt: %pattern_type.e71 = var_pattern %g.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %g.var: ref %E.e69 = var %g.var_patt [concrete] -// CHECK:STDOUT: %.loc18_26.1: type = splice_block %E [concrete = constants.%E.e69] { +// CHECK:STDOUT: %g.var: ref %E.7b7 = var %g.var_patt [concrete] +// CHECK:STDOUT: %.loc18_26.1: type = splice_block %E [concrete = constants.%E.7b7] { // CHECK:STDOUT: %E.ref: %E.type = name_ref E, %E.decl [concrete = constants.%E.generic] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc18_25.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) [concrete = constants.%struct.4aa] -// CHECK:STDOUT: %impl.elem0.loc18_25.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_25.1: = bound_method %int_1, %impl.elem0.loc18_25.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc18_25.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_25.1: = bound_method %int_1, %impl.elem0.loc18_25.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc18_25.1: = specific_function %impl.elem0.loc18_25.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_25.2: = bound_method %int_1, %specific_fn.loc18_25.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_25.1: init %i32 = call %bound_method.loc18_25.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_25.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_25.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc18_25.2: = bound_method %int_1, %specific_fn.loc18_25.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_25.1: init %i32 = call %bound_method.loc18_25.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_25.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_25.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc18_25.3: ref %D = temporary_storage // CHECK:STDOUT: %.loc18_25.4: ref %i32 = class_element_access %.loc18_25.3, element0 -// CHECK:STDOUT: %.loc18_25.5: init %i32 to %.loc18_25.4 = in_place_init %.loc18_25.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc18_25.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_25.3: = bound_method %int_2, %impl.elem0.loc18_25.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc18_25.5: init %i32 to %.loc18_25.4 = in_place_init %.loc18_25.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc18_25.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_25.3: = bound_method %int_2, %impl.elem0.loc18_25.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc18_25.2: = specific_function %impl.elem0.loc18_25.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_25.4: = bound_method %int_2, %specific_fn.loc18_25.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_25.2: init %i32 = call %bound_method.loc18_25.4(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc18_25.6: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_25.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc18_25.4: = bound_method %int_2, %specific_fn.loc18_25.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_25.2: init %i32 = call %bound_method.loc18_25.4(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc18_25.6: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_25.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc18_25.7: ref %i32 = class_element_access %.loc18_25.3, element1 -// CHECK:STDOUT: %.loc18_25.8: init %i32 to %.loc18_25.7 = in_place_init %.loc18_25.6 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc18_25.9: init %D to %.loc18_25.3 = class_init (%.loc18_25.5, %.loc18_25.8) [concrete = constants.%D.val.d42] -// CHECK:STDOUT: %.loc18_26.2: init %D = converted %.loc18_25.1, %.loc18_25.9 [concrete = constants.%D.val.d42] -// CHECK:STDOUT: %.loc18_26.3: ref %D = temporary %.loc18_25.3, %.loc18_26.2 [concrete = constants.%.62c] -// CHECK:STDOUT: %.loc18_26.4: %D = acquire_value %.loc18_26.3 [concrete = constants.%D.val.d42] -// CHECK:STDOUT: %E: type = class_type @E, @E(constants.%D.val.d42) [concrete = constants.%E.e69] +// CHECK:STDOUT: %.loc18_25.8: init %i32 to %.loc18_25.7 = in_place_init %.loc18_25.6 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc18_25.9: init %D to %.loc18_25.3 = class_init (%.loc18_25.5, %.loc18_25.8) [concrete = constants.%D.val.b1d] +// CHECK:STDOUT: %.loc18_26.2: init %D = converted %.loc18_25.1, %.loc18_25.9 [concrete = constants.%D.val.b1d] +// CHECK:STDOUT: %.loc18_26.3: ref %D = temporary %.loc18_25.3, %.loc18_26.2 [concrete = constants.%.24e] +// CHECK:STDOUT: %.loc18_26.4: %D = acquire_value %.loc18_26.3 [concrete = constants.%D.val.b1d] +// CHECK:STDOUT: %E: type = class_type @E, @E(constants.%D.val.b1d) [concrete = constants.%E.7b7] // CHECK:STDOUT: } -// CHECK:STDOUT: %g: ref %E.e69 = ref_binding g, %g.var [concrete = %g.var] +// CHECK:STDOUT: %g: ref %E.7b7 = ref_binding g, %g.var [concrete = %g.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { // CHECK:STDOUT: %.loc5: %D.elem = field_decl a, element0 [concrete] // CHECK:STDOUT: %.loc6: %D.elem = field_decl b, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.b47 [concrete = constants.%complete_type.abf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.b4c [concrete = constants.%complete_type.7b9] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -642,7 +642,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%E.02d +// CHECK:STDOUT: .Self = constants.%E.30e // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -654,32 +654,32 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %.loc18_53.1: %struct_type.a.b.cfd = struct_literal (%int_3, %int_4) [concrete = constants.%struct.cb7] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %impl.elem0.loc18_53.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_53.1: = bound_method %int_3, %impl.elem0.loc18_53.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %impl.elem0.loc18_53.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_53.1: = bound_method %int_3, %impl.elem0.loc18_53.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc18_53.1: = specific_function %impl.elem0.loc18_53.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_53.2: = bound_method %int_3, %specific_fn.loc18_53.1 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_53.1: init %i32 = call %bound_method.loc18_53.2(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc18_53.2: init %i32 = converted %int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_53.1 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc18_53.2: = bound_method %int_3, %specific_fn.loc18_53.1 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_53.1: init %i32 = call %bound_method.loc18_53.2(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc18_53.2: init %i32 = converted %int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_53.1 [concrete = constants.%int_3.410] // CHECK:STDOUT: %.loc18_53.3: ref %D = temporary_storage // CHECK:STDOUT: %.loc18_53.4: ref %i32 = class_element_access %.loc18_53.3, element0 -// CHECK:STDOUT: %.loc18_53.5: init %i32 to %.loc18_53.4 = in_place_init %.loc18_53.2 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %impl.elem0.loc18_53.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_53.3: = bound_method %int_4, %impl.elem0.loc18_53.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe] +// CHECK:STDOUT: %.loc18_53.5: init %i32 to %.loc18_53.4 = in_place_init %.loc18_53.2 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %impl.elem0.loc18_53.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_53.3: = bound_method %int_4, %impl.elem0.loc18_53.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad] // CHECK:STDOUT: %specific_fn.loc18_53.2: = specific_function %impl.elem0.loc18_53.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_53.4: = bound_method %int_4, %specific_fn.loc18_53.2 [concrete = constants.%bound_method.9f5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_53.2: init %i32 = call %bound_method.loc18_53.4(%int_4) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc18_53.6: init %i32 = converted %int_4, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_53.2 [concrete = constants.%int_4.a4d] +// CHECK:STDOUT: %bound_method.loc18_53.4: = bound_method %int_4, %specific_fn.loc18_53.2 [concrete = constants.%bound_method.b7a] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_53.2: init %i32 = call %bound_method.loc18_53.4(%int_4) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc18_53.6: init %i32 = converted %int_4, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_53.2 [concrete = constants.%int_4.4eb] // CHECK:STDOUT: %.loc18_53.7: ref %i32 = class_element_access %.loc18_53.3, element1 -// CHECK:STDOUT: %.loc18_53.8: init %i32 to %.loc18_53.7 = in_place_init %.loc18_53.6 [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc18_53.9: init %D to %.loc18_53.3 = class_init (%.loc18_53.5, %.loc18_53.8) [concrete = constants.%D.val.d13] -// CHECK:STDOUT: %.loc18_55.1: init %D = converted %.loc18_53.1, %.loc18_53.9 [concrete = constants.%D.val.d13] -// CHECK:STDOUT: %.loc18_55.2: ref %D = temporary %.loc18_53.3, %.loc18_55.1 [concrete = constants.%.cc2] -// CHECK:STDOUT: %.loc18_55.3: %D = acquire_value %.loc18_55.2 [concrete = constants.%D.val.d13] -// CHECK:STDOUT: %E: type = class_type @E, @E(constants.%D.val.d13) [concrete = constants.%E.a15] -// CHECK:STDOUT: %.loc18_31.2: ref %E.a15 = temporary_storage -// CHECK:STDOUT: %.loc18_31.3: init %E.a15 to %.loc18_31.2 = class_init () [concrete = constants.%E.val] -// CHECK:STDOUT: %.loc18_33: init %E.a15 = converted %.loc18_31.1, %.loc18_31.3 [concrete = constants.%E.val] -// CHECK:STDOUT: %.loc18_1: %E.e69 = converted %.loc18_33, [concrete = ] +// CHECK:STDOUT: %.loc18_53.8: init %i32 to %.loc18_53.7 = in_place_init %.loc18_53.6 [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc18_53.9: init %D to %.loc18_53.3 = class_init (%.loc18_53.5, %.loc18_53.8) [concrete = constants.%D.val.fbf] +// CHECK:STDOUT: %.loc18_55.1: init %D = converted %.loc18_53.1, %.loc18_53.9 [concrete = constants.%D.val.fbf] +// CHECK:STDOUT: %.loc18_55.2: ref %D = temporary %.loc18_53.3, %.loc18_55.1 [concrete = constants.%.230] +// CHECK:STDOUT: %.loc18_55.3: %D = acquire_value %.loc18_55.2 [concrete = constants.%D.val.fbf] +// CHECK:STDOUT: %E: type = class_type @E, @E(constants.%D.val.fbf) [concrete = constants.%E.6af] +// CHECK:STDOUT: %.loc18_31.2: ref %E.6af = temporary_storage +// CHECK:STDOUT: %.loc18_31.3: init %E.6af to %.loc18_31.2 = class_init () [concrete = constants.%E.val] +// CHECK:STDOUT: %.loc18_33: init %E.6af = converted %.loc18_31.1, %.loc18_31.3 [concrete = constants.%E.val] +// CHECK:STDOUT: %.loc18_1: %E.7b7 = converted %.loc18_33, [concrete = ] // CHECK:STDOUT: assign file.%g.var, // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -688,14 +688,14 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %F.loc9_10.1 => constants.%F // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @E(constants.%D.val.d42) { -// CHECK:STDOUT: %F.loc9_10.1 => constants.%D.val.d42 +// CHECK:STDOUT: specific @E(constants.%D.val.b1d) { +// CHECK:STDOUT: %F.loc9_10.1 => constants.%D.val.b1d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @E(constants.%D.val.d13) { -// CHECK:STDOUT: %F.loc9_10.1 => constants.%D.val.d13 +// CHECK:STDOUT: specific @E(constants.%D.val.fbf) { +// CHECK:STDOUT: %F.loc9_10.1 => constants.%D.val.fbf // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/implicit_import.carbon b/toolchain/check/testdata/class/implicit_import.carbon index 4266d4bd873e..56825afab651 100644 --- a/toolchain/check/testdata/class/implicit_import.carbon +++ b/toolchain/check/testdata/class/implicit_import.carbon @@ -158,7 +158,7 @@ class B {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//redecl_after_def, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//redecl_after_def, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//redecl_after_def, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -174,7 +174,7 @@ class B {} // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- redef_after_def.carbon @@ -203,16 +203,16 @@ class B {} // CHECK:STDOUT: --- fail_redef_after_def.impl.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %C.a20dd8.1: type = class_type @C.1 [concrete] +// CHECK:STDOUT: %C.08d9e3.1: type = class_type @C.1 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %C.a20dd8.2: type = class_type @C.loc12 [concrete] +// CHECK:STDOUT: %C.08d9e3.2: type = class_type @C.loc12 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.C: type = import_ref Main//redef_after_def, C, loaded [concrete = constants.%C.a20dd8.1] +// CHECK:STDOUT: %Main.C: type = import_ref Main//redef_after_def, C, loaded [concrete = constants.%C.08d9e3.1] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//redef_after_def, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//redef_after_def, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//redef_after_def, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -221,14 +221,14 @@ class B {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_31.1 = import // CHECK:STDOUT: %default.import.loc2_31.2 = import -// CHECK:STDOUT: %C.decl: type = class_decl @C.loc12 [concrete = constants.%C.a20dd8.2] {} {} +// CHECK:STDOUT: %C.decl: type = class_decl @C.loc12 [concrete = constants.%C.08d9e3.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C.1 [from "redef_after_def.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C.loc12 { @@ -236,7 +236,7 @@ class B {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.a20dd8.2 +// CHECK:STDOUT: .Self = constants.%C.08d9e3.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- def_alias.carbon diff --git a/toolchain/check/testdata/class/import.carbon b/toolchain/check/testdata/class/import.carbon index 3a1d203f9d76..01a4fd9dc40b 100644 --- a/toolchain/check/testdata/class/import.carbon +++ b/toolchain/check/testdata/class/import.carbon @@ -66,9 +66,9 @@ fn Run() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Field.elem: type = unbound_element_type %Field, %i32 [concrete] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %i32} [concrete] -// CHECK:STDOUT: %complete_type.9a8: = complete_type_witness %struct_type.x [concrete] +// CHECK:STDOUT: %complete_type.0c6: = complete_type_witness %struct_type.x [concrete] // CHECK:STDOUT: %ForwardDeclared: type = class_type @ForwardDeclared [concrete] -// CHECK:STDOUT: %pattern_type.c30: type = pattern_type %ForwardDeclared [concrete] +// CHECK:STDOUT: %pattern_type.bdf: type = pattern_type %ForwardDeclared [concrete] // CHECK:STDOUT: %ForwardDeclared.F.type: type = fn_type @ForwardDeclared.F [concrete] // CHECK:STDOUT: %ForwardDeclared.F: %ForwardDeclared.F.type = struct_value () [concrete] // CHECK:STDOUT: %ForwardDeclared.G.type: type = fn_type @ForwardDeclared.G [concrete] @@ -111,7 +111,7 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: class @Field { // CHECK:STDOUT: %.loc8: %Field.elem = field_decl x, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x [concrete = constants.%complete_type.9a8] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x [concrete = constants.%complete_type.0c6] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -121,16 +121,16 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: class @ForwardDeclared { // CHECK:STDOUT: %ForwardDeclared.F.decl: %ForwardDeclared.F.type = fn_decl @ForwardDeclared.F [concrete = constants.%ForwardDeclared.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.c30 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.c30 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.bdf = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.bdf = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %ForwardDeclared = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%ForwardDeclared [concrete = constants.%ForwardDeclared] // CHECK:STDOUT: %self: %ForwardDeclared = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %ForwardDeclared.G.decl: %ForwardDeclared.G.type = fn_decl @ForwardDeclared.G [concrete = constants.%ForwardDeclared.G] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.c30 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.c30 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.bdf = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.bdf = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %ForwardDeclared = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%ForwardDeclared [concrete = constants.%ForwardDeclared] @@ -160,91 +160,91 @@ fn Run() { // CHECK:STDOUT: %Empty: type = class_type @Empty [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.799: type = pattern_type %Empty [concrete] +// CHECK:STDOUT: %pattern_type.47a: type = pattern_type %Empty [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %Empty.val: %Empty = struct_value () [concrete] // CHECK:STDOUT: %Field: type = class_type @Field [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %struct_type.x.375: type = struct_type {.x: %i32} [concrete] -// CHECK:STDOUT: %complete_type.75b: = complete_type_witness %struct_type.x.375 [concrete] -// CHECK:STDOUT: %pattern_type.b7b: type = pattern_type %Field [concrete] +// CHECK:STDOUT: %struct_type.x.a15: type = struct_type {.x: %i32} [concrete] +// CHECK:STDOUT: %complete_type.0c6: = complete_type_witness %struct_type.x.a15 [concrete] +// CHECK:STDOUT: %pattern_type.f17: type = pattern_type %Field [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.x.c96: type = struct_type {.x: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.x.c96 = struct_value (%int_1.5b8) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.cf3: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a20: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.cd7: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a20 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e84: = impl_witness imports.%ImplicitAs.impl_witness_table.fca, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.104: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.785: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.104 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.cf3 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e84) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b79: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.56d: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b79, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.d5f: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.785 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.785, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.392: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.6b0: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Field.val: %Field = struct_value (%int_1.6b0) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %Field.val: %Field = struct_value (%int_1.0c6) [concrete] // CHECK:STDOUT: %Field.elem: type = unbound_element_type %Field, %i32 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cf8: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.785 [concrete] -// CHECK:STDOUT: %bound_method.90e: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.c3d: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %ForwardDeclared.8a2991.1: type = class_type @ForwardDeclared.1 [concrete] -// CHECK:STDOUT: %pattern_type.c30: type = pattern_type %ForwardDeclared.8a2991.1 [concrete] -// CHECK:STDOUT: %ForwardDeclared.val: %ForwardDeclared.8a2991.1 = struct_value () [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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %ForwardDeclared.08bd4c.1: type = class_type @ForwardDeclared.1 [concrete] +// CHECK:STDOUT: %pattern_type.bdf: type = pattern_type %ForwardDeclared.08bd4c.1 [concrete] +// CHECK:STDOUT: %ForwardDeclared.val: %ForwardDeclared.08bd4c.1 = struct_value () [concrete] // CHECK:STDOUT: %ForwardDeclared.F.type: type = fn_type @ForwardDeclared.F [concrete] // CHECK:STDOUT: %ForwardDeclared.F: %ForwardDeclared.F.type = struct_value () [concrete] // CHECK:STDOUT: %ForwardDeclared.G.type: type = fn_type @ForwardDeclared.G [concrete] // CHECK:STDOUT: %ForwardDeclared.G: %ForwardDeclared.G.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.01c: type = ptr_type %ForwardDeclared.8a2991.1 [concrete] -// CHECK:STDOUT: %pattern_type.88e: type = pattern_type %ptr.01c [concrete] +// CHECK:STDOUT: %ptr.11e: type = ptr_type %ForwardDeclared.08bd4c.1 [concrete] +// CHECK:STDOUT: %pattern_type.8cd: type = pattern_type %ptr.11e [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.726: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%ForwardDeclared.8a2991.1) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.bd1: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%ForwardDeclared.8a2991.1) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.29e: %ptr.as.Copy.impl.Op.type.bd1 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.01c, (%Copy.impl_witness.726) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.719: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.778: type = fn_type_with_self_type %Copy.WithSelf.Op.type.719, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.29e, @ptr.as.Copy.impl.Op(%ForwardDeclared.8a2991.1) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.966: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%ForwardDeclared.08bd4c.1) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.7ea: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%ForwardDeclared.08bd4c.1) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5aa: %ptr.as.Copy.impl.Op.type.7ea = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.11e, (%Copy.impl_witness.966) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.b6e: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.882: type = fn_type_with_self_type %Copy.WithSelf.Op.type.b6e, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.5aa, @ptr.as.Copy.impl.Op(%ForwardDeclared.08bd4c.1) [concrete] // CHECK:STDOUT: %Incomplete: type = class_type @Incomplete [concrete] -// CHECK:STDOUT: %ptr.a51: type = ptr_type %Incomplete [concrete] -// CHECK:STDOUT: %pattern_type.56b: type = pattern_type %ptr.a51 [concrete] +// CHECK:STDOUT: %ptr.06d: type = ptr_type %Incomplete [concrete] +// CHECK:STDOUT: %pattern_type.bae: type = pattern_type %ptr.06d [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.e64: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%ptr.a51) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bc4: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%ptr.a51) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.36c: %T.as.DefaultOrUnformed.impl.Op.type.bc4 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr.a51, (%DefaultOrUnformed.impl_witness.e64) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.36c, @T.as.DefaultOrUnformed.impl.Op(%ptr.a51) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.3a6: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%ptr.06d) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.c1d: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%ptr.06d) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.9c5: %T.as.DefaultOrUnformed.impl.Op.type.c1d = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr.06d, (%DefaultOrUnformed.impl_witness.3a6) [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.790b3b.1: type = fn_type @Destroy.Op.loc18 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc16 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc12_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.8: type = fn_type @Destroy.Op.loc9_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.8: %Destroy.Op.type.790b3b.8 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.9: type = fn_type @Destroy.Op.loc7 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.9: %Destroy.Op.type.790b3b.9 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Empty: type = import_ref Main//a, Empty, loaded [concrete = constants.%Empty] // CHECK:STDOUT: %Main.Field: type = import_ref Main//a, Field, loaded [concrete = constants.%Field] -// CHECK:STDOUT: %Main.ForwardDeclared: type = import_ref Main//a, ForwardDeclared, loaded [concrete = constants.%ForwardDeclared.8a2991.1] +// CHECK:STDOUT: %Main.ForwardDeclared: type = import_ref Main//a, ForwardDeclared, loaded [concrete = constants.%ForwardDeclared.08bd4c.1] // CHECK:STDOUT: %Main.Incomplete: type = import_ref Main//a, Incomplete, loaded [concrete = constants.%Incomplete] -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import, [concrete] { +// CHECK:STDOUT: %Core.048aa3.1: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: .Copy = %Core.Copy // CHECK:STDOUT: .DefaultOrUnformed = %Core.DefaultOrUnformed @@ -253,28 +253,28 @@ fn Run() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//a, loc5_1, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.d75 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.018: = import_ref Main//a, loc9_1, loaded [concrete = constants.%complete_type.75b] -// CHECK:STDOUT: %Main.import_ref.95d = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.006: %Field.elem = import_ref Main//a, loc8_8, loaded [concrete = %.41e] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.4e5: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a20) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.cd7)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.fca = impl_witness_table (%Core.import_ref.4e5), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %.41e: %Field.elem = field_decl x, element0 [concrete] +// CHECK:STDOUT: %Main.import_ref.777 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.9e9: = import_ref Main//a, loc9_1, loaded [concrete = constants.%complete_type.0c6] +// CHECK:STDOUT: %Main.import_ref.4ae = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.5c1: %Field.elem = import_ref Main//a, loc8_8, loaded [concrete = %.860] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %.860: %Field.elem = field_decl x, element0 [concrete] // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//a, loc16_1, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.401653.1 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.d29: %ForwardDeclared.F.type = import_ref Main//a, loc14_21, loaded [concrete = constants.%ForwardDeclared.F] -// CHECK:STDOUT: %Main.import_ref.7f9: %ForwardDeclared.G.type = import_ref Main//a, loc15_25, loaded [concrete = constants.%ForwardDeclared.G] +// CHECK:STDOUT: %Main.import_ref.fbb203.1 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.bc9: %ForwardDeclared.F.type = import_ref Main//a, loc14_21, loaded [concrete = constants.%ForwardDeclared.F] +// CHECK:STDOUT: %Main.import_ref.341: %ForwardDeclared.G.type = import_ref Main//a, loc15_25, loaded [concrete = constants.%ForwardDeclared.G] // CHECK:STDOUT: %Main.import_ref.8f24d3.3: = import_ref Main//a, loc16_1, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.401653.2 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ad7 = import_ref Main//a, loc14_21, unloaded -// CHECK:STDOUT: %Main.import_ref.9d4 = import_ref Main//a, loc15_25, unloaded +// CHECK:STDOUT: %Main.import_ref.fbb203.2 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.439 = import_ref Main//a, loc14_21, unloaded +// CHECK:STDOUT: %Main.import_ref.c46 = import_ref Main//a, loc15_25, unloaded // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -284,7 +284,7 @@ fn Run() { // CHECK:STDOUT: .Field = imports.%Main.Field // CHECK:STDOUT: .ForwardDeclared = imports.%Main.ForwardDeclared // CHECK:STDOUT: .Incomplete = imports.%Main.Incomplete -// CHECK:STDOUT: .Core = imports.%Core.979 +// CHECK:STDOUT: .Core = imports.%Core.048aa3.1 // CHECK:STDOUT: .Run = %Run.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core @@ -296,33 +296,33 @@ fn Run() { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.d75 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.777 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Field [from "a.carbon"] { -// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.018 +// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.9e9 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.95d -// CHECK:STDOUT: .x = imports.%Main.import_ref.006 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.4ae +// CHECK:STDOUT: .x = imports.%Main.import_ref.5c1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @ForwardDeclared.1 [from "a.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.401653.1 -// CHECK:STDOUT: .F = imports.%Main.import_ref.d29 -// CHECK:STDOUT: .G = imports.%Main.import_ref.7f9 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.fbb203.1 +// CHECK:STDOUT: .F = imports.%Main.import_ref.bc9 +// CHECK:STDOUT: .G = imports.%Main.import_ref.341 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @ForwardDeclared.2 [from "a.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.401653.2 -// CHECK:STDOUT: .F = imports.%Main.import_ref.ad7 -// CHECK:STDOUT: .G = imports.%Main.import_ref.9d4 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.fbb203.2 +// CHECK:STDOUT: .F = imports.%Main.import_ref.439 +// CHECK:STDOUT: .G = imports.%Main.import_ref.c46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Incomplete [from "a.carbon"]; @@ -330,8 +330,8 @@ fn Run() { // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.799 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.799 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.47a = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.47a = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Empty = var %a.var_patt // CHECK:STDOUT: %.loc7_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -341,100 +341,100 @@ fn Run() { // CHECK:STDOUT: %Empty.ref: type = name_ref Empty, imports.%Main.Empty [concrete = constants.%Empty] // CHECK:STDOUT: %a: ref %Empty = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.b7b = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.b7b = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.f17 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.f17 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %Field = var %b.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_25.1: %struct_type.x.c96 = struct_literal (%int_1) [concrete = constants.%struct] -// CHECK:STDOUT: %impl.elem0.loc9: %.56d = impl_witness_access constants.%ImplicitAs.impl_witness.e84, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.785] -// CHECK:STDOUT: %bound_method.loc9_25.1: = bound_method %int_1, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.d5f] +// CHECK:STDOUT: %impl.elem0.loc9: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_25.1: = bound_method %int_1, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_25.2: = bound_method %int_1, %specific_fn.loc9 [concrete = constants.%bound_method.392] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_25.2(%int_1) [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc9_25.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.6b0] +// CHECK:STDOUT: %bound_method.loc9_25.2: = bound_method %int_1, %specific_fn.loc9 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_25.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_25.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc9_25.3: ref %i32 = class_element_access %b.var, element0 -// CHECK:STDOUT: %.loc9_25.4: init %i32 to %.loc9_25.3 = in_place_init %.loc9_25.2 [concrete = constants.%int_1.6b0] +// CHECK:STDOUT: %.loc9_25.4: init %i32 to %.loc9_25.3 = in_place_init %.loc9_25.2 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc9_25.5: init %Field to %b.var = class_init (%.loc9_25.4) [concrete = constants.%Field.val] // CHECK:STDOUT: %.loc9_3: init %Field = converted %.loc9_25.1, %.loc9_25.5 [concrete = constants.%Field.val] // CHECK:STDOUT: assign %b.var, %.loc9_3 // CHECK:STDOUT: %Field.ref: type = name_ref Field, imports.%Main.Field [concrete = constants.%Field] // CHECK:STDOUT: %b: ref %Field = ref_binding b, %b.var // CHECK:STDOUT: %b.ref: ref %Field = name_ref b, %b -// CHECK:STDOUT: %x.ref: %Field.elem = name_ref x, imports.%Main.import_ref.006 [concrete = imports.%.41e] +// CHECK:STDOUT: %x.ref: %Field.elem = name_ref x, imports.%Main.import_ref.5c1 [concrete = imports.%.860] // CHECK:STDOUT: %.loc10_4: ref %i32 = class_element_access %b.ref, element0 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc10: %.56d = impl_witness_access constants.%ImplicitAs.impl_witness.e84, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.785] -// CHECK:STDOUT: %bound_method.loc10_7.1: = bound_method %int_2, %impl.elem0.loc10 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cf8] +// CHECK:STDOUT: %impl.elem0.loc10: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_7.1: = bound_method %int_2, %impl.elem0.loc10 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_7.2: = bound_method %int_2, %specific_fn.loc10 [concrete = constants.%bound_method.90e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10: init %i32 = call %bound_method.loc10_7.2(%int_2) [concrete = constants.%int_2.c3d] -// CHECK:STDOUT: %.loc10_7: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10 [concrete = constants.%int_2.c3d] +// CHECK:STDOUT: %bound_method.loc10_7.2: = bound_method %int_2, %specific_fn.loc10 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10: init %i32 = call %bound_method.loc10_7.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc10_7: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10 [concrete = constants.%int_2.295] // CHECK:STDOUT: assign %.loc10_4, %.loc10_7 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.c30 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.c30 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.bdf = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.bdf = var_pattern %c.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %c.var: ref %ForwardDeclared.8a2991.1 = var %c.var_patt +// CHECK:STDOUT: %c.var: ref %ForwardDeclared.08bd4c.1 = var %c.var_patt // CHECK:STDOUT: %.loc12_29.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc12_29.2: init %ForwardDeclared.8a2991.1 to %c.var = class_init () [concrete = constants.%ForwardDeclared.val] -// CHECK:STDOUT: %.loc12_3: init %ForwardDeclared.8a2991.1 = converted %.loc12_29.1, %.loc12_29.2 [concrete = constants.%ForwardDeclared.val] +// CHECK:STDOUT: %.loc12_29.2: init %ForwardDeclared.08bd4c.1 to %c.var = class_init () [concrete = constants.%ForwardDeclared.val] +// CHECK:STDOUT: %.loc12_3: init %ForwardDeclared.08bd4c.1 = converted %.loc12_29.1, %.loc12_29.2 [concrete = constants.%ForwardDeclared.val] // CHECK:STDOUT: assign %c.var, %.loc12_3 -// CHECK:STDOUT: %ForwardDeclared.ref.loc12: type = name_ref ForwardDeclared, imports.%Main.ForwardDeclared [concrete = constants.%ForwardDeclared.8a2991.1] -// CHECK:STDOUT: %c: ref %ForwardDeclared.8a2991.1 = ref_binding c, %c.var -// CHECK:STDOUT: %c.ref.loc13: ref %ForwardDeclared.8a2991.1 = name_ref c, %c -// CHECK:STDOUT: %F.ref: %ForwardDeclared.F.type = name_ref F, imports.%Main.import_ref.d29 [concrete = constants.%ForwardDeclared.F] +// CHECK:STDOUT: %ForwardDeclared.ref.loc12: type = name_ref ForwardDeclared, imports.%Main.ForwardDeclared [concrete = constants.%ForwardDeclared.08bd4c.1] +// CHECK:STDOUT: %c: ref %ForwardDeclared.08bd4c.1 = ref_binding c, %c.var +// CHECK:STDOUT: %c.ref.loc13: ref %ForwardDeclared.08bd4c.1 = name_ref c, %c +// CHECK:STDOUT: %F.ref: %ForwardDeclared.F.type = name_ref F, imports.%Main.import_ref.bc9 [concrete = constants.%ForwardDeclared.F] // CHECK:STDOUT: %ForwardDeclared.F.bound: = bound_method %c.ref.loc13, %F.ref -// CHECK:STDOUT: %.loc13: %ForwardDeclared.8a2991.1 = acquire_value %c.ref.loc13 +// CHECK:STDOUT: %.loc13: %ForwardDeclared.08bd4c.1 = acquire_value %c.ref.loc13 // CHECK:STDOUT: %ForwardDeclared.F.call: init %empty_tuple.type = call %ForwardDeclared.F.bound(%.loc13) -// CHECK:STDOUT: %c.ref.loc14: ref %ForwardDeclared.8a2991.1 = name_ref c, %c -// CHECK:STDOUT: %G.ref: %ForwardDeclared.G.type = name_ref G, imports.%Main.import_ref.7f9 [concrete = constants.%ForwardDeclared.G] +// CHECK:STDOUT: %c.ref.loc14: ref %ForwardDeclared.08bd4c.1 = name_ref c, %c +// CHECK:STDOUT: %G.ref: %ForwardDeclared.G.type = name_ref G, imports.%Main.import_ref.341 [concrete = constants.%ForwardDeclared.G] // CHECK:STDOUT: %ForwardDeclared.G.bound: = bound_method %c.ref.loc14, %G.ref // CHECK:STDOUT: %ForwardDeclared.G.call: init %empty_tuple.type = call %ForwardDeclared.G.bound(%c.ref.loc14) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.88e = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.88e = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.8cd = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.8cd = var_pattern %d.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %d.var: ref %ptr.01c = var %d.var_patt -// CHECK:STDOUT: %c.ref.loc16: ref %ForwardDeclared.8a2991.1 = name_ref c, %c -// CHECK:STDOUT: %addr: %ptr.01c = addr_of %c.ref.loc16 -// CHECK:STDOUT: %impl.elem0.loc16: %.778 = impl_witness_access constants.%Copy.impl_witness.726, element0 [concrete = constants.%ptr.as.Copy.impl.Op.29e] +// CHECK:STDOUT: %d.var: ref %ptr.11e = var %d.var_patt +// CHECK:STDOUT: %c.ref.loc16: ref %ForwardDeclared.08bd4c.1 = name_ref c, %c +// CHECK:STDOUT: %addr: %ptr.11e = addr_of %c.ref.loc16 +// CHECK:STDOUT: %impl.elem0.loc16: %.882 = impl_witness_access constants.%Copy.impl_witness.966, element0 [concrete = constants.%ptr.as.Copy.impl.Op.5aa] // CHECK:STDOUT: %bound_method.loc16_36.1: = bound_method %addr, %impl.elem0.loc16 -// CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @ptr.as.Copy.impl.Op(constants.%ForwardDeclared.8a2991.1) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] +// CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @ptr.as.Copy.impl.Op(constants.%ForwardDeclared.08bd4c.1) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc16_36.2: = bound_method %addr, %specific_fn.loc16 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.01c = call %bound_method.loc16_36.2(%addr) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.11e = call %bound_method.loc16_36.2(%addr) // CHECK:STDOUT: assign %d.var, %ptr.as.Copy.impl.Op.call -// CHECK:STDOUT: %.loc16: type = splice_block %ptr.loc16 [concrete = constants.%ptr.01c] { -// CHECK:STDOUT: %ForwardDeclared.ref.loc16: type = name_ref ForwardDeclared, imports.%Main.ForwardDeclared [concrete = constants.%ForwardDeclared.8a2991.1] -// CHECK:STDOUT: %ptr.loc16: type = ptr_type %ForwardDeclared.ref.loc16 [concrete = constants.%ptr.01c] +// CHECK:STDOUT: %.loc16: type = splice_block %ptr.loc16 [concrete = constants.%ptr.11e] { +// CHECK:STDOUT: %ForwardDeclared.ref.loc16: type = name_ref ForwardDeclared, imports.%Main.ForwardDeclared [concrete = constants.%ForwardDeclared.08bd4c.1] +// CHECK:STDOUT: %ptr.loc16: type = ptr_type %ForwardDeclared.ref.loc16 [concrete = constants.%ptr.11e] // CHECK:STDOUT: } -// CHECK:STDOUT: %d: ref %ptr.01c = ref_binding d, %d.var +// CHECK:STDOUT: %d: ref %ptr.11e = ref_binding d, %d.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %e.patt: %pattern_type.56b = ref_binding_pattern e [concrete] -// CHECK:STDOUT: %e.var_patt: %pattern_type.56b = var_pattern %e.patt [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.bae = ref_binding_pattern e [concrete] +// CHECK:STDOUT: %e.var_patt: %pattern_type.bae = var_pattern %e.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %e.var: ref %ptr.a51 = var %e.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%ptr.a51, (constants.%DefaultOrUnformed.impl_witness.e64) [concrete = constants.%DefaultOrUnformed.facet] -// CHECK:STDOUT: %.loc18_28.1: %DefaultOrUnformed.type = converted constants.%ptr.a51, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] -// CHECK:STDOUT: %as_type: type = facet_access_type %.loc18_28.1 [concrete = constants.%ptr.a51] -// CHECK:STDOUT: %.loc18_28.2: type = converted %.loc18_28.1, %as_type [concrete = constants.%ptr.a51] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.36c, @T.as.DefaultOrUnformed.impl.Op(constants.%ptr.a51) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %ptr.a51 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: %e.var: ref %ptr.06d = var %e.var_patt +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%ptr.06d, (constants.%DefaultOrUnformed.impl_witness.3a6) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %.loc18_28.1: %DefaultOrUnformed.type = converted constants.%ptr.06d, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %as_type: type = facet_access_type %.loc18_28.1 [concrete = constants.%ptr.06d] +// CHECK:STDOUT: %.loc18_28.2: type = converted %.loc18_28.1, %as_type [concrete = constants.%ptr.06d] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.9c5, @T.as.DefaultOrUnformed.impl.Op(constants.%ptr.06d) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %ptr.06d = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign %e.var, %T.as.DefaultOrUnformed.impl.Op.call -// CHECK:STDOUT: %.loc18_27: type = splice_block %ptr.loc18 [concrete = constants.%ptr.a51] { +// CHECK:STDOUT: %.loc18_27: type = splice_block %ptr.loc18 [concrete = constants.%ptr.06d] { // CHECK:STDOUT: %Incomplete.ref: type = name_ref Incomplete, imports.%Main.Incomplete [concrete = constants.%Incomplete] -// CHECK:STDOUT: %ptr.loc18: type = ptr_type %Incomplete.ref [concrete = constants.%ptr.a51] +// CHECK:STDOUT: %ptr.loc18: type = ptr_type %Incomplete.ref [concrete = constants.%ptr.06d] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: ref %ptr.a51 = ref_binding e, %e.var -// CHECK:STDOUT: %Destroy.Op.bound.loc18: = bound_method %e.var, constants.%Destroy.Op.2dd605.1 +// CHECK:STDOUT: %e: ref %ptr.06d = ref_binding e, %e.var +// 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.2dd605.2 +// 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.2dd605.4 +// 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.2dd605.8 +// 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.2dd605.9 +// 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: return // CHECK:STDOUT: } @@ -443,13 +443,13 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: fn @ForwardDeclared.G [from "a.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18(%self.param: ref %ptr.a51) = "no_op"; +// CHECK:STDOUT: fn @Destroy.Op.loc18(%self.param: ref %ptr.06d) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16(%self.param: ref %ptr.01c) = "no_op"; +// CHECK:STDOUT: fn @Destroy.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: -// CHECK:STDOUT: fn @Destroy.Op.loc12_3.2(%self.param: ref %ForwardDeclared.8a2991.1) { +// CHECK:STDOUT: fn @Destroy.Op.loc12_3.2(%self.param: ref %ForwardDeclared.08bd4c.1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -461,7 +461,7 @@ fn Run() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %struct_type.x.375) { +// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %struct_type.x.a15) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/import_indirect.carbon b/toolchain/check/testdata/class/import_indirect.carbon index 37ed783910d4..0f6ccdbe2cd6 100644 --- a/toolchain/check/testdata/class/import_indirect.carbon +++ b/toolchain/check/testdata/class/import_indirect.carbon @@ -142,24 +142,24 @@ var ptr: E* = &value; // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %addr: %ptr.6be = addr_of file.%b_val.var [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %addr: %ptr.6b6 = addr_of file.%b_val.var [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.881: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.0ff: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5cf: %ptr.as.Copy.impl.Op.type.0ff = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.6be, (%Copy.impl_witness.881) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.d3f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.40e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d3f, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.5cf [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.5cf, @ptr.as.Copy.impl.Op(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.65f: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b22: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.c19: %ptr.as.Copy.impl.Op.type.b22 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.6b6, (%Copy.impl_witness.65f) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c6a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.a68: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c6a, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.c19 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.c19, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -171,10 +171,10 @@ var ptr: E* = &value; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//a, loc4_10, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -190,29 +190,29 @@ var ptr: E* = &value; // CHECK:STDOUT: %C.ref.loc6: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.ref.loc6 [concrete = constants.%C] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b_val.patt: %pattern_type.0d5 = ref_binding_pattern b_val [concrete] -// CHECK:STDOUT: %b_val.var_patt: %pattern_type.0d5 = var_pattern %b_val.patt [concrete] +// CHECK:STDOUT: %b_val.patt: %pattern_type.98b = ref_binding_pattern b_val [concrete] +// CHECK:STDOUT: %b_val.var_patt: %pattern_type.98b = var_pattern %b_val.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b_val.var: ref %C = var %b_val.var_patt [concrete] // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %b_val: ref %C = ref_binding b_val, %b_val.var [concrete = %b_val.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b_ptr.patt: %pattern_type.1c8 = ref_binding_pattern b_ptr [concrete] -// CHECK:STDOUT: %b_ptr.var_patt: %pattern_type.1c8 = var_pattern %b_ptr.patt [concrete] +// CHECK:STDOUT: %b_ptr.patt: %pattern_type.fcb = ref_binding_pattern b_ptr [concrete] +// CHECK:STDOUT: %b_ptr.var_patt: %pattern_type.fcb = var_pattern %b_ptr.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %b_ptr.var: ref %ptr.6be = var %b_ptr.var_patt [concrete] -// CHECK:STDOUT: %.loc9: type = splice_block %ptr [concrete = constants.%ptr.6be] { +// CHECK:STDOUT: %b_ptr.var: ref %ptr.6b6 = var %b_ptr.var_patt [concrete] +// CHECK:STDOUT: %.loc9: type = splice_block %ptr [concrete = constants.%ptr.6b6] { // CHECK:STDOUT: %D.ref: type = name_ref D, %D [concrete = constants.%C] -// CHECK:STDOUT: %ptr: type = ptr_type %D.ref [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr: type = ptr_type %D.ref [concrete = constants.%ptr.6b6] // CHECK:STDOUT: } -// CHECK:STDOUT: %b_ptr: ref %ptr.6be = ref_binding b_ptr, %b_ptr.var [concrete = %b_ptr.var] +// CHECK:STDOUT: %b_ptr: ref %ptr.6b6 = ref_binding b_ptr, %b_ptr.var [concrete = %b_ptr.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "a.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -222,12 +222,12 @@ var ptr: E* = &value; // CHECK:STDOUT: %.loc8_1: init %C = converted %.loc8_17.1, %.loc8_17.2 [concrete = constants.%C.val] // CHECK:STDOUT: assign file.%b_val.var, %.loc8_1 // CHECK:STDOUT: %b_val.ref: ref %C = name_ref b_val, file.%b_val [concrete = file.%b_val.var] -// CHECK:STDOUT: %addr: %ptr.6be = addr_of %b_val.ref [concrete = constants.%addr] -// CHECK:STDOUT: %impl.elem0: %.40e = impl_witness_access constants.%Copy.impl_witness.881, element0 [concrete = constants.%ptr.as.Copy.impl.Op.5cf] +// CHECK:STDOUT: %addr: %ptr.6b6 = addr_of %b_val.ref [concrete = constants.%addr] +// CHECK:STDOUT: %impl.elem0: %.a68 = impl_witness_access constants.%Copy.impl_witness.65f, element0 [concrete = constants.%ptr.as.Copy.impl.Op.c19] // CHECK:STDOUT: %bound_method.loc9_17.1: = bound_method %addr, %impl.elem0 [concrete = constants.%ptr.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%C) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9_17.2: = bound_method %addr, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.6be = call %bound_method.loc9_17.2(%addr) [concrete = constants.%addr] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.6b6 = call %bound_method.loc9_17.2(%addr) [concrete = constants.%addr] // CHECK:STDOUT: assign file.%b_ptr.var, %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -238,24 +238,24 @@ var ptr: E* = &value; // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %addr: %ptr.6be = addr_of file.%c_val.var [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %addr: %ptr.6b6 = addr_of file.%c_val.var [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.881: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.0ff: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5cf: %ptr.as.Copy.impl.Op.type.0ff = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.6be, (%Copy.impl_witness.881) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.d3f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.40e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d3f, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.5cf [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.5cf, @ptr.as.Copy.impl.Op(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.65f: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b22: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.c19: %ptr.as.Copy.impl.Op.type.b22 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.6b6, (%Copy.impl_witness.65f) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c6a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.a68: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c6a, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.c19 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.c19, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -267,10 +267,10 @@ var ptr: E* = &value; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//a, loc4_10, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -286,29 +286,29 @@ var ptr: E* = &value; // CHECK:STDOUT: %C.ref.loc6: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %E: type = alias_binding E, %C.ref.loc6 [concrete = constants.%C] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c_val.patt: %pattern_type.0d5 = ref_binding_pattern c_val [concrete] -// CHECK:STDOUT: %c_val.var_patt: %pattern_type.0d5 = var_pattern %c_val.patt [concrete] +// CHECK:STDOUT: %c_val.patt: %pattern_type.98b = ref_binding_pattern c_val [concrete] +// CHECK:STDOUT: %c_val.var_patt: %pattern_type.98b = var_pattern %c_val.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c_val.var: ref %C = var %c_val.var_patt [concrete] // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %c_val: ref %C = ref_binding c_val, %c_val.var [concrete = %c_val.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c_ptr.patt: %pattern_type.1c8 = ref_binding_pattern c_ptr [concrete] -// CHECK:STDOUT: %c_ptr.var_patt: %pattern_type.1c8 = var_pattern %c_ptr.patt [concrete] +// CHECK:STDOUT: %c_ptr.patt: %pattern_type.fcb = ref_binding_pattern c_ptr [concrete] +// CHECK:STDOUT: %c_ptr.var_patt: %pattern_type.fcb = var_pattern %c_ptr.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %c_ptr.var: ref %ptr.6be = var %c_ptr.var_patt [concrete] -// CHECK:STDOUT: %.loc9: type = splice_block %ptr [concrete = constants.%ptr.6be] { +// CHECK:STDOUT: %c_ptr.var: ref %ptr.6b6 = var %c_ptr.var_patt [concrete] +// CHECK:STDOUT: %.loc9: type = splice_block %ptr [concrete = constants.%ptr.6b6] { // CHECK:STDOUT: %E.ref: type = name_ref E, %E [concrete = constants.%C] -// CHECK:STDOUT: %ptr: type = ptr_type %E.ref [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr: type = ptr_type %E.ref [concrete = constants.%ptr.6b6] // CHECK:STDOUT: } -// CHECK:STDOUT: %c_ptr: ref %ptr.6be = ref_binding c_ptr, %c_ptr.var [concrete = %c_ptr.var] +// CHECK:STDOUT: %c_ptr: ref %ptr.6b6 = ref_binding c_ptr, %c_ptr.var [concrete = %c_ptr.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "a.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -318,12 +318,12 @@ var ptr: E* = &value; // CHECK:STDOUT: %.loc8_1: init %C = converted %.loc8_17.1, %.loc8_17.2 [concrete = constants.%C.val] // CHECK:STDOUT: assign file.%c_val.var, %.loc8_1 // CHECK:STDOUT: %c_val.ref: ref %C = name_ref c_val, file.%c_val [concrete = file.%c_val.var] -// CHECK:STDOUT: %addr: %ptr.6be = addr_of %c_val.ref [concrete = constants.%addr] -// CHECK:STDOUT: %impl.elem0: %.40e = impl_witness_access constants.%Copy.impl_witness.881, element0 [concrete = constants.%ptr.as.Copy.impl.Op.5cf] +// CHECK:STDOUT: %addr: %ptr.6b6 = addr_of %c_val.ref [concrete = constants.%addr] +// CHECK:STDOUT: %impl.elem0: %.a68 = impl_witness_access constants.%Copy.impl_witness.65f, element0 [concrete = constants.%ptr.as.Copy.impl.Op.c19] // CHECK:STDOUT: %bound_method.loc9_17.1: = bound_method %addr, %impl.elem0 [concrete = constants.%ptr.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%C) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9_17.2: = bound_method %addr, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.6be = call %bound_method.loc9_17.2(%addr) [concrete = constants.%addr] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.6b6 = call %bound_method.loc9_17.2(%addr) [concrete = constants.%addr] // CHECK:STDOUT: assign file.%c_ptr.var, %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -334,24 +334,24 @@ var ptr: E* = &value; // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %addr: %ptr.6be = addr_of file.%value.var [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %addr: %ptr.6b6 = addr_of file.%value.var [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.881: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.0ff: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5cf: %ptr.as.Copy.impl.Op.type.0ff = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.6be, (%Copy.impl_witness.881) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.d3f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.40e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d3f, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.5cf [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.5cf, @ptr.as.Copy.impl.Op(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.65f: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b22: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.c19: %ptr.as.Copy.impl.Op.type.b22 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.6b6, (%Copy.impl_witness.65f) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c6a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.a68: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c6a, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.c19 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.c19, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -366,10 +366,10 @@ var ptr: E* = &value; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//a, loc4_10, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -385,29 +385,29 @@ var ptr: E* = &value; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %value.patt: %pattern_type.0d5 = ref_binding_pattern value [concrete] -// CHECK:STDOUT: %value.var_patt: %pattern_type.0d5 = var_pattern %value.patt [concrete] +// CHECK:STDOUT: %value.patt: %pattern_type.98b = ref_binding_pattern value [concrete] +// CHECK:STDOUT: %value.var_patt: %pattern_type.98b = var_pattern %value.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %value.var: ref %C = var %value.var_patt [concrete] // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %value: ref %C = ref_binding value, %value.var [concrete = %value.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %ptr.patt: %pattern_type.1c8 = ref_binding_pattern ptr [concrete] -// CHECK:STDOUT: %ptr.var_patt: %pattern_type.1c8 = var_pattern %ptr.patt [concrete] +// CHECK:STDOUT: %ptr.patt: %pattern_type.fcb = ref_binding_pattern ptr [concrete] +// CHECK:STDOUT: %ptr.var_patt: %pattern_type.fcb = var_pattern %ptr.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %ptr.var: ref %ptr.6be = var %ptr.var_patt [concrete] -// CHECK:STDOUT: %.loc8: type = splice_block %ptr.loc8_11 [concrete = constants.%ptr.6be] { +// CHECK:STDOUT: %ptr.var: ref %ptr.6b6 = var %ptr.var_patt [concrete] +// CHECK:STDOUT: %.loc8: type = splice_block %ptr.loc8_11 [concrete = constants.%ptr.6b6] { // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc8_11: type = ptr_type %D.ref [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr.loc8_11: type = ptr_type %D.ref [concrete = constants.%ptr.6b6] // CHECK:STDOUT: } -// CHECK:STDOUT: %ptr.loc8_8: ref %ptr.6be = ref_binding ptr, %ptr.var [concrete = %ptr.var] +// CHECK:STDOUT: %ptr.loc8_8: ref %ptr.6b6 = ref_binding ptr, %ptr.var [concrete = %ptr.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "a.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -417,12 +417,12 @@ var ptr: E* = &value; // CHECK:STDOUT: %.loc7_1: init %C = converted %.loc7_17.1, %.loc7_17.2 [concrete = constants.%C.val] // CHECK:STDOUT: assign file.%value.var, %.loc7_1 // CHECK:STDOUT: %value.ref: ref %C = name_ref value, file.%value [concrete = file.%value.var] -// CHECK:STDOUT: %addr: %ptr.6be = addr_of %value.ref [concrete = constants.%addr] -// CHECK:STDOUT: %impl.elem0: %.40e = impl_witness_access constants.%Copy.impl_witness.881, element0 [concrete = constants.%ptr.as.Copy.impl.Op.5cf] +// CHECK:STDOUT: %addr: %ptr.6b6 = addr_of %value.ref [concrete = constants.%addr] +// CHECK:STDOUT: %impl.elem0: %.a68 = impl_witness_access constants.%Copy.impl_witness.65f, element0 [concrete = constants.%ptr.as.Copy.impl.Op.c19] // CHECK:STDOUT: %bound_method.loc8_15.1: = bound_method %addr, %impl.elem0 [concrete = constants.%ptr.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%C) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8_15.2: = bound_method %addr, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.6be = call %bound_method.loc8_15.2(%addr) [concrete = constants.%addr] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.6b6 = call %bound_method.loc8_15.2(%addr) [concrete = constants.%addr] // CHECK:STDOUT: assign file.%ptr.var, %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -433,24 +433,24 @@ var ptr: E* = &value; // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %addr: %ptr.6be = addr_of file.%value.var [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %addr: %ptr.6b6 = addr_of file.%value.var [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.881: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.0ff: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5cf: %ptr.as.Copy.impl.Op.type.0ff = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.6be, (%Copy.impl_witness.881) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.d3f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.40e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d3f, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.5cf [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.5cf, @ptr.as.Copy.impl.Op(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.65f: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b22: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.c19: %ptr.as.Copy.impl.Op.type.b22 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.6b6, (%Copy.impl_witness.65f) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c6a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.a68: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c6a, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.c19 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.c19, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -465,10 +465,10 @@ var ptr: E* = &value; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//a, loc4_10, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -484,29 +484,29 @@ var ptr: E* = &value; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %value.patt: %pattern_type.0d5 = ref_binding_pattern value [concrete] -// CHECK:STDOUT: %value.var_patt: %pattern_type.0d5 = var_pattern %value.patt [concrete] +// CHECK:STDOUT: %value.patt: %pattern_type.98b = ref_binding_pattern value [concrete] +// CHECK:STDOUT: %value.var_patt: %pattern_type.98b = var_pattern %value.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %value.var: ref %C = var %value.var_patt [concrete] // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %value: ref %C = ref_binding value, %value.var [concrete = %value.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %ptr.patt: %pattern_type.1c8 = ref_binding_pattern ptr [concrete] -// CHECK:STDOUT: %ptr.var_patt: %pattern_type.1c8 = var_pattern %ptr.patt [concrete] +// CHECK:STDOUT: %ptr.patt: %pattern_type.fcb = ref_binding_pattern ptr [concrete] +// CHECK:STDOUT: %ptr.var_patt: %pattern_type.fcb = var_pattern %ptr.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %ptr.var: ref %ptr.6be = var %ptr.var_patt [concrete] -// CHECK:STDOUT: %.loc8: type = splice_block %ptr.loc8_11 [concrete = constants.%ptr.6be] { +// CHECK:STDOUT: %ptr.var: ref %ptr.6b6 = var %ptr.var_patt [concrete] +// CHECK:STDOUT: %.loc8: type = splice_block %ptr.loc8_11 [concrete = constants.%ptr.6b6] { // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc8_11: type = ptr_type %D.ref [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr.loc8_11: type = ptr_type %D.ref [concrete = constants.%ptr.6b6] // CHECK:STDOUT: } -// CHECK:STDOUT: %ptr.loc8_8: ref %ptr.6be = ref_binding ptr, %ptr.var [concrete = %ptr.var] +// CHECK:STDOUT: %ptr.loc8_8: ref %ptr.6b6 = ref_binding ptr, %ptr.var [concrete = %ptr.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "a.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -516,12 +516,12 @@ var ptr: E* = &value; // CHECK:STDOUT: %.loc7_1: init %C = converted %.loc7_17.1, %.loc7_17.2 [concrete = constants.%C.val] // CHECK:STDOUT: assign file.%value.var, %.loc7_1 // CHECK:STDOUT: %value.ref: ref %C = name_ref value, file.%value [concrete = file.%value.var] -// CHECK:STDOUT: %addr: %ptr.6be = addr_of %value.ref [concrete = constants.%addr] -// CHECK:STDOUT: %impl.elem0: %.40e = impl_witness_access constants.%Copy.impl_witness.881, element0 [concrete = constants.%ptr.as.Copy.impl.Op.5cf] +// CHECK:STDOUT: %addr: %ptr.6b6 = addr_of %value.ref [concrete = constants.%addr] +// CHECK:STDOUT: %impl.elem0: %.a68 = impl_witness_access constants.%Copy.impl_witness.65f, element0 [concrete = constants.%ptr.as.Copy.impl.Op.c19] // CHECK:STDOUT: %bound_method.loc8_15.1: = bound_method %addr, %impl.elem0 [concrete = constants.%ptr.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%C) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8_15.2: = bound_method %addr, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.6be = call %bound_method.loc8_15.2(%addr) [concrete = constants.%addr] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.6b6 = call %bound_method.loc8_15.2(%addr) [concrete = constants.%addr] // CHECK:STDOUT: assign file.%ptr.var, %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -532,24 +532,24 @@ var ptr: E* = &value; // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %addr: %ptr.6be = addr_of file.%value.var [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %addr: %ptr.6b6 = addr_of file.%value.var [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.881: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.0ff: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5cf: %ptr.as.Copy.impl.Op.type.0ff = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.6be, (%Copy.impl_witness.881) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.d3f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.40e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d3f, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.5cf [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.5cf, @ptr.as.Copy.impl.Op(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.65f: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b22: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.c19: %ptr.as.Copy.impl.Op.type.b22 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.6b6, (%Copy.impl_witness.65f) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c6a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.a68: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c6a, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.c19 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.c19, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -566,10 +566,10 @@ var ptr: E* = &value; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//b, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//b, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//b, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -587,29 +587,29 @@ var ptr: E* = &value; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %value.patt: %pattern_type.0d5 = ref_binding_pattern value [concrete] -// CHECK:STDOUT: %value.var_patt: %pattern_type.0d5 = var_pattern %value.patt [concrete] +// CHECK:STDOUT: %value.patt: %pattern_type.98b = ref_binding_pattern value [concrete] +// CHECK:STDOUT: %value.var_patt: %pattern_type.98b = var_pattern %value.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %value.var: ref %C = var %value.var_patt [concrete] // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%C] // CHECK:STDOUT: %value: ref %C = ref_binding value, %value.var [concrete = %value.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %ptr.patt: %pattern_type.1c8 = ref_binding_pattern ptr [concrete] -// CHECK:STDOUT: %ptr.var_patt: %pattern_type.1c8 = var_pattern %ptr.patt [concrete] +// CHECK:STDOUT: %ptr.patt: %pattern_type.fcb = ref_binding_pattern ptr [concrete] +// CHECK:STDOUT: %ptr.var_patt: %pattern_type.fcb = var_pattern %ptr.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %ptr.var: ref %ptr.6be = var %ptr.var_patt [concrete] -// CHECK:STDOUT: %.loc8: type = splice_block %ptr.loc8_11 [concrete = constants.%ptr.6be] { +// CHECK:STDOUT: %ptr.var: ref %ptr.6b6 = var %ptr.var_patt [concrete] +// CHECK:STDOUT: %.loc8: type = splice_block %ptr.loc8_11 [concrete = constants.%ptr.6b6] { // CHECK:STDOUT: %E.ref: type = name_ref E, imports.%Main.E [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc8_11: type = ptr_type %E.ref [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr.loc8_11: type = ptr_type %E.ref [concrete = constants.%ptr.6b6] // CHECK:STDOUT: } -// CHECK:STDOUT: %ptr.loc8_8: ref %ptr.6be = ref_binding ptr, %ptr.var [concrete = %ptr.var] +// CHECK:STDOUT: %ptr.loc8_8: ref %ptr.6b6 = ref_binding ptr, %ptr.var [concrete = %ptr.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "b.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8db // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -619,12 +619,12 @@ var ptr: E* = &value; // CHECK:STDOUT: %.loc7_1: init %C = converted %.loc7_17.1, %.loc7_17.2 [concrete = constants.%C.val] // CHECK:STDOUT: assign file.%value.var, %.loc7_1 // CHECK:STDOUT: %value.ref: ref %C = name_ref value, file.%value [concrete = file.%value.var] -// CHECK:STDOUT: %addr: %ptr.6be = addr_of %value.ref [concrete = constants.%addr] -// CHECK:STDOUT: %impl.elem0: %.40e = impl_witness_access constants.%Copy.impl_witness.881, element0 [concrete = constants.%ptr.as.Copy.impl.Op.5cf] +// CHECK:STDOUT: %addr: %ptr.6b6 = addr_of %value.ref [concrete = constants.%addr] +// CHECK:STDOUT: %impl.elem0: %.a68 = impl_witness_access constants.%Copy.impl_witness.65f, element0 [concrete = constants.%ptr.as.Copy.impl.Op.c19] // CHECK:STDOUT: %bound_method.loc8_15.1: = bound_method %addr, %impl.elem0 [concrete = constants.%ptr.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%C) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8_15.2: = bound_method %addr, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.6be = call %bound_method.loc8_15.2(%addr) [concrete = constants.%addr] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.6b6 = call %bound_method.loc8_15.2(%addr) [concrete = constants.%addr] // CHECK:STDOUT: assign file.%ptr.var, %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -635,24 +635,24 @@ var ptr: E* = &value; // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %addr: %ptr.6be = addr_of file.%value.var [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %addr: %ptr.6b6 = addr_of file.%value.var [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.881: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.0ff: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5cf: %ptr.as.Copy.impl.Op.type.0ff = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.6be, (%Copy.impl_witness.881) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.d3f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.40e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d3f, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.5cf [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.5cf, @ptr.as.Copy.impl.Op(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.65f: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b22: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.c19: %ptr.as.Copy.impl.Op.type.b22 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.6b6, (%Copy.impl_witness.65f) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c6a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.a68: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c6a, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.c19 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.c19, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -669,10 +669,10 @@ var ptr: E* = &value; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//b, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//b, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//b, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -690,29 +690,29 @@ var ptr: E* = &value; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %value.patt: %pattern_type.0d5 = ref_binding_pattern value [concrete] -// CHECK:STDOUT: %value.var_patt: %pattern_type.0d5 = var_pattern %value.patt [concrete] +// CHECK:STDOUT: %value.patt: %pattern_type.98b = ref_binding_pattern value [concrete] +// CHECK:STDOUT: %value.var_patt: %pattern_type.98b = var_pattern %value.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %value.var: ref %C = var %value.var_patt [concrete] // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%C] // CHECK:STDOUT: %value: ref %C = ref_binding value, %value.var [concrete = %value.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %ptr.patt: %pattern_type.1c8 = ref_binding_pattern ptr [concrete] -// CHECK:STDOUT: %ptr.var_patt: %pattern_type.1c8 = var_pattern %ptr.patt [concrete] +// CHECK:STDOUT: %ptr.patt: %pattern_type.fcb = ref_binding_pattern ptr [concrete] +// CHECK:STDOUT: %ptr.var_patt: %pattern_type.fcb = var_pattern %ptr.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %ptr.var: ref %ptr.6be = var %ptr.var_patt [concrete] -// CHECK:STDOUT: %.loc8: type = splice_block %ptr.loc8_11 [concrete = constants.%ptr.6be] { +// CHECK:STDOUT: %ptr.var: ref %ptr.6b6 = var %ptr.var_patt [concrete] +// CHECK:STDOUT: %.loc8: type = splice_block %ptr.loc8_11 [concrete = constants.%ptr.6b6] { // CHECK:STDOUT: %E.ref: type = name_ref E, imports.%Main.E [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc8_11: type = ptr_type %E.ref [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr.loc8_11: type = ptr_type %E.ref [concrete = constants.%ptr.6b6] // CHECK:STDOUT: } -// CHECK:STDOUT: %ptr.loc8_8: ref %ptr.6be = ref_binding ptr, %ptr.var [concrete = %ptr.var] +// CHECK:STDOUT: %ptr.loc8_8: ref %ptr.6b6 = ref_binding ptr, %ptr.var [concrete = %ptr.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "b.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8db // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -722,12 +722,12 @@ var ptr: E* = &value; // CHECK:STDOUT: %.loc7_1: init %C = converted %.loc7_17.1, %.loc7_17.2 [concrete = constants.%C.val] // CHECK:STDOUT: assign file.%value.var, %.loc7_1 // CHECK:STDOUT: %value.ref: ref %C = name_ref value, file.%value [concrete = file.%value.var] -// CHECK:STDOUT: %addr: %ptr.6be = addr_of %value.ref [concrete = constants.%addr] -// CHECK:STDOUT: %impl.elem0: %.40e = impl_witness_access constants.%Copy.impl_witness.881, element0 [concrete = constants.%ptr.as.Copy.impl.Op.5cf] +// CHECK:STDOUT: %addr: %ptr.6b6 = addr_of %value.ref [concrete = constants.%addr] +// CHECK:STDOUT: %impl.elem0: %.a68 = impl_witness_access constants.%Copy.impl_witness.65f, element0 [concrete = constants.%ptr.as.Copy.impl.Op.c19] // CHECK:STDOUT: %bound_method.loc8_15.1: = bound_method %addr, %impl.elem0 [concrete = constants.%ptr.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%C) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8_15.2: = bound_method %addr, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.6be = call %bound_method.loc8_15.2(%addr) [concrete = constants.%addr] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.6b6 = call %bound_method.loc8_15.2(%addr) [concrete = constants.%addr] // CHECK:STDOUT: assign file.%ptr.var, %ptr.as.Copy.impl.Op.call // 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 78abc97e6d8a..e49df495357e 100644 --- a/toolchain/check/testdata/class/import_member_cycle.carbon +++ b/toolchain/check/testdata/class/import_member_cycle.carbon @@ -76,17 +76,17 @@ fn Run() { // CHECK:STDOUT: %Cycle: type = class_type @Cycle [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %Cycle [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %ptr} [concrete] -// CHECK:STDOUT: %complete_type.0df: = complete_type_witness %struct_type.a [concrete] -// CHECK:STDOUT: %pattern_type.c85: type = pattern_type %ptr [concrete] +// CHECK:STDOUT: %complete_type.de4: = complete_type_witness %struct_type.a [concrete] +// CHECK:STDOUT: %pattern_type.c3e: type = pattern_type %ptr [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.a11: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%ptr) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.c4f: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%ptr) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.815: %T.as.DefaultOrUnformed.impl.Op.type.c4f = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr, (%DefaultOrUnformed.impl_witness.a11) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.815, @T.as.DefaultOrUnformed.impl.Op(%ptr) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.961: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%ptr) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.3bf: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%ptr) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.85a: %T.as.DefaultOrUnformed.impl.Op.type.3bf = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr, (%DefaultOrUnformed.impl_witness.961) [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] @@ -100,12 +100,12 @@ fn Run() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.958: = import_ref Main//a, loc6_1, loaded [concrete = constants.%complete_type.0df] -// CHECK:STDOUT: %Main.import_ref.b4f = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.8d6 = import_ref Main//a, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.8f0: = import_ref Main//a, loc6_1, loaded [concrete = constants.%complete_type.de4] +// CHECK:STDOUT: %Main.import_ref.3b0 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.40b = import_ref Main//a, loc5_8, unloaded // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -121,25 +121,25 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Cycle [from "a.carbon"] { -// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.958 +// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f0 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.b4f -// CHECK:STDOUT: .a = imports.%Main.import_ref.8d6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.3b0 +// CHECK:STDOUT: .a = imports.%Main.import_ref.40b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.c85 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.c85 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.c3e = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.c3e = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %ptr = var %a.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%ptr, (constants.%DefaultOrUnformed.impl_witness.a11) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%ptr, (constants.%DefaultOrUnformed.impl_witness.961) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc7_23.1: %DefaultOrUnformed.type = converted constants.%ptr, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_23.1 [concrete = constants.%ptr] // CHECK:STDOUT: %.loc7_23.2: type = converted %.loc7_23.1, %as_type [concrete = constants.%ptr] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.815, @T.as.DefaultOrUnformed.impl.Op(constants.%ptr) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.85a, @T.as.DefaultOrUnformed.impl.Op(constants.%ptr) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %ptr = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign %a.var, %T.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: %.loc7_22: type = splice_block %ptr [concrete = constants.%ptr] { diff --git a/toolchain/check/testdata/class/import_struct_cycle.carbon b/toolchain/check/testdata/class/import_struct_cycle.carbon index 4616344f64f1..2a99ec7e3139 100644 --- a/toolchain/check/testdata/class/import_struct_cycle.carbon +++ b/toolchain/check/testdata/class/import_struct_cycle.carbon @@ -41,19 +41,19 @@ fn Run() { // CHECK:STDOUT: %Cycle: type = class_type @Cycle [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %Cycle [concrete] // CHECK:STDOUT: %struct_type.b: type = struct_type {.b: %ptr} [concrete] -// CHECK:STDOUT: %pattern_type.823: type = pattern_type %struct_type.b [concrete] +// CHECK:STDOUT: %pattern_type.38c: type = pattern_type %struct_type.b [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.cc8: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%struct_type.b) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.94e: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%struct_type.b) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.56e: %T.as.DefaultOrUnformed.impl.Op.type.94e = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %struct_type.b, (%DefaultOrUnformed.impl_witness.cc8) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.56e, @T.as.DefaultOrUnformed.impl.Op(%struct_type.b) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.b8b: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%struct_type.b) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.49c: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%struct_type.b) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.74d: %T.as.DefaultOrUnformed.impl.Op.type.49c = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %struct_type.b, (%DefaultOrUnformed.impl_witness.b8b) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.74d, @T.as.DefaultOrUnformed.impl.Op(%struct_type.b) [concrete] // CHECK:STDOUT: %Cycle.elem: type = unbound_element_type %Cycle, %struct_type.b [concrete] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %struct_type.b} [concrete] -// CHECK:STDOUT: %complete_type.a87: = complete_type_witness %struct_type.c [concrete] +// CHECK:STDOUT: %complete_type.663: = complete_type_witness %struct_type.c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -63,8 +63,8 @@ fn Run() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -76,8 +76,8 @@ fn Run() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Cycle.decl.loc4: type = class_decl @Cycle [concrete = constants.%Cycle] {} {} // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.823 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.823 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.38c = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.38c = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %struct_type.b = var %a.var_patt [concrete] // CHECK:STDOUT: %.loc6: type = splice_block %struct_type.b [concrete = constants.%struct_type.b] { @@ -91,7 +91,7 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: class @Cycle { // CHECK:STDOUT: %.loc10: %Cycle.elem = field_decl c, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.c [concrete = constants.%complete_type.a87] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.c [concrete = constants.%complete_type.663] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -102,11 +102,11 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%struct_type.b, (constants.%DefaultOrUnformed.impl_witness.cc8) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%struct_type.b, (constants.%DefaultOrUnformed.impl_witness.b8b) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc6_20.1: %DefaultOrUnformed.type = converted constants.%struct_type.b, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc6_20.1 [concrete = constants.%struct_type.b] // CHECK:STDOUT: %.loc6_20.2: type = converted %.loc6_20.1, %as_type [concrete = constants.%struct_type.b] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.56e, @T.as.DefaultOrUnformed.impl.Op(constants.%struct_type.b) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.74d, @T.as.DefaultOrUnformed.impl.Op(constants.%struct_type.b) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %struct_type.b = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign file.%a.var, %T.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: return @@ -118,24 +118,24 @@ fn Run() { // CHECK:STDOUT: %Run.type: type = fn_type @Run [concrete] // CHECK:STDOUT: %Run: %Run.type = struct_value () [concrete] // CHECK:STDOUT: %Cycle: type = class_type @Cycle [concrete] -// CHECK:STDOUT: %ptr.9e6: type = ptr_type %Cycle [concrete] -// CHECK:STDOUT: %struct_type.b: type = struct_type {.b: %ptr.9e6} [concrete] +// CHECK:STDOUT: %ptr.5cd: type = ptr_type %Cycle [concrete] +// CHECK:STDOUT: %struct_type.b: type = struct_type {.b: %ptr.5cd} [concrete] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %struct_type.b} [concrete] -// CHECK:STDOUT: %complete_type.a87: = complete_type_witness %struct_type.c [concrete] -// CHECK:STDOUT: %pattern_type.823: type = pattern_type %struct_type.b [concrete] -// CHECK:STDOUT: %.8b8: ref %ptr.9e6 = struct_access imports.%a.var, element0 [concrete] +// CHECK:STDOUT: %complete_type.663: = complete_type_witness %struct_type.c [concrete] +// CHECK:STDOUT: %pattern_type.38c: type = pattern_type %struct_type.b [concrete] +// CHECK:STDOUT: %.d98: ref %ptr.5cd = struct_access imports.%a.var, element0 [concrete] // CHECK:STDOUT: %Cycle.elem: type = unbound_element_type %Cycle, %struct_type.b [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.594: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%Cycle) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.8cb: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Cycle) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.3ca: %ptr.as.Copy.impl.Op.type.8cb = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.9e6, (%Copy.impl_witness.594) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.b54: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.9aa: type = fn_type_with_self_type %Copy.WithSelf.Op.type.b54, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.3ca, @ptr.as.Copy.impl.Op(%Cycle) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.fd3: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%Cycle) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.088: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Cycle) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.fb2: %ptr.as.Copy.impl.Op.type.088 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.5cd, (%Copy.impl_witness.fd3) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.783: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.00d: type = fn_type_with_self_type %Copy.WithSelf.Op.type.783, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.fb2, @ptr.as.Copy.impl.Op(%Cycle) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -146,16 +146,16 @@ fn Run() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.e17: = import_ref Main//a, loc11_1, loaded [concrete = constants.%complete_type.a87] -// CHECK:STDOUT: %Main.import_ref.b4f = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.397: %Cycle.elem = import_ref Main//a, loc10_8, loaded [concrete = %.1df] -// CHECK:STDOUT: %a.patt: %pattern_type.823 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.823 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %Main.import_ref.281: = import_ref Main//a, loc11_1, loaded [concrete = constants.%complete_type.663] +// CHECK:STDOUT: %Main.import_ref.3b0 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.697: %Cycle.elem = import_ref Main//a, loc10_8, loaded [concrete = %.ec0] +// CHECK:STDOUT: %a.patt: %pattern_type.38c = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.38c = var_pattern %a.patt [concrete] // CHECK:STDOUT: %a.var: ref %struct_type.b = var %a.var_patt [concrete] -// CHECK:STDOUT: %.1df: %Cycle.elem = field_decl c, element0 [concrete] +// CHECK:STDOUT: %.ec0: %Cycle.elem = field_decl c, element0 [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -171,30 +171,30 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Cycle [from "a.carbon"] { -// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.e17 +// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.281 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.b4f -// CHECK:STDOUT: .c = imports.%Main.import_ref.397 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.3b0 +// CHECK:STDOUT: .c = imports.%Main.import_ref.697 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref.loc7_3: ref %struct_type.b = name_ref a, imports.%Main.a [concrete = imports.%a.var] -// CHECK:STDOUT: %.loc7_4: ref %ptr.9e6 = struct_access %a.ref.loc7_3, element0 [concrete = constants.%.8b8] +// CHECK:STDOUT: %.loc7_4: ref %ptr.5cd = struct_access %a.ref.loc7_3, element0 [concrete = constants.%.d98] // CHECK:STDOUT: %a.ref.loc7_11: ref %struct_type.b = name_ref a, imports.%Main.a [concrete = imports.%a.var] -// CHECK:STDOUT: %.loc7_12.1: ref %ptr.9e6 = struct_access %a.ref.loc7_11, element0 [concrete = constants.%.8b8] -// CHECK:STDOUT: %.loc7_12.2: %ptr.9e6 = acquire_value %.loc7_12.1 +// CHECK:STDOUT: %.loc7_12.1: ref %ptr.5cd = struct_access %a.ref.loc7_11, element0 [concrete = constants.%.d98] +// CHECK:STDOUT: %.loc7_12.2: %ptr.5cd = acquire_value %.loc7_12.1 // CHECK:STDOUT: %.loc7_10: ref %Cycle = deref %.loc7_12.2 -// CHECK:STDOUT: %c.ref: %Cycle.elem = name_ref c, imports.%Main.import_ref.397 [concrete = imports.%.1df] +// CHECK:STDOUT: %c.ref: %Cycle.elem = name_ref c, imports.%Main.import_ref.697 [concrete = imports.%.ec0] // CHECK:STDOUT: %.loc7_15: ref %struct_type.b = class_element_access %.loc7_10, element0 -// CHECK:STDOUT: %.loc7_17.1: ref %ptr.9e6 = struct_access %.loc7_15, element0 -// CHECK:STDOUT: %.loc7_17.2: %ptr.9e6 = acquire_value %.loc7_17.1 -// CHECK:STDOUT: %impl.elem0: %.9aa = impl_witness_access constants.%Copy.impl_witness.594, element0 [concrete = constants.%ptr.as.Copy.impl.Op.3ca] +// CHECK:STDOUT: %.loc7_17.1: ref %ptr.5cd = struct_access %.loc7_15, element0 +// CHECK:STDOUT: %.loc7_17.2: %ptr.5cd = acquire_value %.loc7_17.1 +// CHECK:STDOUT: %impl.elem0: %.00d = impl_witness_access constants.%Copy.impl_witness.fd3, element0 [concrete = constants.%ptr.as.Copy.impl.Op.fb2] // CHECK:STDOUT: %bound_method.loc7_17.1: = bound_method %.loc7_17.2, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%Cycle) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc7_17.2: = bound_method %.loc7_17.2, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.9e6 = call %bound_method.loc7_17.2(%.loc7_17.2) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.5cd = call %bound_method.loc7_17.2(%.loc7_17.2) // CHECK:STDOUT: assign %.loc7_4, %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/indirect_import_member.carbon b/toolchain/check/testdata/class/indirect_import_member.carbon index f5e48609d402..bf6f77a376d8 100644 --- a/toolchain/check/testdata/class/indirect_import_member.carbon +++ b/toolchain/check/testdata/class/indirect_import_member.carbon @@ -160,8 +160,8 @@ var x: () = D.C.F(); // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//a, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//a, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ad7 = import_ref Main//a, loc5_10, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.439 = import_ref Main//a, loc5_10, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -176,8 +176,8 @@ var x: () = D.C.F(); // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .F = imports.%Main.import_ref.ad7 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .F = imports.%Main.import_ref.439 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- d.carbon @@ -205,8 +205,8 @@ var x: () = D.C.F(); // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//c, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//c, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//c, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.ab5 = import_ref Main//c, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//c, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.be7 = import_ref Main//c, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -234,8 +234,8 @@ var x: () = D.C.F(); // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8db // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 -// CHECK:STDOUT: .F = imports.%Main.import_ref.ab5 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 +// CHECK:STDOUT: .F = imports.%Main.import_ref.be7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- f.carbon @@ -267,8 +267,8 @@ var x: () = D.C.F(); // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//a, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//a, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.d29: %C.F.type = import_ref Main//a, loc5_10, loaded [concrete = constants.%C.F] +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.bc9: %C.F.type = import_ref Main//a, loc5_10, loaded [concrete = constants.%C.F] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -293,8 +293,8 @@ var x: () = D.C.F(); // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .F = imports.%Main.import_ref.d29 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .F = imports.%Main.import_ref.bc9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.F [from "a.carbon"]; @@ -302,7 +302,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %F.ref: %C.F.type = name_ref F, imports.%Main.import_ref.d29 [concrete = constants.%C.F] +// CHECK:STDOUT: %F.ref: %C.F.type = name_ref F, imports.%Main.import_ref.bc9 [concrete = constants.%C.F] // CHECK:STDOUT: %C.F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: assign file.%x.var, %C.F.call // CHECK:STDOUT: return @@ -324,8 +324,8 @@ var x: () = D.C.F(); // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//c, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//c, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//c, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.f46: %C.F.type = import_ref Main//c, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%C.F] +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//c, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.9e7: %C.F.type = import_ref Main//c, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%C.F] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -350,8 +350,8 @@ var x: () = D.C.F(); // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8db // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 -// CHECK:STDOUT: .F = imports.%Main.import_ref.f46 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 +// CHECK:STDOUT: .F = imports.%Main.import_ref.9e7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.F [from "a.carbon"]; @@ -359,7 +359,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %F.ref: %C.F.type = name_ref F, imports.%Main.import_ref.f46 [concrete = constants.%C.F] +// CHECK:STDOUT: %F.ref: %C.F.type = name_ref F, imports.%Main.import_ref.9e7 [concrete = constants.%C.F] // CHECK:STDOUT: %C.F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: assign file.%x.var, %C.F.call // CHECK:STDOUT: return @@ -381,8 +381,8 @@ var x: () = D.C.F(); // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//c, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//c, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//c, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.f46: %C.F.type = import_ref Main//c, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%C.F] +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//c, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.9e7: %C.F.type = import_ref Main//c, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%C.F] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -407,8 +407,8 @@ var x: () = D.C.F(); // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8db // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 -// CHECK:STDOUT: .F = imports.%Main.import_ref.f46 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 +// CHECK:STDOUT: .F = imports.%Main.import_ref.9e7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.F [from "a.carbon"]; @@ -416,7 +416,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %F.ref: %C.F.type = name_ref F, imports.%Main.import_ref.f46 [concrete = constants.%C.F] +// CHECK:STDOUT: %F.ref: %C.F.type = name_ref F, imports.%Main.import_ref.9e7 [concrete = constants.%C.F] // CHECK:STDOUT: %C.F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: assign file.%x.var, %C.F.call // CHECK:STDOUT: return @@ -439,11 +439,11 @@ var x: () = D.C.F(); // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.D: type = import_ref Main//e, D, loaded [concrete = constants.%D] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//e, loc8_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.c42 = import_ref Main//e, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.531: type = import_ref Main//e, loc7_9, loaded [concrete = constants.%C] +// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//e, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.8d8: type = import_ref Main//e, loc7_9, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f3: = import_ref Main//e, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.a5e = import_ref Main//e, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.e77: %C.F.type = import_ref Main//e, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%C.F] +// CHECK:STDOUT: %Main.import_ref.045 = import_ref Main//e, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.ad9: %C.F.type = import_ref Main//e, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%C.F] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -468,16 +468,16 @@ var x: () = D.C.F(); // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.c42 -// CHECK:STDOUT: .C = imports.%Main.import_ref.531 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.54a +// CHECK:STDOUT: .C = imports.%Main.import_ref.8d8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "e.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.a5e -// CHECK:STDOUT: .F = imports.%Main.import_ref.e77 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.045 +// CHECK:STDOUT: .F = imports.%Main.import_ref.ad9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.F [from "a.carbon"]; @@ -485,8 +485,8 @@ var x: () = D.C.F(); // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%D] -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.import_ref.531 [concrete = constants.%C] -// CHECK:STDOUT: %F.ref: %C.F.type = name_ref F, imports.%Main.import_ref.e77 [concrete = constants.%C.F] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.import_ref.8d8 [concrete = constants.%C] +// CHECK:STDOUT: %F.ref: %C.F.type = name_ref F, imports.%Main.import_ref.ad9 [concrete = constants.%C.F] // CHECK:STDOUT: %C.F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: assign file.%x.var, %C.F.call // CHECK:STDOUT: return @@ -509,11 +509,11 @@ var x: () = D.C.F(); // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.D: type = import_ref Main//e, D, loaded [concrete = constants.%D] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//e, loc8_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.c42 = import_ref Main//e, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.531: type = import_ref Main//e, loc7_9, loaded [concrete = constants.%C] +// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//e, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.8d8: type = import_ref Main//e, loc7_9, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f3: = import_ref Main//e, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.a5e = import_ref Main//e, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.e77: %C.F.type = import_ref Main//e, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%C.F] +// CHECK:STDOUT: %Main.import_ref.045 = import_ref Main//e, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.ad9: %C.F.type = import_ref Main//e, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%C.F] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -538,16 +538,16 @@ var x: () = D.C.F(); // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.c42 -// CHECK:STDOUT: .C = imports.%Main.import_ref.531 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.54a +// CHECK:STDOUT: .C = imports.%Main.import_ref.8d8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "e.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.a5e -// CHECK:STDOUT: .F = imports.%Main.import_ref.e77 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.045 +// CHECK:STDOUT: .F = imports.%Main.import_ref.ad9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.F [from "a.carbon"]; @@ -555,8 +555,8 @@ var x: () = D.C.F(); // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%D] -// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.import_ref.531 [concrete = constants.%C] -// CHECK:STDOUT: %F.ref: %C.F.type = name_ref F, imports.%Main.import_ref.e77 [concrete = constants.%C.F] +// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.import_ref.8d8 [concrete = constants.%C] +// CHECK:STDOUT: %F.ref: %C.F.type = name_ref F, imports.%Main.import_ref.ad9 [concrete = constants.%C.F] // CHECK:STDOUT: %C.F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: assign file.%x.var, %C.F.call // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/class/inheritance/base.carbon b/toolchain/check/testdata/class/inheritance/base.carbon index 55529ec3031a..93873e57b72d 100644 --- a/toolchain/check/testdata/class/inheritance/base.carbon +++ b/toolchain/check/testdata/class/inheritance/base.carbon @@ -59,15 +59,15 @@ class Derived { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [concrete] -// CHECK:STDOUT: %struct_type.b.676: type = struct_type {.b: %i32} [concrete] -// CHECK:STDOUT: %complete_type.ec5: = complete_type_witness %struct_type.b.676 [concrete] +// CHECK:STDOUT: %struct_type.b.0bf: type = struct_type {.b: %i32} [concrete] +// CHECK:STDOUT: %complete_type.330: = complete_type_witness %struct_type.b.0bf [concrete] // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] -// CHECK:STDOUT: %Derived.elem.036: type = unbound_element_type %Derived, %Base [concrete] -// CHECK:STDOUT: %Derived.elem.51e: type = unbound_element_type %Derived, %i32 [concrete] -// CHECK:STDOUT: %struct_type.base.d.93e: type = struct_type {.base: %Base, .d: %i32} [concrete] -// CHECK:STDOUT: %complete_type.5cf: = complete_type_witness %struct_type.base.d.93e [concrete] -// CHECK:STDOUT: %.719: Core.Form = init_form %Derived [concrete] -// CHECK:STDOUT: %pattern_type.cd6: type = pattern_type %Derived [concrete] +// CHECK:STDOUT: %Derived.elem.e51: type = unbound_element_type %Derived, %Base [concrete] +// CHECK:STDOUT: %Derived.elem.a2d: type = unbound_element_type %Derived, %i32 [concrete] +// CHECK:STDOUT: %struct_type.base.d.90a: type = struct_type {.base: %Base, .d: %i32} [concrete] +// CHECK:STDOUT: %complete_type.2d7: = complete_type_witness %struct_type.base.d.90a [concrete] +// CHECK:STDOUT: %.2c5: Core.Form = init_form %Derived [concrete] +// CHECK:STDOUT: %pattern_type.4fd: type = pattern_type %Derived [concrete] // CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete] // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] @@ -76,46 +76,46 @@ class Derived { // CHECK:STDOUT: %int_7.29f: Core.IntLiteral = int_value 7 [concrete] // CHECK:STDOUT: %struct_type.base.d.a20: type = struct_type {.base: %struct_type.b.a15, .d: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.ab7: %struct_type.base.d.a20 = struct_value (%struct.a2e, %int_7.29f) [concrete] -// CHECK:STDOUT: %.505: type = partial_type %Base [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %.469: type = partial_type %Base [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.9f5: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_4.a4d: %i32 = int_value 4 [concrete] -// CHECK:STDOUT: %struct.cde: %.505 = struct_value (%int_4.a4d) [concrete] -// CHECK:STDOUT: %Base.val: %Base = struct_value (%int_4.a4d) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.286: = bound_method %int_7.29f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.936: = bound_method %int_7.29f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_7.c44: %i32 = int_value 7 [concrete] -// CHECK:STDOUT: %Derived.val: %Derived = struct_value (%Base.val, %int_7.c44) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %struct.4be: %.469 = struct_value (%int_4.4eb) [concrete] +// CHECK:STDOUT: %Base.val: %Base = struct_value (%int_4.4eb) [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] +// CHECK:STDOUT: %int_7.690: %i32 = int_value 7 [concrete] +// CHECK:STDOUT: %Derived.val: %Derived = struct_value (%Base.val, %int_7.690) [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.79d: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] -// CHECK:STDOUT: %.ac5: Core.Form = init_form %tuple.type.e5a [concrete] -// CHECK:STDOUT: %pattern_type.7d6: type = pattern_type %tuple.type.e5a [concrete] +// CHECK:STDOUT: %tuple.b59: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %.c11: Core.Form = init_form %tuple.type.e55 [concrete] +// CHECK:STDOUT: %pattern_type.394: type = pattern_type %tuple.type.e55 [concrete] // CHECK:STDOUT: %Access.type: type = fn_type @Access [concrete] // CHECK:STDOUT: %Access: %Access.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -127,12 +127,12 @@ class Derived { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -147,36 +147,36 @@ class Derived { // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.cd6 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.cd6 = return_slot_pattern %return.param_patt, %Derived.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.4fd = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.4fd = return_slot_pattern %return.param_patt, %Derived.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] -// CHECK:STDOUT: %.loc13: Core.Form = init_form %Derived.ref [concrete = constants.%.719] +// CHECK:STDOUT: %.loc13: Core.Form = init_form %Derived.ref [concrete = constants.%.2c5] // CHECK:STDOUT: %return.param: ref %Derived = out_param call_param0 // CHECK:STDOUT: %return: ref %Derived = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] { -// CHECK:STDOUT: %d.param_patt: %pattern_type.cd6 = value_param_pattern [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.cd6 = at_binding_pattern d, %d.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7d6 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7d6 = return_slot_pattern %return.param_patt, %.loc17_35.2 [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.4fd = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.4fd = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.394 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.394 = return_slot_pattern %return.param_patt, %.loc17_35.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc17_27: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc17_32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc17_35.1: %tuple.type.24b = tuple_literal (%i32.loc17_27, %i32.loc17_32) [concrete = constants.%tuple.79d] -// CHECK:STDOUT: %.loc17_35.2: type = converted %.loc17_35.1, constants.%tuple.type.e5a [concrete = constants.%tuple.type.e5a] -// CHECK:STDOUT: %.loc17_35.3: Core.Form = init_form %.loc17_35.2 [concrete = constants.%.ac5] +// CHECK:STDOUT: %.loc17_35.1: %tuple.type.24b = tuple_literal (%i32.loc17_27, %i32.loc17_32) [concrete = constants.%tuple.b59] +// CHECK:STDOUT: %.loc17_35.2: type = converted %.loc17_35.1, constants.%tuple.type.e55 [concrete = constants.%tuple.type.e55] +// CHECK:STDOUT: %.loc17_35.3: Core.Form = init_form %.loc17_35.2 [concrete = constants.%.c11] // CHECK:STDOUT: %d.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] // CHECK:STDOUT: %d: %Derived = value_binding d, %d.param -// CHECK:STDOUT: %return.param: ref %tuple.type.e5a = out_param call_param1 -// CHECK:STDOUT: %return: ref %tuple.type.e5a = return_slot %return.param +// CHECK:STDOUT: %return.param: ref %tuple.type.e55 = out_param call_param1 +// CHECK:STDOUT: %return: ref %tuple.type.e55 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Base { // CHECK:STDOUT: %.loc4: %Base.elem = field_decl b, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.b.676 [concrete = constants.%complete_type.ec5] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.b.0bf [concrete = constants.%complete_type.330] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -186,9 +186,9 @@ class Derived { // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] -// CHECK:STDOUT: %.loc8: %Derived.elem.036 = base_decl %Base.ref, element0 [concrete] -// CHECK:STDOUT: %.loc10: %Derived.elem.51e = field_decl d, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d.93e [concrete = constants.%complete_type.5cf] +// CHECK:STDOUT: %.loc8: %Derived.elem.e51 = base_decl %Base.ref, element0 [concrete] +// CHECK:STDOUT: %.loc10: %Derived.elem.a2d = field_decl d, element1 [concrete] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d.90a [concrete = constants.%complete_type.2d7] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -205,61 +205,61 @@ class Derived { // CHECK:STDOUT: %.loc14_26.1: %struct_type.b.a15 = struct_literal (%int_4) [concrete = constants.%struct.a2e] // CHECK:STDOUT: %int_7: Core.IntLiteral = int_value 7 [concrete = constants.%int_7.29f] // CHECK:STDOUT: %.loc14_35.1: %struct_type.base.d.a20 = struct_literal (%.loc14_26.1, %int_7) [concrete = constants.%struct.ab7] -// CHECK:STDOUT: %impl.elem0.loc14_26: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc14_26.1: = bound_method %int_4, %impl.elem0.loc14_26 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe] +// CHECK:STDOUT: %impl.elem0.loc14_26: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc14_26.1: = bound_method %int_4, %impl.elem0.loc14_26 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad] // CHECK:STDOUT: %specific_fn.loc14_26: = specific_function %impl.elem0.loc14_26, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc14_26.2: = bound_method %int_4, %specific_fn.loc14_26 [concrete = constants.%bound_method.9f5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_26: init %i32 = call %bound_method.loc14_26.2(%int_4) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc14_26.2: init %i32 = converted %int_4, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_26 [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc14_35.2: ref %.505 = class_element_access %return.param, element0 +// CHECK:STDOUT: %bound_method.loc14_26.2: = bound_method %int_4, %specific_fn.loc14_26 [concrete = constants.%bound_method.b7a] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_26: init %i32 = call %bound_method.loc14_26.2(%int_4) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc14_26.2: init %i32 = converted %int_4, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_26 [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc14_35.2: ref %.469 = class_element_access %return.param, element0 // CHECK:STDOUT: %.loc14_26.3: ref %i32 = class_element_access %.loc14_35.2, element0 -// CHECK:STDOUT: %.loc14_26.4: init %i32 to %.loc14_26.3 = in_place_init %.loc14_26.2 [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc14_26.5: init %.505 to %.loc14_35.2 = class_init (%.loc14_26.4) [concrete = constants.%struct.cde] -// CHECK:STDOUT: %.loc14_35.3: init %.505 = converted %.loc14_26.1, %.loc14_26.5 [concrete = constants.%struct.cde] +// CHECK:STDOUT: %.loc14_26.4: init %i32 to %.loc14_26.3 = in_place_init %.loc14_26.2 [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc14_26.5: init %.469 to %.loc14_35.2 = class_init (%.loc14_26.4) [concrete = constants.%struct.4be] +// CHECK:STDOUT: %.loc14_35.3: init %.469 = converted %.loc14_26.1, %.loc14_26.5 [concrete = constants.%struct.4be] // CHECK:STDOUT: %.loc14_35.4: init %Base = as_compatible %.loc14_35.3 [concrete = constants.%Base.val] -// CHECK:STDOUT: %impl.elem0.loc14_35: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc14_35.1: = bound_method %int_7, %impl.elem0.loc14_35 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.286] +// CHECK:STDOUT: %impl.elem0.loc14_35: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc14_35.1: = bound_method %int_7, %impl.elem0.loc14_35 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.66b] // CHECK:STDOUT: %specific_fn.loc14_35: = specific_function %impl.elem0.loc14_35, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc14_35.2: = bound_method %int_7, %specific_fn.loc14_35 [concrete = constants.%bound_method.936] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_35: init %i32 = call %bound_method.loc14_35.2(%int_7) [concrete = constants.%int_7.c44] -// CHECK:STDOUT: %.loc14_35.5: init %i32 = converted %int_7, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_35 [concrete = constants.%int_7.c44] +// CHECK:STDOUT: %bound_method.loc14_35.2: = bound_method %int_7, %specific_fn.loc14_35 [concrete = constants.%bound_method.7ff] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_35: init %i32 = call %bound_method.loc14_35.2(%int_7) [concrete = constants.%int_7.690] +// CHECK:STDOUT: %.loc14_35.5: init %i32 = converted %int_7, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_35 [concrete = constants.%int_7.690] // CHECK:STDOUT: %.loc14_35.6: ref %i32 = class_element_access %return.param, element1 -// CHECK:STDOUT: %.loc14_35.7: init %i32 to %.loc14_35.6 = in_place_init %.loc14_35.5 [concrete = constants.%int_7.c44] +// CHECK:STDOUT: %.loc14_35.7: init %i32 to %.loc14_35.6 = in_place_init %.loc14_35.5 [concrete = constants.%int_7.690] // CHECK:STDOUT: %.loc14_35.8: init %Derived to %return.param = class_init (%.loc14_35.4, %.loc14_35.7) [concrete = constants.%Derived.val] // CHECK:STDOUT: %.loc14_36: init %Derived = converted %.loc14_35.1, %.loc14_35.8 [concrete = constants.%Derived.val] // CHECK:STDOUT: return %.loc14_36 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Access(%d.param: %Derived) -> out %return.param: %tuple.type.e5a { +// CHECK:STDOUT: fn @Access(%d.param: %Derived) -> out %return.param: %tuple.type.e55 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %d.ref.loc18_11: %Derived = name_ref d, %d -// CHECK:STDOUT: %d.ref.loc18_12: %Derived.elem.51e = name_ref d, @Derived.%.loc10 [concrete = @Derived.%.loc10] +// CHECK:STDOUT: %d.ref.loc18_12: %Derived.elem.a2d = name_ref d, @Derived.%.loc10 [concrete = @Derived.%.loc10] // CHECK:STDOUT: %.loc18_12.1: ref %i32 = class_element_access %d.ref.loc18_11, element1 // CHECK:STDOUT: %.loc18_12.2: %i32 = acquire_value %.loc18_12.1 // CHECK:STDOUT: %d.ref.loc18_16: %Derived = name_ref d, %d -// CHECK:STDOUT: %base.ref: %Derived.elem.036 = name_ref base, @Derived.%.loc8 [concrete = @Derived.%.loc8] +// CHECK:STDOUT: %base.ref: %Derived.elem.e51 = name_ref base, @Derived.%.loc8 [concrete = @Derived.%.loc8] // CHECK:STDOUT: %.loc18_17.1: ref %Base = class_element_access %d.ref.loc18_16, element0 // CHECK:STDOUT: %.loc18_17.2: %Base = acquire_value %.loc18_17.1 // CHECK:STDOUT: %b.ref: %Base.elem = name_ref b, @Base.%.loc4 [concrete = @Base.%.loc4] // CHECK:STDOUT: %.loc18_22.1: ref %i32 = class_element_access %.loc18_17.2, element0 // CHECK:STDOUT: %.loc18_22.2: %i32 = acquire_value %.loc18_22.1 -// CHECK:STDOUT: %.loc18_24.1: %tuple.type.e5a = tuple_literal (%.loc18_12.2, %.loc18_22.2) -// CHECK:STDOUT: %impl.elem0.loc18_12: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %.loc18_24.1: %tuple.type.e55 = tuple_literal (%.loc18_12.2, %.loc18_22.2) +// CHECK:STDOUT: %impl.elem0.loc18_12: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc18_12.1: = bound_method %.loc18_12.2, %impl.elem0.loc18_12 // CHECK:STDOUT: %specific_fn.loc18_12: = specific_function %impl.elem0.loc18_12, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc18_12.2: = bound_method %.loc18_12.2, %specific_fn.loc18_12 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc18_12: init %i32 = call %bound_method.loc18_12.2(%.loc18_12.2) // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %return.param, element0 // CHECK:STDOUT: %.loc18_24.2: init %i32 to %tuple.elem0 = in_place_init %Int.as.Copy.impl.Op.call.loc18_12 -// CHECK:STDOUT: %impl.elem0.loc18_22: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc18_22: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc18_22.1: = bound_method %.loc18_22.2, %impl.elem0.loc18_22 // CHECK:STDOUT: %specific_fn.loc18_22: = specific_function %impl.elem0.loc18_22, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc18_22.2: = bound_method %.loc18_22.2, %specific_fn.loc18_22 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc18_22: init %i32 = call %bound_method.loc18_22.2(%.loc18_22.2) // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access %return.param, element1 // CHECK:STDOUT: %.loc18_24.3: init %i32 to %tuple.elem1 = in_place_init %Int.as.Copy.impl.Op.call.loc18_22 -// CHECK:STDOUT: %.loc18_24.4: init %tuple.type.e5a to %return.param = tuple_init (%.loc18_24.2, %.loc18_24.3) -// CHECK:STDOUT: %.loc18_25: init %tuple.type.e5a = converted %.loc18_24.1, %.loc18_24.4 +// CHECK:STDOUT: %.loc18_24.4: init %tuple.type.e55 to %return.param = tuple_init (%.loc18_24.2, %.loc18_24.3) +// CHECK:STDOUT: %.loc18_25: init %tuple.type.e55 = converted %.loc18_24.1, %.loc18_24.4 // CHECK:STDOUT: return %.loc18_25 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: @@ -276,7 +276,7 @@ class Derived { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %i32 [concrete] // CHECK:STDOUT: %struct_type.d: type = struct_type {.d: %i32} [concrete] -// CHECK:STDOUT: %complete_type.1eb: = complete_type_witness %struct_type.d [concrete] +// CHECK:STDOUT: %complete_type.5d0: = complete_type_witness %struct_type.d [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -310,7 +310,7 @@ class Derived { // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %.loc7: %Derived.elem = field_decl d, element0 [concrete] // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.d [concrete = constants.%complete_type.1eb] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.d [concrete = constants.%complete_type.5d0] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/class/inheritance/base_field.carbon b/toolchain/check/testdata/class/inheritance/base_field.carbon index 584a9fc5a6ab..1789c48da6f1 100644 --- a/toolchain/check/testdata/class/inheritance/base_field.carbon +++ b/toolchain/check/testdata/class/inheritance/base_field.carbon @@ -39,30 +39,30 @@ fn Access(p: Derived*) -> i32* { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [concrete] // CHECK:STDOUT: %struct_type.a.b.c: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [concrete] -// CHECK:STDOUT: %complete_type.57e: = complete_type_witness %struct_type.a.b.c [concrete] +// CHECK:STDOUT: %complete_type.bae: = complete_type_witness %struct_type.a.b.c [concrete] // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] -// CHECK:STDOUT: %Derived.elem.25d: type = unbound_element_type %Derived, %Base [concrete] -// CHECK:STDOUT: %Derived.elem.165: type = unbound_element_type %Derived, %i32 [concrete] -// CHECK:STDOUT: %struct_type.base.d.e.0c9: type = struct_type {.base: %Base, .d: %i32, .e: %i32} [concrete] -// CHECK:STDOUT: %complete_type.c27: = complete_type_witness %struct_type.base.d.e.0c9 [concrete] -// CHECK:STDOUT: %ptr.054: type = ptr_type %Derived [concrete] -// CHECK:STDOUT: %pattern_type.df0: type = pattern_type %ptr.054 [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %.060: Core.Form = init_form %ptr.847 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr.847 [concrete] +// CHECK:STDOUT: %Derived.elem.93c: type = unbound_element_type %Derived, %Base [concrete] +// CHECK:STDOUT: %Derived.elem.577: type = unbound_element_type %Derived, %i32 [concrete] +// CHECK:STDOUT: %struct_type.base.d.e.26c: type = struct_type {.base: %Base, .d: %i32, .e: %i32} [concrete] +// CHECK:STDOUT: %complete_type.9b3: = complete_type_witness %struct_type.base.d.e.26c [concrete] +// CHECK:STDOUT: %ptr.64c: type = ptr_type %Derived [concrete] +// CHECK:STDOUT: %pattern_type.56c: type = pattern_type %ptr.64c [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %.952: Core.Form = init_form %ptr.d08 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete] // CHECK:STDOUT: %Access.type: type = fn_type @Access [concrete] // CHECK:STDOUT: %Access: %Access.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.c37: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ae4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.6e4: %ptr.as.Copy.impl.Op.type.ae4 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.847, (%Copy.impl_witness.c37) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.165: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.cd7: type = fn_type_with_self_type %Copy.WithSelf.Op.type.165, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.6e4, @ptr.as.Copy.impl.Op(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.ce1: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c1c: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.d1c: %ptr.as.Copy.impl.Op.type.c1c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.d08, (%Copy.impl_witness.ce1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.f9d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.ac9: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f9d, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -74,8 +74,8 @@ fn Access(p: Derived*) -> i32* { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -89,22 +89,22 @@ fn Access(p: Derived*) -> i32* { // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.df0 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.df0 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7b5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7b5 = return_slot_pattern %return.param_patt, %ptr.loc28_30 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f00 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f00 = return_slot_pattern %return.param_patt, %ptr.loc28_30 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr.loc28_30: type = ptr_type %i32 [concrete = constants.%ptr.847] -// CHECK:STDOUT: %.loc28_30: Core.Form = init_form %ptr.loc28_30 [concrete = constants.%.060] -// CHECK:STDOUT: %p.param: %ptr.054 = value_param call_param0 -// CHECK:STDOUT: %.loc28_21: type = splice_block %ptr.loc28_21 [concrete = constants.%ptr.054] { +// CHECK:STDOUT: %ptr.loc28_30: type = ptr_type %i32 [concrete = constants.%ptr.d08] +// CHECK:STDOUT: %.loc28_30: Core.Form = init_form %ptr.loc28_30 [concrete = constants.%.952] +// CHECK:STDOUT: %p.param: %ptr.64c = value_param call_param0 +// CHECK:STDOUT: %.loc28_21: type = splice_block %ptr.loc28_21 [concrete = constants.%ptr.64c] { // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] -// CHECK:STDOUT: %ptr.loc28_21: type = ptr_type %Derived.ref [concrete = constants.%ptr.054] +// CHECK:STDOUT: %ptr.loc28_21: type = ptr_type %Derived.ref [concrete = constants.%ptr.64c] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.054 = value_binding p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.847 = out_param call_param1 -// CHECK:STDOUT: %return: ref %ptr.847 = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.64c = value_binding p, %p.param +// CHECK:STDOUT: %return.param: ref %ptr.d08 = out_param call_param1 +// CHECK:STDOUT: %return: ref %ptr.d08 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -112,7 +112,7 @@ fn Access(p: Derived*) -> i32* { // CHECK:STDOUT: %.loc16: %Base.elem = field_decl a, element0 [concrete] // CHECK:STDOUT: %.loc17: %Base.elem = field_decl b, element1 [concrete] // CHECK:STDOUT: %.loc18: %Base.elem = field_decl c, element2 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.c [concrete = constants.%complete_type.57e] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.c [concrete = constants.%complete_type.bae] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -124,10 +124,10 @@ fn Access(p: Derived*) -> i32* { // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] -// CHECK:STDOUT: %.loc22: %Derived.elem.25d = base_decl %Base.ref, element0 [concrete] -// CHECK:STDOUT: %.loc24: %Derived.elem.165 = field_decl d, element1 [concrete] -// CHECK:STDOUT: %.loc25: %Derived.elem.165 = field_decl e, element2 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d.e.0c9 [concrete = constants.%complete_type.c27] +// CHECK:STDOUT: %.loc22: %Derived.elem.93c = base_decl %Base.ref, element0 [concrete] +// CHECK:STDOUT: %.loc24: %Derived.elem.577 = field_decl d, element1 [concrete] +// CHECK:STDOUT: %.loc25: %Derived.elem.577 = field_decl e, element2 [concrete] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d.e.26c [concrete = constants.%complete_type.9b3] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -140,20 +140,20 @@ fn Access(p: Derived*) -> i32* { // CHECK:STDOUT: extend %Base.ref // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Access(%p.param: %ptr.054) -> out %return.param: %ptr.847 { +// CHECK:STDOUT: fn @Access(%p.param: %ptr.64c) -> out %return.param: %ptr.d08 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.054 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.64c = name_ref p, %p // CHECK:STDOUT: %.loc29_12: ref %Derived = deref %p.ref // CHECK:STDOUT: %c.ref: %Base.elem = name_ref c, @Base.%.loc18 [concrete = @Base.%.loc18] // CHECK:STDOUT: %.loc29_15.1: ref %Base = class_element_access %.loc29_12, element0 // CHECK:STDOUT: %.loc29_15.2: ref %Base = converted %.loc29_12, %.loc29_15.1 // CHECK:STDOUT: %.loc29_15.3: ref %i32 = class_element_access %.loc29_15.2, element2 -// CHECK:STDOUT: %addr: %ptr.847 = addr_of %.loc29_15.3 -// CHECK:STDOUT: %impl.elem0: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %addr: %ptr.d08 = addr_of %.loc29_15.3 +// CHECK:STDOUT: %impl.elem0: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc29_10.1: = bound_method %addr, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc29_10.2: = bound_method %addr, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.847 = call %bound_method.loc29_10.2(%addr) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d08 = call %bound_method.loc29_10.2(%addr) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/inheritance/base_function_unqualified.carbon b/toolchain/check/testdata/class/inheritance/base_function_unqualified.carbon index d6408563b2d2..51271b25d5a7 100644 --- a/toolchain/check/testdata/class/inheritance/base_function_unqualified.carbon +++ b/toolchain/check/testdata/class/inheritance/base_function_unqualified.carbon @@ -43,7 +43,7 @@ fn Derived.H() { // CHECK:STDOUT: %Derived.H.type: type = fn_type @Derived.H [concrete] // CHECK:STDOUT: %Derived.H: %Derived.H.type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %Base} [concrete] -// CHECK:STDOUT: %complete_type.736: = complete_type_witness %struct_type.base [concrete] +// CHECK:STDOUT: %complete_type.c02: = complete_type_witness %struct_type.base [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -80,7 +80,7 @@ fn Derived.H() { // CHECK:STDOUT: %.loc20: %Derived.elem = base_decl %Base.ref, element0 [concrete] // CHECK:STDOUT: %Derived.G.decl: %Derived.G.type = fn_decl @Derived.G [concrete = constants.%Derived.G] {} {} // CHECK:STDOUT: %Derived.H.decl: %Derived.H.type = fn_decl @Derived.H [concrete = constants.%Derived.H] {} {} -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base [concrete = constants.%complete_type.736] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base [concrete = constants.%complete_type.c02] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/class/inheritance/base_method.carbon b/toolchain/check/testdata/class/inheritance/base_method.carbon index e0b8e320897b..020fc457c470 100644 --- a/toolchain/check/testdata/class/inheritance/base_method.carbon +++ b/toolchain/check/testdata/class/inheritance/base_method.carbon @@ -40,34 +40,34 @@ fn Call(p: Derived*) { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.116: type = pattern_type %Base [concrete] +// CHECK:STDOUT: %pattern_type.912: type = pattern_type %Base [concrete] // CHECK:STDOUT: %Base.F.type: type = fn_type @Base.F [concrete] // CHECK:STDOUT: %Base.F: %Base.F.type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete] -// CHECK:STDOUT: %complete_type.f2a: = complete_type_witness %struct_type.a [concrete] +// CHECK:STDOUT: %complete_type.388: = complete_type_witness %struct_type.a [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] // CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base [concrete] -// CHECK:STDOUT: %struct_type.base.d37: type = struct_type {.base: %Base} [concrete] -// CHECK:STDOUT: %complete_type.736: = complete_type_witness %struct_type.base.d37 [concrete] -// CHECK:STDOUT: %ptr.054: type = ptr_type %Derived [concrete] -// CHECK:STDOUT: %pattern_type.df0: type = pattern_type %ptr.054 [concrete] +// CHECK:STDOUT: %struct_type.base.cae: type = struct_type {.base: %Base} [concrete] +// CHECK:STDOUT: %complete_type.c02: = complete_type_witness %struct_type.base.cae [concrete] +// CHECK:STDOUT: %ptr.64c: type = ptr_type %Derived [concrete] +// CHECK:STDOUT: %pattern_type.56c: type = pattern_type %ptr.64c [concrete] // CHECK:STDOUT: %Call.type: type = fn_type @Call [concrete] // CHECK:STDOUT: %Call: %Call.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -80,9 +80,9 @@ fn Call(p: Derived*) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -95,8 +95,8 @@ fn Call(p: Derived*) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} // CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.116 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.116 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param.loc21: ref %Base = ref_param call_param0 // CHECK:STDOUT: %Self.ref.loc21: type = name_ref Self, constants.%Base [concrete = constants.%Base] @@ -104,29 +104,29 @@ fn Call(p: Derived*) { // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.df0 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.df0 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %p.param: %ptr.054 = value_param call_param0 -// CHECK:STDOUT: %.loc29: type = splice_block %ptr [concrete = constants.%ptr.054] { +// CHECK:STDOUT: %p.param: %ptr.64c = value_param call_param0 +// CHECK:STDOUT: %.loc29: type = splice_block %ptr [concrete = constants.%ptr.64c] { // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] -// CHECK:STDOUT: %ptr: type = ptr_type %Derived.ref [concrete = constants.%ptr.054] +// CHECK:STDOUT: %ptr: type = ptr_type %Derived.ref [concrete = constants.%ptr.64c] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.054 = value_binding p, %p.param +// CHECK:STDOUT: %p: %ptr.64c = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Base { // CHECK:STDOUT: %.loc16: %Base.elem = field_decl a, element0 [concrete] // CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.116 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.116 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param.loc18: ref %Base = ref_param call_param0 // CHECK:STDOUT: %Self.ref.loc18: type = name_ref Self, constants.%Base [concrete = constants.%Base] // CHECK:STDOUT: %self.loc18: ref %Base = ref_binding self, %self.param.loc18 // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a [concrete = constants.%complete_type.f2a] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a [concrete = constants.%complete_type.388] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -138,7 +138,7 @@ fn Call(p: Derived*) { // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %.loc26: %Derived.elem = base_decl %Base.ref, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d37 [concrete = constants.%complete_type.736] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.cae [concrete = constants.%complete_type.c02] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -155,19 +155,19 @@ fn Call(p: Derived*) { // CHECK:STDOUT: %a.ref: %Base.elem = name_ref a, @Base.%.loc16 [concrete = @Base.%.loc16] // CHECK:STDOUT: %.loc22_7: ref %i32 = class_element_access %self.ref, element0 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc22_10.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_10.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc22_10.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc22_10: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc22_10.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc22_10: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] // CHECK:STDOUT: assign %.loc22_7, %.loc22_10 // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Call(%p.param: %ptr.054) { +// CHECK:STDOUT: fn @Call(%p.param: %ptr.64c) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.054 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.64c = name_ref p, %p // CHECK:STDOUT: %.loc30_4.1: ref %Derived = deref %p.ref // CHECK:STDOUT: %F.ref: %Base.F.type = name_ref F, @Base.%Base.F.decl [concrete = constants.%Base.F] // CHECK:STDOUT: %Base.F.bound: = bound_method %.loc30_4.1, %F.ref diff --git a/toolchain/check/testdata/class/inheritance/base_method_qualified.carbon b/toolchain/check/testdata/class/inheritance/base_method_qualified.carbon index 845fc307110e..e17f061e7b7e 100644 --- a/toolchain/check/testdata/class/inheritance/base_method_qualified.carbon +++ b/toolchain/check/testdata/class/inheritance/base_method_qualified.carbon @@ -47,16 +47,16 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] // CHECK:STDOUT: %Base: type = class_type @Base [concrete] -// CHECK:STDOUT: %pattern_type.116: type = pattern_type %Base [concrete] +// CHECK:STDOUT: %pattern_type.912: type = pattern_type %Base [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Base.F.type: type = fn_type @Base.F [concrete] // CHECK:STDOUT: %Base.F: %Base.F.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.cd3: type = pattern_type %Derived [concrete] +// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete] // CHECK:STDOUT: %Base.G.type: type = fn_type @Base.G [concrete] // CHECK:STDOUT: %Base.G: %Base.G.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] @@ -66,12 +66,12 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: %Derived.F: %Derived.F.type = struct_value () [concrete] // CHECK:STDOUT: %Derived.G.type: type = fn_type @Derived.G [concrete] // CHECK:STDOUT: %Derived.G: %Derived.G.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.d37: type = struct_type {.base: %Base} [concrete] -// CHECK:STDOUT: %complete_type.736: = complete_type_witness %struct_type.base.d37 [concrete] +// CHECK:STDOUT: %struct_type.base.cae: type = struct_type {.base: %Base} [concrete] +// CHECK:STDOUT: %complete_type.c02: = complete_type_witness %struct_type.base.cae [concrete] // CHECK:STDOUT: %Call.type: type = fn_type @Call [concrete] // CHECK:STDOUT: %Call: %Call.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.054: type = ptr_type %Derived [concrete] -// CHECK:STDOUT: %pattern_type.df0: type = pattern_type %ptr.054 [concrete] +// CHECK:STDOUT: %ptr.64c: type = ptr_type %Derived [concrete] +// CHECK:STDOUT: %pattern_type.56c: type = pattern_type %ptr.64c [concrete] // CHECK:STDOUT: %CallIndirect.type: type = fn_type @CallIndirect [concrete] // CHECK:STDOUT: %CallIndirect: %CallIndirect.type = struct_value () [concrete] // CHECK:STDOUT: %PassDerivedToBase.type: type = fn_type @PassDerivedToBase [concrete] @@ -104,13 +104,13 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} // CHECK:STDOUT: %Derived.decl.loc22: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.cd3 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.cd3 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.746 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.746 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc29: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc29: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl.loc15 [concrete = constants.%Derived] // CHECK:STDOUT: %a: %Derived = value_binding a, %a.param @@ -118,30 +118,30 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallIndirect.decl: %CallIndirect.type = fn_decl @CallIndirect [concrete = constants.%CallIndirect] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.df0 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.df0 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc33_33: Core.Form = init_form %i32 [concrete = constants.%.7ea] -// CHECK:STDOUT: %p.param: %ptr.054 = value_param call_param0 -// CHECK:STDOUT: %.loc33_27: type = splice_block %ptr [concrete = constants.%ptr.054] { +// CHECK:STDOUT: %.loc33_33: Core.Form = init_form %i32 [concrete = constants.%.795] +// CHECK:STDOUT: %p.param: %ptr.64c = value_param call_param0 +// CHECK:STDOUT: %.loc33_27: type = splice_block %ptr [concrete = constants.%ptr.64c] { // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl.loc15 [concrete = constants.%Derived] -// CHECK:STDOUT: %ptr: type = ptr_type %Derived.ref [concrete = constants.%ptr.054] +// CHECK:STDOUT: %ptr: type = ptr_type %Derived.ref [concrete = constants.%ptr.64c] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.054 = value_binding p, %p.param +// CHECK:STDOUT: %p: %ptr.64c = value_binding p, %p.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %PassDerivedToBase.decl: %PassDerivedToBase.type = fn_decl @PassDerivedToBase [concrete = constants.%PassDerivedToBase] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.cd3 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.cd3 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.746 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.746 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc37: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc37: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl.loc15 [concrete = constants.%Derived] // CHECK:STDOUT: %a: %Derived = value_binding a, %a.param @@ -149,19 +149,19 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %PassDerivedToBaseIndirect.decl: %PassDerivedToBaseIndirect.type = fn_decl @PassDerivedToBaseIndirect [concrete = constants.%PassDerivedToBaseIndirect] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.df0 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.df0 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc41_46: Core.Form = init_form %i32 [concrete = constants.%.7ea] -// CHECK:STDOUT: %p.param: %ptr.054 = value_param call_param0 -// CHECK:STDOUT: %.loc41_40: type = splice_block %ptr [concrete = constants.%ptr.054] { +// CHECK:STDOUT: %.loc41_46: Core.Form = init_form %i32 [concrete = constants.%.795] +// CHECK:STDOUT: %p.param: %ptr.64c = value_param call_param0 +// CHECK:STDOUT: %.loc41_40: type = splice_block %ptr [concrete = constants.%ptr.64c] { // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl.loc15 [concrete = constants.%Derived] -// CHECK:STDOUT: %ptr: type = ptr_type %Derived.ref [concrete = constants.%ptr.054] +// CHECK:STDOUT: %ptr: type = ptr_type %Derived.ref [concrete = constants.%ptr.64c] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.054 = value_binding p, %p.param +// CHECK:STDOUT: %p: %ptr.64c = value_binding p, %p.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -171,22 +171,22 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %.loc23: %Derived.elem = base_decl %Base.ref, element0 [concrete] // CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.cd3 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.cd3 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.746 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.746 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived] // CHECK:STDOUT: %self: %Derived = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.G.decl: %Derived.G.type = fn_decl @Derived.G [concrete = constants.%Derived.G] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.cd3 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.cd3 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.746 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.746 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived] // CHECK:STDOUT: %self: %Derived = value_binding self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d37 [concrete = constants.%complete_type.736] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.cae [concrete = constants.%complete_type.c02] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -200,13 +200,13 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @Base { // CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.116 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.116 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc18: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc18: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %self.param: %Base = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base] // CHECK:STDOUT: %self: %Base = value_binding self, %self.param @@ -214,13 +214,13 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Base.G.decl: %Base.G.type = fn_decl @Base.G [concrete = constants.%Base.G] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.cd3 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.cd3 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.746 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.746 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc19: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc19: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %self.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl.loc15 [concrete = constants.%Derived] // CHECK:STDOUT: %self: %Derived = value_binding self, %self.param @@ -258,9 +258,9 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: return %Base.F.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallIndirect(%p.param: %ptr.054) -> out %return.param: %i32 { +// CHECK:STDOUT: fn @CallIndirect(%p.param: %ptr.64c) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.054 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.64c = name_ref p, %p // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %F.ref: %Base.F.type = name_ref F, @Base.%Base.F.decl [concrete = constants.%Base.F] // CHECK:STDOUT: %.loc34_11.1: ref %Derived = deref %p.ref @@ -282,9 +282,9 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 { // CHECK:STDOUT: return %Base.G.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @PassDerivedToBaseIndirect(%p.param: %ptr.054) -> out %return.param: %i32 { +// CHECK:STDOUT: fn @PassDerivedToBaseIndirect(%p.param: %ptr.64c) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.054 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.64c = name_ref p, %p // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %G.ref: %Base.G.type = name_ref G, @Base.%Base.G.decl [concrete = constants.%Base.G] // CHECK:STDOUT: %.loc42_11.1: ref %Derived = deref %p.ref diff --git a/toolchain/check/testdata/class/inheritance/base_method_shadow.carbon b/toolchain/check/testdata/class/inheritance/base_method_shadow.carbon index df376b17f411..e68fc96bc380 100644 --- a/toolchain/check/testdata/class/inheritance/base_method_shadow.carbon +++ b/toolchain/check/testdata/class/inheritance/base_method_shadow.carbon @@ -41,7 +41,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %A: type = class_type @A [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] // CHECK:STDOUT: %A.F.type: type = fn_type @A.F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %A.F: %A.F.type = struct_value () [concrete] @@ -49,28 +49,28 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %A [concrete] -// CHECK:STDOUT: %pattern_type.787: type = pattern_type %B [concrete] +// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete] // CHECK:STDOUT: %B.F.type: type = fn_type @B.F [concrete] // CHECK:STDOUT: %B.F: %B.F.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.722: type = struct_type {.base: %A} [concrete] -// CHECK:STDOUT: %complete_type.27e: = complete_type_witness %struct_type.base.722 [concrete] +// CHECK:STDOUT: %struct_type.base.cb7: type = struct_type {.base: %A} [concrete] +// CHECK:STDOUT: %complete_type.d5e: = complete_type_witness %struct_type.base.cb7 [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %B [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.F.type: type = fn_type @C.F [concrete] // CHECK:STDOUT: %C.F: %C.F.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.cef: type = struct_type {.base: %B} [concrete] -// CHECK:STDOUT: %complete_type.3f7: = complete_type_witness %struct_type.base.cef [concrete] +// CHECK:STDOUT: %struct_type.base.e05: type = struct_type {.base: %B} [concrete] +// CHECK:STDOUT: %complete_type.c77: = complete_type_witness %struct_type.base.e05 [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %D.elem: type = unbound_element_type %D, %B [concrete] -// CHECK:STDOUT: %ptr.cca: type = ptr_type %A [concrete] -// CHECK:STDOUT: %pattern_type.b90: type = pattern_type %ptr.cca [concrete] -// CHECK:STDOUT: %ptr.294: type = ptr_type %B [concrete] -// CHECK:STDOUT: %pattern_type.bb8: type = pattern_type %ptr.294 [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %ptr.c12: type = ptr_type %D [concrete] -// CHECK:STDOUT: %pattern_type.44f: type = pattern_type %ptr.c12 [concrete] +// CHECK:STDOUT: %ptr.d43: type = ptr_type %A [concrete] +// CHECK:STDOUT: %pattern_type.8a5: type = pattern_type %ptr.d43 [concrete] +// CHECK:STDOUT: %ptr.432: type = ptr_type %B [concrete] +// CHECK:STDOUT: %pattern_type.3c8: type = pattern_type %ptr.432 [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %ptr.d57: type = ptr_type %D [concrete] +// CHECK:STDOUT: %pattern_type.02f: type = pattern_type %ptr.d57 [concrete] // CHECK:STDOUT: %Call.type: type = fn_type @Call [concrete] // CHECK:STDOUT: %Call: %Call.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -97,46 +97,46 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.b90 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.b90 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.bb8 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.bb8 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.1c8 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.1c8 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %d.param_patt: %pattern_type.44f = value_param_pattern [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.44f = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.8a5 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.8a5 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.3c8 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.3c8 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.fcb = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.fcb = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.02f = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.02f = at_binding_pattern d, %d.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %a.param: %ptr.cca = value_param call_param0 -// CHECK:STDOUT: %.loc33_13: type = splice_block %ptr.loc33_13 [concrete = constants.%ptr.cca] { +// CHECK:STDOUT: %a.param: %ptr.d43 = value_param call_param0 +// CHECK:STDOUT: %.loc33_13: type = splice_block %ptr.loc33_13 [concrete = constants.%ptr.d43] { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %ptr.loc33_13: type = ptr_type %A.ref [concrete = constants.%ptr.cca] +// CHECK:STDOUT: %ptr.loc33_13: type = ptr_type %A.ref [concrete = constants.%ptr.d43] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.cca = value_binding a, %a.param -// CHECK:STDOUT: %b.param: %ptr.294 = value_param call_param1 -// CHECK:STDOUT: %.loc33_20: type = splice_block %ptr.loc33_20 [concrete = constants.%ptr.294] { +// CHECK:STDOUT: %a: %ptr.d43 = value_binding a, %a.param +// CHECK:STDOUT: %b.param: %ptr.432 = value_param call_param1 +// CHECK:STDOUT: %.loc33_20: type = splice_block %ptr.loc33_20 [concrete = constants.%ptr.432] { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %ptr.loc33_20: type = ptr_type %B.ref [concrete = constants.%ptr.294] +// CHECK:STDOUT: %ptr.loc33_20: type = ptr_type %B.ref [concrete = constants.%ptr.432] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: %ptr.294 = value_binding b, %b.param -// CHECK:STDOUT: %c.param: %ptr.6be = value_param call_param2 -// CHECK:STDOUT: %.loc33_27: type = splice_block %ptr.loc33_27 [concrete = constants.%ptr.6be] { +// CHECK:STDOUT: %b: %ptr.432 = value_binding b, %b.param +// CHECK:STDOUT: %c.param: %ptr.6b6 = value_param call_param2 +// CHECK:STDOUT: %.loc33_27: type = splice_block %ptr.loc33_27 [concrete = constants.%ptr.6b6] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc33_27: type = ptr_type %C.ref [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr.loc33_27: type = ptr_type %C.ref [concrete = constants.%ptr.6b6] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %ptr.6be = value_binding c, %c.param -// CHECK:STDOUT: %d.param: %ptr.c12 = value_param call_param3 -// CHECK:STDOUT: %.loc33_34: type = splice_block %ptr.loc33_34 [concrete = constants.%ptr.c12] { +// CHECK:STDOUT: %c: %ptr.6b6 = value_binding c, %c.param +// CHECK:STDOUT: %d.param: %ptr.d57 = value_param call_param3 +// CHECK:STDOUT: %.loc33_34: type = splice_block %ptr.loc33_34 [concrete = constants.%ptr.d57] { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %ptr.loc33_34: type = ptr_type %D.ref [concrete = constants.%ptr.c12] +// CHECK:STDOUT: %ptr.loc33_34: type = ptr_type %D.ref [concrete = constants.%ptr.d57] // CHECK:STDOUT: } -// CHECK:STDOUT: %d: %ptr.c12 = value_binding d, %d.param +// CHECK:STDOUT: %d: %ptr.d57 = value_binding d, %d.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %A.F.decl: %A.F.type = fn_decl @A.F [concrete = constants.%A.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.ccb = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.ccb = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9ef = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9ef = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %A = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%A [concrete = constants.%A] @@ -154,14 +154,14 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %.loc20: %B.elem = base_decl %A.ref, element0 [concrete] // CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [concrete = constants.%B.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.787 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.787 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.e39 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.e39 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %B = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B [concrete = constants.%B] // CHECK:STDOUT: %self: ref %B = ref_binding self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.722 [concrete = constants.%complete_type.27e] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.cb7 [concrete = constants.%complete_type.d5e] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -176,14 +176,14 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %.loc25: %C.elem = base_decl %B.ref, element0 [concrete] // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.0d5 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.0d5 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] // CHECK:STDOUT: %self: ref %C = ref_binding self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.cef [concrete = constants.%complete_type.3f7] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.e05 [concrete = constants.%complete_type.c77] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -197,7 +197,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: class @D { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %.loc30: %D.elem = base_decl %B.ref, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.cef [concrete = constants.%complete_type.3f7] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.e05 [concrete = constants.%complete_type.c77] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -214,24 +214,24 @@ fn Call(a: A*, b: B*, c: C*, d: D*) { // CHECK:STDOUT: // CHECK:STDOUT: fn @C.F(%self.param: ref %C); // CHECK:STDOUT: -// CHECK:STDOUT: fn @Call(%a.param: %ptr.cca, %b.param: %ptr.294, %c.param: %ptr.6be, %d.param: %ptr.c12) { +// CHECK:STDOUT: fn @Call(%a.param: %ptr.d43, %b.param: %ptr.432, %c.param: %ptr.6b6, %d.param: %ptr.d57) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %ptr.cca = name_ref a, %a +// CHECK:STDOUT: %a.ref: %ptr.d43 = name_ref a, %a // CHECK:STDOUT: %.loc34: ref %A = deref %a.ref // CHECK:STDOUT: %F.ref.loc34: %A.F.type = name_ref F, @A.%A.F.decl [concrete = constants.%A.F] // CHECK:STDOUT: %A.F.bound: = bound_method %.loc34, %F.ref.loc34 // CHECK:STDOUT: %A.F.call: init %empty_tuple.type = call %A.F.bound(%.loc34) -// CHECK:STDOUT: %b.ref: %ptr.294 = name_ref b, %b +// CHECK:STDOUT: %b.ref: %ptr.432 = name_ref b, %b // CHECK:STDOUT: %.loc35: ref %B = deref %b.ref // CHECK:STDOUT: %F.ref.loc35: %B.F.type = name_ref F, @B.%B.F.decl [concrete = constants.%B.F] // CHECK:STDOUT: %B.F.bound.loc35: = bound_method %.loc35, %F.ref.loc35 // CHECK:STDOUT: %B.F.call.loc35: init %empty_tuple.type = call %B.F.bound.loc35(%.loc35) -// CHECK:STDOUT: %c.ref: %ptr.6be = name_ref c, %c +// CHECK:STDOUT: %c.ref: %ptr.6b6 = name_ref c, %c // CHECK:STDOUT: %.loc36: ref %C = deref %c.ref // CHECK:STDOUT: %F.ref.loc36: %C.F.type = name_ref F, @C.%C.F.decl [concrete = constants.%C.F] // CHECK:STDOUT: %C.F.bound: = bound_method %.loc36, %F.ref.loc36 // CHECK:STDOUT: %C.F.call: init %empty_tuple.type = call %C.F.bound(%.loc36) -// CHECK:STDOUT: %d.ref: %ptr.c12 = name_ref d, %d +// CHECK:STDOUT: %d.ref: %ptr.d57 = name_ref d, %d // CHECK:STDOUT: %.loc37_4.1: ref %D = deref %d.ref // CHECK:STDOUT: %F.ref.loc37: %B.F.type = name_ref F, @B.%B.F.decl [concrete = constants.%B.F] // CHECK:STDOUT: %B.F.bound.loc37: = bound_method %.loc37_4.1, %F.ref.loc37 diff --git a/toolchain/check/testdata/class/inheritance/derived_to_base.carbon b/toolchain/check/testdata/class/inheritance/derived_to_base.carbon index 5fa458737910..54034019b0a4 100644 --- a/toolchain/check/testdata/class/inheritance/derived_to_base.carbon +++ b/toolchain/check/testdata/class/inheritance/derived_to_base.carbon @@ -124,47 +124,47 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %struct_type.a.1c5: type = struct_type {.a: %i32} [concrete] +// CHECK:STDOUT: %struct_type.a.a92: type = struct_type {.a: %i32} [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] -// CHECK:STDOUT: %struct_type.base.b.19e: type = struct_type {.base: %A, .b: %i32} [concrete] +// CHECK:STDOUT: %struct_type.base.b.6c4: type = struct_type {.base: %A, .b: %i32} [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %struct_type.base.c.d60: type = struct_type {.base: %B, .c: %i32} [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %ptr.294: type = ptr_type %B [concrete] -// CHECK:STDOUT: %.6e0: Core.Form = init_form %ptr.294 [concrete] -// CHECK:STDOUT: %pattern_type.bb8: type = pattern_type %ptr.294 [concrete] +// CHECK:STDOUT: %struct_type.base.c.faf: type = struct_type {.base: %B, .c: %i32} [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %ptr.432: type = ptr_type %B [concrete] +// CHECK:STDOUT: %.d69: Core.Form = init_form %ptr.432 [concrete] +// CHECK:STDOUT: %pattern_type.3c8: type = pattern_type %ptr.432 [concrete] // CHECK:STDOUT: %ConvertCToB.type: type = fn_type @ConvertCToB [concrete] // CHECK:STDOUT: %ConvertCToB: %ConvertCToB.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.a18: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%B) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.0f0: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%B) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.b00: %ptr.as.Copy.impl.Op.type.0f0 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.1c9: %Copy.type = facet_value %ptr.294, (%Copy.impl_witness.a18) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.f1d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.1c9) [concrete] -// CHECK:STDOUT: %.bf6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f1d, %Copy.facet.1c9 [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.780: = specific_function %ptr.as.Copy.impl.Op.b00, @ptr.as.Copy.impl.Op(%B) [concrete] -// CHECK:STDOUT: %ptr.cca: type = ptr_type %A [concrete] -// CHECK:STDOUT: %.99a: Core.Form = init_form %ptr.cca [concrete] -// CHECK:STDOUT: %pattern_type.b90: type = pattern_type %ptr.cca [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.09a: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%B) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.d4b: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%B) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.70e: %ptr.as.Copy.impl.Op.type.d4b = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.5e3: %Copy.type = facet_value %ptr.432, (%Copy.impl_witness.09a) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.78a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.5e3) [concrete] +// CHECK:STDOUT: %.fa1: type = fn_type_with_self_type %Copy.WithSelf.Op.type.78a, %Copy.facet.5e3 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.bbe: = specific_function %ptr.as.Copy.impl.Op.70e, @ptr.as.Copy.impl.Op(%B) [concrete] +// CHECK:STDOUT: %ptr.d43: type = ptr_type %A [concrete] +// CHECK:STDOUT: %.1a4: Core.Form = init_form %ptr.d43 [concrete] +// CHECK:STDOUT: %pattern_type.8a5: type = pattern_type %ptr.d43 [concrete] // CHECK:STDOUT: %ConvertBToA.type: type = fn_type @ConvertBToA [concrete] // CHECK:STDOUT: %ConvertBToA: %ConvertBToA.type = struct_value () [concrete] -// CHECK:STDOUT: %Copy.impl_witness.2bc: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%A) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.e79: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%A) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.c98: %ptr.as.Copy.impl.Op.type.e79 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.5f6: %Copy.type = facet_value %ptr.cca, (%Copy.impl_witness.2bc) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.f07: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.5f6) [concrete] -// CHECK:STDOUT: %.7e7: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f07, %Copy.facet.5f6 [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.19b: = specific_function %ptr.as.Copy.impl.Op.c98, @ptr.as.Copy.impl.Op(%A) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.d19: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%A) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa3: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%A) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a8: %ptr.as.Copy.impl.Op.type.aa3 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.bd2: %Copy.type = facet_value %ptr.d43, (%Copy.impl_witness.d19) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.df0: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.bd2) [concrete] +// CHECK:STDOUT: %.e91: type = fn_type_with_self_type %Copy.WithSelf.Op.type.df0, %Copy.facet.bd2 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.d1a: = specific_function %ptr.as.Copy.impl.Op.5a8, @ptr.as.Copy.impl.Op(%A) [concrete] // CHECK:STDOUT: %ConvertCToA.type: type = fn_type @ConvertCToA [concrete] // CHECK:STDOUT: %ConvertCToA: %ConvertCToA.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %ConvertValue.type: type = fn_type @ConvertValue [concrete] // CHECK:STDOUT: %ConvertValue: %ConvertValue.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] // CHECK:STDOUT: %ConvertRef.type: type = fn_type @ConvertRef [concrete] // CHECK:STDOUT: %ConvertRef: %ConvertRef.type = struct_value () [concrete] // CHECK:STDOUT: %ConvertInit.type: type = fn_type @ConvertInit [concrete] @@ -178,182 +178,182 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %struct_type.base.c.136: type = struct_type {.base: %struct_type.base.b.bf0, .c: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.2aa: %struct_type.base.c.136 = struct_value (%struct.ff9, %int_3.1ba) [concrete] -// CHECK:STDOUT: %.ee7ba: type = partial_type %B [concrete] -// CHECK:STDOUT: %.09a: type = partial_type %A [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %.640: type = partial_type %B [concrete] +// CHECK:STDOUT: %.3d6: type = partial_type %A [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %struct.cf9: %.09a = struct_value (%int_1.d9c) [concrete] -// CHECK:STDOUT: %A.val: %A = struct_value (%int_1.d9c) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %struct.234: %.ee7ba = struct_value (%A.val, %int_2.228) [concrete] -// CHECK:STDOUT: %B.val: %B = struct_value (%A.val, %int_2.228) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %C.val: %C = struct_value (%B.val, %int_3.6cc) [concrete] -// CHECK:STDOUT: %.051: ref %C = temporary invalid, %C.val [concrete] -// CHECK:STDOUT: %.c14: ref %B = class_element_access %.051, element0 [concrete] -// CHECK:STDOUT: %.493: ref %A = class_element_access %.c14, element0 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.8: type = fn_type @Destroy.Op.loc32_66.8 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.8: %Destroy.Op.type.790b3b.8 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.051, %Destroy.Op.2dd605.8 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %struct.7e2: %.3d6 = struct_value (%int_1.0c6) [concrete] +// CHECK:STDOUT: %A.val: %A = struct_value (%int_1.0c6) [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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %struct.a8a: %.640 = struct_value (%A.val, %int_2.295) [concrete] +// CHECK:STDOUT: %B.val: %B = struct_value (%A.val, %int_2.295) [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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] +// CHECK:STDOUT: %C.val: %C = struct_value (%B.val, %int_3.410) [concrete] +// CHECK:STDOUT: %.084: ref %C = temporary invalid, %C.val [concrete] +// CHECK:STDOUT: %.107: ref %B = class_element_access %.084, element0 [concrete] +// CHECK:STDOUT: %.5ce: ref %A = class_element_access %.107, element0 [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.8: type = fn_type @Destroy.Op.loc32_66.8 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.8: %Destroy.Op.type.1d8f74.8 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.084, %Destroy.Op.1a2547.8 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %ConvertCToB.decl: %ConvertCToB.type = fn_decl @ConvertCToB [concrete = constants.%ConvertCToB] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.1c8 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.1c8 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.bb8 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.bb8 = return_slot_pattern %return.param_patt, %ptr.loc19_27 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.fcb = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.fcb = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.3c8 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.3c8 = return_slot_pattern %return.param_patt, %ptr.loc19_27 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %ptr.loc19_27: type = ptr_type %B.ref [concrete = constants.%ptr.294] -// CHECK:STDOUT: %.loc19_27: Core.Form = init_form %ptr.loc19_27 [concrete = constants.%.6e0] -// CHECK:STDOUT: %p.param: %ptr.6be = value_param call_param0 -// CHECK:STDOUT: %.loc19_20: type = splice_block %ptr.loc19_20 [concrete = constants.%ptr.6be] { +// CHECK:STDOUT: %ptr.loc19_27: type = ptr_type %B.ref [concrete = constants.%ptr.432] +// CHECK:STDOUT: %.loc19_27: Core.Form = init_form %ptr.loc19_27 [concrete = constants.%.d69] +// CHECK:STDOUT: %p.param: %ptr.6b6 = value_param call_param0 +// CHECK:STDOUT: %.loc19_20: type = splice_block %ptr.loc19_20 [concrete = constants.%ptr.6b6] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc19_20: type = ptr_type %C.ref [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr.loc19_20: type = ptr_type %C.ref [concrete = constants.%ptr.6b6] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.6be = value_binding p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.294 = out_param call_param1 -// CHECK:STDOUT: %return: ref %ptr.294 = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.6b6 = value_binding p, %p.param +// CHECK:STDOUT: %return.param: ref %ptr.432 = out_param call_param1 +// CHECK:STDOUT: %return: ref %ptr.432 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ConvertBToA.decl: %ConvertBToA.type = fn_decl @ConvertBToA [concrete = constants.%ConvertBToA] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.bb8 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.bb8 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.b90 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.b90 = return_slot_pattern %return.param_patt, %ptr.loc20_27 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.3c8 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.3c8 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.8a5 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.8a5 = return_slot_pattern %return.param_patt, %ptr.loc20_27 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %ptr.loc20_27: type = ptr_type %A.ref [concrete = constants.%ptr.cca] -// CHECK:STDOUT: %.loc20_27: Core.Form = init_form %ptr.loc20_27 [concrete = constants.%.99a] -// CHECK:STDOUT: %p.param: %ptr.294 = value_param call_param0 -// CHECK:STDOUT: %.loc20_20: type = splice_block %ptr.loc20_20 [concrete = constants.%ptr.294] { +// CHECK:STDOUT: %ptr.loc20_27: type = ptr_type %A.ref [concrete = constants.%ptr.d43] +// CHECK:STDOUT: %.loc20_27: Core.Form = init_form %ptr.loc20_27 [concrete = constants.%.1a4] +// CHECK:STDOUT: %p.param: %ptr.432 = value_param call_param0 +// CHECK:STDOUT: %.loc20_20: type = splice_block %ptr.loc20_20 [concrete = constants.%ptr.432] { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %ptr.loc20_20: type = ptr_type %B.ref [concrete = constants.%ptr.294] +// CHECK:STDOUT: %ptr.loc20_20: type = ptr_type %B.ref [concrete = constants.%ptr.432] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.294 = value_binding p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.cca = out_param call_param1 -// CHECK:STDOUT: %return: ref %ptr.cca = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.432 = value_binding p, %p.param +// CHECK:STDOUT: %return.param: ref %ptr.d43 = out_param call_param1 +// CHECK:STDOUT: %return: ref %ptr.d43 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ConvertCToA.decl: %ConvertCToA.type = fn_decl @ConvertCToA [concrete = constants.%ConvertCToA] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.1c8 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.1c8 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.b90 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.b90 = return_slot_pattern %return.param_patt, %ptr.loc21_27 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.fcb = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.fcb = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.8a5 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.8a5 = return_slot_pattern %return.param_patt, %ptr.loc21_27 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %ptr.loc21_27: type = ptr_type %A.ref [concrete = constants.%ptr.cca] -// CHECK:STDOUT: %.loc21_27: Core.Form = init_form %ptr.loc21_27 [concrete = constants.%.99a] -// CHECK:STDOUT: %p.param: %ptr.6be = value_param call_param0 -// CHECK:STDOUT: %.loc21_20: type = splice_block %ptr.loc21_20 [concrete = constants.%ptr.6be] { +// CHECK:STDOUT: %ptr.loc21_27: type = ptr_type %A.ref [concrete = constants.%ptr.d43] +// CHECK:STDOUT: %.loc21_27: Core.Form = init_form %ptr.loc21_27 [concrete = constants.%.1a4] +// CHECK:STDOUT: %p.param: %ptr.6b6 = value_param call_param0 +// CHECK:STDOUT: %.loc21_20: type = splice_block %ptr.loc21_20 [concrete = constants.%ptr.6b6] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc21_20: type = ptr_type %C.ref [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr.loc21_20: type = ptr_type %C.ref [concrete = constants.%ptr.6b6] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.6be = value_binding p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.cca = out_param call_param1 -// CHECK:STDOUT: %return: ref %ptr.cca = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.6b6 = value_binding p, %p.param +// CHECK:STDOUT: %return.param: ref %ptr.d43 = out_param call_param1 +// CHECK:STDOUT: %return: ref %ptr.d43 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ConvertValue.decl: %ConvertValue.type = fn_decl @ConvertValue [concrete = constants.%ConvertValue] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: %C = value_binding c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: %ConvertRef.decl: %ConvertRef.type = fn_decl @ConvertRef [concrete = constants.%ConvertRef] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.1c8 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.1c8 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.b90 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.b90 = return_slot_pattern %return.param_patt, %ptr.loc27_26 [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.fcb = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.fcb = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.8a5 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.8a5 = return_slot_pattern %return.param_patt, %ptr.loc27_26 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref.loc27: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %ptr.loc27_26: type = ptr_type %A.ref.loc27 [concrete = constants.%ptr.cca] -// CHECK:STDOUT: %.loc27_26: Core.Form = init_form %ptr.loc27_26 [concrete = constants.%.99a] -// CHECK:STDOUT: %c.param: %ptr.6be = value_param call_param0 -// CHECK:STDOUT: %.loc27_19: type = splice_block %ptr.loc27_19 [concrete = constants.%ptr.6be] { +// CHECK:STDOUT: %ptr.loc27_26: type = ptr_type %A.ref.loc27 [concrete = constants.%ptr.d43] +// CHECK:STDOUT: %.loc27_26: Core.Form = init_form %ptr.loc27_26 [concrete = constants.%.1a4] +// CHECK:STDOUT: %c.param: %ptr.6b6 = value_param call_param0 +// CHECK:STDOUT: %.loc27_19: type = splice_block %ptr.loc27_19 [concrete = constants.%ptr.6b6] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc27_19: type = ptr_type %C.ref [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr.loc27_19: type = ptr_type %C.ref [concrete = constants.%ptr.6b6] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %ptr.6be = value_binding c, %c.param -// CHECK:STDOUT: %return.param: ref %ptr.cca = out_param call_param1 -// CHECK:STDOUT: %return: ref %ptr.cca = return_slot %return.param +// CHECK:STDOUT: %c: %ptr.6b6 = value_binding c, %c.param +// CHECK:STDOUT: %return.param: ref %ptr.d43 = out_param call_param1 +// CHECK:STDOUT: %return: ref %ptr.d43 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ConvertInit.decl: %ConvertInit.type = fn_decl @ConvertInit [concrete = constants.%ConvertInit] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConvertCToB(%p.param: %ptr.6be) -> out %return.param: %ptr.294 { +// CHECK:STDOUT: fn @ConvertCToB(%p.param: %ptr.6b6) -> out %return.param: %ptr.432 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.6be = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.6b6 = name_ref p, %p // CHECK:STDOUT: %.loc19_39.1: ref %C = deref %p.ref // CHECK:STDOUT: %.loc19_39.2: ref %B = class_element_access %.loc19_39.1, element0 -// CHECK:STDOUT: %addr: %ptr.294 = addr_of %.loc19_39.2 -// CHECK:STDOUT: %.loc19_39.3: %ptr.294 = converted %p.ref, %addr -// CHECK:STDOUT: %impl.elem0: %.bf6 = impl_witness_access constants.%Copy.impl_witness.a18, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b00] +// CHECK:STDOUT: %addr: %ptr.432 = addr_of %.loc19_39.2 +// CHECK:STDOUT: %.loc19_39.3: %ptr.432 = converted %p.ref, %addr +// CHECK:STDOUT: %impl.elem0: %.fa1 = impl_witness_access constants.%Copy.impl_witness.09a, element0 [concrete = constants.%ptr.as.Copy.impl.Op.70e] // CHECK:STDOUT: %bound_method.loc19_39.1: = bound_method %.loc19_39.3, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%B) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.780] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%B) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.bbe] // CHECK:STDOUT: %bound_method.loc19_39.2: = bound_method %.loc19_39.3, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.294 = call %bound_method.loc19_39.2(%.loc19_39.3) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.432 = call %bound_method.loc19_39.2(%.loc19_39.3) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConvertBToA(%p.param: %ptr.294) -> out %return.param: %ptr.cca { +// CHECK:STDOUT: fn @ConvertBToA(%p.param: %ptr.432) -> out %return.param: %ptr.d43 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.294 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.432 = name_ref p, %p // CHECK:STDOUT: %.loc20_39.1: ref %B = deref %p.ref // CHECK:STDOUT: %.loc20_39.2: ref %A = class_element_access %.loc20_39.1, element0 -// CHECK:STDOUT: %addr: %ptr.cca = addr_of %.loc20_39.2 -// CHECK:STDOUT: %.loc20_39.3: %ptr.cca = converted %p.ref, %addr -// CHECK:STDOUT: %impl.elem0: %.7e7 = impl_witness_access constants.%Copy.impl_witness.2bc, element0 [concrete = constants.%ptr.as.Copy.impl.Op.c98] +// CHECK:STDOUT: %addr: %ptr.d43 = addr_of %.loc20_39.2 +// CHECK:STDOUT: %.loc20_39.3: %ptr.d43 = converted %p.ref, %addr +// CHECK:STDOUT: %impl.elem0: %.e91 = impl_witness_access constants.%Copy.impl_witness.d19, element0 [concrete = constants.%ptr.as.Copy.impl.Op.5a8] // CHECK:STDOUT: %bound_method.loc20_39.1: = bound_method %.loc20_39.3, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%A) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.19b] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%A) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.d1a] // CHECK:STDOUT: %bound_method.loc20_39.2: = bound_method %.loc20_39.3, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.cca = call %bound_method.loc20_39.2(%.loc20_39.3) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d43 = call %bound_method.loc20_39.2(%.loc20_39.3) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConvertCToA(%p.param: %ptr.6be) -> out %return.param: %ptr.cca { +// CHECK:STDOUT: fn @ConvertCToA(%p.param: %ptr.6b6) -> out %return.param: %ptr.d43 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.6be = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.6b6 = name_ref p, %p // CHECK:STDOUT: %.loc21_39.1: ref %C = deref %p.ref // CHECK:STDOUT: %.loc21_39.2: ref %B = class_element_access %.loc21_39.1, element0 // CHECK:STDOUT: %.loc21_39.3: ref %A = class_element_access %.loc21_39.2, element0 -// CHECK:STDOUT: %addr: %ptr.cca = addr_of %.loc21_39.3 -// CHECK:STDOUT: %.loc21_39.4: %ptr.cca = converted %p.ref, %addr -// CHECK:STDOUT: %impl.elem0: %.7e7 = impl_witness_access constants.%Copy.impl_witness.2bc, element0 [concrete = constants.%ptr.as.Copy.impl.Op.c98] +// CHECK:STDOUT: %addr: %ptr.d43 = addr_of %.loc21_39.3 +// CHECK:STDOUT: %.loc21_39.4: %ptr.d43 = converted %p.ref, %addr +// CHECK:STDOUT: %impl.elem0: %.e91 = impl_witness_access constants.%Copy.impl_witness.d19, element0 [concrete = constants.%ptr.as.Copy.impl.Op.5a8] // CHECK:STDOUT: %bound_method.loc21_39.1: = bound_method %.loc21_39.4, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%A) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.19b] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%A) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.d1a] // CHECK:STDOUT: %bound_method.loc21_39.2: = bound_method %.loc21_39.4, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.cca = call %bound_method.loc21_39.2(%.loc21_39.4) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d43 = call %bound_method.loc21_39.2(%.loc21_39.4) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ConvertValue(%c.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.ccb = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9ef = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] @@ -365,27 +365,27 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConvertRef(%c.param: %ptr.6be) -> out %return.param: %ptr.cca { +// CHECK:STDOUT: fn @ConvertRef(%c.param: %ptr.6b6) -> out %return.param: %ptr.d43 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: %ptr.6be = name_ref c, %c +// CHECK:STDOUT: %c.ref: %ptr.6b6 = name_ref c, %c // CHECK:STDOUT: %.loc28_12: ref %C = deref %c.ref // CHECK:STDOUT: %A.ref.loc28: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %.loc28_15.1: ref %B = class_element_access %.loc28_12, element0 // CHECK:STDOUT: %.loc28_15.2: ref %A = class_element_access %.loc28_15.1, element0 // CHECK:STDOUT: %.loc28_15.3: ref %A = converted %.loc28_12, %.loc28_15.2 -// CHECK:STDOUT: %addr: %ptr.cca = addr_of %.loc28_15.3 -// CHECK:STDOUT: %impl.elem0: %.7e7 = impl_witness_access constants.%Copy.impl_witness.2bc, element0 [concrete = constants.%ptr.as.Copy.impl.Op.c98] +// CHECK:STDOUT: %addr: %ptr.d43 = addr_of %.loc28_15.3 +// CHECK:STDOUT: %impl.elem0: %.e91 = impl_witness_access constants.%Copy.impl_witness.d19, element0 [concrete = constants.%ptr.as.Copy.impl.Op.5a8] // CHECK:STDOUT: %bound_method.loc28_10.1: = bound_method %addr, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%A) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.19b] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%A) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.d1a] // CHECK:STDOUT: %bound_method.loc28_10.2: = bound_method %addr, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.cca = call %bound_method.loc28_10.2(%addr) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d43 = call %bound_method.loc28_10.2(%addr) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ConvertInit() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.ccb = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9ef = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc32_46.1: %struct_type.a.a6c = struct_literal (%int_1) [concrete = constants.%struct.48c] @@ -394,49 +394,49 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc32_64.1: %struct_type.base.c.136 = struct_literal (%.loc32_55.1, %int_3) [concrete = constants.%struct.2aa] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %impl.elem0.loc32_46: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc32_46.1: = bound_method %int_1, %impl.elem0.loc32_46 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc32_46: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc32_46.1: = bound_method %int_1, %impl.elem0.loc32_46 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc32_46: = specific_function %impl.elem0.loc32_46, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc32_46.2: = bound_method %int_1, %specific_fn.loc32_46 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32_46: init %i32 = call %bound_method.loc32_46.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc32_46.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32_46 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc32_46.2: = bound_method %int_1, %specific_fn.loc32_46 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32_46: init %i32 = call %bound_method.loc32_46.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc32_46.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32_46 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc32_64.2: ref %C = temporary_storage -// CHECK:STDOUT: %.loc32_64.3: ref %.ee7ba = class_element_access %.loc32_64.2, element0 -// CHECK:STDOUT: %.loc32_55.2: ref %.09a = class_element_access %.loc32_64.3, element0 +// CHECK:STDOUT: %.loc32_64.3: ref %.640 = class_element_access %.loc32_64.2, element0 +// CHECK:STDOUT: %.loc32_55.2: ref %.3d6 = class_element_access %.loc32_64.3, element0 // CHECK:STDOUT: %.loc32_46.3: ref %i32 = class_element_access %.loc32_55.2, element0 -// CHECK:STDOUT: %.loc32_46.4: init %i32 to %.loc32_46.3 = in_place_init %.loc32_46.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc32_46.5: init %.09a to %.loc32_55.2 = class_init (%.loc32_46.4) [concrete = constants.%struct.cf9] -// CHECK:STDOUT: %.loc32_55.3: init %.09a = converted %.loc32_46.1, %.loc32_46.5 [concrete = constants.%struct.cf9] +// CHECK:STDOUT: %.loc32_46.4: init %i32 to %.loc32_46.3 = in_place_init %.loc32_46.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc32_46.5: init %.3d6 to %.loc32_55.2 = class_init (%.loc32_46.4) [concrete = constants.%struct.7e2] +// CHECK:STDOUT: %.loc32_55.3: init %.3d6 = converted %.loc32_46.1, %.loc32_46.5 [concrete = constants.%struct.7e2] // CHECK:STDOUT: %.loc32_55.4: init %A = as_compatible %.loc32_55.3 [concrete = constants.%A.val] -// CHECK:STDOUT: %impl.elem0.loc32_55: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc32_55.1: = bound_method %int_2, %impl.elem0.loc32_55 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %impl.elem0.loc32_55: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc32_55.1: = bound_method %int_2, %impl.elem0.loc32_55 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc32_55: = specific_function %impl.elem0.loc32_55, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc32_55.2: = bound_method %int_2, %specific_fn.loc32_55 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32_55: init %i32 = call %bound_method.loc32_55.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc32_55.5: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32_55 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc32_55.2: = bound_method %int_2, %specific_fn.loc32_55 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32_55: init %i32 = call %bound_method.loc32_55.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc32_55.5: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32_55 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc32_55.6: ref %i32 = class_element_access %.loc32_64.3, element1 -// CHECK:STDOUT: %.loc32_55.7: init %i32 to %.loc32_55.6 = in_place_init %.loc32_55.5 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc32_55.8: init %.ee7ba to %.loc32_64.3 = class_init (%.loc32_55.4, %.loc32_55.7) [concrete = constants.%struct.234] -// CHECK:STDOUT: %.loc32_64.4: init %.ee7ba = converted %.loc32_55.1, %.loc32_55.8 [concrete = constants.%struct.234] +// CHECK:STDOUT: %.loc32_55.7: init %i32 to %.loc32_55.6 = in_place_init %.loc32_55.5 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc32_55.8: init %.640 to %.loc32_64.3 = class_init (%.loc32_55.4, %.loc32_55.7) [concrete = constants.%struct.a8a] +// CHECK:STDOUT: %.loc32_64.4: init %.640 = converted %.loc32_55.1, %.loc32_55.8 [concrete = constants.%struct.a8a] // CHECK:STDOUT: %.loc32_64.5: init %B = as_compatible %.loc32_64.4 [concrete = constants.%B.val] -// CHECK:STDOUT: %impl.elem0.loc32_64: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc32_64.1: = bound_method %int_3, %impl.elem0.loc32_64 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %impl.elem0.loc32_64: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc32_64.1: = bound_method %int_3, %impl.elem0.loc32_64 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc32_64: = specific_function %impl.elem0.loc32_64, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc32_64.2: = bound_method %int_3, %specific_fn.loc32_64 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32_64: init %i32 = call %bound_method.loc32_64.2(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc32_64.6: init %i32 = converted %int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32_64 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc32_64.2: = bound_method %int_3, %specific_fn.loc32_64 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32_64: init %i32 = call %bound_method.loc32_64.2(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc32_64.6: init %i32 = converted %int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32_64 [concrete = constants.%int_3.410] // CHECK:STDOUT: %.loc32_64.7: ref %i32 = class_element_access %.loc32_64.2, element1 -// CHECK:STDOUT: %.loc32_64.8: init %i32 to %.loc32_64.7 = in_place_init %.loc32_64.6 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %.loc32_64.8: init %i32 to %.loc32_64.7 = in_place_init %.loc32_64.6 [concrete = constants.%int_3.410] // CHECK:STDOUT: %.loc32_64.9: init %C to %.loc32_64.2 = class_init (%.loc32_64.5, %.loc32_64.8) [concrete = constants.%C.val] // CHECK:STDOUT: %.loc32_66.1: init %C = converted %.loc32_64.1, %.loc32_64.9 [concrete = constants.%C.val] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %.loc32_66.2: ref %C = temporary %.loc32_64.2, %.loc32_66.1 [concrete = constants.%.051] -// CHECK:STDOUT: %.loc32_66.3: ref %B = class_element_access %.loc32_66.2, element0 [concrete = constants.%.c14] -// CHECK:STDOUT: %.loc32_66.4: ref %A = class_element_access %.loc32_66.3, element0 [concrete = constants.%.493] -// CHECK:STDOUT: %.loc32_66.5: ref %A = converted %.loc32_66.1, %.loc32_66.4 [concrete = constants.%.493] +// CHECK:STDOUT: %.loc32_66.2: ref %C = temporary %.loc32_64.2, %.loc32_66.1 [concrete = constants.%.084] +// CHECK:STDOUT: %.loc32_66.3: ref %B = class_element_access %.loc32_66.2, element0 [concrete = constants.%.107] +// CHECK:STDOUT: %.loc32_66.4: ref %A = class_element_access %.loc32_66.3, element0 [concrete = constants.%.5ce] +// CHECK:STDOUT: %.loc32_66.5: ref %A = converted %.loc32_66.1, %.loc32_66.4 [concrete = constants.%.5ce] // CHECK:STDOUT: %.loc32_66.6: %A = acquire_value %.loc32_66.5 // CHECK:STDOUT: %a: %A = value_binding a, %.loc32_66.6 -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.051) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.084) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -447,7 +447,7 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc32_66.3(%self.param: ref %struct_type.a.1c5) { +// CHECK:STDOUT: fn @Destroy.Op.loc32_66.3(%self.param: ref %struct_type.a.a92) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -457,7 +457,7 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc32_66.5(%self.param: ref %struct_type.base.b.19e) { +// CHECK:STDOUT: fn @Destroy.Op.loc32_66.5(%self.param: ref %struct_type.base.b.6c4) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -467,7 +467,7 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc32_66.7(%self.param: ref %struct_type.base.c.d60) { +// CHECK:STDOUT: fn @Destroy.Op.loc32_66.7(%self.param: ref %struct_type.base.c.faf) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -483,36 +483,36 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %const.92a: type = const_type %A [concrete] -// CHECK:STDOUT: %ptr.df6: type = ptr_type %const.92a [concrete] +// CHECK:STDOUT: %const.b97: type = const_type %A [concrete] +// CHECK:STDOUT: %ptr.903: type = ptr_type %const.b97 [concrete] // CHECK:STDOUT: %TakeConstAPtr.type: type = fn_type @TakeConstAPtr [concrete] // CHECK:STDOUT: %TakeConstAPtr: %TakeConstAPtr.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.294: type = ptr_type %B [concrete] -// CHECK:STDOUT: %const.d0c: type = const_type %B [concrete] -// CHECK:STDOUT: %ptr.556: type = ptr_type %const.d0c [concrete] +// CHECK:STDOUT: %ptr.432: type = ptr_type %B [concrete] +// CHECK:STDOUT: %const.825: type = const_type %B [concrete] +// CHECK:STDOUT: %ptr.c09: type = ptr_type %const.825 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @PassNonConstBPtr(%p.param: %ptr.294) { +// CHECK:STDOUT: fn @PassNonConstBPtr(%p.param: %ptr.432) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakeConstAPtr.ref: %TakeConstAPtr.type = name_ref TakeConstAPtr, file.%TakeConstAPtr.decl [concrete = constants.%TakeConstAPtr] -// CHECK:STDOUT: %p.ref: %ptr.294 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.432 = name_ref p, %p // CHECK:STDOUT: %.loc15_17.1: ref %B = deref %p.ref // CHECK:STDOUT: %.loc15_17.2: ref %A = class_element_access %.loc15_17.1, element0 -// CHECK:STDOUT: %addr: %ptr.df6 = addr_of %.loc15_17.2 -// CHECK:STDOUT: %.loc15_17.3: %ptr.df6 = as_compatible %addr -// CHECK:STDOUT: %.loc15_17.4: %ptr.df6 = converted %p.ref, %.loc15_17.3 +// CHECK:STDOUT: %addr: %ptr.903 = addr_of %.loc15_17.2 +// CHECK:STDOUT: %.loc15_17.3: %ptr.903 = as_compatible %addr +// CHECK:STDOUT: %.loc15_17.4: %ptr.903 = converted %p.ref, %.loc15_17.3 // CHECK:STDOUT: %TakeConstAPtr.call: init %empty_tuple.type = call %TakeConstAPtr.ref(%.loc15_17.4) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @PassConstBPtr(%p.param: %ptr.556) { +// CHECK:STDOUT: fn @PassConstBPtr(%p.param: %ptr.c09) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakeConstAPtr.ref: %TakeConstAPtr.type = name_ref TakeConstAPtr, file.%TakeConstAPtr.decl [concrete = constants.%TakeConstAPtr] -// CHECK:STDOUT: %p.ref: %ptr.556 = name_ref p, %p -// CHECK:STDOUT: %.loc21_17.1: ref %const.d0c = deref %p.ref -// CHECK:STDOUT: %.loc21_17.2: ref %const.92a = class_element_access %.loc21_17.1, element0 -// CHECK:STDOUT: %addr: %ptr.df6 = addr_of %.loc21_17.2 -// CHECK:STDOUT: %.loc21_17.3: %ptr.df6 = converted %p.ref, %addr +// CHECK:STDOUT: %p.ref: %ptr.c09 = name_ref p, %p +// CHECK:STDOUT: %.loc21_17.1: ref %const.825 = deref %p.ref +// CHECK:STDOUT: %.loc21_17.2: ref %const.b97 = class_element_access %.loc21_17.1, element0 +// CHECK:STDOUT: %addr: %ptr.903 = addr_of %.loc21_17.2 +// CHECK:STDOUT: %.loc21_17.3: %ptr.903 = converted %p.ref, %addr // CHECK:STDOUT: %TakeConstAPtr.call: init %empty_tuple.type = call %TakeConstAPtr.ref(%.loc21_17.3) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -523,26 +523,26 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %const.92a: type = const_type %A [concrete] +// CHECK:STDOUT: %const.b97: type = const_type %A [concrete] // CHECK:STDOUT: %TakeConstA.type: type = fn_type @TakeConstA [concrete] // CHECK:STDOUT: %TakeConstA: %TakeConstA.type = struct_value () [concrete] -// CHECK:STDOUT: %const.d0c: type = const_type %B [concrete] +// CHECK:STDOUT: %const.825: type = const_type %B [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @PassNonConstB(%p.param: %B) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakeConstA.ref: %TakeConstA.type = name_ref TakeConstA, file.%TakeConstA.decl [concrete = constants.%TakeConstA] // CHECK:STDOUT: %p.ref: %B = name_ref p, %p -// CHECK:STDOUT: %.loc25: %const.92a = converted %p.ref, [concrete = ] +// CHECK:STDOUT: %.loc25: %const.b97 = converted %p.ref, [concrete = ] // CHECK:STDOUT: %TakeConstA.call: init %empty_tuple.type = call %TakeConstA.ref() // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @PassConstB(%p.param: %const.d0c) { +// CHECK:STDOUT: fn @PassConstB(%p.param: %const.825) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakeConstA.ref: %TakeConstA.type = name_ref TakeConstA, file.%TakeConstA.decl [concrete = constants.%TakeConstA] -// CHECK:STDOUT: %p.ref: %const.d0c = name_ref p, %p -// CHECK:STDOUT: %.loc41: %const.92a = converted %p.ref, [concrete = ] +// CHECK:STDOUT: %p.ref: %const.825 = name_ref p, %p +// CHECK:STDOUT: %.loc41: %const.b97 = converted %p.ref, [concrete = ] // CHECK:STDOUT: %TakeConstA.call: init %empty_tuple.type = call %TakeConstA.ref() // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/inheritance/import_base.carbon b/toolchain/check/testdata/class/inheritance/import_base.carbon index cc02b35d017c..1633f0d83815 100644 --- a/toolchain/check/testdata/class/inheritance/import_base.carbon +++ b/toolchain/check/testdata/class/inheritance/import_base.carbon @@ -44,7 +44,7 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Base: type = class_type @Base [concrete] -// CHECK:STDOUT: %pattern_type.116: type = pattern_type %Base [concrete] +// CHECK:STDOUT: %pattern_type.912: type = pattern_type %Base [concrete] // CHECK:STDOUT: %Base.F.type: type = fn_type @Base.F [concrete] // CHECK:STDOUT: %Base.F: %Base.F.type = struct_value () [concrete] // CHECK:STDOUT: %Base.Unused.type: type = fn_type @Base.Unused [concrete] @@ -55,11 +55,11 @@ fn Run() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [concrete] // CHECK:STDOUT: %struct_type.x.unused_y: type = struct_type {.x: %i32, .unused_y: %i32} [concrete] -// CHECK:STDOUT: %complete_type.bc2: = complete_type_witness %struct_type.x.unused_y [concrete] +// CHECK:STDOUT: %complete_type.6c3: = complete_type_witness %struct_type.x.unused_y [concrete] // CHECK:STDOUT: %Child: type = class_type @Child [concrete] // CHECK:STDOUT: %Child.elem: type = unbound_element_type %Child, %Base [concrete] // CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %Base} [concrete] -// CHECK:STDOUT: %complete_type.736: = complete_type_witness %struct_type.base [concrete] +// CHECK:STDOUT: %complete_type.c02: = complete_type_witness %struct_type.base [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -84,16 +84,16 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: class @Base { // CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.116 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.116 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Base = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base] // CHECK:STDOUT: %self: %Base = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %Base.Unused.decl: %Base.Unused.type = fn_decl @Base.Unused [concrete = constants.%Base.Unused] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.116 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.116 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Base = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base] @@ -101,7 +101,7 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: %.loc8: %Base.elem = field_decl x, element0 [concrete] // CHECK:STDOUT: %.loc9: %Base.elem = field_decl unused_y, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x.unused_y [concrete = constants.%complete_type.bc2] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x.unused_y [concrete = constants.%complete_type.6c3] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -115,7 +115,7 @@ fn Run() { // CHECK:STDOUT: class @Child { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %.loc13: %Child.elem = base_decl %Base.ref, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base [concrete = constants.%complete_type.736] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base [concrete = constants.%complete_type.c02] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -140,75 +140,75 @@ fn Run() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %struct_type.x.unused_y.50b: type = struct_type {.x: %i32, .unused_y: %i32} [concrete] -// CHECK:STDOUT: %complete_type.4f6: = complete_type_witness %struct_type.x.unused_y.50b [concrete] -// CHECK:STDOUT: %struct_type.base.d37: type = struct_type {.base: %Base} [concrete] -// CHECK:STDOUT: %complete_type.736: = complete_type_witness %struct_type.base.d37 [concrete] -// CHECK:STDOUT: %pattern_type.dad: type = pattern_type %Child [concrete] +// CHECK:STDOUT: %struct_type.x.unused_y.258: type = struct_type {.x: %i32, .unused_y: %i32} [concrete] +// CHECK:STDOUT: %complete_type.6c3: = complete_type_witness %struct_type.x.unused_y.258 [concrete] +// CHECK:STDOUT: %struct_type.base.cae: type = struct_type {.base: %Base} [concrete] +// CHECK:STDOUT: %complete_type.c02: = complete_type_witness %struct_type.base.cae [concrete] +// CHECK:STDOUT: %pattern_type.860: type = pattern_type %Child [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.x.unused_y.76a: type = struct_type {.x: Core.IntLiteral, .unused_y: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.0bf: %struct_type.x.unused_y.76a = struct_value (%int_0.5c6, %int_1.5b8) [concrete] // CHECK:STDOUT: %struct_type.base.503: type = struct_type {.base: %struct_type.x.unused_y.76a} [concrete] // CHECK:STDOUT: %struct.cb5: %struct_type.base.503 = struct_value (%struct.0bf) [concrete] -// CHECK:STDOUT: %.9bb: type = partial_type %Base [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.cf3: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %.edf: type = partial_type %Base [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a20: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.cd7: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a20 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e84: = impl_witness imports.%ImplicitAs.impl_witness_table.fca, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.104: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.785: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.104 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.cf3 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e84) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b79: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.56d: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b79, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f13: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.785 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.785, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.5a8: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.bd1: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.d5f: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.785 [concrete] -// CHECK:STDOUT: %bound_method.392: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.6b0: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %struct.962: %.9bb = struct_value (%int_0.bd1, %int_1.6b0) [concrete] -// CHECK:STDOUT: %Base.val: %Base = struct_value (%int_0.bd1, %int_1.6b0) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.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: %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] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %struct.c25: %.edf = struct_value (%int_0.3c0, %int_1.0c6) [concrete] +// CHECK:STDOUT: %Base.val: %Base = struct_value (%int_0.3c0, %int_1.0c6) [concrete] // CHECK:STDOUT: %Child.val: %Child = struct_value (%Base.val) [concrete] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cf8: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.785 [concrete] -// CHECK:STDOUT: %bound_method.90e: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.c3d: %i32 = 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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // 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.790b3b.6: type = fn_type @Destroy.Op.loc7_3.6 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Base = import_ref Main//a, Base, unloaded // CHECK:STDOUT: %Main.Child: type = import_ref Main//a, Child, loaded [concrete = constants.%Child] -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import, [concrete] { +// CHECK:STDOUT: %Core.048aa3.1: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: .Destroy = %Core.Destroy // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.2b9: = import_ref Main//a, loc10_1, loaded [concrete = constants.%complete_type.4f6] -// CHECK:STDOUT: %Main.import_ref.ff0 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.d29: %Base.F.type = import_ref Main//a, loc5_21, loaded [concrete = constants.%Base.F] -// CHECK:STDOUT: %Main.import_ref.185 = import_ref Main//a, loc6_26, unloaded -// CHECK:STDOUT: %Main.import_ref.010: %Base.elem = import_ref Main//a, loc8_8, loaded [concrete = %.3c0] -// CHECK:STDOUT: %Main.import_ref.ca6 = import_ref Main//a, loc9_15, unloaded -// CHECK:STDOUT: %Main.import_ref.014: = import_ref Main//a, loc14_1, loaded [concrete = constants.%complete_type.736] -// CHECK:STDOUT: %Main.import_ref.e83 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.071 = import_ref Main//a, loc13_20, unloaded -// CHECK:STDOUT: %Main.import_ref.5cab42.2: type = import_ref Main//a, loc13_16, loaded [concrete = constants.%Base] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.4e5: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a20) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.cd7)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.fca = impl_witness_table (%Core.import_ref.4e5), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %.3c0: %Base.elem = field_decl x, element0 [concrete] +// CHECK:STDOUT: %Main.import_ref.6fc: = import_ref Main//a, loc10_1, loaded [concrete = constants.%complete_type.6c3] +// CHECK:STDOUT: %Main.import_ref.d68 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.bc9: %Base.F.type = import_ref Main//a, loc5_21, loaded [concrete = constants.%Base.F] +// CHECK:STDOUT: %Main.import_ref.077 = import_ref Main//a, loc6_26, unloaded +// CHECK:STDOUT: %Main.import_ref.230: %Base.elem = import_ref Main//a, loc8_8, loaded [concrete = %.11f] +// CHECK:STDOUT: %Main.import_ref.9f4 = import_ref Main//a, loc9_15, unloaded +// CHECK:STDOUT: %Main.import_ref.60e: = import_ref Main//a, loc14_1, loaded [concrete = constants.%complete_type.c02] +// CHECK:STDOUT: %Main.import_ref.6e8 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.bd6 = import_ref Main//a, loc13_20, unloaded +// CHECK:STDOUT: %Main.import_ref.439419.2: type = import_ref Main//a, loc13_16, loaded [concrete = constants.%Base] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %.11f: %Base.elem = field_decl x, element0 [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -216,7 +216,7 @@ fn Run() { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Base = imports.%Main.Base // CHECK:STDOUT: .Child = imports.%Main.Child -// CHECK:STDOUT: .Core = imports.%Core.979 +// CHECK:STDOUT: .Core = imports.%Core.048aa3.1 // CHECK:STDOUT: .Run = %Run.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core @@ -225,57 +225,57 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Child [from "a.carbon"] { -// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.014 +// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.60e // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e83 -// CHECK:STDOUT: .base = imports.%Main.import_ref.071 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.6e8 +// CHECK:STDOUT: .base = imports.%Main.import_ref.bd6 // CHECK:STDOUT: .x = // CHECK:STDOUT: .F = -// CHECK:STDOUT: extend imports.%Main.import_ref.5cab42.2 +// CHECK:STDOUT: extend imports.%Main.import_ref.439419.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Base [from "a.carbon"] { -// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.2b9 +// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.6fc // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.ff0 -// CHECK:STDOUT: .F = imports.%Main.import_ref.d29 -// CHECK:STDOUT: .Unused = imports.%Main.import_ref.185 -// CHECK:STDOUT: .x = imports.%Main.import_ref.010 -// CHECK:STDOUT: .unused_y = imports.%Main.import_ref.ca6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.d68 +// CHECK:STDOUT: .F = imports.%Main.import_ref.bc9 +// CHECK:STDOUT: .Unused = imports.%Main.import_ref.077 +// CHECK:STDOUT: .x = imports.%Main.import_ref.230 +// CHECK:STDOUT: .unused_y = imports.%Main.import_ref.9f4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.dad = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.dad = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.860 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.860 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Child = var %a.var_patt // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc7_49.1: %struct_type.x.unused_y.76a = struct_literal (%int_0, %int_1) [concrete = constants.%struct.0bf] // CHECK:STDOUT: %.loc7_50.1: %struct_type.base.503 = struct_literal (%.loc7_49.1) [concrete = constants.%struct.cb5] -// CHECK:STDOUT: %impl.elem0.loc7_49.1: %.56d = impl_witness_access constants.%ImplicitAs.impl_witness.e84, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.785] -// CHECK:STDOUT: %bound_method.loc7_49.1: = bound_method %int_0, %impl.elem0.loc7_49.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f13] +// CHECK:STDOUT: %impl.elem0.loc7_49.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc7_49.1: = bound_method %int_0, %impl.elem0.loc7_49.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc7_49.1: = specific_function %impl.elem0.loc7_49.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_49.2: = bound_method %int_0, %specific_fn.loc7_49.1 [concrete = constants.%bound_method.5a8] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_49.1: init %i32 = call %bound_method.loc7_49.2(%int_0) [concrete = constants.%int_0.bd1] -// CHECK:STDOUT: %.loc7_49.2: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_49.1 [concrete = constants.%int_0.bd1] -// CHECK:STDOUT: %.loc7_50.2: ref %.9bb = class_element_access %a.var, element0 +// CHECK:STDOUT: %bound_method.loc7_49.2: = bound_method %int_0, %specific_fn.loc7_49.1 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_49.1: init %i32 = call %bound_method.loc7_49.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc7_49.2: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_49.1 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc7_50.2: ref %.edf = class_element_access %a.var, element0 // CHECK:STDOUT: %.loc7_49.3: ref %i32 = class_element_access %.loc7_50.2, element0 -// CHECK:STDOUT: %.loc7_49.4: init %i32 to %.loc7_49.3 = in_place_init %.loc7_49.2 [concrete = constants.%int_0.bd1] -// CHECK:STDOUT: %impl.elem0.loc7_49.2: %.56d = impl_witness_access constants.%ImplicitAs.impl_witness.e84, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.785] -// CHECK:STDOUT: %bound_method.loc7_49.3: = bound_method %int_1, %impl.elem0.loc7_49.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.d5f] +// CHECK:STDOUT: %.loc7_49.4: init %i32 to %.loc7_49.3 = in_place_init %.loc7_49.2 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %impl.elem0.loc7_49.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc7_49.3: = bound_method %int_1, %impl.elem0.loc7_49.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc7_49.2: = specific_function %impl.elem0.loc7_49.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_49.4: = bound_method %int_1, %specific_fn.loc7_49.2 [concrete = constants.%bound_method.392] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_49.2: init %i32 = call %bound_method.loc7_49.4(%int_1) [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc7_49.5: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_49.2 [concrete = constants.%int_1.6b0] +// CHECK:STDOUT: %bound_method.loc7_49.4: = bound_method %int_1, %specific_fn.loc7_49.2 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_49.2: init %i32 = call %bound_method.loc7_49.4(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_49.5: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_49.2 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc7_49.6: ref %i32 = class_element_access %.loc7_50.2, element1 -// CHECK:STDOUT: %.loc7_49.7: init %i32 to %.loc7_49.6 = in_place_init %.loc7_49.5 [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc7_49.8: init %.9bb to %.loc7_50.2 = class_init (%.loc7_49.4, %.loc7_49.7) [concrete = constants.%struct.962] -// CHECK:STDOUT: %.loc7_50.3: init %.9bb = converted %.loc7_49.1, %.loc7_49.8 [concrete = constants.%struct.962] +// CHECK:STDOUT: %.loc7_49.7: init %i32 to %.loc7_49.6 = in_place_init %.loc7_49.5 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_49.8: init %.edf to %.loc7_50.2 = class_init (%.loc7_49.4, %.loc7_49.7) [concrete = constants.%struct.c25] +// CHECK:STDOUT: %.loc7_50.3: init %.edf = converted %.loc7_49.1, %.loc7_49.8 [concrete = constants.%struct.c25] // CHECK:STDOUT: %.loc7_50.4: init %Base = as_compatible %.loc7_50.3 [concrete = constants.%Base.val] // CHECK:STDOUT: %.loc7_50.5: init %Child to %a.var = class_init (%.loc7_50.4) [concrete = constants.%Child.val] // CHECK:STDOUT: %.loc7_3: init %Child = converted %.loc7_50.1, %.loc7_50.5 [concrete = constants.%Child.val] @@ -283,26 +283,26 @@ fn Run() { // CHECK:STDOUT: %Child.ref: type = name_ref Child, imports.%Main.Child [concrete = constants.%Child] // CHECK:STDOUT: %a: ref %Child = ref_binding a, %a.var // CHECK:STDOUT: %a.ref.loc8: ref %Child = name_ref a, %a -// CHECK:STDOUT: %x.ref: %Base.elem = name_ref x, imports.%Main.import_ref.010 [concrete = imports.%.3c0] +// CHECK:STDOUT: %x.ref: %Base.elem = name_ref x, imports.%Main.import_ref.230 [concrete = imports.%.11f] // CHECK:STDOUT: %.loc8_4.1: ref %Base = class_element_access %a.ref.loc8, element0 // CHECK:STDOUT: %.loc8_4.2: ref %Base = converted %a.ref.loc8, %.loc8_4.1 // CHECK:STDOUT: %.loc8_4.3: ref %i32 = class_element_access %.loc8_4.2, element0 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc8: %.56d = impl_witness_access constants.%ImplicitAs.impl_witness.e84, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.785] -// CHECK:STDOUT: %bound_method.loc8_7.1: = bound_method %int_2, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cf8] +// CHECK:STDOUT: %impl.elem0.loc8: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_7.1: = bound_method %int_2, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_7.2: = bound_method %int_2, %specific_fn.loc8 [concrete = constants.%bound_method.90e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %i32 = call %bound_method.loc8_7.2(%int_2) [concrete = constants.%int_2.c3d] -// CHECK:STDOUT: %.loc8_7: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_2.c3d] +// CHECK:STDOUT: %bound_method.loc8_7.2: = bound_method %int_2, %specific_fn.loc8 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %i32 = call %bound_method.loc8_7.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc8_7: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_2.295] // CHECK:STDOUT: assign %.loc8_4.3, %.loc8_7 // CHECK:STDOUT: %a.ref.loc9: ref %Child = name_ref a, %a -// CHECK:STDOUT: %F.ref: %Base.F.type = name_ref F, imports.%Main.import_ref.d29 [concrete = constants.%Base.F] +// CHECK:STDOUT: %F.ref: %Base.F.type = name_ref F, imports.%Main.import_ref.bc9 [concrete = constants.%Base.F] // CHECK:STDOUT: %Base.F.bound: = bound_method %a.ref.loc9, %F.ref // CHECK:STDOUT: %.loc9_3.1: ref %Base = class_element_access %a.ref.loc9, element0 // CHECK:STDOUT: %.loc9_3.2: ref %Base = converted %a.ref.loc9, %.loc9_3.1 // CHECK:STDOUT: %.loc9_3.3: %Base = acquire_value %.loc9_3.2 // CHECK:STDOUT: %Base.F.call: init %empty_tuple.type = call %Base.F.bound(%.loc9_3.3) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.6 +// 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: return // CHECK:STDOUT: } @@ -316,7 +316,7 @@ fn Run() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.3(%self.param: ref %struct_type.x.unused_y.50b) { +// CHECK:STDOUT: fn @Destroy.Op.loc7_3.3(%self.param: ref %struct_type.x.unused_y.258) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -326,7 +326,7 @@ fn Run() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.5(%self.param: ref %struct_type.base.d37) { +// CHECK:STDOUT: fn @Destroy.Op.loc7_3.5(%self.param: ref %struct_type.base.cae) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/inheritance/self_conversion.carbon b/toolchain/check/testdata/class/inheritance/self_conversion.carbon index 97d87795a019..a6ed267bc0e3 100644 --- a/toolchain/check/testdata/class/inheritance/self_conversion.carbon +++ b/toolchain/check/testdata/class/inheritance/self_conversion.carbon @@ -46,49 +46,49 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete] -// CHECK:STDOUT: %complete_type.f2a: = complete_type_witness %struct_type.a [concrete] +// CHECK:STDOUT: %complete_type.388: = complete_type_witness %struct_type.a [concrete] // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] // CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base [concrete] -// CHECK:STDOUT: %pattern_type.116: type = pattern_type %Base [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.912: type = pattern_type %Base [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %Derived.SelfBase.type: type = fn_type @Derived.SelfBase [concrete] // CHECK:STDOUT: %Derived.SelfBase: %Derived.SelfBase.type = struct_value () [concrete] // CHECK:STDOUT: %Derived.RefSelfBase.type: type = fn_type @Derived.RefSelfBase [concrete] // CHECK:STDOUT: %Derived.RefSelfBase: %Derived.RefSelfBase.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.d37: type = struct_type {.base: %Base} [concrete] -// CHECK:STDOUT: %complete_type.736: = complete_type_witness %struct_type.base.d37 [concrete] +// CHECK:STDOUT: %struct_type.base.cae: type = struct_type {.base: %Base} [concrete] +// CHECK:STDOUT: %complete_type.c02: = complete_type_witness %struct_type.base.cae [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %ptr.054: type = ptr_type %Derived [concrete] -// CHECK:STDOUT: %pattern_type.df0: type = pattern_type %ptr.054 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %ptr.64c: type = ptr_type %Derived [concrete] +// CHECK:STDOUT: %pattern_type.56c: type = pattern_type %ptr.64c [concrete] // CHECK:STDOUT: %Call.type: type = fn_type @Call [concrete] // CHECK:STDOUT: %Call: %Call.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -103,11 +103,11 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -121,13 +121,13 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Derived.SelfBase.decl: %Derived.SelfBase.type = fn_decl @Derived.SelfBase [concrete = constants.%Derived.SelfBase] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.116 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.116 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc26 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc26 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc26: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc26: Core.Form = init_form %i32.loc26 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc26: Core.Form = init_form %i32.loc26 [concrete = constants.%.795] // CHECK:STDOUT: %self.param.loc26: %Base = value_param call_param0 // CHECK:STDOUT: %Base.ref.loc26: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %self.loc26: %Base = value_binding self, %self.param.loc26 @@ -135,27 +135,27 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %return.loc26: ref %i32 = return_slot %return.param.loc26 // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.RefSelfBase.decl: %Derived.RefSelfBase.type = fn_decl @Derived.RefSelfBase [concrete = constants.%Derived.RefSelfBase] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.116 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.116 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param.loc30: ref %Base = ref_param call_param0 // CHECK:STDOUT: %Base.ref.loc30: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %self.loc30: ref %Base = ref_binding self, %self.param.loc30 // CHECK:STDOUT: } // CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.df0 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.df0 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc34_25: Core.Form = init_form %i32 [concrete = constants.%.7ea] -// CHECK:STDOUT: %p.param: %ptr.054 = value_param call_param0 -// CHECK:STDOUT: %.loc34_19: type = splice_block %ptr [concrete = constants.%ptr.054] { +// CHECK:STDOUT: %.loc34_25: Core.Form = init_form %i32 [concrete = constants.%.795] +// CHECK:STDOUT: %p.param: %ptr.64c = value_param call_param0 +// CHECK:STDOUT: %.loc34_19: type = splice_block %ptr [concrete = constants.%ptr.64c] { // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] -// CHECK:STDOUT: %ptr: type = ptr_type %Derived.ref [concrete = constants.%ptr.054] +// CHECK:STDOUT: %ptr: type = ptr_type %Derived.ref [concrete = constants.%ptr.64c] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.054 = value_binding p, %p.param +// CHECK:STDOUT: %p: %ptr.64c = value_binding p, %p.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -163,7 +163,7 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @Base { // CHECK:STDOUT: %.loc16: %Base.elem = field_decl a, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a [concrete = constants.%complete_type.f2a] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a [concrete = constants.%complete_type.388] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -176,13 +176,13 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %.loc20: %Derived.elem = base_decl %Base.ref, element0 [concrete] // CHECK:STDOUT: %Derived.SelfBase.decl: %Derived.SelfBase.type = fn_decl @Derived.SelfBase [concrete = constants.%Derived.SelfBase] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.116 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.116 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc26 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc26 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc22: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc22: Core.Form = init_form %i32.loc22 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc22: Core.Form = init_form %i32.loc22 [concrete = constants.%.795] // CHECK:STDOUT: %self.param.loc22: %Base = value_param call_param0 // CHECK:STDOUT: %Base.ref.loc22: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %self.loc22: %Base = value_binding self, %self.param.loc22 @@ -190,14 +190,14 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %return.loc22: ref %i32 = return_slot %return.param.loc22 // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.RefSelfBase.decl: %Derived.RefSelfBase.type = fn_decl @Derived.RefSelfBase [concrete = constants.%Derived.RefSelfBase] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.116 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.116 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param.loc23: ref %Base = ref_param call_param0 // CHECK:STDOUT: %Base.ref.loc23: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %self.loc23: ref %Base = ref_binding self, %self.param.loc23 // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d37 [concrete = constants.%complete_type.736] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.cae [concrete = constants.%complete_type.c02] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -215,7 +215,7 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %a.ref: %Base.elem = name_ref a, @Base.%.loc16 [concrete = @Base.%.loc16] // CHECK:STDOUT: %.loc27_14.1: ref %i32 = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc27_14.2: %i32 = acquire_value %.loc27_14.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc27_14.1: = bound_method %.loc27_14.2, %impl.elem0 // 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.loc27_14.2: = bound_method %.loc27_14.2, %specific_fn @@ -229,26 +229,26 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %a.ref: %Base.elem = name_ref a, @Base.%.loc16 [concrete = @Base.%.loc16] // CHECK:STDOUT: %.loc31_7: ref %i32 = class_element_access %self.ref, element0 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc31_10.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc31_10.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc31_10.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc31_10: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc31_10.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc31_10: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] // CHECK:STDOUT: assign %.loc31_7, %.loc31_10 // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Call(%p.param: %ptr.054) -> out %return.param: %i32 { +// CHECK:STDOUT: fn @Call(%p.param: %ptr.64c) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref.loc35: %ptr.054 = name_ref p, %p +// CHECK:STDOUT: %p.ref.loc35: %ptr.64c = name_ref p, %p // CHECK:STDOUT: %.loc35_4.1: ref %Derived = deref %p.ref.loc35 // CHECK:STDOUT: %RefSelfBase.ref: %Derived.RefSelfBase.type = name_ref RefSelfBase, @Derived.%Derived.RefSelfBase.decl [concrete = constants.%Derived.RefSelfBase] // CHECK:STDOUT: %Derived.RefSelfBase.bound: = bound_method %.loc35_4.1, %RefSelfBase.ref // CHECK:STDOUT: %.loc35_4.2: ref %Base = class_element_access %.loc35_4.1, element0 // CHECK:STDOUT: %.loc35_4.3: ref %Base = converted %.loc35_4.1, %.loc35_4.2 // CHECK:STDOUT: %Derived.RefSelfBase.call: init %empty_tuple.type = call %Derived.RefSelfBase.bound(%.loc35_4.3) -// CHECK:STDOUT: %p.ref.loc36: %ptr.054 = name_ref p, %p +// CHECK:STDOUT: %p.ref.loc36: %ptr.64c = name_ref p, %p // CHECK:STDOUT: %.loc36_11.1: ref %Derived = deref %p.ref.loc36 // CHECK:STDOUT: %SelfBase.ref: %Derived.SelfBase.type = name_ref SelfBase, @Derived.%Derived.SelfBase.decl [concrete = constants.%Derived.SelfBase] // CHECK:STDOUT: %Derived.SelfBase.bound: = bound_method %.loc36_11.1, %SelfBase.ref diff --git a/toolchain/check/testdata/class/init.carbon b/toolchain/check/testdata/class/init.carbon index 5da264cbea79..4716ab31ce06 100644 --- a/toolchain/check/testdata/class/init.carbon +++ b/toolchain/check/testdata/class/init.carbon @@ -34,40 +34,40 @@ fn MakeReorder(n: i32, next: Class*) -> Class { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Class.elem.70f: type = unbound_element_type %Class, %i32 [concrete] -// CHECK:STDOUT: %ptr.e55: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %pattern_type.732: type = pattern_type %ptr.e55 [concrete] -// CHECK:STDOUT: %Class.elem.79d: type = unbound_element_type %Class, %ptr.e55 [concrete] -// CHECK:STDOUT: %struct_type.n.next: type = struct_type {.n: %i32, .next: %ptr.e55} [concrete] -// CHECK:STDOUT: %complete_type.368: = complete_type_witness %struct_type.n.next [concrete] -// CHECK:STDOUT: %.14f: Core.Form = init_form %Class [concrete] -// CHECK:STDOUT: %pattern_type.415: type = pattern_type %Class [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Class.elem.b98: type = unbound_element_type %Class, %i32 [concrete] +// CHECK:STDOUT: %ptr.7ee: type = ptr_type %Class [concrete] +// CHECK:STDOUT: %pattern_type.8c5: type = pattern_type %ptr.7ee [concrete] +// CHECK:STDOUT: %Class.elem.8da: type = unbound_element_type %Class, %ptr.7ee [concrete] +// CHECK:STDOUT: %struct_type.n.next: type = struct_type {.n: %i32, .next: %ptr.7ee} [concrete] +// CHECK:STDOUT: %complete_type.dc3: = complete_type_witness %struct_type.n.next [concrete] +// CHECK:STDOUT: %.d76: Core.Form = init_form %Class [concrete] +// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete] // CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete] // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] +// 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: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.14d: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet.14d [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Copy.impl_witness.f8f: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%Class) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.4ac: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Class) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.b07: %ptr.as.Copy.impl.Op.type.4ac = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.410: %Copy.type = facet_value %ptr.e55, (%Copy.impl_witness.f8f) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7db: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.410) [concrete] -// CHECK:STDOUT: %.044: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7db, %Copy.facet.410 [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.b07, @ptr.as.Copy.impl.Op(%Class) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.987: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet.987 [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: %Copy.impl_witness.fa4: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%Class) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.6c2: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Class) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.8fa: %ptr.as.Copy.impl.Op.type.6c2 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.7b4: %Copy.type = facet_value %ptr.7ee, (%Copy.impl_witness.fa4) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8bf: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.7b4) [concrete] +// CHECK:STDOUT: %.4c3: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8bf, %Copy.facet.7b4 [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: %MakeReorder.type: type = fn_type @MakeReorder [concrete] // CHECK:STDOUT: %MakeReorder: %MakeReorder.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.next.n: type = struct_type {.next: %ptr.e55, .n: %i32} [concrete] +// CHECK:STDOUT: %struct_type.next.n: type = struct_type {.next: %ptr.7ee, .n: %i32} [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -79,10 +79,10 @@ fn MakeReorder(n: i32, next: Class*) -> Class { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -95,55 +95,55 @@ fn MakeReorder(n: i32, next: Class*) -> Class { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %next.param_patt: %pattern_type.732 = value_param_pattern [concrete] -// CHECK:STDOUT: %next.patt: %pattern_type.732 = at_binding_pattern next, %next.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.415 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.415 = return_slot_pattern %return.param_patt, %Class.ref.loc20_34 [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %next.param_patt: %pattern_type.8c5 = value_param_pattern [concrete] +// CHECK:STDOUT: %next.patt: %pattern_type.8c5 = at_binding_pattern next, %next.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f15 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f15 = return_slot_pattern %return.param_patt, %Class.ref.loc20_34 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref.loc20_34: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %.loc20_34: Core.Form = init_form %Class.ref.loc20_34 [concrete = constants.%.14f] +// CHECK:STDOUT: %.loc20_34: Core.Form = init_form %Class.ref.loc20_34 [concrete = constants.%.d76] // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param -// CHECK:STDOUT: %next.param: %ptr.e55 = value_param call_param1 -// CHECK:STDOUT: %.loc20_28: type = splice_block %ptr [concrete = constants.%ptr.e55] { +// CHECK:STDOUT: %next.param: %ptr.7ee = value_param call_param1 +// CHECK:STDOUT: %.loc20_28: type = splice_block %ptr [concrete = constants.%ptr.7ee] { // CHECK:STDOUT: %Class.ref.loc20_23: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %ptr: type = ptr_type %Class.ref.loc20_23 [concrete = constants.%ptr.e55] +// CHECK:STDOUT: %ptr: type = ptr_type %Class.ref.loc20_23 [concrete = constants.%ptr.7ee] // CHECK:STDOUT: } -// CHECK:STDOUT: %next: %ptr.e55 = value_binding next, %next.param +// CHECK:STDOUT: %next: %ptr.7ee = value_binding next, %next.param // CHECK:STDOUT: %return.param: ref %Class = out_param call_param2 // CHECK:STDOUT: %return: ref %Class = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %MakeReorder.decl: %MakeReorder.type = fn_decl @MakeReorder [concrete = constants.%MakeReorder] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %next.param_patt: %pattern_type.732 = value_param_pattern [concrete] -// CHECK:STDOUT: %next.patt: %pattern_type.732 = at_binding_pattern next, %next.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.415 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.415 = return_slot_pattern %return.param_patt, %Class.ref.loc24_41 [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %next.param_patt: %pattern_type.8c5 = value_param_pattern [concrete] +// CHECK:STDOUT: %next.patt: %pattern_type.8c5 = at_binding_pattern next, %next.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f15 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f15 = return_slot_pattern %return.param_patt, %Class.ref.loc24_41 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref.loc24_41: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %.loc24_41: Core.Form = init_form %Class.ref.loc24_41 [concrete = constants.%.14f] +// CHECK:STDOUT: %.loc24_41: Core.Form = init_form %Class.ref.loc24_41 [concrete = constants.%.d76] // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param -// CHECK:STDOUT: %next.param: %ptr.e55 = value_param call_param1 -// CHECK:STDOUT: %.loc24_35: type = splice_block %ptr [concrete = constants.%ptr.e55] { +// CHECK:STDOUT: %next.param: %ptr.7ee = value_param call_param1 +// CHECK:STDOUT: %.loc24_35: type = splice_block %ptr [concrete = constants.%ptr.7ee] { // CHECK:STDOUT: %Class.ref.loc24_30: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %ptr: type = ptr_type %Class.ref.loc24_30 [concrete = constants.%ptr.e55] +// CHECK:STDOUT: %ptr: type = ptr_type %Class.ref.loc24_30 [concrete = constants.%ptr.7ee] // CHECK:STDOUT: } -// CHECK:STDOUT: %next: %ptr.e55 = value_binding next, %next.param +// CHECK:STDOUT: %next: %ptr.7ee = value_binding next, %next.param // CHECK:STDOUT: %return.param: ref %Class = out_param call_param2 // CHECK:STDOUT: %return: ref %Class = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Class { -// CHECK:STDOUT: %.loc16: %Class.elem.70f = field_decl n, element0 [concrete] -// CHECK:STDOUT: %.loc17: %Class.elem.79d = field_decl next, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n.next [concrete = constants.%complete_type.368] +// CHECK:STDOUT: %.loc16: %Class.elem.b98 = field_decl n, element0 [concrete] +// CHECK:STDOUT: %.loc17: %Class.elem.8da = field_decl next, element1 [concrete] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n.next [concrete = constants.%complete_type.dc3] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -153,49 +153,49 @@ fn MakeReorder(n: i32, next: Class*) -> Class { // CHECK:STDOUT: .next = %.loc17 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Make(%n.param: %i32, %next.param: %ptr.e55) -> out %return.param: %Class { +// CHECK:STDOUT: fn @Make(%n.param: %i32, %next.param: %ptr.7ee) -> out %return.param: %Class { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n -// CHECK:STDOUT: %next.ref: %ptr.e55 = name_ref next, %next +// CHECK:STDOUT: %next.ref: %ptr.7ee = name_ref next, %next // CHECK:STDOUT: %.loc21_31.1: %struct_type.n.next = struct_literal (%n.ref, %next.ref) -// CHECK:STDOUT: %impl.elem0.loc21_16: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc21_16: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc21_16.1: = bound_method %n.ref, %impl.elem0.loc21_16 // CHECK:STDOUT: %specific_fn.loc21_16: = specific_function %impl.elem0.loc21_16, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc21_16.2: = bound_method %n.ref, %specific_fn.loc21_16 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc21_16.2(%n.ref) // CHECK:STDOUT: %.loc21_31.2: ref %i32 = class_element_access %return.param, element0 // CHECK:STDOUT: %.loc21_31.3: init %i32 to %.loc21_31.2 = in_place_init %Int.as.Copy.impl.Op.call -// CHECK:STDOUT: %impl.elem0.loc21_27: %.044 = impl_witness_access constants.%Copy.impl_witness.f8f, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b07] +// CHECK:STDOUT: %impl.elem0.loc21_27: %.4c3 = impl_witness_access constants.%Copy.impl_witness.fa4, element0 [concrete = constants.%ptr.as.Copy.impl.Op.8fa] // CHECK:STDOUT: %bound_method.loc21_27.1: = bound_method %next.ref, %impl.elem0.loc21_27 // CHECK:STDOUT: %specific_fn.loc21_27: = specific_function %impl.elem0.loc21_27, @ptr.as.Copy.impl.Op(constants.%Class) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc21_27.2: = bound_method %next.ref, %specific_fn.loc21_27 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.e55 = call %bound_method.loc21_27.2(%next.ref) -// CHECK:STDOUT: %.loc21_31.4: ref %ptr.e55 = class_element_access %return.param, element1 -// CHECK:STDOUT: %.loc21_31.5: init %ptr.e55 to %.loc21_31.4 = in_place_init %ptr.as.Copy.impl.Op.call +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.7ee = call %bound_method.loc21_27.2(%next.ref) +// CHECK:STDOUT: %.loc21_31.4: ref %ptr.7ee = class_element_access %return.param, element1 +// CHECK:STDOUT: %.loc21_31.5: init %ptr.7ee to %.loc21_31.4 = in_place_init %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: %.loc21_31.6: init %Class to %return.param = class_init (%.loc21_31.3, %.loc21_31.5) // CHECK:STDOUT: %.loc21_32: init %Class = converted %.loc21_31.1, %.loc21_31.6 // CHECK:STDOUT: return %.loc21_32 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @MakeReorder(%n.param: %i32, %next.param: %ptr.e55) -> out %return.param: %Class { +// CHECK:STDOUT: fn @MakeReorder(%n.param: %i32, %next.param: %ptr.7ee) -> out %return.param: %Class { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %next.ref: %ptr.e55 = name_ref next, %next +// CHECK:STDOUT: %next.ref: %ptr.7ee = name_ref next, %next // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: %.loc25_31.1: %struct_type.next.n = struct_literal (%next.ref, %n.ref) -// CHECK:STDOUT: %impl.elem0.loc25_30: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc25_30: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc25_30.1: = bound_method %n.ref, %impl.elem0.loc25_30 // CHECK:STDOUT: %specific_fn.loc25_30: = specific_function %impl.elem0.loc25_30, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc25_30.2: = bound_method %n.ref, %specific_fn.loc25_30 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc25_30.2(%n.ref) // CHECK:STDOUT: %.loc25_31.2: ref %i32 = class_element_access %return.param, element1 // CHECK:STDOUT: %.loc25_31.3: init %i32 to %.loc25_31.2 = in_place_init %Int.as.Copy.impl.Op.call -// CHECK:STDOUT: %impl.elem0.loc25_19: %.044 = impl_witness_access constants.%Copy.impl_witness.f8f, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b07] +// CHECK:STDOUT: %impl.elem0.loc25_19: %.4c3 = impl_witness_access constants.%Copy.impl_witness.fa4, element0 [concrete = constants.%ptr.as.Copy.impl.Op.8fa] // CHECK:STDOUT: %bound_method.loc25_19.1: = bound_method %next.ref, %impl.elem0.loc25_19 // CHECK:STDOUT: %specific_fn.loc25_19: = specific_function %impl.elem0.loc25_19, @ptr.as.Copy.impl.Op(constants.%Class) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc25_19.2: = bound_method %next.ref, %specific_fn.loc25_19 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.e55 = call %bound_method.loc25_19.2(%next.ref) -// CHECK:STDOUT: %.loc25_31.4: ref %ptr.e55 = class_element_access %return.param, element0 -// CHECK:STDOUT: %.loc25_31.5: init %ptr.e55 to %.loc25_31.4 = in_place_init %ptr.as.Copy.impl.Op.call +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.7ee = call %bound_method.loc25_19.2(%next.ref) +// CHECK:STDOUT: %.loc25_31.4: ref %ptr.7ee = class_element_access %return.param, element0 +// CHECK:STDOUT: %.loc25_31.5: init %ptr.7ee to %.loc25_31.4 = in_place_init %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: %.loc25_31.6: init %Class to %return.param = class_init (%.loc25_31.3, %.loc25_31.5) // CHECK:STDOUT: %.loc25_32: init %Class = converted %.loc25_31.1, %.loc25_31.6 // CHECK:STDOUT: return %.loc25_32 to %return.param diff --git a/toolchain/check/testdata/class/init_as.carbon b/toolchain/check/testdata/class/init_as.carbon index 40b8d2e79c1d..927cf9f26ab9 100644 --- a/toolchain/check/testdata/class/init_as.carbon +++ b/toolchain/check/testdata/class/init_as.carbon @@ -38,52 +38,52 @@ fn G() -> i32 { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [concrete] -// CHECK:STDOUT: %struct_type.a.b.b47: type = struct_type {.a: %i32, .b: %i32} [concrete] +// CHECK:STDOUT: %struct_type.a.b.b4c: type = struct_type {.a: %i32, .b: %i32} [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.a.b.cfd = struct_value (%int_1.5b8, %int_2.ecc) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %Class.val: %Class = struct_value (%int_1.d9c, %int_2.228) [concrete] -// CHECK:STDOUT: %.685: ref %Class = temporary invalid, %Class.val [concrete] -// CHECK:STDOUT: %.557: ref %i32 = class_element_access %.685, element0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %Class.val: %Class = struct_value (%int_1.0c6, %int_2.295) [concrete] +// CHECK:STDOUT: %.0e3: ref %Class = temporary invalid, %Class.val [concrete] +// CHECK:STDOUT: %.d44: ref %i32 = class_element_access %.0e3, element0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.415: type = pattern_type %Class [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc20_28.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.685, %Destroy.Op.2dd605.4 [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> out %return.param: %i32 { @@ -92,35 +92,35 @@ fn G() -> i32 { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc20_26.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) [concrete = constants.%struct] // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %impl.elem0.loc20_26.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc20_26.1: = bound_method %int_1, %impl.elem0.loc20_26.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc20_26.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc20_26.1: = bound_method %int_1, %impl.elem0.loc20_26.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc20_26.1: = specific_function %impl.elem0.loc20_26.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc20_26.2: = bound_method %int_1, %specific_fn.loc20_26.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_26.1: init %i32 = call %bound_method.loc20_26.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc20_26.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_26.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc20_26.2: = bound_method %int_1, %specific_fn.loc20_26.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_26.1: init %i32 = call %bound_method.loc20_26.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc20_26.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_26.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc20_26.3: ref %Class = temporary_storage // CHECK:STDOUT: %.loc20_26.4: ref %i32 = class_element_access %.loc20_26.3, element0 -// CHECK:STDOUT: %.loc20_26.5: init %i32 to %.loc20_26.4 = in_place_init %.loc20_26.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc20_26.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc20_26.3: = bound_method %int_2, %impl.elem0.loc20_26.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc20_26.5: init %i32 to %.loc20_26.4 = in_place_init %.loc20_26.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc20_26.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc20_26.3: = bound_method %int_2, %impl.elem0.loc20_26.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc20_26.2: = specific_function %impl.elem0.loc20_26.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc20_26.4: = bound_method %int_2, %specific_fn.loc20_26.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_26.2: init %i32 = call %bound_method.loc20_26.4(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc20_26.6: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_26.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc20_26.4: = bound_method %int_2, %specific_fn.loc20_26.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_26.2: init %i32 = call %bound_method.loc20_26.4(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc20_26.6: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_26.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc20_26.7: ref %i32 = class_element_access %.loc20_26.3, element1 -// CHECK:STDOUT: %.loc20_26.8: init %i32 to %.loc20_26.7 = in_place_init %.loc20_26.6 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %.loc20_26.8: init %i32 to %.loc20_26.7 = in_place_init %.loc20_26.6 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc20_26.9: init %Class to %.loc20_26.3 = class_init (%.loc20_26.5, %.loc20_26.8) [concrete = constants.%Class.val] // CHECK:STDOUT: %.loc20_28.1: init %Class = converted %.loc20_26.1, %.loc20_26.9 [concrete = constants.%Class.val] -// CHECK:STDOUT: %.loc20_28.2: ref %Class = temporary %.loc20_26.3, %.loc20_28.1 [concrete = constants.%.685] +// CHECK:STDOUT: %.loc20_28.2: ref %Class = temporary %.loc20_26.3, %.loc20_28.1 [concrete = constants.%.0e3] // CHECK:STDOUT: %a.ref: %Class.elem = name_ref a, @Class.%.loc14 [concrete = @Class.%.loc14] -// CHECK:STDOUT: %.loc20_37.1: ref %i32 = class_element_access %.loc20_28.2, element0 [concrete = constants.%.557] +// CHECK:STDOUT: %.loc20_37.1: ref %i32 = class_element_access %.loc20_28.2, element0 [concrete = constants.%.d44] // CHECK:STDOUT: %.loc20_37.2: %i32 = acquire_value %.loc20_37.1 -// CHECK:STDOUT: %impl.elem0.loc20_37: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc20_37: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc20_37.1: = bound_method %.loc20_37.2, %impl.elem0.loc20_37 // 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.%.685) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.0e3) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -131,7 +131,7 @@ fn G() -> i32 { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_28.3(%self.param: ref %struct_type.a.b.b47) { +// CHECK:STDOUT: fn @Destroy.Op.loc20_28.3(%self.param: ref %struct_type.a.b.b4c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -144,38 +144,38 @@ fn G() -> i32 { // CHECK:STDOUT: fn @G() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.415 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.415 = var_pattern %v.patt [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: } // CHECK:STDOUT: %v.var: ref %Class = var %v.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc26_33.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) [concrete = constants.%struct] // CHECK:STDOUT: %Class.ref.loc26_38: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %impl.elem0.loc26_33.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc26_33.1: = bound_method %int_1, %impl.elem0.loc26_33.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc26_33.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc26_33.1: = bound_method %int_1, %impl.elem0.loc26_33.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc26_33.1: = specific_function %impl.elem0.loc26_33.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_33.2: = bound_method %int_1, %specific_fn.loc26_33.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_33.1: init %i32 = call %bound_method.loc26_33.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc26_33.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_33.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc26_33.2: = bound_method %int_1, %specific_fn.loc26_33.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_33.1: init %i32 = call %bound_method.loc26_33.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc26_33.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_33.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc26_3: ref %Class = splice_block %v.var {} // CHECK:STDOUT: %.loc26_33.3: ref %i32 = class_element_access %.loc26_3, element0 -// CHECK:STDOUT: %.loc26_33.4: init %i32 to %.loc26_33.3 = in_place_init %.loc26_33.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc26_33.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc26_33.3: = bound_method %int_2, %impl.elem0.loc26_33.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc26_33.4: init %i32 to %.loc26_33.3 = in_place_init %.loc26_33.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc26_33.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc26_33.3: = bound_method %int_2, %impl.elem0.loc26_33.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc26_33.2: = specific_function %impl.elem0.loc26_33.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_33.4: = bound_method %int_2, %specific_fn.loc26_33.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_33.2: init %i32 = call %bound_method.loc26_33.4(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc26_33.5: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_33.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc26_33.4: = bound_method %int_2, %specific_fn.loc26_33.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_33.2: init %i32 = call %bound_method.loc26_33.4(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc26_33.5: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_33.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc26_33.6: ref %i32 = class_element_access %.loc26_3, element1 -// CHECK:STDOUT: %.loc26_33.7: init %i32 to %.loc26_33.6 = in_place_init %.loc26_33.5 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %.loc26_33.7: init %i32 to %.loc26_33.6 = in_place_init %.loc26_33.5 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc26_33.8: init %Class to %.loc26_3 = class_init (%.loc26_33.4, %.loc26_33.7) [concrete = constants.%Class.val] // CHECK:STDOUT: %.loc26_35: init %Class = converted %.loc26_33.1, %.loc26_33.8 [concrete = constants.%Class.val] // CHECK:STDOUT: assign %v.var, %.loc26_35 // CHECK:STDOUT: %Class.ref.loc26_10: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] // CHECK:STDOUT: %v: ref %Class = ref_binding v, %v.var // CHECK:STDOUT: -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.2dd605.4 +// 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: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/init_nested.carbon b/toolchain/check/testdata/class/init_nested.carbon index 8ab490eb753f..0e0ea532a983 100644 --- a/toolchain/check/testdata/class/init_nested.carbon +++ b/toolchain/check/testdata/class/init_nested.carbon @@ -38,17 +38,17 @@ fn MakeOuter() -> Outer { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Inner.elem: type = unbound_element_type %Inner, %i32 [concrete] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete] -// CHECK:STDOUT: %complete_type.abf: = complete_type_witness %struct_type.a.b [concrete] -// CHECK:STDOUT: %.edc: Core.Form = init_form %Inner [concrete] -// CHECK:STDOUT: %pattern_type.78d: type = pattern_type %Inner [concrete] +// CHECK:STDOUT: %complete_type.7b9: = complete_type_witness %struct_type.a.b [concrete] +// CHECK:STDOUT: %.ffb: Core.Form = init_form %Inner [concrete] +// CHECK:STDOUT: %pattern_type.dfc: type = pattern_type %Inner [concrete] // CHECK:STDOUT: %MakeInner.type: type = fn_type @MakeInner [concrete] // CHECK:STDOUT: %MakeInner: %MakeInner.type = struct_value () [concrete] // CHECK:STDOUT: %Outer: type = class_type @Outer [concrete] // CHECK:STDOUT: %Outer.elem: type = unbound_element_type %Outer, %Inner [concrete] -// CHECK:STDOUT: %struct_type.c.d.fb7: type = struct_type {.c: %Inner, .d: %Inner} [concrete] -// CHECK:STDOUT: %complete_type.d9c: = complete_type_witness %struct_type.c.d.fb7 [concrete] -// CHECK:STDOUT: %.993: Core.Form = init_form %Outer [concrete] -// CHECK:STDOUT: %pattern_type.87b: type = pattern_type %Outer [concrete] +// CHECK:STDOUT: %struct_type.c.d.899: type = struct_type {.c: %Inner, .d: %Inner} [concrete] +// CHECK:STDOUT: %complete_type.890: = complete_type_witness %struct_type.c.d.899 [concrete] +// CHECK:STDOUT: %.50e: Core.Form = init_form %Outer [concrete] +// CHECK:STDOUT: %pattern_type.d6c: type = pattern_type %Outer [concrete] // CHECK:STDOUT: %MakeOuter.type: type = fn_type @MakeOuter [concrete] // CHECK:STDOUT: %MakeOuter: %MakeOuter.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -73,21 +73,21 @@ fn MakeOuter() -> Outer { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Inner.decl: type = class_decl @Inner [concrete = constants.%Inner] {} {} // CHECK:STDOUT: %MakeInner.decl: %MakeInner.type = fn_decl @MakeInner [concrete = constants.%MakeInner] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.78d = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.78d = return_slot_pattern %return.param_patt, %Inner.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.dfc = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.dfc = return_slot_pattern %return.param_patt, %Inner.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Inner.ref: type = name_ref Inner, file.%Inner.decl [concrete = constants.%Inner] -// CHECK:STDOUT: %.loc20: Core.Form = init_form %Inner.ref [concrete = constants.%.edc] +// CHECK:STDOUT: %.loc20: Core.Form = init_form %Inner.ref [concrete = constants.%.ffb] // CHECK:STDOUT: %return.param: ref %Inner = out_param call_param0 // CHECK:STDOUT: %return: ref %Inner = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Outer.decl: type = class_decl @Outer [concrete = constants.%Outer] {} {} // CHECK:STDOUT: %MakeOuter.decl: %MakeOuter.type = fn_decl @MakeOuter [concrete = constants.%MakeOuter] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.87b = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.87b = return_slot_pattern %return.param_patt, %Outer.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.d6c = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.d6c = return_slot_pattern %return.param_patt, %Outer.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Outer.ref: type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer] -// CHECK:STDOUT: %.loc27: Core.Form = init_form %Outer.ref [concrete = constants.%.993] +// CHECK:STDOUT: %.loc27: Core.Form = init_form %Outer.ref [concrete = constants.%.50e] // CHECK:STDOUT: %return.param: ref %Outer = out_param call_param0 // CHECK:STDOUT: %return: ref %Outer = return_slot %return.param // CHECK:STDOUT: } @@ -96,7 +96,7 @@ fn MakeOuter() -> Outer { // CHECK:STDOUT: class @Inner { // CHECK:STDOUT: %.loc16: %Inner.elem = field_decl a, element0 [concrete] // CHECK:STDOUT: %.loc17: %Inner.elem = field_decl b, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.abf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b [concrete = constants.%complete_type.7b9] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -108,7 +108,7 @@ fn MakeOuter() -> Outer { // CHECK:STDOUT: class @Outer { // CHECK:STDOUT: %.loc23: %Outer.elem = field_decl c, element0 [concrete] // CHECK:STDOUT: %.loc24: %Outer.elem = field_decl d, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.c.d.fb7 [concrete = constants.%complete_type.d9c] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.c.d.899 [concrete = constants.%complete_type.890] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -128,7 +128,7 @@ fn MakeOuter() -> Outer { // CHECK:STDOUT: %MakeInner.ref.loc28_34: %MakeInner.type = name_ref MakeInner, file.%MakeInner.decl [concrete = constants.%MakeInner] // CHECK:STDOUT: %.loc28_45.2: ref %Inner = class_element_access %return.param, element1 // CHECK:STDOUT: %MakeInner.call.loc28_44: init %Inner to %.loc28_45.2 = call %MakeInner.ref.loc28_34() -// CHECK:STDOUT: %.loc28_45.3: %struct_type.c.d.fb7 = struct_literal (%MakeInner.call.loc28_26, %MakeInner.call.loc28_44) +// CHECK:STDOUT: %.loc28_45.3: %struct_type.c.d.899 = struct_literal (%MakeInner.call.loc28_26, %MakeInner.call.loc28_44) // CHECK:STDOUT: %.loc28_45.4: init %Outer to %return.param = class_init (%MakeInner.call.loc28_26, %MakeInner.call.loc28_44) // CHECK:STDOUT: %.loc28_46: init %Outer = converted %.loc28_45.3, %.loc28_45.4 // CHECK:STDOUT: return %.loc28_46 to %return.param diff --git a/toolchain/check/testdata/class/local.carbon b/toolchain/check/testdata/class/local.carbon index e75a49b3da1b..aa710a46bddc 100644 --- a/toolchain/check/testdata/class/local.carbon +++ b/toolchain/check/testdata/class/local.carbon @@ -37,8 +37,8 @@ class A { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %A.F.type: type = fn_type @A.F [concrete] // CHECK:STDOUT: %A.F: %A.F.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] @@ -50,41 +50,41 @@ class A { // CHECK:STDOUT: %B.Make.type: type = fn_type @B.Make [concrete] // CHECK:STDOUT: %B.Make: %B.Make.type = struct_value () [concrete] // CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %i32 [concrete] -// CHECK:STDOUT: %struct_type.n.c7a: type = struct_type {.n: %i32} [concrete] -// CHECK:STDOUT: %complete_type.edf: = complete_type_witness %struct_type.n.c7a [concrete] +// CHECK:STDOUT: %struct_type.n.9ed: type = struct_type {.n: %i32} [concrete] +// CHECK:STDOUT: %complete_type.cdf: = complete_type_witness %struct_type.n.9ed [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.n.44a: type = struct_type {.n: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.n.44a = struct_value (%int_1.5b8) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %B.val: %B = struct_value (%int_1.d9c) [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %B.val: %B = struct_value (%int_1.0c6) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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.790b3b.4: type = fn_type @Destroy.Op.loc26_19.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -97,12 +97,12 @@ class A { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -117,11 +117,11 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: class @A { // CHECK:STDOUT: %A.F.decl: %A.F.type = fn_decl @A.F [concrete = constants.%A.F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -144,7 +144,7 @@ class A { // CHECK:STDOUT: %return: ref %B = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %.loc23: %B.elem = field_decl n, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n.c7a [concrete = constants.%complete_type.edf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n.9ed [concrete = constants.%complete_type.cdf] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -164,12 +164,12 @@ class A { // CHECK:STDOUT: %n.ref: %B.elem = name_ref n, @B.%.loc23 [concrete = @B.%.loc23] // CHECK:STDOUT: %.loc26_20.1: ref %i32 = class_element_access %.loc26_19.2, element0 // CHECK:STDOUT: %.loc26_20.2: %i32 = acquire_value %.loc26_20.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc26_20.1: = bound_method %.loc26_20.2, %impl.elem0 // 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.2dd605.4 +// 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: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } @@ -182,14 +182,14 @@ class A { // CHECK:STDOUT: } // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc19_39.1: %struct_type.n.44a = struct_literal (%int_1) [concrete = constants.%struct] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc19_39.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_39.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc19_39.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc19_39.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc19_39.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc19_39.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc19_39.3: ref %i32 = class_element_access %return.param, element0 -// CHECK:STDOUT: %.loc19_39.4: init %i32 to %.loc19_39.3 = in_place_init %.loc19_39.2 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %.loc19_39.4: init %i32 to %.loc19_39.3 = in_place_init %.loc19_39.2 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc19_39.5: init %B to %return.param = class_init (%.loc19_39.4) [concrete = constants.%B.val] // CHECK:STDOUT: %.loc19_18: init %B = converted %.loc19_39.1, %.loc19_39.5 [concrete = constants.%B.val] // CHECK:STDOUT: assign %return.param, %.loc19_18 @@ -206,7 +206,7 @@ class A { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_19.3(%self.param: ref %struct_type.n.c7a) { +// CHECK:STDOUT: fn @Destroy.Op.loc26_19.3(%self.param: ref %struct_type.n.9ed) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/method/generic_method.carbon b/toolchain/check/testdata/class/method/generic_method.carbon index 9a82c74e9928..bf1570a0646e 100644 --- a/toolchain/check/testdata/class/method/generic_method.carbon +++ b/toolchain/check/testdata/class/method/generic_method.carbon @@ -32,12 +32,12 @@ fn Class(T:! type).F[unused self: Self](unused n: T) {} // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T [symbolic] -// CHECK:STDOUT: %pattern_type.f8f: type = pattern_type %Class [symbolic] +// CHECK:STDOUT: %pattern_type.36e: type = pattern_type %Class [symbolic] // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F, @Class(%T) [symbolic] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [symbolic] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T} [symbolic] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [symbolic] -// CHECK:STDOUT: %require_complete.cc4: = require_complete_type %Class [symbolic] +// CHECK:STDOUT: %require_complete.4d9: = require_complete_type %Class [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -63,8 +63,8 @@ fn Class(T:! type).F[unused self: Self](unused n: T) {} // CHECK:STDOUT: %T.loc15_14.2: type = symbolic_binding T, 0 [symbolic = %T.loc15_14.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [symbolic = constants.%Class.F] { -// CHECK:STDOUT: %self.param_patt: @Class.F.%pattern_type.loc17_12 (%pattern_type.f8f) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Class.F.%pattern_type.loc17_12 (%pattern_type.f8f) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Class.F.%pattern_type.loc17_12 (%pattern_type.36e) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Class.F.%pattern_type.loc17_12 (%pattern_type.36e) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type.loc17_21 (%pattern_type.51d) = value_param_pattern [concrete] // CHECK:STDOUT: %n.patt: @Class.F.%pattern_type.loc17_21 (%pattern_type.51d) = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { @@ -100,8 +100,8 @@ fn Class(T:! type).F[unused self: Self](unused n: T) {} // CHECK:STDOUT: class { // CHECK:STDOUT: %.loc16: @Class.%Class.elem (%Class.elem) = field_decl a, element0 [concrete] // CHECK:STDOUT: %Class.F.decl: @Class.%Class.F.type (%Class.F.type) = fn_decl @Class.F [symbolic = @Class.%Class.F (constants.%Class.F)] { -// CHECK:STDOUT: %self.param_patt: @Class.F.%pattern_type.loc17_12 (%pattern_type.f8f) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Class.F.%pattern_type.loc17_12 (%pattern_type.f8f) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Class.F.%pattern_type.loc17_12 (%pattern_type.36e) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Class.F.%pattern_type.loc17_12 (%pattern_type.36e) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type.loc17_21 (%pattern_type.51d) = value_param_pattern [concrete] // CHECK:STDOUT: %n.patt: @Class.F.%pattern_type.loc17_21 (%pattern_type.51d) = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { @@ -129,11 +129,11 @@ fn Class(T:! type).F[unused self: Self](unused n: T) {} // CHECK:STDOUT: generic fn @Class.F(@Class.%T.loc15_14.2: type) { // CHECK:STDOUT: %T.loc17: type = symbolic_binding T, 0 [symbolic = %T.loc17 (constants.%T)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc17) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %pattern_type.loc17_12: type = pattern_type %Class [symbolic = %pattern_type.loc17_12 (constants.%pattern_type.f8f)] +// CHECK:STDOUT: %pattern_type.loc17_12: type = pattern_type %Class [symbolic = %pattern_type.loc17_12 (constants.%pattern_type.36e)] // CHECK:STDOUT: %pattern_type.loc17_21: type = pattern_type %T.loc17 [symbolic = %pattern_type.loc17_21 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc20_33: = require_complete_type %Class [symbolic = %require_complete.loc20_33 (constants.%require_complete.cc4)] +// CHECK:STDOUT: %require_complete.loc20_33: = require_complete_type %Class [symbolic = %require_complete.loc20_33 (constants.%require_complete.4d9)] // CHECK:STDOUT: %require_complete.loc20_49: = require_complete_type %T.loc17 [symbolic = %require_complete.loc20_49 (constants.%require_complete.944)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param.loc20: @Class.F.%Class (%Class), %n.param.loc20: @Class.F.%T.loc17 (%T)) { @@ -158,7 +158,7 @@ fn Class(T:! type).F[unused self: Self](unused n: T) {} // CHECK:STDOUT: specific @Class.F(constants.%T) { // CHECK:STDOUT: %T.loc17 => constants.%T // CHECK:STDOUT: %Class => constants.%Class -// CHECK:STDOUT: %pattern_type.loc17_12 => constants.%pattern_type.f8f +// CHECK:STDOUT: %pattern_type.loc17_12 => constants.%pattern_type.36e // CHECK:STDOUT: %pattern_type.loc17_21 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/method/method.carbon b/toolchain/check/testdata/class/method/method.carbon index bb7a05e2d758..18fcf499a3ca 100644 --- a/toolchain/check/testdata/class/method/method.carbon +++ b/toolchain/check/testdata/class/method/method.carbon @@ -66,34 +66,34 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Class: type = class_type @Class [concrete] -// CHECK:STDOUT: %pattern_type.415: type = pattern_type %Class [concrete] +// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [concrete] // CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G [concrete] // CHECK:STDOUT: %Class.G: %Class.G.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [concrete] -// CHECK:STDOUT: %struct_type.k.baa: type = struct_type {.k: %i32} [concrete] -// CHECK:STDOUT: %complete_type.b06: = complete_type_witness %struct_type.k.baa [concrete] +// CHECK:STDOUT: %struct_type.k.e7c: type = struct_type {.k: %i32} [concrete] +// CHECK:STDOUT: %complete_type.d82: = complete_type_witness %struct_type.k.e7c [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] +// 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: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %Call.type: type = fn_type @Call [concrete] // CHECK:STDOUT: %Call: %Call.type = struct_value () [concrete] // CHECK:STDOUT: %CallAlias.type: type = fn_type @CallAlias [concrete] @@ -103,42 +103,42 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.k.240: type = struct_type {.k: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.k.240 = struct_value (%int_1.5b8) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Class.val: %Class = struct_value (%int_1.d9c) [concrete] -// CHECK:STDOUT: %.c99: ref %Class = temporary invalid, %Class.val [concrete] -// CHECK:STDOUT: %Class.F.bound: = bound_method %.c99, %Class.F [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Class.val: %Class = struct_value (%int_1.0c6) [concrete] +// 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.790b3b.4: type = fn_type @Destroy.Op.loc39_20.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.c99, %Destroy.Op.2dd605.4 [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: %CallWithRef.type: type = fn_type @CallWithRef [concrete] // CHECK:STDOUT: %CallWithRef: %CallWithRef.type = struct_value () [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.410: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%Class) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.f58: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Class) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.795: %T.as.DefaultOrUnformed.impl.Op.type.f58 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Class, (%DefaultOrUnformed.impl_witness.410) [concrete] -// CHECK:STDOUT: %.14f: Core.Form = init_form %Class [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.795, @T.as.DefaultOrUnformed.impl.Op(%Class) [concrete] -// CHECK:STDOUT: %ptr.e55: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %pattern_type.732: type = pattern_type %ptr.e55 [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.4e8: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%Class) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.cac: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Class) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.de4: %T.as.DefaultOrUnformed.impl.Op.type.cac = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Class, (%DefaultOrUnformed.impl_witness.4e8) [concrete] +// CHECK:STDOUT: %.d76: Core.Form = init_form %Class [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: %ptr.7ee: type = ptr_type %Class [concrete] +// CHECK:STDOUT: %pattern_type.8c5: type = pattern_type %ptr.7ee [concrete] // CHECK:STDOUT: %CallFThroughPointer.type: type = fn_type @CallFThroughPointer [concrete] // CHECK:STDOUT: %CallFThroughPointer: %CallFThroughPointer.type = struct_value () [concrete] // CHECK:STDOUT: %CallGThroughPointer.type: type = fn_type @CallGThroughPointer [concrete] @@ -163,15 +163,15 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -191,13 +191,13 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.415 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.415 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc24 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc24 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc24: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc24: Core.Form = init_form %i32.loc24 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc24: Core.Form = init_form %i32.loc24 [concrete = constants.%.795] // CHECK:STDOUT: %self.param.loc24: %Class = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc24: type = name_ref Self, constants.%Class [concrete = constants.%Class] // CHECK:STDOUT: %self.loc24: %Class = value_binding self, %self.param.loc24 @@ -205,13 +205,13 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %return.loc24: ref %i32 = return_slot %return.param.loc24 // CHECK:STDOUT: } // CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.415 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.415 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.f15 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.f15 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc28: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc28: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %c.param: %Class = value_param call_param0 // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] // CHECK:STDOUT: %c: %Class = value_binding c, %c.param @@ -219,13 +219,13 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallAlias.decl: %CallAlias.type = fn_decl @CallAlias [concrete = constants.%CallAlias] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.415 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.415 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.f15 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.f15 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc34: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc34: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %c.param: %Class = value_param call_param0 // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] // CHECK:STDOUT: %c: %Class = value_binding c, %c.param @@ -233,81 +233,81 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallOnConstBoundMethod.decl: %CallOnConstBoundMethod.type = fn_decl @CallOnConstBoundMethod [concrete = constants.%CallOnConstBoundMethod] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc38: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc38: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallWithRef.decl: %CallWithRef.type = fn_decl @CallWithRef [concrete = constants.%CallWithRef] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc42: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc42: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallFThroughPointer.decl: %CallFThroughPointer.type = fn_decl @CallFThroughPointer [concrete = constants.%CallFThroughPointer] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.732 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.732 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.8c5 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc47_38: Core.Form = init_form %i32 [concrete = constants.%.7ea] -// CHECK:STDOUT: %p.param: %ptr.e55 = value_param call_param0 -// CHECK:STDOUT: %.loc47_32: type = splice_block %ptr [concrete = constants.%ptr.e55] { +// CHECK:STDOUT: %.loc47_38: Core.Form = init_form %i32 [concrete = constants.%.795] +// CHECK:STDOUT: %p.param: %ptr.7ee = value_param call_param0 +// CHECK:STDOUT: %.loc47_32: type = splice_block %ptr [concrete = constants.%ptr.7ee] { // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %ptr: type = ptr_type %Class.ref [concrete = constants.%ptr.e55] +// CHECK:STDOUT: %ptr: type = ptr_type %Class.ref [concrete = constants.%ptr.7ee] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.e55 = value_binding p, %p.param +// CHECK:STDOUT: %p: %ptr.7ee = value_binding p, %p.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallGThroughPointer.decl: %CallGThroughPointer.type = fn_decl @CallGThroughPointer [concrete = constants.%CallGThroughPointer] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.732 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.732 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.8c5 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc51_38: Core.Form = init_form %i32 [concrete = constants.%.7ea] -// CHECK:STDOUT: %p.param: %ptr.e55 = value_param call_param0 -// CHECK:STDOUT: %.loc51_32: type = splice_block %ptr [concrete = constants.%ptr.e55] { +// CHECK:STDOUT: %.loc51_38: Core.Form = init_form %i32 [concrete = constants.%.795] +// CHECK:STDOUT: %p.param: %ptr.7ee = value_param call_param0 +// CHECK:STDOUT: %.loc51_32: type = splice_block %ptr [concrete = constants.%ptr.7ee] { // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %ptr: type = ptr_type %Class.ref [concrete = constants.%ptr.e55] +// CHECK:STDOUT: %ptr: type = ptr_type %Class.ref [concrete = constants.%ptr.7ee] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.e55 = value_binding p, %p.param +// CHECK:STDOUT: %p: %ptr.7ee = value_binding p, %p.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.415 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.415 = return_slot_pattern %return.param_patt, %Class.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f15 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f15 = return_slot_pattern %return.param_patt, %Class.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %.loc55: Core.Form = init_form %Class.ref [concrete = constants.%.14f] +// CHECK:STDOUT: %.loc55: Core.Form = init_form %Class.ref [concrete = constants.%.d76] // CHECK:STDOUT: %return.param: ref %Class = out_param call_param0 // CHECK:STDOUT: %return: ref %Class = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallFOnInitializingExpr.decl: %CallFOnInitializingExpr.type = fn_decl @CallFOnInitializingExpr [concrete = constants.%CallFOnInitializingExpr] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc57: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc57: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallGOnInitializingExpr.decl: %CallGOnInitializingExpr.type = fn_decl @CallGOnInitializingExpr [concrete = constants.%CallGOnInitializingExpr] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc61: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc61: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -315,13 +315,13 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.415 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.415 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc24 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc24 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32.loc16 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32.loc16 [concrete = constants.%.795] // CHECK:STDOUT: %self.param.loc16: %Class = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc16: type = name_ref Self, constants.%Class [concrete = constants.%Class] // CHECK:STDOUT: %self.loc16: %Class = value_binding self, %self.param.loc16 @@ -329,13 +329,13 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %return.loc16: ref %i32 = return_slot %return.param.loc16 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.415 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.415 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc17: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc17: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %self.param: ref %Class = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Class [concrete = constants.%Class] // CHECK:STDOUT: %self: ref %Class = ref_binding self, %self.param @@ -345,7 +345,7 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %F.ref: %Class.F.type = name_ref F, %Class.F.decl [concrete = constants.%Class.F] // CHECK:STDOUT: %A: %Class.F.type = alias_binding A, %F.ref [concrete = constants.%Class.F] // CHECK:STDOUT: %.loc21: %Class.elem = field_decl k, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.k.baa [concrete = constants.%complete_type.b06] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.k.e7c [concrete = constants.%complete_type.d82] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -362,7 +362,7 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %k.ref: %Class.elem = name_ref k, @Class.%.loc21 [concrete = @Class.%.loc21] // CHECK:STDOUT: %.loc25_14.1: ref %i32 = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc25_14.2: %i32 = acquire_value %.loc25_14.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc25_14.1: = bound_method %.loc25_14.2, %impl.elem0 // 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.loc25_14.2: = bound_method %.loc25_14.2, %specific_fn @@ -395,23 +395,23 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc39_18.1: %struct_type.k.240 = struct_literal (%int_1) [concrete = constants.%struct] // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc39_18.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc39_18.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc39_18.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc39_18.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc39_18.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc39_18.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc39_18.3: ref %Class = temporary_storage // CHECK:STDOUT: %.loc39_18.4: ref %i32 = class_element_access %.loc39_18.3, element0 -// CHECK:STDOUT: %.loc39_18.5: init %i32 to %.loc39_18.4 = in_place_init %.loc39_18.2 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %.loc39_18.5: init %i32 to %.loc39_18.4 = in_place_init %.loc39_18.2 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc39_18.6: init %Class to %.loc39_18.3 = class_init (%.loc39_18.5) [concrete = constants.%Class.val] // CHECK:STDOUT: %.loc39_20.1: init %Class = converted %.loc39_18.1, %.loc39_18.6 [concrete = constants.%Class.val] -// CHECK:STDOUT: %.loc39_20.2: ref %Class = temporary %.loc39_18.3, %.loc39_20.1 [concrete = constants.%.c99] +// CHECK:STDOUT: %.loc39_20.2: ref %Class = temporary %.loc39_18.3, %.loc39_20.1 [concrete = constants.%.a72] // CHECK:STDOUT: %F.ref: %Class.F.type = name_ref F, @Class.%Class.F.decl [concrete = constants.%Class.F] // 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.%.c99) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.a72) // CHECK:STDOUT: return %Class.F.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -422,7 +422,7 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc39_20.3(%self.param: ref %struct_type.k.baa) { +// CHECK:STDOUT: fn @Destroy.Op.loc39_20.3(%self.param: ref %struct_type.k.e7c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -435,15 +435,15 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: fn @CallWithRef() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.415 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.415 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.f15 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.f15 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %Class = var %c.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Class, (constants.%DefaultOrUnformed.impl_witness.410) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Class, (constants.%DefaultOrUnformed.impl_witness.4e8) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc43_15.1: %DefaultOrUnformed.type = converted constants.%Class, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc43_15.1 [concrete = constants.%Class] // CHECK:STDOUT: %.loc43_15.2: type = converted %.loc43_15.1, %as_type [concrete = constants.%Class] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.795, @T.as.DefaultOrUnformed.impl.Op(constants.%Class) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.de4, @T.as.DefaultOrUnformed.impl.Op(constants.%Class) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %.loc43_3: ref %Class = splice_block %c.var {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %Class to %.loc43_3 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign %c.var, %T.as.DefaultOrUnformed.impl.Op.call @@ -453,14 +453,14 @@ 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.2dd605.4 +// 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: return %Class.G.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallFThroughPointer(%p.param: %ptr.e55) -> out %return.param: %i32 { +// CHECK:STDOUT: fn @CallFThroughPointer(%p.param: %ptr.7ee) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.e55 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.7ee = name_ref p, %p // CHECK:STDOUT: %.loc48_11.1: ref %Class = deref %p.ref // CHECK:STDOUT: %F.ref: %Class.F.type = name_ref F, @Class.%Class.F.decl [concrete = constants.%Class.F] // CHECK:STDOUT: %Class.F.bound: = bound_method %.loc48_11.1, %F.ref @@ -469,9 +469,9 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: return %Class.F.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallGThroughPointer(%p.param: %ptr.e55) -> out %return.param: %i32 { +// CHECK:STDOUT: fn @CallGThroughPointer(%p.param: %ptr.7ee) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.e55 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.7ee = name_ref p, %p // CHECK:STDOUT: %.loc52: ref %Class = deref %p.ref // 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 %.loc52, %G.ref @@ -491,7 +491,7 @@ 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.2dd605.4 +// 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: return %Class.F.call // CHECK:STDOUT: } @@ -505,7 +505,7 @@ 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.2dd605.4 +// 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: return %Class.G.call // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/method/static_method.carbon b/toolchain/check/testdata/class/method/static_method.carbon index 2a2d2a00cbc1..5c6c5863a95d 100644 --- a/toolchain/check/testdata/class/method/static_method.carbon +++ b/toolchain/check/testdata/class/method/static_method.carbon @@ -30,27 +30,27 @@ fn Run() -> i32 { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Run.type: type = fn_type @Run [concrete] // CHECK:STDOUT: %Run: %Run.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.415: type = pattern_type %Class [concrete] +// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.410: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%Class) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.f58: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Class) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.795: %T.as.DefaultOrUnformed.impl.Op.type.f58 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Class, (%DefaultOrUnformed.impl_witness.410) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.795, @T.as.DefaultOrUnformed.impl.Op(%Class) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.4e8: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%Class) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.cac: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Class) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.de4: %T.as.DefaultOrUnformed.impl.Op.type.cac = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Class, (%DefaultOrUnformed.impl_witness.4e8) [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.790b3b.2: type = fn_type @Destroy.Op.loc20_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -63,8 +63,8 @@ fn Run() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -77,11 +77,11 @@ fn Run() -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Run.decl: %Run.type = fn_decl @Run [concrete = constants.%Run] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc19: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc19: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -89,11 +89,11 @@ fn Run() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -110,15 +110,15 @@ fn Run() -> i32 { // CHECK:STDOUT: fn @Run() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.415 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.415 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.f15 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.f15 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %Class = var %c.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Class, (constants.%DefaultOrUnformed.impl_witness.410) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Class, (constants.%DefaultOrUnformed.impl_witness.4e8) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc20_15.1: %DefaultOrUnformed.type = converted constants.%Class, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc20_15.1 [concrete = constants.%Class] // CHECK:STDOUT: %.loc20_15.2: type = converted %.loc20_15.1, %as_type [concrete = constants.%Class] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.795, @T.as.DefaultOrUnformed.impl.Op(constants.%Class) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.de4, @T.as.DefaultOrUnformed.impl.Op(constants.%Class) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %.loc20_3: ref %Class = splice_block %c.var {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %Class to %.loc20_3 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign %c.var, %T.as.DefaultOrUnformed.impl.Op.call @@ -127,7 +127,7 @@ 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.2dd605.2 +// 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: return %Class.F.call // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/method/virtual.carbon b/toolchain/check/testdata/class/method/virtual.carbon index 3f6a96c9a789..243ce2379143 100644 --- a/toolchain/check/testdata/class/method/virtual.carbon +++ b/toolchain/check/testdata/class/method/virtual.carbon @@ -556,7 +556,7 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Base: type = class_type @Base [concrete] -// CHECK:STDOUT: %pattern_type.e8a: type = pattern_type %Base [concrete] +// CHECK:STDOUT: %pattern_type.b8d: type = pattern_type %Base [concrete] // CHECK:STDOUT: %Base.H.type: type = fn_type @Base.H [concrete] // CHECK:STDOUT: %Base.H: %Base.H.type = struct_value () [concrete] // CHECK:STDOUT: %ptr: type = ptr_type [concrete] @@ -564,7 +564,7 @@ class T2(G2:! type) { // CHECK:STDOUT: %struct_type.vptr: type = struct_type {.: %ptr} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.vptr [concrete] // CHECK:STDOUT: %Abstract: type = class_type @Abstract [concrete] -// CHECK:STDOUT: %pattern_type.271: type = pattern_type %Abstract [concrete] +// CHECK:STDOUT: %pattern_type.0e2: type = pattern_type %Abstract [concrete] // CHECK:STDOUT: %Abstract.J.type: type = fn_type @Abstract.J [concrete] // CHECK:STDOUT: %Abstract.J: %Abstract.J.type = struct_value () [concrete] // CHECK:STDOUT: %Abstract.K.type: type = fn_type @Abstract.K [concrete] @@ -579,8 +579,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @Base { // CHECK:STDOUT: %Base.H.decl: %Base.H.type = fn_decl @Base.H [concrete = constants.%Base.H] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.e8a = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.e8a = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.b8d = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.b8d = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Base = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base] @@ -598,16 +598,16 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @Abstract { // CHECK:STDOUT: %Abstract.J.decl: %Abstract.J.type = fn_decl @Abstract.J [concrete = constants.%Abstract.J] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.271 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.271 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.0e2 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.0e2 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Abstract = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Abstract [concrete = constants.%Abstract] // CHECK:STDOUT: %self: %Abstract = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %Abstract.K.decl: %Abstract.K.type = fn_decl @Abstract.K [concrete = constants.%Abstract.K] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.271 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.271 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.0e2 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.0e2 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Abstract = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Abstract [concrete = constants.%Abstract] @@ -647,27 +647,27 @@ class T2(G2:! type) { // CHECK:STDOUT: %ptr.454: type = ptr_type [concrete] // CHECK:STDOUT: %struct_type.vptr: type = struct_type {.: %ptr.454} [concrete] // CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base [concrete] -// CHECK:STDOUT: %pattern_type.cd3: type = pattern_type %Derived [concrete] +// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete] // CHECK:STDOUT: %Derived.H.type: type = fn_type @Derived.H [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Derived.H: %Derived.H.type = struct_value () [concrete] // CHECK:STDOUT: %Base.H.type: type = fn_type @Base.H [concrete] // CHECK:STDOUT: %Base.H: %Base.H.type = struct_value () [concrete] // CHECK:STDOUT: %Derived.vtable_decl: ref %ptr.454 = vtable_decl @Derived.vtable [concrete] -// CHECK:STDOUT: %struct_type.base.d30: type = struct_type {.base: %Base} [concrete] -// CHECK:STDOUT: %complete_type.2fd: = complete_type_witness %struct_type.base.d30 [concrete] +// CHECK:STDOUT: %struct_type.base.507: type = struct_type {.base: %Base} [concrete] +// CHECK:STDOUT: %complete_type.d6b: = complete_type_witness %struct_type.base.507 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.base.f5e: type = struct_type {.base: %empty_struct_type} [concrete] // CHECK:STDOUT: %struct.6b1: %struct_type.base.f5e = struct_value (%empty_struct) [concrete] -// CHECK:STDOUT: %.f73: type = partial_type %Base [concrete] +// CHECK:STDOUT: %.f93: type = partial_type %Base [concrete] // CHECK:STDOUT: %uninit: %ptr.454 = uninitialized_value [concrete] -// CHECK:STDOUT: %struct.0d2: %.f73 = struct_value (%uninit) [concrete] +// CHECK:STDOUT: %struct.7da: %.f93 = struct_value (%uninit) [concrete] // 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.790b3b.5: type = fn_type @Destroy.Op.loc15_3.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.5: %Destroy.Op.type.790b3b.5 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -687,15 +687,15 @@ class T2(G2:! type) { // CHECK:STDOUT: %Base.ref: type = name_ref Base, imports.%Modifiers.Base [concrete = constants.%Base] // CHECK:STDOUT: %.loc8: %Derived.elem = base_decl %Base.ref, element0 [concrete] // CHECK:STDOUT: %Derived.H.decl: %Derived.H.type = fn_decl @Derived.H [concrete = constants.%Derived.H] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.cd3 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.cd3 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.746 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.746 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived] // CHECK:STDOUT: %self: %Derived = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %vtable_decl: ref %ptr.454 = vtable_decl @Derived.vtable [concrete = constants.%Derived.vtable_decl] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d30 [concrete = constants.%complete_type.2fd] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.507 [concrete = constants.%complete_type.d6b] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: vtable_decl = %vtable_decl // CHECK:STDOUT: @@ -720,18 +720,18 @@ class T2(G2:! type) { // CHECK:STDOUT: fn @Use() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.cd3 = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.cd3 = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.746 = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.746 = var_pattern %d.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %d.var: ref %Derived = var %d.var_patt // CHECK:STDOUT: %.loc15_37.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc15_38.1: %struct_type.base.f5e = struct_literal (%.loc15_37.1) [concrete = constants.%struct.6b1] -// CHECK:STDOUT: %.loc15_38.2: ref %.f73 = class_element_access %d.var, element0 +// CHECK:STDOUT: %.loc15_38.2: ref %.f93 = class_element_access %d.var, element0 // CHECK:STDOUT: %.loc15_37.2: ref %ptr.454 = class_element_access %.loc15_38.2, element0 // CHECK:STDOUT: %uninit: %ptr.454 = uninitialized_value [concrete = constants.%uninit] // CHECK:STDOUT: %.loc15_37.3: init %ptr.454 to %.loc15_37.2 = in_place_init %uninit [concrete = constants.%uninit] -// CHECK:STDOUT: %.loc15_37.4: init %.f73 to %.loc15_38.2 = class_init (%.loc15_37.3) [concrete = constants.%struct.0d2] -// CHECK:STDOUT: %.loc15_38.3: init %.f73 = converted %.loc15_37.1, %.loc15_37.4 [concrete = constants.%struct.0d2] +// CHECK:STDOUT: %.loc15_37.4: init %.f93 to %.loc15_38.2 = class_init (%.loc15_37.3) [concrete = constants.%struct.7da] +// CHECK:STDOUT: %.loc15_38.3: init %.f93 = converted %.loc15_37.1, %.loc15_37.4 [concrete = constants.%struct.7da] // CHECK:STDOUT: %.loc15_38.4: init %Base = as_compatible %.loc15_38.3 [concrete = constants.%Base.val] // CHECK:STDOUT: %.loc15_38.5: init %Derived to %d.var = class_init (%.loc15_38.4) [concrete = constants.%Derived.val] // CHECK:STDOUT: %Derived.vtable_ptr: ref %ptr.454 = vtable_ptr @Derived.vtable [concrete = constants.%Derived.vtable_ptr] @@ -743,7 +743,7 @@ class T2(G2:! type) { // CHECK:STDOUT: assign %d.var, %.loc15_3 // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] // CHECK:STDOUT: %d: ref %Derived = ref_binding d, %d.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %d.var, constants.%Destroy.Op.2dd605.5 +// 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: // CHECK:STDOUT: } @@ -760,7 +760,7 @@ class T2(G2:! type) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_3.4(%self.param: ref %struct_type.base.d30) { +// CHECK:STDOUT: fn @Destroy.Op.loc15_3.4(%self.param: ref %struct_type.base.507) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -777,15 +777,15 @@ class T2(G2:! type) { // CHECK:STDOUT: %Base: type = class_type @Base [concrete] // CHECK:STDOUT: %ptr.454: type = ptr_type [concrete] // CHECK:STDOUT: %struct_type.vptr: type = struct_type {.: %ptr.454} [concrete] -// CHECK:STDOUT: %pattern_type.e8a: type = pattern_type %Base [concrete] +// CHECK:STDOUT: %pattern_type.b8d: type = pattern_type %Base [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %Base.H.type: type = fn_type @Base.H [concrete] // 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.790b3b.3: type = fn_type @Destroy.Op.loc8_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -803,8 +803,8 @@ class T2(G2:! type) { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.e8a = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.e8a = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.b8d = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.b8d = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %Base = var %v.var_patt // CHECK:STDOUT: %.loc8_35.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -819,7 +819,7 @@ class T2(G2:! type) { // CHECK:STDOUT: %Base.ref: type = name_ref Base, imports.%Modifiers.Base [concrete = constants.%Base] // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref %Base = ref_binding v, %v.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.2dd605.3 +// 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: // CHECK:STDOUT: } @@ -845,52 +845,52 @@ class T2(G2:! type) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.116: type = pattern_type %Base [concrete] +// CHECK:STDOUT: %pattern_type.912: type = pattern_type %Base [concrete] // CHECK:STDOUT: %ptr.454: type = ptr_type [concrete] // CHECK:STDOUT: %struct_type.vptr.m1.m2: type = struct_type {.: %ptr.454, .m1: %i32, .m2: %i32} [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %struct_type.m2.m1.7bd: type = struct_type {.m2: %i32, .m1: %i32} [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.763: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] +// CHECK:STDOUT: %struct_type.m2.m1.810: type = struct_type {.m2: %i32, .m1: %i32} [concrete] // CHECK:STDOUT: %Base.vtable_ptr: ref %ptr.454 = vtable_ptr @Base.vtable [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] // CHECK:STDOUT: %struct_type.m2.m1.5f2: type = struct_type {.m2: Core.IntLiteral, .m1: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.m2.m1.5f2 = struct_value (%int_3.1ba, %int_5.64b) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e3e: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_5.354: %i32 = int_value 5 [concrete] -// CHECK:STDOUT: %Base.val: %Base = struct_value (%Base.vtable_ptr, %int_5.354, %int_3.6cc) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.5: type = fn_type @Destroy.Op.loc15_3.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.5: %Destroy.Op.type.790b3b.5 = struct_value () [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] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: vtable @Base.vtable { @@ -901,18 +901,18 @@ class T2(G2:! type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b1.patt: %pattern_type.116 = ref_binding_pattern b1 [concrete] -// CHECK:STDOUT: %b1.var_patt: %pattern_type.116 = var_pattern %b1.patt [concrete] +// CHECK:STDOUT: %b1.patt: %pattern_type.912 = ref_binding_pattern b1 [concrete] +// CHECK:STDOUT: %b1.var_patt: %pattern_type.912 = var_pattern %b1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b1.var: ref %Base = var %b1.var_patt // CHECK:STDOUT: %i.ref.loc14_25: ref %i32 = name_ref i, %i // CHECK:STDOUT: %i.ref.loc14_34: ref %i32 = name_ref i, %i -// CHECK:STDOUT: %.loc14_35.1: %struct_type.m2.m1.7bd = struct_literal (%i.ref.loc14_25, %i.ref.loc14_34) +// CHECK:STDOUT: %.loc14_35.1: %struct_type.m2.m1.810 = struct_literal (%i.ref.loc14_25, %i.ref.loc14_34) // CHECK:STDOUT: %.loc14_35.2: ref %ptr.454 = class_element_access %b1.var, element0 // CHECK:STDOUT: %Base.vtable_ptr.loc14: ref %ptr.454 = vtable_ptr @Base.vtable [concrete = constants.%Base.vtable_ptr] // CHECK:STDOUT: %.loc14_35.3: init %ptr.454 to %.loc14_35.2 = in_place_init %Base.vtable_ptr.loc14 [concrete = constants.%Base.vtable_ptr] // CHECK:STDOUT: %.loc14_34: %i32 = acquire_value %i.ref.loc14_34 -// CHECK:STDOUT: %impl.elem0.loc14_34: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc14_34: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc14_34.1: = bound_method %.loc14_34, %impl.elem0.loc14_34 // CHECK:STDOUT: %specific_fn.loc14_34: = specific_function %impl.elem0.loc14_34, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc14_34.2: = bound_method %.loc14_34, %specific_fn.loc14_34 @@ -920,7 +920,7 @@ class T2(G2:! type) { // CHECK:STDOUT: %.loc14_35.4: ref %i32 = class_element_access %b1.var, element2 // CHECK:STDOUT: %.loc14_35.5: init %i32 to %.loc14_35.4 = in_place_init %Int.as.Copy.impl.Op.call.loc14_34 // CHECK:STDOUT: %.loc14_25: %i32 = acquire_value %i.ref.loc14_25 -// CHECK:STDOUT: %impl.elem0.loc14_25: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc14_25: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc14_25.1: = bound_method %.loc14_25, %impl.elem0.loc14_25 // CHECK:STDOUT: %specific_fn.loc14_25: = specific_function %impl.elem0.loc14_25, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc14_25.2: = bound_method %.loc14_25, %specific_fn.loc14_25 @@ -933,8 +933,8 @@ class T2(G2:! type) { // CHECK:STDOUT: %Base.ref.loc14: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %b1: ref %Base = ref_binding b1, %b1.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b2.patt: %pattern_type.116 = ref_binding_pattern b2 [concrete] -// CHECK:STDOUT: %b2.var_patt: %pattern_type.116 = var_pattern %b2.patt [concrete] +// CHECK:STDOUT: %b2.patt: %pattern_type.912 = ref_binding_pattern b2 [concrete] +// CHECK:STDOUT: %b2.var_patt: %pattern_type.912 = var_pattern %b2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b2.var: ref %Base = var %b2.var_patt // CHECK:STDOUT: %int_3.loc15: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] @@ -943,31 +943,31 @@ class T2(G2:! type) { // CHECK:STDOUT: %.loc15_42.2: ref %ptr.454 = class_element_access %b2.var, element0 // CHECK:STDOUT: %Base.vtable_ptr.loc15: ref %ptr.454 = vtable_ptr @Base.vtable [concrete = constants.%Base.vtable_ptr] // CHECK:STDOUT: %.loc15_42.3: init %ptr.454 to %.loc15_42.2 = in_place_init %Base.vtable_ptr.loc15 [concrete = constants.%Base.vtable_ptr] -// CHECK:STDOUT: %impl.elem0.loc15_42.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_42.1: = bound_method %int_5, %impl.elem0.loc15_42.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c] +// CHECK:STDOUT: %impl.elem0.loc15_42.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_42.1: = bound_method %int_5, %impl.elem0.loc15_42.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f6c] // CHECK:STDOUT: %specific_fn.loc15_42.1: = specific_function %impl.elem0.loc15_42.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_42.2: = bound_method %int_5, %specific_fn.loc15_42.1 [concrete = constants.%bound_method.e3e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_42.1: init %i32 = call %bound_method.loc15_42.2(%int_5) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc15_42.4: init %i32 = converted %int_5, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_42.1 [concrete = constants.%int_5.354] +// CHECK:STDOUT: %bound_method.loc15_42.2: = bound_method %int_5, %specific_fn.loc15_42.1 [concrete = constants.%bound_method.c9d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_42.1: init %i32 = call %bound_method.loc15_42.2(%int_5) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc15_42.4: init %i32 = converted %int_5, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_42.1 [concrete = constants.%int_5.eef] // CHECK:STDOUT: %.loc15_42.5: ref %i32 = class_element_access %b2.var, element2 -// CHECK:STDOUT: %.loc15_42.6: init %i32 to %.loc15_42.5 = in_place_init %.loc15_42.4 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %impl.elem0.loc15_42.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_42.3: = bound_method %int_3.loc15, %impl.elem0.loc15_42.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %.loc15_42.6: init %i32 to %.loc15_42.5 = in_place_init %.loc15_42.4 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %impl.elem0.loc15_42.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_42.3: = bound_method %int_3.loc15, %impl.elem0.loc15_42.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc15_42.2: = specific_function %impl.elem0.loc15_42.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_42.4: = bound_method %int_3.loc15, %specific_fn.loc15_42.2 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_42.2: init %i32 = call %bound_method.loc15_42.4(%int_3.loc15) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc15_42.7: init %i32 = converted %int_3.loc15, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_42.2 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc15_42.4: = bound_method %int_3.loc15, %specific_fn.loc15_42.2 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_42.2: init %i32 = call %bound_method.loc15_42.4(%int_3.loc15) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc15_42.7: init %i32 = converted %int_3.loc15, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_42.2 [concrete = constants.%int_3.410] // CHECK:STDOUT: %.loc15_42.8: ref %i32 = class_element_access %b2.var, element1 -// CHECK:STDOUT: %.loc15_42.9: init %i32 to %.loc15_42.8 = in_place_init %.loc15_42.7 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %.loc15_42.9: init %i32 to %.loc15_42.8 = in_place_init %.loc15_42.7 [concrete = constants.%int_3.410] // CHECK:STDOUT: %.loc15_42.10: init %Base to %b2.var = class_init (%.loc15_42.3, %.loc15_42.6, %.loc15_42.9) [concrete = constants.%Base.val] // CHECK:STDOUT: %.loc15_3: init %Base = converted %.loc15_42.1, %.loc15_42.10 [concrete = constants.%Base.val] // CHECK:STDOUT: assign %b2.var, %.loc15_3 // CHECK:STDOUT: %Base.ref.loc15: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %b2: ref %Base = ref_binding b2, %b2.var // CHECK:STDOUT: -// CHECK:STDOUT: %Destroy.Op.bound.loc15: = bound_method %b2.var, constants.%Destroy.Op.2dd605.5 +// 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.2dd605.5 +// 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: // CHECK:STDOUT: } @@ -997,7 +997,7 @@ class T2(G2:! type) { // CHECK:STDOUT: %AbstractBase.F.type: type = fn_type @AbstractBase.F [concrete] // CHECK:STDOUT: %AbstractBase.F: %AbstractBase.F.type = struct_value () [concrete] // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] -// CHECK:STDOUT: %pattern_type.cd3: type = pattern_type %Derived [concrete] +// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete] // CHECK:STDOUT: %Derived.F.type: type = fn_type @Derived.F [concrete] // CHECK:STDOUT: %Derived.F: %Derived.F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -1005,8 +1005,8 @@ class T2(G2:! type) { // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: // CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.cd3 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.cd3 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.746 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.746 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived] @@ -1044,7 +1044,7 @@ class T2(G2:! type) { // CHECK:STDOUT: %VirtualBase.F.type: type = fn_type @VirtualBase.F [concrete] // CHECK:STDOUT: %VirtualBase.F: %VirtualBase.F.type = struct_value () [concrete] // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] -// CHECK:STDOUT: %pattern_type.cd3: type = pattern_type %Derived [concrete] +// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete] // CHECK:STDOUT: %Derived.F.type: type = fn_type @Derived.F [concrete] // CHECK:STDOUT: %Derived.F: %Derived.F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -1052,8 +1052,8 @@ class T2(G2:! type) { // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: // CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.cd3 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.cd3 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.746 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.746 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Derived = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived] @@ -1092,30 +1092,30 @@ class T2(G2:! type) { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %T2: type = class_type @T2 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.ae8: type = facet_type <@ImplicitAs, @ImplicitAs(%T1)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.a74: type = facet_type <@ImplicitAs, @ImplicitAs(%T1)> [concrete] // CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness @T2.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete] // CHECK:STDOUT: %T2.as.ImplicitAs.impl.Convert.type: type = fn_type @T2.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %T2.as.ImplicitAs.impl.Convert: %T2.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.ae8 = facet_value %T2, (%ImplicitAs.impl_witness) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b7d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%T1, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.a74 = facet_value %T2, (%ImplicitAs.impl_witness) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.00a: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%T1, %ImplicitAs.facet) [concrete] // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] -// CHECK:STDOUT: %.932: Core.Form = init_form %T2 [concrete] -// CHECK:STDOUT: %Derived.F.type.9e994f.1: type = fn_type @Derived.F.loc27 [concrete] -// CHECK:STDOUT: %Derived.F.c7843c.1: %Derived.F.type.9e994f.1 = struct_value () [concrete] -// CHECK:STDOUT: %Derived.F.type.9e994f.2: type = fn_type @Derived.F.loc23 [concrete] -// CHECK:STDOUT: %Derived.F.c7843c.2: %Derived.F.type.9e994f.2 = struct_value () [concrete] -// CHECK:STDOUT: %.55a: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b7d, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc23_36.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] +// CHECK:STDOUT: %.617: Core.Form = init_form %T2 [concrete] +// CHECK:STDOUT: %Derived.F.type.48cdab.1: type = fn_type @Derived.F.loc27 [concrete] +// CHECK:STDOUT: %Derived.F.bd5be1.1: %Derived.F.type.48cdab.1 = struct_value () [concrete] +// 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: %.fd2: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.00a, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc23_36.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { // CHECK:STDOUT: -// CHECK:STDOUT: %Derived.F.decl.loc23_36.1: %Derived.F.type.9e994f.1 = fn_decl @Derived.F.loc27 [concrete = constants.%Derived.F.c7843c.1] { +// CHECK:STDOUT: %Derived.F.decl.loc23_36.1: %Derived.F.type.48cdab.1 = fn_decl @Derived.F.loc27 [concrete = constants.%Derived.F.bd5be1.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: %T2.ref.loc23: type = name_ref T2, file.%T2.decl [concrete = constants.%T2] -// CHECK:STDOUT: %.loc23: Core.Form = init_form %T2.ref.loc23 [concrete = constants.%.932] +// CHECK:STDOUT: %.loc23: Core.Form = init_form %T2.ref.loc23 [concrete = constants.%.617] // CHECK:STDOUT: %self.param.loc23: %Derived = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc23: type = name_ref Self, constants.%Derived [concrete = constants.%Derived] // CHECK:STDOUT: %self.loc23: %Derived = value_binding self, %self.param.loc23 @@ -1123,7 +1123,7 @@ class T2(G2:! type) { // CHECK:STDOUT: %return.loc23: ref %T2 = return_slot %return.param.loc23 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: %Derived.F.decl.loc23_36.2: %Derived.F.type.9e994f.2 = fn_decl @Derived.F.loc23 [concrete = constants.%Derived.F.c7843c.2] { +// CHECK:STDOUT: %Derived.F.decl.loc23_36.2: %Derived.F.type.48cdab.2 = fn_decl @Derived.F.loc23 [concrete = constants.%Derived.F.bd5be1.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -1151,18 +1151,18 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: override fn @Derived.F.loc23(%self.param: %Derived) -> out %return.param: %T1 [thunk @Derived.%Derived.F.decl.loc23_36.1 for @Base.%Base.F.decl] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %Derived.F.type.9e994f.1 = name_ref F, @Derived.%Derived.F.decl.loc23_36.1 [concrete = constants.%Derived.F.c7843c.1] +// CHECK:STDOUT: %F.ref: %Derived.F.type.48cdab.1 = name_ref F, @Derived.%Derived.F.decl.loc23_36.1 [concrete = constants.%Derived.F.bd5be1.1] // CHECK:STDOUT: %Derived.F.bound: = bound_method %self.param, %F.ref // CHECK:STDOUT: %.loc23_36.1: ref %T2 = temporary_storage // CHECK:STDOUT: %Derived.F.call: init %T2 to %.loc23_36.1 = call %Derived.F.bound(%self.param) -// CHECK:STDOUT: %impl.elem0: %.55a = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%T2.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0: %.fd2 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%T2.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method: = bound_method %Derived.F.call, %impl.elem0 // CHECK:STDOUT: // CHECK:STDOUT: %.loc23_36.2: ref %T2 = temporary %.loc23_36.1, %Derived.F.call // CHECK:STDOUT: %.loc23_36.3: %T2 = acquire_value %.loc23_36.2 // CHECK:STDOUT: %T2.as.ImplicitAs.impl.Convert.call: init %T1 to %.loc17 = call %bound_method(%.loc23_36.3) // CHECK:STDOUT: %.loc23_36.4: init %T1 = converted %Derived.F.call, %T2.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc23_36.2, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc23_36.2, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc23_36.2) // CHECK:STDOUT: return %.loc23_36.4 to %return.param // CHECK:STDOUT: } @@ -1179,7 +1179,7 @@ class T2(G2:! type) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T1: type = class_type @T1, @T1(%T) [symbolic] -// CHECK:STDOUT: %pattern_type.9b9: type = pattern_type %T1 [symbolic] +// CHECK:STDOUT: %pattern_type.c79: type = pattern_type %T1 [symbolic] // CHECK:STDOUT: %T1.F.type: type = fn_type @T1.F, @T1(%T) [symbolic] // CHECK:STDOUT: %T1.F: %T1.F.type = struct_value () [symbolic] // CHECK:STDOUT: %T1.F.specific_fn: = specific_function %T1.F, @T1.F(%T) [symbolic] @@ -1196,8 +1196,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %T1.F.decl: @T1.%T1.F.type (%T1.F.type) = fn_decl @T1.F [symbolic = @T1.%T1.F (constants.%T1.F)] { -// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.9b9) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type (%pattern_type.9b9) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type (%pattern_type.c79) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type (%pattern_type.c79) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @T1.F.%T1 (%T1) = value_param call_param0 // CHECK:STDOUT: %.loc6_29.1: type = splice_block %Self.ref [symbolic = %T1 (constants.%T1)] { @@ -1223,7 +1223,7 @@ class T2(G2:! type) { // CHECK:STDOUT: generic virtual fn @T1.F(@T1.%T.loc4_16.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %T1: type = class_type @T1, @T1(%T) [symbolic = %T1 (constants.%T1)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T1 [symbolic = %pattern_type (constants.%pattern_type.9b9)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T1 [symbolic = %pattern_type (constants.%pattern_type.c79)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T1 [symbolic = %require_complete (constants.%require_complete)] @@ -1246,7 +1246,7 @@ class T2(G2:! type) { // CHECK:STDOUT: specific @T1.F(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %T1 => constants.%T1 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b9 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c79 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete @@ -1257,12 +1257,12 @@ class T2(G2:! type) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T1: type = class_type @T1, @T1(%T) [symbolic] -// CHECK:STDOUT: %pattern_type.9b9: type = pattern_type %T1 [symbolic] +// CHECK:STDOUT: %pattern_type.c79: type = pattern_type %T1 [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] // CHECK:STDOUT: %T1.F.type: type = fn_type @T1.F, @T1(%T) [symbolic] // CHECK:STDOUT: %T1.F: %T1.F.type = struct_value () [symbolic] // CHECK:STDOUT: %T1.F.specific_fn: = specific_function %T1.F, @T1.F(%T) [symbolic] -// CHECK:STDOUT: %require_complete.29c: = require_complete_type %T1 [symbolic] +// CHECK:STDOUT: %require_complete.ce3: = require_complete_type %T1 [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1276,8 +1276,8 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %T1.F.decl: @T1.%T1.F.type (%T1.F.type) = fn_decl @T1.F [symbolic = @T1.%T1.F (constants.%T1.F)] { -// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type.loc6_27 (%pattern_type.9b9) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type.loc6_27 (%pattern_type.9b9) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @T1.F.%pattern_type.loc6_27 (%pattern_type.c79) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @T1.F.%pattern_type.loc6_27 (%pattern_type.c79) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %t.param_patt: @T1.F.%pattern_type.loc6_43 (%pattern_type.51d) = value_param_pattern [concrete] // CHECK:STDOUT: %t.patt: @T1.F.%pattern_type.loc6_43 (%pattern_type.51d) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { @@ -1309,11 +1309,11 @@ class T2(G2:! type) { // CHECK:STDOUT: generic virtual fn @T1.F(@T1.%T.loc4_16.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %T1: type = class_type @T1, @T1(%T) [symbolic = %T1 (constants.%T1)] -// CHECK:STDOUT: %pattern_type.loc6_27: type = pattern_type %T1 [symbolic = %pattern_type.loc6_27 (constants.%pattern_type.9b9)] +// CHECK:STDOUT: %pattern_type.loc6_27: type = pattern_type %T1 [symbolic = %pattern_type.loc6_27 (constants.%pattern_type.c79)] // CHECK:STDOUT: %pattern_type.loc6_43: type = pattern_type %T [symbolic = %pattern_type.loc6_43 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_27: = require_complete_type %T1 [symbolic = %require_complete.loc6_27 (constants.%require_complete.29c)] +// CHECK:STDOUT: %require_complete.loc6_27: = require_complete_type %T1 [symbolic = %require_complete.loc6_27 (constants.%require_complete.ce3)] // CHECK:STDOUT: %require_complete.loc6_43: = require_complete_type %T [symbolic = %require_complete.loc6_43 (constants.%require_complete.944)] // CHECK:STDOUT: // CHECK:STDOUT: virtual fn(%self.param: @T1.F.%T1 (%T1), %t.param: @T1.F.%T (%T)) { @@ -1334,11 +1334,11 @@ class T2(G2:! type) { // CHECK:STDOUT: specific @T1.F(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %T1 => constants.%T1 -// CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.9b9 +// CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.c79 // CHECK:STDOUT: %pattern_type.loc6_43 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_27 => constants.%require_complete.29c +// CHECK:STDOUT: %require_complete.loc6_27 => constants.%require_complete.ce3 // CHECK:STDOUT: %require_complete.loc6_43 => constants.%require_complete.944 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1349,10 +1349,10 @@ class T2(G2:! type) { // CHECK:STDOUT: %Base.generic: %Base.type = struct_value () [concrete] // CHECK:STDOUT: %T1: type = class_type @T1 [concrete] // CHECK:STDOUT: %D1: type = class_type @D1 [concrete] -// CHECK:STDOUT: %Base.991: type = class_type @Base, @Base(%T1) [concrete] -// CHECK:STDOUT: %ptr.bf9: type = ptr_type %Base.991 [concrete] -// CHECK:STDOUT: %pattern_type.fbe: type = pattern_type %ptr.bf9 [concrete] -// CHECK:STDOUT: %pattern_type.03e: type = pattern_type %D1 [concrete] +// CHECK:STDOUT: %Base.5b2: type = class_type @Base, @Base(%T1) [concrete] +// CHECK:STDOUT: %ptr.2ee: type = ptr_type %Base.5b2 [concrete] +// CHECK:STDOUT: %pattern_type.e0f: type = pattern_type %ptr.2ee [concrete] +// CHECK:STDOUT: %pattern_type.c35: type = pattern_type %D1 [concrete] // CHECK:STDOUT: %D1.F.type: type = fn_type @D1.F [concrete] // CHECK:STDOUT: %D1.F: %D1.F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -1360,22 +1360,22 @@ class T2(G2:! type) { // CHECK:STDOUT: class @D1 { // CHECK:STDOUT: // CHECK:STDOUT: %D1.F.decl: %D1.F.type = fn_decl @D1.F [concrete = constants.%D1.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.03e = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.03e = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %t.param_patt: %pattern_type.fbe = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: %pattern_type.fbe = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.c35 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.c35 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: %pattern_type.e0f = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.e0f = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %D1 = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%D1 [concrete = constants.%D1] // CHECK:STDOUT: %self: %D1 = value_binding self, %self.param -// CHECK:STDOUT: %t.param: %ptr.bf9 = value_param call_param1 -// CHECK:STDOUT: %.loc11: type = splice_block %ptr [concrete = constants.%ptr.bf9] { +// CHECK:STDOUT: %t.param: %ptr.2ee = value_param call_param1 +// CHECK:STDOUT: %.loc11: type = splice_block %ptr [concrete = constants.%ptr.2ee] { // CHECK:STDOUT: %Base.ref: %Base.type = name_ref Base, file.%Base.decl [concrete = constants.%Base.generic] // CHECK:STDOUT: %T1.ref: type = name_ref T1, file.%T1.decl [concrete = constants.%T1] -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(constants.%T1) [concrete = constants.%Base.991] -// CHECK:STDOUT: %ptr: type = ptr_type %Base [concrete = constants.%ptr.bf9] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(constants.%T1) [concrete = constants.%Base.5b2] +// CHECK:STDOUT: %ptr: type = ptr_type %Base [concrete = constants.%ptr.2ee] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: %ptr.bf9 = value_binding t, %t.param +// CHECK:STDOUT: %t: %ptr.2ee = value_binding t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: complete_type_witness = %complete_type @@ -1398,7 +1398,7 @@ class T2(G2:! type) { // CHECK:STDOUT: @D1.%D1.F.decl // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: override fn @D1.F(%self.param: %D1, %t.param: %ptr.bf9) { +// CHECK:STDOUT: override fn @D1.F(%self.param: %D1, %t.param: %ptr.2ee) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1409,17 +1409,17 @@ class T2(G2:! type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T) [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %Base.64d: type = class_type @Base, @Base(%ptr.e8f) [symbolic] +// CHECK:STDOUT: %Base.99a: type = class_type @Base, @Base(%ptr.e8f) [symbolic] // CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic] -// CHECK:STDOUT: %require_complete.ffb: = require_complete_type %Base.64d [symbolic] -// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base.64d [symbolic] -// CHECK:STDOUT: %pattern_type.531: type = pattern_type %Derived [symbolic] +// CHECK:STDOUT: %require_complete.29f: = require_complete_type %Base.99a [symbolic] +// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base.99a [symbolic] +// CHECK:STDOUT: %pattern_type.839: type = pattern_type %Derived [symbolic] // CHECK:STDOUT: %Derived.F.type: type = fn_type @Derived.F, @Derived(%T) [symbolic] // CHECK:STDOUT: %Derived.F: %Derived.F.type = struct_value () [symbolic] // CHECK:STDOUT: %Derived.F.specific_fn: = specific_function %Derived.F, @Derived.F(%T) [symbolic] -// CHECK:STDOUT: %struct_type.base.e27: type = struct_type {.base: %Base.64d} [symbolic] -// CHECK:STDOUT: %complete_type.3c9: = complete_type_witness %struct_type.base.e27 [symbolic] -// CHECK:STDOUT: %require_complete.18b: = require_complete_type %Derived [symbolic] +// CHECK:STDOUT: %struct_type.base.619: type = struct_type {.base: %Base.99a} [symbolic] +// CHECK:STDOUT: %complete_type.db5: = complete_type_witness %struct_type.base.619 [symbolic] +// CHECK:STDOUT: %require_complete.1e7: = require_complete_type %Derived [symbolic] // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1435,8 +1435,8 @@ class T2(G2:! type) { // CHECK:STDOUT: class { // CHECK:STDOUT: // CHECK:STDOUT: %Derived.F.decl: @Derived.%Derived.F.type (%Derived.F.type) = fn_decl @Derived.F [symbolic = @Derived.%Derived.F (constants.%Derived.F)] { -// CHECK:STDOUT: %self.param_patt: @Derived.F.%pattern_type.loc10_28 (%pattern_type.531) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Derived.F.%pattern_type.loc10_28 (%pattern_type.531) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Derived.F.%pattern_type.loc10_28 (%pattern_type.839) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Derived.F.%pattern_type.loc10_28 (%pattern_type.839) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %t.param_patt: @Derived.F.%pattern_type.loc10_44 (%pattern_type.4f4) = value_param_pattern [concrete] // CHECK:STDOUT: %t.patt: @Derived.F.%pattern_type.loc10_44 (%pattern_type.4f4) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { @@ -1478,12 +1478,12 @@ class T2(G2:! type) { // CHECK:STDOUT: generic override fn @Derived.F(@Derived.%T.loc7_16.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T) [symbolic = %Derived (constants.%Derived)] -// CHECK:STDOUT: %pattern_type.loc10_28: type = pattern_type %Derived [symbolic = %pattern_type.loc10_28 (constants.%pattern_type.531)] +// CHECK:STDOUT: %pattern_type.loc10_28: type = pattern_type %Derived [symbolic = %pattern_type.loc10_28 (constants.%pattern_type.839)] // CHECK:STDOUT: %ptr.loc10_47.1: type = ptr_type %T [symbolic = %ptr.loc10_47.1 (constants.%ptr.e8f)] // CHECK:STDOUT: %pattern_type.loc10_44: type = pattern_type %ptr.loc10_47.1 [symbolic = %pattern_type.loc10_44 (constants.%pattern_type.4f4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc10_28: = require_complete_type %Derived [symbolic = %require_complete.loc10_28 (constants.%require_complete.18b)] +// CHECK:STDOUT: %require_complete.loc10_28: = require_complete_type %Derived [symbolic = %require_complete.loc10_28 (constants.%require_complete.1e7)] // CHECK:STDOUT: %require_complete.loc10_44: = require_complete_type %ptr.loc10_47.1 [symbolic = %require_complete.loc10_44 (constants.%require_complete.ef1)] // CHECK:STDOUT: // CHECK:STDOUT: override fn(%self.param: @Derived.F.%Derived (%Derived), %t.param: @Derived.F.%ptr.loc10_47.1 (%ptr.e8f)) { @@ -1497,26 +1497,26 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %ptr.loc8_22.2 => constants.%ptr.e8f -// CHECK:STDOUT: %Base.loc8_23.2 => constants.%Base.64d -// CHECK:STDOUT: %require_complete => constants.%require_complete.ffb +// CHECK:STDOUT: %Base.loc8_23.2 => constants.%Base.99a +// CHECK:STDOUT: %require_complete => constants.%require_complete.29f // CHECK:STDOUT: %Derived => constants.%Derived // CHECK:STDOUT: %Derived.elem => constants.%Derived.elem // CHECK:STDOUT: %Derived.F.type => constants.%Derived.F.type // CHECK:STDOUT: %Derived.F => constants.%Derived.F // CHECK:STDOUT: %Derived.F.specific_fn.loc12_1.2 => constants.%Derived.F.specific_fn -// CHECK:STDOUT: %struct_type.base => constants.%struct_type.base.e27 -// CHECK:STDOUT: %complete_type.loc12_1.2 => constants.%complete_type.3c9 +// CHECK:STDOUT: %struct_type.base => constants.%struct_type.base.619 +// CHECK:STDOUT: %complete_type.loc12_1.2 => constants.%complete_type.db5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Derived.F(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Derived => constants.%Derived -// CHECK:STDOUT: %pattern_type.loc10_28 => constants.%pattern_type.531 +// CHECK:STDOUT: %pattern_type.loc10_28 => constants.%pattern_type.839 // CHECK:STDOUT: %ptr.loc10_47.1 => constants.%ptr.e8f // CHECK:STDOUT: %pattern_type.loc10_44 => constants.%pattern_type.4f4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc10_28 => constants.%require_complete.18b +// CHECK:STDOUT: %require_complete.loc10_28 => constants.%require_complete.1e7 // CHECK:STDOUT: %require_complete.loc10_44 => constants.%require_complete.ef1 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/nested.carbon b/toolchain/check/testdata/class/nested.carbon index 77e1471f0d59..6a300a535949 100644 --- a/toolchain/check/testdata/class/nested.carbon +++ b/toolchain/check/testdata/class/nested.carbon @@ -61,62 +61,62 @@ fn F(a: Outer*) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Outer.F: %Outer.F.type = struct_value () [concrete] // CHECK:STDOUT: %Inner: type = class_type @Inner [concrete] -// CHECK:STDOUT: %ptr.d15: type = ptr_type %Inner [concrete] -// CHECK:STDOUT: %pattern_type.6a6: type = pattern_type %ptr.d15 [concrete] -// CHECK:STDOUT: %Inner.elem.cdf: type = unbound_element_type %Inner, %ptr.d15 [concrete] -// CHECK:STDOUT: %ptr.f73: type = ptr_type %Outer [concrete] -// CHECK:STDOUT: %pattern_type.13e: type = pattern_type %ptr.f73 [concrete] -// CHECK:STDOUT: %Inner.elem.1cd: type = unbound_element_type %Inner, %ptr.f73 [concrete] +// CHECK:STDOUT: %ptr.001: type = ptr_type %Inner [concrete] +// CHECK:STDOUT: %pattern_type.36a: type = pattern_type %ptr.001 [concrete] +// CHECK:STDOUT: %Inner.elem.df9: type = unbound_element_type %Inner, %ptr.001 [concrete] +// CHECK:STDOUT: %ptr.286: type = ptr_type %Outer [concrete] +// CHECK:STDOUT: %pattern_type.647: type = pattern_type %ptr.286 [concrete] +// CHECK:STDOUT: %Inner.elem.2a2: type = unbound_element_type %Inner, %ptr.286 [concrete] // CHECK:STDOUT: %Inner.G.type: type = fn_type @Inner.G [concrete] // CHECK:STDOUT: %Inner.G: %Inner.G.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.pi.po.qi: type = struct_type {.pi: %ptr.d15, .po: %ptr.f73, .qi: %ptr.d15} [concrete] -// CHECK:STDOUT: %complete_type.1ef: = complete_type_witness %struct_type.pi.po.qi [concrete] +// CHECK:STDOUT: %struct_type.pi.po.qi: type = struct_type {.pi: %ptr.001, .po: %ptr.286, .qi: %ptr.001} [concrete] +// CHECK:STDOUT: %complete_type.cab: = complete_type_witness %struct_type.pi.po.qi [concrete] // CHECK:STDOUT: %Outer.H.type: type = fn_type @Outer.H [concrete] // CHECK:STDOUT: %Outer.H: %Outer.H.type = struct_value () [concrete] -// CHECK:STDOUT: %Outer.elem.f95: type = unbound_element_type %Outer, %ptr.f73 [concrete] -// CHECK:STDOUT: %Outer.elem.596: type = unbound_element_type %Outer, %ptr.d15 [concrete] -// CHECK:STDOUT: %struct_type.po.qo.pi: type = struct_type {.po: %ptr.f73, .qo: %ptr.f73, .pi: %ptr.d15} [concrete] -// CHECK:STDOUT: %complete_type.711: = complete_type_witness %struct_type.po.qo.pi [concrete] -// CHECK:STDOUT: %pattern_type.87b: type = pattern_type %Outer [concrete] +// CHECK:STDOUT: %Outer.elem.3ef: type = unbound_element_type %Outer, %ptr.286 [concrete] +// CHECK:STDOUT: %Outer.elem.fe3: type = unbound_element_type %Outer, %ptr.001 [concrete] +// CHECK:STDOUT: %struct_type.po.qo.pi: type = struct_type {.po: %ptr.286, .qo: %ptr.286, .pi: %ptr.001} [concrete] +// CHECK:STDOUT: %complete_type.a2f: = complete_type_witness %struct_type.po.qo.pi [concrete] +// CHECK:STDOUT: %pattern_type.d6c: type = pattern_type %Outer [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.0ed: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%Outer) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.3f2: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Outer) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.4d0: %T.as.DefaultOrUnformed.impl.Op.type.3f2 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.e0d: %DefaultOrUnformed.type = facet_value %Outer, (%DefaultOrUnformed.impl_witness.0ed) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.613: = specific_function %T.as.DefaultOrUnformed.impl.Op.4d0, @T.as.DefaultOrUnformed.impl.Op(%Outer) [concrete] -// CHECK:STDOUT: %pattern_type.515: type = pattern_type %Inner [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.123: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%Inner) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.f72: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Inner) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.9df: %T.as.DefaultOrUnformed.impl.Op.type.f72 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.b54: %DefaultOrUnformed.type = facet_value %Inner, (%DefaultOrUnformed.impl_witness.123) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.127: = specific_function %T.as.DefaultOrUnformed.impl.Op.9df, @T.as.DefaultOrUnformed.impl.Op(%Inner) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.474: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%Outer) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bca: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Outer) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.d12: %T.as.DefaultOrUnformed.impl.Op.type.bca = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.1fd: %DefaultOrUnformed.type = facet_value %Outer, (%DefaultOrUnformed.impl_witness.474) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.b8a: = specific_function %T.as.DefaultOrUnformed.impl.Op.d12, @T.as.DefaultOrUnformed.impl.Op(%Outer) [concrete] +// CHECK:STDOUT: %pattern_type.dc4: type = pattern_type %Inner [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.b1a: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%Inner) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.dd7: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Inner) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.0e7: %T.as.DefaultOrUnformed.impl.Op.type.dd7 = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.eb3: %DefaultOrUnformed.type = facet_value %Inner, (%DefaultOrUnformed.impl_witness.b1a) [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.790b3b.4: type = fn_type @Destroy.Op.loc19_5.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.6: type = fn_type @Destroy.Op.loc18_5.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [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: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.5e0: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%Outer) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.271: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Outer) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.53d: %ptr.as.Copy.impl.Op.type.271 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.3bf: %Copy.type = facet_value %ptr.f73, (%Copy.impl_witness.5e0) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.f79: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.3bf) [concrete] -// CHECK:STDOUT: %.29f: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f79, %Copy.facet.3bf [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.bc2: = specific_function %ptr.as.Copy.impl.Op.53d, @ptr.as.Copy.impl.Op(%Outer) [concrete] -// CHECK:STDOUT: %Copy.impl_witness.c4b: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%Inner) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.3f6: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Inner) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.8c9: %ptr.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.d33: %Copy.type = facet_value %ptr.d15, (%Copy.impl_witness.c4b) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.448: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.d33) [concrete] -// CHECK:STDOUT: %.ea0: type = fn_type_with_self_type %Copy.WithSelf.Op.type.448, %Copy.facet.d33 [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.ffa: = specific_function %ptr.as.Copy.impl.Op.8c9, @ptr.as.Copy.impl.Op(%Inner) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.ec6: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%Outer) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.bd8: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Outer) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.629: %ptr.as.Copy.impl.Op.type.bd8 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.b68: %Copy.type = facet_value %ptr.286, (%Copy.impl_witness.ec6) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.eda: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.b68) [concrete] +// CHECK:STDOUT: %.848: type = fn_type_with_self_type %Copy.WithSelf.Op.type.eda, %Copy.facet.b68 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.642: = specific_function %ptr.as.Copy.impl.Op.629, @ptr.as.Copy.impl.Op(%Outer) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.775: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%Inner) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.408: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Inner) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.b47: %ptr.as.Copy.impl.Op.type.408 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.468: %Copy.type = facet_value %ptr.001, (%Copy.impl_witness.775) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.ef5: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.468) [concrete] +// CHECK:STDOUT: %.298: type = fn_type_with_self_type %Copy.WithSelf.Op.type.ef5, %Copy.facet.468 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.eb8: = specific_function %ptr.as.Copy.impl.Op.b47, @ptr.as.Copy.impl.Op(%Inner) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -128,12 +128,12 @@ fn F(a: Outer*) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -145,15 +145,15 @@ fn F(a: Outer*) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Outer.decl: type = class_decl @Outer [concrete = constants.%Outer] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.13e = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.13e = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.647 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.647 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %a.param: %ptr.f73 = value_param call_param0 -// CHECK:STDOUT: %.loc45: type = splice_block %ptr.loc45 [concrete = constants.%ptr.f73] { +// CHECK:STDOUT: %a.param: %ptr.286 = value_param call_param0 +// CHECK:STDOUT: %.loc45: type = splice_block %ptr.loc45 [concrete = constants.%ptr.286] { // CHECK:STDOUT: %Outer.ref.loc45: type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer] -// CHECK:STDOUT: %ptr.loc45: type = ptr_type %Outer.ref.loc45 [concrete = constants.%ptr.f73] +// CHECK:STDOUT: %ptr.loc45: type = ptr_type %Outer.ref.loc45 [concrete = constants.%ptr.286] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.f73 = value_binding a, %a.param +// CHECK:STDOUT: %a: %ptr.286 = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -161,10 +161,10 @@ fn F(a: Outer*) { // CHECK:STDOUT: %Outer.F.decl: %Outer.F.type = fn_decl @Outer.F [concrete = constants.%Outer.F] {} {} // CHECK:STDOUT: %Inner.decl: type = class_decl @Inner [concrete = constants.%Inner] {} {} // CHECK:STDOUT: %Outer.H.decl: %Outer.H.type = fn_decl @Outer.H [concrete = constants.%Outer.H] {} {} -// CHECK:STDOUT: %.loc40: %Outer.elem.f95 = field_decl po, element0 [concrete] -// CHECK:STDOUT: %.loc41: %Outer.elem.f95 = field_decl qo, element1 [concrete] -// CHECK:STDOUT: %.loc42: %Outer.elem.596 = field_decl pi, element2 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.po.qo.pi [concrete = constants.%complete_type.711] +// CHECK:STDOUT: %.loc40: %Outer.elem.3ef = field_decl po, element0 [concrete] +// CHECK:STDOUT: %.loc41: %Outer.elem.3ef = field_decl qo, element1 [concrete] +// CHECK:STDOUT: %.loc42: %Outer.elem.fe3 = field_decl pi, element2 [concrete] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.po.qo.pi [concrete = constants.%complete_type.a2f] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -179,11 +179,11 @@ fn F(a: Outer*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Inner { -// CHECK:STDOUT: %.loc23: %Inner.elem.cdf = field_decl pi, element0 [concrete] -// CHECK:STDOUT: %.loc24: %Inner.elem.1cd = field_decl po, element1 [concrete] -// CHECK:STDOUT: %.loc25: %Inner.elem.cdf = field_decl qi, element2 [concrete] +// CHECK:STDOUT: %.loc23: %Inner.elem.df9 = field_decl pi, element0 [concrete] +// CHECK:STDOUT: %.loc24: %Inner.elem.2a2 = field_decl po, element1 [concrete] +// CHECK:STDOUT: %.loc25: %Inner.elem.df9 = field_decl qi, element2 [concrete] // CHECK:STDOUT: %Inner.G.decl: %Inner.G.type = fn_decl @Inner.G [concrete = constants.%Inner.G] {} {} -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.pi.po.qi [concrete = constants.%complete_type.1ef] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.pi.po.qi [concrete = constants.%complete_type.cab] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -199,38 +199,38 @@ fn F(a: Outer*) { // CHECK:STDOUT: fn @Outer.F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %o.patt: %pattern_type.87b = ref_binding_pattern o [concrete] -// CHECK:STDOUT: %o.var_patt: %pattern_type.87b = var_pattern %o.patt [concrete] +// CHECK:STDOUT: %o.patt: %pattern_type.d6c = ref_binding_pattern o [concrete] +// CHECK:STDOUT: %o.var_patt: %pattern_type.d6c = var_pattern %o.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %o.var: ref %Outer = var %o.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc18: %DefaultOrUnformed.type = facet_value constants.%Outer, (constants.%DefaultOrUnformed.impl_witness.0ed) [concrete = constants.%DefaultOrUnformed.facet.e0d] -// CHECK:STDOUT: %.loc18_24.1: %DefaultOrUnformed.type = converted constants.%Outer, %DefaultOrUnformed.facet.loc18 [concrete = constants.%DefaultOrUnformed.facet.e0d] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc18: %DefaultOrUnformed.type = facet_value constants.%Outer, (constants.%DefaultOrUnformed.impl_witness.474) [concrete = constants.%DefaultOrUnformed.facet.1fd] +// CHECK:STDOUT: %.loc18_24.1: %DefaultOrUnformed.type = converted constants.%Outer, %DefaultOrUnformed.facet.loc18 [concrete = constants.%DefaultOrUnformed.facet.1fd] // CHECK:STDOUT: %as_type.loc18: type = facet_access_type %.loc18_24.1 [concrete = constants.%Outer] // CHECK:STDOUT: %.loc18_24.2: type = converted %.loc18_24.1, %as_type.loc18 [concrete = constants.%Outer] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.1: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.4d0, @T.as.DefaultOrUnformed.impl.Op(constants.%Outer) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn.613] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.1: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.d12, @T.as.DefaultOrUnformed.impl.Op(constants.%Outer) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn.b8a] // CHECK:STDOUT: %.loc18_5: ref %Outer = splice_block %o.var {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc18: init %Outer to %.loc18_5 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.1() // CHECK:STDOUT: assign %o.var, %T.as.DefaultOrUnformed.impl.Op.call.loc18 // CHECK:STDOUT: %Outer.ref: type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer] // CHECK:STDOUT: %o: ref %Outer = ref_binding o, %o.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.515 = ref_binding_pattern i [concrete] -// CHECK:STDOUT: %i.var_patt: %pattern_type.515 = var_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete] +// CHECK:STDOUT: %i.var_patt: %pattern_type.dc4 = var_pattern %i.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i.var: ref %Inner = var %i.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc19: %DefaultOrUnformed.type = facet_value constants.%Inner, (constants.%DefaultOrUnformed.impl_witness.123) [concrete = constants.%DefaultOrUnformed.facet.b54] -// CHECK:STDOUT: %.loc19_24.1: %DefaultOrUnformed.type = converted constants.%Inner, %DefaultOrUnformed.facet.loc19 [concrete = constants.%DefaultOrUnformed.facet.b54] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc19: %DefaultOrUnformed.type = facet_value constants.%Inner, (constants.%DefaultOrUnformed.impl_witness.b1a) [concrete = constants.%DefaultOrUnformed.facet.eb3] +// CHECK:STDOUT: %.loc19_24.1: %DefaultOrUnformed.type = converted constants.%Inner, %DefaultOrUnformed.facet.loc19 [concrete = constants.%DefaultOrUnformed.facet.eb3] // CHECK:STDOUT: %as_type.loc19: type = facet_access_type %.loc19_24.1 [concrete = constants.%Inner] // CHECK:STDOUT: %.loc19_24.2: type = converted %.loc19_24.1, %as_type.loc19 [concrete = constants.%Inner] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.2: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.9df, @T.as.DefaultOrUnformed.impl.Op(constants.%Inner) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn.127] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.2: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.0e7, @T.as.DefaultOrUnformed.impl.Op(constants.%Inner) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn.ce1] // CHECK:STDOUT: %.loc19_5: ref %Inner = splice_block %i.var {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc19: init %Inner to %.loc19_5 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.2() // CHECK:STDOUT: assign %i.var, %T.as.DefaultOrUnformed.impl.Op.call.loc19 // CHECK:STDOUT: %Inner.ref: type = name_ref Inner, @Outer.%Inner.decl [concrete = constants.%Inner] // CHECK:STDOUT: %i: ref %Inner = ref_binding i, %i.var -// CHECK:STDOUT: %Destroy.Op.bound.loc19: = bound_method %i.var, constants.%Destroy.Op.2dd605.4 +// 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.2dd605.6 +// 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: return // CHECK:STDOUT: } @@ -238,38 +238,38 @@ fn F(a: Outer*) { // CHECK:STDOUT: fn @Inner.G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %o.patt: %pattern_type.87b = ref_binding_pattern o [concrete] -// CHECK:STDOUT: %o.var_patt: %pattern_type.87b = var_pattern %o.patt [concrete] +// CHECK:STDOUT: %o.patt: %pattern_type.d6c = ref_binding_pattern o [concrete] +// CHECK:STDOUT: %o.var_patt: %pattern_type.d6c = var_pattern %o.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %o.var: ref %Outer = var %o.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc29: %DefaultOrUnformed.type = facet_value constants.%Outer, (constants.%DefaultOrUnformed.impl_witness.0ed) [concrete = constants.%DefaultOrUnformed.facet.e0d] -// CHECK:STDOUT: %.loc29_26.1: %DefaultOrUnformed.type = converted constants.%Outer, %DefaultOrUnformed.facet.loc29 [concrete = constants.%DefaultOrUnformed.facet.e0d] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc29: %DefaultOrUnformed.type = facet_value constants.%Outer, (constants.%DefaultOrUnformed.impl_witness.474) [concrete = constants.%DefaultOrUnformed.facet.1fd] +// CHECK:STDOUT: %.loc29_26.1: %DefaultOrUnformed.type = converted constants.%Outer, %DefaultOrUnformed.facet.loc29 [concrete = constants.%DefaultOrUnformed.facet.1fd] // CHECK:STDOUT: %as_type.loc29: type = facet_access_type %.loc29_26.1 [concrete = constants.%Outer] // CHECK:STDOUT: %.loc29_26.2: type = converted %.loc29_26.1, %as_type.loc29 [concrete = constants.%Outer] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.1: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.4d0, @T.as.DefaultOrUnformed.impl.Op(constants.%Outer) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn.613] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.1: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.d12, @T.as.DefaultOrUnformed.impl.Op(constants.%Outer) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn.b8a] // CHECK:STDOUT: %.loc29_7: ref %Outer = splice_block %o.var {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc29: init %Outer to %.loc29_7 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.1() // CHECK:STDOUT: assign %o.var, %T.as.DefaultOrUnformed.impl.Op.call.loc29 // CHECK:STDOUT: %Outer.ref: type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer] // CHECK:STDOUT: %o: ref %Outer = ref_binding o, %o.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.515 = ref_binding_pattern i [concrete] -// CHECK:STDOUT: %i.var_patt: %pattern_type.515 = var_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete] +// CHECK:STDOUT: %i.var_patt: %pattern_type.dc4 = var_pattern %i.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i.var: ref %Inner = var %i.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc30: %DefaultOrUnformed.type = facet_value constants.%Inner, (constants.%DefaultOrUnformed.impl_witness.123) [concrete = constants.%DefaultOrUnformed.facet.b54] -// CHECK:STDOUT: %.loc30_26.1: %DefaultOrUnformed.type = converted constants.%Inner, %DefaultOrUnformed.facet.loc30 [concrete = constants.%DefaultOrUnformed.facet.b54] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc30: %DefaultOrUnformed.type = facet_value constants.%Inner, (constants.%DefaultOrUnformed.impl_witness.b1a) [concrete = constants.%DefaultOrUnformed.facet.eb3] +// CHECK:STDOUT: %.loc30_26.1: %DefaultOrUnformed.type = converted constants.%Inner, %DefaultOrUnformed.facet.loc30 [concrete = constants.%DefaultOrUnformed.facet.eb3] // CHECK:STDOUT: %as_type.loc30: type = facet_access_type %.loc30_26.1 [concrete = constants.%Inner] // CHECK:STDOUT: %.loc30_26.2: type = converted %.loc30_26.1, %as_type.loc30 [concrete = constants.%Inner] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.2: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.9df, @T.as.DefaultOrUnformed.impl.Op(constants.%Inner) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn.127] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.2: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.0e7, @T.as.DefaultOrUnformed.impl.Op(constants.%Inner) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn.ce1] // CHECK:STDOUT: %.loc30_7: ref %Inner = splice_block %i.var {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc30: init %Inner to %.loc30_7 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.2() // CHECK:STDOUT: assign %i.var, %T.as.DefaultOrUnformed.impl.Op.call.loc30 // CHECK:STDOUT: %Inner.ref: type = name_ref Inner, @Outer.%Inner.decl [concrete = constants.%Inner] // CHECK:STDOUT: %i: ref %Inner = ref_binding i, %i.var -// CHECK:STDOUT: %Destroy.Op.bound.loc30: = bound_method %i.var, constants.%Destroy.Op.2dd605.4 +// 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.2dd605.6 +// 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: return // CHECK:STDOUT: } @@ -277,45 +277,45 @@ fn F(a: Outer*) { // CHECK:STDOUT: fn @Outer.H() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %o.patt: %pattern_type.87b = ref_binding_pattern o [concrete] -// CHECK:STDOUT: %o.var_patt: %pattern_type.87b = var_pattern %o.patt [concrete] +// CHECK:STDOUT: %o.patt: %pattern_type.d6c = ref_binding_pattern o [concrete] +// CHECK:STDOUT: %o.var_patt: %pattern_type.d6c = var_pattern %o.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %o.var: ref %Outer = var %o.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc36: %DefaultOrUnformed.type = facet_value constants.%Outer, (constants.%DefaultOrUnformed.impl_witness.0ed) [concrete = constants.%DefaultOrUnformed.facet.e0d] -// CHECK:STDOUT: %.loc36_24.1: %DefaultOrUnformed.type = converted constants.%Outer, %DefaultOrUnformed.facet.loc36 [concrete = constants.%DefaultOrUnformed.facet.e0d] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc36: %DefaultOrUnformed.type = facet_value constants.%Outer, (constants.%DefaultOrUnformed.impl_witness.474) [concrete = constants.%DefaultOrUnformed.facet.1fd] +// CHECK:STDOUT: %.loc36_24.1: %DefaultOrUnformed.type = converted constants.%Outer, %DefaultOrUnformed.facet.loc36 [concrete = constants.%DefaultOrUnformed.facet.1fd] // CHECK:STDOUT: %as_type.loc36: type = facet_access_type %.loc36_24.1 [concrete = constants.%Outer] // CHECK:STDOUT: %.loc36_24.2: type = converted %.loc36_24.1, %as_type.loc36 [concrete = constants.%Outer] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.1: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.4d0, @T.as.DefaultOrUnformed.impl.Op(constants.%Outer) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn.613] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.1: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.d12, @T.as.DefaultOrUnformed.impl.Op(constants.%Outer) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn.b8a] // CHECK:STDOUT: %.loc36_5: ref %Outer = splice_block %o.var {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc36: init %Outer to %.loc36_5 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.1() // CHECK:STDOUT: assign %o.var, %T.as.DefaultOrUnformed.impl.Op.call.loc36 // CHECK:STDOUT: %Outer.ref: type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer] // CHECK:STDOUT: %o: ref %Outer = ref_binding o, %o.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.515 = ref_binding_pattern i [concrete] -// CHECK:STDOUT: %i.var_patt: %pattern_type.515 = var_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete] +// CHECK:STDOUT: %i.var_patt: %pattern_type.dc4 = var_pattern %i.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i.var: ref %Inner = var %i.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc37: %DefaultOrUnformed.type = facet_value constants.%Inner, (constants.%DefaultOrUnformed.impl_witness.123) [concrete = constants.%DefaultOrUnformed.facet.b54] -// CHECK:STDOUT: %.loc37_24.1: %DefaultOrUnformed.type = converted constants.%Inner, %DefaultOrUnformed.facet.loc37 [concrete = constants.%DefaultOrUnformed.facet.b54] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc37: %DefaultOrUnformed.type = facet_value constants.%Inner, (constants.%DefaultOrUnformed.impl_witness.b1a) [concrete = constants.%DefaultOrUnformed.facet.eb3] +// CHECK:STDOUT: %.loc37_24.1: %DefaultOrUnformed.type = converted constants.%Inner, %DefaultOrUnformed.facet.loc37 [concrete = constants.%DefaultOrUnformed.facet.eb3] // CHECK:STDOUT: %as_type.loc37: type = facet_access_type %.loc37_24.1 [concrete = constants.%Inner] // CHECK:STDOUT: %.loc37_24.2: type = converted %.loc37_24.1, %as_type.loc37 [concrete = constants.%Inner] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.2: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.9df, @T.as.DefaultOrUnformed.impl.Op(constants.%Inner) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn.127] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn.2: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.0e7, @T.as.DefaultOrUnformed.impl.Op(constants.%Inner) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn.ce1] // CHECK:STDOUT: %.loc37_5: ref %Inner = splice_block %i.var {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc37: init %Inner to %.loc37_5 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.2() // CHECK:STDOUT: assign %i.var, %T.as.DefaultOrUnformed.impl.Op.call.loc37 // CHECK:STDOUT: %Inner.ref: type = name_ref Inner, @Outer.%Inner.decl [concrete = constants.%Inner] // CHECK:STDOUT: %i: ref %Inner = ref_binding i, %i.var -// CHECK:STDOUT: %Destroy.Op.bound.loc37: = bound_method %i.var, constants.%Destroy.Op.2dd605.4 +// 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.2dd605.6 +// 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: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc19_5.1(%self.param: ref %ptr.d15) = "no_op"; +// CHECK:STDOUT: fn @Destroy.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.f73) = "no_op"; +// CHECK:STDOUT: fn @Destroy.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: !entry: @@ -337,99 +337,99 @@ fn F(a: Outer*) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%a.param: %ptr.f73) { +// CHECK:STDOUT: fn @F(%a.param: %ptr.286) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.6a6 = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.36a = value_binding_pattern b [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.ref.loc46: %ptr.f73 = name_ref a, %a +// CHECK:STDOUT: %a.ref.loc46: %ptr.286 = name_ref a, %a // CHECK:STDOUT: %.loc46_26: ref %Outer = deref %a.ref.loc46 -// CHECK:STDOUT: %pi.ref.loc46: %Outer.elem.596 = name_ref pi, @Outer.%.loc42 [concrete = @Outer.%.loc42] -// CHECK:STDOUT: %.loc46_29.1: ref %ptr.d15 = class_element_access %.loc46_26, element2 -// CHECK:STDOUT: %.loc46_21: type = splice_block %ptr.loc46 [concrete = constants.%ptr.d15] { +// CHECK:STDOUT: %pi.ref.loc46: %Outer.elem.fe3 = name_ref pi, @Outer.%.loc42 [concrete = @Outer.%.loc42] +// CHECK:STDOUT: %.loc46_29.1: ref %ptr.001 = class_element_access %.loc46_26, element2 +// CHECK:STDOUT: %.loc46_21: type = splice_block %ptr.loc46 [concrete = constants.%ptr.001] { // CHECK:STDOUT: %Outer.ref.loc46: type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer] // CHECK:STDOUT: %Inner.ref: type = name_ref Inner, @Outer.%Inner.decl [concrete = constants.%Inner] -// CHECK:STDOUT: %ptr.loc46: type = ptr_type %Inner.ref [concrete = constants.%ptr.d15] +// CHECK:STDOUT: %ptr.loc46: type = ptr_type %Inner.ref [concrete = constants.%ptr.001] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc46_29.2: %ptr.d15 = acquire_value %.loc46_29.1 -// CHECK:STDOUT: %b: %ptr.d15 = value_binding b, %.loc46_29.2 -// CHECK:STDOUT: %a.ref.loc48_3: %ptr.f73 = name_ref a, %a +// CHECK:STDOUT: %.loc46_29.2: %ptr.001 = acquire_value %.loc46_29.1 +// CHECK:STDOUT: %b: %ptr.001 = value_binding b, %.loc46_29.2 +// CHECK:STDOUT: %a.ref.loc48_3: %ptr.286 = name_ref a, %a // CHECK:STDOUT: %.loc48_4.1: ref %Outer = deref %a.ref.loc48_3 -// CHECK:STDOUT: %po.ref.loc48: %Outer.elem.f95 = name_ref po, @Outer.%.loc40 [concrete = @Outer.%.loc40] -// CHECK:STDOUT: %.loc48_4.2: ref %ptr.f73 = class_element_access %.loc48_4.1, element0 -// CHECK:STDOUT: %a.ref.loc48_11: %ptr.f73 = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc48: %.29f = impl_witness_access constants.%Copy.impl_witness.5e0, element0 [concrete = constants.%ptr.as.Copy.impl.Op.53d] +// CHECK:STDOUT: %po.ref.loc48: %Outer.elem.3ef = name_ref po, @Outer.%.loc40 [concrete = @Outer.%.loc40] +// CHECK:STDOUT: %.loc48_4.2: ref %ptr.286 = class_element_access %.loc48_4.1, element0 +// CHECK:STDOUT: %a.ref.loc48_11: %ptr.286 = name_ref a, %a +// CHECK:STDOUT: %impl.elem0.loc48: %.848 = impl_witness_access constants.%Copy.impl_witness.ec6, element0 [concrete = constants.%ptr.as.Copy.impl.Op.629] // CHECK:STDOUT: %bound_method.loc48_11.1: = bound_method %a.ref.loc48_11, %impl.elem0.loc48 -// CHECK:STDOUT: %specific_fn.loc48: = specific_function %impl.elem0.loc48, @ptr.as.Copy.impl.Op(constants.%Outer) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.bc2] +// CHECK:STDOUT: %specific_fn.loc48: = specific_function %impl.elem0.loc48, @ptr.as.Copy.impl.Op(constants.%Outer) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.642] // CHECK:STDOUT: %bound_method.loc48_11.2: = bound_method %a.ref.loc48_11, %specific_fn.loc48 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc48: init %ptr.f73 = call %bound_method.loc48_11.2(%a.ref.loc48_11) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc48: init %ptr.286 = call %bound_method.loc48_11.2(%a.ref.loc48_11) // CHECK:STDOUT: assign %.loc48_4.2, %ptr.as.Copy.impl.Op.call.loc48 -// CHECK:STDOUT: %a.ref.loc49_3: %ptr.f73 = name_ref a, %a +// CHECK:STDOUT: %a.ref.loc49_3: %ptr.286 = name_ref a, %a // CHECK:STDOUT: %.loc49_4.1: ref %Outer = deref %a.ref.loc49_3 -// CHECK:STDOUT: %qo.ref: %Outer.elem.f95 = name_ref qo, @Outer.%.loc41 [concrete = @Outer.%.loc41] -// CHECK:STDOUT: %.loc49_4.2: ref %ptr.f73 = class_element_access %.loc49_4.1, element1 -// CHECK:STDOUT: %a.ref.loc49_11: %ptr.f73 = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc49: %.29f = impl_witness_access constants.%Copy.impl_witness.5e0, element0 [concrete = constants.%ptr.as.Copy.impl.Op.53d] +// CHECK:STDOUT: %qo.ref: %Outer.elem.3ef = name_ref qo, @Outer.%.loc41 [concrete = @Outer.%.loc41] +// CHECK:STDOUT: %.loc49_4.2: ref %ptr.286 = class_element_access %.loc49_4.1, element1 +// CHECK:STDOUT: %a.ref.loc49_11: %ptr.286 = name_ref a, %a +// CHECK:STDOUT: %impl.elem0.loc49: %.848 = impl_witness_access constants.%Copy.impl_witness.ec6, element0 [concrete = constants.%ptr.as.Copy.impl.Op.629] // CHECK:STDOUT: %bound_method.loc49_11.1: = bound_method %a.ref.loc49_11, %impl.elem0.loc49 -// CHECK:STDOUT: %specific_fn.loc49: = specific_function %impl.elem0.loc49, @ptr.as.Copy.impl.Op(constants.%Outer) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.bc2] +// CHECK:STDOUT: %specific_fn.loc49: = specific_function %impl.elem0.loc49, @ptr.as.Copy.impl.Op(constants.%Outer) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.642] // CHECK:STDOUT: %bound_method.loc49_11.2: = bound_method %a.ref.loc49_11, %specific_fn.loc49 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc49: init %ptr.f73 = call %bound_method.loc49_11.2(%a.ref.loc49_11) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc49: init %ptr.286 = call %bound_method.loc49_11.2(%a.ref.loc49_11) // CHECK:STDOUT: assign %.loc49_4.2, %ptr.as.Copy.impl.Op.call.loc49 -// CHECK:STDOUT: %a.ref.loc50_3: %ptr.f73 = name_ref a, %a +// CHECK:STDOUT: %a.ref.loc50_3: %ptr.286 = name_ref a, %a // CHECK:STDOUT: %.loc50_4.1: ref %Outer = deref %a.ref.loc50_3 -// CHECK:STDOUT: %pi.ref.loc50_4: %Outer.elem.596 = name_ref pi, @Outer.%.loc42 [concrete = @Outer.%.loc42] -// CHECK:STDOUT: %.loc50_4.2: ref %ptr.d15 = class_element_access %.loc50_4.1, element2 -// CHECK:STDOUT: %a.ref.loc50_11: %ptr.f73 = name_ref a, %a +// CHECK:STDOUT: %pi.ref.loc50_4: %Outer.elem.fe3 = name_ref pi, @Outer.%.loc42 [concrete = @Outer.%.loc42] +// CHECK:STDOUT: %.loc50_4.2: ref %ptr.001 = class_element_access %.loc50_4.1, element2 +// CHECK:STDOUT: %a.ref.loc50_11: %ptr.286 = name_ref a, %a // CHECK:STDOUT: %.loc50_12.1: ref %Outer = deref %a.ref.loc50_11 -// CHECK:STDOUT: %pi.ref.loc50_12: %Outer.elem.596 = name_ref pi, @Outer.%.loc42 [concrete = @Outer.%.loc42] -// CHECK:STDOUT: %.loc50_12.2: ref %ptr.d15 = class_element_access %.loc50_12.1, element2 -// CHECK:STDOUT: %.loc50_12.3: %ptr.d15 = acquire_value %.loc50_12.2 -// CHECK:STDOUT: %impl.elem0.loc50: %.ea0 = impl_witness_access constants.%Copy.impl_witness.c4b, element0 [concrete = constants.%ptr.as.Copy.impl.Op.8c9] +// CHECK:STDOUT: %pi.ref.loc50_12: %Outer.elem.fe3 = name_ref pi, @Outer.%.loc42 [concrete = @Outer.%.loc42] +// CHECK:STDOUT: %.loc50_12.2: ref %ptr.001 = class_element_access %.loc50_12.1, element2 +// CHECK:STDOUT: %.loc50_12.3: %ptr.001 = acquire_value %.loc50_12.2 +// CHECK:STDOUT: %impl.elem0.loc50: %.298 = impl_witness_access constants.%Copy.impl_witness.775, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b47] // CHECK:STDOUT: %bound_method.loc50_12.1: = bound_method %.loc50_12.3, %impl.elem0.loc50 -// CHECK:STDOUT: %specific_fn.loc50: = specific_function %impl.elem0.loc50, @ptr.as.Copy.impl.Op(constants.%Inner) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.ffa] +// CHECK:STDOUT: %specific_fn.loc50: = specific_function %impl.elem0.loc50, @ptr.as.Copy.impl.Op(constants.%Inner) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.eb8] // CHECK:STDOUT: %bound_method.loc50_12.2: = bound_method %.loc50_12.3, %specific_fn.loc50 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc50: init %ptr.d15 = call %bound_method.loc50_12.2(%.loc50_12.3) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc50: init %ptr.001 = call %bound_method.loc50_12.2(%.loc50_12.3) // CHECK:STDOUT: assign %.loc50_4.2, %ptr.as.Copy.impl.Op.call.loc50 -// CHECK:STDOUT: %b.ref.loc51: %ptr.d15 = name_ref b, %b +// CHECK:STDOUT: %b.ref.loc51: %ptr.001 = name_ref b, %b // CHECK:STDOUT: %.loc51_4.1: ref %Inner = deref %b.ref.loc51 -// CHECK:STDOUT: %po.ref.loc51: %Inner.elem.1cd = name_ref po, @Inner.%.loc24 [concrete = @Inner.%.loc24] -// CHECK:STDOUT: %.loc51_4.2: ref %ptr.f73 = class_element_access %.loc51_4.1, element1 -// CHECK:STDOUT: %a.ref.loc51: %ptr.f73 = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc51: %.29f = impl_witness_access constants.%Copy.impl_witness.5e0, element0 [concrete = constants.%ptr.as.Copy.impl.Op.53d] +// CHECK:STDOUT: %po.ref.loc51: %Inner.elem.2a2 = name_ref po, @Inner.%.loc24 [concrete = @Inner.%.loc24] +// CHECK:STDOUT: %.loc51_4.2: ref %ptr.286 = class_element_access %.loc51_4.1, element1 +// CHECK:STDOUT: %a.ref.loc51: %ptr.286 = name_ref a, %a +// CHECK:STDOUT: %impl.elem0.loc51: %.848 = impl_witness_access constants.%Copy.impl_witness.ec6, element0 [concrete = constants.%ptr.as.Copy.impl.Op.629] // CHECK:STDOUT: %bound_method.loc51_11.1: = bound_method %a.ref.loc51, %impl.elem0.loc51 -// CHECK:STDOUT: %specific_fn.loc51: = specific_function %impl.elem0.loc51, @ptr.as.Copy.impl.Op(constants.%Outer) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.bc2] +// CHECK:STDOUT: %specific_fn.loc51: = specific_function %impl.elem0.loc51, @ptr.as.Copy.impl.Op(constants.%Outer) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.642] // CHECK:STDOUT: %bound_method.loc51_11.2: = bound_method %a.ref.loc51, %specific_fn.loc51 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc51: init %ptr.f73 = call %bound_method.loc51_11.2(%a.ref.loc51) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc51: init %ptr.286 = call %bound_method.loc51_11.2(%a.ref.loc51) // CHECK:STDOUT: assign %.loc51_4.2, %ptr.as.Copy.impl.Op.call.loc51 -// CHECK:STDOUT: %b.ref.loc52: %ptr.d15 = name_ref b, %b +// CHECK:STDOUT: %b.ref.loc52: %ptr.001 = name_ref b, %b // CHECK:STDOUT: %.loc52_4.1: ref %Inner = deref %b.ref.loc52 -// CHECK:STDOUT: %pi.ref.loc52_4: %Inner.elem.cdf = name_ref pi, @Inner.%.loc23 [concrete = @Inner.%.loc23] -// CHECK:STDOUT: %.loc52_4.2: ref %ptr.d15 = class_element_access %.loc52_4.1, element0 -// CHECK:STDOUT: %a.ref.loc52: %ptr.f73 = name_ref a, %a +// CHECK:STDOUT: %pi.ref.loc52_4: %Inner.elem.df9 = name_ref pi, @Inner.%.loc23 [concrete = @Inner.%.loc23] +// CHECK:STDOUT: %.loc52_4.2: ref %ptr.001 = class_element_access %.loc52_4.1, element0 +// CHECK:STDOUT: %a.ref.loc52: %ptr.286 = name_ref a, %a // CHECK:STDOUT: %.loc52_12.1: ref %Outer = deref %a.ref.loc52 -// CHECK:STDOUT: %pi.ref.loc52_12: %Outer.elem.596 = name_ref pi, @Outer.%.loc42 [concrete = @Outer.%.loc42] -// CHECK:STDOUT: %.loc52_12.2: ref %ptr.d15 = class_element_access %.loc52_12.1, element2 -// CHECK:STDOUT: %.loc52_12.3: %ptr.d15 = acquire_value %.loc52_12.2 -// CHECK:STDOUT: %impl.elem0.loc52: %.ea0 = impl_witness_access constants.%Copy.impl_witness.c4b, element0 [concrete = constants.%ptr.as.Copy.impl.Op.8c9] +// CHECK:STDOUT: %pi.ref.loc52_12: %Outer.elem.fe3 = name_ref pi, @Outer.%.loc42 [concrete = @Outer.%.loc42] +// CHECK:STDOUT: %.loc52_12.2: ref %ptr.001 = class_element_access %.loc52_12.1, element2 +// CHECK:STDOUT: %.loc52_12.3: %ptr.001 = acquire_value %.loc52_12.2 +// CHECK:STDOUT: %impl.elem0.loc52: %.298 = impl_witness_access constants.%Copy.impl_witness.775, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b47] // CHECK:STDOUT: %bound_method.loc52_12.1: = bound_method %.loc52_12.3, %impl.elem0.loc52 -// CHECK:STDOUT: %specific_fn.loc52: = specific_function %impl.elem0.loc52, @ptr.as.Copy.impl.Op(constants.%Inner) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.ffa] +// CHECK:STDOUT: %specific_fn.loc52: = specific_function %impl.elem0.loc52, @ptr.as.Copy.impl.Op(constants.%Inner) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.eb8] // CHECK:STDOUT: %bound_method.loc52_12.2: = bound_method %.loc52_12.3, %specific_fn.loc52 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc52: init %ptr.d15 = call %bound_method.loc52_12.2(%.loc52_12.3) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc52: init %ptr.001 = call %bound_method.loc52_12.2(%.loc52_12.3) // CHECK:STDOUT: assign %.loc52_4.2, %ptr.as.Copy.impl.Op.call.loc52 -// CHECK:STDOUT: %b.ref.loc53: %ptr.d15 = name_ref b, %b +// CHECK:STDOUT: %b.ref.loc53: %ptr.001 = name_ref b, %b // CHECK:STDOUT: %.loc53_4.1: ref %Inner = deref %b.ref.loc53 -// CHECK:STDOUT: %qi.ref: %Inner.elem.cdf = name_ref qi, @Inner.%.loc25 [concrete = @Inner.%.loc25] -// CHECK:STDOUT: %.loc53_4.2: ref %ptr.d15 = class_element_access %.loc53_4.1, element2 -// CHECK:STDOUT: %a.ref.loc53: %ptr.f73 = name_ref a, %a +// CHECK:STDOUT: %qi.ref: %Inner.elem.df9 = name_ref qi, @Inner.%.loc25 [concrete = @Inner.%.loc25] +// CHECK:STDOUT: %.loc53_4.2: ref %ptr.001 = class_element_access %.loc53_4.1, element2 +// CHECK:STDOUT: %a.ref.loc53: %ptr.286 = name_ref a, %a // CHECK:STDOUT: %.loc53_12.1: ref %Outer = deref %a.ref.loc53 -// CHECK:STDOUT: %pi.ref.loc53: %Outer.elem.596 = name_ref pi, @Outer.%.loc42 [concrete = @Outer.%.loc42] -// CHECK:STDOUT: %.loc53_12.2: ref %ptr.d15 = class_element_access %.loc53_12.1, element2 -// CHECK:STDOUT: %.loc53_12.3: %ptr.d15 = acquire_value %.loc53_12.2 -// CHECK:STDOUT: %impl.elem0.loc53: %.ea0 = impl_witness_access constants.%Copy.impl_witness.c4b, element0 [concrete = constants.%ptr.as.Copy.impl.Op.8c9] +// CHECK:STDOUT: %pi.ref.loc53: %Outer.elem.fe3 = name_ref pi, @Outer.%.loc42 [concrete = @Outer.%.loc42] +// CHECK:STDOUT: %.loc53_12.2: ref %ptr.001 = class_element_access %.loc53_12.1, element2 +// CHECK:STDOUT: %.loc53_12.3: %ptr.001 = acquire_value %.loc53_12.2 +// CHECK:STDOUT: %impl.elem0.loc53: %.298 = impl_witness_access constants.%Copy.impl_witness.775, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b47] // CHECK:STDOUT: %bound_method.loc53_12.1: = bound_method %.loc53_12.3, %impl.elem0.loc53 -// CHECK:STDOUT: %specific_fn.loc53: = specific_function %impl.elem0.loc53, @ptr.as.Copy.impl.Op(constants.%Inner) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.ffa] +// CHECK:STDOUT: %specific_fn.loc53: = specific_function %impl.elem0.loc53, @ptr.as.Copy.impl.Op(constants.%Inner) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.eb8] // CHECK:STDOUT: %bound_method.loc53_12.2: = bound_method %.loc53_12.3, %specific_fn.loc53 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc53: init %ptr.d15 = call %bound_method.loc53_12.2(%.loc53_12.3) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc53: init %ptr.001 = call %bound_method.loc53_12.2(%.loc53_12.3) // CHECK:STDOUT: assign %.loc53_4.2, %ptr.as.Copy.impl.Op.call.loc53 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/nested_name.carbon b/toolchain/check/testdata/class/nested_name.carbon index ee7c1f5afa81..1bd30cefae32 100644 --- a/toolchain/check/testdata/class/nested_name.carbon +++ b/toolchain/check/testdata/class/nested_name.carbon @@ -38,41 +38,41 @@ fn G(o: Outer) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Inner.elem: type = unbound_element_type %Inner, %i32 [concrete] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [concrete] -// CHECK:STDOUT: %complete_type.edf: = complete_type_witness %struct_type.n [concrete] +// CHECK:STDOUT: %complete_type.cdf: = complete_type_witness %struct_type.n [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.515: type = pattern_type %Inner [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.dc4: type = pattern_type %Inner [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] +// 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: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.87b: type = pattern_type %Outer [concrete] +// CHECK:STDOUT: %Copy.impl_witness.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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.d6c: type = pattern_type %Outer [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.123: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%Inner) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.f72: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Inner) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.9df: %T.as.DefaultOrUnformed.impl.Op.type.f72 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Inner, (%DefaultOrUnformed.impl_witness.123) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.9df, @T.as.DefaultOrUnformed.impl.Op(%Inner) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.b1a: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%Inner) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.dd7: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Inner) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.0e7: %T.as.DefaultOrUnformed.impl.Op.type.dd7 = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Inner, (%DefaultOrUnformed.impl_witness.b1a) [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.790b3b.4: type = fn_type @Destroy.Op.loc26_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -86,11 +86,11 @@ fn G(o: Outer) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -104,13 +104,13 @@ fn G(o: Outer) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Outer.decl: type = class_decl @Outer [concrete = constants.%Outer] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %oi.param_patt: %pattern_type.515 = value_param_pattern [concrete] -// CHECK:STDOUT: %oi.patt: %pattern_type.515 = at_binding_pattern oi, %oi.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %oi.param_patt: %pattern_type.dc4 = value_param_pattern [concrete] +// CHECK:STDOUT: %oi.patt: %pattern_type.dc4 = at_binding_pattern oi, %oi.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc21_26: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc21_26: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %oi.param: %Inner = value_param call_param0 // CHECK:STDOUT: %.loc21_15: type = splice_block %Inner.ref [concrete = constants.%Inner] { // CHECK:STDOUT: %Outer.ref: type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer] @@ -121,8 +121,8 @@ fn G(o: Outer) { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %o.param_patt: %pattern_type.87b = value_param_pattern [concrete] -// CHECK:STDOUT: %o.patt: %pattern_type.87b = at_binding_pattern o, %o.param_patt [concrete] +// CHECK:STDOUT: %o.param_patt: %pattern_type.d6c = value_param_pattern [concrete] +// CHECK:STDOUT: %o.patt: %pattern_type.d6c = at_binding_pattern o, %o.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %o.param: %Outer = value_param call_param0 // CHECK:STDOUT: %Outer.ref: type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer] @@ -142,7 +142,7 @@ fn G(o: Outer) { // CHECK:STDOUT: // CHECK:STDOUT: class @Inner { // CHECK:STDOUT: %.loc17: %Inner.elem = field_decl n, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.edf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.cdf] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -156,7 +156,7 @@ fn G(o: Outer) { // CHECK:STDOUT: %n.ref: %Inner.elem = name_ref n, @Inner.%.loc17 [concrete = @Inner.%.loc17] // CHECK:STDOUT: %.loc22_12.1: ref %i32 = class_element_access %oi.ref, element0 // CHECK:STDOUT: %.loc22_12.2: %i32 = acquire_value %.loc22_12.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc22_12.1: = bound_method %.loc22_12.2, %impl.elem0 // 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.loc22_12.2: = bound_method %.loc22_12.2, %specific_fn @@ -167,15 +167,15 @@ fn G(o: Outer) { // CHECK:STDOUT: fn @G(%o.param: %Outer) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.515 = ref_binding_pattern i [concrete] -// CHECK:STDOUT: %i.var_patt: %pattern_type.515 = var_pattern %i.patt [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete] +// CHECK:STDOUT: %i.var_patt: %pattern_type.dc4 = var_pattern %i.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i.var: ref %Inner = var %i.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Inner, (constants.%DefaultOrUnformed.impl_witness.123) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Inner, (constants.%DefaultOrUnformed.impl_witness.b1a) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc26_24.1: %DefaultOrUnformed.type = converted constants.%Inner, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc26_24.1 [concrete = constants.%Inner] // CHECK:STDOUT: %.loc26_24.2: type = converted %.loc26_24.1, %as_type [concrete = constants.%Inner] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.9df, @T.as.DefaultOrUnformed.impl.Op(constants.%Inner) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.0e7, @T.as.DefaultOrUnformed.impl.Op(constants.%Inner) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %.loc26_3: ref %Inner = splice_block %i.var {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %Inner to %.loc26_3 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign %i.var, %T.as.DefaultOrUnformed.impl.Op.call @@ -184,7 +184,7 @@ fn G(o: Outer) { // CHECK:STDOUT: %Inner.ref: type = name_ref Inner, @Outer.%Inner.decl [concrete = constants.%Inner] // CHECK:STDOUT: } // CHECK:STDOUT: %i: ref %Inner = ref_binding i, %i.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %i.var, constants.%Destroy.Op.2dd605.4 +// 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: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/partial/init.carbon b/toolchain/check/testdata/class/partial/init.carbon index 1520f6a1e1e4..2e7ad64af705 100644 --- a/toolchain/check/testdata/class/partial/init.carbon +++ b/toolchain/check/testdata/class/partial/init.carbon @@ -33,11 +33,11 @@ class Derived { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Base: type = class_type @Base [concrete] -// CHECK:STDOUT: %.9bb: type = partial_type %Base [concrete] +// CHECK:STDOUT: %.edf: type = partial_type %Base [concrete] // CHECK:STDOUT: %Base.Make.type: type = fn_type @Base.Make [concrete] // CHECK:STDOUT: %Base.Make: %Base.Make.type = struct_value () [concrete] // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] -// CHECK:STDOUT: %struct_type.base.b54: type = struct_type {.base: %.9bb} [concrete] +// CHECK:STDOUT: %struct_type.base.343: type = struct_type {.base: %.edf} [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Derived { @@ -56,9 +56,9 @@ class Derived { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] // CHECK:STDOUT: %Make.ref: %Base.Make.type = name_ref Make, @Base.%Base.Make.decl [concrete = constants.%Base.Make] -// CHECK:STDOUT: %.loc14_32.1: ref %.9bb = class_element_access %return.param, element0 -// CHECK:STDOUT: %Base.Make.call: init %.9bb to %.loc14_32.1 = call %Make.ref() -// CHECK:STDOUT: %.loc14_32.2: %struct_type.base.b54 = struct_literal (%Base.Make.call) +// CHECK:STDOUT: %.loc14_32.1: ref %.edf = class_element_access %return.param, element0 +// CHECK:STDOUT: %Base.Make.call: init %.edf to %.loc14_32.1 = call %Make.ref() +// CHECK:STDOUT: %.loc14_32.2: %struct_type.base.343 = struct_literal (%Base.Make.call) // CHECK:STDOUT: %.loc14_32.3: init %Base = as_compatible %Base.Make.call // CHECK:STDOUT: %.loc14_32.4: init %Derived to %return.param = class_init (%.loc14_32.3) // CHECK:STDOUT: %.loc14_33: init %Derived = converted %.loc14_32.2, %.loc14_32.4 diff --git a/toolchain/check/testdata/class/partial/qualifier.carbon b/toolchain/check/testdata/class/partial/qualifier.carbon index 809f07146b91..046914773b5b 100644 --- a/toolchain/check/testdata/class/partial/qualifier.carbon +++ b/toolchain/check/testdata/class/partial/qualifier.carbon @@ -179,8 +179,8 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %.d8a: type = partial_type %C [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %.d8a [concrete] +// CHECK:STDOUT: %.331: type = partial_type %C [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %.331 [concrete] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -190,23 +190,23 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %p.param: %.d8a = value_param call_param0 -// CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.2 [concrete = constants.%.d8a] { +// CHECK:STDOUT: %p.param: %.331 = value_param call_param0 +// CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.2 [concrete = constants.%.331] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc6_9.2: type = partial_type %C.ref [concrete = constants.%.d8a] +// CHECK:STDOUT: %.loc6_9.2: type = partial_type %C.ref [concrete = constants.%.331] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %.d8a = value_binding p, %p.param +// CHECK:STDOUT: %p: %.331 = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @A(%p.param: %.d8a); +// CHECK:STDOUT: fn @A(%p.param: %.331); // CHECK:STDOUT: // CHECK:STDOUT: --- abstract.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %.d8a: type = partial_type %C [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %.d8a [concrete] +// CHECK:STDOUT: %.331: type = partial_type %C [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %.331 [concrete] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -216,23 +216,23 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %p.param: %.d8a = value_param call_param0 -// CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.2 [concrete = constants.%.d8a] { +// CHECK:STDOUT: %p.param: %.331 = value_param call_param0 +// CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.2 [concrete = constants.%.331] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc6_9.2: type = partial_type %C.ref [concrete = constants.%.d8a] +// CHECK:STDOUT: %.loc6_9.2: type = partial_type %C.ref [concrete = constants.%.331] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %.d8a = value_binding p, %p.param +// CHECK:STDOUT: %p: %.331 = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @A(%p.param: %.d8a); +// CHECK:STDOUT: fn @A(%p.param: %.331); // CHECK:STDOUT: // CHECK:STDOUT: --- abstract_var.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %.d8a: type = partial_type %C [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %.d8a [concrete] +// CHECK:STDOUT: %.331: type = partial_type %C [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %.331 [concrete] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -242,23 +242,23 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: %p.patt: %pattern_type = ref_binding_pattern p [concrete] // CHECK:STDOUT: %p.param_patt: %pattern_type = var_param_pattern %p.patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %p.param: ref %.d8a = ref_param call_param0 -// CHECK:STDOUT: %.loc6_13.1: type = splice_block %.loc6_13.2 [concrete = constants.%.d8a] { +// CHECK:STDOUT: %p.param: ref %.331 = ref_param call_param0 +// CHECK:STDOUT: %.loc6_13.1: type = splice_block %.loc6_13.2 [concrete = constants.%.331] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc6_13.2: type = partial_type %C.ref [concrete = constants.%.d8a] +// CHECK:STDOUT: %.loc6_13.2: type = partial_type %C.ref [concrete = constants.%.331] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: ref %.d8a = ref_binding p, %p.param +// CHECK:STDOUT: %p: ref %.331 = ref_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @A(%p.param: ref %.d8a); +// CHECK:STDOUT: fn @A(%p.param: ref %.331); // CHECK:STDOUT: // CHECK:STDOUT: --- fail_partial_nondynamic.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %.d8a: type = partial_type %C [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %.d8a [concrete] +// CHECK:STDOUT: %.331: type = partial_type %C [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %.331 [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -268,23 +268,23 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %p.param: %.d8a = value_param call_param0 -// CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.2 [concrete = constants.%.d8a] { +// CHECK:STDOUT: %p.param: %.331 = value_param call_param0 +// CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.2 [concrete = constants.%.331] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc10_9.2: type = partial_type %C.ref [concrete = constants.%.d8a] +// CHECK:STDOUT: %.loc10_9.2: type = partial_type %C.ref [concrete = constants.%.331] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %.d8a = value_binding p, %p.param +// CHECK:STDOUT: %p: %.331 = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param: %.d8a); +// CHECK:STDOUT: fn @G(%p.param: %.331); // CHECK:STDOUT: // CHECK:STDOUT: --- fail_partial_final.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] -// CHECK:STDOUT: %.914: type = partial_type %Derived [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %.914 [concrete] +// CHECK:STDOUT: %.546: type = partial_type %Derived [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %.546 [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -294,23 +294,23 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %p.param: %.914 = value_param call_param0 -// CHECK:STDOUT: %.loc13_9.1: type = splice_block %.loc13_9.2 [concrete = constants.%.914] { +// CHECK:STDOUT: %p.param: %.546 = value_param call_param0 +// CHECK:STDOUT: %.loc13_9.1: type = splice_block %.loc13_9.2 [concrete = constants.%.546] { // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] -// CHECK:STDOUT: %.loc13_9.2: type = partial_type %Derived.ref [concrete = constants.%.914] +// CHECK:STDOUT: %.loc13_9.2: type = partial_type %Derived.ref [concrete = constants.%.546] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %.914 = value_binding p, %p.param +// CHECK:STDOUT: %p: %.546 = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param: %.914); +// CHECK:STDOUT: fn @G(%p.param: %.546); // CHECK:STDOUT: // CHECK:STDOUT: --- fail_partial_decl.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %.d8a: type = partial_type %C [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %.d8a [concrete] +// CHECK:STDOUT: %.331: type = partial_type %C [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %.331 [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -320,16 +320,16 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %p.param: %.d8a = value_param call_param0 -// CHECK:STDOUT: %.loc13_9.1: type = splice_block %.loc13_9.2 [concrete = constants.%.d8a] { +// CHECK:STDOUT: %p.param: %.331 = value_param call_param0 +// CHECK:STDOUT: %.loc13_9.1: type = splice_block %.loc13_9.2 [concrete = constants.%.331] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc13_9.2: type = partial_type %C.ref [concrete = constants.%.d8a] +// CHECK:STDOUT: %.loc13_9.2: type = partial_type %C.ref [concrete = constants.%.331] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %.d8a = value_binding p, %p.param +// CHECK:STDOUT: %p: %.331 = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param: %.d8a); +// CHECK:STDOUT: fn @G(%p.param: %.331); // CHECK:STDOUT: // CHECK:STDOUT: --- fail_partial_tuple.carbon // CHECK:STDOUT: @@ -337,9 +337,9 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%C, %C) [concrete] -// CHECK:STDOUT: %tuple.type.33d: type = tuple_type (%C, %C) [concrete] -// CHECK:STDOUT: %.1d6: type = partial_type %tuple.type.33d [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %.1d6 [concrete] +// CHECK:STDOUT: %tuple.type.748: type = tuple_type (%C, %C) [concrete] +// CHECK:STDOUT: %.8dc: type = partial_type %tuple.type.748 [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %.8dc [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -349,27 +349,27 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %p.param: %.1d6 = value_param call_param0 -// CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.3 [concrete = constants.%.1d6] { +// CHECK:STDOUT: %p.param: %.8dc = value_param call_param0 +// CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.3 [concrete = constants.%.8dc] { // CHECK:STDOUT: %C.ref.loc10_18: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc10_21: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc10_22: %tuple.type.24b = tuple_literal (%C.ref.loc10_18, %C.ref.loc10_21) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc10_9.2: type = converted %.loc10_22, constants.%tuple.type.33d [concrete = constants.%tuple.type.33d] -// CHECK:STDOUT: %.loc10_9.3: type = partial_type %.loc10_9.2 [concrete = constants.%.1d6] +// CHECK:STDOUT: %.loc10_9.2: type = converted %.loc10_22, constants.%tuple.type.748 [concrete = constants.%tuple.type.748] +// CHECK:STDOUT: %.loc10_9.3: type = partial_type %.loc10_9.2 [concrete = constants.%.8dc] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %.1d6 = value_binding p, %p.param +// CHECK:STDOUT: %p: %.8dc = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param: %.1d6); +// CHECK:STDOUT: fn @G(%p.param: %.8dc); // CHECK:STDOUT: // CHECK:STDOUT: --- fail_partial_struct.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %C} [concrete] -// CHECK:STDOUT: %.f0d: type = partial_type %struct_type.x [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %.f0d [concrete] +// CHECK:STDOUT: %.91f: type = partial_type %struct_type.x [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %.91f [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -379,25 +379,25 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %p.param: %.f0d = value_param call_param0 -// CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.2 [concrete = constants.%.f0d] { +// CHECK:STDOUT: %p.param: %.91f = value_param call_param0 +// CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.2 [concrete = constants.%.91f] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %C} [concrete = constants.%struct_type.x] -// CHECK:STDOUT: %.loc10_9.2: type = partial_type %struct_type.x [concrete = constants.%.f0d] +// CHECK:STDOUT: %.loc10_9.2: type = partial_type %struct_type.x [concrete = constants.%.91f] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %.f0d = value_binding p, %p.param +// CHECK:STDOUT: %p: %.91f = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param: %.f0d); +// CHECK:STDOUT: fn @G(%p.param: %.91f); // CHECK:STDOUT: // CHECK:STDOUT: --- fail_duplicate.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %.d8a: type = partial_type %C [concrete] -// CHECK:STDOUT: %.224: type = partial_type %.d8a [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %.224 [concrete] +// CHECK:STDOUT: %.331: type = partial_type %C [concrete] +// CHECK:STDOUT: %.d52: type = partial_type %.331 [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %.d52 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -407,15 +407,15 @@ fn F[T:! type](p: partial T*); // CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %p.param: %.224 = value_param call_param0 -// CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.2 [concrete = constants.%.224] { +// CHECK:STDOUT: %p.param: %.d52 = value_param call_param0 +// CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.2 [concrete = constants.%.d52] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc10_18: type = partial_type %C.ref [concrete = constants.%.d8a] -// CHECK:STDOUT: %.loc10_9.2: type = partial_type %.loc10_18 [concrete = constants.%.224] +// CHECK:STDOUT: %.loc10_18: type = partial_type %C.ref [concrete = constants.%.331] +// CHECK:STDOUT: %.loc10_9.2: type = partial_type %.loc10_18 [concrete = constants.%.d52] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %.224 = value_binding p, %p.param +// CHECK:STDOUT: %p: %.d52 = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%p.param: %.224); +// CHECK:STDOUT: fn @F(%p.param: %.d52); // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/redeclaration.carbon b/toolchain/check/testdata/class/redeclaration.carbon index 6a536442a6b2..69ed94130593 100644 --- a/toolchain/check/testdata/class/redeclaration.carbon +++ b/toolchain/check/testdata/class/redeclaration.carbon @@ -24,7 +24,7 @@ fn Class.F[unused self: Self](unused b: ()) {} // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Class: type = class_type @Class [concrete] -// CHECK:STDOUT: %pattern_type.415: type = pattern_type %Class [concrete] +// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] @@ -50,8 +50,8 @@ fn Class.F[unused self: Self](unused b: ()) {} // CHECK:STDOUT: %Class.decl.loc15: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Class.decl.loc17: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.415 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.415 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %b.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.cb1 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { @@ -69,8 +69,8 @@ fn Class.F[unused self: Self](unused b: ()) {} // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.415 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.415 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %b.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.cb1 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { diff --git a/toolchain/check/testdata/class/reenter_scope.carbon b/toolchain/check/testdata/class/reenter_scope.carbon index 5b9f2a61457f..9f419217d9a2 100644 --- a/toolchain/check/testdata/class/reenter_scope.carbon +++ b/toolchain/check/testdata/class/reenter_scope.carbon @@ -30,8 +30,8 @@ fn Class.F() -> i32 { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [concrete] // CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G [concrete] @@ -57,11 +57,11 @@ fn Class.F() -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc20 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc20 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc20: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32.loc20 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32.loc20 [concrete = constants.%.795] // CHECK:STDOUT: %return.param.loc20: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return.loc20: ref %i32 = return_slot %return.param.loc20 // CHECK:STDOUT: } @@ -69,20 +69,20 @@ fn Class.F() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc20 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc20 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32.loc16 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32.loc16 [concrete = constants.%.795] // CHECK:STDOUT: %return.param.loc16: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return.loc16: ref %i32 = return_slot %return.param.loc16 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc17: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc17: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/reorder.carbon b/toolchain/check/testdata/class/reorder.carbon index 839555211c47..7638174e673a 100644 --- a/toolchain/check/testdata/class/reorder.carbon +++ b/toolchain/check/testdata/class/reorder.carbon @@ -30,8 +30,8 @@ class Class { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G [concrete] // CHECK:STDOUT: %Class.G: %Class.G.type = struct_value () [concrete] // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete] @@ -39,22 +39,22 @@ class Class { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -65,9 +65,9 @@ class Class { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -81,20 +81,20 @@ class Class { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -119,12 +119,12 @@ class Class { // CHECK:STDOUT: fn @Class.F() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc21_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc21_13.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc21: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc21_13.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc21: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] // CHECK:STDOUT: return %.loc21 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/reorder_qualified.carbon b/toolchain/check/testdata/class/reorder_qualified.carbon index 7bd246573c93..0eb67225b026 100644 --- a/toolchain/check/testdata/class/reorder_qualified.carbon +++ b/toolchain/check/testdata/class/reorder_qualified.carbon @@ -65,80 +65,80 @@ class A { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %i32 [concrete] -// CHECK:STDOUT: %struct_type.b.676: type = struct_type {.b: %i32} [concrete] -// CHECK:STDOUT: %complete_type.ec5: = complete_type_witness %struct_type.b.676 [concrete] +// CHECK:STDOUT: %struct_type.b.0bf: type = struct_type {.b: %i32} [concrete] +// CHECK:STDOUT: %complete_type.330: = complete_type_witness %struct_type.b.0bf [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %D.F.type: type = fn_type @D.F [concrete] // CHECK:STDOUT: %D.F: %D.F.type = struct_value () [concrete] // CHECK:STDOUT: %D.DF.type: type = fn_type @D.DF [concrete] // CHECK:STDOUT: %D.DF: %D.DF.type = struct_value () [concrete] // CHECK:STDOUT: %D.elem: type = unbound_element_type %D, %i32 [concrete] -// CHECK:STDOUT: %struct_type.d.f00: type = struct_type {.d: %i32} [concrete] -// CHECK:STDOUT: %complete_type.1eb: = complete_type_witness %struct_type.d.f00 [concrete] +// CHECK:STDOUT: %struct_type.d.bde: type = struct_type {.d: %i32} [concrete] +// CHECK:STDOUT: %complete_type.5d0: = complete_type_witness %struct_type.d.bde [concrete] // CHECK:STDOUT: %C.CF.type: type = fn_type @C.CF [concrete] // CHECK:STDOUT: %C.CF: %C.CF.type = struct_value () [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [concrete] -// CHECK:STDOUT: %struct_type.c.262: type = struct_type {.c: %i32} [concrete] -// CHECK:STDOUT: %complete_type.aca: = complete_type_witness %struct_type.c.262 [concrete] +// CHECK:STDOUT: %struct_type.c.73d: type = struct_type {.c: %i32} [concrete] +// CHECK:STDOUT: %complete_type.8f8: = complete_type_witness %struct_type.c.73d [concrete] // CHECK:STDOUT: %A.AF.type: type = fn_type @A.AF [concrete] // CHECK:STDOUT: %A.AF: %A.AF.type = struct_value () [concrete] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %i32 [concrete] -// CHECK:STDOUT: %struct_type.a.1c5: type = struct_type {.a: %i32} [concrete] -// CHECK:STDOUT: %complete_type.f2a: = complete_type_witness %struct_type.a.1c5 [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] +// CHECK:STDOUT: %struct_type.a.a92: type = struct_type {.a: %i32} [concrete] +// CHECK:STDOUT: %complete_type.388: = complete_type_witness %struct_type.a.a92 [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.a.a6c: type = struct_type {.a: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.48c: %struct_type.a.a6c = struct_value (%int_1.5b8) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %A.val: %A = struct_value (%int_1.d9c) [concrete] -// CHECK:STDOUT: %pattern_type.a55: type = pattern_type %B [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %A.val: %A = struct_value (%int_1.0c6) [concrete] +// CHECK:STDOUT: %pattern_type.e78: type = pattern_type %B [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %struct_type.b.a15: type = struct_type {.b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.26f: %struct_type.b.a15 = struct_value (%int_2.ecc) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %B.val: %B = struct_value (%int_2.228) [concrete] -// CHECK:STDOUT: %pattern_type.669: type = pattern_type %C [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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %B.val: %B = struct_value (%int_2.295) [concrete] +// CHECK:STDOUT: %pattern_type.ca8: type = pattern_type %C [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %struct_type.c.5b8: type = struct_type {.c: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.d98: %struct_type.c.5b8 = struct_value (%int_3.1ba) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %C.val: %C = struct_value (%int_3.6cc) [concrete] -// CHECK:STDOUT: %pattern_type.0df: type = pattern_type %D [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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] +// CHECK:STDOUT: %C.val: %C = struct_value (%int_3.410) [concrete] +// CHECK:STDOUT: %pattern_type.a0b: type = pattern_type %D [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %struct_type.d.3ea: type = struct_type {.d: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.5a9: %struct_type.d.3ea = struct_value (%int_4.0c1) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.9f5: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_4.a4d: %i32 = int_value 4 [concrete] -// CHECK:STDOUT: %D.val: %D = struct_value (%int_4.a4d) [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] +// 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.790b3b.4: type = fn_type @Destroy.Op.loc36_7.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.6: type = fn_type @Destroy.Op.loc35_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.8: type = fn_type @Destroy.Op.loc34_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.8: %Destroy.Op.type.790b3b.8 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.10: type = fn_type @Destroy.Op.loc33_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.10: %Destroy.Op.type.790b3b.10 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -150,9 +150,9 @@ class A { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -170,7 +170,7 @@ class A { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %A.AF.decl: %A.AF.type = fn_decl @A.AF [concrete = constants.%A.AF] {} {} // CHECK:STDOUT: %.loc50: %A.elem = field_decl a, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.1c5 [concrete = constants.%complete_type.f2a] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.a92 [concrete = constants.%complete_type.388] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -185,7 +185,7 @@ class A { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %B.BF.decl: %B.BF.type = fn_decl @B.BF [concrete = constants.%B.BF] {} {} // CHECK:STDOUT: %.loc20: %B.elem = field_decl b, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.b.676 [concrete = constants.%complete_type.ec5] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.b.0bf [concrete = constants.%complete_type.330] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -203,7 +203,7 @@ class A { // CHECK:STDOUT: %D.DF.decl: %D.DF.type = fn_decl @D.DF [concrete = constants.%D.DF] {} {} // CHECK:STDOUT: %C.CF.decl: %C.CF.type = fn_decl @C.CF [concrete = constants.%C.CF] {} {} // CHECK:STDOUT: %.loc46: %C.elem = field_decl c, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.c.262 [concrete = constants.%complete_type.aca] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.c.73d [concrete = constants.%complete_type.8f8] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -222,7 +222,7 @@ class A { // CHECK:STDOUT: %D.F.decl: %D.F.type = fn_decl @D.F [concrete = constants.%D.F] {} {} // CHECK:STDOUT: %D.DF.decl: %D.DF.type = fn_decl @D.DF [concrete = constants.%D.DF] {} {} // CHECK:STDOUT: %.loc28: %D.elem = field_decl d, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.d.f00 [concrete = constants.%complete_type.1eb] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.d.bde [concrete = constants.%complete_type.5d0] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -246,80 +246,80 @@ class A { // CHECK:STDOUT: fn @D.DF() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.ccb = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.ccb = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9ef = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.9ef = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %A = var %a.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc33_32.1: %struct_type.a.a6c = struct_literal (%int_1) [concrete = constants.%struct.48c] -// CHECK:STDOUT: %impl.elem0.loc33: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc33_32.1: = bound_method %int_1, %impl.elem0.loc33 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc33: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc33_32.1: = bound_method %int_1, %impl.elem0.loc33 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc33: = specific_function %impl.elem0.loc33, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc33_32.2: = bound_method %int_1, %specific_fn.loc33 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc33: init %i32 = call %bound_method.loc33_32.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc33_32.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc33 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc33_32.2: = bound_method %int_1, %specific_fn.loc33 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc33: init %i32 = call %bound_method.loc33_32.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc33_32.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc33 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc33_32.3: ref %i32 = class_element_access %a.var, element0 -// CHECK:STDOUT: %.loc33_32.4: init %i32 to %.loc33_32.3 = in_place_init %.loc33_32.2 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %.loc33_32.4: init %i32 to %.loc33_32.3 = in_place_init %.loc33_32.2 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc33_32.5: init %A to %a.var = class_init (%.loc33_32.4) [concrete = constants.%A.val] // CHECK:STDOUT: %.loc33_7: init %A = converted %.loc33_32.1, %.loc33_32.5 [concrete = constants.%A.val] // CHECK:STDOUT: assign %a.var, %.loc33_7 // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %a: ref %A = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.a55 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.a55 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.e78 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.e78 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %B = var %b.var_patt // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc34_32.1: %struct_type.b.a15 = struct_literal (%int_2) [concrete = constants.%struct.26f] -// CHECK:STDOUT: %impl.elem0.loc34: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc34_32.1: = bound_method %int_2, %impl.elem0.loc34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %impl.elem0.loc34: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc34_32.1: = bound_method %int_2, %impl.elem0.loc34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc34: = specific_function %impl.elem0.loc34, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc34_32.2: = bound_method %int_2, %specific_fn.loc34 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc34: init %i32 = call %bound_method.loc34_32.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc34_32.2: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc34 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc34_32.2: = bound_method %int_2, %specific_fn.loc34 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc34: init %i32 = call %bound_method.loc34_32.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc34_32.2: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc34 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc34_32.3: ref %i32 = class_element_access %b.var, element0 -// CHECK:STDOUT: %.loc34_32.4: init %i32 to %.loc34_32.3 = in_place_init %.loc34_32.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %.loc34_32.4: init %i32 to %.loc34_32.3 = in_place_init %.loc34_32.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc34_32.5: init %B to %b.var = class_init (%.loc34_32.4) [concrete = constants.%B.val] // CHECK:STDOUT: %.loc34_7: init %B = converted %.loc34_32.1, %.loc34_32.5 [concrete = constants.%B.val] // CHECK:STDOUT: assign %b.var, %.loc34_7 // CHECK:STDOUT: %B.ref: type = name_ref B, @A.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %b: ref %B = ref_binding b, %b.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.669 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.669 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.ca8 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.ca8 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc35_32.1: %struct_type.c.5b8 = struct_literal (%int_3) [concrete = constants.%struct.d98] -// CHECK:STDOUT: %impl.elem0.loc35: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc35_32.1: = bound_method %int_3, %impl.elem0.loc35 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %impl.elem0.loc35: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc35_32.1: = bound_method %int_3, %impl.elem0.loc35 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc35: = specific_function %impl.elem0.loc35, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc35_32.2: = bound_method %int_3, %specific_fn.loc35 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc35: init %i32 = call %bound_method.loc35_32.2(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc35_32.2: init %i32 = converted %int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc35 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc35_32.2: = bound_method %int_3, %specific_fn.loc35 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc35: init %i32 = call %bound_method.loc35_32.2(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc35_32.2: init %i32 = converted %int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc35 [concrete = constants.%int_3.410] // CHECK:STDOUT: %.loc35_32.3: ref %i32 = class_element_access %c.var, element0 -// CHECK:STDOUT: %.loc35_32.4: init %i32 to %.loc35_32.3 = in_place_init %.loc35_32.2 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %.loc35_32.4: init %i32 to %.loc35_32.3 = in_place_init %.loc35_32.2 [concrete = constants.%int_3.410] // CHECK:STDOUT: %.loc35_32.5: init %C to %c.var = class_init (%.loc35_32.4) [concrete = constants.%C.val] // CHECK:STDOUT: %.loc35_7: init %C = converted %.loc35_32.1, %.loc35_32.5 [concrete = constants.%C.val] // CHECK:STDOUT: assign %c.var, %.loc35_7 // CHECK:STDOUT: %C.ref: type = name_ref C, @B.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.0df = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.0df = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.a0b = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.a0b = var_pattern %d.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %d.var: ref %D = var %d.var_patt // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %.loc36_32.1: %struct_type.d.3ea = struct_literal (%int_4) [concrete = constants.%struct.5a9] -// CHECK:STDOUT: %impl.elem0.loc36: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc36_32.1: = bound_method %int_4, %impl.elem0.loc36 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe] +// CHECK:STDOUT: %impl.elem0.loc36: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc36_32.1: = bound_method %int_4, %impl.elem0.loc36 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad] // CHECK:STDOUT: %specific_fn.loc36: = specific_function %impl.elem0.loc36, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc36_32.2: = bound_method %int_4, %specific_fn.loc36 [concrete = constants.%bound_method.9f5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc36: init %i32 = call %bound_method.loc36_32.2(%int_4) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc36_32.2: init %i32 = converted %int_4, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc36 [concrete = constants.%int_4.a4d] +// CHECK:STDOUT: %bound_method.loc36_32.2: = bound_method %int_4, %specific_fn.loc36 [concrete = constants.%bound_method.b7a] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc36: init %i32 = call %bound_method.loc36_32.2(%int_4) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc36_32.2: init %i32 = converted %int_4, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc36 [concrete = constants.%int_4.4eb] // CHECK:STDOUT: %.loc36_32.3: ref %i32 = class_element_access %d.var, element0 -// CHECK:STDOUT: %.loc36_32.4: init %i32 to %.loc36_32.3 = in_place_init %.loc36_32.2 [concrete = constants.%int_4.a4d] +// CHECK:STDOUT: %.loc36_32.4: init %i32 to %.loc36_32.3 = in_place_init %.loc36_32.2 [concrete = constants.%int_4.4eb] // CHECK:STDOUT: %.loc36_32.5: init %D to %d.var = class_init (%.loc36_32.4) [concrete = constants.%D.val] // CHECK:STDOUT: %.loc36_7: init %D = converted %.loc36_32.1, %.loc36_32.5 [concrete = constants.%D.val] // CHECK:STDOUT: assign %d.var, %.loc36_7 @@ -333,13 +333,13 @@ 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.2dd605.4 +// 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.2dd605.6 +// 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.2dd605.8 +// 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.2dd605.10 +// 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: return // CHECK:STDOUT: } @@ -355,7 +355,7 @@ class A { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc36_7.3(%self.param: ref %struct_type.d.f00) { +// CHECK:STDOUT: fn @Destroy.Op.loc36_7.3(%self.param: ref %struct_type.d.bde) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -365,7 +365,7 @@ class A { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc35_7.1(%self.param: ref %struct_type.c.262) { +// CHECK:STDOUT: fn @Destroy.Op.loc35_7.1(%self.param: ref %struct_type.c.73d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -375,7 +375,7 @@ class A { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_7.1(%self.param: ref %struct_type.b.676) { +// CHECK:STDOUT: fn @Destroy.Op.loc34_7.1(%self.param: ref %struct_type.b.0bf) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -385,7 +385,7 @@ class A { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc33_7.1(%self.param: ref %struct_type.a.1c5) { +// CHECK:STDOUT: fn @Destroy.Op.loc33_7.1(%self.param: ref %struct_type.a.a92) { // 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 19912679f5d1..259551ad447a 100644 --- a/toolchain/check/testdata/class/scope.carbon +++ b/toolchain/check/testdata/class/scope.carbon @@ -40,8 +40,8 @@ fn Run() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [concrete] // CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G [concrete] @@ -50,33 +50,33 @@ fn Run() { // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = 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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %Run.type: type = fn_type @Run [concrete] // CHECK:STDOUT: %Run: %Run.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc31_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -88,9 +88,9 @@ fn Run() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -104,11 +104,11 @@ fn Run() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -117,20 +117,20 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -146,12 +146,12 @@ fn Run() { // CHECK:STDOUT: fn @Class.F() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc17_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc17_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc17_13.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc17: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc17_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc17_13.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc17: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] // CHECK:STDOUT: return %.loc17 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -165,20 +165,20 @@ fn Run() { // CHECK:STDOUT: fn @F() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc26_11.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc26_11.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_11.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc26_11.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc26: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc26_11.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc26_11.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc26: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.295] // CHECK:STDOUT: return %.loc26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.104 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var %a.var_patt // CHECK:STDOUT: %F.ref.loc30: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] @@ -187,8 +187,8 @@ fn Run() { // CHECK:STDOUT: %i32.loc30: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: ref %i32 = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] @@ -197,9 +197,9 @@ fn Run() { // CHECK:STDOUT: assign %b.var, %Class.F.call // CHECK:STDOUT: %i32.loc31: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: ref %i32 = ref_binding b, %b.var -// CHECK:STDOUT: %Destroy.Op.bound.loc31: = bound_method %b.var, constants.%Destroy.Op.2dd605.2 +// 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.2dd605.2 +// 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: 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 4dc5b65dc91b..29ed97c6e033 100644 --- a/toolchain/check/testdata/class/self/fail_ref_self.carbon +++ b/toolchain/check/testdata/class/self/fail_ref_self.carbon @@ -39,22 +39,22 @@ fn F(c: Class, p: Class*) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Class: type = class_type @Class [concrete] -// CHECK:STDOUT: %pattern_type.415: type = pattern_type %Class [concrete] +// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete] // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %.14f: Core.Form = init_form %Class [concrete] +// CHECK:STDOUT: %.d76: Core.Form = init_form %Class [concrete] // CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete] // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.e55: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %pattern_type.732: type = pattern_type %ptr.e55 [concrete] +// CHECK:STDOUT: %ptr.7ee: type = ptr_type %Class [concrete] +// CHECK:STDOUT: %pattern_type.8c5: type = pattern_type %ptr.7ee [concrete] // 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.790b3b.2: type = fn_type @Destroy.Op.loc35_8.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -76,36 +76,36 @@ fn F(c: Class, p: Class*) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.415 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.415 = return_slot_pattern %return.param_patt, %Class.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f15 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f15 = return_slot_pattern %return.param_patt, %Class.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %.loc19: Core.Form = init_form %Class.ref [concrete = constants.%.14f] +// CHECK:STDOUT: %.loc19: Core.Form = init_form %Class.ref [concrete = constants.%.d76] // CHECK:STDOUT: %return.param: ref %Class = out_param call_param0 // CHECK:STDOUT: %return: ref %Class = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.415 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.415 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %p.param_patt: %pattern_type.732 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.732 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.f15 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.f15 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.8c5 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %Class = value_param call_param0 // CHECK:STDOUT: %Class.ref.loc21_9: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] // CHECK:STDOUT: %c: %Class = value_binding c, %c.param -// CHECK:STDOUT: %p.param: %ptr.e55 = value_param call_param1 -// CHECK:STDOUT: %.loc21: type = splice_block %ptr [concrete = constants.%ptr.e55] { +// CHECK:STDOUT: %p.param: %ptr.7ee = value_param call_param1 +// CHECK:STDOUT: %.loc21: type = splice_block %ptr [concrete = constants.%ptr.7ee] { // CHECK:STDOUT: %Class.ref.loc21_19: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %ptr: type = ptr_type %Class.ref.loc21_19 [concrete = constants.%ptr.e55] +// CHECK:STDOUT: %ptr: type = ptr_type %Class.ref.loc21_19 [concrete = constants.%ptr.7ee] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.e55 = value_binding p, %p.param +// CHECK:STDOUT: %p: %ptr.7ee = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.415 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.415 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Class = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Class [concrete = constants.%Class] @@ -123,13 +123,13 @@ fn F(c: Class, p: Class*) { // CHECK:STDOUT: // CHECK:STDOUT: fn @Make() -> out %return.param: %Class; // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%c.param: %Class, %p.param: %ptr.e55) { +// CHECK:STDOUT: fn @F(%c.param: %Class, %p.param: %ptr.7ee) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %c.ref: %Class = name_ref c, %c // CHECK:STDOUT: %F.ref.loc29: %Class.F.type = name_ref F, @Class.%Class.F.decl [concrete = constants.%Class.F] // CHECK:STDOUT: %Class.F.bound.loc29: = bound_method %c.ref, %F.ref.loc29 // CHECK:STDOUT: %Class.F.call.loc29: init %empty_tuple.type = call %Class.F.bound.loc29() -// CHECK:STDOUT: %p.ref: %ptr.e55 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.7ee = name_ref p, %p // CHECK:STDOUT: %.loc32: ref %Class = deref %p.ref // CHECK:STDOUT: %F.ref.loc32: %Class.F.type = name_ref F, @Class.%Class.F.decl [concrete = constants.%Class.F] // CHECK:STDOUT: %Class.F.bound.loc32: = bound_method %.loc32, %F.ref.loc32 @@ -141,7 +141,7 @@ 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.2dd605.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: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/self/raw_self.carbon b/toolchain/check/testdata/class/self/raw_self.carbon index ab3ce533d473..51de47ad5039 100644 --- a/toolchain/check/testdata/class/self/raw_self.carbon +++ b/toolchain/check/testdata/class/self/raw_self.carbon @@ -30,35 +30,35 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Class: type = class_type @Class [concrete] -// CHECK:STDOUT: %pattern_type.415: type = pattern_type %Class [concrete] +// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.79d: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] -// CHECK:STDOUT: %.ac5: Core.Form = init_form %tuple.type.e5a [concrete] -// CHECK:STDOUT: %pattern_type.7d6: type = pattern_type %tuple.type.e5a [concrete] +// CHECK:STDOUT: %tuple.b59: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %.c11: Core.Form = init_form %tuple.type.e55 [concrete] +// CHECK:STDOUT: %pattern_type.394: type = pattern_type %tuple.type.e55 [concrete] // CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G [concrete] // CHECK:STDOUT: %Class.G: %Class.G.type = struct_value () [concrete] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [concrete] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [concrete] -// CHECK:STDOUT: %complete_type.edf: = complete_type_witness %struct_type.n [concrete] +// CHECK:STDOUT: %complete_type.cdf: = complete_type_witness %struct_type.n [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -70,8 +70,8 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -82,10 +82,10 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.param_patt.loc21_20: %pattern_type.415 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt.loc21_20: %pattern_type.415 = at_binding_pattern self, %self.param_patt.loc21_20 [concrete] -// CHECK:STDOUT: %self.param_patt.loc21_34: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt.loc21_34: %pattern_type.104 = at_binding_pattern r#self, %self.param_patt.loc21_34 [concrete] +// CHECK:STDOUT: %self.param_patt.loc21_20: %pattern_type.f15 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt.loc21_20: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.loc21_20 [concrete] +// CHECK:STDOUT: %self.param_patt.loc21_34: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt.loc21_34: %pattern_type.6b6 = at_binding_pattern r#self, %self.param_patt.loc21_34 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param.loc21_20: ref %Class = ref_param call_param0 // CHECK:STDOUT: %Self.ref.loc21: type = name_ref Self, constants.%Class [concrete = constants.%Class] @@ -95,35 +95,35 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: %self.loc21_34: %i32 = value_binding r#self, %self.param.loc21_34 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %self.param_patt.loc25_16: %pattern_type.415 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt.loc25_16: %pattern_type.415 = at_binding_pattern self, %self.param_patt.loc25_16 [concrete] -// CHECK:STDOUT: %self.param_patt.loc25_30: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt.loc25_30: %pattern_type.104 = at_binding_pattern r#self, %self.param_patt.loc25_30 [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7d6 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7d6 = return_slot_pattern %return.param_patt, %.loc25_49.2 [concrete] +// CHECK:STDOUT: %self.param_patt.loc25_16: %pattern_type.f15 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt.loc25_16: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.loc25_16 [concrete] +// CHECK:STDOUT: %self.param_patt.loc25_30: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt.loc25_30: %pattern_type.6b6 = at_binding_pattern r#self, %self.param_patt.loc25_30 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.394 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.394 = return_slot_pattern %return.param_patt, %.loc25_49.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc25_41: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc25_46: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc25_49.1: %tuple.type.24b = tuple_literal (%i32.loc25_41, %i32.loc25_46) [concrete = constants.%tuple.79d] -// CHECK:STDOUT: %.loc25_49.2: type = converted %.loc25_49.1, constants.%tuple.type.e5a [concrete = constants.%tuple.type.e5a] -// CHECK:STDOUT: %.loc25_49.3: Core.Form = init_form %.loc25_49.2 [concrete = constants.%.ac5] +// CHECK:STDOUT: %.loc25_49.1: %tuple.type.24b = tuple_literal (%i32.loc25_41, %i32.loc25_46) [concrete = constants.%tuple.b59] +// CHECK:STDOUT: %.loc25_49.2: type = converted %.loc25_49.1, constants.%tuple.type.e55 [concrete = constants.%tuple.type.e55] +// CHECK:STDOUT: %.loc25_49.3: Core.Form = init_form %.loc25_49.2 [concrete = constants.%.c11] // CHECK:STDOUT: %self.param.loc25_16: %Class = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc25: type = name_ref Self, constants.%Class [concrete = constants.%Class] // CHECK:STDOUT: %self.loc25_16: %Class = value_binding self, %self.param.loc25_16 // CHECK:STDOUT: %self.param.loc25_30: %i32 = value_param call_param1 // CHECK:STDOUT: %i32.loc25_32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %self.loc25_30: %i32 = value_binding r#self, %self.param.loc25_30 -// CHECK:STDOUT: %return.param.loc25: ref %tuple.type.e5a = out_param call_param2 -// CHECK:STDOUT: %return.loc25: ref %tuple.type.e5a = return_slot %return.param.loc25 +// CHECK:STDOUT: %return.param.loc25: ref %tuple.type.e55 = out_param call_param2 +// CHECK:STDOUT: %return.loc25: ref %tuple.type.e55 = return_slot %return.param.loc25 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.param_patt.loc21_20: %pattern_type.415 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt.loc21_20: %pattern_type.415 = at_binding_pattern self, %self.param_patt.loc21_20 [concrete] -// CHECK:STDOUT: %self.param_patt.loc21_34: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt.loc21_34: %pattern_type.104 = at_binding_pattern r#self, %self.param_patt.loc21_34 [concrete] +// CHECK:STDOUT: %self.param_patt.loc21_20: %pattern_type.f15 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt.loc21_20: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.loc21_20 [concrete] +// CHECK:STDOUT: %self.param_patt.loc21_34: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt.loc21_34: %pattern_type.6b6 = at_binding_pattern r#self, %self.param_patt.loc21_34 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param.loc16_16: ref %Class = ref_param call_param0 // CHECK:STDOUT: %Self.ref.loc16: type = name_ref Self, constants.%Class [concrete = constants.%Class] @@ -133,29 +133,29 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: %self.loc16_30: %i32 = value_binding r#self, %self.param.loc16_30 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %self.param_patt.loc25_16: %pattern_type.415 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt.loc25_16: %pattern_type.415 = at_binding_pattern self, %self.param_patt.loc25_16 [concrete] -// CHECK:STDOUT: %self.param_patt.loc25_30: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt.loc25_30: %pattern_type.104 = at_binding_pattern r#self, %self.param_patt.loc25_30 [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7d6 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7d6 = return_slot_pattern %return.param_patt, %.loc25_49.2 [concrete] +// CHECK:STDOUT: %self.param_patt.loc25_16: %pattern_type.f15 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt.loc25_16: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.loc25_16 [concrete] +// CHECK:STDOUT: %self.param_patt.loc25_30: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt.loc25_30: %pattern_type.6b6 = at_binding_pattern r#self, %self.param_patt.loc25_30 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.394 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.394 = return_slot_pattern %return.param_patt, %.loc25_49.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc17_37: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc17_42: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc17_45.1: %tuple.type.24b = tuple_literal (%i32.loc17_37, %i32.loc17_42) [concrete = constants.%tuple.79d] -// CHECK:STDOUT: %.loc17_45.2: type = converted %.loc17_45.1, constants.%tuple.type.e5a [concrete = constants.%tuple.type.e5a] -// CHECK:STDOUT: %.loc17_45.3: Core.Form = init_form %.loc17_45.2 [concrete = constants.%.ac5] +// CHECK:STDOUT: %.loc17_45.1: %tuple.type.24b = tuple_literal (%i32.loc17_37, %i32.loc17_42) [concrete = constants.%tuple.b59] +// CHECK:STDOUT: %.loc17_45.2: type = converted %.loc17_45.1, constants.%tuple.type.e55 [concrete = constants.%tuple.type.e55] +// CHECK:STDOUT: %.loc17_45.3: Core.Form = init_form %.loc17_45.2 [concrete = constants.%.c11] // CHECK:STDOUT: %self.param.loc17_12: %Class = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc17: type = name_ref Self, constants.%Class [concrete = constants.%Class] // CHECK:STDOUT: %self.loc17_12: %Class = value_binding self, %self.param.loc17_12 // CHECK:STDOUT: %self.param.loc17_26: %i32 = value_param call_param1 // CHECK:STDOUT: %i32.loc17_28: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %self.loc17_26: %i32 = value_binding r#self, %self.param.loc17_26 -// CHECK:STDOUT: %return.param.loc17: ref %tuple.type.e5a = out_param call_param2 -// CHECK:STDOUT: %return.loc17: ref %tuple.type.e5a = return_slot %return.param.loc17 +// CHECK:STDOUT: %return.param.loc17: ref %tuple.type.e55 = out_param call_param2 +// CHECK:STDOUT: %return.loc17: ref %tuple.type.e55 = return_slot %return.param.loc17 // CHECK:STDOUT: } // CHECK:STDOUT: %.loc18: %Class.elem = field_decl n, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.edf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.cdf] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -171,7 +171,7 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: %n.ref: %Class.elem = name_ref n, @Class.%.loc18 [concrete = @Class.%.loc18] // CHECK:STDOUT: %.loc22: ref %i32 = class_element_access %self.ref.loc22_3, element0 // CHECK:STDOUT: %self.ref.loc22_12: %i32 = name_ref r#self, %self.loc21_34 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc22_12.1: = bound_method %self.ref.loc22_12, %impl.elem0 // 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.loc22_12.2: = bound_method %self.ref.loc22_12, %specific_fn @@ -180,30 +180,30 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Class.G(%self.param.loc25_16: %Class, %self.param.loc25_30: %i32) -> out %return.param.loc25: %tuple.type.e5a { +// CHECK:STDOUT: fn @Class.G(%self.param.loc25_16: %Class, %self.param.loc25_30: %i32) -> out %return.param.loc25: %tuple.type.e55 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref.loc26_11: %Class = name_ref self, %self.loc25_16 // CHECK:STDOUT: %n.ref: %Class.elem = name_ref n, @Class.%.loc18 [concrete = @Class.%.loc18] // CHECK:STDOUT: %.loc26_15.1: ref %i32 = class_element_access %self.ref.loc26_11, element0 // CHECK:STDOUT: %.loc26_15.2: %i32 = acquire_value %.loc26_15.1 // CHECK:STDOUT: %self.ref.loc26_19: %i32 = name_ref r#self, %self.loc25_30 -// CHECK:STDOUT: %.loc26_25.1: %tuple.type.e5a = tuple_literal (%.loc26_15.2, %self.ref.loc26_19) -// CHECK:STDOUT: %impl.elem0.loc26_15: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %.loc26_25.1: %tuple.type.e55 = tuple_literal (%.loc26_15.2, %self.ref.loc26_19) +// CHECK:STDOUT: %impl.elem0.loc26_15: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc26_15.1: = bound_method %.loc26_15.2, %impl.elem0.loc26_15 // CHECK:STDOUT: %specific_fn.loc26_15: = specific_function %impl.elem0.loc26_15, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc26_15.2: = bound_method %.loc26_15.2, %specific_fn.loc26_15 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc26_15: init %i32 = call %bound_method.loc26_15.2(%.loc26_15.2) // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %return.param.loc25, element0 // CHECK:STDOUT: %.loc26_25.2: init %i32 to %tuple.elem0 = in_place_init %Int.as.Copy.impl.Op.call.loc26_15 -// CHECK:STDOUT: %impl.elem0.loc26_19: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc26_19: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc26_19.1: = bound_method %self.ref.loc26_19, %impl.elem0.loc26_19 // CHECK:STDOUT: %specific_fn.loc26_19: = specific_function %impl.elem0.loc26_19, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc26_19.2: = bound_method %self.ref.loc26_19, %specific_fn.loc26_19 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc26_19: init %i32 = call %bound_method.loc26_19.2(%self.ref.loc26_19) // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access %return.param.loc25, element1 // CHECK:STDOUT: %.loc26_25.3: init %i32 to %tuple.elem1 = in_place_init %Int.as.Copy.impl.Op.call.loc26_19 -// CHECK:STDOUT: %.loc26_25.4: init %tuple.type.e5a to %return.param.loc25 = tuple_init (%.loc26_25.2, %.loc26_25.3) -// CHECK:STDOUT: %.loc26_26: init %tuple.type.e5a = converted %.loc26_25.1, %.loc26_25.4 +// CHECK:STDOUT: %.loc26_25.4: init %tuple.type.e55 to %return.param.loc25 = tuple_init (%.loc26_25.2, %.loc26_25.3) +// CHECK:STDOUT: %.loc26_26: init %tuple.type.e55 = converted %.loc26_25.1, %.loc26_25.4 // CHECK:STDOUT: return %.loc26_26 to %return.param.loc25 // CHECK:STDOUT: } // 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 c769d01aa00b..de8a6b5851f7 100644 --- a/toolchain/check/testdata/class/self/raw_self_type.carbon +++ b/toolchain/check/testdata/class/self/raw_self_type.carbon @@ -36,34 +36,34 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {} // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %ptr.e55: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %pattern_type.732: type = pattern_type %ptr.e55 [concrete] +// CHECK:STDOUT: %ptr.7ee: type = ptr_type %Class [concrete] +// CHECK:STDOUT: %pattern_type.8c5: type = pattern_type %ptr.7ee [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.976: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%ptr.e55) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.80f: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%ptr.e55) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.238: %T.as.DefaultOrUnformed.impl.Op.type.80f = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr.e55, (%DefaultOrUnformed.impl_witness.976) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.238, @T.as.DefaultOrUnformed.impl.Op(%ptr.e55) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.a7b: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%ptr.7ee) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.4ec: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%ptr.7ee) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.aa5: %T.as.DefaultOrUnformed.impl.Op.type.4ec = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr.7ee, (%DefaultOrUnformed.impl_witness.a7b) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.aa5, @T.as.DefaultOrUnformed.impl.Op(%ptr.7ee) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.f8f: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%Class) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.4ac: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Class) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.b07: %ptr.as.Copy.impl.Op.type.4ac = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e55, (%Copy.impl_witness.f8f) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7db: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.044: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7db, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.b07, @ptr.as.Copy.impl.Op(%Class) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.fa4: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%Class) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.6c2: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Class) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.8fa: %ptr.as.Copy.impl.Op.type.6c2 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.7ee, (%Copy.impl_witness.fa4) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8bf: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.4c3: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8bf, %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: %MemberNamedSelf: type = class_type @MemberNamedSelf [concrete] -// CHECK:STDOUT: %Self.65a: type = class_type @Self [concrete] -// CHECK:STDOUT: %pattern_type.6db: type = pattern_type %MemberNamedSelf [concrete] -// CHECK:STDOUT: %pattern_type.bd9: type = pattern_type %Self.65a [concrete] +// CHECK:STDOUT: %Self.7fc: type = class_type @Self [concrete] +// CHECK:STDOUT: %pattern_type.bb1: type = pattern_type %MemberNamedSelf [concrete] +// CHECK:STDOUT: %pattern_type.917: type = pattern_type %Self.7fc [concrete] // CHECK:STDOUT: %MemberNamedSelf.F.type: type = fn_type @MemberNamedSelf.F [concrete] // CHECK:STDOUT: %MemberNamedSelf.F: %MemberNamedSelf.F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -77,11 +77,11 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {} // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -95,17 +95,17 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {} // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %MemberNamedSelf.decl: type = class_decl @MemberNamedSelf [concrete = constants.%MemberNamedSelf] {} {} // CHECK:STDOUT: %MemberNamedSelf.F.decl: %MemberNamedSelf.F.type = fn_decl @MemberNamedSelf.F [concrete = constants.%MemberNamedSelf.F] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.6db = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.6db = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %y.param_patt: %pattern_type.bd9 = value_param_pattern [concrete] -// CHECK:STDOUT: %y.patt: %pattern_type.bd9 = at_binding_pattern y, %y.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.bb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.bb1 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %y.param_patt: %pattern_type.917 = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.917 = at_binding_pattern y, %y.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param.loc28: %MemberNamedSelf = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc28_32: type = name_ref Self, constants.%MemberNamedSelf [concrete = constants.%MemberNamedSelf] // CHECK:STDOUT: %x.loc28: %MemberNamedSelf = value_binding x, %x.param.loc28 -// CHECK:STDOUT: %y.param.loc28: %Self.65a = value_param call_param1 -// CHECK:STDOUT: %Self.ref.loc28_48: type = name_ref r#Self, @MemberNamedSelf.%Self.decl [concrete = constants.%Self.65a] -// CHECK:STDOUT: %y.loc28: %Self.65a = value_binding y, %y.param.loc28 +// CHECK:STDOUT: %y.param.loc28: %Self.7fc = value_param call_param1 +// CHECK:STDOUT: %Self.ref.loc28_48: type = name_ref r#Self, @MemberNamedSelf.%Self.decl [concrete = constants.%Self.7fc] +// CHECK:STDOUT: %y.loc28: %Self.7fc = value_binding y, %y.param.loc28 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -120,19 +120,19 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @MemberNamedSelf { -// CHECK:STDOUT: %Self.decl: type = class_decl @Self [concrete = constants.%Self.65a] {} {} +// CHECK:STDOUT: %Self.decl: type = class_decl @Self [concrete = constants.%Self.7fc] {} {} // CHECK:STDOUT: %MemberNamedSelf.F.decl: %MemberNamedSelf.F.type = fn_decl @MemberNamedSelf.F [concrete = constants.%MemberNamedSelf.F] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.6db = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.6db = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %y.param_patt: %pattern_type.bd9 = value_param_pattern [concrete] -// CHECK:STDOUT: %y.patt: %pattern_type.bd9 = at_binding_pattern y, %y.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.bb1 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.bb1 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %y.param_patt: %pattern_type.917 = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.917 = at_binding_pattern y, %y.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param.loc25: %MemberNamedSelf = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc25_11: type = name_ref Self, constants.%MemberNamedSelf [concrete = constants.%MemberNamedSelf] // CHECK:STDOUT: %x.loc25: %MemberNamedSelf = value_binding x, %x.param.loc25 -// CHECK:STDOUT: %y.param.loc25: %Self.65a = value_param call_param1 -// CHECK:STDOUT: %Self.ref.loc25_20: type = name_ref r#Self, @MemberNamedSelf.%Self.decl [concrete = constants.%Self.65a] -// CHECK:STDOUT: %y.loc25: %Self.65a = value_binding y, %y.param.loc25 +// CHECK:STDOUT: %y.param.loc25: %Self.7fc = value_param call_param1 +// CHECK:STDOUT: %Self.ref.loc25_20: type = name_ref r#Self, @MemberNamedSelf.%Self.decl [concrete = constants.%Self.7fc] +// CHECK:STDOUT: %y.loc25: %Self.7fc = value_binding y, %y.param.loc25 // CHECK:STDOUT: } // CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type.357] // CHECK:STDOUT: complete_type_witness = %complete_type @@ -148,46 +148,46 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Self.65a +// CHECK:STDOUT: .Self = constants.%Self.7fc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Class.F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %Self.patt: %pattern_type.732 = ref_binding_pattern r#Self [concrete] -// CHECK:STDOUT: %Self.var_patt: %pattern_type.732 = var_pattern %Self.patt [concrete] +// CHECK:STDOUT: %Self.patt: %pattern_type.8c5 = ref_binding_pattern r#Self [concrete] +// CHECK:STDOUT: %Self.var_patt: %pattern_type.8c5 = var_pattern %Self.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %Self.var: ref %ptr.e55 = var %Self.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%ptr.e55, (constants.%DefaultOrUnformed.impl_witness.976) [concrete = constants.%DefaultOrUnformed.facet] -// CHECK:STDOUT: %.loc17_22.1: %DefaultOrUnformed.type = converted constants.%ptr.e55, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] -// CHECK:STDOUT: %as_type: type = facet_access_type %.loc17_22.1 [concrete = constants.%ptr.e55] -// CHECK:STDOUT: %.loc17_22.2: type = converted %.loc17_22.1, %as_type [concrete = constants.%ptr.e55] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.238, @T.as.DefaultOrUnformed.impl.Op(constants.%ptr.e55) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %ptr.e55 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: %Self.var: ref %ptr.7ee = var %Self.var_patt +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%ptr.7ee, (constants.%DefaultOrUnformed.impl_witness.a7b) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %.loc17_22.1: %DefaultOrUnformed.type = converted constants.%ptr.7ee, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %as_type: type = facet_access_type %.loc17_22.1 [concrete = constants.%ptr.7ee] +// CHECK:STDOUT: %.loc17_22.2: type = converted %.loc17_22.1, %as_type [concrete = constants.%ptr.7ee] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.aa5, @T.as.DefaultOrUnformed.impl.Op(constants.%ptr.7ee) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %ptr.7ee = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign %Self.var, %T.as.DefaultOrUnformed.impl.Op.call -// CHECK:STDOUT: %.loc17_21: type = splice_block %ptr.loc17 [concrete = constants.%ptr.e55] { +// CHECK:STDOUT: %.loc17_21: type = splice_block %ptr.loc17 [concrete = constants.%ptr.7ee] { // CHECK:STDOUT: %Self.ref.loc17: type = name_ref Self, constants.%Class [concrete = constants.%Class] -// CHECK:STDOUT: %ptr.loc17: type = ptr_type %Self.ref.loc17 [concrete = constants.%ptr.e55] +// CHECK:STDOUT: %ptr.loc17: type = ptr_type %Self.ref.loc17 [concrete = constants.%ptr.7ee] // CHECK:STDOUT: } -// CHECK:STDOUT: %Self: ref %ptr.e55 = ref_binding r#Self, %Self.var +// CHECK:STDOUT: %Self: ref %ptr.7ee = ref_binding r#Self, %Self.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.732 = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.732 = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.8c5 = var_pattern %p.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %p.var: ref %ptr.e55 = var %p.var_patt -// CHECK:STDOUT: %Self.ref.loc18_27: ref %ptr.e55 = name_ref r#Self, %Self -// CHECK:STDOUT: %.loc18_27: %ptr.e55 = acquire_value %Self.ref.loc18_27 -// CHECK:STDOUT: %impl.elem0: %.044 = impl_witness_access constants.%Copy.impl_witness.f8f, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b07] +// CHECK:STDOUT: %p.var: ref %ptr.7ee = var %p.var_patt +// CHECK:STDOUT: %Self.ref.loc18_27: ref %ptr.7ee = name_ref r#Self, %Self +// CHECK:STDOUT: %.loc18_27: %ptr.7ee = acquire_value %Self.ref.loc18_27 +// CHECK:STDOUT: %impl.elem0: %.4c3 = impl_witness_access constants.%Copy.impl_witness.fa4, element0 [concrete = constants.%ptr.as.Copy.impl.Op.8fa] // CHECK:STDOUT: %bound_method.loc18_27.1: = bound_method %.loc18_27, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%Class) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc18_27.2: = bound_method %.loc18_27, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.e55 = call %bound_method.loc18_27.2(%.loc18_27) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.7ee = call %bound_method.loc18_27.2(%.loc18_27) // CHECK:STDOUT: assign %p.var, %ptr.as.Copy.impl.Op.call -// CHECK:STDOUT: %.loc18_23: type = splice_block %ptr.loc18 [concrete = constants.%ptr.e55] { +// CHECK:STDOUT: %.loc18_23: type = splice_block %ptr.loc18 [concrete = constants.%ptr.7ee] { // CHECK:STDOUT: %Self.ref.loc18_19: type = name_ref Self, constants.%Class [concrete = constants.%Class] -// CHECK:STDOUT: %ptr.loc18: type = ptr_type %Self.ref.loc18_19 [concrete = constants.%ptr.e55] +// CHECK:STDOUT: %ptr.loc18: type = ptr_type %Self.ref.loc18_19 [concrete = constants.%ptr.7ee] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: ref %ptr.e55 = ref_binding p, %p.var +// CHECK:STDOUT: %p: ref %ptr.7ee = ref_binding p, %p.var // 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 @@ -195,9 +195,9 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {} // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr.e55) = "no_op"; +// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr.7ee) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @MemberNamedSelf.F(%x.param.loc28: %MemberNamedSelf, %y.param.loc28: %Self.65a) { +// CHECK:STDOUT: fn @MemberNamedSelf.F(%x.param.loc28: %MemberNamedSelf, %y.param.loc28: %Self.7fc) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/self/self.carbon b/toolchain/check/testdata/class/self/self.carbon index 497b5b9fbb33..a1c8f8f6a52b 100644 --- a/toolchain/check/testdata/class/self/self.carbon +++ b/toolchain/check/testdata/class/self/self.carbon @@ -50,31 +50,31 @@ class Class { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Class: type = class_type @Class [concrete] -// CHECK:STDOUT: %pattern_type.415: type = pattern_type %Class [concrete] +// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [concrete] // CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G [concrete] // CHECK:STDOUT: %Class.G: %Class.G.type = struct_value () [concrete] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [concrete] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [concrete] -// CHECK:STDOUT: %complete_type.edf: = complete_type_witness %struct_type.n [concrete] +// CHECK:STDOUT: %complete_type.cdf: = complete_type_witness %struct_type.n [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -86,8 +86,8 @@ class Class { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -98,13 +98,13 @@ class Class { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.415 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.415 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc11 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc11 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc11: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc11: Core.Form = init_form %i32.loc11 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc11: Core.Form = init_form %i32.loc11 [concrete = constants.%.795] // CHECK:STDOUT: %self.param.loc11: %Class = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc11: type = name_ref Self, constants.%Class [concrete = constants.%Class] // CHECK:STDOUT: %self.loc11: %Class = value_binding self, %self.param.loc11 @@ -112,13 +112,13 @@ class Class { // CHECK:STDOUT: %return.loc11: ref %i32 = return_slot %return.param.loc11 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.415 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.415 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.795] // CHECK:STDOUT: %self.param.loc15: ref %Class = ref_param call_param0 // CHECK:STDOUT: %Self.ref.loc15: type = name_ref Self, constants.%Class [concrete = constants.%Class] // CHECK:STDOUT: %self.loc15: ref %Class = ref_binding self, %self.param.loc15 @@ -129,13 +129,13 @@ class Class { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.415 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.415 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc11 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc11 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5 [concrete = constants.%.795] // CHECK:STDOUT: %self.param.loc5: %Class = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc5: type = name_ref Self, constants.%Class [concrete = constants.%Class] // CHECK:STDOUT: %self.loc5: %Class = value_binding self, %self.param.loc5 @@ -143,13 +143,13 @@ class Class { // CHECK:STDOUT: %return.loc5: ref %i32 = return_slot %return.param.loc5 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.415 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.415 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc6: Core.Form = init_form %i32.loc6 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc6: Core.Form = init_form %i32.loc6 [concrete = constants.%.795] // CHECK:STDOUT: %self.param.loc6: ref %Class = ref_param call_param0 // CHECK:STDOUT: %Self.ref.loc6: type = name_ref Self, constants.%Class [concrete = constants.%Class] // CHECK:STDOUT: %self.loc6: ref %Class = ref_binding self, %self.param.loc6 @@ -157,7 +157,7 @@ class Class { // CHECK:STDOUT: %return.loc6: ref %i32 = return_slot %return.param.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %.loc8: %Class.elem = field_decl n, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.edf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.cdf] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -173,7 +173,7 @@ class Class { // CHECK:STDOUT: %n.ref: %Class.elem = name_ref n, @Class.%.loc8 [concrete = @Class.%.loc8] // CHECK:STDOUT: %.loc12_14.1: ref %i32 = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc12_14.2: %i32 = acquire_value %.loc12_14.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc12_14.1: = bound_method %.loc12_14.2, %impl.elem0 // 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_14.2: = bound_method %.loc12_14.2, %specific_fn @@ -187,7 +187,7 @@ class Class { // CHECK:STDOUT: %n.ref: %Class.elem = name_ref n, @Class.%.loc8 [concrete = @Class.%.loc8] // CHECK:STDOUT: %.loc16_14.1: ref %i32 = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc16_14.2: %i32 = acquire_value %.loc16_14.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc16_14.1: = bound_method %.loc16_14.2, %impl.elem0 // 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.loc16_14.2: = bound_method %.loc16_14.2, %specific_fn @@ -199,9 +199,9 @@ class Class { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Class: type = class_type @Class [concrete] -// CHECK:STDOUT: %pattern_type.415: type = pattern_type %Class [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] @@ -214,7 +214,7 @@ class Class { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -228,8 +228,8 @@ class Class { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.415 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.415 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.patt: = return_slot_pattern , [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.ref: %Class = name_ref self, %self diff --git a/toolchain/check/testdata/class/self/self_type.carbon b/toolchain/check/testdata/class/self/self_type.carbon index ec4187801553..3ded57394000 100644 --- a/toolchain/check/testdata/class/self/self_type.carbon +++ b/toolchain/check/testdata/class/self/self_type.carbon @@ -30,41 +30,41 @@ fn Class.F[self: Self]() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Class: type = class_type @Class [concrete] -// CHECK:STDOUT: %pattern_type.415: type = pattern_type %Class [concrete] +// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [concrete] -// CHECK:STDOUT: %.14f: Core.Form = init_form %Class [concrete] +// CHECK:STDOUT: %.d76: Core.Form = init_form %Class [concrete] // CHECK:STDOUT: %Class.Make.type: type = fn_type @Class.Make [concrete] // CHECK:STDOUT: %Class.Make: %Class.Make.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.e55: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %ptr.e55 [concrete] -// CHECK:STDOUT: %struct_type.p: type = struct_type {.p: %ptr.e55} [concrete] -// CHECK:STDOUT: %complete_type.fc8: = complete_type_witness %struct_type.p [concrete] +// CHECK:STDOUT: %ptr.7ee: type = ptr_type %Class [concrete] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %ptr.7ee [concrete] +// CHECK:STDOUT: %struct_type.p: type = struct_type {.p: %ptr.7ee} [concrete] +// CHECK:STDOUT: %complete_type.126: = complete_type_witness %struct_type.p [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.410: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%Class) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.f58: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Class) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.795: %T.as.DefaultOrUnformed.impl.Op.type.f58 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Class, (%DefaultOrUnformed.impl_witness.410) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.795, @T.as.DefaultOrUnformed.impl.Op(%Class) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.4e8: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%Class) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.cac: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Class) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.de4: %T.as.DefaultOrUnformed.impl.Op.type.cac = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Class, (%DefaultOrUnformed.impl_witness.4e8) [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: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.f8f: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%Class) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.4ac: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Class) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.b07: %ptr.as.Copy.impl.Op.type.4ac = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e55, (%Copy.impl_witness.f8f) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7db: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.044: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7db, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.b07, @ptr.as.Copy.impl.Op(%Class) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.fa4: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%Class) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.6c2: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Class) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.8fa: %ptr.as.Copy.impl.Op.type.6c2 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.7ee, (%Copy.impl_witness.fa4) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8bf: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.4c3: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8bf, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -77,11 +77,11 @@ fn Class.F[self: Self]() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -92,13 +92,13 @@ fn Class.F[self: Self]() -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.415 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.415 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc25 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc25: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32.loc25 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32.loc25 [concrete = constants.%.795] // CHECK:STDOUT: %self.param.loc25: %Class = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc25: type = name_ref Self, constants.%Class [concrete = constants.%Class] // CHECK:STDOUT: %self.loc25: %Class = value_binding self, %self.param.loc25 @@ -109,13 +109,13 @@ fn Class.F[self: Self]() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: class @Class { // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.415 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.415 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc25 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32.loc16 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc16: Core.Form = init_form %i32.loc16 [concrete = constants.%.795] // CHECK:STDOUT: %self.param.loc16: %Class = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc16: type = name_ref Self, constants.%Class [concrete = constants.%Class] // CHECK:STDOUT: %self.loc16: %Class = value_binding self, %self.param.loc16 @@ -123,16 +123,16 @@ fn Class.F[self: Self]() -> i32 { // CHECK:STDOUT: %return.loc16: ref %i32 = return_slot %return.param.loc16 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.Make.decl: %Class.Make.type = fn_decl @Class.Make [concrete = constants.%Class.Make] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.415 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.415 = return_slot_pattern %return.param_patt, %Self.ref.loc17 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f15 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f15 = return_slot_pattern %return.param_patt, %Self.ref.loc17 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc17: type = name_ref Self, constants.%Class [concrete = constants.%Class] -// CHECK:STDOUT: %.loc17_16.2: Core.Form = init_form %Self.ref.loc17 [concrete = constants.%.14f] +// CHECK:STDOUT: %.loc17_16.2: Core.Form = init_form %Self.ref.loc17 [concrete = constants.%.d76] // CHECK:STDOUT: %return.param: ref %Class = out_param call_param0 // CHECK:STDOUT: %return: ref %Class = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %.loc22: %Class.elem = field_decl p, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.p [concrete = constants.%complete_type.fc8] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.p [concrete = constants.%complete_type.126] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -146,8 +146,8 @@ fn Class.F[self: Self]() -> i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: %Class = name_ref self, %self.loc25 // CHECK:STDOUT: %p.ref: %Class.elem = name_ref p, @Class.%.loc22 [concrete = @Class.%.loc22] -// CHECK:STDOUT: %.loc26_16.1: ref %ptr.e55 = class_element_access %self.ref, element0 -// CHECK:STDOUT: %.loc26_16.2: %ptr.e55 = acquire_value %.loc26_16.1 +// CHECK:STDOUT: %.loc26_16.1: ref %ptr.7ee = class_element_access %self.ref, element0 +// CHECK:STDOUT: %.loc26_16.2: %ptr.7ee = acquire_value %.loc26_16.1 // CHECK:STDOUT: %.loc26_11.1: ref %Class = deref %.loc26_16.2 // CHECK:STDOUT: %F.ref: %Class.F.type = name_ref F, @Class.%Class.F.decl [concrete = constants.%Class.F] // CHECK:STDOUT: %Class.F.bound: = bound_method %.loc26_11.1, %F.ref @@ -159,14 +159,14 @@ fn Class.F[self: Self]() -> i32 { // CHECK:STDOUT: fn @Class.Make() -> out %return.param: %Class { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.415 = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.415 = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.f15 = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.f15 = var_pattern %s.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Class, (constants.%DefaultOrUnformed.impl_witness.410) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Class, (constants.%DefaultOrUnformed.impl_witness.4e8) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc18_25.1: %DefaultOrUnformed.type = converted constants.%Class, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc18_25.1 [concrete = constants.%Class] // CHECK:STDOUT: %.loc18_25.2: type = converted %.loc18_25.1, %as_type [concrete = constants.%Class] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.795, @T.as.DefaultOrUnformed.impl.Op(constants.%Class) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.de4, @T.as.DefaultOrUnformed.impl.Op(constants.%Class) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %.loc17_16.1: ref %Class = splice_block %return.param {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %Class to %.loc17_16.1 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign %return.param, %T.as.DefaultOrUnformed.impl.Op.call @@ -174,15 +174,15 @@ fn Class.F[self: Self]() -> i32 { // CHECK:STDOUT: %s: ref %Class = ref_binding s, %return.param // CHECK:STDOUT: %s.ref.loc19_5: ref %Class = name_ref s, %s // CHECK:STDOUT: %s.ref.loc19_16: ref %Class = name_ref s, %s -// CHECK:STDOUT: %addr: %ptr.e55 = addr_of %s.ref.loc19_16 +// CHECK:STDOUT: %addr: %ptr.7ee = addr_of %s.ref.loc19_16 // CHECK:STDOUT: %.loc19_17.1: %struct_type.p = struct_literal (%addr) -// CHECK:STDOUT: %impl.elem0: %.044 = impl_witness_access constants.%Copy.impl_witness.f8f, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b07] +// CHECK:STDOUT: %impl.elem0: %.4c3 = impl_witness_access constants.%Copy.impl_witness.fa4, element0 [concrete = constants.%ptr.as.Copy.impl.Op.8fa] // CHECK:STDOUT: %bound_method.loc19_15.1: = bound_method %addr, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%Class) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc19_15.2: = bound_method %addr, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.e55 = call %bound_method.loc19_15.2(%addr) -// CHECK:STDOUT: %.loc19_17.2: ref %ptr.e55 = class_element_access %s.ref.loc19_5, element0 -// CHECK:STDOUT: %.loc19_17.3: init %ptr.e55 to %.loc19_17.2 = in_place_init %ptr.as.Copy.impl.Op.call +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.7ee = call %bound_method.loc19_15.2(%addr) +// CHECK:STDOUT: %.loc19_17.2: ref %ptr.7ee = class_element_access %s.ref.loc19_5, element0 +// CHECK:STDOUT: %.loc19_17.3: init %ptr.7ee to %.loc19_17.2 = in_place_init %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: %.loc19_17.4: init %Class to %s.ref.loc19_5 = class_init (%.loc19_17.3) // CHECK:STDOUT: %.loc19_7: init %Class = converted %.loc19_17.1, %.loc19_17.4 // CHECK:STDOUT: assign %s.ref.loc19_5, %.loc19_7 diff --git a/toolchain/check/testdata/class/syntactic_merge.carbon b/toolchain/check/testdata/class/syntactic_merge.carbon index 1d0b26342d69..c29db1822fd9 100644 --- a/toolchain/check/testdata/class/syntactic_merge.carbon +++ b/toolchain/check/testdata/class/syntactic_merge.carbon @@ -378,11 +378,11 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.8322fe.1: type = generic_class_type @Foo.loc6 [concrete] -// CHECK:STDOUT: %Foo.generic.76fafe.1: %Foo.type.8322fe.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.8322fe.2: type = generic_class_type @Foo.loc14 [concrete] -// CHECK:STDOUT: %Foo.generic.76fafe.2: %Foo.type.8322fe.2 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.65bec3.2: type = class_type @Foo.loc14, @Foo.loc14(%a) [symbolic] +// CHECK:STDOUT: %Foo.type.3e04c8.1: type = generic_class_type @Foo.loc6 [concrete] +// CHECK:STDOUT: %Foo.generic.04949d.1: %Foo.type.3e04c8.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.3e04c8.2: type = generic_class_type @Foo.loc14 [concrete] +// CHECK:STDOUT: %Foo.generic.04949d.2: %Foo.type.3e04c8.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.2fb251.2: type = class_type @Foo.loc14, @Foo.loc14(%a) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -391,7 +391,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: .Foo = %Foo.decl.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.8322fe.1 = class_decl @Foo.loc6 [concrete = constants.%Foo.generic.76fafe.1] { +// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.3e04c8.1 = class_decl @Foo.loc6 [concrete = constants.%Foo.generic.04949d.1] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6: type = splice_block %C.ref [concrete = constants.%C] { @@ -400,7 +400,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc6_12.2: %C = symbolic_binding a, 0 [symbolic = %a.loc6_12.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.8322fe.2 = class_decl @Foo.loc14 [concrete = constants.%Foo.generic.76fafe.2] { +// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.3e04c8.2 = class_decl @Foo.loc14 [concrete = constants.%Foo.generic.04949d.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14: type = splice_block %C.ref [concrete = constants.%C] { @@ -435,7 +435,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Foo.65bec3.2 +// CHECK:STDOUT: .Self = constants.%Foo.2fb251.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -457,11 +457,11 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.8322fe.1: type = generic_class_type @Foo.loc6 [concrete] -// CHECK:STDOUT: %Foo.generic.76fafe.1: %Foo.type.8322fe.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.8322fe.2: type = generic_class_type @Foo.loc14 [concrete] -// CHECK:STDOUT: %Foo.generic.76fafe.2: %Foo.type.8322fe.2 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.65bec3.2: type = class_type @Foo.loc14, @Foo.loc14(%a) [symbolic] +// CHECK:STDOUT: %Foo.type.3e04c8.1: type = generic_class_type @Foo.loc6 [concrete] +// CHECK:STDOUT: %Foo.generic.04949d.1: %Foo.type.3e04c8.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.3e04c8.2: type = generic_class_type @Foo.loc14 [concrete] +// CHECK:STDOUT: %Foo.generic.04949d.2: %Foo.type.3e04c8.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.2fb251.2: type = class_type @Foo.loc14, @Foo.loc14(%a) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -470,7 +470,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: .Foo = %Foo.decl.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.8322fe.1 = class_decl @Foo.loc6 [concrete = constants.%Foo.generic.76fafe.1] { +// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.3e04c8.1 = class_decl @Foo.loc6 [concrete = constants.%Foo.generic.04949d.1] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6: type = splice_block %C.ref [concrete = constants.%C] { @@ -479,7 +479,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc6_12.2: %C = symbolic_binding a, 0 [symbolic = %a.loc6_12.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.8322fe.2 = class_decl @Foo.loc14 [concrete = constants.%Foo.generic.76fafe.2] { +// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.3e04c8.2 = class_decl @Foo.loc14 [concrete = constants.%Foo.generic.04949d.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14: type = splice_block %C.ref [concrete = constants.%C] { @@ -514,7 +514,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Foo.65bec3.2 +// CHECK:STDOUT: .Self = constants.%Foo.2fb251.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -622,9 +622,9 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: %Main.C: type = import_ref Main//two_file, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.D: type = import_ref Main//two_file, D, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//two_file, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//two_file, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.068985.1: %C = import_ref Main//two_file, loc7_12, loaded [symbolic = @Foo.%a.1 (constants.%a)] -// CHECK:STDOUT: %Main.import_ref.068985.2: %C = import_ref Main//two_file, loc8_12, loaded [symbolic = @Bar.%a.1 (constants.%a)] +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//two_file, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.99696d.1: %C = import_ref Main//two_file, loc7_12, loaded [symbolic = @Foo.%a.1 (constants.%a)] +// CHECK:STDOUT: %Main.import_ref.99696d.2: %C = import_ref Main//two_file, loc8_12, loaded [symbolic = @Bar.%a.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -660,10 +660,10 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(imports.%Main.import_ref.068985.1: %C) { +// CHECK:STDOUT: generic class @Foo(imports.%Main.import_ref.99696d.1: %C) { // CHECK:STDOUT: %a.1: %C = symbolic_binding a, 0 [symbolic = %a.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -677,7 +677,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Bar(imports.%Main.import_ref.068985.2: %C) { +// CHECK:STDOUT: generic class @Bar(imports.%Main.import_ref.99696d.2: %C) { // CHECK:STDOUT: %a.1: %C = symbolic_binding a, 0 [symbolic = %a.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -709,12 +709,12 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.8322fe.1: type = generic_class_type @Foo.loc7 [concrete] -// CHECK:STDOUT: %Foo.generic.76fafe.1: %Foo.type.8322fe.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.3e04c8.1: type = generic_class_type @Foo.loc7 [concrete] +// CHECK:STDOUT: %Foo.generic.04949d.1: %Foo.type.3e04c8.1 = struct_value () [concrete] // CHECK:STDOUT: %b: %C = symbolic_binding b, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.8322fe.2: type = generic_class_type @Foo.loc15 [concrete] -// CHECK:STDOUT: %Foo.generic.76fafe.2: %Foo.type.8322fe.2 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.65bec3.2: type = class_type @Foo.loc15, @Foo.loc15(%b) [symbolic] +// CHECK:STDOUT: %Foo.type.3e04c8.2: type = generic_class_type @Foo.loc15 [concrete] +// CHECK:STDOUT: %Foo.generic.04949d.2: %Foo.type.3e04c8.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.2fb251.2: type = class_type @Foo.loc15, @Foo.loc15(%b) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -726,7 +726,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.ref [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.8322fe.1 = class_decl @Foo.loc7 [concrete = constants.%Foo.generic.76fafe.1] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.3e04c8.1 = class_decl @Foo.loc7 [concrete = constants.%Foo.generic.04949d.1] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7: type = splice_block %C.ref [concrete = constants.%C] { @@ -735,7 +735,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc7_12.2: %C = symbolic_binding a, 0 [symbolic = %a.loc7_12.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.8322fe.2 = class_decl @Foo.loc15 [concrete = constants.%Foo.generic.76fafe.2] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.3e04c8.2 = class_decl @Foo.loc15 [concrete = constants.%Foo.generic.04949d.2] { // CHECK:STDOUT: %b.patt: %pattern_type = symbolic_binding_pattern b, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15: type = splice_block %D.ref [concrete = constants.%C] { @@ -770,7 +770,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Foo.65bec3.2 +// CHECK:STDOUT: .Self = constants.%Foo.2fb251.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -792,11 +792,11 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.8322fe.1: type = generic_class_type @Foo.loc7 [concrete] -// CHECK:STDOUT: %Foo.generic.76fafe.1: %Foo.type.8322fe.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.8322fe.2: type = generic_class_type @Foo.loc15 [concrete] -// CHECK:STDOUT: %Foo.generic.76fafe.2: %Foo.type.8322fe.2 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.65bec3.2: type = class_type @Foo.loc15, @Foo.loc15(%a) [symbolic] +// CHECK:STDOUT: %Foo.type.3e04c8.1: type = generic_class_type @Foo.loc7 [concrete] +// CHECK:STDOUT: %Foo.generic.04949d.1: %Foo.type.3e04c8.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.3e04c8.2: type = generic_class_type @Foo.loc15 [concrete] +// CHECK:STDOUT: %Foo.generic.04949d.2: %Foo.type.3e04c8.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.2fb251.2: type = class_type @Foo.loc15, @Foo.loc15(%a) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -808,7 +808,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.ref [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.8322fe.1 = class_decl @Foo.loc7 [concrete = constants.%Foo.generic.76fafe.1] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.3e04c8.1 = class_decl @Foo.loc7 [concrete = constants.%Foo.generic.04949d.1] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7: type = splice_block %C.ref [concrete = constants.%C] { @@ -817,7 +817,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc7_12.2: %C = symbolic_binding a, 0 [symbolic = %a.loc7_12.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.8322fe.2 = class_decl @Foo.loc15 [concrete = constants.%Foo.generic.76fafe.2] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.3e04c8.2 = class_decl @Foo.loc15 [concrete = constants.%Foo.generic.04949d.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15: type = splice_block %D.ref [concrete = constants.%C] { @@ -852,7 +852,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Foo.65bec3.2 +// CHECK:STDOUT: .Self = constants.%Foo.2fb251.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -874,11 +874,11 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.8322fe.1: type = generic_class_type @Foo.loc7 [concrete] -// CHECK:STDOUT: %Foo.generic.76fafe.1: %Foo.type.8322fe.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.8322fe.2: type = generic_class_type @Foo.loc15 [concrete] -// CHECK:STDOUT: %Foo.generic.76fafe.2: %Foo.type.8322fe.2 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.65bec3.2: type = class_type @Foo.loc15, @Foo.loc15(%a) [symbolic] +// CHECK:STDOUT: %Foo.type.3e04c8.1: type = generic_class_type @Foo.loc7 [concrete] +// CHECK:STDOUT: %Foo.generic.04949d.1: %Foo.type.3e04c8.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.3e04c8.2: type = generic_class_type @Foo.loc15 [concrete] +// CHECK:STDOUT: %Foo.generic.04949d.2: %Foo.type.3e04c8.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.2fb251.2: type = class_type @Foo.loc15, @Foo.loc15(%a) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -890,7 +890,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.ref [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.8322fe.1 = class_decl @Foo.loc7 [concrete = constants.%Foo.generic.76fafe.1] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.3e04c8.1 = class_decl @Foo.loc7 [concrete = constants.%Foo.generic.04949d.1] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7: type = splice_block %C.ref [concrete = constants.%C] { @@ -899,7 +899,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc7_12.2: %C = symbolic_binding a, 0 [symbolic = %a.loc7_12.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.8322fe.2 = class_decl @Foo.loc15 [concrete = constants.%Foo.generic.76fafe.2] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.3e04c8.2 = class_decl @Foo.loc15 [concrete = constants.%Foo.generic.04949d.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15: type = splice_block %D.ref [concrete = constants.%C] { @@ -934,7 +934,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Foo.65bec3.2 +// CHECK:STDOUT: .Self = constants.%Foo.2fb251.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1013,8 +1013,8 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//alias_two_file, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//alias_two_file, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//alias_two_file, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.068: %C = import_ref Main//alias_two_file, loc6_12, loaded [symbolic = @Foo.%a.1 (constants.%a)] +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//alias_two_file, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.996: %C = import_ref Main//alias_two_file, loc6_12, loaded [symbolic = @Foo.%a.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1042,10 +1042,10 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(imports.%Main.import_ref.068: %C) { +// CHECK:STDOUT: generic class @Foo(imports.%Main.import_ref.996: %C) { // CHECK:STDOUT: %a.1: %C = symbolic_binding a, 0 [symbolic = %a.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -1074,11 +1074,11 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: %const: type = const_type %C [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %const [concrete] // CHECK:STDOUT: %a: %const = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.8322fe.1: type = generic_class_type @Foo.loc6 [concrete] -// CHECK:STDOUT: %Foo.generic.76fafe.1: %Foo.type.8322fe.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.8322fe.2: type = generic_class_type @Foo.loc18 [concrete] -// CHECK:STDOUT: %Foo.generic.76fafe.2: %Foo.type.8322fe.2 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.662c69.2: type = class_type @Foo.loc18, @Foo.loc18(%a) [symbolic] +// CHECK:STDOUT: %Foo.type.3e04c8.1: type = generic_class_type @Foo.loc6 [concrete] +// CHECK:STDOUT: %Foo.generic.04949d.1: %Foo.type.3e04c8.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.3e04c8.2: type = generic_class_type @Foo.loc18 [concrete] +// CHECK:STDOUT: %Foo.generic.04949d.2: %Foo.type.3e04c8.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.13c14a.2: type = class_type @Foo.loc18, @Foo.loc18(%a) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1087,7 +1087,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: .Foo = %Foo.decl.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.8322fe.1 = class_decl @Foo.loc6 [concrete = constants.%Foo.generic.76fafe.1] { +// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.3e04c8.1 = class_decl @Foo.loc6 [concrete = constants.%Foo.generic.04949d.1] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6: type = splice_block %const [concrete = constants.%const] { @@ -1097,7 +1097,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc6_12.2: %const = symbolic_binding a, 0 [symbolic = %a.loc6_12.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc18: %Foo.type.8322fe.2 = class_decl @Foo.loc18 [concrete = constants.%Foo.generic.76fafe.2] { +// CHECK:STDOUT: %Foo.decl.loc18: %Foo.type.3e04c8.2 = class_decl @Foo.loc18 [concrete = constants.%Foo.generic.04949d.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc18: type = splice_block %const.loc18_15 [concrete = constants.%const] { @@ -1134,7 +1134,7 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Foo.662c69.2 +// CHECK:STDOUT: .Self = constants.%Foo.13c14a.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1153,13 +1153,13 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %empty_tuple.type [concrete] -// CHECK:STDOUT: %pattern_type.116: type = pattern_type %Base [concrete] -// CHECK:STDOUT: %Base.F.type.9e994f.1: type = fn_type @Base.F.loc7 [concrete] -// CHECK:STDOUT: %Base.F.c7843c.1: %Base.F.type.9e994f.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.912: type = pattern_type %Base [concrete] +// CHECK:STDOUT: %Base.F.type.48cdab.1: type = fn_type @Base.F.loc7 [concrete] +// CHECK:STDOUT: %Base.F.bd5be1.1: %Base.F.type.48cdab.1 = struct_value () [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %empty_tuple.type} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.a [concrete] -// CHECK:STDOUT: %Base.F.type.9e994f.2: type = fn_type @Base.F.loc17 [concrete] -// CHECK:STDOUT: %Base.F.c7843c.2: %Base.F.type.9e994f.2 = struct_value () [concrete] +// CHECK:STDOUT: %Base.F.type.48cdab.2: type = fn_type @Base.F.loc17 [concrete] +// CHECK:STDOUT: %Base.F.bd5be1.2: %Base.F.type.48cdab.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1167,9 +1167,9 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: .Base = %Base.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} -// CHECK:STDOUT: %Base.F.decl: %Base.F.type.9e994f.2 = fn_decl @Base.F.loc17 [concrete = constants.%Base.F.c7843c.2] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.116 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.116 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %Base.F.decl: %Base.F.type.48cdab.2 = fn_decl @Base.F.loc17 [concrete = constants.%Base.F.bd5be1.2] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Base = ref_param call_param0 // CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base] @@ -1179,9 +1179,9 @@ fn Base.F[ref self: Base]() { // CHECK:STDOUT: // CHECK:STDOUT: class @Base { // CHECK:STDOUT: %.loc5: %Base.elem = field_decl a, element0 [concrete] -// CHECK:STDOUT: %Base.F.decl: %Base.F.type.9e994f.1 = fn_decl @Base.F.loc7 [concrete = constants.%Base.F.c7843c.1] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.116 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.116 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %Base.F.decl: %Base.F.type.48cdab.1 = fn_decl @Base.F.loc7 [concrete = constants.%Base.F.bd5be1.1] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %Base = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base] diff --git a/toolchain/check/testdata/class/syntactic_merge_literal.carbon b/toolchain/check/testdata/class/syntactic_merge_literal.carbon index 4fc7a57ed6ed..c50256de1e7f 100644 --- a/toolchain/check/testdata/class/syntactic_merge_literal.carbon +++ b/toolchain/check/testdata/class/syntactic_merge_literal.carbon @@ -44,33 +44,33 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %a: %i32 = symbolic_binding a, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.9c1: type = class_type @C, @C(%a) [symbolic] +// CHECK:STDOUT: %C.adf: type = class_type @C, @C(%a) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %int_1000.ff9: Core.IntLiteral = int_value 1000 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1000.ff9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1000.ff9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1000.ff9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1000.693: %i32 = int_value 1000 [concrete] -// CHECK:STDOUT: %C.ca5: type = class_type @C, @C(%int_1000.693) [concrete] -// CHECK:STDOUT: %pattern_type.820: type = pattern_type %C.ca5 [concrete] -// CHECK:STDOUT: %b: %C.ca5 = symbolic_binding b, 0 [symbolic] +// CHECK:STDOUT: %int_1000.55f: %i32 = int_value 1000 [concrete] +// CHECK:STDOUT: %C.847: type = class_type @C, @C(%int_1000.55f) [concrete] +// CHECK:STDOUT: %pattern_type.053: type = pattern_type %C.847 [concrete] +// CHECK:STDOUT: %b: %C.847 = symbolic_binding b, 0 [symbolic] // CHECK:STDOUT: %D.type: type = generic_class_type @D [concrete] // CHECK:STDOUT: %D.generic: %D.type = struct_value () [concrete] // CHECK:STDOUT: %D: type = class_type @D, @D(%b) [symbolic] @@ -84,9 +84,9 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -97,7 +97,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = symbolic_binding_pattern a, 0 [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4: type = splice_block %i32 [concrete = constants.%i32] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -106,40 +106,40 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %a.loc4_10.2: %i32 = symbolic_binding a, 0 [symbolic = %a.loc4_10.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl.loc5: %D.type = class_decl @D [concrete = constants.%D.generic] { -// CHECK:STDOUT: %b.patt: %pattern_type.820 = symbolic_binding_pattern b, 0 [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.053 = symbolic_binding_pattern b, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc5_20.1: type = splice_block %C.loc5 [concrete = constants.%C.ca5] { +// CHECK:STDOUT: %.loc5_20.1: type = splice_block %C.loc5 [concrete = constants.%C.847] { // CHECK:STDOUT: %.Self.loc5: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %C.ref.loc5: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_1000.loc5: Core.IntLiteral = int_value 1000 [concrete = constants.%int_1000.ff9] -// CHECK:STDOUT: %impl.elem0.loc5: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc5: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc5_20.1: = bound_method %int_1000.loc5, %impl.elem0.loc5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_20.2: = bound_method %int_1000.loc5, %specific_fn.loc5 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5: init %i32 = call %bound_method.loc5_20.2(%int_1000.loc5) [concrete = constants.%int_1000.693] -// CHECK:STDOUT: %.loc5_20.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5 [concrete = constants.%int_1000.693] -// CHECK:STDOUT: %.loc5_20.3: %i32 = converted %int_1000.loc5, %.loc5_20.2 [concrete = constants.%int_1000.693] -// CHECK:STDOUT: %C.loc5: type = class_type @C, @C(constants.%int_1000.693) [concrete = constants.%C.ca5] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5: init %i32 = call %bound_method.loc5_20.2(%int_1000.loc5) [concrete = constants.%int_1000.55f] +// CHECK:STDOUT: %.loc5_20.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5 [concrete = constants.%int_1000.55f] +// CHECK:STDOUT: %.loc5_20.3: %i32 = converted %int_1000.loc5, %.loc5_20.2 [concrete = constants.%int_1000.55f] +// CHECK:STDOUT: %C.loc5: type = class_type @C, @C(constants.%int_1000.55f) [concrete = constants.%C.847] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.loc5_10.2: %C.ca5 = symbolic_binding b, 0 [symbolic = %b.loc5_10.1 (constants.%b)] +// CHECK:STDOUT: %b.loc5_10.2: %C.847 = symbolic_binding b, 0 [symbolic = %b.loc5_10.1 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl.loc6: %D.type = class_decl @D [concrete = constants.%D.generic] { -// CHECK:STDOUT: %b.patt: %pattern_type.820 = symbolic_binding_pattern b, 0 [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.053 = symbolic_binding_pattern b, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc6_20.1: type = splice_block %C.loc6 [concrete = constants.%C.ca5] { +// CHECK:STDOUT: %.loc6_20.1: type = splice_block %C.loc6 [concrete = constants.%C.847] { // CHECK:STDOUT: %.Self.loc6: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %C.ref.loc6: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_1000.loc6: Core.IntLiteral = int_value 1000 [concrete = constants.%int_1000.ff9] -// CHECK:STDOUT: %impl.elem0.loc6: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc6: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc6_20.1: = bound_method %int_1000.loc6, %impl.elem0.loc6 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_20.2: = bound_method %int_1000.loc6, %specific_fn.loc6 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %i32 = call %bound_method.loc6_20.2(%int_1000.loc6) [concrete = constants.%int_1000.693] -// CHECK:STDOUT: %.loc6_20.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%int_1000.693] -// CHECK:STDOUT: %.loc6_20.3: %i32 = converted %int_1000.loc6, %.loc6_20.2 [concrete = constants.%int_1000.693] -// CHECK:STDOUT: %C.loc6: type = class_type @C, @C(constants.%int_1000.693) [concrete = constants.%C.ca5] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6: init %i32 = call %bound_method.loc6_20.2(%int_1000.loc6) [concrete = constants.%int_1000.55f] +// CHECK:STDOUT: %.loc6_20.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%int_1000.55f] +// CHECK:STDOUT: %.loc6_20.3: %i32 = converted %int_1000.loc6, %.loc6_20.2 [concrete = constants.%int_1000.55f] +// CHECK:STDOUT: %C.loc6: type = class_type @C, @C(constants.%int_1000.55f) [concrete = constants.%C.847] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.loc6: %C.ca5 = symbolic_binding b, 0 [symbolic = %b.loc5_10.1 (constants.%b)] +// CHECK:STDOUT: %b.loc6: %C.847 = symbolic_binding b, 0 [symbolic = %b.loc5_10.1 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -153,12 +153,12 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.9c1 +// CHECK:STDOUT: .Self = constants.%C.adf // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D(%b.loc5_10.2: %C.ca5) { -// CHECK:STDOUT: %b.loc5_10.1: %C.ca5 = symbolic_binding b, 0 [symbolic = %b.loc5_10.1 (constants.%b)] +// CHECK:STDOUT: generic class @D(%b.loc5_10.2: %C.847) { +// CHECK:STDOUT: %b.loc5_10.1: %C.847 = symbolic_binding b, 0 [symbolic = %b.loc5_10.1 (constants.%b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -175,8 +175,8 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %a.loc4_10.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_1000.693) { -// CHECK:STDOUT: %a.loc4_10.1 => constants.%int_1000.693 +// CHECK:STDOUT: specific @C(constants.%int_1000.55f) { +// CHECK:STDOUT: %a.loc4_10.1 => constants.%int_1000.55f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%b) { @@ -192,38 +192,38 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %a: %i32 = symbolic_binding a, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.9c1: type = class_type @C, @C(%a) [symbolic] +// CHECK:STDOUT: %C.adf: type = class_type @C, @C(%a) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %int_1000.ff9: Core.IntLiteral = int_value 1000 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1000.ff9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1000.ff9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1000.ff9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1000.693: %i32 = int_value 1000 [concrete] -// CHECK:STDOUT: %C.ca5: type = class_type @C, @C(%int_1000.693) [concrete] -// CHECK:STDOUT: %pattern_type.820: type = pattern_type %C.ca5 [concrete] -// CHECK:STDOUT: %b: %C.ca5 = symbolic_binding b, 0 [symbolic] -// CHECK:STDOUT: %D.type.2fde6d.1: type = generic_class_type @D.loc5 [concrete] -// CHECK:STDOUT: %D.generic.820c89.1: %D.type.2fde6d.1 = struct_value () [concrete] -// CHECK:STDOUT: %D.type.2fde6d.2: type = generic_class_type @D.loc13 [concrete] -// CHECK:STDOUT: %D.generic.820c89.2: %D.type.2fde6d.2 = struct_value () [concrete] -// CHECK:STDOUT: %D.c5d0a3.2: type = class_type @D.loc13, @D.loc13(%b) [symbolic] +// CHECK:STDOUT: %int_1000.55f: %i32 = int_value 1000 [concrete] +// CHECK:STDOUT: %C.847: type = class_type @C, @C(%int_1000.55f) [concrete] +// CHECK:STDOUT: %pattern_type.053: type = pattern_type %C.847 [concrete] +// CHECK:STDOUT: %b: %C.847 = symbolic_binding b, 0 [symbolic] +// CHECK:STDOUT: %D.type.ff75f2.1: type = generic_class_type @D.loc5 [concrete] +// CHECK:STDOUT: %D.generic.7223e9.1: %D.type.ff75f2.1 = struct_value () [concrete] +// CHECK:STDOUT: %D.type.ff75f2.2: type = generic_class_type @D.loc13 [concrete] +// CHECK:STDOUT: %D.generic.7223e9.2: %D.type.ff75f2.2 = struct_value () [concrete] +// CHECK:STDOUT: %D.5b0064.2: type = class_type @D.loc13, @D.loc13(%b) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -234,9 +234,9 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -247,7 +247,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = symbolic_binding_pattern a, 0 [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4: type = splice_block %i32 [concrete = constants.%i32] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -255,41 +255,41 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc4_10.2: %i32 = symbolic_binding a, 0 [symbolic = %a.loc4_10.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %D.decl.loc5: %D.type.2fde6d.1 = class_decl @D.loc5 [concrete = constants.%D.generic.820c89.1] { -// CHECK:STDOUT: %b.patt: %pattern_type.820 = symbolic_binding_pattern b, 0 [concrete] +// CHECK:STDOUT: %D.decl.loc5: %D.type.ff75f2.1 = class_decl @D.loc5 [concrete = constants.%D.generic.7223e9.1] { +// CHECK:STDOUT: %b.patt: %pattern_type.053 = symbolic_binding_pattern b, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc5_19.1: type = splice_block %C [concrete = constants.%C.ca5] { +// CHECK:STDOUT: %.loc5_19.1: type = splice_block %C [concrete = constants.%C.847] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_1000: Core.IntLiteral = int_value 1000 [concrete = constants.%int_1000.ff9] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc5_19.1: = bound_method %int_1000, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_19.2: = bound_method %int_1000, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc5_19.2(%int_1000) [concrete = constants.%int_1000.693] -// CHECK:STDOUT: %.loc5_19.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1000.693] -// CHECK:STDOUT: %.loc5_19.3: %i32 = converted %int_1000, %.loc5_19.2 [concrete = constants.%int_1000.693] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_1000.693) [concrete = constants.%C.ca5] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc5_19.2(%int_1000) [concrete = constants.%int_1000.55f] +// CHECK:STDOUT: %.loc5_19.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1000.55f] +// CHECK:STDOUT: %.loc5_19.3: %i32 = converted %int_1000, %.loc5_19.2 [concrete = constants.%int_1000.55f] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_1000.55f) [concrete = constants.%C.847] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.loc5_10.2: %C.ca5 = symbolic_binding b, 0 [symbolic = %b.loc5_10.1 (constants.%b)] +// CHECK:STDOUT: %b.loc5_10.2: %C.847 = symbolic_binding b, 0 [symbolic = %b.loc5_10.1 (constants.%b)] // CHECK:STDOUT: } -// CHECK:STDOUT: %D.decl.loc13: %D.type.2fde6d.2 = class_decl @D.loc13 [concrete = constants.%D.generic.820c89.2] { -// CHECK:STDOUT: %b.patt: %pattern_type.820 = symbolic_binding_pattern b, 0 [concrete] +// CHECK:STDOUT: %D.decl.loc13: %D.type.ff75f2.2 = class_decl @D.loc13 [concrete = constants.%D.generic.7223e9.2] { +// CHECK:STDOUT: %b.patt: %pattern_type.053 = symbolic_binding_pattern b, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc13_20.1: type = splice_block %C [concrete = constants.%C.ca5] { +// CHECK:STDOUT: %.loc13_20.1: type = splice_block %C [concrete = constants.%C.847] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_1000: Core.IntLiteral = int_value 1000 [concrete = constants.%int_1000.ff9] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc13_20.1: = bound_method %int_1000, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_20.2: = bound_method %int_1000, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc13_20.2(%int_1000) [concrete = constants.%int_1000.693] -// CHECK:STDOUT: %.loc13_20.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1000.693] -// CHECK:STDOUT: %.loc13_20.3: %i32 = converted %int_1000, %.loc13_20.2 [concrete = constants.%int_1000.693] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_1000.693) [concrete = constants.%C.ca5] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc13_20.2(%int_1000) [concrete = constants.%int_1000.55f] +// CHECK:STDOUT: %.loc13_20.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1000.55f] +// CHECK:STDOUT: %.loc13_20.3: %i32 = converted %int_1000, %.loc13_20.2 [concrete = constants.%int_1000.55f] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_1000.55f) [concrete = constants.%C.847] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.loc13_10.2: %C.ca5 = symbolic_binding b, 0 [symbolic = %b.loc13_10.1 (constants.%b)] +// CHECK:STDOUT: %b.loc13_10.2: %C.847 = symbolic_binding b, 0 [symbolic = %b.loc13_10.1 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -303,18 +303,18 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.9c1 +// CHECK:STDOUT: .Self = constants.%C.adf // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D.loc5(%b.loc5_10.2: %C.ca5) { -// CHECK:STDOUT: %b.loc5_10.1: %C.ca5 = symbolic_binding b, 0 [symbolic = %b.loc5_10.1 (constants.%b)] +// CHECK:STDOUT: generic class @D.loc5(%b.loc5_10.2: %C.847) { +// CHECK:STDOUT: %b.loc5_10.1: %C.847 = symbolic_binding b, 0 [symbolic = %b.loc5_10.1 (constants.%b)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D.loc13(%b.loc13_10.2: %C.ca5) { -// CHECK:STDOUT: %b.loc13_10.1: %C.ca5 = symbolic_binding b, 0 [symbolic = %b.loc13_10.1 (constants.%b)] +// CHECK:STDOUT: generic class @D.loc13(%b.loc13_10.2: %C.847) { +// CHECK:STDOUT: %b.loc13_10.1: %C.847 = symbolic_binding b, 0 [symbolic = %b.loc13_10.1 (constants.%b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -323,7 +323,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%D.c5d0a3.2 +// CHECK:STDOUT: .Self = constants.%D.5b0064.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -331,8 +331,8 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %a.loc4_10.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_1000.693) { -// CHECK:STDOUT: %a.loc4_10.1 => constants.%int_1000.693 +// CHECK:STDOUT: specific @C(constants.%int_1000.55f) { +// CHECK:STDOUT: %a.loc4_10.1 => constants.%int_1000.55f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D.loc5(constants.%b) { diff --git a/toolchain/check/testdata/const/basics.carbon b/toolchain/check/testdata/const/basics.carbon index fc224a2c9c34..49014fe4bf85 100644 --- a/toolchain/check/testdata/const/basics.carbon +++ b/toolchain/check/testdata/const/basics.carbon @@ -131,115 +131,115 @@ fn PassConstReferenceToReference(p: const X*) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %const.a89: type = const_type %C [concrete] -// CHECK:STDOUT: %ptr.089: type = ptr_type %const.a89 [concrete] -// CHECK:STDOUT: %ptr.826: type = ptr_type %ptr.089 [concrete] -// CHECK:STDOUT: %pattern_type.e85: type = pattern_type %ptr.826 [concrete] -// CHECK:STDOUT: %.77c: Core.Form = init_form %ptr.826 [concrete] +// CHECK:STDOUT: %const.13f: type = const_type %C [concrete] +// CHECK:STDOUT: %ptr.77f: type = ptr_type %const.13f [concrete] +// CHECK:STDOUT: %ptr.0c8: type = ptr_type %ptr.77f [concrete] +// CHECK:STDOUT: %pattern_type.803: type = pattern_type %ptr.0c8 [concrete] +// CHECK:STDOUT: %.5f5: Core.Form = init_form %ptr.0c8 [concrete] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %T.f49: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %const.as.Copy.impl.Op.type.6d8: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%T.f49) [symbolic] -// CHECK:STDOUT: %const.as.Copy.impl.Op.e95: %const.as.Copy.impl.Op.type.6d8 = struct_value () [symbolic] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %const.as.Copy.impl.Op.type.145: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%T.f84) [symbolic] +// CHECK:STDOUT: %const.as.Copy.impl.Op.093: %const.as.Copy.impl.Op.type.145 = struct_value () [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.ebf: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%ptr.089) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.2c6: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%ptr.089) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.b55: %ptr.as.Copy.impl.Op.type.2c6 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.69b: %Copy.type = facet_value %ptr.826, (%Copy.impl_witness.ebf) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.6ca: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.69b) [concrete] -// CHECK:STDOUT: %.994: type = fn_type_with_self_type %Copy.WithSelf.Op.type.6ca, %Copy.facet.69b [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.3a6: = specific_function %ptr.as.Copy.impl.Op.b55, @ptr.as.Copy.impl.Op(%ptr.089) [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %const.ba2: type = const_type %ptr.6be [concrete] -// CHECK:STDOUT: %pattern_type.0e9: type = pattern_type %const.ba2 [concrete] -// CHECK:STDOUT: %.6ca: Core.Form = init_form %const.ba2 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.e58: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%ptr.77f) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.7d8: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%ptr.77f) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.2de: %ptr.as.Copy.impl.Op.type.7d8 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.6e5: %Copy.type = facet_value %ptr.0c8, (%Copy.impl_witness.e58) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.795: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.6e5) [concrete] +// CHECK:STDOUT: %.709: type = fn_type_with_self_type %Copy.WithSelf.Op.type.795, %Copy.facet.6e5 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.f37: = specific_function %ptr.as.Copy.impl.Op.2de, @ptr.as.Copy.impl.Op(%ptr.77f) [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %const.0f8: type = const_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %pattern_type.76c: type = pattern_type %const.0f8 [concrete] +// CHECK:STDOUT: %.fdf: Core.Form = init_form %const.0f8 [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] -// CHECK:STDOUT: %Copy.impl_witness.881: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %Copy.facet.d5e: %Copy.type = facet_value %ptr.6be, (%Copy.impl_witness.881) [concrete] -// CHECK:STDOUT: %Copy.impl_witness.ca1: = impl_witness imports.%Copy.impl_witness_table.b24, @const.as.Copy.impl(%Copy.facet.d5e) [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.type.1a8: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%Copy.facet.d5e) [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.00c: %const.as.Copy.impl.Op.type.1a8 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.70c: %Copy.type = facet_value %const.ba2, (%Copy.impl_witness.ca1) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.423: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.70c) [concrete] -// CHECK:STDOUT: %.790: type = fn_type_with_self_type %Copy.WithSelf.Op.type.423, %Copy.facet.70c [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.specific_fn: = specific_function %const.as.Copy.impl.Op.00c, @const.as.Copy.impl.Op(%Copy.facet.d5e) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.65f: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %Copy.facet.3f0: %Copy.type = facet_value %ptr.6b6, (%Copy.impl_witness.65f) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.8b4: = impl_witness imports.%Copy.impl_witness_table.554, @const.as.Copy.impl(%Copy.facet.3f0) [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.type.0ae: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%Copy.facet.3f0) [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.714: %const.as.Copy.impl.Op.type.0ae = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.471: %Copy.type = facet_value %const.0f8, (%Copy.impl_witness.8b4) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.be3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.471) [concrete] +// CHECK:STDOUT: %.8c4: type = fn_type_with_self_type %Copy.WithSelf.Op.type.be3, %Copy.facet.471 [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.specific_fn: = specific_function %const.as.Copy.impl.Op.714, @const.as.Copy.impl.Op(%Copy.facet.3f0) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.60b: @const.as.Copy.impl.%const.as.Copy.impl.Op.type (%const.as.Copy.impl.Op.type.6d8) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @const.as.Copy.impl.%const.as.Copy.impl.Op (constants.%const.as.Copy.impl.Op.e95)] -// CHECK:STDOUT: %Copy.impl_witness_table.b24 = impl_witness_table (%Core.import_ref.60b), @const.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.f89: @const.as.Copy.impl.%const.as.Copy.impl.Op.type (%const.as.Copy.impl.Op.type.145) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @const.as.Copy.impl.%const.as.Copy.impl.Op (constants.%const.as.Copy.impl.Op.093)] +// CHECK:STDOUT: %Copy.impl_witness_table.554 = impl_witness_table (%Core.import_ref.f89), @const.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.e85 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.e85 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.e85 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.e85 = return_slot_pattern %return.param_patt, %ptr.loc6_31 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.803 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.803 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.803 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.803 = return_slot_pattern %return.param_patt, %ptr.loc6_31 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc6_29: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %const.loc6_23: type = const_type %C.ref.loc6_29 [concrete = constants.%const.a89] -// CHECK:STDOUT: %ptr.loc6_30: type = ptr_type %const.loc6_23 [concrete = constants.%ptr.089] -// CHECK:STDOUT: %ptr.loc6_31: type = ptr_type %ptr.loc6_30 [concrete = constants.%ptr.826] -// CHECK:STDOUT: %.loc6_31: Core.Form = init_form %ptr.loc6_31 [concrete = constants.%.77c] -// CHECK:STDOUT: %p.param: %ptr.826 = value_param call_param0 -// CHECK:STDOUT: %.loc6_17: type = splice_block %ptr.loc6_17 [concrete = constants.%ptr.826] { +// CHECK:STDOUT: %const.loc6_23: type = const_type %C.ref.loc6_29 [concrete = constants.%const.13f] +// CHECK:STDOUT: %ptr.loc6_30: type = ptr_type %const.loc6_23 [concrete = constants.%ptr.77f] +// CHECK:STDOUT: %ptr.loc6_31: type = ptr_type %ptr.loc6_30 [concrete = constants.%ptr.0c8] +// CHECK:STDOUT: %.loc6_31: Core.Form = init_form %ptr.loc6_31 [concrete = constants.%.5f5] +// CHECK:STDOUT: %p.param: %ptr.0c8 = value_param call_param0 +// CHECK:STDOUT: %.loc6_17: type = splice_block %ptr.loc6_17 [concrete = constants.%ptr.0c8] { // CHECK:STDOUT: %C.ref.loc6_15: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %const.loc6_9: type = const_type %C.ref.loc6_15 [concrete = constants.%const.a89] -// CHECK:STDOUT: %ptr.loc6_16: type = ptr_type %const.loc6_9 [concrete = constants.%ptr.089] -// CHECK:STDOUT: %ptr.loc6_17: type = ptr_type %ptr.loc6_16 [concrete = constants.%ptr.826] +// CHECK:STDOUT: %const.loc6_9: type = const_type %C.ref.loc6_15 [concrete = constants.%const.13f] +// CHECK:STDOUT: %ptr.loc6_16: type = ptr_type %const.loc6_9 [concrete = constants.%ptr.77f] +// CHECK:STDOUT: %ptr.loc6_17: type = ptr_type %ptr.loc6_16 [concrete = constants.%ptr.0c8] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.826 = value_binding p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.826 = out_param call_param1 -// CHECK:STDOUT: %return: ref %ptr.826 = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.0c8 = value_binding p, %p.param +// CHECK:STDOUT: %return.param: ref %ptr.0c8 = out_param call_param1 +// CHECK:STDOUT: %return: ref %ptr.0c8 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.0e9 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.0e9 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0e9 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0e9 = return_slot_pattern %return.param_patt, %const.loc10_24 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.76c = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.76c = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.76c = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.76c = return_slot_pattern %return.param_patt, %const.loc10_24 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc10_31: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc10_32: type = ptr_type %C.ref.loc10_31 [concrete = constants.%ptr.6be] -// CHECK:STDOUT: %const.loc10_24: type = const_type %ptr.loc10_32 [concrete = constants.%const.ba2] -// CHECK:STDOUT: %.loc10_24: Core.Form = init_form %const.loc10_24 [concrete = constants.%.6ca] -// CHECK:STDOUT: %p.param: %const.ba2 = value_param call_param0 -// CHECK:STDOUT: %.loc10_9: type = splice_block %const.loc10_9 [concrete = constants.%const.ba2] { +// CHECK:STDOUT: %ptr.loc10_32: type = ptr_type %C.ref.loc10_31 [concrete = constants.%ptr.6b6] +// CHECK:STDOUT: %const.loc10_24: type = const_type %ptr.loc10_32 [concrete = constants.%const.0f8] +// CHECK:STDOUT: %.loc10_24: Core.Form = init_form %const.loc10_24 [concrete = constants.%.fdf] +// CHECK:STDOUT: %p.param: %const.0f8 = value_param call_param0 +// CHECK:STDOUT: %.loc10_9: type = splice_block %const.loc10_9 [concrete = constants.%const.0f8] { // CHECK:STDOUT: %C.ref.loc10_16: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc10_17: type = ptr_type %C.ref.loc10_16 [concrete = constants.%ptr.6be] -// CHECK:STDOUT: %const.loc10_9: type = const_type %ptr.loc10_17 [concrete = constants.%const.ba2] +// CHECK:STDOUT: %ptr.loc10_17: type = ptr_type %C.ref.loc10_16 [concrete = constants.%ptr.6b6] +// CHECK:STDOUT: %const.loc10_9: type = const_type %ptr.loc10_17 [concrete = constants.%const.0f8] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %const.ba2 = value_binding p, %p.param -// CHECK:STDOUT: %return.param: ref %const.ba2 = out_param call_param1 -// CHECK:STDOUT: %return: ref %const.ba2 = return_slot %return.param +// CHECK:STDOUT: %p: %const.0f8 = value_binding p, %p.param +// CHECK:STDOUT: %return.param: ref %const.0f8 = out_param call_param1 +// CHECK:STDOUT: %return: ref %const.0f8 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @A(%p.param: %ptr.826) -> out %return.param: %ptr.826 { +// CHECK:STDOUT: fn @A(%p.param: %ptr.0c8) -> out %return.param: %ptr.0c8 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.826 = name_ref p, %p -// CHECK:STDOUT: %impl.elem0: %.994 = impl_witness_access constants.%Copy.impl_witness.ebf, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b55] +// CHECK:STDOUT: %p.ref: %ptr.0c8 = name_ref p, %p +// CHECK:STDOUT: %impl.elem0: %.709 = impl_witness_access constants.%Copy.impl_witness.e58, element0 [concrete = constants.%ptr.as.Copy.impl.Op.2de] // CHECK:STDOUT: %bound_method.loc7_10.1: = bound_method %p.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%ptr.089) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.3a6] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%ptr.77f) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.f37] // CHECK:STDOUT: %bound_method.loc7_10.2: = bound_method %p.ref, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.826 = call %bound_method.loc7_10.2(%p.ref) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.0c8 = call %bound_method.loc7_10.2(%p.ref) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @B(%p.param: %const.ba2) -> out %return.param: %const.ba2 { +// CHECK:STDOUT: fn @B(%p.param: %const.0f8) -> out %return.param: %const.0f8 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %const.ba2 = name_ref p, %p -// CHECK:STDOUT: %impl.elem0: %.790 = impl_witness_access constants.%Copy.impl_witness.ca1, element0 [concrete = constants.%const.as.Copy.impl.Op.00c] +// CHECK:STDOUT: %p.ref: %const.0f8 = name_ref p, %p +// CHECK:STDOUT: %impl.elem0: %.8c4 = impl_witness_access constants.%Copy.impl_witness.8b4, element0 [concrete = constants.%const.as.Copy.impl.Op.714] // CHECK:STDOUT: %bound_method.loc11_10.1: = bound_method %p.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @const.as.Copy.impl.Op(constants.%Copy.facet.d5e) [concrete = constants.%const.as.Copy.impl.Op.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @const.as.Copy.impl.Op(constants.%Copy.facet.3f0) [concrete = constants.%const.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc11_10.2: = bound_method %p.ref, %specific_fn -// CHECK:STDOUT: %const.as.Copy.impl.Op.call: init %const.ba2 = call %bound_method.loc11_10.2(%p.ref) +// CHECK:STDOUT: %const.as.Copy.impl.Op.call: init %const.0f8 = call %bound_method.loc11_10.2(%p.ref) // CHECK:STDOUT: return %const.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -247,65 +247,65 @@ fn PassConstReferenceToReference(p: const X*) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %const.a89: type = const_type %C [concrete] -// CHECK:STDOUT: %ptr.089: type = ptr_type %const.a89 [concrete] -// CHECK:STDOUT: %ptr.826: type = ptr_type %ptr.089 [concrete] -// CHECK:STDOUT: %pattern_type.e85: type = pattern_type %ptr.826 [concrete] -// CHECK:STDOUT: %.77c: Core.Form = init_form %ptr.826 [concrete] +// CHECK:STDOUT: %const.13f: type = const_type %C [concrete] +// CHECK:STDOUT: %ptr.77f: type = ptr_type %const.13f [concrete] +// CHECK:STDOUT: %ptr.0c8: type = ptr_type %ptr.77f [concrete] +// CHECK:STDOUT: %pattern_type.803: type = pattern_type %ptr.0c8 [concrete] +// CHECK:STDOUT: %.5f5: Core.Form = init_form %ptr.0c8 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.ebf: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%ptr.089) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.2c6: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%ptr.089) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.b55: %ptr.as.Copy.impl.Op.type.2c6 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.826, (%Copy.impl_witness.ebf) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.6ca: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.994: type = fn_type_with_self_type %Copy.WithSelf.Op.type.6ca, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.b55, @ptr.as.Copy.impl.Op(%ptr.089) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.e58: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%ptr.77f) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.7d8: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%ptr.77f) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.2de: %ptr.as.Copy.impl.Op.type.7d8 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.0c8, (%Copy.impl_witness.e58) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.795: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.709: type = fn_type_with_self_type %Copy.WithSelf.Op.type.795, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.2de, @ptr.as.Copy.impl.Op(%ptr.77f) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.e85 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.e85 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.e85 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.e85 = return_slot_pattern %return.param_patt, %ptr.loc11_39 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.803 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.803 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.803 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.803 = return_slot_pattern %return.param_patt, %ptr.loc11_39 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc11_36: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %const.loc11_30: type = const_type %C.ref.loc11_36 [concrete = constants.%const.a89] -// CHECK:STDOUT: %const.loc11_23: type = const_type %const.loc11_30 [concrete = constants.%const.a89] -// CHECK:STDOUT: %ptr.loc11_38: type = ptr_type %const.loc11_23 [concrete = constants.%ptr.089] -// CHECK:STDOUT: %ptr.loc11_39: type = ptr_type %ptr.loc11_38 [concrete = constants.%ptr.826] -// CHECK:STDOUT: %.loc11_39: Core.Form = init_form %ptr.loc11_39 [concrete = constants.%.77c] -// CHECK:STDOUT: %p.param: %ptr.826 = value_param call_param0 -// CHECK:STDOUT: %.loc11_17: type = splice_block %ptr.loc11_17 [concrete = constants.%ptr.826] { +// CHECK:STDOUT: %const.loc11_30: type = const_type %C.ref.loc11_36 [concrete = constants.%const.13f] +// CHECK:STDOUT: %const.loc11_23: type = const_type %const.loc11_30 [concrete = constants.%const.13f] +// CHECK:STDOUT: %ptr.loc11_38: type = ptr_type %const.loc11_23 [concrete = constants.%ptr.77f] +// CHECK:STDOUT: %ptr.loc11_39: type = ptr_type %ptr.loc11_38 [concrete = constants.%ptr.0c8] +// CHECK:STDOUT: %.loc11_39: Core.Form = init_form %ptr.loc11_39 [concrete = constants.%.5f5] +// CHECK:STDOUT: %p.param: %ptr.0c8 = value_param call_param0 +// CHECK:STDOUT: %.loc11_17: type = splice_block %ptr.loc11_17 [concrete = constants.%ptr.0c8] { // CHECK:STDOUT: %C.ref.loc11_15: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %const.loc11_9: type = const_type %C.ref.loc11_15 [concrete = constants.%const.a89] -// CHECK:STDOUT: %ptr.loc11_16: type = ptr_type %const.loc11_9 [concrete = constants.%ptr.089] -// CHECK:STDOUT: %ptr.loc11_17: type = ptr_type %ptr.loc11_16 [concrete = constants.%ptr.826] +// CHECK:STDOUT: %const.loc11_9: type = const_type %C.ref.loc11_15 [concrete = constants.%const.13f] +// CHECK:STDOUT: %ptr.loc11_16: type = ptr_type %const.loc11_9 [concrete = constants.%ptr.77f] +// CHECK:STDOUT: %ptr.loc11_17: type = ptr_type %ptr.loc11_16 [concrete = constants.%ptr.0c8] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.826 = value_binding p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.826 = out_param call_param1 -// CHECK:STDOUT: %return: ref %ptr.826 = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.0c8 = value_binding p, %p.param +// CHECK:STDOUT: %return.param: ref %ptr.0c8 = out_param call_param1 +// CHECK:STDOUT: %return: ref %ptr.0c8 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%p.param: %ptr.826) -> out %return.param: %ptr.826 { +// CHECK:STDOUT: fn @F(%p.param: %ptr.0c8) -> out %return.param: %ptr.0c8 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.826 = name_ref p, %p -// CHECK:STDOUT: %impl.elem0: %.994 = impl_witness_access constants.%Copy.impl_witness.ebf, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b55] +// CHECK:STDOUT: %p.ref: %ptr.0c8 = name_ref p, %p +// CHECK:STDOUT: %impl.elem0: %.709 = impl_witness_access constants.%Copy.impl_witness.e58, element0 [concrete = constants.%ptr.as.Copy.impl.Op.2de] // CHECK:STDOUT: %bound_method.loc12_10.1: = bound_method %p.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%ptr.089) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%ptr.77f) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc12_10.2: = bound_method %p.ref, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.826 = call %bound_method.loc12_10.2(%p.ref) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.0c8 = call %bound_method.loc12_10.2(%p.ref) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/const/import.carbon b/toolchain/check/testdata/const/import.carbon index 3ec4e72cee1c..b2c4033015bb 100644 --- a/toolchain/check/testdata/const/import.carbon +++ b/toolchain/check/testdata/const/import.carbon @@ -35,81 +35,81 @@ var a_ptr: const C* = a_ptr_ref; // CHECK:STDOUT: constants { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.05a: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.fad: %ptr.as.Copy.impl.Op.type.05a = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %const.a89: type = const_type %C [concrete] -// CHECK:STDOUT: %ptr.089: type = ptr_type %const.a89 [concrete] -// CHECK:STDOUT: %pattern_type.805: type = pattern_type %ptr.089 [concrete] -// CHECK:STDOUT: %pattern_type.d58: type = pattern_type %const.a89 [concrete] -// CHECK:STDOUT: %addr: %ptr.089 = addr_of imports.%a_ref.var [concrete] -// CHECK:STDOUT: %Copy.impl_witness.243: = impl_witness imports.%Copy.impl_witness_table.6eb, @ptr.as.Copy.impl(%const.a89) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.548: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%const.a89) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.9a6: %ptr.as.Copy.impl.Op.type.548 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.089, (%Copy.impl_witness.243) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.a91: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.f5c: type = fn_type_with_self_type %Copy.WithSelf.Op.type.a91, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.9a6 [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.9a6, @ptr.as.Copy.impl.Op(%const.a89) [concrete] +// CHECK:STDOUT: %const.13f: type = const_type %C [concrete] +// CHECK:STDOUT: %ptr.77f: type = ptr_type %const.13f [concrete] +// CHECK:STDOUT: %pattern_type.7d2: type = pattern_type %ptr.77f [concrete] +// CHECK:STDOUT: %pattern_type.1e4: type = pattern_type %const.13f [concrete] +// CHECK:STDOUT: %addr: %ptr.77f = addr_of imports.%a_ref.var [concrete] +// CHECK:STDOUT: %Copy.impl_witness.08a: = impl_witness imports.%Copy.impl_witness_table.90e, @ptr.as.Copy.impl(%const.13f) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.da8: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%const.13f) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.194: %ptr.as.Copy.impl.Op.type.da8 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.77f, (%Copy.impl_witness.08a) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.330: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.1ef: type = fn_type_with_self_type %Copy.WithSelf.Op.type.330, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.194 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.194, @ptr.as.Copy.impl.Op(%const.13f) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//implicit, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.a_ref: ref %const.a89 = import_ref Main//implicit, a_ref, loaded [concrete = %a_ref.var] -// CHECK:STDOUT: %Main.a_ptr_ref: ref %ptr.089 = import_ref Main//implicit, a_ptr_ref, loaded [concrete = %a_ptr_ref.var] -// CHECK:STDOUT: %Main.import_ref.33d: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.05a) = import_ref Main//implicit, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.fad)] -// CHECK:STDOUT: %Copy.impl_witness_table.6eb = impl_witness_table (%Main.import_ref.33d), @ptr.as.Copy.impl [concrete] -// CHECK:STDOUT: %a_ref.patt: %pattern_type.d58 = ref_binding_pattern a_ref [concrete] -// CHECK:STDOUT: %a_ref.var_patt: %pattern_type.d58 = var_pattern %a_ref.patt [concrete] -// CHECK:STDOUT: %a_ref.var: ref %const.a89 = var %a_ref.var_patt [concrete] -// CHECK:STDOUT: %a_ptr_ref.patt: %pattern_type.805 = ref_binding_pattern a_ptr_ref [concrete] -// CHECK:STDOUT: %a_ptr_ref.var_patt: %pattern_type.805 = var_pattern %a_ptr_ref.patt [concrete] -// CHECK:STDOUT: %a_ptr_ref.var: ref %ptr.089 = var %a_ptr_ref.var_patt [concrete] +// CHECK:STDOUT: %Main.a_ref: ref %const.13f = import_ref Main//implicit, a_ref, loaded [concrete = %a_ref.var] +// CHECK:STDOUT: %Main.a_ptr_ref: ref %ptr.77f = import_ref Main//implicit, a_ptr_ref, loaded [concrete = %a_ptr_ref.var] +// CHECK:STDOUT: %Main.import_ref.499: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Main//implicit, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.90e = impl_witness_table (%Main.import_ref.499), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %a_ref.patt: %pattern_type.1e4 = ref_binding_pattern a_ref [concrete] +// CHECK:STDOUT: %a_ref.var_patt: %pattern_type.1e4 = var_pattern %a_ref.patt [concrete] +// CHECK:STDOUT: %a_ref.var: ref %const.13f = var %a_ref.var_patt [concrete] +// CHECK:STDOUT: %a_ptr_ref.patt: %pattern_type.7d2 = ref_binding_pattern a_ptr_ref [concrete] +// CHECK:STDOUT: %a_ptr_ref.var_patt: %pattern_type.7d2 = var_pattern %a_ptr_ref.patt [concrete] +// CHECK:STDOUT: %a_ptr_ref.var: ref %ptr.77f = var %a_ptr_ref.var_patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.805 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.805 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7d2 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.7d2 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %ptr.089 = var %a.var_patt [concrete] -// CHECK:STDOUT: %.loc6: type = splice_block %ptr.loc6 [concrete = constants.%ptr.089] { +// CHECK:STDOUT: %a.var: ref %ptr.77f = var %a.var_patt [concrete] +// CHECK:STDOUT: %.loc6: type = splice_block %ptr.loc6 [concrete = constants.%ptr.77f] { // CHECK:STDOUT: %C.ref.loc6: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %const.loc6: type = const_type %C.ref.loc6 [concrete = constants.%const.a89] -// CHECK:STDOUT: %ptr.loc6: type = ptr_type %const.loc6 [concrete = constants.%ptr.089] +// CHECK:STDOUT: %const.loc6: type = const_type %C.ref.loc6 [concrete = constants.%const.13f] +// CHECK:STDOUT: %ptr.loc6: type = ptr_type %const.loc6 [concrete = constants.%ptr.77f] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %ptr.089 = ref_binding a, %a.var [concrete = %a.var] +// CHECK:STDOUT: %a: ref %ptr.77f = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a_ptr.patt: %pattern_type.805 = ref_binding_pattern a_ptr [concrete] -// CHECK:STDOUT: %a_ptr.var_patt: %pattern_type.805 = var_pattern %a_ptr.patt [concrete] +// CHECK:STDOUT: %a_ptr.patt: %pattern_type.7d2 = ref_binding_pattern a_ptr [concrete] +// CHECK:STDOUT: %a_ptr.var_patt: %pattern_type.7d2 = var_pattern %a_ptr.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a_ptr.var: ref %ptr.089 = var %a_ptr.var_patt [concrete] -// CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.089] { +// CHECK:STDOUT: %a_ptr.var: ref %ptr.77f = var %a_ptr.var_patt [concrete] +// CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.77f] { // CHECK:STDOUT: %C.ref.loc7: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %const.loc7: type = const_type %C.ref.loc7 [concrete = constants.%const.a89] -// CHECK:STDOUT: %ptr.loc7: type = ptr_type %const.loc7 [concrete = constants.%ptr.089] +// CHECK:STDOUT: %const.loc7: type = const_type %C.ref.loc7 [concrete = constants.%const.13f] +// CHECK:STDOUT: %ptr.loc7: type = ptr_type %const.loc7 [concrete = constants.%ptr.77f] // CHECK:STDOUT: } -// CHECK:STDOUT: %a_ptr: ref %ptr.089 = ref_binding a_ptr, %a_ptr.var [concrete = %a_ptr.var] +// CHECK:STDOUT: %a_ptr: ref %ptr.77f = ref_binding a_ptr, %a_ptr.var [concrete = %a_ptr.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a_ref.ref: ref %const.a89 = name_ref a_ref, imports.%Main.a_ref [concrete = imports.%a_ref.var] -// CHECK:STDOUT: %addr: %ptr.089 = addr_of %a_ref.ref [concrete = constants.%addr] -// CHECK:STDOUT: %impl.elem0.loc6: %.f5c = impl_witness_access constants.%Copy.impl_witness.243, element0 [concrete = constants.%ptr.as.Copy.impl.Op.9a6] +// CHECK:STDOUT: %a_ref.ref: ref %const.13f = name_ref a_ref, imports.%Main.a_ref [concrete = imports.%a_ref.var] +// CHECK:STDOUT: %addr: %ptr.77f = addr_of %a_ref.ref [concrete = constants.%addr] +// CHECK:STDOUT: %impl.elem0.loc6: %.1ef = impl_witness_access constants.%Copy.impl_witness.08a, element0 [concrete = constants.%ptr.as.Copy.impl.Op.194] // CHECK:STDOUT: %bound_method.loc6_19.1: = bound_method %addr, %impl.elem0.loc6 [concrete = constants.%ptr.as.Copy.impl.Op.bound] -// CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @ptr.as.Copy.impl.Op(constants.%const.a89) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] +// CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @ptr.as.Copy.impl.Op(constants.%const.13f) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc6_19.2: = bound_method %addr, %specific_fn.loc6 [concrete = constants.%bound_method] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc6: init %ptr.089 = call %bound_method.loc6_19.2(%addr) [concrete = constants.%addr] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc6: init %ptr.77f = call %bound_method.loc6_19.2(%addr) [concrete = constants.%addr] // CHECK:STDOUT: assign file.%a.var, %ptr.as.Copy.impl.Op.call.loc6 -// CHECK:STDOUT: %a_ptr_ref.ref: ref %ptr.089 = name_ref a_ptr_ref, imports.%Main.a_ptr_ref [concrete = imports.%a_ptr_ref.var] -// CHECK:STDOUT: %.loc7: %ptr.089 = acquire_value %a_ptr_ref.ref -// CHECK:STDOUT: %impl.elem0.loc7: %.f5c = impl_witness_access constants.%Copy.impl_witness.243, element0 [concrete = constants.%ptr.as.Copy.impl.Op.9a6] +// CHECK:STDOUT: %a_ptr_ref.ref: ref %ptr.77f = name_ref a_ptr_ref, imports.%Main.a_ptr_ref [concrete = imports.%a_ptr_ref.var] +// CHECK:STDOUT: %.loc7: %ptr.77f = acquire_value %a_ptr_ref.ref +// CHECK:STDOUT: %impl.elem0.loc7: %.1ef = impl_witness_access constants.%Copy.impl_witness.08a, element0 [concrete = constants.%ptr.as.Copy.impl.Op.194] // CHECK:STDOUT: %bound_method.loc7_23.1: = bound_method %.loc7, %impl.elem0.loc7 -// CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @ptr.as.Copy.impl.Op(constants.%const.a89) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] +// CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @ptr.as.Copy.impl.Op(constants.%const.13f) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc7_23.2: = bound_method %.loc7, %specific_fn.loc7 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc7: init %ptr.089 = call %bound_method.loc7_23.2(%.loc7) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc7: init %ptr.77f = call %bound_method.loc7_23.2(%.loc7) // CHECK:STDOUT: assign file.%a_ptr.var, %ptr.as.Copy.impl.Op.call.loc7 // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/deduce/array.carbon b/toolchain/check/testdata/deduce/array.carbon index 4d3b1243d6eb..0c0af0ab44e7 100644 --- a/toolchain/check/testdata/deduce/array.carbon +++ b/toolchain/check/testdata/deduce/array.carbon @@ -164,13 +164,13 @@ fn G() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %array_type.3ec [symbolic] -// CHECK:STDOUT: %F.specific_fn.d7f: = specific_function %F, @F(%T) [symbolic] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %F.specific_fn.eab: = specific_function %F, @F(%T) [symbolic] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %array_type.be4: type = array_type %int_3, %C [concrete] -// CHECK:STDOUT: %pattern_type.5bc: type = pattern_type %array_type.be4 [concrete] +// CHECK:STDOUT: %array_type.9a3: type = array_type %int_3, %C [concrete] +// CHECK:STDOUT: %pattern_type.3f5: type = pattern_type %array_type.9a3 [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.8d4: type = tuple_type (%empty_struct_type, %empty_struct_type, %empty_struct_type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.8d4 = tuple_value (%empty_struct, %empty_struct, %empty_struct) [concrete] @@ -178,12 +178,12 @@ fn G() { // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %array: %array_type.be4 = tuple_value (%C.val, %C.val, %C.val) [concrete] -// CHECK:STDOUT: %F.specific_fn.076: = specific_function %F, @F(%C) [concrete] +// CHECK:STDOUT: %array: %array_type.9a3 = tuple_value (%C.val, %C.val, %C.val) [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.790b3b.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %complete_type.2d2: = complete_type_witness %array_type.be4 [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: %complete_type.1a4: = complete_type_witness %array_type.9a3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -229,11 +229,11 @@ fn G() { // CHECK:STDOUT: %return: ref @F.%T.loc6_7.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref.loc8 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc8 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc8_11.2: Core.Form = init_form %C.ref.loc8 [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc8_11.2: Core.Form = init_form %C.ref.loc8 [concrete = constants.%.a44] // CHECK:STDOUT: %return.param: ref %C = out_param call_param0 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } @@ -256,13 +256,13 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc6_29.1 [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %F.specific_fn.loc6_46.2: = specific_function constants.%F, @F(%T.loc6_7.1) [symbolic = %F.specific_fn.loc6_46.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %F.specific_fn.loc6_46.2: = specific_function constants.%F, @F(%T.loc6_7.1) [symbolic = %F.specific_fn.loc6_46.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%a.param: @F.%array_type.loc6_29.1 (%array_type.3ec)) -> out %return.param: @F.%T.loc6_7.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %a.ref: @F.%array_type.loc6_29.1 (%array_type.3ec) = name_ref a, %a -// CHECK:STDOUT: %F.specific_fn.loc6_46.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc6_46.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %F.specific_fn.loc6_46.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc6_46.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: %.loc6_35.1: ref @F.%T.loc6_7.1 (%T) = splice_block %return.param {} // CHECK:STDOUT: %F.call: init @F.%T.loc6_7.1 (%T) to %.loc6_35.1 = call %F.specific_fn.loc6_46.1(%a.ref) // CHECK:STDOUT: return %F.call to %return.param @@ -272,10 +272,10 @@ fn G() { // CHECK:STDOUT: fn @G() -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.5bc = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.5bc = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.3f5 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.3f5 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %array_type.be4 = var %a.var_patt +// CHECK:STDOUT: %a.var: ref %array_type.9a3 = var %a.var_patt // CHECK:STDOUT: %.loc9_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc9_30.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc9_34.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -292,22 +292,22 @@ fn G() { // CHECK:STDOUT: %.loc9_35.6: ref %C = array_index %a.var, %int_2 // CHECK:STDOUT: %.loc9_34.2: init %C to %.loc9_35.6 = class_init () [concrete = constants.%C.val] // CHECK:STDOUT: %.loc9_35.7: init %C = converted %.loc9_34.1, %.loc9_34.2 [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc9_35.8: init %array_type.be4 to %a.var = array_init (%.loc9_35.3, %.loc9_35.5, %.loc9_35.7) [concrete = constants.%array] -// CHECK:STDOUT: %.loc9_3: init %array_type.be4 = converted %.loc9_35.1, %.loc9_35.8 [concrete = constants.%array] +// CHECK:STDOUT: %.loc9_35.8: init %array_type.9a3 to %a.var = array_init (%.loc9_35.3, %.loc9_35.5, %.loc9_35.7) [concrete = constants.%array] +// CHECK:STDOUT: %.loc9_3: init %array_type.9a3 = converted %.loc9_35.1, %.loc9_35.8 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc9_3 -// CHECK:STDOUT: %.loc9_20: type = splice_block %array_type [concrete = constants.%array_type.be4] { +// CHECK:STDOUT: %.loc9_20: type = splice_block %array_type [concrete = constants.%array_type.9a3] { // CHECK:STDOUT: %C.ref.loc9: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] -// CHECK:STDOUT: %array_type: type = array_type %int_3, %C.ref.loc9 [concrete = constants.%array_type.be4] +// CHECK:STDOUT: %array_type: type = array_type %int_3, %C.ref.loc9 [concrete = constants.%array_type.9a3] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %array_type.be4 = ref_binding a, %a.var +// CHECK:STDOUT: %a: ref %array_type.9a3 = ref_binding a, %a.var // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %a.ref: ref %array_type.be4 = name_ref a, %a -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.076] +// CHECK:STDOUT: %a.ref: ref %array_type.9a3 = name_ref a, %a +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.e0d] // CHECK:STDOUT: %.loc8_11.1: ref %C = splice_block %return.param {} -// CHECK:STDOUT: %.loc10: %array_type.be4 = acquire_value %a.ref +// 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.2dd605.3 +// 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: return %F.call to %return.param // CHECK:STDOUT: } @@ -319,7 +319,7 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %array_type.be4) { +// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %array_type.9a3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -333,19 +333,19 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete -// CHECK:STDOUT: %F.specific_fn.loc6_46.2 => constants.%F.specific_fn.d7f +// CHECK:STDOUT: %F.specific_fn.loc6_46.2 => constants.%F.specific_fn.eab // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { // CHECK:STDOUT: %T.loc6_7.1 => constants.%C -// CHECK:STDOUT: %array_type.loc6_29.1 => constants.%array_type.be4 -// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.5bc -// CHECK:STDOUT: %.loc6_35.2 => constants.%.8f0 -// CHECK:STDOUT: %pattern_type.loc6_35 => constants.%pattern_type.0d5 +// CHECK:STDOUT: %array_type.loc6_29.1 => constants.%array_type.9a3 +// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.3f5 +// CHECK:STDOUT: %.loc6_35.2 => constants.%.a44 +// CHECK:STDOUT: %pattern_type.loc6_35 => constants.%pattern_type.98b // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.2d2 -// CHECK:STDOUT: %F.specific_fn.loc6_46.2 => constants.%F.specific_fn.076 +// CHECK:STDOUT: %require_complete => constants.%complete_type.1a4 +// CHECK:STDOUT: %F.specific_fn.loc6_46.2 => constants.%F.specific_fn.e0d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- bound_only.carbon @@ -360,39 +360,39 @@ fn G() { // CHECK:STDOUT: %IntLiteral: %IntLiteral.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.dc0: type = pattern_type Core.IntLiteral [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %array_type.ada: type = array_type %N, %C [symbolic] -// CHECK:STDOUT: %pattern_type.94a: type = pattern_type %array_type.ada [symbolic] +// CHECK:STDOUT: %array_type.87f: type = array_type %N, %C [symbolic] +// CHECK:STDOUT: %pattern_type.5ed: type = pattern_type %array_type.87f [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.562: = require_complete_type %array_type.ada [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %require_complete.29f: = require_complete_type %array_type.87f [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.941: = bound_method %N, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.a95: = bound_method %N, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.a95(%N) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.2b9: = bound_method %N, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [symbolic] +// 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.ee4: = bound_method %N, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.ee4(%N) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %array_type.be4: type = array_type %int_3.1ba, %C [concrete] -// CHECK:STDOUT: %pattern_type.5bc: type = pattern_type %array_type.be4 [concrete] +// CHECK:STDOUT: %array_type.9a3: type = array_type %int_3.1ba, %C [concrete] +// CHECK:STDOUT: %pattern_type.3f5: type = pattern_type %array_type.9a3 [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.8d4: type = tuple_type (%empty_struct_type, %empty_struct_type, %empty_struct_type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.8d4 = tuple_value (%empty_struct, %empty_struct, %empty_struct) [concrete] @@ -400,15 +400,15 @@ fn G() { // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %array: %array_type.be4 = tuple_value (%C.val, %C.val, %C.val) [concrete] +// CHECK:STDOUT: %array: %array_type.9a3 = tuple_value (%C.val, %C.val, %C.val) [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.790b3b.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %complete_type.2d2: = complete_type_witness %array_type.be4 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [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: %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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -422,9 +422,9 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.IntLiteral: %IntLiteral.type = import_ref Core//prelude/parts/int_literal, IntLiteral, loaded [concrete = constants.%IntLiteral] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -439,13 +439,13 @@ fn G() { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.94a) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.94a) = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.5ed) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.5ed) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc6_55: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc6_55: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %.loc6_26.1: type = splice_block %.loc6_26.3 [concrete = Core.IntLiteral] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] @@ -455,22 +455,22 @@ fn G() { // CHECK:STDOUT: %.loc6_26.3: type = converted %IntLiteral.call, %.loc6_26.2 [concrete = Core.IntLiteral] // CHECK:STDOUT: } // CHECK:STDOUT: %N.loc6_7.2: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N.loc6_7.1 (constants.%N)] -// CHECK:STDOUT: %a.param: @F.%array_type.loc6_49.1 (%array_type.ada) = value_param call_param0 -// CHECK:STDOUT: %.loc6_49: type = splice_block %array_type.loc6_49.2 [symbolic = %array_type.loc6_49.1 (constants.%array_type.ada)] { +// CHECK:STDOUT: %a.param: @F.%array_type.loc6_49.1 (%array_type.87f) = value_param call_param0 +// CHECK:STDOUT: %.loc6_49: type = splice_block %array_type.loc6_49.2 [symbolic = %array_type.loc6_49.1 (constants.%array_type.87f)] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %N.ref.loc6_48: Core.IntLiteral = name_ref N, %N.loc6_7.2 [symbolic = %N.loc6_7.1 (constants.%N)] -// CHECK:STDOUT: %array_type.loc6_49.2: type = array_type %N.ref.loc6_48, %C.ref [symbolic = %array_type.loc6_49.1 (constants.%array_type.ada)] +// CHECK:STDOUT: %array_type.loc6_49.2: type = array_type %N.ref.loc6_48, %C.ref [symbolic = %array_type.loc6_49.1 (constants.%array_type.87f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%array_type.loc6_49.1 (%array_type.ada) = value_binding a, %a.param +// CHECK:STDOUT: %a: @F.%array_type.loc6_49.1 (%array_type.87f) = value_binding a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -486,22 +486,22 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%N.loc6_7.2: Core.IntLiteral) { // CHECK:STDOUT: %N.loc6_7.1: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N.loc6_7.1 (constants.%N)] -// CHECK:STDOUT: %array_type.loc6_49.1: type = array_type %N.loc6_7.1, constants.%C [symbolic = %array_type.loc6_49.1 (constants.%array_type.ada)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc6_49.1 [symbolic = %pattern_type (constants.%pattern_type.94a)] +// CHECK:STDOUT: %array_type.loc6_49.1: type = array_type %N.loc6_7.1, constants.%C [symbolic = %array_type.loc6_49.1 (constants.%array_type.87f)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc6_49.1 [symbolic = %pattern_type (constants.%pattern_type.5ed)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc6_49.1 [symbolic = %require_complete (constants.%require_complete.562)] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %N.loc6_7.1, constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.941)] -// CHECK:STDOUT: %bound_method.loc6_69.3: = bound_method %N.loc6_7.1, constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [symbolic = %bound_method.loc6_69.3 (constants.%bound_method.a95)] +// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc6_49.1 [symbolic = %require_complete (constants.%require_complete.29f)] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %N.loc6_7.1, constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.2b9)] +// CHECK:STDOUT: %bound_method.loc6_69.3: = bound_method %N.loc6_7.1, constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [symbolic = %bound_method.loc6_69.3 (constants.%bound_method.ee4)] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_69.2: init %i32 = call %bound_method.loc6_69.3(%N.loc6_7.1) [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_69.2 (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc6_49.1 (%array_type.ada)) -> out %return.param: %i32 { +// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc6_49.1 (%array_type.87f)) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %N.ref.loc6_68: Core.IntLiteral = name_ref N, %N.loc6_7.2 [symbolic = %N.loc6_7.1 (constants.%N)] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc6_69.1: = bound_method %N.ref.loc6_68, %impl.elem0 [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.941)] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc6_69.1: = bound_method %N.ref.loc6_68, %impl.elem0 [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.2b9)] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_69.2: = bound_method %N.ref.loc6_68, %specific_fn [symbolic = %bound_method.loc6_69.3 (constants.%bound_method.a95)] +// CHECK:STDOUT: %bound_method.loc6_69.2: = bound_method %N.ref.loc6_68, %specific_fn [symbolic = %bound_method.loc6_69.3 (constants.%bound_method.ee4)] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_69.1: init %i32 = call %bound_method.loc6_69.2(%N.ref.loc6_68) [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_69.2 (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: %.loc6_69: init %i32 = converted %N.ref.loc6_68, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_69.1 [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_69.2 (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: return %.loc6_69 @@ -511,10 +511,10 @@ fn G() { // CHECK:STDOUT: fn @G() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.5bc = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.5bc = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.3f5 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.3f5 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %array_type.be4 = var %a.var_patt +// CHECK:STDOUT: %a.var: ref %array_type.9a3 = var %a.var_patt // CHECK:STDOUT: %.loc9_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc9_30.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc9_34.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -531,21 +531,21 @@ fn G() { // CHECK:STDOUT: %.loc9_35.6: ref %C = array_index %a.var, %int_2 // CHECK:STDOUT: %.loc9_34.2: init %C to %.loc9_35.6 = class_init () [concrete = constants.%C.val] // CHECK:STDOUT: %.loc9_35.7: init %C = converted %.loc9_34.1, %.loc9_34.2 [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc9_35.8: init %array_type.be4 to %a.var = array_init (%.loc9_35.3, %.loc9_35.5, %.loc9_35.7) [concrete = constants.%array] -// CHECK:STDOUT: %.loc9_3: init %array_type.be4 = converted %.loc9_35.1, %.loc9_35.8 [concrete = constants.%array] +// CHECK:STDOUT: %.loc9_35.8: init %array_type.9a3 to %a.var = array_init (%.loc9_35.3, %.loc9_35.5, %.loc9_35.7) [concrete = constants.%array] +// CHECK:STDOUT: %.loc9_3: init %array_type.9a3 = converted %.loc9_35.1, %.loc9_35.8 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc9_3 -// CHECK:STDOUT: %.loc9_20: type = splice_block %array_type [concrete = constants.%array_type.be4] { +// CHECK:STDOUT: %.loc9_20: type = splice_block %array_type [concrete = constants.%array_type.9a3] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %array_type: type = array_type %int_3, %C.ref [concrete = constants.%array_type.be4] +// CHECK:STDOUT: %array_type: type = array_type %int_3, %C.ref [concrete = constants.%array_type.9a3] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %array_type.be4 = ref_binding a, %a.var +// CHECK:STDOUT: %a: ref %array_type.9a3 = ref_binding a, %a.var // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %a.ref: ref %array_type.be4 = name_ref a, %a +// CHECK:STDOUT: %a.ref: ref %array_type.9a3 = name_ref a, %a // CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%int_3.1ba) [concrete = constants.%F.specific_fn] -// CHECK:STDOUT: %.loc10: %array_type.be4 = acquire_value %a.ref +// 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.2dd605.3 +// 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: return %F.call // CHECK:STDOUT: } @@ -557,27 +557,27 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %array_type.be4) { +// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %array_type.9a3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%N) { // CHECK:STDOUT: %N.loc6_7.1 => constants.%N -// CHECK:STDOUT: %array_type.loc6_49.1 => constants.%array_type.ada -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.94a +// CHECK:STDOUT: %array_type.loc6_49.1 => constants.%array_type.87f +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5ed // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%int_3.1ba) { // CHECK:STDOUT: %N.loc6_7.1 => constants.%int_3.1ba -// CHECK:STDOUT: %array_type.loc6_49.1 => constants.%array_type.be4 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5bc +// CHECK:STDOUT: %array_type.loc6_49.1 => constants.%array_type.9a3 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f5 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.2d2 -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound => constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0 -// CHECK:STDOUT: %bound_method.loc6_69.3 => constants.%bound_method.655 -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_69.2 => constants.%int_3.6cc +// CHECK:STDOUT: %require_complete => constants.%complete_type.1a4 +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound => constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485 +// CHECK:STDOUT: %bound_method.loc6_69.3 => constants.%bound_method.763 +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_69.2 => constants.%int_3.410 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- type_and_bound.carbon @@ -603,8 +603,8 @@ fn G() { // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %array_type.be4: type = array_type %int_3, %C [concrete] -// CHECK:STDOUT: %pattern_type.5bc: type = pattern_type %array_type.be4 [concrete] +// CHECK:STDOUT: %array_type.9a3: type = array_type %int_3, %C [concrete] +// CHECK:STDOUT: %pattern_type.3f5: type = pattern_type %array_type.9a3 [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.8d4: type = tuple_type (%empty_struct_type, %empty_struct_type, %empty_struct_type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.8d4 = tuple_value (%empty_struct, %empty_struct, %empty_struct) [concrete] @@ -612,12 +612,12 @@ fn G() { // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %array: %array_type.be4 = tuple_value (%C.val, %C.val, %C.val) [concrete] +// CHECK:STDOUT: %array: %array_type.9a3 = tuple_value (%C.val, %C.val, %C.val) [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.790b3b.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %complete_type.2d2: = complete_type_witness %array_type.be4 [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: %complete_type.1a4: = complete_type_witness %array_type.9a3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -697,10 +697,10 @@ fn G() { // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.5bc = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.5bc = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.3f5 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.3f5 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %array_type.be4 = var %a.var_patt +// CHECK:STDOUT: %a.var: ref %array_type.9a3 = var %a.var_patt // CHECK:STDOUT: %.loc9_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc9_30.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc9_34.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -717,21 +717,21 @@ fn G() { // CHECK:STDOUT: %.loc9_35.6: ref %C = array_index %a.var, %int_2 // CHECK:STDOUT: %.loc9_34.2: init %C to %.loc9_35.6 = class_init () [concrete = constants.%C.val] // CHECK:STDOUT: %.loc9_35.7: init %C = converted %.loc9_34.1, %.loc9_34.2 [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc9_35.8: init %array_type.be4 to %a.var = array_init (%.loc9_35.3, %.loc9_35.5, %.loc9_35.7) [concrete = constants.%array] -// CHECK:STDOUT: %.loc9_3: init %array_type.be4 = converted %.loc9_35.1, %.loc9_35.8 [concrete = constants.%array] +// CHECK:STDOUT: %.loc9_35.8: init %array_type.9a3 to %a.var = array_init (%.loc9_35.3, %.loc9_35.5, %.loc9_35.7) [concrete = constants.%array] +// CHECK:STDOUT: %.loc9_3: init %array_type.9a3 = converted %.loc9_35.1, %.loc9_35.8 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc9_3 -// CHECK:STDOUT: %.loc9_20: type = splice_block %array_type [concrete = constants.%array_type.be4] { +// CHECK:STDOUT: %.loc9_20: type = splice_block %array_type [concrete = constants.%array_type.9a3] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] -// CHECK:STDOUT: %array_type: type = array_type %int_3, %C.ref [concrete = constants.%array_type.be4] +// CHECK:STDOUT: %array_type: type = array_type %int_3, %C.ref [concrete = constants.%array_type.9a3] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %array_type.be4 = ref_binding a, %a.var +// CHECK:STDOUT: %a: ref %array_type.9a3 = ref_binding a, %a.var // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %a.ref: ref %array_type.be4 = name_ref a, %a +// CHECK:STDOUT: %a.ref: ref %array_type.9a3 = name_ref a, %a // 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.be4 = acquire_value %a.ref +// 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.2dd605.3 +// 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: return // CHECK:STDOUT: } @@ -743,7 +743,7 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %array_type.be4) { +// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %array_type.9a3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -758,11 +758,11 @@ fn G() { // CHECK:STDOUT: specific @F(constants.%C, constants.%int_3) { // CHECK:STDOUT: %T.loc6_7.1 => constants.%C // CHECK:STDOUT: %N.loc6_17.1 => constants.%int_3 -// CHECK:STDOUT: %array_type.loc6_59.1 => constants.%array_type.be4 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5bc +// CHECK:STDOUT: %array_type.loc6_59.1 => constants.%array_type.9a3 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f5 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.2d2 +// CHECK:STDOUT: %require_complete => constants.%complete_type.1a4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_bound_mismatch.carbon @@ -784,30 +784,30 @@ fn G() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %array_type.a0b [symbolic] -// CHECK:STDOUT: %F.specific_fn.d7f: = specific_function %F, @F(%T) [symbolic] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %F.specific_fn.eab: = specific_function %F, @F(%T) [symbolic] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %array_type.be4: type = array_type %int_3, %C [concrete] -// CHECK:STDOUT: %pattern_type.5bc: type = pattern_type %array_type.be4 [concrete] +// CHECK:STDOUT: %array_type.9a3: type = array_type %int_3, %C [concrete] +// CHECK:STDOUT: %pattern_type.3f5: type = pattern_type %array_type.9a3 [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.8d4: type = tuple_type (%empty_struct_type, %empty_struct_type, %empty_struct_type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.8d4 = tuple_value (%empty_struct, %empty_struct, %empty_struct) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %array: %array_type.be4 = tuple_value (%C.val, %C.val, %C.val) [concrete] -// CHECK:STDOUT: %array_type.f5e: type = array_type %int_2, %C [concrete] -// CHECK:STDOUT: %pattern_type.501: type = pattern_type %array_type.f5e [concrete] -// CHECK:STDOUT: %F.specific_fn.076: = specific_function %F, @F(%C) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %array: %array_type.9a3 = tuple_value (%C.val, %C.val, %C.val) [concrete] +// CHECK:STDOUT: %array_type.cc9: type = array_type %int_2, %C [concrete] +// CHECK:STDOUT: %pattern_type.08b: type = pattern_type %array_type.cc9 [concrete] +// CHECK:STDOUT: %F.specific_fn.e0d: = specific_function %F, @F(%C) [concrete] +// 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.790b3b.3: type = fn_type @Destroy.Op.loc10_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %complete_type.acb: = complete_type_witness %array_type.f5e [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: %complete_type.d6a: = complete_type_witness %array_type.cc9 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -817,7 +817,7 @@ fn G() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -855,11 +855,11 @@ fn G() { // CHECK:STDOUT: %return: ref @F.%T.loc6_7.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref.loc8 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc8 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc8_11.2: Core.Form = init_form %C.ref.loc8 [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc8_11.2: Core.Form = init_form %C.ref.loc8 [concrete = constants.%.a44] // CHECK:STDOUT: %return.param: ref %C = out_param call_param0 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } @@ -882,13 +882,13 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc6_29.1 [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %F.specific_fn.loc6_46.2: = specific_function constants.%F, @F(%T.loc6_7.1) [symbolic = %F.specific_fn.loc6_46.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %F.specific_fn.loc6_46.2: = specific_function constants.%F, @F(%T.loc6_7.1) [symbolic = %F.specific_fn.loc6_46.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%a.param: @F.%array_type.loc6_29.1 (%array_type.a0b)) -> out %return.param: @F.%T.loc6_7.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %a.ref: @F.%array_type.loc6_29.1 (%array_type.a0b) = name_ref a, %a -// CHECK:STDOUT: %F.specific_fn.loc6_46.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc6_46.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %F.specific_fn.loc6_46.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc6_46.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: %.loc6_35.1: ref @F.%T.loc6_7.1 (%T) = splice_block %return.param {} // CHECK:STDOUT: %F.call: init @F.%T.loc6_7.1 (%T) to %.loc6_35.1 = call %F.specific_fn.loc6_46.1(%a.ref) // CHECK:STDOUT: return %F.call to %return.param @@ -898,10 +898,10 @@ fn G() { // CHECK:STDOUT: fn @G() -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.5bc = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.5bc = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.3f5 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.3f5 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %array_type.be4 = var %a.var_patt +// CHECK:STDOUT: %a.var: ref %array_type.9a3 = var %a.var_patt // CHECK:STDOUT: %.loc10_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc10_30.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc10_34.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -918,22 +918,22 @@ fn G() { // CHECK:STDOUT: %.loc10_35.6: ref %C = array_index %a.var, %int_2 // CHECK:STDOUT: %.loc10_34.2: init %C to %.loc10_35.6 = class_init () [concrete = constants.%C.val] // CHECK:STDOUT: %.loc10_35.7: init %C = converted %.loc10_34.1, %.loc10_34.2 [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc10_35.8: init %array_type.be4 to %a.var = array_init (%.loc10_35.3, %.loc10_35.5, %.loc10_35.7) [concrete = constants.%array] -// CHECK:STDOUT: %.loc10_3: init %array_type.be4 = converted %.loc10_35.1, %.loc10_35.8 [concrete = constants.%array] +// CHECK:STDOUT: %.loc10_35.8: init %array_type.9a3 to %a.var = array_init (%.loc10_35.3, %.loc10_35.5, %.loc10_35.7) [concrete = constants.%array] +// CHECK:STDOUT: %.loc10_3: init %array_type.9a3 = converted %.loc10_35.1, %.loc10_35.8 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc10_3 -// CHECK:STDOUT: %.loc10_20: type = splice_block %array_type [concrete = constants.%array_type.be4] { +// CHECK:STDOUT: %.loc10_20: type = splice_block %array_type [concrete = constants.%array_type.9a3] { // CHECK:STDOUT: %C.ref.loc10: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] -// CHECK:STDOUT: %array_type: type = array_type %int_3, %C.ref.loc10 [concrete = constants.%array_type.be4] +// CHECK:STDOUT: %array_type: type = array_type %int_3, %C.ref.loc10 [concrete = constants.%array_type.9a3] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %array_type.be4 = ref_binding a, %a.var +// CHECK:STDOUT: %a: ref %array_type.9a3 = ref_binding a, %a.var // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %a.ref: ref %array_type.be4 = name_ref a, %a -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.076] +// CHECK:STDOUT: %a.ref: ref %array_type.9a3 = name_ref a, %a +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.e0d] // CHECK:STDOUT: %.loc8_11.1: ref %C = splice_block %return.param {} -// CHECK:STDOUT: %.loc21: %array_type.f5e = converted %a.ref, [concrete = ] +// 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.2dd605.3 +// 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: return %F.call to %return.param // CHECK:STDOUT: } @@ -945,7 +945,7 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.3(%self.param: ref %array_type.be4) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_3.3(%self.param: ref %array_type.9a3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -959,19 +959,19 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete -// CHECK:STDOUT: %F.specific_fn.loc6_46.2 => constants.%F.specific_fn.d7f +// CHECK:STDOUT: %F.specific_fn.loc6_46.2 => constants.%F.specific_fn.eab // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { // CHECK:STDOUT: %T.loc6_7.1 => constants.%C -// CHECK:STDOUT: %array_type.loc6_29.1 => constants.%array_type.f5e -// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.501 -// CHECK:STDOUT: %.loc6_35.2 => constants.%.8f0 -// CHECK:STDOUT: %pattern_type.loc6_35 => constants.%pattern_type.0d5 +// CHECK:STDOUT: %array_type.loc6_29.1 => constants.%array_type.cc9 +// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.08b +// CHECK:STDOUT: %.loc6_35.2 => constants.%.a44 +// CHECK:STDOUT: %pattern_type.loc6_35 => constants.%pattern_type.98b // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.acb -// CHECK:STDOUT: %F.specific_fn.loc6_46.2 => constants.%F.specific_fn.076 +// CHECK:STDOUT: %require_complete => constants.%complete_type.d6a +// CHECK:STDOUT: %F.specific_fn.loc6_46.2 => constants.%F.specific_fn.e0d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_type_mismatch.carbon @@ -987,39 +987,39 @@ fn G() { // CHECK:STDOUT: %IntLiteral: %IntLiteral.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.dc0: type = pattern_type Core.IntLiteral [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %array_type.ada: type = array_type %N, %C [symbolic] -// CHECK:STDOUT: %pattern_type.94a: type = pattern_type %array_type.ada [symbolic] +// CHECK:STDOUT: %array_type.87f: type = array_type %N, %C [symbolic] +// CHECK:STDOUT: %pattern_type.5ed: type = pattern_type %array_type.87f [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.562: = require_complete_type %array_type.ada [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %require_complete.29f: = require_complete_type %array_type.87f [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.941: = bound_method %N, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.a95: = bound_method %N, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.a95(%N) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.2b9: = bound_method %N, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [symbolic] +// 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.ee4: = bound_method %N, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.ee4(%N) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %array_type.918: type = array_type %int_3.1ba, %D [concrete] -// CHECK:STDOUT: %pattern_type.105: type = pattern_type %array_type.918 [concrete] +// CHECK:STDOUT: %array_type.cec: type = array_type %int_3.1ba, %D [concrete] +// CHECK:STDOUT: %pattern_type.0ed: type = pattern_type %array_type.cec [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.8d4: type = tuple_type (%empty_struct_type, %empty_struct_type, %empty_struct_type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.8d4 = tuple_value (%empty_struct, %empty_struct, %empty_struct) [concrete] @@ -1027,17 +1027,17 @@ fn G() { // CHECK:STDOUT: %D.val: %D = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %array: %array_type.918 = tuple_value (%D.val, %D.val, %D.val) [concrete] -// CHECK:STDOUT: %array_type.be4: type = array_type %int_3.1ba, %C [concrete] -// CHECK:STDOUT: %pattern_type.5bc: type = pattern_type %array_type.be4 [concrete] +// CHECK:STDOUT: %array: %array_type.cec = tuple_value (%D.val, %D.val, %D.val) [concrete] +// CHECK:STDOUT: %array_type.9a3: type = array_type %int_3.1ba, %C [concrete] +// CHECK:STDOUT: %pattern_type.3f5: type = pattern_type %array_type.9a3 [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.790b3b.3: type = fn_type @Destroy.Op.loc11_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %complete_type.2d2: = complete_type_witness %array_type.be4 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [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: %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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1051,9 +1051,9 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.IntLiteral: %IntLiteral.type = import_ref Core//prelude/parts/int_literal, IntLiteral, loaded [concrete = constants.%IntLiteral] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1070,13 +1070,13 @@ fn G() { // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.94a) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.94a) = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.5ed) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.5ed) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc7_55: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc7_55: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %.loc7_26.1: type = splice_block %.loc7_26.3 [concrete = Core.IntLiteral] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] @@ -1086,22 +1086,22 @@ fn G() { // CHECK:STDOUT: %.loc7_26.3: type = converted %IntLiteral.call, %.loc7_26.2 [concrete = Core.IntLiteral] // CHECK:STDOUT: } // CHECK:STDOUT: %N.loc7_7.2: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N.loc7_7.1 (constants.%N)] -// CHECK:STDOUT: %a.param: @F.%array_type.loc7_49.1 (%array_type.ada) = value_param call_param0 -// CHECK:STDOUT: %.loc7_49: type = splice_block %array_type.loc7_49.2 [symbolic = %array_type.loc7_49.1 (constants.%array_type.ada)] { +// CHECK:STDOUT: %a.param: @F.%array_type.loc7_49.1 (%array_type.87f) = value_param call_param0 +// CHECK:STDOUT: %.loc7_49: type = splice_block %array_type.loc7_49.2 [symbolic = %array_type.loc7_49.1 (constants.%array_type.87f)] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %N.ref.loc7_48: Core.IntLiteral = name_ref N, %N.loc7_7.2 [symbolic = %N.loc7_7.1 (constants.%N)] -// CHECK:STDOUT: %array_type.loc7_49.2: type = array_type %N.ref.loc7_48, %C.ref [symbolic = %array_type.loc7_49.1 (constants.%array_type.ada)] +// CHECK:STDOUT: %array_type.loc7_49.2: type = array_type %N.ref.loc7_48, %C.ref [symbolic = %array_type.loc7_49.1 (constants.%array_type.87f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%array_type.loc7_49.1 (%array_type.ada) = value_binding a, %a.param +// CHECK:STDOUT: %a: @F.%array_type.loc7_49.1 (%array_type.87f) = value_binding a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc9: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc9: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -1125,22 +1125,22 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%N.loc7_7.2: Core.IntLiteral) { // CHECK:STDOUT: %N.loc7_7.1: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N.loc7_7.1 (constants.%N)] -// CHECK:STDOUT: %array_type.loc7_49.1: type = array_type %N.loc7_7.1, constants.%C [symbolic = %array_type.loc7_49.1 (constants.%array_type.ada)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc7_49.1 [symbolic = %pattern_type (constants.%pattern_type.94a)] +// CHECK:STDOUT: %array_type.loc7_49.1: type = array_type %N.loc7_7.1, constants.%C [symbolic = %array_type.loc7_49.1 (constants.%array_type.87f)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc7_49.1 [symbolic = %pattern_type (constants.%pattern_type.5ed)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc7_49.1 [symbolic = %require_complete (constants.%require_complete.562)] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %N.loc7_7.1, constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.941)] -// CHECK:STDOUT: %bound_method.loc7_69.3: = bound_method %N.loc7_7.1, constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [symbolic = %bound_method.loc7_69.3 (constants.%bound_method.a95)] +// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc7_49.1 [symbolic = %require_complete (constants.%require_complete.29f)] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %N.loc7_7.1, constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.2b9)] +// CHECK:STDOUT: %bound_method.loc7_69.3: = bound_method %N.loc7_7.1, constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [symbolic = %bound_method.loc7_69.3 (constants.%bound_method.ee4)] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_69.2: init %i32 = call %bound_method.loc7_69.3(%N.loc7_7.1) [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_69.2 (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc7_49.1 (%array_type.ada)) -> out %return.param: %i32 { +// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc7_49.1 (%array_type.87f)) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %N.ref.loc7_68: Core.IntLiteral = name_ref N, %N.loc7_7.2 [symbolic = %N.loc7_7.1 (constants.%N)] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc7_69.1: = bound_method %N.ref.loc7_68, %impl.elem0 [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.941)] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc7_69.1: = bound_method %N.ref.loc7_68, %impl.elem0 [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.2b9)] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_69.2: = bound_method %N.ref.loc7_68, %specific_fn [symbolic = %bound_method.loc7_69.3 (constants.%bound_method.a95)] +// CHECK:STDOUT: %bound_method.loc7_69.2: = bound_method %N.ref.loc7_68, %specific_fn [symbolic = %bound_method.loc7_69.3 (constants.%bound_method.ee4)] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_69.1: init %i32 = call %bound_method.loc7_69.2(%N.ref.loc7_68) [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_69.2 (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: %.loc7_69: init %i32 = converted %N.ref.loc7_68, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_69.1 [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_69.2 (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: return %.loc7_69 @@ -1150,10 +1150,10 @@ fn G() { // CHECK:STDOUT: fn @G() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.105 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.105 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.0ed = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.0ed = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %array_type.918 = var %a.var_patt +// CHECK:STDOUT: %a.var: ref %array_type.cec = var %a.var_patt // CHECK:STDOUT: %.loc11_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc11_30.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc11_34.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -1170,21 +1170,21 @@ fn G() { // CHECK:STDOUT: %.loc11_35.6: ref %D = array_index %a.var, %int_2 // CHECK:STDOUT: %.loc11_34.2: init %D to %.loc11_35.6 = class_init () [concrete = constants.%D.val] // CHECK:STDOUT: %.loc11_35.7: init %D = converted %.loc11_34.1, %.loc11_34.2 [concrete = constants.%D.val] -// CHECK:STDOUT: %.loc11_35.8: init %array_type.918 to %a.var = array_init (%.loc11_35.3, %.loc11_35.5, %.loc11_35.7) [concrete = constants.%array] -// CHECK:STDOUT: %.loc11_3: init %array_type.918 = converted %.loc11_35.1, %.loc11_35.8 [concrete = constants.%array] +// CHECK:STDOUT: %.loc11_35.8: init %array_type.cec to %a.var = array_init (%.loc11_35.3, %.loc11_35.5, %.loc11_35.7) [concrete = constants.%array] +// CHECK:STDOUT: %.loc11_3: init %array_type.cec = converted %.loc11_35.1, %.loc11_35.8 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc11_3 -// CHECK:STDOUT: %.loc11_20: type = splice_block %array_type [concrete = constants.%array_type.918] { +// CHECK:STDOUT: %.loc11_20: type = splice_block %array_type [concrete = constants.%array_type.cec] { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %array_type: type = array_type %int_3, %D.ref [concrete = constants.%array_type.918] +// CHECK:STDOUT: %array_type: type = array_type %int_3, %D.ref [concrete = constants.%array_type.cec] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %array_type.918 = ref_binding a, %a.var +// CHECK:STDOUT: %a: ref %array_type.cec = ref_binding a, %a.var // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %a.ref: ref %array_type.918 = name_ref a, %a +// CHECK:STDOUT: %a.ref: ref %array_type.cec = name_ref a, %a // CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%int_3.1ba) [concrete = constants.%F.specific_fn] -// CHECK:STDOUT: %.loc22: %array_type.be4 = converted %a.ref, [concrete = ] +// 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.2dd605.3 +// 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: return %F.call // CHECK:STDOUT: } @@ -1196,27 +1196,27 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.3(%self.param: ref %array_type.918) { +// CHECK:STDOUT: fn @Destroy.Op.loc11_3.3(%self.param: ref %array_type.cec) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%N) { // CHECK:STDOUT: %N.loc7_7.1 => constants.%N -// CHECK:STDOUT: %array_type.loc7_49.1 => constants.%array_type.ada -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.94a +// CHECK:STDOUT: %array_type.loc7_49.1 => constants.%array_type.87f +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5ed // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%int_3.1ba) { // CHECK:STDOUT: %N.loc7_7.1 => constants.%int_3.1ba -// CHECK:STDOUT: %array_type.loc7_49.1 => constants.%array_type.be4 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5bc +// CHECK:STDOUT: %array_type.loc7_49.1 => constants.%array_type.9a3 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f5 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.2d2 -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound => constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0 -// CHECK:STDOUT: %bound_method.loc7_69.3 => constants.%bound_method.655 -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_69.2 => constants.%int_3.6cc +// CHECK:STDOUT: %require_complete => constants.%complete_type.1a4 +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound => constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485 +// CHECK:STDOUT: %bound_method.loc7_69.3 => constants.%bound_method.763 +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_69.2 => constants.%int_3.410 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_bound_type_mismatch.carbon @@ -1233,47 +1233,47 @@ fn G() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N.fe9: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %N.bbe: %i32 = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %N.37f: %i32 = symbolic_binding N, 0 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %From: Core.IntLiteral = symbolic_binding From, 0 [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.f73: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.34b: %Int.as.ImplicitAs.impl.Convert.type.f73 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.062: = impl_witness imports.%ImplicitAs.impl_witness_table.eac, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.337: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.64e: %Int.as.ImplicitAs.impl.Convert.type.337 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.ace = facet_value %i32, (%ImplicitAs.impl_witness.062) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b68: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.7a9: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b68, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.bbe, %Int.as.ImplicitAs.impl.Convert.64e [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.64e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.f71: = bound_method %N.bbe, %Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.f71(%N.bbe) [symbolic] -// CHECK:STDOUT: %array_type.074: type = array_type %Int.as.ImplicitAs.impl.Convert.call, %C [symbolic] -// CHECK:STDOUT: %pattern_type.394: type = pattern_type %array_type.074 [symbolic] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.48d: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.0f9: %Int.as.ImplicitAs.impl.Convert.type.48d = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.416: = impl_witness imports.%ImplicitAs.impl_witness_table.b8b, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.683: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.69e: %Int.as.ImplicitAs.impl.Convert.type.683 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.7cb = facet_value %i32, (%ImplicitAs.impl_witness.416) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.dc6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.b08: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.dc6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.37f, %Int.as.ImplicitAs.impl.Convert.69e [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.69e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.7c3: = bound_method %N.37f, %Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.7c3(%N.37f) [symbolic] +// CHECK:STDOUT: %array_type.47c: type = array_type %Int.as.ImplicitAs.impl.Convert.call, %C [symbolic] +// CHECK:STDOUT: %pattern_type.f28: type = pattern_type %array_type.47c [symbolic] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.ffa: = require_complete_type %array_type.074 [symbolic] +// CHECK:STDOUT: %require_complete.540: = require_complete_type %array_type.47c [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N.fe9) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %N.bbe, %Int.as.Copy.impl.Op.ce7 [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.f80: = bound_method %N.bbe, %Int.as.Copy.impl.Op.specific_fn [symbolic] +// 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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %N.37f, %Int.as.Copy.impl.Op.4f6 [symbolic] +// 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: %bound_method.d86: = bound_method %N.37f, %Int.as.Copy.impl.Op.specific_fn [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %array_type.be4: type = array_type %int_3, %C [concrete] -// CHECK:STDOUT: %pattern_type.5bc: type = pattern_type %array_type.be4 [concrete] +// CHECK:STDOUT: %array_type.9a3: type = array_type %int_3, %C [concrete] +// CHECK:STDOUT: %pattern_type.3f5: type = pattern_type %array_type.9a3 [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.8d4: type = tuple_type (%empty_struct_type, %empty_struct_type, %empty_struct_type) [concrete] // CHECK:STDOUT: %tuple.5c1: %tuple.type.8d4 = tuple_value (%empty_struct, %empty_struct, %empty_struct) [concrete] @@ -1281,10 +1281,10 @@ fn G() { // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %array: %array_type.be4 = tuple_value (%C.val, %C.val, %C.val) [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.790b3b.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1297,12 +1297,12 @@ fn G() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.835: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.f73) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.34b)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.eac = impl_witness_table (%Core.import_ref.835), @Int.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.32e: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.48d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.0f9)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b8b = impl_witness_table (%Core.import_ref.32e), @Int.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1316,42 +1316,42 @@ fn G() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %N.patt: %pattern_type.104 = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.394) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.394) = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc6_41 [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.6b6 = symbolic_binding_pattern N, 0 [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.f28) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.f28) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc6_41 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_41: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc6_41: Core.Form = init_form %i32.loc6_41 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc6_41: Core.Form = init_form %i32.loc6_41 [concrete = constants.%.795] // CHECK:STDOUT: %.loc6_10: type = splice_block %i32.loc6_10 [concrete = constants.%i32] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %i32.loc6_10: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc6_7.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc6_7.1 (constants.%N.bbe)] -// CHECK:STDOUT: %a.param: @F.%array_type.loc6_35.1 (%array_type.074) = value_param call_param0 -// CHECK:STDOUT: %.loc6_35: type = splice_block %array_type.loc6_35.2 [symbolic = %array_type.loc6_35.1 (constants.%array_type.074)] { +// CHECK:STDOUT: %N.loc6_7.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc6_7.1 (constants.%N.37f)] +// CHECK:STDOUT: %a.param: @F.%array_type.loc6_35.1 (%array_type.47c) = value_param call_param0 +// CHECK:STDOUT: %.loc6_35: type = splice_block %array_type.loc6_35.2 [symbolic = %array_type.loc6_35.1 (constants.%array_type.47c)] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %N.ref.loc6_34: %i32 = name_ref N, %N.loc6_7.2 [symbolic = %N.loc6_7.1 (constants.%N.bbe)] -// CHECK:STDOUT: %impl.elem0.loc6_34: %.7a9 = impl_witness_access constants.%ImplicitAs.impl_witness.062, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.64e] +// CHECK:STDOUT: %N.ref.loc6_34: %i32 = name_ref N, %N.loc6_7.2 [symbolic = %N.loc6_7.1 (constants.%N.37f)] +// CHECK:STDOUT: %impl.elem0.loc6_34: %.b08 = impl_witness_access constants.%ImplicitAs.impl_witness.416, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.69e] // CHECK:STDOUT: %bound_method.loc6_34.2: = bound_method %N.ref.loc6_34, %impl.elem0.loc6_34 [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound)] // CHECK:STDOUT: %specific_fn.loc6_34: = specific_function %impl.elem0.loc6_34, @Int.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Int.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_34.3: = bound_method %N.ref.loc6_34, %specific_fn.loc6_34 [symbolic = %bound_method.loc6_34.1 (constants.%bound_method.f71)] +// CHECK:STDOUT: %bound_method.loc6_34.3: = bound_method %N.ref.loc6_34, %specific_fn.loc6_34 [symbolic = %bound_method.loc6_34.1 (constants.%bound_method.7c3)] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc6_34.2: init Core.IntLiteral = call %bound_method.loc6_34.3(%N.ref.loc6_34) [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc6_34.1 (constants.%Int.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: %.loc6_34.1: Core.IntLiteral = value_of_initializer %Int.as.ImplicitAs.impl.Convert.call.loc6_34.2 [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc6_34.1 (constants.%Int.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: %.loc6_34.2: Core.IntLiteral = converted %N.ref.loc6_34, %.loc6_34.1 [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc6_34.1 (constants.%Int.as.ImplicitAs.impl.Convert.call)] -// CHECK:STDOUT: %array_type.loc6_35.2: type = array_type %.loc6_34.2, %C.ref [symbolic = %array_type.loc6_35.1 (constants.%array_type.074)] +// CHECK:STDOUT: %array_type.loc6_35.2: type = array_type %.loc6_34.2, %C.ref [symbolic = %array_type.loc6_35.1 (constants.%array_type.47c)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%array_type.loc6_35.1 (%array_type.074) = value_binding a, %a.param +// CHECK:STDOUT: %a: @F.%array_type.loc6_35.1 (%array_type.47c) = value_binding a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -1366,26 +1366,26 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%N.loc6_7.2: %i32) { -// CHECK:STDOUT: %N.loc6_7.1: %i32 = symbolic_binding N, 0 [symbolic = %N.loc6_7.1 (constants.%N.bbe)] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.loc6_7.1, constants.%Int.as.ImplicitAs.impl.Convert.64e [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound)] -// CHECK:STDOUT: %bound_method.loc6_34.1: = bound_method %N.loc6_7.1, constants.%Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic = %bound_method.loc6_34.1 (constants.%bound_method.f71)] +// CHECK:STDOUT: %N.loc6_7.1: %i32 = symbolic_binding N, 0 [symbolic = %N.loc6_7.1 (constants.%N.37f)] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.loc6_7.1, constants.%Int.as.ImplicitAs.impl.Convert.69e [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound)] +// CHECK:STDOUT: %bound_method.loc6_34.1: = bound_method %N.loc6_7.1, constants.%Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic = %bound_method.loc6_34.1 (constants.%bound_method.7c3)] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc6_34.1: init Core.IntLiteral = call %bound_method.loc6_34.1(%N.loc6_7.1) [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc6_34.1 (constants.%Int.as.ImplicitAs.impl.Convert.call)] -// CHECK:STDOUT: %array_type.loc6_35.1: type = array_type %Int.as.ImplicitAs.impl.Convert.call.loc6_34.1, constants.%C [symbolic = %array_type.loc6_35.1 (constants.%array_type.074)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc6_35.1 [symbolic = %pattern_type (constants.%pattern_type.394)] +// CHECK:STDOUT: %array_type.loc6_35.1: type = array_type %Int.as.ImplicitAs.impl.Convert.call.loc6_34.1, constants.%C [symbolic = %array_type.loc6_35.1 (constants.%array_type.47c)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc6_35.1 [symbolic = %pattern_type (constants.%pattern_type.f28)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc6_35.1 [symbolic = %require_complete (constants.%require_complete.ffa)] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %N.loc6_7.1, constants.%Int.as.Copy.impl.Op.ce7 [symbolic = %Int.as.Copy.impl.Op.bound (constants.%Int.as.Copy.impl.Op.bound)] -// CHECK:STDOUT: %bound_method.loc6_54.3: = bound_method %N.loc6_7.1, constants.%Int.as.Copy.impl.Op.specific_fn [symbolic = %bound_method.loc6_54.3 (constants.%bound_method.f80)] +// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc6_35.1 [symbolic = %require_complete (constants.%require_complete.540)] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %N.loc6_7.1, constants.%Int.as.Copy.impl.Op.4f6 [symbolic = %Int.as.Copy.impl.Op.bound (constants.%Int.as.Copy.impl.Op.bound)] +// CHECK:STDOUT: %bound_method.loc6_54.3: = bound_method %N.loc6_7.1, constants.%Int.as.Copy.impl.Op.specific_fn [symbolic = %bound_method.loc6_54.3 (constants.%bound_method.d86)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc6_35.1 (%array_type.074)) -> out %return.param: %i32 { +// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc6_35.1 (%array_type.47c)) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc6_54: %i32 = name_ref N, %N.loc6_7.2 [symbolic = %N.loc6_7.1 (constants.%N.bbe)] -// CHECK:STDOUT: %impl.elem0.loc6_54: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %N.ref.loc6_54: %i32 = name_ref N, %N.loc6_7.2 [symbolic = %N.loc6_7.1 (constants.%N.37f)] +// CHECK:STDOUT: %impl.elem0.loc6_54: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_54.1: = bound_method %N.ref.loc6_54, %impl.elem0.loc6_54 [symbolic = %Int.as.Copy.impl.Op.bound (constants.%Int.as.Copy.impl.Op.bound)] // CHECK:STDOUT: %specific_fn.loc6_54: = specific_function %impl.elem0.loc6_54, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_54.2: = bound_method %N.ref.loc6_54, %specific_fn.loc6_54 [symbolic = %bound_method.loc6_54.3 (constants.%bound_method.f80)] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc6_54.2(%N.ref.loc6_54) [symbolic = %N.loc6_7.1 (constants.%N.bbe)] +// CHECK:STDOUT: %bound_method.loc6_54.2: = bound_method %N.ref.loc6_54, %specific_fn.loc6_54 [symbolic = %bound_method.loc6_54.3 (constants.%bound_method.d86)] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc6_54.2(%N.ref.loc6_54) [symbolic = %N.loc6_7.1 (constants.%N.37f)] // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1393,10 +1393,10 @@ fn G() { // CHECK:STDOUT: fn @G() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.5bc = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.5bc = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.3f5 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.3f5 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %array_type.be4 = var %a.var_patt +// CHECK:STDOUT: %a.var: ref %array_type.9a3 = var %a.var_patt // CHECK:STDOUT: %.loc9_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc9_30.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc9_34.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -1413,18 +1413,18 @@ fn G() { // CHECK:STDOUT: %.loc9_35.6: ref %C = array_index %a.var, %int_2 // CHECK:STDOUT: %.loc9_34.2: init %C to %.loc9_35.6 = class_init () [concrete = constants.%C.val] // CHECK:STDOUT: %.loc9_35.7: init %C = converted %.loc9_34.1, %.loc9_34.2 [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc9_35.8: init %array_type.be4 to %a.var = array_init (%.loc9_35.3, %.loc9_35.5, %.loc9_35.7) [concrete = constants.%array] -// CHECK:STDOUT: %.loc9_3: init %array_type.be4 = converted %.loc9_35.1, %.loc9_35.8 [concrete = constants.%array] +// CHECK:STDOUT: %.loc9_35.8: init %array_type.9a3 to %a.var = array_init (%.loc9_35.3, %.loc9_35.5, %.loc9_35.7) [concrete = constants.%array] +// CHECK:STDOUT: %.loc9_3: init %array_type.9a3 = converted %.loc9_35.1, %.loc9_35.8 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc9_3 -// CHECK:STDOUT: %.loc9_20: type = splice_block %array_type [concrete = constants.%array_type.be4] { +// CHECK:STDOUT: %.loc9_20: type = splice_block %array_type [concrete = constants.%array_type.9a3] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] -// CHECK:STDOUT: %array_type: type = array_type %int_3, %C.ref [concrete = constants.%array_type.be4] +// CHECK:STDOUT: %array_type: type = array_type %int_3, %C.ref [concrete = constants.%array_type.9a3] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %array_type.be4 = ref_binding a, %a.var +// CHECK:STDOUT: %a: ref %array_type.9a3 = ref_binding a, %a.var // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %a.ref: ref %array_type.be4 = name_ref a, %a -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.3 +// 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: return // CHECK:STDOUT: } @@ -1436,18 +1436,18 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %array_type.be4) { +// CHECK:STDOUT: fn @Destroy.Op.loc9_3.3(%self.param: ref %array_type.9a3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%N.bbe) { -// CHECK:STDOUT: %N.loc6_7.1 => constants.%N.bbe +// CHECK:STDOUT: specific @F(constants.%N.37f) { +// CHECK:STDOUT: %N.loc6_7.1 => constants.%N.37f // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound => constants.%Int.as.ImplicitAs.impl.Convert.bound -// CHECK:STDOUT: %bound_method.loc6_34.1 => constants.%bound_method.f71 +// CHECK:STDOUT: %bound_method.loc6_34.1 => constants.%bound_method.7c3 // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc6_34.1 => constants.%Int.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %array_type.loc6_35.1 => constants.%array_type.074 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.394 +// CHECK:STDOUT: %array_type.loc6_35.1 => constants.%array_type.47c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_array_length_from_tuple.carbon @@ -1462,29 +1462,29 @@ fn G() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %N.bbe: %i32 = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %N.37f: %i32 = symbolic_binding N, 0 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %From: Core.IntLiteral = symbolic_binding From, 0 [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.f73: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.34b: %Int.as.ImplicitAs.impl.Convert.type.f73 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.062: = impl_witness imports.%ImplicitAs.impl_witness_table.eac, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.337: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.64e: %Int.as.ImplicitAs.impl.Convert.type.337 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.ace = facet_value %i32, (%ImplicitAs.impl_witness.062) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b68: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.7a9: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b68, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.bbe, %Int.as.ImplicitAs.impl.Convert.64e [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.64e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method: = bound_method %N.bbe, %Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method(%N.bbe) [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.48d: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.0f9: %Int.as.ImplicitAs.impl.Convert.type.48d = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.416: = impl_witness imports.%ImplicitAs.impl_witness_table.b8b, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.683: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.69e: %Int.as.ImplicitAs.impl.Convert.type.683 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.7cb = facet_value %i32, (%ImplicitAs.impl_witness.416) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.dc6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.b08: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.dc6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.37f, %Int.as.ImplicitAs.impl.Convert.69e [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.69e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method: = bound_method %N.37f, %Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method(%N.37f) [symbolic] // CHECK:STDOUT: %array_type: type = array_type %Int.as.ImplicitAs.impl.Convert.call, %C [symbolic] -// CHECK:STDOUT: %pattern_type.394: type = pattern_type %array_type [symbolic] +// CHECK:STDOUT: %pattern_type.f28: type = pattern_type %array_type [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.ffa: = require_complete_type %array_type [symbolic] +// CHECK:STDOUT: %require_complete.540: = require_complete_type %array_type [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] @@ -1500,9 +1500,9 @@ fn G() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.835: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.f73) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.34b)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.eac = impl_witness_table (%Core.import_ref.835), @Int.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.32e: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.48d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.0f9)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b8b = impl_witness_table (%Core.import_ref.32e), @Int.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1515,20 +1515,20 @@ fn G() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %N.patt: %pattern_type.104 = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.394) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.394) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.6b6 = symbolic_binding_pattern N, 0 [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.f28) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.f28) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_10: type = splice_block %i32 [concrete = constants.%i32] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc5_7.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc5_7.1 (constants.%N.bbe)] +// CHECK:STDOUT: %N.loc5_7.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc5_7.1 (constants.%N.37f)] // CHECK:STDOUT: %a.param: @F.%array_type.loc5_35.1 (%array_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_35: type = splice_block %array_type.loc5_35.2 [symbolic = %array_type.loc5_35.1 (constants.%array_type)] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc5_7.2 [symbolic = %N.loc5_7.1 (constants.%N.bbe)] -// CHECK:STDOUT: %impl.elem0: %.7a9 = impl_witness_access constants.%ImplicitAs.impl_witness.062, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.64e] +// CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc5_7.2 [symbolic = %N.loc5_7.1 (constants.%N.37f)] +// CHECK:STDOUT: %impl.elem0: %.b08 = impl_witness_access constants.%ImplicitAs.impl_witness.416, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.69e] // CHECK:STDOUT: %bound_method.loc5_34.2: = bound_method %N.ref, %impl.elem0 [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound)] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Int.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Int.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_34.3: = bound_method %N.ref, %specific_fn [symbolic = %bound_method.loc5_34.1 (constants.%bound_method)] @@ -1551,15 +1551,15 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%N.loc5_7.2: %i32) { -// CHECK:STDOUT: %N.loc5_7.1: %i32 = symbolic_binding N, 0 [symbolic = %N.loc5_7.1 (constants.%N.bbe)] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.loc5_7.1, constants.%Int.as.ImplicitAs.impl.Convert.64e [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound)] +// CHECK:STDOUT: %N.loc5_7.1: %i32 = symbolic_binding N, 0 [symbolic = %N.loc5_7.1 (constants.%N.37f)] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.loc5_7.1, constants.%Int.as.ImplicitAs.impl.Convert.69e [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound)] // CHECK:STDOUT: %bound_method.loc5_34.1: = bound_method %N.loc5_7.1, constants.%Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic = %bound_method.loc5_34.1 (constants.%bound_method)] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc5_34.1: init Core.IntLiteral = call %bound_method.loc5_34.1(%N.loc5_7.1) [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc5_34.1 (constants.%Int.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: %array_type.loc5_35.1: type = array_type %Int.as.ImplicitAs.impl.Convert.call.loc5_34.1, constants.%C [symbolic = %array_type.loc5_35.1 (constants.%array_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc5_35.1 [symbolic = %pattern_type (constants.%pattern_type.394)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc5_35.1 [symbolic = %pattern_type (constants.%pattern_type.f28)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc5_35.1 [symbolic = %require_complete (constants.%require_complete.ffa)] +// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc5_35.1 [symbolic = %require_complete (constants.%require_complete.540)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%a.param: @F.%array_type.loc5_35.1 (%array_type)) { // CHECK:STDOUT: !entry: @@ -1577,12 +1577,12 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%N.bbe) { -// CHECK:STDOUT: %N.loc5_7.1 => constants.%N.bbe +// CHECK:STDOUT: specific @F(constants.%N.37f) { +// CHECK:STDOUT: %N.loc5_7.1 => constants.%N.37f // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound => constants.%Int.as.ImplicitAs.impl.Convert.bound // CHECK:STDOUT: %bound_method.loc5_34.1 => constants.%bound_method // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc5_34.1 => constants.%Int.as.ImplicitAs.impl.Convert.call // CHECK:STDOUT: %array_type.loc5_35.1 => constants.%array_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.394 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f28 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/binding_pattern.carbon b/toolchain/check/testdata/deduce/binding_pattern.carbon index d8c5e1d128a1..1f952a6de8ac 100644 --- a/toolchain/check/testdata/deduce/binding_pattern.carbon +++ b/toolchain/check/testdata/deduce/binding_pattern.carbon @@ -57,10 +57,10 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %pattern_type.51d1c4.1: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %C.Create.type.591: type = fn_type @C.Create, @C(%T) [symbolic] -// CHECK:STDOUT: %C.Create.241: %C.Create.type.591 = struct_value () [symbolic] +// CHECK:STDOUT: %C.Create.type.a16: type = fn_type @C.Create, @C(%T) [symbolic] +// CHECK:STDOUT: %C.Create.af7: %C.Create.type.a16 = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] @@ -68,27 +68,27 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %V: type = symbolic_binding V, 1 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %C.955: type = class_type @C, @C(%V) [symbolic] -// CHECK:STDOUT: %C.Create.type.d3b: type = fn_type @C.Create, @C(%V) [symbolic] -// CHECK:STDOUT: %C.Create.8bf: %C.Create.type.d3b = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.9b9: = require_complete_type %C.955 [symbolic] +// CHECK:STDOUT: %C.fa0: type = class_type @C, @C(%V) [symbolic] +// CHECK:STDOUT: %C.Create.type.73a: type = fn_type @C.Create, @C(%V) [symbolic] +// CHECK:STDOUT: %C.Create.a65: %C.Create.type.73a = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.cff: = require_complete_type %C.fa0 [symbolic] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.946: type = pattern_type %V [symbolic] -// CHECK:STDOUT: %C.Create.specific_fn: = specific_function %C.Create.8bf, @C.Create(%V) [symbolic] +// CHECK:STDOUT: %C.Create.specific_fn: = specific_function %C.Create.a65, @C.Create(%V) [symbolic] // CHECK:STDOUT: %require_complete.441: = require_complete_type %V [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.6e6: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] -// CHECK:STDOUT: %Self.b7e: %ImplicitAs.type.6e6 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.bf1: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c63: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self.b7e) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.cba: %ImplicitAs.WithSelf.Convert.type.c63 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.394: type = facet_type <@ImplicitAs, @ImplicitAs(%V)> [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.e07: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V) [symbolic] -// CHECK:STDOUT: %assoc0.e5d: %ImplicitAs.assoc_type.e07 = assoc_entity element0, imports.%Core.import_ref.569 [symbolic] -// CHECK:STDOUT: %require_complete.0d6: = require_complete_type %ImplicitAs.type.394 [symbolic] -// CHECK:STDOUT: %assoc0.bd2: %ImplicitAs.assoc_type.bf1 = assoc_entity element0, imports.%Core.import_ref.cd5 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.3aa: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] +// CHECK:STDOUT: %Self.294: %ImplicitAs.type.3aa = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.fcc: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.97e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self.294) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.945: %ImplicitAs.WithSelf.Convert.type.97e = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.d2d: type = facet_type <@ImplicitAs, @ImplicitAs(%V)> [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.834: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V) [symbolic] +// CHECK:STDOUT: %assoc0.cd8: %ImplicitAs.assoc_type.834 = assoc_entity element0, imports.%Core.import_ref.cb2 [symbolic] +// CHECK:STDOUT: %require_complete.7c2: = require_complete_type %ImplicitAs.type.d2d [symbolic] +// CHECK:STDOUT: %assoc0.0ac: %ImplicitAs.assoc_type.fcc = assoc_entity element0, imports.%Core.import_ref.f9d [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -97,10 +97,10 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.195: @ImplicitAs.WithSelf.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.bf1) = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%assoc0 (constants.%assoc0.bd2)] -// CHECK:STDOUT: %Core.import_ref.569: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.c63) = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.cba)] -// CHECK:STDOUT: %Core.import_ref.cd5 = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.484: @ImplicitAs.WithSelf.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.fcc) = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%assoc0 (constants.%assoc0.0ac)] +// CHECK:STDOUT: %Core.import_ref.cb2: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.97e) = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.945)] +// CHECK:STDOUT: %Core.import_ref.f9d = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -140,11 +140,11 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %T.loc4_10.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_10.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.Create.type: type = fn_type @C.Create, @C(%T.loc4_10.1) [symbolic = %C.Create.type (constants.%C.Create.type.591)] -// CHECK:STDOUT: %C.Create: @C.%C.Create.type (%C.Create.type.591) = struct_value () [symbolic = %C.Create (constants.%C.Create.241)] +// CHECK:STDOUT: %C.Create.type: type = fn_type @C.Create, @C(%T.loc4_10.1) [symbolic = %C.Create.type (constants.%C.Create.type.a16)] +// CHECK:STDOUT: %C.Create: @C.%C.Create.type (%C.Create.type.a16) = struct_value () [symbolic = %C.Create (constants.%C.Create.af7)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %C.Create.decl: @C.%C.Create.type (%C.Create.type.591) = fn_decl @C.Create [symbolic = @C.%C.Create (constants.%C.Create.241)] { +// CHECK:STDOUT: %C.Create.decl: @C.%C.Create.type (%C.Create.type.a16) = fn_decl @C.Create [symbolic = @C.%C.Create (constants.%C.Create.af7)] { // CHECK:STDOUT: %value.param_patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern [concrete] // CHECK:STDOUT: %value.patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = at_binding_pattern value, %value.param_patt [concrete] // CHECK:STDOUT: } { @@ -156,7 +156,7 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.1f9 +// CHECK:STDOUT: .Self = constants.%C.1d0 // CHECK:STDOUT: .T = // CHECK:STDOUT: .Create = %C.Create.decl // CHECK:STDOUT: } @@ -180,29 +180,29 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %V.loc8_24.1: type = symbolic_binding V, 1 [symbolic = %V.loc8_24.1 (constants.%V)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.loc19_6.2: type = class_type @C, @C(%V.loc8_24.1) [symbolic = %C.loc19_6.2 (constants.%C.955)] -// CHECK:STDOUT: %require_complete.loc19_7: = require_complete_type %C.loc19_6.2 [symbolic = %require_complete.loc19_7 (constants.%require_complete.9b9)] -// CHECK:STDOUT: %C.Create.type: type = fn_type @C.Create, @C(%V.loc8_24.1) [symbolic = %C.Create.type (constants.%C.Create.type.d3b)] -// CHECK:STDOUT: %C.Create: @F.%C.Create.type (%C.Create.type.d3b) = struct_value () [symbolic = %C.Create (constants.%C.Create.8bf)] +// CHECK:STDOUT: %C.loc19_6.2: type = class_type @C, @C(%V.loc8_24.1) [symbolic = %C.loc19_6.2 (constants.%C.fa0)] +// CHECK:STDOUT: %require_complete.loc19_7: = require_complete_type %C.loc19_6.2 [symbolic = %require_complete.loc19_7 (constants.%require_complete.cff)] +// CHECK:STDOUT: %C.Create.type: type = fn_type @C.Create, @C(%V.loc8_24.1) [symbolic = %C.Create.type (constants.%C.Create.type.73a)] +// CHECK:STDOUT: %C.Create: @F.%C.Create.type (%C.Create.type.73a) = struct_value () [symbolic = %C.Create (constants.%C.Create.a65)] // CHECK:STDOUT: %C.Create.specific_fn.loc19_7.2: = specific_function %C.Create, @C.Create(%V.loc8_24.1) [symbolic = %C.Create.specific_fn.loc19_7.2 (constants.%C.Create.specific_fn)] // CHECK:STDOUT: %require_complete.loc19_16.1: = require_complete_type %V.loc8_24.1 [symbolic = %require_complete.loc19_16.1 (constants.%require_complete.441)] -// CHECK:STDOUT: %ImplicitAs.type.loc19_16.2: type = facet_type <@ImplicitAs, @ImplicitAs(%V.loc8_24.1)> [symbolic = %ImplicitAs.type.loc19_16.2 (constants.%ImplicitAs.type.394)] -// CHECK:STDOUT: %require_complete.loc19_16.2: = require_complete_type %ImplicitAs.type.loc19_16.2 [symbolic = %require_complete.loc19_16.2 (constants.%require_complete.0d6)] -// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V.loc8_24.1) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type.e07)] -// CHECK:STDOUT: %assoc0: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.e07) = assoc_entity element0, imports.%Core.import_ref.569 [symbolic = %assoc0 (constants.%assoc0.e5d)] +// CHECK:STDOUT: %ImplicitAs.type.loc19_16.2: type = facet_type <@ImplicitAs, @ImplicitAs(%V.loc8_24.1)> [symbolic = %ImplicitAs.type.loc19_16.2 (constants.%ImplicitAs.type.d2d)] +// CHECK:STDOUT: %require_complete.loc19_16.2: = require_complete_type %ImplicitAs.type.loc19_16.2 [symbolic = %require_complete.loc19_16.2 (constants.%require_complete.7c2)] +// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V.loc8_24.1) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type.834)] +// CHECK:STDOUT: %assoc0: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.834) = assoc_entity element0, imports.%Core.import_ref.cb2 [symbolic = %assoc0 (constants.%assoc0.cd8)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %V.ref: type = name_ref V, %V.loc8_24.2 [symbolic = %V.loc8_24.1 (constants.%V)] -// CHECK:STDOUT: %C.loc19_6.1: type = class_type @C, @C(constants.%V) [symbolic = %C.loc19_6.2 (constants.%C.955)] -// CHECK:STDOUT: %.loc19_7: @F.%C.Create.type (%C.Create.type.d3b) = specific_constant @C.%C.Create.decl, @C(constants.%V) [symbolic = %C.Create (constants.%C.Create.8bf)] -// CHECK:STDOUT: %Create.ref: @F.%C.Create.type (%C.Create.type.d3b) = name_ref Create, %.loc19_7 [symbolic = %C.Create (constants.%C.Create.8bf)] +// CHECK:STDOUT: %C.loc19_6.1: type = class_type @C, @C(constants.%V) [symbolic = %C.loc19_6.2 (constants.%C.fa0)] +// CHECK:STDOUT: %.loc19_7: @F.%C.Create.type (%C.Create.type.73a) = specific_constant @C.%C.Create.decl, @C(constants.%V) [symbolic = %C.Create (constants.%C.Create.a65)] +// CHECK:STDOUT: %Create.ref: @F.%C.Create.type (%C.Create.type.73a) = name_ref Create, %.loc19_7 [symbolic = %C.Create (constants.%C.Create.a65)] // CHECK:STDOUT: %.loc19_16.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %C.Create.specific_fn.loc19_7.1: = specific_function %Create.ref, @C.Create(constants.%V) [symbolic = %C.Create.specific_fn.loc19_7.2 (constants.%C.Create.specific_fn)] -// CHECK:STDOUT: %ImplicitAs.type.loc19_16.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%V)> [symbolic = %ImplicitAs.type.loc19_16.2 (constants.%ImplicitAs.type.394)] -// CHECK:STDOUT: %.loc19_16.2: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.e07) = specific_constant imports.%Core.import_ref.195, @ImplicitAs.WithSelf(constants.%V, constants.%Self.b7e) [symbolic = %assoc0 (constants.%assoc0.e5d)] -// CHECK:STDOUT: %Convert.ref: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.e07) = name_ref Convert, %.loc19_16.2 [symbolic = %assoc0 (constants.%assoc0.e5d)] +// CHECK:STDOUT: %ImplicitAs.type.loc19_16.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%V)> [symbolic = %ImplicitAs.type.loc19_16.2 (constants.%ImplicitAs.type.d2d)] +// CHECK:STDOUT: %.loc19_16.2: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.834) = specific_constant imports.%Core.import_ref.484, @ImplicitAs.WithSelf(constants.%V, constants.%Self.294) [symbolic = %assoc0 (constants.%assoc0.cd8)] +// CHECK:STDOUT: %Convert.ref: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.834) = name_ref Convert, %.loc19_16.2 [symbolic = %assoc0 (constants.%assoc0.cd8)] // CHECK:STDOUT: %.loc19_16.3: @F.%V.loc8_24.1 (%V) = converted %.loc19_16.1, [concrete = ] // CHECK:STDOUT: %C.Create.call: init %empty_tuple.type = call %C.Create.specific_fn.loc19_7.1() // CHECK:STDOUT: return @@ -213,8 +213,8 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %T.loc4_10.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.Create.type => constants.%C.Create.type.591 -// CHECK:STDOUT: %C.Create => constants.%C.Create.241 +// CHECK:STDOUT: %C.Create.type => constants.%C.Create.type.a16 +// CHECK:STDOUT: %C.Create => constants.%C.Create.af7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.Create(constants.%T) { @@ -231,8 +231,8 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %T.loc4_10.1 => constants.%V // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.Create.type => constants.%C.Create.type.d3b -// CHECK:STDOUT: %C.Create => constants.%C.Create.8bf +// CHECK:STDOUT: %C.Create.type => constants.%C.Create.type.73a +// CHECK:STDOUT: %C.Create => constants.%C.Create.a65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.Create(constants.%V) { @@ -253,59 +253,59 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %pattern_type.51d1c4.1: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %C.Create.type.591: type = fn_type @C.Create, @C(%T) [symbolic] -// CHECK:STDOUT: %C.Create.241: %C.Create.type.591 = struct_value () [symbolic] +// CHECK:STDOUT: %C.Create.type.a16: type = fn_type @C.Create, @C(%T) [symbolic] +// CHECK:STDOUT: %C.Create.af7: %C.Create.type.a16 = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %.Self.c75: %Destroy.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.619: %Destroy.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.6e6: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] -// CHECK:STDOUT: %Self.b7e: %ImplicitAs.type.6e6 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.bf1: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c63: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self.b7e) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.cba: %ImplicitAs.WithSelf.Convert.type.c63 = struct_value () [symbolic] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.c75 [symbolic_self] -// CHECK:STDOUT: %ImplicitAs.type.646: type = facet_type <@ImplicitAs, @ImplicitAs(%.Self.as_type)> [symbolic_self] +// CHECK:STDOUT: %ImplicitAs.type.3aa: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] +// CHECK:STDOUT: %Self.294: %ImplicitAs.type.3aa = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.fcc: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.97e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self.294) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.945: %ImplicitAs.WithSelf.Convert.type.97e = struct_value () [symbolic] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.619 [symbolic_self] +// CHECK:STDOUT: %ImplicitAs.type.71c: type = facet_type <@ImplicitAs, @ImplicitAs(%.Self.as_type)> [symbolic_self] // CHECK:STDOUT: %Destroy_where.type: type = facet_type <@Destroy where %empty_struct_type impls @ImplicitAs, @ImplicitAs(%.Self.as_type)> [concrete] -// CHECK:STDOUT: %pattern_type.376: type = pattern_type %Destroy_where.type [concrete] +// CHECK:STDOUT: %pattern_type.429: type = pattern_type %Destroy_where.type [concrete] // CHECK:STDOUT: %V: %Destroy_where.type = symbolic_binding V, 1 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] -// CHECK:STDOUT: %C.ce7: type = class_type @C, @C(%V.as_type) [symbolic] -// CHECK:STDOUT: %C.Create.type.4a0: type = fn_type @C.Create, @C(%V.as_type) [symbolic] -// CHECK:STDOUT: %C.Create.153: %C.Create.type.4a0 = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.bf6: = require_complete_type %C.ce7 [symbolic] -// CHECK:STDOUT: %pattern_type.87c: type = pattern_type %V.as_type [symbolic] -// CHECK:STDOUT: %C.Create.specific_fn: = specific_function %C.Create.153, @C.Create(%V.as_type) [symbolic] -// CHECK:STDOUT: %require_complete.ee1: = require_complete_type %V.as_type [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.6a7: type = facet_type <@ImplicitAs, @ImplicitAs(%V.as_type)> [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.c61: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V.as_type) [symbolic] -// CHECK:STDOUT: %assoc0.0c2: %ImplicitAs.assoc_type.c61 = assoc_entity element0, imports.%Core.import_ref.569 [symbolic] -// CHECK:STDOUT: %require_complete.960: = require_complete_type %ImplicitAs.type.6a7 [symbolic] -// CHECK:STDOUT: %assoc0.bd2: %ImplicitAs.assoc_type.bf1 = assoc_entity element0, imports.%Core.import_ref.cd5 [symbolic] +// CHECK:STDOUT: %C.76a: type = class_type @C, @C(%V.as_type) [symbolic] +// CHECK:STDOUT: %C.Create.type.b99: type = fn_type @C.Create, @C(%V.as_type) [symbolic] +// CHECK:STDOUT: %C.Create.d3c: %C.Create.type.b99 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.823: = require_complete_type %C.76a [symbolic] +// CHECK:STDOUT: %pattern_type.753: type = pattern_type %V.as_type [symbolic] +// CHECK:STDOUT: %C.Create.specific_fn: = specific_function %C.Create.d3c, @C.Create(%V.as_type) [symbolic] +// CHECK:STDOUT: %require_complete.235: = require_complete_type %V.as_type [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.801: type = facet_type <@ImplicitAs, @ImplicitAs(%V.as_type)> [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.9d8: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V.as_type) [symbolic] +// CHECK:STDOUT: %assoc0.cef: %ImplicitAs.assoc_type.9d8 = assoc_entity element0, imports.%Core.import_ref.cb2 [symbolic] +// CHECK:STDOUT: %require_complete.af0: = require_complete_type %ImplicitAs.type.801 [symbolic] +// CHECK:STDOUT: %assoc0.0ac: %ImplicitAs.assoc_type.fcc = assoc_entity element0, imports.%Core.import_ref.f9d [symbolic] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %V, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %V.as_type, (%Destroy.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %ImplicitAs.lookup_impl_witness: = lookup_impl_witness %empty_struct_type, @ImplicitAs, @ImplicitAs(%V.as_type) [symbolic] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.6a7 = facet_value %empty_struct_type, (%ImplicitAs.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.4cc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%V.as_type, %ImplicitAs.facet) [symbolic] -// CHECK:STDOUT: %.66a: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.4cc, %ImplicitAs.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.075: %.66a = impl_witness_access %ImplicitAs.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %bound_method.e71: = bound_method %empty_struct, %impl.elem0.075 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.020: = specific_impl_function %impl.elem0.075, @ImplicitAs.WithSelf.Convert(%V.as_type, %ImplicitAs.facet) [symbolic] -// CHECK:STDOUT: %bound_method.4a3: = bound_method %empty_struct, %specific_impl_fn.020 [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.c60: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic] -// CHECK:STDOUT: %.562: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.c60, %Destroy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.0d2: %.562 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.9a4: = specific_impl_function %impl.elem0.0d2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.801 = facet_value %empty_struct_type, (%ImplicitAs.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.8ff: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%V.as_type, %ImplicitAs.facet) [symbolic] +// CHECK:STDOUT: %.114: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.8ff, %ImplicitAs.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.0f0: %.114 = impl_witness_access %ImplicitAs.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %bound_method.e59: = bound_method %empty_struct, %impl.elem0.0f0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.a2c: = specific_impl_function %impl.elem0.0f0, @ImplicitAs.WithSelf.Convert(%V.as_type, %ImplicitAs.facet) [symbolic] +// CHECK:STDOUT: %bound_method.fc7: = bound_method %empty_struct, %specific_impl_fn.a2c [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.c91: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic] +// CHECK:STDOUT: %.8f3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.c91, %Destroy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.f91: %.8f3 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.b7b: = specific_impl_function %impl.elem0.f91, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -316,10 +316,10 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.195: @ImplicitAs.WithSelf.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.bf1) = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%assoc0 (constants.%assoc0.bd2)] -// CHECK:STDOUT: %Core.import_ref.569: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.c63) = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.cba)] -// CHECK:STDOUT: %Core.import_ref.cd5 = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.484: @ImplicitAs.WithSelf.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.fcc) = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%assoc0 (constants.%assoc0.0ac)] +// CHECK:STDOUT: %Core.import_ref.cb2: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.97e) = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.945)] +// CHECK:STDOUT: %Core.import_ref.f9d = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -340,7 +340,7 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %V.patt: %pattern_type.376 = symbolic_binding_pattern V, 1 [concrete] +// CHECK:STDOUT: %V.patt: %pattern_type.429 = symbolic_binding_pattern V, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_17.1: type = splice_block %.loc9_17.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc9_14: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] @@ -351,14 +351,14 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %.Self.loc9_24: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %Core.ref.loc9_27: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Destroy.ref: type = name_ref Destroy, imports.%Core.Destroy [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %.Self.loc9_40: %Destroy.type = symbolic_binding .Self [symbolic_self = constants.%.Self.c75] +// CHECK:STDOUT: %.Self.loc9_40: %Destroy.type = symbolic_binding .Self [symbolic_self = constants.%.Self.619] // CHECK:STDOUT: %.loc9_47.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %Core.ref.loc9_55: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %.Self.ref: %Destroy.type = name_ref .Self, %.Self.loc9_40 [symbolic_self = constants.%.Self.c75] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %.Self.ref: %Destroy.type = name_ref .Self, %.Self.loc9_40 [symbolic_self = constants.%.Self.619] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_76: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %ImplicitAs.type.loc9: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%.Self.as_type)> [symbolic_self = constants.%ImplicitAs.type.646] +// CHECK:STDOUT: %ImplicitAs.type.loc9: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%.Self.as_type)> [symbolic_self = constants.%ImplicitAs.type.71c] // CHECK:STDOUT: %.loc9_47.2: type = converted %.loc9_47.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc9_40.2: type = where_expr [concrete = constants.%Destroy_where.type] { // CHECK:STDOUT: requirement_base_facet_type %Destroy.ref @@ -373,11 +373,11 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %T.loc4_10.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_10.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.Create.type: type = fn_type @C.Create, @C(%T.loc4_10.1) [symbolic = %C.Create.type (constants.%C.Create.type.591)] -// CHECK:STDOUT: %C.Create: @C.%C.Create.type (%C.Create.type.591) = struct_value () [symbolic = %C.Create (constants.%C.Create.241)] +// CHECK:STDOUT: %C.Create.type: type = fn_type @C.Create, @C(%T.loc4_10.1) [symbolic = %C.Create.type (constants.%C.Create.type.a16)] +// CHECK:STDOUT: %C.Create: @C.%C.Create.type (%C.Create.type.a16) = struct_value () [symbolic = %C.Create (constants.%C.Create.af7)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %C.Create.decl: @C.%C.Create.type (%C.Create.type.591) = fn_decl @C.Create [symbolic = @C.%C.Create (constants.%C.Create.241)] { +// CHECK:STDOUT: %C.Create.decl: @C.%C.Create.type (%C.Create.type.a16) = fn_decl @C.Create [symbolic = @C.%C.Create (constants.%C.Create.af7)] { // CHECK:STDOUT: %value.param_patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern [concrete] // CHECK:STDOUT: %value.patt: @C.Create.%pattern_type (%pattern_type.51d1c4.1) = at_binding_pattern value, %value.param_patt [concrete] // CHECK:STDOUT: } { @@ -389,7 +389,7 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.1f9 +// CHECK:STDOUT: .Self = constants.%C.1d0 // CHECK:STDOUT: .T = // CHECK:STDOUT: .Create = %C.Create.decl // CHECK:STDOUT: } @@ -414,30 +414,30 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %V.as_type.loc10_6.2: type = facet_access_type %V.loc9_24.1 [symbolic = %V.as_type.loc10_6.2 (constants.%V.as_type)] -// CHECK:STDOUT: %C.loc10_6.2: type = class_type @C, @C(%V.as_type.loc10_6.2) [symbolic = %C.loc10_6.2 (constants.%C.ce7)] -// CHECK:STDOUT: %require_complete.loc10_7: = require_complete_type %C.loc10_6.2 [symbolic = %require_complete.loc10_7 (constants.%require_complete.bf6)] -// CHECK:STDOUT: %C.Create.type: type = fn_type @C.Create, @C(%V.as_type.loc10_6.2) [symbolic = %C.Create.type (constants.%C.Create.type.4a0)] -// CHECK:STDOUT: %C.Create: @F.%C.Create.type (%C.Create.type.4a0) = struct_value () [symbolic = %C.Create (constants.%C.Create.153)] +// CHECK:STDOUT: %C.loc10_6.2: type = class_type @C, @C(%V.as_type.loc10_6.2) [symbolic = %C.loc10_6.2 (constants.%C.76a)] +// CHECK:STDOUT: %require_complete.loc10_7: = require_complete_type %C.loc10_6.2 [symbolic = %require_complete.loc10_7 (constants.%require_complete.823)] +// CHECK:STDOUT: %C.Create.type: type = fn_type @C.Create, @C(%V.as_type.loc10_6.2) [symbolic = %C.Create.type (constants.%C.Create.type.b99)] +// CHECK:STDOUT: %C.Create: @F.%C.Create.type (%C.Create.type.b99) = struct_value () [symbolic = %C.Create (constants.%C.Create.d3c)] // CHECK:STDOUT: %C.Create.specific_fn.loc10_7.2: = specific_function %C.Create, @C.Create(%V.as_type.loc10_6.2) [symbolic = %C.Create.specific_fn.loc10_7.2 (constants.%C.Create.specific_fn)] -// CHECK:STDOUT: %require_complete.loc10_16.1: = require_complete_type %V.as_type.loc10_6.2 [symbolic = %require_complete.loc10_16.1 (constants.%require_complete.ee1)] -// CHECK:STDOUT: %ImplicitAs.type.loc10_16.2: type = facet_type <@ImplicitAs, @ImplicitAs(%V.as_type.loc10_6.2)> [symbolic = %ImplicitAs.type.loc10_16.2 (constants.%ImplicitAs.type.6a7)] -// CHECK:STDOUT: %require_complete.loc10_16.2: = require_complete_type %ImplicitAs.type.loc10_16.2 [symbolic = %require_complete.loc10_16.2 (constants.%require_complete.960)] -// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V.as_type.loc10_6.2) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type.c61)] -// CHECK:STDOUT: %assoc0: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.c61) = assoc_entity element0, imports.%Core.import_ref.569 [symbolic = %assoc0 (constants.%assoc0.0c2)] +// CHECK:STDOUT: %require_complete.loc10_16.1: = require_complete_type %V.as_type.loc10_6.2 [symbolic = %require_complete.loc10_16.1 (constants.%require_complete.235)] +// CHECK:STDOUT: %ImplicitAs.type.loc10_16.2: type = facet_type <@ImplicitAs, @ImplicitAs(%V.as_type.loc10_6.2)> [symbolic = %ImplicitAs.type.loc10_16.2 (constants.%ImplicitAs.type.801)] +// CHECK:STDOUT: %require_complete.loc10_16.2: = require_complete_type %ImplicitAs.type.loc10_16.2 [symbolic = %require_complete.loc10_16.2 (constants.%require_complete.af0)] +// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V.as_type.loc10_6.2) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type.9d8)] +// CHECK:STDOUT: %assoc0: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.9d8) = assoc_entity element0, imports.%Core.import_ref.cb2 [symbolic = %assoc0 (constants.%assoc0.cef)] // CHECK:STDOUT: %ImplicitAs.lookup_impl_witness: = lookup_impl_witness constants.%empty_struct_type, @ImplicitAs, @ImplicitAs(%V.as_type.loc10_6.2) [symbolic = %ImplicitAs.lookup_impl_witness (constants.%ImplicitAs.lookup_impl_witness)] -// CHECK:STDOUT: %ImplicitAs.facet: @F.%ImplicitAs.type.loc10_16.2 (%ImplicitAs.type.6a7) = facet_value constants.%empty_struct_type, (%ImplicitAs.lookup_impl_witness) [symbolic = %ImplicitAs.facet (constants.%ImplicitAs.facet)] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%V.as_type.loc10_6.2, %ImplicitAs.facet) [symbolic = %ImplicitAs.WithSelf.Convert.type (constants.%ImplicitAs.WithSelf.Convert.type.4cc)] -// CHECK:STDOUT: %.loc10_16.8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type, %ImplicitAs.facet [symbolic = %.loc10_16.8 (constants.%.66a)] -// CHECK:STDOUT: %impl.elem0.loc10_16.3: @F.%.loc10_16.8 (%.66a) = impl_witness_access %ImplicitAs.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_16.3 (constants.%impl.elem0.075)] -// CHECK:STDOUT: %bound_method.loc10_16.5: = bound_method constants.%empty_struct, %impl.elem0.loc10_16.3 [symbolic = %bound_method.loc10_16.5 (constants.%bound_method.e71)] -// CHECK:STDOUT: %specific_impl_fn.loc10_16.3: = specific_impl_function %impl.elem0.loc10_16.3, @ImplicitAs.WithSelf.Convert(%V.as_type.loc10_6.2, %ImplicitAs.facet) [symbolic = %specific_impl_fn.loc10_16.3 (constants.%specific_impl_fn.020)] -// CHECK:STDOUT: %bound_method.loc10_16.6: = bound_method constants.%empty_struct, %specific_impl_fn.loc10_16.3 [symbolic = %bound_method.loc10_16.6 (constants.%bound_method.4a3)] +// CHECK:STDOUT: %ImplicitAs.facet: @F.%ImplicitAs.type.loc10_16.2 (%ImplicitAs.type.801) = facet_value constants.%empty_struct_type, (%ImplicitAs.lookup_impl_witness) [symbolic = %ImplicitAs.facet (constants.%ImplicitAs.facet)] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%V.as_type.loc10_6.2, %ImplicitAs.facet) [symbolic = %ImplicitAs.WithSelf.Convert.type (constants.%ImplicitAs.WithSelf.Convert.type.8ff)] +// CHECK:STDOUT: %.loc10_16.8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type, %ImplicitAs.facet [symbolic = %.loc10_16.8 (constants.%.114)] +// CHECK:STDOUT: %impl.elem0.loc10_16.3: @F.%.loc10_16.8 (%.114) = impl_witness_access %ImplicitAs.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_16.3 (constants.%impl.elem0.0f0)] +// CHECK:STDOUT: %bound_method.loc10_16.5: = bound_method constants.%empty_struct, %impl.elem0.loc10_16.3 [symbolic = %bound_method.loc10_16.5 (constants.%bound_method.e59)] +// CHECK:STDOUT: %specific_impl_fn.loc10_16.3: = specific_impl_function %impl.elem0.loc10_16.3, @ImplicitAs.WithSelf.Convert(%V.as_type.loc10_6.2, %ImplicitAs.facet) [symbolic = %specific_impl_fn.loc10_16.3 (constants.%specific_impl_fn.a2c)] +// CHECK:STDOUT: %bound_method.loc10_16.6: = bound_method constants.%empty_struct, %specific_impl_fn.loc10_16.3 [symbolic = %bound_method.loc10_16.6 (constants.%bound_method.fc7)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %V.loc9_24.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %V.as_type.loc10_6.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.c60)] -// CHECK:STDOUT: %.loc10_16.9: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc10_16.9 (constants.%.562)] -// CHECK:STDOUT: %impl.elem0.loc10_16.4: @F.%.loc10_16.9 (%.562) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_16.4 (constants.%impl.elem0.0d2)] -// CHECK:STDOUT: %specific_impl_fn.loc10_16.4: = specific_impl_function %impl.elem0.loc10_16.4, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc10_16.4 (constants.%specific_impl_fn.9a4)] +// 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.c91)] +// CHECK:STDOUT: %.loc10_16.9: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc10_16.9 (constants.%.8f3)] +// CHECK:STDOUT: %impl.elem0.loc10_16.4: @F.%.loc10_16.9 (%.8f3) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_16.4 (constants.%impl.elem0.f91)] +// CHECK:STDOUT: %specific_impl_fn.loc10_16.4: = specific_impl_function %impl.elem0.loc10_16.4, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc10_16.4 (constants.%specific_impl_fn.b7b)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -445,18 +445,18 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %V.ref: %Destroy_where.type = name_ref V, %V.loc9_24.2 [symbolic = %V.loc9_24.1 (constants.%V)] // CHECK:STDOUT: %V.as_type.loc10_6.1: type = facet_access_type %V.ref [symbolic = %V.as_type.loc10_6.2 (constants.%V.as_type)] // CHECK:STDOUT: %.loc10_6: type = converted %V.ref, %V.as_type.loc10_6.1 [symbolic = %V.as_type.loc10_6.2 (constants.%V.as_type)] -// CHECK:STDOUT: %C.loc10_6.1: type = class_type @C, @C(constants.%V.as_type) [symbolic = %C.loc10_6.2 (constants.%C.ce7)] -// CHECK:STDOUT: %.loc10_7: @F.%C.Create.type (%C.Create.type.4a0) = specific_constant @C.%C.Create.decl, @C(constants.%V.as_type) [symbolic = %C.Create (constants.%C.Create.153)] -// CHECK:STDOUT: %Create.ref: @F.%C.Create.type (%C.Create.type.4a0) = name_ref Create, %.loc10_7 [symbolic = %C.Create (constants.%C.Create.153)] +// CHECK:STDOUT: %C.loc10_6.1: type = class_type @C, @C(constants.%V.as_type) [symbolic = %C.loc10_6.2 (constants.%C.76a)] +// CHECK:STDOUT: %.loc10_7: @F.%C.Create.type (%C.Create.type.b99) = specific_constant @C.%C.Create.decl, @C(constants.%V.as_type) [symbolic = %C.Create (constants.%C.Create.d3c)] +// CHECK:STDOUT: %Create.ref: @F.%C.Create.type (%C.Create.type.b99) = name_ref Create, %.loc10_7 [symbolic = %C.Create (constants.%C.Create.d3c)] // CHECK:STDOUT: %.loc10_16.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %C.Create.specific_fn.loc10_7.1: = specific_function %Create.ref, @C.Create(constants.%V.as_type) [symbolic = %C.Create.specific_fn.loc10_7.2 (constants.%C.Create.specific_fn)] -// CHECK:STDOUT: %ImplicitAs.type.loc10_16.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%V.as_type)> [symbolic = %ImplicitAs.type.loc10_16.2 (constants.%ImplicitAs.type.6a7)] -// CHECK:STDOUT: %.loc10_16.2: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.c61) = specific_constant imports.%Core.import_ref.195, @ImplicitAs.WithSelf(constants.%V.as_type, constants.%Self.b7e) [symbolic = %assoc0 (constants.%assoc0.0c2)] -// CHECK:STDOUT: %Convert.ref: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.c61) = name_ref Convert, %.loc10_16.2 [symbolic = %assoc0 (constants.%assoc0.0c2)] -// CHECK:STDOUT: %impl.elem0.loc10_16.1: @F.%.loc10_16.8 (%.66a) = impl_witness_access constants.%ImplicitAs.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_16.3 (constants.%impl.elem0.075)] -// CHECK:STDOUT: %bound_method.loc10_16.1: = bound_method %.loc10_16.1, %impl.elem0.loc10_16.1 [symbolic = %bound_method.loc10_16.5 (constants.%bound_method.e71)] -// CHECK:STDOUT: %specific_impl_fn.loc10_16.1: = specific_impl_function %impl.elem0.loc10_16.1, @ImplicitAs.WithSelf.Convert(constants.%V.as_type, constants.%ImplicitAs.facet) [symbolic = %specific_impl_fn.loc10_16.3 (constants.%specific_impl_fn.020)] -// CHECK:STDOUT: %bound_method.loc10_16.2: = bound_method %.loc10_16.1, %specific_impl_fn.loc10_16.1 [symbolic = %bound_method.loc10_16.6 (constants.%bound_method.4a3)] +// CHECK:STDOUT: %ImplicitAs.type.loc10_16.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%V.as_type)> [symbolic = %ImplicitAs.type.loc10_16.2 (constants.%ImplicitAs.type.801)] +// CHECK:STDOUT: %.loc10_16.2: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.9d8) = specific_constant imports.%Core.import_ref.484, @ImplicitAs.WithSelf(constants.%V.as_type, constants.%Self.294) [symbolic = %assoc0 (constants.%assoc0.cef)] +// CHECK:STDOUT: %Convert.ref: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.9d8) = name_ref Convert, %.loc10_16.2 [symbolic = %assoc0 (constants.%assoc0.cef)] +// CHECK:STDOUT: %impl.elem0.loc10_16.1: @F.%.loc10_16.8 (%.114) = impl_witness_access constants.%ImplicitAs.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_16.3 (constants.%impl.elem0.0f0)] +// CHECK:STDOUT: %bound_method.loc10_16.1: = bound_method %.loc10_16.1, %impl.elem0.loc10_16.1 [symbolic = %bound_method.loc10_16.5 (constants.%bound_method.e59)] +// CHECK:STDOUT: %specific_impl_fn.loc10_16.1: = specific_impl_function %impl.elem0.loc10_16.1, @ImplicitAs.WithSelf.Convert(constants.%V.as_type, constants.%ImplicitAs.facet) [symbolic = %specific_impl_fn.loc10_16.3 (constants.%specific_impl_fn.a2c)] +// CHECK:STDOUT: %bound_method.loc10_16.2: = bound_method %.loc10_16.1, %specific_impl_fn.loc10_16.1 [symbolic = %bound_method.loc10_16.6 (constants.%bound_method.fc7)] // CHECK:STDOUT: %.loc10_16.3: ref @F.%V.as_type.loc10_6.2 (%V.as_type) = temporary_storage // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc10_16.4: %empty_struct_type = converted %.loc10_16.1, %empty_struct [concrete = constants.%empty_struct] @@ -465,9 +465,9 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %.loc10_16.6: ref @F.%V.as_type.loc10_6.2 (%V.as_type) = temporary %.loc10_16.3, %.loc10_16.5 // CHECK:STDOUT: %.loc10_16.7: @F.%V.as_type.loc10_6.2 (%V.as_type) = acquire_value %.loc10_16.6 // CHECK:STDOUT: %C.Create.call: init %empty_tuple.type = call %C.Create.specific_fn.loc10_7.1(%.loc10_16.7) -// CHECK:STDOUT: %impl.elem0.loc10_16.2: @F.%.loc10_16.9 (%.562) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_16.4 (constants.%impl.elem0.0d2)] +// CHECK:STDOUT: %impl.elem0.loc10_16.2: @F.%.loc10_16.9 (%.8f3) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_16.4 (constants.%impl.elem0.f91)] // CHECK:STDOUT: %bound_method.loc10_16.3: = bound_method %.loc10_16.6, %impl.elem0.loc10_16.2 -// CHECK:STDOUT: %specific_impl_fn.loc10_16.2: = specific_impl_function %impl.elem0.loc10_16.2, @Destroy.WithSelf.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc10_16.4 (constants.%specific_impl_fn.9a4)] +// CHECK:STDOUT: %specific_impl_fn.loc10_16.2: = specific_impl_function %impl.elem0.loc10_16.2, @Destroy.WithSelf.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc10_16.4 (constants.%specific_impl_fn.b7b)] // CHECK:STDOUT: %bound_method.loc10_16.4: = bound_method %.loc10_16.6, %specific_impl_fn.loc10_16.2 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc10_16.4(%.loc10_16.6) // CHECK:STDOUT: return @@ -478,8 +478,8 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %T.loc4_10.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.Create.type => constants.%C.Create.type.591 -// CHECK:STDOUT: %C.Create => constants.%C.Create.241 +// CHECK:STDOUT: %C.Create.type => constants.%C.Create.type.a16 +// CHECK:STDOUT: %C.Create => constants.%C.Create.af7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.Create(constants.%T) { @@ -496,15 +496,15 @@ fn F(unused U:! type, V:! Core.Destroy where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %T.loc4_10.1 => constants.%V.as_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.Create.type => constants.%C.Create.type.4a0 -// CHECK:STDOUT: %C.Create => constants.%C.Create.153 +// CHECK:STDOUT: %C.Create.type => constants.%C.Create.type.b99 +// CHECK:STDOUT: %C.Create => constants.%C.Create.d3c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.Create(constants.%V.as_type) { // CHECK:STDOUT: %T => constants.%V.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.87c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.753 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.ee1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.235 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/conversion.carbon b/toolchain/check/testdata/deduce/conversion.carbon index 86568f9b824d..996a94a46a21 100644 --- a/toolchain/check/testdata/deduce/conversion.carbon +++ b/toolchain/check/testdata/deduce/conversion.carbon @@ -76,8 +76,8 @@ fn G(a: A) { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%A, %B) [concrete] -// CHECK:STDOUT: %tuple.type.e74: type = tuple_type (%A, %B) [concrete] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%tuple.type.e74) [concrete] +// CHECK:STDOUT: %tuple.type.1e7: type = tuple_type (%A, %B) [concrete] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%tuple.type.1e7) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { @@ -86,8 +86,8 @@ fn G(a: A) { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %.loc12_10: %tuple.type.24b = tuple_literal (%A.ref, %B.ref) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc12_11: type = converted %.loc12_10, constants.%tuple.type.e74 [concrete = constants.%tuple.type.e74] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%tuple.type.e74) [concrete = constants.%F.specific_fn] +// CHECK:STDOUT: %.loc12_11: type = converted %.loc12_10, constants.%tuple.type.1e7 [concrete = constants.%tuple.type.1e7] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%tuple.type.1e7) [concrete = constants.%F.specific_fn] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn() // CHECK:STDOUT: // CHECK:STDOUT: } @@ -99,26 +99,26 @@ fn G(a: A) { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.250: type = facet_type <@ImplicitAs, @ImplicitAs(type)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.5f1: type = facet_type <@ImplicitAs, @ImplicitAs(type)> [concrete] // CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness @A.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete] -// CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.type.340168.1: type = fn_type @A.as.ImplicitAs.impl.Convert.loc7_45.1 [concrete] -// CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.f7f1e2.1: %A.as.ImplicitAs.impl.Convert.type.340168.1 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.250 = facet_value %A, (%ImplicitAs.impl_witness) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.61b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(type, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.type.340168.2: type = fn_type @A.as.ImplicitAs.impl.Convert.loc7_45.2 [concrete] -// CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.f7f1e2.2: %A.as.ImplicitAs.impl.Convert.type.340168.2 = struct_value () [concrete] +// CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.type.572c06.1: type = fn_type @A.as.ImplicitAs.impl.Convert.loc7_45.1 [concrete] +// CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.dbe75c.1: %A.as.ImplicitAs.impl.Convert.type.572c06.1 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.5f1 = facet_value %A, (%ImplicitAs.impl_witness) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.51c: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(type, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.type.572c06.2: type = fn_type @A.as.ImplicitAs.impl.Convert.loc7_45.2 [concrete] +// CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.dbe75c.2: %A.as.ImplicitAs.impl.Convert.type.572c06.2 = struct_value () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %A.val: %A = struct_value () [concrete] -// CHECK:STDOUT: %.c25: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.61b, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.bound.abff73.1: = bound_method %A.val, %A.as.ImplicitAs.impl.Convert.f7f1e2.2 [concrete] -// CHECK:STDOUT: %.e61: ref %A = temporary invalid, %A.val [concrete] -// CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.bound.abff73.2: = bound_method %A.val, %A.as.ImplicitAs.impl.Convert.f7f1e2.1 [concrete] +// CHECK:STDOUT: %.dd5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.51c, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.bound.5ecf75.1: = bound_method %A.val, %A.as.ImplicitAs.impl.Convert.dbe75c.2 [concrete] +// 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.790b3b.2: type = fn_type @Destroy.Op.loc16_8.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e61, %Destroy.Op.2dd605.2 [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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { @@ -129,18 +129,18 @@ fn G(a: A) { // CHECK:STDOUT: %.loc16_6.2: ref %A = temporary_storage // CHECK:STDOUT: %.loc16_6.3: init %A to %.loc16_6.2 = class_init () [concrete = constants.%A.val] // CHECK:STDOUT: %.loc16_8.1: init %A = converted %.loc16_6.1, %.loc16_6.3 [concrete = constants.%A.val] -// CHECK:STDOUT: %impl.elem0: %.c25 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%A.as.ImplicitAs.impl.Convert.f7f1e2.2] -// CHECK:STDOUT: %bound_method: = bound_method %.loc16_8.1, %impl.elem0 [concrete = constants.%A.as.ImplicitAs.impl.Convert.bound.abff73.1] -// CHECK:STDOUT: %.loc16_8.2: ref %A = temporary %.loc16_6.2, %.loc16_8.1 [concrete = constants.%.e61] +// CHECK:STDOUT: %impl.elem0: %.dd5 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%A.as.ImplicitAs.impl.Convert.dbe75c.2] +// CHECK:STDOUT: %bound_method: = bound_method %.loc16_8.1, %impl.elem0 [concrete = constants.%A.as.ImplicitAs.impl.Convert.bound.5ecf75.1] +// CHECK:STDOUT: %.loc16_8.2: ref %A = temporary %.loc16_6.2, %.loc16_8.1 [concrete = constants.%.367] // CHECK:STDOUT: %.loc16_8.3: %A = acquire_value %.loc16_8.2 [concrete = constants.%A.val] -// CHECK:STDOUT: %Convert.ref: %A.as.ImplicitAs.impl.Convert.type.340168.1 = name_ref Convert, @A.as.ImplicitAs.impl.%A.as.ImplicitAs.impl.Convert.decl.loc7_45.1 [concrete = constants.%A.as.ImplicitAs.impl.Convert.f7f1e2.1] -// CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.bound: = bound_method %.loc16_8.3, %Convert.ref [concrete = constants.%A.as.ImplicitAs.impl.Convert.bound.abff73.2] +// CHECK:STDOUT: %Convert.ref: %A.as.ImplicitAs.impl.Convert.type.572c06.1 = name_ref Convert, @A.as.ImplicitAs.impl.%A.as.ImplicitAs.impl.Convert.decl.loc7_45.1 [concrete = constants.%A.as.ImplicitAs.impl.Convert.dbe75c.1] +// CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.bound: = bound_method %.loc16_8.3, %Convert.ref [concrete = constants.%A.as.ImplicitAs.impl.Convert.bound.5ecf75.2] // CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.call: init type = call %A.as.ImplicitAs.impl.Convert.bound(%.loc16_8.3) [concrete = constants.%B] // CHECK:STDOUT: %.loc16_12.1: type = value_of_initializer %A.as.ImplicitAs.impl.Convert.call [concrete = constants.%B] // 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.%.e61) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.367) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -158,19 +158,19 @@ fn G(a: A) { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.f1d: type = facet_type <@ImplicitAs, @ImplicitAs(%B)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.1bc: type = facet_type <@ImplicitAs, @ImplicitAs(%B)> [concrete] // CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness @A.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete] // CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.type: type = fn_type @A.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert: %A.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.f1d = facet_value %A, (%ImplicitAs.impl_witness) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.9ce: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%B, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.1bc = facet_value %A, (%ImplicitAs.impl_witness) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6c1: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%B, %ImplicitAs.facet) [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // 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: %.3a9: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.9ce, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc16_9.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] +// CHECK:STDOUT: %.33d: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6c1, %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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%a.param: %A) { @@ -180,7 +180,7 @@ fn G(a: A) { // CHECK:STDOUT: %a.ref: %A = name_ref a, %a // CHECK:STDOUT: %.loc16_10: type = converted %.loc16_6, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%empty_tuple.type) [concrete = constants.%F.specific_fn] -// CHECK:STDOUT: %impl.elem0: %.3a9 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%A.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0: %.33d = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%A.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc16_9.1: ref %B = temporary_storage // CHECK:STDOUT: %A.as.ImplicitAs.impl.Convert.call: init %B to %.loc16_9.1 = call %bound_method(%a.ref) @@ -188,7 +188,7 @@ 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.2dd605.2 +// 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: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/deduce/generic_type.carbon b/toolchain/check/testdata/deduce/generic_type.carbon index b0c63c82b517..b3b5999e444a 100644 --- a/toolchain/check/testdata/deduce/generic_type.carbon +++ b/toolchain/check/testdata/deduce/generic_type.carbon @@ -78,25 +78,25 @@ fn G() -> i32 { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] -// CHECK:STDOUT: %pattern_type.69e: type = pattern_type %C.1f9 [symbolic] +// CHECK:STDOUT: %pattern_type.ebe: type = pattern_type %C.1d0 [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.122: = require_complete_type %C.1f9 [symbolic] +// CHECK:STDOUT: %require_complete.74a: = require_complete_type %C.1d0 [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %F.specific_fn.d7f: = specific_function %F, @F(%T) [symbolic] -// CHECK:STDOUT: %C.11b: type = class_type @C, @C(%D) [concrete] -// CHECK:STDOUT: %pattern_type.978: type = pattern_type %C.11b [concrete] -// CHECK:STDOUT: %.f19: Core.Form = init_form %D [concrete] -// CHECK:STDOUT: %pattern_type.f1a: type = pattern_type %D [concrete] +// CHECK:STDOUT: %F.specific_fn.eab: = specific_function %F, @F(%T) [symbolic] +// CHECK:STDOUT: %C.aae: type = class_type @C, @C(%D) [concrete] +// CHECK:STDOUT: %pattern_type.3dc: type = pattern_type %C.aae [concrete] +// CHECK:STDOUT: %.592: Core.Form = init_form %D [concrete] +// CHECK:STDOUT: %pattern_type.d8d: type = pattern_type %D [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %F.specific_fn.634: = specific_function %F, @F(%D) [concrete] +// CHECK:STDOUT: %F.specific_fn.8e7: = specific_function %F, @F(%D) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -127,8 +127,8 @@ fn G() -> i32 { // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc7_17 (%pattern_type.69e) = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc7_17 (%pattern_type.69e) = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc7_17 (%pattern_type.ebe) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc7_17 (%pattern_type.ebe) = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc7_28 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc7_28 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref.loc7_28 [concrete] // CHECK:STDOUT: } { @@ -139,31 +139,31 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc7_10.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc7_7.2: type = symbolic_binding T, 0 [symbolic = %T.loc7_7.1 (constants.%T)] -// CHECK:STDOUT: %p.param: @F.%C.loc7_22.1 (%C.1f9) = value_param call_param0 -// CHECK:STDOUT: %.loc7_22: type = splice_block %C.loc7_22.2 [symbolic = %C.loc7_22.1 (constants.%C.1f9)] { +// CHECK:STDOUT: %p.param: @F.%C.loc7_22.1 (%C.1d0) = value_param call_param0 +// CHECK:STDOUT: %.loc7_22: type = splice_block %C.loc7_22.2 [symbolic = %C.loc7_22.1 (constants.%C.1d0)] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %T.ref.loc7_21: type = name_ref T, %T.loc7_7.2 [symbolic = %T.loc7_7.1 (constants.%T)] -// CHECK:STDOUT: %C.loc7_22.2: type = class_type @C, @C(constants.%T) [symbolic = %C.loc7_22.1 (constants.%C.1f9)] +// CHECK:STDOUT: %C.loc7_22.2: type = class_type @C, @C(constants.%T) [symbolic = %C.loc7_22.1 (constants.%C.1d0)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%C.loc7_22.1 (%C.1f9) = value_binding p, %p.param +// CHECK:STDOUT: %p: @F.%C.loc7_22.1 (%C.1d0) = value_binding p, %p.param // CHECK:STDOUT: %return.param: ref @F.%T.loc7_7.1 (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @F.%T.loc7_7.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.978 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.978 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.f1a = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.f1a = return_slot_pattern %return.param_patt, %D.ref.loc9_18 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.3dc = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.3dc = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.d8d = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.d8d = return_slot_pattern %return.param_patt, %D.ref.loc9_18 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref.loc9_18: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %.loc9_18.2: Core.Form = init_form %D.ref.loc9_18 [concrete = constants.%.f19] -// CHECK:STDOUT: %p.param: %C.11b = value_param call_param0 -// CHECK:STDOUT: %.loc9_12: type = splice_block %C [concrete = constants.%C.11b] { +// CHECK:STDOUT: %.loc9_18.2: Core.Form = init_form %D.ref.loc9_18 [concrete = constants.%.592] +// CHECK:STDOUT: %p.param: %C.aae = value_param call_param0 +// CHECK:STDOUT: %.loc9_12: type = splice_block %C [concrete = constants.%C.aae] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %D.ref.loc9_11: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%D) [concrete = constants.%C.11b] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%D) [concrete = constants.%C.aae] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %C.11b = value_binding p, %p.param +// CHECK:STDOUT: %p: %C.aae = value_binding p, %p.param // CHECK:STDOUT: %return.param: ref %D = out_param call_param1 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } @@ -179,7 +179,7 @@ fn G() -> i32 { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.1f9 +// CHECK:STDOUT: .Self = constants.%C.1d0 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -193,32 +193,32 @@ fn G() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc7_7.2: type) { // CHECK:STDOUT: %T.loc7_7.1: type = symbolic_binding T, 0 [symbolic = %T.loc7_7.1 (constants.%T)] -// CHECK:STDOUT: %C.loc7_22.1: type = class_type @C, @C(%T.loc7_7.1) [symbolic = %C.loc7_22.1 (constants.%C.1f9)] -// CHECK:STDOUT: %pattern_type.loc7_17: type = pattern_type %C.loc7_22.1 [symbolic = %pattern_type.loc7_17 (constants.%pattern_type.69e)] +// CHECK:STDOUT: %C.loc7_22.1: type = class_type @C, @C(%T.loc7_7.1) [symbolic = %C.loc7_22.1 (constants.%C.1d0)] +// CHECK:STDOUT: %pattern_type.loc7_17: type = pattern_type %C.loc7_22.1 [symbolic = %pattern_type.loc7_17 (constants.%pattern_type.ebe)] // CHECK:STDOUT: %.loc7_28.2: Core.Form = init_form %T.loc7_7.1 [symbolic = %.loc7_28.2 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc7_28: type = pattern_type %T.loc7_7.1 [symbolic = %pattern_type.loc7_28 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_17: = require_complete_type %C.loc7_22.1 [symbolic = %require_complete.loc7_17 (constants.%require_complete.122)] +// CHECK:STDOUT: %require_complete.loc7_17: = require_complete_type %C.loc7_22.1 [symbolic = %require_complete.loc7_17 (constants.%require_complete.74a)] // CHECK:STDOUT: %require_complete.loc7_25: = require_complete_type %T.loc7_7.1 [symbolic = %require_complete.loc7_25 (constants.%require_complete.944)] -// CHECK:STDOUT: %F.specific_fn.loc7_39.2: = specific_function constants.%F, @F(%T.loc7_7.1) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %F.specific_fn.loc7_39.2: = specific_function constants.%F, @F(%T.loc7_7.1) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%p.param: @F.%C.loc7_22.1 (%C.1f9)) -> out %return.param: @F.%T.loc7_7.1 (%T) { +// CHECK:STDOUT: fn(%p.param: @F.%C.loc7_22.1 (%C.1d0)) -> out %return.param: @F.%T.loc7_7.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%C.loc7_22.1 (%C.1f9) = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn.loc7_39.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %p.ref: @F.%C.loc7_22.1 (%C.1d0) = name_ref p, %p +// CHECK:STDOUT: %F.specific_fn.loc7_39.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: %.loc7_28.1: ref @F.%T.loc7_7.1 (%T) = splice_block %return.param {} // CHECK:STDOUT: %F.call: init @F.%T.loc7_7.1 (%T) to %.loc7_28.1 = call %F.specific_fn.loc7_39.1(%p.ref) // CHECK:STDOUT: return %F.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param: %C.11b) -> out %return.param: %D { +// CHECK:STDOUT: fn @G(%p.param: %C.aae) -> out %return.param: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: %C.11b = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%D) [concrete = constants.%F.specific_fn.634] +// CHECK:STDOUT: %p.ref: %C.aae = name_ref p, %p +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%D) [concrete = constants.%F.specific_fn.8e7] // CHECK:STDOUT: %.loc9_18.1: ref %D = splice_block %return.param {} // CHECK:STDOUT: %F.call: init %D to %.loc9_18.1 = call %F.specific_fn(%p.ref) // CHECK:STDOUT: return %F.call to %return.param @@ -232,15 +232,15 @@ fn G() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc7_7.1 => constants.%T -// CHECK:STDOUT: %C.loc7_22.1 => constants.%C.1f9 -// CHECK:STDOUT: %pattern_type.loc7_17 => constants.%pattern_type.69e +// CHECK:STDOUT: %C.loc7_22.1 => constants.%C.1d0 +// CHECK:STDOUT: %pattern_type.loc7_17 => constants.%pattern_type.ebe // CHECK:STDOUT: %.loc7_28.2 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc7_28 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_17 => constants.%require_complete.122 +// CHECK:STDOUT: %require_complete.loc7_17 => constants.%require_complete.74a // CHECK:STDOUT: %require_complete.loc7_25 => constants.%require_complete.944 -// CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.d7f +// CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.eab // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%D) { @@ -251,15 +251,15 @@ fn G() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%D) { // CHECK:STDOUT: %T.loc7_7.1 => constants.%D -// CHECK:STDOUT: %C.loc7_22.1 => constants.%C.11b -// CHECK:STDOUT: %pattern_type.loc7_17 => constants.%pattern_type.978 -// CHECK:STDOUT: %.loc7_28.2 => constants.%.f19 -// CHECK:STDOUT: %pattern_type.loc7_28 => constants.%pattern_type.f1a +// CHECK:STDOUT: %C.loc7_22.1 => constants.%C.aae +// CHECK:STDOUT: %pattern_type.loc7_17 => constants.%pattern_type.3dc +// CHECK:STDOUT: %.loc7_28.2 => constants.%.592 +// CHECK:STDOUT: %pattern_type.loc7_28 => constants.%pattern_type.d8d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc7_17 => constants.%complete_type // CHECK:STDOUT: %require_complete.loc7_25 => constants.%complete_type -// CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.634 +// CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.8e7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- interface.carbon @@ -271,22 +271,22 @@ fn G() -> i32 { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %I.type: type = generic_class_type @I [concrete] // CHECK:STDOUT: %I.generic: %I.type = struct_value () [concrete] -// CHECK:STDOUT: %I.a0e: type = class_type @I, @I(%T) [symbolic] +// CHECK:STDOUT: %I.76e: type = class_type @I, @I(%T) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.108: type = pattern_type %I.a0e [symbolic] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.477: type = pattern_type %I.76e [symbolic] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %I.a0e [symbolic] -// CHECK:STDOUT: %F.specific_fn.d7f: = specific_function %F, @F(%T) [symbolic] -// CHECK:STDOUT: %I.870: type = class_type @I, @I(%C) [concrete] -// CHECK:STDOUT: %pattern_type.ec4: type = pattern_type %I.870 [concrete] +// CHECK:STDOUT: %require_complete: = require_complete_type %I.76e [symbolic] +// CHECK:STDOUT: %F.specific_fn.eab: = specific_function %F, @F(%T) [symbolic] +// CHECK:STDOUT: %I.d0b: type = class_type @I, @I(%C) [concrete] +// CHECK:STDOUT: %pattern_type.fa1: type = pattern_type %I.d0b [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %F.specific_fn.076: = specific_function %F, @F(%C) [concrete] +// CHECK:STDOUT: %F.specific_fn.e0d: = specific_function %F, @F(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -317,43 +317,43 @@ fn G() -> i32 { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %p.param_patt: @F.%pattern_type (%pattern_type.108) = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: @F.%pattern_type (%pattern_type.108) = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref [concrete] +// CHECK:STDOUT: %p.param_patt: @F.%pattern_type (%pattern_type.477) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @F.%pattern_type (%pattern_type.477) = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc7_28.2: Core.Form = init_form %C.ref [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc7_28.2: Core.Form = init_form %C.ref [concrete = constants.%.a44] // CHECK:STDOUT: %.loc7_10.1: type = splice_block %.loc7_10.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc7_10.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc7_7.2: type = symbolic_binding T, 0 [symbolic = %T.loc7_7.1 (constants.%T)] -// CHECK:STDOUT: %p.param: @F.%I.loc7_22.1 (%I.a0e) = value_param call_param0 -// CHECK:STDOUT: %.loc7_22: type = splice_block %I.loc7_22.2 [symbolic = %I.loc7_22.1 (constants.%I.a0e)] { +// CHECK:STDOUT: %p.param: @F.%I.loc7_22.1 (%I.76e) = value_param call_param0 +// CHECK:STDOUT: %.loc7_22: type = splice_block %I.loc7_22.2 [symbolic = %I.loc7_22.1 (constants.%I.76e)] { // CHECK:STDOUT: %I.ref: %I.type = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_7.2 [symbolic = %T.loc7_7.1 (constants.%T)] -// CHECK:STDOUT: %I.loc7_22.2: type = class_type @I, @I(constants.%T) [symbolic = %I.loc7_22.1 (constants.%I.a0e)] +// CHECK:STDOUT: %I.loc7_22.2: type = class_type @I, @I(constants.%T) [symbolic = %I.loc7_22.1 (constants.%I.76e)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%I.loc7_22.1 (%I.a0e) = value_binding p, %p.param +// CHECK:STDOUT: %p: @F.%I.loc7_22.1 (%I.76e) = value_binding p, %p.param // CHECK:STDOUT: %return.param: ref %C = out_param call_param1 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.ec4 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.ec4 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref.loc9_18 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.fa1 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.fa1 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc9_18 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc9_18: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc9_18.2: Core.Form = init_form %C.ref.loc9_18 [concrete = constants.%.8f0] -// CHECK:STDOUT: %p.param: %I.870 = value_param call_param0 -// CHECK:STDOUT: %.loc9_12: type = splice_block %I [concrete = constants.%I.870] { +// CHECK:STDOUT: %.loc9_18.2: Core.Form = init_form %C.ref.loc9_18 [concrete = constants.%.a44] +// CHECK:STDOUT: %p.param: %I.d0b = value_param call_param0 +// CHECK:STDOUT: %.loc9_12: type = splice_block %I [concrete = constants.%I.d0b] { // CHECK:STDOUT: %I.ref: %I.type = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %C.ref.loc9_11: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %I: type = class_type @I, @I(constants.%C) [concrete = constants.%I.870] +// CHECK:STDOUT: %I: type = class_type @I, @I(constants.%C) [concrete = constants.%I.d0b] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %I.870 = value_binding p, %p.param +// CHECK:STDOUT: %p: %I.d0b = value_binding p, %p.param // CHECK:STDOUT: %return.param: ref %C = out_param call_param1 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } @@ -369,7 +369,7 @@ fn G() -> i32 { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%I.a0e +// CHECK:STDOUT: .Self = constants.%I.76e // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -383,29 +383,29 @@ fn G() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc7_7.2: type) { // CHECK:STDOUT: %T.loc7_7.1: type = symbolic_binding T, 0 [symbolic = %T.loc7_7.1 (constants.%T)] -// CHECK:STDOUT: %I.loc7_22.1: type = class_type @I, @I(%T.loc7_7.1) [symbolic = %I.loc7_22.1 (constants.%I.a0e)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %I.loc7_22.1 [symbolic = %pattern_type (constants.%pattern_type.108)] +// CHECK:STDOUT: %I.loc7_22.1: type = class_type @I, @I(%T.loc7_7.1) [symbolic = %I.loc7_22.1 (constants.%I.76e)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %I.loc7_22.1 [symbolic = %pattern_type (constants.%pattern_type.477)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %I.loc7_22.1 [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %F.specific_fn.loc7_39.2: = specific_function constants.%F, @F(%T.loc7_7.1) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %F.specific_fn.loc7_39.2: = specific_function constants.%F, @F(%T.loc7_7.1) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%p.param: @F.%I.loc7_22.1 (%I.a0e)) -> out %return.param: %C { +// CHECK:STDOUT: fn(%p.param: @F.%I.loc7_22.1 (%I.76e)) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%I.loc7_22.1 (%I.a0e) = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn.loc7_39.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %p.ref: @F.%I.loc7_22.1 (%I.76e) = name_ref p, %p +// CHECK:STDOUT: %F.specific_fn.loc7_39.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: %.loc7_28.1: ref %C = splice_block %return.param {} // CHECK:STDOUT: %F.call: init %C to %.loc7_28.1 = call %F.specific_fn.loc7_39.1(%p.ref) // CHECK:STDOUT: return %F.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param: %I.870) -> out %return.param: %C { +// CHECK:STDOUT: fn @G(%p.param: %I.d0b) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: %I.870 = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.076] +// CHECK:STDOUT: %p.ref: %I.d0b = name_ref p, %p +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.e0d] // CHECK:STDOUT: %.loc9_18.1: ref %C = splice_block %return.param {} // CHECK:STDOUT: %F.call: init %C to %.loc9_18.1 = call %F.specific_fn(%p.ref) // CHECK:STDOUT: return %F.call to %return.param @@ -419,12 +419,12 @@ fn G() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc7_7.1 => constants.%T -// CHECK:STDOUT: %I.loc7_22.1 => constants.%I.a0e -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.108 +// CHECK:STDOUT: %I.loc7_22.1 => constants.%I.76e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.477 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete -// CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.d7f +// CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.eab // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%C) { @@ -435,12 +435,12 @@ fn G() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { // CHECK:STDOUT: %T.loc7_7.1 => constants.%C -// CHECK:STDOUT: %I.loc7_22.1 => constants.%I.870 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ec4 +// CHECK:STDOUT: %I.loc7_22.1 => constants.%I.d0b +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fa1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type -// CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.076 +// CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.e0d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- nested.carbon @@ -452,17 +452,17 @@ fn G() -> i32 { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Outer.type: type = generic_class_type @Outer [concrete] // CHECK:STDOUT: %Outer.generic: %Outer.type = struct_value () [concrete] -// CHECK:STDOUT: %Outer.3b5: type = class_type @Outer, @Outer(%T) [symbolic] +// CHECK:STDOUT: %Outer.dee: type = class_type @Outer, @Outer(%T) [symbolic] // CHECK:STDOUT: %U: type = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %Inner.type.e77: type = generic_class_type @Inner, @Outer(%T) [symbolic] -// CHECK:STDOUT: %Inner.generic.92c: %Inner.type.e77 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.6c4: type = class_type @Inner, @Inner(%T, %U) [symbolic] +// CHECK:STDOUT: %Inner.type.8f7: type = generic_class_type @Inner, @Outer(%T) [symbolic] +// CHECK:STDOUT: %Inner.generic.b3a: %Inner.type.8f7 = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.34b: type = class_type @Inner, @Inner(%T, %U) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] -// CHECK:STDOUT: %require_complete.f6c: = require_complete_type %Outer.3b5 [symbolic] -// CHECK:STDOUT: %pattern_type.c25: type = pattern_type %Inner.6c4 [symbolic] +// CHECK:STDOUT: %require_complete.dae: = require_complete_type %Outer.dee [symbolic] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %Inner.34b [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %tuple.4b9: %tuple.type.24b = tuple_value (%T, %U) [symbolic] // CHECK:STDOUT: %tuple.type.a5e: type = tuple_type (%T, %U) [symbolic] @@ -470,22 +470,22 @@ fn G() -> i32 { // CHECK:STDOUT: %pattern_type.eee: type = pattern_type %tuple.type.a5e [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.600: = require_complete_type %Inner.6c4 [symbolic] +// CHECK:STDOUT: %require_complete.8ae: = require_complete_type %Inner.34b [symbolic] // CHECK:STDOUT: %require_complete.220: = require_complete_type %tuple.type.a5e [symbolic] -// CHECK:STDOUT: %F.specific_fn.367: = specific_function %F, @F(%T, %U) [symbolic] -// CHECK:STDOUT: %Outer.b54: type = class_type @Outer, @Outer(%C) [concrete] -// CHECK:STDOUT: %Inner.type.de5: type = generic_class_type @Inner, @Outer(%C) [concrete] -// CHECK:STDOUT: %Inner.generic.598: %Inner.type.de5 = struct_value () [concrete] -// CHECK:STDOUT: %Inner.2ce: type = class_type @Inner, @Inner(%C, %D) [concrete] -// CHECK:STDOUT: %pattern_type.263: type = pattern_type %Inner.2ce [concrete] -// CHECK:STDOUT: %tuple.ac7: %tuple.type.24b = tuple_value (%C, %D) [concrete] -// CHECK:STDOUT: %tuple.type.a6a: type = tuple_type (%C, %D) [concrete] -// CHECK:STDOUT: %.970: Core.Form = init_form %tuple.type.a6a [concrete] -// CHECK:STDOUT: %pattern_type.ce9: type = pattern_type %tuple.type.a6a [concrete] +// CHECK:STDOUT: %F.specific_fn.19a: = specific_function %F, @F(%T, %U) [symbolic] +// CHECK:STDOUT: %Outer.10e: type = class_type @Outer, @Outer(%C) [concrete] +// CHECK:STDOUT: %Inner.type.91b: type = generic_class_type @Inner, @Outer(%C) [concrete] +// CHECK:STDOUT: %Inner.generic.bd3: %Inner.type.91b = struct_value () [concrete] +// CHECK:STDOUT: %Inner.3ff: type = class_type @Inner, @Inner(%C, %D) [concrete] +// CHECK:STDOUT: %pattern_type.0d8: type = pattern_type %Inner.3ff [concrete] +// CHECK:STDOUT: %tuple.b04: %tuple.type.24b = tuple_value (%C, %D) [concrete] +// CHECK:STDOUT: %tuple.type.af1: type = tuple_type (%C, %D) [concrete] +// CHECK:STDOUT: %.71f: Core.Form = init_form %tuple.type.af1 [concrete] +// CHECK:STDOUT: %pattern_type.c66: type = pattern_type %tuple.type.af1 [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %F.specific_fn.335: = specific_function %F, @F(%C, %D) [concrete] -// CHECK:STDOUT: %complete_type.3cb: = complete_type_witness %tuple.type.a6a [concrete] +// CHECK:STDOUT: %F.specific_fn.fca: = specific_function %F, @F(%C, %D) [concrete] +// CHECK:STDOUT: %complete_type.6db: = complete_type_witness %tuple.type.af1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -519,8 +519,8 @@ fn G() -> i32 { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc13_27 (%pattern_type.c25) = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc13_27 (%pattern_type.c25) = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %p.param_patt: @F.%pattern_type.loc13_27 (%pattern_type.f00) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @F.%pattern_type.loc13_27 (%pattern_type.f00) = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc13_56 (%pattern_type.eee) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc13_56 (%pattern_type.eee) = return_slot_pattern %return.param_patt, %.loc13_56.4 [concrete] // CHECK:STDOUT: } { @@ -539,44 +539,44 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc13_20.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc13_17.2: type = symbolic_binding U, 1 [symbolic = %U.loc13_17.1 (constants.%U)] -// CHECK:STDOUT: %p.param: @F.%Inner.loc13_45.1 (%Inner.6c4) = value_param call_param0 -// CHECK:STDOUT: %.loc13_45: type = splice_block %Inner.loc13_45.2 [symbolic = %Inner.loc13_45.1 (constants.%Inner.6c4)] { +// CHECK:STDOUT: %p.param: @F.%Inner.loc13_45.1 (%Inner.34b) = value_param call_param0 +// CHECK:STDOUT: %.loc13_45: type = splice_block %Inner.loc13_45.2 [symbolic = %Inner.loc13_45.1 (constants.%Inner.34b)] { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %T.ref.loc13_35: type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T)] -// CHECK:STDOUT: %Outer.loc13_36.2: type = class_type @Outer, @Outer(constants.%T) [symbolic = %Outer.loc13_36.1 (constants.%Outer.3b5)] -// CHECK:STDOUT: %.loc13_37: @F.%Inner.type (%Inner.type.e77) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.92c)] -// CHECK:STDOUT: %Inner.ref: @F.%Inner.type (%Inner.type.e77) = name_ref Inner, %.loc13_37 [symbolic = %Inner.generic (constants.%Inner.generic.92c)] +// CHECK:STDOUT: %Outer.loc13_36.2: type = class_type @Outer, @Outer(constants.%T) [symbolic = %Outer.loc13_36.1 (constants.%Outer.dee)] +// CHECK:STDOUT: %.loc13_37: @F.%Inner.type (%Inner.type.8f7) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.b3a)] +// CHECK:STDOUT: %Inner.ref: @F.%Inner.type (%Inner.type.8f7) = name_ref Inner, %.loc13_37 [symbolic = %Inner.generic (constants.%Inner.generic.b3a)] // CHECK:STDOUT: %U.ref.loc13_44: type = name_ref U, %U.loc13_17.2 [symbolic = %U.loc13_17.1 (constants.%U)] -// CHECK:STDOUT: %Inner.loc13_45.2: type = class_type @Inner, @Inner(constants.%T, constants.%U) [symbolic = %Inner.loc13_45.1 (constants.%Inner.6c4)] +// CHECK:STDOUT: %Inner.loc13_45.2: type = class_type @Inner, @Inner(constants.%T, constants.%U) [symbolic = %Inner.loc13_45.1 (constants.%Inner.34b)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%Inner.loc13_45.1 (%Inner.6c4) = value_binding p, %p.param +// CHECK:STDOUT: %p: @F.%Inner.loc13_45.1 (%Inner.34b) = value_binding p, %p.param // CHECK:STDOUT: %return.param: ref @F.%tuple.type (%tuple.type.a5e) = out_param call_param1 // CHECK:STDOUT: %return: ref @F.%tuple.type (%tuple.type.a5e) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.263 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.263 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.ce9 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.ce9 = return_slot_pattern %return.param_patt, %.loc15_36.3 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.0d8 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.0d8 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.c66 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.c66 = return_slot_pattern %return.param_patt, %.loc15_36.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc15_32: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %D.ref.loc15_35: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %.loc15_36.2: %tuple.type.24b = tuple_literal (%C.ref.loc15_32, %D.ref.loc15_35) [concrete = constants.%tuple.ac7] -// CHECK:STDOUT: %.loc15_36.3: type = converted %.loc15_36.2, constants.%tuple.type.a6a [concrete = constants.%tuple.type.a6a] -// CHECK:STDOUT: %.loc15_36.4: Core.Form = init_form %.loc15_36.3 [concrete = constants.%.970] -// CHECK:STDOUT: %p.param: %Inner.2ce = value_param call_param0 -// CHECK:STDOUT: %.loc15_25: type = splice_block %Inner [concrete = constants.%Inner.2ce] { +// CHECK:STDOUT: %.loc15_36.2: %tuple.type.24b = tuple_literal (%C.ref.loc15_32, %D.ref.loc15_35) [concrete = constants.%tuple.b04] +// CHECK:STDOUT: %.loc15_36.3: type = converted %.loc15_36.2, constants.%tuple.type.af1 [concrete = constants.%tuple.type.af1] +// CHECK:STDOUT: %.loc15_36.4: Core.Form = init_form %.loc15_36.3 [concrete = constants.%.71f] +// CHECK:STDOUT: %p.param: %Inner.3ff = value_param call_param0 +// CHECK:STDOUT: %.loc15_25: type = splice_block %Inner [concrete = constants.%Inner.3ff] { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %C.ref.loc15_15: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Outer: type = class_type @Outer, @Outer(constants.%C) [concrete = constants.%Outer.b54] -// CHECK:STDOUT: %.loc15_17: %Inner.type.de5 = specific_constant @Outer.%Inner.decl, @Outer(constants.%C) [concrete = constants.%Inner.generic.598] -// CHECK:STDOUT: %Inner.ref: %Inner.type.de5 = name_ref Inner, %.loc15_17 [concrete = constants.%Inner.generic.598] +// CHECK:STDOUT: %Outer: type = class_type @Outer, @Outer(constants.%C) [concrete = constants.%Outer.10e] +// CHECK:STDOUT: %.loc15_17: %Inner.type.91b = specific_constant @Outer.%Inner.decl, @Outer(constants.%C) [concrete = constants.%Inner.generic.bd3] +// CHECK:STDOUT: %Inner.ref: %Inner.type.91b = name_ref Inner, %.loc15_17 [concrete = constants.%Inner.generic.bd3] // CHECK:STDOUT: %D.ref.loc15_24: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(constants.%C, constants.%D) [concrete = constants.%Inner.2ce] +// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(constants.%C, constants.%D) [concrete = constants.%Inner.3ff] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %Inner.2ce = value_binding p, %p.param -// CHECK:STDOUT: %return.param: ref %tuple.type.a6a = out_param call_param1 -// CHECK:STDOUT: %return: ref %tuple.type.a6a = return_slot %return.param +// CHECK:STDOUT: %p: %Inner.3ff = value_binding p, %p.param +// CHECK:STDOUT: %return.param: ref %tuple.type.af1 = out_param call_param1 +// CHECK:STDOUT: %return: ref %tuple.type.af1 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -584,11 +584,11 @@ fn G() -> i32 { // CHECK:STDOUT: %T.loc4_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc4_14.1) [symbolic = %Inner.type (constants.%Inner.type.e77)] -// CHECK:STDOUT: %Inner.generic: @Outer.%Inner.type (%Inner.type.e77) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.92c)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc4_14.1) [symbolic = %Inner.type (constants.%Inner.type.8f7)] +// CHECK:STDOUT: %Inner.generic: @Outer.%Inner.type (%Inner.type.8f7) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.b3a)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Inner.decl: @Outer.%Inner.type (%Inner.type.e77) = class_decl @Inner [symbolic = @Outer.%Inner.generic (constants.%Inner.generic.92c)] { +// CHECK:STDOUT: %Inner.decl: @Outer.%Inner.type (%Inner.type.8f7) = class_decl @Inner [symbolic = @Outer.%Inner.generic (constants.%Inner.generic.b3a)] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_19.1: type = splice_block %.loc5_19.2 [concrete = type] { @@ -601,7 +601,7 @@ fn G() -> i32 { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Outer.3b5 +// CHECK:STDOUT: .Self = constants.%Outer.dee // CHECK:STDOUT: .Inner = %Inner.decl // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -616,7 +616,7 @@ fn G() -> i32 { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Inner.6c4 +// CHECK:STDOUT: .Self = constants.%Inner.34b // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -639,40 +639,40 @@ fn G() -> i32 { // CHECK:STDOUT: generic fn @F(%T.loc13_7.2: type, %U.loc13_17.2: type) { // CHECK:STDOUT: %T.loc13_7.1: type = symbolic_binding T, 0 [symbolic = %T.loc13_7.1 (constants.%T)] // CHECK:STDOUT: %U.loc13_17.1: type = symbolic_binding U, 1 [symbolic = %U.loc13_17.1 (constants.%U)] -// CHECK:STDOUT: %Outer.loc13_36.1: type = class_type @Outer, @Outer(%T.loc13_7.1) [symbolic = %Outer.loc13_36.1 (constants.%Outer.3b5)] -// CHECK:STDOUT: %require_complete.loc13_37: = require_complete_type %Outer.loc13_36.1 [symbolic = %require_complete.loc13_37 (constants.%require_complete.f6c)] -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc13_7.1) [symbolic = %Inner.type (constants.%Inner.type.e77)] -// CHECK:STDOUT: %Inner.generic: @F.%Inner.type (%Inner.type.e77) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.92c)] -// CHECK:STDOUT: %Inner.loc13_45.1: type = class_type @Inner, @Inner(%T.loc13_7.1, %U.loc13_17.1) [symbolic = %Inner.loc13_45.1 (constants.%Inner.6c4)] -// CHECK:STDOUT: %pattern_type.loc13_27: type = pattern_type %Inner.loc13_45.1 [symbolic = %pattern_type.loc13_27 (constants.%pattern_type.c25)] +// CHECK:STDOUT: %Outer.loc13_36.1: type = class_type @Outer, @Outer(%T.loc13_7.1) [symbolic = %Outer.loc13_36.1 (constants.%Outer.dee)] +// CHECK:STDOUT: %require_complete.loc13_37: = require_complete_type %Outer.loc13_36.1 [symbolic = %require_complete.loc13_37 (constants.%require_complete.dae)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc13_7.1) [symbolic = %Inner.type (constants.%Inner.type.8f7)] +// CHECK:STDOUT: %Inner.generic: @F.%Inner.type (%Inner.type.8f7) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.b3a)] +// CHECK:STDOUT: %Inner.loc13_45.1: type = class_type @Inner, @Inner(%T.loc13_7.1, %U.loc13_17.1) [symbolic = %Inner.loc13_45.1 (constants.%Inner.34b)] +// CHECK:STDOUT: %pattern_type.loc13_27: type = pattern_type %Inner.loc13_45.1 [symbolic = %pattern_type.loc13_27 (constants.%pattern_type.f00)] // CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%T.loc13_7.1, %U.loc13_17.1) [symbolic = %tuple (constants.%tuple.4b9)] // CHECK:STDOUT: %tuple.type: type = tuple_type (%T.loc13_7.1, %U.loc13_17.1) [symbolic = %tuple.type (constants.%tuple.type.a5e)] // CHECK:STDOUT: %.loc13_56.2: Core.Form = init_form %tuple.type [symbolic = %.loc13_56.2 (constants.%.f18)] // CHECK:STDOUT: %pattern_type.loc13_56: type = pattern_type %tuple.type [symbolic = %pattern_type.loc13_56 (constants.%pattern_type.eee)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13_27: = require_complete_type %Inner.loc13_45.1 [symbolic = %require_complete.loc13_27 (constants.%require_complete.600)] +// CHECK:STDOUT: %require_complete.loc13_27: = require_complete_type %Inner.loc13_45.1 [symbolic = %require_complete.loc13_27 (constants.%require_complete.8ae)] // CHECK:STDOUT: %require_complete.loc13_48: = require_complete_type %tuple.type [symbolic = %require_complete.loc13_48 (constants.%require_complete.220)] -// CHECK:STDOUT: %F.specific_fn.loc13_67.2: = specific_function constants.%F, @F(%T.loc13_7.1, %U.loc13_17.1) [symbolic = %F.specific_fn.loc13_67.2 (constants.%F.specific_fn.367)] +// CHECK:STDOUT: %F.specific_fn.loc13_67.2: = specific_function constants.%F, @F(%T.loc13_7.1, %U.loc13_17.1) [symbolic = %F.specific_fn.loc13_67.2 (constants.%F.specific_fn.19a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%p.param: @F.%Inner.loc13_45.1 (%Inner.6c4)) -> out %return.param: @F.%tuple.type (%tuple.type.a5e) { +// CHECK:STDOUT: fn(%p.param: @F.%Inner.loc13_45.1 (%Inner.34b)) -> out %return.param: @F.%tuple.type (%tuple.type.a5e) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%Inner.loc13_45.1 (%Inner.6c4) = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn.loc13_67.1: = specific_function %F.ref, @F(constants.%T, constants.%U) [symbolic = %F.specific_fn.loc13_67.2 (constants.%F.specific_fn.367)] +// CHECK:STDOUT: %p.ref: @F.%Inner.loc13_45.1 (%Inner.34b) = name_ref p, %p +// CHECK:STDOUT: %F.specific_fn.loc13_67.1: = specific_function %F.ref, @F(constants.%T, constants.%U) [symbolic = %F.specific_fn.loc13_67.2 (constants.%F.specific_fn.19a)] // CHECK:STDOUT: %.loc13_56.1: ref @F.%tuple.type (%tuple.type.a5e) = splice_block %return.param {} // CHECK:STDOUT: %F.call: init @F.%tuple.type (%tuple.type.a5e) to %.loc13_56.1 = call %F.specific_fn.loc13_67.1(%p.ref) // CHECK:STDOUT: return %F.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param: %Inner.2ce) -> out %return.param: %tuple.type.a6a { +// CHECK:STDOUT: fn @G(%p.param: %Inner.3ff) -> out %return.param: %tuple.type.af1 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: %Inner.2ce = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C, constants.%D) [concrete = constants.%F.specific_fn.335] -// CHECK:STDOUT: %.loc15_36.1: ref %tuple.type.a6a = splice_block %return.param {} -// CHECK:STDOUT: %F.call: init %tuple.type.a6a to %.loc15_36.1 = call %F.specific_fn(%p.ref) +// CHECK:STDOUT: %p.ref: %Inner.3ff = name_ref p, %p +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C, constants.%D) [concrete = constants.%F.specific_fn.fca] +// CHECK:STDOUT: %.loc15_36.1: ref %tuple.type.af1 = splice_block %return.param {} +// CHECK:STDOUT: %F.call: init %tuple.type.af1 to %.loc15_36.1 = call %F.specific_fn(%p.ref) // CHECK:STDOUT: return %F.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: @@ -680,8 +680,8 @@ fn G() -> i32 { // CHECK:STDOUT: %T.loc4_14.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.e77 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.92c +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.8f7 +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.b3a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(constants.%T, constants.%U) { @@ -693,29 +693,29 @@ fn G() -> i32 { // CHECK:STDOUT: specific @F(constants.%T, constants.%U) { // CHECK:STDOUT: %T.loc13_7.1 => constants.%T // CHECK:STDOUT: %U.loc13_17.1 => constants.%U -// CHECK:STDOUT: %Outer.loc13_36.1 => constants.%Outer.3b5 -// CHECK:STDOUT: %require_complete.loc13_37 => constants.%require_complete.f6c -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.e77 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.92c -// CHECK:STDOUT: %Inner.loc13_45.1 => constants.%Inner.6c4 -// CHECK:STDOUT: %pattern_type.loc13_27 => constants.%pattern_type.c25 +// CHECK:STDOUT: %Outer.loc13_36.1 => constants.%Outer.dee +// CHECK:STDOUT: %require_complete.loc13_37 => constants.%require_complete.dae +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.8f7 +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.b3a +// CHECK:STDOUT: %Inner.loc13_45.1 => constants.%Inner.34b +// CHECK:STDOUT: %pattern_type.loc13_27 => constants.%pattern_type.f00 // CHECK:STDOUT: %tuple => constants.%tuple.4b9 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.a5e // CHECK:STDOUT: %.loc13_56.2 => constants.%.f18 // CHECK:STDOUT: %pattern_type.loc13_56 => constants.%pattern_type.eee // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13_27 => constants.%require_complete.600 +// CHECK:STDOUT: %require_complete.loc13_27 => constants.%require_complete.8ae // CHECK:STDOUT: %require_complete.loc13_48 => constants.%require_complete.220 -// CHECK:STDOUT: %F.specific_fn.loc13_67.2 => constants.%F.specific_fn.367 +// CHECK:STDOUT: %F.specific_fn.loc13_67.2 => constants.%F.specific_fn.19a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%C) { // CHECK:STDOUT: %T.loc4_14.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.de5 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.598 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.91b +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.bd3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(constants.%C, constants.%D) { @@ -727,21 +727,21 @@ fn G() -> i32 { // CHECK:STDOUT: specific @F(constants.%C, constants.%D) { // CHECK:STDOUT: %T.loc13_7.1 => constants.%C // CHECK:STDOUT: %U.loc13_17.1 => constants.%D -// CHECK:STDOUT: %Outer.loc13_36.1 => constants.%Outer.b54 +// CHECK:STDOUT: %Outer.loc13_36.1 => constants.%Outer.10e // CHECK:STDOUT: %require_complete.loc13_37 => constants.%complete_type.357 -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.de5 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.598 -// CHECK:STDOUT: %Inner.loc13_45.1 => constants.%Inner.2ce -// CHECK:STDOUT: %pattern_type.loc13_27 => constants.%pattern_type.263 -// CHECK:STDOUT: %tuple => constants.%tuple.ac7 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.a6a -// CHECK:STDOUT: %.loc13_56.2 => constants.%.970 -// CHECK:STDOUT: %pattern_type.loc13_56 => constants.%pattern_type.ce9 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.91b +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.bd3 +// CHECK:STDOUT: %Inner.loc13_45.1 => constants.%Inner.3ff +// CHECK:STDOUT: %pattern_type.loc13_27 => constants.%pattern_type.0d8 +// CHECK:STDOUT: %tuple => constants.%tuple.b04 +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.af1 +// CHECK:STDOUT: %.loc13_56.2 => constants.%.71f +// CHECK:STDOUT: %pattern_type.loc13_56 => constants.%pattern_type.c66 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc13_27 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc13_48 => constants.%complete_type.3cb -// CHECK:STDOUT: %F.specific_fn.loc13_67.2 => constants.%F.specific_fn.335 +// CHECK:STDOUT: %require_complete.loc13_48 => constants.%complete_type.6db +// CHECK:STDOUT: %F.specific_fn.loc13_67.2 => constants.%F.specific_fn.fca // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- nontype.carbon @@ -755,61 +755,61 @@ fn G() -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N.fe9: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %N.bbe: %i32 = symbolic_binding N, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %N.37f: %i32 = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %WithNontype.type: type = generic_class_type @WithNontype [concrete] // CHECK:STDOUT: %WithNontype.generic: %WithNontype.type = struct_value () [concrete] -// CHECK:STDOUT: %WithNontype.f38: type = class_type @WithNontype, @WithNontype(%N.bbe) [symbolic] +// CHECK:STDOUT: %WithNontype.40e: type = class_type @WithNontype, @WithNontype(%N.37f) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %WithNontype.f38 [symbolic] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.e30: type = pattern_type %WithNontype.40e [symbolic] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.837: = require_complete_type %WithNontype.f38 [symbolic] +// CHECK:STDOUT: %require_complete.fef: = require_complete_type %WithNontype.40e [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N.fe9) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.4af: = bound_method %N.bbe, %Int.as.Copy.impl.Op.ce7 [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.f80: = bound_method %N.bbe, %Int.as.Copy.impl.Op.specific_fn [symbolic] +// 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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.987: = bound_method %N.37f, %Int.as.Copy.impl.Op.4f6 [symbolic] +// 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: %bound_method.d86: = bound_method %N.37f, %Int.as.Copy.impl.Op.specific_fn [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %WithNontype.87c: type = class_type @WithNontype, @WithNontype(%int_0.62d) [concrete] -// CHECK:STDOUT: %WithNontype.val: %WithNontype.87c = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.f42: type = pattern_type %WithNontype.87c [concrete] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%int_0.62d) [concrete] -// CHECK:STDOUT: %.a39: ref %WithNontype.87c = temporary invalid, %WithNontype.val [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.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: %WithNontype.888: type = class_type @WithNontype, @WithNontype(%int_0.3c0) [concrete] +// CHECK:STDOUT: %WithNontype.val: %WithNontype.888 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.d30: type = pattern_type %WithNontype.888 [concrete] +// 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.790b3b.2: type = fn_type @Destroy.Op.loc9_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.a39, %Destroy.Op.2dd605.2 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.74c: = bound_method %int_0.62d, %Int.as.Copy.impl.Op.ce7 [concrete] -// CHECK:STDOUT: %bound_method.021: = bound_method %int_0.62d, %Int.as.Copy.impl.Op.specific_fn [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: %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -823,11 +823,11 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -840,51 +840,51 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %WithNontype.decl: %WithNontype.type = class_decl @WithNontype [concrete = constants.%WithNontype.generic] { -// CHECK:STDOUT: %N.patt: %pattern_type.104 = symbolic_binding_pattern N, 0 [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.6b6 = symbolic_binding_pattern N, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4: type = splice_block %i32 [concrete = constants.%i32] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_20.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc4_20.1 (constants.%N.bbe)] +// CHECK:STDOUT: %N.loc4_20.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc4_20.1 (constants.%N.37f)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %N.patt: %pattern_type.104 = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.7b5) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.7b5) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc6_44 [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.6b6 = symbolic_binding_pattern N, 0 [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.e30) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.e30) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc6_44 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_44: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc6_44: Core.Form = init_form %i32.loc6_44 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc6_44: Core.Form = init_form %i32.loc6_44 [concrete = constants.%.795] // CHECK:STDOUT: %.loc6_10: type = splice_block %i32.loc6_10 [concrete = constants.%i32] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %i32.loc6_10: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc6_7.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc6_7.1 (constants.%N.bbe)] -// CHECK:STDOUT: %x.param: @F.%WithNontype.loc6_38.1 (%WithNontype.f38) = value_param call_param0 -// CHECK:STDOUT: %.loc6_38: type = splice_block %WithNontype.loc6_38.2 [symbolic = %WithNontype.loc6_38.1 (constants.%WithNontype.f38)] { +// CHECK:STDOUT: %N.loc6_7.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc6_7.1 (constants.%N.37f)] +// CHECK:STDOUT: %x.param: @F.%WithNontype.loc6_38.1 (%WithNontype.40e) = value_param call_param0 +// CHECK:STDOUT: %.loc6_38: type = splice_block %WithNontype.loc6_38.2 [symbolic = %WithNontype.loc6_38.1 (constants.%WithNontype.40e)] { // CHECK:STDOUT: %WithNontype.ref: %WithNontype.type = name_ref WithNontype, file.%WithNontype.decl [concrete = constants.%WithNontype.generic] -// CHECK:STDOUT: %N.ref.loc6_37: %i32 = name_ref N, %N.loc6_7.2 [symbolic = %N.loc6_7.1 (constants.%N.bbe)] -// CHECK:STDOUT: %WithNontype.loc6_38.2: type = class_type @WithNontype, @WithNontype(constants.%N.bbe) [symbolic = %WithNontype.loc6_38.1 (constants.%WithNontype.f38)] +// CHECK:STDOUT: %N.ref.loc6_37: %i32 = name_ref N, %N.loc6_7.2 [symbolic = %N.loc6_7.1 (constants.%N.37f)] +// CHECK:STDOUT: %WithNontype.loc6_38.2: type = class_type @WithNontype, @WithNontype(constants.%N.37f) [symbolic = %WithNontype.loc6_38.1 (constants.%WithNontype.40e)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%WithNontype.loc6_38.1 (%WithNontype.f38) = value_binding x, %x.param +// CHECK:STDOUT: %x: @F.%WithNontype.loc6_38.1 (%WithNontype.40e) = value_binding x, %x.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc8: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @WithNontype(%N.loc4_20.2: %i32) { -// CHECK:STDOUT: %N.loc4_20.1: %i32 = symbolic_binding N, 0 [symbolic = %N.loc4_20.1 (constants.%N.bbe)] +// CHECK:STDOUT: %N.loc4_20.1: %i32 = symbolic_binding N, 0 [symbolic = %N.loc4_20.1 (constants.%N.37f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -893,28 +893,28 @@ fn G() -> i32 { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%WithNontype.f38 +// CHECK:STDOUT: .Self = constants.%WithNontype.40e // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%N.loc6_7.2: %i32) { -// CHECK:STDOUT: %N.loc6_7.1: %i32 = symbolic_binding N, 0 [symbolic = %N.loc6_7.1 (constants.%N.bbe)] -// CHECK:STDOUT: %WithNontype.loc6_38.1: type = class_type @WithNontype, @WithNontype(%N.loc6_7.1) [symbolic = %WithNontype.loc6_38.1 (constants.%WithNontype.f38)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %WithNontype.loc6_38.1 [symbolic = %pattern_type (constants.%pattern_type.7b5)] +// CHECK:STDOUT: %N.loc6_7.1: %i32 = symbolic_binding N, 0 [symbolic = %N.loc6_7.1 (constants.%N.37f)] +// CHECK:STDOUT: %WithNontype.loc6_38.1: type = class_type @WithNontype, @WithNontype(%N.loc6_7.1) [symbolic = %WithNontype.loc6_38.1 (constants.%WithNontype.40e)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %WithNontype.loc6_38.1 [symbolic = %pattern_type (constants.%pattern_type.e30)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %WithNontype.loc6_38.1 [symbolic = %require_complete (constants.%require_complete.837)] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %N.loc6_7.1, constants.%Int.as.Copy.impl.Op.ce7 [symbolic = %Int.as.Copy.impl.Op.bound (constants.%Int.as.Copy.impl.Op.bound.4af)] -// CHECK:STDOUT: %bound_method.loc6_57.3: = bound_method %N.loc6_7.1, constants.%Int.as.Copy.impl.Op.specific_fn [symbolic = %bound_method.loc6_57.3 (constants.%bound_method.f80)] +// CHECK:STDOUT: %require_complete: = require_complete_type %WithNontype.loc6_38.1 [symbolic = %require_complete (constants.%require_complete.fef)] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %N.loc6_7.1, constants.%Int.as.Copy.impl.Op.4f6 [symbolic = %Int.as.Copy.impl.Op.bound (constants.%Int.as.Copy.impl.Op.bound.987)] +// CHECK:STDOUT: %bound_method.loc6_57.3: = bound_method %N.loc6_7.1, constants.%Int.as.Copy.impl.Op.specific_fn [symbolic = %bound_method.loc6_57.3 (constants.%bound_method.d86)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%WithNontype.loc6_38.1 (%WithNontype.f38)) -> out %return.param: %i32 { +// CHECK:STDOUT: fn(%x.param: @F.%WithNontype.loc6_38.1 (%WithNontype.40e)) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc6_57: %i32 = name_ref N, %N.loc6_7.2 [symbolic = %N.loc6_7.1 (constants.%N.bbe)] -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] -// CHECK:STDOUT: %bound_method.loc6_57.1: = bound_method %N.ref.loc6_57, %impl.elem0 [symbolic = %Int.as.Copy.impl.Op.bound (constants.%Int.as.Copy.impl.Op.bound.4af)] +// CHECK:STDOUT: %N.ref.loc6_57: %i32 = name_ref N, %N.loc6_7.2 [symbolic = %N.loc6_7.1 (constants.%N.37f)] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] +// CHECK:STDOUT: %bound_method.loc6_57.1: = bound_method %N.ref.loc6_57, %impl.elem0 [symbolic = %Int.as.Copy.impl.Op.bound (constants.%Int.as.Copy.impl.Op.bound.987)] // 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_57.2: = bound_method %N.ref.loc6_57, %specific_fn [symbolic = %bound_method.loc6_57.3 (constants.%bound_method.f80)] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc6_57.2(%N.ref.loc6_57) [symbolic = %N.loc6_7.1 (constants.%N.bbe)] +// CHECK:STDOUT: %bound_method.loc6_57.2: = bound_method %N.ref.loc6_57, %specific_fn [symbolic = %bound_method.loc6_57.3 (constants.%bound_method.d86)] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc6_57.2(%N.ref.loc6_57) [symbolic = %N.loc6_7.1 (constants.%N.37f)] // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -925,58 +925,58 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc9_13.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %WithNontype.ref: %WithNontype.type = name_ref WithNontype, file.%WithNontype.decl [concrete = constants.%WithNontype.generic] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc9_31.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_31.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc9_31.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc9_31.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc9_31.2: %i32 = converted %int_0, %.loc9_31.1 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %WithNontype: type = class_type @WithNontype, @WithNontype(constants.%int_0.62d) [concrete = constants.%WithNontype.87c] -// CHECK:STDOUT: %.loc9_13.2: ref %WithNontype.87c = temporary_storage -// CHECK:STDOUT: %.loc9_13.3: init %WithNontype.87c to %.loc9_13.2 = class_init () [concrete = constants.%WithNontype.val] -// CHECK:STDOUT: %.loc9_15.1: init %WithNontype.87c = converted %.loc9_13.1, %.loc9_13.3 [concrete = constants.%WithNontype.val] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%int_0.62d) [concrete = constants.%F.specific_fn] -// CHECK:STDOUT: %.loc9_15.2: ref %WithNontype.87c = temporary %.loc9_13.2, %.loc9_15.1 [concrete = constants.%.a39] -// CHECK:STDOUT: %.loc9_15.3: %WithNontype.87c = acquire_value %.loc9_15.2 [concrete = constants.%WithNontype.val] +// CHECK:STDOUT: %bound_method.loc9_31.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc9_31.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc9_31.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc9_31.2: %i32 = converted %int_0, %.loc9_31.1 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %WithNontype: type = class_type @WithNontype, @WithNontype(constants.%int_0.3c0) [concrete = constants.%WithNontype.888] +// CHECK:STDOUT: %.loc9_13.2: ref %WithNontype.888 = temporary_storage +// CHECK:STDOUT: %.loc9_13.3: init %WithNontype.888 to %.loc9_13.2 = class_init () [concrete = constants.%WithNontype.val] +// CHECK:STDOUT: %.loc9_15.1: init %WithNontype.888 = converted %.loc9_13.1, %.loc9_13.3 [concrete = constants.%WithNontype.val] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%int_0.3c0) [concrete = constants.%F.specific_fn] +// 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.%.a39) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.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: -// CHECK:STDOUT: fn @Destroy.Op.loc9_15.2(%self.param: ref %WithNontype.87c) { +// CHECK:STDOUT: fn @Destroy.Op.loc9_15.2(%self.param: ref %WithNontype.888) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @WithNontype(constants.%N.bbe) { -// CHECK:STDOUT: %N.loc4_20.1 => constants.%N.bbe +// CHECK:STDOUT: specific @WithNontype(constants.%N.37f) { +// CHECK:STDOUT: %N.loc4_20.1 => constants.%N.37f // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%N.bbe) { -// CHECK:STDOUT: %N.loc6_7.1 => constants.%N.bbe -// CHECK:STDOUT: %WithNontype.loc6_38.1 => constants.%WithNontype.f38 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7b5 +// CHECK:STDOUT: specific @F(constants.%N.37f) { +// CHECK:STDOUT: %N.loc6_7.1 => constants.%N.37f +// CHECK:STDOUT: %WithNontype.loc6_38.1 => constants.%WithNontype.40e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e30 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @WithNontype(constants.%int_0.62d) { -// CHECK:STDOUT: %N.loc4_20.1 => constants.%int_0.62d +// CHECK:STDOUT: specific @WithNontype(constants.%int_0.3c0) { +// CHECK:STDOUT: %N.loc4_20.1 => constants.%int_0.3c0 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%int_0.62d) { -// CHECK:STDOUT: %N.loc6_7.1 => constants.%int_0.62d -// CHECK:STDOUT: %WithNontype.loc6_38.1 => constants.%WithNontype.87c -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f42 +// CHECK:STDOUT: specific @F(constants.%int_0.3c0) { +// CHECK:STDOUT: %N.loc6_7.1 => constants.%int_0.3c0 +// CHECK:STDOUT: %WithNontype.loc6_38.1 => constants.%WithNontype.888 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d30 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.357 -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound => constants.%Int.as.Copy.impl.Op.bound.74c -// CHECK:STDOUT: %bound_method.loc6_57.3 => constants.%bound_method.021 +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound => constants.%Int.as.Copy.impl.Op.bound.678 +// CHECK:STDOUT: %bound_method.loc6_57.3 => constants.%bound_method.28e // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/int_float.carbon b/toolchain/check/testdata/deduce/int_float.carbon index a398bd5d0747..33454e28a193 100644 --- a/toolchain/check/testdata/deduce/int_float.carbon +++ b/toolchain/check/testdata/deduce/int_float.carbon @@ -52,18 +52,18 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %.f7d: Core.Form = init_form Core.IntLiteral [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.692: = require_complete_type %Int [symbolic] +// CHECK:STDOUT: %require_complete.4df: = require_complete_type %Int [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.969: = impl_witness imports.%Copy.impl_witness_table.365 [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.969) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.535: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.b58: type = fn_type_with_self_type %Copy.WithSelf.Op.type.535, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.6f1: = impl_witness imports.%Copy.impl_witness_table.5e0 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.6f1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c52: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.c22: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c52, %Copy.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.type: type = fn_type @Core.IntLiteral.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op: %Core.IntLiteral.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.bound.3c6: = bound_method %N, %Core.IntLiteral.as.Copy.impl.Op [symbolic] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.fdd: type = pattern_type %i64 [concrete] +// CHECK:STDOUT: %pattern_type.f57: type = pattern_type %i64 [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %i64.builtin: type = int_type signed, %int_64 [concrete] @@ -83,8 +83,8 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %Core.IntLiteral: %IntLiteral.type = import_ref Core//prelude/parts/int_literal, IntLiteral, loaded [concrete = constants.%IntLiteral] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.f63: %Core.IntLiteral.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.365 = impl_witness_table (%Core.import_ref.f63), @Core.IntLiteral.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Core.IntLiteral.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.5e0 = impl_witness_table (%Core.import_ref.9c3), @Core.IntLiteral.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -128,8 +128,8 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %return: ref Core.IntLiteral = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.fdd = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.fdd = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.f57 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.f57 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %.loc8_33.2 [concrete] // CHECK:STDOUT: } { @@ -153,13 +153,13 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %pattern_type: type = pattern_type %Int.loc4_49.1 [symbolic = %pattern_type (constants.%pattern_type.142)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Int.loc4_49.1 [symbolic = %require_complete (constants.%require_complete.692)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Int.loc4_49.1 [symbolic = %require_complete (constants.%require_complete.4df)] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.bound: = bound_method %N.loc4_7.1, constants.%Core.IntLiteral.as.Copy.impl.Op [symbolic = %Core.IntLiteral.as.Copy.impl.Op.bound (constants.%Core.IntLiteral.as.Copy.impl.Op.bound.3c6)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%n.param: @F.%Int.loc4_49.1 (%Int)) -> out %return.param: Core.IntLiteral { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %N.ref.loc5: Core.IntLiteral = name_ref N, %N.loc4_7.2 [symbolic = %N.loc4_7.1 (constants.%N)] -// CHECK:STDOUT: %impl.elem0: %.b58 = impl_witness_access constants.%Copy.impl_witness.969, element0 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.c22 = impl_witness_access constants.%Copy.impl_witness.6f1, element0 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %N.ref.loc5, %impl.elem0 [symbolic = %Core.IntLiteral.as.Copy.impl.Op.bound (constants.%Core.IntLiteral.as.Copy.impl.Op.bound.3c6)] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.call: init Core.IntLiteral = call %bound_method(%N.ref.loc5) [symbolic = %N.loc4_7.1 (constants.%N)] // CHECK:STDOUT: return %Core.IntLiteral.as.Copy.impl.Op.call @@ -184,7 +184,7 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: specific @F(constants.%int_64) { // CHECK:STDOUT: %N.loc4_7.1 => constants.%int_64 // CHECK:STDOUT: %Int.loc4_49.1 => constants.%i64 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fdd +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f57 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.4a1 @@ -203,22 +203,22 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %Float.type: type = generic_class_type @Float [concrete] // CHECK:STDOUT: %Float.generic: %Float.type = struct_value () [concrete] // CHECK:STDOUT: %Float: type = class_type @Float, @Float(%N) [symbolic] -// CHECK:STDOUT: %pattern_type.76d: type = pattern_type %Float [symbolic] +// CHECK:STDOUT: %pattern_type.903: type = pattern_type %Float [symbolic] // CHECK:STDOUT: %.f7d: Core.Form = init_form Core.IntLiteral [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.201: = require_complete_type %Float [symbolic] +// CHECK:STDOUT: %require_complete.eb0: = require_complete_type %Float [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.969: = impl_witness imports.%Copy.impl_witness_table.365 [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.969) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.535: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.b58: type = fn_type_with_self_type %Copy.WithSelf.Op.type.535, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.6f1: = impl_witness imports.%Copy.impl_witness_table.5e0 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.6f1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c52: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.c22: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c52, %Copy.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.type: type = fn_type @Core.IntLiteral.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op: %Core.IntLiteral.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.bound.3c6: = bound_method %N, %Core.IntLiteral.as.Copy.impl.Op [symbolic] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [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: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %f64.794: type = float_type %int_64, f64 [concrete] @@ -238,8 +238,8 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %Core.IntLiteral: %IntLiteral.type = import_ref Core//prelude/parts/int_literal, IntLiteral, loaded [concrete = constants.%IntLiteral] // CHECK:STDOUT: %Core.Float: %Float.type = import_ref Core//prelude/parts/float, Float, loaded [concrete = constants.%Float.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.f63: %Core.IntLiteral.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.365 = impl_witness_table (%Core.import_ref.f63), @Core.IntLiteral.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Core.IntLiteral.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.5e0 = impl_witness_table (%Core.import_ref.9c3), @Core.IntLiteral.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -251,8 +251,8 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %n.param_patt: @F.%pattern_type (%pattern_type.76d) = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: @F.%pattern_type (%pattern_type.76d) = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %n.param_patt: @F.%pattern_type (%pattern_type.903) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @F.%pattern_type (%pattern_type.903) = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %.loc4_73.2 [concrete] // CHECK:STDOUT: } { @@ -283,8 +283,8 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %return: ref Core.IntLiteral = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.f3c = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.f3c = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.fb7 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %.loc8_33.2 [concrete] // CHECK:STDOUT: } { @@ -294,9 +294,9 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %.loc8_33.1: type = value_of_initializer %IntLiteral.call [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc8_33.2: type = converted %IntLiteral.call, %.loc8_33.1 [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc8_33.3: Core.Form = init_form %.loc8_33.2 [concrete = constants.%.f7d] -// CHECK:STDOUT: %a.param: %f64.b55 = value_param call_param0 -// CHECK:STDOUT: %f64: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %a: %f64.b55 = value_binding a, %a.param +// CHECK:STDOUT: %a.param: %f64.dc1 = value_param call_param0 +// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %a: %f64.dc1 = value_binding a, %a.param // CHECK:STDOUT: %return.param: ref Core.IntLiteral = out_param call_param1 // CHECK:STDOUT: %return: ref Core.IntLiteral = return_slot %return.param // CHECK:STDOUT: } @@ -305,26 +305,26 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: generic fn @F(%N.loc4_7.2: Core.IntLiteral) { // CHECK:STDOUT: %N.loc4_7.1: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N.loc4_7.1 (constants.%N)] // CHECK:STDOUT: %Float.loc4_51.1: type = class_type @Float, @Float(%N.loc4_7.1) [symbolic = %Float.loc4_51.1 (constants.%Float)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Float.loc4_51.1 [symbolic = %pattern_type (constants.%pattern_type.76d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Float.loc4_51.1 [symbolic = %pattern_type (constants.%pattern_type.903)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Float.loc4_51.1 [symbolic = %require_complete (constants.%require_complete.201)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Float.loc4_51.1 [symbolic = %require_complete (constants.%require_complete.eb0)] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.bound: = bound_method %N.loc4_7.1, constants.%Core.IntLiteral.as.Copy.impl.Op [symbolic = %Core.IntLiteral.as.Copy.impl.Op.bound (constants.%Core.IntLiteral.as.Copy.impl.Op.bound.3c6)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%n.param: @F.%Float.loc4_51.1 (%Float)) -> out %return.param: Core.IntLiteral { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %N.ref.loc5: Core.IntLiteral = name_ref N, %N.loc4_7.2 [symbolic = %N.loc4_7.1 (constants.%N)] -// CHECK:STDOUT: %impl.elem0: %.b58 = impl_witness_access constants.%Copy.impl_witness.969, element0 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.c22 = impl_witness_access constants.%Copy.impl_witness.6f1, element0 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %N.ref.loc5, %impl.elem0 [symbolic = %Core.IntLiteral.as.Copy.impl.Op.bound (constants.%Core.IntLiteral.as.Copy.impl.Op.bound.3c6)] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.call: init Core.IntLiteral = call %bound_method(%N.ref.loc5) [symbolic = %N.loc4_7.1 (constants.%N)] // CHECK:STDOUT: return %Core.IntLiteral.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%a.param: %f64.b55) -> out %return.param: Core.IntLiteral { +// CHECK:STDOUT: fn @G(%a.param: %f64.dc1) -> out %return.param: Core.IntLiteral { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %a.ref: %f64.b55 = name_ref a, %a +// CHECK:STDOUT: %a.ref: %f64.dc1 = name_ref a, %a // CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%int_64) [concrete = constants.%F.specific_fn] // CHECK:STDOUT: %F.call: init Core.IntLiteral = call %F.specific_fn(%a.ref) // CHECK:STDOUT: return %F.call @@ -333,13 +333,13 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: specific @F(constants.%N) { // CHECK:STDOUT: %N.loc4_7.1 => constants.%N // CHECK:STDOUT: %Float.loc4_51.1 => constants.%Float -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.76d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.903 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%int_64) { // CHECK:STDOUT: %N.loc4_7.1 => constants.%int_64 -// CHECK:STDOUT: %Float.loc4_51.1 => constants.%f64.b55 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f3c +// CHECK:STDOUT: %Float.loc4_51.1 => constants.%f64.dc1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fb7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.7b9 diff --git a/toolchain/check/testdata/deduce/tuple.carbon b/toolchain/check/testdata/deduce/tuple.carbon index 721b4eff1121..756a0d980e92 100644 --- a/toolchain/check/testdata/deduce/tuple.carbon +++ b/toolchain/check/testdata/deduce/tuple.carbon @@ -78,16 +78,16 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %tuple.type.a5e [symbolic] -// CHECK:STDOUT: %F.specific_fn.367: = specific_function %F, @F(%T, %U) [symbolic] -// CHECK:STDOUT: %tuple.ac7: %tuple.type.24b = tuple_value (%C, %D) [concrete] -// CHECK:STDOUT: %tuple.type.a6a: type = tuple_type (%C, %D) [concrete] -// CHECK:STDOUT: %pattern_type.ce9: type = pattern_type %tuple.type.a6a [concrete] -// CHECK:STDOUT: %.f19: Core.Form = init_form %D [concrete] -// CHECK:STDOUT: %pattern_type.f1a: type = pattern_type %D [concrete] +// CHECK:STDOUT: %F.specific_fn.19a: = specific_function %F, @F(%T, %U) [symbolic] +// CHECK:STDOUT: %tuple.b04: %tuple.type.24b = tuple_value (%C, %D) [concrete] +// CHECK:STDOUT: %tuple.type.af1: type = tuple_type (%C, %D) [concrete] +// CHECK:STDOUT: %pattern_type.c66: type = pattern_type %tuple.type.af1 [concrete] +// CHECK:STDOUT: %.592: Core.Form = init_form %D [concrete] +// CHECK:STDOUT: %pattern_type.d8d: type = pattern_type %D [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %F.specific_fn.335: = specific_function %F, @F(%C, %D) [concrete] -// CHECK:STDOUT: %complete_type.3cb: = complete_type_witness %tuple.type.a6a [concrete] +// CHECK:STDOUT: %F.specific_fn.fca: = specific_function %F, @F(%C, %D) [concrete] +// CHECK:STDOUT: %complete_type.6db: = complete_type_witness %tuple.type.af1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -140,21 +140,21 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %return: ref @F.%U.loc7_17.1 (%U) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %pair.param_patt: %pattern_type.ce9 = value_param_pattern [concrete] -// CHECK:STDOUT: %pair.patt: %pattern_type.ce9 = at_binding_pattern pair, %pair.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.f1a = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.f1a = return_slot_pattern %return.param_patt, %D.ref.loc9_23 [concrete] +// CHECK:STDOUT: %pair.param_patt: %pattern_type.c66 = value_param_pattern [concrete] +// CHECK:STDOUT: %pair.patt: %pattern_type.c66 = at_binding_pattern pair, %pair.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.d8d = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.d8d = return_slot_pattern %return.param_patt, %D.ref.loc9_23 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref.loc9_23: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %.loc9_23.2: Core.Form = init_form %D.ref.loc9_23 [concrete = constants.%.f19] -// CHECK:STDOUT: %pair.param: %tuple.type.a6a = value_param call_param0 -// CHECK:STDOUT: %.loc9_17.1: type = splice_block %.loc9_17.3 [concrete = constants.%tuple.type.a6a] { +// CHECK:STDOUT: %.loc9_23.2: Core.Form = init_form %D.ref.loc9_23 [concrete = constants.%.592] +// CHECK:STDOUT: %pair.param: %tuple.type.af1 = value_param call_param0 +// CHECK:STDOUT: %.loc9_17.1: type = splice_block %.loc9_17.3 [concrete = constants.%tuple.type.af1] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %D.ref.loc9_16: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %.loc9_17.2: %tuple.type.24b = tuple_literal (%C.ref, %D.ref.loc9_16) [concrete = constants.%tuple.ac7] -// CHECK:STDOUT: %.loc9_17.3: type = converted %.loc9_17.2, constants.%tuple.type.a6a [concrete = constants.%tuple.type.a6a] +// CHECK:STDOUT: %.loc9_17.2: %tuple.type.24b = tuple_literal (%C.ref, %D.ref.loc9_16) [concrete = constants.%tuple.b04] +// CHECK:STDOUT: %.loc9_17.3: type = converted %.loc9_17.2, constants.%tuple.type.af1 [concrete = constants.%tuple.type.af1] // CHECK:STDOUT: } -// CHECK:STDOUT: %pair: %tuple.type.a6a = value_binding pair, %pair.param +// CHECK:STDOUT: %pair: %tuple.type.af1 = value_binding pair, %pair.param // CHECK:STDOUT: %return.param: ref %D = out_param call_param1 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } @@ -187,24 +187,24 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %tuple.type [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %F.specific_fn.loc7_54.2: = specific_function constants.%F, @F(%T.loc7_7.1, %U.loc7_17.1) [symbolic = %F.specific_fn.loc7_54.2 (constants.%F.specific_fn.367)] +// CHECK:STDOUT: %F.specific_fn.loc7_54.2: = specific_function constants.%F, @F(%T.loc7_7.1, %U.loc7_17.1) [symbolic = %F.specific_fn.loc7_54.2 (constants.%F.specific_fn.19a)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%pair.param: @F.%tuple.type (%tuple.type.a5e)) -> out %return.param: @F.%U.loc7_17.1 (%U) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %pair.ref: @F.%tuple.type (%tuple.type.a5e) = name_ref pair, %pair -// CHECK:STDOUT: %F.specific_fn.loc7_54.1: = specific_function %F.ref, @F(constants.%T, constants.%U) [symbolic = %F.specific_fn.loc7_54.2 (constants.%F.specific_fn.367)] +// CHECK:STDOUT: %F.specific_fn.loc7_54.1: = specific_function %F.ref, @F(constants.%T, constants.%U) [symbolic = %F.specific_fn.loc7_54.2 (constants.%F.specific_fn.19a)] // CHECK:STDOUT: %.loc7_43.1: ref @F.%U.loc7_17.1 (%U) = splice_block %return.param {} // CHECK:STDOUT: %F.call: init @F.%U.loc7_17.1 (%U) to %.loc7_43.1 = call %F.specific_fn.loc7_54.1(%pair.ref) // CHECK:STDOUT: return %F.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%pair.param: %tuple.type.a6a) -> out %return.param: %D { +// CHECK:STDOUT: fn @G(%pair.param: %tuple.type.af1) -> out %return.param: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %pair.ref: %tuple.type.a6a = name_ref pair, %pair -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C, constants.%D) [concrete = constants.%F.specific_fn.335] +// CHECK:STDOUT: %pair.ref: %tuple.type.af1 = name_ref pair, %pair +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C, constants.%D) [concrete = constants.%F.specific_fn.fca] // CHECK:STDOUT: %.loc9_23.1: ref %D = splice_block %return.param {} // CHECK:STDOUT: %F.call: init %D to %.loc9_23.1 = call %F.specific_fn(%pair.ref) // CHECK:STDOUT: return %F.call to %return.param @@ -221,21 +221,21 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete -// CHECK:STDOUT: %F.specific_fn.loc7_54.2 => constants.%F.specific_fn.367 +// CHECK:STDOUT: %F.specific_fn.loc7_54.2 => constants.%F.specific_fn.19a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C, constants.%D) { // CHECK:STDOUT: %T.loc7_7.1 => constants.%C // CHECK:STDOUT: %U.loc7_17.1 => constants.%D -// CHECK:STDOUT: %tuple => constants.%tuple.ac7 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.a6a -// CHECK:STDOUT: %pattern_type.loc7_30 => constants.%pattern_type.ce9 -// CHECK:STDOUT: %.loc7_43.2 => constants.%.f19 -// CHECK:STDOUT: %pattern_type.loc7_43 => constants.%pattern_type.f1a +// CHECK:STDOUT: %tuple => constants.%tuple.b04 +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.af1 +// CHECK:STDOUT: %pattern_type.loc7_30 => constants.%pattern_type.c66 +// CHECK:STDOUT: %.loc7_43.2 => constants.%.592 +// CHECK:STDOUT: %pattern_type.loc7_43 => constants.%pattern_type.d8d // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.3cb -// CHECK:STDOUT: %F.specific_fn.loc7_54.2 => constants.%F.specific_fn.335 +// CHECK:STDOUT: %require_complete => constants.%complete_type.6db +// CHECK:STDOUT: %F.specific_fn.loc7_54.2 => constants.%F.specific_fn.fca // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- tuple_value.carbon @@ -249,68 +249,68 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.79d: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] -// CHECK:STDOUT: %pattern_type.7d6: type = pattern_type %tuple.type.e5a [concrete] -// CHECK:STDOUT: %Pair: %tuple.type.e5a = symbolic_binding Pair, 0 [symbolic] +// CHECK:STDOUT: %tuple.b59: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %pattern_type.394: type = pattern_type %tuple.type.e55 [concrete] +// CHECK:STDOUT: %Pair: %tuple.type.e55 = symbolic_binding Pair, 0 [symbolic] // CHECK:STDOUT: %HasPair.type: type = generic_class_type @HasPair [concrete] // CHECK:STDOUT: %HasPair.generic: %HasPair.type = struct_value () [concrete] -// CHECK:STDOUT: %HasPair.38e: type = class_type @HasPair, @HasPair(%Pair) [symbolic] +// CHECK:STDOUT: %HasPair.c64: type = class_type @HasPair, @HasPair(%Pair) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %A: %i32 = symbolic_binding A, 0 [symbolic] // CHECK:STDOUT: %B: %i32 = symbolic_binding B, 1 [symbolic] -// CHECK:STDOUT: %tuple.20c: %tuple.type.e5a = tuple_value (%A, %B) [symbolic] -// CHECK:STDOUT: %HasPair.fc9: type = class_type @HasPair, @HasPair(%tuple.20c) [symbolic] -// CHECK:STDOUT: %pattern_type.684: type = pattern_type %HasPair.fc9 [symbolic] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %tuple.509: %tuple.type.e55 = tuple_value (%A, %B) [symbolic] +// CHECK:STDOUT: %HasPair.72f: type = class_type @HasPair, @HasPair(%tuple.509) [symbolic] +// CHECK:STDOUT: %pattern_type.725: type = pattern_type %HasPair.72f [symbolic] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.be4: = require_complete_type %HasPair.fc9 [symbolic] +// CHECK:STDOUT: %require_complete.39d: = require_complete_type %HasPair.72f [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.f26: = bound_method %B, %Int.as.Copy.impl.Op.ce7 [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.b25: = bound_method %B, %Int.as.Copy.impl.Op.specific_fn [symbolic] +// 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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.273: = bound_method %B, %Int.as.Copy.impl.Op.4f6 [symbolic] +// 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: %bound_method.523: = bound_method %B, %Int.as.Copy.impl.Op.specific_fn [symbolic] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [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: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %tuple.cd5: %tuple.type.e5a = tuple_value (%int_1.d9c, %int_2.228) [concrete] -// CHECK:STDOUT: %HasPair.387: type = class_type @HasPair, @HasPair(%tuple.cd5) [concrete] -// CHECK:STDOUT: %pattern_type.36d: type = pattern_type %HasPair.387 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %tuple.102: %tuple.type.e55 = tuple_value (%int_1.0c6, %int_2.295) [concrete] +// CHECK:STDOUT: %HasPair.69b: type = class_type @HasPair, @HasPair(%tuple.102) [concrete] +// CHECK:STDOUT: %pattern_type.adf: type = pattern_type %HasPair.69b [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%int_1.d9c, %int_2.228) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.a01: = bound_method %int_2.228, %Int.as.Copy.impl.Op.ce7 [concrete] -// CHECK:STDOUT: %bound_method.190: = bound_method %int_2.228, %Int.as.Copy.impl.Op.specific_fn [concrete] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%int_1.0c6, %int_2.295) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.245: = bound_method %int_2.295, %Int.as.Copy.impl.Op.4f6 [concrete] +// CHECK:STDOUT: %bound_method.03a: = bound_method %int_2.295, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -323,11 +323,11 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -339,27 +339,27 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %HasPair.decl: %HasPair.type = class_decl @HasPair [concrete = constants.%HasPair.generic] { -// CHECK:STDOUT: %Pair.patt: %pattern_type.7d6 = symbolic_binding_pattern Pair, 0 [concrete] +// CHECK:STDOUT: %Pair.patt: %pattern_type.394 = symbolic_binding_pattern Pair, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc4_31.1: type = splice_block %.loc4_31.3 [concrete = constants.%tuple.type.e5a] { +// CHECK:STDOUT: %.loc4_31.1: type = splice_block %.loc4_31.3 [concrete = constants.%tuple.type.e55] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %i32.loc4_23: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc4_28: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4_31.2: %tuple.type.24b = tuple_literal (%i32.loc4_23, %i32.loc4_28) [concrete = constants.%tuple.79d] -// CHECK:STDOUT: %.loc4_31.3: type = converted %.loc4_31.2, constants.%tuple.type.e5a [concrete = constants.%tuple.type.e5a] +// CHECK:STDOUT: %.loc4_31.2: %tuple.type.24b = tuple_literal (%i32.loc4_23, %i32.loc4_28) [concrete = constants.%tuple.b59] +// CHECK:STDOUT: %.loc4_31.3: type = converted %.loc4_31.2, constants.%tuple.type.e55 [concrete = constants.%tuple.type.e55] // CHECK:STDOUT: } -// CHECK:STDOUT: %Pair.loc4_19.2: %tuple.type.e5a = symbolic_binding Pair, 0 [symbolic = %Pair.loc4_19.1 (constants.%Pair)] +// CHECK:STDOUT: %Pair.loc4_19.2: %tuple.type.e55 = symbolic_binding Pair, 0 [symbolic = %Pair.loc4_19.1 (constants.%Pair)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %A.patt: %pattern_type.104 = symbolic_binding_pattern A, 0 [concrete] -// CHECK:STDOUT: %B.patt: %pattern_type.104 = symbolic_binding_pattern B, 1 [concrete] -// CHECK:STDOUT: %h.param_patt: @F.%pattern_type (%pattern_type.684) = value_param_pattern [concrete] -// CHECK:STDOUT: %h.patt: @F.%pattern_type (%pattern_type.684) = at_binding_pattern h, %h.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc6_54 [concrete] +// CHECK:STDOUT: %A.patt: %pattern_type.6b6 = symbolic_binding_pattern A, 0 [concrete] +// CHECK:STDOUT: %B.patt: %pattern_type.6b6 = symbolic_binding_pattern B, 1 [concrete] +// CHECK:STDOUT: %h.param_patt: @F.%pattern_type (%pattern_type.725) = value_param_pattern [concrete] +// CHECK:STDOUT: %h.patt: @F.%pattern_type (%pattern_type.725) = at_binding_pattern h, %h.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc6_54 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_54: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc6_54: Core.Form = init_form %i32.loc6_54 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc6_54: Core.Form = init_form %i32.loc6_54 [concrete = constants.%.795] // CHECK:STDOUT: %.loc6_10: type = splice_block %i32.loc6_10 [concrete = constants.%i32] { // CHECK:STDOUT: %.Self.loc6_7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %i32.loc6_10: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -370,60 +370,60 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %i32.loc6_19: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: } // CHECK:STDOUT: %B.loc6_16.2: %i32 = symbolic_binding B, 1 [symbolic = %B.loc6_16.1 (constants.%B)] -// CHECK:STDOUT: %h.param: @F.%HasPair.loc6_48.1 (%HasPair.fc9) = value_param call_param0 -// CHECK:STDOUT: %.loc6_48.1: type = splice_block %HasPair.loc6_48.2 [symbolic = %HasPair.loc6_48.1 (constants.%HasPair.fc9)] { +// CHECK:STDOUT: %h.param: @F.%HasPair.loc6_48.1 (%HasPair.72f) = value_param call_param0 +// CHECK:STDOUT: %.loc6_48.1: type = splice_block %HasPair.loc6_48.2 [symbolic = %HasPair.loc6_48.1 (constants.%HasPair.72f)] { // CHECK:STDOUT: %HasPair.ref: %HasPair.type = name_ref HasPair, file.%HasPair.decl [concrete = constants.%HasPair.generic] // CHECK:STDOUT: %A.ref: %i32 = name_ref A, %A.loc6_7.2 [symbolic = %A.loc6_7.1 (constants.%A)] // CHECK:STDOUT: %B.ref.loc6_46: %i32 = name_ref B, %B.loc6_16.2 [symbolic = %B.loc6_16.1 (constants.%B)] -// CHECK:STDOUT: %.loc6_47: %tuple.type.e5a = tuple_literal (%A.ref, %B.ref.loc6_46) [symbolic = %tuple.loc6_47.1 (constants.%tuple.20c)] -// CHECK:STDOUT: %tuple.loc6_47.2: %tuple.type.e5a = tuple_value (%A.ref, %B.ref.loc6_46) [symbolic = %tuple.loc6_47.1 (constants.%tuple.20c)] -// CHECK:STDOUT: %.loc6_48.2: %tuple.type.e5a = converted %.loc6_47, %tuple.loc6_47.2 [symbolic = %tuple.loc6_47.1 (constants.%tuple.20c)] -// CHECK:STDOUT: %HasPair.loc6_48.2: type = class_type @HasPair, @HasPair(constants.%tuple.20c) [symbolic = %HasPair.loc6_48.1 (constants.%HasPair.fc9)] +// CHECK:STDOUT: %.loc6_47: %tuple.type.e55 = tuple_literal (%A.ref, %B.ref.loc6_46) [symbolic = %tuple.loc6_47.1 (constants.%tuple.509)] +// CHECK:STDOUT: %tuple.loc6_47.2: %tuple.type.e55 = tuple_value (%A.ref, %B.ref.loc6_46) [symbolic = %tuple.loc6_47.1 (constants.%tuple.509)] +// CHECK:STDOUT: %.loc6_48.2: %tuple.type.e55 = converted %.loc6_47, %tuple.loc6_47.2 [symbolic = %tuple.loc6_47.1 (constants.%tuple.509)] +// CHECK:STDOUT: %HasPair.loc6_48.2: type = class_type @HasPair, @HasPair(constants.%tuple.509) [symbolic = %HasPair.loc6_48.1 (constants.%HasPair.72f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %h: @F.%HasPair.loc6_48.1 (%HasPair.fc9) = value_binding h, %h.param +// CHECK:STDOUT: %h: @F.%HasPair.loc6_48.1 (%HasPair.72f) = value_binding h, %h.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %h.param_patt: %pattern_type.36d = value_param_pattern [concrete] -// CHECK:STDOUT: %h.patt: %pattern_type.36d = at_binding_pattern h, %h.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %h.param_patt: %pattern_type.adf = value_param_pattern [concrete] +// CHECK:STDOUT: %h.patt: %pattern_type.adf = at_binding_pattern h, %h.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc8_29: Core.Form = init_form %i32 [concrete = constants.%.7ea] -// CHECK:STDOUT: %h.param: %HasPair.387 = value_param call_param0 -// CHECK:STDOUT: %.loc8_23.1: type = splice_block %HasPair [concrete = constants.%HasPair.387] { +// CHECK:STDOUT: %.loc8_29: Core.Form = init_form %i32 [concrete = constants.%.795] +// CHECK:STDOUT: %h.param: %HasPair.69b = value_param call_param0 +// CHECK:STDOUT: %.loc8_23.1: type = splice_block %HasPair [concrete = constants.%HasPair.69b] { // CHECK:STDOUT: %HasPair.ref: %HasPair.type = name_ref HasPair, file.%HasPair.decl [concrete = constants.%HasPair.generic] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc8_22.1: %tuple.type.f94 = tuple_literal (%int_1, %int_2) [concrete = constants.%tuple.ad8] -// CHECK:STDOUT: %impl.elem0.loc8_22.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_22.1: = bound_method %int_1, %impl.elem0.loc8_22.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc8_22.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_22.1: = bound_method %int_1, %impl.elem0.loc8_22.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc8_22.1: = specific_function %impl.elem0.loc8_22.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_22.2: = bound_method %int_1, %specific_fn.loc8_22.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_22.1: init %i32 = call %bound_method.loc8_22.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_22.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_22.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_22.3: %i32 = converted %int_1, %.loc8_22.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc8_22.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_22.3: = bound_method %int_2, %impl.elem0.loc8_22.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc8_22.2: = bound_method %int_1, %specific_fn.loc8_22.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_22.1: init %i32 = call %bound_method.loc8_22.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_22.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_22.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_22.3: %i32 = converted %int_1, %.loc8_22.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc8_22.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_22.3: = bound_method %int_2, %impl.elem0.loc8_22.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc8_22.2: = specific_function %impl.elem0.loc8_22.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_22.4: = bound_method %int_2, %specific_fn.loc8_22.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_22.2: init %i32 = call %bound_method.loc8_22.4(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc8_22.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_22.2 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc8_22.5: %i32 = converted %int_2, %.loc8_22.4 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %tuple: %tuple.type.e5a = tuple_value (%.loc8_22.3, %.loc8_22.5) [concrete = constants.%tuple.cd5] -// CHECK:STDOUT: %.loc8_23.2: %tuple.type.e5a = converted %.loc8_22.1, %tuple [concrete = constants.%tuple.cd5] -// CHECK:STDOUT: %HasPair: type = class_type @HasPair, @HasPair(constants.%tuple.cd5) [concrete = constants.%HasPair.387] +// CHECK:STDOUT: %bound_method.loc8_22.4: = bound_method %int_2, %specific_fn.loc8_22.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_22.2: init %i32 = call %bound_method.loc8_22.4(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc8_22.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_22.2 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc8_22.5: %i32 = converted %int_2, %.loc8_22.4 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %tuple: %tuple.type.e55 = tuple_value (%.loc8_22.3, %.loc8_22.5) [concrete = constants.%tuple.102] +// CHECK:STDOUT: %.loc8_23.2: %tuple.type.e55 = converted %.loc8_22.1, %tuple [concrete = constants.%tuple.102] +// CHECK:STDOUT: %HasPair: type = class_type @HasPair, @HasPair(constants.%tuple.102) [concrete = constants.%HasPair.69b] // CHECK:STDOUT: } -// CHECK:STDOUT: %h: %HasPair.387 = value_binding h, %h.param +// CHECK:STDOUT: %h: %HasPair.69b = value_binding h, %h.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @HasPair(%Pair.loc4_19.2: %tuple.type.e5a) { -// CHECK:STDOUT: %Pair.loc4_19.1: %tuple.type.e5a = symbolic_binding Pair, 0 [symbolic = %Pair.loc4_19.1 (constants.%Pair)] +// CHECK:STDOUT: generic class @HasPair(%Pair.loc4_19.2: %tuple.type.e55) { +// CHECK:STDOUT: %Pair.loc4_19.1: %tuple.type.e55 = symbolic_binding Pair, 0 [symbolic = %Pair.loc4_19.1 (constants.%Pair)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -432,39 +432,39 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%HasPair.38e +// CHECK:STDOUT: .Self = constants.%HasPair.c64 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%A.loc6_7.2: %i32, %B.loc6_16.2: %i32) { // CHECK:STDOUT: %A.loc6_7.1: %i32 = symbolic_binding A, 0 [symbolic = %A.loc6_7.1 (constants.%A)] // CHECK:STDOUT: %B.loc6_16.1: %i32 = symbolic_binding B, 1 [symbolic = %B.loc6_16.1 (constants.%B)] -// CHECK:STDOUT: %tuple.loc6_47.1: %tuple.type.e5a = tuple_value (%A.loc6_7.1, %B.loc6_16.1) [symbolic = %tuple.loc6_47.1 (constants.%tuple.20c)] -// CHECK:STDOUT: %HasPair.loc6_48.1: type = class_type @HasPair, @HasPair(%tuple.loc6_47.1) [symbolic = %HasPair.loc6_48.1 (constants.%HasPair.fc9)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %HasPair.loc6_48.1 [symbolic = %pattern_type (constants.%pattern_type.684)] +// CHECK:STDOUT: %tuple.loc6_47.1: %tuple.type.e55 = tuple_value (%A.loc6_7.1, %B.loc6_16.1) [symbolic = %tuple.loc6_47.1 (constants.%tuple.509)] +// CHECK:STDOUT: %HasPair.loc6_48.1: type = class_type @HasPair, @HasPair(%tuple.loc6_47.1) [symbolic = %HasPair.loc6_48.1 (constants.%HasPair.72f)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %HasPair.loc6_48.1 [symbolic = %pattern_type (constants.%pattern_type.725)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %HasPair.loc6_48.1 [symbolic = %require_complete (constants.%require_complete.be4)] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %B.loc6_16.1, constants.%Int.as.Copy.impl.Op.ce7 [symbolic = %Int.as.Copy.impl.Op.bound (constants.%Int.as.Copy.impl.Op.bound.f26)] -// CHECK:STDOUT: %bound_method.loc6_67.3: = bound_method %B.loc6_16.1, constants.%Int.as.Copy.impl.Op.specific_fn [symbolic = %bound_method.loc6_67.3 (constants.%bound_method.b25)] +// CHECK:STDOUT: %require_complete: = require_complete_type %HasPair.loc6_48.1 [symbolic = %require_complete (constants.%require_complete.39d)] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %B.loc6_16.1, constants.%Int.as.Copy.impl.Op.4f6 [symbolic = %Int.as.Copy.impl.Op.bound (constants.%Int.as.Copy.impl.Op.bound.273)] +// CHECK:STDOUT: %bound_method.loc6_67.3: = bound_method %B.loc6_16.1, constants.%Int.as.Copy.impl.Op.specific_fn [symbolic = %bound_method.loc6_67.3 (constants.%bound_method.523)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%h.param: @F.%HasPair.loc6_48.1 (%HasPair.fc9)) -> out %return.param: %i32 { +// CHECK:STDOUT: fn(%h.param: @F.%HasPair.loc6_48.1 (%HasPair.72f)) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %B.ref.loc6_67: %i32 = name_ref B, %B.loc6_16.2 [symbolic = %B.loc6_16.1 (constants.%B)] -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] -// CHECK:STDOUT: %bound_method.loc6_67.1: = bound_method %B.ref.loc6_67, %impl.elem0 [symbolic = %Int.as.Copy.impl.Op.bound (constants.%Int.as.Copy.impl.Op.bound.f26)] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] +// CHECK:STDOUT: %bound_method.loc6_67.1: = bound_method %B.ref.loc6_67, %impl.elem0 [symbolic = %Int.as.Copy.impl.Op.bound (constants.%Int.as.Copy.impl.Op.bound.273)] // 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_67.2: = bound_method %B.ref.loc6_67, %specific_fn [symbolic = %bound_method.loc6_67.3 (constants.%bound_method.b25)] +// CHECK:STDOUT: %bound_method.loc6_67.2: = bound_method %B.ref.loc6_67, %specific_fn [symbolic = %bound_method.loc6_67.3 (constants.%bound_method.523)] // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc6_67.2(%B.ref.loc6_67) [symbolic = %B.loc6_16.1 (constants.%B)] // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%h.param: %HasPair.387) -> out %return.param: %i32 { +// CHECK:STDOUT: fn @G(%h.param: %HasPair.69b) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %h.ref: %HasPair.387 = name_ref h, %h -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%int_1.d9c, constants.%int_2.228) [concrete = constants.%F.specific_fn] +// CHECK:STDOUT: %h.ref: %HasPair.69b = name_ref h, %h +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%int_1.0c6, constants.%int_2.295) [concrete = constants.%F.specific_fn] // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn(%h.ref) // CHECK:STDOUT: return %F.call // CHECK:STDOUT: } @@ -473,8 +473,8 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %Pair.loc4_19.1 => constants.%Pair // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasPair(constants.%tuple.20c) { -// CHECK:STDOUT: %Pair.loc4_19.1 => constants.%tuple.20c +// CHECK:STDOUT: specific @HasPair(constants.%tuple.509) { +// CHECK:STDOUT: %Pair.loc4_19.1 => constants.%tuple.509 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -482,28 +482,28 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: specific @F(constants.%A, constants.%B) { // CHECK:STDOUT: %A.loc6_7.1 => constants.%A // CHECK:STDOUT: %B.loc6_16.1 => constants.%B -// CHECK:STDOUT: %tuple.loc6_47.1 => constants.%tuple.20c -// CHECK:STDOUT: %HasPair.loc6_48.1 => constants.%HasPair.fc9 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.684 +// CHECK:STDOUT: %tuple.loc6_47.1 => constants.%tuple.509 +// CHECK:STDOUT: %HasPair.loc6_48.1 => constants.%HasPair.72f +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.725 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasPair(constants.%tuple.cd5) { -// CHECK:STDOUT: %Pair.loc4_19.1 => constants.%tuple.cd5 +// CHECK:STDOUT: specific @HasPair(constants.%tuple.102) { +// CHECK:STDOUT: %Pair.loc4_19.1 => constants.%tuple.102 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%int_1.d9c, constants.%int_2.228) { -// CHECK:STDOUT: %A.loc6_7.1 => constants.%int_1.d9c -// CHECK:STDOUT: %B.loc6_16.1 => constants.%int_2.228 -// CHECK:STDOUT: %tuple.loc6_47.1 => constants.%tuple.cd5 -// CHECK:STDOUT: %HasPair.loc6_48.1 => constants.%HasPair.387 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.36d +// CHECK:STDOUT: specific @F(constants.%int_1.0c6, constants.%int_2.295) { +// CHECK:STDOUT: %A.loc6_7.1 => constants.%int_1.0c6 +// CHECK:STDOUT: %B.loc6_16.1 => constants.%int_2.295 +// CHECK:STDOUT: %tuple.loc6_47.1 => constants.%tuple.102 +// CHECK:STDOUT: %HasPair.loc6_48.1 => constants.%HasPair.69b +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.adf // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.357 -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound => constants.%Int.as.Copy.impl.Op.bound.a01 -// CHECK:STDOUT: %bound_method.loc6_67.3 => constants.%bound_method.190 +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound => constants.%Int.as.Copy.impl.Op.bound.245 +// CHECK:STDOUT: %bound_method.loc6_67.3 => constants.%bound_method.03a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_inconsistent.carbon @@ -525,11 +525,11 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %tuple.ac7: %tuple.type.24b = tuple_value (%C, %D) [concrete] -// CHECK:STDOUT: %tuple.type.a6a: type = tuple_type (%C, %D) [concrete] -// CHECK:STDOUT: %pattern_type.ce9: type = pattern_type %tuple.type.a6a [concrete] -// CHECK:STDOUT: %.f19: Core.Form = init_form %D [concrete] -// CHECK:STDOUT: %pattern_type.f1a: type = pattern_type %D [concrete] +// CHECK:STDOUT: %tuple.b04: %tuple.type.24b = tuple_value (%C, %D) [concrete] +// CHECK:STDOUT: %tuple.type.af1: type = tuple_type (%C, %D) [concrete] +// CHECK:STDOUT: %pattern_type.c66: type = pattern_type %tuple.type.af1 [concrete] +// CHECK:STDOUT: %.592: Core.Form = init_form %D [concrete] +// CHECK:STDOUT: %pattern_type.d8d: type = pattern_type %D [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -578,21 +578,21 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %return: ref @F.%T.loc7_7.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %pair.param_patt: %pattern_type.ce9 = value_param_pattern [concrete] -// CHECK:STDOUT: %pair.patt: %pattern_type.ce9 = at_binding_pattern pair, %pair.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.f1a = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.f1a = return_slot_pattern %return.param_patt, %D.ref.loc9_23 [concrete] +// CHECK:STDOUT: %pair.param_patt: %pattern_type.c66 = value_param_pattern [concrete] +// CHECK:STDOUT: %pair.patt: %pattern_type.c66 = at_binding_pattern pair, %pair.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.d8d = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.d8d = return_slot_pattern %return.param_patt, %D.ref.loc9_23 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref.loc9_23: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %.loc9_23: Core.Form = init_form %D.ref.loc9_23 [concrete = constants.%.f19] -// CHECK:STDOUT: %pair.param: %tuple.type.a6a = value_param call_param0 -// CHECK:STDOUT: %.loc9_17.1: type = splice_block %.loc9_17.3 [concrete = constants.%tuple.type.a6a] { +// CHECK:STDOUT: %.loc9_23: Core.Form = init_form %D.ref.loc9_23 [concrete = constants.%.592] +// CHECK:STDOUT: %pair.param: %tuple.type.af1 = value_param call_param0 +// CHECK:STDOUT: %.loc9_17.1: type = splice_block %.loc9_17.3 [concrete = constants.%tuple.type.af1] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %D.ref.loc9_16: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %.loc9_17.2: %tuple.type.24b = tuple_literal (%C.ref, %D.ref.loc9_16) [concrete = constants.%tuple.ac7] -// CHECK:STDOUT: %.loc9_17.3: type = converted %.loc9_17.2, constants.%tuple.type.a6a [concrete = constants.%tuple.type.a6a] +// CHECK:STDOUT: %.loc9_17.2: %tuple.type.24b = tuple_literal (%C.ref, %D.ref.loc9_16) [concrete = constants.%tuple.b04] +// CHECK:STDOUT: %.loc9_17.3: type = converted %.loc9_17.2, constants.%tuple.type.af1 [concrete = constants.%tuple.type.af1] // CHECK:STDOUT: } -// CHECK:STDOUT: %pair: %tuple.type.a6a = value_binding pair, %pair.param +// CHECK:STDOUT: %pair: %tuple.type.af1 = value_binding pair, %pair.param // CHECK:STDOUT: %return.param: ref %D = out_param call_param1 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } @@ -625,10 +625,10 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: fn(%pair.param: @F.%tuple.type (%tuple.type.07a)) -> out %return.param: @F.%T.loc7_7.1 (%T); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%pair.param: %tuple.type.a6a) -> out %return.param: %D { +// CHECK:STDOUT: fn @G(%pair.param: %tuple.type.af1) -> out %return.param: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %pair.ref: %tuple.type.a6a = name_ref pair, %pair +// CHECK:STDOUT: %pair.ref: %tuple.type.af1 = name_ref pair, %pair // CHECK:STDOUT: return to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/type_operator.carbon b/toolchain/check/testdata/deduce/type_operator.carbon index 8bd35b9411c1..8ffbd5acacae 100644 --- a/toolchain/check/testdata/deduce/type_operator.carbon +++ b/toolchain/check/testdata/deduce/type_operator.carbon @@ -85,15 +85,15 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %F.specific_fn.d7f: = specific_function %F, @F(%T) [symbolic] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %F.specific_fn.eab: = specific_function %F, @F(%T) [symbolic] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %F.specific_fn.076: = specific_function %F, @F(%C) [concrete] -// CHECK:STDOUT: %complete_type.739: = complete_type_witness %ptr.6be [concrete] +// CHECK:STDOUT: %F.specific_fn.e0d: = specific_function %F, @F(%C) [concrete] +// CHECK:STDOUT: %complete_type.bf9: = complete_type_witness %ptr.6b6 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -136,19 +136,19 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %return: ref @F.%T.loc6_7.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.1c8 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.1c8 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref.loc8_16 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.fcb = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.fcb = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc8_16 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8_16: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc8_16.2: Core.Form = init_form %C.ref.loc8_16 [concrete = constants.%.8f0] -// CHECK:STDOUT: %p.param: %ptr.6be = value_param call_param0 -// CHECK:STDOUT: %.loc8_10: type = splice_block %ptr [concrete = constants.%ptr.6be] { +// CHECK:STDOUT: %.loc8_16.2: Core.Form = init_form %C.ref.loc8_16 [concrete = constants.%.a44] +// CHECK:STDOUT: %p.param: %ptr.6b6 = value_param call_param0 +// CHECK:STDOUT: %.loc8_10: type = splice_block %ptr [concrete = constants.%ptr.6b6] { // CHECK:STDOUT: %C.ref.loc8_9: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr: type = ptr_type %C.ref.loc8_9 [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr: type = ptr_type %C.ref.loc8_9 [concrete = constants.%ptr.6b6] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.6be = value_binding p, %p.param +// CHECK:STDOUT: %p: %ptr.6b6 = value_binding p, %p.param // CHECK:STDOUT: %return.param: ref %C = out_param call_param1 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } @@ -172,24 +172,24 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_20.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.ef1)] // CHECK:STDOUT: %require_complete.loc6_23: = require_complete_type %T.loc6_7.1 [symbolic = %require_complete.loc6_23 (constants.%require_complete.944)] -// CHECK:STDOUT: %F.specific_fn.loc6_37.2: = specific_function constants.%F, @F(%T.loc6_7.1) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %F.specific_fn.loc6_37.2: = specific_function constants.%F, @F(%T.loc6_7.1) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%p.param: @F.%ptr.loc6_20.1 (%ptr.e8f)) -> out %return.param: @F.%T.loc6_7.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %p.ref: @F.%ptr.loc6_20.1 (%ptr.e8f) = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn.loc6_37.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %F.specific_fn.loc6_37.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: %.loc6_26.1: ref @F.%T.loc6_7.1 (%T) = splice_block %return.param {} // CHECK:STDOUT: %F.call: init @F.%T.loc6_7.1 (%T) to %.loc6_26.1 = call %F.specific_fn.loc6_37.1(%p.ref) // CHECK:STDOUT: return %F.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param: %ptr.6be) -> out %return.param: %C { +// CHECK:STDOUT: fn @G(%p.param: %ptr.6b6) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: %ptr.6be = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.076] +// CHECK:STDOUT: %p.ref: %ptr.6b6 = name_ref p, %p +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.e0d] // CHECK:STDOUT: %.loc8_16.1: ref %C = splice_block %return.param {} // CHECK:STDOUT: %F.call: init %C to %.loc8_16.1 = call %F.specific_fn(%p.ref) // CHECK:STDOUT: return %F.call to %return.param @@ -205,20 +205,20 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.ef1 // CHECK:STDOUT: %require_complete.loc6_23 => constants.%require_complete.944 -// CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.d7f +// CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.eab // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { // CHECK:STDOUT: %T.loc6_7.1 => constants.%C -// CHECK:STDOUT: %ptr.loc6_20.1 => constants.%ptr.6be -// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.1c8 -// CHECK:STDOUT: %.loc6_26.2 => constants.%.8f0 -// CHECK:STDOUT: %pattern_type.loc6_26 => constants.%pattern_type.0d5 +// CHECK:STDOUT: %ptr.loc6_20.1 => constants.%ptr.6b6 +// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.fcb +// CHECK:STDOUT: %.loc6_26.2 => constants.%.a44 +// CHECK:STDOUT: %pattern_type.loc6_26 => constants.%pattern_type.98b // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.739 +// CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.bf9 // CHECK:STDOUT: %require_complete.loc6_23 => constants.%complete_type.357 -// CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.076 +// CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.e0d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- const.carbon @@ -240,16 +240,16 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.0c1: = require_complete_type %ptr.a15 [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %F.specific_fn.d7f: = specific_function %F, @F(%T) [symbolic] -// CHECK:STDOUT: %const.a89: type = const_type %C [concrete] -// CHECK:STDOUT: %ptr.089: type = ptr_type %const.a89 [concrete] -// CHECK:STDOUT: %pattern_type.805: type = pattern_type %ptr.089 [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %F.specific_fn.eab: = specific_function %F, @F(%T) [symbolic] +// CHECK:STDOUT: %const.13f: type = const_type %C [concrete] +// CHECK:STDOUT: %ptr.77f: type = ptr_type %const.13f [concrete] +// CHECK:STDOUT: %pattern_type.7d2: type = pattern_type %ptr.77f [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %F.specific_fn.076: = specific_function %F, @F(%C) [concrete] -// CHECK:STDOUT: %complete_type.1b9: = complete_type_witness %ptr.089 [concrete] +// CHECK:STDOUT: %F.specific_fn.e0d: = specific_function %F, @F(%C) [concrete] +// CHECK:STDOUT: %complete_type.8ec: = complete_type_witness %ptr.77f [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -293,20 +293,20 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %return: ref @F.%T.loc6_7.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.805 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.805 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref.loc8_22 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.7d2 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.7d2 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc8_22 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8_22: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc8_22.2: Core.Form = init_form %C.ref.loc8_22 [concrete = constants.%.8f0] -// CHECK:STDOUT: %p.param: %ptr.089 = value_param call_param0 -// CHECK:STDOUT: %.loc8_16: type = splice_block %ptr [concrete = constants.%ptr.089] { +// CHECK:STDOUT: %.loc8_22.2: Core.Form = init_form %C.ref.loc8_22 [concrete = constants.%.a44] +// CHECK:STDOUT: %p.param: %ptr.77f = value_param call_param0 +// CHECK:STDOUT: %.loc8_16: type = splice_block %ptr [concrete = constants.%ptr.77f] { // CHECK:STDOUT: %C.ref.loc8_15: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %const: type = const_type %C.ref.loc8_15 [concrete = constants.%const.a89] -// CHECK:STDOUT: %ptr: type = ptr_type %const [concrete = constants.%ptr.089] +// CHECK:STDOUT: %const: type = const_type %C.ref.loc8_15 [concrete = constants.%const.13f] +// CHECK:STDOUT: %ptr: type = ptr_type %const [concrete = constants.%ptr.77f] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.089 = value_binding p, %p.param +// CHECK:STDOUT: %p: %ptr.77f = value_binding p, %p.param // CHECK:STDOUT: %return.param: ref %C = out_param call_param1 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } @@ -331,24 +331,24 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_26.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.0c1)] // CHECK:STDOUT: %require_complete.loc6_29: = require_complete_type %T.loc6_7.1 [symbolic = %require_complete.loc6_29 (constants.%require_complete.944)] -// CHECK:STDOUT: %F.specific_fn.loc6_43.2: = specific_function constants.%F, @F(%T.loc6_7.1) [symbolic = %F.specific_fn.loc6_43.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %F.specific_fn.loc6_43.2: = specific_function constants.%F, @F(%T.loc6_7.1) [symbolic = %F.specific_fn.loc6_43.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%p.param: @F.%ptr.loc6_26.1 (%ptr.a15)) -> out %return.param: @F.%T.loc6_7.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %p.ref: @F.%ptr.loc6_26.1 (%ptr.a15) = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn.loc6_43.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc6_43.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %F.specific_fn.loc6_43.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc6_43.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: %.loc6_32.1: ref @F.%T.loc6_7.1 (%T) = splice_block %return.param {} // CHECK:STDOUT: %F.call: init @F.%T.loc6_7.1 (%T) to %.loc6_32.1 = call %F.specific_fn.loc6_43.1(%p.ref) // CHECK:STDOUT: return %F.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param: %ptr.089) -> out %return.param: %C { +// CHECK:STDOUT: fn @G(%p.param: %ptr.77f) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: %ptr.089 = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.076] +// CHECK:STDOUT: %p.ref: %ptr.77f = name_ref p, %p +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.e0d] // CHECK:STDOUT: %.loc8_22.1: ref %C = splice_block %return.param {} // CHECK:STDOUT: %F.call: init %C to %.loc8_22.1 = call %F.specific_fn(%p.ref) // CHECK:STDOUT: return %F.call to %return.param @@ -365,21 +365,21 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.0c1 // CHECK:STDOUT: %require_complete.loc6_29 => constants.%require_complete.944 -// CHECK:STDOUT: %F.specific_fn.loc6_43.2 => constants.%F.specific_fn.d7f +// CHECK:STDOUT: %F.specific_fn.loc6_43.2 => constants.%F.specific_fn.eab // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { // CHECK:STDOUT: %T.loc6_7.1 => constants.%C -// CHECK:STDOUT: %const.loc6_19.1 => constants.%const.a89 -// CHECK:STDOUT: %ptr.loc6_26.1 => constants.%ptr.089 -// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.805 -// CHECK:STDOUT: %.loc6_32.2 => constants.%.8f0 -// CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.0d5 +// CHECK:STDOUT: %const.loc6_19.1 => constants.%const.13f +// CHECK:STDOUT: %ptr.loc6_26.1 => constants.%ptr.77f +// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.7d2 +// CHECK:STDOUT: %.loc6_32.2 => constants.%.a44 +// CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.98b // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.1b9 +// CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.8ec // CHECK:STDOUT: %require_complete.loc6_29 => constants.%complete_type.357 -// CHECK:STDOUT: %F.specific_fn.loc6_43.2 => constants.%F.specific_fn.076 +// CHECK:STDOUT: %F.specific_fn.loc6_43.2 => constants.%F.specific_fn.e0d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- nonconst_from_const.carbon @@ -400,16 +400,16 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %F.specific_fn.d7f: = specific_function %F, @F(%T) [symbolic] +// CHECK:STDOUT: %F.specific_fn.eab: = specific_function %F, @F(%T) [symbolic] // CHECK:STDOUT: %const: type = const_type %C [concrete] -// CHECK:STDOUT: %ptr.089: type = ptr_type %const [concrete] -// CHECK:STDOUT: %pattern_type.805: type = pattern_type %ptr.089 [concrete] -// CHECK:STDOUT: %.932: Core.Form = init_form %const [concrete] -// CHECK:STDOUT: %pattern_type.d58: type = pattern_type %const [concrete] +// CHECK:STDOUT: %ptr.77f: type = ptr_type %const [concrete] +// CHECK:STDOUT: %pattern_type.7d2: type = pattern_type %ptr.77f [concrete] +// CHECK:STDOUT: %.ab2: Core.Form = init_form %const [concrete] +// CHECK:STDOUT: %pattern_type.1e4: type = pattern_type %const [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %F.specific_fn.257: = specific_function %F, @F(%const) [concrete] -// CHECK:STDOUT: %complete_type.1b9: = complete_type_witness %ptr.089 [concrete] +// CHECK:STDOUT: %F.specific_fn.513: = specific_function %F, @F(%const) [concrete] +// CHECK:STDOUT: %complete_type.8ec: = complete_type_witness %ptr.77f [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -452,21 +452,21 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %return: ref @F.%T.loc6_7.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.805 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.805 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.d58 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.d58 = return_slot_pattern %return.param_patt, %const.loc8_22 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.7d2 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.7d2 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.1e4 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.1e4 = return_slot_pattern %return.param_patt, %const.loc8_22 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8_28: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %const.loc8_22: type = const_type %C.ref.loc8_28 [concrete = constants.%const] -// CHECK:STDOUT: %.loc8_22.2: Core.Form = init_form %const.loc8_22 [concrete = constants.%.932] -// CHECK:STDOUT: %p.param: %ptr.089 = value_param call_param0 -// CHECK:STDOUT: %.loc8_16: type = splice_block %ptr [concrete = constants.%ptr.089] { +// CHECK:STDOUT: %.loc8_22.2: Core.Form = init_form %const.loc8_22 [concrete = constants.%.ab2] +// CHECK:STDOUT: %p.param: %ptr.77f = value_param call_param0 +// CHECK:STDOUT: %.loc8_16: type = splice_block %ptr [concrete = constants.%ptr.77f] { // CHECK:STDOUT: %C.ref.loc8_15: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %const.loc8_9: type = const_type %C.ref.loc8_15 [concrete = constants.%const] -// CHECK:STDOUT: %ptr: type = ptr_type %const.loc8_9 [concrete = constants.%ptr.089] +// CHECK:STDOUT: %ptr: type = ptr_type %const.loc8_9 [concrete = constants.%ptr.77f] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.089 = value_binding p, %p.param +// CHECK:STDOUT: %p: %ptr.77f = value_binding p, %p.param // CHECK:STDOUT: %return.param: ref %const = out_param call_param1 // CHECK:STDOUT: %return: ref %const = return_slot %return.param // CHECK:STDOUT: } @@ -490,24 +490,24 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_20.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.ef1)] // CHECK:STDOUT: %require_complete.loc6_23: = require_complete_type %T.loc6_7.1 [symbolic = %require_complete.loc6_23 (constants.%require_complete.944)] -// CHECK:STDOUT: %F.specific_fn.loc6_37.2: = specific_function constants.%F, @F(%T.loc6_7.1) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %F.specific_fn.loc6_37.2: = specific_function constants.%F, @F(%T.loc6_7.1) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%p.param: @F.%ptr.loc6_20.1 (%ptr.e8f)) -> out %return.param: @F.%T.loc6_7.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %p.ref: @F.%ptr.loc6_20.1 (%ptr.e8f) = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn.loc6_37.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %F.specific_fn.loc6_37.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: %.loc6_26.1: ref @F.%T.loc6_7.1 (%T) = splice_block %return.param {} // CHECK:STDOUT: %F.call: init @F.%T.loc6_7.1 (%T) to %.loc6_26.1 = call %F.specific_fn.loc6_37.1(%p.ref) // CHECK:STDOUT: return %F.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param: %ptr.089) -> out %return.param: %const { +// CHECK:STDOUT: fn @G(%p.param: %ptr.77f) -> out %return.param: %const { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: %ptr.089 = name_ref p, %p -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%const) [concrete = constants.%F.specific_fn.257] +// CHECK:STDOUT: %p.ref: %ptr.77f = name_ref p, %p +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%const) [concrete = constants.%F.specific_fn.513] // CHECK:STDOUT: %.loc8_22.1: ref %const = splice_block %return.param {} // CHECK:STDOUT: %F.call: init %const to %.loc8_22.1 = call %F.specific_fn(%p.ref) // CHECK:STDOUT: return %F.call to %return.param @@ -523,20 +523,20 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.ef1 // CHECK:STDOUT: %require_complete.loc6_23 => constants.%require_complete.944 -// CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.d7f +// CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.eab // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%const) { // CHECK:STDOUT: %T.loc6_7.1 => constants.%const -// CHECK:STDOUT: %ptr.loc6_20.1 => constants.%ptr.089 -// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.805 -// CHECK:STDOUT: %.loc6_26.2 => constants.%.932 -// CHECK:STDOUT: %pattern_type.loc6_26 => constants.%pattern_type.d58 +// CHECK:STDOUT: %ptr.loc6_20.1 => constants.%ptr.77f +// CHECK:STDOUT: %pattern_type.loc6_17 => constants.%pattern_type.7d2 +// CHECK:STDOUT: %.loc6_26.2 => constants.%.ab2 +// CHECK:STDOUT: %pattern_type.loc6_26 => constants.%pattern_type.1e4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.1b9 +// CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.8ec // CHECK:STDOUT: %require_complete.loc6_23 => constants.%complete_type.357 -// CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.257 +// CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.513 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_const_from_nonconst.carbon @@ -559,11 +559,11 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %require_complete.0c1: = require_complete_type %ptr.a15 [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%T) [symbolic] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %const.a89: type = const_type %C [concrete] -// CHECK:STDOUT: %.932: Core.Form = init_form %const.a89 [concrete] -// CHECK:STDOUT: %pattern_type.d58: type = pattern_type %const.a89 [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %const.13f: type = const_type %C [concrete] +// CHECK:STDOUT: %.ab2: Core.Form = init_form %const.13f [concrete] +// CHECK:STDOUT: %pattern_type.1e4: type = pattern_type %const.13f [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -609,22 +609,22 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %return: ref @F.%T.loc6_7.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.1c8 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.1c8 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.d58 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.d58 = return_slot_pattern %return.param_patt, %const [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.fcb = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.fcb = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.1e4 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.1e4 = return_slot_pattern %return.param_patt, %const [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8_22: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %const: type = const_type %C.ref.loc8_22 [concrete = constants.%const.a89] -// CHECK:STDOUT: %.loc8_16: Core.Form = init_form %const [concrete = constants.%.932] -// CHECK:STDOUT: %p.param: %ptr.6be = value_param call_param0 -// CHECK:STDOUT: %.loc8_10: type = splice_block %ptr [concrete = constants.%ptr.6be] { +// CHECK:STDOUT: %const: type = const_type %C.ref.loc8_22 [concrete = constants.%const.13f] +// CHECK:STDOUT: %.loc8_16: Core.Form = init_form %const [concrete = constants.%.ab2] +// CHECK:STDOUT: %p.param: %ptr.6b6 = value_param call_param0 +// CHECK:STDOUT: %.loc8_10: type = splice_block %ptr [concrete = constants.%ptr.6b6] { // CHECK:STDOUT: %C.ref.loc8_9: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr: type = ptr_type %C.ref.loc8_9 [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr: type = ptr_type %C.ref.loc8_9 [concrete = constants.%ptr.6b6] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.6be = value_binding p, %p.param -// CHECK:STDOUT: %return.param: ref %const.a89 = out_param call_param1 -// CHECK:STDOUT: %return: ref %const.a89 = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.6b6 = value_binding p, %p.param +// CHECK:STDOUT: %return.param: ref %const.13f = out_param call_param1 +// CHECK:STDOUT: %return: ref %const.13f = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -660,10 +660,10 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param: %ptr.6be) -> out %return.param: %const.a89 { +// CHECK:STDOUT: fn @G(%p.param: %ptr.6b6) -> out %return.param: %const.13f { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: %ptr.6be = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.6b6 = name_ref p, %p // CHECK:STDOUT: return to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/value_with_type_through_access.carbon b/toolchain/check/testdata/deduce/value_with_type_through_access.carbon index 433a19382511..4639ffcd63ad 100644 --- a/toolchain/check/testdata/deduce/value_with_type_through_access.carbon +++ b/toolchain/check/testdata/deduce/value_with_type_through_access.carbon @@ -110,37 +110,37 @@ fn G() { // CHECK:STDOUT: %HoldsType.type: type = generic_class_type @HoldsType [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %HoldsType.generic: %HoldsType.type = struct_value () [concrete] -// CHECK:STDOUT: %HoldsType.c9c: type = class_type @HoldsType, @HoldsType(%T) [symbolic] +// CHECK:STDOUT: %HoldsType.a83: type = class_type @HoldsType, @HoldsType(%T) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.ad8: type = pattern_type %HoldsType.c9c [symbolic] +// CHECK:STDOUT: %pattern_type.b2f: type = pattern_type %HoldsType.a83 [symbolic] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %tuple.elem0: type = tuple_access %T, element0 [symbolic] // CHECK:STDOUT: %pattern_type.e66: type = pattern_type %tuple.elem0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.b66: = require_complete_type %HoldsType.c9c [symbolic] +// CHECK:STDOUT: %require_complete.9de: = require_complete_type %HoldsType.a83 [symbolic] // CHECK:STDOUT: %require_complete.e7a: = require_complete_type %tuple.elem0 [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %tuple.983: %tuple.type = tuple_value (%C) [concrete] -// CHECK:STDOUT: %HoldsType.0e6: type = class_type @HoldsType, @HoldsType(%tuple.983) [concrete] -// CHECK:STDOUT: %HoldsType.val: %HoldsType.0e6 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.ca7: type = pattern_type %HoldsType.0e6 [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%tuple.983) [concrete] -// CHECK:STDOUT: %.6ea: ref %HoldsType.0e6 = temporary invalid, %HoldsType.val [concrete] +// CHECK:STDOUT: %tuple.e45: %tuple.type = tuple_value (%C) [concrete] +// CHECK:STDOUT: %HoldsType.30f: type = class_type @HoldsType, @HoldsType(%tuple.e45) [concrete] +// CHECK:STDOUT: %HoldsType.val: %HoldsType.30f = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.ff4: type = pattern_type %HoldsType.30f [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%tuple.e45) [concrete] +// CHECK:STDOUT: %.eb0: ref %HoldsType.30f = temporary invalid, %HoldsType.val [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %.7a6: ref %C = temporary invalid, %C.val [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.790b3b.2: type = fn_type @Destroy.Op.loc13_30.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.219: = bound_method %.7a6, %Destroy.Op.2dd605.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc13_8 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.e3d: = bound_method %.6ea, %Destroy.Op.2dd605.3 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -174,8 +174,8 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.f1e = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc8_28 (%pattern_type.ad8) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc8_28 (%pattern_type.ad8) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc8_28 (%pattern_type.b2f) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc8_28 (%pattern_type.b2f) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc8_52 (%pattern_type.e66) = value_param_pattern [concrete] // CHECK:STDOUT: %a.patt: @F.%pattern_type.loc8_52 (%pattern_type.e66) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { @@ -186,13 +186,13 @@ fn G() { // CHECK:STDOUT: %.loc8_17.3: type = converted %.loc8_17.2, constants.%tuple.type [concrete = constants.%tuple.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc8_7.2: %tuple.type = symbolic_binding T, 0 [symbolic = %T.loc8_7.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @F.%HoldsType.loc8_41.1 (%HoldsType.c9c) = value_param call_param0 -// CHECK:STDOUT: %.loc8_41: type = splice_block %HoldsType.loc8_41.2 [symbolic = %HoldsType.loc8_41.1 (constants.%HoldsType.c9c)] { +// CHECK:STDOUT: %x.param: @F.%HoldsType.loc8_41.1 (%HoldsType.a83) = value_param call_param0 +// CHECK:STDOUT: %.loc8_41: type = splice_block %HoldsType.loc8_41.2 [symbolic = %HoldsType.loc8_41.1 (constants.%HoldsType.a83)] { // CHECK:STDOUT: %HoldsType.ref: %HoldsType.type = name_ref HoldsType, file.%HoldsType.decl [concrete = constants.%HoldsType.generic] // CHECK:STDOUT: %T.ref.loc8_40: %tuple.type = name_ref T, %T.loc8_7.2 [symbolic = %T.loc8_7.1 (constants.%T)] -// CHECK:STDOUT: %HoldsType.loc8_41.2: type = class_type @HoldsType, @HoldsType(constants.%T) [symbolic = %HoldsType.loc8_41.1 (constants.%HoldsType.c9c)] +// CHECK:STDOUT: %HoldsType.loc8_41.2: type = class_type @HoldsType, @HoldsType(constants.%T) [symbolic = %HoldsType.loc8_41.1 (constants.%HoldsType.a83)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%HoldsType.loc8_41.1 (%HoldsType.c9c) = value_binding x, %x.param +// CHECK:STDOUT: %x: @F.%HoldsType.loc8_41.1 (%HoldsType.a83) = value_binding x, %x.param // CHECK:STDOUT: %a.param: @F.%tuple.elem0.loc8_55.1 (%tuple.elem0) = value_param call_param1 // CHECK:STDOUT: %.loc8_55: type = splice_block %tuple.elem0.loc8_55.2 [symbolic = %tuple.elem0.loc8_55.1 (constants.%tuple.elem0)] { // CHECK:STDOUT: %T.ref.loc8_54: %tuple.type = name_ref T, %T.loc8_7.2 [symbolic = %T.loc8_7.1 (constants.%T)] @@ -215,7 +215,7 @@ fn G() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%HoldsType.c9c +// CHECK:STDOUT: .Self = constants.%HoldsType.a83 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -229,16 +229,16 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc8_7.2: %tuple.type) { // CHECK:STDOUT: %T.loc8_7.1: %tuple.type = symbolic_binding T, 0 [symbolic = %T.loc8_7.1 (constants.%T)] -// CHECK:STDOUT: %HoldsType.loc8_41.1: type = class_type @HoldsType, @HoldsType(%T.loc8_7.1) [symbolic = %HoldsType.loc8_41.1 (constants.%HoldsType.c9c)] -// CHECK:STDOUT: %pattern_type.loc8_28: type = pattern_type %HoldsType.loc8_41.1 [symbolic = %pattern_type.loc8_28 (constants.%pattern_type.ad8)] +// CHECK:STDOUT: %HoldsType.loc8_41.1: type = class_type @HoldsType, @HoldsType(%T.loc8_7.1) [symbolic = %HoldsType.loc8_41.1 (constants.%HoldsType.a83)] +// CHECK:STDOUT: %pattern_type.loc8_28: type = pattern_type %HoldsType.loc8_41.1 [symbolic = %pattern_type.loc8_28 (constants.%pattern_type.b2f)] // CHECK:STDOUT: %tuple.elem0.loc8_55.1: type = tuple_access %T.loc8_7.1, element0 [symbolic = %tuple.elem0.loc8_55.1 (constants.%tuple.elem0)] // CHECK:STDOUT: %pattern_type.loc8_52: type = pattern_type %tuple.elem0.loc8_55.1 [symbolic = %pattern_type.loc8_52 (constants.%pattern_type.e66)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc8_28: = require_complete_type %HoldsType.loc8_41.1 [symbolic = %require_complete.loc8_28 (constants.%require_complete.b66)] +// CHECK:STDOUT: %require_complete.loc8_28: = require_complete_type %HoldsType.loc8_41.1 [symbolic = %require_complete.loc8_28 (constants.%require_complete.9de)] // CHECK:STDOUT: %require_complete.loc8_52: = require_complete_type %tuple.elem0.loc8_55.1 [symbolic = %require_complete.loc8_52 (constants.%require_complete.e7a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc8_41.1 (%HoldsType.c9c), %a.param: @F.%tuple.elem0.loc8_55.1 (%tuple.elem0)) { +// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc8_41.1 (%HoldsType.a83), %a.param: @F.%tuple.elem0.loc8_55.1 (%tuple.elem0)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -250,25 +250,25 @@ fn G() { // CHECK:STDOUT: %.loc13_6.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %HoldsType.ref: %HoldsType.type = name_ref HoldsType, file.%HoldsType.decl [concrete = constants.%HoldsType.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc13_25: %tuple.type = tuple_literal (%C.ref) [concrete = constants.%tuple.983] -// CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%C.ref) [concrete = constants.%tuple.983] -// CHECK:STDOUT: %.loc13_26: %tuple.type = converted %.loc13_25, %tuple [concrete = constants.%tuple.983] -// CHECK:STDOUT: %HoldsType: type = class_type @HoldsType, @HoldsType(constants.%tuple.983) [concrete = constants.%HoldsType.0e6] -// CHECK:STDOUT: %.loc13_6.2: ref %HoldsType.0e6 = temporary_storage -// CHECK:STDOUT: %.loc13_6.3: init %HoldsType.0e6 to %.loc13_6.2 = class_init () [concrete = constants.%HoldsType.val] -// CHECK:STDOUT: %.loc13_8.1: init %HoldsType.0e6 = converted %.loc13_6.1, %.loc13_6.3 [concrete = constants.%HoldsType.val] +// CHECK:STDOUT: %.loc13_25: %tuple.type = tuple_literal (%C.ref) [concrete = constants.%tuple.e45] +// CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%C.ref) [concrete = constants.%tuple.e45] +// CHECK:STDOUT: %.loc13_26: %tuple.type = converted %.loc13_25, %tuple [concrete = constants.%tuple.e45] +// CHECK:STDOUT: %HoldsType: type = class_type @HoldsType, @HoldsType(constants.%tuple.e45) [concrete = constants.%HoldsType.30f] +// CHECK:STDOUT: %.loc13_6.2: ref %HoldsType.30f = temporary_storage +// CHECK:STDOUT: %.loc13_6.3: init %HoldsType.30f to %.loc13_6.2 = class_init () [concrete = constants.%HoldsType.val] +// CHECK:STDOUT: %.loc13_8.1: init %HoldsType.30f = converted %.loc13_6.1, %.loc13_6.3 [concrete = constants.%HoldsType.val] // CHECK:STDOUT: %.loc13_30.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%tuple.983) [concrete = constants.%F.specific_fn] -// CHECK:STDOUT: %.loc13_8.2: ref %HoldsType.0e6 = temporary %.loc13_6.2, %.loc13_8.1 [concrete = constants.%.6ea] -// CHECK:STDOUT: %.loc13_8.3: %HoldsType.0e6 = acquire_value %.loc13_8.2 [concrete = constants.%HoldsType.val] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%tuple.e45) [concrete = constants.%F.specific_fn] +// CHECK:STDOUT: %.loc13_8.2: ref %HoldsType.30f = temporary %.loc13_6.2, %.loc13_8.1 [concrete = constants.%.eb0] +// CHECK:STDOUT: %.loc13_8.3: %HoldsType.30f = acquire_value %.loc13_8.2 [concrete = constants.%HoldsType.val] // CHECK:STDOUT: %.loc13_30.2: ref %C = temporary_storage // CHECK:STDOUT: %.loc13_30.3: init %C to %.loc13_30.2 = class_init () [concrete = constants.%C.val] // CHECK:STDOUT: %.loc13_30.4: init %C = converted %.loc13_30.1, %.loc13_30.3 [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc13_30.5: ref %C = temporary %.loc13_30.2, %.loc13_30.4 [concrete = constants.%.7a6] +// 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.219(constants.%.7a6) -// CHECK:STDOUT: %Destroy.Op.call.loc13_8: init %empty_tuple.type = call constants.%Destroy.Op.bound.e3d(constants.%.6ea) +// 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: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -279,7 +279,7 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_8(%self.param: ref %HoldsType.0e6) { +// CHECK:STDOUT: fn @Destroy.Op.loc13_8(%self.param: ref %HoldsType.30f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -292,24 +292,24 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc8_7.1 => constants.%T -// CHECK:STDOUT: %HoldsType.loc8_41.1 => constants.%HoldsType.c9c -// CHECK:STDOUT: %pattern_type.loc8_28 => constants.%pattern_type.ad8 +// CHECK:STDOUT: %HoldsType.loc8_41.1 => constants.%HoldsType.a83 +// CHECK:STDOUT: %pattern_type.loc8_28 => constants.%pattern_type.b2f // CHECK:STDOUT: %tuple.elem0.loc8_55.1 => constants.%tuple.elem0 // CHECK:STDOUT: %pattern_type.loc8_52 => constants.%pattern_type.e66 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HoldsType(constants.%tuple.983) { -// CHECK:STDOUT: %T.loc4_18.1 => constants.%tuple.983 +// CHECK:STDOUT: specific @HoldsType(constants.%tuple.e45) { +// CHECK:STDOUT: %T.loc4_18.1 => constants.%tuple.e45 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%tuple.983) { -// CHECK:STDOUT: %T.loc8_7.1 => constants.%tuple.983 -// CHECK:STDOUT: %HoldsType.loc8_41.1 => constants.%HoldsType.0e6 -// CHECK:STDOUT: %pattern_type.loc8_28 => constants.%pattern_type.ca7 +// CHECK:STDOUT: specific @F(constants.%tuple.e45) { +// CHECK:STDOUT: %T.loc8_7.1 => constants.%tuple.e45 +// CHECK:STDOUT: %HoldsType.loc8_41.1 => constants.%HoldsType.30f +// CHECK:STDOUT: %pattern_type.loc8_28 => constants.%pattern_type.ff4 // CHECK:STDOUT: %tuple.elem0.loc8_55.1 => constants.%C -// CHECK:STDOUT: %pattern_type.loc8_52 => constants.%pattern_type.0d5 +// CHECK:STDOUT: %pattern_type.loc8_52 => constants.%pattern_type.98b // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8_28 => constants.%complete_type @@ -327,36 +327,36 @@ fn G() { // CHECK:STDOUT: %HoldsType.type: type = generic_class_type @HoldsType [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %HoldsType.generic: %HoldsType.type = struct_value () [concrete] -// CHECK:STDOUT: %HoldsType.df1: type = class_type @HoldsType, @HoldsType(%T) [symbolic] +// CHECK:STDOUT: %HoldsType.07e: type = class_type @HoldsType, @HoldsType(%T) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.287: type = pattern_type %HoldsType.df1 [symbolic] +// CHECK:STDOUT: %pattern_type.ce7: type = pattern_type %HoldsType.07e [symbolic] // CHECK:STDOUT: %.424: type = struct_access %T, element0 [symbolic] // CHECK:STDOUT: %pattern_type.92c: type = pattern_type %.424 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.4ce: = require_complete_type %HoldsType.df1 [symbolic] +// CHECK:STDOUT: %require_complete.d40: = require_complete_type %HoldsType.07e [symbolic] // CHECK:STDOUT: %require_complete.ba0: = require_complete_type %.424 [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.t = struct_value (%C) [concrete] -// CHECK:STDOUT: %HoldsType.0fc: type = class_type @HoldsType, @HoldsType(%struct) [concrete] -// CHECK:STDOUT: %HoldsType.val: %HoldsType.0fc = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.9e2: type = pattern_type %HoldsType.0fc [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %HoldsType.53c: type = class_type @HoldsType, @HoldsType(%struct) [concrete] +// CHECK:STDOUT: %HoldsType.val: %HoldsType.53c = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.1fc: type = pattern_type %HoldsType.53c [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%struct) [concrete] -// CHECK:STDOUT: %.085: ref %HoldsType.0fc = temporary invalid, %HoldsType.val [concrete] +// CHECK:STDOUT: %.344: ref %HoldsType.53c = temporary invalid, %HoldsType.val [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %.7a6: ref %C = temporary invalid, %C.val [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.790b3b.2: type = fn_type @Destroy.Op.loc13_33.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.219: = bound_method %.7a6, %Destroy.Op.2dd605.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc13_8 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.496: = bound_method %.085, %Destroy.Op.2dd605.3 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -389,8 +389,8 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.7f2 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc8_30 (%pattern_type.287) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc8_30 (%pattern_type.287) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc8_30 (%pattern_type.ce7) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc8_30 (%pattern_type.ce7) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc8_54 (%pattern_type.92c) = value_param_pattern [concrete] // CHECK:STDOUT: %a.patt: @F.%pattern_type.loc8_54 (%pattern_type.92c) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { @@ -400,13 +400,13 @@ fn G() { // CHECK:STDOUT: %struct_type.t: type = struct_type {.t: type} [concrete = constants.%struct_type.t] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc8_7.2: %struct_type.t = symbolic_binding T, 0 [symbolic = %T.loc8_7.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @F.%HoldsType.loc8_43.1 (%HoldsType.df1) = value_param call_param0 -// CHECK:STDOUT: %.loc8_43: type = splice_block %HoldsType.loc8_43.2 [symbolic = %HoldsType.loc8_43.1 (constants.%HoldsType.df1)] { +// CHECK:STDOUT: %x.param: @F.%HoldsType.loc8_43.1 (%HoldsType.07e) = value_param call_param0 +// CHECK:STDOUT: %.loc8_43: type = splice_block %HoldsType.loc8_43.2 [symbolic = %HoldsType.loc8_43.1 (constants.%HoldsType.07e)] { // CHECK:STDOUT: %HoldsType.ref: %HoldsType.type = name_ref HoldsType, file.%HoldsType.decl [concrete = constants.%HoldsType.generic] // CHECK:STDOUT: %T.ref.loc8_42: %struct_type.t = name_ref T, %T.loc8_7.2 [symbolic = %T.loc8_7.1 (constants.%T)] -// CHECK:STDOUT: %HoldsType.loc8_43.2: type = class_type @HoldsType, @HoldsType(constants.%T) [symbolic = %HoldsType.loc8_43.1 (constants.%HoldsType.df1)] +// CHECK:STDOUT: %HoldsType.loc8_43.2: type = class_type @HoldsType, @HoldsType(constants.%T) [symbolic = %HoldsType.loc8_43.1 (constants.%HoldsType.07e)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%HoldsType.loc8_43.1 (%HoldsType.df1) = value_binding x, %x.param +// CHECK:STDOUT: %x: @F.%HoldsType.loc8_43.1 (%HoldsType.07e) = value_binding x, %x.param // CHECK:STDOUT: %a.param: @F.%.loc8_57.1 (%.424) = value_param call_param1 // CHECK:STDOUT: %.loc8_57.2: type = splice_block %.loc8_57.3 [symbolic = %.loc8_57.1 (constants.%.424)] { // CHECK:STDOUT: %T.ref.loc8_56: %struct_type.t = name_ref T, %T.loc8_7.2 [symbolic = %T.loc8_7.1 (constants.%T)] @@ -428,7 +428,7 @@ fn G() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%HoldsType.df1 +// CHECK:STDOUT: .Self = constants.%HoldsType.07e // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -442,16 +442,16 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc8_7.2: %struct_type.t) { // CHECK:STDOUT: %T.loc8_7.1: %struct_type.t = symbolic_binding T, 0 [symbolic = %T.loc8_7.1 (constants.%T)] -// CHECK:STDOUT: %HoldsType.loc8_43.1: type = class_type @HoldsType, @HoldsType(%T.loc8_7.1) [symbolic = %HoldsType.loc8_43.1 (constants.%HoldsType.df1)] -// CHECK:STDOUT: %pattern_type.loc8_30: type = pattern_type %HoldsType.loc8_43.1 [symbolic = %pattern_type.loc8_30 (constants.%pattern_type.287)] +// CHECK:STDOUT: %HoldsType.loc8_43.1: type = class_type @HoldsType, @HoldsType(%T.loc8_7.1) [symbolic = %HoldsType.loc8_43.1 (constants.%HoldsType.07e)] +// CHECK:STDOUT: %pattern_type.loc8_30: type = pattern_type %HoldsType.loc8_43.1 [symbolic = %pattern_type.loc8_30 (constants.%pattern_type.ce7)] // CHECK:STDOUT: %.loc8_57.1: type = struct_access %T.loc8_7.1, element0 [symbolic = %.loc8_57.1 (constants.%.424)] // CHECK:STDOUT: %pattern_type.loc8_54: type = pattern_type %.loc8_57.1 [symbolic = %pattern_type.loc8_54 (constants.%pattern_type.92c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc8_30: = require_complete_type %HoldsType.loc8_43.1 [symbolic = %require_complete.loc8_30 (constants.%require_complete.4ce)] +// CHECK:STDOUT: %require_complete.loc8_30: = require_complete_type %HoldsType.loc8_43.1 [symbolic = %require_complete.loc8_30 (constants.%require_complete.d40)] // CHECK:STDOUT: %require_complete.loc8_54: = require_complete_type %.loc8_57.1 [symbolic = %require_complete.loc8_54 (constants.%require_complete.ba0)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc8_43.1 (%HoldsType.df1), %a.param: @F.%.loc8_57.1 (%.424)) { +// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc8_43.1 (%HoldsType.07e), %a.param: @F.%.loc8_57.1 (%.424)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -466,22 +466,22 @@ fn G() { // CHECK:STDOUT: %.loc13_28: %struct_type.t = struct_literal (%C.ref) [concrete = constants.%struct] // CHECK:STDOUT: %struct: %struct_type.t = struct_value (%C.ref) [concrete = constants.%struct] // CHECK:STDOUT: %.loc13_29: %struct_type.t = converted %.loc13_28, %struct [concrete = constants.%struct] -// CHECK:STDOUT: %HoldsType: type = class_type @HoldsType, @HoldsType(constants.%struct) [concrete = constants.%HoldsType.0fc] -// CHECK:STDOUT: %.loc13_6.2: ref %HoldsType.0fc = temporary_storage -// CHECK:STDOUT: %.loc13_6.3: init %HoldsType.0fc to %.loc13_6.2 = class_init () [concrete = constants.%HoldsType.val] -// CHECK:STDOUT: %.loc13_8.1: init %HoldsType.0fc = converted %.loc13_6.1, %.loc13_6.3 [concrete = constants.%HoldsType.val] +// CHECK:STDOUT: %HoldsType: type = class_type @HoldsType, @HoldsType(constants.%struct) [concrete = constants.%HoldsType.53c] +// CHECK:STDOUT: %.loc13_6.2: ref %HoldsType.53c = temporary_storage +// CHECK:STDOUT: %.loc13_6.3: init %HoldsType.53c to %.loc13_6.2 = class_init () [concrete = constants.%HoldsType.val] +// CHECK:STDOUT: %.loc13_8.1: init %HoldsType.53c = converted %.loc13_6.1, %.loc13_6.3 [concrete = constants.%HoldsType.val] // CHECK:STDOUT: %.loc13_33.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%struct) [concrete = constants.%F.specific_fn] -// CHECK:STDOUT: %.loc13_8.2: ref %HoldsType.0fc = temporary %.loc13_6.2, %.loc13_8.1 [concrete = constants.%.085] -// CHECK:STDOUT: %.loc13_8.3: %HoldsType.0fc = acquire_value %.loc13_8.2 [concrete = constants.%HoldsType.val] +// CHECK:STDOUT: %.loc13_8.2: ref %HoldsType.53c = temporary %.loc13_6.2, %.loc13_8.1 [concrete = constants.%.344] +// CHECK:STDOUT: %.loc13_8.3: %HoldsType.53c = acquire_value %.loc13_8.2 [concrete = constants.%HoldsType.val] // CHECK:STDOUT: %.loc13_33.2: ref %C = temporary_storage // CHECK:STDOUT: %.loc13_33.3: init %C to %.loc13_33.2 = class_init () [concrete = constants.%C.val] // CHECK:STDOUT: %.loc13_33.4: init %C = converted %.loc13_33.1, %.loc13_33.3 [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc13_33.5: ref %C = temporary %.loc13_33.2, %.loc13_33.4 [concrete = constants.%.7a6] +// 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.219(constants.%.7a6) -// CHECK:STDOUT: %Destroy.Op.call.loc13_8: init %empty_tuple.type = call constants.%Destroy.Op.bound.496(constants.%.085) +// 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: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -492,7 +492,7 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_8(%self.param: ref %HoldsType.0fc) { +// CHECK:STDOUT: fn @Destroy.Op.loc13_8(%self.param: ref %HoldsType.53c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -505,8 +505,8 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc8_7.1 => constants.%T -// CHECK:STDOUT: %HoldsType.loc8_43.1 => constants.%HoldsType.df1 -// CHECK:STDOUT: %pattern_type.loc8_30 => constants.%pattern_type.287 +// CHECK:STDOUT: %HoldsType.loc8_43.1 => constants.%HoldsType.07e +// CHECK:STDOUT: %pattern_type.loc8_30 => constants.%pattern_type.ce7 // CHECK:STDOUT: %.loc8_57.1 => constants.%.424 // CHECK:STDOUT: %pattern_type.loc8_54 => constants.%pattern_type.92c // CHECK:STDOUT: } @@ -519,10 +519,10 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%struct) { // CHECK:STDOUT: %T.loc8_7.1 => constants.%struct -// CHECK:STDOUT: %HoldsType.loc8_43.1 => constants.%HoldsType.0fc -// CHECK:STDOUT: %pattern_type.loc8_30 => constants.%pattern_type.9e2 +// CHECK:STDOUT: %HoldsType.loc8_43.1 => constants.%HoldsType.53c +// CHECK:STDOUT: %pattern_type.loc8_30 => constants.%pattern_type.1fc // CHECK:STDOUT: %.loc8_57.1 => constants.%C -// CHECK:STDOUT: %pattern_type.loc8_54 => constants.%pattern_type.0d5 +// CHECK:STDOUT: %pattern_type.loc8_54 => constants.%pattern_type.98b // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8_30 => constants.%complete_type @@ -538,69 +538,69 @@ fn G() { // CHECK:STDOUT: %complete_type.509: = complete_type_witness %struct_type.t [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.415: type = pattern_type %Class [concrete] -// CHECK:STDOUT: %T.60d: %Class = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete] +// CHECK:STDOUT: %T.f25: %Class = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %HoldsType.type: type = generic_class_type @HoldsType [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %HoldsType.generic: %HoldsType.type = struct_value () [concrete] -// CHECK:STDOUT: %HoldsType.751b88.1: type = class_type @HoldsType, @HoldsType(%T.60d) [symbolic] +// CHECK:STDOUT: %HoldsType.3500da.1: type = class_type @HoldsType, @HoldsType(%T.f25) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.635ee0.1: type = pattern_type %HoldsType.751b88.1 [symbolic] -// CHECK:STDOUT: %.46df5a.1: ref type = class_element_access %T.60d, element0 [symbolic] +// CHECK:STDOUT: %pattern_type.e53268.1: type = pattern_type %HoldsType.3500da.1 [symbolic] +// CHECK:STDOUT: %.9ddfa9.1: ref type = class_element_access %T.f25, element0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.03e783.1: = require_complete_type %HoldsType.751b88.1 [symbolic] +// CHECK:STDOUT: %require_complete.6f4d7d.1: = require_complete_type %HoldsType.3500da.1 [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %c: %Class = symbolic_binding c, 0 [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %HoldsType.751b88.2: type = class_type @HoldsType, @HoldsType(%c) [symbolic] -// CHECK:STDOUT: %require_complete.03e783.2: = require_complete_type %HoldsType.751b88.2 [symbolic] -// CHECK:STDOUT: %HoldsType.val.3c6: %HoldsType.751b88.2 = struct_value () [symbolic] -// CHECK:STDOUT: %pattern_type.635ee0.2: type = pattern_type %HoldsType.751b88.2 [symbolic] -// CHECK:STDOUT: %.46df5a.2: ref type = class_element_access %c, element0 [symbolic] -// CHECK:STDOUT: %F.specific_fn.8d1: = specific_function %F, @F(%c) [symbolic] -// CHECK:STDOUT: %.0e9: ref %HoldsType.751b88.2 = temporary invalid, %HoldsType.val.3c6 [symbolic] +// CHECK:STDOUT: %HoldsType.3500da.2: type = class_type @HoldsType, @HoldsType(%c) [symbolic] +// CHECK:STDOUT: %require_complete.6f4d7d.2: = require_complete_type %HoldsType.3500da.2 [symbolic] +// CHECK:STDOUT: %HoldsType.val.7f1: %HoldsType.3500da.2 = struct_value () [symbolic] +// CHECK:STDOUT: %pattern_type.e53268.2: type = pattern_type %HoldsType.3500da.2 [symbolic] +// CHECK:STDOUT: %.9ddfa9.2: ref type = class_element_access %c, element0 [symbolic] +// CHECK:STDOUT: %F.specific_fn.7ee: = specific_function %F, @F(%c) [symbolic] +// CHECK:STDOUT: %.e1a: ref %HoldsType.3500da.2 = temporary invalid, %HoldsType.val.7f1 [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %HoldsType.751b88.2, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.be6: %Destroy.type = facet_value %HoldsType.751b88.2, (%Destroy.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.8d9: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.be6) [symbolic] -// CHECK:STDOUT: %.a14: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.8d9, %Destroy.facet.be6 [symbolic] -// CHECK:STDOUT: %impl.elem0.107: %.a14 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %bound_method.1f5: = bound_method %.0e9, %impl.elem0.107 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.8bd: = specific_impl_function %impl.elem0.107, @Destroy.WithSelf.Op(%Destroy.facet.be6) [symbolic] -// CHECK:STDOUT: %bound_method.389: = bound_method %.0e9, %specific_impl_fn.8bd [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %HoldsType.3500da.2, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.833: %Destroy.type = facet_value %HoldsType.3500da.2, (%Destroy.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.646: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.833) [symbolic] +// CHECK:STDOUT: %.ff0: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.646, %Destroy.facet.833 [symbolic] +// CHECK:STDOUT: %impl.elem0.c88: %.ff0 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %bound_method.c32: = bound_method %.e1a, %impl.elem0.c88 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.b17: = specific_impl_function %impl.elem0.c88, @Destroy.WithSelf.Op(%Destroy.facet.833) [symbolic] +// CHECK:STDOUT: %bound_method.8d3: = bound_method %.e1a, %specific_impl_fn.b17 [symbolic] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.t = struct_value (%C) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.f49: = impl_witness imports.%Copy.impl_witness_table.fcf [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.f49) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cd0: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.31b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cd0, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.638: = impl_witness imports.%Copy.impl_witness_table.4d6 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.638) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8b3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.524: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8b3, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %C, %type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Class.val: %Class = struct_value (%C) [concrete] -// CHECK:STDOUT: %.16e: ref %Class = temporary invalid, %Class.val [concrete] +// 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.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc30_13.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.5a6: = bound_method %.16e, %Destroy.Op.2dd605.4 [concrete] -// CHECK:STDOUT: %HoldsType.bfe: type = class_type @HoldsType, @HoldsType(%Class.val) [concrete] -// CHECK:STDOUT: %HoldsType.val.52a: %HoldsType.bfe = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.95c: type = pattern_type %HoldsType.bfe [concrete] -// CHECK:STDOUT: %F.specific_fn.229: = specific_function %F, @F(%Class.val) [concrete] -// CHECK:STDOUT: %.ccb: ref %HoldsType.bfe = temporary invalid, %HoldsType.val.52a [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.5: type = fn_type @Destroy.Op.loc26_8.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.5: %Destroy.Op.type.790b3b.5 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.5: = custom_witness (%Destroy.Op.2dd605.5), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.caf: %Destroy.type = facet_value %HoldsType.bfe, (%custom_witness.e20f1f.5) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.445: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.caf) [concrete] -// CHECK:STDOUT: %.7ae: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.445, %Destroy.facet.caf [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.448: = bound_method %.ccb, %Destroy.Op.2dd605.5 [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc30_13.3 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.bound.eb8: = bound_method %.0de, %Destroy.Op.1a2547.4 [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: %pattern_type.b17: type = pattern_type %HoldsType.af5 [concrete] +// CHECK:STDOUT: %F.specific_fn.463: = specific_function %F, @F(%Class.val) [concrete] +// CHECK:STDOUT: %.3f5: ref %HoldsType.af5 = temporary invalid, %HoldsType.val.8bc [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.5: type = fn_type @Destroy.Op.loc26_8.2 [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.b45: %Destroy.type = facet_value %HoldsType.af5, (%custom_witness.df9cc1.5) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.06d: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.b45) [concrete] +// CHECK:STDOUT: %.db7: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.06d, %Destroy.facet.b45 [concrete] +// CHECK:STDOUT: %Destroy.Op.bound.d49: = bound_method %.3f5, %Destroy.Op.1a2547.5 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -612,8 +612,8 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.fcf = impl_witness_table (%Core.import_ref.f63), @type.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.4d6 = impl_witness_table (%Core.import_ref.9c3), @type.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -629,18 +629,18 @@ fn G() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {} // CHECK:STDOUT: %HoldsType.decl: %HoldsType.type = class_decl @HoldsType [concrete = constants.%HoldsType.generic] { -// CHECK:STDOUT: %T.patt: %pattern_type.415 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.f15 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8: type = splice_block %Class.ref [concrete = constants.%Class] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc8_18.2: %Class = symbolic_binding T, 0 [symbolic = %T.loc8_18.1 (constants.%T.60d)] +// CHECK:STDOUT: %T.loc8_18.2: %Class = symbolic_binding T, 0 [symbolic = %T.loc8_18.1 (constants.%T.f25)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %T.patt: %pattern_type.415 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.635ee0.1) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.635ee0.1) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.f15 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.e53268.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.e53268.1) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: %a.param_patt: = value_param_pattern [concrete] // CHECK:STDOUT: %a.patt: = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { @@ -648,26 +648,26 @@ fn G() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc21_7.2: %Class = symbolic_binding T, 0 [symbolic = %T.loc21_7.1 (constants.%T.60d)] -// CHECK:STDOUT: %x.param: @F.%HoldsType.loc21_38.1 (%HoldsType.751b88.1) = value_param call_param0 -// CHECK:STDOUT: %.loc21_38: type = splice_block %HoldsType.loc21_38.2 [symbolic = %HoldsType.loc21_38.1 (constants.%HoldsType.751b88.1)] { +// CHECK:STDOUT: %T.loc21_7.2: %Class = symbolic_binding T, 0 [symbolic = %T.loc21_7.1 (constants.%T.f25)] +// CHECK:STDOUT: %x.param: @F.%HoldsType.loc21_38.1 (%HoldsType.3500da.1) = value_param call_param0 +// CHECK:STDOUT: %.loc21_38: type = splice_block %HoldsType.loc21_38.2 [symbolic = %HoldsType.loc21_38.1 (constants.%HoldsType.3500da.1)] { // CHECK:STDOUT: %HoldsType.ref: %HoldsType.type = name_ref HoldsType, file.%HoldsType.decl [concrete = constants.%HoldsType.generic] -// CHECK:STDOUT: %T.ref.loc21_37: %Class = name_ref T, %T.loc21_7.2 [symbolic = %T.loc21_7.1 (constants.%T.60d)] -// CHECK:STDOUT: %HoldsType.loc21_38.2: type = class_type @HoldsType, @HoldsType(constants.%T.60d) [symbolic = %HoldsType.loc21_38.1 (constants.%HoldsType.751b88.1)] +// CHECK:STDOUT: %T.ref.loc21_37: %Class = name_ref T, %T.loc21_7.2 [symbolic = %T.loc21_7.1 (constants.%T.f25)] +// CHECK:STDOUT: %HoldsType.loc21_38.2: type = class_type @HoldsType, @HoldsType(constants.%T.f25) [symbolic = %HoldsType.loc21_38.1 (constants.%HoldsType.3500da.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%HoldsType.loc21_38.1 (%HoldsType.751b88.1) = value_binding x, %x.param +// CHECK:STDOUT: %x: @F.%HoldsType.loc21_38.1 (%HoldsType.3500da.1) = value_binding x, %x.param // CHECK:STDOUT: %a.param: = value_param call_param1 // CHECK:STDOUT: %.1: = splice_block [concrete = ] { -// CHECK:STDOUT: %T.ref.loc21_51: %Class = name_ref T, %T.loc21_7.2 [symbolic = %T.loc21_7.1 (constants.%T.60d)] +// CHECK:STDOUT: %T.ref.loc21_51: %Class = name_ref T, %T.loc21_7.2 [symbolic = %T.loc21_7.1 (constants.%T.f25)] // CHECK:STDOUT: %t.ref: %Class.elem = name_ref t, @Class.%.loc5 [concrete = @Class.%.loc5] -// CHECK:STDOUT: %.loc21_52.2: ref type = class_element_access %T.ref.loc21_51, element0 [symbolic = %.loc21_52.1 (constants.%.46df5a.1)] +// CHECK:STDOUT: %.loc21_52.2: ref type = class_element_access %T.ref.loc21_51, element0 [symbolic = %.loc21_52.1 (constants.%.9ddfa9.1)] // CHECK:STDOUT: %.loc21_52.3: type = acquire_value %.loc21_52.2 // CHECK:STDOUT: } // CHECK:STDOUT: %a: = value_binding a, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %c.patt: %pattern_type.415 = symbolic_binding_pattern c, 0 [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.f15 = symbolic_binding_pattern c, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc25: type = splice_block %Class.ref [concrete = constants.%Class] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -689,7 +689,7 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @HoldsType(%T.loc8_18.2: %Class) { -// CHECK:STDOUT: %T.loc8_18.1: %Class = symbolic_binding T, 0 [symbolic = %T.loc8_18.1 (constants.%T.60d)] +// CHECK:STDOUT: %T.loc8_18.1: %Class = symbolic_binding T, 0 [symbolic = %T.loc8_18.1 (constants.%T.f25)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -698,7 +698,7 @@ fn G() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%HoldsType.751b88.1 +// CHECK:STDOUT: .Self = constants.%HoldsType.3500da.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -711,15 +711,15 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc21_7.2: %Class) { -// CHECK:STDOUT: %T.loc21_7.1: %Class = symbolic_binding T, 0 [symbolic = %T.loc21_7.1 (constants.%T.60d)] -// CHECK:STDOUT: %HoldsType.loc21_38.1: type = class_type @HoldsType, @HoldsType(%T.loc21_7.1) [symbolic = %HoldsType.loc21_38.1 (constants.%HoldsType.751b88.1)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %HoldsType.loc21_38.1 [symbolic = %pattern_type (constants.%pattern_type.635ee0.1)] -// CHECK:STDOUT: %.loc21_52.1: ref type = class_element_access %T.loc21_7.1, element0 [symbolic = %.loc21_52.1 (constants.%.46df5a.1)] +// CHECK:STDOUT: %T.loc21_7.1: %Class = symbolic_binding T, 0 [symbolic = %T.loc21_7.1 (constants.%T.f25)] +// CHECK:STDOUT: %HoldsType.loc21_38.1: type = class_type @HoldsType, @HoldsType(%T.loc21_7.1) [symbolic = %HoldsType.loc21_38.1 (constants.%HoldsType.3500da.1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %HoldsType.loc21_38.1 [symbolic = %pattern_type (constants.%pattern_type.e53268.1)] +// CHECK:STDOUT: %.loc21_52.1: ref type = class_element_access %T.loc21_7.1, element0 [symbolic = %.loc21_52.1 (constants.%.9ddfa9.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %HoldsType.loc21_38.1 [symbolic = %require_complete (constants.%require_complete.03e783.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %HoldsType.loc21_38.1 [symbolic = %require_complete (constants.%require_complete.6f4d7d.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc21_38.1 (%HoldsType.751b88.1), %a.param: ) { +// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc21_38.1 (%HoldsType.3500da.1), %a.param: ) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -729,19 +729,19 @@ fn G() { // CHECK:STDOUT: %c.loc25_7.1: %Class = symbolic_binding c, 0 [symbolic = %c.loc25_7.1 (constants.%c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HoldsType.loc26_22.2: type = class_type @HoldsType, @HoldsType(%c.loc25_7.1) [symbolic = %HoldsType.loc26_22.2 (constants.%HoldsType.751b88.2)] -// CHECK:STDOUT: %require_complete: = require_complete_type %HoldsType.loc26_22.2 [symbolic = %require_complete (constants.%require_complete.03e783.2)] -// CHECK:STDOUT: %HoldsType.val: @G.%HoldsType.loc26_22.2 (%HoldsType.751b88.2) = struct_value () [symbolic = %HoldsType.val (constants.%HoldsType.val.3c6)] -// CHECK:STDOUT: %F.specific_fn.loc26_3.2: = specific_function constants.%F, @F(%c.loc25_7.1) [symbolic = %F.specific_fn.loc26_3.2 (constants.%F.specific_fn.8d1)] -// CHECK:STDOUT: %.loc26_8.4: ref @G.%HoldsType.loc26_22.2 (%HoldsType.751b88.2) = temporary invalid, %HoldsType.val [symbolic = %.loc26_8.4 (constants.%.0e9)] +// CHECK:STDOUT: %HoldsType.loc26_22.2: type = class_type @HoldsType, @HoldsType(%c.loc25_7.1) [symbolic = %HoldsType.loc26_22.2 (constants.%HoldsType.3500da.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %HoldsType.loc26_22.2 [symbolic = %require_complete (constants.%require_complete.6f4d7d.2)] +// CHECK:STDOUT: %HoldsType.val: @G.%HoldsType.loc26_22.2 (%HoldsType.3500da.2) = struct_value () [symbolic = %HoldsType.val (constants.%HoldsType.val.7f1)] +// CHECK:STDOUT: %F.specific_fn.loc26_3.2: = specific_function constants.%F, @F(%c.loc25_7.1) [symbolic = %F.specific_fn.loc26_3.2 (constants.%F.specific_fn.7ee)] +// CHECK:STDOUT: %.loc26_8.4: ref @G.%HoldsType.loc26_22.2 (%HoldsType.3500da.2) = temporary invalid, %HoldsType.val [symbolic = %.loc26_8.4 (constants.%.e1a)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %HoldsType.loc26_22.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %HoldsType.loc26_22.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.be6)] -// 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.8d9)] -// CHECK:STDOUT: %.loc26_8.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc26_8.5 (constants.%.a14)] -// CHECK:STDOUT: %impl.elem0.loc26_8.2: @G.%.loc26_8.5 (%.a14) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_8.2 (constants.%impl.elem0.107)] -// CHECK:STDOUT: %bound_method.loc26_8.3: = bound_method %.loc26_8.4, %impl.elem0.loc26_8.2 [symbolic = %bound_method.loc26_8.3 (constants.%bound_method.1f5)] -// CHECK:STDOUT: %specific_impl_fn.loc26_8.2: = specific_impl_function %impl.elem0.loc26_8.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc26_8.2 (constants.%specific_impl_fn.8bd)] -// CHECK:STDOUT: %bound_method.loc26_8.4: = bound_method %.loc26_8.4, %specific_impl_fn.loc26_8.2 [symbolic = %bound_method.loc26_8.4 (constants.%bound_method.389)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %HoldsType.loc26_22.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.833)] +// 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.646)] +// CHECK:STDOUT: %.loc26_8.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc26_8.5 (constants.%.ff0)] +// CHECK:STDOUT: %impl.elem0.loc26_8.2: @G.%.loc26_8.5 (%.ff0) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_8.2 (constants.%impl.elem0.c88)] +// CHECK:STDOUT: %bound_method.loc26_8.3: = bound_method %.loc26_8.4, %impl.elem0.loc26_8.2 [symbolic = %bound_method.loc26_8.3 (constants.%bound_method.c32)] +// CHECK:STDOUT: %specific_impl_fn.loc26_8.2: = specific_impl_function %impl.elem0.loc26_8.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc26_8.2 (constants.%specific_impl_fn.b17)] +// CHECK:STDOUT: %bound_method.loc26_8.4: = bound_method %.loc26_8.4, %specific_impl_fn.loc26_8.2 [symbolic = %bound_method.loc26_8.4 (constants.%bound_method.8d3)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -749,19 +749,19 @@ fn G() { // CHECK:STDOUT: %.loc26_6.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %HoldsType.ref: %HoldsType.type = name_ref HoldsType, file.%HoldsType.decl [concrete = constants.%HoldsType.generic] // CHECK:STDOUT: %c.ref: %Class = name_ref c, %c.loc25_7.2 [symbolic = %c.loc25_7.1 (constants.%c)] -// CHECK:STDOUT: %HoldsType.loc26_22.1: type = class_type @HoldsType, @HoldsType(constants.%c) [symbolic = %HoldsType.loc26_22.2 (constants.%HoldsType.751b88.2)] -// CHECK:STDOUT: %.loc26_6.2: ref @G.%HoldsType.loc26_22.2 (%HoldsType.751b88.2) = temporary_storage -// CHECK:STDOUT: %.loc26_6.3: init @G.%HoldsType.loc26_22.2 (%HoldsType.751b88.2) to %.loc26_6.2 = class_init () [symbolic = %HoldsType.val (constants.%HoldsType.val.3c6)] -// CHECK:STDOUT: %.loc26_8.1: init @G.%HoldsType.loc26_22.2 (%HoldsType.751b88.2) = converted %.loc26_6.1, %.loc26_6.3 [symbolic = %HoldsType.val (constants.%HoldsType.val.3c6)] +// CHECK:STDOUT: %HoldsType.loc26_22.1: type = class_type @HoldsType, @HoldsType(constants.%c) [symbolic = %HoldsType.loc26_22.2 (constants.%HoldsType.3500da.2)] +// CHECK:STDOUT: %.loc26_6.2: ref @G.%HoldsType.loc26_22.2 (%HoldsType.3500da.2) = temporary_storage +// CHECK:STDOUT: %.loc26_6.3: init @G.%HoldsType.loc26_22.2 (%HoldsType.3500da.2) to %.loc26_6.2 = class_init () [symbolic = %HoldsType.val (constants.%HoldsType.val.7f1)] +// CHECK:STDOUT: %.loc26_8.1: init @G.%HoldsType.loc26_22.2 (%HoldsType.3500da.2) = converted %.loc26_6.1, %.loc26_6.3 [symbolic = %HoldsType.val (constants.%HoldsType.val.7f1)] // CHECK:STDOUT: %.loc26_26: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %F.specific_fn.loc26_3.1: = specific_function %F.ref, @F(constants.%c) [symbolic = %F.specific_fn.loc26_3.2 (constants.%F.specific_fn.8d1)] -// CHECK:STDOUT: %.loc26_8.2: ref @G.%HoldsType.loc26_22.2 (%HoldsType.751b88.2) = temporary %.loc26_6.2, %.loc26_8.1 [symbolic = %.loc26_8.4 (constants.%.0e9)] -// CHECK:STDOUT: %.loc26_8.3: @G.%HoldsType.loc26_22.2 (%HoldsType.751b88.2) = acquire_value %.loc26_8.2 [symbolic = %HoldsType.val (constants.%HoldsType.val.3c6)] +// CHECK:STDOUT: %F.specific_fn.loc26_3.1: = specific_function %F.ref, @F(constants.%c) [symbolic = %F.specific_fn.loc26_3.2 (constants.%F.specific_fn.7ee)] +// CHECK:STDOUT: %.loc26_8.2: ref @G.%HoldsType.loc26_22.2 (%HoldsType.3500da.2) = temporary %.loc26_6.2, %.loc26_8.1 [symbolic = %.loc26_8.4 (constants.%.e1a)] +// CHECK:STDOUT: %.loc26_8.3: @G.%HoldsType.loc26_22.2 (%HoldsType.3500da.2) = acquire_value %.loc26_8.2 [symbolic = %HoldsType.val (constants.%HoldsType.val.7f1)] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn.loc26_3.1(%.loc26_8.3, ) -// CHECK:STDOUT: %impl.elem0.loc26_8.1: @G.%.loc26_8.5 (%.a14) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_8.2 (constants.%impl.elem0.107)] -// CHECK:STDOUT: %bound_method.loc26_8.1: = bound_method %.loc26_8.2, %impl.elem0.loc26_8.1 [symbolic = %bound_method.loc26_8.3 (constants.%bound_method.1f5)] -// CHECK:STDOUT: %specific_impl_fn.loc26_8.1: = specific_impl_function %impl.elem0.loc26_8.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.be6) [symbolic = %specific_impl_fn.loc26_8.2 (constants.%specific_impl_fn.8bd)] -// CHECK:STDOUT: %bound_method.loc26_8.2: = bound_method %.loc26_8.2, %specific_impl_fn.loc26_8.1 [symbolic = %bound_method.loc26_8.4 (constants.%bound_method.389)] +// CHECK:STDOUT: %impl.elem0.loc26_8.1: @G.%.loc26_8.5 (%.ff0) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_8.2 (constants.%impl.elem0.c88)] +// CHECK:STDOUT: %bound_method.loc26_8.1: = bound_method %.loc26_8.2, %impl.elem0.loc26_8.1 [symbolic = %bound_method.loc26_8.3 (constants.%bound_method.c32)] +// CHECK:STDOUT: %specific_impl_fn.loc26_8.1: = specific_impl_function %impl.elem0.loc26_8.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.833) [symbolic = %specific_impl_fn.loc26_8.2 (constants.%specific_impl_fn.b17)] +// CHECK:STDOUT: %bound_method.loc26_8.2: = bound_method %.loc26_8.2, %specific_impl_fn.loc26_8.1 [symbolic = %bound_method.loc26_8.4 (constants.%bound_method.8d3)] // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc26_8.2(%.loc26_8.2) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -774,7 +774,7 @@ fn G() { // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc30_12.1: %struct_type.t = struct_literal (%C.ref) [concrete = constants.%struct] -// CHECK:STDOUT: %impl.elem0: %.31b = impl_witness_access constants.%Copy.impl_witness.f49, element0 [concrete = constants.%type.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.524 = impl_witness_access constants.%Copy.impl_witness.638, element0 [concrete = constants.%type.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %C.ref, %impl.elem0 [concrete = constants.%type.as.Copy.impl.Op.bound] // CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method(%C.ref) [concrete = constants.%C] // CHECK:STDOUT: %.loc30_12.2: ref %Class = temporary_storage @@ -782,11 +782,11 @@ fn G() { // CHECK:STDOUT: %.loc30_12.4: init type to %.loc30_12.3 = in_place_init %type.as.Copy.impl.Op.call [concrete = constants.%C] // CHECK:STDOUT: %.loc30_12.5: init %Class to %.loc30_12.2 = class_init (%.loc30_12.4) [concrete = constants.%Class.val] // CHECK:STDOUT: %.loc30_13.1: init %Class = converted %.loc30_12.1, %.loc30_12.5 [concrete = constants.%Class.val] -// CHECK:STDOUT: %.loc30_13.2: ref %Class = temporary %.loc30_12.2, %.loc30_13.1 [concrete = constants.%.16e] +// CHECK:STDOUT: %.loc30_13.2: ref %Class = temporary %.loc30_12.2, %.loc30_13.1 [concrete = constants.%.0de] // 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.5a6(constants.%.16e) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound.eb8(constants.%.0de) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -802,22 +802,22 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_8.2(%self.param: ref %HoldsType.bfe) { +// CHECK:STDOUT: fn @Destroy.Op.loc26_8.2(%self.param: ref %HoldsType.af5) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HoldsType(constants.%T.60d) { -// CHECK:STDOUT: %T.loc8_18.1 => constants.%T.60d +// CHECK:STDOUT: specific @HoldsType(constants.%T.f25) { +// CHECK:STDOUT: %T.loc8_18.1 => constants.%T.f25 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.60d) { -// CHECK:STDOUT: %T.loc21_7.1 => constants.%T.60d -// CHECK:STDOUT: %HoldsType.loc21_38.1 => constants.%HoldsType.751b88.1 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.635ee0.1 -// CHECK:STDOUT: %.loc21_52.1 => constants.%.46df5a.1 +// CHECK:STDOUT: specific @F(constants.%T.f25) { +// CHECK:STDOUT: %T.loc21_7.1 => constants.%T.f25 +// CHECK:STDOUT: %HoldsType.loc21_38.1 => constants.%HoldsType.3500da.1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e53268.1 +// CHECK:STDOUT: %.loc21_52.1 => constants.%.9ddfa9.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%c) { @@ -832,31 +832,31 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%c) { // CHECK:STDOUT: %T.loc21_7.1 => constants.%c -// CHECK:STDOUT: %HoldsType.loc21_38.1 => constants.%HoldsType.751b88.2 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.635ee0.2 -// CHECK:STDOUT: %.loc21_52.1 => constants.%.46df5a.2 +// CHECK:STDOUT: %HoldsType.loc21_38.1 => constants.%HoldsType.3500da.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e53268.2 +// CHECK:STDOUT: %.loc21_52.1 => constants.%.9ddfa9.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.03e783.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.6f4d7d.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%Class.val) { // CHECK:STDOUT: %c.loc25_7.1 => constants.%Class.val // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HoldsType.loc26_22.2 => constants.%HoldsType.bfe +// CHECK:STDOUT: %HoldsType.loc26_22.2 => constants.%HoldsType.af5 // CHECK:STDOUT: %require_complete => constants.%complete_type.357 -// CHECK:STDOUT: %HoldsType.val => constants.%HoldsType.val.52a -// CHECK:STDOUT: %F.specific_fn.loc26_3.2 => constants.%F.specific_fn.229 -// CHECK:STDOUT: %.loc26_8.4 => constants.%.ccb -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e20f1f.5 -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.caf -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.445 -// CHECK:STDOUT: %.loc26_8.5 => constants.%.7ae -// CHECK:STDOUT: %impl.elem0.loc26_8.2 => constants.%Destroy.Op.2dd605.5 -// CHECK:STDOUT: %bound_method.loc26_8.3 => constants.%Destroy.Op.bound.448 -// CHECK:STDOUT: %specific_impl_fn.loc26_8.2 => constants.%Destroy.Op.2dd605.5 -// CHECK:STDOUT: %bound_method.loc26_8.4 => constants.%Destroy.Op.bound.448 +// CHECK:STDOUT: %HoldsType.val => constants.%HoldsType.val.8bc +// CHECK:STDOUT: %F.specific_fn.loc26_3.2 => constants.%F.specific_fn.463 +// CHECK:STDOUT: %.loc26_8.4 => constants.%.3f5 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.5 +// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.b45 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.06d +// CHECK:STDOUT: %.loc26_8.5 => constants.%.db7 +// CHECK:STDOUT: %impl.elem0.loc26_8.2 => constants.%Destroy.Op.1a2547.5 +// CHECK:STDOUT: %bound_method.loc26_8.3 => constants.%Destroy.Op.bound.d49 +// CHECK:STDOUT: %specific_impl_fn.loc26_8.2 => constants.%Destroy.Op.1a2547.5 +// CHECK:STDOUT: %bound_method.loc26_8.4 => constants.%Destroy.Op.bound.d49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HoldsType(constants.%Class.val) { @@ -867,8 +867,8 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%Class.val) { // CHECK:STDOUT: %T.loc21_7.1 => constants.%Class.val -// CHECK:STDOUT: %HoldsType.loc21_38.1 => constants.%HoldsType.bfe -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.95c +// CHECK:STDOUT: %HoldsType.loc21_38.1 => constants.%HoldsType.af5 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b17 // CHECK:STDOUT: %.loc21_52.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -887,62 +887,62 @@ fn G() { // CHECK:STDOUT: %HoldsType.type: type = generic_class_type @HoldsType [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %HoldsType.generic: %HoldsType.type = struct_value () [concrete] -// CHECK:STDOUT: %HoldsType.110: type = class_type @HoldsType, @HoldsType(%T.9b7) [symbolic] +// CHECK:STDOUT: %HoldsType.881: type = class_type @HoldsType, @HoldsType(%T.9b7) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.73c: type = pattern_type %HoldsType.110 [symbolic] +// CHECK:STDOUT: %pattern_type.d35: type = pattern_type %HoldsType.881 [symbolic] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.7f6: = require_complete_type %HoldsType.110 [symbolic] +// CHECK:STDOUT: %require_complete.80d: = require_complete_type %HoldsType.881 [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [concrete] -// CHECK:STDOUT: %tuple.983: %tuple.type.85c = tuple_value (%C) [concrete] +// CHECK:STDOUT: %tuple.e45: %tuple.type.85c = tuple_value (%C) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.f49: = impl_witness imports.%Copy.impl_witness_table.fcf [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.f49) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cd0: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.31b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cd0, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.638: = impl_witness imports.%Copy.impl_witness_table.4d6 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.638) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8b3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.524: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8b3, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %C, %type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%C) [concrete] -// CHECK:STDOUT: %.8e9: ref %array_type = temporary invalid, %array [concrete] -// CHECK:STDOUT: %HoldsType.7e3: type = class_type @HoldsType, @HoldsType(%array) [concrete] -// CHECK:STDOUT: %HoldsType.val: %HoldsType.7e3 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.52b: type = pattern_type %HoldsType.7e3 [concrete] +// CHECK:STDOUT: %.1c6: ref %array_type = temporary invalid, %array [concrete] +// CHECK:STDOUT: %HoldsType.f11: type = class_type @HoldsType, @HoldsType(%array) [concrete] +// CHECK:STDOUT: %HoldsType.val: %HoldsType.f11 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.096: type = pattern_type %HoldsType.f11 [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%array) [concrete] -// CHECK:STDOUT: %.407: ref %HoldsType.7e3 = temporary invalid, %HoldsType.val [concrete] +// CHECK:STDOUT: %.f62: ref %HoldsType.f11 = temporary invalid, %HoldsType.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc17_8.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.c0e: = bound_method %.407, %Destroy.Op.2dd605.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc17_27.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.4f1: = bound_method %.8e9, %Destroy.Op.2dd605.4 [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc17_8.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.bound.14e: = bound_method %.f62, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc17_27.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.bound.cbc: = bound_method %.1c6, %Destroy.Op.1a2547.4 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -955,12 +955,12 @@ fn G() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.fcf = impl_witness_table (%Core.import_ref.f63), @type.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.4d6 = impl_witness_table (%Core.import_ref.9c3), @type.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -986,8 +986,8 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.dcb = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.73c) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.73c) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.d35) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.d35) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: %a.param_patt: = value_param_pattern [concrete] // CHECK:STDOUT: %a.patt: = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { @@ -998,24 +998,24 @@ fn G() { // CHECK:STDOUT: %array_type: type = array_type %int_1, %.loc12_16 [concrete = constants.%array_type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc12_7.2: %array_type = symbolic_binding T, 0 [symbolic = %T.loc12_7.1 (constants.%T.9b7)] -// CHECK:STDOUT: %x.param: @F.%HoldsType.loc12_47.1 (%HoldsType.110) = value_param call_param0 -// CHECK:STDOUT: %.loc12_47: type = splice_block %HoldsType.loc12_47.2 [symbolic = %HoldsType.loc12_47.1 (constants.%HoldsType.110)] { +// CHECK:STDOUT: %x.param: @F.%HoldsType.loc12_47.1 (%HoldsType.881) = value_param call_param0 +// CHECK:STDOUT: %.loc12_47: type = splice_block %HoldsType.loc12_47.2 [symbolic = %HoldsType.loc12_47.1 (constants.%HoldsType.881)] { // CHECK:STDOUT: %HoldsType.ref: %HoldsType.type = name_ref HoldsType, file.%HoldsType.decl [concrete = constants.%HoldsType.generic] // CHECK:STDOUT: %T.ref.loc12_46: %array_type = name_ref T, %T.loc12_7.2 [symbolic = %T.loc12_7.1 (constants.%T.9b7)] -// CHECK:STDOUT: %HoldsType.loc12_47.2: type = class_type @HoldsType, @HoldsType(constants.%T.9b7) [symbolic = %HoldsType.loc12_47.1 (constants.%HoldsType.110)] +// CHECK:STDOUT: %HoldsType.loc12_47.2: type = class_type @HoldsType, @HoldsType(constants.%T.9b7) [symbolic = %HoldsType.loc12_47.1 (constants.%HoldsType.881)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%HoldsType.loc12_47.1 (%HoldsType.110) = value_binding x, %x.param +// CHECK:STDOUT: %x: @F.%HoldsType.loc12_47.1 (%HoldsType.881) = value_binding x, %x.param // CHECK:STDOUT: %a.param: = value_param call_param1 // CHECK:STDOUT: %.1: = splice_block [concrete = ] { // CHECK:STDOUT: %T.ref.loc12_60: %array_type = name_ref T, %T.loc12_7.2 [symbolic = %T.loc12_7.1 (constants.%T.9b7)] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc12_62.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_62.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc12_62.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc12_62.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc12_62.2: %i32 = converted %int_0, %.loc12_62.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc12_62.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc12_62.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc12_62.2: %i32 = converted %int_0, %.loc12_62.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc12_63.1: ref %array_type = value_as_ref %T.ref.loc12_60 // CHECK:STDOUT: %.loc12_63.2: ref type = array_index %.loc12_63.1, %.loc12_62.2 // CHECK:STDOUT: %.loc12_63.3: type = acquire_value %.loc12_63.2 @@ -1036,7 +1036,7 @@ fn G() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%HoldsType.110 +// CHECK:STDOUT: .Self = constants.%HoldsType.881 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1050,13 +1050,13 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc12_7.2: %array_type) { // CHECK:STDOUT: %T.loc12_7.1: %array_type = symbolic_binding T, 0 [symbolic = %T.loc12_7.1 (constants.%T.9b7)] -// CHECK:STDOUT: %HoldsType.loc12_47.1: type = class_type @HoldsType, @HoldsType(%T.loc12_7.1) [symbolic = %HoldsType.loc12_47.1 (constants.%HoldsType.110)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %HoldsType.loc12_47.1 [symbolic = %pattern_type (constants.%pattern_type.73c)] +// CHECK:STDOUT: %HoldsType.loc12_47.1: type = class_type @HoldsType, @HoldsType(%T.loc12_7.1) [symbolic = %HoldsType.loc12_47.1 (constants.%HoldsType.881)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %HoldsType.loc12_47.1 [symbolic = %pattern_type (constants.%pattern_type.d35)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %HoldsType.loc12_47.1 [symbolic = %require_complete (constants.%require_complete.7f6)] +// CHECK:STDOUT: %require_complete: = require_complete_type %HoldsType.loc12_47.1 [symbolic = %require_complete (constants.%require_complete.80d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc12_47.1 (%HoldsType.110), %a.param: ) { +// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc12_47.1 (%HoldsType.881), %a.param: ) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1068,11 +1068,11 @@ fn G() { // CHECK:STDOUT: %.loc17_6.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %HoldsType.ref: %HoldsType.type = name_ref HoldsType, file.%HoldsType.decl [concrete = constants.%HoldsType.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc17_25.1: %tuple.type.85c = tuple_literal (%C.ref) [concrete = constants.%tuple.983] +// CHECK:STDOUT: %.loc17_25.1: %tuple.type.85c = tuple_literal (%C.ref) [concrete = constants.%tuple.e45] // CHECK:STDOUT: %.loc17_36: type = type_literal type [concrete = type] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %array_type: type = array_type %int_1, %.loc17_36 [concrete = constants.%array_type] -// CHECK:STDOUT: %impl.elem0: %.31b = impl_witness_access constants.%Copy.impl_witness.f49, element0 [concrete = constants.%type.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.524 = impl_witness_access constants.%Copy.impl_witness.638, element0 [concrete = constants.%type.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %C.ref, %impl.elem0 [concrete = constants.%type.as.Copy.impl.Op.bound] // CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method(%C.ref) [concrete = constants.%C] // CHECK:STDOUT: %.loc17_25.2: ref %array_type = temporary_storage @@ -1081,25 +1081,25 @@ fn G() { // CHECK:STDOUT: %.loc17_25.4: init type to %.loc17_25.3 = in_place_init %type.as.Copy.impl.Op.call [concrete = constants.%C] // CHECK:STDOUT: %.loc17_25.5: init %array_type to %.loc17_25.2 = array_init (%.loc17_25.4) [concrete = constants.%array] // CHECK:STDOUT: %.loc17_27.1: init %array_type = converted %.loc17_25.1, %.loc17_25.5 [concrete = constants.%array] -// CHECK:STDOUT: %.loc17_27.2: ref %array_type = temporary %.loc17_25.2, %.loc17_27.1 [concrete = constants.%.8e9] +// CHECK:STDOUT: %.loc17_27.2: ref %array_type = temporary %.loc17_25.2, %.loc17_27.1 [concrete = constants.%.1c6] // CHECK:STDOUT: %.loc17_27.3: %array_type = acquire_value %.loc17_27.2 [concrete = constants.%array] -// CHECK:STDOUT: %HoldsType: type = class_type @HoldsType, @HoldsType(constants.%array) [concrete = constants.%HoldsType.7e3] -// CHECK:STDOUT: %.loc17_6.2: ref %HoldsType.7e3 = temporary_storage -// CHECK:STDOUT: %.loc17_6.3: init %HoldsType.7e3 to %.loc17_6.2 = class_init () [concrete = constants.%HoldsType.val] -// CHECK:STDOUT: %.loc17_8.1: init %HoldsType.7e3 = converted %.loc17_6.1, %.loc17_6.3 [concrete = constants.%HoldsType.val] +// CHECK:STDOUT: %HoldsType: type = class_type @HoldsType, @HoldsType(constants.%array) [concrete = constants.%HoldsType.f11] +// CHECK:STDOUT: %.loc17_6.2: ref %HoldsType.f11 = temporary_storage +// CHECK:STDOUT: %.loc17_6.3: init %HoldsType.f11 to %.loc17_6.2 = class_init () [concrete = constants.%HoldsType.val] +// CHECK:STDOUT: %.loc17_8.1: 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: %F.specific_fn: = specific_function %F.ref, @F(constants.%array) [concrete = constants.%F.specific_fn] -// CHECK:STDOUT: %.loc17_8.2: ref %HoldsType.7e3 = temporary %.loc17_6.2, %.loc17_8.1 [concrete = constants.%.407] -// CHECK:STDOUT: %.loc17_8.3: %HoldsType.7e3 = acquire_value %.loc17_8.2 [concrete = constants.%HoldsType.val] +// CHECK:STDOUT: %.loc17_8.2: ref %HoldsType.f11 = temporary %.loc17_6.2, %.loc17_8.1 [concrete = constants.%.f62] +// CHECK:STDOUT: %.loc17_8.3: %HoldsType.f11 = acquire_value %.loc17_8.2 [concrete = constants.%HoldsType.val] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc17_8.3, ) -// CHECK:STDOUT: %Destroy.Op.call.loc17_8: init %empty_tuple.type = call constants.%Destroy.Op.bound.c0e(constants.%.407) -// CHECK:STDOUT: %Destroy.Op.call.loc17_27: init %empty_tuple.type = call constants.%Destroy.Op.bound.4f1(constants.%.8e9) +// CHECK:STDOUT: %Destroy.Op.call.loc17_8: init %empty_tuple.type = call constants.%Destroy.Op.bound.14e(constants.%.f62) +// CHECK:STDOUT: %Destroy.Op.call.loc17_27: init %empty_tuple.type = call constants.%Destroy.Op.bound.cbc(constants.%.1c6) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.Op.loc17_8.1(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc17_8.2(%self.param: ref %HoldsType.7e3) { +// CHECK:STDOUT: fn @Destroy.Op.loc17_8.2(%self.param: ref %HoldsType.f11) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1119,8 +1119,8 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.9b7) { // CHECK:STDOUT: %T.loc12_7.1 => constants.%T.9b7 -// CHECK:STDOUT: %HoldsType.loc12_47.1 => constants.%HoldsType.110 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.73c +// CHECK:STDOUT: %HoldsType.loc12_47.1 => constants.%HoldsType.881 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HoldsType(constants.%array) { @@ -1131,8 +1131,8 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%array) { // CHECK:STDOUT: %T.loc12_7.1 => constants.%array -// CHECK:STDOUT: %HoldsType.loc12_47.1 => constants.%HoldsType.7e3 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.52b +// CHECK:STDOUT: %HoldsType.loc12_47.1 => constants.%HoldsType.f11 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.096 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.357 diff --git a/toolchain/check/testdata/eval/aggregates.carbon b/toolchain/check/testdata/eval/aggregates.carbon index 62a7293100fe..3ee475b58c2c 100644 --- a/toolchain/check/testdata/eval/aggregates.carbon +++ b/toolchain/check/testdata/eval/aggregates.carbon @@ -60,65 +60,65 @@ fn G(N:! i32) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.79d: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] -// CHECK:STDOUT: %pattern_type.7d6: type = pattern_type %tuple.type.e5a [concrete] +// CHECK:STDOUT: %tuple.b59: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %pattern_type.394: type = pattern_type %tuple.type.e55 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [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: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %tuple.cd5: %tuple.type.e5a = tuple_value (%int_1.d9c, %int_2.228) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %tuple.102: %tuple.type.e55 = tuple_value (%int_1.0c6, %int_2.295) [concrete] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access file.%tuple_copy.var, element0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.1a4: = bound_method %int_1.d9c, %Int.as.Copy.impl.Op.ce7 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.848: = bound_method %int_1.d9c, %Int.as.Copy.impl.Op.specific_fn [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.102: = bound_method %int_1.0c6, %Int.as.Copy.impl.Op.4f6 [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: %bound_method.681: = bound_method %int_1.0c6, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access file.%tuple_copy.var, element1 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.a01: = bound_method %int_2.228, %Int.as.Copy.impl.Op.ce7 [concrete] -// CHECK:STDOUT: %bound_method.190: = bound_method %int_2.228, %Int.as.Copy.impl.Op.specific_fn [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.245: = bound_method %int_2.295, %Int.as.Copy.impl.Op.4f6 [concrete] +// CHECK:STDOUT: %bound_method.03a: = bound_method %int_2.295, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %struct_type.a.b.c: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.5d6: type = pattern_type %struct_type.a.b.c [concrete] +// CHECK:STDOUT: %pattern_type.9c3: type = pattern_type %struct_type.a.b.c [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %struct_type.c.b.a: type = struct_type {.c: Core.IntLiteral, .b: Core.IntLiteral, .a: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.c75: %struct_type.c.b.a = struct_value (%int_3.1ba, %int_2.ecc, %int_1.5b8) [concrete] // CHECK:STDOUT: %struct_type.b.a.c: type = struct_type {.b: %i32, .a: %i32, .c: %i32} [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %struct.113: %struct_type.b.a.c = struct_value (%int_2.228, %int_1.d9c, %int_3.6cc) [concrete] -// CHECK:STDOUT: %.b13: ref %i32 = struct_access file.%struct_copy.var, element1 [concrete] -// CHECK:STDOUT: %.36d: ref %i32 = struct_access file.%struct_copy.var, element0 [concrete] -// CHECK:STDOUT: %.5a0: ref %i32 = struct_access file.%struct_copy.var, element2 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.0e3: = bound_method %int_3.6cc, %Int.as.Copy.impl.Op.ce7 [concrete] -// CHECK:STDOUT: %bound_method.033: = bound_method %int_3.6cc, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %struct.c8f: %struct_type.a.b.c = struct_value (%int_1.d9c, %int_2.228, %int_3.6cc) [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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] +// CHECK:STDOUT: %struct.55d: %struct_type.b.a.c = struct_value (%int_2.295, %int_1.0c6, %int_3.410) [concrete] +// CHECK:STDOUT: %.6b5: ref %i32 = struct_access file.%struct_copy.var, element1 [concrete] +// CHECK:STDOUT: %.e89: ref %i32 = struct_access file.%struct_copy.var, element0 [concrete] +// CHECK:STDOUT: %.dd4: ref %i32 = struct_access file.%struct_copy.var, element2 [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.4ec: = bound_method %int_3.410, %Int.as.Copy.impl.Op.4f6 [concrete] +// CHECK:STDOUT: %bound_method.1b6: = bound_method %int_3.410, %Int.as.Copy.impl.Op.specific_fn [concrete] +// CHECK:STDOUT: %struct.11a: %struct_type.a.b.c = struct_value (%int_1.0c6, %int_2.295, %int_3.410) [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.34b: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.97e: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.4f2: %tuple.type.985 = tuple_value (%int_0.5c6) [concrete] @@ -127,37 +127,37 @@ fn G(N:! i32) { // CHECK:STDOUT: %int_9: Core.IntLiteral = int_value 9 [concrete] // CHECK:STDOUT: %tuple.type.d46: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.869: %tuple.type.d46 = tuple_value (%int_5, %int_7, %int_1.5b8, %int_9) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_0.62d) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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: %array: %array_type = tuple_value (%int_0.3c0) [concrete] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.a81: %struct_type.a.b = struct_value (%int_3.1ba, %int_1.5b8) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %tuple_copy.patt: %pattern_type.7d6 = ref_binding_pattern tuple_copy [concrete] -// CHECK:STDOUT: %tuple_copy.var_patt: %pattern_type.7d6 = var_pattern %tuple_copy.patt [concrete] +// CHECK:STDOUT: %tuple_copy.patt: %pattern_type.394 = ref_binding_pattern tuple_copy [concrete] +// CHECK:STDOUT: %tuple_copy.var_patt: %pattern_type.394 = var_pattern %tuple_copy.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %tuple_copy.var: ref %tuple.type.e5a = var %tuple_copy.var_patt [concrete] -// CHECK:STDOUT: %.loc4_26.1: type = splice_block %.loc4_26.3 [concrete = constants.%tuple.type.e5a] { +// CHECK:STDOUT: %tuple_copy.var: ref %tuple.type.e55 = var %tuple_copy.var_patt [concrete] +// CHECK:STDOUT: %.loc4_26.1: type = splice_block %.loc4_26.3 [concrete = constants.%tuple.type.e55] { // CHECK:STDOUT: %i32.loc4_18: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc4_23: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4_26.2: %tuple.type.24b = tuple_literal (%i32.loc4_18, %i32.loc4_23) [concrete = constants.%tuple.79d] -// CHECK:STDOUT: %.loc4_26.3: type = converted %.loc4_26.2, constants.%tuple.type.e5a [concrete = constants.%tuple.type.e5a] +// CHECK:STDOUT: %.loc4_26.2: %tuple.type.24b = tuple_literal (%i32.loc4_18, %i32.loc4_23) [concrete = constants.%tuple.b59] +// CHECK:STDOUT: %.loc4_26.3: type = converted %.loc4_26.2, constants.%tuple.type.e55 [concrete = constants.%tuple.type.e55] // CHECK:STDOUT: } -// CHECK:STDOUT: %tuple_copy: ref %tuple.type.e5a = ref_binding tuple_copy, %tuple_copy.var [concrete = %tuple_copy.var] +// CHECK:STDOUT: %tuple_copy: ref %tuple.type.e55 = ref_binding tuple_copy, %tuple_copy.var [concrete = %tuple_copy.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %struct_copy.patt: %pattern_type.5d6 = ref_binding_pattern struct_copy [concrete] -// CHECK:STDOUT: %struct_copy.var_patt: %pattern_type.5d6 = var_pattern %struct_copy.patt [concrete] +// CHECK:STDOUT: %struct_copy.patt: %pattern_type.9c3 = ref_binding_pattern struct_copy [concrete] +// CHECK:STDOUT: %struct_copy.var_patt: %pattern_type.9c3 = var_pattern %struct_copy.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %struct_copy.var: ref %struct_type.a.b.c = var %struct_copy.var_patt [concrete] // CHECK:STDOUT: %.loc6: type = splice_block %struct_type.a.b.c [concrete = constants.%struct_type.a.b.c] { @@ -168,8 +168,8 @@ fn G(N:! i32) { // CHECK:STDOUT: } // CHECK:STDOUT: %struct_copy: ref %struct_type.a.b.c = ref_binding struct_copy, %struct_copy.var [concrete = %struct_copy.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %tuple_index.patt: %pattern_type.34b = ref_binding_pattern tuple_index [concrete] -// CHECK:STDOUT: %tuple_index.var_patt: %pattern_type.34b = var_pattern %tuple_index.patt [concrete] +// CHECK:STDOUT: %tuple_index.patt: %pattern_type.97e = ref_binding_pattern tuple_index [concrete] +// CHECK:STDOUT: %tuple_index.var_patt: %pattern_type.97e = var_pattern %tuple_index.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %tuple_index.var: ref %array_type = var %tuple_index.var_patt [concrete] // CHECK:STDOUT: %.loc8: type = splice_block %array_type.loc8 [concrete = constants.%array_type] { @@ -179,8 +179,8 @@ fn G(N:! i32) { // CHECK:STDOUT: } // CHECK:STDOUT: %tuple_index: ref %array_type = ref_binding tuple_index, %tuple_index.var [concrete = %tuple_index.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %struct_access.patt: %pattern_type.34b = ref_binding_pattern struct_access [concrete] -// CHECK:STDOUT: %struct_access.var_patt: %pattern_type.34b = var_pattern %struct_access.patt [concrete] +// CHECK:STDOUT: %struct_access.patt: %pattern_type.97e = ref_binding_pattern struct_access [concrete] +// CHECK:STDOUT: %struct_access.var_patt: %pattern_type.97e = var_pattern %struct_access.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %struct_access.var: ref %array_type = var %struct_access.var_patt [concrete] // CHECK:STDOUT: %.loc10: type = splice_block %array_type.loc10 [concrete = constants.%array_type] { @@ -198,42 +198,42 @@ fn G(N:! i32) { // CHECK:STDOUT: %.loc4_35.1: %tuple.type.f94 = tuple_literal (%int_1.loc4, %int_2.loc4) [concrete = constants.%tuple.ad8] // CHECK:STDOUT: %i32.loc4_41: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc4_46: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4_49.1: %tuple.type.24b = tuple_literal (%i32.loc4_41, %i32.loc4_46) [concrete = constants.%tuple.79d] -// CHECK:STDOUT: %.loc4_49.2: type = converted %.loc4_49.1, constants.%tuple.type.e5a [concrete = constants.%tuple.type.e5a] -// CHECK:STDOUT: %impl.elem0.loc4_35.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc4_35.1: = bound_method %int_1.loc4, %impl.elem0.loc4_35.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %.loc4_49.1: %tuple.type.24b = tuple_literal (%i32.loc4_41, %i32.loc4_46) [concrete = constants.%tuple.b59] +// CHECK:STDOUT: %.loc4_49.2: type = converted %.loc4_49.1, constants.%tuple.type.e55 [concrete = constants.%tuple.type.e55] +// CHECK:STDOUT: %impl.elem0.loc4_35.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc4_35.1: = bound_method %int_1.loc4, %impl.elem0.loc4_35.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc4_35.1: = specific_function %impl.elem0.loc4_35.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc4_35.2: = bound_method %int_1.loc4, %specific_fn.loc4_35.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc4_35.1: init %i32 = call %bound_method.loc4_35.2(%int_1.loc4) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc4_35.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc4_35.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc4_35.3: %i32 = converted %int_1.loc4, %.loc4_35.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc4_35.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc4_35.3: = bound_method %int_2.loc4, %impl.elem0.loc4_35.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc4_35.2: = bound_method %int_1.loc4, %specific_fn.loc4_35.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc4_35.1: init %i32 = call %bound_method.loc4_35.2(%int_1.loc4) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc4_35.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc4_35.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc4_35.3: %i32 = converted %int_1.loc4, %.loc4_35.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc4_35.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc4_35.3: = bound_method %int_2.loc4, %impl.elem0.loc4_35.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc4_35.2: = specific_function %impl.elem0.loc4_35.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc4_35.4: = bound_method %int_2.loc4, %specific_fn.loc4_35.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc4_35.2: init %i32 = call %bound_method.loc4_35.4(%int_2.loc4) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc4_35.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc4_35.2 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc4_35.5: %i32 = converted %int_2.loc4, %.loc4_35.4 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %tuple.loc4: %tuple.type.e5a = tuple_value (%.loc4_35.3, %.loc4_35.5) [concrete = constants.%tuple.cd5] -// CHECK:STDOUT: %.loc4_37.1: %tuple.type.e5a = converted %.loc4_35.1, %tuple.loc4 [concrete = constants.%tuple.cd5] -// CHECK:STDOUT: %tuple.elem0.loc4_37.1: %i32 = tuple_access %.loc4_37.1, element0 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc4_37.1: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] -// CHECK:STDOUT: %bound_method.loc4_37.1: = bound_method %tuple.elem0.loc4_37.1, %impl.elem0.loc4_37.1 [concrete = constants.%Int.as.Copy.impl.Op.bound.1a4] +// CHECK:STDOUT: %bound_method.loc4_35.4: = bound_method %int_2.loc4, %specific_fn.loc4_35.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc4_35.2: init %i32 = call %bound_method.loc4_35.4(%int_2.loc4) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc4_35.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc4_35.2 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc4_35.5: %i32 = converted %int_2.loc4, %.loc4_35.4 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %tuple.loc4: %tuple.type.e55 = tuple_value (%.loc4_35.3, %.loc4_35.5) [concrete = constants.%tuple.102] +// CHECK:STDOUT: %.loc4_37.1: %tuple.type.e55 = converted %.loc4_35.1, %tuple.loc4 [concrete = constants.%tuple.102] +// CHECK:STDOUT: %tuple.elem0.loc4_37.1: %i32 = tuple_access %.loc4_37.1, element0 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc4_37.1: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] +// CHECK:STDOUT: %bound_method.loc4_37.1: = bound_method %tuple.elem0.loc4_37.1, %impl.elem0.loc4_37.1 [concrete = constants.%Int.as.Copy.impl.Op.bound.102] // CHECK:STDOUT: %specific_fn.loc4_37.1: = specific_function %impl.elem0.loc4_37.1, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc4_37.2: = bound_method %tuple.elem0.loc4_37.1, %specific_fn.loc4_37.1 [concrete = constants.%bound_method.848] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc4_37.1: init %i32 = call %bound_method.loc4_37.2(%tuple.elem0.loc4_37.1) [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc4_37.2: = bound_method %tuple.elem0.loc4_37.1, %specific_fn.loc4_37.1 [concrete = constants.%bound_method.681] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc4_37.1: init %i32 = call %bound_method.loc4_37.2(%tuple.elem0.loc4_37.1) [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %tuple.elem0.loc4_37.2: ref %i32 = tuple_access file.%tuple_copy.var, element0 [concrete = constants.%tuple.elem0] -// CHECK:STDOUT: %.loc4_37.2: init %i32 to %tuple.elem0.loc4_37.2 = in_place_init %Int.as.Copy.impl.Op.call.loc4_37.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %tuple.elem1.loc4_37.1: %i32 = tuple_access %.loc4_37.1, element1 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %impl.elem0.loc4_37.2: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] -// CHECK:STDOUT: %bound_method.loc4_37.3: = bound_method %tuple.elem1.loc4_37.1, %impl.elem0.loc4_37.2 [concrete = constants.%Int.as.Copy.impl.Op.bound.a01] +// CHECK:STDOUT: %.loc4_37.2: init %i32 to %tuple.elem0.loc4_37.2 = in_place_init %Int.as.Copy.impl.Op.call.loc4_37.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %tuple.elem1.loc4_37.1: %i32 = tuple_access %.loc4_37.1, element1 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %impl.elem0.loc4_37.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] +// CHECK:STDOUT: %bound_method.loc4_37.3: = bound_method %tuple.elem1.loc4_37.1, %impl.elem0.loc4_37.2 [concrete = constants.%Int.as.Copy.impl.Op.bound.245] // CHECK:STDOUT: %specific_fn.loc4_37.2: = specific_function %impl.elem0.loc4_37.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc4_37.4: = bound_method %tuple.elem1.loc4_37.1, %specific_fn.loc4_37.2 [concrete = constants.%bound_method.190] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc4_37.2: init %i32 = call %bound_method.loc4_37.4(%tuple.elem1.loc4_37.1) [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc4_37.4: = bound_method %tuple.elem1.loc4_37.1, %specific_fn.loc4_37.2 [concrete = constants.%bound_method.03a] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc4_37.2: init %i32 = call %bound_method.loc4_37.4(%tuple.elem1.loc4_37.1) [concrete = constants.%int_2.295] // CHECK:STDOUT: %tuple.elem1.loc4_37.2: ref %i32 = tuple_access file.%tuple_copy.var, element1 [concrete = constants.%tuple.elem1] -// CHECK:STDOUT: %.loc4_37.3: init %i32 to %tuple.elem1.loc4_37.2 = in_place_init %Int.as.Copy.impl.Op.call.loc4_37.2 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc4_37.4: init %tuple.type.e5a to file.%tuple_copy.var = tuple_init (%.loc4_37.2, %.loc4_37.3) [concrete = constants.%tuple.cd5] -// CHECK:STDOUT: %.loc4_1: init %tuple.type.e5a = converted %.loc4_37.1, %.loc4_37.4 [concrete = constants.%tuple.cd5] +// CHECK:STDOUT: %.loc4_37.3: init %i32 to %tuple.elem1.loc4_37.2 = in_place_init %Int.as.Copy.impl.Op.call.loc4_37.2 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc4_37.4: init %tuple.type.e55 to file.%tuple_copy.var = tuple_init (%.loc4_37.2, %.loc4_37.3) [concrete = constants.%tuple.102] +// CHECK:STDOUT: %.loc4_1: init %tuple.type.e55 = converted %.loc4_37.1, %.loc4_37.4 [concrete = constants.%tuple.102] // CHECK:STDOUT: assign file.%tuple_copy.var, %.loc4_1 // CHECK:STDOUT: %int_3.loc6: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %int_2.loc6: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] @@ -243,55 +243,55 @@ fn G(N:! i32) { // CHECK:STDOUT: %i32.loc6_90: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc6_99: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.b.a.c: type = struct_type {.b: %i32, .a: %i32, .c: %i32} [concrete = constants.%struct_type.b.a.c] -// CHECK:STDOUT: %impl.elem0.loc6_71.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc6_71.1: = bound_method %int_2.loc6, %impl.elem0.loc6_71.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %impl.elem0.loc6_71.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc6_71.1: = bound_method %int_2.loc6, %impl.elem0.loc6_71.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc6_71.1: = specific_function %impl.elem0.loc6_71.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_71.2: = bound_method %int_2.loc6, %specific_fn.loc6_71.1 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_71.1: init %i32 = call %bound_method.loc6_71.2(%int_2.loc6) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc6_71.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_71.1 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc6_71.3: %i32 = converted %int_2.loc6, %.loc6_71.2 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %impl.elem0.loc6_71.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc6_71.3: = bound_method %int_1.loc6, %impl.elem0.loc6_71.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %bound_method.loc6_71.2: = bound_method %int_2.loc6, %specific_fn.loc6_71.1 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_71.1: init %i32 = call %bound_method.loc6_71.2(%int_2.loc6) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc6_71.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_71.1 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc6_71.3: %i32 = converted %int_2.loc6, %.loc6_71.2 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %impl.elem0.loc6_71.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc6_71.3: = bound_method %int_1.loc6, %impl.elem0.loc6_71.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc6_71.2: = specific_function %impl.elem0.loc6_71.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_71.4: = bound_method %int_1.loc6, %specific_fn.loc6_71.2 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_71.2: init %i32 = call %bound_method.loc6_71.4(%int_1.loc6) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc6_71.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_71.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc6_71.5: %i32 = converted %int_1.loc6, %.loc6_71.4 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc6_71.3: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc6_71.5: = bound_method %int_3.loc6, %impl.elem0.loc6_71.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %bound_method.loc6_71.4: = bound_method %int_1.loc6, %specific_fn.loc6_71.2 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_71.2: init %i32 = call %bound_method.loc6_71.4(%int_1.loc6) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc6_71.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_71.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc6_71.5: %i32 = converted %int_1.loc6, %.loc6_71.4 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc6_71.3: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc6_71.5: = bound_method %int_3.loc6, %impl.elem0.loc6_71.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc6_71.3: = specific_function %impl.elem0.loc6_71.3, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_71.6: = bound_method %int_3.loc6, %specific_fn.loc6_71.3 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_71.3: init %i32 = call %bound_method.loc6_71.6(%int_3.loc6) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc6_71.6: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_71.3 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc6_71.7: %i32 = converted %int_3.loc6, %.loc6_71.6 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %struct.loc6: %struct_type.b.a.c = struct_value (%.loc6_71.3, %.loc6_71.5, %.loc6_71.7) [concrete = constants.%struct.113] -// CHECK:STDOUT: %.loc6_73.1: %struct_type.b.a.c = converted %.loc6_71.1, %struct.loc6 [concrete = constants.%struct.113] -// CHECK:STDOUT: %.loc6_73.2: %i32 = struct_access %.loc6_73.1, element1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc6_73.1: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] -// CHECK:STDOUT: %bound_method.loc6_73.1: = bound_method %.loc6_73.2, %impl.elem0.loc6_73.1 [concrete = constants.%Int.as.Copy.impl.Op.bound.1a4] +// CHECK:STDOUT: %bound_method.loc6_71.6: = bound_method %int_3.loc6, %specific_fn.loc6_71.3 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_71.3: init %i32 = call %bound_method.loc6_71.6(%int_3.loc6) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc6_71.6: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_71.3 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc6_71.7: %i32 = converted %int_3.loc6, %.loc6_71.6 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %struct.loc6: %struct_type.b.a.c = struct_value (%.loc6_71.3, %.loc6_71.5, %.loc6_71.7) [concrete = constants.%struct.55d] +// CHECK:STDOUT: %.loc6_73.1: %struct_type.b.a.c = converted %.loc6_71.1, %struct.loc6 [concrete = constants.%struct.55d] +// CHECK:STDOUT: %.loc6_73.2: %i32 = struct_access %.loc6_73.1, element1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc6_73.1: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] +// CHECK:STDOUT: %bound_method.loc6_73.1: = bound_method %.loc6_73.2, %impl.elem0.loc6_73.1 [concrete = constants.%Int.as.Copy.impl.Op.bound.102] // CHECK:STDOUT: %specific_fn.loc6_73.1: = specific_function %impl.elem0.loc6_73.1, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_73.2: = bound_method %.loc6_73.2, %specific_fn.loc6_73.1 [concrete = constants.%bound_method.848] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc6_73.1: init %i32 = call %bound_method.loc6_73.2(%.loc6_73.2) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc6_73.3: ref %i32 = struct_access file.%struct_copy.var, element1 [concrete = constants.%.b13] -// CHECK:STDOUT: %.loc6_73.4: init %i32 to %.loc6_73.3 = in_place_init %Int.as.Copy.impl.Op.call.loc6_73.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc6_73.5: %i32 = struct_access %.loc6_73.1, element0 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %impl.elem0.loc6_73.2: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] -// CHECK:STDOUT: %bound_method.loc6_73.3: = bound_method %.loc6_73.5, %impl.elem0.loc6_73.2 [concrete = constants.%Int.as.Copy.impl.Op.bound.a01] +// CHECK:STDOUT: %bound_method.loc6_73.2: = bound_method %.loc6_73.2, %specific_fn.loc6_73.1 [concrete = constants.%bound_method.681] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc6_73.1: init %i32 = call %bound_method.loc6_73.2(%.loc6_73.2) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc6_73.3: ref %i32 = struct_access file.%struct_copy.var, element1 [concrete = constants.%.6b5] +// CHECK:STDOUT: %.loc6_73.4: init %i32 to %.loc6_73.3 = in_place_init %Int.as.Copy.impl.Op.call.loc6_73.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc6_73.5: %i32 = struct_access %.loc6_73.1, element0 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %impl.elem0.loc6_73.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] +// CHECK:STDOUT: %bound_method.loc6_73.3: = bound_method %.loc6_73.5, %impl.elem0.loc6_73.2 [concrete = constants.%Int.as.Copy.impl.Op.bound.245] // CHECK:STDOUT: %specific_fn.loc6_73.2: = specific_function %impl.elem0.loc6_73.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_73.4: = bound_method %.loc6_73.5, %specific_fn.loc6_73.2 [concrete = constants.%bound_method.190] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc6_73.2: init %i32 = call %bound_method.loc6_73.4(%.loc6_73.5) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc6_73.6: ref %i32 = struct_access file.%struct_copy.var, element0 [concrete = constants.%.36d] -// CHECK:STDOUT: %.loc6_73.7: init %i32 to %.loc6_73.6 = in_place_init %Int.as.Copy.impl.Op.call.loc6_73.2 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc6_73.8: %i32 = struct_access %.loc6_73.1, element2 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %impl.elem0.loc6_73.3: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] -// CHECK:STDOUT: %bound_method.loc6_73.5: = bound_method %.loc6_73.8, %impl.elem0.loc6_73.3 [concrete = constants.%Int.as.Copy.impl.Op.bound.0e3] +// CHECK:STDOUT: %bound_method.loc6_73.4: = bound_method %.loc6_73.5, %specific_fn.loc6_73.2 [concrete = constants.%bound_method.03a] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc6_73.2: init %i32 = call %bound_method.loc6_73.4(%.loc6_73.5) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc6_73.6: ref %i32 = struct_access file.%struct_copy.var, element0 [concrete = constants.%.e89] +// CHECK:STDOUT: %.loc6_73.7: init %i32 to %.loc6_73.6 = in_place_init %Int.as.Copy.impl.Op.call.loc6_73.2 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc6_73.8: %i32 = struct_access %.loc6_73.1, element2 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %impl.elem0.loc6_73.3: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] +// CHECK:STDOUT: %bound_method.loc6_73.5: = bound_method %.loc6_73.8, %impl.elem0.loc6_73.3 [concrete = constants.%Int.as.Copy.impl.Op.bound.4ec] // CHECK:STDOUT: %specific_fn.loc6_73.3: = specific_function %impl.elem0.loc6_73.3, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_73.6: = bound_method %.loc6_73.8, %specific_fn.loc6_73.3 [concrete = constants.%bound_method.033] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc6_73.3: init %i32 = call %bound_method.loc6_73.6(%.loc6_73.8) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc6_73.9: ref %i32 = struct_access file.%struct_copy.var, element2 [concrete = constants.%.5a0] -// CHECK:STDOUT: %.loc6_73.10: init %i32 to %.loc6_73.9 = in_place_init %Int.as.Copy.impl.Op.call.loc6_73.3 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc6_73.11: init %struct_type.a.b.c to file.%struct_copy.var = struct_init (%.loc6_73.4, %.loc6_73.7, %.loc6_73.10) [concrete = constants.%struct.c8f] -// CHECK:STDOUT: %.loc6_1: init %struct_type.a.b.c = converted %.loc6_73.1, %.loc6_73.11 [concrete = constants.%struct.c8f] +// CHECK:STDOUT: %bound_method.loc6_73.6: = bound_method %.loc6_73.8, %specific_fn.loc6_73.3 [concrete = constants.%bound_method.1b6] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc6_73.3: init %i32 = call %bound_method.loc6_73.6(%.loc6_73.8) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc6_73.9: ref %i32 = struct_access file.%struct_copy.var, element2 [concrete = constants.%.dd4] +// CHECK:STDOUT: %.loc6_73.10: init %i32 to %.loc6_73.9 = in_place_init %Int.as.Copy.impl.Op.call.loc6_73.3 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc6_73.11: init %struct_type.a.b.c to file.%struct_copy.var = struct_init (%.loc6_73.4, %.loc6_73.7, %.loc6_73.10) [concrete = constants.%struct.11a] +// CHECK:STDOUT: %.loc6_1: init %struct_type.a.b.c = converted %.loc6_73.1, %.loc6_73.11 [concrete = constants.%struct.11a] // CHECK:STDOUT: assign file.%struct_copy.var, %.loc6_1 // CHECK:STDOUT: %int_0.loc8_35: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc8_37.1: %tuple.type.985 = tuple_literal (%int_0.loc8_35) [concrete = constants.%tuple.4f2] @@ -306,16 +306,16 @@ fn G(N:! i32) { // CHECK:STDOUT: %.loc8_64.2: %tuple.type.d46 = converted %.loc8_64.1, %tuple.loc8 [concrete = constants.%tuple.869] // CHECK:STDOUT: %tuple.elem2: Core.IntLiteral = tuple_access %.loc8_64.2, element2 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %array_type.loc8: type = array_type %tuple.elem2, %i32.loc8 [concrete = constants.%array_type] -// CHECK:STDOUT: %impl.elem0.loc8: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_37.1: = bound_method %int_0.loc8_35, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc8: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_37.1: = bound_method %int_0.loc8_35, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_37.2: = bound_method %int_0.loc8_35, %specific_fn.loc8 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %i32 = call %bound_method.loc8_37.2(%int_0.loc8_35) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc8_37.2: init %i32 = converted %int_0.loc8_35, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc8_37.2: = bound_method %int_0.loc8_35, %specific_fn.loc8 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %i32 = call %bound_method.loc8_37.2(%int_0.loc8_35) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc8_37.2: init %i32 = converted %int_0.loc8_35, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc8_1: ref %array_type = splice_block file.%tuple_index.var [concrete = file.%tuple_index.var] {} // CHECK:STDOUT: %int_0.loc8_37: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc8_37.3: ref %i32 = array_index %.loc8_1, %int_0.loc8_37 -// CHECK:STDOUT: %.loc8_37.4: init %i32 to %.loc8_37.3 = in_place_init %.loc8_37.2 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %.loc8_37.4: init %i32 to %.loc8_37.3 = in_place_init %.loc8_37.2 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc8_37.5: init %array_type to %.loc8_1 = array_init (%.loc8_37.4) [concrete = constants.%array] // CHECK:STDOUT: %.loc8_39: init %array_type = converted %.loc8_37.1, %.loc8_37.5 [concrete = constants.%array] // CHECK:STDOUT: assign file.%tuple_index.var, %.loc8_39 @@ -329,16 +329,16 @@ fn G(N:! i32) { // CHECK:STDOUT: %.loc10_70.2: %struct_type.a.b = converted %.loc10_70.1, %struct.loc10 [concrete = constants.%struct.a81] // CHECK:STDOUT: %.loc10_71: Core.IntLiteral = struct_access %.loc10_70.2, element1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %array_type.loc10: type = array_type %.loc10_71, %i32.loc10 [concrete = constants.%array_type] -// CHECK:STDOUT: %impl.elem0.loc10: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_39.1: = bound_method %int_0.loc10_37, %impl.elem0.loc10 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc10: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_39.1: = bound_method %int_0.loc10_37, %impl.elem0.loc10 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_39.2: = bound_method %int_0.loc10_37, %specific_fn.loc10 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10: init %i32 = call %bound_method.loc10_39.2(%int_0.loc10_37) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc10_39.2: init %i32 = converted %int_0.loc10_37, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc10_39.2: = bound_method %int_0.loc10_37, %specific_fn.loc10 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10: init %i32 = call %bound_method.loc10_39.2(%int_0.loc10_37) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc10_39.2: init %i32 = converted %int_0.loc10_37, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc10_1: ref %array_type = splice_block file.%struct_access.var [concrete = file.%struct_access.var] {} // CHECK:STDOUT: %int_0.loc10_39: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc10_39.3: ref %i32 = array_index %.loc10_1, %int_0.loc10_39 -// CHECK:STDOUT: %.loc10_39.4: init %i32 to %.loc10_39.3 = in_place_init %.loc10_39.2 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %.loc10_39.4: init %i32 to %.loc10_39.3 = in_place_init %.loc10_39.2 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc10_39.5: init %array_type to %.loc10_1 = array_init (%.loc10_39.4) [concrete = constants.%array] // CHECK:STDOUT: %.loc10_41: init %array_type = converted %.loc10_39.1, %.loc10_39.5 [concrete = constants.%array] // CHECK:STDOUT: assign file.%struct_access.var, %.loc10_41 @@ -351,8 +351,8 @@ fn G(N:! i32) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %array_type.e5f: type = array_type %int_1.5b8, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.34b: type = pattern_type %array_type.e5f [concrete] +// CHECK:STDOUT: %array_type.d27: type = array_type %int_1.5b8, %i32 [concrete] +// CHECK:STDOUT: %pattern_type.97e: type = pattern_type %array_type.d27 [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.4f2: %tuple.type.985 = tuple_value (%int_0) [concrete] @@ -362,56 +362,56 @@ fn G(N:! i32) { // CHECK:STDOUT: %tuple.type.d46: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.869: %tuple.type.d46 = tuple_value (%int_5.64b, %int_7.29f, %int_1.5b8, %int_9.988) [concrete] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete] -// CHECK:STDOUT: %array_type.d7b: type = array_type %int_4, %i32 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %array_type.88c: type = array_type %int_4, %i32 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e3e: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_5.354: %i32 = int_value 5 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.286: = bound_method %int_7.29f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.936: = bound_method %int_7.29f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_7.c44: %i32 = int_value 7 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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] +// CHECK:STDOUT: %int_7.690: %i32 = int_value 7 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = 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] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aba: = bound_method %int_9.988, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.50b: = bound_method %int_9.988, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_9.7e6: %i32 = int_value 9 [concrete] -// CHECK:STDOUT: %array: %array_type.d7b = tuple_value (%int_5.354, %int_7.c44, %int_1.d9c, %int_9.7e6) [concrete] -// CHECK:STDOUT: %.8d2: ref %array_type.d7b = temporary invalid, %array [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f46: = bound_method %int_9.988, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %bound_method.9bf: = bound_method %int_9.988, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_9.056: %i32 = int_value 9 [concrete] +// CHECK:STDOUT: %array: %array_type.88c = tuple_value (%int_5.eef, %int_7.690, %int_1.0c6, %int_9.056) [concrete] +// CHECK:STDOUT: %.653: ref %array_type.88c = temporary invalid, %array [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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %array_index.patt: %pattern_type.34b = ref_binding_pattern array_index [concrete] -// CHECK:STDOUT: %array_index.var_patt: %pattern_type.34b = var_pattern %array_index.patt [concrete] +// CHECK:STDOUT: %array_index.patt: %pattern_type.97e = ref_binding_pattern array_index [concrete] +// CHECK:STDOUT: %array_index.var_patt: %pattern_type.97e = var_pattern %array_index.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %array_index.var: ref %array_type.e5f = var %array_index.var_patt [concrete] -// CHECK:STDOUT: %.loc9: type = splice_block %array_type [concrete = constants.%array_type.e5f] { +// CHECK:STDOUT: %array_index.var: ref %array_type.d27 = var %array_index.var_patt [concrete] +// CHECK:STDOUT: %.loc9: type = splice_block %array_type [concrete = constants.%array_type.d27] { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %array_type: type = array_type %int_1, %i32 [concrete = constants.%array_type.e5f] +// CHECK:STDOUT: %array_type: type = array_type %int_1, %i32 [concrete = constants.%array_type.d27] // CHECK:STDOUT: } -// CHECK:STDOUT: %array_index: ref %array_type.e5f = ref_binding array_index, %array_index.var [concrete = %array_index.var] +// CHECK:STDOUT: %array_index: ref %array_type.d27 = ref_binding array_index, %array_index.var [concrete = %array_index.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -426,55 +426,55 @@ fn G(N:! i32) { // CHECK:STDOUT: %.loc9_65.1: %tuple.type.d46 = tuple_literal (%int_5, %int_7, %int_1.loc9_61, %int_9) [concrete = constants.%tuple.869] // CHECK:STDOUT: %i32.loc9_76: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4] -// CHECK:STDOUT: %array_type: type = array_type %int_4, %i32.loc9_76 [concrete = constants.%array_type.d7b] -// CHECK:STDOUT: %impl.elem0.loc9_65.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_65.1: = bound_method %int_5, %impl.elem0.loc9_65.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c] +// CHECK:STDOUT: %array_type: type = array_type %int_4, %i32.loc9_76 [concrete = constants.%array_type.88c] +// CHECK:STDOUT: %impl.elem0.loc9_65.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_65.1: = bound_method %int_5, %impl.elem0.loc9_65.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f6c] // CHECK:STDOUT: %specific_fn.loc9_65.1: = specific_function %impl.elem0.loc9_65.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_65.2: = bound_method %int_5, %specific_fn.loc9_65.1 [concrete = constants.%bound_method.e3e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_65.1: init %i32 = call %bound_method.loc9_65.2(%int_5) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc9_65.2: init %i32 = converted %int_5, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_65.1 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc9_65.3: ref %array_type.d7b = temporary_storage +// CHECK:STDOUT: %bound_method.loc9_65.2: = bound_method %int_5, %specific_fn.loc9_65.1 [concrete = constants.%bound_method.c9d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_65.1: init %i32 = call %bound_method.loc9_65.2(%int_5) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc9_65.2: init %i32 = converted %int_5, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_65.1 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc9_65.3: ref %array_type.88c = temporary_storage // CHECK:STDOUT: %int_0.loc9_65: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc9_65.4: ref %i32 = array_index %.loc9_65.3, %int_0.loc9_65 -// CHECK:STDOUT: %.loc9_65.5: init %i32 to %.loc9_65.4 = in_place_init %.loc9_65.2 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %impl.elem0.loc9_65.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_65.3: = bound_method %int_7, %impl.elem0.loc9_65.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.286] +// CHECK:STDOUT: %.loc9_65.5: init %i32 to %.loc9_65.4 = in_place_init %.loc9_65.2 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %impl.elem0.loc9_65.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_65.3: = bound_method %int_7, %impl.elem0.loc9_65.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.66b] // CHECK:STDOUT: %specific_fn.loc9_65.2: = specific_function %impl.elem0.loc9_65.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_65.4: = bound_method %int_7, %specific_fn.loc9_65.2 [concrete = constants.%bound_method.936] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_65.2: init %i32 = call %bound_method.loc9_65.4(%int_7) [concrete = constants.%int_7.c44] -// CHECK:STDOUT: %.loc9_65.6: init %i32 = converted %int_7, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_65.2 [concrete = constants.%int_7.c44] +// CHECK:STDOUT: %bound_method.loc9_65.4: = bound_method %int_7, %specific_fn.loc9_65.2 [concrete = constants.%bound_method.7ff] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_65.2: init %i32 = call %bound_method.loc9_65.4(%int_7) [concrete = constants.%int_7.690] +// CHECK:STDOUT: %.loc9_65.6: init %i32 = converted %int_7, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_65.2 [concrete = constants.%int_7.690] // CHECK:STDOUT: %int_1.loc9_65: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_65.7: ref %i32 = array_index %.loc9_65.3, %int_1.loc9_65 -// CHECK:STDOUT: %.loc9_65.8: init %i32 to %.loc9_65.7 = in_place_init %.loc9_65.6 [concrete = constants.%int_7.c44] -// CHECK:STDOUT: %impl.elem0.loc9_65.3: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_65.5: = bound_method %int_1.loc9_61, %impl.elem0.loc9_65.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %.loc9_65.8: init %i32 to %.loc9_65.7 = in_place_init %.loc9_65.6 [concrete = constants.%int_7.690] +// CHECK:STDOUT: %impl.elem0.loc9_65.3: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_65.5: = bound_method %int_1.loc9_61, %impl.elem0.loc9_65.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc9_65.3: = specific_function %impl.elem0.loc9_65.3, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_65.6: = bound_method %int_1.loc9_61, %specific_fn.loc9_65.3 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_65.3: init %i32 = call %bound_method.loc9_65.6(%int_1.loc9_61) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc9_65.9: init %i32 = converted %int_1.loc9_61, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_65.3 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc9_65.6: = bound_method %int_1.loc9_61, %specific_fn.loc9_65.3 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_65.3: init %i32 = call %bound_method.loc9_65.6(%int_1.loc9_61) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_65.9: init %i32 = converted %int_1.loc9_61, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_65.3 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %int_2.loc9_65: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc9_65.10: ref %i32 = array_index %.loc9_65.3, %int_2.loc9_65 -// CHECK:STDOUT: %.loc9_65.11: init %i32 to %.loc9_65.10 = in_place_init %.loc9_65.9 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc9_65.4: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_65.7: = bound_method %int_9, %impl.elem0.loc9_65.4 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aba] +// CHECK:STDOUT: %.loc9_65.11: init %i32 to %.loc9_65.10 = in_place_init %.loc9_65.9 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc9_65.4: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_65.7: = bound_method %int_9, %impl.elem0.loc9_65.4 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f46] // CHECK:STDOUT: %specific_fn.loc9_65.4: = specific_function %impl.elem0.loc9_65.4, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_65.8: = bound_method %int_9, %specific_fn.loc9_65.4 [concrete = constants.%bound_method.50b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_65.4: init %i32 = call %bound_method.loc9_65.8(%int_9) [concrete = constants.%int_9.7e6] -// CHECK:STDOUT: %.loc9_65.12: init %i32 = converted %int_9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_65.4 [concrete = constants.%int_9.7e6] +// CHECK:STDOUT: %bound_method.loc9_65.8: = bound_method %int_9, %specific_fn.loc9_65.4 [concrete = constants.%bound_method.9bf] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_65.4: init %i32 = call %bound_method.loc9_65.8(%int_9) [concrete = constants.%int_9.056] +// CHECK:STDOUT: %.loc9_65.12: init %i32 = converted %int_9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_65.4 [concrete = constants.%int_9.056] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] // CHECK:STDOUT: %.loc9_65.13: ref %i32 = array_index %.loc9_65.3, %int_3 -// CHECK:STDOUT: %.loc9_65.14: init %i32 to %.loc9_65.13 = in_place_init %.loc9_65.12 [concrete = constants.%int_9.7e6] -// CHECK:STDOUT: %.loc9_65.15: init %array_type.d7b to %.loc9_65.3 = array_init (%.loc9_65.5, %.loc9_65.8, %.loc9_65.11, %.loc9_65.14) [concrete = constants.%array] -// CHECK:STDOUT: %.loc9_67.1: init %array_type.d7b = converted %.loc9_65.1, %.loc9_65.15 [concrete = constants.%array] +// CHECK:STDOUT: %.loc9_65.14: init %i32 to %.loc9_65.13 = in_place_init %.loc9_65.12 [concrete = constants.%int_9.056] +// CHECK:STDOUT: %.loc9_65.15: init %array_type.88c to %.loc9_65.3 = array_init (%.loc9_65.5, %.loc9_65.8, %.loc9_65.11, %.loc9_65.14) [concrete = constants.%array] +// CHECK:STDOUT: %.loc9_67.1: init %array_type.88c = converted %.loc9_65.1, %.loc9_65.15 [concrete = constants.%array] // CHECK:STDOUT: %int_2.loc9_85: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %.loc9_67.2: ref %array_type.d7b = temporary %.loc9_65.3, %.loc9_67.1 [concrete = constants.%.8d2] -// CHECK:STDOUT: %impl.elem0.loc9_85: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_85.1: = bound_method %int_2.loc9_85, %impl.elem0.loc9_85 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc9_67.2: ref %array_type.88c = temporary %.loc9_65.3, %.loc9_67.1 [concrete = constants.%.653] +// CHECK:STDOUT: %impl.elem0.loc9_85: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_85.1: = bound_method %int_2.loc9_85, %impl.elem0.loc9_85 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc9_85: = specific_function %impl.elem0.loc9_85, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_85.2: = bound_method %int_2.loc9_85, %specific_fn.loc9_85 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_85: init %i32 = call %bound_method.loc9_85.2(%int_2.loc9_85) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc9_85.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_85 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc9_85.2: %i32 = converted %int_2.loc9_85, %.loc9_85.1 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc9_85.2: = bound_method %int_2.loc9_85, %specific_fn.loc9_85 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_85: init %i32 = call %bound_method.loc9_85.2(%int_2.loc9_85) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc9_85.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_85 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc9_85.2: %i32 = converted %int_2.loc9_85, %.loc9_85.1 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc9_86.1: ref %i32 = array_index %.loc9_67.2, %.loc9_85.2 // CHECK:STDOUT: %.loc9_86.2: %i32 = acquire_value %.loc9_86.1 // CHECK:STDOUT: assign file.%array_index.var, @@ -485,244 +485,244 @@ fn G(N:! i32) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %T.c66: %Destroy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.0e7: %Destroy.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %T.as_type.7e7: type = facet_access_type %T.c66 [symbolic] -// CHECK:STDOUT: %ptr.de4: type = ptr_type %T.as_type.7e7 [symbolic] -// CHECK:STDOUT: %const: type = const_type %T.as_type.7e7 [symbolic] +// CHECK:STDOUT: %T.as_type.700: type = facet_access_type %T.0e7 [symbolic] +// CHECK:STDOUT: %ptr.b37: type = ptr_type %T.as_type.700 [symbolic] +// CHECK:STDOUT: %const: type = const_type %T.as_type.700 [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%ptr.de4, %const) [symbolic] -// CHECK:STDOUT: %tuple.type.138: type = tuple_type (%ptr.de4, %const) [symbolic] -// CHECK:STDOUT: %require_complete.440: = require_complete_type %tuple.type.138 [symbolic] -// CHECK:STDOUT: %pattern_type.abf: type = pattern_type %tuple.type.138 [symbolic] +// CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%ptr.b37, %const) [symbolic] +// CHECK:STDOUT: %tuple.type.cd5: type = tuple_type (%ptr.b37, %const) [symbolic] +// CHECK:STDOUT: %require_complete.3b6: = require_complete_type %tuple.type.cd5 [symbolic] +// CHECK:STDOUT: %pattern_type.02b: type = pattern_type %tuple.type.cd5 [symbolic] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.76d: = lookup_impl_witness %tuple.type.138, @DefaultOrUnformed [symbolic] -// CHECK:STDOUT: %.90f: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%tuple.type.138) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.facet.c31: %DefaultOrUnformed.type = facet_value %tuple.type.138, (%DefaultOrUnformed.lookup_impl_witness.76d) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.368: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.c31) [symbolic] -// CHECK:STDOUT: %.fdd: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.368, %DefaultOrUnformed.facet.c31 [symbolic] -// CHECK:STDOUT: %impl.elem0.069: %.fdd = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.76d, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.2d5: = specific_impl_function %impl.elem0.069, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.c31) [symbolic] -// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T.as_type.7e7} [symbolic] -// CHECK:STDOUT: %require_complete.285: = require_complete_type %struct_type.a [symbolic] -// CHECK:STDOUT: %pattern_type.a65: type = pattern_type %struct_type.a [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.994: = lookup_impl_witness %struct_type.a, @DefaultOrUnformed [symbolic] -// CHECK:STDOUT: %.b1d: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%struct_type.a) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.facet.a30: %DefaultOrUnformed.type = facet_value %struct_type.a, (%DefaultOrUnformed.lookup_impl_witness.994) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.a65: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.a30) [symbolic] -// CHECK:STDOUT: %.8e4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.a65, %DefaultOrUnformed.facet.a30 [symbolic] -// CHECK:STDOUT: %impl.elem0.5b5: %.8e4 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.994, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.382: = specific_impl_function %impl.elem0.5b5, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.a30) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.2ab: = lookup_impl_witness %tuple.type.cd5, @DefaultOrUnformed [symbolic] +// CHECK:STDOUT: %.f98: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%tuple.type.cd5) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.facet.c98: %DefaultOrUnformed.type = facet_value %tuple.type.cd5, (%DefaultOrUnformed.lookup_impl_witness.2ab) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.f2b: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.c98) [symbolic] +// CHECK:STDOUT: %.c04: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.f2b, %DefaultOrUnformed.facet.c98 [symbolic] +// CHECK:STDOUT: %impl.elem0.91d: %.c04 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.2ab, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.495: = specific_impl_function %impl.elem0.91d, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.c98) [symbolic] +// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T.as_type.700} [symbolic] +// CHECK:STDOUT: %require_complete.f8e: = require_complete_type %struct_type.a [symbolic] +// CHECK:STDOUT: %pattern_type.915: type = pattern_type %struct_type.a [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.53f: = lookup_impl_witness %struct_type.a, @DefaultOrUnformed [symbolic] +// CHECK:STDOUT: %.b78: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%struct_type.a) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.facet.103: %DefaultOrUnformed.type = facet_value %struct_type.a, (%DefaultOrUnformed.lookup_impl_witness.53f) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.4de: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.103) [symbolic] +// CHECK:STDOUT: %.883: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.4de, %DefaultOrUnformed.facet.103 [symbolic] +// CHECK:STDOUT: %impl.elem0.178: %.883 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.53f, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.b12: = specific_impl_function %impl.elem0.178, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.103) [symbolic] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete] -// CHECK:STDOUT: %array_type.d0a: type = array_type %int_5, %T.as_type.7e7 [symbolic] -// CHECK:STDOUT: %require_complete.291: = require_complete_type %array_type.d0a [symbolic] -// CHECK:STDOUT: %pattern_type.d35: type = pattern_type %array_type.d0a [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.13a: = lookup_impl_witness %array_type.d0a, @DefaultOrUnformed [symbolic] -// CHECK:STDOUT: %.3b6: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%array_type.d0a) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.facet.575: %DefaultOrUnformed.type = facet_value %array_type.d0a, (%DefaultOrUnformed.lookup_impl_witness.13a) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.516: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.575) [symbolic] -// CHECK:STDOUT: %.b59: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.516, %DefaultOrUnformed.facet.575 [symbolic] -// CHECK:STDOUT: %impl.elem0.b76: %.b59 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.13a, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.997: = specific_impl_function %impl.elem0.b76, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.575) [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.c34: = lookup_impl_witness %array_type.d0a, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.5e7: %Destroy.type = facet_value %array_type.d0a, (%Destroy.lookup_impl_witness.c34) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.dac: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.5e7) [symbolic] -// CHECK:STDOUT: %.7c2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.dac, %Destroy.facet.5e7 [symbolic] -// CHECK:STDOUT: %impl.elem0.098: %.7c2 = impl_witness_access %Destroy.lookup_impl_witness.c34, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.580: = specific_impl_function %impl.elem0.098, @Destroy.WithSelf.Op(%Destroy.facet.5e7) [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.d23: = lookup_impl_witness %struct_type.a, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.9d3: %Destroy.type = facet_value %struct_type.a, (%Destroy.lookup_impl_witness.d23) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.a7d: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.9d3) [symbolic] -// CHECK:STDOUT: %.93d: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.a7d, %Destroy.facet.9d3 [symbolic] -// CHECK:STDOUT: %impl.elem0.26b: %.93d = impl_witness_access %Destroy.lookup_impl_witness.d23, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.687: = specific_impl_function %impl.elem0.26b, @Destroy.WithSelf.Op(%Destroy.facet.9d3) [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.779: = lookup_impl_witness %tuple.type.138, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.2e6: %Destroy.type = facet_value %tuple.type.138, (%Destroy.lookup_impl_witness.779) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.f59: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.2e6) [symbolic] -// CHECK:STDOUT: %.0bf: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.f59, %Destroy.facet.2e6 [symbolic] -// CHECK:STDOUT: %impl.elem0.462: %.0bf = impl_witness_access %Destroy.lookup_impl_witness.779, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.640: = specific_impl_function %impl.elem0.462, @Destroy.WithSelf.Op(%Destroy.facet.2e6) [symbolic] +// CHECK:STDOUT: %array_type.50f: type = array_type %int_5, %T.as_type.700 [symbolic] +// CHECK:STDOUT: %require_complete.f3e: = require_complete_type %array_type.50f [symbolic] +// CHECK:STDOUT: %pattern_type.78a: type = pattern_type %array_type.50f [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.1fb: = lookup_impl_witness %array_type.50f, @DefaultOrUnformed [symbolic] +// CHECK:STDOUT: %.376: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%array_type.50f) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.facet.d60: %DefaultOrUnformed.type = facet_value %array_type.50f, (%DefaultOrUnformed.lookup_impl_witness.1fb) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.e22: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.d60) [symbolic] +// CHECK:STDOUT: %.478: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.e22, %DefaultOrUnformed.facet.d60 [symbolic] +// CHECK:STDOUT: %impl.elem0.276: %.478 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.1fb, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.6bf: = specific_impl_function %impl.elem0.276, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.d60) [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.1f5: = lookup_impl_witness %array_type.50f, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.664: %Destroy.type = facet_value %array_type.50f, (%Destroy.lookup_impl_witness.1f5) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.373: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.664) [symbolic] +// CHECK:STDOUT: %.260: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.373, %Destroy.facet.664 [symbolic] +// CHECK:STDOUT: %impl.elem0.375: %.260 = impl_witness_access %Destroy.lookup_impl_witness.1f5, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.f05: = specific_impl_function %impl.elem0.375, @Destroy.WithSelf.Op(%Destroy.facet.664) [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.7f9: = lookup_impl_witness %struct_type.a, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.aa3: %Destroy.type = facet_value %struct_type.a, (%Destroy.lookup_impl_witness.7f9) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ae9: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.aa3) [symbolic] +// CHECK:STDOUT: %.3c7: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.ae9, %Destroy.facet.aa3 [symbolic] +// CHECK:STDOUT: %impl.elem0.bb8: %.3c7 = impl_witness_access %Destroy.lookup_impl_witness.7f9, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.799: = specific_impl_function %impl.elem0.bb8, @Destroy.WithSelf.Op(%Destroy.facet.aa3) [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.d26: = lookup_impl_witness %tuple.type.cd5, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.7ba: %Destroy.type = facet_value %tuple.type.cd5, (%Destroy.lookup_impl_witness.d26) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.a30: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.7ba) [symbolic] +// CHECK:STDOUT: %.a0a: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.a30, %Destroy.facet.7ba [symbolic] +// CHECK:STDOUT: %impl.elem0.667: %.a0a = impl_witness_access %Destroy.lookup_impl_witness.d26, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.96b: = specific_impl_function %impl.elem0.667, @Destroy.WithSelf.Op(%Destroy.facet.7ba) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %N.bbe: %i32 = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %N.37f: %i32 = symbolic_binding N, 0 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %From: Core.IntLiteral = symbolic_binding From, 0 [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.f73: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.34b: %Int.as.ImplicitAs.impl.Convert.type.f73 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.062: = impl_witness imports.%ImplicitAs.impl_witness_table.eac, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.337: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.64e: %Int.as.ImplicitAs.impl.Convert.type.337 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.ace = facet_value %i32, (%ImplicitAs.impl_witness.062) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b68: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.7a9: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b68, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.bbe, %Int.as.ImplicitAs.impl.Convert.64e [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.64e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method: = bound_method %N.bbe, %Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method(%N.bbe) [symbolic] -// CHECK:STDOUT: %array_type.79d: type = array_type %Int.as.ImplicitAs.impl.Convert.call, %i32 [symbolic] -// CHECK:STDOUT: %require_complete.b66: = require_complete_type %array_type.79d [symbolic] -// CHECK:STDOUT: %pattern_type.c9f: type = pattern_type %array_type.79d [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.7c7: = lookup_impl_witness %array_type.79d, @DefaultOrUnformed [symbolic] -// CHECK:STDOUT: %.677: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%array_type.79d) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.facet.1ff: %DefaultOrUnformed.type = facet_value %array_type.79d, (%DefaultOrUnformed.lookup_impl_witness.7c7) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.283: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.1ff) [symbolic] -// CHECK:STDOUT: %.dca: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.283, %DefaultOrUnformed.facet.1ff [symbolic] -// CHECK:STDOUT: %impl.elem0.bfe: %.dca = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.7c7, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.53a: = specific_impl_function %impl.elem0.bfe, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.1ff) [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.b07: = lookup_impl_witness %array_type.79d, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.8f4: %Destroy.type = facet_value %array_type.79d, (%Destroy.lookup_impl_witness.b07) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.2ff: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.8f4) [symbolic] -// CHECK:STDOUT: %.614: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.2ff, %Destroy.facet.8f4 [symbolic] -// CHECK:STDOUT: %impl.elem0.814: %.614 = impl_witness_access %Destroy.lookup_impl_witness.b07, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.32f: = specific_impl_function %impl.elem0.814, @Destroy.WithSelf.Op(%Destroy.facet.8f4) [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.48d: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.0f9: %Int.as.ImplicitAs.impl.Convert.type.48d = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.416: = impl_witness imports.%ImplicitAs.impl_witness_table.b8b, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.683: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.69e: %Int.as.ImplicitAs.impl.Convert.type.683 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.7cb = facet_value %i32, (%ImplicitAs.impl_witness.416) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.dc6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.b08: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.dc6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.37f, %Int.as.ImplicitAs.impl.Convert.69e [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.69e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method: = bound_method %N.37f, %Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method(%N.37f) [symbolic] +// CHECK:STDOUT: %array_type.359: type = array_type %Int.as.ImplicitAs.impl.Convert.call, %i32 [symbolic] +// CHECK:STDOUT: %require_complete.f47: = require_complete_type %array_type.359 [symbolic] +// CHECK:STDOUT: %pattern_type.486: type = pattern_type %array_type.359 [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.5c0: = lookup_impl_witness %array_type.359, @DefaultOrUnformed [symbolic] +// CHECK:STDOUT: %.63b: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%array_type.359) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.facet.b1c: %DefaultOrUnformed.type = facet_value %array_type.359, (%DefaultOrUnformed.lookup_impl_witness.5c0) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.d4c: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.b1c) [symbolic] +// CHECK:STDOUT: %.608: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.d4c, %DefaultOrUnformed.facet.b1c [symbolic] +// CHECK:STDOUT: %impl.elem0.37d: %.608 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.5c0, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.b63: = specific_impl_function %impl.elem0.37d, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.b1c) [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.822: = lookup_impl_witness %array_type.359, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.a58: %Destroy.type = facet_value %array_type.359, (%Destroy.lookup_impl_witness.822) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.6c9: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.a58) [symbolic] +// CHECK:STDOUT: %.a73: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.6c9, %Destroy.facet.a58 [symbolic] +// CHECK:STDOUT: %impl.elem0.fa7: %.a73 = impl_witness_access %Destroy.lookup_impl_witness.822, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.075: = specific_impl_function %impl.elem0.fa7, @Destroy.WithSelf.Op(%Destroy.facet.a58) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.835: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.f73) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.34b)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.eac = impl_witness_table (%Core.import_ref.835), @Int.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.32e: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.48d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.0f9)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b8b = impl_witness_table (%Core.import_ref.32e), @Int.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc4_7.2: %Destroy.type) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc6_19.2: type = facet_access_type %T.loc4_7.1 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.7e7)] -// CHECK:STDOUT: %ptr.loc6_19.2: type = ptr_type %T.as_type.loc6_19.2 [symbolic = %ptr.loc6_19.2 (constants.%ptr.de4)] +// CHECK:STDOUT: %T.as_type.loc6_19.2: type = facet_access_type %T.loc4_7.1 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.700)] +// CHECK:STDOUT: %ptr.loc6_19.2: type = ptr_type %T.as_type.loc6_19.2 [symbolic = %ptr.loc6_19.2 (constants.%ptr.b37)] // CHECK:STDOUT: %const.loc6_22.2: type = const_type %T.as_type.loc6_19.2 [symbolic = %const.loc6_22.2 (constants.%const)] // CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%ptr.loc6_19.2, %const.loc6_22.2) [symbolic = %tuple (constants.%tuple)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc6_19.2, %const.loc6_22.2) [symbolic = %tuple.type (constants.%tuple.type.138)] -// CHECK:STDOUT: %require_complete.loc6: = require_complete_type %tuple.type [symbolic = %require_complete.loc6 (constants.%require_complete.440)] -// CHECK:STDOUT: %pattern_type.loc6: type = pattern_type %tuple.type [symbolic = %pattern_type.loc6 (constants.%pattern_type.abf)] -// CHECK:STDOUT: %.loc6_30.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%tuple.type) [symbolic = %.loc6_30.3 (constants.%.90f)] -// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.loc6: = lookup_impl_witness %tuple.type, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness.loc6 (constants.%DefaultOrUnformed.lookup_impl_witness.76d)] -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6_30.2: %DefaultOrUnformed.type = facet_value %tuple.type, (%DefaultOrUnformed.lookup_impl_witness.loc6) [symbolic = %DefaultOrUnformed.facet.loc6_30.2 (constants.%DefaultOrUnformed.facet.c31)] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.loc6: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc6_30.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type.loc6 (constants.%DefaultOrUnformed.WithSelf.Op.type.368)] -// CHECK:STDOUT: %.loc6_30.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.loc6, %DefaultOrUnformed.facet.loc6_30.2 [symbolic = %.loc6_30.4 (constants.%.fdd)] -// CHECK:STDOUT: %impl.elem0.loc6_30.2: @F.%.loc6_30.4 (%.fdd) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.loc6, element0 [symbolic = %impl.elem0.loc6_30.2 (constants.%impl.elem0.069)] -// CHECK:STDOUT: %specific_impl_fn.loc6_30.2: = specific_impl_function %impl.elem0.loc6_30.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc6_30.2) [symbolic = %specific_impl_fn.loc6_30.2 (constants.%specific_impl_fn.2d5)] -// CHECK:STDOUT: %struct_type.a.loc7_23.2: type = struct_type {.a: @F.%T.as_type.loc6_19.2 (%T.as_type.7e7)} [symbolic = %struct_type.a.loc7_23.2 (constants.%struct_type.a)] -// CHECK:STDOUT: %require_complete.loc7: = require_complete_type %struct_type.a.loc7_23.2 [symbolic = %require_complete.loc7 (constants.%require_complete.285)] -// CHECK:STDOUT: %pattern_type.loc7: type = pattern_type %struct_type.a.loc7_23.2 [symbolic = %pattern_type.loc7 (constants.%pattern_type.a65)] -// CHECK:STDOUT: %.loc7_24.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%struct_type.a.loc7_23.2) [symbolic = %.loc7_24.3 (constants.%.b1d)] -// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.loc7: = lookup_impl_witness %struct_type.a.loc7_23.2, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness.loc7 (constants.%DefaultOrUnformed.lookup_impl_witness.994)] -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7_24.2: %DefaultOrUnformed.type = facet_value %struct_type.a.loc7_23.2, (%DefaultOrUnformed.lookup_impl_witness.loc7) [symbolic = %DefaultOrUnformed.facet.loc7_24.2 (constants.%DefaultOrUnformed.facet.a30)] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.loc7: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc7_24.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type.loc7 (constants.%DefaultOrUnformed.WithSelf.Op.type.a65)] -// CHECK:STDOUT: %.loc7_24.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.loc7, %DefaultOrUnformed.facet.loc7_24.2 [symbolic = %.loc7_24.4 (constants.%.8e4)] -// CHECK:STDOUT: %impl.elem0.loc7_24.2: @F.%.loc7_24.4 (%.8e4) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.loc7, element0 [symbolic = %impl.elem0.loc7_24.2 (constants.%impl.elem0.5b5)] -// CHECK:STDOUT: %specific_impl_fn.loc7_24.2: = specific_impl_function %impl.elem0.loc7_24.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc7_24.2) [symbolic = %specific_impl_fn.loc7_24.2 (constants.%specific_impl_fn.382)] -// CHECK:STDOUT: %array_type.loc8_27.2: type = array_type constants.%int_5, %T.as_type.loc6_19.2 [symbolic = %array_type.loc8_27.2 (constants.%array_type.d0a)] -// CHECK:STDOUT: %require_complete.loc8: = require_complete_type %array_type.loc8_27.2 [symbolic = %require_complete.loc8 (constants.%require_complete.291)] -// CHECK:STDOUT: %pattern_type.loc8: type = pattern_type %array_type.loc8_27.2 [symbolic = %pattern_type.loc8 (constants.%pattern_type.d35)] -// CHECK:STDOUT: %.loc8_28.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%array_type.loc8_27.2) [symbolic = %.loc8_28.3 (constants.%.3b6)] -// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.loc8: = lookup_impl_witness %array_type.loc8_27.2, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness.loc8 (constants.%DefaultOrUnformed.lookup_impl_witness.13a)] -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8_28.2: %DefaultOrUnformed.type = facet_value %array_type.loc8_27.2, (%DefaultOrUnformed.lookup_impl_witness.loc8) [symbolic = %DefaultOrUnformed.facet.loc8_28.2 (constants.%DefaultOrUnformed.facet.575)] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.loc8: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc8_28.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type.loc8 (constants.%DefaultOrUnformed.WithSelf.Op.type.516)] -// CHECK:STDOUT: %.loc8_28.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.loc8, %DefaultOrUnformed.facet.loc8_28.2 [symbolic = %.loc8_28.4 (constants.%.b59)] -// CHECK:STDOUT: %impl.elem0.loc8_28.2: @F.%.loc8_28.4 (%.b59) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.loc8, element0 [symbolic = %impl.elem0.loc8_28.2 (constants.%impl.elem0.b76)] -// CHECK:STDOUT: %specific_impl_fn.loc8_28.2: = specific_impl_function %impl.elem0.loc8_28.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc8_28.2) [symbolic = %specific_impl_fn.loc8_28.2 (constants.%specific_impl_fn.997)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc8: = lookup_impl_witness %array_type.loc8_27.2, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc8 (constants.%Destroy.lookup_impl_witness.c34)] -// CHECK:STDOUT: %Destroy.facet.loc8: %Destroy.type = facet_value %array_type.loc8_27.2, (%Destroy.lookup_impl_witness.loc8) [symbolic = %Destroy.facet.loc8 (constants.%Destroy.facet.5e7)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc8: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc8) [symbolic = %Destroy.WithSelf.Op.type.loc8 (constants.%Destroy.WithSelf.Op.type.dac)] -// CHECK:STDOUT: %.loc8_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.loc8, %Destroy.facet.loc8 [symbolic = %.loc8_3.2 (constants.%.7c2)] -// CHECK:STDOUT: %impl.elem0.loc8_3.2: @F.%.loc8_3.2 (%.7c2) = impl_witness_access %Destroy.lookup_impl_witness.loc8, element0 [symbolic = %impl.elem0.loc8_3.2 (constants.%impl.elem0.098)] -// CHECK:STDOUT: %specific_impl_fn.loc8_3.2: = specific_impl_function %impl.elem0.loc8_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc8) [symbolic = %specific_impl_fn.loc8_3.2 (constants.%specific_impl_fn.580)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc7: = lookup_impl_witness %struct_type.a.loc7_23.2, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc7 (constants.%Destroy.lookup_impl_witness.d23)] -// CHECK:STDOUT: %Destroy.facet.loc7: %Destroy.type = facet_value %struct_type.a.loc7_23.2, (%Destroy.lookup_impl_witness.loc7) [symbolic = %Destroy.facet.loc7 (constants.%Destroy.facet.9d3)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc7: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc7) [symbolic = %Destroy.WithSelf.Op.type.loc7 (constants.%Destroy.WithSelf.Op.type.a7d)] -// CHECK:STDOUT: %.loc7_3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.loc7, %Destroy.facet.loc7 [symbolic = %.loc7_3 (constants.%.93d)] -// CHECK:STDOUT: %impl.elem0.loc7_3.2: @F.%.loc7_3 (%.93d) = impl_witness_access %Destroy.lookup_impl_witness.loc7, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0.26b)] -// CHECK:STDOUT: %specific_impl_fn.loc7_3.2: = specific_impl_function %impl.elem0.loc7_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc7) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.687)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc6: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc6 (constants.%Destroy.lookup_impl_witness.779)] -// CHECK:STDOUT: %Destroy.facet.loc6: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness.loc6) [symbolic = %Destroy.facet.loc6 (constants.%Destroy.facet.2e6)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc6: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc6) [symbolic = %Destroy.WithSelf.Op.type.loc6 (constants.%Destroy.WithSelf.Op.type.f59)] -// CHECK:STDOUT: %.loc6_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.loc6, %Destroy.facet.loc6 [symbolic = %.loc6_3.2 (constants.%.0bf)] -// CHECK:STDOUT: %impl.elem0.loc6_3.2: @F.%.loc6_3.2 (%.0bf) = impl_witness_access %Destroy.lookup_impl_witness.loc6, element0 [symbolic = %impl.elem0.loc6_3.2 (constants.%impl.elem0.462)] -// CHECK:STDOUT: %specific_impl_fn.loc6_3.2: = specific_impl_function %impl.elem0.loc6_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc6) [symbolic = %specific_impl_fn.loc6_3.2 (constants.%specific_impl_fn.640)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc6_19.2, %const.loc6_22.2) [symbolic = %tuple.type (constants.%tuple.type.cd5)] +// CHECK:STDOUT: %require_complete.loc6: = require_complete_type %tuple.type [symbolic = %require_complete.loc6 (constants.%require_complete.3b6)] +// CHECK:STDOUT: %pattern_type.loc6: type = pattern_type %tuple.type [symbolic = %pattern_type.loc6 (constants.%pattern_type.02b)] +// CHECK:STDOUT: %.loc6_30.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%tuple.type) [symbolic = %.loc6_30.3 (constants.%.f98)] +// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.loc6: = lookup_impl_witness %tuple.type, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness.loc6 (constants.%DefaultOrUnformed.lookup_impl_witness.2ab)] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6_30.2: %DefaultOrUnformed.type = facet_value %tuple.type, (%DefaultOrUnformed.lookup_impl_witness.loc6) [symbolic = %DefaultOrUnformed.facet.loc6_30.2 (constants.%DefaultOrUnformed.facet.c98)] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.loc6: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc6_30.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type.loc6 (constants.%DefaultOrUnformed.WithSelf.Op.type.f2b)] +// CHECK:STDOUT: %.loc6_30.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.loc6, %DefaultOrUnformed.facet.loc6_30.2 [symbolic = %.loc6_30.4 (constants.%.c04)] +// CHECK:STDOUT: %impl.elem0.loc6_30.2: @F.%.loc6_30.4 (%.c04) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.loc6, element0 [symbolic = %impl.elem0.loc6_30.2 (constants.%impl.elem0.91d)] +// CHECK:STDOUT: %specific_impl_fn.loc6_30.2: = specific_impl_function %impl.elem0.loc6_30.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc6_30.2) [symbolic = %specific_impl_fn.loc6_30.2 (constants.%specific_impl_fn.495)] +// CHECK:STDOUT: %struct_type.a.loc7_23.2: type = struct_type {.a: @F.%T.as_type.loc6_19.2 (%T.as_type.700)} [symbolic = %struct_type.a.loc7_23.2 (constants.%struct_type.a)] +// CHECK:STDOUT: %require_complete.loc7: = require_complete_type %struct_type.a.loc7_23.2 [symbolic = %require_complete.loc7 (constants.%require_complete.f8e)] +// CHECK:STDOUT: %pattern_type.loc7: type = pattern_type %struct_type.a.loc7_23.2 [symbolic = %pattern_type.loc7 (constants.%pattern_type.915)] +// CHECK:STDOUT: %.loc7_24.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%struct_type.a.loc7_23.2) [symbolic = %.loc7_24.3 (constants.%.b78)] +// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.loc7: = lookup_impl_witness %struct_type.a.loc7_23.2, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness.loc7 (constants.%DefaultOrUnformed.lookup_impl_witness.53f)] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7_24.2: %DefaultOrUnformed.type = facet_value %struct_type.a.loc7_23.2, (%DefaultOrUnformed.lookup_impl_witness.loc7) [symbolic = %DefaultOrUnformed.facet.loc7_24.2 (constants.%DefaultOrUnformed.facet.103)] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.loc7: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc7_24.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type.loc7 (constants.%DefaultOrUnformed.WithSelf.Op.type.4de)] +// CHECK:STDOUT: %.loc7_24.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.loc7, %DefaultOrUnformed.facet.loc7_24.2 [symbolic = %.loc7_24.4 (constants.%.883)] +// CHECK:STDOUT: %impl.elem0.loc7_24.2: @F.%.loc7_24.4 (%.883) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.loc7, element0 [symbolic = %impl.elem0.loc7_24.2 (constants.%impl.elem0.178)] +// CHECK:STDOUT: %specific_impl_fn.loc7_24.2: = specific_impl_function %impl.elem0.loc7_24.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc7_24.2) [symbolic = %specific_impl_fn.loc7_24.2 (constants.%specific_impl_fn.b12)] +// CHECK:STDOUT: %array_type.loc8_27.2: type = array_type constants.%int_5, %T.as_type.loc6_19.2 [symbolic = %array_type.loc8_27.2 (constants.%array_type.50f)] +// CHECK:STDOUT: %require_complete.loc8: = require_complete_type %array_type.loc8_27.2 [symbolic = %require_complete.loc8 (constants.%require_complete.f3e)] +// CHECK:STDOUT: %pattern_type.loc8: type = pattern_type %array_type.loc8_27.2 [symbolic = %pattern_type.loc8 (constants.%pattern_type.78a)] +// CHECK:STDOUT: %.loc8_28.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%array_type.loc8_27.2) [symbolic = %.loc8_28.3 (constants.%.376)] +// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.loc8: = lookup_impl_witness %array_type.loc8_27.2, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness.loc8 (constants.%DefaultOrUnformed.lookup_impl_witness.1fb)] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8_28.2: %DefaultOrUnformed.type = facet_value %array_type.loc8_27.2, (%DefaultOrUnformed.lookup_impl_witness.loc8) [symbolic = %DefaultOrUnformed.facet.loc8_28.2 (constants.%DefaultOrUnformed.facet.d60)] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.loc8: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc8_28.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type.loc8 (constants.%DefaultOrUnformed.WithSelf.Op.type.e22)] +// CHECK:STDOUT: %.loc8_28.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.loc8, %DefaultOrUnformed.facet.loc8_28.2 [symbolic = %.loc8_28.4 (constants.%.478)] +// CHECK:STDOUT: %impl.elem0.loc8_28.2: @F.%.loc8_28.4 (%.478) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.loc8, element0 [symbolic = %impl.elem0.loc8_28.2 (constants.%impl.elem0.276)] +// CHECK:STDOUT: %specific_impl_fn.loc8_28.2: = specific_impl_function %impl.elem0.loc8_28.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc8_28.2) [symbolic = %specific_impl_fn.loc8_28.2 (constants.%specific_impl_fn.6bf)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc8: = lookup_impl_witness %array_type.loc8_27.2, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc8 (constants.%Destroy.lookup_impl_witness.1f5)] +// CHECK:STDOUT: %Destroy.facet.loc8: %Destroy.type = facet_value %array_type.loc8_27.2, (%Destroy.lookup_impl_witness.loc8) [symbolic = %Destroy.facet.loc8 (constants.%Destroy.facet.664)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc8: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc8) [symbolic = %Destroy.WithSelf.Op.type.loc8 (constants.%Destroy.WithSelf.Op.type.373)] +// CHECK:STDOUT: %.loc8_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.loc8, %Destroy.facet.loc8 [symbolic = %.loc8_3.2 (constants.%.260)] +// CHECK:STDOUT: %impl.elem0.loc8_3.2: @F.%.loc8_3.2 (%.260) = impl_witness_access %Destroy.lookup_impl_witness.loc8, element0 [symbolic = %impl.elem0.loc8_3.2 (constants.%impl.elem0.375)] +// CHECK:STDOUT: %specific_impl_fn.loc8_3.2: = specific_impl_function %impl.elem0.loc8_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc8) [symbolic = %specific_impl_fn.loc8_3.2 (constants.%specific_impl_fn.f05)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc7: = lookup_impl_witness %struct_type.a.loc7_23.2, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc7 (constants.%Destroy.lookup_impl_witness.7f9)] +// CHECK:STDOUT: %Destroy.facet.loc7: %Destroy.type = facet_value %struct_type.a.loc7_23.2, (%Destroy.lookup_impl_witness.loc7) [symbolic = %Destroy.facet.loc7 (constants.%Destroy.facet.aa3)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc7: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc7) [symbolic = %Destroy.WithSelf.Op.type.loc7 (constants.%Destroy.WithSelf.Op.type.ae9)] +// CHECK:STDOUT: %.loc7_3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.loc7, %Destroy.facet.loc7 [symbolic = %.loc7_3 (constants.%.3c7)] +// CHECK:STDOUT: %impl.elem0.loc7_3.2: @F.%.loc7_3 (%.3c7) = impl_witness_access %Destroy.lookup_impl_witness.loc7, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0.bb8)] +// CHECK:STDOUT: %specific_impl_fn.loc7_3.2: = specific_impl_function %impl.elem0.loc7_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc7) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.799)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc6: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc6 (constants.%Destroy.lookup_impl_witness.d26)] +// CHECK:STDOUT: %Destroy.facet.loc6: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness.loc6) [symbolic = %Destroy.facet.loc6 (constants.%Destroy.facet.7ba)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc6: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc6) [symbolic = %Destroy.WithSelf.Op.type.loc6 (constants.%Destroy.WithSelf.Op.type.a30)] +// CHECK:STDOUT: %.loc6_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.loc6, %Destroy.facet.loc6 [symbolic = %.loc6_3.2 (constants.%.a0a)] +// CHECK:STDOUT: %impl.elem0.loc6_3.2: @F.%.loc6_3.2 (%.a0a) = impl_witness_access %Destroy.lookup_impl_witness.loc6, element0 [symbolic = %impl.elem0.loc6_3.2 (constants.%impl.elem0.667)] +// CHECK:STDOUT: %specific_impl_fn.loc6_3.2: = specific_impl_function %impl.elem0.loc6_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc6) [symbolic = %specific_impl_fn.loc6_3.2 (constants.%specific_impl_fn.96b)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %u.patt: @F.%pattern_type.loc6 (%pattern_type.abf) = ref_binding_pattern u [concrete] -// CHECK:STDOUT: %u.var_patt: @F.%pattern_type.loc6 (%pattern_type.abf) = var_pattern %u.patt [concrete] +// CHECK:STDOUT: %u.patt: @F.%pattern_type.loc6 (%pattern_type.02b) = ref_binding_pattern u [concrete] +// CHECK:STDOUT: %u.var_patt: @F.%pattern_type.loc6 (%pattern_type.02b) = var_pattern %u.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %u.var: ref @F.%tuple.type (%tuple.type.138) = var %u.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6_30.1: %DefaultOrUnformed.type = facet_value constants.%tuple.type.138, (constants.%DefaultOrUnformed.lookup_impl_witness.76d) [symbolic = %DefaultOrUnformed.facet.loc6_30.2 (constants.%DefaultOrUnformed.facet.c31)] -// CHECK:STDOUT: %.loc6_30.1: %DefaultOrUnformed.type = converted constants.%tuple.type.138, %DefaultOrUnformed.facet.loc6_30.1 [symbolic = %DefaultOrUnformed.facet.loc6_30.2 (constants.%DefaultOrUnformed.facet.c31)] -// CHECK:STDOUT: %as_type.loc6: type = facet_access_type %.loc6_30.1 [symbolic = %tuple.type (constants.%tuple.type.138)] -// CHECK:STDOUT: %.loc6_30.2: type = converted %.loc6_30.1, %as_type.loc6 [symbolic = %tuple.type (constants.%tuple.type.138)] -// CHECK:STDOUT: %impl.elem0.loc6_30.1: @F.%.loc6_30.4 (%.fdd) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness.76d, element0 [symbolic = %impl.elem0.loc6_30.2 (constants.%impl.elem0.069)] -// CHECK:STDOUT: %specific_impl_fn.loc6_30.1: = specific_impl_function %impl.elem0.loc6_30.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet.c31) [symbolic = %specific_impl_fn.loc6_30.2 (constants.%specific_impl_fn.2d5)] -// CHECK:STDOUT: %.loc6_3.1: ref @F.%tuple.type (%tuple.type.138) = splice_block %u.var {} -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.call.loc6: init @F.%tuple.type (%tuple.type.138) to %.loc6_3.1 = call %specific_impl_fn.loc6_30.1() +// CHECK:STDOUT: %u.var: ref @F.%tuple.type (%tuple.type.cd5) = var %u.var_patt +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6_30.1: %DefaultOrUnformed.type = facet_value constants.%tuple.type.cd5, (constants.%DefaultOrUnformed.lookup_impl_witness.2ab) [symbolic = %DefaultOrUnformed.facet.loc6_30.2 (constants.%DefaultOrUnformed.facet.c98)] +// CHECK:STDOUT: %.loc6_30.1: %DefaultOrUnformed.type = converted constants.%tuple.type.cd5, %DefaultOrUnformed.facet.loc6_30.1 [symbolic = %DefaultOrUnformed.facet.loc6_30.2 (constants.%DefaultOrUnformed.facet.c98)] +// CHECK:STDOUT: %as_type.loc6: type = facet_access_type %.loc6_30.1 [symbolic = %tuple.type (constants.%tuple.type.cd5)] +// CHECK:STDOUT: %.loc6_30.2: type = converted %.loc6_30.1, %as_type.loc6 [symbolic = %tuple.type (constants.%tuple.type.cd5)] +// CHECK:STDOUT: %impl.elem0.loc6_30.1: @F.%.loc6_30.4 (%.c04) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness.2ab, element0 [symbolic = %impl.elem0.loc6_30.2 (constants.%impl.elem0.91d)] +// CHECK:STDOUT: %specific_impl_fn.loc6_30.1: = specific_impl_function %impl.elem0.loc6_30.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet.c98) [symbolic = %specific_impl_fn.loc6_30.2 (constants.%specific_impl_fn.495)] +// CHECK:STDOUT: %.loc6_3.1: ref @F.%tuple.type (%tuple.type.cd5) = splice_block %u.var {} +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.call.loc6: init @F.%tuple.type (%tuple.type.cd5) to %.loc6_3.1 = call %specific_impl_fn.loc6_30.1() // CHECK:STDOUT: assign %u.var, %DefaultOrUnformed.WithSelf.Op.call.loc6 -// CHECK:STDOUT: %.loc6_29.1: type = splice_block %.loc6_29.3 [symbolic = %tuple.type (constants.%tuple.type.138)] { -// CHECK:STDOUT: %T.ref.loc6_18: %Destroy.type = name_ref T, %T.loc4_7.2 [symbolic = %T.loc4_7.1 (constants.%T.c66)] -// CHECK:STDOUT: %T.as_type.loc6_19.1: type = facet_access_type %T.ref.loc6_18 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.7e7)] -// CHECK:STDOUT: %.loc6_19: type = converted %T.ref.loc6_18, %T.as_type.loc6_19.1 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.7e7)] -// CHECK:STDOUT: %ptr.loc6_19.1: type = ptr_type %.loc6_19 [symbolic = %ptr.loc6_19.2 (constants.%ptr.de4)] -// CHECK:STDOUT: %T.ref.loc6_28: %Destroy.type = name_ref T, %T.loc4_7.2 [symbolic = %T.loc4_7.1 (constants.%T.c66)] -// CHECK:STDOUT: %T.as_type.loc6_22: type = facet_access_type %T.ref.loc6_28 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.7e7)] -// CHECK:STDOUT: %.loc6_22: type = converted %T.ref.loc6_28, %T.as_type.loc6_22 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.7e7)] +// CHECK:STDOUT: %.loc6_29.1: type = splice_block %.loc6_29.3 [symbolic = %tuple.type (constants.%tuple.type.cd5)] { +// CHECK:STDOUT: %T.ref.loc6_18: %Destroy.type = name_ref T, %T.loc4_7.2 [symbolic = %T.loc4_7.1 (constants.%T.0e7)] +// CHECK:STDOUT: %T.as_type.loc6_19.1: type = facet_access_type %T.ref.loc6_18 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.700)] +// CHECK:STDOUT: %.loc6_19: type = converted %T.ref.loc6_18, %T.as_type.loc6_19.1 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.700)] +// CHECK:STDOUT: %ptr.loc6_19.1: type = ptr_type %.loc6_19 [symbolic = %ptr.loc6_19.2 (constants.%ptr.b37)] +// CHECK:STDOUT: %T.ref.loc6_28: %Destroy.type = name_ref T, %T.loc4_7.2 [symbolic = %T.loc4_7.1 (constants.%T.0e7)] +// CHECK:STDOUT: %T.as_type.loc6_22: type = facet_access_type %T.ref.loc6_28 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.700)] +// CHECK:STDOUT: %.loc6_22: type = converted %T.ref.loc6_28, %T.as_type.loc6_22 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.700)] // CHECK:STDOUT: %const.loc6_22.1: type = const_type %.loc6_22 [symbolic = %const.loc6_22.2 (constants.%const)] // CHECK:STDOUT: %.loc6_29.2: %tuple.type.24b = tuple_literal (%ptr.loc6_19.1, %const.loc6_22.1) [symbolic = %tuple (constants.%tuple)] -// CHECK:STDOUT: %.loc6_29.3: type = converted %.loc6_29.2, constants.%tuple.type.138 [symbolic = %tuple.type (constants.%tuple.type.138)] +// CHECK:STDOUT: %.loc6_29.3: type = converted %.loc6_29.2, constants.%tuple.type.cd5 [symbolic = %tuple.type (constants.%tuple.type.cd5)] // CHECK:STDOUT: } -// CHECK:STDOUT: %u: ref @F.%tuple.type (%tuple.type.138) = ref_binding u, %u.var +// CHECK:STDOUT: %u: ref @F.%tuple.type (%tuple.type.cd5) = ref_binding u, %u.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: @F.%pattern_type.loc7 (%pattern_type.a65) = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: @F.%pattern_type.loc7 (%pattern_type.a65) = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: @F.%pattern_type.loc7 (%pattern_type.915) = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: @F.%pattern_type.loc7 (%pattern_type.915) = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref @F.%struct_type.a.loc7_23.2 (%struct_type.a) = var %v.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7_24.1: %DefaultOrUnformed.type = facet_value constants.%struct_type.a, (constants.%DefaultOrUnformed.lookup_impl_witness.994) [symbolic = %DefaultOrUnformed.facet.loc7_24.2 (constants.%DefaultOrUnformed.facet.a30)] -// CHECK:STDOUT: %.loc7_24.1: %DefaultOrUnformed.type = converted constants.%struct_type.a, %DefaultOrUnformed.facet.loc7_24.1 [symbolic = %DefaultOrUnformed.facet.loc7_24.2 (constants.%DefaultOrUnformed.facet.a30)] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7_24.1: %DefaultOrUnformed.type = facet_value constants.%struct_type.a, (constants.%DefaultOrUnformed.lookup_impl_witness.53f) [symbolic = %DefaultOrUnformed.facet.loc7_24.2 (constants.%DefaultOrUnformed.facet.103)] +// CHECK:STDOUT: %.loc7_24.1: %DefaultOrUnformed.type = converted constants.%struct_type.a, %DefaultOrUnformed.facet.loc7_24.1 [symbolic = %DefaultOrUnformed.facet.loc7_24.2 (constants.%DefaultOrUnformed.facet.103)] // CHECK:STDOUT: %as_type.loc7: type = facet_access_type %.loc7_24.1 [symbolic = %struct_type.a.loc7_23.2 (constants.%struct_type.a)] // CHECK:STDOUT: %.loc7_24.2: type = converted %.loc7_24.1, %as_type.loc7 [symbolic = %struct_type.a.loc7_23.2 (constants.%struct_type.a)] -// CHECK:STDOUT: %impl.elem0.loc7_24.1: @F.%.loc7_24.4 (%.8e4) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness.994, element0 [symbolic = %impl.elem0.loc7_24.2 (constants.%impl.elem0.5b5)] -// CHECK:STDOUT: %specific_impl_fn.loc7_24.1: = specific_impl_function %impl.elem0.loc7_24.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet.a30) [symbolic = %specific_impl_fn.loc7_24.2 (constants.%specific_impl_fn.382)] +// CHECK:STDOUT: %impl.elem0.loc7_24.1: @F.%.loc7_24.4 (%.883) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness.53f, element0 [symbolic = %impl.elem0.loc7_24.2 (constants.%impl.elem0.178)] +// CHECK:STDOUT: %specific_impl_fn.loc7_24.1: = specific_impl_function %impl.elem0.loc7_24.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet.103) [symbolic = %specific_impl_fn.loc7_24.2 (constants.%specific_impl_fn.b12)] // CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.call.loc7: init @F.%struct_type.a.loc7_23.2 (%struct_type.a) = call %specific_impl_fn.loc7_24.1() // CHECK:STDOUT: assign %v.var, %DefaultOrUnformed.WithSelf.Op.call.loc7 // CHECK:STDOUT: %.loc7_23: type = splice_block %struct_type.a.loc7_23.1 [symbolic = %struct_type.a.loc7_23.2 (constants.%struct_type.a)] { -// CHECK:STDOUT: %T.ref.loc7: %Destroy.type = name_ref T, %T.loc4_7.2 [symbolic = %T.loc4_7.1 (constants.%T.c66)] -// CHECK:STDOUT: %T.as_type.loc7: type = facet_access_type %T.ref.loc7 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.7e7)] -// CHECK:STDOUT: %.loc7_22: type = converted %T.ref.loc7, %T.as_type.loc7 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.7e7)] -// CHECK:STDOUT: %struct_type.a.loc7_23.1: type = struct_type {.a: @F.%T.as_type.loc6_19.2 (%T.as_type.7e7)} [symbolic = %struct_type.a.loc7_23.2 (constants.%struct_type.a)] +// CHECK:STDOUT: %T.ref.loc7: %Destroy.type = name_ref T, %T.loc4_7.2 [symbolic = %T.loc4_7.1 (constants.%T.0e7)] +// CHECK:STDOUT: %T.as_type.loc7: type = facet_access_type %T.ref.loc7 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.700)] +// CHECK:STDOUT: %.loc7_22: type = converted %T.ref.loc7, %T.as_type.loc7 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.700)] +// CHECK:STDOUT: %struct_type.a.loc7_23.1: type = struct_type {.a: @F.%T.as_type.loc6_19.2 (%T.as_type.700)} [symbolic = %struct_type.a.loc7_23.2 (constants.%struct_type.a)] // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref @F.%struct_type.a.loc7_23.2 (%struct_type.a) = ref_binding v, %v.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %w.patt: @F.%pattern_type.loc8 (%pattern_type.d35) = ref_binding_pattern w [concrete] -// CHECK:STDOUT: %w.var_patt: @F.%pattern_type.loc8 (%pattern_type.d35) = var_pattern %w.patt [concrete] +// CHECK:STDOUT: %w.patt: @F.%pattern_type.loc8 (%pattern_type.78a) = ref_binding_pattern w [concrete] +// CHECK:STDOUT: %w.var_patt: @F.%pattern_type.loc8 (%pattern_type.78a) = var_pattern %w.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %w.var: ref @F.%array_type.loc8_27.2 (%array_type.d0a) = var %w.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8_28.1: %DefaultOrUnformed.type = facet_value constants.%array_type.d0a, (constants.%DefaultOrUnformed.lookup_impl_witness.13a) [symbolic = %DefaultOrUnformed.facet.loc8_28.2 (constants.%DefaultOrUnformed.facet.575)] -// CHECK:STDOUT: %.loc8_28.1: %DefaultOrUnformed.type = converted constants.%array_type.d0a, %DefaultOrUnformed.facet.loc8_28.1 [symbolic = %DefaultOrUnformed.facet.loc8_28.2 (constants.%DefaultOrUnformed.facet.575)] -// CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_28.1 [symbolic = %array_type.loc8_27.2 (constants.%array_type.d0a)] -// CHECK:STDOUT: %.loc8_28.2: type = converted %.loc8_28.1, %as_type.loc8 [symbolic = %array_type.loc8_27.2 (constants.%array_type.d0a)] -// CHECK:STDOUT: %impl.elem0.loc8_28.1: @F.%.loc8_28.4 (%.b59) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness.13a, element0 [symbolic = %impl.elem0.loc8_28.2 (constants.%impl.elem0.b76)] -// CHECK:STDOUT: %specific_impl_fn.loc8_28.1: = specific_impl_function %impl.elem0.loc8_28.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet.575) [symbolic = %specific_impl_fn.loc8_28.2 (constants.%specific_impl_fn.997)] -// CHECK:STDOUT: %.loc8_3.1: ref @F.%array_type.loc8_27.2 (%array_type.d0a) = splice_block %w.var {} -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.call.loc8: init @F.%array_type.loc8_27.2 (%array_type.d0a) to %.loc8_3.1 = call %specific_impl_fn.loc8_28.1() +// CHECK:STDOUT: %w.var: ref @F.%array_type.loc8_27.2 (%array_type.50f) = var %w.var_patt +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8_28.1: %DefaultOrUnformed.type = facet_value constants.%array_type.50f, (constants.%DefaultOrUnformed.lookup_impl_witness.1fb) [symbolic = %DefaultOrUnformed.facet.loc8_28.2 (constants.%DefaultOrUnformed.facet.d60)] +// CHECK:STDOUT: %.loc8_28.1: %DefaultOrUnformed.type = converted constants.%array_type.50f, %DefaultOrUnformed.facet.loc8_28.1 [symbolic = %DefaultOrUnformed.facet.loc8_28.2 (constants.%DefaultOrUnformed.facet.d60)] +// CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_28.1 [symbolic = %array_type.loc8_27.2 (constants.%array_type.50f)] +// CHECK:STDOUT: %.loc8_28.2: type = converted %.loc8_28.1, %as_type.loc8 [symbolic = %array_type.loc8_27.2 (constants.%array_type.50f)] +// CHECK:STDOUT: %impl.elem0.loc8_28.1: @F.%.loc8_28.4 (%.478) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness.1fb, element0 [symbolic = %impl.elem0.loc8_28.2 (constants.%impl.elem0.276)] +// CHECK:STDOUT: %specific_impl_fn.loc8_28.1: = specific_impl_function %impl.elem0.loc8_28.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet.d60) [symbolic = %specific_impl_fn.loc8_28.2 (constants.%specific_impl_fn.6bf)] +// CHECK:STDOUT: %.loc8_3.1: ref @F.%array_type.loc8_27.2 (%array_type.50f) = splice_block %w.var {} +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.call.loc8: init @F.%array_type.loc8_27.2 (%array_type.50f) to %.loc8_3.1 = call %specific_impl_fn.loc8_28.1() // CHECK:STDOUT: assign %w.var, %DefaultOrUnformed.WithSelf.Op.call.loc8 -// CHECK:STDOUT: %.loc8_27: type = splice_block %array_type.loc8_27.1 [symbolic = %array_type.loc8_27.2 (constants.%array_type.d0a)] { -// CHECK:STDOUT: %T.ref.loc8: %Destroy.type = name_ref T, %T.loc4_7.2 [symbolic = %T.loc4_7.1 (constants.%T.c66)] +// CHECK:STDOUT: %.loc8_27: type = splice_block %array_type.loc8_27.1 [symbolic = %array_type.loc8_27.2 (constants.%array_type.50f)] { +// CHECK:STDOUT: %T.ref.loc8: %Destroy.type = name_ref T, %T.loc4_7.2 [symbolic = %T.loc4_7.1 (constants.%T.0e7)] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5] -// CHECK:STDOUT: %T.as_type.loc8: type = facet_access_type %T.ref.loc8 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.7e7)] -// CHECK:STDOUT: %.loc8_23: type = converted %T.ref.loc8, %T.as_type.loc8 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.7e7)] -// CHECK:STDOUT: %array_type.loc8_27.1: type = array_type %int_5, %.loc8_23 [symbolic = %array_type.loc8_27.2 (constants.%array_type.d0a)] +// CHECK:STDOUT: %T.as_type.loc8: type = facet_access_type %T.ref.loc8 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.700)] +// CHECK:STDOUT: %.loc8_23: type = converted %T.ref.loc8, %T.as_type.loc8 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.700)] +// CHECK:STDOUT: %array_type.loc8_27.1: type = array_type %int_5, %.loc8_23 [symbolic = %array_type.loc8_27.2 (constants.%array_type.50f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %w: ref @F.%array_type.loc8_27.2 (%array_type.d0a) = ref_binding w, %w.var -// CHECK:STDOUT: %impl.elem0.loc8_3.1: @F.%.loc8_3.2 (%.7c2) = impl_witness_access constants.%Destroy.lookup_impl_witness.c34, element0 [symbolic = %impl.elem0.loc8_3.2 (constants.%impl.elem0.098)] +// CHECK:STDOUT: %w: ref @F.%array_type.loc8_27.2 (%array_type.50f) = ref_binding w, %w.var +// CHECK:STDOUT: %impl.elem0.loc8_3.1: @F.%.loc8_3.2 (%.260) = impl_witness_access constants.%Destroy.lookup_impl_witness.1f5, element0 [symbolic = %impl.elem0.loc8_3.2 (constants.%impl.elem0.375)] // CHECK:STDOUT: %bound_method.loc8_3.1: = bound_method %w.var, %impl.elem0.loc8_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc8_3.1: = specific_impl_function %impl.elem0.loc8_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.5e7) [symbolic = %specific_impl_fn.loc8_3.2 (constants.%specific_impl_fn.580)] +// CHECK:STDOUT: %specific_impl_fn.loc8_3.1: = specific_impl_function %impl.elem0.loc8_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.664) [symbolic = %specific_impl_fn.loc8_3.2 (constants.%specific_impl_fn.f05)] // CHECK:STDOUT: %bound_method.loc8_3.2: = bound_method %w.var, %specific_impl_fn.loc8_3.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_3.2(%w.var) -// CHECK:STDOUT: %impl.elem0.loc7_3.1: @F.%.loc7_3 (%.93d) = impl_witness_access constants.%Destroy.lookup_impl_witness.d23, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0.26b)] +// CHECK:STDOUT: %impl.elem0.loc7_3.1: @F.%.loc7_3 (%.3c7) = impl_witness_access constants.%Destroy.lookup_impl_witness.7f9, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0.bb8)] // CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %v.var, %impl.elem0.loc7_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc7_3.1: = specific_impl_function %impl.elem0.loc7_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.9d3) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.687)] +// CHECK:STDOUT: %specific_impl_fn.loc7_3.1: = specific_impl_function %impl.elem0.loc7_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.aa3) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.799)] // CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %v.var, %specific_impl_fn.loc7_3.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7_3.2(%v.var) -// CHECK:STDOUT: %impl.elem0.loc6_3.1: @F.%.loc6_3.2 (%.0bf) = impl_witness_access constants.%Destroy.lookup_impl_witness.779, element0 [symbolic = %impl.elem0.loc6_3.2 (constants.%impl.elem0.462)] +// CHECK:STDOUT: %impl.elem0.loc6_3.1: @F.%.loc6_3.2 (%.a0a) = impl_witness_access constants.%Destroy.lookup_impl_witness.d26, element0 [symbolic = %impl.elem0.loc6_3.2 (constants.%impl.elem0.667)] // CHECK:STDOUT: %bound_method.loc6_3.1: = bound_method %u.var, %impl.elem0.loc6_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc6_3.1: = specific_impl_function %impl.elem0.loc6_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.2e6) [symbolic = %specific_impl_fn.loc6_3.2 (constants.%specific_impl_fn.640)] +// CHECK:STDOUT: %specific_impl_fn.loc6_3.1: = specific_impl_function %impl.elem0.loc6_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.7ba) [symbolic = %specific_impl_fn.loc6_3.2 (constants.%specific_impl_fn.96b)] // CHECK:STDOUT: %bound_method.loc6_3.2: = bound_method %u.var, %specific_impl_fn.loc6_3.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc6: init %empty_tuple.type = call %bound_method.loc6_3.2(%u.var) // CHECK:STDOUT: @@ -733,69 +733,69 @@ fn G(N:! i32) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.loc12_7.1, constants.%Int.as.ImplicitAs.impl.Convert.64e [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound)] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.loc12_7.1, constants.%Int.as.ImplicitAs.impl.Convert.69e [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound)] // CHECK:STDOUT: %bound_method.loc14_28.3: = bound_method %N.loc12_7.1, constants.%Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic = %bound_method.loc14_28.3 (constants.%bound_method)] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc14_28.2: init Core.IntLiteral = call %bound_method.loc14_28.3(%N.loc12_7.1) [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc14_28.2 (constants.%Int.as.ImplicitAs.impl.Convert.call)] -// CHECK:STDOUT: %array_type.loc14_29.2: type = array_type %Int.as.ImplicitAs.impl.Convert.call.loc14_28.2, constants.%i32 [symbolic = %array_type.loc14_29.2 (constants.%array_type.79d)] -// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc14_29.2 [symbolic = %require_complete (constants.%require_complete.b66)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc14_29.2 [symbolic = %pattern_type (constants.%pattern_type.c9f)] -// CHECK:STDOUT: %.loc14_30.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%array_type.loc14_29.2) [symbolic = %.loc14_30.3 (constants.%.677)] -// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness: = lookup_impl_witness %array_type.loc14_29.2, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness (constants.%DefaultOrUnformed.lookup_impl_witness.7c7)] -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc14_30.2: %DefaultOrUnformed.type = facet_value %array_type.loc14_29.2, (%DefaultOrUnformed.lookup_impl_witness) [symbolic = %DefaultOrUnformed.facet.loc14_30.2 (constants.%DefaultOrUnformed.facet.1ff)] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc14_30.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type (constants.%DefaultOrUnformed.WithSelf.Op.type.283)] -// CHECK:STDOUT: %.loc14_30.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type, %DefaultOrUnformed.facet.loc14_30.2 [symbolic = %.loc14_30.4 (constants.%.dca)] -// CHECK:STDOUT: %impl.elem0.loc14_30.2: @G.%.loc14_30.4 (%.dca) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_30.2 (constants.%impl.elem0.bfe)] -// CHECK:STDOUT: %specific_impl_fn.loc14_30.2: = specific_impl_function %impl.elem0.loc14_30.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc14_30.2) [symbolic = %specific_impl_fn.loc14_30.2 (constants.%specific_impl_fn.53a)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %array_type.loc14_29.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.b07)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %array_type.loc14_29.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.8f4)] -// 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.2ff)] -// CHECK:STDOUT: %.loc14_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc14_3.2 (constants.%.614)] -// CHECK:STDOUT: %impl.elem0.loc14_3.2: @G.%.loc14_3.2 (%.614) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_3.2 (constants.%impl.elem0.814)] -// CHECK:STDOUT: %specific_impl_fn.loc14_3.2: = specific_impl_function %impl.elem0.loc14_3.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.32f)] +// CHECK:STDOUT: %array_type.loc14_29.2: type = array_type %Int.as.ImplicitAs.impl.Convert.call.loc14_28.2, constants.%i32 [symbolic = %array_type.loc14_29.2 (constants.%array_type.359)] +// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc14_29.2 [symbolic = %require_complete (constants.%require_complete.f47)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc14_29.2 [symbolic = %pattern_type (constants.%pattern_type.486)] +// CHECK:STDOUT: %.loc14_30.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%array_type.loc14_29.2) [symbolic = %.loc14_30.3 (constants.%.63b)] +// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness: = lookup_impl_witness %array_type.loc14_29.2, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness (constants.%DefaultOrUnformed.lookup_impl_witness.5c0)] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc14_30.2: %DefaultOrUnformed.type = facet_value %array_type.loc14_29.2, (%DefaultOrUnformed.lookup_impl_witness) [symbolic = %DefaultOrUnformed.facet.loc14_30.2 (constants.%DefaultOrUnformed.facet.b1c)] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc14_30.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type (constants.%DefaultOrUnformed.WithSelf.Op.type.d4c)] +// CHECK:STDOUT: %.loc14_30.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type, %DefaultOrUnformed.facet.loc14_30.2 [symbolic = %.loc14_30.4 (constants.%.608)] +// CHECK:STDOUT: %impl.elem0.loc14_30.2: @G.%.loc14_30.4 (%.608) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_30.2 (constants.%impl.elem0.37d)] +// CHECK:STDOUT: %specific_impl_fn.loc14_30.2: = specific_impl_function %impl.elem0.loc14_30.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc14_30.2) [symbolic = %specific_impl_fn.loc14_30.2 (constants.%specific_impl_fn.b63)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %array_type.loc14_29.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.822)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %array_type.loc14_29.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.a58)] +// 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.6c9)] +// CHECK:STDOUT: %.loc14_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc14_3.2 (constants.%.a73)] +// CHECK:STDOUT: %impl.elem0.loc14_3.2: @G.%.loc14_3.2 (%.a73) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_3.2 (constants.%impl.elem0.fa7)] +// CHECK:STDOUT: %specific_impl_fn.loc14_3.2: = specific_impl_function %impl.elem0.loc14_3.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.075)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %k.patt: @G.%pattern_type (%pattern_type.c9f) = ref_binding_pattern k [concrete] -// CHECK:STDOUT: %k.var_patt: @G.%pattern_type (%pattern_type.c9f) = var_pattern %k.patt [concrete] +// CHECK:STDOUT: %k.patt: @G.%pattern_type (%pattern_type.486) = ref_binding_pattern k [concrete] +// CHECK:STDOUT: %k.var_patt: @G.%pattern_type (%pattern_type.486) = var_pattern %k.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %k.var: ref @G.%array_type.loc14_29.2 (%array_type.79d) = var %k.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc14_30.1: %DefaultOrUnformed.type = facet_value constants.%array_type.79d, (constants.%DefaultOrUnformed.lookup_impl_witness.7c7) [symbolic = %DefaultOrUnformed.facet.loc14_30.2 (constants.%DefaultOrUnformed.facet.1ff)] -// CHECK:STDOUT: %.loc14_30.1: %DefaultOrUnformed.type = converted constants.%array_type.79d, %DefaultOrUnformed.facet.loc14_30.1 [symbolic = %DefaultOrUnformed.facet.loc14_30.2 (constants.%DefaultOrUnformed.facet.1ff)] -// CHECK:STDOUT: %as_type: type = facet_access_type %.loc14_30.1 [symbolic = %array_type.loc14_29.2 (constants.%array_type.79d)] -// CHECK:STDOUT: %.loc14_30.2: type = converted %.loc14_30.1, %as_type [symbolic = %array_type.loc14_29.2 (constants.%array_type.79d)] -// CHECK:STDOUT: %impl.elem0.loc14_30.1: @G.%.loc14_30.4 (%.dca) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness.7c7, element0 [symbolic = %impl.elem0.loc14_30.2 (constants.%impl.elem0.bfe)] -// CHECK:STDOUT: %specific_impl_fn.loc14_30.1: = specific_impl_function %impl.elem0.loc14_30.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet.1ff) [symbolic = %specific_impl_fn.loc14_30.2 (constants.%specific_impl_fn.53a)] -// CHECK:STDOUT: %.loc14_3.1: ref @G.%array_type.loc14_29.2 (%array_type.79d) = splice_block %k.var {} -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.call: init @G.%array_type.loc14_29.2 (%array_type.79d) to %.loc14_3.1 = call %specific_impl_fn.loc14_30.1() +// CHECK:STDOUT: %k.var: ref @G.%array_type.loc14_29.2 (%array_type.359) = var %k.var_patt +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc14_30.1: %DefaultOrUnformed.type = facet_value constants.%array_type.359, (constants.%DefaultOrUnformed.lookup_impl_witness.5c0) [symbolic = %DefaultOrUnformed.facet.loc14_30.2 (constants.%DefaultOrUnformed.facet.b1c)] +// CHECK:STDOUT: %.loc14_30.1: %DefaultOrUnformed.type = converted constants.%array_type.359, %DefaultOrUnformed.facet.loc14_30.1 [symbolic = %DefaultOrUnformed.facet.loc14_30.2 (constants.%DefaultOrUnformed.facet.b1c)] +// CHECK:STDOUT: %as_type: type = facet_access_type %.loc14_30.1 [symbolic = %array_type.loc14_29.2 (constants.%array_type.359)] +// CHECK:STDOUT: %.loc14_30.2: type = converted %.loc14_30.1, %as_type [symbolic = %array_type.loc14_29.2 (constants.%array_type.359)] +// CHECK:STDOUT: %impl.elem0.loc14_30.1: @G.%.loc14_30.4 (%.608) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness.5c0, element0 [symbolic = %impl.elem0.loc14_30.2 (constants.%impl.elem0.37d)] +// CHECK:STDOUT: %specific_impl_fn.loc14_30.1: = specific_impl_function %impl.elem0.loc14_30.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet.b1c) [symbolic = %specific_impl_fn.loc14_30.2 (constants.%specific_impl_fn.b63)] +// CHECK:STDOUT: %.loc14_3.1: ref @G.%array_type.loc14_29.2 (%array_type.359) = splice_block %k.var {} +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.call: init @G.%array_type.loc14_29.2 (%array_type.359) to %.loc14_3.1 = call %specific_impl_fn.loc14_30.1() // CHECK:STDOUT: assign %k.var, %DefaultOrUnformed.WithSelf.Op.call -// CHECK:STDOUT: %.loc14_29: type = splice_block %array_type.loc14_29.1 [symbolic = %array_type.loc14_29.2 (constants.%array_type.79d)] { +// CHECK:STDOUT: %.loc14_29: type = splice_block %array_type.loc14_29.1 [symbolic = %array_type.loc14_29.2 (constants.%array_type.359)] { // CHECK:STDOUT: %i32.loc14: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc12_7.2 [symbolic = %N.loc12_7.1 (constants.%N.bbe)] -// CHECK:STDOUT: %impl.elem0.loc14_28: %.7a9 = impl_witness_access constants.%ImplicitAs.impl_witness.062, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.64e] +// CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc12_7.2 [symbolic = %N.loc12_7.1 (constants.%N.37f)] +// CHECK:STDOUT: %impl.elem0.loc14_28: %.b08 = impl_witness_access constants.%ImplicitAs.impl_witness.416, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.69e] // CHECK:STDOUT: %bound_method.loc14_28.1: = bound_method %N.ref, %impl.elem0.loc14_28 [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound)] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc14_28, @Int.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Int.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_28.2: = bound_method %N.ref, %specific_fn [symbolic = %bound_method.loc14_28.3 (constants.%bound_method)] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc14_28.1: init Core.IntLiteral = call %bound_method.loc14_28.2(%N.ref) [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc14_28.2 (constants.%Int.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: %.loc14_28.1: Core.IntLiteral = value_of_initializer %Int.as.ImplicitAs.impl.Convert.call.loc14_28.1 [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc14_28.2 (constants.%Int.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: %.loc14_28.2: Core.IntLiteral = converted %N.ref, %.loc14_28.1 [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc14_28.2 (constants.%Int.as.ImplicitAs.impl.Convert.call)] -// CHECK:STDOUT: %array_type.loc14_29.1: type = array_type %.loc14_28.2, %i32.loc14 [symbolic = %array_type.loc14_29.2 (constants.%array_type.79d)] +// CHECK:STDOUT: %array_type.loc14_29.1: type = array_type %.loc14_28.2, %i32.loc14 [symbolic = %array_type.loc14_29.2 (constants.%array_type.359)] // CHECK:STDOUT: } -// CHECK:STDOUT: %k: ref @G.%array_type.loc14_29.2 (%array_type.79d) = ref_binding k, %k.var -// CHECK:STDOUT: %impl.elem0.loc14_3.1: @G.%.loc14_3.2 (%.614) = impl_witness_access constants.%Destroy.lookup_impl_witness.b07, element0 [symbolic = %impl.elem0.loc14_3.2 (constants.%impl.elem0.814)] +// CHECK:STDOUT: %k: ref @G.%array_type.loc14_29.2 (%array_type.359) = ref_binding k, %k.var +// CHECK:STDOUT: %impl.elem0.loc14_3.1: @G.%.loc14_3.2 (%.a73) = impl_witness_access constants.%Destroy.lookup_impl_witness.822, element0 [symbolic = %impl.elem0.loc14_3.2 (constants.%impl.elem0.fa7)] // CHECK:STDOUT: %bound_method.loc14_3.1: = bound_method %k.var, %impl.elem0.loc14_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc14_3.1: = specific_impl_function %impl.elem0.loc14_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.8f4) [symbolic = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.32f)] +// CHECK:STDOUT: %specific_impl_fn.loc14_3.1: = specific_impl_function %impl.elem0.loc14_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.a58) [symbolic = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.075)] // CHECK:STDOUT: %bound_method.loc14_3.2: = bound_method %k.var, %specific_impl_fn.loc14_3.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc14_3.2(%k.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.c66) { -// CHECK:STDOUT: %T.loc4_7.1 => constants.%T.c66 +// CHECK:STDOUT: specific @F(constants.%T.0e7) { +// CHECK:STDOUT: %T.loc4_7.1 => constants.%T.0e7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G(constants.%N.bbe) { -// CHECK:STDOUT: %N.loc12_7.1 => constants.%N.bbe +// CHECK:STDOUT: specific @G(constants.%N.37f) { +// CHECK:STDOUT: %N.loc12_7.1 => constants.%N.37f // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/eval/binding.carbon b/toolchain/check/testdata/eval/binding.carbon index 4f55263b2b04..c2a11ef343dc 100644 --- a/toolchain/check/testdata/eval/binding.carbon +++ b/toolchain/check/testdata/eval/binding.carbon @@ -74,115 +74,115 @@ let n: array(i32, G()) = (1, 2, 3); // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %From: Core.IntLiteral = symbolic_binding From, 0 [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.f73: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.34b: %Int.as.ImplicitAs.impl.Convert.type.f73 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.840: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.840) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet.840 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.062: = impl_witness imports.%ImplicitAs.impl_witness_table.eac, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.337: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.64e: %Int.as.ImplicitAs.impl.Convert.type.337 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.89e: %ImplicitAs.type.ace = facet_value %i32, (%ImplicitAs.impl_witness.062) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b68: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.89e) [concrete] -// CHECK:STDOUT: %.7a9: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b68, %ImplicitAs.facet.89e [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %int_3.6cc, %Int.as.ImplicitAs.impl.Convert.64e [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.64e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.353: = bound_method %int_3.6cc, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.48d: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.0f9: %Int.as.ImplicitAs.impl.Convert.type.48d = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.9f1: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.9f1) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet.9f1 [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: %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.763: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.416: = impl_witness imports.%ImplicitAs.impl_witness_table.b8b, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.683: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.69e: %Int.as.ImplicitAs.impl.Convert.type.683 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.657: %ImplicitAs.type.7cb = facet_value %i32, (%ImplicitAs.impl_witness.416) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.dc6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.657) [concrete] +// CHECK:STDOUT: %.b08: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.dc6, %ImplicitAs.facet.657 [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %int_3.410, %Int.as.ImplicitAs.impl.Convert.69e [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.69e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.545: = bound_method %int_3.410, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_3.1ba, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.bec: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.771: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %tuple.type.37f: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.2d5: %tuple.type.37f = tuple_value (%int_1.5b8, %int_2.ecc, %int_3.1ba) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.d9c, %int_2.228, %int_3.6cc) [concrete] -// CHECK:STDOUT: %.2d4: ref %array_type = temporary invalid, %array [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] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.835: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.f73) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.34b)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.eac = impl_witness_table (%Core.import_ref.835), @Int.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.32e: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.48d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.0f9)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b8b = impl_witness_table (%Core.import_ref.32e), @Int.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.bec = value_binding_pattern n [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.771 = value_binding_pattern n [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc11_23: type = splice_block %array_type [concrete = constants.%array_type] { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %F.ref: %F.type = name_ref F, %F.decl [concrete = constants.%F] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc11_21: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc11_21.1: = bound_method %int_3, %impl.elem0.loc11_21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %impl.elem0.loc11_21: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc11_21.1: = bound_method %int_3, %impl.elem0.loc11_21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc11_21: = specific_function %impl.elem0.loc11_21, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_21.2: = bound_method %int_3, %specific_fn.loc11_21 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_21: init %i32 = call %bound_method.loc11_21.2(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc11_21.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_21 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc11_21.2: %i32 = converted %int_3, %.loc11_21.1 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %F.call: init %i32 = call %F.ref(%.loc11_21.2) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %impl.elem0.loc11_22: %.7a9 = impl_witness_access constants.%ImplicitAs.impl_witness.062, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.64e] +// CHECK:STDOUT: %bound_method.loc11_21.2: = bound_method %int_3, %specific_fn.loc11_21 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_21: init %i32 = call %bound_method.loc11_21.2(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc11_21.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_21 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc11_21.2: %i32 = converted %int_3, %.loc11_21.1 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %F.call: init %i32 = call %F.ref(%.loc11_21.2) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %impl.elem0.loc11_22: %.b08 = impl_witness_access constants.%ImplicitAs.impl_witness.416, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.69e] // CHECK:STDOUT: %bound_method.loc11_22.1: = bound_method %F.call, %impl.elem0.loc11_22 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc11_22: = specific_function %impl.elem0.loc11_22, @Int.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Int.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_22.2: = bound_method %F.call, %specific_fn.loc11_22 [concrete = constants.%bound_method.353] -// CHECK:STDOUT: %.loc11_22.1: %i32 = value_of_initializer %F.call [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc11_22.2: %i32 = converted %F.call, %.loc11_22.1 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc11_22.2: = bound_method %F.call, %specific_fn.loc11_22 [concrete = constants.%bound_method.545] +// CHECK:STDOUT: %.loc11_22.1: %i32 = value_of_initializer %F.call [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc11_22.2: %i32 = converted %F.call, %.loc11_22.1 [concrete = constants.%int_3.410] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.loc11_22.2(%.loc11_22.2) [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc11_22.3: Core.IntLiteral = value_of_initializer %Int.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc11_22.4: Core.IntLiteral = converted %F.call, %.loc11_22.3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %array_type: type = array_type %.loc11_22.4, %i32 [concrete = constants.%array_type] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc11_35.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc11_35.1: = bound_method @__global_init.%int_1, %impl.elem0.loc11_35.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc11_35.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc11_35.1: = bound_method @__global_init.%int_1, %impl.elem0.loc11_35.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc11_35.1: = specific_function %impl.elem0.loc11_35.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_35.2: = bound_method @__global_init.%int_1, %specific_fn.loc11_35.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_35.1: init %i32 = call %bound_method.loc11_35.2(@__global_init.%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc11_35.1: init %i32 = converted @__global_init.%int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_35.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc11_35.2: = bound_method @__global_init.%int_1, %specific_fn.loc11_35.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_35.1: init %i32 = call %bound_method.loc11_35.2(@__global_init.%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc11_35.1: init %i32 = converted @__global_init.%int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_35.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc11_35.2: ref %array_type = temporary_storage // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc11_35.3: ref %i32 = array_index %.loc11_35.2, %int_0 -// CHECK:STDOUT: %.loc11_35.4: init %i32 to %.loc11_35.3 = in_place_init %.loc11_35.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc11_35.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc11_35.3: = bound_method @__global_init.%int_2, %impl.elem0.loc11_35.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc11_35.4: init %i32 to %.loc11_35.3 = in_place_init %.loc11_35.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc11_35.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc11_35.3: = bound_method @__global_init.%int_2, %impl.elem0.loc11_35.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc11_35.2: = specific_function %impl.elem0.loc11_35.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_35.4: = bound_method @__global_init.%int_2, %specific_fn.loc11_35.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_35.2: init %i32 = call %bound_method.loc11_35.4(@__global_init.%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc11_35.5: init %i32 = converted @__global_init.%int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_35.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc11_35.4: = bound_method @__global_init.%int_2, %specific_fn.loc11_35.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_35.2: init %i32 = call %bound_method.loc11_35.4(@__global_init.%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc11_35.5: init %i32 = converted @__global_init.%int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_35.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_35.6: ref %i32 = array_index %.loc11_35.2, %int_1 -// CHECK:STDOUT: %.loc11_35.7: init %i32 to %.loc11_35.6 = in_place_init %.loc11_35.5 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %impl.elem0.loc11_35.3: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc11_35.5: = bound_method @__global_init.%int_3, %impl.elem0.loc11_35.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %.loc11_35.7: init %i32 to %.loc11_35.6 = in_place_init %.loc11_35.5 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %impl.elem0.loc11_35.3: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc11_35.5: = bound_method @__global_init.%int_3, %impl.elem0.loc11_35.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc11_35.3: = specific_function %impl.elem0.loc11_35.3, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_35.6: = bound_method @__global_init.%int_3, %specific_fn.loc11_35.3 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_35.3: init %i32 = call %bound_method.loc11_35.6(@__global_init.%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc11_35.8: init %i32 = converted @__global_init.%int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_35.3 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc11_35.6: = bound_method @__global_init.%int_3, %specific_fn.loc11_35.3 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_35.3: init %i32 = call %bound_method.loc11_35.6(@__global_init.%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc11_35.8: init %i32 = converted @__global_init.%int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_35.3 [concrete = constants.%int_3.410] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc11_35.9: ref %i32 = array_index %.loc11_35.2, %int_2 -// CHECK:STDOUT: %.loc11_35.10: init %i32 to %.loc11_35.9 = in_place_init %.loc11_35.8 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %.loc11_35.10: init %i32 to %.loc11_35.9 = in_place_init %.loc11_35.8 [concrete = constants.%int_3.410] // CHECK:STDOUT: %.loc11_35.11: init %array_type to %.loc11_35.2 = array_init (%.loc11_35.4, %.loc11_35.7, %.loc11_35.10) [concrete = constants.%array] // CHECK:STDOUT: %.loc11_35.12: init %array_type = converted @__global_init.%.loc11, %.loc11_35.11 [concrete = constants.%array] -// CHECK:STDOUT: %.loc11_35.13: ref %array_type = temporary %.loc11_35.2, %.loc11_35.12 [concrete = constants.%.2d4] +// CHECK:STDOUT: %.loc11_35.13: ref %array_type = temporary %.loc11_35.2, %.loc11_35.12 [concrete = constants.%.981] // CHECK:STDOUT: %.loc11_35.14: %array_type = acquire_value %.loc11_35.13 [concrete = constants.%array] // CHECK:STDOUT: %n: %array_type = value_binding n, %.loc11_35.14 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/eval/branch.carbon b/toolchain/check/testdata/eval/branch.carbon index 3625741c1680..b0e5b11fce40 100644 --- a/toolchain/check/testdata/eval/branch.carbon +++ b/toolchain/check/testdata/eval/branch.carbon @@ -72,11 +72,11 @@ var b: if false then A else B = MakeB(); // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] // CHECK:STDOUT: %MakeA.type: type = fn_type @MakeA [concrete] // CHECK:STDOUT: %MakeA: %MakeA.type = struct_value () [concrete] // CHECK:STDOUT: %false: bool = bool_literal false [concrete] -// CHECK:STDOUT: %pattern_type.787: type = pattern_type %B [concrete] +// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete] // CHECK:STDOUT: %MakeB.type: type = fn_type @MakeB [concrete] // CHECK:STDOUT: %MakeB: %MakeB.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -88,8 +88,8 @@ var b: if false then A else B = MakeB(); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.ccb = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.ccb = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9ef = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.9ef = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %A = var %a.var_patt [concrete] // CHECK:STDOUT: %.loc14_14.1: type = splice_block %.loc14_14.3 [concrete = constants.%A] { @@ -101,8 +101,8 @@ var b: if false then A else B = MakeB(); // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %A = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.787 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.787 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.e39 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.e39 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %B = var %b.var_patt [concrete] // CHECK:STDOUT: %.loc15_15.1: type = splice_block %.loc15_15.3 [concrete = constants.%B] { @@ -136,11 +136,11 @@ var b: if false then A else B = MakeB(); // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] // CHECK:STDOUT: %MakeA.type: type = fn_type @MakeA [concrete] // CHECK:STDOUT: %MakeA: %MakeA.type = struct_value () [concrete] // CHECK:STDOUT: %false: bool = bool_literal false [concrete] -// CHECK:STDOUT: %pattern_type.787: type = pattern_type %B [concrete] +// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete] // CHECK:STDOUT: %MakeB.type: type = fn_type @MakeB [concrete] // CHECK:STDOUT: %MakeB: %MakeB.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -152,8 +152,8 @@ var b: if false then A else B = MakeB(); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.ccb = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.ccb = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9ef = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.9ef = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %A = var %a.var_patt [concrete] // CHECK:STDOUT: %.loc10_14.1: type = splice_block %.loc10_14.3 [concrete = constants.%A] { @@ -165,8 +165,8 @@ var b: if false then A else B = MakeB(); // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %A = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.787 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.787 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.e39 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.e39 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %B = var %b.var_patt [concrete] // CHECK:STDOUT: %.loc11_15.1: type = splice_block %.loc11_15.3 [concrete = constants.%B] { diff --git a/toolchain/check/testdata/eval/call.carbon b/toolchain/check/testdata/eval/call.carbon index bafe46c2ee6c..2aa69fdf812c 100644 --- a/toolchain/check/testdata/eval/call.carbon +++ b/toolchain/check/testdata/eval/call.carbon @@ -178,27 +178,27 @@ fn H() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %tuple.type.05f: type = tuple_type (%i32, %i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.555: type = tuple_type (%i32, %i32, %i32) [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %tuple.282: %tuple.type.05f = tuple_value (%int_1.d9c, %int_2.228, %int_3.6cc) [concrete] -// CHECK:STDOUT: %.628: ref %tuple.type.05f = temporary invalid, %tuple.282 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc8_5.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.628, %Destroy.Op.2dd605.3 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %.loc8_5.1: ref %tuple.type.05f = temporary_storage -// CHECK:STDOUT: %F.call: init %tuple.type.05f to %.loc8_5.1 = call %F.ref() [concrete = constants.%tuple.282] -// CHECK:STDOUT: %.loc8_5.2: ref %tuple.type.05f = temporary %.loc8_5.1, %F.call [concrete = constants.%.628] -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.628) +// 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: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -209,7 +209,7 @@ fn H() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_5.3(%self.param: ref %tuple.type.05f) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_5.3(%self.param: ref %tuple.type.555) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -221,40 +221,40 @@ fn H() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.ff9: type = tuple_type (type, type, type) [concrete] -// CHECK:STDOUT: %tuple.27c: %tuple.type.ff9 = tuple_value (%i32, %i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.05f: type = tuple_type (%i32, %i32, %i32) [concrete] -// CHECK:STDOUT: %pattern_type.776: type = pattern_type %tuple.type.05f [concrete] +// CHECK:STDOUT: %tuple.04d: %tuple.type.ff9 = tuple_value (%i32, %i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.555: type = tuple_type (%i32, %i32, %i32) [concrete] +// CHECK:STDOUT: %pattern_type.777: type = pattern_type %tuple.type.555 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %tuple.282: %tuple.type.05f = tuple_value (%int_1.d9c, %int_2.228, %int_3.6cc) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc8_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] +// 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: %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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.776 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.776 = var_pattern %a.patt [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: } -// CHECK:STDOUT: %a.var: ref %tuple.type.05f = var %a.var_patt +// CHECK:STDOUT: %a.var: ref %tuple.type.555 = var %a.var_patt // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %.loc8_3: ref %tuple.type.05f = splice_block %a.var {} -// CHECK:STDOUT: %F.call: init %tuple.type.05f to %.loc8_3 = call %F.ref() [concrete = constants.%tuple.282] +// CHECK:STDOUT: %.loc8_3: ref %tuple.type.555 = splice_block %a.var {} +// CHECK:STDOUT: %F.call: init %tuple.type.555 to %.loc8_3 = call %F.ref() [concrete = constants.%tuple.479] // CHECK:STDOUT: assign %a.var, %F.call -// CHECK:STDOUT: %.loc8_31.1: type = splice_block %.loc8_31.3 [concrete = constants.%tuple.type.05f] { +// CHECK:STDOUT: %.loc8_31.1: type = splice_block %.loc8_31.3 [concrete = constants.%tuple.type.555] { // CHECK:STDOUT: %i32.loc8_18: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc8_23: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc8_28: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc8_31.2: %tuple.type.ff9 = tuple_literal (%i32.loc8_18, %i32.loc8_23, %i32.loc8_28) [concrete = constants.%tuple.27c] -// CHECK:STDOUT: %.loc8_31.3: type = converted %.loc8_31.2, constants.%tuple.type.05f [concrete = constants.%tuple.type.05f] +// CHECK:STDOUT: %.loc8_31.2: %tuple.type.ff9 = tuple_literal (%i32.loc8_18, %i32.loc8_23, %i32.loc8_28) [concrete = constants.%tuple.04d] +// CHECK:STDOUT: %.loc8_31.3: type = converted %.loc8_31.2, constants.%tuple.type.555 [concrete = constants.%tuple.type.555] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %tuple.type.05f = ref_binding a, %a.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %a: ref %tuple.type.555 = ref_binding a, %a.var +// 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: // CHECK:STDOUT: } @@ -266,7 +266,7 @@ fn H() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.3(%self.param: ref %tuple.type.05f) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_3.3(%self.param: ref %tuple.type.555) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -278,10 +278,10 @@ fn H() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.ff9: type = tuple_type (type, type, type) [concrete] -// CHECK:STDOUT: %tuple.27c: %tuple.type.ff9 = tuple_value (%i32, %i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.05f: type = tuple_type (%i32, %i32, %i32) [concrete] -// CHECK:STDOUT: %.fd3: Core.Form = init_form %tuple.type.05f [concrete] -// CHECK:STDOUT: %pattern_type.776: type = pattern_type %tuple.type.05f [concrete] +// CHECK:STDOUT: %tuple.04d: %tuple.type.ff9 = tuple_value (%i32, %i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.555: type = tuple_type (%i32, %i32, %i32) [concrete] +// CHECK:STDOUT: %.718: Core.Form = init_form %tuple.type.555 [concrete] +// CHECK:STDOUT: %pattern_type.777: type = pattern_type %tuple.type.555 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] @@ -290,88 +290,88 @@ fn H() { // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %tuple.type.37f: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.2d5: %tuple.type.37f = tuple_value (%int_1.5b8, %int_2.ecc, %int_3.1ba) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %tuple.282: %tuple.type.05f = tuple_value (%int_1.d9c, %int_2.228, %int_3.6cc) [concrete] -// CHECK:STDOUT: %.628: ref %tuple.type.05f = temporary invalid, %tuple.282 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %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] +// 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: %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.790b3b.3: type = fn_type @Destroy.Op.loc17_32.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.628, %Destroy.Op.2dd605.3 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.776 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.776 = return_slot_pattern %return.param_patt, %.loc5_30.2 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.777 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.777 = return_slot_pattern %return.param_patt, %.loc5_30.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc5_17: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc5_22: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc5_27: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc5_30.1: %tuple.type.ff9 = tuple_literal (%i32.loc5_17, %i32.loc5_22, %i32.loc5_27) [concrete = constants.%tuple.27c] -// CHECK:STDOUT: %.loc5_30.2: type = converted %.loc5_30.1, constants.%tuple.type.05f [concrete = constants.%tuple.type.05f] -// CHECK:STDOUT: %.loc5_30.3: Core.Form = init_form %.loc5_30.2 [concrete = constants.%.fd3] -// CHECK:STDOUT: %return.param: ref %tuple.type.05f = out_param call_param0 -// CHECK:STDOUT: %return: ref %tuple.type.05f = return_slot %return.param +// CHECK:STDOUT: %.loc5_30.1: %tuple.type.ff9 = tuple_literal (%i32.loc5_17, %i32.loc5_22, %i32.loc5_27) [concrete = constants.%tuple.04d] +// CHECK:STDOUT: %.loc5_30.2: type = converted %.loc5_30.1, constants.%tuple.type.555 [concrete = constants.%tuple.type.555] +// CHECK:STDOUT: %.loc5_30.3: Core.Form = init_form %.loc5_30.2 [concrete = constants.%.718] +// CHECK:STDOUT: %return.param: ref %tuple.type.555 = out_param call_param0 +// CHECK:STDOUT: %return: ref %tuple.type.555 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> out %return.param: %tuple.type.05f { +// CHECK:STDOUT: fn @F() -> out %return.param: %tuple.type.555 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc5_49.1: %tuple.type.37f = tuple_literal (%int_1, %int_2, %int_3) [concrete = constants.%tuple.2d5] -// CHECK:STDOUT: %impl.elem0.loc5_49.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc5_49.1: = bound_method %int_1, %impl.elem0.loc5_49.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc5_49.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc5_49.1: = bound_method %int_1, %impl.elem0.loc5_49.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc5_49.1: = specific_function %impl.elem0.loc5_49.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc5_49.2: = bound_method %int_1, %specific_fn.loc5_49.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_49.1: init %i32 = call %bound_method.loc5_49.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc5_49.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_49.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc5_49.2: = bound_method %int_1, %specific_fn.loc5_49.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_49.1: init %i32 = call %bound_method.loc5_49.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc5_49.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_49.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %return.param, element0 -// CHECK:STDOUT: %.loc5_49.3: init %i32 to %tuple.elem0 = in_place_init %.loc5_49.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc5_49.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc5_49.3: = bound_method %int_2, %impl.elem0.loc5_49.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc5_49.3: init %i32 to %tuple.elem0 = in_place_init %.loc5_49.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc5_49.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc5_49.3: = bound_method %int_2, %impl.elem0.loc5_49.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc5_49.2: = specific_function %impl.elem0.loc5_49.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc5_49.4: = bound_method %int_2, %specific_fn.loc5_49.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_49.2: init %i32 = call %bound_method.loc5_49.4(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc5_49.4: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_49.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc5_49.4: = bound_method %int_2, %specific_fn.loc5_49.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_49.2: init %i32 = call %bound_method.loc5_49.4(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc5_49.4: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_49.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access %return.param, element1 -// CHECK:STDOUT: %.loc5_49.5: init %i32 to %tuple.elem1 = in_place_init %.loc5_49.4 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %impl.elem0.loc5_49.3: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc5_49.5: = bound_method %int_3, %impl.elem0.loc5_49.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %.loc5_49.5: init %i32 to %tuple.elem1 = in_place_init %.loc5_49.4 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %impl.elem0.loc5_49.3: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc5_49.5: = bound_method %int_3, %impl.elem0.loc5_49.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc5_49.3: = specific_function %impl.elem0.loc5_49.3, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc5_49.6: = bound_method %int_3, %specific_fn.loc5_49.3 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_49.3: init %i32 = call %bound_method.loc5_49.6(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc5_49.6: init %i32 = converted %int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_49.3 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc5_49.6: = bound_method %int_3, %specific_fn.loc5_49.3 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_49.3: init %i32 = call %bound_method.loc5_49.6(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc5_49.6: init %i32 = converted %int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_49.3 [concrete = constants.%int_3.410] // CHECK:STDOUT: %tuple.elem2: ref %i32 = tuple_access %return.param, element2 -// CHECK:STDOUT: %.loc5_49.7: init %i32 to %tuple.elem2 = in_place_init %.loc5_49.6 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc5_49.8: init %tuple.type.05f to %return.param = tuple_init (%.loc5_49.3, %.loc5_49.5, %.loc5_49.7) [concrete = constants.%tuple.282] -// CHECK:STDOUT: %.loc5_50: init %tuple.type.05f = converted %.loc5_49.1, %.loc5_49.8 [concrete = constants.%tuple.282] +// CHECK:STDOUT: %.loc5_49.7: init %i32 to %tuple.elem2 = in_place_init %.loc5_49.6 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc5_49.8: init %tuple.type.555 to %return.param = tuple_init (%.loc5_49.3, %.loc5_49.5, %.loc5_49.7) [concrete = constants.%tuple.479] +// CHECK:STDOUT: %.loc5_50: init %tuple.type.555 = converted %.loc5_49.1, %.loc5_49.8 [concrete = constants.%tuple.479] // CHECK:STDOUT: return %.loc5_50 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: @@ -388,7 +388,7 @@ fn H() { // CHECK:STDOUT: assign %a.var, // CHECK:STDOUT: // CHECK:STDOUT: %a: ref = ref_binding a, [concrete = ] -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.628) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.e1e) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -399,7 +399,7 @@ fn H() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc17_32.3(%self.param: ref %tuple.type.05f) { +// CHECK:STDOUT: fn @Destroy.Op.loc17_32.3(%self.param: ref %tuple.type.555) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -409,8 +409,8 @@ fn H() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] @@ -418,20 +418,20 @@ fn H() { // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %.7a6: ref %C = temporary invalid, %C.val [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.790b3b.2: type = fn_type @Destroy.Op.loc13_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.7a6, %Destroy.Op.2dd605.2 [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: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc6_16: Core.Form = init_form %C.ref [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc6_16: Core.Form = init_form %C.ref [concrete = constants.%.a44] // CHECK:STDOUT: %return.param: ref %C = out_param call_param0 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } @@ -451,11 +451,11 @@ fn H() { // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %.loc13_7.1: ref %C = temporary_storage // CHECK:STDOUT: %F.call: init %C to %.loc13_7.1 = call %F.ref() [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc13_7.2: ref %C = temporary %.loc13_7.1, %F.call [concrete = constants.%.7a6] +// CHECK:STDOUT: %.loc13_7.2: ref %C = temporary %.loc13_7.1, %F.call [concrete = constants.%.115] // 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.%.7a6) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.115) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/eval/symbolic.carbon b/toolchain/check/testdata/eval/symbolic.carbon index 9b6ddefe9214..9c754b611d13 100644 --- a/toolchain/check/testdata/eval/symbolic.carbon +++ b/toolchain/check/testdata/eval/symbolic.carbon @@ -75,45 +75,45 @@ fn F() { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %Z.impl_witness: = impl_witness @empty_struct_type.as.Z.impl.%Z.impl_witness_table [concrete] // CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_struct_type, (%Z.impl_witness) [concrete] -// CHECK:STDOUT: %U.aa0: %Z.type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %U.as_type.a7f: type = facet_access_type %U.aa0 [symbolic] +// CHECK:STDOUT: %U.013: %Z.type = symbolic_binding U, 0 [symbolic] +// CHECK:STDOUT: %U.as_type.ff1: type = facet_access_type %U.013 [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.f49: = impl_witness imports.%Copy.impl_witness_table.fcf [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.f49) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cd0: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.31b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cd0, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.638: = impl_witness imports.%Copy.impl_witness_table.4d6 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.638) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8b3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.524: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8b3, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %type.as.Copy.impl.Op.bound.a10: = bound_method %U.as_type.a7f, %type.as.Copy.impl.Op [symbolic] +// CHECK:STDOUT: %type.as.Copy.impl.Op.bound.05d: = bound_method %U.as_type.ff1, %type.as.Copy.impl.Op [symbolic] // CHECK:STDOUT: %type.as.Copy.impl.Op.bound.57f: = bound_method %empty_struct_type, %type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.fcf = impl_witness_table (%Core.import_ref.f63), @type.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.4d6 = impl_witness_table (%Core.import_ref.9c3), @type.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @E(%U.loc6_12.2: %Z.type) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %U.as_type.loc11_11.2: type = facet_access_type %U.loc6_12.1 [symbolic = %U.as_type.loc11_11.2 (constants.%U.as_type.a7f)] -// CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %U.as_type.loc11_11.2, constants.%type.as.Copy.impl.Op [symbolic = %type.as.Copy.impl.Op.bound (constants.%type.as.Copy.impl.Op.bound.a10)] +// CHECK:STDOUT: %U.as_type.loc11_11.2: type = facet_access_type %U.loc6_12.1 [symbolic = %U.as_type.loc11_11.2 (constants.%U.as_type.ff1)] +// CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %U.as_type.loc11_11.2, constants.%type.as.Copy.impl.Op [symbolic = %type.as.Copy.impl.Op.bound (constants.%type.as.Copy.impl.Op.bound.05d)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: type { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %U.ref: %Z.type = name_ref U, %U.loc6_12.2 [symbolic = %U.loc6_12.1 (constants.%U.aa0)] -// CHECK:STDOUT: %U.as_type.loc11_11.1: type = facet_access_type %U.ref [symbolic = %U.as_type.loc11_11.2 (constants.%U.as_type.a7f)] -// CHECK:STDOUT: %.loc11: type = converted %U.ref, %U.as_type.loc11_11.1 [symbolic = %U.as_type.loc11_11.2 (constants.%U.as_type.a7f)] -// CHECK:STDOUT: %impl.elem0: %.31b = impl_witness_access constants.%Copy.impl_witness.f49, element0 [concrete = constants.%type.as.Copy.impl.Op] -// CHECK:STDOUT: %bound_method: = bound_method %.loc11, %impl.elem0 [symbolic = %type.as.Copy.impl.Op.bound (constants.%type.as.Copy.impl.Op.bound.a10)] -// CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method(%.loc11) [symbolic = %U.as_type.loc11_11.2 (constants.%U.as_type.a7f)] +// CHECK:STDOUT: %U.ref: %Z.type = name_ref U, %U.loc6_12.2 [symbolic = %U.loc6_12.1 (constants.%U.013)] +// CHECK:STDOUT: %U.as_type.loc11_11.1: type = facet_access_type %U.ref [symbolic = %U.as_type.loc11_11.2 (constants.%U.as_type.ff1)] +// CHECK:STDOUT: %.loc11: type = converted %U.ref, %U.as_type.loc11_11.1 [symbolic = %U.as_type.loc11_11.2 (constants.%U.as_type.ff1)] +// CHECK:STDOUT: %impl.elem0: %.524 = impl_witness_access constants.%Copy.impl_witness.638, element0 [concrete = constants.%type.as.Copy.impl.Op] +// CHECK:STDOUT: %bound_method: = bound_method %.loc11, %impl.elem0 [symbolic = %type.as.Copy.impl.Op.bound (constants.%type.as.Copy.impl.Op.bound.05d)] +// CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method(%.loc11) [symbolic = %U.as_type.loc11_11.2 (constants.%U.as_type.ff1)] // CHECK:STDOUT: return %type.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @E(constants.%U.aa0) { -// CHECK:STDOUT: %U.loc6_12.1 => constants.%U.aa0 +// CHECK:STDOUT: specific @E(constants.%U.013) { +// CHECK:STDOUT: %U.loc6_12.1 => constants.%U.013 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @E(constants.%Z.facet) { diff --git a/toolchain/check/testdata/facet/access.carbon b/toolchain/check/testdata/facet/access.carbon index 7aa34b8277e6..f33355c217a7 100644 --- a/toolchain/check/testdata/facet/access.carbon +++ b/toolchain/check/testdata/facet/access.carbon @@ -424,11 +424,11 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.DoIt.decl [concrete] // CHECK:STDOUT: %T: %I.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.DoIt.type.534: type = fn_type @I.WithSelf.DoIt, @I.WithSelf(%T) [symbolic] +// CHECK:STDOUT: %I.WithSelf.DoIt.type.0a5: type = fn_type @I.WithSelf.DoIt, @I.WithSelf(%T) [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] -// CHECK:STDOUT: %.b1d: type = fn_type_with_self_type %I.WithSelf.DoIt.type.534, %T [symbolic] -// CHECK:STDOUT: %impl.elem0: %.b1d = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %.9ca: type = fn_type_with_self_type %I.WithSelf.DoIt.type.0a5, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.9ca = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.WithSelf.DoIt(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -437,10 +437,10 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc10_4.2: type = facet_access_type %T.loc8_9.1 [symbolic = %T.as_type.loc10_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %I.WithSelf.DoIt.type: type = fn_type @I.WithSelf.DoIt, @I.WithSelf(%T.loc8_9.1) [symbolic = %I.WithSelf.DoIt.type (constants.%I.WithSelf.DoIt.type.534)] -// CHECK:STDOUT: %.loc10_4.2: type = fn_type_with_self_type %I.WithSelf.DoIt.type, %T.loc8_9.1 [symbolic = %.loc10_4.2 (constants.%.b1d)] +// CHECK:STDOUT: %I.WithSelf.DoIt.type: type = fn_type @I.WithSelf.DoIt, @I.WithSelf(%T.loc8_9.1) [symbolic = %I.WithSelf.DoIt.type (constants.%I.WithSelf.DoIt.type.0a5)] +// CHECK:STDOUT: %.loc10_4.2: type = fn_type_with_self_type %I.WithSelf.DoIt.type, %T.loc8_9.1 [symbolic = %.loc10_4.2 (constants.%.9ca)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_9.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc10_4.2: @Use.%.loc10_4.2 (%.b1d) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc10_4.2: @Use.%.loc10_4.2 (%.9ca) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_4.2: = specific_impl_function %impl.elem0.loc10_4.2, @I.WithSelf.DoIt(%T.loc8_9.1) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -449,7 +449,7 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: %T.as_type.loc10_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc10_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc10_4.1: type = converted %T.ref, %T.as_type.loc10_4.1 [symbolic = %T.as_type.loc10_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %DoIt.ref: %I.assoc_type = name_ref DoIt, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc10_4.1: @Use.%.loc10_4.2 (%.b1d) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc10_4.1: @Use.%.loc10_4.2 (%.9ca) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_4.1: = specific_impl_function %impl.elem0.loc10_4.1, @I.WithSelf.DoIt(constants.%T) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %I.WithSelf.DoIt.call: init %empty_tuple.type = call %specific_impl_fn.loc10_4.1() // CHECK:STDOUT: @@ -468,12 +468,12 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.Make.decl [concrete] // CHECK:STDOUT: %T: %I.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %.b40: Core.Form = init_form %T.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.3df: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %I.WithSelf.Make.type.279: type = fn_type @I.WithSelf.Make, @I.WithSelf(%T) [symbolic] +// CHECK:STDOUT: %.0ce: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %I.WithSelf.Make.type.9c0: type = fn_type @I.WithSelf.Make, @I.WithSelf(%T) [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] -// CHECK:STDOUT: %.890: type = fn_type_with_self_type %I.WithSelf.Make.type.279, %T [symbolic] -// CHECK:STDOUT: %impl.elem0: %.890 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %.889: type = fn_type_with_self_type %I.WithSelf.Make.type.9c0, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.889 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.WithSelf.Make(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -482,10 +482,10 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %I.WithSelf.Make.type: type = fn_type @I.WithSelf.Make, @I.WithSelf(%T.loc8_9.1) [symbolic = %I.WithSelf.Make.type (constants.%I.WithSelf.Make.type.279)] -// CHECK:STDOUT: %.loc10_11.2: type = fn_type_with_self_type %I.WithSelf.Make.type, %T.loc8_9.1 [symbolic = %.loc10_11.2 (constants.%.890)] +// CHECK:STDOUT: %I.WithSelf.Make.type: type = fn_type @I.WithSelf.Make, @I.WithSelf(%T.loc8_9.1) [symbolic = %I.WithSelf.Make.type (constants.%I.WithSelf.Make.type.9c0)] +// CHECK:STDOUT: %.loc10_11.2: type = fn_type_with_self_type %I.WithSelf.Make.type, %T.loc8_9.1 [symbolic = %.loc10_11.2 (constants.%.889)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_9.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc10_11.2: @Use.%.loc10_11.2 (%.890) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc10_11.2: @Use.%.loc10_11.2 (%.889) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_11.2: = specific_impl_function %impl.elem0.loc10_11.2, @I.WithSelf.Make(%T.loc8_9.1) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: @Use.%T.as_type.loc8_18.1 (%T.as_type) { @@ -494,7 +494,7 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.as_type.loc8_18.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc10_11.1: type = converted %T.ref.loc10, %T.as_type.loc10 [symbolic = %T.as_type.loc8_18.1 (constants.%T.as_type)] // CHECK:STDOUT: %Make.ref: %I.assoc_type = name_ref Make, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc10_11.1: @Use.%.loc10_11.2 (%.890) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc10_11.1: @Use.%.loc10_11.2 (%.889) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_11.1: = specific_impl_function %impl.elem0.loc10_11.1, @I.WithSelf.Make(constants.%T) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: %I.WithSelf.Make.call: init @Use.%T.as_type.loc8_18.1 (%T.as_type) to %.loc8_18.1 = call %specific_impl_fn.loc10_11.1() @@ -505,8 +505,8 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: specific @Use(constants.%T) { // CHECK:STDOUT: %T.loc8_9.1 => constants.%T // CHECK:STDOUT: %T.as_type.loc8_18.1 => constants.%T.as_type -// CHECK:STDOUT: %.loc8_18.2 => constants.%.b40 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3df +// CHECK:STDOUT: %.loc8_18.2 => constants.%.0ce +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b3a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- access_assoc_method.carbon @@ -517,33 +517,33 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.Copy.decl [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.998: type = pattern_type %I.type [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %T: %I.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.3df: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %.b40: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %.0ce: Core.Form = init_form %T.as_type [symbolic] // CHECK:STDOUT: %Use.type: type = fn_type @Use [concrete] // CHECK:STDOUT: %Use: %Use.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %I.WithSelf.Copy.type.849: type = fn_type @I.WithSelf.Copy, @I.WithSelf(%T) [symbolic] +// CHECK:STDOUT: %I.WithSelf.Copy.type.54f: type = fn_type @I.WithSelf.Copy, @I.WithSelf(%T) [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] -// CHECK:STDOUT: %.c51: type = fn_type_with_self_type %I.WithSelf.Copy.type.849, %T [symbolic] -// CHECK:STDOUT: %impl.elem0: %.c51 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %.c06: type = fn_type_with_self_type %I.WithSelf.Copy.type.54f, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.c06 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.WithSelf.Copy(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %Use.decl: %Use.type = fn_decl @Use [concrete = constants.%Use] { -// CHECK:STDOUT: %T.patt: %pattern_type.998 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @Use.%pattern_type (%pattern_type.3df) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @Use.%pattern_type (%pattern_type.3df) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Use.%pattern_type (%pattern_type.3df) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Use.%pattern_type (%pattern_type.3df) = return_slot_pattern %return.param_patt, %.loc9_24.3 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.6cb = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %x.param_patt: @Use.%pattern_type (%pattern_type.b3a) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Use.%pattern_type (%pattern_type.b3a) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Use.%pattern_type (%pattern_type.b3a) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Use.%pattern_type (%pattern_type.b3a) = return_slot_pattern %return.param_patt, %.loc9_24.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_24: %I.type = name_ref T, %T.loc9_9.2 [symbolic = %T.loc9_9.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc9_24: type = facet_access_type %T.ref.loc9_24 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc9_24.3: type = converted %T.ref.loc9_24, %T.as_type.loc9_24 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_24.4: Core.Form = init_form %.loc9_24.3 [symbolic = %.loc9_24.2 (constants.%.b40)] +// CHECK:STDOUT: %.loc9_24.4: Core.Form = init_form %.loc9_24.3 [symbolic = %.loc9_24.2 (constants.%.0ce)] // CHECK:STDOUT: %.loc9_12: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] @@ -564,22 +564,22 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: generic fn @Use(%T.loc9_9.2: %I.type) { // CHECK:STDOUT: %T.loc9_9.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc9_9.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc9_18.1: type = facet_access_type %T.loc9_9.1 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_18.1 [symbolic = %pattern_type (constants.%pattern_type.3df)] -// CHECK:STDOUT: %.loc9_24.2: Core.Form = init_form %T.as_type.loc9_18.1 [symbolic = %.loc9_24.2 (constants.%.b40)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_18.1 [symbolic = %pattern_type (constants.%pattern_type.b3a)] +// CHECK:STDOUT: %.loc9_24.2: Core.Form = init_form %T.as_type.loc9_18.1 [symbolic = %.loc9_24.2 (constants.%.0ce)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_18.1 [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %I.WithSelf.Copy.type: type = fn_type @I.WithSelf.Copy, @I.WithSelf(%T.loc9_9.1) [symbolic = %I.WithSelf.Copy.type (constants.%I.WithSelf.Copy.type.849)] -// CHECK:STDOUT: %.loc10: type = fn_type_with_self_type %I.WithSelf.Copy.type, %T.loc9_9.1 [symbolic = %.loc10 (constants.%.c51)] +// CHECK:STDOUT: %I.WithSelf.Copy.type: type = fn_type @I.WithSelf.Copy, @I.WithSelf(%T.loc9_9.1) [symbolic = %I.WithSelf.Copy.type (constants.%I.WithSelf.Copy.type.54f)] +// CHECK:STDOUT: %.loc10: type = fn_type_with_self_type %I.WithSelf.Copy.type, %T.loc9_9.1 [symbolic = %.loc10 (constants.%.c06)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc9_9.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc10_11.2: @Use.%.loc10 (%.c51) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc10_11.2: @Use.%.loc10 (%.c06) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_11.2: = specific_impl_function %impl.elem0.loc10_11.2, @I.WithSelf.Copy(%T.loc9_9.1) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @Use.%T.as_type.loc9_18.1 (%T.as_type)) -> out %return.param: @Use.%T.as_type.loc9_18.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: @Use.%T.as_type.loc9_18.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %Copy.ref: %I.assoc_type = name_ref Copy, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc10_11.1: @Use.%.loc10 (%.c51) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc10_11.1: @Use.%.loc10 (%.c06) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc10_11: = bound_method %x.ref, %impl.elem0.loc10_11.1 // CHECK:STDOUT: %specific_impl_fn.loc10_11.1: = specific_impl_function %impl.elem0.loc10_11.1, @I.WithSelf.Copy(constants.%T) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc10_17: = bound_method %x.ref, %specific_impl_fn.loc10_11.1 @@ -592,8 +592,8 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: specific @Use(constants.%T) { // CHECK:STDOUT: %T.loc9_9.1 => constants.%T // CHECK:STDOUT: %T.as_type.loc9_18.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3df -// CHECK:STDOUT: %.loc9_24.2 => constants.%.b40 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b3a +// CHECK:STDOUT: %.loc9_24.2 => constants.%.0ce // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- access_selfless_method.carbon @@ -605,11 +605,11 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.Hello.decl [concrete] // CHECK:STDOUT: %T: %I.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.3df: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %I.WithSelf.Hello.type.b99: type = fn_type @I.WithSelf.Hello, @I.WithSelf(%T) [symbolic] +// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %I.WithSelf.Hello.type.d5c: type = fn_type @I.WithSelf.Hello, @I.WithSelf(%T) [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] -// CHECK:STDOUT: %.6dd: type = fn_type_with_self_type %I.WithSelf.Hello.type.b99, %T [symbolic] -// CHECK:STDOUT: %impl.elem0: %.6dd = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %.244: type = fn_type_with_self_type %I.WithSelf.Hello.type.d5c, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.244 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.WithSelf.Hello(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -618,17 +618,17 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %I.WithSelf.Hello.type: type = fn_type @I.WithSelf.Hello, @I.WithSelf(%T.loc8_9.1) [symbolic = %I.WithSelf.Hello.type (constants.%I.WithSelf.Hello.type.b99)] -// CHECK:STDOUT: %.loc10: type = fn_type_with_self_type %I.WithSelf.Hello.type, %T.loc8_9.1 [symbolic = %.loc10 (constants.%.6dd)] +// CHECK:STDOUT: %I.WithSelf.Hello.type: type = fn_type @I.WithSelf.Hello, @I.WithSelf(%T.loc8_9.1) [symbolic = %I.WithSelf.Hello.type (constants.%I.WithSelf.Hello.type.d5c)] +// CHECK:STDOUT: %.loc10: type = fn_type_with_self_type %I.WithSelf.Hello.type, %T.loc8_9.1 [symbolic = %.loc10 (constants.%.244)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_9.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc10_4.2: @Use.%.loc10 (%.6dd) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc10_4.2: @Use.%.loc10 (%.244) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_4.2: = specific_impl_function %impl.elem0.loc10_4.2, @I.WithSelf.Hello(%T.loc8_9.1) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @Use.%T.as_type.loc8_18.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: @Use.%T.as_type.loc8_18.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %Hello.ref: %I.assoc_type = name_ref Hello, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc10_4.1: @Use.%.loc10 (%.6dd) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc10_4.1: @Use.%.loc10 (%.244) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_4.1: = specific_impl_function %impl.elem0.loc10_4.1, @I.WithSelf.Hello(constants.%T) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %I.WithSelf.Hello.call: init %empty_tuple.type = call %specific_impl_fn.loc10_4.1() // CHECK:STDOUT: @@ -638,7 +638,7 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: specific @Use(constants.%T) { // CHECK:STDOUT: %T.loc8_9.1 => constants.%T // CHECK:STDOUT: %T.as_type.loc8_18.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3df +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b3a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- access_assoc_method_indirect.carbon @@ -649,12 +649,12 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.Copy.decl [concrete] // CHECK:STDOUT: %T: %I.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.3df: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %.b40: Core.Form = init_form %T.as_type [symbolic] -// CHECK:STDOUT: %I.WithSelf.Copy.type.849: type = fn_type @I.WithSelf.Copy, @I.WithSelf(%T) [symbolic] +// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %.0ce: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %I.WithSelf.Copy.type.54f: type = fn_type @I.WithSelf.Copy, @I.WithSelf(%T) [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] -// CHECK:STDOUT: %.c51: type = fn_type_with_self_type %I.WithSelf.Copy.type.849, %T [symbolic] -// CHECK:STDOUT: %impl.elem0: %.c51 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %.c06: type = fn_type_with_self_type %I.WithSelf.Copy.type.54f, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.c06 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.WithSelf.Copy(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -663,10 +663,10 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %I.WithSelf.Copy.type: type = fn_type @I.WithSelf.Copy, @I.WithSelf(%T.loc8_17.1) [symbolic = %I.WithSelf.Copy.type (constants.%I.WithSelf.Copy.type.849)] -// CHECK:STDOUT: %.loc10_14.2: type = fn_type_with_self_type %I.WithSelf.Copy.type, %T.loc8_17.1 [symbolic = %.loc10_14.2 (constants.%.c51)] +// CHECK:STDOUT: %I.WithSelf.Copy.type: type = fn_type @I.WithSelf.Copy, @I.WithSelf(%T.loc8_17.1) [symbolic = %I.WithSelf.Copy.type (constants.%I.WithSelf.Copy.type.54f)] +// CHECK:STDOUT: %.loc10_14.2: type = fn_type_with_self_type %I.WithSelf.Copy.type, %T.loc8_17.1 [symbolic = %.loc10_14.2 (constants.%.c06)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_17.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc10_14.2: @UseIndirect.%.loc10_14.2 (%.c51) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_14.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc10_14.2: @UseIndirect.%.loc10_14.2 (%.c06) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_14.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_14.2: = specific_impl_function %impl.elem0.loc10_14.2, @I.WithSelf.Copy(%T.loc8_17.1) [symbolic = %specific_impl_fn.loc10_14.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type)) -> out %return.param: @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type) { @@ -676,7 +676,7 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.as_type.loc8_26.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc10_14.1: type = converted %T.ref.loc10, %T.as_type.loc10 [symbolic = %T.as_type.loc8_26.1 (constants.%T.as_type)] // CHECK:STDOUT: %Copy.ref: %I.assoc_type = name_ref Copy, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc10_14.1: @UseIndirect.%.loc10_14.2 (%.c51) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_14.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc10_14.1: @UseIndirect.%.loc10_14.2 (%.c06) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_14.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc10_11: = bound_method %x.ref, %impl.elem0.loc10_14.1 // CHECK:STDOUT: %specific_impl_fn.loc10_14.1: = specific_impl_function %impl.elem0.loc10_14.1, @I.WithSelf.Copy(constants.%T) [symbolic = %specific_impl_fn.loc10_14.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc10_21: = bound_method %x.ref, %specific_impl_fn.loc10_14.1 @@ -689,8 +689,8 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: specific @UseIndirect(constants.%T) { // CHECK:STDOUT: %T.loc8_17.1 => constants.%T // CHECK:STDOUT: %T.as_type.loc8_26.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3df -// CHECK:STDOUT: %.loc8_32.2 => constants.%.b40 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b3a +// CHECK:STDOUT: %.loc8_32.2 => constants.%.0ce // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- access_constant_in_self_facet.carbon @@ -702,18 +702,18 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, @A.WithSelf.%X [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.357: %A.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.357 [symbolic_self] -// CHECK:STDOUT: %A.lookup_impl_witness.8d5: = lookup_impl_witness %.Self.357, @A [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %A.lookup_impl_witness.8d5, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.dad: %A.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.dad [symbolic_self] +// CHECK:STDOUT: %A.lookup_impl_witness.744: = lookup_impl_witness %.Self.dad, @A [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %A.lookup_impl_witness.744, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %A_where.type: type = facet_type <@A where %impl.elem0 = %empty_tuple.type> [concrete] -// CHECK:STDOUT: %pattern_type.b8d: type = pattern_type %A_where.type [concrete] +// CHECK:STDOUT: %pattern_type.634: type = pattern_type %A_where.type [concrete] // CHECK:STDOUT: %AA: %A_where.type = symbolic_binding AA, 0 [symbolic] // CHECK:STDOUT: %AA.as_type: type = facet_access_type %AA [symbolic] -// CHECK:STDOUT: %A.lookup_impl_witness.d92: = lookup_impl_witness %AA, @A [symbolic] -// CHECK:STDOUT: %A.facet: %A.type = facet_value %AA.as_type, (%A.lookup_impl_witness.d92) [symbolic] +// CHECK:STDOUT: %A.lookup_impl_witness.9cf: = lookup_impl_witness %AA, @A [symbolic] +// CHECK:STDOUT: %A.facet: %A.type = facet_value %AA.as_type, (%A.lookup_impl_witness.9cf) [symbolic] // CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] @@ -723,7 +723,7 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: file { // CHECK:STDOUT: %A.decl: type = interface_decl @A [concrete = constants.%A.type] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %AA.patt: %pattern_type.b8d = symbolic_binding_pattern AA, 0 [concrete] +// CHECK:STDOUT: %AA.patt: %pattern_type.634 = symbolic_binding_pattern AA, 0 [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %impl.elem0.loc6_33 [concrete] // CHECK:STDOUT: } { @@ -731,17 +731,17 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: %AA.as_type.loc6_33.2: type = facet_access_type %AA.ref [symbolic = %AA.as_type.loc6_33.1 (constants.%AA.as_type)] // CHECK:STDOUT: %.loc6_33.1: type = converted %AA.ref, %AA.as_type.loc6_33.2 [symbolic = %AA.as_type.loc6_33.1 (constants.%AA.as_type)] // CHECK:STDOUT: %X.ref.loc6_33: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc6_33: type = impl_witness_access constants.%A.lookup_impl_witness.d92, element0 [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: %impl.elem0.loc6_33: type = impl_witness_access constants.%A.lookup_impl_witness.9cf, element0 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc6_33.2: Core.Form = init_form %impl.elem0.loc6_33 [concrete = constants.%.262] // CHECK:STDOUT: %.loc6_13.1: type = splice_block %.loc6_13.2 [concrete = constants.%A_where.type] { // CHECK:STDOUT: %.Self.loc6_8: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %.Self.loc6_13: %A.type = symbolic_binding .Self [symbolic_self = constants.%.Self.357] -// CHECK:STDOUT: %.Self.ref: %A.type = name_ref .Self, %.Self.loc6_13 [symbolic_self = constants.%.Self.357] +// CHECK:STDOUT: %.Self.loc6_13: %A.type = symbolic_binding .Self [symbolic_self = constants.%.Self.dad] +// CHECK:STDOUT: %.Self.ref: %A.type = name_ref .Self, %.Self.loc6_13 [symbolic_self = constants.%.Self.dad] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc6_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref.loc6_19: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc6_19: type = impl_witness_access constants.%A.lookup_impl_witness.8d5, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %impl.elem0.loc6_19: type = impl_witness_access constants.%A.lookup_impl_witness.744, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc6_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_25.2: type = converted %.loc6_25.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc6_13.2: type = where_expr [concrete = constants.%A_where.type] { @@ -791,7 +791,7 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%.Self.357) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%.Self.dad) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -813,41 +813,41 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: constants { // CHECK:STDOUT: %A.type: type = facet_type <@A> [concrete] // CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A [concrete] -// CHECK:STDOUT: %assoc0.41c: %A.assoc_type = assoc_entity element0, @A.WithSelf.%X [concrete] +// CHECK:STDOUT: %assoc0.11e: %A.assoc_type = assoc_entity element0, @A.WithSelf.%X [concrete] // CHECK:STDOUT: %B.type: type = facet_type <@B> [concrete] // CHECK:STDOUT: %B.assoc_type: type = assoc_entity_type @B [concrete] -// CHECK:STDOUT: %assoc0.174: %B.assoc_type = assoc_entity element0, @B.WithSelf.%Y [concrete] +// CHECK:STDOUT: %assoc0.ee3: %B.assoc_type = assoc_entity element0, @B.WithSelf.%Y [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %BitAndWith.type.2af: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete] +// CHECK:STDOUT: %BitAndWith.type.802: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.2af = facet_value type, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.5d1: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %.9ee: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.5d1, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %A.type, %type.as.BitAndWith.impl.Op [concrete] -// CHECK:STDOUT: %facet_type.d25: type = facet_type <@A & @B> [concrete] -// CHECK:STDOUT: %.Self.0ed: %facet_type.d25 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.0ed [symbolic_self] -// CHECK:STDOUT: %A.lookup_impl_witness.a4b: = lookup_impl_witness %.Self.0ed, @A [symbolic_self] -// CHECK:STDOUT: %impl.elem0.914: type = impl_witness_access %A.lookup_impl_witness.a4b, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.678: type = facet_type <@A & @B> [concrete] +// CHECK:STDOUT: %.Self.8e5: %facet_type.678 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.8e5 [symbolic_self] +// CHECK:STDOUT: %A.lookup_impl_witness.b90: = lookup_impl_witness %.Self.8e5, @A [symbolic_self] +// CHECK:STDOUT: %impl.elem0.bfe: type = impl_witness_access %A.lookup_impl_witness.b90, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %B.lookup_impl_witness.c84: = lookup_impl_witness %.Self.0ed, @B [symbolic_self] -// CHECK:STDOUT: %impl.elem0.1ce: type = impl_witness_access %B.lookup_impl_witness.c84, element0 [symbolic_self] +// CHECK:STDOUT: %B.lookup_impl_witness.3ef: = lookup_impl_witness %.Self.8e5, @B [symbolic_self] +// CHECK:STDOUT: %impl.elem0.3d7: type = impl_witness_access %B.lookup_impl_witness.3ef, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %facet_type.04b: type = facet_type <@A & @B where %impl.elem0.914 = %empty_tuple.type and %impl.elem0.1ce = %empty_struct_type> [concrete] -// CHECK:STDOUT: %pattern_type.8a8: type = pattern_type %facet_type.04b [concrete] -// CHECK:STDOUT: %AB: %facet_type.04b = symbolic_binding AB, 0 [symbolic] +// CHECK:STDOUT: %facet_type.121: type = facet_type <@A & @B where %impl.elem0.bfe = %empty_tuple.type and %impl.elem0.3d7 = %empty_struct_type> [concrete] +// CHECK:STDOUT: %pattern_type.a40: type = pattern_type %facet_type.121 [concrete] +// CHECK:STDOUT: %AB: %facet_type.121 = symbolic_binding AB, 0 [symbolic] // CHECK:STDOUT: %AB.as_type: type = facet_access_type %AB [symbolic] -// CHECK:STDOUT: %A.lookup_impl_witness.494: = lookup_impl_witness %AB, @A [symbolic] +// CHECK:STDOUT: %A.lookup_impl_witness.ed2: = lookup_impl_witness %AB, @A [symbolic] // CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %B.lookup_impl_witness.4c0: = lookup_impl_witness %AB, @B [symbolic] +// CHECK:STDOUT: %B.lookup_impl_witness.77c: = lookup_impl_witness %AB, @B [symbolic] // CHECK:STDOUT: %.469: Core.Form = init_form %empty_struct_type [concrete] // CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] @@ -855,105 +855,105 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @type.as.BitAndWith.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @type.as.BitAndWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %AB.patt: %pattern_type.8a8 = symbolic_binding_pattern AB, 0 [concrete] +// CHECK:STDOUT: %AB.patt: %pattern_type.a40 = symbolic_binding_pattern AB, 0 [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %impl.elem0.loc14_49 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %AB.ref: %facet_type.04b = name_ref AB, %AB.loc14_8.2 [symbolic = %AB.loc14_8.1 (constants.%AB)] +// CHECK:STDOUT: %AB.ref: %facet_type.121 = name_ref AB, %AB.loc14_8.2 [symbolic = %AB.loc14_8.1 (constants.%AB)] // CHECK:STDOUT: %AB.as_type.loc14_49.2: type = facet_access_type %AB.ref [symbolic = %AB.as_type.loc14_49.1 (constants.%AB.as_type)] // CHECK:STDOUT: %.loc14_49.1: type = converted %AB.ref, %AB.as_type.loc14_49.2 [symbolic = %AB.as_type.loc14_49.1 (constants.%AB.as_type)] -// CHECK:STDOUT: %X.ref.loc14_49: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.41c] -// CHECK:STDOUT: %impl.elem0.loc14_49: type = impl_witness_access constants.%A.lookup_impl_witness.494, element0 [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: %X.ref.loc14_49: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.11e] +// CHECK:STDOUT: %impl.elem0.loc14_49: type = impl_witness_access constants.%A.lookup_impl_witness.ed2, element0 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc14_49.2: Core.Form = init_form %impl.elem0.loc14_49 [concrete = constants.%.262] -// CHECK:STDOUT: %.loc14_17.1: type = splice_block %.loc14_17.2 [concrete = constants.%facet_type.04b] { +// CHECK:STDOUT: %.loc14_17.1: type = splice_block %.loc14_17.2 [concrete = constants.%facet_type.121] { // CHECK:STDOUT: %.Self.loc14_8: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B.type] -// CHECK:STDOUT: %impl.elem0.loc14_13: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc14_13: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %A.ref, %impl.elem0.loc14_13 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method(%A.ref, %B.ref) [concrete = constants.%facet_type.d25] -// CHECK:STDOUT: %.loc14_13.1: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type.d25] -// CHECK:STDOUT: %.loc14_13.2: type = converted %type.as.BitAndWith.impl.Op.call, %.loc14_13.1 [concrete = constants.%facet_type.d25] -// CHECK:STDOUT: %.Self.loc14_17: %facet_type.d25 = symbolic_binding .Self [symbolic_self = constants.%.Self.0ed] -// CHECK:STDOUT: %.Self.ref.loc14_23: %facet_type.d25 = name_ref .Self, %.Self.loc14_17 [symbolic_self = constants.%.Self.0ed] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method(%A.ref, %B.ref) [concrete = constants.%facet_type.678] +// CHECK:STDOUT: %.loc14_13.1: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type.678] +// CHECK:STDOUT: %.loc14_13.2: type = converted %type.as.BitAndWith.impl.Op.call, %.loc14_13.1 [concrete = constants.%facet_type.678] +// CHECK:STDOUT: %.Self.loc14_17: %facet_type.678 = symbolic_binding .Self [symbolic_self = constants.%.Self.8e5] +// CHECK:STDOUT: %.Self.ref.loc14_23: %facet_type.678 = name_ref .Self, %.Self.loc14_17 [symbolic_self = constants.%.Self.8e5] // CHECK:STDOUT: %.Self.as_type.loc14_23: type = facet_access_type %.Self.ref.loc14_23 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc14_23: type = converted %.Self.ref.loc14_23, %.Self.as_type.loc14_23 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %X.ref.loc14_23: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.41c] -// CHECK:STDOUT: %impl.elem0.loc14_23: type = impl_witness_access constants.%A.lookup_impl_witness.a4b, element0 [symbolic_self = constants.%impl.elem0.914] +// CHECK:STDOUT: %X.ref.loc14_23: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.11e] +// CHECK:STDOUT: %impl.elem0.loc14_23: type = impl_witness_access constants.%A.lookup_impl_witness.b90, element0 [symbolic_self = constants.%impl.elem0.bfe] // CHECK:STDOUT: %.loc14_29.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc14_29.2: type = converted %.loc14_29.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.Self.ref.loc14_35: %facet_type.d25 = name_ref .Self, %.Self.loc14_17 [symbolic_self = constants.%.Self.0ed] +// CHECK:STDOUT: %.Self.ref.loc14_35: %facet_type.678 = name_ref .Self, %.Self.loc14_17 [symbolic_self = constants.%.Self.8e5] // CHECK:STDOUT: %.Self.as_type.loc14_35: type = facet_access_type %.Self.ref.loc14_35 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc14_35: type = converted %.Self.ref.loc14_35, %.Self.as_type.loc14_35 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %Y.ref: %B.assoc_type = name_ref Y, @Y.%assoc0 [concrete = constants.%assoc0.174] -// CHECK:STDOUT: %impl.elem0.loc14_35: type = impl_witness_access constants.%B.lookup_impl_witness.c84, element0 [symbolic_self = constants.%impl.elem0.1ce] +// CHECK:STDOUT: %Y.ref: %B.assoc_type = name_ref Y, @Y.%assoc0 [concrete = constants.%assoc0.ee3] +// CHECK:STDOUT: %impl.elem0.loc14_35: type = impl_witness_access constants.%B.lookup_impl_witness.3ef, element0 [symbolic_self = constants.%impl.elem0.3d7] // CHECK:STDOUT: %.loc14_41.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc14_41.2: type = converted %.loc14_41.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %.loc14_17.2: type = where_expr [concrete = constants.%facet_type.04b] { +// CHECK:STDOUT: %.loc14_17.2: type = where_expr [concrete = constants.%facet_type.121] { // CHECK:STDOUT: requirement_base_facet_type %type.as.BitAndWith.impl.Op.call // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc14_23, %.loc14_29.2 // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc14_35, %.loc14_41.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %AB.loc14_8.2: %facet_type.04b = symbolic_binding AB, 0 [symbolic = %AB.loc14_8.1 (constants.%AB)] +// CHECK:STDOUT: %AB.loc14_8.2: %facet_type.121 = symbolic_binding AB, 0 [symbolic = %AB.loc14_8.1 (constants.%AB)] // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %AB.patt: %pattern_type.8a8 = symbolic_binding_pattern AB, 0 [concrete] +// CHECK:STDOUT: %AB.patt: %pattern_type.a40 = symbolic_binding_pattern AB, 0 [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern %return.param_patt, %impl.elem0.loc18_49 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %AB.ref: %facet_type.04b = name_ref AB, %AB.loc18_8.2 [symbolic = %AB.loc18_8.1 (constants.%AB)] +// CHECK:STDOUT: %AB.ref: %facet_type.121 = name_ref AB, %AB.loc18_8.2 [symbolic = %AB.loc18_8.1 (constants.%AB)] // CHECK:STDOUT: %AB.as_type.loc18_49.2: type = facet_access_type %AB.ref [symbolic = %AB.as_type.loc18_49.1 (constants.%AB.as_type)] // CHECK:STDOUT: %.loc18_49.1: type = converted %AB.ref, %AB.as_type.loc18_49.2 [symbolic = %AB.as_type.loc18_49.1 (constants.%AB.as_type)] -// CHECK:STDOUT: %Y.ref.loc18_49: %B.assoc_type = name_ref Y, @Y.%assoc0 [concrete = constants.%assoc0.174] -// CHECK:STDOUT: %impl.elem0.loc18_49: type = impl_witness_access constants.%B.lookup_impl_witness.4c0, element0 [concrete = constants.%empty_struct_type] +// CHECK:STDOUT: %Y.ref.loc18_49: %B.assoc_type = name_ref Y, @Y.%assoc0 [concrete = constants.%assoc0.ee3] +// CHECK:STDOUT: %impl.elem0.loc18_49: type = impl_witness_access constants.%B.lookup_impl_witness.77c, element0 [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc18_49.2: Core.Form = init_form %impl.elem0.loc18_49 [concrete = constants.%.469] -// CHECK:STDOUT: %.loc18_17.1: type = splice_block %.loc18_17.2 [concrete = constants.%facet_type.04b] { +// CHECK:STDOUT: %.loc18_17.1: type = splice_block %.loc18_17.2 [concrete = constants.%facet_type.121] { // CHECK:STDOUT: %.Self.loc18_8: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B.type] -// CHECK:STDOUT: %impl.elem0.loc18_13: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc18_13: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %A.ref, %impl.elem0.loc18_13 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method(%A.ref, %B.ref) [concrete = constants.%facet_type.d25] -// CHECK:STDOUT: %.loc18_13.1: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type.d25] -// CHECK:STDOUT: %.loc18_13.2: type = converted %type.as.BitAndWith.impl.Op.call, %.loc18_13.1 [concrete = constants.%facet_type.d25] -// CHECK:STDOUT: %.Self.loc18_17: %facet_type.d25 = symbolic_binding .Self [symbolic_self = constants.%.Self.0ed] -// CHECK:STDOUT: %.Self.ref.loc18_23: %facet_type.d25 = name_ref .Self, %.Self.loc18_17 [symbolic_self = constants.%.Self.0ed] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method(%A.ref, %B.ref) [concrete = constants.%facet_type.678] +// CHECK:STDOUT: %.loc18_13.1: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type.678] +// CHECK:STDOUT: %.loc18_13.2: type = converted %type.as.BitAndWith.impl.Op.call, %.loc18_13.1 [concrete = constants.%facet_type.678] +// CHECK:STDOUT: %.Self.loc18_17: %facet_type.678 = symbolic_binding .Self [symbolic_self = constants.%.Self.8e5] +// CHECK:STDOUT: %.Self.ref.loc18_23: %facet_type.678 = name_ref .Self, %.Self.loc18_17 [symbolic_self = constants.%.Self.8e5] // CHECK:STDOUT: %.Self.as_type.loc18_23: type = facet_access_type %.Self.ref.loc18_23 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc18_23: type = converted %.Self.ref.loc18_23, %.Self.as_type.loc18_23 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %X.ref: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.41c] -// CHECK:STDOUT: %impl.elem0.loc18_23: type = impl_witness_access constants.%A.lookup_impl_witness.a4b, element0 [symbolic_self = constants.%impl.elem0.914] +// CHECK:STDOUT: %X.ref: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.11e] +// CHECK:STDOUT: %impl.elem0.loc18_23: type = impl_witness_access constants.%A.lookup_impl_witness.b90, element0 [symbolic_self = constants.%impl.elem0.bfe] // CHECK:STDOUT: %.loc18_29.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc18_29.2: type = converted %.loc18_29.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.Self.ref.loc18_35: %facet_type.d25 = name_ref .Self, %.Self.loc18_17 [symbolic_self = constants.%.Self.0ed] +// CHECK:STDOUT: %.Self.ref.loc18_35: %facet_type.678 = name_ref .Self, %.Self.loc18_17 [symbolic_self = constants.%.Self.8e5] // CHECK:STDOUT: %.Self.as_type.loc18_35: type = facet_access_type %.Self.ref.loc18_35 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc18_35: type = converted %.Self.ref.loc18_35, %.Self.as_type.loc18_35 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %Y.ref.loc18_35: %B.assoc_type = name_ref Y, @Y.%assoc0 [concrete = constants.%assoc0.174] -// CHECK:STDOUT: %impl.elem0.loc18_35: type = impl_witness_access constants.%B.lookup_impl_witness.c84, element0 [symbolic_self = constants.%impl.elem0.1ce] +// CHECK:STDOUT: %Y.ref.loc18_35: %B.assoc_type = name_ref Y, @Y.%assoc0 [concrete = constants.%assoc0.ee3] +// CHECK:STDOUT: %impl.elem0.loc18_35: type = impl_witness_access constants.%B.lookup_impl_witness.3ef, element0 [symbolic_self = constants.%impl.elem0.3d7] // CHECK:STDOUT: %.loc18_41.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc18_41.2: type = converted %.loc18_41.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %.loc18_17.2: type = where_expr [concrete = constants.%facet_type.04b] { +// CHECK:STDOUT: %.loc18_17.2: type = where_expr [concrete = constants.%facet_type.121] { // CHECK:STDOUT: requirement_base_facet_type %type.as.BitAndWith.impl.Op.call // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc18_23, %.loc18_29.2 // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc18_35, %.loc18_41.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %AB.loc18_8.2: %facet_type.04b = symbolic_binding AB, 0 [symbolic = %AB.loc18_8.1 (constants.%AB)] +// CHECK:STDOUT: %AB.loc18_8.2: %facet_type.121 = symbolic_binding AB, 0 [symbolic = %AB.loc18_8.1 (constants.%AB)] // CHECK:STDOUT: %return.param: ref %empty_struct_type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_struct_type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%AB.loc14_8.2: %facet_type.04b) { -// CHECK:STDOUT: %AB.loc14_8.1: %facet_type.04b = symbolic_binding AB, 0 [symbolic = %AB.loc14_8.1 (constants.%AB)] +// CHECK:STDOUT: generic fn @F(%AB.loc14_8.2: %facet_type.121) { +// CHECK:STDOUT: %AB.loc14_8.1: %facet_type.121 = symbolic_binding AB, 0 [symbolic = %AB.loc14_8.1 (constants.%AB)] // CHECK:STDOUT: %AB.as_type.loc14_49.1: type = facet_access_type %AB.loc14_8.1 [symbolic = %AB.as_type.loc14_49.1 (constants.%AB.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -967,8 +967,8 @@ fn F(U:! W, V:! Z(.Self) where .Z1 impls (Y where .Y1 impls (X where .X1 = U))) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%AB.loc18_8.2: %facet_type.04b) { -// CHECK:STDOUT: %AB.loc18_8.1: %facet_type.04b = symbolic_binding AB, 0 [symbolic = %AB.loc18_8.1 (constants.%AB)] +// CHECK:STDOUT: generic fn @G(%AB.loc18_8.2: %facet_type.121) { +// CHECK:STDOUT: %AB.loc18_8.1: %facet_type.121 = symbolic_binding AB, 0 [symbolic = %AB.loc18_8.1 (constants.%AB)] // CHECK:STDOUT: %AB.as_type.loc18_49.1: type = facet_access_type %AB.loc18_8.1 [symbolic = %AB.as_type.loc18_49.1 (constants.%AB.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/facet/call_combined_impl_witness.carbon b/toolchain/check/testdata/facet/call_combined_impl_witness.carbon index 4431b1e4083f..8d62f069a3ae 100644 --- a/toolchain/check/testdata/facet/call_combined_impl_witness.carbon +++ b/toolchain/check/testdata/facet/call_combined_impl_witness.carbon @@ -49,20 +49,20 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Empty.type: type = facet_type <@Empty> [concrete] -// CHECK:STDOUT: %Self.2f3: %Empty.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.d44: %Empty.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %A.type: type = facet_type <@A> [concrete] -// CHECK:STDOUT: %Self.2fc: %A.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %A.WithSelf.AA.type.b5d: type = fn_type @A.WithSelf.AA, @A.WithSelf(%Self.2fc) [symbolic] +// CHECK:STDOUT: %Self.d0c: %A.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %A.WithSelf.AA.type.89d: type = fn_type @A.WithSelf.AA, @A.WithSelf(%Self.d0c) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %A.WithSelf.AA.ba1: %A.WithSelf.AA.type.b5d = struct_value () [symbolic] +// CHECK:STDOUT: %A.WithSelf.AA.7fd: %A.WithSelf.AA.type.89d = struct_value () [symbolic] // CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A [concrete] -// CHECK:STDOUT: %assoc0.629: %A.assoc_type = assoc_entity element0, @A.WithSelf.%A.WithSelf.AA.decl [concrete] +// CHECK:STDOUT: %assoc0.2af: %A.assoc_type = assoc_entity element0, @A.WithSelf.%A.WithSelf.AA.decl [concrete] // CHECK:STDOUT: %B.type: type = facet_type <@B> [concrete] -// CHECK:STDOUT: %Self.60f: %B.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %B.WithSelf.BB.type.209: type = fn_type @B.WithSelf.BB, @B.WithSelf(%Self.60f) [symbolic] -// CHECK:STDOUT: %B.WithSelf.BB.8bc: %B.WithSelf.BB.type.209 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.b45: %B.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %B.WithSelf.BB.type.e4f: type = fn_type @B.WithSelf.BB, @B.WithSelf(%Self.b45) [symbolic] +// CHECK:STDOUT: %B.WithSelf.BB.a55: %B.WithSelf.BB.type.e4f = struct_value () [symbolic] // CHECK:STDOUT: %B.assoc_type: type = assoc_entity_type @B [concrete] -// CHECK:STDOUT: %assoc0.8d9: %B.assoc_type = assoc_entity element0, @B.WithSelf.%B.WithSelf.BB.decl [concrete] +// CHECK:STDOUT: %assoc0.880: %B.assoc_type = assoc_entity element0, @B.WithSelf.%B.WithSelf.BB.decl [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] @@ -71,69 +71,69 @@ fn F() { // CHECK:STDOUT: %A.impl_witness: = impl_witness @C.as.A.impl.%A.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.A.impl.AA.type: type = fn_type @C.as.A.impl.AA [concrete] // CHECK:STDOUT: %C.as.A.impl.AA: %C.as.A.impl.AA.type = struct_value () [concrete] -// CHECK:STDOUT: %A.facet.b2b: %A.type = facet_value %C, (%A.impl_witness) [concrete] -// CHECK:STDOUT: %A.WithSelf.AA.type.24a: type = fn_type @A.WithSelf.AA, @A.WithSelf(%A.facet.b2b) [concrete] -// CHECK:STDOUT: %A.WithSelf.AA.d71: %A.WithSelf.AA.type.24a = struct_value () [concrete] +// CHECK:STDOUT: %A.facet.2ca: %A.type = facet_value %C, (%A.impl_witness) [concrete] +// CHECK:STDOUT: %A.WithSelf.AA.type.624: type = fn_type @A.WithSelf.AA, @A.WithSelf(%A.facet.2ca) [concrete] +// CHECK:STDOUT: %A.WithSelf.AA.879: %A.WithSelf.AA.type.624 = struct_value () [concrete] // CHECK:STDOUT: %B.impl_witness: = impl_witness @C.as.B.impl.%B.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.B.impl.BB.type: type = fn_type @C.as.B.impl.BB [concrete] // CHECK:STDOUT: %C.as.B.impl.BB: %C.as.B.impl.BB.type = struct_value () [concrete] -// CHECK:STDOUT: %B.facet.a6e: %B.type = facet_value %C, (%B.impl_witness) [concrete] -// CHECK:STDOUT: %B.WithSelf.BB.type.cbd: type = fn_type @B.WithSelf.BB, @B.WithSelf(%B.facet.a6e) [concrete] -// CHECK:STDOUT: %B.WithSelf.BB.5d0: %B.WithSelf.BB.type.cbd = struct_value () [concrete] +// CHECK:STDOUT: %B.facet.464: %B.type = facet_value %C, (%B.impl_witness) [concrete] +// CHECK:STDOUT: %B.WithSelf.BB.type.5c1: type = fn_type @B.WithSelf.BB, @B.WithSelf(%B.facet.464) [concrete] +// CHECK:STDOUT: %B.WithSelf.BB.f03: %B.WithSelf.BB.type.5c1 = struct_value () [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %BitAndWith.type.fd8: type = generic_interface_type @BitAndWith [concrete] -// CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.fd8 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.2af: type = facet_type <@BitAndWith, @BitAndWith(type)> [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] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.2af = facet_value type, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.5d1: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %.9ee: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.5d1, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.a91: = bound_method %A.type, %type.as.BitAndWith.impl.Op [concrete] -// CHECK:STDOUT: %facet_type.51e: type = facet_type <@Empty & @A> [concrete] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.fd1: = bound_method %facet_type.51e, %type.as.BitAndWith.impl.Op [concrete] -// CHECK:STDOUT: %facet_type.a50: type = facet_type <@Empty & @A & @B> [concrete] -// CHECK:STDOUT: %pattern_type.abf: type = pattern_type %facet_type.a50 [concrete] -// CHECK:STDOUT: %T: %facet_type.a50 = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.36e: = bound_method %A.type, %type.as.BitAndWith.impl.Op [concrete] +// CHECK:STDOUT: %facet_type.b34: type = facet_type <@Empty & @A> [concrete] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.188: = bound_method %facet_type.b34, %type.as.BitAndWith.impl.Op [concrete] +// CHECK:STDOUT: %facet_type.22e: type = facet_type <@Empty & @A & @B> [concrete] +// CHECK:STDOUT: %pattern_type.a67: type = pattern_type %facet_type.22e [concrete] +// CHECK:STDOUT: %T: %facet_type.22e = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.7b6: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.653: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %A.WithSelf.AA.type.056: type = fn_type @A.WithSelf.AA, @A.WithSelf(%T) [symbolic] -// CHECK:STDOUT: %A.WithSelf.AA.5e7: %A.WithSelf.AA.type.056 = struct_value () [symbolic] -// CHECK:STDOUT: %B.WithSelf.BB.type.ef2: type = fn_type @B.WithSelf.BB, @B.WithSelf(%T) [symbolic] -// CHECK:STDOUT: %B.WithSelf.BB.e3c: %B.WithSelf.BB.type.ef2 = struct_value () [symbolic] +// CHECK:STDOUT: %A.WithSelf.AA.type.5d9: type = fn_type @A.WithSelf.AA, @A.WithSelf(%T) [symbolic] +// CHECK:STDOUT: %A.WithSelf.AA.bcc: %A.WithSelf.AA.type.5d9 = struct_value () [symbolic] +// CHECK:STDOUT: %B.WithSelf.BB.type.596: type = fn_type @B.WithSelf.BB, @B.WithSelf(%T) [symbolic] +// CHECK:STDOUT: %B.WithSelf.BB.49e: %B.WithSelf.BB.type.596 = struct_value () [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T, @A [symbolic] -// CHECK:STDOUT: %A.facet.66b: %A.type = facet_value %T.as_type, (%A.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %A.WithSelf.AA.type.06d: type = fn_type @A.WithSelf.AA, @A.WithSelf(%A.facet.66b) [symbolic] -// CHECK:STDOUT: %A.WithSelf.AA.a3a: %A.WithSelf.AA.type.06d = struct_value () [symbolic] -// CHECK:STDOUT: %.3a4: type = fn_type_with_self_type %A.WithSelf.AA.type.06d, %A.facet.66b [symbolic] -// CHECK:STDOUT: %impl.elem0.500: %.3a4 = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.140: = specific_impl_function %impl.elem0.500, @A.WithSelf.AA(%A.facet.66b) [symbolic] +// CHECK:STDOUT: %A.facet.7b4: %A.type = facet_value %T.as_type, (%A.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %A.WithSelf.AA.type.c6d: type = fn_type @A.WithSelf.AA, @A.WithSelf(%A.facet.7b4) [symbolic] +// CHECK:STDOUT: %A.WithSelf.AA.9ea: %A.WithSelf.AA.type.c6d = struct_value () [symbolic] +// CHECK:STDOUT: %.03b: type = fn_type_with_self_type %A.WithSelf.AA.type.c6d, %A.facet.7b4 [symbolic] +// CHECK:STDOUT: %impl.elem0.739: %.03b = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.ece: = specific_impl_function %impl.elem0.739, @A.WithSelf.AA(%A.facet.7b4) [symbolic] // CHECK:STDOUT: %B.lookup_impl_witness: = lookup_impl_witness %T, @B [symbolic] -// CHECK:STDOUT: %B.facet.909: %B.type = facet_value %T.as_type, (%B.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %B.WithSelf.BB.type.240: type = fn_type @B.WithSelf.BB, @B.WithSelf(%B.facet.909) [symbolic] -// CHECK:STDOUT: %B.WithSelf.BB.2b6: %B.WithSelf.BB.type.240 = struct_value () [symbolic] -// CHECK:STDOUT: %.97e: type = fn_type_with_self_type %B.WithSelf.BB.type.240, %B.facet.909 [symbolic] -// CHECK:STDOUT: %impl.elem0.541: %.97e = impl_witness_access %B.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.1a0: = specific_impl_function %impl.elem0.541, @B.WithSelf.BB(%B.facet.909) [symbolic] +// CHECK:STDOUT: %B.facet.746: %B.type = facet_value %T.as_type, (%B.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %B.WithSelf.BB.type.a69: type = fn_type @B.WithSelf.BB, @B.WithSelf(%B.facet.746) [symbolic] +// CHECK:STDOUT: %B.WithSelf.BB.d89: %B.WithSelf.BB.type.a69 = struct_value () [symbolic] +// CHECK:STDOUT: %.655: type = fn_type_with_self_type %B.WithSelf.BB.type.a69, %B.facet.746 [symbolic] +// CHECK:STDOUT: %impl.elem0.793: %.655 = impl_witness_access %B.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.c6b: = specific_impl_function %impl.elem0.793, @B.WithSelf.BB(%B.facet.746) [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %facet_value: %facet_type.a50 = facet_value %C, (%Empty.impl_witness, %A.impl_witness, %B.impl_witness) [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %facet_value: %facet_type.22e = facet_value %C, (%Empty.impl_witness, %A.impl_witness, %B.impl_witness) [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%facet_value) [concrete] -// CHECK:STDOUT: %.7a6: ref %C = temporary invalid, %C.val [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.790b3b.2: type = fn_type @Destroy.Op.loc45_8.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.7a6, %Destroy.Op.2dd605.2 [concrete] -// CHECK:STDOUT: %.0ba: type = fn_type_with_self_type %A.WithSelf.AA.type.24a, %A.facet.b2b [concrete] -// CHECK:STDOUT: %.a68: type = fn_type_with_self_type %B.WithSelf.BB.type.cbd, %B.facet.a6e [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: %.070: type = fn_type_with_self_type %A.WithSelf.AA.type.624, %A.facet.2ca [concrete] +// CHECK:STDOUT: %.d06: type = fn_type_with_self_type %B.WithSelf.BB.type.5c1, %B.facet.464 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -143,9 +143,9 @@ fn F() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.fd8 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @type.as.BitAndWith.impl [concrete] +// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.a06 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @type.as.BitAndWith.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -177,30 +177,30 @@ fn F() { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B.type] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %T.patt: %pattern_type.abf = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @G.%pattern_type (%pattern_type.7b6) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @G.%pattern_type (%pattern_type.7b6) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.a67 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %t.param_patt: @G.%pattern_type (%pattern_type.653) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @G.%pattern_type (%pattern_type.653) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc33_20.1: type = splice_block %.loc33_20.3 [concrete = constants.%facet_type.a50] { +// CHECK:STDOUT: %.loc33_20.1: type = splice_block %.loc33_20.3 [concrete = constants.%facet_type.22e] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %A.ref.loc33: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %Empty.ref: type = name_ref Empty, file.%Empty.decl [concrete = constants.%Empty.type] -// CHECK:STDOUT: %impl.elem0.loc33_12: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %bound_method.loc33_12: = bound_method %A.ref.loc33, %impl.elem0.loc33_12 [concrete = constants.%type.as.BitAndWith.impl.Op.bound.a91] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc33_12: init type = call %bound_method.loc33_12(%A.ref.loc33, %Empty.ref) [concrete = constants.%facet_type.51e] +// CHECK:STDOUT: %impl.elem0.loc33_12: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %bound_method.loc33_12: = bound_method %A.ref.loc33, %impl.elem0.loc33_12 [concrete = constants.%type.as.BitAndWith.impl.Op.bound.36e] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc33_12: init type = call %bound_method.loc33_12(%A.ref.loc33, %Empty.ref) [concrete = constants.%facet_type.b34] // CHECK:STDOUT: %B.ref.loc33: type = name_ref B, file.%B.decl [concrete = constants.%B.type] -// CHECK:STDOUT: %impl.elem0.loc33_20: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %bound_method.loc33_20: = bound_method %type.as.BitAndWith.impl.Op.call.loc33_12, %impl.elem0.loc33_20 [concrete = constants.%type.as.BitAndWith.impl.Op.bound.fd1] -// CHECK:STDOUT: %.loc33_12.1: type = value_of_initializer %type.as.BitAndWith.impl.Op.call.loc33_12 [concrete = constants.%facet_type.51e] -// CHECK:STDOUT: %.loc33_12.2: type = converted %type.as.BitAndWith.impl.Op.call.loc33_12, %.loc33_12.1 [concrete = constants.%facet_type.51e] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc33_20: init type = call %bound_method.loc33_20(%.loc33_12.2, %B.ref.loc33) [concrete = constants.%facet_type.a50] -// CHECK:STDOUT: %.loc33_20.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call.loc33_20 [concrete = constants.%facet_type.a50] -// CHECK:STDOUT: %.loc33_20.3: type = converted %type.as.BitAndWith.impl.Op.call.loc33_20, %.loc33_20.2 [concrete = constants.%facet_type.a50] +// CHECK:STDOUT: %impl.elem0.loc33_20: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %bound_method.loc33_20: = bound_method %type.as.BitAndWith.impl.Op.call.loc33_12, %impl.elem0.loc33_20 [concrete = constants.%type.as.BitAndWith.impl.Op.bound.188] +// CHECK:STDOUT: %.loc33_12.1: type = value_of_initializer %type.as.BitAndWith.impl.Op.call.loc33_12 [concrete = constants.%facet_type.b34] +// CHECK:STDOUT: %.loc33_12.2: type = converted %type.as.BitAndWith.impl.Op.call.loc33_12, %.loc33_12.1 [concrete = constants.%facet_type.b34] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc33_20: init type = call %bound_method.loc33_20(%.loc33_12.2, %B.ref.loc33) [concrete = constants.%facet_type.22e] +// CHECK:STDOUT: %.loc33_20.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call.loc33_20 [concrete = constants.%facet_type.22e] +// CHECK:STDOUT: %.loc33_20.3: type = converted %type.as.BitAndWith.impl.Op.call.loc33_20, %.loc33_20.2 [concrete = constants.%facet_type.22e] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc33_7.2: %facet_type.a50 = symbolic_binding T, 0 [symbolic = %T.loc33_7.1 (constants.%T)] +// CHECK:STDOUT: %T.loc33_7.2: %facet_type.22e = symbolic_binding T, 0 [symbolic = %T.loc33_7.1 (constants.%T)] // CHECK:STDOUT: %t.param: @G.%T.as_type.loc33_28.1 (%T.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc33_28.1: type = splice_block %.loc33_28.2 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc33: %facet_type.a50 = name_ref T, %T.loc33_7.2 [symbolic = %T.loc33_7.1 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc33: %facet_type.22e = name_ref T, %T.loc33_7.2 [symbolic = %T.loc33_7.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc33_28.2: type = facet_access_type %T.ref.loc33 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc33_28.2: type = converted %T.ref.loc33, %T.as_type.loc33_28.2 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] // CHECK:STDOUT: } @@ -210,7 +210,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Empty { -// CHECK:STDOUT: %Self: %Empty.type = symbolic_binding Self, 0 [symbolic = constants.%Self.2f3] +// CHECK:STDOUT: %Self: %Empty.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d44] // CHECK:STDOUT: %Empty.WithSelf.decl = interface_with_self_decl @Empty [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -223,12 +223,12 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @A { -// CHECK:STDOUT: %Self: %A.type = symbolic_binding Self, 0 [symbolic = constants.%Self.2fc] +// CHECK:STDOUT: %Self: %A.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d0c] // CHECK:STDOUT: %A.WithSelf.decl = interface_with_self_decl @A [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %A.WithSelf.AA.decl: @A.WithSelf.%A.WithSelf.AA.type (%A.WithSelf.AA.type.b5d) = fn_decl @A.WithSelf.AA [symbolic = @A.WithSelf.%A.WithSelf.AA (constants.%A.WithSelf.AA.ba1)] {} {} -// CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, %A.WithSelf.AA.decl [concrete = constants.%assoc0.629] +// CHECK:STDOUT: %A.WithSelf.AA.decl: @A.WithSelf.%A.WithSelf.AA.type (%A.WithSelf.AA.type.89d) = fn_decl @A.WithSelf.AA [symbolic = @A.WithSelf.%A.WithSelf.AA (constants.%A.WithSelf.AA.7fd)] {} {} +// CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, %A.WithSelf.AA.decl [concrete = constants.%assoc0.2af] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -240,12 +240,12 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @B { -// CHECK:STDOUT: %Self: %B.type = symbolic_binding Self, 0 [symbolic = constants.%Self.60f] +// CHECK:STDOUT: %Self: %B.type = symbolic_binding Self, 0 [symbolic = constants.%Self.b45] // CHECK:STDOUT: %B.WithSelf.decl = interface_with_self_decl @B [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %B.WithSelf.BB.decl: @B.WithSelf.%B.WithSelf.BB.type (%B.WithSelf.BB.type.209) = fn_decl @B.WithSelf.BB [symbolic = @B.WithSelf.%B.WithSelf.BB (constants.%B.WithSelf.BB.8bc)] {} {} -// CHECK:STDOUT: %assoc0: %B.assoc_type = assoc_entity element0, %B.WithSelf.BB.decl [concrete = constants.%assoc0.8d9] +// CHECK:STDOUT: %B.WithSelf.BB.decl: @B.WithSelf.%B.WithSelf.BB.type (%B.WithSelf.BB.type.e4f) = fn_decl @B.WithSelf.BB [symbolic = @B.WithSelf.%B.WithSelf.BB (constants.%B.WithSelf.BB.a55)] {} {} +// CHECK:STDOUT: %assoc0: %B.assoc_type = assoc_entity element0, %B.WithSelf.BB.decl [concrete = constants.%assoc0.880] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -313,69 +313,69 @@ fn F() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%T.loc33_7.2: %facet_type.a50) { -// CHECK:STDOUT: %T.loc33_7.1: %facet_type.a50 = symbolic_binding T, 0 [symbolic = %T.loc33_7.1 (constants.%T)] +// CHECK:STDOUT: generic fn @G(%T.loc33_7.2: %facet_type.22e) { +// CHECK:STDOUT: %T.loc33_7.1: %facet_type.22e = symbolic_binding T, 0 [symbolic = %T.loc33_7.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc33_28.1: type = facet_access_type %T.loc33_7.1 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc33_28.1 [symbolic = %pattern_type (constants.%pattern_type.7b6)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc33_28.1 [symbolic = %pattern_type (constants.%pattern_type.653)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc33_28.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc33_7.1, @A [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] -// CHECK:STDOUT: %A.facet.loc34: %A.type = facet_value %T.as_type.loc33_28.1, (%A.lookup_impl_witness) [symbolic = %A.facet.loc34 (constants.%A.facet.66b)] -// CHECK:STDOUT: %A.WithSelf.AA.type: type = fn_type @A.WithSelf.AA, @A.WithSelf(%A.facet.loc34) [symbolic = %A.WithSelf.AA.type (constants.%A.WithSelf.AA.type.06d)] -// CHECK:STDOUT: %.loc34: type = fn_type_with_self_type %A.WithSelf.AA.type, %A.facet.loc34 [symbolic = %.loc34 (constants.%.3a4)] -// CHECK:STDOUT: %impl.elem0.loc34_4.2: @G.%.loc34 (%.3a4) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.500)] -// CHECK:STDOUT: %specific_impl_fn.loc34_4.2: = specific_impl_function %impl.elem0.loc34_4.2, @A.WithSelf.AA(%A.facet.loc34) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.140)] +// CHECK:STDOUT: %A.facet.loc34: %A.type = facet_value %T.as_type.loc33_28.1, (%A.lookup_impl_witness) [symbolic = %A.facet.loc34 (constants.%A.facet.7b4)] +// CHECK:STDOUT: %A.WithSelf.AA.type: type = fn_type @A.WithSelf.AA, @A.WithSelf(%A.facet.loc34) [symbolic = %A.WithSelf.AA.type (constants.%A.WithSelf.AA.type.c6d)] +// CHECK:STDOUT: %.loc34: type = fn_type_with_self_type %A.WithSelf.AA.type, %A.facet.loc34 [symbolic = %.loc34 (constants.%.03b)] +// CHECK:STDOUT: %impl.elem0.loc34_4.2: @G.%.loc34 (%.03b) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.739)] +// CHECK:STDOUT: %specific_impl_fn.loc34_4.2: = specific_impl_function %impl.elem0.loc34_4.2, @A.WithSelf.AA(%A.facet.loc34) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.ece)] // CHECK:STDOUT: %B.lookup_impl_witness: = lookup_impl_witness %T.loc33_7.1, @B [symbolic = %B.lookup_impl_witness (constants.%B.lookup_impl_witness)] -// CHECK:STDOUT: %B.facet.loc35: %B.type = facet_value %T.as_type.loc33_28.1, (%B.lookup_impl_witness) [symbolic = %B.facet.loc35 (constants.%B.facet.909)] -// CHECK:STDOUT: %B.WithSelf.BB.type: type = fn_type @B.WithSelf.BB, @B.WithSelf(%B.facet.loc35) [symbolic = %B.WithSelf.BB.type (constants.%B.WithSelf.BB.type.240)] -// CHECK:STDOUT: %.loc35: type = fn_type_with_self_type %B.WithSelf.BB.type, %B.facet.loc35 [symbolic = %.loc35 (constants.%.97e)] -// CHECK:STDOUT: %impl.elem0.loc35_4.2: @G.%.loc35 (%.97e) = impl_witness_access %B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.541)] -// CHECK:STDOUT: %specific_impl_fn.loc35_4.2: = specific_impl_function %impl.elem0.loc35_4.2, @B.WithSelf.BB(%B.facet.loc35) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.1a0)] +// CHECK:STDOUT: %B.facet.loc35: %B.type = facet_value %T.as_type.loc33_28.1, (%B.lookup_impl_witness) [symbolic = %B.facet.loc35 (constants.%B.facet.746)] +// CHECK:STDOUT: %B.WithSelf.BB.type: type = fn_type @B.WithSelf.BB, @B.WithSelf(%B.facet.loc35) [symbolic = %B.WithSelf.BB.type (constants.%B.WithSelf.BB.type.a69)] +// CHECK:STDOUT: %.loc35: type = fn_type_with_self_type %B.WithSelf.BB.type, %B.facet.loc35 [symbolic = %.loc35 (constants.%.655)] +// CHECK:STDOUT: %impl.elem0.loc35_4.2: @G.%.loc35 (%.655) = impl_witness_access %B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.793)] +// CHECK:STDOUT: %specific_impl_fn.loc35_4.2: = specific_impl_function %impl.elem0.loc35_4.2, @B.WithSelf.BB(%B.facet.loc35) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.c6b)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%t.param: @G.%T.as_type.loc33_28.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %t.ref.loc34: @G.%T.as_type.loc33_28.1 (%T.as_type) = name_ref t, %t -// CHECK:STDOUT: %AA.ref.loc34: %A.assoc_type = name_ref AA, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.629] -// CHECK:STDOUT: %impl.elem0.loc34_4.1: @G.%.loc34 (%.3a4) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.500)] -// CHECK:STDOUT: %specific_impl_fn.loc34_4.1: = specific_impl_function %impl.elem0.loc34_4.1, @A.WithSelf.AA(constants.%A.facet.66b) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.140)] +// CHECK:STDOUT: %AA.ref.loc34: %A.assoc_type = name_ref AA, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.2af] +// CHECK:STDOUT: %impl.elem0.loc34_4.1: @G.%.loc34 (%.03b) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.739)] +// CHECK:STDOUT: %specific_impl_fn.loc34_4.1: = specific_impl_function %impl.elem0.loc34_4.1, @A.WithSelf.AA(constants.%A.facet.7b4) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.ece)] // CHECK:STDOUT: %A.WithSelf.AA.call.loc34: init %empty_tuple.type = call %specific_impl_fn.loc34_4.1() // CHECK:STDOUT: %t.ref.loc35: @G.%T.as_type.loc33_28.1 (%T.as_type) = name_ref t, %t -// CHECK:STDOUT: %BB.ref.loc35: %B.assoc_type = name_ref BB, @B.WithSelf.%assoc0 [concrete = constants.%assoc0.8d9] -// CHECK:STDOUT: %impl.elem0.loc35_4.1: @G.%.loc35 (%.97e) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.541)] -// CHECK:STDOUT: %specific_impl_fn.loc35_4.1: = specific_impl_function %impl.elem0.loc35_4.1, @B.WithSelf.BB(constants.%B.facet.909) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.1a0)] +// CHECK:STDOUT: %BB.ref.loc35: %B.assoc_type = name_ref BB, @B.WithSelf.%assoc0 [concrete = constants.%assoc0.880] +// CHECK:STDOUT: %impl.elem0.loc35_4.1: @G.%.loc35 (%.655) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.793)] +// CHECK:STDOUT: %specific_impl_fn.loc35_4.1: = specific_impl_function %impl.elem0.loc35_4.1, @B.WithSelf.BB(constants.%B.facet.746) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.c6b)] // CHECK:STDOUT: %B.WithSelf.BB.call.loc35: init %empty_tuple.type = call %specific_impl_fn.loc35_4.1() -// CHECK:STDOUT: %T.ref.loc37: %facet_type.a50 = name_ref T, %T.loc33_7.2 [symbolic = %T.loc33_7.1 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc37: %facet_type.22e = name_ref T, %T.loc33_7.2 [symbolic = %T.loc33_7.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc37: type = facet_access_type %T.ref.loc37 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc37: type = converted %T.ref.loc37, %T.as_type.loc37 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] -// CHECK:STDOUT: %AA.ref.loc37: %A.assoc_type = name_ref AA, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.629] -// CHECK:STDOUT: %impl.elem0.loc37: @G.%.loc34 (%.3a4) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.500)] -// CHECK:STDOUT: %specific_impl_fn.loc37: = specific_impl_function %impl.elem0.loc37, @A.WithSelf.AA(constants.%A.facet.66b) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.140)] +// CHECK:STDOUT: %AA.ref.loc37: %A.assoc_type = name_ref AA, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.2af] +// CHECK:STDOUT: %impl.elem0.loc37: @G.%.loc34 (%.03b) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.739)] +// CHECK:STDOUT: %specific_impl_fn.loc37: = specific_impl_function %impl.elem0.loc37, @A.WithSelf.AA(constants.%A.facet.7b4) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.ece)] // CHECK:STDOUT: %A.WithSelf.AA.call.loc37: init %empty_tuple.type = call %specific_impl_fn.loc37() -// CHECK:STDOUT: %T.ref.loc38: %facet_type.a50 = name_ref T, %T.loc33_7.2 [symbolic = %T.loc33_7.1 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc38: %facet_type.22e = name_ref T, %T.loc33_7.2 [symbolic = %T.loc33_7.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc38: type = facet_access_type %T.ref.loc38 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc38: type = converted %T.ref.loc38, %T.as_type.loc38 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] -// CHECK:STDOUT: %BB.ref.loc38: %B.assoc_type = name_ref BB, @B.WithSelf.%assoc0 [concrete = constants.%assoc0.8d9] -// CHECK:STDOUT: %impl.elem0.loc38: @G.%.loc35 (%.97e) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.541)] -// CHECK:STDOUT: %specific_impl_fn.loc38: = specific_impl_function %impl.elem0.loc38, @B.WithSelf.BB(constants.%B.facet.909) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.1a0)] +// CHECK:STDOUT: %BB.ref.loc38: %B.assoc_type = name_ref BB, @B.WithSelf.%assoc0 [concrete = constants.%assoc0.880] +// CHECK:STDOUT: %impl.elem0.loc38: @G.%.loc35 (%.655) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.793)] +// CHECK:STDOUT: %specific_impl_fn.loc38: = specific_impl_function %impl.elem0.loc38, @B.WithSelf.BB(constants.%B.facet.746) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.c6b)] // CHECK:STDOUT: %B.WithSelf.BB.call.loc38: init %empty_tuple.type = call %specific_impl_fn.loc38() -// CHECK:STDOUT: %T.ref.loc40: %facet_type.a50 = name_ref T, %T.loc33_7.2 [symbolic = %T.loc33_7.1 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc40: %facet_type.22e = name_ref T, %T.loc33_7.2 [symbolic = %T.loc33_7.1 (constants.%T)] // CHECK:STDOUT: %A.ref.loc40: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %AA.ref.loc40: %A.assoc_type = name_ref AA, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.629] +// CHECK:STDOUT: %AA.ref.loc40: %A.assoc_type = name_ref AA, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.2af] // CHECK:STDOUT: %T.as_type.loc40: type = facet_access_type %T.ref.loc40 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] -// CHECK:STDOUT: %A.facet.loc40: %A.type = facet_value %T.as_type.loc40, (constants.%A.lookup_impl_witness) [symbolic = %A.facet.loc34 (constants.%A.facet.66b)] -// CHECK:STDOUT: %.loc40: %A.type = converted %T.ref.loc40, %A.facet.loc40 [symbolic = %A.facet.loc34 (constants.%A.facet.66b)] -// CHECK:STDOUT: %impl.elem0.loc40: @G.%.loc34 (%.3a4) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.500)] -// CHECK:STDOUT: %specific_impl_fn.loc40: = specific_impl_function %impl.elem0.loc40, @A.WithSelf.AA(constants.%A.facet.66b) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.140)] +// CHECK:STDOUT: %A.facet.loc40: %A.type = facet_value %T.as_type.loc40, (constants.%A.lookup_impl_witness) [symbolic = %A.facet.loc34 (constants.%A.facet.7b4)] +// CHECK:STDOUT: %.loc40: %A.type = converted %T.ref.loc40, %A.facet.loc40 [symbolic = %A.facet.loc34 (constants.%A.facet.7b4)] +// CHECK:STDOUT: %impl.elem0.loc40: @G.%.loc34 (%.03b) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.739)] +// CHECK:STDOUT: %specific_impl_fn.loc40: = specific_impl_function %impl.elem0.loc40, @A.WithSelf.AA(constants.%A.facet.7b4) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.ece)] // CHECK:STDOUT: %A.WithSelf.AA.call.loc40: init %empty_tuple.type = call %specific_impl_fn.loc40() -// CHECK:STDOUT: %T.ref.loc41: %facet_type.a50 = name_ref T, %T.loc33_7.2 [symbolic = %T.loc33_7.1 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc41: %facet_type.22e = name_ref T, %T.loc33_7.2 [symbolic = %T.loc33_7.1 (constants.%T)] // CHECK:STDOUT: %B.ref.loc41: type = name_ref B, file.%B.decl [concrete = constants.%B.type] -// CHECK:STDOUT: %BB.ref.loc41: %B.assoc_type = name_ref BB, @B.WithSelf.%assoc0 [concrete = constants.%assoc0.8d9] +// CHECK:STDOUT: %BB.ref.loc41: %B.assoc_type = name_ref BB, @B.WithSelf.%assoc0 [concrete = constants.%assoc0.880] // CHECK:STDOUT: %T.as_type.loc41: type = facet_access_type %T.ref.loc41 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] -// CHECK:STDOUT: %B.facet.loc41: %B.type = facet_value %T.as_type.loc41, (constants.%B.lookup_impl_witness) [symbolic = %B.facet.loc35 (constants.%B.facet.909)] -// CHECK:STDOUT: %.loc41: %B.type = converted %T.ref.loc41, %B.facet.loc41 [symbolic = %B.facet.loc35 (constants.%B.facet.909)] -// CHECK:STDOUT: %impl.elem0.loc41: @G.%.loc35 (%.97e) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.541)] -// CHECK:STDOUT: %specific_impl_fn.loc41: = specific_impl_function %impl.elem0.loc41, @B.WithSelf.BB(constants.%B.facet.909) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.1a0)] +// CHECK:STDOUT: %B.facet.loc41: %B.type = facet_value %T.as_type.loc41, (constants.%B.lookup_impl_witness) [symbolic = %B.facet.loc35 (constants.%B.facet.746)] +// CHECK:STDOUT: %.loc41: %B.type = converted %T.ref.loc41, %B.facet.loc41 [symbolic = %B.facet.loc35 (constants.%B.facet.746)] +// CHECK:STDOUT: %impl.elem0.loc41: @G.%.loc35 (%.655) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.793)] +// CHECK:STDOUT: %specific_impl_fn.loc41: = specific_impl_function %impl.elem0.loc41, @B.WithSelf.BB(constants.%B.facet.746) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.c6b)] // CHECK:STDOUT: %B.WithSelf.BB.call.loc41: init %empty_tuple.type = call %specific_impl_fn.loc41() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -389,13 +389,13 @@ fn F() { // CHECK:STDOUT: %.loc45_6.2: ref %C = temporary_storage // CHECK:STDOUT: %.loc45_6.3: init %C to %.loc45_6.2 = class_init () [concrete = constants.%C.val] // CHECK:STDOUT: %.loc45_8.1: init %C = converted %.loc45_6.1, %.loc45_6.3 [concrete = constants.%C.val] -// CHECK:STDOUT: %facet_value: %facet_type.a50 = facet_value constants.%C, (constants.%Empty.impl_witness, constants.%A.impl_witness, constants.%B.impl_witness) [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc45_12: %facet_type.a50 = converted constants.%C, %facet_value [concrete = constants.%facet_value] +// CHECK:STDOUT: %facet_value: %facet_type.22e = facet_value constants.%C, (constants.%Empty.impl_witness, constants.%A.impl_witness, constants.%B.impl_witness) [concrete = constants.%facet_value] +// CHECK:STDOUT: %.loc45_12: %facet_type.22e = converted constants.%C, %facet_value [concrete = constants.%facet_value] // CHECK:STDOUT: %G.specific_fn: = specific_function %G.ref, @G(constants.%facet_value) [concrete = constants.%G.specific_fn] -// CHECK:STDOUT: %.loc45_8.2: ref %C = temporary %.loc45_6.2, %.loc45_8.1 [concrete = constants.%.7a6] +// 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.%.7a6) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.115) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -406,54 +406,54 @@ fn F() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Empty.WithSelf(constants.%Self.2f3) { +// CHECK:STDOUT: specific @Empty.WithSelf(constants.%Self.d44) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%Self.2fc) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%Self.d0c) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.2fc -// CHECK:STDOUT: %A.WithSelf.AA.type => constants.%A.WithSelf.AA.type.b5d -// CHECK:STDOUT: %A.WithSelf.AA => constants.%A.WithSelf.AA.ba1 +// CHECK:STDOUT: %Self => constants.%Self.d0c +// CHECK:STDOUT: %A.WithSelf.AA.type => constants.%A.WithSelf.AA.type.89d +// CHECK:STDOUT: %A.WithSelf.AA => constants.%A.WithSelf.AA.7fd // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.AA(constants.%Self.2fc) {} +// CHECK:STDOUT: specific @A.WithSelf.AA(constants.%Self.d0c) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @B.WithSelf(constants.%Self.60f) { +// CHECK:STDOUT: specific @B.WithSelf(constants.%Self.b45) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.60f -// CHECK:STDOUT: %B.WithSelf.BB.type => constants.%B.WithSelf.BB.type.209 -// CHECK:STDOUT: %B.WithSelf.BB => constants.%B.WithSelf.BB.8bc +// CHECK:STDOUT: %Self => constants.%Self.b45 +// CHECK:STDOUT: %B.WithSelf.BB.type => constants.%B.WithSelf.BB.type.e4f +// CHECK:STDOUT: %B.WithSelf.BB => constants.%B.WithSelf.BB.a55 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @B.WithSelf.BB(constants.%Self.60f) {} +// CHECK:STDOUT: specific @B.WithSelf.BB(constants.%Self.b45) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Empty.WithSelf(constants.%Empty.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%A.facet.b2b) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%A.facet.2ca) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%A.facet.b2b -// CHECK:STDOUT: %A.WithSelf.AA.type => constants.%A.WithSelf.AA.type.24a -// CHECK:STDOUT: %A.WithSelf.AA => constants.%A.WithSelf.AA.d71 +// CHECK:STDOUT: %Self => constants.%A.facet.2ca +// CHECK:STDOUT: %A.WithSelf.AA.type => constants.%A.WithSelf.AA.type.624 +// CHECK:STDOUT: %A.WithSelf.AA => constants.%A.WithSelf.AA.879 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.AA(constants.%A.facet.b2b) {} +// CHECK:STDOUT: specific @A.WithSelf.AA(constants.%A.facet.2ca) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @B.WithSelf(constants.%B.facet.a6e) { +// CHECK:STDOUT: specific @B.WithSelf(constants.%B.facet.464) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%B.facet.a6e -// CHECK:STDOUT: %B.WithSelf.BB.type => constants.%B.WithSelf.BB.type.cbd -// CHECK:STDOUT: %B.WithSelf.BB => constants.%B.WithSelf.BB.5d0 +// CHECK:STDOUT: %Self => constants.%B.facet.464 +// CHECK:STDOUT: %B.WithSelf.BB.type => constants.%B.WithSelf.BB.type.5c1 +// CHECK:STDOUT: %B.WithSelf.BB => constants.%B.WithSelf.BB.f03 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @B.WithSelf.BB(constants.%B.facet.a6e) {} +// CHECK:STDOUT: specific @B.WithSelf.BB(constants.%B.facet.464) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { // CHECK:STDOUT: %T.loc33_7.1 => constants.%T // CHECK:STDOUT: %T.as_type.loc33_28.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7b6 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.653 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Empty.WithSelf(constants.%T) { @@ -463,52 +463,52 @@ fn F() { // CHECK:STDOUT: specific @A.WithSelf(constants.%T) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %A.WithSelf.AA.type => constants.%A.WithSelf.AA.type.056 -// CHECK:STDOUT: %A.WithSelf.AA => constants.%A.WithSelf.AA.5e7 +// CHECK:STDOUT: %A.WithSelf.AA.type => constants.%A.WithSelf.AA.type.5d9 +// CHECK:STDOUT: %A.WithSelf.AA => constants.%A.WithSelf.AA.bcc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @B.WithSelf(constants.%T) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %B.WithSelf.BB.type => constants.%B.WithSelf.BB.type.ef2 -// CHECK:STDOUT: %B.WithSelf.BB => constants.%B.WithSelf.BB.e3c +// CHECK:STDOUT: %B.WithSelf.BB.type => constants.%B.WithSelf.BB.type.596 +// CHECK:STDOUT: %B.WithSelf.BB => constants.%B.WithSelf.BB.49e // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%A.facet.66b) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%A.facet.7b4) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%A.facet.66b -// CHECK:STDOUT: %A.WithSelf.AA.type => constants.%A.WithSelf.AA.type.06d -// CHECK:STDOUT: %A.WithSelf.AA => constants.%A.WithSelf.AA.a3a +// CHECK:STDOUT: %Self => constants.%A.facet.7b4 +// CHECK:STDOUT: %A.WithSelf.AA.type => constants.%A.WithSelf.AA.type.c6d +// CHECK:STDOUT: %A.WithSelf.AA => constants.%A.WithSelf.AA.9ea // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.AA(constants.%A.facet.66b) {} +// CHECK:STDOUT: specific @A.WithSelf.AA(constants.%A.facet.7b4) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @B.WithSelf(constants.%B.facet.909) { +// CHECK:STDOUT: specific @B.WithSelf(constants.%B.facet.746) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%B.facet.909 -// CHECK:STDOUT: %B.WithSelf.BB.type => constants.%B.WithSelf.BB.type.240 -// CHECK:STDOUT: %B.WithSelf.BB => constants.%B.WithSelf.BB.2b6 +// CHECK:STDOUT: %Self => constants.%B.facet.746 +// CHECK:STDOUT: %B.WithSelf.BB.type => constants.%B.WithSelf.BB.type.a69 +// CHECK:STDOUT: %B.WithSelf.BB => constants.%B.WithSelf.BB.d89 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @B.WithSelf.BB(constants.%B.facet.909) {} +// CHECK:STDOUT: specific @B.WithSelf.BB(constants.%B.facet.746) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%facet_value) { // CHECK:STDOUT: %T.loc33_7.1 => constants.%facet_value // CHECK:STDOUT: %T.as_type.loc33_28.1 => constants.%C -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d5 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.impl_witness -// CHECK:STDOUT: %A.facet.loc34 => constants.%A.facet.b2b -// CHECK:STDOUT: %A.WithSelf.AA.type => constants.%A.WithSelf.AA.type.24a -// CHECK:STDOUT: %.loc34 => constants.%.0ba +// CHECK:STDOUT: %A.facet.loc34 => constants.%A.facet.2ca +// CHECK:STDOUT: %A.WithSelf.AA.type => constants.%A.WithSelf.AA.type.624 +// CHECK:STDOUT: %.loc34 => constants.%.070 // CHECK:STDOUT: %impl.elem0.loc34_4.2 => constants.%C.as.A.impl.AA // CHECK:STDOUT: %specific_impl_fn.loc34_4.2 => constants.%C.as.A.impl.AA // CHECK:STDOUT: %B.lookup_impl_witness => constants.%B.impl_witness -// CHECK:STDOUT: %B.facet.loc35 => constants.%B.facet.a6e -// CHECK:STDOUT: %B.WithSelf.BB.type => constants.%B.WithSelf.BB.type.cbd -// CHECK:STDOUT: %.loc35 => constants.%.a68 +// CHECK:STDOUT: %B.facet.loc35 => constants.%B.facet.464 +// CHECK:STDOUT: %B.WithSelf.BB.type => constants.%B.WithSelf.BB.type.5c1 +// CHECK:STDOUT: %.loc35 => constants.%.d06 // CHECK:STDOUT: %impl.elem0.loc35_4.2 => constants.%C.as.B.impl.BB // CHECK:STDOUT: %specific_impl_fn.loc35_4.2 => constants.%C.as.B.impl.BB // 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 375c09c91f1d..56c6aa575df5 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 @@ -69,50 +69,50 @@ fn G() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %Scalar: type = symbolic_binding Scalar, 0 [symbolic] -// CHECK:STDOUT: %Generic.type.df8: type = generic_interface_type @Generic [concrete] +// CHECK:STDOUT: %Generic.type.30d: type = generic_interface_type @Generic [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Generic.generic: %Generic.type.df8 = struct_value () [concrete] -// CHECK:STDOUT: %Generic.type.79a857.1: type = facet_type <@Generic, @Generic(%Scalar)> [symbolic] -// CHECK:STDOUT: %Self.34f480.1: %Generic.type.79a857.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.type.882349.1: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%Scalar, %Self.34f480.1) [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.6a7088.1: %Generic.WithSelf.F.type.882349.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Generic.assoc_type.bf879e.1: type = assoc_entity_type @Generic, @Generic(%Scalar) [symbolic] -// CHECK:STDOUT: %assoc0.0c6b77.1: %Generic.assoc_type.bf879e.1 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %Generic.generic: %Generic.type.30d = struct_value () [concrete] +// CHECK:STDOUT: %Generic.type.ee14e9.1: type = facet_type <@Generic, @Generic(%Scalar)> [symbolic] +// CHECK:STDOUT: %Self.8ea1ea.1: %Generic.type.ee14e9.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.type.390775.1: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%Scalar, %Self.8ea1ea.1) [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.b85a66.1: %Generic.WithSelf.F.type.390775.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Generic.assoc_type.d7021d.1: type = assoc_entity_type @Generic, @Generic(%Scalar) [symbolic] +// CHECK:STDOUT: %assoc0.31052a.1: %Generic.assoc_type.d7021d.1 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] // CHECK:STDOUT: %GenericParam: type = class_type @GenericParam [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %ImplsGeneric: type = class_type @ImplsGeneric [concrete] -// CHECK:STDOUT: %Generic.type.fa5: type = facet_type <@Generic, @Generic(%GenericParam)> [concrete] +// CHECK:STDOUT: %Generic.type.b40: type = facet_type <@Generic, @Generic(%GenericParam)> [concrete] // CHECK:STDOUT: %Generic.impl_witness: = impl_witness @ImplsGeneric.as.Generic.impl.%Generic.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.e96: %Generic.type.fa5 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.type.d27: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Self.34f480.1) [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.87f: %Generic.WithSelf.F.type.d27 = struct_value () [symbolic] -// CHECK:STDOUT: %Generic.assoc_type.748: type = assoc_entity_type @Generic, @Generic(%GenericParam) [concrete] -// CHECK:STDOUT: %assoc0.6aa: %Generic.assoc_type.748 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %Self.685: %Generic.type.b40 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.type.e39: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Self.8ea1ea.1) [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.d19: %Generic.WithSelf.F.type.e39 = struct_value () [symbolic] +// CHECK:STDOUT: %Generic.assoc_type.c13: type = assoc_entity_type @Generic, @Generic(%GenericParam) [concrete] +// CHECK:STDOUT: %assoc0.b4a: %Generic.assoc_type.c13 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [concrete] // CHECK:STDOUT: %ImplsGeneric.as.Generic.impl.F.type: type = fn_type @ImplsGeneric.as.Generic.impl.F [concrete] // CHECK:STDOUT: %ImplsGeneric.as.Generic.impl.F: %ImplsGeneric.as.Generic.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %Generic.facet: %Generic.type.fa5 = facet_value %ImplsGeneric, (%Generic.impl_witness) [concrete] -// CHECK:STDOUT: %Generic.WithSelf.F.type.52a: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Generic.facet) [concrete] -// CHECK:STDOUT: %Generic.WithSelf.F.a3a: %Generic.WithSelf.F.type.52a = struct_value () [concrete] +// CHECK:STDOUT: %Generic.facet: %Generic.type.b40 = facet_value %ImplsGeneric, (%Generic.impl_witness) [concrete] +// CHECK:STDOUT: %Generic.WithSelf.F.type.c45: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Generic.facet) [concrete] +// CHECK:STDOUT: %Generic.WithSelf.F.d7c: %Generic.WithSelf.F.type.c45 = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Generic.type.79a857.2: type = facet_type <@Generic, @Generic(%T)> [symbolic] -// CHECK:STDOUT: %pattern_type.31c: type = pattern_type %Generic.type.79a857.2 [symbolic] -// CHECK:STDOUT: %U.42e6d9.1: %Generic.type.79a857.2 = symbolic_binding U, 1 [symbolic] +// CHECK:STDOUT: %Generic.type.ee14e9.2: type = facet_type <@Generic, @Generic(%T)> [symbolic] +// CHECK:STDOUT: %pattern_type.4e0: type = pattern_type %Generic.type.ee14e9.2 [symbolic] +// CHECK:STDOUT: %U.af9edd.1: %Generic.type.ee14e9.2 = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %CallGenericMethod.type: type = fn_type @CallGenericMethod [concrete] // CHECK:STDOUT: %CallGenericMethod: %CallGenericMethod.type = struct_value () [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.9cd: type = pattern_type %Generic.type.fa5 [concrete] -// CHECK:STDOUT: %CallGenericMethod.specific_fn.654: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet) [concrete] -// CHECK:STDOUT: %U.42e6d9.2: %Generic.type.79a857.2 = symbolic_binding U, 1 [symbolic] +// CHECK:STDOUT: %pattern_type.de1: type = pattern_type %Generic.type.b40 [concrete] +// CHECK:STDOUT: %CallGenericMethod.specific_fn.42a: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet) [concrete] +// CHECK:STDOUT: %U.af9edd.2: %Generic.type.ee14e9.2 = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %PassThroughToGenericMethod.type: type = fn_type @PassThroughToGenericMethod [concrete] // CHECK:STDOUT: %PassThroughToGenericMethod: %PassThroughToGenericMethod.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.34f480.2: %Generic.type.79a857.2 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.type.882349.2: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T, %Self.34f480.1) [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.6a7088.2: %Generic.WithSelf.F.type.882349.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Generic.assoc_type.bf879e.2: type = assoc_entity_type @Generic, @Generic(%T) [symbolic] -// CHECK:STDOUT: %assoc0.0c6b77.2: %Generic.assoc_type.bf879e.2 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] -// CHECK:STDOUT: %CallGenericMethod.specific_fn.5b8: = specific_function %CallGenericMethod, @CallGenericMethod(%T, %U.42e6d9.2) [symbolic] +// CHECK:STDOUT: %Self.8ea1ea.2: %Generic.type.ee14e9.2 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.type.390775.2: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T, %Self.8ea1ea.1) [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.b85a66.2: %Generic.WithSelf.F.type.390775.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Generic.assoc_type.d7021d.2: type = assoc_entity_type @Generic, @Generic(%T) [symbolic] +// CHECK:STDOUT: %assoc0.31052a.2: %Generic.assoc_type.d7021d.2 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %CallGenericMethod.specific_fn.151: = specific_function %CallGenericMethod, @CallGenericMethod(%T, %U.af9edd.2) [symbolic] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] // CHECK:STDOUT: %PassThroughToGenericMethod.specific_fn: = specific_function %PassThroughToGenericMethod, @PassThroughToGenericMethod(%GenericParam, %Generic.facet) [concrete] @@ -137,7 +137,7 @@ fn G() { // CHECK:STDOUT: .H = %H.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %Generic.decl: %Generic.type.df8 = interface_decl @Generic [concrete = constants.%Generic.generic] { +// CHECK:STDOUT: %Generic.decl: %Generic.type.30d = interface_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %Scalar.patt: %pattern_type.98f = symbolic_binding_pattern Scalar, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_28.1: type = splice_block %.loc4_28.2 [concrete = type] { @@ -150,44 +150,44 @@ fn G() { // CHECK:STDOUT: %ImplsGeneric.decl: type = class_decl @ImplsGeneric [concrete = constants.%ImplsGeneric] {} {} // CHECK:STDOUT: impl_decl @ImplsGeneric.as.Generic.impl [concrete] {} { // CHECK:STDOUT: %ImplsGeneric.ref: type = name_ref ImplsGeneric, file.%ImplsGeneric.decl [concrete = constants.%ImplsGeneric] -// CHECK:STDOUT: %Generic.ref: %Generic.type.df8 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] +// CHECK:STDOUT: %Generic.ref: %Generic.type.30d = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] // CHECK:STDOUT: %GenericParam.ref: type = name_ref GenericParam, file.%GenericParam.decl [concrete = constants.%GenericParam] -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%GenericParam)> [concrete = constants.%Generic.type.fa5] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%GenericParam)> [concrete = constants.%Generic.type.b40] // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericMethod.decl: %CallGenericMethod.type = fn_decl @CallGenericMethod [concrete = constants.%CallGenericMethod] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type (%pattern_type.31c) = symbolic_binding_pattern U, 1 [concrete] +// CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type (%pattern_type.4e0) = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_26.1: type = splice_block %.loc15_26.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc15_23: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc15_26.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc15_23.2: type = symbolic_binding T, 0 [symbolic = %T.loc15_23.1 (constants.%T)] -// CHECK:STDOUT: %.loc15_52: type = splice_block %Generic.type.loc15_52.2 [symbolic = %Generic.type.loc15_52.1 (constants.%Generic.type.79a857.2)] { +// CHECK:STDOUT: %.loc15_52: type = splice_block %Generic.type.loc15_52.2 [symbolic = %Generic.type.loc15_52.1 (constants.%Generic.type.ee14e9.2)] { // CHECK:STDOUT: %.Self.loc15_40: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Generic.ref: %Generic.type.df8 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] +// CHECK:STDOUT: %Generic.ref: %Generic.type.30d = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_23.2 [symbolic = %T.loc15_23.1 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc15_52.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc15_52.1 (constants.%Generic.type.79a857.2)] +// CHECK:STDOUT: %Generic.type.loc15_52.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc15_52.1 (constants.%Generic.type.ee14e9.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc15_40.2: @CallGenericMethod.%Generic.type.loc15_52.1 (%Generic.type.79a857.2) = symbolic_binding U, 1 [symbolic = %U.loc15_40.1 (constants.%U.42e6d9.1)] +// CHECK:STDOUT: %U.loc15_40.2: @CallGenericMethod.%Generic.type.loc15_52.1 (%Generic.type.ee14e9.2) = symbolic_binding U, 1 [symbolic = %U.loc15_40.1 (constants.%U.af9edd.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: %PassThroughToGenericMethod.decl: %PassThroughToGenericMethod.type = fn_decl @PassThroughToGenericMethod [concrete = constants.%PassThroughToGenericMethod] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %U.patt: @PassThroughToGenericMethod.%pattern_type (%pattern_type.31c) = symbolic_binding_pattern U, 1 [concrete] +// CHECK:STDOUT: %U.patt: @PassThroughToGenericMethod.%pattern_type (%pattern_type.4e0) = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc21_35.1: type = splice_block %.loc21_35.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc21_32: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc21_35.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc21_32.2: type = symbolic_binding T, 0 [symbolic = %T.loc21_32.1 (constants.%T)] -// CHECK:STDOUT: %.loc21_54: type = splice_block %Generic.type.loc21_54.2 [symbolic = %Generic.type.loc21_54.1 (constants.%Generic.type.79a857.2)] { +// CHECK:STDOUT: %.loc21_54: type = splice_block %Generic.type.loc21_54.2 [symbolic = %Generic.type.loc21_54.1 (constants.%Generic.type.ee14e9.2)] { // CHECK:STDOUT: %.Self.loc21_42: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Generic.ref: %Generic.type.df8 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] +// CHECK:STDOUT: %Generic.ref: %Generic.type.30d = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] // CHECK:STDOUT: %T.ref.loc21: type = name_ref T, %T.loc21_32.2 [symbolic = %T.loc21_32.1 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc21_54.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc21_54.1 (constants.%Generic.type.79a857.2)] +// CHECK:STDOUT: %Generic.type.loc21_54.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc21_54.1 (constants.%Generic.type.ee14e9.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc21_42.2: @PassThroughToGenericMethod.%Generic.type.loc21_54.1 (%Generic.type.79a857.2) = symbolic_binding U, 1 [symbolic = %U.loc21_42.1 (constants.%U.42e6d9.2)] +// CHECK:STDOUT: %U.loc21_42.2: @PassThroughToGenericMethod.%Generic.type.loc21_54.1 (%Generic.type.ee14e9.2) = symbolic_binding U, 1 [symbolic = %U.loc21_42.1 (constants.%U.af9edd.2)] // CHECK:STDOUT: } // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] {} {} // CHECK:STDOUT: } @@ -196,16 +196,16 @@ fn G() { // CHECK:STDOUT: %Scalar.loc4_25.1: type = symbolic_binding Scalar, 0 [symbolic = %Scalar.loc4_25.1 (constants.%Scalar)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc4_25.1)> [symbolic = %Generic.type (constants.%Generic.type.79a857.1)] -// CHECK:STDOUT: %Self.loc4_34.2: @Generic.%Generic.type (%Generic.type.79a857.1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_34.2 (constants.%Self.34f480.1)] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc4_25.1)> [symbolic = %Generic.type (constants.%Generic.type.ee14e9.1)] +// CHECK:STDOUT: %Self.loc4_34.2: @Generic.%Generic.type (%Generic.type.ee14e9.1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_34.2 (constants.%Self.8ea1ea.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_34.1: @Generic.%Generic.type (%Generic.type.79a857.1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_34.2 (constants.%Self.34f480.1)] +// CHECK:STDOUT: %Self.loc4_34.1: @Generic.%Generic.type (%Generic.type.ee14e9.1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_34.2 (constants.%Self.8ea1ea.1)] // CHECK:STDOUT: %Generic.WithSelf.decl = interface_with_self_decl @Generic [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Generic.WithSelf.F.decl: @Generic.WithSelf.%Generic.WithSelf.F.type (%Generic.WithSelf.F.type.882349.1) = fn_decl @Generic.WithSelf.F [symbolic = @Generic.WithSelf.%Generic.WithSelf.F (constants.%Generic.WithSelf.F.6a7088.1)] {} {} -// CHECK:STDOUT: %assoc0.loc5_9.1: @Generic.WithSelf.%Generic.assoc_type (%Generic.assoc_type.bf879e.1) = assoc_entity element0, %Generic.WithSelf.F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.0c6b77.1)] +// CHECK:STDOUT: %Generic.WithSelf.F.decl: @Generic.WithSelf.%Generic.WithSelf.F.type (%Generic.WithSelf.F.type.390775.1) = fn_decl @Generic.WithSelf.F [symbolic = @Generic.WithSelf.%Generic.WithSelf.F (constants.%Generic.WithSelf.F.b85a66.1)] {} {} +// CHECK:STDOUT: %assoc0.loc5_9.1: @Generic.WithSelf.%Generic.assoc_type (%Generic.assoc_type.d7021d.1) = assoc_entity element0, %Generic.WithSelf.F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.31052a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc4_34.1 @@ -243,7 +243,7 @@ fn G() { // CHECK:STDOUT: .Self = constants.%ImplsGeneric // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Generic.WithSelf.F(@Generic.%Scalar.loc4_25.2: type, @Generic.%Self.loc4_34.1: @Generic.%Generic.type (%Generic.type.79a857.1)) { +// CHECK:STDOUT: generic fn @Generic.WithSelf.F(@Generic.%Scalar.loc4_25.2: type, @Generic.%Self.loc4_34.1: @Generic.%Generic.type (%Generic.type.ee14e9.1)) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: @@ -252,11 +252,11 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc15_23.2: type, %U.loc15_40.2: @CallGenericMethod.%Generic.type.loc15_52.1 (%Generic.type.79a857.2)) { +// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc15_23.2: type, %U.loc15_40.2: @CallGenericMethod.%Generic.type.loc15_52.1 (%Generic.type.ee14e9.2)) { // CHECK:STDOUT: %T.loc15_23.1: type = symbolic_binding T, 0 [symbolic = %T.loc15_23.1 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc15_52.1: type = facet_type <@Generic, @Generic(%T.loc15_23.1)> [symbolic = %Generic.type.loc15_52.1 (constants.%Generic.type.79a857.2)] -// CHECK:STDOUT: %U.loc15_40.1: @CallGenericMethod.%Generic.type.loc15_52.1 (%Generic.type.79a857.2) = symbolic_binding U, 1 [symbolic = %U.loc15_40.1 (constants.%U.42e6d9.1)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Generic.type.loc15_52.1 [symbolic = %pattern_type (constants.%pattern_type.31c)] +// CHECK:STDOUT: %Generic.type.loc15_52.1: type = facet_type <@Generic, @Generic(%T.loc15_23.1)> [symbolic = %Generic.type.loc15_52.1 (constants.%Generic.type.ee14e9.2)] +// CHECK:STDOUT: %U.loc15_40.1: @CallGenericMethod.%Generic.type.loc15_52.1 (%Generic.type.ee14e9.2) = symbolic_binding U, 1 [symbolic = %U.loc15_40.1 (constants.%U.af9edd.1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Generic.type.loc15_52.1 [symbolic = %pattern_type (constants.%pattern_type.4e0)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -271,28 +271,28 @@ fn G() { // CHECK:STDOUT: %CallGenericMethod.ref: %CallGenericMethod.type = name_ref CallGenericMethod, file.%CallGenericMethod.decl [concrete = constants.%CallGenericMethod] // CHECK:STDOUT: %GenericParam.ref: type = name_ref GenericParam, file.%GenericParam.decl [concrete = constants.%GenericParam] // CHECK:STDOUT: %ImplsGeneric.ref: type = name_ref ImplsGeneric, file.%ImplsGeneric.decl [concrete = constants.%ImplsGeneric] -// CHECK:STDOUT: %Generic.facet: %Generic.type.fa5 = facet_value constants.%ImplsGeneric, (constants.%Generic.impl_witness) [concrete = constants.%Generic.facet] -// CHECK:STDOUT: %.loc18: %Generic.type.fa5 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet] -// CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) [concrete = constants.%CallGenericMethod.specific_fn.654] +// CHECK:STDOUT: %Generic.facet: %Generic.type.b40 = facet_value constants.%ImplsGeneric, (constants.%Generic.impl_witness) [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %.loc18: %Generic.type.b40 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) [concrete = constants.%CallGenericMethod.specific_fn.42a] // CHECK:STDOUT: %CallGenericMethod.call: init %empty_tuple.type = call %CallGenericMethod.specific_fn() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @PassThroughToGenericMethod(%T.loc21_32.2: type, %U.loc21_42.2: @PassThroughToGenericMethod.%Generic.type.loc21_54.1 (%Generic.type.79a857.2)) { +// CHECK:STDOUT: generic fn @PassThroughToGenericMethod(%T.loc21_32.2: type, %U.loc21_42.2: @PassThroughToGenericMethod.%Generic.type.loc21_54.1 (%Generic.type.ee14e9.2)) { // CHECK:STDOUT: %T.loc21_32.1: type = symbolic_binding T, 0 [symbolic = %T.loc21_32.1 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc21_54.1: type = facet_type <@Generic, @Generic(%T.loc21_32.1)> [symbolic = %Generic.type.loc21_54.1 (constants.%Generic.type.79a857.2)] -// CHECK:STDOUT: %U.loc21_42.1: @PassThroughToGenericMethod.%Generic.type.loc21_54.1 (%Generic.type.79a857.2) = symbolic_binding U, 1 [symbolic = %U.loc21_42.1 (constants.%U.42e6d9.2)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Generic.type.loc21_54.1 [symbolic = %pattern_type (constants.%pattern_type.31c)] +// CHECK:STDOUT: %Generic.type.loc21_54.1: type = facet_type <@Generic, @Generic(%T.loc21_32.1)> [symbolic = %Generic.type.loc21_54.1 (constants.%Generic.type.ee14e9.2)] +// CHECK:STDOUT: %U.loc21_42.1: @PassThroughToGenericMethod.%Generic.type.loc21_54.1 (%Generic.type.ee14e9.2) = symbolic_binding U, 1 [symbolic = %U.loc21_42.1 (constants.%U.af9edd.2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Generic.type.loc21_54.1 [symbolic = %pattern_type (constants.%pattern_type.4e0)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CallGenericMethod.specific_fn.loc22_3.2: = specific_function constants.%CallGenericMethod, @CallGenericMethod(%T.loc21_32.1, %U.loc21_42.1) [symbolic = %CallGenericMethod.specific_fn.loc22_3.2 (constants.%CallGenericMethod.specific_fn.5b8)] +// CHECK:STDOUT: %CallGenericMethod.specific_fn.loc22_3.2: = specific_function constants.%CallGenericMethod, @CallGenericMethod(%T.loc21_32.1, %U.loc21_42.1) [symbolic = %CallGenericMethod.specific_fn.loc22_3.2 (constants.%CallGenericMethod.specific_fn.151)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %CallGenericMethod.ref: %CallGenericMethod.type = name_ref CallGenericMethod, file.%CallGenericMethod.decl [concrete = constants.%CallGenericMethod] // CHECK:STDOUT: %T.ref.loc22: type = name_ref T, %T.loc21_32.2 [symbolic = %T.loc21_32.1 (constants.%T)] -// CHECK:STDOUT: %U.ref: @PassThroughToGenericMethod.%Generic.type.loc21_54.1 (%Generic.type.79a857.2) = name_ref U, %U.loc21_42.2 [symbolic = %U.loc21_42.1 (constants.%U.42e6d9.2)] -// CHECK:STDOUT: %CallGenericMethod.specific_fn.loc22_3.1: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%T, constants.%U.42e6d9.2) [symbolic = %CallGenericMethod.specific_fn.loc22_3.2 (constants.%CallGenericMethod.specific_fn.5b8)] +// CHECK:STDOUT: %U.ref: @PassThroughToGenericMethod.%Generic.type.loc21_54.1 (%Generic.type.ee14e9.2) = name_ref U, %U.loc21_42.2 [symbolic = %U.loc21_42.1 (constants.%U.af9edd.2)] +// CHECK:STDOUT: %CallGenericMethod.specific_fn.loc22_3.1: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%T, constants.%U.af9edd.2) [symbolic = %CallGenericMethod.specific_fn.loc22_3.2 (constants.%CallGenericMethod.specific_fn.151)] // CHECK:STDOUT: %CallGenericMethod.call: init %empty_tuple.type = call %CallGenericMethod.specific_fn.loc22_3.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -303,8 +303,8 @@ fn G() { // CHECK:STDOUT: %PassThroughToGenericMethod.ref: %PassThroughToGenericMethod.type = name_ref PassThroughToGenericMethod, file.%PassThroughToGenericMethod.decl [concrete = constants.%PassThroughToGenericMethod] // CHECK:STDOUT: %GenericParam.ref: type = name_ref GenericParam, file.%GenericParam.decl [concrete = constants.%GenericParam] // CHECK:STDOUT: %ImplsGeneric.ref: type = name_ref ImplsGeneric, file.%ImplsGeneric.decl [concrete = constants.%ImplsGeneric] -// CHECK:STDOUT: %Generic.facet: %Generic.type.fa5 = facet_value constants.%ImplsGeneric, (constants.%Generic.impl_witness) [concrete = constants.%Generic.facet] -// CHECK:STDOUT: %.loc26: %Generic.type.fa5 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %Generic.facet: %Generic.type.b40 = facet_value constants.%ImplsGeneric, (constants.%Generic.impl_witness) [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %.loc26: %Generic.type.b40 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet] // CHECK:STDOUT: %PassThroughToGenericMethod.specific_fn: = specific_function %PassThroughToGenericMethod.ref, @PassThroughToGenericMethod(constants.%GenericParam, constants.%Generic.facet) [concrete = constants.%PassThroughToGenericMethod.specific_fn] // CHECK:STDOUT: %PassThroughToGenericMethod.call: init %empty_tuple.type = call %PassThroughToGenericMethod.specific_fn() // CHECK:STDOUT: return @@ -314,38 +314,38 @@ fn G() { // CHECK:STDOUT: %Scalar.loc4_25.1 => constants.%Scalar // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf(constants.%Scalar, constants.%Self.34f480.1) {} +// CHECK:STDOUT: specific @Generic.WithSelf(constants.%Scalar, constants.%Self.8ea1ea.1) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%Scalar, constants.%Self.34f480.1) {} +// CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%Scalar, constants.%Self.8ea1ea.1) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%GenericParam) { // CHECK:STDOUT: %Scalar.loc4_25.1 => constants.%GenericParam // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.fa5 -// CHECK:STDOUT: %Self.loc4_34.2 => constants.%Self.e96 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.b40 +// CHECK:STDOUT: %Self.loc4_34.2 => constants.%Self.685 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf(constants.%GenericParam, constants.%Self.34f480.1) { +// CHECK:STDOUT: specific @Generic.WithSelf(constants.%GenericParam, constants.%Self.8ea1ea.1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Scalar => constants.%GenericParam -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.fa5 -// CHECK:STDOUT: %Self => constants.%Self.34f480.1 -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.d27 -// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.87f -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.748 -// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.6aa +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.b40 +// CHECK:STDOUT: %Self => constants.%Self.8ea1ea.1 +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.e39 +// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.d19 +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.c13 +// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.b4a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.WithSelf(constants.%GenericParam, constants.%Generic.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Scalar => constants.%GenericParam -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.fa5 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.b40 // CHECK:STDOUT: %Self => constants.%Generic.facet -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.52a -// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.a3a -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.748 -// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.6aa +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.c45 +// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.d7c +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.c13 +// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.b4a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%GenericParam, constants.%Generic.facet) {} @@ -354,61 +354,61 @@ fn G() { // CHECK:STDOUT: %Scalar.loc4_25.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.79a857.2 -// CHECK:STDOUT: %Self.loc4_34.2 => constants.%Self.34f480.2 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.ee14e9.2 +// CHECK:STDOUT: %Self.loc4_34.2 => constants.%Self.8ea1ea.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @CallGenericMethod(constants.%T, constants.%U.42e6d9.1) { +// CHECK:STDOUT: specific @CallGenericMethod(constants.%T, constants.%U.af9edd.1) { // CHECK:STDOUT: %T.loc15_23.1 => constants.%T -// CHECK:STDOUT: %Generic.type.loc15_52.1 => constants.%Generic.type.79a857.2 -// CHECK:STDOUT: %U.loc15_40.1 => constants.%U.42e6d9.1 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.31c +// CHECK:STDOUT: %Generic.type.loc15_52.1 => constants.%Generic.type.ee14e9.2 +// CHECK:STDOUT: %U.loc15_40.1 => constants.%U.af9edd.1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4e0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) { // CHECK:STDOUT: %T.loc15_23.1 => constants.%GenericParam -// CHECK:STDOUT: %Generic.type.loc15_52.1 => constants.%Generic.type.fa5 +// CHECK:STDOUT: %Generic.type.loc15_52.1 => constants.%Generic.type.b40 // CHECK:STDOUT: %U.loc15_40.1 => constants.%Generic.facet -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9cd +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.de1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @PassThroughToGenericMethod(constants.%T, constants.%U.42e6d9.2) { +// CHECK:STDOUT: specific @PassThroughToGenericMethod(constants.%T, constants.%U.af9edd.2) { // CHECK:STDOUT: %T.loc21_32.1 => constants.%T -// CHECK:STDOUT: %Generic.type.loc21_54.1 => constants.%Generic.type.79a857.2 -// CHECK:STDOUT: %U.loc21_42.1 => constants.%U.42e6d9.2 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.31c +// CHECK:STDOUT: %Generic.type.loc21_54.1 => constants.%Generic.type.ee14e9.2 +// CHECK:STDOUT: %U.loc21_42.1 => constants.%U.af9edd.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4e0 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf(constants.%T, constants.%Self.34f480.1) { +// CHECK:STDOUT: specific @Generic.WithSelf(constants.%T, constants.%Self.8ea1ea.1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Scalar => constants.%T -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.79a857.2 -// CHECK:STDOUT: %Self => constants.%Self.34f480.1 -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.882349.2 -// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.6a7088.2 -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.bf879e.2 -// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.0c6b77.2 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.ee14e9.2 +// CHECK:STDOUT: %Self => constants.%Self.8ea1ea.1 +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.390775.2 +// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.b85a66.2 +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.d7021d.2 +// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.31052a.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @CallGenericMethod(constants.%T, constants.%U.42e6d9.2) { +// CHECK:STDOUT: specific @CallGenericMethod(constants.%T, constants.%U.af9edd.2) { // CHECK:STDOUT: %T.loc15_23.1 => constants.%T -// CHECK:STDOUT: %Generic.type.loc15_52.1 => constants.%Generic.type.79a857.2 -// CHECK:STDOUT: %U.loc15_40.1 => constants.%U.42e6d9.2 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.31c +// CHECK:STDOUT: %Generic.type.loc15_52.1 => constants.%Generic.type.ee14e9.2 +// CHECK:STDOUT: %U.loc15_40.1 => constants.%U.af9edd.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4e0 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @PassThroughToGenericMethod(constants.%GenericParam, constants.%Generic.facet) { // CHECK:STDOUT: %T.loc21_32.1 => constants.%GenericParam -// CHECK:STDOUT: %Generic.type.loc21_54.1 => constants.%Generic.type.fa5 +// CHECK:STDOUT: %Generic.type.loc21_54.1 => constants.%Generic.type.b40 // CHECK:STDOUT: %U.loc21_42.1 => constants.%Generic.facet -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9cd +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.de1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CallGenericMethod.specific_fn.loc22_3.2 => constants.%CallGenericMethod.specific_fn.654 +// CHECK:STDOUT: %CallGenericMethod.specific_fn.loc22_3.2 => constants.%CallGenericMethod.specific_fn.42a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- generic_facet_type_from_implicit_param.carbon @@ -418,35 +418,35 @@ fn G() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %Scalar: type = symbolic_binding Scalar, 0 [symbolic] -// CHECK:STDOUT: %Generic.type.df8: type = generic_interface_type @Generic [concrete] +// CHECK:STDOUT: %Generic.type.30d: type = generic_interface_type @Generic [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Generic.generic: %Generic.type.df8 = struct_value () [concrete] -// CHECK:STDOUT: %Generic.type.79a857.1: type = facet_type <@Generic, @Generic(%Scalar)> [symbolic] -// CHECK:STDOUT: %Self.34f: %Generic.type.79a857.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.type.882: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%Scalar, %Self.34f) [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.6a7: %Generic.WithSelf.F.type.882 = struct_value () [symbolic] -// CHECK:STDOUT: %Generic.assoc_type.bf8: type = assoc_entity_type @Generic, @Generic(%Scalar) [symbolic] -// CHECK:STDOUT: %assoc0.0c6: %Generic.assoc_type.bf8 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %Generic.generic: %Generic.type.30d = struct_value () [concrete] +// CHECK:STDOUT: %Generic.type.ee14e9.1: type = facet_type <@Generic, @Generic(%Scalar)> [symbolic] +// CHECK:STDOUT: %Self.8ea: %Generic.type.ee14e9.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.type.390: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%Scalar, %Self.8ea) [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.b85: %Generic.WithSelf.F.type.390 = struct_value () [symbolic] +// CHECK:STDOUT: %Generic.assoc_type.d70: type = assoc_entity_type @Generic, @Generic(%Scalar) [symbolic] +// CHECK:STDOUT: %assoc0.310: %Generic.assoc_type.d70 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] // CHECK:STDOUT: %GenericParam: type = class_type @GenericParam [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %ImplsGeneric: type = class_type @ImplsGeneric [concrete] -// CHECK:STDOUT: %Generic.type.fa5: type = facet_type <@Generic, @Generic(%GenericParam)> [concrete] +// CHECK:STDOUT: %Generic.type.b40: type = facet_type <@Generic, @Generic(%GenericParam)> [concrete] // CHECK:STDOUT: %Generic.impl_witness: = impl_witness @ImplsGeneric.as.Generic.impl.%Generic.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.e96: %Generic.type.fa5 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.type.d27: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Self.34f) [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.87f: %Generic.WithSelf.F.type.d27 = struct_value () [symbolic] -// CHECK:STDOUT: %Generic.assoc_type.748: type = assoc_entity_type @Generic, @Generic(%GenericParam) [concrete] -// CHECK:STDOUT: %assoc0.6aa: %Generic.assoc_type.748 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %Self.685: %Generic.type.b40 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.type.e39: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Self.8ea) [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.d19: %Generic.WithSelf.F.type.e39 = struct_value () [symbolic] +// CHECK:STDOUT: %Generic.assoc_type.c13: type = assoc_entity_type @Generic, @Generic(%GenericParam) [concrete] +// CHECK:STDOUT: %assoc0.b4a: %Generic.assoc_type.c13 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [concrete] // CHECK:STDOUT: %ImplsGeneric.as.Generic.impl.F.type: type = fn_type @ImplsGeneric.as.Generic.impl.F [concrete] // CHECK:STDOUT: %ImplsGeneric.as.Generic.impl.F: %ImplsGeneric.as.Generic.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %Generic.facet: %Generic.type.fa5 = facet_value %ImplsGeneric, (%Generic.impl_witness) [concrete] -// CHECK:STDOUT: %Generic.WithSelf.F.type.52a: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Generic.facet) [concrete] -// CHECK:STDOUT: %Generic.WithSelf.F.a3a: %Generic.WithSelf.F.type.52a = struct_value () [concrete] +// CHECK:STDOUT: %Generic.facet: %Generic.type.b40 = facet_value %ImplsGeneric, (%Generic.impl_witness) [concrete] +// CHECK:STDOUT: %Generic.WithSelf.F.type.c45: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Generic.facet) [concrete] +// CHECK:STDOUT: %Generic.WithSelf.F.d7c: %Generic.WithSelf.F.type.c45 = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Generic.type.79a857.2: type = facet_type <@Generic, @Generic(%T)> [symbolic] -// CHECK:STDOUT: %pattern_type.31c: type = pattern_type %Generic.type.79a857.2 [symbolic] -// CHECK:STDOUT: %U: %Generic.type.79a857.2 = symbolic_binding U, 1 [symbolic] +// CHECK:STDOUT: %Generic.type.ee14e9.2: type = facet_type <@Generic, @Generic(%T)> [symbolic] +// CHECK:STDOUT: %pattern_type.4e0: type = pattern_type %Generic.type.ee14e9.2 [symbolic] +// CHECK:STDOUT: %U: %Generic.type.ee14e9.2 = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] // CHECK:STDOUT: %CallGenericMethod.type: type = fn_type @CallGenericMethod [concrete] // CHECK:STDOUT: %CallGenericMethod: %CallGenericMethod.type = struct_value () [concrete] @@ -455,14 +455,14 @@ fn G() { // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %GenericParam.val: %GenericParam = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.9cd: type = pattern_type %Generic.type.fa5 [concrete] -// CHECK:STDOUT: %pattern_type.97f: type = pattern_type %GenericParam [concrete] +// CHECK:STDOUT: %pattern_type.de1: type = pattern_type %Generic.type.b40 [concrete] +// CHECK:STDOUT: %pattern_type.485: type = pattern_type %GenericParam [concrete] // CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet) [concrete] -// CHECK:STDOUT: %.c27: ref %GenericParam = temporary invalid, %GenericParam.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.790b3b.2: type = fn_type @Destroy.Op.loc18_38.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.c27, %Destroy.Op.2dd605.2 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -484,7 +484,7 @@ fn G() { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %Generic.decl: %Generic.type.df8 = interface_decl @Generic [concrete = constants.%Generic.generic] { +// CHECK:STDOUT: %Generic.decl: %Generic.type.30d = interface_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %Scalar.patt: %pattern_type.98f = symbolic_binding_pattern Scalar, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_28.1: type = splice_block %.loc4_28.2 [concrete = type] { @@ -497,13 +497,13 @@ fn G() { // CHECK:STDOUT: %ImplsGeneric.decl: type = class_decl @ImplsGeneric [concrete = constants.%ImplsGeneric] {} {} // CHECK:STDOUT: impl_decl @ImplsGeneric.as.Generic.impl [concrete] {} { // CHECK:STDOUT: %ImplsGeneric.ref: type = name_ref ImplsGeneric, file.%ImplsGeneric.decl [concrete = constants.%ImplsGeneric] -// CHECK:STDOUT: %Generic.ref: %Generic.type.df8 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] +// CHECK:STDOUT: %Generic.ref: %Generic.type.30d = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] // CHECK:STDOUT: %GenericParam.ref: type = name_ref GenericParam, file.%GenericParam.decl [concrete = constants.%GenericParam] -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%GenericParam)> [concrete = constants.%Generic.type.fa5] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%GenericParam)> [concrete = constants.%Generic.type.b40] // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericMethod.decl: %CallGenericMethod.type = fn_decl @CallGenericMethod [concrete = constants.%CallGenericMethod] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type.loc15_40 (%pattern_type.31c) = symbolic_binding_pattern U, 1 [concrete] +// CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type.loc15_40 (%pattern_type.4e0) = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: %t.param_patt: @CallGenericMethod.%pattern_type.loc15_63 (%pattern_type.51d) = value_param_pattern [concrete] // CHECK:STDOUT: %t.patt: @CallGenericMethod.%pattern_type.loc15_63 (%pattern_type.51d) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { @@ -512,13 +512,13 @@ fn G() { // CHECK:STDOUT: %.loc15_26.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc15_23.2: type = symbolic_binding T, 0 [symbolic = %T.loc15_23.1 (constants.%T)] -// CHECK:STDOUT: %.loc15_52: type = splice_block %Generic.type.loc15_52.2 [symbolic = %Generic.type.loc15_52.1 (constants.%Generic.type.79a857.2)] { +// CHECK:STDOUT: %.loc15_52: type = splice_block %Generic.type.loc15_52.2 [symbolic = %Generic.type.loc15_52.1 (constants.%Generic.type.ee14e9.2)] { // CHECK:STDOUT: %.Self.loc15_40: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Generic.ref: %Generic.type.df8 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] +// CHECK:STDOUT: %Generic.ref: %Generic.type.30d = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] // CHECK:STDOUT: %T.ref.loc15_51: type = name_ref T, %T.loc15_23.2 [symbolic = %T.loc15_23.1 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc15_52.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc15_52.1 (constants.%Generic.type.79a857.2)] +// CHECK:STDOUT: %Generic.type.loc15_52.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc15_52.1 (constants.%Generic.type.ee14e9.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc15_40.2: @CallGenericMethod.%Generic.type.loc15_52.1 (%Generic.type.79a857.2) = symbolic_binding U, 1 [symbolic = %U.loc15_40.1 (constants.%U)] +// CHECK:STDOUT: %U.loc15_40.2: @CallGenericMethod.%Generic.type.loc15_52.1 (%Generic.type.ee14e9.2) = symbolic_binding U, 1 [symbolic = %U.loc15_40.1 (constants.%U)] // CHECK:STDOUT: %t.param: @CallGenericMethod.%T.loc15_23.1 (%T) = value_param call_param0 // CHECK:STDOUT: %T.ref.loc15_65: type = name_ref T, %T.loc15_23.2 [symbolic = %T.loc15_23.1 (constants.%T)] // CHECK:STDOUT: %t: @CallGenericMethod.%T.loc15_23.1 (%T) = value_binding t, %t.param @@ -530,16 +530,16 @@ fn G() { // CHECK:STDOUT: %Scalar.loc4_25.1: type = symbolic_binding Scalar, 0 [symbolic = %Scalar.loc4_25.1 (constants.%Scalar)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc4_25.1)> [symbolic = %Generic.type (constants.%Generic.type.79a857.1)] -// CHECK:STDOUT: %Self.loc4_34.2: @Generic.%Generic.type (%Generic.type.79a857.1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_34.2 (constants.%Self.34f)] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc4_25.1)> [symbolic = %Generic.type (constants.%Generic.type.ee14e9.1)] +// CHECK:STDOUT: %Self.loc4_34.2: @Generic.%Generic.type (%Generic.type.ee14e9.1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_34.2 (constants.%Self.8ea)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_34.1: @Generic.%Generic.type (%Generic.type.79a857.1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_34.2 (constants.%Self.34f)] +// CHECK:STDOUT: %Self.loc4_34.1: @Generic.%Generic.type (%Generic.type.ee14e9.1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_34.2 (constants.%Self.8ea)] // CHECK:STDOUT: %Generic.WithSelf.decl = interface_with_self_decl @Generic [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Generic.WithSelf.F.decl: @Generic.WithSelf.%Generic.WithSelf.F.type (%Generic.WithSelf.F.type.882) = fn_decl @Generic.WithSelf.F [symbolic = @Generic.WithSelf.%Generic.WithSelf.F (constants.%Generic.WithSelf.F.6a7)] {} {} -// CHECK:STDOUT: %assoc0.loc5_9.1: @Generic.WithSelf.%Generic.assoc_type (%Generic.assoc_type.bf8) = assoc_entity element0, %Generic.WithSelf.F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.0c6)] +// CHECK:STDOUT: %Generic.WithSelf.F.decl: @Generic.WithSelf.%Generic.WithSelf.F.type (%Generic.WithSelf.F.type.390) = fn_decl @Generic.WithSelf.F [symbolic = @Generic.WithSelf.%Generic.WithSelf.F (constants.%Generic.WithSelf.F.b85)] {} {} +// CHECK:STDOUT: %assoc0.loc5_9.1: @Generic.WithSelf.%Generic.assoc_type (%Generic.assoc_type.d70) = assoc_entity element0, %Generic.WithSelf.F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.310)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc4_34.1 @@ -577,7 +577,7 @@ fn G() { // CHECK:STDOUT: .Self = constants.%ImplsGeneric // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Generic.WithSelf.F(@Generic.%Scalar.loc4_25.2: type, @Generic.%Self.loc4_34.1: @Generic.%Generic.type (%Generic.type.79a857.1)) { +// CHECK:STDOUT: generic fn @Generic.WithSelf.F(@Generic.%Scalar.loc4_25.2: type, @Generic.%Self.loc4_34.1: @Generic.%Generic.type (%Generic.type.ee14e9.1)) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: @@ -586,11 +586,11 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc15_23.2: type, %U.loc15_40.2: @CallGenericMethod.%Generic.type.loc15_52.1 (%Generic.type.79a857.2)) { +// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc15_23.2: type, %U.loc15_40.2: @CallGenericMethod.%Generic.type.loc15_52.1 (%Generic.type.ee14e9.2)) { // CHECK:STDOUT: %T.loc15_23.1: type = symbolic_binding T, 0 [symbolic = %T.loc15_23.1 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc15_52.1: type = facet_type <@Generic, @Generic(%T.loc15_23.1)> [symbolic = %Generic.type.loc15_52.1 (constants.%Generic.type.79a857.2)] -// CHECK:STDOUT: %U.loc15_40.1: @CallGenericMethod.%Generic.type.loc15_52.1 (%Generic.type.79a857.2) = symbolic_binding U, 1 [symbolic = %U.loc15_40.1 (constants.%U)] -// CHECK:STDOUT: %pattern_type.loc15_40: type = pattern_type %Generic.type.loc15_52.1 [symbolic = %pattern_type.loc15_40 (constants.%pattern_type.31c)] +// CHECK:STDOUT: %Generic.type.loc15_52.1: type = facet_type <@Generic, @Generic(%T.loc15_23.1)> [symbolic = %Generic.type.loc15_52.1 (constants.%Generic.type.ee14e9.2)] +// CHECK:STDOUT: %U.loc15_40.1: @CallGenericMethod.%Generic.type.loc15_52.1 (%Generic.type.ee14e9.2) = symbolic_binding U, 1 [symbolic = %U.loc15_40.1 (constants.%U)] +// CHECK:STDOUT: %pattern_type.loc15_40: type = pattern_type %Generic.type.loc15_52.1 [symbolic = %pattern_type.loc15_40 (constants.%pattern_type.4e0)] // CHECK:STDOUT: %pattern_type.loc15_63: type = pattern_type %T.loc15_23.1 [symbolic = %pattern_type.loc15_63 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -611,13 +611,13 @@ fn G() { // CHECK:STDOUT: %.loc18_36.2: ref %GenericParam = temporary_storage // CHECK:STDOUT: %.loc18_36.3: init %GenericParam to %.loc18_36.2 = class_init () [concrete = constants.%GenericParam.val] // CHECK:STDOUT: %.loc18_38.1: init %GenericParam = converted %.loc18_36.1, %.loc18_36.3 [concrete = constants.%GenericParam.val] -// CHECK:STDOUT: %Generic.facet: %Generic.type.fa5 = facet_value constants.%ImplsGeneric, (constants.%Generic.impl_witness) [concrete = constants.%Generic.facet] -// CHECK:STDOUT: %.loc18_53: %Generic.type.fa5 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %Generic.facet: %Generic.type.b40 = facet_value constants.%ImplsGeneric, (constants.%Generic.impl_witness) [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %.loc18_53: %Generic.type.b40 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet] // CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) [concrete = constants.%CallGenericMethod.specific_fn] -// CHECK:STDOUT: %.loc18_38.2: ref %GenericParam = temporary %.loc18_36.2, %.loc18_38.1 [concrete = constants.%.c27] +// 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.%.c27) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.b65) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -632,38 +632,38 @@ fn G() { // CHECK:STDOUT: %Scalar.loc4_25.1 => constants.%Scalar // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf(constants.%Scalar, constants.%Self.34f) {} +// CHECK:STDOUT: specific @Generic.WithSelf(constants.%Scalar, constants.%Self.8ea) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%Scalar, constants.%Self.34f) {} +// CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%Scalar, constants.%Self.8ea) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%GenericParam) { // CHECK:STDOUT: %Scalar.loc4_25.1 => constants.%GenericParam // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.fa5 -// CHECK:STDOUT: %Self.loc4_34.2 => constants.%Self.e96 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.b40 +// CHECK:STDOUT: %Self.loc4_34.2 => constants.%Self.685 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf(constants.%GenericParam, constants.%Self.34f) { +// CHECK:STDOUT: specific @Generic.WithSelf(constants.%GenericParam, constants.%Self.8ea) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Scalar => constants.%GenericParam -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.fa5 -// CHECK:STDOUT: %Self => constants.%Self.34f -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.d27 -// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.87f -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.748 -// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.6aa +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.b40 +// CHECK:STDOUT: %Self => constants.%Self.8ea +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.e39 +// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.d19 +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.c13 +// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.b4a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.WithSelf(constants.%GenericParam, constants.%Generic.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Scalar => constants.%GenericParam -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.fa5 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.b40 // CHECK:STDOUT: %Self => constants.%Generic.facet -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.52a -// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.a3a -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.748 -// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.6aa +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.c45 +// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.d7c +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.c13 +// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.b4a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%GenericParam, constants.%Generic.facet) {} @@ -674,18 +674,18 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%T, constants.%U) { // CHECK:STDOUT: %T.loc15_23.1 => constants.%T -// CHECK:STDOUT: %Generic.type.loc15_52.1 => constants.%Generic.type.79a857.2 +// CHECK:STDOUT: %Generic.type.loc15_52.1 => constants.%Generic.type.ee14e9.2 // CHECK:STDOUT: %U.loc15_40.1 => constants.%U -// CHECK:STDOUT: %pattern_type.loc15_40 => constants.%pattern_type.31c +// CHECK:STDOUT: %pattern_type.loc15_40 => constants.%pattern_type.4e0 // CHECK:STDOUT: %pattern_type.loc15_63 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) { // CHECK:STDOUT: %T.loc15_23.1 => constants.%GenericParam -// CHECK:STDOUT: %Generic.type.loc15_52.1 => constants.%Generic.type.fa5 +// CHECK:STDOUT: %Generic.type.loc15_52.1 => constants.%Generic.type.b40 // CHECK:STDOUT: %U.loc15_40.1 => constants.%Generic.facet -// CHECK:STDOUT: %pattern_type.loc15_40 => constants.%pattern_type.9cd -// CHECK:STDOUT: %pattern_type.loc15_63 => constants.%pattern_type.97f +// CHECK:STDOUT: %pattern_type.loc15_40 => constants.%pattern_type.de1 +// CHECK:STDOUT: %pattern_type.loc15_63 => constants.%pattern_type.485 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type 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 bc7501f2adb3..5f24a463814f 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 @@ -27,13 +27,13 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Animal.type: type = facet_type <@Animal> [concrete] -// CHECK:STDOUT: %Self.1ff: %Animal.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.f00: %Animal.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.5a8: type = pattern_type %Animal.type [concrete] +// CHECK:STDOUT: %pattern_type.333: type = pattern_type %Animal.type [concrete] // CHECK:STDOUT: %T: %Animal.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.94e: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.e90: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %WalkAnimal.type: type = fn_type @WalkAnimal [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %WalkAnimal: %WalkAnimal.type = struct_value () [concrete] @@ -47,13 +47,13 @@ fn F() { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %Goat.val: %Goat = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.bea: type = pattern_type %Goat [concrete] +// CHECK:STDOUT: %pattern_type.283: type = pattern_type %Goat [concrete] // CHECK:STDOUT: %WalkAnimal.specific_fn: = specific_function %WalkAnimal, @WalkAnimal(%Animal.facet) [concrete] -// CHECK:STDOUT: %.e6d: ref %Goat = temporary invalid, %Goat.val [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.790b3b.2: type = fn_type @Destroy.Op.loc23_17.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e6d, %Destroy.Op.2dd605.2 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -76,9 +76,9 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} // CHECK:STDOUT: %WalkAnimal.decl: %WalkAnimal.type = fn_decl @WalkAnimal [concrete = constants.%WalkAnimal] { -// CHECK:STDOUT: %T.patt: %pattern_type.5a8 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @WalkAnimal.%pattern_type (%pattern_type.94e) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @WalkAnimal.%pattern_type (%pattern_type.94e) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.333 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %a.param_patt: @WalkAnimal.%pattern_type (%pattern_type.e90) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @WalkAnimal.%pattern_type (%pattern_type.e90) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc17_19: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -102,7 +102,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Animal { -// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.1ff] +// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f00] // CHECK:STDOUT: %Animal.WithSelf.decl = interface_with_self_decl @Animal [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -132,7 +132,7 @@ fn F() { // CHECK:STDOUT: generic fn @WalkAnimal(%T.loc17_16.2: %Animal.type) { // CHECK:STDOUT: %T.loc17_16.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc17_16.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc17_37.1: type = facet_access_type %T.loc17_16.1 [symbolic = %T.as_type.loc17_37.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc17_37.1 [symbolic = %pattern_type (constants.%pattern_type.94e)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc17_37.1 [symbolic = %pattern_type (constants.%pattern_type.e90)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc17_37.1 [symbolic = %require_complete (constants.%require_complete)] @@ -154,10 +154,10 @@ fn F() { // CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value constants.%Goat, (constants.%Animal.impl_witness) [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc23_24: %Animal.type = converted constants.%Goat, %Animal.facet [concrete = constants.%Animal.facet] // CHECK:STDOUT: %WalkAnimal.specific_fn: = specific_function %WalkAnimal.ref, @WalkAnimal(constants.%Animal.facet) [concrete = constants.%WalkAnimal.specific_fn] -// CHECK:STDOUT: %.loc23_17.2: ref %Goat = temporary %.loc23_15.2, %.loc23_17.1 [concrete = constants.%.e6d] +// 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.%.e6d) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.4ea) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -168,14 +168,14 @@ fn F() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.1ff) { +// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.f00) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WalkAnimal(constants.%T) { // CHECK:STDOUT: %T.loc17_16.1 => constants.%T // CHECK:STDOUT: %T.as_type.loc17_37.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.94e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Animal.WithSelf(constants.%Animal.facet) { @@ -185,7 +185,7 @@ fn F() { // CHECK:STDOUT: specific @WalkAnimal(constants.%Animal.facet) { // CHECK:STDOUT: %T.loc17_16.1 => constants.%Animal.facet // CHECK:STDOUT: %T.as_type.loc17_37.1 => constants.%Goat -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bea +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.283 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type 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 b6d86b72bf72..7d84bf5886fe 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 @@ -101,74 +101,74 @@ fn B() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %Scalar: type = symbolic_binding Scalar, 0 [symbolic] -// CHECK:STDOUT: %Generic.type.df8: type = generic_interface_type @Generic [concrete] +// CHECK:STDOUT: %Generic.type.30d: type = generic_interface_type @Generic [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Generic.generic: %Generic.type.df8 = struct_value () [concrete] -// CHECK:STDOUT: %Generic.type.79a857.1: type = facet_type <@Generic, @Generic(%Scalar)> [symbolic] -// CHECK:STDOUT: %Self.34f480.1: %Generic.type.79a857.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.type.882349.1: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%Scalar, %Self.34f480.1) [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.6a7088.1: %Generic.WithSelf.F.type.882349.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Generic.assoc_type.bf879e.1: type = assoc_entity_type @Generic, @Generic(%Scalar) [symbolic] -// CHECK:STDOUT: %assoc0.0c6b77.1: %Generic.assoc_type.bf879e.1 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %Generic.generic: %Generic.type.30d = struct_value () [concrete] +// CHECK:STDOUT: %Generic.type.ee14e9.1: type = facet_type <@Generic, @Generic(%Scalar)> [symbolic] +// CHECK:STDOUT: %Self.8ea1ea.1: %Generic.type.ee14e9.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.type.390775.1: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%Scalar, %Self.8ea1ea.1) [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.b85a66.1: %Generic.WithSelf.F.type.390775.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Generic.assoc_type.d7021d.1: type = assoc_entity_type @Generic, @Generic(%Scalar) [symbolic] +// CHECK:STDOUT: %assoc0.31052a.1: %Generic.assoc_type.d7021d.1 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] // CHECK:STDOUT: %GenericParam: type = class_type @GenericParam [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %ImplsGeneric: type = class_type @ImplsGeneric [concrete] -// CHECK:STDOUT: %Generic.type.fa5: type = facet_type <@Generic, @Generic(%GenericParam)> [concrete] +// CHECK:STDOUT: %Generic.type.b40: type = facet_type <@Generic, @Generic(%GenericParam)> [concrete] // CHECK:STDOUT: %Generic.impl_witness: = impl_witness @ImplsGeneric.as.Generic.impl.%Generic.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.e96: %Generic.type.fa5 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.type.d27: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Self.34f480.1) [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.87f: %Generic.WithSelf.F.type.d27 = struct_value () [symbolic] -// CHECK:STDOUT: %Generic.assoc_type.748: type = assoc_entity_type @Generic, @Generic(%GenericParam) [concrete] -// CHECK:STDOUT: %assoc0.6aa: %Generic.assoc_type.748 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %Self.685: %Generic.type.b40 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.type.e39: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Self.8ea1ea.1) [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.d19: %Generic.WithSelf.F.type.e39 = struct_value () [symbolic] +// CHECK:STDOUT: %Generic.assoc_type.c13: type = assoc_entity_type @Generic, @Generic(%GenericParam) [concrete] +// CHECK:STDOUT: %assoc0.b4a: %Generic.assoc_type.c13 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [concrete] // CHECK:STDOUT: %ImplsGeneric.as.Generic.impl.F.type: type = fn_type @ImplsGeneric.as.Generic.impl.F [concrete] // CHECK:STDOUT: %ImplsGeneric.as.Generic.impl.F: %ImplsGeneric.as.Generic.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %Generic.facet: %Generic.type.fa5 = facet_value %ImplsGeneric, (%Generic.impl_witness) [concrete] -// CHECK:STDOUT: %Generic.WithSelf.F.type.52a: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Generic.facet) [concrete] -// CHECK:STDOUT: %Generic.WithSelf.F.a3a: %Generic.WithSelf.F.type.52a = struct_value () [concrete] +// CHECK:STDOUT: %Generic.facet: %Generic.type.b40 = facet_value %ImplsGeneric, (%Generic.impl_witness) [concrete] +// CHECK:STDOUT: %Generic.WithSelf.F.type.c45: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Generic.facet) [concrete] +// CHECK:STDOUT: %Generic.WithSelf.F.d7c: %Generic.WithSelf.F.type.c45 = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Generic.type.79a857.2: type = facet_type <@Generic, @Generic(%T)> [symbolic] -// CHECK:STDOUT: %pattern_type.31c: type = pattern_type %Generic.type.79a857.2 [symbolic] -// CHECK:STDOUT: %U: %Generic.type.79a857.2 = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %Self.34f480.2: %Generic.type.79a857.2 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.type.882349.2: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T, %Self.34f480.1) [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.6a7088.2: %Generic.WithSelf.F.type.882349.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Generic.assoc_type.bf879e.2: type = assoc_entity_type @Generic, @Generic(%T) [symbolic] -// CHECK:STDOUT: %assoc0.0c6b77.2: %Generic.assoc_type.bf879e.2 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %Generic.type.ee14e9.2: type = facet_type <@Generic, @Generic(%T)> [symbolic] +// CHECK:STDOUT: %pattern_type.4e0: type = pattern_type %Generic.type.ee14e9.2 [symbolic] +// CHECK:STDOUT: %U: %Generic.type.ee14e9.2 = symbolic_binding U, 1 [symbolic] +// CHECK:STDOUT: %Self.8ea1ea.2: %Generic.type.ee14e9.2 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.type.390775.2: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T, %Self.8ea1ea.1) [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.b85a66.2: %Generic.WithSelf.F.type.390775.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Generic.assoc_type.d7021d.2: type = assoc_entity_type @Generic, @Generic(%T) [symbolic] +// CHECK:STDOUT: %assoc0.31052a.2: %Generic.assoc_type.d7021d.2 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] // CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] -// CHECK:STDOUT: %pattern_type.941: type = pattern_type %U.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.70f: type = pattern_type %U.as_type [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] // CHECK:STDOUT: %CallGenericMethod.type: type = fn_type @CallGenericMethod [concrete] // CHECK:STDOUT: %CallGenericMethod: %CallGenericMethod.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.80d: = require_complete_type %U.as_type [symbolic] +// CHECK:STDOUT: %require_complete.096: = require_complete_type %U.as_type [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %require_complete.826: = require_complete_type %Generic.type.79a857.2 [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.type.9e2: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T, %U) [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.9ed: %Generic.WithSelf.F.type.9e2 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.13f: = require_complete_type %Generic.type.ee14e9.2 [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.type.a70: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T, %U) [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.5e8: %Generic.WithSelf.F.type.a70 = struct_value () [symbolic] // CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U, @Generic, @Generic(%T) [symbolic] -// CHECK:STDOUT: %.762: type = fn_type_with_self_type %Generic.WithSelf.F.type.9e2, %U [symbolic] -// CHECK:STDOUT: %impl.elem0: %.762 = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %.aca: type = fn_type_with_self_type %Generic.WithSelf.F.type.a70, %U [symbolic] +// CHECK:STDOUT: %impl.elem0: %.aca = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Generic.WithSelf.F(%T, %U) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %ImplsGeneric.val: %ImplsGeneric = struct_value () [concrete] // CHECK:STDOUT: %GenericParam.val: %GenericParam = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.9cd: type = pattern_type %Generic.type.fa5 [concrete] -// CHECK:STDOUT: %pattern_type.3b7: type = pattern_type %ImplsGeneric [concrete] -// CHECK:STDOUT: %pattern_type.97f: type = pattern_type %GenericParam [concrete] +// CHECK:STDOUT: %pattern_type.de1: type = pattern_type %Generic.type.b40 [concrete] +// CHECK:STDOUT: %pattern_type.488: type = pattern_type %ImplsGeneric [concrete] +// CHECK:STDOUT: %pattern_type.485: type = pattern_type %GenericParam [concrete] // CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet) [concrete] -// CHECK:STDOUT: %.f63: ref %ImplsGeneric = temporary invalid, %ImplsGeneric.val [concrete] -// CHECK:STDOUT: %.c27: ref %GenericParam = temporary invalid, %GenericParam.val [concrete] +// 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.790b3b.2: type = fn_type @Destroy.Op.loc20_44.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.0b6: = bound_method %.c27, %Destroy.Op.2dd605.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc20_24 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.52c: = bound_method %.f63, %Destroy.Op.2dd605.3 [concrete] -// CHECK:STDOUT: %complete_type.c0e: = complete_type_witness %Generic.type.fa5 [concrete] -// CHECK:STDOUT: %.c5f: type = fn_type_with_self_type %Generic.WithSelf.F.type.52a, %Generic.facet [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: %complete_type.35b: = complete_type_witness %Generic.type.b40 [concrete] +// CHECK:STDOUT: %.1fa: type = fn_type_with_self_type %Generic.WithSelf.F.type.c45, %Generic.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -190,7 +190,7 @@ fn B() { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %Generic.decl: %Generic.type.df8 = interface_decl @Generic [concrete = constants.%Generic.generic] { +// CHECK:STDOUT: %Generic.decl: %Generic.type.30d = interface_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %Scalar.patt: %pattern_type.98f = symbolic_binding_pattern Scalar, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_28.1: type = splice_block %.loc4_28.2 [concrete = type] { @@ -203,15 +203,15 @@ fn B() { // CHECK:STDOUT: %ImplsGeneric.decl: type = class_decl @ImplsGeneric [concrete = constants.%ImplsGeneric] {} {} // CHECK:STDOUT: impl_decl @ImplsGeneric.as.Generic.impl [concrete] {} { // CHECK:STDOUT: %ImplsGeneric.ref: type = name_ref ImplsGeneric, file.%ImplsGeneric.decl [concrete = constants.%ImplsGeneric] -// CHECK:STDOUT: %Generic.ref: %Generic.type.df8 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] +// CHECK:STDOUT: %Generic.ref: %Generic.type.30d = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] // CHECK:STDOUT: %GenericParam.ref: type = name_ref GenericParam, file.%GenericParam.decl [concrete = constants.%GenericParam] -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%GenericParam)> [concrete = constants.%Generic.type.fa5] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%GenericParam)> [concrete = constants.%Generic.type.b40] // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericMethod.decl: %CallGenericMethod.type = fn_decl @CallGenericMethod [concrete = constants.%CallGenericMethod] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type.loc15_33 (%pattern_type.31c) = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %a.param_patt: @CallGenericMethod.%pattern_type.loc15_56 (%pattern_type.941) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @CallGenericMethod.%pattern_type.loc15_56 (%pattern_type.941) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type.loc15_33 (%pattern_type.4e0) = symbolic_binding_pattern U, 1 [concrete] +// CHECK:STDOUT: %a.param_patt: @CallGenericMethod.%pattern_type.loc15_56 (%pattern_type.70f) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @CallGenericMethod.%pattern_type.loc15_56 (%pattern_type.70f) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: %s.param_patt: @CallGenericMethod.%pattern_type.loc15_69 (%pattern_type.51d) = value_param_pattern [concrete] // CHECK:STDOUT: %s.patt: @CallGenericMethod.%pattern_type.loc15_69 (%pattern_type.51d) = at_binding_pattern s, %s.param_patt [concrete] // CHECK:STDOUT: } { @@ -220,16 +220,16 @@ fn B() { // CHECK:STDOUT: %.loc15_26.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc15_23.2: type = symbolic_binding T, 0 [symbolic = %T.loc15_23.1 (constants.%T)] -// CHECK:STDOUT: %.loc15_45: type = splice_block %Generic.type.loc15_45.2 [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.79a857.2)] { +// CHECK:STDOUT: %.loc15_45: type = splice_block %Generic.type.loc15_45.2 [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.ee14e9.2)] { // CHECK:STDOUT: %.Self.loc15_33: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Generic.ref: %Generic.type.df8 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] +// CHECK:STDOUT: %Generic.ref: %Generic.type.30d = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] // CHECK:STDOUT: %T.ref.loc15_44: type = name_ref T, %T.loc15_23.2 [symbolic = %T.loc15_23.1 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc15_45.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.79a857.2)] +// CHECK:STDOUT: %Generic.type.loc15_45.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.ee14e9.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc15_33.2: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.79a857.2) = symbolic_binding U, 1 [symbolic = %U.loc15_33.1 (constants.%U)] +// CHECK:STDOUT: %U.loc15_33.2: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.ee14e9.2) = symbolic_binding U, 1 [symbolic = %U.loc15_33.1 (constants.%U)] // CHECK:STDOUT: %a.param: @CallGenericMethod.%U.as_type.loc15_58.1 (%U.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc15_58.1: type = splice_block %.loc15_58.2 [symbolic = %U.as_type.loc15_58.1 (constants.%U.as_type)] { -// CHECK:STDOUT: %U.ref.loc15: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.79a857.2) = name_ref U, %U.loc15_33.2 [symbolic = %U.loc15_33.1 (constants.%U)] +// CHECK:STDOUT: %U.ref.loc15: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.ee14e9.2) = name_ref U, %U.loc15_33.2 [symbolic = %U.loc15_33.1 (constants.%U)] // CHECK:STDOUT: %U.as_type.loc15_58.2: type = facet_access_type %U.ref.loc15 [symbolic = %U.as_type.loc15_58.1 (constants.%U.as_type)] // CHECK:STDOUT: %.loc15_58.2: type = converted %U.ref.loc15, %U.as_type.loc15_58.2 [symbolic = %U.as_type.loc15_58.1 (constants.%U.as_type)] // CHECK:STDOUT: } @@ -245,16 +245,16 @@ fn B() { // CHECK:STDOUT: %Scalar.loc4_25.1: type = symbolic_binding Scalar, 0 [symbolic = %Scalar.loc4_25.1 (constants.%Scalar)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc4_25.1)> [symbolic = %Generic.type (constants.%Generic.type.79a857.1)] -// CHECK:STDOUT: %Self.loc4_34.2: @Generic.%Generic.type (%Generic.type.79a857.1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_34.2 (constants.%Self.34f480.1)] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc4_25.1)> [symbolic = %Generic.type (constants.%Generic.type.ee14e9.1)] +// CHECK:STDOUT: %Self.loc4_34.2: @Generic.%Generic.type (%Generic.type.ee14e9.1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_34.2 (constants.%Self.8ea1ea.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_34.1: @Generic.%Generic.type (%Generic.type.79a857.1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_34.2 (constants.%Self.34f480.1)] +// CHECK:STDOUT: %Self.loc4_34.1: @Generic.%Generic.type (%Generic.type.ee14e9.1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_34.2 (constants.%Self.8ea1ea.1)] // CHECK:STDOUT: %Generic.WithSelf.decl = interface_with_self_decl @Generic [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Generic.WithSelf.F.decl: @Generic.WithSelf.%Generic.WithSelf.F.type (%Generic.WithSelf.F.type.882349.1) = fn_decl @Generic.WithSelf.F [symbolic = @Generic.WithSelf.%Generic.WithSelf.F (constants.%Generic.WithSelf.F.6a7088.1)] {} {} -// CHECK:STDOUT: %assoc0.loc5_9.1: @Generic.WithSelf.%Generic.assoc_type (%Generic.assoc_type.bf879e.1) = assoc_entity element0, %Generic.WithSelf.F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.0c6b77.1)] +// CHECK:STDOUT: %Generic.WithSelf.F.decl: @Generic.WithSelf.%Generic.WithSelf.F.type (%Generic.WithSelf.F.type.390775.1) = fn_decl @Generic.WithSelf.F [symbolic = @Generic.WithSelf.%Generic.WithSelf.F (constants.%Generic.WithSelf.F.b85a66.1)] {} {} +// CHECK:STDOUT: %assoc0.loc5_9.1: @Generic.WithSelf.%Generic.assoc_type (%Generic.assoc_type.d7021d.1) = assoc_entity element0, %Generic.WithSelf.F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.31052a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc4_34.1 @@ -292,7 +292,7 @@ fn B() { // CHECK:STDOUT: .Self = constants.%ImplsGeneric // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Generic.WithSelf.F(@Generic.%Scalar.loc4_25.2: type, @Generic.%Self.loc4_34.1: @Generic.%Generic.type (%Generic.type.79a857.1)) { +// CHECK:STDOUT: generic fn @Generic.WithSelf.F(@Generic.%Scalar.loc4_25.2: type, @Generic.%Self.loc4_34.1: @Generic.%Generic.type (%Generic.type.ee14e9.1)) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: @@ -301,35 +301,35 @@ fn B() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc15_23.2: type, %U.loc15_33.2: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.79a857.2)) { +// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc15_23.2: type, %U.loc15_33.2: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.ee14e9.2)) { // CHECK:STDOUT: %T.loc15_23.1: type = symbolic_binding T, 0 [symbolic = %T.loc15_23.1 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc15_45.1: type = facet_type <@Generic, @Generic(%T.loc15_23.1)> [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.79a857.2)] -// CHECK:STDOUT: %U.loc15_33.1: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.79a857.2) = symbolic_binding U, 1 [symbolic = %U.loc15_33.1 (constants.%U)] -// CHECK:STDOUT: %pattern_type.loc15_33: type = pattern_type %Generic.type.loc15_45.1 [symbolic = %pattern_type.loc15_33 (constants.%pattern_type.31c)] +// CHECK:STDOUT: %Generic.type.loc15_45.1: type = facet_type <@Generic, @Generic(%T.loc15_23.1)> [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.ee14e9.2)] +// CHECK:STDOUT: %U.loc15_33.1: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.ee14e9.2) = symbolic_binding U, 1 [symbolic = %U.loc15_33.1 (constants.%U)] +// CHECK:STDOUT: %pattern_type.loc15_33: type = pattern_type %Generic.type.loc15_45.1 [symbolic = %pattern_type.loc15_33 (constants.%pattern_type.4e0)] // CHECK:STDOUT: %U.as_type.loc15_58.1: type = facet_access_type %U.loc15_33.1 [symbolic = %U.as_type.loc15_58.1 (constants.%U.as_type)] -// CHECK:STDOUT: %pattern_type.loc15_56: type = pattern_type %U.as_type.loc15_58.1 [symbolic = %pattern_type.loc15_56 (constants.%pattern_type.941)] +// CHECK:STDOUT: %pattern_type.loc15_56: type = pattern_type %U.as_type.loc15_58.1 [symbolic = %pattern_type.loc15_56 (constants.%pattern_type.70f)] // CHECK:STDOUT: %pattern_type.loc15_69: type = pattern_type %T.loc15_23.1 [symbolic = %pattern_type.loc15_69 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc15_56: = require_complete_type %U.as_type.loc15_58.1 [symbolic = %require_complete.loc15_56 (constants.%require_complete.80d)] +// CHECK:STDOUT: %require_complete.loc15_56: = require_complete_type %U.as_type.loc15_58.1 [symbolic = %require_complete.loc15_56 (constants.%require_complete.096)] // CHECK:STDOUT: %require_complete.loc15_69: = require_complete_type %T.loc15_23.1 [symbolic = %require_complete.loc15_69 (constants.%require_complete.944)] -// CHECK:STDOUT: %require_complete.loc16: = require_complete_type %Generic.type.loc15_45.1 [symbolic = %require_complete.loc16 (constants.%require_complete.826)] -// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%T.loc15_23.1) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.bf879e.2)] -// CHECK:STDOUT: %assoc0: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.bf879e.2) = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic = %assoc0 (constants.%assoc0.0c6b77.2)] -// CHECK:STDOUT: %Generic.WithSelf.F.type: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T.loc15_23.1, %U.loc15_33.1) [symbolic = %Generic.WithSelf.F.type (constants.%Generic.WithSelf.F.type.9e2)] -// CHECK:STDOUT: %.loc16_4.3: type = fn_type_with_self_type %Generic.WithSelf.F.type, %U.loc15_33.1 [symbolic = %.loc16_4.3 (constants.%.762)] +// CHECK:STDOUT: %require_complete.loc16: = require_complete_type %Generic.type.loc15_45.1 [symbolic = %require_complete.loc16 (constants.%require_complete.13f)] +// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%T.loc15_23.1) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.d7021d.2)] +// CHECK:STDOUT: %assoc0: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.d7021d.2) = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic = %assoc0 (constants.%assoc0.31052a.2)] +// CHECK:STDOUT: %Generic.WithSelf.F.type: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T.loc15_23.1, %U.loc15_33.1) [symbolic = %Generic.WithSelf.F.type (constants.%Generic.WithSelf.F.type.a70)] +// CHECK:STDOUT: %.loc16_4.3: type = fn_type_with_self_type %Generic.WithSelf.F.type, %U.loc15_33.1 [symbolic = %.loc16_4.3 (constants.%.aca)] // CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U.loc15_33.1, @Generic, @Generic(%T.loc15_23.1) [symbolic = %Generic.lookup_impl_witness (constants.%Generic.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc16_4.2: @CallGenericMethod.%.loc16_4.3 (%.762) = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc16_4.2: @CallGenericMethod.%.loc16_4.3 (%.aca) = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @Generic.WithSelf.F(%T.loc15_23.1, %U.loc15_33.1) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%a.param: @CallGenericMethod.%U.as_type.loc15_58.1 (%U.as_type), %s.param: @CallGenericMethod.%T.loc15_23.1 (%T)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %U.ref.loc16: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.79a857.2) = name_ref U, %U.loc15_33.2 [symbolic = %U.loc15_33.1 (constants.%U)] +// CHECK:STDOUT: %U.ref.loc16: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.ee14e9.2) = name_ref U, %U.loc15_33.2 [symbolic = %U.loc15_33.1 (constants.%U)] // CHECK:STDOUT: %U.as_type.loc16: type = facet_access_type %U.ref.loc16 [symbolic = %U.as_type.loc15_58.1 (constants.%U.as_type)] // CHECK:STDOUT: %.loc16_4.1: type = converted %U.ref.loc16, %U.as_type.loc16 [symbolic = %U.as_type.loc15_58.1 (constants.%U.as_type)] -// CHECK:STDOUT: %.loc16_4.2: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.bf879e.2) = specific_constant @Generic.WithSelf.%assoc0.loc5_9.1, @Generic.WithSelf(constants.%T, constants.%U) [symbolic = %assoc0 (constants.%assoc0.0c6b77.2)] -// CHECK:STDOUT: %F.ref: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.bf879e.2) = name_ref F, %.loc16_4.2 [symbolic = %assoc0 (constants.%assoc0.0c6b77.2)] -// CHECK:STDOUT: %impl.elem0.loc16_4.1: @CallGenericMethod.%.loc16_4.3 (%.762) = impl_witness_access constants.%Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %.loc16_4.2: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.d7021d.2) = specific_constant @Generic.WithSelf.%assoc0.loc5_9.1, @Generic.WithSelf(constants.%T, constants.%U) [symbolic = %assoc0 (constants.%assoc0.31052a.2)] +// CHECK:STDOUT: %F.ref: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.d7021d.2) = name_ref F, %.loc16_4.2 [symbolic = %assoc0 (constants.%assoc0.31052a.2)] +// CHECK:STDOUT: %impl.elem0.loc16_4.1: @CallGenericMethod.%.loc16_4.3 (%.aca) = impl_witness_access constants.%Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @Generic.WithSelf.F(constants.%T, constants.%U) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %Generic.WithSelf.F.call: init %empty_tuple.type = call %specific_impl_fn.loc16_4.1() // CHECK:STDOUT: return @@ -349,16 +349,16 @@ fn B() { // CHECK:STDOUT: %.loc20_42.2: ref %GenericParam = temporary_storage // CHECK:STDOUT: %.loc20_42.3: init %GenericParam to %.loc20_42.2 = class_init () [concrete = constants.%GenericParam.val] // CHECK:STDOUT: %.loc20_44.1: init %GenericParam = converted %.loc20_42.1, %.loc20_42.3 [concrete = constants.%GenericParam.val] -// CHECK:STDOUT: %Generic.facet: %Generic.type.fa5 = facet_value constants.%ImplsGeneric, (constants.%Generic.impl_witness) [concrete = constants.%Generic.facet] -// CHECK:STDOUT: %.loc20_59: %Generic.type.fa5 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %Generic.facet: %Generic.type.b40 = facet_value constants.%ImplsGeneric, (constants.%Generic.impl_witness) [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %.loc20_59: %Generic.type.b40 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet] // CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) [concrete = constants.%CallGenericMethod.specific_fn] -// CHECK:STDOUT: %.loc20_24.2: ref %ImplsGeneric = temporary %.loc20_22.2, %.loc20_24.1 [concrete = constants.%.f63] +// CHECK:STDOUT: %.loc20_24.2: ref %ImplsGeneric = temporary %.loc20_22.2, %.loc20_24.1 [concrete = constants.%.cd4] // CHECK:STDOUT: %.loc20_24.3: %ImplsGeneric = acquire_value %.loc20_24.2 [concrete = constants.%ImplsGeneric.val] -// CHECK:STDOUT: %.loc20_44.2: ref %GenericParam = temporary %.loc20_42.2, %.loc20_44.1 [concrete = constants.%.c27] +// 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.0b6(constants.%.c27) -// CHECK:STDOUT: %Destroy.Op.call.loc20_24: init %empty_tuple.type = call constants.%Destroy.Op.bound.52c(constants.%.f63) +// 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: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -378,38 +378,38 @@ fn B() { // CHECK:STDOUT: %Scalar.loc4_25.1 => constants.%Scalar // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf(constants.%Scalar, constants.%Self.34f480.1) {} +// CHECK:STDOUT: specific @Generic.WithSelf(constants.%Scalar, constants.%Self.8ea1ea.1) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%Scalar, constants.%Self.34f480.1) {} +// CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%Scalar, constants.%Self.8ea1ea.1) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%GenericParam) { // CHECK:STDOUT: %Scalar.loc4_25.1 => constants.%GenericParam // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.fa5 -// CHECK:STDOUT: %Self.loc4_34.2 => constants.%Self.e96 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.b40 +// CHECK:STDOUT: %Self.loc4_34.2 => constants.%Self.685 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf(constants.%GenericParam, constants.%Self.34f480.1) { +// CHECK:STDOUT: specific @Generic.WithSelf(constants.%GenericParam, constants.%Self.8ea1ea.1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Scalar => constants.%GenericParam -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.fa5 -// CHECK:STDOUT: %Self => constants.%Self.34f480.1 -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.d27 -// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.87f -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.748 -// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.6aa +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.b40 +// CHECK:STDOUT: %Self => constants.%Self.8ea1ea.1 +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.e39 +// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.d19 +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.c13 +// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.b4a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.WithSelf(constants.%GenericParam, constants.%Generic.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Scalar => constants.%GenericParam -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.fa5 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.b40 // CHECK:STDOUT: %Self => constants.%Generic.facet -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.52a -// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.a3a -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.748 -// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.6aa +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.c45 +// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.d7c +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.c13 +// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.b4a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%GenericParam, constants.%Generic.facet) {} @@ -418,61 +418,61 @@ fn B() { // CHECK:STDOUT: %Scalar.loc4_25.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.79a857.2 -// CHECK:STDOUT: %Self.loc4_34.2 => constants.%Self.34f480.2 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.ee14e9.2 +// CHECK:STDOUT: %Self.loc4_34.2 => constants.%Self.8ea1ea.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf(constants.%T, constants.%Self.34f480.1) { +// CHECK:STDOUT: specific @Generic.WithSelf(constants.%T, constants.%Self.8ea1ea.1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Scalar => constants.%T -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.79a857.2 -// CHECK:STDOUT: %Self => constants.%Self.34f480.1 -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.882349.2 -// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.6a7088.2 -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.bf879e.2 -// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.0c6b77.2 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.ee14e9.2 +// CHECK:STDOUT: %Self => constants.%Self.8ea1ea.1 +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.390775.2 +// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.b85a66.2 +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.d7021d.2 +// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.31052a.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%T, constants.%U) { // CHECK:STDOUT: %T.loc15_23.1 => constants.%T -// CHECK:STDOUT: %Generic.type.loc15_45.1 => constants.%Generic.type.79a857.2 +// CHECK:STDOUT: %Generic.type.loc15_45.1 => constants.%Generic.type.ee14e9.2 // CHECK:STDOUT: %U.loc15_33.1 => constants.%U -// CHECK:STDOUT: %pattern_type.loc15_33 => constants.%pattern_type.31c +// CHECK:STDOUT: %pattern_type.loc15_33 => constants.%pattern_type.4e0 // CHECK:STDOUT: %U.as_type.loc15_58.1 => constants.%U.as_type -// CHECK:STDOUT: %pattern_type.loc15_56 => constants.%pattern_type.941 +// CHECK:STDOUT: %pattern_type.loc15_56 => constants.%pattern_type.70f // CHECK:STDOUT: %pattern_type.loc15_69 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.WithSelf(constants.%T, constants.%U) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Scalar => constants.%T -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.79a857.2 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.ee14e9.2 // CHECK:STDOUT: %Self => constants.%U -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.9e2 -// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.9ed -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.bf879e.2 -// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.0c6b77.2 +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.a70 +// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.5e8 +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.d7021d.2 +// CHECK:STDOUT: %assoc0.loc5_9.2 => constants.%assoc0.31052a.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%T, constants.%U) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) { // CHECK:STDOUT: %T.loc15_23.1 => constants.%GenericParam -// CHECK:STDOUT: %Generic.type.loc15_45.1 => constants.%Generic.type.fa5 +// CHECK:STDOUT: %Generic.type.loc15_45.1 => constants.%Generic.type.b40 // CHECK:STDOUT: %U.loc15_33.1 => constants.%Generic.facet -// CHECK:STDOUT: %pattern_type.loc15_33 => constants.%pattern_type.9cd +// CHECK:STDOUT: %pattern_type.loc15_33 => constants.%pattern_type.de1 // CHECK:STDOUT: %U.as_type.loc15_58.1 => constants.%ImplsGeneric -// CHECK:STDOUT: %pattern_type.loc15_56 => constants.%pattern_type.3b7 -// CHECK:STDOUT: %pattern_type.loc15_69 => constants.%pattern_type.97f +// CHECK:STDOUT: %pattern_type.loc15_56 => constants.%pattern_type.488 +// CHECK:STDOUT: %pattern_type.loc15_69 => constants.%pattern_type.485 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc15_56 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc15_69 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc16 => constants.%complete_type.c0e -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.748 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.6aa -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.52a -// CHECK:STDOUT: %.loc16_4.3 => constants.%.c5f +// CHECK:STDOUT: %require_complete.loc16 => constants.%complete_type.35b +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.c13 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.b4a +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.c45 +// CHECK:STDOUT: %.loc16_4.3 => constants.%.1fa // CHECK:STDOUT: %Generic.lookup_impl_witness => constants.%Generic.impl_witness // CHECK:STDOUT: %impl.elem0.loc16_4.2 => constants.%ImplsGeneric.as.Generic.impl.F // CHECK:STDOUT: %specific_impl_fn.loc16_4.2 => constants.%ImplsGeneric.as.Generic.impl.F @@ -486,44 +486,44 @@ fn B() { // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %V: type = symbolic_binding V, 0 [symbolic] // CHECK:STDOUT: %W: type = symbolic_binding W, 1 [symbolic] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.7a7: type = facet_type <@I, @I(%V, %W)> [symbolic] -// CHECK:STDOUT: %Self.1f7: %I.type.7a7 = symbolic_binding Self, 2 [symbolic] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.d96: type = facet_type <@I, @I(%V, %W)> [symbolic] +// CHECK:STDOUT: %Self.299: %I.type.d96 = symbolic_binding Self, 2 [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %I.type.bf4: type = facet_type <@I, @I(%T.67d, %empty_tuple.type)> [symbolic] -// CHECK:STDOUT: %I.impl_witness.1f3: = impl_witness @C.as.I.impl.%I.impl_witness_table, @C.as.I.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %Self.e96: %I.type.bf4 = symbolic_binding Self, 2 [symbolic] -// CHECK:STDOUT: %require_complete.f6c: = require_complete_type %I.type.bf4 [symbolic] -// CHECK:STDOUT: %I.facet.ccf: %I.type.bf4 = facet_value %C, (%I.impl_witness.1f3) [symbolic] +// CHECK:STDOUT: %I.type.269: type = facet_type <@I, @I(%T.67d, %empty_tuple.type)> [symbolic] +// CHECK:STDOUT: %I.impl_witness.a35: = impl_witness @C.as.I.impl.%I.impl_witness_table, @C.as.I.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %Self.7df: %I.type.269 = symbolic_binding Self, 2 [symbolic] +// CHECK:STDOUT: %require_complete.2dc: = require_complete_type %I.type.269 [symbolic] +// CHECK:STDOUT: %I.facet.754: %I.type.269 = facet_value %C, (%I.impl_witness.a35) [symbolic] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %I.type.aaf: type = facet_type <@I, @I(%empty_struct_type, %empty_tuple.type)> [concrete] -// CHECK:STDOUT: %pattern_type.73d: type = pattern_type %I.type.aaf [concrete] -// CHECK:STDOUT: %T.696: %I.type.aaf = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Self.8c2: %I.type.aaf = symbolic_binding Self, 2 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.696 [symbolic] -// CHECK:STDOUT: %pattern_type.bb0: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %I.type.722: type = facet_type <@I, @I(%empty_struct_type, %empty_tuple.type)> [concrete] +// CHECK:STDOUT: %pattern_type.bd4: type = pattern_type %I.type.722 [concrete] +// CHECK:STDOUT: %T.a08: %I.type.722 = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Self.9e2: %I.type.722 = symbolic_binding Self, 2 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.a08 [symbolic] +// CHECK:STDOUT: %pattern_type.d7b: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.ae1: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.d9e: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %I.impl_witness.b5f: = impl_witness @C.as.I.impl.%I.impl_witness_table, @C.as.I.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %complete_type.889: = complete_type_witness %I.type.aaf [concrete] -// CHECK:STDOUT: %I.facet.aaf: %I.type.aaf = facet_value %C, (%I.impl_witness.b5f) [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] -// CHECK:STDOUT: %A.specific_fn: = specific_function %A, @A(%I.facet.aaf) [concrete] -// CHECK:STDOUT: %.7a6: ref %C = temporary invalid, %C.val [concrete] +// CHECK:STDOUT: %I.impl_witness.a7c: = impl_witness @C.as.I.impl.%I.impl_witness_table, @C.as.I.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %complete_type.dfa: = complete_type_witness %I.type.722 [concrete] +// CHECK:STDOUT: %I.facet.831: %I.type.722 = facet_value %C, (%I.impl_witness.a7c) [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] +// CHECK:STDOUT: %A.specific_fn: = specific_function %A, @A(%I.facet.831) [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.790b3b.2: type = fn_type @Destroy.Op.loc12_8.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.7a6, %Destroy.Op.2dd605.2 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -544,7 +544,7 @@ fn B() { // CHECK:STDOUT: .B = %B.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %I.decl: %I.type.48c = interface_decl @I [concrete = constants.%I.generic] { +// CHECK:STDOUT: %I.decl: %I.type.335 = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %V.patt: %pattern_type.98f = symbolic_binding_pattern V, 0 [concrete] // CHECK:STDOUT: %W.patt: %pattern_type.98f = symbolic_binding_pattern W, 1 [concrete] // CHECK:STDOUT: } { @@ -564,11 +564,11 @@ fn B() { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_15.1 [symbolic = %T.loc7_15.2 (constants.%T.67d)] // CHECK:STDOUT: %.loc7_35: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_36: type = converted %.loc7_35, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %I.type.loc7_36.1: type = facet_type <@I, @I(constants.%T.67d, constants.%empty_tuple.type)> [symbolic = %I.type.loc7_36.2 (constants.%I.type.bf4)] +// CHECK:STDOUT: %I.type.loc7_36.1: type = facet_type <@I, @I(constants.%T.67d, constants.%empty_tuple.type)> [symbolic = %I.type.loc7_36.2 (constants.%I.type.269)] // CHECK:STDOUT: %.loc7_18.1: type = splice_block %.loc7_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc7_18.2: type = type_literal type [concrete = type] @@ -576,23 +576,23 @@ fn B() { // CHECK:STDOUT: %T.loc7_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc7_15.2 (constants.%T.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %T.patt: %pattern_type.73d = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.bb0) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.bb0) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.bd4 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.d7b) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.d7b) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc9_18.1: type = splice_block %I.type [concrete = constants.%I.type.aaf] { +// CHECK:STDOUT: %.loc9_18.1: type = splice_block %I.type [concrete = constants.%I.type.722] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %.loc9_13: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc9_17: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc9_18.2: type = converted %.loc9_13, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc9_18.3: type = converted %.loc9_17, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type, constants.%empty_tuple.type)> [concrete = constants.%I.type.aaf] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type, constants.%empty_tuple.type)> [concrete = constants.%I.type.722] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc9_7.2: %I.type.aaf = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.696)] +// CHECK:STDOUT: %T.loc9_7.2: %I.type.722 = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.a08)] // CHECK:STDOUT: %t.param: @A.%T.as_type.loc9_31.1 (%T.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc9_31.1: type = splice_block %.loc9_31.2 [symbolic = %T.as_type.loc9_31.1 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref: %I.type.aaf = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.696)] +// CHECK:STDOUT: %T.ref: %I.type.722 = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.a08)] // CHECK:STDOUT: %T.as_type.loc9_31.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_31.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc9_31.2: type = converted %T.ref, %T.as_type.loc9_31.2 [symbolic = %T.as_type.loc9_31.1 (constants.%T.as_type)] // CHECK:STDOUT: } @@ -606,11 +606,11 @@ fn B() { // CHECK:STDOUT: %W.loc3_24.1: type = symbolic_binding W, 1 [symbolic = %W.loc3_24.1 (constants.%W)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%V.loc3_14.1, %W.loc3_24.1)> [symbolic = %I.type (constants.%I.type.7a7)] -// CHECK:STDOUT: %Self.loc3_33.2: @I.%I.type (%I.type.7a7) = symbolic_binding Self, 2 [symbolic = %Self.loc3_33.2 (constants.%Self.1f7)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%V.loc3_14.1, %W.loc3_24.1)> [symbolic = %I.type (constants.%I.type.d96)] +// CHECK:STDOUT: %Self.loc3_33.2: @I.%I.type (%I.type.d96) = symbolic_binding Self, 2 [symbolic = %Self.loc3_33.2 (constants.%Self.299)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc3_33.1: @I.%I.type (%I.type.7a7) = symbolic_binding Self, 2 [symbolic = %Self.loc3_33.2 (constants.%Self.1f7)] +// CHECK:STDOUT: %Self.loc3_33.1: @I.%I.type (%I.type.d96) = symbolic_binding Self, 2 [symbolic = %Self.loc3_33.2 (constants.%Self.299)] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -623,15 +623,15 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @C.as.I.impl(%T.loc7_15.1: type) { // CHECK:STDOUT: %T.loc7_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc7_15.2 (constants.%T.67d)] -// CHECK:STDOUT: %I.type.loc7_36.2: type = facet_type <@I, @I(%T.loc7_15.2, constants.%empty_tuple.type)> [symbolic = %I.type.loc7_36.2 (constants.%I.type.bf4)] -// CHECK:STDOUT: %I.impl_witness.loc7_38.2: = impl_witness %I.impl_witness_table, @C.as.I.impl(%T.loc7_15.2) [symbolic = %I.impl_witness.loc7_38.2 (constants.%I.impl_witness.1f3)] +// CHECK:STDOUT: %I.type.loc7_36.2: type = facet_type <@I, @I(%T.loc7_15.2, constants.%empty_tuple.type)> [symbolic = %I.type.loc7_36.2 (constants.%I.type.269)] +// CHECK:STDOUT: %I.impl_witness.loc7_38.2: = impl_witness %I.impl_witness_table, @C.as.I.impl(%T.loc7_15.2) [symbolic = %I.impl_witness.loc7_38.2 (constants.%I.impl_witness.a35)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.loc7_36.2 [symbolic = %require_complete (constants.%require_complete.f6c)] +// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.loc7_36.2 [symbolic = %require_complete (constants.%require_complete.2dc)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.ref as %I.type.loc7_36.1 { // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness.loc7_38.1: = impl_witness %I.impl_witness_table, @C.as.I.impl(constants.%T.67d) [symbolic = %I.impl_witness.loc7_38.2 (constants.%I.impl_witness.1f3)] +// CHECK:STDOUT: %I.impl_witness.loc7_38.1: = impl_witness %I.impl_witness_table, @C.as.I.impl(constants.%T.67d) [symbolic = %I.impl_witness.loc7_38.2 (constants.%I.impl_witness.a35)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %I.type.loc7_36.1 @@ -647,13 +647,13 @@ fn B() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @A(%T.loc9_7.2: %I.type.aaf) { -// CHECK:STDOUT: %T.loc9_7.1: %I.type.aaf = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.696)] +// CHECK:STDOUT: generic fn @A(%T.loc9_7.2: %I.type.722) { +// CHECK:STDOUT: %T.loc9_7.1: %I.type.722 = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.a08)] // CHECK:STDOUT: %T.as_type.loc9_31.1: type = facet_access_type %T.loc9_7.1 [symbolic = %T.as_type.loc9_31.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_31.1 [symbolic = %pattern_type (constants.%pattern_type.bb0)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_31.1 [symbolic = %pattern_type (constants.%pattern_type.d7b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_31.1 [symbolic = %require_complete (constants.%require_complete.ae1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_31.1 [symbolic = %require_complete (constants.%require_complete.d9e)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%t.param: @A.%T.as_type.loc9_31.1 (%T.as_type)) { // CHECK:STDOUT: !entry: @@ -669,13 +669,13 @@ fn B() { // CHECK:STDOUT: %.loc12_6.2: ref %C = temporary_storage // CHECK:STDOUT: %.loc12_6.3: init %C to %.loc12_6.2 = class_init () [concrete = constants.%C.val] // CHECK:STDOUT: %.loc12_8.1: init %C = converted %.loc12_6.1, %.loc12_6.3 [concrete = constants.%C.val] -// CHECK:STDOUT: %I.facet: %I.type.aaf = facet_value constants.%C, (constants.%I.impl_witness.b5f) [concrete = constants.%I.facet.aaf] -// CHECK:STDOUT: %.loc12_12: %I.type.aaf = converted constants.%C, %I.facet [concrete = constants.%I.facet.aaf] -// CHECK:STDOUT: %A.specific_fn: = specific_function %A.ref, @A(constants.%I.facet.aaf) [concrete = constants.%A.specific_fn] -// CHECK:STDOUT: %.loc12_8.2: ref %C = temporary %.loc12_6.2, %.loc12_8.1 [concrete = constants.%.7a6] +// CHECK:STDOUT: %I.facet: %I.type.722 = facet_value constants.%C, (constants.%I.impl_witness.a7c) [concrete = constants.%I.facet.831] +// CHECK:STDOUT: %.loc12_12: %I.type.722 = converted constants.%C, %I.facet [concrete = constants.%I.facet.831] +// CHECK:STDOUT: %A.specific_fn: = specific_function %A.ref, @A(constants.%I.facet.831) [concrete = constants.%A.specific_fn] +// 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.%.7a6) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.115) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -691,28 +691,28 @@ fn B() { // CHECK:STDOUT: %W.loc3_24.1 => constants.%W // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%V, constants.%W, constants.%Self.1f7) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%V, constants.%W, constants.%Self.299) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T.67d, constants.%empty_tuple.type) { // CHECK:STDOUT: %V.loc3_14.1 => constants.%T.67d // CHECK:STDOUT: %W.loc3_24.1 => constants.%empty_tuple.type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.bf4 -// CHECK:STDOUT: %Self.loc3_33.2 => constants.%Self.e96 +// CHECK:STDOUT: %I.type => constants.%I.type.269 +// CHECK:STDOUT: %Self.loc3_33.2 => constants.%Self.7df // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl(constants.%T.67d) { // CHECK:STDOUT: %T.loc7_15.2 => constants.%T.67d -// CHECK:STDOUT: %I.type.loc7_36.2 => constants.%I.type.bf4 -// CHECK:STDOUT: %I.impl_witness.loc7_38.2 => constants.%I.impl_witness.1f3 +// CHECK:STDOUT: %I.type.loc7_36.2 => constants.%I.type.269 +// CHECK:STDOUT: %I.impl_witness.loc7_38.2 => constants.%I.impl_witness.a35 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T.67d, constants.%empty_tuple.type, constants.%Self.1f7) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%T.67d, constants.%empty_tuple.type, constants.%Self.299) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T.67d, constants.%empty_tuple.type, constants.%I.facet.ccf) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%T.67d, constants.%empty_tuple.type, constants.%I.facet.754) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -721,33 +721,33 @@ fn B() { // CHECK:STDOUT: %W.loc3_24.1 => constants.%empty_tuple.type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.aaf -// CHECK:STDOUT: %Self.loc3_33.2 => constants.%Self.8c2 +// CHECK:STDOUT: %I.type => constants.%I.type.722 +// CHECK:STDOUT: %Self.loc3_33.2 => constants.%Self.9e2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%empty_struct_type, constants.%empty_tuple.type, constants.%Self.1f7) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%empty_struct_type, constants.%empty_tuple.type, constants.%Self.299) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A(constants.%T.696) { -// CHECK:STDOUT: %T.loc9_7.1 => constants.%T.696 +// CHECK:STDOUT: specific @A(constants.%T.a08) { +// CHECK:STDOUT: %T.loc9_7.1 => constants.%T.a08 // CHECK:STDOUT: %T.as_type.loc9_31.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bb0 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d7b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl(constants.%empty_struct_type) { // CHECK:STDOUT: %T.loc7_15.2 => constants.%empty_struct_type -// CHECK:STDOUT: %I.type.loc7_36.2 => constants.%I.type.aaf -// CHECK:STDOUT: %I.impl_witness.loc7_38.2 => constants.%I.impl_witness.b5f +// CHECK:STDOUT: %I.type.loc7_36.2 => constants.%I.type.722 +// CHECK:STDOUT: %I.impl_witness.loc7_38.2 => constants.%I.impl_witness.a7c // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.889 +// CHECK:STDOUT: %require_complete => constants.%complete_type.dfa // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A(constants.%I.facet.aaf) { -// CHECK:STDOUT: %T.loc9_7.1 => constants.%I.facet.aaf +// CHECK:STDOUT: specific @A(constants.%I.facet.831) { +// CHECK:STDOUT: %T.loc9_7.1 => constants.%I.facet.831 // CHECK:STDOUT: %T.as_type.loc9_31.1 => constants.%C -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d5 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.357 @@ -761,31 +761,31 @@ fn B() { // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %V: type = symbolic_binding V, 0 [symbolic] // CHECK:STDOUT: %W: type = symbolic_binding W, 1 [symbolic] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.7a7: type = facet_type <@I, @I(%V, %W)> [symbolic] -// CHECK:STDOUT: %Self.1f7: %I.type.7a7 = symbolic_binding Self, 2 [symbolic] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.d96: type = facet_type <@I, @I(%V, %W)> [symbolic] +// CHECK:STDOUT: %Self.299: %I.type.d96 = symbolic_binding Self, 2 [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %I.type.bf4: type = facet_type <@I, @I(%T.67d, %empty_tuple.type)> [symbolic] +// CHECK:STDOUT: %I.type.269: type = facet_type <@I, @I(%T.67d, %empty_tuple.type)> [symbolic] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table, @C.as.I.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %Self.e96: %I.type.bf4 = symbolic_binding Self, 2 [symbolic] -// CHECK:STDOUT: %require_complete.f6c: = require_complete_type %I.type.bf4 [symbolic] -// CHECK:STDOUT: %I.facet: %I.type.bf4 = facet_value %C, (%I.impl_witness) [symbolic] +// CHECK:STDOUT: %Self.7df: %I.type.269 = symbolic_binding Self, 2 [symbolic] +// CHECK:STDOUT: %require_complete.2dc: = require_complete_type %I.type.269 [symbolic] +// CHECK:STDOUT: %I.facet: %I.type.269 = facet_value %C, (%I.impl_witness) [symbolic] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %I.type.c6d: type = facet_type <@I, @I(%empty_struct_type, %empty_struct_type)> [concrete] -// CHECK:STDOUT: %pattern_type.699: type = pattern_type %I.type.c6d [concrete] -// CHECK:STDOUT: %T.7fd: %I.type.c6d = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Self.bc1: %I.type.c6d = symbolic_binding Self, 2 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.7fd [symbolic] -// CHECK:STDOUT: %pattern_type.c92: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %I.type.6c0: type = facet_type <@I, @I(%empty_struct_type, %empty_struct_type)> [concrete] +// CHECK:STDOUT: %pattern_type.5c6: type = pattern_type %I.type.6c0 [concrete] +// CHECK:STDOUT: %T.b75: %I.type.6c0 = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Self.136: %I.type.6c0 = symbolic_binding Self, 2 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.b75 [symbolic] +// CHECK:STDOUT: %pattern_type.67d: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.d6e: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.401: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] @@ -807,7 +807,7 @@ fn B() { // CHECK:STDOUT: .B = %B.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %I.decl: %I.type.48c = interface_decl @I [concrete = constants.%I.generic] { +// CHECK:STDOUT: %I.decl: %I.type.335 = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %V.patt: %pattern_type.98f = symbolic_binding_pattern V, 0 [concrete] // CHECK:STDOUT: %W.patt: %pattern_type.98f = symbolic_binding_pattern W, 1 [concrete] // CHECK:STDOUT: } { @@ -827,11 +827,11 @@ fn B() { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_15.1 [symbolic = %T.loc7_15.2 (constants.%T.67d)] // CHECK:STDOUT: %.loc7_35: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_36: type = converted %.loc7_35, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %I.type.loc7_36.1: type = facet_type <@I, @I(constants.%T.67d, constants.%empty_tuple.type)> [symbolic = %I.type.loc7_36.2 (constants.%I.type.bf4)] +// CHECK:STDOUT: %I.type.loc7_36.1: type = facet_type <@I, @I(constants.%T.67d, constants.%empty_tuple.type)> [symbolic = %I.type.loc7_36.2 (constants.%I.type.269)] // CHECK:STDOUT: %.loc7_18.1: type = splice_block %.loc7_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc7_18.2: type = type_literal type [concrete = type] @@ -839,23 +839,23 @@ fn B() { // CHECK:STDOUT: %T.loc7_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc7_15.2 (constants.%T.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %T.patt: %pattern_type.699 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.c92) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.c92) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.5c6 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.67d) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.67d) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc9_18.1: type = splice_block %I.type [concrete = constants.%I.type.c6d] { +// CHECK:STDOUT: %.loc9_18.1: type = splice_block %I.type [concrete = constants.%I.type.6c0] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %.loc9_13: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc9_17: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc9_18.2: type = converted %.loc9_13, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc9_18.3: type = converted %.loc9_17, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type, constants.%empty_struct_type)> [concrete = constants.%I.type.c6d] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type, constants.%empty_struct_type)> [concrete = constants.%I.type.6c0] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc9_7.2: %I.type.c6d = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.7fd)] +// CHECK:STDOUT: %T.loc9_7.2: %I.type.6c0 = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.b75)] // CHECK:STDOUT: %t.param: @A.%T.as_type.loc9_31.1 (%T.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc9_31.1: type = splice_block %.loc9_31.2 [symbolic = %T.as_type.loc9_31.1 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref: %I.type.c6d = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.7fd)] +// CHECK:STDOUT: %T.ref: %I.type.6c0 = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.b75)] // CHECK:STDOUT: %T.as_type.loc9_31.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_31.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc9_31.2: type = converted %T.ref, %T.as_type.loc9_31.2 [symbolic = %T.as_type.loc9_31.1 (constants.%T.as_type)] // CHECK:STDOUT: } @@ -869,11 +869,11 @@ fn B() { // CHECK:STDOUT: %W.loc3_24.1: type = symbolic_binding W, 1 [symbolic = %W.loc3_24.1 (constants.%W)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%V.loc3_14.1, %W.loc3_24.1)> [symbolic = %I.type (constants.%I.type.7a7)] -// CHECK:STDOUT: %Self.loc3_33.2: @I.%I.type (%I.type.7a7) = symbolic_binding Self, 2 [symbolic = %Self.loc3_33.2 (constants.%Self.1f7)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%V.loc3_14.1, %W.loc3_24.1)> [symbolic = %I.type (constants.%I.type.d96)] +// CHECK:STDOUT: %Self.loc3_33.2: @I.%I.type (%I.type.d96) = symbolic_binding Self, 2 [symbolic = %Self.loc3_33.2 (constants.%Self.299)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc3_33.1: @I.%I.type (%I.type.7a7) = symbolic_binding Self, 2 [symbolic = %Self.loc3_33.2 (constants.%Self.1f7)] +// CHECK:STDOUT: %Self.loc3_33.1: @I.%I.type (%I.type.d96) = symbolic_binding Self, 2 [symbolic = %Self.loc3_33.2 (constants.%Self.299)] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -886,11 +886,11 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @C.as.I.impl(%T.loc7_15.1: type) { // CHECK:STDOUT: %T.loc7_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc7_15.2 (constants.%T.67d)] -// CHECK:STDOUT: %I.type.loc7_36.2: type = facet_type <@I, @I(%T.loc7_15.2, constants.%empty_tuple.type)> [symbolic = %I.type.loc7_36.2 (constants.%I.type.bf4)] +// CHECK:STDOUT: %I.type.loc7_36.2: type = facet_type <@I, @I(%T.loc7_15.2, constants.%empty_tuple.type)> [symbolic = %I.type.loc7_36.2 (constants.%I.type.269)] // CHECK:STDOUT: %I.impl_witness.loc7_38.2: = impl_witness %I.impl_witness_table, @C.as.I.impl(%T.loc7_15.2) [symbolic = %I.impl_witness.loc7_38.2 (constants.%I.impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.loc7_36.2 [symbolic = %require_complete (constants.%require_complete.f6c)] +// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.loc7_36.2 [symbolic = %require_complete (constants.%require_complete.2dc)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.ref as %I.type.loc7_36.1 { // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl [concrete] @@ -910,13 +910,13 @@ fn B() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @A(%T.loc9_7.2: %I.type.c6d) { -// CHECK:STDOUT: %T.loc9_7.1: %I.type.c6d = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.7fd)] +// CHECK:STDOUT: generic fn @A(%T.loc9_7.2: %I.type.6c0) { +// CHECK:STDOUT: %T.loc9_7.1: %I.type.6c0 = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.b75)] // CHECK:STDOUT: %T.as_type.loc9_31.1: type = facet_access_type %T.loc9_7.1 [symbolic = %T.as_type.loc9_31.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_31.1 [symbolic = %pattern_type (constants.%pattern_type.c92)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_31.1 [symbolic = %pattern_type (constants.%pattern_type.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_31.1 [symbolic = %require_complete (constants.%require_complete.d6e)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_31.1 [symbolic = %require_complete (constants.%require_complete.401)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%t.param: @A.%T.as_type.loc9_31.1 (%T.as_type)) { // CHECK:STDOUT: !entry: @@ -940,24 +940,24 @@ fn B() { // CHECK:STDOUT: %W.loc3_24.1 => constants.%W // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%V, constants.%W, constants.%Self.1f7) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%V, constants.%W, constants.%Self.299) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T.67d, constants.%empty_tuple.type) { // CHECK:STDOUT: %V.loc3_14.1 => constants.%T.67d // CHECK:STDOUT: %W.loc3_24.1 => constants.%empty_tuple.type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.bf4 -// CHECK:STDOUT: %Self.loc3_33.2 => constants.%Self.e96 +// CHECK:STDOUT: %I.type => constants.%I.type.269 +// CHECK:STDOUT: %Self.loc3_33.2 => constants.%Self.7df // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl(constants.%T.67d) { // CHECK:STDOUT: %T.loc7_15.2 => constants.%T.67d -// CHECK:STDOUT: %I.type.loc7_36.2 => constants.%I.type.bf4 +// CHECK:STDOUT: %I.type.loc7_36.2 => constants.%I.type.269 // CHECK:STDOUT: %I.impl_witness.loc7_38.2 => constants.%I.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T.67d, constants.%empty_tuple.type, constants.%Self.1f7) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%T.67d, constants.%empty_tuple.type, constants.%Self.299) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -970,18 +970,18 @@ fn B() { // CHECK:STDOUT: %W.loc3_24.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.c6d -// CHECK:STDOUT: %Self.loc3_33.2 => constants.%Self.bc1 +// CHECK:STDOUT: %I.type => constants.%I.type.6c0 +// CHECK:STDOUT: %Self.loc3_33.2 => constants.%Self.136 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%empty_struct_type, constants.%empty_struct_type, constants.%Self.1f7) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%empty_struct_type, constants.%empty_struct_type, constants.%Self.299) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A(constants.%T.7fd) { -// CHECK:STDOUT: %T.loc9_7.1 => constants.%T.7fd +// CHECK:STDOUT: specific @A(constants.%T.b75) { +// CHECK:STDOUT: %T.loc9_7.1 => constants.%T.b75 // CHECK:STDOUT: %T.as_type.loc9_31.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c92 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.67d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch_impl_self_with_fixed_specific.carbon @@ -997,26 +997,26 @@ fn B() { // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.025: type = class_type @C, @C(%V, %W) [symbolic] +// CHECK:STDOUT: %C.47a: type = class_type @C, @C(%V, %W) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %C.e00: type = class_type @C, @C(%T.67d, %empty_tuple.type) [symbolic] +// CHECK:STDOUT: %C.ab0: type = class_type @C, @C(%T.67d, %empty_tuple.type) [symbolic] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table, @C.as.I.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.e00, (%I.impl_witness) [symbolic] -// CHECK:STDOUT: %pattern_type.998: type = pattern_type %I.type [concrete] -// CHECK:STDOUT: %T.2e1: %I.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.2e1 [symbolic] -// CHECK:STDOUT: %pattern_type.3df: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.ab0, (%I.impl_witness) [symbolic] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %I.type [concrete] +// CHECK:STDOUT: %T.dda: %I.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.dda [symbolic] +// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %C.986: type = class_type @C, @C(%empty_struct_type, %empty_struct_type) [concrete] -// CHECK:STDOUT: %C.val: %C.986 = struct_value () [concrete] +// CHECK:STDOUT: %C.b48: type = class_type @C, @C(%empty_struct_type, %empty_struct_type) [concrete] +// CHECK:STDOUT: %C.val: %C.b48 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1058,7 +1058,7 @@ fn B() { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_15.1 [symbolic = %T.loc7_15.2 (constants.%T.67d)] // CHECK:STDOUT: %.loc7_30: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_31: type = converted %.loc7_30, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %C.loc7_31.1: type = class_type @C, @C(constants.%T.67d, constants.%empty_tuple.type) [symbolic = %C.loc7_31.2 (constants.%C.e00)] +// CHECK:STDOUT: %C.loc7_31.1: type = class_type @C, @C(constants.%T.67d, constants.%empty_tuple.type) [symbolic = %C.loc7_31.2 (constants.%C.ab0)] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.loc7_18.1: type = splice_block %.loc7_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1067,18 +1067,18 @@ fn B() { // CHECK:STDOUT: %T.loc7_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc7_15.2 (constants.%T.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %T.patt: %pattern_type.998 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.3df) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.3df) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.6cb = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.b3a) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.b3a) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_10: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc9_7.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.2e1)] +// CHECK:STDOUT: %T.loc9_7.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.dda)] // CHECK:STDOUT: %t.param: @A.%T.as_type.loc9_23.1 (%T.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc9_23.1: type = splice_block %.loc9_23.2 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.2e1)] +// CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.dda)] // CHECK:STDOUT: %T.as_type.loc9_23.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc9_23.2: type = converted %T.ref, %T.as_type.loc9_23.2 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] // CHECK:STDOUT: } @@ -1100,7 +1100,7 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @C.as.I.impl(%T.loc7_15.1: type) { // CHECK:STDOUT: %T.loc7_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc7_15.2 (constants.%T.67d)] -// CHECK:STDOUT: %C.loc7_31.2: type = class_type @C, @C(%T.loc7_15.2, constants.%empty_tuple.type) [symbolic = %C.loc7_31.2 (constants.%C.e00)] +// CHECK:STDOUT: %C.loc7_31.2: type = class_type @C, @C(%T.loc7_15.2, constants.%empty_tuple.type) [symbolic = %C.loc7_31.2 (constants.%C.ab0)] // CHECK:STDOUT: %I.impl_witness.loc7_38.2: = impl_witness %I.impl_witness_table, @C.as.I.impl(%T.loc7_15.2) [symbolic = %I.impl_witness.loc7_38.2 (constants.%I.impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -1126,14 +1126,14 @@ fn B() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.025 +// CHECK:STDOUT: .Self = constants.%C.47a // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A(%T.loc9_7.2: %I.type) { -// CHECK:STDOUT: %T.loc9_7.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.2e1)] +// CHECK:STDOUT: %T.loc9_7.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.dda)] // CHECK:STDOUT: %T.as_type.loc9_23.1: type = facet_access_type %T.loc9_7.1 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_23.1 [symbolic = %pattern_type (constants.%pattern_type.3df)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_23.1 [symbolic = %pattern_type (constants.%pattern_type.b3a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_23.1 [symbolic = %require_complete (constants.%require_complete)] @@ -1153,10 +1153,10 @@ fn B() { // CHECK:STDOUT: %.loc19_18: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc19_19.1: type = converted %.loc19_14, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc19_19.2: type = converted %.loc19_18, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%empty_struct_type, constants.%empty_struct_type) [concrete = constants.%C.986] -// CHECK:STDOUT: %.loc19_6.2: ref %C.986 = temporary_storage -// CHECK:STDOUT: %.loc19_6.3: init %C.986 to %.loc19_6.2 = class_init () [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc19_8: init %C.986 = converted %.loc19_6.1, %.loc19_6.3 [concrete = constants.%C.val] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%empty_struct_type, constants.%empty_struct_type) [concrete = constants.%C.b48] +// CHECK:STDOUT: %.loc19_6.2: ref %C.b48 = temporary_storage +// CHECK:STDOUT: %.loc19_6.3: init %C.b48 to %.loc19_6.2 = class_init () [concrete = constants.%C.val] +// CHECK:STDOUT: %.loc19_8: init %C.b48 = converted %.loc19_6.1, %.loc19_6.3 [concrete = constants.%C.val] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1176,7 +1176,7 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl(constants.%T.67d) { // CHECK:STDOUT: %T.loc7_15.2 => constants.%T.67d -// CHECK:STDOUT: %C.loc7_31.2 => constants.%C.e00 +// CHECK:STDOUT: %C.loc7_31.2 => constants.%C.ab0 // CHECK:STDOUT: %I.impl_witness.loc7_38.2 => constants.%I.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1184,10 +1184,10 @@ fn B() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A(constants.%T.2e1) { -// CHECK:STDOUT: %T.loc9_7.1 => constants.%T.2e1 +// CHECK:STDOUT: specific @A(constants.%T.dda) { +// CHECK:STDOUT: %T.loc9_7.1 => constants.%T.dda // CHECK:STDOUT: %T.as_type.loc9_23.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3df +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b3a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%empty_struct_type, constants.%empty_struct_type) { diff --git a/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon b/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon index ef11caebb150..ef6297b54a41 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 @@ -130,7 +130,7 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: %Eats.type: type = facet_type <@Eats> [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Eats.assoc_type: type = assoc_entity_type @Eats [concrete] -// CHECK:STDOUT: %assoc0.0cc: %Eats.assoc_type = assoc_entity element0, @Eats.WithSelf.%Eats.WithSelf.Eat.decl [concrete] +// CHECK:STDOUT: %assoc0.12f: %Eats.assoc_type = assoc_entity element0, @Eats.WithSelf.%Eats.WithSelf.Eat.decl [concrete] // CHECK:STDOUT: %Animal.type: type = facet_type <@Animal> [concrete] // CHECK:STDOUT: %Goat: type = class_type @Goat [concrete] // CHECK:STDOUT: %Goat.Bleet.type: type = fn_type @Goat.Bleet [concrete] @@ -141,22 +141,22 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: %Goat.as.Eats.impl.Eat.type: type = fn_type @Goat.as.Eats.impl.Eat [concrete] // CHECK:STDOUT: %Goat.as.Eats.impl.Eat: %Goat.as.Eats.impl.Eat.type = struct_value () [concrete] // CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %Goat, (%Eats.impl_witness) [concrete] -// CHECK:STDOUT: %Eats.WithSelf.Eat.type.c84: type = fn_type @Eats.WithSelf.Eat, @Eats.WithSelf(%Eats.facet) [concrete] +// CHECK:STDOUT: %Eats.WithSelf.Eat.type.618: type = fn_type @Eats.WithSelf.Eat, @Eats.WithSelf(%Eats.facet) [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.bea: type = pattern_type %Goat [concrete] +// CHECK:STDOUT: %pattern_type.283: type = pattern_type %Goat [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %Goat.val: %Goat = struct_value () [concrete] -// CHECK:STDOUT: %.e6d: ref %Goat = temporary invalid, %Goat.val [concrete] -// CHECK:STDOUT: %.d3b: type = fn_type_with_self_type %Eats.WithSelf.Eat.type.c84, %Eats.facet [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc27_8.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e6d, %Destroy.Op.2dd605.2 [concrete] +// CHECK:STDOUT: %.4ea: ref %Goat = temporary invalid, %Goat.val [concrete] +// CHECK:STDOUT: %.406: type = fn_type_with_self_type %Eats.WithSelf.Eat.type.618, %Eats.facet [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc27_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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.bea = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.283 = value_binding_pattern x [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc22_28.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %Goat.ref.loc22_33: type = name_ref Goat, file.%Goat.decl [concrete = constants.%Goat] @@ -171,15 +171,15 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: %as_type.loc22: type = facet_access_type %.loc22_15.2 [concrete = constants.%Goat] // CHECK:STDOUT: %.loc22_15.3: type = converted %.loc22_15.2, %as_type.loc22 [concrete = constants.%Goat] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc22_30.2: ref %Goat = temporary %.loc22_28.2, %.loc22_30.1 [concrete = constants.%.e6d] +// CHECK:STDOUT: %.loc22_30.2: ref %Goat = temporary %.loc22_28.2, %.loc22_30.1 [concrete = constants.%.4ea] // CHECK:STDOUT: %.loc22_30.3: %Goat = acquire_value %.loc22_30.2 [concrete = constants.%Goat.val] // CHECK:STDOUT: %x: %Goat = value_binding x, %.loc22_30.3 // CHECK:STDOUT: %x.ref.loc23: %Goat = name_ref x, %x // CHECK:STDOUT: %Bleet.ref.loc23: %Goat.Bleet.type = name_ref Bleet, @Goat.%Goat.Bleet.decl [concrete = constants.%Goat.Bleet] // CHECK:STDOUT: %Goat.Bleet.call.loc23: init %empty_tuple.type = call %Bleet.ref.loc23() // CHECK:STDOUT: %x.ref.loc24: %Goat = name_ref x, %x -// CHECK:STDOUT: %Eat.ref.loc24: %Eats.assoc_type = name_ref Eat, @Eats.WithSelf.%assoc0 [concrete = constants.%assoc0.0cc] -// CHECK:STDOUT: %impl.elem0.loc24: %.d3b = impl_witness_access constants.%Eats.impl_witness, element0 [concrete = constants.%Goat.as.Eats.impl.Eat] +// CHECK:STDOUT: %Eat.ref.loc24: %Eats.assoc_type = name_ref Eat, @Eats.WithSelf.%assoc0 [concrete = constants.%assoc0.12f] +// CHECK:STDOUT: %impl.elem0.loc24: %.406 = impl_witness_access constants.%Eats.impl_witness, element0 [concrete = constants.%Goat.as.Eats.impl.Eat] // CHECK:STDOUT: %Goat.as.Eats.impl.Eat.call.loc24: init %empty_tuple.type = call %impl.elem0.loc24() // CHECK:STDOUT: %.loc26_6.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %Goat.ref.loc26_11: type = name_ref Goat, file.%Goat.decl [concrete = constants.%Goat] @@ -192,7 +192,7 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: %.loc26_26: %Animal.type = converted %Goat.ref.loc26_21, %Animal.facet.loc26 [concrete = constants.%Animal.facet] // CHECK:STDOUT: %as_type.loc26: type = facet_access_type %.loc26_26 [concrete = constants.%Goat] // CHECK:STDOUT: %.loc26_35: type = converted %.loc26_26, %as_type.loc26 [concrete = constants.%Goat] -// CHECK:STDOUT: %.loc26_8.2: ref %Goat = temporary %.loc26_6.2, %.loc26_8.1 [concrete = constants.%.e6d] +// 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: %.loc27_6.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -206,13 +206,13 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: %.loc27_26: %Animal.type = converted %Goat.ref.loc27_21, %Animal.facet.loc27 [concrete = constants.%Animal.facet] // CHECK:STDOUT: %as_type.loc27: type = facet_access_type %.loc27_26 [concrete = constants.%Goat] // CHECK:STDOUT: %.loc27_35: type = converted %.loc27_26, %as_type.loc27 [concrete = constants.%Goat] -// CHECK:STDOUT: %.loc27_8.2: ref %Goat = temporary %.loc27_6.2, %.loc27_8.1 [concrete = constants.%.e6d] -// CHECK:STDOUT: %Eat.ref.loc27: %Eats.assoc_type = name_ref Eat, @Eats.WithSelf.%assoc0 [concrete = constants.%assoc0.0cc] -// CHECK:STDOUT: %impl.elem0.loc27: %.d3b = impl_witness_access constants.%Eats.impl_witness, element0 [concrete = constants.%Goat.as.Eats.impl.Eat] +// CHECK:STDOUT: %.loc27_8.2: ref %Goat = temporary %.loc27_6.2, %.loc27_8.1 [concrete = constants.%.4ea] +// CHECK:STDOUT: %Eat.ref.loc27: %Eats.assoc_type = name_ref Eat, @Eats.WithSelf.%assoc0 [concrete = constants.%assoc0.12f] +// CHECK:STDOUT: %impl.elem0.loc27: %.406 = 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.%.e6d) -// CHECK:STDOUT: %Destroy.Op.call.loc26: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.e6d) -// CHECK:STDOUT: %Destroy.Op.call.loc22: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.e6d) +// CHECK:STDOUT: %Destroy.Op.call.loc27: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.4ea) +// CHECK:STDOUT: %Destroy.Op.call.loc26: 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: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -229,11 +229,11 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete] // CHECK:STDOUT: %A: %J.type = symbolic_binding A, 0 [symbolic] // CHECK:STDOUT: %A.as_type: type = facet_access_type %A [symbolic] -// CHECK:STDOUT: %pattern_type.520: type = pattern_type %A.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.76a: type = pattern_type %A.as_type [symbolic] // CHECK:STDOUT: %B: %A.as_type = symbolic_binding B, 1 [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C, @C(%A, %B) [symbolic] -// CHECK:STDOUT: %pattern_type.b04: type = pattern_type %C [symbolic] +// CHECK:STDOUT: %pattern_type.bac: type = pattern_type %C [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%A, %B) [symbolic] @@ -261,8 +261,8 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: %A.loc25_7.1 => constants.%A // CHECK:STDOUT: %A.as_type.loc25_17.1 => constants.%A.as_type // CHECK:STDOUT: %B.loc25_14.1 => constants.%B -// CHECK:STDOUT: %pattern_type.loc25_14 => constants.%pattern_type.520 +// CHECK:STDOUT: %pattern_type.loc25_14 => constants.%pattern_type.76a // CHECK:STDOUT: %C.loc25_29.1 => constants.%C -// CHECK:STDOUT: %pattern_type.loc25_21 => constants.%pattern_type.b04 +// CHECK:STDOUT: %pattern_type.loc25_21 => constants.%pattern_type.bac // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/convert_facet_value_to_itself.carbon b/toolchain/check/testdata/facet/convert_facet_value_to_itself.carbon index f8b746b06abf..f24c27d317be 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_to_itself.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_to_itself.carbon @@ -33,14 +33,14 @@ fn F() { // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %Animal.type [concrete] -// CHECK:STDOUT: %T.34ba26.1: %Animal.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.443025.1: %Animal.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %FeedAnimal.type: type = fn_type @FeedAnimal [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %FeedAnimal: %FeedAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %T.34ba26.2: %Animal.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.443025.2: %Animal.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete] // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %FeedAnimal.specific_fn.a0f: = specific_function %FeedAnimal, @FeedAnimal(%T.34ba26.2) [symbolic] +// CHECK:STDOUT: %FeedAnimal.specific_fn.5bd: = specific_function %FeedAnimal, @FeedAnimal(%T.443025.2) [symbolic] // CHECK:STDOUT: %Goat: type = class_type @Goat [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] @@ -49,7 +49,7 @@ fn F() { // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %HandleAnimal.specific_fn: = specific_function %HandleAnimal, @HandleAnimal(%Animal.facet) [concrete] -// CHECK:STDOUT: %FeedAnimal.specific_fn.628: = specific_function %FeedAnimal, @FeedAnimal(%Animal.facet) [concrete] +// CHECK:STDOUT: %FeedAnimal.specific_fn.42c: = specific_function %FeedAnimal, @FeedAnimal(%Animal.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -77,7 +77,7 @@ fn F() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc17_23.2: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc17_23.1 (constants.%T.34ba26.1)] +// CHECK:STDOUT: %T.loc17_23.2: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc17_23.1 (constants.%T.443025.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] @@ -86,7 +86,7 @@ fn F() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc19_18.2: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc19_18.1 (constants.%T.34ba26.2)] +// CHECK:STDOUT: %T.loc19_18.2: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc19_18.1 (constants.%T.443025.2)] // CHECK:STDOUT: } // CHECK:STDOUT: %Goat.decl: type = class_decl @Goat [concrete = constants.%Goat] {} {} // CHECK:STDOUT: impl_decl @Goat.as.Animal.impl [concrete] {} { @@ -125,7 +125,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @FeedAnimal(%T.loc17_23.2: %Animal.type) { -// CHECK:STDOUT: %T.loc17_23.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc17_23.1 (constants.%T.34ba26.1)] +// CHECK:STDOUT: %T.loc17_23.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc17_23.1 (constants.%T.443025.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -136,16 +136,16 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HandleAnimal(%T.loc19_18.2: %Animal.type) { -// CHECK:STDOUT: %T.loc19_18.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc19_18.1 (constants.%T.34ba26.2)] +// CHECK:STDOUT: %T.loc19_18.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc19_18.1 (constants.%T.443025.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_31.2: = specific_function constants.%FeedAnimal, @FeedAnimal(%T.loc19_18.1) [symbolic = %FeedAnimal.specific_fn.loc19_31.2 (constants.%FeedAnimal.specific_fn.a0f)] +// CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_31.2: = specific_function constants.%FeedAnimal, @FeedAnimal(%T.loc19_18.1) [symbolic = %FeedAnimal.specific_fn.loc19_31.2 (constants.%FeedAnimal.specific_fn.5bd)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %FeedAnimal.ref: %FeedAnimal.type = name_ref FeedAnimal, file.%FeedAnimal.decl [concrete = constants.%FeedAnimal] -// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc19_18.2 [symbolic = %T.loc19_18.1 (constants.%T.34ba26.2)] -// CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_31.1: = specific_function %FeedAnimal.ref, @FeedAnimal(constants.%T.34ba26.2) [symbolic = %FeedAnimal.specific_fn.loc19_31.2 (constants.%FeedAnimal.specific_fn.a0f)] +// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc19_18.2 [symbolic = %T.loc19_18.1 (constants.%T.443025.2)] +// CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_31.1: = specific_function %FeedAnimal.ref, @FeedAnimal(constants.%T.443025.2) [symbolic = %FeedAnimal.specific_fn.loc19_31.2 (constants.%FeedAnimal.specific_fn.5bd)] // CHECK:STDOUT: %FeedAnimal.call: init %empty_tuple.type = call %FeedAnimal.specific_fn.loc19_31.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -166,16 +166,16 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @FeedAnimal(constants.%T.34ba26.1) { -// CHECK:STDOUT: %T.loc17_23.1 => constants.%T.34ba26.1 +// CHECK:STDOUT: specific @FeedAnimal(constants.%T.443025.1) { +// CHECK:STDOUT: %T.loc17_23.1 => constants.%T.443025.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HandleAnimal(constants.%T.34ba26.2) { -// CHECK:STDOUT: %T.loc19_18.1 => constants.%T.34ba26.2 +// CHECK:STDOUT: specific @HandleAnimal(constants.%T.443025.2) { +// CHECK:STDOUT: %T.loc19_18.1 => constants.%T.443025.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @FeedAnimal(constants.%T.34ba26.2) { -// CHECK:STDOUT: %T.loc17_23.1 => constants.%T.34ba26.2 +// CHECK:STDOUT: specific @FeedAnimal(constants.%T.443025.2) { +// CHECK:STDOUT: %T.loc17_23.1 => constants.%T.443025.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -188,7 +188,7 @@ fn F() { // CHECK:STDOUT: %T.loc19_18.1 => constants.%Animal.facet // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_31.2 => constants.%FeedAnimal.specific_fn.628 +// CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_31.2 => constants.%FeedAnimal.specific_fn.42c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedAnimal(constants.%Animal.facet) { diff --git a/toolchain/check/testdata/facet/convert_facet_value_to_narrowed_facet_type.carbon b/toolchain/check/testdata/facet/convert_facet_value_to_narrowed_facet_type.carbon index b4c75cec2861..2d9e721a87ef 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_to_narrowed_facet_type.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_to_narrowed_facet_type.carbon @@ -93,37 +93,37 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Eats.type: type = facet_type <@Eats> [concrete] -// CHECK:STDOUT: %Self.d7f: %Eats.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.23e: %Eats.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Animal.type: type = facet_type <@Animal> [concrete] -// CHECK:STDOUT: %Self.1ff: %Animal.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.f00: %Animal.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.3a5: type = pattern_type %Eats.type [concrete] +// CHECK:STDOUT: %pattern_type.880: type = pattern_type %Eats.type [concrete] // CHECK:STDOUT: %T: %Eats.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.58d: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.aed: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %Feed.type: type = fn_type @Feed [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.019: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %BitAndWith.type.fd8: type = generic_interface_type @BitAndWith [concrete] -// CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.fd8 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.2af: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete] +// CHECK:STDOUT: %require_complete.c4d: = require_complete_type %T.as_type [symbolic] +// 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] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.2af = facet_value type, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.5d1: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %.9ee: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.5d1, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %Animal.type, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %facet_type: type = facet_type <@Eats & @Animal> [concrete] -// CHECK:STDOUT: %pattern_type.f51: type = pattern_type %facet_type [concrete] +// CHECK:STDOUT: %pattern_type.018: type = pattern_type %facet_type [concrete] // CHECK:STDOUT: %U: %facet_type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] -// CHECK:STDOUT: %pattern_type.24e: type = pattern_type %U.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.c56: type = pattern_type %U.as_type [symbolic] // CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete] // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.6ae: = require_complete_type %U.as_type [symbolic] +// CHECK:STDOUT: %require_complete.ad2: = require_complete_type %U.as_type [symbolic] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %U, @Eats [symbolic] // CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %U.as_type, (%Eats.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %Feed.specific_fn: = specific_function %Feed, @Feed(%Eats.facet) [symbolic] @@ -135,9 +135,9 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.fd8 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @type.as.BitAndWith.impl [concrete] +// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.a06 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @type.as.BitAndWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -152,9 +152,9 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %Eats.decl: type = interface_decl @Eats [concrete = constants.%Eats.type] {} {} // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} // CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] { -// CHECK:STDOUT: %T.patt: %pattern_type.3a5 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.58d) = value_param_pattern [concrete] -// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.58d) = at_binding_pattern e, %e.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.880 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.aed) = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.aed) = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6_13: type = splice_block %Eats.ref [concrete = constants.%Eats.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -170,15 +170,15 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %e: @Feed.%T.as_type.loc6_29.1 (%T.as_type) = value_binding e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { -// CHECK:STDOUT: %U.patt: %pattern_type.f51 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.24e) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.24e) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %U.patt: %pattern_type.018 = symbolic_binding_pattern U, 0 [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.c56) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.c56) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_28.1: type = splice_block %.loc8_28.3 [concrete = constants.%facet_type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] -// CHECK:STDOUT: %impl.elem0: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %Animal.ref, %impl.elem0 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method(%Animal.ref, %Eats.ref) [concrete = constants.%facet_type] // CHECK:STDOUT: %.loc8_28.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type] @@ -196,7 +196,7 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Eats { -// CHECK:STDOUT: %Self: %Eats.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d7f] +// CHECK:STDOUT: %Self: %Eats.type = symbolic_binding Self, 0 [symbolic = constants.%Self.23e] // CHECK:STDOUT: %Eats.WithSelf.decl = interface_with_self_decl @Eats [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -207,7 +207,7 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Animal { -// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.1ff] +// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f00] // CHECK:STDOUT: %Animal.WithSelf.decl = interface_with_self_decl @Animal [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -220,10 +220,10 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: generic fn @Feed(%T.loc6_10.2: %Eats.type) { // CHECK:STDOUT: %T.loc6_10.1: %Eats.type = symbolic_binding T, 0 [symbolic = %T.loc6_10.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc6_29.1: type = facet_access_type %T.loc6_10.1 [symbolic = %T.as_type.loc6_29.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc6_29.1 [symbolic = %pattern_type (constants.%pattern_type.58d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc6_29.1 [symbolic = %pattern_type (constants.%pattern_type.aed)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_29.1 [symbolic = %require_complete (constants.%require_complete.019)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_29.1 [symbolic = %require_complete (constants.%require_complete.c4d)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc6_29.1 (%T.as_type)) { // CHECK:STDOUT: !entry: @@ -234,10 +234,10 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: generic fn @HandleAnimal(%U.loc8_18.2: %facet_type) { // CHECK:STDOUT: %U.loc8_18.1: %facet_type = symbolic_binding U, 0 [symbolic = %U.loc8_18.1 (constants.%U)] // CHECK:STDOUT: %U.as_type.loc8_39.1: type = facet_access_type %U.loc8_18.1 [symbolic = %U.as_type.loc8_39.1 (constants.%U.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc8_39.1 [symbolic = %pattern_type (constants.%pattern_type.24e)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc8_39.1 [symbolic = %pattern_type (constants.%pattern_type.c56)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc8_39.1 [symbolic = %require_complete (constants.%require_complete.6ae)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc8_39.1 [symbolic = %require_complete (constants.%require_complete.ad2)] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %U.loc8_18.1, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] // CHECK:STDOUT: %Eats.facet.loc8_50.2: %Eats.type = facet_value %U.as_type.loc8_39.1, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc8_50.2 (constants.%Eats.facet)] // CHECK:STDOUT: %Feed.specific_fn.loc8_44.2: = specific_function constants.%Feed, @Feed(%Eats.facet.loc8_50.2) [symbolic = %Feed.specific_fn.loc8_44.2 (constants.%Feed.specific_fn)] @@ -254,79 +254,79 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Self.d7f) { +// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Self.23e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.1ff) { +// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.f00) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%T) { // CHECK:STDOUT: %T.loc6_10.1 => constants.%T // CHECK:STDOUT: %T.as_type.loc6_29.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.58d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.aed // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%U) { // CHECK:STDOUT: %U.loc8_18.1 => constants.%U // CHECK:STDOUT: %U.as_type.loc8_39.1 => constants.%U.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.24e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%Eats.facet) { // CHECK:STDOUT: %T.loc6_10.1 => constants.%Eats.facet // CHECK:STDOUT: %T.as_type.loc6_29.1 => constants.%U.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.24e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c56 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.6ae +// CHECK:STDOUT: %require_complete => constants.%require_complete.ad2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- bigger.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Eats.type: type = facet_type <@Eats> [concrete] -// CHECK:STDOUT: %Self.d7f: %Eats.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.23e: %Eats.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Animal.type: type = facet_type <@Animal> [concrete] -// CHECK:STDOUT: %Self.1ff: %Animal.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.f00: %Animal.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Tame.type: type = facet_type <@Tame> [concrete] -// CHECK:STDOUT: %Self.fa6: %Tame.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.0f0: %Tame.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %BitAndWith.type.fd8: type = generic_interface_type @BitAndWith [concrete] +// CHECK:STDOUT: %BitAndWith.type.a06: type = generic_interface_type @BitAndWith [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.fd8 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.2af: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete] +// CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.a06 = struct_value () [concrete] +// CHECK:STDOUT: %BitAndWith.type.802: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.2af = facet_value type, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.5d1: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %.9ee: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.5d1, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.25a: = bound_method %Tame.type, %type.as.BitAndWith.impl.Op [concrete] -// CHECK:STDOUT: %facet_type.4b9: type = facet_type <@Eats & @Tame> [concrete] -// CHECK:STDOUT: %pattern_type.2c6: type = pattern_type %facet_type.4b9 [concrete] -// CHECK:STDOUT: %V: %facet_type.4b9 = symbolic_binding V, 0 [symbolic] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.73d: = bound_method %Tame.type, %type.as.BitAndWith.impl.Op [concrete] +// CHECK:STDOUT: %facet_type.bbb: type = facet_type <@Eats & @Tame> [concrete] +// CHECK:STDOUT: %pattern_type.fbb: type = pattern_type %facet_type.bbb [concrete] +// CHECK:STDOUT: %V: %facet_type.bbb = symbolic_binding V, 0 [symbolic] // CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] -// CHECK:STDOUT: %pattern_type.06d: type = pattern_type %V.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.7b2: type = pattern_type %V.as_type [symbolic] // CHECK:STDOUT: %FeedTame.type: type = fn_type @FeedTame [concrete] // CHECK:STDOUT: %FeedTame: %FeedTame.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.b02: = require_complete_type %V.as_type [symbolic] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.7a1: = bound_method %Eats.type, %type.as.BitAndWith.impl.Op [concrete] -// CHECK:STDOUT: %facet_type.cfc: type = facet_type <@Eats & @Animal> [concrete] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.713: = bound_method %facet_type.cfc, %type.as.BitAndWith.impl.Op [concrete] -// CHECK:STDOUT: %facet_type.ca2: type = facet_type <@Eats & @Animal & @Tame> [concrete] -// CHECK:STDOUT: %pattern_type.520: type = pattern_type %facet_type.ca2 [concrete] -// CHECK:STDOUT: %W: %facet_type.ca2 = symbolic_binding W, 0 [symbolic] +// CHECK:STDOUT: %require_complete.08b: = require_complete_type %V.as_type [symbolic] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.93f: = bound_method %Eats.type, %type.as.BitAndWith.impl.Op [concrete] +// CHECK:STDOUT: %facet_type.0b4: type = facet_type <@Eats & @Animal> [concrete] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.07c: = bound_method %facet_type.0b4, %type.as.BitAndWith.impl.Op [concrete] +// CHECK:STDOUT: %facet_type.dd5: type = facet_type <@Eats & @Animal & @Tame> [concrete] +// CHECK:STDOUT: %pattern_type.66f: type = pattern_type %facet_type.dd5 [concrete] +// CHECK:STDOUT: %W: %facet_type.dd5 = symbolic_binding W, 0 [symbolic] // CHECK:STDOUT: %W.as_type: type = facet_access_type %W [symbolic] -// CHECK:STDOUT: %pattern_type.313: type = pattern_type %W.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.b23: type = pattern_type %W.as_type [symbolic] // CHECK:STDOUT: %HandleTameAnimal.type: type = fn_type @HandleTameAnimal [concrete] // CHECK:STDOUT: %HandleTameAnimal: %HandleTameAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.554: = require_complete_type %W.as_type [symbolic] +// CHECK:STDOUT: %require_complete.ec1: = require_complete_type %W.as_type [symbolic] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %W, @Eats [symbolic] // CHECK:STDOUT: %Tame.lookup_impl_witness: = lookup_impl_witness %W, @Tame [symbolic] -// CHECK:STDOUT: %facet_value: %facet_type.4b9 = facet_value %W.as_type, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %facet_value: %facet_type.bbb = facet_value %W.as_type, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %FeedTame.specific_fn: = specific_function %FeedTame, @FeedTame(%facet_value) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -336,9 +336,9 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.fd8 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @type.as.BitAndWith.impl [concrete] +// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.a06 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @type.as.BitAndWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -355,54 +355,54 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} // CHECK:STDOUT: %Tame.decl: type = interface_decl @Tame [concrete = constants.%Tame.type] {} {} // CHECK:STDOUT: %FeedTame.decl: %FeedTame.type = fn_decl @FeedTame [concrete = constants.%FeedTame] { -// CHECK:STDOUT: %V.patt: %pattern_type.2c6 = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %v.param_patt: @FeedTame.%pattern_type (%pattern_type.06d) = value_param_pattern [concrete] -// CHECK:STDOUT: %v.patt: @FeedTame.%pattern_type (%pattern_type.06d) = at_binding_pattern v, %v.param_patt [concrete] +// CHECK:STDOUT: %V.patt: %pattern_type.fbb = symbolic_binding_pattern V, 0 [concrete] +// CHECK:STDOUT: %v.param_patt: @FeedTame.%pattern_type (%pattern_type.7b2) = value_param_pattern [concrete] +// CHECK:STDOUT: %v.patt: @FeedTame.%pattern_type (%pattern_type.7b2) = at_binding_pattern v, %v.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc7_22.1: type = splice_block %.loc7_22.3 [concrete = constants.%facet_type.4b9] { +// CHECK:STDOUT: %.loc7_22.1: type = splice_block %.loc7_22.3 [concrete = constants.%facet_type.bbb] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Tame.ref: type = name_ref Tame, file.%Tame.decl [concrete = constants.%Tame.type] // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] -// CHECK:STDOUT: %impl.elem0: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %bound_method: = bound_method %Tame.ref, %impl.elem0 [concrete = constants.%type.as.BitAndWith.impl.Op.bound.25a] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method(%Tame.ref, %Eats.ref) [concrete = constants.%facet_type.4b9] -// CHECK:STDOUT: %.loc7_22.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type.4b9] -// CHECK:STDOUT: %.loc7_22.3: type = converted %type.as.BitAndWith.impl.Op.call, %.loc7_22.2 [concrete = constants.%facet_type.4b9] +// CHECK:STDOUT: %impl.elem0: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %bound_method: = bound_method %Tame.ref, %impl.elem0 [concrete = constants.%type.as.BitAndWith.impl.Op.bound.73d] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method(%Tame.ref, %Eats.ref) [concrete = constants.%facet_type.bbb] +// CHECK:STDOUT: %.loc7_22.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type.bbb] +// CHECK:STDOUT: %.loc7_22.3: type = converted %type.as.BitAndWith.impl.Op.call, %.loc7_22.2 [concrete = constants.%facet_type.bbb] // CHECK:STDOUT: } -// CHECK:STDOUT: %V.loc7_14.2: %facet_type.4b9 = symbolic_binding V, 0 [symbolic = %V.loc7_14.1 (constants.%V)] +// CHECK:STDOUT: %V.loc7_14.2: %facet_type.bbb = symbolic_binding V, 0 [symbolic = %V.loc7_14.1 (constants.%V)] // CHECK:STDOUT: %v.param: @FeedTame.%V.as_type.loc7_40.1 (%V.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc7_40.1: type = splice_block %.loc7_40.2 [symbolic = %V.as_type.loc7_40.1 (constants.%V.as_type)] { -// CHECK:STDOUT: %V.ref: %facet_type.4b9 = name_ref V, %V.loc7_14.2 [symbolic = %V.loc7_14.1 (constants.%V)] +// CHECK:STDOUT: %V.ref: %facet_type.bbb = name_ref V, %V.loc7_14.2 [symbolic = %V.loc7_14.1 (constants.%V)] // CHECK:STDOUT: %V.as_type.loc7_40.2: type = facet_access_type %V.ref [symbolic = %V.as_type.loc7_40.1 (constants.%V.as_type)] // CHECK:STDOUT: %.loc7_40.2: type = converted %V.ref, %V.as_type.loc7_40.2 [symbolic = %V.as_type.loc7_40.1 (constants.%V.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: %v: @FeedTame.%V.as_type.loc7_40.1 (%V.as_type) = value_binding v, %v.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleTameAnimal.decl: %HandleTameAnimal.type = fn_decl @HandleTameAnimal [concrete = constants.%HandleTameAnimal] { -// CHECK:STDOUT: %W.patt: %pattern_type.520 = symbolic_binding_pattern W, 0 [concrete] -// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal.%pattern_type (%pattern_type.313) = value_param_pattern [concrete] -// CHECK:STDOUT: %w.patt: @HandleTameAnimal.%pattern_type (%pattern_type.313) = at_binding_pattern w, %w.param_patt [concrete] +// CHECK:STDOUT: %W.patt: %pattern_type.66f = symbolic_binding_pattern W, 0 [concrete] +// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal.%pattern_type (%pattern_type.b23) = value_param_pattern [concrete] +// CHECK:STDOUT: %w.patt: @HandleTameAnimal.%pattern_type (%pattern_type.b23) = at_binding_pattern w, %w.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc9_39.1: type = splice_block %.loc9_39.3 [concrete = constants.%facet_type.ca2] { +// CHECK:STDOUT: %.loc9_39.1: type = splice_block %.loc9_39.3 [concrete = constants.%facet_type.dd5] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %impl.elem0.loc9_30: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %bound_method.loc9_30: = bound_method %Eats.ref, %impl.elem0.loc9_30 [concrete = constants.%type.as.BitAndWith.impl.Op.bound.7a1] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc9_30: init type = call %bound_method.loc9_30(%Eats.ref, %Animal.ref) [concrete = constants.%facet_type.cfc] +// CHECK:STDOUT: %impl.elem0.loc9_30: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %bound_method.loc9_30: = bound_method %Eats.ref, %impl.elem0.loc9_30 [concrete = constants.%type.as.BitAndWith.impl.Op.bound.93f] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc9_30: init type = call %bound_method.loc9_30(%Eats.ref, %Animal.ref) [concrete = constants.%facet_type.0b4] // CHECK:STDOUT: %Tame.ref: type = name_ref Tame, file.%Tame.decl [concrete = constants.%Tame.type] -// CHECK:STDOUT: %impl.elem0.loc9_39: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %bound_method.loc9_39: = bound_method %type.as.BitAndWith.impl.Op.call.loc9_30, %impl.elem0.loc9_39 [concrete = constants.%type.as.BitAndWith.impl.Op.bound.713] -// CHECK:STDOUT: %.loc9_30.1: type = value_of_initializer %type.as.BitAndWith.impl.Op.call.loc9_30 [concrete = constants.%facet_type.cfc] -// CHECK:STDOUT: %.loc9_30.2: type = converted %type.as.BitAndWith.impl.Op.call.loc9_30, %.loc9_30.1 [concrete = constants.%facet_type.cfc] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc9_39: init type = call %bound_method.loc9_39(%.loc9_30.2, %Tame.ref) [concrete = constants.%facet_type.ca2] -// CHECK:STDOUT: %.loc9_39.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call.loc9_39 [concrete = constants.%facet_type.ca2] -// CHECK:STDOUT: %.loc9_39.3: type = converted %type.as.BitAndWith.impl.Op.call.loc9_39, %.loc9_39.2 [concrete = constants.%facet_type.ca2] +// CHECK:STDOUT: %impl.elem0.loc9_39: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %bound_method.loc9_39: = bound_method %type.as.BitAndWith.impl.Op.call.loc9_30, %impl.elem0.loc9_39 [concrete = constants.%type.as.BitAndWith.impl.Op.bound.07c] +// CHECK:STDOUT: %.loc9_30.1: type = value_of_initializer %type.as.BitAndWith.impl.Op.call.loc9_30 [concrete = constants.%facet_type.0b4] +// CHECK:STDOUT: %.loc9_30.2: type = converted %type.as.BitAndWith.impl.Op.call.loc9_30, %.loc9_30.1 [concrete = constants.%facet_type.0b4] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc9_39: init type = call %bound_method.loc9_39(%.loc9_30.2, %Tame.ref) [concrete = constants.%facet_type.dd5] +// CHECK:STDOUT: %.loc9_39.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call.loc9_39 [concrete = constants.%facet_type.dd5] +// CHECK:STDOUT: %.loc9_39.3: type = converted %type.as.BitAndWith.impl.Op.call.loc9_39, %.loc9_39.2 [concrete = constants.%facet_type.dd5] // CHECK:STDOUT: } -// CHECK:STDOUT: %W.loc9_22.2: %facet_type.ca2 = symbolic_binding W, 0 [symbolic = %W.loc9_22.1 (constants.%W)] +// CHECK:STDOUT: %W.loc9_22.2: %facet_type.dd5 = symbolic_binding W, 0 [symbolic = %W.loc9_22.1 (constants.%W)] // CHECK:STDOUT: %w.param: @HandleTameAnimal.%W.as_type.loc9_50.1 (%W.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc9_50.1: type = splice_block %.loc9_50.2 [symbolic = %W.as_type.loc9_50.1 (constants.%W.as_type)] { -// CHECK:STDOUT: %W.ref: %facet_type.ca2 = name_ref W, %W.loc9_22.2 [symbolic = %W.loc9_22.1 (constants.%W)] +// CHECK:STDOUT: %W.ref: %facet_type.dd5 = name_ref W, %W.loc9_22.2 [symbolic = %W.loc9_22.1 (constants.%W)] // CHECK:STDOUT: %W.as_type.loc9_50.2: type = facet_access_type %W.ref [symbolic = %W.as_type.loc9_50.1 (constants.%W.as_type)] // CHECK:STDOUT: %.loc9_50.2: type = converted %W.ref, %W.as_type.loc9_50.2 [symbolic = %W.as_type.loc9_50.1 (constants.%W.as_type)] // CHECK:STDOUT: } @@ -411,7 +411,7 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Eats { -// CHECK:STDOUT: %Self: %Eats.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d7f] +// CHECK:STDOUT: %Self: %Eats.type = symbolic_binding Self, 0 [symbolic = constants.%Self.23e] // CHECK:STDOUT: %Eats.WithSelf.decl = interface_with_self_decl @Eats [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -422,7 +422,7 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Animal { -// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.1ff] +// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f00] // CHECK:STDOUT: %Animal.WithSelf.decl = interface_with_self_decl @Animal [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -433,7 +433,7 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Tame { -// CHECK:STDOUT: %Self: %Tame.type = symbolic_binding Self, 0 [symbolic = constants.%Self.fa6] +// CHECK:STDOUT: %Self: %Tame.type = symbolic_binding Self, 0 [symbolic = constants.%Self.0f0] // CHECK:STDOUT: %Tame.WithSelf.decl = interface_with_self_decl @Tame [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -443,13 +443,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @FeedTame(%V.loc7_14.2: %facet_type.4b9) { -// CHECK:STDOUT: %V.loc7_14.1: %facet_type.4b9 = symbolic_binding V, 0 [symbolic = %V.loc7_14.1 (constants.%V)] +// CHECK:STDOUT: generic fn @FeedTame(%V.loc7_14.2: %facet_type.bbb) { +// CHECK:STDOUT: %V.loc7_14.1: %facet_type.bbb = symbolic_binding V, 0 [symbolic = %V.loc7_14.1 (constants.%V)] // CHECK:STDOUT: %V.as_type.loc7_40.1: type = facet_access_type %V.loc7_14.1 [symbolic = %V.as_type.loc7_40.1 (constants.%V.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc7_40.1 [symbolic = %pattern_type (constants.%pattern_type.06d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc7_40.1 [symbolic = %pattern_type (constants.%pattern_type.7b2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc7_40.1 [symbolic = %require_complete (constants.%require_complete.b02)] +// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc7_40.1 [symbolic = %require_complete (constants.%require_complete.08b)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%v.param: @FeedTame.%V.as_type.loc7_40.1 (%V.as_type)) { // CHECK:STDOUT: !entry: @@ -457,114 +457,114 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HandleTameAnimal(%W.loc9_22.2: %facet_type.ca2) { -// CHECK:STDOUT: %W.loc9_22.1: %facet_type.ca2 = symbolic_binding W, 0 [symbolic = %W.loc9_22.1 (constants.%W)] +// CHECK:STDOUT: generic fn @HandleTameAnimal(%W.loc9_22.2: %facet_type.dd5) { +// CHECK:STDOUT: %W.loc9_22.1: %facet_type.dd5 = symbolic_binding W, 0 [symbolic = %W.loc9_22.1 (constants.%W)] // CHECK:STDOUT: %W.as_type.loc9_50.1: type = facet_access_type %W.loc9_22.1 [symbolic = %W.as_type.loc9_50.1 (constants.%W.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %W.as_type.loc9_50.1 [symbolic = %pattern_type (constants.%pattern_type.313)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %W.as_type.loc9_50.1 [symbolic = %pattern_type (constants.%pattern_type.b23)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %W.as_type.loc9_50.1 [symbolic = %require_complete (constants.%require_complete.554)] +// CHECK:STDOUT: %require_complete: = require_complete_type %W.as_type.loc9_50.1 [symbolic = %require_complete (constants.%require_complete.ec1)] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %W.loc9_22.1, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] // CHECK:STDOUT: %Tame.lookup_impl_witness: = lookup_impl_witness %W.loc9_22.1, @Tame [symbolic = %Tame.lookup_impl_witness (constants.%Tame.lookup_impl_witness)] -// CHECK:STDOUT: %facet_value.loc10_13.2: %facet_type.4b9 = facet_value %W.as_type.loc9_50.1, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.2 (constants.%facet_value)] +// CHECK:STDOUT: %facet_value.loc10_13.2: %facet_type.bbb = facet_value %W.as_type.loc9_50.1, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.2 (constants.%facet_value)] // CHECK:STDOUT: %FeedTame.specific_fn.loc10_3.2: = specific_function constants.%FeedTame, @FeedTame(%facet_value.loc10_13.2) [symbolic = %FeedTame.specific_fn.loc10_3.2 (constants.%FeedTame.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%w.param: @HandleTameAnimal.%W.as_type.loc9_50.1 (%W.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %FeedTame.ref: %FeedTame.type = name_ref FeedTame, file.%FeedTame.decl [concrete = constants.%FeedTame] // CHECK:STDOUT: %w.ref: @HandleTameAnimal.%W.as_type.loc9_50.1 (%W.as_type) = name_ref w, %w -// CHECK:STDOUT: %facet_value.loc10_13.1: %facet_type.4b9 = facet_value constants.%W.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.2 (constants.%facet_value)] -// CHECK:STDOUT: %.loc10: %facet_type.4b9 = converted constants.%W.as_type, %facet_value.loc10_13.1 [symbolic = %facet_value.loc10_13.2 (constants.%facet_value)] +// CHECK:STDOUT: %facet_value.loc10_13.1: %facet_type.bbb = facet_value constants.%W.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.2 (constants.%facet_value)] +// CHECK:STDOUT: %.loc10: %facet_type.bbb = converted constants.%W.as_type, %facet_value.loc10_13.1 [symbolic = %facet_value.loc10_13.2 (constants.%facet_value)] // CHECK:STDOUT: %FeedTame.specific_fn.loc10_3.1: = specific_function %FeedTame.ref, @FeedTame(constants.%facet_value) [symbolic = %FeedTame.specific_fn.loc10_3.2 (constants.%FeedTame.specific_fn)] // CHECK:STDOUT: %FeedTame.call: init %empty_tuple.type = call %FeedTame.specific_fn.loc10_3.1(%w.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Self.d7f) { +// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Self.23e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.1ff) { +// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.f00) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Tame.WithSelf(constants.%Self.fa6) { +// CHECK:STDOUT: specific @Tame.WithSelf(constants.%Self.0f0) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedTame(constants.%V) { // CHECK:STDOUT: %V.loc7_14.1 => constants.%V // CHECK:STDOUT: %V.as_type.loc7_40.1 => constants.%V.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.06d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7b2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleTameAnimal(constants.%W) { // CHECK:STDOUT: %W.loc9_22.1 => constants.%W // CHECK:STDOUT: %W.as_type.loc9_50.1 => constants.%W.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.313 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedTame(constants.%facet_value) { // CHECK:STDOUT: %V.loc7_14.1 => constants.%facet_value // CHECK:STDOUT: %V.as_type.loc7_40.1 => constants.%W.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.313 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b23 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.554 +// CHECK:STDOUT: %require_complete => constants.%require_complete.ec1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- with_blanket.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Eats.type: type = facet_type <@Eats> [concrete] -// CHECK:STDOUT: %Self.d7f: %Eats.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.23e: %Eats.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Animal.type: type = facet_type <@Animal> [concrete] -// CHECK:STDOUT: %Self.1ff: %Animal.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.f00: %Animal.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Tame.type: type = facet_type <@Tame> [concrete] -// CHECK:STDOUT: %Self.fa6: %Tame.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.0f0: %Tame.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.5a8: type = pattern_type %Animal.type [concrete] +// CHECK:STDOUT: %pattern_type.333: type = pattern_type %Animal.type [concrete] // CHECK:STDOUT: %A: %Animal.type = symbolic_binding A, 0 [symbolic] // CHECK:STDOUT: %A.as_type: type = facet_access_type %A [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.0b6: = impl_witness @A.as_type.as.Eats.impl.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%A) [symbolic] -// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %A.as_type, (%Eats.impl_witness.0b6) [symbolic] -// CHECK:STDOUT: %BitAndWith.type.fd8: type = generic_interface_type @BitAndWith [concrete] +// CHECK:STDOUT: %Eats.impl_witness.e08: = impl_witness @A.as_type.as.Eats.impl.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%A) [symbolic] +// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %A.as_type, (%Eats.impl_witness.e08) [symbolic] +// CHECK:STDOUT: %BitAndWith.type.a06: type = generic_interface_type @BitAndWith [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.fd8 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.2af: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete] +// CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.a06 = struct_value () [concrete] +// CHECK:STDOUT: %BitAndWith.type.802: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.2af = facet_value type, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.5d1: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %.9ee: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.5d1, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.25a: = bound_method %Tame.type, %type.as.BitAndWith.impl.Op [concrete] -// CHECK:STDOUT: %facet_type.4b9: type = facet_type <@Eats & @Tame> [concrete] -// CHECK:STDOUT: %pattern_type.2c6: type = pattern_type %facet_type.4b9 [concrete] -// CHECK:STDOUT: %V: %facet_type.4b9 = symbolic_binding V, 0 [symbolic] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.73d: = bound_method %Tame.type, %type.as.BitAndWith.impl.Op [concrete] +// CHECK:STDOUT: %facet_type.bbb: type = facet_type <@Eats & @Tame> [concrete] +// CHECK:STDOUT: %pattern_type.fbb: type = pattern_type %facet_type.bbb [concrete] +// CHECK:STDOUT: %V: %facet_type.bbb = symbolic_binding V, 0 [symbolic] // CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] -// CHECK:STDOUT: %pattern_type.06d: type = pattern_type %V.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.7b2: type = pattern_type %V.as_type [symbolic] // CHECK:STDOUT: %FeedTame2.type: type = fn_type @FeedTame2 [concrete] // CHECK:STDOUT: %FeedTame2: %FeedTame2.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.b02: = require_complete_type %V.as_type [symbolic] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.258: = bound_method %Animal.type, %type.as.BitAndWith.impl.Op [concrete] -// CHECK:STDOUT: %facet_type.e4f: type = facet_type <@Animal & @Tame> [concrete] -// CHECK:STDOUT: %pattern_type.cd7: type = pattern_type %facet_type.e4f [concrete] -// CHECK:STDOUT: %W: %facet_type.e4f = symbolic_binding W, 0 [symbolic] +// CHECK:STDOUT: %require_complete.08b: = require_complete_type %V.as_type [symbolic] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.f7d: = bound_method %Animal.type, %type.as.BitAndWith.impl.Op [concrete] +// CHECK:STDOUT: %facet_type.83c: type = facet_type <@Animal & @Tame> [concrete] +// CHECK:STDOUT: %pattern_type.82c: type = pattern_type %facet_type.83c [concrete] +// CHECK:STDOUT: %W: %facet_type.83c = symbolic_binding W, 0 [symbolic] // CHECK:STDOUT: %W.as_type: type = facet_access_type %W [symbolic] -// CHECK:STDOUT: %pattern_type.d5d: type = pattern_type %W.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.493: type = pattern_type %W.as_type [symbolic] // CHECK:STDOUT: %HandleTameAnimal2.type: type = fn_type @HandleTameAnimal2 [concrete] // CHECK:STDOUT: %HandleTameAnimal2: %HandleTameAnimal2.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.695: = require_complete_type %W.as_type [symbolic] +// CHECK:STDOUT: %require_complete.837: = require_complete_type %W.as_type [symbolic] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %W, @Eats [symbolic] // CHECK:STDOUT: %Animal.lookup_impl_witness: = lookup_impl_witness %W, @Animal [symbolic] // CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %W.as_type, (%Animal.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.c11: = impl_witness @A.as_type.as.Eats.impl.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%Animal.facet) [symbolic] -// CHECK:STDOUT: %.46c: require_specific_def_type = require_specific_def @A.as_type.as.Eats.impl(%Animal.facet) [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.7a5: = impl_witness @A.as_type.as.Eats.impl.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%Animal.facet) [symbolic] +// CHECK:STDOUT: %.86f: require_specific_def_type = require_specific_def @A.as_type.as.Eats.impl(%Animal.facet) [symbolic] // CHECK:STDOUT: %Tame.lookup_impl_witness: = lookup_impl_witness %W, @Tame [symbolic] -// CHECK:STDOUT: %facet_value: %facet_type.4b9 = facet_value %W.as_type, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %facet_value: %facet_type.bbb = facet_value %W.as_type, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %FeedTame2.specific_fn: = specific_function %FeedTame2, @FeedTame2(%facet_value) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -574,9 +574,9 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.fd8 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @type.as.BitAndWith.impl [concrete] +// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.a06 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @type.as.BitAndWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -593,7 +593,7 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} // CHECK:STDOUT: %Tame.decl: type = interface_decl @Tame [concrete = constants.%Tame.type] {} {} // CHECK:STDOUT: impl_decl @A.as_type.as.Eats.impl [concrete] { -// CHECK:STDOUT: %A.patt: %pattern_type.5a8 = symbolic_binding_pattern A, 0 [concrete] +// CHECK:STDOUT: %A.patt: %pattern_type.333 = symbolic_binding_pattern A, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: %Animal.type = name_ref A, %A.loc7_15.1 [symbolic = %A.loc7_15.2 (constants.%A)] // CHECK:STDOUT: %A.as_type.loc7_26.1: type = facet_access_type %A.ref [symbolic = %A.as_type.loc7_26.2 (constants.%A.as_type)] @@ -606,48 +606,48 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %A.loc7_15.1: %Animal.type = symbolic_binding A, 0 [symbolic = %A.loc7_15.2 (constants.%A)] // CHECK:STDOUT: } // CHECK:STDOUT: %FeedTame2.decl: %FeedTame2.type = fn_decl @FeedTame2 [concrete = constants.%FeedTame2] { -// CHECK:STDOUT: %V.patt: %pattern_type.2c6 = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %v.param_patt: @FeedTame2.%pattern_type (%pattern_type.06d) = value_param_pattern [concrete] -// CHECK:STDOUT: %v.patt: @FeedTame2.%pattern_type (%pattern_type.06d) = at_binding_pattern v, %v.param_patt [concrete] +// CHECK:STDOUT: %V.patt: %pattern_type.fbb = symbolic_binding_pattern V, 0 [concrete] +// CHECK:STDOUT: %v.param_patt: @FeedTame2.%pattern_type (%pattern_type.7b2) = value_param_pattern [concrete] +// CHECK:STDOUT: %v.patt: @FeedTame2.%pattern_type (%pattern_type.7b2) = at_binding_pattern v, %v.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc9_23.1: type = splice_block %.loc9_23.3 [concrete = constants.%facet_type.4b9] { +// CHECK:STDOUT: %.loc9_23.1: type = splice_block %.loc9_23.3 [concrete = constants.%facet_type.bbb] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Tame.ref: type = name_ref Tame, file.%Tame.decl [concrete = constants.%Tame.type] // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] -// CHECK:STDOUT: %impl.elem0: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %bound_method: = bound_method %Tame.ref, %impl.elem0 [concrete = constants.%type.as.BitAndWith.impl.Op.bound.25a] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method(%Tame.ref, %Eats.ref) [concrete = constants.%facet_type.4b9] -// CHECK:STDOUT: %.loc9_23.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type.4b9] -// CHECK:STDOUT: %.loc9_23.3: type = converted %type.as.BitAndWith.impl.Op.call, %.loc9_23.2 [concrete = constants.%facet_type.4b9] +// CHECK:STDOUT: %impl.elem0: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %bound_method: = bound_method %Tame.ref, %impl.elem0 [concrete = constants.%type.as.BitAndWith.impl.Op.bound.73d] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method(%Tame.ref, %Eats.ref) [concrete = constants.%facet_type.bbb] +// CHECK:STDOUT: %.loc9_23.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type.bbb] +// CHECK:STDOUT: %.loc9_23.3: type = converted %type.as.BitAndWith.impl.Op.call, %.loc9_23.2 [concrete = constants.%facet_type.bbb] // CHECK:STDOUT: } -// CHECK:STDOUT: %V.loc9_15.2: %facet_type.4b9 = symbolic_binding V, 0 [symbolic = %V.loc9_15.1 (constants.%V)] +// CHECK:STDOUT: %V.loc9_15.2: %facet_type.bbb = symbolic_binding V, 0 [symbolic = %V.loc9_15.1 (constants.%V)] // CHECK:STDOUT: %v.param: @FeedTame2.%V.as_type.loc9_41.1 (%V.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc9_41.1: type = splice_block %.loc9_41.2 [symbolic = %V.as_type.loc9_41.1 (constants.%V.as_type)] { -// CHECK:STDOUT: %V.ref: %facet_type.4b9 = name_ref V, %V.loc9_15.2 [symbolic = %V.loc9_15.1 (constants.%V)] +// CHECK:STDOUT: %V.ref: %facet_type.bbb = name_ref V, %V.loc9_15.2 [symbolic = %V.loc9_15.1 (constants.%V)] // CHECK:STDOUT: %V.as_type.loc9_41.2: type = facet_access_type %V.ref [symbolic = %V.as_type.loc9_41.1 (constants.%V.as_type)] // CHECK:STDOUT: %.loc9_41.2: type = converted %V.ref, %V.as_type.loc9_41.2 [symbolic = %V.as_type.loc9_41.1 (constants.%V.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: %v: @FeedTame2.%V.as_type.loc9_41.1 (%V.as_type) = value_binding v, %v.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleTameAnimal2.decl: %HandleTameAnimal2.type = fn_decl @HandleTameAnimal2 [concrete = constants.%HandleTameAnimal2] { -// CHECK:STDOUT: %W.patt: %pattern_type.cd7 = symbolic_binding_pattern W, 0 [concrete] -// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal2.%pattern_type (%pattern_type.d5d) = value_param_pattern [concrete] -// CHECK:STDOUT: %w.patt: @HandleTameAnimal2.%pattern_type (%pattern_type.d5d) = at_binding_pattern w, %w.param_patt [concrete] +// CHECK:STDOUT: %W.patt: %pattern_type.82c = symbolic_binding_pattern W, 0 [concrete] +// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal2.%pattern_type (%pattern_type.493) = value_param_pattern [concrete] +// CHECK:STDOUT: %w.patt: @HandleTameAnimal2.%pattern_type (%pattern_type.493) = at_binding_pattern w, %w.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc11_33.1: type = splice_block %.loc11_33.3 [concrete = constants.%facet_type.e4f] { +// CHECK:STDOUT: %.loc11_33.1: type = splice_block %.loc11_33.3 [concrete = constants.%facet_type.83c] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] // CHECK:STDOUT: %Tame.ref: type = name_ref Tame, file.%Tame.decl [concrete = constants.%Tame.type] -// CHECK:STDOUT: %impl.elem0: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %bound_method: = bound_method %Animal.ref, %impl.elem0 [concrete = constants.%type.as.BitAndWith.impl.Op.bound.258] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method(%Animal.ref, %Tame.ref) [concrete = constants.%facet_type.e4f] -// CHECK:STDOUT: %.loc11_33.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type.e4f] -// CHECK:STDOUT: %.loc11_33.3: type = converted %type.as.BitAndWith.impl.Op.call, %.loc11_33.2 [concrete = constants.%facet_type.e4f] +// CHECK:STDOUT: %impl.elem0: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %bound_method: = bound_method %Animal.ref, %impl.elem0 [concrete = constants.%type.as.BitAndWith.impl.Op.bound.f7d] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method(%Animal.ref, %Tame.ref) [concrete = constants.%facet_type.83c] +// CHECK:STDOUT: %.loc11_33.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type.83c] +// CHECK:STDOUT: %.loc11_33.3: type = converted %type.as.BitAndWith.impl.Op.call, %.loc11_33.2 [concrete = constants.%facet_type.83c] // CHECK:STDOUT: } -// CHECK:STDOUT: %W.loc11_23.2: %facet_type.e4f = symbolic_binding W, 0 [symbolic = %W.loc11_23.1 (constants.%W)] +// CHECK:STDOUT: %W.loc11_23.2: %facet_type.83c = symbolic_binding W, 0 [symbolic = %W.loc11_23.1 (constants.%W)] // CHECK:STDOUT: %w.param: @HandleTameAnimal2.%W.as_type.loc11_44.1 (%W.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc11_44.1: type = splice_block %.loc11_44.2 [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] { -// CHECK:STDOUT: %W.ref: %facet_type.e4f = name_ref W, %W.loc11_23.2 [symbolic = %W.loc11_23.1 (constants.%W)] +// CHECK:STDOUT: %W.ref: %facet_type.83c = name_ref W, %W.loc11_23.2 [symbolic = %W.loc11_23.1 (constants.%W)] // CHECK:STDOUT: %W.as_type.loc11_44.2: type = facet_access_type %W.ref [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] // CHECK:STDOUT: %.loc11_44.2: type = converted %W.ref, %W.as_type.loc11_44.2 [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] // CHECK:STDOUT: } @@ -656,7 +656,7 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Eats { -// CHECK:STDOUT: %Self: %Eats.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d7f] +// CHECK:STDOUT: %Self: %Eats.type = symbolic_binding Self, 0 [symbolic = constants.%Self.23e] // CHECK:STDOUT: %Eats.WithSelf.decl = interface_with_self_decl @Eats [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -667,7 +667,7 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Animal { -// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.1ff] +// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f00] // CHECK:STDOUT: %Animal.WithSelf.decl = interface_with_self_decl @Animal [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -678,7 +678,7 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Tame { -// CHECK:STDOUT: %Self: %Tame.type = symbolic_binding Self, 0 [symbolic = constants.%Self.fa6] +// CHECK:STDOUT: %Self: %Tame.type = symbolic_binding Self, 0 [symbolic = constants.%Self.0f0] // CHECK:STDOUT: %Tame.WithSelf.decl = interface_with_self_decl @Tame [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -691,13 +691,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: generic impl @A.as_type.as.Eats.impl(%A.loc7_15.1: %Animal.type) { // CHECK:STDOUT: %A.loc7_15.2: %Animal.type = symbolic_binding A, 0 [symbolic = %A.loc7_15.2 (constants.%A)] // CHECK:STDOUT: %A.as_type.loc7_26.2: type = facet_access_type %A.loc7_15.2 [symbolic = %A.as_type.loc7_26.2 (constants.%A.as_type)] -// CHECK:STDOUT: %Eats.impl_witness.loc7_36.2: = impl_witness %Eats.impl_witness_table, @A.as_type.as.Eats.impl(%A.loc7_15.2) [symbolic = %Eats.impl_witness.loc7_36.2 (constants.%Eats.impl_witness.0b6)] +// CHECK:STDOUT: %Eats.impl_witness.loc7_36.2: = impl_witness %Eats.impl_witness_table, @A.as_type.as.Eats.impl(%A.loc7_15.2) [symbolic = %Eats.impl_witness.loc7_36.2 (constants.%Eats.impl_witness.e08)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc7_26 as %Eats.ref { // CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @A.as_type.as.Eats.impl [concrete] -// CHECK:STDOUT: %Eats.impl_witness.loc7_36.1: = impl_witness %Eats.impl_witness_table, @A.as_type.as.Eats.impl(constants.%A) [symbolic = %Eats.impl_witness.loc7_36.2 (constants.%Eats.impl_witness.0b6)] +// CHECK:STDOUT: %Eats.impl_witness.loc7_36.1: = impl_witness %Eats.impl_witness_table, @A.as_type.as.Eats.impl(constants.%A) [symbolic = %Eats.impl_witness.loc7_36.2 (constants.%Eats.impl_witness.e08)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %Eats.ref @@ -705,13 +705,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @FeedTame2(%V.loc9_15.2: %facet_type.4b9) { -// CHECK:STDOUT: %V.loc9_15.1: %facet_type.4b9 = symbolic_binding V, 0 [symbolic = %V.loc9_15.1 (constants.%V)] +// CHECK:STDOUT: generic fn @FeedTame2(%V.loc9_15.2: %facet_type.bbb) { +// CHECK:STDOUT: %V.loc9_15.1: %facet_type.bbb = symbolic_binding V, 0 [symbolic = %V.loc9_15.1 (constants.%V)] // CHECK:STDOUT: %V.as_type.loc9_41.1: type = facet_access_type %V.loc9_15.1 [symbolic = %V.as_type.loc9_41.1 (constants.%V.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc9_41.1 [symbolic = %pattern_type (constants.%pattern_type.06d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc9_41.1 [symbolic = %pattern_type (constants.%pattern_type.7b2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc9_41.1 [symbolic = %require_complete (constants.%require_complete.b02)] +// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc9_41.1 [symbolic = %require_complete (constants.%require_complete.08b)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%v.param: @FeedTame2.%V.as_type.loc9_41.1 (%V.as_type)) { // CHECK:STDOUT: !entry: @@ -719,49 +719,49 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HandleTameAnimal2(%W.loc11_23.2: %facet_type.e4f) { -// CHECK:STDOUT: %W.loc11_23.1: %facet_type.e4f = symbolic_binding W, 0 [symbolic = %W.loc11_23.1 (constants.%W)] +// CHECK:STDOUT: generic fn @HandleTameAnimal2(%W.loc11_23.2: %facet_type.83c) { +// CHECK:STDOUT: %W.loc11_23.1: %facet_type.83c = symbolic_binding W, 0 [symbolic = %W.loc11_23.1 (constants.%W)] // CHECK:STDOUT: %W.as_type.loc11_44.1: type = facet_access_type %W.loc11_23.1 [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %W.as_type.loc11_44.1 [symbolic = %pattern_type (constants.%pattern_type.d5d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %W.as_type.loc11_44.1 [symbolic = %pattern_type (constants.%pattern_type.493)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %W.as_type.loc11_44.1 [symbolic = %require_complete (constants.%require_complete.695)] +// CHECK:STDOUT: %require_complete: = require_complete_type %W.as_type.loc11_44.1 [symbolic = %require_complete (constants.%require_complete.837)] // CHECK:STDOUT: %Animal.lookup_impl_witness: = lookup_impl_witness %W.loc11_23.1, @Animal [symbolic = %Animal.lookup_impl_witness (constants.%Animal.lookup_impl_witness)] // CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %W.as_type.loc11_44.1, (%Animal.lookup_impl_witness) [symbolic = %Animal.facet (constants.%Animal.facet)] -// CHECK:STDOUT: %.loc12_14.2: require_specific_def_type = require_specific_def @A.as_type.as.Eats.impl(%Animal.facet) [symbolic = %.loc12_14.2 (constants.%.46c)] +// CHECK:STDOUT: %.loc12_14.2: require_specific_def_type = require_specific_def @A.as_type.as.Eats.impl(%Animal.facet) [symbolic = %.loc12_14.2 (constants.%.86f)] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %W.loc11_23.1, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] // CHECK:STDOUT: %Tame.lookup_impl_witness: = lookup_impl_witness %W.loc11_23.1, @Tame [symbolic = %Tame.lookup_impl_witness (constants.%Tame.lookup_impl_witness)] -// CHECK:STDOUT: %facet_value.loc12_14.2: %facet_type.4b9 = facet_value %W.as_type.loc11_44.1, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.2 (constants.%facet_value)] +// CHECK:STDOUT: %facet_value.loc12_14.2: %facet_type.bbb = facet_value %W.as_type.loc11_44.1, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.2 (constants.%facet_value)] // CHECK:STDOUT: %FeedTame2.specific_fn.loc12_3.2: = specific_function constants.%FeedTame2, @FeedTame2(%facet_value.loc12_14.2) [symbolic = %FeedTame2.specific_fn.loc12_3.2 (constants.%FeedTame2.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%w.param: @HandleTameAnimal2.%W.as_type.loc11_44.1 (%W.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %FeedTame2.ref: %FeedTame2.type = name_ref FeedTame2, file.%FeedTame2.decl [concrete = constants.%FeedTame2] // CHECK:STDOUT: %w.ref: @HandleTameAnimal2.%W.as_type.loc11_44.1 (%W.as_type) = name_ref w, %w -// CHECK:STDOUT: %facet_value.loc12_14.1: %facet_type.4b9 = facet_value constants.%W.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.2 (constants.%facet_value)] -// CHECK:STDOUT: %.loc12_14.1: %facet_type.4b9 = converted constants.%W.as_type, %facet_value.loc12_14.1 [symbolic = %facet_value.loc12_14.2 (constants.%facet_value)] +// CHECK:STDOUT: %facet_value.loc12_14.1: %facet_type.bbb = facet_value constants.%W.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.2 (constants.%facet_value)] +// CHECK:STDOUT: %.loc12_14.1: %facet_type.bbb = converted constants.%W.as_type, %facet_value.loc12_14.1 [symbolic = %facet_value.loc12_14.2 (constants.%facet_value)] // CHECK:STDOUT: %FeedTame2.specific_fn.loc12_3.1: = specific_function %FeedTame2.ref, @FeedTame2(constants.%facet_value) [symbolic = %FeedTame2.specific_fn.loc12_3.2 (constants.%FeedTame2.specific_fn)] // CHECK:STDOUT: %FeedTame2.call: init %empty_tuple.type = call %FeedTame2.specific_fn.loc12_3.1(%w.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Self.d7f) { +// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Self.23e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.1ff) { +// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.f00) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Tame.WithSelf(constants.%Self.fa6) { +// CHECK:STDOUT: specific @Tame.WithSelf(constants.%Self.0f0) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.as_type.as.Eats.impl(constants.%A) { // CHECK:STDOUT: %A.loc7_15.2 => constants.%A // CHECK:STDOUT: %A.as_type.loc7_26.2 => constants.%A.as_type -// CHECK:STDOUT: %Eats.impl_witness.loc7_36.2 => constants.%Eats.impl_witness.0b6 +// CHECK:STDOUT: %Eats.impl_witness.loc7_36.2 => constants.%Eats.impl_witness.e08 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Eats.WithSelf(constants.%Eats.facet) { @@ -771,19 +771,19 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: specific @FeedTame2(constants.%V) { // CHECK:STDOUT: %V.loc9_15.1 => constants.%V // CHECK:STDOUT: %V.as_type.loc9_41.1 => constants.%V.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.06d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7b2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleTameAnimal2(constants.%W) { // CHECK:STDOUT: %W.loc11_23.1 => constants.%W // CHECK:STDOUT: %W.as_type.loc11_44.1 => constants.%W.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d5d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.493 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.as_type.as.Eats.impl(constants.%Animal.facet) { // CHECK:STDOUT: %A.loc7_15.2 => constants.%Animal.facet // CHECK:STDOUT: %A.as_type.loc7_26.2 => constants.%W.as_type -// CHECK:STDOUT: %Eats.impl_witness.loc7_36.2 => constants.%Eats.impl_witness.c11 +// CHECK:STDOUT: %Eats.impl_witness.loc7_36.2 => constants.%Eats.impl_witness.7a5 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -791,10 +791,10 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: specific @FeedTame2(constants.%facet_value) { // CHECK:STDOUT: %V.loc9_15.1 => constants.%facet_value // CHECK:STDOUT: %V.as_type.loc9_41.1 => constants.%W.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d5d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.493 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.695 +// CHECK:STDOUT: %require_complete => constants.%require_complete.837 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- equivalent.carbon @@ -804,22 +804,22 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %Self: %A.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.f8c: type = pattern_type %A.type [concrete] +// CHECK:STDOUT: %pattern_type.029: type = pattern_type %A.type [concrete] // CHECK:STDOUT: %T: %A.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.de70ec.1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.a0e098.1: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %TakesA.type: type = fn_type @TakesA [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %TakesA: %TakesA.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.744919.1: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %.Self.357: %A.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.357 [symbolic_self] +// CHECK:STDOUT: %require_complete.94f9a3.1: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %.Self.dad: %A.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.dad [symbolic_self] // CHECK:STDOUT: %U: %A.type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] -// CHECK:STDOUT: %pattern_type.de70ec.2: type = pattern_type %U.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.a0e098.2: type = pattern_type %U.as_type [symbolic] // CHECK:STDOUT: %WithExtraWhere.type: type = fn_type @WithExtraWhere [concrete] // CHECK:STDOUT: %WithExtraWhere: %WithExtraWhere.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.744919.2: = require_complete_type %U.as_type [symbolic] +// CHECK:STDOUT: %require_complete.94f9a3.2: = require_complete_type %U.as_type [symbolic] // CHECK:STDOUT: %TakesA.specific_fn: = specific_function %TakesA, @TakesA(%U) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -840,9 +840,9 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: type = interface_decl @A [concrete = constants.%A.type] {} {} // CHECK:STDOUT: %TakesA.decl: %TakesA.type = fn_decl @TakesA [concrete = constants.%TakesA] { -// CHECK:STDOUT: %T.patt: %pattern_type.f8c = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @TakesA.%pattern_type (%pattern_type.de70ec.1) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @TakesA.%pattern_type (%pattern_type.de70ec.1) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.029 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %x.param_patt: @TakesA.%pattern_type (%pattern_type.a0e098.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @TakesA.%pattern_type (%pattern_type.a0e098.1) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_15: type = splice_block %A.ref [concrete = constants.%A.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] @@ -858,15 +858,15 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %x: @TakesA.%T.as_type.loc7_28.1 (%T.as_type) = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %WithExtraWhere.decl: %WithExtraWhere.type = fn_decl @WithExtraWhere [concrete = constants.%WithExtraWhere] { -// CHECK:STDOUT: %U.patt: %pattern_type.f8c = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %y.param_patt: @WithExtraWhere.%pattern_type (%pattern_type.de70ec.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %y.patt: @WithExtraWhere.%pattern_type (%pattern_type.de70ec.2) = at_binding_pattern y, %y.param_patt [concrete] +// CHECK:STDOUT: %U.patt: %pattern_type.029 = symbolic_binding_pattern U, 0 [concrete] +// CHECK:STDOUT: %y.param_patt: @WithExtraWhere.%pattern_type (%pattern_type.a0e098.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: @WithExtraWhere.%pattern_type (%pattern_type.a0e098.2) = at_binding_pattern y, %y.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_25.1: type = splice_block %.loc9_25.2 [concrete = constants.%A.type] { // CHECK:STDOUT: %.Self.loc9_20: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %.Self.loc9_25: %A.type = symbolic_binding .Self [symbolic_self = constants.%.Self.357] -// CHECK:STDOUT: %.Self.ref: %A.type = name_ref .Self, %.Self.loc9_25 [symbolic_self = constants.%.Self.357] +// CHECK:STDOUT: %.Self.loc9_25: %A.type = symbolic_binding .Self [symbolic_self = constants.%.Self.dad] +// CHECK:STDOUT: %.Self.ref: %A.type = name_ref .Self, %.Self.loc9_25 [symbolic_self = constants.%.Self.dad] // CHECK:STDOUT: %.loc9_43: type = type_literal type [concrete = type] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_31: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] @@ -900,10 +900,10 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: generic fn @TakesA(%T.loc7_12.2: %A.type) { // CHECK:STDOUT: %T.loc7_12.1: %A.type = symbolic_binding T, 0 [symbolic = %T.loc7_12.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc7_28.1: type = facet_access_type %T.loc7_12.1 [symbolic = %T.as_type.loc7_28.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc7_28.1 [symbolic = %pattern_type (constants.%pattern_type.de70ec.1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc7_28.1 [symbolic = %pattern_type (constants.%pattern_type.a0e098.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc7_28.1 [symbolic = %require_complete (constants.%require_complete.744919.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc7_28.1 [symbolic = %require_complete (constants.%require_complete.94f9a3.1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @TakesA.%T.as_type.loc7_28.1 (%T.as_type)) { // CHECK:STDOUT: !entry: @@ -914,10 +914,10 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: generic fn @WithExtraWhere(%U.loc9_20.2: %A.type) { // CHECK:STDOUT: %U.loc9_20.1: %A.type = symbolic_binding U, 0 [symbolic = %U.loc9_20.1 (constants.%U)] // CHECK:STDOUT: %U.as_type.loc9_52.1: type = facet_access_type %U.loc9_20.1 [symbolic = %U.as_type.loc9_52.1 (constants.%U.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc9_52.1 [symbolic = %pattern_type (constants.%pattern_type.de70ec.2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc9_52.1 [symbolic = %pattern_type (constants.%pattern_type.a0e098.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc9_52.1 [symbolic = %require_complete (constants.%require_complete.744919.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc9_52.1 [symbolic = %require_complete (constants.%require_complete.94f9a3.2)] // CHECK:STDOUT: %TakesA.specific_fn.loc10_3.2: = specific_function constants.%TakesA, @TakesA(%U.loc9_20.1) [symbolic = %TakesA.specific_fn.loc10_3.2 (constants.%TakesA.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%y.param: @WithExtraWhere.%U.as_type.loc9_52.1 (%U.as_type)) { @@ -938,22 +938,22 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: specific @TakesA(constants.%T) { // CHECK:STDOUT: %T.loc7_12.1 => constants.%T // CHECK:STDOUT: %T.as_type.loc7_28.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.de70ec.1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a0e098.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WithExtraWhere(constants.%U) { // CHECK:STDOUT: %U.loc9_20.1 => constants.%U // CHECK:STDOUT: %U.as_type.loc9_52.1 => constants.%U.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.de70ec.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a0e098.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesA(constants.%U) { // CHECK:STDOUT: %T.loc7_12.1 => constants.%U // CHECK:STDOUT: %T.as_type.loc7_28.1 => constants.%U.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.de70ec.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a0e098.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.744919.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.94f9a3.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- no_interfaces_success.carbon diff --git a/toolchain/check/testdata/facet/convert_facet_value_value_to_blanket_impl.carbon b/toolchain/check/testdata/facet/convert_facet_value_value_to_blanket_impl.carbon index 54701b93baed..77d98f124375 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_value_to_blanket_impl.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_value_to_blanket_impl.carbon @@ -25,35 +25,35 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Eats.type: type = facet_type <@Eats> [concrete] -// CHECK:STDOUT: %Self.d7f: %Eats.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.23e: %Eats.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Animal.type: type = facet_type <@Animal> [concrete] -// CHECK:STDOUT: %Self.1ff: %Animal.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.f00: %Animal.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.5a8: type = pattern_type %Animal.type [concrete] +// CHECK:STDOUT: %pattern_type.333: type = pattern_type %Animal.type [concrete] // CHECK:STDOUT: %A: %Animal.type = symbolic_binding A, 0 [symbolic] // CHECK:STDOUT: %A.as_type: type = facet_access_type %A [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.0b67a7.1: = impl_witness @A.as_type.as.Eats.impl.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%A) [symbolic] -// CHECK:STDOUT: %Eats.facet.eb6: %Eats.type = facet_value %A.as_type, (%Eats.impl_witness.0b67a7.1) [symbolic] -// CHECK:STDOUT: %pattern_type.3a5: type = pattern_type %Eats.type [concrete] -// CHECK:STDOUT: %T.ae6: %Eats.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.e42: type = facet_access_type %T.ae6 [symbolic] -// CHECK:STDOUT: %pattern_type.58d: type = pattern_type %T.as_type.e42 [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.e0811c.1: = impl_witness @A.as_type.as.Eats.impl.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%A) [symbolic] +// CHECK:STDOUT: %Eats.facet.f93: %Eats.type = facet_value %A.as_type, (%Eats.impl_witness.e0811c.1) [symbolic] +// CHECK:STDOUT: %pattern_type.880: type = pattern_type %Eats.type [concrete] +// CHECK:STDOUT: %T.672: %Eats.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.422: type = facet_access_type %T.672 [symbolic] +// CHECK:STDOUT: %pattern_type.aed: type = pattern_type %T.as_type.422 [symbolic] // CHECK:STDOUT: %Feed.type: type = fn_type @Feed [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.019: = require_complete_type %T.as_type.e42 [symbolic] -// CHECK:STDOUT: %T.34b: %Animal.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.975: type = facet_access_type %T.34b [symbolic] -// CHECK:STDOUT: %pattern_type.94e: type = pattern_type %T.as_type.975 [symbolic] +// CHECK:STDOUT: %require_complete.c4d: = require_complete_type %T.as_type.422 [symbolic] +// CHECK:STDOUT: %T.443: %Animal.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.01d: type = facet_access_type %T.443 [symbolic] +// CHECK:STDOUT: %pattern_type.e90: type = pattern_type %T.as_type.01d [symbolic] // CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete] // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.b5c: = require_complete_type %T.as_type.975 [symbolic] -// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %T.34b, @Eats [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.0b67a7.2: = impl_witness @A.as_type.as.Eats.impl.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%T.34b) [symbolic] -// CHECK:STDOUT: %.8c6: require_specific_def_type = require_specific_def @A.as_type.as.Eats.impl(%T.34b) [symbolic] -// CHECK:STDOUT: %Eats.facet.3ce: %Eats.type = facet_value %T.as_type.975, (%Eats.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Feed.specific_fn: = specific_function %Feed, @Feed(%Eats.facet.3ce) [symbolic] +// CHECK:STDOUT: %require_complete.db4: = require_complete_type %T.as_type.01d [symbolic] +// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %T.443, @Eats [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.e0811c.2: = impl_witness @A.as_type.as.Eats.impl.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%T.443) [symbolic] +// CHECK:STDOUT: %.2fe: require_specific_def_type = require_specific_def @A.as_type.as.Eats.impl(%T.443) [symbolic] +// CHECK:STDOUT: %Eats.facet.934: %Eats.type = facet_value %T.as_type.01d, (%Eats.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Feed.specific_fn: = specific_function %Feed, @Feed(%Eats.facet.934) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -75,7 +75,7 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: %Eats.decl: type = interface_decl @Eats [concrete = constants.%Eats.type] {} {} // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} // CHECK:STDOUT: impl_decl @A.as_type.as.Eats.impl [concrete] { -// CHECK:STDOUT: %A.patt: %pattern_type.5a8 = symbolic_binding_pattern A, 0 [concrete] +// CHECK:STDOUT: %A.patt: %pattern_type.333 = symbolic_binding_pattern A, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: %Animal.type = name_ref A, %A.loc18_15.1 [symbolic = %A.loc18_15.2 (constants.%A)] // CHECK:STDOUT: %A.as_type.loc18_26.1: type = facet_access_type %A.ref [symbolic = %A.as_type.loc18_26.2 (constants.%A.as_type)] @@ -88,45 +88,45 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: %A.loc18_15.1: %Animal.type = symbolic_binding A, 0 [symbolic = %A.loc18_15.2 (constants.%A)] // CHECK:STDOUT: } // CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] { -// CHECK:STDOUT: %T.patt: %pattern_type.3a5 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.58d) = value_param_pattern [concrete] -// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.58d) = at_binding_pattern e, %e.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.880 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.aed) = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.aed) = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc20_13: type = splice_block %Eats.ref [concrete = constants.%Eats.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc20_10.2: %Eats.type = symbolic_binding T, 0 [symbolic = %T.loc20_10.1 (constants.%T.ae6)] -// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc20_29.1 (%T.as_type.e42) = value_param call_param0 -// CHECK:STDOUT: %.loc20_29.1: type = splice_block %.loc20_29.2 [symbolic = %T.as_type.loc20_29.1 (constants.%T.as_type.e42)] { -// CHECK:STDOUT: %T.ref: %Eats.type = name_ref T, %T.loc20_10.2 [symbolic = %T.loc20_10.1 (constants.%T.ae6)] -// CHECK:STDOUT: %T.as_type.loc20_29.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc20_29.1 (constants.%T.as_type.e42)] -// CHECK:STDOUT: %.loc20_29.2: type = converted %T.ref, %T.as_type.loc20_29.2 [symbolic = %T.as_type.loc20_29.1 (constants.%T.as_type.e42)] +// CHECK:STDOUT: %T.loc20_10.2: %Eats.type = symbolic_binding T, 0 [symbolic = %T.loc20_10.1 (constants.%T.672)] +// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc20_29.1 (%T.as_type.422) = value_param call_param0 +// CHECK:STDOUT: %.loc20_29.1: type = splice_block %.loc20_29.2 [symbolic = %T.as_type.loc20_29.1 (constants.%T.as_type.422)] { +// CHECK:STDOUT: %T.ref: %Eats.type = name_ref T, %T.loc20_10.2 [symbolic = %T.loc20_10.1 (constants.%T.672)] +// CHECK:STDOUT: %T.as_type.loc20_29.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc20_29.1 (constants.%T.as_type.422)] +// CHECK:STDOUT: %.loc20_29.2: type = converted %T.ref, %T.as_type.loc20_29.2 [symbolic = %T.as_type.loc20_29.1 (constants.%T.as_type.422)] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: @Feed.%T.as_type.loc20_29.1 (%T.as_type.e42) = value_binding e, %e.param +// CHECK:STDOUT: %e: @Feed.%T.as_type.loc20_29.1 (%T.as_type.422) = value_binding e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { -// CHECK:STDOUT: %T.patt: %pattern_type.5a8 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.94e) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.94e) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.333 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.e90) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.e90) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc22_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc22_18.2: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc22_18.1 (constants.%T.34b)] -// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.975) = value_param call_param0 -// CHECK:STDOUT: %.loc22_32.1: type = splice_block %.loc22_32.2 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.975)] { -// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc22_18.2 [symbolic = %T.loc22_18.1 (constants.%T.34b)] -// CHECK:STDOUT: %T.as_type.loc22_32.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.975)] -// CHECK:STDOUT: %.loc22_32.2: type = converted %T.ref, %T.as_type.loc22_32.2 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.975)] +// CHECK:STDOUT: %T.loc22_18.2: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc22_18.1 (constants.%T.443)] +// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.01d) = value_param call_param0 +// CHECK:STDOUT: %.loc22_32.1: type = splice_block %.loc22_32.2 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.01d)] { +// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc22_18.2 [symbolic = %T.loc22_18.1 (constants.%T.443)] +// CHECK:STDOUT: %T.as_type.loc22_32.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.01d)] +// CHECK:STDOUT: %.loc22_32.2: type = converted %T.ref, %T.as_type.loc22_32.2 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.01d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.975) = value_binding a, %a.param +// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.01d) = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Eats { -// CHECK:STDOUT: %Self: %Eats.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d7f] +// CHECK:STDOUT: %Self: %Eats.type = symbolic_binding Self, 0 [symbolic = constants.%Self.23e] // CHECK:STDOUT: %Eats.WithSelf.decl = interface_with_self_decl @Eats [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -137,7 +137,7 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Animal { -// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.1ff] +// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f00] // CHECK:STDOUT: %Animal.WithSelf.decl = interface_with_self_decl @Animal [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -150,13 +150,13 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: generic impl @A.as_type.as.Eats.impl(%A.loc18_15.1: %Animal.type) { // CHECK:STDOUT: %A.loc18_15.2: %Animal.type = symbolic_binding A, 0 [symbolic = %A.loc18_15.2 (constants.%A)] // CHECK:STDOUT: %A.as_type.loc18_26.2: type = facet_access_type %A.loc18_15.2 [symbolic = %A.as_type.loc18_26.2 (constants.%A.as_type)] -// CHECK:STDOUT: %Eats.impl_witness.loc18_36.2: = impl_witness %Eats.impl_witness_table, @A.as_type.as.Eats.impl(%A.loc18_15.2) [symbolic = %Eats.impl_witness.loc18_36.2 (constants.%Eats.impl_witness.0b67a7.1)] +// CHECK:STDOUT: %Eats.impl_witness.loc18_36.2: = impl_witness %Eats.impl_witness_table, @A.as_type.as.Eats.impl(%A.loc18_15.2) [symbolic = %Eats.impl_witness.loc18_36.2 (constants.%Eats.impl_witness.e0811c.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc18_26 as %Eats.ref { // CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @A.as_type.as.Eats.impl [concrete] -// CHECK:STDOUT: %Eats.impl_witness.loc18_36.1: = impl_witness %Eats.impl_witness_table, @A.as_type.as.Eats.impl(constants.%A) [symbolic = %Eats.impl_witness.loc18_36.2 (constants.%Eats.impl_witness.0b67a7.1)] +// CHECK:STDOUT: %Eats.impl_witness.loc18_36.1: = impl_witness %Eats.impl_witness_table, @A.as_type.as.Eats.impl(constants.%A) [symbolic = %Eats.impl_witness.loc18_36.2 (constants.%Eats.impl_witness.e0811c.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %Eats.ref @@ -165,87 +165,87 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Feed(%T.loc20_10.2: %Eats.type) { -// CHECK:STDOUT: %T.loc20_10.1: %Eats.type = symbolic_binding T, 0 [symbolic = %T.loc20_10.1 (constants.%T.ae6)] -// CHECK:STDOUT: %T.as_type.loc20_29.1: type = facet_access_type %T.loc20_10.1 [symbolic = %T.as_type.loc20_29.1 (constants.%T.as_type.e42)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc20_29.1 [symbolic = %pattern_type (constants.%pattern_type.58d)] +// CHECK:STDOUT: %T.loc20_10.1: %Eats.type = symbolic_binding T, 0 [symbolic = %T.loc20_10.1 (constants.%T.672)] +// CHECK:STDOUT: %T.as_type.loc20_29.1: type = facet_access_type %T.loc20_10.1 [symbolic = %T.as_type.loc20_29.1 (constants.%T.as_type.422)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc20_29.1 [symbolic = %pattern_type (constants.%pattern_type.aed)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc20_29.1 [symbolic = %require_complete (constants.%require_complete.019)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc20_29.1 [symbolic = %require_complete (constants.%require_complete.c4d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc20_29.1 (%T.as_type.e42)) { +// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc20_29.1 (%T.as_type.422)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HandleAnimal(%T.loc22_18.2: %Animal.type) { -// CHECK:STDOUT: %T.loc22_18.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc22_18.1 (constants.%T.34b)] -// CHECK:STDOUT: %T.as_type.loc22_32.1: type = facet_access_type %T.loc22_18.1 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.975)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc22_32.1 [symbolic = %pattern_type (constants.%pattern_type.94e)] +// CHECK:STDOUT: %T.loc22_18.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc22_18.1 (constants.%T.443)] +// CHECK:STDOUT: %T.as_type.loc22_32.1: type = facet_access_type %T.loc22_18.1 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.01d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc22_32.1 [symbolic = %pattern_type (constants.%pattern_type.e90)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc22_32.1 [symbolic = %require_complete (constants.%require_complete.b5c)] -// CHECK:STDOUT: %.loc22_43.2: require_specific_def_type = require_specific_def @A.as_type.as.Eats.impl(%T.loc22_18.1) [symbolic = %.loc22_43.2 (constants.%.8c6)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc22_32.1 [symbolic = %require_complete (constants.%require_complete.db4)] +// CHECK:STDOUT: %.loc22_43.2: require_specific_def_type = require_specific_def @A.as_type.as.Eats.impl(%T.loc22_18.1) [symbolic = %.loc22_43.2 (constants.%.2fe)] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %T.loc22_18.1, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] -// CHECK:STDOUT: %Eats.facet.loc22_43.2: %Eats.type = facet_value %T.as_type.loc22_32.1, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.2 (constants.%Eats.facet.3ce)] +// CHECK:STDOUT: %Eats.facet.loc22_43.2: %Eats.type = facet_value %T.as_type.loc22_32.1, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.2 (constants.%Eats.facet.934)] // CHECK:STDOUT: %Feed.specific_fn.loc22_37.2: = specific_function constants.%Feed, @Feed(%Eats.facet.loc22_43.2) [symbolic = %Feed.specific_fn.loc22_37.2 (constants.%Feed.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.975)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.01d)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] -// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.975) = name_ref a, %a -// CHECK:STDOUT: %Eats.facet.loc22_43.1: %Eats.type = facet_value constants.%T.as_type.975, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.2 (constants.%Eats.facet.3ce)] -// CHECK:STDOUT: %.loc22_43.1: %Eats.type = converted constants.%T.as_type.975, %Eats.facet.loc22_43.1 [symbolic = %Eats.facet.loc22_43.2 (constants.%Eats.facet.3ce)] -// CHECK:STDOUT: %Feed.specific_fn.loc22_37.1: = specific_function %Feed.ref, @Feed(constants.%Eats.facet.3ce) [symbolic = %Feed.specific_fn.loc22_37.2 (constants.%Feed.specific_fn)] +// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.01d) = name_ref a, %a +// CHECK:STDOUT: %Eats.facet.loc22_43.1: %Eats.type = facet_value constants.%T.as_type.01d, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.2 (constants.%Eats.facet.934)] +// CHECK:STDOUT: %.loc22_43.1: %Eats.type = converted constants.%T.as_type.01d, %Eats.facet.loc22_43.1 [symbolic = %Eats.facet.loc22_43.2 (constants.%Eats.facet.934)] +// CHECK:STDOUT: %Feed.specific_fn.loc22_37.1: = specific_function %Feed.ref, @Feed(constants.%Eats.facet.934) [symbolic = %Feed.specific_fn.loc22_37.2 (constants.%Feed.specific_fn)] // CHECK:STDOUT: %Feed.call: init %empty_tuple.type = call %Feed.specific_fn.loc22_37.1(%a.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Self.d7f) { +// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Self.23e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.1ff) { +// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.f00) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.as_type.as.Eats.impl(constants.%A) { // CHECK:STDOUT: %A.loc18_15.2 => constants.%A // CHECK:STDOUT: %A.as_type.loc18_26.2 => constants.%A.as_type -// CHECK:STDOUT: %Eats.impl_witness.loc18_36.2 => constants.%Eats.impl_witness.0b67a7.1 +// CHECK:STDOUT: %Eats.impl_witness.loc18_36.2 => constants.%Eats.impl_witness.e0811c.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Eats.facet.eb6) { +// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Eats.facet.f93) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%T.ae6) { -// CHECK:STDOUT: %T.loc20_10.1 => constants.%T.ae6 -// CHECK:STDOUT: %T.as_type.loc20_29.1 => constants.%T.as_type.e42 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.58d +// CHECK:STDOUT: specific @Feed(constants.%T.672) { +// CHECK:STDOUT: %T.loc20_10.1 => constants.%T.672 +// CHECK:STDOUT: %T.as_type.loc20_29.1 => constants.%T.as_type.422 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.aed // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HandleAnimal(constants.%T.34b) { -// CHECK:STDOUT: %T.loc22_18.1 => constants.%T.34b -// CHECK:STDOUT: %T.as_type.loc22_32.1 => constants.%T.as_type.975 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.94e +// CHECK:STDOUT: specific @HandleAnimal(constants.%T.443) { +// CHECK:STDOUT: %T.loc22_18.1 => constants.%T.443 +// CHECK:STDOUT: %T.as_type.loc22_32.1 => constants.%T.as_type.01d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e90 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.as_type.as.Eats.impl(constants.%T.34b) { -// CHECK:STDOUT: %A.loc18_15.2 => constants.%T.34b -// CHECK:STDOUT: %A.as_type.loc18_26.2 => constants.%T.as_type.975 -// CHECK:STDOUT: %Eats.impl_witness.loc18_36.2 => constants.%Eats.impl_witness.0b67a7.2 +// CHECK:STDOUT: specific @A.as_type.as.Eats.impl(constants.%T.443) { +// CHECK:STDOUT: %A.loc18_15.2 => constants.%T.443 +// CHECK:STDOUT: %A.as_type.loc18_26.2 => constants.%T.as_type.01d +// CHECK:STDOUT: %Eats.impl_witness.loc18_36.2 => constants.%Eats.impl_witness.e0811c.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%Eats.facet.3ce) { -// CHECK:STDOUT: %T.loc20_10.1 => constants.%Eats.facet.3ce -// CHECK:STDOUT: %T.as_type.loc20_29.1 => constants.%T.as_type.975 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.94e +// CHECK:STDOUT: specific @Feed(constants.%Eats.facet.934) { +// CHECK:STDOUT: %T.loc20_10.1 => constants.%Eats.facet.934 +// CHECK:STDOUT: %T.as_type.loc20_29.1 => constants.%T.as_type.01d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e90 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.b5c +// CHECK:STDOUT: %require_complete => constants.%require_complete.db4 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon b/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon index 0cc018ce8933..55ff8ae09cc8 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 @@ -39,93 +39,93 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Edible.type: type = facet_type <@Edible> [concrete] -// CHECK:STDOUT: %Self.4f5: %Edible.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.59b: %Edible.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Grass: type = class_type @Grass [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Edible.impl_witness: = impl_witness @Grass.as.Edible.impl.%Edible.impl_witness_table [concrete] // CHECK:STDOUT: %Edible.facet: %Edible.type = facet_value %Grass, (%Edible.impl_witness) [concrete] // CHECK:STDOUT: %Animal.type: type = facet_type <@Animal> [concrete] -// CHECK:STDOUT: %Self.1ff: %Animal.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.f00: %Animal.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %Food.67d: type = symbolic_binding Food, 0 [symbolic] -// CHECK:STDOUT: %Eats.type.0d3: type = generic_interface_type @Eats [concrete] +// CHECK:STDOUT: %Eats.type.8ef: type = generic_interface_type @Eats [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Eats.generic: %Eats.type.0d3 = struct_value () [concrete] -// CHECK:STDOUT: %Eats.type.e08: type = facet_type <@Eats, @Eats(%Food.67d)> [symbolic] -// CHECK:STDOUT: %Self.e81: %Eats.type.e08 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %pattern_type.5a8: type = pattern_type %Animal.type [concrete] -// CHECK:STDOUT: %T.34b: %Animal.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %pattern_type.202: type = pattern_type %Edible.type [concrete] +// CHECK:STDOUT: %Eats.generic: %Eats.type.8ef = struct_value () [concrete] +// CHECK:STDOUT: %Eats.type.b81: type = facet_type <@Eats, @Eats(%Food.67d)> [symbolic] +// CHECK:STDOUT: %Self.db3: %Eats.type.b81 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %pattern_type.333: type = pattern_type %Animal.type [concrete] +// CHECK:STDOUT: %T.443: %Animal.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.e90e: type = pattern_type %Edible.type [concrete] // CHECK:STDOUT: %U: %Edible.type = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %T.as_type.975: type = facet_access_type %T.34b [symbolic] +// CHECK:STDOUT: %T.as_type.01d: type = facet_access_type %T.443 [symbolic] // CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] -// CHECK:STDOUT: %Eats.type.319b68.1: type = facet_type <@Eats, @Eats(%U.as_type)> [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.bf7f94.1: = impl_witness @T.as_type.as.Eats.impl.%Eats.impl_witness_table, @T.as_type.as.Eats.impl(%T.34b, %U) [symbolic] -// CHECK:STDOUT: %Self.f1a: %Eats.type.319b68.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %require_complete.9d6a3d.1: = require_complete_type %Eats.type.319b68.1 [symbolic] -// CHECK:STDOUT: %Eats.facet.dfd: %Eats.type.319b68.1 = facet_value %T.as_type.975, (%Eats.impl_witness.bf7f94.1) [symbolic] +// CHECK:STDOUT: %Eats.type.ceea62.1: type = facet_type <@Eats, @Eats(%U.as_type)> [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.4ca0a7.1: = impl_witness @T.as_type.as.Eats.impl.%Eats.impl_witness_table, @T.as_type.as.Eats.impl(%T.443, %U) [symbolic] +// CHECK:STDOUT: %Self.e18: %Eats.type.ceea62.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %require_complete.54fb7e.1: = require_complete_type %Eats.type.ceea62.1 [symbolic] +// CHECK:STDOUT: %Eats.facet.509: %Eats.type.ceea62.1 = facet_value %T.as_type.01d, (%Eats.impl_witness.4ca0a7.1) [symbolic] // CHECK:STDOUT: %Goat: type = class_type @Goat [concrete] // CHECK:STDOUT: %Animal.impl_witness: = impl_witness @Goat.as.Animal.impl.%Animal.impl_witness_table [concrete] // CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, (%Animal.impl_witness) [concrete] -// CHECK:STDOUT: %Food.c7a: %Edible.type = symbolic_binding Food, 0 [symbolic] -// CHECK:STDOUT: %Food.as_type.e66: type = facet_access_type %Food.c7a [symbolic] -// CHECK:STDOUT: %Eats.type.dc6: type = facet_type <@Eats, @Eats(%Food.as_type.e66)> [symbolic] -// CHECK:STDOUT: %pattern_type.577: type = pattern_type %Eats.type.dc6 [symbolic] -// CHECK:STDOUT: %T.4a7: %Eats.type.dc6 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %Self.46f: %Eats.type.dc6 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %T.as_type.b3d: type = facet_access_type %T.4a7 [symbolic] -// CHECK:STDOUT: %pattern_type.089: type = pattern_type %T.as_type.b3d [symbolic] -// CHECK:STDOUT: %pattern_type.3ff: type = pattern_type %Food.as_type.e66 [symbolic] +// CHECK:STDOUT: %Food.196: %Edible.type = symbolic_binding Food, 0 [symbolic] +// CHECK:STDOUT: %Food.as_type.bca: type = facet_access_type %Food.196 [symbolic] +// CHECK:STDOUT: %Eats.type.eb4: type = facet_type <@Eats, @Eats(%Food.as_type.bca)> [symbolic] +// CHECK:STDOUT: %pattern_type.560: type = pattern_type %Eats.type.eb4 [symbolic] +// CHECK:STDOUT: %T.b01: %Eats.type.eb4 = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %Self.377: %Eats.type.eb4 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %T.as_type.b84: type = facet_access_type %T.b01 [symbolic] +// CHECK:STDOUT: %pattern_type.371: type = pattern_type %T.as_type.b84 [symbolic] +// CHECK:STDOUT: %pattern_type.e40: type = pattern_type %Food.as_type.bca [symbolic] // CHECK:STDOUT: %Feed.type: type = fn_type @Feed [concrete] // CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.ecb: = require_complete_type %T.as_type.b3d [symbolic] -// CHECK:STDOUT: %require_complete.ebb: = require_complete_type %Food.as_type.e66 [symbolic] +// CHECK:STDOUT: %require_complete.363: = require_complete_type %T.as_type.b84 [symbolic] +// CHECK:STDOUT: %require_complete.d57: = require_complete_type %Food.as_type.bca [symbolic] // CHECK:STDOUT: %A: %Animal.type = symbolic_binding A, 0 [symbolic] -// CHECK:STDOUT: %Food.9ee: %Edible.type = symbolic_binding Food, 1 [symbolic] +// CHECK:STDOUT: %Food.5f8: %Edible.type = symbolic_binding Food, 1 [symbolic] // CHECK:STDOUT: %A.as_type: type = facet_access_type %A [symbolic] -// CHECK:STDOUT: %pattern_type.94e: type = pattern_type %A.as_type [symbolic] -// CHECK:STDOUT: %Food.as_type.cd6: type = facet_access_type %Food.9ee [symbolic] -// CHECK:STDOUT: %pattern_type.9ab: type = pattern_type %Food.as_type.cd6 [symbolic] +// CHECK:STDOUT: %pattern_type.e90c: type = pattern_type %A.as_type [symbolic] +// CHECK:STDOUT: %Food.as_type.24e: type = facet_access_type %Food.5f8 [symbolic] +// CHECK:STDOUT: %pattern_type.ea8: type = pattern_type %Food.as_type.24e [symbolic] // CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete] // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.b5c: = require_complete_type %A.as_type [symbolic] -// CHECK:STDOUT: %require_complete.8e7: = require_complete_type %Food.as_type.cd6 [symbolic] -// CHECK:STDOUT: %Eats.type.319b68.2: type = facet_type <@Eats, @Eats(%Food.as_type.cd6)> [symbolic] -// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %A, @Eats, @Eats(%Food.as_type.cd6) [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.bf7f94.2: = impl_witness @T.as_type.as.Eats.impl.%Eats.impl_witness_table, @T.as_type.as.Eats.impl(%A, %Food.9ee) [symbolic] -// CHECK:STDOUT: %require_complete.9d6a3d.2: = require_complete_type %Eats.type.319b68.2 [symbolic] -// CHECK:STDOUT: %.9c0: require_specific_def_type = require_specific_def @T.as_type.as.Eats.impl(%A, %Food.9ee) [symbolic] -// CHECK:STDOUT: %Eats.facet.b86: %Eats.type.319b68.2 = facet_value %A.as_type, (%Eats.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %pattern_type.0f2: type = pattern_type %Eats.type.319b68.2 [symbolic] -// CHECK:STDOUT: %Feed.specific_fn.7ee: = specific_function %Feed, @Feed(%Food.9ee, %Eats.facet.b86) [symbolic] +// CHECK:STDOUT: %require_complete.db4: = require_complete_type %A.as_type [symbolic] +// CHECK:STDOUT: %require_complete.3cc: = require_complete_type %Food.as_type.24e [symbolic] +// CHECK:STDOUT: %Eats.type.ceea62.2: type = facet_type <@Eats, @Eats(%Food.as_type.24e)> [symbolic] +// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %A, @Eats, @Eats(%Food.as_type.24e) [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.4ca0a7.2: = impl_witness @T.as_type.as.Eats.impl.%Eats.impl_witness_table, @T.as_type.as.Eats.impl(%A, %Food.5f8) [symbolic] +// CHECK:STDOUT: %require_complete.54fb7e.2: = require_complete_type %Eats.type.ceea62.2 [symbolic] +// CHECK:STDOUT: %.86d: require_specific_def_type = require_specific_def @T.as_type.as.Eats.impl(%A, %Food.5f8) [symbolic] +// CHECK:STDOUT: %Eats.facet.f11: %Eats.type.ceea62.2 = facet_value %A.as_type, (%Eats.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %pattern_type.efc: type = pattern_type %Eats.type.ceea62.2 [symbolic] +// CHECK:STDOUT: %Feed.specific_fn.292: = specific_function %Feed, @Feed(%Food.5f8, %Eats.facet.f11) [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %Goat.val: %Goat = struct_value () [concrete] // CHECK:STDOUT: %Grass.val: %Grass = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.bea: type = pattern_type %Goat [concrete] -// CHECK:STDOUT: %pattern_type.2e1: type = pattern_type %Grass [concrete] +// CHECK:STDOUT: %pattern_type.283: type = pattern_type %Goat [concrete] +// CHECK:STDOUT: %pattern_type.92e: type = pattern_type %Grass [concrete] // CHECK:STDOUT: %HandleAnimal.specific_fn: = specific_function %HandleAnimal, @HandleAnimal(%Animal.facet, %Edible.facet) [concrete] -// CHECK:STDOUT: %.e6d: ref %Goat = temporary invalid, %Goat.val [concrete] -// CHECK:STDOUT: %.05d: ref %Grass = temporary invalid, %Grass.val [concrete] +// 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.790b3b.2: type = fn_type @Destroy.Op.loc35_31.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.4a3: = bound_method %.05d, %Destroy.Op.2dd605.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc35_19 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.61b: = bound_method %.e6d, %Destroy.Op.2dd605.3 [concrete] -// CHECK:STDOUT: %Eats.type.3cb: type = facet_type <@Eats, @Eats(%Grass)> [concrete] -// CHECK:STDOUT: %Eats.impl_witness.419: = impl_witness @T.as_type.as.Eats.impl.%Eats.impl_witness_table, @T.as_type.as.Eats.impl(%Animal.facet, %Edible.facet) [concrete] -// CHECK:STDOUT: %Self.62f: %Eats.type.3cb = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %complete_type.3a7: = complete_type_witness %Eats.type.3cb [concrete] -// CHECK:STDOUT: %.374: require_specific_def_type = require_specific_def @T.as_type.as.Eats.impl(%Animal.facet, %Edible.facet) [concrete] -// CHECK:STDOUT: %Eats.facet.750: %Eats.type.3cb = facet_value %Goat, (%Eats.impl_witness.419) [concrete] -// CHECK:STDOUT: %pattern_type.9ca: type = pattern_type %Eats.type.3cb [concrete] -// CHECK:STDOUT: %Feed.specific_fn.137: = specific_function %Feed, @Feed(%Edible.facet, %Eats.facet.750) [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: %Eats.type.682: type = facet_type <@Eats, @Eats(%Grass)> [concrete] +// CHECK:STDOUT: %Eats.impl_witness.fd5: = impl_witness @T.as_type.as.Eats.impl.%Eats.impl_witness_table, @T.as_type.as.Eats.impl(%Animal.facet, %Edible.facet) [concrete] +// CHECK:STDOUT: %Self.3ec: %Eats.type.682 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %complete_type.70f: = complete_type_witness %Eats.type.682 [concrete] +// CHECK:STDOUT: %.86e: require_specific_def_type = require_specific_def @T.as_type.as.Eats.impl(%Animal.facet, %Edible.facet) [concrete] +// CHECK:STDOUT: %Eats.facet.d00: %Eats.type.682 = facet_value %Goat, (%Eats.impl_witness.fd5) [concrete] +// CHECK:STDOUT: %pattern_type.a69: type = pattern_type %Eats.type.682 [concrete] +// CHECK:STDOUT: %Feed.specific_fn.166: = specific_function %Feed, @Feed(%Edible.facet, %Eats.facet.d00) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -157,7 +157,7 @@ fn F() { // CHECK:STDOUT: %Edible.ref: type = name_ref Edible, file.%Edible.decl [concrete = constants.%Edible.type] // CHECK:STDOUT: } // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} -// CHECK:STDOUT: %Eats.decl: %Eats.type.0d3 = interface_decl @Eats [concrete = constants.%Eats.generic] { +// CHECK:STDOUT: %Eats.decl: %Eats.type.8ef = interface_decl @Eats [concrete = constants.%Eats.generic] { // CHECK:STDOUT: %Food.patt: %pattern_type.98f = symbolic_binding_pattern Food, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc21_23.1: type = splice_block %.loc21_23.2 [concrete = type] { @@ -167,22 +167,22 @@ fn F() { // CHECK:STDOUT: %Food.loc21_20.2: type = symbolic_binding Food, 0 [symbolic = %Food.loc21_20.1 (constants.%Food.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @T.as_type.as.Eats.impl [concrete] { -// CHECK:STDOUT: %T.patt: %pattern_type.5a8 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %U.patt: %pattern_type.202 = symbolic_binding_pattern U, 1 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.333 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %U.patt: %pattern_type.e90e = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc26_15.1 [symbolic = %T.loc26_15.2 (constants.%T.34b)] -// CHECK:STDOUT: %T.as_type.loc26_38.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc26_38.2 (constants.%T.as_type.975)] -// CHECK:STDOUT: %.loc26_38: type = converted %T.ref, %T.as_type.loc26_38.1 [symbolic = %T.as_type.loc26_38.2 (constants.%T.as_type.975)] -// CHECK:STDOUT: %Eats.ref: %Eats.type.0d3 = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.generic] +// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc26_15.1 [symbolic = %T.loc26_15.2 (constants.%T.443)] +// CHECK:STDOUT: %T.as_type.loc26_38.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc26_38.2 (constants.%T.as_type.01d)] +// CHECK:STDOUT: %.loc26_38: type = converted %T.ref, %T.as_type.loc26_38.1 [symbolic = %T.as_type.loc26_38.2 (constants.%T.as_type.01d)] +// CHECK:STDOUT: %Eats.ref: %Eats.type.8ef = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.generic] // CHECK:STDOUT: %U.ref: %Edible.type = name_ref U, %U.loc26_27.1 [symbolic = %U.loc26_27.2 (constants.%U)] // CHECK:STDOUT: %U.as_type.loc26_49.1: type = facet_access_type %U.ref [symbolic = %U.as_type.loc26_49.2 (constants.%U.as_type)] // CHECK:STDOUT: %.loc26_49: type = converted %U.ref, %U.as_type.loc26_49.1 [symbolic = %U.as_type.loc26_49.2 (constants.%U.as_type)] -// CHECK:STDOUT: %Eats.type.loc26_49.1: type = facet_type <@Eats, @Eats(constants.%U.as_type)> [symbolic = %Eats.type.loc26_49.2 (constants.%Eats.type.319b68.1)] +// CHECK:STDOUT: %Eats.type.loc26_49.1: type = facet_type <@Eats, @Eats(constants.%U.as_type)> [symbolic = %Eats.type.loc26_49.2 (constants.%Eats.type.ceea62.1)] // CHECK:STDOUT: %.loc26_18: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self.loc26_15: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc26_15.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc26_15.2 (constants.%T.34b)] +// CHECK:STDOUT: %T.loc26_15.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc26_15.2 (constants.%T.443)] // CHECK:STDOUT: %.loc26_30: type = splice_block %Edible.ref [concrete = constants.%Edible.type] { // CHECK:STDOUT: %.Self.loc26_27: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Edible.ref: type = name_ref Edible, file.%Edible.decl [concrete = constants.%Edible.type] @@ -195,49 +195,49 @@ fn F() { // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] // CHECK:STDOUT: } // CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] { -// CHECK:STDOUT: %Food.patt: %pattern_type.202 = symbolic_binding_pattern Food, 0 [concrete] -// CHECK:STDOUT: %T.patt: @Feed.%pattern_type.loc31_25 (%pattern_type.577) = symbolic_binding_pattern T, 1 [concrete] -// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type.loc31_48 (%pattern_type.089) = value_param_pattern [concrete] -// CHECK:STDOUT: %e.patt: @Feed.%pattern_type.loc31_48 (%pattern_type.089) = at_binding_pattern e, %e.param_patt [concrete] -// CHECK:STDOUT: %food.param_patt: @Feed.%pattern_type.loc31_64 (%pattern_type.3ff) = value_param_pattern [concrete] -// CHECK:STDOUT: %food.patt: @Feed.%pattern_type.loc31_64 (%pattern_type.3ff) = at_binding_pattern food, %food.param_patt [concrete] +// CHECK:STDOUT: %Food.patt: %pattern_type.e90e = symbolic_binding_pattern Food, 0 [concrete] +// CHECK:STDOUT: %T.patt: @Feed.%pattern_type.loc31_25 (%pattern_type.560) = symbolic_binding_pattern T, 1 [concrete] +// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type.loc31_48 (%pattern_type.371) = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: @Feed.%pattern_type.loc31_48 (%pattern_type.371) = at_binding_pattern e, %e.param_patt [concrete] +// CHECK:STDOUT: %food.param_patt: @Feed.%pattern_type.loc31_64 (%pattern_type.e40) = value_param_pattern [concrete] +// CHECK:STDOUT: %food.patt: @Feed.%pattern_type.loc31_64 (%pattern_type.e40) = at_binding_pattern food, %food.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc31_16: type = splice_block %Edible.ref [concrete = constants.%Edible.type] { // CHECK:STDOUT: %.Self.loc31_13: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Edible.ref: type = name_ref Edible, file.%Edible.decl [concrete = constants.%Edible.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %Food.loc31_13.2: %Edible.type = symbolic_binding Food, 0 [symbolic = %Food.loc31_13.1 (constants.%Food.c7a)] -// CHECK:STDOUT: %.loc31_37.1: type = splice_block %Eats.type.loc31_37.2 [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.dc6)] { +// CHECK:STDOUT: %Food.loc31_13.2: %Edible.type = symbolic_binding Food, 0 [symbolic = %Food.loc31_13.1 (constants.%Food.196)] +// CHECK:STDOUT: %.loc31_37.1: type = splice_block %Eats.type.loc31_37.2 [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.eb4)] { // CHECK:STDOUT: %.Self.loc31_25: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Eats.ref: %Eats.type.0d3 = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.generic] -// CHECK:STDOUT: %Food.ref.loc31_33: %Edible.type = name_ref Food, %Food.loc31_13.2 [symbolic = %Food.loc31_13.1 (constants.%Food.c7a)] -// CHECK:STDOUT: %Food.as_type.loc31_37.2: type = facet_access_type %Food.ref.loc31_33 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.e66)] -// CHECK:STDOUT: %.loc31_37.2: type = converted %Food.ref.loc31_33, %Food.as_type.loc31_37.2 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.e66)] -// CHECK:STDOUT: %Eats.type.loc31_37.2: type = facet_type <@Eats, @Eats(constants.%Food.as_type.e66)> [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.dc6)] +// CHECK:STDOUT: %Eats.ref: %Eats.type.8ef = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.generic] +// CHECK:STDOUT: %Food.ref.loc31_33: %Edible.type = name_ref Food, %Food.loc31_13.2 [symbolic = %Food.loc31_13.1 (constants.%Food.196)] +// CHECK:STDOUT: %Food.as_type.loc31_37.2: type = facet_access_type %Food.ref.loc31_33 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.bca)] +// CHECK:STDOUT: %.loc31_37.2: type = converted %Food.ref.loc31_33, %Food.as_type.loc31_37.2 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.bca)] +// CHECK:STDOUT: %Eats.type.loc31_37.2: type = facet_type <@Eats, @Eats(constants.%Food.as_type.bca)> [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.eb4)] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc31_25.2: @Feed.%Eats.type.loc31_37.1 (%Eats.type.dc6) = symbolic_binding T, 1 [symbolic = %T.loc31_25.1 (constants.%T.4a7)] -// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc31_50.1 (%T.as_type.b3d) = value_param call_param0 -// CHECK:STDOUT: %.loc31_50.1: type = splice_block %.loc31_50.2 [symbolic = %T.as_type.loc31_50.1 (constants.%T.as_type.b3d)] { -// CHECK:STDOUT: %T.ref: @Feed.%Eats.type.loc31_37.1 (%Eats.type.dc6) = name_ref T, %T.loc31_25.2 [symbolic = %T.loc31_25.1 (constants.%T.4a7)] -// CHECK:STDOUT: %T.as_type.loc31_50.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc31_50.1 (constants.%T.as_type.b3d)] -// CHECK:STDOUT: %.loc31_50.2: type = converted %T.ref, %T.as_type.loc31_50.2 [symbolic = %T.as_type.loc31_50.1 (constants.%T.as_type.b3d)] +// CHECK:STDOUT: %T.loc31_25.2: @Feed.%Eats.type.loc31_37.1 (%Eats.type.eb4) = symbolic_binding T, 1 [symbolic = %T.loc31_25.1 (constants.%T.b01)] +// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc31_50.1 (%T.as_type.b84) = value_param call_param0 +// CHECK:STDOUT: %.loc31_50.1: type = splice_block %.loc31_50.2 [symbolic = %T.as_type.loc31_50.1 (constants.%T.as_type.b84)] { +// CHECK:STDOUT: %T.ref: @Feed.%Eats.type.loc31_37.1 (%Eats.type.eb4) = name_ref T, %T.loc31_25.2 [symbolic = %T.loc31_25.1 (constants.%T.b01)] +// CHECK:STDOUT: %T.as_type.loc31_50.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc31_50.1 (constants.%T.as_type.b84)] +// CHECK:STDOUT: %.loc31_50.2: type = converted %T.ref, %T.as_type.loc31_50.2 [symbolic = %T.as_type.loc31_50.1 (constants.%T.as_type.b84)] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: @Feed.%T.as_type.loc31_50.1 (%T.as_type.b3d) = value_binding e, %e.param -// CHECK:STDOUT: %food.param: @Feed.%Food.as_type.loc31_37.1 (%Food.as_type.e66) = value_param call_param1 -// CHECK:STDOUT: %.loc31_66.1: type = splice_block %.loc31_66.2 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.e66)] { -// CHECK:STDOUT: %Food.ref.loc31_66: %Edible.type = name_ref Food, %Food.loc31_13.2 [symbolic = %Food.loc31_13.1 (constants.%Food.c7a)] -// CHECK:STDOUT: %Food.as_type.loc31_66: type = facet_access_type %Food.ref.loc31_66 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.e66)] -// CHECK:STDOUT: %.loc31_66.2: type = converted %Food.ref.loc31_66, %Food.as_type.loc31_66 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.e66)] +// CHECK:STDOUT: %e: @Feed.%T.as_type.loc31_50.1 (%T.as_type.b84) = value_binding e, %e.param +// CHECK:STDOUT: %food.param: @Feed.%Food.as_type.loc31_37.1 (%Food.as_type.bca) = value_param call_param1 +// CHECK:STDOUT: %.loc31_66.1: type = splice_block %.loc31_66.2 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.bca)] { +// CHECK:STDOUT: %Food.ref.loc31_66: %Edible.type = name_ref Food, %Food.loc31_13.2 [symbolic = %Food.loc31_13.1 (constants.%Food.196)] +// CHECK:STDOUT: %Food.as_type.loc31_66: type = facet_access_type %Food.ref.loc31_66 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.bca)] +// CHECK:STDOUT: %.loc31_66.2: type = converted %Food.ref.loc31_66, %Food.as_type.loc31_66 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.bca)] // CHECK:STDOUT: } -// CHECK:STDOUT: %food: @Feed.%Food.as_type.loc31_37.1 (%Food.as_type.e66) = value_binding food, %food.param +// CHECK:STDOUT: %food: @Feed.%Food.as_type.loc31_37.1 (%Food.as_type.bca) = value_binding food, %food.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { -// CHECK:STDOUT: %A.patt: %pattern_type.5a8 = symbolic_binding_pattern A, 0 [concrete] -// CHECK:STDOUT: %Food.patt: %pattern_type.202 = symbolic_binding_pattern Food, 1 [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type.loc32_45 (%pattern_type.94e) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type.loc32_45 (%pattern_type.94e) = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %food.param_patt: @HandleAnimal.%pattern_type.loc32_54 (%pattern_type.9ab) = value_param_pattern [concrete] -// CHECK:STDOUT: %food.patt: @HandleAnimal.%pattern_type.loc32_54 (%pattern_type.9ab) = at_binding_pattern food, %food.param_patt [concrete] +// CHECK:STDOUT: %A.patt: %pattern_type.333 = symbolic_binding_pattern A, 0 [concrete] +// CHECK:STDOUT: %Food.patt: %pattern_type.e90e = symbolic_binding_pattern Food, 1 [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type.loc32_45 (%pattern_type.e90c) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type.loc32_45 (%pattern_type.e90c) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %food.param_patt: @HandleAnimal.%pattern_type.loc32_54 (%pattern_type.ea8) = value_param_pattern [concrete] +// CHECK:STDOUT: %food.patt: @HandleAnimal.%pattern_type.loc32_54 (%pattern_type.ea8) = at_binding_pattern food, %food.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc32_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self.loc32_18: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -248,7 +248,7 @@ fn F() { // CHECK:STDOUT: %.Self.loc32_33: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Edible.ref: type = name_ref Edible, file.%Edible.decl [concrete = constants.%Edible.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %Food.loc32_33.2: %Edible.type = symbolic_binding Food, 1 [symbolic = %Food.loc32_33.1 (constants.%Food.9ee)] +// CHECK:STDOUT: %Food.loc32_33.2: %Edible.type = symbolic_binding Food, 1 [symbolic = %Food.loc32_33.1 (constants.%Food.5f8)] // CHECK:STDOUT: %a.param: @HandleAnimal.%A.as_type.loc32_47.1 (%A.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc32_47.1: type = splice_block %.loc32_47.2 [symbolic = %A.as_type.loc32_47.1 (constants.%A.as_type)] { // CHECK:STDOUT: %A.ref: %Animal.type = name_ref A, %A.loc32_18.2 [symbolic = %A.loc32_18.1 (constants.%A)] @@ -256,19 +256,19 @@ fn F() { // CHECK:STDOUT: %.loc32_47.2: type = converted %A.ref, %A.as_type.loc32_47.2 [symbolic = %A.as_type.loc32_47.1 (constants.%A.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: %a: @HandleAnimal.%A.as_type.loc32_47.1 (%A.as_type) = value_binding a, %a.param -// CHECK:STDOUT: %food.param: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.cd6) = value_param call_param1 -// CHECK:STDOUT: %.loc32_56.1: type = splice_block %.loc32_56.2 [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.cd6)] { -// CHECK:STDOUT: %Food.ref: %Edible.type = name_ref Food, %Food.loc32_33.2 [symbolic = %Food.loc32_33.1 (constants.%Food.9ee)] -// CHECK:STDOUT: %Food.as_type.loc32_56.2: type = facet_access_type %Food.ref [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.cd6)] -// CHECK:STDOUT: %.loc32_56.2: type = converted %Food.ref, %Food.as_type.loc32_56.2 [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.cd6)] +// CHECK:STDOUT: %food.param: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.24e) = value_param call_param1 +// CHECK:STDOUT: %.loc32_56.1: type = splice_block %.loc32_56.2 [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.24e)] { +// CHECK:STDOUT: %Food.ref: %Edible.type = name_ref Food, %Food.loc32_33.2 [symbolic = %Food.loc32_33.1 (constants.%Food.5f8)] +// CHECK:STDOUT: %Food.as_type.loc32_56.2: type = facet_access_type %Food.ref [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.24e)] +// CHECK:STDOUT: %.loc32_56.2: type = converted %Food.ref, %Food.as_type.loc32_56.2 [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.24e)] // CHECK:STDOUT: } -// CHECK:STDOUT: %food: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.cd6) = value_binding food, %food.param +// CHECK:STDOUT: %food: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.24e) = value_binding food, %food.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Edible { -// CHECK:STDOUT: %Self: %Edible.type = symbolic_binding Self, 0 [symbolic = constants.%Self.4f5] +// CHECK:STDOUT: %Self: %Edible.type = symbolic_binding Self, 0 [symbolic = constants.%Self.59b] // CHECK:STDOUT: %Edible.WithSelf.decl = interface_with_self_decl @Edible [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -279,7 +279,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Animal { -// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.1ff] +// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f00] // CHECK:STDOUT: %Animal.WithSelf.decl = interface_with_self_decl @Animal [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -293,11 +293,11 @@ fn F() { // CHECK:STDOUT: %Food.loc21_20.1: type = symbolic_binding Food, 0 [symbolic = %Food.loc21_20.1 (constants.%Food.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Eats.type: type = facet_type <@Eats, @Eats(%Food.loc21_20.1)> [symbolic = %Eats.type (constants.%Eats.type.e08)] -// CHECK:STDOUT: %Self.loc21_29.2: @Eats.%Eats.type (%Eats.type.e08) = symbolic_binding Self, 1 [symbolic = %Self.loc21_29.2 (constants.%Self.e81)] +// CHECK:STDOUT: %Eats.type: type = facet_type <@Eats, @Eats(%Food.loc21_20.1)> [symbolic = %Eats.type (constants.%Eats.type.b81)] +// CHECK:STDOUT: %Self.loc21_29.2: @Eats.%Eats.type (%Eats.type.b81) = symbolic_binding Self, 1 [symbolic = %Self.loc21_29.2 (constants.%Self.db3)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc21_29.1: @Eats.%Eats.type (%Eats.type.e08) = symbolic_binding Self, 1 [symbolic = %Self.loc21_29.2 (constants.%Self.e81)] +// CHECK:STDOUT: %Self.loc21_29.1: @Eats.%Eats.type (%Eats.type.b81) = symbolic_binding Self, 1 [symbolic = %Self.loc21_29.2 (constants.%Self.db3)] // CHECK:STDOUT: %Eats.WithSelf.decl = interface_with_self_decl @Eats [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -318,19 +318,19 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic impl @T.as_type.as.Eats.impl(%T.loc26_15.1: %Animal.type, %U.loc26_27.1: %Edible.type) { -// CHECK:STDOUT: %T.loc26_15.2: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc26_15.2 (constants.%T.34b)] +// CHECK:STDOUT: %T.loc26_15.2: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc26_15.2 (constants.%T.443)] // CHECK:STDOUT: %U.loc26_27.2: %Edible.type = symbolic_binding U, 1 [symbolic = %U.loc26_27.2 (constants.%U)] -// CHECK:STDOUT: %T.as_type.loc26_38.2: type = facet_access_type %T.loc26_15.2 [symbolic = %T.as_type.loc26_38.2 (constants.%T.as_type.975)] +// CHECK:STDOUT: %T.as_type.loc26_38.2: type = facet_access_type %T.loc26_15.2 [symbolic = %T.as_type.loc26_38.2 (constants.%T.as_type.01d)] // CHECK:STDOUT: %U.as_type.loc26_49.2: type = facet_access_type %U.loc26_27.2 [symbolic = %U.as_type.loc26_49.2 (constants.%U.as_type)] -// CHECK:STDOUT: %Eats.type.loc26_49.2: type = facet_type <@Eats, @Eats(%U.as_type.loc26_49.2)> [symbolic = %Eats.type.loc26_49.2 (constants.%Eats.type.319b68.1)] -// CHECK:STDOUT: %Eats.impl_witness.loc26_51.2: = impl_witness %Eats.impl_witness_table, @T.as_type.as.Eats.impl(%T.loc26_15.2, %U.loc26_27.2) [symbolic = %Eats.impl_witness.loc26_51.2 (constants.%Eats.impl_witness.bf7f94.1)] +// CHECK:STDOUT: %Eats.type.loc26_49.2: type = facet_type <@Eats, @Eats(%U.as_type.loc26_49.2)> [symbolic = %Eats.type.loc26_49.2 (constants.%Eats.type.ceea62.1)] +// CHECK:STDOUT: %Eats.impl_witness.loc26_51.2: = impl_witness %Eats.impl_witness_table, @T.as_type.as.Eats.impl(%T.loc26_15.2, %U.loc26_27.2) [symbolic = %Eats.impl_witness.loc26_51.2 (constants.%Eats.impl_witness.4ca0a7.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Eats.type.loc26_49.2 [symbolic = %require_complete (constants.%require_complete.9d6a3d.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Eats.type.loc26_49.2 [symbolic = %require_complete (constants.%require_complete.54fb7e.1)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc26_38 as %Eats.type.loc26_49.1 { // CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @T.as_type.as.Eats.impl [concrete] -// CHECK:STDOUT: %Eats.impl_witness.loc26_51.1: = impl_witness %Eats.impl_witness_table, @T.as_type.as.Eats.impl(constants.%T.34b, constants.%U) [symbolic = %Eats.impl_witness.loc26_51.2 (constants.%Eats.impl_witness.bf7f94.1)] +// CHECK:STDOUT: %Eats.impl_witness.loc26_51.1: = impl_witness %Eats.impl_witness_table, @T.as_type.as.Eats.impl(constants.%T.443, constants.%U) [symbolic = %Eats.impl_witness.loc26_51.2 (constants.%Eats.impl_witness.4ca0a7.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %Eats.type.loc26_49.1 @@ -363,21 +363,21 @@ fn F() { // CHECK:STDOUT: .Self = constants.%Goat // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Feed(%Food.loc31_13.2: %Edible.type, %T.loc31_25.2: @Feed.%Eats.type.loc31_37.1 (%Eats.type.dc6)) { -// CHECK:STDOUT: %Food.loc31_13.1: %Edible.type = symbolic_binding Food, 0 [symbolic = %Food.loc31_13.1 (constants.%Food.c7a)] -// CHECK:STDOUT: %Food.as_type.loc31_37.1: type = facet_access_type %Food.loc31_13.1 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.e66)] -// CHECK:STDOUT: %Eats.type.loc31_37.1: type = facet_type <@Eats, @Eats(%Food.as_type.loc31_37.1)> [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.dc6)] -// CHECK:STDOUT: %T.loc31_25.1: @Feed.%Eats.type.loc31_37.1 (%Eats.type.dc6) = symbolic_binding T, 1 [symbolic = %T.loc31_25.1 (constants.%T.4a7)] -// CHECK:STDOUT: %pattern_type.loc31_25: type = pattern_type %Eats.type.loc31_37.1 [symbolic = %pattern_type.loc31_25 (constants.%pattern_type.577)] -// CHECK:STDOUT: %T.as_type.loc31_50.1: type = facet_access_type %T.loc31_25.1 [symbolic = %T.as_type.loc31_50.1 (constants.%T.as_type.b3d)] -// CHECK:STDOUT: %pattern_type.loc31_48: type = pattern_type %T.as_type.loc31_50.1 [symbolic = %pattern_type.loc31_48 (constants.%pattern_type.089)] -// CHECK:STDOUT: %pattern_type.loc31_64: type = pattern_type %Food.as_type.loc31_37.1 [symbolic = %pattern_type.loc31_64 (constants.%pattern_type.3ff)] +// CHECK:STDOUT: generic fn @Feed(%Food.loc31_13.2: %Edible.type, %T.loc31_25.2: @Feed.%Eats.type.loc31_37.1 (%Eats.type.eb4)) { +// CHECK:STDOUT: %Food.loc31_13.1: %Edible.type = symbolic_binding Food, 0 [symbolic = %Food.loc31_13.1 (constants.%Food.196)] +// CHECK:STDOUT: %Food.as_type.loc31_37.1: type = facet_access_type %Food.loc31_13.1 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.bca)] +// CHECK:STDOUT: %Eats.type.loc31_37.1: type = facet_type <@Eats, @Eats(%Food.as_type.loc31_37.1)> [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.eb4)] +// CHECK:STDOUT: %T.loc31_25.1: @Feed.%Eats.type.loc31_37.1 (%Eats.type.eb4) = symbolic_binding T, 1 [symbolic = %T.loc31_25.1 (constants.%T.b01)] +// CHECK:STDOUT: %pattern_type.loc31_25: type = pattern_type %Eats.type.loc31_37.1 [symbolic = %pattern_type.loc31_25 (constants.%pattern_type.560)] +// CHECK:STDOUT: %T.as_type.loc31_50.1: type = facet_access_type %T.loc31_25.1 [symbolic = %T.as_type.loc31_50.1 (constants.%T.as_type.b84)] +// CHECK:STDOUT: %pattern_type.loc31_48: type = pattern_type %T.as_type.loc31_50.1 [symbolic = %pattern_type.loc31_48 (constants.%pattern_type.371)] +// CHECK:STDOUT: %pattern_type.loc31_64: type = pattern_type %Food.as_type.loc31_37.1 [symbolic = %pattern_type.loc31_64 (constants.%pattern_type.e40)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc31_48: = require_complete_type %T.as_type.loc31_50.1 [symbolic = %require_complete.loc31_48 (constants.%require_complete.ecb)] -// CHECK:STDOUT: %require_complete.loc31_64: = require_complete_type %Food.as_type.loc31_37.1 [symbolic = %require_complete.loc31_64 (constants.%require_complete.ebb)] +// CHECK:STDOUT: %require_complete.loc31_48: = require_complete_type %T.as_type.loc31_50.1 [symbolic = %require_complete.loc31_48 (constants.%require_complete.363)] +// CHECK:STDOUT: %require_complete.loc31_64: = require_complete_type %Food.as_type.loc31_37.1 [symbolic = %require_complete.loc31_64 (constants.%require_complete.d57)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc31_50.1 (%T.as_type.b3d), %food.param: @Feed.%Food.as_type.loc31_37.1 (%Food.as_type.e66)) { +// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc31_50.1 (%T.as_type.b84), %food.param: @Feed.%Food.as_type.loc31_37.1 (%Food.as_type.bca)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -385,30 +385,30 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HandleAnimal(%A.loc32_18.2: %Animal.type, %Food.loc32_33.2: %Edible.type) { // CHECK:STDOUT: %A.loc32_18.1: %Animal.type = symbolic_binding A, 0 [symbolic = %A.loc32_18.1 (constants.%A)] -// CHECK:STDOUT: %Food.loc32_33.1: %Edible.type = symbolic_binding Food, 1 [symbolic = %Food.loc32_33.1 (constants.%Food.9ee)] +// CHECK:STDOUT: %Food.loc32_33.1: %Edible.type = symbolic_binding Food, 1 [symbolic = %Food.loc32_33.1 (constants.%Food.5f8)] // CHECK:STDOUT: %A.as_type.loc32_47.1: type = facet_access_type %A.loc32_18.1 [symbolic = %A.as_type.loc32_47.1 (constants.%A.as_type)] -// CHECK:STDOUT: %pattern_type.loc32_45: type = pattern_type %A.as_type.loc32_47.1 [symbolic = %pattern_type.loc32_45 (constants.%pattern_type.94e)] -// CHECK:STDOUT: %Food.as_type.loc32_56.1: type = facet_access_type %Food.loc32_33.1 [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.cd6)] -// CHECK:STDOUT: %pattern_type.loc32_54: type = pattern_type %Food.as_type.loc32_56.1 [symbolic = %pattern_type.loc32_54 (constants.%pattern_type.9ab)] +// CHECK:STDOUT: %pattern_type.loc32_45: type = pattern_type %A.as_type.loc32_47.1 [symbolic = %pattern_type.loc32_45 (constants.%pattern_type.e90c)] +// CHECK:STDOUT: %Food.as_type.loc32_56.1: type = facet_access_type %Food.loc32_33.1 [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.24e)] +// CHECK:STDOUT: %pattern_type.loc32_54: type = pattern_type %Food.as_type.loc32_56.1 [symbolic = %pattern_type.loc32_54 (constants.%pattern_type.ea8)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc32_45: = require_complete_type %A.as_type.loc32_47.1 [symbolic = %require_complete.loc32_45 (constants.%require_complete.b5c)] -// CHECK:STDOUT: %require_complete.loc32_54: = require_complete_type %Food.as_type.loc32_56.1 [symbolic = %require_complete.loc32_54 (constants.%require_complete.8e7)] -// CHECK:STDOUT: %.loc32_76.3: require_specific_def_type = require_specific_def @T.as_type.as.Eats.impl(%A.loc32_18.1, %Food.loc32_33.1) [symbolic = %.loc32_76.3 (constants.%.9c0)] -// CHECK:STDOUT: %Eats.type: type = facet_type <@Eats, @Eats(%Food.as_type.loc32_56.1)> [symbolic = %Eats.type (constants.%Eats.type.319b68.2)] +// CHECK:STDOUT: %require_complete.loc32_45: = require_complete_type %A.as_type.loc32_47.1 [symbolic = %require_complete.loc32_45 (constants.%require_complete.db4)] +// CHECK:STDOUT: %require_complete.loc32_54: = require_complete_type %Food.as_type.loc32_56.1 [symbolic = %require_complete.loc32_54 (constants.%require_complete.3cc)] +// CHECK:STDOUT: %.loc32_76.3: require_specific_def_type = require_specific_def @T.as_type.as.Eats.impl(%A.loc32_18.1, %Food.loc32_33.1) [symbolic = %.loc32_76.3 (constants.%.86d)] +// CHECK:STDOUT: %Eats.type: type = facet_type <@Eats, @Eats(%Food.as_type.loc32_56.1)> [symbolic = %Eats.type (constants.%Eats.type.ceea62.2)] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %A.loc32_18.1, @Eats, @Eats(%Food.as_type.loc32_56.1) [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] -// CHECK:STDOUT: %Eats.facet.loc32_76.2: @HandleAnimal.%Eats.type (%Eats.type.319b68.2) = facet_value %A.as_type.loc32_47.1, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.b86)] -// CHECK:STDOUT: %Feed.specific_fn.loc32_64.2: = specific_function constants.%Feed, @Feed(%Food.loc32_33.1, %Eats.facet.loc32_76.2) [symbolic = %Feed.specific_fn.loc32_64.2 (constants.%Feed.specific_fn.7ee)] +// CHECK:STDOUT: %Eats.facet.loc32_76.2: @HandleAnimal.%Eats.type (%Eats.type.ceea62.2) = facet_value %A.as_type.loc32_47.1, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.f11)] +// CHECK:STDOUT: %Feed.specific_fn.loc32_64.2: = specific_function constants.%Feed, @Feed(%Food.loc32_33.1, %Eats.facet.loc32_76.2) [symbolic = %Feed.specific_fn.loc32_64.2 (constants.%Feed.specific_fn.292)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%A.as_type.loc32_47.1 (%A.as_type), %food.param: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.cd6)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%A.as_type.loc32_47.1 (%A.as_type), %food.param: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.24e)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] // CHECK:STDOUT: %a.ref: @HandleAnimal.%A.as_type.loc32_47.1 (%A.as_type) = name_ref a, %a -// CHECK:STDOUT: %food.ref: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.cd6) = name_ref food, %food -// CHECK:STDOUT: %.loc32_76.1: %Edible.type = converted constants.%Food.as_type.cd6, constants.%Food.9ee [symbolic = %Food.loc32_33.1 (constants.%Food.9ee)] -// CHECK:STDOUT: %Eats.facet.loc32_76.1: @HandleAnimal.%Eats.type (%Eats.type.319b68.2) = facet_value constants.%A.as_type, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.b86)] -// CHECK:STDOUT: %.loc32_76.2: @HandleAnimal.%Eats.type (%Eats.type.319b68.2) = converted constants.%A.as_type, %Eats.facet.loc32_76.1 [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.b86)] -// CHECK:STDOUT: %Feed.specific_fn.loc32_64.1: = specific_function %Feed.ref, @Feed(constants.%Food.9ee, constants.%Eats.facet.b86) [symbolic = %Feed.specific_fn.loc32_64.2 (constants.%Feed.specific_fn.7ee)] +// CHECK:STDOUT: %food.ref: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.24e) = name_ref food, %food +// CHECK:STDOUT: %.loc32_76.1: %Edible.type = converted constants.%Food.as_type.24e, constants.%Food.5f8 [symbolic = %Food.loc32_33.1 (constants.%Food.5f8)] +// CHECK:STDOUT: %Eats.facet.loc32_76.1: @HandleAnimal.%Eats.type (%Eats.type.ceea62.2) = facet_value constants.%A.as_type, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.f11)] +// CHECK:STDOUT: %.loc32_76.2: @HandleAnimal.%Eats.type (%Eats.type.ceea62.2) = converted constants.%A.as_type, %Eats.facet.loc32_76.1 [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.f11)] +// CHECK:STDOUT: %Feed.specific_fn.loc32_64.1: = specific_function %Feed.ref, @Feed(constants.%Food.5f8, constants.%Eats.facet.f11) [symbolic = %Feed.specific_fn.loc32_64.2 (constants.%Feed.specific_fn.292)] // CHECK:STDOUT: %Feed.call: init %empty_tuple.type = call %Feed.specific_fn.loc32_64.1(%a.ref, %food.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -432,13 +432,13 @@ fn F() { // CHECK:STDOUT: %Edible.facet: %Edible.type = facet_value constants.%Grass, (constants.%Edible.impl_witness) [concrete = constants.%Edible.facet] // CHECK:STDOUT: %.loc35_39.2: %Edible.type = converted constants.%Grass, %Edible.facet [concrete = constants.%Edible.facet] // CHECK:STDOUT: %HandleAnimal.specific_fn: = specific_function %HandleAnimal.ref, @HandleAnimal(constants.%Animal.facet, constants.%Edible.facet) [concrete = constants.%HandleAnimal.specific_fn] -// CHECK:STDOUT: %.loc35_19.2: ref %Goat = temporary %.loc35_17.2, %.loc35_19.1 [concrete = constants.%.e6d] +// CHECK:STDOUT: %.loc35_19.2: ref %Goat = temporary %.loc35_17.2, %.loc35_19.1 [concrete = constants.%.4ea] // CHECK:STDOUT: %.loc35_19.3: %Goat = acquire_value %.loc35_19.2 [concrete = constants.%Goat.val] -// CHECK:STDOUT: %.loc35_31.2: ref %Grass = temporary %.loc35_29.2, %.loc35_31.1 [concrete = constants.%.05d] +// 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.4a3(constants.%.05d) -// CHECK:STDOUT: %Destroy.Op.call.loc35_19: init %empty_tuple.type = call constants.%Destroy.Op.bound.61b(constants.%.e6d) +// 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: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -454,7 +454,7 @@ fn F() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Edible.WithSelf(constants.%Self.4f5) { +// CHECK:STDOUT: specific @Edible.WithSelf(constants.%Self.59b) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -462,7 +462,7 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.1ff) { +// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.f00) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -470,30 +470,30 @@ fn F() { // CHECK:STDOUT: %Food.loc21_20.1 => constants.%Food.67d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Food.67d, constants.%Self.e81) {} +// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Food.67d, constants.%Self.db3) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Eats(constants.%U.as_type) { // CHECK:STDOUT: %Food.loc21_20.1 => constants.%U.as_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Eats.type => constants.%Eats.type.319b68.1 -// CHECK:STDOUT: %Self.loc21_29.2 => constants.%Self.f1a +// CHECK:STDOUT: %Eats.type => constants.%Eats.type.ceea62.1 +// CHECK:STDOUT: %Self.loc21_29.2 => constants.%Self.e18 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.Eats.impl(constants.%T.34b, constants.%U) { -// CHECK:STDOUT: %T.loc26_15.2 => constants.%T.34b +// CHECK:STDOUT: specific @T.as_type.as.Eats.impl(constants.%T.443, constants.%U) { +// CHECK:STDOUT: %T.loc26_15.2 => constants.%T.443 // CHECK:STDOUT: %U.loc26_27.2 => constants.%U -// CHECK:STDOUT: %T.as_type.loc26_38.2 => constants.%T.as_type.975 +// CHECK:STDOUT: %T.as_type.loc26_38.2 => constants.%T.as_type.01d // CHECK:STDOUT: %U.as_type.loc26_49.2 => constants.%U.as_type -// CHECK:STDOUT: %Eats.type.loc26_49.2 => constants.%Eats.type.319b68.1 -// CHECK:STDOUT: %Eats.impl_witness.loc26_51.2 => constants.%Eats.impl_witness.bf7f94.1 +// CHECK:STDOUT: %Eats.type.loc26_49.2 => constants.%Eats.type.ceea62.1 +// CHECK:STDOUT: %Eats.impl_witness.loc26_51.2 => constants.%Eats.impl_witness.4ca0a7.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.WithSelf(constants.%U.as_type, constants.%Self.e81) { +// CHECK:STDOUT: specific @Eats.WithSelf(constants.%U.as_type, constants.%Self.db3) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.WithSelf(constants.%U.as_type, constants.%Eats.facet.dfd) { +// CHECK:STDOUT: specific @Eats.WithSelf(constants.%U.as_type, constants.%Eats.facet.509) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -501,85 +501,85 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats(constants.%Food.as_type.e66) { -// CHECK:STDOUT: %Food.loc21_20.1 => constants.%Food.as_type.e66 +// CHECK:STDOUT: specific @Eats(constants.%Food.as_type.bca) { +// CHECK:STDOUT: %Food.loc21_20.1 => constants.%Food.as_type.bca // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Eats.type => constants.%Eats.type.dc6 -// CHECK:STDOUT: %Self.loc21_29.2 => constants.%Self.46f +// CHECK:STDOUT: %Eats.type => constants.%Eats.type.eb4 +// CHECK:STDOUT: %Self.loc21_29.2 => constants.%Self.377 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Food.as_type.e66, constants.%Self.e81) { +// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Food.as_type.bca, constants.%Self.db3) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%Food.c7a, constants.%T.4a7) { -// CHECK:STDOUT: %Food.loc31_13.1 => constants.%Food.c7a -// CHECK:STDOUT: %Food.as_type.loc31_37.1 => constants.%Food.as_type.e66 -// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.dc6 -// CHECK:STDOUT: %T.loc31_25.1 => constants.%T.4a7 -// CHECK:STDOUT: %pattern_type.loc31_25 => constants.%pattern_type.577 -// CHECK:STDOUT: %T.as_type.loc31_50.1 => constants.%T.as_type.b3d -// CHECK:STDOUT: %pattern_type.loc31_48 => constants.%pattern_type.089 -// CHECK:STDOUT: %pattern_type.loc31_64 => constants.%pattern_type.3ff +// CHECK:STDOUT: specific @Feed(constants.%Food.196, constants.%T.b01) { +// CHECK:STDOUT: %Food.loc31_13.1 => constants.%Food.196 +// CHECK:STDOUT: %Food.as_type.loc31_37.1 => constants.%Food.as_type.bca +// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.eb4 +// CHECK:STDOUT: %T.loc31_25.1 => constants.%T.b01 +// CHECK:STDOUT: %pattern_type.loc31_25 => constants.%pattern_type.560 +// CHECK:STDOUT: %T.as_type.loc31_50.1 => constants.%T.as_type.b84 +// CHECK:STDOUT: %pattern_type.loc31_48 => constants.%pattern_type.371 +// CHECK:STDOUT: %pattern_type.loc31_64 => constants.%pattern_type.e40 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HandleAnimal(constants.%A, constants.%Food.9ee) { +// CHECK:STDOUT: specific @HandleAnimal(constants.%A, constants.%Food.5f8) { // CHECK:STDOUT: %A.loc32_18.1 => constants.%A -// CHECK:STDOUT: %Food.loc32_33.1 => constants.%Food.9ee +// CHECK:STDOUT: %Food.loc32_33.1 => constants.%Food.5f8 // CHECK:STDOUT: %A.as_type.loc32_47.1 => constants.%A.as_type -// CHECK:STDOUT: %pattern_type.loc32_45 => constants.%pattern_type.94e -// CHECK:STDOUT: %Food.as_type.loc32_56.1 => constants.%Food.as_type.cd6 -// CHECK:STDOUT: %pattern_type.loc32_54 => constants.%pattern_type.9ab +// CHECK:STDOUT: %pattern_type.loc32_45 => constants.%pattern_type.e90c +// CHECK:STDOUT: %Food.as_type.loc32_56.1 => constants.%Food.as_type.24e +// CHECK:STDOUT: %pattern_type.loc32_54 => constants.%pattern_type.ea8 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats(constants.%Food.as_type.cd6) { -// CHECK:STDOUT: %Food.loc21_20.1 => constants.%Food.as_type.cd6 +// CHECK:STDOUT: specific @Eats(constants.%Food.as_type.24e) { +// CHECK:STDOUT: %Food.loc21_20.1 => constants.%Food.as_type.24e // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.Eats.impl(constants.%A, constants.%Food.9ee) { +// CHECK:STDOUT: specific @T.as_type.as.Eats.impl(constants.%A, constants.%Food.5f8) { // CHECK:STDOUT: %T.loc26_15.2 => constants.%A -// CHECK:STDOUT: %U.loc26_27.2 => constants.%Food.9ee +// CHECK:STDOUT: %U.loc26_27.2 => constants.%Food.5f8 // CHECK:STDOUT: %T.as_type.loc26_38.2 => constants.%A.as_type -// CHECK:STDOUT: %U.as_type.loc26_49.2 => constants.%Food.as_type.cd6 -// CHECK:STDOUT: %Eats.type.loc26_49.2 => constants.%Eats.type.319b68.2 -// CHECK:STDOUT: %Eats.impl_witness.loc26_51.2 => constants.%Eats.impl_witness.bf7f94.2 +// CHECK:STDOUT: %U.as_type.loc26_49.2 => constants.%Food.as_type.24e +// CHECK:STDOUT: %Eats.type.loc26_49.2 => constants.%Eats.type.ceea62.2 +// CHECK:STDOUT: %Eats.impl_witness.loc26_51.2 => constants.%Eats.impl_witness.4ca0a7.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.9d6a3d.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.54fb7e.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%Food.9ee, constants.%Eats.facet.b86) { -// CHECK:STDOUT: %Food.loc31_13.1 => constants.%Food.9ee -// CHECK:STDOUT: %Food.as_type.loc31_37.1 => constants.%Food.as_type.cd6 -// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.319b68.2 -// CHECK:STDOUT: %T.loc31_25.1 => constants.%Eats.facet.b86 -// CHECK:STDOUT: %pattern_type.loc31_25 => constants.%pattern_type.0f2 +// CHECK:STDOUT: specific @Feed(constants.%Food.5f8, constants.%Eats.facet.f11) { +// CHECK:STDOUT: %Food.loc31_13.1 => constants.%Food.5f8 +// CHECK:STDOUT: %Food.as_type.loc31_37.1 => constants.%Food.as_type.24e +// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.ceea62.2 +// CHECK:STDOUT: %T.loc31_25.1 => constants.%Eats.facet.f11 +// CHECK:STDOUT: %pattern_type.loc31_25 => constants.%pattern_type.efc // CHECK:STDOUT: %T.as_type.loc31_50.1 => constants.%A.as_type -// CHECK:STDOUT: %pattern_type.loc31_48 => constants.%pattern_type.94e -// CHECK:STDOUT: %pattern_type.loc31_64 => constants.%pattern_type.9ab +// CHECK:STDOUT: %pattern_type.loc31_48 => constants.%pattern_type.e90c +// CHECK:STDOUT: %pattern_type.loc31_64 => constants.%pattern_type.ea8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc31_48 => constants.%require_complete.b5c -// CHECK:STDOUT: %require_complete.loc31_64 => constants.%require_complete.8e7 +// CHECK:STDOUT: %require_complete.loc31_48 => constants.%require_complete.db4 +// CHECK:STDOUT: %require_complete.loc31_64 => constants.%require_complete.3cc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%Animal.facet, constants.%Edible.facet) { // CHECK:STDOUT: %A.loc32_18.1 => constants.%Animal.facet // CHECK:STDOUT: %Food.loc32_33.1 => constants.%Edible.facet // CHECK:STDOUT: %A.as_type.loc32_47.1 => constants.%Goat -// CHECK:STDOUT: %pattern_type.loc32_45 => constants.%pattern_type.bea +// CHECK:STDOUT: %pattern_type.loc32_45 => constants.%pattern_type.283 // CHECK:STDOUT: %Food.as_type.loc32_56.1 => constants.%Grass -// CHECK:STDOUT: %pattern_type.loc32_54 => constants.%pattern_type.2e1 +// CHECK:STDOUT: %pattern_type.loc32_54 => constants.%pattern_type.92e // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc32_45 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc32_54 => constants.%complete_type.357 -// CHECK:STDOUT: %.loc32_76.3 => constants.%.374 -// CHECK:STDOUT: %Eats.type => constants.%Eats.type.3cb -// CHECK:STDOUT: %Eats.lookup_impl_witness => constants.%Eats.impl_witness.419 -// CHECK:STDOUT: %Eats.facet.loc32_76.2 => constants.%Eats.facet.750 -// CHECK:STDOUT: %Feed.specific_fn.loc32_64.2 => constants.%Feed.specific_fn.137 +// CHECK:STDOUT: %.loc32_76.3 => constants.%.86e +// CHECK:STDOUT: %Eats.type => constants.%Eats.type.682 +// CHECK:STDOUT: %Eats.lookup_impl_witness => constants.%Eats.impl_witness.fd5 +// CHECK:STDOUT: %Eats.facet.loc32_76.2 => constants.%Eats.facet.d00 +// CHECK:STDOUT: %Feed.specific_fn.loc32_64.2 => constants.%Feed.specific_fn.166 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as_type.as.Eats.impl(constants.%Animal.facet, constants.%Edible.facet) { @@ -587,34 +587,34 @@ fn F() { // CHECK:STDOUT: %U.loc26_27.2 => constants.%Edible.facet // CHECK:STDOUT: %T.as_type.loc26_38.2 => constants.%Goat // CHECK:STDOUT: %U.as_type.loc26_49.2 => constants.%Grass -// CHECK:STDOUT: %Eats.type.loc26_49.2 => constants.%Eats.type.3cb -// CHECK:STDOUT: %Eats.impl_witness.loc26_51.2 => constants.%Eats.impl_witness.419 +// CHECK:STDOUT: %Eats.type.loc26_49.2 => constants.%Eats.type.682 +// CHECK:STDOUT: %Eats.impl_witness.loc26_51.2 => constants.%Eats.impl_witness.fd5 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.3a7 +// CHECK:STDOUT: %require_complete => constants.%complete_type.70f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Eats(constants.%Grass) { // CHECK:STDOUT: %Food.loc21_20.1 => constants.%Grass // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Eats.type => constants.%Eats.type.3cb -// CHECK:STDOUT: %Self.loc21_29.2 => constants.%Self.62f +// CHECK:STDOUT: %Eats.type => constants.%Eats.type.682 +// CHECK:STDOUT: %Self.loc21_29.2 => constants.%Self.3ec // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Grass, constants.%Self.e81) { +// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Grass, constants.%Self.db3) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%Edible.facet, constants.%Eats.facet.750) { +// CHECK:STDOUT: specific @Feed(constants.%Edible.facet, constants.%Eats.facet.d00) { // CHECK:STDOUT: %Food.loc31_13.1 => constants.%Edible.facet // CHECK:STDOUT: %Food.as_type.loc31_37.1 => constants.%Grass -// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.3cb -// CHECK:STDOUT: %T.loc31_25.1 => constants.%Eats.facet.750 -// CHECK:STDOUT: %pattern_type.loc31_25 => constants.%pattern_type.9ca +// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.682 +// CHECK:STDOUT: %T.loc31_25.1 => constants.%Eats.facet.d00 +// CHECK:STDOUT: %pattern_type.loc31_25 => constants.%pattern_type.a69 // CHECK:STDOUT: %T.as_type.loc31_50.1 => constants.%Goat -// CHECK:STDOUT: %pattern_type.loc31_48 => constants.%pattern_type.bea -// CHECK:STDOUT: %pattern_type.loc31_64 => constants.%pattern_type.2e1 +// CHECK:STDOUT: %pattern_type.loc31_48 => constants.%pattern_type.283 +// CHECK:STDOUT: %pattern_type.loc31_64 => constants.%pattern_type.92e // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc31_48 => constants.%complete_type.357 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 b008561379eb..1a7de9c114ec 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 @@ -29,20 +29,20 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Animal.type: type = facet_type <@Animal> [concrete] -// CHECK:STDOUT: %Self.1ff: %Animal.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.f00: %Animal.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.5a8: type = pattern_type %Animal.type [concrete] +// CHECK:STDOUT: %pattern_type.333: type = pattern_type %Animal.type [concrete] // CHECK:STDOUT: %T: %Animal.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.94e: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.e90: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %FeedAnimal.type: type = fn_type @FeedAnimal [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %FeedAnimal: %FeedAnimal.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete] // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %FeedAnimal.specific_fn.a0f: = specific_function %FeedAnimal, @FeedAnimal(%T) [symbolic] +// CHECK:STDOUT: %FeedAnimal.specific_fn.5bd: = specific_function %FeedAnimal, @FeedAnimal(%T) [symbolic] // CHECK:STDOUT: %Goat: type = class_type @Goat [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] @@ -52,14 +52,14 @@ fn F() { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %Goat.val: %Goat = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.bea: type = pattern_type %Goat [concrete] +// CHECK:STDOUT: %pattern_type.283: type = pattern_type %Goat [concrete] // CHECK:STDOUT: %HandleAnimal.specific_fn: = specific_function %HandleAnimal, @HandleAnimal(%Animal.facet) [concrete] -// CHECK:STDOUT: %.e6d: ref %Goat = temporary invalid, %Goat.val [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.790b3b.2: type = fn_type @Destroy.Op.loc25_19.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e6d, %Destroy.Op.2dd605.2 [concrete] -// CHECK:STDOUT: %FeedAnimal.specific_fn.628: = specific_function %FeedAnimal, @FeedAnimal(%Animal.facet) [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: %FeedAnimal.specific_fn.42c: = specific_function %FeedAnimal, @FeedAnimal(%Animal.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -83,9 +83,9 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} // CHECK:STDOUT: %FeedAnimal.decl: %FeedAnimal.type = fn_decl @FeedAnimal [concrete = constants.%FeedAnimal] { -// CHECK:STDOUT: %T.patt: %pattern_type.5a8 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @FeedAnimal.%pattern_type (%pattern_type.94e) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @FeedAnimal.%pattern_type (%pattern_type.94e) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.333 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %a.param_patt: @FeedAnimal.%pattern_type (%pattern_type.e90) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @FeedAnimal.%pattern_type (%pattern_type.e90) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc17_19: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -101,9 +101,9 @@ fn F() { // CHECK:STDOUT: %a: @FeedAnimal.%T.as_type.loc17_37.1 (%T.as_type) = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { -// CHECK:STDOUT: %T.patt: %pattern_type.5a8 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.94e) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.94e) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.333 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.e90) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.e90) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc19_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -127,7 +127,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Animal { -// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.1ff] +// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f00] // CHECK:STDOUT: %Animal.WithSelf.decl = interface_with_self_decl @Animal [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -157,7 +157,7 @@ fn F() { // CHECK:STDOUT: generic fn @FeedAnimal(%T.loc17_16.2: %Animal.type) { // CHECK:STDOUT: %T.loc17_16.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc17_16.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc17_37.1: type = facet_access_type %T.loc17_16.1 [symbolic = %T.as_type.loc17_37.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc17_37.1 [symbolic = %pattern_type (constants.%pattern_type.94e)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc17_37.1 [symbolic = %pattern_type (constants.%pattern_type.e90)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc17_37.1 [symbolic = %require_complete (constants.%require_complete)] @@ -171,18 +171,18 @@ fn F() { // CHECK:STDOUT: generic fn @HandleAnimal(%T.loc19_18.2: %Animal.type) { // CHECK:STDOUT: %T.loc19_18.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc19_18.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc19_32.1: type = facet_access_type %T.loc19_18.1 [symbolic = %T.as_type.loc19_32.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc19_32.1 [symbolic = %pattern_type (constants.%pattern_type.94e)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc19_32.1 [symbolic = %pattern_type (constants.%pattern_type.e90)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc19_32.1 [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_37.2: = specific_function constants.%FeedAnimal, @FeedAnimal(%T.loc19_18.1) [symbolic = %FeedAnimal.specific_fn.loc19_37.2 (constants.%FeedAnimal.specific_fn.a0f)] +// CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_37.2: = specific_function constants.%FeedAnimal, @FeedAnimal(%T.loc19_18.1) [symbolic = %FeedAnimal.specific_fn.loc19_37.2 (constants.%FeedAnimal.specific_fn.5bd)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc19_32.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %FeedAnimal.ref: %FeedAnimal.type = name_ref FeedAnimal, file.%FeedAnimal.decl [concrete = constants.%FeedAnimal] // CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc19_32.1 (%T.as_type) = name_ref a, %a // CHECK:STDOUT: %.loc19_49: %Animal.type = converted constants.%T.as_type, constants.%T [symbolic = %T.loc19_18.1 (constants.%T)] -// CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_37.1: = specific_function %FeedAnimal.ref, @FeedAnimal(constants.%T) [symbolic = %FeedAnimal.specific_fn.loc19_37.2 (constants.%FeedAnimal.specific_fn.a0f)] +// CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_37.1: = specific_function %FeedAnimal.ref, @FeedAnimal(constants.%T) [symbolic = %FeedAnimal.specific_fn.loc19_37.2 (constants.%FeedAnimal.specific_fn.5bd)] // CHECK:STDOUT: %FeedAnimal.call: init %empty_tuple.type = call %FeedAnimal.specific_fn.loc19_37.1(%a.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -199,10 +199,10 @@ fn F() { // CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value constants.%Goat, (constants.%Animal.impl_witness) [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc25_26: %Animal.type = converted constants.%Goat, %Animal.facet [concrete = constants.%Animal.facet] // CHECK:STDOUT: %HandleAnimal.specific_fn: = specific_function %HandleAnimal.ref, @HandleAnimal(constants.%Animal.facet) [concrete = constants.%HandleAnimal.specific_fn] -// CHECK:STDOUT: %.loc25_19.2: ref %Goat = temporary %.loc25_17.2, %.loc25_19.1 [concrete = constants.%.e6d] +// 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.%.e6d) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.4ea) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -213,14 +213,14 @@ fn F() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.1ff) { +// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.f00) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedAnimal(constants.%T) { // CHECK:STDOUT: %T.loc17_16.1 => constants.%T // CHECK:STDOUT: %T.as_type.loc17_37.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.94e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e90 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete @@ -229,7 +229,7 @@ fn F() { // CHECK:STDOUT: specific @HandleAnimal(constants.%T) { // CHECK:STDOUT: %T.loc19_18.1 => constants.%T // CHECK:STDOUT: %T.as_type.loc19_32.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.94e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Animal.WithSelf(constants.%Animal.facet) { @@ -239,17 +239,17 @@ fn F() { // CHECK:STDOUT: specific @HandleAnimal(constants.%Animal.facet) { // CHECK:STDOUT: %T.loc19_18.1 => constants.%Animal.facet // CHECK:STDOUT: %T.as_type.loc19_32.1 => constants.%Goat -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bea +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.283 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type -// CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_37.2 => constants.%FeedAnimal.specific_fn.628 +// CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_37.2 => constants.%FeedAnimal.specific_fn.42c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedAnimal(constants.%Animal.facet) { // CHECK:STDOUT: %T.loc17_16.1 => constants.%Animal.facet // CHECK:STDOUT: %T.as_type.loc17_37.1 => constants.%Goat -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bea +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.283 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type diff --git a/toolchain/check/testdata/facet/convert_interface.carbon b/toolchain/check/testdata/facet/convert_interface.carbon index 57fe66bd4669..c60ec920a57d 100644 --- a/toolchain/check/testdata/facet/convert_interface.carbon +++ b/toolchain/check/testdata/facet/convert_interface.carbon @@ -26,9 +26,9 @@ fn G() { F(Animal); } // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Eats.type: type = facet_type <@Eats> [concrete] -// CHECK:STDOUT: %Self.d7f: %Eats.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.23e: %Eats.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Animal.type: type = facet_type <@Animal> [concrete] -// CHECK:STDOUT: %Self.1ff: %Animal.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.f00: %Animal.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Eats.impl_witness: = impl_witness @Animal.type.as.Eats.impl.%Eats.impl_witness_table [concrete] // CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %Animal.type, (%Eats.impl_witness) [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %Eats.type [concrete] @@ -73,7 +73,7 @@ fn G() { F(Animal); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Eats { -// CHECK:STDOUT: %Self: %Eats.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d7f] +// CHECK:STDOUT: %Self: %Eats.type = symbolic_binding Self, 0 [symbolic = constants.%Self.23e] // CHECK:STDOUT: %Eats.WithSelf.decl = interface_with_self_decl @Eats [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -84,7 +84,7 @@ fn G() { F(Animal); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Animal { -// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.1ff] +// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f00] // CHECK:STDOUT: %Animal.WithSelf.decl = interface_with_self_decl @Animal [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -118,11 +118,11 @@ fn G() { F(Animal); } // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Self.d7f) { +// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Self.23e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.1ff) {} +// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.f00) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Eats.WithSelf(constants.%Eats.facet) { // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/facet/facet_assoc_const.carbon b/toolchain/check/testdata/facet/facet_assoc_const.carbon index 78d99ca62fe9..61f7da7d5591 100644 --- a/toolchain/check/testdata/facet/facet_assoc_const.carbon +++ b/toolchain/check/testdata/facet/facet_assoc_const.carbon @@ -649,9 +649,9 @@ fn F(unused T:! I & J where .I1 = .J1.I2) {} // CHECK:STDOUT: %assoc2: %M.assoc_type = assoc_entity element2, @M.WithSelf.%Z [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.12c: %M.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.12c [symbolic_self] -// CHECK:STDOUT: %M.lookup_impl_witness: = lookup_impl_witness %.Self.12c, @M [symbolic_self] +// CHECK:STDOUT: %.Self.807: %M.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.807 [symbolic_self] +// CHECK:STDOUT: %M.lookup_impl_witness: = lookup_impl_witness %.Self.807, @M [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %M.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access %M.lookup_impl_witness, element1 [symbolic_self] // CHECK:STDOUT: %impl.elem2: type = impl_witness_access %M.lookup_impl_witness, element2 [symbolic_self] @@ -668,29 +668,29 @@ fn F(unused T:! I & J where .I1 = .J1.I2) {} // CHECK:STDOUT: %.loc13_19.1: type = splice_block %.loc13_19.2 [concrete = ] { // CHECK:STDOUT: %.Self.loc13_14: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %M.ref: type = name_ref M, file.%M.decl [concrete = constants.%M.type] -// CHECK:STDOUT: %.Self.loc13_19: %M.type = symbolic_binding .Self [symbolic_self = constants.%.Self.12c] -// CHECK:STDOUT: %.Self.ref.loc13_25: %M.type = name_ref .Self, %.Self.loc13_19 [symbolic_self = constants.%.Self.12c] +// CHECK:STDOUT: %.Self.loc13_19: %M.type = symbolic_binding .Self [symbolic_self = constants.%.Self.807] +// CHECK:STDOUT: %.Self.ref.loc13_25: %M.type = name_ref .Self, %.Self.loc13_19 [symbolic_self = constants.%.Self.807] // CHECK:STDOUT: %.Self.as_type.loc13_25: type = facet_access_type %.Self.ref.loc13_25 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc13_25: type = converted %.Self.ref.loc13_25, %.Self.as_type.loc13_25 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref.loc13_25: %M.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc13_25: type = impl_witness_access constants.%M.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] -// CHECK:STDOUT: %.Self.ref.loc13_30: %M.type = name_ref .Self, %.Self.loc13_19 [symbolic_self = constants.%.Self.12c] +// CHECK:STDOUT: %.Self.ref.loc13_30: %M.type = name_ref .Self, %.Self.loc13_19 [symbolic_self = constants.%.Self.807] // CHECK:STDOUT: %.Self.as_type.loc13_30: type = facet_access_type %.Self.ref.loc13_30 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc13_30: type = converted %.Self.ref.loc13_30, %.Self.as_type.loc13_30 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Y.ref.loc13_30: %M.assoc_type = name_ref Y, @Y.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1.loc13_30: type = impl_witness_access constants.%M.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] -// CHECK:STDOUT: %.Self.ref.loc13_37: %M.type = name_ref .Self, %.Self.loc13_19 [symbolic_self = constants.%.Self.12c] +// CHECK:STDOUT: %.Self.ref.loc13_37: %M.type = name_ref .Self, %.Self.loc13_19 [symbolic_self = constants.%.Self.807] // CHECK:STDOUT: %.Self.as_type.loc13_37: type = facet_access_type %.Self.ref.loc13_37 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc13_37: type = converted %.Self.ref.loc13_37, %.Self.as_type.loc13_37 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Y.ref.loc13_37: %M.assoc_type = name_ref Y, @Y.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1.loc13_37: type = impl_witness_access constants.%M.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] -// CHECK:STDOUT: %.Self.ref.loc13_42: %M.type = name_ref .Self, %.Self.loc13_19 [symbolic_self = constants.%.Self.12c] +// CHECK:STDOUT: %.Self.ref.loc13_42: %M.type = name_ref .Self, %.Self.loc13_19 [symbolic_self = constants.%.Self.807] // CHECK:STDOUT: %.Self.as_type.loc13_42: type = facet_access_type %.Self.ref.loc13_42 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc13_42: type = converted %.Self.ref.loc13_42, %.Self.as_type.loc13_42 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref.loc13_42: %M.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc13_42: type = impl_witness_access constants.%M.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst: type = impl_witness_access_substituted %impl.elem0.loc13_42, %impl.elem1.loc13_30 [symbolic_self = constants.%impl.elem1] -// CHECK:STDOUT: %.Self.ref.loc13_49: %M.type = name_ref .Self, %.Self.loc13_19 [symbolic_self = constants.%.Self.12c] +// CHECK:STDOUT: %.Self.ref.loc13_49: %M.type = name_ref .Self, %.Self.loc13_19 [symbolic_self = constants.%.Self.807] // CHECK:STDOUT: %.Self.as_type.loc13_49: type = facet_access_type %.Self.ref.loc13_49 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc13_49: type = converted %.Self.ref.loc13_49, %.Self.as_type.loc13_49 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Z.ref: %M.assoc_type = name_ref Z, @Z.%assoc2 [concrete = constants.%assoc2] diff --git a/toolchain/check/testdata/facet/fail_convert_class_type_to_generic_facet_value.carbon b/toolchain/check/testdata/facet/fail_convert_class_type_to_generic_facet_value.carbon index 82a08e385b57..1c9d74080e4a 100644 --- a/toolchain/check/testdata/facet/fail_convert_class_type_to_generic_facet_value.carbon +++ b/toolchain/check/testdata/facet/fail_convert_class_type_to_generic_facet_value.carbon @@ -44,35 +44,35 @@ fn G() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %Scalar: type = symbolic_binding Scalar, 0 [symbolic] -// CHECK:STDOUT: %Generic.type.df8: type = generic_interface_type @Generic [concrete] -// CHECK:STDOUT: %Generic.generic: %Generic.type.df8 = struct_value () [concrete] -// CHECK:STDOUT: %Generic.type.79a857.1: type = facet_type <@Generic, @Generic(%Scalar)> [symbolic] -// CHECK:STDOUT: %Self.34f: %Generic.type.79a857.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.type.882: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%Scalar, %Self.34f) [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.6a7: %Generic.WithSelf.F.type.882 = struct_value () [symbolic] -// CHECK:STDOUT: %Generic.assoc_type.bf8: type = assoc_entity_type @Generic, @Generic(%Scalar) [symbolic] -// CHECK:STDOUT: %assoc0.0c6: %Generic.assoc_type.bf8 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %Generic.type.30d: type = generic_interface_type @Generic [concrete] +// CHECK:STDOUT: %Generic.generic: %Generic.type.30d = struct_value () [concrete] +// CHECK:STDOUT: %Generic.type.ee14e9.1: type = facet_type <@Generic, @Generic(%Scalar)> [symbolic] +// CHECK:STDOUT: %Self.8ea: %Generic.type.ee14e9.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.type.390: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%Scalar, %Self.8ea) [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.b85: %Generic.WithSelf.F.type.390 = struct_value () [symbolic] +// CHECK:STDOUT: %Generic.assoc_type.d70: type = assoc_entity_type @Generic, @Generic(%Scalar) [symbolic] +// CHECK:STDOUT: %assoc0.310: %Generic.assoc_type.d70 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] // CHECK:STDOUT: %GenericParam: type = class_type @GenericParam [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %WrongGenericParam: type = class_type @WrongGenericParam [concrete] // CHECK:STDOUT: %ImplsGeneric: type = class_type @ImplsGeneric [concrete] -// CHECK:STDOUT: %Generic.type.fa5: type = facet_type <@Generic, @Generic(%GenericParam)> [concrete] +// CHECK:STDOUT: %Generic.type.b40: type = facet_type <@Generic, @Generic(%GenericParam)> [concrete] // CHECK:STDOUT: %Generic.impl_witness: = impl_witness @ImplsGeneric.as.Generic.impl.%Generic.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.e96: %Generic.type.fa5 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.type.d27: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Self.34f) [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.87f: %Generic.WithSelf.F.type.d27 = struct_value () [symbolic] -// CHECK:STDOUT: %Generic.assoc_type.748: type = assoc_entity_type @Generic, @Generic(%GenericParam) [concrete] -// CHECK:STDOUT: %assoc0.6aa: %Generic.assoc_type.748 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %Self.685: %Generic.type.b40 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.type.e39: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Self.8ea) [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.d19: %Generic.WithSelf.F.type.e39 = struct_value () [symbolic] +// CHECK:STDOUT: %Generic.assoc_type.c13: type = assoc_entity_type @Generic, @Generic(%GenericParam) [concrete] +// CHECK:STDOUT: %assoc0.b4a: %Generic.assoc_type.c13 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [concrete] // CHECK:STDOUT: %ImplsGeneric.as.Generic.impl.F.type: type = fn_type @ImplsGeneric.as.Generic.impl.F [concrete] // CHECK:STDOUT: %ImplsGeneric.as.Generic.impl.F: %ImplsGeneric.as.Generic.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %Generic.facet: %Generic.type.fa5 = facet_value %ImplsGeneric, (%Generic.impl_witness) [concrete] -// CHECK:STDOUT: %Generic.WithSelf.F.type.52a: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Generic.facet) [concrete] -// CHECK:STDOUT: %Generic.WithSelf.F.a3a: %Generic.WithSelf.F.type.52a = struct_value () [concrete] +// CHECK:STDOUT: %Generic.facet: %Generic.type.b40 = facet_value %ImplsGeneric, (%Generic.impl_witness) [concrete] +// CHECK:STDOUT: %Generic.WithSelf.F.type.c45: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Generic.facet) [concrete] +// CHECK:STDOUT: %Generic.WithSelf.F.d7c: %Generic.WithSelf.F.type.c45 = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Generic.type.79a857.2: type = facet_type <@Generic, @Generic(%T)> [symbolic] -// CHECK:STDOUT: %pattern_type.31c: type = pattern_type %Generic.type.79a857.2 [symbolic] -// CHECK:STDOUT: %U: %Generic.type.79a857.2 = symbolic_binding U, 1 [symbolic] +// CHECK:STDOUT: %Generic.type.ee14e9.2: type = facet_type <@Generic, @Generic(%T)> [symbolic] +// CHECK:STDOUT: %pattern_type.4e0: type = pattern_type %Generic.type.ee14e9.2 [symbolic] +// CHECK:STDOUT: %U: %Generic.type.ee14e9.2 = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %CallGenericMethod.type: type = fn_type @CallGenericMethod [concrete] // CHECK:STDOUT: %CallGenericMethod: %CallGenericMethod.type = struct_value () [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] @@ -97,7 +97,7 @@ fn G() { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %Generic.decl: %Generic.type.df8 = interface_decl @Generic [concrete = constants.%Generic.generic] { +// CHECK:STDOUT: %Generic.decl: %Generic.type.30d = interface_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %Scalar.patt: %pattern_type.98f = symbolic_binding_pattern Scalar, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_28.1: type = splice_block %.loc15_28.2 [concrete = type] { @@ -111,26 +111,26 @@ fn G() { // CHECK:STDOUT: %ImplsGeneric.decl: type = class_decl @ImplsGeneric [concrete = constants.%ImplsGeneric] {} {} // CHECK:STDOUT: impl_decl @ImplsGeneric.as.Generic.impl [concrete] {} { // CHECK:STDOUT: %ImplsGeneric.ref: type = name_ref ImplsGeneric, file.%ImplsGeneric.decl [concrete = constants.%ImplsGeneric] -// CHECK:STDOUT: %Generic.ref: %Generic.type.df8 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] +// CHECK:STDOUT: %Generic.ref: %Generic.type.30d = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] // CHECK:STDOUT: %GenericParam.ref: type = name_ref GenericParam, file.%GenericParam.decl [concrete = constants.%GenericParam] -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%GenericParam)> [concrete = constants.%Generic.type.fa5] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%GenericParam)> [concrete = constants.%Generic.type.b40] // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericMethod.decl: %CallGenericMethod.type = fn_decl @CallGenericMethod [concrete = constants.%CallGenericMethod] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type (%pattern_type.31c) = symbolic_binding_pattern U, 1 [concrete] +// CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type (%pattern_type.4e0) = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc27_26.1: type = splice_block %.loc27_26.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc27_23: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc27_26.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc27_23.2: type = symbolic_binding T, 0 [symbolic = %T.loc27_23.1 (constants.%T)] -// CHECK:STDOUT: %.loc27_52: type = splice_block %Generic.type.loc27_52.2 [symbolic = %Generic.type.loc27_52.1 (constants.%Generic.type.79a857.2)] { +// CHECK:STDOUT: %.loc27_52: type = splice_block %Generic.type.loc27_52.2 [symbolic = %Generic.type.loc27_52.1 (constants.%Generic.type.ee14e9.2)] { // CHECK:STDOUT: %.Self.loc27_40: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Generic.ref: %Generic.type.df8 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] +// CHECK:STDOUT: %Generic.ref: %Generic.type.30d = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc27_23.2 [symbolic = %T.loc27_23.1 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc27_52.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc27_52.1 (constants.%Generic.type.79a857.2)] +// CHECK:STDOUT: %Generic.type.loc27_52.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc27_52.1 (constants.%Generic.type.ee14e9.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc27_40.2: @CallGenericMethod.%Generic.type.loc27_52.1 (%Generic.type.79a857.2) = symbolic_binding U, 1 [symbolic = %U.loc27_40.1 (constants.%U)] +// CHECK:STDOUT: %U.loc27_40.2: @CallGenericMethod.%Generic.type.loc27_52.1 (%Generic.type.ee14e9.2) = symbolic_binding U, 1 [symbolic = %U.loc27_40.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } @@ -139,16 +139,16 @@ fn G() { // CHECK:STDOUT: %Scalar.loc15_25.1: type = symbolic_binding Scalar, 0 [symbolic = %Scalar.loc15_25.1 (constants.%Scalar)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc15_25.1)> [symbolic = %Generic.type (constants.%Generic.type.79a857.1)] -// CHECK:STDOUT: %Self.loc15_34.2: @Generic.%Generic.type (%Generic.type.79a857.1) = symbolic_binding Self, 1 [symbolic = %Self.loc15_34.2 (constants.%Self.34f)] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc15_25.1)> [symbolic = %Generic.type (constants.%Generic.type.ee14e9.1)] +// CHECK:STDOUT: %Self.loc15_34.2: @Generic.%Generic.type (%Generic.type.ee14e9.1) = symbolic_binding Self, 1 [symbolic = %Self.loc15_34.2 (constants.%Self.8ea)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc15_34.1: @Generic.%Generic.type (%Generic.type.79a857.1) = symbolic_binding Self, 1 [symbolic = %Self.loc15_34.2 (constants.%Self.34f)] +// CHECK:STDOUT: %Self.loc15_34.1: @Generic.%Generic.type (%Generic.type.ee14e9.1) = symbolic_binding Self, 1 [symbolic = %Self.loc15_34.2 (constants.%Self.8ea)] // CHECK:STDOUT: %Generic.WithSelf.decl = interface_with_self_decl @Generic [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Generic.WithSelf.F.decl: @Generic.WithSelf.%Generic.WithSelf.F.type (%Generic.WithSelf.F.type.882) = fn_decl @Generic.WithSelf.F [symbolic = @Generic.WithSelf.%Generic.WithSelf.F (constants.%Generic.WithSelf.F.6a7)] {} {} -// CHECK:STDOUT: %assoc0.loc16_9.1: @Generic.WithSelf.%Generic.assoc_type (%Generic.assoc_type.bf8) = assoc_entity element0, %Generic.WithSelf.F.decl [symbolic = %assoc0.loc16_9.2 (constants.%assoc0.0c6)] +// CHECK:STDOUT: %Generic.WithSelf.F.decl: @Generic.WithSelf.%Generic.WithSelf.F.type (%Generic.WithSelf.F.type.390) = fn_decl @Generic.WithSelf.F [symbolic = @Generic.WithSelf.%Generic.WithSelf.F (constants.%Generic.WithSelf.F.b85)] {} {} +// CHECK:STDOUT: %assoc0.loc16_9.1: @Generic.WithSelf.%Generic.assoc_type (%Generic.assoc_type.d70) = assoc_entity element0, %Generic.WithSelf.F.decl [symbolic = %assoc0.loc16_9.2 (constants.%assoc0.310)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc15_34.1 @@ -194,7 +194,7 @@ fn G() { // CHECK:STDOUT: .Self = constants.%ImplsGeneric // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Generic.WithSelf.F(@Generic.%Scalar.loc15_25.2: type, @Generic.%Self.loc15_34.1: @Generic.%Generic.type (%Generic.type.79a857.1)) { +// CHECK:STDOUT: generic fn @Generic.WithSelf.F(@Generic.%Scalar.loc15_25.2: type, @Generic.%Self.loc15_34.1: @Generic.%Generic.type (%Generic.type.ee14e9.1)) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: @@ -203,11 +203,11 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc27_23.2: type, %U.loc27_40.2: @CallGenericMethod.%Generic.type.loc27_52.1 (%Generic.type.79a857.2)) { +// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc27_23.2: type, %U.loc27_40.2: @CallGenericMethod.%Generic.type.loc27_52.1 (%Generic.type.ee14e9.2)) { // CHECK:STDOUT: %T.loc27_23.1: type = symbolic_binding T, 0 [symbolic = %T.loc27_23.1 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc27_52.1: type = facet_type <@Generic, @Generic(%T.loc27_23.1)> [symbolic = %Generic.type.loc27_52.1 (constants.%Generic.type.79a857.2)] -// CHECK:STDOUT: %U.loc27_40.1: @CallGenericMethod.%Generic.type.loc27_52.1 (%Generic.type.79a857.2) = symbolic_binding U, 1 [symbolic = %U.loc27_40.1 (constants.%U)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Generic.type.loc27_52.1 [symbolic = %pattern_type (constants.%pattern_type.31c)] +// CHECK:STDOUT: %Generic.type.loc27_52.1: type = facet_type <@Generic, @Generic(%T.loc27_23.1)> [symbolic = %Generic.type.loc27_52.1 (constants.%Generic.type.ee14e9.2)] +// CHECK:STDOUT: %U.loc27_40.1: @CallGenericMethod.%Generic.type.loc27_52.1 (%Generic.type.ee14e9.2) = symbolic_binding U, 1 [symbolic = %U.loc27_40.1 (constants.%U)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Generic.type.loc27_52.1 [symbolic = %pattern_type (constants.%pattern_type.4e0)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -229,38 +229,38 @@ fn G() { // CHECK:STDOUT: %Scalar.loc15_25.1 => constants.%Scalar // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf(constants.%Scalar, constants.%Self.34f) {} +// CHECK:STDOUT: specific @Generic.WithSelf(constants.%Scalar, constants.%Self.8ea) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%Scalar, constants.%Self.34f) {} +// CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%Scalar, constants.%Self.8ea) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%GenericParam) { // CHECK:STDOUT: %Scalar.loc15_25.1 => constants.%GenericParam // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.fa5 -// CHECK:STDOUT: %Self.loc15_34.2 => constants.%Self.e96 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.b40 +// CHECK:STDOUT: %Self.loc15_34.2 => constants.%Self.685 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf(constants.%GenericParam, constants.%Self.34f) { +// CHECK:STDOUT: specific @Generic.WithSelf(constants.%GenericParam, constants.%Self.8ea) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Scalar => constants.%GenericParam -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.fa5 -// CHECK:STDOUT: %Self => constants.%Self.34f -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.d27 -// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.87f -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.748 -// CHECK:STDOUT: %assoc0.loc16_9.2 => constants.%assoc0.6aa +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.b40 +// CHECK:STDOUT: %Self => constants.%Self.8ea +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.e39 +// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.d19 +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.c13 +// CHECK:STDOUT: %assoc0.loc16_9.2 => constants.%assoc0.b4a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.WithSelf(constants.%GenericParam, constants.%Generic.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Scalar => constants.%GenericParam -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.fa5 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.b40 // CHECK:STDOUT: %Self => constants.%Generic.facet -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.52a -// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.a3a -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.748 -// CHECK:STDOUT: %assoc0.loc16_9.2 => constants.%assoc0.6aa +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.c45 +// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.d7c +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.c13 +// CHECK:STDOUT: %assoc0.loc16_9.2 => constants.%assoc0.b4a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%GenericParam, constants.%Generic.facet) {} @@ -271,9 +271,9 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%T, constants.%U) { // CHECK:STDOUT: %T.loc27_23.1 => constants.%T -// CHECK:STDOUT: %Generic.type.loc27_52.1 => constants.%Generic.type.79a857.2 +// CHECK:STDOUT: %Generic.type.loc27_52.1 => constants.%Generic.type.ee14e9.2 // CHECK:STDOUT: %U.loc27_40.1 => constants.%U -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.31c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4e0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%WrongGenericParam) { diff --git a/toolchain/check/testdata/facet/fail_convert_facet_value_to_missing_impl.carbon b/toolchain/check/testdata/facet/fail_convert_facet_value_to_missing_impl.carbon index 0875bf47b4f9..8f50669e9f29 100644 --- a/toolchain/check/testdata/facet/fail_convert_facet_value_to_missing_impl.carbon +++ b/toolchain/check/testdata/facet/fail_convert_facet_value_to_missing_impl.carbon @@ -30,25 +30,25 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Eats.type: type = facet_type <@Eats> [concrete] -// CHECK:STDOUT: %Self.d7f: %Eats.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.23e: %Eats.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Animal.type: type = facet_type <@Animal> [concrete] -// CHECK:STDOUT: %Self.1ff: %Animal.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.f00: %Animal.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.3a5: type = pattern_type %Eats.type [concrete] -// CHECK:STDOUT: %T.ae6: %Eats.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.e42: type = facet_access_type %T.ae6 [symbolic] -// CHECK:STDOUT: %pattern_type.58d: type = pattern_type %T.as_type.e42 [symbolic] +// CHECK:STDOUT: %pattern_type.880: type = pattern_type %Eats.type [concrete] +// CHECK:STDOUT: %T.672: %Eats.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.422: type = facet_access_type %T.672 [symbolic] +// CHECK:STDOUT: %pattern_type.aed: type = pattern_type %T.as_type.422 [symbolic] // CHECK:STDOUT: %Feed.type: type = fn_type @Feed [concrete] // CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.019: = require_complete_type %T.as_type.e42 [symbolic] -// CHECK:STDOUT: %pattern_type.5a8: type = pattern_type %Animal.type [concrete] -// CHECK:STDOUT: %T.34b: %Animal.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.975: type = facet_access_type %T.34b [symbolic] -// CHECK:STDOUT: %pattern_type.94e: type = pattern_type %T.as_type.975 [symbolic] +// CHECK:STDOUT: %require_complete.c4d: = require_complete_type %T.as_type.422 [symbolic] +// CHECK:STDOUT: %pattern_type.333: type = pattern_type %Animal.type [concrete] +// CHECK:STDOUT: %T.443: %Animal.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.01d: type = facet_access_type %T.443 [symbolic] +// CHECK:STDOUT: %pattern_type.e90: type = pattern_type %T.as_type.01d [symbolic] // CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete] // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.b5c: = require_complete_type %T.as_type.975 [symbolic] +// CHECK:STDOUT: %require_complete.db4: = require_complete_type %T.as_type.01d [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -70,45 +70,45 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: %Eats.decl: type = interface_decl @Eats [concrete = constants.%Eats.type] {} {} // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} // CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] { -// CHECK:STDOUT: %T.patt: %pattern_type.3a5 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.58d) = value_param_pattern [concrete] -// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.58d) = at_binding_pattern e, %e.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.880 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.aed) = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.aed) = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc18_13: type = splice_block %Eats.ref [concrete = constants.%Eats.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc18_10.2: %Eats.type = symbolic_binding T, 0 [symbolic = %T.loc18_10.1 (constants.%T.ae6)] -// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc18_29.1 (%T.as_type.e42) = value_param call_param0 -// CHECK:STDOUT: %.loc18_29.1: type = splice_block %.loc18_29.2 [symbolic = %T.as_type.loc18_29.1 (constants.%T.as_type.e42)] { -// CHECK:STDOUT: %T.ref: %Eats.type = name_ref T, %T.loc18_10.2 [symbolic = %T.loc18_10.1 (constants.%T.ae6)] -// CHECK:STDOUT: %T.as_type.loc18_29.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc18_29.1 (constants.%T.as_type.e42)] -// CHECK:STDOUT: %.loc18_29.2: type = converted %T.ref, %T.as_type.loc18_29.2 [symbolic = %T.as_type.loc18_29.1 (constants.%T.as_type.e42)] +// CHECK:STDOUT: %T.loc18_10.2: %Eats.type = symbolic_binding T, 0 [symbolic = %T.loc18_10.1 (constants.%T.672)] +// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc18_29.1 (%T.as_type.422) = value_param call_param0 +// CHECK:STDOUT: %.loc18_29.1: type = splice_block %.loc18_29.2 [symbolic = %T.as_type.loc18_29.1 (constants.%T.as_type.422)] { +// CHECK:STDOUT: %T.ref: %Eats.type = name_ref T, %T.loc18_10.2 [symbolic = %T.loc18_10.1 (constants.%T.672)] +// CHECK:STDOUT: %T.as_type.loc18_29.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc18_29.1 (constants.%T.as_type.422)] +// CHECK:STDOUT: %.loc18_29.2: type = converted %T.ref, %T.as_type.loc18_29.2 [symbolic = %T.as_type.loc18_29.1 (constants.%T.as_type.422)] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: @Feed.%T.as_type.loc18_29.1 (%T.as_type.e42) = value_binding e, %e.param +// CHECK:STDOUT: %e: @Feed.%T.as_type.loc18_29.1 (%T.as_type.422) = value_binding e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { -// CHECK:STDOUT: %T.patt: %pattern_type.5a8 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.94e) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.94e) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.333 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.e90) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.e90) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc27_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc27_18.2: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc27_18.1 (constants.%T.34b)] -// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.975) = value_param call_param0 -// CHECK:STDOUT: %.loc27_32.1: type = splice_block %.loc27_32.2 [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.975)] { -// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc27_18.2 [symbolic = %T.loc27_18.1 (constants.%T.34b)] -// CHECK:STDOUT: %T.as_type.loc27_32.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.975)] -// CHECK:STDOUT: %.loc27_32.2: type = converted %T.ref, %T.as_type.loc27_32.2 [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.975)] +// CHECK:STDOUT: %T.loc27_18.2: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc27_18.1 (constants.%T.443)] +// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.01d) = value_param call_param0 +// CHECK:STDOUT: %.loc27_32.1: type = splice_block %.loc27_32.2 [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.01d)] { +// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc27_18.2 [symbolic = %T.loc27_18.1 (constants.%T.443)] +// CHECK:STDOUT: %T.as_type.loc27_32.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.01d)] +// CHECK:STDOUT: %.loc27_32.2: type = converted %T.ref, %T.as_type.loc27_32.2 [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.01d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.975) = value_binding a, %a.param +// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.01d) = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Eats { -// CHECK:STDOUT: %Self: %Eats.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d7f] +// CHECK:STDOUT: %Self: %Eats.type = symbolic_binding Self, 0 [symbolic = constants.%Self.23e] // CHECK:STDOUT: %Eats.WithSelf.decl = interface_with_self_decl @Eats [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -119,7 +119,7 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Animal { -// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.1ff] +// CHECK:STDOUT: %Self: %Animal.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f00] // CHECK:STDOUT: %Animal.WithSelf.decl = interface_with_self_decl @Animal [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -130,52 +130,52 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Feed(%T.loc18_10.2: %Eats.type) { -// CHECK:STDOUT: %T.loc18_10.1: %Eats.type = symbolic_binding T, 0 [symbolic = %T.loc18_10.1 (constants.%T.ae6)] -// CHECK:STDOUT: %T.as_type.loc18_29.1: type = facet_access_type %T.loc18_10.1 [symbolic = %T.as_type.loc18_29.1 (constants.%T.as_type.e42)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc18_29.1 [symbolic = %pattern_type (constants.%pattern_type.58d)] +// CHECK:STDOUT: %T.loc18_10.1: %Eats.type = symbolic_binding T, 0 [symbolic = %T.loc18_10.1 (constants.%T.672)] +// CHECK:STDOUT: %T.as_type.loc18_29.1: type = facet_access_type %T.loc18_10.1 [symbolic = %T.as_type.loc18_29.1 (constants.%T.as_type.422)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc18_29.1 [symbolic = %pattern_type (constants.%pattern_type.aed)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc18_29.1 [symbolic = %require_complete (constants.%require_complete.019)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc18_29.1 [symbolic = %require_complete (constants.%require_complete.c4d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc18_29.1 (%T.as_type.e42)) { +// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc18_29.1 (%T.as_type.422)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HandleAnimal(%T.loc27_18.2: %Animal.type) { -// CHECK:STDOUT: %T.loc27_18.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc27_18.1 (constants.%T.34b)] -// CHECK:STDOUT: %T.as_type.loc27_32.1: type = facet_access_type %T.loc27_18.1 [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.975)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc27_32.1 [symbolic = %pattern_type (constants.%pattern_type.94e)] +// CHECK:STDOUT: %T.loc27_18.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc27_18.1 (constants.%T.443)] +// CHECK:STDOUT: %T.as_type.loc27_32.1: type = facet_access_type %T.loc27_18.1 [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.01d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc27_32.1 [symbolic = %pattern_type (constants.%pattern_type.e90)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc27_32.1 [symbolic = %require_complete (constants.%require_complete.b5c)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc27_32.1 [symbolic = %require_complete (constants.%require_complete.db4)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.975)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.01d)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] -// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.975) = name_ref a, %a +// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.01d) = name_ref a, %a // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Self.d7f) { +// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Self.23e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.1ff) { +// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Self.f00) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%T.ae6) { -// CHECK:STDOUT: %T.loc18_10.1 => constants.%T.ae6 -// CHECK:STDOUT: %T.as_type.loc18_29.1 => constants.%T.as_type.e42 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.58d +// CHECK:STDOUT: specific @Feed(constants.%T.672) { +// CHECK:STDOUT: %T.loc18_10.1 => constants.%T.672 +// CHECK:STDOUT: %T.as_type.loc18_29.1 => constants.%T.as_type.422 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.aed // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HandleAnimal(constants.%T.34b) { -// CHECK:STDOUT: %T.loc27_18.1 => constants.%T.34b -// CHECK:STDOUT: %T.as_type.loc27_32.1 => constants.%T.as_type.975 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.94e +// CHECK:STDOUT: specific @HandleAnimal(constants.%T.443) { +// CHECK:STDOUT: %T.loc27_18.1 => constants.%T.443 +// CHECK:STDOUT: %T.as_type.loc27_32.1 => constants.%T.as_type.01d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e90 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon b/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon index 56376d3d0411..11fbe2bf0e4e 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 @@ -52,44 +52,44 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) { // CHECK:STDOUT: %HoldsType.type: type = generic_class_type @HoldsType [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %HoldsType.generic: %HoldsType.type = struct_value () [concrete] -// CHECK:STDOUT: %HoldsType.c9c: type = class_type @HoldsType, @HoldsType(%T) [symbolic] +// CHECK:STDOUT: %HoldsType.a83: type = class_type @HoldsType, @HoldsType(%T) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %RuntimeConvertFrom: type = class_type @RuntimeConvertFrom [concrete] // CHECK:STDOUT: %RuntimeConvertTo: type = class_type @RuntimeConvertTo [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.522: type = facet_type <@ImplicitAs, @ImplicitAs(%RuntimeConvertTo)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.286: type = facet_type <@ImplicitAs, @ImplicitAs(%RuntimeConvertTo)> [concrete] // CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness @RuntimeConvertFrom.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.2ff: type = pattern_type %RuntimeConvertFrom [concrete] -// CHECK:STDOUT: %.717: Core.Form = init_form %RuntimeConvertTo [concrete] -// CHECK:STDOUT: %pattern_type.110: type = pattern_type %RuntimeConvertTo [concrete] +// CHECK:STDOUT: %pattern_type.598: type = pattern_type %RuntimeConvertFrom [concrete] +// CHECK:STDOUT: %.aac: Core.Form = init_form %RuntimeConvertTo [concrete] +// CHECK:STDOUT: %pattern_type.c10: type = pattern_type %RuntimeConvertTo [concrete] // CHECK:STDOUT: %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.type: type = fn_type @RuntimeConvertFrom.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %RuntimeConvertFrom.as.ImplicitAs.impl.Convert: %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.522 = facet_value %RuntimeConvertFrom, (%ImplicitAs.impl_witness) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b67: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%RuntimeConvertTo, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.286 = facet_value %RuntimeConvertFrom, (%ImplicitAs.impl_witness) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f8a: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%RuntimeConvertTo, %ImplicitAs.facet) [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %RuntimeConvertTo.val: %RuntimeConvertTo = struct_value () [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %tuple.elem0: type = tuple_access %T, element0 [symbolic] // CHECK:STDOUT: %pattern_type.e66: type = pattern_type %tuple.elem0 [symbolic] // CHECK:STDOUT: %A: %tuple.elem0 = symbolic_binding A, 1 [symbolic] -// CHECK:STDOUT: %pattern_type.ad8: type = pattern_type %HoldsType.c9c [symbolic] +// CHECK:STDOUT: %pattern_type.b2f: type = pattern_type %HoldsType.a83 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %HoldsType.c9c [symbolic] -// CHECK:STDOUT: %tuple.1a3: %tuple.type = tuple_value (%RuntimeConvertTo) [concrete] -// CHECK:STDOUT: %HoldsType.90e: type = class_type @HoldsType, @HoldsType(%tuple.1a3) [concrete] -// CHECK:STDOUT: %pattern_type.bcd: type = pattern_type %HoldsType.90e [concrete] +// CHECK:STDOUT: %require_complete: = require_complete_type %HoldsType.a83 [symbolic] +// CHECK:STDOUT: %tuple.162: %tuple.type = tuple_value (%RuntimeConvertTo) [concrete] +// CHECK:STDOUT: %HoldsType.9f2: type = class_type @HoldsType, @HoldsType(%tuple.162) [concrete] +// CHECK:STDOUT: %pattern_type.905: type = pattern_type %HoldsType.9f2 [concrete] // CHECK:STDOUT: %from: %RuntimeConvertFrom = symbolic_binding from, 0 [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %.185: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b67, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %.820: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.f8a, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.bound: = bound_method %from, %RuntimeConvertFrom.as.ImplicitAs.impl.Convert [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc40_19.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -99,7 +99,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -129,15 +129,15 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) { // CHECK:STDOUT: impl_decl @RuntimeConvertFrom.as.ImplicitAs.impl [concrete] {} { // CHECK:STDOUT: %RuntimeConvertFrom.ref: type = name_ref RuntimeConvertFrom, file.%RuntimeConvertFrom.decl [concrete = constants.%RuntimeConvertFrom] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %RuntimeConvertTo.ref: type = name_ref RuntimeConvertTo, file.%RuntimeConvertTo.decl [concrete = constants.%RuntimeConvertTo] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%RuntimeConvertTo)> [concrete = constants.%ImplicitAs.type.522] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%RuntimeConvertTo)> [concrete = constants.%ImplicitAs.type.286] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.f1e = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %A.patt: @F.%pattern_type.loc27_28 (%pattern_type.e66) = symbolic_binding_pattern A, 1 [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc27_44 (%pattern_type.ad8) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc27_44 (%pattern_type.ad8) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type.loc27_44 (%pattern_type.b2f) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type.loc27_44 (%pattern_type.b2f) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc27_17.1: type = splice_block %.loc27_17.3 [concrete = constants.%tuple.type] { // CHECK:STDOUT: %.Self.loc27_7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -153,29 +153,29 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) { // CHECK:STDOUT: %tuple.elem0.loc27_32.2: type = tuple_access %T.ref.loc27_31, element0 [symbolic = %tuple.elem0.loc27_32.1 (constants.%tuple.elem0)] // CHECK:STDOUT: } // CHECK:STDOUT: %A.loc27_28.2: @F.%tuple.elem0.loc27_32.1 (%tuple.elem0) = symbolic_binding A, 1 [symbolic = %A.loc27_28.1 (constants.%A)] -// CHECK:STDOUT: %x.param: @F.%HoldsType.loc27_57.1 (%HoldsType.c9c) = value_param call_param0 -// CHECK:STDOUT: %.loc27_57: type = splice_block %HoldsType.loc27_57.2 [symbolic = %HoldsType.loc27_57.1 (constants.%HoldsType.c9c)] { +// CHECK:STDOUT: %x.param: @F.%HoldsType.loc27_57.1 (%HoldsType.a83) = value_param call_param0 +// CHECK:STDOUT: %.loc27_57: type = splice_block %HoldsType.loc27_57.2 [symbolic = %HoldsType.loc27_57.1 (constants.%HoldsType.a83)] { // CHECK:STDOUT: %HoldsType.ref: %HoldsType.type = name_ref HoldsType, file.%HoldsType.decl [concrete = constants.%HoldsType.generic] // CHECK:STDOUT: %T.ref.loc27_56: %tuple.type = name_ref T, %T.loc27_7.2 [symbolic = %T.loc27_7.1 (constants.%T)] -// CHECK:STDOUT: %HoldsType.loc27_57.2: type = class_type @HoldsType, @HoldsType(constants.%T) [symbolic = %HoldsType.loc27_57.1 (constants.%HoldsType.c9c)] +// CHECK:STDOUT: %HoldsType.loc27_57.2: type = class_type @HoldsType, @HoldsType(constants.%T) [symbolic = %HoldsType.loc27_57.1 (constants.%HoldsType.a83)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%HoldsType.loc27_57.1 (%HoldsType.c9c) = value_binding x, %x.param +// CHECK:STDOUT: %x: @F.%HoldsType.loc27_57.1 (%HoldsType.a83) = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %holds_to.param_patt: %pattern_type.bcd = value_param_pattern [concrete] -// CHECK:STDOUT: %holds_to.patt: %pattern_type.bcd = at_binding_pattern holds_to, %holds_to.param_patt [concrete] -// CHECK:STDOUT: %from.patt: %pattern_type.2ff = symbolic_binding_pattern from, 0 [concrete] +// CHECK:STDOUT: %holds_to.param_patt: %pattern_type.905 = value_param_pattern [concrete] +// CHECK:STDOUT: %holds_to.patt: %pattern_type.905 = at_binding_pattern holds_to, %holds_to.param_patt [concrete] +// CHECK:STDOUT: %from.patt: %pattern_type.598 = symbolic_binding_pattern from, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %holds_to.param: %HoldsType.90e = value_param call_param0 -// CHECK:STDOUT: %.loc29_46.1: type = splice_block %HoldsType [concrete = constants.%HoldsType.90e] { +// CHECK:STDOUT: %holds_to.param: %HoldsType.9f2 = value_param call_param0 +// CHECK:STDOUT: %.loc29_46.1: type = splice_block %HoldsType [concrete = constants.%HoldsType.9f2] { // CHECK:STDOUT: %HoldsType.ref: %HoldsType.type = name_ref HoldsType, file.%HoldsType.decl [concrete = constants.%HoldsType.generic] // CHECK:STDOUT: %RuntimeConvertTo.ref: type = name_ref RuntimeConvertTo, file.%RuntimeConvertTo.decl [concrete = constants.%RuntimeConvertTo] -// CHECK:STDOUT: %.loc29_45: %tuple.type = tuple_literal (%RuntimeConvertTo.ref) [concrete = constants.%tuple.1a3] -// CHECK:STDOUT: %tuple.loc29: %tuple.type = tuple_value (%RuntimeConvertTo.ref) [concrete = constants.%tuple.1a3] -// CHECK:STDOUT: %.loc29_46.2: %tuple.type = converted %.loc29_45, %tuple.loc29 [concrete = constants.%tuple.1a3] -// CHECK:STDOUT: %HoldsType: type = class_type @HoldsType, @HoldsType(constants.%tuple.1a3) [concrete = constants.%HoldsType.90e] +// CHECK:STDOUT: %.loc29_45: %tuple.type = tuple_literal (%RuntimeConvertTo.ref) [concrete = constants.%tuple.162] +// CHECK:STDOUT: %tuple.loc29: %tuple.type = tuple_value (%RuntimeConvertTo.ref) [concrete = constants.%tuple.162] +// CHECK:STDOUT: %.loc29_46.2: %tuple.type = converted %.loc29_45, %tuple.loc29 [concrete = constants.%tuple.162] +// CHECK:STDOUT: %HoldsType: type = class_type @HoldsType, @HoldsType(constants.%tuple.162) [concrete = constants.%HoldsType.9f2] // CHECK:STDOUT: } -// CHECK:STDOUT: %holds_to: %HoldsType.90e = value_binding holds_to, %holds_to.param +// CHECK:STDOUT: %holds_to: %HoldsType.9f2 = value_binding holds_to, %holds_to.param // CHECK:STDOUT: %.loc29_56: type = splice_block %RuntimeConvertFrom.ref [concrete = constants.%RuntimeConvertFrom] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %RuntimeConvertFrom.ref: type = name_ref RuntimeConvertFrom, file.%RuntimeConvertFrom.decl [concrete = constants.%RuntimeConvertFrom] @@ -186,13 +186,13 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) { // CHECK:STDOUT: // CHECK:STDOUT: impl @RuntimeConvertFrom.as.ImplicitAs.impl: %RuntimeConvertFrom.ref as %ImplicitAs.type { // CHECK:STDOUT: %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.decl: %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.type = fn_decl @RuntimeConvertFrom.as.ImplicitAs.impl.Convert [concrete = constants.%RuntimeConvertFrom.as.ImplicitAs.impl.Convert] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.2ff = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.2ff = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.110 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.110 = return_slot_pattern %return.param_patt, %RuntimeConvertTo.ref [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.598 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.598 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.c10 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.c10 = return_slot_pattern %return.param_patt, %RuntimeConvertTo.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %RuntimeConvertTo.ref: type = name_ref RuntimeConvertTo, file.%RuntimeConvertTo.decl [concrete = constants.%RuntimeConvertTo] -// CHECK:STDOUT: %.loc24_38: Core.Form = init_form %RuntimeConvertTo.ref [concrete = constants.%.717] +// CHECK:STDOUT: %.loc24_38: Core.Form = init_form %RuntimeConvertTo.ref [concrete = constants.%.aac] // CHECK:STDOUT: %self.param: %RuntimeConvertFrom = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @RuntimeConvertFrom.as.ImplicitAs.impl.%RuntimeConvertFrom.ref [concrete = constants.%RuntimeConvertFrom] // CHECK:STDOUT: %self: %RuntimeConvertFrom = value_binding self, %self.param @@ -219,7 +219,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%HoldsType.c9c +// CHECK:STDOUT: .Self = constants.%HoldsType.a83 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -252,13 +252,13 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) { // CHECK:STDOUT: %tuple.elem0.loc27_32.1: type = tuple_access %T.loc27_7.1, element0 [symbolic = %tuple.elem0.loc27_32.1 (constants.%tuple.elem0)] // CHECK:STDOUT: %A.loc27_28.1: @F.%tuple.elem0.loc27_32.1 (%tuple.elem0) = symbolic_binding A, 1 [symbolic = %A.loc27_28.1 (constants.%A)] // CHECK:STDOUT: %pattern_type.loc27_28: type = pattern_type %tuple.elem0.loc27_32.1 [symbolic = %pattern_type.loc27_28 (constants.%pattern_type.e66)] -// CHECK:STDOUT: %HoldsType.loc27_57.1: type = class_type @HoldsType, @HoldsType(%T.loc27_7.1) [symbolic = %HoldsType.loc27_57.1 (constants.%HoldsType.c9c)] -// CHECK:STDOUT: %pattern_type.loc27_44: type = pattern_type %HoldsType.loc27_57.1 [symbolic = %pattern_type.loc27_44 (constants.%pattern_type.ad8)] +// CHECK:STDOUT: %HoldsType.loc27_57.1: type = class_type @HoldsType, @HoldsType(%T.loc27_7.1) [symbolic = %HoldsType.loc27_57.1 (constants.%HoldsType.a83)] +// CHECK:STDOUT: %pattern_type.loc27_44: type = pattern_type %HoldsType.loc27_57.1 [symbolic = %pattern_type.loc27_44 (constants.%pattern_type.b2f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %HoldsType.loc27_57.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc27_57.1 (%HoldsType.c9c)) { +// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc27_57.1 (%HoldsType.a83)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -270,23 +270,23 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.bound: = bound_method %from.loc29_53.1, constants.%RuntimeConvertFrom.as.ImplicitAs.impl.Convert [symbolic = %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.bound (constants.%RuntimeConvertFrom.as.ImplicitAs.impl.Convert.bound)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%holds_to.param: %HoldsType.90e) { +// CHECK:STDOUT: fn(%holds_to.param: %HoldsType.9f2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %from.ref: %RuntimeConvertFrom = name_ref from, %from.loc29_53.2 [symbolic = %from.loc29_53.1 (constants.%from)] -// CHECK:STDOUT: %holds_to.ref: %HoldsType.90e = name_ref holds_to, %holds_to -// CHECK:STDOUT: %impl.elem0: %.185 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%RuntimeConvertFrom.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %holds_to.ref: %HoldsType.9f2 = name_ref holds_to, %holds_to +// CHECK:STDOUT: %impl.elem0: %.820 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%RuntimeConvertFrom.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method: = bound_method constants.%from, %impl.elem0 [symbolic = %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.bound (constants.%RuntimeConvertFrom.as.ImplicitAs.impl.Convert.bound)] // CHECK:STDOUT: %.loc40_19.1: ref %RuntimeConvertTo = temporary_storage // CHECK:STDOUT: %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.call: init %RuntimeConvertTo to %.loc40_19.1 = call %bound_method(constants.%from) // CHECK:STDOUT: %.loc40_19.2: init %RuntimeConvertTo = converted constants.%from, %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.call // CHECK:STDOUT: %.loc40_19.3: ref %RuntimeConvertTo = temporary %.loc40_19.1, %.loc40_19.2 // CHECK:STDOUT: %.loc40_19.4: %RuntimeConvertTo = acquire_value %.loc40_19.3 -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%tuple.1a3, ) [concrete = ] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%tuple.162, ) [concrete = ] // CHECK:STDOUT: %.loc40_19.5: %empty_tuple.type = call %F.specific_fn(%holds_to.ref) // CHECK:STDOUT: %tuple.loc40: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc40_19.6: %empty_tuple.type = converted %.loc40_19.5, %tuple.loc40 [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc40_19.3, constants.%Destroy.Op.2dd605.2 +// 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: return // CHECK:STDOUT: } @@ -310,12 +310,12 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) { // CHECK:STDOUT: %tuple.elem0.loc27_32.1 => constants.%tuple.elem0 // CHECK:STDOUT: %A.loc27_28.1 => constants.%A // CHECK:STDOUT: %pattern_type.loc27_28 => constants.%pattern_type.e66 -// CHECK:STDOUT: %HoldsType.loc27_57.1 => constants.%HoldsType.c9c -// CHECK:STDOUT: %pattern_type.loc27_44 => constants.%pattern_type.ad8 +// CHECK:STDOUT: %HoldsType.loc27_57.1 => constants.%HoldsType.a83 +// CHECK:STDOUT: %pattern_type.loc27_44 => constants.%pattern_type.b2f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HoldsType(constants.%tuple.1a3) { -// CHECK:STDOUT: %T.loc17_18.1 => constants.%tuple.1a3 +// CHECK:STDOUT: specific @HoldsType(constants.%tuple.162) { +// CHECK:STDOUT: %T.loc17_18.1 => constants.%tuple.162 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -324,12 +324,12 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), from:! RuntimeConvertFrom) { // CHECK:STDOUT: %from.loc29_53.1 => constants.%from // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%tuple.1a3, ) { -// CHECK:STDOUT: %T.loc27_7.1 => constants.%tuple.1a3 +// CHECK:STDOUT: specific @F(constants.%tuple.162, ) { +// CHECK:STDOUT: %T.loc27_7.1 => constants.%tuple.162 // CHECK:STDOUT: %tuple.elem0.loc27_32.1 => constants.%RuntimeConvertTo // CHECK:STDOUT: %A.loc27_28.1 => -// CHECK:STDOUT: %pattern_type.loc27_28 => constants.%pattern_type.110 -// CHECK:STDOUT: %HoldsType.loc27_57.1 => constants.%HoldsType.90e -// CHECK:STDOUT: %pattern_type.loc27_44 => constants.%pattern_type.bcd +// CHECK:STDOUT: %pattern_type.loc27_28 => constants.%pattern_type.c10 +// CHECK:STDOUT: %HoldsType.loc27_57.1 => constants.%HoldsType.9f2 +// CHECK:STDOUT: %pattern_type.loc27_44 => constants.%pattern_type.905 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/period_self.carbon b/toolchain/check/testdata/facet/period_self.carbon index 49e8a20f6be7..a9ff0dff7636 100644 --- a/toolchain/check/testdata/facet/period_self.carbon +++ b/toolchain/check/testdata/facet/period_self.carbon @@ -470,30 +470,30 @@ fn F() { // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.50f: type = facet_type <@I, @I(%T.67d)> [symbolic] -// CHECK:STDOUT: %Self.626: %I.type.50f = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.assoc_type.bd7: type = assoc_entity_type @I, @I(%T.67d) [symbolic] -// CHECK:STDOUT: %assoc0.088: %I.assoc_type.bd7 = assoc_entity element0, @I.WithSelf.%I1 [symbolic] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%T.67d)> [symbolic] +// CHECK:STDOUT: %Self.191: %I.type.3fe = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.assoc_type.b71: type = assoc_entity_type @I, @I(%T.67d) [symbolic] +// CHECK:STDOUT: %assoc0.d20: %I.assoc_type.b71 = assoc_entity element0, @I.WithSelf.%I1 [symbolic] // CHECK:STDOUT: %.Self.as_type.246: type = facet_access_type %.Self.c39 [symbolic_self] -// CHECK:STDOUT: %I.type.273: type = facet_type <@I, @I(%.Self.as_type.246)> [symbolic_self] -// CHECK:STDOUT: %.Self.5c3: %I.type.273 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Self.bb2: %I.type.273 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.assoc_type.a5d: type = assoc_entity_type @I, @I(%.Self.as_type.246) [symbolic_self] -// CHECK:STDOUT: %assoc0.fd5: %I.assoc_type.a5d = assoc_entity element0, @I.WithSelf.%I1 [symbolic_self] -// CHECK:STDOUT: %.Self.as_type.089: type = facet_access_type %.Self.5c3 [symbolic_self] -// CHECK:STDOUT: %I.lookup_impl_witness.ee0: = lookup_impl_witness %.Self.5c3, @I, @I(%.Self.as_type.246) [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness.ee0, element0 [symbolic_self] +// CHECK:STDOUT: %I.type.f3d: type = facet_type <@I, @I(%.Self.as_type.246)> [symbolic_self] +// CHECK:STDOUT: %.Self.0f0: %I.type.f3d = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Self.24d: %I.type.f3d = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.assoc_type.ea7: type = assoc_entity_type @I, @I(%.Self.as_type.246) [symbolic_self] +// CHECK:STDOUT: %assoc0.c72: %I.assoc_type.ea7 = assoc_entity element0, @I.WithSelf.%I1 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.a1c: type = facet_access_type %.Self.0f0 [symbolic_self] +// CHECK:STDOUT: %I.lookup_impl_witness.67f: = lookup_impl_witness %.Self.0f0, @I, @I(%.Self.as_type.246) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness.67f, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %I_where.type: type = facet_type <@I, @I(%.Self.as_type.246) where %impl.elem0 = %empty_tuple.type> [symbolic_self] -// CHECK:STDOUT: %pattern_type.511: type = pattern_type %I_where.type [symbolic_self] -// CHECK:STDOUT: %T.d76: %I_where.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.d76 [symbolic] +// CHECK:STDOUT: %pattern_type.021: type = pattern_type %I_where.type [symbolic_self] +// CHECK:STDOUT: %T.8c8: %I_where.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.8c8 [symbolic] // CHECK:STDOUT: %facet_value: %type = facet_value %T.as_type, () [symbolic] -// CHECK:STDOUT: %I.lookup_impl_witness.451: = lookup_impl_witness %T.d76, @I, @I(%T.as_type) [symbolic] -// CHECK:STDOUT: %I.facet: %I.type.273 = facet_value %T.as_type, (%I.lookup_impl_witness.451) [symbolic] +// CHECK:STDOUT: %I.lookup_impl_witness.506: = lookup_impl_witness %T.8c8, @I, @I(%T.as_type) [symbolic] +// CHECK:STDOUT: %I.facet: %I.type.f3d = facet_value %T.as_type, (%I.lookup_impl_witness.506) [symbolic] // CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] @@ -503,7 +503,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { -// CHECK:STDOUT: %I.decl: %I.type.48c = interface_decl @I [concrete = constants.%I.generic] { +// CHECK:STDOUT: %I.decl: %I.type.335 = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_17.1: type = splice_block %.loc4_17.2 [concrete = type] { @@ -513,39 +513,39 @@ fn F() { // CHECK:STDOUT: %T.loc4_14.2: type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %T.patt: %pattern_type.511 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.021 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %impl.elem0.loc8_39 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc8_7.2 [symbolic = %T.loc8_7.1 (constants.%T.d76)] +// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc8_7.2 [symbolic = %T.loc8_7.1 (constants.%T.8c8)] // CHECK:STDOUT: %T.as_type.loc8_39.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc8_39.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc8_39.1: type = converted %T.ref, %T.as_type.loc8_39.2 [symbolic = %T.as_type.loc8_39.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc8_39.2: %I.assoc_type.a5d = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%T.d76) [symbolic_self = constants.%assoc0.fd5] -// CHECK:STDOUT: %I1.ref.loc8_39: %I.assoc_type.a5d = name_ref I1, %.loc8_39.2 [symbolic_self = constants.%assoc0.fd5] +// CHECK:STDOUT: %.loc8_39.2: %I.assoc_type.ea7 = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%T.8c8) [symbolic_self = constants.%assoc0.c72] +// CHECK:STDOUT: %I1.ref.loc8_39: %I.assoc_type.ea7 = name_ref I1, %.loc8_39.2 [symbolic_self = constants.%assoc0.c72] // CHECK:STDOUT: %facet_value.loc8_39.2: %type = facet_value constants.%T.as_type, () [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] // CHECK:STDOUT: %.loc8_39.3: %type = converted constants.%T.as_type, %facet_value.loc8_39.2 [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %T.as_type.loc8_39.3: type = facet_access_type constants.%T.d76 [symbolic = %T.as_type.loc8_39.1 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc8_39.3: type = facet_access_type constants.%T.8c8 [symbolic = %T.as_type.loc8_39.1 (constants.%T.as_type)] // CHECK:STDOUT: %facet_value.loc8_39.3: %type = facet_value %T.as_type.loc8_39.3, () [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %.loc8_39.4: %type = converted constants.%T.d76, %facet_value.loc8_39.3 [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %T.as_type.loc8_39.4: type = facet_access_type constants.%T.d76 [symbolic = %T.as_type.loc8_39.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc8_39.4: %type = converted constants.%T.8c8, %facet_value.loc8_39.3 [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %T.as_type.loc8_39.4: type = facet_access_type constants.%T.8c8 [symbolic = %T.as_type.loc8_39.1 (constants.%T.as_type)] // CHECK:STDOUT: %facet_value.loc8_39.4: %type = facet_value %T.as_type.loc8_39.4, () [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %.loc8_39.5: %type = converted constants.%T.d76, %facet_value.loc8_39.4 [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0.loc8_39: type = impl_witness_access constants.%I.lookup_impl_witness.451, element0 [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: %.loc8_39.5: %type = converted constants.%T.8c8, %facet_value.loc8_39.4 [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %impl.elem0.loc8_39: type = impl_witness_access constants.%I.lookup_impl_witness.506, element0 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc8_39.6: Core.Form = init_form %impl.elem0.loc8_39 [concrete = constants.%.262] // CHECK:STDOUT: %.loc8_19.1: type = splice_block %.loc8_19.2 [symbolic_self = constants.%I_where.type] { // CHECK:STDOUT: %.Self.loc8_7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %.Self.ref.loc8_12: %type = name_ref .Self, %.Self.loc8_7 [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %.Self.as_type.loc8_17: type = facet_access_type %.Self.ref.loc8_12 [symbolic_self = constants.%.Self.as_type.246] // CHECK:STDOUT: %.loc8_17: type = converted %.Self.ref.loc8_12, %.Self.as_type.loc8_17 [symbolic_self = constants.%.Self.as_type.246] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%.Self.as_type.246)> [symbolic_self = constants.%I.type.273] -// CHECK:STDOUT: %.Self.loc8_19: %I.type.273 = symbolic_binding .Self [symbolic_self = constants.%.Self.5c3] -// CHECK:STDOUT: %.Self.ref.loc8_25: %I.type.273 = name_ref .Self, %.Self.loc8_19 [symbolic_self = constants.%.Self.5c3] -// CHECK:STDOUT: %.Self.as_type.loc8_25: type = facet_access_type %.Self.ref.loc8_25 [symbolic_self = constants.%.Self.as_type.089] -// CHECK:STDOUT: %.loc8_25.1: type = converted %.Self.ref.loc8_25, %.Self.as_type.loc8_25 [symbolic_self = constants.%.Self.as_type.089] -// CHECK:STDOUT: %.loc8_25.2: %I.assoc_type.a5d = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%.Self.5c3) [symbolic_self = constants.%assoc0.fd5] -// CHECK:STDOUT: %I1.ref.loc8_25: %I.assoc_type.a5d = name_ref I1, %.loc8_25.2 [symbolic_self = constants.%assoc0.fd5] -// CHECK:STDOUT: %impl.elem0.loc8_25: type = impl_witness_access constants.%I.lookup_impl_witness.ee0, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%.Self.as_type.246)> [symbolic_self = constants.%I.type.f3d] +// CHECK:STDOUT: %.Self.loc8_19: %I.type.f3d = symbolic_binding .Self [symbolic_self = constants.%.Self.0f0] +// CHECK:STDOUT: %.Self.ref.loc8_25: %I.type.f3d = name_ref .Self, %.Self.loc8_19 [symbolic_self = constants.%.Self.0f0] +// CHECK:STDOUT: %.Self.as_type.loc8_25: type = facet_access_type %.Self.ref.loc8_25 [symbolic_self = constants.%.Self.as_type.a1c] +// CHECK:STDOUT: %.loc8_25.1: type = converted %.Self.ref.loc8_25, %.Self.as_type.loc8_25 [symbolic_self = constants.%.Self.as_type.a1c] +// CHECK:STDOUT: %.loc8_25.2: %I.assoc_type.ea7 = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%.Self.0f0) [symbolic_self = constants.%assoc0.c72] +// CHECK:STDOUT: %I1.ref.loc8_25: %I.assoc_type.ea7 = name_ref I1, %.loc8_25.2 [symbolic_self = constants.%assoc0.c72] +// CHECK:STDOUT: %impl.elem0.loc8_25: type = impl_witness_access constants.%I.lookup_impl_witness.67f, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc8_32.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_32.2: type = converted %.loc8_32.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc8_19.2: type = where_expr [symbolic_self = constants.%I_where.type] { @@ -553,40 +553,40 @@ fn F() { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc8_25, %.loc8_32.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc8_7.2: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc8_7.1 (constants.%T.d76)] +// CHECK:STDOUT: %T.loc8_7.2: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc8_7.1 (constants.%T.8c8)] // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %T.patt: %pattern_type.511 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.021 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %impl.elem0.loc12_47 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc12_7.2 [symbolic = %T.loc12_7.1 (constants.%T.d76)] +// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc12_7.2 [symbolic = %T.loc12_7.1 (constants.%T.8c8)] // CHECK:STDOUT: %T.as_type.loc12_47.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc12_47.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc12_47.1: type = converted %T.ref, %T.as_type.loc12_47.2 [symbolic = %T.as_type.loc12_47.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc12_47.2: %I.assoc_type.a5d = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%T.d76) [symbolic_self = constants.%assoc0.fd5] -// CHECK:STDOUT: %I1.ref.loc12_47: %I.assoc_type.a5d = name_ref I1, %.loc12_47.2 [symbolic_self = constants.%assoc0.fd5] -// CHECK:STDOUT: %T.as_type.loc12_47.3: type = facet_access_type constants.%T.d76 [symbolic = %T.as_type.loc12_47.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc12_47.2: %I.assoc_type.ea7 = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%T.8c8) [symbolic_self = constants.%assoc0.c72] +// CHECK:STDOUT: %I1.ref.loc12_47: %I.assoc_type.ea7 = name_ref I1, %.loc12_47.2 [symbolic_self = constants.%assoc0.c72] +// CHECK:STDOUT: %T.as_type.loc12_47.3: type = facet_access_type constants.%T.8c8 [symbolic = %T.as_type.loc12_47.1 (constants.%T.as_type)] // CHECK:STDOUT: %facet_value.loc12_47.2: %type = facet_value %T.as_type.loc12_47.3, () [symbolic = %facet_value.loc12_47.1 (constants.%facet_value)] -// CHECK:STDOUT: %.loc12_47.3: %type = converted constants.%T.d76, %facet_value.loc12_47.2 [symbolic = %facet_value.loc12_47.1 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0.loc12_47: type = impl_witness_access constants.%I.lookup_impl_witness.451, element0 [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: %.loc12_47.3: %type = converted constants.%T.8c8, %facet_value.loc12_47.2 [symbolic = %facet_value.loc12_47.1 (constants.%facet_value)] +// CHECK:STDOUT: %impl.elem0.loc12_47: type = impl_witness_access constants.%I.lookup_impl_witness.506, element0 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc12_47.4: Core.Form = init_form %impl.elem0.loc12_47 [concrete = constants.%.262] // CHECK:STDOUT: %.loc12_27.1: type = splice_block %.loc12_27.2 [symbolic_self = constants.%I_where.type] { // CHECK:STDOUT: %.Self.loc12_7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %.Self.ref.loc12_12: %type = name_ref .Self, %.Self.loc12_7 [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %.loc12_21: type = type_literal type [concrete = type] // CHECK:STDOUT: %.Self.as_type.loc12_18: type = facet_access_type %.Self.ref.loc12_12 [symbolic_self = constants.%.Self.as_type.246] // CHECK:STDOUT: %.loc12_18: type = converted %.Self.ref.loc12_12, %.Self.as_type.loc12_18 [symbolic_self = constants.%.Self.as_type.246] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%.Self.as_type.246)> [symbolic_self = constants.%I.type.273] -// CHECK:STDOUT: %.Self.loc12_27: %I.type.273 = symbolic_binding .Self [symbolic_self = constants.%.Self.5c3] -// CHECK:STDOUT: %.Self.ref.loc12_33: %I.type.273 = name_ref .Self, %.Self.loc12_27 [symbolic_self = constants.%.Self.5c3] -// CHECK:STDOUT: %.Self.as_type.loc12_33: type = facet_access_type %.Self.ref.loc12_33 [symbolic_self = constants.%.Self.as_type.089] -// CHECK:STDOUT: %.loc12_33.1: type = converted %.Self.ref.loc12_33, %.Self.as_type.loc12_33 [symbolic_self = constants.%.Self.as_type.089] -// CHECK:STDOUT: %.loc12_33.2: %I.assoc_type.a5d = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%.Self.5c3) [symbolic_self = constants.%assoc0.fd5] -// CHECK:STDOUT: %I1.ref.loc12_33: %I.assoc_type.a5d = name_ref I1, %.loc12_33.2 [symbolic_self = constants.%assoc0.fd5] -// CHECK:STDOUT: %impl.elem0.loc12_33: type = impl_witness_access constants.%I.lookup_impl_witness.ee0, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%.Self.as_type.246)> [symbolic_self = constants.%I.type.f3d] +// CHECK:STDOUT: %.Self.loc12_27: %I.type.f3d = symbolic_binding .Self [symbolic_self = constants.%.Self.0f0] +// CHECK:STDOUT: %.Self.ref.loc12_33: %I.type.f3d = name_ref .Self, %.Self.loc12_27 [symbolic_self = constants.%.Self.0f0] +// CHECK:STDOUT: %.Self.as_type.loc12_33: type = facet_access_type %.Self.ref.loc12_33 [symbolic_self = constants.%.Self.as_type.a1c] +// CHECK:STDOUT: %.loc12_33.1: type = converted %.Self.ref.loc12_33, %.Self.as_type.loc12_33 [symbolic_self = constants.%.Self.as_type.a1c] +// CHECK:STDOUT: %.loc12_33.2: %I.assoc_type.ea7 = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%.Self.0f0) [symbolic_self = constants.%assoc0.c72] +// CHECK:STDOUT: %I1.ref.loc12_33: %I.assoc_type.ea7 = name_ref I1, %.loc12_33.2 [symbolic_self = constants.%assoc0.c72] +// CHECK:STDOUT: %impl.elem0.loc12_33: type = impl_witness_access constants.%I.lookup_impl_witness.67f, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc12_40.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc12_40.2: type = converted %.loc12_40.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc12_27.2: type = where_expr [symbolic_self = constants.%I_where.type] { @@ -594,7 +594,7 @@ fn F() { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc12_33, %.loc12_40.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc12_7.2: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc12_7.1 (constants.%T.d76)] +// CHECK:STDOUT: %T.loc12_7.2: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc12_7.1 (constants.%T.8c8)] // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } @@ -604,16 +604,16 @@ fn F() { // CHECK:STDOUT: %T.loc4_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc4_14.1)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self.loc4_23.2: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self.626)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc4_14.1)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self.loc4_23.2: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self.191)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_23.1: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self.626)] +// CHECK:STDOUT: %Self.loc4_23.1: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self.191)] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I1: type = assoc_const_decl @I1 [concrete] { -// CHECK:STDOUT: %assoc0: @I.WithSelf.%I.assoc_type (%I.assoc_type.bd7) = assoc_entity element0, @I.WithSelf.%I1 [symbolic = @I.WithSelf.%assoc0 (constants.%assoc0.088)] +// CHECK:STDOUT: %assoc0: @I.WithSelf.%I.assoc_type (%I.assoc_type.b71) = assoc_entity element0, @I.WithSelf.%I1 [symbolic = @I.WithSelf.%assoc0 (constants.%assoc0.d20)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -626,7 +626,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc8_7.2: %I_where.type) { -// CHECK:STDOUT: %T.loc8_7.1: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc8_7.1 (constants.%T.d76)] +// CHECK:STDOUT: %T.loc8_7.1: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc8_7.1 (constants.%T.8c8)] // CHECK:STDOUT: %T.as_type.loc8_39.1: type = facet_access_type %T.loc8_7.1 [symbolic = %T.as_type.loc8_39.1 (constants.%T.as_type)] // CHECK:STDOUT: %facet_value.loc8_39.1: %type = facet_value %T.as_type.loc8_39.1, () [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] // CHECK:STDOUT: @@ -642,7 +642,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%T.loc12_7.2: %I_where.type) { -// CHECK:STDOUT: %T.loc12_7.1: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc12_7.1 (constants.%T.d76)] +// CHECK:STDOUT: %T.loc12_7.1: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc12_7.1 (constants.%T.8c8)] // CHECK:STDOUT: %T.as_type.loc12_47.1: type = facet_access_type %T.loc12_7.1 [symbolic = %T.as_type.loc12_47.1 (constants.%T.as_type)] // CHECK:STDOUT: %facet_value.loc12_47.1: %type = facet_value %T.as_type.loc12_47.1, () [symbolic = %facet_value.loc12_47.1 (constants.%facet_value)] // CHECK:STDOUT: @@ -661,35 +661,35 @@ fn F() { // CHECK:STDOUT: %T.loc4_14.1 => constants.%T.67d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T.67d, constants.%Self.626) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%T.67d, constants.%Self.191) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%.Self.as_type.246) { // CHECK:STDOUT: %T.loc4_14.1 => constants.%.Self.as_type.246 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.273 -// CHECK:STDOUT: %Self.loc4_23.2 => constants.%Self.bb2 +// CHECK:STDOUT: %I.type => constants.%I.type.f3d +// CHECK:STDOUT: %Self.loc4_23.2 => constants.%Self.24d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.as_type.246, constants.%Self.626) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.as_type.246, constants.%Self.191) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%.Self.as_type.246 -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.a5d -// CHECK:STDOUT: %assoc0 => constants.%assoc0.fd5 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.ea7 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c72 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.as_type.246, constants.%.Self.5c3) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.as_type.246, constants.%.Self.0f0) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%.Self.as_type.246 -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.a5d -// CHECK:STDOUT: %assoc0 => constants.%assoc0.fd5 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.ea7 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c72 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.as_type.246, constants.%T.d76) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.as_type.246, constants.%T.8c8) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%.Self.as_type.246 -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.a5d -// CHECK:STDOUT: %assoc0 => constants.%assoc0.fd5 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.ea7 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c72 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T.as_type) { @@ -699,18 +699,18 @@ fn F() { // CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.as_type.246, constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%.Self.as_type.246 -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.a5d -// CHECK:STDOUT: %assoc0 => constants.%assoc0.fd5 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.ea7 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c72 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.d76) { -// CHECK:STDOUT: %T.loc8_7.1 => constants.%T.d76 +// CHECK:STDOUT: specific @F(constants.%T.8c8) { +// CHECK:STDOUT: %T.loc8_7.1 => constants.%T.8c8 // CHECK:STDOUT: %T.as_type.loc8_39.1 => constants.%T.as_type // CHECK:STDOUT: %facet_value.loc8_39.1 => constants.%facet_value // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G(constants.%T.d76) { -// CHECK:STDOUT: %T.loc12_7.1 => constants.%T.d76 +// CHECK:STDOUT: specific @G(constants.%T.8c8) { +// CHECK:STDOUT: %T.loc12_7.1 => constants.%T.8c8 // CHECK:STDOUT: %T.as_type.loc12_47.1 => constants.%T.as_type // CHECK:STDOUT: %facet_value.loc12_47.1 => constants.%facet_value // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/facet/require_import.carbon b/toolchain/check/testdata/facet/require_import.carbon index 9cde17eada55..d91737709e97 100644 --- a/toolchain/check/testdata/facet/require_import.carbon +++ b/toolchain/check/testdata/facet/require_import.carbon @@ -60,39 +60,39 @@ fn F(B:! Y) { // CHECK:STDOUT: %Self.as_type.190: type = facet_access_type %Self.f45 [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Z.type.284: type = facet_type <@Z, @Z(%T)> [symbolic] -// CHECK:STDOUT: %Self.b7a: %Z.type.284 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Z.assoc_type.e20: type = assoc_entity_type @Z, @Z(%T) [symbolic] -// CHECK:STDOUT: %Z.WithSelf.F.type.5cd: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%T, %Self.b7a) [symbolic] -// CHECK:STDOUT: %Z.WithSelf.F.5f5: %Z.WithSelf.F.type.5cd = struct_value () [symbolic] -// CHECK:STDOUT: %Z.type.cb505d.1: type = facet_type <@Z, @Z(%Self.as_type.190)> [symbolic] -// CHECK:STDOUT: %Self.858: %Z.type.cb505d.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %require_complete.6c9163.1: = require_complete_type %Z.type.cb505d.1 [symbolic] +// CHECK:STDOUT: %Z.type.924: type = facet_type <@Z, @Z(%T)> [symbolic] +// CHECK:STDOUT: %Self.d5d: %Z.type.924 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Z.assoc_type.496: type = assoc_entity_type @Z, @Z(%T) [symbolic] +// CHECK:STDOUT: %Z.WithSelf.F.type.bc1: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%T, %Self.d5d) [symbolic] +// CHECK:STDOUT: %Z.WithSelf.F.7b9: %Z.WithSelf.F.type.bc1 = struct_value () [symbolic] +// CHECK:STDOUT: %Z.type.ecd906.1: type = facet_type <@Z, @Z(%Self.as_type.190)> [symbolic] +// CHECK:STDOUT: %Self.c0a: %Z.type.ecd906.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %require_complete.55f146.1: = require_complete_type %Z.type.ecd906.1 [symbolic] // CHECK:STDOUT: %pattern_type.9a5: type = pattern_type %X.type [concrete] // CHECK:STDOUT: %A: %X.type = symbolic_binding A, 0 [symbolic] // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] -// CHECK:STDOUT: %Self.a20: %Y.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.170: type = facet_access_type %Self.a20 [symbolic] -// CHECK:STDOUT: %Z.type.5d9: type = facet_type <@Z, @Z(%Self.as_type.170)> [symbolic] -// CHECK:STDOUT: %Self.310: %Z.type.5d9 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %pattern_type.58d: type = pattern_type %Y.type [concrete] +// CHECK:STDOUT: %Self.95b: %Y.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.917: type = facet_access_type %Self.95b [symbolic] +// CHECK:STDOUT: %Z.type.abb: type = facet_type <@Z, @Z(%Self.as_type.917)> [symbolic] +// CHECK:STDOUT: %Self.87c: %Z.type.abb = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %pattern_type.cfb: type = pattern_type %Y.type [concrete] // CHECK:STDOUT: %B: %Y.type = symbolic_binding B, 1 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %A.as_type: type = facet_access_type %A [symbolic] -// CHECK:STDOUT: %Z.type.cb505d.2: type = facet_type <@Z, @Z(%A.as_type)> [symbolic] -// CHECK:STDOUT: %require_complete.6c9163.2: = require_complete_type %Z.type.cb505d.2 [symbolic] -// CHECK:STDOUT: %Z.WithSelf.F.type.599: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%A.as_type, %A) [symbolic] -// CHECK:STDOUT: %Z.WithSelf.F.502: %Z.WithSelf.F.type.599 = struct_value () [symbolic] -// CHECK:STDOUT: %Z.assoc_type.bd3: type = assoc_entity_type @Z, @Z(%A.as_type) [symbolic] -// CHECK:STDOUT: %assoc0.3bd: %Z.assoc_type.bd3 = assoc_entity element0, imports.%Main.import_ref.8df [symbolic] -// CHECK:STDOUT: %assoc0.7f4: %Z.assoc_type.e20 = assoc_entity element0, imports.%Main.import_ref.43a [symbolic] +// CHECK:STDOUT: %Z.type.ecd906.2: type = facet_type <@Z, @Z(%A.as_type)> [symbolic] +// CHECK:STDOUT: %require_complete.55f146.2: = require_complete_type %Z.type.ecd906.2 [symbolic] +// CHECK:STDOUT: %Z.WithSelf.F.type.17c: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%A.as_type, %A) [symbolic] +// CHECK:STDOUT: %Z.WithSelf.F.e89: %Z.WithSelf.F.type.17c = struct_value () [symbolic] +// CHECK:STDOUT: %Z.assoc_type.48d: type = assoc_entity_type @Z, @Z(%A.as_type) [symbolic] +// CHECK:STDOUT: %assoc0.f32: %Z.assoc_type.48d = assoc_entity element0, imports.%Main.import_ref.dfd [symbolic] +// CHECK:STDOUT: %assoc0.e37: %Z.assoc_type.496 = assoc_entity element0, imports.%Main.import_ref.2ce [symbolic] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %A, @Z, @Z(%A.as_type) [symbolic] -// CHECK:STDOUT: %Z.facet: %Z.type.cb505d.2 = facet_value %A.as_type, (%Z.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Z.WithSelf.F.type.0d4: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%A.as_type, %Z.facet) [symbolic] -// CHECK:STDOUT: %Z.WithSelf.F.d4d: %Z.WithSelf.F.type.0d4 = struct_value () [symbolic] -// CHECK:STDOUT: %.e18: type = fn_type_with_self_type %Z.WithSelf.F.type.0d4, %Z.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.e18 = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %Z.facet: %Z.type.ecd906.2 = facet_value %A.as_type, (%Z.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Z.WithSelf.F.type.9e6: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%A.as_type, %Z.facet) [symbolic] +// CHECK:STDOUT: %Z.WithSelf.F.91a: %Z.WithSelf.F.type.9e6 = struct_value () [symbolic] +// CHECK:STDOUT: %.2d5: type = fn_type_with_self_type %Z.WithSelf.F.type.9e6, %Z.facet [symbolic] +// CHECK:STDOUT: %impl.elem0: %.2d5 = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Z.WithSelf.F(%A.as_type, %Z.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -100,24 +100,24 @@ fn F(B:! Y) { // CHECK:STDOUT: %Main.Z = import_ref Main//a, Z, unloaded // CHECK:STDOUT: %Main.Y: type = import_ref Main//a, Y, loaded [concrete = constants.%Y.type] // CHECK:STDOUT: %Main.X: type = import_ref Main//a, X, loaded [concrete = constants.%X.type] -// CHECK:STDOUT: %Main.import_ref.b7c: type = import_ref Main//a, loc12_31, loaded [symbolic = @X.WithSelf.%Z.type (constants.%Z.type.cb505d.1)] -// CHECK:STDOUT: %Main.import_ref.b15: @Z.WithSelf.%Z.assoc_type (%Z.assoc_type.e20) = import_ref Main//a, loc4_9, loaded [symbolic = @Z.WithSelf.%assoc0 (constants.%assoc0.7f4)] +// CHECK:STDOUT: %Main.import_ref.e4a: type = import_ref Main//a, loc12_31, loaded [symbolic = @X.WithSelf.%Z.type (constants.%Z.type.ecd906.1)] +// CHECK:STDOUT: %Main.import_ref.4ba: @Z.WithSelf.%Z.assoc_type (%Z.assoc_type.496) = import_ref Main//a, loc4_9, loaded [symbolic = @Z.WithSelf.%assoc0 (constants.%assoc0.e37)] // CHECK:STDOUT: %Main.F = import_ref Main//a, F, unloaded -// CHECK:STDOUT: %Main.import_ref.8df: @Z.WithSelf.%Z.WithSelf.F.type (%Z.WithSelf.F.type.5cd) = import_ref Main//a, loc4_9, loaded [symbolic = @Z.WithSelf.%Z.WithSelf.F (constants.%Z.WithSelf.F.5f5)] +// CHECK:STDOUT: %Main.import_ref.dfd: @Z.WithSelf.%Z.WithSelf.F.type (%Z.WithSelf.F.type.bc1) = import_ref Main//a, loc4_9, loaded [symbolic = @Z.WithSelf.%Z.WithSelf.F (constants.%Z.WithSelf.F.7b9)] // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//a, loc3_14, loaded [symbolic = @Z.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.ae8950.2: @Z.%Z.type (%Z.type.284) = import_ref Main//a, loc3_23, loaded [symbolic = @Z.%Self (constants.%Self.b7a)] -// CHECK:STDOUT: %Main.import_ref.8dd = import_ref Main//a, loc3_23, unloaded +// CHECK:STDOUT: %Main.import_ref.a7a2ca.2: @Z.%Z.type (%Z.type.924) = import_ref Main//a, loc3_23, loaded [symbolic = @Z.%Self (constants.%Self.d5d)] +// CHECK:STDOUT: %Main.import_ref.fd7 = import_ref Main//a, loc3_23, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//a, loc3_14, loaded [symbolic = @Z.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.c81: type = import_ref Main//a, loc12_18, loaded [symbolic = @X.WithSelf.Self.as_type.impls.Z.type.require.%Self.as_type (constants.%Self.as_type.190)] -// CHECK:STDOUT: %Main.import_ref.d70: type = import_ref Main//a, loc12_30, loaded [symbolic = @X.WithSelf.Self.as_type.impls.Z.type.require.%Z.type (constants.%Z.type.cb505d.1)] -// CHECK:STDOUT: %Main.import_ref.8b80ca.2: %X.type = import_ref Main//a, loc11_14, loaded [symbolic = constants.%Self.f45] -// CHECK:STDOUT: %Main.import_ref.a22 = import_ref Main//a, loc11_14, unloaded -// CHECK:STDOUT: %Main.import_ref.1d2 = import_ref Main//a, loc8_31, unloaded -// CHECK:STDOUT: %Main.import_ref.cec: type = import_ref Main//a, loc8_18, loaded [symbolic = @Y.WithSelf.Self.as_type.impls.Z.type.require.%Self.as_type (constants.%Self.as_type.170)] -// CHECK:STDOUT: %Main.import_ref.752: type = import_ref Main//a, loc8_30, loaded [symbolic = @Y.WithSelf.Self.as_type.impls.Z.type.require.%Z.type (constants.%Z.type.5d9)] -// CHECK:STDOUT: %Main.import_ref.244508.2: %Y.type = import_ref Main//a, loc7_13, loaded [symbolic = constants.%Self.a20] -// CHECK:STDOUT: %Main.import_ref.31b = import_ref Main//a, loc7_13, unloaded -// CHECK:STDOUT: %Main.import_ref.43a = import_ref Main//a, loc4_9, unloaded +// CHECK:STDOUT: %Main.import_ref.5f6: type = import_ref Main//a, loc12_18, loaded [symbolic = @X.WithSelf.Self.as_type.impls.Z.type.require.%Self.as_type (constants.%Self.as_type.190)] +// CHECK:STDOUT: %Main.import_ref.06c: type = import_ref Main//a, loc12_30, loaded [symbolic = @X.WithSelf.Self.as_type.impls.Z.type.require.%Z.type (constants.%Z.type.ecd906.1)] +// CHECK:STDOUT: %Main.import_ref.423e3a.2: %X.type = import_ref Main//a, loc11_14, loaded [symbolic = constants.%Self.f45] +// CHECK:STDOUT: %Main.import_ref.364 = import_ref Main//a, loc11_14, unloaded +// CHECK:STDOUT: %Main.import_ref.305 = import_ref Main//a, loc8_31, unloaded +// CHECK:STDOUT: %Main.import_ref.4f9: type = import_ref Main//a, loc8_18, loaded [symbolic = @Y.WithSelf.Self.as_type.impls.Z.type.require.%Self.as_type (constants.%Self.as_type.917)] +// CHECK:STDOUT: %Main.import_ref.5c2: type = import_ref Main//a, loc8_30, loaded [symbolic = @Y.WithSelf.Self.as_type.impls.Z.type.require.%Z.type (constants.%Z.type.abb)] +// CHECK:STDOUT: %Main.import_ref.4b301f.2: %Y.type = import_ref Main//a, loc7_13, loaded [symbolic = constants.%Self.95b] +// CHECK:STDOUT: %Main.import_ref.28a = import_ref Main//a, loc7_13, unloaded +// CHECK:STDOUT: %Main.import_ref.2ce = import_ref Main//a, loc4_9, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -131,7 +131,7 @@ fn F(B:! Y) { // CHECK:STDOUT: %default.import.loc2_17.2 = import // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %A.patt: %pattern_type.9a5 = symbolic_binding_pattern A, 0 [concrete] -// CHECK:STDOUT: %B.patt: %pattern_type.58d = symbolic_binding_pattern B, 1 [concrete] +// CHECK:STDOUT: %B.patt: %pattern_type.cfb = symbolic_binding_pattern B, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_10: type = splice_block %X.ref [concrete = constants.%X.type] { // CHECK:STDOUT: %.Self.loc4_7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -150,13 +150,13 @@ fn F(B:! Y) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%T)> [symbolic = %Z.type (constants.%Z.type.284)] -// CHECK:STDOUT: %Self: @Z.%Z.type (%Z.type.284) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.b7a)] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%T)> [symbolic = %Z.type (constants.%Z.type.924)] +// CHECK:STDOUT: %Self: @Z.%Z.type (%Z.type.924) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.d5d)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.8dd -// CHECK:STDOUT: .F = imports.%Main.import_ref.b15 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.fd7 +// CHECK:STDOUT: .F = imports.%Main.import_ref.4ba // CHECK:STDOUT: witness = (imports.%Main.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -165,41 +165,41 @@ fn F(B:! Y) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Y [from "a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.31b -// CHECK:STDOUT: extend imports.%Main.import_ref.1d2 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.28a +// CHECK:STDOUT: extend imports.%Main.import_ref.305 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: @Y.WithSelf.Self.as_type.impls.Z.type.require { -// CHECK:STDOUT: require imports.%Main.import_ref.cec impls imports.%Main.import_ref.752 +// CHECK:STDOUT: require imports.%Main.import_ref.4f9 impls imports.%Main.import_ref.5c2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: constraint @X [from "a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.a22 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.364 // CHECK:STDOUT: .F = -// CHECK:STDOUT: extend imports.%Main.import_ref.b7c +// CHECK:STDOUT: extend imports.%Main.import_ref.e4a // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: @X.WithSelf.Self.as_type.impls.Z.type.require { -// CHECK:STDOUT: require imports.%Main.import_ref.c81 impls imports.%Main.import_ref.d70 +// CHECK:STDOUT: require imports.%Main.import_ref.5f6 impls imports.%Main.import_ref.06c // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @X.WithSelf.Self.as_type.impls.Z.type.require(imports.%Main.import_ref.8b80ca.2: %X.type) [from "a.carbon"] { +// CHECK:STDOUT: generic require @X.WithSelf.Self.as_type.impls.Z.type.require(imports.%Main.import_ref.423e3a.2: %X.type) [from "a.carbon"] { // CHECK:STDOUT: %Self: %X.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f45)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.190)] -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%Self.as_type)> [symbolic = %Z.type (constants.%Z.type.cb505d.1)] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%Self.as_type)> [symbolic = %Z.type (constants.%Z.type.ecd906.1)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Y.WithSelf.Self.as_type.impls.Z.type.require(imports.%Main.import_ref.244508.2: %Y.type) [from "a.carbon"] { -// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.a20)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.170)] -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%Self.as_type)> [symbolic = %Z.type (constants.%Z.type.5d9)] +// CHECK:STDOUT: generic require @Y.WithSelf.Self.as_type.impls.Z.type.require(imports.%Main.import_ref.4b301f.2: %Y.type) [from "a.carbon"] { +// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.95b)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.917)] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%Self.as_type)> [symbolic = %Z.type (constants.%Z.type.abb)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Z.WithSelf.F(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.ae8950.2: @Z.%Z.type (%Z.type.284)) [from "a.carbon"] { +// CHECK:STDOUT: generic fn @Z.WithSelf.F(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.a7a2ca.2: @Z.%Z.type (%Z.type.924)) [from "a.carbon"] { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: @@ -209,14 +209,14 @@ fn F(B:! Y) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %A.as_type.loc5_4.2: type = facet_access_type %A.loc4_7.1 [symbolic = %A.as_type.loc5_4.2 (constants.%A.as_type)] -// CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z, @Z(%A.as_type.loc5_4.2) [symbolic = %Z.assoc_type (constants.%Z.assoc_type.bd3)] -// CHECK:STDOUT: %assoc0: @F.%Z.assoc_type (%Z.assoc_type.bd3) = assoc_entity element0, imports.%Main.import_ref.8df [symbolic = %assoc0 (constants.%assoc0.3bd)] -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%A.as_type.loc5_4.2)> [symbolic = %Z.type (constants.%Z.type.cb505d.2)] +// CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z, @Z(%A.as_type.loc5_4.2) [symbolic = %Z.assoc_type (constants.%Z.assoc_type.48d)] +// CHECK:STDOUT: %assoc0: @F.%Z.assoc_type (%Z.assoc_type.48d) = assoc_entity element0, imports.%Main.import_ref.dfd [symbolic = %assoc0 (constants.%assoc0.f32)] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%A.as_type.loc5_4.2)> [symbolic = %Z.type (constants.%Z.type.ecd906.2)] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %A.loc4_7.1, @Z, @Z(%A.as_type.loc5_4.2) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness)] -// CHECK:STDOUT: %Z.facet: @F.%Z.type (%Z.type.cb505d.2) = facet_value %A.as_type.loc5_4.2, (%Z.lookup_impl_witness) [symbolic = %Z.facet (constants.%Z.facet)] -// CHECK:STDOUT: %Z.WithSelf.F.type: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%A.as_type.loc5_4.2, %Z.facet) [symbolic = %Z.WithSelf.F.type (constants.%Z.WithSelf.F.type.0d4)] -// CHECK:STDOUT: %.loc5_4.3: type = fn_type_with_self_type %Z.WithSelf.F.type, %Z.facet [symbolic = %.loc5_4.3 (constants.%.e18)] -// CHECK:STDOUT: %impl.elem0.loc5_4.2: @F.%.loc5_4.3 (%.e18) = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %Z.facet: @F.%Z.type (%Z.type.ecd906.2) = facet_value %A.as_type.loc5_4.2, (%Z.lookup_impl_witness) [symbolic = %Z.facet (constants.%Z.facet)] +// CHECK:STDOUT: %Z.WithSelf.F.type: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%A.as_type.loc5_4.2, %Z.facet) [symbolic = %Z.WithSelf.F.type (constants.%Z.WithSelf.F.type.9e6)] +// CHECK:STDOUT: %.loc5_4.3: type = fn_type_with_self_type %Z.WithSelf.F.type, %Z.facet [symbolic = %.loc5_4.3 (constants.%.2d5)] +// CHECK:STDOUT: %impl.elem0.loc5_4.2: @F.%.loc5_4.3 (%.2d5) = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc5_4.2: = specific_impl_function %impl.elem0.loc5_4.2, @Z.WithSelf.F(%A.as_type.loc5_4.2, %Z.facet) [symbolic = %specific_impl_fn.loc5_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -224,9 +224,9 @@ fn F(B:! Y) { // CHECK:STDOUT: %A.ref: %X.type = name_ref A, %A.loc4_7.2 [symbolic = %A.loc4_7.1 (constants.%A)] // CHECK:STDOUT: %A.as_type.loc5_4.1: type = facet_access_type %A.ref [symbolic = %A.as_type.loc5_4.2 (constants.%A.as_type)] // CHECK:STDOUT: %.loc5_4.1: type = converted %A.ref, %A.as_type.loc5_4.1 [symbolic = %A.as_type.loc5_4.2 (constants.%A.as_type)] -// CHECK:STDOUT: %.loc5_4.2: @F.%Z.assoc_type (%Z.assoc_type.bd3) = specific_constant imports.%Main.import_ref.b15, @Z.WithSelf(constants.%A.as_type, constants.%A) [symbolic = %assoc0 (constants.%assoc0.3bd)] -// CHECK:STDOUT: %F.ref: @F.%Z.assoc_type (%Z.assoc_type.bd3) = name_ref F, %.loc5_4.2 [symbolic = %assoc0 (constants.%assoc0.3bd)] -// CHECK:STDOUT: %impl.elem0.loc5_4.1: @F.%.loc5_4.3 (%.e18) = impl_witness_access constants.%Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %.loc5_4.2: @F.%Z.assoc_type (%Z.assoc_type.48d) = specific_constant imports.%Main.import_ref.4ba, @Z.WithSelf(constants.%A.as_type, constants.%A) [symbolic = %assoc0 (constants.%assoc0.f32)] +// CHECK:STDOUT: %F.ref: @F.%Z.assoc_type (%Z.assoc_type.48d) = name_ref F, %.loc5_4.2 [symbolic = %assoc0 (constants.%assoc0.f32)] +// CHECK:STDOUT: %impl.elem0.loc5_4.1: @F.%.loc5_4.3 (%.2d5) = impl_witness_access constants.%Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc5_4.1: = specific_impl_function %impl.elem0.loc5_4.1, @Z.WithSelf.F(constants.%A.as_type, constants.%Z.facet) [symbolic = %specific_impl_fn.loc5_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %Z.WithSelf.F.call: init %empty_tuple.type = call %specific_impl_fn.loc5_4.1() // CHECK:STDOUT: return @@ -237,46 +237,46 @@ fn F(B:! Y) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%T, constants.%Self.b7a) {} +// CHECK:STDOUT: specific @Z.WithSelf(constants.%T, constants.%Self.d5d) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.F(constants.%T, constants.%Self.b7a) {} +// CHECK:STDOUT: specific @Z.WithSelf.F(constants.%T, constants.%Self.d5d) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%Self.as_type.190) { // CHECK:STDOUT: %T => constants.%Self.as_type.190 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Z.type => constants.%Z.type.cb505d.1 -// CHECK:STDOUT: %Self => constants.%Self.858 +// CHECK:STDOUT: %Z.type => constants.%Z.type.ecd906.1 +// CHECK:STDOUT: %Self => constants.%Self.c0a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X.WithSelf(constants.%Self.f45) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self.f45 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.190 -// CHECK:STDOUT: %Z.type => constants.%Z.type.cb505d.1 -// CHECK:STDOUT: %require_complete => constants.%require_complete.6c9163.1 +// CHECK:STDOUT: %Z.type => constants.%Z.type.ecd906.1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.55f146.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X.WithSelf.Self.as_type.impls.Z.type.require(constants.%Self.f45) { // CHECK:STDOUT: %Self => constants.%Self.f45 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.190 -// CHECK:STDOUT: %Z.type => constants.%Z.type.cb505d.1 +// CHECK:STDOUT: %Z.type => constants.%Z.type.ecd906.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z(constants.%Self.as_type.170) { -// CHECK:STDOUT: %T => constants.%Self.as_type.170 +// CHECK:STDOUT: specific @Z(constants.%Self.as_type.917) { +// CHECK:STDOUT: %T => constants.%Self.as_type.917 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Z.type => constants.%Z.type.5d9 -// CHECK:STDOUT: %Self => constants.%Self.310 +// CHECK:STDOUT: %Z.type => constants.%Z.type.abb +// CHECK:STDOUT: %Self => constants.%Self.87c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.a20) {} +// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.95b) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf.Self.as_type.impls.Z.type.require(constants.%Self.a20) { -// CHECK:STDOUT: %Self => constants.%Self.a20 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.170 -// CHECK:STDOUT: %Z.type => constants.%Z.type.5d9 +// CHECK:STDOUT: specific @Y.WithSelf.Self.as_type.impls.Z.type.require(constants.%Self.95b) { +// CHECK:STDOUT: %Self => constants.%Self.95b +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.917 +// CHECK:STDOUT: %Z.type => constants.%Z.type.abb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%A, constants.%B) { @@ -288,8 +288,8 @@ fn F(B:! Y) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%A // CHECK:STDOUT: %Self.as_type => constants.%A.as_type -// CHECK:STDOUT: %Z.type => constants.%Z.type.cb505d.2 -// CHECK:STDOUT: %require_complete => constants.%require_complete.6c9163.2 +// CHECK:STDOUT: %Z.type => constants.%Z.type.ecd906.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.55f146.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%A.as_type) { @@ -299,29 +299,29 @@ fn F(B:! Y) { // CHECK:STDOUT: specific @Z.WithSelf(constants.%A.as_type, constants.%A) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%A.as_type -// CHECK:STDOUT: %Z.type => constants.%Z.type.cb505d.2 +// CHECK:STDOUT: %Z.type => constants.%Z.type.ecd906.2 // CHECK:STDOUT: %Self => constants.%A -// CHECK:STDOUT: %Z.WithSelf.F.type => constants.%Z.WithSelf.F.type.599 -// CHECK:STDOUT: %Z.WithSelf.F => constants.%Z.WithSelf.F.502 -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.bd3 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.3bd +// CHECK:STDOUT: %Z.WithSelf.F.type => constants.%Z.WithSelf.F.type.17c +// CHECK:STDOUT: %Z.WithSelf.F => constants.%Z.WithSelf.F.e89 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.48d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.f32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X.WithSelf.Self.as_type.impls.Z.type.require(constants.%A) { // CHECK:STDOUT: %Self => constants.%A // CHECK:STDOUT: %Self.as_type => constants.%A.as_type -// CHECK:STDOUT: %Z.type => constants.%Z.type.cb505d.2 +// CHECK:STDOUT: %Z.type => constants.%Z.type.ecd906.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%A.as_type, constants.%Z.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%A.as_type -// CHECK:STDOUT: %Z.type => constants.%Z.type.cb505d.2 +// CHECK:STDOUT: %Z.type => constants.%Z.type.ecd906.2 // CHECK:STDOUT: %Self => constants.%Z.facet -// CHECK:STDOUT: %Z.WithSelf.F.type => constants.%Z.WithSelf.F.type.0d4 -// CHECK:STDOUT: %Z.WithSelf.F => constants.%Z.WithSelf.F.d4d -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.bd3 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.3bd +// CHECK:STDOUT: %Z.WithSelf.F.type => constants.%Z.WithSelf.F.type.9e6 +// CHECK:STDOUT: %Z.WithSelf.F => constants.%Z.WithSelf.F.91a +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.48d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.f32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.F(constants.%A.as_type, constants.%Z.facet) {} diff --git a/toolchain/check/testdata/facet/runtime_value.carbon b/toolchain/check/testdata/facet/runtime_value.carbon index 3306fbaa5821..30f92c3c2ba0 100644 --- a/toolchain/check/testdata/facet/runtime_value.carbon +++ b/toolchain/check/testdata/facet/runtime_value.carbon @@ -134,14 +134,14 @@ fn F(T: Z) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.998: type = pattern_type %I.type [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %I.type [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%c.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.998 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6cb = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %i.ref: %C.elem = name_ref i, @C.%.loc6 [concrete = @C.%.loc6] @@ -159,13 +159,13 @@ fn F(T: Z) { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %facet_type: type = facet_type <@I & @J> [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %facet_type [concrete] -// CHECK:STDOUT: %pattern_type.998: type = pattern_type %I.type [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %I.type [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%c.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.998 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6cb = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %ij.ref: %C.elem = name_ref ij, @C.%.loc7 [concrete = @C.%.loc7] diff --git a/toolchain/check/testdata/facet/self_in_interface_param.carbon b/toolchain/check/testdata/facet/self_in_interface_param.carbon index b47daf45a0d0..7f767e0386a2 100644 --- a/toolchain/check/testdata/facet/self_in_interface_param.carbon +++ b/toolchain/check/testdata/facet/self_in_interface_param.carbon @@ -27,24 +27,24 @@ fn G(_:! I(.Self) where .I1 = ()) {} // CHECK:STDOUT: constants { // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] // CHECK:STDOUT: %.Self.as_type.246: type = facet_access_type %.Self.c39 [symbolic_self] -// CHECK:STDOUT: %I.type.273: type = facet_type <@I, @I(%.Self.as_type.246)> [symbolic_self] -// CHECK:STDOUT: %.Self.5c3: %I.type.273 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %I.assoc_type.a5d: type = assoc_entity_type @I, @I(%.Self.as_type.246) [symbolic_self] -// CHECK:STDOUT: %assoc0.fd5: %I.assoc_type.a5d = assoc_entity element0, @I.WithSelf.%I1 [symbolic_self] -// CHECK:STDOUT: %.Self.as_type.089: type = facet_access_type %.Self.5c3 [symbolic_self] -// CHECK:STDOUT: %I.lookup_impl_witness.ee0: = lookup_impl_witness %.Self.5c3, @I, @I(%.Self.as_type.246) [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness.ee0, element0 [symbolic_self] +// CHECK:STDOUT: %I.type.f3d: type = facet_type <@I, @I(%.Self.as_type.246)> [symbolic_self] +// CHECK:STDOUT: %.Self.0f0: %I.type.f3d = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %I.assoc_type.ea7: type = assoc_entity_type @I, @I(%.Self.as_type.246) [symbolic_self] +// CHECK:STDOUT: %assoc0.c72: %I.assoc_type.ea7 = assoc_entity element0, @I.WithSelf.%I1 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.a1c: type = facet_access_type %.Self.0f0 [symbolic_self] +// CHECK:STDOUT: %I.lookup_impl_witness.67f: = lookup_impl_witness %.Self.0f0, @I, @I(%.Self.as_type.246) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness.67f, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %I_where.type: type = facet_type <@I, @I(%.Self.as_type.246) where %impl.elem0 = %empty_tuple.type> [symbolic_self] -// CHECK:STDOUT: %pattern_type.511: type = pattern_type %I_where.type [symbolic_self] -// CHECK:STDOUT: %T.d76: %I_where.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.d76 [symbolic] +// CHECK:STDOUT: %pattern_type.021: type = pattern_type %I_where.type [symbolic_self] +// CHECK:STDOUT: %T.8c8: %I_where.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.8c8 [symbolic] // CHECK:STDOUT: %facet_value: %type = facet_value %T.as_type, () [symbolic] -// CHECK:STDOUT: %I.lookup_impl_witness.451: = lookup_impl_witness %T.d76, @I, @I(%T.as_type) [symbolic] +// CHECK:STDOUT: %I.lookup_impl_witness.506: = lookup_impl_witness %T.8c8, @I, @I(%T.as_type) [symbolic] // CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] @@ -53,39 +53,39 @@ fn G(_:! I(.Self) where .I1 = ()) {} // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %T.patt: %pattern_type.511 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.021 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %impl.elem0.loc18_39 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc18_7.2 [symbolic = %T.loc18_7.1 (constants.%T.d76)] +// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc18_7.2 [symbolic = %T.loc18_7.1 (constants.%T.8c8)] // CHECK:STDOUT: %T.as_type.loc18_39.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc18_39.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc18_39.1: type = converted %T.ref, %T.as_type.loc18_39.2 [symbolic = %T.as_type.loc18_39.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc18_39.2: %I.assoc_type.a5d = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%T.d76) [symbolic_self = constants.%assoc0.fd5] -// CHECK:STDOUT: %I1.ref.loc18_39: %I.assoc_type.a5d = name_ref I1, %.loc18_39.2 [symbolic_self = constants.%assoc0.fd5] +// CHECK:STDOUT: %.loc18_39.2: %I.assoc_type.ea7 = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%T.8c8) [symbolic_self = constants.%assoc0.c72] +// CHECK:STDOUT: %I1.ref.loc18_39: %I.assoc_type.ea7 = name_ref I1, %.loc18_39.2 [symbolic_self = constants.%assoc0.c72] // CHECK:STDOUT: %facet_value.loc18_39.2: %type = facet_value constants.%T.as_type, () [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] // CHECK:STDOUT: %.loc18_39.3: %type = converted constants.%T.as_type, %facet_value.loc18_39.2 [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %T.as_type.loc18_39.3: type = facet_access_type constants.%T.d76 [symbolic = %T.as_type.loc18_39.1 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc18_39.3: type = facet_access_type constants.%T.8c8 [symbolic = %T.as_type.loc18_39.1 (constants.%T.as_type)] // CHECK:STDOUT: %facet_value.loc18_39.3: %type = facet_value %T.as_type.loc18_39.3, () [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %.loc18_39.4: %type = converted constants.%T.d76, %facet_value.loc18_39.3 [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %T.as_type.loc18_39.4: type = facet_access_type constants.%T.d76 [symbolic = %T.as_type.loc18_39.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc18_39.4: %type = converted constants.%T.8c8, %facet_value.loc18_39.3 [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %T.as_type.loc18_39.4: type = facet_access_type constants.%T.8c8 [symbolic = %T.as_type.loc18_39.1 (constants.%T.as_type)] // CHECK:STDOUT: %facet_value.loc18_39.4: %type = facet_value %T.as_type.loc18_39.4, () [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %.loc18_39.5: %type = converted constants.%T.d76, %facet_value.loc18_39.4 [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0.loc18_39: type = impl_witness_access constants.%I.lookup_impl_witness.451, element0 [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: %.loc18_39.5: %type = converted constants.%T.8c8, %facet_value.loc18_39.4 [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %impl.elem0.loc18_39: type = impl_witness_access constants.%I.lookup_impl_witness.506, element0 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc18_39.6: Core.Form = init_form %impl.elem0.loc18_39 [concrete = constants.%.262] // CHECK:STDOUT: %.loc18_19.1: type = splice_block %.loc18_19.2 [symbolic_self = constants.%I_where.type] { // CHECK:STDOUT: %.Self.loc18_7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %.Self.ref.loc18_12: %type = name_ref .Self, %.Self.loc18_7 [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %.Self.as_type.loc18_17: type = facet_access_type %.Self.ref.loc18_12 [symbolic_self = constants.%.Self.as_type.246] // CHECK:STDOUT: %.loc18_17: type = converted %.Self.ref.loc18_12, %.Self.as_type.loc18_17 [symbolic_self = constants.%.Self.as_type.246] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%.Self.as_type.246)> [symbolic_self = constants.%I.type.273] -// CHECK:STDOUT: %.Self.loc18_19: %I.type.273 = symbolic_binding .Self [symbolic_self = constants.%.Self.5c3] -// CHECK:STDOUT: %.Self.ref.loc18_25: %I.type.273 = name_ref .Self, %.Self.loc18_19 [symbolic_self = constants.%.Self.5c3] -// CHECK:STDOUT: %.Self.as_type.loc18_25: type = facet_access_type %.Self.ref.loc18_25 [symbolic_self = constants.%.Self.as_type.089] -// CHECK:STDOUT: %.loc18_25.1: type = converted %.Self.ref.loc18_25, %.Self.as_type.loc18_25 [symbolic_self = constants.%.Self.as_type.089] -// CHECK:STDOUT: %.loc18_25.2: %I.assoc_type.a5d = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%.Self.5c3) [symbolic_self = constants.%assoc0.fd5] -// CHECK:STDOUT: %I1.ref.loc18_25: %I.assoc_type.a5d = name_ref I1, %.loc18_25.2 [symbolic_self = constants.%assoc0.fd5] -// CHECK:STDOUT: %impl.elem0.loc18_25: type = impl_witness_access constants.%I.lookup_impl_witness.ee0, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%.Self.as_type.246)> [symbolic_self = constants.%I.type.f3d] +// CHECK:STDOUT: %.Self.loc18_19: %I.type.f3d = symbolic_binding .Self [symbolic_self = constants.%.Self.0f0] +// CHECK:STDOUT: %.Self.ref.loc18_25: %I.type.f3d = name_ref .Self, %.Self.loc18_19 [symbolic_self = constants.%.Self.0f0] +// CHECK:STDOUT: %.Self.as_type.loc18_25: type = facet_access_type %.Self.ref.loc18_25 [symbolic_self = constants.%.Self.as_type.a1c] +// CHECK:STDOUT: %.loc18_25.1: type = converted %.Self.ref.loc18_25, %.Self.as_type.loc18_25 [symbolic_self = constants.%.Self.as_type.a1c] +// CHECK:STDOUT: %.loc18_25.2: %I.assoc_type.ea7 = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%.Self.0f0) [symbolic_self = constants.%assoc0.c72] +// CHECK:STDOUT: %I1.ref.loc18_25: %I.assoc_type.ea7 = name_ref I1, %.loc18_25.2 [symbolic_self = constants.%assoc0.c72] +// CHECK:STDOUT: %impl.elem0.loc18_25: type = impl_witness_access constants.%I.lookup_impl_witness.67f, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc18_32.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc18_32.2: type = converted %.loc18_32.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc18_19.2: type = where_expr [symbolic_self = constants.%I_where.type] { @@ -93,14 +93,14 @@ fn G(_:! I(.Self) where .I1 = ()) {} // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc18_25, %.loc18_32.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc18_7.2: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc18_7.1 (constants.%T.d76)] +// CHECK:STDOUT: %T.loc18_7.2: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc18_7.1 (constants.%T.8c8)] // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc18_7.2: %I_where.type) { -// CHECK:STDOUT: %T.loc18_7.1: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc18_7.1 (constants.%T.d76)] +// CHECK:STDOUT: %T.loc18_7.1: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc18_7.1 (constants.%T.8c8)] // CHECK:STDOUT: %T.as_type.loc18_39.1: type = facet_access_type %T.loc18_7.1 [symbolic = %T.as_type.loc18_39.1 (constants.%T.as_type)] // CHECK:STDOUT: %facet_value.loc18_39.1: %type = facet_value %T.as_type.loc18_39.1, () [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] // CHECK:STDOUT: @@ -115,8 +115,8 @@ fn G(_:! I(.Self) where .I1 = ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.d76) { -// CHECK:STDOUT: %T.loc18_7.1 => constants.%T.d76 +// CHECK:STDOUT: specific @F(constants.%T.8c8) { +// CHECK:STDOUT: %T.loc18_7.1 => constants.%T.8c8 // CHECK:STDOUT: %T.as_type.loc18_39.1 => constants.%T.as_type // CHECK:STDOUT: %facet_value.loc18_39.1 => constants.%facet_value // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/for/actual.carbon b/toolchain/check/testdata/for/actual.carbon index da09dfc72756..a5ebd74b5849 100644 --- a/toolchain/check/testdata/for/actual.carbon +++ b/toolchain/check/testdata/for/actual.carbon @@ -61,153 +61,153 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %IntRange.type: type = generic_class_type @IntRange [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %IntRange.generic: %IntRange.type = struct_value () [concrete] -// CHECK:STDOUT: %IntRange.6d0: type = class_type @IntRange, @IntRange(%N) [symbolic] +// CHECK:STDOUT: %IntRange.2c4: type = class_type @IntRange, @IntRange(%N) [symbolic] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] -// CHECK:STDOUT: %Int.2cc5f1.1: type = class_type @Int, @Int(%N) [symbolic] -// CHECK:STDOUT: %pattern_type.142972.1: type = pattern_type %Int.2cc5f1.1 [symbolic] -// CHECK:STDOUT: %.4e7: Core.Form = init_form %IntRange.6d0 [symbolic] -// CHECK:STDOUT: %pattern_type.255: type = pattern_type %IntRange.6d0 [symbolic] -// CHECK:STDOUT: %IntRange.Make.type.500: type = fn_type @IntRange.Make, @IntRange(%N) [symbolic] -// CHECK:STDOUT: %IntRange.Make.d7d: %IntRange.Make.type.500 = struct_value () [symbolic] +// CHECK:STDOUT: %Int.67af24.1: type = class_type @Int, @Int(%N) [symbolic] +// CHECK:STDOUT: %pattern_type.142cb7.1: type = pattern_type %Int.67af24.1 [symbolic] +// CHECK:STDOUT: %.5c3: Core.Form = init_form %IntRange.2c4 [symbolic] +// CHECK:STDOUT: %pattern_type.1ea: type = pattern_type %IntRange.2c4 [symbolic] +// CHECK:STDOUT: %IntRange.Make.type.522: type = fn_type @IntRange.Make, @IntRange(%N) [symbolic] +// CHECK:STDOUT: %IntRange.Make.8ef: %IntRange.Make.type.522 = struct_value () [symbolic] // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %facet_type.b7c: type = facet_type <@Destroy & @Copy> [concrete] +// CHECK:STDOUT: %facet_type.f48: type = facet_type <@Destroy & @Copy> [concrete] // CHECK:STDOUT: %Optional.type: type = generic_class_type @Optional [concrete] // CHECK:STDOUT: %Optional.generic: %Optional.type = struct_value () [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Optional.Some.type.b88: type = fn_type @Optional.Some, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.Some.e32: %Optional.Some.type.b88 = struct_value () [symbolic] -// CHECK:STDOUT: %Optional.None.type.bf3: type = fn_type @Optional.None, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.None.216: %Optional.None.type.bf3 = struct_value () [symbolic] -// CHECK:STDOUT: %.Self.e31: %Iterate.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.e31 [symbolic_self] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Optional.Some.type.304: type = fn_type @Optional.Some, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.Some.2a0: %Optional.Some.type.304 = struct_value () [symbolic] +// CHECK:STDOUT: %Optional.None.type.bdc: type = fn_type @Optional.None, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.None.01e: %Optional.None.type.bdc = struct_value () [symbolic] +// CHECK:STDOUT: %.Self.35d: %Iterate.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.35d [symbolic_self] // CHECK:STDOUT: %Iterate.assoc_type: type = assoc_entity_type @Iterate [concrete] -// CHECK:STDOUT: %assoc1.6df: %Iterate.assoc_type = assoc_entity element1, imports.%Core.import_ref.a75 [concrete] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.732: = lookup_impl_witness %.Self.e31, @Iterate [symbolic_self] -// CHECK:STDOUT: %impl.elem1.1c9: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.732, element1 [symbolic_self] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.c2c: = lookup_impl_witness %Int.2cc5f1.1, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.38c: %Destroy.type = facet_value %Int.2cc5f1.1, (%Destroy.lookup_impl_witness.c2c) [symbolic] -// CHECK:STDOUT: %assoc0.181: %Iterate.assoc_type = assoc_entity element0, imports.%Core.import_ref.3a1 [concrete] -// CHECK:STDOUT: %impl.elem0.03d: %facet_type.b7c = impl_witness_access %Iterate.lookup_impl_witness.732, element0 [symbolic_self] -// CHECK:STDOUT: %require_complete.692f79.1: = require_complete_type %Int.2cc5f1.1 [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %.245fba.1: Core.Form = init_form %Int.2cc5f1.1 [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.f90: = lookup_impl_witness %Int.2cc5f1.1, @Copy [symbolic] -// CHECK:STDOUT: %.8a3: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %facet_value: %facet_type.b7c = facet_value %Int.2cc5f1.1, (%Destroy.lookup_impl_witness.c2c, %Copy.lookup_impl_witness.f90) [symbolic] -// CHECK:STDOUT: %Iterate_where.type: type = facet_type <@Iterate where %impl.elem1.1c9 = %Destroy.facet.38c and %impl.elem0.03d = %facet_value> [symbolic] +// CHECK:STDOUT: %assoc1.c91: %Iterate.assoc_type = assoc_entity element1, imports.%Core.import_ref.dd9 [concrete] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.b37: = lookup_impl_witness %.Self.35d, @Iterate [symbolic_self] +// CHECK:STDOUT: %impl.elem1.543: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.b37, element1 [symbolic_self] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.173: = lookup_impl_witness %Int.67af24.1, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.7bb: %Destroy.type = facet_value %Int.67af24.1, (%Destroy.lookup_impl_witness.173) [symbolic] +// CHECK:STDOUT: %assoc0.0f0: %Iterate.assoc_type = assoc_entity element0, imports.%Core.import_ref.ebd [concrete] +// CHECK:STDOUT: %impl.elem0.903: %facet_type.f48 = impl_witness_access %Iterate.lookup_impl_witness.b37, element0 [symbolic_self] +// CHECK:STDOUT: %require_complete.4dfb92.1: = require_complete_type %Int.67af24.1 [symbolic] +// 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: %.df5d8d.1: Core.Form = init_form %Int.67af24.1 [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.df6: = lookup_impl_witness %Int.67af24.1, @Copy [symbolic] +// CHECK:STDOUT: %.a53: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%N) [symbolic] +// CHECK:STDOUT: %facet_value: %facet_type.f48 = facet_value %Int.67af24.1, (%Destroy.lookup_impl_witness.173, %Copy.lookup_impl_witness.df6) [symbolic] +// CHECK:STDOUT: %Iterate_where.type: type = facet_type <@Iterate where %impl.elem1.543 = %Destroy.facet.7bb and %impl.elem0.903 = %facet_value> [symbolic] // CHECK:STDOUT: %Iterate.impl_witness: = impl_witness @IntRange.as.Iterate.impl.%Iterate.impl_witness_table, @IntRange.as.Iterate.impl(%N) [symbolic] -// CHECK:STDOUT: %require_complete.a65: = require_complete_type %Iterate_where.type [symbolic] +// CHECK:STDOUT: %require_complete.975: = require_complete_type %Iterate_where.type [symbolic] // CHECK:STDOUT: %IntRange.as.Iterate.impl.NewCursor.type: type = fn_type @IntRange.as.Iterate.impl.NewCursor, @IntRange.as.Iterate.impl(%N) [symbolic] // CHECK:STDOUT: %IntRange.as.Iterate.impl.NewCursor: %IntRange.as.Iterate.impl.NewCursor.type = struct_value () [symbolic] -// CHECK:STDOUT: %ptr.f8f: type = ptr_type %Int.2cc5f1.1 [symbolic] -// CHECK:STDOUT: %pattern_type.fa7: type = pattern_type %ptr.f8f [symbolic] -// CHECK:STDOUT: %OptionalStorage.lookup_impl_witness.a55: = lookup_impl_witness %Int.2cc5f1.1, @OptionalStorage [symbolic] -// CHECK:STDOUT: %.a8e: require_specific_def_type = require_specific_def @T.as_type.as.OptionalStorage.impl(%facet_value) [symbolic] -// CHECK:STDOUT: %OptionalStorage.facet.6e7: %OptionalStorage.type = facet_value %Int.2cc5f1.1, (%OptionalStorage.lookup_impl_witness.a55) [symbolic] -// CHECK:STDOUT: %Optional.621: type = class_type @Optional, @Optional(%OptionalStorage.facet.6e7) [symbolic] -// CHECK:STDOUT: %.222: Core.Form = init_form %Optional.621 [symbolic] -// CHECK:STDOUT: %pattern_type.16e: type = pattern_type %Optional.621 [symbolic] +// CHECK:STDOUT: %ptr.41e: type = ptr_type %Int.67af24.1 [symbolic] +// CHECK:STDOUT: %pattern_type.833: type = pattern_type %ptr.41e [symbolic] +// CHECK:STDOUT: %OptionalStorage.lookup_impl_witness.a32: = lookup_impl_witness %Int.67af24.1, @OptionalStorage [symbolic] +// CHECK:STDOUT: %.17c: require_specific_def_type = require_specific_def @T.as_type.as.OptionalStorage.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %OptionalStorage.facet.b99: %OptionalStorage.type = facet_value %Int.67af24.1, (%OptionalStorage.lookup_impl_witness.a32) [symbolic] +// CHECK:STDOUT: %Optional.5ec: type = class_type @Optional, @Optional(%OptionalStorage.facet.b99) [symbolic] +// CHECK:STDOUT: %.3f3: Core.Form = init_form %Optional.5ec [symbolic] +// CHECK:STDOUT: %pattern_type.b38: type = pattern_type %Optional.5ec [symbolic] // CHECK:STDOUT: %IntRange.as.Iterate.impl.Next.type: type = fn_type @IntRange.as.Iterate.impl.Next, @IntRange.as.Iterate.impl(%N) [symbolic] // CHECK:STDOUT: %IntRange.as.Iterate.impl.Next: %IntRange.as.Iterate.impl.Next.type = struct_value () [symbolic] -// CHECK:STDOUT: %IntRange.elem.19c: type = unbound_element_type %IntRange.6d0, %Int.2cc5f1.1 [symbolic] -// CHECK:STDOUT: %struct_type.start.end.d60: type = struct_type {.start: %Int.2cc5f1.1, .end: %Int.2cc5f1.1} [symbolic] -// CHECK:STDOUT: %complete_type.b17: = complete_type_witness %struct_type.start.end.d60 [symbolic] -// CHECK:STDOUT: %require_complete.f50: = require_complete_type %IntRange.6d0 [symbolic] -// CHECK:STDOUT: %Copy.facet.718: %Copy.type = facet_value %Int.2cc5f1.1, (%Copy.lookup_impl_witness.f90) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.c6e: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.718) [symbolic] -// CHECK:STDOUT: %.435: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c6e, %Copy.facet.718 [symbolic] -// CHECK:STDOUT: %impl.elem0.f2b: %.435 = impl_witness_access %Copy.lookup_impl_witness.f90, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.f98: = specific_impl_function %impl.elem0.f2b, @Copy.WithSelf.Op(%Copy.facet.718) [symbolic] -// CHECK:STDOUT: %require_complete.39d: = require_complete_type %ptr.f8f [symbolic] -// CHECK:STDOUT: %Optional.None.type.0f7: type = fn_type @Optional.None, @Optional(%OptionalStorage.facet.6e7) [symbolic] -// CHECK:STDOUT: %Optional.None.aad: %Optional.None.type.0f7 = struct_value () [symbolic] -// CHECK:STDOUT: %Optional.Some.type.fd4: type = fn_type @Optional.Some, @Optional(%OptionalStorage.facet.6e7) [symbolic] -// CHECK:STDOUT: %Optional.Some.f95: %Optional.Some.type.fd4 = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.193: = require_complete_type %Optional.621 [symbolic] -// CHECK:STDOUT: %OrderedWith.type.b9f: type = generic_interface_type @OrderedWith [concrete] -// CHECK:STDOUT: %OrderedWith.generic: %OrderedWith.type.b9f = struct_value () [concrete] +// CHECK:STDOUT: %IntRange.elem.bed: type = unbound_element_type %IntRange.2c4, %Int.67af24.1 [symbolic] +// CHECK:STDOUT: %struct_type.start.end.d4d: type = struct_type {.start: %Int.67af24.1, .end: %Int.67af24.1} [symbolic] +// CHECK:STDOUT: %complete_type.aa1: = complete_type_witness %struct_type.start.end.d4d [symbolic] +// CHECK:STDOUT: %require_complete.5d9: = require_complete_type %IntRange.2c4 [symbolic] +// CHECK:STDOUT: %Copy.facet.f12: %Copy.type = facet_value %Int.67af24.1, (%Copy.lookup_impl_witness.df6) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.b83: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.f12) [symbolic] +// CHECK:STDOUT: %.c60: type = fn_type_with_self_type %Copy.WithSelf.Op.type.b83, %Copy.facet.f12 [symbolic] +// CHECK:STDOUT: %impl.elem0.284: %.c60 = impl_witness_access %Copy.lookup_impl_witness.df6, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.f9f: = specific_impl_function %impl.elem0.284, @Copy.WithSelf.Op(%Copy.facet.f12) [symbolic] +// CHECK:STDOUT: %require_complete.f79: = require_complete_type %ptr.41e [symbolic] +// CHECK:STDOUT: %Optional.None.type.2aa: type = fn_type @Optional.None, @Optional(%OptionalStorage.facet.b99) [symbolic] +// CHECK:STDOUT: %Optional.None.fb7: %Optional.None.type.2aa = struct_value () [symbolic] +// CHECK:STDOUT: %Optional.Some.type.422: type = fn_type @Optional.Some, @Optional(%OptionalStorage.facet.b99) [symbolic] +// CHECK:STDOUT: %Optional.Some.bcf: %Optional.Some.type.422 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.63c: = require_complete_type %Optional.5ec [symbolic] +// CHECK:STDOUT: %OrderedWith.type.ad8: type = generic_interface_type @OrderedWith [concrete] +// CHECK:STDOUT: %OrderedWith.generic: %OrderedWith.type.ad8 = struct_value () [concrete] // CHECK:STDOUT: %Other: type = symbolic_binding Other, 0 [symbolic] -// CHECK:STDOUT: %OrderedWith.type.73d: type = facet_type <@OrderedWith, @OrderedWith(%Other)> [symbolic] -// CHECK:STDOUT: %Self.d014: %OrderedWith.type.73d = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %OrderedWith.assoc_type.2fa: type = assoc_entity_type @OrderedWith, @OrderedWith(%Other) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.687: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Other, %Self.d014) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.4a9: %OrderedWith.WithSelf.Less.type.687 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.type.c0b: type = facet_type <@OrderedWith, @OrderedWith(%Int.2cc5f1.1)> [symbolic] -// CHECK:STDOUT: %OrderedWith.assoc_type.6b3: type = assoc_entity_type @OrderedWith, @OrderedWith(%Int.2cc5f1.1) [symbolic] -// CHECK:STDOUT: %assoc0.791: %OrderedWith.assoc_type.6b3 = assoc_entity element0, imports.%Core.import_ref.5cd [symbolic] -// CHECK:STDOUT: %require_complete.77f: = require_complete_type %OrderedWith.type.c0b [symbolic] -// CHECK:STDOUT: %assoc0.3ff: %OrderedWith.assoc_type.2fa = assoc_entity element0, imports.%Core.import_ref.c33 [symbolic] +// CHECK:STDOUT: %OrderedWith.type.32a: type = facet_type <@OrderedWith, @OrderedWith(%Other)> [symbolic] +// CHECK:STDOUT: %Self.7df: %OrderedWith.type.32a = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %OrderedWith.assoc_type.1d2: type = assoc_entity_type @OrderedWith, @OrderedWith(%Other) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.b87: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Other, %Self.7df) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.9e1: %OrderedWith.WithSelf.Less.type.b87 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.type.6f8: type = facet_type <@OrderedWith, @OrderedWith(%Int.67af24.1)> [symbolic] +// CHECK:STDOUT: %OrderedWith.assoc_type.e6d: type = assoc_entity_type @OrderedWith, @OrderedWith(%Int.67af24.1) [symbolic] +// CHECK:STDOUT: %assoc0.ebc: %OrderedWith.assoc_type.e6d = assoc_entity element0, imports.%Core.import_ref.e7a [symbolic] +// CHECK:STDOUT: %require_complete.4c8: = require_complete_type %OrderedWith.type.6f8 [symbolic] +// CHECK:STDOUT: %assoc0.13c: %OrderedWith.assoc_type.1d2 = assoc_entity element0, imports.%Core.import_ref.447 [symbolic] // CHECK:STDOUT: %M: Core.IntLiteral = symbolic_binding M, 1 [symbolic] -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.type.8a1: type = fn_type @Int.as.OrderedWith.impl.Less.1, @Int.as.OrderedWith.impl.099(%N, %M) [symbolic] -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.b66: %Int.as.OrderedWith.impl.Less.type.8a1 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.impl_witness.8f9: = impl_witness imports.%OrderedWith.impl_witness_table.274, @Int.as.OrderedWith.impl.099(%N, %N) [symbolic] -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.type.e0f: type = fn_type @Int.as.OrderedWith.impl.Less.1, @Int.as.OrderedWith.impl.099(%N, %N) [symbolic] -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.cbf: %Int.as.OrderedWith.impl.Less.type.e0f = struct_value () [symbolic] -// CHECK:STDOUT: %.353: require_specific_def_type = require_specific_def @Int.as.OrderedWith.impl.099(%N, %N) [symbolic] -// CHECK:STDOUT: %OrderedWith.facet.16b: %OrderedWith.type.c0b = facet_value %Int.2cc5f1.1, (%OrderedWith.impl_witness.8f9) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.e25: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Int.2cc5f1.1, %OrderedWith.facet.16b) [symbolic] -// CHECK:STDOUT: %.d67: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.e25, %OrderedWith.facet.16b [symbolic] -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.specific_fn.cc7: = specific_function %Int.as.OrderedWith.impl.Less.cbf, @Int.as.OrderedWith.impl.Less.1(%N, %N) [symbolic] +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.type.89b: type = fn_type @Int.as.OrderedWith.impl.Less.1, @Int.as.OrderedWith.impl.ab3(%N, %M) [symbolic] +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.050: %Int.as.OrderedWith.impl.Less.type.89b = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.impl_witness.339: = impl_witness imports.%OrderedWith.impl_witness_table.5c1, @Int.as.OrderedWith.impl.ab3(%N, %N) [symbolic] +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.type.f5c: type = fn_type @Int.as.OrderedWith.impl.Less.1, @Int.as.OrderedWith.impl.ab3(%N, %N) [symbolic] +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.13c: %Int.as.OrderedWith.impl.Less.type.f5c = struct_value () [symbolic] +// CHECK:STDOUT: %.4a8: require_specific_def_type = require_specific_def @Int.as.OrderedWith.impl.ab3(%N, %N) [symbolic] +// CHECK:STDOUT: %OrderedWith.facet.bf1: %OrderedWith.type.6f8 = facet_value %Int.67af24.1, (%OrderedWith.impl_witness.339) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.c02: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Int.67af24.1, %OrderedWith.facet.bf1) [symbolic] +// CHECK:STDOUT: %.08f: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.c02, %OrderedWith.facet.bf1 [symbolic] +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.specific_fn.6ce: = specific_function %Int.as.OrderedWith.impl.Less.13c, @Int.as.OrderedWith.impl.Less.1(%N, %N) [symbolic] // CHECK:STDOUT: %Inc.type: type = facet_type <@Inc> [concrete] -// CHECK:STDOUT: %Inc.lookup_impl_witness: = lookup_impl_witness %Int.2cc5f1.1, @Inc [symbolic] -// CHECK:STDOUT: %.689: require_specific_def_type = require_specific_def @Int.as.Inc.impl(%N) [symbolic] -// CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %Int.2cc5f1.1, (%Inc.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Inc.WithSelf.Op.type.45e: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%Inc.facet) [symbolic] -// CHECK:STDOUT: %.7cf: type = fn_type_with_self_type %Inc.WithSelf.Op.type.45e, %Inc.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.e3c: %.7cf = impl_witness_access %Inc.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.461: = specific_impl_function %impl.elem0.e3c, @Inc.WithSelf.Op(%Inc.facet) [symbolic] -// CHECK:STDOUT: %Optional.Some.specific_fn: = specific_function %Optional.Some.f95, @Optional.Some(%OptionalStorage.facet.6e7) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.833: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.38c) [symbolic] -// CHECK:STDOUT: %.b6c: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.833, %Destroy.facet.38c [symbolic] -// CHECK:STDOUT: %impl.elem0.913: %.b6c = impl_witness_access %Destroy.lookup_impl_witness.c2c, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.c0a: = specific_impl_function %impl.elem0.913, @Destroy.WithSelf.Op(%Destroy.facet.38c) [symbolic] -// CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %Optional.None.aad, @Optional.None(%OptionalStorage.facet.6e7) [symbolic] +// CHECK:STDOUT: %Inc.lookup_impl_witness: = lookup_impl_witness %Int.67af24.1, @Inc [symbolic] +// CHECK:STDOUT: %.f62: require_specific_def_type = require_specific_def @Int.as.Inc.impl(%N) [symbolic] +// CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %Int.67af24.1, (%Inc.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Inc.WithSelf.Op.type.36a: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%Inc.facet) [symbolic] +// CHECK:STDOUT: %.952: type = fn_type_with_self_type %Inc.WithSelf.Op.type.36a, %Inc.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.7b5: %.952 = impl_witness_access %Inc.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.ed1: = specific_impl_function %impl.elem0.7b5, @Inc.WithSelf.Op(%Inc.facet) [symbolic] +// CHECK:STDOUT: %Optional.Some.specific_fn: = specific_function %Optional.Some.bcf, @Optional.Some(%OptionalStorage.facet.b99) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.8f1: type = fn_type @Destroy.WithSelf.Op, @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: %Optional.None.specific_fn: = specific_function %Optional.None.fb7, @Optional.None(%OptionalStorage.facet.b99) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %IntRange.c25: type = class_type @IntRange, @IntRange(%int_32) [concrete] -// CHECK:STDOUT: %.fdc: Core.Form = init_form %IntRange.c25 [concrete] -// CHECK:STDOUT: %pattern_type.ea5: type = pattern_type %IntRange.c25 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %IntRange.bbd: type = class_type @IntRange, @IntRange(%int_32) [concrete] +// CHECK:STDOUT: %.9fd: Core.Form = init_form %IntRange.bbd [concrete] +// CHECK:STDOUT: %pattern_type.0f3: type = pattern_type %IntRange.bbd [concrete] // CHECK:STDOUT: %Range.type: type = fn_type @Range [concrete] // CHECK:STDOUT: %Range: %Range.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %IntRange.Make.type.6de: type = fn_type @IntRange.Make, @IntRange(%int_32) [concrete] -// CHECK:STDOUT: %IntRange.Make.2b6: %IntRange.Make.type.6de = struct_value () [concrete] -// CHECK:STDOUT: %IntRange.elem.aeb: type = unbound_element_type %IntRange.c25, %i32 [concrete] -// CHECK:STDOUT: %struct_type.start.end.ace: type = struct_type {.start: %i32, .end: %i32} [concrete] -// CHECK:STDOUT: %complete_type.0a3: = complete_type_witness %struct_type.start.end.ace [concrete] +// CHECK:STDOUT: %IntRange.Make.type.d27: type = fn_type @IntRange.Make, @IntRange(%int_32) [concrete] +// CHECK:STDOUT: %IntRange.Make.9ef: %IntRange.Make.type.d27 = struct_value () [concrete] +// CHECK:STDOUT: %IntRange.elem.6b1: type = unbound_element_type %IntRange.bbd, %i32 [concrete] +// CHECK:STDOUT: %struct_type.start.end.e93: type = struct_type {.start: %i32, .end: %i32} [concrete] +// CHECK:STDOUT: %complete_type.ec7: = complete_type_witness %struct_type.start.end.e93 [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %IntRange.Make.specific_fn: = specific_function %IntRange.Make.2b6, @IntRange.Make(%int_32) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %IntRange.Make.specific_fn: = specific_function %IntRange.Make.9ef, @IntRange.Make(%int_32) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.840: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.840) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet.840 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.9f1: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.9f1) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet.9f1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %.9ea: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Copy.facet.14d: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet.14d [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %.cf6: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Copy.facet.987: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet.987 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -216,7 +216,7 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: .Int = %Core.Int // CHECK:STDOUT: .Iterate = %Core.Iterate // CHECK:STDOUT: .Optional = %Core.Optional -// CHECK:STDOUT: .Copy = %Core.Copy.8f5 +// CHECK:STDOUT: .Copy = %Core.Copy.e5d // CHECK:STDOUT: .OrderedWith = %Core.OrderedWith // CHECK:STDOUT: .Inc = %Core.Inc // CHECK:STDOUT: .Destroy = %Core.Destroy @@ -227,32 +227,32 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %Core.IntLiteral: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [concrete = constants.%IntLiteral] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Iterate: type = import_ref Core//prelude/iterate, Iterate, loaded [concrete = constants.%Iterate.type] -// CHECK:STDOUT: %Core.import_ref.5b6: %Iterate.assoc_type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc0.181] -// CHECK:STDOUT: %Core.import_ref.7ba: %Iterate.assoc_type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc1.6df] -// CHECK:STDOUT: %Core.import_ref.3be: @Optional.%Optional.None.type (%Optional.None.type.bf3) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.None (constants.%Optional.None.216)] -// CHECK:STDOUT: %Core.import_ref.820: @Optional.%Optional.Some.type (%Optional.Some.type.b88) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Some (constants.%Optional.Some.e32)] -// CHECK:STDOUT: %Core.import_ref.a75: %Destroy.type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [concrete = %CursorType] +// CHECK:STDOUT: %Core.import_ref.96b: %Iterate.assoc_type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc0.0f0] +// CHECK:STDOUT: %Core.import_ref.5be: %Iterate.assoc_type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc1.c91] +// CHECK:STDOUT: %Core.import_ref.6e4: @Optional.%Optional.None.type (%Optional.None.type.bdc) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.None (constants.%Optional.None.01e)] +// CHECK:STDOUT: %Core.import_ref.84b: @Optional.%Optional.Some.type (%Optional.Some.type.304) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Some (constants.%Optional.Some.2a0)] +// CHECK:STDOUT: %Core.import_ref.dd9: %Destroy.type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [concrete = %CursorType] // CHECK:STDOUT: %CursorType: %Destroy.type = assoc_const_decl @CursorType [concrete] {} -// CHECK:STDOUT: %Core.import_ref.3a1: %facet_type.b7c = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [concrete = %ElementType] -// CHECK:STDOUT: %ElementType: %facet_type.b7c = assoc_const_decl @ElementType [concrete] {} -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.ebd: %facet_type.f48 = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [concrete = %ElementType] +// CHECK:STDOUT: %ElementType: %facet_type.f48 = assoc_const_decl @ElementType [concrete] {} +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Optional: %Optional.type = import_ref Core//prelude/types/optional, Optional, loaded [concrete = constants.%Optional.generic] -// CHECK:STDOUT: %Core.Copy.8f5: type = import_ref Core//prelude/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.OrderedWith: %OrderedWith.type.b9f = import_ref Core//prelude/operators/comparison, OrderedWith, loaded [concrete = constants.%OrderedWith.generic] -// CHECK:STDOUT: %Core.import_ref.eb4: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fa) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc0 (constants.%assoc0.3ff)] -// CHECK:STDOUT: %Core.import_ref.5cd: @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less.type (%OrderedWith.WithSelf.Less.type.687) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less (constants.%OrderedWith.WithSelf.Less.4a9)] -// CHECK:STDOUT: %Core.import_ref.c33 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.b9b: @Int.as.OrderedWith.impl.099.%Int.as.OrderedWith.impl.Less.type (%Int.as.OrderedWith.impl.Less.type.8a1) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.OrderedWith.impl.099.%Int.as.OrderedWith.impl.Less (constants.%Int.as.OrderedWith.impl.Less.b66)] -// CHECK:STDOUT: %Core.import_ref.c31 = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f58 = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.cdc = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %OrderedWith.impl_witness_table.274 = impl_witness_table (%Core.import_ref.b9b, %Core.import_ref.c31, %Core.import_ref.f58, %Core.import_ref.cdc), @Int.as.OrderedWith.impl.099 [concrete] +// CHECK:STDOUT: %Core.Copy.e5d: type = import_ref Core//prelude/copy, Copy, loaded [concrete = constants.%Copy.type] +// CHECK:STDOUT: %Core.OrderedWith: %OrderedWith.type.ad8 = import_ref Core//prelude/operators/comparison, OrderedWith, loaded [concrete = constants.%OrderedWith.generic] +// CHECK:STDOUT: %Core.import_ref.ef7: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc0 (constants.%assoc0.13c)] +// CHECK:STDOUT: %Core.import_ref.e7a: @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less.type (%OrderedWith.WithSelf.Less.type.b87) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less (constants.%OrderedWith.WithSelf.Less.9e1)] +// CHECK:STDOUT: %Core.import_ref.447 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.c1c: @Int.as.OrderedWith.impl.ab3.%Int.as.OrderedWith.impl.Less.type (%Int.as.OrderedWith.impl.Less.type.89b) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.OrderedWith.impl.ab3.%Int.as.OrderedWith.impl.Less (constants.%Int.as.OrderedWith.impl.Less.050)] +// CHECK:STDOUT: %Core.import_ref.30c = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.664 = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.9d4 = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %OrderedWith.impl_witness_table.5c1 = impl_witness_table (%Core.import_ref.c1c, %Core.import_ref.30c, %Core.import_ref.664, %Core.import_ref.9d4), @Int.as.OrderedWith.impl.ab3 [concrete] // CHECK:STDOUT: %Core.Inc: type = import_ref Core//prelude/operators/arithmetic, Inc, loaded [concrete = constants.%Inc.type] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -276,37 +276,37 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %N.loc4_17.2: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N.loc4_17.1 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: %Range.decl: %Range.type = fn_decl @Range [concrete = constants.%Range] { -// CHECK:STDOUT: %end.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %end.patt: %pattern_type.104 = at_binding_pattern end, %end.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.ea5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.ea5 = return_slot_pattern %return.param_patt, %IntRange.loc26 [concrete] +// CHECK:STDOUT: %end.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %end.patt: %pattern_type.6b6 = at_binding_pattern end, %end.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.0f3 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.0f3 = return_slot_pattern %return.param_patt, %IntRange.loc26 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %IntRange.ref.loc26: %IntRange.type = name_ref IntRange, file.%IntRange.decl [concrete = constants.%IntRange.generic] // CHECK:STDOUT: %int_32.loc26: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] -// CHECK:STDOUT: %IntRange.loc26: type = class_type @IntRange, @IntRange(constants.%int_32) [concrete = constants.%IntRange.c25] -// CHECK:STDOUT: %.loc26_34.2: Core.Form = init_form %IntRange.loc26 [concrete = constants.%.fdc] +// CHECK:STDOUT: %IntRange.loc26: type = class_type @IntRange, @IntRange(constants.%int_32) [concrete = constants.%IntRange.bbd] +// CHECK:STDOUT: %.loc26_34.2: Core.Form = init_form %IntRange.loc26 [concrete = constants.%.9fd] // CHECK:STDOUT: %end.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %end: %i32 = value_binding end, %end.param -// CHECK:STDOUT: %return.param: ref %IntRange.c25 = out_param call_param1 -// CHECK:STDOUT: %return: ref %IntRange.c25 = return_slot %return.param +// CHECK:STDOUT: %return.param: ref %IntRange.bbd = out_param call_param1 +// CHECK:STDOUT: %return: ref %IntRange.bbd = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic impl @IntRange.as.Iterate.impl(@IntRange.%N.loc4_17.2: Core.IntLiteral) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.6d0)] -// CHECK:STDOUT: %Int.loc9_54.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc9_54.1 (constants.%Int.2cc5f1.1)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Int.loc9_54.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.c2c)] -// CHECK:STDOUT: %Destroy.facet.loc9_54.1: %Destroy.type = facet_value %Int.loc9_54.1, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet.loc9_54.1 (constants.%Destroy.facet.38c)] -// CHECK:STDOUT: %.loc9_85.1: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%N) [symbolic = %.loc9_85.1 (constants.%.8a3)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %Int.loc9_54.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.f90)] -// CHECK:STDOUT: %facet_value.loc9_85.1: %facet_type.b7c = facet_value %Int.loc9_54.1, (%Destroy.lookup_impl_witness, %Copy.lookup_impl_witness) [symbolic = %facet_value.loc9_85.1 (constants.%facet_value)] -// CHECK:STDOUT: %Iterate_where.type: type = facet_type <@Iterate where constants.%impl.elem1.1c9 = %Destroy.facet.loc9_54.1 and constants.%impl.elem0.03d = %facet_value.loc9_85.1> [symbolic = %Iterate_where.type (constants.%Iterate_where.type)] +// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.2c4)] +// CHECK:STDOUT: %Int.loc9_54.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc9_54.1 (constants.%Int.67af24.1)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Int.loc9_54.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.173)] +// CHECK:STDOUT: %Destroy.facet.loc9_54.1: %Destroy.type = facet_value %Int.loc9_54.1, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet.loc9_54.1 (constants.%Destroy.facet.7bb)] +// CHECK:STDOUT: %.loc9_85.1: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%N) [symbolic = %.loc9_85.1 (constants.%.a53)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %Int.loc9_54.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.df6)] +// CHECK:STDOUT: %facet_value.loc9_85.1: %facet_type.f48 = facet_value %Int.loc9_54.1, (%Destroy.lookup_impl_witness, %Copy.lookup_impl_witness) [symbolic = %facet_value.loc9_85.1 (constants.%facet_value)] +// CHECK:STDOUT: %Iterate_where.type: type = facet_type <@Iterate where constants.%impl.elem1.543 = %Destroy.facet.loc9_54.1 and constants.%impl.elem0.903 = %facet_value.loc9_85.1> [symbolic = %Iterate_where.type (constants.%Iterate_where.type)] // CHECK:STDOUT: %Iterate.impl_witness.loc9_87.2: = impl_witness %Iterate.impl_witness_table, @IntRange.as.Iterate.impl(%N) [symbolic = %Iterate.impl_witness.loc9_87.2 (constants.%Iterate.impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Iterate_where.type [symbolic = %require_complete (constants.%require_complete.a65)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Iterate_where.type [symbolic = %require_complete (constants.%require_complete.975)] // CHECK:STDOUT: %IntRange.as.Iterate.impl.NewCursor.type: type = fn_type @IntRange.as.Iterate.impl.NewCursor, @IntRange.as.Iterate.impl(%N) [symbolic = %IntRange.as.Iterate.impl.NewCursor.type (constants.%IntRange.as.Iterate.impl.NewCursor.type)] // CHECK:STDOUT: %IntRange.as.Iterate.impl.NewCursor: @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.NewCursor.type (%IntRange.as.Iterate.impl.NewCursor.type) = struct_value () [symbolic = %IntRange.as.Iterate.impl.NewCursor (constants.%IntRange.as.Iterate.impl.NewCursor)] // CHECK:STDOUT: %IntRange.as.Iterate.impl.Next.type: type = fn_type @IntRange.as.Iterate.impl.Next, @IntRange.as.Iterate.impl(%N) [symbolic = %IntRange.as.Iterate.impl.Next.type (constants.%IntRange.as.Iterate.impl.Next.type)] @@ -314,65 +314,65 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: // CHECK:STDOUT: impl: %Self.ref as %.loc9_24 { // CHECK:STDOUT: %IntRange.as.Iterate.impl.NewCursor.decl: @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.NewCursor.type (%IntRange.as.Iterate.impl.NewCursor.type) = fn_decl @IntRange.as.Iterate.impl.NewCursor [symbolic = @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.NewCursor (constants.%IntRange.as.Iterate.impl.NewCursor)] { -// CHECK:STDOUT: %self.param_patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_22 (%pattern_type.255) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_22 (%pattern_type.255) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_45 (%pattern_type.142972.1) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_45 (%pattern_type.142972.1) = return_slot_pattern %return.param_patt, %Int.loc10_45.2 [concrete] +// CHECK:STDOUT: %self.param_patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_22 (%pattern_type.1ea) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_22 (%pattern_type.1ea) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_45 (%pattern_type.142cb7.1) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_45 (%pattern_type.142cb7.1) = return_slot_pattern %return.param_patt, %Int.loc10_45.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] // CHECK:STDOUT: %N.ref: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_17.2 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc10_45.2: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc10_45.1 (constants.%Int.2cc5f1.1)] -// CHECK:STDOUT: %.loc10_45.2: Core.Form = init_form %Int.loc10_45.2 [symbolic = %.loc10_45.1 (constants.%.245fba.1)] -// CHECK:STDOUT: %self.param: @IntRange.as.Iterate.impl.NewCursor.%IntRange (%IntRange.6d0) = value_param call_param0 -// CHECK:STDOUT: %.loc10_24.1: type = splice_block %Self.ref [symbolic = %IntRange (constants.%IntRange.6d0)] { -// CHECK:STDOUT: %.loc10_24.2: type = specific_constant constants.%IntRange.6d0, @IntRange(constants.%N) [symbolic = %IntRange (constants.%IntRange.6d0)] -// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc10_24.2 [symbolic = %IntRange (constants.%IntRange.6d0)] +// CHECK:STDOUT: %Int.loc10_45.2: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc10_45.1 (constants.%Int.67af24.1)] +// CHECK:STDOUT: %.loc10_45.2: Core.Form = init_form %Int.loc10_45.2 [symbolic = %.loc10_45.1 (constants.%.df5d8d.1)] +// CHECK:STDOUT: %self.param: @IntRange.as.Iterate.impl.NewCursor.%IntRange (%IntRange.2c4) = value_param call_param0 +// CHECK:STDOUT: %.loc10_24.1: type = splice_block %Self.ref [symbolic = %IntRange (constants.%IntRange.2c4)] { +// CHECK:STDOUT: %.loc10_24.2: type = specific_constant constants.%IntRange.2c4, @IntRange(constants.%N) [symbolic = %IntRange (constants.%IntRange.2c4)] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc10_24.2 [symbolic = %IntRange (constants.%IntRange.2c4)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @IntRange.as.Iterate.impl.NewCursor.%IntRange (%IntRange.6d0) = value_binding self, %self.param -// CHECK:STDOUT: %return.param: ref @IntRange.as.Iterate.impl.NewCursor.%Int.loc10_45.1 (%Int.2cc5f1.1) = out_param call_param1 -// CHECK:STDOUT: %return: ref @IntRange.as.Iterate.impl.NewCursor.%Int.loc10_45.1 (%Int.2cc5f1.1) = return_slot %return.param +// CHECK:STDOUT: %self: @IntRange.as.Iterate.impl.NewCursor.%IntRange (%IntRange.2c4) = value_binding self, %self.param +// CHECK:STDOUT: %return.param: ref @IntRange.as.Iterate.impl.NewCursor.%Int.loc10_45.1 (%Int.67af24.1) = out_param call_param1 +// CHECK:STDOUT: %return: ref @IntRange.as.Iterate.impl.NewCursor.%Int.loc10_45.1 (%Int.67af24.1) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %IntRange.as.Iterate.impl.Next.decl: @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.Next.type (%IntRange.as.Iterate.impl.Next.type) = fn_decl @IntRange.as.Iterate.impl.Next [symbolic = @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.Next (constants.%IntRange.as.Iterate.impl.Next)] { -// CHECK:STDOUT: %self.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_17 (%pattern_type.255) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_17 (%pattern_type.255) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %cursor.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_31 (%pattern_type.fa7) = value_param_pattern [concrete] -// CHECK:STDOUT: %cursor.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_31 (%pattern_type.fa7) = at_binding_pattern cursor, %cursor.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_75 (%pattern_type.16e) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_75 (%pattern_type.16e) = return_slot_pattern %return.param_patt, %Optional.loc11_75.2 [concrete] +// CHECK:STDOUT: %self.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_17 (%pattern_type.1ea) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_17 (%pattern_type.1ea) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %cursor.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_31 (%pattern_type.833) = value_param_pattern [concrete] +// CHECK:STDOUT: %cursor.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_31 (%pattern_type.833) = at_binding_pattern cursor, %cursor.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_75 (%pattern_type.b38) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_75 (%pattern_type.b38) = return_slot_pattern %return.param_patt, %Optional.loc11_75.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Core.ref.loc11_50: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Optional.ref.loc11: %Optional.type = name_ref Optional, imports.%Core.Optional [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Core.ref.loc11_64: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc11_68: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] // CHECK:STDOUT: %N.ref.loc11_73: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_17.2 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc11_74: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.1 (constants.%Int.2cc5f1.1)] -// CHECK:STDOUT: %OptionalStorage.facet.loc11_75.2: %OptionalStorage.type = facet_value %Int.loc11_74, (constants.%OptionalStorage.lookup_impl_witness.a55) [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.6e7)] -// CHECK:STDOUT: %.loc11_75.5: %OptionalStorage.type = converted %Int.loc11_74, %OptionalStorage.facet.loc11_75.2 [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.6e7)] -// CHECK:STDOUT: %Optional.loc11_75.2: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.6e7) [symbolic = %Optional.loc11_75.1 (constants.%Optional.621)] -// CHECK:STDOUT: %.loc11_75.6: Core.Form = init_form %Optional.loc11_75.2 [symbolic = %.loc11_75.4 (constants.%.222)] -// CHECK:STDOUT: %self.param: @IntRange.as.Iterate.impl.Next.%IntRange (%IntRange.6d0) = value_param call_param0 -// CHECK:STDOUT: %.loc11_19.1: type = splice_block %Self.ref [symbolic = %IntRange (constants.%IntRange.6d0)] { -// CHECK:STDOUT: %.loc11_19.2: type = specific_constant constants.%IntRange.6d0, @IntRange(constants.%N) [symbolic = %IntRange (constants.%IntRange.6d0)] -// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc11_19.2 [symbolic = %IntRange (constants.%IntRange.6d0)] +// CHECK:STDOUT: %Int.loc11_74: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.1 (constants.%Int.67af24.1)] +// CHECK:STDOUT: %OptionalStorage.facet.loc11_75.2: %OptionalStorage.type = facet_value %Int.loc11_74, (constants.%OptionalStorage.lookup_impl_witness.a32) [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.b99)] +// CHECK:STDOUT: %.loc11_75.5: %OptionalStorage.type = converted %Int.loc11_74, %OptionalStorage.facet.loc11_75.2 [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.b99)] +// CHECK:STDOUT: %Optional.loc11_75.2: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.b99) [symbolic = %Optional.loc11_75.1 (constants.%Optional.5ec)] +// CHECK:STDOUT: %.loc11_75.6: Core.Form = init_form %Optional.loc11_75.2 [symbolic = %.loc11_75.4 (constants.%.3f3)] +// CHECK:STDOUT: %self.param: @IntRange.as.Iterate.impl.Next.%IntRange (%IntRange.2c4) = value_param call_param0 +// CHECK:STDOUT: %.loc11_19.1: type = splice_block %Self.ref [symbolic = %IntRange (constants.%IntRange.2c4)] { +// CHECK:STDOUT: %.loc11_19.2: type = specific_constant constants.%IntRange.2c4, @IntRange(constants.%N) [symbolic = %IntRange (constants.%IntRange.2c4)] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc11_19.2 [symbolic = %IntRange (constants.%IntRange.2c4)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @IntRange.as.Iterate.impl.Next.%IntRange (%IntRange.6d0) = value_binding self, %self.param -// CHECK:STDOUT: %cursor.param: @IntRange.as.Iterate.impl.Next.%ptr.loc11_44.1 (%ptr.f8f) = value_param call_param1 -// CHECK:STDOUT: %.loc11_44: type = splice_block %ptr.loc11_44.2 [symbolic = %ptr.loc11_44.1 (constants.%ptr.f8f)] { +// CHECK:STDOUT: %self: @IntRange.as.Iterate.impl.Next.%IntRange (%IntRange.2c4) = value_binding self, %self.param +// CHECK:STDOUT: %cursor.param: @IntRange.as.Iterate.impl.Next.%ptr.loc11_44.1 (%ptr.41e) = value_param call_param1 +// CHECK:STDOUT: %.loc11_44: type = splice_block %ptr.loc11_44.2 [symbolic = %ptr.loc11_44.1 (constants.%ptr.41e)] { // CHECK:STDOUT: %Core.ref.loc11_33: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc11_37: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] // CHECK:STDOUT: %N.ref.loc11_42: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_17.2 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc11_43.2: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.1 (constants.%Int.2cc5f1.1)] -// CHECK:STDOUT: %ptr.loc11_44.2: type = ptr_type %Int.loc11_43.2 [symbolic = %ptr.loc11_44.1 (constants.%ptr.f8f)] +// CHECK:STDOUT: %Int.loc11_43.2: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.1 (constants.%Int.67af24.1)] +// CHECK:STDOUT: %ptr.loc11_44.2: type = ptr_type %Int.loc11_43.2 [symbolic = %ptr.loc11_44.1 (constants.%ptr.41e)] // CHECK:STDOUT: } -// CHECK:STDOUT: %cursor: @IntRange.as.Iterate.impl.Next.%ptr.loc11_44.1 (%ptr.f8f) = value_binding cursor, %cursor.param -// CHECK:STDOUT: %return.param: ref @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.621) = out_param call_param2 -// CHECK:STDOUT: %return: ref @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.621) = return_slot %return.param +// CHECK:STDOUT: %cursor: @IntRange.as.Iterate.impl.Next.%ptr.loc11_44.1 (%ptr.41e) = value_binding cursor, %cursor.param +// CHECK:STDOUT: %return.param: ref @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.5ec) = out_param call_param2 +// CHECK:STDOUT: %return: ref @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.5ec) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant.loc9_87.2, %impl_witness_assoc_constant.loc9_87.1, %IntRange.as.Iterate.impl.NewCursor.decl, %IntRange.as.Iterate.impl.Next.decl), @IntRange.as.Iterate.impl [concrete] // CHECK:STDOUT: %Iterate.impl_witness.loc9_87.1: = impl_witness %Iterate.impl_witness_table, @IntRange.as.Iterate.impl(constants.%N) [symbolic = %Iterate.impl_witness.loc9_87.2 (constants.%Iterate.impl_witness)] -// CHECK:STDOUT: %impl_witness_assoc_constant.loc9_87.1: %Destroy.type = impl_witness_assoc_constant constants.%Destroy.facet.38c [symbolic = %Destroy.facet.loc9_54.1 (constants.%Destroy.facet.38c)] -// CHECK:STDOUT: %impl_witness_assoc_constant.loc9_87.2: %facet_type.b7c = impl_witness_assoc_constant constants.%facet_value [symbolic = %facet_value.loc9_85.1 (constants.%facet_value)] +// CHECK:STDOUT: %impl_witness_assoc_constant.loc9_87.1: %Destroy.type = impl_witness_assoc_constant constants.%Destroy.facet.7bb [symbolic = %Destroy.facet.loc9_54.1 (constants.%Destroy.facet.7bb)] +// CHECK:STDOUT: %impl_witness_assoc_constant.loc9_87.2: %facet_type.f48 = impl_witness_assoc_constant constants.%facet_value [symbolic = %facet_value.loc9_85.1 (constants.%facet_value)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .N = @@ -387,86 +387,86 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %N.loc4_17.1: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N.loc4_17.1 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %IntRange.Make.type: type = fn_type @IntRange.Make, @IntRange(%N.loc4_17.1) [symbolic = %IntRange.Make.type (constants.%IntRange.Make.type.500)] -// CHECK:STDOUT: %IntRange.Make: @IntRange.%IntRange.Make.type (%IntRange.Make.type.500) = struct_value () [symbolic = %IntRange.Make (constants.%IntRange.Make.d7d)] -// CHECK:STDOUT: %Int: type = class_type @Int, @Int(%N.loc4_17.1) [symbolic = %Int (constants.%Int.2cc5f1.1)] -// CHECK:STDOUT: %require_complete: = require_complete_type %Int [symbolic = %require_complete (constants.%require_complete.692f79.1)] -// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N.loc4_17.1) [symbolic = %IntRange (constants.%IntRange.6d0)] -// CHECK:STDOUT: %IntRange.elem: type = unbound_element_type %IntRange, %Int [symbolic = %IntRange.elem (constants.%IntRange.elem.19c)] -// CHECK:STDOUT: %struct_type.start.end: type = struct_type {.start: @IntRange.%Int (%Int.2cc5f1.1), .end: @IntRange.%Int (%Int.2cc5f1.1)} [symbolic = %struct_type.start.end (constants.%struct_type.start.end.d60)] -// CHECK:STDOUT: %complete_type.loc24_1.2: = complete_type_witness %struct_type.start.end [symbolic = %complete_type.loc24_1.2 (constants.%complete_type.b17)] +// CHECK:STDOUT: %IntRange.Make.type: type = fn_type @IntRange.Make, @IntRange(%N.loc4_17.1) [symbolic = %IntRange.Make.type (constants.%IntRange.Make.type.522)] +// CHECK:STDOUT: %IntRange.Make: @IntRange.%IntRange.Make.type (%IntRange.Make.type.522) = struct_value () [symbolic = %IntRange.Make (constants.%IntRange.Make.8ef)] +// CHECK:STDOUT: %Int: type = class_type @Int, @Int(%N.loc4_17.1) [symbolic = %Int (constants.%Int.67af24.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Int [symbolic = %require_complete (constants.%require_complete.4dfb92.1)] +// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N.loc4_17.1) [symbolic = %IntRange (constants.%IntRange.2c4)] +// CHECK:STDOUT: %IntRange.elem: type = unbound_element_type %IntRange, %Int [symbolic = %IntRange.elem (constants.%IntRange.elem.bed)] +// CHECK:STDOUT: %struct_type.start.end: type = struct_type {.start: @IntRange.%Int (%Int.67af24.1), .end: @IntRange.%Int (%Int.67af24.1)} [symbolic = %struct_type.start.end (constants.%struct_type.start.end.d4d)] +// CHECK:STDOUT: %complete_type.loc24_1.2: = complete_type_witness %struct_type.start.end [symbolic = %complete_type.loc24_1.2 (constants.%complete_type.aa1)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %IntRange.Make.decl: @IntRange.%IntRange.Make.type (%IntRange.Make.type.500) = fn_decl @IntRange.Make [symbolic = @IntRange.%IntRange.Make (constants.%IntRange.Make.d7d)] { -// CHECK:STDOUT: %start.param_patt: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142972.1) = value_param_pattern [concrete] -// CHECK:STDOUT: %start.patt: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142972.1) = at_binding_pattern start, %start.param_patt [concrete] -// CHECK:STDOUT: %end.param_patt: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142972.1) = value_param_pattern [concrete] -// CHECK:STDOUT: %end.patt: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142972.1) = at_binding_pattern end, %end.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @IntRange.Make.%pattern_type.loc5_52 (%pattern_type.255) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @IntRange.Make.%pattern_type.loc5_52 (%pattern_type.255) = return_slot_pattern %return.param_patt, %Self.ref [concrete] +// CHECK:STDOUT: %IntRange.Make.decl: @IntRange.%IntRange.Make.type (%IntRange.Make.type.522) = fn_decl @IntRange.Make [symbolic = @IntRange.%IntRange.Make (constants.%IntRange.Make.8ef)] { +// CHECK:STDOUT: %start.param_patt: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142cb7.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %start.patt: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142cb7.1) = at_binding_pattern start, %start.param_patt [concrete] +// CHECK:STDOUT: %end.param_patt: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142cb7.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %end.patt: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142cb7.1) = at_binding_pattern end, %end.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @IntRange.Make.%pattern_type.loc5_52 (%pattern_type.1ea) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @IntRange.Make.%pattern_type.loc5_52 (%pattern_type.1ea) = return_slot_pattern %return.param_patt, %Self.ref [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc5_52.2: type = specific_constant constants.%IntRange.6d0, @IntRange(constants.%N) [symbolic = %IntRange (constants.%IntRange.6d0)] -// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc5_52.2 [symbolic = %IntRange (constants.%IntRange.6d0)] -// CHECK:STDOUT: %.loc5_52.3: Core.Form = init_form %Self.ref [symbolic = %.loc5_52.1 (constants.%.4e7)] -// CHECK:STDOUT: %start.param: @IntRange.Make.%Int.loc5_28.1 (%Int.2cc5f1.1) = value_param call_param0 -// CHECK:STDOUT: %.loc5_28: type = splice_block %Int.loc5_28.2 [symbolic = %Int.loc5_28.1 (constants.%Int.2cc5f1.1)] { +// CHECK:STDOUT: %.loc5_52.2: type = specific_constant constants.%IntRange.2c4, @IntRange(constants.%N) [symbolic = %IntRange (constants.%IntRange.2c4)] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc5_52.2 [symbolic = %IntRange (constants.%IntRange.2c4)] +// CHECK:STDOUT: %.loc5_52.3: Core.Form = init_form %Self.ref [symbolic = %.loc5_52.1 (constants.%.5c3)] +// CHECK:STDOUT: %start.param: @IntRange.Make.%Int.loc5_28.1 (%Int.67af24.1) = value_param call_param0 +// CHECK:STDOUT: %.loc5_28: type = splice_block %Int.loc5_28.2 [symbolic = %Int.loc5_28.1 (constants.%Int.67af24.1)] { // CHECK:STDOUT: %Core.ref.loc5_18: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc5_22: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] // CHECK:STDOUT: %N.ref.loc5_27: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_17.2 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc5_28.2: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc5_28.1 (constants.%Int.2cc5f1.1)] +// CHECK:STDOUT: %Int.loc5_28.2: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc5_28.1 (constants.%Int.67af24.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %start: @IntRange.Make.%Int.loc5_28.1 (%Int.2cc5f1.1) = value_binding start, %start.param -// CHECK:STDOUT: %end.param: @IntRange.Make.%Int.loc5_28.1 (%Int.2cc5f1.1) = value_param call_param1 -// CHECK:STDOUT: %.loc5_46: type = splice_block %Int.loc5_46 [symbolic = %Int.loc5_28.1 (constants.%Int.2cc5f1.1)] { +// CHECK:STDOUT: %start: @IntRange.Make.%Int.loc5_28.1 (%Int.67af24.1) = value_binding start, %start.param +// CHECK:STDOUT: %end.param: @IntRange.Make.%Int.loc5_28.1 (%Int.67af24.1) = value_param call_param1 +// CHECK:STDOUT: %.loc5_46: type = splice_block %Int.loc5_46 [symbolic = %Int.loc5_28.1 (constants.%Int.67af24.1)] { // CHECK:STDOUT: %Core.ref.loc5_36: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc5_40: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] // CHECK:STDOUT: %N.ref.loc5_45: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_17.2 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc5_46: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc5_28.1 (constants.%Int.2cc5f1.1)] +// CHECK:STDOUT: %Int.loc5_46: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc5_28.1 (constants.%Int.67af24.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %end: @IntRange.Make.%Int.loc5_28.1 (%Int.2cc5f1.1) = value_binding end, %end.param -// CHECK:STDOUT: %return.param: ref @IntRange.Make.%IntRange (%IntRange.6d0) = out_param call_param2 -// CHECK:STDOUT: %return: ref @IntRange.Make.%IntRange (%IntRange.6d0) = return_slot %return.param +// CHECK:STDOUT: %end: @IntRange.Make.%Int.loc5_28.1 (%Int.67af24.1) = value_binding end, %end.param +// CHECK:STDOUT: %return.param: ref @IntRange.Make.%IntRange (%IntRange.2c4) = out_param call_param2 +// CHECK:STDOUT: %return: ref @IntRange.Make.%IntRange (%IntRange.2c4) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @IntRange.as.Iterate.impl [concrete] {} { -// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%IntRange.6d0 [symbolic = %IntRange (constants.%IntRange.6d0)] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%IntRange.2c4 [symbolic = %IntRange (constants.%IntRange.2c4)] // CHECK:STDOUT: %Core.ref.loc9_11: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Iterate.ref: type = name_ref Iterate, imports.%Core.Iterate [concrete = constants.%Iterate.type] -// CHECK:STDOUT: %.Self: %Iterate.type = symbolic_binding .Self [symbolic_self = constants.%.Self.e31] -// CHECK:STDOUT: %.Self.ref.loc9_30: %Iterate.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.e31] +// CHECK:STDOUT: %.Self: %Iterate.type = symbolic_binding .Self [symbolic_self = constants.%.Self.35d] +// CHECK:STDOUT: %.Self.ref.loc9_30: %Iterate.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.35d] // CHECK:STDOUT: %.Self.as_type.loc9_30: type = facet_access_type %.Self.ref.loc9_30 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_30: type = converted %.Self.ref.loc9_30, %.Self.as_type.loc9_30 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %CursorType.ref: %Iterate.assoc_type = name_ref CursorType, imports.%Core.import_ref.7ba [concrete = constants.%assoc1.6df] -// CHECK:STDOUT: %impl.elem1: %Destroy.type = impl_witness_access constants.%Iterate.lookup_impl_witness.732, element1 [symbolic_self = constants.%impl.elem1.1c9] +// CHECK:STDOUT: %CursorType.ref: %Iterate.assoc_type = name_ref CursorType, imports.%Core.import_ref.5be [concrete = constants.%assoc1.c91] +// CHECK:STDOUT: %impl.elem1: %Destroy.type = impl_witness_access constants.%Iterate.lookup_impl_witness.b37, element1 [symbolic_self = constants.%impl.elem1.543] // CHECK:STDOUT: %Core.ref.loc9_44: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc9_48: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] // CHECK:STDOUT: %N.ref.loc9_53: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_17.2 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc9_54.2: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc9_54.1 (constants.%Int.2cc5f1.1)] -// CHECK:STDOUT: %Destroy.facet.loc9_54.2: %Destroy.type = facet_value %Int.loc9_54.2, (constants.%Destroy.lookup_impl_witness.c2c) [symbolic = %Destroy.facet.loc9_54.1 (constants.%Destroy.facet.38c)] -// CHECK:STDOUT: %.loc9_54: %Destroy.type = converted %Int.loc9_54.2, %Destroy.facet.loc9_54.2 [symbolic = %Destroy.facet.loc9_54.1 (constants.%Destroy.facet.38c)] -// CHECK:STDOUT: %.Self.ref.loc9_60: %Iterate.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.e31] +// CHECK:STDOUT: %Int.loc9_54.2: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc9_54.1 (constants.%Int.67af24.1)] +// CHECK:STDOUT: %Destroy.facet.loc9_54.2: %Destroy.type = facet_value %Int.loc9_54.2, (constants.%Destroy.lookup_impl_witness.173) [symbolic = %Destroy.facet.loc9_54.1 (constants.%Destroy.facet.7bb)] +// CHECK:STDOUT: %.loc9_54: %Destroy.type = converted %Int.loc9_54.2, %Destroy.facet.loc9_54.2 [symbolic = %Destroy.facet.loc9_54.1 (constants.%Destroy.facet.7bb)] +// CHECK:STDOUT: %.Self.ref.loc9_60: %Iterate.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.35d] // CHECK:STDOUT: %.Self.as_type.loc9_60: type = facet_access_type %.Self.ref.loc9_60 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_60: type = converted %.Self.ref.loc9_60, %.Self.as_type.loc9_60 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %ElementType.ref: %Iterate.assoc_type = name_ref ElementType, imports.%Core.import_ref.5b6 [concrete = constants.%assoc0.181] -// CHECK:STDOUT: %impl.elem0: %facet_type.b7c = impl_witness_access constants.%Iterate.lookup_impl_witness.732, element0 [symbolic_self = constants.%impl.elem0.03d] +// CHECK:STDOUT: %ElementType.ref: %Iterate.assoc_type = name_ref ElementType, imports.%Core.import_ref.96b [concrete = constants.%assoc0.0f0] +// CHECK:STDOUT: %impl.elem0: %facet_type.f48 = impl_witness_access constants.%Iterate.lookup_impl_witness.b37, element0 [symbolic_self = constants.%impl.elem0.903] // CHECK:STDOUT: %Core.ref.loc9_75: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc9_79: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] // CHECK:STDOUT: %N.ref.loc9_84: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_17.2 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc9_85: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc9_54.1 (constants.%Int.2cc5f1.1)] -// CHECK:STDOUT: %facet_value.loc9_85.2: %facet_type.b7c = facet_value %Int.loc9_85, (constants.%Destroy.lookup_impl_witness.c2c, constants.%Copy.lookup_impl_witness.f90) [symbolic = %facet_value.loc9_85.1 (constants.%facet_value)] -// CHECK:STDOUT: %.loc9_85.2: %facet_type.b7c = converted %Int.loc9_85, %facet_value.loc9_85.2 [symbolic = %facet_value.loc9_85.1 (constants.%facet_value)] +// CHECK:STDOUT: %Int.loc9_85: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc9_54.1 (constants.%Int.67af24.1)] +// CHECK:STDOUT: %facet_value.loc9_85.2: %facet_type.f48 = facet_value %Int.loc9_85, (constants.%Destroy.lookup_impl_witness.173, constants.%Copy.lookup_impl_witness.df6) [symbolic = %facet_value.loc9_85.1 (constants.%facet_value)] +// CHECK:STDOUT: %.loc9_85.2: %facet_type.f48 = converted %Int.loc9_85, %facet_value.loc9_85.2 [symbolic = %facet_value.loc9_85.1 (constants.%facet_value)] // CHECK:STDOUT: %.loc9_24: type = where_expr [symbolic = %Iterate_where.type (constants.%Iterate_where.type)] { // CHECK:STDOUT: requirement_base_facet_type %Iterate.ref // CHECK:STDOUT: requirement_rewrite %impl.elem1, %.loc9_54 // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc9_85.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc22: @IntRange.%IntRange.elem (%IntRange.elem.19c) = field_decl start, element0 [concrete] -// CHECK:STDOUT: %.loc23: @IntRange.%IntRange.elem (%IntRange.elem.19c) = field_decl end, element1 [concrete] -// CHECK:STDOUT: %complete_type.loc24_1.1: = complete_type_witness constants.%struct_type.start.end.d60 [symbolic = %complete_type.loc24_1.2 (constants.%complete_type.b17)] +// CHECK:STDOUT: %.loc22: @IntRange.%IntRange.elem (%IntRange.elem.bed) = field_decl start, element0 [concrete] +// CHECK:STDOUT: %.loc23: @IntRange.%IntRange.elem (%IntRange.elem.bed) = field_decl end, element1 [concrete] +// CHECK:STDOUT: %complete_type.loc24_1.1: = complete_type_witness constants.%struct_type.start.end.d4d [symbolic = %complete_type.loc24_1.2 (constants.%complete_type.aa1)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc24_1.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%IntRange.6d0 +// CHECK:STDOUT: .Self = constants.%IntRange.2c4 // CHECK:STDOUT: .N = // CHECK:STDOUT: .Make = %IntRange.Make.decl // CHECK:STDOUT: .start [private] = %.loc22 @@ -476,192 +476,192 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @IntRange.Make(@IntRange.%N.loc4_17.2: Core.IntLiteral) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc5_28.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc5_28.1 (constants.%Int.2cc5f1.1)] -// CHECK:STDOUT: %pattern_type.loc5_16: type = pattern_type %Int.loc5_28.1 [symbolic = %pattern_type.loc5_16 (constants.%pattern_type.142972.1)] -// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.6d0)] -// CHECK:STDOUT: %.loc5_52.1: Core.Form = init_form %IntRange [symbolic = %.loc5_52.1 (constants.%.4e7)] -// CHECK:STDOUT: %pattern_type.loc5_52: type = pattern_type %IntRange [symbolic = %pattern_type.loc5_52 (constants.%pattern_type.255)] +// CHECK:STDOUT: %Int.loc5_28.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc5_28.1 (constants.%Int.67af24.1)] +// CHECK:STDOUT: %pattern_type.loc5_16: type = pattern_type %Int.loc5_28.1 [symbolic = %pattern_type.loc5_16 (constants.%pattern_type.142cb7.1)] +// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.2c4)] +// CHECK:STDOUT: %.loc5_52.1: Core.Form = init_form %IntRange [symbolic = %.loc5_52.1 (constants.%.5c3)] +// CHECK:STDOUT: %pattern_type.loc5_52: type = pattern_type %IntRange [symbolic = %pattern_type.loc5_52 (constants.%pattern_type.1ea)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc5_16: = require_complete_type %Int.loc5_28.1 [symbolic = %require_complete.loc5_16 (constants.%require_complete.692f79.1)] -// CHECK:STDOUT: %require_complete.loc5_49: = require_complete_type %IntRange [symbolic = %require_complete.loc5_49 (constants.%require_complete.f50)] -// CHECK:STDOUT: %struct_type.start.end: type = struct_type {.start: @IntRange.Make.%Int.loc5_28.1 (%Int.2cc5f1.1), .end: @IntRange.Make.%Int.loc5_28.1 (%Int.2cc5f1.1)} [symbolic = %struct_type.start.end (constants.%struct_type.start.end.d60)] -// CHECK:STDOUT: %.loc6_22.1: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%N) [symbolic = %.loc6_22.1 (constants.%.8a3)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %Int.loc5_28.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.f90)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Int.loc5_28.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.718)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c6e)] -// CHECK:STDOUT: %.loc6_22.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc6_22.2 (constants.%.435)] -// CHECK:STDOUT: %impl.elem0.loc6_22.2: @IntRange.Make.%.loc6_22.2 (%.435) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_22.2 (constants.%impl.elem0.f2b)] -// CHECK:STDOUT: %specific_impl_fn.loc6_22.2: = specific_impl_function %impl.elem0.loc6_22.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc6_22.2 (constants.%specific_impl_fn.f98)] +// CHECK:STDOUT: %require_complete.loc5_16: = require_complete_type %Int.loc5_28.1 [symbolic = %require_complete.loc5_16 (constants.%require_complete.4dfb92.1)] +// CHECK:STDOUT: %require_complete.loc5_49: = require_complete_type %IntRange [symbolic = %require_complete.loc5_49 (constants.%require_complete.5d9)] +// CHECK:STDOUT: %struct_type.start.end: type = struct_type {.start: @IntRange.Make.%Int.loc5_28.1 (%Int.67af24.1), .end: @IntRange.Make.%Int.loc5_28.1 (%Int.67af24.1)} [symbolic = %struct_type.start.end (constants.%struct_type.start.end.d4d)] +// CHECK:STDOUT: %.loc6_22.1: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%N) [symbolic = %.loc6_22.1 (constants.%.a53)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %Int.loc5_28.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.df6)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Int.loc5_28.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.f12)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.b83)] +// CHECK:STDOUT: %.loc6_22.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc6_22.2 (constants.%.c60)] +// CHECK:STDOUT: %impl.elem0.loc6_22.2: @IntRange.Make.%.loc6_22.2 (%.c60) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_22.2 (constants.%impl.elem0.284)] +// CHECK:STDOUT: %specific_impl_fn.loc6_22.2: = specific_impl_function %impl.elem0.loc6_22.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc6_22.2 (constants.%specific_impl_fn.f9f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%start.param: @IntRange.Make.%Int.loc5_28.1 (%Int.2cc5f1.1), %end.param: @IntRange.Make.%Int.loc5_28.1 (%Int.2cc5f1.1)) -> out %return.param: @IntRange.Make.%IntRange (%IntRange.6d0) { +// CHECK:STDOUT: fn(%start.param: @IntRange.Make.%Int.loc5_28.1 (%Int.67af24.1), %end.param: @IntRange.Make.%Int.loc5_28.1 (%Int.67af24.1)) -> out %return.param: @IntRange.Make.%IntRange (%IntRange.2c4) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %start.ref: @IntRange.Make.%Int.loc5_28.1 (%Int.2cc5f1.1) = name_ref start, %start -// CHECK:STDOUT: %end.ref: @IntRange.Make.%Int.loc5_28.1 (%Int.2cc5f1.1) = name_ref end, %end -// CHECK:STDOUT: %.loc6_39.1: @IntRange.Make.%struct_type.start.end (%struct_type.start.end.d60) = struct_literal (%start.ref, %end.ref) -// CHECK:STDOUT: %impl.elem0.loc6_22.1: @IntRange.Make.%.loc6_22.2 (%.435) = impl_witness_access constants.%Copy.lookup_impl_witness.f90, element0 [symbolic = %impl.elem0.loc6_22.2 (constants.%impl.elem0.f2b)] +// CHECK:STDOUT: %start.ref: @IntRange.Make.%Int.loc5_28.1 (%Int.67af24.1) = name_ref start, %start +// CHECK:STDOUT: %end.ref: @IntRange.Make.%Int.loc5_28.1 (%Int.67af24.1) = name_ref end, %end +// CHECK:STDOUT: %.loc6_39.1: @IntRange.Make.%struct_type.start.end (%struct_type.start.end.d4d) = struct_literal (%start.ref, %end.ref) +// CHECK:STDOUT: %impl.elem0.loc6_22.1: @IntRange.Make.%.loc6_22.2 (%.c60) = impl_witness_access constants.%Copy.lookup_impl_witness.df6, element0 [symbolic = %impl.elem0.loc6_22.2 (constants.%impl.elem0.284)] // CHECK:STDOUT: %bound_method.loc6_22.1: = bound_method %start.ref, %impl.elem0.loc6_22.1 -// CHECK:STDOUT: %specific_impl_fn.loc6_22.1: = specific_impl_function %impl.elem0.loc6_22.1, @Copy.WithSelf.Op(constants.%Copy.facet.718) [symbolic = %specific_impl_fn.loc6_22.2 (constants.%specific_impl_fn.f98)] +// CHECK:STDOUT: %specific_impl_fn.loc6_22.1: = specific_impl_function %impl.elem0.loc6_22.1, @Copy.WithSelf.Op(constants.%Copy.facet.f12) [symbolic = %specific_impl_fn.loc6_22.2 (constants.%specific_impl_fn.f9f)] // CHECK:STDOUT: %bound_method.loc6_22.2: = bound_method %start.ref, %specific_impl_fn.loc6_22.1 -// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc6_22: init @IntRange.Make.%Int.loc5_28.1 (%Int.2cc5f1.1) = call %bound_method.loc6_22.2(%start.ref) -// CHECK:STDOUT: %.loc6_39.2: ref @IntRange.Make.%Int.loc5_28.1 (%Int.2cc5f1.1) = class_element_access %return.param, element0 -// CHECK:STDOUT: %.loc6_39.3: init @IntRange.Make.%Int.loc5_28.1 (%Int.2cc5f1.1) to %.loc6_39.2 = in_place_init %Copy.WithSelf.Op.call.loc6_22 -// CHECK:STDOUT: %impl.elem0.loc6_36: @IntRange.Make.%.loc6_22.2 (%.435) = impl_witness_access constants.%Copy.lookup_impl_witness.f90, element0 [symbolic = %impl.elem0.loc6_22.2 (constants.%impl.elem0.f2b)] +// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc6_22: init @IntRange.Make.%Int.loc5_28.1 (%Int.67af24.1) = call %bound_method.loc6_22.2(%start.ref) +// CHECK:STDOUT: %.loc6_39.2: ref @IntRange.Make.%Int.loc5_28.1 (%Int.67af24.1) = class_element_access %return.param, element0 +// CHECK:STDOUT: %.loc6_39.3: init @IntRange.Make.%Int.loc5_28.1 (%Int.67af24.1) to %.loc6_39.2 = in_place_init %Copy.WithSelf.Op.call.loc6_22 +// CHECK:STDOUT: %impl.elem0.loc6_36: @IntRange.Make.%.loc6_22.2 (%.c60) = impl_witness_access constants.%Copy.lookup_impl_witness.df6, element0 [symbolic = %impl.elem0.loc6_22.2 (constants.%impl.elem0.284)] // CHECK:STDOUT: %bound_method.loc6_36.1: = bound_method %end.ref, %impl.elem0.loc6_36 -// CHECK:STDOUT: %specific_impl_fn.loc6_36: = specific_impl_function %impl.elem0.loc6_36, @Copy.WithSelf.Op(constants.%Copy.facet.718) [symbolic = %specific_impl_fn.loc6_22.2 (constants.%specific_impl_fn.f98)] +// CHECK:STDOUT: %specific_impl_fn.loc6_36: = specific_impl_function %impl.elem0.loc6_36, @Copy.WithSelf.Op(constants.%Copy.facet.f12) [symbolic = %specific_impl_fn.loc6_22.2 (constants.%specific_impl_fn.f9f)] // CHECK:STDOUT: %bound_method.loc6_36.2: = bound_method %end.ref, %specific_impl_fn.loc6_36 -// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc6_36: init @IntRange.Make.%Int.loc5_28.1 (%Int.2cc5f1.1) = call %bound_method.loc6_36.2(%end.ref) -// CHECK:STDOUT: %.loc6_39.4: ref @IntRange.Make.%Int.loc5_28.1 (%Int.2cc5f1.1) = class_element_access %return.param, element1 -// CHECK:STDOUT: %.loc6_39.5: init @IntRange.Make.%Int.loc5_28.1 (%Int.2cc5f1.1) to %.loc6_39.4 = in_place_init %Copy.WithSelf.Op.call.loc6_36 -// CHECK:STDOUT: %.loc6_39.6: init @IntRange.Make.%IntRange (%IntRange.6d0) to %return.param = class_init (%.loc6_39.3, %.loc6_39.5) -// CHECK:STDOUT: %.loc6_40: init @IntRange.Make.%IntRange (%IntRange.6d0) = converted %.loc6_39.1, %.loc6_39.6 +// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc6_36: init @IntRange.Make.%Int.loc5_28.1 (%Int.67af24.1) = call %bound_method.loc6_36.2(%end.ref) +// CHECK:STDOUT: %.loc6_39.4: ref @IntRange.Make.%Int.loc5_28.1 (%Int.67af24.1) = class_element_access %return.param, element1 +// CHECK:STDOUT: %.loc6_39.5: init @IntRange.Make.%Int.loc5_28.1 (%Int.67af24.1) to %.loc6_39.4 = in_place_init %Copy.WithSelf.Op.call.loc6_36 +// CHECK:STDOUT: %.loc6_39.6: init @IntRange.Make.%IntRange (%IntRange.2c4) to %return.param = class_init (%.loc6_39.3, %.loc6_39.5) +// CHECK:STDOUT: %.loc6_40: init @IntRange.Make.%IntRange (%IntRange.2c4) = converted %.loc6_39.1, %.loc6_39.6 // CHECK:STDOUT: return %.loc6_40 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @IntRange.as.Iterate.impl.NewCursor(@IntRange.%N.loc4_17.2: Core.IntLiteral) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.6d0)] -// CHECK:STDOUT: %pattern_type.loc10_22: type = pattern_type %IntRange [symbolic = %pattern_type.loc10_22 (constants.%pattern_type.255)] -// CHECK:STDOUT: %Int.loc10_45.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc10_45.1 (constants.%Int.2cc5f1.1)] -// CHECK:STDOUT: %.loc10_45.1: Core.Form = init_form %Int.loc10_45.1 [symbolic = %.loc10_45.1 (constants.%.245fba.1)] -// CHECK:STDOUT: %pattern_type.loc10_45: type = pattern_type %Int.loc10_45.1 [symbolic = %pattern_type.loc10_45 (constants.%pattern_type.142972.1)] +// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.2c4)] +// CHECK:STDOUT: %pattern_type.loc10_22: type = pattern_type %IntRange [symbolic = %pattern_type.loc10_22 (constants.%pattern_type.1ea)] +// CHECK:STDOUT: %Int.loc10_45.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc10_45.1 (constants.%Int.67af24.1)] +// CHECK:STDOUT: %.loc10_45.1: Core.Form = init_form %Int.loc10_45.1 [symbolic = %.loc10_45.1 (constants.%.df5d8d.1)] +// CHECK:STDOUT: %pattern_type.loc10_45: type = pattern_type %Int.loc10_45.1 [symbolic = %pattern_type.loc10_45 (constants.%pattern_type.142cb7.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc10_22: = require_complete_type %IntRange [symbolic = %require_complete.loc10_22 (constants.%require_complete.f50)] -// CHECK:STDOUT: %IntRange.elem: type = unbound_element_type %IntRange, %Int.loc10_45.1 [symbolic = %IntRange.elem (constants.%IntRange.elem.19c)] -// CHECK:STDOUT: %require_complete.loc10_60: = require_complete_type %Int.loc10_45.1 [symbolic = %require_complete.loc10_60 (constants.%require_complete.692f79.1)] -// CHECK:STDOUT: %.loc10_60.3: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%N) [symbolic = %.loc10_60.3 (constants.%.8a3)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %Int.loc10_45.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.f90)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Int.loc10_45.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.718)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c6e)] -// CHECK:STDOUT: %.loc10_60.4: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc10_60.4 (constants.%.435)] -// CHECK:STDOUT: %impl.elem0.loc10_60.2: @IntRange.as.Iterate.impl.NewCursor.%.loc10_60.4 (%.435) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_60.2 (constants.%impl.elem0.f2b)] -// CHECK:STDOUT: %specific_impl_fn.loc10_60.2: = specific_impl_function %impl.elem0.loc10_60.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_60.2 (constants.%specific_impl_fn.f98)] +// CHECK:STDOUT: %require_complete.loc10_22: = require_complete_type %IntRange [symbolic = %require_complete.loc10_22 (constants.%require_complete.5d9)] +// CHECK:STDOUT: %IntRange.elem: type = unbound_element_type %IntRange, %Int.loc10_45.1 [symbolic = %IntRange.elem (constants.%IntRange.elem.bed)] +// CHECK:STDOUT: %require_complete.loc10_60: = require_complete_type %Int.loc10_45.1 [symbolic = %require_complete.loc10_60 (constants.%require_complete.4dfb92.1)] +// CHECK:STDOUT: %.loc10_60.3: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%N) [symbolic = %.loc10_60.3 (constants.%.a53)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %Int.loc10_45.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.df6)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Int.loc10_45.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.f12)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.b83)] +// CHECK:STDOUT: %.loc10_60.4: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc10_60.4 (constants.%.c60)] +// CHECK:STDOUT: %impl.elem0.loc10_60.2: @IntRange.as.Iterate.impl.NewCursor.%.loc10_60.4 (%.c60) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_60.2 (constants.%impl.elem0.284)] +// CHECK:STDOUT: %specific_impl_fn.loc10_60.2: = specific_impl_function %impl.elem0.loc10_60.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_60.2 (constants.%specific_impl_fn.f9f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @IntRange.as.Iterate.impl.NewCursor.%IntRange (%IntRange.6d0)) -> out %return.param: @IntRange.as.Iterate.impl.NewCursor.%Int.loc10_45.1 (%Int.2cc5f1.1) { +// CHECK:STDOUT: fn(%self.param: @IntRange.as.Iterate.impl.NewCursor.%IntRange (%IntRange.2c4)) -> out %return.param: @IntRange.as.Iterate.impl.NewCursor.%Int.loc10_45.1 (%Int.67af24.1) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: @IntRange.as.Iterate.impl.NewCursor.%IntRange (%IntRange.6d0) = name_ref self, %self -// CHECK:STDOUT: %start.ref: @IntRange.as.Iterate.impl.NewCursor.%IntRange.elem (%IntRange.elem.19c) = name_ref start, @IntRange.%.loc22 [concrete = @IntRange.%.loc22] -// CHECK:STDOUT: %.loc10_60.1: ref @IntRange.as.Iterate.impl.NewCursor.%Int.loc10_45.1 (%Int.2cc5f1.1) = class_element_access %self.ref, element0 -// CHECK:STDOUT: %.loc10_60.2: @IntRange.as.Iterate.impl.NewCursor.%Int.loc10_45.1 (%Int.2cc5f1.1) = acquire_value %.loc10_60.1 -// CHECK:STDOUT: %impl.elem0.loc10_60.1: @IntRange.as.Iterate.impl.NewCursor.%.loc10_60.4 (%.435) = impl_witness_access constants.%Copy.lookup_impl_witness.f90, element0 [symbolic = %impl.elem0.loc10_60.2 (constants.%impl.elem0.f2b)] +// CHECK:STDOUT: %self.ref: @IntRange.as.Iterate.impl.NewCursor.%IntRange (%IntRange.2c4) = name_ref self, %self +// CHECK:STDOUT: %start.ref: @IntRange.as.Iterate.impl.NewCursor.%IntRange.elem (%IntRange.elem.bed) = name_ref start, @IntRange.%.loc22 [concrete = @IntRange.%.loc22] +// CHECK:STDOUT: %.loc10_60.1: ref @IntRange.as.Iterate.impl.NewCursor.%Int.loc10_45.1 (%Int.67af24.1) = class_element_access %self.ref, element0 +// CHECK:STDOUT: %.loc10_60.2: @IntRange.as.Iterate.impl.NewCursor.%Int.loc10_45.1 (%Int.67af24.1) = acquire_value %.loc10_60.1 +// CHECK:STDOUT: %impl.elem0.loc10_60.1: @IntRange.as.Iterate.impl.NewCursor.%.loc10_60.4 (%.c60) = impl_witness_access constants.%Copy.lookup_impl_witness.df6, element0 [symbolic = %impl.elem0.loc10_60.2 (constants.%impl.elem0.284)] // CHECK:STDOUT: %bound_method.loc10_60.1: = bound_method %.loc10_60.2, %impl.elem0.loc10_60.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_60.1: = specific_impl_function %impl.elem0.loc10_60.1, @Copy.WithSelf.Op(constants.%Copy.facet.718) [symbolic = %specific_impl_fn.loc10_60.2 (constants.%specific_impl_fn.f98)] +// CHECK:STDOUT: %specific_impl_fn.loc10_60.1: = specific_impl_function %impl.elem0.loc10_60.1, @Copy.WithSelf.Op(constants.%Copy.facet.f12) [symbolic = %specific_impl_fn.loc10_60.2 (constants.%specific_impl_fn.f9f)] // CHECK:STDOUT: %bound_method.loc10_60.2: = bound_method %.loc10_60.2, %specific_impl_fn.loc10_60.1 -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @IntRange.as.Iterate.impl.NewCursor.%Int.loc10_45.1 (%Int.2cc5f1.1) = call %bound_method.loc10_60.2(%.loc10_60.2) +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @IntRange.as.Iterate.impl.NewCursor.%Int.loc10_45.1 (%Int.67af24.1) = call %bound_method.loc10_60.2(%.loc10_60.2) // CHECK:STDOUT: return %Copy.WithSelf.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @IntRange.as.Iterate.impl.Next(@IntRange.%N.loc4_17.2: Core.IntLiteral) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.6d0)] -// CHECK:STDOUT: %pattern_type.loc11_17: type = pattern_type %IntRange [symbolic = %pattern_type.loc11_17 (constants.%pattern_type.255)] -// CHECK:STDOUT: %Int.loc11_43.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc11_43.1 (constants.%Int.2cc5f1.1)] -// CHECK:STDOUT: %ptr.loc11_44.1: type = ptr_type %Int.loc11_43.1 [symbolic = %ptr.loc11_44.1 (constants.%ptr.f8f)] -// CHECK:STDOUT: %pattern_type.loc11_31: type = pattern_type %ptr.loc11_44.1 [symbolic = %pattern_type.loc11_31 (constants.%pattern_type.fa7)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Int.loc11_43.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.c2c)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %Int.loc11_43.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.f90)] -// CHECK:STDOUT: %facet_value: %facet_type.b7c = facet_value %Int.loc11_43.1, (%Destroy.lookup_impl_witness, %Copy.lookup_impl_witness) [symbolic = %facet_value (constants.%facet_value)] -// CHECK:STDOUT: %.loc11_75.3: require_specific_def_type = require_specific_def @T.as_type.as.OptionalStorage.impl(%facet_value) [symbolic = %.loc11_75.3 (constants.%.a8e)] -// CHECK:STDOUT: %OptionalStorage.lookup_impl_witness: = lookup_impl_witness %Int.loc11_43.1, @OptionalStorage [symbolic = %OptionalStorage.lookup_impl_witness (constants.%OptionalStorage.lookup_impl_witness.a55)] -// CHECK:STDOUT: %OptionalStorage.facet.loc11_75.1: %OptionalStorage.type = facet_value %Int.loc11_43.1, (%OptionalStorage.lookup_impl_witness) [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.6e7)] -// CHECK:STDOUT: %Optional.loc11_75.1: type = class_type @Optional, @Optional(%OptionalStorage.facet.loc11_75.1) [symbolic = %Optional.loc11_75.1 (constants.%Optional.621)] -// CHECK:STDOUT: %.loc11_75.4: Core.Form = init_form %Optional.loc11_75.1 [symbolic = %.loc11_75.4 (constants.%.222)] -// CHECK:STDOUT: %pattern_type.loc11_75: type = pattern_type %Optional.loc11_75.1 [symbolic = %pattern_type.loc11_75 (constants.%pattern_type.16e)] +// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.2c4)] +// CHECK:STDOUT: %pattern_type.loc11_17: type = pattern_type %IntRange [symbolic = %pattern_type.loc11_17 (constants.%pattern_type.1ea)] +// CHECK:STDOUT: %Int.loc11_43.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc11_43.1 (constants.%Int.67af24.1)] +// CHECK:STDOUT: %ptr.loc11_44.1: type = ptr_type %Int.loc11_43.1 [symbolic = %ptr.loc11_44.1 (constants.%ptr.41e)] +// CHECK:STDOUT: %pattern_type.loc11_31: type = pattern_type %ptr.loc11_44.1 [symbolic = %pattern_type.loc11_31 (constants.%pattern_type.833)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Int.loc11_43.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.173)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %Int.loc11_43.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.df6)] +// CHECK:STDOUT: %facet_value: %facet_type.f48 = facet_value %Int.loc11_43.1, (%Destroy.lookup_impl_witness, %Copy.lookup_impl_witness) [symbolic = %facet_value (constants.%facet_value)] +// CHECK:STDOUT: %.loc11_75.3: require_specific_def_type = require_specific_def @T.as_type.as.OptionalStorage.impl(%facet_value) [symbolic = %.loc11_75.3 (constants.%.17c)] +// CHECK:STDOUT: %OptionalStorage.lookup_impl_witness: = lookup_impl_witness %Int.loc11_43.1, @OptionalStorage [symbolic = %OptionalStorage.lookup_impl_witness (constants.%OptionalStorage.lookup_impl_witness.a32)] +// CHECK:STDOUT: %OptionalStorage.facet.loc11_75.1: %OptionalStorage.type = facet_value %Int.loc11_43.1, (%OptionalStorage.lookup_impl_witness) [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.b99)] +// CHECK:STDOUT: %Optional.loc11_75.1: type = class_type @Optional, @Optional(%OptionalStorage.facet.loc11_75.1) [symbolic = %Optional.loc11_75.1 (constants.%Optional.5ec)] +// CHECK:STDOUT: %.loc11_75.4: Core.Form = init_form %Optional.loc11_75.1 [symbolic = %.loc11_75.4 (constants.%.3f3)] +// CHECK:STDOUT: %pattern_type.loc11_75: type = pattern_type %Optional.loc11_75.1 [symbolic = %pattern_type.loc11_75 (constants.%pattern_type.b38)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc11_17: = require_complete_type %IntRange [symbolic = %require_complete.loc11_17 (constants.%require_complete.f50)] -// CHECK:STDOUT: %require_complete.loc11_31: = require_complete_type %ptr.loc11_44.1 [symbolic = %require_complete.loc11_31 (constants.%require_complete.39d)] -// CHECK:STDOUT: %require_complete.loc11_47: = require_complete_type %Optional.loc11_75.1 [symbolic = %require_complete.loc11_47 (constants.%require_complete.193)] -// CHECK:STDOUT: %require_complete.loc12: = require_complete_type %Int.loc11_43.1 [symbolic = %require_complete.loc12 (constants.%require_complete.692f79.1)] -// CHECK:STDOUT: %pattern_type.loc12: type = pattern_type %Int.loc11_43.1 [symbolic = %pattern_type.loc12 (constants.%pattern_type.142972.1)] -// CHECK:STDOUT: %.loc12_32.3: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%N) [symbolic = %.loc12_32.3 (constants.%.8a3)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Int.loc11_43.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.718)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c6e)] -// CHECK:STDOUT: %.loc12_32.4: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc12_32.4 (constants.%.435)] -// CHECK:STDOUT: %impl.elem0.loc12_32.2: @IntRange.as.Iterate.impl.Next.%.loc12_32.4 (%.435) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc12_32.2 (constants.%impl.elem0.f2b)] -// CHECK:STDOUT: %specific_impl_fn.loc12_32.2: = specific_impl_function %impl.elem0.loc12_32.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc12_32.2 (constants.%specific_impl_fn.f98)] -// CHECK:STDOUT: %IntRange.elem: type = unbound_element_type %IntRange, %Int.loc11_43.1 [symbolic = %IntRange.elem (constants.%IntRange.elem.19c)] -// CHECK:STDOUT: %OrderedWith.type.loc13_17.2: type = facet_type <@OrderedWith, @OrderedWith(%Int.loc11_43.1)> [symbolic = %OrderedWith.type.loc13_17.2 (constants.%OrderedWith.type.c0b)] -// CHECK:STDOUT: %require_complete.loc13: = require_complete_type %OrderedWith.type.loc13_17.2 [symbolic = %require_complete.loc13 (constants.%require_complete.77f)] -// CHECK:STDOUT: %OrderedWith.assoc_type: type = assoc_entity_type @OrderedWith, @OrderedWith(%Int.loc11_43.1) [symbolic = %OrderedWith.assoc_type (constants.%OrderedWith.assoc_type.6b3)] -// CHECK:STDOUT: %assoc0: @IntRange.as.Iterate.impl.Next.%OrderedWith.assoc_type (%OrderedWith.assoc_type.6b3) = assoc_entity element0, imports.%Core.import_ref.5cd [symbolic = %assoc0 (constants.%assoc0.791)] -// CHECK:STDOUT: %.loc13_17.2: require_specific_def_type = require_specific_def @Int.as.OrderedWith.impl.099(%N, %N) [symbolic = %.loc13_17.2 (constants.%.353)] -// CHECK:STDOUT: %OrderedWith.impl_witness: = impl_witness imports.%OrderedWith.impl_witness_table.274, @Int.as.OrderedWith.impl.099(%N, %N) [symbolic = %OrderedWith.impl_witness (constants.%OrderedWith.impl_witness.8f9)] -// CHECK:STDOUT: %OrderedWith.facet: @IntRange.as.Iterate.impl.Next.%OrderedWith.type.loc13_17.2 (%OrderedWith.type.c0b) = facet_value %Int.loc11_43.1, (%OrderedWith.impl_witness) [symbolic = %OrderedWith.facet (constants.%OrderedWith.facet.16b)] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Int.loc11_43.1, %OrderedWith.facet) [symbolic = %OrderedWith.WithSelf.Less.type (constants.%OrderedWith.WithSelf.Less.type.e25)] -// CHECK:STDOUT: %.loc13_17.3: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type, %OrderedWith.facet [symbolic = %.loc13_17.3 (constants.%.d67)] -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.type: type = fn_type @Int.as.OrderedWith.impl.Less.1, @Int.as.OrderedWith.impl.099(%N, %N) [symbolic = %Int.as.OrderedWith.impl.Less.type (constants.%Int.as.OrderedWith.impl.Less.type.e0f)] -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less: @IntRange.as.Iterate.impl.Next.%Int.as.OrderedWith.impl.Less.type (%Int.as.OrderedWith.impl.Less.type.e0f) = struct_value () [symbolic = %Int.as.OrderedWith.impl.Less (constants.%Int.as.OrderedWith.impl.Less.cbf)] -// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.specific_fn: = specific_function %Int.as.OrderedWith.impl.Less, @Int.as.OrderedWith.impl.Less.1(%N, %N) [symbolic = %Int.as.OrderedWith.impl.Less.specific_fn (constants.%Int.as.OrderedWith.impl.Less.specific_fn.cc7)] -// CHECK:STDOUT: %.loc14_9.1: require_specific_def_type = require_specific_def @Int.as.Inc.impl(%N) [symbolic = %.loc14_9.1 (constants.%.689)] +// CHECK:STDOUT: %require_complete.loc11_17: = require_complete_type %IntRange [symbolic = %require_complete.loc11_17 (constants.%require_complete.5d9)] +// CHECK:STDOUT: %require_complete.loc11_31: = require_complete_type %ptr.loc11_44.1 [symbolic = %require_complete.loc11_31 (constants.%require_complete.f79)] +// CHECK:STDOUT: %require_complete.loc11_47: = require_complete_type %Optional.loc11_75.1 [symbolic = %require_complete.loc11_47 (constants.%require_complete.63c)] +// CHECK:STDOUT: %require_complete.loc12: = require_complete_type %Int.loc11_43.1 [symbolic = %require_complete.loc12 (constants.%require_complete.4dfb92.1)] +// CHECK:STDOUT: %pattern_type.loc12: type = pattern_type %Int.loc11_43.1 [symbolic = %pattern_type.loc12 (constants.%pattern_type.142cb7.1)] +// CHECK:STDOUT: %.loc12_32.3: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%N) [symbolic = %.loc12_32.3 (constants.%.a53)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Int.loc11_43.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.f12)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.b83)] +// CHECK:STDOUT: %.loc12_32.4: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc12_32.4 (constants.%.c60)] +// CHECK:STDOUT: %impl.elem0.loc12_32.2: @IntRange.as.Iterate.impl.Next.%.loc12_32.4 (%.c60) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc12_32.2 (constants.%impl.elem0.284)] +// CHECK:STDOUT: %specific_impl_fn.loc12_32.2: = specific_impl_function %impl.elem0.loc12_32.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc12_32.2 (constants.%specific_impl_fn.f9f)] +// CHECK:STDOUT: %IntRange.elem: type = unbound_element_type %IntRange, %Int.loc11_43.1 [symbolic = %IntRange.elem (constants.%IntRange.elem.bed)] +// CHECK:STDOUT: %OrderedWith.type.loc13_17.2: type = facet_type <@OrderedWith, @OrderedWith(%Int.loc11_43.1)> [symbolic = %OrderedWith.type.loc13_17.2 (constants.%OrderedWith.type.6f8)] +// CHECK:STDOUT: %require_complete.loc13: = require_complete_type %OrderedWith.type.loc13_17.2 [symbolic = %require_complete.loc13 (constants.%require_complete.4c8)] +// CHECK:STDOUT: %OrderedWith.assoc_type: type = assoc_entity_type @OrderedWith, @OrderedWith(%Int.loc11_43.1) [symbolic = %OrderedWith.assoc_type (constants.%OrderedWith.assoc_type.e6d)] +// CHECK:STDOUT: %assoc0: @IntRange.as.Iterate.impl.Next.%OrderedWith.assoc_type (%OrderedWith.assoc_type.e6d) = assoc_entity element0, imports.%Core.import_ref.e7a [symbolic = %assoc0 (constants.%assoc0.ebc)] +// CHECK:STDOUT: %.loc13_17.2: require_specific_def_type = require_specific_def @Int.as.OrderedWith.impl.ab3(%N, %N) [symbolic = %.loc13_17.2 (constants.%.4a8)] +// CHECK:STDOUT: %OrderedWith.impl_witness: = impl_witness imports.%OrderedWith.impl_witness_table.5c1, @Int.as.OrderedWith.impl.ab3(%N, %N) [symbolic = %OrderedWith.impl_witness (constants.%OrderedWith.impl_witness.339)] +// CHECK:STDOUT: %OrderedWith.facet: @IntRange.as.Iterate.impl.Next.%OrderedWith.type.loc13_17.2 (%OrderedWith.type.6f8) = facet_value %Int.loc11_43.1, (%OrderedWith.impl_witness) [symbolic = %OrderedWith.facet (constants.%OrderedWith.facet.bf1)] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Int.loc11_43.1, %OrderedWith.facet) [symbolic = %OrderedWith.WithSelf.Less.type (constants.%OrderedWith.WithSelf.Less.type.c02)] +// CHECK:STDOUT: %.loc13_17.3: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type, %OrderedWith.facet [symbolic = %.loc13_17.3 (constants.%.08f)] +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.type: type = fn_type @Int.as.OrderedWith.impl.Less.1, @Int.as.OrderedWith.impl.ab3(%N, %N) [symbolic = %Int.as.OrderedWith.impl.Less.type (constants.%Int.as.OrderedWith.impl.Less.type.f5c)] +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less: @IntRange.as.Iterate.impl.Next.%Int.as.OrderedWith.impl.Less.type (%Int.as.OrderedWith.impl.Less.type.f5c) = struct_value () [symbolic = %Int.as.OrderedWith.impl.Less (constants.%Int.as.OrderedWith.impl.Less.13c)] +// CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.specific_fn: = specific_function %Int.as.OrderedWith.impl.Less, @Int.as.OrderedWith.impl.Less.1(%N, %N) [symbolic = %Int.as.OrderedWith.impl.Less.specific_fn (constants.%Int.as.OrderedWith.impl.Less.specific_fn.6ce)] +// CHECK:STDOUT: %.loc14_9.1: require_specific_def_type = require_specific_def @Int.as.Inc.impl(%N) [symbolic = %.loc14_9.1 (constants.%.f62)] // CHECK:STDOUT: %Inc.lookup_impl_witness: = lookup_impl_witness %Int.loc11_43.1, @Inc [symbolic = %Inc.lookup_impl_witness (constants.%Inc.lookup_impl_witness)] // CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %Int.loc11_43.1, (%Inc.lookup_impl_witness) [symbolic = %Inc.facet (constants.%Inc.facet)] -// CHECK:STDOUT: %Inc.WithSelf.Op.type: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%Inc.facet) [symbolic = %Inc.WithSelf.Op.type (constants.%Inc.WithSelf.Op.type.45e)] -// CHECK:STDOUT: %.loc14_9.2: type = fn_type_with_self_type %Inc.WithSelf.Op.type, %Inc.facet [symbolic = %.loc14_9.2 (constants.%.7cf)] -// CHECK:STDOUT: %impl.elem0.loc14_9.2: @IntRange.as.Iterate.impl.Next.%.loc14_9.2 (%.7cf) = impl_witness_access %Inc.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_9.2 (constants.%impl.elem0.e3c)] -// CHECK:STDOUT: %specific_impl_fn.loc14_9.2: = specific_impl_function %impl.elem0.loc14_9.2, @Inc.WithSelf.Op(%Inc.facet) [symbolic = %specific_impl_fn.loc14_9.2 (constants.%specific_impl_fn.461)] -// CHECK:STDOUT: %Optional.Some.type: type = fn_type @Optional.Some, @Optional(%OptionalStorage.facet.loc11_75.1) [symbolic = %Optional.Some.type (constants.%Optional.Some.type.fd4)] -// CHECK:STDOUT: %Optional.Some: @IntRange.as.Iterate.impl.Next.%Optional.Some.type (%Optional.Some.type.fd4) = struct_value () [symbolic = %Optional.Some (constants.%Optional.Some.f95)] +// CHECK:STDOUT: %Inc.WithSelf.Op.type: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%Inc.facet) [symbolic = %Inc.WithSelf.Op.type (constants.%Inc.WithSelf.Op.type.36a)] +// CHECK:STDOUT: %.loc14_9.2: type = fn_type_with_self_type %Inc.WithSelf.Op.type, %Inc.facet [symbolic = %.loc14_9.2 (constants.%.952)] +// CHECK:STDOUT: %impl.elem0.loc14_9.2: @IntRange.as.Iterate.impl.Next.%.loc14_9.2 (%.952) = impl_witness_access %Inc.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_9.2 (constants.%impl.elem0.7b5)] +// CHECK:STDOUT: %specific_impl_fn.loc14_9.2: = specific_impl_function %impl.elem0.loc14_9.2, @Inc.WithSelf.Op(%Inc.facet) [symbolic = %specific_impl_fn.loc14_9.2 (constants.%specific_impl_fn.ed1)] +// CHECK:STDOUT: %Optional.Some.type: type = fn_type @Optional.Some, @Optional(%OptionalStorage.facet.loc11_75.1) [symbolic = %Optional.Some.type (constants.%Optional.Some.type.422)] +// CHECK:STDOUT: %Optional.Some: @IntRange.as.Iterate.impl.Next.%Optional.Some.type (%Optional.Some.type.422) = struct_value () [symbolic = %Optional.Some (constants.%Optional.Some.bcf)] // CHECK:STDOUT: %Optional.Some.specific_fn.loc15_42.2: = specific_function %Optional.Some, @Optional.Some(%OptionalStorage.facet.loc11_75.1) [symbolic = %Optional.Some.specific_fn.loc15_42.2 (constants.%Optional.Some.specific_fn)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Int.loc11_43.1, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.38c)] -// 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.833)] -// CHECK:STDOUT: %.loc12_7: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc12_7 (constants.%.b6c)] -// CHECK:STDOUT: %impl.elem0.loc12_7.3: @IntRange.as.Iterate.impl.Next.%.loc12_7 (%.b6c) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc12_7.3 (constants.%impl.elem0.913)] -// CHECK:STDOUT: %specific_impl_fn.loc12_7.3: = specific_impl_function %impl.elem0.loc12_7.3, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc12_7.3 (constants.%specific_impl_fn.c0a)] -// CHECK:STDOUT: %Optional.None.type: type = fn_type @Optional.None, @Optional(%OptionalStorage.facet.loc11_75.1) [symbolic = %Optional.None.type (constants.%Optional.None.type.0f7)] -// CHECK:STDOUT: %Optional.None: @IntRange.as.Iterate.impl.Next.%Optional.None.type (%Optional.None.type.0f7) = struct_value () [symbolic = %Optional.None (constants.%Optional.None.aad)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Int.loc11_43.1, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.7bb)] +// 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.8f1)] +// CHECK:STDOUT: %.loc12_7: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc12_7 (constants.%.2c6)] +// CHECK:STDOUT: %impl.elem0.loc12_7.3: @IntRange.as.Iterate.impl.Next.%.loc12_7 (%.2c6) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc12_7.3 (constants.%impl.elem0.604)] +// CHECK:STDOUT: %specific_impl_fn.loc12_7.3: = specific_impl_function %impl.elem0.loc12_7.3, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc12_7.3 (constants.%specific_impl_fn.693)] +// CHECK:STDOUT: %Optional.None.type: type = fn_type @Optional.None, @Optional(%OptionalStorage.facet.loc11_75.1) [symbolic = %Optional.None.type (constants.%Optional.None.type.2aa)] +// CHECK:STDOUT: %Optional.None: @IntRange.as.Iterate.impl.Next.%Optional.None.type (%Optional.None.type.2aa) = struct_value () [symbolic = %Optional.None (constants.%Optional.None.fb7)] // CHECK:STDOUT: %Optional.None.specific_fn.loc17_42.2: = specific_function %Optional.None, @Optional.None(%OptionalStorage.facet.loc11_75.1) [symbolic = %Optional.None.specific_fn.loc17_42.2 (constants.%Optional.None.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @IntRange.as.Iterate.impl.Next.%IntRange (%IntRange.6d0), %cursor.param: @IntRange.as.Iterate.impl.Next.%ptr.loc11_44.1 (%ptr.f8f)) -> out %return.param: @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.621) { +// CHECK:STDOUT: fn(%self.param: @IntRange.as.Iterate.impl.Next.%IntRange (%IntRange.2c4), %cursor.param: @IntRange.as.Iterate.impl.Next.%ptr.loc11_44.1 (%ptr.41e)) -> out %return.param: @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.5ec) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %value.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc12 (%pattern_type.142972.1) = ref_binding_pattern value [concrete] -// CHECK:STDOUT: %value.var_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc12 (%pattern_type.142972.1) = var_pattern %value.patt [concrete] +// CHECK:STDOUT: %value.patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc12 (%pattern_type.142cb7.1) = ref_binding_pattern value [concrete] +// CHECK:STDOUT: %value.var_patt: @IntRange.as.Iterate.impl.Next.%pattern_type.loc12 (%pattern_type.142cb7.1) = var_pattern %value.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %value.var: ref @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.2cc5f1.1) = var %value.var_patt -// CHECK:STDOUT: %cursor.ref.loc12: @IntRange.as.Iterate.impl.Next.%ptr.loc11_44.1 (%ptr.f8f) = name_ref cursor, %cursor -// CHECK:STDOUT: %.loc12_32.1: ref @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.2cc5f1.1) = deref %cursor.ref.loc12 -// CHECK:STDOUT: %.loc12_32.2: @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.2cc5f1.1) = acquire_value %.loc12_32.1 -// CHECK:STDOUT: %impl.elem0.loc12_32.1: @IntRange.as.Iterate.impl.Next.%.loc12_32.4 (%.435) = impl_witness_access constants.%Copy.lookup_impl_witness.f90, element0 [symbolic = %impl.elem0.loc12_32.2 (constants.%impl.elem0.f2b)] +// CHECK:STDOUT: %value.var: ref @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.67af24.1) = var %value.var_patt +// CHECK:STDOUT: %cursor.ref.loc12: @IntRange.as.Iterate.impl.Next.%ptr.loc11_44.1 (%ptr.41e) = name_ref cursor, %cursor +// CHECK:STDOUT: %.loc12_32.1: ref @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.67af24.1) = deref %cursor.ref.loc12 +// CHECK:STDOUT: %.loc12_32.2: @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.67af24.1) = acquire_value %.loc12_32.1 +// CHECK:STDOUT: %impl.elem0.loc12_32.1: @IntRange.as.Iterate.impl.Next.%.loc12_32.4 (%.c60) = impl_witness_access constants.%Copy.lookup_impl_witness.df6, element0 [symbolic = %impl.elem0.loc12_32.2 (constants.%impl.elem0.284)] // CHECK:STDOUT: %bound_method.loc12_32.1: = bound_method %.loc12_32.2, %impl.elem0.loc12_32.1 -// CHECK:STDOUT: %specific_impl_fn.loc12_32.1: = specific_impl_function %impl.elem0.loc12_32.1, @Copy.WithSelf.Op(constants.%Copy.facet.718) [symbolic = %specific_impl_fn.loc12_32.2 (constants.%specific_impl_fn.f98)] +// CHECK:STDOUT: %specific_impl_fn.loc12_32.1: = specific_impl_function %impl.elem0.loc12_32.1, @Copy.WithSelf.Op(constants.%Copy.facet.f12) [symbolic = %specific_impl_fn.loc12_32.2 (constants.%specific_impl_fn.f9f)] // CHECK:STDOUT: %bound_method.loc12_32.2: = bound_method %.loc12_32.2, %specific_impl_fn.loc12_32.1 -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.2cc5f1.1) = call %bound_method.loc12_32.2(%.loc12_32.2) +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.67af24.1) = call %bound_method.loc12_32.2(%.loc12_32.2) // CHECK:STDOUT: assign %value.var, %Copy.WithSelf.Op.call -// CHECK:STDOUT: %.loc12_28: type = splice_block %Int.loc12 [symbolic = %Int.loc11_43.1 (constants.%Int.2cc5f1.1)] { +// CHECK:STDOUT: %.loc12_28: type = splice_block %Int.loc12 [symbolic = %Int.loc11_43.1 (constants.%Int.67af24.1)] { // CHECK:STDOUT: %Core.ref.loc12: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc12: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] // CHECK:STDOUT: %N.ref.loc12: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_17.2 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc12: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.1 (constants.%Int.2cc5f1.1)] +// CHECK:STDOUT: %Int.loc12: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.1 (constants.%Int.67af24.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %value: ref @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.2cc5f1.1) = ref_binding value, %value.var -// CHECK:STDOUT: %value.ref.loc13: ref @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.2cc5f1.1) = name_ref value, %value -// CHECK:STDOUT: %self.ref: @IntRange.as.Iterate.impl.Next.%IntRange (%IntRange.6d0) = name_ref self, %self -// CHECK:STDOUT: %end.ref: @IntRange.as.Iterate.impl.Next.%IntRange.elem (%IntRange.elem.19c) = name_ref end, @IntRange.%.loc23 [concrete = @IntRange.%.loc23] -// CHECK:STDOUT: %.loc13_23.1: ref @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.2cc5f1.1) = class_element_access %self.ref, element1 -// CHECK:STDOUT: %.loc13_23.2: @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.2cc5f1.1) = acquire_value %.loc13_23.1 -// CHECK:STDOUT: %OrderedWith.type.loc13_17.1: type = facet_type <@OrderedWith, @OrderedWith(constants.%Int.2cc5f1.1)> [symbolic = %OrderedWith.type.loc13_17.2 (constants.%OrderedWith.type.c0b)] -// CHECK:STDOUT: %.loc13_17.1: @IntRange.as.Iterate.impl.Next.%OrderedWith.assoc_type (%OrderedWith.assoc_type.6b3) = specific_constant imports.%Core.import_ref.eb4, @OrderedWith.WithSelf(constants.%Int.2cc5f1.1, constants.%Self.d014) [symbolic = %assoc0 (constants.%assoc0.791)] -// CHECK:STDOUT: %Less.ref: @IntRange.as.Iterate.impl.Next.%OrderedWith.assoc_type (%OrderedWith.assoc_type.6b3) = name_ref Less, %.loc13_17.1 [symbolic = %assoc0 (constants.%assoc0.791)] -// CHECK:STDOUT: %impl.elem0.loc13: @IntRange.as.Iterate.impl.Next.%.loc13_17.3 (%.d67) = impl_witness_access constants.%OrderedWith.impl_witness.8f9, element0 [symbolic = %Int.as.OrderedWith.impl.Less (constants.%Int.as.OrderedWith.impl.Less.cbf)] +// CHECK:STDOUT: %value: ref @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.67af24.1) = ref_binding value, %value.var +// CHECK:STDOUT: %value.ref.loc13: ref @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.67af24.1) = name_ref value, %value +// CHECK:STDOUT: %self.ref: @IntRange.as.Iterate.impl.Next.%IntRange (%IntRange.2c4) = name_ref self, %self +// CHECK:STDOUT: %end.ref: @IntRange.as.Iterate.impl.Next.%IntRange.elem (%IntRange.elem.bed) = name_ref end, @IntRange.%.loc23 [concrete = @IntRange.%.loc23] +// CHECK:STDOUT: %.loc13_23.1: ref @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.67af24.1) = class_element_access %self.ref, element1 +// CHECK:STDOUT: %.loc13_23.2: @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.67af24.1) = acquire_value %.loc13_23.1 +// CHECK:STDOUT: %OrderedWith.type.loc13_17.1: type = facet_type <@OrderedWith, @OrderedWith(constants.%Int.67af24.1)> [symbolic = %OrderedWith.type.loc13_17.2 (constants.%OrderedWith.type.6f8)] +// CHECK:STDOUT: %.loc13_17.1: @IntRange.as.Iterate.impl.Next.%OrderedWith.assoc_type (%OrderedWith.assoc_type.e6d) = specific_constant imports.%Core.import_ref.ef7, @OrderedWith.WithSelf(constants.%Int.67af24.1, constants.%Self.7df) [symbolic = %assoc0 (constants.%assoc0.ebc)] +// CHECK:STDOUT: %Less.ref: @IntRange.as.Iterate.impl.Next.%OrderedWith.assoc_type (%OrderedWith.assoc_type.e6d) = name_ref Less, %.loc13_17.1 [symbolic = %assoc0 (constants.%assoc0.ebc)] +// CHECK:STDOUT: %impl.elem0.loc13: @IntRange.as.Iterate.impl.Next.%.loc13_17.3 (%.08f) = impl_witness_access constants.%OrderedWith.impl_witness.339, element0 [symbolic = %Int.as.OrderedWith.impl.Less (constants.%Int.as.OrderedWith.impl.Less.13c)] // CHECK:STDOUT: %bound_method.loc13_17.1: = bound_method %value.ref.loc13, %impl.elem0.loc13 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc13, @Int.as.OrderedWith.impl.Less.1(constants.%N, constants.%N) [symbolic = %Int.as.OrderedWith.impl.Less.specific_fn (constants.%Int.as.OrderedWith.impl.Less.specific_fn.cc7)] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc13, @Int.as.OrderedWith.impl.Less.1(constants.%N, constants.%N) [symbolic = %Int.as.OrderedWith.impl.Less.specific_fn (constants.%Int.as.OrderedWith.impl.Less.specific_fn.6ce)] // CHECK:STDOUT: %bound_method.loc13_17.2: = bound_method %value.ref.loc13, %specific_fn -// CHECK:STDOUT: %.loc13_11: @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.2cc5f1.1) = acquire_value %value.ref.loc13 +// CHECK:STDOUT: %.loc13_11: @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.67af24.1) = acquire_value %value.ref.loc13 // CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.call: init bool = call %bound_method.loc13_17.2(%.loc13_11, %.loc13_23.2) // CHECK:STDOUT: %.loc13_27.1: bool = value_of_initializer %Int.as.OrderedWith.impl.Less.call // CHECK:STDOUT: %.loc13_27.2: bool = converted %Int.as.OrderedWith.impl.Less.call, %.loc13_27.1 // CHECK:STDOUT: if %.loc13_27.2 br !if.then else br !if.else // CHECK:STDOUT: // CHECK:STDOUT: !if.then: -// CHECK:STDOUT: %cursor.ref.loc14: @IntRange.as.Iterate.impl.Next.%ptr.loc11_44.1 (%ptr.f8f) = name_ref cursor, %cursor -// CHECK:STDOUT: %.loc14_11: ref @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.2cc5f1.1) = deref %cursor.ref.loc14 -// CHECK:STDOUT: %impl.elem0.loc14_9.1: @IntRange.as.Iterate.impl.Next.%.loc14_9.2 (%.7cf) = impl_witness_access constants.%Inc.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_9.2 (constants.%impl.elem0.e3c)] +// CHECK:STDOUT: %cursor.ref.loc14: @IntRange.as.Iterate.impl.Next.%ptr.loc11_44.1 (%ptr.41e) = name_ref cursor, %cursor +// CHECK:STDOUT: %.loc14_11: ref @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.67af24.1) = deref %cursor.ref.loc14 +// CHECK:STDOUT: %impl.elem0.loc14_9.1: @IntRange.as.Iterate.impl.Next.%.loc14_9.2 (%.952) = impl_witness_access constants.%Inc.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_9.2 (constants.%impl.elem0.7b5)] // CHECK:STDOUT: %bound_method.loc14_9.1: = bound_method %.loc14_11, %impl.elem0.loc14_9.1 -// CHECK:STDOUT: %specific_impl_fn.loc14_9.1: = specific_impl_function %impl.elem0.loc14_9.1, @Inc.WithSelf.Op(constants.%Inc.facet) [symbolic = %specific_impl_fn.loc14_9.2 (constants.%specific_impl_fn.461)] +// CHECK:STDOUT: %specific_impl_fn.loc14_9.1: = specific_impl_function %impl.elem0.loc14_9.1, @Inc.WithSelf.Op(constants.%Inc.facet) [symbolic = %specific_impl_fn.loc14_9.2 (constants.%specific_impl_fn.ed1)] // CHECK:STDOUT: %bound_method.loc14_9.2: = bound_method %.loc14_11, %specific_impl_fn.loc14_9.1 // CHECK:STDOUT: %Inc.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc14_9.2(%.loc14_11) // CHECK:STDOUT: %Core.ref.loc15_16: = name_ref Core, imports.%Core [concrete = imports.%Core] @@ -669,22 +669,22 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %Core.ref.loc15_30: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc15: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] // CHECK:STDOUT: %N.ref.loc15: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_17.2 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc15: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.1 (constants.%Int.2cc5f1.1)] -// CHECK:STDOUT: %OptionalStorage.facet.loc15_41: %OptionalStorage.type = facet_value %Int.loc15, (constants.%OptionalStorage.lookup_impl_witness.a55) [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.6e7)] -// CHECK:STDOUT: %.loc15_41: %OptionalStorage.type = converted %Int.loc15, %OptionalStorage.facet.loc15_41 [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.6e7)] -// CHECK:STDOUT: %Optional.loc15: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.6e7) [symbolic = %Optional.loc11_75.1 (constants.%Optional.621)] -// CHECK:STDOUT: %.loc15_42: @IntRange.as.Iterate.impl.Next.%Optional.Some.type (%Optional.Some.type.fd4) = specific_constant imports.%Core.import_ref.820, @Optional(constants.%OptionalStorage.facet.6e7) [symbolic = %Optional.Some (constants.%Optional.Some.f95)] -// CHECK:STDOUT: %Some.ref: @IntRange.as.Iterate.impl.Next.%Optional.Some.type (%Optional.Some.type.fd4) = name_ref Some, %.loc15_42 [symbolic = %Optional.Some (constants.%Optional.Some.f95)] -// CHECK:STDOUT: %value.ref.loc15: ref @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.2cc5f1.1) = name_ref value, %value -// CHECK:STDOUT: %OptionalStorage.facet.loc15_53: %OptionalStorage.type = facet_value constants.%Int.2cc5f1.1, (constants.%OptionalStorage.lookup_impl_witness.a55) [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.6e7)] -// CHECK:STDOUT: %.loc15_53: %OptionalStorage.type = converted constants.%Int.2cc5f1.1, %OptionalStorage.facet.loc15_53 [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.6e7)] -// CHECK:STDOUT: %Optional.Some.specific_fn.loc15_42.1: = specific_function %Some.ref, @Optional.Some(constants.%OptionalStorage.facet.6e7) [symbolic = %Optional.Some.specific_fn.loc15_42.2 (constants.%Optional.Some.specific_fn)] -// CHECK:STDOUT: %.loc11_75.1: ref @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.621) = splice_block %return.param {} -// CHECK:STDOUT: %.loc15_48: @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.2cc5f1.1) = acquire_value %value.ref.loc15 -// CHECK:STDOUT: %Optional.Some.call: init @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.621) to %.loc11_75.1 = call %Optional.Some.specific_fn.loc15_42.1(%.loc15_48) -// CHECK:STDOUT: %impl.elem0.loc12_7.1: @IntRange.as.Iterate.impl.Next.%.loc12_7 (%.b6c) = impl_witness_access constants.%Destroy.lookup_impl_witness.c2c, element0 [symbolic = %impl.elem0.loc12_7.3 (constants.%impl.elem0.913)] +// CHECK:STDOUT: %Int.loc15: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.1 (constants.%Int.67af24.1)] +// CHECK:STDOUT: %OptionalStorage.facet.loc15_41: %OptionalStorage.type = facet_value %Int.loc15, (constants.%OptionalStorage.lookup_impl_witness.a32) [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.b99)] +// CHECK:STDOUT: %.loc15_41: %OptionalStorage.type = converted %Int.loc15, %OptionalStorage.facet.loc15_41 [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.b99)] +// CHECK:STDOUT: %Optional.loc15: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.b99) [symbolic = %Optional.loc11_75.1 (constants.%Optional.5ec)] +// CHECK:STDOUT: %.loc15_42: @IntRange.as.Iterate.impl.Next.%Optional.Some.type (%Optional.Some.type.422) = specific_constant imports.%Core.import_ref.84b, @Optional(constants.%OptionalStorage.facet.b99) [symbolic = %Optional.Some (constants.%Optional.Some.bcf)] +// CHECK:STDOUT: %Some.ref: @IntRange.as.Iterate.impl.Next.%Optional.Some.type (%Optional.Some.type.422) = name_ref Some, %.loc15_42 [symbolic = %Optional.Some (constants.%Optional.Some.bcf)] +// CHECK:STDOUT: %value.ref.loc15: ref @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.67af24.1) = name_ref value, %value +// CHECK:STDOUT: %OptionalStorage.facet.loc15_53: %OptionalStorage.type = facet_value constants.%Int.67af24.1, (constants.%OptionalStorage.lookup_impl_witness.a32) [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.b99)] +// CHECK:STDOUT: %.loc15_53: %OptionalStorage.type = converted constants.%Int.67af24.1, %OptionalStorage.facet.loc15_53 [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.b99)] +// CHECK:STDOUT: %Optional.Some.specific_fn.loc15_42.1: = specific_function %Some.ref, @Optional.Some(constants.%OptionalStorage.facet.b99) [symbolic = %Optional.Some.specific_fn.loc15_42.2 (constants.%Optional.Some.specific_fn)] +// CHECK:STDOUT: %.loc11_75.1: ref @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.5ec) = splice_block %return.param {} +// CHECK:STDOUT: %.loc15_48: @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.67af24.1) = acquire_value %value.ref.loc15 +// CHECK:STDOUT: %Optional.Some.call: init @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.5ec) to %.loc11_75.1 = call %Optional.Some.specific_fn.loc15_42.1(%.loc15_48) +// CHECK:STDOUT: %impl.elem0.loc12_7.1: @IntRange.as.Iterate.impl.Next.%.loc12_7 (%.2c6) = impl_witness_access constants.%Destroy.lookup_impl_witness.173, element0 [symbolic = %impl.elem0.loc12_7.3 (constants.%impl.elem0.604)] // CHECK:STDOUT: %bound_method.loc12_7.1: = bound_method %value.var, %impl.elem0.loc12_7.1 -// CHECK:STDOUT: %specific_impl_fn.loc12_7.1: = specific_impl_function %impl.elem0.loc12_7.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.38c) [symbolic = %specific_impl_fn.loc12_7.3 (constants.%specific_impl_fn.c0a)] +// CHECK:STDOUT: %specific_impl_fn.loc12_7.1: = specific_impl_function %impl.elem0.loc12_7.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.7bb) [symbolic = %specific_impl_fn.loc12_7.3 (constants.%specific_impl_fn.693)] // CHECK:STDOUT: %bound_method.loc12_7.2: = bound_method %value.var, %specific_impl_fn.loc12_7.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc12_7.1: init %empty_tuple.type = call %bound_method.loc12_7.2(%value.var) // CHECK:STDOUT: return %Optional.Some.call to %return.param @@ -695,43 +695,43 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %Core.ref.loc17_30: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc17: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] // CHECK:STDOUT: %N.ref.loc17: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_17.2 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc17: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.1 (constants.%Int.2cc5f1.1)] -// CHECK:STDOUT: %OptionalStorage.facet.loc17: %OptionalStorage.type = facet_value %Int.loc17, (constants.%OptionalStorage.lookup_impl_witness.a55) [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.6e7)] -// CHECK:STDOUT: %.loc17_41: %OptionalStorage.type = converted %Int.loc17, %OptionalStorage.facet.loc17 [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.6e7)] -// CHECK:STDOUT: %Optional.loc17: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.6e7) [symbolic = %Optional.loc11_75.1 (constants.%Optional.621)] -// CHECK:STDOUT: %.loc17_42: @IntRange.as.Iterate.impl.Next.%Optional.None.type (%Optional.None.type.0f7) = specific_constant imports.%Core.import_ref.3be, @Optional(constants.%OptionalStorage.facet.6e7) [symbolic = %Optional.None (constants.%Optional.None.aad)] -// CHECK:STDOUT: %None.ref: @IntRange.as.Iterate.impl.Next.%Optional.None.type (%Optional.None.type.0f7) = name_ref None, %.loc17_42 [symbolic = %Optional.None (constants.%Optional.None.aad)] -// CHECK:STDOUT: %Optional.None.specific_fn.loc17_42.1: = specific_function %None.ref, @Optional.None(constants.%OptionalStorage.facet.6e7) [symbolic = %Optional.None.specific_fn.loc17_42.2 (constants.%Optional.None.specific_fn)] -// CHECK:STDOUT: %.loc11_75.2: ref @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.621) = splice_block %return.param {} -// CHECK:STDOUT: %Optional.None.call: init @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.621) to %.loc11_75.2 = call %Optional.None.specific_fn.loc17_42.1() -// CHECK:STDOUT: %impl.elem0.loc12_7.2: @IntRange.as.Iterate.impl.Next.%.loc12_7 (%.b6c) = impl_witness_access constants.%Destroy.lookup_impl_witness.c2c, element0 [symbolic = %impl.elem0.loc12_7.3 (constants.%impl.elem0.913)] +// CHECK:STDOUT: %Int.loc17: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.1 (constants.%Int.67af24.1)] +// CHECK:STDOUT: %OptionalStorage.facet.loc17: %OptionalStorage.type = facet_value %Int.loc17, (constants.%OptionalStorage.lookup_impl_witness.a32) [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.b99)] +// CHECK:STDOUT: %.loc17_41: %OptionalStorage.type = converted %Int.loc17, %OptionalStorage.facet.loc17 [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.b99)] +// CHECK:STDOUT: %Optional.loc17: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.b99) [symbolic = %Optional.loc11_75.1 (constants.%Optional.5ec)] +// CHECK:STDOUT: %.loc17_42: @IntRange.as.Iterate.impl.Next.%Optional.None.type (%Optional.None.type.2aa) = specific_constant imports.%Core.import_ref.6e4, @Optional(constants.%OptionalStorage.facet.b99) [symbolic = %Optional.None (constants.%Optional.None.fb7)] +// CHECK:STDOUT: %None.ref: @IntRange.as.Iterate.impl.Next.%Optional.None.type (%Optional.None.type.2aa) = name_ref None, %.loc17_42 [symbolic = %Optional.None (constants.%Optional.None.fb7)] +// CHECK:STDOUT: %Optional.None.specific_fn.loc17_42.1: = specific_function %None.ref, @Optional.None(constants.%OptionalStorage.facet.b99) [symbolic = %Optional.None.specific_fn.loc17_42.2 (constants.%Optional.None.specific_fn)] +// CHECK:STDOUT: %.loc11_75.2: ref @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.5ec) = splice_block %return.param {} +// CHECK:STDOUT: %Optional.None.call: init @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.5ec) to %.loc11_75.2 = call %Optional.None.specific_fn.loc17_42.1() +// CHECK:STDOUT: %impl.elem0.loc12_7.2: @IntRange.as.Iterate.impl.Next.%.loc12_7 (%.2c6) = impl_witness_access constants.%Destroy.lookup_impl_witness.173, element0 [symbolic = %impl.elem0.loc12_7.3 (constants.%impl.elem0.604)] // CHECK:STDOUT: %bound_method.loc12_7.3: = bound_method %value.var, %impl.elem0.loc12_7.2 -// CHECK:STDOUT: %specific_impl_fn.loc12_7.2: = specific_impl_function %impl.elem0.loc12_7.2, @Destroy.WithSelf.Op(constants.%Destroy.facet.38c) [symbolic = %specific_impl_fn.loc12_7.3 (constants.%specific_impl_fn.c0a)] +// CHECK:STDOUT: %specific_impl_fn.loc12_7.2: = specific_impl_function %impl.elem0.loc12_7.2, @Destroy.WithSelf.Op(constants.%Destroy.facet.7bb) [symbolic = %specific_impl_fn.loc12_7.3 (constants.%specific_impl_fn.693)] // CHECK:STDOUT: %bound_method.loc12_7.4: = bound_method %value.var, %specific_impl_fn.loc12_7.2 // CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc12_7.2: init %empty_tuple.type = call %bound_method.loc12_7.4(%value.var) // CHECK:STDOUT: return %Optional.None.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Range(%end.param: %i32) -> out %return.param: %IntRange.c25 { +// CHECK:STDOUT: fn @Range(%end.param: %i32) -> out %return.param: %IntRange.bbd { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %IntRange.ref.loc27: %IntRange.type = name_ref IntRange, file.%IntRange.decl [concrete = constants.%IntRange.generic] // CHECK:STDOUT: %int_32.loc27: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] -// CHECK:STDOUT: %IntRange.loc27: type = class_type @IntRange, @IntRange(constants.%int_32) [concrete = constants.%IntRange.c25] -// CHECK:STDOUT: %.loc27_22: %IntRange.Make.type.6de = specific_constant @IntRange.%IntRange.Make.decl, @IntRange(constants.%int_32) [concrete = constants.%IntRange.Make.2b6] -// CHECK:STDOUT: %Make.ref: %IntRange.Make.type.6de = name_ref Make, %.loc27_22 [concrete = constants.%IntRange.Make.2b6] +// CHECK:STDOUT: %IntRange.loc27: type = class_type @IntRange, @IntRange(constants.%int_32) [concrete = constants.%IntRange.bbd] +// CHECK:STDOUT: %.loc27_22: %IntRange.Make.type.d27 = specific_constant @IntRange.%IntRange.Make.decl, @IntRange(constants.%int_32) [concrete = constants.%IntRange.Make.9ef] +// CHECK:STDOUT: %Make.ref: %IntRange.Make.type.d27 = name_ref Make, %.loc27_22 [concrete = constants.%IntRange.Make.9ef] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %end.ref: %i32 = name_ref end, %end // CHECK:STDOUT: %IntRange.Make.specific_fn: = specific_function %Make.ref, @IntRange.Make(constants.%int_32) [concrete = constants.%IntRange.Make.specific_fn] -// CHECK:STDOUT: %.loc26_34.1: ref %IntRange.c25 = splice_block %return.param {} -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %.loc26_34.1: ref %IntRange.bbd = splice_block %return.param {} +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc27_28.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc27_28.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc27_28.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc27_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc27_28.2: %i32 = converted %int_0, %.loc27_28.1 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %IntRange.Make.call: init %IntRange.c25 to %.loc26_34.1 = call %IntRange.Make.specific_fn(%.loc27_28.2, %end.ref) +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc27_28.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc27_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc27_28.2: %i32 = converted %int_0, %.loc27_28.1 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %IntRange.Make.call: init %IntRange.bbd to %.loc26_34.1 = call %IntRange.Make.specific_fn(%.loc27_28.2, %end.ref) // CHECK:STDOUT: return %IntRange.Make.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: @@ -739,39 +739,39 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %N.loc4_17.1 => constants.%N // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %IntRange.Make.type => constants.%IntRange.Make.type.500 -// CHECK:STDOUT: %IntRange.Make => constants.%IntRange.Make.d7d -// CHECK:STDOUT: %Int => constants.%Int.2cc5f1.1 -// CHECK:STDOUT: %require_complete => constants.%require_complete.692f79.1 -// CHECK:STDOUT: %IntRange => constants.%IntRange.6d0 -// CHECK:STDOUT: %IntRange.elem => constants.%IntRange.elem.19c -// CHECK:STDOUT: %struct_type.start.end => constants.%struct_type.start.end.d60 -// CHECK:STDOUT: %complete_type.loc24_1.2 => constants.%complete_type.b17 +// CHECK:STDOUT: %IntRange.Make.type => constants.%IntRange.Make.type.522 +// CHECK:STDOUT: %IntRange.Make => constants.%IntRange.Make.8ef +// CHECK:STDOUT: %Int => constants.%Int.67af24.1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.4dfb92.1 +// CHECK:STDOUT: %IntRange => constants.%IntRange.2c4 +// CHECK:STDOUT: %IntRange.elem => constants.%IntRange.elem.bed +// CHECK:STDOUT: %struct_type.start.end => constants.%struct_type.start.end.d4d +// CHECK:STDOUT: %complete_type.loc24_1.2 => constants.%complete_type.aa1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IntRange.Make(constants.%N) { // CHECK:STDOUT: %N => constants.%N -// CHECK:STDOUT: %Int.loc5_28.1 => constants.%Int.2cc5f1.1 -// CHECK:STDOUT: %pattern_type.loc5_16 => constants.%pattern_type.142972.1 -// CHECK:STDOUT: %IntRange => constants.%IntRange.6d0 -// CHECK:STDOUT: %.loc5_52.1 => constants.%.4e7 -// CHECK:STDOUT: %pattern_type.loc5_52 => constants.%pattern_type.255 +// CHECK:STDOUT: %Int.loc5_28.1 => constants.%Int.67af24.1 +// CHECK:STDOUT: %pattern_type.loc5_16 => constants.%pattern_type.142cb7.1 +// CHECK:STDOUT: %IntRange => constants.%IntRange.2c4 +// CHECK:STDOUT: %.loc5_52.1 => constants.%.5c3 +// CHECK:STDOUT: %pattern_type.loc5_52 => constants.%pattern_type.1ea // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IntRange.as.Iterate.impl(constants.%N) { // CHECK:STDOUT: %N => constants.%N -// CHECK:STDOUT: %IntRange => constants.%IntRange.6d0 -// CHECK:STDOUT: %Int.loc9_54.1 => constants.%Int.2cc5f1.1 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%Destroy.lookup_impl_witness.c2c -// CHECK:STDOUT: %Destroy.facet.loc9_54.1 => constants.%Destroy.facet.38c -// CHECK:STDOUT: %.loc9_85.1 => constants.%.8a3 -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.f90 +// CHECK:STDOUT: %IntRange => constants.%IntRange.2c4 +// CHECK:STDOUT: %Int.loc9_54.1 => constants.%Int.67af24.1 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%Destroy.lookup_impl_witness.173 +// CHECK:STDOUT: %Destroy.facet.loc9_54.1 => constants.%Destroy.facet.7bb +// CHECK:STDOUT: %.loc9_85.1 => constants.%.a53 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.df6 // CHECK:STDOUT: %facet_value.loc9_85.1 => constants.%facet_value // CHECK:STDOUT: %Iterate_where.type => constants.%Iterate_where.type // CHECK:STDOUT: %Iterate.impl_witness.loc9_87.2 => constants.%Iterate.impl_witness // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.a65 +// CHECK:STDOUT: %require_complete => constants.%require_complete.975 // CHECK:STDOUT: %IntRange.as.Iterate.impl.NewCursor.type => constants.%IntRange.as.Iterate.impl.NewCursor.type // CHECK:STDOUT: %IntRange.as.Iterate.impl.NewCursor => constants.%IntRange.as.Iterate.impl.NewCursor // CHECK:STDOUT: %IntRange.as.Iterate.impl.Next.type => constants.%IntRange.as.Iterate.impl.Next.type @@ -780,63 +780,63 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: // CHECK:STDOUT: specific @IntRange.as.Iterate.impl.NewCursor(constants.%N) { // CHECK:STDOUT: %N => constants.%N -// CHECK:STDOUT: %IntRange => constants.%IntRange.6d0 -// CHECK:STDOUT: %pattern_type.loc10_22 => constants.%pattern_type.255 -// CHECK:STDOUT: %Int.loc10_45.1 => constants.%Int.2cc5f1.1 -// CHECK:STDOUT: %.loc10_45.1 => constants.%.245fba.1 -// CHECK:STDOUT: %pattern_type.loc10_45 => constants.%pattern_type.142972.1 +// CHECK:STDOUT: %IntRange => constants.%IntRange.2c4 +// CHECK:STDOUT: %pattern_type.loc10_22 => constants.%pattern_type.1ea +// CHECK:STDOUT: %Int.loc10_45.1 => constants.%Int.67af24.1 +// CHECK:STDOUT: %.loc10_45.1 => constants.%.df5d8d.1 +// CHECK:STDOUT: %pattern_type.loc10_45 => constants.%pattern_type.142cb7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IntRange.as.Iterate.impl.Next(constants.%N) { // CHECK:STDOUT: %N => constants.%N -// CHECK:STDOUT: %IntRange => constants.%IntRange.6d0 -// CHECK:STDOUT: %pattern_type.loc11_17 => constants.%pattern_type.255 -// CHECK:STDOUT: %Int.loc11_43.1 => constants.%Int.2cc5f1.1 -// CHECK:STDOUT: %ptr.loc11_44.1 => constants.%ptr.f8f -// CHECK:STDOUT: %pattern_type.loc11_31 => constants.%pattern_type.fa7 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%Destroy.lookup_impl_witness.c2c -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.f90 +// CHECK:STDOUT: %IntRange => constants.%IntRange.2c4 +// CHECK:STDOUT: %pattern_type.loc11_17 => constants.%pattern_type.1ea +// CHECK:STDOUT: %Int.loc11_43.1 => constants.%Int.67af24.1 +// CHECK:STDOUT: %ptr.loc11_44.1 => constants.%ptr.41e +// CHECK:STDOUT: %pattern_type.loc11_31 => constants.%pattern_type.833 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%Destroy.lookup_impl_witness.173 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.df6 // CHECK:STDOUT: %facet_value => constants.%facet_value -// CHECK:STDOUT: %.loc11_75.3 => constants.%.a8e -// CHECK:STDOUT: %OptionalStorage.lookup_impl_witness => constants.%OptionalStorage.lookup_impl_witness.a55 -// CHECK:STDOUT: %OptionalStorage.facet.loc11_75.1 => constants.%OptionalStorage.facet.6e7 -// CHECK:STDOUT: %Optional.loc11_75.1 => constants.%Optional.621 -// CHECK:STDOUT: %.loc11_75.4 => constants.%.222 -// CHECK:STDOUT: %pattern_type.loc11_75 => constants.%pattern_type.16e +// CHECK:STDOUT: %.loc11_75.3 => constants.%.17c +// CHECK:STDOUT: %OptionalStorage.lookup_impl_witness => constants.%OptionalStorage.lookup_impl_witness.a32 +// CHECK:STDOUT: %OptionalStorage.facet.loc11_75.1 => constants.%OptionalStorage.facet.b99 +// CHECK:STDOUT: %Optional.loc11_75.1 => constants.%Optional.5ec +// CHECK:STDOUT: %.loc11_75.4 => constants.%.3f3 +// CHECK:STDOUT: %pattern_type.loc11_75 => constants.%pattern_type.b38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IntRange(constants.%int_32) { // CHECK:STDOUT: %N.loc4_17.1 => constants.%int_32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %IntRange.Make.type => constants.%IntRange.Make.type.6de -// CHECK:STDOUT: %IntRange.Make => constants.%IntRange.Make.2b6 +// CHECK:STDOUT: %IntRange.Make.type => constants.%IntRange.Make.type.d27 +// CHECK:STDOUT: %IntRange.Make => constants.%IntRange.Make.9ef // CHECK:STDOUT: %Int => constants.%i32 // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %IntRange => constants.%IntRange.c25 -// CHECK:STDOUT: %IntRange.elem => constants.%IntRange.elem.aeb -// CHECK:STDOUT: %struct_type.start.end => constants.%struct_type.start.end.ace -// CHECK:STDOUT: %complete_type.loc24_1.2 => constants.%complete_type.0a3 +// CHECK:STDOUT: %IntRange => constants.%IntRange.bbd +// CHECK:STDOUT: %IntRange.elem => constants.%IntRange.elem.6b1 +// CHECK:STDOUT: %struct_type.start.end => constants.%struct_type.start.end.e93 +// CHECK:STDOUT: %complete_type.loc24_1.2 => constants.%complete_type.ec7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IntRange.Make(constants.%int_32) { // CHECK:STDOUT: %N => constants.%int_32 // CHECK:STDOUT: %Int.loc5_28.1 => constants.%i32 -// CHECK:STDOUT: %pattern_type.loc5_16 => constants.%pattern_type.104 -// CHECK:STDOUT: %IntRange => constants.%IntRange.c25 -// CHECK:STDOUT: %.loc5_52.1 => constants.%.fdc -// CHECK:STDOUT: %pattern_type.loc5_52 => constants.%pattern_type.ea5 +// CHECK:STDOUT: %pattern_type.loc5_16 => constants.%pattern_type.6b6 +// CHECK:STDOUT: %IntRange => constants.%IntRange.bbd +// CHECK:STDOUT: %.loc5_52.1 => constants.%.9fd +// CHECK:STDOUT: %pattern_type.loc5_52 => constants.%pattern_type.0f3 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_16 => constants.%complete_type.f8a -// CHECK:STDOUT: %require_complete.loc5_49 => constants.%complete_type.0a3 -// CHECK:STDOUT: %struct_type.start.end => constants.%struct_type.start.end.ace -// CHECK:STDOUT: %.loc6_22.1 => constants.%.9ea -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.1a4 -// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.14d -// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.7e2 -// CHECK:STDOUT: %.loc6_22.2 => constants.%.604 -// CHECK:STDOUT: %impl.elem0.loc6_22.2 => constants.%Int.as.Copy.impl.Op.ce7 +// CHECK:STDOUT: %require_complete.loc5_49 => constants.%complete_type.ec7 +// CHECK:STDOUT: %struct_type.start.end => constants.%struct_type.start.end.e93 +// CHECK:STDOUT: %.loc6_22.1 => constants.%.cf6 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.0e0 +// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.987 +// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.d09 +// CHECK:STDOUT: %.loc6_22.2 => constants.%.7a6 +// CHECK:STDOUT: %impl.elem0.loc6_22.2 => constants.%Int.as.Copy.impl.Op.4f6 // CHECK:STDOUT: %specific_impl_fn.loc6_22.2 => constants.%Int.as.Copy.impl.Op.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: @@ -855,64 +855,64 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %IntRange.type: type = generic_class_type @IntRange [concrete] // CHECK:STDOUT: %IntRange.generic: %IntRange.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %Int.3115b2.1: type = class_type @Int, @Int(%N) [symbolic] -// CHECK:STDOUT: %struct_type.start.end.6fa: type = struct_type {.start: %Int.3115b2.1, .end: %Int.3115b2.1} [symbolic] -// CHECK:STDOUT: %complete_type.eec: = complete_type_witness %struct_type.start.end.6fa [symbolic] -// CHECK:STDOUT: %IntRange.6d0: type = class_type @IntRange, @IntRange(%N) [symbolic] -// CHECK:STDOUT: %IntRange.elem.ba5: type = unbound_element_type %IntRange.6d0, %Int.3115b2.1 [symbolic] -// CHECK:STDOUT: %require_complete.a3d1cc.1: = require_complete_type %Int.3115b2.1 [symbolic] -// CHECK:STDOUT: %IntRange.Make.type.500: type = fn_type @IntRange.Make, @IntRange(%N) [symbolic] -// CHECK:STDOUT: %IntRange.Make.d7d: %IntRange.Make.type.500 = struct_value () [symbolic] -// CHECK:STDOUT: %pattern_type.255: type = pattern_type %IntRange.6d0 [symbolic] -// CHECK:STDOUT: %.4e7: Core.Form = init_form %IntRange.6d0 [symbolic] -// CHECK:STDOUT: %pattern_type.0c3b75.1: type = pattern_type %Int.3115b2.1 [symbolic] +// CHECK:STDOUT: %Int.67af24.1: type = class_type @Int, @Int(%N) [symbolic] +// CHECK:STDOUT: %struct_type.start.end.d4d: type = struct_type {.start: %Int.67af24.1, .end: %Int.67af24.1} [symbolic] +// CHECK:STDOUT: %complete_type.aa1: = complete_type_witness %struct_type.start.end.d4d [symbolic] +// CHECK:STDOUT: %IntRange.2c4: type = class_type @IntRange, @IntRange(%N) [symbolic] +// CHECK:STDOUT: %IntRange.elem.bed: type = unbound_element_type %IntRange.2c4, %Int.67af24.1 [symbolic] +// CHECK:STDOUT: %require_complete.4dfb92.1: = require_complete_type %Int.67af24.1 [symbolic] +// CHECK:STDOUT: %IntRange.Make.type.522: type = fn_type @IntRange.Make, @IntRange(%N) [symbolic] +// CHECK:STDOUT: %IntRange.Make.8ef: %IntRange.Make.type.522 = struct_value () [symbolic] +// CHECK:STDOUT: %pattern_type.1ea: type = pattern_type %IntRange.2c4 [symbolic] +// CHECK:STDOUT: %.5c3: Core.Form = init_form %IntRange.2c4 [symbolic] +// CHECK:STDOUT: %pattern_type.142cb7.1: type = pattern_type %Int.67af24.1 [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.lookup_impl_witness.aa4: = lookup_impl_witness %Int.3115b2.1, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Int.3115b2.1, (%Copy.lookup_impl_witness.aa4) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7cb: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] -// CHECK:STDOUT: %.84c: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7cb, %Copy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.c43: %.84c = impl_witness_access %Copy.lookup_impl_witness.aa4, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.ef9: = specific_impl_function %impl.elem0.c43, @Copy.WithSelf.Op(%Copy.facet) [symbolic] -// CHECK:STDOUT: %.def: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %require_complete.f50: = require_complete_type %IntRange.6d0 [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.df6: = lookup_impl_witness %Int.67af24.1, @Copy [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Int.67af24.1, (%Copy.lookup_impl_witness.df6) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.b83: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] +// CHECK:STDOUT: %.c60: type = fn_type_with_self_type %Copy.WithSelf.Op.type.b83, %Copy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.284: %.c60 = impl_witness_access %Copy.lookup_impl_witness.df6, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.f9f: = specific_impl_function %impl.elem0.284, @Copy.WithSelf.Op(%Copy.facet) [symbolic] +// CHECK:STDOUT: %.a53: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%N) [symbolic] +// CHECK:STDOUT: %require_complete.5d9: = require_complete_type %IntRange.2c4 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %IntRange.c25: type = class_type @IntRange, @IntRange(%int_32) [concrete] -// CHECK:STDOUT: %IntRange.Make.type.6de: type = fn_type @IntRange.Make, @IntRange(%int_32) [concrete] -// CHECK:STDOUT: %IntRange.Make.2b6: %IntRange.Make.type.6de = struct_value () [concrete] +// CHECK:STDOUT: %IntRange.bbd: type = class_type @IntRange, @IntRange(%int_32) [concrete] +// CHECK:STDOUT: %IntRange.Make.type.d27: type = fn_type @IntRange.Make, @IntRange(%int_32) [concrete] +// CHECK:STDOUT: %IntRange.Make.9ef: %IntRange.Make.type.d27 = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %IntRange.elem.9da: type = unbound_element_type %IntRange.c25, %i32 [concrete] -// CHECK:STDOUT: %struct_type.start.end.1be: type = struct_type {.start: %i32, .end: %i32} [concrete] -// CHECK:STDOUT: %complete_type.e14: = complete_type_witness %struct_type.start.end.1be [concrete] -// CHECK:STDOUT: %pattern_type.ea5: type = pattern_type %IntRange.c25 [concrete] +// CHECK:STDOUT: %IntRange.elem.6b1: type = unbound_element_type %IntRange.bbd, %i32 [concrete] +// CHECK:STDOUT: %struct_type.start.end.e93: type = struct_type {.start: %i32, .end: %i32} [concrete] +// CHECK:STDOUT: %complete_type.ec7: = complete_type_witness %struct_type.start.end.e93 [concrete] +// CHECK:STDOUT: %pattern_type.0f3: type = pattern_type %IntRange.bbd [concrete] // CHECK:STDOUT: %Range.type: type = fn_type @Range [concrete] // CHECK:STDOUT: %Range: %Range.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.cf3: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a20: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.09f(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.cd7: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a20 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e84: = impl_witness imports.%ImplicitAs.impl_witness_table.fca, @Core.IntLiteral.as.ImplicitAs.impl.09f(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.104: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.09f(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.785: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.104 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.cf3 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e84) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b79: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.56d: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b79, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %y, %Core.IntLiteral.as.ImplicitAs.impl.Convert.785 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.785, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %y, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [symbolic] +// 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 %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.790b3b.4: type = fn_type @Destroy.Op.loc5_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.IntRange: %IntRange.type = import_ref Main//lib, IntRange, loaded [concrete = constants.%IntRange.generic] // CHECK:STDOUT: %Main.Range: %Range.type = import_ref Main//lib, Range, loaded [concrete = constants.%Range] -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import, [concrete] { +// CHECK:STDOUT: %Core.048aa3.1: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .IntLiteral = %Core.IntLiteral // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: .Destroy = %Core.Destroy @@ -921,15 +921,15 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.IntLiteral: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [concrete = constants.%IntLiteral] // CHECK:STDOUT: %Main.import_ref.6b552a.1: Core.IntLiteral = import_ref Main//lib, loc4_17, loaded [symbolic = @IntRange.%N (constants.%N)] -// CHECK:STDOUT: %Main.import_ref.33d: = import_ref Main//lib, loc24_1, loaded [symbolic = @IntRange.%complete_type (constants.%complete_type.eec)] -// CHECK:STDOUT: %Main.import_ref.008 = import_ref Main//lib, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.7da = import_ref Main//lib, loc5_57, unloaded -// CHECK:STDOUT: %Main.import_ref.4c8 = import_ref Main//lib, loc22_20, unloaded -// CHECK:STDOUT: %Main.import_ref.acd = import_ref Main//lib, loc23_18, unloaded +// CHECK:STDOUT: %Main.import_ref.e06: = import_ref Main//lib, loc24_1, loaded [symbolic = @IntRange.%complete_type (constants.%complete_type.aa1)] +// CHECK:STDOUT: %Main.import_ref.663 = import_ref Main//lib, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.ac1 = import_ref Main//lib, loc5_57, unloaded +// CHECK:STDOUT: %Main.import_ref.d41 = import_ref Main//lib, loc22_20, unloaded +// CHECK:STDOUT: %Main.import_ref.60f = import_ref Main//lib, loc23_18, unloaded // CHECK:STDOUT: %Main.import_ref.6b552a.2: Core.IntLiteral = import_ref Main//lib, loc4_17, loaded [symbolic = @IntRange.%N (constants.%N)] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.4e597: @Core.IntLiteral.as.ImplicitAs.impl.09f.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a20) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.09f.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.cd7)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.fca = impl_witness_table (%Core.import_ref.4e597), @Core.IntLiteral.as.ImplicitAs.impl.09f [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -937,7 +937,7 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .IntRange = imports.%Main.IntRange // CHECK:STDOUT: .Range = imports.%Main.Range -// CHECK:STDOUT: .Core = imports.%Core.979 +// CHECK:STDOUT: .Core = imports.%Core.048aa3.1 // CHECK:STDOUT: .Read = %Read.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core @@ -947,7 +947,7 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_29.1: type = splice_block %.loc4_29.3 [concrete = Core.IntLiteral] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core.979 [concrete = imports.%Core.979] +// CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core.048aa3.1 [concrete = imports.%Core.048aa3.1] // CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%Core.IntLiteral [concrete = constants.%IntLiteral] // CHECK:STDOUT: %IntLiteral.call: init type = call %IntLiteral.ref() [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc4_29.2: type = value_of_initializer %IntLiteral.call [concrete = Core.IntLiteral] @@ -961,23 +961,23 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %IntRange.Make.type: type = fn_type @IntRange.Make, @IntRange(%N) [symbolic = %IntRange.Make.type (constants.%IntRange.Make.type.500)] -// CHECK:STDOUT: %IntRange.Make: @IntRange.%IntRange.Make.type (%IntRange.Make.type.500) = struct_value () [symbolic = %IntRange.Make (constants.%IntRange.Make.d7d)] -// CHECK:STDOUT: %Int: type = class_type @Int, @Int(%N) [symbolic = %Int (constants.%Int.3115b2.1)] -// CHECK:STDOUT: %require_complete: = require_complete_type %Int [symbolic = %require_complete (constants.%require_complete.a3d1cc.1)] -// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.6d0)] -// CHECK:STDOUT: %IntRange.elem: type = unbound_element_type %IntRange, %Int [symbolic = %IntRange.elem (constants.%IntRange.elem.ba5)] -// CHECK:STDOUT: %struct_type.start.end: type = struct_type {.start: @IntRange.%Int (%Int.3115b2.1), .end: @IntRange.%Int (%Int.3115b2.1)} [symbolic = %struct_type.start.end (constants.%struct_type.start.end.6fa)] -// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.start.end [symbolic = %complete_type (constants.%complete_type.eec)] +// CHECK:STDOUT: %IntRange.Make.type: type = fn_type @IntRange.Make, @IntRange(%N) [symbolic = %IntRange.Make.type (constants.%IntRange.Make.type.522)] +// CHECK:STDOUT: %IntRange.Make: @IntRange.%IntRange.Make.type (%IntRange.Make.type.522) = struct_value () [symbolic = %IntRange.Make (constants.%IntRange.Make.8ef)] +// CHECK:STDOUT: %Int: type = class_type @Int, @Int(%N) [symbolic = %Int (constants.%Int.67af24.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Int [symbolic = %require_complete (constants.%require_complete.4dfb92.1)] +// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.2c4)] +// CHECK:STDOUT: %IntRange.elem: type = unbound_element_type %IntRange, %Int [symbolic = %IntRange.elem (constants.%IntRange.elem.bed)] +// CHECK:STDOUT: %struct_type.start.end: type = struct_type {.start: @IntRange.%Int (%Int.67af24.1), .end: @IntRange.%Int (%Int.67af24.1)} [symbolic = %struct_type.start.end (constants.%struct_type.start.end.d4d)] +// CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.start.end [symbolic = %complete_type (constants.%complete_type.aa1)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.33d +// CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.e06 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.008 -// CHECK:STDOUT: .Make = imports.%Main.import_ref.7da -// CHECK:STDOUT: .start [private] = imports.%Main.import_ref.4c8 -// CHECK:STDOUT: .end [private] = imports.%Main.import_ref.acd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.663 +// CHECK:STDOUT: .Make = imports.%Main.import_ref.ac1 +// CHECK:STDOUT: .start [private] = imports.%Main.import_ref.d41 +// CHECK:STDOUT: .end [private] = imports.%Main.import_ref.60f // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -985,36 +985,36 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %y.loc4_10.1: Core.IntLiteral = symbolic_binding y, 0 [symbolic = %y.loc4_10.1 (constants.%y)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %y.loc4_10.1, constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.785 [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound)] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %y.loc4_10.1, constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound)] // CHECK:STDOUT: %bound_method.loc5_38.3: = bound_method %y.loc4_10.1, constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [symbolic = %bound_method.loc5_38.3 (constants.%bound_method)] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_38.2: init %i32 = call %bound_method.loc5_38.3(%y.loc4_10.1) [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_38.2 (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.ea5 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.ea5 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.0f3 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.0f3 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %x.var: ref %IntRange.c25 = var %x.var_patt +// CHECK:STDOUT: %x.var: ref %IntRange.bbd = var %x.var_patt // CHECK:STDOUT: %Range.ref: %Range.type = name_ref Range, imports.%Main.Range [concrete = constants.%Range] // CHECK:STDOUT: %y.ref: Core.IntLiteral = name_ref y, %y.loc4_10.2 [symbolic = %y.loc4_10.1 (constants.%y)] -// CHECK:STDOUT: %.loc5_3: ref %IntRange.c25 = splice_block %x.var {} -// CHECK:STDOUT: %impl.elem0: %.56d = impl_witness_access constants.%ImplicitAs.impl_witness.e84, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.785] +// CHECK:STDOUT: %.loc5_3: ref %IntRange.bbd = splice_block %x.var {} +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc5_38.1: = bound_method %y.ref, %impl.elem0 [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound)] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_38.2: = bound_method %y.ref, %specific_fn [symbolic = %bound_method.loc5_38.3 (constants.%bound_method)] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_38.1: init %i32 = call %bound_method.loc5_38.2(%y.ref) [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_38.2 (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: %.loc5_38.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_38.1 [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_38.2 (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: %.loc5_38.2: %i32 = converted %y.ref, %.loc5_38.1 [symbolic = %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc5_38.2 (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.call)] -// CHECK:STDOUT: %Range.call: init %IntRange.c25 to %.loc5_3 = call %Range.ref(%.loc5_38.2) +// CHECK:STDOUT: %Range.call: init %IntRange.bbd to %.loc5_3 = call %Range.ref(%.loc5_38.2) // CHECK:STDOUT: assign %x.var, %Range.call -// CHECK:STDOUT: %.loc5_28: type = splice_block %IntRange [concrete = constants.%IntRange.c25] { +// CHECK:STDOUT: %.loc5_28: type = splice_block %IntRange [concrete = constants.%IntRange.bbd] { // CHECK:STDOUT: %IntRange.ref: %IntRange.type = name_ref IntRange, imports.%Main.IntRange [concrete = constants.%IntRange.generic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] -// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(constants.%int_32) [concrete = constants.%IntRange.c25] +// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(constants.%int_32) [concrete = constants.%IntRange.bbd] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: ref %IntRange.c25 = ref_binding x, %x.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op.2dd605.4 +// CHECK:STDOUT: %x: ref %IntRange.bbd = ref_binding x, %x.var +// 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: return // CHECK:STDOUT: } @@ -1022,23 +1022,23 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @IntRange.Make(imports.%Main.import_ref.6b552a.1: Core.IntLiteral) [from "lib.carbon"] { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int: type = class_type @Int, @Int(%N) [symbolic = %Int (constants.%Int.3115b2.1)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Int [symbolic = %pattern_type.1 (constants.%pattern_type.0c3b75.1)] -// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.6d0)] -// CHECK:STDOUT: %.1: Core.Form = init_form %IntRange [symbolic = %.1 (constants.%.4e7)] -// CHECK:STDOUT: %pattern_type.2: type = pattern_type %IntRange [symbolic = %pattern_type.2 (constants.%pattern_type.255)] +// CHECK:STDOUT: %Int: type = class_type @Int, @Int(%N) [symbolic = %Int (constants.%Int.67af24.1)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Int [symbolic = %pattern_type.1 (constants.%pattern_type.142cb7.1)] +// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.2c4)] +// CHECK:STDOUT: %.1: Core.Form = init_form %IntRange [symbolic = %.1 (constants.%.5c3)] +// CHECK:STDOUT: %pattern_type.2: type = pattern_type %IntRange [symbolic = %pattern_type.2 (constants.%pattern_type.1ea)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.1: = require_complete_type %Int [symbolic = %require_complete.1 (constants.%require_complete.a3d1cc.1)] -// CHECK:STDOUT: %require_complete.2: = require_complete_type %IntRange [symbolic = %require_complete.2 (constants.%require_complete.f50)] -// CHECK:STDOUT: %struct_type.start.end: type = struct_type {.start: @IntRange.Make.%Int (%Int.3115b2.1), .end: @IntRange.Make.%Int (%Int.3115b2.1)} [symbolic = %struct_type.start.end (constants.%struct_type.start.end.6fa)] -// CHECK:STDOUT: %.2: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%N) [symbolic = %.2 (constants.%.def)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %Int, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.aa4)] +// CHECK:STDOUT: %require_complete.1: = require_complete_type %Int [symbolic = %require_complete.1 (constants.%require_complete.4dfb92.1)] +// CHECK:STDOUT: %require_complete.2: = require_complete_type %IntRange [symbolic = %require_complete.2 (constants.%require_complete.5d9)] +// CHECK:STDOUT: %struct_type.start.end: type = struct_type {.start: @IntRange.Make.%Int (%Int.67af24.1), .end: @IntRange.Make.%Int (%Int.67af24.1)} [symbolic = %struct_type.start.end (constants.%struct_type.start.end.d4d)] +// CHECK:STDOUT: %.2: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%N) [symbolic = %.2 (constants.%.a53)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %Int, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.df6)] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Int, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.7cb)] -// CHECK:STDOUT: %.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.3 (constants.%.84c)] -// CHECK:STDOUT: %impl.elem0: @IntRange.Make.%.3 (%.84c) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0 (constants.%impl.elem0.c43)] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn (constants.%specific_impl_fn.ef9)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.b83)] +// CHECK:STDOUT: %.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.3 (constants.%.c60)] +// CHECK:STDOUT: %impl.elem0: @IntRange.Make.%.3 (%.c60) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0 (constants.%impl.elem0.284)] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn (constants.%specific_impl_fn.f9f)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -1052,12 +1052,12 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc5_3.3(%self.param: ref %struct_type.start.end.1be) { +// CHECK:STDOUT: fn @Destroy.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.c25) { +// CHECK:STDOUT: fn @Destroy.Op.loc5_3.4(%self.param: ref %IntRange.bbd) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1070,36 +1070,36 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %N => constants.%N // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %IntRange.Make.type => constants.%IntRange.Make.type.500 -// CHECK:STDOUT: %IntRange.Make => constants.%IntRange.Make.d7d -// CHECK:STDOUT: %Int => constants.%Int.3115b2.1 -// CHECK:STDOUT: %require_complete => constants.%require_complete.a3d1cc.1 -// CHECK:STDOUT: %IntRange => constants.%IntRange.6d0 -// CHECK:STDOUT: %IntRange.elem => constants.%IntRange.elem.ba5 -// CHECK:STDOUT: %struct_type.start.end => constants.%struct_type.start.end.6fa -// CHECK:STDOUT: %complete_type => constants.%complete_type.eec +// CHECK:STDOUT: %IntRange.Make.type => constants.%IntRange.Make.type.522 +// CHECK:STDOUT: %IntRange.Make => constants.%IntRange.Make.8ef +// CHECK:STDOUT: %Int => constants.%Int.67af24.1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.4dfb92.1 +// CHECK:STDOUT: %IntRange => constants.%IntRange.2c4 +// CHECK:STDOUT: %IntRange.elem => constants.%IntRange.elem.bed +// CHECK:STDOUT: %struct_type.start.end => constants.%struct_type.start.end.d4d +// CHECK:STDOUT: %complete_type => constants.%complete_type.aa1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IntRange.Make(constants.%N) { // CHECK:STDOUT: %N => constants.%N -// CHECK:STDOUT: %Int => constants.%Int.3115b2.1 -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.0c3b75.1 -// CHECK:STDOUT: %IntRange => constants.%IntRange.6d0 -// CHECK:STDOUT: %.1 => constants.%.4e7 -// CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.255 +// CHECK:STDOUT: %Int => constants.%Int.67af24.1 +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.142cb7.1 +// CHECK:STDOUT: %IntRange => constants.%IntRange.2c4 +// CHECK:STDOUT: %.1 => constants.%.5c3 +// CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.1ea // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IntRange(constants.%int_32) { // CHECK:STDOUT: %N => constants.%int_32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %IntRange.Make.type => constants.%IntRange.Make.type.6de -// CHECK:STDOUT: %IntRange.Make => constants.%IntRange.Make.2b6 +// CHECK:STDOUT: %IntRange.Make.type => constants.%IntRange.Make.type.d27 +// CHECK:STDOUT: %IntRange.Make => constants.%IntRange.Make.9ef // CHECK:STDOUT: %Int => constants.%i32 // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %IntRange => constants.%IntRange.c25 -// CHECK:STDOUT: %IntRange.elem => constants.%IntRange.elem.9da -// CHECK:STDOUT: %struct_type.start.end => constants.%struct_type.start.end.1be -// CHECK:STDOUT: %complete_type => constants.%complete_type.e14 +// CHECK:STDOUT: %IntRange => constants.%IntRange.bbd +// CHECK:STDOUT: %IntRange.elem => constants.%IntRange.elem.6b1 +// CHECK:STDOUT: %struct_type.start.end => constants.%struct_type.start.end.e93 +// CHECK:STDOUT: %complete_type => constants.%complete_type.ec7 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/for/basic.carbon b/toolchain/check/testdata/for/basic.carbon index 884732bc120f..5c560d25eb85 100644 --- a/toolchain/check/testdata/for/basic.carbon +++ b/toolchain/check/testdata/for/basic.carbon @@ -60,32 +60,32 @@ fn Run() { // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %T.f49: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Optional.Get.type.f9d: type = fn_type @Optional.Get, @Optional(%T.f49) [symbolic] -// CHECK:STDOUT: %Optional.Get.09b: %Optional.Get.type.f9d = struct_value () [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.2b3: type = fn_type @Optional.HasValue, @Optional(%T.f49) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.fed: %Optional.HasValue.type.2b3 = struct_value () [symbolic] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Optional.Get.type.e1b: type = fn_type @Optional.Get, @Optional(%T.f84) [symbolic] +// CHECK:STDOUT: %Optional.Get.20c: %Optional.Get.type.e1b = struct_value () [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.224: type = fn_type @Optional.HasValue, @Optional(%T.f84) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.c4f: %Optional.HasValue.type.224 = struct_value () [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %Copy.impl_witness.9a4: = impl_witness imports.%Copy.impl_witness_table.bfa [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %empty_tuple.type, (%Copy.impl_witness.9a4) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.77e: = impl_witness imports.%Copy.impl_witness_table.938 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %empty_tuple.type, (%Copy.impl_witness.77e) [concrete] // CHECK:STDOUT: %Iterate.impl_witness: = impl_witness @TrivialRange.as.Iterate.impl.%Iterate.impl_witness_table [concrete] -// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.type.d8a5e3.1: type = fn_type @TrivialRange.as.Iterate.impl.NewCursor.loc6_39.1 [concrete] -// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.bf18e5.1: %TrivialRange.as.Iterate.impl.NewCursor.type.d8a5e3.1 = struct_value () [concrete] +// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.type.de32c1.1: type = fn_type @TrivialRange.as.Iterate.impl.NewCursor.loc6_39.1 [concrete] +// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.93de00.1: %TrivialRange.as.Iterate.impl.NewCursor.type.de32c1.1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Optional.23a: type = class_type @Optional, @Optional(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.21a: type = class_type @Optional, @Optional(%Copy.facet) [concrete] // CHECK:STDOUT: %TrivialRange.as.Iterate.impl.Next.type: type = fn_type @TrivialRange.as.Iterate.impl.Next [concrete] // CHECK:STDOUT: %TrivialRange.as.Iterate.impl.Next: %TrivialRange.as.Iterate.impl.Next.type = struct_value () [concrete] // CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %TrivialRange, (%Iterate.impl_witness) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.adc: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.045: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.b66: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.4f6: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.type.d8a5e3.2: type = fn_type @TrivialRange.as.Iterate.impl.NewCursor.loc6_39.2 [concrete] -// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.bf18e5.2: %TrivialRange.as.Iterate.impl.NewCursor.type.d8a5e3.2 = struct_value () [concrete] +// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.type.de32c1.2: type = fn_type @TrivialRange.as.Iterate.impl.NewCursor.loc6_39.2 [concrete] +// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.93de00.2: %TrivialRange.as.Iterate.impl.NewCursor.type.de32c1.2 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %Optional.HasValue.type.952: type = fn_type @Optional.HasValue, @Optional(%Copy.facet) [concrete] -// CHECK:STDOUT: %Optional.HasValue.c0d: %Optional.HasValue.type.952 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.28b: type = fn_type @Optional.Get, @Optional(%Copy.facet) [concrete] -// CHECK:STDOUT: %Optional.Get.7e1: %Optional.Get.type.28b = struct_value () [concrete] +// CHECK:STDOUT: %Optional.HasValue.type.650: type = fn_type @Optional.HasValue, @Optional(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.HasValue.d37: %Optional.HasValue.type.650 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.5f1: type = fn_type @Optional.Get, @Optional(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.Get.2aa: %Optional.Get.type.5f1 = struct_value () [concrete] // CHECK:STDOUT: %struct_type.has_value.value.da2: type = struct_type {.has_value: bool, .value: %empty_tuple.type} [concrete] // CHECK:STDOUT: %Body.type: type = fn_type @Body [concrete] // CHECK:STDOUT: %Body: %Body.type = struct_value () [concrete] @@ -93,30 +93,30 @@ fn Run() { // CHECK:STDOUT: %AfterLoop: %AfterLoop.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %TrivialRange.val: %TrivialRange = struct_value () [concrete] -// CHECK:STDOUT: %.8ab: ref %TrivialRange = temporary invalid, %TrivialRange.val [concrete] -// CHECK:STDOUT: %.c0f: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.adc, %Iterate.facet [concrete] -// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.bound.da2: = bound_method %.8ab, %TrivialRange.as.Iterate.impl.NewCursor.bf18e5.2 [concrete] -// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.bound.862: = bound_method %TrivialRange.val, %TrivialRange.as.Iterate.impl.NewCursor.bf18e5.1 [concrete] -// CHECK:STDOUT: %.c28: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.045, %Iterate.facet [concrete] -// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.Next.bound: = bound_method %.8ab, %TrivialRange.as.Iterate.impl.Next [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.c0d, @Optional.HasValue(%Copy.facet) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.7e1, @Optional.Get(%Copy.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.loc18_35.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc18_35.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.6: type = fn_type @Destroy.Op.loc18_20.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.8ab, %Destroy.Op.2dd605.6 [concrete] +// CHECK:STDOUT: %.50e: ref %TrivialRange = temporary invalid, %TrivialRange.val [concrete] +// CHECK:STDOUT: %.46f: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.b66, %Iterate.facet [concrete] +// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.bound.464: = bound_method %.50e, %TrivialRange.as.Iterate.impl.NewCursor.93de00.2 [concrete] +// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.bound.410: = bound_method %TrivialRange.val, %TrivialRange.as.Iterate.impl.NewCursor.93de00.1 [concrete] +// CHECK:STDOUT: %.eb2: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.4f6, %Iterate.facet [concrete] +// 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.d37, @Optional.HasValue(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.2aa, @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: %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.cc8: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.2b3) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.fed)] -// CHECK:STDOUT: %Core.import_ref.dac: @Optional.%Optional.Get.type (%Optional.Get.type.f9d) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.09b)] -// CHECK:STDOUT: %Core.import_ref.f63: %empty_tuple.type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%empty_tuple.type.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.bfa = impl_witness_table (%Core.import_ref.f63), @empty_tuple.type.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.1db: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.224) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.c4f)] +// CHECK:STDOUT: %Core.import_ref.73b: @Optional.%Optional.Get.type (%Optional.Get.type.e1b) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.20c)] +// CHECK:STDOUT: %Core.import_ref.9c3: %empty_tuple.type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%empty_tuple.type.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.938 = impl_witness_table (%Core.import_ref.9c3), @empty_tuple.type.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { @@ -129,12 +129,12 @@ fn Run() { // CHECK:STDOUT: %.loc18_18.2: ref %TrivialRange = temporary_storage // CHECK:STDOUT: %.loc18_18.3: init %TrivialRange to %.loc18_18.2 = class_init () [concrete = constants.%TrivialRange.val] // CHECK:STDOUT: %.loc18_20.1: init %TrivialRange = converted %.loc18_18.1, %.loc18_18.3 [concrete = constants.%TrivialRange.val] -// CHECK:STDOUT: %.loc18_20.2: ref %TrivialRange = temporary %.loc18_18.2, %.loc18_20.1 [concrete = constants.%.8ab] -// CHECK:STDOUT: %impl.elem2: %.c0f = impl_witness_access constants.%Iterate.impl_witness, element2 [concrete = constants.%TrivialRange.as.Iterate.impl.NewCursor.bf18e5.2] -// CHECK:STDOUT: %bound_method.loc18_35.1: = bound_method %.loc18_20.2, %impl.elem2 [concrete = constants.%TrivialRange.as.Iterate.impl.NewCursor.bound.da2] +// CHECK:STDOUT: %.loc18_20.2: ref %TrivialRange = temporary %.loc18_18.2, %.loc18_20.1 [concrete = constants.%.50e] +// CHECK:STDOUT: %impl.elem2: %.46f = impl_witness_access constants.%Iterate.impl_witness, element2 [concrete = constants.%TrivialRange.as.Iterate.impl.NewCursor.93de00.2] +// CHECK:STDOUT: %bound_method.loc18_35.1: = bound_method %.loc18_20.2, %impl.elem2 [concrete = constants.%TrivialRange.as.Iterate.impl.NewCursor.bound.464] // CHECK:STDOUT: %.loc18_20.3: %TrivialRange = acquire_value %.loc18_20.2 [concrete = constants.%TrivialRange.val] -// CHECK:STDOUT: %NewCursor.ref: %TrivialRange.as.Iterate.impl.NewCursor.type.d8a5e3.1 = name_ref NewCursor, @TrivialRange.as.Iterate.impl.%TrivialRange.as.Iterate.impl.NewCursor.decl.loc6_39.1 [concrete = constants.%TrivialRange.as.Iterate.impl.NewCursor.bf18e5.1] -// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.bound: = bound_method %.loc18_20.3, %NewCursor.ref [concrete = constants.%TrivialRange.as.Iterate.impl.NewCursor.bound.862] +// CHECK:STDOUT: %NewCursor.ref: %TrivialRange.as.Iterate.impl.NewCursor.type.de32c1.1 = name_ref NewCursor, @TrivialRange.as.Iterate.impl.%TrivialRange.as.Iterate.impl.NewCursor.decl.loc6_39.1 [concrete = constants.%TrivialRange.as.Iterate.impl.NewCursor.93de00.1] +// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.bound: = bound_method %.loc18_20.3, %NewCursor.ref [concrete = constants.%TrivialRange.as.Iterate.impl.NewCursor.bound.410] // CHECK:STDOUT: %TrivialRange.as.Iterate.impl.NewCursor.call: init %empty_tuple.type = call %TrivialRange.as.Iterate.impl.NewCursor.bound(%.loc18_20.3) // CHECK:STDOUT: %var: ref %empty_tuple.type = var invalid // CHECK:STDOUT: assign %var, %TrivialRange.as.Iterate.impl.NewCursor.call @@ -142,30 +142,30 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: !for.next: // CHECK:STDOUT: %addr: %ptr.843 = addr_of %var -// CHECK:STDOUT: %impl.elem3: %.c28 = impl_witness_access constants.%Iterate.impl_witness, element3 [concrete = constants.%TrivialRange.as.Iterate.impl.Next] +// CHECK:STDOUT: %impl.elem3: %.eb2 = impl_witness_access constants.%Iterate.impl_witness, element3 [concrete = constants.%TrivialRange.as.Iterate.impl.Next] // CHECK:STDOUT: %bound_method.loc18_35.2: = bound_method %.loc18_20.2, %impl.elem3 [concrete = constants.%TrivialRange.as.Iterate.impl.Next.bound] -// CHECK:STDOUT: %.loc18_35.1: ref %Optional.23a = temporary_storage +// CHECK:STDOUT: %.loc18_35.1: ref %Optional.21a = temporary_storage // CHECK:STDOUT: %.loc18_20.4: %TrivialRange = acquire_value %.loc18_20.2 [concrete = constants.%TrivialRange.val] -// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.Next.call: init %Optional.23a to %.loc18_35.1 = call %bound_method.loc18_35.2(%.loc18_20.4, %addr) -// CHECK:STDOUT: %.loc18_35.2: ref %Optional.23a = temporary %.loc18_35.1, %TrivialRange.as.Iterate.impl.Next.call -// CHECK:STDOUT: %.loc18_35.3: %Optional.HasValue.type.952 = specific_constant imports.%Core.import_ref.cc8, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.HasValue.c0d] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.952 = name_ref HasValue, %.loc18_35.3 [concrete = constants.%Optional.HasValue.c0d] +// CHECK:STDOUT: %TrivialRange.as.Iterate.impl.Next.call: init %Optional.21a to %.loc18_35.1 = call %bound_method.loc18_35.2(%.loc18_20.4, %addr) +// CHECK:STDOUT: %.loc18_35.2: ref %Optional.21a = temporary %.loc18_35.1, %TrivialRange.as.Iterate.impl.Next.call +// CHECK:STDOUT: %.loc18_35.3: %Optional.HasValue.type.650 = specific_constant imports.%Core.import_ref.1db, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.HasValue.d37] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.650 = name_ref HasValue, %.loc18_35.3 [concrete = constants.%Optional.HasValue.d37] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc18_35.2, %HasValue.ref // CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc18_35.3: = bound_method %.loc18_35.2, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc18_35.4: %Optional.23a = acquire_value %.loc18_35.2 +// CHECK:STDOUT: %.loc18_35.4: %Optional.21a = acquire_value %.loc18_35.2 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc18_35.3(%.loc18_35.4) // CHECK:STDOUT: %.loc18_35.5: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc18_35.6: bool = converted %Optional.HasValue.call, %.loc18_35.5 // CHECK:STDOUT: if %.loc18_35.6 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc18_35.7: %Optional.Get.type.28b = specific_constant imports.%Core.import_ref.dac, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.Get.7e1] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.28b = name_ref Get, %.loc18_35.7 [concrete = constants.%Optional.Get.7e1] +// CHECK:STDOUT: %.loc18_35.7: %Optional.Get.type.5f1 = specific_constant imports.%Core.import_ref.73b, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.Get.2aa] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.5f1 = name_ref Get, %.loc18_35.7 [concrete = constants.%Optional.Get.2aa] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc18_35.2, %Get.ref // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc18_35.4: = bound_method %.loc18_35.2, %Optional.Get.specific_fn -// CHECK:STDOUT: %.loc18_35.8: %Optional.23a = acquire_value %.loc18_35.2 +// CHECK:STDOUT: %.loc18_35.8: %Optional.21a = acquire_value %.loc18_35.2 // CHECK:STDOUT: %Optional.Get.call: init %empty_tuple.type = call %bound_method.loc18_35.4(%.loc18_35.8) // CHECK:STDOUT: %.loc18_12.1: type = splice_block %.loc18_12.3 [concrete = constants.%empty_tuple.type] { // CHECK:STDOUT: %.loc18_12.2: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -183,13 +183,13 @@ fn Run() { // CHECK:STDOUT: !for.done: // 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: %Destroy.Op.bound.loc18_35.1: = bound_method %.loc18_35.10, constants.%Destroy.Op.2dd605.1 +// 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.2dd605.4 +// 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.Op.bound.loc18_35.3: = bound_method %var, constants.%Destroy.Op.2dd605.1 +// CHECK:STDOUT: %Destroy.Op.bound.loc18_35.3: = bound_method %var, constants.%Destroy.Op.1a2547.1 // CHECK:STDOUT: %Destroy.Op.call.loc18_35.3: init %empty_tuple.type = call %Destroy.Op.bound.loc18_35.3(%var) -// CHECK:STDOUT: %Destroy.Op.call.loc18_20: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.8ab) +// CHECK:STDOUT: %Destroy.Op.call.loc18_20: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.50e) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -202,7 +202,7 @@ fn Run() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_35.4(%self.param: ref %Optional.23a) { +// CHECK:STDOUT: fn @Destroy.Op.loc18_35.4(%self.param: ref %Optional.21a) { // 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 4e1b8b7b2b9a..b4953c717722 100644 --- a/toolchain/check/testdata/for/pattern.carbon +++ b/toolchain/check/testdata/for/pattern.carbon @@ -122,7 +122,7 @@ fn Run() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %Body.type: type = fn_type @Body [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Body: %Body.type = struct_value () [concrete] @@ -130,52 +130,52 @@ fn Run() { // CHECK:STDOUT: %EmptyRange.type: type = generic_class_type @EmptyRange [concrete] // CHECK:STDOUT: %EmptyRange.generic: %EmptyRange.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %T.baf: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %EmptyRange.Make.type.648: type = fn_type @EmptyRange.Make, @EmptyRange(%T.baf) [symbolic] -// CHECK:STDOUT: %EmptyRange.Make.317: %EmptyRange.Make.type.648 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.b02: = impl_witness imports.%Copy.impl_witness_table.f49 [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %C, (%Copy.impl_witness.b02) [concrete] -// CHECK:STDOUT: %EmptyRange.63c: type = class_type @EmptyRange, @EmptyRange(%Copy.facet) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.type.c46: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.93a: %EmptyRange.Make.type.c46 = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.93a, @EmptyRange.Make(%Copy.facet) [concrete] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %EmptyRange.Make.type.140: type = fn_type @EmptyRange.Make, @EmptyRange(%T.f84) [symbolic] +// CHECK:STDOUT: %EmptyRange.Make.0de: %EmptyRange.Make.type.140 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.2ff: = impl_witness imports.%Copy.impl_witness_table.506 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %C, (%Copy.impl_witness.2ff) [concrete] +// CHECK:STDOUT: %EmptyRange.de0: type = class_type @EmptyRange, @EmptyRange(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.type.3a3: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.8c5: %EmptyRange.Make.type.3a3 = struct_value () [concrete] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.8c5, @EmptyRange.Make(%Copy.facet) [concrete] // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] -// CHECK:STDOUT: %Optional.Get.type.eeb: type = fn_type @Optional.Get, @Optional(%T.baf) [symbolic] -// CHECK:STDOUT: %Optional.Get.82b: %Optional.Get.type.eeb = struct_value () [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.f4b: type = fn_type @Optional.HasValue, @Optional(%T.baf) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.40a: %Optional.HasValue.type.f4b = struct_value () [symbolic] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.7ff: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%T.baf) [symbolic] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.4c5: %EmptyRange.as.Iterate.impl.Next.type.7ff = struct_value () [symbolic] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.9ee: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%T.baf) [symbolic] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.966: %EmptyRange.as.Iterate.impl.NewCursor.type.9ee = struct_value () [symbolic] -// CHECK:STDOUT: %Iterate.impl_witness.0f2: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.97d: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.bb5: %EmptyRange.as.Iterate.impl.NewCursor.type.97d = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.927: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.28e: %EmptyRange.as.Iterate.impl.Next.type.927 = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.63c, (%Iterate.impl_witness.0f2) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.5c2: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.313: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [concrete] -// CHECK:STDOUT: %.df4: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.5c2, %Iterate.facet [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.bb5, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet) [concrete] -// CHECK:STDOUT: %.eb4: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.313, %Iterate.facet [concrete] -// CHECK:STDOUT: %Optional.c31: type = class_type @Optional, @Optional(%Copy.facet) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.28e, @EmptyRange.as.Iterate.impl.Next(%Copy.facet) [concrete] -// CHECK:STDOUT: %Optional.HasValue.type.9f9: type = fn_type @Optional.HasValue, @Optional(%Copy.facet) [concrete] -// CHECK:STDOUT: %Optional.HasValue.9ac: %Optional.HasValue.type.9f9 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.b89: type = fn_type @Optional.Get, @Optional(%Copy.facet) [concrete] -// CHECK:STDOUT: %Optional.Get.b6e: %Optional.Get.type.b89 = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.has_value.value.4de: type = struct_type {.has_value: bool, .value: %C} [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.9ac, @Optional.HasValue(%Copy.facet) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.b6e, @Optional.Get(%Copy.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.loc10_36.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc10_36.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.5: type = fn_type @Destroy.Op.loc10_36.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.5: %Destroy.Op.type.790b3b.5 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.6: type = fn_type @Destroy.Op.loc10_35 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.e1b: type = fn_type @Optional.Get, @Optional(%T.f84) [symbolic] +// CHECK:STDOUT: %Optional.Get.20c: %Optional.Get.type.e1b = struct_value () [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.224: type = fn_type @Optional.HasValue, @Optional(%T.f84) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.c4f: %Optional.HasValue.type.224 = struct_value () [symbolic] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.cfe: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%T.f84) [symbolic] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.0c8: %EmptyRange.as.Iterate.impl.Next.type.cfe = struct_value () [symbolic] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.647: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%T.f84) [symbolic] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.9e2: %EmptyRange.as.Iterate.impl.NewCursor.type.647 = struct_value () [symbolic] +// CHECK:STDOUT: %Iterate.impl_witness.99c: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.529: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.714: %EmptyRange.as.Iterate.impl.NewCursor.type.529 = struct_value () [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.3f6: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.805: %EmptyRange.as.Iterate.impl.Next.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.de0, (%Iterate.impl_witness.99c) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.1b1: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.b69: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [concrete] +// CHECK:STDOUT: %.ca7: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.1b1, %Iterate.facet [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.714, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet) [concrete] +// CHECK:STDOUT: %.9a7: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.b69, %Iterate.facet [concrete] +// CHECK:STDOUT: %Optional.f82: type = class_type @Optional, @Optional(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.805, @EmptyRange.as.Iterate.impl.Next(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.HasValue.type.c5b: type = fn_type @Optional.HasValue, @Optional(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.HasValue.a88: %Optional.HasValue.type.c5b = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.0a8: type = fn_type @Optional.Get, @Optional(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.Get.d5d: %Optional.Get.type.0a8 = struct_value () [concrete] +// 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.a88, @Optional.HasValue(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.d5d, @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: %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: } @@ -183,39 +183,39 @@ fn Run() { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.EmptyRange: %EmptyRange.type = import_ref Main//empty_range, EmptyRange, loaded [concrete = constants.%EmptyRange.generic] // CHECK:STDOUT: %Main.C: type = import_ref Main//empty_range, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.a8b: @EmptyRange.%EmptyRange.Make.type (%EmptyRange.Make.type.648) = import_ref Main//empty_range, loc5_21, loaded [symbolic = @EmptyRange.%EmptyRange.Make (constants.%EmptyRange.Make.317)] -// CHECK:STDOUT: %Main.import_ref.4f1: %C.as.Copy.impl.Op.type = import_ref Main//empty_range, loc19_40, loaded [concrete = constants.%C.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.f49 = impl_witness_table (%Main.import_ref.4f1), @C.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.f0a: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.f4b) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.40a)] -// CHECK:STDOUT: %Core.import_ref.0ac: @Optional.%Optional.Get.type (%Optional.Get.type.eeb) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.82b)] -// CHECK:STDOUT: %Main.import_ref.e5a = import_ref Main//empty_range, loc7_68, unloaded +// CHECK:STDOUT: %Main.import_ref.a9e: @EmptyRange.%EmptyRange.Make.type (%EmptyRange.Make.type.140) = import_ref Main//empty_range, loc5_21, loaded [symbolic = @EmptyRange.%EmptyRange.Make (constants.%EmptyRange.Make.0de)] +// CHECK:STDOUT: %Main.import_ref.341: %C.as.Copy.impl.Op.type = import_ref Main//empty_range, loc19_40, loaded [concrete = constants.%C.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.506 = impl_witness_table (%Main.import_ref.341), @C.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.1db: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.224) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.c4f)] +// CHECK:STDOUT: %Core.import_ref.73b: @Optional.%Optional.Get.type (%Optional.Get.type.e1b) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.20c)] +// CHECK:STDOUT: %Main.import_ref.71a = import_ref Main//empty_range, loc7_68, unloaded // CHECK:STDOUT: %Main.import_ref.999 = import_ref Main//empty_range, loc7_68, unloaded -// CHECK:STDOUT: %Main.import_ref.e66: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor.type (%EmptyRange.as.Iterate.impl.NewCursor.type.9ee) = import_ref Main//empty_range, loc8_45, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor (constants.%EmptyRange.as.Iterate.impl.NewCursor.966)] -// CHECK:STDOUT: %Main.import_ref.1f9: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next.type (%EmptyRange.as.Iterate.impl.Next.type.7ff) = import_ref Main//empty_range, loc11_72, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next (constants.%EmptyRange.as.Iterate.impl.Next.4c5)] -// CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%Main.import_ref.e5a, %Main.import_ref.999, %Main.import_ref.e66, %Main.import_ref.1f9), @EmptyRange.as.Iterate.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.19c: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor.type (%EmptyRange.as.Iterate.impl.NewCursor.type.647) = import_ref Main//empty_range, loc8_45, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor (constants.%EmptyRange.as.Iterate.impl.NewCursor.9e2)] +// CHECK:STDOUT: %Main.import_ref.ee4: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next.type (%EmptyRange.as.Iterate.impl.Next.type.cfe) = import_ref Main//empty_range, loc11_72, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next (constants.%EmptyRange.as.Iterate.impl.Next.0c8)] +// CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%Main.import_ref.71a, %Main.import_ref.999, %Main.import_ref.19c, %Main.import_ref.ee4), @EmptyRange.as.Iterate.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %EmptyRange.ref: %EmptyRange.type = name_ref EmptyRange, imports.%Main.EmptyRange [concrete = constants.%EmptyRange.generic] // CHECK:STDOUT: %C.ref.loc10_27: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %C.ref.loc10_27, (constants.%Copy.impl_witness.b02) [concrete = constants.%Copy.facet] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %C.ref.loc10_27, (constants.%Copy.impl_witness.2ff) [concrete = constants.%Copy.facet] // CHECK:STDOUT: %.loc10_28: %Copy.type = converted %C.ref.loc10_27, %Copy.facet [concrete = constants.%Copy.facet] -// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet) [concrete = constants.%EmptyRange.63c] -// CHECK:STDOUT: %.loc10_29: %EmptyRange.Make.type.c46 = specific_constant imports.%Main.import_ref.a8b, @EmptyRange(constants.%Copy.facet) [concrete = constants.%EmptyRange.Make.93a] -// CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.c46 = name_ref Make, %.loc10_29 [concrete = constants.%EmptyRange.Make.93a] +// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet) [concrete = constants.%EmptyRange.de0] +// CHECK:STDOUT: %.loc10_29: %EmptyRange.Make.type.3a3 = specific_constant imports.%Main.import_ref.a9e, @EmptyRange(constants.%Copy.facet) [concrete = constants.%EmptyRange.Make.8c5] +// CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.3a3 = name_ref Make, %.loc10_29 [concrete = constants.%EmptyRange.Make.8c5] // CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet) [concrete = constants.%EmptyRange.Make.specific_fn] -// CHECK:STDOUT: %.loc10_35.1: ref %EmptyRange.63c = temporary_storage -// CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.63c to %.loc10_35.1 = call %EmptyRange.Make.specific_fn() -// CHECK:STDOUT: %.loc10_35.2: ref %EmptyRange.63c = temporary %.loc10_35.1, %EmptyRange.Make.call -// CHECK:STDOUT: %impl.elem2: %.df4 = impl_witness_access constants.%Iterate.impl_witness.0f2, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.bb5] +// CHECK:STDOUT: %.loc10_35.1: ref %EmptyRange.de0 = temporary_storage +// CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.de0 to %.loc10_35.1 = call %EmptyRange.Make.specific_fn() +// CHECK:STDOUT: %.loc10_35.2: ref %EmptyRange.de0 = temporary %.loc10_35.1, %EmptyRange.Make.call +// CHECK:STDOUT: %impl.elem2: %.ca7 = impl_witness_access constants.%Iterate.impl_witness.99c, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.714] // CHECK:STDOUT: %bound_method.loc10_36.1: = bound_method %.loc10_35.2, %impl.elem2 // CHECK:STDOUT: %specific_fn.loc10_36.1: = specific_function %impl.elem2, @EmptyRange.as.Iterate.impl.NewCursor(constants.%Copy.facet) [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.specific_fn] // CHECK:STDOUT: %bound_method.loc10_36.2: = bound_method %.loc10_35.2, %specific_fn.loc10_36.1 -// CHECK:STDOUT: %.loc10_35.3: %EmptyRange.63c = acquire_value %.loc10_35.2 +// CHECK:STDOUT: %.loc10_35.3: %EmptyRange.de0 = acquire_value %.loc10_35.2 // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.call: init %empty_struct_type = call %bound_method.loc10_36.2(%.loc10_35.3) // CHECK:STDOUT: %var: ref %empty_struct_type = var invalid // CHECK:STDOUT: assign %var, %EmptyRange.as.Iterate.impl.NewCursor.call @@ -223,33 +223,33 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: !for.next: // CHECK:STDOUT: %addr: %ptr.c28 = addr_of %var -// CHECK:STDOUT: %impl.elem3: %.eb4 = impl_witness_access constants.%Iterate.impl_witness.0f2, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.28e] +// CHECK:STDOUT: %impl.elem3: %.9a7 = impl_witness_access constants.%Iterate.impl_witness.99c, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.805] // CHECK:STDOUT: %bound_method.loc10_36.3: = bound_method %.loc10_35.2, %impl.elem3 // CHECK:STDOUT: %specific_fn.loc10_36.2: = specific_function %impl.elem3, @EmptyRange.as.Iterate.impl.Next(constants.%Copy.facet) [concrete = constants.%EmptyRange.as.Iterate.impl.Next.specific_fn] // CHECK:STDOUT: %bound_method.loc10_36.4: = bound_method %.loc10_35.2, %specific_fn.loc10_36.2 -// CHECK:STDOUT: %.loc10_36.1: ref %Optional.c31 = temporary_storage -// CHECK:STDOUT: %.loc10_35.4: %EmptyRange.63c = acquire_value %.loc10_35.2 -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.c31 to %.loc10_36.1 = call %bound_method.loc10_36.4(%.loc10_35.4, %addr) -// CHECK:STDOUT: %.loc10_36.2: ref %Optional.c31 = temporary %.loc10_36.1, %EmptyRange.as.Iterate.impl.Next.call -// CHECK:STDOUT: %.loc10_36.3: %Optional.HasValue.type.9f9 = specific_constant imports.%Core.import_ref.f0a, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.HasValue.9ac] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.9f9 = name_ref HasValue, %.loc10_36.3 [concrete = constants.%Optional.HasValue.9ac] +// CHECK:STDOUT: %.loc10_36.1: ref %Optional.f82 = temporary_storage +// CHECK:STDOUT: %.loc10_35.4: %EmptyRange.de0 = acquire_value %.loc10_35.2 +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.f82 to %.loc10_36.1 = call %bound_method.loc10_36.4(%.loc10_35.4, %addr) +// CHECK:STDOUT: %.loc10_36.2: ref %Optional.f82 = temporary %.loc10_36.1, %EmptyRange.as.Iterate.impl.Next.call +// CHECK:STDOUT: %.loc10_36.3: %Optional.HasValue.type.c5b = specific_constant imports.%Core.import_ref.1db, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.HasValue.a88] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.c5b = name_ref HasValue, %.loc10_36.3 [concrete = constants.%Optional.HasValue.a88] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc10_36.2, %HasValue.ref // CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc10_36.5: = bound_method %.loc10_36.2, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc10_36.4: %Optional.c31 = acquire_value %.loc10_36.2 +// CHECK:STDOUT: %.loc10_36.4: %Optional.f82 = acquire_value %.loc10_36.2 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc10_36.5(%.loc10_36.4) // CHECK:STDOUT: %.loc10_36.5: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc10_36.6: bool = converted %Optional.HasValue.call, %.loc10_36.5 // CHECK:STDOUT: if %.loc10_36.6 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc10_36.7: %Optional.Get.type.b89 = specific_constant imports.%Core.import_ref.0ac, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.Get.b6e] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.b89 = name_ref Get, %.loc10_36.7 [concrete = constants.%Optional.Get.b6e] +// CHECK:STDOUT: %.loc10_36.7: %Optional.Get.type.0a8 = specific_constant imports.%Core.import_ref.73b, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.Get.d5d] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.0a8 = name_ref Get, %.loc10_36.7 [concrete = constants.%Optional.Get.d5d] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc10_36.2, %Get.ref // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc10_36.6: = bound_method %.loc10_36.2, %Optional.Get.specific_fn // CHECK:STDOUT: %.loc10_36.8: ref %C = temporary_storage -// CHECK:STDOUT: %.loc10_36.9: %Optional.c31 = acquire_value %.loc10_36.2 +// CHECK:STDOUT: %.loc10_36.9: %Optional.f82 = acquire_value %.loc10_36.2 // CHECK:STDOUT: %Optional.Get.call: init %C to %.loc10_36.8 = call %bound_method.loc10_36.6(%.loc10_36.9) // CHECK:STDOUT: %C.ref.loc10_11: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %.loc10_36.10: ref %C = temporary %.loc10_36.8, %Optional.Get.call @@ -261,13 +261,13 @@ fn Run() { // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc10_36.1: = bound_method %.loc10_36.10, constants.%Destroy.Op.2dd605.2 +// 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.2dd605.5 +// 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.Op.bound.loc10_36.3: = bound_method %var, constants.%Destroy.Op.2dd605.1 +// CHECK:STDOUT: %Destroy.Op.bound.loc10_36.3: = bound_method %var, constants.%Destroy.Op.1a2547.1 // CHECK:STDOUT: %Destroy.Op.call.loc10_36.3: init %empty_tuple.type = call %Destroy.Op.bound.loc10_36.3(%var) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_35: = bound_method %.loc10_35.2, constants.%Destroy.Op.2dd605.6 +// 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: // CHECK:STDOUT: } @@ -281,17 +281,17 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.4de) { +// CHECK:STDOUT: fn @Destroy.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.c31) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_36.5(%self.param: ref %Optional.f82) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_35(%self.param: ref %EmptyRange.63c) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_35(%self.param: ref %EmptyRange.de0) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -301,61 +301,61 @@ fn Run() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] // CHECK:STDOUT: %Body.type: type = fn_type @Body [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Body: %Body.type = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %EmptyRange.type: type = generic_class_type @EmptyRange [concrete] // CHECK:STDOUT: %EmptyRange.generic: %EmptyRange.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %T.baf: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %EmptyRange.Make.type.648: type = fn_type @EmptyRange.Make, @EmptyRange(%T.baf) [symbolic] -// CHECK:STDOUT: %EmptyRange.Make.317: %EmptyRange.Make.type.648 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.b02: = impl_witness imports.%Copy.impl_witness_table.f49 [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %C, (%Copy.impl_witness.b02) [concrete] -// CHECK:STDOUT: %EmptyRange.63c: type = class_type @EmptyRange, @EmptyRange(%Copy.facet) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.type.c46: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.93a: %EmptyRange.Make.type.c46 = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.93a, @EmptyRange.Make(%Copy.facet) [concrete] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %EmptyRange.Make.type.140: type = fn_type @EmptyRange.Make, @EmptyRange(%T.f84) [symbolic] +// CHECK:STDOUT: %EmptyRange.Make.0de: %EmptyRange.Make.type.140 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.2ff: = impl_witness imports.%Copy.impl_witness_table.506 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %C, (%Copy.impl_witness.2ff) [concrete] +// CHECK:STDOUT: %EmptyRange.de0: type = class_type @EmptyRange, @EmptyRange(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.type.3a3: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.8c5: %EmptyRange.Make.type.3a3 = struct_value () [concrete] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.8c5, @EmptyRange.Make(%Copy.facet) [concrete] // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] -// CHECK:STDOUT: %Optional.Get.type.eeb: type = fn_type @Optional.Get, @Optional(%T.baf) [symbolic] -// CHECK:STDOUT: %Optional.Get.82b: %Optional.Get.type.eeb = struct_value () [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.f4b: type = fn_type @Optional.HasValue, @Optional(%T.baf) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.40a: %Optional.HasValue.type.f4b = struct_value () [symbolic] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.7ff: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%T.baf) [symbolic] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.4c5: %EmptyRange.as.Iterate.impl.Next.type.7ff = struct_value () [symbolic] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.9ee: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%T.baf) [symbolic] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.966: %EmptyRange.as.Iterate.impl.NewCursor.type.9ee = struct_value () [symbolic] -// CHECK:STDOUT: %Iterate.impl_witness.0f2: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.97d: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.bb5: %EmptyRange.as.Iterate.impl.NewCursor.type.97d = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.927: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.28e: %EmptyRange.as.Iterate.impl.Next.type.927 = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.63c, (%Iterate.impl_witness.0f2) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.5c2: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.313: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [concrete] -// CHECK:STDOUT: %.df4: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.5c2, %Iterate.facet [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.bb5, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet) [concrete] -// CHECK:STDOUT: %.eb4: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.313, %Iterate.facet [concrete] -// CHECK:STDOUT: %Optional.c31: type = class_type @Optional, @Optional(%Copy.facet) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.28e, @EmptyRange.as.Iterate.impl.Next(%Copy.facet) [concrete] -// CHECK:STDOUT: %Optional.HasValue.type.9f9: type = fn_type @Optional.HasValue, @Optional(%Copy.facet) [concrete] -// CHECK:STDOUT: %Optional.HasValue.9ac: %Optional.HasValue.type.9f9 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.b89: type = fn_type @Optional.Get, @Optional(%Copy.facet) [concrete] -// CHECK:STDOUT: %Optional.Get.b6e: %Optional.Get.type.b89 = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.has_value.value.4de: type = struct_type {.has_value: bool, .value: %C} [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.9ac, @Optional.HasValue(%Copy.facet) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.b6e, @Optional.Get(%Copy.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.loc10_8.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc10_8.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.5: type = fn_type @Destroy.Op.loc10_40.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.5: %Destroy.Op.type.790b3b.5 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.6: type = fn_type @Destroy.Op.loc10_39 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.e1b: type = fn_type @Optional.Get, @Optional(%T.f84) [symbolic] +// CHECK:STDOUT: %Optional.Get.20c: %Optional.Get.type.e1b = struct_value () [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.224: type = fn_type @Optional.HasValue, @Optional(%T.f84) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.c4f: %Optional.HasValue.type.224 = struct_value () [symbolic] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.cfe: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%T.f84) [symbolic] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.0c8: %EmptyRange.as.Iterate.impl.Next.type.cfe = struct_value () [symbolic] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.647: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%T.f84) [symbolic] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.9e2: %EmptyRange.as.Iterate.impl.NewCursor.type.647 = struct_value () [symbolic] +// CHECK:STDOUT: %Iterate.impl_witness.99c: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.529: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.714: %EmptyRange.as.Iterate.impl.NewCursor.type.529 = struct_value () [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.3f6: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.805: %EmptyRange.as.Iterate.impl.Next.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.de0, (%Iterate.impl_witness.99c) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.1b1: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.b69: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [concrete] +// CHECK:STDOUT: %.ca7: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.1b1, %Iterate.facet [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.714, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet) [concrete] +// CHECK:STDOUT: %.9a7: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.b69, %Iterate.facet [concrete] +// CHECK:STDOUT: %Optional.f82: type = class_type @Optional, @Optional(%Copy.facet) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.805, @EmptyRange.as.Iterate.impl.Next(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.HasValue.type.c5b: type = fn_type @Optional.HasValue, @Optional(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.HasValue.a88: %Optional.HasValue.type.c5b = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.0a8: type = fn_type @Optional.Get, @Optional(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.Get.d5d: %Optional.Get.type.0a8 = struct_value () [concrete] +// 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.a88, @Optional.HasValue(%Copy.facet) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.d5d, @Optional.Get(%Copy.facet) [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.loc10_8.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_8.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_40.3 [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: %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: } @@ -363,40 +363,40 @@ fn Run() { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.EmptyRange: %EmptyRange.type = import_ref Main//empty_range, EmptyRange, loaded [concrete = constants.%EmptyRange.generic] // CHECK:STDOUT: %Main.C: type = import_ref Main//empty_range, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.a8b: @EmptyRange.%EmptyRange.Make.type (%EmptyRange.Make.type.648) = import_ref Main//empty_range, loc5_21, loaded [symbolic = @EmptyRange.%EmptyRange.Make (constants.%EmptyRange.Make.317)] -// CHECK:STDOUT: %Main.import_ref.4f1: %C.as.Copy.impl.Op.type = import_ref Main//empty_range, loc19_40, loaded [concrete = constants.%C.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.f49 = impl_witness_table (%Main.import_ref.4f1), @C.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.f0a: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.f4b) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.40a)] -// CHECK:STDOUT: %Core.import_ref.0ac: @Optional.%Optional.Get.type (%Optional.Get.type.eeb) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.82b)] -// CHECK:STDOUT: %Main.import_ref.e5a = import_ref Main//empty_range, loc7_68, unloaded +// CHECK:STDOUT: %Main.import_ref.a9e: @EmptyRange.%EmptyRange.Make.type (%EmptyRange.Make.type.140) = import_ref Main//empty_range, loc5_21, loaded [symbolic = @EmptyRange.%EmptyRange.Make (constants.%EmptyRange.Make.0de)] +// CHECK:STDOUT: %Main.import_ref.341: %C.as.Copy.impl.Op.type = import_ref Main//empty_range, loc19_40, loaded [concrete = constants.%C.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.506 = impl_witness_table (%Main.import_ref.341), @C.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.1db: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.224) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.c4f)] +// CHECK:STDOUT: %Core.import_ref.73b: @Optional.%Optional.Get.type (%Optional.Get.type.e1b) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.20c)] +// CHECK:STDOUT: %Main.import_ref.71a = import_ref Main//empty_range, loc7_68, unloaded // CHECK:STDOUT: %Main.import_ref.999 = import_ref Main//empty_range, loc7_68, unloaded -// CHECK:STDOUT: %Main.import_ref.e66: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor.type (%EmptyRange.as.Iterate.impl.NewCursor.type.9ee) = import_ref Main//empty_range, loc8_45, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor (constants.%EmptyRange.as.Iterate.impl.NewCursor.966)] -// CHECK:STDOUT: %Main.import_ref.1f9: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next.type (%EmptyRange.as.Iterate.impl.Next.type.7ff) = import_ref Main//empty_range, loc11_72, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next (constants.%EmptyRange.as.Iterate.impl.Next.4c5)] -// CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%Main.import_ref.e5a, %Main.import_ref.999, %Main.import_ref.e66, %Main.import_ref.1f9), @EmptyRange.as.Iterate.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.19c: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor.type (%EmptyRange.as.Iterate.impl.NewCursor.type.647) = import_ref Main//empty_range, loc8_45, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor (constants.%EmptyRange.as.Iterate.impl.NewCursor.9e2)] +// CHECK:STDOUT: %Main.import_ref.ee4: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next.type (%EmptyRange.as.Iterate.impl.Next.type.cfe) = import_ref Main//empty_range, loc11_72, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next (constants.%EmptyRange.as.Iterate.impl.Next.0c8)] +// CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%Main.import_ref.71a, %Main.import_ref.999, %Main.import_ref.19c, %Main.import_ref.ee4), @EmptyRange.as.Iterate.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.0d5 = var_pattern %c.patt [concrete] +// 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: } // CHECK:STDOUT: %EmptyRange.ref: %EmptyRange.type = name_ref EmptyRange, imports.%Main.EmptyRange [concrete = constants.%EmptyRange.generic] // CHECK:STDOUT: %C.ref.loc10_31: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %C.ref.loc10_31, (constants.%Copy.impl_witness.b02) [concrete = constants.%Copy.facet] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %C.ref.loc10_31, (constants.%Copy.impl_witness.2ff) [concrete = constants.%Copy.facet] // CHECK:STDOUT: %.loc10_32: %Copy.type = converted %C.ref.loc10_31, %Copy.facet [concrete = constants.%Copy.facet] -// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet) [concrete = constants.%EmptyRange.63c] -// CHECK:STDOUT: %.loc10_33: %EmptyRange.Make.type.c46 = specific_constant imports.%Main.import_ref.a8b, @EmptyRange(constants.%Copy.facet) [concrete = constants.%EmptyRange.Make.93a] -// CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.c46 = name_ref Make, %.loc10_33 [concrete = constants.%EmptyRange.Make.93a] +// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet) [concrete = constants.%EmptyRange.de0] +// CHECK:STDOUT: %.loc10_33: %EmptyRange.Make.type.3a3 = specific_constant imports.%Main.import_ref.a9e, @EmptyRange(constants.%Copy.facet) [concrete = constants.%EmptyRange.Make.8c5] +// CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.3a3 = name_ref Make, %.loc10_33 [concrete = constants.%EmptyRange.Make.8c5] // CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet) [concrete = constants.%EmptyRange.Make.specific_fn] -// CHECK:STDOUT: %.loc10_39.1: ref %EmptyRange.63c = temporary_storage -// CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.63c to %.loc10_39.1 = call %EmptyRange.Make.specific_fn() -// CHECK:STDOUT: %.loc10_39.2: ref %EmptyRange.63c = temporary %.loc10_39.1, %EmptyRange.Make.call -// CHECK:STDOUT: %impl.elem2: %.df4 = impl_witness_access constants.%Iterate.impl_witness.0f2, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.bb5] +// CHECK:STDOUT: %.loc10_39.1: ref %EmptyRange.de0 = temporary_storage +// CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.de0 to %.loc10_39.1 = call %EmptyRange.Make.specific_fn() +// CHECK:STDOUT: %.loc10_39.2: ref %EmptyRange.de0 = temporary %.loc10_39.1, %EmptyRange.Make.call +// CHECK:STDOUT: %impl.elem2: %.ca7 = impl_witness_access constants.%Iterate.impl_witness.99c, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.714] // CHECK:STDOUT: %bound_method.loc10_40.1: = bound_method %.loc10_39.2, %impl.elem2 // CHECK:STDOUT: %specific_fn.loc10_40.1: = specific_function %impl.elem2, @EmptyRange.as.Iterate.impl.NewCursor(constants.%Copy.facet) [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.specific_fn] // CHECK:STDOUT: %bound_method.loc10_40.2: = bound_method %.loc10_39.2, %specific_fn.loc10_40.1 -// CHECK:STDOUT: %.loc10_39.3: %EmptyRange.63c = acquire_value %.loc10_39.2 +// CHECK:STDOUT: %.loc10_39.3: %EmptyRange.de0 = acquire_value %.loc10_39.2 // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.call: init %empty_struct_type = call %bound_method.loc10_40.2(%.loc10_39.3) // CHECK:STDOUT: %var: ref %empty_struct_type = var invalid // CHECK:STDOUT: assign %var, %EmptyRange.as.Iterate.impl.NewCursor.call @@ -404,20 +404,20 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: !for.next: // CHECK:STDOUT: %addr.loc10: %ptr.c28 = addr_of %var -// CHECK:STDOUT: %impl.elem3: %.eb4 = impl_witness_access constants.%Iterate.impl_witness.0f2, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.28e] +// CHECK:STDOUT: %impl.elem3: %.9a7 = impl_witness_access constants.%Iterate.impl_witness.99c, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.805] // CHECK:STDOUT: %bound_method.loc10_40.3: = bound_method %.loc10_39.2, %impl.elem3 // CHECK:STDOUT: %specific_fn.loc10_40.2: = specific_function %impl.elem3, @EmptyRange.as.Iterate.impl.Next(constants.%Copy.facet) [concrete = constants.%EmptyRange.as.Iterate.impl.Next.specific_fn] // CHECK:STDOUT: %bound_method.loc10_40.4: = bound_method %.loc10_39.2, %specific_fn.loc10_40.2 -// CHECK:STDOUT: %.loc10_40.1: ref %Optional.c31 = temporary_storage -// CHECK:STDOUT: %.loc10_39.4: %EmptyRange.63c = acquire_value %.loc10_39.2 -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.c31 to %.loc10_40.1 = call %bound_method.loc10_40.4(%.loc10_39.4, %addr.loc10) -// CHECK:STDOUT: %.loc10_40.2: ref %Optional.c31 = temporary %.loc10_40.1, %EmptyRange.as.Iterate.impl.Next.call -// CHECK:STDOUT: %.loc10_40.3: %Optional.HasValue.type.9f9 = specific_constant imports.%Core.import_ref.f0a, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.HasValue.9ac] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.9f9 = name_ref HasValue, %.loc10_40.3 [concrete = constants.%Optional.HasValue.9ac] +// CHECK:STDOUT: %.loc10_40.1: ref %Optional.f82 = temporary_storage +// CHECK:STDOUT: %.loc10_39.4: %EmptyRange.de0 = acquire_value %.loc10_39.2 +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.f82 to %.loc10_40.1 = call %bound_method.loc10_40.4(%.loc10_39.4, %addr.loc10) +// CHECK:STDOUT: %.loc10_40.2: ref %Optional.f82 = temporary %.loc10_40.1, %EmptyRange.as.Iterate.impl.Next.call +// CHECK:STDOUT: %.loc10_40.3: %Optional.HasValue.type.c5b = specific_constant imports.%Core.import_ref.1db, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.HasValue.a88] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.c5b = name_ref HasValue, %.loc10_40.3 [concrete = constants.%Optional.HasValue.a88] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc10_40.2, %HasValue.ref // CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc10_40.5: = bound_method %.loc10_40.2, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc10_40.4: %Optional.c31 = acquire_value %.loc10_40.2 +// CHECK:STDOUT: %.loc10_40.4: %Optional.f82 = acquire_value %.loc10_40.2 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc10_40.5(%.loc10_40.4) // CHECK:STDOUT: %.loc10_40.5: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc10_40.6: bool = converted %Optional.HasValue.call, %.loc10_40.5 @@ -425,31 +425,31 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: !for.body: // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt -// CHECK:STDOUT: %.loc10_40.7: %Optional.Get.type.b89 = specific_constant imports.%Core.import_ref.0ac, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.Get.b6e] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.b89 = name_ref Get, %.loc10_40.7 [concrete = constants.%Optional.Get.b6e] +// CHECK:STDOUT: %.loc10_40.7: %Optional.Get.type.0a8 = specific_constant imports.%Core.import_ref.73b, @Optional(constants.%Copy.facet) [concrete = constants.%Optional.Get.d5d] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.0a8 = name_ref Get, %.loc10_40.7 [concrete = constants.%Optional.Get.d5d] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc10_40.2, %Get.ref // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc10_40.6: = bound_method %.loc10_40.2, %Optional.Get.specific_fn // CHECK:STDOUT: %.loc10_8: ref %C = splice_block %c.var {} -// CHECK:STDOUT: %.loc10_40.8: %Optional.c31 = acquire_value %.loc10_40.2 +// CHECK:STDOUT: %.loc10_40.8: %Optional.f82 = acquire_value %.loc10_40.2 // CHECK:STDOUT: %Optional.Get.call: init %C to %.loc10_8 = call %bound_method.loc10_40.6(%.loc10_40.8) // CHECK:STDOUT: assign %c.var, %Optional.Get.call // CHECK:STDOUT: %C.ref.loc10_15: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var // CHECK:STDOUT: %Body.ref: %Body.type = name_ref Body, file.%Body.decl [concrete = constants.%Body] // CHECK:STDOUT: %c.ref: ref %C = name_ref c, %c -// CHECK:STDOUT: %addr.loc11: %ptr.6be = addr_of %c.ref +// 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: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc10_8: = bound_method %c.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc10_8: = bound_method %c.var, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc10_8: init %empty_tuple.type = call %Destroy.Op.bound.loc10_8(%c.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_40.1: = bound_method %.loc10_40.2, constants.%Destroy.Op.2dd605.5 +// 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_40.2: = bound_method %var, constants.%Destroy.Op.2dd605.1 +// CHECK:STDOUT: %Destroy.Op.bound.loc10_40.2: = bound_method %var, constants.%Destroy.Op.1a2547.1 // CHECK:STDOUT: %Destroy.Op.call.loc10_40.2: init %empty_tuple.type = call %Destroy.Op.bound.loc10_40.2(%var) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_39: = bound_method %.loc10_39.2, constants.%Destroy.Op.2dd605.6 +// 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: // CHECK:STDOUT: } @@ -463,17 +463,17 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.Op.loc10_40.1(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_40.2(%self.param: ref %struct_type.has_value.value.4de) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_40.2(%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.3(%self.param: ref %Optional.c31) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_40.3(%self.param: ref %Optional.f82) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_39(%self.param: ref %EmptyRange.63c) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_39(%self.param: ref %EmptyRange.de0) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -491,78 +491,78 @@ fn Run() { // CHECK:STDOUT: %EmptyRange.generic: %EmptyRange.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %T.baf: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %EmptyRange.Make.type.648: type = fn_type @EmptyRange.Make, @EmptyRange(%T.baf) [symbolic] -// CHECK:STDOUT: %EmptyRange.Make.317: %EmptyRange.Make.type.648 = struct_value () [symbolic] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %EmptyRange.Make.type.140: type = fn_type @EmptyRange.Make, @EmptyRange(%T.f84) [symbolic] +// CHECK:STDOUT: %EmptyRange.Make.0de: %EmptyRange.Make.type.140 = struct_value () [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %tuple.9fa: %tuple.type.24b = tuple_value (bool, bool) [concrete] // CHECK:STDOUT: %U: %Copy.type = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.type.688: type = fn_type @tuple.type.as.Copy.impl.Op.1, @tuple.type.as.Copy.impl.27a(%T.baf, %U) [symbolic] -// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.0cf: %tuple.type.as.Copy.impl.Op.type.688 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.9d2: = impl_witness imports.%Copy.impl_witness_table.82b [concrete] -// CHECK:STDOUT: %Copy.facet.e28: %Copy.type = facet_value bool, (%Copy.impl_witness.9d2) [concrete] -// CHECK:STDOUT: %Copy.impl_witness.590: = impl_witness imports.%Copy.impl_witness_table.65e, @tuple.type.as.Copy.impl.27a(%Copy.facet.e28, %Copy.facet.e28) [concrete] -// CHECK:STDOUT: %Copy.facet.498: %Copy.type = facet_value %tuple.type.784, (%Copy.impl_witness.590) [concrete] -// CHECK:STDOUT: %EmptyRange.d6b: type = class_type @EmptyRange, @EmptyRange(%Copy.facet.498) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.type.5dd: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet.498) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.268: %EmptyRange.Make.type.5dd = struct_value () [concrete] +// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.type.3ed: type = fn_type @tuple.type.as.Copy.impl.Op.1, @tuple.type.as.Copy.impl.9bd(%T.f84, %U) [symbolic] +// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.0f8: %tuple.type.as.Copy.impl.Op.type.3ed = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.713: = impl_witness imports.%Copy.impl_witness_table.1ff [concrete] +// CHECK:STDOUT: %Copy.facet.fa7: %Copy.type = facet_value bool, (%Copy.impl_witness.713) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.8be: = impl_witness imports.%Copy.impl_witness_table.828, @tuple.type.as.Copy.impl.9bd(%Copy.facet.fa7, %Copy.facet.fa7) [concrete] +// CHECK:STDOUT: %Copy.facet.ee8: %Copy.type = facet_value %tuple.type.784, (%Copy.impl_witness.8be) [concrete] +// CHECK:STDOUT: %EmptyRange.012: type = class_type @EmptyRange, @EmptyRange(%Copy.facet.ee8) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.type.201: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet.ee8) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.b93: %EmptyRange.Make.type.201 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.268, @EmptyRange.Make(%Copy.facet.498) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.b93, @EmptyRange.Make(%Copy.facet.ee8) [concrete] // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] -// CHECK:STDOUT: %Optional.Get.type.eeb: type = fn_type @Optional.Get, @Optional(%T.baf) [symbolic] -// CHECK:STDOUT: %Optional.Get.82b: %Optional.Get.type.eeb = struct_value () [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.f4b: type = fn_type @Optional.HasValue, @Optional(%T.baf) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.40a: %Optional.HasValue.type.f4b = struct_value () [symbolic] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.7ff: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%T.baf) [symbolic] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.4c5: %EmptyRange.as.Iterate.impl.Next.type.7ff = struct_value () [symbolic] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.9ee: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%T.baf) [symbolic] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.966: %EmptyRange.as.Iterate.impl.NewCursor.type.9ee = struct_value () [symbolic] -// CHECK:STDOUT: %Iterate.impl_witness.5f9: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet.498) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.324: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet.498) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.769: %EmptyRange.as.Iterate.impl.NewCursor.type.324 = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.63d: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet.498) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.74e: %EmptyRange.as.Iterate.impl.Next.type.63d = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.d6b, (%Iterate.impl_witness.5f9) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.7f4: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.d05: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [concrete] -// CHECK:STDOUT: %.277: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.7f4, %Iterate.facet [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.769, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet.498) [concrete] -// CHECK:STDOUT: %.e77: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.d05, %Iterate.facet [concrete] -// CHECK:STDOUT: %Optional.62d: type = class_type @Optional, @Optional(%Copy.facet.498) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.74e, @EmptyRange.as.Iterate.impl.Next(%Copy.facet.498) [concrete] -// CHECK:STDOUT: %Optional.HasValue.type.2b7: type = fn_type @Optional.HasValue, @Optional(%Copy.facet.498) [concrete] -// CHECK:STDOUT: %Optional.HasValue.a1d: %Optional.HasValue.type.2b7 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.cf8: type = fn_type @Optional.Get, @Optional(%Copy.facet.498) [concrete] -// CHECK:STDOUT: %Optional.Get.904: %Optional.Get.type.cf8 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.e1b: type = fn_type @Optional.Get, @Optional(%T.f84) [symbolic] +// CHECK:STDOUT: %Optional.Get.20c: %Optional.Get.type.e1b = struct_value () [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.224: type = fn_type @Optional.HasValue, @Optional(%T.f84) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.c4f: %Optional.HasValue.type.224 = struct_value () [symbolic] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.cfe: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%T.f84) [symbolic] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.0c8: %EmptyRange.as.Iterate.impl.Next.type.cfe = struct_value () [symbolic] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.647: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%T.f84) [symbolic] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.9e2: %EmptyRange.as.Iterate.impl.NewCursor.type.647 = struct_value () [symbolic] +// CHECK:STDOUT: %Iterate.impl_witness.84c: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet.ee8) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.f6e: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet.ee8) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.2a8: %EmptyRange.as.Iterate.impl.NewCursor.type.f6e = struct_value () [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.2ba: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet.ee8) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.902: %EmptyRange.as.Iterate.impl.Next.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.012, (%Iterate.impl_witness.84c) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.3ee: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.f2f: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [concrete] +// CHECK:STDOUT: %.b4c: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.3ee, %Iterate.facet [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.2a8, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet.ee8) [concrete] +// CHECK:STDOUT: %.29a: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.f2f, %Iterate.facet [concrete] +// CHECK:STDOUT: %Optional.8b2: type = class_type @Optional, @Optional(%Copy.facet.ee8) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.902, @EmptyRange.as.Iterate.impl.Next(%Copy.facet.ee8) [concrete] +// CHECK:STDOUT: %Optional.HasValue.type.462: type = fn_type @Optional.HasValue, @Optional(%Copy.facet.ee8) [concrete] +// CHECK:STDOUT: %Optional.HasValue.c8b: %Optional.HasValue.type.462 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.d91: type = fn_type @Optional.Get, @Optional(%Copy.facet.ee8) [concrete] +// CHECK:STDOUT: %Optional.Get.7e9: %Optional.Get.type.d91 = struct_value () [concrete] // CHECK:STDOUT: %struct_type.has_value.value.6f9: type = struct_type {.has_value: bool, .value: %tuple.type.784} [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.a1d, @Optional.HasValue(%Copy.facet.498) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.904, @Optional.Get(%Copy.facet.498) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc10_61.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc10_61.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.5: type = fn_type @Destroy.Op.loc10_61.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.5: %Destroy.Op.type.790b3b.5 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.6: type = fn_type @Destroy.Op.loc10_60 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.c8b, @Optional.HasValue(%Copy.facet.ee8) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.7e9, @Optional.Get(%Copy.facet.ee8) [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: %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.EmptyRange: %EmptyRange.type = import_ref Main//empty_range, EmptyRange, loaded [concrete = constants.%EmptyRange.generic] -// CHECK:STDOUT: %Main.import_ref.a8b: @EmptyRange.%EmptyRange.Make.type (%EmptyRange.Make.type.648) = import_ref Main//empty_range, loc5_21, loaded [symbolic = @EmptyRange.%EmptyRange.Make (constants.%EmptyRange.Make.317)] -// CHECK:STDOUT: %Core.import_ref.72a: @tuple.type.as.Copy.impl.27a.%tuple.type.as.Copy.impl.Op.type (%tuple.type.as.Copy.impl.Op.type.688) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @tuple.type.as.Copy.impl.27a.%tuple.type.as.Copy.impl.Op (constants.%tuple.type.as.Copy.impl.Op.0cf)] -// CHECK:STDOUT: %Copy.impl_witness_table.65e = impl_witness_table (%Core.import_ref.72a), @tuple.type.as.Copy.impl.27a [concrete] -// CHECK:STDOUT: %Core.import_ref.f63: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.82b = impl_witness_table (%Core.import_ref.f63), @bool.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.f0a: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.f4b) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.40a)] -// CHECK:STDOUT: %Core.import_ref.0ac: @Optional.%Optional.Get.type (%Optional.Get.type.eeb) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.82b)] -// CHECK:STDOUT: %Main.import_ref.e5a = import_ref Main//empty_range, loc7_68, unloaded +// CHECK:STDOUT: %Main.import_ref.a9e: @EmptyRange.%EmptyRange.Make.type (%EmptyRange.Make.type.140) = import_ref Main//empty_range, loc5_21, loaded [symbolic = @EmptyRange.%EmptyRange.Make (constants.%EmptyRange.Make.0de)] +// CHECK:STDOUT: %Core.import_ref.44a: @tuple.type.as.Copy.impl.9bd.%tuple.type.as.Copy.impl.Op.type (%tuple.type.as.Copy.impl.Op.type.3ed) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @tuple.type.as.Copy.impl.9bd.%tuple.type.as.Copy.impl.Op (constants.%tuple.type.as.Copy.impl.Op.0f8)] +// CHECK:STDOUT: %Copy.impl_witness_table.828 = impl_witness_table (%Core.import_ref.44a), @tuple.type.as.Copy.impl.9bd [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.1ff = impl_witness_table (%Core.import_ref.9c3), @bool.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.1db: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.224) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.c4f)] +// CHECK:STDOUT: %Core.import_ref.73b: @Optional.%Optional.Get.type (%Optional.Get.type.e1b) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.20c)] +// CHECK:STDOUT: %Main.import_ref.71a = import_ref Main//empty_range, loc7_68, unloaded // CHECK:STDOUT: %Main.import_ref.999 = import_ref Main//empty_range, loc7_68, unloaded -// CHECK:STDOUT: %Main.import_ref.e66: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor.type (%EmptyRange.as.Iterate.impl.NewCursor.type.9ee) = import_ref Main//empty_range, loc8_45, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor (constants.%EmptyRange.as.Iterate.impl.NewCursor.966)] -// CHECK:STDOUT: %Main.import_ref.1f9: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next.type (%EmptyRange.as.Iterate.impl.Next.type.7ff) = import_ref Main//empty_range, loc11_72, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next (constants.%EmptyRange.as.Iterate.impl.Next.4c5)] -// CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%Main.import_ref.e5a, %Main.import_ref.999, %Main.import_ref.e66, %Main.import_ref.1f9), @EmptyRange.as.Iterate.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.19c: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor.type (%EmptyRange.as.Iterate.impl.NewCursor.type.647) = import_ref Main//empty_range, loc8_45, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor (constants.%EmptyRange.as.Iterate.impl.NewCursor.9e2)] +// CHECK:STDOUT: %Main.import_ref.ee4: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next.type (%EmptyRange.as.Iterate.impl.Next.type.cfe) = import_ref Main//empty_range, loc11_72, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next (constants.%EmptyRange.as.Iterate.impl.Next.0c8)] +// CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%Main.import_ref.71a, %Main.import_ref.999, %Main.import_ref.19c, %Main.import_ref.ee4), @EmptyRange.as.Iterate.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { @@ -576,20 +576,20 @@ fn Run() { // CHECK:STDOUT: %.loc10_42: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc10_48: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc10_52: %tuple.type.24b = tuple_literal (%.loc10_42, %.loc10_48) [concrete = constants.%tuple.9fa] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%tuple.type.784, (constants.%Copy.impl_witness.590) [concrete = constants.%Copy.facet.498] -// CHECK:STDOUT: %.loc10_53: %Copy.type = converted %.loc10_52, %Copy.facet [concrete = constants.%Copy.facet.498] -// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet.498) [concrete = constants.%EmptyRange.d6b] -// CHECK:STDOUT: %.loc10_54: %EmptyRange.Make.type.5dd = specific_constant imports.%Main.import_ref.a8b, @EmptyRange(constants.%Copy.facet.498) [concrete = constants.%EmptyRange.Make.268] -// CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.5dd = name_ref Make, %.loc10_54 [concrete = constants.%EmptyRange.Make.268] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet.498) [concrete = constants.%EmptyRange.Make.specific_fn] -// CHECK:STDOUT: %.loc10_60.1: ref %EmptyRange.d6b = temporary_storage -// CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.d6b to %.loc10_60.1 = call %EmptyRange.Make.specific_fn() -// CHECK:STDOUT: %.loc10_60.2: ref %EmptyRange.d6b = temporary %.loc10_60.1, %EmptyRange.Make.call -// CHECK:STDOUT: %impl.elem2: %.277 = impl_witness_access constants.%Iterate.impl_witness.5f9, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.769] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%tuple.type.784, (constants.%Copy.impl_witness.8be) [concrete = constants.%Copy.facet.ee8] +// CHECK:STDOUT: %.loc10_53: %Copy.type = converted %.loc10_52, %Copy.facet [concrete = constants.%Copy.facet.ee8] +// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet.ee8) [concrete = constants.%EmptyRange.012] +// CHECK:STDOUT: %.loc10_54: %EmptyRange.Make.type.201 = specific_constant imports.%Main.import_ref.a9e, @EmptyRange(constants.%Copy.facet.ee8) [concrete = constants.%EmptyRange.Make.b93] +// CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.201 = name_ref Make, %.loc10_54 [concrete = constants.%EmptyRange.Make.b93] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet.ee8) [concrete = constants.%EmptyRange.Make.specific_fn] +// CHECK:STDOUT: %.loc10_60.1: ref %EmptyRange.012 = temporary_storage +// CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.012 to %.loc10_60.1 = call %EmptyRange.Make.specific_fn() +// CHECK:STDOUT: %.loc10_60.2: ref %EmptyRange.012 = temporary %.loc10_60.1, %EmptyRange.Make.call +// CHECK:STDOUT: %impl.elem2: %.b4c = impl_witness_access constants.%Iterate.impl_witness.84c, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.2a8] // CHECK:STDOUT: %bound_method.loc10_61.1: = bound_method %.loc10_60.2, %impl.elem2 -// CHECK:STDOUT: %specific_fn.loc10_61.1: = specific_function %impl.elem2, @EmptyRange.as.Iterate.impl.NewCursor(constants.%Copy.facet.498) [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_61.1: = specific_function %impl.elem2, @EmptyRange.as.Iterate.impl.NewCursor(constants.%Copy.facet.ee8) [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.specific_fn] // CHECK:STDOUT: %bound_method.loc10_61.2: = bound_method %.loc10_60.2, %specific_fn.loc10_61.1 -// CHECK:STDOUT: %.loc10_60.3: %EmptyRange.d6b = acquire_value %.loc10_60.2 +// CHECK:STDOUT: %.loc10_60.3: %EmptyRange.012 = acquire_value %.loc10_60.2 // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.call: init %empty_struct_type = call %bound_method.loc10_61.2(%.loc10_60.3) // CHECK:STDOUT: %var: ref %empty_struct_type = var invalid // CHECK:STDOUT: assign %var, %EmptyRange.as.Iterate.impl.NewCursor.call @@ -597,33 +597,33 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: !for.next: // CHECK:STDOUT: %addr: %ptr.c28 = addr_of %var -// CHECK:STDOUT: %impl.elem3: %.e77 = impl_witness_access constants.%Iterate.impl_witness.5f9, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.74e] +// CHECK:STDOUT: %impl.elem3: %.29a = impl_witness_access constants.%Iterate.impl_witness.84c, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.902] // CHECK:STDOUT: %bound_method.loc10_61.3: = bound_method %.loc10_60.2, %impl.elem3 -// CHECK:STDOUT: %specific_fn.loc10_61.2: = specific_function %impl.elem3, @EmptyRange.as.Iterate.impl.Next(constants.%Copy.facet.498) [concrete = constants.%EmptyRange.as.Iterate.impl.Next.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_61.2: = specific_function %impl.elem3, @EmptyRange.as.Iterate.impl.Next(constants.%Copy.facet.ee8) [concrete = constants.%EmptyRange.as.Iterate.impl.Next.specific_fn] // CHECK:STDOUT: %bound_method.loc10_61.4: = bound_method %.loc10_60.2, %specific_fn.loc10_61.2 -// CHECK:STDOUT: %.loc10_61.1: ref %Optional.62d = temporary_storage -// CHECK:STDOUT: %.loc10_60.4: %EmptyRange.d6b = acquire_value %.loc10_60.2 -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.62d to %.loc10_61.1 = call %bound_method.loc10_61.4(%.loc10_60.4, %addr) -// CHECK:STDOUT: %.loc10_61.2: ref %Optional.62d = temporary %.loc10_61.1, %EmptyRange.as.Iterate.impl.Next.call -// CHECK:STDOUT: %.loc10_61.3: %Optional.HasValue.type.2b7 = specific_constant imports.%Core.import_ref.f0a, @Optional(constants.%Copy.facet.498) [concrete = constants.%Optional.HasValue.a1d] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.2b7 = name_ref HasValue, %.loc10_61.3 [concrete = constants.%Optional.HasValue.a1d] +// CHECK:STDOUT: %.loc10_61.1: ref %Optional.8b2 = temporary_storage +// CHECK:STDOUT: %.loc10_60.4: %EmptyRange.012 = acquire_value %.loc10_60.2 +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.8b2 to %.loc10_61.1 = call %bound_method.loc10_61.4(%.loc10_60.4, %addr) +// CHECK:STDOUT: %.loc10_61.2: ref %Optional.8b2 = temporary %.loc10_61.1, %EmptyRange.as.Iterate.impl.Next.call +// CHECK:STDOUT: %.loc10_61.3: %Optional.HasValue.type.462 = specific_constant imports.%Core.import_ref.1db, @Optional(constants.%Copy.facet.ee8) [concrete = constants.%Optional.HasValue.c8b] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.462 = name_ref HasValue, %.loc10_61.3 [concrete = constants.%Optional.HasValue.c8b] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc10_61.2, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet.498) [concrete = constants.%Optional.HasValue.specific_fn] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet.ee8) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc10_61.5: = bound_method %.loc10_61.2, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc10_61.4: %Optional.62d = acquire_value %.loc10_61.2 +// CHECK:STDOUT: %.loc10_61.4: %Optional.8b2 = acquire_value %.loc10_61.2 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc10_61.5(%.loc10_61.4) // CHECK:STDOUT: %.loc10_61.5: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc10_61.6: bool = converted %Optional.HasValue.call, %.loc10_61.5 // CHECK:STDOUT: if %.loc10_61.6 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc10_61.7: %Optional.Get.type.cf8 = specific_constant imports.%Core.import_ref.0ac, @Optional(constants.%Copy.facet.498) [concrete = constants.%Optional.Get.904] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.cf8 = name_ref Get, %.loc10_61.7 [concrete = constants.%Optional.Get.904] +// CHECK:STDOUT: %.loc10_61.7: %Optional.Get.type.d91 = specific_constant imports.%Core.import_ref.73b, @Optional(constants.%Copy.facet.ee8) [concrete = constants.%Optional.Get.7e9] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.d91 = name_ref Get, %.loc10_61.7 [concrete = constants.%Optional.Get.7e9] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc10_61.2, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet.498) [concrete = constants.%Optional.Get.specific_fn] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet.ee8) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc10_61.6: = bound_method %.loc10_61.2, %Optional.Get.specific_fn // CHECK:STDOUT: %.loc10_61.8: ref %tuple.type.784 = temporary_storage -// CHECK:STDOUT: %.loc10_61.9: %Optional.62d = acquire_value %.loc10_61.2 +// CHECK:STDOUT: %.loc10_61.9: %Optional.8b2 = acquire_value %.loc10_61.2 // CHECK:STDOUT: %Optional.Get.call: init %tuple.type.784 to %.loc10_61.8 = call %bound_method.loc10_61.6(%.loc10_61.9) // CHECK:STDOUT: %.loc10_61.10: ref %tuple.type.784 = temporary %.loc10_61.8, %Optional.Get.call // CHECK:STDOUT: %tuple.elem0: ref bool = tuple_access %.loc10_61.10, element0 @@ -641,13 +641,13 @@ fn Run() { // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc10_61.1: = bound_method %.loc10_61.10, constants.%Destroy.Op.2dd605.2 +// 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.2dd605.4 +// 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.Op.bound.loc10_61.3: = bound_method %var, constants.%Destroy.Op.2dd605.5 +// CHECK:STDOUT: %Destroy.Op.bound.loc10_61.3: = bound_method %var, constants.%Destroy.Op.1a2547.5 // CHECK:STDOUT: %Destroy.Op.call.loc10_61.3: init %empty_tuple.type = call %Destroy.Op.bound.loc10_61.3(%var) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_60: = bound_method %.loc10_60.2, constants.%Destroy.Op.2dd605.6 +// 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: // CHECK:STDOUT: } @@ -664,14 +664,14 @@ fn Run() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_61.4(%self.param: ref %Optional.62d) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_61.4(%self.param: ref %Optional.8b2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.Op.loc10_61.5(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_60(%self.param: ref %EmptyRange.d6b) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_60(%self.param: ref %EmptyRange.012) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -681,69 +681,69 @@ fn Run() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %Body.type: type = fn_type @Body [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Body: %Body.type = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] -// CHECK:STDOUT: %tuple.type.33d: type = tuple_type (%C, %C) [concrete] -// CHECK:STDOUT: %pattern_type.410: type = pattern_type %tuple.type.33d [concrete] +// CHECK:STDOUT: %tuple.type.748: type = tuple_type (%C, %C) [concrete] +// CHECK:STDOUT: %pattern_type.8b4: type = pattern_type %tuple.type.748 [concrete] // CHECK:STDOUT: %EmptyRange.type: type = generic_class_type @EmptyRange [concrete] // CHECK:STDOUT: %EmptyRange.generic: %EmptyRange.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %T.baf: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %EmptyRange.Make.type.648: type = fn_type @EmptyRange.Make, @EmptyRange(%T.baf) [symbolic] -// CHECK:STDOUT: %EmptyRange.Make.317: %EmptyRange.Make.type.648 = struct_value () [symbolic] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %EmptyRange.Make.type.140: type = fn_type @EmptyRange.Make, @EmptyRange(%T.f84) [symbolic] +// CHECK:STDOUT: %EmptyRange.Make.0de: %EmptyRange.Make.type.140 = struct_value () [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.201: %tuple.type.24b = tuple_value (%C, %C) [concrete] +// CHECK:STDOUT: %tuple.d95: %tuple.type.24b = tuple_value (%C, %C) [concrete] // CHECK:STDOUT: %U: %Copy.type = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.type.688: type = fn_type @tuple.type.as.Copy.impl.Op.1, @tuple.type.as.Copy.impl.27a(%T.baf, %U) [symbolic] -// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.0cf: %tuple.type.as.Copy.impl.Op.type.688 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.b02: = impl_witness imports.%Copy.impl_witness_table.f49 [concrete] -// CHECK:STDOUT: %Copy.facet.a1f: %Copy.type = facet_value %C, (%Copy.impl_witness.b02) [concrete] -// CHECK:STDOUT: %Copy.impl_witness.7ba: = impl_witness imports.%Copy.impl_witness_table.65e, @tuple.type.as.Copy.impl.27a(%Copy.facet.a1f, %Copy.facet.a1f) [concrete] -// CHECK:STDOUT: %Copy.facet.c7a: %Copy.type = facet_value %tuple.type.33d, (%Copy.impl_witness.7ba) [concrete] -// CHECK:STDOUT: %EmptyRange.29c: type = class_type @EmptyRange, @EmptyRange(%Copy.facet.c7a) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.type.685: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet.c7a) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.3e1: %EmptyRange.Make.type.685 = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.3e1, @EmptyRange.Make(%Copy.facet.c7a) [concrete] +// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.type.3ed: type = fn_type @tuple.type.as.Copy.impl.Op.1, @tuple.type.as.Copy.impl.9bd(%T.f84, %U) [symbolic] +// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.0f8: %tuple.type.as.Copy.impl.Op.type.3ed = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.2ff: = impl_witness imports.%Copy.impl_witness_table.506 [concrete] +// CHECK:STDOUT: %Copy.facet.3c3: %Copy.type = facet_value %C, (%Copy.impl_witness.2ff) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.a7a: = impl_witness imports.%Copy.impl_witness_table.828, @tuple.type.as.Copy.impl.9bd(%Copy.facet.3c3, %Copy.facet.3c3) [concrete] +// CHECK:STDOUT: %Copy.facet.bb7: %Copy.type = facet_value %tuple.type.748, (%Copy.impl_witness.a7a) [concrete] +// CHECK:STDOUT: %EmptyRange.617: type = class_type @EmptyRange, @EmptyRange(%Copy.facet.bb7) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.type.14e: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet.bb7) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.4ae: %EmptyRange.Make.type.14e = struct_value () [concrete] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.4ae, @EmptyRange.Make(%Copy.facet.bb7) [concrete] // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] -// CHECK:STDOUT: %Optional.Get.type.eeb: type = fn_type @Optional.Get, @Optional(%T.baf) [symbolic] -// CHECK:STDOUT: %Optional.Get.82b: %Optional.Get.type.eeb = struct_value () [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.f4b: type = fn_type @Optional.HasValue, @Optional(%T.baf) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.40a: %Optional.HasValue.type.f4b = struct_value () [symbolic] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.7ff: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%T.baf) [symbolic] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.4c5: %EmptyRange.as.Iterate.impl.Next.type.7ff = struct_value () [symbolic] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.9ee: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%T.baf) [symbolic] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.966: %EmptyRange.as.Iterate.impl.NewCursor.type.9ee = struct_value () [symbolic] -// CHECK:STDOUT: %Iterate.impl_witness.bf1: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet.c7a) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.a18: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet.c7a) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.69f: %EmptyRange.as.Iterate.impl.NewCursor.type.a18 = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.d08: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet.c7a) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.f4e: %EmptyRange.as.Iterate.impl.Next.type.d08 = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.29c, (%Iterate.impl_witness.bf1) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.07c: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.24c: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [concrete] -// CHECK:STDOUT: %.18f: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.07c, %Iterate.facet [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.69f, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet.c7a) [concrete] -// CHECK:STDOUT: %.528: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.24c, %Iterate.facet [concrete] -// CHECK:STDOUT: %Optional.0dc: type = class_type @Optional, @Optional(%Copy.facet.c7a) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.f4e, @EmptyRange.as.Iterate.impl.Next(%Copy.facet.c7a) [concrete] -// CHECK:STDOUT: %Optional.HasValue.type.a14: type = fn_type @Optional.HasValue, @Optional(%Copy.facet.c7a) [concrete] -// CHECK:STDOUT: %Optional.HasValue.4a9: %Optional.HasValue.type.a14 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.36e: type = fn_type @Optional.Get, @Optional(%Copy.facet.c7a) [concrete] -// CHECK:STDOUT: %Optional.Get.490: %Optional.Get.type.36e = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.has_value.value.ecc: type = struct_type {.has_value: bool, .value: %tuple.type.33d} [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.4a9, @Optional.HasValue(%Copy.facet.c7a) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.490, @Optional.Get(%Copy.facet.c7a) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.loc10_49.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc10_49.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.6: type = fn_type @Destroy.Op.loc10_49.6 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.7: type = fn_type @Destroy.Op.loc10_48 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.7: %Destroy.Op.type.790b3b.7 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.e1b: type = fn_type @Optional.Get, @Optional(%T.f84) [symbolic] +// CHECK:STDOUT: %Optional.Get.20c: %Optional.Get.type.e1b = struct_value () [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.224: type = fn_type @Optional.HasValue, @Optional(%T.f84) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.c4f: %Optional.HasValue.type.224 = struct_value () [symbolic] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.cfe: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%T.f84) [symbolic] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.0c8: %EmptyRange.as.Iterate.impl.Next.type.cfe = struct_value () [symbolic] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.647: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%T.f84) [symbolic] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.9e2: %EmptyRange.as.Iterate.impl.NewCursor.type.647 = struct_value () [symbolic] +// CHECK:STDOUT: %Iterate.impl_witness.e7c: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet.bb7) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.f09: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet.bb7) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.9b3: %EmptyRange.as.Iterate.impl.NewCursor.type.f09 = struct_value () [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.75f: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet.bb7) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.529: %EmptyRange.as.Iterate.impl.Next.type.75f = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.617, (%Iterate.impl_witness.e7c) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.dbf: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.286: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [concrete] +// CHECK:STDOUT: %.bb9: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.dbf, %Iterate.facet [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.9b3, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet.bb7) [concrete] +// CHECK:STDOUT: %.985: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.286, %Iterate.facet [concrete] +// CHECK:STDOUT: %Optional.8e2: type = class_type @Optional, @Optional(%Copy.facet.bb7) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.529, @EmptyRange.as.Iterate.impl.Next(%Copy.facet.bb7) [concrete] +// CHECK:STDOUT: %Optional.HasValue.type.472: type = fn_type @Optional.HasValue, @Optional(%Copy.facet.bb7) [concrete] +// CHECK:STDOUT: %Optional.HasValue.563: %Optional.HasValue.type.472 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.a18: type = fn_type @Optional.Get, @Optional(%Copy.facet.bb7) [concrete] +// CHECK:STDOUT: %Optional.Get.d38: %Optional.Get.type.a18 = struct_value () [concrete] +// 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.563, @Optional.HasValue(%Copy.facet.bb7) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.d38, @Optional.Get(%Copy.facet.bb7) [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: %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: } @@ -751,45 +751,45 @@ fn Run() { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.EmptyRange: %EmptyRange.type = import_ref Main//empty_range, EmptyRange, loaded [concrete = constants.%EmptyRange.generic] // CHECK:STDOUT: %Main.C: type = import_ref Main//empty_range, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.a8b: @EmptyRange.%EmptyRange.Make.type (%EmptyRange.Make.type.648) = import_ref Main//empty_range, loc5_21, loaded [symbolic = @EmptyRange.%EmptyRange.Make (constants.%EmptyRange.Make.317)] -// CHECK:STDOUT: %Core.import_ref.72a: @tuple.type.as.Copy.impl.27a.%tuple.type.as.Copy.impl.Op.type (%tuple.type.as.Copy.impl.Op.type.688) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @tuple.type.as.Copy.impl.27a.%tuple.type.as.Copy.impl.Op (constants.%tuple.type.as.Copy.impl.Op.0cf)] -// CHECK:STDOUT: %Copy.impl_witness_table.65e = impl_witness_table (%Core.import_ref.72a), @tuple.type.as.Copy.impl.27a [concrete] -// CHECK:STDOUT: %Main.import_ref.4f1: %C.as.Copy.impl.Op.type = import_ref Main//empty_range, loc19_40, loaded [concrete = constants.%C.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.f49 = impl_witness_table (%Main.import_ref.4f1), @C.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.f0a: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.f4b) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.40a)] -// CHECK:STDOUT: %Core.import_ref.0ac: @Optional.%Optional.Get.type (%Optional.Get.type.eeb) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.82b)] -// CHECK:STDOUT: %Main.import_ref.e5a = import_ref Main//empty_range, loc7_68, unloaded +// CHECK:STDOUT: %Main.import_ref.a9e: @EmptyRange.%EmptyRange.Make.type (%EmptyRange.Make.type.140) = import_ref Main//empty_range, loc5_21, loaded [symbolic = @EmptyRange.%EmptyRange.Make (constants.%EmptyRange.Make.0de)] +// CHECK:STDOUT: %Core.import_ref.44a: @tuple.type.as.Copy.impl.9bd.%tuple.type.as.Copy.impl.Op.type (%tuple.type.as.Copy.impl.Op.type.3ed) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @tuple.type.as.Copy.impl.9bd.%tuple.type.as.Copy.impl.Op (constants.%tuple.type.as.Copy.impl.Op.0f8)] +// CHECK:STDOUT: %Copy.impl_witness_table.828 = impl_witness_table (%Core.import_ref.44a), @tuple.type.as.Copy.impl.9bd [concrete] +// CHECK:STDOUT: %Main.import_ref.341: %C.as.Copy.impl.Op.type = import_ref Main//empty_range, loc19_40, loaded [concrete = constants.%C.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.506 = impl_witness_table (%Main.import_ref.341), @C.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.1db: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.224) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.c4f)] +// CHECK:STDOUT: %Core.import_ref.73b: @Optional.%Optional.Get.type (%Optional.Get.type.e1b) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.20c)] +// CHECK:STDOUT: %Main.import_ref.71a = import_ref Main//empty_range, loc7_68, unloaded // CHECK:STDOUT: %Main.import_ref.999 = import_ref Main//empty_range, loc7_68, unloaded -// CHECK:STDOUT: %Main.import_ref.e66: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor.type (%EmptyRange.as.Iterate.impl.NewCursor.type.9ee) = import_ref Main//empty_range, loc8_45, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor (constants.%EmptyRange.as.Iterate.impl.NewCursor.966)] -// CHECK:STDOUT: %Main.import_ref.1f9: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next.type (%EmptyRange.as.Iterate.impl.Next.type.7ff) = import_ref Main//empty_range, loc11_72, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next (constants.%EmptyRange.as.Iterate.impl.Next.4c5)] -// CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%Main.import_ref.e5a, %Main.import_ref.999, %Main.import_ref.e66, %Main.import_ref.1f9), @EmptyRange.as.Iterate.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.19c: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor.type (%EmptyRange.as.Iterate.impl.NewCursor.type.647) = import_ref Main//empty_range, loc8_45, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.NewCursor (constants.%EmptyRange.as.Iterate.impl.NewCursor.9e2)] +// CHECK:STDOUT: %Main.import_ref.ee4: @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next.type (%EmptyRange.as.Iterate.impl.Next.type.cfe) = import_ref Main//empty_range, loc11_72, loaded [symbolic = @EmptyRange.as.Iterate.impl.%EmptyRange.as.Iterate.impl.Next (constants.%EmptyRange.as.Iterate.impl.Next.0c8)] +// CHECK:STDOUT: %Iterate.impl_witness_table = impl_witness_table (%Main.import_ref.71a, %Main.import_ref.999, %Main.import_ref.19c, %Main.import_ref.ee4), @EmptyRange.as.Iterate.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.0d5 = value_binding_pattern a [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.0d5 = value_binding_pattern b [concrete] -// CHECK:STDOUT: %.loc10_19: %pattern_type.410 = tuple_pattern (%a.patt, %b.patt) [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.98b = value_binding_pattern a [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.98b = value_binding_pattern b [concrete] +// CHECK:STDOUT: %.loc10_19: %pattern_type.8b4 = tuple_pattern (%a.patt, %b.patt) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %EmptyRange.ref: %EmptyRange.type = name_ref EmptyRange, imports.%Main.EmptyRange [concrete = constants.%EmptyRange.generic] // CHECK:STDOUT: %C.ref.loc10_36: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc10_39: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %.loc10_40: %tuple.type.24b = tuple_literal (%C.ref.loc10_36, %C.ref.loc10_39) [concrete = constants.%tuple.201] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%tuple.type.33d, (constants.%Copy.impl_witness.7ba) [concrete = constants.%Copy.facet.c7a] -// CHECK:STDOUT: %.loc10_41: %Copy.type = converted %.loc10_40, %Copy.facet [concrete = constants.%Copy.facet.c7a] -// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet.c7a) [concrete = constants.%EmptyRange.29c] -// CHECK:STDOUT: %.loc10_42: %EmptyRange.Make.type.685 = specific_constant imports.%Main.import_ref.a8b, @EmptyRange(constants.%Copy.facet.c7a) [concrete = constants.%EmptyRange.Make.3e1] -// CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.685 = name_ref Make, %.loc10_42 [concrete = constants.%EmptyRange.Make.3e1] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet.c7a) [concrete = constants.%EmptyRange.Make.specific_fn] -// CHECK:STDOUT: %.loc10_48.1: ref %EmptyRange.29c = temporary_storage -// CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.29c to %.loc10_48.1 = call %EmptyRange.Make.specific_fn() -// CHECK:STDOUT: %.loc10_48.2: ref %EmptyRange.29c = temporary %.loc10_48.1, %EmptyRange.Make.call -// CHECK:STDOUT: %impl.elem2: %.18f = impl_witness_access constants.%Iterate.impl_witness.bf1, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.69f] +// CHECK:STDOUT: %.loc10_40: %tuple.type.24b = tuple_literal (%C.ref.loc10_36, %C.ref.loc10_39) [concrete = constants.%tuple.d95] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%tuple.type.748, (constants.%Copy.impl_witness.a7a) [concrete = constants.%Copy.facet.bb7] +// CHECK:STDOUT: %.loc10_41: %Copy.type = converted %.loc10_40, %Copy.facet [concrete = constants.%Copy.facet.bb7] +// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet.bb7) [concrete = constants.%EmptyRange.617] +// CHECK:STDOUT: %.loc10_42: %EmptyRange.Make.type.14e = specific_constant imports.%Main.import_ref.a9e, @EmptyRange(constants.%Copy.facet.bb7) [concrete = constants.%EmptyRange.Make.4ae] +// CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.14e = name_ref Make, %.loc10_42 [concrete = constants.%EmptyRange.Make.4ae] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet.bb7) [concrete = constants.%EmptyRange.Make.specific_fn] +// CHECK:STDOUT: %.loc10_48.1: ref %EmptyRange.617 = temporary_storage +// CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.617 to %.loc10_48.1 = call %EmptyRange.Make.specific_fn() +// CHECK:STDOUT: %.loc10_48.2: ref %EmptyRange.617 = temporary %.loc10_48.1, %EmptyRange.Make.call +// CHECK:STDOUT: %impl.elem2: %.bb9 = impl_witness_access constants.%Iterate.impl_witness.e7c, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.9b3] // CHECK:STDOUT: %bound_method.loc10_49.1: = bound_method %.loc10_48.2, %impl.elem2 -// CHECK:STDOUT: %specific_fn.loc10_49.1: = specific_function %impl.elem2, @EmptyRange.as.Iterate.impl.NewCursor(constants.%Copy.facet.c7a) [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_49.1: = specific_function %impl.elem2, @EmptyRange.as.Iterate.impl.NewCursor(constants.%Copy.facet.bb7) [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.specific_fn] // CHECK:STDOUT: %bound_method.loc10_49.2: = bound_method %.loc10_48.2, %specific_fn.loc10_49.1 -// CHECK:STDOUT: %.loc10_48.3: %EmptyRange.29c = acquire_value %.loc10_48.2 +// CHECK:STDOUT: %.loc10_48.3: %EmptyRange.617 = acquire_value %.loc10_48.2 // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.call: init %empty_struct_type = call %bound_method.loc10_49.2(%.loc10_48.3) // CHECK:STDOUT: %var: ref %empty_struct_type = var invalid // CHECK:STDOUT: assign %var, %EmptyRange.as.Iterate.impl.NewCursor.call @@ -797,35 +797,35 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: !for.next: // CHECK:STDOUT: %addr: %ptr.c28 = addr_of %var -// CHECK:STDOUT: %impl.elem3: %.528 = impl_witness_access constants.%Iterate.impl_witness.bf1, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.f4e] +// CHECK:STDOUT: %impl.elem3: %.985 = impl_witness_access constants.%Iterate.impl_witness.e7c, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.529] // CHECK:STDOUT: %bound_method.loc10_49.3: = bound_method %.loc10_48.2, %impl.elem3 -// CHECK:STDOUT: %specific_fn.loc10_49.2: = specific_function %impl.elem3, @EmptyRange.as.Iterate.impl.Next(constants.%Copy.facet.c7a) [concrete = constants.%EmptyRange.as.Iterate.impl.Next.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_49.2: = specific_function %impl.elem3, @EmptyRange.as.Iterate.impl.Next(constants.%Copy.facet.bb7) [concrete = constants.%EmptyRange.as.Iterate.impl.Next.specific_fn] // CHECK:STDOUT: %bound_method.loc10_49.4: = bound_method %.loc10_48.2, %specific_fn.loc10_49.2 -// CHECK:STDOUT: %.loc10_49.1: ref %Optional.0dc = temporary_storage -// CHECK:STDOUT: %.loc10_48.4: %EmptyRange.29c = acquire_value %.loc10_48.2 -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.0dc to %.loc10_49.1 = call %bound_method.loc10_49.4(%.loc10_48.4, %addr) -// CHECK:STDOUT: %.loc10_49.2: ref %Optional.0dc = temporary %.loc10_49.1, %EmptyRange.as.Iterate.impl.Next.call -// CHECK:STDOUT: %.loc10_49.3: %Optional.HasValue.type.a14 = specific_constant imports.%Core.import_ref.f0a, @Optional(constants.%Copy.facet.c7a) [concrete = constants.%Optional.HasValue.4a9] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.a14 = name_ref HasValue, %.loc10_49.3 [concrete = constants.%Optional.HasValue.4a9] +// CHECK:STDOUT: %.loc10_49.1: ref %Optional.8e2 = temporary_storage +// CHECK:STDOUT: %.loc10_48.4: %EmptyRange.617 = acquire_value %.loc10_48.2 +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.8e2 to %.loc10_49.1 = call %bound_method.loc10_49.4(%.loc10_48.4, %addr) +// CHECK:STDOUT: %.loc10_49.2: ref %Optional.8e2 = temporary %.loc10_49.1, %EmptyRange.as.Iterate.impl.Next.call +// CHECK:STDOUT: %.loc10_49.3: %Optional.HasValue.type.472 = specific_constant imports.%Core.import_ref.1db, @Optional(constants.%Copy.facet.bb7) [concrete = constants.%Optional.HasValue.563] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.472 = name_ref HasValue, %.loc10_49.3 [concrete = constants.%Optional.HasValue.563] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc10_49.2, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet.c7a) [concrete = constants.%Optional.HasValue.specific_fn] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet.bb7) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc10_49.5: = bound_method %.loc10_49.2, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc10_49.4: %Optional.0dc = acquire_value %.loc10_49.2 +// CHECK:STDOUT: %.loc10_49.4: %Optional.8e2 = acquire_value %.loc10_49.2 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc10_49.5(%.loc10_49.4) // CHECK:STDOUT: %.loc10_49.5: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc10_49.6: bool = converted %Optional.HasValue.call, %.loc10_49.5 // CHECK:STDOUT: if %.loc10_49.6 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc10_49.7: %Optional.Get.type.36e = specific_constant imports.%Core.import_ref.0ac, @Optional(constants.%Copy.facet.c7a) [concrete = constants.%Optional.Get.490] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.36e = name_ref Get, %.loc10_49.7 [concrete = constants.%Optional.Get.490] +// CHECK:STDOUT: %.loc10_49.7: %Optional.Get.type.a18 = specific_constant imports.%Core.import_ref.73b, @Optional(constants.%Copy.facet.bb7) [concrete = constants.%Optional.Get.d38] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.a18 = name_ref Get, %.loc10_49.7 [concrete = constants.%Optional.Get.d38] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc10_49.2, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet.c7a) [concrete = constants.%Optional.Get.specific_fn] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet.bb7) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc10_49.6: = bound_method %.loc10_49.2, %Optional.Get.specific_fn -// CHECK:STDOUT: %.loc10_49.8: ref %tuple.type.33d = temporary_storage -// CHECK:STDOUT: %.loc10_49.9: %Optional.0dc = acquire_value %.loc10_49.2 -// CHECK:STDOUT: %Optional.Get.call: init %tuple.type.33d to %.loc10_49.8 = call %bound_method.loc10_49.6(%.loc10_49.9) -// CHECK:STDOUT: %.loc10_49.10: ref %tuple.type.33d = temporary %.loc10_49.8, %Optional.Get.call +// CHECK:STDOUT: %.loc10_49.8: ref %tuple.type.748 = temporary_storage +// CHECK:STDOUT: %.loc10_49.9: %Optional.8e2 = acquire_value %.loc10_49.2 +// CHECK:STDOUT: %Optional.Get.call: init %tuple.type.748 to %.loc10_49.8 = call %bound_method.loc10_49.6(%.loc10_49.9) +// CHECK:STDOUT: %.loc10_49.10: ref %tuple.type.748 = temporary %.loc10_49.8, %Optional.Get.call // CHECK:STDOUT: %tuple.elem0: ref %C = tuple_access %.loc10_49.10, element0 // CHECK:STDOUT: %tuple.elem1: ref %C = tuple_access %.loc10_49.10, element1 // CHECK:STDOUT: %C.ref.loc10_12: type = name_ref C, imports.%Main.C [concrete = constants.%C] @@ -841,13 +841,13 @@ fn Run() { // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc10_49.1: = bound_method %.loc10_49.10, constants.%Destroy.Op.2dd605.3 +// 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.2dd605.6 +// 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.Op.bound.loc10_49.3: = bound_method %var, constants.%Destroy.Op.2dd605.1 +// CHECK:STDOUT: %Destroy.Op.bound.loc10_49.3: = bound_method %var, constants.%Destroy.Op.1a2547.1 // CHECK:STDOUT: %Destroy.Op.call.loc10_49.3: init %empty_tuple.type = call %Destroy.Op.bound.loc10_49.3(%var) -// CHECK:STDOUT: %Destroy.Op.bound.loc10_48: = bound_method %.loc10_48.2, constants.%Destroy.Op.2dd605.7 +// 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: // CHECK:STDOUT: } @@ -859,24 +859,24 @@ fn Run() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_49.3(%self.param: ref %tuple.type.33d) { +// CHECK:STDOUT: fn @Destroy.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: -// CHECK:STDOUT: fn @Destroy.Op.loc10_49.5(%self.param: ref %struct_type.has_value.value.ecc) { +// CHECK:STDOUT: fn @Destroy.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.0dc) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_49.6(%self.param: ref %Optional.8e2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_48(%self.param: ref %EmptyRange.29c) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_48(%self.param: ref %EmptyRange.617) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/builtin/adapted_type.carbon b/toolchain/check/testdata/function/builtin/adapted_type.carbon index adbfe531280f..8e731c9bbd18 100644 --- a/toolchain/check/testdata/function/builtin/adapted_type.carbon +++ b/toolchain/check/testdata/function/builtin/adapted_type.carbon @@ -59,26 +59,26 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: %IntLiteral: %IntLiteral.type = struct_value () [concrete] // CHECK:STDOUT: %MyIntLiteral: type = class_type @MyIntLiteral [concrete] // CHECK:STDOUT: %complete_type.972: = complete_type_witness Core.IntLiteral [concrete] -// CHECK:STDOUT: %pattern_type.a3c: type = pattern_type %MyIntLiteral [concrete] +// CHECK:STDOUT: %pattern_type.129: type = pattern_type %MyIntLiteral [concrete] // CHECK:STDOUT: %Int.type: type = fn_type @Int [concrete] // CHECK:STDOUT: %Int: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %MyInt32: type = class_type @MyInt32 [concrete] // CHECK:STDOUT: %int_32.be0: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %int_32.027: %MyIntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32.027 [concrete] -// CHECK:STDOUT: %.9de: Core.Form = init_form %MyInt32 [concrete] -// CHECK:STDOUT: %pattern_type.e51: type = pattern_type %MyInt32 [concrete] +// CHECK:STDOUT: %int_32.80c: %MyIntLiteral = int_value 32 [concrete] +// CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32.80c [concrete] +// CHECK:STDOUT: %.6a2: Core.Form = init_form %MyInt32 [concrete] +// CHECK:STDOUT: %pattern_type.af4: type = pattern_type %MyInt32 [concrete] // CHECK:STDOUT: %MyInt32.Make.type: type = fn_type @MyInt32.Make [concrete] // CHECK:STDOUT: %MyInt32.Make: %MyInt32.Make.type = struct_value () [concrete] -// CHECK:STDOUT: %complete_type.509: = complete_type_witness %i32.builtin [concrete] +// CHECK:STDOUT: %complete_type.113: = complete_type_witness %i32.builtin [concrete] // CHECK:STDOUT: %MyAdd.type: type = fn_type @MyAdd [concrete] // CHECK:STDOUT: %MyAdd: %MyAdd.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %int_1.1f0: %MyIntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %int_1.873: %MyInt32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.004: %MyIntLiteral = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.adf: %MyInt32 = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %int_2.e89: %MyIntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %int_2.06a: %MyInt32 = int_value 2 [concrete] +// CHECK:STDOUT: %int_2.6b8: %MyIntLiteral = int_value 2 [concrete] +// CHECK:STDOUT: %int_2.596: %MyInt32 = int_value 2 [concrete] // CHECK:STDOUT: %int_3: %MyInt32 = int_value 3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -102,8 +102,8 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: } // CHECK:STDOUT: %MyIntLiteral.decl: type = class_decl @MyIntLiteral [concrete = constants.%MyIntLiteral] {} {} // CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] { -// CHECK:STDOUT: %N.param_patt: %pattern_type.a3c = value_param_pattern [concrete] -// CHECK:STDOUT: %N.patt: %pattern_type.a3c = at_binding_pattern N, %N.param_patt [concrete] +// CHECK:STDOUT: %N.param_patt: %pattern_type.129 = value_param_pattern [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.129 = at_binding_pattern N, %N.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc10_28.1 [concrete] // CHECK:STDOUT: } { @@ -117,13 +117,13 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: } // CHECK:STDOUT: %MyInt32.decl: type = class_decl @MyInt32 [concrete = constants.%MyInt32] {} {} // CHECK:STDOUT: %MyInt32.Make.decl: %MyInt32.Make.type = fn_decl @MyInt32.Make [concrete = constants.%MyInt32.Make] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.a3c = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.a3c = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.e51 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.e51 = return_slot_pattern %return.param_patt, %MyInt32.ref.loc18 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.129 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.129 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.af4 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.af4 = return_slot_pattern %return.param_patt, %MyInt32.ref.loc18 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %MyInt32.ref.loc18: type = name_ref MyInt32, file.%MyInt32.decl [concrete = constants.%MyInt32] -// CHECK:STDOUT: %.loc18: Core.Form = init_form %MyInt32.ref.loc18 [concrete = constants.%.9de] +// CHECK:STDOUT: %.loc18: Core.Form = init_form %MyInt32.ref.loc18 [concrete = constants.%.6a2] // CHECK:STDOUT: %a.param.loc18: %MyIntLiteral = value_param call_param0 // CHECK:STDOUT: %MyIntLiteral.ref.loc18: type = name_ref MyIntLiteral, file.%MyIntLiteral.decl [concrete = constants.%MyIntLiteral] // CHECK:STDOUT: %a.loc18: %MyIntLiteral = value_binding a, %a.param.loc18 @@ -131,15 +131,15 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: %return.loc18: ref %MyInt32 = return_slot %return.param.loc18 // CHECK:STDOUT: } // CHECK:STDOUT: %MyAdd.decl: %MyAdd.type = fn_decl @MyAdd [concrete = constants.%MyAdd] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.e51 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.e51 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.e51 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.e51 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.e51 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.e51 = return_slot_pattern %return.param_patt, %MyInt32.ref.loc20_37 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.af4 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.af4 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.af4 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.af4 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.af4 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.af4 = return_slot_pattern %return.param_patt, %MyInt32.ref.loc20_37 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %MyInt32.ref.loc20_37: type = name_ref MyInt32, file.%MyInt32.decl [concrete = constants.%MyInt32] -// CHECK:STDOUT: %.loc20: Core.Form = init_form %MyInt32.ref.loc20_37 [concrete = constants.%.9de] +// CHECK:STDOUT: %.loc20: Core.Form = init_form %MyInt32.ref.loc20_37 [concrete = constants.%.6a2] // CHECK:STDOUT: %a.param: %MyInt32 = value_param call_param0 // CHECK:STDOUT: %MyInt32.ref.loc20_13: type = name_ref MyInt32, file.%MyInt32.decl [concrete = constants.%MyInt32] // CHECK:STDOUT: %a: %MyInt32 = value_binding a, %a.param @@ -150,8 +150,8 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: %return: ref %MyInt32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.e51 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.e51 = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.af4 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.af4 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %MyInt32 = var %v.var_patt [concrete] // CHECK:STDOUT: %MyInt32.ref: type = name_ref MyInt32, %MyInt32.decl [concrete = constants.%MyInt32] @@ -176,27 +176,27 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, file.%Int.decl [concrete = constants.%Int] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32.be0] // CHECK:STDOUT: %MyIntLiteral.ref: type = name_ref MyIntLiteral, file.%MyIntLiteral.decl [concrete = constants.%MyIntLiteral] -// CHECK:STDOUT: %.loc13_16.1: %MyIntLiteral = as_compatible %int_32 [concrete = constants.%int_32.027] -// CHECK:STDOUT: %.loc13_16.2: %MyIntLiteral = converted %int_32, %.loc13_16.1 [concrete = constants.%int_32.027] +// CHECK:STDOUT: %.loc13_16.1: %MyIntLiteral = as_compatible %int_32 [concrete = constants.%int_32.80c] +// CHECK:STDOUT: %.loc13_16.2: %MyIntLiteral = converted %int_32, %.loc13_16.1 [concrete = constants.%int_32.80c] // CHECK:STDOUT: %Int.call: init type = call %Int.ref(%.loc13_16.2) [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc13_32.1: type = value_of_initializer %Int.call [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc13_32.2: type = converted %Int.call, %.loc13_32.1 [concrete = constants.%i32.builtin] // CHECK:STDOUT: adapt_decl %.loc13_32.2 [concrete] // CHECK:STDOUT: %MyInt32.Make.decl: %MyInt32.Make.type = fn_decl @MyInt32.Make [concrete = constants.%MyInt32.Make] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.a3c = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.a3c = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.e51 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.e51 = return_slot_pattern %return.param_patt, %MyInt32.ref.loc18 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.129 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.129 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.af4 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.af4 = return_slot_pattern %return.param_patt, %MyInt32.ref.loc18 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %MyInt32.ref.loc15: type = name_ref MyInt32, file.%MyInt32.decl [concrete = constants.%MyInt32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %MyInt32.ref.loc15 [concrete = constants.%.9de] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %MyInt32.ref.loc15 [concrete = constants.%.6a2] // CHECK:STDOUT: %a.param.loc15: %MyIntLiteral = value_param call_param0 // CHECK:STDOUT: %MyIntLiteral.ref.loc15: type = name_ref MyIntLiteral, file.%MyIntLiteral.decl [concrete = constants.%MyIntLiteral] // CHECK:STDOUT: %a.loc15: %MyIntLiteral = value_binding a, %a.param.loc15 // CHECK:STDOUT: %return.param.loc15: ref %MyInt32 = out_param call_param1 // CHECK:STDOUT: %return.loc15: ref %MyInt32 = return_slot %return.param.loc15 // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%i32.builtin [concrete = constants.%complete_type.509] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%i32.builtin [concrete = constants.%complete_type.113] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -222,20 +222,20 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: %Make.ref.loc22_31: %MyInt32.Make.type = name_ref Make, @MyInt32.%MyInt32.Make.decl [concrete = constants.%MyInt32.Make] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %MyIntLiteral.ref.loc22_42: type = name_ref MyIntLiteral, file.%MyIntLiteral.decl [concrete = constants.%MyIntLiteral] -// CHECK:STDOUT: %.loc22_39.1: %MyIntLiteral = as_compatible %int_1 [concrete = constants.%int_1.1f0] -// CHECK:STDOUT: %.loc22_39.2: %MyIntLiteral = converted %int_1, %.loc22_39.1 [concrete = constants.%int_1.1f0] -// CHECK:STDOUT: %MyInt32.Make.call.loc22_54: init %MyInt32 = call %Make.ref.loc22_31(%.loc22_39.2) [concrete = constants.%int_1.873] +// CHECK:STDOUT: %.loc22_39.1: %MyIntLiteral = as_compatible %int_1 [concrete = constants.%int_1.004] +// CHECK:STDOUT: %.loc22_39.2: %MyIntLiteral = converted %int_1, %.loc22_39.1 [concrete = constants.%int_1.004] +// CHECK:STDOUT: %MyInt32.Make.call.loc22_54: init %MyInt32 = call %Make.ref.loc22_31(%.loc22_39.2) [concrete = constants.%int_1.adf] // CHECK:STDOUT: %MyInt32.ref.loc22_57: type = name_ref MyInt32, file.%MyInt32.decl [concrete = constants.%MyInt32] // CHECK:STDOUT: %Make.ref.loc22_64: %MyInt32.Make.type = name_ref Make, @MyInt32.%MyInt32.Make.decl [concrete = constants.%MyInt32.Make] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %MyIntLiteral.ref.loc22_75: type = name_ref MyIntLiteral, file.%MyIntLiteral.decl [concrete = constants.%MyIntLiteral] -// CHECK:STDOUT: %.loc22_72.1: %MyIntLiteral = as_compatible %int_2 [concrete = constants.%int_2.e89] -// CHECK:STDOUT: %.loc22_72.2: %MyIntLiteral = converted %int_2, %.loc22_72.1 [concrete = constants.%int_2.e89] -// CHECK:STDOUT: %MyInt32.Make.call.loc22_87: init %MyInt32 = call %Make.ref.loc22_64(%.loc22_72.2) [concrete = constants.%int_2.06a] -// CHECK:STDOUT: %.loc22_54.1: %MyInt32 = value_of_initializer %MyInt32.Make.call.loc22_54 [concrete = constants.%int_1.873] -// CHECK:STDOUT: %.loc22_54.2: %MyInt32 = converted %MyInt32.Make.call.loc22_54, %.loc22_54.1 [concrete = constants.%int_1.873] -// CHECK:STDOUT: %.loc22_87.1: %MyInt32 = value_of_initializer %MyInt32.Make.call.loc22_87 [concrete = constants.%int_2.06a] -// CHECK:STDOUT: %.loc22_87.2: %MyInt32 = converted %MyInt32.Make.call.loc22_87, %.loc22_87.1 [concrete = constants.%int_2.06a] +// CHECK:STDOUT: %.loc22_72.1: %MyIntLiteral = as_compatible %int_2 [concrete = constants.%int_2.6b8] +// CHECK:STDOUT: %.loc22_72.2: %MyIntLiteral = converted %int_2, %.loc22_72.1 [concrete = constants.%int_2.6b8] +// CHECK:STDOUT: %MyInt32.Make.call.loc22_87: init %MyInt32 = call %Make.ref.loc22_64(%.loc22_72.2) [concrete = constants.%int_2.596] +// CHECK:STDOUT: %.loc22_54.1: %MyInt32 = value_of_initializer %MyInt32.Make.call.loc22_54 [concrete = constants.%int_1.adf] +// CHECK:STDOUT: %.loc22_54.2: %MyInt32 = converted %MyInt32.Make.call.loc22_54, %.loc22_54.1 [concrete = constants.%int_1.adf] +// CHECK:STDOUT: %.loc22_87.1: %MyInt32 = value_of_initializer %MyInt32.Make.call.loc22_87 [concrete = constants.%int_2.596] +// CHECK:STDOUT: %.loc22_87.2: %MyInt32 = converted %MyInt32.Make.call.loc22_87, %.loc22_87.1 [concrete = constants.%int_2.596] // CHECK:STDOUT: %MyAdd.call: init %MyInt32 = call %MyAdd.ref(%.loc22_54.2, %.loc22_87.2) [concrete = constants.%int_3] // CHECK:STDOUT: assign file.%v.var, %MyAdd.call // CHECK:STDOUT: return @@ -248,7 +248,7 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.a3c: type = pattern_type %MyIntLiteral [concrete] +// CHECK:STDOUT: %pattern_type.129: type = pattern_type %MyIntLiteral [concrete] // CHECK:STDOUT: %.805: Core.Form = init_form type [concrete] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %Int.type: type = fn_type @Int [concrete] @@ -262,8 +262,8 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: } // CHECK:STDOUT: %MyIntLiteral.decl: type = class_decl @MyIntLiteral [concrete = constants.%MyIntLiteral] {} {} // CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] { -// CHECK:STDOUT: %N.param_patt: %pattern_type.a3c = value_param_pattern [concrete] -// CHECK:STDOUT: %N.patt: %pattern_type.a3c = at_binding_pattern N, %N.param_patt [concrete] +// CHECK:STDOUT: %N.param_patt: %pattern_type.129 = value_param_pattern [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.129 = at_binding_pattern N, %N.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc12_28.1 [concrete] // CHECK:STDOUT: } { diff --git a/toolchain/check/testdata/function/builtin/call.carbon b/toolchain/check/testdata/function/builtin/call.carbon index 42f2685797fc..c22c8e4ac586 100644 --- a/toolchain/check/testdata/function/builtin/call.carbon +++ b/toolchain/check/testdata/function/builtin/call.carbon @@ -27,57 +27,57 @@ fn RuntimeCall(a: i32, b: i32) -> i32 { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %Add.type: type = fn_type @Add [concrete] // CHECK:STDOUT: %Add: %Add.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %From: Core.IntLiteral = symbolic_binding From, 0 [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.f73: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.34b: %Int.as.ImplicitAs.impl.Convert.type.f73 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.840: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.840) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet.840 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.062: = impl_witness imports.%ImplicitAs.impl_witness_table.eac, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.337: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.64e: %Int.as.ImplicitAs.impl.Convert.type.337 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.89e: %ImplicitAs.type.ace = facet_value %i32, (%ImplicitAs.impl_witness.062) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b68: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.89e) [concrete] -// CHECK:STDOUT: %.7a9: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b68, %ImplicitAs.facet.89e [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %int_3.6cc, %Int.as.ImplicitAs.impl.Convert.64e [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.64e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.353: = bound_method %int_3.6cc, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.48d: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.0f9: %Int.as.ImplicitAs.impl.Convert.type.48d = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.9f1: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.9f1) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet.9f1 [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: %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.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: %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: %int_3.410: %i32 = int_value 3 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.416: = impl_witness imports.%ImplicitAs.impl_witness_table.b8b, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.683: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.69e: %Int.as.ImplicitAs.impl.Convert.type.683 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.657: %ImplicitAs.type.7cb = facet_value %i32, (%ImplicitAs.impl_witness.416) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.dc6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.657) [concrete] +// CHECK:STDOUT: %.b08: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.dc6, %ImplicitAs.facet.657 [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %int_3.410, %Int.as.ImplicitAs.impl.Convert.69e [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.69e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.545: = bound_method %int_3.410, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_3.1ba, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.bec: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.771: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.f71: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%array_type) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.ea5: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%array_type) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.950: %T.as.DefaultOrUnformed.impl.Op.type.ea5 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %array_type, (%DefaultOrUnformed.impl_witness.f71) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.950, @T.as.DefaultOrUnformed.impl.Op(%array_type) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.e6f: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%array_type) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.f29: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%array_type) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.2c9: %T.as.DefaultOrUnformed.impl.Op.type.f29 = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %array_type, (%DefaultOrUnformed.impl_witness.e6f) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.2c9, @T.as.DefaultOrUnformed.impl.Op(%array_type) [concrete] // CHECK:STDOUT: %RuntimeCall.type: type = fn_type @RuntimeCall [concrete] // CHECK:STDOUT: %RuntimeCall: %RuntimeCall.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -91,14 +91,14 @@ fn RuntimeCall(a: i32, b: i32) -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.835: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.f73) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.34b)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.eac = impl_witness_table (%Core.import_ref.835), @Int.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.32e: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.48d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.0f9)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b8b = impl_witness_table (%Core.import_ref.32e), @Int.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -110,15 +110,15 @@ fn RuntimeCall(a: i32, b: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Add.decl: %Add.type = fn_decl @Add [concrete = constants.%Add] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc15_27 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc15_27 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_27: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_27 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_27 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc15_11: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: %i32 = value_binding a, %a.param @@ -129,8 +129,8 @@ fn RuntimeCall(a: i32, b: i32) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %arr.patt: %pattern_type.bec = ref_binding_pattern arr [concrete] -// CHECK:STDOUT: %arr.var_patt: %pattern_type.bec = var_pattern %arr.patt [concrete] +// CHECK:STDOUT: %arr.patt: %pattern_type.771 = ref_binding_pattern arr [concrete] +// CHECK:STDOUT: %arr.var_patt: %pattern_type.771 = var_pattern %arr.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %arr.var: ref %array_type = var %arr.var_patt [concrete] // CHECK:STDOUT: %.loc17_30: type = splice_block %array_type [concrete = constants.%array_type] { @@ -138,27 +138,27 @@ fn RuntimeCall(a: i32, b: i32) -> i32 { // CHECK:STDOUT: %Add.ref: %Add.type = name_ref Add, %Add.decl [concrete = constants.%Add] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc17_25: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc17_25.1: = bound_method %int_1, %impl.elem0.loc17_25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc17_25: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc17_25.1: = bound_method %int_1, %impl.elem0.loc17_25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc17_25: = specific_function %impl.elem0.loc17_25, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_25.2: = bound_method %int_1, %specific_fn.loc17_25 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_25: init %i32 = call %bound_method.loc17_25.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc17_25.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_25 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc17_25.2: %i32 = converted %int_1, %.loc17_25.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc17_28: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc17_28.1: = bound_method %int_2, %impl.elem0.loc17_28 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc17_25.2: = bound_method %int_1, %specific_fn.loc17_25 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_25: init %i32 = call %bound_method.loc17_25.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc17_25.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_25 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc17_25.2: %i32 = converted %int_1, %.loc17_25.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc17_28: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc17_28.1: = bound_method %int_2, %impl.elem0.loc17_28 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc17_28: = specific_function %impl.elem0.loc17_28, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_28.2: = bound_method %int_2, %specific_fn.loc17_28 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_28: init %i32 = call %bound_method.loc17_28.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc17_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_28 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc17_28.2: %i32 = converted %int_2, %.loc17_28.1 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %Add.call: init %i32 = call %Add.ref(%.loc17_25.2, %.loc17_28.2) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %impl.elem0.loc17_29: %.7a9 = impl_witness_access constants.%ImplicitAs.impl_witness.062, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.64e] +// CHECK:STDOUT: %bound_method.loc17_28.2: = bound_method %int_2, %specific_fn.loc17_28 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_28: init %i32 = call %bound_method.loc17_28.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc17_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_28 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc17_28.2: %i32 = converted %int_2, %.loc17_28.1 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %Add.call: init %i32 = call %Add.ref(%.loc17_25.2, %.loc17_28.2) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %impl.elem0.loc17_29: %.b08 = impl_witness_access constants.%ImplicitAs.impl_witness.416, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.69e] // CHECK:STDOUT: %bound_method.loc17_29.1: = bound_method %Add.call, %impl.elem0.loc17_29 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc17_29: = specific_function %impl.elem0.loc17_29, @Int.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Int.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_29.2: = bound_method %Add.call, %specific_fn.loc17_29 [concrete = constants.%bound_method.353] -// CHECK:STDOUT: %.loc17_29.1: %i32 = value_of_initializer %Add.call [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc17_29.2: %i32 = converted %Add.call, %.loc17_29.1 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc17_29.2: = bound_method %Add.call, %specific_fn.loc17_29 [concrete = constants.%bound_method.545] +// CHECK:STDOUT: %.loc17_29.1: %i32 = value_of_initializer %Add.call [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc17_29.2: %i32 = converted %Add.call, %.loc17_29.1 [concrete = constants.%int_3.410] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.loc17_29.2(%.loc17_29.2) [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc17_29.3: Core.IntLiteral = value_of_initializer %Int.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc17_29.4: Core.IntLiteral = converted %Add.call, %.loc17_29.3 [concrete = constants.%int_3.1ba] @@ -166,15 +166,15 @@ fn RuntimeCall(a: i32, b: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %arr: ref %array_type = ref_binding arr, %arr.var [concrete = %arr.var] // CHECK:STDOUT: %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [concrete = constants.%RuntimeCall] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc19_35 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc19_35 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc19_35: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc19: Core.Form = init_form %i32.loc19_35 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc19: Core.Form = init_form %i32.loc19_35 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc19_19: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: %i32 = value_binding a, %a.param @@ -199,11 +199,11 @@ fn RuntimeCall(a: i32, b: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%array_type, (constants.%DefaultOrUnformed.impl_witness.f71) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%array_type, (constants.%DefaultOrUnformed.impl_witness.e6f) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc17_31.1: %DefaultOrUnformed.type = converted constants.%array_type, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc17_31.1 [concrete = constants.%array_type] // CHECK:STDOUT: %.loc17_31.2: type = converted %.loc17_31.1, %as_type [concrete = constants.%array_type] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.950, @T.as.DefaultOrUnformed.impl.Op(constants.%array_type) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.2c9, @T.as.DefaultOrUnformed.impl.Op(constants.%array_type) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %.loc17_1: ref %array_type = splice_block file.%arr.var [concrete = file.%arr.var] {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %array_type to %.loc17_1 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign file.%arr.var, %T.as.DefaultOrUnformed.impl.Op.call diff --git a/toolchain/check/testdata/function/builtin/call_from_operator.carbon b/toolchain/check/testdata/function/builtin/call_from_operator.carbon index 77defb473808..8b5c0f2fc580 100644 --- a/toolchain/check/testdata/function/builtin/call_from_operator.carbon +++ b/toolchain/check/testdata/function/builtin/call_from_operator.carbon @@ -66,92 +66,92 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %AddWith.type.be4: type = generic_interface_type @AddWith [concrete] -// CHECK:STDOUT: %AddWith.generic: %AddWith.type.be4 = struct_value () [concrete] -// CHECK:STDOUT: %AddWith.type.893: type = facet_type <@AddWith, @AddWith(%T)> [symbolic] -// CHECK:STDOUT: %Self.729: %AddWith.type.893 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type.77a: type = facet_access_type %Self.729 [symbolic] -// CHECK:STDOUT: %pattern_type.bc6: type = pattern_type %Self.as_type.77a [symbolic] -// CHECK:STDOUT: %.bf3: Core.Form = init_form %Self.as_type.77a [symbolic] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.000: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%T, %Self.729) [symbolic] -// CHECK:STDOUT: %AddWith.WithSelf.Op.e4c: %AddWith.WithSelf.Op.type.000 = struct_value () [symbolic] -// CHECK:STDOUT: %AddWith.assoc_type.5da: type = assoc_entity_type @AddWith, @AddWith(%T) [symbolic] -// CHECK:STDOUT: %assoc0.572: %AddWith.assoc_type.5da = assoc_entity element0, @AddWith.WithSelf.%AddWith.WithSelf.Op.decl [symbolic] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.799: type = facet_type <@As, @As(%T)> [symbolic] -// CHECK:STDOUT: %Self.6e1: %As.type.799 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type.05f: type = facet_access_type %Self.6e1 [symbolic] -// CHECK:STDOUT: %pattern_type.950: type = pattern_type %Self.as_type.05f [symbolic] +// CHECK:STDOUT: %AddWith.type.2ef: type = generic_interface_type @AddWith [concrete] +// CHECK:STDOUT: %AddWith.generic: %AddWith.type.2ef = struct_value () [concrete] +// CHECK:STDOUT: %AddWith.type.7e9: type = facet_type <@AddWith, @AddWith(%T)> [symbolic] +// CHECK:STDOUT: %Self.8d5: %AddWith.type.7e9 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type.48c: type = facet_access_type %Self.8d5 [symbolic] +// CHECK:STDOUT: %pattern_type.131: type = pattern_type %Self.as_type.48c [symbolic] +// CHECK:STDOUT: %.e80: Core.Form = init_form %Self.as_type.48c [symbolic] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.e49: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%T, %Self.8d5) [symbolic] +// CHECK:STDOUT: %AddWith.WithSelf.Op.adc: %AddWith.WithSelf.Op.type.e49 = struct_value () [symbolic] +// CHECK:STDOUT: %AddWith.assoc_type.588: type = assoc_entity_type @AddWith, @AddWith(%T) [symbolic] +// CHECK:STDOUT: %assoc0.aed: %AddWith.assoc_type.588 = assoc_entity element0, @AddWith.WithSelf.%AddWith.WithSelf.Op.decl [symbolic] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.c5f: type = facet_type <@As, @As(%T)> [symbolic] +// CHECK:STDOUT: %Self.f80: %As.type.c5f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type.1ce: type = facet_access_type %Self.f80 [symbolic] +// CHECK:STDOUT: %pattern_type.a01: type = pattern_type %Self.as_type.1ce [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %As.WithSelf.Convert.type.53f: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%T, %Self.6e1) [symbolic] -// CHECK:STDOUT: %As.WithSelf.Convert.a81: %As.WithSelf.Convert.type.53f = struct_value () [symbolic] -// CHECK:STDOUT: %As.assoc_type.08c: type = assoc_entity_type @As, @As(%T) [symbolic] -// CHECK:STDOUT: %assoc0.2e4: %As.assoc_type.08c = assoc_entity element0, @As.WithSelf.%As.WithSelf.Convert.decl [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6e6: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] -// CHECK:STDOUT: %Self.7b0: %ImplicitAs.type.6e6 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type.f04: type = facet_access_type %Self.7b0 [symbolic] -// CHECK:STDOUT: %pattern_type.030: type = pattern_type %Self.as_type.f04 [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.72e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%T, %Self.7b0) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.f10: %ImplicitAs.WithSelf.Convert.type.72e = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.bf1: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%T) [symbolic] -// CHECK:STDOUT: %assoc0.cde: %ImplicitAs.assoc_type.bf1 = assoc_entity element0, @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.decl [symbolic] +// CHECK:STDOUT: %As.WithSelf.Convert.type.640: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%T, %Self.f80) [symbolic] +// CHECK:STDOUT: %As.WithSelf.Convert.896: %As.WithSelf.Convert.type.640 = struct_value () [symbolic] +// CHECK:STDOUT: %As.assoc_type.b40: type = assoc_entity_type @As, @As(%T) [symbolic] +// CHECK:STDOUT: %assoc0.a44: %As.assoc_type.b40 = assoc_entity element0, @As.WithSelf.%As.WithSelf.Convert.decl [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.3aa: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] +// CHECK:STDOUT: %Self.bb1: %ImplicitAs.type.3aa = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type.5b8: type = facet_access_type %Self.bb1 [symbolic] +// CHECK:STDOUT: %pattern_type.701: type = pattern_type %Self.as_type.5b8 [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.920: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%T, %Self.bb1) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.293: %ImplicitAs.WithSelf.Convert.type.920 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.fcc: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%T) [symbolic] +// CHECK:STDOUT: %assoc0.313: %ImplicitAs.assoc_type.fcc = assoc_entity element0, @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.decl [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %AddWith.type.4d9: type = facet_type <@AddWith, @AddWith(%i32.builtin)> [concrete] +// CHECK:STDOUT: %AddWith.type.7c6: type = facet_type <@AddWith, @AddWith(%i32.builtin)> [concrete] // CHECK:STDOUT: %AddWith.impl_witness: = impl_witness @i32.builtin.as.AddWith.impl.%AddWith.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.5d8: %AddWith.type.4d9 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.5a6: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%i32.builtin, %Self.729) [symbolic] -// CHECK:STDOUT: %AddWith.WithSelf.Op.e8a: %AddWith.WithSelf.Op.type.5a6 = struct_value () [symbolic] -// CHECK:STDOUT: %AddWith.assoc_type.b31: type = assoc_entity_type @AddWith, @AddWith(%i32.builtin) [concrete] -// CHECK:STDOUT: %assoc0.f84: %AddWith.assoc_type.b31 = assoc_entity element0, @AddWith.WithSelf.%AddWith.WithSelf.Op.decl [concrete] +// CHECK:STDOUT: %Self.9ab: %AddWith.type.7c6 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.aad: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%i32.builtin, %Self.8d5) [symbolic] +// CHECK:STDOUT: %AddWith.WithSelf.Op.e15: %AddWith.WithSelf.Op.type.aad = struct_value () [symbolic] +// CHECK:STDOUT: %AddWith.assoc_type.439: type = assoc_entity_type @AddWith, @AddWith(%i32.builtin) [concrete] +// CHECK:STDOUT: %assoc0.7f8: %AddWith.assoc_type.439 = assoc_entity element0, @AddWith.WithSelf.%AddWith.WithSelf.Op.decl [concrete] // CHECK:STDOUT: %pattern_type.956: type = pattern_type %i32.builtin [concrete] // CHECK:STDOUT: %.9cb: Core.Form = init_form %i32.builtin [concrete] // CHECK:STDOUT: %i32.builtin.as.AddWith.impl.Op.type: type = fn_type @i32.builtin.as.AddWith.impl.Op [concrete] // CHECK:STDOUT: %i32.builtin.as.AddWith.impl.Op: %i32.builtin.as.AddWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %AddWith.facet: %AddWith.type.4d9 = facet_value %i32.builtin, (%AddWith.impl_witness) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.3a1: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%i32.builtin, %AddWith.facet) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.fce: %AddWith.WithSelf.Op.type.3a1 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.5d6: type = facet_type <@As, @As(%i32.builtin)> [concrete] +// CHECK:STDOUT: %AddWith.facet: %AddWith.type.7c6 = facet_value %i32.builtin, (%AddWith.impl_witness) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.2dc: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%i32.builtin, %AddWith.facet) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.921: %AddWith.WithSelf.Op.type.2dc = struct_value () [concrete] +// CHECK:STDOUT: %As.type.dfb: type = facet_type <@As, @As(%i32.builtin)> [concrete] // CHECK:STDOUT: %As.impl_witness: = impl_witness @Core.IntLiteral.as.As.impl.%As.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.6c7: %As.type.5d6 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %As.WithSelf.Convert.type.482: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32.builtin, %Self.6e1) [symbolic] -// CHECK:STDOUT: %As.WithSelf.Convert.689: %As.WithSelf.Convert.type.482 = struct_value () [symbolic] -// CHECK:STDOUT: %As.assoc_type.b5c: type = assoc_entity_type @As, @As(%i32.builtin) [concrete] -// CHECK:STDOUT: %assoc0.619: %As.assoc_type.b5c = assoc_entity element0, @As.WithSelf.%As.WithSelf.Convert.decl [concrete] +// CHECK:STDOUT: %Self.2c0: %As.type.dfb = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %As.WithSelf.Convert.type.d9c: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32.builtin, %Self.f80) [symbolic] +// CHECK:STDOUT: %As.WithSelf.Convert.140: %As.WithSelf.Convert.type.d9c = struct_value () [symbolic] +// CHECK:STDOUT: %As.assoc_type.7f2: type = assoc_entity_type @As, @As(%i32.builtin) [concrete] +// CHECK:STDOUT: %assoc0.402: %As.assoc_type.7f2 = assoc_entity element0, @As.WithSelf.%As.WithSelf.Convert.decl [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type: type = fn_type @Core.IntLiteral.as.As.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert: %Core.IntLiteral.as.As.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.5d6 = facet_value Core.IntLiteral, (%As.impl_witness) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.192: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32.builtin, %As.facet) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.7de: %As.WithSelf.Convert.type.192 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.7d9: type = facet_type <@ImplicitAs, @ImplicitAs(%i32.builtin)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.ca9: = impl_witness @Core.IntLiteral.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.7c0: %ImplicitAs.type.7d9 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.357: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32.builtin, %Self.7b0) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.538: %ImplicitAs.WithSelf.Convert.type.357 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.317: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%i32.builtin) [concrete] -// CHECK:STDOUT: %assoc0.e0b: %ImplicitAs.assoc_type.317 = assoc_entity element0, @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.decl [concrete] +// CHECK:STDOUT: %As.facet: %As.type.dfb = facet_value Core.IntLiteral, (%As.impl_witness) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.e08: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32.builtin, %As.facet) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.5a5: %As.WithSelf.Convert.type.e08 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.9df: type = facet_type <@ImplicitAs, @ImplicitAs(%i32.builtin)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.300: = impl_witness @Core.IntLiteral.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete] +// CHECK:STDOUT: %Self.19a: %ImplicitAs.type.9df = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.247: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32.builtin, %Self.bb1) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.e9a: %ImplicitAs.WithSelf.Convert.type.247 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.081: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%i32.builtin) [concrete] +// CHECK:STDOUT: %assoc0.0d1: %ImplicitAs.assoc_type.081 = assoc_entity element0, @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.decl [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.cb6: %ImplicitAs.type.7d9 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.ca9) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.93f: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32.builtin, %ImplicitAs.facet.cb6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.ab3: %ImplicitAs.WithSelf.Convert.type.93f = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.f34: = impl_witness @i32.builtin.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.aad: %ImplicitAs.type.ace = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.053: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %Self.7b0) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.232: %ImplicitAs.WithSelf.Convert.type.053 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.175: type = assoc_entity_type @ImplicitAs, @ImplicitAs(Core.IntLiteral) [concrete] -// CHECK:STDOUT: %assoc0.186: %ImplicitAs.assoc_type.175 = assoc_entity element0, @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.decl [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.18f: %ImplicitAs.type.9df = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.300) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.20b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32.builtin, %ImplicitAs.facet.18f) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.b9f: %ImplicitAs.WithSelf.Convert.type.20b = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.9d7: = impl_witness @i32.builtin.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete] +// CHECK:STDOUT: %Self.c40: %ImplicitAs.type.7cb = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.46f: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %Self.bb1) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.a78: %ImplicitAs.WithSelf.Convert.type.46f = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.e73: type = assoc_entity_type @ImplicitAs, @ImplicitAs(Core.IntLiteral) [concrete] +// CHECK:STDOUT: %assoc0.a37: %ImplicitAs.assoc_type.e73 = assoc_entity element0, @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.decl [concrete] // CHECK:STDOUT: %.f7d: Core.Form = init_form Core.IntLiteral [concrete] // CHECK:STDOUT: %i32.builtin.as.ImplicitAs.impl.Convert.type: type = fn_type @i32.builtin.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %i32.builtin.as.ImplicitAs.impl.Convert: %i32.builtin.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.35c: %ImplicitAs.type.ace = facet_value %i32.builtin, (%ImplicitAs.impl_witness.f34) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.63f: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.35c) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.e3e: %ImplicitAs.WithSelf.Convert.type.63f = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.776: %ImplicitAs.type.7cb = facet_value %i32.builtin, (%ImplicitAs.impl_witness.9d7) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.dc2: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.776) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.c73: %ImplicitAs.WithSelf.Convert.type.dc2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -190,7 +190,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %return.param: ref type = out_param call_param1 // CHECK:STDOUT: %return: ref type = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %AddWith.decl: %AddWith.type.be4 = interface_decl @AddWith [concrete = constants.%AddWith.generic] { +// CHECK:STDOUT: %AddWith.decl: %AddWith.type.2ef = interface_decl @AddWith [concrete = constants.%AddWith.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_23.1: type = splice_block %.loc7_23.2 [concrete = type] { @@ -199,7 +199,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc7_20.2: type = symbolic_binding T, 0 [symbolic = %T.loc7_20.1 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %As.decl: %As.type.909 = interface_decl @As [concrete = constants.%As.generic] { +// CHECK:STDOUT: %As.decl: %As.type.116 = interface_decl @As [concrete = constants.%As.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_18.1: type = splice_block %.loc11_18.2 [concrete = type] { @@ -208,7 +208,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc11_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc11_15.1 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %ImplicitAs.decl: %ImplicitAs.type.754 = interface_decl @ImplicitAs [concrete = constants.%ImplicitAs.generic] { +// CHECK:STDOUT: %ImplicitAs.decl: %ImplicitAs.type.0ff = interface_decl @ImplicitAs [concrete = constants.%ImplicitAs.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_26.1: type = splice_block %.loc15_26.2 [concrete = type] { @@ -219,36 +219,36 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @i32.builtin.as.AddWith.impl [concrete] {} { // CHECK:STDOUT: %.loc19_6: type = type_literal constants.%i32.builtin [concrete = constants.%i32.builtin] -// CHECK:STDOUT: %AddWith.ref: %AddWith.type.be4 = name_ref AddWith, file.%AddWith.decl [concrete = constants.%AddWith.generic] +// CHECK:STDOUT: %AddWith.ref: %AddWith.type.2ef = name_ref AddWith, file.%AddWith.decl [concrete = constants.%AddWith.generic] // CHECK:STDOUT: %.loc19_21: type = type_literal constants.%i32.builtin [concrete = constants.%i32.builtin] -// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(constants.%i32.builtin)> [concrete = constants.%AddWith.type.4d9] +// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(constants.%i32.builtin)> [concrete = constants.%AddWith.type.7c6] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @Core.IntLiteral.as.As.impl [concrete] {} { // CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, file.%IntLiteral.decl [concrete = constants.%IntLiteral] // CHECK:STDOUT: %IntLiteral.call: init type = call %IntLiteral.ref() [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc23_17.1: type = value_of_initializer %IntLiteral.call [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc23_17.2: type = converted %IntLiteral.call, %.loc23_17.1 [concrete = Core.IntLiteral] -// CHECK:STDOUT: %As.ref: %As.type.909 = name_ref As, file.%As.decl [concrete = constants.%As.generic] +// CHECK:STDOUT: %As.ref: %As.type.116 = name_ref As, file.%As.decl [concrete = constants.%As.generic] // CHECK:STDOUT: %.loc23_25: type = type_literal constants.%i32.builtin [concrete = constants.%i32.builtin] -// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(constants.%i32.builtin)> [concrete = constants.%As.type.5d6] +// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(constants.%i32.builtin)> [concrete = constants.%As.type.dfb] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @Core.IntLiteral.as.ImplicitAs.impl [concrete] {} { // CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, file.%IntLiteral.decl [concrete = constants.%IntLiteral] // CHECK:STDOUT: %IntLiteral.call: init type = call %IntLiteral.ref() [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc27_17.1: type = value_of_initializer %IntLiteral.call [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc27_17.2: type = converted %IntLiteral.call, %.loc27_17.1 [concrete = Core.IntLiteral] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, file.%ImplicitAs.decl [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, file.%ImplicitAs.decl [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %.loc27_33: type = type_literal constants.%i32.builtin [concrete = constants.%i32.builtin] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%i32.builtin)> [concrete = constants.%ImplicitAs.type.7d9] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%i32.builtin)> [concrete = constants.%ImplicitAs.type.9df] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @i32.builtin.as.ImplicitAs.impl [concrete] {} { // CHECK:STDOUT: %.loc31_6: type = type_literal constants.%i32.builtin [concrete = constants.%i32.builtin] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, file.%ImplicitAs.decl [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, file.%ImplicitAs.decl [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, file.%IntLiteral.decl [concrete = constants.%IntLiteral] // CHECK:STDOUT: %IntLiteral.call: init type = call %IntLiteral.ref() [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc31_36.1: type = value_of_initializer %IntLiteral.call [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc31_36.2: type = converted %IntLiteral.call, %.loc31_36.1 [concrete = Core.IntLiteral] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete = constants.%ImplicitAs.type.ace] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete = constants.%ImplicitAs.type.7cb] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -256,47 +256,47 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.loc7_20.1: type = symbolic_binding T, 0 [symbolic = %T.loc7_20.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T.loc7_20.1)> [symbolic = %AddWith.type (constants.%AddWith.type.893)] -// CHECK:STDOUT: %Self.loc7_29.2: @AddWith.%AddWith.type (%AddWith.type.893) = symbolic_binding Self, 1 [symbolic = %Self.loc7_29.2 (constants.%Self.729)] +// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T.loc7_20.1)> [symbolic = %AddWith.type (constants.%AddWith.type.7e9)] +// CHECK:STDOUT: %Self.loc7_29.2: @AddWith.%AddWith.type (%AddWith.type.7e9) = symbolic_binding Self, 1 [symbolic = %Self.loc7_29.2 (constants.%Self.8d5)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc7_29.1: @AddWith.%AddWith.type (%AddWith.type.893) = symbolic_binding Self, 1 [symbolic = %Self.loc7_29.2 (constants.%Self.729)] +// CHECK:STDOUT: %Self.loc7_29.1: @AddWith.%AddWith.type (%AddWith.type.7e9) = symbolic_binding Self, 1 [symbolic = %Self.loc7_29.2 (constants.%Self.8d5)] // CHECK:STDOUT: %AddWith.WithSelf.decl = interface_with_self_decl @AddWith [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %AddWith.WithSelf.Op.decl: @AddWith.WithSelf.%AddWith.WithSelf.Op.type (%AddWith.WithSelf.Op.type.000) = fn_decl @AddWith.WithSelf.Op [symbolic = @AddWith.WithSelf.%AddWith.WithSelf.Op (constants.%AddWith.WithSelf.Op.e4c)] { -// CHECK:STDOUT: %self.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.bc6) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.bc6) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.bc6) = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.bc6) = at_binding_pattern other, %other.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.bc6) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.bc6) = return_slot_pattern %return.param_patt, %.loc8_37.3 [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.decl: @AddWith.WithSelf.%AddWith.WithSelf.Op.type (%AddWith.WithSelf.Op.type.e49) = fn_decl @AddWith.WithSelf.Op [symbolic = @AddWith.WithSelf.%AddWith.WithSelf.Op (constants.%AddWith.WithSelf.Op.adc)] { +// CHECK:STDOUT: %self.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = return_slot_pattern %return.param_patt, %.loc8_37.3 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc8_37.2: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.893) = specific_constant @AddWith.%Self.loc7_29.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.729)] -// CHECK:STDOUT: %Self.ref.loc8_37: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.893) = name_ref Self, %.loc8_37.2 [symbolic = %Self (constants.%Self.729)] -// CHECK:STDOUT: %Self.as_type.loc8_37: type = facet_access_type %Self.ref.loc8_37 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.77a)] -// CHECK:STDOUT: %.loc8_37.3: type = converted %Self.ref.loc8_37, %Self.as_type.loc8_37 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.77a)] -// CHECK:STDOUT: %.loc8_37.4: Core.Form = init_form %.loc8_37.3 [symbolic = %.loc8_37.1 (constants.%.bf3)] -// CHECK:STDOUT: %self.param: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.77a) = value_param call_param0 -// CHECK:STDOUT: %.loc8_15.1: type = splice_block %.loc8_15.3 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.77a)] { -// CHECK:STDOUT: %.loc8_15.2: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.893) = specific_constant @AddWith.%Self.loc7_29.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.729)] -// CHECK:STDOUT: %Self.ref.loc8_15: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.893) = name_ref Self, %.loc8_15.2 [symbolic = %Self (constants.%Self.729)] -// CHECK:STDOUT: %Self.as_type.loc8_15.2: type = facet_access_type %Self.ref.loc8_15 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.77a)] -// CHECK:STDOUT: %.loc8_15.3: type = converted %Self.ref.loc8_15, %Self.as_type.loc8_15.2 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.77a)] +// CHECK:STDOUT: %.loc8_37.2: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.7e9) = specific_constant @AddWith.%Self.loc7_29.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.8d5)] +// CHECK:STDOUT: %Self.ref.loc8_37: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.7e9) = name_ref Self, %.loc8_37.2 [symbolic = %Self (constants.%Self.8d5)] +// CHECK:STDOUT: %Self.as_type.loc8_37: type = facet_access_type %Self.ref.loc8_37 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.48c)] +// CHECK:STDOUT: %.loc8_37.3: type = converted %Self.ref.loc8_37, %Self.as_type.loc8_37 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.48c)] +// CHECK:STDOUT: %.loc8_37.4: Core.Form = init_form %.loc8_37.3 [symbolic = %.loc8_37.1 (constants.%.e80)] +// CHECK:STDOUT: %self.param: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.48c) = value_param call_param0 +// CHECK:STDOUT: %.loc8_15.1: type = splice_block %.loc8_15.3 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.48c)] { +// CHECK:STDOUT: %.loc8_15.2: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.7e9) = specific_constant @AddWith.%Self.loc7_29.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.8d5)] +// CHECK:STDOUT: %Self.ref.loc8_15: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.7e9) = name_ref Self, %.loc8_15.2 [symbolic = %Self (constants.%Self.8d5)] +// CHECK:STDOUT: %Self.as_type.loc8_15.2: type = facet_access_type %Self.ref.loc8_15 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.48c)] +// CHECK:STDOUT: %.loc8_15.3: type = converted %Self.ref.loc8_15, %Self.as_type.loc8_15.2 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.48c)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.77a) = value_binding self, %self.param -// CHECK:STDOUT: %other.param: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.77a) = value_param call_param1 -// CHECK:STDOUT: %.loc8_28.1: type = splice_block %.loc8_28.3 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.77a)] { -// CHECK:STDOUT: %.loc8_28.2: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.893) = specific_constant @AddWith.%Self.loc7_29.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.729)] -// CHECK:STDOUT: %Self.ref.loc8_28: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.893) = name_ref Self, %.loc8_28.2 [symbolic = %Self (constants.%Self.729)] -// CHECK:STDOUT: %Self.as_type.loc8_28: type = facet_access_type %Self.ref.loc8_28 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.77a)] -// CHECK:STDOUT: %.loc8_28.3: type = converted %Self.ref.loc8_28, %Self.as_type.loc8_28 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.77a)] +// CHECK:STDOUT: %self: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.48c) = value_binding self, %self.param +// CHECK:STDOUT: %other.param: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.48c) = value_param call_param1 +// CHECK:STDOUT: %.loc8_28.1: type = splice_block %.loc8_28.3 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.48c)] { +// CHECK:STDOUT: %.loc8_28.2: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.7e9) = specific_constant @AddWith.%Self.loc7_29.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.8d5)] +// CHECK:STDOUT: %Self.ref.loc8_28: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.7e9) = name_ref Self, %.loc8_28.2 [symbolic = %Self (constants.%Self.8d5)] +// CHECK:STDOUT: %Self.as_type.loc8_28: type = facet_access_type %Self.ref.loc8_28 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.48c)] +// CHECK:STDOUT: %.loc8_28.3: type = converted %Self.ref.loc8_28, %Self.as_type.loc8_28 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.48c)] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.77a) = value_binding other, %other.param -// CHECK:STDOUT: %return.param: ref @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.77a) = out_param call_param2 -// CHECK:STDOUT: %return: ref @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.77a) = return_slot %return.param +// CHECK:STDOUT: %other: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.48c) = value_binding other, %other.param +// CHECK:STDOUT: %return.param: ref @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.48c) = out_param call_param2 +// CHECK:STDOUT: %return: ref @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.48c) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc8_41.1: @AddWith.WithSelf.%AddWith.assoc_type (%AddWith.assoc_type.5da) = assoc_entity element0, %AddWith.WithSelf.Op.decl [symbolic = %assoc0.loc8_41.2 (constants.%assoc0.572)] +// CHECK:STDOUT: %assoc0.loc8_41.1: @AddWith.WithSelf.%AddWith.assoc_type (%AddWith.assoc_type.588) = assoc_entity element0, %AddWith.WithSelf.Op.decl [symbolic = %assoc0.loc8_41.2 (constants.%assoc0.aed)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc7_29.1 @@ -311,34 +311,34 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.loc11_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc11_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T.loc11_15.1)> [symbolic = %As.type (constants.%As.type.799)] -// CHECK:STDOUT: %Self.loc11_24.2: @As.%As.type (%As.type.799) = symbolic_binding Self, 1 [symbolic = %Self.loc11_24.2 (constants.%Self.6e1)] +// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T.loc11_15.1)> [symbolic = %As.type (constants.%As.type.c5f)] +// CHECK:STDOUT: %Self.loc11_24.2: @As.%As.type (%As.type.c5f) = symbolic_binding Self, 1 [symbolic = %Self.loc11_24.2 (constants.%Self.f80)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc11_24.1: @As.%As.type (%As.type.799) = symbolic_binding Self, 1 [symbolic = %Self.loc11_24.2 (constants.%Self.6e1)] +// CHECK:STDOUT: %Self.loc11_24.1: @As.%As.type (%As.type.c5f) = symbolic_binding Self, 1 [symbolic = %Self.loc11_24.2 (constants.%Self.f80)] // CHECK:STDOUT: %As.WithSelf.decl = interface_with_self_decl @As [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %As.WithSelf.Convert.decl: @As.WithSelf.%As.WithSelf.Convert.type (%As.WithSelf.Convert.type.53f) = fn_decl @As.WithSelf.Convert [symbolic = @As.WithSelf.%As.WithSelf.Convert (constants.%As.WithSelf.Convert.a81)] { -// CHECK:STDOUT: %self.param_patt: @As.WithSelf.Convert.%pattern_type.loc12_18 (%pattern_type.950) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @As.WithSelf.Convert.%pattern_type.loc12_18 (%pattern_type.950) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.decl: @As.WithSelf.%As.WithSelf.Convert.type (%As.WithSelf.Convert.type.640) = fn_decl @As.WithSelf.Convert [symbolic = @As.WithSelf.%As.WithSelf.Convert (constants.%As.WithSelf.Convert.896)] { +// CHECK:STDOUT: %self.param_patt: @As.WithSelf.Convert.%pattern_type.loc12_18 (%pattern_type.a01) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @As.WithSelf.Convert.%pattern_type.loc12_18 (%pattern_type.a01) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @As.WithSelf.Convert.%pattern_type.loc12_31 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @As.WithSelf.Convert.%pattern_type.loc12_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @As.%T.loc11_15.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc12_31.2: Core.Form = init_form %T.ref [symbolic = %.loc12_31.1 (constants.%.184)] -// CHECK:STDOUT: %self.param: @As.WithSelf.Convert.%Self.as_type.loc12_20.1 (%Self.as_type.05f) = value_param call_param0 -// CHECK:STDOUT: %.loc12_20.1: type = splice_block %.loc12_20.3 [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.05f)] { -// CHECK:STDOUT: %.loc12_20.2: @As.WithSelf.Convert.%As.type (%As.type.799) = specific_constant @As.%Self.loc11_24.1, @As(constants.%T) [symbolic = %Self (constants.%Self.6e1)] -// CHECK:STDOUT: %Self.ref: @As.WithSelf.Convert.%As.type (%As.type.799) = name_ref Self, %.loc12_20.2 [symbolic = %Self (constants.%Self.6e1)] -// CHECK:STDOUT: %Self.as_type.loc12_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.05f)] -// CHECK:STDOUT: %.loc12_20.3: type = converted %Self.ref, %Self.as_type.loc12_20.2 [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.05f)] +// CHECK:STDOUT: %self.param: @As.WithSelf.Convert.%Self.as_type.loc12_20.1 (%Self.as_type.1ce) = value_param call_param0 +// CHECK:STDOUT: %.loc12_20.1: type = splice_block %.loc12_20.3 [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.1ce)] { +// CHECK:STDOUT: %.loc12_20.2: @As.WithSelf.Convert.%As.type (%As.type.c5f) = specific_constant @As.%Self.loc11_24.1, @As(constants.%T) [symbolic = %Self (constants.%Self.f80)] +// CHECK:STDOUT: %Self.ref: @As.WithSelf.Convert.%As.type (%As.type.c5f) = name_ref Self, %.loc12_20.2 [symbolic = %Self (constants.%Self.f80)] +// CHECK:STDOUT: %Self.as_type.loc12_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.1ce)] +// CHECK:STDOUT: %.loc12_20.3: type = converted %Self.ref, %Self.as_type.loc12_20.2 [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.1ce)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @As.WithSelf.Convert.%Self.as_type.loc12_20.1 (%Self.as_type.05f) = value_binding self, %self.param +// CHECK:STDOUT: %self: @As.WithSelf.Convert.%Self.as_type.loc12_20.1 (%Self.as_type.1ce) = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref @As.WithSelf.Convert.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @As.WithSelf.Convert.%T (%T) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc12_32.1: @As.WithSelf.%As.assoc_type (%As.assoc_type.08c) = assoc_entity element0, %As.WithSelf.Convert.decl [symbolic = %assoc0.loc12_32.2 (constants.%assoc0.2e4)] +// CHECK:STDOUT: %assoc0.loc12_32.1: @As.WithSelf.%As.assoc_type (%As.assoc_type.b40) = assoc_entity element0, %As.WithSelf.Convert.decl [symbolic = %assoc0.loc12_32.2 (constants.%assoc0.a44)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc11_24.1 @@ -355,34 +355,34 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.loc15_23.1: type = symbolic_binding T, 0 [symbolic = %T.loc15_23.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T.loc15_23.1)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.6e6)] -// CHECK:STDOUT: %Self.loc15_32.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self.loc15_32.2 (constants.%Self.7b0)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T.loc15_23.1)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3aa)] +// CHECK:STDOUT: %Self.loc15_32.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self.loc15_32.2 (constants.%Self.bb1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc15_32.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self.loc15_32.2 (constants.%Self.7b0)] +// CHECK:STDOUT: %Self.loc15_32.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self.loc15_32.2 (constants.%Self.bb1)] // CHECK:STDOUT: %ImplicitAs.WithSelf.decl = interface_with_self_decl @ImplicitAs [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.72e) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.f10)] { -// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_18 (%pattern_type.030) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_18 (%pattern_type.030) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.920) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.293)] { +// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_18 (%pattern_type.701) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_18 (%pattern_type.701) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_31 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @ImplicitAs.%T.loc15_23.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc16_31.2: Core.Form = init_form %T.ref [symbolic = %.loc16_31.1 (constants.%.184)] -// CHECK:STDOUT: %self.param: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc16_20.1 (%Self.as_type.f04) = value_param call_param0 -// CHECK:STDOUT: %.loc16_20.1: type = splice_block %.loc16_20.3 [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.f04)] { -// CHECK:STDOUT: %.loc16_20.2: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.6e6) = specific_constant @ImplicitAs.%Self.loc15_32.1, @ImplicitAs(constants.%T) [symbolic = %Self (constants.%Self.7b0)] -// CHECK:STDOUT: %Self.ref: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.6e6) = name_ref Self, %.loc16_20.2 [symbolic = %Self (constants.%Self.7b0)] -// CHECK:STDOUT: %Self.as_type.loc16_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.f04)] -// CHECK:STDOUT: %.loc16_20.3: type = converted %Self.ref, %Self.as_type.loc16_20.2 [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.f04)] +// CHECK:STDOUT: %self.param: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc16_20.1 (%Self.as_type.5b8) = value_param call_param0 +// CHECK:STDOUT: %.loc16_20.1: type = splice_block %.loc16_20.3 [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.5b8)] { +// CHECK:STDOUT: %.loc16_20.2: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.3aa) = specific_constant @ImplicitAs.%Self.loc15_32.1, @ImplicitAs(constants.%T) [symbolic = %Self (constants.%Self.bb1)] +// CHECK:STDOUT: %Self.ref: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.3aa) = name_ref Self, %.loc16_20.2 [symbolic = %Self (constants.%Self.bb1)] +// CHECK:STDOUT: %Self.as_type.loc16_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.5b8)] +// CHECK:STDOUT: %.loc16_20.3: type = converted %Self.ref, %Self.as_type.loc16_20.2 [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.5b8)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc16_20.1 (%Self.as_type.f04) = value_binding self, %self.param +// CHECK:STDOUT: %self: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc16_20.1 (%Self.as_type.5b8) = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref @ImplicitAs.WithSelf.Convert.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @ImplicitAs.WithSelf.Convert.%T (%T) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc16_32.1: @ImplicitAs.WithSelf.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.bf1) = assoc_entity element0, %ImplicitAs.WithSelf.Convert.decl [symbolic = %assoc0.loc16_32.2 (constants.%assoc0.cde)] +// CHECK:STDOUT: %assoc0.loc16_32.1: @ImplicitAs.WithSelf.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.fcc) = assoc_entity element0, %ImplicitAs.WithSelf.Convert.decl [symbolic = %assoc0.loc16_32.2 (constants.%assoc0.313)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc15_32.1 @@ -465,7 +465,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %return: ref %i32.builtin = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.IntLiteral.as.ImplicitAs.impl.Convert.decl), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.ca9] +// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.300] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Convert = %Core.IntLiteral.as.ImplicitAs.impl.Convert.decl @@ -492,7 +492,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %return: ref Core.IntLiteral = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%i32.builtin.as.ImplicitAs.impl.Convert.decl), @i32.builtin.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.f34] +// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.9d7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .IntLiteral = @@ -505,39 +505,39 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: // CHECK:STDOUT: fn @Int(%N.param: Core.IntLiteral) -> out %return.param: type = "int.make_type_signed"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AddWith.WithSelf.Op(@AddWith.%T.loc7_20.2: type, @AddWith.%Self.loc7_29.1: @AddWith.%AddWith.type (%AddWith.type.893)) { +// CHECK:STDOUT: generic fn @AddWith.WithSelf.Op(@AddWith.%T.loc7_20.2: type, @AddWith.%Self.loc7_29.1: @AddWith.%AddWith.type (%AddWith.type.7e9)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T)> [symbolic = %AddWith.type (constants.%AddWith.type.893)] -// CHECK:STDOUT: %Self: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.893) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.729)] -// CHECK:STDOUT: %Self.as_type.loc8_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.77a)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc8_15.1 [symbolic = %pattern_type (constants.%pattern_type.bc6)] -// CHECK:STDOUT: %.loc8_37.1: Core.Form = init_form %Self.as_type.loc8_15.1 [symbolic = %.loc8_37.1 (constants.%.bf3)] +// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T)> [symbolic = %AddWith.type (constants.%AddWith.type.7e9)] +// CHECK:STDOUT: %Self: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.7e9) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.8d5)] +// CHECK:STDOUT: %Self.as_type.loc8_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.48c)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc8_15.1 [symbolic = %pattern_type (constants.%pattern_type.131)] +// CHECK:STDOUT: %.loc8_37.1: Core.Form = init_form %Self.as_type.loc8_15.1 [symbolic = %.loc8_37.1 (constants.%.e80)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.77a), %other.param: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.77a)) -> out %return.param: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.77a); +// CHECK:STDOUT: fn(%self.param: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.48c), %other.param: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.48c)) -> out %return.param: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.48c); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @As.WithSelf.Convert(@As.%T.loc11_15.2: type, @As.%Self.loc11_24.1: @As.%As.type (%As.type.799)) { +// CHECK:STDOUT: generic fn @As.WithSelf.Convert(@As.%T.loc11_15.2: type, @As.%Self.loc11_24.1: @As.%As.type (%As.type.c5f)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.799)] -// CHECK:STDOUT: %Self: @As.WithSelf.Convert.%As.type (%As.type.799) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.6e1)] -// CHECK:STDOUT: %Self.as_type.loc12_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.05f)] -// CHECK:STDOUT: %pattern_type.loc12_18: type = pattern_type %Self.as_type.loc12_20.1 [symbolic = %pattern_type.loc12_18 (constants.%pattern_type.950)] +// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.c5f)] +// CHECK:STDOUT: %Self: @As.WithSelf.Convert.%As.type (%As.type.c5f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.f80)] +// CHECK:STDOUT: %Self.as_type.loc12_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.1ce)] +// CHECK:STDOUT: %pattern_type.loc12_18: type = pattern_type %Self.as_type.loc12_20.1 [symbolic = %pattern_type.loc12_18 (constants.%pattern_type.a01)] // CHECK:STDOUT: %.loc12_31.1: Core.Form = init_form %T [symbolic = %.loc12_31.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc12_31: type = pattern_type %T [symbolic = %pattern_type.loc12_31 (constants.%pattern_type.51d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @As.WithSelf.Convert.%Self.as_type.loc12_20.1 (%Self.as_type.05f)) -> out %return.param: @As.WithSelf.Convert.%T (%T); +// CHECK:STDOUT: fn(%self.param: @As.WithSelf.Convert.%Self.as_type.loc12_20.1 (%Self.as_type.1ce)) -> out %return.param: @As.WithSelf.Convert.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(@ImplicitAs.%T.loc15_23.2: type, @ImplicitAs.%Self.loc15_32.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6)) { +// CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(@ImplicitAs.%T.loc15_23.2: type, @ImplicitAs.%Self.loc15_32.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.6e6)] -// CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.7b0)] -// CHECK:STDOUT: %Self.as_type.loc16_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.f04)] -// CHECK:STDOUT: %pattern_type.loc16_18: type = pattern_type %Self.as_type.loc16_20.1 [symbolic = %pattern_type.loc16_18 (constants.%pattern_type.030)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3aa)] +// CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.bb1)] +// CHECK:STDOUT: %Self.as_type.loc16_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.5b8)] +// CHECK:STDOUT: %pattern_type.loc16_18: type = pattern_type %Self.as_type.loc16_20.1 [symbolic = %pattern_type.loc16_18 (constants.%pattern_type.701)] // CHECK:STDOUT: %.loc16_31.1: Core.Form = init_form %T [symbolic = %.loc16_31.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc16_31: type = pattern_type %T [symbolic = %pattern_type.loc16_31 (constants.%pattern_type.51d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc16_20.1 (%Self.as_type.f04)) -> out %return.param: @ImplicitAs.WithSelf.Convert.%T (%T); +// CHECK:STDOUT: fn(%self.param: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc16_20.1 (%Self.as_type.5b8)) -> out %return.param: @ImplicitAs.WithSelf.Convert.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @i32.builtin.as.AddWith.impl.Op(%self.param: %i32.builtin, %other.param: %i32.builtin) -> out %return.param: %i32.builtin = "int.sadd"; @@ -552,29 +552,29 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.loc7_20.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.WithSelf(constants.%T, constants.%Self.729) {} +// CHECK:STDOUT: specific @AddWith.WithSelf(constants.%T, constants.%Self.8d5) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.WithSelf.Op(constants.%T, constants.%Self.729) { +// CHECK:STDOUT: specific @AddWith.WithSelf.Op(constants.%T, constants.%Self.8d5) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.893 -// CHECK:STDOUT: %Self => constants.%Self.729 -// CHECK:STDOUT: %Self.as_type.loc8_15.1 => constants.%Self.as_type.77a -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bc6 -// CHECK:STDOUT: %.loc8_37.1 => constants.%.bf3 +// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.7e9 +// CHECK:STDOUT: %Self => constants.%Self.8d5 +// CHECK:STDOUT: %Self.as_type.loc8_15.1 => constants.%Self.as_type.48c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.131 +// CHECK:STDOUT: %.loc8_37.1 => constants.%.e80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @As(constants.%T) { // CHECK:STDOUT: %T.loc11_15.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @As.WithSelf(constants.%T, constants.%Self.6e1) {} +// CHECK:STDOUT: specific @As.WithSelf(constants.%T, constants.%Self.f80) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @As.WithSelf.Convert(constants.%T, constants.%Self.6e1) { +// CHECK:STDOUT: specific @As.WithSelf.Convert(constants.%T, constants.%Self.f80) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %As.type => constants.%As.type.799 -// CHECK:STDOUT: %Self => constants.%Self.6e1 -// CHECK:STDOUT: %Self.as_type.loc12_20.1 => constants.%Self.as_type.05f -// CHECK:STDOUT: %pattern_type.loc12_18 => constants.%pattern_type.950 +// CHECK:STDOUT: %As.type => constants.%As.type.c5f +// CHECK:STDOUT: %Self => constants.%Self.f80 +// CHECK:STDOUT: %Self.as_type.loc12_20.1 => constants.%Self.as_type.1ce +// CHECK:STDOUT: %pattern_type.loc12_18 => constants.%pattern_type.a01 // CHECK:STDOUT: %.loc12_31.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc12_31 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -583,14 +583,14 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.loc15_23.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%T, constants.%Self.7b0) {} +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%T, constants.%Self.bb1) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(constants.%T, constants.%Self.7b0) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(constants.%T, constants.%Self.bb1) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.6e6 -// CHECK:STDOUT: %Self => constants.%Self.7b0 -// CHECK:STDOUT: %Self.as_type.loc16_20.1 => constants.%Self.as_type.f04 -// CHECK:STDOUT: %pattern_type.loc16_18 => constants.%pattern_type.030 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.3aa +// CHECK:STDOUT: %Self => constants.%Self.bb1 +// CHECK:STDOUT: %Self.as_type.loc16_20.1 => constants.%Self.as_type.5b8 +// CHECK:STDOUT: %pattern_type.loc16_18 => constants.%pattern_type.701 // CHECK:STDOUT: %.loc16_31.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc16_31 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -599,35 +599,35 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.loc7_20.1 => constants.%i32.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.4d9 -// CHECK:STDOUT: %Self.loc7_29.2 => constants.%Self.5d8 +// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.7c6 +// CHECK:STDOUT: %Self.loc7_29.2 => constants.%Self.9ab // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.WithSelf(constants.%i32.builtin, constants.%Self.729) { +// CHECK:STDOUT: specific @AddWith.WithSelf(constants.%i32.builtin, constants.%Self.8d5) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.4d9 -// CHECK:STDOUT: %Self => constants.%Self.729 -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.5a6 -// CHECK:STDOUT: %AddWith.WithSelf.Op => constants.%AddWith.WithSelf.Op.e8a -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.b31 -// CHECK:STDOUT: %assoc0.loc8_41.2 => constants.%assoc0.f84 +// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.7c6 +// CHECK:STDOUT: %Self => constants.%Self.8d5 +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.aad +// CHECK:STDOUT: %AddWith.WithSelf.Op => constants.%AddWith.WithSelf.Op.e15 +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.439 +// CHECK:STDOUT: %assoc0.loc8_41.2 => constants.%assoc0.7f8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AddWith.WithSelf(constants.%i32.builtin, constants.%AddWith.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.4d9 +// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.7c6 // CHECK:STDOUT: %Self => constants.%AddWith.facet -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.3a1 -// CHECK:STDOUT: %AddWith.WithSelf.Op => constants.%AddWith.WithSelf.Op.fce -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.b31 -// CHECK:STDOUT: %assoc0.loc8_41.2 => constants.%assoc0.f84 +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.2dc +// CHECK:STDOUT: %AddWith.WithSelf.Op => constants.%AddWith.WithSelf.Op.921 +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.439 +// CHECK:STDOUT: %assoc0.loc8_41.2 => constants.%assoc0.7f8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AddWith.WithSelf.Op(constants.%i32.builtin, constants.%AddWith.facet) { // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.4d9 +// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.7c6 // CHECK:STDOUT: %Self => constants.%AddWith.facet // CHECK:STDOUT: %Self.as_type.loc8_15.1 => constants.%i32.builtin // CHECK:STDOUT: %pattern_type => constants.%pattern_type.956 @@ -638,35 +638,35 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.loc11_15.1 => constants.%i32.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %As.type => constants.%As.type.5d6 -// CHECK:STDOUT: %Self.loc11_24.2 => constants.%Self.6c7 +// CHECK:STDOUT: %As.type => constants.%As.type.dfb +// CHECK:STDOUT: %Self.loc11_24.2 => constants.%Self.2c0 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @As.WithSelf(constants.%i32.builtin, constants.%Self.6e1) { +// CHECK:STDOUT: specific @As.WithSelf(constants.%i32.builtin, constants.%Self.f80) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %As.type => constants.%As.type.5d6 -// CHECK:STDOUT: %Self => constants.%Self.6e1 -// CHECK:STDOUT: %As.WithSelf.Convert.type => constants.%As.WithSelf.Convert.type.482 -// CHECK:STDOUT: %As.WithSelf.Convert => constants.%As.WithSelf.Convert.689 -// CHECK:STDOUT: %As.assoc_type => constants.%As.assoc_type.b5c -// CHECK:STDOUT: %assoc0.loc12_32.2 => constants.%assoc0.619 +// CHECK:STDOUT: %As.type => constants.%As.type.dfb +// CHECK:STDOUT: %Self => constants.%Self.f80 +// CHECK:STDOUT: %As.WithSelf.Convert.type => constants.%As.WithSelf.Convert.type.d9c +// CHECK:STDOUT: %As.WithSelf.Convert => constants.%As.WithSelf.Convert.140 +// CHECK:STDOUT: %As.assoc_type => constants.%As.assoc_type.7f2 +// CHECK:STDOUT: %assoc0.loc12_32.2 => constants.%assoc0.402 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @As.WithSelf(constants.%i32.builtin, constants.%As.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %As.type => constants.%As.type.5d6 +// CHECK:STDOUT: %As.type => constants.%As.type.dfb // CHECK:STDOUT: %Self => constants.%As.facet -// CHECK:STDOUT: %As.WithSelf.Convert.type => constants.%As.WithSelf.Convert.type.192 -// CHECK:STDOUT: %As.WithSelf.Convert => constants.%As.WithSelf.Convert.7de -// CHECK:STDOUT: %As.assoc_type => constants.%As.assoc_type.b5c -// CHECK:STDOUT: %assoc0.loc12_32.2 => constants.%assoc0.619 +// CHECK:STDOUT: %As.WithSelf.Convert.type => constants.%As.WithSelf.Convert.type.e08 +// CHECK:STDOUT: %As.WithSelf.Convert => constants.%As.WithSelf.Convert.5a5 +// CHECK:STDOUT: %As.assoc_type => constants.%As.assoc_type.7f2 +// CHECK:STDOUT: %assoc0.loc12_32.2 => constants.%assoc0.402 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @As.WithSelf.Convert(constants.%i32.builtin, constants.%As.facet) { // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %As.type => constants.%As.type.5d6 +// CHECK:STDOUT: %As.type => constants.%As.type.dfb // CHECK:STDOUT: %Self => constants.%As.facet // CHECK:STDOUT: %Self.as_type.loc12_20.1 => Core.IntLiteral // CHECK:STDOUT: %pattern_type.loc12_18 => constants.%pattern_type.dc0 @@ -678,36 +678,36 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.loc15_23.1 => constants.%i32.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.7d9 -// CHECK:STDOUT: %Self.loc15_32.2 => constants.%Self.7c0 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9df +// CHECK:STDOUT: %Self.loc15_32.2 => constants.%Self.19a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%i32.builtin, constants.%Self.7b0) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%i32.builtin, constants.%Self.bb1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.7d9 -// CHECK:STDOUT: %Self => constants.%Self.7b0 -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.357 -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.538 -// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.317 -// CHECK:STDOUT: %assoc0.loc16_32.2 => constants.%assoc0.e0b +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9df +// CHECK:STDOUT: %Self => constants.%Self.bb1 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.247 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.e9a +// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.081 +// CHECK:STDOUT: %assoc0.loc16_32.2 => constants.%assoc0.0d1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%i32.builtin, constants.%ImplicitAs.facet.cb6) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%i32.builtin, constants.%ImplicitAs.facet.18f) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.7d9 -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.cb6 -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.93f -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.ab3 -// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.317 -// CHECK:STDOUT: %assoc0.loc16_32.2 => constants.%assoc0.e0b +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9df +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.18f +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.20b +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.b9f +// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.081 +// CHECK:STDOUT: %assoc0.loc16_32.2 => constants.%assoc0.0d1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(constants.%i32.builtin, constants.%ImplicitAs.facet.cb6) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(constants.%i32.builtin, constants.%ImplicitAs.facet.18f) { // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.7d9 -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.cb6 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9df +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.18f // CHECK:STDOUT: %Self.as_type.loc16_20.1 => Core.IntLiteral // CHECK:STDOUT: %pattern_type.loc16_18 => constants.%pattern_type.dc0 // CHECK:STDOUT: %.loc16_31.1 => constants.%.9cb @@ -718,36 +718,36 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T.loc15_23.1 => Core.IntLiteral // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.ace -// CHECK:STDOUT: %Self.loc15_32.2 => constants.%Self.aad +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.7cb +// CHECK:STDOUT: %Self.loc15_32.2 => constants.%Self.c40 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(Core.IntLiteral, constants.%Self.7b0) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(Core.IntLiteral, constants.%Self.bb1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => Core.IntLiteral -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.ace -// CHECK:STDOUT: %Self => constants.%Self.7b0 -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.053 -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.232 -// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.175 -// CHECK:STDOUT: %assoc0.loc16_32.2 => constants.%assoc0.186 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.7cb +// CHECK:STDOUT: %Self => constants.%Self.bb1 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.46f +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.a78 +// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.e73 +// CHECK:STDOUT: %assoc0.loc16_32.2 => constants.%assoc0.a37 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(Core.IntLiteral, constants.%ImplicitAs.facet.35c) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(Core.IntLiteral, constants.%ImplicitAs.facet.776) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => Core.IntLiteral -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.ace -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.35c -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.63f -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.e3e -// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.175 -// CHECK:STDOUT: %assoc0.loc16_32.2 => constants.%assoc0.186 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.7cb +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.776 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.dc2 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.c73 +// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.e73 +// CHECK:STDOUT: %assoc0.loc16_32.2 => constants.%assoc0.a37 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(Core.IntLiteral, constants.%ImplicitAs.facet.35c) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(Core.IntLiteral, constants.%ImplicitAs.facet.776) { // CHECK:STDOUT: %T => Core.IntLiteral -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.ace -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.35c +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.7cb +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.776 // CHECK:STDOUT: %Self.as_type.loc16_20.1 => constants.%i32.builtin // CHECK:STDOUT: %pattern_type.loc16_18 => constants.%pattern_type.956 // CHECK:STDOUT: %.loc16_31.1 => constants.%.f7d @@ -762,30 +762,30 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %Int: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %As.type.799: type = facet_type <@As, @As(%T)> [symbolic] -// CHECK:STDOUT: %Self.26f: %As.type.799 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %As.assoc_type.08c: type = assoc_entity_type @As, @As(%T) [symbolic] -// CHECK:STDOUT: %As.WithSelf.Convert.type.7b2: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%T, %Self.26f) [symbolic] -// CHECK:STDOUT: %As.WithSelf.Convert.60f: %As.WithSelf.Convert.type.7b2 = struct_value () [symbolic] +// CHECK:STDOUT: %As.type.c5f: type = facet_type <@As, @As(%T)> [symbolic] +// CHECK:STDOUT: %Self.37a: %As.type.c5f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %As.assoc_type.b40: type = assoc_entity_type @As, @As(%T) [symbolic] +// CHECK:STDOUT: %As.WithSelf.Convert.type.ff8: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%T, %Self.37a) [symbolic] +// CHECK:STDOUT: %As.WithSelf.Convert.87d: %As.WithSelf.Convert.type.ff8 = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %Self.as_type.eb7: type = facet_access_type %Self.26f [symbolic] -// CHECK:STDOUT: %pattern_type.89d: type = pattern_type %Self.as_type.eb7 [symbolic] +// CHECK:STDOUT: %Self.as_type.d4a: type = facet_access_type %Self.37a [symbolic] +// CHECK:STDOUT: %pattern_type.e33: type = pattern_type %Self.as_type.d4a [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] -// CHECK:STDOUT: %As.type.5d6: type = facet_type <@As, @As(%i32.builtin)> [concrete] -// CHECK:STDOUT: %Self.4e8: %As.type.5d6 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %As.WithSelf.Convert.type.e34: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32.builtin, %Self.26f) [symbolic] -// CHECK:STDOUT: %As.WithSelf.Convert.5e6: %As.WithSelf.Convert.type.e34 = struct_value () [symbolic] -// CHECK:STDOUT: %As.assoc_type.b5c: type = assoc_entity_type @As, @As(%i32.builtin) [concrete] -// CHECK:STDOUT: %assoc0.bff: %As.assoc_type.b5c = assoc_entity element0, imports.%Core.import_ref.b65 [concrete] -// CHECK:STDOUT: %assoc0.959: %As.assoc_type.08c = assoc_entity element0, imports.%Core.import_ref.412 [symbolic] +// CHECK:STDOUT: %As.type.dfb: type = facet_type <@As, @As(%i32.builtin)> [concrete] +// CHECK:STDOUT: %Self.256: %As.type.dfb = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %As.WithSelf.Convert.type.675: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32.builtin, %Self.37a) [symbolic] +// CHECK:STDOUT: %As.WithSelf.Convert.dd6: %As.WithSelf.Convert.type.675 = struct_value () [symbolic] +// CHECK:STDOUT: %As.assoc_type.7f2: type = assoc_entity_type @As, @As(%i32.builtin) [concrete] +// CHECK:STDOUT: %assoc0.656: %As.assoc_type.7f2 = assoc_entity element0, imports.%Core.import_ref.967 [concrete] +// CHECK:STDOUT: %assoc0.4ec: %As.assoc_type.b40 = assoc_entity element0, imports.%Core.import_ref.47a [symbolic] // CHECK:STDOUT: %As.impl_witness: = impl_witness imports.%As.impl_witness_table [concrete] -// CHECK:STDOUT: %As.facet: %As.type.5d6 = facet_value Core.IntLiteral, (%As.impl_witness) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.9cc: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32.builtin, %As.facet) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.88b: %As.WithSelf.Convert.type.9cc = struct_value () [concrete] -// CHECK:STDOUT: %.900: type = fn_type_with_self_type %As.WithSelf.Convert.type.9cc, %As.facet [concrete] +// CHECK:STDOUT: %As.facet: %As.type.dfb = facet_value Core.IntLiteral, (%As.impl_witness) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.dbd: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32.builtin, %As.facet) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.82a: %As.WithSelf.Convert.type.dbd = struct_value () [concrete] +// CHECK:STDOUT: %.161: type = fn_type_with_self_type %As.WithSelf.Convert.type.dbd, %As.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type: type = fn_type @Core.IntLiteral.as.As.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert: %Core.IntLiteral.as.As.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.5d7: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert [concrete] @@ -793,55 +793,55 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.959: = bound_method %int_2.ecc, %Core.IntLiteral.as.As.impl.Convert [concrete] // CHECK:STDOUT: %int_2.5a1: %i32.builtin = int_value 2 [concrete] -// CHECK:STDOUT: %AddWith.type.be4: type = generic_interface_type @AddWith [concrete] -// CHECK:STDOUT: %AddWith.generic: %AddWith.type.be4 = struct_value () [concrete] -// CHECK:STDOUT: %AddWith.type.893: type = facet_type <@AddWith, @AddWith(%T)> [symbolic] -// CHECK:STDOUT: %Self.66b: %AddWith.type.893 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %AddWith.assoc_type.5da: type = assoc_entity_type @AddWith, @AddWith(%T) [symbolic] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.c45: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%T, %Self.66b) [symbolic] -// CHECK:STDOUT: %AddWith.WithSelf.Op.2f3: %AddWith.WithSelf.Op.type.c45 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type.853: type = facet_access_type %Self.66b [symbolic] -// CHECK:STDOUT: %pattern_type.119: type = pattern_type %Self.as_type.853 [symbolic] -// CHECK:STDOUT: %.668: Core.Form = init_form %Self.as_type.853 [symbolic] -// CHECK:STDOUT: %AddWith.type.4d9: type = facet_type <@AddWith, @AddWith(%i32.builtin)> [concrete] -// CHECK:STDOUT: %Self.0aa: %AddWith.type.4d9 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.c7d: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%i32.builtin, %Self.66b) [symbolic] -// CHECK:STDOUT: %AddWith.WithSelf.Op.644: %AddWith.WithSelf.Op.type.c7d = struct_value () [symbolic] -// CHECK:STDOUT: %AddWith.assoc_type.b31: type = assoc_entity_type @AddWith, @AddWith(%i32.builtin) [concrete] -// CHECK:STDOUT: %assoc0.fba: %AddWith.assoc_type.b31 = assoc_entity element0, imports.%Core.import_ref.29f [concrete] -// CHECK:STDOUT: %assoc0.acd: %AddWith.assoc_type.5da = assoc_entity element0, imports.%Core.import_ref.a1e [symbolic] +// CHECK:STDOUT: %AddWith.type.2ef: type = generic_interface_type @AddWith [concrete] +// CHECK:STDOUT: %AddWith.generic: %AddWith.type.2ef = struct_value () [concrete] +// CHECK:STDOUT: %AddWith.type.7e9: type = facet_type <@AddWith, @AddWith(%T)> [symbolic] +// CHECK:STDOUT: %Self.96a: %AddWith.type.7e9 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %AddWith.assoc_type.588: type = assoc_entity_type @AddWith, @AddWith(%T) [symbolic] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.28e: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%T, %Self.96a) [symbolic] +// CHECK:STDOUT: %AddWith.WithSelf.Op.eab: %AddWith.WithSelf.Op.type.28e = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type.331: type = facet_access_type %Self.96a [symbolic] +// CHECK:STDOUT: %pattern_type.aed: type = pattern_type %Self.as_type.331 [symbolic] +// CHECK:STDOUT: %.4cc: Core.Form = init_form %Self.as_type.331 [symbolic] +// CHECK:STDOUT: %AddWith.type.7c6: type = facet_type <@AddWith, @AddWith(%i32.builtin)> [concrete] +// CHECK:STDOUT: %Self.bd2: %AddWith.type.7c6 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.0ff: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%i32.builtin, %Self.96a) [symbolic] +// CHECK:STDOUT: %AddWith.WithSelf.Op.19f: %AddWith.WithSelf.Op.type.0ff = struct_value () [symbolic] +// CHECK:STDOUT: %AddWith.assoc_type.439: type = assoc_entity_type @AddWith, @AddWith(%i32.builtin) [concrete] +// CHECK:STDOUT: %assoc0.e3c: %AddWith.assoc_type.439 = assoc_entity element0, imports.%Core.import_ref.3cf [concrete] +// CHECK:STDOUT: %assoc0.912: %AddWith.assoc_type.588 = assoc_entity element0, imports.%Core.import_ref.976 [symbolic] // CHECK:STDOUT: %AddWith.impl_witness: = impl_witness imports.%AddWith.impl_witness_table [concrete] -// CHECK:STDOUT: %AddWith.facet: %AddWith.type.4d9 = facet_value %i32.builtin, (%AddWith.impl_witness) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.9e3: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%i32.builtin, %AddWith.facet) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.e6f: %AddWith.WithSelf.Op.type.9e3 = struct_value () [concrete] -// CHECK:STDOUT: %.92a: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.9e3, %AddWith.facet [concrete] +// CHECK:STDOUT: %AddWith.facet: %AddWith.type.7c6 = facet_value %i32.builtin, (%AddWith.impl_witness) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.43a: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%i32.builtin, %AddWith.facet) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.128: %AddWith.WithSelf.Op.type.43a = struct_value () [concrete] +// CHECK:STDOUT: %.e4a: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.43a, %AddWith.facet [concrete] // CHECK:STDOUT: %i32.builtin.as.AddWith.impl.Op.type: type = fn_type @i32.builtin.as.AddWith.impl.Op [concrete] // CHECK:STDOUT: %i32.builtin.as.AddWith.impl.Op: %i32.builtin.as.AddWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin.as.AddWith.impl.Op.bound.351: = bound_method %int_1.f38, %i32.builtin.as.AddWith.impl.Op [concrete] // CHECK:STDOUT: %int_3.a0f: %i32.builtin = int_value 3 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6e6: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] -// CHECK:STDOUT: %Self.b7e: %ImplicitAs.type.6e6 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.bf1: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%T) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c63: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%T, %Self.b7e) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.cba: %ImplicitAs.WithSelf.Convert.type.c63 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type.8c1: type = facet_access_type %Self.b7e [symbolic] -// CHECK:STDOUT: %pattern_type.cbe: type = pattern_type %Self.as_type.8c1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %Self.442: %ImplicitAs.type.ace = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f08: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %Self.b7e) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.ce8: %ImplicitAs.WithSelf.Convert.type.f08 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.175: type = assoc_entity_type @ImplicitAs, @ImplicitAs(Core.IntLiteral) [concrete] -// CHECK:STDOUT: %assoc0.bd7: %ImplicitAs.assoc_type.175 = assoc_entity element0, imports.%Core.import_ref.569 [concrete] -// CHECK:STDOUT: %assoc0.bd2: %ImplicitAs.assoc_type.bf1 = assoc_entity element0, imports.%Core.import_ref.cd5 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.7d9: type = facet_type <@ImplicitAs, @ImplicitAs(%i32.builtin)> [concrete] -// CHECK:STDOUT: %Self.6fb: %ImplicitAs.type.7d9 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.c09: = impl_witness imports.%ImplicitAs.impl_witness_table.e83 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.5b2: %ImplicitAs.type.ace = facet_value %i32.builtin, (%ImplicitAs.impl_witness.c09) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.8e3: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.5b2) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.827: %ImplicitAs.WithSelf.Convert.type.8e3 = struct_value () [concrete] -// CHECK:STDOUT: %.bfe: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.8e3, %ImplicitAs.facet.5b2 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.3aa: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] +// CHECK:STDOUT: %Self.294: %ImplicitAs.type.3aa = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.fcc: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%T) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.97e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%T, %Self.294) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.945: %ImplicitAs.WithSelf.Convert.type.97e = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type.ef0: type = facet_access_type %Self.294 [symbolic] +// CHECK:STDOUT: %pattern_type.20e: type = pattern_type %Self.as_type.ef0 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %Self.f63: %ImplicitAs.type.7cb = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.e70: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %Self.294) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.792: %ImplicitAs.WithSelf.Convert.type.e70 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.e73: type = assoc_entity_type @ImplicitAs, @ImplicitAs(Core.IntLiteral) [concrete] +// CHECK:STDOUT: %assoc0.625: %ImplicitAs.assoc_type.e73 = assoc_entity element0, imports.%Core.import_ref.cb2 [concrete] +// CHECK:STDOUT: %assoc0.0ac9: %ImplicitAs.assoc_type.fcc = assoc_entity element0, imports.%Core.import_ref.f9d [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.9df: type = facet_type <@ImplicitAs, @ImplicitAs(%i32.builtin)> [concrete] +// CHECK:STDOUT: %Self.a70: %ImplicitAs.type.9df = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.750: = impl_witness imports.%ImplicitAs.impl_witness_table.5cf [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.a82: %ImplicitAs.type.7cb = facet_value %i32.builtin, (%ImplicitAs.impl_witness.750) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.7af: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.a82) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.a32: %ImplicitAs.WithSelf.Convert.type.7af = struct_value () [concrete] +// CHECK:STDOUT: %.5b0: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.7af, %ImplicitAs.facet.a82 [concrete] // CHECK:STDOUT: %i32.builtin.as.ImplicitAs.impl.Convert.type: type = fn_type @i32.builtin.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %i32.builtin.as.ImplicitAs.impl.Convert: %i32.builtin.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin.as.ImplicitAs.impl.Convert.bound: = bound_method %int_3.a0f, %i32.builtin.as.ImplicitAs.impl.Convert [concrete] @@ -857,15 +857,15 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, %i32.builtin) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%int_3.1ba, %int_4.0c1, %int_7) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.d9c: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32.builtin, %Self.b7e) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.fa0: %ImplicitAs.WithSelf.Convert.type.d9c = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.317: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%i32.builtin) [concrete] -// CHECK:STDOUT: %assoc0.7d8: %ImplicitAs.assoc_type.317 = assoc_entity element0, imports.%Core.import_ref.569 [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.d67: = impl_witness imports.%ImplicitAs.impl_witness_table.086 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.1ae: %ImplicitAs.type.7d9 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.d67) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.1ae: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32.builtin, %ImplicitAs.facet.1ae) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.968: %ImplicitAs.WithSelf.Convert.type.1ae = struct_value () [concrete] -// CHECK:STDOUT: %.966: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.1ae, %ImplicitAs.facet.1ae [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.51c: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32.builtin, %Self.294) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.78c: %ImplicitAs.WithSelf.Convert.type.51c = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.081: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%i32.builtin) [concrete] +// CHECK:STDOUT: %assoc0.da6: %ImplicitAs.assoc_type.081 = assoc_entity element0, imports.%Core.import_ref.cb2 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.da4: = impl_witness imports.%ImplicitAs.impl_witness_table.dfd [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.9b9: %ImplicitAs.type.9df = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.da4) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.4fb: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32.builtin, %ImplicitAs.facet.9b9) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.838: %ImplicitAs.WithSelf.Convert.type.4fb = struct_value () [concrete] +// CHECK:STDOUT: %.b73: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.4fb, %ImplicitAs.facet.9b9 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.94b: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] @@ -882,53 +882,53 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//default, Int, loaded [concrete = constants.%Int] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//default, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.262: @As.WithSelf.%As.assoc_type (%As.assoc_type.08c) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @As.WithSelf.%assoc0 (constants.%assoc0.959)] -// CHECK:STDOUT: %Core.Convert.e48 = import_ref Core//default, Convert, unloaded -// CHECK:STDOUT: %Core.import_ref.b65: @As.WithSelf.%As.WithSelf.Convert.type (%As.WithSelf.Convert.type.7b2) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @As.WithSelf.%As.WithSelf.Convert (constants.%As.WithSelf.Convert.60f)] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//default, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.e36: @As.WithSelf.%As.assoc_type (%As.assoc_type.b40) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @As.WithSelf.%assoc0 (constants.%assoc0.4ec)] +// CHECK:STDOUT: %Core.Convert.b64 = import_ref Core//default, Convert, unloaded +// CHECK:STDOUT: %Core.import_ref.967: @As.WithSelf.%As.WithSelf.Convert.type (%As.WithSelf.Convert.type.ff8) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @As.WithSelf.%As.WithSelf.Convert (constants.%As.WithSelf.Convert.87d)] // CHECK:STDOUT: %Core.import_ref.b3bc94.2: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @As.%T (constants.%T)] -// CHECK:STDOUT: %Core.import_ref.e2e926.2: @As.%As.type (%As.type.799) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @As.%Self (constants.%Self.26f)] -// CHECK:STDOUT: %Core.import_ref.123 = import_ref Core//default, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.d2cec9.2: @As.%As.type (%As.type.c5f) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @As.%Self (constants.%Self.37a)] +// CHECK:STDOUT: %Core.import_ref.3f4 = import_ref Core//default, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.b3bc94.3: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @As.%T (constants.%T)] -// CHECK:STDOUT: %Core.import_ref.412 = import_ref Core//default, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f83: = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%As.impl_witness] -// CHECK:STDOUT: %Core.import_ref.f93ced.1: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = Core.IntLiteral] -// CHECK:STDOUT: %Core.import_ref.f6f: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%As.type.5d6] -// CHECK:STDOUT: %Core.import_ref.adef5f.1: %Core.IntLiteral.as.As.impl.Convert.type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] -// CHECK:STDOUT: %As.impl_witness_table = impl_witness_table (%Core.import_ref.adef5f.1), @Core.IntLiteral.as.As.impl [concrete] -// CHECK:STDOUT: %Core.AddWith: %AddWith.type.be4 = import_ref Core//default, AddWith, loaded [concrete = constants.%AddWith.generic] -// CHECK:STDOUT: %Core.import_ref.5bb: @AddWith.WithSelf.%AddWith.assoc_type (%AddWith.assoc_type.5da) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @AddWith.WithSelf.%assoc0 (constants.%assoc0.acd)] +// CHECK:STDOUT: %Core.import_ref.47a = import_ref Core//default, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.ed7: = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%As.impl_witness] +// CHECK:STDOUT: %Core.import_ref.737b3b.1: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = Core.IntLiteral] +// CHECK:STDOUT: %Core.import_ref.908: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%As.type.dfb] +// CHECK:STDOUT: %Core.import_ref.06c923.1: %Core.IntLiteral.as.As.impl.Convert.type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] +// CHECK:STDOUT: %As.impl_witness_table = impl_witness_table (%Core.import_ref.06c923.1), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.AddWith: %AddWith.type.2ef = import_ref Core//default, AddWith, loaded [concrete = constants.%AddWith.generic] +// CHECK:STDOUT: %Core.import_ref.562: @AddWith.WithSelf.%AddWith.assoc_type (%AddWith.assoc_type.588) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @AddWith.WithSelf.%assoc0 (constants.%assoc0.912)] // CHECK:STDOUT: %Core.Op = import_ref Core//default, Op, unloaded -// CHECK:STDOUT: %Core.import_ref.29f: @AddWith.WithSelf.%AddWith.WithSelf.Op.type (%AddWith.WithSelf.Op.type.c45) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @AddWith.WithSelf.%AddWith.WithSelf.Op (constants.%AddWith.WithSelf.Op.2f3)] +// CHECK:STDOUT: %Core.import_ref.3cf: @AddWith.WithSelf.%AddWith.WithSelf.Op.type (%AddWith.WithSelf.Op.type.28e) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @AddWith.WithSelf.%AddWith.WithSelf.Op (constants.%AddWith.WithSelf.Op.eab)] // CHECK:STDOUT: %Core.import_ref.b3bc94.5: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @AddWith.%T (constants.%T)] -// CHECK:STDOUT: %Core.import_ref.9d89b2.2: @AddWith.%AddWith.type (%AddWith.type.893) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @AddWith.%Self (constants.%Self.66b)] -// CHECK:STDOUT: %Core.import_ref.4d4 = import_ref Core//default, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.4c6974.2: @AddWith.%AddWith.type (%AddWith.type.7e9) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @AddWith.%Self (constants.%Self.96a)] +// CHECK:STDOUT: %Core.import_ref.763 = import_ref Core//default, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.b3bc94.6: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @AddWith.%T (constants.%T)] -// CHECK:STDOUT: %Core.import_ref.a1e = import_ref Core//default, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.6bb: = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%AddWith.impl_witness] +// CHECK:STDOUT: %Core.import_ref.976 = import_ref Core//default, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.37d: = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%AddWith.impl_witness] // CHECK:STDOUT: %Core.import_ref.63cbb1.2: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.builtin] -// CHECK:STDOUT: %Core.import_ref.d64: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%AddWith.type.4d9] -// CHECK:STDOUT: %Core.import_ref.f63: %i32.builtin.as.AddWith.impl.Op.type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.builtin.as.AddWith.impl.Op] -// CHECK:STDOUT: %AddWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @i32.builtin.as.AddWith.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//default, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.195: @ImplicitAs.WithSelf.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.bf1) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%assoc0 (constants.%assoc0.bd2)] -// CHECK:STDOUT: %Core.Convert.dd6 = import_ref Core//default, Convert, unloaded -// CHECK:STDOUT: %Core.import_ref.569: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.c63) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.cba)] +// CHECK:STDOUT: %Core.import_ref.4ee: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%AddWith.type.7c6] +// CHECK:STDOUT: %Core.import_ref.9c3: %i32.builtin.as.AddWith.impl.Op.type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.builtin.as.AddWith.impl.Op] +// CHECK:STDOUT: %AddWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @i32.builtin.as.AddWith.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//default, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.484: @ImplicitAs.WithSelf.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.fcc) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%assoc0 (constants.%assoc0.0ac9)] +// CHECK:STDOUT: %Core.Convert.368 = import_ref Core//default, Convert, unloaded +// CHECK:STDOUT: %Core.import_ref.cb2: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.97e) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.945)] // CHECK:STDOUT: %Core.import_ref.b3bc94.8: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%T (constants.%T)] -// CHECK:STDOUT: %Core.import_ref.81ed31.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%Self (constants.%Self.b7e)] -// CHECK:STDOUT: %Core.import_ref.7df = import_ref Core//default, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.f19eaa.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%Self (constants.%Self.294)] +// CHECK:STDOUT: %Core.import_ref.8c8 = import_ref Core//default, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.b3bc94.9: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%T (constants.%T)] -// CHECK:STDOUT: %Core.import_ref.cd5 = import_ref Core//default, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.2d0: = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%ImplicitAs.impl_witness.d67] -// CHECK:STDOUT: %Core.import_ref.f93ced.2: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = Core.IntLiteral] -// CHECK:STDOUT: %Core.import_ref.d06: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%ImplicitAs.type.7d9] -// CHECK:STDOUT: %Core.import_ref.4a2: = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%ImplicitAs.impl_witness.c09] +// CHECK:STDOUT: %Core.import_ref.f9d = import_ref Core//default, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.eab: = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%ImplicitAs.impl_witness.da4] +// CHECK:STDOUT: %Core.import_ref.737b3b.2: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = Core.IntLiteral] +// CHECK:STDOUT: %Core.import_ref.7e0: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%ImplicitAs.type.9df] +// CHECK:STDOUT: %Core.import_ref.f49: = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%ImplicitAs.impl_witness.750] // CHECK:STDOUT: %Core.import_ref.63cbb1.3: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.builtin] -// CHECK:STDOUT: %Core.import_ref.c57: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%ImplicitAs.type.ace] -// CHECK:STDOUT: %Core.import_ref.adef5f.2: %i32.builtin.as.ImplicitAs.impl.Convert.type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.builtin.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.e83 = impl_witness_table (%Core.import_ref.adef5f.2), @i32.builtin.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.adef5f.3: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.086 = impl_witness_table (%Core.import_ref.adef5f.3), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.017: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%ImplicitAs.type.7cb] +// CHECK:STDOUT: %Core.import_ref.06c923.2: %i32.builtin.as.ImplicitAs.impl.Convert.type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.builtin.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.5cf = impl_witness_table (%Core.import_ref.06c923.2), @i32.builtin.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.06c923.3: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.dfd = impl_witness_table (%Core.import_ref.06c923.3), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -946,22 +946,22 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %.loc4_16: type = type_literal constants.%i32.builtin [concrete = constants.%i32.builtin] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc4_27: type = type_literal constants.%i32.builtin [concrete = constants.%i32.builtin] -// CHECK:STDOUT: %impl.elem0.loc4_24: %.900 = impl_witness_access constants.%As.impl_witness, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc4_24: %.161 = impl_witness_access constants.%As.impl_witness, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] // CHECK:STDOUT: %bound_method.loc4_24: = bound_method %int_1, %impl.elem0.loc4_24 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.5d7] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc4_24: init %i32.builtin = call %bound_method.loc4_24(%int_1) [concrete = constants.%int_1.f38] // CHECK:STDOUT: %.loc4_24.1: %i32.builtin = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc4_24 [concrete = constants.%int_1.f38] // CHECK:STDOUT: %.loc4_24.2: %i32.builtin = converted %int_1, %.loc4_24.1 [concrete = constants.%int_1.f38] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc4_40: type = type_literal constants.%i32.builtin [concrete = constants.%i32.builtin] -// CHECK:STDOUT: %impl.elem0.loc4_37: %.900 = impl_witness_access constants.%As.impl_witness, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc4_37: %.161 = impl_witness_access constants.%As.impl_witness, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] // CHECK:STDOUT: %bound_method.loc4_37: = bound_method %int_2, %impl.elem0.loc4_37 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.959] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc4_37: init %i32.builtin = call %bound_method.loc4_37(%int_2) [concrete = constants.%int_2.5a1] // CHECK:STDOUT: %.loc4_37.1: %i32.builtin = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc4_37 [concrete = constants.%int_2.5a1] // CHECK:STDOUT: %.loc4_37.2: %i32.builtin = converted %int_2, %.loc4_37.1 [concrete = constants.%int_2.5a1] -// CHECK:STDOUT: %impl.elem0.loc4_32.1: %.92a = impl_witness_access constants.%AddWith.impl_witness, element0 [concrete = constants.%i32.builtin.as.AddWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc4_32.1: %.e4a = impl_witness_access constants.%AddWith.impl_witness, element0 [concrete = constants.%i32.builtin.as.AddWith.impl.Op] // CHECK:STDOUT: %bound_method.loc4_32.1: = bound_method %.loc4_24.2, %impl.elem0.loc4_32.1 [concrete = constants.%i32.builtin.as.AddWith.impl.Op.bound.351] // CHECK:STDOUT: %i32.builtin.as.AddWith.impl.Op.call: init %i32.builtin = call %bound_method.loc4_32.1(%.loc4_24.2, %.loc4_37.2) [concrete = constants.%int_3.a0f] -// CHECK:STDOUT: %impl.elem0.loc4_32.2: %.bfe = impl_witness_access constants.%ImplicitAs.impl_witness.c09, element0 [concrete = constants.%i32.builtin.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc4_32.2: %.5b0 = impl_witness_access constants.%ImplicitAs.impl_witness.750, element0 [concrete = constants.%i32.builtin.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc4_32.2: = bound_method %i32.builtin.as.AddWith.impl.Op.call, %impl.elem0.loc4_32.2 [concrete = constants.%i32.builtin.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %.loc4_32.1: %i32.builtin = value_of_initializer %i32.builtin.as.AddWith.impl.Op.call [concrete = constants.%int_3.a0f] // CHECK:STDOUT: %.loc4_32.2: %i32.builtin = converted %i32.builtin.as.AddWith.impl.Op.call, %.loc4_32.1 [concrete = constants.%int_3.a0f] @@ -977,14 +977,14 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.799)] -// CHECK:STDOUT: %Self: @As.%As.type (%As.type.799) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.26f)] +// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.c5f)] +// CHECK:STDOUT: %Self: @As.%As.type (%As.type.c5f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.37a)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Core.import_ref.123 -// CHECK:STDOUT: .Convert = imports.%Core.import_ref.262 -// CHECK:STDOUT: witness = (imports.%Core.Convert.e48) +// CHECK:STDOUT: .Self = imports.%Core.import_ref.3f4 +// CHECK:STDOUT: .Convert = imports.%Core.import_ref.e36 +// CHECK:STDOUT: witness = (imports.%Core.Convert.b64) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } @@ -994,13 +994,13 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T)> [symbolic = %AddWith.type (constants.%AddWith.type.893)] -// CHECK:STDOUT: %Self: @AddWith.%AddWith.type (%AddWith.type.893) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.66b)] +// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T)> [symbolic = %AddWith.type (constants.%AddWith.type.7e9)] +// CHECK:STDOUT: %Self: @AddWith.%AddWith.type (%AddWith.type.7e9) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.96a)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Core.import_ref.4d4 -// CHECK:STDOUT: .Op = imports.%Core.import_ref.5bb +// CHECK:STDOUT: .Self = imports.%Core.import_ref.763 +// CHECK:STDOUT: .Op = imports.%Core.import_ref.562 // CHECK:STDOUT: witness = (imports.%Core.Op) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -1011,47 +1011,47 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.6e6)] -// CHECK:STDOUT: %Self: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.b7e)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3aa)] +// CHECK:STDOUT: %Self: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.294)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Core.import_ref.7df -// CHECK:STDOUT: .Convert = imports.%Core.import_ref.195 -// CHECK:STDOUT: witness = (imports.%Core.Convert.dd6) +// CHECK:STDOUT: .Self = imports.%Core.import_ref.8c8 +// CHECK:STDOUT: .Convert = imports.%Core.import_ref.484 +// CHECK:STDOUT: witness = (imports.%Core.Convert.368) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @Core.IntLiteral.as.As.impl: imports.%Core.import_ref.f93ced.1 as imports.%Core.import_ref.f6f [from "core.carbon"] { +// CHECK:STDOUT: impl @Core.IntLiteral.as.As.impl: imports.%Core.import_ref.737b3b.1 as imports.%Core.import_ref.908 [from "core.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Core.import_ref.f83 +// CHECK:STDOUT: witness = imports.%Core.import_ref.ed7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @i32.builtin.as.AddWith.impl: imports.%Core.import_ref.63cbb1.2 as imports.%Core.import_ref.d64 [from "core.carbon"] { +// CHECK:STDOUT: impl @i32.builtin.as.AddWith.impl: imports.%Core.import_ref.63cbb1.2 as imports.%Core.import_ref.4ee [from "core.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Core.import_ref.6bb +// CHECK:STDOUT: witness = imports.%Core.import_ref.37d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @Core.IntLiteral.as.ImplicitAs.impl: imports.%Core.import_ref.f93ced.2 as imports.%Core.import_ref.d06 [from "core.carbon"] { +// CHECK:STDOUT: impl @Core.IntLiteral.as.ImplicitAs.impl: imports.%Core.import_ref.737b3b.2 as imports.%Core.import_ref.7e0 [from "core.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Core.import_ref.2d0 +// CHECK:STDOUT: witness = imports.%Core.import_ref.eab // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @i32.builtin.as.ImplicitAs.impl: imports.%Core.import_ref.63cbb1.3 as imports.%Core.import_ref.c57 [from "core.carbon"] { +// CHECK:STDOUT: impl @i32.builtin.as.ImplicitAs.impl: imports.%Core.import_ref.63cbb1.3 as imports.%Core.import_ref.017 [from "core.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Core.import_ref.4a2 +// CHECK:STDOUT: witness = imports.%Core.import_ref.f49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Int = "int.make_type_signed" [from "core.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @As.WithSelf.Convert(imports.%Core.import_ref.b3bc94.2: type, imports.%Core.import_ref.e2e926.2: @As.%As.type (%As.type.799)) [from "core.carbon"] { +// CHECK:STDOUT: generic fn @As.WithSelf.Convert(imports.%Core.import_ref.b3bc94.2: type, imports.%Core.import_ref.d2cec9.2: @As.%As.type (%As.type.c5f)) [from "core.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.799)] -// CHECK:STDOUT: %Self: @As.WithSelf.Convert.%As.type (%As.type.799) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.26f)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.eb7)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.89d)] +// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.c5f)] +// CHECK:STDOUT: %Self: @As.WithSelf.Convert.%As.type (%As.type.c5f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.37a)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.d4a)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.e33)] // CHECK:STDOUT: %.1: Core.Form = init_form %T [symbolic = %.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %T [symbolic = %pattern_type.2 (constants.%pattern_type.51d)] // CHECK:STDOUT: @@ -1060,25 +1060,25 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: // CHECK:STDOUT: fn @Core.IntLiteral.as.As.impl.Convert = "int.convert_checked" [from "core.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AddWith.WithSelf.Op(imports.%Core.import_ref.b3bc94.5: type, imports.%Core.import_ref.9d89b2.2: @AddWith.%AddWith.type (%AddWith.type.893)) [from "core.carbon"] { +// CHECK:STDOUT: generic fn @AddWith.WithSelf.Op(imports.%Core.import_ref.b3bc94.5: type, imports.%Core.import_ref.4c6974.2: @AddWith.%AddWith.type (%AddWith.type.7e9)) [from "core.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T)> [symbolic = %AddWith.type (constants.%AddWith.type.893)] -// CHECK:STDOUT: %Self: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.893) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.66b)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.853)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.119)] -// CHECK:STDOUT: %.1: Core.Form = init_form %Self.as_type [symbolic = %.1 (constants.%.668)] +// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T)> [symbolic = %AddWith.type (constants.%AddWith.type.7e9)] +// CHECK:STDOUT: %Self: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.7e9) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.96a)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.331)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.aed)] +// CHECK:STDOUT: %.1: Core.Form = init_form %Self.as_type [symbolic = %.1 (constants.%.4cc)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @i32.builtin.as.AddWith.impl.Op = "int.sadd" [from "core.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(imports.%Core.import_ref.b3bc94.8: type, imports.%Core.import_ref.81ed31.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6)) [from "core.carbon"] { +// CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(imports.%Core.import_ref.b3bc94.8: type, imports.%Core.import_ref.f19eaa.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa)) [from "core.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.6e6)] -// CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.b7e)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.8c1)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.cbe)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3aa)] +// CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.294)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.ef0)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.20e)] // CHECK:STDOUT: %.1: Core.Form = init_form %T [symbolic = %.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %T [symbolic = %pattern_type.2 (constants.%pattern_type.51d)] // CHECK:STDOUT: @@ -1095,30 +1095,30 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %int_4.loc4_52: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %int_3.loc4_56: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc4_61: type = type_literal constants.%i32.builtin [concrete = constants.%i32.builtin] -// CHECK:STDOUT: %impl.elem0.loc4_58: %.900 = impl_witness_access constants.%As.impl_witness, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc4_58: %.161 = impl_witness_access constants.%As.impl_witness, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] // CHECK:STDOUT: %bound_method.loc4_58: = bound_method %int_3.loc4_56, %impl.elem0.loc4_58 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.94b] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc4_58: init %i32.builtin = call %bound_method.loc4_58(%int_3.loc4_56) [concrete = constants.%int_3.a0f] // CHECK:STDOUT: %.loc4_58.1: %i32.builtin = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc4_58 [concrete = constants.%int_3.a0f] // CHECK:STDOUT: %.loc4_58.2: %i32.builtin = converted %int_3.loc4_56, %.loc4_58.1 [concrete = constants.%int_3.a0f] // CHECK:STDOUT: %int_4.loc4_69: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %.loc4_74: type = type_literal constants.%i32.builtin [concrete = constants.%i32.builtin] -// CHECK:STDOUT: %impl.elem0.loc4_71: %.900 = impl_witness_access constants.%As.impl_witness, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc4_71: %.161 = impl_witness_access constants.%As.impl_witness, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] // CHECK:STDOUT: %bound_method.loc4_71: = bound_method %int_4.loc4_69, %impl.elem0.loc4_71 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.0f9] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc4_71: init %i32.builtin = call %bound_method.loc4_71(%int_4.loc4_69) [concrete = constants.%int_4.4f1] // CHECK:STDOUT: %.loc4_71.1: %i32.builtin = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc4_71 [concrete = constants.%int_4.4f1] // CHECK:STDOUT: %.loc4_71.2: %i32.builtin = converted %int_4.loc4_69, %.loc4_71.1 [concrete = constants.%int_4.4f1] -// CHECK:STDOUT: %impl.elem0.loc4_66: %.92a = impl_witness_access constants.%AddWith.impl_witness, element0 [concrete = constants.%i32.builtin.as.AddWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc4_66: %.e4a = impl_witness_access constants.%AddWith.impl_witness, element0 [concrete = constants.%i32.builtin.as.AddWith.impl.Op] // CHECK:STDOUT: %bound_method.loc4_66: = bound_method %.loc4_58.2, %impl.elem0.loc4_66 [concrete = constants.%i32.builtin.as.AddWith.impl.Op.bound.c75] // CHECK:STDOUT: %i32.builtin.as.AddWith.impl.Op.call: init %i32.builtin = call %bound_method.loc4_66(%.loc4_58.2, %.loc4_71.2) [concrete = constants.%int_7] // CHECK:STDOUT: %.loc4_78.1: %tuple.type = tuple_literal (%int_3.loc4_49, %int_4.loc4_52, %i32.builtin.as.AddWith.impl.Op.call) [concrete = constants.%tuple] -// CHECK:STDOUT: %impl.elem0.loc4_78.1: %.966 = impl_witness_access constants.%ImplicitAs.impl_witness.d67, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc4_78.1: %.b73 = impl_witness_access constants.%ImplicitAs.impl_witness.da4, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc4_78.1: = bound_method %int_3.loc4_49, %impl.elem0.loc4_78.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.94b] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc4_78.1: init %i32.builtin = call %bound_method.loc4_78.1(%int_3.loc4_49) [concrete = constants.%int_3.a0f] // CHECK:STDOUT: %.loc4_78.2: init %i32.builtin = converted %int_3.loc4_49, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc4_78.1 [concrete = constants.%int_3.a0f] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc4_78.3: ref %i32.builtin = array_index file.%arr.var, %int_0 // CHECK:STDOUT: %.loc4_78.4: init %i32.builtin to %.loc4_78.3 = in_place_init %.loc4_78.2 [concrete = constants.%int_3.a0f] -// CHECK:STDOUT: %impl.elem0.loc4_78.2: %.966 = impl_witness_access constants.%ImplicitAs.impl_witness.d67, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc4_78.2: %.b73 = impl_witness_access constants.%ImplicitAs.impl_witness.da4, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc4_78.2: = bound_method %int_4.loc4_52, %impl.elem0.loc4_78.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.0f9] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc4_78.2: init %i32.builtin = call %bound_method.loc4_78.2(%int_4.loc4_52) [concrete = constants.%int_4.4f1] // CHECK:STDOUT: %.loc4_78.5: init %i32.builtin = converted %int_4.loc4_52, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc4_78.2 [concrete = constants.%int_4.4f1] @@ -1138,14 +1138,14 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @As.WithSelf(constants.%T, constants.%Self.26f) {} +// CHECK:STDOUT: specific @As.WithSelf(constants.%T, constants.%Self.37a) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @As.WithSelf.Convert(constants.%T, constants.%Self.26f) { +// CHECK:STDOUT: specific @As.WithSelf.Convert(constants.%T, constants.%Self.37a) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %As.type => constants.%As.type.799 -// CHECK:STDOUT: %Self => constants.%Self.26f -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.eb7 -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.89d +// CHECK:STDOUT: %As.type => constants.%As.type.c5f +// CHECK:STDOUT: %Self => constants.%Self.37a +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.d4a +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.e33 // CHECK:STDOUT: %.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -1154,89 +1154,89 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => constants.%i32.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %As.type => constants.%As.type.5d6 -// CHECK:STDOUT: %Self => constants.%Self.4e8 +// CHECK:STDOUT: %As.type => constants.%As.type.dfb +// CHECK:STDOUT: %Self => constants.%Self.256 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @As.WithSelf(constants.%i32.builtin, constants.%Self.26f) { +// CHECK:STDOUT: specific @As.WithSelf(constants.%i32.builtin, constants.%Self.37a) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %As.type => constants.%As.type.5d6 -// CHECK:STDOUT: %Self => constants.%Self.26f -// CHECK:STDOUT: %As.WithSelf.Convert.type => constants.%As.WithSelf.Convert.type.e34 -// CHECK:STDOUT: %As.WithSelf.Convert => constants.%As.WithSelf.Convert.5e6 -// CHECK:STDOUT: %As.assoc_type => constants.%As.assoc_type.b5c -// CHECK:STDOUT: %assoc0 => constants.%assoc0.bff +// CHECK:STDOUT: %As.type => constants.%As.type.dfb +// CHECK:STDOUT: %Self => constants.%Self.37a +// CHECK:STDOUT: %As.WithSelf.Convert.type => constants.%As.WithSelf.Convert.type.675 +// CHECK:STDOUT: %As.WithSelf.Convert => constants.%As.WithSelf.Convert.dd6 +// CHECK:STDOUT: %As.assoc_type => constants.%As.assoc_type.7f2 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.656 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @As.WithSelf(constants.%i32.builtin, constants.%As.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %As.type => constants.%As.type.5d6 +// CHECK:STDOUT: %As.type => constants.%As.type.dfb // CHECK:STDOUT: %Self => constants.%As.facet -// CHECK:STDOUT: %As.WithSelf.Convert.type => constants.%As.WithSelf.Convert.type.9cc -// CHECK:STDOUT: %As.WithSelf.Convert => constants.%As.WithSelf.Convert.88b -// CHECK:STDOUT: %As.assoc_type => constants.%As.assoc_type.b5c -// CHECK:STDOUT: %assoc0 => constants.%assoc0.bff +// CHECK:STDOUT: %As.WithSelf.Convert.type => constants.%As.WithSelf.Convert.type.dbd +// CHECK:STDOUT: %As.WithSelf.Convert => constants.%As.WithSelf.Convert.82a +// CHECK:STDOUT: %As.assoc_type => constants.%As.assoc_type.7f2 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.656 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AddWith(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.WithSelf(constants.%T, constants.%Self.66b) {} +// CHECK:STDOUT: specific @AddWith.WithSelf(constants.%T, constants.%Self.96a) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.WithSelf.Op(constants.%T, constants.%Self.66b) { +// CHECK:STDOUT: specific @AddWith.WithSelf.Op(constants.%T, constants.%Self.96a) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.893 -// CHECK:STDOUT: %Self => constants.%Self.66b -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.853 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.119 -// CHECK:STDOUT: %.1 => constants.%.668 +// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.7e9 +// CHECK:STDOUT: %Self => constants.%Self.96a +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.331 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.aed +// CHECK:STDOUT: %.1 => constants.%.4cc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AddWith(constants.%i32.builtin) { // CHECK:STDOUT: %T => constants.%i32.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.4d9 -// CHECK:STDOUT: %Self => constants.%Self.0aa +// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.7c6 +// CHECK:STDOUT: %Self => constants.%Self.bd2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.WithSelf(constants.%i32.builtin, constants.%Self.66b) { +// CHECK:STDOUT: specific @AddWith.WithSelf(constants.%i32.builtin, constants.%Self.96a) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.4d9 -// CHECK:STDOUT: %Self => constants.%Self.66b -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.c7d -// CHECK:STDOUT: %AddWith.WithSelf.Op => constants.%AddWith.WithSelf.Op.644 -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.b31 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.fba +// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.7c6 +// CHECK:STDOUT: %Self => constants.%Self.96a +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.0ff +// CHECK:STDOUT: %AddWith.WithSelf.Op => constants.%AddWith.WithSelf.Op.19f +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.439 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.e3c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AddWith.WithSelf(constants.%i32.builtin, constants.%AddWith.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.4d9 +// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.7c6 // CHECK:STDOUT: %Self => constants.%AddWith.facet -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.9e3 -// CHECK:STDOUT: %AddWith.WithSelf.Op => constants.%AddWith.WithSelf.Op.e6f -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.b31 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.fba +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.43a +// CHECK:STDOUT: %AddWith.WithSelf.Op => constants.%AddWith.WithSelf.Op.128 +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.439 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.e3c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%T, constants.%Self.b7e) {} +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%T, constants.%Self.294) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(constants.%T, constants.%Self.b7e) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(constants.%T, constants.%Self.294) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.6e6 -// CHECK:STDOUT: %Self => constants.%Self.b7e -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.8c1 -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.cbe +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.3aa +// CHECK:STDOUT: %Self => constants.%Self.294 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.ef0 +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.20e // CHECK:STDOUT: %.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -1245,59 +1245,59 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => Core.IntLiteral // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.ace -// CHECK:STDOUT: %Self => constants.%Self.442 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.7cb +// CHECK:STDOUT: %Self => constants.%Self.f63 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(Core.IntLiteral, constants.%Self.b7e) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(Core.IntLiteral, constants.%Self.294) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => Core.IntLiteral -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.ace -// CHECK:STDOUT: %Self => constants.%Self.b7e -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.f08 -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.ce8 -// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.175 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.bd7 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.7cb +// CHECK:STDOUT: %Self => constants.%Self.294 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.e70 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.792 +// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.e73 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.625 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%i32.builtin) { // CHECK:STDOUT: %T => constants.%i32.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.7d9 -// CHECK:STDOUT: %Self => constants.%Self.6fb +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9df +// CHECK:STDOUT: %Self => constants.%Self.a70 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(Core.IntLiteral, constants.%ImplicitAs.facet.5b2) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(Core.IntLiteral, constants.%ImplicitAs.facet.a82) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => Core.IntLiteral -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.ace -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.5b2 -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.8e3 -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.827 -// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.175 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.bd7 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.7cb +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.a82 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.7af +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.a32 +// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.e73 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.625 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%i32.builtin, constants.%Self.b7e) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%i32.builtin, constants.%Self.294) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.7d9 -// CHECK:STDOUT: %Self => constants.%Self.b7e -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.d9c -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.fa0 -// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.317 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.7d8 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9df +// CHECK:STDOUT: %Self => constants.%Self.294 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.51c +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.78c +// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.081 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.da6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%i32.builtin, constants.%ImplicitAs.facet.1ae) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%i32.builtin, constants.%ImplicitAs.facet.9b9) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32.builtin -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.7d9 -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.1ae -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.1ae -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.968 -// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.317 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.7d8 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9df +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.9b9 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.4fb +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.838 +// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.081 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.da6 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/builtin/definition.carbon b/toolchain/check/testdata/function/builtin/definition.carbon index 811ed85a4254..8ca92fd8b433 100644 --- a/toolchain/check/testdata/function/builtin/definition.carbon +++ b/toolchain/check/testdata/function/builtin/definition.carbon @@ -21,8 +21,8 @@ fn Add(a: i32, b: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %Add.type: type = fn_type @Add [concrete] // CHECK:STDOUT: %Add: %Add.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -43,15 +43,15 @@ fn Add(a: i32, b: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Add.decl: %Add.type = fn_decl @Add [concrete = constants.%Add] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc15_27 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc15_27 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_27: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_27 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_27 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc15_11: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: %i32 = value_binding a, %a.param diff --git a/toolchain/check/testdata/function/builtin/fail_redefined.carbon b/toolchain/check/testdata/function/builtin/fail_redefined.carbon index 95cf5a8684f1..fcab3e3d194c 100644 --- a/toolchain/check/testdata/function/builtin/fail_redefined.carbon +++ b/toolchain/check/testdata/function/builtin/fail_redefined.carbon @@ -50,30 +50,30 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %A.type.f924ba.1: type = fn_type @A.loc15 [concrete] -// CHECK:STDOUT: %A.c9c0ce.1: %A.type.f924ba.1 = struct_value () [concrete] -// CHECK:STDOUT: %A.type.f924ba.2: type = fn_type @A.loc23 [concrete] -// CHECK:STDOUT: %A.c9c0ce.2: %A.type.f924ba.2 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %A.type.9f4a6d.1: type = fn_type @A.loc15 [concrete] +// CHECK:STDOUT: %A.921eb9.1: %A.type.9f4a6d.1 = struct_value () [concrete] +// CHECK:STDOUT: %A.type.9f4a6d.2: type = fn_type @A.loc23 [concrete] +// CHECK:STDOUT: %A.921eb9.2: %A.type.9f4a6d.2 = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %B.type.d41625.1: type = fn_type @B.loc25 [concrete] -// CHECK:STDOUT: %B.a56e7d.1: %B.type.d41625.1 = struct_value () [concrete] -// CHECK:STDOUT: %B.type.d41625.2: type = fn_type @B.loc33 [concrete] -// CHECK:STDOUT: %B.a56e7d.2: %B.type.d41625.2 = struct_value () [concrete] -// CHECK:STDOUT: %C.type.4c7da9.1: type = fn_type @C.loc35 [concrete] -// CHECK:STDOUT: %C.ade839.1: %C.type.4c7da9.1 = struct_value () [concrete] -// CHECK:STDOUT: %C.type.4c7da9.2: type = fn_type @C.loc43 [concrete] -// CHECK:STDOUT: %C.ade839.2: %C.type.4c7da9.2 = struct_value () [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %B.type.573c71.1: type = fn_type @B.loc25 [concrete] +// CHECK:STDOUT: %B.08ed21.1: %B.type.573c71.1 = struct_value () [concrete] +// CHECK:STDOUT: %B.type.573c71.2: type = fn_type @B.loc33 [concrete] +// CHECK:STDOUT: %B.08ed21.2: %B.type.573c71.2 = struct_value () [concrete] +// CHECK:STDOUT: %C.type.322e3b.1: type = fn_type @C.loc35 [concrete] +// CHECK:STDOUT: %C.010386.1: %C.type.322e3b.1 = struct_value () [concrete] +// CHECK:STDOUT: %C.type.322e3b.2: type = fn_type @C.loc43 [concrete] +// CHECK:STDOUT: %C.010386.2: %C.type.322e3b.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -85,8 +85,8 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -97,16 +97,16 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: .C = %C.decl.loc35 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %A.decl.loc15: %A.type.f924ba.1 = fn_decl @A.loc15 [concrete = constants.%A.c9c0ce.1] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %m.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %m.patt: %pattern_type.104 = at_binding_pattern m, %m.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc15_25 [concrete] +// CHECK:STDOUT: %A.decl.loc15: %A.type.9f4a6d.1 = fn_decl @A.loc15 [concrete = constants.%A.921eb9.1] { +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %m.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = at_binding_pattern m, %m.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc15_25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_25: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_25 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_25 [concrete = constants.%.795] // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc15_9: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param @@ -116,16 +116,16 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param2 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %A.decl.loc23: %A.type.f924ba.2 = fn_decl @A.loc23 [concrete = constants.%A.c9c0ce.2] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %m.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %m.patt: %pattern_type.104 = at_binding_pattern m, %m.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc23_32 [concrete] +// CHECK:STDOUT: %A.decl.loc23: %A.type.9f4a6d.2 = fn_decl @A.loc23 [concrete = constants.%A.921eb9.2] { +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %m.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = at_binding_pattern m, %m.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc23_32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc23_32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc23: Core.Form = init_form %i32.loc23_32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc23: Core.Form = init_form %i32.loc23_32 [concrete = constants.%.795] // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc23_9: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param @@ -135,16 +135,16 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param2 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %B.decl.loc25: %B.type.d41625.1 = fn_decl @B.loc25 [concrete = constants.%B.a56e7d.1] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %m.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %m.patt: %pattern_type.104 = at_binding_pattern m, %m.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc25_32 [concrete] +// CHECK:STDOUT: %B.decl.loc25: %B.type.573c71.1 = fn_decl @B.loc25 [concrete = constants.%B.08ed21.1] { +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %m.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = at_binding_pattern m, %m.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc25_32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc25_32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32.loc25_32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32.loc25_32 [concrete = constants.%.795] // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc25_9: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param @@ -154,16 +154,16 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param2 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %B.decl.loc33: %B.type.d41625.2 = fn_decl @B.loc33 [concrete = constants.%B.a56e7d.2] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %m.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %m.patt: %pattern_type.104 = at_binding_pattern m, %m.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc33_25 [concrete] +// CHECK:STDOUT: %B.decl.loc33: %B.type.573c71.2 = fn_decl @B.loc33 [concrete = constants.%B.08ed21.2] { +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %m.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = at_binding_pattern m, %m.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc33_25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc33_25: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc33: Core.Form = init_form %i32.loc33_25 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc33: Core.Form = init_form %i32.loc33_25 [concrete = constants.%.795] // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc33_9: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param @@ -173,16 +173,16 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param2 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %C.decl.loc35: %C.type.4c7da9.1 = fn_decl @C.loc35 [concrete = constants.%C.ade839.1] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %m.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %m.patt: %pattern_type.104 = at_binding_pattern m, %m.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc35_25 [concrete] +// CHECK:STDOUT: %C.decl.loc35: %C.type.322e3b.1 = fn_decl @C.loc35 [concrete = constants.%C.010386.1] { +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %m.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = at_binding_pattern m, %m.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc35_25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc35_25: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc35: Core.Form = init_form %i32.loc35_25 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc35: Core.Form = init_form %i32.loc35_25 [concrete = constants.%.795] // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc35_9: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param @@ -192,16 +192,16 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param2 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %C.decl.loc43: %C.type.4c7da9.2 = fn_decl @C.loc43 [concrete = constants.%C.ade839.2] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %m.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %m.patt: %pattern_type.104 = at_binding_pattern m, %m.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc43_25 [concrete] +// CHECK:STDOUT: %C.decl.loc43: %C.type.322e3b.2 = fn_decl @C.loc43 [concrete = constants.%C.010386.2] { +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %m.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = at_binding_pattern m, %m.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc43_25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc43_25: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc43: Core.Form = init_form %i32.loc43_25 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc43: Core.Form = init_form %i32.loc43_25 [concrete = constants.%.795] // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc43_9: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param @@ -218,7 +218,7 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: fn @A.loc23(%n.param: %i32, %m.param: %i32) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc23_45.1: = bound_method %n.ref, %impl.elem0 // 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.loc23_45.2: = bound_method %n.ref, %specific_fn @@ -229,7 +229,7 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd"; // CHECK:STDOUT: fn @B.loc25(%n.param: %i32, %m.param: %i32) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc25_45.1: = bound_method %n.ref, %impl.elem0 // 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.loc25_45.2: = bound_method %n.ref, %specific_fn diff --git a/toolchain/check/testdata/function/builtin/method.carbon b/toolchain/check/testdata/function/builtin/method.carbon index cfc48dc62491..19235fb07ef9 100644 --- a/toolchain/check/testdata/function/builtin/method.carbon +++ b/toolchain/check/testdata/function/builtin/method.carbon @@ -26,87 +26,87 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.ed0: type = facet_access_type %Self.179 [symbolic] -// CHECK:STDOUT: %pattern_type.a3c: type = pattern_type %Self.as_type.ed0 [symbolic] -// CHECK:STDOUT: %.70c: Core.Form = init_form %Self.as_type.ed0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.d9f: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.179) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.592: %I.WithSelf.F.type.d9f = struct_value () [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.c84: type = facet_access_type %Self.37e [symbolic] +// CHECK:STDOUT: %pattern_type.c60: type = pattern_type %Self.as_type.c84 [symbolic] +// CHECK:STDOUT: %.8fc: Core.Form = init_form %Self.as_type.c84 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.dcc: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.37e) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ec6: %I.WithSelf.F.type.dcc = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.8fc: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %assoc0.6c9: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @i32.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %i32.as.I.impl.F.type: type = fn_type @i32.as.I.impl.F [concrete] // CHECK:STDOUT: %i32.as.I.impl.F: %i32.as.I.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %i32, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.d9d: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.b03: %I.WithSelf.F.type.d9d = struct_value () [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.b7c: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.ae9: %I.WithSelf.F.type.b7c = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.c00: type = facet_type <@As, @As(%i32)> [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.155: type = facet_type <@As, @As(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] // CHECK:STDOUT: %From: Core.IntLiteral = symbolic_binding From, 0 [symbolic] -// CHECK:STDOUT: %As.impl_witness.54d: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.421: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.978: %Core.IntLiteral.as.As.impl.Convert.type.421 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.c00 = facet_value Core.IntLiteral, (%As.impl_witness.54d) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.f0c: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] -// CHECK:STDOUT: %.c18: type = fn_type_with_self_type %As.WithSelf.Convert.type.f0c, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.978 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.978, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.38f: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %.1d4: type = fn_type_with_self_type %I.WithSelf.F.type.d9d, %I.facet [concrete] -// CHECK:STDOUT: %i32.as.I.impl.F.bound: = bound_method %int_1.d9c, %i32.as.I.impl.F [concrete] +// CHECK:STDOUT: %As.impl_witness.03e: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.e79: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.8a4: %Core.IntLiteral.as.As.impl.Convert.type.e79 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.155 = facet_value Core.IntLiteral, (%As.impl_witness.03e) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.8ea: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] +// CHECK:STDOUT: %.fbc: type = fn_type_with_self_type %As.WithSelf.Convert.type.8ea, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.8a4 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.8a4, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.18b: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %.21e: type = fn_type_with_self_type %I.WithSelf.F.type.b7c, %I.facet [concrete] +// CHECK:STDOUT: %i32.as.I.impl.F.bound: = bound_method %int_1.0c6, %i32.as.I.impl.F [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.f73: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.34b: %Int.as.ImplicitAs.impl.Convert.type.f73 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.840: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.840) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet.840 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.062: = impl_witness imports.%ImplicitAs.impl_witness_table.eac, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.337: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.64e: %Int.as.ImplicitAs.impl.Convert.type.337 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.89e: %ImplicitAs.type.ace = facet_value %i32, (%ImplicitAs.impl_witness.062) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b68: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.89e) [concrete] -// CHECK:STDOUT: %.7a9: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b68, %ImplicitAs.facet.89e [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %int_3.6cc, %Int.as.ImplicitAs.impl.Convert.64e [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.64e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.353: = bound_method %int_3.6cc, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.48d: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.0f9: %Int.as.ImplicitAs.impl.Convert.type.48d = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.9f1: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.9f1) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet.9f1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.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: %int_3.410: %i32 = int_value 3 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.416: = impl_witness imports.%ImplicitAs.impl_witness_table.b8b, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.683: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.69e: %Int.as.ImplicitAs.impl.Convert.type.683 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.657: %ImplicitAs.type.7cb = facet_value %i32, (%ImplicitAs.impl_witness.416) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.dc6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.657) [concrete] +// CHECK:STDOUT: %.b08: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.dc6, %ImplicitAs.facet.657 [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %int_3.410, %Int.as.ImplicitAs.impl.Convert.69e [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.69e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.545: = bound_method %int_3.410, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_3.1ba, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.bec: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.771: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.f71: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%array_type) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.ea5: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%array_type) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.950: %T.as.DefaultOrUnformed.impl.Op.type.ea5 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %array_type, (%DefaultOrUnformed.impl_witness.f71) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.950, @T.as.DefaultOrUnformed.impl.Op(%array_type) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.e6f: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%array_type) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.f29: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%array_type) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.2c9: %T.as.DefaultOrUnformed.impl.Op.type.f29 = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %array_type, (%DefaultOrUnformed.impl_witness.e6f) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.2c9, @T.as.DefaultOrUnformed.impl.Op(%array_type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -119,17 +119,17 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.835: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.f73) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.34b)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.eac = impl_witness_table (%Core.import_ref.835), @Int.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.32e: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.48d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.0f9)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b8b = impl_witness_table (%Core.import_ref.32e), @Int.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -145,40 +145,40 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %arr.patt: %pattern_type.bec = ref_binding_pattern arr [concrete] -// CHECK:STDOUT: %arr.var_patt: %pattern_type.bec = var_pattern %arr.patt [concrete] +// CHECK:STDOUT: %arr.patt: %pattern_type.771 = ref_binding_pattern arr [concrete] +// CHECK:STDOUT: %arr.var_patt: %pattern_type.771 = var_pattern %arr.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %arr.var: ref %array_type = var %arr.var_patt [concrete] // CHECK:STDOUT: %.loc23_40: type = splice_block %array_type [concrete = constants.%array_type] { // CHECK:STDOUT: %i32.loc23_16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i32.loc23_27: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc23_24: %.c18 = impl_witness_access constants.%As.impl_witness.54d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.978] +// CHECK:STDOUT: %impl.elem0.loc23_24: %.fbc = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.8a4] // CHECK:STDOUT: %bound_method.loc23_24.1: = bound_method %int_1, %impl.elem0.loc23_24 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc23_24: = specific_function %impl.elem0.loc23_24, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc23_24.2: = bound_method %int_1, %specific_fn.loc23_24 [concrete = constants.%bound_method.38f] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc23_24.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc23_24.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc23_24.2: %i32 = converted %int_1, %.loc23_24.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc23_24.2: = bound_method %int_1, %specific_fn.loc23_24 [concrete = constants.%bound_method.18b] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc23_24.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc23_24.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc23_24.2: %i32 = converted %int_1, %.loc23_24.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %I.ref: type = name_ref I, %I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.WithSelf.%assoc0 [concrete = constants.%assoc0.8fc] -// CHECK:STDOUT: %impl.elem0.loc23_31: %.1d4 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%i32.as.I.impl.F] +// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.WithSelf.%assoc0 [concrete = constants.%assoc0.6c9] +// CHECK:STDOUT: %impl.elem0.loc23_31: %.21e = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%i32.as.I.impl.F] // CHECK:STDOUT: %bound_method.loc23_31: = bound_method %.loc23_24.2, %impl.elem0.loc23_31 [concrete = constants.%i32.as.I.impl.F.bound] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc23_38: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc23_38: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc23_38.1: = bound_method %int_2, %impl.elem0.loc23_38 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc23_38: = specific_function %impl.elem0.loc23_38, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc23_38.2: = bound_method %int_2, %specific_fn.loc23_38 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc23_38.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc23_38.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc23_38.2: %i32 = converted %int_2, %.loc23_38.1 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %i32.as.I.impl.F.call: init %i32 = call %bound_method.loc23_31(%.loc23_24.2, %.loc23_38.2) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %impl.elem0.loc23_39: %.7a9 = impl_witness_access constants.%ImplicitAs.impl_witness.062, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.64e] +// CHECK:STDOUT: %bound_method.loc23_38.2: = bound_method %int_2, %specific_fn.loc23_38 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc23_38.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc23_38.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc23_38.2: %i32 = converted %int_2, %.loc23_38.1 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %i32.as.I.impl.F.call: init %i32 = call %bound_method.loc23_31(%.loc23_24.2, %.loc23_38.2) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %impl.elem0.loc23_39: %.b08 = impl_witness_access constants.%ImplicitAs.impl_witness.416, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.69e] // CHECK:STDOUT: %bound_method.loc23_39.1: = bound_method %i32.as.I.impl.F.call, %impl.elem0.loc23_39 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc23_39: = specific_function %impl.elem0.loc23_39, @Int.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Int.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc23_39.2: = bound_method %i32.as.I.impl.F.call, %specific_fn.loc23_39 [concrete = constants.%bound_method.353] -// CHECK:STDOUT: %.loc23_39.1: %i32 = value_of_initializer %i32.as.I.impl.F.call [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc23_39.2: %i32 = converted %i32.as.I.impl.F.call, %.loc23_39.1 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc23_39.2: = bound_method %i32.as.I.impl.F.call, %specific_fn.loc23_39 [concrete = constants.%bound_method.545] +// CHECK:STDOUT: %.loc23_39.1: %i32 = value_of_initializer %i32.as.I.impl.F.call [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc23_39.2: %i32 = converted %i32.as.I.impl.F.call, %.loc23_39.1 [concrete = constants.%int_3.410] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.loc23_39.2(%.loc23_39.2) [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc23_39.3: Core.IntLiteral = value_of_initializer %Int.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc23_39.4: Core.IntLiteral = converted %i32.as.I.impl.F.call, %.loc23_39.3 [concrete = constants.%int_3.1ba] @@ -188,40 +188,40 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.d9f) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.592)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.a3c) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.a3c) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.a3c) = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: @I.WithSelf.F.%pattern_type (%pattern_type.a3c) = at_binding_pattern other, %other.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.a3c) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @I.WithSelf.F.%pattern_type (%pattern_type.a3c) = return_slot_pattern %return.param_patt, %.loc16_36.2 [concrete] +// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.dcc) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ec6)] { +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = return_slot_pattern %return.param_patt, %.loc16_36.2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.ref.loc16_36: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.179)] -// CHECK:STDOUT: %Self.as_type.loc16_36: type = facet_access_type %Self.ref.loc16_36 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.ed0)] -// CHECK:STDOUT: %.loc16_36.2: type = converted %Self.ref.loc16_36, %Self.as_type.loc16_36 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.ed0)] -// CHECK:STDOUT: %.loc16_36.3: Core.Form = init_form %.loc16_36.2 [symbolic = %.loc16_36.1 (constants.%.70c)] -// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.ed0) = value_param call_param0 -// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.ed0)] { -// CHECK:STDOUT: %Self.ref.loc16_14: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.179)] -// CHECK:STDOUT: %Self.as_type.loc16_14.2: type = facet_access_type %Self.ref.loc16_14 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.ed0)] -// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref.loc16_14, %Self.as_type.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.ed0)] +// CHECK:STDOUT: %Self.ref.loc16_36: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.37e)] +// CHECK:STDOUT: %Self.as_type.loc16_36: type = facet_access_type %Self.ref.loc16_36 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.c84)] +// CHECK:STDOUT: %.loc16_36.2: type = converted %Self.ref.loc16_36, %Self.as_type.loc16_36 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.c84)] +// CHECK:STDOUT: %.loc16_36.3: Core.Form = init_form %.loc16_36.2 [symbolic = %.loc16_36.1 (constants.%.8fc)] +// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.c84) = value_param call_param0 +// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.c84)] { +// CHECK:STDOUT: %Self.ref.loc16_14: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.37e)] +// CHECK:STDOUT: %Self.as_type.loc16_14.2: type = facet_access_type %Self.ref.loc16_14 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.c84)] +// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref.loc16_14, %Self.as_type.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.c84)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.ed0) = value_binding self, %self.param -// CHECK:STDOUT: %other.param: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.ed0) = value_param call_param1 -// CHECK:STDOUT: %.loc16_27.1: type = splice_block %.loc16_27.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.ed0)] { -// CHECK:STDOUT: %Self.ref.loc16_27: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.179)] -// CHECK:STDOUT: %Self.as_type.loc16_27: type = facet_access_type %Self.ref.loc16_27 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.ed0)] -// CHECK:STDOUT: %.loc16_27.2: type = converted %Self.ref.loc16_27, %Self.as_type.loc16_27 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.ed0)] +// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.c84) = value_binding self, %self.param +// CHECK:STDOUT: %other.param: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.c84) = value_param call_param1 +// CHECK:STDOUT: %.loc16_27.1: type = splice_block %.loc16_27.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.c84)] { +// CHECK:STDOUT: %Self.ref.loc16_27: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.37e)] +// CHECK:STDOUT: %Self.as_type.loc16_27: type = facet_access_type %Self.ref.loc16_27 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.c84)] +// CHECK:STDOUT: %.loc16_27.2: type = converted %Self.ref.loc16_27, %Self.as_type.loc16_27 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.c84)] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.ed0) = value_binding other, %other.param -// CHECK:STDOUT: %return.param: ref @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.ed0) = out_param call_param2 -// CHECK:STDOUT: %return: ref @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.ed0) = return_slot %return.param +// CHECK:STDOUT: %other: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.c84) = value_binding other, %other.param +// CHECK:STDOUT: %return.param: ref @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.c84) = out_param call_param2 +// CHECK:STDOUT: %return: ref @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.c84) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0.8fc] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0.6c9] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -233,15 +233,15 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: // CHECK:STDOUT: impl @i32.as.I.impl: %i32 as %I.ref { // CHECK:STDOUT: %i32.as.I.impl.F.decl: %i32.as.I.impl.F.type = fn_decl @i32.as.I.impl.F [concrete = constants.%i32.as.I.impl.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.104 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.104 = at_binding_pattern other, %other.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc20_34 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.6b6 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.6b6 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc20_34 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc20_34: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32.loc20_34 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32.loc20_34 [concrete = constants.%.795] // CHECK:STDOUT: %self.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc20_14: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %self: %i32 = value_binding self, %self.param @@ -261,54 +261,54 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.179)] -// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.ed0)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type.a3c)] -// CHECK:STDOUT: %.loc16_36.1: Core.Form = init_form %Self.as_type.loc16_14.1 [symbolic = %.loc16_36.1 (constants.%.70c)] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.37e)] +// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.c84)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type.c60)] +// CHECK:STDOUT: %.loc16_36.1: Core.Form = init_form %Self.as_type.loc16_14.1 [symbolic = %.loc16_36.1 (constants.%.8fc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.ed0), %other.param: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.ed0)) -> out %return.param: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.ed0); +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.c84), %other.param: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.c84)) -> out %return.param: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.c84); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @i32.as.I.impl.F(%self.param: %i32, %other.param: %i32) -> out %return.param: %i32 = "int.sadd"; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%array_type, (constants.%DefaultOrUnformed.impl_witness.f71) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%array_type, (constants.%DefaultOrUnformed.impl_witness.e6f) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc23_41.1: %DefaultOrUnformed.type = converted constants.%array_type, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc23_41.1 [concrete = constants.%array_type] // CHECK:STDOUT: %.loc23_41.2: type = converted %.loc23_41.1, %as_type [concrete = constants.%array_type] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.950, @T.as.DefaultOrUnformed.impl.Op(constants.%array_type) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.2c9, @T.as.DefaultOrUnformed.impl.Op(constants.%array_type) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %.loc23_1: ref %array_type = splice_block file.%arr.var [concrete = file.%arr.var] {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %array_type to %.loc23_1 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign file.%arr.var, %T.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.179 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d9f -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.592 +// CHECK:STDOUT: %Self => constants.%Self.37e +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.dcc +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ec6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.179) { -// CHECK:STDOUT: %Self => constants.%Self.179 -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type.ed0 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a3c -// CHECK:STDOUT: %.loc16_36.1 => constants.%.70c +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.37e) { +// CHECK:STDOUT: %Self => constants.%Self.37e +// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type.c84 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c60 +// CHECK:STDOUT: %.loc16_36.1 => constants.%.8fc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d9d -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.b03 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.b7c +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ae9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet // CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%i32 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.104 -// CHECK:STDOUT: %.loc16_36.1 => constants.%.7ea +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6b6 +// CHECK:STDOUT: %.loc16_36.1 => constants.%.795 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/builtin/positional.carbon b/toolchain/check/testdata/function/builtin/positional.carbon index 06f751b4cdb6..46da8d23808b 100644 --- a/toolchain/check/testdata/function/builtin/positional.carbon +++ b/toolchain/check/testdata/function/builtin/positional.carbon @@ -41,8 +41,8 @@ fn Mul = "int.smul"; // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Add.type: type = fn_type @Add [concrete] // CHECK:STDOUT: %Add: %Add.type = struct_value () [concrete] // CHECK:STDOUT: %Mul.type: type = fn_type @Mul [concrete] @@ -66,11 +66,11 @@ fn Mul = "int.smul"; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Add.decl: %Add.type = fn_decl @Add [concrete = constants.%Add] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc10: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc10: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/fail_param_count.carbon b/toolchain/check/testdata/function/call/fail_param_count.carbon index 096b41e59721..4181432c7845 100644 --- a/toolchain/check/testdata/function/call/fail_param_count.carbon +++ b/toolchain/check/testdata/function/call/fail_param_count.carbon @@ -78,7 +78,7 @@ fn Main() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Run1.type: type = fn_type @Run1 [concrete] // CHECK:STDOUT: %Run1: %Run1.type = struct_value () [concrete] // CHECK:STDOUT: %Run2.type: type = fn_type @Run2 [concrete] @@ -109,18 +109,18 @@ fn Main() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Run0.decl: %Run0.type = fn_decl @Run0 [concrete = constants.%Run0] {} {} // CHECK:STDOUT: %Run1.decl: %Run1.type = fn_decl @Run1 [concrete = constants.%Run1] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: %i32 = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Run2.decl: %Run2.type = fn_decl @Run2 [concrete = constants.%Run2] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc17_19: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/call/fail_param_type.carbon b/toolchain/check/testdata/function/call/fail_param_type.carbon index 53627c510c71..d7bc86e5119b 100644 --- a/toolchain/check/testdata/function/call/fail_param_type.carbon +++ b/toolchain/check/testdata/function/call/fail_param_type.carbon @@ -36,14 +36,14 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -54,7 +54,7 @@ fn F() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -65,8 +65,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] 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 358be4efe21e..a3ef4109d9ef 100644 --- a/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon +++ b/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon @@ -32,28 +32,28 @@ fn Run() { // CHECK:STDOUT: %Float.type: type = generic_class_type @Float [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Float.generic: %Float.type = struct_value () [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %.cfe: Core.Form = init_form %f64.b55 [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %.b6c: Core.Form = init_form %f64.dc1 [concrete] +// CHECK:STDOUT: %pattern_type.fb7: type = pattern_type %f64.dc1 [concrete] // CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] // CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.857: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.b55)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.91e: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.dc1)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.83f: = impl_witness imports.%ImplicitAs.impl_witness_table.234, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.857 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.83f) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.096: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.b55, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.119: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.096, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.43c: = impl_witness imports.%ImplicitAs.impl_witness_table.393, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.91e = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.43c) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6c5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.dc1, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.2d7: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6c5, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.642: %f64.b55 = float_value 1 [concrete] +// CHECK:STDOUT: %float.3b9: %f64.dc1 = float_value 1 [concrete] // CHECK:STDOUT: %Run.type: type = fn_type @Run [concrete] // CHECK:STDOUT: %Run: %Run.type = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -61,10 +61,10 @@ fn Run() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc25_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -77,9 +77,9 @@ fn Run() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Float: %Float.type = import_ref Core//prelude/parts/float, Float, loaded [concrete = constants.%Float.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.63c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.234 = impl_witness_table (%Core.import_ref.63c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.393 = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } @@ -92,43 +92,43 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.f3c = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.f3c = return_slot_pattern %return.param_patt, %f64 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.fb7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.fb7 = return_slot_pattern %return.param_patt, %f64 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %f64: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc15_13: Core.Form = init_form %f64 [concrete = constants.%.cfe] -// CHECK:STDOUT: %return.param: ref %f64.b55 = out_param call_param0 -// CHECK:STDOUT: %return: ref %f64.b55 = return_slot %return.param +// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc15_13: Core.Form = init_form %f64 [concrete = constants.%.b6c] +// CHECK:STDOUT: %return.param: ref %f64.dc1 = out_param call_param0 +// CHECK:STDOUT: %return: ref %f64.dc1 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Run.decl: %Run.type = fn_decl @Run [concrete = constants.%Run] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Foo() -> out %return.param: %f64.b55 { +// CHECK:STDOUT: fn @Foo() -> out %return.param: %f64.dc1 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] -// CHECK:STDOUT: %impl.elem0: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] +// CHECK:STDOUT: %impl.elem0: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] // CHECK:STDOUT: %bound_method.loc15_29.1: = bound_method %float, %impl.elem0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_29.2: = bound_method %float, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.b55 = call %bound_method.loc15_29.2(%float) [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc15_29: init %f64.b55 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.642] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.dc1 = call %bound_method.loc15_29.2(%float) [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc15_29: init %f64.dc1 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.3b9] // CHECK:STDOUT: return %.loc15_29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.104 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.104 = var_pattern %x.patt [concrete] +// 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: } // CHECK:STDOUT: %x.var: ref %i32 = var %x.var_patt // CHECK:STDOUT: %Foo.ref: %Foo.type = name_ref Foo, file.%Foo.decl [concrete = constants.%Foo] -// CHECK:STDOUT: %Foo.call: init %f64.b55 = call %Foo.ref() +// CHECK:STDOUT: %Foo.call: init %f64.dc1 = call %Foo.ref() // CHECK:STDOUT: %.loc25: %i32 = converted %Foo.call, [concrete = ] // CHECK:STDOUT: assign %x.var, // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %x: ref %i32 = ref_binding x, %x.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %x.var, constants.%Destroy.Op.2dd605.2 +// 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: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/form.carbon b/toolchain/check/testdata/function/call/form.carbon index 6258d3ac0a4e..362779d526f9 100644 --- a/toolchain/check/testdata/function/call/form.carbon +++ b/toolchain/check/testdata/function/call/form.carbon @@ -212,21 +212,21 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.aa9: Core.Form = ref_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.512: Core.Form = ref_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.104 = ref_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.104 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.6b6 = ref_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: ref %i32 = ref_param call_param0 -// CHECK:STDOUT: %.loc4_15.1: Core.Form = splice_block %.loc4_15.2 [concrete = constants.%.aa9] { +// CHECK:STDOUT: %.loc4_15.1: Core.Form = splice_block %.loc4_15.2 [concrete = constants.%.512] { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4_15.2: Core.Form = ref_form %i32 [concrete = constants.%.aa9] +// CHECK:STDOUT: %.loc4_15.2: Core.Form = ref_form %i32 [concrete = constants.%.512] // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref %i32 = ref_binding x, %x.param // CHECK:STDOUT: } @@ -250,45 +250,45 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc4_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.104 = ref_param_pattern [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.104 = var_pattern %x.param_patt [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.104 = at_binding_pattern x, %x.var_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.6b6 = ref_param_pattern [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.6b6 = var_pattern %x.param_patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = at_binding_pattern x, %x.var_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: ref %i32 = ref_param call_param0 -// CHECK:STDOUT: %.loc4_15.1: Core.Form = splice_block %.loc4_15.2 [concrete = constants.%.7ea] { +// CHECK:STDOUT: %.loc4_15.1: Core.Form = splice_block %.loc4_15.2 [concrete = constants.%.795] { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4_15.2: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc4_15.2: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref %i32 = ref_binding x, %x.param // CHECK:STDOUT: } @@ -300,16 +300,16 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc4_7.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc4_7.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc4_7.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc4_7.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %x.var: ref %i32 = var @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.2dd605.2 +// 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: // CHECK:STDOUT: } @@ -327,41 +327,41 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.ffc: Core.Form = value_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.c2a: Core.Form = value_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.104 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %i32 = value_param call_param0 -// CHECK:STDOUT: %.loc4_15.1: Core.Form = splice_block %.loc4_15.2 [concrete = constants.%.ffc] { +// CHECK:STDOUT: %.loc4_15.1: Core.Form = splice_block %.loc4_15.2 [concrete = constants.%.c2a] { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4_15.2: Core.Form = value_form %i32 [concrete = constants.%.ffc] +// CHECK:STDOUT: %.loc4_15.2: Core.Form = value_form %i32 [concrete = constants.%.c2a] // CHECK:STDOUT: } // CHECK:STDOUT: %x: %i32 = value_binding x, %x.param // CHECK:STDOUT: } @@ -373,13 +373,13 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc9_5.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_5.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc9_5.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc9_5.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc9_5.2: %i32 = converted %int_0, %.loc9_5.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc9_5.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc9_5.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc9_5.2: %i32 = converted %int_0, %.loc9_5.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref(%.loc9_5.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -417,19 +417,19 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.aa9: Core.Form = ref_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.512: Core.Form = ref_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %.loc4_17.1: %pattern_type.104 = ref_return_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %.loc4_17.1, constants.%i32 [concrete] +// CHECK:STDOUT: %.loc4_17.1: %pattern_type.6b6 = ref_return_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %.loc4_17.1, constants.%i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4_17.2: Core.Form = ref_form %i32 [concrete = constants.%.aa9] +// CHECK:STDOUT: %.loc4_17.2: Core.Form = ref_form %i32 [concrete = constants.%.512] // CHECK:STDOUT: %.loc4_17.3: ref %i32 = ref_return // CHECK:STDOUT: %return: ref %i32 = return_slot %.loc4_17.3 // CHECK:STDOUT: } @@ -440,7 +440,7 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.104 = ref_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.6b6 = ref_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %F.call: ref %i32 = call %F.ref() @@ -455,22 +455,22 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc9_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, constants.%i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, constants.%i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc4: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -481,8 +481,8 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.104 = ref_binding_pattern _ [concrete] -// CHECK:STDOUT: %_.var_patt: %pattern_type.104 = var_pattern %_.patt [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.6b6 = ref_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.var_patt: %pattern_type.6b6 = var_pattern %_.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %_.var: ref %i32 = var %_.var_patt // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] @@ -490,7 +490,7 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: assign %_.var, %F.call // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %_: ref %i32 = ref_binding _, %_.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %_.var, constants.%Destroy.Op.2dd605.2 +// 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: // CHECK:STDOUT: } @@ -507,19 +507,19 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.ffc: Core.Form = value_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.c2a: Core.Form = value_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %.loc4_17.1: %pattern_type.104 = value_return_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %.loc4_17.1, constants.%i32 [concrete] +// CHECK:STDOUT: %.loc4_17.1: %pattern_type.6b6 = value_return_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %.loc4_17.1, constants.%i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4_17.2: Core.Form = value_form %i32 [concrete = constants.%.ffc] +// CHECK:STDOUT: %.loc4_17.2: Core.Form = value_form %i32 [concrete = constants.%.c2a] // CHECK:STDOUT: %.loc4_17.3: %i32 = value_return // CHECK:STDOUT: %return: %i32 = return_slot %.loc4_17.3 // CHECK:STDOUT: } @@ -530,7 +530,7 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.104 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.6b6 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %F.call: %i32 = call %F.ref() @@ -545,7 +545,7 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %Form.type: type = fn_type @Form [concrete] -// CHECK:STDOUT: %Form.263: %Form.type = struct_value () [concrete] +// CHECK:STDOUT: %Form.4d0: %Form.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.13f: type = pattern_type Core.Form [concrete] // CHECK:STDOUT: %Form.ac3: Core.Form = symbolic_binding Form, 0 [symbolic] // CHECK:STDOUT: %.344: Core.Form = splice_inst @F.%.loc4_30.1 [template] @@ -569,7 +569,7 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.Form: %Form.type = import_ref Core//prelude/parts/form, Form, loaded [concrete = constants.%Form.263] +// CHECK:STDOUT: %Core.Form: %Form.type = import_ref Core//prelude/parts/form, Form, loaded [concrete = constants.%Form.4d0] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -583,7 +583,7 @@ fn F(Form:! Core.Form()) ->? Form; // CHECK:STDOUT: %.loc4_23.1: type = splice_block %.loc4_23.3 [concrete = Core.Form] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %Form.ref.loc4_17: %Form.type = name_ref Form, imports.%Core.Form [concrete = constants.%Form.263] +// CHECK:STDOUT: %Form.ref.loc4_17: %Form.type = name_ref Form, imports.%Core.Form [concrete = constants.%Form.4d0] // CHECK:STDOUT: %Form.call: init type = call %Form.ref.loc4_17() [concrete = Core.Form] // CHECK:STDOUT: %.loc4_23.2: type = value_of_initializer %Form.call [concrete = Core.Form] // CHECK:STDOUT: %.loc4_23.3: type = converted %Form.call, %.loc4_23.2 [concrete = Core.Form] diff --git a/toolchain/check/testdata/function/call/i32.carbon b/toolchain/check/testdata/function/call/i32.carbon index 835112b10ffc..d84a65798dbf 100644 --- a/toolchain/check/testdata/function/call/i32.carbon +++ b/toolchain/check/testdata/function/call/i32.carbon @@ -29,43 +29,43 @@ fn Main() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %Echo.type: type = fn_type @Echo [concrete] // CHECK:STDOUT: %Echo: %Echo.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [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.790b3b.2: type = fn_type @Destroy.Op.loc20_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -79,11 +79,11 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -95,13 +95,13 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Echo.decl: %Echo.type = fn_decl @Echo [concrete = constants.%Echo] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc15_20 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc15_20 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_20: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_20 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_20 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc15_12: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: %i32 = value_binding a, %a.param @@ -114,7 +114,7 @@ fn Main() { // CHECK:STDOUT: fn @Echo(%a.param: %i32) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %i32 = name_ref a, %a -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc16_10.1: = bound_method %a.ref, %impl.elem0 // 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.loc16_10.2: = bound_method %a.ref, %specific_fn @@ -125,24 +125,24 @@ fn Main() { // CHECK:STDOUT: fn @Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt // CHECK:STDOUT: %Echo.ref: %Echo.type = name_ref Echo, file.%Echo.decl [concrete = constants.%Echo] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc20_28.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc20_28.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc20_28.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc20_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc20_28.2: %i32 = converted %int_1, %.loc20_28.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc20_28.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc20_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc20_28.2: %i32 = converted %int_1, %.loc20_28.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %Echo.call: init %i32 = call %Echo.ref(%.loc20_28.2) // CHECK:STDOUT: assign %b.var, %Echo.call // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: ref %i32 = ref_binding b, %b.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %b.var, constants.%Destroy.Op.2dd605.2 +// 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: 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 18ac83a8f42c..115b75382c17 100644 --- a/toolchain/check/testdata/function/call/more_param_ir.carbon +++ b/toolchain/check/testdata/function/call/more_param_ir.carbon @@ -28,44 +28,44 @@ fn Main() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] // CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [concrete] -// CHECK:STDOUT: %tuple.4e6: %tuple.type.85c = tuple_value (%i32) [concrete] -// CHECK:STDOUT: %tuple.type.cb3: type = tuple_type (%i32) [concrete] -// CHECK:STDOUT: %pattern_type.396: type = pattern_type %tuple.type.cb3 [concrete] +// CHECK:STDOUT: %tuple.19c: %tuple.type.85c = tuple_value (%i32) [concrete] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %pattern_type.e71: type = pattern_type %tuple.type.a8a [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.378: %tuple.type.985 = tuple_value (%int_1.5b8) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %tuple.152: %tuple.type.cb3 = tuple_value (%int_1.d9c) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %tuple.a1e: %tuple.type.a8a = tuple_value (%int_1.0c6) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.6e4: = bound_method %int_6.462, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.50f: = bound_method %int_6.462, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_6.77d: %i32 = 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] +// CHECK:STDOUT: %int_6.439: %i32 = int_value 6 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc18_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -77,9 +77,9 @@ fn Main() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -91,10 +91,10 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc15_18: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -114,42 +114,42 @@ fn Main() { // CHECK:STDOUT: fn @Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.396 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.396 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.e71 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.e71 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %x.var: ref %tuple.type.cb3 = var %x.var_patt +// CHECK:STDOUT: %x.var: ref %tuple.type.a8a = var %x.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc18_22.1: %tuple.type.985 = tuple_literal (%int_1) [concrete = constants.%tuple.378] -// CHECK:STDOUT: %impl.elem0.loc18: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_22.1: = bound_method %int_1, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc18: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_22.1: = bound_method %int_1, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_22.2: = bound_method %int_1, %specific_fn.loc18 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %i32 = call %bound_method.loc18_22.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_22.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_22.3: init %tuple.type.cb3 to %x.var = tuple_init (%.loc18_22.2) [concrete = constants.%tuple.152] -// CHECK:STDOUT: %.loc18_3: init %tuple.type.cb3 = converted %.loc18_22.1, %.loc18_22.3 [concrete = constants.%tuple.152] +// CHECK:STDOUT: %bound_method.loc18_22.2: = bound_method %int_1, %specific_fn.loc18 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %i32 = call %bound_method.loc18_22.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_22.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_22.3: init %tuple.type.a8a to %x.var = tuple_init (%.loc18_22.2) [concrete = constants.%tuple.a1e] +// CHECK:STDOUT: %.loc18_3: init %tuple.type.a8a = converted %.loc18_22.1, %.loc18_22.3 [concrete = constants.%tuple.a1e] // CHECK:STDOUT: assign %x.var, %.loc18_3 -// CHECK:STDOUT: %.loc18_15.1: type = splice_block %.loc18_15.3 [concrete = constants.%tuple.type.cb3] { +// CHECK:STDOUT: %.loc18_15.1: type = splice_block %.loc18_15.3 [concrete = constants.%tuple.type.a8a] { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc18_15.2: %tuple.type.85c = tuple_literal (%i32) [concrete = constants.%tuple.4e6] -// CHECK:STDOUT: %.loc18_15.3: type = converted %.loc18_15.2, constants.%tuple.type.cb3 [concrete = constants.%tuple.type.cb3] +// CHECK:STDOUT: %.loc18_15.2: %tuple.type.85c = tuple_literal (%i32) [concrete = constants.%tuple.19c] +// CHECK:STDOUT: %.loc18_15.3: type = converted %.loc18_15.2, constants.%tuple.type.a8a [concrete = constants.%tuple.type.a8a] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: ref %tuple.type.cb3 = ref_binding x, %x.var +// CHECK:STDOUT: %x: ref %tuple.type.a8a = ref_binding x, %x.var // CHECK:STDOUT: %Foo.ref: %Foo.type = name_ref Foo, file.%Foo.decl [concrete = constants.%Foo] -// CHECK:STDOUT: %x.ref: ref %tuple.type.cb3 = name_ref x, %x +// CHECK:STDOUT: %x.ref: ref %tuple.type.a8a = name_ref x, %x // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %x.ref, element0 // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [concrete = constants.%int_6.462] // CHECK:STDOUT: %.loc20_8: %i32 = acquire_value %tuple.elem0 -// CHECK:STDOUT: %impl.elem0.loc20: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc20_12.1: = bound_method %int_6, %impl.elem0.loc20 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.6e4] +// CHECK:STDOUT: %impl.elem0.loc20: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc20_12.1: = bound_method %int_6, %impl.elem0.loc20 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.13d] // CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc20_12.2: = bound_method %int_6, %specific_fn.loc20 [concrete = constants.%bound_method.50f] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %i32 = call %bound_method.loc20_12.2(%int_6) [concrete = constants.%int_6.77d] -// CHECK:STDOUT: %.loc20_12.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_6.77d] -// CHECK:STDOUT: %.loc20_12.2: %i32 = converted %int_6, %.loc20_12.1 [concrete = constants.%int_6.77d] +// CHECK:STDOUT: %bound_method.loc20_12.2: = bound_method %int_6, %specific_fn.loc20 [concrete = constants.%bound_method.be9] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %i32 = call %bound_method.loc20_12.2(%int_6) [concrete = constants.%int_6.439] +// 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.2dd605.3 +// 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: return // CHECK:STDOUT: } @@ -161,7 +161,7 @@ fn Main() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.3(%self.param: ref %tuple.type.cb3) { +// CHECK:STDOUT: fn @Destroy.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/params_one.carbon b/toolchain/check/testdata/function/call/params_one.carbon index 0caa9d451d6d..63dbf4564e44 100644 --- a/toolchain/check/testdata/function/call/params_one.carbon +++ b/toolchain/check/testdata/function/call/params_one.carbon @@ -26,28 +26,28 @@ fn Main() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] // CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -58,9 +58,9 @@ fn Main() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -71,8 +71,8 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -90,13 +90,13 @@ fn Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Foo.ref: %Foo.type = name_ref Foo, file.%Foo.decl [concrete = constants.%Foo] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc18_7.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_7.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc18_7.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_7.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_7.2: %i32 = converted %int_1, %.loc18_7.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc18_7.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_7.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_7.2: %i32 = converted %int_1, %.loc18_7.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %Foo.call: init %empty_tuple.type = call %Foo.ref(%.loc18_7.2) // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/params_one_comma.carbon b/toolchain/check/testdata/function/call/params_one_comma.carbon index 2ee323967481..bb3163b5987c 100644 --- a/toolchain/check/testdata/function/call/params_one_comma.carbon +++ b/toolchain/check/testdata/function/call/params_one_comma.carbon @@ -27,28 +27,28 @@ fn Main() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] // CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -59,9 +59,9 @@ fn Main() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -72,8 +72,8 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -91,23 +91,23 @@ fn Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Foo.ref.loc18: %Foo.type = name_ref Foo, file.%Foo.decl [concrete = constants.%Foo] // CHECK:STDOUT: %int_1.loc18: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc18: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc18: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc18_7.1: = bound_method %int_1.loc18, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_7.2: = bound_method %int_1.loc18, %specific_fn.loc18 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %i32 = call %bound_method.loc18_7.2(%int_1.loc18) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_7.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_7.2: %i32 = converted %int_1.loc18, %.loc18_7.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %i32 = call %bound_method.loc18_7.2(%int_1.loc18) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_7.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_7.2: %i32 = converted %int_1.loc18, %.loc18_7.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %Foo.call.loc18: init %empty_tuple.type = call %Foo.ref.loc18(%.loc18_7.2) // CHECK:STDOUT: %Foo.ref.loc19: %Foo.type = name_ref Foo, file.%Foo.decl [concrete = constants.%Foo] // CHECK:STDOUT: %int_1.loc19: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc19: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc19: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc19_7.1: = bound_method %int_1.loc19, %impl.elem0.loc19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_7.2: = bound_method %int_1.loc19, %specific_fn.loc19 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %i32 = call %bound_method.loc19_7.2(%int_1.loc19) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc19_7.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc19_7.2: %i32 = converted %int_1.loc19, %.loc19_7.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %i32 = call %bound_method.loc19_7.2(%int_1.loc19) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc19_7.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc19_7.2: %i32 = converted %int_1.loc19, %.loc19_7.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %Foo.call.loc19: init %empty_tuple.type = call %Foo.ref.loc19(%.loc19_7.2) // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/params_two.carbon b/toolchain/check/testdata/function/call/params_two.carbon index aed1be03ad6e..3c7bdc2ed63f 100644 --- a/toolchain/check/testdata/function/call/params_two.carbon +++ b/toolchain/check/testdata/function/call/params_two.carbon @@ -26,32 +26,32 @@ fn Main() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] // CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -62,9 +62,9 @@ fn Main() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -75,10 +75,10 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc15_18: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -100,20 +100,20 @@ fn Main() { // CHECK:STDOUT: %Foo.ref: %Foo.type = name_ref Foo, file.%Foo.decl [concrete = constants.%Foo] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc18_7: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_7.1: = bound_method %int_1, %impl.elem0.loc18_7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc18_7: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_7.1: = bound_method %int_1, %impl.elem0.loc18_7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc18_7: = specific_function %impl.elem0.loc18_7, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_7.2: = bound_method %int_1, %specific_fn.loc18_7 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_7: init %i32 = call %bound_method.loc18_7.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_7.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_7 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_7.2: %i32 = converted %int_1, %.loc18_7.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc18_10: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_10.1: = bound_method %int_2, %impl.elem0.loc18_10 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc18_7.2: = bound_method %int_1, %specific_fn.loc18_7 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_7: init %i32 = call %bound_method.loc18_7.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_7.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_7 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_7.2: %i32 = converted %int_1, %.loc18_7.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc18_10: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_10.1: = bound_method %int_2, %impl.elem0.loc18_10 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc18_10: = specific_function %impl.elem0.loc18_10, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_10.2: = bound_method %int_2, %specific_fn.loc18_10 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_10: init %i32 = call %bound_method.loc18_10.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc18_10.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_10 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc18_10.2: %i32 = converted %int_2, %.loc18_10.1 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc18_10.2: = bound_method %int_2, %specific_fn.loc18_10 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_10: init %i32 = call %bound_method.loc18_10.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc18_10.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_10 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc18_10.2: %i32 = converted %int_2, %.loc18_10.1 [concrete = constants.%int_2.295] // CHECK:STDOUT: %Foo.call: init %empty_tuple.type = call %Foo.ref(%.loc18_7.2, %.loc18_10.2) // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/params_two_comma.carbon b/toolchain/check/testdata/function/call/params_two_comma.carbon index cd009cc15b77..d4cb98a0c9c8 100644 --- a/toolchain/check/testdata/function/call/params_two_comma.carbon +++ b/toolchain/check/testdata/function/call/params_two_comma.carbon @@ -27,32 +27,32 @@ fn Main() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] // CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -63,9 +63,9 @@ fn Main() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -76,10 +76,10 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc15_18: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -101,38 +101,38 @@ fn Main() { // CHECK:STDOUT: %Foo.ref.loc18: %Foo.type = name_ref Foo, file.%Foo.decl [concrete = constants.%Foo] // CHECK:STDOUT: %int_1.loc18: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc18: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc18_7: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_7.1: = bound_method %int_1.loc18, %impl.elem0.loc18_7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc18_7: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_7.1: = bound_method %int_1.loc18, %impl.elem0.loc18_7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc18_7: = specific_function %impl.elem0.loc18_7, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_7.2: = bound_method %int_1.loc18, %specific_fn.loc18_7 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_7: init %i32 = call %bound_method.loc18_7.2(%int_1.loc18) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_7.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_7 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_7.2: %i32 = converted %int_1.loc18, %.loc18_7.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc18_10: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_10.1: = bound_method %int_2.loc18, %impl.elem0.loc18_10 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc18_7.2: = bound_method %int_1.loc18, %specific_fn.loc18_7 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_7: init %i32 = call %bound_method.loc18_7.2(%int_1.loc18) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_7.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_7 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_7.2: %i32 = converted %int_1.loc18, %.loc18_7.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc18_10: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_10.1: = bound_method %int_2.loc18, %impl.elem0.loc18_10 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc18_10: = specific_function %impl.elem0.loc18_10, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_10.2: = bound_method %int_2.loc18, %specific_fn.loc18_10 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_10: init %i32 = call %bound_method.loc18_10.2(%int_2.loc18) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc18_10.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_10 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc18_10.2: %i32 = converted %int_2.loc18, %.loc18_10.1 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc18_10.2: = bound_method %int_2.loc18, %specific_fn.loc18_10 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_10: init %i32 = call %bound_method.loc18_10.2(%int_2.loc18) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc18_10.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_10 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc18_10.2: %i32 = converted %int_2.loc18, %.loc18_10.1 [concrete = constants.%int_2.295] // CHECK:STDOUT: %Foo.call.loc18: init %empty_tuple.type = call %Foo.ref.loc18(%.loc18_7.2, %.loc18_10.2) // CHECK:STDOUT: %Foo.ref.loc19: %Foo.type = name_ref Foo, file.%Foo.decl [concrete = constants.%Foo] // CHECK:STDOUT: %int_1.loc19: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc19: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc19_7: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc19_7.1: = bound_method %int_1.loc19, %impl.elem0.loc19_7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc19_7: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc19_7.1: = bound_method %int_1.loc19, %impl.elem0.loc19_7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc19_7: = specific_function %impl.elem0.loc19_7, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc19_7.2: = bound_method %int_1.loc19, %specific_fn.loc19_7 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_7: init %i32 = call %bound_method.loc19_7.2(%int_1.loc19) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc19_7.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_7 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc19_7.2: %i32 = converted %int_1.loc19, %.loc19_7.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc19_10: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc19_10.1: = bound_method %int_2.loc19, %impl.elem0.loc19_10 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc19_7.2: = bound_method %int_1.loc19, %specific_fn.loc19_7 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_7: init %i32 = call %bound_method.loc19_7.2(%int_1.loc19) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc19_7.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_7 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc19_7.2: %i32 = converted %int_1.loc19, %.loc19_7.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc19_10: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc19_10.1: = bound_method %int_2.loc19, %impl.elem0.loc19_10 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc19_10: = specific_function %impl.elem0.loc19_10, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc19_10.2: = bound_method %int_2.loc19, %specific_fn.loc19_10 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_10: init %i32 = call %bound_method.loc19_10.2(%int_2.loc19) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc19_10.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_10 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc19_10.2: %i32 = converted %int_2.loc19, %.loc19_10.1 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc19_10.2: = bound_method %int_2.loc19, %specific_fn.loc19_10 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_10: init %i32 = call %bound_method.loc19_10.2(%int_2.loc19) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc19_10.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_10 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc19_10.2: %i32 = converted %int_2.loc19, %.loc19_10.1 [concrete = constants.%int_2.295] // CHECK:STDOUT: %Foo.call.loc19: init %empty_tuple.type = call %Foo.ref.loc19(%.loc19_7.2, %.loc19_10.2) // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon b/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon index aa250100f0c7..81d7066406f8 100644 --- a/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon +++ b/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon @@ -42,8 +42,8 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Inner.F.type: type = fn_type @Inner.F, @Inner(%F) [symbolic] // CHECK:STDOUT: %Inner.F: %Inner.F.type = struct_value () [symbolic] // CHECK:STDOUT: %Inner.G.type: type = fn_type @Inner.G, @Inner(%F) [symbolic] @@ -51,22 +51,22 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %Inner.F.specific_fn: = specific_function %Inner.F, @Inner.F(%F) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -78,9 +78,9 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -99,8 +99,8 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: %F.loc5_14.2: type = symbolic_binding F, 0 [symbolic = %F.loc5_14.1 (constants.%F)] // CHECK:STDOUT: } // CHECK:STDOUT: %Inner.G.decl: %Inner.G.type = fn_decl @Inner.G [symbolic = constants.%Inner.G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc13 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc13 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc13_14.1: type = splice_block %.loc13_14.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -108,7 +108,7 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: } // CHECK:STDOUT: %F.loc13_11: type = symbolic_binding F, 0 [symbolic = @Class.%F.loc5_14.1 (constants.%F)] // CHECK:STDOUT: %i32.loc13: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc13_33: Core.Form = init_form %i32.loc13 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc13_33: Core.Form = init_form %i32.loc13 [concrete = constants.%.795] // CHECK:STDOUT: %return.param.loc13: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return.loc13: ref %i32 = return_slot %return.param.loc13 // CHECK:STDOUT: } @@ -141,20 +141,20 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Inner.F.decl: @Inner.%Inner.F.type (%Inner.F.type) = fn_decl @Inner.F [symbolic = @Inner.%Inner.F (constants.%Inner.F)] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc8_15: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc8_15: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Inner.G.decl: @Inner.%Inner.G.type (%Inner.G.type) = fn_decl @Inner.G [symbolic = @Inner.%Inner.G (constants.%Inner.G)] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc13 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc13 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc9: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc9: Core.Form = init_form %i32.loc9 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc9: Core.Form = init_form %i32.loc9 [concrete = constants.%.795] // CHECK:STDOUT: %return.param.loc9: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return.loc9: ref %i32 = return_slot %return.param.loc9 // CHECK:STDOUT: } @@ -174,12 +174,12 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: fn() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_29.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_29.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_29.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc8_29: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_29.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc8_29: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: return %.loc8_29 // CHECK:STDOUT: } // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/ref.carbon b/toolchain/check/testdata/function/call/ref.carbon index fc774275b502..ff3ee3534759 100644 --- a/toolchain/check/testdata/function/call/ref.carbon +++ b/toolchain/check/testdata/function/call/ref.carbon @@ -117,40 +117,40 @@ fn G(ref d: D) { F(ref d); } // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.104 = ref_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.104 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.6b6 = ref_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: ref %i32 = ref_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -164,17 +164,17 @@ fn G(ref d: D) { F(ref d); } // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.104 = ref_binding_pattern y [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type.104 = var_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.6b6 = ref_binding_pattern y [concrete] +// CHECK:STDOUT: %y.var_patt: %pattern_type.6b6 = var_pattern %y.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %y.var: ref %i32 = var %y.var_patt // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_3.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_3.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_3.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc8: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_3.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc8: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign %y.var, %.loc8 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %y: ref %i32 = ref_binding y, %y.var @@ -182,7 +182,7 @@ 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.2dd605.2 +// 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: return // CHECK:STDOUT: } @@ -198,7 +198,7 @@ fn G(ref d: D) { F(ref d); } // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.F.type: type = fn_type @C.F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C.F: %C.F.type = struct_value () [concrete] @@ -208,17 +208,17 @@ fn G(ref d: D) { F(ref d); } // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.259: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%C) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %C, (%DefaultOrUnformed.impl_witness.259) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc10_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.59d: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%C) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %C, (%DefaultOrUnformed.impl_witness.59d) [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -228,8 +228,8 @@ fn G(ref d: D) { F(ref d); } // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.0d5 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.0d5 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] @@ -248,11 +248,11 @@ fn G(ref d: D) { F(ref d); } // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.0d5 = var_pattern %c.patt [concrete] +// 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: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%C, (constants.%DefaultOrUnformed.impl_witness.259) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%C, (constants.%DefaultOrUnformed.impl_witness.59d) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc10_11.1: %DefaultOrUnformed.type = converted constants.%C, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc10_11.1 [concrete = constants.%C] // CHECK:STDOUT: %.loc10_11.2: type = converted %.loc10_11.1, %as_type [concrete = constants.%C] @@ -266,7 +266,7 @@ 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.2dd605.2 +// 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: return // 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 ca1e2098080a..7c19649770de 100644 --- a/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon +++ b/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon @@ -93,14 +93,14 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %ReturnCUnused.type: type = fn_type @ReturnCUnused [concrete] // CHECK:STDOUT: %ReturnCUnused: %ReturnCUnused.type = struct_value () [concrete] // CHECK:STDOUT: %ReturnCUsed.type: type = fn_type @ReturnCUsed [concrete] // CHECK:STDOUT: %ReturnCUsed: %ReturnCUsed.type = struct_value () [concrete] -// CHECK:STDOUT: %.f19: Core.Form = init_form %D [concrete] -// CHECK:STDOUT: %pattern_type.f1a: type = pattern_type %D [concrete] +// CHECK:STDOUT: %.592: Core.Form = init_form %D [concrete] +// CHECK:STDOUT: %pattern_type.d8d: type = pattern_type %D [concrete] // CHECK:STDOUT: %ReturnDUnused.type: type = fn_type @ReturnDUnused [concrete] // CHECK:STDOUT: %ReturnDUnused: %ReturnDUnused.type = struct_value () [concrete] // CHECK:STDOUT: %ReturnDUsed.type: type = fn_type @ReturnDUsed [concrete] @@ -133,38 +133,38 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %D.decl.loc5: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %ReturnCUnused.decl: %ReturnCUnused.type = fn_decl @ReturnCUnused [concrete = constants.%ReturnCUnused] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc7: Core.Form = init_form %C.ref [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc7: Core.Form = init_form %C.ref [concrete = constants.%.a44] // CHECK:STDOUT: %return.param: ref %C = out_param call_param0 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ReturnCUsed.decl: %ReturnCUsed.type = fn_decl @ReturnCUsed [concrete = constants.%ReturnCUsed] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc8: Core.Form = init_form %C.ref [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc8: Core.Form = init_form %C.ref [concrete = constants.%.a44] // CHECK:STDOUT: %return.param: ref %C = out_param call_param0 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ReturnDUnused.decl: %ReturnDUnused.type = fn_decl @ReturnDUnused [concrete = constants.%ReturnDUnused] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.f1a = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.f1a = return_slot_pattern %return.param_patt, %D.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.d8d = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.d8d = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl.loc5 [concrete = constants.%D] -// CHECK:STDOUT: %.loc9: Core.Form = init_form %D.ref [concrete = constants.%.f19] +// CHECK:STDOUT: %.loc9: Core.Form = init_form %D.ref [concrete = constants.%.592] // CHECK:STDOUT: %return.param: ref %D = out_param call_param0 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ReturnDUsed.decl: %ReturnDUsed.type = fn_decl @ReturnDUsed [concrete = constants.%ReturnDUsed] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.f1a = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.f1a = return_slot_pattern %return.param_patt, %D.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.d8d = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.d8d = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl.loc5 [concrete = constants.%D] -// CHECK:STDOUT: %.loc10: Core.Form = init_form %D.ref [concrete = constants.%.f19] +// CHECK:STDOUT: %.loc10: Core.Form = init_form %D.ref [concrete = constants.%.592] // CHECK:STDOUT: %return.param: ref %D = out_param call_param0 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } @@ -217,8 +217,8 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: %ReturnDUsed.type: type = fn_type @ReturnDUsed [concrete] // CHECK:STDOUT: %ReturnDUsed: %ReturnDUsed.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc34_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc34_15.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -235,7 +235,7 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//incomplete_return, loc37_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.c42 = import_ref Main//incomplete_return, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//incomplete_return, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -262,7 +262,7 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.c42 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.54a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CallFAndGIncomplete() { @@ -279,9 +279,9 @@ fn CallFAndGIncomplete() { // 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.2dd605.2 +// 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.Op.bound.loc33: = bound_method %.loc33_17.2, constants.%Destroy.Op.2dd605.2 +// 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: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/declaration/fail_param_in_type.carbon b/toolchain/check/testdata/function/declaration/fail_param_in_type.carbon index c1101334f64a..672d487864c1 100644 --- a/toolchain/check/testdata/function/declaration/fail_param_in_type.carbon +++ b/toolchain/check/testdata/function/declaration/fail_param_in_type.carbon @@ -25,7 +25,7 @@ fn F(n: i32, a: array(i32, n)*); // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -46,8 +46,8 @@ fn F(n: i32, a: array(i32, n)*); // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: %a.param_patt: = value_param_pattern [concrete] // CHECK:STDOUT: %a.patt: = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { diff --git a/toolchain/check/testdata/function/declaration/fail_param_redecl.carbon b/toolchain/check/testdata/function/declaration/fail_param_redecl.carbon index beadce179d45..68a6f677e6ad 100644 --- a/toolchain/check/testdata/function/declaration/fail_param_redecl.carbon +++ b/toolchain/check/testdata/function/declaration/fail_param_redecl.carbon @@ -28,7 +28,7 @@ fn F(n: i32, n: i32); // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -49,10 +49,10 @@ fn F(n: i32, n: i32); // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %n.param_patt.loc22_7: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt.loc22_7: %pattern_type.104 = at_binding_pattern n, %n.param_patt.loc22_7 [concrete] -// CHECK:STDOUT: %n.param_patt.loc22_15: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt.loc22_15: %pattern_type.104 = at_binding_pattern n, %n.param_patt.loc22_15 [concrete] +// CHECK:STDOUT: %n.param_patt.loc22_7: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt.loc22_7: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt.loc22_7 [concrete] +// CHECK:STDOUT: %n.param_patt.loc22_15: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt.loc22_15: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt.loc22_15 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param.loc22_7: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc22_9: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/declaration/fail_redecl.carbon b/toolchain/check/testdata/function/declaration/fail_redecl.carbon index 8b7e5aba50f3..672a3f8f5a3c 100644 --- a/toolchain/check/testdata/function/declaration/fail_redecl.carbon +++ b/toolchain/check/testdata/function/declaration/fail_redecl.carbon @@ -72,16 +72,16 @@ fn E() {} // CHECK:STDOUT: %pattern_type: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] -// CHECK:STDOUT: %C.type.4c7da9.1: type = fn_type @C.loc35 [concrete] -// CHECK:STDOUT: %C.ade839.1: %C.type.4c7da9.1 = struct_value () [concrete] -// CHECK:STDOUT: %C.type.4c7da9.2: type = fn_type @C.loc43 [concrete] -// CHECK:STDOUT: %C.ade839.2: %C.type.4c7da9.2 = struct_value () [concrete] +// CHECK:STDOUT: %C.type.322e3b.1: type = fn_type @C.loc35 [concrete] +// CHECK:STDOUT: %C.010386.1: %C.type.322e3b.1 = struct_value () [concrete] +// CHECK:STDOUT: %C.type.322e3b.2: type = fn_type @C.loc43 [concrete] +// CHECK:STDOUT: %C.010386.2: %C.type.322e3b.2 = struct_value () [concrete] // CHECK:STDOUT: %D.type: type = fn_type @D [concrete] // CHECK:STDOUT: %D: %D.type = struct_value () [concrete] -// CHECK:STDOUT: %E.type.85d2dd.1: type = fn_type @E.loc55 [concrete] -// CHECK:STDOUT: %E.deefb0.1: %E.type.85d2dd.1 = struct_value () [concrete] -// CHECK:STDOUT: %E.type.85d2dd.2: type = fn_type @E.loc63 [concrete] -// CHECK:STDOUT: %E.deefb0.2: %E.type.85d2dd.2 = struct_value () [concrete] +// CHECK:STDOUT: %E.type.53e05b.1: type = fn_type @E.loc55 [concrete] +// CHECK:STDOUT: %E.3f2512.1: %E.type.53e05b.1 = struct_value () [concrete] +// CHECK:STDOUT: %E.type.53e05b.2: type = fn_type @E.loc63 [concrete] +// CHECK:STDOUT: %E.3f2512.2: %E.type.53e05b.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -116,8 +116,8 @@ fn E() {} // CHECK:STDOUT: } // CHECK:STDOUT: %x.loc33: %empty_tuple.type = value_binding x, %x.param.loc33 // CHECK:STDOUT: } -// CHECK:STDOUT: %C.decl.loc35: %C.type.4c7da9.1 = fn_decl @C.loc35 [concrete = constants.%C.ade839.1] {} {} -// CHECK:STDOUT: %C.decl.loc43: %C.type.4c7da9.2 = fn_decl @C.loc43 [concrete = constants.%C.ade839.2] { +// CHECK:STDOUT: %C.decl.loc35: %C.type.322e3b.1 = fn_decl @C.loc35 [concrete = constants.%C.010386.1] {} {} +// CHECK:STDOUT: %C.decl.loc43: %C.type.322e3b.2 = fn_decl @C.loc43 [concrete = constants.%C.010386.2] { // CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %x.patt: %pattern_type = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { @@ -130,8 +130,8 @@ fn E() {} // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl.loc45: %D.type = fn_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %D.decl.loc53: %D.type = fn_decl @D [concrete = constants.%D] {} {} -// CHECK:STDOUT: %E.decl.loc55: %E.type.85d2dd.1 = fn_decl @E.loc55 [concrete = constants.%E.deefb0.1] {} {} -// CHECK:STDOUT: %E.decl.loc63: %E.type.85d2dd.2 = fn_decl @E.loc63 [concrete = constants.%E.deefb0.2] {} {} +// CHECK:STDOUT: %E.decl.loc55: %E.type.53e05b.1 = fn_decl @E.loc55 [concrete = constants.%E.3f2512.1] {} {} +// CHECK:STDOUT: %E.decl.loc63: %E.type.53e05b.2 = fn_decl @E.loc63 [concrete = constants.%E.3f2512.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @A(); diff --git a/toolchain/check/testdata/function/declaration/import.carbon b/toolchain/check/testdata/function/declaration/import.carbon index c7c67f4308be..edcba93b808f 100644 --- a/toolchain/check/testdata/function/declaration/import.carbon +++ b/toolchain/check/testdata/function/declaration/import.carbon @@ -269,17 +269,17 @@ import library "extern_api"; // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.85c = tuple_value (%i32) [concrete] -// CHECK:STDOUT: %tuple.type.cb3: type = tuple_type (%i32) [concrete] -// CHECK:STDOUT: %pattern_type.396: type = pattern_type %tuple.type.cb3 [concrete] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %pattern_type.e71: type = pattern_type %tuple.type.a8a [concrete] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete] -// CHECK:STDOUT: %.90e: Core.Form = init_form %struct_type.c [concrete] -// CHECK:STDOUT: %pattern_type.820: type = pattern_type %struct_type.c [concrete] +// CHECK:STDOUT: %.510: Core.Form = init_form %struct_type.c [concrete] +// CHECK:STDOUT: %pattern_type.e1a: type = pattern_type %struct_type.c [concrete] // CHECK:STDOUT: %C.type: type = fn_type @C [concrete] // CHECK:STDOUT: %C: %C.type = struct_value () [concrete] // CHECK:STDOUT: %D.type: type = fn_type @D [concrete] @@ -309,13 +309,13 @@ import library "extern_api"; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc5_17 [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc5_17 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc5_17: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5_17 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5_17 [concrete = constants.%.795] // CHECK:STDOUT: %b.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc5_9: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: %i32 = value_binding b, %b.param @@ -323,21 +323,21 @@ import library "extern_api"; // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.396 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.396 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.820 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.820 = return_slot_pattern %return.param_patt, %struct_type.c [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.e71 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.e71 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.e1a = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.e1a = return_slot_pattern %return.param_patt, %struct_type.c [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete = constants.%struct_type.c] -// CHECK:STDOUT: %.loc6_28: Core.Form = init_form %struct_type.c [concrete = constants.%.90e] -// CHECK:STDOUT: %c.param: %tuple.type.cb3 = value_param call_param0 -// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.3 [concrete = constants.%tuple.type.cb3] { +// CHECK:STDOUT: %.loc6_28: Core.Form = init_form %struct_type.c [concrete = constants.%.510] +// CHECK:STDOUT: %c.param: %tuple.type.a8a = value_param call_param0 +// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.3 [concrete = constants.%tuple.type.a8a] { // CHECK:STDOUT: %i32.loc6_10: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc6_14.2: %tuple.type.85c = tuple_literal (%i32.loc6_10) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc6_14.3: type = converted %.loc6_14.2, constants.%tuple.type.cb3 [concrete = constants.%tuple.type.cb3] +// CHECK:STDOUT: %.loc6_14.3: type = converted %.loc6_14.2, constants.%tuple.type.a8a [concrete = constants.%tuple.type.a8a] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %tuple.type.cb3 = value_binding c, %c.param +// CHECK:STDOUT: %c: %tuple.type.a8a = value_binding c, %c.param // CHECK:STDOUT: %return.param: ref %struct_type.c = out_param call_param1 // CHECK:STDOUT: %return: ref %struct_type.c = return_slot %return.param // CHECK:STDOUT: } @@ -352,7 +352,7 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: fn @B(%b.param: %i32) -> out %return.param: %i32; // CHECK:STDOUT: -// CHECK:STDOUT: fn @C(%c.param: %tuple.type.cb3) -> out %return.param: %struct_type.c; +// CHECK:STDOUT: fn @C(%c.param: %tuple.type.a8a) -> out %return.param: %struct_type.c; // CHECK:STDOUT: // CHECK:STDOUT: extern fn @D(); // CHECK:STDOUT: @@ -367,17 +367,17 @@ import library "extern_api"; // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.85c = tuple_value (%i32) [concrete] -// CHECK:STDOUT: %tuple.type.cb3: type = tuple_type (%i32) [concrete] -// CHECK:STDOUT: %pattern_type.396: type = pattern_type %tuple.type.cb3 [concrete] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %pattern_type.e71: type = pattern_type %tuple.type.a8a [concrete] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete] -// CHECK:STDOUT: %.90e: Core.Form = init_form %struct_type.c [concrete] -// CHECK:STDOUT: %pattern_type.820: type = pattern_type %struct_type.c [concrete] +// CHECK:STDOUT: %.510: Core.Form = init_form %struct_type.c [concrete] +// CHECK:STDOUT: %pattern_type.e1a: type = pattern_type %struct_type.c [concrete] // CHECK:STDOUT: %C.type: type = fn_type @C [concrete] // CHECK:STDOUT: %C: %C.type = struct_value () [concrete] // CHECK:STDOUT: %D.type: type = fn_type @D [concrete] @@ -407,13 +407,13 @@ import library "extern_api"; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc5_52 [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc5_52 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc5_52: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5_52 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5_52 [concrete = constants.%.795] // CHECK:STDOUT: %b.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc5_44: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: %i32 = value_binding b, %b.param @@ -421,21 +421,21 @@ import library "extern_api"; // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.396 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.396 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.820 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.820 = return_slot_pattern %return.param_patt, %struct_type.c [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.e71 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.e71 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.e1a = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.e1a = return_slot_pattern %return.param_patt, %struct_type.c [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_60: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete = constants.%struct_type.c] -// CHECK:STDOUT: %.loc6_63: Core.Form = init_form %struct_type.c [concrete = constants.%.90e] -// CHECK:STDOUT: %c.param: %tuple.type.cb3 = value_param call_param0 -// CHECK:STDOUT: %.loc6_49.1: type = splice_block %.loc6_49.3 [concrete = constants.%tuple.type.cb3] { +// CHECK:STDOUT: %.loc6_63: Core.Form = init_form %struct_type.c [concrete = constants.%.510] +// CHECK:STDOUT: %c.param: %tuple.type.a8a = value_param call_param0 +// CHECK:STDOUT: %.loc6_49.1: type = splice_block %.loc6_49.3 [concrete = constants.%tuple.type.a8a] { // CHECK:STDOUT: %i32.loc6_45: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc6_49.2: %tuple.type.85c = tuple_literal (%i32.loc6_45) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc6_49.3: type = converted %.loc6_49.2, constants.%tuple.type.cb3 [concrete = constants.%tuple.type.cb3] +// CHECK:STDOUT: %.loc6_49.3: type = converted %.loc6_49.2, constants.%tuple.type.a8a [concrete = constants.%tuple.type.a8a] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %tuple.type.cb3 = value_binding c, %c.param +// CHECK:STDOUT: %c: %tuple.type.a8a = value_binding c, %c.param // CHECK:STDOUT: %return.param: ref %struct_type.c = out_param call_param1 // CHECK:STDOUT: %return: ref %struct_type.c = return_slot %return.param // CHECK:STDOUT: } @@ -450,7 +450,7 @@ import library "extern_api"; // CHECK:STDOUT: // CHECK:STDOUT: extern fn @B(%b.param: %i32) -> out %return.param: %i32; // CHECK:STDOUT: -// CHECK:STDOUT: extern fn @C(%c.param: %tuple.type.cb3) -> out %return.param: %struct_type.c; +// CHECK:STDOUT: extern fn @C(%c.param: %tuple.type.a8a) -> out %return.param: %struct_type.c; // CHECK:STDOUT: // CHECK:STDOUT: extern fn @D(); // CHECK:STDOUT: @@ -468,34 +468,34 @@ import library "extern_api"; // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.820: type = pattern_type %struct_type.c [concrete] +// CHECK:STDOUT: %pattern_type.e1a: type = pattern_type %struct_type.c [concrete] // CHECK:STDOUT: %C.type: type = fn_type @C [concrete] // CHECK:STDOUT: %C: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %tuple.type.cb3: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.378: %tuple.type.985 = tuple_value (%int_1.5b8) [concrete] -// CHECK:STDOUT: %tuple.152: %tuple.type.cb3 = tuple_value (%int_1.d9c) [concrete] +// CHECK:STDOUT: %tuple.a1e: %tuple.type.a8a = tuple_value (%int_1.0c6) [concrete] // CHECK:STDOUT: %D.type: type = fn_type @D [concrete] // CHECK:STDOUT: %D: %D.type = struct_value () [concrete] // CHECK:STDOUT: %E.type: type = fn_type @E [concrete] @@ -519,9 +519,9 @@ import library "extern_api"; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -551,15 +551,15 @@ import library "extern_api"; // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %empty_tuple.type = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt [concrete] // CHECK:STDOUT: %i32.loc7: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: ref %i32 = ref_binding b, %b.var [concrete = %b.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.820 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.820 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.e1a = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.e1a = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %struct_type.c = var %c.var_patt [concrete] // CHECK:STDOUT: %.loc8: type = splice_block %struct_type.c [concrete = constants.%struct_type.c] { @@ -606,27 +606,27 @@ import library "extern_api"; // CHECK:STDOUT: assign file.%a.var, %A.call // CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%Main.B [concrete = constants.%B] // CHECK:STDOUT: %int_1.loc7: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc7: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc7: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc7_16.1: = bound_method %int_1.loc7, %impl.elem0.loc7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_16.2: = bound_method %int_1.loc7, %specific_fn.loc7 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %i32 = call %bound_method.loc7_16.2(%int_1.loc7) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc7_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc7_16.2: %i32 = converted %int_1.loc7, %.loc7_16.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %i32 = call %bound_method.loc7_16.2(%int_1.loc7) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_16.2: %i32 = converted %int_1.loc7, %.loc7_16.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %B.call: init %i32 = call %B.ref(%.loc7_16.2) // CHECK:STDOUT: assign file.%b.var, %B.call // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc8_25.1: %tuple.type.985 = tuple_literal (%int_1.loc8) [concrete = constants.%tuple.378] -// CHECK:STDOUT: %impl.elem0.loc8: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc8: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_25.1: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_25.2: = bound_method %int_1.loc8, %specific_fn.loc8 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %i32 = call %bound_method.loc8_25.2(%int_1.loc8) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_25.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_25.3: %i32 = converted %int_1.loc8, %.loc8_25.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %tuple: %tuple.type.cb3 = tuple_value (%.loc8_25.3) [concrete = constants.%tuple.152] -// CHECK:STDOUT: %.loc8_25.4: %tuple.type.cb3 = converted %.loc8_25.1, %tuple [concrete = constants.%tuple.152] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %i32 = call %bound_method.loc8_25.2(%int_1.loc8) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_25.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_25.3: %i32 = converted %int_1.loc8, %.loc8_25.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %tuple: %tuple.type.a8a = tuple_value (%.loc8_25.3) [concrete = constants.%tuple.a1e] +// CHECK:STDOUT: %.loc8_25.4: %tuple.type.a8a = converted %.loc8_25.1, %tuple [concrete = constants.%tuple.a1e] // CHECK:STDOUT: %C.call: init %struct_type.c = call %C.ref(%.loc8_25.4) // CHECK:STDOUT: assign file.%c.var, %C.call // CHECK:STDOUT: %D.ref: %D.type = name_ref D, imports.%Main.D [concrete = constants.%D] @@ -649,16 +649,16 @@ import library "extern_api"; // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [concrete] -// CHECK:STDOUT: %tuple.4e6: %tuple.type.85c = tuple_value (%i32) [concrete] -// CHECK:STDOUT: %tuple.type.cb3: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %tuple.19c: %tuple.type.85c = tuple_value (%i32) [concrete] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete] -// CHECK:STDOUT: %.90e: Core.Form = init_form %struct_type.c [concrete] -// CHECK:STDOUT: %pattern_type.820: type = pattern_type %struct_type.c [concrete] +// CHECK:STDOUT: %.510: Core.Form = init_form %struct_type.c [concrete] +// CHECK:STDOUT: %pattern_type.e1a: type = pattern_type %struct_type.c [concrete] // CHECK:STDOUT: %C.type: type = fn_type @C [concrete] // CHECK:STDOUT: %C: %C.type = struct_value () [concrete] // CHECK:STDOUT: %D.type: type = fn_type @D [concrete] @@ -668,25 +668,25 @@ import library "extern_api"; // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.378: %tuple.type.985 = tuple_value (%int_1.5b8) [concrete] -// CHECK:STDOUT: %tuple.152: %tuple.type.cb3 = tuple_value (%int_1.d9c) [concrete] +// CHECK:STDOUT: %tuple.a1e: %tuple.type.a8a = tuple_value (%int_1.0c6) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -701,9 +701,9 @@ import library "extern_api"; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -725,7 +725,7 @@ import library "extern_api"; // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {} { // CHECK:STDOUT: %i32.loc23_24: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc23: Core.Form = init_form %i32.loc23_24 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc23: Core.Form = init_form %i32.loc23_24 [concrete = constants.%.795] // CHECK:STDOUT: %b.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc23_16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: %i32 = value_binding b, %b.param @@ -735,14 +735,14 @@ import library "extern_api"; // CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] {} { // CHECK:STDOUT: %i32.loc32_32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete = constants.%struct_type.c] -// CHECK:STDOUT: %.loc32_35: Core.Form = init_form %struct_type.c [concrete = constants.%.90e] -// CHECK:STDOUT: %c.param: %tuple.type.cb3 = value_param call_param0 -// CHECK:STDOUT: %.loc32_21.1: type = splice_block %.loc32_21.3 [concrete = constants.%tuple.type.cb3] { +// CHECK:STDOUT: %.loc32_35: Core.Form = init_form %struct_type.c [concrete = constants.%.510] +// CHECK:STDOUT: %c.param: %tuple.type.a8a = value_param call_param0 +// CHECK:STDOUT: %.loc32_21.1: type = splice_block %.loc32_21.3 [concrete = constants.%tuple.type.a8a] { // CHECK:STDOUT: %i32.loc32_17: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc32_21.2: %tuple.type.85c = tuple_literal (%i32.loc32_17) [concrete = constants.%tuple.4e6] -// CHECK:STDOUT: %.loc32_21.3: type = converted %.loc32_21.2, constants.%tuple.type.cb3 [concrete = constants.%tuple.type.cb3] +// CHECK:STDOUT: %.loc32_21.2: %tuple.type.85c = tuple_literal (%i32.loc32_17) [concrete = constants.%tuple.19c] +// CHECK:STDOUT: %.loc32_21.3: type = converted %.loc32_21.2, constants.%tuple.type.a8a [concrete = constants.%tuple.type.a8a] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %tuple.type.cb3 = value_binding c, %c.param +// CHECK:STDOUT: %c: %tuple.type.a8a = value_binding c, %c.param // CHECK:STDOUT: %return.param: ref %struct_type.c = out_param call_param1 // CHECK:STDOUT: %return: ref %struct_type.c = return_slot %return.param // CHECK:STDOUT: } @@ -759,15 +759,15 @@ import library "extern_api"; // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %empty_tuple.type = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt [concrete] // CHECK:STDOUT: %i32.loc53: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: ref %i32 = ref_binding b, %b.var [concrete = %b.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.820 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.820 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.e1a = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.e1a = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %struct_type.c = var %c.var_patt [concrete] // CHECK:STDOUT: %.loc54: type = splice_block %struct_type.c [concrete = constants.%struct_type.c] { @@ -814,27 +814,27 @@ import library "extern_api"; // CHECK:STDOUT: assign file.%a.var, %A.call // CHECK:STDOUT: %B.ref: %B.type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %int_1.loc53: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc53: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc53: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc53_16.1: = bound_method %int_1.loc53, %impl.elem0.loc53 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc53: = specific_function %impl.elem0.loc53, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc53_16.2: = bound_method %int_1.loc53, %specific_fn.loc53 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53: init %i32 = call %bound_method.loc53_16.2(%int_1.loc53) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc53_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc53_16.2: %i32 = converted %int_1.loc53, %.loc53_16.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53: init %i32 = call %bound_method.loc53_16.2(%int_1.loc53) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc53_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc53_16.2: %i32 = converted %int_1.loc53, %.loc53_16.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %B.call: init %i32 = call %B.ref(%.loc53_16.2) // CHECK:STDOUT: assign file.%b.var, %B.call // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %int_1.loc54: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc54_25.1: %tuple.type.985 = tuple_literal (%int_1.loc54) [concrete = constants.%tuple.378] -// CHECK:STDOUT: %impl.elem0.loc54: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc54: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc54_25.1: = bound_method %int_1.loc54, %impl.elem0.loc54 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc54: = specific_function %impl.elem0.loc54, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc54_25.2: = bound_method %int_1.loc54, %specific_fn.loc54 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc54: init %i32 = call %bound_method.loc54_25.2(%int_1.loc54) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc54_25.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc54 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc54_25.3: %i32 = converted %int_1.loc54, %.loc54_25.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %tuple: %tuple.type.cb3 = tuple_value (%.loc54_25.3) [concrete = constants.%tuple.152] -// CHECK:STDOUT: %.loc54_25.4: %tuple.type.cb3 = converted %.loc54_25.1, %tuple [concrete = constants.%tuple.152] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc54: init %i32 = call %bound_method.loc54_25.2(%int_1.loc54) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc54_25.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc54 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc54_25.3: %i32 = converted %int_1.loc54, %.loc54_25.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %tuple: %tuple.type.a8a = tuple_value (%.loc54_25.3) [concrete = constants.%tuple.a1e] +// CHECK:STDOUT: %.loc54_25.4: %tuple.type.a8a = converted %.loc54_25.1, %tuple [concrete = constants.%tuple.a1e] // CHECK:STDOUT: %C.call: init %struct_type.c = call %C.ref(%.loc54_25.4) // CHECK:STDOUT: assign file.%c.var, %C.call // CHECK:STDOUT: %D.ref: %D.type = name_ref D, file.%D.decl [concrete = constants.%D] @@ -859,42 +859,42 @@ import library "extern_api"; // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.c62: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.6c9: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %C.type: type = fn_type @C [concrete] // CHECK:STDOUT: %C: %C.type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.d39: type = pattern_type %struct_type.c [concrete] -// CHECK:STDOUT: %tuple.type.e3c: type = tuple_type (%i32) [concrete] -// CHECK:STDOUT: %.b79: Core.Form = init_form %struct_type.c [concrete] +// CHECK:STDOUT: %pattern_type.e1a: type = pattern_type %struct_type.c [concrete] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %.510: Core.Form = init_form %struct_type.c [concrete] // CHECK:STDOUT: %D.type: type = fn_type @D [concrete] // CHECK:STDOUT: %D: %D.type = struct_value () [concrete] // CHECK:STDOUT: %E.type: type = fn_type @E [concrete] // CHECK:STDOUT: %E: %E.type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [concrete] -// CHECK:STDOUT: %tuple.ef7: %tuple.type.85c = tuple_value (%i32) [concrete] +// CHECK:STDOUT: %tuple.19c: %tuple.type.85c = tuple_value (%i32) [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: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.cf3: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a20: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.cd7: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a20 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e84: = impl_witness imports.%ImplicitAs.impl_witness_table.fca, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.104: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.785: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.104 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.cf3 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e84) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b79: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.56d: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b79, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.785 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.785, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.6b0: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.378: %tuple.type.985 = tuple_value (%int_1.5b8) [concrete] -// CHECK:STDOUT: %tuple.db1: %tuple.type.e3c = tuple_value (%int_1.6b0) [concrete] +// CHECK:STDOUT: %tuple.a1e: %tuple.type.a8a = tuple_value (%int_1.0c6) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -902,16 +902,16 @@ import library "extern_api"; // CHECK:STDOUT: %NS: = namespace %Main.NS, [concrete] { // CHECK:STDOUT: .E = file.%E.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import, [concrete] { +// CHECK:STDOUT: %Core.048aa3.2: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .Int = %Core.Int // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.4e5: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a20) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.cd7)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.fca = impl_witness_table (%Core.import_ref.4e5), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -921,7 +921,7 @@ import library "extern_api"; // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: .D = %D.decl // CHECK:STDOUT: .NS = imports.%NS -// CHECK:STDOUT: .Core = imports.%Core.979 +// CHECK:STDOUT: .Core = imports.%Core.048aa3.2 // CHECK:STDOUT: .a = %a // CHECK:STDOUT: .b = %b // CHECK:STDOUT: .c = %c @@ -933,7 +933,7 @@ import library "extern_api"; // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {} { // CHECK:STDOUT: %i32.loc7_24: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc7: Core.Form = init_form %i32.loc7_24 [concrete = constants.%.6c9] +// CHECK:STDOUT: %.loc7: Core.Form = init_form %i32.loc7_24 [concrete = constants.%.795] // CHECK:STDOUT: %b.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc7_16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: %i32 = value_binding b, %b.param @@ -943,14 +943,14 @@ import library "extern_api"; // CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] {} { // CHECK:STDOUT: %i32.loc8_32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete = constants.%struct_type.c] -// CHECK:STDOUT: %.loc8_35: Core.Form = init_form %struct_type.c [concrete = constants.%.b79] -// CHECK:STDOUT: %c.param: %tuple.type.e3c = value_param call_param0 -// CHECK:STDOUT: %.loc8_21.1: type = splice_block %.loc8_21.3 [concrete = constants.%tuple.type.e3c] { +// CHECK:STDOUT: %.loc8_35: Core.Form = init_form %struct_type.c [concrete = constants.%.510] +// CHECK:STDOUT: %c.param: %tuple.type.a8a = value_param call_param0 +// CHECK:STDOUT: %.loc8_21.1: type = splice_block %.loc8_21.3 [concrete = constants.%tuple.type.a8a] { // CHECK:STDOUT: %i32.loc8_17: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc8_21.2: %tuple.type.85c = tuple_literal (%i32.loc8_17) [concrete = constants.%tuple.ef7] -// CHECK:STDOUT: %.loc8_21.3: type = converted %.loc8_21.2, constants.%tuple.type.e3c [concrete = constants.%tuple.type.e3c] +// CHECK:STDOUT: %.loc8_21.2: %tuple.type.85c = tuple_literal (%i32.loc8_17) [concrete = constants.%tuple.19c] +// CHECK:STDOUT: %.loc8_21.3: type = converted %.loc8_21.2, constants.%tuple.type.a8a [concrete = constants.%tuple.type.a8a] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %tuple.type.e3c = value_binding c, %c.param +// CHECK:STDOUT: %c: %tuple.type.a8a = value_binding c, %c.param // CHECK:STDOUT: %return.param: ref %struct_type.c = out_param call_param1 // CHECK:STDOUT: %return: ref %struct_type.c = return_slot %return.param // CHECK:STDOUT: } @@ -967,15 +967,15 @@ import library "extern_api"; // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %empty_tuple.type = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.c62 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.c62 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt [concrete] // CHECK:STDOUT: %i32.loc13: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: ref %i32 = ref_binding b, %b.var [concrete = %b.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.d39 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.d39 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.e1a = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.e1a = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %struct_type.c = var %c.var_patt [concrete] // CHECK:STDOUT: %.loc14: type = splice_block %struct_type.c [concrete = constants.%struct_type.c] { @@ -1022,27 +1022,27 @@ import library "extern_api"; // CHECK:STDOUT: assign file.%a.var, %A.call // CHECK:STDOUT: %B.ref: %B.type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %int_1.loc13: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc13: %.56d = impl_witness_access constants.%ImplicitAs.impl_witness.e84, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.785] +// CHECK:STDOUT: %impl.elem0.loc13: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc13_16.1: = bound_method %int_1.loc13, %impl.elem0.loc13 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_16.2: = bound_method %int_1.loc13, %specific_fn.loc13 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13: init %i32 = call %bound_method.loc13_16.2(%int_1.loc13) [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc13_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13 [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc13_16.2: %i32 = converted %int_1.loc13, %.loc13_16.1 [concrete = constants.%int_1.6b0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13: init %i32 = call %bound_method.loc13_16.2(%int_1.loc13) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc13_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc13_16.2: %i32 = converted %int_1.loc13, %.loc13_16.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %B.call: init %i32 = call %B.ref(%.loc13_16.2) // CHECK:STDOUT: assign file.%b.var, %B.call // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %int_1.loc14: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc14_25.1: %tuple.type.985 = tuple_literal (%int_1.loc14) [concrete = constants.%tuple.378] -// CHECK:STDOUT: %impl.elem0.loc14: %.56d = impl_witness_access constants.%ImplicitAs.impl_witness.e84, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.785] +// CHECK:STDOUT: %impl.elem0.loc14: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc14_25.1: = bound_method %int_1.loc14, %impl.elem0.loc14 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_25.2: = bound_method %int_1.loc14, %specific_fn.loc14 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14: init %i32 = call %bound_method.loc14_25.2(%int_1.loc14) [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc14_25.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14 [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc14_25.3: %i32 = converted %int_1.loc14, %.loc14_25.2 [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %tuple: %tuple.type.e3c = tuple_value (%.loc14_25.3) [concrete = constants.%tuple.db1] -// CHECK:STDOUT: %.loc14_25.4: %tuple.type.e3c = converted %.loc14_25.1, %tuple [concrete = constants.%tuple.db1] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14: init %i32 = call %bound_method.loc14_25.2(%int_1.loc14) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc14_25.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc14_25.3: %i32 = converted %int_1.loc14, %.loc14_25.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %tuple: %tuple.type.a8a = tuple_value (%.loc14_25.3) [concrete = constants.%tuple.a1e] +// CHECK:STDOUT: %.loc14_25.4: %tuple.type.a8a = converted %.loc14_25.1, %tuple [concrete = constants.%tuple.a1e] // CHECK:STDOUT: %C.call: init %struct_type.c = call %C.ref(%.loc14_25.4) // CHECK:STDOUT: assign file.%c.var, %C.call // CHECK:STDOUT: %D.ref: %D.type = name_ref D, file.%D.decl [concrete = constants.%D] @@ -1067,34 +1067,34 @@ import library "extern_api"; // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.820: type = pattern_type %struct_type.c [concrete] +// CHECK:STDOUT: %pattern_type.e1a: type = pattern_type %struct_type.c [concrete] // CHECK:STDOUT: %C.type: type = fn_type @C [concrete] // CHECK:STDOUT: %C: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %tuple.type.cb3: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.378: %tuple.type.985 = tuple_value (%int_1.5b8) [concrete] -// CHECK:STDOUT: %tuple.152: %tuple.type.cb3 = tuple_value (%int_1.d9c) [concrete] +// CHECK:STDOUT: %tuple.a1e: %tuple.type.a8a = tuple_value (%int_1.0c6) [concrete] // CHECK:STDOUT: %D.type: type = fn_type @D [concrete] // CHECK:STDOUT: %D: %D.type = struct_value () [concrete] // CHECK:STDOUT: %E.type: type = fn_type @E [concrete] @@ -1118,9 +1118,9 @@ import library "extern_api"; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1150,15 +1150,15 @@ import library "extern_api"; // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %empty_tuple.type = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt [concrete] // CHECK:STDOUT: %i32.loc53: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: ref %i32 = ref_binding b, %b.var [concrete = %b.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.820 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.820 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.e1a = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.e1a = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %struct_type.c = var %c.var_patt [concrete] // CHECK:STDOUT: %.loc54: type = splice_block %struct_type.c [concrete = constants.%struct_type.c] { @@ -1205,27 +1205,27 @@ import library "extern_api"; // CHECK:STDOUT: assign file.%a.var, %A.call // CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%Main.B [concrete = constants.%B] // CHECK:STDOUT: %int_1.loc53: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc53: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc53: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc53_16.1: = bound_method %int_1.loc53, %impl.elem0.loc53 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc53: = specific_function %impl.elem0.loc53, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc53_16.2: = bound_method %int_1.loc53, %specific_fn.loc53 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53: init %i32 = call %bound_method.loc53_16.2(%int_1.loc53) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc53_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc53_16.2: %i32 = converted %int_1.loc53, %.loc53_16.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53: init %i32 = call %bound_method.loc53_16.2(%int_1.loc53) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc53_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc53_16.2: %i32 = converted %int_1.loc53, %.loc53_16.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %B.call: init %i32 = call %B.ref(%.loc53_16.2) // CHECK:STDOUT: assign file.%b.var, %B.call // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %int_1.loc54: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc54_25.1: %tuple.type.985 = tuple_literal (%int_1.loc54) [concrete = constants.%tuple.378] -// CHECK:STDOUT: %impl.elem0.loc54: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc54: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc54_25.1: = bound_method %int_1.loc54, %impl.elem0.loc54 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc54: = specific_function %impl.elem0.loc54, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc54_25.2: = bound_method %int_1.loc54, %specific_fn.loc54 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc54: init %i32 = call %bound_method.loc54_25.2(%int_1.loc54) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc54_25.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc54 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc54_25.3: %i32 = converted %int_1.loc54, %.loc54_25.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %tuple: %tuple.type.cb3 = tuple_value (%.loc54_25.3) [concrete = constants.%tuple.152] -// CHECK:STDOUT: %.loc54_25.4: %tuple.type.cb3 = converted %.loc54_25.1, %tuple [concrete = constants.%tuple.152] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc54: init %i32 = call %bound_method.loc54_25.2(%int_1.loc54) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc54_25.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc54 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc54_25.3: %i32 = converted %int_1.loc54, %.loc54_25.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %tuple: %tuple.type.a8a = tuple_value (%.loc54_25.3) [concrete = constants.%tuple.a1e] +// CHECK:STDOUT: %.loc54_25.4: %tuple.type.a8a = converted %.loc54_25.1, %tuple [concrete = constants.%tuple.a1e] // CHECK:STDOUT: %C.call: init %struct_type.c = call %C.ref(%.loc54_25.4) // CHECK:STDOUT: assign file.%c.var, %C.call // CHECK:STDOUT: %D.ref: %D.type = name_ref D, imports.%Main.D [concrete = constants.%D] @@ -1250,34 +1250,34 @@ import library "extern_api"; // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.820: type = pattern_type %struct_type.c [concrete] +// CHECK:STDOUT: %pattern_type.e1a: type = pattern_type %struct_type.c [concrete] // CHECK:STDOUT: %C.type: type = fn_type @C [concrete] // CHECK:STDOUT: %C: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %tuple.type.cb3: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.378: %tuple.type.985 = tuple_value (%int_1.5b8) [concrete] -// CHECK:STDOUT: %tuple.152: %tuple.type.cb3 = tuple_value (%int_1.d9c) [concrete] +// CHECK:STDOUT: %tuple.a1e: %tuple.type.a8a = tuple_value (%int_1.0c6) [concrete] // CHECK:STDOUT: %D.type: type = fn_type @D [concrete] // CHECK:STDOUT: %D: %D.type = struct_value () [concrete] // CHECK:STDOUT: %E.type: type = fn_type @E [concrete] @@ -1301,9 +1301,9 @@ import library "extern_api"; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1333,15 +1333,15 @@ import library "extern_api"; // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %empty_tuple.type = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt [concrete] // CHECK:STDOUT: %i32.loc53: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: ref %i32 = ref_binding b, %b.var [concrete = %b.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.820 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.820 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.e1a = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.e1a = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %struct_type.c = var %c.var_patt [concrete] // CHECK:STDOUT: %.loc54: type = splice_block %struct_type.c [concrete = constants.%struct_type.c] { @@ -1388,27 +1388,27 @@ import library "extern_api"; // CHECK:STDOUT: assign file.%a.var, %A.call // CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%Main.B [concrete = constants.%B] // CHECK:STDOUT: %int_1.loc53: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc53: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc53: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc53_16.1: = bound_method %int_1.loc53, %impl.elem0.loc53 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc53: = specific_function %impl.elem0.loc53, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc53_16.2: = bound_method %int_1.loc53, %specific_fn.loc53 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53: init %i32 = call %bound_method.loc53_16.2(%int_1.loc53) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc53_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc53_16.2: %i32 = converted %int_1.loc53, %.loc53_16.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53: init %i32 = call %bound_method.loc53_16.2(%int_1.loc53) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc53_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc53_16.2: %i32 = converted %int_1.loc53, %.loc53_16.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %B.call: init %i32 = call %B.ref(%.loc53_16.2) // CHECK:STDOUT: assign file.%b.var, %B.call // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %int_1.loc54: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc54_25.1: %tuple.type.985 = tuple_literal (%int_1.loc54) [concrete = constants.%tuple.378] -// CHECK:STDOUT: %impl.elem0.loc54: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc54: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc54_25.1: = bound_method %int_1.loc54, %impl.elem0.loc54 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc54: = specific_function %impl.elem0.loc54, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc54_25.2: = bound_method %int_1.loc54, %specific_fn.loc54 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc54: init %i32 = call %bound_method.loc54_25.2(%int_1.loc54) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc54_25.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc54 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc54_25.3: %i32 = converted %int_1.loc54, %.loc54_25.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %tuple: %tuple.type.cb3 = tuple_value (%.loc54_25.3) [concrete = constants.%tuple.152] -// CHECK:STDOUT: %.loc54_25.4: %tuple.type.cb3 = converted %.loc54_25.1, %tuple [concrete = constants.%tuple.152] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc54: init %i32 = call %bound_method.loc54_25.2(%int_1.loc54) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc54_25.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc54 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc54_25.3: %i32 = converted %int_1.loc54, %.loc54_25.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %tuple: %tuple.type.a8a = tuple_value (%.loc54_25.3) [concrete = constants.%tuple.a1e] +// CHECK:STDOUT: %.loc54_25.4: %tuple.type.a8a = converted %.loc54_25.1, %tuple [concrete = constants.%tuple.a1e] // CHECK:STDOUT: %C.call: init %struct_type.c = call %C.ref(%.loc54_25.4) // CHECK:STDOUT: assign file.%c.var, %C.call // CHECK:STDOUT: %D.ref: %D.type = name_ref D, imports.%Main.D [concrete = constants.%D] diff --git a/toolchain/check/testdata/function/declaration/param_same_name.carbon b/toolchain/check/testdata/function/declaration/param_same_name.carbon index f0b0849799c3..7dcc348f182a 100644 --- a/toolchain/check/testdata/function/declaration/param_same_name.carbon +++ b/toolchain/check/testdata/function/declaration/param_same_name.carbon @@ -23,7 +23,7 @@ fn G(a: i32); // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] @@ -47,16 +47,16 @@ fn G(a: i32); // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: %i32 = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/declaration/ref.carbon b/toolchain/check/testdata/function/declaration/ref.carbon index 1a1094b49d11..25146fff61a6 100644 --- a/toolchain/check/testdata/function/declaration/ref.carbon +++ b/toolchain/check/testdata/function/declaration/ref.carbon @@ -28,8 +28,8 @@ fn G() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.aa9: Core.Form = ref_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.512: Core.Form = ref_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] @@ -53,12 +53,12 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %.loc4_11.1: %pattern_type.104 = ref_return_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %.loc4_11.1, %i32 [concrete] +// CHECK:STDOUT: %.loc4_11.1: %pattern_type.6b6 = ref_return_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %.loc4_11.1, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc4_11.2: type = ref_tag %i32 -// CHECK:STDOUT: %.loc4_11.3: Core.Form = ref_form %i32 [concrete = constants.%.aa9] +// CHECK:STDOUT: %.loc4_11.3: Core.Form = ref_form %i32 [concrete = constants.%.512] // CHECK:STDOUT: %.loc4_11.4: ref %i32 = ref_return // CHECK:STDOUT: %return: ref %i32 = return_slot %.loc4_11.4 // CHECK:STDOUT: } @@ -70,7 +70,7 @@ fn G() { // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.104 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = ref_binding_pattern x [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %F.call: ref %i32 = call %F.ref() diff --git a/toolchain/check/testdata/function/definition/fail_decl_param_mismatch.carbon b/toolchain/check/testdata/function/definition/fail_decl_param_mismatch.carbon index ad1061c0656c..d94724f6751d 100644 --- a/toolchain/check/testdata/function/definition/fail_decl_param_mismatch.carbon +++ b/toolchain/check/testdata/function/definition/fail_decl_param_mismatch.carbon @@ -72,38 +72,38 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: --- fail_decl_param_mismatch.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %F.type.b8d678.1: type = fn_type @F.loc15 [concrete] +// CHECK:STDOUT: %F.type.eb3ec9.1: type = fn_type @F.loc15 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %F.7360cc.1: %F.type.b8d678.1 = struct_value () [concrete] +// CHECK:STDOUT: %F.7088cc.1: %F.type.eb3ec9.1 = 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: %F.type.b8d678.2: type = fn_type @F.loc23 [concrete] -// CHECK:STDOUT: %F.7360cc.2: %F.type.b8d678.2 = struct_value () [concrete] -// CHECK:STDOUT: %G.type.5a0d8a.1: type = fn_type @G.loc25 [concrete] -// CHECK:STDOUT: %G.0b60fb.1: %G.type.5a0d8a.1 = struct_value () [concrete] -// CHECK:STDOUT: %G.type.5a0d8a.2: type = fn_type @G.loc33 [concrete] -// CHECK:STDOUT: %G.0b60fb.2: %G.type.5a0d8a.2 = struct_value () [concrete] -// CHECK:STDOUT: %H.type.cdd00c.1: type = fn_type @H.loc35 [concrete] -// CHECK:STDOUT: %H.253ff0.1: %H.type.cdd00c.1 = struct_value () [concrete] -// CHECK:STDOUT: %H.type.cdd00c.2: type = fn_type @H.loc40 [concrete] -// CHECK:STDOUT: %H.253ff0.2: %H.type.cdd00c.2 = struct_value () [concrete] -// CHECK:STDOUT: %I.type.664784.1: type = fn_type @I.loc42 [concrete] -// CHECK:STDOUT: %I.044cfb.1: %I.type.664784.1 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.eb3ec9.2: type = fn_type @F.loc23 [concrete] +// CHECK:STDOUT: %F.7088cc.2: %F.type.eb3ec9.2 = struct_value () [concrete] +// CHECK:STDOUT: %G.type.f42045.1: type = fn_type @G.loc25 [concrete] +// CHECK:STDOUT: %G.4228ed.1: %G.type.f42045.1 = struct_value () [concrete] +// CHECK:STDOUT: %G.type.f42045.2: type = fn_type @G.loc33 [concrete] +// CHECK:STDOUT: %G.4228ed.2: %G.type.f42045.2 = struct_value () [concrete] +// CHECK:STDOUT: %H.type.c0bf33.1: type = fn_type @H.loc35 [concrete] +// CHECK:STDOUT: %H.aacb46.1: %H.type.c0bf33.1 = struct_value () [concrete] +// CHECK:STDOUT: %H.type.c0bf33.2: type = fn_type @H.loc40 [concrete] +// CHECK:STDOUT: %H.aacb46.2: %H.type.c0bf33.2 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.4c8936.1: type = fn_type @I.loc42 [concrete] +// CHECK:STDOUT: %I.8a67f5.1: %I.type.4c8936.1 = struct_value () [concrete] // CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete] -// CHECK:STDOUT: %I.type.664784.2: type = fn_type @I.loc50 [concrete] -// CHECK:STDOUT: %I.044cfb.2: %I.type.664784.2 = struct_value () [concrete] -// CHECK:STDOUT: %J.type.c39a4c.1: type = fn_type @J.loc52 [concrete] -// CHECK:STDOUT: %J.e03599.1: %J.type.c39a4c.1 = struct_value () [concrete] -// CHECK:STDOUT: %J.type.c39a4c.2: type = fn_type @J.loc60 [concrete] -// CHECK:STDOUT: %J.e03599.2: %J.type.c39a4c.2 = struct_value () [concrete] -// CHECK:STDOUT: %K.type.029b5c.1: type = fn_type @K.loc62 [concrete] -// CHECK:STDOUT: %K.5ce087.1: %K.type.029b5c.1 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.4c8936.2: type = fn_type @I.loc50 [concrete] +// CHECK:STDOUT: %I.8a67f5.2: %I.type.4c8936.2 = struct_value () [concrete] +// CHECK:STDOUT: %J.type.6304f1.1: type = fn_type @J.loc52 [concrete] +// CHECK:STDOUT: %J.64b370.1: %J.type.6304f1.1 = struct_value () [concrete] +// CHECK:STDOUT: %J.type.6304f1.2: type = fn_type @J.loc60 [concrete] +// CHECK:STDOUT: %J.64b370.2: %J.type.6304f1.2 = struct_value () [concrete] +// CHECK:STDOUT: %K.type.b73f4f.1: type = fn_type @K.loc62 [concrete] +// CHECK:STDOUT: %K.4fd1e7.1: %K.type.b73f4f.1 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %.469: Core.Form = init_form %empty_struct_type [concrete] // CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete] -// CHECK:STDOUT: %K.type.029b5c.2: type = fn_type @K.loc70 [concrete] -// CHECK:STDOUT: %K.5ce087.2: %K.type.029b5c.2 = struct_value () [concrete] +// CHECK:STDOUT: %K.type.b73f4f.2: type = fn_type @K.loc70 [concrete] +// CHECK:STDOUT: %K.4fd1e7.2: %K.type.b73f4f.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -115,8 +115,8 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: .J = %J.decl.loc52 // CHECK:STDOUT: .K = %K.decl.loc62 // CHECK:STDOUT: } -// CHECK:STDOUT: %F.decl.loc15: %F.type.b8d678.1 = fn_decl @F.loc15 [concrete = constants.%F.7360cc.1] {} {} -// CHECK:STDOUT: %F.decl.loc23: %F.type.b8d678.2 = fn_decl @F.loc23 [concrete = constants.%F.7360cc.2] { +// CHECK:STDOUT: %F.decl.loc15: %F.type.eb3ec9.1 = fn_decl @F.loc15 [concrete = constants.%F.7088cc.1] {} {} +// CHECK:STDOUT: %F.decl.loc23: %F.type.eb3ec9.2 = fn_decl @F.loc23 [concrete = constants.%F.7088cc.2] { // CHECK:STDOUT: %x.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] // CHECK:STDOUT: %x.patt: %pattern_type.cb1 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { @@ -127,7 +127,7 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: } // CHECK:STDOUT: %x: %empty_tuple.type = value_binding x, %x.param // CHECK:STDOUT: } -// CHECK:STDOUT: %G.decl.loc25: %G.type.5a0d8a.1 = fn_decl @G.loc25 [concrete = constants.%G.0b60fb.1] { +// CHECK:STDOUT: %G.decl.loc25: %G.type.f42045.1 = fn_decl @G.loc25 [concrete = constants.%G.4228ed.1] { // CHECK:STDOUT: %x.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] // CHECK:STDOUT: %x.patt: %pattern_type.cb1 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { @@ -138,8 +138,8 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: } // CHECK:STDOUT: %x: %empty_tuple.type = value_binding x, %x.param // CHECK:STDOUT: } -// CHECK:STDOUT: %G.decl.loc33: %G.type.5a0d8a.2 = fn_decl @G.loc33 [concrete = constants.%G.0b60fb.2] {} {} -// CHECK:STDOUT: %H.decl.loc35: %H.type.cdd00c.1 = fn_decl @H.loc35 [concrete = constants.%H.253ff0.1] { +// CHECK:STDOUT: %G.decl.loc33: %G.type.f42045.2 = fn_decl @G.loc33 [concrete = constants.%G.4228ed.2] {} {} +// CHECK:STDOUT: %H.decl.loc35: %H.type.c0bf33.1 = fn_decl @H.loc35 [concrete = constants.%H.aacb46.1] { // CHECK:STDOUT: %x.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] // CHECK:STDOUT: %x.patt: %pattern_type.cb1 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { @@ -150,7 +150,7 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: } // CHECK:STDOUT: %x: %empty_tuple.type = value_binding x, %x.param // CHECK:STDOUT: } -// CHECK:STDOUT: %H.decl.loc40: %H.type.cdd00c.2 = fn_decl @H.loc40 [concrete = constants.%H.253ff0.2] { +// CHECK:STDOUT: %H.decl.loc40: %H.type.c0bf33.2 = fn_decl @H.loc40 [concrete = constants.%H.aacb46.2] { // CHECK:STDOUT: %x.param_patt: = value_param_pattern [concrete] // CHECK:STDOUT: %x.patt: = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { @@ -158,8 +158,8 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: %.loc40: type = type_literal [concrete = ] // CHECK:STDOUT: %x: = value_binding x, [concrete = ] // CHECK:STDOUT: } -// CHECK:STDOUT: %I.decl.loc42: %I.type.664784.1 = fn_decl @I.loc42 [concrete = constants.%I.044cfb.1] {} {} -// CHECK:STDOUT: %I.decl.loc50: %I.type.664784.2 = fn_decl @I.loc50 [concrete = constants.%I.044cfb.2] { +// CHECK:STDOUT: %I.decl.loc42: %I.type.4c8936.1 = fn_decl @I.loc42 [concrete = constants.%I.8a67f5.1] {} {} +// CHECK:STDOUT: %I.decl.loc50: %I.type.4c8936.2 = fn_decl @I.loc50 [concrete = constants.%I.8a67f5.2] { // 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, %.loc50_12.2 [concrete] // CHECK:STDOUT: } { @@ -169,7 +169,7 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %J.decl.loc52: %J.type.c39a4c.1 = fn_decl @J.loc52 [concrete = constants.%J.e03599.1] { +// CHECK:STDOUT: %J.decl.loc52: %J.type.6304f1.1 = fn_decl @J.loc52 [concrete = constants.%J.64b370.1] { // 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, %.loc52_12.2 [concrete] // CHECK:STDOUT: } { @@ -179,8 +179,8 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %J.decl.loc60: %J.type.c39a4c.2 = fn_decl @J.loc60 [concrete = constants.%J.e03599.2] {} {} -// CHECK:STDOUT: %K.decl.loc62: %K.type.029b5c.1 = fn_decl @K.loc62 [concrete = constants.%K.5ce087.1] { +// CHECK:STDOUT: %J.decl.loc60: %J.type.6304f1.2 = fn_decl @J.loc60 [concrete = constants.%J.64b370.2] {} {} +// CHECK:STDOUT: %K.decl.loc62: %K.type.b73f4f.1 = fn_decl @K.loc62 [concrete = constants.%K.4fd1e7.1] { // 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, %.loc62_12.2 [concrete] // CHECK:STDOUT: } { @@ -190,7 +190,7 @@ fn K() -> {} { return {}; } // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %K.decl.loc70: %K.type.029b5c.2 = fn_decl @K.loc70 [concrete = constants.%K.5ce087.2] { +// CHECK:STDOUT: %K.decl.loc70: %K.type.b73f4f.2 = fn_decl @K.loc70 [concrete = constants.%K.4fd1e7.2] { // CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern %return.param_patt, %.loc70_12.2 [concrete] // CHECK:STDOUT: } { diff --git a/toolchain/check/testdata/function/definition/fail_redef.carbon b/toolchain/check/testdata/function/definition/fail_redef.carbon index 7c7b79188e22..08d1825e46a8 100644 --- a/toolchain/check/testdata/function/definition/fail_redef.carbon +++ b/toolchain/check/testdata/function/definition/fail_redef.carbon @@ -25,18 +25,18 @@ fn F() {} // CHECK:STDOUT: --- fail_redef.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %F.type.b8d678.1: type = fn_type @F.loc15 [concrete] -// CHECK:STDOUT: %F.7360cc.1: %F.type.b8d678.1 = struct_value () [concrete] -// CHECK:STDOUT: %F.type.b8d678.2: type = fn_type @F.loc23 [concrete] -// CHECK:STDOUT: %F.7360cc.2: %F.type.b8d678.2 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.eb3ec9.1: type = fn_type @F.loc15 [concrete] +// CHECK:STDOUT: %F.7088cc.1: %F.type.eb3ec9.1 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.eb3ec9.2: type = fn_type @F.loc23 [concrete] +// CHECK:STDOUT: %F.7088cc.2: %F.type.eb3ec9.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .F = %F.decl.loc15 // CHECK:STDOUT: } -// CHECK:STDOUT: %F.decl.loc15: %F.type.b8d678.1 = fn_decl @F.loc15 [concrete = constants.%F.7360cc.1] {} {} -// CHECK:STDOUT: %F.decl.loc23: %F.type.b8d678.2 = fn_decl @F.loc23 [concrete = constants.%F.7360cc.2] {} {} +// CHECK:STDOUT: %F.decl.loc15: %F.type.eb3ec9.1 = fn_decl @F.loc15 [concrete = constants.%F.7088cc.1] {} {} +// CHECK:STDOUT: %F.decl.loc23: %F.type.eb3ec9.2 = fn_decl @F.loc23 [concrete = constants.%F.7088cc.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.loc15() { diff --git a/toolchain/check/testdata/function/definition/implicit_import.carbon b/toolchain/check/testdata/function/definition/implicit_import.carbon index b9b7fbddc155..0b8e34c1145c 100644 --- a/toolchain/check/testdata/function/definition/implicit_import.carbon +++ b/toolchain/check/testdata/function/definition/implicit_import.carbon @@ -295,14 +295,14 @@ fn B() {} // CHECK:STDOUT: --- fail_redef_after_def.impl.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %A.type.f924ba.1: type = fn_type @A.1 [concrete] -// CHECK:STDOUT: %A.c9c0ce.1: %A.type.f924ba.1 = struct_value () [concrete] -// CHECK:STDOUT: %A.type.f924ba.2: type = fn_type @A.loc12 [concrete] -// CHECK:STDOUT: %A.c9c0ce.2: %A.type.f924ba.2 = struct_value () [concrete] +// CHECK:STDOUT: %A.type.9f4a6d.1: type = fn_type @A.1 [concrete] +// CHECK:STDOUT: %A.921eb9.1: %A.type.9f4a6d.1 = struct_value () [concrete] +// CHECK:STDOUT: %A.type.9f4a6d.2: type = fn_type @A.loc12 [concrete] +// CHECK:STDOUT: %A.921eb9.2: %A.type.9f4a6d.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.A: %A.type.f924ba.1 = import_ref Main//redef_after_def, A, loaded [concrete = constants.%A.c9c0ce.1] +// CHECK:STDOUT: %Main.A: %A.type.9f4a6d.1 = import_ref Main//redef_after_def, A, loaded [concrete = constants.%A.921eb9.1] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -311,7 +311,7 @@ fn B() {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_31.1 = import // CHECK:STDOUT: %default.import.loc2_31.2 = import -// CHECK:STDOUT: %A.decl: %A.type.f924ba.2 = fn_decl @A.loc12 [concrete = constants.%A.c9c0ce.2] {} {} +// CHECK:STDOUT: %A.decl: %A.type.9f4a6d.2 = fn_decl @A.loc12 [concrete = constants.%A.921eb9.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @A.1 [from "redef_after_def.carbon"]; diff --git a/toolchain/check/testdata/function/definition/import.carbon b/toolchain/check/testdata/function/definition/import.carbon index 53713c1a61bf..e94ac2b81163 100644 --- a/toolchain/check/testdata/function/definition/import.carbon +++ b/toolchain/check/testdata/function/definition/import.carbon @@ -124,27 +124,27 @@ fn D() {} // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %tuple.type.85c: type = tuple_type (type) [concrete] -// CHECK:STDOUT: %tuple.4e6: %tuple.type.85c = tuple_value (%i32) [concrete] -// CHECK:STDOUT: %tuple.type.cb3: type = tuple_type (%i32) [concrete] -// CHECK:STDOUT: %pattern_type.396: type = pattern_type %tuple.type.cb3 [concrete] +// CHECK:STDOUT: %tuple.19c: %tuple.type.85c = tuple_value (%i32) [concrete] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %pattern_type.e71: type = pattern_type %tuple.type.a8a [concrete] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete] -// CHECK:STDOUT: %.90e: Core.Form = init_form %struct_type.c [concrete] -// CHECK:STDOUT: %pattern_type.820: type = pattern_type %struct_type.c [concrete] +// CHECK:STDOUT: %.510: Core.Form = init_form %struct_type.c [concrete] +// CHECK:STDOUT: %pattern_type.e1a: type = pattern_type %struct_type.c [concrete] // CHECK:STDOUT: %C.type: type = fn_type @C [concrete] // CHECK:STDOUT: %C: %C.type = struct_value () [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] @@ -161,8 +161,8 @@ fn D() {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -176,13 +176,13 @@ fn D() {} // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc5_17 [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc5_17 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc5_17: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5_17 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc5: Core.Form = init_form %i32.loc5_17 [concrete = constants.%.795] // CHECK:STDOUT: %b.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc5_9: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: %i32 = value_binding b, %b.param @@ -190,21 +190,21 @@ fn D() {} // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.396 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.396 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.820 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.820 = return_slot_pattern %return.param_patt, %struct_type.c [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.e71 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.e71 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.e1a = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.e1a = return_slot_pattern %return.param_patt, %struct_type.c [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete = constants.%struct_type.c] -// CHECK:STDOUT: %.loc6_28: Core.Form = init_form %struct_type.c [concrete = constants.%.90e] -// CHECK:STDOUT: %c.param: %tuple.type.cb3 = value_param call_param0 -// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.3 [concrete = constants.%tuple.type.cb3] { +// CHECK:STDOUT: %.loc6_28: Core.Form = init_form %struct_type.c [concrete = constants.%.510] +// CHECK:STDOUT: %c.param: %tuple.type.a8a = value_param call_param0 +// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.3 [concrete = constants.%tuple.type.a8a] { // CHECK:STDOUT: %i32.loc6_10: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc6_14.2: %tuple.type.85c = tuple_literal (%i32.loc6_10) [concrete = constants.%tuple.4e6] -// CHECK:STDOUT: %.loc6_14.3: type = converted %.loc6_14.2, constants.%tuple.type.cb3 [concrete = constants.%tuple.type.cb3] +// CHECK:STDOUT: %.loc6_14.2: %tuple.type.85c = tuple_literal (%i32.loc6_10) [concrete = constants.%tuple.19c] +// CHECK:STDOUT: %.loc6_14.3: type = converted %.loc6_14.2, constants.%tuple.type.a8a [concrete = constants.%tuple.type.a8a] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %tuple.type.cb3 = value_binding c, %c.param +// CHECK:STDOUT: %c: %tuple.type.a8a = value_binding c, %c.param // CHECK:STDOUT: %return.param: ref %struct_type.c = out_param call_param1 // CHECK:STDOUT: %return: ref %struct_type.c = return_slot %return.param // CHECK:STDOUT: } @@ -219,7 +219,7 @@ fn D() {} // CHECK:STDOUT: fn @B(%b.param: %i32) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %b.ref: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc5_30.1: = bound_method %b.ref, %impl.elem0 // 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.loc5_30.2: = bound_method %b.ref, %specific_fn @@ -227,13 +227,13 @@ fn D() {} // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @C(%c.param: %tuple.type.cb3) -> out %return.param: %struct_type.c { +// CHECK:STDOUT: fn @C(%c.param: %tuple.type.a8a) -> out %return.param: %struct_type.c { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: %tuple.type.cb3 = name_ref c, %c +// CHECK:STDOUT: %c.ref: %tuple.type.a8a = name_ref c, %c // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %tuple.elem0: %i32 = tuple_access %c.ref, element0 // CHECK:STDOUT: %.loc6_48.1: %struct_type.c = struct_literal (%tuple.elem0) -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_46.1: = bound_method %tuple.elem0, %impl.elem0 // 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_46.2: = bound_method %tuple.elem0, %specific_fn @@ -282,34 +282,34 @@ fn D() {} // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.820: type = pattern_type %struct_type.c [concrete] +// CHECK:STDOUT: %pattern_type.e1a: type = pattern_type %struct_type.c [concrete] // CHECK:STDOUT: %C.type: type = fn_type @C [concrete] // CHECK:STDOUT: %C: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %tuple.type.cb3: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.378: %tuple.type.985 = tuple_value (%int_1.5b8) [concrete] -// CHECK:STDOUT: %tuple.152: %tuple.type.cb3 = tuple_value (%int_1.d9c) [concrete] +// CHECK:STDOUT: %tuple.a1e: %tuple.type.a8a = tuple_value (%int_1.0c6) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -324,9 +324,9 @@ fn D() {} // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -353,15 +353,15 @@ fn D() {} // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %empty_tuple.type = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt [concrete] // CHECK:STDOUT: %i32.loc7: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: ref %i32 = ref_binding b, %b.var [concrete = %b.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.820 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.820 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.e1a = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.e1a = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %struct_type.c = var %c.var_patt [concrete] // CHECK:STDOUT: %.loc8: type = splice_block %struct_type.c [concrete = constants.%struct_type.c] { @@ -384,27 +384,27 @@ fn D() {} // CHECK:STDOUT: assign file.%a.var, %A.call // CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%Main.B [concrete = constants.%B] // CHECK:STDOUT: %int_1.loc7: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc7: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc7: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc7_16.1: = bound_method %int_1.loc7, %impl.elem0.loc7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_16.2: = bound_method %int_1.loc7, %specific_fn.loc7 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %i32 = call %bound_method.loc7_16.2(%int_1.loc7) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc7_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc7_16.2: %i32 = converted %int_1.loc7, %.loc7_16.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %i32 = call %bound_method.loc7_16.2(%int_1.loc7) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_16.2: %i32 = converted %int_1.loc7, %.loc7_16.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %B.call: init %i32 = call %B.ref(%.loc7_16.2) // CHECK:STDOUT: assign file.%b.var, %B.call // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc8_25.1: %tuple.type.985 = tuple_literal (%int_1.loc8) [concrete = constants.%tuple.378] -// CHECK:STDOUT: %impl.elem0.loc8: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc8: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_25.1: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_25.2: = bound_method %int_1.loc8, %specific_fn.loc8 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %i32 = call %bound_method.loc8_25.2(%int_1.loc8) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_25.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_25.3: %i32 = converted %int_1.loc8, %.loc8_25.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %tuple: %tuple.type.cb3 = tuple_value (%.loc8_25.3) [concrete = constants.%tuple.152] -// CHECK:STDOUT: %.loc8_25.4: %tuple.type.cb3 = converted %.loc8_25.1, %tuple [concrete = constants.%tuple.152] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %i32 = call %bound_method.loc8_25.2(%int_1.loc8) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_25.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_25.3: %i32 = converted %int_1.loc8, %.loc8_25.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %tuple: %tuple.type.a8a = tuple_value (%.loc8_25.3) [concrete = constants.%tuple.a1e] +// CHECK:STDOUT: %.loc8_25.4: %tuple.type.a8a = converted %.loc8_25.1, %tuple [concrete = constants.%tuple.a1e] // CHECK:STDOUT: %C.call: init %struct_type.c = call %C.ref(%.loc8_25.4) // CHECK:STDOUT: assign file.%c.var, %C.call // CHECK:STDOUT: return @@ -413,21 +413,21 @@ fn D() {} // CHECK:STDOUT: --- fail_def_ownership.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %A.type.f924ba.1: type = fn_type @A.1 [concrete] -// CHECK:STDOUT: %A.c9c0ce.1: %A.type.f924ba.1 = struct_value () [concrete] -// CHECK:STDOUT: %A.type.f924ba.2: type = fn_type @A.loc14 [concrete] -// CHECK:STDOUT: %A.c9c0ce.2: %A.type.f924ba.2 = struct_value () [concrete] +// CHECK:STDOUT: %A.type.9f4a6d.1: type = fn_type @A.1 [concrete] +// CHECK:STDOUT: %A.921eb9.1: %A.type.9f4a6d.1 = struct_value () [concrete] +// CHECK:STDOUT: %A.type.9f4a6d.2: type = fn_type @A.loc14 [concrete] +// CHECK:STDOUT: %A.921eb9.2: %A.type.9f4a6d.2 = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.A: %A.type.f924ba.1 = import_ref Main//fns, A, loaded [concrete = constants.%A.c9c0ce.1] +// CHECK:STDOUT: %Main.A: %A.type.9f4a6d.1 = import_ref Main//fns, A, loaded [concrete = constants.%A.921eb9.1] // CHECK:STDOUT: %Main.C = import_ref Main//fns, C, unloaded // CHECK:STDOUT: %Main.D = import_ref Main//fns, D, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { @@ -448,10 +448,10 @@ fn D() {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %A.decl: %A.type.f924ba.2 = fn_decl @A.loc14 [concrete = constants.%A.c9c0ce.2] {} {} +// CHECK:STDOUT: %A.decl: %A.type.9f4a6d.2 = fn_decl @A.loc14 [concrete = constants.%A.921eb9.2] {} {} // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {} { // CHECK:STDOUT: %i32.loc23_17: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc23: Core.Form = init_form %i32.loc23_17 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc23: Core.Form = init_form %i32.loc23_17 [concrete = constants.%.795] // CHECK:STDOUT: %b.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc23_9: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: %i32 = value_binding b, %b.param diff --git a/toolchain/check/testdata/function/definition/params_one.carbon b/toolchain/check/testdata/function/definition/params_one.carbon index cd7ea5aa647c..7c6f999e5895 100644 --- a/toolchain/check/testdata/function/definition/params_one.carbon +++ b/toolchain/check/testdata/function/definition/params_one.carbon @@ -21,7 +21,7 @@ fn Foo(unused a: i32) {} // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] // CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -42,8 +42,8 @@ fn Foo(unused a: i32) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/definition/params_one_comma.carbon b/toolchain/check/testdata/function/definition/params_one_comma.carbon index 935e7fbc60f4..0e091c458f5e 100644 --- a/toolchain/check/testdata/function/definition/params_one_comma.carbon +++ b/toolchain/check/testdata/function/definition/params_one_comma.carbon @@ -21,7 +21,7 @@ fn Foo(unused a: i32,) {} // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] // CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -42,8 +42,8 @@ fn Foo(unused a: i32,) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/definition/params_two.carbon b/toolchain/check/testdata/function/definition/params_two.carbon index 51cadc029c56..20ef8d7289dc 100644 --- a/toolchain/check/testdata/function/definition/params_two.carbon +++ b/toolchain/check/testdata/function/definition/params_two.carbon @@ -21,7 +21,7 @@ fn Foo(unused a: i32, unused b: i32) {} // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] // CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -42,10 +42,10 @@ fn Foo(unused a: i32, unused b: i32) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc15_18: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/definition/params_two_comma.carbon b/toolchain/check/testdata/function/definition/params_two_comma.carbon index 1066b248b65d..4329aae127b6 100644 --- a/toolchain/check/testdata/function/definition/params_two_comma.carbon +++ b/toolchain/check/testdata/function/definition/params_two_comma.carbon @@ -21,7 +21,7 @@ fn Foo(unused a: i32, unused b: i32,) {} // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] // CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -42,10 +42,10 @@ fn Foo(unused a: i32, unused b: i32,) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc15_18: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/function/definition/syntactic_merge.carbon b/toolchain/check/testdata/function/definition/syntactic_merge.carbon index 5b10a97893bf..60311e50f064 100644 --- a/toolchain/check/testdata/function/definition/syntactic_merge.carbon +++ b/toolchain/check/testdata/function/definition/syntactic_merge.carbon @@ -335,10 +335,10 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] -// CHECK:STDOUT: %Foo.type.e3bedb.1: type = fn_type @Foo.loc6 [concrete] -// CHECK:STDOUT: %Foo.1ddd68.1: %Foo.type.e3bedb.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.e3bedb.2: type = fn_type @Foo.loc14 [concrete] -// CHECK:STDOUT: %Foo.1ddd68.2: %Foo.type.e3bedb.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.11c674.1: type = fn_type @Foo.loc6 [concrete] +// CHECK:STDOUT: %Foo.12ccef.1: %Foo.type.11c674.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.11c674.2: type = fn_type @Foo.loc14 [concrete] +// CHECK:STDOUT: %Foo.12ccef.2: %Foo.type.11c674.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -347,7 +347,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: .Foo = %Foo.decl.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.e3bedb.1 = fn_decl @Foo.loc6 [concrete = constants.%Foo.1ddd68.1] { +// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.11c674.1 = fn_decl @Foo.loc6 [concrete = constants.%Foo.12ccef.1] { // CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { @@ -355,7 +355,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = value_binding a, %a.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.e3bedb.2 = fn_decl @Foo.loc14 [concrete = constants.%Foo.1ddd68.2] { +// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.11c674.2 = fn_decl @Foo.loc14 [concrete = constants.%Foo.12ccef.2] { // CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { @@ -386,10 +386,10 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %Foo.type.e3bedb.1: type = fn_type @Foo.loc14 [concrete] -// CHECK:STDOUT: %Foo.1ddd68.1: %Foo.type.e3bedb.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.e3bedb.2: type = fn_type @Foo.loc23 [concrete] -// CHECK:STDOUT: %Foo.1ddd68.2: %Foo.type.e3bedb.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.11c674.1: type = fn_type @Foo.loc14 [concrete] +// CHECK:STDOUT: %Foo.12ccef.1: %Foo.type.11c674.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.11c674.2: type = fn_type @Foo.loc23 [concrete] +// CHECK:STDOUT: %Foo.12ccef.2: %Foo.type.11c674.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -398,8 +398,8 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: .Foo = %Foo.decl.loc14 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.e3bedb.1 = fn_decl @Foo.loc14 [concrete = constants.%Foo.1ddd68.1] {} {} -// CHECK:STDOUT: %Foo.decl.loc23: %Foo.type.e3bedb.2 = fn_decl @Foo.loc23 [concrete = constants.%Foo.1ddd68.2] {} {} +// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.11c674.1 = fn_decl @Foo.loc14 [concrete = constants.%Foo.12ccef.1] {} {} +// CHECK:STDOUT: %Foo.decl.loc23: %Foo.type.11c674.2 = fn_decl @Foo.loc23 [concrete = constants.%Foo.12ccef.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -424,10 +424,10 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] -// CHECK:STDOUT: %Foo.type.e3bedb.1: type = fn_type @Foo.loc6 [concrete] -// CHECK:STDOUT: %Foo.1ddd68.1: %Foo.type.e3bedb.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.e3bedb.2: type = fn_type @Foo.loc14 [concrete] -// CHECK:STDOUT: %Foo.1ddd68.2: %Foo.type.e3bedb.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.11c674.1: type = fn_type @Foo.loc6 [concrete] +// CHECK:STDOUT: %Foo.12ccef.1: %Foo.type.11c674.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.11c674.2: type = fn_type @Foo.loc14 [concrete] +// CHECK:STDOUT: %Foo.12ccef.2: %Foo.type.11c674.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -436,7 +436,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: .Foo = %Foo.decl.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.e3bedb.1 = fn_decl @Foo.loc6 [concrete = constants.%Foo.1ddd68.1] { +// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.11c674.1 = fn_decl @Foo.loc6 [concrete = constants.%Foo.12ccef.1] { // CHECK:STDOUT: %_.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %_.patt: %pattern_type = at_binding_pattern _, %_.param_patt [concrete] // CHECK:STDOUT: } { @@ -444,7 +444,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %_: %C = value_binding _, %_.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.e3bedb.2 = fn_decl @Foo.loc14 [concrete = constants.%Foo.1ddd68.2] { +// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.11c674.2 = fn_decl @Foo.loc14 [concrete = constants.%Foo.12ccef.2] { // CHECK:STDOUT: %_.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %_.patt: %pattern_type = at_binding_pattern _, %_.param_patt [concrete] // CHECK:STDOUT: } { @@ -539,7 +539,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %Main.C: type = import_ref Main//two_file, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.D: type = import_ref Main//two_file, D, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//two_file, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//two_file, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//two_file, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -573,7 +573,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Foo(%a.param: %C) [from "two_file.carbon"] { @@ -593,10 +593,10 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] -// CHECK:STDOUT: %Foo.type.e3bedb.1: type = fn_type @Foo.loc7 [concrete] -// CHECK:STDOUT: %Foo.1ddd68.1: %Foo.type.e3bedb.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.e3bedb.2: type = fn_type @Foo.loc15 [concrete] -// CHECK:STDOUT: %Foo.1ddd68.2: %Foo.type.e3bedb.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.11c674.1: type = fn_type @Foo.loc7 [concrete] +// CHECK:STDOUT: %Foo.12ccef.1: %Foo.type.11c674.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.11c674.2: type = fn_type @Foo.loc15 [concrete] +// CHECK:STDOUT: %Foo.12ccef.2: %Foo.type.11c674.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -608,7 +608,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.ref [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.e3bedb.1 = fn_decl @Foo.loc7 [concrete = constants.%Foo.1ddd68.1] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.11c674.1 = fn_decl @Foo.loc7 [concrete = constants.%Foo.12ccef.1] { // CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { @@ -616,7 +616,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = value_binding a, %a.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.e3bedb.2 = fn_decl @Foo.loc15 [concrete = constants.%Foo.1ddd68.2] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.11c674.2 = fn_decl @Foo.loc15 [concrete = constants.%Foo.12ccef.2] { // CHECK:STDOUT: %b.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %b.patt: %pattern_type = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { @@ -648,10 +648,10 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] -// CHECK:STDOUT: %Foo.type.e3bedb.1: type = fn_type @Foo.loc7 [concrete] -// CHECK:STDOUT: %Foo.1ddd68.1: %Foo.type.e3bedb.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.e3bedb.2: type = fn_type @Foo.loc15 [concrete] -// CHECK:STDOUT: %Foo.1ddd68.2: %Foo.type.e3bedb.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.11c674.1: type = fn_type @Foo.loc7 [concrete] +// CHECK:STDOUT: %Foo.12ccef.1: %Foo.type.11c674.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.11c674.2: type = fn_type @Foo.loc15 [concrete] +// CHECK:STDOUT: %Foo.12ccef.2: %Foo.type.11c674.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -663,7 +663,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.ref [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.e3bedb.1 = fn_decl @Foo.loc7 [concrete = constants.%Foo.1ddd68.1] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.11c674.1 = fn_decl @Foo.loc7 [concrete = constants.%Foo.12ccef.1] { // CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { @@ -671,7 +671,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = value_binding a, %a.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.e3bedb.2 = fn_decl @Foo.loc15 [concrete = constants.%Foo.1ddd68.2] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.11c674.2 = fn_decl @Foo.loc15 [concrete = constants.%Foo.12ccef.2] { // CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { @@ -705,12 +705,12 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] -// CHECK:STDOUT: %a.b551c9.1: %C = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.e3bedb.1: type = fn_type @Foo.loc7 [concrete] -// CHECK:STDOUT: %Foo.1ddd68.1: %Foo.type.e3bedb.1 = struct_value () [concrete] -// CHECK:STDOUT: %a.b551c9.2: %C = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.e3bedb.2: type = fn_type @Foo.loc15 [concrete] -// CHECK:STDOUT: %Foo.1ddd68.2: %Foo.type.e3bedb.2 = struct_value () [concrete] +// CHECK:STDOUT: %a.1bf9e8.1: %C = symbolic_binding a, 0 [symbolic] +// CHECK:STDOUT: %Foo.type.11c674.1: type = fn_type @Foo.loc7 [concrete] +// CHECK:STDOUT: %Foo.12ccef.1: %Foo.type.11c674.1 = struct_value () [concrete] +// CHECK:STDOUT: %a.1bf9e8.2: %C = symbolic_binding a, 0 [symbolic] +// CHECK:STDOUT: %Foo.type.11c674.2: type = fn_type @Foo.loc15 [concrete] +// CHECK:STDOUT: %Foo.12ccef.2: %Foo.type.11c674.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -722,23 +722,23 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.ref [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.e3bedb.1 = fn_decl @Foo.loc7 [concrete = constants.%Foo.1ddd68.1] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.11c674.1 = fn_decl @Foo.loc7 [concrete = constants.%Foo.12ccef.1] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7: type = splice_block %C.ref [concrete = constants.%C] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.loc7_9.2: %C = symbolic_binding a, 0 [symbolic = %a.loc7_9.1 (constants.%a.b551c9.1)] +// CHECK:STDOUT: %a.loc7_9.2: %C = symbolic_binding a, 0 [symbolic = %a.loc7_9.1 (constants.%a.1bf9e8.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.e3bedb.2 = fn_decl @Foo.loc15 [concrete = constants.%Foo.1ddd68.2] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.11c674.2 = fn_decl @Foo.loc15 [concrete = constants.%Foo.12ccef.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15: type = splice_block %D.ref [concrete = constants.%C] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.loc15_16.3: %C = symbolic_binding a, 0 [symbolic = %a.loc15_16.2 (constants.%a.b551c9.2)] +// CHECK:STDOUT: %a.loc15_16.3: %C = symbolic_binding a, 0 [symbolic = %a.loc15_16.2 (constants.%a.1bf9e8.2)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -751,14 +751,14 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Foo.loc7(%a.loc7_9.2: %C) { -// CHECK:STDOUT: %a.loc7_9.1: %C = symbolic_binding a, 0 [symbolic = %a.loc7_9.1 (constants.%a.b551c9.1)] +// CHECK:STDOUT: %a.loc7_9.1: %C = symbolic_binding a, 0 [symbolic = %a.loc7_9.1 (constants.%a.1bf9e8.1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Foo.loc15(%a.loc15_16.3: %C) { -// CHECK:STDOUT: %a.loc15_16.1: %C = symbolic_binding a, 0 [symbolic = %a.loc15_16.1 (constants.%a.b551c9.1)] -// CHECK:STDOUT: %a.loc15_16.2: %C = symbolic_binding a, 0 [symbolic = %a.loc15_16.2 (constants.%a.b551c9.2)] +// CHECK:STDOUT: %a.loc15_16.1: %C = symbolic_binding a, 0 [symbolic = %a.loc15_16.1 (constants.%a.1bf9e8.1)] +// CHECK:STDOUT: %a.loc15_16.2: %C = symbolic_binding a, 0 [symbolic = %a.loc15_16.2 (constants.%a.1bf9e8.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -768,13 +768,13 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo.loc7(constants.%a.b551c9.1) { -// CHECK:STDOUT: %a.loc7_9.1 => constants.%a.b551c9.1 +// CHECK:STDOUT: specific @Foo.loc7(constants.%a.1bf9e8.1) { +// CHECK:STDOUT: %a.loc7_9.1 => constants.%a.1bf9e8.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo.loc15(constants.%a.b551c9.2) { -// CHECK:STDOUT: %a.loc15_16.1 => constants.%a.b551c9.2 -// CHECK:STDOUT: %a.loc15_16.2 => constants.%a.b551c9.2 +// CHECK:STDOUT: specific @Foo.loc15(constants.%a.1bf9e8.2) { +// CHECK:STDOUT: %a.loc15_16.1 => constants.%a.1bf9e8.2 +// CHECK:STDOUT: %a.loc15_16.2 => constants.%a.1bf9e8.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- todo_fail_alias_in_return.carbon @@ -783,7 +783,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] // CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] @@ -805,7 +805,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc7: Core.Form = init_form %C.ref [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc7: Core.Form = init_form %C.ref [concrete = constants.%.a44] // CHECK:STDOUT: %return.param.loc7: ref %C = out_param call_param0 // CHECK:STDOUT: %return.loc7: ref %C = return_slot %return.param.loc7 // CHECK:STDOUT: } @@ -814,7 +814,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] -// CHECK:STDOUT: %.loc8_13: Core.Form = init_form %D.ref [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc8_13: Core.Form = init_form %D.ref [concrete = constants.%.a44] // CHECK:STDOUT: %return.param.loc8: ref %C = out_param call_param0 // CHECK:STDOUT: %return.loc8: ref %C = return_slot %return.param.loc8 // CHECK:STDOUT: } @@ -887,7 +887,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//alias_two_file, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//alias_two_file, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//alias_two_file, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//alias_two_file, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -914,7 +914,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Foo(%a.param: %C) [from "alias_two_file.carbon"] { @@ -930,10 +930,10 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %const: type = const_type %C [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %const [concrete] -// CHECK:STDOUT: %Foo.type.e3bedb.1: type = fn_type @Foo.loc6 [concrete] -// CHECK:STDOUT: %Foo.1ddd68.1: %Foo.type.e3bedb.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.e3bedb.2: type = fn_type @Foo.loc18 [concrete] -// CHECK:STDOUT: %Foo.1ddd68.2: %Foo.type.e3bedb.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.11c674.1: type = fn_type @Foo.loc6 [concrete] +// CHECK:STDOUT: %Foo.12ccef.1: %Foo.type.11c674.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.11c674.2: type = fn_type @Foo.loc18 [concrete] +// CHECK:STDOUT: %Foo.12ccef.2: %Foo.type.11c674.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -942,7 +942,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: .Foo = %Foo.decl.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.e3bedb.1 = fn_decl @Foo.loc6 [concrete = constants.%Foo.1ddd68.1] { +// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.11c674.1 = fn_decl @Foo.loc6 [concrete = constants.%Foo.12ccef.1] { // CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { @@ -953,7 +953,7 @@ fn Foo(unused a: const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %a: %const = value_binding a, %a.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc18: %Foo.type.e3bedb.2 = fn_decl @Foo.loc18 [concrete = constants.%Foo.1ddd68.2] { +// CHECK:STDOUT: %Foo.decl.loc18: %Foo.type.11c674.2 = fn_decl @Foo.loc18 [concrete = constants.%Foo.12ccef.2] { // CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { diff --git a/toolchain/check/testdata/function/generic/call.carbon b/toolchain/check/testdata/function/generic/call.carbon index 7c8cd90bfcc7..eec71cb21287 100644 --- a/toolchain/check/testdata/function/generic/call.carbon +++ b/toolchain/check/testdata/function/generic/call.carbon @@ -76,48 +76,48 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %T.f49: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f49 [symbolic] -// CHECK:STDOUT: %pattern_type.c0fdca.2: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %.dedae6.2: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.e81: type = pattern_type %Copy.type [concrete] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f84 [symbolic] +// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %T.as_type [symbolic] // CHECK:STDOUT: %Function.type: type = fn_type @Function [concrete] // CHECK:STDOUT: %Function: %Function.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.77e: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2dd: = lookup_impl_witness %T.f49, @Copy [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.e9f10f.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f49) [symbolic] -// CHECK:STDOUT: %.e16: type = fn_type_with_self_type %Copy.WithSelf.Op.type.e9f10f.2, %T.f49 [symbolic] -// CHECK:STDOUT: %impl.elem0.41e: %.e16 = impl_witness_access %Copy.lookup_impl_witness.2dd, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7ec: = specific_impl_function %impl.elem0.41e, @Copy.WithSelf.Op(%T.f49) [symbolic] +// CHECK:STDOUT: %require_complete.d83: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d9c: = lookup_impl_witness %T.f84, @Copy [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c85f21.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f84) [symbolic] +// CHECK:STDOUT: %.c29: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c85f21.2, %T.f84 [symbolic] +// CHECK:STDOUT: %impl.elem0.bd2: %.c29 = impl_witness_access %Copy.lookup_impl_witness.d9c, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e2a: = specific_impl_function %impl.elem0.bd2, @Copy.WithSelf.Op(%T.f84) [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic] // CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr.e8f [symbolic] -// CHECK:STDOUT: %Function.specific_fn.eab: = specific_function %Function, @Function(%T.f49) [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2bf: = lookup_impl_witness %ptr.e8f, @Copy [symbolic] -// CHECK:STDOUT: %.b6a: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %Copy.facet.44d: %Copy.type = facet_value %ptr.e8f, (%Copy.lookup_impl_witness.2bf) [symbolic] -// CHECK:STDOUT: %Function.specific_fn.6be: = specific_function %Function, @Function(%Copy.facet.44d) [symbolic] +// CHECK:STDOUT: %Function.specific_fn.4db: = specific_function %Function, @Function(%T.f84) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.1da: = lookup_impl_witness %ptr.e8f, @Copy [symbolic] +// CHECK:STDOUT: %.0e9: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %Copy.facet.302: %Copy.type = facet_value %ptr.e8f, (%Copy.lookup_impl_witness.1da) [symbolic] +// CHECK:STDOUT: %Function.specific_fn.162: = specific_function %Function, @Function(%Copy.facet.302) [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %.c56: Core.Form = init_form %ptr.6be [concrete] -// CHECK:STDOUT: %Copy.impl_witness.881: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.0ff: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5cf: %ptr.as.Copy.impl.Op.type.0ff = struct_value () [concrete] -// CHECK:STDOUT: %complete_type.739: = complete_type_witness %ptr.6be [concrete] -// CHECK:STDOUT: %Copy.facet.d5e: %Copy.type = facet_value %ptr.6be, (%Copy.impl_witness.881) [concrete] -// CHECK:STDOUT: %Function.specific_fn.3e5: = specific_function %Function, @Function(%Copy.facet.d5e) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.72b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.44d) [symbolic] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.72b, %Copy.facet.44d [symbolic] -// CHECK:STDOUT: %impl.elem0.8a3: %.39b = impl_witness_access %Copy.lookup_impl_witness.2bf, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a13: = specific_impl_function %impl.elem0.8a3, @Copy.WithSelf.Op(%Copy.facet.44d) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.d3f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.d5e) [concrete] -// CHECK:STDOUT: %.40e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d3f, %Copy.facet.d5e [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.5cf, @ptr.as.Copy.impl.Op(%C) [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %.8fa: Core.Form = init_form %ptr.6b6 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.65f: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b22: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.c19: %ptr.as.Copy.impl.Op.type.b22 = struct_value () [concrete] +// CHECK:STDOUT: %complete_type.bf9: = complete_type_witness %ptr.6b6 [concrete] +// CHECK:STDOUT: %Copy.facet.3f0: %Copy.type = facet_value %ptr.6b6, (%Copy.impl_witness.65f) [concrete] +// CHECK:STDOUT: %Function.specific_fn.710: = specific_function %Function, @Function(%Copy.facet.3f0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.884: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.302) [symbolic] +// CHECK:STDOUT: %.be5: type = fn_type_with_self_type %Copy.WithSelf.Op.type.884, %Copy.facet.302 [symbolic] +// CHECK:STDOUT: %impl.elem0.484: %.be5 = impl_witness_access %Copy.lookup_impl_witness.1da, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.a76: = specific_impl_function %impl.elem0.484, @Copy.WithSelf.Op(%Copy.facet.302) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c6a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.3f0) [concrete] +// CHECK:STDOUT: %.a68: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c6a, %Copy.facet.3f0 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.c19, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -127,31 +127,31 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %Function.decl: %Function.type = fn_decl @Function [concrete = constants.%Function] { -// CHECK:STDOUT: %T.patt: %pattern_type.b72 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @Function.%pattern_type (%pattern_type.c0fdca.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @Function.%pattern_type (%pattern_type.c0fdca.2) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.c0fdca.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.c0fdca.2) = return_slot_pattern %return.param_patt, %.loc5_37.3 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.e81 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %x.param_patt: @Function.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Function.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt, %.loc5_37.3 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc5_37: %Copy.type = name_ref T, %T.loc5_14.2 [symbolic = %T.loc5_14.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.ref.loc5_37: %Copy.type = name_ref T, %T.loc5_14.2 [symbolic = %T.loc5_14.1 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc5_37: type = facet_access_type %T.ref.loc5_37 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc5_37.3: type = converted %T.ref.loc5_37, %T.as_type.loc5_37 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc5_37.4: Core.Form = init_form %.loc5_37.3 [symbolic = %.loc5_37.2 (constants.%.dedae6.2)] +// CHECK:STDOUT: %.loc5_37.4: Core.Form = init_form %.loc5_37.3 [symbolic = %.loc5_37.2 (constants.%.1ce700.2)] // CHECK:STDOUT: %.loc5_21: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc5_14.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc5_14.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f84)] // CHECK:STDOUT: %x.param: @Function.%T.as_type.loc5_31.1 (%T.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_31.1: type = splice_block %.loc5_31.2 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc5_31: %Copy.type = name_ref T, %T.loc5_14.2 [symbolic = %T.loc5_14.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.ref.loc5_31: %Copy.type = name_ref T, %T.loc5_14.2 [symbolic = %T.loc5_14.1 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc5_31.2: type = facet_access_type %T.ref.loc5_31 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc5_31.2: type = converted %T.ref.loc5_31, %T.as_type.loc5_31.2 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] // CHECK:STDOUT: } @@ -162,25 +162,25 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Function(%T.loc5_14.2: %Copy.type) { -// CHECK:STDOUT: %T.loc5_14.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc5_14.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc5_31.1: type = facet_access_type %T.loc5_14.1 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc5_31.1 [symbolic = %pattern_type (constants.%pattern_type.c0fdca.2)] -// CHECK:STDOUT: %.loc5_37.2: Core.Form = init_form %T.as_type.loc5_31.1 [symbolic = %.loc5_37.2 (constants.%.dedae6.2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc5_31.1 [symbolic = %pattern_type (constants.%pattern_type.2c66b4.2)] +// CHECK:STDOUT: %.loc5_37.2: Core.Form = init_form %T.as_type.loc5_31.1 [symbolic = %.loc5_37.2 (constants.%.1ce700.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc5_31.1 [symbolic = %require_complete (constants.%require_complete.77e)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc5_14.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.2)] -// CHECK:STDOUT: %.loc6: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc5_14.1 [symbolic = %.loc6 (constants.%.e16)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc5_14.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2dd)] -// CHECK:STDOUT: %impl.elem0.loc6_10.2: @Function.%.loc6 (%.e16) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.41e)] -// CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.WithSelf.Op(%T.loc5_14.1) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc5_31.1 [symbolic = %require_complete (constants.%require_complete.d83)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc5_14.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.2)] +// CHECK:STDOUT: %.loc6: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc5_14.1 [symbolic = %.loc6 (constants.%.c29)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc5_14.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c)] +// CHECK:STDOUT: %impl.elem0.loc6_10.2: @Function.%.loc6 (%.c29) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.bd2)] +// CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.WithSelf.Op(%T.loc5_14.1) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @Function.%T.as_type.loc5_31.1 (%T.as_type)) -> out %return.param: @Function.%T.as_type.loc5_31.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: @Function.%T.as_type.loc5_31.1 (%T.as_type) = name_ref x, %x -// CHECK:STDOUT: %impl.elem0.loc6_10.1: @Function.%.loc6 (%.e16) = impl_witness_access constants.%Copy.lookup_impl_witness.2dd, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.41e)] +// CHECK:STDOUT: %impl.elem0.loc6_10.1: @Function.%.loc6 (%.c29) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.bd2)] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %x.ref, %impl.elem0.loc6_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.WithSelf.Op(constants.%T.f49) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.WithSelf.Op(constants.%T.f84) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: %bound_method.loc6_10.2: = bound_method %x.ref, %specific_impl_fn.loc6_10.1 // CHECK:STDOUT: %.loc5_37.1: ref @Function.%T.as_type.loc5_31.1 (%T.as_type) = splice_block %return.param {} // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Function.%T.as_type.loc5_31.1 (%T.as_type) to %.loc5_37.1 = call %bound_method.loc6_10.2(%x.ref) @@ -193,15 +193,15 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Function.specific_fn.loc12_10.2: = specific_function constants.%Function, @Function(%T.loc10_17.1) [symbolic = %Function.specific_fn.loc12_10.2 (constants.%Function.specific_fn.eab)] +// CHECK:STDOUT: %Function.specific_fn.loc12_10.2: = specific_function constants.%Function, @Function(%T.loc10_17.1) [symbolic = %Function.specific_fn.loc12_10.2 (constants.%Function.specific_fn.4db)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type)) -> out %return.param: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [concrete = constants.%Function] -// CHECK:STDOUT: %T.ref.loc12: %Copy.type = name_ref T, %T.loc10_17.2 [symbolic = %T.loc10_17.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.ref.loc12: %Copy.type = name_ref T, %T.loc10_17.2 [symbolic = %T.loc10_17.1 (constants.%T.f84)] // CHECK:STDOUT: %x.ref: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) = name_ref x, %x -// CHECK:STDOUT: %.loc12: %Copy.type = converted constants.%T.as_type, constants.%T.f49 [symbolic = %T.loc10_17.1 (constants.%T.f49)] -// CHECK:STDOUT: %Function.specific_fn.loc12_10.1: = specific_function %Function.ref, @Function(constants.%T.f49) [symbolic = %Function.specific_fn.loc12_10.2 (constants.%Function.specific_fn.eab)] +// CHECK:STDOUT: %.loc12: %Copy.type = converted constants.%T.as_type, constants.%T.f84 [symbolic = %T.loc10_17.1 (constants.%T.f84)] +// CHECK:STDOUT: %Function.specific_fn.loc12_10.1: = specific_function %Function.ref, @Function(constants.%T.f84) [symbolic = %Function.specific_fn.loc12_10.2 (constants.%Function.specific_fn.4db)] // CHECK:STDOUT: // CHECK:STDOUT: %Function.call: init @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) to %.loc10_40.1 = call %Function.specific_fn.loc12_10.1(%x.ref) // CHECK:STDOUT: return %Function.call to %return.param @@ -213,10 +213,10 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %.loc18_24.3: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc16_20.1) [symbolic = %.loc18_24.3 (constants.%.b6a)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc16_33.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2bf)] -// CHECK:STDOUT: %Copy.facet.loc18_24.3: %Copy.type = facet_value %ptr.loc16_33.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet.loc18_24.3 (constants.%Copy.facet.44d)] -// CHECK:STDOUT: %Function.specific_fn.loc18_10.2: = specific_function constants.%Function, @Function(%Copy.facet.loc18_24.3) [symbolic = %Function.specific_fn.loc18_10.2 (constants.%Function.specific_fn.6be)] +// CHECK:STDOUT: %.loc18_24.3: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc16_20.1) [symbolic = %.loc18_24.3 (constants.%.0e9)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc16_33.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.1da)] +// CHECK:STDOUT: %Copy.facet.loc18_24.3: %Copy.type = facet_value %ptr.loc16_33.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet.loc18_24.3 (constants.%Copy.facet.302)] +// CHECK:STDOUT: %Function.specific_fn.loc18_10.2: = specific_function constants.%Function, @Function(%Copy.facet.loc18_24.3) [symbolic = %Function.specific_fn.loc18_10.2 (constants.%Function.specific_fn.162)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @CallGenericPtr.%ptr.loc16_33.1 (%ptr.e8f)) -> out %return.param: @CallGenericPtr.%ptr.loc16_33.1 (%ptr.e8f) { // CHECK:STDOUT: !entry: @@ -224,51 +224,51 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: %T.ref.loc18: type = name_ref T, %T.loc16_20.2 [symbolic = %T.loc16_20.1 (constants.%T.67d)] // CHECK:STDOUT: %ptr.loc18: type = ptr_type %T.ref.loc18 [symbolic = %ptr.loc16_33.1 (constants.%ptr.e8f)] // CHECK:STDOUT: %x.ref: @CallGenericPtr.%ptr.loc16_33.1 (%ptr.e8f) = name_ref x, %x -// CHECK:STDOUT: %Copy.facet.loc18_24.1: %Copy.type = facet_value %ptr.loc18, (constants.%Copy.lookup_impl_witness.2bf) [symbolic = %Copy.facet.loc18_24.3 (constants.%Copy.facet.44d)] -// CHECK:STDOUT: %.loc18_24.1: %Copy.type = converted %ptr.loc18, %Copy.facet.loc18_24.1 [symbolic = %Copy.facet.loc18_24.3 (constants.%Copy.facet.44d)] -// CHECK:STDOUT: %Copy.facet.loc18_24.2: %Copy.type = facet_value constants.%ptr.e8f, (constants.%Copy.lookup_impl_witness.2bf) [symbolic = %Copy.facet.loc18_24.3 (constants.%Copy.facet.44d)] -// CHECK:STDOUT: %.loc18_24.2: %Copy.type = converted constants.%ptr.e8f, %Copy.facet.loc18_24.2 [symbolic = %Copy.facet.loc18_24.3 (constants.%Copy.facet.44d)] -// CHECK:STDOUT: %Function.specific_fn.loc18_10.1: = specific_function %Function.ref, @Function(constants.%Copy.facet.44d) [symbolic = %Function.specific_fn.loc18_10.2 (constants.%Function.specific_fn.6be)] +// CHECK:STDOUT: %Copy.facet.loc18_24.1: %Copy.type = facet_value %ptr.loc18, (constants.%Copy.lookup_impl_witness.1da) [symbolic = %Copy.facet.loc18_24.3 (constants.%Copy.facet.302)] +// CHECK:STDOUT: %.loc18_24.1: %Copy.type = converted %ptr.loc18, %Copy.facet.loc18_24.1 [symbolic = %Copy.facet.loc18_24.3 (constants.%Copy.facet.302)] +// CHECK:STDOUT: %Copy.facet.loc18_24.2: %Copy.type = facet_value constants.%ptr.e8f, (constants.%Copy.lookup_impl_witness.1da) [symbolic = %Copy.facet.loc18_24.3 (constants.%Copy.facet.302)] +// CHECK:STDOUT: %.loc18_24.2: %Copy.type = converted constants.%ptr.e8f, %Copy.facet.loc18_24.2 [symbolic = %Copy.facet.loc18_24.3 (constants.%Copy.facet.302)] +// CHECK:STDOUT: %Function.specific_fn.loc18_10.1: = specific_function %Function.ref, @Function(constants.%Copy.facet.302) [symbolic = %Function.specific_fn.loc18_10.2 (constants.%Function.specific_fn.162)] // CHECK:STDOUT: %Function.call: init @CallGenericPtr.%ptr.loc16_33.1 (%ptr.e8f) = call %Function.specific_fn.loc18_10.1(%x.ref) // CHECK:STDOUT: return %Function.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallSpecific(%x.param: %ptr.6be) -> out %return.param: %ptr.6be { +// CHECK:STDOUT: fn @CallSpecific(%x.param: %ptr.6b6) -> out %return.param: %ptr.6b6 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [concrete = constants.%Function] // CHECK:STDOUT: %C.ref.loc26: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc26: type = ptr_type %C.ref.loc26 [concrete = constants.%ptr.6be] -// CHECK:STDOUT: %x.ref: %ptr.6be = name_ref x, %x -// CHECK:STDOUT: %Copy.facet.loc26_24.1: %Copy.type = facet_value %ptr.loc26, (constants.%Copy.impl_witness.881) [concrete = constants.%Copy.facet.d5e] -// CHECK:STDOUT: %.loc26_24.1: %Copy.type = converted %ptr.loc26, %Copy.facet.loc26_24.1 [concrete = constants.%Copy.facet.d5e] -// CHECK:STDOUT: %Copy.facet.loc26_24.2: %Copy.type = facet_value constants.%ptr.6be, (constants.%Copy.impl_witness.881) [concrete = constants.%Copy.facet.d5e] -// CHECK:STDOUT: %.loc26_24.2: %Copy.type = converted constants.%ptr.6be, %Copy.facet.loc26_24.2 [concrete = constants.%Copy.facet.d5e] -// CHECK:STDOUT: %Function.specific_fn: = specific_function %Function.ref, @Function(constants.%Copy.facet.d5e) [concrete = constants.%Function.specific_fn.3e5] -// CHECK:STDOUT: %Function.call: init %ptr.6be = call %Function.specific_fn(%x.ref) +// CHECK:STDOUT: %ptr.loc26: type = ptr_type %C.ref.loc26 [concrete = constants.%ptr.6b6] +// CHECK:STDOUT: %x.ref: %ptr.6b6 = name_ref x, %x +// CHECK:STDOUT: %Copy.facet.loc26_24.1: %Copy.type = facet_value %ptr.loc26, (constants.%Copy.impl_witness.65f) [concrete = constants.%Copy.facet.3f0] +// CHECK:STDOUT: %.loc26_24.1: %Copy.type = converted %ptr.loc26, %Copy.facet.loc26_24.1 [concrete = constants.%Copy.facet.3f0] +// CHECK:STDOUT: %Copy.facet.loc26_24.2: %Copy.type = facet_value constants.%ptr.6b6, (constants.%Copy.impl_witness.65f) [concrete = constants.%Copy.facet.3f0] +// CHECK:STDOUT: %.loc26_24.2: %Copy.type = converted constants.%ptr.6b6, %Copy.facet.loc26_24.2 [concrete = constants.%Copy.facet.3f0] +// CHECK:STDOUT: %Function.specific_fn: = specific_function %Function.ref, @Function(constants.%Copy.facet.3f0) [concrete = constants.%Function.specific_fn.710] +// CHECK:STDOUT: %Function.call: init %ptr.6b6 = call %Function.specific_fn(%x.ref) // CHECK:STDOUT: return %Function.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Function(constants.%T.f49) { -// CHECK:STDOUT: %T.loc5_14.1 => constants.%T.f49 +// CHECK:STDOUT: specific @Function(constants.%T.f84) { +// CHECK:STDOUT: %T.loc5_14.1 => constants.%T.f84 // CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c0fdca.2 -// CHECK:STDOUT: %.loc5_37.2 => constants.%.dedae6.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2c66b4.2 +// CHECK:STDOUT: %.loc5_37.2 => constants.%.1ce700.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.77e -// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.e9f10f.2 -// CHECK:STDOUT: %.loc6 => constants.%.e16 -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.2dd -// CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%impl.elem0.41e -// CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%specific_impl_fn.7ec +// CHECK:STDOUT: %require_complete => constants.%require_complete.d83 +// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.c85f21.2 +// CHECK:STDOUT: %.loc6 => constants.%.c29 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.d9c +// CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%impl.elem0.bd2 +// CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%specific_impl_fn.e2a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @CallGeneric(constants.%T.f49) { -// CHECK:STDOUT: %T.loc10_17.1 => constants.%T.f49 +// CHECK:STDOUT: specific @CallGeneric(constants.%T.f84) { +// CHECK:STDOUT: %T.loc10_17.1 => constants.%T.f84 // CHECK:STDOUT: %T.as_type.loc10_34.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c0fdca.2 -// CHECK:STDOUT: %.loc10_40.2 => constants.%.dedae6.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2c66b4.2 +// CHECK:STDOUT: %.loc10_40.2 => constants.%.1ce700.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericPtr(constants.%T.67d) { @@ -278,33 +278,33 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: %.loc16_40.1 => constants.%.cb6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Function(constants.%Copy.facet.44d) { -// CHECK:STDOUT: %T.loc5_14.1 => constants.%Copy.facet.44d +// CHECK:STDOUT: specific @Function(constants.%Copy.facet.302) { +// CHECK:STDOUT: %T.loc5_14.1 => constants.%Copy.facet.302 // CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%ptr.e8f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4 // CHECK:STDOUT: %.loc5_37.2 => constants.%.cb6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.ef1 -// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.72b -// CHECK:STDOUT: %.loc6 => constants.%.39b -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.2bf -// CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%impl.elem0.8a3 -// CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%specific_impl_fn.a13 +// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.884 +// CHECK:STDOUT: %.loc6 => constants.%.be5 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.1da +// CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%impl.elem0.484 +// CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%specific_impl_fn.a76 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Function(constants.%Copy.facet.d5e) { -// CHECK:STDOUT: %T.loc5_14.1 => constants.%Copy.facet.d5e -// CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%ptr.6be -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1c8 -// CHECK:STDOUT: %.loc5_37.2 => constants.%.c56 +// CHECK:STDOUT: specific @Function(constants.%Copy.facet.3f0) { +// CHECK:STDOUT: %T.loc5_14.1 => constants.%Copy.facet.3f0 +// CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%ptr.6b6 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fcb +// CHECK:STDOUT: %.loc5_37.2 => constants.%.8fa // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.739 -// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.d3f -// CHECK:STDOUT: %.loc6 => constants.%.40e -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.881 -// CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%ptr.as.Copy.impl.Op.5cf +// CHECK:STDOUT: %require_complete => constants.%complete_type.bf9 +// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.c6a +// CHECK:STDOUT: %.loc6 => constants.%.a68 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.65f +// CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%ptr.as.Copy.impl.Op.c19 // CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%ptr.as.Copy.impl.Op.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: @@ -314,48 +314,48 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %T.f49: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f49 [symbolic] -// CHECK:STDOUT: %pattern_type.c0fdca.2: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %.dedae6.2: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.e81: type = pattern_type %Copy.type [concrete] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f84 [symbolic] +// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %T.as_type [symbolic] // CHECK:STDOUT: %Function.type: type = fn_type @Function [concrete] // CHECK:STDOUT: %Function: %Function.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.77e: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2dd: = lookup_impl_witness %T.f49, @Copy [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.e9f10f.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f49) [symbolic] -// CHECK:STDOUT: %.e16: type = fn_type_with_self_type %Copy.WithSelf.Op.type.e9f10f.2, %T.f49 [symbolic] -// CHECK:STDOUT: %impl.elem0.41e: %.e16 = impl_witness_access %Copy.lookup_impl_witness.2dd, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7ec: = specific_impl_function %impl.elem0.41e, @Copy.WithSelf.Op(%T.f49) [symbolic] +// CHECK:STDOUT: %require_complete.d83: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d9c: = lookup_impl_witness %T.f84, @Copy [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c85f21.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f84) [symbolic] +// CHECK:STDOUT: %.c29: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c85f21.2, %T.f84 [symbolic] +// CHECK:STDOUT: %impl.elem0.bd2: %.c29 = impl_witness_access %Copy.lookup_impl_witness.d9c, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e2a: = specific_impl_function %impl.elem0.bd2, @Copy.WithSelf.Op(%T.f84) [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic] // CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr.e8f [symbolic] -// CHECK:STDOUT: %Function.specific_fn.eab: = specific_function %Function, @Function(%T.f49) [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2bf: = lookup_impl_witness %ptr.e8f, @Copy [symbolic] -// CHECK:STDOUT: %.b6a: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %Copy.facet.44d: %Copy.type = facet_value %ptr.e8f, (%Copy.lookup_impl_witness.2bf) [symbolic] -// CHECK:STDOUT: %Function.specific_fn.6be: = specific_function %Function, @Function(%Copy.facet.44d) [symbolic] +// CHECK:STDOUT: %Function.specific_fn.4db: = specific_function %Function, @Function(%T.f84) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.1da: = lookup_impl_witness %ptr.e8f, @Copy [symbolic] +// CHECK:STDOUT: %.0e9: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %Copy.facet.302: %Copy.type = facet_value %ptr.e8f, (%Copy.lookup_impl_witness.1da) [symbolic] +// CHECK:STDOUT: %Function.specific_fn.162: = specific_function %Function, @Function(%Copy.facet.302) [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %.c56: Core.Form = init_form %ptr.6be [concrete] -// CHECK:STDOUT: %Copy.impl_witness.881: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.0ff: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5cf: %ptr.as.Copy.impl.Op.type.0ff = struct_value () [concrete] -// CHECK:STDOUT: %complete_type.739: = complete_type_witness %ptr.6be [concrete] -// CHECK:STDOUT: %Copy.facet.d5e: %Copy.type = facet_value %ptr.6be, (%Copy.impl_witness.881) [concrete] -// CHECK:STDOUT: %Function.specific_fn.3e5: = specific_function %Function, @Function(%Copy.facet.d5e) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.72b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.44d) [symbolic] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.72b, %Copy.facet.44d [symbolic] -// CHECK:STDOUT: %impl.elem0.8a3: %.39b = impl_witness_access %Copy.lookup_impl_witness.2bf, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a13: = specific_impl_function %impl.elem0.8a3, @Copy.WithSelf.Op(%Copy.facet.44d) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.d3f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.d5e) [concrete] -// CHECK:STDOUT: %.40e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d3f, %Copy.facet.d5e [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.5cf, @ptr.as.Copy.impl.Op(%C) [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %.8fa: Core.Form = init_form %ptr.6b6 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.65f: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b22: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.c19: %ptr.as.Copy.impl.Op.type.b22 = struct_value () [concrete] +// CHECK:STDOUT: %complete_type.bf9: = complete_type_witness %ptr.6b6 [concrete] +// CHECK:STDOUT: %Copy.facet.3f0: %Copy.type = facet_value %ptr.6b6, (%Copy.impl_witness.65f) [concrete] +// CHECK:STDOUT: %Function.specific_fn.710: = specific_function %Function, @Function(%Copy.facet.3f0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.884: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.302) [symbolic] +// CHECK:STDOUT: %.be5: type = fn_type_with_self_type %Copy.WithSelf.Op.type.884, %Copy.facet.302 [symbolic] +// CHECK:STDOUT: %impl.elem0.484: %.be5 = impl_witness_access %Copy.lookup_impl_witness.1da, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.a76: = specific_impl_function %impl.elem0.484, @Copy.WithSelf.Op(%Copy.facet.302) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c6a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.3f0) [concrete] +// CHECK:STDOUT: %.a68: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c6a, %Copy.facet.3f0 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.c19, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -365,31 +365,31 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %Function.decl: %Function.type = fn_decl @Function [concrete = constants.%Function] { -// CHECK:STDOUT: %T.patt: %pattern_type.b72 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @Function.%pattern_type (%pattern_type.c0fdca.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @Function.%pattern_type (%pattern_type.c0fdca.2) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.c0fdca.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.c0fdca.2) = return_slot_pattern %return.param_patt, %.loc5_37.3 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.e81 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %x.param_patt: @Function.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Function.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt, %.loc5_37.3 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc5_37: %Copy.type = name_ref T, %T.loc5_14.2 [symbolic = %T.loc5_14.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.ref.loc5_37: %Copy.type = name_ref T, %T.loc5_14.2 [symbolic = %T.loc5_14.1 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc5_37: type = facet_access_type %T.ref.loc5_37 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc5_37.3: type = converted %T.ref.loc5_37, %T.as_type.loc5_37 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc5_37.4: Core.Form = init_form %.loc5_37.3 [symbolic = %.loc5_37.2 (constants.%.dedae6.2)] +// CHECK:STDOUT: %.loc5_37.4: Core.Form = init_form %.loc5_37.3 [symbolic = %.loc5_37.2 (constants.%.1ce700.2)] // CHECK:STDOUT: %.loc5_21: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc5_14.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc5_14.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f84)] // CHECK:STDOUT: %x.param: @Function.%T.as_type.loc5_31.1 (%T.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_31.1: type = splice_block %.loc5_31.2 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc5_31: %Copy.type = name_ref T, %T.loc5_14.2 [symbolic = %T.loc5_14.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.ref.loc5_31: %Copy.type = name_ref T, %T.loc5_14.2 [symbolic = %T.loc5_14.1 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc5_31.2: type = facet_access_type %T.ref.loc5_31 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc5_31.2: type = converted %T.ref.loc5_31, %T.as_type.loc5_31.2 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] // CHECK:STDOUT: } @@ -400,25 +400,25 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Function(%T.loc5_14.2: %Copy.type) { -// CHECK:STDOUT: %T.loc5_14.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f49)] +// CHECK:STDOUT: %T.loc5_14.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc5_31.1: type = facet_access_type %T.loc5_14.1 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc5_31.1 [symbolic = %pattern_type (constants.%pattern_type.c0fdca.2)] -// CHECK:STDOUT: %.loc5_37.2: Core.Form = init_form %T.as_type.loc5_31.1 [symbolic = %.loc5_37.2 (constants.%.dedae6.2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc5_31.1 [symbolic = %pattern_type (constants.%pattern_type.2c66b4.2)] +// CHECK:STDOUT: %.loc5_37.2: Core.Form = init_form %T.as_type.loc5_31.1 [symbolic = %.loc5_37.2 (constants.%.1ce700.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc5_31.1 [symbolic = %require_complete (constants.%require_complete.77e)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc5_14.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.2)] -// CHECK:STDOUT: %.loc6: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc5_14.1 [symbolic = %.loc6 (constants.%.e16)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc5_14.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2dd)] -// CHECK:STDOUT: %impl.elem0.loc6_10.2: @Function.%.loc6 (%.e16) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.41e)] -// CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.WithSelf.Op(%T.loc5_14.1) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc5_31.1 [symbolic = %require_complete (constants.%require_complete.d83)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc5_14.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.2)] +// CHECK:STDOUT: %.loc6: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc5_14.1 [symbolic = %.loc6 (constants.%.c29)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc5_14.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c)] +// CHECK:STDOUT: %impl.elem0.loc6_10.2: @Function.%.loc6 (%.c29) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.bd2)] +// CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.WithSelf.Op(%T.loc5_14.1) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @Function.%T.as_type.loc5_31.1 (%T.as_type)) -> out %return.param: @Function.%T.as_type.loc5_31.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: @Function.%T.as_type.loc5_31.1 (%T.as_type) = name_ref x, %x -// CHECK:STDOUT: %impl.elem0.loc6_10.1: @Function.%.loc6 (%.e16) = impl_witness_access constants.%Copy.lookup_impl_witness.2dd, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.41e)] +// CHECK:STDOUT: %impl.elem0.loc6_10.1: @Function.%.loc6 (%.c29) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.bd2)] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %x.ref, %impl.elem0.loc6_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.WithSelf.Op(constants.%T.f49) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.7ec)] +// CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.WithSelf.Op(constants.%T.f84) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.e2a)] // CHECK:STDOUT: %bound_method.loc6_10.2: = bound_method %x.ref, %specific_impl_fn.loc6_10.1 // CHECK:STDOUT: %.loc5_37.1: ref @Function.%T.as_type.loc5_31.1 (%T.as_type) = splice_block %return.param {} // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Function.%T.as_type.loc5_31.1 (%T.as_type) to %.loc5_37.1 = call %bound_method.loc6_10.2(%x.ref) @@ -431,14 +431,14 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Function.specific_fn.loc12_10.2: = specific_function constants.%Function, @Function(%T.loc10_17.1) [symbolic = %Function.specific_fn.loc12_10.2 (constants.%Function.specific_fn.eab)] +// CHECK:STDOUT: %Function.specific_fn.loc12_10.2: = specific_function constants.%Function, @Function(%T.loc10_17.1) [symbolic = %Function.specific_fn.loc12_10.2 (constants.%Function.specific_fn.4db)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type)) -> out %return.param: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [concrete = constants.%Function] // CHECK:STDOUT: %x.ref: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) = name_ref x, %x -// CHECK:STDOUT: %.loc12: %Copy.type = converted constants.%T.as_type, constants.%T.f49 [symbolic = %T.loc10_17.1 (constants.%T.f49)] -// CHECK:STDOUT: %Function.specific_fn.loc12_10.1: = specific_function %Function.ref, @Function(constants.%T.f49) [symbolic = %Function.specific_fn.loc12_10.2 (constants.%Function.specific_fn.eab)] +// CHECK:STDOUT: %.loc12: %Copy.type = converted constants.%T.as_type, constants.%T.f84 [symbolic = %T.loc10_17.1 (constants.%T.f84)] +// CHECK:STDOUT: %Function.specific_fn.loc12_10.1: = specific_function %Function.ref, @Function(constants.%T.f84) [symbolic = %Function.specific_fn.loc12_10.2 (constants.%Function.specific_fn.4db)] // CHECK:STDOUT: // CHECK:STDOUT: %Function.call: init @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) to %.loc10_40.1 = call %Function.specific_fn.loc12_10.1(%x.ref) // CHECK:STDOUT: return %Function.call to %return.param @@ -450,54 +450,54 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %.loc18_20.2: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc16_20.1) [symbolic = %.loc18_20.2 (constants.%.b6a)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc16_33.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2bf)] -// CHECK:STDOUT: %Copy.facet.loc18_20.2: %Copy.type = facet_value %ptr.loc16_33.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet.loc18_20.2 (constants.%Copy.facet.44d)] -// CHECK:STDOUT: %Function.specific_fn.loc18_10.2: = specific_function constants.%Function, @Function(%Copy.facet.loc18_20.2) [symbolic = %Function.specific_fn.loc18_10.2 (constants.%Function.specific_fn.6be)] +// CHECK:STDOUT: %.loc18_20.2: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc16_20.1) [symbolic = %.loc18_20.2 (constants.%.0e9)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc16_33.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.1da)] +// CHECK:STDOUT: %Copy.facet.loc18_20.2: %Copy.type = facet_value %ptr.loc16_33.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet.loc18_20.2 (constants.%Copy.facet.302)] +// CHECK:STDOUT: %Function.specific_fn.loc18_10.2: = specific_function constants.%Function, @Function(%Copy.facet.loc18_20.2) [symbolic = %Function.specific_fn.loc18_10.2 (constants.%Function.specific_fn.162)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @CallGenericPtr.%ptr.loc16_33.1 (%ptr.e8f)) -> out %return.param: @CallGenericPtr.%ptr.loc16_33.1 (%ptr.e8f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [concrete = constants.%Function] // CHECK:STDOUT: %x.ref: @CallGenericPtr.%ptr.loc16_33.1 (%ptr.e8f) = name_ref x, %x -// CHECK:STDOUT: %Copy.facet.loc18_20.1: %Copy.type = facet_value constants.%ptr.e8f, (constants.%Copy.lookup_impl_witness.2bf) [symbolic = %Copy.facet.loc18_20.2 (constants.%Copy.facet.44d)] -// CHECK:STDOUT: %.loc18_20.1: %Copy.type = converted constants.%ptr.e8f, %Copy.facet.loc18_20.1 [symbolic = %Copy.facet.loc18_20.2 (constants.%Copy.facet.44d)] -// CHECK:STDOUT: %Function.specific_fn.loc18_10.1: = specific_function %Function.ref, @Function(constants.%Copy.facet.44d) [symbolic = %Function.specific_fn.loc18_10.2 (constants.%Function.specific_fn.6be)] +// CHECK:STDOUT: %Copy.facet.loc18_20.1: %Copy.type = facet_value constants.%ptr.e8f, (constants.%Copy.lookup_impl_witness.1da) [symbolic = %Copy.facet.loc18_20.2 (constants.%Copy.facet.302)] +// CHECK:STDOUT: %.loc18_20.1: %Copy.type = converted constants.%ptr.e8f, %Copy.facet.loc18_20.1 [symbolic = %Copy.facet.loc18_20.2 (constants.%Copy.facet.302)] +// CHECK:STDOUT: %Function.specific_fn.loc18_10.1: = specific_function %Function.ref, @Function(constants.%Copy.facet.302) [symbolic = %Function.specific_fn.loc18_10.2 (constants.%Function.specific_fn.162)] // CHECK:STDOUT: %Function.call: init @CallGenericPtr.%ptr.loc16_33.1 (%ptr.e8f) = call %Function.specific_fn.loc18_10.1(%x.ref) // CHECK:STDOUT: return %Function.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallSpecific(%x.param: %ptr.6be) -> out %return.param: %ptr.6be { +// CHECK:STDOUT: fn @CallSpecific(%x.param: %ptr.6b6) -> out %return.param: %ptr.6b6 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [concrete = constants.%Function] -// CHECK:STDOUT: %x.ref: %ptr.6be = name_ref x, %x -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%ptr.6be, (constants.%Copy.impl_witness.881) [concrete = constants.%Copy.facet.d5e] -// CHECK:STDOUT: %.loc26: %Copy.type = converted constants.%ptr.6be, %Copy.facet [concrete = constants.%Copy.facet.d5e] -// CHECK:STDOUT: %Function.specific_fn: = specific_function %Function.ref, @Function(constants.%Copy.facet.d5e) [concrete = constants.%Function.specific_fn.3e5] -// CHECK:STDOUT: %Function.call: init %ptr.6be = call %Function.specific_fn(%x.ref) +// CHECK:STDOUT: %x.ref: %ptr.6b6 = name_ref x, %x +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%ptr.6b6, (constants.%Copy.impl_witness.65f) [concrete = constants.%Copy.facet.3f0] +// CHECK:STDOUT: %.loc26: %Copy.type = converted constants.%ptr.6b6, %Copy.facet [concrete = constants.%Copy.facet.3f0] +// CHECK:STDOUT: %Function.specific_fn: = specific_function %Function.ref, @Function(constants.%Copy.facet.3f0) [concrete = constants.%Function.specific_fn.710] +// CHECK:STDOUT: %Function.call: init %ptr.6b6 = call %Function.specific_fn(%x.ref) // CHECK:STDOUT: return %Function.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Function(constants.%T.f49) { -// CHECK:STDOUT: %T.loc5_14.1 => constants.%T.f49 +// CHECK:STDOUT: specific @Function(constants.%T.f84) { +// CHECK:STDOUT: %T.loc5_14.1 => constants.%T.f84 // CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c0fdca.2 -// CHECK:STDOUT: %.loc5_37.2 => constants.%.dedae6.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2c66b4.2 +// CHECK:STDOUT: %.loc5_37.2 => constants.%.1ce700.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.77e -// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.e9f10f.2 -// CHECK:STDOUT: %.loc6 => constants.%.e16 -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.2dd -// CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%impl.elem0.41e -// CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%specific_impl_fn.7ec +// CHECK:STDOUT: %require_complete => constants.%require_complete.d83 +// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.c85f21.2 +// CHECK:STDOUT: %.loc6 => constants.%.c29 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.d9c +// CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%impl.elem0.bd2 +// CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%specific_impl_fn.e2a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @CallGeneric(constants.%T.f49) { -// CHECK:STDOUT: %T.loc10_17.1 => constants.%T.f49 +// CHECK:STDOUT: specific @CallGeneric(constants.%T.f84) { +// CHECK:STDOUT: %T.loc10_17.1 => constants.%T.f84 // CHECK:STDOUT: %T.as_type.loc10_34.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c0fdca.2 -// CHECK:STDOUT: %.loc10_40.2 => constants.%.dedae6.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2c66b4.2 +// CHECK:STDOUT: %.loc10_40.2 => constants.%.1ce700.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericPtr(constants.%T.67d) { @@ -507,33 +507,33 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: %.loc16_40.1 => constants.%.cb6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Function(constants.%Copy.facet.44d) { -// CHECK:STDOUT: %T.loc5_14.1 => constants.%Copy.facet.44d +// CHECK:STDOUT: specific @Function(constants.%Copy.facet.302) { +// CHECK:STDOUT: %T.loc5_14.1 => constants.%Copy.facet.302 // CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%ptr.e8f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4 // CHECK:STDOUT: %.loc5_37.2 => constants.%.cb6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.ef1 -// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.72b -// CHECK:STDOUT: %.loc6 => constants.%.39b -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.2bf -// CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%impl.elem0.8a3 -// CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%specific_impl_fn.a13 +// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.884 +// CHECK:STDOUT: %.loc6 => constants.%.be5 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.1da +// CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%impl.elem0.484 +// CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%specific_impl_fn.a76 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Function(constants.%Copy.facet.d5e) { -// CHECK:STDOUT: %T.loc5_14.1 => constants.%Copy.facet.d5e -// CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%ptr.6be -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1c8 -// CHECK:STDOUT: %.loc5_37.2 => constants.%.c56 +// CHECK:STDOUT: specific @Function(constants.%Copy.facet.3f0) { +// CHECK:STDOUT: %T.loc5_14.1 => constants.%Copy.facet.3f0 +// CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%ptr.6b6 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fcb +// CHECK:STDOUT: %.loc5_37.2 => constants.%.8fa // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.739 -// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.d3f -// CHECK:STDOUT: %.loc6 => constants.%.40e -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.881 -// CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%ptr.as.Copy.impl.Op.5cf +// CHECK:STDOUT: %require_complete => constants.%complete_type.bf9 +// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.c6a +// CHECK:STDOUT: %.loc6 => constants.%.a68 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.65f +// CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%ptr.as.Copy.impl.Op.c19 // CHECK:STDOUT: %specific_impl_fn.loc6_10.2 => constants.%ptr.as.Copy.impl.Op.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/call_method_on_generic_facet.carbon b/toolchain/check/testdata/function/generic/call_method_on_generic_facet.carbon index 32f81877c4a7..480987821391 100644 --- a/toolchain/check/testdata/function/generic/call_method_on_generic_facet.carbon +++ b/toolchain/check/testdata/function/generic/call_method_on_generic_facet.carbon @@ -45,68 +45,68 @@ fn G() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %Scalar: type = symbolic_binding Scalar, 0 [symbolic] -// CHECK:STDOUT: %Generic.type.df8: type = generic_interface_type @Generic [concrete] +// CHECK:STDOUT: %Generic.type.30d: type = generic_interface_type @Generic [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Generic.generic: %Generic.type.df8 = struct_value () [concrete] -// CHECK:STDOUT: %Generic.type.79a857.1: type = facet_type <@Generic, @Generic(%Scalar)> [symbolic] -// CHECK:STDOUT: %Self.34f480.1: %Generic.type.79a857.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.type.882349.1: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%Scalar, %Self.34f480.1) [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.6a7088.1: %Generic.WithSelf.F.type.882349.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Generic.assoc_type.bf879e.1: type = assoc_entity_type @Generic, @Generic(%Scalar) [symbolic] -// CHECK:STDOUT: %assoc0.0c6b77.1: %Generic.assoc_type.bf879e.1 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %Generic.generic: %Generic.type.30d = struct_value () [concrete] +// CHECK:STDOUT: %Generic.type.ee14e9.1: type = facet_type <@Generic, @Generic(%Scalar)> [symbolic] +// CHECK:STDOUT: %Self.8ea1ea.1: %Generic.type.ee14e9.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.type.390775.1: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%Scalar, %Self.8ea1ea.1) [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.b85a66.1: %Generic.WithSelf.F.type.390775.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Generic.assoc_type.d7021d.1: type = assoc_entity_type @Generic, @Generic(%Scalar) [symbolic] +// CHECK:STDOUT: %assoc0.31052a.1: %Generic.assoc_type.d7021d.1 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] // CHECK:STDOUT: %GenericParam: type = class_type @GenericParam [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %ImplsGeneric: type = class_type @ImplsGeneric [concrete] -// CHECK:STDOUT: %Generic.type.fa5: type = facet_type <@Generic, @Generic(%GenericParam)> [concrete] +// CHECK:STDOUT: %Generic.type.b40: type = facet_type <@Generic, @Generic(%GenericParam)> [concrete] // CHECK:STDOUT: %Generic.impl_witness: = impl_witness @ImplsGeneric.as.Generic.impl.%Generic.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.e96: %Generic.type.fa5 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.type.d27: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Self.34f480.1) [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.87f: %Generic.WithSelf.F.type.d27 = struct_value () [symbolic] -// CHECK:STDOUT: %Generic.assoc_type.748: type = assoc_entity_type @Generic, @Generic(%GenericParam) [concrete] -// CHECK:STDOUT: %assoc0.6aa: %Generic.assoc_type.748 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %Self.685: %Generic.type.b40 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.type.e39: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Self.8ea1ea.1) [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.d19: %Generic.WithSelf.F.type.e39 = struct_value () [symbolic] +// CHECK:STDOUT: %Generic.assoc_type.c13: type = assoc_entity_type @Generic, @Generic(%GenericParam) [concrete] +// CHECK:STDOUT: %assoc0.b4a: %Generic.assoc_type.c13 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [concrete] // CHECK:STDOUT: %ImplsGeneric.as.Generic.impl.F.type: type = fn_type @ImplsGeneric.as.Generic.impl.F [concrete] // CHECK:STDOUT: %ImplsGeneric.as.Generic.impl.F: %ImplsGeneric.as.Generic.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %Generic.facet: %Generic.type.fa5 = facet_value %ImplsGeneric, (%Generic.impl_witness) [concrete] -// CHECK:STDOUT: %Generic.WithSelf.F.type.52a: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Generic.facet) [concrete] -// CHECK:STDOUT: %Generic.WithSelf.F.a3a: %Generic.WithSelf.F.type.52a = struct_value () [concrete] +// CHECK:STDOUT: %Generic.facet: %Generic.type.b40 = facet_value %ImplsGeneric, (%Generic.impl_witness) [concrete] +// CHECK:STDOUT: %Generic.WithSelf.F.type.c45: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%GenericParam, %Generic.facet) [concrete] +// CHECK:STDOUT: %Generic.WithSelf.F.d7c: %Generic.WithSelf.F.type.c45 = struct_value () [concrete] // CHECK:STDOUT: %Other.type: type = facet_type <@Other> [concrete] -// CHECK:STDOUT: %Self.b93: %Other.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Other.WithSelf.G.type.674: type = fn_type @Other.WithSelf.G, @Other.WithSelf(%Self.b93) [symbolic] -// CHECK:STDOUT: %Other.WithSelf.G.f9f: %Other.WithSelf.G.type.674 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.41e: %Other.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Other.WithSelf.G.type.eee: type = fn_type @Other.WithSelf.G, @Other.WithSelf(%Self.41e) [symbolic] +// CHECK:STDOUT: %Other.WithSelf.G.050: %Other.WithSelf.G.type.eee = struct_value () [symbolic] // CHECK:STDOUT: %Other.assoc_type: type = assoc_entity_type @Other [concrete] -// CHECK:STDOUT: %assoc0.528: %Other.assoc_type = assoc_entity element0, @Other.WithSelf.%Other.WithSelf.G.decl [concrete] +// CHECK:STDOUT: %assoc0.e70: %Other.assoc_type = assoc_entity element0, @Other.WithSelf.%Other.WithSelf.G.decl [concrete] // CHECK:STDOUT: %Other.impl_witness: = impl_witness @ImplsGeneric.as.Other.impl.%Other.impl_witness_table [concrete] // CHECK:STDOUT: %ImplsGeneric.as.Other.impl.G.type: type = fn_type @ImplsGeneric.as.Other.impl.G [concrete] // CHECK:STDOUT: %ImplsGeneric.as.Other.impl.G: %ImplsGeneric.as.Other.impl.G.type = struct_value () [concrete] // CHECK:STDOUT: %Other.facet: %Other.type = facet_value %ImplsGeneric, (%Other.impl_witness) [concrete] -// CHECK:STDOUT: %Other.WithSelf.G.type.23c: type = fn_type @Other.WithSelf.G, @Other.WithSelf(%Other.facet) [concrete] -// CHECK:STDOUT: %Other.WithSelf.G.69e: %Other.WithSelf.G.type.23c = struct_value () [concrete] +// CHECK:STDOUT: %Other.WithSelf.G.type.933: type = fn_type @Other.WithSelf.G, @Other.WithSelf(%Other.facet) [concrete] +// CHECK:STDOUT: %Other.WithSelf.G.4ce: %Other.WithSelf.G.type.933 = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Generic.type.79a857.2: type = facet_type <@Generic, @Generic(%T)> [symbolic] -// CHECK:STDOUT: %pattern_type.31c: type = pattern_type %Generic.type.79a857.2 [symbolic] -// CHECK:STDOUT: %U: %Generic.type.79a857.2 = symbolic_binding U, 1 [symbolic] +// CHECK:STDOUT: %Generic.type.ee14e9.2: type = facet_type <@Generic, @Generic(%T)> [symbolic] +// CHECK:STDOUT: %pattern_type.4e0: type = pattern_type %Generic.type.ee14e9.2 [symbolic] +// CHECK:STDOUT: %U: %Generic.type.ee14e9.2 = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %CallGenericMethod.type: type = fn_type @CallGenericMethod [concrete] // CHECK:STDOUT: %CallGenericMethod: %CallGenericMethod.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.34f480.2: %Generic.type.79a857.2 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.type.882349.2: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T, %Self.34f480.1) [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.6a7088.2: %Generic.WithSelf.F.type.882349.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Generic.assoc_type.bf879e.2: type = assoc_entity_type @Generic, @Generic(%T) [symbolic] -// CHECK:STDOUT: %assoc0.0c6b77.2: %Generic.assoc_type.bf879e.2 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %Generic.type.79a857.2 [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.type.9e2: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T, %U) [symbolic] -// CHECK:STDOUT: %Generic.WithSelf.F.9ed: %Generic.WithSelf.F.type.9e2 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.8ea1ea.2: %Generic.type.ee14e9.2 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.type.390775.2: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T, %Self.8ea1ea.1) [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.b85a66.2: %Generic.WithSelf.F.type.390775.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Generic.assoc_type.d7021d.2: type = assoc_entity_type @Generic, @Generic(%T) [symbolic] +// CHECK:STDOUT: %assoc0.31052a.2: %Generic.assoc_type.d7021d.2 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Generic.type.ee14e9.2 [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.type.a70: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T, %U) [symbolic] +// CHECK:STDOUT: %Generic.WithSelf.F.5e8: %Generic.WithSelf.F.type.a70 = struct_value () [symbolic] // CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] // CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U, @Generic, @Generic(%T) [symbolic] -// CHECK:STDOUT: %.762: type = fn_type_with_self_type %Generic.WithSelf.F.type.9e2, %U [symbolic] -// CHECK:STDOUT: %impl.elem0: %.762 = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %.aca: type = fn_type_with_self_type %Generic.WithSelf.F.type.a70, %U [symbolic] +// CHECK:STDOUT: %impl.elem0: %.aca = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Generic.WithSelf.F(%T, %U) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.9cd: type = pattern_type %Generic.type.fa5 [concrete] +// CHECK:STDOUT: %pattern_type.de1: type = pattern_type %Generic.type.b40 [concrete] // CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet) [concrete] -// CHECK:STDOUT: %complete_type.c0e: = complete_type_witness %Generic.type.fa5 [concrete] -// CHECK:STDOUT: %.c5f: type = fn_type_with_self_type %Generic.WithSelf.F.type.52a, %Generic.facet [concrete] +// CHECK:STDOUT: %complete_type.35b: = complete_type_witness %Generic.type.b40 [concrete] +// CHECK:STDOUT: %.1fa: type = fn_type_with_self_type %Generic.WithSelf.F.type.c45, %Generic.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -127,7 +127,7 @@ fn G() { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %Generic.decl: %Generic.type.df8 = interface_decl @Generic [concrete = constants.%Generic.generic] { +// CHECK:STDOUT: %Generic.decl: %Generic.type.30d = interface_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %Scalar.patt: %pattern_type.98f = symbolic_binding_pattern Scalar, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_28.1: type = splice_block %.loc15_28.2 [concrete = type] { @@ -140,9 +140,9 @@ fn G() { // CHECK:STDOUT: %ImplsGeneric.decl: type = class_decl @ImplsGeneric [concrete = constants.%ImplsGeneric] {} {} // CHECK:STDOUT: impl_decl @ImplsGeneric.as.Generic.impl [concrete] {} { // CHECK:STDOUT: %ImplsGeneric.ref: type = name_ref ImplsGeneric, file.%ImplsGeneric.decl [concrete = constants.%ImplsGeneric] -// CHECK:STDOUT: %Generic.ref: %Generic.type.df8 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] +// CHECK:STDOUT: %Generic.ref: %Generic.type.30d = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] // CHECK:STDOUT: %GenericParam.ref: type = name_ref GenericParam, file.%GenericParam.decl [concrete = constants.%GenericParam] -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%GenericParam)> [concrete = constants.%Generic.type.fa5] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%GenericParam)> [concrete = constants.%Generic.type.b40] // CHECK:STDOUT: } // CHECK:STDOUT: %Other.decl: type = interface_decl @Other [concrete = constants.%Other.type] {} {} // CHECK:STDOUT: impl_decl @ImplsGeneric.as.Other.impl [concrete] {} { @@ -151,20 +151,20 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericMethod.decl: %CallGenericMethod.type = fn_decl @CallGenericMethod [concrete = constants.%CallGenericMethod] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type (%pattern_type.31c) = symbolic_binding_pattern U, 1 [concrete] +// CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type (%pattern_type.4e0) = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc33_26.1: type = splice_block %.loc33_26.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc33_23: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc33_26.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc33_23.2: type = symbolic_binding T, 0 [symbolic = %T.loc33_23.1 (constants.%T)] -// CHECK:STDOUT: %.loc33_45: type = splice_block %Generic.type.loc33_45.2 [symbolic = %Generic.type.loc33_45.1 (constants.%Generic.type.79a857.2)] { +// CHECK:STDOUT: %.loc33_45: type = splice_block %Generic.type.loc33_45.2 [symbolic = %Generic.type.loc33_45.1 (constants.%Generic.type.ee14e9.2)] { // CHECK:STDOUT: %.Self.loc33_33: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Generic.ref: %Generic.type.df8 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] +// CHECK:STDOUT: %Generic.ref: %Generic.type.30d = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc33_23.2 [symbolic = %T.loc33_23.1 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc33_45.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc33_45.1 (constants.%Generic.type.79a857.2)] +// CHECK:STDOUT: %Generic.type.loc33_45.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc33_45.1 (constants.%Generic.type.ee14e9.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc33_33.2: @CallGenericMethod.%Generic.type.loc33_45.1 (%Generic.type.79a857.2) = symbolic_binding U, 1 [symbolic = %U.loc33_33.1 (constants.%U)] +// CHECK:STDOUT: %U.loc33_33.2: @CallGenericMethod.%Generic.type.loc33_45.1 (%Generic.type.ee14e9.2) = symbolic_binding U, 1 [symbolic = %U.loc33_33.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } @@ -173,16 +173,16 @@ fn G() { // CHECK:STDOUT: %Scalar.loc15_25.1: type = symbolic_binding Scalar, 0 [symbolic = %Scalar.loc15_25.1 (constants.%Scalar)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc15_25.1)> [symbolic = %Generic.type (constants.%Generic.type.79a857.1)] -// CHECK:STDOUT: %Self.loc15_34.2: @Generic.%Generic.type (%Generic.type.79a857.1) = symbolic_binding Self, 1 [symbolic = %Self.loc15_34.2 (constants.%Self.34f480.1)] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc15_25.1)> [symbolic = %Generic.type (constants.%Generic.type.ee14e9.1)] +// CHECK:STDOUT: %Self.loc15_34.2: @Generic.%Generic.type (%Generic.type.ee14e9.1) = symbolic_binding Self, 1 [symbolic = %Self.loc15_34.2 (constants.%Self.8ea1ea.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc15_34.1: @Generic.%Generic.type (%Generic.type.79a857.1) = symbolic_binding Self, 1 [symbolic = %Self.loc15_34.2 (constants.%Self.34f480.1)] +// CHECK:STDOUT: %Self.loc15_34.1: @Generic.%Generic.type (%Generic.type.ee14e9.1) = symbolic_binding Self, 1 [symbolic = %Self.loc15_34.2 (constants.%Self.8ea1ea.1)] // CHECK:STDOUT: %Generic.WithSelf.decl = interface_with_self_decl @Generic [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Generic.WithSelf.F.decl: @Generic.WithSelf.%Generic.WithSelf.F.type (%Generic.WithSelf.F.type.882349.1) = fn_decl @Generic.WithSelf.F [symbolic = @Generic.WithSelf.%Generic.WithSelf.F (constants.%Generic.WithSelf.F.6a7088.1)] {} {} -// CHECK:STDOUT: %assoc0.loc16_9.1: @Generic.WithSelf.%Generic.assoc_type (%Generic.assoc_type.bf879e.1) = assoc_entity element0, %Generic.WithSelf.F.decl [symbolic = %assoc0.loc16_9.2 (constants.%assoc0.0c6b77.1)] +// CHECK:STDOUT: %Generic.WithSelf.F.decl: @Generic.WithSelf.%Generic.WithSelf.F.type (%Generic.WithSelf.F.type.390775.1) = fn_decl @Generic.WithSelf.F [symbolic = @Generic.WithSelf.%Generic.WithSelf.F (constants.%Generic.WithSelf.F.b85a66.1)] {} {} +// CHECK:STDOUT: %assoc0.loc16_9.1: @Generic.WithSelf.%Generic.assoc_type (%Generic.assoc_type.d7021d.1) = assoc_entity element0, %Generic.WithSelf.F.decl [symbolic = %assoc0.loc16_9.2 (constants.%assoc0.31052a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc15_34.1 @@ -194,12 +194,12 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Other { -// CHECK:STDOUT: %Self: %Other.type = symbolic_binding Self, 0 [symbolic = constants.%Self.b93] +// CHECK:STDOUT: %Self: %Other.type = symbolic_binding Self, 0 [symbolic = constants.%Self.41e] // CHECK:STDOUT: %Other.WithSelf.decl = interface_with_self_decl @Other [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Other.WithSelf.G.decl: @Other.WithSelf.%Other.WithSelf.G.type (%Other.WithSelf.G.type.674) = fn_decl @Other.WithSelf.G [symbolic = @Other.WithSelf.%Other.WithSelf.G (constants.%Other.WithSelf.G.f9f)] {} {} -// CHECK:STDOUT: %assoc0: %Other.assoc_type = assoc_entity element0, %Other.WithSelf.G.decl [concrete = constants.%assoc0.528] +// CHECK:STDOUT: %Other.WithSelf.G.decl: @Other.WithSelf.%Other.WithSelf.G.type (%Other.WithSelf.G.type.eee) = fn_decl @Other.WithSelf.G [symbolic = @Other.WithSelf.%Other.WithSelf.G (constants.%Other.WithSelf.G.050)] {} {} +// CHECK:STDOUT: %assoc0: %Other.assoc_type = assoc_entity element0, %Other.WithSelf.G.decl [concrete = constants.%assoc0.e70] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -247,7 +247,7 @@ fn G() { // CHECK:STDOUT: .Self = constants.%ImplsGeneric // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Generic.WithSelf.F(@Generic.%Scalar.loc15_25.2: type, @Generic.%Self.loc15_34.1: @Generic.%Generic.type (%Generic.type.79a857.1)) { +// CHECK:STDOUT: generic fn @Generic.WithSelf.F(@Generic.%Scalar.loc15_25.2: type, @Generic.%Self.loc15_34.1: @Generic.%Generic.type (%Generic.type.ee14e9.1)) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: @@ -262,31 +262,31 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: fn @ImplsGeneric.as.Other.impl.G(); // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc33_23.2: type, %U.loc33_33.2: @CallGenericMethod.%Generic.type.loc33_45.1 (%Generic.type.79a857.2)) { +// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc33_23.2: type, %U.loc33_33.2: @CallGenericMethod.%Generic.type.loc33_45.1 (%Generic.type.ee14e9.2)) { // CHECK:STDOUT: %T.loc33_23.1: type = symbolic_binding T, 0 [symbolic = %T.loc33_23.1 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc33_45.1: type = facet_type <@Generic, @Generic(%T.loc33_23.1)> [symbolic = %Generic.type.loc33_45.1 (constants.%Generic.type.79a857.2)] -// CHECK:STDOUT: %U.loc33_33.1: @CallGenericMethod.%Generic.type.loc33_45.1 (%Generic.type.79a857.2) = symbolic_binding U, 1 [symbolic = %U.loc33_33.1 (constants.%U)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Generic.type.loc33_45.1 [symbolic = %pattern_type (constants.%pattern_type.31c)] +// CHECK:STDOUT: %Generic.type.loc33_45.1: type = facet_type <@Generic, @Generic(%T.loc33_23.1)> [symbolic = %Generic.type.loc33_45.1 (constants.%Generic.type.ee14e9.2)] +// CHECK:STDOUT: %U.loc33_33.1: @CallGenericMethod.%Generic.type.loc33_45.1 (%Generic.type.ee14e9.2) = symbolic_binding U, 1 [symbolic = %U.loc33_33.1 (constants.%U)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Generic.type.loc33_45.1 [symbolic = %pattern_type (constants.%pattern_type.4e0)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %Generic.type.loc33_45.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %U.as_type.loc34_4.2: type = facet_access_type %U.loc33_33.1 [symbolic = %U.as_type.loc34_4.2 (constants.%U.as_type)] -// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%T.loc33_23.1) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.bf879e.2)] -// CHECK:STDOUT: %assoc0: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.bf879e.2) = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic = %assoc0 (constants.%assoc0.0c6b77.2)] -// CHECK:STDOUT: %Generic.WithSelf.F.type: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T.loc33_23.1, %U.loc33_33.1) [symbolic = %Generic.WithSelf.F.type (constants.%Generic.WithSelf.F.type.9e2)] -// CHECK:STDOUT: %.loc34_4.3: type = fn_type_with_self_type %Generic.WithSelf.F.type, %U.loc33_33.1 [symbolic = %.loc34_4.3 (constants.%.762)] +// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%T.loc33_23.1) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.d7021d.2)] +// CHECK:STDOUT: %assoc0: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.d7021d.2) = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic = %assoc0 (constants.%assoc0.31052a.2)] +// CHECK:STDOUT: %Generic.WithSelf.F.type: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T.loc33_23.1, %U.loc33_33.1) [symbolic = %Generic.WithSelf.F.type (constants.%Generic.WithSelf.F.type.a70)] +// CHECK:STDOUT: %.loc34_4.3: type = fn_type_with_self_type %Generic.WithSelf.F.type, %U.loc33_33.1 [symbolic = %.loc34_4.3 (constants.%.aca)] // CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U.loc33_33.1, @Generic, @Generic(%T.loc33_23.1) [symbolic = %Generic.lookup_impl_witness (constants.%Generic.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc34_4.2: @CallGenericMethod.%.loc34_4.3 (%.762) = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc34_4.2: @CallGenericMethod.%.loc34_4.3 (%.aca) = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc34_4.2: = specific_impl_function %impl.elem0.loc34_4.2, @Generic.WithSelf.F(%T.loc33_23.1, %U.loc33_33.1) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %U.ref: @CallGenericMethod.%Generic.type.loc33_45.1 (%Generic.type.79a857.2) = name_ref U, %U.loc33_33.2 [symbolic = %U.loc33_33.1 (constants.%U)] +// CHECK:STDOUT: %U.ref: @CallGenericMethod.%Generic.type.loc33_45.1 (%Generic.type.ee14e9.2) = name_ref U, %U.loc33_33.2 [symbolic = %U.loc33_33.1 (constants.%U)] // CHECK:STDOUT: %U.as_type.loc34_4.1: type = facet_access_type %U.ref [symbolic = %U.as_type.loc34_4.2 (constants.%U.as_type)] // CHECK:STDOUT: %.loc34_4.1: type = converted %U.ref, %U.as_type.loc34_4.1 [symbolic = %U.as_type.loc34_4.2 (constants.%U.as_type)] -// CHECK:STDOUT: %.loc34_4.2: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.bf879e.2) = specific_constant @Generic.WithSelf.%assoc0.loc16_9.1, @Generic.WithSelf(constants.%T, constants.%U) [symbolic = %assoc0 (constants.%assoc0.0c6b77.2)] -// CHECK:STDOUT: %F.ref: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.bf879e.2) = name_ref F, %.loc34_4.2 [symbolic = %assoc0 (constants.%assoc0.0c6b77.2)] -// CHECK:STDOUT: %impl.elem0.loc34_4.1: @CallGenericMethod.%.loc34_4.3 (%.762) = impl_witness_access constants.%Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %.loc34_4.2: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.d7021d.2) = specific_constant @Generic.WithSelf.%assoc0.loc16_9.1, @Generic.WithSelf(constants.%T, constants.%U) [symbolic = %assoc0 (constants.%assoc0.31052a.2)] +// CHECK:STDOUT: %F.ref: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.d7021d.2) = name_ref F, %.loc34_4.2 [symbolic = %assoc0 (constants.%assoc0.31052a.2)] +// CHECK:STDOUT: %impl.elem0.loc34_4.1: @CallGenericMethod.%.loc34_4.3 (%.aca) = impl_witness_access constants.%Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc34_4.1: = specific_impl_function %impl.elem0.loc34_4.1, @Generic.WithSelf.F(constants.%T, constants.%U) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %Generic.WithSelf.F.call: init %empty_tuple.type = call %specific_impl_fn.loc34_4.1() // CHECK:STDOUT: return @@ -298,8 +298,8 @@ fn G() { // CHECK:STDOUT: %CallGenericMethod.ref: %CallGenericMethod.type = name_ref CallGenericMethod, file.%CallGenericMethod.decl [concrete = constants.%CallGenericMethod] // CHECK:STDOUT: %GenericParam.ref: type = name_ref GenericParam, file.%GenericParam.decl [concrete = constants.%GenericParam] // CHECK:STDOUT: %ImplsGeneric.ref: type = name_ref ImplsGeneric, file.%ImplsGeneric.decl [concrete = constants.%ImplsGeneric] -// CHECK:STDOUT: %Generic.facet: %Generic.type.fa5 = facet_value constants.%ImplsGeneric, (constants.%Generic.impl_witness) [concrete = constants.%Generic.facet] -// CHECK:STDOUT: %.loc38: %Generic.type.fa5 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %Generic.facet: %Generic.type.b40 = facet_value constants.%ImplsGeneric, (constants.%Generic.impl_witness) [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %.loc38: %Generic.type.b40 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet] // CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) [concrete = constants.%CallGenericMethod.specific_fn] // CHECK:STDOUT: %CallGenericMethod.call: init %empty_tuple.type = call %CallGenericMethod.specific_fn() // CHECK:STDOUT: return @@ -309,56 +309,56 @@ fn G() { // CHECK:STDOUT: %Scalar.loc15_25.1 => constants.%Scalar // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf(constants.%Scalar, constants.%Self.34f480.1) {} +// CHECK:STDOUT: specific @Generic.WithSelf(constants.%Scalar, constants.%Self.8ea1ea.1) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%Scalar, constants.%Self.34f480.1) {} +// CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%Scalar, constants.%Self.8ea1ea.1) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%GenericParam) { // CHECK:STDOUT: %Scalar.loc15_25.1 => constants.%GenericParam // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.fa5 -// CHECK:STDOUT: %Self.loc15_34.2 => constants.%Self.e96 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.b40 +// CHECK:STDOUT: %Self.loc15_34.2 => constants.%Self.685 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf(constants.%GenericParam, constants.%Self.34f480.1) { +// CHECK:STDOUT: specific @Generic.WithSelf(constants.%GenericParam, constants.%Self.8ea1ea.1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Scalar => constants.%GenericParam -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.fa5 -// CHECK:STDOUT: %Self => constants.%Self.34f480.1 -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.d27 -// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.87f -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.748 -// CHECK:STDOUT: %assoc0.loc16_9.2 => constants.%assoc0.6aa +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.b40 +// CHECK:STDOUT: %Self => constants.%Self.8ea1ea.1 +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.e39 +// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.d19 +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.c13 +// CHECK:STDOUT: %assoc0.loc16_9.2 => constants.%assoc0.b4a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.WithSelf(constants.%GenericParam, constants.%Generic.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Scalar => constants.%GenericParam -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.fa5 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.b40 // CHECK:STDOUT: %Self => constants.%Generic.facet -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.52a -// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.a3a -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.748 -// CHECK:STDOUT: %assoc0.loc16_9.2 => constants.%assoc0.6aa +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.c45 +// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.d7c +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.c13 +// CHECK:STDOUT: %assoc0.loc16_9.2 => constants.%assoc0.b4a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%GenericParam, constants.%Generic.facet) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Other.WithSelf(constants.%Self.b93) { +// CHECK:STDOUT: specific @Other.WithSelf(constants.%Self.41e) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.b93 -// CHECK:STDOUT: %Other.WithSelf.G.type => constants.%Other.WithSelf.G.type.674 -// CHECK:STDOUT: %Other.WithSelf.G => constants.%Other.WithSelf.G.f9f +// CHECK:STDOUT: %Self => constants.%Self.41e +// CHECK:STDOUT: %Other.WithSelf.G.type => constants.%Other.WithSelf.G.type.eee +// CHECK:STDOUT: %Other.WithSelf.G => constants.%Other.WithSelf.G.050 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Other.WithSelf.G(constants.%Self.b93) {} +// CHECK:STDOUT: specific @Other.WithSelf.G(constants.%Self.41e) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Other.WithSelf(constants.%Other.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Other.facet -// CHECK:STDOUT: %Other.WithSelf.G.type => constants.%Other.WithSelf.G.type.23c -// CHECK:STDOUT: %Other.WithSelf.G => constants.%Other.WithSelf.G.69e +// CHECK:STDOUT: %Other.WithSelf.G.type => constants.%Other.WithSelf.G.type.933 +// CHECK:STDOUT: %Other.WithSelf.G => constants.%Other.WithSelf.G.4ce // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Other.WithSelf.G(constants.%Other.facet) {} @@ -367,54 +367,54 @@ fn G() { // CHECK:STDOUT: %Scalar.loc15_25.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.79a857.2 -// CHECK:STDOUT: %Self.loc15_34.2 => constants.%Self.34f480.2 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.ee14e9.2 +// CHECK:STDOUT: %Self.loc15_34.2 => constants.%Self.8ea1ea.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%T, constants.%U) { // CHECK:STDOUT: %T.loc33_23.1 => constants.%T -// CHECK:STDOUT: %Generic.type.loc33_45.1 => constants.%Generic.type.79a857.2 +// CHECK:STDOUT: %Generic.type.loc33_45.1 => constants.%Generic.type.ee14e9.2 // CHECK:STDOUT: %U.loc33_33.1 => constants.%U -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.31c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4e0 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf(constants.%T, constants.%Self.34f480.1) { +// CHECK:STDOUT: specific @Generic.WithSelf(constants.%T, constants.%Self.8ea1ea.1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Scalar => constants.%T -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.79a857.2 -// CHECK:STDOUT: %Self => constants.%Self.34f480.1 -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.882349.2 -// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.6a7088.2 -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.bf879e.2 -// CHECK:STDOUT: %assoc0.loc16_9.2 => constants.%assoc0.0c6b77.2 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.ee14e9.2 +// CHECK:STDOUT: %Self => constants.%Self.8ea1ea.1 +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.390775.2 +// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.b85a66.2 +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.d7021d.2 +// CHECK:STDOUT: %assoc0.loc16_9.2 => constants.%assoc0.31052a.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.WithSelf(constants.%T, constants.%U) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Scalar => constants.%T -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.79a857.2 +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.ee14e9.2 // CHECK:STDOUT: %Self => constants.%U -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.9e2 -// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.9ed -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.bf879e.2 -// CHECK:STDOUT: %assoc0.loc16_9.2 => constants.%assoc0.0c6b77.2 +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.a70 +// CHECK:STDOUT: %Generic.WithSelf.F => constants.%Generic.WithSelf.F.5e8 +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.d7021d.2 +// CHECK:STDOUT: %assoc0.loc16_9.2 => constants.%assoc0.31052a.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.WithSelf.F(constants.%T, constants.%U) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) { // CHECK:STDOUT: %T.loc33_23.1 => constants.%GenericParam -// CHECK:STDOUT: %Generic.type.loc33_45.1 => constants.%Generic.type.fa5 +// CHECK:STDOUT: %Generic.type.loc33_45.1 => constants.%Generic.type.b40 // CHECK:STDOUT: %U.loc33_33.1 => constants.%Generic.facet -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9cd +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.de1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.c0e +// CHECK:STDOUT: %require_complete => constants.%complete_type.35b // CHECK:STDOUT: %U.as_type.loc34_4.2 => constants.%ImplsGeneric -// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.748 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.6aa -// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.52a -// CHECK:STDOUT: %.loc34_4.3 => constants.%.c5f +// CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.c13 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.b4a +// CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.c45 +// CHECK:STDOUT: %.loc34_4.3 => constants.%.1fa // CHECK:STDOUT: %Generic.lookup_impl_witness => constants.%Generic.impl_witness // CHECK:STDOUT: %impl.elem0.loc34_4.2 => constants.%ImplsGeneric.as.Generic.impl.F // CHECK:STDOUT: %specific_impl_fn.loc34_4.2 => constants.%ImplsGeneric.as.Generic.impl.F diff --git a/toolchain/check/testdata/function/generic/deduce.carbon b/toolchain/check/testdata/function/generic/deduce.carbon index 05a50c525503..a8772c09f201 100644 --- a/toolchain/check/testdata/function/generic/deduce.carbon +++ b/toolchain/check/testdata/function/generic/deduce.carbon @@ -226,17 +226,17 @@ fn F() { // CHECK:STDOUT: %ExplicitGenericParam.type: type = fn_type @ExplicitGenericParam [concrete] // CHECK:STDOUT: %ExplicitGenericParam: %ExplicitGenericParam.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f [symbolic] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.187: = specific_function %ExplicitGenericParam, @ExplicitGenericParam(%T) [symbolic] +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.2da: = specific_function %ExplicitGenericParam, @ExplicitGenericParam(%T) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %.060: Core.Form = init_form %ptr.847 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr.847 [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %.952: Core.Form = init_form %ptr.d08 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete] // CHECK:STDOUT: %CallExplicitGenericParam.type: type = fn_type @CallExplicitGenericParam [concrete] // CHECK:STDOUT: %CallExplicitGenericParam: %CallExplicitGenericParam.type = struct_value () [concrete] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.61b: = specific_function %ExplicitGenericParam, @ExplicitGenericParam(%i32) [concrete] +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.330: = specific_function %ExplicitGenericParam, @ExplicitGenericParam(%i32) [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T} [symbolic] // CHECK:STDOUT: %ptr.88d: type = ptr_type %struct_type.a [symbolic] // CHECK:STDOUT: %.edd: Core.Form = init_form %ptr.88d [symbolic] @@ -244,8 +244,8 @@ fn F() { // CHECK:STDOUT: %CallExplicitGenericParamWithGenericArg.type: type = fn_type @CallExplicitGenericParamWithGenericArg [concrete] // CHECK:STDOUT: %CallExplicitGenericParamWithGenericArg: %CallExplicitGenericParamWithGenericArg.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.61f: = require_complete_type %ptr.88d [symbolic] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.0eb: = specific_function %ExplicitGenericParam, @ExplicitGenericParam(%struct_type.a) [symbolic] -// CHECK:STDOUT: %complete_type.34c: = complete_type_witness %ptr.847 [concrete] +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.f5a: = specific_function %ExplicitGenericParam, @ExplicitGenericParam(%struct_type.a) [symbolic] +// CHECK:STDOUT: %complete_type.07f: = complete_type_witness %ptr.d08 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -282,14 +282,14 @@ fn F() { // CHECK:STDOUT: %return: ref @ExplicitGenericParam.%ptr.loc4_39.1 (%ptr.e8f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallExplicitGenericParam.decl: %CallExplicitGenericParam.type = fn_decl @CallExplicitGenericParam [concrete = constants.%CallExplicitGenericParam] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.7b5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7b5 = return_slot_pattern %return.param_patt, %ptr [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f00 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f00 = return_slot_pattern %return.param_patt, %ptr [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc6 [concrete = constants.%ptr.847] -// CHECK:STDOUT: %.loc6: Core.Form = init_form %ptr [concrete = constants.%.060] -// CHECK:STDOUT: %return.param: ref %ptr.847 = out_param call_param0 -// CHECK:STDOUT: %return: ref %ptr.847 = return_slot %return.param +// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc6 [concrete = constants.%ptr.d08] +// CHECK:STDOUT: %.loc6: Core.Form = init_form %ptr [concrete = constants.%.952] +// CHECK:STDOUT: %return.param: ref %ptr.d08 = out_param call_param0 +// CHECK:STDOUT: %return: ref %ptr.d08 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallExplicitGenericParamWithGenericArg.decl: %CallExplicitGenericParamWithGenericArg.type = fn_decl @CallExplicitGenericParamWithGenericArg [concrete = constants.%CallExplicitGenericParamWithGenericArg] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -318,24 +318,24 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc4_39.1 [symbolic = %require_complete (constants.%require_complete.ef1)] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2: = specific_function constants.%ExplicitGenericParam, @ExplicitGenericParam(%T.loc4_26.1) [symbolic = %ExplicitGenericParam.specific_fn.loc4_50.2 (constants.%ExplicitGenericParam.specific_fn.187)] +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2: = specific_function constants.%ExplicitGenericParam, @ExplicitGenericParam(%T.loc4_26.1) [symbolic = %ExplicitGenericParam.specific_fn.loc4_50.2 (constants.%ExplicitGenericParam.specific_fn.2da)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: @ExplicitGenericParam.%ptr.loc4_39.1 (%ptr.e8f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ExplicitGenericParam.ref: %ExplicitGenericParam.type = name_ref ExplicitGenericParam, file.%ExplicitGenericParam.decl [concrete = constants.%ExplicitGenericParam] // CHECK:STDOUT: %T.ref.loc4_71: type = name_ref T, %T.loc4_26.2 [symbolic = %T.loc4_26.1 (constants.%T)] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.1: = specific_function %ExplicitGenericParam.ref, @ExplicitGenericParam(constants.%T) [symbolic = %ExplicitGenericParam.specific_fn.loc4_50.2 (constants.%ExplicitGenericParam.specific_fn.187)] +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.1: = specific_function %ExplicitGenericParam.ref, @ExplicitGenericParam(constants.%T) [symbolic = %ExplicitGenericParam.specific_fn.loc4_50.2 (constants.%ExplicitGenericParam.specific_fn.2da)] // CHECK:STDOUT: %ExplicitGenericParam.call: init @ExplicitGenericParam.%ptr.loc4_39.1 (%ptr.e8f) = call %ExplicitGenericParam.specific_fn.loc4_50.1() // CHECK:STDOUT: return %ExplicitGenericParam.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallExplicitGenericParam() -> out %return.param: %ptr.847 { +// CHECK:STDOUT: fn @CallExplicitGenericParam() -> out %return.param: %ptr.d08 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ExplicitGenericParam.ref: %ExplicitGenericParam.type = name_ref ExplicitGenericParam, file.%ExplicitGenericParam.decl [concrete = constants.%ExplicitGenericParam] // CHECK:STDOUT: %i32.loc7: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn: = specific_function %ExplicitGenericParam.ref, @ExplicitGenericParam(constants.%i32) [concrete = constants.%ExplicitGenericParam.specific_fn.61b] -// CHECK:STDOUT: %ExplicitGenericParam.call: init %ptr.847 = call %ExplicitGenericParam.specific_fn() +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn: = specific_function %ExplicitGenericParam.ref, @ExplicitGenericParam(constants.%i32) [concrete = constants.%ExplicitGenericParam.specific_fn.330] +// CHECK:STDOUT: %ExplicitGenericParam.call: init %ptr.d08 = call %ExplicitGenericParam.specific_fn() // CHECK:STDOUT: return %ExplicitGenericParam.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -348,14 +348,14 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc10_63.1 [symbolic = %require_complete (constants.%require_complete.61f)] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc11_10.2: = specific_function constants.%ExplicitGenericParam, @ExplicitGenericParam(%struct_type.a.loc10_62.1) [symbolic = %ExplicitGenericParam.specific_fn.loc11_10.2 (constants.%ExplicitGenericParam.specific_fn.0eb)] +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc11_10.2: = specific_function constants.%ExplicitGenericParam, @ExplicitGenericParam(%struct_type.a.loc10_62.1) [symbolic = %ExplicitGenericParam.specific_fn.loc11_10.2 (constants.%ExplicitGenericParam.specific_fn.f5a)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.1 (%ptr.88d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ExplicitGenericParam.ref: %ExplicitGenericParam.type = name_ref ExplicitGenericParam, file.%ExplicitGenericParam.decl [concrete = constants.%ExplicitGenericParam] // CHECK:STDOUT: %T.ref.loc11: type = name_ref T, %T.loc10_44.2 [symbolic = %T.loc10_44.1 (constants.%T)] // CHECK:STDOUT: %struct_type.a.loc11: type = struct_type {.a: @CallExplicitGenericParamWithGenericArg.%T.loc10_44.1 (%T)} [symbolic = %struct_type.a.loc10_62.1 (constants.%struct_type.a)] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc11_10.1: = specific_function %ExplicitGenericParam.ref, @ExplicitGenericParam(constants.%struct_type.a) [symbolic = %ExplicitGenericParam.specific_fn.loc11_10.2 (constants.%ExplicitGenericParam.specific_fn.0eb)] +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc11_10.1: = specific_function %ExplicitGenericParam.ref, @ExplicitGenericParam(constants.%struct_type.a) [symbolic = %ExplicitGenericParam.specific_fn.loc11_10.2 (constants.%ExplicitGenericParam.specific_fn.f5a)] // CHECK:STDOUT: %ExplicitGenericParam.call: init @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.1 (%ptr.88d) = call %ExplicitGenericParam.specific_fn.loc11_10.1() // CHECK:STDOUT: return %ExplicitGenericParam.call // CHECK:STDOUT: } @@ -369,18 +369,18 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.ef1 -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2 => constants.%ExplicitGenericParam.specific_fn.187 +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2 => constants.%ExplicitGenericParam.specific_fn.2da // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitGenericParam(constants.%i32) { // CHECK:STDOUT: %T.loc4_26.1 => constants.%i32 -// CHECK:STDOUT: %ptr.loc4_39.1 => constants.%ptr.847 -// CHECK:STDOUT: %.loc4_39.1 => constants.%.060 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7b5 +// CHECK:STDOUT: %ptr.loc4_39.1 => constants.%ptr.d08 +// CHECK:STDOUT: %.loc4_39.1 => constants.%.952 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f00 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.34c -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2 => constants.%ExplicitGenericParam.specific_fn.61b +// CHECK:STDOUT: %require_complete => constants.%complete_type.07f +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2 => constants.%ExplicitGenericParam.specific_fn.330 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallExplicitGenericParamWithGenericArg(constants.%T) { @@ -399,7 +399,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.61f -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2 => constants.%ExplicitGenericParam.specific_fn.0eb +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2 => constants.%ExplicitGenericParam.specific_fn.f5a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduce_explicit_non_constant.carbon @@ -550,22 +550,22 @@ fn F() { // CHECK:STDOUT: %ExplicitAndAlsoDeduced: %ExplicitAndAlsoDeduced.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f [symbolic] -// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.954: = specific_function %ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%T) [symbolic] -// CHECK:STDOUT: %ptr.cca: type = ptr_type %A [concrete] -// CHECK:STDOUT: %.99a: Core.Form = init_form %ptr.cca [concrete] -// CHECK:STDOUT: %pattern_type.b90: type = pattern_type %ptr.cca [concrete] +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.c99: = specific_function %ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%T) [symbolic] +// CHECK:STDOUT: %ptr.d43: type = ptr_type %A [concrete] +// CHECK:STDOUT: %.1a4: Core.Form = init_form %ptr.d43 [concrete] +// CHECK:STDOUT: %pattern_type.8a5: type = pattern_type %ptr.d43 [concrete] // CHECK:STDOUT: %CallExplicitAndAlsoDeduced.type: type = fn_type @CallExplicitAndAlsoDeduced [concrete] // CHECK:STDOUT: %CallExplicitAndAlsoDeduced: %CallExplicitAndAlsoDeduced.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] -// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.828: = specific_function %ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%A) [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.d5b: = specific_function %ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%A) [concrete] // CHECK:STDOUT: %A.val: %A = struct_value () [concrete] -// CHECK:STDOUT: %.e61: ref %A = temporary invalid, %A.val [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.790b3b.2: type = fn_type @Destroy.Op.loc11_37.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e61, %Destroy.Op.2dd605.2 [concrete] -// CHECK:STDOUT: %complete_type.7ae: = complete_type_witness %ptr.cca [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: %complete_type.a75: = complete_type_witness %ptr.d43 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -608,14 +608,14 @@ fn F() { // CHECK:STDOUT: %return: ref @ExplicitAndAlsoDeduced.%ptr.loc6_47.1 (%ptr.e8f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallExplicitAndAlsoDeduced.decl: %CallExplicitAndAlsoDeduced.type = fn_decl @CallExplicitAndAlsoDeduced [concrete = constants.%CallExplicitAndAlsoDeduced] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.b90 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.b90 = return_slot_pattern %return.param_patt, %ptr [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.8a5 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.8a5 = return_slot_pattern %return.param_patt, %ptr [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref.loc10: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %ptr: type = ptr_type %A.ref.loc10 [concrete = constants.%ptr.cca] -// CHECK:STDOUT: %.loc10: Core.Form = init_form %ptr [concrete = constants.%.99a] -// CHECK:STDOUT: %return.param: ref %ptr.cca = out_param call_param0 -// CHECK:STDOUT: %return: ref %ptr.cca = return_slot %return.param +// CHECK:STDOUT: %ptr: type = ptr_type %A.ref.loc10 [concrete = constants.%ptr.d43] +// CHECK:STDOUT: %.loc10: Core.Form = init_form %ptr [concrete = constants.%.1a4] +// CHECK:STDOUT: %return.param: ref %ptr.d43 = out_param call_param0 +// CHECK:STDOUT: %return: ref %ptr.d43 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -637,32 +637,32 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_38: = require_complete_type %T.loc6_28.1 [symbolic = %require_complete.loc6_38 (constants.%require_complete.944)] // CHECK:STDOUT: %require_complete.loc6_43: = require_complete_type %ptr.loc6_47.1 [symbolic = %require_complete.loc6_43 (constants.%require_complete.ef1)] -// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2: = specific_function constants.%ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%T.loc6_28.1) [symbolic = %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 (constants.%ExplicitAndAlsoDeduced.specific_fn.954)] +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2: = specific_function constants.%ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%T.loc6_28.1) [symbolic = %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 (constants.%ExplicitAndAlsoDeduced.specific_fn.c99)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @ExplicitAndAlsoDeduced.%T.loc6_28.1 (%T)) -> out %return.param: @ExplicitAndAlsoDeduced.%ptr.loc6_47.1 (%ptr.e8f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ExplicitAndAlsoDeduced.ref: %ExplicitAndAlsoDeduced.type = name_ref ExplicitAndAlsoDeduced, file.%ExplicitAndAlsoDeduced.decl [concrete = constants.%ExplicitAndAlsoDeduced] // CHECK:STDOUT: %T.ref.loc7: type = name_ref T, %T.loc6_28.2 [symbolic = %T.loc6_28.1 (constants.%T)] // CHECK:STDOUT: %x.ref: @ExplicitAndAlsoDeduced.%T.loc6_28.1 (%T) = name_ref x, %x -// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.1: = specific_function %ExplicitAndAlsoDeduced.ref, @ExplicitAndAlsoDeduced(constants.%T) [symbolic = %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 (constants.%ExplicitAndAlsoDeduced.specific_fn.954)] +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.1: = specific_function %ExplicitAndAlsoDeduced.ref, @ExplicitAndAlsoDeduced(constants.%T) [symbolic = %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 (constants.%ExplicitAndAlsoDeduced.specific_fn.c99)] // CHECK:STDOUT: %ExplicitAndAlsoDeduced.call: init @ExplicitAndAlsoDeduced.%ptr.loc6_47.1 (%ptr.e8f) = call %ExplicitAndAlsoDeduced.specific_fn.loc7_10.1(%x.ref) // CHECK:STDOUT: return %ExplicitAndAlsoDeduced.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallExplicitAndAlsoDeduced() -> out %return.param: %ptr.cca { +// CHECK:STDOUT: fn @CallExplicitAndAlsoDeduced() -> out %return.param: %ptr.d43 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ExplicitAndAlsoDeduced.ref: %ExplicitAndAlsoDeduced.type = name_ref ExplicitAndAlsoDeduced, file.%ExplicitAndAlsoDeduced.decl [concrete = constants.%ExplicitAndAlsoDeduced] // CHECK:STDOUT: %A.ref.loc11: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %.loc11_37.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn: = specific_function %ExplicitAndAlsoDeduced.ref, @ExplicitAndAlsoDeduced(constants.%A) [concrete = constants.%ExplicitAndAlsoDeduced.specific_fn.828] +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn: = specific_function %ExplicitAndAlsoDeduced.ref, @ExplicitAndAlsoDeduced(constants.%A) [concrete = constants.%ExplicitAndAlsoDeduced.specific_fn.d5b] // CHECK:STDOUT: %.loc11_37.2: ref %A = temporary_storage // CHECK:STDOUT: %.loc11_37.3: init %A to %.loc11_37.2 = class_init () [concrete = constants.%A.val] // CHECK:STDOUT: %.loc11_37.4: init %A = converted %.loc11_37.1, %.loc11_37.3 [concrete = constants.%A.val] -// CHECK:STDOUT: %.loc11_37.5: ref %A = temporary %.loc11_37.2, %.loc11_37.4 [concrete = constants.%.e61] +// 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.cca = call %ExplicitAndAlsoDeduced.specific_fn(%.loc11_37.6) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.e61) +// 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: return %ExplicitAndAlsoDeduced.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -683,20 +683,20 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_38 => constants.%require_complete.944 // CHECK:STDOUT: %require_complete.loc6_43 => constants.%require_complete.ef1 -// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 => constants.%ExplicitAndAlsoDeduced.specific_fn.954 +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 => constants.%ExplicitAndAlsoDeduced.specific_fn.c99 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitAndAlsoDeduced(constants.%A) { // CHECK:STDOUT: %T.loc6_28.1 => constants.%A -// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.ccb -// CHECK:STDOUT: %ptr.loc6_47.1 => constants.%ptr.cca -// CHECK:STDOUT: %.loc6_47.1 => constants.%.99a -// CHECK:STDOUT: %pattern_type.loc6_47 => constants.%pattern_type.b90 +// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.9ef +// CHECK:STDOUT: %ptr.loc6_47.1 => constants.%ptr.d43 +// CHECK:STDOUT: %.loc6_47.1 => constants.%.1a4 +// CHECK:STDOUT: %pattern_type.loc6_47 => constants.%pattern_type.8a5 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_38 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc6_43 => constants.%complete_type.7ae -// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 => constants.%ExplicitAndAlsoDeduced.specific_fn.828 +// CHECK:STDOUT: %require_complete.loc6_43 => constants.%complete_type.a75 +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 => constants.%ExplicitAndAlsoDeduced.specific_fn.d5b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- deduce_implicit.carbon @@ -714,21 +714,21 @@ fn F() { // CHECK:STDOUT: %ImplicitGenericParam: %ImplicitGenericParam.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f [symbolic] -// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.792: = specific_function %ImplicitGenericParam, @ImplicitGenericParam(%T) [symbolic] +// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.0d7: = specific_function %ImplicitGenericParam, @ImplicitGenericParam(%T) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %.060: Core.Form = init_form %ptr.847 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr.847 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %.952: Core.Form = init_form %ptr.d08 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete] // CHECK:STDOUT: %CallImplicitGenericParam.type: type = fn_type @CallImplicitGenericParam [concrete] // CHECK:STDOUT: %CallImplicitGenericParam: %CallImplicitGenericParam.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.58d: = specific_function %ImplicitGenericParam, @ImplicitGenericParam(%i32) [concrete] -// CHECK:STDOUT: %complete_type.34c: = complete_type_witness %ptr.847 [concrete] +// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.ae4: = specific_function %ImplicitGenericParam, @ImplicitGenericParam(%i32) [concrete] +// CHECK:STDOUT: %complete_type.07f: = complete_type_witness %ptr.d08 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -769,19 +769,19 @@ fn F() { // CHECK:STDOUT: %return: ref @ImplicitGenericParam.%ptr.loc4_45.1 (%ptr.e8f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallImplicitGenericParam.decl: %CallImplicitGenericParam.type = fn_decl @CallImplicitGenericParam [concrete = constants.%CallImplicitGenericParam] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7b5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7b5 = return_slot_pattern %return.param_patt, %ptr [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f00 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f00 = return_slot_pattern %return.param_patt, %ptr [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_40: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc6_40 [concrete = constants.%ptr.847] -// CHECK:STDOUT: %.loc6: Core.Form = init_form %ptr [concrete = constants.%.060] +// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc6_40 [concrete = constants.%ptr.d08] +// CHECK:STDOUT: %.loc6: Core.Form = init_form %ptr [concrete = constants.%.952] // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc6_32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param -// CHECK:STDOUT: %return.param: ref %ptr.847 = out_param call_param1 -// CHECK:STDOUT: %return: ref %ptr.847 = return_slot %return.param +// CHECK:STDOUT: %return.param: ref %ptr.d08 = out_param call_param1 +// CHECK:STDOUT: %return: ref %ptr.d08 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -795,24 +795,24 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc4_36: = require_complete_type %T.loc4_26.1 [symbolic = %require_complete.loc4_36 (constants.%require_complete.944)] // CHECK:STDOUT: %require_complete.loc4_41: = require_complete_type %ptr.loc4_45.1 [symbolic = %require_complete.loc4_41 (constants.%require_complete.ef1)] -// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2: = specific_function constants.%ImplicitGenericParam, @ImplicitGenericParam(%T.loc4_26.1) [symbolic = %ImplicitGenericParam.specific_fn.loc4_56.2 (constants.%ImplicitGenericParam.specific_fn.792)] +// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2: = specific_function constants.%ImplicitGenericParam, @ImplicitGenericParam(%T.loc4_26.1) [symbolic = %ImplicitGenericParam.specific_fn.loc4_56.2 (constants.%ImplicitGenericParam.specific_fn.0d7)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @ImplicitGenericParam.%T.loc4_26.1 (%T)) -> out %return.param: @ImplicitGenericParam.%ptr.loc4_45.1 (%ptr.e8f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ImplicitGenericParam.ref: %ImplicitGenericParam.type = name_ref ImplicitGenericParam, file.%ImplicitGenericParam.decl [concrete = constants.%ImplicitGenericParam] // CHECK:STDOUT: %x.ref: @ImplicitGenericParam.%T.loc4_26.1 (%T) = name_ref x, %x -// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.1: = specific_function %ImplicitGenericParam.ref, @ImplicitGenericParam(constants.%T) [symbolic = %ImplicitGenericParam.specific_fn.loc4_56.2 (constants.%ImplicitGenericParam.specific_fn.792)] +// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.1: = specific_function %ImplicitGenericParam.ref, @ImplicitGenericParam(constants.%T) [symbolic = %ImplicitGenericParam.specific_fn.loc4_56.2 (constants.%ImplicitGenericParam.specific_fn.0d7)] // CHECK:STDOUT: %ImplicitGenericParam.call: init @ImplicitGenericParam.%ptr.loc4_45.1 (%ptr.e8f) = call %ImplicitGenericParam.specific_fn.loc4_56.1(%x.ref) // CHECK:STDOUT: return %ImplicitGenericParam.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallImplicitGenericParam(%n.param: %i32) -> out %return.param: %ptr.847 { +// CHECK:STDOUT: fn @CallImplicitGenericParam(%n.param: %i32) -> out %return.param: %ptr.d08 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ImplicitGenericParam.ref: %ImplicitGenericParam.type = name_ref ImplicitGenericParam, file.%ImplicitGenericParam.decl [concrete = constants.%ImplicitGenericParam] // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n -// CHECK:STDOUT: %ImplicitGenericParam.specific_fn: = specific_function %ImplicitGenericParam.ref, @ImplicitGenericParam(constants.%i32) [concrete = constants.%ImplicitGenericParam.specific_fn.58d] -// CHECK:STDOUT: %ImplicitGenericParam.call: init %ptr.847 = call %ImplicitGenericParam.specific_fn(%n.ref) +// CHECK:STDOUT: %ImplicitGenericParam.specific_fn: = specific_function %ImplicitGenericParam.ref, @ImplicitGenericParam(constants.%i32) [concrete = constants.%ImplicitGenericParam.specific_fn.ae4] +// CHECK:STDOUT: %ImplicitGenericParam.call: init %ptr.d08 = call %ImplicitGenericParam.specific_fn(%n.ref) // CHECK:STDOUT: return %ImplicitGenericParam.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -826,20 +826,20 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc4_36 => constants.%require_complete.944 // CHECK:STDOUT: %require_complete.loc4_41 => constants.%require_complete.ef1 -// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2 => constants.%ImplicitGenericParam.specific_fn.792 +// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2 => constants.%ImplicitGenericParam.specific_fn.0d7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitGenericParam(constants.%i32) { // CHECK:STDOUT: %T.loc4_26.1 => constants.%i32 -// CHECK:STDOUT: %pattern_type.loc4_36 => constants.%pattern_type.104 -// CHECK:STDOUT: %ptr.loc4_45.1 => constants.%ptr.847 -// CHECK:STDOUT: %.loc4_45.1 => constants.%.060 -// CHECK:STDOUT: %pattern_type.loc4_45 => constants.%pattern_type.7b5 +// CHECK:STDOUT: %pattern_type.loc4_36 => constants.%pattern_type.6b6 +// CHECK:STDOUT: %ptr.loc4_45.1 => constants.%ptr.d08 +// CHECK:STDOUT: %.loc4_45.1 => constants.%.952 +// CHECK:STDOUT: %pattern_type.loc4_45 => constants.%pattern_type.f00 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc4_36 => constants.%complete_type.f8a -// CHECK:STDOUT: %require_complete.loc4_41 => constants.%complete_type.34c -// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2 => constants.%ImplicitGenericParam.specific_fn.58d +// CHECK:STDOUT: %require_complete.loc4_41 => constants.%complete_type.07f +// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2 => constants.%ImplicitGenericParam.specific_fn.ae4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- deduce_nested_tuple.carbon @@ -855,40 +855,40 @@ fn F() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.4f7: %tuple.type.24b = tuple_value (%T, %i32) [symbolic] -// CHECK:STDOUT: %tuple.type.499: type = tuple_type (%T, %i32) [symbolic] -// CHECK:STDOUT: %pattern_type.e3e: type = pattern_type %tuple.type.499 [symbolic] +// CHECK:STDOUT: %tuple.43e: %tuple.type.24b = tuple_value (%T, %i32) [symbolic] +// CHECK:STDOUT: %tuple.type.2d8: type = tuple_type (%T, %i32) [symbolic] +// CHECK:STDOUT: %pattern_type.1d4: type = pattern_type %tuple.type.2d8 [symbolic] // CHECK:STDOUT: %TupleParam.type: type = fn_type @TupleParam [concrete] // CHECK:STDOUT: %TupleParam: %TupleParam.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.3c2: = require_complete_type %tuple.type.499 [symbolic] +// CHECK:STDOUT: %require_complete.738: = require_complete_type %tuple.type.2d8 [symbolic] // CHECK:STDOUT: %CallTupleParam.type: type = fn_type @CallTupleParam [concrete] // CHECK:STDOUT: %CallTupleParam: %CallTupleParam.type = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [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, %int_2.ecc) [concrete] -// CHECK:STDOUT: %tuple.e2d: %tuple.type.24b = tuple_value (Core.IntLiteral, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.35b: type = tuple_type (Core.IntLiteral, %i32) [concrete] -// CHECK:STDOUT: %pattern_type.7e7: type = pattern_type %tuple.type.35b [concrete] +// CHECK:STDOUT: %tuple.55f: %tuple.type.24b = tuple_value (Core.IntLiteral, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.94b: type = tuple_type (Core.IntLiteral, %i32) [concrete] +// CHECK:STDOUT: %pattern_type.106: type = pattern_type %tuple.type.94b [concrete] // CHECK:STDOUT: %TupleParam.specific_fn: = specific_function %TupleParam, @TupleParam(Core.IntLiteral) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %tuple.0cc: %tuple.type.35b = tuple_value (%int_1, %int_2.228) [concrete] -// CHECK:STDOUT: %complete_type.fbc: = complete_type_witness %tuple.type.35b [concrete] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %tuple.946: %tuple.type.94b = tuple_value (%int_1, %int_2.295) [concrete] +// CHECK:STDOUT: %complete_type.fc7: = complete_type_witness %tuple.type.94b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -899,9 +899,9 @@ fn F() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -913,36 +913,36 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %TupleParam.decl: %TupleParam.type = fn_decl @TupleParam [concrete = constants.%TupleParam] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @TupleParam.%pattern_type (%pattern_type.e3e) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @TupleParam.%pattern_type (%pattern_type.e3e) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @TupleParam.%pattern_type (%pattern_type.1d4) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @TupleParam.%pattern_type (%pattern_type.1d4) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_19.1: type = splice_block %.loc4_19.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc4_19.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc4_16.2: type = symbolic_binding T, 0 [symbolic = %T.loc4_16.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @TupleParam.%tuple.type (%tuple.type.499) = value_param call_param0 -// CHECK:STDOUT: %.loc4_42.1: type = splice_block %.loc4_42.3 [symbolic = %tuple.type (constants.%tuple.type.499)] { +// CHECK:STDOUT: %x.param: @TupleParam.%tuple.type (%tuple.type.2d8) = value_param call_param0 +// CHECK:STDOUT: %.loc4_42.1: type = splice_block %.loc4_42.3 [symbolic = %tuple.type (constants.%tuple.type.2d8)] { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_16.2 [symbolic = %T.loc4_16.1 (constants.%T)] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4_42.2: %tuple.type.24b = tuple_literal (%T.ref, %i32) [symbolic = %tuple (constants.%tuple.4f7)] -// CHECK:STDOUT: %.loc4_42.3: type = converted %.loc4_42.2, constants.%tuple.type.499 [symbolic = %tuple.type (constants.%tuple.type.499)] +// CHECK:STDOUT: %.loc4_42.2: %tuple.type.24b = tuple_literal (%T.ref, %i32) [symbolic = %tuple (constants.%tuple.43e)] +// CHECK:STDOUT: %.loc4_42.3: type = converted %.loc4_42.2, constants.%tuple.type.2d8 [symbolic = %tuple.type (constants.%tuple.type.2d8)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @TupleParam.%tuple.type (%tuple.type.499) = value_binding x, %x.param +// CHECK:STDOUT: %x: @TupleParam.%tuple.type (%tuple.type.2d8) = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallTupleParam.decl: %CallTupleParam.type = fn_decl @CallTupleParam [concrete = constants.%CallTupleParam] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @TupleParam(%T.loc4_16.2: type) { // CHECK:STDOUT: %T.loc4_16.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_16.1 (constants.%T)] -// CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%T.loc4_16.1, constants.%i32) [symbolic = %tuple (constants.%tuple.4f7)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (%T.loc4_16.1, constants.%i32) [symbolic = %tuple.type (constants.%tuple.type.499)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %tuple.type [symbolic = %pattern_type (constants.%pattern_type.e3e)] +// CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%T.loc4_16.1, constants.%i32) [symbolic = %tuple (constants.%tuple.43e)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%T.loc4_16.1, constants.%i32) [symbolic = %tuple.type (constants.%tuple.type.2d8)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %tuple.type [symbolic = %pattern_type (constants.%pattern_type.1d4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %tuple.type [symbolic = %require_complete (constants.%require_complete.3c2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %tuple.type [symbolic = %require_complete (constants.%require_complete.738)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @TupleParam.%tuple.type (%tuple.type.499)) { +// CHECK:STDOUT: fn(%x.param: @TupleParam.%tuple.type (%tuple.type.2d8)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -955,34 +955,34 @@ fn F() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc7_19.1: %tuple.type.f94 = tuple_literal (%int_1, %int_2) [concrete = constants.%tuple.ad8] // CHECK:STDOUT: %TupleParam.specific_fn: = specific_function %TupleParam.ref, @TupleParam(Core.IntLiteral) [concrete = constants.%TupleParam.specific_fn] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc7_19.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_19.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc7_19.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc7_19.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc7_19.3: %i32 = converted %int_2, %.loc7_19.2 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %tuple: %tuple.type.35b = tuple_value (%int_1, %.loc7_19.3) [concrete = constants.%tuple.0cc] -// CHECK:STDOUT: %.loc7_19.4: %tuple.type.35b = converted %.loc7_19.1, %tuple [concrete = constants.%tuple.0cc] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc7_19.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc7_19.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc7_19.3: %i32 = converted %int_2, %.loc7_19.2 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %tuple: %tuple.type.94b = tuple_value (%int_1, %.loc7_19.3) [concrete = constants.%tuple.946] +// CHECK:STDOUT: %.loc7_19.4: %tuple.type.94b = converted %.loc7_19.1, %tuple [concrete = constants.%tuple.946] // CHECK:STDOUT: %TupleParam.call: init %empty_tuple.type = call %TupleParam.specific_fn(%.loc7_19.4) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TupleParam(constants.%T) { // CHECK:STDOUT: %T.loc4_16.1 => constants.%T -// CHECK:STDOUT: %tuple => constants.%tuple.4f7 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.499 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e3e +// CHECK:STDOUT: %tuple => constants.%tuple.43e +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.2d8 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1d4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TupleParam(Core.IntLiteral) { // CHECK:STDOUT: %T.loc4_16.1 => Core.IntLiteral -// CHECK:STDOUT: %tuple => constants.%tuple.e2d -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.35b -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7e7 +// CHECK:STDOUT: %tuple => constants.%tuple.55f +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.94b +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.106 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.fbc +// CHECK:STDOUT: %require_complete => constants.%complete_type.fc7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- deduce_nested_struct.carbon @@ -997,38 +997,38 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %struct_type.a.b.4cf: type = struct_type {.a: %T, .b: %i32} [symbolic] -// CHECK:STDOUT: %pattern_type.616: type = pattern_type %struct_type.a.b.4cf [symbolic] +// CHECK:STDOUT: %struct_type.a.b.3aa: type = struct_type {.a: %T, .b: %i32} [symbolic] +// CHECK:STDOUT: %pattern_type.538: type = pattern_type %struct_type.a.b.3aa [symbolic] // CHECK:STDOUT: %StructParam.type: type = fn_type @StructParam [concrete] // CHECK:STDOUT: %StructParam: %StructParam.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.481: = require_complete_type %struct_type.a.b.4cf [symbolic] +// CHECK:STDOUT: %require_complete.5e1: = require_complete_type %struct_type.a.b.3aa [symbolic] // CHECK:STDOUT: %CallStructParam.type: type = fn_type @CallStructParam [concrete] // CHECK:STDOUT: %CallStructParam: %CallStructParam.type = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.4aa: %struct_type.a.b.cfd = struct_value (%int_1, %int_2.ecc) [concrete] -// CHECK:STDOUT: %struct_type.a.b.532: type = struct_type {.a: Core.IntLiteral, .b: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.5f9: type = pattern_type %struct_type.a.b.532 [concrete] +// CHECK:STDOUT: %struct_type.a.b.f91: type = struct_type {.a: Core.IntLiteral, .b: %i32} [concrete] +// CHECK:STDOUT: %pattern_type.8a1: type = pattern_type %struct_type.a.b.f91 [concrete] // CHECK:STDOUT: %StructParam.specific_fn: = specific_function %StructParam, @StructParam(Core.IntLiteral) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %struct.1be: %struct_type.a.b.532 = struct_value (%int_1, %int_2.228) [concrete] -// CHECK:STDOUT: %complete_type.1ec: = complete_type_witness %struct_type.a.b.532 [concrete] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %struct.72d: %struct_type.a.b.f91 = struct_value (%int_1, %int_2.295) [concrete] +// CHECK:STDOUT: %complete_type.aa8: = complete_type_witness %struct_type.a.b.f91 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1039,9 +1039,9 @@ fn F() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1053,34 +1053,34 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %StructParam.decl: %StructParam.type = fn_decl @StructParam [concrete = constants.%StructParam] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @StructParam.%pattern_type (%pattern_type.616) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @StructParam.%pattern_type (%pattern_type.616) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @StructParam.%pattern_type (%pattern_type.538) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @StructParam.%pattern_type (%pattern_type.538) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc4_20.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc4_17.2: type = symbolic_binding T, 0 [symbolic = %T.loc4_17.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @StructParam.%struct_type.a.b.loc4_51.1 (%struct_type.a.b.4cf) = value_param call_param0 -// CHECK:STDOUT: %.loc4_51: type = splice_block %struct_type.a.b.loc4_51.2 [symbolic = %struct_type.a.b.loc4_51.1 (constants.%struct_type.a.b.4cf)] { +// CHECK:STDOUT: %x.param: @StructParam.%struct_type.a.b.loc4_51.1 (%struct_type.a.b.3aa) = value_param call_param0 +// CHECK:STDOUT: %.loc4_51: type = splice_block %struct_type.a.b.loc4_51.2 [symbolic = %struct_type.a.b.loc4_51.1 (constants.%struct_type.a.b.3aa)] { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_17.2 [symbolic = %T.loc4_17.1 (constants.%T)] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b.loc4_51.2: type = struct_type {.a: @StructParam.%T.loc4_17.1 (%T), .b: %i32} [symbolic = %struct_type.a.b.loc4_51.1 (constants.%struct_type.a.b.4cf)] +// CHECK:STDOUT: %struct_type.a.b.loc4_51.2: type = struct_type {.a: @StructParam.%T.loc4_17.1 (%T), .b: %i32} [symbolic = %struct_type.a.b.loc4_51.1 (constants.%struct_type.a.b.3aa)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @StructParam.%struct_type.a.b.loc4_51.1 (%struct_type.a.b.4cf) = value_binding x, %x.param +// CHECK:STDOUT: %x: @StructParam.%struct_type.a.b.loc4_51.1 (%struct_type.a.b.3aa) = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallStructParam.decl: %CallStructParam.type = fn_decl @CallStructParam [concrete = constants.%CallStructParam] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @StructParam(%T.loc4_17.2: type) { // CHECK:STDOUT: %T.loc4_17.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_17.1 (constants.%T)] -// CHECK:STDOUT: %struct_type.a.b.loc4_51.1: type = struct_type {.a: @StructParam.%T.loc4_17.1 (%T), .b: %i32} [symbolic = %struct_type.a.b.loc4_51.1 (constants.%struct_type.a.b.4cf)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.b.loc4_51.1 [symbolic = %pattern_type (constants.%pattern_type.616)] +// CHECK:STDOUT: %struct_type.a.b.loc4_51.1: type = struct_type {.a: @StructParam.%T.loc4_17.1 (%T), .b: %i32} [symbolic = %struct_type.a.b.loc4_51.1 (constants.%struct_type.a.b.3aa)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.b.loc4_51.1 [symbolic = %pattern_type (constants.%pattern_type.538)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a.b.loc4_51.1 [symbolic = %require_complete (constants.%require_complete.481)] +// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a.b.loc4_51.1 [symbolic = %require_complete (constants.%require_complete.5e1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @StructParam.%struct_type.a.b.loc4_51.1 (%struct_type.a.b.4cf)) { +// CHECK:STDOUT: fn(%x.param: @StructParam.%struct_type.a.b.loc4_51.1 (%struct_type.a.b.3aa)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1093,32 +1093,32 @@ fn F() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc7_30.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) [concrete = constants.%struct.4aa] // CHECK:STDOUT: %StructParam.specific_fn: = specific_function %StructParam.ref, @StructParam(Core.IntLiteral) [concrete = constants.%StructParam.specific_fn] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc7_30.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_30.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc7_30.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc7_30.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc7_30.3: %i32 = converted %int_2, %.loc7_30.2 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %struct: %struct_type.a.b.532 = struct_value (%int_1, %.loc7_30.3) [concrete = constants.%struct.1be] -// CHECK:STDOUT: %.loc7_30.4: %struct_type.a.b.532 = converted %.loc7_30.1, %struct [concrete = constants.%struct.1be] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc7_30.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc7_30.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc7_30.3: %i32 = converted %int_2, %.loc7_30.2 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %struct: %struct_type.a.b.f91 = struct_value (%int_1, %.loc7_30.3) [concrete = constants.%struct.72d] +// CHECK:STDOUT: %.loc7_30.4: %struct_type.a.b.f91 = converted %.loc7_30.1, %struct [concrete = constants.%struct.72d] // CHECK:STDOUT: %StructParam.call: init %empty_tuple.type = call %StructParam.specific_fn(%.loc7_30.4) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @StructParam(constants.%T) { // CHECK:STDOUT: %T.loc4_17.1 => constants.%T -// CHECK:STDOUT: %struct_type.a.b.loc4_51.1 => constants.%struct_type.a.b.4cf -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.616 +// CHECK:STDOUT: %struct_type.a.b.loc4_51.1 => constants.%struct_type.a.b.3aa +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.538 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @StructParam(Core.IntLiteral) { // CHECK:STDOUT: %T.loc4_17.1 => Core.IntLiteral -// CHECK:STDOUT: %struct_type.a.b.loc4_51.1 => constants.%struct_type.a.b.532 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5f9 +// CHECK:STDOUT: %struct_type.a.b.loc4_51.1 => constants.%struct_type.a.b.f91 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.8a1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.1ec +// CHECK:STDOUT: %require_complete => constants.%complete_type.aa8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduce_bigger_struct.carbon @@ -1133,10 +1133,10 @@ fn F() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %struct_type.c.d.e: type = struct_type {.c: %T, .d: %i32, .e: %i32} [symbolic] -// CHECK:STDOUT: %pattern_type.0a7: type = pattern_type %struct_type.c.d.e [symbolic] +// CHECK:STDOUT: %pattern_type.3dc: type = pattern_type %struct_type.c.d.e [symbolic] // CHECK:STDOUT: %BigStructParam.type: type = fn_type @BigStructParam [concrete] // CHECK:STDOUT: %BigStructParam: %BigStructParam.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.ce1: = require_complete_type %struct_type.c.d.e [symbolic] +// CHECK:STDOUT: %require_complete.11c: = require_complete_type %struct_type.c.d.e [symbolic] // CHECK:STDOUT: %CallBigStructParam.type: type = fn_type @CallBigStructParam [concrete] // CHECK:STDOUT: %CallBigStructParam: %CallBigStructParam.type = struct_value () [concrete] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] @@ -1163,8 +1163,8 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %BigStructParam.decl: %BigStructParam.type = fn_decl @BigStructParam [concrete = constants.%BigStructParam] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @BigStructParam.%pattern_type (%pattern_type.0a7) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @BigStructParam.%pattern_type (%pattern_type.0a7) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @BigStructParam.%pattern_type (%pattern_type.3dc) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @BigStructParam.%pattern_type (%pattern_type.3dc) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_23.1: type = splice_block %.loc4_23.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1186,10 +1186,10 @@ fn F() { // CHECK:STDOUT: generic fn @BigStructParam(%T.loc4_20.2: type) { // CHECK:STDOUT: %T.loc4_20.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_20.1 (constants.%T)] // CHECK:STDOUT: %struct_type.c.d.e.loc4_63.1: type = struct_type {.c: @BigStructParam.%T.loc4_20.1 (%T), .d: %i32, .e: %i32} [symbolic = %struct_type.c.d.e.loc4_63.1 (constants.%struct_type.c.d.e)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.c.d.e.loc4_63.1 [symbolic = %pattern_type (constants.%pattern_type.0a7)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.c.d.e.loc4_63.1 [symbolic = %pattern_type (constants.%pattern_type.3dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.c.d.e.loc4_63.1 [symbolic = %require_complete (constants.%require_complete.ce1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.c.d.e.loc4_63.1 [symbolic = %require_complete (constants.%require_complete.11c)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @BigStructParam.%struct_type.c.d.e.loc4_63.1 (%struct_type.c.d.e)) { // CHECK:STDOUT: !entry: @@ -1209,7 +1209,7 @@ fn F() { // CHECK:STDOUT: specific @BigStructParam(constants.%T) { // CHECK:STDOUT: %T.loc4_20.1 => constants.%T // CHECK:STDOUT: %struct_type.c.d.e.loc4_63.1 => constants.%struct_type.c.d.e -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0a7 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduce_smaller_struct.carbon @@ -1224,10 +1224,10 @@ fn F() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %struct_type.f.g: type = struct_type {.f: %T, .g: %i32} [symbolic] -// CHECK:STDOUT: %pattern_type.6b9: type = pattern_type %struct_type.f.g [symbolic] +// CHECK:STDOUT: %pattern_type.128: type = pattern_type %struct_type.f.g [symbolic] // CHECK:STDOUT: %SmallStructParam.type: type = fn_type @SmallStructParam [concrete] // CHECK:STDOUT: %SmallStructParam: %SmallStructParam.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.a59: = require_complete_type %struct_type.f.g [symbolic] +// CHECK:STDOUT: %require_complete.e94: = require_complete_type %struct_type.f.g [symbolic] // CHECK:STDOUT: %CallSmallStructParam.type: type = fn_type @CallSmallStructParam [concrete] // CHECK:STDOUT: %CallSmallStructParam: %CallSmallStructParam.type = struct_value () [concrete] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete] @@ -1255,8 +1255,8 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %SmallStructParam.decl: %SmallStructParam.type = fn_decl @SmallStructParam [concrete = constants.%SmallStructParam] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @SmallStructParam.%pattern_type (%pattern_type.6b9) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @SmallStructParam.%pattern_type (%pattern_type.6b9) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @SmallStructParam.%pattern_type (%pattern_type.128) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @SmallStructParam.%pattern_type (%pattern_type.128) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_25.1: type = splice_block %.loc4_25.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1277,10 +1277,10 @@ fn F() { // CHECK:STDOUT: generic fn @SmallStructParam(%T.loc4_22.2: type) { // CHECK:STDOUT: %T.loc4_22.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_22.1 (constants.%T)] // CHECK:STDOUT: %struct_type.f.g.loc4_56.1: type = struct_type {.f: @SmallStructParam.%T.loc4_22.1 (%T), .g: %i32} [symbolic = %struct_type.f.g.loc4_56.1 (constants.%struct_type.f.g)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.f.g.loc4_56.1 [symbolic = %pattern_type (constants.%pattern_type.6b9)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.f.g.loc4_56.1 [symbolic = %pattern_type (constants.%pattern_type.128)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.f.g.loc4_56.1 [symbolic = %require_complete (constants.%require_complete.a59)] +// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.f.g.loc4_56.1 [symbolic = %require_complete (constants.%require_complete.e94)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @SmallStructParam.%struct_type.f.g.loc4_56.1 (%struct_type.f.g)) { // CHECK:STDOUT: !entry: @@ -1301,7 +1301,7 @@ fn F() { // CHECK:STDOUT: specific @SmallStructParam(constants.%T) { // CHECK:STDOUT: %T.loc4_22.1 => constants.%T // CHECK:STDOUT: %struct_type.f.g.loc4_56.1 => constants.%struct_type.f.g -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6b9 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.128 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduce_struct_wrong_name.carbon @@ -1316,10 +1316,10 @@ fn F() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %struct_type.i.different: type = struct_type {.i: %T, .different: %i32} [symbolic] -// CHECK:STDOUT: %pattern_type.573: type = pattern_type %struct_type.i.different [symbolic] +// CHECK:STDOUT: %pattern_type.1b7: type = pattern_type %struct_type.i.different [symbolic] // CHECK:STDOUT: %WrongNameStructParam.type: type = fn_type @WrongNameStructParam [concrete] // CHECK:STDOUT: %WrongNameStructParam: %WrongNameStructParam.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.8fe: = require_complete_type %struct_type.i.different [symbolic] +// CHECK:STDOUT: %require_complete.59f: = require_complete_type %struct_type.i.different [symbolic] // CHECK:STDOUT: %CallWrongNameStructParam.type: type = fn_type @CallWrongNameStructParam [concrete] // CHECK:STDOUT: %CallWrongNameStructParam: %CallWrongNameStructParam.type = struct_value () [concrete] // CHECK:STDOUT: %int_8: Core.IntLiteral = int_value 8 [concrete] @@ -1346,8 +1346,8 @@ fn F() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %WrongNameStructParam.decl: %WrongNameStructParam.type = fn_decl @WrongNameStructParam [concrete = constants.%WrongNameStructParam] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @WrongNameStructParam.%pattern_type (%pattern_type.573) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @WrongNameStructParam.%pattern_type (%pattern_type.573) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @WrongNameStructParam.%pattern_type (%pattern_type.1b7) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @WrongNameStructParam.%pattern_type (%pattern_type.1b7) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_29.1: type = splice_block %.loc4_29.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1368,10 +1368,10 @@ fn F() { // CHECK:STDOUT: generic fn @WrongNameStructParam(%T.loc4_26.2: type) { // CHECK:STDOUT: %T.loc4_26.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_26.1 (constants.%T)] // CHECK:STDOUT: %struct_type.i.different.loc4_68.1: type = struct_type {.i: @WrongNameStructParam.%T.loc4_26.1 (%T), .different: %i32} [symbolic = %struct_type.i.different.loc4_68.1 (constants.%struct_type.i.different)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.i.different.loc4_68.1 [symbolic = %pattern_type (constants.%pattern_type.573)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.i.different.loc4_68.1 [symbolic = %pattern_type (constants.%pattern_type.1b7)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.i.different.loc4_68.1 [symbolic = %require_complete (constants.%require_complete.8fe)] +// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.i.different.loc4_68.1 [symbolic = %require_complete (constants.%require_complete.59f)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @WrongNameStructParam.%struct_type.i.different.loc4_68.1 (%struct_type.i.different)) { // CHECK:STDOUT: !entry: @@ -1391,7 +1391,7 @@ fn F() { // CHECK:STDOUT: specific @WrongNameStructParam(constants.%T) { // CHECK:STDOUT: %T.loc4_26.1 => constants.%T // CHECK:STDOUT: %struct_type.i.different.loc4_68.1 => constants.%struct_type.i.different -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.573 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1b7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_deduce_struct_wrong_order.carbon @@ -1399,17 +1399,17 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.98f12: type = pattern_type type [concrete] +// CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %struct_type.first.second: type = struct_type {.first: %T, .second: %i32} [symbolic] -// CHECK:STDOUT: %pattern_type.98f1f: type = pattern_type %struct_type.first.second [symbolic] +// CHECK:STDOUT: %pattern_type.f83: type = pattern_type %struct_type.first.second [symbolic] // CHECK:STDOUT: %WrongOrderStructParam.type: type = fn_type @WrongOrderStructParam [concrete] // CHECK:STDOUT: %WrongOrderStructParam: %WrongOrderStructParam.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.18a: = require_complete_type %struct_type.first.second [symbolic] +// CHECK:STDOUT: %require_complete.ff4: = require_complete_type %struct_type.first.second [symbolic] // CHECK:STDOUT: %CallWrongOrderStructParam.type: type = fn_type @CallWrongOrderStructParam [concrete] // CHECK:STDOUT: %CallWrongOrderStructParam: %CallWrongOrderStructParam.type = struct_value () [concrete] // CHECK:STDOUT: %int_11: Core.IntLiteral = int_value 11 [concrete] @@ -1435,9 +1435,9 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %WrongOrderStructParam.decl: %WrongOrderStructParam.type = fn_decl @WrongOrderStructParam [concrete = constants.%WrongOrderStructParam] { -// CHECK:STDOUT: %T.patt: %pattern_type.98f12 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @WrongOrderStructParam.%pattern_type (%pattern_type.98f1f) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @WrongOrderStructParam.%pattern_type (%pattern_type.98f1f) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %x.param_patt: @WrongOrderStructParam.%pattern_type (%pattern_type.f83) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @WrongOrderStructParam.%pattern_type (%pattern_type.f83) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_30.1: type = splice_block %.loc4_30.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1458,10 +1458,10 @@ fn F() { // CHECK:STDOUT: generic fn @WrongOrderStructParam(%T.loc4_27.2: type) { // CHECK:STDOUT: %T.loc4_27.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_27.1 (constants.%T)] // CHECK:STDOUT: %struct_type.first.second.loc4_70.1: type = struct_type {.first: @WrongOrderStructParam.%T.loc4_27.1 (%T), .second: %i32} [symbolic = %struct_type.first.second.loc4_70.1 (constants.%struct_type.first.second)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.first.second.loc4_70.1 [symbolic = %pattern_type (constants.%pattern_type.98f1f)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.first.second.loc4_70.1 [symbolic = %pattern_type (constants.%pattern_type.f83)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.first.second.loc4_70.1 [symbolic = %require_complete (constants.%require_complete.18a)] +// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.first.second.loc4_70.1 [symbolic = %require_complete (constants.%require_complete.ff4)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @WrongOrderStructParam.%struct_type.first.second.loc4_70.1 (%struct_type.first.second)) { // CHECK:STDOUT: !entry: @@ -1481,7 +1481,7 @@ fn F() { // CHECK:STDOUT: specific @WrongOrderStructParam(constants.%T) { // CHECK:STDOUT: %T.loc4_27.1 => constants.%T // CHECK:STDOUT: %struct_type.first.second.loc4_70.1 => constants.%struct_type.first.second -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98f1f +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduce_incomplete.carbon @@ -1662,37 +1662,37 @@ fn F() { // CHECK:STDOUT: %EE: type = class_type @EE [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %Z.impl_witness.fa4: = impl_witness @EE.as.Z.impl.%Z.impl_witness_table [concrete] -// CHECK:STDOUT: %Z.facet.6b9: %Z.type = facet_value %EE, (%Z.impl_witness.fa4) [concrete] +// CHECK:STDOUT: %Z.impl_witness.0e0: = impl_witness @EE.as.Z.impl.%Z.impl_witness_table [concrete] +// CHECK:STDOUT: %Z.facet.a2d: %Z.type = facet_value %EE, (%Z.impl_witness.0e0) [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %E: type = symbolic_binding E, 0 [symbolic] // CHECK:STDOUT: %DD.type: type = generic_class_type @DD [concrete] // CHECK:STDOUT: %DD.generic: %DD.type = struct_value () [concrete] -// CHECK:STDOUT: %DD.225: type = class_type @DD, @DD(%E) [symbolic] -// CHECK:STDOUT: %Z.impl_witness.07e: = impl_witness @DD.as.Z.impl.%Z.impl_witness_table, @DD.as.Z.impl(%E) [symbolic] -// CHECK:STDOUT: %Z.facet.080: %Z.type = facet_value %DD.225, (%Z.impl_witness.07e) [symbolic] -// CHECK:STDOUT: %pattern_type.461: type = pattern_type %Z.type [concrete] +// CHECK:STDOUT: %DD.699: type = class_type @DD, @DD(%E) [symbolic] +// CHECK:STDOUT: %Z.impl_witness.7fb: = impl_witness @DD.as.Z.impl.%Z.impl_witness_table, @DD.as.Z.impl(%E) [symbolic] +// CHECK:STDOUT: %Z.facet.419: %Z.type = facet_value %DD.699, (%Z.impl_witness.7fb) [symbolic] +// CHECK:STDOUT: %pattern_type.5d7: type = pattern_type %Z.type [concrete] // CHECK:STDOUT: %D: %Z.type = symbolic_binding D, 0 [symbolic] // CHECK:STDOUT: %CC.type: type = generic_class_type @CC [concrete] // CHECK:STDOUT: %CC.generic: %CC.type = struct_value () [concrete] -// CHECK:STDOUT: %CC.573: type = class_type @CC, @CC(%D) [symbolic] -// CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %DD.225, @Z [symbolic] -// CHECK:STDOUT: %.b77: require_specific_def_type = require_specific_def @DD.as.Z.impl(%E) [symbolic] -// CHECK:STDOUT: %Z.facet.1d7: %Z.type = facet_value %DD.225, (%Z.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %CC.ceb: type = class_type @CC, @CC(%Z.facet.1d7) [symbolic] -// CHECK:STDOUT: %Z.impl_witness.9ea: = impl_witness @CC.as.Z.impl.%Z.impl_witness_table, @CC.as.Z.impl(%E) [symbolic] -// CHECK:STDOUT: %Z.facet.483: %Z.type = facet_value %CC.ceb, (%Z.impl_witness.9ea) [symbolic] +// CHECK:STDOUT: %CC.19e: type = class_type @CC, @CC(%D) [symbolic] +// CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %DD.699, @Z [symbolic] +// CHECK:STDOUT: %.8d3: require_specific_def_type = require_specific_def @DD.as.Z.impl(%E) [symbolic] +// CHECK:STDOUT: %Z.facet.0b6: %Z.type = facet_value %DD.699, (%Z.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %CC.2a8: type = class_type @CC, @CC(%Z.facet.0b6) [symbolic] +// CHECK:STDOUT: %Z.impl_witness.458: = impl_witness @CC.as.Z.impl.%Z.impl_witness_table, @CC.as.Z.impl(%E) [symbolic] +// CHECK:STDOUT: %Z.facet.2d1: %Z.type = facet_value %CC.2a8, (%Z.impl_witness.458) [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %DD.72f: type = class_type @DD, @DD(%EE) [concrete] -// CHECK:STDOUT: %Z.impl_witness.6ce: = impl_witness @DD.as.Z.impl.%Z.impl_witness_table, @DD.as.Z.impl(%EE) [concrete] -// CHECK:STDOUT: %.57f: require_specific_def_type = require_specific_def @DD.as.Z.impl(%EE) [concrete] -// CHECK:STDOUT: %Z.facet.9ec: %Z.type = facet_value %DD.72f, (%Z.impl_witness.6ce) [concrete] -// CHECK:STDOUT: %CC.42c: type = class_type @CC, @CC(%Z.facet.9ec) [concrete] -// CHECK:STDOUT: %Z.impl_witness.4da: = impl_witness @CC.as.Z.impl.%Z.impl_witness_table, @CC.as.Z.impl(%EE) [concrete] -// CHECK:STDOUT: %Z.facet.6a0: %Z.type = facet_value %CC.42c, (%Z.impl_witness.4da) [concrete] +// CHECK:STDOUT: %DD.cfc: type = class_type @DD, @DD(%EE) [concrete] +// CHECK:STDOUT: %Z.impl_witness.7dd: = impl_witness @DD.as.Z.impl.%Z.impl_witness_table, @DD.as.Z.impl(%EE) [concrete] +// CHECK:STDOUT: %.061: require_specific_def_type = require_specific_def @DD.as.Z.impl(%EE) [concrete] +// CHECK:STDOUT: %Z.facet.da0: %Z.type = facet_value %DD.cfc, (%Z.impl_witness.7dd) [concrete] +// CHECK:STDOUT: %CC.a5a: type = class_type @CC, @CC(%Z.facet.da0) [concrete] +// CHECK:STDOUT: %Z.impl_witness.df9: = impl_witness @CC.as.Z.impl.%Z.impl_witness_table, @CC.as.Z.impl(%EE) [concrete] +// CHECK:STDOUT: %Z.facet.57d: %Z.type = facet_value %CC.a5a, (%Z.impl_witness.df9) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1732,7 +1732,7 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: %DD.ref: %DD.type = name_ref DD, file.%DD.decl [concrete = constants.%DD.generic] // CHECK:STDOUT: %E.ref: type = name_ref E, %E.loc9_15.1 [symbolic = %E.loc9_15.2 (constants.%E)] -// CHECK:STDOUT: %DD.loc9_28.1: type = class_type @DD, @DD(constants.%E) [symbolic = %DD.loc9_28.2 (constants.%DD.225)] +// CHECK:STDOUT: %DD.loc9_28.1: type = class_type @DD, @DD(constants.%E) [symbolic = %DD.loc9_28.2 (constants.%DD.699)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: %.loc9_18.1: type = splice_block %.loc9_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1741,7 +1741,7 @@ fn F() { // CHECK:STDOUT: %E.loc9_15.1: type = symbolic_binding E, 0 [symbolic = %E.loc9_15.2 (constants.%E)] // CHECK:STDOUT: } // CHECK:STDOUT: %CC.decl: %CC.type = class_decl @CC [concrete = constants.%CC.generic] { -// CHECK:STDOUT: %D.patt: %pattern_type.461 = symbolic_binding_pattern D, 0 [concrete] +// CHECK:STDOUT: %D.patt: %pattern_type.5d7 = symbolic_binding_pattern D, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11: type = splice_block %Z.ref [concrete = constants.%Z.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1755,10 +1755,10 @@ fn F() { // CHECK:STDOUT: %CC.ref: %CC.type = name_ref CC, file.%CC.decl [concrete = constants.%CC.generic] // CHECK:STDOUT: %DD.ref: %DD.type = name_ref DD, file.%DD.decl [concrete = constants.%DD.generic] // CHECK:STDOUT: %E.ref: type = name_ref E, %E.loc12_15.1 [symbolic = %E.loc12_15.2 (constants.%E)] -// CHECK:STDOUT: %DD.loc12_31.1: type = class_type @DD, @DD(constants.%E) [symbolic = %DD.loc12_31.2 (constants.%DD.225)] -// CHECK:STDOUT: %Z.facet.loc12_32.1: %Z.type = facet_value %DD.loc12_31.1, (constants.%Z.lookup_impl_witness) [symbolic = %Z.facet.loc12_32.2 (constants.%Z.facet.1d7)] -// CHECK:STDOUT: %.loc12_32.1: %Z.type = converted %DD.loc12_31.1, %Z.facet.loc12_32.1 [symbolic = %Z.facet.loc12_32.2 (constants.%Z.facet.1d7)] -// CHECK:STDOUT: %CC.loc12_32.1: type = class_type @CC, @CC(constants.%Z.facet.1d7) [symbolic = %CC.loc12_32.2 (constants.%CC.ceb)] +// CHECK:STDOUT: %DD.loc12_31.1: type = class_type @DD, @DD(constants.%E) [symbolic = %DD.loc12_31.2 (constants.%DD.699)] +// CHECK:STDOUT: %Z.facet.loc12_32.1: %Z.type = facet_value %DD.loc12_31.1, (constants.%Z.lookup_impl_witness) [symbolic = %Z.facet.loc12_32.2 (constants.%Z.facet.0b6)] +// CHECK:STDOUT: %.loc12_32.1: %Z.type = converted %DD.loc12_31.1, %Z.facet.loc12_32.1 [symbolic = %Z.facet.loc12_32.2 (constants.%Z.facet.0b6)] +// CHECK:STDOUT: %CC.loc12_32.1: type = class_type @CC, @CC(constants.%Z.facet.0b6) [symbolic = %CC.loc12_32.2 (constants.%CC.2a8)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: %.loc12_18.1: type = splice_block %.loc12_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1782,7 +1782,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @EE.as.Z.impl: %EE.ref as %Z.ref { // CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (), @EE.as.Z.impl [concrete] -// CHECK:STDOUT: %Z.impl_witness: = impl_witness %Z.impl_witness_table [concrete = constants.%Z.impl_witness.fa4] +// CHECK:STDOUT: %Z.impl_witness: = impl_witness %Z.impl_witness_table [concrete = constants.%Z.impl_witness.0e0] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %Z.ref @@ -1791,14 +1791,14 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @DD.as.Z.impl(%E.loc9_15.1: type) { // CHECK:STDOUT: %E.loc9_15.2: type = symbolic_binding E, 0 [symbolic = %E.loc9_15.2 (constants.%E)] -// CHECK:STDOUT: %DD.loc9_28.2: type = class_type @DD, @DD(%E.loc9_15.2) [symbolic = %DD.loc9_28.2 (constants.%DD.225)] -// CHECK:STDOUT: %Z.impl_witness.loc9_35.2: = impl_witness %Z.impl_witness_table, @DD.as.Z.impl(%E.loc9_15.2) [symbolic = %Z.impl_witness.loc9_35.2 (constants.%Z.impl_witness.07e)] +// CHECK:STDOUT: %DD.loc9_28.2: type = class_type @DD, @DD(%E.loc9_15.2) [symbolic = %DD.loc9_28.2 (constants.%DD.699)] +// CHECK:STDOUT: %Z.impl_witness.loc9_35.2: = impl_witness %Z.impl_witness_table, @DD.as.Z.impl(%E.loc9_15.2) [symbolic = %Z.impl_witness.loc9_35.2 (constants.%Z.impl_witness.7fb)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %DD.loc9_28.1 as %Z.ref { // CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (), @DD.as.Z.impl [concrete] -// CHECK:STDOUT: %Z.impl_witness.loc9_35.1: = impl_witness %Z.impl_witness_table, @DD.as.Z.impl(constants.%E) [symbolic = %Z.impl_witness.loc9_35.2 (constants.%Z.impl_witness.07e)] +// CHECK:STDOUT: %Z.impl_witness.loc9_35.1: = impl_witness %Z.impl_witness_table, @DD.as.Z.impl(constants.%E) [symbolic = %Z.impl_witness.loc9_35.2 (constants.%Z.impl_witness.7fb)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %Z.ref @@ -1808,18 +1808,18 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @CC.as.Z.impl(%E.loc12_15.1: type) { // CHECK:STDOUT: %E.loc12_15.2: type = symbolic_binding E, 0 [symbolic = %E.loc12_15.2 (constants.%E)] -// CHECK:STDOUT: %DD.loc12_31.2: type = class_type @DD, @DD(%E.loc12_15.2) [symbolic = %DD.loc12_31.2 (constants.%DD.225)] -// CHECK:STDOUT: %.loc12_32.2: require_specific_def_type = require_specific_def @DD.as.Z.impl(%E.loc12_15.2) [symbolic = %.loc12_32.2 (constants.%.b77)] +// CHECK:STDOUT: %DD.loc12_31.2: type = class_type @DD, @DD(%E.loc12_15.2) [symbolic = %DD.loc12_31.2 (constants.%DD.699)] +// CHECK:STDOUT: %.loc12_32.2: require_specific_def_type = require_specific_def @DD.as.Z.impl(%E.loc12_15.2) [symbolic = %.loc12_32.2 (constants.%.8d3)] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %DD.loc12_31.2, @Z [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness)] -// CHECK:STDOUT: %Z.facet.loc12_32.2: %Z.type = facet_value %DD.loc12_31.2, (%Z.lookup_impl_witness) [symbolic = %Z.facet.loc12_32.2 (constants.%Z.facet.1d7)] -// CHECK:STDOUT: %CC.loc12_32.2: type = class_type @CC, @CC(%Z.facet.loc12_32.2) [symbolic = %CC.loc12_32.2 (constants.%CC.ceb)] -// CHECK:STDOUT: %Z.impl_witness.loc12_39.2: = impl_witness %Z.impl_witness_table, @CC.as.Z.impl(%E.loc12_15.2) [symbolic = %Z.impl_witness.loc12_39.2 (constants.%Z.impl_witness.9ea)] +// CHECK:STDOUT: %Z.facet.loc12_32.2: %Z.type = facet_value %DD.loc12_31.2, (%Z.lookup_impl_witness) [symbolic = %Z.facet.loc12_32.2 (constants.%Z.facet.0b6)] +// CHECK:STDOUT: %CC.loc12_32.2: type = class_type @CC, @CC(%Z.facet.loc12_32.2) [symbolic = %CC.loc12_32.2 (constants.%CC.2a8)] +// CHECK:STDOUT: %Z.impl_witness.loc12_39.2: = impl_witness %Z.impl_witness_table, @CC.as.Z.impl(%E.loc12_15.2) [symbolic = %Z.impl_witness.loc12_39.2 (constants.%Z.impl_witness.458)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %CC.loc12_32.1 as %Z.ref { // CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (), @CC.as.Z.impl [concrete] -// CHECK:STDOUT: %Z.impl_witness.loc12_39.1: = impl_witness %Z.impl_witness_table, @CC.as.Z.impl(constants.%E) [symbolic = %Z.impl_witness.loc12_39.2 (constants.%Z.impl_witness.9ea)] +// CHECK:STDOUT: %Z.impl_witness.loc12_39.1: = impl_witness %Z.impl_witness_table, @CC.as.Z.impl(constants.%E) [symbolic = %Z.impl_witness.loc12_39.2 (constants.%Z.impl_witness.458)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %Z.ref @@ -1845,7 +1845,7 @@ fn F() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%DD.225 +// CHECK:STDOUT: .Self = constants.%DD.699 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1859,7 +1859,7 @@ fn F() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%CC.573 +// CHECK:STDOUT: .Self = constants.%CC.19e // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1868,13 +1868,13 @@ fn F() { // CHECK:STDOUT: %CC.ref: %CC.type = name_ref CC, file.%CC.decl [concrete = constants.%CC.generic] // CHECK:STDOUT: %DD.ref: %DD.type = name_ref DD, file.%DD.decl [concrete = constants.%DD.generic] // CHECK:STDOUT: %EE.ref: type = name_ref EE, file.%EE.decl [concrete = constants.%EE] -// CHECK:STDOUT: %DD: type = class_type @DD, @DD(constants.%EE) [concrete = constants.%DD.72f] -// CHECK:STDOUT: %Z.facet.loc15_12: %Z.type = facet_value %DD, (constants.%Z.impl_witness.6ce) [concrete = constants.%Z.facet.9ec] -// CHECK:STDOUT: %.loc15_12: %Z.type = converted %DD, %Z.facet.loc15_12 [concrete = constants.%Z.facet.9ec] -// CHECK:STDOUT: %CC: type = class_type @CC, @CC(constants.%Z.facet.9ec) [concrete = constants.%CC.42c] +// CHECK:STDOUT: %DD: type = class_type @DD, @DD(constants.%EE) [concrete = constants.%DD.cfc] +// CHECK:STDOUT: %Z.facet.loc15_12: %Z.type = facet_value %DD, (constants.%Z.impl_witness.7dd) [concrete = constants.%Z.facet.da0] +// CHECK:STDOUT: %.loc15_12: %Z.type = converted %DD, %Z.facet.loc15_12 [concrete = constants.%Z.facet.da0] +// CHECK:STDOUT: %CC: type = class_type @CC, @CC(constants.%Z.facet.da0) [concrete = constants.%CC.a5a] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] -// CHECK:STDOUT: %Z.facet.loc15_14: %Z.type = facet_value %CC, (constants.%Z.impl_witness.4da) [concrete = constants.%Z.facet.6a0] -// CHECK:STDOUT: %.loc15_14: %Z.type = converted %CC, %Z.facet.loc15_14 [concrete = constants.%Z.facet.6a0] +// CHECK:STDOUT: %Z.facet.loc15_14: %Z.type = facet_value %CC, (constants.%Z.impl_witness.df9) [concrete = constants.%Z.facet.57d] +// CHECK:STDOUT: %.loc15_14: %Z.type = converted %CC, %Z.facet.loc15_14 [concrete = constants.%Z.facet.57d] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1882,7 +1882,7 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet.6b9) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet.a2d) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1892,13 +1892,13 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @DD.as.Z.impl(constants.%E) { // CHECK:STDOUT: %E.loc9_15.2 => constants.%E -// CHECK:STDOUT: %DD.loc9_28.2 => constants.%DD.225 -// CHECK:STDOUT: %Z.impl_witness.loc9_35.2 => constants.%Z.impl_witness.07e +// CHECK:STDOUT: %DD.loc9_28.2 => constants.%DD.699 +// CHECK:STDOUT: %Z.impl_witness.loc9_35.2 => constants.%Z.impl_witness.7fb // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet.080) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet.419) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1906,21 +1906,21 @@ fn F() { // CHECK:STDOUT: %D.loc11_11.1 => constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @CC(constants.%Z.facet.1d7) { -// CHECK:STDOUT: %D.loc11_11.1 => constants.%Z.facet.1d7 +// CHECK:STDOUT: specific @CC(constants.%Z.facet.0b6) { +// CHECK:STDOUT: %D.loc11_11.1 => constants.%Z.facet.0b6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CC.as.Z.impl(constants.%E) { // CHECK:STDOUT: %E.loc12_15.2 => constants.%E -// CHECK:STDOUT: %DD.loc12_31.2 => constants.%DD.225 -// CHECK:STDOUT: %.loc12_32.2 => constants.%.b77 +// CHECK:STDOUT: %DD.loc12_31.2 => constants.%DD.699 +// CHECK:STDOUT: %.loc12_32.2 => constants.%.8d3 // CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.lookup_impl_witness -// CHECK:STDOUT: %Z.facet.loc12_32.2 => constants.%Z.facet.1d7 -// CHECK:STDOUT: %CC.loc12_32.2 => constants.%CC.ceb -// CHECK:STDOUT: %Z.impl_witness.loc12_39.2 => constants.%Z.impl_witness.9ea +// CHECK:STDOUT: %Z.facet.loc12_32.2 => constants.%Z.facet.0b6 +// CHECK:STDOUT: %CC.loc12_32.2 => constants.%CC.2a8 +// CHECK:STDOUT: %Z.impl_witness.loc12_39.2 => constants.%Z.impl_witness.458 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet.483) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet.2d1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1930,24 +1930,24 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @DD.as.Z.impl(constants.%EE) { // CHECK:STDOUT: %E.loc9_15.2 => constants.%EE -// CHECK:STDOUT: %DD.loc9_28.2 => constants.%DD.72f -// CHECK:STDOUT: %Z.impl_witness.loc9_35.2 => constants.%Z.impl_witness.6ce +// CHECK:STDOUT: %DD.loc9_28.2 => constants.%DD.cfc +// CHECK:STDOUT: %Z.impl_witness.loc9_35.2 => constants.%Z.impl_witness.7dd // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @CC(constants.%Z.facet.9ec) { -// CHECK:STDOUT: %D.loc11_11.1 => constants.%Z.facet.9ec +// CHECK:STDOUT: specific @CC(constants.%Z.facet.da0) { +// CHECK:STDOUT: %D.loc11_11.1 => constants.%Z.facet.da0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CC.as.Z.impl(constants.%EE) { // CHECK:STDOUT: %E.loc12_15.2 => constants.%EE -// CHECK:STDOUT: %DD.loc12_31.2 => constants.%DD.72f -// CHECK:STDOUT: %.loc12_32.2 => constants.%.57f -// CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.impl_witness.6ce -// CHECK:STDOUT: %Z.facet.loc12_32.2 => constants.%Z.facet.9ec -// CHECK:STDOUT: %CC.loc12_32.2 => constants.%CC.42c -// CHECK:STDOUT: %Z.impl_witness.loc12_39.2 => constants.%Z.impl_witness.4da +// CHECK:STDOUT: %DD.loc12_31.2 => constants.%DD.cfc +// CHECK:STDOUT: %.loc12_32.2 => constants.%.061 +// CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.impl_witness.7dd +// CHECK:STDOUT: %Z.facet.loc12_32.2 => constants.%Z.facet.da0 +// CHECK:STDOUT: %CC.loc12_32.2 => constants.%CC.a5a +// CHECK:STDOUT: %Z.impl_witness.loc12_39.2 => constants.%Z.impl_witness.df9 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/generic/deduce_nested_facet_value.carbon b/toolchain/check/testdata/function/generic/deduce_nested_facet_value.carbon index d2b14ee85eec..8b9f48912622 100644 --- a/toolchain/check/testdata/function/generic/deduce_nested_facet_value.carbon +++ b/toolchain/check/testdata/function/generic/deduce_nested_facet_value.carbon @@ -41,50 +41,50 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] -// CHECK:STDOUT: %Self.d9e: %Y.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.765: %Y.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %W.type: type = facet_type <@W> [concrete] -// CHECK:STDOUT: %Self.a78: %W.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.dff: %W.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %DD: type = class_type @DD [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Y.impl_witness: = impl_witness @DD.as.Y.impl.%Y.impl_witness_table [concrete] -// CHECK:STDOUT: %Y.facet.a3e: %Y.type = facet_value %DD, (%Y.impl_witness) [concrete] +// CHECK:STDOUT: %Y.facet.2a4: %Y.type = facet_value %DD, (%Y.impl_witness) [concrete] // CHECK:STDOUT: %W.impl_witness: = impl_witness @DD.as.W.impl.%W.impl_witness_table [concrete] // CHECK:STDOUT: %W.facet: %W.type = facet_value %DD, (%W.impl_witness) [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.58d: type = pattern_type %Y.type [concrete] +// CHECK:STDOUT: %pattern_type.cfb: type = pattern_type %Y.type [concrete] // CHECK:STDOUT: %D: %Y.type = symbolic_binding D, 0 [symbolic] // CHECK:STDOUT: %CC.type: type = generic_class_type @CC [concrete] // CHECK:STDOUT: %CC.generic: %CC.type = struct_value () [concrete] -// CHECK:STDOUT: %CC.58a: type = class_type @CC, @CC(%D) [symbolic] +// CHECK:STDOUT: %CC.b97: type = class_type @CC, @CC(%D) [symbolic] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.91f: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %BitAndWith.type.fd8: type = generic_interface_type @BitAndWith [concrete] -// CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.fd8 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.2af: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete] +// CHECK:STDOUT: %Self.cb6: %Z.type = symbolic_binding Self, 0 [symbolic] +// 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] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.2af = facet_value type, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.5d1: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %.9ee: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.5d1, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %Y.type, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %facet_type: type = facet_type <@Y & @W> [concrete] -// CHECK:STDOUT: %pattern_type.6e5: type = pattern_type %facet_type [concrete] +// CHECK:STDOUT: %pattern_type.bd4: type = pattern_type %facet_type [concrete] // CHECK:STDOUT: %E: %facet_type = symbolic_binding E, 0 [symbolic] // CHECK:STDOUT: %E.as_type: type = facet_access_type %E [symbolic] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %E, @Y [symbolic] -// CHECK:STDOUT: %Y.facet.edf: %Y.type = facet_value %E.as_type, (%Y.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %CC.9bc: type = class_type @CC, @CC(%Y.facet.edf) [symbolic] -// CHECK:STDOUT: %Z.impl_witness.327: = impl_witness @CC.as.Z.impl.%Z.impl_witness_table, @CC.as.Z.impl(%E) [symbolic] -// CHECK:STDOUT: %Z.facet.6fc: %Z.type = facet_value %CC.9bc, (%Z.impl_witness.327) [symbolic] +// CHECK:STDOUT: %Y.facet.18f: %Y.type = facet_value %E.as_type, (%Y.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %CC.db5: type = class_type @CC, @CC(%Y.facet.18f) [symbolic] +// CHECK:STDOUT: %Z.impl_witness.6a9: = impl_witness @CC.as.Z.impl.%Z.impl_witness_table, @CC.as.Z.impl(%E) [symbolic] +// CHECK:STDOUT: %Z.facet.674: %Z.type = facet_value %CC.db5, (%Z.impl_witness.6a9) [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %CC.379: type = class_type @CC, @CC(%Y.facet.a3e) [concrete] +// CHECK:STDOUT: %CC.d62: type = class_type @CC, @CC(%Y.facet.2a4) [concrete] // CHECK:STDOUT: %facet_value: %facet_type = facet_value %DD, (%Y.impl_witness, %W.impl_witness) [concrete] -// CHECK:STDOUT: %Z.impl_witness.7d9: = impl_witness @CC.as.Z.impl.%Z.impl_witness_table, @CC.as.Z.impl(%facet_value) [concrete] -// CHECK:STDOUT: %Z.facet.607: %Z.type = facet_value %CC.379, (%Z.impl_witness.7d9) [concrete] +// CHECK:STDOUT: %Z.impl_witness.b3a: = impl_witness @CC.as.Z.impl.%Z.impl_witness_table, @CC.as.Z.impl(%facet_value) [concrete] +// CHECK:STDOUT: %Z.facet.737: %Z.type = facet_value %CC.d62, (%Z.impl_witness.b3a) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -93,9 +93,9 @@ fn F() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.fd8 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @type.as.BitAndWith.impl [concrete] +// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.a06 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @type.as.BitAndWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -121,7 +121,7 @@ fn F() { // CHECK:STDOUT: %W.ref: type = name_ref W, file.%W.decl [concrete = constants.%W.type] // CHECK:STDOUT: } // CHECK:STDOUT: %CC.decl: %CC.type = class_decl @CC [concrete = constants.%CC.generic] { -// CHECK:STDOUT: %D.patt: %pattern_type.58d = symbolic_binding_pattern D, 0 [concrete] +// CHECK:STDOUT: %D.patt: %pattern_type.cfb = symbolic_binding_pattern D, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc12: type = splice_block %Y.ref [concrete = constants.%Y.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -131,20 +131,20 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %Z.decl: type = interface_decl @Z [concrete = constants.%Z.type] {} {} // CHECK:STDOUT: impl_decl @CC.as.Z.impl [concrete] { -// CHECK:STDOUT: %E.patt: %pattern_type.6e5 = symbolic_binding_pattern E, 0 [concrete] +// CHECK:STDOUT: %E.patt: %pattern_type.bd4 = symbolic_binding_pattern E, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %CC.ref: %CC.type = name_ref CC, file.%CC.decl [concrete = constants.%CC.generic] // CHECK:STDOUT: %E.ref: %facet_type = name_ref E, %E.loc19_15.1 [symbolic = %E.loc19_15.2 (constants.%E)] // CHECK:STDOUT: %E.as_type.loc19_29.1: type = facet_access_type %E.ref [symbolic = %E.as_type.loc19_29.2 (constants.%E.as_type)] -// CHECK:STDOUT: %Y.facet.loc19_29.1: %Y.type = facet_value %E.as_type.loc19_29.1, (constants.%Y.lookup_impl_witness) [symbolic = %Y.facet.loc19_29.2 (constants.%Y.facet.edf)] -// CHECK:STDOUT: %.loc19_29: %Y.type = converted %E.ref, %Y.facet.loc19_29.1 [symbolic = %Y.facet.loc19_29.2 (constants.%Y.facet.edf)] -// CHECK:STDOUT: %CC.loc19_29.1: type = class_type @CC, @CC(constants.%Y.facet.edf) [symbolic = %CC.loc19_29.2 (constants.%CC.9bc)] +// CHECK:STDOUT: %Y.facet.loc19_29.1: %Y.type = facet_value %E.as_type.loc19_29.1, (constants.%Y.lookup_impl_witness) [symbolic = %Y.facet.loc19_29.2 (constants.%Y.facet.18f)] +// CHECK:STDOUT: %.loc19_29: %Y.type = converted %E.ref, %Y.facet.loc19_29.1 [symbolic = %Y.facet.loc19_29.2 (constants.%Y.facet.18f)] +// CHECK:STDOUT: %CC.loc19_29.1: type = class_type @CC, @CC(constants.%Y.facet.18f) [symbolic = %CC.loc19_29.2 (constants.%CC.db5)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: %.loc19_20.1: type = splice_block %.loc19_20.3 [concrete = constants.%facet_type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: %W.ref: type = name_ref W, file.%W.decl [concrete = constants.%W.type] -// CHECK:STDOUT: %impl.elem0: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %Y.ref, %impl.elem0 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method(%Y.ref, %W.ref) [concrete = constants.%facet_type] // CHECK:STDOUT: %.loc19_20.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type] @@ -156,7 +156,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Y { -// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d9e] +// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = constants.%Self.765] // CHECK:STDOUT: %Y.WithSelf.decl = interface_with_self_decl @Y [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -167,7 +167,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @W { -// CHECK:STDOUT: %Self: %W.type = symbolic_binding Self, 0 [symbolic = constants.%Self.a78] +// CHECK:STDOUT: %Self: %W.type = symbolic_binding Self, 0 [symbolic = constants.%Self.dff] // CHECK:STDOUT: %W.WithSelf.decl = interface_with_self_decl @W [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -178,7 +178,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.91f] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.cb6] // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -210,15 +210,15 @@ fn F() { // CHECK:STDOUT: %E.loc19_15.2: %facet_type = symbolic_binding E, 0 [symbolic = %E.loc19_15.2 (constants.%E)] // CHECK:STDOUT: %E.as_type.loc19_29.2: type = facet_access_type %E.loc19_15.2 [symbolic = %E.as_type.loc19_29.2 (constants.%E.as_type)] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %E.loc19_15.2, @Y [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness)] -// CHECK:STDOUT: %Y.facet.loc19_29.2: %Y.type = facet_value %E.as_type.loc19_29.2, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc19_29.2 (constants.%Y.facet.edf)] -// CHECK:STDOUT: %CC.loc19_29.2: type = class_type @CC, @CC(%Y.facet.loc19_29.2) [symbolic = %CC.loc19_29.2 (constants.%CC.9bc)] -// CHECK:STDOUT: %Z.impl_witness.loc19_36.2: = impl_witness %Z.impl_witness_table, @CC.as.Z.impl(%E.loc19_15.2) [symbolic = %Z.impl_witness.loc19_36.2 (constants.%Z.impl_witness.327)] +// CHECK:STDOUT: %Y.facet.loc19_29.2: %Y.type = facet_value %E.as_type.loc19_29.2, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc19_29.2 (constants.%Y.facet.18f)] +// CHECK:STDOUT: %CC.loc19_29.2: type = class_type @CC, @CC(%Y.facet.loc19_29.2) [symbolic = %CC.loc19_29.2 (constants.%CC.db5)] +// CHECK:STDOUT: %Z.impl_witness.loc19_36.2: = impl_witness %Z.impl_witness_table, @CC.as.Z.impl(%E.loc19_15.2) [symbolic = %Z.impl_witness.loc19_36.2 (constants.%Z.impl_witness.6a9)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %CC.loc19_29.1 as %Z.ref { // CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (), @CC.as.Z.impl [concrete] -// CHECK:STDOUT: %Z.impl_witness.loc19_36.1: = impl_witness %Z.impl_witness_table, @CC.as.Z.impl(constants.%E) [symbolic = %Z.impl_witness.loc19_36.2 (constants.%Z.impl_witness.327)] +// CHECK:STDOUT: %Z.impl_witness.loc19_36.1: = impl_witness %Z.impl_witness_table, @CC.as.Z.impl(constants.%E) [symbolic = %Z.impl_witness.loc19_36.2 (constants.%Z.impl_witness.6a9)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %Z.ref @@ -244,7 +244,7 @@ fn F() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%CC.58a +// CHECK:STDOUT: .Self = constants.%CC.b97 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -252,24 +252,24 @@ fn F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %CC.ref: %CC.type = name_ref CC, file.%CC.decl [concrete = constants.%CC.generic] // CHECK:STDOUT: %DD.ref: type = name_ref DD, file.%DD.decl [concrete = constants.%DD] -// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %DD.ref, (constants.%Y.impl_witness) [concrete = constants.%Y.facet.a3e] -// CHECK:STDOUT: %.loc22_9: %Y.type = converted %DD.ref, %Y.facet [concrete = constants.%Y.facet.a3e] -// CHECK:STDOUT: %CC: type = class_type @CC, @CC(constants.%Y.facet.a3e) [concrete = constants.%CC.379] +// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %DD.ref, (constants.%Y.impl_witness) [concrete = constants.%Y.facet.2a4] +// CHECK:STDOUT: %.loc22_9: %Y.type = converted %DD.ref, %Y.facet [concrete = constants.%Y.facet.2a4] +// CHECK:STDOUT: %CC: type = class_type @CC, @CC(constants.%Y.facet.2a4) [concrete = constants.%CC.d62] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %CC, (constants.%Z.impl_witness.7d9) [concrete = constants.%Z.facet.607] -// CHECK:STDOUT: %.loc22_12: %Z.type = converted %CC, %Z.facet [concrete = constants.%Z.facet.607] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %CC, (constants.%Z.impl_witness.b3a) [concrete = constants.%Z.facet.737] +// CHECK:STDOUT: %.loc22_12: %Z.type = converted %CC, %Z.facet [concrete = constants.%Z.facet.737] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.d9e) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.765) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @W.WithSelf(constants.%Self.a78) { +// CHECK:STDOUT: specific @W.WithSelf(constants.%Self.dff) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet.a3e) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet.2a4) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -281,38 +281,38 @@ fn F() { // CHECK:STDOUT: %D.loc12_11.1 => constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.91f) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.cb6) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @CC(constants.%Y.facet.edf) { -// CHECK:STDOUT: %D.loc12_11.1 => constants.%Y.facet.edf +// CHECK:STDOUT: specific @CC(constants.%Y.facet.18f) { +// CHECK:STDOUT: %D.loc12_11.1 => constants.%Y.facet.18f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CC.as.Z.impl(constants.%E) { // CHECK:STDOUT: %E.loc19_15.2 => constants.%E // CHECK:STDOUT: %E.as_type.loc19_29.2 => constants.%E.as_type // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness -// CHECK:STDOUT: %Y.facet.loc19_29.2 => constants.%Y.facet.edf -// CHECK:STDOUT: %CC.loc19_29.2 => constants.%CC.9bc -// CHECK:STDOUT: %Z.impl_witness.loc19_36.2 => constants.%Z.impl_witness.327 +// CHECK:STDOUT: %Y.facet.loc19_29.2 => constants.%Y.facet.18f +// CHECK:STDOUT: %CC.loc19_29.2 => constants.%CC.db5 +// CHECK:STDOUT: %Z.impl_witness.loc19_36.2 => constants.%Z.impl_witness.6a9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet.6fc) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet.674) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @CC(constants.%Y.facet.a3e) { -// CHECK:STDOUT: %D.loc12_11.1 => constants.%Y.facet.a3e +// CHECK:STDOUT: specific @CC(constants.%Y.facet.2a4) { +// CHECK:STDOUT: %D.loc12_11.1 => constants.%Y.facet.2a4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CC.as.Z.impl(constants.%facet_value) { // CHECK:STDOUT: %E.loc19_15.2 => constants.%facet_value // CHECK:STDOUT: %E.as_type.loc19_29.2 => constants.%DD // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.impl_witness -// CHECK:STDOUT: %Y.facet.loc19_29.2 => constants.%Y.facet.a3e -// CHECK:STDOUT: %CC.loc19_29.2 => constants.%CC.379 -// CHECK:STDOUT: %Z.impl_witness.loc19_36.2 => constants.%Z.impl_witness.7d9 +// CHECK:STDOUT: %Y.facet.loc19_29.2 => constants.%Y.facet.2a4 +// CHECK:STDOUT: %CC.loc19_29.2 => constants.%CC.d62 +// CHECK:STDOUT: %Z.impl_witness.loc19_36.2 => constants.%Z.impl_witness.b3a // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/generic/fail_deduce_imported_function.carbon b/toolchain/check/testdata/function/generic/fail_deduce_imported_function.carbon index 314e6c701f8a..31eb935e7b63 100644 --- a/toolchain/check/testdata/function/generic/fail_deduce_imported_function.carbon +++ b/toolchain/check/testdata/function/generic/fail_deduce_imported_function.carbon @@ -52,11 +52,11 @@ fn B() { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.9ba: type = pattern_type %Z.type [concrete] +// CHECK:STDOUT: %pattern_type.1d1: type = pattern_type %Z.type [concrete] // CHECK:STDOUT: %T: %Z.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T.as_type} [symbolic] -// CHECK:STDOUT: %pattern_type.ddc: type = pattern_type %struct_type.a [symbolic] +// CHECK:STDOUT: %pattern_type.662: type = pattern_type %struct_type.a [symbolic] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a [symbolic] @@ -69,9 +69,9 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: %Z.decl: type = interface_decl @Z [concrete = constants.%Z.type] {} {} // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %T.patt: %pattern_type.9ba = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @A.%pattern_type (%pattern_type.ddc) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @A.%pattern_type (%pattern_type.ddc) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.1d1 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %x.param_patt: @A.%pattern_type (%pattern_type.662) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @A.%pattern_type (%pattern_type.662) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_10: type = splice_block %Z.ref [concrete = constants.%Z.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -104,7 +104,7 @@ fn B() { // CHECK:STDOUT: %T.loc4_7.1: %Z.type = symbolic_binding T, 0 [symbolic = %T.loc4_7.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc4_28.1: type = facet_access_type %T.loc4_7.1 [symbolic = %T.as_type.loc4_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %struct_type.a.loc4_29.1: type = struct_type {.a: @A.%T.as_type.loc4_28.1 (%T.as_type)} [symbolic = %struct_type.a.loc4_29.1 (constants.%struct_type.a)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.loc4_29.1 [symbolic = %pattern_type (constants.%pattern_type.ddc)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.loc4_29.1 [symbolic = %pattern_type (constants.%pattern_type.662)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a.loc4_29.1 [symbolic = %require_complete (constants.%require_complete)] @@ -123,7 +123,7 @@ fn B() { // CHECK:STDOUT: %T.loc4_7.1 => constants.%T // CHECK:STDOUT: %T.as_type.loc4_28.1 => constants.%T.as_type // CHECK:STDOUT: %struct_type.a.loc4_29.1 => constants.%struct_type.a -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ddc +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.662 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduce_imported_function.carbon @@ -133,13 +133,13 @@ fn B() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %pattern_type.9ba: type = pattern_type %Z.type [concrete] +// CHECK:STDOUT: %pattern_type.1d1: type = pattern_type %Z.type [concrete] // CHECK:STDOUT: %T: %Z.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T.as_type} [symbolic] -// CHECK:STDOUT: %pattern_type.ddc: type = pattern_type %struct_type.a [symbolic] -// CHECK:STDOUT: %A.type.f92: type = fn_type @A.loc4 [concrete] -// CHECK:STDOUT: %A.c9c: %A.type.f92 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.662: type = pattern_type %struct_type.a [symbolic] +// CHECK:STDOUT: %A.type.9f4: type = fn_type @A.loc4 [concrete] +// CHECK:STDOUT: %A.921: %A.type.9f4 = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a [symbolic] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] @@ -147,8 +147,8 @@ fn B() { // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.b: type = struct_type {.b: %empty_struct_type} [concrete] // CHECK:STDOUT: %struct: %struct_type.b = struct_value (%empty_struct) [concrete] -// CHECK:STDOUT: %A.type.d91: type = fn_type @A.1 [concrete] -// CHECK:STDOUT: %A.718: %A.type.d91 = struct_value () [concrete] +// CHECK:STDOUT: %A.type.42a: type = fn_type @A.1 [concrete] +// CHECK:STDOUT: %A.b9a: %A.type.42a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -158,9 +158,9 @@ fn B() { // CHECK:STDOUT: import Lib//default // CHECK:STDOUT: } // CHECK:STDOUT: %Lib.Z: type = import_ref Lib//default, Z, loaded [concrete = constants.%Z.type] -// CHECK:STDOUT: %Lib.import_ref.481 = import_ref Lib//default, loc3_13, unloaded -// CHECK:STDOUT: %Lib.A: %A.type.d91 = import_ref Lib//default, A, loaded [concrete = constants.%A.718] -// CHECK:STDOUT: %Lib.import_ref.07f: %Z.type = import_ref Lib//default, loc4_7, loaded [symbolic = @A.1.%T (constants.%T)] +// CHECK:STDOUT: %Lib.import_ref.4cd = import_ref Lib//default, loc3_13, unloaded +// CHECK:STDOUT: %Lib.A: %A.type.42a = import_ref Lib//default, A, loaded [concrete = constants.%A.b9a] +// CHECK:STDOUT: %Lib.import_ref.78f: %Z.type = import_ref Lib//default, loc4_7, loaded [symbolic = @A.1.%T (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -170,10 +170,10 @@ fn B() { // CHECK:STDOUT: .B = %B.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Lib.import = import Lib -// CHECK:STDOUT: %A.decl: %A.type.f92 = fn_decl @A.loc4 [concrete = constants.%A.c9c] { -// CHECK:STDOUT: %T.patt: %pattern_type.9ba = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @A.loc4.%pattern_type (%pattern_type.ddc) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @A.loc4.%pattern_type (%pattern_type.ddc) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %A.decl: %A.type.9f4 = fn_decl @A.loc4 [concrete = constants.%A.921] { +// CHECK:STDOUT: %T.patt: %pattern_type.1d1 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %x.param_patt: @A.loc4.%pattern_type (%pattern_type.662) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @A.loc4.%pattern_type (%pattern_type.662) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_13: type = splice_block %Z.ref [concrete = constants.%Z.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -195,7 +195,7 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: interface @Z [from "lib.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Lib.import_ref.481 +// CHECK:STDOUT: .Self = imports.%Lib.import_ref.4cd // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -205,7 +205,7 @@ fn B() { // CHECK:STDOUT: %T.loc4_7.1: %Z.type = symbolic_binding T, 0 [symbolic = %T.loc4_7.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc4_32.1: type = facet_access_type %T.loc4_7.1 [symbolic = %T.as_type.loc4_32.1 (constants.%T.as_type)] // CHECK:STDOUT: %struct_type.a.loc4_33.1: type = struct_type {.a: @A.loc4.%T.as_type.loc4_32.1 (%T.as_type)} [symbolic = %struct_type.a.loc4_33.1 (constants.%struct_type.a)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.loc4_33.1 [symbolic = %pattern_type (constants.%pattern_type.ddc)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.loc4_33.1 [symbolic = %pattern_type (constants.%pattern_type.662)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a.loc4_33.1 [symbolic = %require_complete (constants.%require_complete)] @@ -218,21 +218,21 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: fn @B() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %A.ref.loc14: %A.type.f92 = name_ref A, file.%A.decl [concrete = constants.%A.c9c] +// CHECK:STDOUT: %A.ref.loc14: %A.type.9f4 = name_ref A, file.%A.decl [concrete = constants.%A.921] // CHECK:STDOUT: %.loc14_12: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc14_13: %struct_type.b = struct_literal (%.loc14_12) [concrete = constants.%struct] // CHECK:STDOUT: %Lib.ref: = name_ref Lib, imports.%Lib [concrete = imports.%Lib] -// CHECK:STDOUT: %A.ref.loc24: %A.type.d91 = name_ref A, imports.%Lib.A [concrete = constants.%A.718] +// CHECK:STDOUT: %A.ref.loc24: %A.type.42a = name_ref A, imports.%Lib.A [concrete = constants.%A.b9a] // CHECK:STDOUT: %.loc24_16: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc24_17: %struct_type.b = struct_literal (%.loc24_16) [concrete = constants.%struct] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @A.1(imports.%Lib.import_ref.07f: %Z.type) [from "lib.carbon"] { +// CHECK:STDOUT: generic fn @A.1(imports.%Lib.import_ref.78f: %Z.type) [from "lib.carbon"] { // CHECK:STDOUT: %T: %Z.type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic = %T.as_type (constants.%T.as_type)] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: @A.1.%T.as_type (%T.as_type)} [symbolic = %struct_type.a (constants.%struct_type.a)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a [symbolic = %pattern_type (constants.%pattern_type.ddc)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a [symbolic = %pattern_type (constants.%pattern_type.662)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a [symbolic = %require_complete (constants.%require_complete)] @@ -248,13 +248,13 @@ fn B() { // CHECK:STDOUT: %T.loc4_7.1 => constants.%T // CHECK:STDOUT: %T.as_type.loc4_32.1 => constants.%T.as_type // CHECK:STDOUT: %struct_type.a.loc4_33.1 => constants.%struct_type.a -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ddc +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.662 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.1(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %T.as_type => constants.%T.as_type // CHECK:STDOUT: %struct_type.a => constants.%struct_type.a -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ddc +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.662 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/import_specific.carbon b/toolchain/check/testdata/function/generic/import_specific.carbon index ee1974b17822..5f791e0237bf 100644 --- a/toolchain/check/testdata/function/generic/import_specific.carbon +++ b/toolchain/check/testdata/function/generic/import_specific.carbon @@ -132,11 +132,11 @@ fn H() { // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %T.67db0b.1: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %F.specific_fn.076: = specific_function %F, @F(%C) [concrete] +// CHECK:STDOUT: %F.specific_fn.e0d: = specific_function %F, @F(%C) [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %T.67db0b.2: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %F.specific_fn.d7f: = specific_function %F, @F(%T.67db0b.2) [symbolic] +// CHECK:STDOUT: %F.specific_fn.eab: = specific_function %F, @F(%T.67db0b.2) [symbolic] // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -171,7 +171,7 @@ fn H() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%Main.F [concrete = constants.%F] // CHECK:STDOUT: %C.ref.loc10: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.076] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.e0d] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn() // CHECK:STDOUT: %G.ref: %G.type = name_ref G, imports.%Main.G [concrete = constants.%G] // CHECK:STDOUT: %C.ref.loc12: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -192,7 +192,7 @@ fn H() { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T.67db0b.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.specific_fn: = specific_function constants.%F, @F(%T) [symbolic = %F.specific_fn (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %F.specific_fn: = specific_function constants.%F, @F(%T) [symbolic = %F.specific_fn (constants.%F.specific_fn.eab)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -221,6 +221,6 @@ fn H() { // CHECK:STDOUT: %T => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.specific_fn => constants.%F.specific_fn.076 +// CHECK:STDOUT: %F.specific_fn => constants.%F.specific_fn.e0d // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/indirect_generic_type.carbon b/toolchain/check/testdata/function/generic/indirect_generic_type.carbon index 08494a1b53c0..ffbf7ddcd4da 100644 --- a/toolchain/check/testdata/function/generic/indirect_generic_type.carbon +++ b/toolchain/check/testdata/function/generic/indirect_generic_type.carbon @@ -30,13 +30,13 @@ fn F(T:! type, p: T**) -> T* { // CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr.e8f [symbolic] // CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2bf: = lookup_impl_witness %ptr.e8f, @Copy [symbolic] -// CHECK:STDOUT: %.b6a: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e8f, (%Copy.lookup_impl_witness.2bf) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.72b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.72b, %Copy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.8a3: %.39b = impl_witness_access %Copy.lookup_impl_witness.2bf, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a13: = specific_impl_function %impl.elem0.8a3, @Copy.WithSelf.Op(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.1da: = lookup_impl_witness %ptr.e8f, @Copy [symbolic] +// CHECK:STDOUT: %.0e9: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e8f, (%Copy.lookup_impl_witness.1da) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.884: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] +// CHECK:STDOUT: %.be5: type = fn_type_with_self_type %Copy.WithSelf.Op.type.884, %Copy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.484: %.be5 = impl_witness_access %Copy.lookup_impl_witness.1da, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.a76: = specific_impl_function %impl.elem0.484, @Copy.WithSelf.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc4_7.2: type) { @@ -44,22 +44,22 @@ fn F(T:! type, p: T**) -> T* { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %.loc6_10.3: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc4_7.1) [symbolic = %.loc6_10.3 (constants.%.b6a)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc4_20.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2bf)] +// CHECK:STDOUT: %.loc6_10.3: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc4_7.1) [symbolic = %.loc6_10.3 (constants.%.0e9)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc4_20.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.1da)] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc4_20.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.72b)] -// CHECK:STDOUT: %.loc6_10.4: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc6_10.4 (constants.%.39b)] -// CHECK:STDOUT: %impl.elem0.loc6_10.2: @F.%.loc6_10.4 (%.39b) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.8a3)] -// CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.a13)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.884)] +// CHECK:STDOUT: %.loc6_10.4: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc6_10.4 (constants.%.be5)] +// CHECK:STDOUT: %impl.elem0.loc6_10.2: @F.%.loc6_10.4 (%.be5) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.484)] +// CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.a76)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%p.param: @F.%ptr.loc4_21.1 (%ptr.125)) -> out %return.param: @F.%ptr.loc4_20.1 (%ptr.e8f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %p.ref: @F.%ptr.loc4_21.1 (%ptr.125) = name_ref p, %p // CHECK:STDOUT: %.loc6_10.1: ref @F.%ptr.loc4_20.1 (%ptr.e8f) = deref %p.ref // CHECK:STDOUT: %.loc6_10.2: @F.%ptr.loc4_20.1 (%ptr.e8f) = acquire_value %.loc6_10.1 -// CHECK:STDOUT: %impl.elem0.loc6_10.1: @F.%.loc6_10.4 (%.39b) = impl_witness_access constants.%Copy.lookup_impl_witness.2bf, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.8a3)] +// CHECK:STDOUT: %impl.elem0.loc6_10.1: @F.%.loc6_10.4 (%.be5) = impl_witness_access constants.%Copy.lookup_impl_witness.1da, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.484)] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %.loc6_10.2, %impl.elem0.loc6_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.a13)] +// CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.a76)] // CHECK:STDOUT: %bound_method.loc6_10.2: = bound_method %.loc6_10.2, %specific_impl_fn.loc6_10.1 // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @F.%ptr.loc4_20.1 (%ptr.e8f) = call %bound_method.loc6_10.2(%.loc6_10.2) // CHECK:STDOUT: return %Copy.WithSelf.Op.call diff --git a/toolchain/check/testdata/function/generic/param_in_type.carbon b/toolchain/check/testdata/function/generic/param_in_type.carbon index a46041a4226c..b2790f805e96 100644 --- a/toolchain/check/testdata/function/generic/param_in_type.carbon +++ b/toolchain/check/testdata/function/generic/param_in_type.carbon @@ -23,27 +23,27 @@ fn F(N:! i32, a: array(i32, N)*); // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %N.bbe: %i32 = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %N.37f: %i32 = symbolic_binding N, 0 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %From: Core.IntLiteral = symbolic_binding From, 0 [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.f73: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.34b: %Int.as.ImplicitAs.impl.Convert.type.f73 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.062: = impl_witness imports.%ImplicitAs.impl_witness_table.eac, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.337: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.64e: %Int.as.ImplicitAs.impl.Convert.type.337 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.ace = facet_value %i32, (%ImplicitAs.impl_witness.062) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b68: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.7a9: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b68, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.bbe, %Int.as.ImplicitAs.impl.Convert.64e [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.64e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method: = bound_method %N.bbe, %Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method(%N.bbe) [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.48d: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.0f9: %Int.as.ImplicitAs.impl.Convert.type.48d = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.416: = impl_witness imports.%ImplicitAs.impl_witness_table.b8b, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.683: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.69e: %Int.as.ImplicitAs.impl.Convert.type.683 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.7cb = facet_value %i32, (%ImplicitAs.impl_witness.416) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.dc6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.b08: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.dc6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.37f, %Int.as.ImplicitAs.impl.Convert.69e [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.69e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method: = bound_method %N.37f, %Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method(%N.37f) [symbolic] // CHECK:STDOUT: %array_type: type = array_type %Int.as.ImplicitAs.impl.Convert.call, %i32 [symbolic] // CHECK:STDOUT: %ptr: type = ptr_type %array_type [symbolic] -// CHECK:STDOUT: %pattern_type.0c7: type = pattern_type %ptr [symbolic] +// CHECK:STDOUT: %pattern_type.5a4: type = pattern_type %ptr [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -56,9 +56,9 @@ fn F(N:! i32, a: array(i32, N)*); // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.835: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.f73) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.34b)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.eac = impl_witness_table (%Core.import_ref.835), @Int.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.32e: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.48d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.0f9)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b8b = impl_witness_table (%Core.import_ref.32e), @Int.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -68,20 +68,20 @@ fn F(N:! i32, a: array(i32, N)*); // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %N.patt: %pattern_type.104 = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.0c7) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.0c7) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.6b6 = symbolic_binding_pattern N, 0 [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.5a4) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.5a4) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_10: type = splice_block %i32.loc15_10 [concrete = constants.%i32] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %i32.loc15_10: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc15_7.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc15_7.1 (constants.%N.bbe)] +// CHECK:STDOUT: %N.loc15_7.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc15_7.1 (constants.%N.37f)] // CHECK:STDOUT: %a.param: @F.%ptr.loc15_31.1 (%ptr) = value_param call_param0 // CHECK:STDOUT: %.loc15_31: type = splice_block %ptr.loc15_31.2 [symbolic = %ptr.loc15_31.1 (constants.%ptr)] { // CHECK:STDOUT: %i32.loc15_24: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc15_7.2 [symbolic = %N.loc15_7.1 (constants.%N.bbe)] -// CHECK:STDOUT: %impl.elem0: %.7a9 = impl_witness_access constants.%ImplicitAs.impl_witness.062, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.64e] +// CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc15_7.2 [symbolic = %N.loc15_7.1 (constants.%N.37f)] +// CHECK:STDOUT: %impl.elem0: %.b08 = impl_witness_access constants.%ImplicitAs.impl_witness.416, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.69e] // CHECK:STDOUT: %bound_method.loc15_29.2: = bound_method %N.ref, %impl.elem0 [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound)] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Int.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Int.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_29.3: = bound_method %N.ref, %specific_fn [symbolic = %bound_method.loc15_29.1 (constants.%bound_method)] @@ -96,24 +96,24 @@ fn F(N:! i32, a: array(i32, N)*); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%N.loc15_7.2: %i32) { -// CHECK:STDOUT: %N.loc15_7.1: %i32 = symbolic_binding N, 0 [symbolic = %N.loc15_7.1 (constants.%N.bbe)] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.loc15_7.1, constants.%Int.as.ImplicitAs.impl.Convert.64e [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound)] +// CHECK:STDOUT: %N.loc15_7.1: %i32 = symbolic_binding N, 0 [symbolic = %N.loc15_7.1 (constants.%N.37f)] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %N.loc15_7.1, constants.%Int.as.ImplicitAs.impl.Convert.69e [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound)] // CHECK:STDOUT: %bound_method.loc15_29.1: = bound_method %N.loc15_7.1, constants.%Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic = %bound_method.loc15_29.1 (constants.%bound_method)] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc15_29.1: init Core.IntLiteral = call %bound_method.loc15_29.1(%N.loc15_7.1) [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc15_29.1 (constants.%Int.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: %array_type.loc15_30.1: type = array_type %Int.as.ImplicitAs.impl.Convert.call.loc15_29.1, constants.%i32 [symbolic = %array_type.loc15_30.1 (constants.%array_type)] // CHECK:STDOUT: %ptr.loc15_31.1: type = ptr_type %array_type.loc15_30.1 [symbolic = %ptr.loc15_31.1 (constants.%ptr)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc15_31.1 [symbolic = %pattern_type (constants.%pattern_type.0c7)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc15_31.1 [symbolic = %pattern_type (constants.%pattern_type.5a4)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%a.param: @F.%ptr.loc15_31.1 (%ptr)); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%N.bbe) { -// CHECK:STDOUT: %N.loc15_7.1 => constants.%N.bbe +// CHECK:STDOUT: specific @F(constants.%N.37f) { +// CHECK:STDOUT: %N.loc15_7.1 => constants.%N.37f // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound => constants.%Int.as.ImplicitAs.impl.Convert.bound // CHECK:STDOUT: %bound_method.loc15_29.1 => constants.%bound_method // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc15_29.1 => constants.%Int.as.ImplicitAs.impl.Convert.call // CHECK:STDOUT: %array_type.loc15_30.1 => constants.%array_type // CHECK:STDOUT: %ptr.loc15_31.1 => constants.%ptr -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0c7 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5a4 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/redeclare.carbon b/toolchain/check/testdata/function/generic/redeclare.carbon index ca4e21ca4ab4..f0fa35a43dd9 100644 --- a/toolchain/check/testdata/function/generic/redeclare.carbon +++ b/toolchain/check/testdata/function/generic/redeclare.carbon @@ -199,13 +199,13 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T [symbolic] // CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr.e8f [symbolic] // CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic] -// CHECK:STDOUT: %F.type.b8d678.1: type = fn_type @F.loc4 [concrete] -// CHECK:STDOUT: %F.7360cc.1: %F.type.b8d678.1 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.eb3ec9.1: type = fn_type @F.loc4 [concrete] +// CHECK:STDOUT: %F.7088cc.1: %F.type.eb3ec9.1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.18e: type = ptr_type %U [symbolic] // CHECK:STDOUT: %.6d8: Core.Form = init_form %ptr.18e [symbolic] // CHECK:STDOUT: %pattern_type.423: type = pattern_type %ptr.18e [symbolic] -// CHECK:STDOUT: %F.type.b8d678.2: type = fn_type @F.loc13 [concrete] -// CHECK:STDOUT: %F.7360cc.2: %F.type.b8d678.2 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.eb3ec9.2: type = fn_type @F.loc13 [concrete] +// CHECK:STDOUT: %F.7088cc.2: %F.type.eb3ec9.2 = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %ptr.18e [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -222,7 +222,7 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: .F = %F.decl.loc4 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %F.decl.loc4: %F.type.b8d678.1 = fn_decl @F.loc4 [concrete = constants.%F.7360cc.1] { +// CHECK:STDOUT: %F.decl.loc4: %F.type.eb3ec9.1 = fn_decl @F.loc4 [concrete = constants.%F.7088cc.1] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc4.%pattern_type (%pattern_type.4f4) = out_param_pattern [concrete] @@ -244,7 +244,7 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %return.param: ref @F.loc4.%ptr.loc4_30.1 (%ptr.e8f) = out_param call_param0 // CHECK:STDOUT: %return: ref @F.loc4.%ptr.loc4_30.1 (%ptr.e8f) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %F.decl.loc13: %F.type.b8d678.2 = fn_decl @F.loc13 [concrete = constants.%F.7360cc.2] { +// CHECK:STDOUT: %F.decl.loc13: %F.type.eb3ec9.2 = fn_decl @F.loc13 [concrete = constants.%F.7088cc.2] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc13.%pattern_type (%pattern_type.423) = out_param_pattern [concrete] @@ -290,7 +290,7 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: @F.loc13.%ptr.loc13_30.1 (%ptr.18e) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %F.type.b8d678.1 = name_ref F, file.%F.decl.loc4 [concrete = constants.%F.7360cc.1] +// CHECK:STDOUT: %F.ref: %F.type.eb3ec9.1 = name_ref F, file.%F.decl.loc4 [concrete = constants.%F.7088cc.1] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T)] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -323,15 +323,15 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] // CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr.e8f [symbolic] // CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic] -// CHECK:STDOUT: %F.type.b8d678.1: type = fn_type @F.loc4 [concrete] -// CHECK:STDOUT: %F.7360cc.1: %F.type.b8d678.1 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.eb3ec9.1: type = fn_type @F.loc4 [concrete] +// CHECK:STDOUT: %F.7088cc.1: %F.type.eb3ec9.1 = struct_value () [concrete] // CHECK:STDOUT: %U.67d: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %T.091: type = symbolic_binding T, 1 [symbolic] // CHECK:STDOUT: %ptr.18e: type = ptr_type %T.091 [symbolic] // CHECK:STDOUT: %.6d8: Core.Form = init_form %ptr.18e [symbolic] // CHECK:STDOUT: %pattern_type.423: type = pattern_type %ptr.18e [symbolic] -// CHECK:STDOUT: %F.type.b8d678.2: type = fn_type @F.loc13 [concrete] -// CHECK:STDOUT: %F.7360cc.2: %F.type.b8d678.2 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.eb3ec9.2: type = fn_type @F.loc13 [concrete] +// CHECK:STDOUT: %F.7088cc.2: %F.type.eb3ec9.2 = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %ptr.18e [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -348,7 +348,7 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: .F = %F.decl.loc4 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %F.decl.loc4: %F.type.b8d678.1 = fn_decl @F.loc4 [concrete = constants.%F.7360cc.1] { +// CHECK:STDOUT: %F.decl.loc4: %F.type.eb3ec9.1 = fn_decl @F.loc4 [concrete = constants.%F.7088cc.1] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc4.%pattern_type (%pattern_type.4f4) = out_param_pattern [concrete] @@ -370,7 +370,7 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %return.param: ref @F.loc4.%ptr.loc4_30.1 (%ptr.e8f) = out_param call_param0 // CHECK:STDOUT: %return: ref @F.loc4.%ptr.loc4_30.1 (%ptr.e8f) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %F.decl.loc13: %F.type.b8d678.2 = fn_decl @F.loc13 [concrete = constants.%F.7360cc.2] { +// CHECK:STDOUT: %F.decl.loc13: %F.type.eb3ec9.2 = fn_decl @F.loc13 [concrete = constants.%F.7088cc.2] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 1 [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc13.%pattern_type (%pattern_type.423) = out_param_pattern [concrete] @@ -416,7 +416,7 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: @F.loc13.%ptr.loc13_37.1 (%ptr.18e) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %F.type.b8d678.1 = name_ref F, file.%F.decl.loc4 [concrete = constants.%F.7360cc.1] +// CHECK:STDOUT: %F.ref: %F.type.eb3ec9.1 = name_ref F, file.%F.decl.loc4 [concrete = constants.%F.7088cc.1] // CHECK:STDOUT: %T.ref.loc21: type = name_ref T, %T.loc13_24.2 [symbolic = %T.loc13_24.1 (constants.%T.091)] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -449,15 +449,15 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %ptr.e8f8f9.1: type = ptr_type %T.67d [symbolic] // CHECK:STDOUT: %.cb6cb9.1: Core.Form = init_form %ptr.e8f8f9.1 [symbolic] // CHECK:STDOUT: %pattern_type.4f4b84.1: type = pattern_type %ptr.e8f8f9.1 [symbolic] -// CHECK:STDOUT: %F.type.b8d678.1: type = fn_type @F.loc4 [concrete] -// CHECK:STDOUT: %F.7360cc.1: %F.type.b8d678.1 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.eb3ec9.1: type = fn_type @F.loc4 [concrete] +// CHECK:STDOUT: %F.7088cc.1: %F.type.eb3ec9.1 = struct_value () [concrete] // CHECK:STDOUT: %U.67d: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %T.091: type = symbolic_binding T, 1 [symbolic] // CHECK:STDOUT: %ptr.e8f8f9.2: type = ptr_type %U.67d [symbolic] // CHECK:STDOUT: %.cb6cb9.2: Core.Form = init_form %ptr.e8f8f9.2 [symbolic] // CHECK:STDOUT: %pattern_type.4f4b84.2: type = pattern_type %ptr.e8f8f9.2 [symbolic] -// CHECK:STDOUT: %F.type.b8d678.2: type = fn_type @F.loc13 [concrete] -// CHECK:STDOUT: %F.7360cc.2: %F.type.b8d678.2 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.eb3ec9.2: type = fn_type @F.loc13 [concrete] +// CHECK:STDOUT: %F.7088cc.2: %F.type.eb3ec9.2 = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %ptr.e8f8f9.2 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -474,7 +474,7 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: .F = %F.decl.loc4 // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %F.decl.loc4: %F.type.b8d678.1 = fn_decl @F.loc4 [concrete = constants.%F.7360cc.1] { +// CHECK:STDOUT: %F.decl.loc4: %F.type.eb3ec9.1 = fn_decl @F.loc4 [concrete = constants.%F.7088cc.1] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc4.%pattern_type (%pattern_type.4f4b84.1) = out_param_pattern [concrete] @@ -496,7 +496,7 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %return.param: ref @F.loc4.%ptr.loc4_30.1 (%ptr.e8f8f9.1) = out_param call_param0 // CHECK:STDOUT: %return: ref @F.loc4.%ptr.loc4_30.1 (%ptr.e8f8f9.1) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %F.decl.loc13: %F.type.b8d678.2 = fn_decl @F.loc13 [concrete = constants.%F.7360cc.2] { +// CHECK:STDOUT: %F.decl.loc13: %F.type.eb3ec9.2 = fn_decl @F.loc13 [concrete = constants.%F.7088cc.2] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 1 [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc13.%pattern_type (%pattern_type.4f4b84.2) = out_param_pattern [concrete] @@ -542,7 +542,7 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: @F.loc13.%ptr.loc13_30.1 (%ptr.e8f8f9.2) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %F.type.b8d678.1 = name_ref F, file.%F.decl.loc4 [concrete = constants.%F.7360cc.1] +// CHECK:STDOUT: %F.ref: %F.type.eb3ec9.1 = name_ref F, file.%F.decl.loc4 [concrete = constants.%F.7088cc.1] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc13_17.2 [symbolic = %T.loc13_17.1 (constants.%T.091)] // 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 d02eabdad532..b5130bb75737 100644 --- a/toolchain/check/testdata/function/generic/resolve_used.carbon +++ b/toolchain/check/testdata/function/generic/resolve_used.carbon @@ -53,46 +53,46 @@ fn CallNegative() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %Int: type = class_type @Int, @Int(%N) [symbolic] -// CHECK:STDOUT: %require_complete.692: = require_complete_type %Int [symbolic] +// CHECK:STDOUT: %require_complete.4df: = require_complete_type %Int [symbolic] // CHECK:STDOUT: %pattern_type.142: type = pattern_type %Int [symbolic] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] // CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness: = lookup_impl_witness %Int, @DefaultOrUnformed [symbolic] -// CHECK:STDOUT: %.0e6: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%Int) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.facet.69b: %DefaultOrUnformed.type = facet_value %Int, (%DefaultOrUnformed.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.cd6: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.69b) [symbolic] -// CHECK:STDOUT: %.a51: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.cd6, %DefaultOrUnformed.facet.69b [symbolic] -// CHECK:STDOUT: %impl.elem0.64e: %.a51 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.f45: = specific_impl_function %impl.elem0.64e, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.69b) [symbolic] +// CHECK:STDOUT: %.386: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%Int) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.facet.e73: %DefaultOrUnformed.type = facet_value %Int, (%DefaultOrUnformed.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.4ac: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.e73) [symbolic] +// CHECK:STDOUT: %.b74: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.4ac, %DefaultOrUnformed.facet.e73 [symbolic] +// CHECK:STDOUT: %impl.elem0.b17: %.b74 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.cf5: = specific_impl_function %impl.elem0.b17, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.e73) [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.c2c: = lookup_impl_witness %Int, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.38c: %Destroy.type = facet_value %Int, (%Destroy.lookup_impl_witness.c2c) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.833: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.38c) [symbolic] -// CHECK:STDOUT: %.b6c: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.833, %Destroy.facet.38c [symbolic] -// CHECK:STDOUT: %impl.elem0.913: %.b6c = impl_witness_access %Destroy.lookup_impl_witness.c2c, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.c0a: = specific_impl_function %impl.elem0.913, @Destroy.WithSelf.Op(%Destroy.facet.38c) [symbolic] +// 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: %.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: %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] // CHECK:STDOUT: %ErrorIfNIsZero.specific_fn: = specific_function %ErrorIfNIsZero, @ErrorIfNIsZero(%int_0) [concrete] // CHECK:STDOUT: %i0: type = class_type @Int, @Int(%int_0) [concrete] -// CHECK:STDOUT: %pattern_type.d92: type = pattern_type %i0 [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.635: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%i0) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.7ca: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%i0) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.67b: %T.as.DefaultOrUnformed.impl.Op.type.7ca = struct_value () [concrete] -// CHECK:STDOUT: %.90a: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%i0) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.fb1: %DefaultOrUnformed.type = facet_value %i0, (%DefaultOrUnformed.impl_witness.635) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.fb6: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.fb1) [concrete] -// CHECK:STDOUT: %.e74: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.fb6, %DefaultOrUnformed.facet.fb1 [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.67b, @T.as.DefaultOrUnformed.impl.Op(%i0) [concrete] +// CHECK:STDOUT: %pattern_type.d0e: type = pattern_type %i0 [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.8d2: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%i0) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.baf: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%i0) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.38a: %T.as.DefaultOrUnformed.impl.Op.type.baf = struct_value () [concrete] +// CHECK:STDOUT: %.060: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%i0) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.4e3: %DefaultOrUnformed.type = facet_value %i0, (%DefaultOrUnformed.impl_witness.8d2) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.7c9: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.4e3) [concrete] +// CHECK:STDOUT: %.21a: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.7c9, %DefaultOrUnformed.facet.4e3 [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.e20: = custom_witness (%Destroy.Op), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.81a: %Destroy.type = facet_value %i0, (%custom_witness.e20) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ee6: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.81a) [concrete] -// CHECK:STDOUT: %.b8c: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.ee6, %Destroy.facet.81a [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -107,8 +107,8 @@ fn CallNegative() { // CHECK:STDOUT: %Core.IntLiteral: %IntLiteral.type = import_ref Core//prelude/parts/int_literal, IntLiteral, loaded [concrete = constants.%IntLiteral] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -140,21 +140,21 @@ fn CallNegative() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Int.loc9_27.2: type = class_type @Int, @Int(%N.loc4_20.1) [symbolic = %Int.loc9_27.2 (constants.%Int)] -// CHECK:STDOUT: %require_complete: = require_complete_type %Int.loc9_27.2 [symbolic = %require_complete (constants.%require_complete.692)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Int.loc9_27.2 [symbolic = %require_complete (constants.%require_complete.4df)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Int.loc9_27.2 [symbolic = %pattern_type (constants.%pattern_type.142)] -// CHECK:STDOUT: %.loc9_28.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%Int.loc9_27.2) [symbolic = %.loc9_28.3 (constants.%.0e6)] +// CHECK:STDOUT: %.loc9_28.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%Int.loc9_27.2) [symbolic = %.loc9_28.3 (constants.%.386)] // CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness: = lookup_impl_witness %Int.loc9_27.2, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness (constants.%DefaultOrUnformed.lookup_impl_witness)] -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc9_28.2: %DefaultOrUnformed.type = facet_value %Int.loc9_27.2, (%DefaultOrUnformed.lookup_impl_witness) [symbolic = %DefaultOrUnformed.facet.loc9_28.2 (constants.%DefaultOrUnformed.facet.69b)] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc9_28.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type (constants.%DefaultOrUnformed.WithSelf.Op.type.cd6)] -// CHECK:STDOUT: %.loc9_28.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type, %DefaultOrUnformed.facet.loc9_28.2 [symbolic = %.loc9_28.4 (constants.%.a51)] -// CHECK:STDOUT: %impl.elem0.loc9_28.2: @ErrorIfNIsZero.%.loc9_28.4 (%.a51) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_28.2 (constants.%impl.elem0.64e)] -// 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.f45)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Int.loc9_27.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.c2c)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Int.loc9_27.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.38c)] -// 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.833)] -// CHECK:STDOUT: %.loc9_3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc9_3 (constants.%.b6c)] -// CHECK:STDOUT: %impl.elem0.loc9_3.2: @ErrorIfNIsZero.%.loc9_3 (%.b6c) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_3.2 (constants.%impl.elem0.913)] -// CHECK:STDOUT: %specific_impl_fn.loc9_3.2: = specific_impl_function %impl.elem0.loc9_3.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc9_3.2 (constants.%specific_impl_fn.c0a)] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc9_28.2: %DefaultOrUnformed.type = facet_value %Int.loc9_27.2, (%DefaultOrUnformed.lookup_impl_witness) [symbolic = %DefaultOrUnformed.facet.loc9_28.2 (constants.%DefaultOrUnformed.facet.e73)] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc9_28.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type (constants.%DefaultOrUnformed.WithSelf.Op.type.4ac)] +// CHECK:STDOUT: %.loc9_28.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type, %DefaultOrUnformed.facet.loc9_28.2 [symbolic = %.loc9_28.4 (constants.%.b74)] +// CHECK:STDOUT: %impl.elem0.loc9_28.2: @ErrorIfNIsZero.%.loc9_28.4 (%.b74) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_28.2 (constants.%impl.elem0.b17)] +// 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: %Destroy.type = facet_value %Int.loc9_27.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.7bb)] +// 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.8f1)] +// CHECK:STDOUT: %.loc9_3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc9_3 (constants.%.2c6)] +// CHECK:STDOUT: %impl.elem0.loc9_3.2: @ErrorIfNIsZero.%.loc9_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) [symbolic = %specific_impl_fn.loc9_3.2 (constants.%specific_impl_fn.693)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -163,12 +163,12 @@ fn CallNegative() { // CHECK:STDOUT: %v.var_patt: @ErrorIfNIsZero.%pattern_type (%pattern_type.142) = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref @ErrorIfNIsZero.%Int.loc9_27.2 (%Int) = var %v.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc9_28.1: %DefaultOrUnformed.type = facet_value constants.%Int, (constants.%DefaultOrUnformed.lookup_impl_witness) [symbolic = %DefaultOrUnformed.facet.loc9_28.2 (constants.%DefaultOrUnformed.facet.69b)] -// CHECK:STDOUT: %.loc9_28.1: %DefaultOrUnformed.type = converted constants.%Int, %DefaultOrUnformed.facet.loc9_28.1 [symbolic = %DefaultOrUnformed.facet.loc9_28.2 (constants.%DefaultOrUnformed.facet.69b)] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc9_28.1: %DefaultOrUnformed.type = facet_value constants.%Int, (constants.%DefaultOrUnformed.lookup_impl_witness) [symbolic = %DefaultOrUnformed.facet.loc9_28.2 (constants.%DefaultOrUnformed.facet.e73)] +// CHECK:STDOUT: %.loc9_28.1: %DefaultOrUnformed.type = converted constants.%Int, %DefaultOrUnformed.facet.loc9_28.1 [symbolic = %DefaultOrUnformed.facet.loc9_28.2 (constants.%DefaultOrUnformed.facet.e73)] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc9_28.1 [symbolic = %Int.loc9_27.2 (constants.%Int)] // CHECK:STDOUT: %.loc9_28.2: type = converted %.loc9_28.1, %as_type [symbolic = %Int.loc9_27.2 (constants.%Int)] -// CHECK:STDOUT: %impl.elem0.loc9_28.1: @ErrorIfNIsZero.%.loc9_28.4 (%.a51) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_28.2 (constants.%impl.elem0.64e)] -// CHECK:STDOUT: %specific_impl_fn.loc9_28.1: = specific_impl_function %impl.elem0.loc9_28.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet.69b) [symbolic = %specific_impl_fn.loc9_28.2 (constants.%specific_impl_fn.f45)] +// CHECK:STDOUT: %impl.elem0.loc9_28.1: @ErrorIfNIsZero.%.loc9_28.4 (%.b74) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_28.2 (constants.%impl.elem0.b17)] +// CHECK:STDOUT: %specific_impl_fn.loc9_28.1: = specific_impl_function %impl.elem0.loc9_28.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet.e73) [symbolic = %specific_impl_fn.loc9_28.2 (constants.%specific_impl_fn.cf5)] // CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.call: init @ErrorIfNIsZero.%Int.loc9_27.2 (%Int) = call %specific_impl_fn.loc9_28.1() // CHECK:STDOUT: assign %v.var, %DefaultOrUnformed.WithSelf.Op.call // CHECK:STDOUT: %.loc9_27: type = splice_block %Int.loc9_27.1 [symbolic = %Int.loc9_27.2 (constants.%Int)] { @@ -178,9 +178,9 @@ fn CallNegative() { // CHECK:STDOUT: %Int.loc9_27.1: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc9_27.2 (constants.%Int)] // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref @ErrorIfNIsZero.%Int.loc9_27.2 (%Int) = ref_binding v, %v.var -// CHECK:STDOUT: %impl.elem0.loc9_3.1: @ErrorIfNIsZero.%.loc9_3 (%.b6c) = impl_witness_access constants.%Destroy.lookup_impl_witness.c2c, element0 [symbolic = %impl.elem0.loc9_3.2 (constants.%impl.elem0.913)] +// CHECK:STDOUT: %impl.elem0.loc9_3.1: @ErrorIfNIsZero.%.loc9_3 (%.2c6) = impl_witness_access constants.%Destroy.lookup_impl_witness.173, element0 [symbolic = %impl.elem0.loc9_3.2 (constants.%impl.elem0.604)] // CHECK:STDOUT: %bound_method.loc9_3.1: = bound_method %v.var, %impl.elem0.loc9_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc9_3.1: = specific_impl_function %impl.elem0.loc9_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.38c) [symbolic = %specific_impl_fn.loc9_3.2 (constants.%specific_impl_fn.c0a)] +// 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: %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 @@ -211,18 +211,18 @@ fn CallNegative() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Int.loc9_27.2 => constants.%i0 // CHECK:STDOUT: %require_complete => -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d92 -// CHECK:STDOUT: %.loc9_28.3 => constants.%.90a -// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness => constants.%DefaultOrUnformed.impl_witness.635 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc9_28.2 => constants.%DefaultOrUnformed.facet.fb1 -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type => constants.%DefaultOrUnformed.WithSelf.Op.type.fb6 -// CHECK:STDOUT: %.loc9_28.4 => constants.%.e74 -// CHECK:STDOUT: %impl.elem0.loc9_28.2 => constants.%T.as.DefaultOrUnformed.impl.Op.67b +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d0e +// CHECK:STDOUT: %.loc9_28.3 => constants.%.060 +// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness => constants.%DefaultOrUnformed.impl_witness.8d2 +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc9_28.2 => constants.%DefaultOrUnformed.facet.4e3 +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type => constants.%DefaultOrUnformed.WithSelf.Op.type.7c9 +// CHECK:STDOUT: %.loc9_28.4 => constants.%.21a +// 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.e20 -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.81a -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.ee6 -// CHECK:STDOUT: %.loc9_3 => constants.%.b8c +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9 +// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.85b +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b7e +// CHECK:STDOUT: %.loc9_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: } diff --git a/toolchain/check/testdata/function/generic/return_slot.carbon b/toolchain/check/testdata/function/generic/return_slot.carbon index a40b62d00af1..41c3286cf3fb 100644 --- a/toolchain/check/testdata/function/generic/return_slot.carbon +++ b/toolchain/check/testdata/function/generic/return_slot.carbon @@ -34,15 +34,15 @@ fn G() { // CHECK:STDOUT: %Wrap.type: type = generic_class_type @Wrap [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Wrap.generic: %Wrap.type = struct_value () [concrete] -// CHECK:STDOUT: %Wrap.0f0: type = class_type @Wrap, @Wrap(%T) [symbolic] +// CHECK:STDOUT: %Wrap.8a2: type = class_type @Wrap, @Wrap(%T) [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %Wrap.Make.type.916: type = fn_type @Wrap.Make, @Wrap(%T) [symbolic] -// CHECK:STDOUT: %Wrap.Make.fbf: %Wrap.Make.type.916 = struct_value () [symbolic] +// CHECK:STDOUT: %Wrap.Make.type.8e1: type = fn_type @Wrap.Make, @Wrap(%T) [symbolic] +// CHECK:STDOUT: %Wrap.Make.813: %Wrap.Make.type.8e1 = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %Wrap.Make.specific_fn.d60: = specific_function %Wrap.Make.fbf, @Wrap.Make(%T) [symbolic] +// CHECK:STDOUT: %Wrap.Make.specific_fn.e89: = specific_function %Wrap.Make.813, @Wrap.Make(%T) [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] @@ -53,36 +53,36 @@ fn G() { // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %array_type [concrete] -// CHECK:STDOUT: %struct_type.arr.43d: type = struct_type {.arr: %array_type} [concrete] -// CHECK:STDOUT: %complete_type.0c2: = complete_type_witness %struct_type.arr.43d [concrete] +// CHECK:STDOUT: %struct_type.arr.fdc: type = struct_type {.arr: %array_type} [concrete] +// CHECK:STDOUT: %complete_type.18e: = complete_type_witness %struct_type.arr.fdc [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Wrap.1cd: type = class_type @Wrap, @Wrap(%i32) [concrete] -// CHECK:STDOUT: %Wrap.Make.type.00b: type = fn_type @Wrap.Make, @Wrap(%i32) [concrete] -// CHECK:STDOUT: %Wrap.Make.8d0: %Wrap.Make.type.00b = struct_value () [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %Wrap.Make.specific_fn.264: = specific_function %Wrap.Make.8d0, @Wrap.Make(%i32) [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Wrap.aab: type = class_type @Wrap, @Wrap(%i32) [concrete] +// CHECK:STDOUT: %Wrap.Make.type.096: type = fn_type @Wrap.Make, @Wrap(%i32) [concrete] +// CHECK:STDOUT: %Wrap.Make.4b7: %Wrap.Make.type.096 = struct_value () [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %Wrap.Make.specific_fn.cb0: = specific_function %Wrap.Make.4b7, @Wrap.Make(%i32) [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: %Wrap.065: type = class_type @Wrap, @Wrap(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %Wrap.Make.type.67f: type = fn_type @Wrap.Make, @Wrap(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %Wrap.Make.7f3: %Wrap.Make.type.67f = struct_value () [concrete] +// CHECK:STDOUT: %Wrap.7ad: type = class_type @Wrap, @Wrap(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Wrap.Make.type.318: type = fn_type @Wrap.Make, @Wrap(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Wrap.Make.26a: %Wrap.Make.type.318 = struct_value () [concrete] // CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete] -// CHECK:STDOUT: %Wrap.Make.specific_fn.2bf: = specific_function %Wrap.Make.7f3, @Wrap.Make(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] -// CHECK:STDOUT: %Wrap.52b: type = class_type @Wrap, @Wrap(%C) [concrete] -// CHECK:STDOUT: %Wrap.Make.type.75a: type = fn_type @Wrap.Make, @Wrap(%C) [concrete] -// CHECK:STDOUT: %Wrap.Make.700: %Wrap.Make.type.75a = struct_value () [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] -// CHECK:STDOUT: %Wrap.Make.specific_fn.baf: = specific_function %Wrap.Make.700, @Wrap.Make(%C) [concrete] +// CHECK:STDOUT: %Wrap.Make.specific_fn.cc3: = specific_function %Wrap.Make.26a, @Wrap.Make(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] +// CHECK:STDOUT: %Wrap.fad: type = class_type @Wrap, @Wrap(%C) [concrete] +// CHECK:STDOUT: %Wrap.Make.type.bd1: type = fn_type @Wrap.Make, @Wrap(%C) [concrete] +// CHECK:STDOUT: %Wrap.Make.83f: %Wrap.Make.type.bd1 = struct_value () [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %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.790b3b.2: type = fn_type @Destroy.Op.loc24_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.5: type = fn_type @Destroy.Op.loc24_3.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.5: %Destroy.Op.type.790b3b.5 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.6: type = fn_type @Destroy.Op.loc23 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [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: %complete_type.782: = complete_type_witness %empty_tuple.type [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -122,11 +122,11 @@ fn G() { // CHECK:STDOUT: %T.loc15_13.1: type = symbolic_binding T, 0 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Wrap.Make.type: type = fn_type @Wrap.Make, @Wrap(%T.loc15_13.1) [symbolic = %Wrap.Make.type (constants.%Wrap.Make.type.916)] -// CHECK:STDOUT: %Wrap.Make: @Wrap.%Wrap.Make.type (%Wrap.Make.type.916) = struct_value () [symbolic = %Wrap.Make (constants.%Wrap.Make.fbf)] +// CHECK:STDOUT: %Wrap.Make.type: type = fn_type @Wrap.Make, @Wrap(%T.loc15_13.1) [symbolic = %Wrap.Make.type (constants.%Wrap.Make.type.8e1)] +// CHECK:STDOUT: %Wrap.Make: @Wrap.%Wrap.Make.type (%Wrap.Make.type.8e1) = struct_value () [symbolic = %Wrap.Make (constants.%Wrap.Make.813)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Wrap.Make.decl: @Wrap.%Wrap.Make.type (%Wrap.Make.type.916) = fn_decl @Wrap.Make [symbolic = @Wrap.%Wrap.Make (constants.%Wrap.Make.fbf)] { +// CHECK:STDOUT: %Wrap.Make.decl: @Wrap.%Wrap.Make.type (%Wrap.Make.type.8e1) = fn_decl @Wrap.Make [symbolic = @Wrap.%Wrap.Make (constants.%Wrap.Make.813)] { // CHECK:STDOUT: %return.param_patt: @Wrap.Make.%pattern_type (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @Wrap.Make.%pattern_type (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { @@ -139,7 +139,7 @@ fn G() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Wrap.0f0 +// CHECK:STDOUT: .Self = constants.%Wrap.8a2 // CHECK:STDOUT: .T = // CHECK:STDOUT: .Make = %Wrap.Make.decl // CHECK:STDOUT: } @@ -147,7 +147,7 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %.loc19: %C.elem = field_decl arr, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.arr.43d [concrete = constants.%complete_type.0c2] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.arr.fdc [concrete = constants.%complete_type.18e] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -162,15 +162,15 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic = %require_complete (constants.%require_complete.944)] -// CHECK:STDOUT: %Wrap.Make.type: type = fn_type @Wrap.Make, @Wrap(%T) [symbolic = %Wrap.Make.type (constants.%Wrap.Make.type.916)] -// CHECK:STDOUT: %Wrap.Make: @Wrap.Make.%Wrap.Make.type (%Wrap.Make.type.916) = struct_value () [symbolic = %Wrap.Make (constants.%Wrap.Make.fbf)] -// CHECK:STDOUT: %Wrap.Make.specific_fn.loc16_27.2: = specific_function %Wrap.Make, @Wrap.Make(%T) [symbolic = %Wrap.Make.specific_fn.loc16_27.2 (constants.%Wrap.Make.specific_fn.d60)] +// CHECK:STDOUT: %Wrap.Make.type: type = fn_type @Wrap.Make, @Wrap(%T) [symbolic = %Wrap.Make.type (constants.%Wrap.Make.type.8e1)] +// CHECK:STDOUT: %Wrap.Make: @Wrap.Make.%Wrap.Make.type (%Wrap.Make.type.8e1) = struct_value () [symbolic = %Wrap.Make (constants.%Wrap.Make.813)] +// CHECK:STDOUT: %Wrap.Make.specific_fn.loc16_27.2: = specific_function %Wrap.Make, @Wrap.Make(%T) [symbolic = %Wrap.Make.specific_fn.loc16_27.2 (constants.%Wrap.Make.specific_fn.e89)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: @Wrap.Make.%T (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc16_27: @Wrap.Make.%Wrap.Make.type (%Wrap.Make.type.916) = specific_constant @Wrap.%Wrap.Make.decl, @Wrap(constants.%T) [symbolic = %Wrap.Make (constants.%Wrap.Make.fbf)] -// CHECK:STDOUT: %Make.ref: @Wrap.Make.%Wrap.Make.type (%Wrap.Make.type.916) = name_ref Make, %.loc16_27 [symbolic = %Wrap.Make (constants.%Wrap.Make.fbf)] -// CHECK:STDOUT: %Wrap.Make.specific_fn.loc16_27.1: = specific_function %Make.ref, @Wrap.Make(constants.%T) [symbolic = %Wrap.Make.specific_fn.loc16_27.2 (constants.%Wrap.Make.specific_fn.d60)] +// CHECK:STDOUT: %.loc16_27: @Wrap.Make.%Wrap.Make.type (%Wrap.Make.type.8e1) = specific_constant @Wrap.%Wrap.Make.decl, @Wrap(constants.%T) [symbolic = %Wrap.Make (constants.%Wrap.Make.813)] +// CHECK:STDOUT: %Make.ref: @Wrap.Make.%Wrap.Make.type (%Wrap.Make.type.8e1) = name_ref Make, %.loc16_27 [symbolic = %Wrap.Make (constants.%Wrap.Make.813)] +// CHECK:STDOUT: %Wrap.Make.specific_fn.loc16_27.1: = specific_function %Make.ref, @Wrap.Make(constants.%T) [symbolic = %Wrap.Make.specific_fn.loc16_27.2 (constants.%Wrap.Make.specific_fn.e89)] // CHECK:STDOUT: %.loc16_16.1: ref @Wrap.Make.%T (%T) = splice_block %return.param {} // CHECK:STDOUT: %Wrap.Make.call: init @Wrap.Make.%T (%T) to %.loc16_16.1 = call %Wrap.Make.specific_fn.loc16_27.1() // CHECK:STDOUT: return %Wrap.Make.call to %return.param @@ -180,16 +180,16 @@ fn G() { // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.104 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var %a.var_patt // CHECK:STDOUT: %Wrap.ref.loc22: %Wrap.type = name_ref Wrap, file.%Wrap.decl [concrete = constants.%Wrap.generic] // CHECK:STDOUT: %i32.loc22_28: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %Wrap.loc22: type = class_type @Wrap, @Wrap(constants.%i32) [concrete = constants.%Wrap.1cd] -// CHECK:STDOUT: %.loc22: %Wrap.Make.type.00b = specific_constant @Wrap.%Wrap.Make.decl, @Wrap(constants.%i32) [concrete = constants.%Wrap.Make.8d0] -// CHECK:STDOUT: %Make.ref.loc22: %Wrap.Make.type.00b = name_ref Make, %.loc22 [concrete = constants.%Wrap.Make.8d0] -// CHECK:STDOUT: %Wrap.Make.specific_fn.loc22: = specific_function %Make.ref.loc22, @Wrap.Make(constants.%i32) [concrete = constants.%Wrap.Make.specific_fn.264] +// CHECK:STDOUT: %Wrap.loc22: type = class_type @Wrap, @Wrap(constants.%i32) [concrete = constants.%Wrap.aab] +// CHECK:STDOUT: %.loc22: %Wrap.Make.type.096 = specific_constant @Wrap.%Wrap.Make.decl, @Wrap(constants.%i32) [concrete = constants.%Wrap.Make.4b7] +// CHECK:STDOUT: %Make.ref.loc22: %Wrap.Make.type.096 = name_ref Make, %.loc22 [concrete = constants.%Wrap.Make.4b7] +// CHECK:STDOUT: %Wrap.Make.specific_fn.loc22: = specific_function %Make.ref.loc22, @Wrap.Make(constants.%i32) [concrete = constants.%Wrap.Make.specific_fn.cb0] // CHECK:STDOUT: %Wrap.Make.call.loc22: init %i32 = call %Wrap.Make.specific_fn.loc22() // CHECK:STDOUT: assign %a.var, %Wrap.Make.call.loc22 // CHECK:STDOUT: %i32.loc22_17: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -202,10 +202,10 @@ fn G() { // CHECK:STDOUT: %Wrap.ref.loc23: %Wrap.type = name_ref Wrap, file.%Wrap.decl [concrete = constants.%Wrap.generic] // CHECK:STDOUT: %.loc23_28: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc23_29: type = converted %.loc23_28, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %Wrap.loc23: type = class_type @Wrap, @Wrap(constants.%empty_tuple.type) [concrete = constants.%Wrap.065] -// CHECK:STDOUT: %.loc23_30: %Wrap.Make.type.67f = specific_constant @Wrap.%Wrap.Make.decl, @Wrap(constants.%empty_tuple.type) [concrete = constants.%Wrap.Make.7f3] -// CHECK:STDOUT: %Make.ref.loc23: %Wrap.Make.type.67f = name_ref Make, %.loc23_30 [concrete = constants.%Wrap.Make.7f3] -// CHECK:STDOUT: %Wrap.Make.specific_fn.loc23: = specific_function %Make.ref.loc23, @Wrap.Make(constants.%empty_tuple.type) [concrete = constants.%Wrap.Make.specific_fn.2bf] +// CHECK:STDOUT: %Wrap.loc23: type = class_type @Wrap, @Wrap(constants.%empty_tuple.type) [concrete = constants.%Wrap.7ad] +// CHECK:STDOUT: %.loc23_30: %Wrap.Make.type.318 = specific_constant @Wrap.%Wrap.Make.decl, @Wrap(constants.%empty_tuple.type) [concrete = constants.%Wrap.Make.26a] +// CHECK:STDOUT: %Make.ref.loc23: %Wrap.Make.type.318 = name_ref Make, %.loc23_30 [concrete = constants.%Wrap.Make.26a] +// CHECK:STDOUT: %Wrap.Make.specific_fn.loc23: = specific_function %Make.ref.loc23, @Wrap.Make(constants.%empty_tuple.type) [concrete = constants.%Wrap.Make.specific_fn.cc3] // CHECK:STDOUT: %Wrap.Make.call.loc23: init %empty_tuple.type = call %Wrap.Make.specific_fn.loc23() // CHECK:STDOUT: assign %b.var, %Wrap.Make.call.loc23 // CHECK:STDOUT: %.loc23_18.1: type = splice_block %.loc23_18.3 [concrete = constants.%empty_tuple.type] { @@ -214,26 +214,26 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %b: ref %empty_tuple.type = ref_binding b, %b.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.0d5 = var_pattern %c.patt [concrete] +// 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: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt // CHECK:STDOUT: %Wrap.ref.loc24: %Wrap.type = name_ref Wrap, file.%Wrap.decl [concrete = constants.%Wrap.generic] // CHECK:STDOUT: %C.ref.loc24_26: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Wrap.loc24: type = class_type @Wrap, @Wrap(constants.%C) [concrete = constants.%Wrap.52b] -// CHECK:STDOUT: %.loc24_28: %Wrap.Make.type.75a = specific_constant @Wrap.%Wrap.Make.decl, @Wrap(constants.%C) [concrete = constants.%Wrap.Make.700] -// CHECK:STDOUT: %Make.ref.loc24: %Wrap.Make.type.75a = name_ref Make, %.loc24_28 [concrete = constants.%Wrap.Make.700] -// CHECK:STDOUT: %Wrap.Make.specific_fn.loc24: = specific_function %Make.ref.loc24, @Wrap.Make(constants.%C) [concrete = constants.%Wrap.Make.specific_fn.baf] +// CHECK:STDOUT: %Wrap.loc24: type = class_type @Wrap, @Wrap(constants.%C) [concrete = constants.%Wrap.fad] +// CHECK:STDOUT: %.loc24_28: %Wrap.Make.type.bd1 = specific_constant @Wrap.%Wrap.Make.decl, @Wrap(constants.%C) [concrete = constants.%Wrap.Make.83f] +// CHECK:STDOUT: %Make.ref.loc24: %Wrap.Make.type.bd1 = name_ref Make, %.loc24_28 [concrete = constants.%Wrap.Make.83f] +// CHECK:STDOUT: %Wrap.Make.specific_fn.loc24: = specific_function %Make.ref.loc24, @Wrap.Make(constants.%C) [concrete = constants.%Wrap.Make.specific_fn.c96] // CHECK:STDOUT: %.loc24_3: ref %C = splice_block %c.var {} // CHECK:STDOUT: %Wrap.Make.call.loc24: init %C to %.loc24_3 = call %Wrap.Make.specific_fn.loc24() // CHECK:STDOUT: assign %c.var, %Wrap.Make.call.loc24 // CHECK:STDOUT: %C.ref.loc24_17: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var -// CHECK:STDOUT: %Destroy.Op.bound.loc24: = bound_method %c.var, constants.%Destroy.Op.2dd605.5 +// 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.2dd605.6 +// 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.2dd605.2 +// 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: return // CHECK:STDOUT: } @@ -250,7 +250,7 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_3.4(%self.param: ref %struct_type.arr.43d) { +// CHECK:STDOUT: fn @Destroy.Op.loc24_3.4(%self.param: ref %struct_type.arr.fdc) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -266,8 +266,8 @@ fn G() { // CHECK:STDOUT: %T.loc15_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Wrap.Make.type => constants.%Wrap.Make.type.916 -// CHECK:STDOUT: %Wrap.Make => constants.%Wrap.Make.fbf +// CHECK:STDOUT: %Wrap.Make.type => constants.%Wrap.Make.type.8e1 +// CHECK:STDOUT: %Wrap.Make => constants.%Wrap.Make.813 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap.Make(constants.%T) { @@ -277,37 +277,37 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.944 -// CHECK:STDOUT: %Wrap.Make.type => constants.%Wrap.Make.type.916 -// CHECK:STDOUT: %Wrap.Make => constants.%Wrap.Make.fbf -// CHECK:STDOUT: %Wrap.Make.specific_fn.loc16_27.2 => constants.%Wrap.Make.specific_fn.d60 +// CHECK:STDOUT: %Wrap.Make.type => constants.%Wrap.Make.type.8e1 +// CHECK:STDOUT: %Wrap.Make => constants.%Wrap.Make.813 +// CHECK:STDOUT: %Wrap.Make.specific_fn.loc16_27.2 => constants.%Wrap.Make.specific_fn.e89 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap(constants.%i32) { // CHECK:STDOUT: %T.loc15_13.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Wrap.Make.type => constants.%Wrap.Make.type.00b -// CHECK:STDOUT: %Wrap.Make => constants.%Wrap.Make.8d0 +// CHECK:STDOUT: %Wrap.Make.type => constants.%Wrap.Make.type.096 +// CHECK:STDOUT: %Wrap.Make => constants.%Wrap.Make.4b7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap.Make(constants.%i32) { // CHECK:STDOUT: %T => constants.%i32 -// CHECK:STDOUT: %.loc16_16.2 => constants.%.7ea -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.104 +// CHECK:STDOUT: %.loc16_16.2 => constants.%.795 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6b6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %Wrap.Make.type => constants.%Wrap.Make.type.00b -// CHECK:STDOUT: %Wrap.Make => constants.%Wrap.Make.8d0 -// CHECK:STDOUT: %Wrap.Make.specific_fn.loc16_27.2 => constants.%Wrap.Make.specific_fn.264 +// CHECK:STDOUT: %Wrap.Make.type => constants.%Wrap.Make.type.096 +// CHECK:STDOUT: %Wrap.Make => constants.%Wrap.Make.4b7 +// CHECK:STDOUT: %Wrap.Make.specific_fn.loc16_27.2 => constants.%Wrap.Make.specific_fn.cb0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap(constants.%empty_tuple.type) { // CHECK:STDOUT: %T.loc15_13.1 => constants.%empty_tuple.type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Wrap.Make.type => constants.%Wrap.Make.type.67f -// CHECK:STDOUT: %Wrap.Make => constants.%Wrap.Make.7f3 +// CHECK:STDOUT: %Wrap.Make.type => constants.%Wrap.Make.type.318 +// CHECK:STDOUT: %Wrap.Make => constants.%Wrap.Make.26a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap.Make(constants.%empty_tuple.type) { @@ -317,28 +317,28 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.782 -// CHECK:STDOUT: %Wrap.Make.type => constants.%Wrap.Make.type.67f -// CHECK:STDOUT: %Wrap.Make => constants.%Wrap.Make.7f3 -// CHECK:STDOUT: %Wrap.Make.specific_fn.loc16_27.2 => constants.%Wrap.Make.specific_fn.2bf +// CHECK:STDOUT: %Wrap.Make.type => constants.%Wrap.Make.type.318 +// CHECK:STDOUT: %Wrap.Make => constants.%Wrap.Make.26a +// CHECK:STDOUT: %Wrap.Make.specific_fn.loc16_27.2 => constants.%Wrap.Make.specific_fn.cc3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap(constants.%C) { // CHECK:STDOUT: %T.loc15_13.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Wrap.Make.type => constants.%Wrap.Make.type.75a -// CHECK:STDOUT: %Wrap.Make => constants.%Wrap.Make.700 +// CHECK:STDOUT: %Wrap.Make.type => constants.%Wrap.Make.type.bd1 +// CHECK:STDOUT: %Wrap.Make => constants.%Wrap.Make.83f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap.Make(constants.%C) { // CHECK:STDOUT: %T => constants.%C -// CHECK:STDOUT: %.loc16_16.2 => constants.%.8f0 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d5 +// CHECK:STDOUT: %.loc16_16.2 => constants.%.a44 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.0c2 -// CHECK:STDOUT: %Wrap.Make.type => constants.%Wrap.Make.type.75a -// CHECK:STDOUT: %Wrap.Make => constants.%Wrap.Make.700 -// CHECK:STDOUT: %Wrap.Make.specific_fn.loc16_27.2 => constants.%Wrap.Make.specific_fn.baf +// CHECK:STDOUT: %require_complete => constants.%complete_type.18e +// CHECK:STDOUT: %Wrap.Make.type => constants.%Wrap.Make.type.bd1 +// CHECK:STDOUT: %Wrap.Make => constants.%Wrap.Make.83f +// CHECK:STDOUT: %Wrap.Make.specific_fn.loc16_27.2 => constants.%Wrap.Make.specific_fn.c96 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/type_param.carbon b/toolchain/check/testdata/function/generic/type_param.carbon index 1e6e629680a3..7246685da253 100644 --- a/toolchain/check/testdata/function/generic/type_param.carbon +++ b/toolchain/check/testdata/function/generic/type_param.carbon @@ -34,19 +34,19 @@ fn F(T:! type) { // CHECK:STDOUT: %require_complete.944: = require_complete_type %T.67d [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T.67d [symbolic] // CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness: = lookup_impl_witness %ptr, @DefaultOrUnformed [symbolic] -// CHECK:STDOUT: %.939: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%ptr) [symbolic] +// CHECK:STDOUT: %.d74: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%ptr) [symbolic] // CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr, (%DefaultOrUnformed.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.08d: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet) [symbolic] -// CHECK:STDOUT: %.ec9: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.08d, %DefaultOrUnformed.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.e5e: %.ec9 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.78e: = specific_impl_function %impl.elem0.e5e, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.291: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet) [symbolic] +// CHECK:STDOUT: %.2e6: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.291, %DefaultOrUnformed.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.66d: %.2e6 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.53b: = specific_impl_function %impl.elem0.66d, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet) [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %ptr, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr, (%Destroy.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.12b: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic] -// CHECK:STDOUT: %.2ce: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.12b, %Destroy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.ca4: %.2ce = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.d41: = specific_impl_function %impl.elem0.ca4, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.8a4: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic] +// CHECK:STDOUT: %.9f8: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.8a4, %Destroy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.258: %.9f8 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.192: = specific_impl_function %impl.elem0.258, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -84,21 +84,21 @@ fn F(T:! type) { // CHECK:STDOUT: %ptr.loc16_11.2: type = ptr_type %T.loc15_7.1 [symbolic = %ptr.loc16_11.2 (constants.%ptr)] // CHECK:STDOUT: %require_complete.loc16: = require_complete_type %ptr.loc16_11.2 [symbolic = %require_complete.loc16 (constants.%require_complete.ef1)] // CHECK:STDOUT: %pattern_type.loc16: type = pattern_type %ptr.loc16_11.2 [symbolic = %pattern_type.loc16 (constants.%pattern_type.4f4)] -// CHECK:STDOUT: %.loc16_12.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%ptr.loc16_11.2) [symbolic = %.loc16_12.3 (constants.%.939)] +// CHECK:STDOUT: %.loc16_12.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%ptr.loc16_11.2) [symbolic = %.loc16_12.3 (constants.%.d74)] // CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness: = lookup_impl_witness %ptr.loc16_11.2, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness (constants.%DefaultOrUnformed.lookup_impl_witness)] // CHECK:STDOUT: %DefaultOrUnformed.facet.loc16_12.2: %DefaultOrUnformed.type = facet_value %ptr.loc16_11.2, (%DefaultOrUnformed.lookup_impl_witness) [symbolic = %DefaultOrUnformed.facet.loc16_12.2 (constants.%DefaultOrUnformed.facet)] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc16_12.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type (constants.%DefaultOrUnformed.WithSelf.Op.type.08d)] -// CHECK:STDOUT: %.loc16_12.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type, %DefaultOrUnformed.facet.loc16_12.2 [symbolic = %.loc16_12.4 (constants.%.ec9)] -// CHECK:STDOUT: %impl.elem0.loc16_12.2: @F.%.loc16_12.4 (%.ec9) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_12.2 (constants.%impl.elem0.e5e)] -// CHECK:STDOUT: %specific_impl_fn.loc16_12.2: = specific_impl_function %impl.elem0.loc16_12.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc16_12.2) [symbolic = %specific_impl_fn.loc16_12.2 (constants.%specific_impl_fn.78e)] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc16_12.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type (constants.%DefaultOrUnformed.WithSelf.Op.type.291)] +// CHECK:STDOUT: %.loc16_12.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type, %DefaultOrUnformed.facet.loc16_12.2 [symbolic = %.loc16_12.4 (constants.%.2e6)] +// CHECK:STDOUT: %impl.elem0.loc16_12.2: @F.%.loc16_12.4 (%.2e6) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_12.2 (constants.%impl.elem0.66d)] +// CHECK:STDOUT: %specific_impl_fn.loc16_12.2: = specific_impl_function %impl.elem0.loc16_12.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc16_12.2) [symbolic = %specific_impl_fn.loc16_12.2 (constants.%specific_impl_fn.53b)] // CHECK:STDOUT: %require_complete.loc17: = require_complete_type %T.loc15_7.1 [symbolic = %require_complete.loc17 (constants.%require_complete.944)] // CHECK:STDOUT: %pattern_type.loc17: type = pattern_type %T.loc15_7.1 [symbolic = %pattern_type.loc17 (constants.%pattern_type.51d)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %ptr.loc16_11.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc16_11.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.12b)] -// CHECK:STDOUT: %.loc16_3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc16_3 (constants.%.2ce)] -// CHECK:STDOUT: %impl.elem0.loc16_3.2: @F.%.loc16_3 (%.2ce) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_3.2 (constants.%impl.elem0.ca4)] -// CHECK:STDOUT: %specific_impl_fn.loc16_3.2: = specific_impl_function %impl.elem0.loc16_3.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc16_3.2 (constants.%specific_impl_fn.d41)] +// 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.8a4)] +// CHECK:STDOUT: %.loc16_3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc16_3 (constants.%.9f8)] +// CHECK:STDOUT: %impl.elem0.loc16_3.2: @F.%.loc16_3 (%.9f8) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_3.2 (constants.%impl.elem0.258)] +// CHECK:STDOUT: %specific_impl_fn.loc16_3.2: = specific_impl_function %impl.elem0.loc16_3.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc16_3.2 (constants.%specific_impl_fn.192)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -111,8 +111,8 @@ fn F(T:! type) { // CHECK:STDOUT: %.loc16_12.1: %DefaultOrUnformed.type = converted constants.%ptr, %DefaultOrUnformed.facet.loc16_12.1 [symbolic = %DefaultOrUnformed.facet.loc16_12.2 (constants.%DefaultOrUnformed.facet)] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc16_12.1 [symbolic = %ptr.loc16_11.2 (constants.%ptr)] // CHECK:STDOUT: %.loc16_12.2: type = converted %.loc16_12.1, %as_type [symbolic = %ptr.loc16_11.2 (constants.%ptr)] -// CHECK:STDOUT: %impl.elem0.loc16_12.1: @F.%.loc16_12.4 (%.ec9) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_12.2 (constants.%impl.elem0.e5e)] -// CHECK:STDOUT: %specific_impl_fn.loc16_12.1: = specific_impl_function %impl.elem0.loc16_12.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet) [symbolic = %specific_impl_fn.loc16_12.2 (constants.%specific_impl_fn.78e)] +// CHECK:STDOUT: %impl.elem0.loc16_12.1: @F.%.loc16_12.4 (%.2e6) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_12.2 (constants.%impl.elem0.66d)] +// CHECK:STDOUT: %specific_impl_fn.loc16_12.1: = specific_impl_function %impl.elem0.loc16_12.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet) [symbolic = %specific_impl_fn.loc16_12.2 (constants.%specific_impl_fn.53b)] // CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.call: init @F.%ptr.loc16_11.2 (%ptr) = call %specific_impl_fn.loc16_12.1() // CHECK:STDOUT: assign %p.var, %DefaultOrUnformed.WithSelf.Op.call // CHECK:STDOUT: %.loc16_11: type = splice_block %ptr.loc16_11.1 [symbolic = %ptr.loc16_11.2 (constants.%ptr)] { @@ -129,9 +129,9 @@ fn F(T:! type) { // CHECK:STDOUT: %T.ref.loc17: type = name_ref T, %T.loc15_7.2 [symbolic = %T.loc15_7.1 (constants.%T.67d)] // CHECK:STDOUT: %.loc17_21.2: @F.%T.loc15_7.1 (%T.67d) = acquire_value %.loc17_21.1 // CHECK:STDOUT: %n: @F.%T.loc15_7.1 (%T.67d) = value_binding n, %.loc17_21.2 -// CHECK:STDOUT: %impl.elem0.loc16_3.1: @F.%.loc16_3 (%.2ce) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_3.2 (constants.%impl.elem0.ca4)] +// CHECK:STDOUT: %impl.elem0.loc16_3.1: @F.%.loc16_3 (%.9f8) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_3.2 (constants.%impl.elem0.258)] // CHECK:STDOUT: %bound_method.loc16_3.1: = bound_method %p.var, %impl.elem0.loc16_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc16_3.1: = specific_impl_function %impl.elem0.loc16_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc16_3.2 (constants.%specific_impl_fn.d41)] +// CHECK:STDOUT: %specific_impl_fn.loc16_3.1: = specific_impl_function %impl.elem0.loc16_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc16_3.2 (constants.%specific_impl_fn.192)] // CHECK:STDOUT: %bound_method.loc16_3.2: = bound_method %p.var, %specific_impl_fn.loc16_3.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc16_3.2(%p.var) // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/function/generic/type_param_scope.carbon b/toolchain/check/testdata/function/generic/type_param_scope.carbon index 7c4b0b6bcf3d..8d478b4f0225 100644 --- a/toolchain/check/testdata/function/generic/type_param_scope.carbon +++ b/toolchain/check/testdata/function/generic/type_param_scope.carbon @@ -29,13 +29,13 @@ fn F(T:! type, n: T*) -> T* { // CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr [symbolic] // CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2bf: = lookup_impl_witness %ptr, @Copy [symbolic] -// CHECK:STDOUT: %.b6a: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness.2bf) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.72b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.72b, %Copy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.8a3: %.39b = impl_witness_access %Copy.lookup_impl_witness.2bf, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a13: = specific_impl_function %impl.elem0.8a3, @Copy.WithSelf.Op(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.1da: = lookup_impl_witness %ptr, @Copy [symbolic] +// CHECK:STDOUT: %.0e9: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness.1da) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.884: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] +// CHECK:STDOUT: %.be5: type = fn_type_with_self_type %Copy.WithSelf.Op.type.884, %Copy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.484: %.be5 = impl_witness_access %Copy.lookup_impl_witness.1da, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.a76: = specific_impl_function %impl.elem0.484, @Copy.WithSelf.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc4_7.2: type) { @@ -43,13 +43,13 @@ fn F(T:! type, n: T*) -> T* { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %.loc7_10.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc4_7.1) [symbolic = %.loc7_10.1 (constants.%.b6a)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc4_20.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2bf)] +// CHECK:STDOUT: %.loc7_10.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc4_7.1) [symbolic = %.loc7_10.1 (constants.%.0e9)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc4_20.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.1da)] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc4_20.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.72b)] -// CHECK:STDOUT: %.loc7_10.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc7_10.2 (constants.%.39b)] -// CHECK:STDOUT: %impl.elem0.loc7_10.2: @F.%.loc7_10.2 (%.39b) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_10.2 (constants.%impl.elem0.8a3)] -// CHECK:STDOUT: %specific_impl_fn.loc7_10.2: = specific_impl_function %impl.elem0.loc7_10.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc7_10.2 (constants.%specific_impl_fn.a13)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.884)] +// CHECK:STDOUT: %.loc7_10.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc7_10.2 (constants.%.be5)] +// CHECK:STDOUT: %impl.elem0.loc7_10.2: @F.%.loc7_10.2 (%.be5) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_10.2 (constants.%impl.elem0.484)] +// CHECK:STDOUT: %specific_impl_fn.loc7_10.2: = specific_impl_function %impl.elem0.loc7_10.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc7_10.2 (constants.%specific_impl_fn.a76)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%n.param: @F.%ptr.loc4_20.1 (%ptr)) -> out %return.param: @F.%ptr.loc4_20.1 (%ptr) { // CHECK:STDOUT: !entry: @@ -63,9 +63,9 @@ fn F(T:! type, n: T*) -> T* { // CHECK:STDOUT: } // CHECK:STDOUT: %m: @F.%ptr.loc4_20.1 (%ptr) = value_binding m, %n.ref // CHECK:STDOUT: %m.ref: @F.%ptr.loc4_20.1 (%ptr) = name_ref m, %m -// CHECK:STDOUT: %impl.elem0.loc7_10.1: @F.%.loc7_10.2 (%.39b) = impl_witness_access constants.%Copy.lookup_impl_witness.2bf, element0 [symbolic = %impl.elem0.loc7_10.2 (constants.%impl.elem0.8a3)] +// CHECK:STDOUT: %impl.elem0.loc7_10.1: @F.%.loc7_10.2 (%.be5) = impl_witness_access constants.%Copy.lookup_impl_witness.1da, element0 [symbolic = %impl.elem0.loc7_10.2 (constants.%impl.elem0.484)] // CHECK:STDOUT: %bound_method.loc7_10.1: = bound_method %m.ref, %impl.elem0.loc7_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc7_10.1: = specific_impl_function %impl.elem0.loc7_10.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc7_10.2 (constants.%specific_impl_fn.a13)] +// CHECK:STDOUT: %specific_impl_fn.loc7_10.1: = specific_impl_function %impl.elem0.loc7_10.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc7_10.2 (constants.%specific_impl_fn.a76)] // CHECK:STDOUT: %bound_method.loc7_10.2: = bound_method %m.ref, %specific_impl_fn.loc7_10.1 // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @F.%ptr.loc4_20.1 (%ptr) = call %bound_method.loc7_10.2(%m.ref) // CHECK:STDOUT: return %Copy.WithSelf.Op.call diff --git a/toolchain/check/testdata/generic/call_basic_depth.carbon b/toolchain/check/testdata/generic/call_basic_depth.carbon index 8ec787d72210..7aee1fe1707d 100644 --- a/toolchain/check/testdata/generic/call_basic_depth.carbon +++ b/toolchain/check/testdata/generic/call_basic_depth.carbon @@ -49,7 +49,7 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] @@ -65,14 +65,14 @@ fn M() { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] -// CHECK:STDOUT: %F.specific_fn.d7f: = specific_function %F, @F(%T) [symbolic] +// CHECK:STDOUT: %F.specific_fn.eab: = specific_function %F, @F(%T) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %H.specific_fn.a19: = specific_function %H, @H(%T) [symbolic] -// CHECK:STDOUT: %F.specific_fn.076: = specific_function %F, @F(%C) [concrete] +// CHECK:STDOUT: %H.specific_fn.e9c: = specific_function %H, @H(%T) [symbolic] +// CHECK:STDOUT: %F.specific_fn.e0d: = specific_function %F, @F(%C) [concrete] // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%C) [concrete] -// CHECK:STDOUT: %H.specific_fn.c76: = specific_function %H, @H(%C) [concrete] -// CHECK:STDOUT: %C.Cfn.specific_fn.bc7: = specific_function %C.Cfn, @C.Cfn(%C) [concrete] +// CHECK:STDOUT: %H.specific_fn.ca8: = specific_function %H, @H(%C) [concrete] +// CHECK:STDOUT: %C.Cfn.specific_fn.380: = specific_function %C.Cfn, @C.Cfn(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -110,13 +110,13 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %F.specific_fn.loc25_3.2: = specific_function constants.%F, @F(%T.loc23_7.1) [symbolic = %F.specific_fn.loc25_3.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %F.specific_fn.loc25_3.2: = specific_function constants.%F, @F(%T.loc23_7.1) [symbolic = %F.specific_fn.loc25_3.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @H.%T.loc23_7.1 (%T)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %x.ref: @H.%T.loc23_7.1 (%T) = name_ref x, %x -// CHECK:STDOUT: %F.specific_fn.loc25_3.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc25_3.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %F.specific_fn.loc25_3.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc25_3.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn.loc25_3.1(%x.ref) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -127,19 +127,19 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %H.specific_fn.loc31_3.2: = specific_function constants.%H, @H(%T.loc29_7.1) [symbolic = %H.specific_fn.loc31_3.2 (constants.%H.specific_fn.a19)] -// CHECK:STDOUT: %F.specific_fn.loc32_3.2: = specific_function constants.%F, @F(%T.loc29_7.1) [symbolic = %F.specific_fn.loc32_3.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %H.specific_fn.loc31_3.2: = specific_function constants.%H, @H(%T.loc29_7.1) [symbolic = %H.specific_fn.loc31_3.2 (constants.%H.specific_fn.e9c)] +// CHECK:STDOUT: %F.specific_fn.loc32_3.2: = specific_function constants.%F, @F(%T.loc29_7.1) [symbolic = %F.specific_fn.loc32_3.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @G.%T.loc29_7.1 (%T)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %H.ref: %H.type = name_ref H, file.%H.decl [concrete = constants.%H] // CHECK:STDOUT: %x.ref.loc31: @G.%T.loc29_7.1 (%T) = name_ref x, %x -// CHECK:STDOUT: %H.specific_fn.loc31_3.1: = specific_function %H.ref, @H(constants.%T) [symbolic = %H.specific_fn.loc31_3.2 (constants.%H.specific_fn.a19)] +// CHECK:STDOUT: %H.specific_fn.loc31_3.1: = specific_function %H.ref, @H(constants.%T) [symbolic = %H.specific_fn.loc31_3.2 (constants.%H.specific_fn.e9c)] // CHECK:STDOUT: %H.call: init %empty_tuple.type = call %H.specific_fn.loc31_3.1(%x.ref.loc31) // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %x.ref.loc32: @G.%T.loc29_7.1 (%T) = name_ref x, %x -// CHECK:STDOUT: %F.specific_fn.loc32_3.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc32_3.2 (constants.%F.specific_fn.d7f)] +// CHECK:STDOUT: %F.specific_fn.loc32_3.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc32_3.2 (constants.%F.specific_fn.eab)] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn.loc32_3.1(%x.ref.loc32) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -150,7 +150,7 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %n.ref.loc43: ref %C = name_ref n, %n -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.076] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.e0d] // CHECK:STDOUT: %.loc43: %C = acquire_value %n.ref.loc43 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc43) // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] @@ -175,7 +175,7 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete -// CHECK:STDOUT: %F.specific_fn.loc25_3.2 => constants.%F.specific_fn.d7f +// CHECK:STDOUT: %F.specific_fn.loc25_3.2 => constants.%F.specific_fn.eab // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { @@ -185,7 +185,7 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { // CHECK:STDOUT: %T.loc19_7.1 => constants.%C -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d5 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type @@ -193,21 +193,21 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%C) { // CHECK:STDOUT: %T.loc29_7.1 => constants.%C -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d5 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type -// CHECK:STDOUT: %H.specific_fn.loc31_3.2 => constants.%H.specific_fn.c76 -// CHECK:STDOUT: %F.specific_fn.loc32_3.2 => constants.%F.specific_fn.076 -// CHECK:STDOUT: %C.Cfn.specific_fn.loc36_4.2 => constants.%C.Cfn.specific_fn.bc7 +// CHECK:STDOUT: %H.specific_fn.loc31_3.2 => constants.%H.specific_fn.ca8 +// CHECK:STDOUT: %F.specific_fn.loc32_3.2 => constants.%F.specific_fn.e0d +// CHECK:STDOUT: %C.Cfn.specific_fn.loc36_4.2 => constants.%C.Cfn.specific_fn.380 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%C) { // CHECK:STDOUT: %T.loc23_7.1 => constants.%C -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d5 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type -// CHECK:STDOUT: %F.specific_fn.loc25_3.2 => constants.%F.specific_fn.076 +// CHECK:STDOUT: %F.specific_fn.loc25_3.2 => constants.%F.specific_fn.e0d // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/generic/complete_type.carbon b/toolchain/check/testdata/generic/complete_type.carbon index 9aa72f5eab9f..62fad13ea69b 100644 --- a/toolchain/check/testdata/generic/complete_type.carbon +++ b/toolchain/check/testdata/generic/complete_type.carbon @@ -90,18 +90,18 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %A.type: type = generic_class_type @A [concrete] // CHECK:STDOUT: %A.generic: %A.type = struct_value () [concrete] -// CHECK:STDOUT: %A.6ed: type = class_type @A, @A(%T) [symbolic] +// CHECK:STDOUT: %A.47a: type = class_type @A, @A(%T) [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %A.elem.e8e: type = unbound_element_type %A.6ed, %T [symbolic] +// CHECK:STDOUT: %A.elem.d41: type = unbound_element_type %A.47a, %T [symbolic] // CHECK:STDOUT: %struct_type.v.a4d: type = struct_type {.v: %T} [symbolic] // CHECK:STDOUT: %complete_type.136: = complete_type_witness %struct_type.v.a4d [symbolic] -// CHECK:STDOUT: %A.75e: type = class_type @A, @A(%B) [concrete] -// CHECK:STDOUT: %pattern_type.46b: type = pattern_type %A.75e [concrete] +// CHECK:STDOUT: %A.d32: type = class_type @A, @A(%B) [concrete] +// CHECK:STDOUT: %pattern_type.b3e: type = pattern_type %A.d32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %A.elem.9ba: type = unbound_element_type %A.75e, %B [concrete] -// CHECK:STDOUT: %struct_type.v.238: type = struct_type {.v: %B} [concrete] -// CHECK:STDOUT: %complete_type.a1f: = complete_type_witness %struct_type.v.238 [concrete] +// CHECK:STDOUT: %A.elem.483: type = unbound_element_type %A.d32, %B [concrete] +// CHECK:STDOUT: %struct_type.v.410: type = struct_type {.v: %B} [concrete] +// CHECK:STDOUT: %complete_type.a68: = complete_type_witness %struct_type.v.410 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -132,16 +132,16 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: %T.loc6_10.2: type = symbolic_binding T, 0 [symbolic = %T.loc6_10.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.46b = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.46b = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.b3e = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.b3e = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %x.param: %A.75e = value_param call_param0 -// CHECK:STDOUT: %.loc27: type = splice_block %A [concrete = constants.%A.75e] { +// CHECK:STDOUT: %x.param: %A.d32 = value_param call_param0 +// CHECK:STDOUT: %.loc27: type = splice_block %A [concrete = constants.%A.d32] { // CHECK:STDOUT: %A.ref: %A.type = name_ref A, file.%A.decl [concrete = constants.%A.generic] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl.loc4 [concrete = constants.%B] -// CHECK:STDOUT: %A: type = class_type @A, @A(constants.%B) [concrete = constants.%A.75e] +// CHECK:STDOUT: %A: type = class_type @A, @A(constants.%B) [concrete = constants.%A.d32] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: %A.75e = value_binding x, %x.param +// CHECK:STDOUT: %x: %A.d32 = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl.loc29: type = class_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: } @@ -159,24 +159,24 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.loc6_10.1 [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %A: type = class_type @A, @A(%T.loc6_10.1) [symbolic = %A (constants.%A.6ed)] -// CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %T.loc6_10.1 [symbolic = %A.elem (constants.%A.elem.e8e)] +// CHECK:STDOUT: %A: type = class_type @A, @A(%T.loc6_10.1) [symbolic = %A (constants.%A.47a)] +// CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %T.loc6_10.1 [symbolic = %A.elem (constants.%A.elem.d41)] // CHECK:STDOUT: %struct_type.v: type = struct_type {.v: @A.%T.loc6_10.1 (%T)} [symbolic = %struct_type.v (constants.%struct_type.v.a4d)] // CHECK:STDOUT: %complete_type.loc8_1.2: = complete_type_witness %struct_type.v [symbolic = %complete_type.loc8_1.2 (constants.%complete_type.136)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %.loc7: @A.%A.elem (%A.elem.e8e) = field_decl v, element0 [concrete] +// CHECK:STDOUT: %.loc7: @A.%A.elem (%A.elem.d41) = field_decl v, element0 [concrete] // CHECK:STDOUT: %complete_type.loc8_1.1: = complete_type_witness constants.%struct_type.v.a4d [symbolic = %complete_type.loc8_1.2 (constants.%complete_type.136)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc8_1.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%A.6ed +// CHECK:STDOUT: .Self = constants.%A.47a // CHECK:STDOUT: .T = // CHECK:STDOUT: .v = %.loc7 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%x.param: %A.75e) { +// CHECK:STDOUT: fn @F(%x.param: %A.d32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -190,10 +190,10 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => -// CHECK:STDOUT: %A => constants.%A.75e -// CHECK:STDOUT: %A.elem => constants.%A.elem.9ba -// CHECK:STDOUT: %struct_type.v => constants.%struct_type.v.238 -// CHECK:STDOUT: %complete_type.loc8_1.2 => constants.%complete_type.a1f +// CHECK:STDOUT: %A => constants.%A.d32 +// CHECK:STDOUT: %A.elem => constants.%A.elem.483 +// CHECK:STDOUT: %struct_type.v => constants.%struct_type.v.410 +// CHECK:STDOUT: %complete_type.loc8_1.2 => constants.%complete_type.a68 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- incomplete_in_function.carbon @@ -210,14 +210,14 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %ptr.e8f [symbolic] -// CHECK:STDOUT: %ptr.294: type = ptr_type %B [concrete] -// CHECK:STDOUT: %pattern_type.bb8: type = pattern_type %ptr.294 [concrete] +// CHECK:STDOUT: %ptr.432: type = ptr_type %B [concrete] +// CHECK:STDOUT: %pattern_type.3c8: type = pattern_type %ptr.432 [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%B) [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %complete_type.447: = complete_type_witness %ptr.294 [concrete] +// CHECK:STDOUT: %complete_type.85b: = complete_type_witness %ptr.432 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -254,15 +254,15 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: %v: @F.%ptr.loc6_20.1 (%ptr.e8f) = value_binding v, %v.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.bb8 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.bb8 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.3c8 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.3c8 = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %p.param: %ptr.294 = value_param call_param0 -// CHECK:STDOUT: %.loc11: type = splice_block %ptr [concrete = constants.%ptr.294] { +// CHECK:STDOUT: %p.param: %ptr.432 = value_param call_param0 +// CHECK:STDOUT: %.loc11: type = splice_block %ptr [concrete = constants.%ptr.432] { // CHECK:STDOUT: %B.ref.loc11_9: type = name_ref B, file.%B.decl.loc4 [concrete = constants.%B] -// CHECK:STDOUT: %ptr: type = ptr_type %B.ref.loc11_9 [concrete = constants.%ptr.294] +// CHECK:STDOUT: %ptr: type = ptr_type %B.ref.loc11_9 [concrete = constants.%ptr.432] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.294 = value_binding p, %p.param +// CHECK:STDOUT: %p: %ptr.432 = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl.loc13: type = class_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: } @@ -291,11 +291,11 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param: %ptr.294) { +// CHECK:STDOUT: fn @G(%p.param: %ptr.432) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %B.ref.loc11_17: type = name_ref B, file.%B.decl.loc4 [concrete = constants.%B] -// CHECK:STDOUT: %p.ref: %ptr.294 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.432 = name_ref p, %p // 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(%p.ref) // CHECK:STDOUT: return @@ -309,11 +309,11 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%B) { // CHECK:STDOUT: %T.loc6_7.1 => constants.%B -// CHECK:STDOUT: %ptr.loc6_20.1 => constants.%ptr.294 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bb8 +// CHECK:STDOUT: %ptr.loc6_20.1 => constants.%ptr.432 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3c8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.447 +// CHECK:STDOUT: %require_complete => constants.%complete_type.85b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_incomplete_in_function_at_eof.carbon @@ -332,13 +332,13 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %ptr.294: type = ptr_type %B [concrete] -// CHECK:STDOUT: %pattern_type.bb8: type = pattern_type %ptr.294 [concrete] +// CHECK:STDOUT: %ptr.432: type = ptr_type %B [concrete] +// CHECK:STDOUT: %pattern_type.3c8: type = pattern_type %ptr.432 [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%B) [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness %ptr.294 [concrete] -// CHECK:STDOUT: %pattern_type.787: type = pattern_type %B [concrete] +// CHECK:STDOUT: %complete_type: = complete_type_witness %ptr.432 [concrete] +// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -375,15 +375,15 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: %p: @F.%ptr.loc6_20.1 (%ptr.e8f) = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.bb8 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.bb8 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.3c8 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.3c8 = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %p.param: %ptr.294 = value_param call_param0 -// CHECK:STDOUT: %.loc20: type = splice_block %ptr [concrete = constants.%ptr.294] { +// CHECK:STDOUT: %p.param: %ptr.432 = value_param call_param0 +// CHECK:STDOUT: %.loc20: type = splice_block %ptr [concrete = constants.%ptr.432] { // CHECK:STDOUT: %B.ref.loc20_9: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %ptr: type = ptr_type %B.ref.loc20_9 [concrete = constants.%ptr.294] +// CHECK:STDOUT: %ptr: type = ptr_type %B.ref.loc20_9 [concrete = constants.%ptr.432] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.294 = value_binding p, %p.param +// CHECK:STDOUT: %p: %ptr.432 = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -413,11 +413,11 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param: %ptr.294) { +// CHECK:STDOUT: fn @G(%p.param: %ptr.432) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %B.ref.loc20_17: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %p.ref: %ptr.294 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.432 = name_ref p, %p // 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(%p.ref) // CHECK:STDOUT: return @@ -431,12 +431,12 @@ fn G(p: B*) { F(B, p); } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%B) { // CHECK:STDOUT: %T.loc6_7.1 => constants.%B -// CHECK:STDOUT: %ptr.loc6_20.1 => constants.%ptr.294 -// CHECK:STDOUT: %pattern_type.loc6 => constants.%pattern_type.bb8 +// CHECK:STDOUT: %ptr.loc6_20.1 => constants.%ptr.432 +// CHECK:STDOUT: %pattern_type.loc6 => constants.%pattern_type.3c8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6 => constants.%complete_type // CHECK:STDOUT: %require_complete.loc7 => -// CHECK:STDOUT: %pattern_type.loc7 => constants.%pattern_type.787 +// CHECK:STDOUT: %pattern_type.loc7 => constants.%pattern_type.e39 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/generic/dependent_param.carbon b/toolchain/check/testdata/generic/dependent_param.carbon index e19e2f32874f..75ca7783ac03 100644 --- a/toolchain/check/testdata/generic/dependent_param.carbon +++ b/toolchain/check/testdata/generic/dependent_param.carbon @@ -30,84 +30,84 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %T.f49: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Outer.type: type = generic_class_type @Outer [concrete] // CHECK:STDOUT: %Outer.generic: %Outer.type = struct_value () [concrete] -// CHECK:STDOUT: %Outer.467: type = class_type @Outer, @Outer(%T.f49) [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f49 [symbolic] -// CHECK:STDOUT: %pattern_type.c0fdca.2: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %U.51d: %T.as_type = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %Inner.type.1f5: type = generic_class_type @Inner, @Outer(%T.f49) [symbolic] -// CHECK:STDOUT: %Inner.generic.ac8: %Inner.type.1f5 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.a12: type = class_type @Inner, @Inner(%T.f49, %U.51d) [symbolic] -// CHECK:STDOUT: %.dedae6.2: Core.Form = init_form %T.as_type [symbolic] -// CHECK:STDOUT: %Inner.Get.type.5c5: type = fn_type @Inner.Get, @Inner(%T.f49, %U.51d) [symbolic] -// CHECK:STDOUT: %Inner.Get.48d: %Inner.Get.type.5c5 = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.77e: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2dd: = lookup_impl_witness %T.f49, @Copy [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.e9f10f.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f49) [symbolic] -// CHECK:STDOUT: %.e16: type = fn_type_with_self_type %Copy.WithSelf.Op.type.e9f10f.2, %T.f49 [symbolic] -// CHECK:STDOUT: %impl.elem0.41e: %.e16 = impl_witness_access %Copy.lookup_impl_witness.2dd, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7ec: = specific_impl_function %impl.elem0.41e, @Copy.WithSelf.Op(%T.f49) [symbolic] -// CHECK:STDOUT: %bound_method.f9a: = bound_method %U.51d, %impl.elem0.41e [symbolic] -// CHECK:STDOUT: %bound_method.acb: = bound_method %U.51d, %specific_impl_fn.7ec [symbolic] +// CHECK:STDOUT: %Outer.409: type = class_type @Outer, @Outer(%T.f84) [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f84 [symbolic] +// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %U.7e5: %T.as_type = symbolic_binding U, 1 [symbolic] +// CHECK:STDOUT: %Inner.type.272: type = generic_class_type @Inner, @Outer(%T.f84) [symbolic] +// CHECK:STDOUT: %Inner.generic.e21: %Inner.type.272 = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.698: type = class_type @Inner, @Inner(%T.f84, %U.7e5) [symbolic] +// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %Inner.Get.type.8de: type = fn_type @Inner.Get, @Inner(%T.f84, %U.7e5) [symbolic] +// CHECK:STDOUT: %Inner.Get.e2c: %Inner.Get.type.8de = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.d83: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d9c: = lookup_impl_witness %T.f84, @Copy [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c85f21.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.f84) [symbolic] +// CHECK:STDOUT: %.c29: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c85f21.2, %T.f84 [symbolic] +// CHECK:STDOUT: %impl.elem0.bd2: %.c29 = impl_witness_access %Copy.lookup_impl_witness.d9c, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e2a: = specific_impl_function %impl.elem0.bd2, @Copy.WithSelf.Op(%T.f84) [symbolic] +// CHECK:STDOUT: %bound_method.023: = bound_method %U.7e5, %impl.elem0.bd2 [symbolic] +// CHECK:STDOUT: %bound_method.0b2: = bound_method %U.7e5, %specific_impl_fn.e2a [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.14d: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Outer.0c2: type = class_type @Outer, @Outer(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %Inner.type.535: type = generic_class_type @Inner, @Outer(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %Inner.generic.f35: %Inner.type.535 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.987: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Outer.90e: type = class_type @Outer, @Outer(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %Inner.type.053: type = generic_class_type @Inner, @Outer(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %Inner.generic.ab4: %Inner.type.053 = struct_value () [concrete] // CHECK:STDOUT: %int_42.20e: Core.IntLiteral = int_value 42 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.061: = impl_witness imports.%Copy.impl_witness_table.fb5 [concrete] -// CHECK:STDOUT: %Copy.facet.23a: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.061) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %Copy.impl_witness.6da: = impl_witness imports.%Copy.impl_witness_table.06e [concrete] +// CHECK:STDOUT: %Copy.facet.f12: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.6da) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.98e: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_42.daa: %i32 = int_value 42 [concrete] -// CHECK:STDOUT: %Inner.ebc: type = class_type @Inner, @Inner(%Copy.facet.14d, %int_42.daa) [concrete] -// CHECK:STDOUT: %Inner.Get.type.fcb: type = fn_type @Inner.Get, @Inner(%Copy.facet.14d, %int_42.daa) [concrete] -// CHECK:STDOUT: %Inner.Get.cd1: %Inner.Get.type.fcb = struct_value () [concrete] -// CHECK:STDOUT: %Inner.Get.specific_fn: = specific_function %Inner.Get.cd1, @Inner.Get(%Copy.facet.14d, %int_42.daa) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet.14d [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_42.daa, %Int.as.Copy.impl.Op.ce7 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.ece: = bound_method %int_42.daa, %Int.as.Copy.impl.Op.specific_fn [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// 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.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: %Inner.aad: type = class_type @Inner, @Inner(%Copy.facet.987, %int_42.ac4) [concrete] +// CHECK:STDOUT: %Inner.Get.type.6e9: type = fn_type @Inner.Get, @Inner(%Copy.facet.987, %int_42.ac4) [concrete] +// CHECK:STDOUT: %Inner.Get.bb6: %Inner.Get.type.6e9 = struct_value () [concrete] +// CHECK:STDOUT: %Inner.Get.specific_fn: = specific_function %Inner.Get.bb6, @Inner.Get(%Copy.facet.987, %int_42.ac4) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet.987 [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_42.ac4, %Int.as.Copy.impl.Op.4f6 [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: %bound_method.590: = bound_method %int_42.ac4, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.83f = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Copy.impl_witness_table.fb5 = impl_witness_table (%Core.import_ref.83f), @Core.IntLiteral.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.bbf = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Copy.impl_witness_table.06e = impl_witness_table (%Core.import_ref.bbf), @Core.IntLiteral.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = ref_binding_pattern n [concrete] -// CHECK:STDOUT: %n.var_patt: %pattern_type.104 = var_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = ref_binding_pattern n [concrete] +// CHECK:STDOUT: %n.var_patt: %pattern_type.6b6 = var_pattern %n.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %n.var: ref %i32 = var %n.var_patt [concrete] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -125,7 +125,7 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Outer.467 +// CHECK:STDOUT: .Self = constants.%Outer.409 // CHECK:STDOUT: .T = // CHECK:STDOUT: .Inner = %Inner.decl // CHECK:STDOUT: } @@ -135,18 +135,18 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.Get.type: type = fn_type @Inner.Get, @Inner(%T, %U.loc5_16.1) [symbolic = %Inner.Get.type (constants.%Inner.Get.type.5c5)] -// CHECK:STDOUT: %Inner.Get: @Inner.%Inner.Get.type (%Inner.Get.type.5c5) = struct_value () [symbolic = %Inner.Get (constants.%Inner.Get.48d)] +// CHECK:STDOUT: %Inner.Get.type: type = fn_type @Inner.Get, @Inner(%T, %U.loc5_16.1) [symbolic = %Inner.Get.type (constants.%Inner.Get.type.8de)] +// CHECK:STDOUT: %Inner.Get: @Inner.%Inner.Get.type (%Inner.Get.type.8de) = struct_value () [symbolic = %Inner.Get (constants.%Inner.Get.e2c)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Inner.Get.decl: @Inner.%Inner.Get.type (%Inner.Get.type.5c5) = fn_decl @Inner.Get [symbolic = @Inner.%Inner.Get (constants.%Inner.Get.48d)] { -// CHECK:STDOUT: %return.param_patt: @Inner.Get.%pattern_type (%pattern_type.c0fdca.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Inner.Get.%pattern_type (%pattern_type.c0fdca.2) = return_slot_pattern %return.param_patt, %.loc7_17.3 [concrete] +// CHECK:STDOUT: %Inner.Get.decl: @Inner.%Inner.Get.type (%Inner.Get.type.8de) = fn_decl @Inner.Get [symbolic = @Inner.%Inner.Get (constants.%Inner.Get.e2c)] { +// CHECK:STDOUT: %return.param_patt: @Inner.Get.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Inner.Get.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt, %.loc7_17.3 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Outer.%T.loc4_14.2 [symbolic = %T (constants.%T.f49)] +// CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Outer.%T.loc4_14.2 [symbolic = %T (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc7_17.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc7_17.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc7_17.3: type = converted %T.ref, %T.as_type.loc7_17.2 [symbolic = %T.as_type.loc7_17.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc7_17.4: Core.Form = init_form %.loc7_17.3 [symbolic = %.loc7_17.2 (constants.%.dedae6.2)] +// CHECK:STDOUT: %.loc7_17.4: Core.Form = init_form %.loc7_17.3 [symbolic = %.loc7_17.2 (constants.%.1ce700.2)] // CHECK:STDOUT: %return.param: ref @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = out_param call_param0 // CHECK:STDOUT: %return: ref @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = return_slot %return.param // CHECK:STDOUT: } @@ -154,7 +154,7 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Inner.a12 +// CHECK:STDOUT: .Self = constants.%Inner.698 // CHECK:STDOUT: .T = // CHECK:STDOUT: .Get = %Inner.Get.decl // CHECK:STDOUT: .U = @@ -162,29 +162,29 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Inner.Get(@Outer.%T.loc4_14.2: %Copy.type, @Inner.%U.loc5_16.2: @Inner.%T.as_type.loc5_19.1 (%T.as_type)) { -// CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.f49)] +// CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.f84)] // CHECK:STDOUT: %T.as_type.loc7_17.1: type = facet_access_type %T [symbolic = %T.as_type.loc7_17.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc7_17.2: Core.Form = init_form %T.as_type.loc7_17.1 [symbolic = %.loc7_17.2 (constants.%.dedae6.2)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc7_17.1 [symbolic = %pattern_type (constants.%pattern_type.c0fdca.2)] +// CHECK:STDOUT: %.loc7_17.2: Core.Form = init_form %T.as_type.loc7_17.1 [symbolic = %.loc7_17.2 (constants.%.1ce700.2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc7_17.1 [symbolic = %pattern_type (constants.%pattern_type.2c66b4.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc7_17.1 [symbolic = %require_complete (constants.%require_complete.77e)] -// CHECK:STDOUT: %U: @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = symbolic_binding U, 1 [symbolic = %U (constants.%U.51d)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.2)] -// CHECK:STDOUT: %.loc7_28: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc7_28 (constants.%.e16)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2dd)] -// CHECK:STDOUT: %impl.elem0.loc7_28.2: @Inner.Get.%.loc7_28 (%.e16) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_28.2 (constants.%impl.elem0.41e)] -// CHECK:STDOUT: %bound_method.loc7_28.3: = bound_method %U, %impl.elem0.loc7_28.2 [symbolic = %bound_method.loc7_28.3 (constants.%bound_method.f9a)] -// CHECK:STDOUT: %specific_impl_fn.loc7_28.2: = specific_impl_function %impl.elem0.loc7_28.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc7_28.2 (constants.%specific_impl_fn.7ec)] -// CHECK:STDOUT: %bound_method.loc7_28.4: = bound_method %U, %specific_impl_fn.loc7_28.2 [symbolic = %bound_method.loc7_28.4 (constants.%bound_method.acb)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc7_17.1 [symbolic = %require_complete (constants.%require_complete.d83)] +// CHECK:STDOUT: %U: @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = symbolic_binding U, 1 [symbolic = %U (constants.%U.7e5)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.2)] +// CHECK:STDOUT: %.loc7_28: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc7_28 (constants.%.c29)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c)] +// CHECK:STDOUT: %impl.elem0.loc7_28.2: @Inner.Get.%.loc7_28 (%.c29) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_28.2 (constants.%impl.elem0.bd2)] +// CHECK:STDOUT: %bound_method.loc7_28.3: = bound_method %U, %impl.elem0.loc7_28.2 [symbolic = %bound_method.loc7_28.3 (constants.%bound_method.023)] +// CHECK:STDOUT: %specific_impl_fn.loc7_28.2: = specific_impl_function %impl.elem0.loc7_28.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc7_28.2 (constants.%specific_impl_fn.e2a)] +// CHECK:STDOUT: %bound_method.loc7_28.4: = bound_method %U, %specific_impl_fn.loc7_28.2 [symbolic = %bound_method.loc7_28.4 (constants.%bound_method.0b2)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %U.ref: @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = name_ref U, @Inner.%U.loc5_16.2 [symbolic = %U (constants.%U.51d)] -// CHECK:STDOUT: %impl.elem0.loc7_28.1: @Inner.Get.%.loc7_28 (%.e16) = impl_witness_access constants.%Copy.lookup_impl_witness.2dd, element0 [symbolic = %impl.elem0.loc7_28.2 (constants.%impl.elem0.41e)] -// CHECK:STDOUT: %bound_method.loc7_28.1: = bound_method %U.ref, %impl.elem0.loc7_28.1 [symbolic = %bound_method.loc7_28.3 (constants.%bound_method.f9a)] -// CHECK:STDOUT: %specific_impl_fn.loc7_28.1: = specific_impl_function %impl.elem0.loc7_28.1, @Copy.WithSelf.Op(constants.%T.f49) [symbolic = %specific_impl_fn.loc7_28.2 (constants.%specific_impl_fn.7ec)] -// CHECK:STDOUT: %bound_method.loc7_28.2: = bound_method %U.ref, %specific_impl_fn.loc7_28.1 [symbolic = %bound_method.loc7_28.4 (constants.%bound_method.acb)] +// CHECK:STDOUT: %U.ref: @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = name_ref U, @Inner.%U.loc5_16.2 [symbolic = %U (constants.%U.7e5)] +// CHECK:STDOUT: %impl.elem0.loc7_28.1: @Inner.Get.%.loc7_28 (%.c29) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c, element0 [symbolic = %impl.elem0.loc7_28.2 (constants.%impl.elem0.bd2)] +// CHECK:STDOUT: %bound_method.loc7_28.1: = bound_method %U.ref, %impl.elem0.loc7_28.1 [symbolic = %bound_method.loc7_28.3 (constants.%bound_method.023)] +// CHECK:STDOUT: %specific_impl_fn.loc7_28.1: = specific_impl_function %impl.elem0.loc7_28.1, @Copy.WithSelf.Op(constants.%T.f84) [symbolic = %specific_impl_fn.loc7_28.2 (constants.%specific_impl_fn.e2a)] +// CHECK:STDOUT: %bound_method.loc7_28.2: = bound_method %U.ref, %specific_impl_fn.loc7_28.1 [symbolic = %bound_method.loc7_28.4 (constants.%bound_method.0b2)] // CHECK:STDOUT: %.loc7_17.1: ref @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = splice_block %return.param {} // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) to %.loc7_17.1 = call %bound_method.loc7_28.2(%U.ref) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param @@ -195,90 +195,90 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %Copy.facet.loc13_23: %Copy.type = facet_value %i32, (constants.%Copy.impl_witness.1a4) [concrete = constants.%Copy.facet.14d] -// CHECK:STDOUT: %.loc13_23: %Copy.type = converted %i32, %Copy.facet.loc13_23 [concrete = constants.%Copy.facet.14d] -// CHECK:STDOUT: %Outer: type = class_type @Outer, @Outer(constants.%Copy.facet.14d) [concrete = constants.%Outer.0c2] -// CHECK:STDOUT: %.loc13_24: %Inner.type.535 = specific_constant @Outer.%Inner.decl, @Outer(constants.%Copy.facet.14d) [concrete = constants.%Inner.generic.f35] -// CHECK:STDOUT: %Inner.ref: %Inner.type.535 = name_ref Inner, %.loc13_24 [concrete = constants.%Inner.generic.f35] +// CHECK:STDOUT: %Copy.facet.loc13_23: %Copy.type = facet_value %i32, (constants.%Copy.impl_witness.0e0) [concrete = constants.%Copy.facet.987] +// CHECK:STDOUT: %.loc13_23: %Copy.type = converted %i32, %Copy.facet.loc13_23 [concrete = constants.%Copy.facet.987] +// CHECK:STDOUT: %Outer: type = class_type @Outer, @Outer(constants.%Copy.facet.987) [concrete = constants.%Outer.90e] +// CHECK:STDOUT: %.loc13_24: %Inner.type.053 = specific_constant @Outer.%Inner.decl, @Outer(constants.%Copy.facet.987) [concrete = constants.%Inner.generic.ab4] +// CHECK:STDOUT: %Inner.ref: %Inner.type.053 = name_ref Inner, %.loc13_24 [concrete = constants.%Inner.generic.ab4] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] -// CHECK:STDOUT: %Copy.facet.loc13_33: %Copy.type = facet_value Core.IntLiteral, (constants.%Copy.impl_witness.061) [concrete = constants.%Copy.facet.23a] -// CHECK:STDOUT: %.loc13_33.1: %Copy.type = converted Core.IntLiteral, %Copy.facet.loc13_33 [concrete = constants.%Copy.facet.23a] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %Copy.facet.loc13_33: %Copy.type = facet_value Core.IntLiteral, (constants.%Copy.impl_witness.6da) [concrete = constants.%Copy.facet.f12] +// CHECK:STDOUT: %.loc13_33.1: %Copy.type = converted Core.IntLiteral, %Copy.facet.loc13_33 [concrete = constants.%Copy.facet.f12] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc13_33.1: = bound_method constants.%int_42.20e, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc13_33.2: = bound_method constants.%int_42.20e, %specific_fn [concrete = constants.%bound_method.98e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc13_33.2(constants.%int_42.20e) [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %.loc13_33.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %.loc13_33.3: %i32 = converted constants.%int_42.20e, %.loc13_33.2 [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(constants.%Copy.facet.14d, constants.%int_42.daa) [concrete = constants.%Inner.ebc] -// CHECK:STDOUT: %.loc13_34: %Inner.Get.type.fcb = specific_constant @Inner.%Inner.Get.decl, @Inner(constants.%Copy.facet.14d, constants.%int_42.daa) [concrete = constants.%Inner.Get.cd1] -// CHECK:STDOUT: %Get.ref: %Inner.Get.type.fcb = name_ref Get, %.loc13_34 [concrete = constants.%Inner.Get.cd1] -// CHECK:STDOUT: %Inner.Get.specific_fn: = specific_function %Get.ref, @Inner.Get(constants.%Copy.facet.14d, constants.%int_42.daa) [concrete = constants.%Inner.Get.specific_fn] +// CHECK:STDOUT: %bound_method.loc13_33.2: = bound_method constants.%int_42.20e, %specific_fn [concrete = constants.%bound_method.098] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc13_33.2(constants.%int_42.20e) [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %.loc13_33.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %.loc13_33.3: %i32 = converted constants.%int_42.20e, %.loc13_33.2 [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(constants.%Copy.facet.987, constants.%int_42.ac4) [concrete = constants.%Inner.aad] +// CHECK:STDOUT: %.loc13_34: %Inner.Get.type.6e9 = specific_constant @Inner.%Inner.Get.decl, @Inner(constants.%Copy.facet.987, constants.%int_42.ac4) [concrete = constants.%Inner.Get.bb6] +// CHECK:STDOUT: %Get.ref: %Inner.Get.type.6e9 = name_ref Get, %.loc13_34 [concrete = constants.%Inner.Get.bb6] +// CHECK:STDOUT: %Inner.Get.specific_fn: = specific_function %Get.ref, @Inner.Get(constants.%Copy.facet.987, constants.%int_42.ac4) [concrete = constants.%Inner.Get.specific_fn] // CHECK:STDOUT: %Inner.Get.call: init %i32 = call %Inner.Get.specific_fn() // CHECK:STDOUT: assign file.%n.var, %Inner.Get.call // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Outer(constants.%T.f49) { -// CHECK:STDOUT: %T.loc4_14.1 => constants.%T.f49 +// CHECK:STDOUT: specific @Outer(constants.%T.f84) { +// CHECK:STDOUT: %T.loc4_14.1 => constants.%T.f84 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.1f5 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.ac8 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.272 +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.e21 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner(constants.%T.f49, constants.%U.51d) { -// CHECK:STDOUT: %T => constants.%T.f49 +// CHECK:STDOUT: specific @Inner(constants.%T.f84, constants.%U.7e5) { +// CHECK:STDOUT: %T => constants.%T.f84 // CHECK:STDOUT: %T.as_type.loc5_19.1 => constants.%T.as_type -// CHECK:STDOUT: %U.loc5_16.1 => constants.%U.51d -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c0fdca.2 +// CHECK:STDOUT: %U.loc5_16.1 => constants.%U.7e5 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2c66b4.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.Get.type => constants.%Inner.Get.type.5c5 -// CHECK:STDOUT: %Inner.Get => constants.%Inner.Get.48d +// CHECK:STDOUT: %Inner.Get.type => constants.%Inner.Get.type.8de +// CHECK:STDOUT: %Inner.Get => constants.%Inner.Get.e2c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.Get(constants.%T.f49, constants.%U.51d) { -// CHECK:STDOUT: %T => constants.%T.f49 +// CHECK:STDOUT: specific @Inner.Get(constants.%T.f84, constants.%U.7e5) { +// CHECK:STDOUT: %T => constants.%T.f84 // CHECK:STDOUT: %T.as_type.loc7_17.1 => constants.%T.as_type -// CHECK:STDOUT: %.loc7_17.2 => constants.%.dedae6.2 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c0fdca.2 +// CHECK:STDOUT: %.loc7_17.2 => constants.%.1ce700.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2c66b4.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Outer(constants.%Copy.facet.14d) { -// CHECK:STDOUT: %T.loc4_14.1 => constants.%Copy.facet.14d +// CHECK:STDOUT: specific @Outer(constants.%Copy.facet.987) { +// CHECK:STDOUT: %T.loc4_14.1 => constants.%Copy.facet.987 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type => constants.%Inner.type.535 -// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.f35 +// CHECK:STDOUT: %Inner.type => constants.%Inner.type.053 +// CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.ab4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner(constants.%Copy.facet.14d, constants.%int_42.daa) { -// CHECK:STDOUT: %T => constants.%Copy.facet.14d +// CHECK:STDOUT: specific @Inner(constants.%Copy.facet.987, constants.%int_42.ac4) { +// CHECK:STDOUT: %T => constants.%Copy.facet.987 // CHECK:STDOUT: %T.as_type.loc5_19.1 => constants.%i32 -// CHECK:STDOUT: %U.loc5_16.1 => constants.%int_42.daa -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.104 +// CHECK:STDOUT: %U.loc5_16.1 => constants.%int_42.ac4 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6b6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.Get.type => constants.%Inner.Get.type.fcb -// CHECK:STDOUT: %Inner.Get => constants.%Inner.Get.cd1 +// CHECK:STDOUT: %Inner.Get.type => constants.%Inner.Get.type.6e9 +// CHECK:STDOUT: %Inner.Get => constants.%Inner.Get.bb6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.Get(constants.%Copy.facet.14d, constants.%int_42.daa) { -// CHECK:STDOUT: %T => constants.%Copy.facet.14d +// CHECK:STDOUT: specific @Inner.Get(constants.%Copy.facet.987, constants.%int_42.ac4) { +// CHECK:STDOUT: %T => constants.%Copy.facet.987 // CHECK:STDOUT: %T.as_type.loc7_17.1 => constants.%i32 -// CHECK:STDOUT: %.loc7_17.2 => constants.%.7ea -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.104 +// CHECK:STDOUT: %.loc7_17.2 => constants.%.795 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6b6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %U => constants.%int_42.daa -// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.7e2 -// CHECK:STDOUT: %.loc7_28 => constants.%.604 -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.1a4 -// CHECK:STDOUT: %impl.elem0.loc7_28.2 => constants.%Int.as.Copy.impl.Op.ce7 +// CHECK:STDOUT: %U => constants.%int_42.ac4 +// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.d09 +// CHECK:STDOUT: %.loc7_28 => constants.%.7a6 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.0e0 +// CHECK:STDOUT: %impl.elem0.loc7_28.2 => constants.%Int.as.Copy.impl.Op.4f6 // CHECK:STDOUT: %bound_method.loc7_28.3 => constants.%Int.as.Copy.impl.Op.bound // CHECK:STDOUT: %specific_impl_fn.loc7_28.2 => constants.%Int.as.Copy.impl.Op.specific_fn -// CHECK:STDOUT: %bound_method.loc7_28.4 => constants.%bound_method.ece +// CHECK:STDOUT: %bound_method.loc7_28.4 => constants.%bound_method.590 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/generic/dot_self_symbolic_type.carbon b/toolchain/check/testdata/generic/dot_self_symbolic_type.carbon index 6921cfd7e83e..61cb3cc6237e 100644 --- a/toolchain/check/testdata/generic/dot_self_symbolic_type.carbon +++ b/toolchain/check/testdata/generic/dot_self_symbolic_type.carbon @@ -79,80 +79,80 @@ fn H(T:! type) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %A.type.0af: type = generic_interface_type @A [concrete] -// CHECK:STDOUT: %A.generic: %A.type.0af = struct_value () [concrete] +// CHECK:STDOUT: %A.type.55a: type = generic_interface_type @A [concrete] +// CHECK:STDOUT: %A.generic: %A.type.55a = struct_value () [concrete] // CHECK:STDOUT: %CC: type = symbolic_binding CC, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.1f98dc.1: type = class_type @C, @C(%CC) [symbolic] -// CHECK:STDOUT: %A.type.5ea944.2: type = facet_type <@A, @A(%CC)> [symbolic] -// CHECK:STDOUT: %.Self.1b7616.1: %A.type.5ea944.2 = symbolic_binding .Self [symbolic] -// CHECK:STDOUT: %A.assoc_type.092091.2: type = assoc_entity_type @A, @A(%CC) [symbolic] -// CHECK:STDOUT: %assoc0.818660.2: %A.assoc_type.092091.2 = assoc_entity element0, @A.WithSelf.%X [symbolic] -// CHECK:STDOUT: %require_complete.88d: = require_complete_type %A.type.5ea944.2 [symbolic] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.1b7616.1 [symbolic] -// CHECK:STDOUT: %A.lookup_impl_witness.15e6be.1: = lookup_impl_witness %.Self.1b7616.1, @A, @A(%CC) [symbolic] -// CHECK:STDOUT: %impl.elem0.b25b5d.1: type = impl_witness_access %A.lookup_impl_witness.15e6be.1, element0 [symbolic] -// CHECK:STDOUT: %A_where.type.f77576.1: type = facet_type <@A, @A(%CC) where %impl.elem0.b25b5d.1 = %CC> [symbolic] -// CHECK:STDOUT: %pattern_type.88a: type = pattern_type %A_where.type.f77576.1 [symbolic] -// CHECK:STDOUT: %T.4f4: %A_where.type.f77576.1 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %C.F.type.ac966c.1: type = fn_type @C.F, @C(%CC) [symbolic] -// CHECK:STDOUT: %C.F.a8a4df.1: %C.F.type.ac966c.1 = struct_value () [symbolic] +// CHECK:STDOUT: %C.1d0e8a.1: type = class_type @C, @C(%CC) [symbolic] +// CHECK:STDOUT: %A.type.acd3aa.2: type = facet_type <@A, @A(%CC)> [symbolic] +// CHECK:STDOUT: %.Self.049e23.1: %A.type.acd3aa.2 = symbolic_binding .Self [symbolic] +// CHECK:STDOUT: %A.assoc_type.447662.2: type = assoc_entity_type @A, @A(%CC) [symbolic] +// CHECK:STDOUT: %assoc0.e0998a.2: %A.assoc_type.447662.2 = assoc_entity element0, @A.WithSelf.%X [symbolic] +// CHECK:STDOUT: %require_complete.21f: = require_complete_type %A.type.acd3aa.2 [symbolic] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.049e23.1 [symbolic] +// CHECK:STDOUT: %A.lookup_impl_witness.7746a3.1: = lookup_impl_witness %.Self.049e23.1, @A, @A(%CC) [symbolic] +// CHECK:STDOUT: %impl.elem0.bf516c.1: type = impl_witness_access %A.lookup_impl_witness.7746a3.1, element0 [symbolic] +// CHECK:STDOUT: %A_where.type.df6ef4.1: type = facet_type <@A, @A(%CC) where %impl.elem0.bf516c.1 = %CC> [symbolic] +// CHECK:STDOUT: %pattern_type.4e9: type = pattern_type %A_where.type.df6ef4.1 [symbolic] +// CHECK:STDOUT: %T.9e3: %A_where.type.df6ef4.1 = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %C.F.type.55fb78.1: type = fn_type @C.F, @C(%CC) [symbolic] +// CHECK:STDOUT: %C.F.6da92d.1: %C.F.type.55fb78.1 = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %DD: type = symbolic_binding DD, 0 [symbolic] -// CHECK:STDOUT: %D.dbf: type = class_type @D, @D(%DD) [symbolic] +// CHECK:STDOUT: %D.784: type = class_type @D, @D(%DD) [symbolic] // CHECK:STDOUT: %T.091: type = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %D.G.type.e6f: type = fn_type @D.G, @D(%DD) [symbolic] -// CHECK:STDOUT: %D.G.6b0: %D.G.type.e6f = struct_value () [symbolic] -// CHECK:STDOUT: %C.1f98dc.2: type = class_type @C, @C(%DD) [symbolic] -// CHECK:STDOUT: %C.F.type.ac966c.2: type = fn_type @C.F, @C(%DD) [symbolic] -// CHECK:STDOUT: %C.F.a8a4df.2: %C.F.type.ac966c.2 = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.122: = require_complete_type %C.1f98dc.2 [symbolic] +// CHECK:STDOUT: %D.G.type.f2c: type = fn_type @D.G, @D(%DD) [symbolic] +// CHECK:STDOUT: %D.G.463: %D.G.type.f2c = struct_value () [symbolic] +// CHECK:STDOUT: %C.1d0e8a.2: type = class_type @C, @C(%DD) [symbolic] +// CHECK:STDOUT: %C.F.type.55fb78.2: type = fn_type @C.F, @C(%DD) [symbolic] +// CHECK:STDOUT: %C.F.6da92d.2: %C.F.type.55fb78.2 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.74a: = require_complete_type %C.1d0e8a.2 [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %D.G.type.ffd: type = fn_type @D.G, @D(%empty_struct_type) [concrete] -// CHECK:STDOUT: %D.G.e3b: %D.G.type.ffd = struct_value () [concrete] -// CHECK:STDOUT: %C.ea5: type = class_type @C, @C(%empty_struct_type) [concrete] -// CHECK:STDOUT: %C.F.type.143: type = fn_type @C.F, @C(%empty_struct_type) [concrete] -// CHECK:STDOUT: %C.F.ada: %C.F.type.143 = struct_value () [concrete] +// CHECK:STDOUT: %D.G.type.035: type = fn_type @D.G, @D(%empty_struct_type) [concrete] +// CHECK:STDOUT: %D.G.4d8: %D.G.type.035 = struct_value () [concrete] +// CHECK:STDOUT: %C.d8e: type = class_type @C, @C(%empty_struct_type) [concrete] +// CHECK:STDOUT: %C.F.type.045: type = fn_type @C.F, @C(%empty_struct_type) [concrete] +// CHECK:STDOUT: %C.F.963: %C.F.type.045 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(%CC.loc6_11.2: type) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.F.type: type = fn_type @C.F, @C(%CC.loc6_11.1) [symbolic = %C.F.type (constants.%C.F.type.ac966c.1)] -// CHECK:STDOUT: %C.F: @C.%C.F.type (%C.F.type.ac966c.1) = struct_value () [symbolic = %C.F (constants.%C.F.a8a4df.1)] +// CHECK:STDOUT: %C.F.type: type = fn_type @C.F, @C(%CC.loc6_11.1) [symbolic = %C.F.type (constants.%C.F.type.55fb78.1)] +// CHECK:STDOUT: %C.F: @C.%C.F.type (%C.F.type.55fb78.1) = struct_value () [symbolic = %C.F (constants.%C.F.6da92d.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %C.F.decl: @C.%C.F.type (%C.F.type.ac966c.1) = fn_decl @C.F [symbolic = @C.%C.F (constants.%C.F.a8a4df.1)] { -// CHECK:STDOUT: %T.patt: @C.F.%pattern_type (%pattern_type.88a) = symbolic_binding_pattern T, 1 [concrete] +// CHECK:STDOUT: %C.F.decl: @C.%C.F.type (%C.F.type.55fb78.1) = fn_decl @C.F [symbolic = @C.%C.F (constants.%C.F.6da92d.1)] { +// CHECK:STDOUT: %T.patt: @C.F.%pattern_type (%pattern_type.4e9) = symbolic_binding_pattern T, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc11_25.1: type = splice_block %.loc11_25.2 [symbolic = %A_where.type (constants.%A_where.type.f77576.1)] { +// CHECK:STDOUT: %.loc11_25.1: type = splice_block %.loc11_25.2 [symbolic = %A_where.type (constants.%A_where.type.df6ef4.1)] { // CHECK:STDOUT: %.Self.loc11_16: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] -// CHECK:STDOUT: %A.ref: %A.type.0af = name_ref A, file.%A.decl [concrete = constants.%A.generic] +// CHECK:STDOUT: %A.ref: %A.type.55a = name_ref A, file.%A.decl [concrete = constants.%A.generic] // CHECK:STDOUT: %CC.ref.loc11_21: type = name_ref CC, @C.%CC.loc6_11.2 [symbolic = %CC (constants.%CC)] -// CHECK:STDOUT: %A.type.loc11_23.2: type = facet_type <@A, @A(constants.%CC)> [symbolic = %A.type.loc11_23.1 (constants.%A.type.5ea944.2)] -// CHECK:STDOUT: %.Self.loc11_25.2: @C.F.%A.type.loc11_23.1 (%A.type.5ea944.2) = symbolic_binding .Self [symbolic = %.Self.loc11_25.1 (constants.%.Self.1b7616.1)] -// CHECK:STDOUT: %.Self.ref: @C.F.%A.type.loc11_23.1 (%A.type.5ea944.2) = name_ref .Self, %.Self.loc11_25.2 [symbolic = %.Self.loc11_25.1 (constants.%.Self.1b7616.1)] +// CHECK:STDOUT: %A.type.loc11_23.2: type = facet_type <@A, @A(constants.%CC)> [symbolic = %A.type.loc11_23.1 (constants.%A.type.acd3aa.2)] +// CHECK:STDOUT: %.Self.loc11_25.2: @C.F.%A.type.loc11_23.1 (%A.type.acd3aa.2) = symbolic_binding .Self [symbolic = %.Self.loc11_25.1 (constants.%.Self.049e23.1)] +// CHECK:STDOUT: %.Self.ref: @C.F.%A.type.loc11_23.1 (%A.type.acd3aa.2) = name_ref .Self, %.Self.loc11_25.2 [symbolic = %.Self.loc11_25.1 (constants.%.Self.049e23.1)] // CHECK:STDOUT: %.Self.as_type.loc11_31.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc11_31.1 (constants.%.Self.as_type)] // CHECK:STDOUT: %.loc11_31.1: type = converted %.Self.ref, %.Self.as_type.loc11_31.2 [symbolic = %.Self.as_type.loc11_31.1 (constants.%.Self.as_type)] -// CHECK:STDOUT: %.loc11_31.2: @C.F.%A.assoc_type (%A.assoc_type.092091.2) = specific_constant @X.%assoc0, @A.WithSelf(constants.%CC, constants.%.Self.1b7616.1) [symbolic = %assoc0 (constants.%assoc0.818660.2)] -// CHECK:STDOUT: %X.ref: @C.F.%A.assoc_type (%A.assoc_type.092091.2) = name_ref X, %.loc11_31.2 [symbolic = %assoc0 (constants.%assoc0.818660.2)] -// CHECK:STDOUT: %impl.elem0.loc11_31.2: type = impl_witness_access constants.%A.lookup_impl_witness.15e6be.1, element0 [symbolic = %impl.elem0.loc11_31.1 (constants.%impl.elem0.b25b5d.1)] +// CHECK:STDOUT: %.loc11_31.2: @C.F.%A.assoc_type (%A.assoc_type.447662.2) = specific_constant @X.%assoc0, @A.WithSelf(constants.%CC, constants.%.Self.049e23.1) [symbolic = %assoc0 (constants.%assoc0.e0998a.2)] +// CHECK:STDOUT: %X.ref: @C.F.%A.assoc_type (%A.assoc_type.447662.2) = name_ref X, %.loc11_31.2 [symbolic = %assoc0 (constants.%assoc0.e0998a.2)] +// CHECK:STDOUT: %impl.elem0.loc11_31.2: type = impl_witness_access constants.%A.lookup_impl_witness.7746a3.1, element0 [symbolic = %impl.elem0.loc11_31.1 (constants.%impl.elem0.bf516c.1)] // CHECK:STDOUT: %CC.ref.loc11_36: type = name_ref CC, @C.%CC.loc6_11.2 [symbolic = %CC (constants.%CC)] -// CHECK:STDOUT: %.loc11_25.2: type = where_expr [symbolic = %A_where.type (constants.%A_where.type.f77576.1)] { +// CHECK:STDOUT: %.loc11_25.2: type = where_expr [symbolic = %A_where.type (constants.%A_where.type.df6ef4.1)] { // CHECK:STDOUT: requirement_base_facet_type %A.type.loc11_23.2 // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc11_31.2, %CC.ref.loc11_36 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc11_16.2: @C.F.%A_where.type (%A_where.type.f77576.1) = symbolic_binding T, 1 [symbolic = %T.loc11_16.1 (constants.%T.4f4)] +// CHECK:STDOUT: %T.loc11_16.2: @C.F.%A_where.type (%A_where.type.df6ef4.1) = symbolic_binding T, 1 [symbolic = %T.loc11_16.1 (constants.%T.9e3)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.1f98dc.1 +// CHECK:STDOUT: .Self = constants.%C.1d0e8a.1 // CHECK:STDOUT: .A = // CHECK:STDOUT: .CC = // CHECK:STDOUT: .F = %C.F.decl @@ -170,26 +170,26 @@ fn H(T:! type) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%D.dbf +// CHECK:STDOUT: .Self = constants.%D.784 // CHECK:STDOUT: .G = %D.G.decl // CHECK:STDOUT: .C = // CHECK:STDOUT: .DD = // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @C.F(@C.%CC.loc6_11.2: type, %T.loc11_16.2: @C.F.%A_where.type (%A_where.type.f77576.1)) { +// CHECK:STDOUT: generic fn @C.F(@C.%CC.loc6_11.2: type, %T.loc11_16.2: @C.F.%A_where.type (%A_where.type.df6ef4.1)) { // CHECK:STDOUT: %CC: type = symbolic_binding CC, 0 [symbolic = %CC (constants.%CC)] -// CHECK:STDOUT: %A.type.loc11_23.1: type = facet_type <@A, @A(%CC)> [symbolic = %A.type.loc11_23.1 (constants.%A.type.5ea944.2)] -// CHECK:STDOUT: %.Self.loc11_25.1: @C.F.%A.type.loc11_23.1 (%A.type.5ea944.2) = symbolic_binding .Self [symbolic = %.Self.loc11_25.1 (constants.%.Self.1b7616.1)] -// CHECK:STDOUT: %require_complete: = require_complete_type %A.type.loc11_23.1 [symbolic = %require_complete (constants.%require_complete.88d)] +// CHECK:STDOUT: %A.type.loc11_23.1: type = facet_type <@A, @A(%CC)> [symbolic = %A.type.loc11_23.1 (constants.%A.type.acd3aa.2)] +// CHECK:STDOUT: %.Self.loc11_25.1: @C.F.%A.type.loc11_23.1 (%A.type.acd3aa.2) = symbolic_binding .Self [symbolic = %.Self.loc11_25.1 (constants.%.Self.049e23.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %A.type.loc11_23.1 [symbolic = %require_complete (constants.%require_complete.21f)] // CHECK:STDOUT: %.Self.as_type.loc11_31.1: type = facet_access_type %.Self.loc11_25.1 [symbolic = %.Self.as_type.loc11_31.1 (constants.%.Self.as_type)] -// CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%CC) [symbolic = %A.assoc_type (constants.%A.assoc_type.092091.2)] -// CHECK:STDOUT: %assoc0: @C.F.%A.assoc_type (%A.assoc_type.092091.2) = assoc_entity element0, @A.WithSelf.%X [symbolic = %assoc0 (constants.%assoc0.818660.2)] -// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %.Self.loc11_25.1, @A, @A(%CC) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.15e6be.1)] -// CHECK:STDOUT: %impl.elem0.loc11_31.1: type = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_31.1 (constants.%impl.elem0.b25b5d.1)] -// CHECK:STDOUT: %A_where.type: type = facet_type <@A, @A(%CC) where %impl.elem0.loc11_31.1 = %CC> [symbolic = %A_where.type (constants.%A_where.type.f77576.1)] -// CHECK:STDOUT: %T.loc11_16.1: @C.F.%A_where.type (%A_where.type.f77576.1) = symbolic_binding T, 1 [symbolic = %T.loc11_16.1 (constants.%T.4f4)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %A_where.type [symbolic = %pattern_type (constants.%pattern_type.88a)] +// CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%CC) [symbolic = %A.assoc_type (constants.%A.assoc_type.447662.2)] +// CHECK:STDOUT: %assoc0: @C.F.%A.assoc_type (%A.assoc_type.447662.2) = assoc_entity element0, @A.WithSelf.%X [symbolic = %assoc0 (constants.%assoc0.e0998a.2)] +// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %.Self.loc11_25.1, @A, @A(%CC) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.7746a3.1)] +// CHECK:STDOUT: %impl.elem0.loc11_31.1: type = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_31.1 (constants.%impl.elem0.bf516c.1)] +// CHECK:STDOUT: %A_where.type: type = facet_type <@A, @A(%CC) where %impl.elem0.loc11_31.1 = %CC> [symbolic = %A_where.type (constants.%A_where.type.df6ef4.1)] +// CHECK:STDOUT: %T.loc11_16.1: @C.F.%A_where.type (%A_where.type.df6ef4.1) = symbolic_binding T, 1 [symbolic = %T.loc11_16.1 (constants.%T.9e3)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %A_where.type [symbolic = %pattern_type (constants.%pattern_type.4e9)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -204,18 +204,18 @@ fn H(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %DD: type = symbolic_binding DD, 0 [symbolic = %DD (constants.%DD)] -// CHECK:STDOUT: %C.loc25_9.2: type = class_type @C, @C(%DD) [symbolic = %C.loc25_9.2 (constants.%C.1f98dc.2)] -// CHECK:STDOUT: %require_complete: = require_complete_type %C.loc25_9.2 [symbolic = %require_complete (constants.%require_complete.122)] -// CHECK:STDOUT: %C.F.type: type = fn_type @C.F, @C(%DD) [symbolic = %C.F.type (constants.%C.F.type.ac966c.2)] -// CHECK:STDOUT: %C.F: @D.G.%C.F.type (%C.F.type.ac966c.2) = struct_value () [symbolic = %C.F (constants.%C.F.a8a4df.2)] +// CHECK:STDOUT: %C.loc25_9.2: type = class_type @C, @C(%DD) [symbolic = %C.loc25_9.2 (constants.%C.1d0e8a.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %C.loc25_9.2 [symbolic = %require_complete (constants.%require_complete.74a)] +// CHECK:STDOUT: %C.F.type: type = fn_type @C.F, @C(%DD) [symbolic = %C.F.type (constants.%C.F.type.55fb78.2)] +// CHECK:STDOUT: %C.F: @D.G.%C.F.type (%C.F.type.55fb78.2) = struct_value () [symbolic = %C.F (constants.%C.F.6da92d.2)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %DD.ref: type = name_ref DD, @D.%DD.loc15_11.2 [symbolic = %DD (constants.%DD)] -// CHECK:STDOUT: %C.loc25_9.1: type = class_type @C, @C(constants.%DD) [symbolic = %C.loc25_9.2 (constants.%C.1f98dc.2)] -// CHECK:STDOUT: %.loc25: @D.G.%C.F.type (%C.F.type.ac966c.2) = specific_constant @C.%C.F.decl, @C(constants.%DD) [symbolic = %C.F (constants.%C.F.a8a4df.2)] -// CHECK:STDOUT: %F.ref: @D.G.%C.F.type (%C.F.type.ac966c.2) = name_ref F, %.loc25 [symbolic = %C.F (constants.%C.F.a8a4df.2)] +// CHECK:STDOUT: %C.loc25_9.1: type = class_type @C, @C(constants.%DD) [symbolic = %C.loc25_9.2 (constants.%C.1d0e8a.2)] +// CHECK:STDOUT: %.loc25: @D.G.%C.F.type (%C.F.type.55fb78.2) = specific_constant @C.%C.F.decl, @C(constants.%DD) [symbolic = %C.F (constants.%C.F.6da92d.2)] +// CHECK:STDOUT: %F.ref: @D.G.%C.F.type (%C.F.type.55fb78.2) = name_ref F, %.loc25 [symbolic = %C.F (constants.%C.F.6da92d.2)] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc16_9.2 [symbolic = %T.loc16_9.1 (constants.%T.091)] // CHECK:STDOUT: // CHECK:STDOUT: } @@ -225,31 +225,31 @@ fn H(T:! type) { // CHECK:STDOUT: %CC.loc6_11.1 => constants.%CC // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.F.type => constants.%C.F.type.ac966c.1 -// CHECK:STDOUT: %C.F => constants.%C.F.a8a4df.1 +// CHECK:STDOUT: %C.F.type => constants.%C.F.type.55fb78.1 +// CHECK:STDOUT: %C.F => constants.%C.F.6da92d.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.F(constants.%CC, constants.%T.4f4) { +// CHECK:STDOUT: specific @C.F(constants.%CC, constants.%T.9e3) { // CHECK:STDOUT: %CC => constants.%CC -// CHECK:STDOUT: %A.type.loc11_23.1 => constants.%A.type.5ea944.2 -// CHECK:STDOUT: %.Self.loc11_25.1 => constants.%.Self.1b7616.1 -// CHECK:STDOUT: %require_complete => constants.%require_complete.88d +// CHECK:STDOUT: %A.type.loc11_23.1 => constants.%A.type.acd3aa.2 +// CHECK:STDOUT: %.Self.loc11_25.1 => constants.%.Self.049e23.1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.21f // CHECK:STDOUT: %.Self.as_type.loc11_31.1 => constants.%.Self.as_type -// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.092091.2 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.818660.2 -// CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.lookup_impl_witness.15e6be.1 -// CHECK:STDOUT: %impl.elem0.loc11_31.1 => constants.%impl.elem0.b25b5d.1 -// CHECK:STDOUT: %A_where.type => constants.%A_where.type.f77576.1 -// CHECK:STDOUT: %T.loc11_16.1 => constants.%T.4f4 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.88a +// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.447662.2 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.e0998a.2 +// CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.lookup_impl_witness.7746a3.1 +// CHECK:STDOUT: %impl.elem0.loc11_31.1 => constants.%impl.elem0.bf516c.1 +// CHECK:STDOUT: %A_where.type => constants.%A_where.type.df6ef4.1 +// CHECK:STDOUT: %T.loc11_16.1 => constants.%T.9e3 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4e9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%DD) { // CHECK:STDOUT: %DD.loc15_11.1 => constants.%DD // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %D.G.type => constants.%D.G.type.e6f -// CHECK:STDOUT: %D.G => constants.%D.G.6b0 +// CHECK:STDOUT: %D.G.type => constants.%D.G.type.f2c +// CHECK:STDOUT: %D.G => constants.%D.G.463 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D.G(constants.%DD, constants.%T.091) { @@ -260,16 +260,16 @@ fn H(T:! type) { // CHECK:STDOUT: %CC.loc6_11.1 => constants.%DD // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.F.type => constants.%C.F.type.ac966c.2 -// CHECK:STDOUT: %C.F => constants.%C.F.a8a4df.2 +// CHECK:STDOUT: %C.F.type => constants.%C.F.type.55fb78.2 +// CHECK:STDOUT: %C.F => constants.%C.F.6da92d.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%empty_struct_type) { // CHECK:STDOUT: %DD.loc15_11.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %D.G.type => constants.%D.G.type.ffd -// CHECK:STDOUT: %D.G => constants.%D.G.e3b +// CHECK:STDOUT: %D.G.type => constants.%D.G.type.035 +// CHECK:STDOUT: %D.G => constants.%D.G.4d8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D.G(constants.%empty_struct_type, constants.%T.67d) { @@ -277,18 +277,18 @@ fn H(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %DD => constants.%empty_struct_type -// CHECK:STDOUT: %C.loc25_9.2 => constants.%C.ea5 +// CHECK:STDOUT: %C.loc25_9.2 => constants.%C.d8e // CHECK:STDOUT: %require_complete => constants.%complete_type -// CHECK:STDOUT: %C.F.type => constants.%C.F.type.143 -// CHECK:STDOUT: %C.F => constants.%C.F.ada +// CHECK:STDOUT: %C.F.type => constants.%C.F.type.045 +// CHECK:STDOUT: %C.F => constants.%C.F.963 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%empty_struct_type) { // CHECK:STDOUT: %CC.loc6_11.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.F.type => constants.%C.F.type.143 -// CHECK:STDOUT: %C.F => constants.%C.F.ada +// CHECK:STDOUT: %C.F.type => constants.%C.F.type.045 +// CHECK:STDOUT: %C.F => constants.%C.F.963 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- dot_self_symbolic_in_impl_lookup.carbon @@ -298,113 +298,113 @@ fn H(T:! type) { // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %AA: type = symbolic_binding AA, 0 [symbolic] -// CHECK:STDOUT: %A.type.0af: type = generic_interface_type @A [concrete] +// CHECK:STDOUT: %A.type.55a: type = generic_interface_type @A [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %A.generic: %A.type.0af = struct_value () [concrete] -// CHECK:STDOUT: %A.type.5ea944.1: type = facet_type <@A, @A(%AA)> [symbolic] +// CHECK:STDOUT: %A.generic: %A.type.55a = struct_value () [concrete] +// CHECK:STDOUT: %A.type.acd3aa.1: type = facet_type <@A, @A(%AA)> [symbolic] // CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%AA) [symbolic] // CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, @A.WithSelf.%X [symbolic] -// CHECK:STDOUT: %B.type.f20: type = generic_interface_type @B [concrete] -// CHECK:STDOUT: %B.generic: %B.type.f20 = struct_value () [concrete] -// CHECK:STDOUT: %.Self.1b7616.1: %A.type.5ea944.1 = symbolic_binding .Self [symbolic] -// CHECK:STDOUT: %require_complete.88d: = require_complete_type %A.type.5ea944.1 [symbolic] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.1b7616.1 [symbolic] -// CHECK:STDOUT: %A.lookup_impl_witness.15e6be.1: = lookup_impl_witness %.Self.1b7616.1, @A, @A(%AA) [symbolic] -// CHECK:STDOUT: %impl.elem0.b25b5d.1: type = impl_witness_access %A.lookup_impl_witness.15e6be.1, element0 [symbolic] +// CHECK:STDOUT: %B.type.d1b: type = generic_interface_type @B [concrete] +// CHECK:STDOUT: %B.generic: %B.type.d1b = struct_value () [concrete] +// CHECK:STDOUT: %.Self.049e23.1: %A.type.acd3aa.1 = symbolic_binding .Self [symbolic] +// CHECK:STDOUT: %require_complete.21f: = require_complete_type %A.type.acd3aa.1 [symbolic] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.049e23.1 [symbolic] +// CHECK:STDOUT: %A.lookup_impl_witness.7746a3.1: = lookup_impl_witness %.Self.049e23.1, @A, @A(%AA) [symbolic] +// CHECK:STDOUT: %impl.elem0.bf516c.1: type = impl_witness_access %A.lookup_impl_witness.7746a3.1, element0 [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %A_where.type.3878ef.1: type = facet_type <@A, @A(%AA) where %impl.elem0.b25b5d.1 = %empty_tuple.type> [symbolic] -// CHECK:STDOUT: %pattern_type.25d: type = pattern_type %A_where.type.3878ef.1 [symbolic] -// CHECK:STDOUT: %BB.e97: %A_where.type.3878ef.1 = symbolic_binding BB, 1 [symbolic] -// CHECK:STDOUT: %BB.as_type: type = facet_access_type %BB.e97 [symbolic] +// CHECK:STDOUT: %A_where.type.32f51e.1: type = facet_type <@A, @A(%AA) where %impl.elem0.bf516c.1 = %empty_tuple.type> [symbolic] +// CHECK:STDOUT: %pattern_type.82b: type = pattern_type %A_where.type.32f51e.1 [symbolic] +// CHECK:STDOUT: %BB.2f1: %A_where.type.32f51e.1 = symbolic_binding BB, 1 [symbolic] +// CHECK:STDOUT: %BB.as_type: type = facet_access_type %BB.2f1 [symbolic] // CHECK:STDOUT: %ptr.e8f8f9.1: type = ptr_type %AA [symbolic] -// CHECK:STDOUT: %B.type.ef01e2.1: type = facet_type <@B, @B(%ptr.e8f8f9.1)> [symbolic] -// CHECK:STDOUT: %B.impl_witness.461: = impl_witness @BB.as_type.as.B.impl.%B.impl_witness_table, @BB.as_type.as.B.impl(%AA, %BB.e97) [symbolic] -// CHECK:STDOUT: %require_complete.a95288.1: = require_complete_type %B.type.ef01e2.1 [symbolic] +// CHECK:STDOUT: %B.type.4a0be4.1: type = facet_type <@B, @B(%ptr.e8f8f9.1)> [symbolic] +// CHECK:STDOUT: %B.impl_witness.f14: = impl_witness @BB.as_type.as.B.impl.%B.impl_witness_table, @BB.as_type.as.B.impl(%AA, %BB.2f1) [symbolic] +// CHECK:STDOUT: %require_complete.a5dc9d.1: = require_complete_type %B.type.4a0be4.1 [symbolic] // CHECK:STDOUT: %DD: type = symbolic_binding DD, 0 [symbolic] -// CHECK:STDOUT: %D.dbf: type = class_type @D, @D(%DD) [symbolic] +// CHECK:STDOUT: %D.784: type = class_type @D, @D(%DD) [symbolic] // CHECK:STDOUT: %T.091: type = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %D.G.type.e6f: type = fn_type @D.G, @D(%DD) [symbolic] -// CHECK:STDOUT: %D.G.6b0: %D.G.type.e6f = struct_value () [symbolic] +// CHECK:STDOUT: %D.G.type.f2c: type = fn_type @D.G, @D(%DD) [symbolic] +// CHECK:STDOUT: %D.G.463: %D.G.type.f2c = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %ptr.e8f8f9.2: type = ptr_type %DD [symbolic] -// CHECK:STDOUT: %B.type.ef01e2.2: type = facet_type <@B, @B(%ptr.e8f8f9.2)> [symbolic] -// CHECK:STDOUT: %B.lookup_impl_witness.332: = lookup_impl_witness %T.091, @B, @B(%ptr.e8f8f9.2) [symbolic] -// CHECK:STDOUT: %.9e8: require_specific_def_type = require_specific_def @BB.as.B.impl(%ptr.e8f8f9.2, %T.091) [symbolic] -// CHECK:STDOUT: %B.facet.dd5: %B.type.ef01e2.2 = facet_value %T.091, (%B.lookup_impl_witness.332) [symbolic] +// CHECK:STDOUT: %B.type.4a0be4.2: type = facet_type <@B, @B(%ptr.e8f8f9.2)> [symbolic] +// CHECK:STDOUT: %B.lookup_impl_witness.fc3: = lookup_impl_witness %T.091, @B, @B(%ptr.e8f8f9.2) [symbolic] +// CHECK:STDOUT: %.800: require_specific_def_type = require_specific_def @BB.as.B.impl(%ptr.e8f8f9.2, %T.091) [symbolic] +// CHECK:STDOUT: %B.facet.f68: %B.type.4a0be4.2 = facet_value %T.091, (%B.lookup_impl_witness.fc3) [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %D.G.type.ffd: type = fn_type @D.G, @D(%empty_struct_type) [concrete] -// CHECK:STDOUT: %D.G.e3b: %D.G.type.ffd = struct_value () [concrete] +// CHECK:STDOUT: %D.G.type.035: type = fn_type @D.G, @D(%empty_struct_type) [concrete] +// CHECK:STDOUT: %D.G.4d8: %D.G.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] -// CHECK:STDOUT: %B.type.2b3: type = facet_type <@B, @B(%ptr.c28)> [concrete] -// CHECK:STDOUT: %.878: require_specific_def_type = require_specific_def @BB.as.B.impl(%ptr.c28, %T.67d) [symbolic] -// CHECK:STDOUT: %B.lookup_impl_witness.6d2: = lookup_impl_witness %T.67d, @B, @B(%ptr.c28) [symbolic] -// CHECK:STDOUT: %B.facet.a5c: %B.type.2b3 = facet_value %T.67d, (%B.lookup_impl_witness.6d2) [symbolic] +// CHECK:STDOUT: %B.type.442: type = facet_type <@B, @B(%ptr.c28)> [concrete] +// CHECK:STDOUT: %.b66: require_specific_def_type = require_specific_def @BB.as.B.impl(%ptr.c28, %T.67d) [symbolic] +// CHECK:STDOUT: %B.lookup_impl_witness.d2e: = lookup_impl_witness %T.67d, @B, @B(%ptr.c28) [symbolic] +// CHECK:STDOUT: %B.facet.315: %B.type.442 = facet_value %T.67d, (%B.lookup_impl_witness.d2e) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: impl_decl @BB.as_type.as.B.impl [concrete] { // CHECK:STDOUT: %AA.patt: %pattern_type.98f = symbolic_binding_pattern AA, 0 [concrete] -// CHECK:STDOUT: %BB.patt: @BB.as_type.as.B.impl.%pattern_type (%pattern_type.25d) = symbolic_binding_pattern BB, 1 [concrete] +// CHECK:STDOUT: %BB.patt: @BB.as_type.as.B.impl.%pattern_type (%pattern_type.82b) = symbolic_binding_pattern BB, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %BB.ref: @BB.as_type.as.B.impl.%A_where.type (%A_where.type.3878ef.1) = name_ref BB, %BB.loc9_27.1 [symbolic = %BB.loc9_27.2 (constants.%BB.e97)] +// CHECK:STDOUT: %BB.ref: @BB.as_type.as.B.impl.%A_where.type (%A_where.type.32f51e.1) = name_ref BB, %BB.loc9_27.1 [symbolic = %BB.loc9_27.2 (constants.%BB.2f1)] // CHECK:STDOUT: %BB.as_type.loc9_51.1: type = facet_access_type %BB.ref [symbolic = %BB.as_type.loc9_51.2 (constants.%BB.as_type)] // CHECK:STDOUT: %.loc9_51: type = converted %BB.ref, %BB.as_type.loc9_51.1 [symbolic = %BB.as_type.loc9_51.2 (constants.%BB.as_type)] -// CHECK:STDOUT: %B.ref: %B.type.f20 = name_ref B, file.%B.decl [concrete = constants.%B.generic] +// CHECK:STDOUT: %B.ref: %B.type.d1b = name_ref B, file.%B.decl [concrete = constants.%B.generic] // CHECK:STDOUT: %AA.ref.loc9_59: type = name_ref AA, %AA.loc9_16.1 [symbolic = %AA.loc9_16.2 (constants.%AA)] // CHECK:STDOUT: %ptr.loc9_61.1: type = ptr_type %AA.ref.loc9_59 [symbolic = %ptr.loc9_61.2 (constants.%ptr.e8f8f9.1)] -// CHECK:STDOUT: %B.type.loc9_62.1: type = facet_type <@B, @B(constants.%ptr.e8f8f9.1)> [symbolic = %B.type.loc9_62.2 (constants.%B.type.ef01e2.1)] +// CHECK:STDOUT: %B.type.loc9_62.1: type = facet_type <@B, @B(constants.%ptr.e8f8f9.1)> [symbolic = %B.type.loc9_62.2 (constants.%B.type.4a0be4.1)] // CHECK:STDOUT: %.loc9_19.1: type = splice_block %.loc9_19.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc9_16: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %.loc9_19.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %AA.loc9_16.1: type = symbolic_binding AA, 0 [symbolic = %AA.loc9_16.2 (constants.%AA)] -// CHECK:STDOUT: %.loc9_36.1: type = splice_block %.loc9_36.2 [symbolic = %A_where.type (constants.%A_where.type.3878ef.1)] { +// CHECK:STDOUT: %.loc9_36.1: type = splice_block %.loc9_36.2 [symbolic = %A_where.type (constants.%A_where.type.32f51e.1)] { // CHECK:STDOUT: %.Self.loc9_27: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] -// CHECK:STDOUT: %A.ref: %A.type.0af = name_ref A, file.%A.decl [concrete = constants.%A.generic] +// CHECK:STDOUT: %A.ref: %A.type.55a = name_ref A, file.%A.decl [concrete = constants.%A.generic] // CHECK:STDOUT: %AA.ref.loc9_32: type = name_ref AA, %AA.loc9_16.1 [symbolic = %AA.loc9_16.2 (constants.%AA)] -// CHECK:STDOUT: %A.type.loc9_34.1: type = facet_type <@A, @A(constants.%AA)> [symbolic = %A.type.loc9_34.2 (constants.%A.type.5ea944.1)] -// CHECK:STDOUT: %.Self.loc9_36.1: @BB.as_type.as.B.impl.%A.type.loc9_34.2 (%A.type.5ea944.1) = symbolic_binding .Self [symbolic = %.Self.loc9_36.2 (constants.%.Self.1b7616.1)] -// CHECK:STDOUT: %.Self.ref: @BB.as_type.as.B.impl.%A.type.loc9_34.2 (%A.type.5ea944.1) = name_ref .Self, %.Self.loc9_36.1 [symbolic = %.Self.loc9_36.2 (constants.%.Self.1b7616.1)] +// CHECK:STDOUT: %A.type.loc9_34.1: type = facet_type <@A, @A(constants.%AA)> [symbolic = %A.type.loc9_34.2 (constants.%A.type.acd3aa.1)] +// CHECK:STDOUT: %.Self.loc9_36.1: @BB.as_type.as.B.impl.%A.type.loc9_34.2 (%A.type.acd3aa.1) = symbolic_binding .Self [symbolic = %.Self.loc9_36.2 (constants.%.Self.049e23.1)] +// CHECK:STDOUT: %.Self.ref: @BB.as_type.as.B.impl.%A.type.loc9_34.2 (%A.type.acd3aa.1) = name_ref .Self, %.Self.loc9_36.1 [symbolic = %.Self.loc9_36.2 (constants.%.Self.049e23.1)] // CHECK:STDOUT: %.Self.as_type.loc9_42.1: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc9_42.2 (constants.%.Self.as_type)] // CHECK:STDOUT: %.loc9_42.1: type = converted %.Self.ref, %.Self.as_type.loc9_42.1 [symbolic = %.Self.as_type.loc9_42.2 (constants.%.Self.as_type)] -// CHECK:STDOUT: %.loc9_42.2: @BB.as_type.as.B.impl.%A.assoc_type (%A.assoc_type) = specific_constant @X.%assoc0, @A.WithSelf(constants.%AA, constants.%.Self.1b7616.1) [symbolic = %assoc0 (constants.%assoc0)] +// CHECK:STDOUT: %.loc9_42.2: @BB.as_type.as.B.impl.%A.assoc_type (%A.assoc_type) = specific_constant @X.%assoc0, @A.WithSelf(constants.%AA, constants.%.Self.049e23.1) [symbolic = %assoc0 (constants.%assoc0)] // CHECK:STDOUT: %X.ref: @BB.as_type.as.B.impl.%A.assoc_type (%A.assoc_type) = name_ref X, %.loc9_42.2 [symbolic = %assoc0 (constants.%assoc0)] -// CHECK:STDOUT: %impl.elem0.loc9_42.1: type = impl_witness_access constants.%A.lookup_impl_witness.15e6be.1, element0 [symbolic = %impl.elem0.loc9_42.2 (constants.%impl.elem0.b25b5d.1)] +// CHECK:STDOUT: %impl.elem0.loc9_42.1: type = impl_witness_access constants.%A.lookup_impl_witness.7746a3.1, element0 [symbolic = %impl.elem0.loc9_42.2 (constants.%impl.elem0.bf516c.1)] // CHECK:STDOUT: %.loc9_48.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc9_48.2: type = converted %.loc9_48.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc9_36.2: type = where_expr [symbolic = %A_where.type (constants.%A_where.type.3878ef.1)] { +// CHECK:STDOUT: %.loc9_36.2: type = where_expr [symbolic = %A_where.type (constants.%A_where.type.32f51e.1)] { // CHECK:STDOUT: requirement_base_facet_type %A.type.loc9_34.1 // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc9_42.1, %.loc9_48.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %BB.loc9_27.1: @BB.as_type.as.B.impl.%A_where.type (%A_where.type.3878ef.1) = symbolic_binding BB, 1 [symbolic = %BB.loc9_27.2 (constants.%BB.e97)] +// CHECK:STDOUT: %BB.loc9_27.1: @BB.as_type.as.B.impl.%A_where.type (%A_where.type.32f51e.1) = symbolic_binding BB, 1 [symbolic = %BB.loc9_27.2 (constants.%BB.2f1)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @BB.as_type.as.B.impl(%AA.loc9_16.1: type, %BB.loc9_27.1: @BB.as_type.as.B.impl.%A_where.type (%A_where.type.3878ef.1)) { +// CHECK:STDOUT: generic impl @BB.as_type.as.B.impl(%AA.loc9_16.1: type, %BB.loc9_27.1: @BB.as_type.as.B.impl.%A_where.type (%A_where.type.32f51e.1)) { // CHECK:STDOUT: %AA.loc9_16.2: type = symbolic_binding AA, 0 [symbolic = %AA.loc9_16.2 (constants.%AA)] -// CHECK:STDOUT: %A.type.loc9_34.2: type = facet_type <@A, @A(%AA.loc9_16.2)> [symbolic = %A.type.loc9_34.2 (constants.%A.type.5ea944.1)] -// CHECK:STDOUT: %.Self.loc9_36.2: @BB.as_type.as.B.impl.%A.type.loc9_34.2 (%A.type.5ea944.1) = symbolic_binding .Self [symbolic = %.Self.loc9_36.2 (constants.%.Self.1b7616.1)] -// CHECK:STDOUT: %require_complete.loc9_42: = require_complete_type %A.type.loc9_34.2 [symbolic = %require_complete.loc9_42 (constants.%require_complete.88d)] +// CHECK:STDOUT: %A.type.loc9_34.2: type = facet_type <@A, @A(%AA.loc9_16.2)> [symbolic = %A.type.loc9_34.2 (constants.%A.type.acd3aa.1)] +// CHECK:STDOUT: %.Self.loc9_36.2: @BB.as_type.as.B.impl.%A.type.loc9_34.2 (%A.type.acd3aa.1) = symbolic_binding .Self [symbolic = %.Self.loc9_36.2 (constants.%.Self.049e23.1)] +// CHECK:STDOUT: %require_complete.loc9_42: = require_complete_type %A.type.loc9_34.2 [symbolic = %require_complete.loc9_42 (constants.%require_complete.21f)] // CHECK:STDOUT: %.Self.as_type.loc9_42.2: type = facet_access_type %.Self.loc9_36.2 [symbolic = %.Self.as_type.loc9_42.2 (constants.%.Self.as_type)] // CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%AA.loc9_16.2) [symbolic = %A.assoc_type (constants.%A.assoc_type)] // CHECK:STDOUT: %assoc0: @BB.as_type.as.B.impl.%A.assoc_type (%A.assoc_type) = assoc_entity element0, @A.WithSelf.%X [symbolic = %assoc0 (constants.%assoc0)] -// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %.Self.loc9_36.2, @A, @A(%AA.loc9_16.2) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.15e6be.1)] -// CHECK:STDOUT: %impl.elem0.loc9_42.2: type = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_42.2 (constants.%impl.elem0.b25b5d.1)] -// CHECK:STDOUT: %A_where.type: type = facet_type <@A, @A(%AA.loc9_16.2) where %impl.elem0.loc9_42.2 = constants.%empty_tuple.type> [symbolic = %A_where.type (constants.%A_where.type.3878ef.1)] -// CHECK:STDOUT: %BB.loc9_27.2: @BB.as_type.as.B.impl.%A_where.type (%A_where.type.3878ef.1) = symbolic_binding BB, 1 [symbolic = %BB.loc9_27.2 (constants.%BB.e97)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %A_where.type [symbolic = %pattern_type (constants.%pattern_type.25d)] +// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %.Self.loc9_36.2, @A, @A(%AA.loc9_16.2) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.7746a3.1)] +// CHECK:STDOUT: %impl.elem0.loc9_42.2: type = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_42.2 (constants.%impl.elem0.bf516c.1)] +// CHECK:STDOUT: %A_where.type: type = facet_type <@A, @A(%AA.loc9_16.2) where %impl.elem0.loc9_42.2 = constants.%empty_tuple.type> [symbolic = %A_where.type (constants.%A_where.type.32f51e.1)] +// CHECK:STDOUT: %BB.loc9_27.2: @BB.as_type.as.B.impl.%A_where.type (%A_where.type.32f51e.1) = symbolic_binding BB, 1 [symbolic = %BB.loc9_27.2 (constants.%BB.2f1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %A_where.type [symbolic = %pattern_type (constants.%pattern_type.82b)] // CHECK:STDOUT: %BB.as_type.loc9_51.2: type = facet_access_type %BB.loc9_27.2 [symbolic = %BB.as_type.loc9_51.2 (constants.%BB.as_type)] // CHECK:STDOUT: %ptr.loc9_61.2: type = ptr_type %AA.loc9_16.2 [symbolic = %ptr.loc9_61.2 (constants.%ptr.e8f8f9.1)] -// CHECK:STDOUT: %B.type.loc9_62.2: type = facet_type <@B, @B(%ptr.loc9_61.2)> [symbolic = %B.type.loc9_62.2 (constants.%B.type.ef01e2.1)] -// CHECK:STDOUT: %B.impl_witness.loc9_64.2: = impl_witness %B.impl_witness_table, @BB.as_type.as.B.impl(%AA.loc9_16.2, %BB.loc9_27.2) [symbolic = %B.impl_witness.loc9_64.2 (constants.%B.impl_witness.461)] +// CHECK:STDOUT: %B.type.loc9_62.2: type = facet_type <@B, @B(%ptr.loc9_61.2)> [symbolic = %B.type.loc9_62.2 (constants.%B.type.4a0be4.1)] +// CHECK:STDOUT: %B.impl_witness.loc9_64.2: = impl_witness %B.impl_witness_table, @BB.as_type.as.B.impl(%AA.loc9_16.2, %BB.loc9_27.2) [symbolic = %B.impl_witness.loc9_64.2 (constants.%B.impl_witness.f14)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_62: = require_complete_type %B.type.loc9_62.2 [symbolic = %require_complete.loc9_62 (constants.%require_complete.a95288.1)] +// CHECK:STDOUT: %require_complete.loc9_62: = require_complete_type %B.type.loc9_62.2 [symbolic = %require_complete.loc9_62 (constants.%require_complete.a5dc9d.1)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc9_51 as %B.type.loc9_62.1 { // CHECK:STDOUT: %B.impl_witness_table = impl_witness_table (), @BB.as_type.as.B.impl [concrete] -// CHECK:STDOUT: %B.impl_witness.loc9_64.1: = impl_witness %B.impl_witness_table, @BB.as_type.as.B.impl(constants.%AA, constants.%BB.e97) [symbolic = %B.impl_witness.loc9_64.2 (constants.%B.impl_witness.461)] +// CHECK:STDOUT: %B.impl_witness.loc9_64.1: = impl_witness %B.impl_witness_table, @BB.as_type.as.B.impl(constants.%AA, constants.%BB.2f1) [symbolic = %B.impl_witness.loc9_64.2 (constants.%B.impl_witness.f14)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %B.type.loc9_62.1 @@ -423,7 +423,7 @@ fn H(T:! type) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%D.dbf +// CHECK:STDOUT: .Self = constants.%D.784 // CHECK:STDOUT: .G = %D.G.decl // CHECK:STDOUT: .B = // CHECK:STDOUT: .DD = @@ -436,49 +436,49 @@ fn H(T:! type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %DD: type = symbolic_binding DD, 0 [symbolic = %DD (constants.%DD)] // CHECK:STDOUT: %ptr.loc21_14.2: type = ptr_type %DD [symbolic = %ptr.loc21_14.2 (constants.%ptr.e8f8f9.2)] -// CHECK:STDOUT: %B.type.loc21_15.2: type = facet_type <@B, @B(%ptr.loc21_14.2)> [symbolic = %B.type.loc21_15.2 (constants.%B.type.ef01e2.2)] -// CHECK:STDOUT: %.loc21_7.2: require_specific_def_type = require_specific_def @BB.as.B.impl(%ptr.loc21_14.2, %T.loc15_9.1) [symbolic = %.loc21_7.2 (constants.%.9e8)] -// CHECK:STDOUT: %B.lookup_impl_witness: = lookup_impl_witness %T.loc15_9.1, @B, @B(%ptr.loc21_14.2) [symbolic = %B.lookup_impl_witness (constants.%B.lookup_impl_witness.332)] -// CHECK:STDOUT: %B.facet.loc21_7.2: @D.G.%B.type.loc21_15.2 (%B.type.ef01e2.2) = facet_value %T.loc15_9.1, (%B.lookup_impl_witness) [symbolic = %B.facet.loc21_7.2 (constants.%B.facet.dd5)] +// CHECK:STDOUT: %B.type.loc21_15.2: type = facet_type <@B, @B(%ptr.loc21_14.2)> [symbolic = %B.type.loc21_15.2 (constants.%B.type.4a0be4.2)] +// CHECK:STDOUT: %.loc21_7.2: require_specific_def_type = require_specific_def @BB.as.B.impl(%ptr.loc21_14.2, %T.loc15_9.1) [symbolic = %.loc21_7.2 (constants.%.800)] +// CHECK:STDOUT: %B.lookup_impl_witness: = lookup_impl_witness %T.loc15_9.1, @B, @B(%ptr.loc21_14.2) [symbolic = %B.lookup_impl_witness (constants.%B.lookup_impl_witness.fc3)] +// CHECK:STDOUT: %B.facet.loc21_7.2: @D.G.%B.type.loc21_15.2 (%B.type.4a0be4.2) = facet_value %T.loc15_9.1, (%B.lookup_impl_witness) [symbolic = %B.facet.loc21_7.2 (constants.%B.facet.f68)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_9.2 [symbolic = %T.loc15_9.1 (constants.%T.091)] -// CHECK:STDOUT: %B.ref: %B.type.f20 = name_ref B, file.%B.decl [concrete = constants.%B.generic] +// CHECK:STDOUT: %B.ref: %B.type.d1b = name_ref B, file.%B.decl [concrete = constants.%B.generic] // CHECK:STDOUT: %DD.ref: type = name_ref DD, @D.%DD.loc14_11.2 [symbolic = %DD (constants.%DD)] // CHECK:STDOUT: %ptr.loc21_14.1: type = ptr_type %DD.ref [symbolic = %ptr.loc21_14.2 (constants.%ptr.e8f8f9.2)] -// CHECK:STDOUT: %B.type.loc21_15.1: type = facet_type <@B, @B(constants.%ptr.e8f8f9.2)> [symbolic = %B.type.loc21_15.2 (constants.%B.type.ef01e2.2)] -// CHECK:STDOUT: %B.facet.loc21_7.1: @D.G.%B.type.loc21_15.2 (%B.type.ef01e2.2) = facet_value %T.ref, (constants.%B.lookup_impl_witness.332) [symbolic = %B.facet.loc21_7.2 (constants.%B.facet.dd5)] -// CHECK:STDOUT: %.loc21_7.1: @D.G.%B.type.loc21_15.2 (%B.type.ef01e2.2) = converted %T.ref, %B.facet.loc21_7.1 [symbolic = %B.facet.loc21_7.2 (constants.%B.facet.dd5)] +// CHECK:STDOUT: %B.type.loc21_15.1: type = facet_type <@B, @B(constants.%ptr.e8f8f9.2)> [symbolic = %B.type.loc21_15.2 (constants.%B.type.4a0be4.2)] +// CHECK:STDOUT: %B.facet.loc21_7.1: @D.G.%B.type.loc21_15.2 (%B.type.4a0be4.2) = facet_value %T.ref, (constants.%B.lookup_impl_witness.fc3) [symbolic = %B.facet.loc21_7.2 (constants.%B.facet.f68)] +// CHECK:STDOUT: %.loc21_7.1: @D.G.%B.type.loc21_15.2 (%B.type.4a0be4.2) = converted %T.ref, %B.facet.loc21_7.1 [symbolic = %B.facet.loc21_7.2 (constants.%B.facet.f68)] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @BB.as_type.as.B.impl(constants.%AA, constants.%BB.e97) { +// CHECK:STDOUT: specific @BB.as_type.as.B.impl(constants.%AA, constants.%BB.2f1) { // CHECK:STDOUT: %AA.loc9_16.2 => constants.%AA -// CHECK:STDOUT: %A.type.loc9_34.2 => constants.%A.type.5ea944.1 -// CHECK:STDOUT: %.Self.loc9_36.2 => constants.%.Self.1b7616.1 -// CHECK:STDOUT: %require_complete.loc9_42 => constants.%require_complete.88d +// CHECK:STDOUT: %A.type.loc9_34.2 => constants.%A.type.acd3aa.1 +// CHECK:STDOUT: %.Self.loc9_36.2 => constants.%.Self.049e23.1 +// CHECK:STDOUT: %require_complete.loc9_42 => constants.%require_complete.21f // CHECK:STDOUT: %.Self.as_type.loc9_42.2 => constants.%.Self.as_type // CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type // CHECK:STDOUT: %assoc0 => constants.%assoc0 -// CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.lookup_impl_witness.15e6be.1 -// CHECK:STDOUT: %impl.elem0.loc9_42.2 => constants.%impl.elem0.b25b5d.1 -// CHECK:STDOUT: %A_where.type => constants.%A_where.type.3878ef.1 -// CHECK:STDOUT: %BB.loc9_27.2 => constants.%BB.e97 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.25d +// CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.lookup_impl_witness.7746a3.1 +// CHECK:STDOUT: %impl.elem0.loc9_42.2 => constants.%impl.elem0.bf516c.1 +// CHECK:STDOUT: %A_where.type => constants.%A_where.type.32f51e.1 +// CHECK:STDOUT: %BB.loc9_27.2 => constants.%BB.2f1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.82b // CHECK:STDOUT: %BB.as_type.loc9_51.2 => constants.%BB.as_type // CHECK:STDOUT: %ptr.loc9_61.2 => constants.%ptr.e8f8f9.1 -// CHECK:STDOUT: %B.type.loc9_62.2 => constants.%B.type.ef01e2.1 -// CHECK:STDOUT: %B.impl_witness.loc9_64.2 => constants.%B.impl_witness.461 +// CHECK:STDOUT: %B.type.loc9_62.2 => constants.%B.type.4a0be4.1 +// CHECK:STDOUT: %B.impl_witness.loc9_64.2 => constants.%B.impl_witness.f14 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%DD) { // CHECK:STDOUT: %DD.loc14_11.1 => constants.%DD // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %D.G.type => constants.%D.G.type.e6f -// CHECK:STDOUT: %D.G => constants.%D.G.6b0 +// CHECK:STDOUT: %D.G.type => constants.%D.G.type.f2c +// CHECK:STDOUT: %D.G => constants.%D.G.463 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D.G(constants.%DD, constants.%T.091) { @@ -489,8 +489,8 @@ fn H(T:! type) { // CHECK:STDOUT: %DD.loc14_11.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %D.G.type => constants.%D.G.type.ffd -// CHECK:STDOUT: %D.G => constants.%D.G.e3b +// CHECK:STDOUT: %D.G.type => constants.%D.G.type.035 +// CHECK:STDOUT: %D.G => constants.%D.G.4d8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D.G(constants.%empty_struct_type, constants.%T.67d) { @@ -499,9 +499,9 @@ fn H(T:! type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %DD => constants.%empty_struct_type // CHECK:STDOUT: %ptr.loc21_14.2 => constants.%ptr.c28 -// CHECK:STDOUT: %B.type.loc21_15.2 => constants.%B.type.2b3 -// CHECK:STDOUT: %.loc21_7.2 => constants.%.878 -// CHECK:STDOUT: %B.lookup_impl_witness => constants.%B.lookup_impl_witness.6d2 -// CHECK:STDOUT: %B.facet.loc21_7.2 => constants.%B.facet.a5c +// CHECK:STDOUT: %B.type.loc21_15.2 => constants.%B.type.442 +// CHECK:STDOUT: %.loc21_7.2 => constants.%.b66 +// CHECK:STDOUT: %B.lookup_impl_witness => constants.%B.lookup_impl_witness.d2e +// CHECK:STDOUT: %B.facet.loc21_7.2 => constants.%B.facet.315 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/generic/local.carbon b/toolchain/check/testdata/generic/local.carbon index d9c01664f6da..6ee8b129c65f 100644 --- a/toolchain/check/testdata/generic/local.carbon +++ b/toolchain/check/testdata/generic/local.carbon @@ -68,36 +68,36 @@ class C(C:! type) { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %C.f89: type = class_type @C, @C(%i32) [concrete] +// CHECK:STDOUT: %C.8eb: type = class_type @C, @C(%i32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %C.elem.427: type = unbound_element_type %C.f89, %i32 [concrete] -// CHECK:STDOUT: %struct_type.x.06a: type = struct_type {.x: %i32} [concrete] -// CHECK:STDOUT: %complete_type.9a8: = complete_type_witness %struct_type.x.06a [concrete] -// CHECK:STDOUT: %pattern_type.e77: type = pattern_type %C.f89 [concrete] +// CHECK:STDOUT: %C.elem.14f: type = unbound_element_type %C.8eb, %i32 [concrete] +// CHECK:STDOUT: %struct_type.x.a15: type = struct_type {.x: %i32} [concrete] +// CHECK:STDOUT: %complete_type.0c6: = complete_type_witness %struct_type.x.a15 [concrete] +// CHECK:STDOUT: %pattern_type.1f3: type = pattern_type %C.8eb [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.x.c96: type = struct_type {.x: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.x.c96 = struct_value (%int_1.5b8) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %C.val: %C.f89 = struct_value (%int_1.d9c) [concrete] +// 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.790b3b.4: type = fn_type @Destroy.Op.loc8_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -109,9 +109,9 @@ class C(C:! type) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -158,30 +158,30 @@ class C(C:! type) { // CHECK:STDOUT: %T.loc5_12.2: type = symbolic_binding T, 0 [symbolic = %T.loc5_12.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.e77 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.e77 = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.1f3 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.1f3 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref %C.f89 = var %v.var_patt +// CHECK:STDOUT: %v.var: ref %C.8eb = var %v.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc8_33.1: %struct_type.x.c96 = struct_literal (%int_1) [concrete = constants.%struct] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_33.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_33.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_33.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_33.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_33.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_33.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc8_33.3: ref %i32 = class_element_access %v.var, element0 -// CHECK:STDOUT: %.loc8_33.4: init %i32 to %.loc8_33.3 = in_place_init %.loc8_33.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_33.5: init %C.f89 to %v.var = class_init (%.loc8_33.4) [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc8_3: init %C.f89 = converted %.loc8_33.1, %.loc8_33.5 [concrete = constants.%C.val] +// CHECK:STDOUT: %.loc8_33.4: init %i32 to %.loc8_33.3 = in_place_init %.loc8_33.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_33.5: init %C.8eb to %v.var = class_init (%.loc8_33.4) [concrete = constants.%C.val] +// CHECK:STDOUT: %.loc8_3: init %C.8eb = converted %.loc8_33.1, %.loc8_33.5 [concrete = constants.%C.val] // CHECK:STDOUT: assign %v.var, %.loc8_3 -// CHECK:STDOUT: %.loc8_22: type = splice_block %C [concrete = constants.%C.f89] { +// CHECK:STDOUT: %.loc8_22: type = splice_block %C [concrete = constants.%C.8eb] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.f89] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%i32) [concrete = constants.%C.8eb] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref %C.f89 = ref_binding v, %v.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.2dd605.4 +// CHECK:STDOUT: %v: ref %C.8eb = ref_binding v, %v.var +// 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: return // CHECK:STDOUT: } @@ -193,12 +193,12 @@ class C(C:! type) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_3.3(%self.param: ref %struct_type.x.06a) { +// CHECK:STDOUT: fn @Destroy.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.f89) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_3.4(%self.param: ref %C.8eb) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -212,10 +212,10 @@ class C(C:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %C => constants.%C.f89 -// CHECK:STDOUT: %C.elem => constants.%C.elem.427 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.06a -// CHECK:STDOUT: %complete_type.loc7_3.2 => constants.%complete_type.9a8 +// CHECK:STDOUT: %C => constants.%C.8eb +// CHECK:STDOUT: %C.elem => constants.%C.elem.14f +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.a15 +// CHECK:STDOUT: %complete_type.loc7_3.2 => constants.%complete_type.0c6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_param_shadows_class.carbon @@ -291,7 +291,7 @@ class C(C:! type) { // CHECK:STDOUT: %C.67d: type = symbolic_binding C, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%C.67d) [symbolic] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%C.67d) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -330,7 +330,7 @@ class C(C:! type) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.1f9 +// CHECK:STDOUT: .Self = constants.%C.1d0 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/generic/template/convert.carbon b/toolchain/check/testdata/generic/template/convert.carbon index a2d2ac510336..01588d3e193e 100644 --- a/toolchain/check/testdata/generic/template/convert.carbon +++ b/toolchain/check/testdata/generic/template/convert.carbon @@ -74,59 +74,59 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T.67db0b.1 [template] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %Test1.type: type = fn_type @Test1 [concrete] // CHECK:STDOUT: %Test1: %Test1.type = struct_value () [concrete] -// CHECK:STDOUT: %F.specific_fn.231: = specific_function %F, @F(%i32) [concrete] +// CHECK:STDOUT: %F.specific_fn.6c3: = specific_function %F, @F(%i32) [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.0d8: = impl_witness @C.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.496: = impl_witness @C.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type: type = fn_type @C.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert: %C.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value %C, (%ImplicitAs.impl_witness.0d8) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.0ff: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value %C, (%ImplicitAs.impl_witness.496) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.034: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [concrete] -// CHECK:STDOUT: %complete_type.edf: = complete_type_witness %struct_type.n [concrete] +// CHECK:STDOUT: %complete_type.cdf: = complete_type_witness %struct_type.n [concrete] // CHECK:STDOUT: %Test2.type: type = fn_type @Test2 [concrete] // CHECK:STDOUT: %Test2: %Test2.type = struct_value () [concrete] -// CHECK:STDOUT: %F.specific_fn.076: = specific_function %F, @F(%C) [concrete] -// CHECK:STDOUT: %inst.as_compatible.b1e: = inst_value [concrete] { -// CHECK:STDOUT: %.fd8: %i32 = as_compatible @F.%x.ref +// CHECK:STDOUT: %F.specific_fn.e0d: = specific_function %F, @F(%C) [concrete] +// CHECK:STDOUT: %inst.as_compatible.7c9: = inst_value [concrete] { +// CHECK:STDOUT: %.aac: %i32 = as_compatible @F.%x.ref // CHECK:STDOUT: } -// CHECK:STDOUT: %inst.splice_block.c2e: = inst_value [concrete] { -// CHECK:STDOUT: %.837: %i32 = splice_block %.fd8 {} +// CHECK:STDOUT: %inst.splice_block.e9d: = inst_value [concrete] { +// CHECK:STDOUT: %.08e: %i32 = splice_block %.aac {} // CHECK:STDOUT: } -// CHECK:STDOUT: %inst.as_compatible.154: = inst_value [concrete] { -// CHECK:STDOUT: %.719: %C = as_compatible @F.%x.ref +// CHECK:STDOUT: %inst.as_compatible.ea0: = inst_value [concrete] { +// CHECK:STDOUT: %.bcf: %C = as_compatible @F.%x.ref // CHECK:STDOUT: } -// CHECK:STDOUT: %.d9f: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.0ff, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %inst.splice_block.adc: = inst_value [concrete] { -// CHECK:STDOUT: %.ee9: %i32 = splice_block %.382 { -// CHECK:STDOUT: %impl.elem0.67d: %.d9f = impl_witness_access %ImplicitAs.impl_witness.0d8, element0 [concrete = %C.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %bound_method: = bound_method %.719, %impl.elem0.67d -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method(%.719) -// CHECK:STDOUT: %.252: %i32 = value_of_initializer %C.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %.382: %i32 = converted %.719, %.252 +// CHECK:STDOUT: %.593: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.034, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %inst.splice_block.76a: = inst_value [concrete] { +// CHECK:STDOUT: %.c87: %i32 = splice_block %.8ca { +// CHECK:STDOUT: %impl.elem0.6f7: %.593 = impl_witness_access %ImplicitAs.impl_witness.496, element0 [concrete = %C.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %bound_method: = bound_method %.bcf, %impl.elem0.6f7 +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method(%.bcf) +// CHECK:STDOUT: %.c74: %i32 = value_of_initializer %C.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %.8ca: %i32 = converted %.bcf, %.c74 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -141,9 +141,9 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -159,11 +159,11 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0, template [concrete] // CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern [concrete] // CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d1c4.1) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc4 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc4: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4_34: Core.Form = init_form %i32.loc4 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc4_34: Core.Form = init_form %i32.loc4 [concrete = constants.%.795] // CHECK:STDOUT: %.loc4_19.1: type = splice_block %.loc4_19.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc4_19.2: type = type_literal type [concrete = type] @@ -176,13 +176,13 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Test1.decl: %Test1.type = fn_decl @Test1 [concrete = constants.%Test1] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc9_21 [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc9_21 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc9_21: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc9: Core.Form = init_form %i32.loc9_21 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc9: Core.Form = init_form %i32.loc9_21 [concrete = constants.%.795] // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc9_13: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param @@ -191,13 +191,13 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %Test2.decl: %Test2.type = fn_decl @Test2 [concrete = constants.%Test2] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc20: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: %C = value_binding c, %c.param @@ -208,13 +208,13 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.ImplicitAs.impl: %Self.ref as %ImplicitAs.type { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type = fn_decl @C.as.ImplicitAs.impl.Convert [concrete = constants.%C.as.ImplicitAs.impl.Convert] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.0d5 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16_33: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc16_33: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] // CHECK:STDOUT: %self: %C = value_binding self, %self.param @@ -222,7 +222,7 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.0d8] +// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.496] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Convert = %C.as.ImplicitAs.impl.Convert.decl @@ -235,11 +235,11 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl [concrete] {} { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%i32)> [concrete = constants.%ImplicitAs.type.360] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%i32)> [concrete = constants.%ImplicitAs.type.914] // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.edf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.cdf] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -259,7 +259,7 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: fn(%x.param: @F.%T.loc4_16.1 (%T.67db0b.1)) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = value_binding_pattern n [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = value_binding_pattern n [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.ref: @F.%T.loc4_16.1 (%T.67db0b.1) = name_ref x, %x // CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -267,7 +267,7 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: %.loc5_16.2: %i32 = splice_inst %.loc5_16.4 // CHECK:STDOUT: %n: %i32 = value_binding n, %.loc5_16.2 // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %n.ref, %impl.elem0 // 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_10.2: = bound_method %n.ref, %specific_fn @@ -280,7 +280,7 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%i32) [concrete = constants.%F.specific_fn.231] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%i32) [concrete = constants.%F.specific_fn.6c3] // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn(%n.ref) // CHECK:STDOUT: return %F.call // CHECK:STDOUT: } @@ -291,7 +291,7 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: %n.ref: %C.elem = name_ref n, @C.%.loc14 [concrete = @C.%.loc14] // CHECK:STDOUT: %.loc16_50.1: ref %i32 = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc16_50.2: %i32 = acquire_value %.loc16_50.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc16_50.1: = bound_method %.loc16_50.2, %impl.elem0 // 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.loc16_50.2: = bound_method %.loc16_50.2, %specific_fn @@ -303,7 +303,7 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.076] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.e0d] // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn(%c.ref) // CHECK:STDOUT: return %F.call // CHECK:STDOUT: } @@ -315,22 +315,22 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%i32) { // CHECK:STDOUT: %T.loc4_16.1 => constants.%i32 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.104 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6b6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %.loc5_16.3 => constants.%inst.as_compatible.b1e -// CHECK:STDOUT: %.loc5_16.4 => constants.%inst.splice_block.c2e +// CHECK:STDOUT: %.loc5_16.3 => constants.%inst.as_compatible.7c9 +// CHECK:STDOUT: %.loc5_16.4 => constants.%inst.splice_block.e9d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { // CHECK:STDOUT: %T.loc4_16.1 => constants.%C -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d5 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.edf -// CHECK:STDOUT: %.loc5_16.3 => constants.%inst.as_compatible.154 -// CHECK:STDOUT: %.loc5_16.4 => constants.%inst.splice_block.adc +// CHECK:STDOUT: %require_complete => constants.%complete_type.cdf +// CHECK:STDOUT: %.loc5_16.3 => constants.%inst.as_compatible.ea0 +// CHECK:STDOUT: %.loc5_16.4 => constants.%inst.splice_block.76a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_cannot_convert.carbon @@ -346,36 +346,36 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T.67db0b.1 [template] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %D: type = class_type @D [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.f1a: type = pattern_type %D [concrete] +// CHECK:STDOUT: %pattern_type.d8d: type = pattern_type %D [concrete] // CHECK:STDOUT: %Test.type: type = fn_type @Test [concrete] // CHECK:STDOUT: %Test: %Test.type = struct_value () [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%D) [concrete] // CHECK:STDOUT: %inst.as_compatible: = inst_value [concrete] { -// CHECK:STDOUT: %.e9f: %D = as_compatible @F.%x.ref +// CHECK:STDOUT: %.af0: %D = as_compatible @F.%x.ref // CHECK:STDOUT: } -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %inst.splice_block: = inst_value [concrete] { -// CHECK:STDOUT: %.528: = splice_block [concrete = ] { -// CHECK:STDOUT: %.8e6: %i32 = converted %.e9f, [concrete = ] +// CHECK:STDOUT: %.810: = splice_block [concrete = ] { +// CHECK:STDOUT: %.f0f: %i32 = converted %.af0, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -390,9 +390,9 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -407,11 +407,11 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0, template [concrete] // CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern [concrete] // CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d1c4.1) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc4 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc4: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4_34: Core.Form = init_form %i32.loc4 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc4_34: Core.Form = init_form %i32.loc4 [concrete = constants.%.795] // CHECK:STDOUT: %.loc4_19.1: type = splice_block %.loc4_19.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc4_19.2: type = type_literal type [concrete = type] @@ -425,13 +425,13 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] { -// CHECK:STDOUT: %d.param_patt: %pattern_type.f1a = value_param_pattern [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.f1a = at_binding_pattern d, %d.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.d8d = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.d8d = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc11: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc11: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %d.param: %D = value_param call_param0 // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %d: %D = value_binding d, %d.param @@ -460,7 +460,7 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: fn(%x.param: @F.%T.loc4_16.1 (%T.67db0b.1)) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = value_binding_pattern n [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = value_binding_pattern n [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.ref: @F.%T.loc4_16.1 (%T.67db0b.1) = name_ref x, %x // CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -468,7 +468,7 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: %.loc5_16.2: %i32 = splice_inst %.loc5_16.4 // CHECK:STDOUT: %n: %i32 = value_binding n, %.loc5_16.2 // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %n.ref, %impl.elem0 // 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_10.2: = bound_method %n.ref, %specific_fn @@ -493,7 +493,7 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%D) { // CHECK:STDOUT: %T.loc4_16.1 => constants.%D -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f1a +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d8d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.357 diff --git a/toolchain/check/testdata/generic/template/member_access.carbon b/toolchain/check/testdata/generic/template/member_access.carbon index f3ca0a9473ac..b8c96d848f2b 100644 --- a/toolchain/check/testdata/generic/template/member_access.carbon +++ b/toolchain/check/testdata/generic/template/member_access.carbon @@ -98,56 +98,56 @@ fn Test(e: E) { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T.67db0b.1 [template] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %C: type = class_type @C [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [concrete] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [concrete] -// CHECK:STDOUT: %complete_type.edf: = complete_type_witness %struct_type.n [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %complete_type.cdf: = complete_type_witness %struct_type.n [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %Test1.type: type = fn_type @Test1 [concrete] // CHECK:STDOUT: %Test1: %Test1.type = struct_value () [concrete] -// CHECK:STDOUT: %F.specific_fn.076: = specific_function %F, @F(%C) [concrete] +// CHECK:STDOUT: %F.specific_fn.e0d: = specific_function %F, @F(%C) [concrete] // CHECK:STDOUT: %struct_type.m.n: type = struct_type {.m: %i32, .n: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.e32: type = pattern_type %struct_type.m.n [concrete] +// CHECK:STDOUT: %pattern_type.860: type = pattern_type %struct_type.m.n [concrete] // CHECK:STDOUT: %Test2.type: type = fn_type @Test2 [concrete] // CHECK:STDOUT: %Test2: %Test2.type = struct_value () [concrete] -// CHECK:STDOUT: %F.specific_fn.c19: = specific_function %F, @F(%struct_type.m.n) [concrete] -// CHECK:STDOUT: %inst.as_compatible.154: = inst_value [concrete] { -// CHECK:STDOUT: %.719: %C = as_compatible @F.%x.ref +// CHECK:STDOUT: %F.specific_fn.4da: = specific_function %F, @F(%struct_type.m.n) [concrete] +// CHECK:STDOUT: %inst.as_compatible.ea0: = inst_value [concrete] { +// CHECK:STDOUT: %.bcf: %C = as_compatible @F.%x.ref // CHECK:STDOUT: } -// CHECK:STDOUT: %inst.splice_block.05d: = inst_value [concrete] { -// CHECK:STDOUT: %.a14: %i32 = splice_block %.6f1 { +// CHECK:STDOUT: %inst.splice_block.738: = inst_value [concrete] { +// CHECK:STDOUT: %.556: %i32 = splice_block %.33b { // CHECK:STDOUT: %n.ref: %C.elem = name_ref n, @C.%.loc10 [concrete = @C.%.loc10] -// CHECK:STDOUT: %.d41: ref %i32 = class_element_access %.719, element0 -// CHECK:STDOUT: %.6f1: %i32 = acquire_value %.d41 +// CHECK:STDOUT: %.cb0: ref %i32 = class_element_access %.bcf, element0 +// CHECK:STDOUT: %.33b: %i32 = acquire_value %.cb0 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %inst.splice_block.955: = inst_value [concrete] { -// CHECK:STDOUT: %.6e9: %i32 = splice_block %.a14 {} +// CHECK:STDOUT: %inst.splice_block.3cc: = inst_value [concrete] { +// CHECK:STDOUT: %.98d: %i32 = splice_block %.556 {} // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type.c44: = complete_type_witness %struct_type.m.n [concrete] -// CHECK:STDOUT: %inst.as_compatible.555: = inst_value [concrete] { -// CHECK:STDOUT: %.ebc: %struct_type.m.n = as_compatible @F.%x.ref +// CHECK:STDOUT: %complete_type.08f: = complete_type_witness %struct_type.m.n [concrete] +// CHECK:STDOUT: %inst.as_compatible.8b7: = inst_value [concrete] { +// CHECK:STDOUT: %.63c: %struct_type.m.n = as_compatible @F.%x.ref // CHECK:STDOUT: } // CHECK:STDOUT: %inst.struct_access: = inst_value [concrete] { -// CHECK:STDOUT: %.fca: %i32 = struct_access %.ebc, element1 +// CHECK:STDOUT: %.29c: %i32 = struct_access %.63c, element1 // CHECK:STDOUT: } -// CHECK:STDOUT: %inst.splice_block.a2f: = inst_value [concrete] { -// CHECK:STDOUT: %.c4e: %i32 = splice_block %.fca {} +// CHECK:STDOUT: %inst.splice_block.a6c: = inst_value [concrete] { +// CHECK:STDOUT: %.110: %i32 = splice_block %.29c {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -160,8 +160,8 @@ fn Test(e: E) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -177,11 +177,11 @@ fn Test(e: E) { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0, template [concrete] // CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d) = value_param_pattern [concrete] // CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc4 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc4: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4_34: Core.Form = init_form %i32.loc4 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc4_34: Core.Form = init_form %i32.loc4 [concrete = constants.%.795] // CHECK:STDOUT: %.loc4_19.1: type = splice_block %.loc4_19.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc4_19.2: type = type_literal type [concrete = type] @@ -195,16 +195,16 @@ fn Test(e: E) { // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %Test1.decl: %Test1.type = fn_decl @Test1 [concrete = constants.%Test1] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: %C = value_binding c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: %Test2.decl: %Test2.type = fn_decl @Test2 [concrete = constants.%Test2] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.e32 = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.e32 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.860 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.860 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %struct_type.m.n = value_param call_param0 // CHECK:STDOUT: %.loc17: type = splice_block %struct_type.m.n [concrete = constants.%struct_type.m.n] { @@ -218,7 +218,7 @@ fn Test(e: E) { // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %.loc10: %C.elem = field_decl n, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.edf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.cdf] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -240,7 +240,7 @@ fn Test(e: E) { // CHECK:STDOUT: fn(%x.param: @F.%T.loc4_16.1 (%T.67db0b.1)) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = value_binding_pattern n [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = value_binding_pattern n [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.ref: @F.%T.loc4_16.1 (%T.67db0b.1) = name_ref x, %x // CHECK:STDOUT: %.loc5_17.1: @F.%T.loc4_16.1 (%T.67db0b.1) = splice_inst %.loc5_17.4 @@ -249,7 +249,7 @@ fn Test(e: E) { // CHECK:STDOUT: %.loc5_17.3: %i32 = splice_inst %.loc5_17.7 // CHECK:STDOUT: %n: %i32 = value_binding n, %.loc5_17.3 // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %n.ref, %impl.elem0 // 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_10.2: = bound_method %n.ref, %specific_fn @@ -262,7 +262,7 @@ fn Test(e: E) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.076] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%C) [concrete = constants.%F.specific_fn.e0d] // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn(%c.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -271,7 +271,7 @@ fn Test(e: E) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %x.ref: %struct_type.m.n = name_ref x, %x -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%struct_type.m.n) [concrete = constants.%F.specific_fn.c19] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%struct_type.m.n) [concrete = constants.%F.specific_fn.4da] // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn(%x.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -283,26 +283,26 @@ fn Test(e: E) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { // CHECK:STDOUT: %T.loc4_16.1 => constants.%C -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d5 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.edf -// CHECK:STDOUT: %.loc5_17.4 => constants.%inst.as_compatible.154 -// CHECK:STDOUT: %.loc5_17.5 => constants.%inst.splice_block.05d +// CHECK:STDOUT: %require_complete => constants.%complete_type.cdf +// CHECK:STDOUT: %.loc5_17.4 => constants.%inst.as_compatible.ea0 +// CHECK:STDOUT: %.loc5_17.5 => constants.%inst.splice_block.738 // CHECK:STDOUT: %.loc5_17.6 => constants.%i32 -// CHECK:STDOUT: %.loc5_17.7 => constants.%inst.splice_block.955 +// CHECK:STDOUT: %.loc5_17.7 => constants.%inst.splice_block.3cc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%struct_type.m.n) { // CHECK:STDOUT: %T.loc4_16.1 => constants.%struct_type.m.n -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e32 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.860 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.c44 -// CHECK:STDOUT: %.loc5_17.4 => constants.%inst.as_compatible.555 +// CHECK:STDOUT: %require_complete => constants.%complete_type.08f +// CHECK:STDOUT: %.loc5_17.4 => constants.%inst.as_compatible.8b7 // CHECK:STDOUT: %.loc5_17.5 => constants.%inst.struct_access // CHECK:STDOUT: %.loc5_17.6 => constants.%i32 -// CHECK:STDOUT: %.loc5_17.7 => constants.%inst.splice_block.a2f +// CHECK:STDOUT: %.loc5_17.7 => constants.%inst.splice_block.a6c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_no_such_member.carbon @@ -318,31 +318,31 @@ fn Test(e: E) { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T.67db0b.1 [template] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %D: type = class_type @D [concrete] // CHECK:STDOUT: %D.elem: type = unbound_element_type %D, %i32 [concrete] // CHECK:STDOUT: %struct_type.m: type = struct_type {.m: %i32} [concrete] -// CHECK:STDOUT: %complete_type.49f: = complete_type_witness %struct_type.m [concrete] -// CHECK:STDOUT: %pattern_type.f1a: type = pattern_type %D [concrete] +// CHECK:STDOUT: %complete_type.37d: = complete_type_witness %struct_type.m [concrete] +// CHECK:STDOUT: %pattern_type.d8d: type = pattern_type %D [concrete] // CHECK:STDOUT: %Test.type: type = fn_type @Test [concrete] // CHECK:STDOUT: %Test: %Test.type = struct_value () [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%D) [concrete] // CHECK:STDOUT: %inst.as_compatible: = inst_value [concrete] { -// CHECK:STDOUT: %.e9f: %D = as_compatible @F.%x.ref +// CHECK:STDOUT: %.af0: %D = as_compatible @F.%x.ref // CHECK:STDOUT: } // CHECK:STDOUT: %inst.name_ref: = inst_value [concrete] { // CHECK:STDOUT: %n.ref: = name_ref n, [concrete = ] @@ -361,8 +361,8 @@ fn Test(e: E) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -377,11 +377,11 @@ fn Test(e: E) { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0, template [concrete] // CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d) = value_param_pattern [concrete] // CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc4 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc4: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4_34: Core.Form = init_form %i32.loc4 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc4_34: Core.Form = init_form %i32.loc4 [concrete = constants.%.795] // CHECK:STDOUT: %.loc4_19.1: type = splice_block %.loc4_19.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc4_19.2: type = type_literal type [concrete = type] @@ -395,8 +395,8 @@ fn Test(e: E) { // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] { -// CHECK:STDOUT: %d.param_patt: %pattern_type.f1a = value_param_pattern [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.f1a = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.d8d = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.d8d = at_binding_pattern d, %d.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %d.param: %D = value_param call_param0 // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] @@ -406,7 +406,7 @@ fn Test(e: E) { // CHECK:STDOUT: // CHECK:STDOUT: class @D { // CHECK:STDOUT: %.loc10: %D.elem = field_decl m, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.m [concrete = constants.%complete_type.49f] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.m [concrete = constants.%complete_type.37d] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -429,7 +429,7 @@ fn Test(e: E) { // CHECK:STDOUT: fn(%x.param: @F.%T.loc4_16.1 (%T.67db0b.1)) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = value_binding_pattern n [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = value_binding_pattern n [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.ref: @F.%T.loc4_16.1 (%T.67db0b.1) = name_ref x, %x // CHECK:STDOUT: %.loc5_17.1: @F.%T.loc4_16.1 (%T.67db0b.1) = splice_inst %.loc5_17.4 @@ -438,7 +438,7 @@ fn Test(e: E) { // CHECK:STDOUT: %.loc5_17.3: %i32 = splice_inst %.loc5_17.7 // CHECK:STDOUT: %n: %i32 = value_binding n, %.loc5_17.3 // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %n.ref, %impl.elem0 // 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_10.2: = bound_method %n.ref, %specific_fn @@ -463,10 +463,10 @@ fn Test(e: E) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%D) { // CHECK:STDOUT: %T.loc4_16.1 => constants.%D -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f1a +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d8d // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.49f +// CHECK:STDOUT: %require_complete => constants.%complete_type.37d // CHECK:STDOUT: %.loc5_17.4 => constants.%inst.as_compatible // CHECK:STDOUT: %.loc5_17.5 => constants.%inst.name_ref // CHECK:STDOUT: %.loc5_17.6 => @@ -486,47 +486,47 @@ fn Test(e: E) { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F.loc4 [concrete] -// CHECK:STDOUT: %F.736: %F.type = struct_value () [concrete] +// CHECK:STDOUT: %F.708: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T.67db0b.1 [template] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %E: type = class_type @E [concrete] -// CHECK:STDOUT: %F.35a: type = class_type @F.loc10 [concrete] +// CHECK:STDOUT: %F.76a: type = class_type @F.loc10 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %E.elem: type = unbound_element_type %E, %F.35a [concrete] -// CHECK:STDOUT: %struct_type.n.2b6: type = struct_type {.n: %F.35a} [concrete] -// CHECK:STDOUT: %complete_type.196: = complete_type_witness %struct_type.n.2b6 [concrete] -// CHECK:STDOUT: %pattern_type.ee7: type = pattern_type %E [concrete] +// CHECK:STDOUT: %E.elem: type = unbound_element_type %E, %F.76a [concrete] +// CHECK:STDOUT: %struct_type.n.88b: type = struct_type {.n: %F.76a} [concrete] +// CHECK:STDOUT: %complete_type.15a: = complete_type_witness %struct_type.n.88b [concrete] +// CHECK:STDOUT: %pattern_type.849: type = pattern_type %E [concrete] // CHECK:STDOUT: %Test.type: type = fn_type @Test [concrete] // CHECK:STDOUT: %Test: %Test.type = struct_value () [concrete] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.736, @F.loc4(%E) [concrete] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.708, @F.loc4(%E) [concrete] // CHECK:STDOUT: %inst.as_compatible: = inst_value [concrete] { -// CHECK:STDOUT: %.2ad: %E = as_compatible @F.loc4.%x.ref +// CHECK:STDOUT: %.660: %E = as_compatible @F.loc4.%x.ref // CHECK:STDOUT: } -// CHECK:STDOUT: %inst.splice_block.787: = inst_value [concrete] { -// CHECK:STDOUT: %.9c4: %F.35a = splice_block %.86a { +// CHECK:STDOUT: %inst.splice_block.124: = inst_value [concrete] { +// CHECK:STDOUT: %.cdf: %F.76a = splice_block %.6fd { // CHECK:STDOUT: %n.ref: %E.elem = name_ref n, @E.%.loc11 [concrete = @E.%.loc11] -// CHECK:STDOUT: %.7cc: ref %F.35a = class_element_access %.2ad, element0 -// CHECK:STDOUT: %.86a: %F.35a = acquire_value %.7cc +// CHECK:STDOUT: %.cce: ref %F.76a = class_element_access %.660, element0 +// CHECK:STDOUT: %.6fd: %F.76a = acquire_value %.cce // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %inst.splice_block.8dc: = inst_value [concrete] { -// CHECK:STDOUT: %.788: = splice_block [concrete = ] { -// CHECK:STDOUT: %.0d8: %i32 = converted %.9c4, [concrete = ] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %inst.splice_block.db7: = inst_value [concrete] { +// CHECK:STDOUT: %.cbb: = splice_block [concrete = ] { +// CHECK:STDOUT: %.eb0: %i32 = converted %.cdf, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -541,9 +541,9 @@ fn Test(e: E) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -554,15 +554,15 @@ fn Test(e: E) { // CHECK:STDOUT: .Test = %Test.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F.loc4 [concrete = constants.%F.736] { +// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F.loc4 [concrete = constants.%F.708] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0, template [concrete] // CHECK:STDOUT: %x.param_patt: @F.loc4.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern [concrete] // CHECK:STDOUT: %x.patt: @F.loc4.%pattern_type (%pattern_type.51d1c4.1) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc4 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc4: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4_34: Core.Form = init_form %i32.loc4 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc4_34: Core.Form = init_form %i32.loc4 [concrete = constants.%.795] // CHECK:STDOUT: %.loc4_19.1: type = splice_block %.loc4_19.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc4_19.2: type = type_literal type [concrete = type] @@ -576,8 +576,8 @@ fn Test(e: E) { // CHECK:STDOUT: } // CHECK:STDOUT: %E.decl: type = class_decl @E [concrete = constants.%E] {} {} // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] { -// CHECK:STDOUT: %e.param_patt: %pattern_type.ee7 = value_param_pattern [concrete] -// CHECK:STDOUT: %e.patt: %pattern_type.ee7 = at_binding_pattern e, %e.param_patt [concrete] +// CHECK:STDOUT: %e.param_patt: %pattern_type.849 = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.849 = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %e.param: %E = value_param call_param0 // CHECK:STDOUT: %E.ref: type = name_ref E, file.%E.decl [concrete = constants.%E] @@ -586,9 +586,9 @@ fn Test(e: E) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @E { -// CHECK:STDOUT: %F.decl: type = class_decl @F.loc10 [concrete = constants.%F.35a] {} {} +// CHECK:STDOUT: %F.decl: type = class_decl @F.loc10 [concrete = constants.%F.76a] {} {} // CHECK:STDOUT: %.loc11: %E.elem = field_decl n, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n.2b6 [concrete = constants.%complete_type.196] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n.88b [concrete = constants.%complete_type.15a] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -602,7 +602,7 @@ fn Test(e: E) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%F.35a +// CHECK:STDOUT: .Self = constants.%F.76a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc4(%T.loc4_16.2: type) { @@ -619,7 +619,7 @@ fn Test(e: E) { // CHECK:STDOUT: fn(%x.param: @F.loc4.%T.loc4_16.1 (%T.67db0b.1)) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = value_binding_pattern n [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = value_binding_pattern n [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.ref: @F.loc4.%T.loc4_16.1 (%T.67db0b.1) = name_ref x, %x // CHECK:STDOUT: %.loc5_17.1: @F.loc4.%T.loc4_16.1 (%T.67db0b.1) = splice_inst %.loc5_17.4 @@ -628,7 +628,7 @@ fn Test(e: E) { // CHECK:STDOUT: %.loc5_17.3: %i32 = splice_inst %.loc5_17.7 // CHECK:STDOUT: %n: %i32 = value_binding n, %.loc5_17.3 // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %n.ref, %impl.elem0 // 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_10.2: = bound_method %n.ref, %specific_fn @@ -639,7 +639,7 @@ fn Test(e: E) { // CHECK:STDOUT: // CHECK:STDOUT: fn @Test(%e.param: %E) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F.736] +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F.708] // CHECK:STDOUT: %e.ref: %E = name_ref e, %e // CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F.loc4(constants.%E) [concrete = constants.%F.specific_fn] // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn(%e.ref) @@ -653,13 +653,13 @@ fn Test(e: E) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc4(constants.%E) { // CHECK:STDOUT: %T.loc4_16.1 => constants.%E -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ee7 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.849 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.196 +// CHECK:STDOUT: %require_complete => constants.%complete_type.15a // CHECK:STDOUT: %.loc5_17.4 => constants.%inst.as_compatible -// CHECK:STDOUT: %.loc5_17.5 => constants.%inst.splice_block.787 -// CHECK:STDOUT: %.loc5_17.6 => constants.%F.35a -// CHECK:STDOUT: %.loc5_17.7 => constants.%inst.splice_block.8dc +// CHECK:STDOUT: %.loc5_17.5 => constants.%inst.splice_block.124 +// CHECK:STDOUT: %.loc5_17.6 => constants.%F.76a +// CHECK:STDOUT: %.loc5_17.7 => constants.%inst.splice_block.db7 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/generic/template/unimplemented.carbon b/toolchain/check/testdata/generic/template/unimplemented.carbon index 0838132f4015..89df99087afb 100644 --- a/toolchain/check/testdata/generic/template/unimplemented.carbon +++ b/toolchain/check/testdata/generic/template/unimplemented.carbon @@ -82,14 +82,14 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [template] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %MulWith.type.407: type = generic_interface_type @MulWith [concrete] -// CHECK:STDOUT: %MulWith.generic: %MulWith.type.407 = struct_value () [concrete] +// CHECK:STDOUT: %MulWith.type.9f9: type = generic_interface_type @MulWith [concrete] +// CHECK:STDOUT: %MulWith.generic: %MulWith.type.9f9 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -100,7 +100,7 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.MulWith: %MulWith.type.407 = import_ref Core//prelude/operators/arithmetic, MulWith, loaded [concrete = constants.%MulWith.generic] +// CHECK:STDOUT: %Core.MulWith: %MulWith.type.9f9 = import_ref Core//prelude/operators/arithmetic, MulWith, loaded [concrete = constants.%MulWith.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -113,11 +113,11 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0, template [concrete] // CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.51d1c4.1) = value_param_pattern [concrete] // CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.51d1c4.1) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc6_34: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc6_34: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %.loc6_19.1: type = splice_block %.loc6_19.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %.loc6_19.2: type = type_literal type [concrete = type] @@ -164,20 +164,20 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [concrete] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [concrete] -// CHECK:STDOUT: %complete_type.edf: = complete_type_witness %struct_type.n [concrete] +// CHECK:STDOUT: %complete_type.cdf: = complete_type_witness %struct_type.n [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %c: %C = symbolic_binding c, 0, template [template] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %MulWith.type.407: type = generic_interface_type @MulWith [concrete] -// CHECK:STDOUT: %MulWith.generic: %MulWith.type.407 = struct_value () [concrete] +// CHECK:STDOUT: %MulWith.type.9f9: type = generic_interface_type @MulWith [concrete] +// CHECK:STDOUT: %MulWith.generic: %MulWith.type.9f9 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -188,7 +188,7 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.MulWith: %MulWith.type.407 = import_ref Core//prelude/operators/arithmetic, MulWith, loaded [concrete = constants.%MulWith.generic] +// CHECK:STDOUT: %Core.MulWith: %MulWith.type.9f9 = import_ref Core//prelude/operators/arithmetic, MulWith, loaded [concrete = constants.%MulWith.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -200,12 +200,12 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = symbolic_binding_pattern c, 0, template [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = symbolic_binding_pattern c, 0, template [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc11_25: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc11_25: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %.loc11_19: type = splice_block %C.ref [concrete = constants.%C] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -218,7 +218,7 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %.loc5: %C.elem = field_decl n, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.edf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.cdf] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -252,31 +252,31 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %pattern_type.376: type = pattern_type %Destroy.type [concrete] -// CHECK:STDOUT: %T.c66: %Destroy.type = symbolic_binding T, 0, template [template] -// CHECK:STDOUT: %T.as_type.7e7: type = facet_access_type %T.c66 [template] -// CHECK:STDOUT: %pattern_type.227a41.2: type = pattern_type %T.as_type.7e7 [template] +// CHECK:STDOUT: %pattern_type.429: type = pattern_type %Destroy.type [concrete] +// CHECK:STDOUT: %T.0e7: %Destroy.type = symbolic_binding T, 0, template [template] +// CHECK:STDOUT: %T.as_type.700: type = facet_access_type %T.0e7 [template] +// CHECK:STDOUT: %pattern_type.f4e485.2: type = pattern_type %T.as_type.700 [template] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.9df: = require_complete_type %T.as_type.7e7 [template] +// CHECK:STDOUT: %require_complete.14c: = require_complete_type %T.as_type.700 [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.a07: type = facet_type <@ImplicitAs, @ImplicitAs(%T.as_type.7e7)> [template] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.f42: type = facet_type <@ImplicitAs, @ImplicitAs(%T.as_type.700)> [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc22_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.c66, @Destroy [template] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.6304ea.2: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%T.c66) [template] -// CHECK:STDOUT: %.543: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.6304ea.2, %T.c66 [template] -// CHECK:STDOUT: %impl.elem0.531: %.543 = impl_witness_access %Destroy.lookup_impl_witness, element0 [template] -// CHECK:STDOUT: %specific_impl_fn.010: = specific_impl_function %impl.elem0.531, @Destroy.WithSelf.Op(%T.c66) [template] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc22_3.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.0e7, @Destroy [template] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3ece9.2: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%T.0e7) [template] +// CHECK:STDOUT: %.53a: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.d3ece9.2, %T.0e7 [template] +// CHECK:STDOUT: %impl.elem0.0f9: %.53a = impl_witness_access %Destroy.lookup_impl_witness, element0 [template] +// CHECK:STDOUT: %specific_impl_fn.afc: = specific_impl_function %impl.elem0.0f9, @Destroy.WithSelf.Op(%T.0e7) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -288,7 +288,7 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -299,75 +299,75 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %T.patt: %pattern_type.376 = symbolic_binding_pattern T, 0, template [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.227a41.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.227a41.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.429 = symbolic_binding_pattern T, 0, template [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.f4e485.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.f4e485.2) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_23: type = splice_block %Destroy.ref [concrete = constants.%Destroy.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Destroy.ref: type = name_ref Destroy, imports.%Core.Destroy [concrete = constants.%Destroy.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc4_16.2: %Destroy.type = symbolic_binding T, 0, template [template = %T.loc4_16.1 (constants.%T.c66)] -// CHECK:STDOUT: %x.param: @F.%T.as_type.loc4_36.1 (%T.as_type.7e7) = value_param call_param0 -// CHECK:STDOUT: %.loc4_36.1: type = splice_block %.loc4_36.2 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.7e7)] { -// CHECK:STDOUT: %T.ref.loc4: %Destroy.type = name_ref T, %T.loc4_16.2 [template = %T.loc4_16.1 (constants.%T.c66)] -// CHECK:STDOUT: %T.as_type.loc4_36.2: type = facet_access_type %T.ref.loc4 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.7e7)] -// CHECK:STDOUT: %.loc4_36.2: type = converted %T.ref.loc4, %T.as_type.loc4_36.2 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.7e7)] +// CHECK:STDOUT: %T.loc4_16.2: %Destroy.type = symbolic_binding T, 0, template [template = %T.loc4_16.1 (constants.%T.0e7)] +// CHECK:STDOUT: %x.param: @F.%T.as_type.loc4_36.1 (%T.as_type.700) = value_param call_param0 +// CHECK:STDOUT: %.loc4_36.1: type = splice_block %.loc4_36.2 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.700)] { +// CHECK:STDOUT: %T.ref.loc4: %Destroy.type = name_ref T, %T.loc4_16.2 [template = %T.loc4_16.1 (constants.%T.0e7)] +// CHECK:STDOUT: %T.as_type.loc4_36.2: type = facet_access_type %T.ref.loc4 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.700)] +// CHECK:STDOUT: %.loc4_36.2: type = converted %T.ref.loc4, %T.as_type.loc4_36.2 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.700)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%T.as_type.loc4_36.1 (%T.as_type.7e7) = value_binding x, %x.param +// CHECK:STDOUT: %x: @F.%T.as_type.loc4_36.1 (%T.as_type.700) = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc4_16.2: %Destroy.type) { -// CHECK:STDOUT: %T.loc4_16.1: %Destroy.type = symbolic_binding T, 0, template [template = %T.loc4_16.1 (constants.%T.c66)] -// CHECK:STDOUT: %T.as_type.loc4_36.1: type = facet_access_type %T.loc4_16.1 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.7e7)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc4_36.1 [template = %pattern_type (constants.%pattern_type.227a41.2)] +// CHECK:STDOUT: %T.loc4_16.1: %Destroy.type = symbolic_binding T, 0, template [template = %T.loc4_16.1 (constants.%T.0e7)] +// CHECK:STDOUT: %T.as_type.loc4_36.1: type = facet_access_type %T.loc4_16.1 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.700)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc4_36.1 [template = %pattern_type (constants.%pattern_type.f4e485.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc4_36.1 [template = %require_complete (constants.%require_complete.9df)] -// CHECK:STDOUT: %ImplicitAs.type.loc14_3.2: type = facet_type <@ImplicitAs, @ImplicitAs(%T.as_type.loc4_36.1)> [template = %ImplicitAs.type.loc14_3.2 (constants.%ImplicitAs.type.a07)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc4_36.1 [template = %require_complete (constants.%require_complete.14c)] +// CHECK:STDOUT: %ImplicitAs.type.loc14_3.2: type = facet_type <@ImplicitAs, @ImplicitAs(%T.as_type.loc4_36.1)> [template = %ImplicitAs.type.loc14_3.2 (constants.%ImplicitAs.type.f42)] // CHECK:STDOUT: %.loc14_3.3: = access_member_action %ImplicitAs.type.loc14_3.1, Convert [template] // CHECK:STDOUT: %.loc14_3.4: type = type_of_inst %.loc14_3.3 [template] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%T.loc4_16.1) [template = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.6304ea.2)] -// CHECK:STDOUT: %.loc14_3.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %T.loc4_16.1 [template = %.loc14_3.5 (constants.%.543)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%T.loc4_16.1) [template = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d3ece9.2)] +// CHECK:STDOUT: %.loc14_3.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %T.loc4_16.1 [template = %.loc14_3.5 (constants.%.53a)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.loc4_16.1, @Destroy [template = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc14_3.2: @F.%.loc14_3.5 (%.543) = impl_witness_access %Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.531)] -// CHECK:STDOUT: %specific_impl_fn.loc14_3.2: = specific_impl_function %impl.elem0.loc14_3.2, @Destroy.WithSelf.Op(%T.loc4_16.1) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.010)] +// CHECK:STDOUT: %impl.elem0.loc14_3.2: @F.%.loc14_3.5 (%.53a) = impl_witness_access %Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.0f9)] +// CHECK:STDOUT: %specific_impl_fn.loc14_3.2: = specific_impl_function %impl.elem0.loc14_3.2, @Destroy.WithSelf.Op(%T.loc4_16.1) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.afc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%T.as_type.loc4_36.1 (%T.as_type.7e7)) { +// CHECK:STDOUT: fn(%x.param: @F.%T.as_type.loc4_36.1 (%T.as_type.700)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: @F.%pattern_type (%pattern_type.227a41.2) = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: @F.%pattern_type (%pattern_type.227a41.2) = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: @F.%pattern_type (%pattern_type.f4e485.2) = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: @F.%pattern_type (%pattern_type.f4e485.2) = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref @F.%T.as_type.loc4_36.1 (%T.as_type.7e7) = var %v.var_patt +// CHECK:STDOUT: %v.var: ref @F.%T.as_type.loc4_36.1 (%T.as_type.700) = var %v.var_patt // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %ImplicitAs.type.loc14_3.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%T.as_type.7e7)> [template = %ImplicitAs.type.loc14_3.2 (constants.%ImplicitAs.type.a07)] +// CHECK:STDOUT: %ImplicitAs.type.loc14_3.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%T.as_type.700)> [template = %ImplicitAs.type.loc14_3.2 (constants.%ImplicitAs.type.f42)] // CHECK:STDOUT: %.loc14_3.1: @F.%.loc14_3.4 (@F.%.loc14_3.4) = splice_inst %.loc14_3.3 -// CHECK:STDOUT: %.loc14_3.2: @F.%T.as_type.loc4_36.1 (%T.as_type.7e7) = converted %int_0, [concrete = ] +// CHECK:STDOUT: %.loc14_3.2: @F.%T.as_type.loc4_36.1 (%T.as_type.700) = converted %int_0, [concrete = ] // CHECK:STDOUT: assign %v.var, -// CHECK:STDOUT: %.loc14_17.1: type = splice_block %.loc14_17.2 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.7e7)] { -// CHECK:STDOUT: %T.ref.loc14: %Destroy.type = name_ref T, %T.loc4_16.2 [template = %T.loc4_16.1 (constants.%T.c66)] -// CHECK:STDOUT: %T.as_type.loc14: type = facet_access_type %T.ref.loc14 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.7e7)] -// CHECK:STDOUT: %.loc14_17.2: type = converted %T.ref.loc14, %T.as_type.loc14 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.7e7)] +// CHECK:STDOUT: %.loc14_17.1: type = splice_block %.loc14_17.2 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.700)] { +// CHECK:STDOUT: %T.ref.loc14: %Destroy.type = name_ref T, %T.loc4_16.2 [template = %T.loc4_16.1 (constants.%T.0e7)] +// CHECK:STDOUT: %T.as_type.loc14: type = facet_access_type %T.ref.loc14 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.700)] +// CHECK:STDOUT: %.loc14_17.2: type = converted %T.ref.loc14, %T.as_type.loc14 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.700)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref @F.%T.as_type.loc4_36.1 (%T.as_type.7e7) = ref_binding v, %v.var +// CHECK:STDOUT: %v: ref @F.%T.as_type.loc4_36.1 (%T.as_type.700) = ref_binding v, %v.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %w.patt: %pattern_type.104 = ref_binding_pattern w [concrete] -// CHECK:STDOUT: %w.var_patt: %pattern_type.104 = var_pattern %w.patt [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: } // CHECK:STDOUT: %w.var: ref %i32 = var %w.var_patt -// CHECK:STDOUT: %x.ref: @F.%T.as_type.loc4_36.1 (%T.as_type.7e7) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @F.%T.as_type.loc4_36.1 (%T.as_type.700) = name_ref x, %x // CHECK:STDOUT: %.loc22: %i32 = converted %x.ref, [concrete = ] // CHECK:STDOUT: assign %w.var, // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %w: ref %i32 = ref_binding w, %w.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %w.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %w.var, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%w.var) -// CHECK:STDOUT: %impl.elem0.loc14_3.1: @F.%.loc14_3.5 (%.543) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.531)] +// CHECK:STDOUT: %impl.elem0.loc14_3.1: @F.%.loc14_3.5 (%.53a) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.0f9)] // CHECK:STDOUT: %bound_method.loc14_3.1: = bound_method %v.var, %impl.elem0.loc14_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc14_3.1: = specific_impl_function %impl.elem0.loc14_3.1, @Destroy.WithSelf.Op(constants.%T.c66) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.010)] +// CHECK:STDOUT: %specific_impl_fn.loc14_3.1: = specific_impl_function %impl.elem0.loc14_3.1, @Destroy.WithSelf.Op(constants.%T.0e7) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.afc)] // CHECK:STDOUT: %bound_method.loc14_3.2: = bound_method %v.var, %specific_impl_fn.loc14_3.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc14_3.2(%v.var) // CHECK:STDOUT: return @@ -381,9 +381,9 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.c66) { -// CHECK:STDOUT: %T.loc4_16.1 => constants.%T.c66 -// CHECK:STDOUT: %T.as_type.loc4_36.1 => constants.%T.as_type.7e7 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.227a41.2 +// CHECK:STDOUT: specific @F(constants.%T.0e7) { +// CHECK:STDOUT: %T.loc4_16.1 => constants.%T.0e7 +// CHECK:STDOUT: %T.as_type.loc4_36.1 => constants.%T.as_type.700 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f4e485.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/generic/template_dependence.carbon b/toolchain/check/testdata/generic/template_dependence.carbon index 1fd5799f301a..71cf07ff69b3 100644 --- a/toolchain/check/testdata/generic/template_dependence.carbon +++ b/toolchain/check/testdata/generic/template_dependence.carbon @@ -47,13 +47,13 @@ fn F(template T:! type, U:! type) -> (T, U) { // CHECK:STDOUT: %require_complete.fbe: = require_complete_type %ptr.125 [template] // CHECK:STDOUT: %require_complete.ef162c.1: = require_complete_type %ptr.e8f8f9.1 [template] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2bf: = lookup_impl_witness %ptr.e8f8f9.1, @Copy [template] -// CHECK:STDOUT: %.b6a: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67db0b.1) [template] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e8f8f9.1, (%Copy.lookup_impl_witness.2bf) [template] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.72b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [template] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.72b, %Copy.facet [template] -// CHECK:STDOUT: %impl.elem0.8a3: %.39b = impl_witness_access %Copy.lookup_impl_witness.2bf, element0 [template] -// CHECK:STDOUT: %specific_impl_fn.a13: = specific_impl_function %impl.elem0.8a3, @Copy.WithSelf.Op(%Copy.facet) [template] +// CHECK:STDOUT: %Copy.lookup_impl_witness.1da: = lookup_impl_witness %ptr.e8f8f9.1, @Copy [template] +// CHECK:STDOUT: %.0e9: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67db0b.1) [template] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e8f8f9.1, (%Copy.lookup_impl_witness.1da) [template] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.884: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [template] +// CHECK:STDOUT: %.be5: type = fn_type_with_self_type %Copy.WithSelf.Op.type.884, %Copy.facet [template] +// CHECK:STDOUT: %impl.elem0.484: %.be5 = impl_witness_access %Copy.lookup_impl_witness.1da, element0 [template] +// CHECK:STDOUT: %specific_impl_fn.a76: = specific_impl_function %impl.elem0.484, @Copy.WithSelf.Op(%Copy.facet) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -95,22 +95,22 @@ fn F(template T:! type, U:! type) -> (T, U) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_26: = require_complete_type %ptr.loc5_30.1 [template = %require_complete.loc5_26 (constants.%require_complete.fbe)] // CHECK:STDOUT: %require_complete.loc5_33: = require_complete_type %ptr.loc5_29.1 [template = %require_complete.loc5_33 (constants.%require_complete.ef162c.1)] -// CHECK:STDOUT: %.loc6_10.3: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc5_16.1) [template = %.loc6_10.3 (constants.%.b6a)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc5_29.1, @Copy [template = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2bf)] +// CHECK:STDOUT: %.loc6_10.3: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc5_16.1) [template = %.loc6_10.3 (constants.%.0e9)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc5_29.1, @Copy [template = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.1da)] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc5_29.1, (%Copy.lookup_impl_witness) [template = %Copy.facet (constants.%Copy.facet)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [template = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.72b)] -// CHECK:STDOUT: %.loc6_10.4: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [template = %.loc6_10.4 (constants.%.39b)] -// CHECK:STDOUT: %impl.elem0.loc6_10.2: @F.%.loc6_10.4 (%.39b) = impl_witness_access %Copy.lookup_impl_witness, element0 [template = %impl.elem0.loc6_10.2 (constants.%impl.elem0.8a3)] -// CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.WithSelf.Op(%Copy.facet) [template = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.a13)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [template = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.884)] +// CHECK:STDOUT: %.loc6_10.4: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [template = %.loc6_10.4 (constants.%.be5)] +// CHECK:STDOUT: %impl.elem0.loc6_10.2: @F.%.loc6_10.4 (%.be5) = impl_witness_access %Copy.lookup_impl_witness, element0 [template = %impl.elem0.loc6_10.2 (constants.%impl.elem0.484)] +// CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.WithSelf.Op(%Copy.facet) [template = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.a76)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @F.%ptr.loc5_30.1 (%ptr.125)) -> out %return.param: @F.%ptr.loc5_29.1 (%ptr.e8f8f9.1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: @F.%ptr.loc5_30.1 (%ptr.125) = name_ref x, %x // CHECK:STDOUT: %.loc6_10.1: ref @F.%ptr.loc5_29.1 (%ptr.e8f8f9.1) = deref %x.ref // CHECK:STDOUT: %.loc6_10.2: @F.%ptr.loc5_29.1 (%ptr.e8f8f9.1) = acquire_value %.loc6_10.1 -// CHECK:STDOUT: %impl.elem0.loc6_10.1: @F.%.loc6_10.4 (%.39b) = impl_witness_access constants.%Copy.lookup_impl_witness.2bf, element0 [template = %impl.elem0.loc6_10.2 (constants.%impl.elem0.8a3)] +// CHECK:STDOUT: %impl.elem0.loc6_10.1: @F.%.loc6_10.4 (%.be5) = impl_witness_access constants.%Copy.lookup_impl_witness.1da, element0 [template = %impl.elem0.loc6_10.2 (constants.%impl.elem0.484)] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %.loc6_10.2, %impl.elem0.loc6_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.WithSelf.Op(constants.%Copy.facet) [template = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.a13)] +// CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.WithSelf.Op(constants.%Copy.facet) [template = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.a76)] // CHECK:STDOUT: %bound_method.loc6_10.2: = bound_method %.loc6_10.2, %specific_impl_fn.loc6_10.1 // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @F.%ptr.loc5_29.1 (%ptr.e8f8f9.1) = call %bound_method.loc6_10.2(%.loc6_10.2) // CHECK:STDOUT: return %Copy.WithSelf.Op.call diff --git a/toolchain/check/testdata/generic/var_param.carbon b/toolchain/check/testdata/generic/var_param.carbon index dcc9cfcb9f45..f9e72df9432c 100644 --- a/toolchain/check/testdata/generic/var_param.carbon +++ b/toolchain/check/testdata/generic/var_param.carbon @@ -37,69 +37,69 @@ fn Test(x: i32) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @i32.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %i32, (%I.impl_witness) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.998: type = pattern_type %I.type [concrete] -// CHECK:STDOUT: %T.2e1: %I.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.a70: type = facet_access_type %T.2e1 [symbolic] -// CHECK:STDOUT: %pattern_type.3df: type = pattern_type %T.as_type.a70 [symbolic] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %I.type [concrete] +// CHECK:STDOUT: %T.dda: %I.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.b38: type = facet_access_type %T.dda [symbolic] +// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %T.as_type.b38 [symbolic] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [concrete] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.0f1: = require_complete_type %T.as_type.a70 [symbolic] +// CHECK:STDOUT: %require_complete.27c: = require_complete_type %T.as_type.b38 [symbolic] // CHECK:STDOUT: %TestOp.specific_fn: = specific_function %TestOp, @TestOp(%I.facet) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc22_25.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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_25.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %TestOp.decl: %TestOp.type = fn_decl @TestOp [concrete = constants.%TestOp] { -// CHECK:STDOUT: %T.patt: %pattern_type.998 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @TestOp.%pattern_type (%pattern_type.3df) = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @TestOp.%pattern_type (%pattern_type.3df) = var_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.6cb = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %x.patt: @TestOp.%pattern_type (%pattern_type.b3a) = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @TestOp.%pattern_type (%pattern_type.b3a) = var_param_pattern %x.patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc22_15: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc22_12.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc22_12.1 (constants.%T.2e1)] -// CHECK:STDOUT: %x.param: ref @TestOp.%T.as_type.loc22_32.1 (%T.as_type.a70) = ref_param call_param0 -// CHECK:STDOUT: %.loc22_32.1: type = splice_block %.loc22_32.2 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.a70)] { -// CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc22_12.2 [symbolic = %T.loc22_12.1 (constants.%T.2e1)] -// CHECK:STDOUT: %T.as_type.loc22_32.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.a70)] -// CHECK:STDOUT: %.loc22_32.2: type = converted %T.ref, %T.as_type.loc22_32.2 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.a70)] +// CHECK:STDOUT: %T.loc22_12.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc22_12.1 (constants.%T.dda)] +// CHECK:STDOUT: %x.param: ref @TestOp.%T.as_type.loc22_32.1 (%T.as_type.b38) = ref_param call_param0 +// CHECK:STDOUT: %.loc22_32.1: type = splice_block %.loc22_32.2 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.b38)] { +// CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc22_12.2 [symbolic = %T.loc22_12.1 (constants.%T.dda)] +// CHECK:STDOUT: %T.as_type.loc22_32.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.b38)] +// CHECK:STDOUT: %.loc22_32.2: type = converted %T.ref, %T.as_type.loc22_32.2 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.b38)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: ref @TestOp.%T.as_type.loc22_32.1 (%T.as_type.a70) = ref_binding x, %x.param +// CHECK:STDOUT: %x: ref @TestOp.%T.as_type.loc22_32.1 (%T.as_type.b38) = ref_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @TestOp(%T.loc22_12.2: %I.type) { -// CHECK:STDOUT: %T.loc22_12.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc22_12.1 (constants.%T.2e1)] -// CHECK:STDOUT: %T.as_type.loc22_32.1: type = facet_access_type %T.loc22_12.1 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.a70)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc22_32.1 [symbolic = %pattern_type (constants.%pattern_type.3df)] +// CHECK:STDOUT: %T.loc22_12.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc22_12.1 (constants.%T.dda)] +// CHECK:STDOUT: %T.as_type.loc22_32.1: type = facet_access_type %T.loc22_12.1 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.b38)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc22_32.1 [symbolic = %pattern_type (constants.%pattern_type.b3a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc22_32.1 [symbolic = %require_complete (constants.%require_complete.0f1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc22_32.1 [symbolic = %require_complete (constants.%require_complete.27c)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: ref @TestOp.%T.as_type.loc22_32.1 (%T.as_type.a70)) { +// CHECK:STDOUT: fn(%x.param: ref @TestOp.%T.as_type.loc22_32.1 (%T.as_type.b38)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -112,7 +112,7 @@ fn Test(x: i32) { // CHECK:STDOUT: %I.facet: %I.type = facet_value constants.%i32, (constants.%I.impl_witness) [concrete = constants.%I.facet] // CHECK:STDOUT: %.loc27: %I.type = converted constants.%i32, %I.facet [concrete = constants.%I.facet] // CHECK:STDOUT: %TestOp.specific_fn: = specific_function %TestOp.ref, @TestOp(constants.%I.facet) [concrete = constants.%TestOp.specific_fn] -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc27_10.1: = bound_method %x.ref, %impl.elem0 // 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.loc27_10.2: = bound_method %x.ref, %specific_fn @@ -120,7 +120,7 @@ fn Test(x: i32) { // CHECK:STDOUT: %x.var: ref %i32 = var @TestOp.%x.param_patt // 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.2dd605.2 +// 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: // CHECK:STDOUT: } @@ -132,16 +132,16 @@ fn Test(x: i32) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TestOp(constants.%T.2e1) { -// CHECK:STDOUT: %T.loc22_12.1 => constants.%T.2e1 -// CHECK:STDOUT: %T.as_type.loc22_32.1 => constants.%T.as_type.a70 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3df +// CHECK:STDOUT: specific @TestOp(constants.%T.dda) { +// CHECK:STDOUT: %T.loc22_12.1 => constants.%T.dda +// CHECK:STDOUT: %T.as_type.loc22_32.1 => constants.%T.as_type.b38 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b3a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TestOp(constants.%I.facet) { // CHECK:STDOUT: %T.loc22_12.1 => constants.%I.facet // CHECK:STDOUT: %T.as_type.loc22_32.1 => constants.%i32 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.104 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6b6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a diff --git a/toolchain/check/testdata/global/basics.carbon b/toolchain/check/testdata/global/basics.carbon index 49cd251f5719..99f51f0413f7 100644 --- a/toolchain/check/testdata/global/basics.carbon +++ b/toolchain/check/testdata/global/basics.carbon @@ -61,15 +61,15 @@ var a: A = Make(); // CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.6ba: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %empty_struct_type, (%DefaultOrUnformed.impl_witness.6ba) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.f5a: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %empty_struct_type, (%DefaultOrUnformed.impl_witness.f5a) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -87,7 +87,7 @@ var a: A = Make(); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%empty_struct_type, (constants.%DefaultOrUnformed.impl_witness.6ba) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%empty_struct_type, (constants.%DefaultOrUnformed.impl_witness.f5a) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc4_10.1: %DefaultOrUnformed.type = converted constants.%empty_struct_type, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc4_10.1 [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc4_10.2: type = converted %.loc4_10.1, %as_type [concrete = constants.%empty_struct_type] diff --git a/toolchain/check/testdata/if/basics.carbon b/toolchain/check/testdata/if/basics.carbon index 7e8be00e53dc..708a943c1178 100644 --- a/toolchain/check/testdata/if/basics.carbon +++ b/toolchain/check/testdata/if/basics.carbon @@ -203,10 +203,10 @@ fn VarScope(b: bool) -> bool { // CHECK:STDOUT: %If: %If.type = struct_value () [concrete] // CHECK:STDOUT: %false: bool = bool_literal false [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.de3: = impl_witness imports.%Copy.impl_witness_table.34b [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.de3) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.079: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.022: type = fn_type_with_self_type %Copy.WithSelf.Op.type.079, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.713: = impl_witness imports.%Copy.impl_witness_table.1ff [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.713) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.4a4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.15e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.4a4, %Copy.facet [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: %bool.as.Copy.impl.Op.bound.84b: = bound_method %false, %bool.as.Copy.impl.Op [concrete] @@ -215,8 +215,8 @@ fn VarScope(b: bool) -> bool { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.f63: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.34b = impl_witness_table (%Core.import_ref.f63), @bool.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.1ff = impl_witness_table (%Core.import_ref.9c3), @bool.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -243,14 +243,14 @@ fn VarScope(b: bool) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: !if.then: // CHECK:STDOUT: %false: bool = bool_literal false [concrete = constants.%false] -// CHECK:STDOUT: %impl.elem0.loc6: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc6: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc6: = bound_method %false, %impl.elem0.loc6 [concrete = constants.%bool.as.Copy.impl.Op.bound.84b] // CHECK:STDOUT: %bool.as.Copy.impl.Op.call.loc6: init bool = call %bound_method.loc6(%false) [concrete = constants.%false] // CHECK:STDOUT: return %bool.as.Copy.impl.Op.call.loc6 // CHECK:STDOUT: // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem0.loc8: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc8: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc8: = bound_method %true, %impl.elem0.loc8 [concrete = constants.%bool.as.Copy.impl.Op.bound.1b3] // CHECK:STDOUT: %bool.as.Copy.impl.Op.call.loc8: init bool = call %bound_method.loc8(%true) [concrete = constants.%true] // CHECK:STDOUT: return %bool.as.Copy.impl.Op.call.loc8 diff --git a/toolchain/check/testdata/if_expr/basic.carbon b/toolchain/check/testdata/if_expr/basic.carbon index 048914b7a25e..ae6193a30658 100644 --- a/toolchain/check/testdata/if_expr/basic.carbon +++ b/toolchain/check/testdata/if_expr/basic.carbon @@ -29,47 +29,47 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_1, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.34b: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.97e: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.4f2: %tuple.type.985 = tuple_value (%int_0.5c6) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_0.62d) [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_0.3c0) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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.790b3b.3: type = fn_type @Destroy.Op.loc16_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -84,12 +84,12 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/parts/bool, Bool, loaded [concrete = constants.%Bool] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -102,15 +102,15 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %m.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %m.patt: %pattern_type.104 = at_binding_pattern m, %m.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc15_34 [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %m.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = at_binding_pattern m, %m.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc15_34 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_34: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15_34: Core.Form = init_form %i32.loc15_34 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15_34: Core.Form = init_form %i32.loc15_34 [concrete = constants.%.795] // CHECK:STDOUT: %b.param: bool = value_param call_param0 // CHECK:STDOUT: %.loc15_9: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %b: bool = value_binding b, %b.param @@ -128,21 +128,21 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: fn @F(%b.param: bool, %n.param: %i32, %m.param: %i32) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.34b = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.34b = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.97e = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.97e = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %array_type = var %x.var_patt // CHECK:STDOUT: %int_0.loc16_27: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc16_29.1: %tuple.type.985 = tuple_literal (%int_0.loc16_27) [concrete = constants.%tuple.4f2] -// CHECK:STDOUT: %impl.elem0.loc16: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc16: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc16_29.1: = bound_method %int_0.loc16_27, %impl.elem0.loc16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_29.2: = bound_method %int_0.loc16_27, %specific_fn.loc16 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_29.2(%int_0.loc16_27) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc16_29.2: init %i32 = converted %int_0.loc16_27, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_29.2(%int_0.loc16_27) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc16_29.2: init %i32 = converted %int_0.loc16_27, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %int_0.loc16_29: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc16_29.3: ref %i32 = array_index %x.var, %int_0.loc16_29 -// CHECK:STDOUT: %.loc16_29.4: init %i32 to %.loc16_29.3 = in_place_init %.loc16_29.2 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %.loc16_29.4: init %i32 to %.loc16_29.3 = in_place_init %.loc16_29.2 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc16_29.5: init %array_type to %x.var = array_init (%.loc16_29.4) [concrete = constants.%array] // CHECK:STDOUT: %.loc16_3: init %array_type = converted %.loc16_29.1, %.loc16_29.5 [concrete = constants.%array] // CHECK:STDOUT: assign %x.var, %.loc16_3 @@ -171,12 +171,12 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result: // CHECK:STDOUT: %.loc17_10: %i32 = block_arg !if.expr.result -// CHECK:STDOUT: %impl.elem0.loc17: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc17: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc17_10.1: = bound_method %.loc17_10, %impl.elem0.loc17 // 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.2dd605.3 +// 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: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/if_expr/constant_condition.carbon b/toolchain/check/testdata/if_expr/constant_condition.carbon index bfb91d9b89ae..a874fa996ad6 100644 --- a/toolchain/check/testdata/if_expr/constant_condition.carbon +++ b/toolchain/check/testdata/if_expr/constant_condition.carbon @@ -44,70 +44,70 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = 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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] +// 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: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.14d: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet.14d [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.987: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet.987 [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: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %false: bool = bool_literal false [concrete] // CHECK:STDOUT: %Constant.type: type = fn_type @Constant [concrete] // CHECK:STDOUT: %Constant: %Constant.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr.847 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.c37: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ae4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.6e4: %ptr.as.Copy.impl.Op.type.ae4 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.17a: %Copy.type = facet_value %ptr.847, (%Copy.impl_witness.c37) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.165: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.17a) [concrete] -// CHECK:STDOUT: %.cd7: type = fn_type_with_self_type %Copy.WithSelf.Op.type.165, %Copy.facet.17a [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.6e4, @ptr.as.Copy.impl.Op(%i32) [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.ce1: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c1c: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.d1c: %ptr.as.Copy.impl.Op.type.c1c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.b49: %Copy.type = facet_value %ptr.d08, (%Copy.impl_witness.ce1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.f9d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.b49) [concrete] +// CHECK:STDOUT: %.ac9: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f9d, %Copy.facet.b49 [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.790b3b.1: type = fn_type @Destroy.Op.loc28 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc27_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [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: %PartiallyConstant.type: type = fn_type @PartiallyConstant [concrete] // CHECK:STDOUT: %PartiallyConstant: %PartiallyConstant.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -122,14 +122,14 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -145,58 +145,58 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15_11: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15_11: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16_11: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc16_11: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc18: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc18: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc22: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc22: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Constant.decl: %Constant.type = fn_decl @Constant [concrete = constants.%Constant] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc26 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc26 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc26: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc26: Core.Form = init_form %i32.loc26 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc26: Core.Form = init_form %i32.loc26 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %PartiallyConstant.decl: %PartiallyConstant.type = fn_decl @PartiallyConstant [concrete = constants.%PartiallyConstant] { // CHECK:STDOUT: %t.param_patt: %pattern_type.98f = value_param_pattern [concrete] // CHECK:STDOUT: %t.patt: %pattern_type.98f = at_binding_pattern t, %t.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc32_34: Core.Form = init_form %i32.loc32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc32_34: Core.Form = init_form %i32.loc32 [concrete = constants.%.795] // CHECK:STDOUT: %t.param: type = value_param call_param0 // CHECK:STDOUT: %.loc32_25: type = type_literal type [concrete = type] // CHECK:STDOUT: %t: type = value_binding t, %t.param @@ -208,24 +208,24 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: fn @A() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_25.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_25.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_25.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_25.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc15_25: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc15_25.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_25.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc15_25: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] // CHECK:STDOUT: return %.loc15_25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @B() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc16_25.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc16_25.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_25.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_25.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc16_25: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc16_25.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_25.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc16_25: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.295] // CHECK:STDOUT: return %.loc16_25 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -250,7 +250,7 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result: // CHECK:STDOUT: %.loc19_10: %i32 = block_arg !if.expr.result -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc19_10.1: = bound_method %.loc19_10, %impl.elem0 // 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.loc19_10.2: = bound_method %.loc19_10, %specific_fn @@ -279,7 +279,7 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result: // CHECK:STDOUT: %.loc23_10: %i32 = block_arg !if.expr.result -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc23_10.1: = bound_method %.loc23_10, %impl.elem0 // 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.loc23_10.2: = bound_method %.loc23_10, %specific_fn @@ -290,17 +290,17 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: fn @Constant() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.104 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.104 = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.6b6 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.6b6 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %i32 = var %v.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc27: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc27_3.1: = bound_method %int_1, %impl.elem0.loc27 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc27: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc27_3.1: = bound_method %int_1, %impl.elem0.loc27 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc27: = specific_function %impl.elem0.loc27, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc27_3.2: = bound_method %int_1, %specific_fn.loc27 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc27_3.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc27_3: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc27_3.2: = bound_method %int_1, %specific_fn.loc27 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc27_3.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc27_3: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] // CHECK:STDOUT: assign %v.var, %.loc27_3 // CHECK:STDOUT: br !.loc27_13 // CHECK:STDOUT: @@ -314,7 +314,7 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else.loc27: // CHECK:STDOUT: %i32.loc27_32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr.loc27: type = ptr_type %i32.loc27_32 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr.loc27: type = ptr_type %i32.loc27_32 [concrete = constants.%ptr.d08] // CHECK:STDOUT: br !if.expr.result.loc27(%ptr.loc27) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result.loc27: @@ -324,17 +324,17 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: !.loc27_8: // CHECK:STDOUT: %v: ref %i32 = ref_binding v, %v.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %w.patt: %pattern_type.7b5 = ref_binding_pattern w [concrete] -// CHECK:STDOUT: %w.var_patt: %pattern_type.7b5 = var_pattern %w.patt [concrete] +// CHECK:STDOUT: %w.patt: %pattern_type.f00 = ref_binding_pattern w [concrete] +// CHECK:STDOUT: %w.var_patt: %pattern_type.f00 = var_pattern %w.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %w.var: ref %ptr.847 = var %w.var_patt +// CHECK:STDOUT: %w.var: ref %ptr.d08 = var %w.var_patt // CHECK:STDOUT: %v.ref: ref %i32 = name_ref v, %v -// CHECK:STDOUT: %addr: %ptr.847 = addr_of %v.ref -// CHECK:STDOUT: %impl.elem0.loc28: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %addr: %ptr.d08 = addr_of %v.ref +// CHECK:STDOUT: %impl.elem0.loc28: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc28_40.1: = bound_method %addr, %impl.elem0.loc28 // CHECK:STDOUT: %specific_fn.loc28: = specific_function %impl.elem0.loc28, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc28_40.2: = bound_method %addr, %specific_fn.loc28 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.847 = call %bound_method.loc28_40.2(%addr) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d08 = call %bound_method.loc28_40.2(%addr) // CHECK:STDOUT: assign %w.var, %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: br !.loc28_13 // CHECK:STDOUT: @@ -348,32 +348,32 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else.loc28: // CHECK:STDOUT: %i32.loc28_33: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr.loc28: type = ptr_type %i32.loc28_33 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr.loc28: type = ptr_type %i32.loc28_33 [concrete = constants.%ptr.d08] // CHECK:STDOUT: br !if.expr.result.loc28(%ptr.loc28) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result.loc28: -// CHECK:STDOUT: %.loc28: type = block_arg !if.expr.result.loc28 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %.loc28: type = block_arg !if.expr.result.loc28 [concrete = constants.%ptr.d08] // CHECK:STDOUT: br !.loc28_8 // CHECK:STDOUT: // CHECK:STDOUT: !.loc28_8: -// CHECK:STDOUT: %w: ref %ptr.847 = ref_binding w, %w.var -// CHECK:STDOUT: %w.ref: ref %ptr.847 = name_ref w, %w -// CHECK:STDOUT: %.loc29_11: %ptr.847 = acquire_value %w.ref +// CHECK:STDOUT: %w: ref %ptr.d08 = ref_binding w, %w.var +// CHECK:STDOUT: %w.ref: ref %ptr.d08 = name_ref w, %w +// CHECK:STDOUT: %.loc29_11: %ptr.d08 = acquire_value %w.ref // CHECK:STDOUT: %.loc29_10.1: ref %i32 = deref %.loc29_11 // CHECK:STDOUT: %.loc29_10.2: %i32 = acquire_value %.loc29_10.1 -// CHECK:STDOUT: %impl.elem0.loc29: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc29: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc29_10.1: = bound_method %.loc29_10.2, %impl.elem0.loc29 // 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.2dd605.1 +// 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.2dd605.3 +// 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: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc28(%self.param: ref %ptr.847) = "no_op"; +// CHECK:STDOUT: fn @Destroy.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: @@ -385,17 +385,17 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: fn @PartiallyConstant(%t.param: type) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.104 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.104 = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.6b6 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.6b6 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %i32 = var %v.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc33: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc33_3.1: = bound_method %int_1, %impl.elem0.loc33 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc33: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc33_3.1: = bound_method %int_1, %impl.elem0.loc33 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc33: = specific_function %impl.elem0.loc33, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc33_3.2: = bound_method %int_1, %specific_fn.loc33 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc33_3.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc33_3: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc33_3.2: = bound_method %int_1, %specific_fn.loc33 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc33_3.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc33_3: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] // CHECK:STDOUT: assign %v.var, %.loc33_3 // CHECK:STDOUT: br !.loc33_13 // CHECK:STDOUT: @@ -418,17 +418,17 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: !.loc33_8: // CHECK:STDOUT: %v: ref %i32 = ref_binding v, %v.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %w.patt: %pattern_type.7b5 = ref_binding_pattern w [concrete] -// CHECK:STDOUT: %w.var_patt: %pattern_type.7b5 = var_pattern %w.patt [concrete] +// CHECK:STDOUT: %w.patt: %pattern_type.f00 = ref_binding_pattern w [concrete] +// CHECK:STDOUT: %w.var_patt: %pattern_type.f00 = var_pattern %w.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %w.var: ref %ptr.847 = var %w.var_patt +// CHECK:STDOUT: %w.var: ref %ptr.d08 = var %w.var_patt // CHECK:STDOUT: %v.ref: ref %i32 = name_ref v, %v -// CHECK:STDOUT: %addr: %ptr.847 = addr_of %v.ref -// CHECK:STDOUT: %impl.elem0.loc34: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %addr: %ptr.d08 = addr_of %v.ref +// CHECK:STDOUT: %impl.elem0.loc34: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc34_38.1: = bound_method %addr, %impl.elem0.loc34 // CHECK:STDOUT: %specific_fn.loc34: = specific_function %impl.elem0.loc34, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc34_38.2: = bound_method %addr, %specific_fn.loc34 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.847 = call %bound_method.loc34_38.2(%addr) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d08 = call %bound_method.loc34_38.2(%addr) // CHECK:STDOUT: assign %w.var, %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: br !.loc34_13 // CHECK:STDOUT: @@ -442,27 +442,27 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else.loc34: // CHECK:STDOUT: %i32.loc34: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc34 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc34 [concrete = constants.%ptr.d08] // CHECK:STDOUT: br !if.expr.result.loc34(%ptr) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result.loc34: -// CHECK:STDOUT: %.loc34: type = block_arg !if.expr.result.loc34 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %.loc34: type = block_arg !if.expr.result.loc34 [concrete = constants.%ptr.d08] // CHECK:STDOUT: br !.loc34_8 // CHECK:STDOUT: // CHECK:STDOUT: !.loc34_8: -// CHECK:STDOUT: %w: ref %ptr.847 = ref_binding w, %w.var -// CHECK:STDOUT: %w.ref: ref %ptr.847 = name_ref w, %w -// CHECK:STDOUT: %.loc35_11: %ptr.847 = acquire_value %w.ref +// CHECK:STDOUT: %w: ref %ptr.d08 = ref_binding w, %w.var +// CHECK:STDOUT: %w.ref: ref %ptr.d08 = name_ref w, %w +// CHECK:STDOUT: %.loc35_11: %ptr.d08 = acquire_value %w.ref // CHECK:STDOUT: %.loc35_10.1: ref %i32 = deref %.loc35_11 // CHECK:STDOUT: %.loc35_10.2: %i32 = acquire_value %.loc35_10.1 -// CHECK:STDOUT: %impl.elem0.loc35: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc35: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc35_10.1: = bound_method %.loc35_10.2, %impl.elem0.loc35 // 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.2dd605.1 +// 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.2dd605.3 +// 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: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/if_expr/control_flow.carbon b/toolchain/check/testdata/if_expr/control_flow.carbon index 7737942b1993..7808cf9e35a4 100644 --- a/toolchain/check/testdata/if_expr/control_flow.carbon +++ b/toolchain/check/testdata/if_expr/control_flow.carbon @@ -27,48 +27,48 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = 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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -81,13 +81,13 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/parts/bool, Bool, loaded [concrete = constants.%Bool] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -99,31 +99,31 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15_11: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15_11: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16_11: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc16_11: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc18_18: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc18_18: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %b.param: bool = value_param call_param0 // CHECK:STDOUT: %.loc18_9: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %b: bool = value_binding b, %b.param @@ -135,24 +135,24 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: fn @A() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_25.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_25.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_25.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_25.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc15_25: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc15_25.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_25.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc15_25: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] // CHECK:STDOUT: return %.loc15_25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @B() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc16_25.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc16_25.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_25.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_25.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc16_25: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc16_25.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_25.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc16_25: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.295] // CHECK:STDOUT: return %.loc16_25 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -177,7 +177,7 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result: // CHECK:STDOUT: %.loc19_10: %i32 = block_arg !if.expr.result -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc19_10.1: = bound_method %.loc19_10, %impl.elem0 // 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.loc19_10.2: = bound_method %.loc19_10, %specific_fn diff --git a/toolchain/check/testdata/if_expr/nested.carbon b/toolchain/check/testdata/if_expr/nested.carbon index 228decfbae97..2a54192b99ae 100644 --- a/toolchain/check/testdata/if_expr/nested.carbon +++ b/toolchain/check/testdata/if_expr/nested.carbon @@ -27,49 +27,49 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = 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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = 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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.9f5: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_4.a4d: %i32 = 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] +// CHECK:STDOUT: %int_4.4eb: %i32 = int_value 4 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -83,12 +83,12 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/parts/bool, Bool, loaded [concrete = constants.%Bool] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -104,11 +104,11 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %c.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %c.patt: %pattern_type.831 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15_36: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15_36: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: bool = value_param call_param0 // CHECK:STDOUT: %.loc15_9: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %a: bool = value_binding a, %a.param @@ -134,24 +134,24 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.then.loc16_20: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc16_25: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc16_25.1: = bound_method %int_1, %impl.elem0.loc16_25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc16_25: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc16_25.1: = bound_method %int_1, %impl.elem0.loc16_25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc16_25: = specific_function %impl.elem0.loc16_25, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_25.2: = bound_method %int_1, %specific_fn.loc16_25 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_25: init %i32 = call %bound_method.loc16_25.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc16_25.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_25 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc16_25.2: %i32 = converted %int_1, %.loc16_25.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc16_25.2: = bound_method %int_1, %specific_fn.loc16_25 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_25: init %i32 = call %bound_method.loc16_25.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc16_25.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_25 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc16_25.2: %i32 = converted %int_1, %.loc16_25.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: br !if.expr.result.loc16_20(%.loc16_25.2) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else.loc16_20: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc16_32: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc16_32.1: = bound_method %int_2, %impl.elem0.loc16_32 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %impl.elem0.loc16_32: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc16_32.1: = bound_method %int_2, %impl.elem0.loc16_32 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc16_32: = specific_function %impl.elem0.loc16_32, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_32.2: = bound_method %int_2, %specific_fn.loc16_32 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_32: init %i32 = call %bound_method.loc16_32.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc16_32.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_32 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc16_32.2: %i32 = converted %int_2, %.loc16_32.1 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc16_32.2: = bound_method %int_2, %specific_fn.loc16_32 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_32: init %i32 = call %bound_method.loc16_32.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc16_32.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_32 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc16_32.2: %i32 = converted %int_2, %.loc16_32.1 [concrete = constants.%int_2.295] // CHECK:STDOUT: br !if.expr.result.loc16_20(%.loc16_32.2) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result.loc16_20: @@ -164,24 +164,24 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.then.loc16_44: // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc16_49: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc16_49.1: = bound_method %int_3, %impl.elem0.loc16_49 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %impl.elem0.loc16_49: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc16_49.1: = bound_method %int_3, %impl.elem0.loc16_49 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc16_49: = specific_function %impl.elem0.loc16_49, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_49.2: = bound_method %int_3, %specific_fn.loc16_49 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_49: init %i32 = call %bound_method.loc16_49.2(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc16_49.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_49 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc16_49.2: %i32 = converted %int_3, %.loc16_49.1 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc16_49.2: = bound_method %int_3, %specific_fn.loc16_49 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_49: init %i32 = call %bound_method.loc16_49.2(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc16_49.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_49 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc16_49.2: %i32 = converted %int_3, %.loc16_49.1 [concrete = constants.%int_3.410] // CHECK:STDOUT: br !if.expr.result.loc16_44(%.loc16_49.2) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else.loc16_44: // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc16_56: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc16_56.1: = bound_method %int_4, %impl.elem0.loc16_56 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe] +// CHECK:STDOUT: %impl.elem0.loc16_56: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc16_56.1: = bound_method %int_4, %impl.elem0.loc16_56 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad] // CHECK:STDOUT: %specific_fn.loc16_56: = specific_function %impl.elem0.loc16_56, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_56.2: = bound_method %int_4, %specific_fn.loc16_56 [concrete = constants.%bound_method.9f5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_56: init %i32 = call %bound_method.loc16_56.2(%int_4) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc16_56.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_56 [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc16_56.2: %i32 = converted %int_4, %.loc16_56.1 [concrete = constants.%int_4.a4d] +// CHECK:STDOUT: %bound_method.loc16_56.2: = bound_method %int_4, %specific_fn.loc16_56 [concrete = constants.%bound_method.b7a] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_56: init %i32 = call %bound_method.loc16_56.2(%int_4) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc16_56.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_56 [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc16_56.2: %i32 = converted %int_4, %.loc16_56.1 [concrete = constants.%int_4.4eb] // CHECK:STDOUT: br !if.expr.result.loc16_44(%.loc16_56.2) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result.loc16_44: @@ -190,7 +190,7 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result.loc16_10: // CHECK:STDOUT: %.loc16_10: %i32 = block_arg !if.expr.result.loc16_10 -// CHECK:STDOUT: %impl.elem0.loc16_10: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc16_10: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc16_10.1: = bound_method %.loc16_10, %impl.elem0.loc16_10 // CHECK:STDOUT: %specific_fn.loc16_10: = specific_function %impl.elem0.loc16_10, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc16_10.2: = bound_method %.loc16_10, %specific_fn.loc16_10 diff --git a/toolchain/check/testdata/if_expr/struct.carbon b/toolchain/check/testdata/if_expr/struct.carbon index 4daa3c25f5dc..8d67153fb939 100644 --- a/toolchain/check/testdata/if_expr/struct.carbon +++ b/toolchain/check/testdata/if_expr/struct.carbon @@ -27,8 +27,8 @@ fn F(cond: bool) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %struct_type.a.b.b47: type = struct_type {.a: %i32, .b: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.941: type = pattern_type %struct_type.a.b.b47 [concrete] +// CHECK:STDOUT: %struct_type.a.b.b4c: type = struct_type {.a: %i32, .b: %i32} [concrete] +// CHECK:STDOUT: %pattern_type.20e3: type = pattern_type %struct_type.a.b.b4c [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] @@ -41,29 +41,29 @@ fn F(cond: bool) { // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.4aa: %struct_type.a.b.cfd = struct_value (%int_1.5b8, %int_2.ecc) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %struct.8fc: %struct_type.a.b.b47 = struct_value (%int_1.d9c, %int_2.228) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %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.790b3b.3: type = fn_type @Destroy.Op.loc18_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -77,9 +77,9 @@ fn F(cond: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/parts/bool, Bool, loaded [concrete = constants.%Bool] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -91,16 +91,16 @@ fn F(cond: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %s.param_patt: %pattern_type.941 = value_param_pattern [concrete] -// CHECK:STDOUT: %s.patt: %pattern_type.941 = at_binding_pattern s, %s.param_patt [concrete] +// CHECK:STDOUT: %s.param_patt: %pattern_type.20e3 = value_param_pattern [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.20e3 = at_binding_pattern s, %s.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %s.param: %struct_type.a.b.b47 = value_param call_param0 -// CHECK:STDOUT: %.loc15: type = splice_block %struct_type.a.b [concrete = constants.%struct_type.a.b.b47] { +// CHECK:STDOUT: %s.param: %struct_type.a.b.b4c = value_param call_param0 +// CHECK:STDOUT: %.loc15: type = splice_block %struct_type.a.b [concrete = constants.%struct_type.a.b.b4c] { // CHECK:STDOUT: %i32.loc15_14: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc15_23: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b47] +// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b4c] // CHECK:STDOUT: } -// CHECK:STDOUT: %s: %struct_type.a.b.b47 = value_binding s, %s.param +// CHECK:STDOUT: %s: %struct_type.a.b.b4c = value_binding s, %s.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %cond.param_patt: %pattern_type.831 = value_param_pattern [concrete] @@ -112,71 +112,71 @@ fn F(cond: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%s.param: %struct_type.a.b.b47); +// CHECK:STDOUT: fn @G(%s.param: %struct_type.a.b.b4c); // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%cond.param: bool) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.941 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.941 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.20e3 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.20e3 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %struct_type.a.b.b47 = var %a.var_patt +// CHECK:STDOUT: %a.var: ref %struct_type.a.b.b4c = var %a.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc18_46.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) [concrete = constants.%struct.4aa] -// CHECK:STDOUT: %impl.elem0.loc18_46.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_46.1: = bound_method %int_1, %impl.elem0.loc18_46.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc18_46.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_46.1: = bound_method %int_1, %impl.elem0.loc18_46.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc18_46.1: = specific_function %impl.elem0.loc18_46.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_46.2: = bound_method %int_1, %specific_fn.loc18_46.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_46.1: init %i32 = call %bound_method.loc18_46.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_46.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_46.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc18_46.2: = bound_method %int_1, %specific_fn.loc18_46.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_46.1: init %i32 = call %bound_method.loc18_46.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_46.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_46.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc18_46.3: ref %i32 = struct_access %a.var, element0 -// CHECK:STDOUT: %.loc18_46.4: init %i32 to %.loc18_46.3 = in_place_init %.loc18_46.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc18_46.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_46.3: = bound_method %int_2, %impl.elem0.loc18_46.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc18_46.4: init %i32 to %.loc18_46.3 = in_place_init %.loc18_46.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc18_46.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_46.3: = bound_method %int_2, %impl.elem0.loc18_46.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc18_46.2: = specific_function %impl.elem0.loc18_46.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_46.4: = bound_method %int_2, %specific_fn.loc18_46.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_46.2: init %i32 = call %bound_method.loc18_46.4(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc18_46.5: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_46.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc18_46.4: = bound_method %int_2, %specific_fn.loc18_46.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_46.2: init %i32 = call %bound_method.loc18_46.4(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc18_46.5: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_46.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc18_46.6: ref %i32 = struct_access %a.var, element1 -// CHECK:STDOUT: %.loc18_46.7: init %i32 to %.loc18_46.6 = in_place_init %.loc18_46.5 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc18_46.8: init %struct_type.a.b.b47 to %a.var = struct_init (%.loc18_46.4, %.loc18_46.7) [concrete = constants.%struct.8fc] -// CHECK:STDOUT: %.loc18_3: init %struct_type.a.b.b47 = converted %.loc18_46.1, %.loc18_46.8 [concrete = constants.%struct.8fc] +// CHECK:STDOUT: %.loc18_46.7: init %i32 to %.loc18_46.6 = in_place_init %.loc18_46.5 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc18_46.8: init %struct_type.a.b.b4c to %a.var = struct_init (%.loc18_46.4, %.loc18_46.7) [concrete = constants.%struct.631] +// CHECK:STDOUT: %.loc18_3: init %struct_type.a.b.b4c = converted %.loc18_46.1, %.loc18_46.8 [concrete = constants.%struct.631] // CHECK:STDOUT: assign %a.var, %.loc18_3 -// CHECK:STDOUT: %.loc18_27: type = splice_block %struct_type.a.b [concrete = constants.%struct_type.a.b.b47] { +// CHECK:STDOUT: %.loc18_27: type = splice_block %struct_type.a.b [concrete = constants.%struct_type.a.b.b4c] { // CHECK:STDOUT: %i32.loc18_15: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc18_24: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b47] +// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b4c] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %struct_type.a.b.b47 = ref_binding a, %a.var +// CHECK:STDOUT: %a: ref %struct_type.a.b.b4c = ref_binding a, %a.var // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] // CHECK:STDOUT: %cond.ref: bool = name_ref cond, %cond // CHECK:STDOUT: if %cond.ref br !if.expr.then else br !if.expr.else // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.then: -// CHECK:STDOUT: %a.ref.loc19_18: ref %struct_type.a.b.b47 = name_ref a, %a +// CHECK:STDOUT: %a.ref.loc19_18: ref %struct_type.a.b.b4c = name_ref a, %a // CHECK:STDOUT: %.loc19_18.1: ref %i32 = struct_access %a.ref.loc19_18, element0 // CHECK:STDOUT: %.loc19_18.2: %i32 = acquire_value %.loc19_18.1 // CHECK:STDOUT: %.loc19_18.3: ref %i32 = struct_access %a.ref.loc19_18, element1 // CHECK:STDOUT: %.loc19_18.4: %i32 = acquire_value %.loc19_18.3 -// CHECK:STDOUT: %struct.loc19_18: %struct_type.a.b.b47 = struct_value (%.loc19_18.2, %.loc19_18.4) -// CHECK:STDOUT: %.loc19_18.5: %struct_type.a.b.b47 = converted %a.ref.loc19_18, %struct.loc19_18 +// CHECK:STDOUT: %struct.loc19_18: %struct_type.a.b.b4c = struct_value (%.loc19_18.2, %.loc19_18.4) +// CHECK:STDOUT: %.loc19_18.5: %struct_type.a.b.b4c = converted %a.ref.loc19_18, %struct.loc19_18 // CHECK:STDOUT: br !if.expr.result(%.loc19_18.5) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else: -// CHECK:STDOUT: %a.ref.loc19_25: ref %struct_type.a.b.b47 = name_ref a, %a +// CHECK:STDOUT: %a.ref.loc19_25: ref %struct_type.a.b.b4c = name_ref a, %a // CHECK:STDOUT: %.loc19_25.1: ref %i32 = struct_access %a.ref.loc19_25, element0 // CHECK:STDOUT: %.loc19_25.2: %i32 = acquire_value %.loc19_25.1 // CHECK:STDOUT: %.loc19_25.3: ref %i32 = struct_access %a.ref.loc19_25, element1 // CHECK:STDOUT: %.loc19_25.4: %i32 = acquire_value %.loc19_25.3 -// CHECK:STDOUT: %struct.loc19_25: %struct_type.a.b.b47 = struct_value (%.loc19_25.2, %.loc19_25.4) -// CHECK:STDOUT: %.loc19_20: %struct_type.a.b.b47 = converted %a.ref.loc19_25, %struct.loc19_25 +// CHECK:STDOUT: %struct.loc19_25: %struct_type.a.b.b4c = struct_value (%.loc19_25.2, %.loc19_25.4) +// CHECK:STDOUT: %.loc19_20: %struct_type.a.b.b4c = converted %a.ref.loc19_25, %struct.loc19_25 // CHECK:STDOUT: br !if.expr.result(%.loc19_20) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result: -// CHECK:STDOUT: %.loc19_5: %struct_type.a.b.b47 = block_arg !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.2dd605.3 +// 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: return // CHECK:STDOUT: } @@ -188,7 +188,7 @@ fn F(cond: bool) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.3(%self.param: ref %struct_type.a.b.b47) { +// CHECK:STDOUT: fn @Destroy.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/assoc_const_self.carbon b/toolchain/check/testdata/impl/assoc_const_self.carbon index b15f456e771e..d0d8955e641b 100644 --- a/toolchain/check/testdata/impl/assoc_const_self.carbon +++ b/toolchain/check/testdata/impl/assoc_const_self.carbon @@ -104,46 +104,46 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.ed0: type = facet_access_type %Self.179 [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.c84: type = facet_access_type %Self.37e [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.465: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete] +// CHECK:STDOUT: %assoc0.660: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] -// CHECK:STDOUT: %I_where.type.960: type = facet_type <@I where %impl.elem0 = %empty_struct> [concrete] -// CHECK:STDOUT: %I.impl_witness.2a3: = impl_witness @empty_struct_type.as.I.impl.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I_where.type.366: type = facet_type <@I where %impl.elem0 = %empty_struct> [concrete] +// CHECK:STDOUT: %I.impl_witness.404: = impl_witness @empty_struct_type.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %empty_struct.type.facet: %type = facet_value %empty_struct_type, () [concrete] -// CHECK:STDOUT: %I.facet.e02: %I.type = facet_value %empty_struct_type, (%I.impl_witness.2a3) [concrete] +// CHECK:STDOUT: %I.facet.b5a: %I.type = facet_value %empty_struct_type, (%I.impl_witness.404) [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %I_where.type.e8d: type = facet_type <@I where %impl.elem0 = %int_0.5c6> [concrete] -// CHECK:STDOUT: %I.impl_witness.e90: = impl_witness @i32.as.I.impl.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I_where.type.56e: type = facet_type <@I where %impl.elem0 = %int_0.5c6> [concrete] +// CHECK:STDOUT: %I.impl_witness.e3f: = impl_witness @i32.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %Int.type.facet: %type = facet_value %i32, () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %I.facet.36d: %I.type = facet_value %i32, (%I.impl_witness.e90) [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %I.facet.967: %I.type = facet_value %i32, (%I.impl_witness.e3f) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -154,9 +154,9 @@ fn CallF() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -174,12 +174,12 @@ fn CallF() { // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.465] +// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.660] // CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc8_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc8_26.2: %empty_struct_type = converted %.loc8_26.1, %empty_struct [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc8_14: type = where_expr [concrete = constants.%I_where.type.960] { +// CHECK:STDOUT: %.loc8_14: type = where_expr [concrete = constants.%I_where.type.366] { // CHECK:STDOUT: requirement_base_facet_type %I.ref // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc8_26.2 // CHECK:STDOUT: } @@ -191,10 +191,10 @@ fn CallF() { // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_21: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.465] +// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.660] // CHECK:STDOUT: %impl.elem0.loc10_21: %.Self.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %.loc10_15.1: type = where_expr [concrete = constants.%I_where.type.e8d] { +// CHECK:STDOUT: %.loc10_15.1: type = where_expr [concrete = constants.%I_where.type.56e] { // CHECK:STDOUT: requirement_base_facet_type %I.ref // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc10_21, %int_0 // CHECK:STDOUT: } @@ -202,12 +202,12 @@ fn CallF() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %V: @I.WithSelf.%Self.as_type (%Self.as_type.ed0) = assoc_const_decl @V [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete = constants.%assoc0.465] +// CHECK:STDOUT: %V: @I.WithSelf.%Self.as_type (%Self.as_type.c84) = assoc_const_decl @V [concrete] { +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete = constants.%assoc0.660] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -220,7 +220,7 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_struct_type.as.I.impl: %.loc8_7.2 as %.loc8_14 { // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @empty_struct_type.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.2a3] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.404] // CHECK:STDOUT: %impl_witness_assoc_constant: %empty_struct_type = impl_witness_assoc_constant constants.%empty_struct [concrete = constants.%empty_struct] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -230,25 +230,25 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: impl @i32.as.I.impl: %i32 as %.loc10_15.1 { // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @i32.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.e90] -// CHECK:STDOUT: %impl.elem0.loc10_15: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.e3f] +// CHECK:STDOUT: %impl.elem0.loc10_15: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc10_15.1: = bound_method constants.%int_0.5c6, %impl.elem0.loc10_15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc10_15, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_15.2: = bound_method constants.%int_0.5c6, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc10_15.2(constants.%int_0.5c6) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc10_15.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc10_15.3: %i32 = converted constants.%int_0.5c6, %.loc10_15.2 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %impl_witness_assoc_constant: %i32 = impl_witness_assoc_constant constants.%int_0.62d [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc10_15.2(constants.%int_0.5c6) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc10_15.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc10_15.3: %i32 = converted constants.%int_0.5c6, %.loc10_15.2 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %impl_witness_assoc_constant: %i32 = impl_witness_assoc_constant constants.%int_0.3c0 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %.loc10_15.1 // CHECK:STDOUT: witness = %I.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.179 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.ed0 +// CHECK:STDOUT: %Self => constants.%Self.37e +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.c84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%.Self) { @@ -263,9 +263,9 @@ fn CallF() { // CHECK:STDOUT: %Self.as_type => constants.%empty_struct_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.e02) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.b5a) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.e02 +// CHECK:STDOUT: %Self => constants.%I.facet.b5a // CHECK:STDOUT: %Self.as_type => constants.%empty_struct_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -275,9 +275,9 @@ fn CallF() { // CHECK:STDOUT: %Self.as_type => constants.%i32 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.36d) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.967) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.36d +// CHECK:STDOUT: %Self => constants.%I.facet.967 // CHECK:STDOUT: %Self.as_type => constants.%i32 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -285,10 +285,10 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.ed0: type = facet_access_type %Self.179 [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.c84: type = facet_access_type %Self.37e [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.465: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete] +// CHECK:STDOUT: %assoc0.660: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] @@ -300,8 +300,8 @@ fn CallF() { // CHECK:STDOUT: %I.impl_witness: = impl_witness @empty_struct_type.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %empty_struct.type.facet: %type = facet_value %empty_struct_type, () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %empty_struct_type, (%I.impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -311,7 +311,7 @@ fn CallF() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -329,7 +329,7 @@ fn CallF() { // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc15_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.465] +// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.660] // CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc15_14.1: type = where_expr [concrete = constants.%I_where.type] { @@ -340,12 +340,12 @@ fn CallF() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %V: @I.WithSelf.%Self.as_type (%Self.as_type.ed0) = assoc_const_decl @V [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete = constants.%assoc0.465] +// CHECK:STDOUT: %V: @I.WithSelf.%Self.as_type (%Self.as_type.c84) = assoc_const_decl @V [concrete] { +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete = constants.%assoc0.660] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -367,10 +367,10 @@ fn CallF() { // CHECK:STDOUT: witness = %I.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.179 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.ed0 +// CHECK:STDOUT: %Self => constants.%Self.37e +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.c84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%.Self) { @@ -395,26 +395,26 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.ed0: type = facet_access_type %Self.179 [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.c84: type = facet_access_type %Self.37e [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.465: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete] +// CHECK:STDOUT: %assoc0.660: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.7ef: type = facet_type <@ImplicitAs, @ImplicitAs(%C)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.dee: type = facet_type <@ImplicitAs, @ImplicitAs(%C)> [concrete] // CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness @empty_tuple.type.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple.type.as.ImplicitAs.impl.Convert.type: type = fn_type @empty_tuple.type.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %empty_tuple.type.as.ImplicitAs.impl.Convert: %empty_tuple.type.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.7ef = facet_value %empty_tuple.type, (%ImplicitAs.impl_witness) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.cf0: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%C, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.dee = facet_value %empty_tuple.type, (%ImplicitAs.impl_witness) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.336: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%C, %ImplicitAs.facet) [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] @@ -425,7 +425,7 @@ fn CallF() { // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %C.type.facet: %type = facet_value %C, () [concrete] -// CHECK:STDOUT: %.d51: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.cf0, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %.829: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.336, %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: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: } @@ -436,7 +436,7 @@ fn CallF() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -452,9 +452,9 @@ fn CallF() { // CHECK:STDOUT: %.loc10_7.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc10_7.2: type = converted %.loc10_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%C)> [concrete = constants.%ImplicitAs.type.7ef] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%C)> [concrete = constants.%ImplicitAs.type.dee] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @C.as.I.impl [concrete] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -463,7 +463,7 @@ fn CallF() { // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc18_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.465] +// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.660] // CHECK:STDOUT: %impl.elem0.loc18_19: %.Self.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc18_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] @@ -476,12 +476,12 @@ fn CallF() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %V: @I.WithSelf.%Self.as_type (%Self.as_type.ed0) = assoc_const_decl @V [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete = constants.%assoc0.465] +// CHECK:STDOUT: %V: @I.WithSelf.%Self.as_type (%Self.as_type.c84) = assoc_const_decl @V [concrete] { +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete = constants.%assoc0.660] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -496,11 +496,11 @@ fn CallF() { // CHECK:STDOUT: %empty_tuple.type.as.ImplicitAs.impl.Convert.decl: %empty_tuple.type.as.ImplicitAs.impl.Convert.type = fn_decl @empty_tuple.type.as.ImplicitAs.impl.Convert [concrete = constants.%empty_tuple.type.as.ImplicitAs.impl.Convert] { // CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc11_36: Core.Form = init_form %C.ref [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc11_36: Core.Form = init_form %C.ref [concrete = constants.%.a44] // CHECK:STDOUT: %self.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %.loc11_28.1: type = splice_block %.loc11_28.3 [concrete = constants.%empty_tuple.type] { // CHECK:STDOUT: %.loc11_28.2: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -523,7 +523,7 @@ fn CallF() { // CHECK:STDOUT: impl @C.as.I.impl: %C.ref as %.loc18_13.1 { // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @C.as.I.impl [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness] -// CHECK:STDOUT: %impl.elem0.loc18_13: %.d51 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%empty_tuple.type.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc18_13: %.829 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%empty_tuple.type.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method: = bound_method constants.%empty_tuple, %impl.elem0.loc18_13 [concrete = constants.%empty_tuple.type.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %.loc18_13.2: ref %C = temporary_storage // CHECK:STDOUT: %empty_tuple.type.as.ImplicitAs.impl.Convert.call: init %C to %.loc18_13.2 = call %bound_method(constants.%empty_tuple) @@ -553,10 +553,10 @@ fn CallF() { // CHECK:STDOUT: return %.loc11_49 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.179 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.ed0 +// CHECK:STDOUT: %Self => constants.%Self.37e +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.c84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%.Self) { @@ -586,33 +586,33 @@ fn CallF() { // CHECK:STDOUT: %IntLiteral: %IntLiteral.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.dc0: type = pattern_type Core.IntLiteral [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.180: type = facet_type <@I, @I(%N)> [symbolic] -// CHECK:STDOUT: %Self.e0a: %I.type.180 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type.2ff: type = facet_access_type %Self.e0a [symbolic] -// CHECK:STDOUT: %array_type: type = array_type %N, %Self.as_type.2ff [symbolic] -// CHECK:STDOUT: %I.assoc_type.a7e: type = assoc_entity_type @I, @I(%N) [symbolic] -// CHECK:STDOUT: %assoc0.11b: %I.assoc_type.a7e = assoc_entity element0, @I.WithSelf.%V [symbolic] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.ac2: type = facet_type <@I, @I(%N)> [symbolic] +// CHECK:STDOUT: %Self.4d2: %I.type.ac2 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type.4c1: type = facet_access_type %Self.4d2 [symbolic] +// CHECK:STDOUT: %array_type: type = array_type %N, %Self.as_type.4c1 [symbolic] +// CHECK:STDOUT: %I.assoc_type.16e: type = assoc_entity_type @I, @I(%N) [symbolic] +// CHECK:STDOUT: %assoc0.377: %I.assoc_type.16e = assoc_entity element0, @I.WithSelf.%V [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] // CHECK:STDOUT: %Negate.impl_witness: = impl_witness imports.%Negate.impl_witness_table [concrete] // CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, (%Negate.impl_witness) [concrete] -// CHECK:STDOUT: %Negate.WithSelf.Op.type.309: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] -// CHECK:STDOUT: %.f38: type = fn_type_with_self_type %Negate.WithSelf.Op.type.309, %Negate.facet [concrete] +// CHECK:STDOUT: %Negate.WithSelf.Op.type.802: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] +// CHECK:STDOUT: %.765: type = fn_type_with_self_type %Negate.WithSelf.Op.type.802, %Negate.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.type: type = fn_type @Core.IntLiteral.as.Negate.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op: %Core.IntLiteral.as.Negate.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.bound: = bound_method %int_1, %Core.IntLiteral.as.Negate.impl.Op [concrete] // CHECK:STDOUT: %int_-1: Core.IntLiteral = int_value -1 [concrete] -// CHECK:STDOUT: %I.type.057: type = facet_type <@I, @I(%int_-1)> [concrete] -// CHECK:STDOUT: %.Self.d6c: %I.type.057 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Self.9ad: %I.type.057 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.assoc_type.5fd: type = assoc_entity_type @I, @I(%int_-1) [concrete] -// CHECK:STDOUT: %assoc0.bf8: %I.assoc_type.5fd = assoc_entity element0, @I.WithSelf.%V [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.d6c [symbolic_self] +// CHECK:STDOUT: %I.type.ce3: type = facet_type <@I, @I(%int_-1)> [concrete] +// CHECK:STDOUT: %.Self.e63: %I.type.ce3 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Self.4a1: %I.type.ce3 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.assoc_type.6c2: type = assoc_entity_type @I, @I(%int_-1) [concrete] +// CHECK:STDOUT: %assoc0.2f4: %I.assoc_type.6c2 = assoc_entity element0, @I.WithSelf.%V [concrete] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.e63 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -626,8 +626,8 @@ fn CallF() { // CHECK:STDOUT: %Core.IntLiteral: %IntLiteral.type = import_ref Core//prelude/parts/int_literal, IntLiteral, loaded [concrete = constants.%IntLiteral] // CHECK:STDOUT: %Core.Negate: type = import_ref Core//prelude/parts/int_literal, Negate, loaded [concrete = constants.%Negate.type] // CHECK:STDOUT: %Core.import_ref.abd = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63: %Core.IntLiteral.as.Negate.impl.Op.type = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] -// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.f63), @Core.IntLiteral.as.Negate.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Core.IntLiteral.as.Negate.impl.Op.type = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] +// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.9c3), @Core.IntLiteral.as.Negate.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -636,7 +636,7 @@ fn CallF() { // CHECK:STDOUT: .I = %I.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %I.decl: %I.type.48c = interface_decl @I [concrete = constants.%I.generic] { +// CHECK:STDOUT: %I.decl: %I.type.335 = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_33.1: type = splice_block %.loc4_33.3 [concrete = Core.IntLiteral] { @@ -652,16 +652,16 @@ fn CallF() { // CHECK:STDOUT: impl_decl @empty_struct_type.as..impl [concrete] {} { // CHECK:STDOUT: %.loc15_7.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc15_7.2: type = converted %.loc15_7.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] -// CHECK:STDOUT: %impl.elem1: %.f38 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.765 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %int_1, %impl.elem1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op.bound] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.call: init Core.IntLiteral = call %bound_method(%int_1) [concrete = constants.%int_-1] // CHECK:STDOUT: %.loc15_16.1: Core.IntLiteral = value_of_initializer %Core.IntLiteral.as.Negate.impl.Op.call [concrete = constants.%int_-1] // CHECK:STDOUT: %.loc15_16.2: Core.IntLiteral = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc15_16.1 [concrete = constants.%int_-1] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%int_-1)> [concrete = constants.%I.type.057] -// CHECK:STDOUT: %.Self: %I.type.057 = symbolic_binding .Self [symbolic_self = constants.%.Self.d6c] -// CHECK:STDOUT: %.Self.ref: %I.type.057 = name_ref .Self, %.Self [symbolic_self = constants.%.Self.d6c] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%int_-1)> [concrete = constants.%I.type.ce3] +// CHECK:STDOUT: %.Self: %I.type.ce3 = symbolic_binding .Self [symbolic_self = constants.%.Self.e63] +// CHECK:STDOUT: %.Self.ref: %I.type.ce3 = name_ref .Self, %.Self [symbolic_self = constants.%.Self.e63] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc15_24: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %V.ref: = name_ref V, [concrete = ] @@ -677,16 +677,16 @@ fn CallF() { // CHECK:STDOUT: %N.loc4_14.1: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N.loc4_14.1 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%N.loc4_14.1)> [symbolic = %I.type (constants.%I.type.180)] -// CHECK:STDOUT: %Self.loc4_36.2: @I.%I.type (%I.type.180) = symbolic_binding Self, 1 [symbolic = %Self.loc4_36.2 (constants.%Self.e0a)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%N.loc4_14.1)> [symbolic = %I.type (constants.%I.type.ac2)] +// CHECK:STDOUT: %Self.loc4_36.2: @I.%I.type (%I.type.ac2) = symbolic_binding Self, 1 [symbolic = %Self.loc4_36.2 (constants.%Self.4d2)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_36.1: @I.%I.type (%I.type.180) = symbolic_binding Self, 1 [symbolic = %Self.loc4_36.2 (constants.%Self.e0a)] +// CHECK:STDOUT: %Self.loc4_36.1: @I.%I.type (%I.type.ac2) = symbolic_binding Self, 1 [symbolic = %Self.loc4_36.2 (constants.%Self.4d2)] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %V: @I.WithSelf.%array_type (%array_type) = assoc_const_decl @V [concrete] { -// CHECK:STDOUT: %assoc0: @I.WithSelf.%I.assoc_type (%I.assoc_type.a7e) = assoc_entity element0, @I.WithSelf.%V [symbolic = @I.WithSelf.%assoc0 (constants.%assoc0.11b)] +// CHECK:STDOUT: %assoc0: @I.WithSelf.%I.assoc_type (%I.assoc_type.16e) = assoc_entity element0, @I.WithSelf.%V [symbolic = @I.WithSelf.%assoc0 (constants.%assoc0.377)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -710,48 +710,48 @@ fn CallF() { // CHECK:STDOUT: %N.loc4_14.1 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%N, constants.%Self.e0a) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%N, constants.%Self.4d2) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%int_-1) { // CHECK:STDOUT: %N.loc4_14.1 => constants.%int_-1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.057 -// CHECK:STDOUT: %Self.loc4_36.2 => constants.%Self.9ad +// CHECK:STDOUT: %I.type => constants.%I.type.ce3 +// CHECK:STDOUT: %Self.loc4_36.2 => constants.%Self.4a1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%int_-1, constants.%Self.e0a) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%int_-1, constants.%Self.4d2) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %N => constants.%int_-1 -// CHECK:STDOUT: %I.type => constants.%I.type.057 -// CHECK:STDOUT: %Self => constants.%Self.e0a -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.2ff +// CHECK:STDOUT: %I.type => constants.%I.type.ce3 +// CHECK:STDOUT: %Self => constants.%Self.4d2 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.4c1 // CHECK:STDOUT: %array_type => -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.5fd -// CHECK:STDOUT: %assoc0 => constants.%assoc0.bf8 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.6c2 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.2f4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_constrained_fn.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.ed0: type = facet_access_type %Self.179 [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.c84: type = facet_access_type %Self.37e [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.465: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete] +// CHECK:STDOUT: %assoc0.660: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.0a6: %I.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.9e9: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.0a6 [symbolic_self] -// CHECK:STDOUT: %ImplicitAs.type.47e: type = facet_type <@ImplicitAs, @ImplicitAs(%.Self.as_type)> [symbolic_self] -// CHECK:STDOUT: %I.lookup_impl_witness.f3b: = lookup_impl_witness %.Self.0a6, @I [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %I.lookup_impl_witness.f3b, element0 [symbolic_self] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.9e9 [symbolic_self] +// CHECK:STDOUT: %ImplicitAs.type.313: type = facet_type <@ImplicitAs, @ImplicitAs(%.Self.as_type)> [symbolic_self] +// CHECK:STDOUT: %I.lookup_impl_witness.a48: = lookup_impl_witness %.Self.9e9, @I [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %I.lookup_impl_witness.a48, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %empty_struct_type impls @ImplicitAs, @ImplicitAs(%.Self.as_type) and %impl.elem0 = %empty_struct> [concrete] -// CHECK:STDOUT: %pattern_type.307: type = pattern_type %I_where.type [concrete] +// CHECK:STDOUT: %pattern_type.be2: type = pattern_type %I_where.type [concrete] // CHECK:STDOUT: %T: %I_where.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] @@ -765,7 +765,7 @@ fn CallF() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -778,25 +778,25 @@ fn CallF() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %T.patt: %pattern_type.307 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.be2 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_12.1: type = splice_block %.loc8_12.2 [concrete = constants.%I_where.type] { // CHECK:STDOUT: %.Self.loc8_7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %.Self.loc8_12: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.0a6] +// CHECK:STDOUT: %.Self.loc8_12: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.9e9] // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %.Self.ref.loc8_43: %I.type = name_ref .Self, %.Self.loc8_12 [symbolic_self = constants.%.Self.0a6] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %.Self.ref.loc8_43: %I.type = name_ref .Self, %.Self.loc8_12 [symbolic_self = constants.%.Self.9e9] // CHECK:STDOUT: %.Self.as_type.loc8_48: type = facet_access_type %.Self.ref.loc8_43 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_48: type = converted %.Self.ref.loc8_43, %.Self.as_type.loc8_48 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%.Self.as_type)> [symbolic_self = constants.%ImplicitAs.type.47e] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%.Self.as_type)> [symbolic_self = constants.%ImplicitAs.type.313] // CHECK:STDOUT: %.loc8_19.2: type = converted %.loc8_19.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %.Self.ref.loc8_54: %I.type = name_ref .Self, %.Self.loc8_12 [symbolic_self = constants.%.Self.0a6] +// CHECK:STDOUT: %.Self.ref.loc8_54: %I.type = name_ref .Self, %.Self.loc8_12 [symbolic_self = constants.%.Self.9e9] // CHECK:STDOUT: %.Self.as_type.loc8_54: type = facet_access_type %.Self.ref.loc8_54 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_54: type = converted %.Self.ref.loc8_54, %.Self.as_type.loc8_54 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.465] -// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access constants.%I.lookup_impl_witness.f3b, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.660] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access constants.%I.lookup_impl_witness.a48, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc8_60.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc8_60.2: %empty_struct_type = converted %.loc8_60.1, %empty_struct [concrete = constants.%empty_struct] @@ -812,12 +812,12 @@ fn CallF() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %V: @I.WithSelf.%Self.as_type (%Self.as_type.ed0) = assoc_const_decl @V [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete = constants.%assoc0.465] +// CHECK:STDOUT: %V: @I.WithSelf.%Self.as_type (%Self.as_type.c84) = assoc_const_decl @V [concrete] { +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete = constants.%assoc0.660] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -841,15 +841,15 @@ fn CallF() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.179 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.ed0 +// CHECK:STDOUT: %Self => constants.%Self.37e +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.c84 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.0a6) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.9e9) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%.Self.0a6 +// CHECK:STDOUT: %Self => constants.%.Self.9e9 // CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/compound.carbon b/toolchain/check/testdata/impl/compound.carbon index c78a22bba685..dab01b13b4fb 100644 --- a/toolchain/check/testdata/impl/compound.carbon +++ b/toolchain/check/testdata/impl/compound.carbon @@ -127,12 +127,12 @@ fn InstanceCallFail() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6e6: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] -// CHECK:STDOUT: %Self: %ImplicitAs.type.6e6 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.3aa: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] +// CHECK:STDOUT: %Self: %ImplicitAs.type.3aa = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.030: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.701: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %Dest [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %Dest [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self) [symbolic] @@ -145,7 +145,7 @@ fn InstanceCallFail() { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .ImplicitAs = %ImplicitAs.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %ImplicitAs.decl: %ImplicitAs.type.754 = interface_decl @ImplicitAs [concrete = constants.%ImplicitAs.generic] { +// CHECK:STDOUT: %ImplicitAs.decl: %ImplicitAs.type.0ff = interface_decl @ImplicitAs [concrete = constants.%ImplicitAs.generic] { // CHECK:STDOUT: %Dest.patt: %pattern_type.98f = symbolic_binding_pattern Dest, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc3_29.1: type = splice_block %.loc3_29.2 [concrete = type] { @@ -160,17 +160,17 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest.loc3_26.1: type = symbolic_binding Dest, 0 [symbolic = %Dest.loc3_26.1 (constants.%Dest)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest.loc3_26.1)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.6e6)] -// CHECK:STDOUT: %Self.loc3_35.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self.loc3_35.2 (constants.%Self)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest.loc3_26.1)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3aa)] +// CHECK:STDOUT: %Self.loc3_35.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self.loc3_35.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc3_35.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self.loc3_35.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc3_35.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self.loc3_35.2 (constants.%Self)] // CHECK:STDOUT: %ImplicitAs.WithSelf.decl = interface_with_self_decl @ImplicitAs [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert)] { -// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.030) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.030) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.701) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.701) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_31 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %Dest.ref [concrete] // CHECK:STDOUT: } { @@ -178,8 +178,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %.loc4_31.2: Core.Form = init_form %Dest.ref [symbolic = %.loc4_31.1 (constants.%.184)] // CHECK:STDOUT: %self.param: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc4_20.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.3 [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %.loc4_20.2: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.6e6) = specific_constant @ImplicitAs.%Self.loc3_35.1, @ImplicitAs(constants.%Dest) [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.ref: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.6e6) = name_ref Self, %.loc4_20.2 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %.loc4_20.2: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.3aa) = specific_constant @ImplicitAs.%Self.loc3_35.1, @ImplicitAs(constants.%Dest) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.3aa) = name_ref Self, %.loc4_20.2 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc4_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc4_20.3: type = converted %Self.ref, %Self.as_type.loc4_20.2 [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] // CHECK:STDOUT: } @@ -200,12 +200,12 @@ fn InstanceCallFail() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(@ImplicitAs.%Dest.loc3_26.2: type, @ImplicitAs.%Self.loc3_35.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6)) { +// CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(@ImplicitAs.%Dest.loc3_26.2: type, @ImplicitAs.%Self.loc3_35.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa)) { // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic = %Dest (constants.%Dest)] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.6e6)] -// CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3aa)] +// CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc4_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.loc4_18: type = pattern_type %Self.as_type.loc4_20.1 [symbolic = %pattern_type.loc4_18 (constants.%pattern_type.030)] +// CHECK:STDOUT: %pattern_type.loc4_18: type = pattern_type %Self.as_type.loc4_20.1 [symbolic = %pattern_type.loc4_18 (constants.%pattern_type.701)] // CHECK:STDOUT: %.loc4_31.1: Core.Form = init_form %Dest [symbolic = %.loc4_31.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc4_31: type = pattern_type %Dest [symbolic = %pattern_type.loc4_31 (constants.%pattern_type.51d)] // CHECK:STDOUT: @@ -220,10 +220,10 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(constants.%Dest, constants.%Self) { // CHECK:STDOUT: %Dest => constants.%Dest -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.6e6 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.3aa // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc4_20.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.loc4_18 => constants.%pattern_type.030 +// CHECK:STDOUT: %pattern_type.loc4_18 => constants.%pattern_type.701 // CHECK:STDOUT: %.loc4_31.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc4_31 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -233,9 +233,9 @@ fn InstanceCallFail() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %NonInstance1.type: type = facet_type <@NonInstance1> [concrete] // CHECK:STDOUT: %Self: %NonInstance1.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %NonInstance1.WithSelf.F1.type.de7: type = fn_type @NonInstance1.WithSelf.F1, @NonInstance1.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %NonInstance1.WithSelf.F1.type.448: type = fn_type @NonInstance1.WithSelf.F1, @NonInstance1.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %NonInstance1.WithSelf.F1.3ea: %NonInstance1.WithSelf.F1.type.de7 = struct_value () [symbolic] +// CHECK:STDOUT: %NonInstance1.WithSelf.F1.60e: %NonInstance1.WithSelf.F1.type.448 = struct_value () [symbolic] // CHECK:STDOUT: %NonInstance1.assoc_type: type = assoc_entity_type @NonInstance1 [concrete] // CHECK:STDOUT: %assoc0: %NonInstance1.assoc_type = assoc_entity element0, @NonInstance1.WithSelf.%NonInstance1.WithSelf.F1.decl [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -244,11 +244,11 @@ fn InstanceCallFail() { // CHECK:STDOUT: %struct_type.a.as.NonInstance1.impl.F1.type: type = fn_type @struct_type.a.as.NonInstance1.impl.F1 [concrete] // CHECK:STDOUT: %struct_type.a.as.NonInstance1.impl.F1: %struct_type.a.as.NonInstance1.impl.F1.type = struct_value () [concrete] // CHECK:STDOUT: %NonInstance1.facet: %NonInstance1.type = facet_value %struct_type.a, (%NonInstance1.impl_witness) [concrete] -// CHECK:STDOUT: %NonInstance1.WithSelf.F1.type.b78: type = fn_type @NonInstance1.WithSelf.F1, @NonInstance1.WithSelf(%NonInstance1.facet) [concrete] -// CHECK:STDOUT: %NonInstance1.WithSelf.F1.305: %NonInstance1.WithSelf.F1.type.b78 = struct_value () [concrete] +// CHECK:STDOUT: %NonInstance1.WithSelf.F1.type.2c8: type = fn_type @NonInstance1.WithSelf.F1, @NonInstance1.WithSelf(%NonInstance1.facet) [concrete] +// CHECK:STDOUT: %NonInstance1.WithSelf.F1.0b2: %NonInstance1.WithSelf.F1.type.2c8 = struct_value () [concrete] // CHECK:STDOUT: %NonInstanceCall1.type: type = fn_type @NonInstanceCall1 [concrete] // CHECK:STDOUT: %NonInstanceCall1: %NonInstanceCall1.type = struct_value () [concrete] -// CHECK:STDOUT: %.e9d: type = fn_type_with_self_type %NonInstance1.WithSelf.F1.type.b78, %NonInstance1.facet [concrete] +// CHECK:STDOUT: %.735: type = fn_type_with_self_type %NonInstance1.WithSelf.F1.type.2c8, %NonInstance1.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -271,7 +271,7 @@ fn InstanceCallFail() { // CHECK:STDOUT: %NonInstance1.WithSelf.decl = interface_with_self_decl @NonInstance1 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %NonInstance1.WithSelf.F1.decl: @NonInstance1.WithSelf.%NonInstance1.WithSelf.F1.type (%NonInstance1.WithSelf.F1.type.de7) = fn_decl @NonInstance1.WithSelf.F1 [symbolic = @NonInstance1.WithSelf.%NonInstance1.WithSelf.F1 (constants.%NonInstance1.WithSelf.F1.3ea)] {} {} +// CHECK:STDOUT: %NonInstance1.WithSelf.F1.decl: @NonInstance1.WithSelf.%NonInstance1.WithSelf.F1.type (%NonInstance1.WithSelf.F1.type.448) = fn_decl @NonInstance1.WithSelf.F1 [symbolic = @NonInstance1.WithSelf.%NonInstance1.WithSelf.F1 (constants.%NonInstance1.WithSelf.F1.60e)] {} {} // CHECK:STDOUT: %assoc0: %NonInstance1.assoc_type = assoc_entity element0, %NonInstance1.WithSelf.F1.decl [concrete = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -311,7 +311,7 @@ fn InstanceCallFail() { // CHECK:STDOUT: %F1.ref: %NonInstance1.assoc_type = name_ref F1, @NonInstance1.WithSelf.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %NonInstance1.facet: %NonInstance1.type = facet_value %struct_type.a, (constants.%NonInstance1.impl_witness) [concrete = constants.%NonInstance1.facet] // CHECK:STDOUT: %.loc12_11: %NonInstance1.type = converted %struct_type.a, %NonInstance1.facet [concrete = constants.%NonInstance1.facet] -// CHECK:STDOUT: %impl.elem0: %.e9d = impl_witness_access constants.%NonInstance1.impl_witness, element0 [concrete = constants.%struct_type.a.as.NonInstance1.impl.F1] +// CHECK:STDOUT: %impl.elem0: %.735 = impl_witness_access constants.%NonInstance1.impl_witness, element0 [concrete = constants.%struct_type.a.as.NonInstance1.impl.F1] // CHECK:STDOUT: %struct_type.a.as.NonInstance1.impl.F1.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -319,8 +319,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: specific @NonInstance1.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %NonInstance1.WithSelf.F1.type => constants.%NonInstance1.WithSelf.F1.type.de7 -// CHECK:STDOUT: %NonInstance1.WithSelf.F1 => constants.%NonInstance1.WithSelf.F1.3ea +// CHECK:STDOUT: %NonInstance1.WithSelf.F1.type => constants.%NonInstance1.WithSelf.F1.type.448 +// CHECK:STDOUT: %NonInstance1.WithSelf.F1 => constants.%NonInstance1.WithSelf.F1.60e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @NonInstance1.WithSelf.F1(constants.%Self) {} @@ -328,8 +328,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: specific @NonInstance1.WithSelf(constants.%NonInstance1.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%NonInstance1.facet -// CHECK:STDOUT: %NonInstance1.WithSelf.F1.type => constants.%NonInstance1.WithSelf.F1.type.b78 -// CHECK:STDOUT: %NonInstance1.WithSelf.F1 => constants.%NonInstance1.WithSelf.F1.305 +// CHECK:STDOUT: %NonInstance1.WithSelf.F1.type => constants.%NonInstance1.WithSelf.F1.type.2c8 +// CHECK:STDOUT: %NonInstance1.WithSelf.F1 => constants.%NonInstance1.WithSelf.F1.0b2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @NonInstance1.WithSelf.F1(constants.%NonInstance1.facet) {} @@ -338,42 +338,42 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %NonInstance2.type: type = facet_type <@NonInstance2> [concrete] -// CHECK:STDOUT: %Self.fdf: %NonInstance2.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %NonInstance2.WithSelf.F2.type.14d: type = fn_type @NonInstance2.WithSelf.F2, @NonInstance2.WithSelf(%Self.fdf) [symbolic] +// CHECK:STDOUT: %Self.598: %NonInstance2.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %NonInstance2.WithSelf.F2.type.9a0: type = fn_type @NonInstance2.WithSelf.F2, @NonInstance2.WithSelf(%Self.598) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %NonInstance2.WithSelf.F2.a96: %NonInstance2.WithSelf.F2.type.14d = struct_value () [symbolic] +// CHECK:STDOUT: %NonInstance2.WithSelf.F2.172: %NonInstance2.WithSelf.F2.type.9a0 = struct_value () [symbolic] // CHECK:STDOUT: %NonInstance2.assoc_type: type = assoc_entity_type @NonInstance2 [concrete] -// CHECK:STDOUT: %assoc0.ef1: %NonInstance2.assoc_type = assoc_entity element0, @NonInstance2.WithSelf.%NonInstance2.WithSelf.F2.decl [concrete] +// CHECK:STDOUT: %assoc0.fab: %NonInstance2.assoc_type = assoc_entity element0, @NonInstance2.WithSelf.%NonInstance2.WithSelf.F2.decl [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct_type.b: type = struct_type {.b: %empty_tuple.type} [concrete] // CHECK:STDOUT: %NonInstance2.impl_witness: = impl_witness @struct_type.b.as.NonInstance2.impl.%NonInstance2.impl_witness_table [concrete] // CHECK:STDOUT: %struct_type.b.as.NonInstance2.impl.F2.type: type = fn_type @struct_type.b.as.NonInstance2.impl.F2 [concrete] // CHECK:STDOUT: %struct_type.b.as.NonInstance2.impl.F2: %struct_type.b.as.NonInstance2.impl.F2.type = struct_value () [concrete] // CHECK:STDOUT: %NonInstance2.facet: %NonInstance2.type = facet_value %struct_type.b, (%NonInstance2.impl_witness) [concrete] -// CHECK:STDOUT: %NonInstance2.WithSelf.F2.type.a5d: type = fn_type @NonInstance2.WithSelf.F2, @NonInstance2.WithSelf(%NonInstance2.facet) [concrete] -// CHECK:STDOUT: %NonInstance2.WithSelf.F2.5f6: %NonInstance2.WithSelf.F2.type.a5d = struct_value () [concrete] +// CHECK:STDOUT: %NonInstance2.WithSelf.F2.type.748: type = fn_type @NonInstance2.WithSelf.F2, @NonInstance2.WithSelf(%NonInstance2.facet) [concrete] +// CHECK:STDOUT: %NonInstance2.WithSelf.F2.286: %NonInstance2.WithSelf.F2.type.748 = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.d5c: type = pattern_type %struct_type.b [concrete] // CHECK:STDOUT: %NonInstanceCall2.type: type = fn_type @NonInstanceCall2 [concrete] // CHECK:STDOUT: %NonInstanceCall2: %NonInstanceCall2.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.6e6: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] -// CHECK:STDOUT: %Self.b7e: %ImplicitAs.type.6e6 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.bf1: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c63: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self.b7e) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.cba: %ImplicitAs.WithSelf.Convert.type.c63 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.3aa: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] +// CHECK:STDOUT: %Self.294: %ImplicitAs.type.3aa = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.fcc: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.97e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self.294) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.945: %ImplicitAs.WithSelf.Convert.type.97e = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %Dest [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.b7e [symbolic] -// CHECK:STDOUT: %pattern_type.cbe: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.294 [symbolic] +// CHECK:STDOUT: %pattern_type.20e: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %Dest [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.675: type = facet_type <@ImplicitAs, @ImplicitAs(%NonInstance2.type)> [concrete] -// CHECK:STDOUT: %Self.4b7: %ImplicitAs.type.675 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.fcb: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%NonInstance2.type, %Self.b7e) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.f27: %ImplicitAs.WithSelf.Convert.type.fcb = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.deb: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%NonInstance2.type) [concrete] -// CHECK:STDOUT: %assoc0.524: %ImplicitAs.assoc_type.deb = assoc_entity element0, imports.%Core.import_ref.569 [concrete] -// CHECK:STDOUT: %assoc0.bd2: %ImplicitAs.assoc_type.bf1 = assoc_entity element0, imports.%Core.import_ref.cd5 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.4d6: type = facet_type <@ImplicitAs, @ImplicitAs(%NonInstance2.type)> [concrete] +// CHECK:STDOUT: %Self.2c5: %ImplicitAs.type.4d6 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.ce9: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%NonInstance2.type, %Self.294) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.dd9: %ImplicitAs.WithSelf.Convert.type.ce9 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.998: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%NonInstance2.type) [concrete] +// CHECK:STDOUT: %assoc0.138: %ImplicitAs.assoc_type.998 = assoc_entity element0, imports.%Core.import_ref.cb2 [concrete] +// CHECK:STDOUT: %assoc0.0ac: %ImplicitAs.assoc_type.fcc = assoc_entity element0, imports.%Core.import_ref.f9d [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -381,15 +381,15 @@ fn InstanceCallFail() { // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//default, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.195: @ImplicitAs.WithSelf.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.bf1) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%assoc0 (constants.%assoc0.bd2)] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//default, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.484: @ImplicitAs.WithSelf.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.fcc) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%assoc0 (constants.%assoc0.0ac)] // CHECK:STDOUT: %Core.Convert = import_ref Core//default, Convert, unloaded -// CHECK:STDOUT: %Core.import_ref.569: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.c63) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.cba)] +// CHECK:STDOUT: %Core.import_ref.cb2: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.97e) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.945)] // CHECK:STDOUT: %Core.import_ref.b3bc94.2: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.81ed31.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%Self (constants.%Self.b7e)] -// CHECK:STDOUT: %Core.import_ref.7df = import_ref Core//default, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.f19eaa.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%Self (constants.%Self.294)] +// CHECK:STDOUT: %Core.import_ref.8c8 = import_ref Core//default, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.b3bc94.3: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.cd5 = import_ref Core//default, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.f9d = import_ref Core//default, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -421,12 +421,12 @@ fn InstanceCallFail() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @NonInstance2 { -// CHECK:STDOUT: %Self: %NonInstance2.type = symbolic_binding Self, 0 [symbolic = constants.%Self.fdf] +// CHECK:STDOUT: %Self: %NonInstance2.type = symbolic_binding Self, 0 [symbolic = constants.%Self.598] // CHECK:STDOUT: %NonInstance2.WithSelf.decl = interface_with_self_decl @NonInstance2 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %NonInstance2.WithSelf.F2.decl: @NonInstance2.WithSelf.%NonInstance2.WithSelf.F2.type (%NonInstance2.WithSelf.F2.type.14d) = fn_decl @NonInstance2.WithSelf.F2 [symbolic = @NonInstance2.WithSelf.%NonInstance2.WithSelf.F2 (constants.%NonInstance2.WithSelf.F2.a96)] {} {} -// CHECK:STDOUT: %assoc0: %NonInstance2.assoc_type = assoc_entity element0, %NonInstance2.WithSelf.F2.decl [concrete = constants.%assoc0.ef1] +// CHECK:STDOUT: %NonInstance2.WithSelf.F2.decl: @NonInstance2.WithSelf.%NonInstance2.WithSelf.F2.type (%NonInstance2.WithSelf.F2.type.9a0) = fn_decl @NonInstance2.WithSelf.F2 [symbolic = @NonInstance2.WithSelf.%NonInstance2.WithSelf.F2 (constants.%NonInstance2.WithSelf.F2.172)] {} {} +// CHECK:STDOUT: %assoc0: %NonInstance2.assoc_type = assoc_entity element0, %NonInstance2.WithSelf.F2.decl [concrete = constants.%assoc0.fab] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -440,13 +440,13 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.6e6)] -// CHECK:STDOUT: %Self: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.b7e)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3aa)] +// CHECK:STDOUT: %Self: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.294)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Core.import_ref.7df -// CHECK:STDOUT: .Convert = imports.%Core.import_ref.195 +// CHECK:STDOUT: .Self = imports.%Core.import_ref.8c8 +// CHECK:STDOUT: .Convert = imports.%Core.import_ref.484 // CHECK:STDOUT: witness = (imports.%Core.Convert) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -477,37 +477,37 @@ fn InstanceCallFail() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: %struct_type.b = name_ref n, %n // CHECK:STDOUT: %NonInstance2.ref: type = name_ref NonInstance2, file.%NonInstance2.decl [concrete = constants.%NonInstance2.type] -// CHECK:STDOUT: %F2.ref: %NonInstance2.assoc_type = name_ref F2, @NonInstance2.WithSelf.%assoc0 [concrete = constants.%assoc0.ef1] +// CHECK:STDOUT: %F2.ref: %NonInstance2.assoc_type = name_ref F2, @NonInstance2.WithSelf.%assoc0 [concrete = constants.%assoc0.fab] // CHECK:STDOUT: %.loc21: %NonInstance2.type = converted %n.ref, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(imports.%Core.import_ref.b3bc94.2: type, imports.%Core.import_ref.81ed31.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6)) [from "core.carbon"] { +// CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(imports.%Core.import_ref.b3bc94.2: type, imports.%Core.import_ref.f19eaa.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa)) [from "core.carbon"] { // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic = %Dest (constants.%Dest)] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.6e6)] -// CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.b7e)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3aa)] +// CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.294)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.cbe)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.20e)] // CHECK:STDOUT: %.1: Core.Form = init_form %Dest [symbolic = %.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %Dest [symbolic = %pattern_type.2 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @NonInstance2.WithSelf(constants.%Self.fdf) { +// CHECK:STDOUT: specific @NonInstance2.WithSelf(constants.%Self.598) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.fdf -// CHECK:STDOUT: %NonInstance2.WithSelf.F2.type => constants.%NonInstance2.WithSelf.F2.type.14d -// CHECK:STDOUT: %NonInstance2.WithSelf.F2 => constants.%NonInstance2.WithSelf.F2.a96 +// CHECK:STDOUT: %Self => constants.%Self.598 +// CHECK:STDOUT: %NonInstance2.WithSelf.F2.type => constants.%NonInstance2.WithSelf.F2.type.9a0 +// CHECK:STDOUT: %NonInstance2.WithSelf.F2 => constants.%NonInstance2.WithSelf.F2.172 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @NonInstance2.WithSelf.F2(constants.%Self.fdf) {} +// CHECK:STDOUT: specific @NonInstance2.WithSelf.F2(constants.%Self.598) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @NonInstance2.WithSelf(constants.%NonInstance2.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%NonInstance2.facet -// CHECK:STDOUT: %NonInstance2.WithSelf.F2.type => constants.%NonInstance2.WithSelf.F2.type.a5d -// CHECK:STDOUT: %NonInstance2.WithSelf.F2 => constants.%NonInstance2.WithSelf.F2.5f6 +// CHECK:STDOUT: %NonInstance2.WithSelf.F2.type => constants.%NonInstance2.WithSelf.F2.type.748 +// CHECK:STDOUT: %NonInstance2.WithSelf.F2 => constants.%NonInstance2.WithSelf.F2.286 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @NonInstance2.WithSelf.F2(constants.%NonInstance2.facet) {} @@ -516,14 +516,14 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest => constants.%Dest // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%Dest, constants.%Self.b7e) {} +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%Dest, constants.%Self.294) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(constants.%Dest, constants.%Self.b7e) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(constants.%Dest, constants.%Self.294) { // CHECK:STDOUT: %Dest => constants.%Dest -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.6e6 -// CHECK:STDOUT: %Self => constants.%Self.b7e +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.3aa +// CHECK:STDOUT: %Self => constants.%Self.294 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.cbe +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.20e // CHECK:STDOUT: %.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -532,62 +532,62 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest => constants.%NonInstance2.type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.675 -// CHECK:STDOUT: %Self => constants.%Self.4b7 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.4d6 +// CHECK:STDOUT: %Self => constants.%Self.2c5 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%NonInstance2.type, constants.%Self.b7e) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%NonInstance2.type, constants.%Self.294) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Dest => constants.%NonInstance2.type -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.675 -// CHECK:STDOUT: %Self => constants.%Self.b7e -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.fcb -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.f27 -// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.deb -// CHECK:STDOUT: %assoc0 => constants.%assoc0.524 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.4d6 +// CHECK:STDOUT: %Self => constants.%Self.294 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.ce9 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.dd9 +// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.998 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.138 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_non-instance_indirect.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %NonInstance3.type: type = facet_type <@NonInstance3> [concrete] -// CHECK:STDOUT: %Self.4a5: %NonInstance3.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %NonInstance3.WithSelf.F3.type.41c: type = fn_type @NonInstance3.WithSelf.F3, @NonInstance3.WithSelf(%Self.4a5) [symbolic] +// CHECK:STDOUT: %Self.6e1: %NonInstance3.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %NonInstance3.WithSelf.F3.type.be9: type = fn_type @NonInstance3.WithSelf.F3, @NonInstance3.WithSelf(%Self.6e1) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %NonInstance3.WithSelf.F3.cf1: %NonInstance3.WithSelf.F3.type.41c = struct_value () [symbolic] +// CHECK:STDOUT: %NonInstance3.WithSelf.F3.173: %NonInstance3.WithSelf.F3.type.be9 = struct_value () [symbolic] // CHECK:STDOUT: %NonInstance3.assoc_type: type = assoc_entity_type @NonInstance3 [concrete] -// CHECK:STDOUT: %assoc0.70f: %NonInstance3.assoc_type = assoc_entity element0, @NonInstance3.WithSelf.%NonInstance3.WithSelf.F3.decl [concrete] +// CHECK:STDOUT: %assoc0.a87: %NonInstance3.assoc_type = assoc_entity element0, @NonInstance3.WithSelf.%NonInstance3.WithSelf.F3.decl [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %empty_tuple.type} [concrete] // CHECK:STDOUT: %NonInstance3.impl_witness: = impl_witness @struct_type.c.as.NonInstance3.impl.%NonInstance3.impl_witness_table [concrete] // CHECK:STDOUT: %struct_type.c.as.NonInstance3.impl.F3.type: type = fn_type @struct_type.c.as.NonInstance3.impl.F3 [concrete] // CHECK:STDOUT: %struct_type.c.as.NonInstance3.impl.F3: %struct_type.c.as.NonInstance3.impl.F3.type = struct_value () [concrete] // CHECK:STDOUT: %NonInstance3.facet: %NonInstance3.type = facet_value %struct_type.c, (%NonInstance3.impl_witness) [concrete] -// CHECK:STDOUT: %NonInstance3.WithSelf.F3.type.c14: type = fn_type @NonInstance3.WithSelf.F3, @NonInstance3.WithSelf(%NonInstance3.facet) [concrete] -// CHECK:STDOUT: %NonInstance3.WithSelf.F3.122: %NonInstance3.WithSelf.F3.type.c14 = struct_value () [concrete] +// CHECK:STDOUT: %NonInstance3.WithSelf.F3.type.0a9: type = fn_type @NonInstance3.WithSelf.F3, @NonInstance3.WithSelf(%NonInstance3.facet) [concrete] +// CHECK:STDOUT: %NonInstance3.WithSelf.F3.a3c: %NonInstance3.WithSelf.F3.type.0a9 = struct_value () [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %struct_type.c [concrete] // CHECK:STDOUT: %pattern_type.5f5: type = pattern_type %ptr [concrete] // CHECK:STDOUT: %NonInstanceCallIndirect.type: type = fn_type @NonInstanceCallIndirect [concrete] // CHECK:STDOUT: %NonInstanceCallIndirect: %NonInstanceCallIndirect.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.6e6: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] -// CHECK:STDOUT: %Self.b7e: %ImplicitAs.type.6e6 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.bf1: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c63: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self.b7e) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.cba: %ImplicitAs.WithSelf.Convert.type.c63 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.3aa: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] +// CHECK:STDOUT: %Self.294: %ImplicitAs.type.3aa = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.fcc: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.97e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self.294) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.945: %ImplicitAs.WithSelf.Convert.type.97e = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %Dest [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.b7e [symbolic] -// CHECK:STDOUT: %pattern_type.cbe: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.294 [symbolic] +// CHECK:STDOUT: %pattern_type.20e: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %Dest [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.254: type = facet_type <@ImplicitAs, @ImplicitAs(%NonInstance3.type)> [concrete] -// CHECK:STDOUT: %Self.5ba: %ImplicitAs.type.254 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2d7: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%NonInstance3.type, %Self.b7e) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.8ed: %ImplicitAs.WithSelf.Convert.type.2d7 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.b3a: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%NonInstance3.type) [concrete] -// CHECK:STDOUT: %assoc0.b49: %ImplicitAs.assoc_type.b3a = assoc_entity element0, imports.%Core.import_ref.569 [concrete] -// CHECK:STDOUT: %assoc0.bd2: %ImplicitAs.assoc_type.bf1 = assoc_entity element0, imports.%Core.import_ref.cd5 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.04b: type = facet_type <@ImplicitAs, @ImplicitAs(%NonInstance3.type)> [concrete] +// CHECK:STDOUT: %Self.522: %ImplicitAs.type.04b = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.fbe: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%NonInstance3.type, %Self.294) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.00a: %ImplicitAs.WithSelf.Convert.type.fbe = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.d8d: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%NonInstance3.type) [concrete] +// CHECK:STDOUT: %assoc0.773: %ImplicitAs.assoc_type.d8d = assoc_entity element0, imports.%Core.import_ref.cb2 [concrete] +// CHECK:STDOUT: %assoc0.0ac: %ImplicitAs.assoc_type.fcc = assoc_entity element0, imports.%Core.import_ref.f9d [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -595,15 +595,15 @@ fn InstanceCallFail() { // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//default, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.195: @ImplicitAs.WithSelf.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.bf1) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%assoc0 (constants.%assoc0.bd2)] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//default, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.484: @ImplicitAs.WithSelf.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.fcc) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%assoc0 (constants.%assoc0.0ac)] // CHECK:STDOUT: %Core.Convert = import_ref Core//default, Convert, unloaded -// CHECK:STDOUT: %Core.import_ref.569: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.c63) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.cba)] +// CHECK:STDOUT: %Core.import_ref.cb2: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.97e) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.945)] // CHECK:STDOUT: %Core.import_ref.b3bc94.2: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.81ed31.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%Self (constants.%Self.b7e)] -// CHECK:STDOUT: %Core.import_ref.7df = import_ref Core//default, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.f19eaa.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%Self (constants.%Self.294)] +// CHECK:STDOUT: %Core.import_ref.8c8 = import_ref Core//default, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.b3bc94.3: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.cd5 = import_ref Core//default, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.f9d = import_ref Core//default, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -636,12 +636,12 @@ fn InstanceCallFail() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @NonInstance3 { -// CHECK:STDOUT: %Self: %NonInstance3.type = symbolic_binding Self, 0 [symbolic = constants.%Self.4a5] +// CHECK:STDOUT: %Self: %NonInstance3.type = symbolic_binding Self, 0 [symbolic = constants.%Self.6e1] // CHECK:STDOUT: %NonInstance3.WithSelf.decl = interface_with_self_decl @NonInstance3 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %NonInstance3.WithSelf.F3.decl: @NonInstance3.WithSelf.%NonInstance3.WithSelf.F3.type (%NonInstance3.WithSelf.F3.type.41c) = fn_decl @NonInstance3.WithSelf.F3 [symbolic = @NonInstance3.WithSelf.%NonInstance3.WithSelf.F3 (constants.%NonInstance3.WithSelf.F3.cf1)] {} {} -// CHECK:STDOUT: %assoc0: %NonInstance3.assoc_type = assoc_entity element0, %NonInstance3.WithSelf.F3.decl [concrete = constants.%assoc0.70f] +// CHECK:STDOUT: %NonInstance3.WithSelf.F3.decl: @NonInstance3.WithSelf.%NonInstance3.WithSelf.F3.type (%NonInstance3.WithSelf.F3.type.be9) = fn_decl @NonInstance3.WithSelf.F3 [symbolic = @NonInstance3.WithSelf.%NonInstance3.WithSelf.F3 (constants.%NonInstance3.WithSelf.F3.173)] {} {} +// CHECK:STDOUT: %assoc0: %NonInstance3.assoc_type = assoc_entity element0, %NonInstance3.WithSelf.F3.decl [concrete = constants.%assoc0.a87] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -655,13 +655,13 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.6e6)] -// CHECK:STDOUT: %Self: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.b7e)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3aa)] +// CHECK:STDOUT: %Self: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.294)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Core.import_ref.7df -// CHECK:STDOUT: .Convert = imports.%Core.import_ref.195 +// CHECK:STDOUT: .Self = imports.%Core.import_ref.8c8 +// CHECK:STDOUT: .Convert = imports.%Core.import_ref.484 // CHECK:STDOUT: witness = (imports.%Core.Convert) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -692,38 +692,38 @@ fn InstanceCallFail() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %p.ref: %ptr = name_ref p, %p // CHECK:STDOUT: %NonInstance3.ref: type = name_ref NonInstance3, file.%NonInstance3.decl [concrete = constants.%NonInstance3.type] -// CHECK:STDOUT: %F3.ref: %NonInstance3.assoc_type = name_ref F3, @NonInstance3.WithSelf.%assoc0 [concrete = constants.%assoc0.70f] +// CHECK:STDOUT: %F3.ref: %NonInstance3.assoc_type = name_ref F3, @NonInstance3.WithSelf.%assoc0 [concrete = constants.%assoc0.a87] // CHECK:STDOUT: %.loc21_4.1: ref %struct_type.c = deref %p.ref // CHECK:STDOUT: %.loc21_4.2: %NonInstance3.type = converted %.loc21_4.1, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(imports.%Core.import_ref.b3bc94.2: type, imports.%Core.import_ref.81ed31.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6)) [from "core.carbon"] { +// CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(imports.%Core.import_ref.b3bc94.2: type, imports.%Core.import_ref.f19eaa.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa)) [from "core.carbon"] { // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic = %Dest (constants.%Dest)] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.6e6)] -// CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.b7e)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3aa)] +// CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.294)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.cbe)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.20e)] // CHECK:STDOUT: %.1: Core.Form = init_form %Dest [symbolic = %.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %Dest [symbolic = %pattern_type.2 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @NonInstance3.WithSelf(constants.%Self.4a5) { +// CHECK:STDOUT: specific @NonInstance3.WithSelf(constants.%Self.6e1) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.4a5 -// CHECK:STDOUT: %NonInstance3.WithSelf.F3.type => constants.%NonInstance3.WithSelf.F3.type.41c -// CHECK:STDOUT: %NonInstance3.WithSelf.F3 => constants.%NonInstance3.WithSelf.F3.cf1 +// CHECK:STDOUT: %Self => constants.%Self.6e1 +// CHECK:STDOUT: %NonInstance3.WithSelf.F3.type => constants.%NonInstance3.WithSelf.F3.type.be9 +// CHECK:STDOUT: %NonInstance3.WithSelf.F3 => constants.%NonInstance3.WithSelf.F3.173 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @NonInstance3.WithSelf.F3(constants.%Self.4a5) {} +// CHECK:STDOUT: specific @NonInstance3.WithSelf.F3(constants.%Self.6e1) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @NonInstance3.WithSelf(constants.%NonInstance3.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%NonInstance3.facet -// CHECK:STDOUT: %NonInstance3.WithSelf.F3.type => constants.%NonInstance3.WithSelf.F3.type.c14 -// CHECK:STDOUT: %NonInstance3.WithSelf.F3 => constants.%NonInstance3.WithSelf.F3.122 +// CHECK:STDOUT: %NonInstance3.WithSelf.F3.type => constants.%NonInstance3.WithSelf.F3.type.0a9 +// CHECK:STDOUT: %NonInstance3.WithSelf.F3 => constants.%NonInstance3.WithSelf.F3.a3c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @NonInstance3.WithSelf.F3(constants.%NonInstance3.facet) {} @@ -732,14 +732,14 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest => constants.%Dest // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%Dest, constants.%Self.b7e) {} +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%Dest, constants.%Self.294) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(constants.%Dest, constants.%Self.b7e) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(constants.%Dest, constants.%Self.294) { // CHECK:STDOUT: %Dest => constants.%Dest -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.6e6 -// CHECK:STDOUT: %Self => constants.%Self.b7e +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.3aa +// CHECK:STDOUT: %Self => constants.%Self.294 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.cbe +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.20e // CHECK:STDOUT: %.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -748,19 +748,19 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest => constants.%NonInstance3.type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.254 -// CHECK:STDOUT: %Self => constants.%Self.5ba +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.04b +// CHECK:STDOUT: %Self => constants.%Self.522 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%NonInstance3.type, constants.%Self.b7e) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%NonInstance3.type, constants.%Self.294) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Dest => constants.%NonInstance3.type -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.254 -// CHECK:STDOUT: %Self => constants.%Self.b7e -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.2d7 -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.8ed -// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.b3a -// CHECK:STDOUT: %assoc0 => constants.%assoc0.b49 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.04b +// CHECK:STDOUT: %Self => constants.%Self.294 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.fbe +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.00a +// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.d8d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.773 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- instance_success.carbon @@ -769,10 +769,10 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Instance1.type: type = facet_type <@Instance1> [concrete] // CHECK:STDOUT: %Self: %Instance1.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.927: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %Instance1.WithSelf.G1.type.d06: type = fn_type @Instance1.WithSelf.G1, @Instance1.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %pattern_type.f46: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Instance1.WithSelf.G1.type.284: type = fn_type @Instance1.WithSelf.G1, @Instance1.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Instance1.WithSelf.G1.d40: %Instance1.WithSelf.G1.type.d06 = struct_value () [symbolic] +// CHECK:STDOUT: %Instance1.WithSelf.G1.7cb: %Instance1.WithSelf.G1.type.284 = struct_value () [symbolic] // CHECK:STDOUT: %Instance1.assoc_type: type = assoc_entity_type @Instance1 [concrete] // CHECK:STDOUT: %assoc0: %Instance1.assoc_type = assoc_entity element0, @Instance1.WithSelf.%Instance1.WithSelf.G1.decl [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -782,11 +782,11 @@ fn InstanceCallFail() { // CHECK:STDOUT: %struct_type.d.as.Instance1.impl.G1.type: type = fn_type @struct_type.d.as.Instance1.impl.G1 [concrete] // CHECK:STDOUT: %struct_type.d.as.Instance1.impl.G1: %struct_type.d.as.Instance1.impl.G1.type = struct_value () [concrete] // CHECK:STDOUT: %Instance1.facet: %Instance1.type = facet_value %struct_type.d, (%Instance1.impl_witness) [concrete] -// CHECK:STDOUT: %Instance1.WithSelf.G1.type.971: type = fn_type @Instance1.WithSelf.G1, @Instance1.WithSelf(%Instance1.facet) [concrete] -// CHECK:STDOUT: %Instance1.WithSelf.G1.d83: %Instance1.WithSelf.G1.type.971 = struct_value () [concrete] +// CHECK:STDOUT: %Instance1.WithSelf.G1.type.8c3: type = fn_type @Instance1.WithSelf.G1, @Instance1.WithSelf(%Instance1.facet) [concrete] +// CHECK:STDOUT: %Instance1.WithSelf.G1.50a: %Instance1.WithSelf.G1.type.8c3 = struct_value () [concrete] // CHECK:STDOUT: %InstanceCall.type: type = fn_type @InstanceCall [concrete] // CHECK:STDOUT: %InstanceCall: %InstanceCall.type = struct_value () [concrete] -// CHECK:STDOUT: %.4fc: type = fn_type_with_self_type %Instance1.WithSelf.G1.type.971, %Instance1.facet [concrete] +// CHECK:STDOUT: %.5fa: type = fn_type_with_self_type %Instance1.WithSelf.G1.type.8c3, %Instance1.facet [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %struct_type.d [concrete] // CHECK:STDOUT: %pattern_type.8d6: type = pattern_type %ptr [concrete] // CHECK:STDOUT: %InstanceCallIndirect.type: type = fn_type @InstanceCallIndirect [concrete] @@ -839,9 +839,9 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Instance1.WithSelf.decl = interface_with_self_decl @Instance1 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Instance1.WithSelf.G1.decl: @Instance1.WithSelf.%Instance1.WithSelf.G1.type (%Instance1.WithSelf.G1.type.d06) = fn_decl @Instance1.WithSelf.G1 [symbolic = @Instance1.WithSelf.%Instance1.WithSelf.G1 (constants.%Instance1.WithSelf.G1.d40)] { -// CHECK:STDOUT: %self.param_patt: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.927) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.927) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %Instance1.WithSelf.G1.decl: @Instance1.WithSelf.%Instance1.WithSelf.G1.type (%Instance1.WithSelf.G1.type.284) = fn_decl @Instance1.WithSelf.G1 [symbolic = @Instance1.WithSelf.%Instance1.WithSelf.G1 (constants.%Instance1.WithSelf.G1.7cb)] { +// CHECK:STDOUT: %self.param_patt: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.f46) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.f46) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Instance1.WithSelf.G1.%Self.as_type.loc4_15.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] { @@ -882,7 +882,7 @@ fn InstanceCallFail() { // CHECK:STDOUT: generic fn @Instance1.WithSelf.G1(@Instance1.%Self: %Instance1.type) { // CHECK:STDOUT: %Self: %Instance1.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc4_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.1 [symbolic = %pattern_type (constants.%pattern_type.927)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.1 [symbolic = %pattern_type (constants.%pattern_type.f46)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @Instance1.WithSelf.G1.%Self.as_type.loc4_15.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -897,7 +897,7 @@ fn InstanceCallFail() { // CHECK:STDOUT: %n.ref: %struct_type.d = name_ref n, %n // CHECK:STDOUT: %Instance1.ref: type = name_ref Instance1, file.%Instance1.decl [concrete = constants.%Instance1.type] // CHECK:STDOUT: %G1.ref: %Instance1.assoc_type = name_ref G1, @Instance1.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.4fc = impl_witness_access constants.%Instance1.impl_witness, element0 [concrete = constants.%struct_type.d.as.Instance1.impl.G1] +// CHECK:STDOUT: %impl.elem0: %.5fa = impl_witness_access constants.%Instance1.impl_witness, element0 [concrete = constants.%struct_type.d.as.Instance1.impl.G1] // CHECK:STDOUT: %bound_method: = bound_method %n.ref, %impl.elem0 // CHECK:STDOUT: %struct_type.d.as.Instance1.impl.G1.call: init %empty_tuple.type = call %bound_method(%n.ref) // CHECK:STDOUT: return @@ -909,7 +909,7 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Instance1.ref: type = name_ref Instance1, file.%Instance1.decl [concrete = constants.%Instance1.type] // CHECK:STDOUT: %G1.ref: %Instance1.assoc_type = name_ref G1, @Instance1.WithSelf.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.loc16_4.1: ref %struct_type.d = deref %p.ref -// CHECK:STDOUT: %impl.elem0: %.4fc = impl_witness_access constants.%Instance1.impl_witness, element0 [concrete = constants.%struct_type.d.as.Instance1.impl.G1] +// CHECK:STDOUT: %impl.elem0: %.5fa = impl_witness_access constants.%Instance1.impl_witness, element0 [concrete = constants.%struct_type.d.as.Instance1.impl.G1] // CHECK:STDOUT: %bound_method: = bound_method %.loc16_4.1, %impl.elem0 // CHECK:STDOUT: %.loc16_4.2: ref %empty_tuple.type = struct_access %.loc16_4.1, element0 // CHECK:STDOUT: %tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] @@ -923,21 +923,21 @@ fn InstanceCallFail() { // CHECK:STDOUT: specific @Instance1.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Instance1.WithSelf.G1.type => constants.%Instance1.WithSelf.G1.type.d06 -// CHECK:STDOUT: %Instance1.WithSelf.G1 => constants.%Instance1.WithSelf.G1.d40 +// CHECK:STDOUT: %Instance1.WithSelf.G1.type => constants.%Instance1.WithSelf.G1.type.284 +// CHECK:STDOUT: %Instance1.WithSelf.G1 => constants.%Instance1.WithSelf.G1.7cb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance1.WithSelf.G1(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.927 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance1.WithSelf(constants.%Instance1.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Instance1.facet -// CHECK:STDOUT: %Instance1.WithSelf.G1.type => constants.%Instance1.WithSelf.G1.type.971 -// CHECK:STDOUT: %Instance1.WithSelf.G1 => constants.%Instance1.WithSelf.G1.d83 +// CHECK:STDOUT: %Instance1.WithSelf.G1.type => constants.%Instance1.WithSelf.G1.type.8c3 +// CHECK:STDOUT: %Instance1.WithSelf.G1 => constants.%Instance1.WithSelf.G1.50a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance1.WithSelf.G1(constants.%Instance1.facet) { @@ -952,10 +952,10 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Instance2.type: type = facet_type <@Instance2> [concrete] // CHECK:STDOUT: %Self: %Instance2.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %Instance2.WithSelf.G2.type.5db: type = fn_type @Instance2.WithSelf.G2, @Instance2.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %pattern_type.8a4: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Instance2.WithSelf.G2.type.512: type = fn_type @Instance2.WithSelf.G2, @Instance2.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Instance2.WithSelf.G2.7b8: %Instance2.WithSelf.G2.type.5db = struct_value () [symbolic] +// CHECK:STDOUT: %Instance2.WithSelf.G2.09b: %Instance2.WithSelf.G2.type.512 = struct_value () [symbolic] // CHECK:STDOUT: %Instance2.assoc_type: type = assoc_entity_type @Instance2 [concrete] // CHECK:STDOUT: %assoc0: %Instance2.assoc_type = assoc_entity element0, @Instance2.WithSelf.%Instance2.WithSelf.G2.decl [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -965,8 +965,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %struct_type.e.as.Instance2.impl.G2.type: type = fn_type @struct_type.e.as.Instance2.impl.G2 [concrete] // CHECK:STDOUT: %struct_type.e.as.Instance2.impl.G2: %struct_type.e.as.Instance2.impl.G2.type = struct_value () [concrete] // CHECK:STDOUT: %Instance2.facet: %Instance2.type = facet_value %struct_type.e, (%Instance2.impl_witness) [concrete] -// CHECK:STDOUT: %Instance2.WithSelf.G2.type.55e: type = fn_type @Instance2.WithSelf.G2, @Instance2.WithSelf(%Instance2.facet) [concrete] -// CHECK:STDOUT: %Instance2.WithSelf.G2.d90: %Instance2.WithSelf.G2.type.55e = struct_value () [concrete] +// CHECK:STDOUT: %Instance2.WithSelf.G2.type.72b: type = fn_type @Instance2.WithSelf.G2, @Instance2.WithSelf(%Instance2.facet) [concrete] +// CHECK:STDOUT: %Instance2.WithSelf.G2.922: %Instance2.WithSelf.G2.type.72b = struct_value () [concrete] // CHECK:STDOUT: %InstanceCallFail.type: type = fn_type @InstanceCallFail [concrete] // CHECK:STDOUT: %InstanceCallFail: %InstanceCallFail.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -991,9 +991,9 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Instance2.WithSelf.decl = interface_with_self_decl @Instance2 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Instance2.WithSelf.G2.decl: @Instance2.WithSelf.%Instance2.WithSelf.G2.type (%Instance2.WithSelf.G2.type.5db) = fn_decl @Instance2.WithSelf.G2 [symbolic = @Instance2.WithSelf.%Instance2.WithSelf.G2 (constants.%Instance2.WithSelf.G2.7b8)] { -// CHECK:STDOUT: %self.param_patt: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.e39) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.e39) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %Instance2.WithSelf.G2.decl: @Instance2.WithSelf.%Instance2.WithSelf.G2.type (%Instance2.WithSelf.G2.type.512) = fn_decl @Instance2.WithSelf.G2 [symbolic = @Instance2.WithSelf.%Instance2.WithSelf.G2 (constants.%Instance2.WithSelf.G2.09b)] { +// CHECK:STDOUT: %self.param_patt: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.8a4) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.8a4) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Instance2.WithSelf.G2.%Self.as_type.loc4_15.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] { @@ -1034,7 +1034,7 @@ fn InstanceCallFail() { // CHECK:STDOUT: generic fn @Instance2.WithSelf.G2(@Instance2.%Self: %Instance2.type) { // CHECK:STDOUT: %Self: %Instance2.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc4_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.1 [symbolic = %pattern_type (constants.%pattern_type.e39)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.1 [symbolic = %pattern_type (constants.%pattern_type.8a4)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @Instance2.WithSelf.G2.%Self.as_type.loc4_15.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -1057,21 +1057,21 @@ fn InstanceCallFail() { // CHECK:STDOUT: specific @Instance2.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Instance2.WithSelf.G2.type => constants.%Instance2.WithSelf.G2.type.5db -// CHECK:STDOUT: %Instance2.WithSelf.G2 => constants.%Instance2.WithSelf.G2.7b8 +// CHECK:STDOUT: %Instance2.WithSelf.G2.type => constants.%Instance2.WithSelf.G2.type.512 +// CHECK:STDOUT: %Instance2.WithSelf.G2 => constants.%Instance2.WithSelf.G2.09b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance2.WithSelf.G2(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e39 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.8a4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance2.WithSelf(constants.%Instance2.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Instance2.facet -// CHECK:STDOUT: %Instance2.WithSelf.G2.type => constants.%Instance2.WithSelf.G2.type.55e -// CHECK:STDOUT: %Instance2.WithSelf.G2 => constants.%Instance2.WithSelf.G2.d90 +// CHECK:STDOUT: %Instance2.WithSelf.G2.type => constants.%Instance2.WithSelf.G2.type.72b +// CHECK:STDOUT: %Instance2.WithSelf.G2 => constants.%Instance2.WithSelf.G2.922 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance2.WithSelf.G2(constants.%Instance2.facet) { diff --git a/toolchain/check/testdata/impl/error_recovery.carbon b/toolchain/check/testdata/impl/error_recovery.carbon index ebb24928d2f5..315754553dc3 100644 --- a/toolchain/check/testdata/impl/error_recovery.carbon +++ b/toolchain/check/testdata/impl/error_recovery.carbon @@ -172,7 +172,7 @@ impl C as I { // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T, @Z [symbolic] -// CHECK:STDOUT: %.e4f: require_specific_def_type = require_specific_def @T.as.Z.impl(%T) [symbolic] +// CHECK:STDOUT: %.7ae: require_specific_def_type = require_specific_def @T.as.Z.impl(%T) [symbolic] // CHECK:STDOUT: %Z.facet: %Z.type = facet_value %T, (%Z.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%Z.facet) [symbolic] // CHECK:STDOUT: } @@ -193,7 +193,7 @@ impl C as I { // CHECK:STDOUT: %T.loc13_7.1: type = symbolic_binding T, 0 [symbolic = %T.loc13_7.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.loc19_6.2: require_specific_def_type = require_specific_def @T.as.Z.impl(%T.loc13_7.1) [symbolic = %.loc19_6.2 (constants.%.e4f)] +// CHECK:STDOUT: %.loc19_6.2: require_specific_def_type = require_specific_def @T.as.Z.impl(%T.loc13_7.1) [symbolic = %.loc19_6.2 (constants.%.7ae)] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T.loc13_7.1, @Z [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness)] // CHECK:STDOUT: %Z.facet.loc19_6.2: %Z.type = facet_value %T.loc13_7.1, (%Z.lookup_impl_witness) [symbolic = %Z.facet.loc19_6.2 (constants.%Z.facet)] // CHECK:STDOUT: %F.specific_fn.loc19_3.2: = specific_function constants.%F, @F(%Z.facet.loc19_6.2) [symbolic = %F.specific_fn.loc19_3.2 (constants.%F.specific_fn)] @@ -228,10 +228,10 @@ impl C as I { // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T, @Z [symbolic] -// CHECK:STDOUT: %.e4f: require_specific_def_type = require_specific_def @T.as.Z.impl(%T) [symbolic] +// CHECK:STDOUT: %.7ae: require_specific_def_type = require_specific_def @T.as.Z.impl(%T) [symbolic] // CHECK:STDOUT: %Z.facet: %Z.type = facet_value %T, (%Z.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%Z.facet) [symbolic] -// CHECK:STDOUT: %.997: require_specific_def_type = require_specific_def @T.as.Z.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %.d12: require_specific_def_type = require_specific_def @T.as.Z.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -250,7 +250,7 @@ impl C as I { // CHECK:STDOUT: %T.loc13_7.1: type = symbolic_binding T, 0 [symbolic = %T.loc13_7.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.loc19_6.2: require_specific_def_type = require_specific_def @T.as.Z.impl(%T.loc13_7.1) [symbolic = %.loc19_6.2 (constants.%.e4f)] +// CHECK:STDOUT: %.loc19_6.2: require_specific_def_type = require_specific_def @T.as.Z.impl(%T.loc13_7.1) [symbolic = %.loc19_6.2 (constants.%.7ae)] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T.loc13_7.1, @Z [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness)] // CHECK:STDOUT: %Z.facet.loc19_6.2: %Z.type = facet_value %T.loc13_7.1, (%Z.lookup_impl_witness) [symbolic = %Z.facet.loc19_6.2 (constants.%Z.facet)] // CHECK:STDOUT: %F.specific_fn.loc19_3.2: = specific_function constants.%F, @F(%Z.facet.loc19_6.2) [symbolic = %F.specific_fn.loc19_3.2 (constants.%F.specific_fn)] @@ -275,7 +275,7 @@ impl C as I { // CHECK:STDOUT: %T.loc13_7.1 => constants.%empty_tuple.type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.loc19_6.2 => constants.%.997 +// CHECK:STDOUT: %.loc19_6.2 => constants.%.d12 // CHECK:STDOUT: %Z.lookup_impl_witness => // CHECK:STDOUT: %Z.facet.loc19_6.2 => // CHECK:STDOUT: %F.specific_fn.loc19_3.2 => @@ -289,8 +289,8 @@ impl C as I { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %Z.impl_witness.b0a: = impl_witness @T.as.Z.impl.%Z.impl_witness_table, @T.as.Z.impl(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_tuple.type, (%Z.impl_witness.b0a) [concrete] +// CHECK:STDOUT: %Z.impl_witness.39b: = impl_witness @T.as.Z.impl.%Z.impl_witness_table, @T.as.Z.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_tuple.type, (%Z.impl_witness.39b) [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%Z.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -298,7 +298,7 @@ impl C as I { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %.loc18_6: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value constants.%empty_tuple.type, (constants.%Z.impl_witness.b0a) [concrete = constants.%Z.facet] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value constants.%empty_tuple.type, (constants.%Z.impl_witness.39b) [concrete = constants.%Z.facet] // CHECK:STDOUT: %.loc18_7: %Z.type = converted %.loc18_6, %Z.facet [concrete = constants.%Z.facet] // CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%Z.facet) [concrete = constants.%F.specific_fn] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn() diff --git a/toolchain/check/testdata/impl/extend_impl_generic.carbon b/toolchain/check/testdata/impl/extend_impl_generic.carbon index 91afcb2839d8..d59b4f28de8e 100644 --- a/toolchain/check/testdata/impl/extend_impl_generic.carbon +++ b/toolchain/check/testdata/impl/extend_impl_generic.carbon @@ -58,17 +58,17 @@ class X(U:! type) { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %HasF.type.040: type = generic_interface_type @HasF [concrete] +// CHECK:STDOUT: %HasF.type.c96: type = generic_interface_type @HasF [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %HasF.generic: %HasF.type.040 = struct_value () [concrete] -// CHECK:STDOUT: %HasF.type.91c: type = facet_type <@HasF, @HasF(%T.67d)> [symbolic] -// CHECK:STDOUT: %Self.067: %HasF.type.91c = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %HasF.generic: %HasF.type.c96 = struct_value () [concrete] +// CHECK:STDOUT: %HasF.type.daf: type = facet_type <@HasF, @HasF(%T.67d)> [symbolic] +// CHECK:STDOUT: %Self.822: %HasF.type.daf = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %.184347.1: Core.Form = init_form %T.67d [symbolic] // CHECK:STDOUT: %pattern_type.51d1c4.1: type = pattern_type %T.67d [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.d19: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T.67d, %Self.067) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.b0e: %HasF.WithSelf.F.type.d19 = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.assoc_type.93b: type = assoc_entity_type @HasF, @HasF(%T.67d) [symbolic] -// CHECK:STDOUT: %assoc0.95a: %HasF.assoc_type.93b = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.41d: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T.67d, %Self.822) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.ff7: %HasF.WithSelf.F.type.41d = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.assoc_type.ddf: type = assoc_entity_type @HasF, @HasF(%T.67d) [symbolic] +// CHECK:STDOUT: %assoc0.e9a: %HasF.assoc_type.ddf = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [symbolic] // CHECK:STDOUT: %Param: type = class_type @Param [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] @@ -76,69 +76,69 @@ class X(U:! type) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Param.elem: type = unbound_element_type %Param, %i32 [concrete] -// CHECK:STDOUT: %struct_type.x.06a: type = struct_type {.x: %i32} [concrete] -// CHECK:STDOUT: %complete_type.9a8: = complete_type_witness %struct_type.x.06a [concrete] +// CHECK:STDOUT: %struct_type.x.a15: type = struct_type {.x: %i32} [concrete] +// CHECK:STDOUT: %complete_type.0c6: = complete_type_witness %struct_type.x.a15 [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %HasF.type.d16: type = facet_type <@HasF, @HasF(%Param)> [concrete] +// CHECK:STDOUT: %HasF.type.9e1: type = facet_type <@HasF, @HasF(%Param)> [concrete] // CHECK:STDOUT: %HasF.impl_witness: = impl_witness @C.as.HasF.impl.%HasF.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.c10: %HasF.type.d16 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.f69: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Param, %Self.067) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.cd2: %HasF.WithSelf.F.type.f69 = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.assoc_type.7e2: type = assoc_entity_type @HasF, @HasF(%Param) [concrete] -// CHECK:STDOUT: %assoc0.c4f: %HasF.assoc_type.7e2 = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [concrete] -// CHECK:STDOUT: %.704: Core.Form = init_form %Param [concrete] -// CHECK:STDOUT: %pattern_type.f6f: type = pattern_type %Param [concrete] +// CHECK:STDOUT: %Self.ef3: %HasF.type.9e1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.b42: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Param, %Self.822) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.696: %HasF.WithSelf.F.type.b42 = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.assoc_type.aee: type = assoc_entity_type @HasF, @HasF(%Param) [concrete] +// CHECK:STDOUT: %assoc0.be0: %HasF.assoc_type.aee = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %.226: Core.Form = init_form %Param [concrete] +// CHECK:STDOUT: %pattern_type.116: type = pattern_type %Param [concrete] // CHECK:STDOUT: %C.as.HasF.impl.F.type: type = fn_type @C.as.HasF.impl.F [concrete] // CHECK:STDOUT: %C.as.HasF.impl.F: %C.as.HasF.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %HasF.facet: %HasF.type.d16 = facet_value %C, (%HasF.impl_witness) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.type.b91: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Param, %HasF.facet) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.75b: %HasF.WithSelf.F.type.b91 = struct_value () [concrete] +// CHECK:STDOUT: %HasF.facet: %HasF.type.9e1 = facet_value %C, (%HasF.impl_witness) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.type.5b8: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Param, %HasF.facet) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.673: %HasF.WithSelf.F.type.5b8 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %struct_type.x.c96: type = struct_type {.x: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.x.c96 = struct_value (%int_2.ecc) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %Param.val: %Param = struct_value (%int_2.228) [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %Param.val: %Param = struct_value (%int_2.295) [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %C.type.facet: %type = facet_value %C, () [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.type.f9e: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Param, %C.type.facet) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.3b2: %HasF.WithSelf.F.type.f9e = struct_value () [concrete] -// CHECK:STDOUT: %.c03: type = fn_type_with_self_type %HasF.WithSelf.F.type.b91, %HasF.facet [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.type.eae: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Param, %C.type.facet) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.eba: %HasF.WithSelf.F.type.eae = struct_value () [concrete] +// CHECK:STDOUT: %.aa9: type = fn_type_with_self_type %HasF.WithSelf.F.type.5b8, %HasF.facet [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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.790b3b.2: type = fn_type @Destroy.Op.loc22_27.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc22_27.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -151,12 +151,12 @@ class X(U:! type) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -169,7 +169,7 @@ class X(U:! type) { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %HasF.decl: %HasF.type.040 = interface_decl @HasF [concrete = constants.%HasF.generic] { +// CHECK:STDOUT: %HasF.decl: %HasF.type.c96 = interface_decl @HasF [concrete = constants.%HasF.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.2 [concrete = type] { @@ -181,8 +181,8 @@ class X(U:! type) { // CHECK:STDOUT: %Param.decl: type = class_decl @Param [concrete = constants.%Param] {} {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc20: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -194,15 +194,15 @@ class X(U:! type) { // CHECK:STDOUT: %T.loc4_17.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_17.1 (constants.%T.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_17.1)> [symbolic = %HasF.type (constants.%HasF.type.91c)] -// CHECK:STDOUT: %Self.loc4_26.2: @HasF.%HasF.type (%HasF.type.91c) = symbolic_binding Self, 1 [symbolic = %Self.loc4_26.2 (constants.%Self.067)] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_17.1)> [symbolic = %HasF.type (constants.%HasF.type.daf)] +// CHECK:STDOUT: %Self.loc4_26.2: @HasF.%HasF.type (%HasF.type.daf) = symbolic_binding Self, 1 [symbolic = %Self.loc4_26.2 (constants.%Self.822)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_26.1: @HasF.%HasF.type (%HasF.type.91c) = symbolic_binding Self, 1 [symbolic = %Self.loc4_26.2 (constants.%Self.067)] +// CHECK:STDOUT: %Self.loc4_26.1: @HasF.%HasF.type (%HasF.type.daf) = symbolic_binding Self, 1 [symbolic = %Self.loc4_26.2 (constants.%Self.822)] // CHECK:STDOUT: %HasF.WithSelf.decl = interface_with_self_decl @HasF [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.d19) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.b0e)] { +// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.41d) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.ff7)] { // CHECK:STDOUT: %return.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.51d1c4.1) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.51d1c4.1) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { @@ -211,7 +211,7 @@ class X(U:! type) { // CHECK:STDOUT: %return.param: ref @HasF.WithSelf.F.%T (%T.67d) = out_param call_param0 // CHECK:STDOUT: %return: ref @HasF.WithSelf.F.%T (%T.67d) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc5_14.1: @HasF.WithSelf.%HasF.assoc_type (%HasF.assoc_type.93b) = assoc_entity element0, %HasF.WithSelf.F.decl [symbolic = %assoc0.loc5_14.2 (constants.%assoc0.95a)] +// CHECK:STDOUT: %assoc0.loc5_14.1: @HasF.WithSelf.%HasF.assoc_type (%HasF.assoc_type.ddf) = assoc_entity element0, %HasF.WithSelf.F.decl [symbolic = %assoc0.loc5_14.2 (constants.%assoc0.e9a)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc4_26.1 @@ -227,11 +227,11 @@ class X(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.HasF.impl: %Self.ref as %HasF.type { // CHECK:STDOUT: %C.as.HasF.impl.F.decl: %C.as.HasF.impl.F.type = fn_decl @C.as.HasF.impl.F [concrete = constants.%C.as.HasF.impl.F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.f6f = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.f6f = return_slot_pattern %return.param_patt, %Param.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.116 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.116 = return_slot_pattern %return.param_patt, %Param.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Param.ref: type = name_ref Param, file.%Param.decl [concrete = constants.%Param] -// CHECK:STDOUT: %.loc14: Core.Form = init_form %Param.ref [concrete = constants.%.704] +// CHECK:STDOUT: %.loc14: Core.Form = init_form %Param.ref [concrete = constants.%.226] // CHECK:STDOUT: %return.param: ref %Param = out_param call_param0 // CHECK:STDOUT: %return: ref %Param = return_slot %return.param // CHECK:STDOUT: } @@ -247,7 +247,7 @@ class X(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @Param { // CHECK:STDOUT: %.loc9: %Param.elem = field_decl x, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x.06a [concrete = constants.%complete_type.9a8] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.x.a15 [concrete = constants.%complete_type.0c6] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -258,9 +258,9 @@ class X(U:! type) { // CHECK:STDOUT: class @C { // CHECK:STDOUT: impl_decl @C.as.HasF.impl [concrete] {} { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] -// CHECK:STDOUT: %HasF.ref: %HasF.type.040 = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.generic] +// CHECK:STDOUT: %HasF.ref: %HasF.type.c96 = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.generic] // CHECK:STDOUT: %Param.ref: type = name_ref Param, file.%Param.decl [concrete = constants.%Param] -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(constants.%Param)> [concrete = constants.%HasF.type.d16] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(constants.%Param)> [concrete = constants.%HasF.type.9e1] // CHECK:STDOUT: } // CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type.357] // CHECK:STDOUT: complete_type_witness = %complete_type @@ -273,7 +273,7 @@ class X(U:! type) { // CHECK:STDOUT: extend @C.as.HasF.impl.%HasF.type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HasF.WithSelf.F(@HasF.%T.loc4_17.2: type, @HasF.%Self.loc4_26.1: @HasF.%HasF.type (%HasF.type.91c)) { +// CHECK:STDOUT: generic fn @HasF.WithSelf.F(@HasF.%T.loc4_17.2: type, @HasF.%Self.loc4_26.1: @HasF.%HasF.type (%HasF.type.daf)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T.67d)] // CHECK:STDOUT: %.loc5_13.1: Core.Form = init_form %T [symbolic = %.loc5_13.1 (constants.%.184347.1)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.51d1c4.1)] @@ -285,14 +285,14 @@ class X(U:! type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc15_21.1: %struct_type.x.c96 = struct_literal (%int_2) [concrete = constants.%struct] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc15_21.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_21.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_21.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc15_21.2: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.228] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_21.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc15_21.2: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc15_21.3: ref %i32 = class_element_access %return.param, element0 -// CHECK:STDOUT: %.loc15_21.4: init %i32 to %.loc15_21.3 = in_place_init %.loc15_21.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %.loc15_21.4: init %i32 to %.loc15_21.3 = in_place_init %.loc15_21.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc15_21.5: init %Param to %return.param = class_init (%.loc15_21.4) [concrete = constants.%Param.val] // CHECK:STDOUT: %.loc15_22: init %Param = converted %.loc15_21.1, %.loc15_21.5 [concrete = constants.%Param.val] // CHECK:STDOUT: return %.loc15_22 to %return.param @@ -301,12 +301,12 @@ class X(U:! type) { // CHECK:STDOUT: fn @G(%c.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %C.ref.loc21: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc21_24: %HasF.assoc_type.7e2 = specific_constant @HasF.WithSelf.%assoc0.loc5_14.1, @HasF.WithSelf(constants.%Param, constants.%C.type.facet) [concrete = constants.%assoc0.c4f] -// CHECK:STDOUT: %F.ref.loc21: %HasF.assoc_type.7e2 = name_ref F, %.loc21_24 [concrete = constants.%assoc0.c4f] -// CHECK:STDOUT: %impl.elem0.loc21: %.c03 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F] +// CHECK:STDOUT: %.loc21_24: %HasF.assoc_type.aee = specific_constant @HasF.WithSelf.%assoc0.loc5_14.1, @HasF.WithSelf(constants.%Param, constants.%C.type.facet) [concrete = constants.%assoc0.be0] +// CHECK:STDOUT: %F.ref.loc21: %HasF.assoc_type.aee = name_ref F, %.loc21_24 [concrete = constants.%assoc0.be0] +// CHECK:STDOUT: %impl.elem0.loc21: %.aa9 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F] // CHECK:STDOUT: %.loc21_27.1: ref %Param = temporary_storage // CHECK:STDOUT: %C.as.HasF.impl.F.call.loc21: init %Param to %.loc21_27.1 = call %impl.elem0.loc21() // CHECK:STDOUT: %.loc21_27.2: ref %Param = temporary %.loc21_27.1, %C.as.HasF.impl.F.call.loc21 @@ -316,21 +316,21 @@ class X(U:! type) { // CHECK:STDOUT: %.loc21_28.2: %i32 = acquire_value %.loc21_28.1 // CHECK:STDOUT: %a: %i32 = value_binding a, %.loc21_28.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt // CHECK:STDOUT: %c.ref: %C = name_ref c, %c -// CHECK:STDOUT: %.loc22_24: %HasF.assoc_type.7e2 = specific_constant @HasF.WithSelf.%assoc0.loc5_14.1, @HasF.WithSelf(constants.%Param, constants.%C.type.facet) [concrete = constants.%assoc0.c4f] -// CHECK:STDOUT: %F.ref.loc22: %HasF.assoc_type.7e2 = name_ref F, %.loc22_24 [concrete = constants.%assoc0.c4f] -// CHECK:STDOUT: %impl.elem0.loc22_24: %.c03 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F] +// CHECK:STDOUT: %.loc22_24: %HasF.assoc_type.aee = specific_constant @HasF.WithSelf.%assoc0.loc5_14.1, @HasF.WithSelf(constants.%Param, constants.%C.type.facet) [concrete = constants.%assoc0.be0] +// CHECK:STDOUT: %F.ref.loc22: %HasF.assoc_type.aee = name_ref F, %.loc22_24 [concrete = constants.%assoc0.be0] +// CHECK:STDOUT: %impl.elem0.loc22_24: %.aa9 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F] // CHECK:STDOUT: %.loc22_27.1: ref %Param = temporary_storage // CHECK:STDOUT: %C.as.HasF.impl.F.call.loc22: init %Param to %.loc22_27.1 = call %impl.elem0.loc22_24() // CHECK:STDOUT: %.loc22_27.2: ref %Param = temporary %.loc22_27.1, %C.as.HasF.impl.F.call.loc22 // CHECK:STDOUT: %x.ref.loc22: %Param.elem = name_ref x, @Param.%.loc9 [concrete = @Param.%.loc9] // CHECK:STDOUT: %.loc22_28.1: ref %i32 = class_element_access %.loc22_27.2, element0 // CHECK:STDOUT: %.loc22_28.2: %i32 = acquire_value %.loc22_28.1 -// CHECK:STDOUT: %impl.elem0.loc22_28: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc22_28: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc22_28.1: = bound_method %.loc22_28.2, %impl.elem0.loc22_28 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc22_28, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc22_28.2: = bound_method %.loc22_28.2, %specific_fn @@ -338,11 +338,11 @@ class X(U:! type) { // CHECK:STDOUT: assign %b.var, %Int.as.Copy.impl.Op.call // CHECK:STDOUT: %i32.loc22: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: ref %i32 = ref_binding b, %b.var -// CHECK:STDOUT: %Destroy.Op.bound.loc22_27: = bound_method %.loc22_27.2, constants.%Destroy.Op.2dd605.4 +// 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.2dd605.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.2dd605.4 +// 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: return // CHECK:STDOUT: } @@ -354,7 +354,7 @@ class X(U:! type) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc22_27.3(%self.param: ref %struct_type.x.06a) { +// CHECK:STDOUT: fn @Destroy.Op.loc22_27.3(%self.param: ref %struct_type.x.a15) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -368,9 +368,9 @@ class X(U:! type) { // CHECK:STDOUT: %T.loc4_17.1 => constants.%T.67d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%T.67d, constants.%Self.067) {} +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%T.67d, constants.%Self.822) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%T.67d, constants.%Self.067) { +// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%T.67d, constants.%Self.822) { // CHECK:STDOUT: %T => constants.%T.67d // CHECK:STDOUT: %.loc5_13.1 => constants.%.184347.1 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d1c4.1 @@ -380,47 +380,47 @@ class X(U:! type) { // CHECK:STDOUT: %T.loc4_17.1 => constants.%Param // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.d16 -// CHECK:STDOUT: %Self.loc4_26.2 => constants.%Self.c10 +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.9e1 +// CHECK:STDOUT: %Self.loc4_26.2 => constants.%Self.ef3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%Param, constants.%Self.067) { +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%Param, constants.%Self.822) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%Param -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.d16 -// CHECK:STDOUT: %Self => constants.%Self.067 -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.f69 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.cd2 -// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.7e2 -// CHECK:STDOUT: %assoc0.loc5_14.2 => constants.%assoc0.c4f +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.9e1 +// CHECK:STDOUT: %Self => constants.%Self.822 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.b42 +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.696 +// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.aee +// CHECK:STDOUT: %assoc0.loc5_14.2 => constants.%assoc0.be0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf(constants.%Param, constants.%HasF.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%Param -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.d16 +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.9e1 // CHECK:STDOUT: %Self => constants.%HasF.facet -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.b91 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.75b -// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.7e2 -// CHECK:STDOUT: %assoc0.loc5_14.2 => constants.%assoc0.c4f +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.5b8 +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.673 +// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.aee +// CHECK:STDOUT: %assoc0.loc5_14.2 => constants.%assoc0.be0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Param, constants.%HasF.facet) { // CHECK:STDOUT: %T => constants.%Param -// CHECK:STDOUT: %.loc5_13.1 => constants.%.704 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f6f +// CHECK:STDOUT: %.loc5_13.1 => constants.%.226 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.116 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf(constants.%Param, constants.%C.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%Param -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.d16 +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.9e1 // CHECK:STDOUT: %Self => constants.%C.type.facet -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.f9e -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.3b2 -// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.7e2 -// CHECK:STDOUT: %assoc0.loc5_14.2 => constants.%assoc0.c4f +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.eae +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.eba +// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.aee +// CHECK:STDOUT: %assoc0.loc5_14.2 => constants.%assoc0.be0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- extend_impl_generic_class.carbon @@ -430,39 +430,39 @@ class X(U:! type) { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.50feb0.1: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self.6263de.1: %I.type.50feb0.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.6263de.1 [symbolic] -// CHECK:STDOUT: %pattern_type.eff: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.3fe556.1: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self.1916c4.1: %I.type.3fe556.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.1916c4.1 [symbolic] +// CHECK:STDOUT: %pattern_type.b82: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %pattern_type.51d1c4.1: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.101507.1: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.6263de.1) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.2522e0.1: %I.WithSelf.F.type.101507.1 = struct_value () [symbolic] -// CHECK:STDOUT: %I.assoc_type.bd7023.1: type = assoc_entity_type @I, @I(%T) [symbolic] -// CHECK:STDOUT: %assoc0.631ba7.1: %I.assoc_type.bd7023.1 = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.09f79b.1: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.1916c4.1) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.5f2714.1: %I.WithSelf.F.type.09f79b.1 = struct_value () [symbolic] +// CHECK:STDOUT: %I.assoc_type.b71f2b.1: type = assoc_entity_type @I, @I(%T) [symbolic] +// CHECK:STDOUT: %assoc0.13b5f8.1: %I.assoc_type.b71f2b.1 = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [symbolic] // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %X.type: type = generic_class_type @X [concrete] // CHECK:STDOUT: %X.generic: %X.type = struct_value () [concrete] // CHECK:STDOUT: %X: type = class_type @X, @X(%U) [symbolic] -// CHECK:STDOUT: %I.type.50feb0.2: type = facet_type <@I, @I(%U)> [symbolic] +// CHECK:STDOUT: %I.type.3fe556.2: type = facet_type <@I, @I(%U)> [symbolic] // CHECK:STDOUT: %I.impl_witness: = impl_witness @X.as.I.impl.%I.impl_witness_table, @X.as.I.impl(%U) [symbolic] -// CHECK:STDOUT: %Self.6263de.2: %I.type.50feb0.2 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.101507.2: type = fn_type @I.WithSelf.F, @I.WithSelf(%U, %Self.6263de.1) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.2522e0.2: %I.WithSelf.F.type.101507.2 = struct_value () [symbolic] -// CHECK:STDOUT: %I.assoc_type.bd7023.2: type = assoc_entity_type @I, @I(%U) [symbolic] -// CHECK:STDOUT: %assoc0.631ba7.2: %I.assoc_type.bd7023.2 = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [symbolic] -// CHECK:STDOUT: %require_complete.df9: = require_complete_type %I.type.50feb0.2 [symbolic] -// CHECK:STDOUT: %pattern_type.702: type = pattern_type %X [symbolic] +// CHECK:STDOUT: %Self.1916c4.2: %I.type.3fe556.2 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.09f79b.2: type = fn_type @I.WithSelf.F, @I.WithSelf(%U, %Self.1916c4.1) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.5f2714.2: %I.WithSelf.F.type.09f79b.2 = struct_value () [symbolic] +// CHECK:STDOUT: %I.assoc_type.b71f2b.2: type = assoc_entity_type @I, @I(%U) [symbolic] +// CHECK:STDOUT: %assoc0.13b5f8.2: %I.assoc_type.b71f2b.2 = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %require_complete.45e: = require_complete_type %I.type.3fe556.2 [symbolic] +// CHECK:STDOUT: %pattern_type.056: type = pattern_type %X [symbolic] // CHECK:STDOUT: %pattern_type.51d1c4.2: type = pattern_type %U [symbolic] // CHECK:STDOUT: %X.as.I.impl.F.type: type = fn_type @X.as.I.impl.F, @X.as.I.impl(%U) [symbolic] // CHECK:STDOUT: %X.as.I.impl.F: %X.as.I.impl.F.type = struct_value () [symbolic] -// CHECK:STDOUT: %I.facet: %I.type.50feb0.2 = facet_value %X, (%I.impl_witness) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.f80: type = fn_type @I.WithSelf.F, @I.WithSelf(%U, %I.facet) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.39b: %I.WithSelf.F.type.f80 = struct_value () [symbolic] +// CHECK:STDOUT: %I.facet: %I.type.3fe556.2 = facet_value %X, (%I.impl_witness) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.2f9: type = fn_type @I.WithSelf.F, @I.WithSelf(%U, %I.facet) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.1c3: %I.WithSelf.F.type.2f9 = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %require_complete.84d: = require_complete_type %X [symbolic] +// CHECK:STDOUT: %require_complete.ec9: = require_complete_type %X [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %U [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -480,7 +480,7 @@ class X(U:! type) { // CHECK:STDOUT: .X = %X.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %I.decl: %I.type.48c = interface_decl @I [concrete = constants.%I.generic] { +// CHECK:STDOUT: %I.decl: %I.type.335 = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_17.1: type = splice_block %.loc4_17.2 [concrete = type] { @@ -504,24 +504,24 @@ class X(U:! type) { // CHECK:STDOUT: %T.loc4_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc4_14.1)> [symbolic = %I.type (constants.%I.type.50feb0.1)] -// CHECK:STDOUT: %Self.loc4_23.2: @I.%I.type (%I.type.50feb0.1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self.6263de.1)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc4_14.1)> [symbolic = %I.type (constants.%I.type.3fe556.1)] +// CHECK:STDOUT: %Self.loc4_23.2: @I.%I.type (%I.type.3fe556.1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self.1916c4.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_23.1: @I.%I.type (%I.type.50feb0.1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self.6263de.1)] +// CHECK:STDOUT: %Self.loc4_23.1: @I.%I.type (%I.type.3fe556.1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self.1916c4.1)] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.101507.1) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.2522e0.1)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.eff) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.eff) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.09f79b.1) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.5f2714.1)] { +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.b82) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.b82) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %t.param_patt: @I.WithSelf.F.%pattern_type.loc5_21 (%pattern_type.51d1c4.1) = value_param_pattern [concrete] // CHECK:STDOUT: %t.patt: @I.WithSelf.F.%pattern_type.loc5_21 (%pattern_type.51d1c4.1) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %.loc5_14.2: @I.WithSelf.F.%I.type (%I.type.50feb0.1) = specific_constant @I.%Self.loc4_23.1, @I(constants.%T) [symbolic = %Self (constants.%Self.6263de.1)] -// CHECK:STDOUT: %Self.ref: @I.WithSelf.F.%I.type (%I.type.50feb0.1) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self.6263de.1)] +// CHECK:STDOUT: %.loc5_14.2: @I.WithSelf.F.%I.type (%I.type.3fe556.1) = specific_constant @I.%Self.loc4_23.1, @I(constants.%T) [symbolic = %Self (constants.%Self.1916c4.1)] +// CHECK:STDOUT: %Self.ref: @I.WithSelf.F.%I.type (%I.type.3fe556.1) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self.1916c4.1)] // CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc5_14.3: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } @@ -530,7 +530,7 @@ class X(U:! type) { // CHECK:STDOUT: %T.ref: type = name_ref T, @I.%T.loc4_14.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %t: @I.WithSelf.F.%T (%T) = value_binding t, %t.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc5_25.1: @I.WithSelf.%I.assoc_type (%I.assoc_type.bd7023.1) = assoc_entity element0, %I.WithSelf.F.decl [symbolic = %assoc0.loc5_25.2 (constants.%assoc0.631ba7.1)] +// CHECK:STDOUT: %assoc0.loc5_25.1: @I.WithSelf.%I.assoc_type (%I.assoc_type.b71f2b.1) = assoc_entity element0, %I.WithSelf.F.decl [symbolic = %assoc0.loc5_25.2 (constants.%assoc0.13b5f8.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc4_23.1 @@ -547,18 +547,18 @@ class X(U:! type) { // CHECK:STDOUT: generic impl @X.as.I.impl(@X.%U.loc8_10.2: type) { // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic = %U (constants.%U)] // CHECK:STDOUT: %X: type = class_type @X, @X(%U) [symbolic = %X (constants.%X)] -// CHECK:STDOUT: %I.type.loc9_21.1: type = facet_type <@I, @I(%U)> [symbolic = %I.type.loc9_21.1 (constants.%I.type.50feb0.2)] +// CHECK:STDOUT: %I.type.loc9_21.1: type = facet_type <@I, @I(%U)> [symbolic = %I.type.loc9_21.1 (constants.%I.type.3fe556.2)] // CHECK:STDOUT: %I.impl_witness.loc9_23.2: = impl_witness %I.impl_witness_table, @X.as.I.impl(%U) [symbolic = %I.impl_witness.loc9_23.2 (constants.%I.impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.loc9_21.1 [symbolic = %require_complete (constants.%require_complete.df9)] +// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.loc9_21.1 [symbolic = %require_complete (constants.%require_complete.45e)] // CHECK:STDOUT: %X.as.I.impl.F.type: type = fn_type @X.as.I.impl.F, @X.as.I.impl(%U) [symbolic = %X.as.I.impl.F.type (constants.%X.as.I.impl.F.type)] // CHECK:STDOUT: %X.as.I.impl.F: @X.as.I.impl.%X.as.I.impl.F.type (%X.as.I.impl.F.type) = struct_value () [symbolic = %X.as.I.impl.F (constants.%X.as.I.impl.F)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %Self.ref as %I.type.loc9_21.2 { // CHECK:STDOUT: %X.as.I.impl.F.decl: @X.as.I.impl.%X.as.I.impl.F.type (%X.as.I.impl.F.type) = fn_decl @X.as.I.impl.F [symbolic = @X.as.I.impl.%X.as.I.impl.F (constants.%X.as.I.impl.F)] { -// CHECK:STDOUT: %self.param_patt: @X.as.I.impl.F.%pattern_type.loc10_21 (%pattern_type.702) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @X.as.I.impl.F.%pattern_type.loc10_21 (%pattern_type.702) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @X.as.I.impl.F.%pattern_type.loc10_21 (%pattern_type.056) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @X.as.I.impl.F.%pattern_type.loc10_21 (%pattern_type.056) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %t.param_patt: @X.as.I.impl.F.%pattern_type.loc10_37 (%pattern_type.51d1c4.2) = value_param_pattern [concrete] // CHECK:STDOUT: %t.patt: @X.as.I.impl.F.%pattern_type.loc10_37 (%pattern_type.51d1c4.2) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { @@ -587,17 +587,17 @@ class X(U:! type) { // CHECK:STDOUT: %U.loc8_10.1: type = symbolic_binding U, 0 [symbolic = %U.loc8_10.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U.loc8_10.1)> [symbolic = %I.type (constants.%I.type.50feb0.2)] -// CHECK:STDOUT: %require_complete: = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.df9)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U.loc8_10.1)> [symbolic = %I.type (constants.%I.type.3fe556.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.45e)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: impl_decl @X.as.I.impl [concrete] {} { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%X [symbolic = %X (constants.%X)] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %U.ref: type = name_ref U, @X.%U.loc8_10.2 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %I.type.loc9_21.2: type = facet_type <@I, @I(constants.%U)> [symbolic = %I.type.loc9_21.1 (constants.%I.type.50feb0.2)] +// CHECK:STDOUT: %I.type.loc9_21.2: type = facet_type <@I, @I(constants.%U)> [symbolic = %I.type.loc9_21.1 (constants.%I.type.3fe556.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc9: type = specific_constant @X.as.I.impl.%I.type.loc9_21.2, @X.as.I.impl(constants.%U) [symbolic = %I.type (constants.%I.type.50feb0.2)] +// CHECK:STDOUT: %.loc9: type = specific_constant @X.as.I.impl.%I.type.loc9_21.2, @X.as.I.impl(constants.%U) [symbolic = %I.type (constants.%I.type.3fe556.2)] // CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: @@ -609,12 +609,12 @@ class X(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%T.loc4_14.2: type, @I.%Self.loc4_23.1: @I.%I.type (%I.type.50feb0.1)) { +// CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%T.loc4_14.2: type, @I.%Self.loc4_23.1: @I.%I.type (%I.type.3fe556.1)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50feb0.1)] -// CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.50feb0.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.6263de.1)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe556.1)] +// CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.3fe556.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.1916c4.1)] // CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.loc5_12: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type.loc5_12 (constants.%pattern_type.eff)] +// CHECK:STDOUT: %pattern_type.loc5_12: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type.loc5_12 (constants.%pattern_type.b82)] // CHECK:STDOUT: %pattern_type.loc5_21: type = pattern_type %T [symbolic = %pattern_type.loc5_21 (constants.%pattern_type.51d1c4.1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type), %t.param: @I.WithSelf.F.%T (%T)); @@ -623,11 +623,11 @@ class X(U:! type) { // CHECK:STDOUT: generic fn @X.as.I.impl.F(@X.%U.loc8_10.2: type) { // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic = %U (constants.%U)] // CHECK:STDOUT: %X: type = class_type @X, @X(%U) [symbolic = %X (constants.%X)] -// CHECK:STDOUT: %pattern_type.loc10_21: type = pattern_type %X [symbolic = %pattern_type.loc10_21 (constants.%pattern_type.702)] +// CHECK:STDOUT: %pattern_type.loc10_21: type = pattern_type %X [symbolic = %pattern_type.loc10_21 (constants.%pattern_type.056)] // CHECK:STDOUT: %pattern_type.loc10_37: type = pattern_type %U [symbolic = %pattern_type.loc10_37 (constants.%pattern_type.51d1c4.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc10_21: = require_complete_type %X [symbolic = %require_complete.loc10_21 (constants.%require_complete.84d)] +// CHECK:STDOUT: %require_complete.loc10_21: = require_complete_type %X [symbolic = %require_complete.loc10_21 (constants.%require_complete.ec9)] // CHECK:STDOUT: %require_complete.loc10_37: = require_complete_type %U [symbolic = %require_complete.loc10_37 (constants.%require_complete.944)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @X.as.I.impl.F.%X (%X), %t.param: @X.as.I.impl.F.%U (%U)) { @@ -640,14 +640,14 @@ class X(U:! type) { // CHECK:STDOUT: %T.loc4_14.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.6263de.1) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.1916c4.1) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%T, constants.%Self.6263de.1) { +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%T, constants.%Self.1916c4.1) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %I.type => constants.%I.type.50feb0.1 -// CHECK:STDOUT: %Self => constants.%Self.6263de.1 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe556.1 +// CHECK:STDOUT: %Self => constants.%Self.1916c4.1 // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.eff +// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.b82 // CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.51d1c4.1 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -655,65 +655,65 @@ class X(U:! type) { // CHECK:STDOUT: %U.loc8_10.1 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.50feb0.2 -// CHECK:STDOUT: %require_complete => constants.%require_complete.df9 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe556.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.45e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%U) { // CHECK:STDOUT: %T.loc4_14.1 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.50feb0.2 -// CHECK:STDOUT: %Self.loc4_23.2 => constants.%Self.6263de.2 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe556.2 +// CHECK:STDOUT: %Self.loc4_23.2 => constants.%Self.1916c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X.as.I.impl(constants.%U) { // CHECK:STDOUT: %U => constants.%U // CHECK:STDOUT: %X => constants.%X -// CHECK:STDOUT: %I.type.loc9_21.1 => constants.%I.type.50feb0.2 +// CHECK:STDOUT: %I.type.loc9_21.1 => constants.%I.type.3fe556.2 // CHECK:STDOUT: %I.impl_witness.loc9_23.2 => constants.%I.impl_witness // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.df9 +// CHECK:STDOUT: %require_complete => constants.%require_complete.45e // CHECK:STDOUT: %X.as.I.impl.F.type => constants.%X.as.I.impl.F.type // CHECK:STDOUT: %X.as.I.impl.F => constants.%X.as.I.impl.F // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%U, constants.%Self.6263de.1) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%U, constants.%Self.1916c4.1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%U -// CHECK:STDOUT: %I.type => constants.%I.type.50feb0.2 -// CHECK:STDOUT: %Self => constants.%Self.6263de.1 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.101507.2 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.2522e0.2 -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.bd7023.2 -// CHECK:STDOUT: %assoc0.loc5_25.2 => constants.%assoc0.631ba7.2 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe556.2 +// CHECK:STDOUT: %Self => constants.%Self.1916c4.1 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.09f79b.2 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.5f2714.2 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.b71f2b.2 +// CHECK:STDOUT: %assoc0.loc5_25.2 => constants.%assoc0.13b5f8.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X.as.I.impl.F(constants.%U) { // CHECK:STDOUT: %U => constants.%U // CHECK:STDOUT: %X => constants.%X -// CHECK:STDOUT: %pattern_type.loc10_21 => constants.%pattern_type.702 +// CHECK:STDOUT: %pattern_type.loc10_21 => constants.%pattern_type.056 // CHECK:STDOUT: %pattern_type.loc10_37 => constants.%pattern_type.51d1c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%U, constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%U -// CHECK:STDOUT: %I.type => constants.%I.type.50feb0.2 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe556.2 // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.f80 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.39b -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.bd7023.2 -// CHECK:STDOUT: %assoc0.loc5_25.2 => constants.%assoc0.631ba7.2 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.2f9 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.1c3 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.b71f2b.2 +// CHECK:STDOUT: %assoc0.loc5_25.2 => constants.%assoc0.13b5f8.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%U, constants.%I.facet) { // CHECK:STDOUT: %T => constants.%U -// CHECK:STDOUT: %I.type => constants.%I.type.50feb0.2 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe556.2 // CHECK:STDOUT: %Self => constants.%I.facet // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%X -// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.702 +// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.056 // CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.51d1c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_alias.carbon b/toolchain/check/testdata/impl/fail_alias.carbon index febc4182d506..f76b6488d1fb 100644 --- a/toolchain/check/testdata/impl/fail_alias.carbon +++ b/toolchain/check/testdata/impl/fail_alias.carbon @@ -37,7 +37,7 @@ impl AC as AI {} // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.e127ba.1.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.e103db.1.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -54,11 +54,11 @@ impl AC as AI {} // CHECK:STDOUT: %AI: type = alias_binding AI, %I.ref [concrete = constants.%I.type] // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %AC: type = alias_binding AC, %C.ref [concrete = constants.%C] -// CHECK:STDOUT: impl_decl @C.as.I.impl.e127ba.1 [concrete] {} { +// CHECK:STDOUT: impl_decl @C.as.I.impl.e103db.1 [concrete] {} { // CHECK:STDOUT: %AC.ref: type = name_ref AC, file.%AC [concrete = constants.%C] // CHECK:STDOUT: %AI.ref: type = name_ref AI, file.%AI [concrete = constants.%I.type] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.I.impl.e127ba.2 [concrete] {} { +// CHECK:STDOUT: impl_decl @C.as.I.impl.e103db.2 [concrete] {} { // CHECK:STDOUT: %AC.ref: type = name_ref AC, file.%AC [concrete = constants.%C] // CHECK:STDOUT: %AI.ref: type = name_ref AI, file.%AI [concrete = constants.%I.type] // CHECK:STDOUT: } @@ -75,8 +75,8 @@ impl AC as AI {} // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.I.impl.e127ba.1: %AC.ref as %AI.ref { -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.e127ba.1 [concrete] +// CHECK:STDOUT: impl @C.as.I.impl.e103db.1: %AC.ref as %AI.ref { +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.e103db.1 [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -84,7 +84,7 @@ impl AC as AI {} // CHECK:STDOUT: witness = %I.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.I.impl.e127ba.2: %AC.ref as %AI.ref { +// CHECK:STDOUT: impl @C.as.I.impl.e103db.2: %AC.ref as %AI.ref { // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %AI.ref // CHECK:STDOUT: witness = diff --git a/toolchain/check/testdata/impl/fail_call_invalid.carbon b/toolchain/check/testdata/impl/fail_call_invalid.carbon index 78dea5a2b80b..5f1a3c8f32e0 100644 --- a/toolchain/check/testdata/impl/fail_call_invalid.carbon +++ b/toolchain/check/testdata/impl/fail_call_invalid.carbon @@ -34,10 +34,10 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: %Simple.type: type = facet_type <@Simple> [concrete] // CHECK:STDOUT: %Self: %Simple.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.68d: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %Simple.WithSelf.G.type.b3c: type = fn_type @Simple.WithSelf.G, @Simple.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %pattern_type.c62: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Simple.WithSelf.G.type.682: type = fn_type @Simple.WithSelf.G, @Simple.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Simple.WithSelf.G.4d0: %Simple.WithSelf.G.type.b3c = struct_value () [symbolic] +// CHECK:STDOUT: %Simple.WithSelf.G.d0a: %Simple.WithSelf.G.type.682 = struct_value () [symbolic] // CHECK:STDOUT: %Simple.assoc_type: type = assoc_entity_type @Simple [concrete] // CHECK:STDOUT: %assoc0: %Simple.assoc_type = assoc_entity element0, @Simple.WithSelf.%Simple.WithSelf.G.decl [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -45,17 +45,17 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Simple.impl_witness: = impl_witness @i32.as.Simple.impl.%Simple.impl_witness_table [concrete] -// CHECK:STDOUT: %i32.as.Simple.impl.G.type.1cea23.1: type = fn_type @i32.as.Simple.impl.G.loc24_27.1 [concrete] -// CHECK:STDOUT: %i32.as.Simple.impl.G.2d4655.1: %i32.as.Simple.impl.G.type.1cea23.1 = struct_value () [concrete] +// CHECK:STDOUT: %i32.as.Simple.impl.G.type.321a2c.1: type = fn_type @i32.as.Simple.impl.G.loc24_27.1 [concrete] +// CHECK:STDOUT: %i32.as.Simple.impl.G.d407b2.1: %i32.as.Simple.impl.G.type.321a2c.1 = struct_value () [concrete] // CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %i32, (%Simple.impl_witness) [concrete] -// CHECK:STDOUT: %Simple.WithSelf.G.type.bfa: type = fn_type @Simple.WithSelf.G, @Simple.WithSelf(%Simple.facet) [concrete] -// CHECK:STDOUT: %Simple.WithSelf.G.5b5: %Simple.WithSelf.G.type.bfa = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %i32.as.Simple.impl.G.type.1cea23.2: type = fn_type @i32.as.Simple.impl.G.loc24_27.2 [concrete] -// CHECK:STDOUT: %i32.as.Simple.impl.G.2d4655.2: %i32.as.Simple.impl.G.type.1cea23.2 = struct_value () [concrete] +// CHECK:STDOUT: %Simple.WithSelf.G.type.780: type = fn_type @Simple.WithSelf.G, @Simple.WithSelf(%Simple.facet) [concrete] +// CHECK:STDOUT: %Simple.WithSelf.G.dbb: %Simple.WithSelf.G.type.780 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %i32.as.Simple.impl.G.type.321a2c.2: type = fn_type @i32.as.Simple.impl.G.loc24_27.2 [concrete] +// CHECK:STDOUT: %i32.as.Simple.impl.G.d407b2.2: %i32.as.Simple.impl.G.type.321a2c.2 = struct_value () [concrete] // CHECK:STDOUT: %InstanceCall.type: type = fn_type @InstanceCall [concrete] // CHECK:STDOUT: %InstanceCall: %InstanceCall.type = struct_value () [concrete] -// CHECK:STDOUT: %.0af: type = fn_type_with_self_type %Simple.WithSelf.G.type.bfa, %Simple.facet [concrete] +// CHECK:STDOUT: %.785: type = fn_type_with_self_type %Simple.WithSelf.G.type.780, %Simple.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -81,8 +81,8 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: %Simple.ref: type = name_ref Simple, file.%Simple.decl [concrete = constants.%Simple.type] // CHECK:STDOUT: } // CHECK:STDOUT: %InstanceCall.decl: %InstanceCall.type = fn_decl @InstanceCall [concrete = constants.%InstanceCall] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -95,9 +95,9 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: %Simple.WithSelf.decl = interface_with_self_decl @Simple [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Simple.WithSelf.G.decl: @Simple.WithSelf.%Simple.WithSelf.G.type (%Simple.WithSelf.G.type.b3c) = fn_decl @Simple.WithSelf.G [symbolic = @Simple.WithSelf.%Simple.WithSelf.G (constants.%Simple.WithSelf.G.4d0)] { -// CHECK:STDOUT: %self.param_patt: @Simple.WithSelf.G.%pattern_type (%pattern_type.68d) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Simple.WithSelf.G.%pattern_type (%pattern_type.68d) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %Simple.WithSelf.G.decl: @Simple.WithSelf.%Simple.WithSelf.G.type (%Simple.WithSelf.G.type.682) = fn_decl @Simple.WithSelf.G [symbolic = @Simple.WithSelf.%Simple.WithSelf.G (constants.%Simple.WithSelf.G.d0a)] { +// CHECK:STDOUT: %self.param_patt: @Simple.WithSelf.G.%pattern_type (%pattern_type.c62) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Simple.WithSelf.G.%pattern_type (%pattern_type.c62) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Simple.WithSelf.G.%Self.as_type.loc16_14.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] { @@ -119,7 +119,7 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @i32.as.Simple.impl: %i32 as %Simple.ref { -// CHECK:STDOUT: %i32.as.Simple.impl.G.decl.loc24_27.1: %i32.as.Simple.impl.G.type.1cea23.1 = fn_decl @i32.as.Simple.impl.G.loc24_27.1 [concrete = constants.%i32.as.Simple.impl.G.2d4655.1] { +// CHECK:STDOUT: %i32.as.Simple.impl.G.decl.loc24_27.1: %i32.as.Simple.impl.G.type.321a2c.1 = fn_decl @i32.as.Simple.impl.G.loc24_27.1 [concrete = constants.%i32.as.Simple.impl.G.d407b2.1] { // CHECK:STDOUT: %self.param_patt: = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { @@ -127,9 +127,9 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: %Undeclared.ref: = name_ref Undeclared, [concrete = ] // CHECK:STDOUT: %self: = value_binding self, [concrete = ] // CHECK:STDOUT: } -// CHECK:STDOUT: %i32.as.Simple.impl.G.decl.loc24_27.2: %i32.as.Simple.impl.G.type.1cea23.2 = fn_decl @i32.as.Simple.impl.G.loc24_27.2 [concrete = constants.%i32.as.Simple.impl.G.2d4655.2] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.104 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %i32.as.Simple.impl.G.decl.loc24_27.2: %i32.as.Simple.impl.G.type.321a2c.2 = fn_decl @i32.as.Simple.impl.G.loc24_27.2 [concrete = constants.%i32.as.Simple.impl.G.d407b2.2] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.6b6 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %i32 = value_param call_param0 // CHECK:STDOUT: %self: %i32 = value_binding self, %self.param @@ -147,7 +147,7 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: generic fn @Simple.WithSelf.G(@Simple.%Self: %Simple.type) { // CHECK:STDOUT: %Self: %Simple.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type.68d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type.c62)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @Simple.WithSelf.G.%Self.as_type.loc16_14.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -156,7 +156,7 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: // CHECK:STDOUT: fn @i32.as.Simple.impl.G.loc24_27.2(%self.param: %i32) [thunk @i32.as.Simple.impl.%i32.as.Simple.impl.G.decl.loc24_27.1 for @Simple.WithSelf.%Simple.WithSelf.G.decl, @Simple.WithSelf.G(constants.%Simple.facet)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %G.ref: %i32.as.Simple.impl.G.type.1cea23.1 = name_ref G, @i32.as.Simple.impl.%i32.as.Simple.impl.G.decl.loc24_27.1 [concrete = constants.%i32.as.Simple.impl.G.2d4655.1] +// CHECK:STDOUT: %G.ref: %i32.as.Simple.impl.G.type.321a2c.1 = name_ref G, @i32.as.Simple.impl.%i32.as.Simple.impl.G.decl.loc24_27.1 [concrete = constants.%i32.as.Simple.impl.G.d407b2.1] // CHECK:STDOUT: %i32.as.Simple.impl.G.bound: = bound_method %self.param, %G.ref // CHECK:STDOUT: %i32.as.Simple.impl.G.call: init %empty_tuple.type = call %i32.as.Simple.impl.G.bound() // CHECK:STDOUT: return @@ -167,9 +167,9 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: %Simple.ref: type = name_ref Simple, file.%Simple.decl [concrete = constants.%Simple.type] // CHECK:STDOUT: %G.ref.loc28_12: %Simple.assoc_type = name_ref G, @Simple.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.0af = impl_witness_access constants.%Simple.impl_witness, element0 [concrete = constants.%i32.as.Simple.impl.G.2d4655.2] +// CHECK:STDOUT: %impl.elem0: %.785 = impl_witness_access constants.%Simple.impl_witness, element0 [concrete = constants.%i32.as.Simple.impl.G.d407b2.2] // CHECK:STDOUT: %bound_method: = bound_method %n.ref, %impl.elem0 -// CHECK:STDOUT: %G.ref.loc28_16: %i32.as.Simple.impl.G.type.1cea23.1 = name_ref G, @i32.as.Simple.impl.%i32.as.Simple.impl.G.decl.loc24_27.1 [concrete = constants.%i32.as.Simple.impl.G.2d4655.1] +// CHECK:STDOUT: %G.ref.loc28_16: %i32.as.Simple.impl.G.type.321a2c.1 = name_ref G, @i32.as.Simple.impl.%i32.as.Simple.impl.G.decl.loc24_27.1 [concrete = constants.%i32.as.Simple.impl.G.d407b2.1] // CHECK:STDOUT: %i32.as.Simple.impl.G.bound: = bound_method %n.ref, %G.ref.loc28_16 // CHECK:STDOUT: %i32.as.Simple.impl.G.call: init %empty_tuple.type = call %i32.as.Simple.impl.G.bound() // CHECK:STDOUT: return @@ -178,26 +178,26 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: specific @Simple.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Simple.WithSelf.G.type => constants.%Simple.WithSelf.G.type.b3c -// CHECK:STDOUT: %Simple.WithSelf.G => constants.%Simple.WithSelf.G.4d0 +// CHECK:STDOUT: %Simple.WithSelf.G.type => constants.%Simple.WithSelf.G.type.682 +// CHECK:STDOUT: %Simple.WithSelf.G => constants.%Simple.WithSelf.G.d0a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple.WithSelf.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.68d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c62 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple.WithSelf(constants.%Simple.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Simple.facet -// CHECK:STDOUT: %Simple.WithSelf.G.type => constants.%Simple.WithSelf.G.type.bfa -// CHECK:STDOUT: %Simple.WithSelf.G => constants.%Simple.WithSelf.G.5b5 +// CHECK:STDOUT: %Simple.WithSelf.G.type => constants.%Simple.WithSelf.G.type.780 +// CHECK:STDOUT: %Simple.WithSelf.G => constants.%Simple.WithSelf.G.dbb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple.WithSelf.G(constants.%Simple.facet) { // CHECK:STDOUT: %Self => constants.%Simple.facet // CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%i32 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.104 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6b6 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon b/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon index 2c8842b0f3f2..1f721177cc0e 100644 --- a/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon +++ b/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon @@ -33,10 +33,10 @@ class C { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %GenericInterface.type.f1b: type = generic_interface_type @GenericInterface [concrete] -// CHECK:STDOUT: %GenericInterface.generic: %GenericInterface.type.f1b = struct_value () [concrete] -// CHECK:STDOUT: %GenericInterface.type.a69: type = facet_type <@GenericInterface, @GenericInterface(%T)> [symbolic] -// CHECK:STDOUT: %Self: %GenericInterface.type.a69 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %GenericInterface.type.26e: type = generic_interface_type @GenericInterface [concrete] +// CHECK:STDOUT: %GenericInterface.generic: %GenericInterface.type.26e = struct_value () [concrete] +// CHECK:STDOUT: %GenericInterface.type.4e1: type = facet_type <@GenericInterface, @GenericInterface(%T)> [symbolic] +// CHECK:STDOUT: %Self: %GenericInterface.type.4e1 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] // CHECK:STDOUT: %GenericInterface.WithSelf.F.type: type = fn_type @GenericInterface.WithSelf.F, @GenericInterface.WithSelf(%T, %Self) [symbolic] // CHECK:STDOUT: %GenericInterface.WithSelf.F: %GenericInterface.WithSelf.F.type = struct_value () [symbolic] @@ -56,7 +56,7 @@ class C { // CHECK:STDOUT: .GenericInterface = %GenericInterface.decl // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %GenericInterface.decl: %GenericInterface.type.f1b = interface_decl @GenericInterface [concrete = constants.%GenericInterface.generic] { +// CHECK:STDOUT: %GenericInterface.decl: %GenericInterface.type.26e = interface_decl @GenericInterface [concrete = constants.%GenericInterface.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_32.1: type = splice_block %.loc15_32.2 [concrete = type] { @@ -72,11 +72,11 @@ class C { // CHECK:STDOUT: %T.loc15_29.1: type = symbolic_binding T, 0 [symbolic = %T.loc15_29.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericInterface.type: type = facet_type <@GenericInterface, @GenericInterface(%T.loc15_29.1)> [symbolic = %GenericInterface.type (constants.%GenericInterface.type.a69)] -// CHECK:STDOUT: %Self.loc15_38.2: @GenericInterface.%GenericInterface.type (%GenericInterface.type.a69) = symbolic_binding Self, 1 [symbolic = %Self.loc15_38.2 (constants.%Self)] +// CHECK:STDOUT: %GenericInterface.type: type = facet_type <@GenericInterface, @GenericInterface(%T.loc15_29.1)> [symbolic = %GenericInterface.type (constants.%GenericInterface.type.4e1)] +// CHECK:STDOUT: %Self.loc15_38.2: @GenericInterface.%GenericInterface.type (%GenericInterface.type.4e1) = symbolic_binding Self, 1 [symbolic = %Self.loc15_38.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc15_38.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.a69) = symbolic_binding Self, 1 [symbolic = %Self.loc15_38.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc15_38.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.4e1) = symbolic_binding Self, 1 [symbolic = %Self.loc15_38.2 (constants.%Self)] // CHECK:STDOUT: %GenericInterface.WithSelf.decl = interface_with_self_decl @GenericInterface [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -103,7 +103,7 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @C.as.GenericInterface.impl(%T.loc24_24.2: type) { // CHECK:STDOUT: %T.loc24_24.1: type = symbolic_binding T, 0 [symbolic = %T.loc24_24.1 (constants.%T)] -// CHECK:STDOUT: %GenericInterface.type.loc24_54.1: type = facet_type <@GenericInterface, @GenericInterface(%T.loc24_24.1)> [symbolic = %GenericInterface.type.loc24_54.1 (constants.%GenericInterface.type.a69)] +// CHECK:STDOUT: %GenericInterface.type.loc24_54.1: type = facet_type <@GenericInterface, @GenericInterface(%T.loc24_24.1)> [symbolic = %GenericInterface.type.loc24_54.1 (constants.%GenericInterface.type.4e1)] // CHECK:STDOUT: %GenericInterface.impl_witness.loc24_56.2: = impl_witness %GenericInterface.impl_witness_table, @C.as.GenericInterface.impl(%T.loc24_24.1) [symbolic = %GenericInterface.impl_witness.loc24_56.2 (constants.%GenericInterface.impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -135,9 +135,9 @@ class C { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] -// CHECK:STDOUT: %GenericInterface.ref: %GenericInterface.type.f1b = name_ref GenericInterface, file.%GenericInterface.decl [concrete = constants.%GenericInterface.generic] +// CHECK:STDOUT: %GenericInterface.ref: %GenericInterface.type.26e = name_ref GenericInterface, file.%GenericInterface.decl [concrete = constants.%GenericInterface.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc24_24.2 [symbolic = %T.loc24_24.1 (constants.%T)] -// CHECK:STDOUT: %GenericInterface.type.loc24_54.2: type = facet_type <@GenericInterface, @GenericInterface(constants.%T)> [symbolic = %GenericInterface.type.loc24_54.1 (constants.%GenericInterface.type.a69)] +// CHECK:STDOUT: %GenericInterface.type.loc24_54.2: type = facet_type <@GenericInterface, @GenericInterface(constants.%T)> [symbolic = %GenericInterface.type.loc24_54.1 (constants.%GenericInterface.type.4e1)] // CHECK:STDOUT: %.loc24_27.1: type = splice_block %.loc24_27.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc24_27.2: type = type_literal type [concrete = type] @@ -153,7 +153,7 @@ class C { // CHECK:STDOUT: has_error // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @GenericInterface.WithSelf.F(@GenericInterface.%T.loc15_29.2: type, @GenericInterface.%Self.loc15_38.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.a69)) { +// CHECK:STDOUT: generic fn @GenericInterface.WithSelf.F(@GenericInterface.%T.loc15_29.2: type, @GenericInterface.%Self.loc15_38.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.4e1)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.51d)] // CHECK:STDOUT: @@ -180,7 +180,7 @@ class C { // CHECK:STDOUT: specific @GenericInterface.WithSelf(constants.%T, constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %GenericInterface.type => constants.%GenericInterface.type.a69 +// CHECK:STDOUT: %GenericInterface.type => constants.%GenericInterface.type.4e1 // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %GenericInterface.WithSelf.F.type => constants.%GenericInterface.WithSelf.F.type // CHECK:STDOUT: %GenericInterface.WithSelf.F => constants.%GenericInterface.WithSelf.F @@ -195,7 +195,7 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.GenericInterface.impl(constants.%T) { // CHECK:STDOUT: %T.loc24_24.1 => constants.%T -// CHECK:STDOUT: %GenericInterface.type.loc24_54.1 => constants.%GenericInterface.type.a69 +// CHECK:STDOUT: %GenericInterface.type.loc24_54.1 => constants.%GenericInterface.type.4e1 // CHECK:STDOUT: %GenericInterface.impl_witness.loc24_56.2 => constants.%GenericInterface.impl_witness // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon b/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon index 792d51e53f2a..f6cb2bd1ab68 100644 --- a/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon +++ b/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon @@ -183,37 +183,37 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.91f: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Z.WithSelf.Zero.type.205: type = fn_type @Z.WithSelf.Zero, @Z.WithSelf(%Self.91f) [symbolic] +// CHECK:STDOUT: %Self.cb6: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Z.WithSelf.Zero.type.68b: type = fn_type @Z.WithSelf.Zero, @Z.WithSelf(%Self.cb6) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Z.WithSelf.Zero.b63: %Z.WithSelf.Zero.type.205 = struct_value () [symbolic] +// CHECK:STDOUT: %Z.WithSelf.Zero.087: %Z.WithSelf.Zero.type.68b = struct_value () [symbolic] // CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z [concrete] -// CHECK:STDOUT: %assoc0.c9a: %Z.assoc_type = assoc_entity element0, @Z.WithSelf.%Z.WithSelf.Zero.decl [concrete] -// CHECK:STDOUT: %.as.Z.impl.Zero.type: type = fn_type @.as.Z.impl.Zero, @.as.Z.impl(%Self.91f) [symbolic] +// CHECK:STDOUT: %assoc0.627: %Z.assoc_type = assoc_entity element0, @Z.WithSelf.%Z.WithSelf.Zero.decl [concrete] +// CHECK:STDOUT: %.as.Z.impl.Zero.type: type = fn_type @.as.Z.impl.Zero, @.as.Z.impl(%Self.cb6) [symbolic] // CHECK:STDOUT: %.as.Z.impl.Zero: %.as.Z.impl.Zero.type = struct_value () [symbolic] // CHECK:STDOUT: %Point: type = class_type @Point [concrete] // CHECK:STDOUT: %Z.impl_witness: = impl_witness @Point.as.Z.impl.%Z.impl_witness_table [concrete] // CHECK:STDOUT: %Point.as.Z.impl.Zero.type: type = fn_type @Point.as.Z.impl.Zero [concrete] // CHECK:STDOUT: %Point.as.Z.impl.Zero: %Point.as.Z.impl.Zero.type = struct_value () [concrete] // CHECK:STDOUT: %Z.facet: %Z.type = facet_value %Point, (%Z.impl_witness) [concrete] -// CHECK:STDOUT: %Z.WithSelf.Zero.type.840: type = fn_type @Z.WithSelf.Zero, @Z.WithSelf(%Z.facet) [concrete] -// CHECK:STDOUT: %Z.WithSelf.Zero.7a6: %Z.WithSelf.Zero.type.840 = struct_value () [concrete] +// CHECK:STDOUT: %Z.WithSelf.Zero.type.fb1: type = fn_type @Z.WithSelf.Zero, @Z.WithSelf(%Z.facet) [concrete] +// CHECK:STDOUT: %Z.WithSelf.Zero.5fb: %Z.WithSelf.Zero.type.fb1 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %Point.val: %Point = struct_value () [concrete] -// CHECK:STDOUT: %.27c: ref %Point = temporary invalid, %Point.val [concrete] +// CHECK:STDOUT: %.e6b: ref %Point = temporary invalid, %Point.val [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %Point.type.facet: %type = facet_value %Point, () [concrete] -// CHECK:STDOUT: %Z.WithSelf.Zero.type.63a: type = fn_type @Z.WithSelf.Zero, @Z.WithSelf(%Point.type.facet) [concrete] -// CHECK:STDOUT: %Z.WithSelf.Zero.777: %Z.WithSelf.Zero.type.63a = struct_value () [concrete] -// CHECK:STDOUT: %.a52: type = fn_type_with_self_type %Z.WithSelf.Zero.type.840, %Z.facet [concrete] +// CHECK:STDOUT: %Z.WithSelf.Zero.type.356: type = fn_type @Z.WithSelf.Zero, @Z.WithSelf(%Point.type.facet) [concrete] +// CHECK:STDOUT: %Z.WithSelf.Zero.237: %Z.WithSelf.Zero.type.356 = struct_value () [concrete] +// CHECK:STDOUT: %.d41: type = fn_type_with_self_type %Z.WithSelf.Zero.type.fb1, %Z.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc25_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.27c, %Destroy.Op.2dd605.2 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -239,12 +239,12 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.91f] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.cb6] // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Z.WithSelf.Zero.decl: @Z.WithSelf.%Z.WithSelf.Zero.type (%Z.WithSelf.Zero.type.205) = fn_decl @Z.WithSelf.Zero [symbolic = @Z.WithSelf.%Z.WithSelf.Zero (constants.%Z.WithSelf.Zero.b63)] {} {} -// CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, %Z.WithSelf.Zero.decl [concrete = constants.%assoc0.c9a] +// CHECK:STDOUT: %Z.WithSelf.Zero.decl: @Z.WithSelf.%Z.WithSelf.Zero.type (%Z.WithSelf.Zero.type.68b) = fn_decl @Z.WithSelf.Zero [symbolic = @Z.WithSelf.%Z.WithSelf.Zero (constants.%Z.WithSelf.Zero.087)] {} {} +// CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, %Z.WithSelf.Zero.decl [concrete = constants.%assoc0.627] // CHECK:STDOUT: impl_decl @.as.Z.impl [concrete] {} { // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: } @@ -261,7 +261,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @.as.Z.impl(@Z.%Self: %Z.type) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.91f)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.cb6)] // CHECK:STDOUT: %.as.Z.impl.Zero.type: type = fn_type @.as.Z.impl.Zero, @.as.Z.impl(%Self) [symbolic = %.as.Z.impl.Zero.type (constants.%.as.Z.impl.Zero.type)] // CHECK:STDOUT: %.as.Z.impl.Zero: @.as.Z.impl.%.as.Z.impl.Zero.type (%.as.Z.impl.Zero.type) = struct_value () [symbolic = %.as.Z.impl.Zero (constants.%.as.Z.impl.Zero)] // CHECK:STDOUT: @@ -326,11 +326,11 @@ fn F() { // CHECK:STDOUT: %.loc25_5.2: ref %Point = temporary_storage // CHECK:STDOUT: %.loc25_5.3: init %Point to %.loc25_5.2 = class_init () [concrete = constants.%Point.val] // CHECK:STDOUT: %.loc25_7.1: init %Point = converted %.loc25_5.1, %.loc25_5.3 [concrete = constants.%Point.val] -// CHECK:STDOUT: %.loc25_7.2: ref %Point = temporary %.loc25_5.2, %.loc25_7.1 [concrete = constants.%.27c] -// CHECK:STDOUT: %Zero.ref: %Z.assoc_type = name_ref Zero, @Z.WithSelf.%assoc0 [concrete = constants.%assoc0.c9a] -// CHECK:STDOUT: %impl.elem0: %.a52 = impl_witness_access constants.%Z.impl_witness, element0 [concrete = constants.%Point.as.Z.impl.Zero] +// CHECK:STDOUT: %.loc25_7.2: ref %Point = temporary %.loc25_5.2, %.loc25_7.1 [concrete = constants.%.e6b] +// CHECK:STDOUT: %Zero.ref: %Z.assoc_type = name_ref Zero, @Z.WithSelf.%assoc0 [concrete = constants.%assoc0.627] +// CHECK:STDOUT: %impl.elem0: %.d41 = 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.%.27c) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.e6b) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -341,29 +341,29 @@ fn F() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.91f) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.cb6) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.91f -// CHECK:STDOUT: %Z.WithSelf.Zero.type => constants.%Z.WithSelf.Zero.type.205 -// CHECK:STDOUT: %Z.WithSelf.Zero => constants.%Z.WithSelf.Zero.b63 +// CHECK:STDOUT: %Self => constants.%Self.cb6 +// CHECK:STDOUT: %Z.WithSelf.Zero.type => constants.%Z.WithSelf.Zero.type.68b +// CHECK:STDOUT: %Z.WithSelf.Zero => constants.%Z.WithSelf.Zero.087 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Zero(constants.%Self.91f) {} +// CHECK:STDOUT: specific @Z.WithSelf.Zero(constants.%Self.cb6) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @.as.Z.impl(constants.%Self.91f) { +// CHECK:STDOUT: specific @.as.Z.impl(constants.%Self.cb6) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.91f +// CHECK:STDOUT: %Self => constants.%Self.cb6 // CHECK:STDOUT: %.as.Z.impl.Zero.type => constants.%.as.Z.impl.Zero.type // CHECK:STDOUT: %.as.Z.impl.Zero => constants.%.as.Z.impl.Zero // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.as.Z.impl.Zero(constants.%Self.91f) {} +// CHECK:STDOUT: specific @.as.Z.impl.Zero(constants.%Self.cb6) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Z.facet -// CHECK:STDOUT: %Z.WithSelf.Zero.type => constants.%Z.WithSelf.Zero.type.840 -// CHECK:STDOUT: %Z.WithSelf.Zero => constants.%Z.WithSelf.Zero.7a6 +// CHECK:STDOUT: %Z.WithSelf.Zero.type => constants.%Z.WithSelf.Zero.type.fb1 +// CHECK:STDOUT: %Z.WithSelf.Zero => constants.%Z.WithSelf.Zero.5fb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.Zero(constants.%Z.facet) {} @@ -371,7 +371,7 @@ fn F() { // CHECK:STDOUT: specific @Z.WithSelf(constants.%Point.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Point.type.facet -// CHECK:STDOUT: %Z.WithSelf.Zero.type => constants.%Z.WithSelf.Zero.type.63a -// CHECK:STDOUT: %Z.WithSelf.Zero => constants.%Z.WithSelf.Zero.777 +// CHECK:STDOUT: %Z.WithSelf.Zero.type => constants.%Z.WithSelf.Zero.type.356 +// CHECK:STDOUT: %Z.WithSelf.Zero => constants.%Z.WithSelf.Zero.237 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_extend_impl_type_as.carbon b/toolchain/check/testdata/impl/fail_extend_impl_type_as.carbon index ae2517560b45..832ffd65b258 100644 --- a/toolchain/check/testdata/impl/fail_extend_impl_type_as.carbon +++ b/toolchain/check/testdata/impl/fail_extend_impl_type_as.carbon @@ -62,8 +62,8 @@ class E { // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %E: type = class_type @E [concrete] -// CHECK:STDOUT: %I.impl_witness.74a: = impl_witness @E.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %E, (%I.impl_witness.74a) [concrete] +// CHECK:STDOUT: %I.impl_witness.6e5: = impl_witness @E.as.I.impl.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %E, (%I.impl_witness.6e5) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -111,7 +111,7 @@ class E { // CHECK:STDOUT: // CHECK:STDOUT: impl @E.as.I.impl: %Self.ref as %I.ref { // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @E.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.74a] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.6e5] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %I.ref diff --git a/toolchain/check/testdata/impl/fail_impl_as_scope.carbon b/toolchain/check/testdata/impl/fail_impl_as_scope.carbon index 22f605231997..4721be6003d2 100644 --- a/toolchain/check/testdata/impl/fail_impl_as_scope.carbon +++ b/toolchain/check/testdata/impl/fail_impl_as_scope.carbon @@ -235,48 +235,48 @@ class X { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.91f: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Z.WithSelf.Zero.type.205: type = fn_type @Z.WithSelf.Zero, @Z.WithSelf(%Self.91f) [symbolic] +// CHECK:STDOUT: %Self.cb6: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Z.WithSelf.Zero.type.68b: type = fn_type @Z.WithSelf.Zero, @Z.WithSelf(%Self.cb6) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Z.WithSelf.Zero.b63: %Z.WithSelf.Zero.type.205 = struct_value () [symbolic] +// CHECK:STDOUT: %Z.WithSelf.Zero.087: %Z.WithSelf.Zero.type.68b = struct_value () [symbolic] // CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z [concrete] -// CHECK:STDOUT: %assoc0.c9a: %Z.assoc_type = assoc_entity element0, @Z.WithSelf.%Z.WithSelf.Zero.decl [concrete] -// CHECK:STDOUT: %Self.as_type.9c5: type = facet_access_type %Self.91f [symbolic] -// CHECK:STDOUT: %pattern_type.509: type = pattern_type %Self.as_type.9c5 [symbolic] -// CHECK:STDOUT: %Z.WithSelf.Method.type.d78: type = fn_type @Z.WithSelf.Method, @Z.WithSelf(%Self.91f) [symbolic] -// CHECK:STDOUT: %Z.WithSelf.Method.714: %Z.WithSelf.Method.type.d78 = struct_value () [symbolic] +// CHECK:STDOUT: %assoc0.627: %Z.assoc_type = assoc_entity element0, @Z.WithSelf.%Z.WithSelf.Zero.decl [concrete] +// CHECK:STDOUT: %Self.as_type.0cf: type = facet_access_type %Self.cb6 [symbolic] +// CHECK:STDOUT: %pattern_type.52a: type = pattern_type %Self.as_type.0cf [symbolic] +// CHECK:STDOUT: %Z.WithSelf.Method.type.d41: type = fn_type @Z.WithSelf.Method, @Z.WithSelf(%Self.cb6) [symbolic] +// CHECK:STDOUT: %Z.WithSelf.Method.ead: %Z.WithSelf.Method.type.d41 = struct_value () [symbolic] // CHECK:STDOUT: %assoc1: %Z.assoc_type = assoc_entity element1, @Z.WithSelf.%Z.WithSelf.Method.decl [concrete] -// CHECK:STDOUT: %.as.Z.impl.Zero.type: type = fn_type @.as.Z.impl.Zero, @.as.Z.impl(%Self.91f) [symbolic] +// CHECK:STDOUT: %.as.Z.impl.Zero.type: type = fn_type @.as.Z.impl.Zero, @.as.Z.impl(%Self.cb6) [symbolic] // CHECK:STDOUT: %.as.Z.impl.Zero: %.as.Z.impl.Zero.type = struct_value () [symbolic] -// CHECK:STDOUT: %.as.Z.impl.Method.type: type = fn_type @.as.Z.impl.Method, @.as.Z.impl(%Self.91f) [symbolic] +// CHECK:STDOUT: %.as.Z.impl.Method.type: type = fn_type @.as.Z.impl.Method, @.as.Z.impl(%Self.cb6) [symbolic] // CHECK:STDOUT: %.as.Z.impl.Method: %.as.Z.impl.Method.type = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.9c5 [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.0cf [symbolic] // CHECK:STDOUT: %Point: type = class_type @Point [concrete] // CHECK:STDOUT: %Z.impl_witness: = impl_witness @Point.as.Z.impl.%Z.impl_witness_table [concrete] // CHECK:STDOUT: %Point.as.Z.impl.Zero.type: type = fn_type @Point.as.Z.impl.Zero [concrete] // CHECK:STDOUT: %Point.as.Z.impl.Zero: %Point.as.Z.impl.Zero.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.208: type = pattern_type %Point [concrete] +// CHECK:STDOUT: %pattern_type.9d8: type = pattern_type %Point [concrete] // CHECK:STDOUT: %Point.as.Z.impl.Method.type: type = fn_type @Point.as.Z.impl.Method [concrete] // CHECK:STDOUT: %Point.as.Z.impl.Method: %Point.as.Z.impl.Method.type = struct_value () [concrete] // CHECK:STDOUT: %Z.facet: %Z.type = facet_value %Point, (%Z.impl_witness) [concrete] -// CHECK:STDOUT: %Z.WithSelf.Zero.type.2c0: type = fn_type @Z.WithSelf.Zero, @Z.WithSelf(%Z.facet) [concrete] -// CHECK:STDOUT: %Z.WithSelf.Zero.f72: %Z.WithSelf.Zero.type.2c0 = struct_value () [concrete] -// CHECK:STDOUT: %Z.WithSelf.Method.type.4ba: type = fn_type @Z.WithSelf.Method, @Z.WithSelf(%Z.facet) [concrete] -// CHECK:STDOUT: %Z.WithSelf.Method.bfb: %Z.WithSelf.Method.type.4ba = struct_value () [concrete] +// CHECK:STDOUT: %Z.WithSelf.Zero.type.d05: type = fn_type @Z.WithSelf.Zero, @Z.WithSelf(%Z.facet) [concrete] +// CHECK:STDOUT: %Z.WithSelf.Zero.0d2: %Z.WithSelf.Zero.type.d05 = struct_value () [concrete] +// CHECK:STDOUT: %Z.WithSelf.Method.type.de2: type = fn_type @Z.WithSelf.Method, @Z.WithSelf(%Z.facet) [concrete] +// CHECK:STDOUT: %Z.WithSelf.Method.683: %Z.WithSelf.Method.type.de2 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %.bc2: type = fn_type_with_self_type %Z.WithSelf.Zero.type.2c0, %Z.facet [concrete] +// CHECK:STDOUT: %.1fe: type = fn_type_with_self_type %Z.WithSelf.Zero.type.d05, %Z.facet [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %Point.val: %Point = struct_value () [concrete] -// CHECK:STDOUT: %.5cf: type = fn_type_with_self_type %Z.WithSelf.Method.type.4ba, %Z.facet [concrete] +// CHECK:STDOUT: %.f5a: type = fn_type_with_self_type %Z.WithSelf.Method.type.de2, %Z.facet [concrete] // CHECK:STDOUT: %Point.as.Z.impl.Method.bound: = bound_method %Point.val, %Point.as.Z.impl.Method [concrete] -// CHECK:STDOUT: %.27c: ref %Point = temporary invalid, %Point.val [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.790b3b.2: type = fn_type @Destroy.Op.loc29_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.27c, %Destroy.Op.2dd605.2 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -302,23 +302,23 @@ class X { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.91f] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.cb6] // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Z.WithSelf.Zero.decl: @Z.WithSelf.%Z.WithSelf.Zero.type (%Z.WithSelf.Zero.type.205) = fn_decl @Z.WithSelf.Zero [symbolic = @Z.WithSelf.%Z.WithSelf.Zero (constants.%Z.WithSelf.Zero.b63)] {} {} -// CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, %Z.WithSelf.Zero.decl [concrete = constants.%assoc0.c9a] -// CHECK:STDOUT: %Z.WithSelf.Method.decl: @Z.WithSelf.%Z.WithSelf.Method.type (%Z.WithSelf.Method.type.d78) = fn_decl @Z.WithSelf.Method [symbolic = @Z.WithSelf.%Z.WithSelf.Method (constants.%Z.WithSelf.Method.714)] { -// CHECK:STDOUT: %self.param_patt: @Z.WithSelf.Method.%pattern_type (%pattern_type.509) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Z.WithSelf.Method.%pattern_type (%pattern_type.509) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %Z.WithSelf.Zero.decl: @Z.WithSelf.%Z.WithSelf.Zero.type (%Z.WithSelf.Zero.type.68b) = fn_decl @Z.WithSelf.Zero [symbolic = @Z.WithSelf.%Z.WithSelf.Zero (constants.%Z.WithSelf.Zero.087)] {} {} +// CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, %Z.WithSelf.Zero.decl [concrete = constants.%assoc0.627] +// CHECK:STDOUT: %Z.WithSelf.Method.decl: @Z.WithSelf.%Z.WithSelf.Method.type (%Z.WithSelf.Method.type.d41) = fn_decl @Z.WithSelf.Method [symbolic = @Z.WithSelf.%Z.WithSelf.Method (constants.%Z.WithSelf.Method.ead)] { +// CHECK:STDOUT: %self.param_patt: @Z.WithSelf.Method.%pattern_type (%pattern_type.52a) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Z.WithSelf.Method.%pattern_type (%pattern_type.52a) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Z.WithSelf.Method.%Self.as_type.loc5_19.1 (%Self.as_type.9c5) = value_param call_param0 -// CHECK:STDOUT: %.loc5_19.1: type = splice_block %.loc5_19.2 [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.9c5)] { -// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.91f)] -// CHECK:STDOUT: %Self.as_type.loc5_19.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.9c5)] -// CHECK:STDOUT: %.loc5_19.2: type = converted %Self.ref, %Self.as_type.loc5_19.2 [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.9c5)] +// CHECK:STDOUT: %self.param: @Z.WithSelf.Method.%Self.as_type.loc5_19.1 (%Self.as_type.0cf) = value_param call_param0 +// CHECK:STDOUT: %.loc5_19.1: type = splice_block %.loc5_19.2 [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.0cf)] { +// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.cb6)] +// CHECK:STDOUT: %Self.as_type.loc5_19.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.0cf)] +// CHECK:STDOUT: %.loc5_19.2: type = converted %Self.ref, %Self.as_type.loc5_19.2 [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.0cf)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Z.WithSelf.Method.%Self.as_type.loc5_19.1 (%Self.as_type.9c5) = value_binding self, %self.param +// CHECK:STDOUT: %self: @Z.WithSelf.Method.%Self.as_type.loc5_19.1 (%Self.as_type.0cf) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %Z.assoc_type = assoc_entity element1, %Z.WithSelf.Method.decl [concrete = constants.%assoc1] // CHECK:STDOUT: impl_decl @.as.Z.impl [concrete] {} { @@ -338,7 +338,7 @@ class X { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @.as.Z.impl(@Z.%Self: %Z.type) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.91f)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.cb6)] // CHECK:STDOUT: %.as.Z.impl.Zero.type: type = fn_type @.as.Z.impl.Zero, @.as.Z.impl(%Self) [symbolic = %.as.Z.impl.Zero.type (constants.%.as.Z.impl.Zero.type)] // CHECK:STDOUT: %.as.Z.impl.Zero: @.as.Z.impl.%.as.Z.impl.Zero.type (%.as.Z.impl.Zero.type) = struct_value () [symbolic = %.as.Z.impl.Zero (constants.%.as.Z.impl.Zero)] // CHECK:STDOUT: %.as.Z.impl.Method.type: type = fn_type @.as.Z.impl.Method, @.as.Z.impl(%Self) [symbolic = %.as.Z.impl.Method.type (constants.%.as.Z.impl.Method.type)] @@ -347,16 +347,16 @@ class X { // CHECK:STDOUT: impl: as %Z.ref { // CHECK:STDOUT: %.as.Z.impl.Zero.decl: @.as.Z.impl.%.as.Z.impl.Zero.type (%.as.Z.impl.Zero.type) = fn_decl @.as.Z.impl.Zero [symbolic = @.as.Z.impl.%.as.Z.impl.Zero (constants.%.as.Z.impl.Zero)] {} {} // CHECK:STDOUT: %.as.Z.impl.Method.decl: @.as.Z.impl.%.as.Z.impl.Method.type (%.as.Z.impl.Method.type) = fn_decl @.as.Z.impl.Method [symbolic = @.as.Z.impl.%.as.Z.impl.Method (constants.%.as.Z.impl.Method)] { -// CHECK:STDOUT: %self.param_patt: @.as.Z.impl.Method.%pattern_type (%pattern_type.509) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @.as.Z.impl.Method.%pattern_type (%pattern_type.509) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @.as.Z.impl.Method.%pattern_type (%pattern_type.52a) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @.as.Z.impl.Method.%pattern_type (%pattern_type.52a) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @.as.Z.impl.Method.%Self.as_type.loc13_28.1 (%Self.as_type.9c5) = value_param call_param0 -// CHECK:STDOUT: %.loc13_28.1: type = splice_block %.loc13_28.2 [symbolic = %Self.as_type.loc13_28.1 (constants.%Self.as_type.9c5)] { -// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.91f)] -// CHECK:STDOUT: %Self.as_type.loc13_28.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc13_28.1 (constants.%Self.as_type.9c5)] -// CHECK:STDOUT: %.loc13_28.2: type = converted %Self.ref, %Self.as_type.loc13_28.2 [symbolic = %Self.as_type.loc13_28.1 (constants.%Self.as_type.9c5)] +// CHECK:STDOUT: %self.param: @.as.Z.impl.Method.%Self.as_type.loc13_28.1 (%Self.as_type.0cf) = value_param call_param0 +// CHECK:STDOUT: %.loc13_28.1: type = splice_block %.loc13_28.2 [symbolic = %Self.as_type.loc13_28.1 (constants.%Self.as_type.0cf)] { +// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.cb6)] +// CHECK:STDOUT: %Self.as_type.loc13_28.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc13_28.1 (constants.%Self.as_type.0cf)] +// CHECK:STDOUT: %.loc13_28.2: type = converted %Self.ref, %Self.as_type.loc13_28.2 [symbolic = %Self.as_type.loc13_28.1 (constants.%Self.as_type.0cf)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @.as.Z.impl.Method.%Self.as_type.loc13_28.1 (%Self.as_type.9c5) = value_binding self, %self.param +// CHECK:STDOUT: %self: @.as.Z.impl.Method.%Self.as_type.loc13_28.1 (%Self.as_type.0cf) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -370,8 +370,8 @@ class X { // CHECK:STDOUT: impl @Point.as.Z.impl: %Self.ref as %Z.ref { // CHECK:STDOUT: %Point.as.Z.impl.Zero.decl: %Point.as.Z.impl.Zero.type = fn_decl @Point.as.Z.impl.Zero [concrete = constants.%Point.as.Z.impl.Zero] {} {} // CHECK:STDOUT: %Point.as.Z.impl.Method.decl: %Point.as.Z.impl.Method.type = fn_decl @Point.as.Z.impl.Method [concrete = constants.%Point.as.Z.impl.Method] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.208 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.208 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9d8 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9d8 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %Point = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Point [concrete = constants.%Point] @@ -405,11 +405,11 @@ class X { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Z.WithSelf.Method(@Z.%Self: %Z.type) { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.91f)] -// CHECK:STDOUT: %Self.as_type.loc5_19.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.9c5)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_19.1 [symbolic = %pattern_type (constants.%pattern_type.509)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.cb6)] +// CHECK:STDOUT: %Self.as_type.loc5_19.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.0cf)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_19.1 [symbolic = %pattern_type (constants.%pattern_type.52a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Z.WithSelf.Method.%Self.as_type.loc5_19.1 (%Self.as_type.9c5)); +// CHECK:STDOUT: fn(%self.param: @Z.WithSelf.Method.%Self.as_type.loc5_19.1 (%Self.as_type.0cf)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @.as.Z.impl.Zero(@Z.%Self: %Z.type) { @@ -422,14 +422,14 @@ class X { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @.as.Z.impl.Method(@Z.%Self: %Z.type) { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.91f)] -// CHECK:STDOUT: %Self.as_type.loc13_28.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc13_28.1 (constants.%Self.as_type.9c5)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc13_28.1 [symbolic = %pattern_type (constants.%pattern_type.509)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.cb6)] +// CHECK:STDOUT: %Self.as_type.loc13_28.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc13_28.1 (constants.%Self.as_type.0cf)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc13_28.1 [symbolic = %pattern_type (constants.%pattern_type.52a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc13_28.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @.as.Z.impl.Method.%Self.as_type.loc13_28.1 (%Self.as_type.9c5)) { +// CHECK:STDOUT: fn(%self.param: @.as.Z.impl.Method.%Self.as_type.loc13_28.1 (%Self.as_type.0cf)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -449,10 +449,10 @@ class X { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Point.ref.loc28: type = name_ref Point, file.%Point.decl [concrete = constants.%Point] // CHECK:STDOUT: %Z.ref.loc28: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] -// CHECK:STDOUT: %Zero.ref: %Z.assoc_type = name_ref Zero, @Z.WithSelf.%assoc0 [concrete = constants.%assoc0.c9a] +// CHECK:STDOUT: %Zero.ref: %Z.assoc_type = name_ref Zero, @Z.WithSelf.%assoc0 [concrete = constants.%assoc0.627] // CHECK:STDOUT: %Z.facet: %Z.type = facet_value %Point.ref.loc28, (constants.%Z.impl_witness) [concrete = constants.%Z.facet] // CHECK:STDOUT: %.loc28: %Z.type = converted %Point.ref.loc28, %Z.facet [concrete = constants.%Z.facet] -// CHECK:STDOUT: %impl.elem0: %.bc2 = impl_witness_access constants.%Z.impl_witness, element0 [concrete = constants.%Point.as.Z.impl.Zero] +// CHECK:STDOUT: %impl.elem0: %.1fe = 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: %.loc29_5.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %Point.ref.loc29: type = name_ref Point, file.%Point.decl [concrete = constants.%Point] @@ -461,12 +461,12 @@ class X { // CHECK:STDOUT: %.loc29_7.1: init %Point = converted %.loc29_5.1, %.loc29_5.3 [concrete = constants.%Point.val] // CHECK:STDOUT: %Z.ref.loc29: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: %Method.ref: %Z.assoc_type = name_ref Method, @Z.WithSelf.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %impl.elem1: %.5cf = impl_witness_access constants.%Z.impl_witness, element1 [concrete = constants.%Point.as.Z.impl.Method] +// CHECK:STDOUT: %impl.elem1: %.f5a = impl_witness_access constants.%Z.impl_witness, element1 [concrete = constants.%Point.as.Z.impl.Method] // CHECK:STDOUT: %bound_method: = bound_method %.loc29_7.1, %impl.elem1 [concrete = constants.%Point.as.Z.impl.Method.bound] -// CHECK:STDOUT: %.loc29_7.2: ref %Point = temporary %.loc29_5.2, %.loc29_7.1 [concrete = constants.%.27c] +// 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.%.27c) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.e6b) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -477,47 +477,47 @@ class X { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.91f) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.cb6) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.91f -// CHECK:STDOUT: %Z.WithSelf.Zero.type => constants.%Z.WithSelf.Zero.type.205 -// CHECK:STDOUT: %Z.WithSelf.Zero => constants.%Z.WithSelf.Zero.b63 -// CHECK:STDOUT: %Z.WithSelf.Method.type => constants.%Z.WithSelf.Method.type.d78 -// CHECK:STDOUT: %Z.WithSelf.Method => constants.%Z.WithSelf.Method.714 +// CHECK:STDOUT: %Self => constants.%Self.cb6 +// CHECK:STDOUT: %Z.WithSelf.Zero.type => constants.%Z.WithSelf.Zero.type.68b +// CHECK:STDOUT: %Z.WithSelf.Zero => constants.%Z.WithSelf.Zero.087 +// CHECK:STDOUT: %Z.WithSelf.Method.type => constants.%Z.WithSelf.Method.type.d41 +// CHECK:STDOUT: %Z.WithSelf.Method => constants.%Z.WithSelf.Method.ead // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Zero(constants.%Self.91f) {} +// CHECK:STDOUT: specific @Z.WithSelf.Zero(constants.%Self.cb6) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Method(constants.%Self.91f) { -// CHECK:STDOUT: %Self => constants.%Self.91f -// CHECK:STDOUT: %Self.as_type.loc5_19.1 => constants.%Self.as_type.9c5 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.509 +// CHECK:STDOUT: specific @Z.WithSelf.Method(constants.%Self.cb6) { +// CHECK:STDOUT: %Self => constants.%Self.cb6 +// CHECK:STDOUT: %Self.as_type.loc5_19.1 => constants.%Self.as_type.0cf +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.52a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.as.Z.impl(constants.%Self.91f) { +// CHECK:STDOUT: specific @.as.Z.impl(constants.%Self.cb6) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.91f +// CHECK:STDOUT: %Self => constants.%Self.cb6 // CHECK:STDOUT: %.as.Z.impl.Zero.type => constants.%.as.Z.impl.Zero.type // CHECK:STDOUT: %.as.Z.impl.Zero => constants.%.as.Z.impl.Zero // CHECK:STDOUT: %.as.Z.impl.Method.type => constants.%.as.Z.impl.Method.type // CHECK:STDOUT: %.as.Z.impl.Method => constants.%.as.Z.impl.Method // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.as.Z.impl.Zero(constants.%Self.91f) {} +// CHECK:STDOUT: specific @.as.Z.impl.Zero(constants.%Self.cb6) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @.as.Z.impl.Method(constants.%Self.91f) { -// CHECK:STDOUT: %Self => constants.%Self.91f -// CHECK:STDOUT: %Self.as_type.loc13_28.1 => constants.%Self.as_type.9c5 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.509 +// CHECK:STDOUT: specific @.as.Z.impl.Method(constants.%Self.cb6) { +// CHECK:STDOUT: %Self => constants.%Self.cb6 +// CHECK:STDOUT: %Self.as_type.loc13_28.1 => constants.%Self.as_type.0cf +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.52a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Z.facet -// CHECK:STDOUT: %Z.WithSelf.Zero.type => constants.%Z.WithSelf.Zero.type.2c0 -// CHECK:STDOUT: %Z.WithSelf.Zero => constants.%Z.WithSelf.Zero.f72 -// CHECK:STDOUT: %Z.WithSelf.Method.type => constants.%Z.WithSelf.Method.type.4ba -// CHECK:STDOUT: %Z.WithSelf.Method => constants.%Z.WithSelf.Method.bfb +// CHECK:STDOUT: %Z.WithSelf.Zero.type => constants.%Z.WithSelf.Zero.type.d05 +// CHECK:STDOUT: %Z.WithSelf.Zero => constants.%Z.WithSelf.Zero.0d2 +// CHECK:STDOUT: %Z.WithSelf.Method.type => constants.%Z.WithSelf.Method.type.de2 +// CHECK:STDOUT: %Z.WithSelf.Method => constants.%Z.WithSelf.Method.683 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.Zero(constants.%Z.facet) {} @@ -525,21 +525,21 @@ class X { // CHECK:STDOUT: specific @Z.WithSelf.Method(constants.%Z.facet) { // CHECK:STDOUT: %Self => constants.%Z.facet // CHECK:STDOUT: %Self.as_type.loc5_19.1 => constants.%Point -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.208 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9d8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_impl_as_other_interface.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %A.type: type = facet_type <@A> [concrete] -// CHECK:STDOUT: %Self.2fc: %A.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %A.WithSelf.B.type.fb9: type = fn_type @A.WithSelf.B, @A.WithSelf(%Self.2fc) [symbolic] +// CHECK:STDOUT: %Self.d0c: %A.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %A.WithSelf.B.type.ab5: type = fn_type @A.WithSelf.B, @A.WithSelf(%Self.d0c) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %A.WithSelf.B.4f3: %A.WithSelf.B.type.fb9 = struct_value () [symbolic] +// CHECK:STDOUT: %A.WithSelf.B.a0b: %A.WithSelf.B.type.ab5 = struct_value () [symbolic] // CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A [concrete] // CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, @A.WithSelf.%A.WithSelf.B.decl [concrete] // CHECK:STDOUT: %C.type: type = facet_type <@C> [concrete] -// CHECK:STDOUT: %Self.c55: %C.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.62a: %C.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %X: type = class_type @X [concrete] @@ -547,8 +547,8 @@ class X { // CHECK:STDOUT: %X.as.A.impl.B.type: type = fn_type @X.as.A.impl.B [concrete] // CHECK:STDOUT: %X.as.A.impl.B: %X.as.A.impl.B.type = struct_value () [concrete] // CHECK:STDOUT: %A.facet: %A.type = facet_value %X, (%A.impl_witness) [concrete] -// CHECK:STDOUT: %A.WithSelf.B.type.036: type = fn_type @A.WithSelf.B, @A.WithSelf(%A.facet) [concrete] -// CHECK:STDOUT: %A.WithSelf.B.c6d: %A.WithSelf.B.type.036 = struct_value () [concrete] +// CHECK:STDOUT: %A.WithSelf.B.type.d09: type = fn_type @A.WithSelf.B, @A.WithSelf(%A.facet) [concrete] +// CHECK:STDOUT: %A.WithSelf.B.e21: %A.WithSelf.B.type.d09 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -576,11 +576,11 @@ class X { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @A { -// CHECK:STDOUT: %Self: %A.type = symbolic_binding Self, 0 [symbolic = constants.%Self.2fc] +// CHECK:STDOUT: %Self: %A.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d0c] // CHECK:STDOUT: %A.WithSelf.decl = interface_with_self_decl @A [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %A.WithSelf.B.decl: @A.WithSelf.%A.WithSelf.B.type (%A.WithSelf.B.type.fb9) = fn_decl @A.WithSelf.B [symbolic = @A.WithSelf.%A.WithSelf.B (constants.%A.WithSelf.B.4f3)] {} {} +// CHECK:STDOUT: %A.WithSelf.B.decl: @A.WithSelf.%A.WithSelf.B.type (%A.WithSelf.B.type.ab5) = fn_decl @A.WithSelf.B [symbolic = @A.WithSelf.%A.WithSelf.B (constants.%A.WithSelf.B.a0b)] {} {} // CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, %A.WithSelf.B.decl [concrete = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -594,7 +594,7 @@ class X { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @C { -// CHECK:STDOUT: %Self: %C.type = symbolic_binding Self, 0 [symbolic = constants.%Self.c55] +// CHECK:STDOUT: %Self: %C.type = symbolic_binding Self, 0 [symbolic = constants.%Self.62a] // CHECK:STDOUT: %C.WithSelf.decl = interface_with_self_decl @C [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -657,22 +657,22 @@ class X { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%Self.2fc) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%Self.d0c) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.2fc -// CHECK:STDOUT: %A.WithSelf.B.type => constants.%A.WithSelf.B.type.fb9 -// CHECK:STDOUT: %A.WithSelf.B => constants.%A.WithSelf.B.4f3 +// CHECK:STDOUT: %Self => constants.%Self.d0c +// CHECK:STDOUT: %A.WithSelf.B.type => constants.%A.WithSelf.B.type.ab5 +// CHECK:STDOUT: %A.WithSelf.B => constants.%A.WithSelf.B.a0b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.B(constants.%Self.2fc) {} +// CHECK:STDOUT: specific @A.WithSelf.B(constants.%Self.d0c) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.WithSelf(constants.%Self.c55) {} +// CHECK:STDOUT: specific @C.WithSelf(constants.%Self.62a) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf(constants.%A.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%A.facet -// CHECK:STDOUT: %A.WithSelf.B.type => constants.%A.WithSelf.B.type.036 -// CHECK:STDOUT: %A.WithSelf.B => constants.%A.WithSelf.B.c6d +// CHECK:STDOUT: %A.WithSelf.B.type => constants.%A.WithSelf.B.type.d09 +// CHECK:STDOUT: %A.WithSelf.B => constants.%A.WithSelf.B.e21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf.B(constants.%A.facet) {} diff --git a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon index acf4b2ec4f25..ad0196157f51 100644 --- a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon +++ b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon @@ -244,187 +244,187 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.d9f: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.179) [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.dcc: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.37e) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %I.WithSelf.F.592: %I.WithSelf.F.type.d9f = struct_value () [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ec6: %I.WithSelf.F.type.dcc = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.8fc: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %assoc0.6c9: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] // CHECK:STDOUT: %NoF: type = class_type @NoF [concrete] -// CHECK:STDOUT: %I.impl_witness.57b: = impl_witness @NoF.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %I.facet.a48: %I.type = facet_value %NoF, (%I.impl_witness.57b) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.296: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.a48) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.754: %I.WithSelf.F.type.296 = struct_value () [concrete] +// CHECK:STDOUT: %I.impl_witness.85e: = impl_witness @NoF.as.I.impl.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I.facet.752: %I.type = facet_value %NoF, (%I.impl_witness.85e) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.3d3: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.752) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.38a: %I.WithSelf.F.type.3d3 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %FNotFunction: type = class_type @FNotFunction [concrete] -// CHECK:STDOUT: %I.impl_witness.8c4: = impl_witness @FNotFunction.as.I.impl.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I.impl_witness.b51: = impl_witness @FNotFunction.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %F: type = class_type @F [concrete] -// CHECK:STDOUT: %I.facet.716: %I.type = facet_value %FNotFunction, (%I.impl_witness.8c4) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.694: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.716) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.ab7: %I.WithSelf.F.type.694 = struct_value () [concrete] +// CHECK:STDOUT: %I.facet.010: %I.type = facet_value %FNotFunction, (%I.impl_witness.b51) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.642: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.010) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.c29: %I.WithSelf.F.type.642 = struct_value () [concrete] // CHECK:STDOUT: %PossiblyF.type: type = fn_type @PossiblyF [concrete] // CHECK:STDOUT: %PossiblyF: %PossiblyF.type = struct_value () [concrete] // CHECK:STDOUT: %FAlias: type = class_type @FAlias [concrete] -// CHECK:STDOUT: %I.impl_witness.414: = impl_witness @FAlias.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %I.facet.afb: %I.type = facet_value %FAlias, (%I.impl_witness.414) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.b03: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.afb) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.6ef: %I.WithSelf.F.type.b03 = struct_value () [concrete] +// CHECK:STDOUT: %I.impl_witness.e2e: = impl_witness @FAlias.as.I.impl.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I.facet.f6f: %I.type = facet_value %FAlias, (%I.impl_witness.e2e) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.751: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.f6f) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.6d6: %I.WithSelf.F.type.751 = struct_value () [concrete] // CHECK:STDOUT: %FExtraParam: type = class_type @FExtraParam [concrete] -// CHECK:STDOUT: %I.impl_witness.c88: = impl_witness @FExtraParam.as.I.impl.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I.impl_witness.99e: = impl_witness @FExtraParam.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] -// CHECK:STDOUT: %FExtraParam.as.I.impl.F.type.e67c7d.1: type = fn_type @FExtraParam.as.I.impl.F.loc69_18.1 [concrete] -// CHECK:STDOUT: %FExtraParam.as.I.impl.F.9ec29e.1: %FExtraParam.as.I.impl.F.type.e67c7d.1 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet.c30: %I.type = facet_value %FExtraParam, (%I.impl_witness.c88) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.5de: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.c30) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.9a8: %I.WithSelf.F.type.5de = struct_value () [concrete] -// CHECK:STDOUT: %FExtraParam.as.I.impl.F.type.e67c7d.2: type = fn_type @FExtraParam.as.I.impl.F.loc69_18.2 [concrete] -// CHECK:STDOUT: %FExtraParam.as.I.impl.F.9ec29e.2: %FExtraParam.as.I.impl.F.type.e67c7d.2 = struct_value () [concrete] +// CHECK:STDOUT: %FExtraParam.as.I.impl.F.type.ec7b0b.1: type = fn_type @FExtraParam.as.I.impl.F.loc69_18.1 [concrete] +// CHECK:STDOUT: %FExtraParam.as.I.impl.F.ef9801.1: %FExtraParam.as.I.impl.F.type.ec7b0b.1 = struct_value () [concrete] +// CHECK:STDOUT: %I.facet.657: %I.type = facet_value %FExtraParam, (%I.impl_witness.99e) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.255: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.657) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.fc1: %I.WithSelf.F.type.255 = struct_value () [concrete] +// CHECK:STDOUT: %FExtraParam.as.I.impl.F.type.ec7b0b.2: type = fn_type @FExtraParam.as.I.impl.F.loc69_18.2 [concrete] +// CHECK:STDOUT: %FExtraParam.as.I.impl.F.ef9801.2: %FExtraParam.as.I.impl.F.type.ec7b0b.2 = struct_value () [concrete] // CHECK:STDOUT: %FExtraImplicitParam: type = class_type @FExtraImplicitParam [concrete] -// CHECK:STDOUT: %I.impl_witness.67e: = impl_witness @FExtraImplicitParam.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.4f8: type = pattern_type %FExtraImplicitParam [concrete] -// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.type.182ef7.1: type = fn_type @FExtraImplicitParam.as.I.impl.F.loc85_23.1 [concrete] -// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.db022d.1: %FExtraImplicitParam.as.I.impl.F.type.182ef7.1 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet.0d6: %I.type = facet_value %FExtraImplicitParam, (%I.impl_witness.67e) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.fe1: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.0d6) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.fc9: %I.WithSelf.F.type.fe1 = struct_value () [concrete] -// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.type.182ef7.2: type = fn_type @FExtraImplicitParam.as.I.impl.F.loc85_23.2 [concrete] -// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.db022d.2: %FExtraImplicitParam.as.I.impl.F.type.182ef7.2 = struct_value () [concrete] +// CHECK:STDOUT: %I.impl_witness.2da: = impl_witness @FExtraImplicitParam.as.I.impl.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %pattern_type.54d: type = pattern_type %FExtraImplicitParam [concrete] +// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.type.54cac2.1: type = fn_type @FExtraImplicitParam.as.I.impl.F.loc85_23.1 [concrete] +// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.a42f35.1: %FExtraImplicitParam.as.I.impl.F.type.54cac2.1 = struct_value () [concrete] +// CHECK:STDOUT: %I.facet.334: %I.type = facet_value %FExtraImplicitParam, (%I.impl_witness.2da) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.6ff: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.334) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.39e: %I.WithSelf.F.type.6ff = struct_value () [concrete] +// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.type.54cac2.2: type = fn_type @FExtraImplicitParam.as.I.impl.F.loc85_23.2 [concrete] +// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.a42f35.2: %FExtraImplicitParam.as.I.impl.F.type.54cac2.2 = struct_value () [concrete] // CHECK:STDOUT: %FExtraReturnType: type = class_type @FExtraReturnType [concrete] -// CHECK:STDOUT: %I.impl_witness.45f: = impl_witness @FExtraReturnType.as.I.impl.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I.impl_witness.b63: = impl_witness @FExtraReturnType.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %.f34: Core.Form = init_form bool [concrete] // CHECK:STDOUT: %FExtraReturnType.as.I.impl.F.type: type = fn_type @FExtraReturnType.as.I.impl.F [concrete] // CHECK:STDOUT: %FExtraReturnType.as.I.impl.F: %FExtraReturnType.as.I.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %I.facet.436: %I.type = facet_value %FExtraReturnType, (%I.impl_witness.45f) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.ce0: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.436) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.037: %I.WithSelf.F.type.ce0 = struct_value () [concrete] +// CHECK:STDOUT: %I.facet.dde: %I.type = facet_value %FExtraReturnType, (%I.impl_witness.b63) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.fea: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.dde) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.338: %I.WithSelf.F.type.fea = struct_value () [concrete] // CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete] -// CHECK:STDOUT: %Self.fd8: %J.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %J.WithSelf.F.type.37c: type = fn_type @J.WithSelf.F, @J.WithSelf(%Self.fd8) [symbolic] -// CHECK:STDOUT: %J.WithSelf.F.acf: %J.WithSelf.F.type.37c = struct_value () [symbolic] +// CHECK:STDOUT: %Self.653: %J.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %J.WithSelf.F.type.a0a: type = fn_type @J.WithSelf.F, @J.WithSelf(%Self.653) [symbolic] +// CHECK:STDOUT: %J.WithSelf.F.f69: %J.WithSelf.F.type.a0a = struct_value () [symbolic] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] -// CHECK:STDOUT: %assoc0.ba5: %J.assoc_type = assoc_entity element0, @J.WithSelf.%J.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %assoc0.000: %J.assoc_type = assoc_entity element0, @J.WithSelf.%J.WithSelf.F.decl [concrete] // CHECK:STDOUT: %FMissingParam: type = class_type @FMissingParam [concrete] -// CHECK:STDOUT: %J.impl_witness.fb1: = impl_witness @FMissingParam.as.J.impl.%J.impl_witness_table [concrete] -// CHECK:STDOUT: %FMissingParam.as.J.impl.F.type.bba3a3.1: type = fn_type @FMissingParam.as.J.impl.F.loc117_31.1 [concrete] -// CHECK:STDOUT: %FMissingParam.as.J.impl.F.c0814c.1: %FMissingParam.as.J.impl.F.type.bba3a3.1 = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.55f: %J.type = facet_value %FMissingParam, (%J.impl_witness.fb1) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.type.fca: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.55f) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.021: %J.WithSelf.F.type.fca = struct_value () [concrete] -// CHECK:STDOUT: %FMissingParam.as.J.impl.F.type.bba3a3.2: type = fn_type @FMissingParam.as.J.impl.F.loc117_31.2 [concrete] -// CHECK:STDOUT: %FMissingParam.as.J.impl.F.c0814c.2: %FMissingParam.as.J.impl.F.type.bba3a3.2 = struct_value () [concrete] +// CHECK:STDOUT: %J.impl_witness.a34: = impl_witness @FMissingParam.as.J.impl.%J.impl_witness_table [concrete] +// CHECK:STDOUT: %FMissingParam.as.J.impl.F.type.aad6ec.1: type = fn_type @FMissingParam.as.J.impl.F.loc117_31.1 [concrete] +// CHECK:STDOUT: %FMissingParam.as.J.impl.F.dd09dc.1: %FMissingParam.as.J.impl.F.type.aad6ec.1 = struct_value () [concrete] +// CHECK:STDOUT: %J.facet.d77: %J.type = facet_value %FMissingParam, (%J.impl_witness.a34) [concrete] +// CHECK:STDOUT: %J.WithSelf.F.type.51b: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.d77) [concrete] +// CHECK:STDOUT: %J.WithSelf.F.ed6: %J.WithSelf.F.type.51b = struct_value () [concrete] +// CHECK:STDOUT: %FMissingParam.as.J.impl.F.type.aad6ec.2: type = fn_type @FMissingParam.as.J.impl.F.loc117_31.2 [concrete] +// CHECK:STDOUT: %FMissingParam.as.J.impl.F.dd09dc.2: %FMissingParam.as.J.impl.F.type.aad6ec.2 = struct_value () [concrete] // CHECK:STDOUT: %FMissingImplicitParam: type = class_type @FMissingImplicitParam [concrete] -// CHECK:STDOUT: %J.impl_witness.22f: = impl_witness @FMissingImplicitParam.as.J.impl.%J.impl_witness_table [concrete] -// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.type.201eb4.1: type = fn_type @FMissingImplicitParam.as.J.impl.F.loc130_26.1 [concrete] -// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.8b207a.1: %FMissingImplicitParam.as.J.impl.F.type.201eb4.1 = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.a37: %J.type = facet_value %FMissingImplicitParam, (%J.impl_witness.22f) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.type.2c3: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.a37) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.0cf: %J.WithSelf.F.type.2c3 = struct_value () [concrete] -// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.type.201eb4.2: type = fn_type @FMissingImplicitParam.as.J.impl.F.loc130_26.2 [concrete] -// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.8b207a.2: %FMissingImplicitParam.as.J.impl.F.type.201eb4.2 = struct_value () [concrete] +// CHECK:STDOUT: %J.impl_witness.7e6: = impl_witness @FMissingImplicitParam.as.J.impl.%J.impl_witness_table [concrete] +// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.type.f666a8.1: type = fn_type @FMissingImplicitParam.as.J.impl.F.loc130_26.1 [concrete] +// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.620ed1.1: %FMissingImplicitParam.as.J.impl.F.type.f666a8.1 = struct_value () [concrete] +// CHECK:STDOUT: %J.facet.3f0: %J.type = facet_value %FMissingImplicitParam, (%J.impl_witness.7e6) [concrete] +// CHECK:STDOUT: %J.WithSelf.F.type.e23: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.3f0) [concrete] +// CHECK:STDOUT: %J.WithSelf.F.897: %J.WithSelf.F.type.e23 = struct_value () [concrete] +// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.type.f666a8.2: type = fn_type @FMissingImplicitParam.as.J.impl.F.loc130_26.2 [concrete] +// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.620ed1.2: %FMissingImplicitParam.as.J.impl.F.type.f666a8.2 = struct_value () [concrete] // CHECK:STDOUT: %FMissingReturnType: type = class_type @FMissingReturnType [concrete] -// CHECK:STDOUT: %J.impl_witness.d68: = impl_witness @FMissingReturnType.as.J.impl.%J.impl_witness_table [concrete] -// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.type.c14535.1: type = fn_type @FMissingReturnType.as.J.impl.F.loc152_30.1 [concrete] -// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.fcb664.1: %FMissingReturnType.as.J.impl.F.type.c14535.1 = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.d54: %J.type = facet_value %FMissingReturnType, (%J.impl_witness.d68) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.type.197: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.d54) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.c12: %J.WithSelf.F.type.197 = struct_value () [concrete] -// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.type.c14535.2: type = fn_type @FMissingReturnType.as.J.impl.F.loc152_30.2 [concrete] -// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.fcb664.2: %FMissingReturnType.as.J.impl.F.type.c14535.2 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %J.impl_witness.05c: = impl_witness @FMissingReturnType.as.J.impl.%J.impl_witness_table [concrete] +// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.type.9cd56a.1: type = fn_type @FMissingReturnType.as.J.impl.F.loc152_30.1 [concrete] +// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.6975be.1: %FMissingReturnType.as.J.impl.F.type.9cd56a.1 = struct_value () [concrete] +// CHECK:STDOUT: %J.facet.c42: %J.type = facet_value %FMissingReturnType, (%J.impl_witness.05c) [concrete] +// CHECK:STDOUT: %J.WithSelf.F.type.f86: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.c42) [concrete] +// CHECK:STDOUT: %J.WithSelf.F.d52: %J.WithSelf.F.type.f86 = struct_value () [concrete] +// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.type.9cd56a.2: type = fn_type @FMissingReturnType.as.J.impl.F.loc152_30.2 [concrete] +// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.6975be.2: %FMissingReturnType.as.J.impl.F.type.9cd56a.2 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %FDifferentParamType: type = class_type @FDifferentParamType [concrete] -// CHECK:STDOUT: %J.impl_witness.dc7: = impl_witness @FDifferentParamType.as.J.impl.%J.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.5e2: type = pattern_type %FDifferentParamType [concrete] -// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.type.1f32b7.1: type = fn_type @FDifferentParamType.as.J.impl.F.loc171_38.1 [concrete] -// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.15c1f8.1: %FDifferentParamType.as.J.impl.F.type.1f32b7.1 = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.d89: %J.type = facet_value %FDifferentParamType, (%J.impl_witness.dc7) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.type.1d3: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.d89) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.e8d: %J.WithSelf.F.type.1d3 = struct_value () [concrete] -// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.type.1f32b7.2: type = fn_type @FDifferentParamType.as.J.impl.F.loc171_38.2 [concrete] -// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.15c1f8.2: %FDifferentParamType.as.J.impl.F.type.1f32b7.2 = struct_value () [concrete] +// CHECK:STDOUT: %J.impl_witness.553: = impl_witness @FDifferentParamType.as.J.impl.%J.impl_witness_table [concrete] +// CHECK:STDOUT: %pattern_type.5d3: type = pattern_type %FDifferentParamType [concrete] +// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.type.4a2e9b.1: type = fn_type @FDifferentParamType.as.J.impl.F.loc171_38.1 [concrete] +// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.28602a.1: %FDifferentParamType.as.J.impl.F.type.4a2e9b.1 = struct_value () [concrete] +// CHECK:STDOUT: %J.facet.47a: %J.type = facet_value %FDifferentParamType, (%J.impl_witness.553) [concrete] +// CHECK:STDOUT: %J.WithSelf.F.type.9c3: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.47a) [concrete] +// CHECK:STDOUT: %J.WithSelf.F.4cd: %J.WithSelf.F.type.9c3 = struct_value () [concrete] +// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.type.4a2e9b.2: type = fn_type @FDifferentParamType.as.J.impl.F.loc171_38.2 [concrete] +// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.28602a.2: %FDifferentParamType.as.J.impl.F.type.4a2e9b.2 = struct_value () [concrete] // CHECK:STDOUT: %FDifferentImplicitParamType: type = class_type @FDifferentImplicitParamType [concrete] -// CHECK:STDOUT: %J.impl_witness.932: = impl_witness @FDifferentImplicitParamType.as.J.impl.%J.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.551: type = pattern_type %FDifferentImplicitParamType [concrete] -// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.type.e3c3b1.1: type = fn_type @FDifferentImplicitParamType.as.J.impl.F.loc184_38.1 [concrete] -// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.16071f.1: %FDifferentImplicitParamType.as.J.impl.F.type.e3c3b1.1 = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.5ec: %J.type = facet_value %FDifferentImplicitParamType, (%J.impl_witness.932) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.type.40d: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.5ec) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.41b: %J.WithSelf.F.type.40d = struct_value () [concrete] -// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.type.e3c3b1.2: type = fn_type @FDifferentImplicitParamType.as.J.impl.F.loc184_38.2 [concrete] -// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.16071f.2: %FDifferentImplicitParamType.as.J.impl.F.type.e3c3b1.2 = struct_value () [concrete] +// CHECK:STDOUT: %J.impl_witness.cc3: = impl_witness @FDifferentImplicitParamType.as.J.impl.%J.impl_witness_table [concrete] +// CHECK:STDOUT: %pattern_type.1bc: type = pattern_type %FDifferentImplicitParamType [concrete] +// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.1: type = fn_type @FDifferentImplicitParamType.as.J.impl.F.loc184_38.1 [concrete] +// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.792c78.1: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.1 = struct_value () [concrete] +// CHECK:STDOUT: %J.facet.929: %J.type = facet_value %FDifferentImplicitParamType, (%J.impl_witness.cc3) [concrete] +// CHECK:STDOUT: %J.WithSelf.F.type.97c: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.929) [concrete] +// CHECK:STDOUT: %J.WithSelf.F.94b: %J.WithSelf.F.type.97c = struct_value () [concrete] +// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.2: type = fn_type @FDifferentImplicitParamType.as.J.impl.F.loc184_38.2 [concrete] +// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.792c78.2: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.2 = struct_value () [concrete] // CHECK:STDOUT: %FDifferentReturnType: type = class_type @FDifferentReturnType [concrete] -// CHECK:STDOUT: %J.impl_witness.5d9: = impl_witness @FDifferentReturnType.as.J.impl.%J.impl_witness_table [concrete] -// CHECK:STDOUT: %.56e: Core.Form = init_form %FDifferentReturnType [concrete] -// CHECK:STDOUT: %pattern_type.164: type = pattern_type %FDifferentReturnType [concrete] -// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.type.b5ee6d.1: type = fn_type @FDifferentReturnType.as.J.impl.F.loc200_38.1 [concrete] -// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.9e2e6b.1: %FDifferentReturnType.as.J.impl.F.type.b5ee6d.1 = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.813: %J.type = facet_value %FDifferentReturnType, (%J.impl_witness.5d9) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.type.08e: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.813) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.737: %J.WithSelf.F.type.08e = struct_value () [concrete] -// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.type.b5ee6d.2: type = fn_type @FDifferentReturnType.as.J.impl.F.loc200_38.2 [concrete] -// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.9e2e6b.2: %FDifferentReturnType.as.J.impl.F.type.b5ee6d.2 = struct_value () [concrete] +// CHECK:STDOUT: %J.impl_witness.6ab: = impl_witness @FDifferentReturnType.as.J.impl.%J.impl_witness_table [concrete] +// CHECK:STDOUT: %.1f5: Core.Form = init_form %FDifferentReturnType [concrete] +// CHECK:STDOUT: %pattern_type.b9f: type = pattern_type %FDifferentReturnType [concrete] +// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.type.ff55f4.1: type = fn_type @FDifferentReturnType.as.J.impl.F.loc200_38.1 [concrete] +// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.9725a5.1: %FDifferentReturnType.as.J.impl.F.type.ff55f4.1 = struct_value () [concrete] +// CHECK:STDOUT: %J.facet.b85: %J.type = facet_value %FDifferentReturnType, (%J.impl_witness.6ab) [concrete] +// CHECK:STDOUT: %J.WithSelf.F.type.a9c: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.b85) [concrete] +// CHECK:STDOUT: %J.WithSelf.F.6ec: %J.WithSelf.F.type.a9c = struct_value () [concrete] +// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.type.ff55f4.2: type = fn_type @FDifferentReturnType.as.J.impl.F.loc200_38.2 [concrete] +// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.9725a5.2: %FDifferentReturnType.as.J.impl.F.type.ff55f4.2 = struct_value () [concrete] // CHECK:STDOUT: %SelfNested.type: type = facet_type <@SelfNested> [concrete] -// CHECK:STDOUT: %Self.d32: %SelfNested.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.fd2: type = facet_access_type %Self.d32 [symbolic] -// CHECK:STDOUT: %ptr.99d: type = ptr_type %Self.as_type.fd2 [symbolic] +// CHECK:STDOUT: %Self.e81: %SelfNested.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.8ab: type = facet_access_type %Self.e81 [symbolic] +// CHECK:STDOUT: %ptr.a16: type = ptr_type %Self.as_type.8ab [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %struct_type.x.y.462: type = struct_type {.x: %Self.as_type.fd2, .y: %i32} [symbolic] +// CHECK:STDOUT: %struct_type.x.y.4c5: type = struct_type {.x: %Self.as_type.8ab, .y: %i32} [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.246: %tuple.type.24b = tuple_value (%ptr.99d, %struct_type.x.y.462) [symbolic] -// CHECK:STDOUT: %tuple.type.cc5: type = tuple_type (%ptr.99d, %struct_type.x.y.462) [symbolic] -// CHECK:STDOUT: %pattern_type.02e: type = pattern_type %tuple.type.cc5 [symbolic] +// CHECK:STDOUT: %tuple.b6a: %tuple.type.24b = tuple_value (%ptr.a16, %struct_type.x.y.4c5) [symbolic] +// CHECK:STDOUT: %tuple.type.c49: type = tuple_type (%ptr.a16, %struct_type.x.y.4c5) [symbolic] +// CHECK:STDOUT: %pattern_type.60a: type = pattern_type %tuple.type.c49 [symbolic] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete] -// CHECK:STDOUT: %array_type.a6f: type = array_type %int_4, %Self.as_type.fd2 [symbolic] -// CHECK:STDOUT: %.5ec: Core.Form = init_form %array_type.a6f [symbolic] -// CHECK:STDOUT: %pattern_type.996: type = pattern_type %array_type.a6f [symbolic] -// CHECK:STDOUT: %SelfNested.WithSelf.F.type.9b9: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%Self.d32) [symbolic] -// CHECK:STDOUT: %SelfNested.WithSelf.F.d66: %SelfNested.WithSelf.F.type.9b9 = struct_value () [symbolic] +// CHECK:STDOUT: %array_type.4e4: type = array_type %int_4, %Self.as_type.8ab [symbolic] +// CHECK:STDOUT: %.f45: Core.Form = init_form %array_type.4e4 [symbolic] +// CHECK:STDOUT: %pattern_type.2ab: type = pattern_type %array_type.4e4 [symbolic] +// CHECK:STDOUT: %SelfNested.WithSelf.F.type.702: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%Self.e81) [symbolic] +// CHECK:STDOUT: %SelfNested.WithSelf.F.eec: %SelfNested.WithSelf.F.type.702 = struct_value () [symbolic] // CHECK:STDOUT: %SelfNested.assoc_type: type = assoc_entity_type @SelfNested [concrete] -// CHECK:STDOUT: %assoc0.338: %SelfNested.assoc_type = assoc_entity element0, @SelfNested.WithSelf.%SelfNested.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %assoc0.219: %SelfNested.assoc_type = assoc_entity element0, @SelfNested.WithSelf.%SelfNested.WithSelf.F.decl [concrete] // CHECK:STDOUT: %SelfNestedBadParam: type = class_type @SelfNestedBadParam [concrete] -// CHECK:STDOUT: %SelfNested.impl_witness.06b: = impl_witness @SelfNestedBadParam.as.SelfNested.impl.%SelfNested.impl_witness_table [concrete] -// CHECK:STDOUT: %ptr.a16: type = ptr_type %SelfNestedBadParam [concrete] -// CHECK:STDOUT: %struct_type.x.y.b70: type = struct_type {.x: %i32, .y: %i32} [concrete] -// CHECK:STDOUT: %tuple.b12: %tuple.type.24b = tuple_value (%ptr.a16, %struct_type.x.y.b70) [concrete] -// CHECK:STDOUT: %tuple.type.8b4: type = tuple_type (%ptr.a16, %struct_type.x.y.b70) [concrete] -// CHECK:STDOUT: %pattern_type.ac8: type = pattern_type %tuple.type.8b4 [concrete] -// CHECK:STDOUT: %array_type.cda: type = array_type %int_4, %SelfNestedBadParam [concrete] -// CHECK:STDOUT: %.c11: Core.Form = init_form %array_type.cda [concrete] -// CHECK:STDOUT: %pattern_type.cd4: type = pattern_type %array_type.cda [concrete] -// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.type.0f9dff.1: type = fn_type @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.1 [concrete] -// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.e44dfb.1: %SelfNestedBadParam.as.SelfNested.impl.F.type.0f9dff.1 = struct_value () [concrete] -// CHECK:STDOUT: %SelfNested.facet.428: %SelfNested.type = facet_value %SelfNestedBadParam, (%SelfNested.impl_witness.06b) [concrete] -// CHECK:STDOUT: %SelfNested.WithSelf.F.type.b06: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%SelfNested.facet.428) [concrete] -// CHECK:STDOUT: %SelfNested.WithSelf.F.7a2: %SelfNested.WithSelf.F.type.b06 = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.x.y.dda: type = struct_type {.x: %SelfNestedBadParam, .y: %i32} [concrete] -// CHECK:STDOUT: %tuple.f36: %tuple.type.24b = tuple_value (%ptr.a16, %struct_type.x.y.dda) [concrete] -// CHECK:STDOUT: %tuple.type.d3e: type = tuple_type (%ptr.a16, %struct_type.x.y.dda) [concrete] -// CHECK:STDOUT: %pattern_type.a6b: type = pattern_type %tuple.type.d3e [concrete] -// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.type.0f9dff.2: type = fn_type @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.2 [concrete] -// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.e44dfb.2: %SelfNestedBadParam.as.SelfNested.impl.F.type.0f9dff.2 = struct_value () [concrete] +// CHECK:STDOUT: %SelfNested.impl_witness.d7c: = impl_witness @SelfNestedBadParam.as.SelfNested.impl.%SelfNested.impl_witness_table [concrete] +// CHECK:STDOUT: %ptr.52e: type = ptr_type %SelfNestedBadParam [concrete] +// CHECK:STDOUT: %struct_type.x.y.fb8: type = struct_type {.x: %i32, .y: %i32} [concrete] +// CHECK:STDOUT: %tuple.991: %tuple.type.24b = tuple_value (%ptr.52e, %struct_type.x.y.fb8) [concrete] +// CHECK:STDOUT: %tuple.type.e57: type = tuple_type (%ptr.52e, %struct_type.x.y.fb8) [concrete] +// CHECK:STDOUT: %pattern_type.a68: type = pattern_type %tuple.type.e57 [concrete] +// CHECK:STDOUT: %array_type.291: type = array_type %int_4, %SelfNestedBadParam [concrete] +// CHECK:STDOUT: %.cc2: Core.Form = init_form %array_type.291 [concrete] +// CHECK:STDOUT: %pattern_type.3a0: type = pattern_type %array_type.291 [concrete] +// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.type.4325e7.1: type = fn_type @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.1 [concrete] +// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.5fd896.1: %SelfNestedBadParam.as.SelfNested.impl.F.type.4325e7.1 = struct_value () [concrete] +// CHECK:STDOUT: %SelfNested.facet.fc6: %SelfNested.type = facet_value %SelfNestedBadParam, (%SelfNested.impl_witness.d7c) [concrete] +// CHECK:STDOUT: %SelfNested.WithSelf.F.type.75d: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%SelfNested.facet.fc6) [concrete] +// CHECK:STDOUT: %SelfNested.WithSelf.F.379: %SelfNested.WithSelf.F.type.75d = struct_value () [concrete] +// CHECK:STDOUT: %struct_type.x.y.da2: type = struct_type {.x: %SelfNestedBadParam, .y: %i32} [concrete] +// CHECK:STDOUT: %tuple.09d: %tuple.type.24b = tuple_value (%ptr.52e, %struct_type.x.y.da2) [concrete] +// CHECK:STDOUT: %tuple.type.9ab: type = tuple_type (%ptr.52e, %struct_type.x.y.da2) [concrete] +// CHECK:STDOUT: %pattern_type.94f: type = pattern_type %tuple.type.9ab [concrete] +// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.type.4325e7.2: type = fn_type @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.2 [concrete] +// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.5fd896.2: %SelfNestedBadParam.as.SelfNested.impl.F.type.4325e7.2 = struct_value () [concrete] // CHECK:STDOUT: %SelfNestedBadReturnType: type = class_type @SelfNestedBadReturnType [concrete] -// CHECK:STDOUT: %SelfNested.impl_witness.81c: = impl_witness @SelfNestedBadReturnType.as.SelfNested.impl.%SelfNested.impl_witness_table [concrete] -// CHECK:STDOUT: %ptr.fb5: type = ptr_type %SelfNestedBadReturnType [concrete] -// CHECK:STDOUT: %struct_type.x.y.6eb: type = struct_type {.x: %SelfNestedBadReturnType, .y: %i32} [concrete] -// CHECK:STDOUT: %tuple.309: %tuple.type.24b = tuple_value (%ptr.fb5, %struct_type.x.y.6eb) [concrete] -// CHECK:STDOUT: %tuple.type.b5c: type = tuple_type (%ptr.fb5, %struct_type.x.y.6eb) [concrete] -// CHECK:STDOUT: %pattern_type.4a8: type = pattern_type %tuple.type.b5c [concrete] -// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.c80844.1: type = fn_type @SelfNestedBadReturnType.as.SelfNested.impl.F.loc239_112.1 [concrete] -// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.035a7e.1: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.c80844.1 = struct_value () [concrete] -// CHECK:STDOUT: %SelfNested.facet.490: %SelfNested.type = facet_value %SelfNestedBadReturnType, (%SelfNested.impl_witness.81c) [concrete] -// CHECK:STDOUT: %SelfNested.WithSelf.F.type.24b: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%SelfNested.facet.490) [concrete] -// CHECK:STDOUT: %SelfNested.WithSelf.F.bb5: %SelfNested.WithSelf.F.type.24b = struct_value () [concrete] -// CHECK:STDOUT: %array_type.e52: type = array_type %int_4, %SelfNestedBadReturnType [concrete] -// CHECK:STDOUT: %.b1f: Core.Form = init_form %array_type.e52 [concrete] -// CHECK:STDOUT: %pattern_type.db0: type = pattern_type %array_type.e52 [concrete] -// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.c80844.2: type = fn_type @SelfNestedBadReturnType.as.SelfNested.impl.F.loc239_112.2 [concrete] -// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.035a7e.2: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.c80844.2 = struct_value () [concrete] +// CHECK:STDOUT: %SelfNested.impl_witness.abd: = impl_witness @SelfNestedBadReturnType.as.SelfNested.impl.%SelfNested.impl_witness_table [concrete] +// CHECK:STDOUT: %ptr.f55: type = ptr_type %SelfNestedBadReturnType [concrete] +// CHECK:STDOUT: %struct_type.x.y.f6a: type = struct_type {.x: %SelfNestedBadReturnType, .y: %i32} [concrete] +// CHECK:STDOUT: %tuple.96d: %tuple.type.24b = tuple_value (%ptr.f55, %struct_type.x.y.f6a) [concrete] +// CHECK:STDOUT: %tuple.type.829: type = tuple_type (%ptr.f55, %struct_type.x.y.f6a) [concrete] +// CHECK:STDOUT: %pattern_type.5c2: type = pattern_type %tuple.type.829 [concrete] +// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.1cbabe.1: type = fn_type @SelfNestedBadReturnType.as.SelfNested.impl.F.loc239_112.1 [concrete] +// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.5a7d54.1: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.1cbabe.1 = struct_value () [concrete] +// CHECK:STDOUT: %SelfNested.facet.68c: %SelfNested.type = facet_value %SelfNestedBadReturnType, (%SelfNested.impl_witness.abd) [concrete] +// CHECK:STDOUT: %SelfNested.WithSelf.F.type.53d: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%SelfNested.facet.68c) [concrete] +// CHECK:STDOUT: %SelfNested.WithSelf.F.f39: %SelfNested.WithSelf.F.type.53d = struct_value () [concrete] +// CHECK:STDOUT: %array_type.a08: type = array_type %int_4, %SelfNestedBadReturnType [concrete] +// CHECK:STDOUT: %.442: Core.Form = init_form %array_type.a08 [concrete] +// CHECK:STDOUT: %pattern_type.f0d: type = pattern_type %array_type.a08 [concrete] +// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.1cbabe.2: type = fn_type @SelfNestedBadReturnType.as.SelfNested.impl.F.loc239_112.2 [concrete] +// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.5a7d54.2: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.1cbabe.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -436,7 +436,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/parts/bool, Bool, loaded [concrete = constants.%Bool] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -484,12 +484,12 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.d9f) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.592)] {} {} -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0.8fc] +// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.dcc) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ec6)] {} {} +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0.6c9] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -501,11 +501,11 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @J { -// CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = constants.%Self.fd8] +// CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = constants.%Self.653] // CHECK:STDOUT: %J.WithSelf.decl = interface_with_self_decl @J [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %J.WithSelf.F.decl: @J.WithSelf.%J.WithSelf.F.type (%J.WithSelf.F.type.37c) = fn_decl @J.WithSelf.F [symbolic = @J.WithSelf.%J.WithSelf.F (constants.%J.WithSelf.F.acf)] { +// CHECK:STDOUT: %J.WithSelf.F.decl: @J.WithSelf.%J.WithSelf.F.type (%J.WithSelf.F.type.a0a) = fn_decl @J.WithSelf.F [symbolic = @J.WithSelf.%J.WithSelf.F (constants.%J.WithSelf.F.f69)] { // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] @@ -524,7 +524,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return.param: ref bool = out_param call_param2 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, %J.WithSelf.F.decl [concrete = constants.%assoc0.ba5] +// CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, %J.WithSelf.F.decl [concrete = constants.%assoc0.000] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -535,41 +535,41 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @SelfNested { -// CHECK:STDOUT: %Self: %SelfNested.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d32] +// CHECK:STDOUT: %Self: %SelfNested.type = symbolic_binding Self, 0 [symbolic = constants.%Self.e81] // CHECK:STDOUT: %SelfNested.WithSelf.decl = interface_with_self_decl @SelfNested [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %SelfNested.WithSelf.F.decl: @SelfNested.WithSelf.%SelfNested.WithSelf.F.type (%SelfNested.WithSelf.F.type.9b9) = fn_decl @SelfNested.WithSelf.F [symbolic = @SelfNested.WithSelf.%SelfNested.WithSelf.F (constants.%SelfNested.WithSelf.F.d66)] { -// CHECK:STDOUT: %x.param_patt: @SelfNested.WithSelf.F.%pattern_type.loc211_9 (%pattern_type.02e) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @SelfNested.WithSelf.F.%pattern_type.loc211_9 (%pattern_type.02e) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @SelfNested.WithSelf.F.%pattern_type.loc211_57 (%pattern_type.996) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @SelfNested.WithSelf.F.%pattern_type.loc211_57 (%pattern_type.996) = return_slot_pattern %return.param_patt, %array_type.loc211_57.2 [concrete] +// CHECK:STDOUT: %SelfNested.WithSelf.F.decl: @SelfNested.WithSelf.%SelfNested.WithSelf.F.type (%SelfNested.WithSelf.F.type.702) = fn_decl @SelfNested.WithSelf.F [symbolic = @SelfNested.WithSelf.%SelfNested.WithSelf.F (constants.%SelfNested.WithSelf.F.eec)] { +// CHECK:STDOUT: %x.param_patt: @SelfNested.WithSelf.F.%pattern_type.loc211_9 (%pattern_type.60a) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @SelfNested.WithSelf.F.%pattern_type.loc211_9 (%pattern_type.60a) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @SelfNested.WithSelf.F.%pattern_type.loc211_57 (%pattern_type.2ab) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @SelfNested.WithSelf.F.%pattern_type.loc211_57 (%pattern_type.2ab) = return_slot_pattern %return.param_patt, %array_type.loc211_57.2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.ref.loc211_50: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.d32)] +// CHECK:STDOUT: %Self.ref.loc211_50: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.e81)] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4] -// CHECK:STDOUT: %Self.as_type.loc211_50: type = facet_access_type %Self.ref.loc211_50 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.fd2)] -// CHECK:STDOUT: %.loc211_50: type = converted %Self.ref.loc211_50, %Self.as_type.loc211_50 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.fd2)] -// CHECK:STDOUT: %array_type.loc211_57.2: type = array_type %int_4, %.loc211_50 [symbolic = %array_type.loc211_57.1 (constants.%array_type.a6f)] -// CHECK:STDOUT: %.loc211_57.2: Core.Form = init_form %array_type.loc211_57.2 [symbolic = %.loc211_57.1 (constants.%.5ec)] -// CHECK:STDOUT: %x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.cc5) = value_param call_param0 -// CHECK:STDOUT: %.loc211_38.1: type = splice_block %.loc211_38.3 [symbolic = %tuple.type (constants.%tuple.type.cc5)] { -// CHECK:STDOUT: %Self.ref.loc211_12: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.d32)] -// CHECK:STDOUT: %Self.as_type.loc211_16.2: type = facet_access_type %Self.ref.loc211_12 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.fd2)] -// CHECK:STDOUT: %.loc211_16: type = converted %Self.ref.loc211_12, %Self.as_type.loc211_16.2 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.fd2)] -// CHECK:STDOUT: %ptr.loc211_16.2: type = ptr_type %.loc211_16 [symbolic = %ptr.loc211_16.1 (constants.%ptr.99d)] -// CHECK:STDOUT: %Self.ref.loc211_24: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.d32)] -// CHECK:STDOUT: %Self.as_type.loc211_24: type = facet_access_type %Self.ref.loc211_24 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.fd2)] -// CHECK:STDOUT: %.loc211_24: type = converted %Self.ref.loc211_24, %Self.as_type.loc211_24 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.fd2)] +// CHECK:STDOUT: %Self.as_type.loc211_50: type = facet_access_type %Self.ref.loc211_50 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.8ab)] +// CHECK:STDOUT: %.loc211_50: type = converted %Self.ref.loc211_50, %Self.as_type.loc211_50 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.8ab)] +// CHECK:STDOUT: %array_type.loc211_57.2: type = array_type %int_4, %.loc211_50 [symbolic = %array_type.loc211_57.1 (constants.%array_type.4e4)] +// CHECK:STDOUT: %.loc211_57.2: Core.Form = init_form %array_type.loc211_57.2 [symbolic = %.loc211_57.1 (constants.%.f45)] +// CHECK:STDOUT: %x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.c49) = value_param call_param0 +// CHECK:STDOUT: %.loc211_38.1: type = splice_block %.loc211_38.3 [symbolic = %tuple.type (constants.%tuple.type.c49)] { +// CHECK:STDOUT: %Self.ref.loc211_12: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.e81)] +// CHECK:STDOUT: %Self.as_type.loc211_16.2: type = facet_access_type %Self.ref.loc211_12 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.8ab)] +// CHECK:STDOUT: %.loc211_16: type = converted %Self.ref.loc211_12, %Self.as_type.loc211_16.2 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.8ab)] +// CHECK:STDOUT: %ptr.loc211_16.2: type = ptr_type %.loc211_16 [symbolic = %ptr.loc211_16.1 (constants.%ptr.a16)] +// CHECK:STDOUT: %Self.ref.loc211_24: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.e81)] +// CHECK:STDOUT: %Self.as_type.loc211_24: type = facet_access_type %Self.ref.loc211_24 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.8ab)] +// CHECK:STDOUT: %.loc211_24: type = converted %Self.ref.loc211_24, %Self.as_type.loc211_24 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.8ab)] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.x.y.loc211_37.2: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.as_type.loc211_16.1 (%Self.as_type.fd2), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.1 (constants.%struct_type.x.y.462)] -// CHECK:STDOUT: %.loc211_38.2: %tuple.type.24b = tuple_literal (%ptr.loc211_16.2, %struct_type.x.y.loc211_37.2) [symbolic = %tuple (constants.%tuple.246)] -// CHECK:STDOUT: %.loc211_38.3: type = converted %.loc211_38.2, constants.%tuple.type.cc5 [symbolic = %tuple.type (constants.%tuple.type.cc5)] +// CHECK:STDOUT: %struct_type.x.y.loc211_37.2: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.as_type.loc211_16.1 (%Self.as_type.8ab), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.1 (constants.%struct_type.x.y.4c5)] +// CHECK:STDOUT: %.loc211_38.2: %tuple.type.24b = tuple_literal (%ptr.loc211_16.2, %struct_type.x.y.loc211_37.2) [symbolic = %tuple (constants.%tuple.b6a)] +// CHECK:STDOUT: %.loc211_38.3: type = converted %.loc211_38.2, constants.%tuple.type.c49 [symbolic = %tuple.type (constants.%tuple.type.c49)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.cc5) = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref @SelfNested.WithSelf.F.%array_type.loc211_57.1 (%array_type.a6f) = out_param call_param1 -// CHECK:STDOUT: %return: ref @SelfNested.WithSelf.F.%array_type.loc211_57.1 (%array_type.a6f) = return_slot %return.param +// CHECK:STDOUT: %x: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.c49) = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref @SelfNested.WithSelf.F.%array_type.loc211_57.1 (%array_type.4e4) = out_param call_param1 +// CHECK:STDOUT: %return: ref @SelfNested.WithSelf.F.%array_type.loc211_57.1 (%array_type.4e4) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %SelfNested.assoc_type = assoc_entity element0, %SelfNested.WithSelf.F.decl [concrete = constants.%assoc0.338] +// CHECK:STDOUT: %assoc0: %SelfNested.assoc_type = assoc_entity element0, %SelfNested.WithSelf.F.decl [concrete = constants.%assoc0.219] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -583,7 +583,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: impl @NoF.as.I.impl: %Self.ref as %I.ref { // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @NoF.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.57b] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.85e] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = @@ -594,7 +594,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: impl @FNotFunction.as.I.impl: %Self.ref as %I.ref { // CHECK:STDOUT: %F.decl: type = class_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @FNotFunction.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.8c4] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.b51] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -606,7 +606,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %PossiblyF.ref: %PossiblyF.type = name_ref PossiblyF, file.%PossiblyF.decl [concrete = constants.%PossiblyF] // CHECK:STDOUT: %F: %PossiblyF.type = alias_binding F, %PossiblyF.ref [concrete = constants.%PossiblyF] // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @FAlias.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.414] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.e2e] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .PossiblyF = @@ -616,7 +616,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @FExtraParam.as.I.impl: %Self.ref as %I.ref { -// CHECK:STDOUT: %FExtraParam.as.I.impl.F.decl.loc69_18.1: %FExtraParam.as.I.impl.F.type.e67c7d.1 = fn_decl @FExtraParam.as.I.impl.F.loc69_18.1 [concrete = constants.%FExtraParam.as.I.impl.F.9ec29e.1] { +// CHECK:STDOUT: %FExtraParam.as.I.impl.F.decl.loc69_18.1: %FExtraParam.as.I.impl.F.type.ec7b0b.1 = fn_decl @FExtraParam.as.I.impl.F.loc69_18.1 [concrete = constants.%FExtraParam.as.I.impl.F.ef9801.1] { // CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { @@ -624,9 +624,9 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %.loc69: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %b: bool = value_binding b, %b.param // CHECK:STDOUT: } -// CHECK:STDOUT: %FExtraParam.as.I.impl.F.decl.loc69_18.2: %FExtraParam.as.I.impl.F.type.e67c7d.2 = fn_decl @FExtraParam.as.I.impl.F.loc69_18.2 [concrete = constants.%FExtraParam.as.I.impl.F.9ec29e.2] {} {} +// CHECK:STDOUT: %FExtraParam.as.I.impl.F.decl.loc69_18.2: %FExtraParam.as.I.impl.F.type.ec7b0b.2 = fn_decl @FExtraParam.as.I.impl.F.loc69_18.2 [concrete = constants.%FExtraParam.as.I.impl.F.ef9801.2] {} {} // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%FExtraParam.as.I.impl.F.decl.loc69_18.2), @FExtraParam.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.c88] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.99e] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %FExtraParam.as.I.impl.F.decl.loc69_18.1 @@ -635,17 +635,17 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @FExtraImplicitParam.as.I.impl: %Self.ref as %I.ref { -// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.decl.loc85_23.1: %FExtraImplicitParam.as.I.impl.F.type.182ef7.1 = fn_decl @FExtraImplicitParam.as.I.impl.F.loc85_23.1 [concrete = constants.%FExtraImplicitParam.as.I.impl.F.db022d.1] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.4f8 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.4f8 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.decl.loc85_23.1: %FExtraImplicitParam.as.I.impl.F.type.54cac2.1 = fn_decl @FExtraImplicitParam.as.I.impl.F.loc85_23.1 [concrete = constants.%FExtraImplicitParam.as.I.impl.F.a42f35.1] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.54d = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.54d = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %FExtraImplicitParam = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%FExtraImplicitParam [concrete = constants.%FExtraImplicitParam] // CHECK:STDOUT: %self: %FExtraImplicitParam = value_binding self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.decl.loc85_23.2: %FExtraImplicitParam.as.I.impl.F.type.182ef7.2 = fn_decl @FExtraImplicitParam.as.I.impl.F.loc85_23.2 [concrete = constants.%FExtraImplicitParam.as.I.impl.F.db022d.2] {} {} +// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.decl.loc85_23.2: %FExtraImplicitParam.as.I.impl.F.type.54cac2.2 = fn_decl @FExtraImplicitParam.as.I.impl.F.loc85_23.2 [concrete = constants.%FExtraImplicitParam.as.I.impl.F.a42f35.2] {} {} // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%FExtraImplicitParam.as.I.impl.F.decl.loc85_23.2), @FExtraImplicitParam.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.67e] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.2da] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %FExtraImplicitParam.as.I.impl.F.decl.loc85_23.1 @@ -664,7 +664,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @FExtraReturnType.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.45f] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.b63] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %FExtraReturnType.as.I.impl.F.decl @@ -673,7 +673,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @FMissingParam.as.J.impl: %Self.ref as %J.ref { -// CHECK:STDOUT: %FMissingParam.as.J.impl.F.decl.loc117_31.1: %FMissingParam.as.J.impl.F.type.bba3a3.1 = fn_decl @FMissingParam.as.J.impl.F.loc117_31.1 [concrete = constants.%FMissingParam.as.J.impl.F.c0814c.1] { +// CHECK:STDOUT: %FMissingParam.as.J.impl.F.decl.loc117_31.1: %FMissingParam.as.J.impl.F.type.aad6ec.1 = fn_decl @FMissingParam.as.J.impl.F.loc117_31.1 [concrete = constants.%FMissingParam.as.J.impl.F.dd09dc.1] { // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] @@ -687,9 +687,9 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return.param: ref bool = out_param call_param1 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.55f) [concrete = bool] -// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.55f) [concrete = constants.%.f34] -// CHECK:STDOUT: %FMissingParam.as.J.impl.F.decl.loc117_31.2: %FMissingParam.as.J.impl.F.type.bba3a3.2 = fn_decl @FMissingParam.as.J.impl.F.loc117_31.2 [concrete = constants.%FMissingParam.as.J.impl.F.c0814c.2] { +// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.d77) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.d77) [concrete = constants.%.f34] +// CHECK:STDOUT: %FMissingParam.as.J.impl.F.decl.loc117_31.2: %FMissingParam.as.J.impl.F.type.aad6ec.2 = fn_decl @FMissingParam.as.J.impl.F.loc117_31.2 [concrete = constants.%FMissingParam.as.J.impl.F.dd09dc.2] { // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] @@ -705,7 +705,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (%FMissingParam.as.J.impl.F.decl.loc117_31.2), @FMissingParam.as.J.impl [concrete] -// CHECK:STDOUT: %J.impl_witness: = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.fb1] +// CHECK:STDOUT: %J.impl_witness: = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.a34] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %FMissingParam.as.J.impl.F.decl.loc117_31.1 @@ -714,7 +714,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @FMissingImplicitParam.as.J.impl: %Self.ref as %J.ref { -// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.decl.loc130_26.1: %FMissingImplicitParam.as.J.impl.F.type.201eb4.1 = fn_decl @FMissingImplicitParam.as.J.impl.F.loc130_26.1 [concrete = constants.%FMissingImplicitParam.as.J.impl.F.8b207a.1] { +// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.decl.loc130_26.1: %FMissingImplicitParam.as.J.impl.F.type.f666a8.1 = fn_decl @FMissingImplicitParam.as.J.impl.F.loc130_26.1 [concrete = constants.%FMissingImplicitParam.as.J.impl.F.620ed1.1] { // CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] @@ -728,9 +728,9 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return.param: ref bool = out_param call_param1 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.a37) [concrete = bool] -// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.a37) [concrete = constants.%.f34] -// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.decl.loc130_26.2: %FMissingImplicitParam.as.J.impl.F.type.201eb4.2 = fn_decl @FMissingImplicitParam.as.J.impl.F.loc130_26.2 [concrete = constants.%FMissingImplicitParam.as.J.impl.F.8b207a.2] { +// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.3f0) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.3f0) [concrete = constants.%.f34] +// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.decl.loc130_26.2: %FMissingImplicitParam.as.J.impl.F.type.f666a8.2 = fn_decl @FMissingImplicitParam.as.J.impl.F.loc130_26.2 [concrete = constants.%FMissingImplicitParam.as.J.impl.F.620ed1.2] { // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] @@ -746,7 +746,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (%FMissingImplicitParam.as.J.impl.F.decl.loc130_26.2), @FMissingImplicitParam.as.J.impl [concrete] -// CHECK:STDOUT: %J.impl_witness: = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.22f] +// CHECK:STDOUT: %J.impl_witness: = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.7e6] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %FMissingImplicitParam.as.J.impl.F.decl.loc130_26.1 @@ -755,7 +755,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @FMissingReturnType.as.J.impl: %Self.ref as %J.ref { -// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.decl.loc152_30.1: %FMissingReturnType.as.J.impl.F.type.c14535.1 = fn_decl @FMissingReturnType.as.J.impl.F.loc152_30.1 [concrete = constants.%FMissingReturnType.as.J.impl.F.fcb664.1] { +// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.decl.loc152_30.1: %FMissingReturnType.as.J.impl.F.type.9cd56a.1 = fn_decl @FMissingReturnType.as.J.impl.F.loc152_30.1 [concrete = constants.%FMissingReturnType.as.J.impl.F.6975be.1] { // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] @@ -768,9 +768,9 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %.loc152_25: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %b: bool = value_binding b, %b.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.d54) [concrete = bool] -// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.d54) [concrete = constants.%.f34] -// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.decl.loc152_30.2: %FMissingReturnType.as.J.impl.F.type.c14535.2 = fn_decl @FMissingReturnType.as.J.impl.F.loc152_30.2 [concrete = constants.%FMissingReturnType.as.J.impl.F.fcb664.2] { +// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.c42) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.c42) [concrete = constants.%.f34] +// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.decl.loc152_30.2: %FMissingReturnType.as.J.impl.F.type.9cd56a.2 = fn_decl @FMissingReturnType.as.J.impl.F.loc152_30.2 [concrete = constants.%FMissingReturnType.as.J.impl.F.6975be.2] { // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] @@ -786,7 +786,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (%FMissingReturnType.as.J.impl.F.decl.loc152_30.2), @FMissingReturnType.as.J.impl [concrete] -// CHECK:STDOUT: %J.impl_witness: = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.d68] +// CHECK:STDOUT: %J.impl_witness: = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.05c] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %FMissingReturnType.as.J.impl.F.decl.loc152_30.1 @@ -795,11 +795,11 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @FDifferentParamType.as.J.impl: %Self.ref as %J.ref { -// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.decl.loc171_38.1: %FDifferentParamType.as.J.impl.F.type.1f32b7.1 = fn_decl @FDifferentParamType.as.J.impl.F.loc171_38.1 [concrete = constants.%FDifferentParamType.as.J.impl.F.15c1f8.1] { +// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.decl.loc171_38.1: %FDifferentParamType.as.J.impl.F.type.4a2e9b.1 = fn_decl @FDifferentParamType.as.J.impl.F.loc171_38.1 [concrete = constants.%FDifferentParamType.as.J.impl.F.28602a.1] { // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.5e2 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.5e2 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.5d3 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.5d3 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc171_34.1 [concrete] // CHECK:STDOUT: } { @@ -814,9 +814,9 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return.param: ref bool = out_param call_param2 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.d89) [concrete = bool] -// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.d89) [concrete = constants.%.f34] -// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.decl.loc171_38.2: %FDifferentParamType.as.J.impl.F.type.1f32b7.2 = fn_decl @FDifferentParamType.as.J.impl.F.loc171_38.2 [concrete = constants.%FDifferentParamType.as.J.impl.F.15c1f8.2] { +// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.47a) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.47a) [concrete = constants.%.f34] +// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.decl.loc171_38.2: %FDifferentParamType.as.J.impl.F.type.4a2e9b.2 = fn_decl @FDifferentParamType.as.J.impl.F.loc171_38.2 [concrete = constants.%FDifferentParamType.as.J.impl.F.28602a.2] { // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] @@ -832,7 +832,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (%FDifferentParamType.as.J.impl.F.decl.loc171_38.2), @FDifferentParamType.as.J.impl [concrete] -// CHECK:STDOUT: %J.impl_witness: = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.dc7] +// CHECK:STDOUT: %J.impl_witness: = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.553] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %FDifferentParamType.as.J.impl.F.decl.loc171_38.1 @@ -841,9 +841,9 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @FDifferentImplicitParamType.as.J.impl: %Self.ref as %J.ref { -// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.decl.loc184_38.1: %FDifferentImplicitParamType.as.J.impl.F.type.e3c3b1.1 = fn_decl @FDifferentImplicitParamType.as.J.impl.F.loc184_38.1 [concrete = constants.%FDifferentImplicitParamType.as.J.impl.F.16071f.1] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.551 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.551 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.decl.loc184_38.1: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.1 = fn_decl @FDifferentImplicitParamType.as.J.impl.F.loc184_38.1 [concrete = constants.%FDifferentImplicitParamType.as.J.impl.F.792c78.1] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.1bc = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.1bc = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] @@ -860,9 +860,9 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return.param: ref bool = out_param call_param2 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.5ec) [concrete = bool] -// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.5ec) [concrete = constants.%.f34] -// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.decl.loc184_38.2: %FDifferentImplicitParamType.as.J.impl.F.type.e3c3b1.2 = fn_decl @FDifferentImplicitParamType.as.J.impl.F.loc184_38.2 [concrete = constants.%FDifferentImplicitParamType.as.J.impl.F.16071f.2] { +// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.929) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.929) [concrete = constants.%.f34] +// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.decl.loc184_38.2: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.2 = fn_decl @FDifferentImplicitParamType.as.J.impl.F.loc184_38.2 [concrete = constants.%FDifferentImplicitParamType.as.J.impl.F.792c78.2] { // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] @@ -878,7 +878,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (%FDifferentImplicitParamType.as.J.impl.F.decl.loc184_38.2), @FDifferentImplicitParamType.as.J.impl [concrete] -// CHECK:STDOUT: %J.impl_witness: = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.932] +// CHECK:STDOUT: %J.impl_witness: = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.cc3] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %FDifferentImplicitParamType.as.J.impl.F.decl.loc184_38.1 @@ -887,16 +887,16 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @FDifferentReturnType.as.J.impl: %Self.ref as %J.ref { -// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.decl.loc200_38.1: %FDifferentReturnType.as.J.impl.F.type.b5ee6d.1 = fn_decl @FDifferentReturnType.as.J.impl.F.loc200_38.1 [concrete = constants.%FDifferentReturnType.as.J.impl.F.9e2e6b.1] { +// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.decl.loc200_38.1: %FDifferentReturnType.as.J.impl.F.type.ff55f4.1 = fn_decl @FDifferentReturnType.as.J.impl.F.loc200_38.1 [concrete = constants.%FDifferentReturnType.as.J.impl.F.9725a5.1] { // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.164 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.164 = return_slot_pattern %return.param_patt, %Self.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b9f = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b9f = return_slot_pattern %return.param_patt, %Self.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%FDifferentReturnType [concrete = constants.%FDifferentReturnType] -// CHECK:STDOUT: %.loc200_34: Core.Form = init_form %Self.ref [concrete = constants.%.56e] +// CHECK:STDOUT: %.loc200_34: Core.Form = init_form %Self.ref [concrete = constants.%.1f5] // CHECK:STDOUT: %self.param: bool = value_param call_param0 // CHECK:STDOUT: %.loc200_16: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %self: bool = value_binding self, %self.param @@ -906,9 +906,9 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return.param: ref %FDifferentReturnType = out_param call_param2 // CHECK:STDOUT: %return: ref %FDifferentReturnType = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.813) [concrete = bool] -// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.813) [concrete = constants.%.f34] -// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.decl.loc200_38.2: %FDifferentReturnType.as.J.impl.F.type.b5ee6d.2 = fn_decl @FDifferentReturnType.as.J.impl.F.loc200_38.2 [concrete = constants.%FDifferentReturnType.as.J.impl.F.9e2e6b.2] { +// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.b85) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.b85) [concrete = constants.%.f34] +// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.decl.loc200_38.2: %FDifferentReturnType.as.J.impl.F.type.ff55f4.2 = fn_decl @FDifferentReturnType.as.J.impl.F.loc200_38.2 [concrete = constants.%FDifferentReturnType.as.J.impl.F.9725a5.2] { // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] @@ -924,7 +924,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (%FDifferentReturnType.as.J.impl.F.decl.loc200_38.2), @FDifferentReturnType.as.J.impl [concrete] -// CHECK:STDOUT: %J.impl_witness: = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.5d9] +// CHECK:STDOUT: %J.impl_witness: = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.6ab] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %FDifferentReturnType.as.J.impl.F.decl.loc200_38.1 @@ -933,45 +933,45 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @SelfNestedBadParam.as.SelfNested.impl: %Self.ref as %SelfNested.ref { -// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.decl.loc223_87.1: %SelfNestedBadParam.as.SelfNested.impl.F.type.0f9dff.1 = fn_decl @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.1 [concrete = constants.%SelfNestedBadParam.as.SelfNested.impl.F.e44dfb.1] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.ac8 = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.ac8 = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cd4 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.cd4 = return_slot_pattern %return.param_patt, %array_type [concrete] +// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.decl.loc223_87.1: %SelfNestedBadParam.as.SelfNested.impl.F.type.4325e7.1 = fn_decl @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.1 [concrete = constants.%SelfNestedBadParam.as.SelfNested.impl.F.5fd896.1] { +// CHECK:STDOUT: %x.param_patt: %pattern_type.a68 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.a68 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.3a0 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.3a0 = return_slot_pattern %return.param_patt, %array_type [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %SelfNestedBadParam.ref.loc223_65: type = name_ref SelfNestedBadParam, file.%SelfNestedBadParam.decl [concrete = constants.%SelfNestedBadParam] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4] -// CHECK:STDOUT: %array_type: type = array_type %int_4, %SelfNestedBadParam.ref.loc223_65 [concrete = constants.%array_type.cda] -// CHECK:STDOUT: %.loc223_86: Core.Form = init_form %array_type [concrete = constants.%.c11] -// CHECK:STDOUT: %x.param: %tuple.type.8b4 = value_param call_param0 -// CHECK:STDOUT: %.loc223_53.1: type = splice_block %.loc223_53.3 [concrete = constants.%tuple.type.8b4] { +// CHECK:STDOUT: %array_type: type = array_type %int_4, %SelfNestedBadParam.ref.loc223_65 [concrete = constants.%array_type.291] +// CHECK:STDOUT: %.loc223_86: Core.Form = init_form %array_type [concrete = constants.%.cc2] +// CHECK:STDOUT: %x.param: %tuple.type.e57 = value_param call_param0 +// CHECK:STDOUT: %.loc223_53.1: type = splice_block %.loc223_53.3 [concrete = constants.%tuple.type.e57] { // CHECK:STDOUT: %SelfNestedBadParam.ref.loc223_14: type = name_ref SelfNestedBadParam, file.%SelfNestedBadParam.decl [concrete = constants.%SelfNestedBadParam] -// CHECK:STDOUT: %ptr: type = ptr_type %SelfNestedBadParam.ref.loc223_14 [concrete = constants.%ptr.a16] +// CHECK:STDOUT: %ptr: type = ptr_type %SelfNestedBadParam.ref.loc223_14 [concrete = constants.%ptr.52e] // CHECK:STDOUT: %i32.loc223_40: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc223_49: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.x.y: type = struct_type {.x: %i32, .y: %i32} [concrete = constants.%struct_type.x.y.b70] -// CHECK:STDOUT: %.loc223_53.2: %tuple.type.24b = tuple_literal (%ptr, %struct_type.x.y) [concrete = constants.%tuple.b12] -// CHECK:STDOUT: %.loc223_53.3: type = converted %.loc223_53.2, constants.%tuple.type.8b4 [concrete = constants.%tuple.type.8b4] +// CHECK:STDOUT: %struct_type.x.y: type = struct_type {.x: %i32, .y: %i32} [concrete = constants.%struct_type.x.y.fb8] +// CHECK:STDOUT: %.loc223_53.2: %tuple.type.24b = tuple_literal (%ptr, %struct_type.x.y) [concrete = constants.%tuple.991] +// CHECK:STDOUT: %.loc223_53.3: type = converted %.loc223_53.2, constants.%tuple.type.e57 [concrete = constants.%tuple.type.e57] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: %tuple.type.8b4 = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref %array_type.cda = out_param call_param1 -// CHECK:STDOUT: %return: ref %array_type.cda = return_slot %return.param +// CHECK:STDOUT: %x: %tuple.type.e57 = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref %array_type.291 = out_param call_param1 +// CHECK:STDOUT: %return: ref %array_type.291 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc211_57.1: type = specific_constant @SelfNested.WithSelf.F.%array_type.loc211_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.428) [concrete = constants.%array_type.cda] -// CHECK:STDOUT: %.loc211_57.2: type = specific_constant @SelfNested.WithSelf.F.%.loc211_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.428) [concrete = constants.%.c11] -// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.decl.loc223_87.2: %SelfNestedBadParam.as.SelfNested.impl.F.type.0f9dff.2 = fn_decl @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.2 [concrete = constants.%SelfNestedBadParam.as.SelfNested.impl.F.e44dfb.2] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.a6b = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.a6b = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cd4 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.cd4 = return_slot_pattern %return.param_patt, invalid [concrete] +// CHECK:STDOUT: %.loc211_57.1: type = specific_constant @SelfNested.WithSelf.F.%array_type.loc211_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.fc6) [concrete = constants.%array_type.291] +// CHECK:STDOUT: %.loc211_57.2: type = specific_constant @SelfNested.WithSelf.F.%.loc211_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.fc6) [concrete = constants.%.cc2] +// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.decl.loc223_87.2: %SelfNestedBadParam.as.SelfNested.impl.F.type.4325e7.2 = fn_decl @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.2 [concrete = constants.%SelfNestedBadParam.as.SelfNested.impl.F.5fd896.2] { +// CHECK:STDOUT: %x.param_patt: %pattern_type.94f = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.94f = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.3a0 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.3a0 = return_slot_pattern %return.param_patt, invalid [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %x.param: %tuple.type.d3e = value_param call_param0 -// CHECK:STDOUT: %x: %tuple.type.d3e = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref %array_type.cda = out_param call_param1 -// CHECK:STDOUT: %return: ref %array_type.cda = return_slot %return.param +// CHECK:STDOUT: %x.param: %tuple.type.9ab = value_param call_param0 +// CHECK:STDOUT: %x: %tuple.type.9ab = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref %array_type.291 = out_param call_param1 +// CHECK:STDOUT: %return: ref %array_type.291 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %SelfNested.impl_witness_table = impl_witness_table (%SelfNestedBadParam.as.SelfNested.impl.F.decl.loc223_87.2), @SelfNestedBadParam.as.SelfNested.impl [concrete] -// CHECK:STDOUT: %SelfNested.impl_witness: = impl_witness %SelfNested.impl_witness_table [concrete = constants.%SelfNested.impl_witness.06b] +// CHECK:STDOUT: %SelfNested.impl_witness: = impl_witness %SelfNested.impl_witness_table [concrete = constants.%SelfNested.impl_witness.d7c] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .SelfNestedBadParam = @@ -981,45 +981,45 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @SelfNestedBadReturnType.as.SelfNested.impl: %Self.ref as %SelfNested.ref { -// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc239_112.1: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.c80844.1 = fn_decl @SelfNestedBadReturnType.as.SelfNested.impl.F.loc239_112.1 [concrete = constants.%SelfNestedBadReturnType.as.SelfNested.impl.F.035a7e.1] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.4a8 = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.4a8 = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.cd4 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.cd4 = return_slot_pattern %return.param_patt, %array_type [concrete] +// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc239_112.1: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.1cbabe.1 = fn_decl @SelfNestedBadReturnType.as.SelfNested.impl.F.loc239_112.1 [concrete = constants.%SelfNestedBadReturnType.as.SelfNested.impl.F.5a7d54.1] { +// CHECK:STDOUT: %x.param_patt: %pattern_type.5c2 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.5c2 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.3a0 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.3a0 = return_slot_pattern %return.param_patt, %array_type [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %SelfNestedBadParam.ref: type = name_ref SelfNestedBadParam, file.%SelfNestedBadParam.decl [concrete = constants.%SelfNestedBadParam] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4] -// CHECK:STDOUT: %array_type: type = array_type %int_4, %SelfNestedBadParam.ref [concrete = constants.%array_type.cda] -// CHECK:STDOUT: %.loc239_111: Core.Form = init_form %array_type [concrete = constants.%.c11] -// CHECK:STDOUT: %x.param: %tuple.type.b5c = value_param call_param0 -// CHECK:STDOUT: %.loc239_78.1: type = splice_block %.loc239_78.3 [concrete = constants.%tuple.type.b5c] { +// CHECK:STDOUT: %array_type: type = array_type %int_4, %SelfNestedBadParam.ref [concrete = constants.%array_type.291] +// CHECK:STDOUT: %.loc239_111: Core.Form = init_form %array_type [concrete = constants.%.cc2] +// CHECK:STDOUT: %x.param: %tuple.type.829 = value_param call_param0 +// CHECK:STDOUT: %.loc239_78.1: type = splice_block %.loc239_78.3 [concrete = constants.%tuple.type.829] { // CHECK:STDOUT: %SelfNestedBadReturnType.ref.loc239_14: type = name_ref SelfNestedBadReturnType, file.%SelfNestedBadReturnType.decl [concrete = constants.%SelfNestedBadReturnType] -// CHECK:STDOUT: %ptr: type = ptr_type %SelfNestedBadReturnType.ref.loc239_14 [concrete = constants.%ptr.fb5] +// CHECK:STDOUT: %ptr: type = ptr_type %SelfNestedBadReturnType.ref.loc239_14 [concrete = constants.%ptr.f55] // CHECK:STDOUT: %SelfNestedBadReturnType.ref.loc239_45: type = name_ref SelfNestedBadReturnType, file.%SelfNestedBadReturnType.decl [concrete = constants.%SelfNestedBadReturnType] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.x.y: type = struct_type {.x: %SelfNestedBadReturnType, .y: %i32} [concrete = constants.%struct_type.x.y.6eb] -// CHECK:STDOUT: %.loc239_78.2: %tuple.type.24b = tuple_literal (%ptr, %struct_type.x.y) [concrete = constants.%tuple.309] -// CHECK:STDOUT: %.loc239_78.3: type = converted %.loc239_78.2, constants.%tuple.type.b5c [concrete = constants.%tuple.type.b5c] +// CHECK:STDOUT: %struct_type.x.y: type = struct_type {.x: %SelfNestedBadReturnType, .y: %i32} [concrete = constants.%struct_type.x.y.f6a] +// CHECK:STDOUT: %.loc239_78.2: %tuple.type.24b = tuple_literal (%ptr, %struct_type.x.y) [concrete = constants.%tuple.96d] +// CHECK:STDOUT: %.loc239_78.3: type = converted %.loc239_78.2, constants.%tuple.type.829 [concrete = constants.%tuple.type.829] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: %tuple.type.b5c = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref %array_type.cda = out_param call_param1 -// CHECK:STDOUT: %return: ref %array_type.cda = return_slot %return.param +// CHECK:STDOUT: %x: %tuple.type.829 = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref %array_type.291 = out_param call_param1 +// CHECK:STDOUT: %return: ref %array_type.291 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc211_57.1: type = specific_constant @SelfNested.WithSelf.F.%array_type.loc211_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.490) [concrete = constants.%array_type.e52] -// CHECK:STDOUT: %.loc211_57.2: type = specific_constant @SelfNested.WithSelf.F.%.loc211_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.490) [concrete = constants.%.b1f] -// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc239_112.2: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.c80844.2 = fn_decl @SelfNestedBadReturnType.as.SelfNested.impl.F.loc239_112.2 [concrete = constants.%SelfNestedBadReturnType.as.SelfNested.impl.F.035a7e.2] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.4a8 = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.4a8 = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.db0 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.db0 = return_slot_pattern %return.param_patt, invalid [concrete] +// CHECK:STDOUT: %.loc211_57.1: type = specific_constant @SelfNested.WithSelf.F.%array_type.loc211_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.68c) [concrete = constants.%array_type.a08] +// CHECK:STDOUT: %.loc211_57.2: type = specific_constant @SelfNested.WithSelf.F.%.loc211_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.68c) [concrete = constants.%.442] +// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc239_112.2: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.1cbabe.2 = fn_decl @SelfNestedBadReturnType.as.SelfNested.impl.F.loc239_112.2 [concrete = constants.%SelfNestedBadReturnType.as.SelfNested.impl.F.5a7d54.2] { +// CHECK:STDOUT: %x.param_patt: %pattern_type.5c2 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.5c2 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f0d = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f0d = return_slot_pattern %return.param_patt, invalid [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %x.param: %tuple.type.b5c = value_param call_param0 -// CHECK:STDOUT: %x: %tuple.type.b5c = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref %array_type.e52 = out_param call_param1 -// CHECK:STDOUT: %return: ref %array_type.e52 = return_slot %return.param +// CHECK:STDOUT: %x.param: %tuple.type.829 = value_param call_param0 +// CHECK:STDOUT: %x: %tuple.type.829 = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref %array_type.a08 = out_param call_param1 +// CHECK:STDOUT: %return: ref %array_type.a08 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %SelfNested.impl_witness_table = impl_witness_table (%SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc239_112.2), @SelfNestedBadReturnType.as.SelfNested.impl [concrete] -// CHECK:STDOUT: %SelfNested.impl_witness: = impl_witness %SelfNested.impl_witness_table [concrete = constants.%SelfNested.impl_witness.81c] +// CHECK:STDOUT: %SelfNested.impl_witness: = impl_witness %SelfNested.impl_witness_table [concrete = constants.%SelfNested.impl_witness.abd] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .SelfNestedBadReturnType = @@ -1225,17 +1225,17 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: fn @FExtraParam.as.I.impl.F.loc69_18.1(%b.param: bool); // CHECK:STDOUT: -// CHECK:STDOUT: fn @FExtraParam.as.I.impl.F.loc69_18.2() [thunk @FExtraParam.as.I.impl.%FExtraParam.as.I.impl.F.decl.loc69_18.1 for @I.WithSelf.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.c30)] { +// CHECK:STDOUT: fn @FExtraParam.as.I.impl.F.loc69_18.2() [thunk @FExtraParam.as.I.impl.%FExtraParam.as.I.impl.F.decl.loc69_18.1 for @I.WithSelf.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.657)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %FExtraParam.as.I.impl.F.type.e67c7d.1 = name_ref F, @FExtraParam.as.I.impl.%FExtraParam.as.I.impl.F.decl.loc69_18.1 [concrete = constants.%FExtraParam.as.I.impl.F.9ec29e.1] +// CHECK:STDOUT: %F.ref: %FExtraParam.as.I.impl.F.type.ec7b0b.1 = name_ref F, @FExtraParam.as.I.impl.%FExtraParam.as.I.impl.F.decl.loc69_18.1 [concrete = constants.%FExtraParam.as.I.impl.F.ef9801.1] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @FExtraImplicitParam.as.I.impl.F.loc85_23.1(%self.param: %FExtraImplicitParam); // CHECK:STDOUT: -// CHECK:STDOUT: fn @FExtraImplicitParam.as.I.impl.F.loc85_23.2() [thunk @FExtraImplicitParam.as.I.impl.%FExtraImplicitParam.as.I.impl.F.decl.loc85_23.1 for @I.WithSelf.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.0d6)] { +// CHECK:STDOUT: fn @FExtraImplicitParam.as.I.impl.F.loc85_23.2() [thunk @FExtraImplicitParam.as.I.impl.%FExtraImplicitParam.as.I.impl.F.decl.loc85_23.1 for @I.WithSelf.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.334)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %FExtraImplicitParam.as.I.impl.F.type.182ef7.1 = name_ref F, @FExtraImplicitParam.as.I.impl.%FExtraImplicitParam.as.I.impl.F.decl.loc85_23.1 [concrete = constants.%FExtraImplicitParam.as.I.impl.F.db022d.1] +// CHECK:STDOUT: %F.ref: %FExtraImplicitParam.as.I.impl.F.type.54cac2.1 = name_ref F, @FExtraImplicitParam.as.I.impl.%FExtraImplicitParam.as.I.impl.F.decl.loc85_23.1 [concrete = constants.%FExtraImplicitParam.as.I.impl.F.a42f35.1] // CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1248,27 +1248,27 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: fn @FMissingParam.as.J.impl.F.loc117_31.1(%self.param: bool) -> out %return.param: bool; // CHECK:STDOUT: -// CHECK:STDOUT: fn @FMissingParam.as.J.impl.F.loc117_31.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FMissingParam.as.J.impl.%FMissingParam.as.J.impl.F.decl.loc117_31.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.55f)] { +// CHECK:STDOUT: fn @FMissingParam.as.J.impl.F.loc117_31.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FMissingParam.as.J.impl.%FMissingParam.as.J.impl.F.decl.loc117_31.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.d77)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %FMissingParam.as.J.impl.F.type.bba3a3.1 = name_ref F, @FMissingParam.as.J.impl.%FMissingParam.as.J.impl.F.decl.loc117_31.1 [concrete = constants.%FMissingParam.as.J.impl.F.c0814c.1] +// CHECK:STDOUT: %F.ref: %FMissingParam.as.J.impl.F.type.aad6ec.1 = name_ref F, @FMissingParam.as.J.impl.%FMissingParam.as.J.impl.F.decl.loc117_31.1 [concrete = constants.%FMissingParam.as.J.impl.F.dd09dc.1] // CHECK:STDOUT: %FMissingParam.as.J.impl.F.bound: = bound_method %self.param, %F.ref // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @FMissingImplicitParam.as.J.impl.F.loc130_26.1(%b.param: bool) -> out %return.param: bool; // CHECK:STDOUT: -// CHECK:STDOUT: fn @FMissingImplicitParam.as.J.impl.F.loc130_26.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FMissingImplicitParam.as.J.impl.%FMissingImplicitParam.as.J.impl.F.decl.loc130_26.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.a37)] { +// CHECK:STDOUT: fn @FMissingImplicitParam.as.J.impl.F.loc130_26.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FMissingImplicitParam.as.J.impl.%FMissingImplicitParam.as.J.impl.F.decl.loc130_26.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.3f0)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %FMissingImplicitParam.as.J.impl.F.type.201eb4.1 = name_ref F, @FMissingImplicitParam.as.J.impl.%FMissingImplicitParam.as.J.impl.F.decl.loc130_26.1 [concrete = constants.%FMissingImplicitParam.as.J.impl.F.8b207a.1] +// CHECK:STDOUT: %F.ref: %FMissingImplicitParam.as.J.impl.F.type.f666a8.1 = name_ref F, @FMissingImplicitParam.as.J.impl.%FMissingImplicitParam.as.J.impl.F.decl.loc130_26.1 [concrete = constants.%FMissingImplicitParam.as.J.impl.F.620ed1.1] // CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.call: init bool = call %F.ref(%b.param) // CHECK:STDOUT: return %FMissingImplicitParam.as.J.impl.F.call // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @FMissingReturnType.as.J.impl.F.loc152_30.1(%self.param: bool, %b.param: bool); // CHECK:STDOUT: -// CHECK:STDOUT: fn @FMissingReturnType.as.J.impl.F.loc152_30.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FMissingReturnType.as.J.impl.%FMissingReturnType.as.J.impl.F.decl.loc152_30.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.d54)] { +// CHECK:STDOUT: fn @FMissingReturnType.as.J.impl.F.loc152_30.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FMissingReturnType.as.J.impl.%FMissingReturnType.as.J.impl.F.decl.loc152_30.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.c42)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %FMissingReturnType.as.J.impl.F.type.c14535.1 = name_ref F, @FMissingReturnType.as.J.impl.%FMissingReturnType.as.J.impl.F.decl.loc152_30.1 [concrete = constants.%FMissingReturnType.as.J.impl.F.fcb664.1] +// CHECK:STDOUT: %F.ref: %FMissingReturnType.as.J.impl.F.type.9cd56a.1 = name_ref F, @FMissingReturnType.as.J.impl.%FMissingReturnType.as.J.impl.F.decl.loc152_30.1 [concrete = constants.%FMissingReturnType.as.J.impl.F.6975be.1] // CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.bound: = bound_method %self.param, %F.ref // CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.call: init %empty_tuple.type = call %FMissingReturnType.as.J.impl.F.bound(%self.param, %b.param) // CHECK:STDOUT: %.loc152: bool = converted %FMissingReturnType.as.J.impl.F.call, [concrete = ] @@ -1277,9 +1277,9 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: fn @FDifferentParamType.as.J.impl.F.loc171_38.1(%self.param: bool, %b.param: %FDifferentParamType) -> out %return.param: bool; // CHECK:STDOUT: -// CHECK:STDOUT: fn @FDifferentParamType.as.J.impl.F.loc171_38.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FDifferentParamType.as.J.impl.%FDifferentParamType.as.J.impl.F.decl.loc171_38.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.d89)] { +// CHECK:STDOUT: fn @FDifferentParamType.as.J.impl.F.loc171_38.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FDifferentParamType.as.J.impl.%FDifferentParamType.as.J.impl.F.decl.loc171_38.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.47a)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %FDifferentParamType.as.J.impl.F.type.1f32b7.1 = name_ref F, @FDifferentParamType.as.J.impl.%FDifferentParamType.as.J.impl.F.decl.loc171_38.1 [concrete = constants.%FDifferentParamType.as.J.impl.F.15c1f8.1] +// CHECK:STDOUT: %F.ref: %FDifferentParamType.as.J.impl.F.type.4a2e9b.1 = name_ref F, @FDifferentParamType.as.J.impl.%FDifferentParamType.as.J.impl.F.decl.loc171_38.1 [concrete = constants.%FDifferentParamType.as.J.impl.F.28602a.1] // CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.bound: = bound_method %self.param, %F.ref // CHECK:STDOUT: %.loc103: %FDifferentParamType = converted %b.param, [concrete = ] // CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.call: init bool = call %FDifferentParamType.as.J.impl.F.bound(%self.param, ) @@ -1288,9 +1288,9 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: fn @FDifferentImplicitParamType.as.J.impl.F.loc184_38.1(%self.param: %FDifferentImplicitParamType, %b.param: bool) -> out %return.param: bool; // CHECK:STDOUT: -// CHECK:STDOUT: fn @FDifferentImplicitParamType.as.J.impl.F.loc184_38.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FDifferentImplicitParamType.as.J.impl.%FDifferentImplicitParamType.as.J.impl.F.decl.loc184_38.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.5ec)] { +// CHECK:STDOUT: fn @FDifferentImplicitParamType.as.J.impl.F.loc184_38.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FDifferentImplicitParamType.as.J.impl.%FDifferentImplicitParamType.as.J.impl.F.decl.loc184_38.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.929)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %FDifferentImplicitParamType.as.J.impl.F.type.e3c3b1.1 = name_ref F, @FDifferentImplicitParamType.as.J.impl.%FDifferentImplicitParamType.as.J.impl.F.decl.loc184_38.1 [concrete = constants.%FDifferentImplicitParamType.as.J.impl.F.16071f.1] +// CHECK:STDOUT: %F.ref: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.1 = name_ref F, @FDifferentImplicitParamType.as.J.impl.%FDifferentImplicitParamType.as.J.impl.F.decl.loc184_38.1 [concrete = constants.%FDifferentImplicitParamType.as.J.impl.F.792c78.1] // CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.bound: = bound_method %self.param, %F.ref // CHECK:STDOUT: %.loc103: %FDifferentImplicitParamType = converted %self.param, [concrete = ] // CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.call: init bool = call %FDifferentImplicitParamType.as.J.impl.F.bound(, %b.param) @@ -1299,9 +1299,9 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: fn @FDifferentReturnType.as.J.impl.F.loc200_38.1(%self.param: bool, %b.param: bool) -> out %return.param: %FDifferentReturnType; // CHECK:STDOUT: -// CHECK:STDOUT: fn @FDifferentReturnType.as.J.impl.F.loc200_38.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FDifferentReturnType.as.J.impl.%FDifferentReturnType.as.J.impl.F.decl.loc200_38.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.813)] { +// CHECK:STDOUT: fn @FDifferentReturnType.as.J.impl.F.loc200_38.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FDifferentReturnType.as.J.impl.%FDifferentReturnType.as.J.impl.F.decl.loc200_38.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.b85)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %FDifferentReturnType.as.J.impl.F.type.b5ee6d.1 = name_ref F, @FDifferentReturnType.as.J.impl.%FDifferentReturnType.as.J.impl.F.decl.loc200_38.1 [concrete = constants.%FDifferentReturnType.as.J.impl.F.9e2e6b.1] +// CHECK:STDOUT: %F.ref: %FDifferentReturnType.as.J.impl.F.type.ff55f4.1 = name_ref F, @FDifferentReturnType.as.J.impl.%FDifferentReturnType.as.J.impl.F.decl.loc200_38.1 [concrete = constants.%FDifferentReturnType.as.J.impl.F.9725a5.1] // CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.bound: = bound_method %self.param, %F.ref // CHECK:STDOUT: %.loc200_38.1: ref %FDifferentReturnType = temporary_storage // CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.call: init %FDifferentReturnType to %.loc200_38.1 = call %FDifferentReturnType.as.J.impl.F.bound(%self.param, %b.param) @@ -1310,222 +1310,222 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @SelfNested.WithSelf.F(@SelfNested.%Self: %SelfNested.type) { -// CHECK:STDOUT: %Self: %SelfNested.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.d32)] -// CHECK:STDOUT: %Self.as_type.loc211_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.fd2)] -// CHECK:STDOUT: %ptr.loc211_16.1: type = ptr_type %Self.as_type.loc211_16.1 [symbolic = %ptr.loc211_16.1 (constants.%ptr.99d)] -// CHECK:STDOUT: %struct_type.x.y.loc211_37.1: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.as_type.loc211_16.1 (%Self.as_type.fd2), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.1 (constants.%struct_type.x.y.462)] -// CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%ptr.loc211_16.1, %struct_type.x.y.loc211_37.1) [symbolic = %tuple (constants.%tuple.246)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc211_16.1, %struct_type.x.y.loc211_37.1) [symbolic = %tuple.type (constants.%tuple.type.cc5)] -// CHECK:STDOUT: %pattern_type.loc211_9: type = pattern_type %tuple.type [symbolic = %pattern_type.loc211_9 (constants.%pattern_type.02e)] -// CHECK:STDOUT: %array_type.loc211_57.1: type = array_type constants.%int_4, %Self.as_type.loc211_16.1 [symbolic = %array_type.loc211_57.1 (constants.%array_type.a6f)] -// CHECK:STDOUT: %.loc211_57.1: Core.Form = init_form %array_type.loc211_57.1 [symbolic = %.loc211_57.1 (constants.%.5ec)] -// CHECK:STDOUT: %pattern_type.loc211_57: type = pattern_type %array_type.loc211_57.1 [symbolic = %pattern_type.loc211_57 (constants.%pattern_type.996)] +// CHECK:STDOUT: %Self: %SelfNested.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.e81)] +// CHECK:STDOUT: %Self.as_type.loc211_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.8ab)] +// CHECK:STDOUT: %ptr.loc211_16.1: type = ptr_type %Self.as_type.loc211_16.1 [symbolic = %ptr.loc211_16.1 (constants.%ptr.a16)] +// CHECK:STDOUT: %struct_type.x.y.loc211_37.1: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.as_type.loc211_16.1 (%Self.as_type.8ab), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.1 (constants.%struct_type.x.y.4c5)] +// CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%ptr.loc211_16.1, %struct_type.x.y.loc211_37.1) [symbolic = %tuple (constants.%tuple.b6a)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc211_16.1, %struct_type.x.y.loc211_37.1) [symbolic = %tuple.type (constants.%tuple.type.c49)] +// CHECK:STDOUT: %pattern_type.loc211_9: type = pattern_type %tuple.type [symbolic = %pattern_type.loc211_9 (constants.%pattern_type.60a)] +// CHECK:STDOUT: %array_type.loc211_57.1: type = array_type constants.%int_4, %Self.as_type.loc211_16.1 [symbolic = %array_type.loc211_57.1 (constants.%array_type.4e4)] +// CHECK:STDOUT: %.loc211_57.1: Core.Form = init_form %array_type.loc211_57.1 [symbolic = %.loc211_57.1 (constants.%.f45)] +// CHECK:STDOUT: %pattern_type.loc211_57: type = pattern_type %array_type.loc211_57.1 [symbolic = %pattern_type.loc211_57 (constants.%pattern_type.2ab)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.cc5)) -> out %return.param: @SelfNested.WithSelf.F.%array_type.loc211_57.1 (%array_type.a6f); +// CHECK:STDOUT: fn(%x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.c49)) -> out %return.param: @SelfNested.WithSelf.F.%array_type.loc211_57.1 (%array_type.4e4); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.1(%x.param: %tuple.type.8b4) -> out %return.param: %array_type.cda; +// CHECK:STDOUT: fn @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.1(%x.param: %tuple.type.e57) -> out %return.param: %array_type.291; // CHECK:STDOUT: -// CHECK:STDOUT: fn @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.2(%x.param: %tuple.type.d3e) -> out %return.param: %array_type.cda [thunk @SelfNestedBadParam.as.SelfNested.impl.%SelfNestedBadParam.as.SelfNested.impl.F.decl.loc223_87.1 for @SelfNested.WithSelf.%SelfNested.WithSelf.F.decl, @SelfNested.WithSelf.F(constants.%SelfNested.facet.428)] { +// CHECK:STDOUT: fn @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.2(%x.param: %tuple.type.9ab) -> out %return.param: %array_type.291 [thunk @SelfNestedBadParam.as.SelfNested.impl.%SelfNestedBadParam.as.SelfNested.impl.F.decl.loc223_87.1 for @SelfNested.WithSelf.%SelfNested.WithSelf.F.decl, @SelfNested.WithSelf.F(constants.%SelfNested.facet.fc6)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %SelfNestedBadParam.as.SelfNested.impl.F.type.0f9dff.1 = name_ref F, @SelfNestedBadParam.as.SelfNested.impl.%SelfNestedBadParam.as.SelfNested.impl.F.decl.loc223_87.1 [concrete = constants.%SelfNestedBadParam.as.SelfNested.impl.F.e44dfb.1] -// CHECK:STDOUT: %.loc211_57: ref %array_type.cda = splice_block %return.param {} -// CHECK:STDOUT: %tuple.elem0: %ptr.a16 = tuple_access %x.param, element0 -// CHECK:STDOUT: %tuple.elem1: %struct_type.x.y.dda = tuple_access %x.param, element1 +// CHECK:STDOUT: %F.ref: %SelfNestedBadParam.as.SelfNested.impl.F.type.4325e7.1 = name_ref F, @SelfNestedBadParam.as.SelfNested.impl.%SelfNestedBadParam.as.SelfNested.impl.F.decl.loc223_87.1 [concrete = constants.%SelfNestedBadParam.as.SelfNested.impl.F.5fd896.1] +// CHECK:STDOUT: %.loc211_57: ref %array_type.291 = splice_block %return.param {} +// CHECK:STDOUT: %tuple.elem0: %ptr.52e = tuple_access %x.param, element0 +// CHECK:STDOUT: %tuple.elem1: %struct_type.x.y.da2 = tuple_access %x.param, element1 // CHECK:STDOUT: %.loc211_9.1: %SelfNestedBadParam = struct_access %tuple.elem1, element0 // CHECK:STDOUT: %.loc211_9.2: %i32 = converted %.loc211_9.1, [concrete = ] -// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.call: init %array_type.cda to %.loc211_57 = call %F.ref() +// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.call: init %array_type.291 to %.loc211_57 = call %F.ref() // CHECK:STDOUT: return %SelfNestedBadParam.as.SelfNested.impl.F.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @SelfNestedBadReturnType.as.SelfNested.impl.F.loc239_112.1(%x.param: %tuple.type.b5c) -> out %return.param: %array_type.cda; +// CHECK:STDOUT: fn @SelfNestedBadReturnType.as.SelfNested.impl.F.loc239_112.1(%x.param: %tuple.type.829) -> out %return.param: %array_type.291; // CHECK:STDOUT: -// CHECK:STDOUT: fn @SelfNestedBadReturnType.as.SelfNested.impl.F.loc239_112.2(%x.param: %tuple.type.b5c) -> out %return.param: %array_type.e52 [thunk @SelfNestedBadReturnType.as.SelfNested.impl.%SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc239_112.1 for @SelfNested.WithSelf.%SelfNested.WithSelf.F.decl, @SelfNested.WithSelf.F(constants.%SelfNested.facet.490)] { +// CHECK:STDOUT: fn @SelfNestedBadReturnType.as.SelfNested.impl.F.loc239_112.2(%x.param: %tuple.type.829) -> out %return.param: %array_type.a08 [thunk @SelfNestedBadReturnType.as.SelfNested.impl.%SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc239_112.1 for @SelfNested.WithSelf.%SelfNested.WithSelf.F.decl, @SelfNested.WithSelf.F(constants.%SelfNested.facet.68c)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.c80844.1 = name_ref F, @SelfNestedBadReturnType.as.SelfNested.impl.%SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc239_112.1 [concrete = constants.%SelfNestedBadReturnType.as.SelfNested.impl.F.035a7e.1] -// CHECK:STDOUT: %.loc239_112.1: ref %array_type.cda = temporary_storage -// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.call: init %array_type.cda to %.loc239_112.1 = call %F.ref(%x.param) -// CHECK:STDOUT: %.loc239_112.2: %array_type.e52 = converted %SelfNestedBadReturnType.as.SelfNested.impl.F.call, [concrete = ] +// CHECK:STDOUT: %F.ref: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.1cbabe.1 = name_ref F, @SelfNestedBadReturnType.as.SelfNested.impl.%SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc239_112.1 [concrete = constants.%SelfNestedBadReturnType.as.SelfNested.impl.F.5a7d54.1] +// CHECK:STDOUT: %.loc239_112.1: ref %array_type.291 = temporary_storage +// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.call: init %array_type.291 to %.loc239_112.1 = call %F.ref(%x.param) +// CHECK:STDOUT: %.loc239_112.2: %array_type.a08 = converted %SelfNestedBadReturnType.as.SelfNested.impl.F.call, [concrete = ] // CHECK:STDOUT: return to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.179 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d9f -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.592 +// CHECK:STDOUT: %Self => constants.%Self.37e +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.dcc +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ec6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.179) {} +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.37e) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.a48) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.752) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.a48 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.296 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.754 +// CHECK:STDOUT: %Self => constants.%I.facet.752 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.3d3 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.38a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.716) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.010) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.716 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.694 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ab7 +// CHECK:STDOUT: %Self => constants.%I.facet.010 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.642 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.c29 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.afb) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.f6f) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.afb -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.b03 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.6ef +// CHECK:STDOUT: %Self => constants.%I.facet.f6f +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.751 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.6d6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.c30) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.657) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.c30 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.5de -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.9a8 +// CHECK:STDOUT: %Self => constants.%I.facet.657 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.255 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.fc1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.c30) {} +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.657) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.0d6) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.334) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.0d6 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.fe1 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.fc9 +// CHECK:STDOUT: %Self => constants.%I.facet.334 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.6ff +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.39e // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.0d6) {} +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.334) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.436) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.dde) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.436 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.ce0 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.037 +// CHECK:STDOUT: %Self => constants.%I.facet.dde +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.fea +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.338 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.436) {} +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.dde) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%Self.fd8) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%Self.653) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.fd8 -// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.37c -// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.acf +// CHECK:STDOUT: %Self => constants.%Self.653 +// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.a0a +// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.f69 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.F(constants.%Self.fd8) {} +// CHECK:STDOUT: specific @J.WithSelf.F(constants.%Self.653) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.55f) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.d77) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%J.facet.55f -// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.fca -// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.021 +// CHECK:STDOUT: %Self => constants.%J.facet.d77 +// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.51b +// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.ed6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.55f) {} +// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.d77) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.a37) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.3f0) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%J.facet.a37 -// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.2c3 -// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.0cf +// CHECK:STDOUT: %Self => constants.%J.facet.3f0 +// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.e23 +// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.897 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.a37) {} +// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.3f0) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.d54) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.c42) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%J.facet.d54 -// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.197 -// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.c12 +// CHECK:STDOUT: %Self => constants.%J.facet.c42 +// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.f86 +// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.d52 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.d54) {} +// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.c42) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.d89) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.47a) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%J.facet.d89 -// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.1d3 -// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.e8d +// CHECK:STDOUT: %Self => constants.%J.facet.47a +// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.9c3 +// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.4cd // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.d89) {} +// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.47a) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.5ec) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.929) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%J.facet.5ec -// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.40d -// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.41b +// CHECK:STDOUT: %Self => constants.%J.facet.929 +// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.97c +// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.94b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.5ec) {} +// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.929) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.813) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.b85) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%J.facet.813 -// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.08e -// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.737 +// CHECK:STDOUT: %Self => constants.%J.facet.b85 +// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.a9c +// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.6ec // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.813) {} +// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.b85) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%Self.d32) { +// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%Self.e81) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.d32 -// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.9b9 -// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.d66 +// CHECK:STDOUT: %Self => constants.%Self.e81 +// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.702 +// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.eec // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%Self.d32) { -// CHECK:STDOUT: %Self => constants.%Self.d32 -// CHECK:STDOUT: %Self.as_type.loc211_16.1 => constants.%Self.as_type.fd2 -// CHECK:STDOUT: %ptr.loc211_16.1 => constants.%ptr.99d -// CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.462 -// CHECK:STDOUT: %tuple => constants.%tuple.246 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.cc5 -// CHECK:STDOUT: %pattern_type.loc211_9 => constants.%pattern_type.02e -// CHECK:STDOUT: %array_type.loc211_57.1 => constants.%array_type.a6f -// CHECK:STDOUT: %.loc211_57.1 => constants.%.5ec -// CHECK:STDOUT: %pattern_type.loc211_57 => constants.%pattern_type.996 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.428) { -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%SelfNested.facet.428 -// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.b06 -// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.7a2 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.428) { -// CHECK:STDOUT: %Self => constants.%SelfNested.facet.428 -// CHECK:STDOUT: %Self.as_type.loc211_16.1 => constants.%SelfNestedBadParam +// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%Self.e81) { +// CHECK:STDOUT: %Self => constants.%Self.e81 +// CHECK:STDOUT: %Self.as_type.loc211_16.1 => constants.%Self.as_type.8ab // CHECK:STDOUT: %ptr.loc211_16.1 => constants.%ptr.a16 -// CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.dda -// CHECK:STDOUT: %tuple => constants.%tuple.f36 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.d3e -// CHECK:STDOUT: %pattern_type.loc211_9 => constants.%pattern_type.a6b -// CHECK:STDOUT: %array_type.loc211_57.1 => constants.%array_type.cda -// CHECK:STDOUT: %.loc211_57.1 => constants.%.c11 -// CHECK:STDOUT: %pattern_type.loc211_57 => constants.%pattern_type.cd4 +// CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.4c5 +// CHECK:STDOUT: %tuple => constants.%tuple.b6a +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.c49 +// CHECK:STDOUT: %pattern_type.loc211_9 => constants.%pattern_type.60a +// CHECK:STDOUT: %array_type.loc211_57.1 => constants.%array_type.4e4 +// CHECK:STDOUT: %.loc211_57.1 => constants.%.f45 +// CHECK:STDOUT: %pattern_type.loc211_57 => constants.%pattern_type.2ab // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.490) { +// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.fc6) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%SelfNested.facet.490 -// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.24b -// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.bb5 +// CHECK:STDOUT: %Self => constants.%SelfNested.facet.fc6 +// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.75d +// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.379 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.490) { -// CHECK:STDOUT: %Self => constants.%SelfNested.facet.490 +// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.fc6) { +// CHECK:STDOUT: %Self => constants.%SelfNested.facet.fc6 +// CHECK:STDOUT: %Self.as_type.loc211_16.1 => constants.%SelfNestedBadParam +// CHECK:STDOUT: %ptr.loc211_16.1 => constants.%ptr.52e +// CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.da2 +// CHECK:STDOUT: %tuple => constants.%tuple.09d +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.9ab +// CHECK:STDOUT: %pattern_type.loc211_9 => constants.%pattern_type.94f +// CHECK:STDOUT: %array_type.loc211_57.1 => constants.%array_type.291 +// CHECK:STDOUT: %.loc211_57.1 => constants.%.cc2 +// CHECK:STDOUT: %pattern_type.loc211_57 => constants.%pattern_type.3a0 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.68c) { +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: %Self => constants.%SelfNested.facet.68c +// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.53d +// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.f39 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.68c) { +// CHECK:STDOUT: %Self => constants.%SelfNested.facet.68c // CHECK:STDOUT: %Self.as_type.loc211_16.1 => constants.%SelfNestedBadReturnType -// CHECK:STDOUT: %ptr.loc211_16.1 => constants.%ptr.fb5 -// CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.6eb -// CHECK:STDOUT: %tuple => constants.%tuple.309 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.b5c -// CHECK:STDOUT: %pattern_type.loc211_9 => constants.%pattern_type.4a8 -// CHECK:STDOUT: %array_type.loc211_57.1 => constants.%array_type.e52 -// CHECK:STDOUT: %.loc211_57.1 => constants.%.b1f -// CHECK:STDOUT: %pattern_type.loc211_57 => constants.%pattern_type.db0 +// CHECK:STDOUT: %ptr.loc211_16.1 => constants.%ptr.f55 +// CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.f6a +// CHECK:STDOUT: %tuple => constants.%tuple.96d +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.829 +// CHECK:STDOUT: %pattern_type.loc211_9 => constants.%pattern_type.5c2 +// CHECK:STDOUT: %array_type.loc211_57.1 => constants.%array_type.a08 +// CHECK:STDOUT: %.loc211_57.1 => constants.%.442 +// CHECK:STDOUT: %pattern_type.loc211_57 => constants.%pattern_type.f0d // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_impl_bad_interface.carbon b/toolchain/check/testdata/impl/fail_impl_bad_interface.carbon index 54523887f004..bd555a83e26c 100644 --- a/toolchain/check/testdata/impl/fail_impl_bad_interface.carbon +++ b/toolchain/check/testdata/impl/fail_impl_bad_interface.carbon @@ -65,8 +65,8 @@ impl {.a: bool} as type where .Self impls I {} // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %false: bool = bool_literal false [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -77,7 +77,7 @@ impl {.a: bool} as type where .Self impls I {} // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/impl/fail_impl_bad_type.carbon b/toolchain/check/testdata/impl/fail_impl_bad_type.carbon index 31a35ba2def3..e3e561e35484 100644 --- a/toolchain/check/testdata/impl/fail_impl_bad_type.carbon +++ b/toolchain/check/testdata/impl/fail_impl_bad_type.carbon @@ -27,10 +27,10 @@ impl true as I {} // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -39,7 +39,7 @@ impl true as I {} // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -57,7 +57,7 @@ impl true as I {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -73,5 +73,5 @@ impl true as I {} // CHECK:STDOUT: witness = // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_redefinition.carbon b/toolchain/check/testdata/impl/fail_redefinition.carbon index b11e3beafe42..6f34d01d5cbc 100644 --- a/toolchain/check/testdata/impl/fail_redefinition.carbon +++ b/toolchain/check/testdata/impl/fail_redefinition.carbon @@ -34,7 +34,7 @@ impl i32 as I {} // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness @i32.as.I.impl.eb29e8.1.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I.impl_witness: = impl_witness @i32.as.I.impl.6a2a49.1.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %i32, (%I.impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -54,11 +54,11 @@ impl i32 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} -// CHECK:STDOUT: impl_decl @i32.as.I.impl.eb29e8.1 [concrete] {} { +// CHECK:STDOUT: impl_decl @i32.as.I.impl.6a2a49.1 [concrete] {} { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @i32.as.I.impl.eb29e8.2 [concrete] {} { +// CHECK:STDOUT: impl_decl @i32.as.I.impl.6a2a49.2 [concrete] {} { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } @@ -75,8 +75,8 @@ impl i32 as I {} // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @i32.as.I.impl.eb29e8.1: %i32 as %I.ref { -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @i32.as.I.impl.eb29e8.1 [concrete] +// CHECK:STDOUT: impl @i32.as.I.impl.6a2a49.1: %i32 as %I.ref { +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @i32.as.I.impl.6a2a49.1 [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -84,7 +84,7 @@ impl i32 as I {} // CHECK:STDOUT: witness = %I.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @i32.as.I.impl.eb29e8.2: %i32 as %I.ref { +// CHECK:STDOUT: impl @i32.as.I.impl.6a2a49.2: %i32 as %I.ref { // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %I.ref // CHECK:STDOUT: witness = diff --git a/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon b/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon index 620cdbeecd23..9726c09f3295 100644 --- a/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon +++ b/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon @@ -55,46 +55,46 @@ impl i32 as I { // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.80a: type = class_type @C, @C(%T, %X) [symbolic] +// CHECK:STDOUT: %C.0b1: type = class_type @C, @C(%T, %X) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %pattern_type.998: type = pattern_type %I.type [concrete] -// CHECK:STDOUT: %C.1b7: type = class_type @C, @C(%I.type, %Self.179) [symbolic] -// CHECK:STDOUT: %pattern_type.48a: type = pattern_type %C.1b7 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.d9f: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.179) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.592: %I.WithSelf.F.type.d9f = struct_value () [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %I.type [concrete] +// CHECK:STDOUT: %C.a21: type = class_type @C, @C(%I.type, %Self.37e) [symbolic] +// CHECK:STDOUT: %pattern_type.59c: type = pattern_type %C.a21 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.dcc: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.37e) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ec6: %I.WithSelf.F.type.dcc = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.8fc: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %assoc0.6c9: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] -// CHECK:STDOUT: %I.impl_witness.08d: = impl_witness @bool.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %I.facet.0a8: %I.type = facet_value bool, (%I.impl_witness.08d) [concrete] -// CHECK:STDOUT: %C.56f: type = class_type @C, @C(%I.type, %I.facet.0a8) [concrete] -// CHECK:STDOUT: %pattern_type.7f1: type = pattern_type %C.56f [concrete] +// CHECK:STDOUT: %I.impl_witness.020: = impl_witness @bool.as.I.impl.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I.facet.11c: %I.type = facet_value bool, (%I.impl_witness.020) [concrete] +// CHECK:STDOUT: %C.071: type = class_type @C, @C(%I.type, %I.facet.11c) [concrete] +// CHECK:STDOUT: %pattern_type.85b: type = pattern_type %C.071 [concrete] // CHECK:STDOUT: %bool.as.I.impl.F.type: type = fn_type @bool.as.I.impl.F [concrete] // CHECK:STDOUT: %bool.as.I.impl.F: %bool.as.I.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.981: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.0a8) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.ef4: %I.WithSelf.F.type.981 = struct_value () [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.4fb: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.11c) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.492: %I.WithSelf.F.type.4fb = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %I.impl_witness.4c4: = impl_witness @i32.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %C.5a5: type = class_type @C, @C(type, %i32) [concrete] -// CHECK:STDOUT: %pattern_type.b2c: type = pattern_type %C.5a5 [concrete] -// CHECK:STDOUT: %i32.as.I.impl.F.type.9e994f.1: type = fn_type @i32.as.I.impl.F.loc43_18.1 [concrete] -// CHECK:STDOUT: %i32.as.I.impl.F.c7843c.1: %i32.as.I.impl.F.type.9e994f.1 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet.8fb: %I.type = facet_value %i32, (%I.impl_witness.4c4) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.d9d: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.8fb) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.b03: %I.WithSelf.F.type.d9d = struct_value () [concrete] -// CHECK:STDOUT: %C.f96: type = class_type @C, @C(%I.type, %I.facet.8fb) [concrete] -// CHECK:STDOUT: %pattern_type.560: type = pattern_type %C.f96 [concrete] -// CHECK:STDOUT: %i32.as.I.impl.F.type.9e994f.2: type = fn_type @i32.as.I.impl.F.loc43_18.2 [concrete] -// CHECK:STDOUT: %i32.as.I.impl.F.c7843c.2: %i32.as.I.impl.F.type.9e994f.2 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %I.impl_witness.903: = impl_witness @i32.as.I.impl.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %C.8dc: type = class_type @C, @C(type, %i32) [concrete] +// CHECK:STDOUT: %pattern_type.900: type = pattern_type %C.8dc [concrete] +// CHECK:STDOUT: %i32.as.I.impl.F.type.48cdab.1: type = fn_type @i32.as.I.impl.F.loc43_18.1 [concrete] +// CHECK:STDOUT: %i32.as.I.impl.F.bd5be1.1: %i32.as.I.impl.F.type.48cdab.1 = struct_value () [concrete] +// CHECK:STDOUT: %I.facet.858: %I.type = facet_value %i32, (%I.impl_witness.903) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.b7c: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.858) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.ae9: %I.WithSelf.F.type.b7c = struct_value () [concrete] +// CHECK:STDOUT: %C.efa: type = class_type @C, @C(%I.type, %I.facet.858) [concrete] +// CHECK:STDOUT: %pattern_type.b7c: type = pattern_type %C.efa [concrete] +// CHECK:STDOUT: %i32.as.I.impl.F.type.48cdab.2: type = fn_type @i32.as.I.impl.F.loc43_18.2 [concrete] +// CHECK:STDOUT: %i32.as.I.impl.F.bd5be1.2: %i32.as.I.impl.F.type.48cdab.2 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -107,7 +107,7 @@ impl i32 as I { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/parts/bool, Bool, loaded [concrete = constants.%Bool] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -144,23 +144,23 @@ impl i32 as I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.d9f) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.592)] { -// CHECK:STDOUT: %c.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.48a) = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: @I.WithSelf.F.%pattern_type (%pattern_type.48a) = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.dcc) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ec6)] { +// CHECK:STDOUT: %c.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.59c) = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: @I.WithSelf.F.%pattern_type (%pattern_type.59c) = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %c.param: @I.WithSelf.F.%C.loc25_17.1 (%C.1b7) = value_param call_param0 -// CHECK:STDOUT: %.loc25: type = splice_block %C.loc25_17.2 [symbolic = %C.loc25_17.1 (constants.%C.1b7)] { +// CHECK:STDOUT: %c.param: @I.WithSelf.F.%C.loc25_17.1 (%C.a21) = value_param call_param0 +// CHECK:STDOUT: %.loc25: type = splice_block %C.loc25_17.2 [symbolic = %C.loc25_17.1 (constants.%C.a21)] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] -// CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.179)] -// CHECK:STDOUT: %C.loc25_17.2: type = class_type @C, @C(constants.%I.type, constants.%Self.179) [symbolic = %C.loc25_17.1 (constants.%C.1b7)] +// CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.37e)] +// CHECK:STDOUT: %C.loc25_17.2: type = class_type @C, @C(constants.%I.type, constants.%Self.37e) [symbolic = %C.loc25_17.1 (constants.%C.a21)] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: @I.WithSelf.F.%C.loc25_17.1 (%C.1b7) = value_binding c, %c.param +// CHECK:STDOUT: %c: @I.WithSelf.F.%C.loc25_17.1 (%C.a21) = value_binding c, %c.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0.8fc] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0.6c9] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -175,22 +175,22 @@ impl i32 as I { // CHECK:STDOUT: // CHECK:STDOUT: impl @bool.as.I.impl: %.loc28 as %I.ref { // CHECK:STDOUT: %bool.as.I.impl.F.decl: %bool.as.I.impl.F.type = fn_decl @bool.as.I.impl.F [concrete = constants.%bool.as.I.impl.F] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.7f1 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.7f1 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.85b = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.85b = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %c.param: %C.56f = value_param call_param0 -// CHECK:STDOUT: %.loc32_22: type = splice_block %C [concrete = constants.%C.56f] { +// CHECK:STDOUT: %c.param: %C.071 = value_param call_param0 +// CHECK:STDOUT: %.loc32_22: type = splice_block %C [concrete = constants.%C.071] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %.loc32_13: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.loc32_13, (constants.%I.impl_witness.08d) [concrete = constants.%I.facet.0a8] -// CHECK:STDOUT: %.loc32_18: %I.type = converted %.loc32_13, %I.facet [concrete = constants.%I.facet.0a8] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%I.type, constants.%I.facet.0a8) [concrete = constants.%C.56f] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.loc32_13, (constants.%I.impl_witness.020) [concrete = constants.%I.facet.11c] +// CHECK:STDOUT: %.loc32_18: %I.type = converted %.loc32_13, %I.facet [concrete = constants.%I.facet.11c] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%I.type, constants.%I.facet.11c) [concrete = constants.%C.071] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %C.56f = value_binding c, %c.param +// CHECK:STDOUT: %c: %C.071 = value_binding c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%bool.as.I.impl.F.decl), @bool.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.08d] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.020] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .C = @@ -201,27 +201,27 @@ impl i32 as I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @i32.as.I.impl: %i32 as %I.ref { -// CHECK:STDOUT: %i32.as.I.impl.F.decl.loc43_18.1: %i32.as.I.impl.F.type.9e994f.1 = fn_decl @i32.as.I.impl.F.loc43_18.1 [concrete = constants.%i32.as.I.impl.F.c7843c.1] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.b2c = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.b2c = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %i32.as.I.impl.F.decl.loc43_18.1: %i32.as.I.impl.F.type.48cdab.1 = fn_decl @i32.as.I.impl.F.loc43_18.1 [concrete = constants.%i32.as.I.impl.F.bd5be1.1] { +// CHECK:STDOUT: %c.param_patt: %pattern_type.900 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.900 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %c.param: %C.5a5 = value_param call_param0 -// CHECK:STDOUT: %.loc43: type = splice_block %C [concrete = constants.%C.5a5] { +// CHECK:STDOUT: %c.param: %C.8dc = value_param call_param0 +// CHECK:STDOUT: %.loc43: type = splice_block %C [concrete = constants.%C.8dc] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %C: type = class_type @C, @C(type, constants.%i32) [concrete = constants.%C.5a5] +// CHECK:STDOUT: %C: type = class_type @C, @C(type, constants.%i32) [concrete = constants.%C.8dc] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %C.5a5 = value_binding c, %c.param +// CHECK:STDOUT: %c: %C.8dc = value_binding c, %c.param // CHECK:STDOUT: } -// CHECK:STDOUT: %i32.as.I.impl.F.decl.loc43_18.2: %i32.as.I.impl.F.type.9e994f.2 = fn_decl @i32.as.I.impl.F.loc43_18.2 [concrete = constants.%i32.as.I.impl.F.c7843c.2] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.560 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.560 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %i32.as.I.impl.F.decl.loc43_18.2: %i32.as.I.impl.F.type.48cdab.2 = fn_decl @i32.as.I.impl.F.loc43_18.2 [concrete = constants.%i32.as.I.impl.F.bd5be1.2] { +// CHECK:STDOUT: %c.param_patt: %pattern_type.b7c = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.b7c = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %c.param: %C.f96 = value_param call_param0 -// CHECK:STDOUT: %c: %C.f96 = value_binding c, %c.param +// CHECK:STDOUT: %c.param: %C.efa = value_param call_param0 +// CHECK:STDOUT: %c: %C.efa = value_binding c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%i32.as.I.impl.F.decl.loc43_18.2), @i32.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.4c4] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.903] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .C = @@ -242,26 +242,26 @@ impl i32 as I { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.80a +// CHECK:STDOUT: .Self = constants.%C.0b1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.179)] -// CHECK:STDOUT: %C.loc25_17.1: type = class_type @C, @C(constants.%I.type, %Self) [symbolic = %C.loc25_17.1 (constants.%C.1b7)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %C.loc25_17.1 [symbolic = %pattern_type (constants.%pattern_type.48a)] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.37e)] +// CHECK:STDOUT: %C.loc25_17.1: type = class_type @C, @C(constants.%I.type, %Self) [symbolic = %C.loc25_17.1 (constants.%C.a21)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %C.loc25_17.1 [symbolic = %pattern_type (constants.%pattern_type.59c)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%c.param: @I.WithSelf.F.%C.loc25_17.1 (%C.1b7)); +// CHECK:STDOUT: fn(%c.param: @I.WithSelf.F.%C.loc25_17.1 (%C.a21)); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @bool.as.I.impl.F(%c.param: %C.56f); +// CHECK:STDOUT: fn @bool.as.I.impl.F(%c.param: %C.071); // CHECK:STDOUT: -// CHECK:STDOUT: fn @i32.as.I.impl.F.loc43_18.1(%c.param: %C.5a5); +// CHECK:STDOUT: fn @i32.as.I.impl.F.loc43_18.1(%c.param: %C.8dc); // CHECK:STDOUT: -// CHECK:STDOUT: fn @i32.as.I.impl.F.loc43_18.2(%c.param: %C.f96) [thunk @i32.as.I.impl.%i32.as.I.impl.F.decl.loc43_18.1 for @I.WithSelf.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.8fb)] { +// CHECK:STDOUT: fn @i32.as.I.impl.F.loc43_18.2(%c.param: %C.efa) [thunk @i32.as.I.impl.%i32.as.I.impl.F.decl.loc43_18.1 for @I.WithSelf.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.858)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %i32.as.I.impl.F.type.9e994f.1 = name_ref F, @i32.as.I.impl.%i32.as.I.impl.F.decl.loc43_18.1 [concrete = constants.%i32.as.I.impl.F.c7843c.1] -// CHECK:STDOUT: %.loc25: %C.5a5 = converted %c.param, [concrete = ] +// CHECK:STDOUT: %F.ref: %i32.as.I.impl.F.type.48cdab.1 = name_ref F, @i32.as.I.impl.%i32.as.I.impl.F.decl.loc43_18.1 [concrete = constants.%i32.as.I.impl.F.bd5be1.1] +// CHECK:STDOUT: %.loc25: %C.8dc = converted %c.param, [concrete = ] // CHECK:STDOUT: %i32.as.I.impl.F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -272,42 +272,42 @@ impl i32 as I { // CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d1c4.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.179 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d9f -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.592 +// CHECK:STDOUT: %Self => constants.%Self.37e +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.dcc +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ec6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%I.type, constants.%Self.179) { +// CHECK:STDOUT: specific @C(constants.%I.type, constants.%Self.37e) { // CHECK:STDOUT: %T.loc15_10.1 => constants.%I.type -// CHECK:STDOUT: %X.loc15_20.1 => constants.%Self.179 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.998 +// CHECK:STDOUT: %X.loc15_20.1 => constants.%Self.37e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6cb // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.179) { -// CHECK:STDOUT: %Self => constants.%Self.179 -// CHECK:STDOUT: %C.loc25_17.1 => constants.%C.1b7 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.48a +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.37e) { +// CHECK:STDOUT: %Self => constants.%Self.37e +// CHECK:STDOUT: %C.loc25_17.1 => constants.%C.a21 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.59c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%I.type, constants.%I.facet.0a8) { +// CHECK:STDOUT: specific @C(constants.%I.type, constants.%I.facet.11c) { // CHECK:STDOUT: %T.loc15_10.1 => constants.%I.type -// CHECK:STDOUT: %X.loc15_20.1 => constants.%I.facet.0a8 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.998 +// CHECK:STDOUT: %X.loc15_20.1 => constants.%I.facet.11c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6cb // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.0a8) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.11c) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.0a8 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.981 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ef4 +// CHECK:STDOUT: %Self => constants.%I.facet.11c +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.4fb +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.492 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.0a8) { -// CHECK:STDOUT: %Self => constants.%I.facet.0a8 -// CHECK:STDOUT: %C.loc25_17.1 => constants.%C.56f -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7f1 +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.11c) { +// CHECK:STDOUT: %Self => constants.%I.facet.11c +// CHECK:STDOUT: %C.loc25_17.1 => constants.%C.071 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.85b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(type, constants.%i32) { @@ -318,23 +318,23 @@ impl i32 as I { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.8fb) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.858) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.8fb -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d9d -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.b03 +// CHECK:STDOUT: %Self => constants.%I.facet.858 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.b7c +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ae9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.8fb) { -// CHECK:STDOUT: %Self => constants.%I.facet.8fb -// CHECK:STDOUT: %C.loc25_17.1 => constants.%C.f96 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.560 +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.858) { +// CHECK:STDOUT: %Self => constants.%I.facet.858 +// CHECK:STDOUT: %C.loc25_17.1 => constants.%C.efa +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b7c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%I.type, constants.%I.facet.8fb) { +// CHECK:STDOUT: specific @C(constants.%I.type, constants.%I.facet.858) { // CHECK:STDOUT: %T.loc15_10.1 => constants.%I.type -// CHECK:STDOUT: %X.loc15_20.1 => constants.%I.facet.8fb -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.998 +// CHECK:STDOUT: %X.loc15_20.1 => constants.%I.facet.858 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6cb // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/forward_decls.carbon b/toolchain/check/testdata/impl/forward_decls.carbon index 5aba1dbb5f21..2458451ef3b9 100644 --- a/toolchain/check/testdata/impl/forward_decls.carbon +++ b/toolchain/check/testdata/impl/forward_decls.carbon @@ -304,15 +304,15 @@ impl C as Y {} // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @empty_struct_type.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.G.type.cf7: type = fn_type @I.WithSelf.G, @I.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %I.WithSelf.G.788: %I.WithSelf.G.type.cf7 = struct_value () [symbolic] +// CHECK:STDOUT: %I.WithSelf.G.type.d1f: type = fn_type @I.WithSelf.G, @I.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %I.WithSelf.G.44c: %I.WithSelf.G.type.d1f = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.G.decl [concrete] // CHECK:STDOUT: %empty_struct_type.as.I.impl.G.type: type = fn_type @empty_struct_type.as.I.impl.G [concrete] // CHECK:STDOUT: %empty_struct_type.as.I.impl.G: %empty_struct_type.as.I.impl.G.type = struct_value () [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %empty_struct_type, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.G.type.eac: type = fn_type @I.WithSelf.G, @I.WithSelf(%I.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.G.e5d: %I.WithSelf.G.type.eac = struct_value () [concrete] +// CHECK:STDOUT: %I.WithSelf.G.type.d68: type = fn_type @I.WithSelf.G, @I.WithSelf(%I.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.G.a3d: %I.WithSelf.G.type.d68 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -347,7 +347,7 @@ impl C as Y {} // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %I.WithSelf.G.decl: @I.WithSelf.%I.WithSelf.G.type (%I.WithSelf.G.type.cf7) = fn_decl @I.WithSelf.G [symbolic = @I.WithSelf.%I.WithSelf.G (constants.%I.WithSelf.G.788)] {} {} +// CHECK:STDOUT: %I.WithSelf.G.decl: @I.WithSelf.%I.WithSelf.G.type (%I.WithSelf.G.type.d1f) = fn_decl @I.WithSelf.G [symbolic = @I.WithSelf.%I.WithSelf.G (constants.%I.WithSelf.G.44c)] {} {} // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.G.decl [concrete = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -381,8 +381,8 @@ impl C as Y {} // CHECK:STDOUT: specific @I.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %I.WithSelf.G.type => constants.%I.WithSelf.G.type.cf7 -// CHECK:STDOUT: %I.WithSelf.G => constants.%I.WithSelf.G.788 +// CHECK:STDOUT: %I.WithSelf.G.type => constants.%I.WithSelf.G.type.d1f +// CHECK:STDOUT: %I.WithSelf.G => constants.%I.WithSelf.G.44c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.G(constants.%Self) {} @@ -390,8 +390,8 @@ impl C as Y {} // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.G.type => constants.%I.WithSelf.G.type.eac -// CHECK:STDOUT: %I.WithSelf.G => constants.%I.WithSelf.G.e5d +// CHECK:STDOUT: %I.WithSelf.G.type => constants.%I.WithSelf.G.type.d68 +// CHECK:STDOUT: %I.WithSelf.G => constants.%I.WithSelf.G.a3d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.G(constants.%I.facet) {} @@ -402,18 +402,18 @@ impl C as Y {} // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.fd8: type = generic_interface_type @BitAndWith [concrete] -// CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.fd8 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.2af: type = facet_type <@BitAndWith, @BitAndWith(type)> [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] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.2af = facet_value type, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.5d1: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %.9ee: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.5d1, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %I.type, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @empty_struct_type.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %I.facet: %I.type = facet_value %empty_struct_type, (%I.impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -423,9 +423,9 @@ impl C as Y {} // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.fd8 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @type.as.BitAndWith.impl [concrete] +// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.a06 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @type.as.BitAndWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -442,7 +442,7 @@ impl C as Y {} // CHECK:STDOUT: %.loc4_7.2: type = converted %.loc4_7.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %I.ref.loc4_12: type = name_ref I, file.%I.decl.loc3 [concrete = constants.%I.type] // CHECK:STDOUT: %I.ref.loc4_16: type = name_ref I, file.%I.decl.loc3 [concrete = constants.%I.type] -// CHECK:STDOUT: %impl.elem0.loc4: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc4: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method.loc4: = bound_method %I.ref.loc4_12, %impl.elem0.loc4 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc4: init type = call %bound_method.loc4(%I.ref.loc4_12, %I.ref.loc4_16) [concrete = constants.%I.type] // CHECK:STDOUT: } @@ -454,14 +454,14 @@ impl C as Y {} // CHECK:STDOUT: %.loc7_7.2: type = converted %.loc7_7.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %I.ref.loc7_12: type = name_ref I, file.%I.decl.loc3 [concrete = constants.%I.type] // CHECK:STDOUT: %I.ref.loc7_16: type = name_ref I, file.%I.decl.loc3 [concrete = constants.%I.type] -// CHECK:STDOUT: %impl.elem0.loc7: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc7: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method.loc7: = bound_method %I.ref.loc7_12, %impl.elem0.loc7 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc7: init type = call %bound_method.loc7(%I.ref.loc7_12, %I.ref.loc7_16) [concrete = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -480,7 +480,7 @@ impl C as Y {} // CHECK:STDOUT: witness = %I.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1096,27 +1096,27 @@ impl C as Y {} // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.50f: type = facet_type <@I, @I(%U)> [symbolic] -// CHECK:STDOUT: %Self.626: %I.type.50f = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.assoc_type.bd7: type = assoc_entity_type @I, @I(%U) [symbolic] -// CHECK:STDOUT: %assoc0.832: %I.assoc_type.bd7 = assoc_entity element0, @I.WithSelf.%T [symbolic] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%U)> [symbolic] +// CHECK:STDOUT: %Self.191: %I.type.3fe = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.assoc_type.b71: type = assoc_entity_type @I, @I(%U) [symbolic] +// CHECK:STDOUT: %assoc0.9f8: %I.assoc_type.b71 = assoc_entity element0, @I.WithSelf.%T [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %I.type.37e: type = facet_type <@I, @I(%C)> [concrete] -// CHECK:STDOUT: %.Self.d20: %I.type.37e = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Self.f35: %I.type.37e = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.assoc_type.69b: type = assoc_entity_type @I, @I(%C) [concrete] -// CHECK:STDOUT: %assoc0.cf2: %I.assoc_type.69b = assoc_entity element0, @I.WithSelf.%T [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.d20 [symbolic_self] -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.d20, @I, @I(%C) [symbolic_self] +// CHECK:STDOUT: %I.type.c9e: type = facet_type <@I, @I(%C)> [concrete] +// CHECK:STDOUT: %.Self.30a: %I.type.c9e = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Self.29c: %I.type.c9e = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.assoc_type.fc8: type = assoc_entity_type @I, @I(%C) [concrete] +// CHECK:STDOUT: %assoc0.540: %I.assoc_type.fc8 = assoc_entity element0, @I.WithSelf.%T [concrete] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.30a [symbolic_self] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.30a, @I, @I(%C) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I, @I(%C) where %impl.elem0 = %C> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @D.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %I.facet: %I.type.37e = facet_value %D, (%I.impl_witness) [concrete] +// CHECK:STDOUT: %I.facet: %I.type.c9e = facet_value %D, (%I.impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1134,7 +1134,7 @@ impl C as Y {} // CHECK:STDOUT: .D = %D.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %I.decl: %I.type.48c = interface_decl @I [concrete = constants.%I.generic] { +// CHECK:STDOUT: %I.decl: %I.type.335 = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %U.patt: %pattern_type = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc3_17.1: type = splice_block %.loc3_17.2 [concrete = type] { @@ -1147,15 +1147,15 @@ impl C as Y {} // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: impl_decl @D.as.I.impl [concrete] {} { // CHECK:STDOUT: %D.ref.loc8: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %I.ref.loc8: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref.loc8: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %C.ref.loc8_13: type = name_ref C, file.%C.decl.loc6 [concrete = constants.%C] -// CHECK:STDOUT: %I.type.loc8: type = facet_type <@I, @I(constants.%C)> [concrete = constants.%I.type.37e] -// CHECK:STDOUT: %.Self.loc8: %I.type.37e = symbolic_binding .Self [symbolic_self = constants.%.Self.d20] -// CHECK:STDOUT: %.Self.ref.loc8: %I.type.37e = name_ref .Self, %.Self.loc8 [symbolic_self = constants.%.Self.d20] +// CHECK:STDOUT: %I.type.loc8: type = facet_type <@I, @I(constants.%C)> [concrete = constants.%I.type.c9e] +// CHECK:STDOUT: %.Self.loc8: %I.type.c9e = symbolic_binding .Self [symbolic_self = constants.%.Self.30a] +// CHECK:STDOUT: %.Self.ref.loc8: %I.type.c9e = name_ref .Self, %.Self.loc8 [symbolic_self = constants.%.Self.30a] // CHECK:STDOUT: %.Self.as_type.loc8: type = facet_access_type %.Self.ref.loc8 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_22.1: type = converted %.Self.ref.loc8, %.Self.as_type.loc8 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc8_22.2: %I.assoc_type.69b = specific_constant @T.%assoc0, @I.WithSelf(constants.%C, constants.%.Self.d20) [concrete = constants.%assoc0.cf2] -// CHECK:STDOUT: %T.ref.loc8: %I.assoc_type.69b = name_ref T, %.loc8_22.2 [concrete = constants.%assoc0.cf2] +// CHECK:STDOUT: %.loc8_22.2: %I.assoc_type.fc8 = specific_constant @T.%assoc0, @I.WithSelf(constants.%C, constants.%.Self.30a) [concrete = constants.%assoc0.540] +// CHECK:STDOUT: %T.ref.loc8: %I.assoc_type.fc8 = name_ref T, %.loc8_22.2 [concrete = constants.%assoc0.540] // CHECK:STDOUT: %impl.elem0.loc8: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %C.ref.loc8_27: type = name_ref C, file.%C.decl.loc6 [concrete = constants.%C] // CHECK:STDOUT: %.loc8_16: type = where_expr [concrete = constants.%I_where.type] { @@ -1166,15 +1166,15 @@ impl C as Y {} // CHECK:STDOUT: %C.decl.loc10: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: impl_decl @D.as.I.impl [concrete] {} { // CHECK:STDOUT: %D.ref.loc11: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %I.ref.loc11: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref.loc11: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %C.ref.loc11_13: type = name_ref C, file.%C.decl.loc6 [concrete = constants.%C] -// CHECK:STDOUT: %I.type.loc11: type = facet_type <@I, @I(constants.%C)> [concrete = constants.%I.type.37e] -// CHECK:STDOUT: %.Self.loc11: %I.type.37e = symbolic_binding .Self [symbolic_self = constants.%.Self.d20] -// CHECK:STDOUT: %.Self.ref.loc11: %I.type.37e = name_ref .Self, %.Self.loc11 [symbolic_self = constants.%.Self.d20] +// CHECK:STDOUT: %I.type.loc11: type = facet_type <@I, @I(constants.%C)> [concrete = constants.%I.type.c9e] +// CHECK:STDOUT: %.Self.loc11: %I.type.c9e = symbolic_binding .Self [symbolic_self = constants.%.Self.30a] +// CHECK:STDOUT: %.Self.ref.loc11: %I.type.c9e = name_ref .Self, %.Self.loc11 [symbolic_self = constants.%.Self.30a] // CHECK:STDOUT: %.Self.as_type.loc11: type = facet_access_type %.Self.ref.loc11 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc11_22.1: type = converted %.Self.ref.loc11, %.Self.as_type.loc11 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc11_22.2: %I.assoc_type.69b = specific_constant @T.%assoc0, @I.WithSelf(constants.%C, constants.%.Self.d20) [concrete = constants.%assoc0.cf2] -// CHECK:STDOUT: %T.ref.loc11: %I.assoc_type.69b = name_ref T, %.loc11_22.2 [concrete = constants.%assoc0.cf2] +// CHECK:STDOUT: %.loc11_22.2: %I.assoc_type.fc8 = specific_constant @T.%assoc0, @I.WithSelf(constants.%C, constants.%.Self.30a) [concrete = constants.%assoc0.540] +// CHECK:STDOUT: %T.ref.loc11: %I.assoc_type.fc8 = name_ref T, %.loc11_22.2 [concrete = constants.%assoc0.540] // CHECK:STDOUT: %impl.elem0.loc11: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %C.ref.loc11_27: type = name_ref C, file.%C.decl.loc6 [concrete = constants.%C] // CHECK:STDOUT: %.loc11_16: type = where_expr [concrete = constants.%I_where.type] { @@ -1188,16 +1188,16 @@ impl C as Y {} // CHECK:STDOUT: %U.loc3_14.1: type = symbolic_binding U, 0 [symbolic = %U.loc3_14.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U.loc3_14.1)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self.loc3_23.2: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.626)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U.loc3_14.1)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self.loc3_23.2: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.191)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc3_23.1: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.626)] +// CHECK:STDOUT: %Self.loc3_23.1: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.191)] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] { -// CHECK:STDOUT: %assoc0: @I.WithSelf.%I.assoc_type (%I.assoc_type.bd7) = assoc_entity element0, @I.WithSelf.%T [symbolic = @I.WithSelf.%assoc0 (constants.%assoc0.832)] +// CHECK:STDOUT: %assoc0: @I.WithSelf.%I.assoc_type (%I.assoc_type.b71) = assoc_entity element0, @I.WithSelf.%T [symbolic = @I.WithSelf.%assoc0 (constants.%assoc0.9f8)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1239,35 +1239,35 @@ impl C as Y {} // CHECK:STDOUT: %U.loc3_14.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%U, constants.%Self.626) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%U, constants.%Self.191) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%C) { // CHECK:STDOUT: %U.loc3_14.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.37e -// CHECK:STDOUT: %Self.loc3_23.2 => constants.%Self.f35 +// CHECK:STDOUT: %I.type => constants.%I.type.c9e +// CHECK:STDOUT: %Self.loc3_23.2 => constants.%Self.29c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%C, constants.%Self.626) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%C, constants.%Self.191) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %U => constants.%C -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.69b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.cf2 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.fc8 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.540 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%C, constants.%.Self.d20) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%C, constants.%.Self.30a) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %U => constants.%C -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.69b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.cf2 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.fc8 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.540 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%C, constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %U => constants.%C -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.69b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.cf2 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.fc8 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.540 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- find_incomplete_impl.carbon @@ -1280,14 +1280,14 @@ impl C as Y {} // CHECK:STDOUT: %I.impl_witness: = impl_witness @D.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.998: type = pattern_type %I.type [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %T: %I.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.c65: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.fde: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %I.facet: %I.type = facet_value %D, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %C.484: type = class_type @C, @C(%I.facet) [concrete] -// CHECK:STDOUT: %pattern_type.e0f: type = pattern_type %C.484 [concrete] +// CHECK:STDOUT: %C.fd5: type = class_type @C, @C(%I.facet) [concrete] +// CHECK:STDOUT: %pattern_type.0a8: type = pattern_type %C.fd5 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] @@ -1316,7 +1316,7 @@ impl C as Y {} // CHECK:STDOUT: %I.ref.loc5: type = name_ref I, file.%I.decl.loc3 [concrete = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl.loc6: %C.type = class_decl @C [concrete = constants.%C.generic] { -// CHECK:STDOUT: %T.patt: %pattern_type.998 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.6cb = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6: type = splice_block %I.ref.loc6 [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self.loc6: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1325,18 +1325,18 @@ impl C as Y {} // CHECK:STDOUT: %T.loc6_10.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc6_10.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl.loc8: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.e0f = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.e0f = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.0a8 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.0a8 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %x.param.loc8: %C.484 = value_param call_param0 -// CHECK:STDOUT: %.loc8_12.1: type = splice_block %C.loc8 [concrete = constants.%C.484] { +// CHECK:STDOUT: %x.param.loc8: %C.fd5 = value_param call_param0 +// CHECK:STDOUT: %.loc8_12.1: type = splice_block %C.loc8 [concrete = constants.%C.fd5] { // CHECK:STDOUT: %C.ref.loc8: %C.type = name_ref C, file.%C.decl.loc6 [concrete = constants.%C.generic] // CHECK:STDOUT: %D.ref.loc8: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %I.facet.loc8: %I.type = facet_value %D.ref.loc8, (constants.%I.impl_witness) [concrete = constants.%I.facet] // CHECK:STDOUT: %.loc8_12.2: %I.type = converted %D.ref.loc8, %I.facet.loc8 [concrete = constants.%I.facet] -// CHECK:STDOUT: %C.loc8: type = class_type @C, @C(constants.%I.facet) [concrete = constants.%C.484] +// CHECK:STDOUT: %C.loc8: type = class_type @C, @C(constants.%I.facet) [concrete = constants.%C.fd5] // CHECK:STDOUT: } -// CHECK:STDOUT: %x.loc8: %C.484 = value_binding x, %x.param.loc8 +// CHECK:STDOUT: %x.loc8: %C.fd5 = value_binding x, %x.param.loc8 // CHECK:STDOUT: } // CHECK:STDOUT: %I.decl.loc10: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: impl_decl @D.as.I.impl [concrete] {} { @@ -1344,7 +1344,7 @@ impl C as Y {} // CHECK:STDOUT: %I.ref.loc11: type = name_ref I, file.%I.decl.loc3 [concrete = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl.loc12: %C.type = class_decl @C [concrete = constants.%C.generic] { -// CHECK:STDOUT: %T.patt: %pattern_type.998 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.6cb = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc12: type = splice_block %I.ref.loc12 [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self.loc12: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1353,18 +1353,18 @@ impl C as Y {} // CHECK:STDOUT: %T.loc12: %I.type = symbolic_binding T, 0 [symbolic = %T.loc6_10.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl.loc14: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.e0f = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.e0f = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.0a8 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.0a8 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %x.param.loc14: %C.484 = value_param call_param0 -// CHECK:STDOUT: %.loc14_19.1: type = splice_block %C.loc14 [concrete = constants.%C.484] { +// CHECK:STDOUT: %x.param.loc14: %C.fd5 = value_param call_param0 +// CHECK:STDOUT: %.loc14_19.1: type = splice_block %C.loc14 [concrete = constants.%C.fd5] { // CHECK:STDOUT: %C.ref.loc14: %C.type = name_ref C, file.%C.decl.loc6 [concrete = constants.%C.generic] // CHECK:STDOUT: %D.ref.loc14: type = name_ref D, file.%D.decl [concrete = constants.%D] // CHECK:STDOUT: %I.facet.loc14: %I.type = facet_value %D.ref.loc14, (constants.%I.impl_witness) [concrete = constants.%I.facet] // CHECK:STDOUT: %.loc14_19.2: %I.type = converted %D.ref.loc14, %I.facet.loc14 [concrete = constants.%I.facet] -// CHECK:STDOUT: %C.loc14: type = class_type @C, @C(constants.%I.facet) [concrete = constants.%C.484] +// CHECK:STDOUT: %C.loc14: type = class_type @C, @C(constants.%I.facet) [concrete = constants.%C.fd5] // CHECK:STDOUT: } -// CHECK:STDOUT: %x.loc14: %C.484 = value_binding x, %x.param.loc14 +// CHECK:STDOUT: %x.loc14: %C.fd5 = value_binding x, %x.param.loc14 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1406,11 +1406,11 @@ impl C as Y {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.c65 +// CHECK:STDOUT: .Self = constants.%C.fde // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%x.param.loc14: %C.484) { +// CHECK:STDOUT: fn @F(%x.param.loc14: %C.fd5) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1440,19 +1440,19 @@ impl C as Y {} // CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.fd8: type = generic_interface_type @BitAndWith [concrete] -// CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.fd8 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.2af: type = facet_type <@BitAndWith, @BitAndWith(type)> [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] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.2af = facet_value type, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.5d1: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %.9ee: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.5d1, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %I.type, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %facet_type: type = facet_type <@I & @J> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.fd8: %J.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.653: %J.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1461,9 +1461,9 @@ impl C as Y {} // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.fd8 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @type.as.BitAndWith.impl [concrete] +// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.a06 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @type.as.BitAndWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1482,7 +1482,7 @@ impl C as Y {} // CHECK:STDOUT: %.loc10_7.2: type = converted %.loc10_7.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl.loc3 [concrete = constants.%I.type] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl.loc4 [concrete = constants.%J.type] -// CHECK:STDOUT: %impl.elem0: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %I.ref, %impl.elem0 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method(%I.ref, %J.ref) [concrete = constants.%facet_type] // CHECK:STDOUT: } @@ -1491,7 +1491,7 @@ impl C as Y {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1502,7 +1502,7 @@ impl C as Y {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @J { -// CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = constants.%Self.fd8] +// CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = constants.%Self.653] // CHECK:STDOUT: %J.WithSelf.decl = interface_with_self_decl @J [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1514,9 +1514,9 @@ impl C as Y {} // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_struct_type.as..impl: %.loc10_7.2 as ; // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%Self.fd8) {} +// CHECK:STDOUT: specific @J.WithSelf(constants.%Self.653) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_never_assigned_associated_const.carbon // CHECK:STDOUT: @@ -1647,29 +1647,29 @@ impl C as Y {} // CHECK:STDOUT: %X.type: type = facet_type <@X> [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.4e6: type = pattern_type %X.type [concrete] +// CHECK:STDOUT: %pattern_type.ffc: type = pattern_type %X.type [concrete] // CHECK:STDOUT: %_: %X.type = symbolic_binding _, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %U: %X.type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] -// CHECK:STDOUT: %pattern_type.669: type = pattern_type %U.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.fa2: type = pattern_type %U.as_type [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %X.impl_witness: = impl_witness @C.as.X.impl.%X.impl_witness_table [concrete] // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] -// CHECK:STDOUT: %Self.8bd: %X.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.b43: %X.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] // CHECK:STDOUT: %X.facet: %X.type = facet_value %C, (%X.impl_witness) [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%X.facet) [concrete] // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%X.facet) [concrete] -// CHECK:STDOUT: %Self.d9e: %Y.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.765: %Y.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type [symbolic] // CHECK:STDOUT: %Y.impl_witness: = impl_witness @C.as.Y.impl.%Y.impl_witness_table [concrete] // CHECK:STDOUT: %Y.facet: %Y.type = facet_value %C, (%Y.impl_witness) [concrete] @@ -1695,7 +1695,7 @@ impl C as Y {} // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %X.decl.loc3: type = interface_decl @X [concrete = constants.%X.type] {} {} // CHECK:STDOUT: %F.decl.loc6: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %_.patt: %pattern_type.4e6 = symbolic_binding_pattern _, 0 [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.ffc = symbolic_binding_pattern _, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6: type = splice_block %X.ref.loc6 [concrete = constants.%X.type] { // CHECK:STDOUT: %.Self.loc6: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1704,9 +1704,9 @@ impl C as Y {} // CHECK:STDOUT: %_.loc6_7.2: %X.type = symbolic_binding _, 0 [symbolic = %_.loc6_7.1 (constants.%_)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl.loc7: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %U.patt: %pattern_type.4e6 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.669) = value_param_pattern [concrete] -// CHECK:STDOUT: %u.patt: @G.%pattern_type (%pattern_type.669) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %U.patt: %pattern_type.ffc = symbolic_binding_pattern U, 0 [concrete] +// CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.fa2) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @G.%pattern_type (%pattern_type.fa2) = at_binding_pattern u, %u.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_10: type = splice_block %X.ref.loc7 [concrete = constants.%X.type] { // CHECK:STDOUT: %.Self.loc7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1730,8 +1730,8 @@ impl C as Y {} // CHECK:STDOUT: %X.decl.loc16: type = interface_decl @X [concrete = constants.%X.type] {} {} // CHECK:STDOUT: %C.decl.loc23: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc25: type = name_ref C, file.%C.decl.loc9 [concrete = constants.%C] @@ -1739,7 +1739,7 @@ impl C as Y {} // CHECK:STDOUT: } // CHECK:STDOUT: %Y.decl.loc33: type = interface_decl @Y [concrete = constants.%Y.type] {} {} // CHECK:STDOUT: %F.decl.loc34: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %_.patt: %pattern_type.4e6 = symbolic_binding_pattern _, 0 [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.ffc = symbolic_binding_pattern _, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc34: type = splice_block %X.ref.loc34 [concrete = constants.%X.type] { // CHECK:STDOUT: %.Self.loc34: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1748,9 +1748,9 @@ impl C as Y {} // CHECK:STDOUT: %_.loc34: %X.type = symbolic_binding _, 0 [symbolic = %_.loc6_7.1 (constants.%_)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl.loc35: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %U.patt: %pattern_type.4e6 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.669) = value_param_pattern [concrete] -// CHECK:STDOUT: %u.patt: @G.%pattern_type (%pattern_type.669) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %U.patt: %pattern_type.ffc = symbolic_binding_pattern U, 0 [concrete] +// CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.fa2) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @G.%pattern_type (%pattern_type.fa2) = at_binding_pattern u, %u.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc35_10: type = splice_block %X.ref.loc35 [concrete = constants.%X.type] { // CHECK:STDOUT: %.Self.loc35: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1780,7 +1780,7 @@ impl C as Y {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @X { -// CHECK:STDOUT: %Self: %X.type = symbolic_binding Self, 0 [symbolic = constants.%Self.8bd] +// CHECK:STDOUT: %Self: %X.type = symbolic_binding Self, 0 [symbolic = constants.%Self.b43] // CHECK:STDOUT: %X.WithSelf.decl = interface_with_self_decl @X [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1791,7 +1791,7 @@ impl C as Y {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Y { -// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d9e] +// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = constants.%Self.765] // CHECK:STDOUT: %Y.WithSelf.decl = interface_with_self_decl @Y [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1841,7 +1841,7 @@ impl C as Y {} // CHECK:STDOUT: generic fn @G(%U.loc7_7.2: %X.type) { // CHECK:STDOUT: %U.loc7_7.1: %X.type = symbolic_binding U, 0 [symbolic = %U.loc7_7.1 (constants.%U)] // CHECK:STDOUT: %U.as_type.loc7_16.1: type = facet_access_type %U.loc7_7.1 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc7_16.1 [symbolic = %pattern_type (constants.%pattern_type.669)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc7_16.1 [symbolic = %pattern_type (constants.%pattern_type.fa2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc7_16.1 [symbolic = %require_complete (constants.%require_complete)] @@ -1876,10 +1876,10 @@ impl C as Y {} // CHECK:STDOUT: specific @G(constants.%U) { // CHECK:STDOUT: %U.loc7_7.1 => constants.%U // CHECK:STDOUT: %U.as_type.loc7_16.1 => constants.%U.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.669 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fa2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X.WithSelf(constants.%Self.8bd) { +// CHECK:STDOUT: specific @X.WithSelf(constants.%Self.b43) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1892,13 +1892,13 @@ impl C as Y {} // CHECK:STDOUT: specific @G(constants.%X.facet) { // CHECK:STDOUT: %U.loc7_7.1 => constants.%X.facet // CHECK:STDOUT: %U.as_type.loc7_16.1 => constants.%C -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d5 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.d9e) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.765) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/generic_redeclaration.carbon b/toolchain/check/testdata/impl/generic_redeclaration.carbon index 7ef4c4b289b3..fefbfae81b67 100644 --- a/toolchain/check/testdata/impl/generic_redeclaration.carbon +++ b/toolchain/check/testdata/impl/generic_redeclaration.carbon @@ -122,37 +122,37 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [concrete] -// CHECK:STDOUT: %Self.b54: %Interface.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.3ce: %Interface.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete] -// CHECK:STDOUT: %Self.fd8: %J.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.653: %J.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %K.type: type = facet_type <@K> [concrete] -// CHECK:STDOUT: %Self.563: %K.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.a32: %K.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %L.type: type = facet_type <@L> [concrete] -// CHECK:STDOUT: %Self.8bb: %L.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.480: %L.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.998: type = pattern_type %I.type [concrete] -// CHECK:STDOUT: %T.2e1: %I.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.a70: type = facet_access_type %T.2e1 [symbolic] -// CHECK:STDOUT: %Interface.impl_witness.56d: = impl_witness @T.as_type.as.Interface.impl.baa.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.baa(%T.2e1) [symbolic] -// CHECK:STDOUT: %pattern_type.1b4: type = pattern_type %J.type [concrete] -// CHECK:STDOUT: %T.1f3: %J.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.771: type = facet_access_type %T.1f3 [symbolic] -// CHECK:STDOUT: %Interface.impl_witness.bf9: = impl_witness @T.as_type.as.Interface.impl.497.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.497(%T.1f3) [symbolic] -// CHECK:STDOUT: %pattern_type.53b: type = pattern_type %K.type [concrete] -// CHECK:STDOUT: %T.529: %K.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.f53: type = facet_access_type %T.529 [symbolic] -// CHECK:STDOUT: %Interface.impl_witness.e0b: = impl_witness @T.as_type.as.Interface.impl.d87.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.d87(%T.529) [symbolic] -// CHECK:STDOUT: %pattern_type.80e: type = pattern_type %L.type [concrete] -// CHECK:STDOUT: %T.3c8: %L.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.830: type = facet_access_type %T.3c8 [symbolic] -// CHECK:STDOUT: %Interface.impl_witness.a2c: = impl_witness @T.as_type.as.Interface.impl.b79.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.b79(%T.3c8) [symbolic] -// CHECK:STDOUT: %Interface.facet.eb5: %Interface.type = facet_value %T.as_type.a70, (%Interface.impl_witness.56d) [symbolic] -// CHECK:STDOUT: %Interface.facet.0b3: %Interface.type = facet_value %T.as_type.771, (%Interface.impl_witness.bf9) [symbolic] -// CHECK:STDOUT: %Interface.facet.bbf: %Interface.type = facet_value %T.as_type.f53, (%Interface.impl_witness.e0b) [symbolic] -// CHECK:STDOUT: %Interface.facet.b18: %Interface.type = facet_value %T.as_type.830, (%Interface.impl_witness.a2c) [symbolic] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %I.type [concrete] +// CHECK:STDOUT: %T.dda: %I.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.b38: type = facet_access_type %T.dda [symbolic] +// CHECK:STDOUT: %Interface.impl_witness.5b0: = impl_witness @T.as_type.as.Interface.impl.72f.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.72f(%T.dda) [symbolic] +// CHECK:STDOUT: %pattern_type.2c5: type = pattern_type %J.type [concrete] +// CHECK:STDOUT: %T.e40: %J.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.d90: type = facet_access_type %T.e40 [symbolic] +// CHECK:STDOUT: %Interface.impl_witness.614: = impl_witness @T.as_type.as.Interface.impl.24e.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.24e(%T.e40) [symbolic] +// CHECK:STDOUT: %pattern_type.b64: type = pattern_type %K.type [concrete] +// CHECK:STDOUT: %T.062: %K.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.1ea: type = facet_access_type %T.062 [symbolic] +// CHECK:STDOUT: %Interface.impl_witness.bda: = impl_witness @T.as_type.as.Interface.impl.b21.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.b21(%T.062) [symbolic] +// CHECK:STDOUT: %pattern_type.25e: type = pattern_type %L.type [concrete] +// CHECK:STDOUT: %T.709: %L.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.56f: type = facet_access_type %T.709 [symbolic] +// CHECK:STDOUT: %Interface.impl_witness.9d3: = impl_witness @T.as_type.as.Interface.impl.2b4.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.2b4(%T.709) [symbolic] +// CHECK:STDOUT: %Interface.facet.8e9: %Interface.type = facet_value %T.as_type.b38, (%Interface.impl_witness.5b0) [symbolic] +// CHECK:STDOUT: %Interface.facet.d46: %Interface.type = facet_value %T.as_type.d90, (%Interface.impl_witness.614) [symbolic] +// CHECK:STDOUT: %Interface.facet.8be: %Interface.type = facet_value %T.as_type.1ea, (%Interface.impl_witness.bda) [symbolic] +// CHECK:STDOUT: %Interface.facet.ed4: %Interface.type = facet_value %T.as_type.56f, (%Interface.impl_witness.9d3) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -177,114 +177,114 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} // CHECK:STDOUT: %K.decl: type = interface_decl @K [concrete = constants.%K.type] {} {} // CHECK:STDOUT: %L.decl: type = interface_decl @L [concrete = constants.%L.type] {} {} -// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.baa [concrete] { -// CHECK:STDOUT: %T.patt: %pattern_type.998 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.72f [concrete] { +// CHECK:STDOUT: %T.patt: %pattern_type.6cb = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc12: %I.type = name_ref T, %T.loc12_15.1 [symbolic = %T.loc12_15.2 (constants.%T.2e1)] -// CHECK:STDOUT: %T.as_type.loc12_21.1: type = facet_access_type %T.ref.loc12 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.a70)] -// CHECK:STDOUT: %.loc12_21: type = converted %T.ref.loc12, %T.as_type.loc12_21.1 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.a70)] +// CHECK:STDOUT: %T.ref.loc12: %I.type = name_ref T, %T.loc12_15.1 [symbolic = %T.loc12_15.2 (constants.%T.dda)] +// CHECK:STDOUT: %T.as_type.loc12_21.1: type = facet_access_type %T.ref.loc12 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.b38)] +// CHECK:STDOUT: %.loc12_21: type = converted %T.ref.loc12, %T.as_type.loc12_21.1 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.b38)] // CHECK:STDOUT: %Interface.ref.loc12: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %.loc12_18: type = splice_block %I.ref.loc12 [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self.loc12: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %I.ref.loc12: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc12_15.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc12_15.2 (constants.%T.2e1)] +// CHECK:STDOUT: %T.loc12_15.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc12_15.2 (constants.%T.dda)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.497 [concrete] { -// CHECK:STDOUT: %T.patt: %pattern_type.1b4 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.24e [concrete] { +// CHECK:STDOUT: %T.patt: %pattern_type.2c5 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc13: %J.type = name_ref T, %T.loc13_15.1 [symbolic = %T.loc13_15.2 (constants.%T.1f3)] -// CHECK:STDOUT: %T.as_type.loc13_21.1: type = facet_access_type %T.ref.loc13 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.771)] -// CHECK:STDOUT: %.loc13_21: type = converted %T.ref.loc13, %T.as_type.loc13_21.1 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.771)] +// CHECK:STDOUT: %T.ref.loc13: %J.type = name_ref T, %T.loc13_15.1 [symbolic = %T.loc13_15.2 (constants.%T.e40)] +// CHECK:STDOUT: %T.as_type.loc13_21.1: type = facet_access_type %T.ref.loc13 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.d90)] +// CHECK:STDOUT: %.loc13_21: type = converted %T.ref.loc13, %T.as_type.loc13_21.1 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.d90)] // CHECK:STDOUT: %Interface.ref.loc13: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %.loc13_18: type = splice_block %J.ref.loc13 [concrete = constants.%J.type] { // CHECK:STDOUT: %.Self.loc13: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %J.ref.loc13: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc13_15.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc13_15.2 (constants.%T.1f3)] +// CHECK:STDOUT: %T.loc13_15.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc13_15.2 (constants.%T.e40)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.d87 [concrete] { -// CHECK:STDOUT: %T.patt: %pattern_type.53b = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.b21 [concrete] { +// CHECK:STDOUT: %T.patt: %pattern_type.b64 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc14: %K.type = name_ref T, %T.loc14_15.1 [symbolic = %T.loc14_15.2 (constants.%T.529)] -// CHECK:STDOUT: %T.as_type.loc14_21.1: type = facet_access_type %T.ref.loc14 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.f53)] -// CHECK:STDOUT: %.loc14_21: type = converted %T.ref.loc14, %T.as_type.loc14_21.1 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.f53)] +// CHECK:STDOUT: %T.ref.loc14: %K.type = name_ref T, %T.loc14_15.1 [symbolic = %T.loc14_15.2 (constants.%T.062)] +// CHECK:STDOUT: %T.as_type.loc14_21.1: type = facet_access_type %T.ref.loc14 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.1ea)] +// CHECK:STDOUT: %.loc14_21: type = converted %T.ref.loc14, %T.as_type.loc14_21.1 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.1ea)] // CHECK:STDOUT: %Interface.ref.loc14: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %.loc14_18: type = splice_block %K.ref.loc14 [concrete = constants.%K.type] { // CHECK:STDOUT: %.Self.loc14: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %K.ref.loc14: type = name_ref K, file.%K.decl [concrete = constants.%K.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc14_15.1: %K.type = symbolic_binding T, 0 [symbolic = %T.loc14_15.2 (constants.%T.529)] +// CHECK:STDOUT: %T.loc14_15.1: %K.type = symbolic_binding T, 0 [symbolic = %T.loc14_15.2 (constants.%T.062)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.b79 [concrete] { -// CHECK:STDOUT: %T.patt: %pattern_type.80e = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.2b4 [concrete] { +// CHECK:STDOUT: %T.patt: %pattern_type.25e = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc15: %L.type = name_ref T, %T.loc15_15.1 [symbolic = %T.loc15_15.2 (constants.%T.3c8)] -// CHECK:STDOUT: %T.as_type.loc15_21.1: type = facet_access_type %T.ref.loc15 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.830)] -// CHECK:STDOUT: %.loc15_21: type = converted %T.ref.loc15, %T.as_type.loc15_21.1 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.830)] +// CHECK:STDOUT: %T.ref.loc15: %L.type = name_ref T, %T.loc15_15.1 [symbolic = %T.loc15_15.2 (constants.%T.709)] +// CHECK:STDOUT: %T.as_type.loc15_21.1: type = facet_access_type %T.ref.loc15 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.56f)] +// CHECK:STDOUT: %.loc15_21: type = converted %T.ref.loc15, %T.as_type.loc15_21.1 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.56f)] // CHECK:STDOUT: %Interface.ref.loc15: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %.loc15_18: type = splice_block %L.ref.loc15 [concrete = constants.%L.type] { // CHECK:STDOUT: %.Self.loc15: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %L.ref.loc15: type = name_ref L, file.%L.decl [concrete = constants.%L.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc15_15.1: %L.type = symbolic_binding T, 0 [symbolic = %T.loc15_15.2 (constants.%T.3c8)] +// CHECK:STDOUT: %T.loc15_15.1: %L.type = symbolic_binding T, 0 [symbolic = %T.loc15_15.2 (constants.%T.709)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.baa [concrete] { -// CHECK:STDOUT: %T.patt: %pattern_type.998 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.72f [concrete] { +// CHECK:STDOUT: %T.patt: %pattern_type.6cb = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc19: %I.type = name_ref T, %T.loc19 [symbolic = %T.loc12_15.2 (constants.%T.2e1)] -// CHECK:STDOUT: %T.as_type.loc19: type = facet_access_type %T.ref.loc19 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.a70)] -// CHECK:STDOUT: %.loc19_21: type = converted %T.ref.loc19, %T.as_type.loc19 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.a70)] +// CHECK:STDOUT: %T.ref.loc19: %I.type = name_ref T, %T.loc19 [symbolic = %T.loc12_15.2 (constants.%T.dda)] +// CHECK:STDOUT: %T.as_type.loc19: type = facet_access_type %T.ref.loc19 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.b38)] +// CHECK:STDOUT: %.loc19_21: type = converted %T.ref.loc19, %T.as_type.loc19 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.b38)] // CHECK:STDOUT: %Interface.ref.loc19: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %.loc19_18: type = splice_block %I.ref.loc19 [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self.loc19: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %I.ref.loc19: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc19: %I.type = symbolic_binding T, 0 [symbolic = %T.loc12_15.2 (constants.%T.2e1)] +// CHECK:STDOUT: %T.loc19: %I.type = symbolic_binding T, 0 [symbolic = %T.loc12_15.2 (constants.%T.dda)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.497 [concrete] { -// CHECK:STDOUT: %T.patt: %pattern_type.1b4 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.24e [concrete] { +// CHECK:STDOUT: %T.patt: %pattern_type.2c5 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc27: %J.type = name_ref T, %T.loc27 [symbolic = %T.loc13_15.2 (constants.%T.1f3)] -// CHECK:STDOUT: %T.as_type.loc27: type = facet_access_type %T.ref.loc27 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.771)] -// CHECK:STDOUT: %.loc27_21: type = converted %T.ref.loc27, %T.as_type.loc27 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.771)] +// CHECK:STDOUT: %T.ref.loc27: %J.type = name_ref T, %T.loc27 [symbolic = %T.loc13_15.2 (constants.%T.e40)] +// CHECK:STDOUT: %T.as_type.loc27: type = facet_access_type %T.ref.loc27 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.d90)] +// CHECK:STDOUT: %.loc27_21: type = converted %T.ref.loc27, %T.as_type.loc27 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.d90)] // CHECK:STDOUT: %Interface.ref.loc27: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %.loc27_18: type = splice_block %J.ref.loc27 [concrete = constants.%J.type] { // CHECK:STDOUT: %.Self.loc27: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %J.ref.loc27: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc27: %J.type = symbolic_binding T, 0 [symbolic = %T.loc13_15.2 (constants.%T.1f3)] +// CHECK:STDOUT: %T.loc27: %J.type = symbolic_binding T, 0 [symbolic = %T.loc13_15.2 (constants.%T.e40)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.d87 [concrete] { -// CHECK:STDOUT: %T.patt: %pattern_type.53b = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.b21 [concrete] { +// CHECK:STDOUT: %T.patt: %pattern_type.b64 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc35: %K.type = name_ref T, %T.loc35 [symbolic = %T.loc14_15.2 (constants.%T.529)] -// CHECK:STDOUT: %T.as_type.loc35: type = facet_access_type %T.ref.loc35 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.f53)] -// CHECK:STDOUT: %.loc35_21: type = converted %T.ref.loc35, %T.as_type.loc35 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.f53)] +// CHECK:STDOUT: %T.ref.loc35: %K.type = name_ref T, %T.loc35 [symbolic = %T.loc14_15.2 (constants.%T.062)] +// CHECK:STDOUT: %T.as_type.loc35: type = facet_access_type %T.ref.loc35 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.1ea)] +// CHECK:STDOUT: %.loc35_21: type = converted %T.ref.loc35, %T.as_type.loc35 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.1ea)] // CHECK:STDOUT: %Interface.ref.loc35: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %.loc35_18: type = splice_block %K.ref.loc35 [concrete = constants.%K.type] { // CHECK:STDOUT: %.Self.loc35: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %K.ref.loc35: type = name_ref K, file.%K.decl [concrete = constants.%K.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc35: %K.type = symbolic_binding T, 0 [symbolic = %T.loc14_15.2 (constants.%T.529)] +// CHECK:STDOUT: %T.loc35: %K.type = symbolic_binding T, 0 [symbolic = %T.loc14_15.2 (constants.%T.062)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.b79 [concrete] { -// CHECK:STDOUT: %T.patt: %pattern_type.80e = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.2b4 [concrete] { +// CHECK:STDOUT: %T.patt: %pattern_type.25e = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc43: %L.type = name_ref T, %T.loc43 [symbolic = %T.loc15_15.2 (constants.%T.3c8)] -// CHECK:STDOUT: %T.as_type.loc43: type = facet_access_type %T.ref.loc43 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.830)] -// CHECK:STDOUT: %.loc43_21: type = converted %T.ref.loc43, %T.as_type.loc43 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.830)] +// CHECK:STDOUT: %T.ref.loc43: %L.type = name_ref T, %T.loc43 [symbolic = %T.loc15_15.2 (constants.%T.709)] +// CHECK:STDOUT: %T.as_type.loc43: type = facet_access_type %T.ref.loc43 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.56f)] +// CHECK:STDOUT: %.loc43_21: type = converted %T.ref.loc43, %T.as_type.loc43 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.56f)] // CHECK:STDOUT: %Interface.ref.loc43: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %.loc43_18: type = splice_block %L.ref.loc43 [concrete = constants.%L.type] { // CHECK:STDOUT: %.Self.loc43: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %L.ref.loc43: type = name_ref L, file.%L.decl [concrete = constants.%L.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc43: %L.type = symbolic_binding T, 0 [symbolic = %T.loc15_15.2 (constants.%T.3c8)] +// CHECK:STDOUT: %T.loc43: %L.type = symbolic_binding T, 0 [symbolic = %T.loc15_15.2 (constants.%T.709)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Interface { -// CHECK:STDOUT: %Self: %Interface.type = symbolic_binding Self, 0 [symbolic = constants.%Self.b54] +// CHECK:STDOUT: %Self: %Interface.type = symbolic_binding Self, 0 [symbolic = constants.%Self.3ce] // CHECK:STDOUT: %Interface.WithSelf.decl = interface_with_self_decl @Interface [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -295,7 +295,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -306,7 +306,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @J { -// CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = constants.%Self.fd8] +// CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = constants.%Self.653] // CHECK:STDOUT: %J.WithSelf.decl = interface_with_self_decl @J [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -317,7 +317,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @K { -// CHECK:STDOUT: %Self: %K.type = symbolic_binding Self, 0 [symbolic = constants.%Self.563] +// CHECK:STDOUT: %Self: %K.type = symbolic_binding Self, 0 [symbolic = constants.%Self.a32] // CHECK:STDOUT: %K.WithSelf.decl = interface_with_self_decl @K [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -328,7 +328,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @L { -// CHECK:STDOUT: %Self: %L.type = symbolic_binding Self, 0 [symbolic = constants.%Self.8bb] +// CHECK:STDOUT: %Self: %L.type = symbolic_binding Self, 0 [symbolic = constants.%Self.480] // CHECK:STDOUT: %L.WithSelf.decl = interface_with_self_decl @L [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -338,16 +338,16 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as_type.as.Interface.impl.baa(%T.loc12_15.1: %I.type) { -// CHECK:STDOUT: %T.loc12_15.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc12_15.2 (constants.%T.2e1)] -// CHECK:STDOUT: %T.as_type.loc12_21.2: type = facet_access_type %T.loc12_15.2 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.a70)] -// CHECK:STDOUT: %Interface.impl_witness.loc12_35.2: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.baa(%T.loc12_15.2) [symbolic = %Interface.impl_witness.loc12_35.2 (constants.%Interface.impl_witness.56d)] +// CHECK:STDOUT: generic impl @T.as_type.as.Interface.impl.72f(%T.loc12_15.1: %I.type) { +// CHECK:STDOUT: %T.loc12_15.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc12_15.2 (constants.%T.dda)] +// CHECK:STDOUT: %T.as_type.loc12_21.2: type = facet_access_type %T.loc12_15.2 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.b38)] +// CHECK:STDOUT: %Interface.impl_witness.loc12_35.2: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.72f(%T.loc12_15.2) [symbolic = %Interface.impl_witness.loc12_35.2 (constants.%Interface.impl_witness.5b0)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc12_21 as %Interface.ref.loc12 { -// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.as_type.as.Interface.impl.baa [concrete] -// CHECK:STDOUT: %Interface.impl_witness.loc12_35.1: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.baa(constants.%T.2e1) [symbolic = %Interface.impl_witness.loc12_35.2 (constants.%Interface.impl_witness.56d)] +// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.as_type.as.Interface.impl.72f [concrete] +// CHECK:STDOUT: %Interface.impl_witness.loc12_35.1: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.72f(constants.%T.dda) [symbolic = %Interface.impl_witness.loc12_35.2 (constants.%Interface.impl_witness.5b0)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %Interface.ref.loc12 @@ -355,16 +355,16 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as_type.as.Interface.impl.497(%T.loc13_15.1: %J.type) { -// CHECK:STDOUT: %T.loc13_15.2: %J.type = symbolic_binding T, 0 [symbolic = %T.loc13_15.2 (constants.%T.1f3)] -// CHECK:STDOUT: %T.as_type.loc13_21.2: type = facet_access_type %T.loc13_15.2 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.771)] -// CHECK:STDOUT: %Interface.impl_witness.loc13_35.2: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.497(%T.loc13_15.2) [symbolic = %Interface.impl_witness.loc13_35.2 (constants.%Interface.impl_witness.bf9)] +// CHECK:STDOUT: generic impl @T.as_type.as.Interface.impl.24e(%T.loc13_15.1: %J.type) { +// CHECK:STDOUT: %T.loc13_15.2: %J.type = symbolic_binding T, 0 [symbolic = %T.loc13_15.2 (constants.%T.e40)] +// CHECK:STDOUT: %T.as_type.loc13_21.2: type = facet_access_type %T.loc13_15.2 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.d90)] +// CHECK:STDOUT: %Interface.impl_witness.loc13_35.2: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.24e(%T.loc13_15.2) [symbolic = %Interface.impl_witness.loc13_35.2 (constants.%Interface.impl_witness.614)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc13_21 as %Interface.ref.loc13 { -// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.as_type.as.Interface.impl.497 [concrete] -// CHECK:STDOUT: %Interface.impl_witness.loc13_35.1: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.497(constants.%T.1f3) [symbolic = %Interface.impl_witness.loc13_35.2 (constants.%Interface.impl_witness.bf9)] +// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.as_type.as.Interface.impl.24e [concrete] +// CHECK:STDOUT: %Interface.impl_witness.loc13_35.1: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.24e(constants.%T.e40) [symbolic = %Interface.impl_witness.loc13_35.2 (constants.%Interface.impl_witness.614)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %Interface.ref.loc13 @@ -372,16 +372,16 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as_type.as.Interface.impl.d87(%T.loc14_15.1: %K.type) { -// CHECK:STDOUT: %T.loc14_15.2: %K.type = symbolic_binding T, 0 [symbolic = %T.loc14_15.2 (constants.%T.529)] -// CHECK:STDOUT: %T.as_type.loc14_21.2: type = facet_access_type %T.loc14_15.2 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.f53)] -// CHECK:STDOUT: %Interface.impl_witness.loc14_35.2: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.d87(%T.loc14_15.2) [symbolic = %Interface.impl_witness.loc14_35.2 (constants.%Interface.impl_witness.e0b)] +// CHECK:STDOUT: generic impl @T.as_type.as.Interface.impl.b21(%T.loc14_15.1: %K.type) { +// CHECK:STDOUT: %T.loc14_15.2: %K.type = symbolic_binding T, 0 [symbolic = %T.loc14_15.2 (constants.%T.062)] +// CHECK:STDOUT: %T.as_type.loc14_21.2: type = facet_access_type %T.loc14_15.2 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.1ea)] +// CHECK:STDOUT: %Interface.impl_witness.loc14_35.2: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.b21(%T.loc14_15.2) [symbolic = %Interface.impl_witness.loc14_35.2 (constants.%Interface.impl_witness.bda)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc14_21 as %Interface.ref.loc14 { -// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.as_type.as.Interface.impl.d87 [concrete] -// CHECK:STDOUT: %Interface.impl_witness.loc14_35.1: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.d87(constants.%T.529) [symbolic = %Interface.impl_witness.loc14_35.2 (constants.%Interface.impl_witness.e0b)] +// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.as_type.as.Interface.impl.b21 [concrete] +// CHECK:STDOUT: %Interface.impl_witness.loc14_35.1: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.b21(constants.%T.062) [symbolic = %Interface.impl_witness.loc14_35.2 (constants.%Interface.impl_witness.bda)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %Interface.ref.loc14 @@ -389,16 +389,16 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as_type.as.Interface.impl.b79(%T.loc15_15.1: %L.type) { -// CHECK:STDOUT: %T.loc15_15.2: %L.type = symbolic_binding T, 0 [symbolic = %T.loc15_15.2 (constants.%T.3c8)] -// CHECK:STDOUT: %T.as_type.loc15_21.2: type = facet_access_type %T.loc15_15.2 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.830)] -// CHECK:STDOUT: %Interface.impl_witness.loc15_35.2: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.b79(%T.loc15_15.2) [symbolic = %Interface.impl_witness.loc15_35.2 (constants.%Interface.impl_witness.a2c)] +// CHECK:STDOUT: generic impl @T.as_type.as.Interface.impl.2b4(%T.loc15_15.1: %L.type) { +// CHECK:STDOUT: %T.loc15_15.2: %L.type = symbolic_binding T, 0 [symbolic = %T.loc15_15.2 (constants.%T.709)] +// CHECK:STDOUT: %T.as_type.loc15_21.2: type = facet_access_type %T.loc15_15.2 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.56f)] +// CHECK:STDOUT: %Interface.impl_witness.loc15_35.2: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.2b4(%T.loc15_15.2) [symbolic = %Interface.impl_witness.loc15_35.2 (constants.%Interface.impl_witness.9d3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc15_21 as %Interface.ref.loc15 { -// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.as_type.as.Interface.impl.b79 [concrete] -// CHECK:STDOUT: %Interface.impl_witness.loc15_35.1: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.b79(constants.%T.3c8) [symbolic = %Interface.impl_witness.loc15_35.2 (constants.%Interface.impl_witness.a2c)] +// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.as_type.as.Interface.impl.2b4 [concrete] +// CHECK:STDOUT: %Interface.impl_witness.loc15_35.1: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.2b4(constants.%T.709) [symbolic = %Interface.impl_witness.loc15_35.2 (constants.%Interface.impl_witness.9d3)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %Interface.ref.loc15 @@ -406,63 +406,63 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Self.b54) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Self.3ce) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%Self.fd8) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%Self.653) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @K.WithSelf(constants.%Self.563) { +// CHECK:STDOUT: specific @K.WithSelf(constants.%Self.a32) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @L.WithSelf(constants.%Self.8bb) { +// CHECK:STDOUT: specific @L.WithSelf(constants.%Self.480) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.baa(constants.%T.2e1) { -// CHECK:STDOUT: %T.loc12_15.2 => constants.%T.2e1 -// CHECK:STDOUT: %T.as_type.loc12_21.2 => constants.%T.as_type.a70 -// CHECK:STDOUT: %Interface.impl_witness.loc12_35.2 => constants.%Interface.impl_witness.56d +// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.72f(constants.%T.dda) { +// CHECK:STDOUT: %T.loc12_15.2 => constants.%T.dda +// CHECK:STDOUT: %T.as_type.loc12_21.2 => constants.%T.as_type.b38 +// CHECK:STDOUT: %Interface.impl_witness.loc12_35.2 => constants.%Interface.impl_witness.5b0 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.497(constants.%T.1f3) { -// CHECK:STDOUT: %T.loc13_15.2 => constants.%T.1f3 -// CHECK:STDOUT: %T.as_type.loc13_21.2 => constants.%T.as_type.771 -// CHECK:STDOUT: %Interface.impl_witness.loc13_35.2 => constants.%Interface.impl_witness.bf9 +// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.24e(constants.%T.e40) { +// CHECK:STDOUT: %T.loc13_15.2 => constants.%T.e40 +// CHECK:STDOUT: %T.as_type.loc13_21.2 => constants.%T.as_type.d90 +// CHECK:STDOUT: %Interface.impl_witness.loc13_35.2 => constants.%Interface.impl_witness.614 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.d87(constants.%T.529) { -// CHECK:STDOUT: %T.loc14_15.2 => constants.%T.529 -// CHECK:STDOUT: %T.as_type.loc14_21.2 => constants.%T.as_type.f53 -// CHECK:STDOUT: %Interface.impl_witness.loc14_35.2 => constants.%Interface.impl_witness.e0b +// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.b21(constants.%T.062) { +// CHECK:STDOUT: %T.loc14_15.2 => constants.%T.062 +// CHECK:STDOUT: %T.as_type.loc14_21.2 => constants.%T.as_type.1ea +// CHECK:STDOUT: %Interface.impl_witness.loc14_35.2 => constants.%Interface.impl_witness.bda // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.b79(constants.%T.3c8) { -// CHECK:STDOUT: %T.loc15_15.2 => constants.%T.3c8 -// CHECK:STDOUT: %T.as_type.loc15_21.2 => constants.%T.as_type.830 -// CHECK:STDOUT: %Interface.impl_witness.loc15_35.2 => constants.%Interface.impl_witness.a2c +// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.2b4(constants.%T.709) { +// CHECK:STDOUT: %T.loc15_15.2 => constants.%T.709 +// CHECK:STDOUT: %T.as_type.loc15_21.2 => constants.%T.as_type.56f +// CHECK:STDOUT: %Interface.impl_witness.loc15_35.2 => constants.%Interface.impl_witness.9d3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.eb5) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.8e9) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.0b3) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.d46) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.bbf) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.8be) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.b18) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.ed4) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -470,15 +470,15 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete] -// CHECK:STDOUT: %Self.fd8: %J.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.653: %J.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %T: %I.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %J.impl_witness: = impl_witness @T.as_type.as.J.impl.ffcb87.1.%J.impl_witness_table, @T.as_type.as.J.impl.ffcb87.1(%T) [symbolic] +// CHECK:STDOUT: %J.impl_witness: = impl_witness @T.as_type.as.J.impl.377648.1.%J.impl_witness_table, @T.as_type.as.J.impl.377648.1(%T) [symbolic] // CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type, (%J.impl_witness) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -498,7 +498,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} -// CHECK:STDOUT: impl_decl @T.as_type.as.J.impl.ffcb87.1 [concrete] { +// CHECK:STDOUT: impl_decl @T.as_type.as.J.impl.377648.1 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc7_15.1 [symbolic = %T.loc7_15.2 (constants.%T)] @@ -511,7 +511,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc7_15.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc7_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.as_type.as.J.impl.ffcb87.2 [concrete] { +// CHECK:STDOUT: impl_decl @T.as_type.as.J.impl.377648.2 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc15_15.1 [symbolic = %T.loc15_15.2 (constants.%T)] @@ -527,7 +527,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -538,7 +538,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @J { -// CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = constants.%Self.fd8] +// CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = constants.%Self.653] // CHECK:STDOUT: %J.WithSelf.decl = interface_with_self_decl @J [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -548,16 +548,16 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as_type.as.J.impl.ffcb87.1(%T.loc7_15.1: %I.type) { +// CHECK:STDOUT: generic impl @T.as_type.as.J.impl.377648.1(%T.loc7_15.1: %I.type) { // CHECK:STDOUT: %T.loc7_15.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc7_15.2 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc7_21.2: type = facet_access_type %T.loc7_15.2 [symbolic = %T.as_type.loc7_21.2 (constants.%T.as_type)] -// CHECK:STDOUT: %J.impl_witness.loc7_28.2: = impl_witness %J.impl_witness_table, @T.as_type.as.J.impl.ffcb87.1(%T.loc7_15.2) [symbolic = %J.impl_witness.loc7_28.2 (constants.%J.impl_witness)] +// CHECK:STDOUT: %J.impl_witness.loc7_28.2: = impl_witness %J.impl_witness_table, @T.as_type.as.J.impl.377648.1(%T.loc7_15.2) [symbolic = %J.impl_witness.loc7_28.2 (constants.%J.impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc7_21 as %J.ref { -// CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (), @T.as_type.as.J.impl.ffcb87.1 [concrete] -// CHECK:STDOUT: %J.impl_witness.loc7_28.1: = impl_witness %J.impl_witness_table, @T.as_type.as.J.impl.ffcb87.1(constants.%T) [symbolic = %J.impl_witness.loc7_28.2 (constants.%J.impl_witness)] +// CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (), @T.as_type.as.J.impl.377648.1 [concrete] +// CHECK:STDOUT: %J.impl_witness.loc7_28.1: = impl_witness %J.impl_witness_table, @T.as_type.as.J.impl.377648.1(constants.%T) [symbolic = %J.impl_witness.loc7_28.2 (constants.%J.impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %J.ref @@ -565,7 +565,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as_type.as.J.impl.ffcb87.2(%T.loc15_15.1: %I.type) { +// CHECK:STDOUT: generic impl @T.as_type.as.J.impl.377648.2(%T.loc15_15.1: %I.type) { // CHECK:STDOUT: %T.loc15_15.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc15_15.2 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc15_21.2: type = facet_access_type %T.loc15_15.2 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type)] // CHECK:STDOUT: @@ -578,15 +578,15 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%Self.fd8) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%Self.653) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.J.impl.ffcb87.1(constants.%T) { +// CHECK:STDOUT: specific @T.as_type.as.J.impl.377648.1(constants.%T) { // CHECK:STDOUT: %T.loc7_15.2 => constants.%T // CHECK:STDOUT: %T.as_type.loc7_21.2 => constants.%T.as_type // CHECK:STDOUT: %J.impl_witness.loc7_28.2 => constants.%J.impl_witness @@ -596,7 +596,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.J.impl.ffcb87.2(constants.%T) { +// CHECK:STDOUT: specific @T.as_type.as.J.impl.377648.2(constants.%T) { // CHECK:STDOUT: %T.loc15_15.2 => constants.%T // CHECK:STDOUT: %T.as_type.loc15_21.2 => constants.%T.as_type // CHECK:STDOUT: } @@ -607,13 +607,13 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.impl_witness.efa2fb.1: = impl_witness @C.as.I.impl.e127ba.1.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %I.facet.28dc3d.1: %I.type = facet_value %C, (%I.impl_witness.efa2fb.1) [concrete] +// CHECK:STDOUT: %I.impl_witness.1c7395.1: = impl_witness @C.as.I.impl.e103db.1.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I.facet.c56855.1: %I.type = facet_value %C, (%I.impl_witness.1c7395.1) [concrete] // CHECK:STDOUT: %tuple.type: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%C, %C) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %I.impl_witness.efa2fb.2: = impl_witness @C.as.I.impl.e127ba.2.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %I.facet.28dc3d.2: %I.type = facet_value %C, (%I.impl_witness.efa2fb.2) [concrete] +// CHECK:STDOUT: %I.impl_witness.1c7395.2: = impl_witness @C.as.I.impl.e103db.2.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I.facet.c56855.2: %I.type = facet_value %C, (%I.impl_witness.1c7395.2) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -632,11 +632,11 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} -// CHECK:STDOUT: impl_decl @C.as.I.impl.e127ba.1 [concrete] {} { +// CHECK:STDOUT: impl_decl @C.as.I.impl.e103db.1 [concrete] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.I.impl.e127ba.2 [concrete] {} { +// CHECK:STDOUT: impl_decl @C.as.I.impl.e103db.2 [concrete] {} { // CHECK:STDOUT: %C.ref.loc17_7: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc17_10: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc17_11.1: %tuple.type = tuple_literal (%C.ref.loc17_7, %C.ref.loc17_10) [concrete = constants.%tuple] @@ -659,18 +659,18 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.I.impl.e127ba.1: %C.ref as %I.ref { -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.e127ba.1 [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.efa2fb.1] +// CHECK:STDOUT: impl @C.as.I.impl.e103db.1: %C.ref as %I.ref { +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.e103db.1 [concrete] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.1c7395.1] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %I.ref // CHECK:STDOUT: witness = %I.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.I.impl.e127ba.2: %tuple.elem0 as %I.ref { -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.e127ba.2 [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.efa2fb.2] +// CHECK:STDOUT: impl @C.as.I.impl.e103db.2: %tuple.elem0 as %I.ref { +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.e103db.2 [concrete] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.1c7395.2] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %I.ref @@ -683,11 +683,11 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.28dc3d.1) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.c56855.1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.28dc3d.2) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.c56855.2) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -700,19 +700,19 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %I.impl_witness: = impl_witness @T.as.I.impl.aab3b5.1.%I.impl_witness_table, @T.as.I.impl.aab3b5.1(%T) [symbolic] -// CHECK:STDOUT: %T.as.I.impl.A.type: type = fn_type @T.as.I.impl.A, @T.as.I.impl.aab3b5.1(%T) [symbolic] +// CHECK:STDOUT: %I.impl_witness: = impl_witness @T.as.I.impl.812d8b.1.%I.impl_witness_table, @T.as.I.impl.812d8b.1(%T) [symbolic] +// CHECK:STDOUT: %T.as.I.impl.A.type: type = fn_type @T.as.I.impl.A, @T.as.I.impl.812d8b.1(%T) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %T.as.I.impl.A: %T.as.I.impl.A.type = struct_value () [symbolic] // CHECK:STDOUT: %I.facet: %I.type = facet_value %T, (%I.impl_witness) [symbolic] -// CHECK:STDOUT: %T.as.I.impl.B.type: type = fn_type @T.as.I.impl.B, @T.as.I.impl.aab3b5.2(%T) [symbolic] +// CHECK:STDOUT: %T.as.I.impl.B.type: type = fn_type @T.as.I.impl.B, @T.as.I.impl.812d8b.2(%T) [symbolic] // CHECK:STDOUT: %T.as.I.impl.B: %T.as.I.impl.B.type = struct_value () [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %T.as.I.impl.C.type: type = fn_type @T.as.I.impl.C, @T.as.I.impl.aab3b5.2(%T) [symbolic] +// CHECK:STDOUT: %T.as.I.impl.C.type: type = fn_type @T.as.I.impl.C, @T.as.I.impl.812d8b.2(%T) [symbolic] // CHECK:STDOUT: %T.as.I.impl.C: %T.as.I.impl.C.type = struct_value () [symbolic] -// CHECK:STDOUT: %T.as.I.impl.D.type: type = fn_type @T.as.I.impl.D, @T.as.I.impl.aab3b5.2(%T) [symbolic] +// CHECK:STDOUT: %T.as.I.impl.D.type: type = fn_type @T.as.I.impl.D, @T.as.I.impl.812d8b.2(%T) [symbolic] // CHECK:STDOUT: %T.as.I.impl.D: %T.as.I.impl.D.type = struct_value () [symbolic] // CHECK:STDOUT: %T.as.I.impl.C.specific_fn: = specific_function %T.as.I.impl.C, @T.as.I.impl.C(%T) [symbolic] // CHECK:STDOUT: } @@ -731,7 +731,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} -// CHECK:STDOUT: impl_decl @T.as.I.impl.aab3b5.1 [concrete] { +// CHECK:STDOUT: impl_decl @T.as.I.impl.812d8b.1 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.2 [symbolic = %T.loc4_15.1 (constants.%T)] @@ -742,7 +742,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc4_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.as.I.impl.aab3b5.2 [concrete] { +// CHECK:STDOUT: impl_decl @T.as.I.impl.812d8b.2 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_15.2 [symbolic = %T.loc15_15.1 (constants.%T)] @@ -766,18 +766,18 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as.I.impl.aab3b5.1(%T.loc4_15.2: type) { +// CHECK:STDOUT: generic impl @T.as.I.impl.812d8b.1(%T.loc4_15.2: type) { // CHECK:STDOUT: %T.loc4_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] -// CHECK:STDOUT: %I.impl_witness.loc4_31.2: = impl_witness %I.impl_witness_table, @T.as.I.impl.aab3b5.1(%T.loc4_15.1) [symbolic = %I.impl_witness.loc4_31.2 (constants.%I.impl_witness)] +// CHECK:STDOUT: %I.impl_witness.loc4_31.2: = impl_witness %I.impl_witness_table, @T.as.I.impl.812d8b.1(%T.loc4_15.1) [symbolic = %I.impl_witness.loc4_31.2 (constants.%I.impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as.I.impl.A.type: type = fn_type @T.as.I.impl.A, @T.as.I.impl.aab3b5.1(%T.loc4_15.1) [symbolic = %T.as.I.impl.A.type (constants.%T.as.I.impl.A.type)] -// CHECK:STDOUT: %T.as.I.impl.A: @T.as.I.impl.aab3b5.1.%T.as.I.impl.A.type (%T.as.I.impl.A.type) = struct_value () [symbolic = %T.as.I.impl.A (constants.%T.as.I.impl.A)] +// CHECK:STDOUT: %T.as.I.impl.A.type: type = fn_type @T.as.I.impl.A, @T.as.I.impl.812d8b.1(%T.loc4_15.1) [symbolic = %T.as.I.impl.A.type (constants.%T.as.I.impl.A.type)] +// CHECK:STDOUT: %T.as.I.impl.A: @T.as.I.impl.812d8b.1.%T.as.I.impl.A.type (%T.as.I.impl.A.type) = struct_value () [symbolic = %T.as.I.impl.A (constants.%T.as.I.impl.A)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref as %I.ref { -// CHECK:STDOUT: %T.as.I.impl.A.decl: @T.as.I.impl.aab3b5.1.%T.as.I.impl.A.type (%T.as.I.impl.A.type) = fn_decl @T.as.I.impl.A [symbolic = @T.as.I.impl.aab3b5.1.%T.as.I.impl.A (constants.%T.as.I.impl.A)] {} {} -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @T.as.I.impl.aab3b5.1 [concrete] -// CHECK:STDOUT: %I.impl_witness.loc4_31.1: = impl_witness %I.impl_witness_table, @T.as.I.impl.aab3b5.1(constants.%T) [symbolic = %I.impl_witness.loc4_31.2 (constants.%I.impl_witness)] +// CHECK:STDOUT: %T.as.I.impl.A.decl: @T.as.I.impl.812d8b.1.%T.as.I.impl.A.type (%T.as.I.impl.A.type) = fn_decl @T.as.I.impl.A [symbolic = @T.as.I.impl.812d8b.1.%T.as.I.impl.A (constants.%T.as.I.impl.A)] {} {} +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @T.as.I.impl.812d8b.1 [concrete] +// CHECK:STDOUT: %I.impl_witness.loc4_31.1: = impl_witness %I.impl_witness_table, @T.as.I.impl.812d8b.1(constants.%T) [symbolic = %I.impl_witness.loc4_31.2 (constants.%I.impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .A = %T.as.I.impl.A.decl @@ -786,20 +786,20 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as.I.impl.aab3b5.2(%T.loc15_15.2: type) { +// CHECK:STDOUT: generic impl @T.as.I.impl.812d8b.2(%T.loc15_15.2: type) { // CHECK:STDOUT: %T.loc15_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc15_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as.I.impl.B.type: type = fn_type @T.as.I.impl.B, @T.as.I.impl.aab3b5.2(%T.loc15_15.1) [symbolic = %T.as.I.impl.B.type (constants.%T.as.I.impl.B.type)] -// CHECK:STDOUT: %T.as.I.impl.B: @T.as.I.impl.aab3b5.2.%T.as.I.impl.B.type (%T.as.I.impl.B.type) = struct_value () [symbolic = %T.as.I.impl.B (constants.%T.as.I.impl.B)] -// CHECK:STDOUT: %T.as.I.impl.C.type: type = fn_type @T.as.I.impl.C, @T.as.I.impl.aab3b5.2(%T.loc15_15.1) [symbolic = %T.as.I.impl.C.type (constants.%T.as.I.impl.C.type)] -// CHECK:STDOUT: %T.as.I.impl.C: @T.as.I.impl.aab3b5.2.%T.as.I.impl.C.type (%T.as.I.impl.C.type) = struct_value () [symbolic = %T.as.I.impl.C (constants.%T.as.I.impl.C)] -// CHECK:STDOUT: %T.as.I.impl.D.type: type = fn_type @T.as.I.impl.D, @T.as.I.impl.aab3b5.2(%T.loc15_15.1) [symbolic = %T.as.I.impl.D.type (constants.%T.as.I.impl.D.type)] -// CHECK:STDOUT: %T.as.I.impl.D: @T.as.I.impl.aab3b5.2.%T.as.I.impl.D.type (%T.as.I.impl.D.type) = struct_value () [symbolic = %T.as.I.impl.D (constants.%T.as.I.impl.D)] +// CHECK:STDOUT: %T.as.I.impl.B.type: type = fn_type @T.as.I.impl.B, @T.as.I.impl.812d8b.2(%T.loc15_15.1) [symbolic = %T.as.I.impl.B.type (constants.%T.as.I.impl.B.type)] +// CHECK:STDOUT: %T.as.I.impl.B: @T.as.I.impl.812d8b.2.%T.as.I.impl.B.type (%T.as.I.impl.B.type) = struct_value () [symbolic = %T.as.I.impl.B (constants.%T.as.I.impl.B)] +// CHECK:STDOUT: %T.as.I.impl.C.type: type = fn_type @T.as.I.impl.C, @T.as.I.impl.812d8b.2(%T.loc15_15.1) [symbolic = %T.as.I.impl.C.type (constants.%T.as.I.impl.C.type)] +// CHECK:STDOUT: %T.as.I.impl.C: @T.as.I.impl.812d8b.2.%T.as.I.impl.C.type (%T.as.I.impl.C.type) = struct_value () [symbolic = %T.as.I.impl.C (constants.%T.as.I.impl.C)] +// CHECK:STDOUT: %T.as.I.impl.D.type: type = fn_type @T.as.I.impl.D, @T.as.I.impl.812d8b.2(%T.loc15_15.1) [symbolic = %T.as.I.impl.D.type (constants.%T.as.I.impl.D.type)] +// CHECK:STDOUT: %T.as.I.impl.D: @T.as.I.impl.812d8b.2.%T.as.I.impl.D.type (%T.as.I.impl.D.type) = struct_value () [symbolic = %T.as.I.impl.D (constants.%T.as.I.impl.D)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref as %I.ref { -// CHECK:STDOUT: %T.as.I.impl.B.decl: @T.as.I.impl.aab3b5.2.%T.as.I.impl.B.type (%T.as.I.impl.B.type) = fn_decl @T.as.I.impl.B [symbolic = @T.as.I.impl.aab3b5.2.%T.as.I.impl.B (constants.%T.as.I.impl.B)] {} {} -// CHECK:STDOUT: %T.as.I.impl.C.decl: @T.as.I.impl.aab3b5.2.%T.as.I.impl.C.type (%T.as.I.impl.C.type) = fn_decl @T.as.I.impl.C [symbolic = @T.as.I.impl.aab3b5.2.%T.as.I.impl.C (constants.%T.as.I.impl.C)] { +// CHECK:STDOUT: %T.as.I.impl.B.decl: @T.as.I.impl.812d8b.2.%T.as.I.impl.B.type (%T.as.I.impl.B.type) = fn_decl @T.as.I.impl.B [symbolic = @T.as.I.impl.812d8b.2.%T.as.I.impl.B (constants.%T.as.I.impl.B)] {} {} +// CHECK:STDOUT: %T.as.I.impl.C.decl: @T.as.I.impl.812d8b.2.%T.as.I.impl.C.type (%T.as.I.impl.C.type) = fn_decl @T.as.I.impl.C [symbolic = @T.as.I.impl.812d8b.2.%T.as.I.impl.C (constants.%T.as.I.impl.C)] { // 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, %.loc19_14.2 [concrete] // CHECK:STDOUT: } { @@ -809,7 +809,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %T.as.I.impl.D.decl: @T.as.I.impl.aab3b5.2.%T.as.I.impl.D.type (%T.as.I.impl.D.type) = fn_decl @T.as.I.impl.D [symbolic = @T.as.I.impl.aab3b5.2.%T.as.I.impl.D (constants.%T.as.I.impl.D)] { +// CHECK:STDOUT: %T.as.I.impl.D.decl: @T.as.I.impl.812d8b.2.%T.as.I.impl.D.type (%T.as.I.impl.D.type) = fn_decl @T.as.I.impl.D [symbolic = @T.as.I.impl.812d8b.2.%T.as.I.impl.D (constants.%T.as.I.impl.D)] { // 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, %.loc20_14.2 [concrete] // CHECK:STDOUT: } { @@ -829,7 +829,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @T.as.I.impl.A(@T.as.I.impl.aab3b5.1.%T.loc4_15.2: type) { +// CHECK:STDOUT: generic fn @T.as.I.impl.A(@T.as.I.impl.812d8b.1.%T.loc4_15.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -838,7 +838,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @T.as.I.impl.B(@T.as.I.impl.aab3b5.2.%T.loc15_15.2: type) { +// CHECK:STDOUT: generic fn @T.as.I.impl.B(@T.as.I.impl.812d8b.2.%T.loc15_15.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -847,7 +847,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @T.as.I.impl.C(@T.as.I.impl.aab3b5.2.%T.loc15_15.2: type) { +// CHECK:STDOUT: generic fn @T.as.I.impl.C(@T.as.I.impl.812d8b.2.%T.loc15_15.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: %empty_tuple.type { @@ -859,16 +859,16 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @T.as.I.impl.D(@T.as.I.impl.aab3b5.2.%T.loc15_15.2: type) { +// CHECK:STDOUT: generic fn @T.as.I.impl.D(@T.as.I.impl.812d8b.2.%T.loc15_15.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %T.as.I.impl.C.type: type = fn_type @T.as.I.impl.C, @T.as.I.impl.aab3b5.2(%T) [symbolic = %T.as.I.impl.C.type (constants.%T.as.I.impl.C.type)] +// CHECK:STDOUT: %T.as.I.impl.C.type: type = fn_type @T.as.I.impl.C, @T.as.I.impl.812d8b.2(%T) [symbolic = %T.as.I.impl.C.type (constants.%T.as.I.impl.C.type)] // CHECK:STDOUT: %T.as.I.impl.C: @T.as.I.impl.D.%T.as.I.impl.C.type (%T.as.I.impl.C.type) = struct_value () [symbolic = %T.as.I.impl.C (constants.%T.as.I.impl.C)] // CHECK:STDOUT: %T.as.I.impl.C.specific_fn.loc21_12.2: = specific_function %T.as.I.impl.C, @T.as.I.impl.C(%T) [symbolic = %T.as.I.impl.C.specific_fn.loc21_12.2 (constants.%T.as.I.impl.C.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: %empty_tuple.type { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc21: @T.as.I.impl.D.%T.as.I.impl.C.type (%T.as.I.impl.C.type) = specific_constant @T.as.I.impl.aab3b5.2.%T.as.I.impl.C.decl, @T.as.I.impl.aab3b5.2(constants.%T) [symbolic = %T.as.I.impl.C (constants.%T.as.I.impl.C)] +// CHECK:STDOUT: %.loc21: @T.as.I.impl.D.%T.as.I.impl.C.type (%T.as.I.impl.C.type) = specific_constant @T.as.I.impl.812d8b.2.%T.as.I.impl.C.decl, @T.as.I.impl.812d8b.2(constants.%T) [symbolic = %T.as.I.impl.C (constants.%T.as.I.impl.C)] // CHECK:STDOUT: %C.ref: @T.as.I.impl.D.%T.as.I.impl.C.type (%T.as.I.impl.C.type) = name_ref C, %.loc21 [symbolic = %T.as.I.impl.C (constants.%T.as.I.impl.C)] // CHECK:STDOUT: %T.as.I.impl.C.specific_fn.loc21_12.1: = specific_function %C.ref, @T.as.I.impl.C(constants.%T) [symbolic = %T.as.I.impl.C.specific_fn.loc21_12.2 (constants.%T.as.I.impl.C.specific_fn)] // CHECK:STDOUT: %T.as.I.impl.C.call: init %empty_tuple.type = call %T.as.I.impl.C.specific_fn.loc21_12.1() @@ -880,7 +880,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as.I.impl.aab3b5.1(constants.%T) { +// CHECK:STDOUT: specific @T.as.I.impl.812d8b.1(constants.%T) { // CHECK:STDOUT: %T.loc4_15.1 => constants.%T // CHECK:STDOUT: %I.impl_witness.loc4_31.2 => constants.%I.impl_witness // CHECK:STDOUT: @@ -895,7 +895,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as.I.impl.aab3b5.2(constants.%T) { +// CHECK:STDOUT: specific @T.as.I.impl.812d8b.2(constants.%T) { // CHECK:STDOUT: %T.loc15_15.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/impl/impl_as.carbon b/toolchain/check/testdata/impl/impl_as.carbon index b931f7238753..9bffef42deb5 100644 --- a/toolchain/check/testdata/impl/impl_as.carbon +++ b/toolchain/check/testdata/impl/impl_as.carbon @@ -29,27 +29,27 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Simple.type: type = facet_type <@Simple> [concrete] -// CHECK:STDOUT: %Self.f68: %Simple.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Simple.WithSelf.F.type.b39: type = fn_type @Simple.WithSelf.F, @Simple.WithSelf(%Self.f68) [symbolic] +// CHECK:STDOUT: %Self.f79: %Simple.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Simple.WithSelf.F.type.49c: type = fn_type @Simple.WithSelf.F, @Simple.WithSelf(%Self.f79) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Simple.WithSelf.F.2fc: %Simple.WithSelf.F.type.b39 = struct_value () [symbolic] +// CHECK:STDOUT: %Simple.WithSelf.F.66e: %Simple.WithSelf.F.type.49c = struct_value () [symbolic] // CHECK:STDOUT: %Simple.assoc_type: type = assoc_entity_type @Simple [concrete] -// CHECK:STDOUT: %assoc0.985: %Simple.assoc_type = assoc_entity element0, @Simple.WithSelf.%Simple.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %assoc0.210: %Simple.assoc_type = assoc_entity element0, @Simple.WithSelf.%Simple.WithSelf.F.decl [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %Simple.impl_witness: = impl_witness @C.as.Simple.impl.%Simple.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.Simple.impl.F.type: type = fn_type @C.as.Simple.impl.F [concrete] // CHECK:STDOUT: %C.as.Simple.impl.F: %C.as.Simple.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %C, (%Simple.impl_witness) [concrete] -// CHECK:STDOUT: %Simple.WithSelf.F.type.d59: type = fn_type @Simple.WithSelf.F, @Simple.WithSelf(%Simple.facet) [concrete] -// CHECK:STDOUT: %Simple.WithSelf.F.fa1: %Simple.WithSelf.F.type.d59 = struct_value () [concrete] +// CHECK:STDOUT: %Simple.WithSelf.F.type.c73: type = fn_type @Simple.WithSelf.F, @Simple.WithSelf(%Simple.facet) [concrete] +// CHECK:STDOUT: %Simple.WithSelf.F.bbe: %Simple.WithSelf.F.type.c73 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // 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.790b3b.2: type = fn_type @Destroy.Op.loc23_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -73,12 +73,12 @@ class C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Simple { -// CHECK:STDOUT: %Self: %Simple.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f68] +// CHECK:STDOUT: %Self: %Simple.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f79] // CHECK:STDOUT: %Simple.WithSelf.decl = interface_with_self_decl @Simple [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Simple.WithSelf.F.decl: @Simple.WithSelf.%Simple.WithSelf.F.type (%Simple.WithSelf.F.type.b39) = fn_decl @Simple.WithSelf.F [symbolic = @Simple.WithSelf.%Simple.WithSelf.F (constants.%Simple.WithSelf.F.2fc)] {} {} -// CHECK:STDOUT: %assoc0: %Simple.assoc_type = assoc_entity element0, %Simple.WithSelf.F.decl [concrete = constants.%assoc0.985] +// CHECK:STDOUT: %Simple.WithSelf.F.decl: @Simple.WithSelf.%Simple.WithSelf.F.type (%Simple.WithSelf.F.type.49c) = fn_decl @Simple.WithSelf.F [symbolic = @Simple.WithSelf.%Simple.WithSelf.F (constants.%Simple.WithSelf.F.66e)] {} {} +// CHECK:STDOUT: %assoc0: %Simple.assoc_type = assoc_entity element0, %Simple.WithSelf.F.decl [concrete = constants.%assoc0.210] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -122,8 +122,8 @@ class C { // CHECK:STDOUT: fn @C.as.Simple.impl.F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.0d5 = var_pattern %c.patt [concrete] +// 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: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt // CHECK:STDOUT: %.loc23_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -132,7 +132,7 @@ class C { // CHECK:STDOUT: assign %c.var, %.loc23_7 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %c.var, constants.%Destroy.Op.2dd605.2 +// 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: return // CHECK:STDOUT: } @@ -144,20 +144,20 @@ class C { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Simple.WithSelf(constants.%Self.f68) { +// CHECK:STDOUT: specific @Simple.WithSelf(constants.%Self.f79) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.f68 -// CHECK:STDOUT: %Simple.WithSelf.F.type => constants.%Simple.WithSelf.F.type.b39 -// CHECK:STDOUT: %Simple.WithSelf.F => constants.%Simple.WithSelf.F.2fc +// CHECK:STDOUT: %Self => constants.%Self.f79 +// CHECK:STDOUT: %Simple.WithSelf.F.type => constants.%Simple.WithSelf.F.type.49c +// CHECK:STDOUT: %Simple.WithSelf.F => constants.%Simple.WithSelf.F.66e // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Simple.WithSelf.F(constants.%Self.f68) {} +// CHECK:STDOUT: specific @Simple.WithSelf.F(constants.%Self.f79) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple.WithSelf(constants.%Simple.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Simple.facet -// CHECK:STDOUT: %Simple.WithSelf.F.type => constants.%Simple.WithSelf.F.type.d59 -// CHECK:STDOUT: %Simple.WithSelf.F => constants.%Simple.WithSelf.F.fa1 +// CHECK:STDOUT: %Simple.WithSelf.F.type => constants.%Simple.WithSelf.F.type.c73 +// CHECK:STDOUT: %Simple.WithSelf.F => constants.%Simple.WithSelf.F.bbe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple.WithSelf.F(constants.%Simple.facet) {} diff --git a/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon b/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon index 24e30bc81302..78a36a79780c 100644 --- a/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon +++ b/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon @@ -36,7 +36,7 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -44,15 +44,15 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] -// CHECK:STDOUT: %struct_type.a.b.666: type = struct_type {.a: bool, .b: %tuple.type.e5a} [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %struct_type.a.b.486: type = struct_type {.a: bool, .b: %tuple.type.e55} [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.2c7: %I.assoc_type = assoc_entity element0, @I.WithSelf.%X [concrete] +// CHECK:STDOUT: %assoc0.6fc: %I.assoc_type = assoc_entity element0, @I.WithSelf.%X [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %.Self.0a6: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.0a6 [symbolic_self] -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.0a6, @I [symbolic_self] -// CHECK:STDOUT: %impl.elem0.17f: %struct_type.a.b.666 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.9e9: %I.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.9e9 [symbolic_self] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.9e9, @I [symbolic_self] +// CHECK:STDOUT: %impl.elem0.049: %struct_type.a.b.486 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] @@ -60,51 +60,51 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %tuple.ad8: %tuple.type.f94 = tuple_value (%int_1.5b8, %int_2.ecc) [concrete] // CHECK:STDOUT: %struct_type.a.b.aa4: type = struct_type {.a: bool, .b: %tuple.type.f94} [concrete] // CHECK:STDOUT: %struct.e57: %struct_type.a.b.aa4 = struct_value (%true, %tuple.ad8) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %tuple.cd5: %tuple.type.e5a = tuple_value (%int_1.d9c, %int_2.228) [concrete] -// CHECK:STDOUT: %struct.18a: %struct_type.a.b.666 = struct_value (%true, %tuple.cd5) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %tuple.102: %tuple.type.e55 = tuple_value (%int_1.0c6, %int_2.295) [concrete] +// CHECK:STDOUT: %struct.247: %struct_type.a.b.486 = struct_value (%true, %tuple.102) [concrete] // CHECK:STDOUT: %false: bool = bool_literal false [concrete] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %SubWith.type.9de: type = generic_interface_type @SubWith [concrete] -// CHECK:STDOUT: %SubWith.generic: %SubWith.type.9de = struct_value () [concrete] -// CHECK:STDOUT: %SubWith.type.77f: type = facet_type <@SubWith, @SubWith(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %SubWith.type.f8d: type = generic_interface_type @SubWith [concrete] +// CHECK:STDOUT: %SubWith.generic: %SubWith.type.f8d = struct_value () [concrete] +// CHECK:STDOUT: %SubWith.type.4c2: type = facet_type <@SubWith, @SubWith(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %SubWith.impl_witness: = impl_witness imports.%SubWith.impl_witness_table [concrete] -// CHECK:STDOUT: %SubWith.facet: %SubWith.type.77f = facet_value Core.IntLiteral, (%SubWith.impl_witness) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.d73: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(Core.IntLiteral, %SubWith.facet) [concrete] -// CHECK:STDOUT: %.a8e: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.d73, %SubWith.facet [concrete] +// CHECK:STDOUT: %SubWith.facet: %SubWith.type.4c2 = facet_value Core.IntLiteral, (%SubWith.impl_witness) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.663: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(Core.IntLiteral, %SubWith.facet) [concrete] +// CHECK:STDOUT: %.ec4: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.663, %SubWith.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.SubWith.impl.Op.type: type = fn_type @Core.IntLiteral.as.SubWith.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.SubWith.impl.Op: %Core.IntLiteral.as.SubWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.SubWith.impl.Op.bound: = bound_method %int_3, %Core.IntLiteral.as.SubWith.impl.Op [concrete] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete] -// CHECK:STDOUT: %DivWith.type.2ae: type = generic_interface_type @DivWith [concrete] -// CHECK:STDOUT: %DivWith.generic: %DivWith.type.2ae = struct_value () [concrete] -// CHECK:STDOUT: %DivWith.type.ec9: type = facet_type <@DivWith, @DivWith(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %DivWith.type.8b7: type = generic_interface_type @DivWith [concrete] +// CHECK:STDOUT: %DivWith.generic: %DivWith.type.8b7 = struct_value () [concrete] +// CHECK:STDOUT: %DivWith.type.e2a: type = facet_type <@DivWith, @DivWith(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %DivWith.impl_witness: = impl_witness imports.%DivWith.impl_witness_table [concrete] -// CHECK:STDOUT: %DivWith.facet: %DivWith.type.ec9 = facet_value Core.IntLiteral, (%DivWith.impl_witness) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.206: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(Core.IntLiteral, %DivWith.facet) [concrete] -// CHECK:STDOUT: %.701: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.206, %DivWith.facet [concrete] +// CHECK:STDOUT: %DivWith.facet: %DivWith.type.e2a = facet_value Core.IntLiteral, (%DivWith.impl_witness) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.9c3: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(Core.IntLiteral, %DivWith.facet) [concrete] +// CHECK:STDOUT: %.5ce: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.9c3, %DivWith.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.DivWith.impl.Op.type: type = fn_type @Core.IntLiteral.as.DivWith.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.DivWith.impl.Op: %Core.IntLiteral.as.DivWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.DivWith.impl.Op.bound: = bound_method %int_4, %Core.IntLiteral.as.DivWith.impl.Op [concrete] -// CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0.17f = %struct.18a> [concrete] +// CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0.049 = %struct.247> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @empty_tuple.type.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %empty_tuple.type, (%I.impl_witness) [concrete] // CHECK:STDOUT: } @@ -121,17 +121,17 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/types/bool, Bool, loaded [concrete = constants.%Bool] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] -// CHECK:STDOUT: %Core.SubWith: %SubWith.type.9de = import_ref Core//prelude/operators/arithmetic, SubWith, loaded [concrete = constants.%SubWith.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] +// CHECK:STDOUT: %Core.SubWith: %SubWith.type.f8d = import_ref Core//prelude/operators/arithmetic, SubWith, loaded [concrete = constants.%SubWith.generic] // CHECK:STDOUT: %Core.import_ref.abd97d.1 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63b02.1: %Core.IntLiteral.as.SubWith.impl.Op.type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.SubWith.impl.Op] -// CHECK:STDOUT: %SubWith.impl_witness_table = impl_witness_table (%Core.import_ref.abd97d.1, %Core.import_ref.f63b02.1), @Core.IntLiteral.as.SubWith.impl [concrete] -// CHECK:STDOUT: %Core.DivWith: %DivWith.type.2ae = import_ref Core//prelude/operators/arithmetic, DivWith, loaded [concrete = constants.%DivWith.generic] +// CHECK:STDOUT: %Core.import_ref.9c3475.1: %Core.IntLiteral.as.SubWith.impl.Op.type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.SubWith.impl.Op] +// CHECK:STDOUT: %SubWith.impl_witness_table = impl_witness_table (%Core.import_ref.abd97d.1, %Core.import_ref.9c3475.1), @Core.IntLiteral.as.SubWith.impl [concrete] +// CHECK:STDOUT: %Core.DivWith: %DivWith.type.8b7 = import_ref Core//prelude/operators/arithmetic, DivWith, loaded [concrete = constants.%DivWith.generic] // CHECK:STDOUT: %Core.import_ref.abd97d.2 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63b02.2: %Core.IntLiteral.as.DivWith.impl.Op.type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.DivWith.impl.Op] -// CHECK:STDOUT: %DivWith.impl_witness_table = impl_witness_table (%Core.import_ref.abd97d.2, %Core.import_ref.f63b02.2), @Core.IntLiteral.as.DivWith.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3475.2: %Core.IntLiteral.as.DivWith.impl.Op.type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.DivWith.impl.Op] +// CHECK:STDOUT: %DivWith.impl_witness_table = impl_witness_table (%Core.import_ref.abd97d.2, %Core.import_ref.9c3475.2), @Core.IntLiteral.as.DivWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -145,77 +145,77 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %.loc6_7.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_7.2: type = converted %.loc6_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.0a6] -// CHECK:STDOUT: %.Self.ref.loc6_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.0a6] +// CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.9e9] +// CHECK:STDOUT: %.Self.ref.loc6_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.9e9] // CHECK:STDOUT: %.Self.as_type.loc6_20: type = facet_access_type %.Self.ref.loc6_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc6_20: type = converted %.Self.ref.loc6_20, %.Self.as_type.loc6_20 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %X.ref.loc6_20: %I.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.2c7] -// CHECK:STDOUT: %impl.elem0.loc6_20: %struct_type.a.b.666 = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.17f] +// CHECK:STDOUT: %X.ref.loc6_20: %I.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.6fc] +// CHECK:STDOUT: %impl.elem0.loc6_20: %struct_type.a.b.486 = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.049] // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc6_46: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc6_47.1: %tuple.type.f94 = tuple_literal (%int_1, %int_2.loc6_46) [concrete = constants.%tuple.ad8] // CHECK:STDOUT: %.loc6_48.1: %struct_type.a.b.aa4 = struct_literal (%true, %.loc6_47.1) [concrete = constants.%struct.e57] -// CHECK:STDOUT: %impl.elem0.loc6_47.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc6_47.1: = bound_method %int_1, %impl.elem0.loc6_47.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc6_47.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc6_47.1: = bound_method %int_1, %impl.elem0.loc6_47.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc6_47.1: = specific_function %impl.elem0.loc6_47.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_47.2: = bound_method %int_1, %specific_fn.loc6_47.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_47.1: init %i32 = call %bound_method.loc6_47.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc6_47.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_47.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc6_47.3: %i32 = converted %int_1, %.loc6_47.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc6_47.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc6_47.3: = bound_method %int_2.loc6_46, %impl.elem0.loc6_47.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc6_47.2: = bound_method %int_1, %specific_fn.loc6_47.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_47.1: init %i32 = call %bound_method.loc6_47.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc6_47.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_47.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc6_47.3: %i32 = converted %int_1, %.loc6_47.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc6_47.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc6_47.3: = bound_method %int_2.loc6_46, %impl.elem0.loc6_47.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc6_47.2: = specific_function %impl.elem0.loc6_47.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_47.4: = bound_method %int_2.loc6_46, %specific_fn.loc6_47.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_47.2: init %i32 = call %bound_method.loc6_47.4(%int_2.loc6_46) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc6_47.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_47.2 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc6_47.5: %i32 = converted %int_2.loc6_46, %.loc6_47.4 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %tuple.loc6_47: %tuple.type.e5a = tuple_value (%.loc6_47.3, %.loc6_47.5) [concrete = constants.%tuple.cd5] -// CHECK:STDOUT: %.loc6_48.2: %tuple.type.e5a = converted %.loc6_47.1, %tuple.loc6_47 [concrete = constants.%tuple.cd5] -// CHECK:STDOUT: %struct.loc6_48: %struct_type.a.b.666 = struct_value (%true, %.loc6_48.2) [concrete = constants.%struct.18a] -// CHECK:STDOUT: %.loc6_48.3: %struct_type.a.b.666 = converted %.loc6_48.1, %struct.loc6_48 [concrete = constants.%struct.18a] -// CHECK:STDOUT: %.Self.ref.loc6_54: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.0a6] +// CHECK:STDOUT: %bound_method.loc6_47.4: = bound_method %int_2.loc6_46, %specific_fn.loc6_47.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_47.2: init %i32 = call %bound_method.loc6_47.4(%int_2.loc6_46) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc6_47.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_47.2 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc6_47.5: %i32 = converted %int_2.loc6_46, %.loc6_47.4 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %tuple.loc6_47: %tuple.type.e55 = tuple_value (%.loc6_47.3, %.loc6_47.5) [concrete = constants.%tuple.102] +// CHECK:STDOUT: %.loc6_48.2: %tuple.type.e55 = converted %.loc6_47.1, %tuple.loc6_47 [concrete = constants.%tuple.102] +// CHECK:STDOUT: %struct.loc6_48: %struct_type.a.b.486 = struct_value (%true, %.loc6_48.2) [concrete = constants.%struct.247] +// CHECK:STDOUT: %.loc6_48.3: %struct_type.a.b.486 = converted %.loc6_48.1, %struct.loc6_48 [concrete = constants.%struct.247] +// CHECK:STDOUT: %.Self.ref.loc6_54: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.9e9] // CHECK:STDOUT: %.Self.as_type.loc6_54: type = facet_access_type %.Self.ref.loc6_54 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc6_54: type = converted %.Self.ref.loc6_54, %.Self.as_type.loc6_54 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %X.ref.loc6_54: %I.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.2c7] -// CHECK:STDOUT: %impl.elem0.loc6_54: %struct_type.a.b.666 = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.17f] -// CHECK:STDOUT: %impl.elem0.subst: %struct_type.a.b.666 = impl_witness_access_substituted %impl.elem0.loc6_54, %.loc6_48.3 [concrete = constants.%struct.18a] +// CHECK:STDOUT: %X.ref.loc6_54: %I.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.6fc] +// CHECK:STDOUT: %impl.elem0.loc6_54: %struct_type.a.b.486 = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.049] +// CHECK:STDOUT: %impl.elem0.subst: %struct_type.a.b.486 = impl_witness_access_substituted %impl.elem0.loc6_54, %.loc6_48.3 [concrete = constants.%struct.247] // CHECK:STDOUT: %false: bool = bool_literal false [concrete = constants.%false] // CHECK:STDOUT: %.loc6_65: bool = not %false [concrete = constants.%true] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] // CHECK:STDOUT: %int_2.loc6_86: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem1.loc6_84: %.a8e = impl_witness_access constants.%SubWith.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.SubWith.impl.Op] +// CHECK:STDOUT: %impl.elem1.loc6_84: %.ec4 = impl_witness_access constants.%SubWith.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.SubWith.impl.Op] // CHECK:STDOUT: %bound_method.loc6_84: = bound_method %int_3, %impl.elem1.loc6_84 [concrete = constants.%Core.IntLiteral.as.SubWith.impl.Op.bound] // CHECK:STDOUT: %Core.IntLiteral.as.SubWith.impl.Op.call: init Core.IntLiteral = call %bound_method.loc6_84(%int_3, %int_2.loc6_86) [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4] // CHECK:STDOUT: %int_2.loc6_93: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem1.loc6_91: %.701 = impl_witness_access constants.%DivWith.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.DivWith.impl.Op] +// CHECK:STDOUT: %impl.elem1.loc6_91: %.5ce = impl_witness_access constants.%DivWith.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.DivWith.impl.Op] // CHECK:STDOUT: %bound_method.loc6_91: = bound_method %int_4, %impl.elem1.loc6_91 [concrete = constants.%Core.IntLiteral.as.DivWith.impl.Op.bound] // CHECK:STDOUT: %Core.IntLiteral.as.DivWith.impl.Op.call: init Core.IntLiteral = call %bound_method.loc6_91(%int_4, %int_2.loc6_93) [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc6_94.1: %tuple.type.f94 = tuple_literal (%Core.IntLiteral.as.SubWith.impl.Op.call, %Core.IntLiteral.as.DivWith.impl.Op.call) [concrete = constants.%tuple.ad8] // CHECK:STDOUT: %.loc6_95.1: %struct_type.a.b.aa4 = struct_literal (%.loc6_65, %.loc6_94.1) [concrete = constants.%struct.e57] -// CHECK:STDOUT: %impl.elem0.loc6_94.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc6_94.1: = bound_method %Core.IntLiteral.as.SubWith.impl.Op.call, %impl.elem0.loc6_94.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc6_94.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc6_94.1: = bound_method %Core.IntLiteral.as.SubWith.impl.Op.call, %impl.elem0.loc6_94.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc6_94.1: = specific_function %impl.elem0.loc6_94.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_94.2: = bound_method %Core.IntLiteral.as.SubWith.impl.Op.call, %specific_fn.loc6_94.1 [concrete = constants.%bound_method.e5b] +// CHECK:STDOUT: %bound_method.loc6_94.2: = bound_method %Core.IntLiteral.as.SubWith.impl.Op.call, %specific_fn.loc6_94.1 [concrete = constants.%bound_method.953] // CHECK:STDOUT: %.loc6_84.1: Core.IntLiteral = value_of_initializer %Core.IntLiteral.as.SubWith.impl.Op.call [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc6_84.2: Core.IntLiteral = converted %Core.IntLiteral.as.SubWith.impl.Op.call, %.loc6_84.1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_94.1: init %i32 = call %bound_method.loc6_94.2(%.loc6_84.2) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc6_94.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_94.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc6_94.3: %i32 = converted %Core.IntLiteral.as.SubWith.impl.Op.call, %.loc6_94.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc6_94.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc6_94.3: = bound_method %Core.IntLiteral.as.DivWith.impl.Op.call, %impl.elem0.loc6_94.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_94.1: init %i32 = call %bound_method.loc6_94.2(%.loc6_84.2) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc6_94.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_94.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc6_94.3: %i32 = converted %Core.IntLiteral.as.SubWith.impl.Op.call, %.loc6_94.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc6_94.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc6_94.3: = bound_method %Core.IntLiteral.as.DivWith.impl.Op.call, %impl.elem0.loc6_94.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc6_94.2: = specific_function %impl.elem0.loc6_94.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_94.4: = bound_method %Core.IntLiteral.as.DivWith.impl.Op.call, %specific_fn.loc6_94.2 [concrete = constants.%bound_method.7d5] +// CHECK:STDOUT: %bound_method.loc6_94.4: = bound_method %Core.IntLiteral.as.DivWith.impl.Op.call, %specific_fn.loc6_94.2 [concrete = constants.%bound_method.3cb] // CHECK:STDOUT: %.loc6_91.1: Core.IntLiteral = value_of_initializer %Core.IntLiteral.as.DivWith.impl.Op.call [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc6_91.2: Core.IntLiteral = converted %Core.IntLiteral.as.DivWith.impl.Op.call, %.loc6_91.1 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_94.2: init %i32 = call %bound_method.loc6_94.4(%.loc6_91.2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc6_94.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_94.2 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc6_94.5: %i32 = converted %Core.IntLiteral.as.DivWith.impl.Op.call, %.loc6_94.4 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %tuple.loc6_94: %tuple.type.e5a = tuple_value (%.loc6_94.3, %.loc6_94.5) [concrete = constants.%tuple.cd5] -// CHECK:STDOUT: %.loc6_95.2: %tuple.type.e5a = converted %.loc6_94.1, %tuple.loc6_94 [concrete = constants.%tuple.cd5] -// CHECK:STDOUT: %struct.loc6_95: %struct_type.a.b.666 = struct_value (%.loc6_65, %.loc6_95.2) [concrete = constants.%struct.18a] -// CHECK:STDOUT: %.loc6_95.3: %struct_type.a.b.666 = converted %.loc6_95.1, %struct.loc6_95 [concrete = constants.%struct.18a] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_94.2: init %i32 = call %bound_method.loc6_94.4(%.loc6_91.2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc6_94.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_94.2 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc6_94.5: %i32 = converted %Core.IntLiteral.as.DivWith.impl.Op.call, %.loc6_94.4 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %tuple.loc6_94: %tuple.type.e55 = tuple_value (%.loc6_94.3, %.loc6_94.5) [concrete = constants.%tuple.102] +// CHECK:STDOUT: %.loc6_95.2: %tuple.type.e55 = converted %.loc6_94.1, %tuple.loc6_94 [concrete = constants.%tuple.102] +// CHECK:STDOUT: %struct.loc6_95: %struct_type.a.b.486 = struct_value (%.loc6_65, %.loc6_95.2) [concrete = constants.%struct.247] +// CHECK:STDOUT: %.loc6_95.3: %struct_type.a.b.486 = converted %.loc6_95.1, %struct.loc6_95 [concrete = constants.%struct.247] // CHECK:STDOUT: %.loc6_14: type = where_expr [concrete = constants.%I_where.type] { // CHECK:STDOUT: requirement_base_facet_type %I.ref // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc6_20, %.loc6_48.3 @@ -225,12 +225,12 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %X: %struct_type.a.b.666 = assoc_const_decl @X [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%X [concrete = constants.%assoc0.2c7] +// CHECK:STDOUT: %X: %struct_type.a.b.486 = assoc_const_decl @X [concrete] { +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%X [concrete = constants.%assoc0.6fc] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -244,18 +244,18 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: impl @empty_tuple.type.as.I.impl: %.loc6_7.2 as %.loc6_14 { // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @empty_tuple.type.as.I.impl [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness] -// CHECK:STDOUT: %impl_witness_assoc_constant: %struct_type.a.b.666 = impl_witness_assoc_constant constants.%struct.18a [concrete = constants.%struct.18a] +// CHECK:STDOUT: %impl_witness_assoc_constant: %struct_type.a.b.486 = impl_witness_assoc_constant constants.%struct.247 [concrete = constants.%struct.247] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %.loc6_14 // CHECK:STDOUT: witness = %I.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.0a6) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.9e9) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -267,7 +267,7 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -275,15 +275,15 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] -// CHECK:STDOUT: %struct_type.a.b.666: type = struct_type {.a: bool, .b: %tuple.type.e5a} [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %struct_type.a.b.486: type = struct_type {.a: bool, .b: %tuple.type.e55} [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.2c7: %I.assoc_type = assoc_entity element0, @I.WithSelf.%X [concrete] +// CHECK:STDOUT: %assoc0.6fc: %I.assoc_type = assoc_entity element0, @I.WithSelf.%X [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %impl.elem0.17f: %struct_type.a.b.666 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem0.049: %struct_type.a.b.486 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] @@ -291,40 +291,40 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %tuple.ad8: %tuple.type.f94 = tuple_value (%int_1.5b8, %int_2.ecc) [concrete] // CHECK:STDOUT: %struct_type.a.b.aa4: type = struct_type {.a: bool, .b: %tuple.type.f94} [concrete] // CHECK:STDOUT: %struct.e57: %struct_type.a.b.aa4 = struct_value (%true, %tuple.ad8) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %tuple.cd5: %tuple.type.e5a = tuple_value (%int_1.d9c, %int_2.228) [concrete] -// CHECK:STDOUT: %struct.18a: %struct_type.a.b.666 = struct_value (%true, %tuple.cd5) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %tuple.102: %tuple.type.e55 = tuple_value (%int_1.0c6, %int_2.295) [concrete] +// CHECK:STDOUT: %struct.247: %struct_type.a.b.486 = struct_value (%true, %tuple.102) [concrete] // CHECK:STDOUT: %false: bool = bool_literal false [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %tuple.302: %tuple.type.f94 = tuple_value (%int_3.1ba, %int_4.0c1) [concrete] // CHECK:STDOUT: %struct.1ec: %struct_type.a.b.aa4 = struct_value (%false, %tuple.302) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.9f5: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_4.a4d: %i32 = int_value 4 [concrete] -// CHECK:STDOUT: %tuple.30d: %tuple.type.e5a = tuple_value (%int_3.6cc, %int_4.a4d) [concrete] -// CHECK:STDOUT: %struct.1a7: %struct_type.a.b.666 = struct_value (%false, %tuple.30d) [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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [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] +// CHECK:STDOUT: %int_4.4eb: %i32 = int_value 4 [concrete] +// CHECK:STDOUT: %tuple.e16: %tuple.type.e55 = tuple_value (%int_3.410, %int_4.4eb) [concrete] +// CHECK:STDOUT: %struct.866: %struct_type.a.b.486 = struct_value (%false, %tuple.e16) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -337,9 +337,9 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/types/bool, Bool, loaded [concrete = constants.%Bool] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -357,60 +357,60 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %.Self.ref.loc10_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc10_20: type = facet_access_type %.Self.ref.loc10_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref.loc10_20, %.Self.as_type.loc10_20 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %X.ref.loc10_20: %I.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.2c7] -// CHECK:STDOUT: %impl.elem0.loc10_20: %struct_type.a.b.666 = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.17f] +// CHECK:STDOUT: %X.ref.loc10_20: %I.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.6fc] +// CHECK:STDOUT: %impl.elem0.loc10_20: %struct_type.a.b.486 = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.049] // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc10_47.1: %tuple.type.f94 = tuple_literal (%int_1, %int_2) [concrete = constants.%tuple.ad8] // CHECK:STDOUT: %.loc10_48.1: %struct_type.a.b.aa4 = struct_literal (%true, %.loc10_47.1) [concrete = constants.%struct.e57] -// CHECK:STDOUT: %impl.elem0.loc10_47.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_47.1: = bound_method %int_1, %impl.elem0.loc10_47.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc10_47.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_47.1: = bound_method %int_1, %impl.elem0.loc10_47.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc10_47.1: = specific_function %impl.elem0.loc10_47.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_47.2: = bound_method %int_1, %specific_fn.loc10_47.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_47.1: init %i32 = call %bound_method.loc10_47.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc10_47.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_47.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc10_47.3: %i32 = converted %int_1, %.loc10_47.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc10_47.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_47.3: = bound_method %int_2, %impl.elem0.loc10_47.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc10_47.2: = bound_method %int_1, %specific_fn.loc10_47.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_47.1: init %i32 = call %bound_method.loc10_47.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc10_47.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_47.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc10_47.3: %i32 = converted %int_1, %.loc10_47.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc10_47.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_47.3: = bound_method %int_2, %impl.elem0.loc10_47.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc10_47.2: = specific_function %impl.elem0.loc10_47.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_47.4: = bound_method %int_2, %specific_fn.loc10_47.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_47.2: init %i32 = call %bound_method.loc10_47.4(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc10_47.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_47.2 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc10_47.5: %i32 = converted %int_2, %.loc10_47.4 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %tuple.loc10_47: %tuple.type.e5a = tuple_value (%.loc10_47.3, %.loc10_47.5) [concrete = constants.%tuple.cd5] -// CHECK:STDOUT: %.loc10_48.2: %tuple.type.e5a = converted %.loc10_47.1, %tuple.loc10_47 [concrete = constants.%tuple.cd5] -// CHECK:STDOUT: %struct.loc10_48: %struct_type.a.b.666 = struct_value (%true, %.loc10_48.2) [concrete = constants.%struct.18a] -// CHECK:STDOUT: %.loc10_48.3: %struct_type.a.b.666 = converted %.loc10_48.1, %struct.loc10_48 [concrete = constants.%struct.18a] +// CHECK:STDOUT: %bound_method.loc10_47.4: = bound_method %int_2, %specific_fn.loc10_47.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_47.2: init %i32 = call %bound_method.loc10_47.4(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc10_47.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_47.2 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc10_47.5: %i32 = converted %int_2, %.loc10_47.4 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %tuple.loc10_47: %tuple.type.e55 = tuple_value (%.loc10_47.3, %.loc10_47.5) [concrete = constants.%tuple.102] +// CHECK:STDOUT: %.loc10_48.2: %tuple.type.e55 = converted %.loc10_47.1, %tuple.loc10_47 [concrete = constants.%tuple.102] +// CHECK:STDOUT: %struct.loc10_48: %struct_type.a.b.486 = struct_value (%true, %.loc10_48.2) [concrete = constants.%struct.247] +// CHECK:STDOUT: %.loc10_48.3: %struct_type.a.b.486 = converted %.loc10_48.1, %struct.loc10_48 [concrete = constants.%struct.247] // CHECK:STDOUT: %.Self.ref.loc10_54: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc10_54: type = facet_access_type %.Self.ref.loc10_54 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_54: type = converted %.Self.ref.loc10_54, %.Self.as_type.loc10_54 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %X.ref.loc10_54: %I.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.2c7] -// CHECK:STDOUT: %impl.elem0.loc10_54: %struct_type.a.b.666 = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.17f] -// CHECK:STDOUT: %impl.elem0.subst: %struct_type.a.b.666 = impl_witness_access_substituted %impl.elem0.loc10_54, %.loc10_48.3 [concrete = constants.%struct.18a] +// CHECK:STDOUT: %X.ref.loc10_54: %I.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.6fc] +// CHECK:STDOUT: %impl.elem0.loc10_54: %struct_type.a.b.486 = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.049] +// CHECK:STDOUT: %impl.elem0.subst: %struct_type.a.b.486 = impl_witness_access_substituted %impl.elem0.loc10_54, %.loc10_48.3 [concrete = constants.%struct.247] // CHECK:STDOUT: %false: bool = bool_literal false [concrete = constants.%false] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %.loc10_82.1: %tuple.type.f94 = tuple_literal (%int_3, %int_4) [concrete = constants.%tuple.302] // CHECK:STDOUT: %.loc10_83.1: %struct_type.a.b.aa4 = struct_literal (%false, %.loc10_82.1) [concrete = constants.%struct.1ec] -// CHECK:STDOUT: %impl.elem0.loc10_82.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_82.1: = bound_method %int_3, %impl.elem0.loc10_82.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %impl.elem0.loc10_82.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_82.1: = bound_method %int_3, %impl.elem0.loc10_82.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc10_82.1: = specific_function %impl.elem0.loc10_82.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_82.2: = bound_method %int_3, %specific_fn.loc10_82.1 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_82.1: init %i32 = call %bound_method.loc10_82.2(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc10_82.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_82.1 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc10_82.3: %i32 = converted %int_3, %.loc10_82.2 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %impl.elem0.loc10_82.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_82.3: = bound_method %int_4, %impl.elem0.loc10_82.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe] +// CHECK:STDOUT: %bound_method.loc10_82.2: = bound_method %int_3, %specific_fn.loc10_82.1 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_82.1: init %i32 = call %bound_method.loc10_82.2(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc10_82.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_82.1 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc10_82.3: %i32 = converted %int_3, %.loc10_82.2 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %impl.elem0.loc10_82.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_82.3: = bound_method %int_4, %impl.elem0.loc10_82.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad] // CHECK:STDOUT: %specific_fn.loc10_82.2: = specific_function %impl.elem0.loc10_82.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_82.4: = bound_method %int_4, %specific_fn.loc10_82.2 [concrete = constants.%bound_method.9f5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_82.2: init %i32 = call %bound_method.loc10_82.4(%int_4) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc10_82.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_82.2 [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc10_82.5: %i32 = converted %int_4, %.loc10_82.4 [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %tuple.loc10_82: %tuple.type.e5a = tuple_value (%.loc10_82.3, %.loc10_82.5) [concrete = constants.%tuple.30d] -// CHECK:STDOUT: %.loc10_83.2: %tuple.type.e5a = converted %.loc10_82.1, %tuple.loc10_82 [concrete = constants.%tuple.30d] -// CHECK:STDOUT: %struct.loc10_83: %struct_type.a.b.666 = struct_value (%false, %.loc10_83.2) [concrete = constants.%struct.1a7] -// CHECK:STDOUT: %.loc10_83.3: %struct_type.a.b.666 = converted %.loc10_83.1, %struct.loc10_83 [concrete = constants.%struct.1a7] +// CHECK:STDOUT: %bound_method.loc10_82.4: = bound_method %int_4, %specific_fn.loc10_82.2 [concrete = constants.%bound_method.b7a] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_82.2: init %i32 = call %bound_method.loc10_82.4(%int_4) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc10_82.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_82.2 [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc10_82.5: %i32 = converted %int_4, %.loc10_82.4 [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %tuple.loc10_82: %tuple.type.e55 = tuple_value (%.loc10_82.3, %.loc10_82.5) [concrete = constants.%tuple.e16] +// CHECK:STDOUT: %.loc10_83.2: %tuple.type.e55 = converted %.loc10_82.1, %tuple.loc10_82 [concrete = constants.%tuple.e16] +// CHECK:STDOUT: %struct.loc10_83: %struct_type.a.b.486 = struct_value (%false, %.loc10_83.2) [concrete = constants.%struct.866] +// CHECK:STDOUT: %.loc10_83.3: %struct_type.a.b.486 = converted %.loc10_83.1, %struct.loc10_83 [concrete = constants.%struct.866] // CHECK:STDOUT: %.loc10_14: type = where_expr [concrete = ] { // CHECK:STDOUT: requirement_base_facet_type %I.ref // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc10_20, %.loc10_48.3 @@ -420,12 +420,12 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %X: %struct_type.a.b.666 = assoc_const_decl @X [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%X [concrete = constants.%assoc0.2c7] +// CHECK:STDOUT: %X: %struct_type.a.b.486 = assoc_const_decl @X [concrete] { +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%X [concrete = constants.%assoc0.6fc] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -442,7 +442,7 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: witness = // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/impl_forall.carbon b/toolchain/check/testdata/impl/impl_forall.carbon index 176b831b04b2..0739df920010 100644 --- a/toolchain/check/testdata/impl/impl_forall.carbon +++ b/toolchain/check/testdata/impl/impl_forall.carbon @@ -25,8 +25,8 @@ impl forall [T:! type] T as Simple { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Simple.type: type = facet_type <@Simple> [concrete] // CHECK:STDOUT: %Self: %Simple.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Simple.WithSelf.F.type.b39: type = fn_type @Simple.WithSelf.F, @Simple.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %Simple.WithSelf.F.2fc: %Simple.WithSelf.F.type.b39 = struct_value () [symbolic] +// CHECK:STDOUT: %Simple.WithSelf.F.type.49c: type = fn_type @Simple.WithSelf.F, @Simple.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %Simple.WithSelf.F.66e: %Simple.WithSelf.F.type.49c = struct_value () [symbolic] // CHECK:STDOUT: %Simple.assoc_type: type = assoc_entity_type @Simple [concrete] // CHECK:STDOUT: %assoc0: %Simple.assoc_type = assoc_entity element0, @Simple.WithSelf.%Simple.WithSelf.F.decl [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] @@ -37,8 +37,8 @@ impl forall [T:! type] T as Simple { // CHECK:STDOUT: %T.as.Simple.impl.F.type: type = fn_type @T.as.Simple.impl.F, @T.as.Simple.impl(%T) [symbolic] // CHECK:STDOUT: %T.as.Simple.impl.F: %T.as.Simple.impl.F.type = struct_value () [symbolic] // CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %T, (%Simple.impl_witness) [symbolic] -// CHECK:STDOUT: %Simple.WithSelf.F.type.d1b: type = fn_type @Simple.WithSelf.F, @Simple.WithSelf(%Simple.facet) [symbolic] -// CHECK:STDOUT: %Simple.WithSelf.F.633: %Simple.WithSelf.F.type.d1b = struct_value () [symbolic] +// CHECK:STDOUT: %Simple.WithSelf.F.type.165: type = fn_type @Simple.WithSelf.F, @Simple.WithSelf(%Simple.facet) [symbolic] +// CHECK:STDOUT: %Simple.WithSelf.F.2e8: %Simple.WithSelf.F.type.165 = struct_value () [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -64,7 +64,7 @@ impl forall [T:! type] T as Simple { // CHECK:STDOUT: %Simple.WithSelf.decl = interface_with_self_decl @Simple [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Simple.WithSelf.F.decl: @Simple.WithSelf.%Simple.WithSelf.F.type (%Simple.WithSelf.F.type.b39) = fn_decl @Simple.WithSelf.F [symbolic = @Simple.WithSelf.%Simple.WithSelf.F (constants.%Simple.WithSelf.F.2fc)] {} {} +// CHECK:STDOUT: %Simple.WithSelf.F.decl: @Simple.WithSelf.%Simple.WithSelf.F.type (%Simple.WithSelf.F.type.49c) = fn_decl @Simple.WithSelf.F [symbolic = @Simple.WithSelf.%Simple.WithSelf.F (constants.%Simple.WithSelf.F.66e)] {} {} // CHECK:STDOUT: %assoc0: %Simple.assoc_type = assoc_entity element0, %Simple.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -111,8 +111,8 @@ impl forall [T:! type] T as Simple { // CHECK:STDOUT: specific @Simple.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Simple.WithSelf.F.type => constants.%Simple.WithSelf.F.type.b39 -// CHECK:STDOUT: %Simple.WithSelf.F => constants.%Simple.WithSelf.F.2fc +// CHECK:STDOUT: %Simple.WithSelf.F.type => constants.%Simple.WithSelf.F.type.49c +// CHECK:STDOUT: %Simple.WithSelf.F => constants.%Simple.WithSelf.F.66e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple.WithSelf.F(constants.%Self) {} @@ -131,8 +131,8 @@ impl forall [T:! type] T as Simple { // CHECK:STDOUT: specific @Simple.WithSelf(constants.%Simple.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Simple.facet -// CHECK:STDOUT: %Simple.WithSelf.F.type => constants.%Simple.WithSelf.F.type.d1b -// CHECK:STDOUT: %Simple.WithSelf.F => constants.%Simple.WithSelf.F.633 +// CHECK:STDOUT: %Simple.WithSelf.F.type => constants.%Simple.WithSelf.F.type.165 +// CHECK:STDOUT: %Simple.WithSelf.F => constants.%Simple.WithSelf.F.2e8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple.WithSelf.F(constants.%Simple.facet) {} diff --git a/toolchain/check/testdata/impl/impl_thunk.carbon b/toolchain/check/testdata/impl/impl_thunk.carbon index b0e10855f33e..682b1ba0fb65 100644 --- a/toolchain/check/testdata/impl/impl_thunk.carbon +++ b/toolchain/check/testdata/impl/impl_thunk.carbon @@ -356,18 +356,18 @@ impl () as I({}) { // CHECK:STDOUT: %struct_type.d.c.b36: type = struct_type {.d: %empty_struct_type, .c: %empty_tuple.type} [concrete] // CHECK:STDOUT: %.4b1: Core.Form = init_form %struct_type.d.c.b36 [concrete] // CHECK:STDOUT: %pattern_type.844: type = pattern_type %struct_type.d.c.b36 [concrete] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.9e994f.1: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_48.1 [concrete] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.c7843c.1: %empty_tuple.type.as.I.impl.F.type.9e994f.1 = struct_value () [concrete] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.48cdab.1: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_48.1 [concrete] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.bd5be1.1: %empty_tuple.type.as.I.impl.F.type.48cdab.1 = struct_value () [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %empty_tuple.type, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.9e994f.2: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_48.2 [concrete] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.c7843c.2: %empty_tuple.type.as.I.impl.F.type.9e994f.2 = struct_value () [concrete] +// 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.790b3b.3: type = fn_type @Destroy.Op.loc10_48.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.I.impl: %.loc8_7.2 as %I.ref { -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_48.1: %empty_tuple.type.as.I.impl.F.type.9e994f.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_48.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.c7843c.1] { +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_48.1: %empty_tuple.type.as.I.impl.F.type.48cdab.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_48.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.bd5be1.1] { // CHECK:STDOUT: %y.param_patt: %pattern_type.231 = value_param_pattern [concrete] // CHECK:STDOUT: %y.patt: %pattern_type.231 = at_binding_pattern y, %y.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.844 = out_param_pattern [concrete] @@ -392,7 +392,7 @@ impl () as I({}) { // CHECK:STDOUT: %return: ref %struct_type.d.c.b36 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_48.2: %empty_tuple.type.as.I.impl.F.type.9e994f.2 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_48.2 [concrete = constants.%empty_tuple.type.as.I.impl.F.c7843c.2] { +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_48.2: %empty_tuple.type.as.I.impl.F.type.48cdab.2 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_48.2 [concrete = constants.%empty_tuple.type.as.I.impl.F.bd5be1.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -409,7 +409,7 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: fn @empty_tuple.type.as.I.impl.F.loc10_48.2(%x.param: %struct_type.a.b.391) -> out %return.param: %struct_type.c.d.15a [thunk @empty_tuple.type.as.I.impl.%empty_tuple.type.as.I.impl.F.decl.loc10_48.1 for @I.WithSelf.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %empty_tuple.type.as.I.impl.F.type.9e994f.1 = name_ref F, @empty_tuple.type.as.I.impl.%empty_tuple.type.as.I.impl.F.decl.loc10_48.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.c7843c.1] +// CHECK:STDOUT: %F.ref: %empty_tuple.type.as.I.impl.F.type.48cdab.1 = name_ref F, @empty_tuple.type.as.I.impl.%empty_tuple.type.as.I.impl.F.decl.loc10_48.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.bd5be1.1] // CHECK:STDOUT: %.loc10_48.1: ref %struct_type.d.c.b36 = temporary_storage // CHECK:STDOUT: // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.call: init %struct_type.d.c.b36 to %.loc10_48.1 = call %F.ref(%.loc5_9.3) @@ -426,7 +426,7 @@ 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.2dd605.3 +// 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: return %.loc10_48.14 to %return.param // CHECK:STDOUT: } @@ -448,62 +448,62 @@ impl () as I({}) { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %X.type: type = facet_type <@X> [concrete] // CHECK:STDOUT: %X.impl_witness: = impl_witness @B.as.X.impl.%X.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] -// CHECK:STDOUT: %ptr.cca: type = ptr_type %A [concrete] -// CHECK:STDOUT: %pattern_type.b90: type = pattern_type %ptr.cca [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.c56: Core.Form = init_form %ptr.6be [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.type.9e994f.1: type = fn_type @B.as.X.impl.F.loc14_37.1 [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.c7843c.1: %B.as.X.impl.F.type.9e994f.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] +// CHECK:STDOUT: %ptr.d43: type = ptr_type %A [concrete] +// CHECK:STDOUT: %pattern_type.8a5: type = pattern_type %ptr.d43 [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.8fa: Core.Form = init_form %ptr.6b6 [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.type.48cdab.1: type = fn_type @B.as.X.impl.F.loc14_37.1 [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.bd5be1.1: %B.as.X.impl.F.type.48cdab.1 = struct_value () [concrete] // CHECK:STDOUT: %X.facet: %X.type = facet_value %B, (%X.impl_witness) [concrete] -// CHECK:STDOUT: %ptr.294: type = ptr_type %B [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.type.9e994f.2: type = fn_type @B.as.X.impl.F.loc14_37.2 [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.c7843c.2: %B.as.X.impl.F.type.9e994f.2 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.432: type = ptr_type %B [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.type.48cdab.2: type = fn_type @B.as.X.impl.F.loc14_37.2 [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.bd5be1.2: %B.as.X.impl.F.type.48cdab.2 = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.a18: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%B) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.0f0: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%B) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.b00: %ptr.as.Copy.impl.Op.type.0f0 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.294, (%Copy.impl_witness.a18) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.f1d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.bf6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f1d, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.b00, @ptr.as.Copy.impl.Op(%B) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.09a: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%B) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.d4b: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%B) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.70e: %ptr.as.Copy.impl.Op.type.d4b = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.432, (%Copy.impl_witness.09a) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.78a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.fa1: type = fn_type_with_self_type %Copy.WithSelf.Op.type.78a, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.70e, @ptr.as.Copy.impl.Op(%B) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref { -// CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.1: %B.as.X.impl.F.type.9e994f.1 = fn_decl @B.as.X.impl.F.loc14_37.1 [concrete = constants.%B.as.X.impl.F.c7843c.1] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.ccb = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.ccb = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.b90 = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.b90 = at_binding_pattern other, %other.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.1c8 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.1c8 = return_slot_pattern %return.param_patt, %ptr.loc14_36 [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.1: %B.as.X.impl.F.type.48cdab.1 = fn_decl @B.as.X.impl.F.loc14_37.1 [concrete = constants.%B.as.X.impl.F.bd5be1.1] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.9ef = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9ef = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.8a5 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.8a5 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.fcb = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.fcb = return_slot_pattern %return.param_patt, %ptr.loc14_36 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc14_36: type = ptr_type %C.ref [concrete = constants.%ptr.6be] -// CHECK:STDOUT: %.loc14_36: Core.Form = init_form %ptr.loc14_36 [concrete = constants.%.c56] +// CHECK:STDOUT: %ptr.loc14_36: type = ptr_type %C.ref [concrete = constants.%ptr.6b6] +// CHECK:STDOUT: %.loc14_36: Core.Form = init_form %ptr.loc14_36 [concrete = constants.%.8fa] // CHECK:STDOUT: %self.param: ref %A = ref_param call_param0 // CHECK:STDOUT: %A.ref.loc14_18: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %self: ref %A = ref_binding self, %self.param -// CHECK:STDOUT: %other.param: %ptr.cca = value_param call_param1 -// CHECK:STDOUT: %.loc14_29: type = splice_block %ptr.loc14_29 [concrete = constants.%ptr.cca] { +// CHECK:STDOUT: %other.param: %ptr.d43 = value_param call_param1 +// CHECK:STDOUT: %.loc14_29: type = splice_block %ptr.loc14_29 [concrete = constants.%ptr.d43] { // CHECK:STDOUT: %A.ref.loc14_28: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %ptr.loc14_29: type = ptr_type %A.ref.loc14_28 [concrete = constants.%ptr.cca] +// CHECK:STDOUT: %ptr.loc14_29: type = ptr_type %A.ref.loc14_28 [concrete = constants.%ptr.d43] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: %ptr.cca = value_binding other, %other.param -// CHECK:STDOUT: %return.param: ref %ptr.6be = out_param call_param2 -// CHECK:STDOUT: %return: ref %ptr.6be = return_slot %return.param +// CHECK:STDOUT: %other: %ptr.d43 = value_binding other, %other.param +// CHECK:STDOUT: %return.param: ref %ptr.6b6 = out_param call_param2 +// CHECK:STDOUT: %return: ref %ptr.6b6 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.2: %B.as.X.impl.F.type.9e994f.2 = fn_decl @B.as.X.impl.F.loc14_37.2 [concrete = constants.%B.as.X.impl.F.c7843c.2] { +// CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.2: %B.as.X.impl.F.type.48cdab.2 = fn_decl @B.as.X.impl.F.loc14_37.2 [concrete = constants.%B.as.X.impl.F.bd5be1.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -518,25 +518,25 @@ impl () as I({}) { // CHECK:STDOUT: witness = %X.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @B.as.X.impl.F.loc14_37.1(%self.param: ref %A, %other.param: %ptr.cca) -> out %return.param: %ptr.6be; +// CHECK:STDOUT: fn @B.as.X.impl.F.loc14_37.1(%self.param: ref %A, %other.param: %ptr.d43) -> out %return.param: %ptr.6b6; // CHECK:STDOUT: -// CHECK:STDOUT: fn @B.as.X.impl.F.loc14_37.2(%self.param: ref %B, %other.param: %ptr.294) -> out %return.param: %ptr.294 [thunk @B.as.X.impl.%B.as.X.impl.F.decl.loc14_37.1 for @X.WithSelf.%X.WithSelf.F.decl, @X.WithSelf.F(constants.%X.facet)] { +// CHECK:STDOUT: fn @B.as.X.impl.F.loc14_37.2(%self.param: ref %B, %other.param: %ptr.432) -> out %return.param: %ptr.432 [thunk @B.as.X.impl.%B.as.X.impl.F.decl.loc14_37.1 for @X.WithSelf.%X.WithSelf.F.decl, @X.WithSelf.F(constants.%X.facet)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %B.as.X.impl.F.type.9e994f.1 = name_ref F, @B.as.X.impl.%B.as.X.impl.F.decl.loc14_37.1 [concrete = constants.%B.as.X.impl.F.c7843c.1] +// CHECK:STDOUT: %F.ref: %B.as.X.impl.F.type.48cdab.1 = name_ref F, @B.as.X.impl.%B.as.X.impl.F.decl.loc14_37.1 [concrete = constants.%B.as.X.impl.F.bd5be1.1] // CHECK:STDOUT: %B.as.X.impl.F.bound: = bound_method %self.param, %F.ref // CHECK:STDOUT: -// CHECK:STDOUT: %B.as.X.impl.F.call: init %ptr.6be = call %B.as.X.impl.F.bound(%.loc9_16.2, %.loc9_29.3) -// CHECK:STDOUT: %.loc14_37.1: %ptr.6be = value_of_initializer %B.as.X.impl.F.call -// CHECK:STDOUT: %.loc14_37.2: %ptr.6be = converted %B.as.X.impl.F.call, %.loc14_37.1 +// CHECK:STDOUT: %B.as.X.impl.F.call: init %ptr.6b6 = call %B.as.X.impl.F.bound(%.loc9_16.2, %.loc9_29.3) +// CHECK:STDOUT: %.loc14_37.1: %ptr.6b6 = value_of_initializer %B.as.X.impl.F.call +// CHECK:STDOUT: %.loc14_37.2: %ptr.6b6 = converted %B.as.X.impl.F.call, %.loc14_37.1 // CHECK:STDOUT: %.loc14_37.3: ref %C = deref %.loc14_37.2 // CHECK:STDOUT: %.loc14_37.4: ref %B = class_element_access %.loc14_37.3, element0 -// CHECK:STDOUT: %addr.loc14: %ptr.294 = addr_of %.loc14_37.4 -// CHECK:STDOUT: %.loc14_37.5: %ptr.294 = converted %B.as.X.impl.F.call, %addr.loc14 -// CHECK:STDOUT: %impl.elem0: %.bf6 = impl_witness_access constants.%Copy.impl_witness.a18, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b00] +// CHECK:STDOUT: %addr.loc14: %ptr.432 = addr_of %.loc14_37.4 +// CHECK:STDOUT: %.loc14_37.5: %ptr.432 = converted %B.as.X.impl.F.call, %addr.loc14 +// CHECK:STDOUT: %impl.elem0: %.fa1 = impl_witness_access constants.%Copy.impl_witness.09a, element0 [concrete = constants.%ptr.as.Copy.impl.Op.70e] // CHECK:STDOUT: %bound_method.loc14_37.1: = bound_method %.loc14_37.5, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%B) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc14_37.2: = bound_method %.loc14_37.5, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.294 = call %bound_method.loc14_37.2(%.loc14_37.5) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.432 = call %bound_method.loc14_37.2(%.loc14_37.5) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -548,20 +548,20 @@ impl () as I({}) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %X.type: type = facet_type <@X> [concrete] // CHECK:STDOUT: %X.impl_witness: = impl_witness @B.as.X.impl.%X.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.type.9e994f.1: type = fn_type @B.as.X.impl.F.loc13_26.1 [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.c7843c.1: %B.as.X.impl.F.type.9e994f.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.type.48cdab.1: type = fn_type @B.as.X.impl.F.loc13_26.1 [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.bd5be1.1: %B.as.X.impl.F.type.48cdab.1 = struct_value () [concrete] // CHECK:STDOUT: %X.facet: %X.type = facet_value %B, (%X.impl_witness) [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.type.9e994f.2: type = fn_type @B.as.X.impl.F.loc13_26.2 [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.c7843c.2: %B.as.X.impl.F.type.9e994f.2 = struct_value () [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.type.48cdab.2: type = fn_type @B.as.X.impl.F.loc13_26.2 [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.bd5be1.2: %B.as.X.impl.F.type.48cdab.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref { -// CHECK:STDOUT: %B.as.X.impl.F.decl.loc13_26.1: %B.as.X.impl.F.type.9e994f.1 = fn_decl @B.as.X.impl.F.loc13_26.1 [concrete = constants.%B.as.X.impl.F.c7843c.1] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.ccb = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.ccb = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.ccb = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.ccb = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.decl.loc13_26.1: %B.as.X.impl.F.type.48cdab.1 = fn_decl @B.as.X.impl.F.loc13_26.1 [concrete = constants.%B.as.X.impl.F.bd5be1.1] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.9ef = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9ef = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.9ef = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.9ef = at_binding_pattern other, %other.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %A = value_param call_param0 // CHECK:STDOUT: %A.ref.loc13_14: type = name_ref A, file.%A.decl [concrete = constants.%A] @@ -570,7 +570,7 @@ impl () as I({}) { // CHECK:STDOUT: %A.ref.loc13_24: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %other: %A = value_binding other, %other.param // CHECK:STDOUT: } -// CHECK:STDOUT: %B.as.X.impl.F.decl.loc13_26.2: %B.as.X.impl.F.type.9e994f.2 = fn_decl @B.as.X.impl.F.loc13_26.2 [concrete = constants.%B.as.X.impl.F.c7843c.2] { +// CHECK:STDOUT: %B.as.X.impl.F.decl.loc13_26.2: %B.as.X.impl.F.type.48cdab.2 = fn_decl @B.as.X.impl.F.loc13_26.2 [concrete = constants.%B.as.X.impl.F.bd5be1.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -588,7 +588,7 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: fn @B.as.X.impl.F.loc13_26.2(%self.param: %B, %other.param: %B) [thunk @B.as.X.impl.%B.as.X.impl.F.decl.loc13_26.1 for @X.WithSelf.%X.WithSelf.F.decl, @X.WithSelf.F(constants.%X.facet)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %B.as.X.impl.F.type.9e994f.1 = name_ref F, @B.as.X.impl.%B.as.X.impl.F.decl.loc13_26.1 [concrete = constants.%B.as.X.impl.F.c7843c.1] +// CHECK:STDOUT: %F.ref: %B.as.X.impl.F.type.48cdab.1 = name_ref F, @B.as.X.impl.%B.as.X.impl.F.decl.loc13_26.1 [concrete = constants.%B.as.X.impl.F.bd5be1.1] // CHECK:STDOUT: %B.as.X.impl.F.bound: = bound_method %self.param, %F.ref // CHECK:STDOUT: // CHECK:STDOUT: %B.as.X.impl.F.call: init %empty_tuple.type = call %B.as.X.impl.F.bound(%.loc8_12.3, %.loc8_25.3) @@ -603,62 +603,62 @@ impl () as I({}) { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %X.type: type = facet_type <@X> [concrete] // CHECK:STDOUT: %X.impl_witness: = impl_witness @B.as.X.impl.%X.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] -// CHECK:STDOUT: %ptr.cca: type = ptr_type %A [concrete] -// CHECK:STDOUT: %pattern_type.b90: type = pattern_type %ptr.cca [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.c56: Core.Form = init_form %ptr.6be [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.type.9e994f.1: type = fn_type @B.as.X.impl.F.loc14_37.1 [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.c7843c.1: %B.as.X.impl.F.type.9e994f.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] +// CHECK:STDOUT: %ptr.d43: type = ptr_type %A [concrete] +// CHECK:STDOUT: %pattern_type.8a5: type = pattern_type %ptr.d43 [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.8fa: Core.Form = init_form %ptr.6b6 [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.type.48cdab.1: type = fn_type @B.as.X.impl.F.loc14_37.1 [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.bd5be1.1: %B.as.X.impl.F.type.48cdab.1 = struct_value () [concrete] // CHECK:STDOUT: %X.facet: %X.type = facet_value %B, (%X.impl_witness) [concrete] -// CHECK:STDOUT: %ptr.294: type = ptr_type %B [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.type.9e994f.2: type = fn_type @B.as.X.impl.F.loc14_37.2 [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.c7843c.2: %B.as.X.impl.F.type.9e994f.2 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.432: type = ptr_type %B [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.type.48cdab.2: type = fn_type @B.as.X.impl.F.loc14_37.2 [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.bd5be1.2: %B.as.X.impl.F.type.48cdab.2 = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.a18: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%B) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.0f0: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%B) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.b00: %ptr.as.Copy.impl.Op.type.0f0 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.294, (%Copy.impl_witness.a18) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.f1d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.bf6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f1d, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.b00, @ptr.as.Copy.impl.Op(%B) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.09a: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%B) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.d4b: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%B) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.70e: %ptr.as.Copy.impl.Op.type.d4b = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.432, (%Copy.impl_witness.09a) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.78a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.fa1: type = fn_type_with_self_type %Copy.WithSelf.Op.type.78a, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.70e, @ptr.as.Copy.impl.Op(%B) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref { -// CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.1: %B.as.X.impl.F.type.9e994f.1 = fn_decl @B.as.X.impl.F.loc14_37.1 [concrete = constants.%B.as.X.impl.F.c7843c.1] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.ccb = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.ccb = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.b90 = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.b90 = at_binding_pattern other, %other.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.1c8 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.1c8 = return_slot_pattern %return.param_patt, %ptr.loc14_36 [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.1: %B.as.X.impl.F.type.48cdab.1 = fn_decl @B.as.X.impl.F.loc14_37.1 [concrete = constants.%B.as.X.impl.F.bd5be1.1] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.9ef = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9ef = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.8a5 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.8a5 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.fcb = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.fcb = return_slot_pattern %return.param_patt, %ptr.loc14_36 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc14_36: type = ptr_type %C.ref [concrete = constants.%ptr.6be] -// CHECK:STDOUT: %.loc14_36: Core.Form = init_form %ptr.loc14_36 [concrete = constants.%.c56] +// CHECK:STDOUT: %ptr.loc14_36: type = ptr_type %C.ref [concrete = constants.%ptr.6b6] +// CHECK:STDOUT: %.loc14_36: Core.Form = init_form %ptr.loc14_36 [concrete = constants.%.8fa] // CHECK:STDOUT: %self.param: ref %A = ref_param call_param0 // CHECK:STDOUT: %A.ref.loc14_18: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %self: ref %A = ref_binding self, %self.param -// CHECK:STDOUT: %other.param: %ptr.cca = value_param call_param1 -// CHECK:STDOUT: %.loc14_29: type = splice_block %ptr.loc14_29 [concrete = constants.%ptr.cca] { +// CHECK:STDOUT: %other.param: %ptr.d43 = value_param call_param1 +// CHECK:STDOUT: %.loc14_29: type = splice_block %ptr.loc14_29 [concrete = constants.%ptr.d43] { // CHECK:STDOUT: %A.ref.loc14_28: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %ptr.loc14_29: type = ptr_type %A.ref.loc14_28 [concrete = constants.%ptr.cca] +// CHECK:STDOUT: %ptr.loc14_29: type = ptr_type %A.ref.loc14_28 [concrete = constants.%ptr.d43] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: %ptr.cca = value_binding other, %other.param -// CHECK:STDOUT: %return.param: ref %ptr.6be = out_param call_param2 -// CHECK:STDOUT: %return: ref %ptr.6be = return_slot %return.param +// CHECK:STDOUT: %other: %ptr.d43 = value_binding other, %other.param +// CHECK:STDOUT: %return.param: ref %ptr.6b6 = out_param call_param2 +// CHECK:STDOUT: %return: ref %ptr.6b6 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.2: %B.as.X.impl.F.type.9e994f.2 = fn_decl @B.as.X.impl.F.loc14_37.2 [concrete = constants.%B.as.X.impl.F.c7843c.2] { +// CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.2: %B.as.X.impl.F.type.48cdab.2 = fn_decl @B.as.X.impl.F.loc14_37.2 [concrete = constants.%B.as.X.impl.F.bd5be1.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -673,25 +673,25 @@ impl () as I({}) { // CHECK:STDOUT: witness = %X.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @B.as.X.impl.F.loc14_37.1(%self.param: ref %A, %other.param: %ptr.cca) -> out %return.param: %ptr.6be; +// CHECK:STDOUT: fn @B.as.X.impl.F.loc14_37.1(%self.param: ref %A, %other.param: %ptr.d43) -> out %return.param: %ptr.6b6; // CHECK:STDOUT: -// CHECK:STDOUT: fn @B.as.X.impl.F.loc14_37.2(%self.param: ref %B, %other.param: %ptr.294) -> out %return.param: %ptr.294 [thunk @B.as.X.impl.%B.as.X.impl.F.decl.loc14_37.1 for @X.WithSelf.%X.WithSelf.F.decl, @X.WithSelf.F(constants.%X.facet)] { +// CHECK:STDOUT: fn @B.as.X.impl.F.loc14_37.2(%self.param: ref %B, %other.param: %ptr.432) -> out %return.param: %ptr.432 [thunk @B.as.X.impl.%B.as.X.impl.F.decl.loc14_37.1 for @X.WithSelf.%X.WithSelf.F.decl, @X.WithSelf.F(constants.%X.facet)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %B.as.X.impl.F.type.9e994f.1 = name_ref F, @B.as.X.impl.%B.as.X.impl.F.decl.loc14_37.1 [concrete = constants.%B.as.X.impl.F.c7843c.1] +// CHECK:STDOUT: %F.ref: %B.as.X.impl.F.type.48cdab.1 = name_ref F, @B.as.X.impl.%B.as.X.impl.F.decl.loc14_37.1 [concrete = constants.%B.as.X.impl.F.bd5be1.1] // CHECK:STDOUT: %B.as.X.impl.F.bound: = bound_method %self.param, %F.ref // CHECK:STDOUT: -// CHECK:STDOUT: %B.as.X.impl.F.call: init %ptr.6be = call %B.as.X.impl.F.bound(%.loc9_16.2, %.loc9_29.3) -// CHECK:STDOUT: %.loc14_37.1: %ptr.6be = value_of_initializer %B.as.X.impl.F.call -// CHECK:STDOUT: %.loc14_37.2: %ptr.6be = converted %B.as.X.impl.F.call, %.loc14_37.1 +// CHECK:STDOUT: %B.as.X.impl.F.call: init %ptr.6b6 = call %B.as.X.impl.F.bound(%.loc9_16.2, %.loc9_29.3) +// CHECK:STDOUT: %.loc14_37.1: %ptr.6b6 = value_of_initializer %B.as.X.impl.F.call +// CHECK:STDOUT: %.loc14_37.2: %ptr.6b6 = converted %B.as.X.impl.F.call, %.loc14_37.1 // CHECK:STDOUT: %.loc14_37.3: ref %C = deref %.loc14_37.2 // CHECK:STDOUT: %.loc14_37.4: ref %B = class_element_access %.loc14_37.3, element0 -// CHECK:STDOUT: %addr.loc14: %ptr.294 = addr_of %.loc14_37.4 -// CHECK:STDOUT: %.loc14_37.5: %ptr.294 = converted %B.as.X.impl.F.call, %addr.loc14 -// CHECK:STDOUT: %impl.elem0: %.bf6 = impl_witness_access constants.%Copy.impl_witness.a18, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b00] +// CHECK:STDOUT: %addr.loc14: %ptr.432 = addr_of %.loc14_37.4 +// CHECK:STDOUT: %.loc14_37.5: %ptr.432 = converted %B.as.X.impl.F.call, %addr.loc14 +// CHECK:STDOUT: %impl.elem0: %.fa1 = impl_witness_access constants.%Copy.impl_witness.09a, element0 [concrete = constants.%ptr.as.Copy.impl.Op.70e] // CHECK:STDOUT: %bound_method.loc14_37.1: = bound_method %.loc14_37.5, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%B) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc14_37.2: = bound_method %.loc14_37.5, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.294 = call %bound_method.loc14_37.2(%.loc14_37.5) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.432 = call %bound_method.loc14_37.2(%.loc14_37.5) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -703,62 +703,62 @@ impl () as I({}) { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %X.type: type = facet_type <@X> [concrete] // CHECK:STDOUT: %X.impl_witness: = impl_witness @B.as.X.impl.%X.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] -// CHECK:STDOUT: %ptr.cca: type = ptr_type %A [concrete] -// CHECK:STDOUT: %pattern_type.b90: type = pattern_type %ptr.cca [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.c56: Core.Form = init_form %ptr.6be [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.type.9e994f.1: type = fn_type @B.as.X.impl.F.loc14_37.1 [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.c7843c.1: %B.as.X.impl.F.type.9e994f.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] +// CHECK:STDOUT: %ptr.d43: type = ptr_type %A [concrete] +// CHECK:STDOUT: %pattern_type.8a5: type = pattern_type %ptr.d43 [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.8fa: Core.Form = init_form %ptr.6b6 [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.type.48cdab.1: type = fn_type @B.as.X.impl.F.loc14_37.1 [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.bd5be1.1: %B.as.X.impl.F.type.48cdab.1 = struct_value () [concrete] // CHECK:STDOUT: %X.facet: %X.type = facet_value %B, (%X.impl_witness) [concrete] -// CHECK:STDOUT: %ptr.294: type = ptr_type %B [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.type.9e994f.2: type = fn_type @B.as.X.impl.F.loc14_37.2 [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.c7843c.2: %B.as.X.impl.F.type.9e994f.2 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.432: type = ptr_type %B [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.type.48cdab.2: type = fn_type @B.as.X.impl.F.loc14_37.2 [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.bd5be1.2: %B.as.X.impl.F.type.48cdab.2 = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.a18: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%B) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.0f0: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%B) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.b00: %ptr.as.Copy.impl.Op.type.0f0 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.294, (%Copy.impl_witness.a18) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.f1d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.bf6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f1d, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.b00, @ptr.as.Copy.impl.Op(%B) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.09a: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%B) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.d4b: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%B) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.70e: %ptr.as.Copy.impl.Op.type.d4b = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.432, (%Copy.impl_witness.09a) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.78a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.fa1: type = fn_type_with_self_type %Copy.WithSelf.Op.type.78a, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.70e, @ptr.as.Copy.impl.Op(%B) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref { -// CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.1: %B.as.X.impl.F.type.9e994f.1 = fn_decl @B.as.X.impl.F.loc14_37.1 [concrete = constants.%B.as.X.impl.F.c7843c.1] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.ccb = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.ccb = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.b90 = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.b90 = at_binding_pattern other, %other.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.1c8 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.1c8 = return_slot_pattern %return.param_patt, %ptr.loc14_36 [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.1: %B.as.X.impl.F.type.48cdab.1 = fn_decl @B.as.X.impl.F.loc14_37.1 [concrete = constants.%B.as.X.impl.F.bd5be1.1] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.9ef = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9ef = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.8a5 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.8a5 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.fcb = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.fcb = return_slot_pattern %return.param_patt, %ptr.loc14_36 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc14_36: type = ptr_type %C.ref [concrete = constants.%ptr.6be] -// CHECK:STDOUT: %.loc14_36: Core.Form = init_form %ptr.loc14_36 [concrete = constants.%.c56] +// CHECK:STDOUT: %ptr.loc14_36: type = ptr_type %C.ref [concrete = constants.%ptr.6b6] +// CHECK:STDOUT: %.loc14_36: Core.Form = init_form %ptr.loc14_36 [concrete = constants.%.8fa] // CHECK:STDOUT: %self.param: ref %A = ref_param call_param0 // CHECK:STDOUT: %A.ref.loc14_18: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %self: ref %A = ref_binding self, %self.param -// CHECK:STDOUT: %other.param: %ptr.cca = value_param call_param1 -// CHECK:STDOUT: %.loc14_29: type = splice_block %ptr.loc14_29 [concrete = constants.%ptr.cca] { +// CHECK:STDOUT: %other.param: %ptr.d43 = value_param call_param1 +// CHECK:STDOUT: %.loc14_29: type = splice_block %ptr.loc14_29 [concrete = constants.%ptr.d43] { // CHECK:STDOUT: %A.ref.loc14_28: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %ptr.loc14_29: type = ptr_type %A.ref.loc14_28 [concrete = constants.%ptr.cca] +// CHECK:STDOUT: %ptr.loc14_29: type = ptr_type %A.ref.loc14_28 [concrete = constants.%ptr.d43] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: %ptr.cca = value_binding other, %other.param -// CHECK:STDOUT: %return.param: ref %ptr.6be = out_param call_param2 -// CHECK:STDOUT: %return: ref %ptr.6be = return_slot %return.param +// CHECK:STDOUT: %other: %ptr.d43 = value_binding other, %other.param +// CHECK:STDOUT: %return.param: ref %ptr.6b6 = out_param call_param2 +// CHECK:STDOUT: %return: ref %ptr.6b6 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.2: %B.as.X.impl.F.type.9e994f.2 = fn_decl @B.as.X.impl.F.loc14_37.2 [concrete = constants.%B.as.X.impl.F.c7843c.2] { +// CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.2: %B.as.X.impl.F.type.48cdab.2 = fn_decl @B.as.X.impl.F.loc14_37.2 [concrete = constants.%B.as.X.impl.F.bd5be1.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -773,25 +773,25 @@ impl () as I({}) { // CHECK:STDOUT: witness = %X.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @B.as.X.impl.F.loc14_37.1(%self.param: ref %A, %other.param: %ptr.cca) -> out %return.param: %ptr.6be; +// CHECK:STDOUT: fn @B.as.X.impl.F.loc14_37.1(%self.param: ref %A, %other.param: %ptr.d43) -> out %return.param: %ptr.6b6; // CHECK:STDOUT: -// CHECK:STDOUT: fn @B.as.X.impl.F.loc14_37.2(%self.param: ref %B, %other.param: %ptr.294) -> out %return.param: %ptr.294 [thunk @B.as.X.impl.%B.as.X.impl.F.decl.loc14_37.1 for @X.WithSelf.%X.WithSelf.F.decl, @X.WithSelf.F(constants.%X.facet)] { +// CHECK:STDOUT: fn @B.as.X.impl.F.loc14_37.2(%self.param: ref %B, %other.param: %ptr.432) -> out %return.param: %ptr.432 [thunk @B.as.X.impl.%B.as.X.impl.F.decl.loc14_37.1 for @X.WithSelf.%X.WithSelf.F.decl, @X.WithSelf.F(constants.%X.facet)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %B.as.X.impl.F.type.9e994f.1 = name_ref F, @B.as.X.impl.%B.as.X.impl.F.decl.loc14_37.1 [concrete = constants.%B.as.X.impl.F.c7843c.1] +// CHECK:STDOUT: %F.ref: %B.as.X.impl.F.type.48cdab.1 = name_ref F, @B.as.X.impl.%B.as.X.impl.F.decl.loc14_37.1 [concrete = constants.%B.as.X.impl.F.bd5be1.1] // CHECK:STDOUT: %B.as.X.impl.F.bound: = bound_method %self.param, %F.ref // CHECK:STDOUT: -// CHECK:STDOUT: %B.as.X.impl.F.call: init %ptr.6be = call %B.as.X.impl.F.bound(%.loc9_16.2, %.loc9_29.3) -// CHECK:STDOUT: %.loc14_37.1: %ptr.6be = value_of_initializer %B.as.X.impl.F.call -// CHECK:STDOUT: %.loc14_37.2: %ptr.6be = converted %B.as.X.impl.F.call, %.loc14_37.1 +// CHECK:STDOUT: %B.as.X.impl.F.call: init %ptr.6b6 = call %B.as.X.impl.F.bound(%.loc9_16.2, %.loc9_29.3) +// CHECK:STDOUT: %.loc14_37.1: %ptr.6b6 = value_of_initializer %B.as.X.impl.F.call +// CHECK:STDOUT: %.loc14_37.2: %ptr.6b6 = converted %B.as.X.impl.F.call, %.loc14_37.1 // CHECK:STDOUT: %.loc14_37.3: ref %C = deref %.loc14_37.2 // CHECK:STDOUT: %.loc14_37.4: ref %B = class_element_access %.loc14_37.3, element0 -// CHECK:STDOUT: %addr.loc14: %ptr.294 = addr_of %.loc14_37.4 -// CHECK:STDOUT: %.loc14_37.5: %ptr.294 = converted %B.as.X.impl.F.call, %addr.loc14 -// CHECK:STDOUT: %impl.elem0: %.bf6 = impl_witness_access constants.%Copy.impl_witness.a18, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b00] +// CHECK:STDOUT: %addr.loc14: %ptr.432 = addr_of %.loc14_37.4 +// CHECK:STDOUT: %.loc14_37.5: %ptr.432 = converted %B.as.X.impl.F.call, %addr.loc14 +// CHECK:STDOUT: %impl.elem0: %.fa1 = impl_witness_access constants.%Copy.impl_witness.09a, element0 [concrete = constants.%ptr.as.Copy.impl.Op.70e] // CHECK:STDOUT: %bound_method.loc14_37.1: = bound_method %.loc14_37.5, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%B) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc14_37.2: = bound_method %.loc14_37.5, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.294 = call %bound_method.loc14_37.2(%.loc14_37.5) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.432 = call %bound_method.loc14_37.2(%.loc14_37.5) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -803,20 +803,20 @@ impl () as I({}) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %X.type: type = facet_type <@X> [concrete] // CHECK:STDOUT: %X.impl_witness: = impl_witness @B.as.X.impl.%X.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.type.9e994f.1: type = fn_type @B.as.X.impl.F.loc13_30.1 [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.c7843c.1: %B.as.X.impl.F.type.9e994f.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.type.48cdab.1: type = fn_type @B.as.X.impl.F.loc13_30.1 [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.bd5be1.1: %B.as.X.impl.F.type.48cdab.1 = struct_value () [concrete] // CHECK:STDOUT: %X.facet: %X.type = facet_value %B, (%X.impl_witness) [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.type.9e994f.2: type = fn_type @B.as.X.impl.F.loc13_30.2 [concrete] -// CHECK:STDOUT: %B.as.X.impl.F.c7843c.2: %B.as.X.impl.F.type.9e994f.2 = struct_value () [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.type.48cdab.2: type = fn_type @B.as.X.impl.F.loc13_30.2 [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.bd5be1.2: %B.as.X.impl.F.type.48cdab.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref { -// CHECK:STDOUT: %B.as.X.impl.F.decl.loc13_30.1: %B.as.X.impl.F.type.9e994f.1 = fn_decl @B.as.X.impl.F.loc13_30.1 [concrete = constants.%B.as.X.impl.F.c7843c.1] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.ccb = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.ccb = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.ccb = ref_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.ccb = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %B.as.X.impl.F.decl.loc13_30.1: %B.as.X.impl.F.type.48cdab.1 = fn_decl @B.as.X.impl.F.loc13_30.1 [concrete = constants.%B.as.X.impl.F.bd5be1.1] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.9ef = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9ef = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.9ef = ref_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.9ef = at_binding_pattern other, %other.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %A = value_param call_param0 // CHECK:STDOUT: %A.ref.loc13_14: type = name_ref A, file.%A.decl [concrete = constants.%A] @@ -825,7 +825,7 @@ impl () as I({}) { // CHECK:STDOUT: %A.ref.loc13_28: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %other: ref %A = ref_binding other, %other.param // CHECK:STDOUT: } -// CHECK:STDOUT: %B.as.X.impl.F.decl.loc13_30.2: %B.as.X.impl.F.type.9e994f.2 = fn_decl @B.as.X.impl.F.loc13_30.2 [concrete = constants.%B.as.X.impl.F.c7843c.2] { +// CHECK:STDOUT: %B.as.X.impl.F.decl.loc13_30.2: %B.as.X.impl.F.type.48cdab.2 = fn_decl @B.as.X.impl.F.loc13_30.2 [concrete = constants.%B.as.X.impl.F.bd5be1.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -843,7 +843,7 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: fn @B.as.X.impl.F.loc13_30.2(%self.param: %B, %other.param: ref %B) [thunk @B.as.X.impl.%B.as.X.impl.F.decl.loc13_30.1 for @X.WithSelf.%X.WithSelf.F.decl, @X.WithSelf.F(constants.%X.facet)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %B.as.X.impl.F.type.9e994f.1 = name_ref F, @B.as.X.impl.%B.as.X.impl.F.decl.loc13_30.1 [concrete = constants.%B.as.X.impl.F.c7843c.1] +// CHECK:STDOUT: %F.ref: %B.as.X.impl.F.type.48cdab.1 = name_ref F, @B.as.X.impl.%B.as.X.impl.F.decl.loc13_30.1 [concrete = constants.%B.as.X.impl.F.bd5be1.1] // CHECK:STDOUT: %B.as.X.impl.F.bound: = bound_method %self.param, %F.ref // CHECK:STDOUT: // CHECK:STDOUT: %B.as.X.impl.F.call: init %empty_tuple.type = call %B.as.X.impl.F.bound(%.loc8_12.3, %.loc8_29.2) @@ -857,32 +857,32 @@ impl () as I({}) { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %struct_type.base.722: type = struct_type {.base: %A} [concrete] +// CHECK:STDOUT: %struct_type.base.cb7: type = struct_type {.base: %A} [concrete] // CHECK:STDOUT: %X.type: type = facet_type <@X> [concrete] // CHECK:STDOUT: %X.impl_witness: = impl_witness @A.as.X.impl.%X.impl_witness_table [concrete] -// CHECK:STDOUT: %.25e: Core.Form = init_form %B [concrete] -// CHECK:STDOUT: %pattern_type.787: type = pattern_type %B [concrete] -// CHECK:STDOUT: %A.as.X.impl.F.type.9e994f.1: type = fn_type @A.as.X.impl.F.loc23_14.1 [concrete] -// CHECK:STDOUT: %A.as.X.impl.F.c7843c.1: %A.as.X.impl.F.type.9e994f.1 = struct_value () [concrete] +// CHECK:STDOUT: %.d83: Core.Form = init_form %B [concrete] +// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete] +// CHECK:STDOUT: %A.as.X.impl.F.type.48cdab.1: type = fn_type @A.as.X.impl.F.loc23_14.1 [concrete] +// CHECK:STDOUT: %A.as.X.impl.F.bd5be1.1: %A.as.X.impl.F.type.48cdab.1 = struct_value () [concrete] // CHECK:STDOUT: %X.facet: %X.type = facet_value %A, (%X.impl_witness) [concrete] -// CHECK:STDOUT: %A.as.X.impl.F.type.9e994f.2: type = fn_type @A.as.X.impl.F.loc23_14.2 [concrete] -// CHECK:STDOUT: %A.as.X.impl.F.c7843c.2: %A.as.X.impl.F.type.9e994f.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc23_14.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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.4: type = fn_type @Destroy.Op.loc23_14.4 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @A.as.X.impl: %A.ref as %X.ref { -// CHECK:STDOUT: %A.as.X.impl.F.decl.loc23_14.1: %A.as.X.impl.F.type.9e994f.1 = fn_decl @A.as.X.impl.F.loc23_14.1 [concrete = constants.%A.as.X.impl.F.c7843c.1] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.787 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.787 = return_slot_pattern %return.param_patt, %B.ref [concrete] +// CHECK:STDOUT: %A.as.X.impl.F.decl.loc23_14.1: %A.as.X.impl.F.type.48cdab.1 = fn_decl @A.as.X.impl.F.loc23_14.1 [concrete = constants.%A.as.X.impl.F.bd5be1.1] { +// CHECK:STDOUT: %return.param_patt: %pattern_type.e39 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.e39 = return_slot_pattern %return.param_patt, %B.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %.loc23: Core.Form = init_form %B.ref [concrete = constants.%.25e] +// CHECK:STDOUT: %.loc23: Core.Form = init_form %B.ref [concrete = constants.%.d83] // CHECK:STDOUT: %return.param: ref %B = out_param call_param0 // CHECK:STDOUT: %return: ref %B = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: %A.as.X.impl.F.decl.loc23_14.2: %A.as.X.impl.F.type.9e994f.2 = fn_decl @A.as.X.impl.F.loc23_14.2 [concrete = constants.%A.as.X.impl.F.c7843c.2] { +// CHECK:STDOUT: %A.as.X.impl.F.decl.loc23_14.2: %A.as.X.impl.F.type.48cdab.2 = fn_decl @A.as.X.impl.F.loc23_14.2 [concrete = constants.%A.as.X.impl.F.bd5be1.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -900,14 +900,14 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: fn @A.as.X.impl.F.loc23_14.2() -> out %return.param: %A [thunk @A.as.X.impl.%A.as.X.impl.F.decl.loc23_14.1 for @X.WithSelf.%X.WithSelf.F.decl, @X.WithSelf.F(constants.%X.facet)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %A.as.X.impl.F.type.9e994f.1 = name_ref F, @A.as.X.impl.%A.as.X.impl.F.decl.loc23_14.1 [concrete = constants.%A.as.X.impl.F.c7843c.1] +// CHECK:STDOUT: %F.ref: %A.as.X.impl.F.type.48cdab.1 = name_ref F, @A.as.X.impl.%A.as.X.impl.F.decl.loc23_14.1 [concrete = constants.%A.as.X.impl.F.bd5be1.1] // CHECK:STDOUT: %.loc23_14.1: ref %B = temporary_storage // CHECK:STDOUT: %A.as.X.impl.F.call: init %B to %.loc23_14.1 = call %F.ref() // CHECK:STDOUT: %.loc23_14.2: ref %B = temporary %.loc23_14.1, %A.as.X.impl.F.call // CHECK:STDOUT: %.loc23_14.3: ref %A = class_element_access %.loc23_14.2, element0 // CHECK:STDOUT: %.loc23_14.4: ref %A = converted %A.as.X.impl.F.call, %.loc23_14.3 // CHECK:STDOUT: %.loc23_14.5: %A = acquire_value %.loc23_14.4 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc23_14.2, constants.%Destroy.Op.2dd605.4 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc23_14.2, constants.%Destroy.Op.1a2547.4 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc23_14.2) // CHECK:STDOUT: return to %return.param // CHECK:STDOUT: } @@ -919,7 +919,7 @@ impl () as I({}) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_14.3(%self.param: ref %struct_type.base.722) { +// CHECK:STDOUT: fn @Destroy.Op.loc23_14.3(%self.param: ref %struct_type.base.cb7) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -938,35 +938,35 @@ impl () as I({}) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @empty_tuple.type.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %U.f49: %Copy.type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %U.as_type.09c: type = facet_access_type %U.f49 [symbolic] -// CHECK:STDOUT: %pattern_type.c0fdca.2: type = pattern_type %U.as_type.09c [symbolic] -// CHECK:STDOUT: %.dedae6.2: Core.Form = init_form %U.as_type.09c [symbolic] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.9e994f.1: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_34.1 [concrete] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.c7843c.1: %empty_tuple.type.as.I.impl.F.type.9e994f.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.e81: type = pattern_type %Copy.type [concrete] +// CHECK:STDOUT: %U.f84: %Copy.type = symbolic_binding U, 0 [symbolic] +// CHECK:STDOUT: %U.as_type.c1c: type = facet_access_type %U.f84 [symbolic] +// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %U.as_type.c1c [symbolic] +// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %U.as_type.c1c [symbolic] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.48cdab.1: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_34.1 [concrete] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.bd5be1.1: %empty_tuple.type.as.I.impl.F.type.48cdab.1 = struct_value () [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %empty_tuple.type, (%I.impl_witness) [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] // CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic] // CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr.e8f [symbolic] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.9e994f.2: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_34.2 [concrete] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.c7843c.2: %empty_tuple.type.as.I.impl.F.type.9e994f.2 = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.77e193.1: = require_complete_type %U.as_type.09c [symbolic] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.48cdab.2: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_34.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: %require_complete.d83f06.1: = require_complete_type %U.as_type.c1c [symbolic] // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2ddaf7.2: = lookup_impl_witness %U.f49, @Copy [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.e9f10f.3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.f49) [symbolic] -// CHECK:STDOUT: %.e16121.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type.e9f10f.3, %U.f49 [symbolic] -// CHECK:STDOUT: %impl.elem0.41e7eb.2: %.e16121.2 = impl_witness_access %Copy.lookup_impl_witness.2ddaf7.2, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7ecd07.2: = specific_impl_function %impl.elem0.41e7eb.2, @Copy.WithSelf.Op(%U.f49) [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2bf: = lookup_impl_witness %ptr.e8f, @Copy [symbolic] -// CHECK:STDOUT: %.b6a: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e8f, (%Copy.lookup_impl_witness.2bf) [symbolic] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.specific_fn: = specific_function %empty_tuple.type.as.I.impl.F.c7843c.1, @empty_tuple.type.as.I.impl.F.loc10_34.1(%Copy.facet) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.72b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.72b, %Copy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.8a3: %.39b = impl_witness_access %Copy.lookup_impl_witness.2bf, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a13: = specific_impl_function %impl.elem0.8a3, @Copy.WithSelf.Op(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d9c332.2: = lookup_impl_witness %U.f84, @Copy [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c85f21.3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.f84) [symbolic] +// CHECK:STDOUT: %.c29330.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c85f21.3, %U.f84 [symbolic] +// CHECK:STDOUT: %impl.elem0.bd2456.2: %.c29330.2 = impl_witness_access %Copy.lookup_impl_witness.d9c332.2, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e2af7e.2: = specific_impl_function %impl.elem0.bd2456.2, @Copy.WithSelf.Op(%U.f84) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.1da: = lookup_impl_witness %ptr.e8f, @Copy [symbolic] +// CHECK:STDOUT: %.0e9: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e8f, (%Copy.lookup_impl_witness.1da) [symbolic] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.specific_fn: = specific_function %empty_tuple.type.as.I.impl.F.bd5be1.1, @empty_tuple.type.as.I.impl.F.loc10_34.1(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.884: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] +// CHECK:STDOUT: %.be5: type = fn_type_with_self_type %Copy.WithSelf.Op.type.884, %Copy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.484: %.be5 = impl_witness_access %Copy.lookup_impl_witness.1da, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.a76: = specific_impl_function %impl.elem0.484, @Copy.WithSelf.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -979,35 +979,35 @@ impl () as I({}) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.I.impl: %.loc8_7.2 as %I.ref { -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_34.1: %empty_tuple.type.as.I.impl.F.type.9e994f.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_34.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.c7843c.1] { -// CHECK:STDOUT: %U.patt: %pattern_type.b72 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.c0fdca.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.c0fdca.2) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.c0fdca.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.c0fdca.2) = return_slot_pattern %return.param_patt, %.loc10_32.3 [concrete] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_34.1: %empty_tuple.type.as.I.impl.F.type.48cdab.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_34.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.bd5be1.1] { +// CHECK:STDOUT: %U.patt: %pattern_type.e81 = symbolic_binding_pattern U, 0 [concrete] +// CHECK:STDOUT: %x.param_patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt, %.loc10_32.3 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.ref.loc10_32: %Copy.type = name_ref U, %U.loc10_9.2 [symbolic = %U.loc10_9.1 (constants.%U.f49)] -// CHECK:STDOUT: %U.as_type.loc10_32: type = facet_access_type %U.ref.loc10_32 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.09c)] -// CHECK:STDOUT: %.loc10_32.3: type = converted %U.ref.loc10_32, %U.as_type.loc10_32 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.09c)] -// CHECK:STDOUT: %.loc10_32.4: Core.Form = init_form %.loc10_32.3 [symbolic = %.loc10_32.2 (constants.%.dedae6.2)] +// CHECK:STDOUT: %U.ref.loc10_32: %Copy.type = name_ref U, %U.loc10_9.2 [symbolic = %U.loc10_9.1 (constants.%U.f84)] +// CHECK:STDOUT: %U.as_type.loc10_32: type = facet_access_type %U.ref.loc10_32 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.c1c)] +// CHECK:STDOUT: %.loc10_32.3: type = converted %U.ref.loc10_32, %U.as_type.loc10_32 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.c1c)] +// CHECK:STDOUT: %.loc10_32.4: Core.Form = init_form %.loc10_32.3 [symbolic = %.loc10_32.2 (constants.%.1ce700.2)] // CHECK:STDOUT: %.loc10_16: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc10_9.2: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc10_9.1 (constants.%U.f49)] -// CHECK:STDOUT: %x.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.09c) = value_param call_param0 -// CHECK:STDOUT: %.loc10_26.1: type = splice_block %.loc10_26.2 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.09c)] { -// CHECK:STDOUT: %U.ref.loc10_26: %Copy.type = name_ref U, %U.loc10_9.2 [symbolic = %U.loc10_9.1 (constants.%U.f49)] -// CHECK:STDOUT: %U.as_type.loc10_26.2: type = facet_access_type %U.ref.loc10_26 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.09c)] -// CHECK:STDOUT: %.loc10_26.2: type = converted %U.ref.loc10_26, %U.as_type.loc10_26.2 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.09c)] +// CHECK:STDOUT: %U.loc10_9.2: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc10_9.1 (constants.%U.f84)] +// CHECK:STDOUT: %x.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.c1c) = value_param call_param0 +// CHECK:STDOUT: %.loc10_26.1: type = splice_block %.loc10_26.2 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.c1c)] { +// CHECK:STDOUT: %U.ref.loc10_26: %Copy.type = name_ref U, %U.loc10_9.2 [symbolic = %U.loc10_9.1 (constants.%U.f84)] +// CHECK:STDOUT: %U.as_type.loc10_26.2: type = facet_access_type %U.ref.loc10_26 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.c1c)] +// CHECK:STDOUT: %.loc10_26.2: type = converted %U.ref.loc10_26, %U.as_type.loc10_26.2 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.c1c)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.09c) = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.09c) = out_param call_param1 -// CHECK:STDOUT: %return: ref @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.09c) = return_slot %return.param +// CHECK:STDOUT: %x: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.c1c) = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.c1c) = out_param call_param1 +// CHECK:STDOUT: %return: ref @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.c1c) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_34.2: %empty_tuple.type.as.I.impl.F.type.9e994f.2 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_34.2 [concrete = constants.%empty_tuple.type.as.I.impl.F.c7843c.2] { +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_34.2: %empty_tuple.type.as.I.impl.F.type.48cdab.2 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_34.2 [concrete = constants.%empty_tuple.type.as.I.impl.F.bd5be1.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -1021,28 +1021,28 @@ impl () as I({}) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @empty_tuple.type.as.I.impl.F.loc10_34.1(%U.loc10_9.2: %Copy.type) { -// CHECK:STDOUT: %U.loc10_9.1: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc10_9.1 (constants.%U.f49)] -// CHECK:STDOUT: %U.as_type.loc10_26.1: type = facet_access_type %U.loc10_9.1 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.09c)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc10_26.1 [symbolic = %pattern_type (constants.%pattern_type.c0fdca.2)] -// CHECK:STDOUT: %.loc10_32.2: Core.Form = init_form %U.as_type.loc10_26.1 [symbolic = %.loc10_32.2 (constants.%.dedae6.2)] +// CHECK:STDOUT: %U.loc10_9.1: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc10_9.1 (constants.%U.f84)] +// CHECK:STDOUT: %U.as_type.loc10_26.1: type = facet_access_type %U.loc10_9.1 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.c1c)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc10_26.1 [symbolic = %pattern_type (constants.%pattern_type.2c66b4.2)] +// CHECK:STDOUT: %.loc10_32.2: Core.Form = init_form %U.as_type.loc10_26.1 [symbolic = %.loc10_32.2 (constants.%.1ce700.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc10_26.1 [symbolic = %require_complete (constants.%require_complete.77e193.1)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.loc10_9.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.3)] -// CHECK:STDOUT: %.loc10_43: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %U.loc10_9.1 [symbolic = %.loc10_43 (constants.%.e16121.2)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %U.loc10_9.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2ddaf7.2)] -// CHECK:STDOUT: %impl.elem0.loc10_43.2: @empty_tuple.type.as.I.impl.F.loc10_34.1.%.loc10_43 (%.e16121.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_43.2 (constants.%impl.elem0.41e7eb.2)] -// CHECK:STDOUT: %specific_impl_fn.loc10_43.2: = specific_impl_function %impl.elem0.loc10_43.2, @Copy.WithSelf.Op(%U.loc10_9.1) [symbolic = %specific_impl_fn.loc10_43.2 (constants.%specific_impl_fn.7ecd07.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc10_26.1 [symbolic = %require_complete (constants.%require_complete.d83f06.1)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.loc10_9.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.3)] +// CHECK:STDOUT: %.loc10_43: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %U.loc10_9.1 [symbolic = %.loc10_43 (constants.%.c29330.2)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %U.loc10_9.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c332.2)] +// CHECK:STDOUT: %impl.elem0.loc10_43.2: @empty_tuple.type.as.I.impl.F.loc10_34.1.%.loc10_43 (%.c29330.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_43.2 (constants.%impl.elem0.bd2456.2)] +// CHECK:STDOUT: %specific_impl_fn.loc10_43.2: = specific_impl_function %impl.elem0.loc10_43.2, @Copy.WithSelf.Op(%U.loc10_9.1) [symbolic = %specific_impl_fn.loc10_43.2 (constants.%specific_impl_fn.e2af7e.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.09c)) -> out %return.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.09c) { +// CHECK:STDOUT: fn(%x.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.c1c)) -> out %return.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.c1c) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.09c) = name_ref x, %x -// CHECK:STDOUT: %impl.elem0.loc10_43.1: @empty_tuple.type.as.I.impl.F.loc10_34.1.%.loc10_43 (%.e16121.2) = impl_witness_access constants.%Copy.lookup_impl_witness.2ddaf7.2, element0 [symbolic = %impl.elem0.loc10_43.2 (constants.%impl.elem0.41e7eb.2)] +// CHECK:STDOUT: %x.ref: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.c1c) = name_ref x, %x +// CHECK:STDOUT: %impl.elem0.loc10_43.1: @empty_tuple.type.as.I.impl.F.loc10_34.1.%.loc10_43 (%.c29330.2) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c332.2, element0 [symbolic = %impl.elem0.loc10_43.2 (constants.%impl.elem0.bd2456.2)] // CHECK:STDOUT: %bound_method.loc10_43.1: = bound_method %x.ref, %impl.elem0.loc10_43.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_43.1: = specific_impl_function %impl.elem0.loc10_43.1, @Copy.WithSelf.Op(constants.%U.f49) [symbolic = %specific_impl_fn.loc10_43.2 (constants.%specific_impl_fn.7ecd07.2)] +// CHECK:STDOUT: %specific_impl_fn.loc10_43.1: = specific_impl_function %impl.elem0.loc10_43.1, @Copy.WithSelf.Op(constants.%U.f84) [symbolic = %specific_impl_fn.loc10_43.2 (constants.%specific_impl_fn.e2af7e.2)] // CHECK:STDOUT: %bound_method.loc10_43.2: = bound_method %x.ref, %specific_impl_fn.loc10_43.1 -// CHECK:STDOUT: %.loc10_32.1: ref @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.09c) = splice_block %return.param {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.09c) to %.loc10_32.1 = call %bound_method.loc10_43.2(%x.ref) +// CHECK:STDOUT: %.loc10_32.1: ref @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.c1c) = splice_block %return.param {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.c1c) to %.loc10_32.1 = call %bound_method.loc10_43.2(%x.ref) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1052,15 +1052,15 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %.loc10_34.2: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc5_9.1) [symbolic = %.loc10_34.2 (constants.%.b6a)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2bf)] +// CHECK:STDOUT: %.loc10_34.2: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc5_9.1) [symbolic = %.loc10_34.2 (constants.%.0e9)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.1da)] // CHECK:STDOUT: %Copy.facet.loc10_34.2: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet.loc10_34.2 (constants.%Copy.facet)] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.specific_fn.loc10_34.2: = specific_function constants.%empty_tuple.type.as.I.impl.F.c7843c.1, @empty_tuple.type.as.I.impl.F.loc10_34.1(%Copy.facet.loc10_34.2) [symbolic = %empty_tuple.type.as.I.impl.F.specific_fn.loc10_34.2 (constants.%empty_tuple.type.as.I.impl.F.specific_fn)] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.specific_fn.loc10_34.2: = specific_function constants.%empty_tuple.type.as.I.impl.F.bd5be1.1, @empty_tuple.type.as.I.impl.F.loc10_34.1(%Copy.facet.loc10_34.2) [symbolic = %empty_tuple.type.as.I.impl.F.specific_fn.loc10_34.2 (constants.%empty_tuple.type.as.I.impl.F.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @empty_tuple.type.as.I.impl.F.loc10_34.2.%ptr (%ptr.e8f)) -> out %return.param: @empty_tuple.type.as.I.impl.F.loc10_34.2.%ptr (%ptr.e8f) [thunk @empty_tuple.type.as.I.impl.%empty_tuple.type.as.I.impl.F.decl.loc10_34.1 for @I.WithSelf.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet, constants.%T.67d)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %empty_tuple.type.as.I.impl.F.type.9e994f.1 = name_ref F, @empty_tuple.type.as.I.impl.%empty_tuple.type.as.I.impl.F.decl.loc10_34.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.c7843c.1] -// CHECK:STDOUT: %Copy.facet.loc10_34.1: %Copy.type = facet_value constants.%ptr.e8f, (constants.%Copy.lookup_impl_witness.2bf) [symbolic = %Copy.facet.loc10_34.2 (constants.%Copy.facet)] +// CHECK:STDOUT: %F.ref: %empty_tuple.type.as.I.impl.F.type.48cdab.1 = name_ref F, @empty_tuple.type.as.I.impl.%empty_tuple.type.as.I.impl.F.decl.loc10_34.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.bd5be1.1] +// CHECK:STDOUT: %Copy.facet.loc10_34.1: %Copy.type = facet_value constants.%ptr.e8f, (constants.%Copy.lookup_impl_witness.1da) [symbolic = %Copy.facet.loc10_34.2 (constants.%Copy.facet)] // CHECK:STDOUT: %.loc10_34.1: %Copy.type = converted constants.%ptr.e8f, %Copy.facet.loc10_34.1 [symbolic = %Copy.facet.loc10_34.2 (constants.%Copy.facet)] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.specific_fn.loc10_34.1: = specific_function %F.ref, @empty_tuple.type.as.I.impl.F.loc10_34.1(constants.%Copy.facet) [symbolic = %empty_tuple.type.as.I.impl.F.specific_fn.loc10_34.2 (constants.%empty_tuple.type.as.I.impl.F.specific_fn)] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.call: init @empty_tuple.type.as.I.impl.F.loc10_34.2.%ptr (%ptr.e8f) = call %empty_tuple.type.as.I.impl.F.specific_fn.loc10_34.1(%x.param) @@ -1068,11 +1068,11 @@ impl () as I({}) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_34.1(constants.%U.f49) { -// CHECK:STDOUT: %U.loc10_9.1 => constants.%U.f49 -// CHECK:STDOUT: %U.as_type.loc10_26.1 => constants.%U.as_type.09c -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c0fdca.2 -// CHECK:STDOUT: %.loc10_32.2 => constants.%.dedae6.2 +// CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_34.1(constants.%U.f84) { +// CHECK:STDOUT: %U.loc10_9.1 => constants.%U.f84 +// CHECK:STDOUT: %U.as_type.loc10_26.1 => constants.%U.as_type.c1c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2c66b4.2 +// CHECK:STDOUT: %.loc10_32.2 => constants.%.1ce700.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_34.2(constants.%T.67d) { @@ -1090,11 +1090,11 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.ef1 -// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.72b -// CHECK:STDOUT: %.loc10_43 => constants.%.39b -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.2bf -// CHECK:STDOUT: %impl.elem0.loc10_43.2 => constants.%impl.elem0.8a3 -// CHECK:STDOUT: %specific_impl_fn.loc10_43.2 => constants.%specific_impl_fn.a13 +// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.884 +// CHECK:STDOUT: %.loc10_43 => constants.%.be5 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.1da +// CHECK:STDOUT: %impl.elem0.loc10_43.2 => constants.%impl.elem0.484 +// CHECK:STDOUT: %specific_impl_fn.loc10_43.2 => constants.%specific_impl_fn.a76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- generic_method.carbon @@ -1108,35 +1108,35 @@ impl () as I({}) { // CHECK:STDOUT: %I.impl_witness: = impl_witness @empty_tuple.type.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %U.f49: %Copy.type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %U.as_type.09c: type = facet_access_type %U.f49 [symbolic] -// CHECK:STDOUT: %pattern_type.c0fdca.2: type = pattern_type %U.as_type.09c [symbolic] -// CHECK:STDOUT: %.dedae6.2: Core.Form = init_form %U.as_type.09c [symbolic] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.9e994f.1: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_51.1 [concrete] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.c7843c.1: %empty_tuple.type.as.I.impl.F.type.9e994f.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.e81: type = pattern_type %Copy.type [concrete] +// CHECK:STDOUT: %U.f84: %Copy.type = symbolic_binding U, 0 [symbolic] +// CHECK:STDOUT: %U.as_type.c1c: type = facet_access_type %U.f84 [symbolic] +// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %U.as_type.c1c [symbolic] +// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %U.as_type.c1c [symbolic] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.48cdab.1: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_51.1 [concrete] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.bd5be1.1: %empty_tuple.type.as.I.impl.F.type.48cdab.1 = struct_value () [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %empty_tuple.type, (%I.impl_witness) [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] // CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic] // CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr.e8f [symbolic] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.9e994f.2: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_51.2 [concrete] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.c7843c.2: %empty_tuple.type.as.I.impl.F.type.9e994f.2 = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.77e193.1: = require_complete_type %U.as_type.09c [symbolic] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.48cdab.2: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_51.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: %require_complete.d83f06.1: = require_complete_type %U.as_type.c1c [symbolic] // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2ddaf7.2: = lookup_impl_witness %U.f49, @Copy [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.e9f10f.3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.f49) [symbolic] -// CHECK:STDOUT: %.e16121.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type.e9f10f.3, %U.f49 [symbolic] -// CHECK:STDOUT: %impl.elem0.41e7eb.2: %.e16121.2 = impl_witness_access %Copy.lookup_impl_witness.2ddaf7.2, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7ecd07.2: = specific_impl_function %impl.elem0.41e7eb.2, @Copy.WithSelf.Op(%U.f49) [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2bf: = lookup_impl_witness %ptr.e8f, @Copy [symbolic] -// CHECK:STDOUT: %.b6a: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e8f, (%Copy.lookup_impl_witness.2bf) [symbolic] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.specific_fn: = specific_function %empty_tuple.type.as.I.impl.F.c7843c.1, @empty_tuple.type.as.I.impl.F.loc10_51.1(%Copy.facet) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.72b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.72b, %Copy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.8a3: %.39b = impl_witness_access %Copy.lookup_impl_witness.2bf, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a13: = specific_impl_function %impl.elem0.8a3, @Copy.WithSelf.Op(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d9c332.2: = lookup_impl_witness %U.f84, @Copy [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c85f21.3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.f84) [symbolic] +// CHECK:STDOUT: %.c29330.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c85f21.3, %U.f84 [symbolic] +// CHECK:STDOUT: %impl.elem0.bd2456.2: %.c29330.2 = impl_witness_access %Copy.lookup_impl_witness.d9c332.2, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e2af7e.2: = specific_impl_function %impl.elem0.bd2456.2, @Copy.WithSelf.Op(%U.f84) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.1da: = lookup_impl_witness %ptr.e8f, @Copy [symbolic] +// CHECK:STDOUT: %.0e9: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e8f, (%Copy.lookup_impl_witness.1da) [symbolic] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.specific_fn: = specific_function %empty_tuple.type.as.I.impl.F.bd5be1.1, @empty_tuple.type.as.I.impl.F.loc10_51.1(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.884: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] +// CHECK:STDOUT: %.be5: type = fn_type_with_self_type %Copy.WithSelf.Op.type.884, %Copy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.484: %.be5 = impl_witness_access %Copy.lookup_impl_witness.1da, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.a76: = specific_impl_function %impl.elem0.484, @Copy.WithSelf.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1149,19 +1149,19 @@ impl () as I({}) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.I.impl: %.loc8_7.2 as %I.ref { -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_51.1: %empty_tuple.type.as.I.impl.F.type.9e994f.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_51.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.c7843c.1] { +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_51.1: %empty_tuple.type.as.I.impl.F.type.48cdab.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_51.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.bd5be1.1] { // CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %U.patt: %pattern_type.b72 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.c0fdca.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.c0fdca.2) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.c0fdca.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.c0fdca.2) = return_slot_pattern %return.param_patt, %.loc10_49.3 [concrete] +// CHECK:STDOUT: %U.patt: %pattern_type.e81 = symbolic_binding_pattern U, 0 [concrete] +// CHECK:STDOUT: %x.param_patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt, %.loc10_49.3 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.ref.loc10_49: %Copy.type = name_ref U, %U.loc10_26.2 [symbolic = %U.loc10_26.1 (constants.%U.f49)] -// CHECK:STDOUT: %U.as_type.loc10_49: type = facet_access_type %U.ref.loc10_49 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.09c)] -// CHECK:STDOUT: %.loc10_49.3: type = converted %U.ref.loc10_49, %U.as_type.loc10_49 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.09c)] -// CHECK:STDOUT: %.loc10_49.4: Core.Form = init_form %.loc10_49.3 [symbolic = %.loc10_49.2 (constants.%.dedae6.2)] +// CHECK:STDOUT: %U.ref.loc10_49: %Copy.type = name_ref U, %U.loc10_26.2 [symbolic = %U.loc10_26.1 (constants.%U.f84)] +// CHECK:STDOUT: %U.as_type.loc10_49: type = facet_access_type %U.ref.loc10_49 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.c1c)] +// CHECK:STDOUT: %.loc10_49.3: type = converted %U.ref.loc10_49, %U.as_type.loc10_49 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.c1c)] +// CHECK:STDOUT: %.loc10_49.4: Core.Form = init_form %.loc10_49.3 [symbolic = %.loc10_49.2 (constants.%.1ce700.2)] // CHECK:STDOUT: %self.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %.loc10_22.1: type = splice_block %.loc10_22.3 [concrete = constants.%empty_tuple.type] { // CHECK:STDOUT: %.loc10_22.2: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -1173,19 +1173,19 @@ impl () as I({}) { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc10_26.2: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc10_26.1 (constants.%U.f49)] -// CHECK:STDOUT: %x.param: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.09c) = value_param call_param1 -// CHECK:STDOUT: %.loc10_43.1: type = splice_block %.loc10_43.2 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.09c)] { -// CHECK:STDOUT: %U.ref.loc10_43: %Copy.type = name_ref U, %U.loc10_26.2 [symbolic = %U.loc10_26.1 (constants.%U.f49)] -// CHECK:STDOUT: %U.as_type.loc10_43.2: type = facet_access_type %U.ref.loc10_43 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.09c)] -// CHECK:STDOUT: %.loc10_43.2: type = converted %U.ref.loc10_43, %U.as_type.loc10_43.2 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.09c)] +// CHECK:STDOUT: %U.loc10_26.2: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc10_26.1 (constants.%U.f84)] +// CHECK:STDOUT: %x.param: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.c1c) = value_param call_param1 +// CHECK:STDOUT: %.loc10_43.1: type = splice_block %.loc10_43.2 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.c1c)] { +// CHECK:STDOUT: %U.ref.loc10_43: %Copy.type = name_ref U, %U.loc10_26.2 [symbolic = %U.loc10_26.1 (constants.%U.f84)] +// CHECK:STDOUT: %U.as_type.loc10_43.2: type = facet_access_type %U.ref.loc10_43 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.c1c)] +// CHECK:STDOUT: %.loc10_43.2: type = converted %U.ref.loc10_43, %U.as_type.loc10_43.2 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.c1c)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.09c) = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.09c) = out_param call_param2 -// CHECK:STDOUT: %return: ref @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.09c) = return_slot %return.param +// CHECK:STDOUT: %x: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.c1c) = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.c1c) = out_param call_param2 +// CHECK:STDOUT: %return: ref @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.c1c) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_51.2: %empty_tuple.type.as.I.impl.F.type.9e994f.2 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_51.2 [concrete = constants.%empty_tuple.type.as.I.impl.F.c7843c.2] { +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_51.2: %empty_tuple.type.as.I.impl.F.type.48cdab.2 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_51.2 [concrete = constants.%empty_tuple.type.as.I.impl.F.bd5be1.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -1199,28 +1199,28 @@ impl () as I({}) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @empty_tuple.type.as.I.impl.F.loc10_51.1(%U.loc10_26.2: %Copy.type) { -// CHECK:STDOUT: %U.loc10_26.1: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc10_26.1 (constants.%U.f49)] -// CHECK:STDOUT: %U.as_type.loc10_43.1: type = facet_access_type %U.loc10_26.1 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.09c)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc10_43.1 [symbolic = %pattern_type (constants.%pattern_type.c0fdca.2)] -// CHECK:STDOUT: %.loc10_49.2: Core.Form = init_form %U.as_type.loc10_43.1 [symbolic = %.loc10_49.2 (constants.%.dedae6.2)] +// CHECK:STDOUT: %U.loc10_26.1: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc10_26.1 (constants.%U.f84)] +// CHECK:STDOUT: %U.as_type.loc10_43.1: type = facet_access_type %U.loc10_26.1 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.c1c)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc10_43.1 [symbolic = %pattern_type (constants.%pattern_type.2c66b4.2)] +// CHECK:STDOUT: %.loc10_49.2: Core.Form = init_form %U.as_type.loc10_43.1 [symbolic = %.loc10_49.2 (constants.%.1ce700.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc10_43.1 [symbolic = %require_complete (constants.%require_complete.77e193.1)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.loc10_26.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.e9f10f.3)] -// CHECK:STDOUT: %.loc10_60: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %U.loc10_26.1 [symbolic = %.loc10_60 (constants.%.e16121.2)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %U.loc10_26.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2ddaf7.2)] -// CHECK:STDOUT: %impl.elem0.loc10_60.2: @empty_tuple.type.as.I.impl.F.loc10_51.1.%.loc10_60 (%.e16121.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_60.2 (constants.%impl.elem0.41e7eb.2)] -// CHECK:STDOUT: %specific_impl_fn.loc10_60.2: = specific_impl_function %impl.elem0.loc10_60.2, @Copy.WithSelf.Op(%U.loc10_26.1) [symbolic = %specific_impl_fn.loc10_60.2 (constants.%specific_impl_fn.7ecd07.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc10_43.1 [symbolic = %require_complete (constants.%require_complete.d83f06.1)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.loc10_26.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c85f21.3)] +// CHECK:STDOUT: %.loc10_60: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %U.loc10_26.1 [symbolic = %.loc10_60 (constants.%.c29330.2)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %U.loc10_26.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9c332.2)] +// CHECK:STDOUT: %impl.elem0.loc10_60.2: @empty_tuple.type.as.I.impl.F.loc10_51.1.%.loc10_60 (%.c29330.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_60.2 (constants.%impl.elem0.bd2456.2)] +// CHECK:STDOUT: %specific_impl_fn.loc10_60.2: = specific_impl_function %impl.elem0.loc10_60.2, @Copy.WithSelf.Op(%U.loc10_26.1) [symbolic = %specific_impl_fn.loc10_60.2 (constants.%specific_impl_fn.e2af7e.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: %empty_tuple.type, %x.param: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.09c)) -> out %return.param: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.09c) { +// CHECK:STDOUT: fn(%self.param: %empty_tuple.type, %x.param: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.c1c)) -> out %return.param: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.c1c) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.09c) = name_ref x, %x -// CHECK:STDOUT: %impl.elem0.loc10_60.1: @empty_tuple.type.as.I.impl.F.loc10_51.1.%.loc10_60 (%.e16121.2) = impl_witness_access constants.%Copy.lookup_impl_witness.2ddaf7.2, element0 [symbolic = %impl.elem0.loc10_60.2 (constants.%impl.elem0.41e7eb.2)] +// CHECK:STDOUT: %x.ref: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.c1c) = name_ref x, %x +// CHECK:STDOUT: %impl.elem0.loc10_60.1: @empty_tuple.type.as.I.impl.F.loc10_51.1.%.loc10_60 (%.c29330.2) = impl_witness_access constants.%Copy.lookup_impl_witness.d9c332.2, element0 [symbolic = %impl.elem0.loc10_60.2 (constants.%impl.elem0.bd2456.2)] // CHECK:STDOUT: %bound_method.loc10_60.1: = bound_method %x.ref, %impl.elem0.loc10_60.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_60.1: = specific_impl_function %impl.elem0.loc10_60.1, @Copy.WithSelf.Op(constants.%U.f49) [symbolic = %specific_impl_fn.loc10_60.2 (constants.%specific_impl_fn.7ecd07.2)] +// CHECK:STDOUT: %specific_impl_fn.loc10_60.1: = specific_impl_function %impl.elem0.loc10_60.1, @Copy.WithSelf.Op(constants.%U.f84) [symbolic = %specific_impl_fn.loc10_60.2 (constants.%specific_impl_fn.e2af7e.2)] // CHECK:STDOUT: %bound_method.loc10_60.2: = bound_method %x.ref, %specific_impl_fn.loc10_60.1 -// CHECK:STDOUT: %.loc10_49.1: ref @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.09c) = splice_block %return.param {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.09c) to %.loc10_49.1 = call %bound_method.loc10_60.2(%x.ref) +// CHECK:STDOUT: %.loc10_49.1: ref @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.c1c) = splice_block %return.param {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.c1c) to %.loc10_49.1 = call %bound_method.loc10_60.2(%x.ref) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1230,16 +1230,16 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %.loc10_51.2: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc5_21.1) [symbolic = %.loc10_51.2 (constants.%.b6a)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2bf)] +// CHECK:STDOUT: %.loc10_51.2: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc5_21.1) [symbolic = %.loc10_51.2 (constants.%.0e9)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.1da)] // CHECK:STDOUT: %Copy.facet.loc10_51.2: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet.loc10_51.2 (constants.%Copy.facet)] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.specific_fn.loc10_51.2: = specific_function constants.%empty_tuple.type.as.I.impl.F.c7843c.1, @empty_tuple.type.as.I.impl.F.loc10_51.1(%Copy.facet.loc10_51.2) [symbolic = %empty_tuple.type.as.I.impl.F.specific_fn.loc10_51.2 (constants.%empty_tuple.type.as.I.impl.F.specific_fn)] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.specific_fn.loc10_51.2: = specific_function constants.%empty_tuple.type.as.I.impl.F.bd5be1.1, @empty_tuple.type.as.I.impl.F.loc10_51.1(%Copy.facet.loc10_51.2) [symbolic = %empty_tuple.type.as.I.impl.F.specific_fn.loc10_51.2 (constants.%empty_tuple.type.as.I.impl.F.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: %empty_tuple.type, %x.param: @empty_tuple.type.as.I.impl.F.loc10_51.2.%ptr (%ptr.e8f)) -> out %return.param: @empty_tuple.type.as.I.impl.F.loc10_51.2.%ptr (%ptr.e8f) [thunk @empty_tuple.type.as.I.impl.%empty_tuple.type.as.I.impl.F.decl.loc10_51.1 for @I.WithSelf.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet, constants.%T.67d)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %empty_tuple.type.as.I.impl.F.type.9e994f.1 = name_ref F, @empty_tuple.type.as.I.impl.%empty_tuple.type.as.I.impl.F.decl.loc10_51.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.c7843c.1] +// CHECK:STDOUT: %F.ref: %empty_tuple.type.as.I.impl.F.type.48cdab.1 = name_ref F, @empty_tuple.type.as.I.impl.%empty_tuple.type.as.I.impl.F.decl.loc10_51.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.bd5be1.1] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.bound: = bound_method %self.param, %F.ref -// CHECK:STDOUT: %Copy.facet.loc10_51.1: %Copy.type = facet_value constants.%ptr.e8f, (constants.%Copy.lookup_impl_witness.2bf) [symbolic = %Copy.facet.loc10_51.2 (constants.%Copy.facet)] +// CHECK:STDOUT: %Copy.facet.loc10_51.1: %Copy.type = facet_value constants.%ptr.e8f, (constants.%Copy.lookup_impl_witness.1da) [symbolic = %Copy.facet.loc10_51.2 (constants.%Copy.facet)] // CHECK:STDOUT: %.loc10_51.1: %Copy.type = converted constants.%ptr.e8f, %Copy.facet.loc10_51.1 [symbolic = %Copy.facet.loc10_51.2 (constants.%Copy.facet)] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.specific_fn.loc10_51.1: = specific_function %F.ref, @empty_tuple.type.as.I.impl.F.loc10_51.1(constants.%Copy.facet) [symbolic = %empty_tuple.type.as.I.impl.F.specific_fn.loc10_51.2 (constants.%empty_tuple.type.as.I.impl.F.specific_fn)] // CHECK:STDOUT: %bound_method: = bound_method %self.param, %empty_tuple.type.as.I.impl.F.specific_fn.loc10_51.1 @@ -1248,11 +1248,11 @@ impl () as I({}) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_51.1(constants.%U.f49) { -// CHECK:STDOUT: %U.loc10_26.1 => constants.%U.f49 -// CHECK:STDOUT: %U.as_type.loc10_43.1 => constants.%U.as_type.09c -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c0fdca.2 -// CHECK:STDOUT: %.loc10_49.2 => constants.%.dedae6.2 +// CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_51.1(constants.%U.f84) { +// CHECK:STDOUT: %U.loc10_26.1 => constants.%U.f84 +// CHECK:STDOUT: %U.as_type.loc10_43.1 => constants.%U.as_type.c1c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2c66b4.2 +// CHECK:STDOUT: %.loc10_49.2 => constants.%.1ce700.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_51.2(constants.%T.67d) { @@ -1270,11 +1270,11 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.ef1 -// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.72b -// CHECK:STDOUT: %.loc10_60 => constants.%.39b -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.2bf -// CHECK:STDOUT: %impl.elem0.loc10_60.2 => constants.%impl.elem0.8a3 -// CHECK:STDOUT: %specific_impl_fn.loc10_60.2 => constants.%specific_impl_fn.a13 +// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.884 +// CHECK:STDOUT: %.loc10_60 => constants.%.be5 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.1da +// CHECK:STDOUT: %impl.elem0.loc10_60.2 => constants.%impl.elem0.484 +// CHECK:STDOUT: %specific_impl_fn.loc10_60.2 => constants.%specific_impl_fn.a76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- generic_interface.carbon @@ -1283,24 +1283,24 @@ impl () as I({}) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %I.type.317: type = facet_type <@I, @I(%empty_struct_type)> [concrete] +// CHECK:STDOUT: %I.type.81d: type = facet_type <@I, @I(%empty_struct_type)> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @empty_tuple.type.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %struct_type.b.a.1b0: type = struct_type {.b: %empty_struct_type, .a: %empty_struct_type} [concrete] // CHECK:STDOUT: %.3fc: Core.Form = init_form %struct_type.b.a.1b0 [concrete] // CHECK:STDOUT: %pattern_type.914: type = pattern_type %struct_type.b.a.1b0 [concrete] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.9e994f.1: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_29.1 [concrete] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.c7843c.1: %empty_tuple.type.as.I.impl.F.type.9e994f.1 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet: %I.type.317 = facet_value %empty_tuple.type, (%I.impl_witness) [concrete] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.48cdab.1: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_29.1 [concrete] +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.bd5be1.1: %empty_tuple.type.as.I.impl.F.type.48cdab.1 = struct_value () [concrete] +// CHECK:STDOUT: %I.facet: %I.type.81d = facet_value %empty_tuple.type, (%I.impl_witness) [concrete] // CHECK:STDOUT: %struct_type.a.b.f95: type = struct_type {.a: %empty_struct_type, .b: %empty_struct_type} [concrete] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.9e994f.2: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_29.2 [concrete] -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.c7843c.2: %empty_tuple.type.as.I.impl.F.type.9e994f.2 = struct_value () [concrete] +// 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.790b3b.2: type = fn_type @Destroy.Op.loc10_29.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.I.impl: %.loc8_7.2 as %I.type { -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_29.1: %empty_tuple.type.as.I.impl.F.type.9e994f.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_29.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.c7843c.1] { +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_29.1: %empty_tuple.type.as.I.impl.F.type.48cdab.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_29.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.bd5be1.1] { // CHECK:STDOUT: %return.param_patt: %pattern_type.914 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.914 = return_slot_pattern %return.param_patt, %struct_type.b.a [concrete] // CHECK:STDOUT: } { @@ -1314,7 +1314,7 @@ impl () as I({}) { // CHECK:STDOUT: %return: ref %struct_type.b.a.1b0 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_29.2: %empty_tuple.type.as.I.impl.F.type.9e994f.2 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_29.2 [concrete = constants.%empty_tuple.type.as.I.impl.F.c7843c.2] { +// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_29.2: %empty_tuple.type.as.I.impl.F.type.48cdab.2 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_29.2 [concrete = constants.%empty_tuple.type.as.I.impl.F.bd5be1.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -1331,7 +1331,7 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: fn @empty_tuple.type.as.I.impl.F.loc10_29.2() -> out %return.param: %struct_type.a.b.f95 [thunk @empty_tuple.type.as.I.impl.%empty_tuple.type.as.I.impl.F.decl.loc10_29.1 for @I.WithSelf.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%empty_struct_type, constants.%I.facet)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %F.ref: %empty_tuple.type.as.I.impl.F.type.9e994f.1 = name_ref F, @empty_tuple.type.as.I.impl.%empty_tuple.type.as.I.impl.F.decl.loc10_29.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.c7843c.1] +// CHECK:STDOUT: %F.ref: %empty_tuple.type.as.I.impl.F.type.48cdab.1 = name_ref F, @empty_tuple.type.as.I.impl.%empty_tuple.type.as.I.impl.F.decl.loc10_29.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.bd5be1.1] // CHECK:STDOUT: %.loc10_29.1: ref %struct_type.b.a.1b0 = temporary_storage // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.call: init %struct_type.b.a.1b0 to %.loc10_29.1 = call %F.ref() // CHECK:STDOUT: %.loc10_29.2: ref %struct_type.b.a.1b0 = temporary %.loc10_29.1, %empty_tuple.type.as.I.impl.F.call @@ -1347,7 +1347,7 @@ 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.2dd605.2 +// 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: return %.loc10_29.14 to %return.param // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/impl_thunk_min_prelude.carbon b/toolchain/check/testdata/impl/impl_thunk_min_prelude.carbon index f5fc389ed509..a8bc989a1785 100644 --- a/toolchain/check/testdata/impl/impl_thunk_min_prelude.carbon +++ b/toolchain/check/testdata/impl/impl_thunk_min_prelude.carbon @@ -107,29 +107,29 @@ fn Call() -> i32 { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %i32.as.Add.impl.Op.type.3766d3.1: type = fn_type @i32.as.Add.impl.Op.loc8_35.1, @i32.as.Add.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %i32.as.Add.impl.Op.5047bd.1: %i32.as.Add.impl.Op.type.3766d3.1 = struct_value () [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// 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: %i32.as.Add.impl.Op.type.79f953.1: type = fn_type @i32.as.Add.impl.Op.loc8_35.1, @i32.as.Add.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %i32.as.Add.impl.Op.0c3802.1: %i32.as.Add.impl.Op.type.79f953.1 = struct_value () [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %i32.as.Add.impl.Op.specific_fn.d9fb83.2: = specific_function %i32.as.Add.impl.Op.5047bd.1, @i32.as.Add.impl.Op.loc8_35.1(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %i32.as.Add.impl.Op.specific_fn.f5e09b.2: = specific_function %i32.as.Add.impl.Op.0c3802.1, @i32.as.Add.impl.Op.loc8_35.1(%ImplicitAs.facet) [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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Call() -> out %return.param: %i32 { @@ -137,19 +137,19 @@ fn Call() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: %a.ref: %i32 = name_ref a, %a // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.3d6) [concrete = constants.%ImplicitAs.facet] -// CHECK:STDOUT: %.loc18_14.1: %ImplicitAs.type.360 = converted Core.IntLiteral, %ImplicitAs.facet [concrete = constants.%ImplicitAs.facet] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.a23) [concrete = constants.%ImplicitAs.facet] +// CHECK:STDOUT: %.loc18_14.1: %ImplicitAs.type.914 = converted Core.IntLiteral, %ImplicitAs.facet [concrete = constants.%ImplicitAs.facet] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc18_14.2: %i32.as.Add.impl.Op.type.3766d3.1 = specific_constant @i32.as.Add.impl.%i32.as.Add.impl.Op.decl.loc8_35.1, @i32.as.Add.impl(constants.%ImplicitAs.facet) [concrete = constants.%i32.as.Add.impl.Op.5047bd.1] -// CHECK:STDOUT: %Op.ref.loc18: %i32.as.Add.impl.Op.type.3766d3.1 = name_ref Op, %.loc18_14.2 [concrete = constants.%i32.as.Add.impl.Op.5047bd.1] -// CHECK:STDOUT: %i32.as.Add.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @i32.as.Add.impl.Op.loc8_35.1(constants.%ImplicitAs.facet) [concrete = constants.%i32.as.Add.impl.Op.specific_fn.d9fb83.2] -// CHECK:STDOUT: %impl.elem0.loc18: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_13.1: = bound_method %int_2, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc18_14.2: %i32.as.Add.impl.Op.type.79f953.1 = specific_constant @i32.as.Add.impl.%i32.as.Add.impl.Op.decl.loc8_35.1, @i32.as.Add.impl(constants.%ImplicitAs.facet) [concrete = constants.%i32.as.Add.impl.Op.0c3802.1] +// CHECK:STDOUT: %Op.ref.loc18: %i32.as.Add.impl.Op.type.79f953.1 = name_ref Op, %.loc18_14.2 [concrete = constants.%i32.as.Add.impl.Op.0c3802.1] +// CHECK:STDOUT: %i32.as.Add.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @i32.as.Add.impl.Op.loc8_35.1(constants.%ImplicitAs.facet) [concrete = constants.%i32.as.Add.impl.Op.specific_fn.f5e09b.2] +// CHECK:STDOUT: %impl.elem0.loc18: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_13.1: = bound_method %int_2, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_13.2: = bound_method %int_2, %specific_fn.loc18 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %i32 = call %bound_method.loc18_13.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc18_13.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc18_13.2: %i32 = converted %int_2, %.loc18_13.1 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc18_13.2: = bound_method %int_2, %specific_fn.loc18 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %i32 = call %bound_method.loc18_13.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc18_13.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc18_13.2: %i32 = converted %int_2, %.loc18_13.1 [concrete = constants.%int_2.295] // CHECK:STDOUT: %i32.as.Add.impl.Op.call: init %i32 = call %i32.as.Add.impl.Op.specific_fn(%a.ref, %.loc18_13.2) // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/import_builtin_call.carbon b/toolchain/check/testdata/impl/import_builtin_call.carbon index 4623b659250f..6f0099ba276b 100644 --- a/toolchain/check/testdata/impl/import_builtin_call.carbon +++ b/toolchain/check/testdata/impl/import_builtin_call.carbon @@ -80,10 +80,10 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %Add.type: type = facet_type <@Add> [concrete] // CHECK:STDOUT: %Self: %Add.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.d5f: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %.c20: Core.Form = init_form %Self.as_type [symbolic] -// CHECK:STDOUT: %Add.WithSelf.Op.type.16e: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %Add.WithSelf.Op.157: %Add.WithSelf.Op.type.16e = struct_value () [symbolic] +// CHECK:STDOUT: %pattern_type.e4c: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %.3bf: Core.Form = init_form %Self.as_type [symbolic] +// CHECK:STDOUT: %Add.WithSelf.Op.type.271: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %Add.WithSelf.Op.134: %Add.WithSelf.Op.type.271 = struct_value () [symbolic] // CHECK:STDOUT: %Add.assoc_type: type = assoc_entity_type @Add [concrete] // CHECK:STDOUT: %assoc0: %Add.assoc_type = assoc_entity element0, @Add.WithSelf.%Add.WithSelf.Op.decl [concrete] // CHECK:STDOUT: %.805: Core.Form = init_form type [concrete] @@ -103,24 +103,24 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %require_complete.269: = require_complete_type %iN.builtin [symbolic] // CHECK:STDOUT: %complete_type: = complete_type_witness %iN.builtin [symbolic] // CHECK:STDOUT: %Add.impl_witness: = impl_witness @MyInt.as.Add.impl.%Add.impl_witness_table, @MyInt.as.Add.impl(%N) [symbolic] -// CHECK:STDOUT: %pattern_type.111: type = pattern_type %MyInt [symbolic] -// CHECK:STDOUT: %.9c6: Core.Form = init_form %MyInt [symbolic] +// CHECK:STDOUT: %pattern_type.6bc: type = pattern_type %MyInt [symbolic] +// CHECK:STDOUT: %.5dd: Core.Form = init_form %MyInt [symbolic] // CHECK:STDOUT: %MyInt.as.Add.impl.Op.type: type = fn_type @MyInt.as.Add.impl.Op, @MyInt.as.Add.impl(%N) [symbolic] // CHECK:STDOUT: %MyInt.as.Add.impl.Op: %MyInt.as.Add.impl.Op.type = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.1a0: = require_complete_type %MyInt [symbolic] -// CHECK:STDOUT: %Add.facet.2b6: %Add.type = facet_value %MyInt, (%Add.impl_witness) [symbolic] -// CHECK:STDOUT: %Add.WithSelf.Op.type.f3e: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet.2b6) [symbolic] -// CHECK:STDOUT: %Add.WithSelf.Op.812: %Add.WithSelf.Op.type.f3e = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.f24: = require_complete_type %MyInt [symbolic] +// CHECK:STDOUT: %Add.facet.6b8: %Add.type = facet_value %MyInt, (%Add.impl_witness) [symbolic] +// CHECK:STDOUT: %Add.WithSelf.Op.type.21b: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet.6b8) [symbolic] +// CHECK:STDOUT: %Add.WithSelf.Op.780: %Add.WithSelf.Op.type.21b = struct_value () [symbolic] // CHECK:STDOUT: %Double.type: type = fn_type @Double [concrete] // CHECK:STDOUT: %Double: %Double.type = struct_value () [concrete] // CHECK:STDOUT: %Add.lookup_impl_witness: = lookup_impl_witness %MyInt, @Add [symbolic] -// CHECK:STDOUT: %.ecc: require_specific_def_type = require_specific_def @MyInt.as.Add.impl(%N) [symbolic] -// CHECK:STDOUT: %Add.facet.3f8: %Add.type = facet_value %MyInt, (%Add.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Add.WithSelf.Op.type.9d7: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet.3f8) [symbolic] -// CHECK:STDOUT: %Add.WithSelf.Op.f8f: %Add.WithSelf.Op.type.9d7 = struct_value () [symbolic] -// CHECK:STDOUT: %.19c: type = fn_type_with_self_type %Add.WithSelf.Op.type.9d7, %Add.facet.3f8 [symbolic] -// CHECK:STDOUT: %impl.elem0: %.19c = impl_witness_access %Add.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Add.WithSelf.Op(%Add.facet.3f8) [symbolic] +// CHECK:STDOUT: %.747: require_specific_def_type = require_specific_def @MyInt.as.Add.impl(%N) [symbolic] +// CHECK:STDOUT: %Add.facet.255: %Add.type = facet_value %MyInt, (%Add.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Add.WithSelf.Op.type.de5: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet.255) [symbolic] +// CHECK:STDOUT: %Add.WithSelf.Op.594: %Add.WithSelf.Op.type.de5 = struct_value () [symbolic] +// CHECK:STDOUT: %.ccf: type = fn_type_with_self_type %Add.WithSelf.Op.type.de5, %Add.facet.255 [symbolic] +// CHECK:STDOUT: %impl.elem0: %.ccf = impl_witness_access %Add.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Add.WithSelf.Op(%Add.facet.255) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -190,15 +190,15 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: } // CHECK:STDOUT: %Double.decl: %Double.type = fn_decl @Double [concrete = constants.%Double] { // CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @Double.%pattern_type (%pattern_type.111) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @Double.%pattern_type (%pattern_type.111) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Double.%pattern_type (%pattern_type.111) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Double.%pattern_type (%pattern_type.111) = return_slot_pattern %return.param_patt, %MyInt.loc19_52 [concrete] +// CHECK:STDOUT: %x.param_patt: @Double.%pattern_type (%pattern_type.6bc) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Double.%pattern_type (%pattern_type.6bc) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Double.%pattern_type (%pattern_type.6bc) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Double.%pattern_type (%pattern_type.6bc) = return_slot_pattern %return.param_patt, %MyInt.loc19_52 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %MyInt.ref.loc19_45: %MyInt.type = name_ref MyInt, file.%MyInt.decl [concrete = constants.%MyInt.generic] // CHECK:STDOUT: %N.ref.loc19_51: Core.IntLiteral = name_ref N, %N.loc19_12.2 [symbolic = %N.loc19_12.1 (constants.%N)] // CHECK:STDOUT: %MyInt.loc19_52: type = class_type @MyInt, @MyInt(constants.%N) [symbolic = %MyInt.loc19_39.1 (constants.%MyInt)] -// CHECK:STDOUT: %.loc19_52.2: Core.Form = init_form %MyInt.loc19_52 [symbolic = %.loc19_52.1 (constants.%.9c6)] +// CHECK:STDOUT: %.loc19_52.2: Core.Form = init_form %MyInt.loc19_52 [symbolic = %.loc19_52.1 (constants.%.5dd)] // CHECK:STDOUT: %.loc19_26.1: type = splice_block %.loc19_26.3 [concrete = Core.IntLiteral] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, file.%IntLiteral.decl [concrete = constants.%IntLiteral] @@ -224,18 +224,18 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %Add.WithSelf.decl = interface_with_self_decl @Add [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Add.WithSelf.Op.decl: @Add.WithSelf.%Add.WithSelf.Op.type (%Add.WithSelf.Op.type.16e) = fn_decl @Add.WithSelf.Op [symbolic = @Add.WithSelf.%Add.WithSelf.Op (constants.%Add.WithSelf.Op.157)] { -// CHECK:STDOUT: %self.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.d5f) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.d5f) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.d5f) = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.d5f) = at_binding_pattern other, %other.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.d5f) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.d5f) = return_slot_pattern %return.param_patt, %.loc5_37.2 [concrete] +// CHECK:STDOUT: %Add.WithSelf.Op.decl: @Add.WithSelf.%Add.WithSelf.Op.type (%Add.WithSelf.Op.type.271) = fn_decl @Add.WithSelf.Op [symbolic = @Add.WithSelf.%Add.WithSelf.Op (constants.%Add.WithSelf.Op.134)] { +// CHECK:STDOUT: %self.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.e4c) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.e4c) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.e4c) = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.e4c) = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.e4c) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.e4c) = return_slot_pattern %return.param_patt, %.loc5_37.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc5_37: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_37: type = facet_access_type %Self.ref.loc5_37 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc5_37.2: type = converted %Self.ref.loc5_37, %Self.as_type.loc5_37 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_37.3: Core.Form = init_form %.loc5_37.2 [symbolic = %.loc5_37.1 (constants.%.c20)] +// CHECK:STDOUT: %.loc5_37.3: Core.Form = init_form %.loc5_37.2 [symbolic = %.loc5_37.1 (constants.%.3bf)] // CHECK:STDOUT: %self.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref.loc5_15: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] @@ -271,19 +271,19 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: !definition: // CHECK:STDOUT: %MyInt.as.Add.impl.Op.type: type = fn_type @MyInt.as.Add.impl.Op, @MyInt.as.Add.impl(%N.loc15_15.1) [symbolic = %MyInt.as.Add.impl.Op.type (constants.%MyInt.as.Add.impl.Op.type)] // CHECK:STDOUT: %MyInt.as.Add.impl.Op: @MyInt.as.Add.impl.%MyInt.as.Add.impl.Op.type (%MyInt.as.Add.impl.Op.type) = struct_value () [symbolic = %MyInt.as.Add.impl.Op (constants.%MyInt.as.Add.impl.Op)] -// CHECK:STDOUT: %require_complete: = require_complete_type %MyInt.loc15_39.1 [symbolic = %require_complete (constants.%require_complete.1a0)] +// CHECK:STDOUT: %require_complete: = require_complete_type %MyInt.loc15_39.1 [symbolic = %require_complete (constants.%require_complete.f24)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %MyInt.loc15_39.2 as %Add.ref { // CHECK:STDOUT: %MyInt.as.Add.impl.Op.decl: @MyInt.as.Add.impl.%MyInt.as.Add.impl.Op.type (%MyInt.as.Add.impl.Op.type) = fn_decl @MyInt.as.Add.impl.Op [symbolic = @MyInt.as.Add.impl.%MyInt.as.Add.impl.Op (constants.%MyInt.as.Add.impl.Op)] { -// CHECK:STDOUT: %self.param_patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.111) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.111) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.111) = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.111) = at_binding_pattern other, %other.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.111) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.111) = return_slot_pattern %return.param_patt, %Self.ref.loc16_37 [concrete] +// CHECK:STDOUT: %self.param_patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.6bc) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.6bc) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.6bc) = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.6bc) = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.6bc) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @MyInt.as.Add.impl.Op.%pattern_type (%pattern_type.6bc) = return_slot_pattern %return.param_patt, %Self.ref.loc16_37 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc16_37: type = name_ref Self, @MyInt.as.Add.impl.%MyInt.loc15_39.2 [symbolic = %MyInt (constants.%MyInt)] -// CHECK:STDOUT: %.loc16_37.2: Core.Form = init_form %Self.ref.loc16_37 [symbolic = %.loc16_37.1 (constants.%.9c6)] +// CHECK:STDOUT: %.loc16_37.2: Core.Form = init_form %Self.ref.loc16_37 [symbolic = %.loc16_37.1 (constants.%.5dd)] // CHECK:STDOUT: %self.param: @MyInt.as.Add.impl.Op.%MyInt (%MyInt) = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc16_15: type = name_ref Self, @MyInt.as.Add.impl.%MyInt.loc15_39.2 [symbolic = %MyInt (constants.%MyInt)] // CHECK:STDOUT: %self: @MyInt.as.Add.impl.Op.%MyInt (%MyInt) = value_binding self, %self.param @@ -331,8 +331,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: generic fn @Add.WithSelf.Op(@Add.%Self: %Add.type) { // CHECK:STDOUT: %Self: %Add.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type (constants.%pattern_type.d5f)] -// CHECK:STDOUT: %.loc5_37.1: Core.Form = init_form %Self.as_type.loc5_15.1 [symbolic = %.loc5_37.1 (constants.%.c20)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type (constants.%pattern_type.e4c)] +// CHECK:STDOUT: %.loc5_37.1: Core.Form = init_form %Self.as_type.loc5_15.1 [symbolic = %.loc5_37.1 (constants.%.3bf)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type), %other.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type)) -> out %return.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type); // CHECK:STDOUT: } @@ -344,8 +344,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: generic fn @MyInt.as.Add.impl.Op(@MyInt.as.Add.impl.%N.loc15_15.2: Core.IntLiteral) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic = %MyInt (constants.%MyInt)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %MyInt [symbolic = %pattern_type (constants.%pattern_type.111)] -// CHECK:STDOUT: %.loc16_37.1: Core.Form = init_form %MyInt [symbolic = %.loc16_37.1 (constants.%.9c6)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %MyInt [symbolic = %pattern_type (constants.%pattern_type.6bc)] +// CHECK:STDOUT: %.loc16_37.1: Core.Form = init_form %MyInt [symbolic = %.loc16_37.1 (constants.%.5dd)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -355,17 +355,17 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: generic fn @Double(%N.loc19_12.2: Core.IntLiteral) { // CHECK:STDOUT: %N.loc19_12.1: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N.loc19_12.1 (constants.%N)] // CHECK:STDOUT: %MyInt.loc19_39.1: type = class_type @MyInt, @MyInt(%N.loc19_12.1) [symbolic = %MyInt.loc19_39.1 (constants.%MyInt)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %MyInt.loc19_39.1 [symbolic = %pattern_type (constants.%pattern_type.111)] -// CHECK:STDOUT: %.loc19_52.1: Core.Form = init_form %MyInt.loc19_39.1 [symbolic = %.loc19_52.1 (constants.%.9c6)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %MyInt.loc19_39.1 [symbolic = %pattern_type (constants.%pattern_type.6bc)] +// CHECK:STDOUT: %.loc19_52.1: Core.Form = init_form %MyInt.loc19_39.1 [symbolic = %.loc19_52.1 (constants.%.5dd)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %MyInt.loc19_39.1 [symbolic = %require_complete (constants.%require_complete.1a0)] -// CHECK:STDOUT: %.loc20_11.1: require_specific_def_type = require_specific_def @MyInt.as.Add.impl(%N.loc19_12.1) [symbolic = %.loc20_11.1 (constants.%.ecc)] +// CHECK:STDOUT: %require_complete: = require_complete_type %MyInt.loc19_39.1 [symbolic = %require_complete (constants.%require_complete.f24)] +// CHECK:STDOUT: %.loc20_11.1: require_specific_def_type = require_specific_def @MyInt.as.Add.impl(%N.loc19_12.1) [symbolic = %.loc20_11.1 (constants.%.747)] // CHECK:STDOUT: %Add.lookup_impl_witness: = lookup_impl_witness %MyInt.loc19_39.1, @Add [symbolic = %Add.lookup_impl_witness (constants.%Add.lookup_impl_witness)] -// CHECK:STDOUT: %Add.facet.loc20_11: %Add.type = facet_value %MyInt.loc19_39.1, (%Add.lookup_impl_witness) [symbolic = %Add.facet.loc20_11 (constants.%Add.facet.3f8)] -// CHECK:STDOUT: %Add.WithSelf.Op.type: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet.loc20_11) [symbolic = %Add.WithSelf.Op.type (constants.%Add.WithSelf.Op.type.9d7)] -// CHECK:STDOUT: %.loc20_11.2: type = fn_type_with_self_type %Add.WithSelf.Op.type, %Add.facet.loc20_11 [symbolic = %.loc20_11.2 (constants.%.19c)] -// CHECK:STDOUT: %impl.elem0.loc20_11.2: @Double.%.loc20_11.2 (%.19c) = impl_witness_access %Add.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc20_11.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %Add.facet.loc20_11: %Add.type = facet_value %MyInt.loc19_39.1, (%Add.lookup_impl_witness) [symbolic = %Add.facet.loc20_11 (constants.%Add.facet.255)] +// CHECK:STDOUT: %Add.WithSelf.Op.type: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet.loc20_11) [symbolic = %Add.WithSelf.Op.type (constants.%Add.WithSelf.Op.type.de5)] +// CHECK:STDOUT: %.loc20_11.2: type = fn_type_with_self_type %Add.WithSelf.Op.type, %Add.facet.loc20_11 [symbolic = %.loc20_11.2 (constants.%.ccf)] +// CHECK:STDOUT: %impl.elem0.loc20_11.2: @Double.%.loc20_11.2 (%.ccf) = impl_witness_access %Add.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc20_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc20_11.2: = specific_impl_function %impl.elem0.loc20_11.2, @Add.WithSelf.Op(%Add.facet.loc20_11) [symbolic = %specific_impl_fn.loc20_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @Double.%MyInt.loc19_39.1 (%MyInt)) -> out %return.param: @Double.%MyInt.loc19_39.1 (%MyInt) { @@ -373,12 +373,12 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %x.ref.loc20_10: @Double.%MyInt.loc19_39.1 (%MyInt) = name_ref x, %x // CHECK:STDOUT: %Add.ref: type = name_ref Add, file.%Add.decl [concrete = constants.%Add.type] // CHECK:STDOUT: %Op.ref: %Add.assoc_type = name_ref Op, @Add.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc20_11.1: @Double.%.loc20_11.2 (%.19c) = impl_witness_access constants.%Add.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc20_11.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc20_11.1: @Double.%.loc20_11.2 (%.ccf) = impl_witness_access constants.%Add.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc20_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc20_11: = bound_method %x.ref.loc20_10, %impl.elem0.loc20_11.1 // CHECK:STDOUT: %x.ref.loc20_21: @Double.%MyInt.loc19_39.1 (%MyInt) = name_ref x, %x -// CHECK:STDOUT: %Add.facet.loc20_22: %Add.type = facet_value constants.%MyInt, (constants.%Add.lookup_impl_witness) [symbolic = %Add.facet.loc20_11 (constants.%Add.facet.3f8)] -// CHECK:STDOUT: %.loc20_22: %Add.type = converted constants.%MyInt, %Add.facet.loc20_22 [symbolic = %Add.facet.loc20_11 (constants.%Add.facet.3f8)] -// CHECK:STDOUT: %specific_impl_fn.loc20_11.1: = specific_impl_function %impl.elem0.loc20_11.1, @Add.WithSelf.Op(constants.%Add.facet.3f8) [symbolic = %specific_impl_fn.loc20_11.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %Add.facet.loc20_22: %Add.type = facet_value constants.%MyInt, (constants.%Add.lookup_impl_witness) [symbolic = %Add.facet.loc20_11 (constants.%Add.facet.255)] +// CHECK:STDOUT: %.loc20_22: %Add.type = converted constants.%MyInt, %Add.facet.loc20_22 [symbolic = %Add.facet.loc20_11 (constants.%Add.facet.255)] +// CHECK:STDOUT: %specific_impl_fn.loc20_11.1: = specific_impl_function %impl.elem0.loc20_11.1, @Add.WithSelf.Op(constants.%Add.facet.255) [symbolic = %specific_impl_fn.loc20_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc20_22: = bound_method %x.ref.loc20_10, %specific_impl_fn.loc20_11.1 // CHECK:STDOUT: %Add.WithSelf.Op.call: init @Double.%MyInt.loc19_39.1 (%MyInt) = call %bound_method.loc20_22(%x.ref.loc20_10, %x.ref.loc20_21) // CHECK:STDOUT: return %Add.WithSelf.Op.call @@ -388,15 +388,15 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: specific @Add.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.16e -// CHECK:STDOUT: %Add.WithSelf.Op => constants.%Add.WithSelf.Op.157 +// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.271 +// CHECK:STDOUT: %Add.WithSelf.Op => constants.%Add.WithSelf.Op.134 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d5f -// CHECK:STDOUT: %.loc5_37.1 => constants.%.c20 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e4c +// CHECK:STDOUT: %.loc5_37.1 => constants.%.3bf // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MyInt(constants.%N) { @@ -416,49 +416,49 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: !definition: // CHECK:STDOUT: %MyInt.as.Add.impl.Op.type => constants.%MyInt.as.Add.impl.Op.type // CHECK:STDOUT: %MyInt.as.Add.impl.Op => constants.%MyInt.as.Add.impl.Op -// CHECK:STDOUT: %require_complete => constants.%require_complete.1a0 +// CHECK:STDOUT: %require_complete => constants.%require_complete.f24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MyInt.as.Add.impl.Op(constants.%N) { // CHECK:STDOUT: %N => constants.%N // CHECK:STDOUT: %MyInt => constants.%MyInt -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.111 -// CHECK:STDOUT: %.loc16_37.1 => constants.%.9c6 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6bc +// CHECK:STDOUT: %.loc16_37.1 => constants.%.5dd // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Add.WithSelf(constants.%Add.facet.2b6) { +// CHECK:STDOUT: specific @Add.WithSelf(constants.%Add.facet.6b8) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Add.facet.2b6 -// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.f3e -// CHECK:STDOUT: %Add.WithSelf.Op => constants.%Add.WithSelf.Op.812 +// CHECK:STDOUT: %Self => constants.%Add.facet.6b8 +// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.21b +// CHECK:STDOUT: %Add.WithSelf.Op => constants.%Add.WithSelf.Op.780 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Add.facet.2b6) { -// CHECK:STDOUT: %Self => constants.%Add.facet.2b6 +// CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Add.facet.6b8) { +// CHECK:STDOUT: %Self => constants.%Add.facet.6b8 // CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%MyInt -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.111 -// CHECK:STDOUT: %.loc5_37.1 => constants.%.9c6 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6bc +// CHECK:STDOUT: %.loc5_37.1 => constants.%.5dd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Double(constants.%N) { // CHECK:STDOUT: %N.loc19_12.1 => constants.%N // CHECK:STDOUT: %MyInt.loc19_39.1 => constants.%MyInt -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.111 -// CHECK:STDOUT: %.loc19_52.1 => constants.%.9c6 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6bc +// CHECK:STDOUT: %.loc19_52.1 => constants.%.5dd // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Add.WithSelf(constants.%Add.facet.3f8) { +// CHECK:STDOUT: specific @Add.WithSelf(constants.%Add.facet.255) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Add.facet.3f8 -// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.9d7 -// CHECK:STDOUT: %Add.WithSelf.Op => constants.%Add.WithSelf.Op.f8f +// CHECK:STDOUT: %Self => constants.%Add.facet.255 +// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.de5 +// CHECK:STDOUT: %Add.WithSelf.Op => constants.%Add.WithSelf.Op.594 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Add.facet.3f8) { -// CHECK:STDOUT: %Self => constants.%Add.facet.3f8 +// CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Add.facet.255) { +// CHECK:STDOUT: %Self => constants.%Add.facet.255 // CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%MyInt -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.111 -// CHECK:STDOUT: %.loc5_37.1 => constants.%.9c6 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6bc +// CHECK:STDOUT: %.loc5_37.1 => constants.%.5dd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_generic_impl.carbon @@ -469,48 +469,48 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %iN.builtin: type = int_type signed, %N [symbolic] // CHECK:STDOUT: %complete_type.d26: = complete_type_witness %iN.builtin [symbolic] -// CHECK:STDOUT: %MyInt.c94: type = class_type @MyInt, @MyInt(%N) [symbolic] +// CHECK:STDOUT: %MyInt.e0a: type = class_type @MyInt, @MyInt(%N) [symbolic] // CHECK:STDOUT: %require_complete.269: = require_complete_type %iN.builtin [symbolic] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %MyInt.dca: type = class_type @MyInt, @MyInt(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.bcd: type = pattern_type %MyInt.dca [concrete] -// CHECK:STDOUT: %.c14: Core.Form = init_form %MyInt.dca [concrete] +// CHECK:STDOUT: %MyInt.9fc: type = class_type @MyInt, @MyInt(%int_64) [concrete] +// CHECK:STDOUT: %pattern_type.507: type = pattern_type %MyInt.9fc [concrete] +// CHECK:STDOUT: %.a16: Core.Form = init_form %MyInt.9fc [concrete] // CHECK:STDOUT: %CallImportedDouble.type: type = fn_type @CallImportedDouble [concrete] // CHECK:STDOUT: %CallImportedDouble: %CallImportedDouble.type = struct_value () [concrete] // CHECK:STDOUT: %i64.builtin: type = int_type signed, %int_64 [concrete] // CHECK:STDOUT: %complete_type.4a1: = complete_type_witness %i64.builtin [concrete] // CHECK:STDOUT: %Double.type: type = fn_type @Double [concrete] // CHECK:STDOUT: %Double: %Double.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.111: type = pattern_type %MyInt.c94 [symbolic] -// CHECK:STDOUT: %.9c6: Core.Form = init_form %MyInt.c94 [symbolic] +// CHECK:STDOUT: %pattern_type.6bc: type = pattern_type %MyInt.e0a [symbolic] +// CHECK:STDOUT: %.5dd: Core.Form = init_form %MyInt.e0a [symbolic] // CHECK:STDOUT: %Add.type: type = facet_type <@Add> [concrete] // CHECK:STDOUT: %Self: %Add.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Add.WithSelf.Op.type.fb2: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %Add.WithSelf.Op.ebe: %Add.WithSelf.Op.type.fb2 = struct_value () [symbolic] +// CHECK:STDOUT: %Add.WithSelf.Op.type.ee5: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %Add.WithSelf.Op.39f: %Add.WithSelf.Op.type.ee5 = struct_value () [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.dfd: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %.1b3: Core.Form = init_form %Self.as_type [symbolic] -// CHECK:STDOUT: %Add.lookup_impl_witness: = lookup_impl_witness %MyInt.c94, @Add [symbolic] -// CHECK:STDOUT: %Add.facet.3f8: %Add.type = facet_value %MyInt.c94, (%Add.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Add.WithSelf.Op.type.9d7: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet.3f8) [symbolic] -// CHECK:STDOUT: %Add.WithSelf.Op.f8f: %Add.WithSelf.Op.type.9d7 = struct_value () [symbolic] -// CHECK:STDOUT: %.19c: type = fn_type_with_self_type %Add.WithSelf.Op.type.9d7, %Add.facet.3f8 [symbolic] -// CHECK:STDOUT: %impl.elem0: %.19c = impl_witness_access %Add.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Add.WithSelf.Op(%Add.facet.3f8) [symbolic] -// CHECK:STDOUT: %Add.impl_witness.4b0: = impl_witness imports.%Add.impl_witness_table, @MyInt.as.Add.impl(%N) [symbolic] -// CHECK:STDOUT: %require_complete.1a0: = require_complete_type %MyInt.c94 [symbolic] -// CHECK:STDOUT: %MyInt.as.Add.impl.Op.type.ebf: type = fn_type @MyInt.as.Add.impl.Op, @MyInt.as.Add.impl(%N) [symbolic] -// CHECK:STDOUT: %MyInt.as.Add.impl.Op.39d: %MyInt.as.Add.impl.Op.type.ebf = struct_value () [symbolic] -// CHECK:STDOUT: %.72b: require_specific_def_type = require_specific_def @MyInt.as.Add.impl(%N) [symbolic] +// CHECK:STDOUT: %pattern_type.78d: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %.719: Core.Form = init_form %Self.as_type [symbolic] +// CHECK:STDOUT: %Add.lookup_impl_witness: = lookup_impl_witness %MyInt.e0a, @Add [symbolic] +// CHECK:STDOUT: %Add.facet.255: %Add.type = facet_value %MyInt.e0a, (%Add.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Add.WithSelf.Op.type.de5: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet.255) [symbolic] +// CHECK:STDOUT: %Add.WithSelf.Op.594: %Add.WithSelf.Op.type.de5 = struct_value () [symbolic] +// CHECK:STDOUT: %.ccf: type = fn_type_with_self_type %Add.WithSelf.Op.type.de5, %Add.facet.255 [symbolic] +// CHECK:STDOUT: %impl.elem0: %.ccf = impl_witness_access %Add.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Add.WithSelf.Op(%Add.facet.255) [symbolic] +// CHECK:STDOUT: %Add.impl_witness.5f1: = impl_witness imports.%Add.impl_witness_table, @MyInt.as.Add.impl(%N) [symbolic] +// CHECK:STDOUT: %require_complete.f24: = require_complete_type %MyInt.e0a [symbolic] +// CHECK:STDOUT: %MyInt.as.Add.impl.Op.type.784: type = fn_type @MyInt.as.Add.impl.Op, @MyInt.as.Add.impl(%N) [symbolic] +// CHECK:STDOUT: %MyInt.as.Add.impl.Op.5e3: %MyInt.as.Add.impl.Op.type.784 = struct_value () [symbolic] +// CHECK:STDOUT: %.795: require_specific_def_type = require_specific_def @MyInt.as.Add.impl(%N) [symbolic] // CHECK:STDOUT: %Double.specific_fn: = specific_function %Double, @Double(%int_64) [concrete] -// CHECK:STDOUT: %Add.impl_witness.e88: = impl_witness imports.%Add.impl_witness_table, @MyInt.as.Add.impl(%int_64) [concrete] -// CHECK:STDOUT: %MyInt.as.Add.impl.Op.type.11a: type = fn_type @MyInt.as.Add.impl.Op, @MyInt.as.Add.impl(%int_64) [concrete] -// CHECK:STDOUT: %MyInt.as.Add.impl.Op.46f: %MyInt.as.Add.impl.Op.type.11a = struct_value () [concrete] -// CHECK:STDOUT: %.bed: require_specific_def_type = require_specific_def @MyInt.as.Add.impl(%int_64) [concrete] -// CHECK:STDOUT: %Add.facet.e98: %Add.type = facet_value %MyInt.dca, (%Add.impl_witness.e88) [concrete] -// CHECK:STDOUT: %Add.WithSelf.Op.type.e20: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet.e98) [concrete] -// CHECK:STDOUT: %.ff6: type = fn_type_with_self_type %Add.WithSelf.Op.type.e20, %Add.facet.e98 [concrete] -// CHECK:STDOUT: %MyInt.as.Add.impl.Op.specific_fn: = specific_function %MyInt.as.Add.impl.Op.46f, @MyInt.as.Add.impl.Op(%int_64) [concrete] +// CHECK:STDOUT: %Add.impl_witness.503: = impl_witness imports.%Add.impl_witness_table, @MyInt.as.Add.impl(%int_64) [concrete] +// CHECK:STDOUT: %MyInt.as.Add.impl.Op.type.fc5: type = fn_type @MyInt.as.Add.impl.Op, @MyInt.as.Add.impl(%int_64) [concrete] +// CHECK:STDOUT: %MyInt.as.Add.impl.Op.a07: %MyInt.as.Add.impl.Op.type.fc5 = struct_value () [concrete] +// CHECK:STDOUT: %.7d9: require_specific_def_type = require_specific_def @MyInt.as.Add.impl(%int_64) [concrete] +// CHECK:STDOUT: %Add.facet.414: %Add.type = facet_value %MyInt.9fc, (%Add.impl_witness.503) [concrete] +// CHECK:STDOUT: %Add.WithSelf.Op.type.620: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet.414) [concrete] +// CHECK:STDOUT: %.134: type = fn_type_with_self_type %Add.WithSelf.Op.type.620, %Add.facet.414 [concrete] +// CHECK:STDOUT: %MyInt.as.Add.impl.Op.specific_fn: = specific_function %MyInt.as.Add.impl.Op.a07, @MyInt.as.Add.impl.Op(%int_64) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -520,19 +520,19 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %Main.MyInt: %MyInt.type = import_ref Main//generic_impl, MyInt, loaded [concrete = constants.%MyInt.generic] // CHECK:STDOUT: %Main.Double: %Double.type = import_ref Main//generic_impl, Double, loaded [concrete = constants.%Double] // CHECK:STDOUT: %Main.import_ref.f9e: = import_ref Main//generic_impl, loc13_1, loaded [symbolic = @MyInt.%complete_type (constants.%complete_type.d26)] -// CHECK:STDOUT: %Main.import_ref.421 = import_ref Main//generic_impl, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.942 = import_ref Main//generic_impl, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.6b552a.1: Core.IntLiteral = import_ref Main//generic_impl, loc11_14, loaded [symbolic = @MyInt.%N (constants.%N)] // CHECK:STDOUT: %Main.import_ref.6b552a.2: Core.IntLiteral = import_ref Main//generic_impl, loc19_12, loaded [symbolic = @Double.%N (constants.%N)] -// CHECK:STDOUT: %Main.import_ref.1fc = import_ref Main//generic_impl, loc5_41, unloaded +// CHECK:STDOUT: %Main.import_ref.773 = import_ref Main//generic_impl, loc5_41, unloaded // CHECK:STDOUT: %Main.Op = import_ref Main//generic_impl, Op, unloaded -// CHECK:STDOUT: %Main.import_ref.9104f8.2: %Add.type = import_ref Main//generic_impl, loc4_15, loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %Main.import_ref.b81 = import_ref Main//generic_impl, loc4_15, unloaded -// CHECK:STDOUT: %Main.import_ref.72c: = import_ref Main//generic_impl, loc15_48, loaded [symbolic = @MyInt.as.Add.impl.%Add.impl_witness (constants.%Add.impl_witness.4b0)] -// CHECK:STDOUT: %Main.import_ref.9c7: @MyInt.as.Add.impl.%MyInt.as.Add.impl.Op.type (%MyInt.as.Add.impl.Op.type.ebf) = import_ref Main//generic_impl, loc16_42, loaded [symbolic = @MyInt.as.Add.impl.%MyInt.as.Add.impl.Op (constants.%MyInt.as.Add.impl.Op.39d)] -// CHECK:STDOUT: %Add.impl_witness_table = impl_witness_table (%Main.import_ref.9c7), @MyInt.as.Add.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.9e12ee.2: %Add.type = import_ref Main//generic_impl, loc4_15, loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.6b4 = import_ref Main//generic_impl, loc4_15, unloaded +// CHECK:STDOUT: %Main.import_ref.d03: = import_ref Main//generic_impl, loc15_48, loaded [symbolic = @MyInt.as.Add.impl.%Add.impl_witness (constants.%Add.impl_witness.5f1)] +// CHECK:STDOUT: %Main.import_ref.6b52: @MyInt.as.Add.impl.%MyInt.as.Add.impl.Op.type (%MyInt.as.Add.impl.Op.type.784) = import_ref Main//generic_impl, loc16_42, loaded [symbolic = @MyInt.as.Add.impl.%MyInt.as.Add.impl.Op (constants.%MyInt.as.Add.impl.Op.5e3)] +// CHECK:STDOUT: %Add.impl_witness_table = impl_witness_table (%Main.import_ref.6b52), @MyInt.as.Add.impl [concrete] // CHECK:STDOUT: %Main.import_ref.6b552a.3: Core.IntLiteral = import_ref Main//generic_impl, loc15_15, loaded [symbolic = @MyInt.as.Add.impl.%N (constants.%N)] -// CHECK:STDOUT: %Main.import_ref.4e9ce8.2: type = import_ref Main//generic_impl, loc15_39, loaded [symbolic = @MyInt.as.Add.impl.%MyInt (constants.%MyInt.c94)] -// CHECK:STDOUT: %Main.import_ref.83c: type = import_ref Main//generic_impl, loc15_44, loaded [concrete = constants.%Add.type] +// CHECK:STDOUT: %Main.import_ref.1d56b6.2: type = import_ref Main//generic_impl, loc15_39, loaded [symbolic = @MyInt.as.Add.impl.%MyInt (constants.%MyInt.e0a)] +// CHECK:STDOUT: %Main.import_ref.5e3: type = import_ref Main//generic_impl, loc15_44, loaded [concrete = constants.%Add.type] // CHECK:STDOUT: %Main.import_ref.6b552a.4: Core.IntLiteral = import_ref Main//generic_impl, loc15_15, loaded [symbolic = @MyInt.as.Add.impl.%N (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -547,31 +547,31 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %CallImportedDouble.decl: %CallImportedDouble.type = fn_decl @CallImportedDouble [concrete = constants.%CallImportedDouble] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.bcd = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.bcd = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.bcd = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.bcd = return_slot_pattern %return.param_patt, %MyInt.loc6_48 [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.507 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.507 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.507 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.507 = return_slot_pattern %return.param_patt, %MyInt.loc6_48 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %MyInt.ref.loc6_40: %MyInt.type = name_ref MyInt, imports.%Main.MyInt [concrete = constants.%MyInt.generic] // CHECK:STDOUT: %int_64.loc6_46: Core.IntLiteral = int_value 64 [concrete = constants.%int_64] -// CHECK:STDOUT: %MyInt.loc6_48: type = class_type @MyInt, @MyInt(constants.%int_64) [concrete = constants.%MyInt.dca] -// CHECK:STDOUT: %.loc6_48: Core.Form = init_form %MyInt.loc6_48 [concrete = constants.%.c14] -// CHECK:STDOUT: %n.param: %MyInt.dca = value_param call_param0 -// CHECK:STDOUT: %.loc6_34: type = splice_block %MyInt.loc6_34 [concrete = constants.%MyInt.dca] { +// CHECK:STDOUT: %MyInt.loc6_48: type = class_type @MyInt, @MyInt(constants.%int_64) [concrete = constants.%MyInt.9fc] +// CHECK:STDOUT: %.loc6_48: Core.Form = init_form %MyInt.loc6_48 [concrete = constants.%.a16] +// CHECK:STDOUT: %n.param: %MyInt.9fc = value_param call_param0 +// CHECK:STDOUT: %.loc6_34: type = splice_block %MyInt.loc6_34 [concrete = constants.%MyInt.9fc] { // CHECK:STDOUT: %MyInt.ref.loc6_26: %MyInt.type = name_ref MyInt, imports.%Main.MyInt [concrete = constants.%MyInt.generic] // CHECK:STDOUT: %int_64.loc6_32: Core.IntLiteral = int_value 64 [concrete = constants.%int_64] -// CHECK:STDOUT: %MyInt.loc6_34: type = class_type @MyInt, @MyInt(constants.%int_64) [concrete = constants.%MyInt.dca] +// CHECK:STDOUT: %MyInt.loc6_34: type = class_type @MyInt, @MyInt(constants.%int_64) [concrete = constants.%MyInt.9fc] // CHECK:STDOUT: } -// CHECK:STDOUT: %n: %MyInt.dca = value_binding n, %n.param -// CHECK:STDOUT: %return.param: ref %MyInt.dca = out_param call_param1 -// CHECK:STDOUT: %return: ref %MyInt.dca = return_slot %return.param +// CHECK:STDOUT: %n: %MyInt.9fc = value_binding n, %n.param +// CHECK:STDOUT: %return.param: ref %MyInt.9fc = out_param call_param1 +// CHECK:STDOUT: %return: ref %MyInt.9fc = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Add [from "generic_impl.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.b81 -// CHECK:STDOUT: .Op = imports.%Main.import_ref.1fc +// CHECK:STDOUT: .Self = imports.%Main.import_ref.6b4 +// CHECK:STDOUT: .Op = imports.%Main.import_ref.773 // CHECK:STDOUT: witness = (imports.%Main.Op) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -579,17 +579,17 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: generic impl @MyInt.as.Add.impl(imports.%Main.import_ref.6b552a.4: Core.IntLiteral) [from "generic_impl.carbon"] { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic = %MyInt (constants.%MyInt.c94)] -// CHECK:STDOUT: %Add.impl_witness: = impl_witness imports.%Add.impl_witness_table, @MyInt.as.Add.impl(%N) [symbolic = %Add.impl_witness (constants.%Add.impl_witness.4b0)] +// CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic = %MyInt (constants.%MyInt.e0a)] +// CHECK:STDOUT: %Add.impl_witness: = impl_witness imports.%Add.impl_witness_table, @MyInt.as.Add.impl(%N) [symbolic = %Add.impl_witness (constants.%Add.impl_witness.5f1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %MyInt.as.Add.impl.Op.type: type = fn_type @MyInt.as.Add.impl.Op, @MyInt.as.Add.impl(%N) [symbolic = %MyInt.as.Add.impl.Op.type (constants.%MyInt.as.Add.impl.Op.type.ebf)] -// CHECK:STDOUT: %MyInt.as.Add.impl.Op: @MyInt.as.Add.impl.%MyInt.as.Add.impl.Op.type (%MyInt.as.Add.impl.Op.type.ebf) = struct_value () [symbolic = %MyInt.as.Add.impl.Op (constants.%MyInt.as.Add.impl.Op.39d)] -// CHECK:STDOUT: %require_complete: = require_complete_type %MyInt [symbolic = %require_complete (constants.%require_complete.1a0)] +// CHECK:STDOUT: %MyInt.as.Add.impl.Op.type: type = fn_type @MyInt.as.Add.impl.Op, @MyInt.as.Add.impl(%N) [symbolic = %MyInt.as.Add.impl.Op.type (constants.%MyInt.as.Add.impl.Op.type.784)] +// CHECK:STDOUT: %MyInt.as.Add.impl.Op: @MyInt.as.Add.impl.%MyInt.as.Add.impl.Op.type (%MyInt.as.Add.impl.Op.type.784) = struct_value () [symbolic = %MyInt.as.Add.impl.Op (constants.%MyInt.as.Add.impl.Op.5e3)] +// CHECK:STDOUT: %require_complete: = require_complete_type %MyInt [symbolic = %require_complete (constants.%require_complete.f24)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%Main.import_ref.4e9ce8.2 as imports.%Main.import_ref.83c { +// CHECK:STDOUT: impl: imports.%Main.import_ref.1d56b6.2 as imports.%Main.import_ref.5e3 { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Main.import_ref.72c +// CHECK:STDOUT: witness = imports.%Main.import_ref.d03 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -605,52 +605,52 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.f9e // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.421 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.942 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallImportedDouble(%n.param: %MyInt.dca) -> out %return.param: %MyInt.dca { +// CHECK:STDOUT: fn @CallImportedDouble(%n.param: %MyInt.9fc) -> out %return.param: %MyInt.9fc { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Double.ref: %Double.type = name_ref Double, imports.%Main.Double [concrete = constants.%Double] -// CHECK:STDOUT: %n.ref: %MyInt.dca = name_ref n, %n +// CHECK:STDOUT: %n.ref: %MyInt.9fc = name_ref n, %n // CHECK:STDOUT: %Double.specific_fn: = specific_function %Double.ref, @Double(constants.%int_64) [concrete = constants.%Double.specific_fn] -// CHECK:STDOUT: %Double.call: init %MyInt.dca = call %Double.specific_fn(%n.ref) +// CHECK:STDOUT: %Double.call: init %MyInt.9fc = call %Double.specific_fn(%n.ref) // CHECK:STDOUT: return %Double.call // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Double(imports.%Main.import_ref.6b552a.2: Core.IntLiteral) [from "generic_impl.carbon"] { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic = %MyInt (constants.%MyInt.c94)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %MyInt [symbolic = %pattern_type (constants.%pattern_type.111)] -// CHECK:STDOUT: %.1: Core.Form = init_form %MyInt [symbolic = %.1 (constants.%.9c6)] +// CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic = %MyInt (constants.%MyInt.e0a)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %MyInt [symbolic = %pattern_type (constants.%pattern_type.6bc)] +// CHECK:STDOUT: %.1: Core.Form = init_form %MyInt [symbolic = %.1 (constants.%.5dd)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %MyInt [symbolic = %require_complete (constants.%require_complete.1a0)] -// CHECK:STDOUT: %.2: require_specific_def_type = require_specific_def @MyInt.as.Add.impl(%N) [symbolic = %.2 (constants.%.72b)] +// CHECK:STDOUT: %require_complete: = require_complete_type %MyInt [symbolic = %require_complete (constants.%require_complete.f24)] +// CHECK:STDOUT: %.2: require_specific_def_type = require_specific_def @MyInt.as.Add.impl(%N) [symbolic = %.2 (constants.%.795)] // CHECK:STDOUT: %Add.lookup_impl_witness: = lookup_impl_witness %MyInt, @Add [symbolic = %Add.lookup_impl_witness (constants.%Add.lookup_impl_witness)] -// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %MyInt, (%Add.lookup_impl_witness) [symbolic = %Add.facet (constants.%Add.facet.3f8)] -// CHECK:STDOUT: %Add.WithSelf.Op.type: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet) [symbolic = %Add.WithSelf.Op.type (constants.%Add.WithSelf.Op.type.9d7)] -// CHECK:STDOUT: %.3: type = fn_type_with_self_type %Add.WithSelf.Op.type, %Add.facet [symbolic = %.3 (constants.%.19c)] -// CHECK:STDOUT: %impl.elem0: @Double.%.3 (%.19c) = impl_witness_access %Add.lookup_impl_witness, element0 [symbolic = %impl.elem0 (constants.%impl.elem0)] +// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %MyInt, (%Add.lookup_impl_witness) [symbolic = %Add.facet (constants.%Add.facet.255)] +// CHECK:STDOUT: %Add.WithSelf.Op.type: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet) [symbolic = %Add.WithSelf.Op.type (constants.%Add.WithSelf.Op.type.de5)] +// CHECK:STDOUT: %.3: type = fn_type_with_self_type %Add.WithSelf.Op.type, %Add.facet [symbolic = %.3 (constants.%.ccf)] +// CHECK:STDOUT: %impl.elem0: @Double.%.3 (%.ccf) = impl_witness_access %Add.lookup_impl_witness, element0 [symbolic = %impl.elem0 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Add.WithSelf.Op(%Add.facet) [symbolic = %specific_impl_fn (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Add.WithSelf.Op(imports.%Main.import_ref.9104f8.2: %Add.type) [from "generic_impl.carbon"] { +// CHECK:STDOUT: generic fn @Add.WithSelf.Op(imports.%Main.import_ref.9e12ee.2: %Add.type) [from "generic_impl.carbon"] { // CHECK:STDOUT: %Self: %Add.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.dfd)] -// CHECK:STDOUT: %.1: Core.Form = init_form %Self.as_type [symbolic = %.1 (constants.%.1b3)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.78d)] +// CHECK:STDOUT: %.1: Core.Form = init_form %Self.as_type [symbolic = %.1 (constants.%.719)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @MyInt.as.Add.impl.Op(imports.%Main.import_ref.6b552a.3: Core.IntLiteral) [from "generic_impl.carbon"] { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic = %MyInt (constants.%MyInt.c94)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %MyInt [symbolic = %pattern_type (constants.%pattern_type.111)] -// CHECK:STDOUT: %.1: Core.Form = init_form %MyInt [symbolic = %.1 (constants.%.9c6)] +// CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic = %MyInt (constants.%MyInt.e0a)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %MyInt [symbolic = %pattern_type (constants.%pattern_type.6bc)] +// CHECK:STDOUT: %.1: Core.Form = init_form %MyInt [symbolic = %.1 (constants.%.5dd)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -678,98 +678,98 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: specific @Add.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.fb2 -// CHECK:STDOUT: %Add.WithSelf.Op => constants.%Add.WithSelf.Op.ebe +// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.ee5 +// CHECK:STDOUT: %Add.WithSelf.Op => constants.%Add.WithSelf.Op.39f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.dfd -// CHECK:STDOUT: %.1 => constants.%.1b3 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.78d +// CHECK:STDOUT: %.1 => constants.%.719 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Add.WithSelf(constants.%Add.facet.3f8) { +// CHECK:STDOUT: specific @Add.WithSelf(constants.%Add.facet.255) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Add.facet.3f8 -// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.9d7 -// CHECK:STDOUT: %Add.WithSelf.Op => constants.%Add.WithSelf.Op.f8f +// CHECK:STDOUT: %Self => constants.%Add.facet.255 +// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.de5 +// CHECK:STDOUT: %Add.WithSelf.Op => constants.%Add.WithSelf.Op.594 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Add.facet.3f8) { -// CHECK:STDOUT: %Self => constants.%Add.facet.3f8 -// CHECK:STDOUT: %Self.as_type => constants.%MyInt.c94 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.111 -// CHECK:STDOUT: %.1 => constants.%.9c6 +// CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Add.facet.255) { +// CHECK:STDOUT: %Self => constants.%Add.facet.255 +// CHECK:STDOUT: %Self.as_type => constants.%MyInt.e0a +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6bc +// CHECK:STDOUT: %.1 => constants.%.5dd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MyInt.as.Add.impl(constants.%N) { // CHECK:STDOUT: %N => constants.%N -// CHECK:STDOUT: %MyInt => constants.%MyInt.c94 -// CHECK:STDOUT: %Add.impl_witness => constants.%Add.impl_witness.4b0 +// CHECK:STDOUT: %MyInt => constants.%MyInt.e0a +// CHECK:STDOUT: %Add.impl_witness => constants.%Add.impl_witness.5f1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %MyInt.as.Add.impl.Op.type => constants.%MyInt.as.Add.impl.Op.type.ebf -// CHECK:STDOUT: %MyInt.as.Add.impl.Op => constants.%MyInt.as.Add.impl.Op.39d -// CHECK:STDOUT: %require_complete => constants.%require_complete.1a0 +// CHECK:STDOUT: %MyInt.as.Add.impl.Op.type => constants.%MyInt.as.Add.impl.Op.type.784 +// CHECK:STDOUT: %MyInt.as.Add.impl.Op => constants.%MyInt.as.Add.impl.Op.5e3 +// CHECK:STDOUT: %require_complete => constants.%require_complete.f24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MyInt.as.Add.impl.Op(constants.%N) { // CHECK:STDOUT: %N => constants.%N -// CHECK:STDOUT: %MyInt => constants.%MyInt.c94 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.111 -// CHECK:STDOUT: %.1 => constants.%.9c6 +// CHECK:STDOUT: %MyInt => constants.%MyInt.e0a +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6bc +// CHECK:STDOUT: %.1 => constants.%.5dd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Double(constants.%N) { // CHECK:STDOUT: %N => constants.%N -// CHECK:STDOUT: %MyInt => constants.%MyInt.c94 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.111 -// CHECK:STDOUT: %.1 => constants.%.9c6 +// CHECK:STDOUT: %MyInt => constants.%MyInt.e0a +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6bc +// CHECK:STDOUT: %.1 => constants.%.5dd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Double(constants.%int_64) { // CHECK:STDOUT: %N => constants.%int_64 -// CHECK:STDOUT: %MyInt => constants.%MyInt.dca -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bcd -// CHECK:STDOUT: %.1 => constants.%.c14 +// CHECK:STDOUT: %MyInt => constants.%MyInt.9fc +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.507 +// CHECK:STDOUT: %.1 => constants.%.a16 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.4a1 -// CHECK:STDOUT: %.2 => constants.%.bed -// CHECK:STDOUT: %Add.lookup_impl_witness => constants.%Add.impl_witness.e88 -// CHECK:STDOUT: %Add.facet => constants.%Add.facet.e98 -// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.e20 -// CHECK:STDOUT: %.3 => constants.%.ff6 -// CHECK:STDOUT: %impl.elem0 => constants.%MyInt.as.Add.impl.Op.46f +// CHECK:STDOUT: %.2 => constants.%.7d9 +// CHECK:STDOUT: %Add.lookup_impl_witness => constants.%Add.impl_witness.503 +// CHECK:STDOUT: %Add.facet => constants.%Add.facet.414 +// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.620 +// CHECK:STDOUT: %.3 => constants.%.134 +// CHECK:STDOUT: %impl.elem0 => constants.%MyInt.as.Add.impl.Op.a07 // CHECK:STDOUT: %specific_impl_fn => constants.%MyInt.as.Add.impl.Op.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MyInt.as.Add.impl(constants.%int_64) { // CHECK:STDOUT: %N => constants.%int_64 -// CHECK:STDOUT: %MyInt => constants.%MyInt.dca -// CHECK:STDOUT: %Add.impl_witness => constants.%Add.impl_witness.e88 +// CHECK:STDOUT: %MyInt => constants.%MyInt.9fc +// CHECK:STDOUT: %Add.impl_witness => constants.%Add.impl_witness.503 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %MyInt.as.Add.impl.Op.type => constants.%MyInt.as.Add.impl.Op.type.11a -// CHECK:STDOUT: %MyInt.as.Add.impl.Op => constants.%MyInt.as.Add.impl.Op.46f +// CHECK:STDOUT: %MyInt.as.Add.impl.Op.type => constants.%MyInt.as.Add.impl.Op.type.fc5 +// CHECK:STDOUT: %MyInt.as.Add.impl.Op => constants.%MyInt.as.Add.impl.Op.a07 // CHECK:STDOUT: %require_complete => constants.%complete_type.4a1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Add.WithSelf(constants.%Add.facet.e98) {} +// CHECK:STDOUT: specific @Add.WithSelf(constants.%Add.facet.414) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Add.facet.e98) { -// CHECK:STDOUT: %Self => constants.%Add.facet.e98 -// CHECK:STDOUT: %Self.as_type => constants.%MyInt.dca -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bcd -// CHECK:STDOUT: %.1 => constants.%.c14 +// CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Add.facet.414) { +// CHECK:STDOUT: %Self => constants.%Add.facet.414 +// CHECK:STDOUT: %Self.as_type => constants.%MyInt.9fc +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.507 +// CHECK:STDOUT: %.1 => constants.%.a16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MyInt.as.Add.impl.Op(constants.%int_64) { // CHECK:STDOUT: %N => constants.%int_64 -// CHECK:STDOUT: %MyInt => constants.%MyInt.dca -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bcd -// CHECK:STDOUT: %.1 => constants.%.c14 +// CHECK:STDOUT: %MyInt => constants.%MyInt.9fc +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.507 +// CHECK:STDOUT: %.1 => constants.%.a16 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -797,28 +797,28 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %N.7e8: %i32.builtin = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %ToLiteral.call: init Core.IntLiteral = call %ToLiteral(%N.7e8) [symbolic] -// CHECK:STDOUT: %iN.builtin.0a7: type = int_type signed, %ToLiteral.call [symbolic] -// CHECK:STDOUT: %.519: Core.Form = init_form %iN.builtin.0a7 [symbolic] -// CHECK:STDOUT: %pattern_type.355: type = pattern_type %iN.builtin.0a7 [symbolic] +// CHECK:STDOUT: %iN.builtin.384: type = int_type signed, %ToLiteral.call [symbolic] +// CHECK:STDOUT: %.220: Core.Form = init_form %iN.builtin.384 [symbolic] +// CHECK:STDOUT: %pattern_type.86d: type = pattern_type %iN.builtin.384 [symbolic] // CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete] // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.2c1: = require_complete_type %iN.builtin.0a7 [symbolic] +// CHECK:STDOUT: %require_complete.b2b: = require_complete_type %iN.builtin.384 [symbolic] // CHECK:STDOUT: %Make.specific_fn: = specific_function %Make, @Make(%N.7e8) [symbolic] // CHECK:STDOUT: %OtherInt: type = class_type @OtherInt [concrete] -// CHECK:STDOUT: %pattern_type.3cc: type = pattern_type %OtherInt [concrete] +// CHECK:STDOUT: %pattern_type.35b: type = pattern_type %OtherInt [concrete] // CHECK:STDOUT: %OtherInt.ToLiteral.type: type = fn_type @OtherInt.ToLiteral [concrete] // CHECK:STDOUT: %OtherInt.ToLiteral: %OtherInt.ToLiteral.type = struct_value () [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %N.b1a: %OtherInt = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %OtherInt.ToLiteral.bound: = bound_method %N.b1a, %OtherInt.ToLiteral [symbolic] -// CHECK:STDOUT: %OtherInt.ToLiteral.call: init Core.IntLiteral = call %OtherInt.ToLiteral.bound(%N.b1a) [symbolic] -// CHECK:STDOUT: %iN.builtin.42f: type = int_type signed, %OtherInt.ToLiteral.call [symbolic] -// CHECK:STDOUT: %.32d: Core.Form = init_form %iN.builtin.42f [symbolic] -// CHECK:STDOUT: %pattern_type.344: type = pattern_type %iN.builtin.42f [symbolic] +// CHECK:STDOUT: %N.93f: %OtherInt = symbolic_binding N, 0 [symbolic] +// CHECK:STDOUT: %OtherInt.ToLiteral.bound: = bound_method %N.93f, %OtherInt.ToLiteral [symbolic] +// CHECK:STDOUT: %OtherInt.ToLiteral.call: init Core.IntLiteral = call %OtherInt.ToLiteral.bound(%N.93f) [symbolic] +// CHECK:STDOUT: %iN.builtin.11d: type = int_type signed, %OtherInt.ToLiteral.call [symbolic] +// CHECK:STDOUT: %.bae: Core.Form = init_form %iN.builtin.11d [symbolic] +// CHECK:STDOUT: %pattern_type.558: type = pattern_type %iN.builtin.11d [symbolic] // CHECK:STDOUT: %MakeFromClass.type: type = fn_type @MakeFromClass [concrete] // CHECK:STDOUT: %MakeFromClass: %MakeFromClass.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.725: = require_complete_type %iN.builtin.42f [symbolic] -// CHECK:STDOUT: %MakeFromClass.specific_fn: = specific_function %MakeFromClass, @MakeFromClass(%N.b1a) [symbolic] +// CHECK:STDOUT: %require_complete.11f: = require_complete_type %iN.builtin.11d [symbolic] +// CHECK:STDOUT: %MakeFromClass.specific_fn: = specific_function %MakeFromClass, @MakeFromClass(%N.93f) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -907,8 +907,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: } // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { // CHECK:STDOUT: %N.patt: %pattern_type.956 = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %return.param_patt: @Make.%pattern_type (%pattern_type.355) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Make.%pattern_type (%pattern_type.355) = return_slot_pattern %return.param_patt, %.loc9_41.3 [concrete] +// CHECK:STDOUT: %return.param_patt: @Make.%pattern_type (%pattern_type.86d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Make.%pattern_type (%pattern_type.86d) = return_slot_pattern %return.param_patt, %.loc9_41.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Int.ref.loc9_25: %Int.type = name_ref Int, file.%Int.decl [concrete = constants.%Int] // CHECK:STDOUT: %ToLiteral.ref: %ToLiteral.type = name_ref ToLiteral, file.%ToLiteral.decl [concrete = constants.%ToLiteral] @@ -916,10 +916,10 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %ToLiteral.call.loc9_40.2: init Core.IntLiteral = call %ToLiteral.ref(%N.ref.loc9_39) [symbolic = %ToLiteral.call.loc9_40.1 (constants.%ToLiteral.call)] // CHECK:STDOUT: %.loc9_40.1: Core.IntLiteral = value_of_initializer %ToLiteral.call.loc9_40.2 [symbolic = %ToLiteral.call.loc9_40.1 (constants.%ToLiteral.call)] // CHECK:STDOUT: %.loc9_40.2: Core.IntLiteral = converted %ToLiteral.call.loc9_40.2, %.loc9_40.1 [symbolic = %ToLiteral.call.loc9_40.1 (constants.%ToLiteral.call)] -// CHECK:STDOUT: %Int.call.loc9_41: init type = call %Int.ref.loc9_25(%.loc9_40.2) [symbolic = %iN.builtin (constants.%iN.builtin.0a7)] -// CHECK:STDOUT: %.loc9_41.2: type = value_of_initializer %Int.call.loc9_41 [symbolic = %iN.builtin (constants.%iN.builtin.0a7)] -// CHECK:STDOUT: %.loc9_41.3: type = converted %Int.call.loc9_41, %.loc9_41.2 [symbolic = %iN.builtin (constants.%iN.builtin.0a7)] -// CHECK:STDOUT: %.loc9_41.4: Core.Form = init_form %.loc9_41.3 [symbolic = %.loc9_41.1 (constants.%.519)] +// CHECK:STDOUT: %Int.call.loc9_41: init type = call %Int.ref.loc9_25(%.loc9_40.2) [symbolic = %iN.builtin (constants.%iN.builtin.384)] +// CHECK:STDOUT: %.loc9_41.2: type = value_of_initializer %Int.call.loc9_41 [symbolic = %iN.builtin (constants.%iN.builtin.384)] +// CHECK:STDOUT: %.loc9_41.3: type = converted %Int.call.loc9_41, %.loc9_41.2 [symbolic = %iN.builtin (constants.%iN.builtin.384)] +// CHECK:STDOUT: %.loc9_41.4: Core.Form = init_form %.loc9_41.3 [symbolic = %.loc9_41.1 (constants.%.220)] // CHECK:STDOUT: %.loc9_19.1: type = splice_block %.loc9_19.3 [concrete = constants.%i32.builtin] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Int.ref.loc9_13: %Int.type = name_ref Int, file.%Int.decl [concrete = constants.%Int] @@ -929,13 +929,13 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %.loc9_19.3: type = converted %Int.call.loc9_19, %.loc9_19.2 [concrete = constants.%i32.builtin] // CHECK:STDOUT: } // CHECK:STDOUT: %N.loc9_10.2: %i32.builtin = symbolic_binding N, 0 [symbolic = %N.loc9_10.1 (constants.%N.7e8)] -// CHECK:STDOUT: %return.param: ref @Make.%iN.builtin (%iN.builtin.0a7) = out_param call_param0 -// CHECK:STDOUT: %return: ref @Make.%iN.builtin (%iN.builtin.0a7) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @Make.%iN.builtin (%iN.builtin.384) = out_param call_param0 +// CHECK:STDOUT: %return: ref @Make.%iN.builtin (%iN.builtin.384) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %OtherInt.decl: type = class_decl @OtherInt [concrete = constants.%OtherInt] {} {} // CHECK:STDOUT: %OtherInt.ToLiteral.decl: %OtherInt.ToLiteral.type = fn_decl @OtherInt.ToLiteral [concrete = constants.%OtherInt.ToLiteral] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.3cc = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.3cc = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.35b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.35b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %.loc16_51.2 [concrete] // CHECK:STDOUT: } { @@ -951,28 +951,28 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %return.loc16: ref Core.IntLiteral = return_slot %return.param.loc16 // CHECK:STDOUT: } // CHECK:STDOUT: %MakeFromClass.decl: %MakeFromClass.type = fn_decl @MakeFromClass [concrete = constants.%MakeFromClass] { -// CHECK:STDOUT: %N.patt: %pattern_type.3cc = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %return.param_patt: @MakeFromClass.%pattern_type (%pattern_type.344) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @MakeFromClass.%pattern_type (%pattern_type.344) = return_slot_pattern %return.param_patt, %.loc18_52.3 [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.35b = symbolic_binding_pattern N, 0 [concrete] +// CHECK:STDOUT: %return.param_patt: @MakeFromClass.%pattern_type (%pattern_type.558) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @MakeFromClass.%pattern_type (%pattern_type.558) = return_slot_pattern %return.param_patt, %.loc18_52.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, file.%Int.decl [concrete = constants.%Int] -// CHECK:STDOUT: %N.ref.loc18_39: %OtherInt = name_ref N, %N.loc18_19.2 [symbolic = %N.loc18_19.1 (constants.%N.b1a)] +// CHECK:STDOUT: %N.ref.loc18_39: %OtherInt = name_ref N, %N.loc18_19.2 [symbolic = %N.loc18_19.1 (constants.%N.93f)] // CHECK:STDOUT: %ToLiteral.ref: %OtherInt.ToLiteral.type = name_ref ToLiteral, @OtherInt.%OtherInt.ToLiteral.decl [concrete = constants.%OtherInt.ToLiteral] // CHECK:STDOUT: %OtherInt.ToLiteral.bound.loc18_40.2: = bound_method %N.ref.loc18_39, %ToLiteral.ref [symbolic = %OtherInt.ToLiteral.bound.loc18_40.1 (constants.%OtherInt.ToLiteral.bound)] // CHECK:STDOUT: %OtherInt.ToLiteral.call.loc18_51.2: init Core.IntLiteral = call %OtherInt.ToLiteral.bound.loc18_40.2(%N.ref.loc18_39) [symbolic = %OtherInt.ToLiteral.call.loc18_51.1 (constants.%OtherInt.ToLiteral.call)] // CHECK:STDOUT: %.loc18_51.1: Core.IntLiteral = value_of_initializer %OtherInt.ToLiteral.call.loc18_51.2 [symbolic = %OtherInt.ToLiteral.call.loc18_51.1 (constants.%OtherInt.ToLiteral.call)] // CHECK:STDOUT: %.loc18_51.2: Core.IntLiteral = converted %OtherInt.ToLiteral.call.loc18_51.2, %.loc18_51.1 [symbolic = %OtherInt.ToLiteral.call.loc18_51.1 (constants.%OtherInt.ToLiteral.call)] -// CHECK:STDOUT: %Int.call: init type = call %Int.ref(%.loc18_51.2) [symbolic = %iN.builtin (constants.%iN.builtin.42f)] -// CHECK:STDOUT: %.loc18_52.2: type = value_of_initializer %Int.call [symbolic = %iN.builtin (constants.%iN.builtin.42f)] -// CHECK:STDOUT: %.loc18_52.3: type = converted %Int.call, %.loc18_52.2 [symbolic = %iN.builtin (constants.%iN.builtin.42f)] -// CHECK:STDOUT: %.loc18_52.4: Core.Form = init_form %.loc18_52.3 [symbolic = %.loc18_52.1 (constants.%.32d)] +// CHECK:STDOUT: %Int.call: init type = call %Int.ref(%.loc18_51.2) [symbolic = %iN.builtin (constants.%iN.builtin.11d)] +// CHECK:STDOUT: %.loc18_52.2: type = value_of_initializer %Int.call [symbolic = %iN.builtin (constants.%iN.builtin.11d)] +// CHECK:STDOUT: %.loc18_52.3: type = converted %Int.call, %.loc18_52.2 [symbolic = %iN.builtin (constants.%iN.builtin.11d)] +// CHECK:STDOUT: %.loc18_52.4: Core.Form = init_form %.loc18_52.3 [symbolic = %.loc18_52.1 (constants.%.bae)] // CHECK:STDOUT: %.loc18_22: type = splice_block %OtherInt.ref [concrete = constants.%OtherInt] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %OtherInt.ref: type = name_ref OtherInt, file.%OtherInt.decl [concrete = constants.%OtherInt] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc18_19.2: %OtherInt = symbolic_binding N, 0 [symbolic = %N.loc18_19.1 (constants.%N.b1a)] -// CHECK:STDOUT: %return.param: ref @MakeFromClass.%iN.builtin (%iN.builtin.42f) = out_param call_param0 -// CHECK:STDOUT: %return: ref @MakeFromClass.%iN.builtin (%iN.builtin.42f) = return_slot %return.param +// CHECK:STDOUT: %N.loc18_19.2: %OtherInt = symbolic_binding N, 0 [symbolic = %N.loc18_19.1 (constants.%N.93f)] +// CHECK:STDOUT: %return.param: ref @MakeFromClass.%iN.builtin (%iN.builtin.11d) = out_param call_param0 +// CHECK:STDOUT: %return: ref @MakeFromClass.%iN.builtin (%iN.builtin.11d) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -984,8 +984,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %.loc12_16.2: type = converted %Int.call, %.loc12_16.1 [concrete = constants.%i32.builtin] // CHECK:STDOUT: adapt_decl %.loc12_16.2 [concrete] // CHECK:STDOUT: %OtherInt.ToLiteral.decl: %OtherInt.ToLiteral.type = fn_decl @OtherInt.ToLiteral [concrete = constants.%OtherInt.ToLiteral] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.3cc = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.3cc = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.35b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.35b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %.loc16_51.2 [concrete] // CHECK:STDOUT: } { @@ -1021,20 +1021,20 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: generic fn @Make(%N.loc9_10.2: %i32.builtin) { // CHECK:STDOUT: %N.loc9_10.1: %i32.builtin = symbolic_binding N, 0 [symbolic = %N.loc9_10.1 (constants.%N.7e8)] // CHECK:STDOUT: %ToLiteral.call.loc9_40.1: init Core.IntLiteral = call constants.%ToLiteral(%N.loc9_10.1) [symbolic = %ToLiteral.call.loc9_40.1 (constants.%ToLiteral.call)] -// CHECK:STDOUT: %iN.builtin: type = int_type signed, %ToLiteral.call.loc9_40.1 [symbolic = %iN.builtin (constants.%iN.builtin.0a7)] -// CHECK:STDOUT: %.loc9_41.1: Core.Form = init_form %iN.builtin [symbolic = %.loc9_41.1 (constants.%.519)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %iN.builtin [symbolic = %pattern_type (constants.%pattern_type.355)] +// CHECK:STDOUT: %iN.builtin: type = int_type signed, %ToLiteral.call.loc9_40.1 [symbolic = %iN.builtin (constants.%iN.builtin.384)] +// CHECK:STDOUT: %.loc9_41.1: Core.Form = init_form %iN.builtin [symbolic = %.loc9_41.1 (constants.%.220)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %iN.builtin [symbolic = %pattern_type (constants.%pattern_type.86d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %iN.builtin [symbolic = %require_complete (constants.%require_complete.2c1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %iN.builtin [symbolic = %require_complete (constants.%require_complete.b2b)] // CHECK:STDOUT: %Make.specific_fn.loc9_52.2: = specific_function constants.%Make, @Make(%N.loc9_10.1) [symbolic = %Make.specific_fn.loc9_52.2 (constants.%Make.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> out %return.param: @Make.%iN.builtin (%iN.builtin.0a7) { +// CHECK:STDOUT: fn() -> out %return.param: @Make.%iN.builtin (%iN.builtin.384) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make] // CHECK:STDOUT: %N.ref.loc9_57: %i32.builtin = name_ref N, %N.loc9_10.2 [symbolic = %N.loc9_10.1 (constants.%N.7e8)] // CHECK:STDOUT: %Make.specific_fn.loc9_52.1: = specific_function %Make.ref, @Make(constants.%N.7e8) [symbolic = %Make.specific_fn.loc9_52.2 (constants.%Make.specific_fn)] -// CHECK:STDOUT: %Make.call: init @Make.%iN.builtin (%iN.builtin.0a7) = call %Make.specific_fn.loc9_52.1() +// CHECK:STDOUT: %Make.call: init @Make.%iN.builtin (%iN.builtin.384) = call %Make.specific_fn.loc9_52.1() // CHECK:STDOUT: return %Make.call // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1042,23 +1042,23 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: fn @OtherInt.ToLiteral(%self.param.loc16: %OtherInt) -> out %return.param.loc16: Core.IntLiteral = "int.convert_checked"; // CHECK:STDOUT: // CHECK:STDOUT: generic fn @MakeFromClass(%N.loc18_19.2: %OtherInt) { -// CHECK:STDOUT: %N.loc18_19.1: %OtherInt = symbolic_binding N, 0 [symbolic = %N.loc18_19.1 (constants.%N.b1a)] +// CHECK:STDOUT: %N.loc18_19.1: %OtherInt = symbolic_binding N, 0 [symbolic = %N.loc18_19.1 (constants.%N.93f)] // CHECK:STDOUT: %OtherInt.ToLiteral.bound.loc18_40.1: = bound_method %N.loc18_19.1, constants.%OtherInt.ToLiteral [symbolic = %OtherInt.ToLiteral.bound.loc18_40.1 (constants.%OtherInt.ToLiteral.bound)] // CHECK:STDOUT: %OtherInt.ToLiteral.call.loc18_51.1: init Core.IntLiteral = call %OtherInt.ToLiteral.bound.loc18_40.1(%N.loc18_19.1) [symbolic = %OtherInt.ToLiteral.call.loc18_51.1 (constants.%OtherInt.ToLiteral.call)] -// CHECK:STDOUT: %iN.builtin: type = int_type signed, %OtherInt.ToLiteral.call.loc18_51.1 [symbolic = %iN.builtin (constants.%iN.builtin.42f)] -// CHECK:STDOUT: %.loc18_52.1: Core.Form = init_form %iN.builtin [symbolic = %.loc18_52.1 (constants.%.32d)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %iN.builtin [symbolic = %pattern_type (constants.%pattern_type.344)] +// CHECK:STDOUT: %iN.builtin: type = int_type signed, %OtherInt.ToLiteral.call.loc18_51.1 [symbolic = %iN.builtin (constants.%iN.builtin.11d)] +// CHECK:STDOUT: %.loc18_52.1: Core.Form = init_form %iN.builtin [symbolic = %.loc18_52.1 (constants.%.bae)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %iN.builtin [symbolic = %pattern_type (constants.%pattern_type.558)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %iN.builtin [symbolic = %require_complete (constants.%require_complete.725)] +// CHECK:STDOUT: %require_complete: = require_complete_type %iN.builtin [symbolic = %require_complete (constants.%require_complete.11f)] // CHECK:STDOUT: %MakeFromClass.specific_fn.loc18_63.2: = specific_function constants.%MakeFromClass, @MakeFromClass(%N.loc18_19.1) [symbolic = %MakeFromClass.specific_fn.loc18_63.2 (constants.%MakeFromClass.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> out %return.param: @MakeFromClass.%iN.builtin (%iN.builtin.42f) { +// CHECK:STDOUT: fn() -> out %return.param: @MakeFromClass.%iN.builtin (%iN.builtin.11d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %MakeFromClass.ref: %MakeFromClass.type = name_ref MakeFromClass, file.%MakeFromClass.decl [concrete = constants.%MakeFromClass] -// CHECK:STDOUT: %N.ref.loc18_77: %OtherInt = name_ref N, %N.loc18_19.2 [symbolic = %N.loc18_19.1 (constants.%N.b1a)] -// CHECK:STDOUT: %MakeFromClass.specific_fn.loc18_63.1: = specific_function %MakeFromClass.ref, @MakeFromClass(constants.%N.b1a) [symbolic = %MakeFromClass.specific_fn.loc18_63.2 (constants.%MakeFromClass.specific_fn)] -// CHECK:STDOUT: %MakeFromClass.call: init @MakeFromClass.%iN.builtin (%iN.builtin.42f) = call %MakeFromClass.specific_fn.loc18_63.1() +// CHECK:STDOUT: %N.ref.loc18_77: %OtherInt = name_ref N, %N.loc18_19.2 [symbolic = %N.loc18_19.1 (constants.%N.93f)] +// CHECK:STDOUT: %MakeFromClass.specific_fn.loc18_63.1: = specific_function %MakeFromClass.ref, @MakeFromClass(constants.%N.93f) [symbolic = %MakeFromClass.specific_fn.loc18_63.2 (constants.%MakeFromClass.specific_fn)] +// CHECK:STDOUT: %MakeFromClass.call: init @MakeFromClass.%iN.builtin (%iN.builtin.11d) = call %MakeFromClass.specific_fn.loc18_63.1() // CHECK:STDOUT: return %MakeFromClass.call // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1066,25 +1066,25 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: specific @Make(constants.%N.7e8) { // CHECK:STDOUT: %N.loc9_10.1 => constants.%N.7e8 // CHECK:STDOUT: %ToLiteral.call.loc9_40.1 => constants.%ToLiteral.call -// CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.0a7 -// CHECK:STDOUT: %.loc9_41.1 => constants.%.519 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.355 +// CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.384 +// CHECK:STDOUT: %.loc9_41.1 => constants.%.220 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.86d // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.2c1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.b2b // CHECK:STDOUT: %Make.specific_fn.loc9_52.2 => constants.%Make.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MakeFromClass(constants.%N.b1a) { -// CHECK:STDOUT: %N.loc18_19.1 => constants.%N.b1a +// CHECK:STDOUT: specific @MakeFromClass(constants.%N.93f) { +// CHECK:STDOUT: %N.loc18_19.1 => constants.%N.93f // CHECK:STDOUT: %OtherInt.ToLiteral.bound.loc18_40.1 => constants.%OtherInt.ToLiteral.bound // CHECK:STDOUT: %OtherInt.ToLiteral.call.loc18_51.1 => constants.%OtherInt.ToLiteral.call -// CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.42f -// CHECK:STDOUT: %.loc18_52.1 => constants.%.32d -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.344 +// CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.11d +// CHECK:STDOUT: %.loc18_52.1 => constants.%.bae +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.558 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.725 +// CHECK:STDOUT: %require_complete => constants.%require_complete.11f // CHECK:STDOUT: %MakeFromClass.specific_fn.loc18_63.2 => constants.%MakeFromClass.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1104,33 +1104,33 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %ToLiteral.type: type = fn_type @ToLiteral [concrete] // CHECK:STDOUT: %ToLiteral: %ToLiteral.type = struct_value () [concrete] // CHECK:STDOUT: %ToLiteral.call: init Core.IntLiteral = call %ToLiteral(%N.7e8) [symbolic] -// CHECK:STDOUT: %iN.builtin.0a7: type = int_type signed, %ToLiteral.call [symbolic] -// CHECK:STDOUT: %pattern_type.355: type = pattern_type %iN.builtin.0a7 [symbolic] -// CHECK:STDOUT: %.519: Core.Form = init_form %iN.builtin.0a7 [symbolic] -// CHECK:STDOUT: %Make.specific_fn.779: = specific_function %Make, @Make(%N.7e8) [symbolic] -// CHECK:STDOUT: %require_complete.2c1: = require_complete_type %iN.builtin.0a7 [symbolic] +// CHECK:STDOUT: %iN.builtin.384: type = int_type signed, %ToLiteral.call [symbolic] +// CHECK:STDOUT: %pattern_type.86d: type = pattern_type %iN.builtin.384 [symbolic] +// CHECK:STDOUT: %.220: Core.Form = init_form %iN.builtin.384 [symbolic] +// CHECK:STDOUT: %Make.specific_fn.a18: = specific_function %Make, @Make(%N.7e8) [symbolic] +// CHECK:STDOUT: %require_complete.b2b: = require_complete_type %iN.builtin.384 [symbolic] // CHECK:STDOUT: %FromLiteral.type: type = fn_type @FromLiteral [concrete] // CHECK:STDOUT: %FromLiteral: %FromLiteral.type = struct_value () [concrete] // CHECK:STDOUT: %int_64.f82: %i32.builtin = int_value 64 [concrete] // CHECK:STDOUT: %.df2: Core.Form = init_form %i64.builtin [concrete] -// CHECK:STDOUT: %Make.specific_fn.df9: = specific_function %Make, @Make(%int_64.f82) [concrete] +// CHECK:STDOUT: %Make.specific_fn.bb3: = specific_function %Make, @Make(%int_64.f82) [concrete] // CHECK:STDOUT: %MakeFromClass.type: type = fn_type @MakeFromClass [concrete] // CHECK:STDOUT: %MakeFromClass: %MakeFromClass.type = struct_value () [concrete] // CHECK:STDOUT: %OtherInt: type = class_type @OtherInt [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %N.b1a: %OtherInt = symbolic_binding N, 0 [symbolic] +// CHECK:STDOUT: %N.93f: %OtherInt = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %OtherInt.ToLiteral.type: type = fn_type @OtherInt.ToLiteral [concrete] // CHECK:STDOUT: %OtherInt.ToLiteral: %OtherInt.ToLiteral.type = struct_value () [concrete] -// CHECK:STDOUT: %OtherInt.ToLiteral.bound.702: = bound_method %N.b1a, %OtherInt.ToLiteral [symbolic] -// CHECK:STDOUT: %OtherInt.ToLiteral.call: init Core.IntLiteral = call %OtherInt.ToLiteral.bound.702(%N.b1a) [symbolic] -// CHECK:STDOUT: %iN.builtin.42f: type = int_type signed, %OtherInt.ToLiteral.call [symbolic] -// CHECK:STDOUT: %pattern_type.344: type = pattern_type %iN.builtin.42f [symbolic] -// CHECK:STDOUT: %.32d: Core.Form = init_form %iN.builtin.42f [symbolic] -// CHECK:STDOUT: %MakeFromClass.specific_fn.e87: = specific_function %MakeFromClass, @MakeFromClass(%N.b1a) [symbolic] -// CHECK:STDOUT: %require_complete.725: = require_complete_type %iN.builtin.42f [symbolic] -// CHECK:STDOUT: %int_64.ba2: %OtherInt = int_value 64 [concrete] -// CHECK:STDOUT: %OtherInt.ToLiteral.bound.e38: = bound_method %int_64.ba2, %OtherInt.ToLiteral [concrete] -// CHECK:STDOUT: %MakeFromClass.specific_fn.cdc: = specific_function %MakeFromClass, @MakeFromClass(%int_64.ba2) [concrete] +// CHECK:STDOUT: %OtherInt.ToLiteral.bound.154: = bound_method %N.93f, %OtherInt.ToLiteral [symbolic] +// CHECK:STDOUT: %OtherInt.ToLiteral.call: init Core.IntLiteral = call %OtherInt.ToLiteral.bound.154(%N.93f) [symbolic] +// CHECK:STDOUT: %iN.builtin.11d: type = int_type signed, %OtherInt.ToLiteral.call [symbolic] +// CHECK:STDOUT: %pattern_type.558: type = pattern_type %iN.builtin.11d [symbolic] +// CHECK:STDOUT: %.bae: Core.Form = init_form %iN.builtin.11d [symbolic] +// CHECK:STDOUT: %MakeFromClass.specific_fn.171: = specific_function %MakeFromClass, @MakeFromClass(%N.93f) [symbolic] +// CHECK:STDOUT: %require_complete.11f: = require_complete_type %iN.builtin.11d [symbolic] +// CHECK:STDOUT: %int_64.420: %OtherInt = int_value 64 [concrete] +// CHECK:STDOUT: %OtherInt.ToLiteral.bound.4ee: = bound_method %int_64.420, %OtherInt.ToLiteral [concrete] +// CHECK:STDOUT: %MakeFromClass.specific_fn.3a7: = specific_function %MakeFromClass, @MakeFromClass(%int_64.420) [concrete] // CHECK:STDOUT: %complete_type.4a1: = complete_type_witness %i64.builtin [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1144,9 +1144,9 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %Main.MakeFromClass: %MakeFromClass.type = import_ref Main//convert_symbolic, MakeFromClass, loaded [concrete = constants.%MakeFromClass] // CHECK:STDOUT: %Main.import_ref.87d: %i32.builtin = import_ref Main//convert_symbolic, loc9_10, loaded [symbolic = @Make.%N (constants.%N.7e8)] // CHECK:STDOUT: %Main.import_ref.b03: = import_ref Main//convert_symbolic, loc14_1, loaded [concrete = constants.%complete_type.f8a] -// CHECK:STDOUT: %Main.import_ref.41f = import_ref Main//convert_symbolic, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.78c = import_ref Main//convert_symbolic, loc13_45, unloaded -// CHECK:STDOUT: %Main.import_ref.6e8: %OtherInt = import_ref Main//convert_symbolic, loc18_19, loaded [symbolic = @MakeFromClass.%N (constants.%N.b1a)] +// CHECK:STDOUT: %Main.import_ref.6e7 = import_ref Main//convert_symbolic, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.550 = import_ref Main//convert_symbolic, loc13_45, unloaded +// CHECK:STDOUT: %Main.import_ref.a4d: %OtherInt = import_ref Main//convert_symbolic, loc18_19, loaded [symbolic = @MakeFromClass.%N (constants.%N.93f)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1194,8 +1194,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.b03 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.41f -// CHECK:STDOUT: .ToLiteral = imports.%Main.import_ref.78c +// CHECK:STDOUT: .Self = imports.%Main.import_ref.6e7 +// CHECK:STDOUT: .ToLiteral = imports.%Main.import_ref.550 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Int = "int.make_type_signed" [from "convert_symbolic.carbon"]; @@ -1203,13 +1203,13 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: generic fn @Make(imports.%Main.import_ref.87d: %i32.builtin) [from "convert_symbolic.carbon"] { // CHECK:STDOUT: %N: %i32.builtin = symbolic_binding N, 0 [symbolic = %N (constants.%N.7e8)] // CHECK:STDOUT: %ToLiteral.call: init Core.IntLiteral = call constants.%ToLiteral(%N) [symbolic = %ToLiteral.call (constants.%ToLiteral.call)] -// CHECK:STDOUT: %iN.builtin: type = int_type signed, %ToLiteral.call [symbolic = %iN.builtin (constants.%iN.builtin.0a7)] -// CHECK:STDOUT: %.1: Core.Form = init_form %iN.builtin [symbolic = %.1 (constants.%.519)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %iN.builtin [symbolic = %pattern_type (constants.%pattern_type.355)] +// CHECK:STDOUT: %iN.builtin: type = int_type signed, %ToLiteral.call [symbolic = %iN.builtin (constants.%iN.builtin.384)] +// CHECK:STDOUT: %.1: Core.Form = init_form %iN.builtin [symbolic = %.1 (constants.%.220)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %iN.builtin [symbolic = %pattern_type (constants.%pattern_type.86d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %iN.builtin [symbolic = %require_complete (constants.%require_complete.2c1)] -// CHECK:STDOUT: %Make.specific_fn: = specific_function constants.%Make, @Make(%N) [symbolic = %Make.specific_fn (constants.%Make.specific_fn.779)] +// CHECK:STDOUT: %require_complete: = require_complete_type %iN.builtin [symbolic = %require_complete (constants.%require_complete.b2b)] +// CHECK:STDOUT: %Make.specific_fn: = specific_function constants.%Make, @Make(%N) [symbolic = %Make.specific_fn (constants.%Make.specific_fn.a18)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -1218,17 +1218,17 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: fn @FromLiteral = "int.convert_checked" [from "convert_symbolic.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @MakeFromClass(imports.%Main.import_ref.6e8: %OtherInt) [from "convert_symbolic.carbon"] { -// CHECK:STDOUT: %N: %OtherInt = symbolic_binding N, 0 [symbolic = %N (constants.%N.b1a)] -// CHECK:STDOUT: %OtherInt.ToLiteral.bound: = bound_method %N, constants.%OtherInt.ToLiteral [symbolic = %OtherInt.ToLiteral.bound (constants.%OtherInt.ToLiteral.bound.702)] +// CHECK:STDOUT: generic fn @MakeFromClass(imports.%Main.import_ref.a4d: %OtherInt) [from "convert_symbolic.carbon"] { +// CHECK:STDOUT: %N: %OtherInt = symbolic_binding N, 0 [symbolic = %N (constants.%N.93f)] +// CHECK:STDOUT: %OtherInt.ToLiteral.bound: = bound_method %N, constants.%OtherInt.ToLiteral [symbolic = %OtherInt.ToLiteral.bound (constants.%OtherInt.ToLiteral.bound.154)] // CHECK:STDOUT: %OtherInt.ToLiteral.call: init Core.IntLiteral = call %OtherInt.ToLiteral.bound(%N) [symbolic = %OtherInt.ToLiteral.call (constants.%OtherInt.ToLiteral.call)] -// CHECK:STDOUT: %iN.builtin: type = int_type signed, %OtherInt.ToLiteral.call [symbolic = %iN.builtin (constants.%iN.builtin.42f)] -// CHECK:STDOUT: %.1: Core.Form = init_form %iN.builtin [symbolic = %.1 (constants.%.32d)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %iN.builtin [symbolic = %pattern_type (constants.%pattern_type.344)] +// CHECK:STDOUT: %iN.builtin: type = int_type signed, %OtherInt.ToLiteral.call [symbolic = %iN.builtin (constants.%iN.builtin.11d)] +// CHECK:STDOUT: %.1: Core.Form = init_form %iN.builtin [symbolic = %.1 (constants.%.bae)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %iN.builtin [symbolic = %pattern_type (constants.%pattern_type.558)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %iN.builtin [symbolic = %require_complete (constants.%require_complete.725)] -// CHECK:STDOUT: %MakeFromClass.specific_fn: = specific_function constants.%MakeFromClass, @MakeFromClass(%N) [symbolic = %MakeFromClass.specific_fn (constants.%MakeFromClass.specific_fn.e87)] +// CHECK:STDOUT: %require_complete: = require_complete_type %iN.builtin [symbolic = %require_complete (constants.%require_complete.11f)] +// CHECK:STDOUT: %MakeFromClass.specific_fn: = specific_function constants.%MakeFromClass, @MakeFromClass(%N) [symbolic = %MakeFromClass.specific_fn (constants.%MakeFromClass.specific_fn.171)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -1243,7 +1243,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %FromLiteral.call.loc6: init %i32.builtin = call %FromLiteral.ref.loc6(%int_64.loc6) [concrete = constants.%int_64.f82] // CHECK:STDOUT: %.loc6_38.1: %i32.builtin = value_of_initializer %FromLiteral.call.loc6 [concrete = constants.%int_64.f82] // CHECK:STDOUT: %.loc6_38.2: %i32.builtin = converted %FromLiteral.call.loc6, %.loc6_38.1 [concrete = constants.%int_64.f82] -// CHECK:STDOUT: %Make.specific_fn: = specific_function %Make.ref, @Make(constants.%int_64.f82) [concrete = constants.%Make.specific_fn.df9] +// CHECK:STDOUT: %Make.specific_fn: = specific_function %Make.ref, @Make(constants.%int_64.f82) [concrete = constants.%Make.specific_fn.bb3] // CHECK:STDOUT: %Make.call: init %i64.builtin = call %Make.specific_fn() // CHECK:STDOUT: assign file.%m.var, %Make.call // CHECK:STDOUT: %MakeFromClass.ref: %MakeFromClass.type = name_ref MakeFromClass, imports.%Main.MakeFromClass [concrete = constants.%MakeFromClass] @@ -1251,11 +1251,11 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %int_64.loc7: Core.IntLiteral = int_value 64 [concrete = constants.%int_64.fab] // CHECK:STDOUT: %FromLiteral.call.loc7: init %i32.builtin = call %FromLiteral.ref.loc7(%int_64.loc7) [concrete = constants.%int_64.f82] // CHECK:STDOUT: %OtherInt.ref: type = name_ref OtherInt, imports.%Main.OtherInt [concrete = constants.%OtherInt] -// CHECK:STDOUT: %.loc7_48.1: init %OtherInt = as_compatible %FromLiteral.call.loc7 [concrete = constants.%int_64.ba2] -// CHECK:STDOUT: %.loc7_48.2: init %OtherInt = converted %FromLiteral.call.loc7, %.loc7_48.1 [concrete = constants.%int_64.ba2] -// CHECK:STDOUT: %.loc7_59.1: %OtherInt = value_of_initializer %.loc7_48.2 [concrete = constants.%int_64.ba2] -// CHECK:STDOUT: %.loc7_59.2: %OtherInt = converted %.loc7_48.2, %.loc7_59.1 [concrete = constants.%int_64.ba2] -// CHECK:STDOUT: %MakeFromClass.specific_fn: = specific_function %MakeFromClass.ref, @MakeFromClass(constants.%int_64.ba2) [concrete = constants.%MakeFromClass.specific_fn.cdc] +// CHECK:STDOUT: %.loc7_48.1: init %OtherInt = as_compatible %FromLiteral.call.loc7 [concrete = constants.%int_64.420] +// CHECK:STDOUT: %.loc7_48.2: init %OtherInt = converted %FromLiteral.call.loc7, %.loc7_48.1 [concrete = constants.%int_64.420] +// CHECK:STDOUT: %.loc7_59.1: %OtherInt = value_of_initializer %.loc7_48.2 [concrete = constants.%int_64.420] +// CHECK:STDOUT: %.loc7_59.2: %OtherInt = converted %.loc7_48.2, %.loc7_59.1 [concrete = constants.%int_64.420] +// CHECK:STDOUT: %MakeFromClass.specific_fn: = specific_function %MakeFromClass.ref, @MakeFromClass(constants.%int_64.420) [concrete = constants.%MakeFromClass.specific_fn.3a7] // CHECK:STDOUT: %MakeFromClass.call: init %i64.builtin = call %MakeFromClass.specific_fn() // CHECK:STDOUT: assign file.%n.var, %MakeFromClass.call // CHECK:STDOUT: return @@ -1264,13 +1264,13 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: specific @Make(constants.%N.7e8) { // CHECK:STDOUT: %N => constants.%N.7e8 // CHECK:STDOUT: %ToLiteral.call => constants.%ToLiteral.call -// CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.0a7 -// CHECK:STDOUT: %.1 => constants.%.519 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.355 +// CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.384 +// CHECK:STDOUT: %.1 => constants.%.220 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.86d // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.2c1 -// CHECK:STDOUT: %Make.specific_fn => constants.%Make.specific_fn.779 +// CHECK:STDOUT: %require_complete => constants.%require_complete.b2b +// CHECK:STDOUT: %Make.specific_fn => constants.%Make.specific_fn.a18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Make(constants.%int_64.f82) { @@ -1282,25 +1282,25 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.4a1 -// CHECK:STDOUT: %Make.specific_fn => constants.%Make.specific_fn.df9 +// CHECK:STDOUT: %Make.specific_fn => constants.%Make.specific_fn.bb3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MakeFromClass(constants.%N.b1a) { -// CHECK:STDOUT: %N => constants.%N.b1a -// CHECK:STDOUT: %OtherInt.ToLiteral.bound => constants.%OtherInt.ToLiteral.bound.702 +// CHECK:STDOUT: specific @MakeFromClass(constants.%N.93f) { +// CHECK:STDOUT: %N => constants.%N.93f +// CHECK:STDOUT: %OtherInt.ToLiteral.bound => constants.%OtherInt.ToLiteral.bound.154 // CHECK:STDOUT: %OtherInt.ToLiteral.call => constants.%OtherInt.ToLiteral.call -// CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.42f -// CHECK:STDOUT: %.1 => constants.%.32d -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.344 +// CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.11d +// CHECK:STDOUT: %.1 => constants.%.bae +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.558 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.725 -// CHECK:STDOUT: %MakeFromClass.specific_fn => constants.%MakeFromClass.specific_fn.e87 +// CHECK:STDOUT: %require_complete => constants.%require_complete.11f +// CHECK:STDOUT: %MakeFromClass.specific_fn => constants.%MakeFromClass.specific_fn.171 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MakeFromClass(constants.%int_64.ba2) { -// CHECK:STDOUT: %N => constants.%int_64.ba2 -// CHECK:STDOUT: %OtherInt.ToLiteral.bound => constants.%OtherInt.ToLiteral.bound.e38 +// CHECK:STDOUT: specific @MakeFromClass(constants.%int_64.420) { +// CHECK:STDOUT: %N => constants.%int_64.420 +// CHECK:STDOUT: %OtherInt.ToLiteral.bound => constants.%OtherInt.ToLiteral.bound.4ee // CHECK:STDOUT: %OtherInt.ToLiteral.call => constants.%int_64.fab // CHECK:STDOUT: %iN.builtin => constants.%i64.builtin // CHECK:STDOUT: %.1 => constants.%.df2 @@ -1308,6 +1308,6 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.4a1 -// CHECK:STDOUT: %MakeFromClass.specific_fn => constants.%MakeFromClass.specific_fn.cdc +// CHECK:STDOUT: %MakeFromClass.specific_fn => constants.%MakeFromClass.specific_fn.3a7 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/import_compound.carbon b/toolchain/check/testdata/impl/import_compound.carbon index 98ae2090e06e..5dd835771af6 100644 --- a/toolchain/check/testdata/impl/import_compound.carbon +++ b/toolchain/check/testdata/impl/import_compound.carbon @@ -102,35 +102,35 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %NonInstance.type: type = facet_type <@NonInstance> [concrete] -// CHECK:STDOUT: %Self.3a2: %NonInstance.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %NonInstance.WithSelf.F.type.c82: type = fn_type @NonInstance.WithSelf.F, @NonInstance.WithSelf(%Self.3a2) [symbolic] +// CHECK:STDOUT: %Self.a14: %NonInstance.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %NonInstance.WithSelf.F.type.0be: type = fn_type @NonInstance.WithSelf.F, @NonInstance.WithSelf(%Self.a14) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %NonInstance.WithSelf.F.785: %NonInstance.WithSelf.F.type.c82 = struct_value () [symbolic] +// CHECK:STDOUT: %NonInstance.WithSelf.F.0dc: %NonInstance.WithSelf.F.type.0be = struct_value () [symbolic] // CHECK:STDOUT: %NonInstance.assoc_type: type = assoc_entity_type @NonInstance [concrete] -// CHECK:STDOUT: %assoc0.c6b: %NonInstance.assoc_type = assoc_entity element0, @NonInstance.WithSelf.%NonInstance.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %assoc0.e8a: %NonInstance.assoc_type = assoc_entity element0, @NonInstance.WithSelf.%NonInstance.WithSelf.F.decl [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct_type.i: type = struct_type {.i: %empty_tuple.type} [concrete] // CHECK:STDOUT: %NonInstance.impl_witness: = impl_witness @struct_type.i.as.NonInstance.impl.%NonInstance.impl_witness_table [concrete] // CHECK:STDOUT: %struct_type.i.as.NonInstance.impl.F.type: type = fn_type @struct_type.i.as.NonInstance.impl.F [concrete] // CHECK:STDOUT: %struct_type.i.as.NonInstance.impl.F: %struct_type.i.as.NonInstance.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: %NonInstance.facet: %NonInstance.type = facet_value %struct_type.i, (%NonInstance.impl_witness) [concrete] -// CHECK:STDOUT: %NonInstance.WithSelf.F.type.574: type = fn_type @NonInstance.WithSelf.F, @NonInstance.WithSelf(%NonInstance.facet) [concrete] -// CHECK:STDOUT: %NonInstance.WithSelf.F.f02: %NonInstance.WithSelf.F.type.574 = struct_value () [concrete] +// CHECK:STDOUT: %NonInstance.WithSelf.F.type.0ea: type = fn_type @NonInstance.WithSelf.F, @NonInstance.WithSelf(%NonInstance.facet) [concrete] +// CHECK:STDOUT: %NonInstance.WithSelf.F.c3f: %NonInstance.WithSelf.F.type.0ea = struct_value () [concrete] // CHECK:STDOUT: %Instance.type: type = facet_type <@Instance> [concrete] -// CHECK:STDOUT: %Self.a48: %Instance.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.a48 [symbolic] -// CHECK:STDOUT: %pattern_type.c6c: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %Instance.WithSelf.G.type.5b0: type = fn_type @Instance.WithSelf.G, @Instance.WithSelf(%Self.a48) [symbolic] -// CHECK:STDOUT: %Instance.WithSelf.G.5bd: %Instance.WithSelf.G.type.5b0 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.bb5: %Instance.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.bb5 [symbolic] +// CHECK:STDOUT: %pattern_type.362: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Instance.WithSelf.G.type.f64: type = fn_type @Instance.WithSelf.G, @Instance.WithSelf(%Self.bb5) [symbolic] +// CHECK:STDOUT: %Instance.WithSelf.G.395: %Instance.WithSelf.G.type.f64 = struct_value () [symbolic] // CHECK:STDOUT: %Instance.assoc_type: type = assoc_entity_type @Instance [concrete] -// CHECK:STDOUT: %assoc0.f17: %Instance.assoc_type = assoc_entity element0, @Instance.WithSelf.%Instance.WithSelf.G.decl [concrete] +// CHECK:STDOUT: %assoc0.94f: %Instance.assoc_type = assoc_entity element0, @Instance.WithSelf.%Instance.WithSelf.G.decl [concrete] // CHECK:STDOUT: %Instance.impl_witness: = impl_witness @struct_type.i.as.Instance.impl.%Instance.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.9b2: type = pattern_type %struct_type.i [concrete] // CHECK:STDOUT: %struct_type.i.as.Instance.impl.G.type: type = fn_type @struct_type.i.as.Instance.impl.G [concrete] // CHECK:STDOUT: %struct_type.i.as.Instance.impl.G: %struct_type.i.as.Instance.impl.G.type = struct_value () [concrete] // CHECK:STDOUT: %Instance.facet: %Instance.type = facet_value %struct_type.i, (%Instance.impl_witness) [concrete] -// CHECK:STDOUT: %Instance.WithSelf.G.type.d34: type = fn_type @Instance.WithSelf.G, @Instance.WithSelf(%Instance.facet) [concrete] -// CHECK:STDOUT: %Instance.WithSelf.G.5d3: %Instance.WithSelf.G.type.d34 = struct_value () [concrete] +// CHECK:STDOUT: %Instance.WithSelf.G.type.9b8: type = fn_type @Instance.WithSelf.G, @Instance.WithSelf(%Instance.facet) [concrete] +// CHECK:STDOUT: %Instance.WithSelf.G.c6f: %Instance.WithSelf.G.type.9b8 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -164,12 +164,12 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @NonInstance { -// CHECK:STDOUT: %Self: %NonInstance.type = symbolic_binding Self, 0 [symbolic = constants.%Self.3a2] +// CHECK:STDOUT: %Self: %NonInstance.type = symbolic_binding Self, 0 [symbolic = constants.%Self.a14] // CHECK:STDOUT: %NonInstance.WithSelf.decl = interface_with_self_decl @NonInstance [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %NonInstance.WithSelf.F.decl: @NonInstance.WithSelf.%NonInstance.WithSelf.F.type (%NonInstance.WithSelf.F.type.c82) = fn_decl @NonInstance.WithSelf.F [symbolic = @NonInstance.WithSelf.%NonInstance.WithSelf.F (constants.%NonInstance.WithSelf.F.785)] {} {} -// CHECK:STDOUT: %assoc0: %NonInstance.assoc_type = assoc_entity element0, %NonInstance.WithSelf.F.decl [concrete = constants.%assoc0.c6b] +// CHECK:STDOUT: %NonInstance.WithSelf.F.decl: @NonInstance.WithSelf.%NonInstance.WithSelf.F.type (%NonInstance.WithSelf.F.type.0be) = fn_decl @NonInstance.WithSelf.F [symbolic = @NonInstance.WithSelf.%NonInstance.WithSelf.F (constants.%NonInstance.WithSelf.F.0dc)] {} {} +// CHECK:STDOUT: %assoc0: %NonInstance.assoc_type = assoc_entity element0, %NonInstance.WithSelf.F.decl [concrete = constants.%assoc0.e8a] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -180,23 +180,23 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Instance { -// CHECK:STDOUT: %Self: %Instance.type = symbolic_binding Self, 0 [symbolic = constants.%Self.a48] +// CHECK:STDOUT: %Self: %Instance.type = symbolic_binding Self, 0 [symbolic = constants.%Self.bb5] // CHECK:STDOUT: %Instance.WithSelf.decl = interface_with_self_decl @Instance [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Instance.WithSelf.G.decl: @Instance.WithSelf.%Instance.WithSelf.G.type (%Instance.WithSelf.G.type.5b0) = fn_decl @Instance.WithSelf.G [symbolic = @Instance.WithSelf.%Instance.WithSelf.G (constants.%Instance.WithSelf.G.5bd)] { -// CHECK:STDOUT: %self.param_patt: @Instance.WithSelf.G.%pattern_type (%pattern_type.c6c) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Instance.WithSelf.G.%pattern_type (%pattern_type.c6c) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %Instance.WithSelf.G.decl: @Instance.WithSelf.%Instance.WithSelf.G.type (%Instance.WithSelf.G.type.f64) = fn_decl @Instance.WithSelf.G [symbolic = @Instance.WithSelf.%Instance.WithSelf.G (constants.%Instance.WithSelf.G.395)] { +// CHECK:STDOUT: %self.param_patt: @Instance.WithSelf.G.%pattern_type (%pattern_type.362) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Instance.WithSelf.G.%pattern_type (%pattern_type.362) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Instance.WithSelf.G.%Self.as_type.loc12_14.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc12_14.1: type = splice_block %.loc12_14.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %Self.ref: %Instance.type = name_ref Self, @Instance.%Self [symbolic = %Self (constants.%Self.a48)] +// CHECK:STDOUT: %Self.ref: %Instance.type = name_ref Self, @Instance.%Self [symbolic = %Self (constants.%Self.bb5)] // CHECK:STDOUT: %Self.as_type.loc12_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc12_14.2: type = converted %Self.ref, %Self.as_type.loc12_14.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: @Instance.WithSelf.G.%Self.as_type.loc12_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, %Instance.WithSelf.G.decl [concrete = constants.%assoc0.f17] +// CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, %Instance.WithSelf.G.decl [concrete = constants.%assoc0.94f] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -245,9 +245,9 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Instance.WithSelf.G(@Instance.%Self: %Instance.type) { -// CHECK:STDOUT: %Self: %Instance.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.a48)] +// CHECK:STDOUT: %Self: %Instance.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.bb5)] // CHECK:STDOUT: %Self.as_type.loc12_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc12_14.1 [symbolic = %pattern_type (constants.%pattern_type.c6c)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc12_14.1 [symbolic = %pattern_type (constants.%pattern_type.362)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @Instance.WithSelf.G.%Self.as_type.loc12_14.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -257,42 +257,42 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @NonInstance.WithSelf(constants.%Self.3a2) { +// CHECK:STDOUT: specific @NonInstance.WithSelf(constants.%Self.a14) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.3a2 -// CHECK:STDOUT: %NonInstance.WithSelf.F.type => constants.%NonInstance.WithSelf.F.type.c82 -// CHECK:STDOUT: %NonInstance.WithSelf.F => constants.%NonInstance.WithSelf.F.785 +// CHECK:STDOUT: %Self => constants.%Self.a14 +// CHECK:STDOUT: %NonInstance.WithSelf.F.type => constants.%NonInstance.WithSelf.F.type.0be +// CHECK:STDOUT: %NonInstance.WithSelf.F => constants.%NonInstance.WithSelf.F.0dc // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @NonInstance.WithSelf.F(constants.%Self.3a2) {} +// CHECK:STDOUT: specific @NonInstance.WithSelf.F(constants.%Self.a14) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @NonInstance.WithSelf(constants.%NonInstance.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%NonInstance.facet -// CHECK:STDOUT: %NonInstance.WithSelf.F.type => constants.%NonInstance.WithSelf.F.type.574 -// CHECK:STDOUT: %NonInstance.WithSelf.F => constants.%NonInstance.WithSelf.F.f02 +// CHECK:STDOUT: %NonInstance.WithSelf.F.type => constants.%NonInstance.WithSelf.F.type.0ea +// CHECK:STDOUT: %NonInstance.WithSelf.F => constants.%NonInstance.WithSelf.F.c3f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @NonInstance.WithSelf.F(constants.%NonInstance.facet) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Instance.WithSelf(constants.%Self.a48) { +// CHECK:STDOUT: specific @Instance.WithSelf(constants.%Self.bb5) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.a48 -// CHECK:STDOUT: %Instance.WithSelf.G.type => constants.%Instance.WithSelf.G.type.5b0 -// CHECK:STDOUT: %Instance.WithSelf.G => constants.%Instance.WithSelf.G.5bd +// CHECK:STDOUT: %Self => constants.%Self.bb5 +// CHECK:STDOUT: %Instance.WithSelf.G.type => constants.%Instance.WithSelf.G.type.f64 +// CHECK:STDOUT: %Instance.WithSelf.G => constants.%Instance.WithSelf.G.395 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Instance.WithSelf.G(constants.%Self.a48) { -// CHECK:STDOUT: %Self => constants.%Self.a48 +// CHECK:STDOUT: specific @Instance.WithSelf.G(constants.%Self.bb5) { +// CHECK:STDOUT: %Self => constants.%Self.bb5 // CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c6c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.362 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance.WithSelf(constants.%Instance.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Instance.facet -// CHECK:STDOUT: %Instance.WithSelf.G.type => constants.%Instance.WithSelf.G.type.d34 -// CHECK:STDOUT: %Instance.WithSelf.G => constants.%Instance.WithSelf.G.5d3 +// CHECK:STDOUT: %Instance.WithSelf.G.type => constants.%Instance.WithSelf.G.type.9b8 +// CHECK:STDOUT: %Instance.WithSelf.G => constants.%Instance.WithSelf.G.c6f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance.WithSelf.G(constants.%Instance.facet) { @@ -311,15 +311,15 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %struct_type.i: type = struct_type {.i: %empty_tuple.type} [concrete] // CHECK:STDOUT: %NonInstance.type: type = facet_type <@NonInstance> [concrete] // CHECK:STDOUT: %Self: %NonInstance.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %NonInstance.WithSelf.F.type.c5d: type = fn_type @NonInstance.WithSelf.F, @NonInstance.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %NonInstance.WithSelf.F.7e4: %NonInstance.WithSelf.F.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %NonInstance.WithSelf.F.type.df3: type = fn_type @NonInstance.WithSelf.F, @NonInstance.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %NonInstance.WithSelf.F.62f: %NonInstance.WithSelf.F.type.df3 = struct_value () [symbolic] // CHECK:STDOUT: %NonInstance.assoc_type: type = assoc_entity_type @NonInstance [concrete] -// CHECK:STDOUT: %assoc0: %NonInstance.assoc_type = assoc_entity element0, imports.%Main.import_ref.a1d [concrete] +// CHECK:STDOUT: %assoc0: %NonInstance.assoc_type = assoc_entity element0, imports.%Main.import_ref.255 [concrete] // CHECK:STDOUT: %NonInstance.impl_witness: = impl_witness imports.%NonInstance.impl_witness_table [concrete] // CHECK:STDOUT: %NonInstance.facet: %NonInstance.type = facet_value %struct_type.i, (%NonInstance.impl_witness) [concrete] -// CHECK:STDOUT: %NonInstance.WithSelf.F.type.1b0: type = fn_type @NonInstance.WithSelf.F, @NonInstance.WithSelf(%NonInstance.facet) [concrete] -// CHECK:STDOUT: %NonInstance.WithSelf.F.25c: %NonInstance.WithSelf.F.type.1b0 = struct_value () [concrete] -// CHECK:STDOUT: %.fb3: type = fn_type_with_self_type %NonInstance.WithSelf.F.type.1b0, %NonInstance.facet [concrete] +// CHECK:STDOUT: %NonInstance.WithSelf.F.type.f88: type = fn_type @NonInstance.WithSelf.F, @NonInstance.WithSelf(%NonInstance.facet) [concrete] +// CHECK:STDOUT: %NonInstance.WithSelf.F.b35: %NonInstance.WithSelf.F.type.f88 = struct_value () [concrete] +// CHECK:STDOUT: %.a34: type = fn_type_with_self_type %NonInstance.WithSelf.F.type.f88, %NonInstance.facet [concrete] // CHECK:STDOUT: %struct_type.i.as.NonInstance.impl.F.type: type = fn_type @struct_type.i.as.NonInstance.impl.F [concrete] // CHECK:STDOUT: %struct_type.i.as.NonInstance.impl.F: %struct_type.i.as.NonInstance.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -331,16 +331,16 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.500: %NonInstance.assoc_type = import_ref Main//lib, loc4_9, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.a5f: %NonInstance.assoc_type = import_ref Main//lib, loc4_9, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.F = import_ref Main//lib, F, unloaded -// CHECK:STDOUT: %Main.import_ref.8de868.2: %NonInstance.type = import_ref Main//lib, loc3_23, loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %Main.import_ref.21f = import_ref Main//lib, loc3_23, unloaded -// CHECK:STDOUT: %Main.import_ref.a1d: @NonInstance.WithSelf.%NonInstance.WithSelf.F.type (%NonInstance.WithSelf.F.type.c5d) = import_ref Main//lib, loc4_9, loaded [symbolic = @NonInstance.WithSelf.%NonInstance.WithSelf.F (constants.%NonInstance.WithSelf.F.7e4)] -// CHECK:STDOUT: %Main.import_ref.a38: = import_ref Main//lib, loc7_30, loaded [concrete = constants.%NonInstance.impl_witness] +// CHECK:STDOUT: %Main.import_ref.9ad11e.2: %NonInstance.type = import_ref Main//lib, loc3_23, loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.61e = import_ref Main//lib, loc3_23, unloaded +// CHECK:STDOUT: %Main.import_ref.255: @NonInstance.WithSelf.%NonInstance.WithSelf.F.type (%NonInstance.WithSelf.F.type.df3) = import_ref Main//lib, loc4_9, loaded [symbolic = @NonInstance.WithSelf.%NonInstance.WithSelf.F (constants.%NonInstance.WithSelf.F.62f)] +// CHECK:STDOUT: %Main.import_ref.80b: = import_ref Main//lib, loc7_30, loaded [concrete = constants.%NonInstance.impl_witness] // CHECK:STDOUT: %Main.import_ref.c9a: type = import_ref Main//lib, loc7_13, loaded [concrete = constants.%struct_type.i] -// CHECK:STDOUT: %Main.import_ref.06e: type = import_ref Main//lib, loc7_18, loaded [concrete = constants.%NonInstance.type] -// CHECK:STDOUT: %Main.import_ref.628: %struct_type.i.as.NonInstance.impl.F.type = import_ref Main//lib, loc8_10, loaded [concrete = constants.%struct_type.i.as.NonInstance.impl.F] -// CHECK:STDOUT: %NonInstance.impl_witness_table = impl_witness_table (%Main.import_ref.628), @struct_type.i.as.NonInstance.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.282: type = import_ref Main//lib, loc7_18, loaded [concrete = constants.%NonInstance.type] +// CHECK:STDOUT: %Main.import_ref.0d0: %struct_type.i.as.NonInstance.impl.F.type = import_ref Main//lib, loc8_10, loaded [concrete = constants.%struct_type.i.as.NonInstance.impl.F] +// CHECK:STDOUT: %NonInstance.impl_witness_table = impl_witness_table (%Main.import_ref.0d0), @struct_type.i.as.NonInstance.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -357,16 +357,16 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: interface @NonInstance [from "lib.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.21f -// CHECK:STDOUT: .F = imports.%Main.import_ref.500 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.61e +// CHECK:STDOUT: .F = imports.%Main.import_ref.a5f // CHECK:STDOUT: witness = (imports.%Main.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @struct_type.i.as.NonInstance.impl: imports.%Main.import_ref.c9a as imports.%Main.import_ref.06e [from "lib.carbon"] { +// CHECK:STDOUT: impl @struct_type.i.as.NonInstance.impl: imports.%Main.import_ref.c9a as imports.%Main.import_ref.282 [from "lib.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Main.import_ref.a38 +// CHECK:STDOUT: witness = imports.%Main.import_ref.80b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @NonInstanceCallImport() { @@ -375,15 +375,15 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %.loc6_9.2: type = converted %.loc6_9.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %struct_type.i: type = struct_type {.i: %empty_tuple.type} [concrete = constants.%struct_type.i] // CHECK:STDOUT: %NonInstance.ref: type = name_ref NonInstance, imports.%Main.NonInstance [concrete = constants.%NonInstance.type] -// CHECK:STDOUT: %F.ref: %NonInstance.assoc_type = name_ref F, imports.%Main.import_ref.500 [concrete = constants.%assoc0] +// CHECK:STDOUT: %F.ref: %NonInstance.assoc_type = name_ref F, imports.%Main.import_ref.a5f [concrete = constants.%assoc0] // CHECK:STDOUT: %NonInstance.facet: %NonInstance.type = facet_value %struct_type.i, (constants.%NonInstance.impl_witness) [concrete = constants.%NonInstance.facet] // CHECK:STDOUT: %.loc6_11: %NonInstance.type = converted %struct_type.i, %NonInstance.facet [concrete = constants.%NonInstance.facet] -// CHECK:STDOUT: %impl.elem0: %.fb3 = impl_witness_access constants.%NonInstance.impl_witness, element0 [concrete = constants.%struct_type.i.as.NonInstance.impl.F] +// CHECK:STDOUT: %impl.elem0: %.a34 = impl_witness_access constants.%NonInstance.impl_witness, element0 [concrete = constants.%struct_type.i.as.NonInstance.impl.F] // CHECK:STDOUT: %struct_type.i.as.NonInstance.impl.F.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @NonInstance.WithSelf.F(imports.%Main.import_ref.8de868.2: %NonInstance.type) [from "lib.carbon"] { +// CHECK:STDOUT: generic fn @NonInstance.WithSelf.F(imports.%Main.import_ref.9ad11e.2: %NonInstance.type) [from "lib.carbon"] { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: @@ -392,8 +392,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: specific @NonInstance.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %NonInstance.WithSelf.F.type => constants.%NonInstance.WithSelf.F.type.c5d -// CHECK:STDOUT: %NonInstance.WithSelf.F => constants.%NonInstance.WithSelf.F.7e4 +// CHECK:STDOUT: %NonInstance.WithSelf.F.type => constants.%NonInstance.WithSelf.F.type.df3 +// CHECK:STDOUT: %NonInstance.WithSelf.F => constants.%NonInstance.WithSelf.F.62f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @NonInstance.WithSelf.F(constants.%Self) {} @@ -401,8 +401,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: specific @NonInstance.WithSelf(constants.%NonInstance.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%NonInstance.facet -// CHECK:STDOUT: %NonInstance.WithSelf.F.type => constants.%NonInstance.WithSelf.F.type.1b0 -// CHECK:STDOUT: %NonInstance.WithSelf.F => constants.%NonInstance.WithSelf.F.25c +// CHECK:STDOUT: %NonInstance.WithSelf.F.type => constants.%NonInstance.WithSelf.F.type.f88 +// CHECK:STDOUT: %NonInstance.WithSelf.F => constants.%NonInstance.WithSelf.F.b35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_import_non-instance.carbon @@ -415,13 +415,13 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %NonInstanceCallImportFail.type: type = fn_type @NonInstanceCallImportFail [concrete] // CHECK:STDOUT: %NonInstanceCallImportFail: %NonInstanceCallImportFail.type = struct_value () [concrete] // CHECK:STDOUT: %NonInstance.type: type = facet_type <@NonInstance> [concrete] -// CHECK:STDOUT: %Self.a43: %NonInstance.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %NonInstance.WithSelf.F.type: type = fn_type @NonInstance.WithSelf.F, @NonInstance.WithSelf(%Self.a43) [symbolic] +// CHECK:STDOUT: %Self.002: %NonInstance.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %NonInstance.WithSelf.F.type: type = fn_type @NonInstance.WithSelf.F, @NonInstance.WithSelf(%Self.002) [symbolic] // CHECK:STDOUT: %NonInstance.WithSelf.F: %NonInstance.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %NonInstance.assoc_type: type = assoc_entity_type @NonInstance [concrete] -// CHECK:STDOUT: %assoc0.081: %NonInstance.assoc_type = assoc_entity element0, imports.%Main.import_ref.a1d [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %assoc0.8c6: %NonInstance.assoc_type = assoc_entity element0, imports.%Main.import_ref.255 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -432,12 +432,12 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.500: %NonInstance.assoc_type = import_ref Main//lib, loc4_9, loaded [concrete = constants.%assoc0.081] +// CHECK:STDOUT: %Main.import_ref.a5f: %NonInstance.assoc_type = import_ref Main//lib, loc4_9, loaded [concrete = constants.%assoc0.8c6] // CHECK:STDOUT: %Main.F = import_ref Main//lib, F, unloaded -// CHECK:STDOUT: %Main.import_ref.8de868.2: %NonInstance.type = import_ref Main//lib, loc3_23, loaded [symbolic = constants.%Self.a43] -// CHECK:STDOUT: %Main.import_ref.21f = import_ref Main//lib, loc3_23, unloaded -// CHECK:STDOUT: %Main.import_ref.a1d: @NonInstance.WithSelf.%NonInstance.WithSelf.F.type (%NonInstance.WithSelf.F.type) = import_ref Main//lib, loc4_9, loaded [symbolic = @NonInstance.WithSelf.%NonInstance.WithSelf.F (constants.%NonInstance.WithSelf.F)] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Main.import_ref.9ad11e.2: %NonInstance.type = import_ref Main//lib, loc3_23, loaded [symbolic = constants.%Self.002] +// CHECK:STDOUT: %Main.import_ref.61e = import_ref Main//lib, loc3_23, unloaded +// CHECK:STDOUT: %Main.import_ref.255: @NonInstance.WithSelf.%NonInstance.WithSelf.F.type (%NonInstance.WithSelf.F.type) = import_ref Main//lib, loc4_9, loaded [symbolic = @NonInstance.WithSelf.%NonInstance.WithSelf.F (constants.%NonInstance.WithSelf.F)] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -465,8 +465,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: interface @NonInstance [from "lib.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.21f -// CHECK:STDOUT: .F = imports.%Main.import_ref.500 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.61e +// CHECK:STDOUT: .F = imports.%Main.import_ref.a5f // CHECK:STDOUT: witness = (imports.%Main.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -476,23 +476,23 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: %struct_type.i = name_ref n, %n // CHECK:STDOUT: %NonInstance.ref: type = name_ref NonInstance, imports.%Main.NonInstance [concrete = constants.%NonInstance.type] -// CHECK:STDOUT: %F.ref: %NonInstance.assoc_type = name_ref F, imports.%Main.import_ref.500 [concrete = constants.%assoc0.081] +// CHECK:STDOUT: %F.ref: %NonInstance.assoc_type = name_ref F, imports.%Main.import_ref.a5f [concrete = constants.%assoc0.8c6] // CHECK:STDOUT: %.loc13: %NonInstance.type = converted %n.ref, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @NonInstance.WithSelf.F(imports.%Main.import_ref.8de868.2: %NonInstance.type) [from "lib.carbon"] { +// CHECK:STDOUT: generic fn @NonInstance.WithSelf.F(imports.%Main.import_ref.9ad11e.2: %NonInstance.type) [from "lib.carbon"] { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @NonInstance.WithSelf(constants.%Self.a43) { +// CHECK:STDOUT: specific @NonInstance.WithSelf(constants.%Self.002) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.a43 +// CHECK:STDOUT: %Self => constants.%Self.002 // CHECK:STDOUT: %NonInstance.WithSelf.F.type => constants.%NonInstance.WithSelf.F.type // CHECK:STDOUT: %NonInstance.WithSelf.F => constants.%NonInstance.WithSelf.F // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @NonInstance.WithSelf.F(constants.%Self.a43) {} +// CHECK:STDOUT: specific @NonInstance.WithSelf.F(constants.%Self.002) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_import_non-instance_indirect.carbon // CHECK:STDOUT: @@ -505,13 +505,13 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %NonInstanceCallIndirectImport.type: type = fn_type @NonInstanceCallIndirectImport [concrete] // CHECK:STDOUT: %NonInstanceCallIndirectImport: %NonInstanceCallIndirectImport.type = struct_value () [concrete] // CHECK:STDOUT: %NonInstance.type: type = facet_type <@NonInstance> [concrete] -// CHECK:STDOUT: %Self.a43: %NonInstance.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %NonInstance.WithSelf.F.type: type = fn_type @NonInstance.WithSelf.F, @NonInstance.WithSelf(%Self.a43) [symbolic] +// CHECK:STDOUT: %Self.002: %NonInstance.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %NonInstance.WithSelf.F.type: type = fn_type @NonInstance.WithSelf.F, @NonInstance.WithSelf(%Self.002) [symbolic] // CHECK:STDOUT: %NonInstance.WithSelf.F: %NonInstance.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %NonInstance.assoc_type: type = assoc_entity_type @NonInstance [concrete] -// CHECK:STDOUT: %assoc0.081: %NonInstance.assoc_type = assoc_entity element0, imports.%Main.import_ref.a1d [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %assoc0.8c6: %NonInstance.assoc_type = assoc_entity element0, imports.%Main.import_ref.255 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -522,12 +522,12 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.500: %NonInstance.assoc_type = import_ref Main//lib, loc4_9, loaded [concrete = constants.%assoc0.081] +// CHECK:STDOUT: %Main.import_ref.a5f: %NonInstance.assoc_type = import_ref Main//lib, loc4_9, loaded [concrete = constants.%assoc0.8c6] // CHECK:STDOUT: %Main.F = import_ref Main//lib, F, unloaded -// CHECK:STDOUT: %Main.import_ref.8de868.2: %NonInstance.type = import_ref Main//lib, loc3_23, loaded [symbolic = constants.%Self.a43] -// CHECK:STDOUT: %Main.import_ref.21f = import_ref Main//lib, loc3_23, unloaded -// CHECK:STDOUT: %Main.import_ref.a1d: @NonInstance.WithSelf.%NonInstance.WithSelf.F.type (%NonInstance.WithSelf.F.type) = import_ref Main//lib, loc4_9, loaded [symbolic = @NonInstance.WithSelf.%NonInstance.WithSelf.F (constants.%NonInstance.WithSelf.F)] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Main.import_ref.9ad11e.2: %NonInstance.type = import_ref Main//lib, loc3_23, loaded [symbolic = constants.%Self.002] +// CHECK:STDOUT: %Main.import_ref.61e = import_ref Main//lib, loc3_23, unloaded +// CHECK:STDOUT: %Main.import_ref.255: @NonInstance.WithSelf.%NonInstance.WithSelf.F.type (%NonInstance.WithSelf.F.type) = import_ref Main//lib, loc4_9, loaded [symbolic = @NonInstance.WithSelf.%NonInstance.WithSelf.F (constants.%NonInstance.WithSelf.F)] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -556,8 +556,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: interface @NonInstance [from "lib.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.21f -// CHECK:STDOUT: .F = imports.%Main.import_ref.500 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.61e +// CHECK:STDOUT: .F = imports.%Main.import_ref.a5f // CHECK:STDOUT: witness = (imports.%Main.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -567,24 +567,24 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %p.ref: %ptr = name_ref p, %p // CHECK:STDOUT: %NonInstance.ref: type = name_ref NonInstance, imports.%Main.NonInstance [concrete = constants.%NonInstance.type] -// CHECK:STDOUT: %F.ref: %NonInstance.assoc_type = name_ref F, imports.%Main.import_ref.500 [concrete = constants.%assoc0.081] +// CHECK:STDOUT: %F.ref: %NonInstance.assoc_type = name_ref F, imports.%Main.import_ref.a5f [concrete = constants.%assoc0.8c6] // CHECK:STDOUT: %.loc13_4.1: ref %struct_type.i = deref %p.ref // CHECK:STDOUT: %.loc13_4.2: %NonInstance.type = converted %.loc13_4.1, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @NonInstance.WithSelf.F(imports.%Main.import_ref.8de868.2: %NonInstance.type) [from "lib.carbon"] { +// CHECK:STDOUT: generic fn @NonInstance.WithSelf.F(imports.%Main.import_ref.9ad11e.2: %NonInstance.type) [from "lib.carbon"] { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @NonInstance.WithSelf(constants.%Self.a43) { +// CHECK:STDOUT: specific @NonInstance.WithSelf(constants.%Self.002) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.a43 +// CHECK:STDOUT: %Self => constants.%Self.002 // CHECK:STDOUT: %NonInstance.WithSelf.F.type => constants.%NonInstance.WithSelf.F.type // CHECK:STDOUT: %NonInstance.WithSelf.F => constants.%NonInstance.WithSelf.F // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @NonInstance.WithSelf.F(constants.%Self.a43) {} +// CHECK:STDOUT: specific @NonInstance.WithSelf.F(constants.%Self.002) {} // CHECK:STDOUT: // CHECK:STDOUT: --- import_instance_success.carbon // CHECK:STDOUT: @@ -597,17 +597,17 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %InstanceCallImport: %InstanceCallImport.type = struct_value () [concrete] // CHECK:STDOUT: %Instance.type: type = facet_type <@Instance> [concrete] // CHECK:STDOUT: %Self: %Instance.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Instance.WithSelf.G.type.f3b: type = fn_type @Instance.WithSelf.G, @Instance.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %Instance.WithSelf.G.718: %Instance.WithSelf.G.type.f3b = struct_value () [symbolic] +// CHECK:STDOUT: %Instance.WithSelf.G.type.8ba: type = fn_type @Instance.WithSelf.G, @Instance.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %Instance.WithSelf.G.114: %Instance.WithSelf.G.type.8ba = struct_value () [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.319: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.77c: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Instance.assoc_type: type = assoc_entity_type @Instance [concrete] -// CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, imports.%Main.import_ref.bb5 [concrete] +// CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, imports.%Main.import_ref.b3c [concrete] // CHECK:STDOUT: %Instance.impl_witness: = impl_witness imports.%Instance.impl_witness_table [concrete] // CHECK:STDOUT: %Instance.facet: %Instance.type = facet_value %struct_type.i, (%Instance.impl_witness) [concrete] -// CHECK:STDOUT: %Instance.WithSelf.G.type.533: type = fn_type @Instance.WithSelf.G, @Instance.WithSelf(%Instance.facet) [concrete] -// CHECK:STDOUT: %Instance.WithSelf.G.2b5: %Instance.WithSelf.G.type.533 = struct_value () [concrete] -// CHECK:STDOUT: %.d88: type = fn_type_with_self_type %Instance.WithSelf.G.type.533, %Instance.facet [concrete] +// CHECK:STDOUT: %Instance.WithSelf.G.type.551: type = fn_type @Instance.WithSelf.G, @Instance.WithSelf(%Instance.facet) [concrete] +// CHECK:STDOUT: %Instance.WithSelf.G.fe9: %Instance.WithSelf.G.type.551 = struct_value () [concrete] +// CHECK:STDOUT: %.2e3: type = fn_type_with_self_type %Instance.WithSelf.G.type.551, %Instance.facet [concrete] // CHECK:STDOUT: %struct_type.i.as.Instance.impl.G.type: type = fn_type @struct_type.i.as.Instance.impl.G [concrete] // CHECK:STDOUT: %struct_type.i.as.Instance.impl.G: %struct_type.i.as.Instance.impl.G.type = struct_value () [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %struct_type.i [concrete] @@ -624,16 +624,16 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.f48: %Instance.assoc_type = import_ref Main//lib, loc12_21, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.756: %Instance.assoc_type = import_ref Main//lib, loc12_21, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.G = import_ref Main//lib, G, unloaded -// CHECK:STDOUT: %Main.import_ref.af6a87.2: %Instance.type = import_ref Main//lib, loc11_20, loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %Main.import_ref.58a = import_ref Main//lib, loc11_20, unloaded -// CHECK:STDOUT: %Main.import_ref.bb5: @Instance.WithSelf.%Instance.WithSelf.G.type (%Instance.WithSelf.G.type.f3b) = import_ref Main//lib, loc12_21, loaded [symbolic = @Instance.WithSelf.%Instance.WithSelf.G (constants.%Instance.WithSelf.G.718)] -// CHECK:STDOUT: %Main.import_ref.b6f: = import_ref Main//lib, loc15_27, loaded [concrete = constants.%Instance.impl_witness] +// CHECK:STDOUT: %Main.import_ref.a85b8b.2: %Instance.type = import_ref Main//lib, loc11_20, loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.2cd = import_ref Main//lib, loc11_20, unloaded +// CHECK:STDOUT: %Main.import_ref.b3c: @Instance.WithSelf.%Instance.WithSelf.G.type (%Instance.WithSelf.G.type.8ba) = import_ref Main//lib, loc12_21, loaded [symbolic = @Instance.WithSelf.%Instance.WithSelf.G (constants.%Instance.WithSelf.G.114)] +// CHECK:STDOUT: %Main.import_ref.b09: = import_ref Main//lib, loc15_27, loaded [concrete = constants.%Instance.impl_witness] // CHECK:STDOUT: %Main.import_ref.c9a: type = import_ref Main//lib, loc15_13, loaded [concrete = constants.%struct_type.i] -// CHECK:STDOUT: %Main.import_ref.f33: type = import_ref Main//lib, loc15_18, loaded [concrete = constants.%Instance.type] -// CHECK:STDOUT: %Main.import_ref.19a: %struct_type.i.as.Instance.impl.G.type = import_ref Main//lib, loc16_29, loaded [concrete = constants.%struct_type.i.as.Instance.impl.G] -// CHECK:STDOUT: %Instance.impl_witness_table = impl_witness_table (%Main.import_ref.19a), @struct_type.i.as.Instance.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.fd3: type = import_ref Main//lib, loc15_18, loaded [concrete = constants.%Instance.type] +// CHECK:STDOUT: %Main.import_ref.7e2: %struct_type.i.as.Instance.impl.G.type = import_ref Main//lib, loc16_29, loaded [concrete = constants.%struct_type.i.as.Instance.impl.G] +// CHECK:STDOUT: %Instance.impl_witness_table = impl_witness_table (%Main.import_ref.7e2), @struct_type.i.as.Instance.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -675,33 +675,33 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: interface @Instance [from "lib.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.58a -// CHECK:STDOUT: .G = imports.%Main.import_ref.f48 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.2cd +// CHECK:STDOUT: .G = imports.%Main.import_ref.756 // CHECK:STDOUT: witness = (imports.%Main.G) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @struct_type.i.as.Instance.impl: imports.%Main.import_ref.c9a as imports.%Main.import_ref.f33 [from "lib.carbon"] { +// CHECK:STDOUT: impl @struct_type.i.as.Instance.impl: imports.%Main.import_ref.c9a as imports.%Main.import_ref.fd3 [from "lib.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Main.import_ref.b6f +// CHECK:STDOUT: witness = imports.%Main.import_ref.b09 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @InstanceCallImport(%n.param: %struct_type.i) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: %struct_type.i = name_ref n, %n // CHECK:STDOUT: %Instance.ref: type = name_ref Instance, imports.%Main.Instance [concrete = constants.%Instance.type] -// CHECK:STDOUT: %G.ref: %Instance.assoc_type = name_ref G, imports.%Main.import_ref.f48 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.d88 = impl_witness_access constants.%Instance.impl_witness, element0 [concrete = constants.%struct_type.i.as.Instance.impl.G] +// CHECK:STDOUT: %G.ref: %Instance.assoc_type = name_ref G, imports.%Main.import_ref.756 [concrete = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %.2e3 = impl_witness_access constants.%Instance.impl_witness, element0 [concrete = constants.%struct_type.i.as.Instance.impl.G] // CHECK:STDOUT: %bound_method: = bound_method %n.ref, %impl.elem0 // CHECK:STDOUT: %struct_type.i.as.Instance.impl.G.call: init %empty_tuple.type = call %bound_method(%n.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Instance.WithSelf.G(imports.%Main.import_ref.af6a87.2: %Instance.type) [from "lib.carbon"] { +// CHECK:STDOUT: generic fn @Instance.WithSelf.G(imports.%Main.import_ref.a85b8b.2: %Instance.type) [from "lib.carbon"] { // CHECK:STDOUT: %Self: %Instance.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.319)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.77c)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -712,9 +712,9 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %p.ref: %ptr = name_ref p, %p // CHECK:STDOUT: %Instance.ref: type = name_ref Instance, imports.%Main.Instance [concrete = constants.%Instance.type] -// CHECK:STDOUT: %G.ref: %Instance.assoc_type = name_ref G, imports.%Main.import_ref.f48 [concrete = constants.%assoc0] +// CHECK:STDOUT: %G.ref: %Instance.assoc_type = name_ref G, imports.%Main.import_ref.756 [concrete = constants.%assoc0] // CHECK:STDOUT: %.loc10_4.1: ref %struct_type.i = deref %p.ref -// CHECK:STDOUT: %impl.elem0: %.d88 = impl_witness_access constants.%Instance.impl_witness, element0 [concrete = constants.%struct_type.i.as.Instance.impl.G] +// CHECK:STDOUT: %impl.elem0: %.2e3 = impl_witness_access constants.%Instance.impl_witness, element0 [concrete = constants.%struct_type.i.as.Instance.impl.G] // CHECK:STDOUT: %bound_method: = bound_method %.loc10_4.1, %impl.elem0 // CHECK:STDOUT: %.loc10_4.2: ref %empty_tuple.type = struct_access %.loc10_4.1, element0 // CHECK:STDOUT: %tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] @@ -728,21 +728,21 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: specific @Instance.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Instance.WithSelf.G.type => constants.%Instance.WithSelf.G.type.f3b -// CHECK:STDOUT: %Instance.WithSelf.G => constants.%Instance.WithSelf.G.718 +// CHECK:STDOUT: %Instance.WithSelf.G.type => constants.%Instance.WithSelf.G.type.8ba +// CHECK:STDOUT: %Instance.WithSelf.G => constants.%Instance.WithSelf.G.114 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance.WithSelf.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.319 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.77c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance.WithSelf(constants.%Instance.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Instance.facet -// CHECK:STDOUT: %Instance.WithSelf.G.type => constants.%Instance.WithSelf.G.type.533 -// CHECK:STDOUT: %Instance.WithSelf.G => constants.%Instance.WithSelf.G.2b5 +// CHECK:STDOUT: %Instance.WithSelf.G.type => constants.%Instance.WithSelf.G.type.551 +// CHECK:STDOUT: %Instance.WithSelf.G => constants.%Instance.WithSelf.G.fe9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_import_instance.carbon @@ -760,7 +760,7 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Instance.assoc_type: type = assoc_entity_type @Instance [concrete] -// CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, imports.%Main.import_ref.bb5 [concrete] +// CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, imports.%Main.import_ref.b3c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -770,14 +770,14 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.f48: %Instance.assoc_type = import_ref Main//lib, loc12_21, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.756: %Instance.assoc_type = import_ref Main//lib, loc12_21, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.G = import_ref Main//lib, G, unloaded -// CHECK:STDOUT: %Main.import_ref.af6a87.2: %Instance.type = import_ref Main//lib, loc11_20, loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %Main.import_ref.58a = import_ref Main//lib, loc11_20, unloaded -// CHECK:STDOUT: %Main.import_ref.bb5: @Instance.WithSelf.%Instance.WithSelf.G.type (%Instance.WithSelf.G.type) = import_ref Main//lib, loc12_21, loaded [symbolic = @Instance.WithSelf.%Instance.WithSelf.G (constants.%Instance.WithSelf.G)] -// CHECK:STDOUT: %Main.import_ref.76f = import_ref Main//lib, loc15_27, unloaded +// CHECK:STDOUT: %Main.import_ref.a85b8b.2: %Instance.type = import_ref Main//lib, loc11_20, loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.2cd = import_ref Main//lib, loc11_20, unloaded +// CHECK:STDOUT: %Main.import_ref.b3c: @Instance.WithSelf.%Instance.WithSelf.G.type (%Instance.WithSelf.G.type) = import_ref Main//lib, loc12_21, loaded [symbolic = @Instance.WithSelf.%Instance.WithSelf.G (constants.%Instance.WithSelf.G)] +// CHECK:STDOUT: %Main.import_ref.e22 = import_ref Main//lib, loc15_27, unloaded // CHECK:STDOUT: %Main.import_ref.c9a: type = import_ref Main//lib, loc15_13, loaded [concrete = constants.%struct_type.i] -// CHECK:STDOUT: %Main.import_ref.f33: type = import_ref Main//lib, loc15_18, loaded [concrete = constants.%Instance.type] +// CHECK:STDOUT: %Main.import_ref.fd3: type = import_ref Main//lib, loc15_18, loaded [concrete = constants.%Instance.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -794,16 +794,16 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: interface @Instance [from "lib.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.58a -// CHECK:STDOUT: .G = imports.%Main.import_ref.f48 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.2cd +// CHECK:STDOUT: .G = imports.%Main.import_ref.756 // CHECK:STDOUT: witness = (imports.%Main.G) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @struct_type.i.as.Instance.impl: imports.%Main.import_ref.c9a as imports.%Main.import_ref.f33 [from "lib.carbon"] { +// CHECK:STDOUT: impl @struct_type.i.as.Instance.impl: imports.%Main.import_ref.c9a as imports.%Main.import_ref.fd3 [from "lib.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Main.import_ref.76f +// CHECK:STDOUT: witness = imports.%Main.import_ref.e22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @InstanceCallImportFail() { @@ -812,11 +812,11 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %.loc10_9.2: type = converted %.loc10_9.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %struct_type.i: type = struct_type {.i: %empty_tuple.type} [concrete = constants.%struct_type.i] // CHECK:STDOUT: %Instance.ref: type = name_ref Instance, imports.%Main.Instance [concrete = constants.%Instance.type] -// CHECK:STDOUT: %G.ref: %Instance.assoc_type = name_ref G, imports.%Main.import_ref.f48 [concrete = constants.%assoc0] +// CHECK:STDOUT: %G.ref: %Instance.assoc_type = name_ref G, imports.%Main.import_ref.756 [concrete = constants.%assoc0] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Instance.WithSelf.G(imports.%Main.import_ref.af6a87.2: %Instance.type) [from "lib.carbon"] { +// CHECK:STDOUT: generic fn @Instance.WithSelf.G(imports.%Main.import_ref.a85b8b.2: %Instance.type) [from "lib.carbon"] { // CHECK:STDOUT: %Self: %Instance.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type)] diff --git a/toolchain/check/testdata/impl/import_extend_impl.carbon b/toolchain/check/testdata/impl/import_extend_impl.carbon index 569e15d313f8..6c95ffa7b423 100644 --- a/toolchain/check/testdata/impl/import_extend_impl.carbon +++ b/toolchain/check/testdata/impl/import_extend_impl.carbon @@ -42,8 +42,8 @@ fn G(c: C) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.d9f: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.592: %I.WithSelf.F.type.d9f = struct_value () [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.dcc: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ec6: %I.WithSelf.F.type.dcc = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] @@ -51,8 +51,8 @@ fn G(c: C) { // 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: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.3a2: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.138: %I.WithSelf.F.type.3a2 = struct_value () [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.064: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.513: %I.WithSelf.F.type.064 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -71,7 +71,7 @@ fn G(c: C) { // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.d9f) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.592)] {} {} +// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.dcc) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ec6)] {} {} // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -119,8 +119,8 @@ fn G(c: C) { // CHECK:STDOUT: specific @I.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d9f -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.592 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.dcc +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ec6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self) {} @@ -128,8 +128,8 @@ fn G(c: C) { // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.3a2 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.138 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.064 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.513 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) {} @@ -146,19 +146,19 @@ fn G(c: C) { // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.a52: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.08d: %I.WithSelf.F.type.a52 = struct_value () [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.418: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ca5: %I.WithSelf.F.type.418 = struct_value () [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %C.type.facet: %type = facet_value %C, () [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.eef: type = fn_type @I.WithSelf.F, @I.WithSelf(%C.type.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.b58: %I.WithSelf.F.type.eef = struct_value () [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.b04: type = fn_type @I.WithSelf.F, @I.WithSelf(%C.type.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.cef: %I.WithSelf.F.type.b04 = struct_value () [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.50e [concrete] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9f7 [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.c0f: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.46a: %I.WithSelf.F.type.c0f = struct_value () [concrete] -// CHECK:STDOUT: %.86b: type = fn_type_with_self_type %I.WithSelf.F.type.c0f, %I.facet [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.e61: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.aba: %I.WithSelf.F.type.e61 = struct_value () [concrete] +// CHECK:STDOUT: %.92e: type = fn_type_with_self_type %I.WithSelf.F.type.e61, %I.facet [concrete] // 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: } @@ -167,18 +167,18 @@ fn G(c: C) { // CHECK:STDOUT: %Main.I = import_ref Main//extend_impl_library, I, unloaded // CHECK:STDOUT: %Main.C: type = import_ref Main//extend_impl_library, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//extend_impl_library, loc12_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//extend_impl_library, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.98c224.1: type = import_ref Main//extend_impl_library, loc9_18, loaded [concrete = constants.%I.type] -// CHECK:STDOUT: %Main.import_ref.a47: %I.assoc_type = import_ref Main//extend_impl_library, loc5_9, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//extend_impl_library, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c3f793.1: type = import_ref Main//extend_impl_library, loc9_18, loaded [concrete = constants.%I.type] +// CHECK:STDOUT: %Main.import_ref.1b3: %I.assoc_type = import_ref Main//extend_impl_library, loc5_9, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.F = import_ref Main//extend_impl_library, F, unloaded -// CHECK:STDOUT: %Main.import_ref.c42703.2: %I.type = import_ref Main//extend_impl_library, loc4_13, loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//extend_impl_library, loc4_13, unloaded -// CHECK:STDOUT: %Main.import_ref.50e: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.a52) = import_ref Main//extend_impl_library, loc5_9, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.08d)] -// CHECK:STDOUT: %Main.import_ref.5c4: = import_ref Main//extend_impl_library, loc9_20, loaded [concrete = constants.%I.impl_witness] -// CHECK:STDOUT: %Main.import_ref.b34: type = import_ref Main//extend_impl_library, loc9_15, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.98c224.2: type = import_ref Main//extend_impl_library, loc9_18, loaded [concrete = constants.%I.type] -// CHECK:STDOUT: %Main.import_ref.d9e: %C.as.I.impl.F.type = import_ref Main//extend_impl_library, loc10_12, loaded [concrete = constants.%C.as.I.impl.F] -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.d9e), @C.as.I.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.e59c42.2: %I.type = import_ref Main//extend_impl_library, loc4_13, loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//extend_impl_library, loc4_13, unloaded +// CHECK:STDOUT: %Main.import_ref.9f7: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.418) = import_ref Main//extend_impl_library, loc5_9, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ca5)] +// CHECK:STDOUT: %Main.import_ref.255: = import_ref Main//extend_impl_library, loc9_20, loaded [concrete = constants.%I.impl_witness] +// CHECK:STDOUT: %Main.import_ref.5dc: type = import_ref Main//extend_impl_library, loc9_15, loaded [concrete = constants.%C] +// CHECK:STDOUT: %Main.import_ref.c3f793.2: type = import_ref Main//extend_impl_library, loc9_18, loaded [concrete = constants.%I.type] +// CHECK:STDOUT: %Main.import_ref.62a: %C.as.I.impl.F.type = import_ref Main//extend_impl_library, loc10_12, loaded [concrete = constants.%C.as.I.impl.F] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.62a), @C.as.I.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -200,41 +200,41 @@ fn G(c: C) { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "extend_impl_library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .F = imports.%Main.import_ref.a47 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .F = imports.%Main.import_ref.1b3 // CHECK:STDOUT: witness = (imports.%Main.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.I.impl: imports.%Main.import_ref.b34 as imports.%Main.import_ref.98c224.2 [from "extend_impl_library.carbon"] { +// CHECK:STDOUT: impl @C.as.I.impl: imports.%Main.import_ref.5dc as imports.%Main.import_ref.c3f793.2 [from "extend_impl_library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Main.import_ref.5c4 +// CHECK:STDOUT: witness = imports.%Main.import_ref.255 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "extend_impl_library.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: .F = -// CHECK:STDOUT: extend imports.%Main.import_ref.98c224.1 +// CHECK:STDOUT: extend imports.%Main.import_ref.c3f793.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%c.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref.loc7: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %F.ref.loc7: %I.assoc_type = name_ref F, imports.%Main.import_ref.a47 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc7: %.86b = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F] +// CHECK:STDOUT: %F.ref.loc7: %I.assoc_type = name_ref F, imports.%Main.import_ref.1b3 [concrete = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0.loc7: %.92e = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F] // CHECK:STDOUT: %C.as.I.impl.F.call.loc7: init %empty_tuple.type = call %impl.elem0.loc7() // CHECK:STDOUT: %c.ref: %C = name_ref c, %c -// CHECK:STDOUT: %F.ref.loc8: %I.assoc_type = name_ref F, imports.%Main.import_ref.a47 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc8: %.86b = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F] +// CHECK:STDOUT: %F.ref.loc8: %I.assoc_type = name_ref F, imports.%Main.import_ref.1b3 [concrete = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0.loc8: %.92e = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F] // CHECK:STDOUT: %C.as.I.impl.F.call.loc8: init %empty_tuple.type = call %impl.elem0.loc8() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.c42703.2: %I.type) [from "extend_impl_library.carbon"] { +// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.e59c42.2: %I.type) [from "extend_impl_library.carbon"] { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: @@ -243,8 +243,8 @@ fn G(c: C) { // CHECK:STDOUT: specific @I.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.a52 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.08d +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.418 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ca5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self) {} @@ -252,14 +252,14 @@ fn G(c: C) { // CHECK:STDOUT: specific @I.WithSelf(constants.%C.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%C.type.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.eef -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.b58 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.b04 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.cef // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.c0f -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.46a +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.e61 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.aba // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/import_generic.carbon b/toolchain/check/testdata/impl/import_generic.carbon index 354db72c249a..917b668e9d70 100644 --- a/toolchain/check/testdata/impl/import_generic.carbon +++ b/toolchain/check/testdata/impl/import_generic.carbon @@ -192,15 +192,15 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.50f: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self.626: %I.type.50f = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %J.type.f45: type = generic_interface_type @J [concrete] -// CHECK:STDOUT: %J.generic: %J.type.f45 = struct_value () [concrete] -// CHECK:STDOUT: %J.type.9a7: type = facet_type <@J, @J(%T)> [symbolic] -// CHECK:STDOUT: %Self.b78: %J.type.9a7 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.b78 [symbolic] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self.191: %I.type.3fe = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %J.type.23c: type = generic_interface_type @J [concrete] +// CHECK:STDOUT: %J.generic: %J.type.23c = struct_value () [concrete] +// CHECK:STDOUT: %J.type.5c8: type = facet_type <@J, @J(%T)> [symbolic] +// CHECK:STDOUT: %Self.ad7: %J.type.5c8 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ad7 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -208,7 +208,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: .I = %I.decl // CHECK:STDOUT: .J = %J.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %I.decl: %I.type.48c = interface_decl @I [concrete = constants.%I.generic] { +// CHECK:STDOUT: %I.decl: %I.type.335 = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc3_17.1: type = splice_block %.loc3_17.2 [concrete = type] { @@ -217,7 +217,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc3_14.2: type = symbolic_binding T, 0 [symbolic = %T.loc3_14.1 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %J.decl: %J.type.f45 = interface_decl @J [concrete = constants.%J.generic] { +// CHECK:STDOUT: %J.decl: %J.type.23c = interface_decl @J [concrete = constants.%J.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_17.1: type = splice_block %.loc4_17.2 [concrete = type] { @@ -232,11 +232,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T.loc3_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc3_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc3_14.1)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self.loc3_23.2: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.626)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc3_14.1)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self.loc3_23.2: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.191)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc3_23.1: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.626)] +// CHECK:STDOUT: %Self.loc3_23.1: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.191)] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -251,11 +251,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T.loc4_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T.loc4_14.1)> [symbolic = %J.type (constants.%J.type.9a7)] -// CHECK:STDOUT: %Self.loc4_23.2: @J.%J.type (%J.type.9a7) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self.b78)] +// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T.loc4_14.1)> [symbolic = %J.type (constants.%J.type.5c8)] +// CHECK:STDOUT: %Self.loc4_23.2: @J.%J.type (%J.type.5c8) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self.ad7)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_23.1: @J.%J.type (%J.type.9a7) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self.b78)] +// CHECK:STDOUT: %Self.loc4_23.1: @J.%J.type (%J.type.5c8) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self.ad7)] // CHECK:STDOUT: %J.WithSelf.decl = interface_with_self_decl @J [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -263,11 +263,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: require %Self.as_type.loc5_18.1 impls %I.type.loc5_27.1 // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.as_type.loc5_18.1: type = facet_access_type @J.%Self.loc4_23.1 [symbolic = %Self.as_type.loc5_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @J.%T.loc4_14.2 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %I.type.loc5_27.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc5_27.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc5_27.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc5_27.2 (constants.%I.type.3fe)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc5: type = specific_constant @J.WithSelf.Self.as_type.impls.I.type.require.%I.type.loc5_27.1, @J.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.b78) [symbolic = %I.type (constants.%I.type.50f)] +// CHECK:STDOUT: %.loc5: type = specific_constant @J.WithSelf.Self.as_type.impls.I.type.require.%I.type.loc5_27.1, @J.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.ad7) [symbolic = %I.type (constants.%I.type.3fe)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc4_23.1 @@ -285,23 +285,23 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @J.WithSelf.Self.as_type.impls.I.type.require(@J.%T.loc4_14.2: type, @J.%Self.loc4_23.1: @J.%J.type (%J.type.9a7)) { +// CHECK:STDOUT: generic require @J.WithSelf.Self.as_type.impls.I.type.require(@J.%T.loc4_14.2: type, @J.%Self.loc4_23.1: @J.%J.type (%J.type.5c8)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.9a7)] -// CHECK:STDOUT: %Self: @J.WithSelf.Self.as_type.impls.I.type.require.%J.type (%J.type.9a7) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.b78)] +// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.5c8)] +// CHECK:STDOUT: %Self: @J.WithSelf.Self.as_type.impls.I.type.require.%J.type (%J.type.5c8) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.ad7)] // CHECK:STDOUT: %Self.as_type.loc5_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %I.type.loc5_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc5_27.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc5_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc5_27.2 (constants.%I.type.3fe)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { // CHECK:STDOUT: %T.loc3_14.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %Self.loc3_23.2 => constants.%Self.626 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %Self.loc3_23.2 => constants.%Self.191 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.626) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.191) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -309,14 +309,14 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T.loc4_14.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%T, constants.%Self.b78) {} +// CHECK:STDOUT: specific @J.WithSelf(constants.%T, constants.%Self.ad7) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.b78) { +// CHECK:STDOUT: specific @J.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.ad7) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %J.type => constants.%J.type.9a7 -// CHECK:STDOUT: %Self => constants.%Self.b78 +// CHECK:STDOUT: %J.type => constants.%J.type.5c8 +// CHECK:STDOUT: %Self => constants.%Self.ad7 // CHECK:STDOUT: %Self.as_type.loc5_18.2 => constants.%Self.as_type -// CHECK:STDOUT: %I.type.loc5_27.2 => constants.%I.type.50f +// CHECK:STDOUT: %I.type.loc5_27.2 => constants.%I.type.3fe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- basic_import_generic_interface.impl.carbon @@ -325,41 +325,41 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %I.type.50f: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self.501: %I.type.50f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self.a67: %I.type.3fe = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %I.type.317: type = facet_type <@I, @I(%empty_struct_type)> [concrete] +// CHECK:STDOUT: %I.type.81d: type = facet_type <@I, @I(%empty_struct_type)> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.e86: %I.type.317 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.facet: %I.type.317 = facet_value %C, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %J.type.f45: type = generic_interface_type @J [concrete] -// CHECK:STDOUT: %J.generic: %J.type.f45 = struct_value () [concrete] -// CHECK:STDOUT: %J.type.9a7: type = facet_type <@J, @J(%T)> [symbolic] -// CHECK:STDOUT: %Self.3f4: %J.type.9a7 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.3f4 [symbolic] -// CHECK:STDOUT: %J.type.f52: type = facet_type <@J, @J(%empty_struct_type)> [concrete] +// CHECK:STDOUT: %Self.47c: %I.type.81d = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.facet: %I.type.81d = facet_value %C, (%I.impl_witness) [concrete] +// CHECK:STDOUT: %J.type.23c: type = generic_interface_type @J [concrete] +// CHECK:STDOUT: %J.generic: %J.type.23c = struct_value () [concrete] +// CHECK:STDOUT: %J.type.5c8: type = facet_type <@J, @J(%T)> [symbolic] +// CHECK:STDOUT: %Self.9f1: %J.type.5c8 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.9f1 [symbolic] +// CHECK:STDOUT: %J.type.80f: type = facet_type <@J, @J(%empty_struct_type)> [concrete] // CHECK:STDOUT: %J.impl_witness: = impl_witness @C.as.J.impl.%J.impl_witness_table [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %C.type.facet: %type = facet_value %C, () [concrete] -// CHECK:STDOUT: %complete_type.d9a: = complete_type_witness %I.type.317 [concrete] -// CHECK:STDOUT: %Self.4e3: %J.type.f52 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %J.facet: %J.type.f52 = facet_value %C, (%J.impl_witness) [concrete] +// CHECK:STDOUT: %complete_type.7da: = complete_type_witness %I.type.81d [concrete] +// CHECK:STDOUT: %Self.043: %J.type.80f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %J.facet: %J.type.80f = facet_value %C, (%J.impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.I: %I.type.48c = import_ref Main//basic_import_generic_interface, I, loaded [concrete = constants.%I.generic] -// CHECK:STDOUT: %Main.J: %J.type.f45 = import_ref Main//basic_import_generic_interface, J, loaded [concrete = constants.%J.generic] -// CHECK:STDOUT: %Main.import_ref.157 = import_ref Main//basic_import_generic_interface, loc3_23, unloaded +// CHECK:STDOUT: %Main.I: %I.type.335 = import_ref Main//basic_import_generic_interface, I, loaded [concrete = constants.%I.generic] +// CHECK:STDOUT: %Main.J: %J.type.23c = import_ref Main//basic_import_generic_interface, J, loaded [concrete = constants.%J.generic] +// CHECK:STDOUT: %Main.import_ref.a43 = import_ref Main//basic_import_generic_interface, loc3_23, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//basic_import_generic_interface, loc3_14, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.03e = import_ref Main//basic_import_generic_interface, loc5_28, unloaded -// CHECK:STDOUT: %Main.import_ref.d14: type = import_ref Main//basic_import_generic_interface, loc5_18, loaded [symbolic = @J.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %Main.import_ref.808: type = import_ref Main//basic_import_generic_interface, loc5_27, loaded [symbolic = @J.WithSelf.Self.as_type.impls.I.type.require.%I.type (constants.%I.type.50f)] +// CHECK:STDOUT: %Main.import_ref.6ec = import_ref Main//basic_import_generic_interface, loc5_28, unloaded +// CHECK:STDOUT: %Main.import_ref.91b: type = import_ref Main//basic_import_generic_interface, loc5_18, loaded [symbolic = @J.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %Main.import_ref.e01: type = import_ref Main//basic_import_generic_interface, loc5_27, loaded [symbolic = @J.WithSelf.Self.as_type.impls.I.type.require.%I.type (constants.%I.type.3fe)] // CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//basic_import_generic_interface, loc4_14, loaded [symbolic = @J.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.6234b7.2: @J.%J.type (%J.type.9a7) = import_ref Main//basic_import_generic_interface, loc4_23, loaded [symbolic = @J.%Self (constants.%Self.3f4)] -// CHECK:STDOUT: %Main.import_ref.8fe = import_ref Main//basic_import_generic_interface, loc4_23, unloaded +// CHECK:STDOUT: %Main.import_ref.a19ec6.2: @J.%J.type (%J.type.5c8) = import_ref Main//basic_import_generic_interface, loc4_23, loaded [symbolic = @J.%Self (constants.%Self.9f1)] +// CHECK:STDOUT: %Main.import_ref.ec8 = import_ref Main//basic_import_generic_interface, loc4_23, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.5: type = import_ref Main//basic_import_generic_interface, loc4_14, loaded [symbolic = @J.%T (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -374,17 +374,17 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: impl_decl @C.as.I.impl [concrete] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, imports.%Main.I [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, imports.%Main.I [concrete = constants.%I.generic] // CHECK:STDOUT: %.loc5_14: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc5_15: type = converted %.loc5_14, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type)> [concrete = constants.%I.type.317] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type)> [concrete = constants.%I.type.81d] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @C.as.J.impl [concrete] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %J.ref: %J.type.f45 = name_ref J, imports.%Main.J [concrete = constants.%J.generic] +// CHECK:STDOUT: %J.ref: %J.type.23c = name_ref J, imports.%Main.J [concrete = constants.%J.generic] // CHECK:STDOUT: %.loc7_14: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc7_15: type = converted %.loc7_14, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(constants.%empty_struct_type)> [concrete = constants.%J.type.f52] +// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(constants.%empty_struct_type)> [concrete = constants.%J.type.80f] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -392,12 +392,12 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.501)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a67)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.157 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.a43 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -408,28 +408,28 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.9a7)] -// CHECK:STDOUT: %Self: @J.%J.type (%J.type.9a7) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.3f4)] +// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.5c8)] +// CHECK:STDOUT: %Self: @J.%J.type (%J.type.5c8) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.9f1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.8fe -// CHECK:STDOUT: extend imports.%Main.import_ref.03e +// CHECK:STDOUT: .Self = imports.%Main.import_ref.ec8 +// CHECK:STDOUT: extend imports.%Main.import_ref.6ec // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: @J.WithSelf.Self.as_type.impls.I.type.require { -// CHECK:STDOUT: require imports.%Main.import_ref.d14 impls imports.%Main.import_ref.808 +// CHECK:STDOUT: require imports.%Main.import_ref.91b impls imports.%Main.import_ref.e01 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @J.WithSelf.Self.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.4: type, imports.%Main.import_ref.6234b7.2: @J.%J.type (%J.type.9a7)) [from "basic_import_generic_interface.carbon"] { +// CHECK:STDOUT: generic require @J.WithSelf.Self.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.4: type, imports.%Main.import_ref.a19ec6.2: @J.%J.type (%J.type.5c8)) [from "basic_import_generic_interface.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.9a7)] -// CHECK:STDOUT: %Self: @J.WithSelf.Self.as_type.impls.I.type.require.%J.type (%J.type.9a7) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.3f4)] +// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.5c8)] +// CHECK:STDOUT: %Self: @J.WithSelf.Self.as_type.impls.I.type.require.%J.type (%J.type.5c8) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.9f1)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.I.impl: %C.ref as %I.type { @@ -462,11 +462,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %Self => constants.%Self.501 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %Self => constants.%Self.a67 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.501) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.a67) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -474,11 +474,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.317 -// CHECK:STDOUT: %Self => constants.%Self.e86 +// CHECK:STDOUT: %I.type => constants.%I.type.81d +// CHECK:STDOUT: %Self => constants.%Self.47c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%empty_struct_type, constants.%Self.501) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%empty_struct_type, constants.%Self.a67) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -490,51 +490,51 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%T, constants.%Self.3f4) {} +// CHECK:STDOUT: specific @J.WithSelf(constants.%T, constants.%Self.9f1) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.3f4) { +// CHECK:STDOUT: specific @J.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.9f1) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %J.type => constants.%J.type.9a7 -// CHECK:STDOUT: %Self => constants.%Self.3f4 +// CHECK:STDOUT: %J.type => constants.%J.type.5c8 +// CHECK:STDOUT: %Self => constants.%Self.9f1 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %I.type => constants.%I.type.50f +// CHECK:STDOUT: %I.type => constants.%I.type.3fe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J(constants.%empty_struct_type) { // CHECK:STDOUT: %T => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %J.type => constants.%J.type.f52 -// CHECK:STDOUT: %Self => constants.%Self.4e3 +// CHECK:STDOUT: %J.type => constants.%J.type.80f +// CHECK:STDOUT: %Self => constants.%Self.043 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf(constants.%empty_struct_type, constants.%C.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%empty_struct_type -// CHECK:STDOUT: %I.type => constants.%I.type.317 -// CHECK:STDOUT: %require_complete => constants.%complete_type.d9a +// CHECK:STDOUT: %I.type => constants.%I.type.81d +// CHECK:STDOUT: %require_complete => constants.%complete_type.7da // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf.Self.as_type.impls.I.type.require(constants.%empty_struct_type, constants.%C.type.facet) { // CHECK:STDOUT: %T => constants.%empty_struct_type -// CHECK:STDOUT: %J.type => constants.%J.type.f52 +// CHECK:STDOUT: %J.type => constants.%J.type.80f // CHECK:STDOUT: %Self => constants.%C.type.facet // CHECK:STDOUT: %Self.as_type => constants.%C -// CHECK:STDOUT: %I.type => constants.%I.type.317 +// CHECK:STDOUT: %I.type => constants.%I.type.81d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%empty_struct_type, constants.%Self.3f4) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%empty_struct_type, constants.%Self.9f1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%empty_struct_type -// CHECK:STDOUT: %I.type => constants.%I.type.317 -// CHECK:STDOUT: %require_complete => constants.%complete_type.d9a +// CHECK:STDOUT: %I.type => constants.%I.type.81d +// CHECK:STDOUT: %require_complete => constants.%complete_type.7da // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf(constants.%empty_struct_type, constants.%J.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%empty_struct_type -// CHECK:STDOUT: %I.type => constants.%I.type.317 -// CHECK:STDOUT: %require_complete => constants.%complete_type.d9a +// CHECK:STDOUT: %I.type => constants.%I.type.81d +// CHECK:STDOUT: %require_complete => constants.%complete_type.7da // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- basic_import_generic_constraint.carbon @@ -544,15 +544,15 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.50f: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self.626: %I.type.50f = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %J.type.4db: type = generic_named_constaint_type @J [concrete] -// CHECK:STDOUT: %empty_struct: %J.type.4db = struct_value () [concrete] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self.191: %I.type.3fe = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %J.type.28e: type = generic_named_constaint_type @J [concrete] +// CHECK:STDOUT: %empty_struct: %J.type.28e = struct_value () [concrete] // CHECK:STDOUT: %J.type.d68: type = facet_type <@J, @J(%T)> [symbolic] -// CHECK:STDOUT: %Self.7f4: %J.type.d68 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.7f4 [symbolic] +// CHECK:STDOUT: %Self.22b: %J.type.d68 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.22b [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -560,7 +560,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: .I = %I.decl // CHECK:STDOUT: .J = %J.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %I.decl: %I.type.48c = interface_decl @I [concrete = constants.%I.generic] { +// CHECK:STDOUT: %I.decl: %I.type.335 = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc3_17.1: type = splice_block %.loc3_17.2 [concrete = type] { @@ -569,7 +569,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc3_14.2: type = symbolic_binding T, 0 [symbolic = %T.loc3_14.1 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %J.decl: %J.type.4db = constraint_decl @J [concrete = constants.%empty_struct] { +// CHECK:STDOUT: %J.decl: %J.type.28e = constraint_decl @J [concrete = constants.%empty_struct] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_18.1: type = splice_block %.loc4_18.2 [concrete = type] { @@ -584,11 +584,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T.loc3_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc3_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc3_14.1)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self.loc3_23.2: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.626)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc3_14.1)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self.loc3_23.2: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.191)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc3_23.1: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.626)] +// CHECK:STDOUT: %Self.loc3_23.1: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.191)] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -604,10 +604,10 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T.loc4_15.1)> [symbolic = %J.type (constants.%J.type.d68)] -// CHECK:STDOUT: %Self.loc4_24.2: @J.%J.type (%J.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc4_24.2 (constants.%Self.7f4)] +// CHECK:STDOUT: %Self.loc4_24.2: @J.%J.type (%J.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc4_24.2 (constants.%Self.22b)] // CHECK:STDOUT: // CHECK:STDOUT: constraint { -// CHECK:STDOUT: %Self.loc4_24.1: @J.%J.type (%J.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc4_24.2 (constants.%Self.7f4)] +// CHECK:STDOUT: %Self.loc4_24.1: @J.%J.type (%J.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc4_24.2 (constants.%Self.22b)] // CHECK:STDOUT: %J.WithSelf.decl = constraint_with_self_decl @J [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -615,11 +615,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: require %Self.as_type.loc5_18.1 impls %I.type.loc5_27.1 // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.as_type.loc5_18.1: type = facet_access_type @J.%Self.loc4_24.1 [symbolic = %Self.as_type.loc5_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @J.%T.loc4_15.2 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %I.type.loc5_27.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc5_27.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc5_27.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc5_27.2 (constants.%I.type.3fe)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc5: type = specific_constant @J.WithSelf.Self.as_type.impls.I.type.require.%I.type.loc5_27.1, @J.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.7f4) [symbolic = %I.type (constants.%I.type.50f)] +// CHECK:STDOUT: %.loc5: type = specific_constant @J.WithSelf.Self.as_type.impls.I.type.require.%I.type.loc5_27.1, @J.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.22b) [symbolic = %I.type (constants.%I.type.3fe)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc4_24.1 @@ -639,20 +639,20 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: generic require @J.WithSelf.Self.as_type.impls.I.type.require(@J.%T.loc4_15.2: type, @J.%Self.loc4_24.1: @J.%J.type (%J.type.d68)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.d68)] -// CHECK:STDOUT: %Self: @J.WithSelf.Self.as_type.impls.I.type.require.%J.type (%J.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.7f4)] +// CHECK:STDOUT: %Self: @J.WithSelf.Self.as_type.impls.I.type.require.%J.type (%J.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.22b)] // CHECK:STDOUT: %Self.as_type.loc5_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %I.type.loc5_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc5_27.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc5_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc5_27.2 (constants.%I.type.3fe)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { // CHECK:STDOUT: %T.loc3_14.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %Self.loc3_23.2 => constants.%Self.626 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %Self.loc3_23.2 => constants.%Self.191 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.626) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.191) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -660,14 +660,14 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T.loc4_15.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%T, constants.%Self.7f4) {} +// CHECK:STDOUT: specific @J.WithSelf(constants.%T, constants.%Self.22b) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.7f4) { +// CHECK:STDOUT: specific @J.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.22b) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %J.type => constants.%J.type.d68 -// CHECK:STDOUT: %Self => constants.%Self.7f4 +// CHECK:STDOUT: %Self => constants.%Self.22b // CHECK:STDOUT: %Self.as_type.loc5_18.2 => constants.%Self.as_type -// CHECK:STDOUT: %I.type.loc5_27.2 => constants.%I.type.50f +// CHECK:STDOUT: %I.type.loc5_27.2 => constants.%I.type.3fe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- basic_import_generic_constraint.impl.carbon @@ -676,37 +676,37 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %J.type.4db: type = generic_named_constaint_type @J [concrete] -// CHECK:STDOUT: %empty_struct.c21: %J.type.4db = struct_value () [concrete] +// CHECK:STDOUT: %J.type.28e: type = generic_named_constaint_type @J [concrete] +// CHECK:STDOUT: %empty_struct.f37: %J.type.28e = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %J.type.d682d6.1: type = facet_type <@J, @J(%T)> [symbolic] // CHECK:STDOUT: %Self.e1f642.1: %J.type.d682d6.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.type.50f: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self.501: %I.type.50f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self.a67: %I.type.3fe = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.e1f642.1 [symbolic] // CHECK:STDOUT: %empty_struct.a40: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %J.type.d682d6.2: type = facet_type <@J, @J(%empty_struct_type)> [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %C.type.facet: %type = facet_value %C, () [concrete] -// CHECK:STDOUT: %I.type.317: type = facet_type <@I, @I(%empty_struct_type)> [concrete] -// CHECK:STDOUT: %Self.e86: %I.type.317 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %complete_type.d9a: = complete_type_witness %I.type.317 [concrete] +// CHECK:STDOUT: %I.type.81d: type = facet_type <@I, @I(%empty_struct_type)> [concrete] +// CHECK:STDOUT: %Self.47c: %I.type.81d = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %complete_type.7da: = complete_type_witness %I.type.81d [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %Self.e1f642.2: %J.type.d682d6.2 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.facet: %I.type.317 = facet_value %C, (%I.impl_witness) [concrete] +// CHECK:STDOUT: %I.facet: %I.type.81d = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I = import_ref Main//basic_import_generic_constraint, I, unloaded -// CHECK:STDOUT: %Main.J: %J.type.4db = import_ref Main//basic_import_generic_constraint, J, loaded [concrete = constants.%empty_struct.c21] -// CHECK:STDOUT: %Main.import_ref.765 = import_ref Main//basic_import_generic_constraint, loc5_28, unloaded -// CHECK:STDOUT: %Main.import_ref.157 = import_ref Main//basic_import_generic_constraint, loc3_23, unloaded +// CHECK:STDOUT: %Main.J: %J.type.28e = import_ref Main//basic_import_generic_constraint, J, loaded [concrete = constants.%empty_struct.f37] +// CHECK:STDOUT: %Main.import_ref.afe = import_ref Main//basic_import_generic_constraint, loc5_28, unloaded +// CHECK:STDOUT: %Main.import_ref.a43 = import_ref Main//basic_import_generic_constraint, loc3_23, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//basic_import_generic_constraint, loc3_14, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.9e3: type = import_ref Main//basic_import_generic_constraint, loc5_18, loaded [symbolic = @J.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %Main.import_ref.808: type = import_ref Main//basic_import_generic_constraint, loc5_27, loaded [symbolic = @J.WithSelf.Self.as_type.impls.I.type.require.%I.type (constants.%I.type.50f)] +// CHECK:STDOUT: %Main.import_ref.849: type = import_ref Main//basic_import_generic_constraint, loc5_18, loaded [symbolic = @J.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %Main.import_ref.e01: type = import_ref Main//basic_import_generic_constraint, loc5_27, loaded [symbolic = @J.WithSelf.Self.as_type.impls.I.type.require.%I.type (constants.%I.type.3fe)] // CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//basic_import_generic_constraint, loc4_15, loaded [symbolic = @J.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.f7be13.2: @J.%J.type (%J.type.d682d6.1) = import_ref Main//basic_import_generic_constraint, loc4_24, loaded [symbolic = @J.%Self (constants.%Self.e1f642.1)] -// CHECK:STDOUT: %Main.import_ref.7ea = import_ref Main//basic_import_generic_constraint, loc4_24, unloaded +// CHECK:STDOUT: %Main.import_ref.006c33.2: @J.%J.type (%J.type.d682d6.1) = import_ref Main//basic_import_generic_constraint, loc4_24, loaded [symbolic = @J.%Self (constants.%Self.e1f642.1)] +// CHECK:STDOUT: %Main.import_ref.694 = import_ref Main//basic_import_generic_constraint, loc4_24, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.5: type = import_ref Main//basic_import_generic_constraint, loc4_15, loaded [symbolic = @J.%T (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -721,7 +721,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: impl_decl @C.as.I.impl [concrete] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %J.ref: %J.type.4db = name_ref J, imports.%Main.J [concrete = constants.%empty_struct.c21] +// CHECK:STDOUT: %J.ref: %J.type.28e = name_ref J, imports.%Main.J [concrete = constants.%empty_struct.f37] // CHECK:STDOUT: %.loc5_14: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct.a40] // CHECK:STDOUT: %.loc5_15: type = converted %.loc5_14, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %J.type: type = facet_type <@J, @J(constants.%empty_struct_type)> [concrete = constants.%J.type.d682d6.2] @@ -732,12 +732,12 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.501)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a67)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.157 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.a43 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -753,22 +753,22 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: constraint { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.7ea -// CHECK:STDOUT: extend imports.%Main.import_ref.765 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.694 +// CHECK:STDOUT: extend imports.%Main.import_ref.afe // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: @J.WithSelf.Self.as_type.impls.I.type.require { -// CHECK:STDOUT: require imports.%Main.import_ref.9e3 impls imports.%Main.import_ref.808 +// CHECK:STDOUT: require imports.%Main.import_ref.849 impls imports.%Main.import_ref.e01 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @J.WithSelf.Self.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.4: type, imports.%Main.import_ref.f7be13.2: @J.%J.type (%J.type.d682d6.1)) [from "basic_import_generic_constraint.carbon"] { +// CHECK:STDOUT: generic require @J.WithSelf.Self.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.4: type, imports.%Main.import_ref.006c33.2: @J.%J.type (%J.type.d682d6.1)) [from "basic_import_generic_constraint.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.d682d6.1)] // CHECK:STDOUT: %Self: @J.WithSelf.Self.as_type.impls.I.type.require.%J.type (%J.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f642.1)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.I.impl: %C.ref as %J.type { @@ -796,11 +796,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %Self => constants.%Self.501 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %Self => constants.%Self.a67 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.501) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.a67) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -811,7 +811,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %J.type => constants.%J.type.d682d6.1 // CHECK:STDOUT: %Self => constants.%Self.e1f642.1 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %I.type => constants.%I.type.50f +// CHECK:STDOUT: %I.type => constants.%I.type.3fe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J(constants.%empty_struct_type) { @@ -825,19 +825,19 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: specific @J.WithSelf(constants.%empty_struct_type, constants.%C.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%empty_struct_type -// CHECK:STDOUT: %I.type => constants.%I.type.317 -// CHECK:STDOUT: %require_complete => constants.%complete_type.d9a +// CHECK:STDOUT: %I.type => constants.%I.type.81d +// CHECK:STDOUT: %require_complete => constants.%complete_type.7da // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%empty_struct_type) { // CHECK:STDOUT: %T => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.317 -// CHECK:STDOUT: %Self => constants.%Self.e86 +// CHECK:STDOUT: %I.type => constants.%I.type.81d +// CHECK:STDOUT: %Self => constants.%Self.47c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%empty_struct_type, constants.%Self.501) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%empty_struct_type, constants.%Self.a67) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -846,14 +846,14 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %J.type => constants.%J.type.d682d6.2 // CHECK:STDOUT: %Self => constants.%C.type.facet // CHECK:STDOUT: %Self.as_type => constants.%C -// CHECK:STDOUT: %I.type => constants.%I.type.317 +// CHECK:STDOUT: %I.type => constants.%I.type.81d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf(constants.%empty_struct_type, constants.%Self.e1f642.1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%empty_struct_type -// CHECK:STDOUT: %I.type => constants.%I.type.317 -// CHECK:STDOUT: %require_complete => constants.%complete_type.d9a +// CHECK:STDOUT: %I.type => constants.%I.type.81d +// CHECK:STDOUT: %require_complete => constants.%complete_type.7da // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%empty_struct_type, constants.%I.facet) { @@ -870,24 +870,24 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.50f: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self.626: %I.type.50f = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.impl_witness.68a: = impl_witness @C.as.I.impl.940.%I.impl_witness_table, @C.as.I.impl.940(%T) [symbolic] -// CHECK:STDOUT: %require_complete.df9: = require_complete_type %I.type.50f [symbolic] -// CHECK:STDOUT: %I.facet.81e: %I.type.50f = facet_value %C, (%I.impl_witness.68a) [symbolic] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self.191: %I.type.3fe = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.impl_witness.fb7: = impl_witness @C.as.I.impl.da9.%I.impl_witness_table, @C.as.I.impl.da9(%T) [symbolic] +// CHECK:STDOUT: %require_complete.45e: = require_complete_type %I.type.3fe [symbolic] +// CHECK:STDOUT: %I.facet.0de: %I.type.3fe = facet_value %C, (%I.impl_witness.fb7) [symbolic] // CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %I.type.e30: type = facet_type <@I, @I(%ptr)> [symbolic] -// CHECK:STDOUT: %I.impl_witness.9c2: = impl_witness @C.as.I.impl.a85.%I.impl_witness_table, @C.as.I.impl.a85(%T) [symbolic] -// CHECK:STDOUT: %Self.c76: %I.type.e30 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %require_complete.c44: = require_complete_type %I.type.e30 [symbolic] -// CHECK:STDOUT: %I.facet.11a: %I.type.e30 = facet_value %C, (%I.impl_witness.9c2) [symbolic] -// CHECK:STDOUT: %N.type.cef: type = generic_named_constaint_type @N [concrete] -// CHECK:STDOUT: %empty_struct: %N.type.cef = struct_value () [concrete] +// CHECK:STDOUT: %I.type.a76: type = facet_type <@I, @I(%ptr)> [symbolic] +// CHECK:STDOUT: %I.impl_witness.0d7: = impl_witness @C.as.I.impl.982.%I.impl_witness_table, @C.as.I.impl.982(%T) [symbolic] +// CHECK:STDOUT: %Self.0ef: %I.type.a76 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %require_complete.078: = require_complete_type %I.type.a76 [symbolic] +// CHECK:STDOUT: %I.facet.c1f: %I.type.a76 = facet_value %C, (%I.impl_witness.0d7) [symbolic] +// CHECK:STDOUT: %N.type.b76: type = generic_named_constaint_type @N [concrete] +// CHECK:STDOUT: %empty_struct: %N.type.b76 = struct_value () [concrete] // CHECK:STDOUT: %N.type.d68: type = facet_type <@N, @N(%T)> [symbolic] -// CHECK:STDOUT: %Self.7f4: %N.type.d68 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.7f4 [symbolic] +// CHECK:STDOUT: %Self.22b: %N.type.d68 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.22b [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -897,7 +897,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: .N = %N.decl // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %I.decl: %I.type.48c = interface_decl @I [concrete = constants.%I.generic] { +// CHECK:STDOUT: %I.decl: %I.type.335 = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_17.1: type = splice_block %.loc5_17.2 [concrete = type] { @@ -906,47 +906,47 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc5_14.2: type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.I.impl.940 [concrete] { +// CHECK:STDOUT: impl_decl @C.as.I.impl.da9 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %I.ref.loc8: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref.loc8: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref.loc8: type = name_ref T, %T.loc8_15.1 [symbolic = %T.loc8_15.2 (constants.%T)] -// CHECK:STDOUT: %I.type.loc8_32.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc8_32.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc8_32.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc8_32.2 (constants.%I.type.3fe)] // CHECK:STDOUT: %.loc8_18.1: type = splice_block %.loc8_18.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc8: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc8_18.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc8_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.I.impl.940 [concrete] { +// CHECK:STDOUT: impl_decl @C.as.I.impl.da9 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc9: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %I.ref.loc9: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref.loc9: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref.loc9: type = name_ref T, %T.loc9 [symbolic = %T.loc8_15.2 (constants.%T)] -// CHECK:STDOUT: %I.type.loc9: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc8_32.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc9: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc8_32.2 (constants.%I.type.3fe)] // CHECK:STDOUT: %.loc9_18.1: type = splice_block %.loc9_18.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc9: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc9_18.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc9: type = symbolic_binding T, 0 [symbolic = %T.loc8_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.I.impl.a85 [concrete] { +// CHECK:STDOUT: impl_decl @C.as.I.impl.982 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc12_15.1 [symbolic = %T.loc12_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc12_32.1: type = ptr_type %T.ref [symbolic = %ptr.loc12_32.2 (constants.%ptr)] -// CHECK:STDOUT: %I.type.loc12_33.1: type = facet_type <@I, @I(constants.%ptr)> [symbolic = %I.type.loc12_33.2 (constants.%I.type.e30)] +// CHECK:STDOUT: %I.type.loc12_33.1: type = facet_type <@I, @I(constants.%ptr)> [symbolic = %I.type.loc12_33.2 (constants.%I.type.a76)] // CHECK:STDOUT: %.loc12_18.1: type = splice_block %.loc12_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc12_18.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc12_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc12_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.decl: %N.type.cef = constraint_decl @N [concrete = constants.%empty_struct] { +// CHECK:STDOUT: %N.decl: %N.type.b76 = constraint_decl @N [concrete = constants.%empty_struct] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14_18.1: type = splice_block %.loc14_18.2 [concrete = type] { @@ -961,11 +961,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T.loc5_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc5_14.1)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self.loc5_23.2: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.626)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc5_14.1)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self.loc5_23.2: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.191)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc5_23.1: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.626)] +// CHECK:STDOUT: %Self.loc5_23.1: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.191)] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -981,10 +981,10 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T.loc14_15.1)> [symbolic = %N.type (constants.%N.type.d68)] -// CHECK:STDOUT: %Self.loc14_24.2: @N.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self.7f4)] +// CHECK:STDOUT: %Self.loc14_24.2: @N.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self.22b)] // CHECK:STDOUT: // CHECK:STDOUT: constraint { -// CHECK:STDOUT: %Self.loc14_24.1: @N.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self.7f4)] +// CHECK:STDOUT: %Self.loc14_24.1: @N.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self.22b)] // CHECK:STDOUT: %N.WithSelf.decl = constraint_with_self_decl @N [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -992,11 +992,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: require %Self.as_type.loc15_18.1 impls %I.type.loc15_27.1 // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.as_type.loc15_18.1: type = facet_access_type @N.%Self.loc14_24.1 [symbolic = %Self.as_type.loc15_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @N.%T.loc14_15.2 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %I.type.loc15_27.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc15_27.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc15_27.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc15_27.2 (constants.%I.type.3fe)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc15: type = specific_constant @N.WithSelf.Self.as_type.impls.I.type.require.%I.type.loc15_27.1, @N.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.7f4) [symbolic = %I.type (constants.%I.type.50f)] +// CHECK:STDOUT: %.loc15: type = specific_constant @N.WithSelf.Self.as_type.impls.I.type.require.%I.type.loc15_27.1, @N.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.22b) [symbolic = %I.type (constants.%I.type.3fe)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc14_24.1 @@ -1016,22 +1016,22 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.I.type.require(@N.%T.loc14_15.2: type, @N.%Self.loc14_24.1: @N.%N.type (%N.type.d68)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d68)] -// CHECK:STDOUT: %Self: @N.WithSelf.Self.as_type.impls.I.type.require.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.7f4)] +// CHECK:STDOUT: %Self: @N.WithSelf.Self.as_type.impls.I.type.require.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.22b)] // CHECK:STDOUT: %Self.as_type.loc15_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc15_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %I.type.loc15_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc15_27.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc15_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc15_27.2 (constants.%I.type.3fe)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @C.as.I.impl.940(%T.loc8_15.1: type) { +// CHECK:STDOUT: generic impl @C.as.I.impl.da9(%T.loc8_15.1: type) { // CHECK:STDOUT: %T.loc8_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc8_15.2 (constants.%T)] -// CHECK:STDOUT: %I.type.loc8_32.2: type = facet_type <@I, @I(%T.loc8_15.2)> [symbolic = %I.type.loc8_32.2 (constants.%I.type.50f)] -// CHECK:STDOUT: %I.impl_witness.loc8_33.2: = impl_witness %I.impl_witness_table, @C.as.I.impl.940(%T.loc8_15.2) [symbolic = %I.impl_witness.loc8_33.2 (constants.%I.impl_witness.68a)] +// CHECK:STDOUT: %I.type.loc8_32.2: type = facet_type <@I, @I(%T.loc8_15.2)> [symbolic = %I.type.loc8_32.2 (constants.%I.type.3fe)] +// CHECK:STDOUT: %I.impl_witness.loc8_33.2: = impl_witness %I.impl_witness_table, @C.as.I.impl.da9(%T.loc8_15.2) [symbolic = %I.impl_witness.loc8_33.2 (constants.%I.impl_witness.fb7)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.loc8_32.2 [symbolic = %require_complete (constants.%require_complete.df9)] +// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.loc8_32.2 [symbolic = %require_complete (constants.%require_complete.45e)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.ref.loc8 as %I.type.loc8_32.1 { -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.940 [concrete] -// CHECK:STDOUT: %I.impl_witness.loc8_33.1: = impl_witness %I.impl_witness_table, @C.as.I.impl.940(constants.%T) [symbolic = %I.impl_witness.loc8_33.2 (constants.%I.impl_witness.68a)] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.da9 [concrete] +// CHECK:STDOUT: %I.impl_witness.loc8_33.1: = impl_witness %I.impl_witness_table, @C.as.I.impl.da9(constants.%T) [symbolic = %I.impl_witness.loc8_33.2 (constants.%I.impl_witness.fb7)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %I.type.loc8_32.1 @@ -1039,18 +1039,18 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @C.as.I.impl.a85(%T.loc12_15.1: type) { +// CHECK:STDOUT: generic impl @C.as.I.impl.982(%T.loc12_15.1: type) { // CHECK:STDOUT: %T.loc12_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc12_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc12_32.2: type = ptr_type %T.loc12_15.2 [symbolic = %ptr.loc12_32.2 (constants.%ptr)] -// CHECK:STDOUT: %I.type.loc12_33.2: type = facet_type <@I, @I(%ptr.loc12_32.2)> [symbolic = %I.type.loc12_33.2 (constants.%I.type.e30)] -// CHECK:STDOUT: %I.impl_witness.loc12_35.2: = impl_witness %I.impl_witness_table, @C.as.I.impl.a85(%T.loc12_15.2) [symbolic = %I.impl_witness.loc12_35.2 (constants.%I.impl_witness.9c2)] +// CHECK:STDOUT: %I.type.loc12_33.2: type = facet_type <@I, @I(%ptr.loc12_32.2)> [symbolic = %I.type.loc12_33.2 (constants.%I.type.a76)] +// CHECK:STDOUT: %I.impl_witness.loc12_35.2: = impl_witness %I.impl_witness_table, @C.as.I.impl.982(%T.loc12_15.2) [symbolic = %I.impl_witness.loc12_35.2 (constants.%I.impl_witness.0d7)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.loc12_33.2 [symbolic = %require_complete (constants.%require_complete.c44)] +// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.loc12_33.2 [symbolic = %require_complete (constants.%require_complete.078)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.ref as %I.type.loc12_33.1 { -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.a85 [concrete] -// CHECK:STDOUT: %I.impl_witness.loc12_35.1: = impl_witness %I.impl_witness_table, @C.as.I.impl.a85(constants.%T) [symbolic = %I.impl_witness.loc12_35.2 (constants.%I.impl_witness.9c2)] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.982 [concrete] +// CHECK:STDOUT: %I.impl_witness.loc12_35.1: = impl_witness %I.impl_witness_table, @C.as.I.impl.982(constants.%T) [symbolic = %I.impl_witness.loc12_35.2 (constants.%I.impl_witness.0d7)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %I.type.loc12_33.1 @@ -1070,21 +1070,21 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T.loc5_14.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.626 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.191 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.626) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.191) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.as.I.impl.940(constants.%T) { +// CHECK:STDOUT: specific @C.as.I.impl.da9(constants.%T) { // CHECK:STDOUT: %T.loc8_15.2 => constants.%T -// CHECK:STDOUT: %I.type.loc8_32.2 => constants.%I.type.50f -// CHECK:STDOUT: %I.impl_witness.loc8_33.2 => constants.%I.impl_witness.68a +// CHECK:STDOUT: %I.type.loc8_32.2 => constants.%I.type.3fe +// CHECK:STDOUT: %I.impl_witness.loc8_33.2 => constants.%I.impl_witness.fb7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%I.facet.81e) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%I.facet.0de) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1092,22 +1092,22 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T.loc5_14.1 => constants.%ptr // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.e30 -// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.c76 +// CHECK:STDOUT: %I.type => constants.%I.type.a76 +// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.0ef // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.as.I.impl.a85(constants.%T) { +// CHECK:STDOUT: specific @C.as.I.impl.982(constants.%T) { // CHECK:STDOUT: %T.loc12_15.2 => constants.%T // CHECK:STDOUT: %ptr.loc12_32.2 => constants.%ptr -// CHECK:STDOUT: %I.type.loc12_33.2 => constants.%I.type.e30 -// CHECK:STDOUT: %I.impl_witness.loc12_35.2 => constants.%I.impl_witness.9c2 +// CHECK:STDOUT: %I.type.loc12_33.2 => constants.%I.type.a76 +// CHECK:STDOUT: %I.impl_witness.loc12_35.2 => constants.%I.impl_witness.0d7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr, constants.%Self.626) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr, constants.%Self.191) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr, constants.%I.facet.11a) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr, constants.%I.facet.c1f) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1115,39 +1115,39 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T.loc14_15.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf(constants.%T, constants.%Self.7f4) {} +// CHECK:STDOUT: specific @N.WithSelf(constants.%T, constants.%Self.22b) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.7f4) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.22b) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %N.type => constants.%N.type.d68 -// CHECK:STDOUT: %Self => constants.%Self.7f4 +// CHECK:STDOUT: %Self => constants.%Self.22b // CHECK:STDOUT: %Self.as_type.loc15_18.2 => constants.%Self.as_type -// CHECK:STDOUT: %I.type.loc15_27.2 => constants.%I.type.50f +// CHECK:STDOUT: %I.type.loc15_27.2 => constants.%I.type.3fe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_import_generic.impl.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.50f: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self.501: %I.type.50f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self.a67: %I.type.3fe = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %I.impl_witness.fbf: = impl_witness imports.%I.impl_witness_table.85e, @C.as.I.impl.39c(%T) [symbolic] -// CHECK:STDOUT: %require_complete.df9: = require_complete_type %I.type.50f [symbolic] +// CHECK:STDOUT: %I.impl_witness.17f: = impl_witness imports.%I.impl_witness_table.c49, @C.as.I.impl.119(%T) [symbolic] +// CHECK:STDOUT: %require_complete.45e: = require_complete_type %I.type.3fe [symbolic] // CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %I.type.e30: type = facet_type <@I, @I(%ptr)> [symbolic] -// CHECK:STDOUT: %Self.baa: %I.type.e30 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.impl_witness.fbe: = impl_witness imports.%I.impl_witness_table.82a, @C.as.I.impl.2f1(%T) [symbolic] -// CHECK:STDOUT: %require_complete.c44: = require_complete_type %I.type.e30 [symbolic] +// CHECK:STDOUT: %I.type.a76: type = facet_type <@I, @I(%ptr)> [symbolic] +// CHECK:STDOUT: %Self.74c: %I.type.a76 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.impl_witness.b8e: = impl_witness imports.%I.impl_witness_table.78a, @C.as.I.impl.238(%T) [symbolic] +// CHECK:STDOUT: %require_complete.078: = require_complete_type %I.type.a76 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %N.type.cef: type = generic_named_constaint_type @N [concrete] -// CHECK:STDOUT: %empty_struct: %N.type.cef = struct_value () [concrete] +// CHECK:STDOUT: %N.type.b76: type = generic_named_constaint_type @N [concrete] +// CHECK:STDOUT: %empty_struct: %N.type.b76 = struct_value () [concrete] // CHECK:STDOUT: %N.type.d682d6.1: type = facet_type <@N, @N(%T)> [symbolic] // CHECK:STDOUT: %Self.e1f: %N.type.d682d6.1 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.e1f [symbolic] @@ -1157,30 +1157,30 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//import_generic, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.I: %I.type.48c = import_ref Main//import_generic, I, loaded [concrete = constants.%I.generic] -// CHECK:STDOUT: %Main.N: %N.type.cef = import_ref Main//import_generic, N, loaded [concrete = constants.%empty_struct] -// CHECK:STDOUT: %Main.import_ref.157 = import_ref Main//import_generic, loc5_23, unloaded +// CHECK:STDOUT: %Main.I: %I.type.335 = import_ref Main//import_generic, I, loaded [concrete = constants.%I.generic] +// CHECK:STDOUT: %Main.N: %N.type.b76 = import_ref Main//import_generic, N, loaded [concrete = constants.%empty_struct] +// CHECK:STDOUT: %Main.import_ref.a43 = import_ref Main//import_generic, loc5_23, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//import_generic, loc5_14, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.65d = import_ref Main//import_generic, loc8_33, unloaded +// CHECK:STDOUT: %Main.import_ref.c0d = import_ref Main//import_generic, loc8_33, unloaded // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//import_generic, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//import_generic, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %I.impl_witness_table.85e = impl_witness_table (), @C.as.I.impl.39c [concrete] -// CHECK:STDOUT: %Main.import_ref.f5a097.1: type = import_ref Main//import_generic, loc8_24, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.80834b.1: type = import_ref Main//import_generic, loc8_32, loaded [symbolic = @C.as.I.impl.39c.%I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Main.import_ref.891 = import_ref Main//import_generic, loc8_32, unloaded -// CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//import_generic, loc8_15, loaded [symbolic = @C.as.I.impl.39c.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.72a = import_ref Main//import_generic, loc12_35, unloaded -// CHECK:STDOUT: %I.impl_witness_table.82a = impl_witness_table (), @C.as.I.impl.2f1 [concrete] -// CHECK:STDOUT: %Main.import_ref.f5a097.2: type = import_ref Main//import_generic, loc12_24, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.123: type = import_ref Main//import_generic, loc12_33, loaded [symbolic = @C.as.I.impl.2f1.%I.type (constants.%I.type.e30)] -// CHECK:STDOUT: %Main.import_ref.431 = import_ref Main//import_generic, loc12_33, unloaded -// CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//import_generic, loc12_15, loaded [symbolic = @C.as.I.impl.2f1.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.db9 = import_ref Main//import_generic, loc15_28, unloaded -// CHECK:STDOUT: %Main.import_ref.9e3: type = import_ref Main//import_generic, loc15_18, loaded [symbolic = @N.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %Main.import_ref.80834b.2: type = import_ref Main//import_generic, loc15_27, loaded [symbolic = @N.WithSelf.Self.as_type.impls.I.type.require.%I.type (constants.%I.type.50f)] +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//import_generic, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %I.impl_witness_table.c49 = impl_witness_table (), @C.as.I.impl.119 [concrete] +// CHECK:STDOUT: %Main.import_ref.335f1c.1: type = import_ref Main//import_generic, loc8_24, loaded [concrete = constants.%C] +// CHECK:STDOUT: %Main.import_ref.e015f6.1: type = import_ref Main//import_generic, loc8_32, loaded [symbolic = @C.as.I.impl.119.%I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Main.import_ref.e87 = import_ref Main//import_generic, loc8_32, unloaded +// CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//import_generic, loc8_15, loaded [symbolic = @C.as.I.impl.119.%T (constants.%T)] +// CHECK:STDOUT: %Main.import_ref.496 = import_ref Main//import_generic, loc12_35, unloaded +// CHECK:STDOUT: %I.impl_witness_table.78a = impl_witness_table (), @C.as.I.impl.238 [concrete] +// CHECK:STDOUT: %Main.import_ref.335f1c.2: type = import_ref Main//import_generic, loc12_24, loaded [concrete = constants.%C] +// CHECK:STDOUT: %Main.import_ref.a08: type = import_ref Main//import_generic, loc12_33, loaded [symbolic = @C.as.I.impl.238.%I.type (constants.%I.type.a76)] +// CHECK:STDOUT: %Main.import_ref.891 = import_ref Main//import_generic, loc12_33, unloaded +// CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//import_generic, loc12_15, loaded [symbolic = @C.as.I.impl.238.%T (constants.%T)] +// CHECK:STDOUT: %Main.import_ref.e24 = import_ref Main//import_generic, loc15_28, unloaded +// CHECK:STDOUT: %Main.import_ref.849: type = import_ref Main//import_generic, loc15_18, loaded [symbolic = @N.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %Main.import_ref.e015f6.2: type = import_ref Main//import_generic, loc15_27, loaded [symbolic = @N.WithSelf.Self.as_type.impls.I.type.require.%I.type (constants.%I.type.3fe)] // CHECK:STDOUT: %Main.import_ref.b3bc94.6: type = import_ref Main//import_generic, loc14_15, loaded [symbolic = @N.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.f7be13.2: @N.%N.type (%N.type.d682d6.1) = import_ref Main//import_generic, loc14_24, loaded [symbolic = @N.%Self (constants.%Self.e1f)] -// CHECK:STDOUT: %Main.import_ref.7ea = import_ref Main//import_generic, loc14_24, unloaded +// CHECK:STDOUT: %Main.import_ref.006c33.2: @N.%N.type (%N.type.d682d6.1) = import_ref Main//import_generic, loc14_24, loaded [symbolic = @N.%Self (constants.%Self.e1f)] +// CHECK:STDOUT: %Main.import_ref.694 = import_ref Main//import_generic, loc14_24, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.7: type = import_ref Main//import_generic, loc14_15, loaded [symbolic = @N.%T (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1192,65 +1192,65 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_30.1 = import // CHECK:STDOUT: %default.import.loc2_30.2 = import -// CHECK:STDOUT: impl_decl @C.as.I.impl.940604.1 [concrete] { +// CHECK:STDOUT: impl_decl @C.as.I.impl.da9cee.1 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, imports.%Main.I [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, imports.%Main.I [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_15.1 [symbolic = %T.loc8_15.2 (constants.%T)] -// CHECK:STDOUT: %I.type.loc8_32.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc8_32.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc8_32.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc8_32.2 (constants.%I.type.3fe)] // CHECK:STDOUT: %.loc8_18.1: type = splice_block %.loc8_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc8_18.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc8_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.I.impl.940604.2 [concrete] { +// CHECK:STDOUT: impl_decl @C.as.I.impl.da9cee.2 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, imports.%Main.I [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, imports.%Main.I [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc14_15.1 [symbolic = %T.loc14_15.2 (constants.%T)] -// CHECK:STDOUT: %I.type.loc14_32.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc14_32.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc14_32.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc14_32.2 (constants.%I.type.3fe)] // CHECK:STDOUT: %.loc14_18.1: type = splice_block %.loc14_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc14_18.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc14_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc14_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.I.impl.a854de.1 [concrete] { +// CHECK:STDOUT: impl_decl @C.as.I.impl.982b7a.1 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, imports.%Main.I [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, imports.%Main.I [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc20_15.1 [symbolic = %T.loc20_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc20_32.1: type = ptr_type %T.ref [symbolic = %ptr.loc20_32.2 (constants.%ptr)] -// CHECK:STDOUT: %I.type.loc20_33.1: type = facet_type <@I, @I(constants.%ptr)> [symbolic = %I.type.loc20_33.2 (constants.%I.type.e30)] +// CHECK:STDOUT: %I.type.loc20_33.1: type = facet_type <@I, @I(constants.%ptr)> [symbolic = %I.type.loc20_33.2 (constants.%I.type.a76)] // CHECK:STDOUT: %.loc20_18.1: type = splice_block %.loc20_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc20_18.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc20_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc20_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.I.impl.a854de.2 [concrete] { +// CHECK:STDOUT: impl_decl @C.as.I.impl.982b7a.2 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, imports.%Main.I [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, imports.%Main.I [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc26_15.1 [symbolic = %T.loc26_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc26_32.1: type = ptr_type %T.ref [symbolic = %ptr.loc26_32.2 (constants.%ptr)] -// CHECK:STDOUT: %I.type.loc26_33.1: type = facet_type <@I, @I(constants.%ptr)> [symbolic = %I.type.loc26_33.2 (constants.%I.type.e30)] +// CHECK:STDOUT: %I.type.loc26_33.1: type = facet_type <@I, @I(constants.%ptr)> [symbolic = %I.type.loc26_33.2 (constants.%I.type.a76)] // CHECK:STDOUT: %.loc26_18.1: type = splice_block %.loc26_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc26_18.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc26_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc26_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.I.impl.29284f.1 [concrete] { +// CHECK:STDOUT: impl_decl @C.as.I.impl.042f52.1 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %N.ref: %N.type.cef = name_ref N, imports.%Main.N [concrete = constants.%empty_struct] +// CHECK:STDOUT: %N.ref: %N.type.b76 = name_ref N, imports.%Main.N [concrete = constants.%empty_struct] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc32_15.1 [symbolic = %T.loc32_15.2 (constants.%T)] // CHECK:STDOUT: %N.type.loc32_32.1: type = facet_type <@N, @N(constants.%T)> [symbolic = %N.type.loc32_32.2 (constants.%N.type.d682d6.1)] // CHECK:STDOUT: %.loc32_18.1: type = splice_block %.loc32_18.2 [concrete = type] { @@ -1259,11 +1259,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc32_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc32_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.I.impl.29284f.2 [concrete] { +// CHECK:STDOUT: impl_decl @C.as.I.impl.042f52.2 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %N.ref: %N.type.cef = name_ref N, imports.%Main.N [concrete = constants.%empty_struct] +// CHECK:STDOUT: %N.ref: %N.type.b76 = name_ref N, imports.%Main.N [concrete = constants.%empty_struct] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc37_15.1 [symbolic = %T.loc37_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc37_32.1: type = ptr_type %T.ref [symbolic = %ptr.loc37_32.2 (constants.%ptr)] // CHECK:STDOUT: %N.type.loc37_33.1: type = facet_type <@N, @N(constants.%ptr)> [symbolic = %N.type.loc37_33.2 (constants.%N.type.d682d6.2)] @@ -1279,12 +1279,12 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.501)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a67)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.157 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.a43 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -1300,65 +1300,65 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: constraint { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.7ea -// CHECK:STDOUT: extend imports.%Main.import_ref.db9 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.694 +// CHECK:STDOUT: extend imports.%Main.import_ref.e24 // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: @N.WithSelf.Self.as_type.impls.I.type.require { -// CHECK:STDOUT: require imports.%Main.import_ref.9e3 impls imports.%Main.import_ref.80834b.2 +// CHECK:STDOUT: require imports.%Main.import_ref.849 impls imports.%Main.import_ref.e015f6.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.6: type, imports.%Main.import_ref.f7be13.2: @N.%N.type (%N.type.d682d6.1)) [from "import_generic.carbon"] { +// CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.6: type, imports.%Main.import_ref.006c33.2: @N.%N.type (%N.type.d682d6.1)) [from "import_generic.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d682d6.1)] // CHECK:STDOUT: %Self: @N.WithSelf.Self.as_type.impls.I.type.require.%N.type (%N.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @C.as.I.impl.39c(imports.%Main.import_ref.b3bc94.3: type) [from "import_generic.carbon"] { +// CHECK:STDOUT: generic impl @C.as.I.impl.119(imports.%Main.import_ref.b3bc94.3: type) [from "import_generic.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table.85e, @C.as.I.impl.39c(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.fbf)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table.c49, @C.as.I.impl.119(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.17f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.df9)] +// CHECK:STDOUT: %require_complete: = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.45e)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%Main.import_ref.f5a097.1 as imports.%Main.import_ref.80834b.1 { +// CHECK:STDOUT: impl: imports.%Main.import_ref.335f1c.1 as imports.%Main.import_ref.e015f6.1 { // CHECK:STDOUT: !members: -// CHECK:STDOUT: extend imports.%Main.import_ref.891 -// CHECK:STDOUT: witness = imports.%Main.import_ref.65d +// CHECK:STDOUT: extend imports.%Main.import_ref.e87 +// CHECK:STDOUT: witness = imports.%Main.import_ref.c0d // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @C.as.I.impl.2f1(imports.%Main.import_ref.b3bc94.4: type) [from "import_generic.carbon"] { +// CHECK:STDOUT: generic impl @C.as.I.impl.238(imports.%Main.import_ref.b3bc94.4: type) [from "import_generic.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic = %ptr (constants.%ptr)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%ptr)> [symbolic = %I.type (constants.%I.type.e30)] -// CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table.82a, @C.as.I.impl.2f1(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.fbe)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%ptr)> [symbolic = %I.type (constants.%I.type.a76)] +// CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table.78a, @C.as.I.impl.238(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.b8e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.c44)] +// CHECK:STDOUT: %require_complete: = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.078)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%Main.import_ref.f5a097.2 as imports.%Main.import_ref.123 { +// CHECK:STDOUT: impl: imports.%Main.import_ref.335f1c.2 as imports.%Main.import_ref.a08 { // CHECK:STDOUT: !members: -// CHECK:STDOUT: extend imports.%Main.import_ref.431 -// CHECK:STDOUT: witness = imports.%Main.import_ref.72a +// CHECK:STDOUT: extend imports.%Main.import_ref.891 +// CHECK:STDOUT: witness = imports.%Main.import_ref.496 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @C.as.I.impl.940604.1(%T.loc8_15.1: type) { +// CHECK:STDOUT: generic impl @C.as.I.impl.da9cee.1(%T.loc8_15.1: type) { // CHECK:STDOUT: %T.loc8_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc8_15.2 (constants.%T)] -// CHECK:STDOUT: %I.type.loc8_32.2: type = facet_type <@I, @I(%T.loc8_15.2)> [symbolic = %I.type.loc8_32.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc8_32.2: type = facet_type <@I, @I(%T.loc8_15.2)> [symbolic = %I.type.loc8_32.2 (constants.%I.type.3fe)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.ref as %I.type.loc8_32.1; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @C.as.I.impl.940604.2(%T.loc14_15.1: type) { +// CHECK:STDOUT: generic impl @C.as.I.impl.da9cee.2(%T.loc14_15.1: type) { // CHECK:STDOUT: %T.loc14_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc14_15.2 (constants.%T)] -// CHECK:STDOUT: %I.type.loc14_32.2: type = facet_type <@I, @I(%T.loc14_15.2)> [symbolic = %I.type.loc14_32.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc14_32.2: type = facet_type <@I, @I(%T.loc14_15.2)> [symbolic = %I.type.loc14_32.2 (constants.%I.type.3fe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -1369,18 +1369,18 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @C.as.I.impl.a854de.1(%T.loc20_15.1: type) { +// CHECK:STDOUT: generic impl @C.as.I.impl.982b7a.1(%T.loc20_15.1: type) { // CHECK:STDOUT: %T.loc20_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc20_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc20_32.2: type = ptr_type %T.loc20_15.2 [symbolic = %ptr.loc20_32.2 (constants.%ptr)] -// CHECK:STDOUT: %I.type.loc20_33.2: type = facet_type <@I, @I(%ptr.loc20_32.2)> [symbolic = %I.type.loc20_33.2 (constants.%I.type.e30)] +// CHECK:STDOUT: %I.type.loc20_33.2: type = facet_type <@I, @I(%ptr.loc20_32.2)> [symbolic = %I.type.loc20_33.2 (constants.%I.type.a76)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.ref as %I.type.loc20_33.1; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @C.as.I.impl.a854de.2(%T.loc26_15.1: type) { +// CHECK:STDOUT: generic impl @C.as.I.impl.982b7a.2(%T.loc26_15.1: type) { // CHECK:STDOUT: %T.loc26_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc26_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc26_32.2: type = ptr_type %T.loc26_15.2 [symbolic = %ptr.loc26_32.2 (constants.%ptr)] -// CHECK:STDOUT: %I.type.loc26_33.2: type = facet_type <@I, @I(%ptr.loc26_32.2)> [symbolic = %I.type.loc26_33.2 (constants.%I.type.e30)] +// CHECK:STDOUT: %I.type.loc26_33.2: type = facet_type <@I, @I(%ptr.loc26_32.2)> [symbolic = %I.type.loc26_33.2 (constants.%I.type.a76)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -1391,14 +1391,14 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @C.as.I.impl.29284f.1(%T.loc32_15.1: type) { +// CHECK:STDOUT: generic impl @C.as.I.impl.042f52.1(%T.loc32_15.1: type) { // CHECK:STDOUT: %T.loc32_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc32_15.2 (constants.%T)] // CHECK:STDOUT: %N.type.loc32_32.2: type = facet_type <@N, @N(%T.loc32_15.2)> [symbolic = %N.type.loc32_32.2 (constants.%N.type.d682d6.1)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.ref as %N.type.loc32_32.1; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @C.as.I.impl.29284f.2(%T.loc37_15.1: type) { +// CHECK:STDOUT: generic impl @C.as.I.impl.042f52.2(%T.loc37_15.1: type) { // CHECK:STDOUT: %T.loc37_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc37_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc37_32.2: type = ptr_type %T.loc37_15.2 [symbolic = %ptr.loc37_32.2 (constants.%ptr)] // CHECK:STDOUT: %N.type.loc37_33.2: type = facet_type <@N, @N(%ptr.loc37_32.2)> [symbolic = %N.type.loc37_33.2 (constants.%N.type.d682d6.2)] @@ -1410,62 +1410,62 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %Self => constants.%Self.501 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %Self => constants.%Self.a67 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.501) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.a67) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.as.I.impl.39c(constants.%T) { +// CHECK:STDOUT: specific @C.as.I.impl.119(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.fbf +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.17f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%ptr) { // CHECK:STDOUT: %T => constants.%ptr // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.e30 -// CHECK:STDOUT: %Self => constants.%Self.baa +// CHECK:STDOUT: %I.type => constants.%I.type.a76 +// CHECK:STDOUT: %Self => constants.%Self.74c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.as.I.impl.2f1(constants.%T) { +// CHECK:STDOUT: specific @C.as.I.impl.238(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %ptr => constants.%ptr -// CHECK:STDOUT: %I.type => constants.%I.type.e30 -// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.fbe +// CHECK:STDOUT: %I.type => constants.%I.type.a76 +// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.b8e // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.as.I.impl.940604.1(constants.%T) { +// CHECK:STDOUT: specific @C.as.I.impl.da9cee.1(constants.%T) { // CHECK:STDOUT: %T.loc8_15.2 => constants.%T -// CHECK:STDOUT: %I.type.loc8_32.2 => constants.%I.type.50f +// CHECK:STDOUT: %I.type.loc8_32.2 => constants.%I.type.3fe // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.as.I.impl.940604.2(constants.%T) { +// CHECK:STDOUT: specific @C.as.I.impl.da9cee.2(constants.%T) { // CHECK:STDOUT: %T.loc14_15.2 => constants.%T -// CHECK:STDOUT: %I.type.loc14_32.2 => constants.%I.type.50f +// CHECK:STDOUT: %I.type.loc14_32.2 => constants.%I.type.3fe // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.as.I.impl.a854de.1(constants.%T) { +// CHECK:STDOUT: specific @C.as.I.impl.982b7a.1(constants.%T) { // CHECK:STDOUT: %T.loc20_15.2 => constants.%T // CHECK:STDOUT: %ptr.loc20_32.2 => constants.%ptr -// CHECK:STDOUT: %I.type.loc20_33.2 => constants.%I.type.e30 +// CHECK:STDOUT: %I.type.loc20_33.2 => constants.%I.type.a76 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.as.I.impl.a854de.2(constants.%T) { +// CHECK:STDOUT: specific @C.as.I.impl.982b7a.2(constants.%T) { // CHECK:STDOUT: %T.loc26_15.2 => constants.%T // CHECK:STDOUT: %ptr.loc26_32.2 => constants.%ptr -// CHECK:STDOUT: %I.type.loc26_33.2 => constants.%I.type.e30 +// CHECK:STDOUT: %I.type.loc26_33.2 => constants.%I.type.a76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @N(constants.%T) { @@ -1479,14 +1479,14 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %N.type => constants.%N.type.d682d6.1 // CHECK:STDOUT: %Self => constants.%Self.e1f // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %I.type => constants.%I.type.50f +// CHECK:STDOUT: %I.type => constants.%I.type.3fe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @N.WithSelf(constants.%T, constants.%C.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %require_complete => constants.%require_complete.df9 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %require_complete => constants.%require_complete.45e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%C.type.facet) { @@ -1494,10 +1494,10 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %N.type => constants.%N.type.d682d6.1 // CHECK:STDOUT: %Self => constants.%C.type.facet // CHECK:STDOUT: %Self.as_type => constants.%C -// CHECK:STDOUT: %I.type => constants.%I.type.50f +// CHECK:STDOUT: %I.type => constants.%I.type.3fe // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.as.I.impl.29284f.1(constants.%T) { +// CHECK:STDOUT: specific @C.as.I.impl.042f52.1(constants.%T) { // CHECK:STDOUT: %T.loc32_15.2 => constants.%T // CHECK:STDOUT: %N.type.loc32_32.2 => constants.%N.type.d682d6.1 // CHECK:STDOUT: } @@ -1509,8 +1509,8 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: specific @N.WithSelf(constants.%ptr, constants.%C.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%ptr -// CHECK:STDOUT: %I.type => constants.%I.type.e30 -// CHECK:STDOUT: %require_complete => constants.%require_complete.c44 +// CHECK:STDOUT: %I.type => constants.%I.type.a76 +// CHECK:STDOUT: %require_complete => constants.%require_complete.078 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.I.type.require(constants.%ptr, constants.%C.type.facet) { @@ -1518,10 +1518,10 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %N.type => constants.%N.type.d682d6.2 // CHECK:STDOUT: %Self => constants.%C.type.facet // CHECK:STDOUT: %Self.as_type => constants.%C -// CHECK:STDOUT: %I.type => constants.%I.type.e30 +// CHECK:STDOUT: %I.type => constants.%I.type.a76 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.as.I.impl.29284f.2(constants.%T) { +// CHECK:STDOUT: specific @C.as.I.impl.042f52.2(constants.%T) { // CHECK:STDOUT: %T.loc37_15.2 => constants.%T // CHECK:STDOUT: %ptr.loc37_32.2 => constants.%ptr // CHECK:STDOUT: %N.type.loc37_33.2 => constants.%N.type.d682d6.2 @@ -1537,18 +1537,18 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.50f: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self.626: %I.type.50f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self.191: %I.type.3fe = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table, @C.as.I.impl(%T) [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.50f [symbolic] -// CHECK:STDOUT: %I.facet: %I.type.50f = facet_value %C, (%I.impl_witness) [symbolic] -// CHECK:STDOUT: %N.type.cef: type = generic_named_constaint_type @N [concrete] -// CHECK:STDOUT: %empty_struct: %N.type.cef = struct_value () [concrete] +// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.3fe [symbolic] +// CHECK:STDOUT: %I.facet: %I.type.3fe = facet_value %C, (%I.impl_witness) [symbolic] +// CHECK:STDOUT: %N.type.b76: type = generic_named_constaint_type @N [concrete] +// CHECK:STDOUT: %empty_struct: %N.type.b76 = struct_value () [concrete] // CHECK:STDOUT: %N.type.d68: type = facet_type <@N, @N(%T)> [symbolic] -// CHECK:STDOUT: %Self.7f4: %N.type.d68 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.7f4 [symbolic] +// CHECK:STDOUT: %Self.22b: %N.type.d68 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.22b [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1558,7 +1558,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: .N = %N.decl // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %I.decl: %I.type.48c = interface_decl @I [concrete = constants.%I.generic] { +// CHECK:STDOUT: %I.decl: %I.type.335 = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_17.1: type = splice_block %.loc5_17.2 [concrete = type] { @@ -1571,16 +1571,16 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_15.1 [symbolic = %T.loc7_15.2 (constants.%T)] -// CHECK:STDOUT: %I.type.loc7_32.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc7_32.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc7_32.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc7_32.2 (constants.%I.type.3fe)] // CHECK:STDOUT: %.loc7_18.1: type = splice_block %.loc7_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc7_18.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc7_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc7_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.decl: %N.type.cef = constraint_decl @N [concrete = constants.%empty_struct] { +// CHECK:STDOUT: %N.decl: %N.type.b76 = constraint_decl @N [concrete = constants.%empty_struct] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_18.1: type = splice_block %.loc9_18.2 [concrete = type] { @@ -1595,11 +1595,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T.loc5_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc5_14.1)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self.loc5_23.2: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.626)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc5_14.1)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self.loc5_23.2: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.191)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc5_23.1: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.626)] +// CHECK:STDOUT: %Self.loc5_23.1: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.191)] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1615,10 +1615,10 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T.loc9_15.1)> [symbolic = %N.type (constants.%N.type.d68)] -// CHECK:STDOUT: %Self.loc9_24.2: @N.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc9_24.2 (constants.%Self.7f4)] +// CHECK:STDOUT: %Self.loc9_24.2: @N.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc9_24.2 (constants.%Self.22b)] // CHECK:STDOUT: // CHECK:STDOUT: constraint { -// CHECK:STDOUT: %Self.loc9_24.1: @N.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc9_24.2 (constants.%Self.7f4)] +// CHECK:STDOUT: %Self.loc9_24.1: @N.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc9_24.2 (constants.%Self.22b)] // CHECK:STDOUT: %N.WithSelf.decl = constraint_with_self_decl @N [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -1626,11 +1626,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: require %Self.as_type.loc10_18.1 impls %I.type.loc10_27.1 // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.as_type.loc10_18.1: type = facet_access_type @N.%Self.loc9_24.1 [symbolic = %Self.as_type.loc10_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @N.%T.loc9_15.2 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %I.type.loc10_27.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc10_27.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc10_27.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc10_27.2 (constants.%I.type.3fe)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc10: type = specific_constant @N.WithSelf.Self.as_type.impls.I.type.require.%I.type.loc10_27.1, @N.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.7f4) [symbolic = %I.type (constants.%I.type.50f)] +// CHECK:STDOUT: %.loc10: type = specific_constant @N.WithSelf.Self.as_type.impls.I.type.require.%I.type.loc10_27.1, @N.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.22b) [symbolic = %I.type (constants.%I.type.3fe)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc9_24.1 @@ -1650,14 +1650,14 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.I.type.require(@N.%T.loc9_15.2: type, @N.%Self.loc9_24.1: @N.%N.type (%N.type.d68)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d68)] -// CHECK:STDOUT: %Self: @N.WithSelf.Self.as_type.impls.I.type.require.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.7f4)] +// CHECK:STDOUT: %Self: @N.WithSelf.Self.as_type.impls.I.type.require.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.22b)] // CHECK:STDOUT: %Self.as_type.loc10_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc10_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %I.type.loc10_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc10_27.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc10_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc10_27.2 (constants.%I.type.3fe)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic impl @C.as.I.impl(%T.loc7_15.1: type) { // CHECK:STDOUT: %T.loc7_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc7_15.2 (constants.%T)] -// CHECK:STDOUT: %I.type.loc7_32.2: type = facet_type <@I, @I(%T.loc7_15.2)> [symbolic = %I.type.loc7_32.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc7_32.2: type = facet_type <@I, @I(%T.loc7_15.2)> [symbolic = %I.type.loc7_32.2 (constants.%I.type.3fe)] // CHECK:STDOUT: %I.impl_witness.loc7_34.2: = impl_witness %I.impl_witness_table, @C.as.I.impl(%T.loc7_15.2) [symbolic = %I.impl_witness.loc7_34.2 (constants.%I.impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -1685,17 +1685,17 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T.loc5_14.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.626 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.191 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.626) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.191) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl(constants.%T) { // CHECK:STDOUT: %T.loc7_15.2 => constants.%T -// CHECK:STDOUT: %I.type.loc7_32.2 => constants.%I.type.50f +// CHECK:STDOUT: %I.type.loc7_32.2 => constants.%I.type.3fe // CHECK:STDOUT: %I.impl_witness.loc7_34.2 => constants.%I.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1707,74 +1707,74 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T.loc9_15.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf(constants.%T, constants.%Self.7f4) {} +// CHECK:STDOUT: specific @N.WithSelf(constants.%T, constants.%Self.22b) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.7f4) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.22b) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %N.type => constants.%N.type.d68 -// CHECK:STDOUT: %Self => constants.%Self.7f4 +// CHECK:STDOUT: %Self => constants.%Self.22b // CHECK:STDOUT: %Self.as_type.loc10_18.2 => constants.%Self.as_type -// CHECK:STDOUT: %I.type.loc10_27.2 => constants.%I.type.50f +// CHECK:STDOUT: %I.type.loc10_27.2 => constants.%I.type.3fe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- import_generic_with_different_specific.impl.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.50f: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self.501: %I.type.50f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self.a67: %I.type.3fe = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %I.impl_witness.fbf: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl.39c(%T) [symbolic] -// CHECK:STDOUT: %require_complete.df9: = require_complete_type %I.type.50f [symbolic] +// CHECK:STDOUT: %I.impl_witness.17f: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl.119(%T) [symbolic] +// CHECK:STDOUT: %require_complete.45e: = require_complete_type %I.type.3fe [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %I.type.e30: type = facet_type <@I, @I(%ptr.e8f)> [symbolic] -// CHECK:STDOUT: %I.impl_witness.9c2: = impl_witness @C.as.I.impl.a85.%I.impl_witness_table, @C.as.I.impl.a85(%T) [symbolic] -// CHECK:STDOUT: %Self.baa: %I.type.e30 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %require_complete.c44: = require_complete_type %I.type.e30 [symbolic] -// CHECK:STDOUT: %I.facet.11a: %I.type.e30 = facet_value %C, (%I.impl_witness.9c2) [symbolic] -// CHECK:STDOUT: %N.type.cef: type = generic_named_constaint_type @N [concrete] -// CHECK:STDOUT: %empty_struct: %N.type.cef = struct_value () [concrete] +// CHECK:STDOUT: %I.type.a76: type = facet_type <@I, @I(%ptr.e8f)> [symbolic] +// CHECK:STDOUT: %I.impl_witness.0d7: = impl_witness @C.as.I.impl.982.%I.impl_witness_table, @C.as.I.impl.982(%T) [symbolic] +// CHECK:STDOUT: %Self.74c: %I.type.a76 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %require_complete.078: = require_complete_type %I.type.a76 [symbolic] +// CHECK:STDOUT: %I.facet.c1f: %I.type.a76 = facet_value %C, (%I.impl_witness.0d7) [symbolic] +// CHECK:STDOUT: %N.type.b76: type = generic_named_constaint_type @N [concrete] +// CHECK:STDOUT: %empty_struct: %N.type.b76 = struct_value () [concrete] // CHECK:STDOUT: %N.type.d682d6.1: type = facet_type <@N, @N(%T)> [symbolic] // CHECK:STDOUT: %Self.e1f642.1: %N.type.d682d6.1 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.e1f642.1 [symbolic] // CHECK:STDOUT: %ptr.125: type = ptr_type %ptr.e8f [symbolic] // CHECK:STDOUT: %N.type.d682d6.2: type = facet_type <@N, @N(%ptr.125)> [symbolic] // CHECK:STDOUT: %C.type.facet: %type = facet_value %C, () [concrete] -// CHECK:STDOUT: %I.type.695: type = facet_type <@I, @I(%ptr.125)> [symbolic] -// CHECK:STDOUT: %require_complete.65f: = require_complete_type %I.type.695 [symbolic] -// CHECK:STDOUT: %I.impl_witness.1e2: = impl_witness @C.as.I.impl.292.%I.impl_witness_table, @C.as.I.impl.292(%T) [symbolic] +// CHECK:STDOUT: %I.type.0a0: type = facet_type <@I, @I(%ptr.125)> [symbolic] +// CHECK:STDOUT: %require_complete.6fb: = require_complete_type %I.type.0a0 [symbolic] +// CHECK:STDOUT: %I.impl_witness.b48: = impl_witness @C.as.I.impl.042.%I.impl_witness_table, @C.as.I.impl.042(%T) [symbolic] // CHECK:STDOUT: %Self.e1f642.2: %N.type.d682d6.2 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %require_complete.533: = require_complete_type %N.type.d682d6.2 [symbolic] -// CHECK:STDOUT: %I.facet.75b: %I.type.695 = facet_value %C, (%I.impl_witness.1e2) [symbolic] +// CHECK:STDOUT: %I.facet.e2e: %I.type.0a0 = facet_value %C, (%I.impl_witness.b48) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//import_generic_with_different_specific, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.I: %I.type.48c = import_ref Main//import_generic_with_different_specific, I, loaded [concrete = constants.%I.generic] -// CHECK:STDOUT: %Main.N: %N.type.cef = import_ref Main//import_generic_with_different_specific, N, loaded [concrete = constants.%empty_struct] -// CHECK:STDOUT: %Main.import_ref.157 = import_ref Main//import_generic_with_different_specific, loc5_23, unloaded +// CHECK:STDOUT: %Main.I: %I.type.335 = import_ref Main//import_generic_with_different_specific, I, loaded [concrete = constants.%I.generic] +// CHECK:STDOUT: %Main.N: %N.type.b76 = import_ref Main//import_generic_with_different_specific, N, loaded [concrete = constants.%empty_struct] +// CHECK:STDOUT: %Main.import_ref.a43 = import_ref Main//import_generic_with_different_specific, loc5_23, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//import_generic_with_different_specific, loc5_14, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.65d = import_ref Main//import_generic_with_different_specific, loc7_34, unloaded +// CHECK:STDOUT: %Main.import_ref.c0d = import_ref Main//import_generic_with_different_specific, loc7_34, unloaded // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//import_generic_with_different_specific, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//import_generic_with_different_specific, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.39c [concrete] -// CHECK:STDOUT: %Main.import_ref.f5a: type = import_ref Main//import_generic_with_different_specific, loc7_24, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.80834b.1: type = import_ref Main//import_generic_with_different_specific, loc7_32, loaded [symbolic = @C.as.I.impl.39c.%I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Main.import_ref.891 = import_ref Main//import_generic_with_different_specific, loc7_32, unloaded -// CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//import_generic_with_different_specific, loc7_15, loaded [symbolic = @C.as.I.impl.39c.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.db9 = import_ref Main//import_generic_with_different_specific, loc10_28, unloaded -// CHECK:STDOUT: %Main.import_ref.9e3: type = import_ref Main//import_generic_with_different_specific, loc10_18, loaded [symbolic = @N.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %Main.import_ref.80834b.2: type = import_ref Main//import_generic_with_different_specific, loc10_27, loaded [symbolic = @N.WithSelf.Self.as_type.impls.I.type.require.%I.type (constants.%I.type.50f)] +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//import_generic_with_different_specific, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.119 [concrete] +// CHECK:STDOUT: %Main.import_ref.335: type = import_ref Main//import_generic_with_different_specific, loc7_24, loaded [concrete = constants.%C] +// CHECK:STDOUT: %Main.import_ref.e015f6.1: type = import_ref Main//import_generic_with_different_specific, loc7_32, loaded [symbolic = @C.as.I.impl.119.%I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Main.import_ref.e87 = import_ref Main//import_generic_with_different_specific, loc7_32, unloaded +// CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//import_generic_with_different_specific, loc7_15, loaded [symbolic = @C.as.I.impl.119.%T (constants.%T)] +// CHECK:STDOUT: %Main.import_ref.e24 = import_ref Main//import_generic_with_different_specific, loc10_28, unloaded +// CHECK:STDOUT: %Main.import_ref.849: type = import_ref Main//import_generic_with_different_specific, loc10_18, loaded [symbolic = @N.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %Main.import_ref.e015f6.2: type = import_ref Main//import_generic_with_different_specific, loc10_27, loaded [symbolic = @N.WithSelf.Self.as_type.impls.I.type.require.%I.type (constants.%I.type.3fe)] // CHECK:STDOUT: %Main.import_ref.b3bc94.5: type = import_ref Main//import_generic_with_different_specific, loc9_15, loaded [symbolic = @N.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.f7be13.2: @N.%N.type (%N.type.d682d6.1) = import_ref Main//import_generic_with_different_specific, loc9_24, loaded [symbolic = @N.%Self (constants.%Self.e1f642.1)] -// CHECK:STDOUT: %Main.import_ref.7ea = import_ref Main//import_generic_with_different_specific, loc9_24, unloaded +// CHECK:STDOUT: %Main.import_ref.006c33.2: @N.%N.type (%N.type.d682d6.1) = import_ref Main//import_generic_with_different_specific, loc9_24, loaded [symbolic = @N.%Self (constants.%Self.e1f642.1)] +// CHECK:STDOUT: %Main.import_ref.694 = import_ref Main//import_generic_with_different_specific, loc9_24, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.6: type = import_ref Main//import_generic_with_different_specific, loc9_15, loaded [symbolic = @N.%T (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1786,25 +1786,25 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc1_54.1 = import // CHECK:STDOUT: %default.import.loc1_54.2 = import -// CHECK:STDOUT: impl_decl @C.as.I.impl.a85 [concrete] { +// CHECK:STDOUT: impl_decl @C.as.I.impl.982 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, imports.%Main.I [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, imports.%Main.I [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc5_15.1 [symbolic = %T.loc5_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc5_32.1: type = ptr_type %T.ref [symbolic = %ptr.loc5_32.2 (constants.%ptr.e8f)] -// CHECK:STDOUT: %I.type.loc5_33.1: type = facet_type <@I, @I(constants.%ptr.e8f)> [symbolic = %I.type.loc5_33.2 (constants.%I.type.e30)] +// CHECK:STDOUT: %I.type.loc5_33.1: type = facet_type <@I, @I(constants.%ptr.e8f)> [symbolic = %I.type.loc5_33.2 (constants.%I.type.a76)] // CHECK:STDOUT: %.loc5_18.1: type = splice_block %.loc5_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc5_18.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc5_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc5_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.I.impl.292 [concrete] { +// CHECK:STDOUT: impl_decl @C.as.I.impl.042 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %N.ref: %N.type.cef = name_ref N, imports.%Main.N [concrete = constants.%empty_struct] +// CHECK:STDOUT: %N.ref: %N.type.b76 = name_ref N, imports.%Main.N [concrete = constants.%empty_struct] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_15.1 [symbolic = %T.loc6_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc6_32.1: type = ptr_type %T.ref [symbolic = %ptr.loc6_32.2 (constants.%ptr.e8f)] // CHECK:STDOUT: %ptr.loc6_33.1: type = ptr_type %ptr.loc6_32.1 [symbolic = %ptr.loc6_33.2 (constants.%ptr.125)] @@ -1821,12 +1821,12 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.501)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a67)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.157 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.a43 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -1842,51 +1842,51 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: constraint { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.7ea -// CHECK:STDOUT: extend imports.%Main.import_ref.db9 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.694 +// CHECK:STDOUT: extend imports.%Main.import_ref.e24 // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: @N.WithSelf.Self.as_type.impls.I.type.require { -// CHECK:STDOUT: require imports.%Main.import_ref.9e3 impls imports.%Main.import_ref.80834b.2 +// CHECK:STDOUT: require imports.%Main.import_ref.849 impls imports.%Main.import_ref.e015f6.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.5: type, imports.%Main.import_ref.f7be13.2: @N.%N.type (%N.type.d682d6.1)) [from "import_generic_with_different_specific.carbon"] { +// CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.5: type, imports.%Main.import_ref.006c33.2: @N.%N.type (%N.type.d682d6.1)) [from "import_generic_with_different_specific.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d682d6.1)] // CHECK:STDOUT: %Self: @N.WithSelf.Self.as_type.impls.I.type.require.%N.type (%N.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f642.1)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @C.as.I.impl.39c(imports.%Main.import_ref.b3bc94.3: type) [from "import_generic_with_different_specific.carbon"] { +// CHECK:STDOUT: generic impl @C.as.I.impl.119(imports.%Main.import_ref.b3bc94.3: type) [from "import_generic_with_different_specific.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl.39c(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.fbf)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl.119(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.17f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.df9)] +// CHECK:STDOUT: %require_complete: = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.45e)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%Main.import_ref.f5a as imports.%Main.import_ref.80834b.1 { +// CHECK:STDOUT: impl: imports.%Main.import_ref.335 as imports.%Main.import_ref.e015f6.1 { // CHECK:STDOUT: !members: -// CHECK:STDOUT: extend imports.%Main.import_ref.891 -// CHECK:STDOUT: witness = imports.%Main.import_ref.65d +// CHECK:STDOUT: extend imports.%Main.import_ref.e87 +// CHECK:STDOUT: witness = imports.%Main.import_ref.c0d // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @C.as.I.impl.a85(%T.loc5_15.1: type) { +// CHECK:STDOUT: generic impl @C.as.I.impl.982(%T.loc5_15.1: type) { // CHECK:STDOUT: %T.loc5_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc5_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc5_32.2: type = ptr_type %T.loc5_15.2 [symbolic = %ptr.loc5_32.2 (constants.%ptr.e8f)] -// CHECK:STDOUT: %I.type.loc5_33.2: type = facet_type <@I, @I(%ptr.loc5_32.2)> [symbolic = %I.type.loc5_33.2 (constants.%I.type.e30)] -// CHECK:STDOUT: %I.impl_witness.loc5_35.2: = impl_witness %I.impl_witness_table, @C.as.I.impl.a85(%T.loc5_15.2) [symbolic = %I.impl_witness.loc5_35.2 (constants.%I.impl_witness.9c2)] +// CHECK:STDOUT: %I.type.loc5_33.2: type = facet_type <@I, @I(%ptr.loc5_32.2)> [symbolic = %I.type.loc5_33.2 (constants.%I.type.a76)] +// CHECK:STDOUT: %I.impl_witness.loc5_35.2: = impl_witness %I.impl_witness_table, @C.as.I.impl.982(%T.loc5_15.2) [symbolic = %I.impl_witness.loc5_35.2 (constants.%I.impl_witness.0d7)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.loc5_33.2 [symbolic = %require_complete (constants.%require_complete.c44)] +// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.loc5_33.2 [symbolic = %require_complete (constants.%require_complete.078)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.ref as %I.type.loc5_33.1 { -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.a85 [concrete] -// CHECK:STDOUT: %I.impl_witness.loc5_35.1: = impl_witness %I.impl_witness_table, @C.as.I.impl.a85(constants.%T) [symbolic = %I.impl_witness.loc5_35.2 (constants.%I.impl_witness.9c2)] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.982 [concrete] +// CHECK:STDOUT: %I.impl_witness.loc5_35.1: = impl_witness %I.impl_witness_table, @C.as.I.impl.982(constants.%T) [symbolic = %I.impl_witness.loc5_35.2 (constants.%I.impl_witness.0d7)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %I.type.loc5_33.1 @@ -1894,19 +1894,19 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @C.as.I.impl.292(%T.loc6_15.1: type) { +// CHECK:STDOUT: generic impl @C.as.I.impl.042(%T.loc6_15.1: type) { // CHECK:STDOUT: %T.loc6_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc6_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc6_32.2: type = ptr_type %T.loc6_15.2 [symbolic = %ptr.loc6_32.2 (constants.%ptr.e8f)] // CHECK:STDOUT: %ptr.loc6_33.2: type = ptr_type %ptr.loc6_32.2 [symbolic = %ptr.loc6_33.2 (constants.%ptr.125)] // CHECK:STDOUT: %N.type.loc6_34.2: type = facet_type <@N, @N(%ptr.loc6_33.2)> [symbolic = %N.type.loc6_34.2 (constants.%N.type.d682d6.2)] -// CHECK:STDOUT: %I.impl_witness.loc6_36.2: = impl_witness %I.impl_witness_table, @C.as.I.impl.292(%T.loc6_15.2) [symbolic = %I.impl_witness.loc6_36.2 (constants.%I.impl_witness.1e2)] +// CHECK:STDOUT: %I.impl_witness.loc6_36.2: = impl_witness %I.impl_witness_table, @C.as.I.impl.042(%T.loc6_15.2) [symbolic = %I.impl_witness.loc6_36.2 (constants.%I.impl_witness.b48)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %N.type.loc6_34.2 [symbolic = %require_complete (constants.%require_complete.533)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.ref as %N.type.loc6_34.1 { -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.292 [concrete] -// CHECK:STDOUT: %I.impl_witness.loc6_36.1: = impl_witness %I.impl_witness_table, @C.as.I.impl.292(constants.%T) [symbolic = %I.impl_witness.loc6_36.2 (constants.%I.impl_witness.1e2)] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.042 [concrete] +// CHECK:STDOUT: %I.impl_witness.loc6_36.1: = impl_witness %I.impl_witness_table, @C.as.I.impl.042(constants.%T) [symbolic = %I.impl_witness.loc6_36.2 (constants.%I.impl_witness.b48)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %N.type.loc6_34.1 @@ -1918,47 +1918,47 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %Self => constants.%Self.501 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %Self => constants.%Self.a67 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.501) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.a67) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.as.I.impl.39c(constants.%T) { +// CHECK:STDOUT: specific @C.as.I.impl.119(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.fbf +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.17f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%ptr.e8f) { // CHECK:STDOUT: %T => constants.%ptr.e8f // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.e30 -// CHECK:STDOUT: %Self => constants.%Self.baa +// CHECK:STDOUT: %I.type => constants.%I.type.a76 +// CHECK:STDOUT: %Self => constants.%Self.74c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.as.I.impl.a85(constants.%T) { +// CHECK:STDOUT: specific @C.as.I.impl.982(constants.%T) { // CHECK:STDOUT: %T.loc5_15.2 => constants.%T // CHECK:STDOUT: %ptr.loc5_32.2 => constants.%ptr.e8f -// CHECK:STDOUT: %I.type.loc5_33.2 => constants.%I.type.e30 -// CHECK:STDOUT: %I.impl_witness.loc5_35.2 => constants.%I.impl_witness.9c2 +// CHECK:STDOUT: %I.type.loc5_33.2 => constants.%I.type.a76 +// CHECK:STDOUT: %I.impl_witness.loc5_35.2 => constants.%I.impl_witness.0d7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr.e8f, constants.%Self.501) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr.e8f, constants.%Self.a67) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr.e8f, constants.%I.facet.11a) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr.e8f, constants.%I.facet.c1f) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1973,7 +1973,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %N.type => constants.%N.type.d682d6.1 // CHECK:STDOUT: %Self => constants.%Self.e1f642.1 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %I.type => constants.%I.type.50f +// CHECK:STDOUT: %I.type => constants.%I.type.3fe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @N(constants.%ptr.125) { @@ -1987,8 +1987,8 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: specific @N.WithSelf(constants.%ptr.125, constants.%C.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%ptr.125 -// CHECK:STDOUT: %I.type => constants.%I.type.695 -// CHECK:STDOUT: %require_complete => constants.%require_complete.65f +// CHECK:STDOUT: %I.type => constants.%I.type.0a0 +// CHECK:STDOUT: %require_complete => constants.%require_complete.6fb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%ptr.125) { @@ -2000,25 +2000,25 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %N.type => constants.%N.type.d682d6.2 // CHECK:STDOUT: %Self => constants.%C.type.facet // CHECK:STDOUT: %Self.as_type => constants.%C -// CHECK:STDOUT: %I.type => constants.%I.type.695 +// CHECK:STDOUT: %I.type => constants.%I.type.0a0 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.as.I.impl.292(constants.%T) { +// CHECK:STDOUT: specific @C.as.I.impl.042(constants.%T) { // CHECK:STDOUT: %T.loc6_15.2 => constants.%T // CHECK:STDOUT: %ptr.loc6_32.2 => constants.%ptr.e8f // CHECK:STDOUT: %ptr.loc6_33.2 => constants.%ptr.125 // CHECK:STDOUT: %N.type.loc6_34.2 => constants.%N.type.d682d6.2 -// CHECK:STDOUT: %I.impl_witness.loc6_36.2 => constants.%I.impl_witness.1e2 +// CHECK:STDOUT: %I.impl_witness.loc6_36.2 => constants.%I.impl_witness.b48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @N.WithSelf(constants.%ptr.125, constants.%Self.e1f642.1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%ptr.125 -// CHECK:STDOUT: %I.type => constants.%I.type.695 -// CHECK:STDOUT: %require_complete => constants.%require_complete.65f +// CHECK:STDOUT: %I.type => constants.%I.type.0a0 +// CHECK:STDOUT: %require_complete => constants.%require_complete.6fb // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr.125, constants.%I.facet.75b) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr.125, constants.%I.facet.e2e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2032,19 +2032,19 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %J.type.f45: type = generic_interface_type @J [concrete] -// CHECK:STDOUT: %J.generic: %J.type.f45 = struct_value () [concrete] -// CHECK:STDOUT: %J.type.9a7: type = facet_type <@J, @J(%T)> [symbolic] -// CHECK:STDOUT: %Self.b78: %J.type.9a7 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %N.type.cef: type = generic_named_constaint_type @N [concrete] -// CHECK:STDOUT: %empty_struct: %N.type.cef = struct_value () [concrete] +// CHECK:STDOUT: %J.type.23c: type = generic_interface_type @J [concrete] +// CHECK:STDOUT: %J.generic: %J.type.23c = struct_value () [concrete] +// CHECK:STDOUT: %J.type.5c8: type = facet_type <@J, @J(%T)> [symbolic] +// CHECK:STDOUT: %Self.ad7: %J.type.5c8 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %N.type.b76: type = generic_named_constaint_type @N [concrete] +// CHECK:STDOUT: %empty_struct: %N.type.b76 = struct_value () [concrete] // CHECK:STDOUT: %N.type.d68: type = facet_type <@N, @N(%T)> [symbolic] -// CHECK:STDOUT: %Self.7f4: %N.type.d68 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.7f4 [symbolic] -// CHECK:STDOUT: %J.impl_witness.acc: = impl_witness @D.as.J.impl.e40.%J.impl_witness_table, @D.as.J.impl.e40(%T) [symbolic] +// CHECK:STDOUT: %Self.22b: %N.type.d68 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.22b [symbolic] +// CHECK:STDOUT: %J.impl_witness.7d7: = impl_witness @D.as.J.impl.5a5.%J.impl_witness_table, @D.as.J.impl.5a5(%T) [symbolic] // CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %J.type.a40: type = facet_type <@J, @J(%ptr)> [symbolic] -// CHECK:STDOUT: %J.impl_witness.aaa: = impl_witness @D.as.J.impl.165.%J.impl_witness_table, @D.as.J.impl.165(%T) [symbolic] +// CHECK:STDOUT: %J.type.c71: type = facet_type <@J, @J(%ptr)> [symbolic] +// CHECK:STDOUT: %J.impl_witness.4af: = impl_witness @D.as.J.impl.101.%J.impl_witness_table, @D.as.J.impl.101(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -2054,7 +2054,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: .N = %N.decl // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} -// CHECK:STDOUT: %J.decl: %J.type.f45 = interface_decl @J [concrete = constants.%J.generic] { +// CHECK:STDOUT: %J.decl: %J.type.23c = interface_decl @J [concrete = constants.%J.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_17.1: type = splice_block %.loc5_17.2 [concrete = type] { @@ -2063,7 +2063,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc5_14.2: type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.decl: %N.type.cef = constraint_decl @N [concrete = constants.%empty_struct] { +// CHECK:STDOUT: %N.decl: %N.type.b76 = constraint_decl @N [concrete = constants.%empty_struct] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_18.1: type = splice_block %.loc7_18.2 [concrete = type] { @@ -2072,27 +2072,27 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc7_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc7_15.1 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @D.as.J.impl.e40 [concrete] { +// CHECK:STDOUT: impl_decl @D.as.J.impl.5a5 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %J.ref: %J.type.f45 = name_ref J, file.%J.decl [concrete = constants.%J.generic] +// CHECK:STDOUT: %J.ref: %J.type.23c = name_ref J, file.%J.decl [concrete = constants.%J.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_15.1 [symbolic = %T.loc15_15.2 (constants.%T)] -// CHECK:STDOUT: %J.type.loc15_32.1: type = facet_type <@J, @J(constants.%T)> [symbolic = %J.type.loc15_32.2 (constants.%J.type.9a7)] +// CHECK:STDOUT: %J.type.loc15_32.1: type = facet_type <@J, @J(constants.%T)> [symbolic = %J.type.loc15_32.2 (constants.%J.type.5c8)] // CHECK:STDOUT: %.loc15_18.1: type = splice_block %.loc15_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc15_18.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc15_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc15_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @D.as.J.impl.165 [concrete] { +// CHECK:STDOUT: impl_decl @D.as.J.impl.101 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %J.ref: %J.type.f45 = name_ref J, file.%J.decl [concrete = constants.%J.generic] +// CHECK:STDOUT: %J.ref: %J.type.23c = name_ref J, file.%J.decl [concrete = constants.%J.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc21_15.1 [symbolic = %T.loc21_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc21_32.1: type = ptr_type %T.ref [symbolic = %ptr.loc21_32.2 (constants.%ptr)] -// CHECK:STDOUT: %J.type.loc21_33.1: type = facet_type <@J, @J(constants.%ptr)> [symbolic = %J.type.loc21_33.2 (constants.%J.type.a40)] +// CHECK:STDOUT: %J.type.loc21_33.1: type = facet_type <@J, @J(constants.%ptr)> [symbolic = %J.type.loc21_33.2 (constants.%J.type.c71)] // CHECK:STDOUT: %.loc21_18.1: type = splice_block %.loc21_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc21_18.2: type = type_literal type [concrete = type] @@ -2105,11 +2105,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T.loc5_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T.loc5_14.1)> [symbolic = %J.type (constants.%J.type.9a7)] -// CHECK:STDOUT: %Self.loc5_23.2: @J.%J.type (%J.type.9a7) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.b78)] +// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T.loc5_14.1)> [symbolic = %J.type (constants.%J.type.5c8)] +// CHECK:STDOUT: %Self.loc5_23.2: @J.%J.type (%J.type.5c8) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.ad7)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc5_23.1: @J.%J.type (%J.type.9a7) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.b78)] +// CHECK:STDOUT: %Self.loc5_23.1: @J.%J.type (%J.type.5c8) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.ad7)] // CHECK:STDOUT: %J.WithSelf.decl = interface_with_self_decl @J [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -2125,10 +2125,10 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T.loc7_15.1)> [symbolic = %N.type (constants.%N.type.d68)] -// CHECK:STDOUT: %Self.loc7_24.2: @N.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc7_24.2 (constants.%Self.7f4)] +// CHECK:STDOUT: %Self.loc7_24.2: @N.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc7_24.2 (constants.%Self.22b)] // CHECK:STDOUT: // CHECK:STDOUT: constraint { -// CHECK:STDOUT: %Self.loc7_24.1: @N.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc7_24.2 (constants.%Self.7f4)] +// CHECK:STDOUT: %Self.loc7_24.1: @N.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc7_24.2 (constants.%Self.22b)] // CHECK:STDOUT: %N.WithSelf.decl = constraint_with_self_decl @N [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -2136,11 +2136,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: require %Self.as_type.loc8_18.1 impls %J.type.loc8_27.1 // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.as_type.loc8_18.1: type = facet_access_type @N.%Self.loc7_24.1 [symbolic = %Self.as_type.loc8_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %J.ref: %J.type.f45 = name_ref J, file.%J.decl [concrete = constants.%J.generic] +// CHECK:STDOUT: %J.ref: %J.type.23c = name_ref J, file.%J.decl [concrete = constants.%J.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @N.%T.loc7_15.2 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %J.type.loc8_27.1: type = facet_type <@J, @J(constants.%T)> [symbolic = %J.type.loc8_27.2 (constants.%J.type.9a7)] +// CHECK:STDOUT: %J.type.loc8_27.1: type = facet_type <@J, @J(constants.%T)> [symbolic = %J.type.loc8_27.2 (constants.%J.type.5c8)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8: type = specific_constant @N.WithSelf.Self.as_type.impls.J.type.require.%J.type.loc8_27.1, @N.WithSelf.Self.as_type.impls.J.type.require(constants.%T, constants.%Self.7f4) [symbolic = %J.type (constants.%J.type.9a7)] +// CHECK:STDOUT: %.loc8: type = specific_constant @N.WithSelf.Self.as_type.impls.J.type.require.%J.type.loc8_27.1, @N.WithSelf.Self.as_type.impls.J.type.require(constants.%T, constants.%Self.22b) [symbolic = %J.type (constants.%J.type.5c8)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc7_24.1 @@ -2160,24 +2160,24 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.J.type.require(@N.%T.loc7_15.2: type, @N.%Self.loc7_24.1: @N.%N.type (%N.type.d68)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d68)] -// CHECK:STDOUT: %Self: @N.WithSelf.Self.as_type.impls.J.type.require.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.7f4)] +// CHECK:STDOUT: %Self: @N.WithSelf.Self.as_type.impls.J.type.require.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.22b)] // CHECK:STDOUT: %Self.as_type.loc8_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %J.type.loc8_27.2: type = facet_type <@J, @J(%T)> [symbolic = %J.type.loc8_27.2 (constants.%J.type.9a7)] +// CHECK:STDOUT: %J.type.loc8_27.2: type = facet_type <@J, @J(%T)> [symbolic = %J.type.loc8_27.2 (constants.%J.type.5c8)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @D.as.J.impl.e40(%T.loc15_15.1: type) { +// CHECK:STDOUT: generic impl @D.as.J.impl.5a5(%T.loc15_15.1: type) { // CHECK:STDOUT: %T.loc15_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc15_15.2 (constants.%T)] -// CHECK:STDOUT: %J.type.loc15_32.2: type = facet_type <@J, @J(%T.loc15_15.2)> [symbolic = %J.type.loc15_32.2 (constants.%J.type.9a7)] -// CHECK:STDOUT: %J.impl_witness.loc15_33.2: = impl_witness %J.impl_witness_table, @D.as.J.impl.e40(%T.loc15_15.2) [symbolic = %J.impl_witness.loc15_33.2 (constants.%J.impl_witness.acc)] +// CHECK:STDOUT: %J.type.loc15_32.2: type = facet_type <@J, @J(%T.loc15_15.2)> [symbolic = %J.type.loc15_32.2 (constants.%J.type.5c8)] +// CHECK:STDOUT: %J.impl_witness.loc15_33.2: = impl_witness %J.impl_witness_table, @D.as.J.impl.5a5(%T.loc15_15.2) [symbolic = %J.impl_witness.loc15_33.2 (constants.%J.impl_witness.7d7)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %D.ref as %J.type.loc15_32.1; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @D.as.J.impl.165(%T.loc21_15.1: type) { +// CHECK:STDOUT: generic impl @D.as.J.impl.101(%T.loc21_15.1: type) { // CHECK:STDOUT: %T.loc21_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc21_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc21_32.2: type = ptr_type %T.loc21_15.2 [symbolic = %ptr.loc21_32.2 (constants.%ptr)] -// CHECK:STDOUT: %J.type.loc21_33.2: type = facet_type <@J, @J(%ptr.loc21_32.2)> [symbolic = %J.type.loc21_33.2 (constants.%J.type.a40)] -// CHECK:STDOUT: %J.impl_witness.loc21_34.2: = impl_witness %J.impl_witness_table, @D.as.J.impl.165(%T.loc21_15.2) [symbolic = %J.impl_witness.loc21_34.2 (constants.%J.impl_witness.aaa)] +// CHECK:STDOUT: %J.type.loc21_33.2: type = facet_type <@J, @J(%ptr.loc21_32.2)> [symbolic = %J.type.loc21_33.2 (constants.%J.type.c71)] +// CHECK:STDOUT: %J.impl_witness.loc21_34.2: = impl_witness %J.impl_witness_table, @D.as.J.impl.101(%T.loc21_15.2) [symbolic = %J.impl_witness.loc21_34.2 (constants.%J.impl_witness.4af)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %D.ref as %J.type.loc21_33.1; // CHECK:STDOUT: } @@ -2194,11 +2194,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T.loc5_14.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %J.type => constants.%J.type.9a7 -// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.b78 +// CHECK:STDOUT: %J.type => constants.%J.type.5c8 +// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.ad7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%T, constants.%Self.b78) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%T, constants.%Self.ad7) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2206,84 +2206,84 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T.loc7_15.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf(constants.%T, constants.%Self.7f4) {} +// CHECK:STDOUT: specific @N.WithSelf(constants.%T, constants.%Self.22b) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.J.type.require(constants.%T, constants.%Self.7f4) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.J.type.require(constants.%T, constants.%Self.22b) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %N.type => constants.%N.type.d68 -// CHECK:STDOUT: %Self => constants.%Self.7f4 +// CHECK:STDOUT: %Self => constants.%Self.22b // CHECK:STDOUT: %Self.as_type.loc8_18.2 => constants.%Self.as_type -// CHECK:STDOUT: %J.type.loc8_27.2 => constants.%J.type.9a7 +// CHECK:STDOUT: %J.type.loc8_27.2 => constants.%J.type.5c8 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @D.as.J.impl.e40(constants.%T) { +// CHECK:STDOUT: specific @D.as.J.impl.5a5(constants.%T) { // CHECK:STDOUT: %T.loc15_15.2 => constants.%T -// CHECK:STDOUT: %J.type.loc15_32.2 => constants.%J.type.9a7 -// CHECK:STDOUT: %J.impl_witness.loc15_33.2 => constants.%J.impl_witness.acc +// CHECK:STDOUT: %J.type.loc15_32.2 => constants.%J.type.5c8 +// CHECK:STDOUT: %J.impl_witness.loc15_33.2 => constants.%J.impl_witness.7d7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J(constants.%ptr) { // CHECK:STDOUT: %T.loc5_14.1 => constants.%ptr // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @D.as.J.impl.165(constants.%T) { +// CHECK:STDOUT: specific @D.as.J.impl.101(constants.%T) { // CHECK:STDOUT: %T.loc21_15.2 => constants.%T // CHECK:STDOUT: %ptr.loc21_32.2 => constants.%ptr -// CHECK:STDOUT: %J.type.loc21_33.2 => constants.%J.type.a40 -// CHECK:STDOUT: %J.impl_witness.loc21_34.2 => constants.%J.impl_witness.aaa +// CHECK:STDOUT: %J.type.loc21_33.2 => constants.%J.type.c71 +// CHECK:STDOUT: %J.impl_witness.loc21_34.2 => constants.%J.impl_witness.4af // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_import_generic_decl.impl.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %J.type.f45: type = generic_interface_type @J [concrete] -// CHECK:STDOUT: %J.generic: %J.type.f45 = struct_value () [concrete] -// CHECK:STDOUT: %J.type.9a7: type = facet_type <@J, @J(%T)> [symbolic] -// CHECK:STDOUT: %Self.3f4: %J.type.9a7 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %J.type.23c: type = generic_interface_type @J [concrete] +// CHECK:STDOUT: %J.generic: %J.type.23c = struct_value () [concrete] +// CHECK:STDOUT: %J.type.5c8: type = facet_type <@J, @J(%T)> [symbolic] +// CHECK:STDOUT: %Self.9f1: %J.type.5c8 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %J.impl_witness.52d: = impl_witness imports.%J.impl_witness_table.f0e, @D.as.J.impl.a9a(%T) [symbolic] +// CHECK:STDOUT: %J.impl_witness.699: = impl_witness imports.%J.impl_witness_table.a64, @D.as.J.impl.bdb(%T) [symbolic] // CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %J.type.a40: type = facet_type <@J, @J(%ptr)> [symbolic] -// CHECK:STDOUT: %J.impl_witness.a9a: = impl_witness imports.%J.impl_witness_table.985, @D.as.J.impl.741(%T) [symbolic] +// CHECK:STDOUT: %J.type.c71: type = facet_type <@J, @J(%ptr)> [symbolic] +// CHECK:STDOUT: %J.impl_witness.73b: = impl_witness imports.%J.impl_witness_table.93d, @D.as.J.impl.fa6(%T) [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %N.type.cef: type = generic_named_constaint_type @N [concrete] -// CHECK:STDOUT: %empty_struct: %N.type.cef = struct_value () [concrete] +// CHECK:STDOUT: %N.type.b76: type = generic_named_constaint_type @N [concrete] +// CHECK:STDOUT: %empty_struct: %N.type.b76 = struct_value () [concrete] // CHECK:STDOUT: %N.type.d682d6.1: type = facet_type <@N, @N(%T)> [symbolic] // CHECK:STDOUT: %Self.e1f: %N.type.d682d6.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %require_complete.230: = require_complete_type %J.type.9a7 [symbolic] +// CHECK:STDOUT: %require_complete.6ba: = require_complete_type %J.type.5c8 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.e1f [symbolic] // CHECK:STDOUT: %D.type.facet: %type = facet_value %D, () [concrete] // CHECK:STDOUT: %N.type.d682d6.2: type = facet_type <@N, @N(%ptr)> [symbolic] -// CHECK:STDOUT: %require_complete.5bf: = require_complete_type %J.type.a40 [symbolic] +// CHECK:STDOUT: %require_complete.769: = require_complete_type %J.type.c71 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.D: type = import_ref Main//import_generic_decl, D, loaded [concrete = constants.%D] -// CHECK:STDOUT: %Main.J: %J.type.f45 = import_ref Main//import_generic_decl, J, loaded [concrete = constants.%J.generic] -// CHECK:STDOUT: %Main.N: %N.type.cef = import_ref Main//import_generic_decl, N, loaded [concrete = constants.%empty_struct] -// CHECK:STDOUT: %Main.import_ref.8fe = import_ref Main//import_generic_decl, loc5_23, unloaded +// CHECK:STDOUT: %Main.J: %J.type.23c = import_ref Main//import_generic_decl, J, loaded [concrete = constants.%J.generic] +// CHECK:STDOUT: %Main.N: %N.type.b76 = import_ref Main//import_generic_decl, N, loaded [concrete = constants.%empty_struct] +// CHECK:STDOUT: %Main.import_ref.ec8 = import_ref Main//import_generic_decl, loc5_23, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//import_generic_decl, loc5_14, loaded [symbolic = @J.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//import_generic_decl, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.c42 = import_ref Main//import_generic_decl, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %J.impl_witness_table.f0e = impl_witness_table (), @D.as.J.impl.a9a [concrete] -// CHECK:STDOUT: %Main.import_ref.a45035.1: type = import_ref Main//import_generic_decl, loc15_24, loaded [concrete = constants.%D] -// CHECK:STDOUT: %Main.import_ref.28f418.1: type = import_ref Main//import_generic_decl, loc15_32, loaded [symbolic = @D.as.J.impl.a9a.%J.type (constants.%J.type.9a7)] -// CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//import_generic_decl, loc15_15, loaded [symbolic = @D.as.J.impl.a9a.%T (constants.%T)] -// CHECK:STDOUT: %J.impl_witness_table.985 = impl_witness_table (), @D.as.J.impl.741 [concrete] -// CHECK:STDOUT: %Main.import_ref.a45035.2: type = import_ref Main//import_generic_decl, loc21_24, loaded [concrete = constants.%D] -// CHECK:STDOUT: %Main.import_ref.f32: type = import_ref Main//import_generic_decl, loc21_33, loaded [symbolic = @D.as.J.impl.741.%J.type (constants.%J.type.a40)] -// CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//import_generic_decl, loc21_15, loaded [symbolic = @D.as.J.impl.741.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.289 = import_ref Main//import_generic_decl, loc8_28, unloaded -// CHECK:STDOUT: %Main.import_ref.9e3: type = import_ref Main//import_generic_decl, loc8_18, loaded [symbolic = @N.WithSelf.Self.as_type.impls.J.type.require.%Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %Main.import_ref.28f418.2: type = import_ref Main//import_generic_decl, loc8_27, loaded [symbolic = @N.WithSelf.Self.as_type.impls.J.type.require.%J.type (constants.%J.type.9a7)] +// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//import_generic_decl, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %J.impl_witness_table.a64 = impl_witness_table (), @D.as.J.impl.bdb [concrete] +// CHECK:STDOUT: %Main.import_ref.2e2cf0.1: type = import_ref Main//import_generic_decl, loc15_24, loaded [concrete = constants.%D] +// CHECK:STDOUT: %Main.import_ref.1936e1.1: type = import_ref Main//import_generic_decl, loc15_32, loaded [symbolic = @D.as.J.impl.bdb.%J.type (constants.%J.type.5c8)] +// CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//import_generic_decl, loc15_15, loaded [symbolic = @D.as.J.impl.bdb.%T (constants.%T)] +// CHECK:STDOUT: %J.impl_witness_table.93d = impl_witness_table (), @D.as.J.impl.fa6 [concrete] +// CHECK:STDOUT: %Main.import_ref.2e2cf0.2: type = import_ref Main//import_generic_decl, loc21_24, loaded [concrete = constants.%D] +// CHECK:STDOUT: %Main.import_ref.5a0: type = import_ref Main//import_generic_decl, loc21_33, loaded [symbolic = @D.as.J.impl.fa6.%J.type (constants.%J.type.c71)] +// CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//import_generic_decl, loc21_15, loaded [symbolic = @D.as.J.impl.fa6.%T (constants.%T)] +// CHECK:STDOUT: %Main.import_ref.b19 = import_ref Main//import_generic_decl, loc8_28, unloaded +// CHECK:STDOUT: %Main.import_ref.849: type = import_ref Main//import_generic_decl, loc8_18, loaded [symbolic = @N.WithSelf.Self.as_type.impls.J.type.require.%Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %Main.import_ref.1936e1.2: type = import_ref Main//import_generic_decl, loc8_27, loaded [symbolic = @N.WithSelf.Self.as_type.impls.J.type.require.%J.type (constants.%J.type.5c8)] // CHECK:STDOUT: %Main.import_ref.b3bc94.6: type = import_ref Main//import_generic_decl, loc7_15, loaded [symbolic = @N.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.f7be13.2: @N.%N.type (%N.type.d682d6.1) = import_ref Main//import_generic_decl, loc7_24, loaded [symbolic = @N.%Self (constants.%Self.e1f)] -// CHECK:STDOUT: %Main.import_ref.7ea = import_ref Main//import_generic_decl, loc7_24, unloaded +// CHECK:STDOUT: %Main.import_ref.006c33.2: @N.%N.type (%N.type.d682d6.1) = import_ref Main//import_generic_decl, loc7_24, loaded [symbolic = @N.%Self (constants.%Self.e1f)] +// CHECK:STDOUT: %Main.import_ref.694 = import_ref Main//import_generic_decl, loc7_24, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.7: type = import_ref Main//import_generic_decl, loc7_15, loaded [symbolic = @N.%T (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2295,65 +2295,65 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_35.1 = import // CHECK:STDOUT: %default.import.loc2_35.2 = import -// CHECK:STDOUT: impl_decl @D.as.J.impl.e4062e.1 [concrete] { +// CHECK:STDOUT: impl_decl @D.as.J.impl.5a5643.1 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%D] -// CHECK:STDOUT: %J.ref: %J.type.f45 = name_ref J, imports.%Main.J [concrete = constants.%J.generic] +// CHECK:STDOUT: %J.ref: %J.type.23c = name_ref J, imports.%Main.J [concrete = constants.%J.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_15.1 [symbolic = %T.loc8_15.2 (constants.%T)] -// CHECK:STDOUT: %J.type.loc8_32.1: type = facet_type <@J, @J(constants.%T)> [symbolic = %J.type.loc8_32.2 (constants.%J.type.9a7)] +// CHECK:STDOUT: %J.type.loc8_32.1: type = facet_type <@J, @J(constants.%T)> [symbolic = %J.type.loc8_32.2 (constants.%J.type.5c8)] // CHECK:STDOUT: %.loc8_18.1: type = splice_block %.loc8_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc8_18.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc8_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @D.as.J.impl.e4062e.2 [concrete] { +// CHECK:STDOUT: impl_decl @D.as.J.impl.5a5643.2 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%D] -// CHECK:STDOUT: %J.ref: %J.type.f45 = name_ref J, imports.%Main.J [concrete = constants.%J.generic] +// CHECK:STDOUT: %J.ref: %J.type.23c = name_ref J, imports.%Main.J [concrete = constants.%J.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc14_15.1 [symbolic = %T.loc14_15.2 (constants.%T)] -// CHECK:STDOUT: %J.type.loc14_32.1: type = facet_type <@J, @J(constants.%T)> [symbolic = %J.type.loc14_32.2 (constants.%J.type.9a7)] +// CHECK:STDOUT: %J.type.loc14_32.1: type = facet_type <@J, @J(constants.%T)> [symbolic = %J.type.loc14_32.2 (constants.%J.type.5c8)] // CHECK:STDOUT: %.loc14_18.1: type = splice_block %.loc14_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc14_18.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc14_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc14_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @D.as.J.impl.165339.1 [concrete] { +// CHECK:STDOUT: impl_decl @D.as.J.impl.1010f3.1 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%D] -// CHECK:STDOUT: %J.ref: %J.type.f45 = name_ref J, imports.%Main.J [concrete = constants.%J.generic] +// CHECK:STDOUT: %J.ref: %J.type.23c = name_ref J, imports.%Main.J [concrete = constants.%J.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc20_15.1 [symbolic = %T.loc20_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc20_32.1: type = ptr_type %T.ref [symbolic = %ptr.loc20_32.2 (constants.%ptr)] -// CHECK:STDOUT: %J.type.loc20_33.1: type = facet_type <@J, @J(constants.%ptr)> [symbolic = %J.type.loc20_33.2 (constants.%J.type.a40)] +// CHECK:STDOUT: %J.type.loc20_33.1: type = facet_type <@J, @J(constants.%ptr)> [symbolic = %J.type.loc20_33.2 (constants.%J.type.c71)] // CHECK:STDOUT: %.loc20_18.1: type = splice_block %.loc20_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc20_18.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc20_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc20_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @D.as.J.impl.165339.2 [concrete] { +// CHECK:STDOUT: impl_decl @D.as.J.impl.1010f3.2 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%D] -// CHECK:STDOUT: %J.ref: %J.type.f45 = name_ref J, imports.%Main.J [concrete = constants.%J.generic] +// CHECK:STDOUT: %J.ref: %J.type.23c = name_ref J, imports.%Main.J [concrete = constants.%J.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc26_15.1 [symbolic = %T.loc26_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc26_32.1: type = ptr_type %T.ref [symbolic = %ptr.loc26_32.2 (constants.%ptr)] -// CHECK:STDOUT: %J.type.loc26_33.1: type = facet_type <@J, @J(constants.%ptr)> [symbolic = %J.type.loc26_33.2 (constants.%J.type.a40)] +// CHECK:STDOUT: %J.type.loc26_33.1: type = facet_type <@J, @J(constants.%ptr)> [symbolic = %J.type.loc26_33.2 (constants.%J.type.c71)] // CHECK:STDOUT: %.loc26_18.1: type = splice_block %.loc26_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc26_18.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc26_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc26_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @D.as.J.impl.df021b.1 [concrete] { +// CHECK:STDOUT: impl_decl @D.as.J.impl.d69d6f.1 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%D] -// CHECK:STDOUT: %N.ref: %N.type.cef = name_ref N, imports.%Main.N [concrete = constants.%empty_struct] +// CHECK:STDOUT: %N.ref: %N.type.b76 = name_ref N, imports.%Main.N [concrete = constants.%empty_struct] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc32_15.1 [symbolic = %T.loc32_15.2 (constants.%T)] // CHECK:STDOUT: %N.type.loc32_32.1: type = facet_type <@N, @N(constants.%T)> [symbolic = %N.type.loc32_32.2 (constants.%N.type.d682d6.1)] // CHECK:STDOUT: %.loc32_18.1: type = splice_block %.loc32_18.2 [concrete = type] { @@ -2362,11 +2362,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc32_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc32_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @D.as.J.impl.df021b.2 [concrete] { +// CHECK:STDOUT: impl_decl @D.as.J.impl.d69d6f.2 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%D] -// CHECK:STDOUT: %N.ref: %N.type.cef = name_ref N, imports.%Main.N [concrete = constants.%empty_struct] +// CHECK:STDOUT: %N.ref: %N.type.b76 = name_ref N, imports.%Main.N [concrete = constants.%empty_struct] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc38_15.1 [symbolic = %T.loc38_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc38_32.1: type = ptr_type %T.ref [symbolic = %ptr.loc38_32.2 (constants.%ptr)] // CHECK:STDOUT: %N.type.loc38_33.1: type = facet_type <@N, @N(constants.%ptr)> [symbolic = %N.type.loc38_33.2 (constants.%N.type.d682d6.2)] @@ -2382,12 +2382,12 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.9a7)] -// CHECK:STDOUT: %Self: @J.%J.type (%J.type.9a7) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.3f4)] +// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.5c8)] +// CHECK:STDOUT: %Self: @J.%J.type (%J.type.5c8) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.9f1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.8fe +// CHECK:STDOUT: .Self = imports.%Main.import_ref.ec8 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -2403,51 +2403,51 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: constraint { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.7ea -// CHECK:STDOUT: extend imports.%Main.import_ref.289 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.694 +// CHECK:STDOUT: extend imports.%Main.import_ref.b19 // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: @N.WithSelf.Self.as_type.impls.J.type.require { -// CHECK:STDOUT: require imports.%Main.import_ref.9e3 impls imports.%Main.import_ref.28f418.2 +// CHECK:STDOUT: require imports.%Main.import_ref.849 impls imports.%Main.import_ref.1936e1.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.J.type.require(imports.%Main.import_ref.b3bc94.6: type, imports.%Main.import_ref.f7be13.2: @N.%N.type (%N.type.d682d6.1)) [from "fail_import_generic_decl.carbon"] { +// CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.J.type.require(imports.%Main.import_ref.b3bc94.6: type, imports.%Main.import_ref.006c33.2: @N.%N.type (%N.type.d682d6.1)) [from "fail_import_generic_decl.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d682d6.1)] // CHECK:STDOUT: %Self: @N.WithSelf.Self.as_type.impls.J.type.require.%N.type (%N.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.9a7)] +// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.5c8)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @D.as.J.impl.a9a(imports.%Main.import_ref.b3bc94.3: type) [from "fail_import_generic_decl.carbon"] { +// CHECK:STDOUT: generic impl @D.as.J.impl.bdb(imports.%Main.import_ref.b3bc94.3: type) [from "fail_import_generic_decl.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.9a7)] -// CHECK:STDOUT: %J.impl_witness: = impl_witness imports.%J.impl_witness_table.f0e, @D.as.J.impl.a9a(%T) [symbolic = %J.impl_witness (constants.%J.impl_witness.52d)] +// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.5c8)] +// CHECK:STDOUT: %J.impl_witness: = impl_witness imports.%J.impl_witness_table.a64, @D.as.J.impl.bdb(%T) [symbolic = %J.impl_witness (constants.%J.impl_witness.699)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%Main.import_ref.a45035.1 as imports.%Main.import_ref.28f418.1; +// CHECK:STDOUT: impl: imports.%Main.import_ref.2e2cf0.1 as imports.%Main.import_ref.1936e1.1; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @D.as.J.impl.741(imports.%Main.import_ref.b3bc94.4: type) [from "fail_import_generic_decl.carbon"] { +// CHECK:STDOUT: generic impl @D.as.J.impl.fa6(imports.%Main.import_ref.b3bc94.4: type) [from "fail_import_generic_decl.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic = %ptr (constants.%ptr)] -// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%ptr)> [symbolic = %J.type (constants.%J.type.a40)] -// CHECK:STDOUT: %J.impl_witness: = impl_witness imports.%J.impl_witness_table.985, @D.as.J.impl.741(%T) [symbolic = %J.impl_witness (constants.%J.impl_witness.a9a)] +// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%ptr)> [symbolic = %J.type (constants.%J.type.c71)] +// CHECK:STDOUT: %J.impl_witness: = impl_witness imports.%J.impl_witness_table.93d, @D.as.J.impl.fa6(%T) [symbolic = %J.impl_witness (constants.%J.impl_witness.73b)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%Main.import_ref.a45035.2 as imports.%Main.import_ref.f32; +// CHECK:STDOUT: impl: imports.%Main.import_ref.2e2cf0.2 as imports.%Main.import_ref.5a0; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @D.as.J.impl.e4062e.1(%T.loc8_15.1: type) { +// CHECK:STDOUT: generic impl @D.as.J.impl.5a5643.1(%T.loc8_15.1: type) { // CHECK:STDOUT: %T.loc8_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc8_15.2 (constants.%T)] -// CHECK:STDOUT: %J.type.loc8_32.2: type = facet_type <@J, @J(%T.loc8_15.2)> [symbolic = %J.type.loc8_32.2 (constants.%J.type.9a7)] +// CHECK:STDOUT: %J.type.loc8_32.2: type = facet_type <@J, @J(%T.loc8_15.2)> [symbolic = %J.type.loc8_32.2 (constants.%J.type.5c8)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %D.ref as %J.type.loc8_32.1; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @D.as.J.impl.e4062e.2(%T.loc14_15.1: type) { +// CHECK:STDOUT: generic impl @D.as.J.impl.5a5643.2(%T.loc14_15.1: type) { // CHECK:STDOUT: %T.loc14_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc14_15.2 (constants.%T)] -// CHECK:STDOUT: %J.type.loc14_32.2: type = facet_type <@J, @J(%T.loc14_15.2)> [symbolic = %J.type.loc14_32.2 (constants.%J.type.9a7)] +// CHECK:STDOUT: %J.type.loc14_32.2: type = facet_type <@J, @J(%T.loc14_15.2)> [symbolic = %J.type.loc14_32.2 (constants.%J.type.5c8)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -2458,18 +2458,18 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @D.as.J.impl.165339.1(%T.loc20_15.1: type) { +// CHECK:STDOUT: generic impl @D.as.J.impl.1010f3.1(%T.loc20_15.1: type) { // CHECK:STDOUT: %T.loc20_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc20_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc20_32.2: type = ptr_type %T.loc20_15.2 [symbolic = %ptr.loc20_32.2 (constants.%ptr)] -// CHECK:STDOUT: %J.type.loc20_33.2: type = facet_type <@J, @J(%ptr.loc20_32.2)> [symbolic = %J.type.loc20_33.2 (constants.%J.type.a40)] +// CHECK:STDOUT: %J.type.loc20_33.2: type = facet_type <@J, @J(%ptr.loc20_32.2)> [symbolic = %J.type.loc20_33.2 (constants.%J.type.c71)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %D.ref as %J.type.loc20_33.1; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @D.as.J.impl.165339.2(%T.loc26_15.1: type) { +// CHECK:STDOUT: generic impl @D.as.J.impl.1010f3.2(%T.loc26_15.1: type) { // CHECK:STDOUT: %T.loc26_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc26_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc26_32.2: type = ptr_type %T.loc26_15.2 [symbolic = %ptr.loc26_32.2 (constants.%ptr)] -// CHECK:STDOUT: %J.type.loc26_33.2: type = facet_type <@J, @J(%ptr.loc26_32.2)> [symbolic = %J.type.loc26_33.2 (constants.%J.type.a40)] +// CHECK:STDOUT: %J.type.loc26_33.2: type = facet_type <@J, @J(%ptr.loc26_32.2)> [symbolic = %J.type.loc26_33.2 (constants.%J.type.c71)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -2480,7 +2480,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @D.as.J.impl.df021b.1(%T.loc32_15.1: type) { +// CHECK:STDOUT: generic impl @D.as.J.impl.d69d6f.1(%T.loc32_15.1: type) { // CHECK:STDOUT: %T.loc32_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc32_15.2 (constants.%T)] // CHECK:STDOUT: %N.type.loc32_32.2: type = facet_type <@N, @N(%T.loc32_15.2)> [symbolic = %N.type.loc32_32.2 (constants.%N.type.d682d6.1)] // CHECK:STDOUT: @@ -2493,7 +2493,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @D.as.J.impl.df021b.2(%T.loc38_15.1: type) { +// CHECK:STDOUT: generic impl @D.as.J.impl.d69d6f.2(%T.loc38_15.1: type) { // CHECK:STDOUT: %T.loc38_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc38_15.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc38_32.2: type = ptr_type %T.loc38_15.2 [symbolic = %ptr.loc38_32.2 (constants.%ptr)] // CHECK:STDOUT: %N.type.loc38_33.2: type = facet_type <@N, @N(%ptr.loc38_32.2)> [symbolic = %N.type.loc38_33.2 (constants.%N.type.d682d6.2)] @@ -2511,58 +2511,58 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.c42 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.54a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %J.type => constants.%J.type.9a7 -// CHECK:STDOUT: %Self => constants.%Self.3f4 +// CHECK:STDOUT: %J.type => constants.%J.type.5c8 +// CHECK:STDOUT: %Self => constants.%Self.9f1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%T, constants.%Self.3f4) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%T, constants.%Self.9f1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @D.as.J.impl.a9a(constants.%T) { +// CHECK:STDOUT: specific @D.as.J.impl.bdb(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %J.type => constants.%J.type.9a7 -// CHECK:STDOUT: %J.impl_witness => constants.%J.impl_witness.52d +// CHECK:STDOUT: %J.type => constants.%J.type.5c8 +// CHECK:STDOUT: %J.impl_witness => constants.%J.impl_witness.699 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J(constants.%ptr) { // CHECK:STDOUT: %T => constants.%ptr // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @D.as.J.impl.741(constants.%T) { +// CHECK:STDOUT: specific @D.as.J.impl.fa6(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %ptr => constants.%ptr -// CHECK:STDOUT: %J.type => constants.%J.type.a40 -// CHECK:STDOUT: %J.impl_witness => constants.%J.impl_witness.a9a +// CHECK:STDOUT: %J.type => constants.%J.type.c71 +// CHECK:STDOUT: %J.impl_witness => constants.%J.impl_witness.73b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @D.as.J.impl.e4062e.1(constants.%T) { +// CHECK:STDOUT: specific @D.as.J.impl.5a5643.1(constants.%T) { // CHECK:STDOUT: %T.loc8_15.2 => constants.%T -// CHECK:STDOUT: %J.type.loc8_32.2 => constants.%J.type.9a7 +// CHECK:STDOUT: %J.type.loc8_32.2 => constants.%J.type.5c8 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @D.as.J.impl.e4062e.2(constants.%T) { +// CHECK:STDOUT: specific @D.as.J.impl.5a5643.2(constants.%T) { // CHECK:STDOUT: %T.loc14_15.2 => constants.%T -// CHECK:STDOUT: %J.type.loc14_32.2 => constants.%J.type.9a7 +// CHECK:STDOUT: %J.type.loc14_32.2 => constants.%J.type.5c8 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @D.as.J.impl.165339.1(constants.%T) { +// CHECK:STDOUT: specific @D.as.J.impl.1010f3.1(constants.%T) { // CHECK:STDOUT: %T.loc20_15.2 => constants.%T // CHECK:STDOUT: %ptr.loc20_32.2 => constants.%ptr -// CHECK:STDOUT: %J.type.loc20_33.2 => constants.%J.type.a40 +// CHECK:STDOUT: %J.type.loc20_33.2 => constants.%J.type.c71 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @D.as.J.impl.165339.2(constants.%T) { +// CHECK:STDOUT: specific @D.as.J.impl.1010f3.2(constants.%T) { // CHECK:STDOUT: %T.loc26_15.2 => constants.%T // CHECK:STDOUT: %ptr.loc26_32.2 => constants.%ptr -// CHECK:STDOUT: %J.type.loc26_33.2 => constants.%J.type.a40 +// CHECK:STDOUT: %J.type.loc26_33.2 => constants.%J.type.c71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @N(constants.%T) { @@ -2576,14 +2576,14 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %N.type => constants.%N.type.d682d6.1 // CHECK:STDOUT: %Self => constants.%Self.e1f // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %J.type => constants.%J.type.9a7 +// CHECK:STDOUT: %J.type => constants.%J.type.5c8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @N.WithSelf(constants.%T, constants.%D.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %J.type => constants.%J.type.9a7 -// CHECK:STDOUT: %require_complete => constants.%require_complete.230 +// CHECK:STDOUT: %J.type => constants.%J.type.5c8 +// CHECK:STDOUT: %require_complete => constants.%require_complete.6ba // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.J.type.require(constants.%T, constants.%D.type.facet) { @@ -2591,10 +2591,10 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %N.type => constants.%N.type.d682d6.1 // CHECK:STDOUT: %Self => constants.%D.type.facet // CHECK:STDOUT: %Self.as_type => constants.%D -// CHECK:STDOUT: %J.type => constants.%J.type.9a7 +// CHECK:STDOUT: %J.type => constants.%J.type.5c8 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @D.as.J.impl.df021b.1(constants.%T) { +// CHECK:STDOUT: specific @D.as.J.impl.d69d6f.1(constants.%T) { // CHECK:STDOUT: %T.loc32_15.2 => constants.%T // CHECK:STDOUT: %N.type.loc32_32.2 => constants.%N.type.d682d6.1 // CHECK:STDOUT: } @@ -2606,8 +2606,8 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: specific @N.WithSelf(constants.%ptr, constants.%D.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%ptr -// CHECK:STDOUT: %J.type => constants.%J.type.a40 -// CHECK:STDOUT: %require_complete => constants.%require_complete.5bf +// CHECK:STDOUT: %J.type => constants.%J.type.c71 +// CHECK:STDOUT: %require_complete => constants.%require_complete.769 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.J.type.require(constants.%ptr, constants.%D.type.facet) { @@ -2615,10 +2615,10 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %N.type => constants.%N.type.d682d6.2 // CHECK:STDOUT: %Self => constants.%D.type.facet // CHECK:STDOUT: %Self.as_type => constants.%D -// CHECK:STDOUT: %J.type => constants.%J.type.a40 +// CHECK:STDOUT: %J.type => constants.%J.type.c71 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @D.as.J.impl.df021b.2(constants.%T) { +// CHECK:STDOUT: specific @D.as.J.impl.d69d6f.2(constants.%T) { // CHECK:STDOUT: %T.loc38_15.2 => constants.%T // CHECK:STDOUT: %ptr.loc38_32.2 => constants.%ptr // CHECK:STDOUT: %N.type.loc38_33.2 => constants.%N.type.d682d6.2 diff --git a/toolchain/check/testdata/impl/import_interface_assoc_const.carbon b/toolchain/check/testdata/impl/import_interface_assoc_const.carbon index 621780995aab..c4b9eb0ab3ee 100644 --- a/toolchain/check/testdata/impl/import_interface_assoc_const.carbon +++ b/toolchain/check/testdata/impl/import_interface_assoc_const.carbon @@ -206,21 +206,21 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.ab7: %I.assoc_type = assoc_entity element0, @I.WithSelf.%T [concrete] +// CHECK:STDOUT: %assoc0.2ce: %I.assoc_type = assoc_entity element0, @I.WithSelf.%T [concrete] // CHECK:STDOUT: %I3.type: type = facet_type <@I3> [concrete] -// CHECK:STDOUT: %Self.d58: %I3.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.d83: %I3.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %I3.assoc_type: type = assoc_entity_type @I3 [concrete] -// CHECK:STDOUT: %assoc0.a6e: %I3.assoc_type = assoc_entity element0, @I3.WithSelf.%T1 [concrete] +// CHECK:STDOUT: %assoc0.f05: %I3.assoc_type = assoc_entity element0, @I3.WithSelf.%T1 [concrete] // CHECK:STDOUT: %assoc1: %I3.assoc_type = assoc_entity element1, @I3.WithSelf.%T2 [concrete] // CHECK:STDOUT: %assoc2: %I3.assoc_type = assoc_entity element2, @I3.WithSelf.%T3 [concrete] // CHECK:STDOUT: %NonType.type: type = facet_type <@NonType> [concrete] -// CHECK:STDOUT: %Self.b8b: %NonType.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.ab8: %NonType.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %empty_struct_type} [concrete] // CHECK:STDOUT: %NonType.assoc_type: type = assoc_entity_type @NonType [concrete] -// CHECK:STDOUT: %assoc0.680: %NonType.assoc_type = assoc_entity element0, @NonType.WithSelf.%Y [concrete] +// CHECK:STDOUT: %assoc0.056: %NonType.assoc_type = assoc_entity element0, @NonType.WithSelf.%Y [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -235,12 +235,12 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%T [concrete = constants.%assoc0.ab7] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%T [concrete = constants.%assoc0.2ce] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -252,12 +252,12 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I3 { -// CHECK:STDOUT: %Self: %I3.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d58] +// CHECK:STDOUT: %Self: %I3.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d83] // CHECK:STDOUT: %I3.WithSelf.decl = interface_with_self_decl @I3 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %T1: type = assoc_const_decl @T1 [concrete] { -// CHECK:STDOUT: %assoc0: %I3.assoc_type = assoc_entity element0, @I3.WithSelf.%T1 [concrete = constants.%assoc0.a6e] +// CHECK:STDOUT: %assoc0: %I3.assoc_type = assoc_entity element0, @I3.WithSelf.%T1 [concrete = constants.%assoc0.f05] // CHECK:STDOUT: } // CHECK:STDOUT: %T2: type = assoc_const_decl @T2 [concrete] { // CHECK:STDOUT: %assoc1: %I3.assoc_type = assoc_entity element1, @I3.WithSelf.%T2 [concrete = constants.%assoc1] @@ -277,12 +277,12 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @NonType { -// CHECK:STDOUT: %Self: %NonType.type = symbolic_binding Self, 0 [symbolic = constants.%Self.b8b] +// CHECK:STDOUT: %Self: %NonType.type = symbolic_binding Self, 0 [symbolic = constants.%Self.ab8] // CHECK:STDOUT: %NonType.WithSelf.decl = interface_with_self_decl @NonType [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Y: %struct_type.a = assoc_const_decl @Y [concrete] { -// CHECK:STDOUT: %assoc0: %NonType.assoc_type = assoc_entity element0, @NonType.WithSelf.%Y [concrete = constants.%assoc0.680] +// CHECK:STDOUT: %assoc0: %NonType.assoc_type = assoc_entity element0, @NonType.WithSelf.%Y [concrete = constants.%assoc0.056] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -293,11 +293,11 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @I3.WithSelf(constants.%Self.d58) {} +// CHECK:STDOUT: specific @I3.WithSelf(constants.%Self.d83) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @NonType.WithSelf(constants.%Self.b8b) {} +// CHECK:STDOUT: specific @NonType.WithSelf(constants.%Self.ab8) {} // CHECK:STDOUT: // CHECK:STDOUT: --- basic.carbon // CHECK:STDOUT: @@ -310,7 +310,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.4ca [concrete] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.c4c [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] @@ -323,10 +323,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.7c6: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.b8f: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T] -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//interface, loc3_13, unloaded -// CHECK:STDOUT: %Main.import_ref.4ca: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//interface, loc3_13, unloaded +// CHECK:STDOUT: %Main.import_ref.c4c: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -346,7 +346,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc5_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc5_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc5_26.2: type = converted %.loc5_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -359,8 +359,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .T = imports.%Main.import_ref.7c6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .T = imports.%Main.import_ref.b8f // CHECK:STDOUT: witness = (imports.%Main.T) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -407,7 +407,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.4ca [concrete] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.c4c [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] @@ -420,10 +420,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.7c6: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.b8f: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T] -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//interface, loc3_13, unloaded -// CHECK:STDOUT: %Main.import_ref.4ca: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//interface, loc3_13, unloaded +// CHECK:STDOUT: %Main.import_ref.c4c: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -443,7 +443,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self.ref.loc5: %I.type = name_ref .Self, %.Self.loc5 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc5: type = facet_access_type %.Self.ref.loc5 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc5_20: type = converted %.Self.ref.loc5, %.Self.as_type.loc5 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref.loc5: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref.loc5: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc5: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc5_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc5_26.2: type = converted %.loc5_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -459,7 +459,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self.ref.loc6: %I.type = name_ref .Self, %.Self.loc6 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc6: type = facet_access_type %.Self.ref.loc6 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc6_20: type = converted %.Self.ref.loc6, %.Self.as_type.loc6 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref.loc6: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref.loc6: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc6: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc6_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc6_26.2: type = converted %.loc6_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -472,8 +472,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .T = imports.%Main.import_ref.7c6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .T = imports.%Main.import_ref.b8f // CHECK:STDOUT: witness = (imports.%Main.T) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -520,23 +520,23 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.4ca [concrete] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.c4c [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] -// CHECK:STDOUT: %I.impl_witness.f52: = impl_witness @C3.as.I.impl.fee.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C3, (%I.impl_witness.f52) [concrete] +// CHECK:STDOUT: %I.impl_witness.a69: = impl_witness @C3.as.I.impl.05f.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C3, (%I.impl_witness.a69) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.7c6: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.b8f: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T] -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//interface, loc3_13, unloaded -// CHECK:STDOUT: %Main.import_ref.4ca: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//interface, loc3_13, unloaded +// CHECK:STDOUT: %Main.import_ref.c4c: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -549,18 +549,18 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %C3.decl: type = class_decl @C3 [concrete = constants.%C3] {} {} -// CHECK:STDOUT: impl_decl @C3.as.I.impl.cae [concrete] {} { +// CHECK:STDOUT: impl_decl @C3.as.I.impl.a51 [concrete] {} { // CHECK:STDOUT: %C3.ref: type = name_ref C3, file.%C3.decl [concrete = constants.%C3] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C3.as.I.impl.fee [concrete] {} { +// CHECK:STDOUT: impl_decl @C3.as.I.impl.05f [concrete] {} { // CHECK:STDOUT: %C3.ref: type = name_ref C3, file.%C3.decl [concrete = constants.%C3] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc10_26.2: type = converted %.loc10_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -573,18 +573,18 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .T = imports.%Main.import_ref.7c6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .T = imports.%Main.import_ref.b8f // CHECK:STDOUT: witness = (imports.%Main.T) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C3.as.I.impl.cae: %C3.ref as %I.ref; +// CHECK:STDOUT: impl @C3.as.I.impl.a51: %C3.ref as %I.ref; // CHECK:STDOUT: -// CHECK:STDOUT: impl @C3.as.I.impl.fee: %C3.ref as %.loc10_14 { -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @C3.as.I.impl.fee [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.f52] +// CHECK:STDOUT: impl @C3.as.I.impl.05f: %C3.ref as %.loc10_14 { +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @C3.as.I.impl.05f [concrete] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.a69] // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -623,26 +623,26 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.4ca [concrete] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.c4c [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %I_where.type.2d0: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] +// CHECK:STDOUT: %I_where.type.f3a: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %I_where.type.79e: type = facet_type <@I where %impl.elem0 = %empty_tuple.type> [concrete] -// CHECK:STDOUT: %I.impl_witness.afb: = impl_witness @C4.as.I.impl.247.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C4, (%I.impl_witness.afb) [concrete] +// CHECK:STDOUT: %I_where.type.f02: type = facet_type <@I where %impl.elem0 = %empty_tuple.type> [concrete] +// CHECK:STDOUT: %I.impl_witness.7eb: = impl_witness @C4.as.I.impl.f4b.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C4, (%I.impl_witness.7eb) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.7c6: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.b8f: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T] -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//interface, loc3_13, unloaded -// CHECK:STDOUT: %Main.import_ref.4ca: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//interface, loc3_13, unloaded +// CHECK:STDOUT: %Main.import_ref.c4c: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -655,34 +655,34 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %C4.decl: type = class_decl @C4 [concrete = constants.%C4] {} {} -// CHECK:STDOUT: impl_decl @C4.as.I.impl.dcc [concrete] {} { +// CHECK:STDOUT: impl_decl @C4.as.I.impl.eff [concrete] {} { // CHECK:STDOUT: %C4.ref: type = name_ref C4, file.%C4.decl [concrete = constants.%C4] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc9_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc9_26.2: type = converted %.loc9_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %.loc9_14: type = where_expr [concrete = constants.%I_where.type.2d0] { +// CHECK:STDOUT: %.loc9_14: type = where_expr [concrete = constants.%I_where.type.f3a] { // CHECK:STDOUT: requirement_base_facet_type %I.ref // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc9_26.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C4.as.I.impl.247 [concrete] {} { +// CHECK:STDOUT: impl_decl @C4.as.I.impl.f4b [concrete] {} { // CHECK:STDOUT: %C4.ref: type = name_ref C4, file.%C4.decl [concrete = constants.%C4] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc10_26.2: type = converted %.loc10_26.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc10_14: type = where_expr [concrete = constants.%I_where.type.79e] { +// CHECK:STDOUT: %.loc10_14: type = where_expr [concrete = constants.%I_where.type.f02] { // CHECK:STDOUT: requirement_base_facet_type %I.ref // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc10_26.2 // CHECK:STDOUT: } @@ -691,18 +691,18 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .T = imports.%Main.import_ref.7c6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .T = imports.%Main.import_ref.b8f // CHECK:STDOUT: witness = (imports.%Main.T) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C4.as.I.impl.dcc: %C4.ref as %.loc9_14; +// CHECK:STDOUT: impl @C4.as.I.impl.eff: %C4.ref as %.loc9_14; // CHECK:STDOUT: -// CHECK:STDOUT: impl @C4.as.I.impl.247: %C4.ref as %.loc10_14 { -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @C4.as.I.impl.247 [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.afb] +// CHECK:STDOUT: impl @C4.as.I.impl.f4b: %C4.ref as %.loc10_14 { +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @C4.as.I.impl.f4b [concrete] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.7eb] // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -741,14 +741,14 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I3.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I3.assoc_type: type = assoc_entity_type @I3 [concrete] -// CHECK:STDOUT: %assoc0: %I3.assoc_type = assoc_entity element0, imports.%Main.import_ref.faf [concrete] +// CHECK:STDOUT: %assoc0: %I3.assoc_type = assoc_entity element0, imports.%Main.import_ref.d9b [concrete] // CHECK:STDOUT: %I3.lookup_impl_witness: = lookup_impl_witness %.Self, @I3 [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I3.lookup_impl_witness, element0 [symbolic_self] -// CHECK:STDOUT: %assoc1: %I3.assoc_type = assoc_entity element1, imports.%Main.import_ref.761 [concrete] +// CHECK:STDOUT: %assoc1: %I3.assoc_type = assoc_entity element1, imports.%Main.import_ref.680 [concrete] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access %I3.lookup_impl_witness, element1 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %empty_struct_type} [concrete] -// CHECK:STDOUT: %assoc2: %I3.assoc_type = assoc_entity element2, imports.%Main.import_ref.8e2 [concrete] +// CHECK:STDOUT: %assoc2: %I3.assoc_type = assoc_entity element2, imports.%Main.import_ref.3b5 [concrete] // CHECK:STDOUT: %impl.elem2: type = impl_witness_access %I3.lookup_impl_witness, element2 [symbolic_self] // CHECK:STDOUT: %struct_type.b: type = struct_type {.b: %empty_struct_type} [concrete] // CHECK:STDOUT: } @@ -757,18 +757,18 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I = import_ref Main//interface, I, unloaded // CHECK:STDOUT: %Main.I3: type = import_ref Main//interface, I3, loaded [concrete = constants.%I3.type] // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.9f6: %I3.assoc_type = import_ref Main//interface, loc6_9, loaded [concrete = constants.%assoc0] -// CHECK:STDOUT: %Main.import_ref.6a0: %I3.assoc_type = import_ref Main//interface, loc7_9, loaded [concrete = constants.%assoc1] -// CHECK:STDOUT: %Main.import_ref.d34: %I3.assoc_type = import_ref Main//interface, loc8_9, loaded [concrete = constants.%assoc2] +// CHECK:STDOUT: %Main.import_ref.e53: %I3.assoc_type = import_ref Main//interface, loc6_9, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.7af: %I3.assoc_type = import_ref Main//interface, loc7_9, loaded [concrete = constants.%assoc1] +// CHECK:STDOUT: %Main.import_ref.c31: %I3.assoc_type = import_ref Main//interface, loc8_9, loaded [concrete = constants.%assoc2] // CHECK:STDOUT: %Main.T1 = import_ref Main//interface, T1, unloaded // CHECK:STDOUT: %Main.T2 = import_ref Main//interface, T2, unloaded // CHECK:STDOUT: %Main.T3 = import_ref Main//interface, T3, unloaded -// CHECK:STDOUT: %Main.import_ref.693 = import_ref Main//interface, loc5_14, unloaded -// CHECK:STDOUT: %Main.import_ref.faf: type = import_ref Main//interface, loc6_9, loaded [concrete = %T1] +// CHECK:STDOUT: %Main.import_ref.77a = import_ref Main//interface, loc5_14, unloaded +// CHECK:STDOUT: %Main.import_ref.d9b: type = import_ref Main//interface, loc6_9, loaded [concrete = %T1] // CHECK:STDOUT: %T1: type = assoc_const_decl @T1 [concrete] {} -// CHECK:STDOUT: %Main.import_ref.761: type = import_ref Main//interface, loc7_9, loaded [concrete = %T2] +// CHECK:STDOUT: %Main.import_ref.680: type = import_ref Main//interface, loc7_9, loaded [concrete = %T2] // CHECK:STDOUT: %T2: type = assoc_const_decl @T2 [concrete] {} -// CHECK:STDOUT: %Main.import_ref.8e2: type = import_ref Main//interface, loc8_9, loaded [concrete = %T3] +// CHECK:STDOUT: %Main.import_ref.3b5: type = import_ref Main//interface, loc8_9, loaded [concrete = %T3] // CHECK:STDOUT: %T3: type = assoc_const_decl @T3 [concrete] {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -785,20 +785,20 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %C5.decl: type = class_decl @C5 [concrete = constants.%C5] {} {} -// CHECK:STDOUT: impl_decl @C5.as..impl.a0ad28.1 [concrete] {} { +// CHECK:STDOUT: impl_decl @C5.as..impl.f79ae5.1 [concrete] {} { // CHECK:STDOUT: %C5.ref: type = name_ref C5, file.%C5.decl [concrete = constants.%C5] // CHECK:STDOUT: %I3.ref: type = name_ref I3, imports.%Main.I3 [concrete = constants.%I3.type] // CHECK:STDOUT: %.Self: %I3.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc17_21: %I3.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc17_21: type = facet_access_type %.Self.ref.loc17_21 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc17_21: type = converted %.Self.ref.loc17_21, %.Self.as_type.loc17_21 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T1.ref: %I3.assoc_type = name_ref T1, imports.%Main.import_ref.9f6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T1.ref: %I3.assoc_type = name_ref T1, imports.%Main.import_ref.e53 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I3.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %BAD1.ref: = name_ref BAD1, [concrete = ] // CHECK:STDOUT: %.Self.ref.loc17_36: %I3.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc17_36: type = facet_access_type %.Self.ref.loc17_36 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc17_36: type = converted %.Self.ref.loc17_36, %.Self.as_type.loc17_36 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T2.ref: %I3.assoc_type = name_ref T2, imports.%Main.import_ref.6a0 [concrete = constants.%assoc1] +// CHECK:STDOUT: %T2.ref: %I3.assoc_type = name_ref T2, imports.%Main.import_ref.7af [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access constants.%I3.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.loc17_48.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc17_48.2: type = converted %.loc17_48.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -806,7 +806,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self.ref.loc17_55: %I3.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc17_55: type = facet_access_type %.Self.ref.loc17_55 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc17_55: type = converted %.Self.ref.loc17_55, %.Self.as_type.loc17_55 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T3.ref: %I3.assoc_type = name_ref T3, imports.%Main.import_ref.d34 [concrete = constants.%assoc2] +// CHECK:STDOUT: %T3.ref: %I3.assoc_type = name_ref T3, imports.%Main.import_ref.c31 [concrete = constants.%assoc2] // CHECK:STDOUT: %impl.elem2: type = impl_witness_access constants.%I3.lookup_impl_witness, element2 [symbolic_self = constants.%impl.elem2] // CHECK:STDOUT: %BAD2.ref: = name_ref BAD2, [concrete = ] // CHECK:STDOUT: %.loc17_15: type = where_expr [concrete = ] { @@ -816,14 +816,14 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: requirement_rewrite %impl.elem2, // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C5.as..impl.a0ad28.2 [concrete] {} { +// CHECK:STDOUT: impl_decl @C5.as..impl.f79ae5.2 [concrete] {} { // CHECK:STDOUT: %C5.ref: type = name_ref C5, file.%C5.decl [concrete = constants.%C5] // CHECK:STDOUT: %I3.ref: type = name_ref I3, imports.%Main.I3 [concrete = constants.%I3.type] // CHECK:STDOUT: %.Self: %I3.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc27_21: %I3.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc27_21: type = facet_access_type %.Self.ref.loc27_21 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc27_21: type = converted %.Self.ref.loc27_21, %.Self.as_type.loc27_21 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T1.ref: %I3.assoc_type = name_ref T1, imports.%Main.import_ref.9f6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T1.ref: %I3.assoc_type = name_ref T1, imports.%Main.import_ref.e53 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I3.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc27_33.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc27_33.2: type = converted %.loc27_33.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -831,13 +831,13 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self.ref.loc27_40: %I3.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc27_40: type = facet_access_type %.Self.ref.loc27_40 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc27_40: type = converted %.Self.ref.loc27_40, %.Self.as_type.loc27_40 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T2.ref: %I3.assoc_type = name_ref T2, imports.%Main.import_ref.6a0 [concrete = constants.%assoc1] +// CHECK:STDOUT: %T2.ref: %I3.assoc_type = name_ref T2, imports.%Main.import_ref.7af [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access constants.%I3.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %BAD3.ref: = name_ref BAD3, [concrete = ] // CHECK:STDOUT: %.Self.ref.loc27_55: %I3.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc27_55: type = facet_access_type %.Self.ref.loc27_55 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc27_55: type = converted %.Self.ref.loc27_55, %.Self.as_type.loc27_55 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T3.ref: %I3.assoc_type = name_ref T3, imports.%Main.import_ref.d34 [concrete = constants.%assoc2] +// CHECK:STDOUT: %T3.ref: %I3.assoc_type = name_ref T3, imports.%Main.import_ref.c31 [concrete = constants.%assoc2] // CHECK:STDOUT: %impl.elem2: type = impl_witness_access constants.%I3.lookup_impl_witness, element2 [symbolic_self = constants.%impl.elem2] // CHECK:STDOUT: %BAD4.ref: = name_ref BAD4, [concrete = ] // CHECK:STDOUT: %.loc27_15: type = where_expr [concrete = ] { @@ -851,18 +851,18 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: interface @I3 [from "interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.693 -// CHECK:STDOUT: .T1 = imports.%Main.import_ref.9f6 -// CHECK:STDOUT: .T2 = imports.%Main.import_ref.6a0 -// CHECK:STDOUT: .T3 = imports.%Main.import_ref.d34 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.77a +// CHECK:STDOUT: .T1 = imports.%Main.import_ref.e53 +// CHECK:STDOUT: .T2 = imports.%Main.import_ref.7af +// CHECK:STDOUT: .T3 = imports.%Main.import_ref.c31 // CHECK:STDOUT: witness = (imports.%Main.T1, imports.%Main.T2, imports.%Main.T3) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C5.as..impl.a0ad28.1: %C5.ref as ; +// CHECK:STDOUT: impl @C5.as..impl.f79ae5.1: %C5.ref as ; // CHECK:STDOUT: -// CHECK:STDOUT: impl @C5.as..impl.a0ad28.2: %C5.ref as { +// CHECK:STDOUT: impl @C5.as..impl.f79ae5.2: %C5.ref as { // CHECK:STDOUT: !members: // CHECK:STDOUT: extend // CHECK:STDOUT: witness = @@ -895,23 +895,23 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.4ca [concrete] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.c4c [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] -// CHECK:STDOUT: %I.impl_witness.a87: = impl_witness @C6.as.I.impl.1f8.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C6, (%I.impl_witness.a87) [concrete] +// CHECK:STDOUT: %I.impl_witness.a68: = impl_witness @C6.as.I.impl.e1b.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C6, (%I.impl_witness.a68) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.7c6: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.b8f: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T] -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//interface, loc3_13, unloaded -// CHECK:STDOUT: %Main.import_ref.4ca: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//interface, loc3_13, unloaded +// CHECK:STDOUT: %Main.import_ref.c4c: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -924,14 +924,14 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %C6.decl: type = class_decl @C6 [concrete = constants.%C6] {} {} -// CHECK:STDOUT: impl_decl @C6.as.I.impl.1ee [concrete] {} { +// CHECK:STDOUT: impl_decl @C6.as.I.impl.6c7 [concrete] {} { // CHECK:STDOUT: %C6.ref: type = name_ref C6, file.%C6.decl [concrete = constants.%C6] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc5_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc5_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc5_26.2: type = converted %.loc5_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -940,7 +940,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc5_26.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C6.as.I.impl.1f8 [concrete] {} { +// CHECK:STDOUT: impl_decl @C6.as.I.impl.e1b [concrete] {} { // CHECK:STDOUT: %C6.ref: type = name_ref C6, file.%C6.decl [concrete = constants.%C6] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: } @@ -948,18 +948,18 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .T = imports.%Main.import_ref.7c6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .T = imports.%Main.import_ref.b8f // CHECK:STDOUT: witness = (imports.%Main.T) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C6.as.I.impl.1ee: %C6.ref as %.loc5_14; +// CHECK:STDOUT: impl @C6.as.I.impl.6c7: %C6.ref as %.loc5_14; // CHECK:STDOUT: -// CHECK:STDOUT: impl @C6.as.I.impl.1f8: %C6.ref as %I.ref { -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C6.as.I.impl.1f8 [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.a87] +// CHECK:STDOUT: impl @C6.as.I.impl.e1b: %C6.ref as %I.ref { +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C6.as.I.impl.e1b [concrete] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.a68] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %I.ref @@ -997,7 +997,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.4ca [concrete] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.c4c [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] @@ -1009,10 +1009,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.7c6: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.b8f: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T = import_ref Main//interface, T, unloaded -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//interface, loc3_13, unloaded -// CHECK:STDOUT: %Main.import_ref.4ca: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//interface, loc3_13, unloaded +// CHECK:STDOUT: %Main.import_ref.c4c: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1032,14 +1032,14 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self.ref.loc10_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc10_20: type = facet_access_type %.Self.ref.loc10_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref.loc10_20, %.Self.as_type.loc10_20 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref.loc10_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref.loc10_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_20: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc10_26.2: type = converted %.loc10_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.Self.ref.loc10_32: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc10_32: type = facet_access_type %.Self.ref.loc10_32 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_32: type = converted %.Self.ref.loc10_32, %.Self.as_type.loc10_32 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref.loc10_32: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref.loc10_32: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_32: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst: type = impl_witness_access_substituted %impl.elem0.loc10_32, %.loc10_26.2 [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc10_38.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -1054,8 +1054,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .T = imports.%Main.import_ref.7c6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .T = imports.%Main.import_ref.b8f // CHECK:STDOUT: witness = (imports.%Main.T) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -1094,7 +1094,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.4ca [concrete] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.c4c [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] @@ -1105,10 +1105,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.7c6: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.b8f: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T = import_ref Main//interface, T, unloaded -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//interface, loc3_13, unloaded -// CHECK:STDOUT: %Main.import_ref.4ca: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//interface, loc3_13, unloaded +// CHECK:STDOUT: %Main.import_ref.c4c: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1129,13 +1129,13 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self.ref.loc10_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc10_20: type = facet_access_type %.Self.ref.loc10_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref.loc10_20, %.Self.as_type.loc10_20 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref.loc10_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref.loc10_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_20: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %BAD5.ref: = name_ref BAD5, [concrete = ] // CHECK:STDOUT: %.Self.ref.loc10_34: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc10_34: type = facet_access_type %.Self.ref.loc10_34 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_34: type = converted %.Self.ref.loc10_34, %.Self.as_type.loc10_34 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref.loc10_34: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref.loc10_34: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_34: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst: type = impl_witness_access_substituted %impl.elem0.loc10_34, [concrete = ] // CHECK:STDOUT: %.loc10_40.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -1150,8 +1150,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .T = imports.%Main.import_ref.7c6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .T = imports.%Main.import_ref.b8f // CHECK:STDOUT: witness = (imports.%Main.T) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -1190,7 +1190,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.4ca [concrete] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.c4c [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] @@ -1200,10 +1200,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.7c6: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.b8f: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T = import_ref Main//interface, T, unloaded -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//interface, loc3_13, unloaded -// CHECK:STDOUT: %Main.import_ref.4ca: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//interface, loc3_13, unloaded +// CHECK:STDOUT: %Main.import_ref.c4c: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1224,14 +1224,14 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self.ref.loc10_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc10_20: type = facet_access_type %.Self.ref.loc10_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref.loc10_20, %.Self.as_type.loc10_20 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref.loc10_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref.loc10_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_20: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc10_26.2: type = converted %.loc10_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.Self.ref.loc10_32: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc10_32: type = facet_access_type %.Self.ref.loc10_32 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_32: type = converted %.Self.ref.loc10_32, %.Self.as_type.loc10_32 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref.loc10_32: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref.loc10_32: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_32: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst: type = impl_witness_access_substituted %impl.elem0.loc10_32, %.loc10_26.2 [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %BAD6.ref: = name_ref BAD6, [concrete = ] @@ -1245,8 +1245,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .T = imports.%Main.import_ref.7c6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .T = imports.%Main.import_ref.b8f // CHECK:STDOUT: witness = (imports.%Main.T) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -1285,7 +1285,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.4ca [concrete] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.c4c [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: } @@ -1294,10 +1294,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.7c6: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.b8f: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T = import_ref Main//interface, T, unloaded -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//interface, loc3_13, unloaded -// CHECK:STDOUT: %Main.import_ref.4ca: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//interface, loc3_13, unloaded +// CHECK:STDOUT: %Main.import_ref.c4c: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1319,13 +1319,13 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self.ref.loc14_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc14_20: type = facet_access_type %.Self.ref.loc14_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc14_20: type = converted %.Self.ref.loc14_20, %.Self.as_type.loc14_20 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref.loc14_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref.loc14_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc14_20: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %BAD7.ref: = name_ref BAD7, [concrete = ] // CHECK:STDOUT: %.Self.ref.loc14_34: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc14_34: type = facet_access_type %.Self.ref.loc14_34 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc14_34: type = converted %.Self.ref.loc14_34, %.Self.as_type.loc14_34 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref.loc14_34: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref.loc14_34: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc14_34: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst: type = impl_witness_access_substituted %impl.elem0.loc14_34, [concrete = ] // CHECK:STDOUT: %BAD8.ref: = name_ref BAD8, [concrete = ] @@ -1339,8 +1339,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .T = imports.%Main.import_ref.7c6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .T = imports.%Main.import_ref.b8f // CHECK:STDOUT: witness = (imports.%Main.T) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -1379,7 +1379,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.4ca [concrete] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.c4c [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] @@ -1392,10 +1392,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.7c6: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.b8f: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T] -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//interface, loc3_13, unloaded -// CHECK:STDOUT: %Main.import_ref.4ca: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//interface, loc3_13, unloaded +// CHECK:STDOUT: %Main.import_ref.c4c: type = import_ref Main//interface, loc3_20, loaded [concrete = %T] // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1415,14 +1415,14 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self.ref.loc6_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc6_20: type = facet_access_type %.Self.ref.loc6_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc6_20: type = converted %.Self.ref.loc6_20, %.Self.as_type.loc6_20 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref.loc6_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref.loc6_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc6_20: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc6_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc6_26.2: type = converted %.loc6_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.Self.ref.loc6_32: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type.loc6_32: type = facet_access_type %.Self.ref.loc6_32 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc6_32: type = converted %.Self.ref.loc6_32, %.Self.as_type.loc6_32 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %T.ref.loc6_32: %I.assoc_type = name_ref T, imports.%Main.import_ref.7c6 [concrete = constants.%assoc0] +// CHECK:STDOUT: %T.ref.loc6_32: %I.assoc_type = name_ref T, imports.%Main.import_ref.b8f [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc6_32: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst: type = impl_witness_access_substituted %impl.elem0.loc6_32, %.loc6_26.2 [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc6_38.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -1437,8 +1437,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .T = imports.%Main.import_ref.7c6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .T = imports.%Main.import_ref.b8f // CHECK:STDOUT: witness = (imports.%Main.T) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -1485,7 +1485,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %NonType.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %NonType.assoc_type: type = assoc_entity_type @NonType [concrete] -// CHECK:STDOUT: %assoc0: %NonType.assoc_type = assoc_entity element0, imports.%Main.import_ref.c4d [concrete] +// CHECK:STDOUT: %assoc0: %NonType.assoc_type = assoc_entity element0, imports.%Main.import_ref.336 [concrete] // CHECK:STDOUT: %NonType.lookup_impl_witness: = lookup_impl_witness %.Self, @NonType [symbolic_self] // CHECK:STDOUT: %struct_type.a.225: type = struct_type {.a: %empty_struct_type} [concrete] // CHECK:STDOUT: %impl.elem0: %struct_type.a.225 = impl_witness_access %NonType.lookup_impl_witness, element0 [symbolic_self] @@ -1500,10 +1500,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I = import_ref Main//interface, I, unloaded // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType: type = import_ref Main//interface, NonType, loaded [concrete = constants.%NonType.type] -// CHECK:STDOUT: %Main.import_ref.690: %NonType.assoc_type = import_ref Main//interface, loc12_8, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.6c1: %NonType.assoc_type = import_ref Main//interface, loc12_8, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.Y: %struct_type.a.225 = import_ref Main//interface, Y, loaded [concrete = %Y] -// CHECK:STDOUT: %Main.import_ref.f5c = import_ref Main//interface, loc11_19, unloaded -// CHECK:STDOUT: %Main.import_ref.c4d: %struct_type.a.225 = import_ref Main//interface, loc12_8, loaded [concrete = %Y] +// CHECK:STDOUT: %Main.import_ref.f90 = import_ref Main//interface, loc11_19, unloaded +// CHECK:STDOUT: %Main.import_ref.336: %struct_type.a.225 = import_ref Main//interface, loc12_8, loaded [concrete = %Y] // CHECK:STDOUT: %Y: %struct_type.a.225 = assoc_const_decl @Y [concrete] {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1523,7 +1523,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self.ref: %NonType.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc6_26: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %Y.ref: %NonType.assoc_type = name_ref Y, imports.%Main.import_ref.690 [concrete = constants.%assoc0] +// CHECK:STDOUT: %Y.ref: %NonType.assoc_type = name_ref Y, imports.%Main.import_ref.6c1 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: %struct_type.a.225 = impl_witness_access constants.%NonType.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc6_38: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc6_39.1: %struct_type.a.225 = struct_literal (%.loc6_38) [concrete = constants.%struct] @@ -1540,8 +1540,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: interface @NonType [from "interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.f5c -// CHECK:STDOUT: .Y = imports.%Main.import_ref.690 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.f90 +// CHECK:STDOUT: .Y = imports.%Main.import_ref.6c1 // CHECK:STDOUT: witness = (imports.%Main.Y) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -1627,34 +1627,34 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %IF.type: type = facet_type <@IF> [concrete] // CHECK:STDOUT: %Self: %IF.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %IF.WithSelf.F.type.a22: type = fn_type @IF.WithSelf.F, @IF.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %IF.WithSelf.F.0d8: %IF.WithSelf.F.type.a22 = struct_value () [symbolic] +// CHECK:STDOUT: %IF.WithSelf.F.type.0ae: type = fn_type @IF.WithSelf.F, @IF.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %IF.WithSelf.F.1e7: %IF.WithSelf.F.type.0ae = struct_value () [symbolic] // CHECK:STDOUT: %.Self: %IF.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %IF.WithSelf.F.type.c32: type = fn_type @IF.WithSelf.F, @IF.WithSelf(%.Self) [symbolic_self] -// CHECK:STDOUT: %IF.WithSelf.F.84f: %IF.WithSelf.F.type.c32 = struct_value () [symbolic_self] +// CHECK:STDOUT: %IF.WithSelf.F.type.45b: type = fn_type @IF.WithSelf.F, @IF.WithSelf(%.Self) [symbolic_self] +// CHECK:STDOUT: %IF.WithSelf.F.3d6: %IF.WithSelf.F.type.45b = struct_value () [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %IF.assoc_type: type = assoc_entity_type @IF [concrete] -// CHECK:STDOUT: %assoc0: %IF.assoc_type = assoc_entity element0, imports.%Main.import_ref.132 [concrete] +// CHECK:STDOUT: %assoc0: %IF.assoc_type = assoc_entity element0, imports.%Main.import_ref.e6e [concrete] // CHECK:STDOUT: %IF.lookup_impl_witness: = lookup_impl_witness %.Self, @IF [symbolic_self] -// CHECK:STDOUT: %.577: type = fn_type_with_self_type %IF.WithSelf.F.type.c32, %.Self [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.577 = impl_witness_access %IF.lookup_impl_witness, element0 [symbolic_self] +// CHECK:STDOUT: %.eaa: type = fn_type_with_self_type %IF.WithSelf.F.type.45b, %.Self [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %.eaa = impl_witness_access %IF.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %IF_where.type: type = facet_type <@IF where %impl.elem0 = %int_0> [concrete] // CHECK:STDOUT: %IF.impl_witness: = impl_witness @CD.as.IF.impl.%IF.impl_witness_table [concrete] // CHECK:STDOUT: %CD.as.IF.impl.F.type: type = fn_type @CD.as.IF.impl.F [concrete] // CHECK:STDOUT: %CD.as.IF.impl.F: %CD.as.IF.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: %IF.facet: %IF.type = facet_value %CD, (%IF.impl_witness) [concrete] -// CHECK:STDOUT: %IF.WithSelf.F.type.483: type = fn_type @IF.WithSelf.F, @IF.WithSelf(%IF.facet) [concrete] -// CHECK:STDOUT: %IF.WithSelf.F.6e2: %IF.WithSelf.F.type.483 = struct_value () [concrete] +// CHECK:STDOUT: %IF.WithSelf.F.type.148: type = fn_type @IF.WithSelf.F, @IF.WithSelf(%IF.facet) [concrete] +// CHECK:STDOUT: %IF.WithSelf.F.ef4: %IF.WithSelf.F.type.148 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.IF: type = import_ref Main//interface_with_function, IF, loaded [concrete = constants.%IF.type] -// CHECK:STDOUT: %Main.import_ref.0f6: %IF.assoc_type = import_ref Main//interface_with_function, loc3_22, loaded [concrete = constants.%assoc0] -// CHECK:STDOUT: %Main.F: @IF.WithSelf.%IF.WithSelf.F.type (%IF.WithSelf.F.type.a22) = import_ref Main//interface_with_function, F, loaded [symbolic = @IF.WithSelf.%IF.WithSelf.F (constants.%IF.WithSelf.F.0d8)] -// CHECK:STDOUT: %Main.import_ref.17d96b.2: %IF.type = import_ref Main//interface_with_function, loc3_14, loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %Main.import_ref.579 = import_ref Main//interface_with_function, loc3_14, unloaded -// CHECK:STDOUT: %Main.import_ref.132: @IF.WithSelf.%IF.WithSelf.F.type (%IF.WithSelf.F.type.a22) = import_ref Main//interface_with_function, loc3_22, loaded [symbolic = @IF.WithSelf.%IF.WithSelf.F (constants.%IF.WithSelf.F.0d8)] +// CHECK:STDOUT: %Main.import_ref.94e: %IF.assoc_type = import_ref Main//interface_with_function, loc3_22, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.F: @IF.WithSelf.%IF.WithSelf.F.type (%IF.WithSelf.F.type.0ae) = import_ref Main//interface_with_function, F, loaded [symbolic = @IF.WithSelf.%IF.WithSelf.F (constants.%IF.WithSelf.F.1e7)] +// CHECK:STDOUT: %Main.import_ref.541dfe.2: %IF.type = import_ref Main//interface_with_function, loc3_14, loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.942 = import_ref Main//interface_with_function, loc3_14, unloaded +// CHECK:STDOUT: %Main.import_ref.e6e: @IF.WithSelf.%IF.WithSelf.F.type (%IF.WithSelf.F.type.0ae) = import_ref Main//interface_with_function, loc3_22, loaded [symbolic = @IF.WithSelf.%IF.WithSelf.F (constants.%IF.WithSelf.F.1e7)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1671,8 +1671,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self.ref: %IF.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_21: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %F.ref: %IF.assoc_type = name_ref F, imports.%Main.import_ref.0f6 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.577 = impl_witness_access constants.%IF.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %F.ref: %IF.assoc_type = name_ref F, imports.%Main.import_ref.94e [concrete = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %.eaa = impl_witness_access constants.%IF.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc10_15: type = where_expr [concrete = constants.%IF_where.type] { // CHECK:STDOUT: requirement_base_facet_type %IF.ref @@ -1683,8 +1683,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: interface @IF [from "interface_with_function.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.579 -// CHECK:STDOUT: .F = imports.%Main.import_ref.0f6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.942 +// CHECK:STDOUT: .F = imports.%Main.import_ref.94e // CHECK:STDOUT: witness = (imports.%Main.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -1709,7 +1709,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: .Self = constants.%CD // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @IF.WithSelf.F(imports.%Main.import_ref.17d96b.2: %IF.type) [from "interface_with_function.carbon"] { +// CHECK:STDOUT: generic fn @IF.WithSelf.F(imports.%Main.import_ref.541dfe.2: %IF.type) [from "interface_with_function.carbon"] { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1721,8 +1721,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: specific @IF.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %IF.WithSelf.F.type => constants.%IF.WithSelf.F.type.a22 -// CHECK:STDOUT: %IF.WithSelf.F => constants.%IF.WithSelf.F.0d8 +// CHECK:STDOUT: %IF.WithSelf.F.type => constants.%IF.WithSelf.F.type.0ae +// CHECK:STDOUT: %IF.WithSelf.F => constants.%IF.WithSelf.F.1e7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IF.WithSelf.F(constants.%Self) {} @@ -1730,15 +1730,15 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: specific @IF.WithSelf(constants.%.Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%.Self -// CHECK:STDOUT: %IF.WithSelf.F.type => constants.%IF.WithSelf.F.type.c32 -// CHECK:STDOUT: %IF.WithSelf.F => constants.%IF.WithSelf.F.84f +// CHECK:STDOUT: %IF.WithSelf.F.type => constants.%IF.WithSelf.F.type.45b +// CHECK:STDOUT: %IF.WithSelf.F => constants.%IF.WithSelf.F.3d6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IF.WithSelf(constants.%IF.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%IF.facet -// CHECK:STDOUT: %IF.WithSelf.F.type => constants.%IF.WithSelf.F.type.483 -// CHECK:STDOUT: %IF.WithSelf.F => constants.%IF.WithSelf.F.6e2 +// CHECK:STDOUT: %IF.WithSelf.F.type => constants.%IF.WithSelf.F.type.148 +// CHECK:STDOUT: %IF.WithSelf.F => constants.%IF.WithSelf.F.ef4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IF.WithSelf.F(constants.%IF.facet) {} diff --git a/toolchain/check/testdata/impl/import_self.carbon b/toolchain/check/testdata/impl/import_self.carbon index 93b59967d157..5825f2a3a9a9 100644 --- a/toolchain/check/testdata/impl/import_self.carbon +++ b/toolchain/check/testdata/impl/import_self.carbon @@ -43,7 +43,7 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: %Self: %Add.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %.c20: Core.Form = init_form %Self.as_type [symbolic] +// CHECK:STDOUT: %.3bf: Core.Form = init_form %Self.as_type [symbolic] // CHECK:STDOUT: %Add.WithSelf.Op.type: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %Add.WithSelf.Op: %Add.WithSelf.Op.type = struct_value () [symbolic] // CHECK:STDOUT: %Add.assoc_type: type = assoc_entity_type @Add [concrete] @@ -82,7 +82,7 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: %Self.ref.loc5_37: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_37: type = facet_access_type %Self.ref.loc5_37 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc5_37.2: type = converted %Self.ref.loc5_37, %Self.as_type.loc5_37 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_37.3: Core.Form = init_form %.loc5_37.2 [symbolic = %.loc5_37.1 (constants.%.c20)] +// CHECK:STDOUT: %.loc5_37.3: Core.Form = init_form %.loc5_37.2 [symbolic = %.loc5_37.1 (constants.%.3bf)] // CHECK:STDOUT: %self.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref.loc5_15: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] @@ -114,7 +114,7 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: %Self: %Add.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type (constants.%pattern_type)] -// CHECK:STDOUT: %.loc5_37.1: Core.Form = init_form %Self.as_type.loc5_15.1 [symbolic = %.loc5_37.1 (constants.%.c20)] +// CHECK:STDOUT: %.loc5_37.1: Core.Form = init_form %Self.as_type.loc5_15.1 [symbolic = %.loc5_37.1 (constants.%.3bf)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type), %other.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type)) -> out %return.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type); // CHECK:STDOUT: } @@ -125,7 +125,7 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type -// CHECK:STDOUT: %.loc5_37.1 => constants.%.c20 +// CHECK:STDOUT: %.loc5_37.1 => constants.%.3bf // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- b.carbon @@ -137,25 +137,25 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_tuple.type [concrete] // CHECK:STDOUT: %Add.type: type = facet_type <@Add> [concrete] // CHECK:STDOUT: %Self: %Add.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Add.WithSelf.Op.type.fb2: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %Add.WithSelf.Op.ebe: %Add.WithSelf.Op.type.fb2 = struct_value () [symbolic] +// CHECK:STDOUT: %Add.WithSelf.Op.type.ee5: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %Add.WithSelf.Op.39f: %Add.WithSelf.Op.type.ee5 = struct_value () [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.dfd: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %.1b3: Core.Form = init_form %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.78d: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %.719: Core.Form = init_form %Self.as_type [symbolic] // CHECK:STDOUT: %Add.impl_witness: = impl_witness @C.as.Add.impl.%Add.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] // CHECK:STDOUT: %C.as.Add.impl.Op.type: type = fn_type @C.as.Add.impl.Op [concrete] // CHECK:STDOUT: %C.as.Add.impl.Op: %C.as.Add.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Add.facet: %Add.type = facet_value %C, (%Add.impl_witness) [concrete] -// CHECK:STDOUT: %Add.WithSelf.Op.type.dd0: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet) [concrete] -// CHECK:STDOUT: %Add.WithSelf.Op.7e4: %Add.WithSelf.Op.type.dd0 = struct_value () [concrete] -// CHECK:STDOUT: %empty_tuple.a46: %C = tuple_value () [concrete] +// CHECK:STDOUT: %Add.WithSelf.Op.type.9f5: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet) [concrete] +// CHECK:STDOUT: %Add.WithSelf.Op.196: %Add.WithSelf.Op.type.9f5 = struct_value () [concrete] +// CHECK:STDOUT: %empty_tuple.4db: %C = tuple_value () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Add.assoc_type: type = assoc_entity_type @Add [concrete] -// CHECK:STDOUT: %assoc0: %Add.assoc_type = assoc_entity element0, imports.%Main.import_ref.92a [concrete] -// CHECK:STDOUT: %.0d2: type = fn_type_with_self_type %Add.WithSelf.Op.type.dd0, %Add.facet [concrete] +// CHECK:STDOUT: %assoc0: %Add.assoc_type = assoc_entity element0, imports.%Main.import_ref.f19 [concrete] +// CHECK:STDOUT: %.698: type = fn_type_with_self_type %Add.WithSelf.Op.type.9f5, %Add.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -164,11 +164,11 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.a99: %Add.assoc_type = import_ref Main//a, loc5_41, loaded [concrete = constants.%assoc0] -// CHECK:STDOUT: %Main.Op: @Add.WithSelf.%Add.WithSelf.Op.type (%Add.WithSelf.Op.type.fb2) = import_ref Main//a, Op, loaded [symbolic = @Add.WithSelf.%Add.WithSelf.Op (constants.%Add.WithSelf.Op.ebe)] -// CHECK:STDOUT: %Main.import_ref.9104f8.2: %Add.type = import_ref Main//a, loc4_15, loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %Main.import_ref.b81 = import_ref Main//a, loc4_15, unloaded -// CHECK:STDOUT: %Main.import_ref.92a: @Add.WithSelf.%Add.WithSelf.Op.type (%Add.WithSelf.Op.type.fb2) = import_ref Main//a, loc5_41, loaded [symbolic = @Add.WithSelf.%Add.WithSelf.Op (constants.%Add.WithSelf.Op.ebe)] +// CHECK:STDOUT: %Main.import_ref.d84: %Add.assoc_type = import_ref Main//a, loc5_41, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.Op: @Add.WithSelf.%Add.WithSelf.Op.type (%Add.WithSelf.Op.type.ee5) = import_ref Main//a, Op, loaded [symbolic = @Add.WithSelf.%Add.WithSelf.Op (constants.%Add.WithSelf.Op.39f)] +// CHECK:STDOUT: %Main.import_ref.9e12ee.2: %Add.type = import_ref Main//a, loc4_15, loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.6b4 = import_ref Main//a, loc4_15, unloaded +// CHECK:STDOUT: %Main.import_ref.f19: @Add.WithSelf.%Add.WithSelf.Op.type (%Add.WithSelf.Op.type.ee5) = import_ref Main//a, loc5_41, loaded [symbolic = @Add.WithSelf.%Add.WithSelf.Op (constants.%Add.WithSelf.Op.39f)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -186,15 +186,15 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: %Add.ref: type = name_ref Add, imports.%Main.Add [concrete = constants.%Add.type] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.0d5 = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %y.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %y.patt: %pattern_type.0d5 = at_binding_pattern y, %y.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref.loc12_21 [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.98b = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %y.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.98b = at_binding_pattern y, %y.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc12_21 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc12_21: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc12: Core.Form = init_form %C.ref.loc12_21 [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc12: Core.Form = init_form %C.ref.loc12_21 [concrete = constants.%.a44] // CHECK:STDOUT: %x.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc12_9: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %x: %C = value_binding x, %x.param @@ -208,8 +208,8 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: // CHECK:STDOUT: interface @Add [from "a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.b81 -// CHECK:STDOUT: .Op = imports.%Main.import_ref.a99 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.6b4 +// CHECK:STDOUT: .Op = imports.%Main.import_ref.d84 // CHECK:STDOUT: .C = // CHECK:STDOUT: witness = (imports.%Main.Op) // CHECK:STDOUT: @@ -218,15 +218,15 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.Add.impl: %C.ref as %Add.ref { // CHECK:STDOUT: %C.as.Add.impl.Op.decl: %C.as.Add.impl.Op.type = fn_decl @C.as.Add.impl.Op [concrete = constants.%C.as.Add.impl.Op] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.0d5 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.0d5 = at_binding_pattern other, %other.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %Self.ref.loc9_51 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.98b = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %Self.ref.loc9_51 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc9_51: type = name_ref Self, @C.as.Add.impl.%C.ref [concrete = constants.%C] -// CHECK:STDOUT: %.loc9_51: Core.Form = init_form %Self.ref.loc9_51 [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc9_51: Core.Form = init_form %Self.ref.loc9_51 [concrete = constants.%.a44] // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc9_22: type = name_ref Self, @C.as.Add.impl.%C.ref [concrete = constants.%C] // CHECK:STDOUT: %self: %C = value_binding self, %self.param @@ -257,11 +257,11 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Add.WithSelf.Op(imports.%Main.import_ref.9104f8.2: %Add.type) [from "a.carbon"] { +// CHECK:STDOUT: generic fn @Add.WithSelf.Op(imports.%Main.import_ref.9e12ee.2: %Add.type) [from "a.carbon"] { // CHECK:STDOUT: %Self: %Add.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.dfd)] -// CHECK:STDOUT: %.1: Core.Form = init_form %Self.as_type [symbolic = %.1 (constants.%.1b3)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.78d)] +// CHECK:STDOUT: %.1: Core.Form = init_form %Self.as_type [symbolic = %.1 (constants.%.719)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -271,12 +271,12 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: %.loc9_66: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple.af4] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple.af4] -// CHECK:STDOUT: %.loc9_68.1: %C = as_compatible %empty_tuple [concrete = constants.%empty_tuple.a46] -// CHECK:STDOUT: %.loc9_68.2: %C = converted %.loc9_66, %.loc9_68.1 [concrete = constants.%empty_tuple.a46] +// CHECK:STDOUT: %.loc9_68.1: %C = as_compatible %empty_tuple [concrete = constants.%empty_tuple.4db] +// CHECK:STDOUT: %.loc9_68.2: %C = converted %.loc9_66, %.loc9_68.1 [concrete = constants.%empty_tuple.4db] // CHECK:STDOUT: %.loc9_72.1: %empty_tuple.type = as_compatible %.loc9_68.2 [concrete = constants.%empty_tuple.af4] // CHECK:STDOUT: %.loc9_72.2: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple.af4] -// CHECK:STDOUT: %.loc9_72.3: init %C = as_compatible %.loc9_72.2 [concrete = constants.%empty_tuple.a46] -// CHECK:STDOUT: %.loc9_72.4: init %C = converted %.loc9_68.2, %.loc9_72.3 [concrete = constants.%empty_tuple.a46] +// CHECK:STDOUT: %.loc9_72.3: init %C = as_compatible %.loc9_72.2 [concrete = constants.%empty_tuple.4db] +// CHECK:STDOUT: %.loc9_72.4: init %C = converted %.loc9_68.2, %.loc9_72.3 [concrete = constants.%empty_tuple.4db] // CHECK:STDOUT: return %.loc9_72.4 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -284,8 +284,8 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: %C = name_ref x, %x // CHECK:STDOUT: %Add.ref: type = name_ref Add, imports.%Main.Add [concrete = constants.%Add.type] -// CHECK:STDOUT: %Op.ref: %Add.assoc_type = name_ref Op, imports.%Main.import_ref.a99 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.0d2 = impl_witness_access constants.%Add.impl_witness, element0 [concrete = constants.%C.as.Add.impl.Op] +// CHECK:STDOUT: %Op.ref: %Add.assoc_type = name_ref Op, imports.%Main.import_ref.d84 [concrete = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %.698 = impl_witness_access constants.%Add.impl_witness, element0 [concrete = constants.%C.as.Add.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %x.ref, %impl.elem0 // CHECK:STDOUT: %y.ref: %C = name_ref y, %y // CHECK:STDOUT: %C.as.Add.impl.Op.call: init %C = call %bound_method(%x.ref, %y.ref) @@ -295,28 +295,28 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: specific @Add.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.fb2 -// CHECK:STDOUT: %Add.WithSelf.Op => constants.%Add.WithSelf.Op.ebe +// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.ee5 +// CHECK:STDOUT: %Add.WithSelf.Op => constants.%Add.WithSelf.Op.39f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.dfd -// CHECK:STDOUT: %.1 => constants.%.1b3 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.78d +// CHECK:STDOUT: %.1 => constants.%.719 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf(constants.%Add.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Add.facet -// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.dd0 -// CHECK:STDOUT: %Add.WithSelf.Op => constants.%Add.WithSelf.Op.7e4 +// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.9f5 +// CHECK:STDOUT: %Add.WithSelf.Op => constants.%Add.WithSelf.Op.196 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Add.facet) { // CHECK:STDOUT: %Self => constants.%Add.facet // CHECK:STDOUT: %Self.as_type => constants.%C -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d5 -// CHECK:STDOUT: %.1 => constants.%.8f0 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b +// CHECK:STDOUT: %.1 => constants.%.a44 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/import_self_specific.carbon b/toolchain/check/testdata/impl/import_self_specific.carbon index aa8d70a8dafb..4e14abb5a7ed 100644 --- a/toolchain/check/testdata/impl/import_self_specific.carbon +++ b/toolchain/check/testdata/impl/import_self_specific.carbon @@ -66,7 +66,7 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] -// CHECK:STDOUT: %Self.d9e: %Y.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.765: %Y.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] @@ -74,32 +74,32 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: %Y.impl_witness: = impl_witness @T.as.Y.impl.%Y.impl_witness_table, @T.as.Y.impl(%T) [symbolic] // CHECK:STDOUT: %Y.facet: %Y.type = facet_value %T, (%Y.impl_witness) [symbolic] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.91f: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.cb6: %Z.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Z.impl_witness.7bb: = impl_witness @U.as.Z.impl.%Z.impl_witness_table, @U.as.Z.impl(%U) [symbolic] -// CHECK:STDOUT: %Z.facet.6ad: %Z.type = facet_value %U, (%Z.impl_witness.7bb) [symbolic] -// CHECK:STDOUT: %pattern_type.461: type = pattern_type %Z.type [concrete] +// CHECK:STDOUT: %Z.impl_witness.4e2: = impl_witness @U.as.Z.impl.%Z.impl_witness_table, @U.as.Z.impl(%U) [symbolic] +// CHECK:STDOUT: %Z.facet.156: %Z.type = facet_value %U, (%Z.impl_witness.4e2) [symbolic] +// CHECK:STDOUT: %pattern_type.5d7: type = pattern_type %Z.type [concrete] // CHECK:STDOUT: %V: %Z.type = symbolic_binding V, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.5be: type = class_type @C, @C(%V) [symbolic] +// CHECK:STDOUT: %C.bb9: type = class_type @C, @C(%V) [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_tuple.type [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%Assoc [concrete] -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %Self.179, @I [symbolic] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %Self.37e, @I [symbolic] // CHECK:STDOUT: %impl.elem0: %Y.type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %as_type: type = facet_access_type %impl.elem0 [symbolic] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %impl.elem0, @Z [symbolic] -// CHECK:STDOUT: %Z.impl_witness.294: = impl_witness @U.as.Z.impl.%Z.impl_witness_table, @U.as.Z.impl(%as_type) [symbolic] -// CHECK:STDOUT: %.84d: require_specific_def_type = require_specific_def @U.as.Z.impl(%as_type) [symbolic] -// CHECK:STDOUT: %Z.facet.664: %Z.type = facet_value %as_type, (%Z.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %C.d90: type = class_type @C, @C(%Z.facet.664) [symbolic] -// CHECK:STDOUT: %pattern_type.c4e: type = pattern_type %C.d90 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.179) [symbolic] +// CHECK:STDOUT: %Z.impl_witness.5d1: = impl_witness @U.as.Z.impl.%Z.impl_witness_table, @U.as.Z.impl(%as_type) [symbolic] +// CHECK:STDOUT: %.5b1: require_specific_def_type = require_specific_def @U.as.Z.impl(%as_type) [symbolic] +// CHECK:STDOUT: %Z.facet.4d3: %Z.type = facet_value %as_type, (%Z.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %C.e8d: type = class_type @C, @C(%Z.facet.4d3) [symbolic] +// CHECK:STDOUT: %pattern_type.ddf: type = pattern_type %C.e8d [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.37e) [symbolic] // CHECK:STDOUT: %I.WithSelf.F: %I.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %assoc1: %I.assoc_type = assoc_entity element1, @I.WithSelf.%I.WithSelf.F.decl [concrete] // CHECK:STDOUT: } @@ -136,7 +136,7 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: %U.loc9_15.1: type = symbolic_binding U, 0 [symbolic = %U.loc9_15.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { -// CHECK:STDOUT: %V.patt: %pattern_type.461 = symbolic_binding_pattern V, 0 [concrete] +// CHECK:STDOUT: %V.patt: %pattern_type.5d7 = symbolic_binding_pattern V, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11: type = splice_block %Z.ref [concrete = constants.%Z.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -148,7 +148,7 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Y { -// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d9e] +// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = constants.%Self.765] // CHECK:STDOUT: %Y.WithSelf.decl = interface_with_self_decl @Y [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -159,7 +159,7 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.91f] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.cb6] // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -170,7 +170,7 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -178,20 +178,20 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%Assoc [concrete = constants.%assoc0] // CHECK:STDOUT: } // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] { -// CHECK:STDOUT: %c.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.c4e) = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: @I.WithSelf.F.%pattern_type (%pattern_type.c4e) = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.ddf) = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: @I.WithSelf.F.%pattern_type (%pattern_type.ddf) = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %c.param: @I.WithSelf.F.%C.loc24_18.1 (%C.d90) = value_param call_param0 -// CHECK:STDOUT: %.loc24_18.2: type = splice_block %C.loc24_18.2 [symbolic = %C.loc24_18.1 (constants.%C.d90)] { +// CHECK:STDOUT: %c.param: @I.WithSelf.F.%C.loc24_18.1 (%C.e8d) = value_param call_param0 +// CHECK:STDOUT: %.loc24_18.2: type = splice_block %C.loc24_18.2 [symbolic = %C.loc24_18.1 (constants.%C.e8d)] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %impl.elem0.loc24_13.2: %Y.type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc24_13.1 (constants.%impl.elem0)] // CHECK:STDOUT: %Assoc.ref: %Y.type = name_ref Assoc, %impl.elem0.loc24_13.2 [symbolic = %impl.elem0.loc24_13.1 (constants.%impl.elem0)] // CHECK:STDOUT: %Assoc.as_type: type = facet_access_type %Assoc.ref [symbolic = %as_type (constants.%as_type)] -// CHECK:STDOUT: %Z.facet.loc24_18.2: %Z.type = facet_value %Assoc.as_type, (constants.%Z.lookup_impl_witness) [symbolic = %Z.facet.loc24_18.1 (constants.%Z.facet.664)] -// CHECK:STDOUT: %.loc24_18.3: %Z.type = converted %Assoc.ref, %Z.facet.loc24_18.2 [symbolic = %Z.facet.loc24_18.1 (constants.%Z.facet.664)] -// CHECK:STDOUT: %C.loc24_18.2: type = class_type @C, @C(constants.%Z.facet.664) [symbolic = %C.loc24_18.1 (constants.%C.d90)] +// CHECK:STDOUT: %Z.facet.loc24_18.2: %Z.type = facet_value %Assoc.as_type, (constants.%Z.lookup_impl_witness) [symbolic = %Z.facet.loc24_18.1 (constants.%Z.facet.4d3)] +// CHECK:STDOUT: %.loc24_18.3: %Z.type = converted %Assoc.ref, %Z.facet.loc24_18.2 [symbolic = %Z.facet.loc24_18.1 (constants.%Z.facet.4d3)] +// CHECK:STDOUT: %C.loc24_18.2: type = class_type @C, @C(constants.%Z.facet.4d3) [symbolic = %C.loc24_18.1 (constants.%C.e8d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: @I.WithSelf.F.%C.loc24_18.1 (%C.d90) = value_binding c, %c.param +// CHECK:STDOUT: %c: @I.WithSelf.F.%C.loc24_18.1 (%C.e8d) = value_binding c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %I.assoc_type = assoc_entity element1, %I.WithSelf.F.decl [concrete = constants.%assoc1] // CHECK:STDOUT: @@ -226,13 +226,13 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @U.as.Z.impl(%U.loc9_15.1: type) { // CHECK:STDOUT: %U.loc9_15.2: type = symbolic_binding U, 0 [symbolic = %U.loc9_15.2 (constants.%U)] -// CHECK:STDOUT: %Z.impl_witness.loc9_31.2: = impl_witness %Z.impl_witness_table, @U.as.Z.impl(%U.loc9_15.2) [symbolic = %Z.impl_witness.loc9_31.2 (constants.%Z.impl_witness.7bb)] +// CHECK:STDOUT: %Z.impl_witness.loc9_31.2: = impl_witness %Z.impl_witness_table, @U.as.Z.impl(%U.loc9_15.2) [symbolic = %Z.impl_witness.loc9_31.2 (constants.%Z.impl_witness.4e2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %U.ref as %Z.ref { // CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (), @U.as.Z.impl [concrete] -// CHECK:STDOUT: %Z.impl_witness.loc9_31.1: = impl_witness %Z.impl_witness_table, @U.as.Z.impl(constants.%U) [symbolic = %Z.impl_witness.loc9_31.2 (constants.%Z.impl_witness.7bb)] +// CHECK:STDOUT: %Z.impl_witness.loc9_31.1: = impl_witness %Z.impl_witness_table, @U.as.Z.impl(constants.%U) [symbolic = %Z.impl_witness.loc9_31.2 (constants.%Z.impl_witness.4e2)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %Z.ref @@ -253,25 +253,25 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.5be +// CHECK:STDOUT: .Self = constants.%C.bb9 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.179)] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.37e)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %Self, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] // CHECK:STDOUT: %impl.elem0.loc24_13.1: %Y.type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc24_13.1 (constants.%impl.elem0)] // CHECK:STDOUT: %as_type: type = facet_access_type %impl.elem0.loc24_13.1 [symbolic = %as_type (constants.%as_type)] -// CHECK:STDOUT: %.loc24_18.1: require_specific_def_type = require_specific_def @U.as.Z.impl(%as_type) [symbolic = %.loc24_18.1 (constants.%.84d)] +// CHECK:STDOUT: %.loc24_18.1: require_specific_def_type = require_specific_def @U.as.Z.impl(%as_type) [symbolic = %.loc24_18.1 (constants.%.5b1)] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %impl.elem0.loc24_13.1, @Z [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness)] -// CHECK:STDOUT: %Z.facet.loc24_18.1: %Z.type = facet_value %as_type, (%Z.lookup_impl_witness) [symbolic = %Z.facet.loc24_18.1 (constants.%Z.facet.664)] -// CHECK:STDOUT: %C.loc24_18.1: type = class_type @C, @C(%Z.facet.loc24_18.1) [symbolic = %C.loc24_18.1 (constants.%C.d90)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %C.loc24_18.1 [symbolic = %pattern_type (constants.%pattern_type.c4e)] +// CHECK:STDOUT: %Z.facet.loc24_18.1: %Z.type = facet_value %as_type, (%Z.lookup_impl_witness) [symbolic = %Z.facet.loc24_18.1 (constants.%Z.facet.4d3)] +// CHECK:STDOUT: %C.loc24_18.1: type = class_type @C, @C(%Z.facet.loc24_18.1) [symbolic = %C.loc24_18.1 (constants.%C.e8d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %C.loc24_18.1 [symbolic = %pattern_type (constants.%pattern_type.ddf)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%c.param: @I.WithSelf.F.%C.loc24_18.1 (%C.d90)); +// CHECK:STDOUT: fn(%c.param: @I.WithSelf.F.%C.loc24_18.1 (%C.e8d)); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.d9e) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.765) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -284,16 +284,16 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.91f) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.cb6) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @U.as.Z.impl(constants.%U) { // CHECK:STDOUT: %U.loc9_15.2 => constants.%U -// CHECK:STDOUT: %Z.impl_witness.loc9_31.2 => constants.%Z.impl_witness.7bb +// CHECK:STDOUT: %Z.impl_witness.loc9_31.2 => constants.%Z.impl_witness.4e2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet.6ad) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet.156) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -301,29 +301,29 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: %V.loc11_10.1 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @U.as.Z.impl(constants.%as_type) { // CHECK:STDOUT: %U.loc9_15.2 => constants.%as_type -// CHECK:STDOUT: %Z.impl_witness.loc9_31.2 => constants.%Z.impl_witness.294 +// CHECK:STDOUT: %Z.impl_witness.loc9_31.2 => constants.%Z.impl_witness.5d1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%Z.facet.664) { -// CHECK:STDOUT: %V.loc11_10.1 => constants.%Z.facet.664 +// CHECK:STDOUT: specific @C(constants.%Z.facet.4d3) { +// CHECK:STDOUT: %V.loc11_10.1 => constants.%Z.facet.4d3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.179) { -// CHECK:STDOUT: %Self => constants.%Self.179 +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.37e) { +// CHECK:STDOUT: %Self => constants.%Self.37e // CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.lookup_impl_witness // CHECK:STDOUT: %impl.elem0.loc24_13.1 => constants.%impl.elem0 // CHECK:STDOUT: %as_type => constants.%as_type -// CHECK:STDOUT: %.loc24_18.1 => constants.%.84d +// CHECK:STDOUT: %.loc24_18.1 => constants.%.5b1 // CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.lookup_impl_witness -// CHECK:STDOUT: %Z.facet.loc24_18.1 => constants.%Z.facet.664 -// CHECK:STDOUT: %C.loc24_18.1 => constants.%C.d90 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c4e +// CHECK:STDOUT: %Z.facet.loc24_18.1 => constants.%Z.facet.4d3 +// CHECK:STDOUT: %C.loc24_18.1 => constants.%C.e8d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ddf // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- impl_use.carbon @@ -334,60 +334,60 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.ee7: type = pattern_type %E [concrete] +// CHECK:STDOUT: %pattern_type.849: type = pattern_type %E [concrete] // CHECK:STDOUT: %N: %E = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %D.type: type = generic_class_type @D [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %D.generic: %D.type = struct_value () [concrete] // CHECK:STDOUT: %D: type = class_type @D, @D(%N) [symbolic] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.2e1: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.a52: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.2e1) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.08d: %I.WithSelf.F.type.a52 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.dda: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.418: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.dda) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ca5: %I.WithSelf.F.type.418 = struct_value () [symbolic] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.aa0: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.lookup_impl_witness.312: = lookup_impl_witness %Self.2e1, @I [symbolic] +// CHECK:STDOUT: %Self.013: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %I.lookup_impl_witness.03b: = lookup_impl_witness %Self.dda, @I [symbolic] // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] -// CHECK:STDOUT: %Self.a20: %Y.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %impl.elem0.fbb: %Y.type = impl_witness_access %I.lookup_impl_witness.312, element0 [symbolic] -// CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %impl.elem0.fbb, @Z [symbolic] -// CHECK:STDOUT: %as_type: type = facet_access_type %impl.elem0.fbb [symbolic] -// CHECK:STDOUT: %Z.facet.f5b: %Z.type = facet_value %as_type, (%Z.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Self.95b: %Y.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %impl.elem0.67e: %Y.type = impl_witness_access %I.lookup_impl_witness.03b, element0 [symbolic] +// CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %impl.elem0.67e, @Z [symbolic] +// CHECK:STDOUT: %as_type: type = facet_access_type %impl.elem0.67e [symbolic] +// CHECK:STDOUT: %Z.facet.416: %Z.type = facet_value %as_type, (%Z.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] // CHECK:STDOUT: %complete_type.782: = complete_type_witness %empty_tuple.type [concrete] // CHECK:STDOUT: %V: %Z.type = symbolic_binding V, 0 [symbolic] -// CHECK:STDOUT: %C.83f: type = class_type @C, @C(%Z.facet.f5b) [symbolic] -// CHECK:STDOUT: %pattern_type.5ae: type = pattern_type %C.83f [symbolic] +// CHECK:STDOUT: %C.526: type = class_type @C, @C(%Z.facet.416) [symbolic] +// CHECK:STDOUT: %pattern_type.d24: type = pattern_type %C.526 [symbolic] // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Z.impl_witness.804: = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%U) [symbolic] -// CHECK:STDOUT: %.004: require_specific_def_type = require_specific_def @U.as.Z.impl(%as_type) [symbolic] -// CHECK:STDOUT: %Z.impl_witness.dcf: = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%as_type) [symbolic] -// CHECK:STDOUT: %.Self.0a6: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %I.WithSelf.F.type.285: type = fn_type @I.WithSelf.F, @I.WithSelf(%.Self.0a6) [symbolic_self] -// CHECK:STDOUT: %I.WithSelf.F.95c: %I.WithSelf.F.type.285 = struct_value () [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.0a6 [symbolic_self] +// CHECK:STDOUT: %Z.impl_witness.824: = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%U) [symbolic] +// CHECK:STDOUT: %.68b: require_specific_def_type = require_specific_def @U.as.Z.impl(%as_type) [symbolic] +// CHECK:STDOUT: %Z.impl_witness.6f3: = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%as_type) [symbolic] +// CHECK:STDOUT: %.Self.9e9: %I.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %I.WithSelf.F.type.d2b: type = fn_type @I.WithSelf.F, @I.WithSelf(%.Self.9e9) [symbolic_self] +// CHECK:STDOUT: %I.WithSelf.F.d34: %I.WithSelf.F.type.d2b = struct_value () [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.9e9 [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.3a7 [concrete] -// CHECK:STDOUT: %I.lookup_impl_witness.f3b: = lookup_impl_witness %.Self.0a6, @I [symbolic_self] -// CHECK:STDOUT: %impl.elem0.a7b: %Y.type = impl_witness_access %I.lookup_impl_witness.f3b, element0 [symbolic_self] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.d73 [concrete] +// CHECK:STDOUT: %I.lookup_impl_witness.a48: = lookup_impl_witness %.Self.9e9, @I [symbolic_self] +// CHECK:STDOUT: %impl.elem0.699: %Y.type = impl_witness_access %I.lookup_impl_witness.a48, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Y.impl_witness.7c5: = impl_witness imports.%Y.impl_witness_table, @T.as.Y.impl(%T) [symbolic] -// CHECK:STDOUT: %Y.impl_witness.e02: = impl_witness imports.%Y.impl_witness_table, @T.as.Y.impl(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %empty_tuple.type, (%Y.impl_witness.e02) [concrete] -// CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0.a7b = %Y.facet> [concrete] +// CHECK:STDOUT: %Y.impl_witness.3d4: = impl_witness imports.%Y.impl_witness_table, @T.as.Y.impl(%T) [symbolic] +// CHECK:STDOUT: %Y.impl_witness.2e8: = impl_witness imports.%Y.impl_witness_table, @T.as.Y.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %empty_tuple.type, (%Y.impl_witness.2e8) [concrete] +// CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0.699 = %Y.facet> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @D.as.I.impl.%I.impl_witness_table, @D.as.I.impl(%N) [symbolic] -// CHECK:STDOUT: %Z.impl_witness.dd2: = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %.9ad: require_specific_def_type = require_specific_def @U.as.Z.impl(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %Z.facet.de9: %Z.type = facet_value %empty_tuple.type, (%Z.impl_witness.dd2) [concrete] -// CHECK:STDOUT: %C.ad5: type = class_type @C, @C(%Z.facet.de9) [concrete] -// CHECK:STDOUT: %pattern_type.819: type = pattern_type %C.ad5 [concrete] +// CHECK:STDOUT: %Z.impl_witness.1c1: = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %.dd0: require_specific_def_type = require_specific_def @U.as.Z.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Z.facet.39d: %Z.type = facet_value %empty_tuple.type, (%Z.impl_witness.1c1) [concrete] +// CHECK:STDOUT: %C.00e: type = class_type @C, @C(%Z.facet.39d) [concrete] +// CHECK:STDOUT: %pattern_type.78f: type = pattern_type %C.00e [concrete] // CHECK:STDOUT: %D.as.I.impl.F.type: type = fn_type @D.as.I.impl.F, @D.as.I.impl(%N) [symbolic] // CHECK:STDOUT: %D.as.I.impl.F: %D.as.I.impl.F.type = struct_value () [symbolic] // CHECK:STDOUT: %I.facet: %I.type = facet_value %D, (%I.impl_witness) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.94b: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.b62: %I.WithSelf.F.type.94b = struct_value () [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.499: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.a7e: %I.WithSelf.F.type.499 = struct_value () [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -395,28 +395,28 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: %Main.Z = import_ref Main//impl_def, Z, unloaded // CHECK:STDOUT: %Main.C: %C.type = import_ref Main//impl_def, C, loaded [concrete = constants.%C.generic] // CHECK:STDOUT: %Main.I: type = import_ref Main//impl_def, I, loaded [concrete = constants.%I.type] -// CHECK:STDOUT: %Main.import_ref.56d: %I.assoc_type = import_ref Main//impl_def, loc16_12, loaded [concrete = constants.%assoc0] -// CHECK:STDOUT: %Main.import_ref.26c = import_ref Main//impl_def, loc24_20, unloaded +// CHECK:STDOUT: %Main.import_ref.f32: %I.assoc_type = import_ref Main//impl_def, loc16_12, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.505 = import_ref Main//impl_def, loc24_20, unloaded // CHECK:STDOUT: %Main.Assoc: %Y.type = import_ref Main//impl_def, Assoc, loaded [concrete = %Assoc] -// CHECK:STDOUT: %Main.F: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.a52) = import_ref Main//impl_def, F, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.08d)] -// CHECK:STDOUT: %Main.import_ref.4e5 = import_ref Main//impl_def, loc8_13, unloaded -// CHECK:STDOUT: %Main.import_ref.31b = import_ref Main//impl_def, loc4_13, unloaded +// CHECK:STDOUT: %Main.F: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.418) = import_ref Main//impl_def, F, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ca5)] +// CHECK:STDOUT: %Main.import_ref.e73 = import_ref Main//impl_def, loc8_13, unloaded +// CHECK:STDOUT: %Main.import_ref.28a = import_ref Main//impl_def, loc4_13, unloaded // CHECK:STDOUT: %Main.import_ref.3fc: = import_ref Main//impl_def, loc13_1, loaded [concrete = constants.%complete_type.782] -// CHECK:STDOUT: %Main.import_ref.052 = import_ref Main//impl_def, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.353: %Z.type = import_ref Main//impl_def, loc11_10, loaded [symbolic = @C.%V (constants.%V)] -// CHECK:STDOUT: %Main.import_ref.50f: = import_ref Main//impl_def, loc9_31, loaded [symbolic = @U.as.Z.impl.%Z.impl_witness (constants.%Z.impl_witness.804)] +// CHECK:STDOUT: %Main.import_ref.b5a = import_ref Main//impl_def, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.65b: %Z.type = import_ref Main//impl_def, loc11_10, loaded [symbolic = @C.%V (constants.%V)] +// CHECK:STDOUT: %Main.import_ref.f68: = import_ref Main//impl_def, loc9_31, loaded [symbolic = @U.as.Z.impl.%Z.impl_witness (constants.%Z.impl_witness.824)] // CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (), @U.as.Z.impl [concrete] // CHECK:STDOUT: %Main.import_ref.b7a: type = import_ref Main//impl_def, loc9_24, loaded [symbolic = @U.as.Z.impl.%U (constants.%U)] -// CHECK:STDOUT: %Main.import_ref.fa9: type = import_ref Main//impl_def, loc9_29, loaded [concrete = constants.%Z.type] +// CHECK:STDOUT: %Main.import_ref.fbe: type = import_ref Main//impl_def, loc9_29, loaded [concrete = constants.%Z.type] // CHECK:STDOUT: %Main.import_ref.b3bc94.1: type = import_ref Main//impl_def, loc9_15, loaded [symbolic = @U.as.Z.impl.%U (constants.%U)] -// CHECK:STDOUT: %Main.import_ref.c42703.2: %I.type = import_ref Main//impl_def, loc15_13, loaded [symbolic = constants.%Self.2e1] -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//impl_def, loc15_13, unloaded -// CHECK:STDOUT: %Main.import_ref.3a7: %Y.type = import_ref Main//impl_def, loc16_12, loaded [concrete = %Assoc] +// CHECK:STDOUT: %Main.import_ref.e59c42.2: %I.type = import_ref Main//impl_def, loc15_13, loaded [symbolic = constants.%Self.dda] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//impl_def, loc15_13, unloaded +// CHECK:STDOUT: %Main.import_ref.d73: %Y.type = import_ref Main//impl_def, loc16_12, loaded [concrete = %Assoc] // CHECK:STDOUT: %Assoc: %Y.type = assoc_const_decl @Assoc [concrete] {} -// CHECK:STDOUT: %Main.import_ref.097: = import_ref Main//impl_def, loc5_31, loaded [symbolic = @T.as.Y.impl.%Y.impl_witness (constants.%Y.impl_witness.7c5)] +// CHECK:STDOUT: %Main.import_ref.201: = import_ref Main//impl_def, loc5_31, loaded [symbolic = @T.as.Y.impl.%Y.impl_witness (constants.%Y.impl_witness.3d4)] // CHECK:STDOUT: %Y.impl_witness_table = impl_witness_table (), @T.as.Y.impl [concrete] // CHECK:STDOUT: %Main.import_ref.68d: type = import_ref Main//impl_def, loc5_24, loaded [symbolic = @T.as.Y.impl.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.fb7: type = import_ref Main//impl_def, loc5_29, loaded [concrete = constants.%Y.type] +// CHECK:STDOUT: %Main.import_ref.81e: type = import_ref Main//impl_def, loc5_29, loaded [concrete = constants.%Y.type] // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//impl_def, loc5_15, loaded [symbolic = @T.as.Y.impl.%T (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -432,7 +432,7 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %E.decl: type = class_decl @E [concrete = constants.%E] {} {} // CHECK:STDOUT: %D.decl: %D.type = class_decl @D [concrete = constants.%D.generic] { -// CHECK:STDOUT: %N.patt: %pattern_type.ee7 = symbolic_binding_pattern N, 0 [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.849 = symbolic_binding_pattern N, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7: type = splice_block %E.ref [concrete = constants.%E] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] @@ -441,20 +441,20 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: %N.loc7_10.2: %E = symbolic_binding N, 0 [symbolic = %N.loc7_10.1 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @D.as.I.impl [concrete] { -// CHECK:STDOUT: %N.patt: %pattern_type.ee7 = symbolic_binding_pattern N, 0 [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.849 = symbolic_binding_pattern N, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: %D.type = name_ref D, file.%D.decl [concrete = constants.%D.generic] // CHECK:STDOUT: %N.ref: %E = name_ref N, %N.loc20_15.2 [symbolic = %N.loc20_15.1 (constants.%N)] // CHECK:STDOUT: %D.loc20_24.2: type = class_type @D, @D(constants.%N) [symbolic = %D.loc20_24.1 (constants.%D)] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] -// CHECK:STDOUT: %.Self.loc20_31: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.0a6] -// CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.loc20_31 [symbolic_self = constants.%.Self.0a6] +// CHECK:STDOUT: %.Self.loc20_31: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.9e9] +// CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.loc20_31 [symbolic_self = constants.%.Self.9e9] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc20_37: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %Assoc.ref: %I.assoc_type = name_ref Assoc, imports.%Main.import_ref.56d [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %Y.type = impl_witness_access constants.%I.lookup_impl_witness.f3b, element0 [symbolic_self = constants.%impl.elem0.a7b] +// CHECK:STDOUT: %Assoc.ref: %I.assoc_type = name_ref Assoc, imports.%Main.import_ref.f32 [concrete = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %Y.type = impl_witness_access constants.%I.lookup_impl_witness.a48, element0 [symbolic_self = constants.%impl.elem0.699] // CHECK:STDOUT: %.loc20_47.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %Y.facet: %Y.type = facet_value constants.%empty_tuple.type, (constants.%Y.impl_witness.e02) [concrete = constants.%Y.facet] +// CHECK:STDOUT: %Y.facet: %Y.type = facet_value constants.%empty_tuple.type, (constants.%Y.impl_witness.2e8) [concrete = constants.%Y.facet] // CHECK:STDOUT: %.loc20_47.2: %Y.type = converted %.loc20_47.1, %Y.facet [concrete = constants.%Y.facet] // CHECK:STDOUT: %.loc20_31: type = where_expr [concrete = constants.%I_where.type] { // CHECK:STDOUT: requirement_base_facet_type %I.ref @@ -470,9 +470,9 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "impl_def.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .Assoc = imports.%Main.import_ref.56d -// CHECK:STDOUT: .F = imports.%Main.import_ref.26c +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .Assoc = imports.%Main.import_ref.f32 +// CHECK:STDOUT: .F = imports.%Main.import_ref.505 // CHECK:STDOUT: .C = // CHECK:STDOUT: witness = (imports.%Main.Assoc, imports.%Main.F) // CHECK:STDOUT: @@ -481,7 +481,7 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: // CHECK:STDOUT: interface @Z [from "impl_def.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.4e5 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e73 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -489,7 +489,7 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: // CHECK:STDOUT: interface @Y [from "impl_def.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.31b +// CHECK:STDOUT: .Self = imports.%Main.import_ref.28a // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -497,25 +497,25 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @U.as.Z.impl(imports.%Main.import_ref.b3bc94.1: type) [from "impl_def.carbon"] { // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %Z.impl_witness: = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%U) [symbolic = %Z.impl_witness (constants.%Z.impl_witness.804)] +// CHECK:STDOUT: %Z.impl_witness: = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%U) [symbolic = %Z.impl_witness (constants.%Z.impl_witness.824)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%Main.import_ref.b7a as imports.%Main.import_ref.fa9 { +// CHECK:STDOUT: impl: imports.%Main.import_ref.b7a as imports.%Main.import_ref.fbe { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Main.import_ref.50f +// CHECK:STDOUT: witness = imports.%Main.import_ref.f68 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic impl @T.as.Y.impl(imports.%Main.import_ref.b3bc94.2: type) [from "impl_def.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Y.impl_witness: = impl_witness imports.%Y.impl_witness_table, @T.as.Y.impl(%T) [symbolic = %Y.impl_witness (constants.%Y.impl_witness.7c5)] +// CHECK:STDOUT: %Y.impl_witness: = impl_witness imports.%Y.impl_witness_table, @T.as.Y.impl(%T) [symbolic = %Y.impl_witness (constants.%Y.impl_witness.3d4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%Main.import_ref.68d as imports.%Main.import_ref.fb7 { +// CHECK:STDOUT: impl: imports.%Main.import_ref.68d as imports.%Main.import_ref.81e { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Main.import_ref.097 +// CHECK:STDOUT: witness = imports.%Main.import_ref.201 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -530,18 +530,18 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: // CHECK:STDOUT: impl: %D.loc20_24.2 as %.loc20_31 { // CHECK:STDOUT: %D.as.I.impl.F.decl: @D.as.I.impl.%D.as.I.impl.F.type (%D.as.I.impl.F.type) = fn_decl @D.as.I.impl.F [symbolic = @D.as.I.impl.%D.as.I.impl.F (constants.%D.as.I.impl.F)] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.819 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.819 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.78f = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.78f = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %c.param: %C.ad5 = value_param call_param0 -// CHECK:STDOUT: %.loc21_22.1: type = splice_block %C [concrete = constants.%C.ad5] { +// CHECK:STDOUT: %c.param: %C.00e = value_param call_param0 +// CHECK:STDOUT: %.loc21_22.1: type = splice_block %C [concrete = constants.%C.00e] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C.generic] // CHECK:STDOUT: %.loc21_21: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value constants.%empty_tuple.type, (constants.%Z.impl_witness.dd2) [concrete = constants.%Z.facet.de9] -// CHECK:STDOUT: %.loc21_22.2: %Z.type = converted %.loc21_21, %Z.facet [concrete = constants.%Z.facet.de9] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%Z.facet.de9) [concrete = constants.%C.ad5] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value constants.%empty_tuple.type, (constants.%Z.impl_witness.1c1) [concrete = constants.%Z.facet.39d] +// CHECK:STDOUT: %.loc21_22.2: %Z.type = converted %.loc21_21, %Z.facet [concrete = constants.%Z.facet.39d] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%Z.facet.39d) [concrete = constants.%C.00e] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %C.ad5 = value_binding c, %c.param +// CHECK:STDOUT: %c: %C.00e = value_binding c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant, %D.as.I.impl.F.decl), @D.as.I.impl [concrete] // CHECK:STDOUT: %I.impl_witness.loc20_49.1: = impl_witness %I.impl_witness_table, @D.as.I.impl(constants.%N) [symbolic = %I.impl_witness.loc20_49.2 (constants.%I.impl_witness)] @@ -577,7 +577,7 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(imports.%Main.import_ref.353: %Z.type) [from "impl_def.carbon"] { +// CHECK:STDOUT: generic class @C(imports.%Main.import_ref.65b: %Z.type) [from "impl_def.carbon"] { // CHECK:STDOUT: %V: %Z.type = symbolic_binding V, 0 [symbolic = %V (constants.%V)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -586,20 +586,20 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.3fc // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.052 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.b5a // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.c42703.2: %I.type) [from "impl_def.carbon"] { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.2e1)] -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %Self, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness.312)] -// CHECK:STDOUT: %impl.elem0: %Y.type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0 (constants.%impl.elem0.fbb)] +// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.e59c42.2: %I.type) [from "impl_def.carbon"] { +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.dda)] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %Self, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness.03b)] +// CHECK:STDOUT: %impl.elem0: %Y.type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0 (constants.%impl.elem0.67e)] // CHECK:STDOUT: %as_type: type = facet_access_type %impl.elem0 [symbolic = %as_type (constants.%as_type)] -// CHECK:STDOUT: %.1: require_specific_def_type = require_specific_def @U.as.Z.impl(%as_type) [symbolic = %.1 (constants.%.004)] +// CHECK:STDOUT: %.1: require_specific_def_type = require_specific_def @U.as.Z.impl(%as_type) [symbolic = %.1 (constants.%.68b)] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %impl.elem0, @Z [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness)] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %as_type, (%Z.lookup_impl_witness) [symbolic = %Z.facet (constants.%Z.facet.f5b)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%Z.facet) [symbolic = %C (constants.%C.83f)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %C [symbolic = %pattern_type (constants.%pattern_type.5ae)] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %as_type, (%Z.lookup_impl_witness) [symbolic = %Z.facet (constants.%Z.facet.416)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%Z.facet) [symbolic = %C (constants.%C.526)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %C [symbolic = %pattern_type (constants.%pattern_type.d24)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -607,7 +607,7 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: generic fn @D.as.I.impl.F(@D.as.I.impl.%N.loc20_15.2: %E) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%c.param: %C.ad5) { +// CHECK:STDOUT: fn(%c.param: %C.00e) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -617,18 +617,18 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: %N.loc7_10.1 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.2e1) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.dda) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.2e1 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.a52 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.08d +// CHECK:STDOUT: %Self => constants.%Self.dda +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.418 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ca5 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.aa0) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.013) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.a20) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.95b) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -636,49 +636,49 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: %V => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%Z.facet.f5b) { -// CHECK:STDOUT: %V => constants.%Z.facet.f5b +// CHECK:STDOUT: specific @C(constants.%Z.facet.416) { +// CHECK:STDOUT: %V => constants.%Z.facet.416 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @U.as.Z.impl(constants.%U) { // CHECK:STDOUT: %U => constants.%U -// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.804 +// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.824 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @U.as.Z.impl(constants.%as_type) { // CHECK:STDOUT: %U => constants.%as_type -// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.dcf +// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.6f3 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.2e1) { -// CHECK:STDOUT: %Self => constants.%Self.2e1 -// CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.lookup_impl_witness.312 -// CHECK:STDOUT: %impl.elem0 => constants.%impl.elem0.fbb +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.dda) { +// CHECK:STDOUT: %Self => constants.%Self.dda +// CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.lookup_impl_witness.03b +// CHECK:STDOUT: %impl.elem0 => constants.%impl.elem0.67e // CHECK:STDOUT: %as_type => constants.%as_type -// CHECK:STDOUT: %.1 => constants.%.004 +// CHECK:STDOUT: %.1 => constants.%.68b // CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.lookup_impl_witness -// CHECK:STDOUT: %Z.facet => constants.%Z.facet.f5b -// CHECK:STDOUT: %C => constants.%C.83f -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5ae +// CHECK:STDOUT: %Z.facet => constants.%Z.facet.416 +// CHECK:STDOUT: %C => constants.%C.526 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d24 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.0a6) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.9e9) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%.Self.0a6 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.285 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.95c +// CHECK:STDOUT: %Self => constants.%.Self.9e9 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d2b +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.d34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.Y.impl(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Y.impl_witness => constants.%Y.impl_witness.7c5 +// CHECK:STDOUT: %Y.impl_witness => constants.%Y.impl_witness.3d4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.Y.impl(constants.%empty_tuple.type) { // CHECK:STDOUT: %T => constants.%empty_tuple.type -// CHECK:STDOUT: %Y.impl_witness => constants.%Y.impl_witness.e02 +// CHECK:STDOUT: %Y.impl_witness => constants.%Y.impl_witness.2e8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -695,13 +695,13 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: // CHECK:STDOUT: specific @U.as.Z.impl(constants.%empty_tuple.type) { // CHECK:STDOUT: %U => constants.%empty_tuple.type -// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.dd2 +// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.1c1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%Z.facet.de9) { -// CHECK:STDOUT: %V => constants.%Z.facet.de9 +// CHECK:STDOUT: specific @C(constants.%Z.facet.39d) { +// CHECK:STDOUT: %V => constants.%Z.facet.39d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -711,8 +711,8 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.94b -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.b62 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.499 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.a7e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) { @@ -720,10 +720,10 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.impl_witness // CHECK:STDOUT: %impl.elem0 => constants.%Y.facet // CHECK:STDOUT: %as_type => constants.%empty_tuple.type -// CHECK:STDOUT: %.1 => constants.%.9ad -// CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.impl_witness.dd2 -// CHECK:STDOUT: %Z.facet => constants.%Z.facet.de9 -// CHECK:STDOUT: %C => constants.%C.ad5 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.819 +// CHECK:STDOUT: %.1 => constants.%.dd0 +// CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.impl_witness.1c1 +// CHECK:STDOUT: %Z.facet => constants.%Z.facet.39d +// CHECK:STDOUT: %C => constants.%C.00e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.78f // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/import_thunk.carbon b/toolchain/check/testdata/impl/import_thunk.carbon index 026836a2b9df..9e06aaa93f82 100644 --- a/toolchain/check/testdata/impl/import_thunk.carbon +++ b/toolchain/check/testdata/impl/import_thunk.carbon @@ -116,43 +116,43 @@ fn G() { // CHECK:STDOUT: %X: %empty_tuple.type = symbolic_binding X, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.bc4daf.1: type = class_type @C, @C(%X) [symbolic] +// CHECK:STDOUT: %C.6b1ed7.1: type = class_type @C, @C(%X) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Y: %empty_tuple.type = symbolic_binding Y, 0 [symbolic] -// CHECK:STDOUT: %C.bc4daf.2: type = class_type @C, @C(%Y) [symbolic] +// CHECK:STDOUT: %C.6b1ed7.2: type = class_type @C, @C(%Y) [symbolic] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.2e1: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.a52: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.2e1) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.08d: %I.WithSelf.F.type.a52 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.dda: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.418: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.dda) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ca5: %I.WithSelf.F.type.418 = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table, @C.as.I.impl(%Y) [symbolic] -// CHECK:STDOUT: %pattern_type.cf7: type = pattern_type %C.bc4daf.2 [symbolic] -// CHECK:STDOUT: %C.as.I.impl.F.type.6ced3c.1: type = fn_type @C.as.I.impl.F.loc8_24.1, @C.as.I.impl(%Y) [symbolic] -// CHECK:STDOUT: %C.as.I.impl.F.e9dd9d.1: %C.as.I.impl.F.type.6ced3c.1 = struct_value () [symbolic] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.bc4daf.2, (%I.impl_witness) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.372: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.c78: %I.WithSelf.F.type.372 = struct_value () [symbolic] -// CHECK:STDOUT: %C.as.I.impl.F.type.6ced3c.2: type = fn_type @C.as.I.impl.F.loc8_24.2, @C.as.I.impl(%Y) [symbolic] -// CHECK:STDOUT: %C.as.I.impl.F.e9dd9d.2: %C.as.I.impl.F.type.6ced3c.2 = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %C.bc4daf.2 [symbolic] -// CHECK:STDOUT: %C.as.I.impl.F.specific_fn: = specific_function %C.as.I.impl.F.e9dd9d.1, @C.as.I.impl.F.loc8_24.1(%Y) [symbolic] -// CHECK:STDOUT: %C.val: %C.bc4daf.2 = struct_value () [symbolic] -// CHECK:STDOUT: %.2ab: ref %C.bc4daf.2 = temporary invalid, %C.val [symbolic] +// CHECK:STDOUT: %pattern_type.d0f: type = pattern_type %C.6b1ed7.2 [symbolic] +// CHECK:STDOUT: %C.as.I.impl.F.type.9a27ec.1: type = fn_type @C.as.I.impl.F.loc8_24.1, @C.as.I.impl(%Y) [symbolic] +// CHECK:STDOUT: %C.as.I.impl.F.84dd70.1: %C.as.I.impl.F.type.9a27ec.1 = struct_value () [symbolic] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.6b1ed7.2, (%I.impl_witness) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.535: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.6f0: %I.WithSelf.F.type.535 = struct_value () [symbolic] +// CHECK:STDOUT: %C.as.I.impl.F.type.9a27ec.2: type = fn_type @C.as.I.impl.F.loc8_24.2, @C.as.I.impl(%Y) [symbolic] +// CHECK:STDOUT: %C.as.I.impl.F.84dd70.2: %C.as.I.impl.F.type.9a27ec.2 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %C.6b1ed7.2 [symbolic] +// CHECK:STDOUT: %C.as.I.impl.F.specific_fn: = specific_function %C.as.I.impl.F.84dd70.1, @C.as.I.impl.F.loc8_24.1(%Y) [symbolic] +// CHECK:STDOUT: %C.val: %C.6b1ed7.2 = struct_value () [symbolic] +// CHECK:STDOUT: %.e66: ref %C.6b1ed7.2 = temporary invalid, %C.val [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Self.c66: %Destroy.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.630: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Self.c66) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.821: %Destroy.WithSelf.Op.type.630 = struct_value () [symbolic] +// 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.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.818 [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %C.bc4daf.2, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.526: %Destroy.type = facet_value %C.bc4daf.2, (%Destroy.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d44: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.526) [symbolic] -// CHECK:STDOUT: %.5d8: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.d44, %Destroy.facet.526 [symbolic] -// CHECK:STDOUT: %impl.elem0: %.5d8 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %bound_method.c9f: = bound_method %.2ab, %impl.elem0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op(%Destroy.facet.526) [symbolic] -// CHECK:STDOUT: %bound_method.f94: = bound_method %.2ab, %specific_impl_fn [symbolic] +// 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: %.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: %bound_method.ef4: = bound_method %.e66, %specific_impl_fn [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -162,14 +162,14 @@ fn G() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.8a2 = import_ref Main//a, loc5_14, unloaded -// CHECK:STDOUT: %Main.F: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.a52) = import_ref Main//a, F, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.08d)] -// CHECK:STDOUT: %I.WithSelf.F.decl: %I.WithSelf.F.type.a52 = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.08d)] {} {} -// CHECK:STDOUT: %Main.import_ref.c42703.2: %I.type = import_ref Main//a, loc4_13, loaded [symbolic = constants.%Self.2e1] -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//a, loc4_13, unloaded +// CHECK:STDOUT: %Main.import_ref.046 = import_ref Main//a, loc5_14, unloaded +// CHECK:STDOUT: %Main.F: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.418) = import_ref Main//a, F, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ca5)] +// CHECK:STDOUT: %I.WithSelf.F.decl: %I.WithSelf.F.type.418 = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ca5)] {} {} +// CHECK:STDOUT: %Main.import_ref.e59c42.2: %I.type = import_ref Main//a, loc4_13, loaded [symbolic = constants.%Self.dda] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//a, loc4_13, unloaded // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.8fe: %Destroy.assoc_type = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc0] -// CHECK:STDOUT: %Core.import_ref.818: @Destroy.WithSelf.%Destroy.WithSelf.Op.type (%Destroy.WithSelf.Op.type.630) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @Destroy.WithSelf.%Destroy.WithSelf.Op (constants.%Destroy.WithSelf.Op.821)] +// CHECK:STDOUT: %Core.import_ref.c64: %Destroy.assoc_type = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Core.import_ref.918: @Destroy.WithSelf.%Destroy.WithSelf.Op.type (%Destroy.WithSelf.Op.type.d3e) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @Destroy.WithSelf.%Destroy.WithSelf.Op (constants.%Destroy.WithSelf.Op.42b)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -195,7 +195,7 @@ fn G() { // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %Y.ref: %empty_tuple.type = name_ref Y, %Y.loc7_15.2 [symbolic = %Y.loc7_15.1 (constants.%Y)] -// CHECK:STDOUT: %C.loc7_25.2: type = class_type @C, @C(constants.%Y) [symbolic = %C.loc7_25.1 (constants.%C.bc4daf.2)] +// CHECK:STDOUT: %C.loc7_25.2: type = class_type @C, @C(constants.%Y) [symbolic = %C.loc7_25.1 (constants.%C.6b1ed7.2)] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.loc7_19.1: type = splice_block %.loc7_19.3 [concrete = constants.%empty_tuple.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -208,8 +208,8 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .F = imports.%Main.import_ref.8a2 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .F = imports.%Main.import_ref.046 // CHECK:STDOUT: .C = // CHECK:STDOUT: .Y = // CHECK:STDOUT: witness = (imports.%Main.F) @@ -219,29 +219,29 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @C.as.I.impl(%Y.loc7_15.2: %empty_tuple.type) { // CHECK:STDOUT: %Y.loc7_15.1: %empty_tuple.type = symbolic_binding Y, 0 [symbolic = %Y.loc7_15.1 (constants.%Y)] -// CHECK:STDOUT: %C.loc7_25.1: type = class_type @C, @C(%Y.loc7_15.1) [symbolic = %C.loc7_25.1 (constants.%C.bc4daf.2)] +// CHECK:STDOUT: %C.loc7_25.1: type = class_type @C, @C(%Y.loc7_15.1) [symbolic = %C.loc7_25.1 (constants.%C.6b1ed7.2)] // CHECK:STDOUT: %I.impl_witness.loc7_32.2: = impl_witness %I.impl_witness_table, @C.as.I.impl(%Y.loc7_15.1) [symbolic = %I.impl_witness.loc7_32.2 (constants.%I.impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.as.I.impl.F.type.loc8_24.1: type = fn_type @C.as.I.impl.F.loc8_24.1, @C.as.I.impl(%Y.loc7_15.1) [symbolic = %C.as.I.impl.F.type.loc8_24.1 (constants.%C.as.I.impl.F.type.6ced3c.1)] -// CHECK:STDOUT: %C.as.I.impl.F.loc8_24.1: @C.as.I.impl.%C.as.I.impl.F.type.loc8_24.1 (%C.as.I.impl.F.type.6ced3c.1) = struct_value () [symbolic = %C.as.I.impl.F.loc8_24.1 (constants.%C.as.I.impl.F.e9dd9d.1)] -// CHECK:STDOUT: %C.as.I.impl.F.type.loc8_24.2: type = fn_type @C.as.I.impl.F.loc8_24.2, @C.as.I.impl(%Y.loc7_15.1) [symbolic = %C.as.I.impl.F.type.loc8_24.2 (constants.%C.as.I.impl.F.type.6ced3c.2)] -// CHECK:STDOUT: %C.as.I.impl.F.loc8_24.2: @C.as.I.impl.%C.as.I.impl.F.type.loc8_24.2 (%C.as.I.impl.F.type.6ced3c.2) = struct_value () [symbolic = %C.as.I.impl.F.loc8_24.2 (constants.%C.as.I.impl.F.e9dd9d.2)] +// CHECK:STDOUT: %C.as.I.impl.F.type.loc8_24.1: type = fn_type @C.as.I.impl.F.loc8_24.1, @C.as.I.impl(%Y.loc7_15.1) [symbolic = %C.as.I.impl.F.type.loc8_24.1 (constants.%C.as.I.impl.F.type.9a27ec.1)] +// CHECK:STDOUT: %C.as.I.impl.F.loc8_24.1: @C.as.I.impl.%C.as.I.impl.F.type.loc8_24.1 (%C.as.I.impl.F.type.9a27ec.1) = struct_value () [symbolic = %C.as.I.impl.F.loc8_24.1 (constants.%C.as.I.impl.F.84dd70.1)] +// CHECK:STDOUT: %C.as.I.impl.F.type.loc8_24.2: type = fn_type @C.as.I.impl.F.loc8_24.2, @C.as.I.impl(%Y.loc7_15.1) [symbolic = %C.as.I.impl.F.type.loc8_24.2 (constants.%C.as.I.impl.F.type.9a27ec.2)] +// CHECK:STDOUT: %C.as.I.impl.F.loc8_24.2: @C.as.I.impl.%C.as.I.impl.F.type.loc8_24.2 (%C.as.I.impl.F.type.9a27ec.2) = struct_value () [symbolic = %C.as.I.impl.F.loc8_24.2 (constants.%C.as.I.impl.F.84dd70.2)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.loc7_25.2 as %I.ref { -// CHECK:STDOUT: %C.as.I.impl.F.decl.loc8_24.1: @C.as.I.impl.%C.as.I.impl.F.type.loc8_24.1 (%C.as.I.impl.F.type.6ced3c.1) = fn_decl @C.as.I.impl.F.loc8_24.1 [symbolic = @C.as.I.impl.%C.as.I.impl.F.loc8_24.1 (constants.%C.as.I.impl.F.e9dd9d.1)] { -// CHECK:STDOUT: %x.param_patt: @C.as.I.impl.F.loc8_24.1.%pattern_type (%pattern_type.cf7) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @C.as.I.impl.F.loc8_24.1.%pattern_type (%pattern_type.cf7) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %C.as.I.impl.F.decl.loc8_24.1: @C.as.I.impl.%C.as.I.impl.F.type.loc8_24.1 (%C.as.I.impl.F.type.9a27ec.1) = fn_decl @C.as.I.impl.F.loc8_24.1 [symbolic = @C.as.I.impl.%C.as.I.impl.F.loc8_24.1 (constants.%C.as.I.impl.F.84dd70.1)] { +// CHECK:STDOUT: %x.param_patt: @C.as.I.impl.F.loc8_24.1.%pattern_type (%pattern_type.d0f) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @C.as.I.impl.F.loc8_24.1.%pattern_type (%pattern_type.d0f) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %x.param: @C.as.I.impl.F.loc8_24.1.%C.loc8_21.1 (%C.bc4daf.2) = value_param call_param0 -// CHECK:STDOUT: %.loc8: type = splice_block %C.loc8_21.2 [symbolic = %C.loc8_21.1 (constants.%C.bc4daf.2)] { +// CHECK:STDOUT: %x.param: @C.as.I.impl.F.loc8_24.1.%C.loc8_21.1 (%C.6b1ed7.2) = value_param call_param0 +// CHECK:STDOUT: %.loc8: type = splice_block %C.loc8_21.2 [symbolic = %C.loc8_21.1 (constants.%C.6b1ed7.2)] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %Y.ref: %empty_tuple.type = name_ref Y, @C.as.I.impl.%Y.loc7_15.2 [symbolic = %Y (constants.%Y)] -// CHECK:STDOUT: %C.loc8_21.2: type = class_type @C, @C(constants.%Y) [symbolic = %C.loc8_21.1 (constants.%C.bc4daf.2)] +// CHECK:STDOUT: %C.loc8_21.2: type = class_type @C, @C(constants.%Y) [symbolic = %C.loc8_21.1 (constants.%C.6b1ed7.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @C.as.I.impl.F.loc8_24.1.%C.loc8_21.1 (%C.bc4daf.2) = value_binding x, %x.param +// CHECK:STDOUT: %x: @C.as.I.impl.F.loc8_24.1.%C.loc8_21.1 (%C.6b1ed7.2) = value_binding x, %x.param // CHECK:STDOUT: } -// CHECK:STDOUT: %C.as.I.impl.F.decl.loc8_24.2: @C.as.I.impl.%C.as.I.impl.F.type.loc8_24.2 (%C.as.I.impl.F.type.6ced3c.2) = fn_decl @C.as.I.impl.F.loc8_24.2 [symbolic = @C.as.I.impl.%C.as.I.impl.F.loc8_24.2 (constants.%C.as.I.impl.F.e9dd9d.2)] { +// CHECK:STDOUT: %C.as.I.impl.F.decl.loc8_24.2: @C.as.I.impl.%C.as.I.impl.F.type.loc8_24.2 (%C.as.I.impl.F.type.9a27ec.2) = fn_decl @C.as.I.impl.F.loc8_24.2 [symbolic = @C.as.I.impl.%C.as.I.impl.F.loc8_24.2 (constants.%C.as.I.impl.F.84dd70.2)] { // CHECK:STDOUT: %x.param_patt: %pattern_type.a96 = value_param_pattern [concrete] // CHECK:STDOUT: %x.patt: %pattern_type.a96 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { @@ -270,23 +270,23 @@ fn G() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.bc4daf.1 +// CHECK:STDOUT: .Self = constants.%C.6b1ed7.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.c42703.2: %I.type) [from "a.carbon"] { +// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.e59c42.2: %I.type) [from "a.carbon"] { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @C.as.I.impl.F.loc8_24.1(@C.as.I.impl.%Y.loc7_15.2: %empty_tuple.type) { // CHECK:STDOUT: %Y: %empty_tuple.type = symbolic_binding Y, 0 [symbolic = %Y (constants.%Y)] -// CHECK:STDOUT: %C.loc8_21.1: type = class_type @C, @C(%Y) [symbolic = %C.loc8_21.1 (constants.%C.bc4daf.2)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %C.loc8_21.1 [symbolic = %pattern_type (constants.%pattern_type.cf7)] +// CHECK:STDOUT: %C.loc8_21.1: type = class_type @C, @C(%Y) [symbolic = %C.loc8_21.1 (constants.%C.6b1ed7.2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %C.loc8_21.1 [symbolic = %pattern_type (constants.%pattern_type.d0f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %C.loc8_21.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @C.as.I.impl.F.loc8_24.1.%C.loc8_21.1 (%C.bc4daf.2)) { +// CHECK:STDOUT: fn(%x.param: @C.as.I.impl.F.loc8_24.1.%C.loc8_21.1 (%C.6b1ed7.2)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -295,38 +295,38 @@ fn G() { // CHECK:STDOUT: generic fn @C.as.I.impl.F.loc8_24.2(@C.as.I.impl.%Y.loc7_15.2: %empty_tuple.type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Y: %empty_tuple.type = symbolic_binding Y, 0 [symbolic = %Y (constants.%Y)] -// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F.loc8_24.1, @C.as.I.impl(%Y) [symbolic = %C.as.I.impl.F.type (constants.%C.as.I.impl.F.type.6ced3c.1)] -// CHECK:STDOUT: %C.as.I.impl.F: @C.as.I.impl.F.loc8_24.2.%C.as.I.impl.F.type (%C.as.I.impl.F.type.6ced3c.1) = struct_value () [symbolic = %C.as.I.impl.F (constants.%C.as.I.impl.F.e9dd9d.1)] +// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F.loc8_24.1, @C.as.I.impl(%Y) [symbolic = %C.as.I.impl.F.type (constants.%C.as.I.impl.F.type.9a27ec.1)] +// CHECK:STDOUT: %C.as.I.impl.F: @C.as.I.impl.F.loc8_24.2.%C.as.I.impl.F.type (%C.as.I.impl.F.type.9a27ec.1) = struct_value () [symbolic = %C.as.I.impl.F (constants.%C.as.I.impl.F.84dd70.1)] // CHECK:STDOUT: %C.as.I.impl.F.specific_fn.loc8_24.2: = specific_function %C.as.I.impl.F, @C.as.I.impl.F.loc8_24.1(%Y) [symbolic = %C.as.I.impl.F.specific_fn.loc8_24.2 (constants.%C.as.I.impl.F.specific_fn)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%Y) [symbolic = %C (constants.%C.bc4daf.2)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%Y) [symbolic = %C (constants.%C.6b1ed7.2)] // CHECK:STDOUT: %require_complete: = require_complete_type %C [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %C.val: @C.as.I.impl.F.loc8_24.2.%C (%C.bc4daf.2) = struct_value () [symbolic = %C.val (constants.%C.val)] -// CHECK:STDOUT: %.6: ref @C.as.I.impl.F.loc8_24.2.%C (%C.bc4daf.2) = temporary invalid, %C.val [symbolic = %.6 (constants.%.2ab)] +// CHECK:STDOUT: %C.val: @C.as.I.impl.F.loc8_24.2.%C (%C.6b1ed7.2) = struct_value () [symbolic = %C.val (constants.%C.val)] +// CHECK:STDOUT: %.6: ref @C.as.I.impl.F.loc8_24.2.%C (%C.6b1ed7.2) = temporary invalid, %C.val [symbolic = %.6 (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.526)] -// 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.d44)] -// CHECK:STDOUT: %.7: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.7 (constants.%.5d8)] -// CHECK:STDOUT: %impl.elem0.2: @C.as.I.impl.F.loc8_24.2.%.7 (%.5d8) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %bound_method.3: = bound_method %.6, %impl.elem0.2 [symbolic = %bound_method.3 (constants.%bound_method.c9f)] +// 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: %.7: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.7 (constants.%.854)] +// CHECK:STDOUT: %impl.elem0.2: @C.as.I.impl.F.loc8_24.2.%.7 (%.854) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %bound_method.3: = bound_method %.6, %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) [symbolic = %specific_impl_fn.2 (constants.%specific_impl_fn)] -// CHECK:STDOUT: %bound_method.4: = bound_method %.6, %specific_impl_fn.2 [symbolic = %bound_method.4 (constants.%bound_method.f94)] +// CHECK:STDOUT: %bound_method.4: = bound_method %.6, %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)] { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc8: @C.as.I.impl.F.loc8_24.2.%C.as.I.impl.F.type (%C.as.I.impl.F.type.6ced3c.1) = specific_constant @C.as.I.impl.%C.as.I.impl.F.decl.loc8_24.1, @C.as.I.impl(constants.%Y) [symbolic = %C.as.I.impl.F (constants.%C.as.I.impl.F.e9dd9d.1)] -// CHECK:STDOUT: %F.ref: @C.as.I.impl.F.loc8_24.2.%C.as.I.impl.F.type (%C.as.I.impl.F.type.6ced3c.1) = name_ref F, %.loc8 [symbolic = %C.as.I.impl.F (constants.%C.as.I.impl.F.e9dd9d.1)] +// CHECK:STDOUT: %.loc8: @C.as.I.impl.F.loc8_24.2.%C.as.I.impl.F.type (%C.as.I.impl.F.type.9a27ec.1) = specific_constant @C.as.I.impl.%C.as.I.impl.F.decl.loc8_24.1, @C.as.I.impl(constants.%Y) [symbolic = %C.as.I.impl.F (constants.%C.as.I.impl.F.84dd70.1)] +// CHECK:STDOUT: %F.ref: @C.as.I.impl.F.loc8_24.2.%C.as.I.impl.F.type (%C.as.I.impl.F.type.9a27ec.1) = name_ref F, %.loc8 [symbolic = %C.as.I.impl.F (constants.%C.as.I.impl.F.84dd70.1)] // CHECK:STDOUT: %C.as.I.impl.F.specific_fn.loc8_24.1: = specific_function %F.ref, @C.as.I.impl.F.loc8_24.1(constants.%Y) [symbolic = %C.as.I.impl.F.specific_fn.loc8_24.2 (constants.%C.as.I.impl.F.specific_fn)] -// CHECK:STDOUT: %.1: ref @C.as.I.impl.F.loc8_24.2.%C (%C.bc4daf.2) = temporary_storage -// CHECK:STDOUT: %.2: init @C.as.I.impl.F.loc8_24.2.%C (%C.bc4daf.2) to %.1 = class_init () [symbolic = %C.val (constants.%C.val)] -// CHECK:STDOUT: %.3: init @C.as.I.impl.F.loc8_24.2.%C (%C.bc4daf.2) = converted %x.param, %.2 [symbolic = %C.val (constants.%C.val)] -// CHECK:STDOUT: %.4: ref @C.as.I.impl.F.loc8_24.2.%C (%C.bc4daf.2) = temporary %.1, %.3 [symbolic = %.6 (constants.%.2ab)] -// CHECK:STDOUT: %.5: @C.as.I.impl.F.loc8_24.2.%C (%C.bc4daf.2) = acquire_value %.4 [symbolic = %C.val (constants.%C.val)] +// CHECK:STDOUT: %.1: ref @C.as.I.impl.F.loc8_24.2.%C (%C.6b1ed7.2) = temporary_storage +// CHECK:STDOUT: %.2: init @C.as.I.impl.F.loc8_24.2.%C (%C.6b1ed7.2) to %.1 = class_init () [symbolic = %C.val (constants.%C.val)] +// CHECK:STDOUT: %.3: init @C.as.I.impl.F.loc8_24.2.%C (%C.6b1ed7.2) = converted %x.param, %.2 [symbolic = %C.val (constants.%C.val)] +// CHECK:STDOUT: %.4: ref @C.as.I.impl.F.loc8_24.2.%C (%C.6b1ed7.2) = temporary %.1, %.3 [symbolic = %.6 (constants.%.e66)] +// CHECK:STDOUT: %.5: @C.as.I.impl.F.loc8_24.2.%C (%C.6b1ed7.2) = acquire_value %.4 [symbolic = %C.val (constants.%C.val)] // CHECK:STDOUT: %C.as.I.impl.F.call: init %empty_tuple.type = call %C.as.I.impl.F.specific_fn.loc8_24.1(%.5) -// CHECK:STDOUT: %Op.ref: %Destroy.assoc_type = name_ref Op, imports.%Core.import_ref.8fe [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.1: @C.as.I.impl.F.loc8_24.2.%.7 (%.5d8) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %bound_method.1: = bound_method %.4, %impl.elem0.1 [symbolic = %bound_method.3 (constants.%bound_method.c9f)] -// CHECK:STDOUT: %specific_impl_fn.1: = specific_impl_function %impl.elem0.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.526) [symbolic = %specific_impl_fn.2 (constants.%specific_impl_fn)] -// CHECK:STDOUT: %bound_method.2: = bound_method %.4, %specific_impl_fn.1 [symbolic = %bound_method.4 (constants.%bound_method.f94)] +// CHECK:STDOUT: %Op.ref: %Destroy.assoc_type = name_ref Op, imports.%Core.import_ref.c64 [concrete = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0.1: @C.as.I.impl.F.loc8_24.2.%.7 (%.854) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %bound_method.1: = bound_method %.4, %impl.elem0.1 [symbolic = %bound_method.3 (constants.%bound_method.3e7)] +// 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: %bound_method.2: = bound_method %.4, %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(%.4) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -344,31 +344,31 @@ fn G() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.2e1) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.dda) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.2e1 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.a52 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.08d +// CHECK:STDOUT: %Self => constants.%Self.dda +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.418 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ca5 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.2e1) {} +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.dda) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl(constants.%Y) { // CHECK:STDOUT: %Y.loc7_15.1 => constants.%Y -// CHECK:STDOUT: %C.loc7_25.1 => constants.%C.bc4daf.2 +// CHECK:STDOUT: %C.loc7_25.1 => constants.%C.6b1ed7.2 // CHECK:STDOUT: %I.impl_witness.loc7_32.2 => constants.%I.impl_witness // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.as.I.impl.F.type.loc8_24.1 => constants.%C.as.I.impl.F.type.6ced3c.1 -// CHECK:STDOUT: %C.as.I.impl.F.loc8_24.1 => constants.%C.as.I.impl.F.e9dd9d.1 -// CHECK:STDOUT: %C.as.I.impl.F.type.loc8_24.2 => constants.%C.as.I.impl.F.type.6ced3c.2 -// CHECK:STDOUT: %C.as.I.impl.F.loc8_24.2 => constants.%C.as.I.impl.F.e9dd9d.2 +// CHECK:STDOUT: %C.as.I.impl.F.type.loc8_24.1 => constants.%C.as.I.impl.F.type.9a27ec.1 +// CHECK:STDOUT: %C.as.I.impl.F.loc8_24.1 => constants.%C.as.I.impl.F.84dd70.1 +// CHECK:STDOUT: %C.as.I.impl.F.type.loc8_24.2 => constants.%C.as.I.impl.F.type.9a27ec.2 +// CHECK:STDOUT: %C.as.I.impl.F.loc8_24.2 => constants.%C.as.I.impl.F.84dd70.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl.F.loc8_24.1(constants.%Y) { // CHECK:STDOUT: %Y => constants.%Y -// CHECK:STDOUT: %C.loc8_21.1 => constants.%C.bc4daf.2 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.cf7 +// CHECK:STDOUT: %C.loc8_21.1 => constants.%C.6b1ed7.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d0f // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete @@ -377,8 +377,8 @@ fn G() { // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.372 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.c78 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.535 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.6f0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) {} @@ -397,84 +397,84 @@ fn G() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %X: %empty_tuple.type = symbolic_binding X, 0 [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %C.1f1: type = class_type @C, @C(%empty_tuple) [concrete] +// CHECK:STDOUT: %C.2c9: type = class_type @C, @C(%empty_tuple) [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.2e1: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.a52: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.2e1) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.08d: %I.WithSelf.F.type.a52 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.dda: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.418: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.dda) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ca5: %I.WithSelf.F.type.418 = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.210: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.50e [concrete] +// CHECK:STDOUT: %assoc0.232: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9f7 [concrete] // CHECK:STDOUT: %Y: %empty_tuple.type = symbolic_binding Y, 0 [symbolic] -// CHECK:STDOUT: %C.bc4daf.2: type = class_type @C, @C(%Y) [symbolic] -// CHECK:STDOUT: %I.impl_witness.a67: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%Y) [symbolic] -// CHECK:STDOUT: %C.as.I.impl.F.type.34ddf1.1: type = fn_type @C.as.I.impl.F.1, @C.as.I.impl(%Y) [symbolic] -// CHECK:STDOUT: %C.as.I.impl.F.045a88.1: %C.as.I.impl.F.type.34ddf1.1 = struct_value () [symbolic] -// CHECK:STDOUT: %C.as.I.impl.F.type.34ddf1.2: type = fn_type @C.as.I.impl.F.2, @C.as.I.impl(%Y) [symbolic] -// CHECK:STDOUT: %C.as.I.impl.F.045a88.2: %C.as.I.impl.F.type.34ddf1.2 = struct_value () [symbolic] -// CHECK:STDOUT: %pattern_type.cf7: type = pattern_type %C.bc4daf.2 [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %C.bc4daf.2 [symbolic] -// CHECK:STDOUT: %I.facet.ffb: %I.type = facet_value %C.bc4daf.2, (%I.impl_witness.a67) [symbolic] +// CHECK:STDOUT: %C.6b1ed7.2: type = class_type @C, @C(%Y) [symbolic] +// CHECK:STDOUT: %I.impl_witness.95e: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%Y) [symbolic] +// CHECK:STDOUT: %C.as.I.impl.F.type.c7d3b5.1: type = fn_type @C.as.I.impl.F.1, @C.as.I.impl(%Y) [symbolic] +// CHECK:STDOUT: %C.as.I.impl.F.c1d971.1: %C.as.I.impl.F.type.c7d3b5.1 = struct_value () [symbolic] +// CHECK:STDOUT: %C.as.I.impl.F.type.c7d3b5.2: type = fn_type @C.as.I.impl.F.2, @C.as.I.impl(%Y) [symbolic] +// CHECK:STDOUT: %C.as.I.impl.F.c1d971.2: %C.as.I.impl.F.type.c7d3b5.2 = struct_value () [symbolic] +// CHECK:STDOUT: %pattern_type.d0f: type = pattern_type %C.6b1ed7.2 [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %C.6b1ed7.2 [symbolic] +// CHECK:STDOUT: %I.facet.cee: %I.type = facet_value %C.6b1ed7.2, (%I.impl_witness.95e) [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %C.bc4daf.2, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.ead: %Destroy.type = facet_value %C.bc4daf.2, (%Destroy.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d15: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.ead) [symbolic] -// CHECK:STDOUT: %.bce: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.d15, %Destroy.facet.ead [symbolic] -// CHECK:STDOUT: %impl.elem0: %.bce = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op(%Destroy.facet.ead) [symbolic] -// CHECK:STDOUT: %C.val.8c7: %C.bc4daf.2 = struct_value () [symbolic] -// CHECK:STDOUT: %.2ab: ref %C.bc4daf.2 = temporary invalid, %C.val.8c7 [symbolic] -// CHECK:STDOUT: %bound_method.f29: = bound_method %.2ab, %specific_impl_fn [symbolic] -// CHECK:STDOUT: %bound_method.c63: = bound_method %.2ab, %impl.elem0 [symbolic] -// CHECK:STDOUT: %C.as.I.impl.F.specific_fn.02a: = specific_function %C.as.I.impl.F.045a88.2, @C.as.I.impl.F.2(%Y) [symbolic] -// CHECK:STDOUT: %I.impl_witness.248: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%empty_tuple) [concrete] -// CHECK:STDOUT: %C.as.I.impl.F.type.8c866e.1: type = fn_type @C.as.I.impl.F.2, @C.as.I.impl(%empty_tuple) [concrete] -// CHECK:STDOUT: %C.as.I.impl.F.ce07f5.1: %C.as.I.impl.F.type.8c866e.1 = struct_value () [concrete] -// CHECK:STDOUT: %C.as.I.impl.F.type.8c866e.2: type = fn_type @C.as.I.impl.F.1, @C.as.I.impl(%empty_tuple) [concrete] -// CHECK:STDOUT: %C.as.I.impl.F.ce07f5.2: %C.as.I.impl.F.type.8c866e.2 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet.7ed: %I.type = facet_value %C.1f1, (%I.impl_witness.248) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.300: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.7ed) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.41d: %I.WithSelf.F.type.300 = struct_value () [concrete] -// CHECK:STDOUT: %.c4b: type = fn_type_with_self_type %I.WithSelf.F.type.300, %I.facet.7ed [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: %.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: %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] +// CHECK:STDOUT: %bound_method.3e7: = bound_method %.e66, %impl.elem0 [symbolic] +// CHECK:STDOUT: %C.as.I.impl.F.specific_fn.79d: = specific_function %C.as.I.impl.F.c1d971.2, @C.as.I.impl.F.2(%Y) [symbolic] +// CHECK:STDOUT: %I.impl_witness.953: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%empty_tuple) [concrete] +// CHECK:STDOUT: %C.as.I.impl.F.type.42776e.1: type = fn_type @C.as.I.impl.F.2, @C.as.I.impl(%empty_tuple) [concrete] +// CHECK:STDOUT: %C.as.I.impl.F.4ca3bc.1: %C.as.I.impl.F.type.42776e.1 = struct_value () [concrete] +// CHECK:STDOUT: %C.as.I.impl.F.type.42776e.2: type = fn_type @C.as.I.impl.F.1, @C.as.I.impl(%empty_tuple) [concrete] +// CHECK:STDOUT: %C.as.I.impl.F.4ca3bc.2: %C.as.I.impl.F.type.42776e.2 = struct_value () [concrete] +// CHECK:STDOUT: %I.facet.01a: %I.type = facet_value %C.2c9, (%I.impl_witness.953) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.fbb: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.01a) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.c63: %I.WithSelf.F.type.fbb = struct_value () [concrete] +// CHECK:STDOUT: %.1e5: type = fn_type_with_self_type %I.WithSelf.F.type.fbb, %I.facet.01a [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %C.as.I.impl.F.specific_fn.5c992b.1: = specific_function %C.as.I.impl.F.ce07f5.2, @C.as.I.impl.F.1(%empty_tuple) [concrete] -// CHECK:STDOUT: %pattern_type.1e7: type = pattern_type %C.1f1 [concrete] -// CHECK:STDOUT: %C.as.I.impl.F.specific_fn.5c992b.2: = specific_function %C.as.I.impl.F.ce07f5.1, @C.as.I.impl.F.2(%empty_tuple) [concrete] -// CHECK:STDOUT: %C.val.8c8: %C.1f1 = struct_value () [concrete] -// CHECK:STDOUT: %.269: ref %C.1f1 = temporary invalid, %C.val.8c8 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.43d658.2: type = fn_type @Destroy.Op.loc7_16.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.cc70d5.2: %Destroy.Op.type.43d658.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.bf6668.2: = custom_witness (%Destroy.Op.cc70d5.2), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.a59: %Destroy.type = facet_value %C.1f1, (%custom_witness.bf6668.2) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.768: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.a59) [concrete] -// CHECK:STDOUT: %.ddd: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.768, %Destroy.facet.a59 [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.269, %Destroy.Op.cc70d5.2 [concrete] +// CHECK:STDOUT: %C.as.I.impl.F.specific_fn.e3e0cd.1: = specific_function %C.as.I.impl.F.4ca3bc.2, @C.as.I.impl.F.1(%empty_tuple) [concrete] +// CHECK:STDOUT: %pattern_type.7b9: type = pattern_type %C.2c9 [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//a, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.C: %C.type = import_ref Main//b, C, loaded [concrete = constants.%C.generic] -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import, [concrete] { +// CHECK:STDOUT: %Core.048aa3.1: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .Destroy = %Core.Destroy // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//b, loc5_18, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.1cc = import_ref Main//b, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.3fc = import_ref Main//b, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.c90e1a.1: %empty_tuple.type = import_ref Main//b, loc5_10, loaded [symbolic = @C.%X (constants.%X)] -// CHECK:STDOUT: %Main.import_ref.a47: %I.assoc_type = import_ref Main//a, loc5_14, loaded [concrete = constants.%assoc0.210] -// CHECK:STDOUT: %Main.F.e43 = import_ref Main//a, F, unloaded -// CHECK:STDOUT: %I.WithSelf.F.decl: %I.WithSelf.F.type.a52 = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.08d)] {} {} -// CHECK:STDOUT: %Main.import_ref.c42703.2: %I.type = import_ref Main//a, loc4_13, loaded [symbolic = constants.%Self.2e1] -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//a, loc4_13, unloaded -// CHECK:STDOUT: %Main.import_ref.50e: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.a52) = import_ref Main//a, loc5_14, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.08d)] -// CHECK:STDOUT: %Main.import_ref.bb4: = import_ref Main//b, loc7_32, loaded [symbolic = @C.as.I.impl.%I.impl_witness (constants.%I.impl_witness.a67)] -// CHECK:STDOUT: %Main.import_ref.a8e: @C.as.I.impl.%C.as.I.impl.F.type.2 (%C.as.I.impl.F.type.34ddf1.1) = import_ref Main//b, loc8_24, loaded [symbolic = @C.as.I.impl.%C.as.I.impl.F.2 (constants.%C.as.I.impl.F.045a88.1)] -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.a8e), @C.as.I.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.1b3: %I.assoc_type = import_ref Main//a, loc5_14, loaded [concrete = constants.%assoc0.232] +// CHECK:STDOUT: %Main.F.006 = import_ref Main//a, F, unloaded +// CHECK:STDOUT: %I.WithSelf.F.decl: %I.WithSelf.F.type.418 = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ca5)] {} {} +// CHECK:STDOUT: %Main.import_ref.e59c42.2: %I.type = import_ref Main//a, loc4_13, loaded [symbolic = constants.%Self.dda] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//a, loc4_13, unloaded +// CHECK:STDOUT: %Main.import_ref.9f7: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.418) = import_ref Main//a, loc5_14, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ca5)] +// CHECK:STDOUT: %Main.import_ref.9c4: = import_ref Main//b, loc7_32, loaded [symbolic = @C.as.I.impl.%I.impl_witness (constants.%I.impl_witness.95e)] +// CHECK:STDOUT: %Main.import_ref.718: @C.as.I.impl.%C.as.I.impl.F.type.2 (%C.as.I.impl.F.type.c7d3b5.1) = import_ref Main//b, loc8_24, loaded [symbolic = @C.as.I.impl.%C.as.I.impl.F.2 (constants.%C.as.I.impl.F.c1d971.1)] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.718), @C.as.I.impl [concrete] // CHECK:STDOUT: %Main.import_ref.c90e1a.2: %empty_tuple.type = import_ref Main//b, loc7_15, loaded [symbolic = @C.as.I.impl.%Y (constants.%Y)] -// CHECK:STDOUT: %Main.F.6d6: @C.as.I.impl.%C.as.I.impl.F.type.1 (%C.as.I.impl.F.type.34ddf1.2) = import_ref Main//b, F, loaded [symbolic = @C.as.I.impl.%C.as.I.impl.F.1 (constants.%C.as.I.impl.F.045a88.2)] +// CHECK:STDOUT: %Main.F.b80: @C.as.I.impl.%C.as.I.impl.F.type.1 (%C.as.I.impl.F.type.c7d3b5.2) = import_ref Main//b, F, loaded [symbolic = @C.as.I.impl.%C.as.I.impl.F.1 (constants.%C.as.I.impl.F.c1d971.2)] // CHECK:STDOUT: %Main.import_ref.c90e1a.3: %empty_tuple.type = import_ref Main//b, loc7_15, loaded [symbolic = @C.as.I.impl.%Y (constants.%Y)] -// CHECK:STDOUT: %Main.import_ref.9fe: type = import_ref Main//b, loc7_25, loaded [symbolic = @C.as.I.impl.%C (constants.%C.bc4daf.2)] -// CHECK:STDOUT: %Main.import_ref.0e9: type = import_ref Main//b, loc7_30, loaded [concrete = constants.%I.type] +// CHECK:STDOUT: %Main.import_ref.ff4: type = import_ref Main//b, loc7_25, loaded [symbolic = @C.as.I.impl.%C (constants.%C.6b1ed7.2)] +// CHECK:STDOUT: %Main.import_ref.e90: type = import_ref Main//b, loc7_30, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.import_ref.c90e1a.4: %empty_tuple.type = import_ref Main//b, loc7_15, loaded [symbolic = @C.as.I.impl.%Y (constants.%Y)] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } @@ -483,7 +483,7 @@ fn G() { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .I = imports.%Main.I // CHECK:STDOUT: .C = imports.%Main.C -// CHECK:STDOUT: .Core = imports.%Core.979 +// CHECK:STDOUT: .Core = imports.%Core.048aa3.1 // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core @@ -493,27 +493,27 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .F = imports.%Main.import_ref.a47 -// CHECK:STDOUT: witness = (imports.%Main.F.e43) +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .F = imports.%Main.import_ref.1b3 +// CHECK:STDOUT: witness = (imports.%Main.F.006) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic impl @C.as.I.impl(imports.%Main.import_ref.c90e1a.4: %empty_tuple.type) [from "b.carbon"] { // CHECK:STDOUT: %Y: %empty_tuple.type = symbolic_binding Y, 0 [symbolic = %Y (constants.%Y)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%Y) [symbolic = %C (constants.%C.bc4daf.2)] -// CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%Y) [symbolic = %I.impl_witness (constants.%I.impl_witness.a67)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%Y) [symbolic = %C (constants.%C.6b1ed7.2)] +// CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%Y) [symbolic = %I.impl_witness (constants.%I.impl_witness.95e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.as.I.impl.F.type.1: type = fn_type @C.as.I.impl.F.2, @C.as.I.impl(%Y) [symbolic = %C.as.I.impl.F.type.1 (constants.%C.as.I.impl.F.type.34ddf1.2)] -// CHECK:STDOUT: %C.as.I.impl.F.1: @C.as.I.impl.%C.as.I.impl.F.type.1 (%C.as.I.impl.F.type.34ddf1.2) = struct_value () [symbolic = %C.as.I.impl.F.1 (constants.%C.as.I.impl.F.045a88.2)] -// CHECK:STDOUT: %C.as.I.impl.F.type.2: type = fn_type @C.as.I.impl.F.1, @C.as.I.impl(%Y) [symbolic = %C.as.I.impl.F.type.2 (constants.%C.as.I.impl.F.type.34ddf1.1)] -// CHECK:STDOUT: %C.as.I.impl.F.2: @C.as.I.impl.%C.as.I.impl.F.type.2 (%C.as.I.impl.F.type.34ddf1.1) = struct_value () [symbolic = %C.as.I.impl.F.2 (constants.%C.as.I.impl.F.045a88.1)] +// CHECK:STDOUT: %C.as.I.impl.F.type.1: type = fn_type @C.as.I.impl.F.2, @C.as.I.impl(%Y) [symbolic = %C.as.I.impl.F.type.1 (constants.%C.as.I.impl.F.type.c7d3b5.2)] +// CHECK:STDOUT: %C.as.I.impl.F.1: @C.as.I.impl.%C.as.I.impl.F.type.1 (%C.as.I.impl.F.type.c7d3b5.2) = struct_value () [symbolic = %C.as.I.impl.F.1 (constants.%C.as.I.impl.F.c1d971.2)] +// CHECK:STDOUT: %C.as.I.impl.F.type.2: type = fn_type @C.as.I.impl.F.1, @C.as.I.impl(%Y) [symbolic = %C.as.I.impl.F.type.2 (constants.%C.as.I.impl.F.type.c7d3b5.1)] +// CHECK:STDOUT: %C.as.I.impl.F.2: @C.as.I.impl.%C.as.I.impl.F.type.2 (%C.as.I.impl.F.type.c7d3b5.1) = struct_value () [symbolic = %C.as.I.impl.F.2 (constants.%C.as.I.impl.F.c1d971.1)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%Main.import_ref.9fe as imports.%Main.import_ref.0e9 { +// CHECK:STDOUT: impl: imports.%Main.import_ref.ff4 as imports.%Main.import_ref.e90 { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Main.import_ref.bb4 +// CHECK:STDOUT: witness = imports.%Main.import_ref.9c4 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -526,7 +526,7 @@ fn G() { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.1cc +// CHECK:STDOUT: .Self = imports.%Main.import_ref.3fc // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -536,59 +536,59 @@ fn G() { // CHECK:STDOUT: %.loc7_6: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_7: %empty_tuple.type = converted %.loc7_6, %empty_tuple [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%empty_tuple) [concrete = constants.%C.1f1] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%empty_tuple) [concrete = constants.%C.2c9] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] -// CHECK:STDOUT: %F.ref.loc7_11: %I.assoc_type = name_ref F, imports.%Main.import_ref.a47 [concrete = constants.%assoc0.210] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (constants.%I.impl_witness.248) [concrete = constants.%I.facet.7ed] -// CHECK:STDOUT: %.loc7_8: %I.type = converted %C, %I.facet [concrete = constants.%I.facet.7ed] -// CHECK:STDOUT: %impl.elem0: %.c4b = impl_witness_access constants.%I.impl_witness.248, element0 [concrete = constants.%C.as.I.impl.F.ce07f5.2] +// CHECK:STDOUT: %F.ref.loc7_11: %I.assoc_type = name_ref F, imports.%Main.import_ref.1b3 [concrete = constants.%assoc0.232] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (constants.%I.impl_witness.953) [concrete = constants.%I.facet.01a] +// CHECK:STDOUT: %.loc7_8: %I.type = converted %C, %I.facet [concrete = constants.%I.facet.01a] +// CHECK:STDOUT: %impl.elem0: %.1e5 = impl_witness_access constants.%I.impl_witness.953, element0 [concrete = constants.%C.as.I.impl.F.4ca3bc.2] // CHECK:STDOUT: %.loc7_16.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @C.as.I.impl.F.1(constants.%empty_tuple) [concrete = constants.%C.as.I.impl.F.specific_fn.5c992b.1] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @C.as.I.impl.F.1(constants.%empty_tuple) [concrete = constants.%C.as.I.impl.F.specific_fn.e3e0cd.1] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc7_16.2: %empty_struct_type = converted %.loc7_16.1, %empty_struct [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc7_17: %C.as.I.impl.F.type.8c866e.1 = specific_constant imports.%Main.F.6d6, @C.as.I.impl(constants.%empty_tuple) [concrete = constants.%C.as.I.impl.F.ce07f5.1] -// CHECK:STDOUT: %F.ref.loc7_17: %C.as.I.impl.F.type.8c866e.1 = name_ref F, %.loc7_17 [concrete = constants.%C.as.I.impl.F.ce07f5.1] -// CHECK:STDOUT: %C.as.I.impl.F.specific_fn: = specific_function %F.ref.loc7_17, @C.as.I.impl.F.2(constants.%empty_tuple) [concrete = constants.%C.as.I.impl.F.specific_fn.5c992b.2] -// CHECK:STDOUT: %.loc7_16.3: ref %C.1f1 = temporary_storage -// CHECK:STDOUT: %.loc7_16.4: init %C.1f1 to %.loc7_16.3 = class_init () [concrete = constants.%C.val.8c8] -// CHECK:STDOUT: %.loc7_16.5: init %C.1f1 = converted %.loc7_16.2, %.loc7_16.4 [concrete = constants.%C.val.8c8] -// CHECK:STDOUT: %.loc7_16.6: ref %C.1f1 = temporary %.loc7_16.3, %.loc7_16.5 [concrete = constants.%.269] -// CHECK:STDOUT: %.loc7_16.7: %C.1f1 = acquire_value %.loc7_16.6 [concrete = constants.%C.val.8c8] +// CHECK:STDOUT: %.loc7_17: %C.as.I.impl.F.type.42776e.1 = specific_constant imports.%Main.F.b80, @C.as.I.impl(constants.%empty_tuple) [concrete = constants.%C.as.I.impl.F.4ca3bc.1] +// CHECK:STDOUT: %F.ref.loc7_17: %C.as.I.impl.F.type.42776e.1 = name_ref F, %.loc7_17 [concrete = constants.%C.as.I.impl.F.4ca3bc.1] +// CHECK:STDOUT: %C.as.I.impl.F.specific_fn: = specific_function %F.ref.loc7_17, @C.as.I.impl.F.2(constants.%empty_tuple) [concrete = constants.%C.as.I.impl.F.specific_fn.e3e0cd.2] +// CHECK:STDOUT: %.loc7_16.3: ref %C.2c9 = temporary_storage +// CHECK:STDOUT: %.loc7_16.4: init %C.2c9 to %.loc7_16.3 = class_init () [concrete = constants.%C.val.168] +// CHECK:STDOUT: %.loc7_16.5: init %C.2c9 = converted %.loc7_16.2, %.loc7_16.4 [concrete = constants.%C.val.168] +// 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.%.269) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.790) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.c42703.2: %I.type) [from "a.carbon"] { +// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.e59c42.2: %I.type) [from "a.carbon"] { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @C.as.I.impl.F.1(imports.%Main.import_ref.c90e1a.3: %empty_tuple.type) [from "b.carbon"] { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Y: %empty_tuple.type = symbolic_binding Y, 0 [symbolic = %Y (constants.%Y)] -// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F.2, @C.as.I.impl(%Y) [symbolic = %C.as.I.impl.F.type (constants.%C.as.I.impl.F.type.34ddf1.2)] -// CHECK:STDOUT: %C.as.I.impl.F: @C.as.I.impl.F.1.%C.as.I.impl.F.type (%C.as.I.impl.F.type.34ddf1.2) = struct_value () [symbolic = %C.as.I.impl.F (constants.%C.as.I.impl.F.045a88.2)] -// CHECK:STDOUT: %C.as.I.impl.F.specific_fn: = specific_function %C.as.I.impl.F, @C.as.I.impl.F.2(%Y) [symbolic = %C.as.I.impl.F.specific_fn (constants.%C.as.I.impl.F.specific_fn.02a)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%Y) [symbolic = %C (constants.%C.bc4daf.2)] +// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F.2, @C.as.I.impl(%Y) [symbolic = %C.as.I.impl.F.type (constants.%C.as.I.impl.F.type.c7d3b5.2)] +// CHECK:STDOUT: %C.as.I.impl.F: @C.as.I.impl.F.1.%C.as.I.impl.F.type (%C.as.I.impl.F.type.c7d3b5.2) = struct_value () [symbolic = %C.as.I.impl.F (constants.%C.as.I.impl.F.c1d971.2)] +// CHECK:STDOUT: %C.as.I.impl.F.specific_fn: = specific_function %C.as.I.impl.F, @C.as.I.impl.F.2(%Y) [symbolic = %C.as.I.impl.F.specific_fn (constants.%C.as.I.impl.F.specific_fn.79d)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%Y) [symbolic = %C (constants.%C.6b1ed7.2)] // CHECK:STDOUT: %require_complete: = require_complete_type %C [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %C.val: @C.as.I.impl.F.1.%C (%C.bc4daf.2) = struct_value () [symbolic = %C.val (constants.%C.val.8c7)] -// CHECK:STDOUT: %.1: ref @C.as.I.impl.F.1.%C (%C.bc4daf.2) = temporary invalid, %C.val [symbolic = %.1 (constants.%.2ab)] +// CHECK:STDOUT: %C.val: @C.as.I.impl.F.1.%C (%C.6b1ed7.2) = struct_value () [symbolic = %C.val (constants.%C.val.2b2)] +// 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.ead)] -// 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.d15)] -// CHECK:STDOUT: %.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.2 (constants.%.bce)] -// CHECK:STDOUT: %impl.elem0: @C.as.I.impl.F.1.%.2 (%.bce) = 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.c63)] +// 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: %.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: %bound_method.2: = bound_method %.1, %specific_impl_fn [symbolic = %bound_method.2 (constants.%bound_method.f29)] +// 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.6d6 for imports.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.ffb)]; +// CHECK:STDOUT: fn [thunk imports.%Main.F.b80 for imports.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.cee)]; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @C.as.I.impl.F.2(imports.%Main.import_ref.c90e1a.2: %empty_tuple.type) [from "b.carbon"] { // CHECK:STDOUT: %Y: %empty_tuple.type = symbolic_binding Y, 0 [symbolic = %Y (constants.%Y)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%Y) [symbolic = %C (constants.%C.bc4daf.2)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %C [symbolic = %pattern_type (constants.%pattern_type.cf7)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%Y) [symbolic = %C (constants.%C.6b1ed7.2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %C [symbolic = %pattern_type (constants.%pattern_type.d0f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %C [symbolic = %require_complete (constants.%require_complete)] @@ -598,7 +598,7 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.1f1) { +// CHECK:STDOUT: fn @Destroy.Op.loc7_16.2(%self.param: ref %C.2c9) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -613,14 +613,14 @@ fn G() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.2e1) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.dda) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.2e1 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.a52 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.08d +// CHECK:STDOUT: %Self => constants.%Self.dda +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.418 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ca5 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.2e1) {} +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.dda) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%Y) { // CHECK:STDOUT: %X => constants.%Y @@ -630,72 +630,72 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl(constants.%Y) { // CHECK:STDOUT: %Y => constants.%Y -// CHECK:STDOUT: %C => constants.%C.bc4daf.2 -// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.a67 +// CHECK:STDOUT: %C => constants.%C.6b1ed7.2 +// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.95e // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.as.I.impl.F.type.1 => constants.%C.as.I.impl.F.type.34ddf1.2 -// CHECK:STDOUT: %C.as.I.impl.F.1 => constants.%C.as.I.impl.F.045a88.2 -// CHECK:STDOUT: %C.as.I.impl.F.type.2 => constants.%C.as.I.impl.F.type.34ddf1.1 -// CHECK:STDOUT: %C.as.I.impl.F.2 => constants.%C.as.I.impl.F.045a88.1 +// CHECK:STDOUT: %C.as.I.impl.F.type.1 => constants.%C.as.I.impl.F.type.c7d3b5.2 +// CHECK:STDOUT: %C.as.I.impl.F.1 => constants.%C.as.I.impl.F.c1d971.2 +// CHECK:STDOUT: %C.as.I.impl.F.type.2 => constants.%C.as.I.impl.F.type.c7d3b5.1 +// CHECK:STDOUT: %C.as.I.impl.F.2 => constants.%C.as.I.impl.F.c1d971.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl.F.2(constants.%Y) { // CHECK:STDOUT: %Y => constants.%Y -// CHECK:STDOUT: %C => constants.%C.bc4daf.2 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.cf7 +// CHECK:STDOUT: %C => constants.%C.6b1ed7.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d0f // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.ffb) {} +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.cee) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl.F.1(constants.%Y) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl(constants.%empty_tuple) { // CHECK:STDOUT: %Y => constants.%empty_tuple -// CHECK:STDOUT: %C => constants.%C.1f1 -// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.248 +// CHECK:STDOUT: %C => constants.%C.2c9 +// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.953 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.as.I.impl.F.type.1 => constants.%C.as.I.impl.F.type.8c866e.1 -// CHECK:STDOUT: %C.as.I.impl.F.1 => constants.%C.as.I.impl.F.ce07f5.1 -// CHECK:STDOUT: %C.as.I.impl.F.type.2 => constants.%C.as.I.impl.F.type.8c866e.2 -// CHECK:STDOUT: %C.as.I.impl.F.2 => constants.%C.as.I.impl.F.ce07f5.2 +// CHECK:STDOUT: %C.as.I.impl.F.type.1 => constants.%C.as.I.impl.F.type.42776e.1 +// CHECK:STDOUT: %C.as.I.impl.F.1 => constants.%C.as.I.impl.F.4ca3bc.1 +// CHECK:STDOUT: %C.as.I.impl.F.type.2 => constants.%C.as.I.impl.F.type.42776e.2 +// CHECK:STDOUT: %C.as.I.impl.F.2 => constants.%C.as.I.impl.F.4ca3bc.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.7ed) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.01a) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.7ed -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.300 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.41d +// CHECK:STDOUT: %Self => constants.%I.facet.01a +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.fbb +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.c63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl.F.1(constants.%empty_tuple) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Y => constants.%empty_tuple -// CHECK:STDOUT: %C.as.I.impl.F.type => constants.%C.as.I.impl.F.type.8c866e.1 -// CHECK:STDOUT: %C.as.I.impl.F => constants.%C.as.I.impl.F.ce07f5.1 -// CHECK:STDOUT: %C.as.I.impl.F.specific_fn => constants.%C.as.I.impl.F.specific_fn.5c992b.2 -// CHECK:STDOUT: %C => constants.%C.1f1 +// CHECK:STDOUT: %C.as.I.impl.F.type => constants.%C.as.I.impl.F.type.42776e.1 +// CHECK:STDOUT: %C.as.I.impl.F => constants.%C.as.I.impl.F.4ca3bc.1 +// CHECK:STDOUT: %C.as.I.impl.F.specific_fn => constants.%C.as.I.impl.F.specific_fn.e3e0cd.2 +// CHECK:STDOUT: %C => constants.%C.2c9 // CHECK:STDOUT: %require_complete => constants.%complete_type -// CHECK:STDOUT: %C.val => constants.%C.val.8c8 -// CHECK:STDOUT: %.1 => constants.%.269 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.bf6668.2 -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.a59 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.768 -// CHECK:STDOUT: %.2 => constants.%.ddd -// CHECK:STDOUT: %impl.elem0 => constants.%Destroy.Op.cc70d5.2 +// 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.cc70d5.2 +// CHECK:STDOUT: %specific_impl_fn => constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %bound_method.2 => constants.%Destroy.Op.bound // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl.F.2(constants.%empty_tuple) { // CHECK:STDOUT: %Y => constants.%empty_tuple -// CHECK:STDOUT: %C => constants.%C.1f1 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1e7 +// CHECK:STDOUT: %C => constants.%C.2c9 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7b9 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type diff --git a/toolchain/check/testdata/impl/import_use_generic.carbon b/toolchain/check/testdata/impl/import_use_generic.carbon index d2d91ae8eea7..c960f277c5eb 100644 --- a/toolchain/check/testdata/impl/import_use_generic.carbon +++ b/toolchain/check/testdata/impl/import_use_generic.carbon @@ -67,16 +67,16 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.d9f: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.592: %I.WithSelf.F.type.d9f = struct_value () [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.dcc: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ec6: %I.WithSelf.F.type.dcc = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table, @C.as.I.impl(%T) [symbolic] // CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F, @C.as.I.impl(%T) [symbolic] // CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [symbolic] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.25f: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.ca8: %I.WithSelf.F.type.25f = struct_value () [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.09e: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ad6: %I.WithSelf.F.type.09e = struct_value () [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -114,7 +114,7 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.d9f) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.592)] {} {} +// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.dcc) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ec6)] {} {} // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -180,8 +180,8 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: specific @I.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d9f -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.592 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.dcc +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ec6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self) {} @@ -201,8 +201,8 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.25f -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ca8 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.09e +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ad6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) {} @@ -216,30 +216,30 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %C.ea5: type = class_type @C, @C(%empty_struct_type) [concrete] -// CHECK:STDOUT: %pattern_type.4ac: type = pattern_type %C.ea5 [concrete] -// CHECK:STDOUT: %C.val: %C.ea5 = struct_value () [concrete] +// 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: %C.val: %C.d8e = struct_value () [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.a52: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.08d: %I.WithSelf.F.type.a52 = struct_value () [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.418: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ca5: %I.WithSelf.F.type.418 = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.50e [concrete] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9f7 [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %I.impl_witness.517: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%T) [symbolic] -// CHECK:STDOUT: %C.as.I.impl.F.type.421: type = fn_type @C.as.I.impl.F, @C.as.I.impl(%T) [symbolic] -// CHECK:STDOUT: %C.as.I.impl.F.6f7: %C.as.I.impl.F.type.421 = struct_value () [symbolic] -// CHECK:STDOUT: %I.impl_witness.8b8: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %C.as.I.impl.F.type.a9b: type = fn_type @C.as.I.impl.F, @C.as.I.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %C.as.I.impl.F.54a: %C.as.I.impl.F.type.a9b = struct_value () [concrete] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.ea5, (%I.impl_witness.8b8) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.cc7: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.dae: %I.WithSelf.F.type.cc7 = struct_value () [concrete] -// CHECK:STDOUT: %.454: type = fn_type_with_self_type %I.WithSelf.F.type.cc7, %I.facet [concrete] -// CHECK:STDOUT: %C.as.I.impl.F.specific_fn: = specific_function %C.as.I.impl.F.54a, @C.as.I.impl.F(%empty_struct_type) [concrete] +// CHECK:STDOUT: %I.impl_witness.5b2: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%T) [symbolic] +// CHECK:STDOUT: %C.as.I.impl.F.type.86f: type = fn_type @C.as.I.impl.F, @C.as.I.impl(%T) [symbolic] +// CHECK:STDOUT: %C.as.I.impl.F.45f: %C.as.I.impl.F.type.86f = struct_value () [symbolic] +// CHECK:STDOUT: %I.impl_witness.a73: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %C.as.I.impl.F.type.7ce: type = fn_type @C.as.I.impl.F, @C.as.I.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %C.as.I.impl.F.899: %C.as.I.impl.F.type.7ce = struct_value () [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.d8e, (%I.impl_witness.a73) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.f26: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.c12: %I.WithSelf.F.type.f26 = struct_value () [concrete] +// CHECK:STDOUT: %.2c7: type = fn_type_with_self_type %I.WithSelf.F.type.f26, %I.facet [concrete] +// CHECK:STDOUT: %C.as.I.impl.F.specific_fn: = specific_function %C.as.I.impl.F.899, @C.as.I.impl.F(%empty_struct_type) [concrete] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -248,19 +248,19 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: %Main.C: %C.type = import_ref Main//import_generic, C, loaded [concrete = constants.%C.generic] // CHECK:STDOUT: %Main.I: type = import_ref Main//import_generic, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//import_generic, loc4_20, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a5 = import_ref Main//import_generic, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.189 = import_ref Main//import_generic, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.1: type = import_ref Main//import_generic, loc4_10, loaded [symbolic = @C.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.a47: %I.assoc_type = import_ref Main//import_generic, loc7_9, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Main.import_ref.1b3: %I.assoc_type = import_ref Main//import_generic, loc7_9, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.F = import_ref Main//import_generic, F, unloaded -// CHECK:STDOUT: %Main.import_ref.c42703.2: %I.type = import_ref Main//import_generic, loc6_13, loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//import_generic, loc6_13, unloaded -// CHECK:STDOUT: %Main.import_ref.50e: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.a52) = import_ref Main//import_generic, loc7_9, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.08d)] -// CHECK:STDOUT: %Main.import_ref.91e: = import_ref Main//import_generic, loc10_34, loaded [symbolic = @C.as.I.impl.%I.impl_witness (constants.%I.impl_witness.517)] -// CHECK:STDOUT: %Main.import_ref.b6a: @C.as.I.impl.%C.as.I.impl.F.type (%C.as.I.impl.F.type.421) = import_ref Main//import_generic, loc11_10, loaded [symbolic = @C.as.I.impl.%C.as.I.impl.F (constants.%C.as.I.impl.F.6f7)] -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.b6a), @C.as.I.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.e59c42.2: %I.type = import_ref Main//import_generic, loc6_13, loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//import_generic, loc6_13, unloaded +// CHECK:STDOUT: %Main.import_ref.9f7: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.418) = import_ref Main//import_generic, loc7_9, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ca5)] +// CHECK:STDOUT: %Main.import_ref.57e: = import_ref Main//import_generic, loc10_34, loaded [symbolic = @C.as.I.impl.%I.impl_witness (constants.%I.impl_witness.5b2)] +// CHECK:STDOUT: %Main.import_ref.bec: @C.as.I.impl.%C.as.I.impl.F.type (%C.as.I.impl.F.type.86f) = import_ref Main//import_generic, loc11_10, loaded [symbolic = @C.as.I.impl.%C.as.I.impl.F (constants.%C.as.I.impl.F.45f)] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.bec), @C.as.I.impl [concrete] // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//import_generic, loc10_15, loaded [symbolic = @C.as.I.impl.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.2fb: type = import_ref Main//import_generic, loc10_27, loaded [symbolic = @C.as.I.impl.%C (constants.%C.1f9)] -// CHECK:STDOUT: %Main.import_ref.98c: type = import_ref Main//import_generic, loc10_32, loaded [concrete = constants.%I.type] +// CHECK:STDOUT: %Main.import_ref.4aa: type = import_ref Main//import_generic, loc10_27, loaded [symbolic = @C.as.I.impl.%C (constants.%C.1d0)] +// CHECK:STDOUT: %Main.import_ref.c3f: type = import_ref Main//import_generic, loc10_32, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//import_generic, loc10_15, loaded [symbolic = @C.as.I.impl.%T (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -274,23 +274,23 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.4ac = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.4ac = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.2fd = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.2fd = var_pattern %c.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %c.var: ref %C.ea5 = var %c.var_patt [concrete] -// CHECK:STDOUT: %.loc6_12.1: type = splice_block %C [concrete = constants.%C.ea5] { +// CHECK:STDOUT: %c.var: ref %C.d8e = var %c.var_patt [concrete] +// CHECK:STDOUT: %.loc6_12.1: type = splice_block %C [concrete = constants.%C.d8e] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C.generic] // CHECK:STDOUT: %.loc6_11: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc6_12.2: type = converted %.loc6_11, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%empty_struct_type) [concrete = constants.%C.ea5] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%empty_struct_type) [concrete = constants.%C.d8e] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: ref %C.ea5 = ref_binding c, %c.var [concrete = %c.var] +// CHECK:STDOUT: %c: ref %C.d8e = ref_binding c, %c.var [concrete = %c.var] // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %return.patt: = return_slot_pattern , [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %c.ref: ref %C.ea5 = name_ref c, file.%c [concrete = file.%c.var] +// CHECK:STDOUT: %c.ref: ref %C.d8e = name_ref c, file.%c [concrete = file.%c.var] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] -// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, imports.%Main.import_ref.a47 [concrete = constants.%assoc0] +// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, imports.%Main.import_ref.1b3 [concrete = constants.%assoc0] // CHECK:STDOUT: %.loc16: %I.type = converted %c.ref, [concrete = ] // CHECK:STDOUT: %return: = return_slot // CHECK:STDOUT: } @@ -300,12 +300,12 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C.generic] // CHECK:STDOUT: %.loc25_14: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc25_15: type = converted %.loc25_14, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%empty_struct_type) [concrete = constants.%C.ea5] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%empty_struct_type) [concrete = constants.%C.d8e] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] -// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, imports.%Main.import_ref.a47 [concrete = constants.%assoc0] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (constants.%I.impl_witness.8b8) [concrete = constants.%I.facet] +// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, imports.%Main.import_ref.1b3 [concrete = constants.%assoc0] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (constants.%I.impl_witness.a73) [concrete = constants.%I.facet] // CHECK:STDOUT: %.loc25_16: %I.type = converted %C, %I.facet [concrete = constants.%I.facet] -// CHECK:STDOUT: %impl.elem0: %.454 = impl_witness_access constants.%I.impl_witness.8b8, element0 [concrete = constants.%C.as.I.impl.F.54a] +// CHECK:STDOUT: %impl.elem0: %.2c7 = impl_witness_access constants.%I.impl_witness.a73, element0 [concrete = constants.%C.as.I.impl.F.899] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @C.as.I.impl.F(constants.%empty_struct_type) [concrete = constants.%C.as.I.impl.F.specific_fn] // CHECK:STDOUT: %C.as.I.impl.F.call: init %empty_tuple.type = call %specific_fn() // CHECK:STDOUT: %.loc25_23: type = converted %C.as.I.impl.F.call, [concrete = ] @@ -315,8 +315,8 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "import_generic.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .F = imports.%Main.import_ref.a47 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .F = imports.%Main.import_ref.1b3 // CHECK:STDOUT: witness = (imports.%Main.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -324,16 +324,16 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: // CHECK:STDOUT: generic impl @C.as.I.impl(imports.%Main.import_ref.b3bc94.3: type) [from "import_generic.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.1f9)] -// CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.517)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.1d0)] +// CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.5b2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F, @C.as.I.impl(%T) [symbolic = %C.as.I.impl.F.type (constants.%C.as.I.impl.F.type.421)] -// CHECK:STDOUT: %C.as.I.impl.F: @C.as.I.impl.%C.as.I.impl.F.type (%C.as.I.impl.F.type.421) = struct_value () [symbolic = %C.as.I.impl.F (constants.%C.as.I.impl.F.6f7)] +// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F, @C.as.I.impl(%T) [symbolic = %C.as.I.impl.F.type (constants.%C.as.I.impl.F.type.86f)] +// CHECK:STDOUT: %C.as.I.impl.F: @C.as.I.impl.%C.as.I.impl.F.type (%C.as.I.impl.F.type.86f) = struct_value () [symbolic = %C.as.I.impl.F (constants.%C.as.I.impl.F.45f)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%Main.import_ref.2fb as imports.%Main.import_ref.98c { +// CHECK:STDOUT: impl: imports.%Main.import_ref.4aa as imports.%Main.import_ref.c3f { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Main.import_ref.91e +// CHECK:STDOUT: witness = imports.%Main.import_ref.57e // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -346,11 +346,11 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.6a5 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.189 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.c42703.2: %I.type) [from "import_generic.carbon"] { +// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.e59c42.2: %I.type) [from "import_generic.carbon"] { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: @@ -371,8 +371,8 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc6_17.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc6_17.2: init %C.ea5 to file.%c.var = class_init () [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc6_1: init %C.ea5 = converted %.loc6_17.1, %.loc6_17.2 [concrete = constants.%C.val] +// CHECK:STDOUT: %.loc6_17.2: init %C.d8e to file.%c.var = class_init () [concrete = constants.%C.val] +// CHECK:STDOUT: %.loc6_1: init %C.d8e = converted %.loc6_17.1, %.loc6_17.2 [concrete = constants.%C.val] // CHECK:STDOUT: assign file.%c.var, %.loc6_1 // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -390,39 +390,39 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: specific @I.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.a52 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.08d +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.418 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ca5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %C => constants.%C.1f9 -// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.517 +// CHECK:STDOUT: %C => constants.%C.1d0 +// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.5b2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.as.I.impl.F.type => constants.%C.as.I.impl.F.type.421 -// CHECK:STDOUT: %C.as.I.impl.F => constants.%C.as.I.impl.F.6f7 +// CHECK:STDOUT: %C.as.I.impl.F.type => constants.%C.as.I.impl.F.type.86f +// CHECK:STDOUT: %C.as.I.impl.F => constants.%C.as.I.impl.F.45f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl.F(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl(constants.%empty_struct_type) { // CHECK:STDOUT: %T => constants.%empty_struct_type -// CHECK:STDOUT: %C => constants.%C.ea5 -// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.8b8 +// CHECK:STDOUT: %C => constants.%C.d8e +// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.a73 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.as.I.impl.F.type => constants.%C.as.I.impl.F.type.a9b -// CHECK:STDOUT: %C.as.I.impl.F => constants.%C.as.I.impl.F.54a +// CHECK:STDOUT: %C.as.I.impl.F.type => constants.%C.as.I.impl.F.type.7ce +// CHECK:STDOUT: %C.as.I.impl.F => constants.%C.as.I.impl.F.899 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.cc7 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.dae +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.f26 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.c12 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl.F(constants.%empty_struct_type) { diff --git a/toolchain/check/testdata/impl/incomplete.carbon b/toolchain/check/testdata/impl/incomplete.carbon index 853dd15c3723..2e47a06fd55a 100644 --- a/toolchain/check/testdata/impl/incomplete.carbon +++ b/toolchain/check/testdata/impl/incomplete.carbon @@ -779,18 +779,18 @@ interface B { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] -// CHECK:STDOUT: %Self.f49: %Y.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.d1f: type = facet_access_type %Self.f49 [symbolic] +// CHECK:STDOUT: %Self.d87: %Y.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.138: type = facet_access_type %Self.d87 [symbolic] // CHECK:STDOUT: %X.type: type = facet_type <@X> [concrete] -// CHECK:STDOUT: %Self.8bd: %X.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.b43: %X.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %X.assoc_type: type = assoc_entity_type @X [concrete] // CHECK:STDOUT: %assoc0: %X.assoc_type = assoc_entity element0, @X.WithSelf.%X1 [concrete] -// CHECK:STDOUT: %Self.as_type.4dd: type = facet_access_type %Self.8bd [symbolic] +// CHECK:STDOUT: %Self.as_type.ace: type = facet_access_type %Self.b43 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.6e2: %X.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.6e2 [symbolic_self] -// CHECK:STDOUT: %X.lookup_impl_witness: = lookup_impl_witness %.Self.6e2, @X [symbolic_self] +// CHECK:STDOUT: %.Self.539: %X.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.539 [symbolic_self] +// CHECK:STDOUT: %X.lookup_impl_witness: = lookup_impl_witness %.Self.539, @X [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %X.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] @@ -817,8 +817,8 @@ interface B { // CHECK:STDOUT: %.loc16_19.1: type = splice_block %.loc16_19.2 [concrete = constants.%X_where.type] { // CHECK:STDOUT: %.Self.loc16_14: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X.type] -// CHECK:STDOUT: %.Self.loc16_19: %X.type = symbolic_binding .Self [symbolic_self = constants.%.Self.6e2] -// CHECK:STDOUT: %.Self.ref: %X.type = name_ref .Self, %.Self.loc16_19 [symbolic_self = constants.%.Self.6e2] +// CHECK:STDOUT: %.Self.loc16_19: %X.type = symbolic_binding .Self [symbolic_self = constants.%.Self.539] +// CHECK:STDOUT: %.Self.ref: %X.type = name_ref .Self, %.Self.loc16_19 [symbolic_self = constants.%.Self.539] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc16_25: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X1.ref: %X.assoc_type = name_ref X1, @X1.%assoc0 [concrete = constants.%assoc0] @@ -837,7 +837,7 @@ interface B { // CHECK:STDOUT: interface @Z; // CHECK:STDOUT: // CHECK:STDOUT: interface @X { -// CHECK:STDOUT: %Self: %X.type = symbolic_binding Self, 0 [symbolic = constants.%Self.8bd] +// CHECK:STDOUT: %Self: %X.type = symbolic_binding Self, 0 [symbolic = constants.%Self.b43] // CHECK:STDOUT: %X.WithSelf.decl = interface_with_self_decl @X [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -847,7 +847,7 @@ interface B { // CHECK:STDOUT: %X.WithSelf.Self.as_type.impls.Y.type.require.decl = require_decl @X.WithSelf.Self.as_type.impls.Y.type.require [concrete] { // CHECK:STDOUT: require %Self.as_type.loc12_11.1 impls %Y.ref // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type.loc12_11.1: type = facet_access_type @X.%Self [symbolic = %Self.as_type.loc12_11.2 (constants.%Self.as_type.4dd)] +// CHECK:STDOUT: %Self.as_type.loc12_11.1: type = facet_access_type @X.%Self [symbolic = %Self.as_type.loc12_11.2 (constants.%Self.as_type.ace)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -865,14 +865,14 @@ interface B { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: constraint @Y { -// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f49] +// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d87] // CHECK:STDOUT: %Y.WithSelf.decl = constraint_with_self_decl @Y [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Y.WithSelf.Self.as_type.impls.Z.type.require.decl = require_decl @Y.WithSelf.Self.as_type.impls.Z.type.require [concrete] { // CHECK:STDOUT: require %Self.as_type.loc6_11.1 impls %Z.ref // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type.loc6_11.1: type = facet_access_type @Y.%Self [symbolic = %Self.as_type.loc6_11.2 (constants.%Self.as_type.d1f)] +// CHECK:STDOUT: %Self.as_type.loc6_11.1: type = facet_access_type @Y.%Self [symbolic = %Self.as_type.loc6_11.2 (constants.%Self.as_type.138)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -888,13 +888,13 @@ interface B { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @Y.WithSelf.Self.as_type.impls.Z.type.require(@Y.%Self: %Y.type) { -// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f49)] -// CHECK:STDOUT: %Self.as_type.loc6_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_11.2 (constants.%Self.as_type.d1f)] +// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.d87)] +// CHECK:STDOUT: %Self.as_type.loc6_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_11.2 (constants.%Self.as_type.138)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @X.WithSelf.Self.as_type.impls.Y.type.require(@X.%Self: %X.type) { -// CHECK:STDOUT: %Self: %X.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.8bd)] -// CHECK:STDOUT: %Self.as_type.loc12_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_11.2 (constants.%Self.as_type.4dd)] +// CHECK:STDOUT: %Self: %X.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.b43)] +// CHECK:STDOUT: %Self.as_type.loc12_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_11.2 (constants.%Self.as_type.ace)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc16_14.2: %X_where.type) { @@ -908,32 +908,32 @@ interface B { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.f49) {} +// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.d87) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf.Self.as_type.impls.Z.type.require(constants.%Self.f49) { -// CHECK:STDOUT: %Self => constants.%Self.f49 -// CHECK:STDOUT: %Self.as_type.loc6_11.2 => constants.%Self.as_type.d1f +// CHECK:STDOUT: specific @Y.WithSelf.Self.as_type.impls.Z.type.require(constants.%Self.d87) { +// CHECK:STDOUT: %Self => constants.%Self.d87 +// CHECK:STDOUT: %Self.as_type.loc6_11.2 => constants.%Self.as_type.138 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X.WithSelf(constants.%Self.8bd) { +// CHECK:STDOUT: specific @X.WithSelf(constants.%Self.b43) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.8bd) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.b43) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf.Self.as_type.impls.Z.type.require(constants.%Self.8bd) { -// CHECK:STDOUT: %Self => constants.%Self.8bd -// CHECK:STDOUT: %Self.as_type.loc6_11.2 => constants.%Self.as_type.4dd +// CHECK:STDOUT: specific @Y.WithSelf.Self.as_type.impls.Z.type.require(constants.%Self.b43) { +// CHECK:STDOUT: %Self => constants.%Self.b43 +// CHECK:STDOUT: %Self.as_type.loc6_11.2 => constants.%Self.as_type.ace // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.8bd) { -// CHECK:STDOUT: %Self => constants.%Self.8bd -// CHECK:STDOUT: %Self.as_type.loc12_11.2 => constants.%Self.as_type.4dd +// CHECK:STDOUT: specific @X.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.b43) { +// CHECK:STDOUT: %Self => constants.%Self.b43 +// CHECK:STDOUT: %Self.as_type.loc12_11.2 => constants.%Self.as_type.ace // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X.WithSelf(constants.%.Self.6e2) { +// CHECK:STDOUT: specific @X.WithSelf(constants.%.Self.539) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/interface_args.carbon b/toolchain/check/testdata/impl/interface_args.carbon index 8292e87b7775..7e1fa63a6745 100644 --- a/toolchain/check/testdata/impl/interface_args.carbon +++ b/toolchain/check/testdata/impl/interface_args.carbon @@ -114,12 +114,12 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6e6: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] -// CHECK:STDOUT: %Self: %ImplicitAs.type.6e6 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.3aa: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] +// CHECK:STDOUT: %Self: %ImplicitAs.type.3aa = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.030: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.701: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %Dest [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %Dest [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self) [symbolic] @@ -132,7 +132,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .ImplicitAs = %ImplicitAs.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %ImplicitAs.decl: %ImplicitAs.type.754 = interface_decl @ImplicitAs [concrete = constants.%ImplicitAs.generic] { +// CHECK:STDOUT: %ImplicitAs.decl: %ImplicitAs.type.0ff = interface_decl @ImplicitAs [concrete = constants.%ImplicitAs.generic] { // CHECK:STDOUT: %Dest.patt: %pattern_type.98f = symbolic_binding_pattern Dest, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc3_29.1: type = splice_block %.loc3_29.2 [concrete = type] { @@ -147,17 +147,17 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Dest.loc3_26.1: type = symbolic_binding Dest, 0 [symbolic = %Dest.loc3_26.1 (constants.%Dest)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest.loc3_26.1)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.6e6)] -// CHECK:STDOUT: %Self.loc3_35.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self.loc3_35.2 (constants.%Self)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest.loc3_26.1)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3aa)] +// CHECK:STDOUT: %Self.loc3_35.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self.loc3_35.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc3_35.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self.loc3_35.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc3_35.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self.loc3_35.2 (constants.%Self)] // CHECK:STDOUT: %ImplicitAs.WithSelf.decl = interface_with_self_decl @ImplicitAs [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert)] { -// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.030) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.030) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.701) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.701) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_31 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %Dest.ref [concrete] // CHECK:STDOUT: } { @@ -165,8 +165,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %.loc4_31.2: Core.Form = init_form %Dest.ref [symbolic = %.loc4_31.1 (constants.%.184)] // CHECK:STDOUT: %self.param: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc4_20.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.3 [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %.loc4_20.2: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.6e6) = specific_constant @ImplicitAs.%Self.loc3_35.1, @ImplicitAs(constants.%Dest) [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.ref: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.6e6) = name_ref Self, %.loc4_20.2 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %.loc4_20.2: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.3aa) = specific_constant @ImplicitAs.%Self.loc3_35.1, @ImplicitAs(constants.%Dest) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.3aa) = name_ref Self, %.loc4_20.2 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc4_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc4_20.3: type = converted %Self.ref, %Self.as_type.loc4_20.2 [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] // CHECK:STDOUT: } @@ -187,12 +187,12 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(@ImplicitAs.%Dest.loc3_26.2: type, @ImplicitAs.%Self.loc3_35.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6)) { +// CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(@ImplicitAs.%Dest.loc3_26.2: type, @ImplicitAs.%Self.loc3_35.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa)) { // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic = %Dest (constants.%Dest)] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.6e6)] -// CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3aa)] +// CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc4_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.loc4_18: type = pattern_type %Self.as_type.loc4_20.1 [symbolic = %pattern_type.loc4_18 (constants.%pattern_type.030)] +// CHECK:STDOUT: %pattern_type.loc4_18: type = pattern_type %Self.as_type.loc4_20.1 [symbolic = %pattern_type.loc4_18 (constants.%pattern_type.701)] // CHECK:STDOUT: %.loc4_31.1: Core.Form = init_form %Dest [symbolic = %.loc4_31.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc4_31: type = pattern_type %Dest [symbolic = %pattern_type.loc4_31 (constants.%pattern_type.51d)] // CHECK:STDOUT: @@ -207,10 +207,10 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(constants.%Dest, constants.%Self) { // CHECK:STDOUT: %Dest => constants.%Dest -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.6e6 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.3aa // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc4_20.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.loc4_18 => constants.%pattern_type.030 +// CHECK:STDOUT: %pattern_type.loc4_18 => constants.%pattern_type.701 // CHECK:STDOUT: %.loc4_31.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc4_31 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -222,38 +222,38 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Action.type.45e: type = generic_interface_type @Action [concrete] +// CHECK:STDOUT: %Action.type.538: type = generic_interface_type @Action [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Action.generic: %Action.type.45e = struct_value () [concrete] -// CHECK:STDOUT: %Action.type.7f9: type = facet_type <@Action, @Action(%T)> [symbolic] -// CHECK:STDOUT: %Self.c7d: %Action.type.7f9 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c7d [symbolic] -// CHECK:STDOUT: %pattern_type.de5: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %Action.WithSelf.Op.type.d2f: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%T, %Self.c7d) [symbolic] -// CHECK:STDOUT: %Action.WithSelf.Op.464: %Action.WithSelf.Op.type.d2f = struct_value () [symbolic] -// CHECK:STDOUT: %Action.assoc_type.03a: type = assoc_entity_type @Action, @Action(%T) [symbolic] -// CHECK:STDOUT: %assoc0.a13: %Action.assoc_type.03a = assoc_entity element0, @Action.WithSelf.%Action.WithSelf.Op.decl [symbolic] +// CHECK:STDOUT: %Action.generic: %Action.type.538 = struct_value () [concrete] +// CHECK:STDOUT: %Action.type.cbf: type = facet_type <@Action, @Action(%T)> [symbolic] +// CHECK:STDOUT: %Self.67c: %Action.type.cbf = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.67c [symbolic] +// CHECK:STDOUT: %pattern_type.085: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Action.WithSelf.Op.type.667: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%T, %Self.67c) [symbolic] +// CHECK:STDOUT: %Action.WithSelf.Op.217: %Action.WithSelf.Op.type.667 = struct_value () [symbolic] +// CHECK:STDOUT: %Action.assoc_type.1c3: type = assoc_entity_type @Action, @Action(%T) [symbolic] +// CHECK:STDOUT: %assoc0.26f: %Action.assoc_type.1c3 = assoc_entity element0, @Action.WithSelf.%Action.WithSelf.Op.decl [symbolic] // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %Action.type.8f3: type = facet_type <@Action, @Action(%B)> [concrete] +// CHECK:STDOUT: %Action.type.5d2: type = facet_type <@Action, @Action(%B)> [concrete] // CHECK:STDOUT: %Action.impl_witness: = impl_witness @A.as.Action.impl.%Action.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.7ed: %Action.type.8f3 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Action.WithSelf.Op.type.5be: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%B, %Self.c7d) [symbolic] -// CHECK:STDOUT: %Action.WithSelf.Op.8d6: %Action.WithSelf.Op.type.5be = struct_value () [symbolic] -// CHECK:STDOUT: %Action.assoc_type.e91: type = assoc_entity_type @Action, @Action(%B) [concrete] -// CHECK:STDOUT: %assoc0.d9e: %Action.assoc_type.e91 = assoc_entity element0, @Action.WithSelf.%Action.WithSelf.Op.decl [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] +// CHECK:STDOUT: %Self.7ff: %Action.type.5d2 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Action.WithSelf.Op.type.cd3: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%B, %Self.67c) [symbolic] +// CHECK:STDOUT: %Action.WithSelf.Op.d98: %Action.WithSelf.Op.type.cd3 = struct_value () [symbolic] +// CHECK:STDOUT: %Action.assoc_type.4ce: type = assoc_entity_type @Action, @Action(%B) [concrete] +// CHECK:STDOUT: %assoc0.005: %Action.assoc_type.4ce = assoc_entity element0, @Action.WithSelf.%Action.WithSelf.Op.decl [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] // CHECK:STDOUT: %A.as.Action.impl.Op.type: type = fn_type @A.as.Action.impl.Op [concrete] // CHECK:STDOUT: %A.as.Action.impl.Op: %A.as.Action.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %Action.facet: %Action.type.8f3 = facet_value %A, (%Action.impl_witness) [concrete] -// CHECK:STDOUT: %Action.WithSelf.Op.type.b85: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%B, %Action.facet) [concrete] -// CHECK:STDOUT: %Action.WithSelf.Op.7d0: %Action.WithSelf.Op.type.b85 = struct_value () [concrete] +// CHECK:STDOUT: %Action.facet: %Action.type.5d2 = facet_value %A, (%Action.impl_witness) [concrete] +// CHECK:STDOUT: %Action.WithSelf.Op.type.e59: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%B, %Action.facet) [concrete] +// CHECK:STDOUT: %Action.WithSelf.Op.c3b: %Action.WithSelf.Op.type.e59 = struct_value () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %.f63: type = fn_type_with_self_type %Action.WithSelf.Op.type.b85, %Action.facet [concrete] +// CHECK:STDOUT: %.898: type = fn_type_with_self_type %Action.WithSelf.Op.type.e59, %Action.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -273,7 +273,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %Action.decl: %Action.type.45e = interface_decl @Action [concrete = constants.%Action.generic] { +// CHECK:STDOUT: %Action.decl: %Action.type.538 = interface_decl @Action [concrete = constants.%Action.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_22.1: type = splice_block %.loc4_22.2 [concrete = type] { @@ -287,13 +287,13 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: impl_decl @A.as.Action.impl [concrete] {} { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %Action.ref: %Action.type.45e = name_ref Action, file.%Action.decl [concrete = constants.%Action.generic] +// CHECK:STDOUT: %Action.ref: %Action.type.538 = name_ref Action, file.%Action.decl [concrete = constants.%Action.generic] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [concrete = constants.%Action.type.8f3] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [concrete = constants.%Action.type.5d2] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.ccb = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.ccb = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.9ef = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9ef = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %A = value_param call_param0 // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] @@ -305,28 +305,28 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T.loc4_19.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_19.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T.loc4_19.1)> [symbolic = %Action.type (constants.%Action.type.7f9)] -// CHECK:STDOUT: %Self.loc4_28.2: @Action.%Action.type (%Action.type.7f9) = symbolic_binding Self, 1 [symbolic = %Self.loc4_28.2 (constants.%Self.c7d)] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T.loc4_19.1)> [symbolic = %Action.type (constants.%Action.type.cbf)] +// CHECK:STDOUT: %Self.loc4_28.2: @Action.%Action.type (%Action.type.cbf) = symbolic_binding Self, 1 [symbolic = %Self.loc4_28.2 (constants.%Self.67c)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_28.1: @Action.%Action.type (%Action.type.7f9) = symbolic_binding Self, 1 [symbolic = %Self.loc4_28.2 (constants.%Self.c7d)] +// CHECK:STDOUT: %Self.loc4_28.1: @Action.%Action.type (%Action.type.cbf) = symbolic_binding Self, 1 [symbolic = %Self.loc4_28.2 (constants.%Self.67c)] // CHECK:STDOUT: %Action.WithSelf.decl = interface_with_self_decl @Action [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Action.WithSelf.Op.decl: @Action.WithSelf.%Action.WithSelf.Op.type (%Action.WithSelf.Op.type.d2f) = fn_decl @Action.WithSelf.Op [symbolic = @Action.WithSelf.%Action.WithSelf.Op (constants.%Action.WithSelf.Op.464)] { -// CHECK:STDOUT: %self.param_patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.de5) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.de5) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %Action.WithSelf.Op.decl: @Action.WithSelf.%Action.WithSelf.Op.type (%Action.WithSelf.Op.type.667) = fn_decl @Action.WithSelf.Op [symbolic = @Action.WithSelf.%Action.WithSelf.Op (constants.%Action.WithSelf.Op.217)] { +// CHECK:STDOUT: %self.param_patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.085) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.085) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Action.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.3 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %.loc5_15.2: @Action.WithSelf.Op.%Action.type (%Action.type.7f9) = specific_constant @Action.%Self.loc4_28.1, @Action(constants.%T) [symbolic = %Self (constants.%Self.c7d)] -// CHECK:STDOUT: %Self.ref: @Action.WithSelf.Op.%Action.type (%Action.type.7f9) = name_ref Self, %.loc5_15.2 [symbolic = %Self (constants.%Self.c7d)] +// CHECK:STDOUT: %.loc5_15.2: @Action.WithSelf.Op.%Action.type (%Action.type.cbf) = specific_constant @Action.%Self.loc4_28.1, @Action(constants.%T) [symbolic = %Self (constants.%Self.67c)] +// CHECK:STDOUT: %Self.ref: @Action.WithSelf.Op.%Action.type (%Action.type.cbf) = name_ref Self, %.loc5_15.2 [symbolic = %Self (constants.%Self.67c)] // CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc5_15.3: type = converted %Self.ref, %Self.as_type.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: @Action.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc5_22.1: @Action.WithSelf.%Action.assoc_type (%Action.assoc_type.03a) = assoc_entity element0, %Action.WithSelf.Op.decl [symbolic = %assoc0.loc5_22.2 (constants.%assoc0.a13)] +// CHECK:STDOUT: %assoc0.loc5_22.1: @Action.WithSelf.%Action.assoc_type (%Action.assoc_type.1c3) = assoc_entity element0, %Action.WithSelf.Op.decl [symbolic = %assoc0.loc5_22.2 (constants.%assoc0.26f)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc4_28.1 @@ -339,8 +339,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: // CHECK:STDOUT: impl @A.as.Action.impl: %A.ref as %Action.type { // CHECK:STDOUT: %A.as.Action.impl.Op.decl: %A.as.Action.impl.Op.type = fn_decl @A.as.Action.impl.Op [concrete = constants.%A.as.Action.impl.Op] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.ccb = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.ccb = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9ef = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9ef = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %A = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @A.as.Action.impl.%A.ref [concrete = constants.%A] @@ -379,12 +379,12 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Action.WithSelf.Op(@Action.%T.loc4_19.2: type, @Action.%Self.loc4_28.1: @Action.%Action.type (%Action.type.7f9)) { +// CHECK:STDOUT: generic fn @Action.WithSelf.Op(@Action.%T.loc4_19.2: type, @Action.%Self.loc4_28.1: @Action.%Action.type (%Action.type.cbf)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.7f9)] -// CHECK:STDOUT: %Self: @Action.WithSelf.Op.%Action.type (%Action.type.7f9) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.c7d)] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.cbf)] +// CHECK:STDOUT: %Self: @Action.WithSelf.Op.%Action.type (%Action.type.cbf) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.67c)] // CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type (constants.%pattern_type.de5)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type (constants.%pattern_type.085)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @Action.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -397,12 +397,12 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: fn @F(%a.param: %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %A = name_ref a, %a -// CHECK:STDOUT: %Action.ref: %Action.type.45e = name_ref Action, file.%Action.decl [concrete = constants.%Action.generic] +// CHECK:STDOUT: %Action.ref: %Action.type.538 = name_ref Action, file.%Action.decl [concrete = constants.%Action.generic] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [concrete = constants.%Action.type.8f3] -// CHECK:STDOUT: %.loc16: %Action.assoc_type.e91 = specific_constant @Action.WithSelf.%assoc0.loc5_22.1, @Action.WithSelf(constants.%B, constants.%Self.c7d) [concrete = constants.%assoc0.d9e] -// CHECK:STDOUT: %Op.ref: %Action.assoc_type.e91 = name_ref Op, %.loc16 [concrete = constants.%assoc0.d9e] -// CHECK:STDOUT: %impl.elem0: %.f63 = impl_witness_access constants.%Action.impl_witness, element0 [concrete = constants.%A.as.Action.impl.Op] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [concrete = constants.%Action.type.5d2] +// CHECK:STDOUT: %.loc16: %Action.assoc_type.4ce = specific_constant @Action.WithSelf.%assoc0.loc5_22.1, @Action.WithSelf(constants.%B, constants.%Self.67c) [concrete = constants.%assoc0.005] +// CHECK:STDOUT: %Op.ref: %Action.assoc_type.4ce = name_ref Op, %.loc16 [concrete = constants.%assoc0.005] +// CHECK:STDOUT: %impl.elem0: %.898 = impl_witness_access constants.%Action.impl_witness, element0 [concrete = constants.%A.as.Action.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %A.as.Action.impl.Op.call: init %empty_tuple.type = call %bound_method(%a.ref) // CHECK:STDOUT: return @@ -412,52 +412,52 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T.loc4_19.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Action.WithSelf(constants.%T, constants.%Self.c7d) {} +// CHECK:STDOUT: specific @Action.WithSelf(constants.%T, constants.%Self.67c) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Action.WithSelf.Op(constants.%T, constants.%Self.c7d) { +// CHECK:STDOUT: specific @Action.WithSelf.Op(constants.%T, constants.%Self.67c) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Action.type => constants.%Action.type.7f9 -// CHECK:STDOUT: %Self => constants.%Self.c7d +// CHECK:STDOUT: %Action.type => constants.%Action.type.cbf +// CHECK:STDOUT: %Self => constants.%Self.67c // CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.de5 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.085 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action(constants.%B) { // CHECK:STDOUT: %T.loc4_19.1 => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Action.type => constants.%Action.type.8f3 -// CHECK:STDOUT: %Self.loc4_28.2 => constants.%Self.7ed +// CHECK:STDOUT: %Action.type => constants.%Action.type.5d2 +// CHECK:STDOUT: %Self.loc4_28.2 => constants.%Self.7ff // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Action.WithSelf(constants.%B, constants.%Self.c7d) { +// CHECK:STDOUT: specific @Action.WithSelf(constants.%B, constants.%Self.67c) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%B -// CHECK:STDOUT: %Action.type => constants.%Action.type.8f3 -// CHECK:STDOUT: %Self => constants.%Self.c7d -// CHECK:STDOUT: %Action.WithSelf.Op.type => constants.%Action.WithSelf.Op.type.5be -// CHECK:STDOUT: %Action.WithSelf.Op => constants.%Action.WithSelf.Op.8d6 -// CHECK:STDOUT: %Action.assoc_type => constants.%Action.assoc_type.e91 -// CHECK:STDOUT: %assoc0.loc5_22.2 => constants.%assoc0.d9e +// CHECK:STDOUT: %Action.type => constants.%Action.type.5d2 +// CHECK:STDOUT: %Self => constants.%Self.67c +// CHECK:STDOUT: %Action.WithSelf.Op.type => constants.%Action.WithSelf.Op.type.cd3 +// CHECK:STDOUT: %Action.WithSelf.Op => constants.%Action.WithSelf.Op.d98 +// CHECK:STDOUT: %Action.assoc_type => constants.%Action.assoc_type.4ce +// CHECK:STDOUT: %assoc0.loc5_22.2 => constants.%assoc0.005 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action.WithSelf(constants.%B, constants.%Action.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%B -// CHECK:STDOUT: %Action.type => constants.%Action.type.8f3 +// CHECK:STDOUT: %Action.type => constants.%Action.type.5d2 // CHECK:STDOUT: %Self => constants.%Action.facet -// CHECK:STDOUT: %Action.WithSelf.Op.type => constants.%Action.WithSelf.Op.type.b85 -// CHECK:STDOUT: %Action.WithSelf.Op => constants.%Action.WithSelf.Op.7d0 -// CHECK:STDOUT: %Action.assoc_type => constants.%Action.assoc_type.e91 -// CHECK:STDOUT: %assoc0.loc5_22.2 => constants.%assoc0.d9e +// CHECK:STDOUT: %Action.WithSelf.Op.type => constants.%Action.WithSelf.Op.type.e59 +// CHECK:STDOUT: %Action.WithSelf.Op => constants.%Action.WithSelf.Op.c3b +// CHECK:STDOUT: %Action.assoc_type => constants.%Action.assoc_type.4ce +// CHECK:STDOUT: %assoc0.loc5_22.2 => constants.%assoc0.005 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action.WithSelf.Op(constants.%B, constants.%Action.facet) { // CHECK:STDOUT: %T => constants.%B -// CHECK:STDOUT: %Action.type => constants.%Action.type.8f3 +// CHECK:STDOUT: %Action.type => constants.%Action.type.5d2 // CHECK:STDOUT: %Self => constants.%Action.facet // CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%A -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ccb +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9ef // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- action.impl.carbon @@ -466,39 +466,39 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %Action.type.45e: type = generic_interface_type @Action [concrete] +// CHECK:STDOUT: %Action.type.538: type = generic_interface_type @Action [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Action.generic: %Action.type.45e = struct_value () [concrete] +// CHECK:STDOUT: %Action.generic: %Action.type.538 = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Action.type.7f9: type = facet_type <@Action, @Action(%T)> [symbolic] -// CHECK:STDOUT: %Self.df6: %Action.type.7f9 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Action.assoc_type.03a: type = assoc_entity_type @Action, @Action(%T) [symbolic] -// CHECK:STDOUT: %Action.WithSelf.Op.type.355: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%T, %Self.df6) [symbolic] -// CHECK:STDOUT: %Action.WithSelf.Op.ce2: %Action.WithSelf.Op.type.355 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.df6 [symbolic] -// CHECK:STDOUT: %pattern_type.895: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %Action.type.8f3: type = facet_type <@Action, @Action(%B)> [concrete] -// CHECK:STDOUT: %Self.8fe: %Action.type.8f3 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Action.type.cbf: type = facet_type <@Action, @Action(%T)> [symbolic] +// CHECK:STDOUT: %Self.ea2: %Action.type.cbf = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Action.assoc_type.1c3: type = assoc_entity_type @Action, @Action(%T) [symbolic] +// CHECK:STDOUT: %Action.WithSelf.Op.type.a98: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%T, %Self.ea2) [symbolic] +// CHECK:STDOUT: %Action.WithSelf.Op.876: %Action.WithSelf.Op.type.a98 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ea2 [symbolic] +// CHECK:STDOUT: %pattern_type.1f8: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Action.type.5d2: type = facet_type <@Action, @Action(%B)> [concrete] +// CHECK:STDOUT: %Self.581: %Action.type.5d2 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %A: type = class_type @A [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %Action.WithSelf.Op.type.04a: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%B, %Self.df6) [symbolic] -// CHECK:STDOUT: %Action.WithSelf.Op.2d7: %Action.WithSelf.Op.type.04a = struct_value () [symbolic] -// CHECK:STDOUT: %Action.assoc_type.e91: type = assoc_entity_type @Action, @Action(%B) [concrete] -// CHECK:STDOUT: %assoc0.b1d: %Action.assoc_type.e91 = assoc_entity element0, imports.%Main.import_ref.018 [concrete] -// CHECK:STDOUT: %assoc0.78d: %Action.assoc_type.03a = assoc_entity element0, imports.%Main.import_ref.118 [symbolic] +// CHECK:STDOUT: %Action.WithSelf.Op.type.070: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%B, %Self.ea2) [symbolic] +// CHECK:STDOUT: %Action.WithSelf.Op.84b: %Action.WithSelf.Op.type.070 = struct_value () [symbolic] +// CHECK:STDOUT: %Action.assoc_type.4ce: type = assoc_entity_type @Action, @Action(%B) [concrete] +// CHECK:STDOUT: %assoc0.2d9: %Action.assoc_type.4ce = assoc_entity element0, imports.%Main.import_ref.c56 [concrete] +// CHECK:STDOUT: %assoc0.029: %Action.assoc_type.1c3 = assoc_entity element0, imports.%Main.import_ref.b3a [symbolic] // CHECK:STDOUT: %Action.impl_witness: = impl_witness imports.%Action.impl_witness_table [concrete] -// CHECK:STDOUT: %Action.facet: %Action.type.8f3 = facet_value %A, (%Action.impl_witness) [concrete] -// CHECK:STDOUT: %Action.WithSelf.Op.type.e5b: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%B, %Action.facet) [concrete] -// CHECK:STDOUT: %Action.WithSelf.Op.cf2: %Action.WithSelf.Op.type.e5b = struct_value () [concrete] -// CHECK:STDOUT: %.427: type = fn_type_with_self_type %Action.WithSelf.Op.type.e5b, %Action.facet [concrete] +// CHECK:STDOUT: %Action.facet: %Action.type.5d2 = facet_value %A, (%Action.impl_witness) [concrete] +// CHECK:STDOUT: %Action.WithSelf.Op.type.8c0: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%B, %Action.facet) [concrete] +// CHECK:STDOUT: %Action.WithSelf.Op.031: %Action.WithSelf.Op.type.8c0 = struct_value () [concrete] +// CHECK:STDOUT: %.1f3: type = fn_type_with_self_type %Action.WithSelf.Op.type.8c0, %Action.facet [concrete] // CHECK:STDOUT: %A.as.Action.impl.Op.type: type = fn_type @A.as.Action.impl.Op [concrete] // CHECK:STDOUT: %A.as.Action.impl.Op: %A.as.Action.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.Action: %Action.type.45e = import_ref Main//action, Action, loaded [concrete = constants.%Action.generic] +// CHECK:STDOUT: %Main.Action: %Action.type.538 = import_ref Main//action, Action, loaded [concrete = constants.%Action.generic] // CHECK:STDOUT: %Main.A: type = import_ref Main//action, A, loaded [concrete = constants.%A] // CHECK:STDOUT: %Main.B: type = import_ref Main//action, B, loaded [concrete = constants.%B] // CHECK:STDOUT: %Main.C = import_ref Main//action, C, unloaded @@ -508,24 +508,24 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//action, loc9_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.671 = import_ref Main//action, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.867: @Action.WithSelf.%Action.assoc_type (%Action.assoc_type.03a) = import_ref Main//action, loc5_22, loaded [symbolic = @Action.WithSelf.%assoc0 (constants.%assoc0.78d)] +// CHECK:STDOUT: %Main.import_ref.7b8 = import_ref Main//action, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.00f: @Action.WithSelf.%Action.assoc_type (%Action.assoc_type.1c3) = import_ref Main//action, loc5_22, loaded [symbolic = @Action.WithSelf.%assoc0 (constants.%assoc0.029)] // CHECK:STDOUT: %Main.Op = import_ref Main//action, Op, unloaded -// CHECK:STDOUT: %Main.import_ref.018: @Action.WithSelf.%Action.WithSelf.Op.type (%Action.WithSelf.Op.type.355) = import_ref Main//action, loc5_22, loaded [symbolic = @Action.WithSelf.%Action.WithSelf.Op (constants.%Action.WithSelf.Op.ce2)] +// CHECK:STDOUT: %Main.import_ref.c56: @Action.WithSelf.%Action.WithSelf.Op.type (%Action.WithSelf.Op.type.a98) = import_ref Main//action, loc5_22, loaded [symbolic = @Action.WithSelf.%Action.WithSelf.Op (constants.%Action.WithSelf.Op.876)] // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//action, loc4_19, loaded [symbolic = @Action.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.51072d.2: @Action.%Action.type (%Action.type.7f9) = import_ref Main//action, loc4_28, loaded [symbolic = @Action.%Self (constants.%Self.df6)] -// CHECK:STDOUT: %Main.import_ref.384 = import_ref Main//action, loc4_28, unloaded +// CHECK:STDOUT: %Main.import_ref.7dfc68.2: @Action.%Action.type (%Action.type.cbf) = import_ref Main//action, loc4_28, loaded [symbolic = @Action.%Self (constants.%Self.ea2)] +// CHECK:STDOUT: %Main.import_ref.422 = import_ref Main//action, loc4_28, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//action, loc4_19, loaded [symbolic = @Action.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.e12: = import_ref Main//action, loc12_21, loaded [concrete = constants.%Action.impl_witness] +// CHECK:STDOUT: %Main.import_ref.371: = import_ref Main//action, loc12_21, loaded [concrete = constants.%Action.impl_witness] // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//action, loc8_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.5d6 = import_ref Main//action, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.abd: type = import_ref Main//action, loc12_6, loaded [concrete = constants.%A] -// CHECK:STDOUT: %Main.import_ref.17b: type = import_ref Main//action, loc12_19, loaded [concrete = constants.%Action.type.8f3] -// CHECK:STDOUT: %Main.import_ref.092 = import_ref Main//action, loc13_30, unloaded -// CHECK:STDOUT: %Main.import_ref.956 = import_ref Main//action, loc12_19, unloaded -// CHECK:STDOUT: %Main.import_ref.118 = import_ref Main//action, loc5_22, unloaded -// CHECK:STDOUT: %Main.import_ref.1ff: %A.as.Action.impl.Op.type = import_ref Main//action, loc13_30, loaded [concrete = constants.%A.as.Action.impl.Op] -// CHECK:STDOUT: %Action.impl_witness_table = impl_witness_table (%Main.import_ref.1ff), @A.as.Action.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.0ee = import_ref Main//action, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.239: type = import_ref Main//action, loc12_6, loaded [concrete = constants.%A] +// CHECK:STDOUT: %Main.import_ref.4a4: type = import_ref Main//action, loc12_19, loaded [concrete = constants.%Action.type.5d2] +// CHECK:STDOUT: %Main.import_ref.294 = import_ref Main//action, loc13_30, unloaded +// CHECK:STDOUT: %Main.import_ref.07b = import_ref Main//action, loc12_19, unloaded +// CHECK:STDOUT: %Main.import_ref.b3a = import_ref Main//action, loc5_22, unloaded +// CHECK:STDOUT: %Main.import_ref.b97: %A.as.Action.impl.Op.type = import_ref Main//action, loc13_30, loaded [concrete = constants.%A.as.Action.impl.Op] +// CHECK:STDOUT: %Action.impl_witness_table = impl_witness_table (%Main.import_ref.b97), @A.as.Action.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -542,8 +542,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %default.import.loc2_22.2 = import // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.ccb = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.ccb = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.9ef = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9ef = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %A = value_param call_param0 // CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Main.A [concrete = constants.%A] @@ -555,46 +555,46 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.7f9)] -// CHECK:STDOUT: %Self: @Action.%Action.type (%Action.type.7f9) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.df6)] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.cbf)] +// CHECK:STDOUT: %Self: @Action.%Action.type (%Action.type.cbf) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.ea2)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.384 -// CHECK:STDOUT: .Op = imports.%Main.import_ref.867 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.422 +// CHECK:STDOUT: .Op = imports.%Main.import_ref.00f // CHECK:STDOUT: witness = (imports.%Main.Op) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @A.as.Action.impl: imports.%Main.import_ref.abd as imports.%Main.import_ref.17b [from "action.carbon"] { +// CHECK:STDOUT: impl @A.as.Action.impl: imports.%Main.import_ref.239 as imports.%Main.import_ref.4a4 [from "action.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Op = imports.%Main.import_ref.092 -// CHECK:STDOUT: extend imports.%Main.import_ref.956 -// CHECK:STDOUT: witness = imports.%Main.import_ref.e12 +// CHECK:STDOUT: .Op = imports.%Main.import_ref.294 +// CHECK:STDOUT: extend imports.%Main.import_ref.07b +// CHECK:STDOUT: witness = imports.%Main.import_ref.371 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B [from "action.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.671 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.7b8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A [from "action.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.5d6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0ee // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Action.WithSelf.Op(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.51072d.2: @Action.%Action.type (%Action.type.7f9)) [from "action.carbon"] { +// CHECK:STDOUT: generic fn @Action.WithSelf.Op(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.7dfc68.2: @Action.%Action.type (%Action.type.cbf)) [from "action.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.7f9)] -// CHECK:STDOUT: %Self: @Action.WithSelf.Op.%Action.type (%Action.type.7f9) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.df6)] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.cbf)] +// CHECK:STDOUT: %Self: @Action.WithSelf.Op.%Action.type (%Action.type.cbf) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.ea2)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.895)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.1f8)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -602,12 +602,12 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: fn @G(%a.param: %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %A = name_ref a, %a -// CHECK:STDOUT: %Action.ref: %Action.type.45e = name_ref Action, imports.%Main.Action [concrete = constants.%Action.generic] +// CHECK:STDOUT: %Action.ref: %Action.type.538 = name_ref Action, imports.%Main.Action [concrete = constants.%Action.generic] // CHECK:STDOUT: %B.ref: type = name_ref B, imports.%Main.B [concrete = constants.%B] -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [concrete = constants.%Action.type.8f3] -// CHECK:STDOUT: %.loc4: %Action.assoc_type.e91 = specific_constant imports.%Main.import_ref.867, @Action.WithSelf(constants.%B, constants.%Self.df6) [concrete = constants.%assoc0.b1d] -// CHECK:STDOUT: %Op.ref: %Action.assoc_type.e91 = name_ref Op, %.loc4 [concrete = constants.%assoc0.b1d] -// CHECK:STDOUT: %impl.elem0: %.427 = impl_witness_access constants.%Action.impl_witness, element0 [concrete = constants.%A.as.Action.impl.Op] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [concrete = constants.%Action.type.5d2] +// CHECK:STDOUT: %.loc4: %Action.assoc_type.4ce = specific_constant imports.%Main.import_ref.00f, @Action.WithSelf(constants.%B, constants.%Self.ea2) [concrete = constants.%assoc0.2d9] +// CHECK:STDOUT: %Op.ref: %Action.assoc_type.4ce = name_ref Op, %.loc4 [concrete = constants.%assoc0.2d9] +// CHECK:STDOUT: %impl.elem0: %.1f3 = impl_witness_access constants.%Action.impl_witness, element0 [concrete = constants.%A.as.Action.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %A.as.Action.impl.Op.call: init %empty_tuple.type = call %bound_method(%a.ref) // CHECK:STDOUT: return @@ -619,44 +619,44 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Action.WithSelf(constants.%T, constants.%Self.df6) {} +// CHECK:STDOUT: specific @Action.WithSelf(constants.%T, constants.%Self.ea2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Action.WithSelf.Op(constants.%T, constants.%Self.df6) { +// CHECK:STDOUT: specific @Action.WithSelf.Op(constants.%T, constants.%Self.ea2) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Action.type => constants.%Action.type.7f9 -// CHECK:STDOUT: %Self => constants.%Self.df6 +// CHECK:STDOUT: %Action.type => constants.%Action.type.cbf +// CHECK:STDOUT: %Self => constants.%Self.ea2 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.895 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1f8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action(constants.%B) { // CHECK:STDOUT: %T => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Action.type => constants.%Action.type.8f3 -// CHECK:STDOUT: %Self => constants.%Self.8fe +// CHECK:STDOUT: %Action.type => constants.%Action.type.5d2 +// CHECK:STDOUT: %Self => constants.%Self.581 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Action.WithSelf(constants.%B, constants.%Self.df6) { +// CHECK:STDOUT: specific @Action.WithSelf(constants.%B, constants.%Self.ea2) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%B -// CHECK:STDOUT: %Action.type => constants.%Action.type.8f3 -// CHECK:STDOUT: %Self => constants.%Self.df6 -// CHECK:STDOUT: %Action.WithSelf.Op.type => constants.%Action.WithSelf.Op.type.04a -// CHECK:STDOUT: %Action.WithSelf.Op => constants.%Action.WithSelf.Op.2d7 -// CHECK:STDOUT: %Action.assoc_type => constants.%Action.assoc_type.e91 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.b1d +// CHECK:STDOUT: %Action.type => constants.%Action.type.5d2 +// CHECK:STDOUT: %Self => constants.%Self.ea2 +// CHECK:STDOUT: %Action.WithSelf.Op.type => constants.%Action.WithSelf.Op.type.070 +// CHECK:STDOUT: %Action.WithSelf.Op => constants.%Action.WithSelf.Op.84b +// CHECK:STDOUT: %Action.assoc_type => constants.%Action.assoc_type.4ce +// CHECK:STDOUT: %assoc0 => constants.%assoc0.2d9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action.WithSelf(constants.%B, constants.%Action.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%B -// CHECK:STDOUT: %Action.type => constants.%Action.type.8f3 +// CHECK:STDOUT: %Action.type => constants.%Action.type.5d2 // CHECK:STDOUT: %Self => constants.%Action.facet -// CHECK:STDOUT: %Action.WithSelf.Op.type => constants.%Action.WithSelf.Op.type.e5b -// CHECK:STDOUT: %Action.WithSelf.Op => constants.%Action.WithSelf.Op.cf2 -// CHECK:STDOUT: %Action.assoc_type => constants.%Action.assoc_type.e91 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.b1d +// CHECK:STDOUT: %Action.WithSelf.Op.type => constants.%Action.WithSelf.Op.type.8c0 +// CHECK:STDOUT: %Action.WithSelf.Op => constants.%Action.WithSelf.Op.031 +// CHECK:STDOUT: %Action.assoc_type => constants.%Action.assoc_type.4ce +// CHECK:STDOUT: %assoc0 => constants.%assoc0.2d9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_action.impl.carbon @@ -665,34 +665,34 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %Action.type.45e: type = generic_interface_type @Action [concrete] -// CHECK:STDOUT: %Action.generic: %Action.type.45e = struct_value () [concrete] +// CHECK:STDOUT: %Action.type.538: type = generic_interface_type @Action [concrete] +// CHECK:STDOUT: %Action.generic: %Action.type.538 = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Action.type.7f9: type = facet_type <@Action, @Action(%T)> [symbolic] -// CHECK:STDOUT: %Self.df6: %Action.type.7f9 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Action.assoc_type.03a: type = assoc_entity_type @Action, @Action(%T) [symbolic] -// CHECK:STDOUT: %Action.WithSelf.Op.type.355: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%T, %Self.df6) [symbolic] -// CHECK:STDOUT: %Action.WithSelf.Op.ce2: %Action.WithSelf.Op.type.355 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.df6 [symbolic] -// CHECK:STDOUT: %pattern_type.895: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %Action.type.8f3: type = facet_type <@Action, @Action(%B)> [concrete] -// CHECK:STDOUT: %Self.8fe: %Action.type.8f3 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Action.type.cbf: type = facet_type <@Action, @Action(%T)> [symbolic] +// CHECK:STDOUT: %Self.ea2: %Action.type.cbf = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Action.assoc_type.1c3: type = assoc_entity_type @Action, @Action(%T) [symbolic] +// CHECK:STDOUT: %Action.WithSelf.Op.type.a98: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%T, %Self.ea2) [symbolic] +// CHECK:STDOUT: %Action.WithSelf.Op.876: %Action.WithSelf.Op.type.a98 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ea2 [symbolic] +// CHECK:STDOUT: %pattern_type.1f8: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Action.type.5d2: type = facet_type <@Action, @Action(%B)> [concrete] +// CHECK:STDOUT: %Self.581: %Action.type.5d2 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %A: type = class_type @A [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %Action.type.3dd: type = facet_type <@Action, @Action(%C)> [concrete] -// CHECK:STDOUT: %Self.3a2: %Action.type.3dd = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Action.WithSelf.Op.type.598: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%C, %Self.df6) [symbolic] -// CHECK:STDOUT: %Action.WithSelf.Op.e2e: %Action.WithSelf.Op.type.598 = struct_value () [symbolic] -// CHECK:STDOUT: %Action.assoc_type.7a5: type = assoc_entity_type @Action, @Action(%C) [concrete] -// CHECK:STDOUT: %assoc0.284: %Action.assoc_type.7a5 = assoc_entity element0, imports.%Main.import_ref.018 [concrete] -// CHECK:STDOUT: %assoc0.78d: %Action.assoc_type.03a = assoc_entity element0, imports.%Main.import_ref.118 [symbolic] +// CHECK:STDOUT: %Action.type.0f0: type = facet_type <@Action, @Action(%C)> [concrete] +// CHECK:STDOUT: %Self.612: %Action.type.0f0 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Action.WithSelf.Op.type.529: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%C, %Self.ea2) [symbolic] +// CHECK:STDOUT: %Action.WithSelf.Op.ba9: %Action.WithSelf.Op.type.529 = struct_value () [symbolic] +// CHECK:STDOUT: %Action.assoc_type.35c: type = assoc_entity_type @Action, @Action(%C) [concrete] +// CHECK:STDOUT: %assoc0.940: %Action.assoc_type.35c = assoc_entity element0, imports.%Main.import_ref.c56 [concrete] +// CHECK:STDOUT: %assoc0.029: %Action.assoc_type.1c3 = assoc_entity element0, imports.%Main.import_ref.b3a [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.Action: %Action.type.45e = import_ref Main//action, Action, loaded [concrete = constants.%Action.generic] +// CHECK:STDOUT: %Main.Action: %Action.type.538 = import_ref Main//action, Action, loaded [concrete = constants.%Action.generic] // CHECK:STDOUT: %Main.A: type = import_ref Main//action, A, loaded [concrete = constants.%A] // CHECK:STDOUT: %Main.B = import_ref Main//action, B, unloaded // CHECK:STDOUT: %Main.C: type = import_ref Main//action, C, loaded [concrete = constants.%C] @@ -702,24 +702,24 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//action, loc9_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.671 = import_ref Main//action, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.867: @Action.WithSelf.%Action.assoc_type (%Action.assoc_type.03a) = import_ref Main//action, loc5_22, loaded [symbolic = @Action.WithSelf.%assoc0 (constants.%assoc0.78d)] +// CHECK:STDOUT: %Main.import_ref.7b8 = import_ref Main//action, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.00f: @Action.WithSelf.%Action.assoc_type (%Action.assoc_type.1c3) = import_ref Main//action, loc5_22, loaded [symbolic = @Action.WithSelf.%assoc0 (constants.%assoc0.029)] // CHECK:STDOUT: %Main.Op = import_ref Main//action, Op, unloaded -// CHECK:STDOUT: %Main.import_ref.018: @Action.WithSelf.%Action.WithSelf.Op.type (%Action.WithSelf.Op.type.355) = import_ref Main//action, loc5_22, loaded [symbolic = @Action.WithSelf.%Action.WithSelf.Op (constants.%Action.WithSelf.Op.ce2)] +// CHECK:STDOUT: %Main.import_ref.c56: @Action.WithSelf.%Action.WithSelf.Op.type (%Action.WithSelf.Op.type.a98) = import_ref Main//action, loc5_22, loaded [symbolic = @Action.WithSelf.%Action.WithSelf.Op (constants.%Action.WithSelf.Op.876)] // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//action, loc4_19, loaded [symbolic = @Action.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.51072d.2: @Action.%Action.type (%Action.type.7f9) = import_ref Main//action, loc4_28, loaded [symbolic = @Action.%Self (constants.%Self.df6)] -// CHECK:STDOUT: %Main.import_ref.384 = import_ref Main//action, loc4_28, unloaded +// CHECK:STDOUT: %Main.import_ref.7dfc68.2: @Action.%Action.type (%Action.type.cbf) = import_ref Main//action, loc4_28, loaded [symbolic = @Action.%Self (constants.%Self.ea2)] +// CHECK:STDOUT: %Main.import_ref.422 = import_ref Main//action, loc4_28, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//action, loc4_19, loaded [symbolic = @Action.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.177 = import_ref Main//action, loc12_21, unloaded +// CHECK:STDOUT: %Main.import_ref.640 = import_ref Main//action, loc12_21, unloaded // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//action, loc8_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.5d6 = import_ref Main//action, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.abd: type = import_ref Main//action, loc12_6, loaded [concrete = constants.%A] -// CHECK:STDOUT: %Main.import_ref.17b: type = import_ref Main//action, loc12_19, loaded [concrete = constants.%Action.type.8f3] -// CHECK:STDOUT: %Main.import_ref.092 = import_ref Main//action, loc13_30, unloaded -// CHECK:STDOUT: %Main.import_ref.956 = import_ref Main//action, loc12_19, unloaded +// CHECK:STDOUT: %Main.import_ref.0ee = import_ref Main//action, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.239: type = import_ref Main//action, loc12_6, loaded [concrete = constants.%A] +// CHECK:STDOUT: %Main.import_ref.4a4: type = import_ref Main//action, loc12_19, loaded [concrete = constants.%Action.type.5d2] +// CHECK:STDOUT: %Main.import_ref.294 = import_ref Main//action, loc13_30, unloaded +// CHECK:STDOUT: %Main.import_ref.07b = import_ref Main//action, loc12_19, unloaded // CHECK:STDOUT: %Main.import_ref.8f24d3.3: = import_ref Main//action, loc10_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//action, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.118 = import_ref Main//action, loc5_22, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//action, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.b3a = import_ref Main//action, loc5_22, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -736,8 +736,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %default.import.loc2_22.2 = import // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.ccb = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.ccb = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.9ef = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9ef = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %A = value_param call_param0 // CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Main.A [concrete = constants.%A] @@ -749,53 +749,53 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.7f9)] -// CHECK:STDOUT: %Self: @Action.%Action.type (%Action.type.7f9) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.df6)] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.cbf)] +// CHECK:STDOUT: %Self: @Action.%Action.type (%Action.type.cbf) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.ea2)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.384 -// CHECK:STDOUT: .Op = imports.%Main.import_ref.867 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.422 +// CHECK:STDOUT: .Op = imports.%Main.import_ref.00f // CHECK:STDOUT: witness = (imports.%Main.Op) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @A.as.Action.impl: imports.%Main.import_ref.abd as imports.%Main.import_ref.17b [from "action.carbon"] { +// CHECK:STDOUT: impl @A.as.Action.impl: imports.%Main.import_ref.239 as imports.%Main.import_ref.4a4 [from "action.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Op = imports.%Main.import_ref.092 -// CHECK:STDOUT: extend imports.%Main.import_ref.956 -// CHECK:STDOUT: witness = imports.%Main.import_ref.177 +// CHECK:STDOUT: .Op = imports.%Main.import_ref.294 +// CHECK:STDOUT: extend imports.%Main.import_ref.07b +// CHECK:STDOUT: witness = imports.%Main.import_ref.640 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B [from "action.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.671 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.7b8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A [from "action.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.5d6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0ee // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "action.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Action.WithSelf.Op(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.51072d.2: @Action.%Action.type (%Action.type.7f9)) [from "action.carbon"] { +// CHECK:STDOUT: generic fn @Action.WithSelf.Op(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.7dfc68.2: @Action.%Action.type (%Action.type.cbf)) [from "action.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.7f9)] -// CHECK:STDOUT: %Self: @Action.WithSelf.Op.%Action.type (%Action.type.7f9) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.df6)] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.cbf)] +// CHECK:STDOUT: %Self: @Action.WithSelf.Op.%Action.type (%Action.type.cbf) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.ea2)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.895)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.1f8)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -803,11 +803,11 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: fn @G(%a.param: %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %A = name_ref a, %a -// CHECK:STDOUT: %Action.ref: %Action.type.45e = name_ref Action, imports.%Main.Action [concrete = constants.%Action.generic] +// CHECK:STDOUT: %Action.ref: %Action.type.538 = name_ref Action, imports.%Main.Action [concrete = constants.%Action.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%C)> [concrete = constants.%Action.type.3dd] -// CHECK:STDOUT: %.loc8: %Action.assoc_type.7a5 = specific_constant imports.%Main.import_ref.867, @Action.WithSelf(constants.%C, constants.%Self.df6) [concrete = constants.%assoc0.284] -// CHECK:STDOUT: %Op.ref: %Action.assoc_type.7a5 = name_ref Op, %.loc8 [concrete = constants.%assoc0.284] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%C)> [concrete = constants.%Action.type.0f0] +// CHECK:STDOUT: %.loc8: %Action.assoc_type.35c = specific_constant imports.%Main.import_ref.00f, @Action.WithSelf(constants.%C, constants.%Self.ea2) [concrete = constants.%assoc0.940] +// CHECK:STDOUT: %Op.ref: %Action.assoc_type.35c = name_ref Op, %.loc8 [concrete = constants.%assoc0.940] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -815,41 +815,41 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Action.WithSelf(constants.%T, constants.%Self.df6) {} +// CHECK:STDOUT: specific @Action.WithSelf(constants.%T, constants.%Self.ea2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Action.WithSelf.Op(constants.%T, constants.%Self.df6) { +// CHECK:STDOUT: specific @Action.WithSelf.Op(constants.%T, constants.%Self.ea2) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Action.type => constants.%Action.type.7f9 -// CHECK:STDOUT: %Self => constants.%Self.df6 +// CHECK:STDOUT: %Action.type => constants.%Action.type.cbf +// CHECK:STDOUT: %Self => constants.%Self.ea2 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.895 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1f8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action(constants.%B) { // CHECK:STDOUT: %T => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Action.type => constants.%Action.type.8f3 -// CHECK:STDOUT: %Self => constants.%Self.8fe +// CHECK:STDOUT: %Action.type => constants.%Action.type.5d2 +// CHECK:STDOUT: %Self => constants.%Self.581 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action(constants.%C) { // CHECK:STDOUT: %T => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Action.type => constants.%Action.type.3dd -// CHECK:STDOUT: %Self => constants.%Self.3a2 +// CHECK:STDOUT: %Action.type => constants.%Action.type.0f0 +// CHECK:STDOUT: %Self => constants.%Self.612 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Action.WithSelf(constants.%C, constants.%Self.df6) { +// CHECK:STDOUT: specific @Action.WithSelf(constants.%C, constants.%Self.ea2) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%C -// CHECK:STDOUT: %Action.type => constants.%Action.type.3dd -// CHECK:STDOUT: %Self => constants.%Self.df6 -// CHECK:STDOUT: %Action.WithSelf.Op.type => constants.%Action.WithSelf.Op.type.598 -// CHECK:STDOUT: %Action.WithSelf.Op => constants.%Action.WithSelf.Op.e2e -// CHECK:STDOUT: %Action.assoc_type => constants.%Action.assoc_type.7a5 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.284 +// CHECK:STDOUT: %Action.type => constants.%Action.type.0f0 +// CHECK:STDOUT: %Self => constants.%Self.ea2 +// CHECK:STDOUT: %Action.WithSelf.Op.type => constants.%Action.WithSelf.Op.type.529 +// CHECK:STDOUT: %Action.WithSelf.Op => constants.%Action.WithSelf.Op.ba9 +// CHECK:STDOUT: %Action.assoc_type => constants.%Action.assoc_type.35c +// CHECK:STDOUT: %assoc0 => constants.%assoc0.940 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- factory.carbon @@ -859,47 +859,47 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Factory.type.db1: type = generic_interface_type @Factory [concrete] -// CHECK:STDOUT: %Factory.generic: %Factory.type.db1 = struct_value () [concrete] -// CHECK:STDOUT: %Factory.type.300: type = facet_type <@Factory, @Factory(%T)> [symbolic] -// CHECK:STDOUT: %Self.832: %Factory.type.300 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Factory.type.9da: type = generic_interface_type @Factory [concrete] +// CHECK:STDOUT: %Factory.generic: %Factory.type.9da = struct_value () [concrete] +// CHECK:STDOUT: %Factory.type.711: type = facet_type <@Factory, @Factory(%T)> [symbolic] +// CHECK:STDOUT: %Self.9c2: %Factory.type.711 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Make.type.072: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%T, %Self.832) [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Make.b6d: %Factory.WithSelf.Make.type.072 = struct_value () [symbolic] -// CHECK:STDOUT: %Factory.assoc_type.802: type = assoc_entity_type @Factory, @Factory(%T) [symbolic] -// CHECK:STDOUT: %assoc0.4a3: %Factory.assoc_type.802 = assoc_entity element0, @Factory.WithSelf.%Factory.WithSelf.Make.decl [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.832 [symbolic] -// CHECK:STDOUT: %pattern_type.a9a: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Method.type.e0a: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%T, %Self.832) [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Method.64d: %Factory.WithSelf.Method.type.e0a = struct_value () [symbolic] -// CHECK:STDOUT: %assoc1.599: %Factory.assoc_type.802 = assoc_entity element1, @Factory.WithSelf.%Factory.WithSelf.Method.decl [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Make.type.515: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%T, %Self.9c2) [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Make.bc6: %Factory.WithSelf.Make.type.515 = struct_value () [symbolic] +// CHECK:STDOUT: %Factory.assoc_type.0ed: type = assoc_entity_type @Factory, @Factory(%T) [symbolic] +// CHECK:STDOUT: %assoc0.6f5: %Factory.assoc_type.0ed = assoc_entity element0, @Factory.WithSelf.%Factory.WithSelf.Make.decl [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.9c2 [symbolic] +// CHECK:STDOUT: %pattern_type.5ba: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Method.type.63a: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%T, %Self.9c2) [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Method.097: %Factory.WithSelf.Method.type.63a = struct_value () [symbolic] +// CHECK:STDOUT: %assoc1.b7b: %Factory.assoc_type.0ed = assoc_entity element1, @Factory.WithSelf.%Factory.WithSelf.Method.decl [symbolic] // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] -// CHECK:STDOUT: %Factory.type.bcb: type = facet_type <@Factory, @Factory(%B)> [concrete] +// CHECK:STDOUT: %Factory.type.5e3: type = facet_type <@Factory, @Factory(%B)> [concrete] // CHECK:STDOUT: %Factory.impl_witness: = impl_witness @A.as.Factory.impl.%Factory.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.e7a: %Factory.type.bcb = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Make.type.b7f: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%B, %Self.832) [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Make.8d3: %Factory.WithSelf.Make.type.b7f = struct_value () [symbolic] -// CHECK:STDOUT: %Factory.assoc_type.f46: type = assoc_entity_type @Factory, @Factory(%B) [concrete] -// CHECK:STDOUT: %assoc0.ddc: %Factory.assoc_type.f46 = assoc_entity element0, @Factory.WithSelf.%Factory.WithSelf.Make.decl [concrete] -// CHECK:STDOUT: %Factory.WithSelf.Method.type.469: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%B, %Self.832) [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Method.1e3: %Factory.WithSelf.Method.type.469 = struct_value () [symbolic] -// CHECK:STDOUT: %assoc1.d81: %Factory.assoc_type.f46 = assoc_entity element1, @Factory.WithSelf.%Factory.WithSelf.Method.decl [concrete] -// CHECK:STDOUT: %.25e: Core.Form = init_form %B [concrete] -// CHECK:STDOUT: %pattern_type.787: type = pattern_type %B [concrete] +// CHECK:STDOUT: %Self.f44: %Factory.type.5e3 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Make.type.264: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%B, %Self.9c2) [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Make.26e: %Factory.WithSelf.Make.type.264 = struct_value () [symbolic] +// CHECK:STDOUT: %Factory.assoc_type.8bd: type = assoc_entity_type @Factory, @Factory(%B) [concrete] +// CHECK:STDOUT: %assoc0.012: %Factory.assoc_type.8bd = assoc_entity element0, @Factory.WithSelf.%Factory.WithSelf.Make.decl [concrete] +// CHECK:STDOUT: %Factory.WithSelf.Method.type.dc9: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%B, %Self.9c2) [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Method.5a4: %Factory.WithSelf.Method.type.dc9 = struct_value () [symbolic] +// CHECK:STDOUT: %assoc1.682: %Factory.assoc_type.8bd = assoc_entity element1, @Factory.WithSelf.%Factory.WithSelf.Method.decl [concrete] +// CHECK:STDOUT: %.d83: Core.Form = init_form %B [concrete] +// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete] // CHECK:STDOUT: %A.as.Factory.impl.Make.type: type = fn_type @A.as.Factory.impl.Make [concrete] // CHECK:STDOUT: %A.as.Factory.impl.Make: %A.as.Factory.impl.Make.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] // CHECK:STDOUT: %A.as.Factory.impl.Method.type: type = fn_type @A.as.Factory.impl.Method [concrete] // CHECK:STDOUT: %A.as.Factory.impl.Method: %A.as.Factory.impl.Method.type = struct_value () [concrete] -// CHECK:STDOUT: %Factory.facet: %Factory.type.bcb = facet_value %A, (%Factory.impl_witness) [concrete] -// CHECK:STDOUT: %Factory.WithSelf.Make.type.85f: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%B, %Factory.facet) [concrete] -// CHECK:STDOUT: %Factory.WithSelf.Make.65a: %Factory.WithSelf.Make.type.85f = struct_value () [concrete] -// CHECK:STDOUT: %Factory.WithSelf.Method.type.ff2: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%B, %Factory.facet) [concrete] -// CHECK:STDOUT: %Factory.WithSelf.Method.349: %Factory.WithSelf.Method.type.ff2 = struct_value () [concrete] +// CHECK:STDOUT: %Factory.facet: %Factory.type.5e3 = facet_value %A, (%Factory.impl_witness) [concrete] +// CHECK:STDOUT: %Factory.WithSelf.Make.type.0c4: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%B, %Factory.facet) [concrete] +// CHECK:STDOUT: %Factory.WithSelf.Make.f30: %Factory.WithSelf.Make.type.0c4 = struct_value () [concrete] +// CHECK:STDOUT: %Factory.WithSelf.Method.type.99a: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%B, %Factory.facet) [concrete] +// CHECK:STDOUT: %Factory.WithSelf.Method.637: %Factory.WithSelf.Method.type.99a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -917,7 +917,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: .B = %B.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %Factory.decl: %Factory.type.db1 = interface_decl @Factory [concrete = constants.%Factory.generic] { +// CHECK:STDOUT: %Factory.decl: %Factory.type.9da = interface_decl @Factory [concrete = constants.%Factory.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_23.1: type = splice_block %.loc4_23.2 [concrete = type] { @@ -930,9 +930,9 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: impl_decl @A.as.Factory.impl [concrete] {} { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %Factory.ref: %Factory.type.db1 = name_ref Factory, file.%Factory.decl [concrete = constants.%Factory.generic] +// CHECK:STDOUT: %Factory.ref: %Factory.type.9da = name_ref Factory, file.%Factory.decl [concrete = constants.%Factory.generic] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%B)> [concrete = constants.%Factory.type.bcb] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%B)> [concrete = constants.%Factory.type.5e3] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -940,15 +940,15 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T.loc4_20.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_20.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T.loc4_20.1)> [symbolic = %Factory.type (constants.%Factory.type.300)] -// CHECK:STDOUT: %Self.loc4_29.2: @Factory.%Factory.type (%Factory.type.300) = symbolic_binding Self, 1 [symbolic = %Self.loc4_29.2 (constants.%Self.832)] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T.loc4_20.1)> [symbolic = %Factory.type (constants.%Factory.type.711)] +// CHECK:STDOUT: %Self.loc4_29.2: @Factory.%Factory.type (%Factory.type.711) = symbolic_binding Self, 1 [symbolic = %Self.loc4_29.2 (constants.%Self.9c2)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_29.1: @Factory.%Factory.type (%Factory.type.300) = symbolic_binding Self, 1 [symbolic = %Self.loc4_29.2 (constants.%Self.832)] +// CHECK:STDOUT: %Self.loc4_29.1: @Factory.%Factory.type (%Factory.type.711) = symbolic_binding Self, 1 [symbolic = %Self.loc4_29.2 (constants.%Self.9c2)] // CHECK:STDOUT: %Factory.WithSelf.decl = interface_with_self_decl @Factory [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Factory.WithSelf.Make.decl: @Factory.WithSelf.%Factory.WithSelf.Make.type (%Factory.WithSelf.Make.type.072) = fn_decl @Factory.WithSelf.Make [symbolic = @Factory.WithSelf.%Factory.WithSelf.Make (constants.%Factory.WithSelf.Make.b6d)] { +// CHECK:STDOUT: %Factory.WithSelf.Make.decl: @Factory.WithSelf.%Factory.WithSelf.Make.type (%Factory.WithSelf.Make.type.515) = fn_decl @Factory.WithSelf.Make [symbolic = @Factory.WithSelf.%Factory.WithSelf.Make (constants.%Factory.WithSelf.Make.bc6)] { // CHECK:STDOUT: %return.param_patt: @Factory.WithSelf.Make.%pattern_type (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @Factory.WithSelf.Make.%pattern_type (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { @@ -957,10 +957,10 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %return.param: ref @Factory.WithSelf.Make.%T (%T) = out_param call_param0 // CHECK:STDOUT: %return: ref @Factory.WithSelf.Make.%T (%T) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc6_17.1: @Factory.WithSelf.%Factory.assoc_type (%Factory.assoc_type.802) = assoc_entity element0, %Factory.WithSelf.Make.decl [symbolic = %assoc0.loc6_17.2 (constants.%assoc0.4a3)] -// CHECK:STDOUT: %Factory.WithSelf.Method.decl: @Factory.WithSelf.%Factory.WithSelf.Method.type (%Factory.WithSelf.Method.type.e0a) = fn_decl @Factory.WithSelf.Method [symbolic = @Factory.WithSelf.%Factory.WithSelf.Method (constants.%Factory.WithSelf.Method.64d)] { -// CHECK:STDOUT: %self.param_patt: @Factory.WithSelf.Method.%pattern_type.loc8_17 (%pattern_type.a9a) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Factory.WithSelf.Method.%pattern_type.loc8_17 (%pattern_type.a9a) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %assoc0.loc6_17.1: @Factory.WithSelf.%Factory.assoc_type (%Factory.assoc_type.0ed) = assoc_entity element0, %Factory.WithSelf.Make.decl [symbolic = %assoc0.loc6_17.2 (constants.%assoc0.6f5)] +// CHECK:STDOUT: %Factory.WithSelf.Method.decl: @Factory.WithSelf.%Factory.WithSelf.Method.type (%Factory.WithSelf.Method.type.63a) = fn_decl @Factory.WithSelf.Method [symbolic = @Factory.WithSelf.%Factory.WithSelf.Method (constants.%Factory.WithSelf.Method.097)] { +// CHECK:STDOUT: %self.param_patt: @Factory.WithSelf.Method.%pattern_type.loc8_17 (%pattern_type.5ba) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Factory.WithSelf.Method.%pattern_type.loc8_17 (%pattern_type.5ba) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @Factory.WithSelf.Method.%pattern_type.loc8_30 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @Factory.WithSelf.Method.%pattern_type.loc8_30 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { @@ -968,8 +968,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %.loc8_30.2: Core.Form = init_form %T.ref [symbolic = %.loc8_30.1 (constants.%.184)] // CHECK:STDOUT: %self.param: @Factory.WithSelf.Method.%Self.as_type.loc8_19.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc8_19.1: type = splice_block %.loc8_19.3 [symbolic = %Self.as_type.loc8_19.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %.loc8_19.2: @Factory.WithSelf.Method.%Factory.type (%Factory.type.300) = specific_constant @Factory.%Self.loc4_29.1, @Factory(constants.%T) [symbolic = %Self (constants.%Self.832)] -// CHECK:STDOUT: %Self.ref: @Factory.WithSelf.Method.%Factory.type (%Factory.type.300) = name_ref Self, %.loc8_19.2 [symbolic = %Self (constants.%Self.832)] +// CHECK:STDOUT: %.loc8_19.2: @Factory.WithSelf.Method.%Factory.type (%Factory.type.711) = specific_constant @Factory.%Self.loc4_29.1, @Factory(constants.%T) [symbolic = %Self (constants.%Self.9c2)] +// CHECK:STDOUT: %Self.ref: @Factory.WithSelf.Method.%Factory.type (%Factory.type.711) = name_ref Self, %.loc8_19.2 [symbolic = %Self (constants.%Self.9c2)] // CHECK:STDOUT: %Self.as_type.loc8_19.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc8_19.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc8_19.3: type = converted %Self.ref, %Self.as_type.loc8_19.2 [symbolic = %Self.as_type.loc8_19.1 (constants.%Self.as_type)] // CHECK:STDOUT: } @@ -977,7 +977,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %return.param: ref @Factory.WithSelf.Method.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @Factory.WithSelf.Method.%T (%T) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc1.loc8_31.1: @Factory.WithSelf.%Factory.assoc_type (%Factory.assoc_type.802) = assoc_entity element1, %Factory.WithSelf.Method.decl [symbolic = %assoc1.loc8_31.2 (constants.%assoc1.599)] +// CHECK:STDOUT: %assoc1.loc8_31.1: @Factory.WithSelf.%Factory.assoc_type (%Factory.assoc_type.0ed) = assoc_entity element1, %Factory.WithSelf.Method.decl [symbolic = %assoc1.loc8_31.2 (constants.%assoc1.b7b)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc4_29.1 @@ -994,22 +994,22 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: // CHECK:STDOUT: impl @A.as.Factory.impl: %A.ref as %Factory.type { // CHECK:STDOUT: %A.as.Factory.impl.Make.decl: %A.as.Factory.impl.Make.type = fn_decl @A.as.Factory.impl.Make [concrete = constants.%A.as.Factory.impl.Make] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.787 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.787 = return_slot_pattern %return.param_patt, %B.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.e39 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.e39 = return_slot_pattern %return.param_patt, %B.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %B.ref [concrete = constants.%.25e] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %B.ref [concrete = constants.%.d83] // CHECK:STDOUT: %return.param: ref %B = out_param call_param0 // CHECK:STDOUT: %return: ref %B = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %A.as.Factory.impl.Method.decl: %A.as.Factory.impl.Method.type = fn_decl @A.as.Factory.impl.Method [concrete = constants.%A.as.Factory.impl.Method] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.ccb = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.ccb = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.787 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.787 = return_slot_pattern %return.param_patt, %B.ref [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.9ef = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.9ef = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.e39 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.e39 = return_slot_pattern %return.param_patt, %B.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %.loc16: Core.Form = init_form %B.ref [concrete = constants.%.25e] +// CHECK:STDOUT: %.loc16: Core.Form = init_form %B.ref [concrete = constants.%.d83] // CHECK:STDOUT: %self.param: %A = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @A.as.Factory.impl.%A.ref [concrete = constants.%A] // CHECK:STDOUT: %self: %A = value_binding self, %self.param @@ -1043,7 +1043,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Factory.WithSelf.Make(@Factory.%T.loc4_20.2: type, @Factory.%Self.loc4_29.1: @Factory.%Factory.type (%Factory.type.300)) { +// CHECK:STDOUT: generic fn @Factory.WithSelf.Make(@Factory.%T.loc4_20.2: type, @Factory.%Self.loc4_29.1: @Factory.%Factory.type (%Factory.type.711)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc6_16.1: Core.Form = init_form %T [symbolic = %.loc6_16.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.51d)] @@ -1051,12 +1051,12 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: fn() -> out %return.param: @Factory.WithSelf.Make.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Factory.WithSelf.Method(@Factory.%T.loc4_20.2: type, @Factory.%Self.loc4_29.1: @Factory.%Factory.type (%Factory.type.300)) { +// CHECK:STDOUT: generic fn @Factory.WithSelf.Method(@Factory.%T.loc4_20.2: type, @Factory.%Self.loc4_29.1: @Factory.%Factory.type (%Factory.type.711)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.300)] -// CHECK:STDOUT: %Self: @Factory.WithSelf.Method.%Factory.type (%Factory.type.300) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.832)] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.711)] +// CHECK:STDOUT: %Self: @Factory.WithSelf.Method.%Factory.type (%Factory.type.711) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.9c2)] // CHECK:STDOUT: %Self.as_type.loc8_19.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_19.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.loc8_17: type = pattern_type %Self.as_type.loc8_19.1 [symbolic = %pattern_type.loc8_17 (constants.%pattern_type.a9a)] +// CHECK:STDOUT: %pattern_type.loc8_17: type = pattern_type %Self.as_type.loc8_19.1 [symbolic = %pattern_type.loc8_17 (constants.%pattern_type.5ba)] // CHECK:STDOUT: %.loc8_30.1: Core.Form = init_form %T [symbolic = %.loc8_30.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc8_30: type = pattern_type %T [symbolic = %pattern_type.loc8_30 (constants.%pattern_type.51d)] // CHECK:STDOUT: @@ -1071,20 +1071,20 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T.loc4_20.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Factory.WithSelf(constants.%T, constants.%Self.832) {} +// CHECK:STDOUT: specific @Factory.WithSelf(constants.%T, constants.%Self.9c2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Factory.WithSelf.Make(constants.%T, constants.%Self.832) { +// CHECK:STDOUT: specific @Factory.WithSelf.Make(constants.%T, constants.%Self.9c2) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %.loc6_16.1 => constants.%.184 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Factory.WithSelf.Method(constants.%T, constants.%Self.832) { +// CHECK:STDOUT: specific @Factory.WithSelf.Method(constants.%T, constants.%Self.9c2) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.300 -// CHECK:STDOUT: %Self => constants.%Self.832 +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.711 +// CHECK:STDOUT: %Self => constants.%Self.9c2 // CHECK:STDOUT: %Self.as_type.loc8_19.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.loc8_17 => constants.%pattern_type.a9a +// CHECK:STDOUT: %pattern_type.loc8_17 => constants.%pattern_type.5ba // CHECK:STDOUT: %.loc8_30.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc8_30 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -1093,52 +1093,52 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T.loc4_20.1 => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.bcb -// CHECK:STDOUT: %Self.loc4_29.2 => constants.%Self.e7a +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.5e3 +// CHECK:STDOUT: %Self.loc4_29.2 => constants.%Self.f44 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Factory.WithSelf(constants.%B, constants.%Self.832) { +// CHECK:STDOUT: specific @Factory.WithSelf(constants.%B, constants.%Self.9c2) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%B -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.bcb -// CHECK:STDOUT: %Self => constants.%Self.832 -// CHECK:STDOUT: %Factory.WithSelf.Make.type => constants.%Factory.WithSelf.Make.type.b7f -// CHECK:STDOUT: %Factory.WithSelf.Make => constants.%Factory.WithSelf.Make.8d3 -// CHECK:STDOUT: %Factory.assoc_type => constants.%Factory.assoc_type.f46 -// CHECK:STDOUT: %assoc0.loc6_17.2 => constants.%assoc0.ddc -// CHECK:STDOUT: %Factory.WithSelf.Method.type => constants.%Factory.WithSelf.Method.type.469 -// CHECK:STDOUT: %Factory.WithSelf.Method => constants.%Factory.WithSelf.Method.1e3 -// CHECK:STDOUT: %assoc1.loc8_31.2 => constants.%assoc1.d81 +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.5e3 +// CHECK:STDOUT: %Self => constants.%Self.9c2 +// CHECK:STDOUT: %Factory.WithSelf.Make.type => constants.%Factory.WithSelf.Make.type.264 +// CHECK:STDOUT: %Factory.WithSelf.Make => constants.%Factory.WithSelf.Make.26e +// CHECK:STDOUT: %Factory.assoc_type => constants.%Factory.assoc_type.8bd +// CHECK:STDOUT: %assoc0.loc6_17.2 => constants.%assoc0.012 +// CHECK:STDOUT: %Factory.WithSelf.Method.type => constants.%Factory.WithSelf.Method.type.dc9 +// CHECK:STDOUT: %Factory.WithSelf.Method => constants.%Factory.WithSelf.Method.5a4 +// CHECK:STDOUT: %assoc1.loc8_31.2 => constants.%assoc1.682 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Factory.WithSelf(constants.%B, constants.%Factory.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%B -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.bcb +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.5e3 // CHECK:STDOUT: %Self => constants.%Factory.facet -// CHECK:STDOUT: %Factory.WithSelf.Make.type => constants.%Factory.WithSelf.Make.type.85f -// CHECK:STDOUT: %Factory.WithSelf.Make => constants.%Factory.WithSelf.Make.65a -// CHECK:STDOUT: %Factory.assoc_type => constants.%Factory.assoc_type.f46 -// CHECK:STDOUT: %assoc0.loc6_17.2 => constants.%assoc0.ddc -// CHECK:STDOUT: %Factory.WithSelf.Method.type => constants.%Factory.WithSelf.Method.type.ff2 -// CHECK:STDOUT: %Factory.WithSelf.Method => constants.%Factory.WithSelf.Method.349 -// CHECK:STDOUT: %assoc1.loc8_31.2 => constants.%assoc1.d81 +// CHECK:STDOUT: %Factory.WithSelf.Make.type => constants.%Factory.WithSelf.Make.type.0c4 +// CHECK:STDOUT: %Factory.WithSelf.Make => constants.%Factory.WithSelf.Make.f30 +// CHECK:STDOUT: %Factory.assoc_type => constants.%Factory.assoc_type.8bd +// CHECK:STDOUT: %assoc0.loc6_17.2 => constants.%assoc0.012 +// CHECK:STDOUT: %Factory.WithSelf.Method.type => constants.%Factory.WithSelf.Method.type.99a +// CHECK:STDOUT: %Factory.WithSelf.Method => constants.%Factory.WithSelf.Method.637 +// CHECK:STDOUT: %assoc1.loc8_31.2 => constants.%assoc1.682 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Factory.WithSelf.Make(constants.%B, constants.%Factory.facet) { // CHECK:STDOUT: %T => constants.%B -// CHECK:STDOUT: %.loc6_16.1 => constants.%.25e -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.787 +// CHECK:STDOUT: %.loc6_16.1 => constants.%.d83 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Factory.WithSelf.Method(constants.%B, constants.%Factory.facet) { // CHECK:STDOUT: %T => constants.%B -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.bcb +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.5e3 // CHECK:STDOUT: %Self => constants.%Factory.facet // CHECK:STDOUT: %Self.as_type.loc8_19.1 => constants.%A -// CHECK:STDOUT: %pattern_type.loc8_17 => constants.%pattern_type.ccb -// CHECK:STDOUT: %.loc8_30.1 => constants.%.25e -// CHECK:STDOUT: %pattern_type.loc8_30 => constants.%pattern_type.787 +// CHECK:STDOUT: %pattern_type.loc8_17 => constants.%pattern_type.9ef +// CHECK:STDOUT: %.loc8_30.1 => constants.%.d83 +// CHECK:STDOUT: %pattern_type.loc8_30 => constants.%pattern_type.e39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- factory.impl.carbon @@ -1147,55 +1147,55 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %Factory.type.db1: type = generic_interface_type @Factory [concrete] -// CHECK:STDOUT: %Factory.generic: %Factory.type.db1 = struct_value () [concrete] +// CHECK:STDOUT: %Factory.type.9da: type = generic_interface_type @Factory [concrete] +// CHECK:STDOUT: %Factory.generic: %Factory.type.9da = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Factory.type.300: type = facet_type <@Factory, @Factory(%T)> [symbolic] -// CHECK:STDOUT: %Self.399: %Factory.type.300 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Factory.assoc_type.802: type = assoc_entity_type @Factory, @Factory(%T) [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Method.type.5f0: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%T, %Self.399) [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Method.2bf: %Factory.WithSelf.Method.type.5f0 = struct_value () [symbolic] +// CHECK:STDOUT: %Factory.type.711: type = facet_type <@Factory, @Factory(%T)> [symbolic] +// CHECK:STDOUT: %Self.3e3: %Factory.type.711 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Factory.assoc_type.0ed: type = assoc_entity_type @Factory, @Factory(%T) [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Method.type.d40: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%T, %Self.3e3) [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Method.459: %Factory.WithSelf.Method.type.d40 = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.399 [symbolic] -// CHECK:STDOUT: %pattern_type.6c7: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.3e3 [symbolic] +// CHECK:STDOUT: %pattern_type.b1a: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Make.type.2f7: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%T, %Self.399) [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Make.f06: %Factory.WithSelf.Make.type.2f7 = struct_value () [symbolic] -// CHECK:STDOUT: %Factory.type.bcb: type = facet_type <@Factory, @Factory(%B)> [concrete] -// CHECK:STDOUT: %Self.d48: %Factory.type.bcb = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Make.type.cf7: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%T, %Self.3e3) [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Make.86c: %Factory.WithSelf.Make.type.cf7 = struct_value () [symbolic] +// CHECK:STDOUT: %Factory.type.5e3: type = facet_type <@Factory, @Factory(%B)> [concrete] +// CHECK:STDOUT: %Self.739: %Factory.type.5e3 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %A: type = class_type @A [concrete] -// CHECK:STDOUT: %.25e: Core.Form = init_form %B [concrete] -// CHECK:STDOUT: %pattern_type.787: type = pattern_type %B [concrete] +// CHECK:STDOUT: %.d83: Core.Form = init_form %B [concrete] +// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete] // CHECK:STDOUT: %MakeB.type: type = fn_type @MakeB [concrete] // CHECK:STDOUT: %MakeB: %MakeB.type = struct_value () [concrete] -// CHECK:STDOUT: %Factory.WithSelf.Make.type.6b1: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%B, %Self.399) [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Make.07e: %Factory.WithSelf.Make.type.6b1 = struct_value () [symbolic] -// CHECK:STDOUT: %Factory.assoc_type.f46: type = assoc_entity_type @Factory, @Factory(%B) [concrete] -// CHECK:STDOUT: %assoc0.1db: %Factory.assoc_type.f46 = assoc_entity element0, imports.%Main.import_ref.0e8 [concrete] -// CHECK:STDOUT: %Factory.WithSelf.Method.type.cef: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%B, %Self.399) [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Method.35a: %Factory.WithSelf.Method.type.cef = struct_value () [symbolic] -// CHECK:STDOUT: %assoc1.a97: %Factory.assoc_type.f46 = assoc_entity element1, imports.%Main.import_ref.7e5 [concrete] -// CHECK:STDOUT: %assoc0.584: %Factory.assoc_type.802 = assoc_entity element0, imports.%Main.import_ref.867 [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Make.type.189: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%B, %Self.3e3) [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Make.42f: %Factory.WithSelf.Make.type.189 = struct_value () [symbolic] +// CHECK:STDOUT: %Factory.assoc_type.8bd: type = assoc_entity_type @Factory, @Factory(%B) [concrete] +// CHECK:STDOUT: %assoc0.e71: %Factory.assoc_type.8bd = assoc_entity element0, imports.%Main.import_ref.0a8 [concrete] +// CHECK:STDOUT: %Factory.WithSelf.Method.type.85b: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%B, %Self.3e3) [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Method.18d: %Factory.WithSelf.Method.type.85b = struct_value () [symbolic] +// CHECK:STDOUT: %assoc1.e2e: %Factory.assoc_type.8bd = assoc_entity element1, imports.%Main.import_ref.ad0 [concrete] +// CHECK:STDOUT: %assoc0.c0a: %Factory.assoc_type.0ed = assoc_entity element0, imports.%Main.import_ref.587 [symbolic] // CHECK:STDOUT: %Factory.impl_witness: = impl_witness imports.%Factory.impl_witness_table [concrete] -// CHECK:STDOUT: %Factory.facet: %Factory.type.bcb = facet_value %A, (%Factory.impl_witness) [concrete] -// CHECK:STDOUT: %Factory.WithSelf.Make.type.0d4: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%B, %Factory.facet) [concrete] -// CHECK:STDOUT: %Factory.WithSelf.Make.292: %Factory.WithSelf.Make.type.0d4 = struct_value () [concrete] -// CHECK:STDOUT: %Factory.WithSelf.Method.type.05d: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%B, %Factory.facet) [concrete] -// CHECK:STDOUT: %Factory.WithSelf.Method.579: %Factory.WithSelf.Method.type.05d = struct_value () [concrete] -// CHECK:STDOUT: %.508: type = fn_type_with_self_type %Factory.WithSelf.Make.type.0d4, %Factory.facet [concrete] +// CHECK:STDOUT: %Factory.facet: %Factory.type.5e3 = facet_value %A, (%Factory.impl_witness) [concrete] +// CHECK:STDOUT: %Factory.WithSelf.Make.type.f93: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%B, %Factory.facet) [concrete] +// CHECK:STDOUT: %Factory.WithSelf.Make.57a: %Factory.WithSelf.Make.type.f93 = struct_value () [concrete] +// CHECK:STDOUT: %Factory.WithSelf.Method.type.053: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%B, %Factory.facet) [concrete] +// CHECK:STDOUT: %Factory.WithSelf.Method.d76: %Factory.WithSelf.Method.type.053 = struct_value () [concrete] +// CHECK:STDOUT: %.9f3: type = fn_type_with_self_type %Factory.WithSelf.Make.type.f93, %Factory.facet [concrete] // CHECK:STDOUT: %A.as.Factory.impl.Make.type: type = fn_type @A.as.Factory.impl.Make [concrete] // CHECK:STDOUT: %A.as.Factory.impl.Make: %A.as.Factory.impl.Make.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] // CHECK:STDOUT: %InstanceB.type: type = fn_type @InstanceB [concrete] // CHECK:STDOUT: %InstanceB: %InstanceB.type = struct_value () [concrete] -// CHECK:STDOUT: %assoc1.9ce: %Factory.assoc_type.802 = assoc_entity element1, imports.%Main.import_ref.755 [symbolic] -// CHECK:STDOUT: %.d3d: type = fn_type_with_self_type %Factory.WithSelf.Method.type.05d, %Factory.facet [concrete] +// CHECK:STDOUT: %assoc1.c00: %Factory.assoc_type.0ed = assoc_entity element1, imports.%Main.import_ref.82f [symbolic] +// CHECK:STDOUT: %.076: type = fn_type_with_self_type %Factory.WithSelf.Method.type.053, %Factory.facet [concrete] // CHECK:STDOUT: %A.as.Factory.impl.Method.type: type = fn_type @A.as.Factory.impl.Method [concrete] // CHECK:STDOUT: %A.as.Factory.impl.Method: %A.as.Factory.impl.Method.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.Factory: %Factory.type.db1 = import_ref Main//factory, Factory, loaded [concrete = constants.%Factory.generic] +// CHECK:STDOUT: %Main.Factory: %Factory.type.9da = import_ref Main//factory, Factory, loaded [concrete = constants.%Factory.generic] // CHECK:STDOUT: %Main.A: type = import_ref Main//factory, A, loaded [concrete = constants.%A] // CHECK:STDOUT: %Main.B: type = import_ref Main//factory, B, loaded [concrete = constants.%B] // CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { @@ -1203,32 +1203,32 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//factory, loc12_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.671 = import_ref Main//factory, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.295: @Factory.WithSelf.%Factory.assoc_type (%Factory.assoc_type.802) = import_ref Main//factory, loc6_17, loaded [symbolic = @Factory.WithSelf.%assoc0 (constants.%assoc0.584)] -// CHECK:STDOUT: %Main.import_ref.1dd: @Factory.WithSelf.%Factory.assoc_type (%Factory.assoc_type.802) = import_ref Main//factory, loc8_31, loaded [symbolic = @Factory.WithSelf.%assoc1 (constants.%assoc1.9ce)] +// CHECK:STDOUT: %Main.import_ref.7b8 = import_ref Main//factory, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.a26: @Factory.WithSelf.%Factory.assoc_type (%Factory.assoc_type.0ed) = import_ref Main//factory, loc6_17, loaded [symbolic = @Factory.WithSelf.%assoc0 (constants.%assoc0.c0a)] +// CHECK:STDOUT: %Main.import_ref.1ef: @Factory.WithSelf.%Factory.assoc_type (%Factory.assoc_type.0ed) = import_ref Main//factory, loc8_31, loaded [symbolic = @Factory.WithSelf.%assoc1 (constants.%assoc1.c00)] // CHECK:STDOUT: %Main.Make = import_ref Main//factory, Make, unloaded // CHECK:STDOUT: %Main.Method = import_ref Main//factory, Method, unloaded -// CHECK:STDOUT: %Main.import_ref.7e5: @Factory.WithSelf.%Factory.WithSelf.Method.type (%Factory.WithSelf.Method.type.5f0) = import_ref Main//factory, loc8_31, loaded [symbolic = @Factory.WithSelf.%Factory.WithSelf.Method (constants.%Factory.WithSelf.Method.2bf)] +// CHECK:STDOUT: %Main.import_ref.ad0: @Factory.WithSelf.%Factory.WithSelf.Method.type (%Factory.WithSelf.Method.type.d40) = import_ref Main//factory, loc8_31, loaded [symbolic = @Factory.WithSelf.%Factory.WithSelf.Method (constants.%Factory.WithSelf.Method.459)] // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//factory, loc4_20, loaded [symbolic = @Factory.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.301bf0.2: @Factory.%Factory.type (%Factory.type.300) = import_ref Main//factory, loc4_29, loaded [symbolic = @Factory.%Self (constants.%Self.399)] -// CHECK:STDOUT: %Main.import_ref.0e8: @Factory.WithSelf.%Factory.WithSelf.Make.type (%Factory.WithSelf.Make.type.2f7) = import_ref Main//factory, loc6_17, loaded [symbolic = @Factory.WithSelf.%Factory.WithSelf.Make (constants.%Factory.WithSelf.Make.f06)] +// CHECK:STDOUT: %Main.import_ref.0f8e01.2: @Factory.%Factory.type (%Factory.type.711) = import_ref Main//factory, loc4_29, loaded [symbolic = @Factory.%Self (constants.%Self.3e3)] +// CHECK:STDOUT: %Main.import_ref.0a8: @Factory.WithSelf.%Factory.WithSelf.Make.type (%Factory.WithSelf.Make.type.cf7) = import_ref Main//factory, loc6_17, loaded [symbolic = @Factory.WithSelf.%Factory.WithSelf.Make (constants.%Factory.WithSelf.Make.86c)] // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//factory, loc4_20, loaded [symbolic = @Factory.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.301bf0.3: @Factory.%Factory.type (%Factory.type.300) = import_ref Main//factory, loc4_29, loaded [symbolic = @Factory.%Self (constants.%Self.399)] -// CHECK:STDOUT: %Main.import_ref.159 = import_ref Main//factory, loc4_29, unloaded +// CHECK:STDOUT: %Main.import_ref.0f8e01.3: @Factory.%Factory.type (%Factory.type.711) = import_ref Main//factory, loc4_29, loaded [symbolic = @Factory.%Self (constants.%Self.3e3)] +// CHECK:STDOUT: %Main.import_ref.a45 = import_ref Main//factory, loc4_29, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//factory, loc4_20, loaded [symbolic = @Factory.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.f9f: = import_ref Main//factory, loc14_22, loaded [concrete = constants.%Factory.impl_witness] +// CHECK:STDOUT: %Main.import_ref.8c3: = import_ref Main//factory, loc14_22, loaded [concrete = constants.%Factory.impl_witness] // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//factory, loc11_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.5d6 = import_ref Main//factory, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.abd: type = import_ref Main//factory, loc14_6, loaded [concrete = constants.%A] -// CHECK:STDOUT: %Main.import_ref.96d: type = import_ref Main//factory, loc14_20, loaded [concrete = constants.%Factory.type.bcb] -// CHECK:STDOUT: %Main.import_ref.32b = import_ref Main//factory, loc15_17, unloaded -// CHECK:STDOUT: %Main.import_ref.41a = import_ref Main//factory, loc16_31, unloaded -// CHECK:STDOUT: %Main.import_ref.59e = import_ref Main//factory, loc14_20, unloaded -// CHECK:STDOUT: %Main.import_ref.867 = import_ref Main//factory, loc6_17, unloaded -// CHECK:STDOUT: %Main.import_ref.af8: %A.as.Factory.impl.Make.type = import_ref Main//factory, loc15_17, loaded [concrete = constants.%A.as.Factory.impl.Make] -// CHECK:STDOUT: %Main.import_ref.ede: %A.as.Factory.impl.Method.type = import_ref Main//factory, loc16_31, loaded [concrete = constants.%A.as.Factory.impl.Method] -// CHECK:STDOUT: %Factory.impl_witness_table = impl_witness_table (%Main.import_ref.af8, %Main.import_ref.ede), @A.as.Factory.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.755 = import_ref Main//factory, loc8_31, unloaded +// CHECK:STDOUT: %Main.import_ref.0ee = import_ref Main//factory, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.239: type = import_ref Main//factory, loc14_6, loaded [concrete = constants.%A] +// CHECK:STDOUT: %Main.import_ref.1d4: type = import_ref Main//factory, loc14_20, loaded [concrete = constants.%Factory.type.5e3] +// CHECK:STDOUT: %Main.import_ref.213 = import_ref Main//factory, loc15_17, unloaded +// CHECK:STDOUT: %Main.import_ref.1ee = import_ref Main//factory, loc16_31, unloaded +// CHECK:STDOUT: %Main.import_ref.ebb = import_ref Main//factory, loc14_20, unloaded +// CHECK:STDOUT: %Main.import_ref.587 = import_ref Main//factory, loc6_17, unloaded +// CHECK:STDOUT: %Main.import_ref.127: %A.as.Factory.impl.Make.type = import_ref Main//factory, loc15_17, loaded [concrete = constants.%A.as.Factory.impl.Make] +// CHECK:STDOUT: %Main.import_ref.84c: %A.as.Factory.impl.Method.type = import_ref Main//factory, loc16_31, loaded [concrete = constants.%A.as.Factory.impl.Method] +// CHECK:STDOUT: %Factory.impl_witness_table = impl_witness_table (%Main.import_ref.127, %Main.import_ref.84c), @A.as.Factory.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.82f = import_ref Main//factory, loc8_31, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1244,22 +1244,22 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %default.import.loc2_23.2 = import // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %MakeB.decl: %MakeB.type = fn_decl @MakeB [concrete = constants.%MakeB] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.787 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.787 = return_slot_pattern %return.param_patt, %B.ref.loc4 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.e39 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.e39 = return_slot_pattern %return.param_patt, %B.ref.loc4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %B.ref.loc4: type = name_ref B, imports.%Main.B [concrete = constants.%B] -// CHECK:STDOUT: %.loc4_15.2: Core.Form = init_form %B.ref.loc4 [concrete = constants.%.25e] +// CHECK:STDOUT: %.loc4_15.2: Core.Form = init_form %B.ref.loc4 [concrete = constants.%.d83] // CHECK:STDOUT: %return.param: ref %B = out_param call_param0 // CHECK:STDOUT: %return: ref %B = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InstanceB.decl: %InstanceB.type = fn_decl @InstanceB [concrete = constants.%InstanceB] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.ccb = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.ccb = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.787 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.787 = return_slot_pattern %return.param_patt, %B.ref.loc7 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.9ef = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9ef = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.e39 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.e39 = return_slot_pattern %return.param_patt, %B.ref.loc7 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %B.ref.loc7: type = name_ref B, imports.%Main.B [concrete = constants.%B] -// CHECK:STDOUT: %.loc7_23.2: Core.Form = init_form %B.ref.loc7 [concrete = constants.%.25e] +// CHECK:STDOUT: %.loc7_23.2: Core.Form = init_form %B.ref.loc7 [concrete = constants.%.d83] // CHECK:STDOUT: %a.param: %A = value_param call_param0 // CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Main.A [concrete = constants.%A] // CHECK:STDOUT: %a: %A = value_binding a, %a.param @@ -1272,55 +1272,55 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.300)] -// CHECK:STDOUT: %Self: @Factory.%Factory.type (%Factory.type.300) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.399)] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.711)] +// CHECK:STDOUT: %Self: @Factory.%Factory.type (%Factory.type.711) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.3e3)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.159 -// CHECK:STDOUT: .Make = imports.%Main.import_ref.295 -// CHECK:STDOUT: .Method = imports.%Main.import_ref.1dd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.a45 +// CHECK:STDOUT: .Make = imports.%Main.import_ref.a26 +// CHECK:STDOUT: .Method = imports.%Main.import_ref.1ef // CHECK:STDOUT: witness = (imports.%Main.Make, imports.%Main.Method) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @A.as.Factory.impl: imports.%Main.import_ref.abd as imports.%Main.import_ref.96d [from "factory.carbon"] { +// CHECK:STDOUT: impl @A.as.Factory.impl: imports.%Main.import_ref.239 as imports.%Main.import_ref.1d4 [from "factory.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Make = imports.%Main.import_ref.32b -// CHECK:STDOUT: .Method = imports.%Main.import_ref.41a -// CHECK:STDOUT: extend imports.%Main.import_ref.59e -// CHECK:STDOUT: witness = imports.%Main.import_ref.f9f +// CHECK:STDOUT: .Make = imports.%Main.import_ref.213 +// CHECK:STDOUT: .Method = imports.%Main.import_ref.1ee +// CHECK:STDOUT: extend imports.%Main.import_ref.ebb +// CHECK:STDOUT: witness = imports.%Main.import_ref.8c3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B [from "factory.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.671 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.7b8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A [from "factory.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.5d6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0ee // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Factory.WithSelf.Method(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.301bf0.2: @Factory.%Factory.type (%Factory.type.300)) [from "factory.carbon"] { +// CHECK:STDOUT: generic fn @Factory.WithSelf.Method(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.0f8e01.2: @Factory.%Factory.type (%Factory.type.711)) [from "factory.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.300)] -// CHECK:STDOUT: %Self: @Factory.WithSelf.Method.%Factory.type (%Factory.type.300) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.399)] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.711)] +// CHECK:STDOUT: %Self: @Factory.WithSelf.Method.%Factory.type (%Factory.type.711) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.3e3)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.6c7)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.b1a)] // CHECK:STDOUT: %.1: Core.Form = init_form %T [symbolic = %.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %T [symbolic = %pattern_type.2 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Factory.WithSelf.Make(imports.%Main.import_ref.b3bc94.3: type, imports.%Main.import_ref.301bf0.3: @Factory.%Factory.type (%Factory.type.300)) [from "factory.carbon"] { +// CHECK:STDOUT: generic fn @Factory.WithSelf.Make(imports.%Main.import_ref.b3bc94.3: type, imports.%Main.import_ref.0f8e01.3: @Factory.%Factory.type (%Factory.type.711)) [from "factory.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.1: Core.Form = init_form %T [symbolic = %.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.51d)] @@ -1331,14 +1331,14 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: fn @MakeB() -> out %return.param: %B { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Main.A [concrete = constants.%A] -// CHECK:STDOUT: %Factory.ref: %Factory.type.db1 = name_ref Factory, imports.%Main.Factory [concrete = constants.%Factory.generic] +// CHECK:STDOUT: %Factory.ref: %Factory.type.9da = name_ref Factory, imports.%Main.Factory [concrete = constants.%Factory.generic] // CHECK:STDOUT: %B.ref.loc5: type = name_ref B, imports.%Main.B [concrete = constants.%B] -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%B)> [concrete = constants.%Factory.type.bcb] -// CHECK:STDOUT: %.loc5_23: %Factory.assoc_type.f46 = specific_constant imports.%Main.import_ref.295, @Factory.WithSelf(constants.%B, constants.%Self.399) [concrete = constants.%assoc0.1db] -// CHECK:STDOUT: %Make.ref: %Factory.assoc_type.f46 = name_ref Make, %.loc5_23 [concrete = constants.%assoc0.1db] -// CHECK:STDOUT: %Factory.facet: %Factory.type.bcb = facet_value %A.ref, (constants.%Factory.impl_witness) [concrete = constants.%Factory.facet] -// CHECK:STDOUT: %.loc5_11: %Factory.type.bcb = converted %A.ref, %Factory.facet [concrete = constants.%Factory.facet] -// CHECK:STDOUT: %impl.elem0: %.508 = impl_witness_access constants.%Factory.impl_witness, element0 [concrete = constants.%A.as.Factory.impl.Make] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%B)> [concrete = constants.%Factory.type.5e3] +// CHECK:STDOUT: %.loc5_23: %Factory.assoc_type.8bd = specific_constant imports.%Main.import_ref.a26, @Factory.WithSelf(constants.%B, constants.%Self.3e3) [concrete = constants.%assoc0.e71] +// CHECK:STDOUT: %Make.ref: %Factory.assoc_type.8bd = name_ref Make, %.loc5_23 [concrete = constants.%assoc0.e71] +// CHECK:STDOUT: %Factory.facet: %Factory.type.5e3 = facet_value %A.ref, (constants.%Factory.impl_witness) [concrete = constants.%Factory.facet] +// CHECK:STDOUT: %.loc5_11: %Factory.type.5e3 = converted %A.ref, %Factory.facet [concrete = constants.%Factory.facet] +// CHECK:STDOUT: %impl.elem0: %.9f3 = impl_witness_access constants.%Factory.impl_witness, element0 [concrete = constants.%A.as.Factory.impl.Make] // CHECK:STDOUT: %.loc4_15.1: ref %B = splice_block %return.param {} // CHECK:STDOUT: %A.as.Factory.impl.Make.call: init %B to %.loc4_15.1 = call %impl.elem0() // CHECK:STDOUT: return %A.as.Factory.impl.Make.call to %return.param @@ -1349,12 +1349,12 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: fn @InstanceB(%a.param: %A) -> out %return.param: %B { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %A = name_ref a, %a -// CHECK:STDOUT: %Factory.ref: %Factory.type.db1 = name_ref Factory, imports.%Main.Factory [concrete = constants.%Factory.generic] +// CHECK:STDOUT: %Factory.ref: %Factory.type.9da = name_ref Factory, imports.%Main.Factory [concrete = constants.%Factory.generic] // CHECK:STDOUT: %B.ref.loc8: type = name_ref B, imports.%Main.B [concrete = constants.%B] -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%B)> [concrete = constants.%Factory.type.bcb] -// CHECK:STDOUT: %.loc8: %Factory.assoc_type.f46 = specific_constant imports.%Main.import_ref.1dd, @Factory.WithSelf(constants.%B, constants.%Self.399) [concrete = constants.%assoc1.a97] -// CHECK:STDOUT: %Method.ref: %Factory.assoc_type.f46 = name_ref Method, %.loc8 [concrete = constants.%assoc1.a97] -// CHECK:STDOUT: %impl.elem1: %.d3d = impl_witness_access constants.%Factory.impl_witness, element1 [concrete = constants.%A.as.Factory.impl.Method] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%B)> [concrete = constants.%Factory.type.5e3] +// CHECK:STDOUT: %.loc8: %Factory.assoc_type.8bd = specific_constant imports.%Main.import_ref.1ef, @Factory.WithSelf(constants.%B, constants.%Self.3e3) [concrete = constants.%assoc1.e2e] +// CHECK:STDOUT: %Method.ref: %Factory.assoc_type.8bd = name_ref Method, %.loc8 [concrete = constants.%assoc1.e2e] +// CHECK:STDOUT: %impl.elem1: %.076 = impl_witness_access constants.%Factory.impl_witness, element1 [concrete = constants.%A.as.Factory.impl.Method] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: %.loc7_23.1: ref %B = splice_block %return.param {} // CHECK:STDOUT: %A.as.Factory.impl.Method.call: init %B to %.loc7_23.1 = call %bound_method(%a.ref) @@ -1367,19 +1367,19 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Factory.WithSelf(constants.%T, constants.%Self.399) {} +// CHECK:STDOUT: specific @Factory.WithSelf(constants.%T, constants.%Self.3e3) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Factory.WithSelf.Method(constants.%T, constants.%Self.399) { +// CHECK:STDOUT: specific @Factory.WithSelf.Method(constants.%T, constants.%Self.3e3) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.300 -// CHECK:STDOUT: %Self => constants.%Self.399 +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.711 +// CHECK:STDOUT: %Self => constants.%Self.3e3 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.6c7 +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.b1a // CHECK:STDOUT: %.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Factory.WithSelf.Make(constants.%T, constants.%Self.399) { +// CHECK:STDOUT: specific @Factory.WithSelf.Make(constants.%T, constants.%Self.3e3) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %.1 => constants.%.184 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d @@ -1389,36 +1389,36 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.bcb -// CHECK:STDOUT: %Self => constants.%Self.d48 +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.5e3 +// CHECK:STDOUT: %Self => constants.%Self.739 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Factory.WithSelf(constants.%B, constants.%Self.399) { +// CHECK:STDOUT: specific @Factory.WithSelf(constants.%B, constants.%Self.3e3) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%B -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.bcb -// CHECK:STDOUT: %Self => constants.%Self.399 -// CHECK:STDOUT: %Factory.WithSelf.Make.type => constants.%Factory.WithSelf.Make.type.6b1 -// CHECK:STDOUT: %Factory.WithSelf.Make => constants.%Factory.WithSelf.Make.07e -// CHECK:STDOUT: %Factory.assoc_type => constants.%Factory.assoc_type.f46 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.1db -// CHECK:STDOUT: %Factory.WithSelf.Method.type => constants.%Factory.WithSelf.Method.type.cef -// CHECK:STDOUT: %Factory.WithSelf.Method => constants.%Factory.WithSelf.Method.35a -// CHECK:STDOUT: %assoc1 => constants.%assoc1.a97 +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.5e3 +// CHECK:STDOUT: %Self => constants.%Self.3e3 +// CHECK:STDOUT: %Factory.WithSelf.Make.type => constants.%Factory.WithSelf.Make.type.189 +// CHECK:STDOUT: %Factory.WithSelf.Make => constants.%Factory.WithSelf.Make.42f +// CHECK:STDOUT: %Factory.assoc_type => constants.%Factory.assoc_type.8bd +// CHECK:STDOUT: %assoc0 => constants.%assoc0.e71 +// CHECK:STDOUT: %Factory.WithSelf.Method.type => constants.%Factory.WithSelf.Method.type.85b +// CHECK:STDOUT: %Factory.WithSelf.Method => constants.%Factory.WithSelf.Method.18d +// CHECK:STDOUT: %assoc1 => constants.%assoc1.e2e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Factory.WithSelf(constants.%B, constants.%Factory.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%B -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.bcb +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.5e3 // CHECK:STDOUT: %Self => constants.%Factory.facet -// CHECK:STDOUT: %Factory.WithSelf.Make.type => constants.%Factory.WithSelf.Make.type.0d4 -// CHECK:STDOUT: %Factory.WithSelf.Make => constants.%Factory.WithSelf.Make.292 -// CHECK:STDOUT: %Factory.assoc_type => constants.%Factory.assoc_type.f46 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.1db -// CHECK:STDOUT: %Factory.WithSelf.Method.type => constants.%Factory.WithSelf.Method.type.05d -// CHECK:STDOUT: %Factory.WithSelf.Method => constants.%Factory.WithSelf.Method.579 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.a97 +// CHECK:STDOUT: %Factory.WithSelf.Make.type => constants.%Factory.WithSelf.Make.type.f93 +// CHECK:STDOUT: %Factory.WithSelf.Make => constants.%Factory.WithSelf.Make.57a +// CHECK:STDOUT: %Factory.assoc_type => constants.%Factory.assoc_type.8bd +// CHECK:STDOUT: %assoc0 => constants.%assoc0.e71 +// CHECK:STDOUT: %Factory.WithSelf.Method.type => constants.%Factory.WithSelf.Method.type.053 +// CHECK:STDOUT: %Factory.WithSelf.Method => constants.%Factory.WithSelf.Method.d76 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.e2e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_factory.impl.carbon @@ -1427,46 +1427,46 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %Factory.type.db1: type = generic_interface_type @Factory [concrete] -// CHECK:STDOUT: %Factory.generic: %Factory.type.db1 = struct_value () [concrete] +// CHECK:STDOUT: %Factory.type.9da: type = generic_interface_type @Factory [concrete] +// CHECK:STDOUT: %Factory.generic: %Factory.type.9da = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Factory.type.300: type = facet_type <@Factory, @Factory(%T)> [symbolic] -// CHECK:STDOUT: %Self.399: %Factory.type.300 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Factory.assoc_type.802: type = assoc_entity_type @Factory, @Factory(%T) [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Method.type.5f0: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%T, %Self.399) [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Method.2bf: %Factory.WithSelf.Method.type.5f0 = struct_value () [symbolic] +// CHECK:STDOUT: %Factory.type.711: type = facet_type <@Factory, @Factory(%T)> [symbolic] +// CHECK:STDOUT: %Self.3e3: %Factory.type.711 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Factory.assoc_type.0ed: type = assoc_entity_type @Factory, @Factory(%T) [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Method.type.d40: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%T, %Self.3e3) [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Method.459: %Factory.WithSelf.Method.type.d40 = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.399 [symbolic] -// CHECK:STDOUT: %pattern_type.6c7: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.3e3 [symbolic] +// CHECK:STDOUT: %pattern_type.b1a: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Make.type.2f7: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%T, %Self.399) [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Make.f06: %Factory.WithSelf.Make.type.2f7 = struct_value () [symbolic] -// CHECK:STDOUT: %Factory.type.bcb: type = facet_type <@Factory, @Factory(%B)> [concrete] -// CHECK:STDOUT: %Self.d48: %Factory.type.bcb = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Make.type.cf7: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%T, %Self.3e3) [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Make.86c: %Factory.WithSelf.Make.type.cf7 = struct_value () [symbolic] +// CHECK:STDOUT: %Factory.type.5e3: type = facet_type <@Factory, @Factory(%B)> [concrete] +// CHECK:STDOUT: %Self.739: %Factory.type.5e3 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %MakeC.type: type = fn_type @MakeC [concrete] // CHECK:STDOUT: %MakeC: %MakeC.type = struct_value () [concrete] -// CHECK:STDOUT: %Factory.type.100: type = facet_type <@Factory, @Factory(%C)> [concrete] -// CHECK:STDOUT: %Self.cfc: %Factory.type.100 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Make.type.320: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%C, %Self.399) [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Make.aa1: %Factory.WithSelf.Make.type.320 = struct_value () [symbolic] -// CHECK:STDOUT: %Factory.assoc_type.223: type = assoc_entity_type @Factory, @Factory(%C) [concrete] -// CHECK:STDOUT: %assoc0.738: %Factory.assoc_type.223 = assoc_entity element0, imports.%Main.import_ref.0e8 [concrete] -// CHECK:STDOUT: %Factory.WithSelf.Method.type.7a2: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%C, %Self.399) [symbolic] -// CHECK:STDOUT: %Factory.WithSelf.Method.b11: %Factory.WithSelf.Method.type.7a2 = struct_value () [symbolic] -// CHECK:STDOUT: %assoc1.7c2: %Factory.assoc_type.223 = assoc_entity element1, imports.%Main.import_ref.7e5 [concrete] -// CHECK:STDOUT: %assoc0.584: %Factory.assoc_type.802 = assoc_entity element0, imports.%Main.import_ref.867 [symbolic] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] +// CHECK:STDOUT: %Factory.type.8fc: type = facet_type <@Factory, @Factory(%C)> [concrete] +// CHECK:STDOUT: %Self.60c: %Factory.type.8fc = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Make.type.f60: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%C, %Self.3e3) [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Make.597: %Factory.WithSelf.Make.type.f60 = struct_value () [symbolic] +// CHECK:STDOUT: %Factory.assoc_type.fc0: type = assoc_entity_type @Factory, @Factory(%C) [concrete] +// CHECK:STDOUT: %assoc0.c53: %Factory.assoc_type.fc0 = assoc_entity element0, imports.%Main.import_ref.0a8 [concrete] +// CHECK:STDOUT: %Factory.WithSelf.Method.type.b2d: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%C, %Self.3e3) [symbolic] +// CHECK:STDOUT: %Factory.WithSelf.Method.e0d: %Factory.WithSelf.Method.type.b2d = struct_value () [symbolic] +// CHECK:STDOUT: %assoc1.f6c: %Factory.assoc_type.fc0 = assoc_entity element1, imports.%Main.import_ref.ad0 [concrete] +// CHECK:STDOUT: %assoc0.c0a: %Factory.assoc_type.0ed = assoc_entity element0, imports.%Main.import_ref.587 [symbolic] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] // CHECK:STDOUT: %InstanceC.type: type = fn_type @InstanceC [concrete] // CHECK:STDOUT: %InstanceC: %InstanceC.type = struct_value () [concrete] -// CHECK:STDOUT: %assoc1.9ce: %Factory.assoc_type.802 = assoc_entity element1, imports.%Main.import_ref.755 [symbolic] +// CHECK:STDOUT: %assoc1.c00: %Factory.assoc_type.0ed = assoc_entity element1, imports.%Main.import_ref.82f [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.Factory: %Factory.type.db1 = import_ref Main//factory, Factory, loaded [concrete = constants.%Factory.generic] +// CHECK:STDOUT: %Main.Factory: %Factory.type.9da = import_ref Main//factory, Factory, loaded [concrete = constants.%Factory.generic] // CHECK:STDOUT: %Main.A: type = import_ref Main//factory, A, loaded [concrete = constants.%A] // CHECK:STDOUT: %Main.B = import_ref Main//factory, B, unloaded // CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { @@ -1475,29 +1475,29 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//factory, loc12_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.671 = import_ref Main//factory, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.295: @Factory.WithSelf.%Factory.assoc_type (%Factory.assoc_type.802) = import_ref Main//factory, loc6_17, loaded [symbolic = @Factory.WithSelf.%assoc0 (constants.%assoc0.584)] -// CHECK:STDOUT: %Main.import_ref.1dd: @Factory.WithSelf.%Factory.assoc_type (%Factory.assoc_type.802) = import_ref Main//factory, loc8_31, loaded [symbolic = @Factory.WithSelf.%assoc1 (constants.%assoc1.9ce)] +// CHECK:STDOUT: %Main.import_ref.7b8 = import_ref Main//factory, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.a26: @Factory.WithSelf.%Factory.assoc_type (%Factory.assoc_type.0ed) = import_ref Main//factory, loc6_17, loaded [symbolic = @Factory.WithSelf.%assoc0 (constants.%assoc0.c0a)] +// CHECK:STDOUT: %Main.import_ref.1ef: @Factory.WithSelf.%Factory.assoc_type (%Factory.assoc_type.0ed) = import_ref Main//factory, loc8_31, loaded [symbolic = @Factory.WithSelf.%assoc1 (constants.%assoc1.c00)] // CHECK:STDOUT: %Main.Make = import_ref Main//factory, Make, unloaded // CHECK:STDOUT: %Main.Method = import_ref Main//factory, Method, unloaded -// CHECK:STDOUT: %Main.import_ref.7e5: @Factory.WithSelf.%Factory.WithSelf.Method.type (%Factory.WithSelf.Method.type.5f0) = import_ref Main//factory, loc8_31, loaded [symbolic = @Factory.WithSelf.%Factory.WithSelf.Method (constants.%Factory.WithSelf.Method.2bf)] +// CHECK:STDOUT: %Main.import_ref.ad0: @Factory.WithSelf.%Factory.WithSelf.Method.type (%Factory.WithSelf.Method.type.d40) = import_ref Main//factory, loc8_31, loaded [symbolic = @Factory.WithSelf.%Factory.WithSelf.Method (constants.%Factory.WithSelf.Method.459)] // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//factory, loc4_20, loaded [symbolic = @Factory.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.301bf0.2: @Factory.%Factory.type (%Factory.type.300) = import_ref Main//factory, loc4_29, loaded [symbolic = @Factory.%Self (constants.%Self.399)] -// CHECK:STDOUT: %Main.import_ref.0e8: @Factory.WithSelf.%Factory.WithSelf.Make.type (%Factory.WithSelf.Make.type.2f7) = import_ref Main//factory, loc6_17, loaded [symbolic = @Factory.WithSelf.%Factory.WithSelf.Make (constants.%Factory.WithSelf.Make.f06)] +// CHECK:STDOUT: %Main.import_ref.0f8e01.2: @Factory.%Factory.type (%Factory.type.711) = import_ref Main//factory, loc4_29, loaded [symbolic = @Factory.%Self (constants.%Self.3e3)] +// CHECK:STDOUT: %Main.import_ref.0a8: @Factory.WithSelf.%Factory.WithSelf.Make.type (%Factory.WithSelf.Make.type.cf7) = import_ref Main//factory, loc6_17, loaded [symbolic = @Factory.WithSelf.%Factory.WithSelf.Make (constants.%Factory.WithSelf.Make.86c)] // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//factory, loc4_20, loaded [symbolic = @Factory.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.301bf0.3: @Factory.%Factory.type (%Factory.type.300) = import_ref Main//factory, loc4_29, loaded [symbolic = @Factory.%Self (constants.%Self.399)] -// CHECK:STDOUT: %Main.import_ref.159 = import_ref Main//factory, loc4_29, unloaded +// CHECK:STDOUT: %Main.import_ref.0f8e01.3: @Factory.%Factory.type (%Factory.type.711) = import_ref Main//factory, loc4_29, loaded [symbolic = @Factory.%Self (constants.%Self.3e3)] +// CHECK:STDOUT: %Main.import_ref.a45 = import_ref Main//factory, loc4_29, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//factory, loc4_20, loaded [symbolic = @Factory.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.9d3 = import_ref Main//factory, loc14_22, unloaded +// CHECK:STDOUT: %Main.import_ref.97f = import_ref Main//factory, loc14_22, unloaded // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//factory, loc11_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.5d6 = import_ref Main//factory, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.abd: type = import_ref Main//factory, loc14_6, loaded [concrete = constants.%A] -// CHECK:STDOUT: %Main.import_ref.96d: type = import_ref Main//factory, loc14_20, loaded [concrete = constants.%Factory.type.bcb] -// CHECK:STDOUT: %Main.import_ref.32b = import_ref Main//factory, loc15_17, unloaded -// CHECK:STDOUT: %Main.import_ref.41a = import_ref Main//factory, loc16_31, unloaded -// CHECK:STDOUT: %Main.import_ref.59e = import_ref Main//factory, loc14_20, unloaded -// CHECK:STDOUT: %Main.import_ref.867 = import_ref Main//factory, loc6_17, unloaded -// CHECK:STDOUT: %Main.import_ref.755 = import_ref Main//factory, loc8_31, unloaded +// CHECK:STDOUT: %Main.import_ref.0ee = import_ref Main//factory, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.239: type = import_ref Main//factory, loc14_6, loaded [concrete = constants.%A] +// CHECK:STDOUT: %Main.import_ref.1d4: type = import_ref Main//factory, loc14_20, loaded [concrete = constants.%Factory.type.5e3] +// CHECK:STDOUT: %Main.import_ref.213 = import_ref Main//factory, loc15_17, unloaded +// CHECK:STDOUT: %Main.import_ref.1ee = import_ref Main//factory, loc16_31, unloaded +// CHECK:STDOUT: %Main.import_ref.ebb = import_ref Main//factory, loc14_20, unloaded +// CHECK:STDOUT: %Main.import_ref.587 = import_ref Main//factory, loc6_17, unloaded +// CHECK:STDOUT: %Main.import_ref.82f = import_ref Main//factory, loc8_31, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1515,22 +1515,22 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %MakeC.decl: %MakeC.type = fn_decl @MakeC [concrete = constants.%MakeC] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref.loc8 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc8 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc8: Core.Form = init_form %C.ref.loc8 [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc8: Core.Form = init_form %C.ref.loc8 [concrete = constants.%.a44] // CHECK:STDOUT: %return.param: ref %C = out_param call_param0 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InstanceC.decl: %InstanceC.type = fn_decl @InstanceC [concrete = constants.%InstanceC] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.ccb = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.ccb = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref.loc16 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.9ef = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9ef = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc16 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc16: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc16: Core.Form = init_form %C.ref.loc16 [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc16: Core.Form = init_form %C.ref.loc16 [concrete = constants.%.a44] // CHECK:STDOUT: %a.param: %A = value_param call_param0 // CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Main.A [concrete = constants.%A] // CHECK:STDOUT: %a: %A = value_binding a, %a.param @@ -1543,40 +1543,40 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.300)] -// CHECK:STDOUT: %Self: @Factory.%Factory.type (%Factory.type.300) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.399)] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.711)] +// CHECK:STDOUT: %Self: @Factory.%Factory.type (%Factory.type.711) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.3e3)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.159 -// CHECK:STDOUT: .Make = imports.%Main.import_ref.295 -// CHECK:STDOUT: .Method = imports.%Main.import_ref.1dd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.a45 +// CHECK:STDOUT: .Make = imports.%Main.import_ref.a26 +// CHECK:STDOUT: .Method = imports.%Main.import_ref.1ef // CHECK:STDOUT: witness = (imports.%Main.Make, imports.%Main.Method) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @A.as.Factory.impl: imports.%Main.import_ref.abd as imports.%Main.import_ref.96d [from "factory.carbon"] { +// CHECK:STDOUT: impl @A.as.Factory.impl: imports.%Main.import_ref.239 as imports.%Main.import_ref.1d4 [from "factory.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Make = imports.%Main.import_ref.32b -// CHECK:STDOUT: .Method = imports.%Main.import_ref.41a -// CHECK:STDOUT: extend imports.%Main.import_ref.59e -// CHECK:STDOUT: witness = imports.%Main.import_ref.9d3 +// CHECK:STDOUT: .Make = imports.%Main.import_ref.213 +// CHECK:STDOUT: .Method = imports.%Main.import_ref.1ee +// CHECK:STDOUT: extend imports.%Main.import_ref.ebb +// CHECK:STDOUT: witness = imports.%Main.import_ref.97f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B [from "factory.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.671 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.7b8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A [from "factory.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.5d6 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0ee // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { @@ -1587,19 +1587,19 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Factory.WithSelf.Method(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.301bf0.2: @Factory.%Factory.type (%Factory.type.300)) [from "factory.carbon"] { +// CHECK:STDOUT: generic fn @Factory.WithSelf.Method(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.0f8e01.2: @Factory.%Factory.type (%Factory.type.711)) [from "factory.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.300)] -// CHECK:STDOUT: %Self: @Factory.WithSelf.Method.%Factory.type (%Factory.type.300) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.399)] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.711)] +// CHECK:STDOUT: %Self: @Factory.WithSelf.Method.%Factory.type (%Factory.type.711) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.3e3)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.6c7)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.b1a)] // CHECK:STDOUT: %.1: Core.Form = init_form %T [symbolic = %.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %T [symbolic = %pattern_type.2 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Factory.WithSelf.Make(imports.%Main.import_ref.b3bc94.3: type, imports.%Main.import_ref.301bf0.3: @Factory.%Factory.type (%Factory.type.300)) [from "factory.carbon"] { +// CHECK:STDOUT: generic fn @Factory.WithSelf.Make(imports.%Main.import_ref.b3bc94.3: type, imports.%Main.import_ref.0f8e01.3: @Factory.%Factory.type (%Factory.type.711)) [from "factory.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.1: Core.Form = init_form %T [symbolic = %.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.51d)] @@ -1610,22 +1610,22 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: fn @MakeC() -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Main.A [concrete = constants.%A] -// CHECK:STDOUT: %Factory.ref: %Factory.type.db1 = name_ref Factory, imports.%Main.Factory [concrete = constants.%Factory.generic] +// CHECK:STDOUT: %Factory.ref: %Factory.type.9da = name_ref Factory, imports.%Main.Factory [concrete = constants.%Factory.generic] // CHECK:STDOUT: %C.ref.loc13: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%C)> [concrete = constants.%Factory.type.100] -// CHECK:STDOUT: %.loc13: %Factory.assoc_type.223 = specific_constant imports.%Main.import_ref.295, @Factory.WithSelf(constants.%C, constants.%Self.399) [concrete = constants.%assoc0.738] -// CHECK:STDOUT: %Make.ref: %Factory.assoc_type.223 = name_ref Make, %.loc13 [concrete = constants.%assoc0.738] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%C)> [concrete = constants.%Factory.type.8fc] +// CHECK:STDOUT: %.loc13: %Factory.assoc_type.fc0 = specific_constant imports.%Main.import_ref.a26, @Factory.WithSelf(constants.%C, constants.%Self.3e3) [concrete = constants.%assoc0.c53] +// CHECK:STDOUT: %Make.ref: %Factory.assoc_type.fc0 = name_ref Make, %.loc13 [concrete = constants.%assoc0.c53] // CHECK:STDOUT: return to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @InstanceC(%a.param: %A) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %A = name_ref a, %a -// CHECK:STDOUT: %Factory.ref: %Factory.type.db1 = name_ref Factory, imports.%Main.Factory [concrete = constants.%Factory.generic] +// CHECK:STDOUT: %Factory.ref: %Factory.type.9da = name_ref Factory, imports.%Main.Factory [concrete = constants.%Factory.generic] // CHECK:STDOUT: %C.ref.loc21: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%C)> [concrete = constants.%Factory.type.100] -// CHECK:STDOUT: %.loc21: %Factory.assoc_type.223 = specific_constant imports.%Main.import_ref.1dd, @Factory.WithSelf(constants.%C, constants.%Self.399) [concrete = constants.%assoc1.7c2] -// CHECK:STDOUT: %Method.ref: %Factory.assoc_type.223 = name_ref Method, %.loc21 [concrete = constants.%assoc1.7c2] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%C)> [concrete = constants.%Factory.type.8fc] +// CHECK:STDOUT: %.loc21: %Factory.assoc_type.fc0 = specific_constant imports.%Main.import_ref.1ef, @Factory.WithSelf(constants.%C, constants.%Self.3e3) [concrete = constants.%assoc1.f6c] +// CHECK:STDOUT: %Method.ref: %Factory.assoc_type.fc0 = name_ref Method, %.loc21 [concrete = constants.%assoc1.f6c] // CHECK:STDOUT: return to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1633,19 +1633,19 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Factory.WithSelf(constants.%T, constants.%Self.399) {} +// CHECK:STDOUT: specific @Factory.WithSelf(constants.%T, constants.%Self.3e3) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Factory.WithSelf.Method(constants.%T, constants.%Self.399) { +// CHECK:STDOUT: specific @Factory.WithSelf.Method(constants.%T, constants.%Self.3e3) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.300 -// CHECK:STDOUT: %Self => constants.%Self.399 +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.711 +// CHECK:STDOUT: %Self => constants.%Self.3e3 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.6c7 +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.b1a // CHECK:STDOUT: %.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Factory.WithSelf.Make(constants.%T, constants.%Self.399) { +// CHECK:STDOUT: specific @Factory.WithSelf.Make(constants.%T, constants.%Self.3e3) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %.1 => constants.%.184 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d @@ -1655,29 +1655,29 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.bcb -// CHECK:STDOUT: %Self => constants.%Self.d48 +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.5e3 +// CHECK:STDOUT: %Self => constants.%Self.739 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Factory(constants.%C) { // CHECK:STDOUT: %T => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.100 -// CHECK:STDOUT: %Self => constants.%Self.cfc +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.8fc +// CHECK:STDOUT: %Self => constants.%Self.60c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Factory.WithSelf(constants.%C, constants.%Self.399) { +// CHECK:STDOUT: specific @Factory.WithSelf(constants.%C, constants.%Self.3e3) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%C -// CHECK:STDOUT: %Factory.type => constants.%Factory.type.100 -// CHECK:STDOUT: %Self => constants.%Self.399 -// CHECK:STDOUT: %Factory.WithSelf.Make.type => constants.%Factory.WithSelf.Make.type.320 -// CHECK:STDOUT: %Factory.WithSelf.Make => constants.%Factory.WithSelf.Make.aa1 -// CHECK:STDOUT: %Factory.assoc_type => constants.%Factory.assoc_type.223 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.738 -// CHECK:STDOUT: %Factory.WithSelf.Method.type => constants.%Factory.WithSelf.Method.type.7a2 -// CHECK:STDOUT: %Factory.WithSelf.Method => constants.%Factory.WithSelf.Method.b11 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.7c2 +// CHECK:STDOUT: %Factory.type => constants.%Factory.type.8fc +// CHECK:STDOUT: %Self => constants.%Self.3e3 +// CHECK:STDOUT: %Factory.WithSelf.Make.type => constants.%Factory.WithSelf.Make.type.f60 +// CHECK:STDOUT: %Factory.WithSelf.Make => constants.%Factory.WithSelf.Make.597 +// CHECK:STDOUT: %Factory.assoc_type => constants.%Factory.assoc_type.fc0 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c53 +// CHECK:STDOUT: %Factory.WithSelf.Method.type => constants.%Factory.WithSelf.Method.type.b2d +// CHECK:STDOUT: %Factory.WithSelf.Method => constants.%Factory.WithSelf.Method.e0d +// CHECK:STDOUT: %assoc1 => constants.%assoc1.f6c // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/alias.carbon b/toolchain/check/testdata/impl/lookup/alias.carbon index abd3aff40ce5..e36dfd318dcc 100644 --- a/toolchain/check/testdata/impl/lookup/alias.carbon +++ b/toolchain/check/testdata/impl/lookup/alias.carbon @@ -34,9 +34,9 @@ fn G(c: C) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.4d3: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.a73: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.8d9: %HasF.WithSelf.F.type.4d3 = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.851: %HasF.WithSelf.F.type.a73 = struct_value () [symbolic] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] @@ -46,12 +46,12 @@ fn G(c: C) { // CHECK:STDOUT: %C.as.HasF.impl.F.type: type = fn_type @C.as.HasF.impl.F [concrete] // CHECK:STDOUT: %C.as.HasF.impl.F: %C.as.HasF.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, (%HasF.impl_witness) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.type.af2: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.88c: %HasF.WithSelf.F.type.af2 = struct_value () [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.type.263: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.3c7: %HasF.WithSelf.F.type.263 = struct_value () [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %.ebd: type = fn_type_with_self_type %HasF.WithSelf.F.type.af2, %HasF.facet [concrete] +// CHECK:STDOUT: %.34f: type = fn_type_with_self_type %HasF.WithSelf.F.type.263, %HasF.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -81,7 +81,7 @@ fn G(c: C) { // CHECK:STDOUT: %HasF.WithSelf.decl = interface_with_self_decl @HasF [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.4d3) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.8d9)] {} {} +// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.a73) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.851)] {} {} // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %HasF.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -129,11 +129,11 @@ fn G(c: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref.loc28: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %G.ref.loc28: %HasF.assoc_type = name_ref G, @C.%G [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc28: %.ebd = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F] +// CHECK:STDOUT: %impl.elem0.loc28: %.34f = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F] // CHECK:STDOUT: %C.as.HasF.impl.F.call.loc28: init %empty_tuple.type = call %impl.elem0.loc28() // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %G.ref.loc29: %HasF.assoc_type = name_ref G, @C.%G [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc29: %.ebd = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F] +// CHECK:STDOUT: %impl.elem0.loc29: %.34f = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F] // CHECK:STDOUT: %C.as.HasF.impl.F.call.loc29: init %empty_tuple.type = call %impl.elem0.loc29() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -141,8 +141,8 @@ fn G(c: C) { // CHECK:STDOUT: specific @HasF.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.4d3 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.8d9 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.a73 +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.851 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self) {} @@ -150,8 +150,8 @@ fn G(c: C) { // CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%HasF.facet -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.af2 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.88c +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.263 +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.3c7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet) {} diff --git a/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon b/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon index dfea8b368a64..09bd9299a3bb 100644 --- a/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon +++ b/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon @@ -50,55 +50,55 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.ed0: type = facet_access_type %Self.179 [symbolic] -// CHECK:STDOUT: %pattern_type.a3c: type = pattern_type %Self.as_type.ed0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.II.type.d8e: type = fn_type @I.WithSelf.II, @I.WithSelf(%Self.179) [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.c84: type = facet_access_type %Self.37e [symbolic] +// CHECK:STDOUT: %pattern_type.c60: type = pattern_type %Self.as_type.c84 [symbolic] +// CHECK:STDOUT: %I.WithSelf.II.type.8a2: type = fn_type @I.WithSelf.II, @I.WithSelf(%Self.37e) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %I.WithSelf.II.e73: %I.WithSelf.II.type.d8e = struct_value () [symbolic] +// CHECK:STDOUT: %I.WithSelf.II.09c: %I.WithSelf.II.type.8a2 = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.fc2: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.II.decl [concrete] +// CHECK:STDOUT: %assoc0.153: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.II.decl [concrete] // CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete] -// CHECK:STDOUT: %Self.fd8: %J.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.e52: type = facet_access_type %Self.fd8 [symbolic] -// CHECK:STDOUT: %pattern_type.9d0: type = pattern_type %Self.as_type.e52 [symbolic] -// CHECK:STDOUT: %J.WithSelf.JJ.type.c06: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%Self.fd8) [symbolic] -// CHECK:STDOUT: %J.WithSelf.JJ.1a7: %J.WithSelf.JJ.type.c06 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.653: %J.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.976: type = facet_access_type %Self.653 [symbolic] +// CHECK:STDOUT: %pattern_type.506: type = pattern_type %Self.as_type.976 [symbolic] +// CHECK:STDOUT: %J.WithSelf.JJ.type.e02: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%Self.653) [symbolic] +// CHECK:STDOUT: %J.WithSelf.JJ.1d0: %J.WithSelf.JJ.type.e02 = struct_value () [symbolic] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] -// CHECK:STDOUT: %assoc0.95e: %J.assoc_type = assoc_entity element0, @J.WithSelf.%J.WithSelf.JJ.decl [concrete] +// CHECK:STDOUT: %assoc0.7d8: %J.assoc_type = assoc_entity element0, @J.WithSelf.%J.WithSelf.JJ.decl [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %BitAndWith.type.fd8: type = generic_interface_type @BitAndWith [concrete] -// CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.fd8 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.2af: type = facet_type <@BitAndWith, @BitAndWith(type)> [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] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.2af = facet_value type, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.5d1: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %.9ee: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.5d1, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %I.type, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %facet_type: type = facet_type <@I & @J> [concrete] -// CHECK:STDOUT: %pattern_type.c6b: type = pattern_type %facet_type [concrete] +// CHECK:STDOUT: %pattern_type.fb7: type = pattern_type %facet_type [concrete] // CHECK:STDOUT: %T: %facet_type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.2f3: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.936: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] -// CHECK:STDOUT: %I.facet.88b: %I.type = facet_value %T.as_type, (%I.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %I.facet.d3d: %I.type = facet_value %T.as_type, (%I.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T, @J [symbolic] -// CHECK:STDOUT: %J.facet.ce2: %J.type = facet_value %T.as_type, (%J.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %I.WithSelf.II.type.a44: type = fn_type @I.WithSelf.II, @I.WithSelf(%T) [symbolic] -// CHECK:STDOUT: %I.WithSelf.II.162: %I.WithSelf.II.type.a44 = struct_value () [symbolic] -// CHECK:STDOUT: %J.WithSelf.JJ.type.b00: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%T) [symbolic] -// CHECK:STDOUT: %J.WithSelf.JJ.9fb: %J.WithSelf.JJ.type.b00 = struct_value () [symbolic] -// CHECK:STDOUT: %J.WithSelf.JJ.type.35b: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%J.facet.ce2) [symbolic] -// CHECK:STDOUT: %J.WithSelf.JJ.046: %J.WithSelf.JJ.type.35b = struct_value () [symbolic] -// CHECK:STDOUT: %.289: type = fn_type_with_self_type %J.WithSelf.JJ.type.35b, %J.facet.ce2 [symbolic] -// CHECK:STDOUT: %impl.elem0: %.289 = impl_witness_access %J.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @J.WithSelf.JJ(%J.facet.ce2) [symbolic] +// CHECK:STDOUT: %J.facet.cbc: %J.type = facet_value %T.as_type, (%J.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %I.WithSelf.II.type.21c: type = fn_type @I.WithSelf.II, @I.WithSelf(%T) [symbolic] +// CHECK:STDOUT: %I.WithSelf.II.a59: %I.WithSelf.II.type.21c = struct_value () [symbolic] +// CHECK:STDOUT: %J.WithSelf.JJ.type.f9e: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%T) [symbolic] +// CHECK:STDOUT: %J.WithSelf.JJ.e0c: %J.WithSelf.JJ.type.f9e = struct_value () [symbolic] +// CHECK:STDOUT: %J.WithSelf.JJ.type.2d7: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%J.facet.cbc) [symbolic] +// CHECK:STDOUT: %J.WithSelf.JJ.6d6: %J.WithSelf.JJ.type.2d7 = struct_value () [symbolic] +// CHECK:STDOUT: %.443: type = fn_type_with_self_type %J.WithSelf.JJ.type.2d7, %J.facet.cbc [symbolic] +// CHECK:STDOUT: %impl.elem0: %.443 = impl_witness_access %J.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @J.WithSelf.JJ(%J.facet.cbc) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] @@ -106,33 +106,33 @@ fn G() { // CHECK:STDOUT: %pattern_type.f79: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.as.I.impl.II.type: type = fn_type @C.as.I.impl.II [concrete] // CHECK:STDOUT: %C.as.I.impl.II: %C.as.I.impl.II.type = struct_value () [concrete] -// CHECK:STDOUT: %I.facet.7e4: %I.type = facet_value %C, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.II.type.f50: type = fn_type @I.WithSelf.II, @I.WithSelf(%I.facet.7e4) [concrete] -// CHECK:STDOUT: %I.WithSelf.II.063: %I.WithSelf.II.type.f50 = struct_value () [concrete] +// CHECK:STDOUT: %I.facet.947: %I.type = facet_value %C, (%I.impl_witness) [concrete] +// CHECK:STDOUT: %I.WithSelf.II.type.9c8: type = fn_type @I.WithSelf.II, @I.WithSelf(%I.facet.947) [concrete] +// CHECK:STDOUT: %I.WithSelf.II.622: %I.WithSelf.II.type.9c8 = struct_value () [concrete] // CHECK:STDOUT: %J.impl_witness: = impl_witness @C.as.J.impl.%J.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.J.impl.JJ.type: type = fn_type @C.as.J.impl.JJ [concrete] // CHECK:STDOUT: %C.as.J.impl.JJ: %C.as.J.impl.JJ.type = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.08d: %J.type = facet_value %C, (%J.impl_witness) [concrete] -// CHECK:STDOUT: %J.WithSelf.JJ.type.629: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%J.facet.08d) [concrete] -// CHECK:STDOUT: %J.WithSelf.JJ.2fb: %J.WithSelf.JJ.type.629 = struct_value () [concrete] +// CHECK:STDOUT: %J.facet.a74: %J.type = facet_value %C, (%J.impl_witness) [concrete] +// CHECK:STDOUT: %J.WithSelf.JJ.type.95f: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%J.facet.a74) [concrete] +// CHECK:STDOUT: %J.WithSelf.JJ.d09: %J.WithSelf.JJ.type.95f = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %.5d3: ref %C = temporary invalid, %C.val [concrete] // CHECK:STDOUT: %C.type.facet: %type = facet_value %C, () [concrete] -// CHECK:STDOUT: %J.WithSelf.JJ.type.6fd: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%C.type.facet) [concrete] -// CHECK:STDOUT: %J.WithSelf.JJ.600: %J.WithSelf.JJ.type.6fd = struct_value () [concrete] -// CHECK:STDOUT: %I.WithSelf.II.type.3e3: type = fn_type @I.WithSelf.II, @I.WithSelf(%C.type.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.II.6fc: %I.WithSelf.II.type.3e3 = struct_value () [concrete] -// CHECK:STDOUT: %.c92: type = fn_type_with_self_type %J.WithSelf.JJ.type.629, %J.facet.08d [concrete] +// CHECK:STDOUT: %J.WithSelf.JJ.type.383: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%C.type.facet) [concrete] +// CHECK:STDOUT: %J.WithSelf.JJ.87d: %J.WithSelf.JJ.type.383 = struct_value () [concrete] +// CHECK:STDOUT: %I.WithSelf.II.type.92c: type = fn_type @I.WithSelf.II, @I.WithSelf(%C.type.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.II.03d: %I.WithSelf.II.type.92c = struct_value () [concrete] +// CHECK:STDOUT: %.dd2: type = fn_type_with_self_type %J.WithSelf.JJ.type.95f, %J.facet.a74 [concrete] // CHECK:STDOUT: %C.as.J.impl.JJ.bound: = bound_method %.5d3, %C.as.J.impl.JJ [concrete] // CHECK:STDOUT: %facet_value: %facet_type = facet_value %C, (%I.impl_witness, %J.impl_witness) [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%facet_value) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc46_11.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.5d3, %Destroy.Op.2dd605.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc46_11.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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -142,9 +142,9 @@ fn G() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.fd8 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @type.as.BitAndWith.impl [concrete] +// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.a06 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @type.as.BitAndWith.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -160,15 +160,15 @@ fn G() { // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %T.patt: %pattern_type.c6b = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type (%pattern_type.2f3) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type (%pattern_type.2f3) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.fb7 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type (%pattern_type.936) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type (%pattern_type.936) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc22_12.1: type = splice_block %.loc22_12.3 [concrete = constants.%facet_type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %I.ref.loc22: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %J.ref.loc22: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %impl.elem0.loc22: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc22: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method.loc22: = bound_method %I.ref.loc22, %impl.elem0.loc22 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method.loc22(%I.ref.loc22, %J.ref.loc22) [concrete = constants.%facet_type] // CHECK:STDOUT: %.loc22_12.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type] @@ -187,23 +187,23 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %I.WithSelf.II.decl: @I.WithSelf.%I.WithSelf.II.type (%I.WithSelf.II.type.d8e) = fn_decl @I.WithSelf.II [symbolic = @I.WithSelf.%I.WithSelf.II (constants.%I.WithSelf.II.e73)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.II.%pattern_type (%pattern_type.a3c) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.II.%pattern_type (%pattern_type.a3c) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %I.WithSelf.II.decl: @I.WithSelf.%I.WithSelf.II.type (%I.WithSelf.II.type.8a2) = fn_decl @I.WithSelf.II [symbolic = @I.WithSelf.%I.WithSelf.II (constants.%I.WithSelf.II.09c)] { +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.II.%pattern_type (%pattern_type.c60) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.II.%pattern_type (%pattern_type.c60) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.WithSelf.II.%Self.as_type.loc16_15.1 (%Self.as_type.ed0) = value_param call_param0 -// CHECK:STDOUT: %.loc16_15.1: type = splice_block %.loc16_15.2 [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.ed0)] { -// CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.179)] -// CHECK:STDOUT: %Self.as_type.loc16_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.ed0)] -// CHECK:STDOUT: %.loc16_15.2: type = converted %Self.ref, %Self.as_type.loc16_15.2 [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.ed0)] +// CHECK:STDOUT: %self.param: @I.WithSelf.II.%Self.as_type.loc16_15.1 (%Self.as_type.c84) = value_param call_param0 +// CHECK:STDOUT: %.loc16_15.1: type = splice_block %.loc16_15.2 [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.c84)] { +// CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.37e)] +// CHECK:STDOUT: %Self.as_type.loc16_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.c84)] +// CHECK:STDOUT: %.loc16_15.2: type = converted %Self.ref, %Self.as_type.loc16_15.2 [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.c84)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.II.%Self.as_type.loc16_15.1 (%Self.as_type.ed0) = value_binding self, %self.param +// CHECK:STDOUT: %self: @I.WithSelf.II.%Self.as_type.loc16_15.1 (%Self.as_type.c84) = value_binding self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.II.decl [concrete = constants.%assoc0.fc2] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.II.decl [concrete = constants.%assoc0.153] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -216,23 +216,23 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @J { -// CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = constants.%Self.fd8] +// CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = constants.%Self.653] // CHECK:STDOUT: %J.WithSelf.decl = interface_with_self_decl @J [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %J.WithSelf.JJ.decl: @J.WithSelf.%J.WithSelf.JJ.type (%J.WithSelf.JJ.type.c06) = fn_decl @J.WithSelf.JJ [symbolic = @J.WithSelf.%J.WithSelf.JJ (constants.%J.WithSelf.JJ.1a7)] { -// CHECK:STDOUT: %self.param_patt: @J.WithSelf.JJ.%pattern_type (%pattern_type.9d0) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @J.WithSelf.JJ.%pattern_type (%pattern_type.9d0) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %J.WithSelf.JJ.decl: @J.WithSelf.%J.WithSelf.JJ.type (%J.WithSelf.JJ.type.e02) = fn_decl @J.WithSelf.JJ [symbolic = @J.WithSelf.%J.WithSelf.JJ (constants.%J.WithSelf.JJ.1d0)] { +// CHECK:STDOUT: %self.param_patt: @J.WithSelf.JJ.%pattern_type (%pattern_type.506) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @J.WithSelf.JJ.%pattern_type (%pattern_type.506) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @J.WithSelf.JJ.%Self.as_type.loc19_15.1 (%Self.as_type.e52) = value_param call_param0 -// CHECK:STDOUT: %.loc19_15.1: type = splice_block %.loc19_15.2 [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.e52)] { -// CHECK:STDOUT: %Self.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self.fd8)] -// CHECK:STDOUT: %Self.as_type.loc19_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.e52)] -// CHECK:STDOUT: %.loc19_15.2: type = converted %Self.ref, %Self.as_type.loc19_15.2 [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.e52)] +// CHECK:STDOUT: %self.param: @J.WithSelf.JJ.%Self.as_type.loc19_15.1 (%Self.as_type.976) = value_param call_param0 +// CHECK:STDOUT: %.loc19_15.1: type = splice_block %.loc19_15.2 [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.976)] { +// CHECK:STDOUT: %Self.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self.653)] +// CHECK:STDOUT: %Self.as_type.loc19_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.976)] +// CHECK:STDOUT: %.loc19_15.2: type = converted %Self.ref, %Self.as_type.loc19_15.2 [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.976)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @J.WithSelf.JJ.%Self.as_type.loc19_15.1 (%Self.as_type.e52) = value_binding self, %self.param +// CHECK:STDOUT: %self: @J.WithSelf.JJ.%Self.as_type.loc19_15.1 (%Self.as_type.976) = value_binding self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, %J.WithSelf.JJ.decl [concrete = constants.%assoc0.95e] +// CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, %J.WithSelf.JJ.decl [concrete = constants.%assoc0.7d8] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -300,35 +300,35 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.II(@I.%Self: %I.type) { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.179)] -// CHECK:STDOUT: %Self.as_type.loc16_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.ed0)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_15.1 [symbolic = %pattern_type (constants.%pattern_type.a3c)] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.37e)] +// CHECK:STDOUT: %Self.as_type.loc16_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.c84)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_15.1 [symbolic = %pattern_type (constants.%pattern_type.c60)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.II.%Self.as_type.loc16_15.1 (%Self.as_type.ed0)); +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.II.%Self.as_type.loc16_15.1 (%Self.as_type.c84)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J.WithSelf.JJ(@J.%Self: %J.type) { -// CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.fd8)] -// CHECK:STDOUT: %Self.as_type.loc19_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.e52)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc19_15.1 [symbolic = %pattern_type (constants.%pattern_type.9d0)] +// CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.653)] +// CHECK:STDOUT: %Self.as_type.loc19_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.976)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc19_15.1 [symbolic = %pattern_type (constants.%pattern_type.506)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @J.WithSelf.JJ.%Self.as_type.loc19_15.1 (%Self.as_type.e52)); +// CHECK:STDOUT: fn(%self.param: @J.WithSelf.JJ.%Self.as_type.loc19_15.1 (%Self.as_type.976)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc22_7.2: %facet_type) { // CHECK:STDOUT: %T.loc22_7.1: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc22_7.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc22_20.1: type = facet_access_type %T.loc22_7.1 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc22_20.1 [symbolic = %pattern_type (constants.%pattern_type.2f3)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc22_20.1 [symbolic = %pattern_type (constants.%pattern_type.936)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc22_20.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc22_7.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %I.facet.loc26_18.2: %I.type = facet_value %T.as_type.loc22_20.1, (%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.88b)] +// CHECK:STDOUT: %I.facet.loc26_18.2: %I.type = facet_value %T.as_type.loc22_20.1, (%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.d3d)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc22_7.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness)] -// CHECK:STDOUT: %J.facet.loc26_33.2: %J.type = facet_value %T.as_type.loc22_20.1, (%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.ce2)] -// CHECK:STDOUT: %J.WithSelf.JJ.type: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%J.facet.loc26_33.2) [symbolic = %J.WithSelf.JJ.type (constants.%J.WithSelf.JJ.type.35b)] -// CHECK:STDOUT: %.loc26_69: type = fn_type_with_self_type %J.WithSelf.JJ.type, %J.facet.loc26_33.2 [symbolic = %.loc26_69 (constants.%.289)] -// CHECK:STDOUT: %impl.elem0.loc26_69.2: @F.%.loc26_69 (%.289) = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_69.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %J.facet.loc26_33.2: %J.type = facet_value %T.as_type.loc22_20.1, (%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.cbc)] +// CHECK:STDOUT: %J.WithSelf.JJ.type: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%J.facet.loc26_33.2) [symbolic = %J.WithSelf.JJ.type (constants.%J.WithSelf.JJ.type.2d7)] +// CHECK:STDOUT: %.loc26_69: type = fn_type_with_self_type %J.WithSelf.JJ.type, %J.facet.loc26_33.2 [symbolic = %.loc26_69 (constants.%.443)] +// CHECK:STDOUT: %impl.elem0.loc26_69.2: @F.%.loc26_69 (%.443) = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_69.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc26_69.2: = specific_impl_function %impl.elem0.loc26_69.2, @J.WithSelf.JJ(%J.facet.loc26_33.2) [symbolic = %specific_impl_fn.loc26_69.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc22_20.1 (%T.as_type)) { @@ -337,32 +337,32 @@ fn G() { // CHECK:STDOUT: %T.ref.loc26: %facet_type = name_ref T, %T.loc22_7.2 [symbolic = %T.loc22_7.1 (constants.%T)] // CHECK:STDOUT: %I.ref.loc26_21: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %T.as_type.loc26: type = facet_access_type %T.ref.loc26 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] -// CHECK:STDOUT: %I.facet.loc26_18.1: %I.type = facet_value %T.as_type.loc26, (constants.%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.88b)] -// CHECK:STDOUT: %.loc26_18: %I.type = converted %T.ref.loc26, %I.facet.loc26_18.1 [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.88b)] +// CHECK:STDOUT: %I.facet.loc26_18.1: %I.type = facet_value %T.as_type.loc26, (constants.%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.d3d)] +// CHECK:STDOUT: %.loc26_18: %I.type = converted %T.ref.loc26, %I.facet.loc26_18.1 [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.d3d)] // CHECK:STDOUT: %.loc26_27: type = type_literal type [concrete = type] // CHECK:STDOUT: %as_type.loc26_24: type = facet_access_type %.loc26_18 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc26_24: type = converted %.loc26_18, %as_type.loc26_24 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %J.ref.loc26_36: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %J.facet.loc26_33.1: %J.type = facet_value %.loc26_24, (constants.%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.ce2)] -// CHECK:STDOUT: %.loc26_33: %J.type = converted %.loc26_24, %J.facet.loc26_33.1 [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.ce2)] +// CHECK:STDOUT: %J.facet.loc26_33.1: %J.type = facet_value %.loc26_24, (constants.%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.cbc)] +// CHECK:STDOUT: %.loc26_33: %J.type = converted %.loc26_24, %J.facet.loc26_33.1 [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.cbc)] // CHECK:STDOUT: %.loc26_42: type = type_literal type [concrete = type] // CHECK:STDOUT: %as_type.loc26_39: type = facet_access_type %.loc26_33 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc26_39: type = converted %.loc26_33, %as_type.loc26_39 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %I.ref.loc26_51: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %I.facet.loc26_48: %I.type = facet_value %.loc26_39, (constants.%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.88b)] -// CHECK:STDOUT: %.loc26_48: %I.type = converted %.loc26_39, %I.facet.loc26_48 [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.88b)] +// CHECK:STDOUT: %I.facet.loc26_48: %I.type = facet_value %.loc26_39, (constants.%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.d3d)] +// CHECK:STDOUT: %.loc26_48: %I.type = converted %.loc26_39, %I.facet.loc26_48 [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.d3d)] // CHECK:STDOUT: %.loc26_57: type = type_literal type [concrete = type] // CHECK:STDOUT: %as_type.loc26_54: type = facet_access_type %.loc26_48 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc26_54: type = converted %.loc26_48, %as_type.loc26_54 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %J.ref.loc26_66: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %J.facet.loc26_63: %J.type = facet_value %.loc26_54, (constants.%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.ce2)] -// CHECK:STDOUT: %.loc26_63: %J.type = converted %.loc26_54, %J.facet.loc26_63 [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.ce2)] +// CHECK:STDOUT: %J.facet.loc26_63: %J.type = facet_value %.loc26_54, (constants.%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.cbc)] +// CHECK:STDOUT: %.loc26_63: %J.type = converted %.loc26_54, %J.facet.loc26_63 [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.cbc)] // CHECK:STDOUT: %as_type.loc26_67: type = facet_access_type %.loc26_63 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc26_67: type = converted %.loc26_63, %as_type.loc26_67 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] -// CHECK:STDOUT: %JJ.ref: %J.assoc_type = name_ref JJ, @J.WithSelf.%assoc0 [concrete = constants.%assoc0.95e] -// CHECK:STDOUT: %impl.elem0.loc26_69.1: @F.%.loc26_69 (%.289) = impl_witness_access constants.%J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_69.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %JJ.ref: %J.assoc_type = name_ref JJ, @J.WithSelf.%assoc0 [concrete = constants.%assoc0.7d8] +// CHECK:STDOUT: %impl.elem0.loc26_69.1: @F.%.loc26_69 (%.443) = impl_witness_access constants.%J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_69.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc26_69: = bound_method %t.ref, %impl.elem0.loc26_69.1 -// CHECK:STDOUT: %specific_impl_fn.loc26_69.1: = specific_impl_function %impl.elem0.loc26_69.1, @J.WithSelf.JJ(constants.%J.facet.ce2) [symbolic = %specific_impl_fn.loc26_69.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc26_69.1: = specific_impl_function %impl.elem0.loc26_69.1, @J.WithSelf.JJ(constants.%J.facet.cbc) [symbolic = %specific_impl_fn.loc26_69.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc26_73: = bound_method %t.ref, %specific_impl_fn.loc26_69.1 // CHECK:STDOUT: %J.WithSelf.JJ.call: init %empty_tuple.type = call %bound_method.loc26_73(%t.ref) // CHECK:STDOUT: return @@ -379,31 +379,31 @@ fn G() { // CHECK:STDOUT: %.loc40_8.1: init %C = converted %.loc40_6.1, %.loc40_6.3 [concrete = constants.%C.val] // CHECK:STDOUT: %C.ref.loc40_24: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %I.ref.loc40_29: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %I.facet.loc40_26: %I.type = facet_value %C.ref.loc40_24, (constants.%I.impl_witness) [concrete = constants.%I.facet.7e4] -// CHECK:STDOUT: %.loc40_26: %I.type = converted %C.ref.loc40_24, %I.facet.loc40_26 [concrete = constants.%I.facet.7e4] +// CHECK:STDOUT: %I.facet.loc40_26: %I.type = facet_value %C.ref.loc40_24, (constants.%I.impl_witness) [concrete = constants.%I.facet.947] +// CHECK:STDOUT: %.loc40_26: %I.type = converted %C.ref.loc40_24, %I.facet.loc40_26 [concrete = constants.%I.facet.947] // CHECK:STDOUT: %.loc40_35: type = type_literal type [concrete = type] // CHECK:STDOUT: %as_type.loc40_32: type = facet_access_type %.loc40_26 [concrete = constants.%C] // CHECK:STDOUT: %.loc40_32: type = converted %.loc40_26, %as_type.loc40_32 [concrete = constants.%C] // CHECK:STDOUT: %J.ref.loc40_44: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %J.facet.loc40_41: %J.type = facet_value %.loc40_32, (constants.%J.impl_witness) [concrete = constants.%J.facet.08d] -// CHECK:STDOUT: %.loc40_41: %J.type = converted %.loc40_32, %J.facet.loc40_41 [concrete = constants.%J.facet.08d] +// CHECK:STDOUT: %J.facet.loc40_41: %J.type = facet_value %.loc40_32, (constants.%J.impl_witness) [concrete = constants.%J.facet.a74] +// CHECK:STDOUT: %.loc40_41: %J.type = converted %.loc40_32, %J.facet.loc40_41 [concrete = constants.%J.facet.a74] // CHECK:STDOUT: %.loc40_50: type = type_literal type [concrete = type] // CHECK:STDOUT: %as_type.loc40_47: type = facet_access_type %.loc40_41 [concrete = constants.%C] // CHECK:STDOUT: %.loc40_47: type = converted %.loc40_41, %as_type.loc40_47 [concrete = constants.%C] // CHECK:STDOUT: %I.ref.loc40_59: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %I.facet.loc40_56: %I.type = facet_value %.loc40_47, (constants.%I.impl_witness) [concrete = constants.%I.facet.7e4] -// CHECK:STDOUT: %.loc40_56: %I.type = converted %.loc40_47, %I.facet.loc40_56 [concrete = constants.%I.facet.7e4] +// CHECK:STDOUT: %I.facet.loc40_56: %I.type = facet_value %.loc40_47, (constants.%I.impl_witness) [concrete = constants.%I.facet.947] +// CHECK:STDOUT: %.loc40_56: %I.type = converted %.loc40_47, %I.facet.loc40_56 [concrete = constants.%I.facet.947] // CHECK:STDOUT: %.loc40_65: type = type_literal type [concrete = type] // CHECK:STDOUT: %as_type.loc40_62: type = facet_access_type %.loc40_56 [concrete = constants.%C] // CHECK:STDOUT: %.loc40_62: type = converted %.loc40_56, %as_type.loc40_62 [concrete = constants.%C] // CHECK:STDOUT: %J.ref.loc40_74: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %J.facet.loc40_71: %J.type = facet_value %.loc40_62, (constants.%J.impl_witness) [concrete = constants.%J.facet.08d] -// CHECK:STDOUT: %.loc40_71: %J.type = converted %.loc40_62, %J.facet.loc40_71 [concrete = constants.%J.facet.08d] +// CHECK:STDOUT: %J.facet.loc40_71: %J.type = facet_value %.loc40_62, (constants.%J.impl_witness) [concrete = constants.%J.facet.a74] +// CHECK:STDOUT: %.loc40_71: %J.type = converted %.loc40_62, %J.facet.loc40_71 [concrete = constants.%J.facet.a74] // CHECK:STDOUT: %as_type.loc40_75: type = facet_access_type %.loc40_71 [concrete = constants.%C] // CHECK:STDOUT: %.loc40_75: type = converted %.loc40_71, %as_type.loc40_75 [concrete = constants.%C] // CHECK:STDOUT: %.loc40_8.2: ref %C = temporary %.loc40_6.2, %.loc40_8.1 [concrete = constants.%.5d3] -// CHECK:STDOUT: %JJ.ref: %J.assoc_type = name_ref JJ, @J.WithSelf.%assoc0 [concrete = constants.%assoc0.95e] -// CHECK:STDOUT: %impl.elem0: %.c92 = impl_witness_access constants.%J.impl_witness, element0 [concrete = constants.%C.as.J.impl.JJ] +// CHECK:STDOUT: %JJ.ref: %J.assoc_type = name_ref JJ, @J.WithSelf.%assoc0 [concrete = constants.%assoc0.7d8] +// CHECK:STDOUT: %impl.elem0: %.dd2 = impl_witness_access constants.%J.impl_witness, element0 [concrete = constants.%C.as.J.impl.JJ] // 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) @@ -444,87 +444,87 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.179 -// CHECK:STDOUT: %I.WithSelf.II.type => constants.%I.WithSelf.II.type.d8e -// CHECK:STDOUT: %I.WithSelf.II => constants.%I.WithSelf.II.e73 +// CHECK:STDOUT: %Self => constants.%Self.37e +// CHECK:STDOUT: %I.WithSelf.II.type => constants.%I.WithSelf.II.type.8a2 +// CHECK:STDOUT: %I.WithSelf.II => constants.%I.WithSelf.II.09c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.II(constants.%Self.179) { -// CHECK:STDOUT: %Self => constants.%Self.179 -// CHECK:STDOUT: %Self.as_type.loc16_15.1 => constants.%Self.as_type.ed0 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a3c +// CHECK:STDOUT: specific @I.WithSelf.II(constants.%Self.37e) { +// CHECK:STDOUT: %Self => constants.%Self.37e +// CHECK:STDOUT: %Self.as_type.loc16_15.1 => constants.%Self.as_type.c84 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c60 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%Self.fd8) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%Self.653) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.fd8 -// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.c06 -// CHECK:STDOUT: %J.WithSelf.JJ => constants.%J.WithSelf.JJ.1a7 +// CHECK:STDOUT: %Self => constants.%Self.653 +// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.e02 +// CHECK:STDOUT: %J.WithSelf.JJ => constants.%J.WithSelf.JJ.1d0 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.JJ(constants.%Self.fd8) { -// CHECK:STDOUT: %Self => constants.%Self.fd8 -// CHECK:STDOUT: %Self.as_type.loc19_15.1 => constants.%Self.as_type.e52 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9d0 +// CHECK:STDOUT: specific @J.WithSelf.JJ(constants.%Self.653) { +// CHECK:STDOUT: %Self => constants.%Self.653 +// CHECK:STDOUT: %Self.as_type.loc19_15.1 => constants.%Self.as_type.976 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.506 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc22_7.1 => constants.%T // CHECK:STDOUT: %T.as_type.loc22_20.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2f3 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.936 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%T) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %I.WithSelf.II.type => constants.%I.WithSelf.II.type.a44 -// CHECK:STDOUT: %I.WithSelf.II => constants.%I.WithSelf.II.162 +// CHECK:STDOUT: %I.WithSelf.II.type => constants.%I.WithSelf.II.type.21c +// CHECK:STDOUT: %I.WithSelf.II => constants.%I.WithSelf.II.a59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf(constants.%T) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.b00 -// CHECK:STDOUT: %J.WithSelf.JJ => constants.%J.WithSelf.JJ.9fb +// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.f9e +// CHECK:STDOUT: %J.WithSelf.JJ => constants.%J.WithSelf.JJ.e0c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.ce2) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.cbc) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%J.facet.ce2 -// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.35b -// CHECK:STDOUT: %J.WithSelf.JJ => constants.%J.WithSelf.JJ.046 +// CHECK:STDOUT: %Self => constants.%J.facet.cbc +// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.2d7 +// CHECK:STDOUT: %J.WithSelf.JJ => constants.%J.WithSelf.JJ.6d6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.JJ(constants.%J.facet.ce2) { -// CHECK:STDOUT: %Self => constants.%J.facet.ce2 +// CHECK:STDOUT: specific @J.WithSelf.JJ(constants.%J.facet.cbc) { +// CHECK:STDOUT: %Self => constants.%J.facet.cbc // CHECK:STDOUT: %Self.as_type.loc19_15.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2f3 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.936 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.7e4) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.947) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.7e4 -// CHECK:STDOUT: %I.WithSelf.II.type => constants.%I.WithSelf.II.type.f50 -// CHECK:STDOUT: %I.WithSelf.II => constants.%I.WithSelf.II.063 +// CHECK:STDOUT: %Self => constants.%I.facet.947 +// CHECK:STDOUT: %I.WithSelf.II.type => constants.%I.WithSelf.II.type.9c8 +// CHECK:STDOUT: %I.WithSelf.II => constants.%I.WithSelf.II.622 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.II(constants.%I.facet.7e4) { -// CHECK:STDOUT: %Self => constants.%I.facet.7e4 +// CHECK:STDOUT: specific @I.WithSelf.II(constants.%I.facet.947) { +// CHECK:STDOUT: %Self => constants.%I.facet.947 // CHECK:STDOUT: %Self.as_type.loc16_15.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.f79 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.08d) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.a74) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%J.facet.08d -// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.629 -// CHECK:STDOUT: %J.WithSelf.JJ => constants.%J.WithSelf.JJ.2fb +// CHECK:STDOUT: %Self => constants.%J.facet.a74 +// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.95f +// CHECK:STDOUT: %J.WithSelf.JJ => constants.%J.WithSelf.JJ.d09 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.JJ(constants.%J.facet.08d) { -// CHECK:STDOUT: %Self => constants.%J.facet.08d +// CHECK:STDOUT: specific @J.WithSelf.JJ(constants.%J.facet.a74) { +// CHECK:STDOUT: %Self => constants.%J.facet.a74 // CHECK:STDOUT: %Self.as_type.loc19_15.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.f79 // CHECK:STDOUT: } @@ -532,15 +532,15 @@ fn G() { // CHECK:STDOUT: specific @J.WithSelf(constants.%C.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%C.type.facet -// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.6fd -// CHECK:STDOUT: %J.WithSelf.JJ => constants.%J.WithSelf.JJ.600 +// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.383 +// CHECK:STDOUT: %J.WithSelf.JJ => constants.%J.WithSelf.JJ.87d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%C.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%C.type.facet -// CHECK:STDOUT: %I.WithSelf.II.type => constants.%I.WithSelf.II.type.3e3 -// CHECK:STDOUT: %I.WithSelf.II => constants.%I.WithSelf.II.6fc +// CHECK:STDOUT: %I.WithSelf.II.type => constants.%I.WithSelf.II.type.92c +// CHECK:STDOUT: %I.WithSelf.II => constants.%I.WithSelf.II.03d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%facet_value) { @@ -551,11 +551,11 @@ fn G() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type // CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.impl_witness -// CHECK:STDOUT: %I.facet.loc26_18.2 => constants.%I.facet.7e4 +// CHECK:STDOUT: %I.facet.loc26_18.2 => constants.%I.facet.947 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness -// CHECK:STDOUT: %J.facet.loc26_33.2 => constants.%J.facet.08d -// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.629 -// CHECK:STDOUT: %.loc26_69 => constants.%.c92 +// CHECK:STDOUT: %J.facet.loc26_33.2 => constants.%J.facet.a74 +// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.95f +// CHECK:STDOUT: %.loc26_69 => constants.%.dd2 // CHECK:STDOUT: %impl.elem0.loc26_69.2 => constants.%C.as.J.impl.JJ // CHECK:STDOUT: %specific_impl_fn.loc26_69.2 => constants.%C.as.J.impl.JJ // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/lookup/fail_todo_undefined_impl.carbon b/toolchain/check/testdata/impl/lookup/fail_todo_undefined_impl.carbon index 2ea391d847e7..3372a199df97 100644 --- a/toolchain/check/testdata/impl/lookup/fail_todo_undefined_impl.carbon +++ b/toolchain/check/testdata/impl/lookup/fail_todo_undefined_impl.carbon @@ -53,30 +53,30 @@ fn G() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.d9f: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.592: %I.WithSelf.F.type.d9f = struct_value () [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.dcc: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ec6: %I.WithSelf.F.type.dcc = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %I.impl_witness.82c: = impl_witness @C.as.I.impl.9d0.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I.impl_witness.4e9: = impl_witness @C.as.I.impl.ac9.%I.impl_witness_table [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %C.type.facet: %type = facet_value %C, () [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.eef: type = fn_type @I.WithSelf.F, @I.WithSelf(%C.type.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.b58: %I.WithSelf.F.type.eef = struct_value () [concrete] -// CHECK:STDOUT: %I.facet.7a2: %I.type = facet_value %C, (%I.impl_witness.82c) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.c85: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.7a2) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.ba4: %I.WithSelf.F.type.c85 = struct_value () [concrete] -// CHECK:STDOUT: %.605: type = fn_type_with_self_type %I.WithSelf.F.type.c85, %I.facet.7a2 [concrete] -// CHECK:STDOUT: %I.impl_witness.44c: = impl_witness @C.as.I.impl.e12.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.b04: type = fn_type @I.WithSelf.F, @I.WithSelf(%C.type.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.cef: %I.WithSelf.F.type.b04 = struct_value () [concrete] +// CHECK:STDOUT: %I.facet.029: %I.type = facet_value %C, (%I.impl_witness.4e9) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.d7f: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.029) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.1f7: %I.WithSelf.F.type.d7f = struct_value () [concrete] +// CHECK:STDOUT: %.010: type = fn_type_with_self_type %I.WithSelf.F.type.d7f, %I.facet.029 [concrete] +// CHECK:STDOUT: %I.impl_witness.d1b: = impl_witness @C.as.I.impl.e10.%I.impl_witness_table [concrete] // 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: %I.facet.98f: %I.type = facet_value %C, (%I.impl_witness.44c) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.9a6: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.98f) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.a2c: %I.WithSelf.F.type.9a6 = struct_value () [concrete] +// CHECK:STDOUT: %I.facet.c86: %I.type = facet_value %C, (%I.impl_witness.d1b) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.51c: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.c86) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.179: %I.WithSelf.F.type.51c = struct_value () [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -91,7 +91,7 @@ fn G() { // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} -// CHECK:STDOUT: impl_decl @C.as.I.impl.e12 [concrete] {} { +// CHECK:STDOUT: impl_decl @C.as.I.impl.e10 [concrete] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } @@ -103,7 +103,7 @@ fn G() { // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.d9f) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.592)] {} {} +// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.dcc) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ec6)] {} {} // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -114,12 +114,12 @@ fn G() { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.I.impl.9d0: %Self.ref as %I.ref; +// CHECK:STDOUT: impl @C.as.I.impl.ac9: %Self.ref as %I.ref; // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.I.impl.e12: %C.ref as %I.ref { +// CHECK:STDOUT: impl @C.as.I.impl.e10: %C.ref as %I.ref { // CHECK:STDOUT: %C.as.I.impl.F.decl: %C.as.I.impl.F.type = fn_decl @C.as.I.impl.F [concrete = constants.%C.as.I.impl.F] {} {} -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%C.as.I.impl.F.decl), @C.as.I.impl.e12 [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.44c] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%C.as.I.impl.F.decl), @C.as.I.impl.e10 [concrete] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.d1b] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %C.as.I.impl.F.decl @@ -128,7 +128,7 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { -// CHECK:STDOUT: impl_decl @C.as.I.impl.9d0 [concrete] {} { +// CHECK:STDOUT: impl_decl @C.as.I.impl.ac9 [concrete] {} { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } @@ -139,7 +139,7 @@ fn G() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .I = // CHECK:STDOUT: .F = -// CHECK:STDOUT: extend @C.as.I.impl.9d0.%I.ref +// CHECK:STDOUT: extend @C.as.I.impl.ac9.%I.ref // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { @@ -150,7 +150,7 @@ fn G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.605 = impl_witness_access constants.%I.impl_witness.82c, element0 [concrete = ] +// CHECK:STDOUT: %impl.elem0: %.010 = impl_witness_access constants.%I.impl_witness.4e9, element0 [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -163,15 +163,15 @@ fn G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.605 = impl_witness_access constants.%I.impl_witness.82c, element0 [concrete = ] +// CHECK:STDOUT: %impl.elem0: %.010 = impl_witness_access constants.%I.impl_witness.4e9, element0 [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d9f -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.592 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.dcc +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ec6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self) {} @@ -179,23 +179,23 @@ fn G() { // CHECK:STDOUT: specific @I.WithSelf(constants.%C.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%C.type.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.eef -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.b58 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.b04 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.cef // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.7a2) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.029) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.7a2 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.c85 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ba4 +// CHECK:STDOUT: %Self => constants.%I.facet.029 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d7f +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.1f7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.98f) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.c86) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.98f -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.9a6 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.a2c +// CHECK:STDOUT: %Self => constants.%I.facet.c86 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.51c +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.179 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.98f) {} +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.c86) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/generic.carbon b/toolchain/check/testdata/impl/lookup/generic.carbon index e1dc6068efa9..72a09e3e0a21 100644 --- a/toolchain/check/testdata/impl/lookup/generic.carbon +++ b/toolchain/check/testdata/impl/lookup/generic.carbon @@ -133,37 +133,37 @@ fn G(x: A) { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.2da: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.4d3: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %pattern_type.c9f: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.a73: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.8d9: %HasF.WithSelf.F.type.4d3 = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.851: %HasF.WithSelf.F.type.a73 = struct_value () [symbolic] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %HasF.impl_witness.55f: = impl_witness @T.as.HasF.impl.%HasF.impl_witness_table, @T.as.HasF.impl(%T) [symbolic] +// CHECK:STDOUT: %HasF.impl_witness.ebe: = impl_witness @T.as.HasF.impl.%HasF.impl_witness_table, @T.as.HasF.impl(%T) [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %T.as.HasF.impl.F.type.4df: type = fn_type @T.as.HasF.impl.F, @T.as.HasF.impl(%T) [symbolic] -// CHECK:STDOUT: %T.as.HasF.impl.F.796: %T.as.HasF.impl.F.type.4df = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.facet.e89: %HasF.type = facet_value %T, (%HasF.impl_witness.55f) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.dff: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.e89) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.f04: %HasF.WithSelf.F.type.dff = struct_value () [symbolic] +// CHECK:STDOUT: %T.as.HasF.impl.F.type.195: type = fn_type @T.as.HasF.impl.F, @T.as.HasF.impl(%T) [symbolic] +// CHECK:STDOUT: %T.as.HasF.impl.F.863: %T.as.HasF.impl.F.type.195 = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.facet.805: %HasF.type = facet_value %T, (%HasF.impl_witness.ebe) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.b00: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.805) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.33f: %HasF.WithSelf.F.type.b00 = struct_value () [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %HasF.impl_witness.c1a: = impl_witness @T.as.HasF.impl.%HasF.impl_witness_table, @T.as.HasF.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %T.as.HasF.impl.F.type.a34: type = fn_type @T.as.HasF.impl.F, @T.as.HasF.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %T.as.HasF.impl.F.8b8: %T.as.HasF.impl.F.type.a34 = struct_value () [concrete] -// CHECK:STDOUT: %HasF.facet.340: %HasF.type = facet_value %empty_struct_type, (%HasF.impl_witness.c1a) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.type.16a: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.340) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.cb4: %HasF.WithSelf.F.type.16a = struct_value () [concrete] -// CHECK:STDOUT: %.275: type = fn_type_with_self_type %HasF.WithSelf.F.type.16a, %HasF.facet.340 [concrete] -// CHECK:STDOUT: %T.as.HasF.impl.F.specific_fn: = specific_function %T.as.HasF.impl.F.8b8, @T.as.HasF.impl.F(%empty_struct_type) [concrete] +// CHECK:STDOUT: %HasF.impl_witness.aaf: = impl_witness @T.as.HasF.impl.%HasF.impl_witness_table, @T.as.HasF.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %T.as.HasF.impl.F.type.d06: type = fn_type @T.as.HasF.impl.F, @T.as.HasF.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %T.as.HasF.impl.F.e31: %T.as.HasF.impl.F.type.d06 = struct_value () [concrete] +// CHECK:STDOUT: %HasF.facet.b0f: %HasF.type = facet_value %empty_struct_type, (%HasF.impl_witness.aaf) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.type.476: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.b0f) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.141: %HasF.WithSelf.F.type.476 = struct_value () [concrete] +// CHECK:STDOUT: %.be5: type = fn_type_with_self_type %HasF.WithSelf.F.type.476, %HasF.facet.b0f [concrete] +// CHECK:STDOUT: %T.as.HasF.impl.F.specific_fn: = specific_function %T.as.HasF.impl.F.e31, @T.as.HasF.impl.F(%empty_struct_type) [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -211,9 +211,9 @@ fn G(x: A) { // CHECK:STDOUT: %HasF.WithSelf.decl = interface_with_self_decl @HasF [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.4d3) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.8d9)] { -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.2da) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.2da) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.a73) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.851)] { +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { @@ -235,14 +235,14 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @T.as.HasF.impl(%T.loc8_15.2: type) { // CHECK:STDOUT: %T.loc8_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_15.1 (constants.%T)] -// CHECK:STDOUT: %HasF.impl_witness.loc8_34.2: = impl_witness %HasF.impl_witness_table, @T.as.HasF.impl(%T.loc8_15.1) [symbolic = %HasF.impl_witness.loc8_34.2 (constants.%HasF.impl_witness.55f)] +// CHECK:STDOUT: %HasF.impl_witness.loc8_34.2: = impl_witness %HasF.impl_witness_table, @T.as.HasF.impl(%T.loc8_15.1) [symbolic = %HasF.impl_witness.loc8_34.2 (constants.%HasF.impl_witness.ebe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as.HasF.impl.F.type: type = fn_type @T.as.HasF.impl.F, @T.as.HasF.impl(%T.loc8_15.1) [symbolic = %T.as.HasF.impl.F.type (constants.%T.as.HasF.impl.F.type.4df)] -// CHECK:STDOUT: %T.as.HasF.impl.F: @T.as.HasF.impl.%T.as.HasF.impl.F.type (%T.as.HasF.impl.F.type.4df) = struct_value () [symbolic = %T.as.HasF.impl.F (constants.%T.as.HasF.impl.F.796)] +// CHECK:STDOUT: %T.as.HasF.impl.F.type: type = fn_type @T.as.HasF.impl.F, @T.as.HasF.impl(%T.loc8_15.1) [symbolic = %T.as.HasF.impl.F.type (constants.%T.as.HasF.impl.F.type.195)] +// CHECK:STDOUT: %T.as.HasF.impl.F: @T.as.HasF.impl.%T.as.HasF.impl.F.type (%T.as.HasF.impl.F.type.195) = struct_value () [symbolic = %T.as.HasF.impl.F (constants.%T.as.HasF.impl.F.863)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref as %HasF.ref { -// CHECK:STDOUT: %T.as.HasF.impl.F.decl: @T.as.HasF.impl.%T.as.HasF.impl.F.type (%T.as.HasF.impl.F.type.4df) = fn_decl @T.as.HasF.impl.F [symbolic = @T.as.HasF.impl.%T.as.HasF.impl.F (constants.%T.as.HasF.impl.F.796)] { +// CHECK:STDOUT: %T.as.HasF.impl.F.decl: @T.as.HasF.impl.%T.as.HasF.impl.F.type (%T.as.HasF.impl.F.type.195) = fn_decl @T.as.HasF.impl.F [symbolic = @T.as.HasF.impl.%T.as.HasF.impl.F (constants.%T.as.HasF.impl.F.863)] { // CHECK:STDOUT: %self.param_patt: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { @@ -251,7 +251,7 @@ fn G(x: A) { // CHECK:STDOUT: %self: @T.as.HasF.impl.F.%T (%T) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %HasF.impl_witness_table = impl_witness_table (%T.as.HasF.impl.F.decl), @T.as.HasF.impl [concrete] -// CHECK:STDOUT: %HasF.impl_witness.loc8_34.1: = impl_witness %HasF.impl_witness_table, @T.as.HasF.impl(constants.%T) [symbolic = %HasF.impl_witness.loc8_34.2 (constants.%HasF.impl_witness.55f)] +// CHECK:STDOUT: %HasF.impl_witness.loc8_34.1: = impl_witness %HasF.impl_witness_table, @T.as.HasF.impl(constants.%T) [symbolic = %HasF.impl_witness.loc8_34.2 (constants.%HasF.impl_witness.ebe)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %T.as.HasF.impl.F.decl @@ -263,7 +263,7 @@ fn G(x: A) { // CHECK:STDOUT: generic fn @HasF.WithSelf.F(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.2da)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.c9f)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -286,7 +286,7 @@ fn G(x: A) { // CHECK:STDOUT: %x.ref: %empty_struct_type = name_ref x, %x // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.type] // CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, @HasF.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.275 = impl_witness_access constants.%HasF.impl_witness.c1a, element0 [concrete = constants.%T.as.HasF.impl.F.8b8] +// CHECK:STDOUT: %impl.elem0: %.be5 = impl_witness_access constants.%HasF.impl_witness.aaf, element0 [concrete = constants.%T.as.HasF.impl.F.e31] // CHECK:STDOUT: %bound_method.loc13_4: = bound_method %x.ref, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @T.as.HasF.impl.F(constants.%empty_struct_type) [concrete = constants.%T.as.HasF.impl.F.specific_fn] // CHECK:STDOUT: %bound_method.loc13_14: = bound_method %x.ref, %specific_fn @@ -297,23 +297,23 @@ fn G(x: A) { // CHECK:STDOUT: specific @HasF.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.4d3 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.8d9 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.a73 +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.851 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2da +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c9f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.HasF.impl(constants.%T) { // CHECK:STDOUT: %T.loc8_15.1 => constants.%T -// CHECK:STDOUT: %HasF.impl_witness.loc8_34.2 => constants.%HasF.impl_witness.55f +// CHECK:STDOUT: %HasF.impl_witness.loc8_34.2 => constants.%HasF.impl_witness.ebe // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as.HasF.impl.F.type => constants.%T.as.HasF.impl.F.type.4df -// CHECK:STDOUT: %T.as.HasF.impl.F => constants.%T.as.HasF.impl.F.796 +// CHECK:STDOUT: %T.as.HasF.impl.F.type => constants.%T.as.HasF.impl.F.type.195 +// CHECK:STDOUT: %T.as.HasF.impl.F => constants.%T.as.HasF.impl.F.863 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.HasF.impl.F(constants.%T) { @@ -321,33 +321,33 @@ fn G(x: A) { // CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.e89) { +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.805) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%HasF.facet.e89 -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.dff -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.f04 +// CHECK:STDOUT: %Self => constants.%HasF.facet.805 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.b00 +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.33f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet.e89) { -// CHECK:STDOUT: %Self => constants.%HasF.facet.e89 +// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet.805) { +// CHECK:STDOUT: %Self => constants.%HasF.facet.805 // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.HasF.impl(constants.%empty_struct_type) { // CHECK:STDOUT: %T.loc8_15.1 => constants.%empty_struct_type -// CHECK:STDOUT: %HasF.impl_witness.loc8_34.2 => constants.%HasF.impl_witness.c1a +// CHECK:STDOUT: %HasF.impl_witness.loc8_34.2 => constants.%HasF.impl_witness.aaf // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as.HasF.impl.F.type => constants.%T.as.HasF.impl.F.type.a34 -// CHECK:STDOUT: %T.as.HasF.impl.F => constants.%T.as.HasF.impl.F.8b8 +// CHECK:STDOUT: %T.as.HasF.impl.F.type => constants.%T.as.HasF.impl.F.type.d06 +// CHECK:STDOUT: %T.as.HasF.impl.F => constants.%T.as.HasF.impl.F.e31 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.340) { +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.b0f) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%HasF.facet.340 -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.16a -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.cb4 +// CHECK:STDOUT: %Self => constants.%HasF.facet.b0f +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.476 +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.141 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.HasF.impl.F(constants.%empty_struct_type) { @@ -362,38 +362,38 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] -// CHECK:STDOUT: %Self.62e: %HasF.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.9df: type = facet_access_type %Self.62e [symbolic] -// CHECK:STDOUT: %pattern_type.2da: type = pattern_type %Self.as_type.9df [symbolic] -// CHECK:STDOUT: %.87b: Core.Form = init_form %Self.as_type.9df [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.4d3: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self.62e) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.8d9: %HasF.WithSelf.F.type.4d3 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.c62: %HasF.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.5c2: type = facet_access_type %Self.c62 [symbolic] +// CHECK:STDOUT: %pattern_type.c9f: type = pattern_type %Self.as_type.5c2 [symbolic] +// CHECK:STDOUT: %.376: Core.Form = init_form %Self.as_type.5c2 [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.a73: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self.c62) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.851: %HasF.WithSelf.F.type.a73 = struct_value () [symbolic] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] -// CHECK:STDOUT: %assoc0.3b4: %HasF.assoc_type = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %assoc0.a0c: %HasF.assoc_type = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] -// CHECK:STDOUT: %HasF.impl_witness.6f2: = impl_witness @ptr.as.HasF.impl.%HasF.impl_witness_table, @ptr.as.HasF.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %HasF.impl_witness.672: = impl_witness @ptr.as.HasF.impl.%HasF.impl_witness_table, @ptr.as.HasF.impl(%T.67d) [symbolic] // CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic] // CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr.e8f [symbolic] -// CHECK:STDOUT: %ptr.as.HasF.impl.F.type.19a: type = fn_type @ptr.as.HasF.impl.F, @ptr.as.HasF.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.HasF.impl.F.8af: %ptr.as.HasF.impl.F.type.19a = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.facet.6f4: %HasF.type = facet_value %ptr.e8f, (%HasF.impl_witness.6f2) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.f1b: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.6f4) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.db9: %HasF.WithSelf.F.type.f1b = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.as.HasF.impl.F.type.d5f: type = fn_type @ptr.as.HasF.impl.F, @ptr.as.HasF.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.HasF.impl.F.be3: %ptr.as.HasF.impl.F.type.d5f = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.facet.3fb: %HasF.type = facet_value %ptr.e8f, (%HasF.impl_witness.672) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.7fc: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.3fb) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.cbb: %HasF.WithSelf.F.type.7fc = struct_value () [symbolic] // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2bf: = lookup_impl_witness %ptr.e8f, @Copy [symbolic] -// CHECK:STDOUT: %.b6a: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %Copy.facet.44d: %Copy.type = facet_value %ptr.e8f, (%Copy.lookup_impl_witness.2bf) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.72b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.44d) [symbolic] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.72b, %Copy.facet.44d [symbolic] -// CHECK:STDOUT: %impl.elem0.8a3: %.39b = impl_witness_access %Copy.lookup_impl_witness.2bf, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a13: = specific_impl_function %impl.elem0.8a3, @Copy.WithSelf.Op(%Copy.facet.44d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.1da: = lookup_impl_witness %ptr.e8f, @Copy [symbolic] +// CHECK:STDOUT: %.0e9: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %Copy.facet.302: %Copy.type = facet_value %ptr.e8f, (%Copy.lookup_impl_witness.1da) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.884: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.302) [symbolic] +// CHECK:STDOUT: %.be5: type = fn_type_with_self_type %Copy.WithSelf.Op.type.884, %Copy.facet.302 [symbolic] +// CHECK:STDOUT: %impl.elem0.484: %.be5 = impl_witness_access %Copy.lookup_impl_witness.1da, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.a76: = specific_impl_function %impl.elem0.484, @Copy.WithSelf.Op(%Copy.facet.302) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] @@ -401,23 +401,23 @@ fn G(x: A) { // CHECK:STDOUT: %.9ba: Core.Form = init_form %ptr.c28 [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %HasF.impl_witness.639: = impl_witness @ptr.as.HasF.impl.%HasF.impl_witness_table, @ptr.as.HasF.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %ptr.as.HasF.impl.F.type.eca: type = fn_type @ptr.as.HasF.impl.F, @ptr.as.HasF.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %ptr.as.HasF.impl.F.70c: %ptr.as.HasF.impl.F.type.eca = struct_value () [concrete] -// CHECK:STDOUT: %HasF.facet.3ef: %HasF.type = facet_value %ptr.c28, (%HasF.impl_witness.639) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.type.a75: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.3ef) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.847: %HasF.WithSelf.F.type.a75 = struct_value () [concrete] -// CHECK:STDOUT: %.353: type = fn_type_with_self_type %HasF.WithSelf.F.type.a75, %HasF.facet.3ef [concrete] -// CHECK:STDOUT: %ptr.as.HasF.impl.F.specific_fn: = specific_function %ptr.as.HasF.impl.F.70c, @ptr.as.HasF.impl.F(%empty_struct_type) [concrete] +// CHECK:STDOUT: %HasF.impl_witness.e43: = impl_witness @ptr.as.HasF.impl.%HasF.impl_witness_table, @ptr.as.HasF.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %ptr.as.HasF.impl.F.type.03e: type = fn_type @ptr.as.HasF.impl.F, @ptr.as.HasF.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %ptr.as.HasF.impl.F.156: %ptr.as.HasF.impl.F.type.03e = struct_value () [concrete] +// CHECK:STDOUT: %HasF.facet.7a9: %HasF.type = facet_value %ptr.c28, (%HasF.impl_witness.e43) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.type.c4f: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.7a9) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.814: %HasF.WithSelf.F.type.c4f = struct_value () [concrete] +// CHECK:STDOUT: %.2ad: type = fn_type_with_self_type %HasF.WithSelf.F.type.c4f, %HasF.facet.7a9 [concrete] +// CHECK:STDOUT: %ptr.as.HasF.impl.F.specific_fn: = specific_function %ptr.as.HasF.impl.F.156, @ptr.as.HasF.impl.F(%empty_struct_type) [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %ptr.c28 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.1c0: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.91f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.d7b: %ptr.as.Copy.impl.Op.type.91f = struct_value () [concrete] -// CHECK:STDOUT: %.41e: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %Copy.facet.e29: %Copy.type = facet_value %ptr.c28, (%Copy.impl_witness.1c0) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.980: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.e29) [concrete] -// CHECK:STDOUT: %.f8c: type = fn_type_with_self_type %Copy.WithSelf.Op.type.980, %Copy.facet.e29 [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.d7b, @ptr.as.Copy.impl.Op(%empty_struct_type) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.1c2: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.6c5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.9ed: %ptr.as.Copy.impl.Op.type.6c5 = struct_value () [concrete] +// CHECK:STDOUT: %.a81: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %Copy.facet.80f: %Copy.type = facet_value %ptr.c28, (%Copy.impl_witness.1c2) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8a4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.80f) [concrete] +// CHECK:STDOUT: %.523: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8a4, %Copy.facet.80f [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.9ed, @ptr.as.Copy.impl.Op(%empty_struct_type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -427,8 +427,8 @@ fn G(x: A) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -474,31 +474,31 @@ fn G(x: A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF { -// CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = constants.%Self.62e] +// CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = constants.%Self.c62] // CHECK:STDOUT: %HasF.WithSelf.decl = interface_with_self_decl @HasF [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.4d3) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.8d9)] { -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.2da) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.2da) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.2da) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.2da) = return_slot_pattern %return.param_patt, %.loc5_25.2 [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.a73) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.851)] { +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = return_slot_pattern %return.param_patt, %.loc5_25.2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.ref.loc5_25: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self.62e)] -// CHECK:STDOUT: %Self.as_type.loc5_25: type = facet_access_type %Self.ref.loc5_25 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.9df)] -// CHECK:STDOUT: %.loc5_25.2: type = converted %Self.ref.loc5_25, %Self.as_type.loc5_25 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.9df)] -// CHECK:STDOUT: %.loc5_25.3: Core.Form = init_form %.loc5_25.2 [symbolic = %.loc5_25.1 (constants.%.87b)] -// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.9df) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.9df)] { -// CHECK:STDOUT: %Self.ref.loc5_14: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self.62e)] -// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref.loc5_14 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.9df)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref.loc5_14, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.9df)] +// CHECK:STDOUT: %Self.ref.loc5_25: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self.c62)] +// CHECK:STDOUT: %Self.as_type.loc5_25: type = facet_access_type %Self.ref.loc5_25 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.5c2)] +// CHECK:STDOUT: %.loc5_25.2: type = converted %Self.ref.loc5_25, %Self.as_type.loc5_25 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.5c2)] +// CHECK:STDOUT: %.loc5_25.3: Core.Form = init_form %.loc5_25.2 [symbolic = %.loc5_25.1 (constants.%.376)] +// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.5c2) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.5c2)] { +// CHECK:STDOUT: %Self.ref.loc5_14: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self.c62)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref.loc5_14 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.5c2)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref.loc5_14, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.5c2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.9df) = value_binding self, %self.param -// CHECK:STDOUT: %return.param: ref @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.9df) = out_param call_param1 -// CHECK:STDOUT: %return: ref @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.9df) = return_slot %return.param +// CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.5c2) = value_binding self, %self.param +// CHECK:STDOUT: %return.param: ref @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.5c2) = out_param call_param1 +// CHECK:STDOUT: %return: ref @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.5c2) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %HasF.WithSelf.F.decl [concrete = constants.%assoc0.3b4] +// CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %HasF.WithSelf.F.decl [concrete = constants.%assoc0.a0c] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -512,14 +512,14 @@ fn G(x: A) { // CHECK:STDOUT: generic impl @ptr.as.HasF.impl(%T.loc8_15.2: type) { // CHECK:STDOUT: %T.loc8_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_15.1 (constants.%T.67d)] // CHECK:STDOUT: %ptr.loc8_25.1: type = ptr_type %T.loc8_15.1 [symbolic = %ptr.loc8_25.1 (constants.%ptr.e8f)] -// CHECK:STDOUT: %HasF.impl_witness.loc8_35.2: = impl_witness %HasF.impl_witness_table, @ptr.as.HasF.impl(%T.loc8_15.1) [symbolic = %HasF.impl_witness.loc8_35.2 (constants.%HasF.impl_witness.6f2)] +// CHECK:STDOUT: %HasF.impl_witness.loc8_35.2: = impl_witness %HasF.impl_witness_table, @ptr.as.HasF.impl(%T.loc8_15.1) [symbolic = %HasF.impl_witness.loc8_35.2 (constants.%HasF.impl_witness.672)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ptr.as.HasF.impl.F.type: type = fn_type @ptr.as.HasF.impl.F, @ptr.as.HasF.impl(%T.loc8_15.1) [symbolic = %ptr.as.HasF.impl.F.type (constants.%ptr.as.HasF.impl.F.type.19a)] -// CHECK:STDOUT: %ptr.as.HasF.impl.F: @ptr.as.HasF.impl.%ptr.as.HasF.impl.F.type (%ptr.as.HasF.impl.F.type.19a) = struct_value () [symbolic = %ptr.as.HasF.impl.F (constants.%ptr.as.HasF.impl.F.8af)] +// CHECK:STDOUT: %ptr.as.HasF.impl.F.type: type = fn_type @ptr.as.HasF.impl.F, @ptr.as.HasF.impl(%T.loc8_15.1) [symbolic = %ptr.as.HasF.impl.F.type (constants.%ptr.as.HasF.impl.F.type.d5f)] +// CHECK:STDOUT: %ptr.as.HasF.impl.F: @ptr.as.HasF.impl.%ptr.as.HasF.impl.F.type (%ptr.as.HasF.impl.F.type.d5f) = struct_value () [symbolic = %ptr.as.HasF.impl.F (constants.%ptr.as.HasF.impl.F.be3)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %ptr.loc8_25.2 as %HasF.ref { -// CHECK:STDOUT: %ptr.as.HasF.impl.F.decl: @ptr.as.HasF.impl.%ptr.as.HasF.impl.F.type (%ptr.as.HasF.impl.F.type.19a) = fn_decl @ptr.as.HasF.impl.F [symbolic = @ptr.as.HasF.impl.%ptr.as.HasF.impl.F (constants.%ptr.as.HasF.impl.F.8af)] { +// CHECK:STDOUT: %ptr.as.HasF.impl.F.decl: @ptr.as.HasF.impl.%ptr.as.HasF.impl.F.type (%ptr.as.HasF.impl.F.type.d5f) = fn_decl @ptr.as.HasF.impl.F [symbolic = @ptr.as.HasF.impl.%ptr.as.HasF.impl.F (constants.%ptr.as.HasF.impl.F.be3)] { // CHECK:STDOUT: %self.param_patt: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = out_param_pattern [concrete] @@ -535,7 +535,7 @@ fn G(x: A) { // CHECK:STDOUT: %return: ref @ptr.as.HasF.impl.F.%ptr.loc9_14 (%ptr.e8f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %HasF.impl_witness_table = impl_witness_table (%ptr.as.HasF.impl.F.decl), @ptr.as.HasF.impl [concrete] -// CHECK:STDOUT: %HasF.impl_witness.loc8_35.1: = impl_witness %HasF.impl_witness_table, @ptr.as.HasF.impl(constants.%T.67d) [symbolic = %HasF.impl_witness.loc8_35.2 (constants.%HasF.impl_witness.6f2)] +// CHECK:STDOUT: %HasF.impl_witness.loc8_35.1: = impl_witness %HasF.impl_witness_table, @ptr.as.HasF.impl(constants.%T.67d) [symbolic = %HasF.impl_witness.loc8_35.2 (constants.%HasF.impl_witness.672)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .T = @@ -546,12 +546,12 @@ fn G(x: A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.WithSelf.F(@HasF.%Self: %HasF.type) { -// CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.62e)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.9df)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.2da)] -// CHECK:STDOUT: %.loc5_25.1: Core.Form = init_form %Self.as_type.loc5_14.1 [symbolic = %.loc5_25.1 (constants.%.87b)] +// CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c62)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.5c2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.c9f)] +// CHECK:STDOUT: %.loc5_25.1: Core.Form = init_form %Self.as_type.loc5_14.1 [symbolic = %.loc5_25.1 (constants.%.376)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.9df)) -> out %return.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.9df); +// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.5c2)) -> out %return.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.5c2); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @ptr.as.HasF.impl.F(@ptr.as.HasF.impl.%T.loc8_15.2: type) { @@ -562,20 +562,20 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc9_14 [symbolic = %require_complete (constants.%require_complete.ef1)] -// CHECK:STDOUT: %.loc9_37.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T) [symbolic = %.loc9_37.1 (constants.%.b6a)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc9_14, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2bf)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc9_14, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.44d)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.72b)] -// CHECK:STDOUT: %.loc9_37.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc9_37.2 (constants.%.39b)] -// CHECK:STDOUT: %impl.elem0.loc9_37.2: @ptr.as.HasF.impl.F.%.loc9_37.2 (%.39b) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_37.2 (constants.%impl.elem0.8a3)] -// CHECK:STDOUT: %specific_impl_fn.loc9_37.2: = specific_impl_function %impl.elem0.loc9_37.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc9_37.2 (constants.%specific_impl_fn.a13)] +// CHECK:STDOUT: %.loc9_37.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T) [symbolic = %.loc9_37.1 (constants.%.0e9)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc9_14, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.1da)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc9_14, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.302)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.884)] +// CHECK:STDOUT: %.loc9_37.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc9_37.2 (constants.%.be5)] +// CHECK:STDOUT: %impl.elem0.loc9_37.2: @ptr.as.HasF.impl.F.%.loc9_37.2 (%.be5) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_37.2 (constants.%impl.elem0.484)] +// CHECK:STDOUT: %specific_impl_fn.loc9_37.2: = specific_impl_function %impl.elem0.loc9_37.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc9_37.2 (constants.%specific_impl_fn.a76)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @ptr.as.HasF.impl.F.%ptr.loc9_14 (%ptr.e8f)) -> out %return.param: @ptr.as.HasF.impl.F.%ptr.loc9_14 (%ptr.e8f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: @ptr.as.HasF.impl.F.%ptr.loc9_14 (%ptr.e8f) = name_ref self, %self -// CHECK:STDOUT: %impl.elem0.loc9_37.1: @ptr.as.HasF.impl.F.%.loc9_37.2 (%.39b) = impl_witness_access constants.%Copy.lookup_impl_witness.2bf, element0 [symbolic = %impl.elem0.loc9_37.2 (constants.%impl.elem0.8a3)] +// CHECK:STDOUT: %impl.elem0.loc9_37.1: @ptr.as.HasF.impl.F.%.loc9_37.2 (%.be5) = impl_witness_access constants.%Copy.lookup_impl_witness.1da, element0 [symbolic = %impl.elem0.loc9_37.2 (constants.%impl.elem0.484)] // CHECK:STDOUT: %bound_method.loc9_37.1: = bound_method %self.ref, %impl.elem0.loc9_37.1 -// CHECK:STDOUT: %specific_impl_fn.loc9_37.1: = specific_impl_function %impl.elem0.loc9_37.1, @Copy.WithSelf.Op(constants.%Copy.facet.44d) [symbolic = %specific_impl_fn.loc9_37.2 (constants.%specific_impl_fn.a13)] +// CHECK:STDOUT: %specific_impl_fn.loc9_37.1: = specific_impl_function %impl.elem0.loc9_37.1, @Copy.WithSelf.Op(constants.%Copy.facet.302) [symbolic = %specific_impl_fn.loc9_37.2 (constants.%specific_impl_fn.a76)] // CHECK:STDOUT: %bound_method.loc9_37.2: = bound_method %self.ref, %specific_impl_fn.loc9_37.1 // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @ptr.as.HasF.impl.F.%ptr.loc9_14 (%ptr.e8f) = call %bound_method.loc9_37.2(%self.ref) // CHECK:STDOUT: return %Copy.WithSelf.Op.call @@ -586,8 +586,8 @@ fn G(x: A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: %ptr.c28 = name_ref x, %x // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.type] -// CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, @HasF.WithSelf.%assoc0 [concrete = constants.%assoc0.3b4] -// CHECK:STDOUT: %impl.elem0: %.353 = impl_witness_access constants.%HasF.impl_witness.639, element0 [concrete = constants.%ptr.as.HasF.impl.F.70c] +// CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, @HasF.WithSelf.%assoc0 [concrete = constants.%assoc0.a0c] +// CHECK:STDOUT: %impl.elem0: %.2ad = impl_witness_access constants.%HasF.impl_witness.e43, element0 [concrete = constants.%ptr.as.HasF.impl.F.156] // CHECK:STDOUT: %bound_method.loc13_11: = bound_method %x.ref, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.HasF.impl.F(constants.%empty_struct_type) [concrete = constants.%ptr.as.HasF.impl.F.specific_fn] // CHECK:STDOUT: %bound_method.loc13_21: = bound_method %x.ref, %specific_fn @@ -595,28 +595,28 @@ fn G(x: A) { // CHECK:STDOUT: return %ptr.as.HasF.impl.F.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%Self.62e) { +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%Self.c62) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.62e -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.4d3 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.8d9 +// CHECK:STDOUT: %Self => constants.%Self.c62 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.a73 +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.851 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self.62e) { -// CHECK:STDOUT: %Self => constants.%Self.62e -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type.9df -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2da -// CHECK:STDOUT: %.loc5_25.1 => constants.%.87b +// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self.c62) { +// CHECK:STDOUT: %Self => constants.%Self.c62 +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type.5c2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c9f +// CHECK:STDOUT: %.loc5_25.1 => constants.%.376 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ptr.as.HasF.impl(constants.%T.67d) { // CHECK:STDOUT: %T.loc8_15.1 => constants.%T.67d // CHECK:STDOUT: %ptr.loc8_25.1 => constants.%ptr.e8f -// CHECK:STDOUT: %HasF.impl_witness.loc8_35.2 => constants.%HasF.impl_witness.6f2 +// CHECK:STDOUT: %HasF.impl_witness.loc8_35.2 => constants.%HasF.impl_witness.672 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ptr.as.HasF.impl.F.type => constants.%ptr.as.HasF.impl.F.type.19a -// CHECK:STDOUT: %ptr.as.HasF.impl.F => constants.%ptr.as.HasF.impl.F.8af +// CHECK:STDOUT: %ptr.as.HasF.impl.F.type => constants.%ptr.as.HasF.impl.F.type.d5f +// CHECK:STDOUT: %ptr.as.HasF.impl.F => constants.%ptr.as.HasF.impl.F.be3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ptr.as.HasF.impl.F(constants.%T.67d) { @@ -626,15 +626,15 @@ fn G(x: A) { // CHECK:STDOUT: %.loc9_26.1 => constants.%.cb6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.6f4) { +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.3fb) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%HasF.facet.6f4 -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.f1b -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.db9 +// CHECK:STDOUT: %Self => constants.%HasF.facet.3fb +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.7fc +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.cbb // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet.6f4) { -// CHECK:STDOUT: %Self => constants.%HasF.facet.6f4 +// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet.3fb) { +// CHECK:STDOUT: %Self => constants.%HasF.facet.3fb // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%ptr.e8f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4 // CHECK:STDOUT: %.loc5_25.1 => constants.%.cb6 @@ -643,18 +643,18 @@ fn G(x: A) { // CHECK:STDOUT: specific @ptr.as.HasF.impl(constants.%empty_struct_type) { // CHECK:STDOUT: %T.loc8_15.1 => constants.%empty_struct_type // CHECK:STDOUT: %ptr.loc8_25.1 => constants.%ptr.c28 -// CHECK:STDOUT: %HasF.impl_witness.loc8_35.2 => constants.%HasF.impl_witness.639 +// CHECK:STDOUT: %HasF.impl_witness.loc8_35.2 => constants.%HasF.impl_witness.e43 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ptr.as.HasF.impl.F.type => constants.%ptr.as.HasF.impl.F.type.eca -// CHECK:STDOUT: %ptr.as.HasF.impl.F => constants.%ptr.as.HasF.impl.F.70c +// CHECK:STDOUT: %ptr.as.HasF.impl.F.type => constants.%ptr.as.HasF.impl.F.type.03e +// CHECK:STDOUT: %ptr.as.HasF.impl.F => constants.%ptr.as.HasF.impl.F.156 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.3ef) { +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.7a9) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%HasF.facet.3ef -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.a75 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.847 +// CHECK:STDOUT: %Self => constants.%HasF.facet.7a9 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.c4f +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.814 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ptr.as.HasF.impl.F(constants.%empty_struct_type) { @@ -665,12 +665,12 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type -// CHECK:STDOUT: %.loc9_37.1 => constants.%.41e -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.1c0 -// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.e29 -// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.980 -// CHECK:STDOUT: %.loc9_37.2 => constants.%.f8c -// CHECK:STDOUT: %impl.elem0.loc9_37.2 => constants.%ptr.as.Copy.impl.Op.d7b +// CHECK:STDOUT: %.loc9_37.1 => constants.%.a81 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.1c2 +// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.80f +// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.8a4 +// CHECK:STDOUT: %.loc9_37.2 => constants.%.523 +// CHECK:STDOUT: %impl.elem0.loc9_37.2 => constants.%ptr.as.Copy.impl.Op.9ed // CHECK:STDOUT: %specific_impl_fn.loc9_37.2 => constants.%ptr.as.Copy.impl.Op.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: @@ -680,10 +680,10 @@ fn G(x: A) { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.2da: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.4d3: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %pattern_type.c9f: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.a73: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.8d9: %HasF.WithSelf.F.type.4d3 = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.851: %HasF.WithSelf.F.type.a73 = struct_value () [symbolic] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] @@ -692,30 +692,30 @@ fn G(x: A) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %HasF.impl_witness.02d: = impl_witness @C.as.HasF.impl.%HasF.impl_witness_table, @C.as.HasF.impl(%T) [symbolic] -// CHECK:STDOUT: %pattern_type.69e: type = pattern_type %C.1f9 [symbolic] -// CHECK:STDOUT: %C.as.HasF.impl.F.type.d51: type = fn_type @C.as.HasF.impl.F, @C.as.HasF.impl(%T) [symbolic] -// CHECK:STDOUT: %C.as.HasF.impl.F.4fd: %C.as.HasF.impl.F.type.d51 = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.facet.081: %HasF.type = facet_value %C.1f9, (%HasF.impl_witness.02d) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.a83: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.081) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.917: %HasF.WithSelf.F.type.a83 = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %C.1f9 [symbolic] +// CHECK:STDOUT: %HasF.impl_witness.4e6: = impl_witness @C.as.HasF.impl.%HasF.impl_witness_table, @C.as.HasF.impl(%T) [symbolic] +// CHECK:STDOUT: %pattern_type.ebe: type = pattern_type %C.1d0 [symbolic] +// CHECK:STDOUT: %C.as.HasF.impl.F.type.67f: type = fn_type @C.as.HasF.impl.F, @C.as.HasF.impl(%T) [symbolic] +// CHECK:STDOUT: %C.as.HasF.impl.F.7ba: %C.as.HasF.impl.F.type.67f = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.facet.0c3: %HasF.type = facet_value %C.1d0, (%HasF.impl_witness.4e6) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.2db: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.0c3) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.5ef: %HasF.WithSelf.F.type.2db = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %C.1d0 [symbolic] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %C.ea5: type = class_type @C, @C(%empty_struct_type) [concrete] -// CHECK:STDOUT: %pattern_type.4ac: type = pattern_type %C.ea5 [concrete] +// 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: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %HasF.impl_witness.994: = impl_witness @C.as.HasF.impl.%HasF.impl_witness_table, @C.as.HasF.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %C.as.HasF.impl.F.type.613: type = fn_type @C.as.HasF.impl.F, @C.as.HasF.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %C.as.HasF.impl.F.880: %C.as.HasF.impl.F.type.613 = struct_value () [concrete] -// CHECK:STDOUT: %HasF.facet.5ef: %HasF.type = facet_value %C.ea5, (%HasF.impl_witness.994) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.type.1c2: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.5ef) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.7ab: %HasF.WithSelf.F.type.1c2 = struct_value () [concrete] -// CHECK:STDOUT: %.fc0: type = fn_type_with_self_type %HasF.WithSelf.F.type.1c2, %HasF.facet.5ef [concrete] -// CHECK:STDOUT: %C.as.HasF.impl.F.specific_fn: = specific_function %C.as.HasF.impl.F.880, @C.as.HasF.impl.F(%empty_struct_type) [concrete] +// CHECK:STDOUT: %HasF.impl_witness.f0d: = impl_witness @C.as.HasF.impl.%HasF.impl_witness_table, @C.as.HasF.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %C.as.HasF.impl.F.type.edc: type = fn_type @C.as.HasF.impl.F, @C.as.HasF.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %C.as.HasF.impl.F.612: %C.as.HasF.impl.F.type.edc = struct_value () [concrete] +// CHECK:STDOUT: %HasF.facet.132: %HasF.type = facet_value %C.d8e, (%HasF.impl_witness.f0d) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.type.938: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.132) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.787: %HasF.WithSelf.F.type.938 = struct_value () [concrete] +// CHECK:STDOUT: %.bf7: type = fn_type_with_self_type %HasF.WithSelf.F.type.938, %HasF.facet.132 [concrete] +// CHECK:STDOUT: %C.as.HasF.impl.F.specific_fn: = specific_function %C.as.HasF.impl.F.612, @C.as.HasF.impl.F(%empty_struct_type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -748,7 +748,7 @@ fn G(x: A) { // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc10_15.2 [symbolic = %T.loc10_15.1 (constants.%T)] -// CHECK:STDOUT: %C.loc10_27.2: type = class_type @C, @C(constants.%T) [symbolic = %C.loc10_27.1 (constants.%C.1f9)] +// CHECK:STDOUT: %C.loc10_27.2: type = class_type @C, @C(constants.%T) [symbolic = %C.loc10_27.1 (constants.%C.1d0)] // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.type] // CHECK:STDOUT: %.loc10_18.1: type = splice_block %.loc10_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -757,17 +757,17 @@ fn G(x: A) { // CHECK:STDOUT: %T.loc10_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc10_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.4ac = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.4ac = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.2fd = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.2fd = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %x.param: %C.ea5 = value_param call_param0 -// CHECK:STDOUT: %.loc14_13.1: type = splice_block %C [concrete = constants.%C.ea5] { +// CHECK:STDOUT: %x.param: %C.d8e = value_param call_param0 +// CHECK:STDOUT: %.loc14_13.1: type = splice_block %C [concrete = constants.%C.d8e] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %.loc14_12: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc14_13.2: type = converted %.loc14_12, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%empty_struct_type) [concrete = constants.%C.ea5] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%empty_struct_type) [concrete = constants.%C.d8e] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: %C.ea5 = value_binding x, %x.param +// CHECK:STDOUT: %x: %C.d8e = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -776,9 +776,9 @@ fn G(x: A) { // CHECK:STDOUT: %HasF.WithSelf.decl = interface_with_self_decl @HasF [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.4d3) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.8d9)] { -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.2da) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.2da) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.a73) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.851)] { +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { @@ -800,24 +800,24 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @C.as.HasF.impl(%T.loc10_15.2: type) { // CHECK:STDOUT: %T.loc10_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc10_15.1 (constants.%T)] -// CHECK:STDOUT: %C.loc10_27.1: type = class_type @C, @C(%T.loc10_15.1) [symbolic = %C.loc10_27.1 (constants.%C.1f9)] -// CHECK:STDOUT: %HasF.impl_witness.loc10_37.2: = impl_witness %HasF.impl_witness_table, @C.as.HasF.impl(%T.loc10_15.1) [symbolic = %HasF.impl_witness.loc10_37.2 (constants.%HasF.impl_witness.02d)] +// CHECK:STDOUT: %C.loc10_27.1: type = class_type @C, @C(%T.loc10_15.1) [symbolic = %C.loc10_27.1 (constants.%C.1d0)] +// CHECK:STDOUT: %HasF.impl_witness.loc10_37.2: = impl_witness %HasF.impl_witness_table, @C.as.HasF.impl(%T.loc10_15.1) [symbolic = %HasF.impl_witness.loc10_37.2 (constants.%HasF.impl_witness.4e6)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.as.HasF.impl.F.type: type = fn_type @C.as.HasF.impl.F, @C.as.HasF.impl(%T.loc10_15.1) [symbolic = %C.as.HasF.impl.F.type (constants.%C.as.HasF.impl.F.type.d51)] -// CHECK:STDOUT: %C.as.HasF.impl.F: @C.as.HasF.impl.%C.as.HasF.impl.F.type (%C.as.HasF.impl.F.type.d51) = struct_value () [symbolic = %C.as.HasF.impl.F (constants.%C.as.HasF.impl.F.4fd)] +// CHECK:STDOUT: %C.as.HasF.impl.F.type: type = fn_type @C.as.HasF.impl.F, @C.as.HasF.impl(%T.loc10_15.1) [symbolic = %C.as.HasF.impl.F.type (constants.%C.as.HasF.impl.F.type.67f)] +// CHECK:STDOUT: %C.as.HasF.impl.F: @C.as.HasF.impl.%C.as.HasF.impl.F.type (%C.as.HasF.impl.F.type.67f) = struct_value () [symbolic = %C.as.HasF.impl.F (constants.%C.as.HasF.impl.F.7ba)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.loc10_27.2 as %HasF.ref { -// CHECK:STDOUT: %C.as.HasF.impl.F.decl: @C.as.HasF.impl.%C.as.HasF.impl.F.type (%C.as.HasF.impl.F.type.d51) = fn_decl @C.as.HasF.impl.F [symbolic = @C.as.HasF.impl.%C.as.HasF.impl.F (constants.%C.as.HasF.impl.F.4fd)] { -// CHECK:STDOUT: %self.param_patt: @C.as.HasF.impl.F.%pattern_type (%pattern_type.69e) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @C.as.HasF.impl.F.%pattern_type (%pattern_type.69e) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %C.as.HasF.impl.F.decl: @C.as.HasF.impl.%C.as.HasF.impl.F.type (%C.as.HasF.impl.F.type.67f) = fn_decl @C.as.HasF.impl.F [symbolic = @C.as.HasF.impl.%C.as.HasF.impl.F (constants.%C.as.HasF.impl.F.7ba)] { +// CHECK:STDOUT: %self.param_patt: @C.as.HasF.impl.F.%pattern_type (%pattern_type.ebe) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @C.as.HasF.impl.F.%pattern_type (%pattern_type.ebe) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @C.as.HasF.impl.F.%C (%C.1f9) = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.HasF.impl.%C.loc10_27.2 [symbolic = %C (constants.%C.1f9)] -// CHECK:STDOUT: %self: @C.as.HasF.impl.F.%C (%C.1f9) = value_binding self, %self.param +// CHECK:STDOUT: %self.param: @C.as.HasF.impl.F.%C (%C.1d0) = value_param call_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.HasF.impl.%C.loc10_27.2 [symbolic = %C (constants.%C.1d0)] +// CHECK:STDOUT: %self: @C.as.HasF.impl.F.%C (%C.1d0) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %HasF.impl_witness_table = impl_witness_table (%C.as.HasF.impl.F.decl), @C.as.HasF.impl [concrete] -// CHECK:STDOUT: %HasF.impl_witness.loc10_37.1: = impl_witness %HasF.impl_witness_table, @C.as.HasF.impl(constants.%T) [symbolic = %HasF.impl_witness.loc10_37.2 (constants.%HasF.impl_witness.02d)] +// CHECK:STDOUT: %HasF.impl_witness.loc10_37.1: = impl_witness %HasF.impl_witness_table, @C.as.HasF.impl(constants.%T) [symbolic = %HasF.impl_witness.loc10_37.2 (constants.%HasF.impl_witness.4e6)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %C.as.HasF.impl.F.decl @@ -836,38 +836,38 @@ fn G(x: A) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.1f9 +// CHECK:STDOUT: .Self = constants.%C.1d0 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.WithSelf.F(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.2da)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.c9f)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @C.as.HasF.impl.F(@C.as.HasF.impl.%T.loc10_15.2: type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.1f9)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %C [symbolic = %pattern_type (constants.%pattern_type.69e)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.1d0)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %C [symbolic = %pattern_type (constants.%pattern_type.ebe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %C [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @C.as.HasF.impl.F.%C (%C.1f9)) { +// CHECK:STDOUT: fn(%self.param: @C.as.HasF.impl.F.%C (%C.1d0)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%x.param: %C.ea5) { +// CHECK:STDOUT: fn @G(%x.param: %C.d8e) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: %C.ea5 = name_ref x, %x +// CHECK:STDOUT: %x.ref: %C.d8e = name_ref x, %x // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.type] // CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, @HasF.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.fc0 = impl_witness_access constants.%HasF.impl_witness.994, element0 [concrete = constants.%C.as.HasF.impl.F.880] +// CHECK:STDOUT: %impl.elem0: %.bf7 = impl_witness_access constants.%HasF.impl_witness.f0d, element0 [concrete = constants.%C.as.HasF.impl.F.612] // CHECK:STDOUT: %bound_method.loc15_4: = bound_method %x.ref, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @C.as.HasF.impl.F(constants.%empty_struct_type) [concrete = constants.%C.as.HasF.impl.F.specific_fn] // CHECK:STDOUT: %bound_method.loc15_14: = bound_method %x.ref, %specific_fn @@ -878,14 +878,14 @@ fn G(x: A) { // CHECK:STDOUT: specific @HasF.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.4d3 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.8d9 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.a73 +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.851 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2da +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c9f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { @@ -896,31 +896,31 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.HasF.impl(constants.%T) { // CHECK:STDOUT: %T.loc10_15.1 => constants.%T -// CHECK:STDOUT: %C.loc10_27.1 => constants.%C.1f9 -// CHECK:STDOUT: %HasF.impl_witness.loc10_37.2 => constants.%HasF.impl_witness.02d +// CHECK:STDOUT: %C.loc10_27.1 => constants.%C.1d0 +// CHECK:STDOUT: %HasF.impl_witness.loc10_37.2 => constants.%HasF.impl_witness.4e6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.as.HasF.impl.F.type => constants.%C.as.HasF.impl.F.type.d51 -// CHECK:STDOUT: %C.as.HasF.impl.F => constants.%C.as.HasF.impl.F.4fd +// CHECK:STDOUT: %C.as.HasF.impl.F.type => constants.%C.as.HasF.impl.F.type.67f +// CHECK:STDOUT: %C.as.HasF.impl.F => constants.%C.as.HasF.impl.F.7ba // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.HasF.impl.F(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %C => constants.%C.1f9 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.69e +// CHECK:STDOUT: %C => constants.%C.1d0 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ebe // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.081) { +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.0c3) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%HasF.facet.081 -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.a83 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.917 +// CHECK:STDOUT: %Self => constants.%HasF.facet.0c3 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.2db +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.5ef // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet.081) { -// CHECK:STDOUT: %Self => constants.%HasF.facet.081 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%C.1f9 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.69e +// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet.0c3) { +// CHECK:STDOUT: %Self => constants.%HasF.facet.0c3 +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%C.1d0 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ebe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%empty_struct_type) { @@ -931,25 +931,25 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.HasF.impl(constants.%empty_struct_type) { // CHECK:STDOUT: %T.loc10_15.1 => constants.%empty_struct_type -// CHECK:STDOUT: %C.loc10_27.1 => constants.%C.ea5 -// CHECK:STDOUT: %HasF.impl_witness.loc10_37.2 => constants.%HasF.impl_witness.994 +// CHECK:STDOUT: %C.loc10_27.1 => constants.%C.d8e +// CHECK:STDOUT: %HasF.impl_witness.loc10_37.2 => constants.%HasF.impl_witness.f0d // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.as.HasF.impl.F.type => constants.%C.as.HasF.impl.F.type.613 -// CHECK:STDOUT: %C.as.HasF.impl.F => constants.%C.as.HasF.impl.F.880 +// CHECK:STDOUT: %C.as.HasF.impl.F.type => constants.%C.as.HasF.impl.F.type.edc +// CHECK:STDOUT: %C.as.HasF.impl.F => constants.%C.as.HasF.impl.F.612 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.5ef) { +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.132) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%HasF.facet.5ef -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.1c2 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.7ab +// CHECK:STDOUT: %Self => constants.%HasF.facet.132 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.938 +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.787 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.HasF.impl.F(constants.%empty_struct_type) { // CHECK:STDOUT: %T => constants.%empty_struct_type -// CHECK:STDOUT: %C => constants.%C.ea5 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4ac +// CHECK:STDOUT: %C => constants.%C.d8e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2fd // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type @@ -962,44 +962,44 @@ fn G(x: A) { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %HasF.type.040: type = generic_interface_type @HasF [concrete] +// CHECK:STDOUT: %HasF.type.c96: type = generic_interface_type @HasF [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %HasF.generic: %HasF.type.040 = struct_value () [concrete] -// CHECK:STDOUT: %HasF.type.91c: type = facet_type <@HasF, @HasF(%T)> [symbolic] -// CHECK:STDOUT: %Self.067: %HasF.type.91c = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.067 [symbolic] -// CHECK:STDOUT: %pattern_type.c8d: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.d19: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %Self.067) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.b0e: %HasF.WithSelf.F.type.d19 = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.assoc_type.93b: type = assoc_entity_type @HasF, @HasF(%T) [symbolic] -// CHECK:STDOUT: %assoc0.95a: %HasF.assoc_type.93b = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %HasF.generic: %HasF.type.c96 = struct_value () [concrete] +// CHECK:STDOUT: %HasF.type.daf: type = facet_type <@HasF, @HasF(%T)> [symbolic] +// CHECK:STDOUT: %Self.822: %HasF.type.daf = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.822 [symbolic] +// CHECK:STDOUT: %pattern_type.a2b: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.41d: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %Self.822) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.ff7: %HasF.WithSelf.F.type.41d = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.assoc_type.ddf: type = assoc_entity_type @HasF, @HasF(%T) [symbolic] +// CHECK:STDOUT: %assoc0.e9a: %HasF.assoc_type.ddf = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %HasF.impl_witness.b64: = impl_witness @empty_struct_type.as.HasF.impl.%HasF.impl_witness_table, @empty_struct_type.as.HasF.impl(%T) [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %HasF.type.91c [symbolic] +// CHECK:STDOUT: %HasF.impl_witness.932: = impl_witness @empty_struct_type.as.HasF.impl.%HasF.impl_witness_table, @empty_struct_type.as.HasF.impl(%T) [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %HasF.type.daf [symbolic] // CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete] -// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.type.35a: type = fn_type @empty_struct_type.as.HasF.impl.F, @empty_struct_type.as.HasF.impl(%T) [symbolic] -// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.827: %empty_struct_type.as.HasF.impl.F.type.35a = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.facet.6fb: %HasF.type.91c = facet_value %empty_struct_type, (%HasF.impl_witness.b64) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.265: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %HasF.facet.6fb) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.991: %HasF.WithSelf.F.type.265 = struct_value () [symbolic] +// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.type.5ee: type = fn_type @empty_struct_type.as.HasF.impl.F, @empty_struct_type.as.HasF.impl(%T) [symbolic] +// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.b79: %empty_struct_type.as.HasF.impl.F.type.5ee = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.facet.9f2: %HasF.type.daf = facet_value %empty_struct_type, (%HasF.impl_witness.932) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.dd7: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %HasF.facet.9f2) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.7b3: %HasF.WithSelf.F.type.dd7 = struct_value () [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %HasF.type.a43: type = facet_type <@HasF, @HasF(%empty_struct_type)> [concrete] -// CHECK:STDOUT: %Self.f8a: %HasF.type.a43 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.f80: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%empty_struct_type, %Self.067) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.df2: %HasF.WithSelf.F.type.f80 = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.assoc_type.5bf: type = assoc_entity_type @HasF, @HasF(%empty_struct_type) [concrete] -// CHECK:STDOUT: %assoc0.d84: %HasF.assoc_type.5bf = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [concrete] -// CHECK:STDOUT: %HasF.impl_witness.caa: = impl_witness @empty_struct_type.as.HasF.impl.%HasF.impl_witness_table, @empty_struct_type.as.HasF.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness %HasF.type.a43 [concrete] -// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.type.873: type = fn_type @empty_struct_type.as.HasF.impl.F, @empty_struct_type.as.HasF.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.6be: %empty_struct_type.as.HasF.impl.F.type.873 = struct_value () [concrete] -// CHECK:STDOUT: %HasF.facet.891: %HasF.type.a43 = facet_value %empty_struct_type, (%HasF.impl_witness.caa) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.type.0a1: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%empty_struct_type, %HasF.facet.891) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.765: %HasF.WithSelf.F.type.0a1 = struct_value () [concrete] -// CHECK:STDOUT: %.c1c: type = fn_type_with_self_type %HasF.WithSelf.F.type.0a1, %HasF.facet.891 [concrete] -// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.specific_fn: = specific_function %empty_struct_type.as.HasF.impl.F.6be, @empty_struct_type.as.HasF.impl.F(%empty_struct_type) [concrete] +// CHECK:STDOUT: %HasF.type.b91: type = facet_type <@HasF, @HasF(%empty_struct_type)> [concrete] +// CHECK:STDOUT: %Self.aa9: %HasF.type.b91 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.b94: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%empty_struct_type, %Self.822) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.0d9: %HasF.WithSelf.F.type.b94 = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.assoc_type.1d0: type = assoc_entity_type @HasF, @HasF(%empty_struct_type) [concrete] +// CHECK:STDOUT: %assoc0.3f7: %HasF.assoc_type.1d0 = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %HasF.impl_witness.7f1: = impl_witness @empty_struct_type.as.HasF.impl.%HasF.impl_witness_table, @empty_struct_type.as.HasF.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %complete_type: = complete_type_witness %HasF.type.b91 [concrete] +// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.type.6cf: type = fn_type @empty_struct_type.as.HasF.impl.F, @empty_struct_type.as.HasF.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.0aa: %empty_struct_type.as.HasF.impl.F.type.6cf = struct_value () [concrete] +// CHECK:STDOUT: %HasF.facet.b45: %HasF.type.b91 = facet_value %empty_struct_type, (%HasF.impl_witness.7f1) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.type.1ff: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%empty_struct_type, %HasF.facet.b45) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.260: %HasF.WithSelf.F.type.1ff = struct_value () [concrete] +// CHECK:STDOUT: %.abf: type = fn_type_with_self_type %HasF.WithSelf.F.type.1ff, %HasF.facet.b45 [concrete] +// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.specific_fn: = specific_function %empty_struct_type.as.HasF.impl.F.0aa, @empty_struct_type.as.HasF.impl.F(%empty_struct_type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1016,7 +1016,7 @@ fn G(x: A) { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %HasF.decl: %HasF.type.040 = interface_decl @HasF [concrete = constants.%HasF.generic] { +// CHECK:STDOUT: %HasF.decl: %HasF.type.c96 = interface_decl @HasF [concrete = constants.%HasF.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.2 [concrete = type] { @@ -1030,9 +1030,9 @@ fn G(x: A) { // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_25.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc8_25.2: type = converted %.loc8_25.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %HasF.ref: %HasF.type.040 = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.generic] +// CHECK:STDOUT: %HasF.ref: %HasF.type.c96 = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_15.2 [symbolic = %T.loc8_15.1 (constants.%T)] -// CHECK:STDOUT: %HasF.type.loc8_36.2: type = facet_type <@HasF, @HasF(constants.%T)> [symbolic = %HasF.type.loc8_36.1 (constants.%HasF.type.91c)] +// CHECK:STDOUT: %HasF.type.loc8_36.2: type = facet_type <@HasF, @HasF(constants.%T)> [symbolic = %HasF.type.loc8_36.1 (constants.%HasF.type.daf)] // CHECK:STDOUT: %.loc8_18.1: type = splice_block %.loc8_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc8_18.2: type = type_literal type [concrete = type] @@ -1056,28 +1056,28 @@ fn G(x: A) { // CHECK:STDOUT: %T.loc4_17.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_17.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_17.1)> [symbolic = %HasF.type (constants.%HasF.type.91c)] -// CHECK:STDOUT: %Self.loc4_26.2: @HasF.%HasF.type (%HasF.type.91c) = symbolic_binding Self, 1 [symbolic = %Self.loc4_26.2 (constants.%Self.067)] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_17.1)> [symbolic = %HasF.type (constants.%HasF.type.daf)] +// CHECK:STDOUT: %Self.loc4_26.2: @HasF.%HasF.type (%HasF.type.daf) = symbolic_binding Self, 1 [symbolic = %Self.loc4_26.2 (constants.%Self.822)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_26.1: @HasF.%HasF.type (%HasF.type.91c) = symbolic_binding Self, 1 [symbolic = %Self.loc4_26.2 (constants.%Self.067)] +// CHECK:STDOUT: %Self.loc4_26.1: @HasF.%HasF.type (%HasF.type.daf) = symbolic_binding Self, 1 [symbolic = %Self.loc4_26.2 (constants.%Self.822)] // CHECK:STDOUT: %HasF.WithSelf.decl = interface_with_self_decl @HasF [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.d19) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.b0e)] { -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c8d) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c8d) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.41d) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.ff7)] { +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.a2b) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.a2b) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %.loc5_14.2: @HasF.WithSelf.F.%HasF.type (%HasF.type.91c) = specific_constant @HasF.%Self.loc4_26.1, @HasF(constants.%T) [symbolic = %Self (constants.%Self.067)] -// CHECK:STDOUT: %Self.ref: @HasF.WithSelf.F.%HasF.type (%HasF.type.91c) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self.067)] +// CHECK:STDOUT: %.loc5_14.2: @HasF.WithSelf.F.%HasF.type (%HasF.type.daf) = specific_constant @HasF.%Self.loc4_26.1, @HasF(constants.%T) [symbolic = %Self (constants.%Self.822)] +// CHECK:STDOUT: %Self.ref: @HasF.WithSelf.F.%HasF.type (%HasF.type.daf) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self.822)] // CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc5_14.3: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc5_21.1: @HasF.WithSelf.%HasF.assoc_type (%HasF.assoc_type.93b) = assoc_entity element0, %HasF.WithSelf.F.decl [symbolic = %assoc0.loc5_21.2 (constants.%assoc0.95a)] +// CHECK:STDOUT: %assoc0.loc5_21.1: @HasF.WithSelf.%HasF.assoc_type (%HasF.assoc_type.ddf) = assoc_entity element0, %HasF.WithSelf.F.decl [symbolic = %assoc0.loc5_21.2 (constants.%assoc0.e9a)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc4_26.1 @@ -1090,16 +1090,16 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @empty_struct_type.as.HasF.impl(%T.loc8_15.2: type) { // CHECK:STDOUT: %T.loc8_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_15.1 (constants.%T)] -// CHECK:STDOUT: %HasF.type.loc8_36.1: type = facet_type <@HasF, @HasF(%T.loc8_15.1)> [symbolic = %HasF.type.loc8_36.1 (constants.%HasF.type.91c)] -// CHECK:STDOUT: %HasF.impl_witness.loc8_38.2: = impl_witness %HasF.impl_witness_table, @empty_struct_type.as.HasF.impl(%T.loc8_15.1) [symbolic = %HasF.impl_witness.loc8_38.2 (constants.%HasF.impl_witness.b64)] +// CHECK:STDOUT: %HasF.type.loc8_36.1: type = facet_type <@HasF, @HasF(%T.loc8_15.1)> [symbolic = %HasF.type.loc8_36.1 (constants.%HasF.type.daf)] +// CHECK:STDOUT: %HasF.impl_witness.loc8_38.2: = impl_witness %HasF.impl_witness_table, @empty_struct_type.as.HasF.impl(%T.loc8_15.1) [symbolic = %HasF.impl_witness.loc8_38.2 (constants.%HasF.impl_witness.932)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %HasF.type.loc8_36.1 [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.type: type = fn_type @empty_struct_type.as.HasF.impl.F, @empty_struct_type.as.HasF.impl(%T.loc8_15.1) [symbolic = %empty_struct_type.as.HasF.impl.F.type (constants.%empty_struct_type.as.HasF.impl.F.type.35a)] -// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F: @empty_struct_type.as.HasF.impl.%empty_struct_type.as.HasF.impl.F.type (%empty_struct_type.as.HasF.impl.F.type.35a) = struct_value () [symbolic = %empty_struct_type.as.HasF.impl.F (constants.%empty_struct_type.as.HasF.impl.F.827)] +// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.type: type = fn_type @empty_struct_type.as.HasF.impl.F, @empty_struct_type.as.HasF.impl(%T.loc8_15.1) [symbolic = %empty_struct_type.as.HasF.impl.F.type (constants.%empty_struct_type.as.HasF.impl.F.type.5ee)] +// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F: @empty_struct_type.as.HasF.impl.%empty_struct_type.as.HasF.impl.F.type (%empty_struct_type.as.HasF.impl.F.type.5ee) = struct_value () [symbolic = %empty_struct_type.as.HasF.impl.F (constants.%empty_struct_type.as.HasF.impl.F.b79)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc8_25.2 as %HasF.type.loc8_36.2 { -// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.decl: @empty_struct_type.as.HasF.impl.%empty_struct_type.as.HasF.impl.F.type (%empty_struct_type.as.HasF.impl.F.type.35a) = fn_decl @empty_struct_type.as.HasF.impl.F [symbolic = @empty_struct_type.as.HasF.impl.%empty_struct_type.as.HasF.impl.F (constants.%empty_struct_type.as.HasF.impl.F.827)] { +// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.decl: @empty_struct_type.as.HasF.impl.%empty_struct_type.as.HasF.impl.F.type (%empty_struct_type.as.HasF.impl.F.type.5ee) = fn_decl @empty_struct_type.as.HasF.impl.F [symbolic = @empty_struct_type.as.HasF.impl.%empty_struct_type.as.HasF.impl.F (constants.%empty_struct_type.as.HasF.impl.F.b79)] { // CHECK:STDOUT: %self.param_patt: %pattern_type.a96 = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: %pattern_type.a96 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { @@ -1108,7 +1108,7 @@ fn G(x: A) { // CHECK:STDOUT: %self: %empty_struct_type = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %HasF.impl_witness_table = impl_witness_table (%empty_struct_type.as.HasF.impl.F.decl), @empty_struct_type.as.HasF.impl [concrete] -// CHECK:STDOUT: %HasF.impl_witness.loc8_38.1: = impl_witness %HasF.impl_witness_table, @empty_struct_type.as.HasF.impl(constants.%T) [symbolic = %HasF.impl_witness.loc8_38.2 (constants.%HasF.impl_witness.b64)] +// CHECK:STDOUT: %HasF.impl_witness.loc8_38.1: = impl_witness %HasF.impl_witness_table, @empty_struct_type.as.HasF.impl(constants.%T) [symbolic = %HasF.impl_witness.loc8_38.2 (constants.%HasF.impl_witness.932)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %empty_struct_type.as.HasF.impl.F.decl @@ -1117,12 +1117,12 @@ fn G(x: A) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HasF.WithSelf.F(@HasF.%T.loc4_17.2: type, @HasF.%Self.loc4_26.1: @HasF.%HasF.type (%HasF.type.91c)) { +// CHECK:STDOUT: generic fn @HasF.WithSelf.F(@HasF.%T.loc4_17.2: type, @HasF.%Self.loc4_26.1: @HasF.%HasF.type (%HasF.type.daf)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T)> [symbolic = %HasF.type (constants.%HasF.type.91c)] -// CHECK:STDOUT: %Self: @HasF.WithSelf.F.%HasF.type (%HasF.type.91c) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.067)] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T)> [symbolic = %HasF.type (constants.%HasF.type.daf)] +// CHECK:STDOUT: %Self: @HasF.WithSelf.F.%HasF.type (%HasF.type.daf) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.822)] // CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.c8d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.a2b)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -1139,13 +1139,13 @@ fn G(x: A) { // CHECK:STDOUT: fn @G(%x.param: %empty_struct_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: %empty_struct_type = name_ref x, %x -// CHECK:STDOUT: %HasF.ref: %HasF.type.040 = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.generic] +// CHECK:STDOUT: %HasF.ref: %HasF.type.c96 = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.generic] // CHECK:STDOUT: %.loc13_12: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc13_13: type = converted %.loc13_12, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(constants.%empty_struct_type)> [concrete = constants.%HasF.type.a43] -// CHECK:STDOUT: %.loc13_14: %HasF.assoc_type.5bf = specific_constant @HasF.WithSelf.%assoc0.loc5_21.1, @HasF.WithSelf(constants.%empty_struct_type, constants.%Self.067) [concrete = constants.%assoc0.d84] -// CHECK:STDOUT: %F.ref: %HasF.assoc_type.5bf = name_ref F, %.loc13_14 [concrete = constants.%assoc0.d84] -// CHECK:STDOUT: %impl.elem0: %.c1c = impl_witness_access constants.%HasF.impl_witness.caa, element0 [concrete = constants.%empty_struct_type.as.HasF.impl.F.6be] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(constants.%empty_struct_type)> [concrete = constants.%HasF.type.b91] +// CHECK:STDOUT: %.loc13_14: %HasF.assoc_type.1d0 = specific_constant @HasF.WithSelf.%assoc0.loc5_21.1, @HasF.WithSelf(constants.%empty_struct_type, constants.%Self.822) [concrete = constants.%assoc0.3f7] +// CHECK:STDOUT: %F.ref: %HasF.assoc_type.1d0 = name_ref F, %.loc13_14 [concrete = constants.%assoc0.3f7] +// CHECK:STDOUT: %impl.elem0: %.abf = impl_witness_access constants.%HasF.impl_witness.7f1, element0 [concrete = constants.%empty_struct_type.as.HasF.impl.F.0aa] // CHECK:STDOUT: %bound_method.loc13_4: = bound_method %x.ref, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @empty_struct_type.as.HasF.impl.F(constants.%empty_struct_type) [concrete = constants.%empty_struct_type.as.HasF.impl.F.specific_fn] // CHECK:STDOUT: %bound_method.loc13_18: = bound_method %x.ref, %specific_fn @@ -1157,57 +1157,57 @@ fn G(x: A) { // CHECK:STDOUT: %T.loc4_17.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.91c -// CHECK:STDOUT: %Self.loc4_26.2 => constants.%Self.067 +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.daf +// CHECK:STDOUT: %Self.loc4_26.2 => constants.%Self.822 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%T, constants.%Self.067) { +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%T, constants.%Self.822) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.91c -// CHECK:STDOUT: %Self => constants.%Self.067 -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.d19 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.b0e -// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.93b -// CHECK:STDOUT: %assoc0.loc5_21.2 => constants.%assoc0.95a +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.daf +// CHECK:STDOUT: %Self => constants.%Self.822 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.41d +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.ff7 +// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.ddf +// CHECK:STDOUT: %assoc0.loc5_21.2 => constants.%assoc0.e9a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%T, constants.%Self.067) { +// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%T, constants.%Self.822) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.91c -// CHECK:STDOUT: %Self => constants.%Self.067 +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.daf +// CHECK:STDOUT: %Self => constants.%Self.822 // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c8d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a2b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_struct_type.as.HasF.impl(constants.%T) { // CHECK:STDOUT: %T.loc8_15.1 => constants.%T -// CHECK:STDOUT: %HasF.type.loc8_36.1 => constants.%HasF.type.91c -// CHECK:STDOUT: %HasF.impl_witness.loc8_38.2 => constants.%HasF.impl_witness.b64 +// CHECK:STDOUT: %HasF.type.loc8_36.1 => constants.%HasF.type.daf +// CHECK:STDOUT: %HasF.impl_witness.loc8_38.2 => constants.%HasF.impl_witness.932 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete -// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.type => constants.%empty_struct_type.as.HasF.impl.F.type.35a -// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F => constants.%empty_struct_type.as.HasF.impl.F.827 +// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.type => constants.%empty_struct_type.as.HasF.impl.F.type.5ee +// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F => constants.%empty_struct_type.as.HasF.impl.F.b79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_struct_type.as.HasF.impl.F(constants.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%T, constants.%HasF.facet.6fb) { +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%T, constants.%HasF.facet.9f2) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.91c -// CHECK:STDOUT: %Self => constants.%HasF.facet.6fb -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.265 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.991 -// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.93b -// CHECK:STDOUT: %assoc0.loc5_21.2 => constants.%assoc0.95a +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.daf +// CHECK:STDOUT: %Self => constants.%HasF.facet.9f2 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.dd7 +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.7b3 +// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.ddf +// CHECK:STDOUT: %assoc0.loc5_21.2 => constants.%assoc0.e9a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%T, constants.%HasF.facet.6fb) { +// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%T, constants.%HasF.facet.9f2) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.91c -// CHECK:STDOUT: %Self => constants.%HasF.facet.6fb +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.daf +// CHECK:STDOUT: %Self => constants.%HasF.facet.9f2 // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_struct_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a96 // CHECK:STDOUT: } @@ -1216,41 +1216,41 @@ fn G(x: A) { // CHECK:STDOUT: %T.loc4_17.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.a43 -// CHECK:STDOUT: %Self.loc4_26.2 => constants.%Self.f8a +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.b91 +// CHECK:STDOUT: %Self.loc4_26.2 => constants.%Self.aa9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%empty_struct_type, constants.%Self.067) { +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%empty_struct_type, constants.%Self.822) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%empty_struct_type -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.a43 -// CHECK:STDOUT: %Self => constants.%Self.067 -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.f80 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.df2 -// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.5bf -// CHECK:STDOUT: %assoc0.loc5_21.2 => constants.%assoc0.d84 +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.b91 +// CHECK:STDOUT: %Self => constants.%Self.822 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.b94 +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.0d9 +// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.1d0 +// CHECK:STDOUT: %assoc0.loc5_21.2 => constants.%assoc0.3f7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_struct_type.as.HasF.impl(constants.%empty_struct_type) { // CHECK:STDOUT: %T.loc8_15.1 => constants.%empty_struct_type -// CHECK:STDOUT: %HasF.type.loc8_36.1 => constants.%HasF.type.a43 -// CHECK:STDOUT: %HasF.impl_witness.loc8_38.2 => constants.%HasF.impl_witness.caa +// CHECK:STDOUT: %HasF.type.loc8_36.1 => constants.%HasF.type.b91 +// CHECK:STDOUT: %HasF.impl_witness.loc8_38.2 => constants.%HasF.impl_witness.7f1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type -// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.type => constants.%empty_struct_type.as.HasF.impl.F.type.873 -// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F => constants.%empty_struct_type.as.HasF.impl.F.6be +// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.type => constants.%empty_struct_type.as.HasF.impl.F.type.6cf +// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F => constants.%empty_struct_type.as.HasF.impl.F.0aa // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%empty_struct_type, constants.%HasF.facet.891) { +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%empty_struct_type, constants.%HasF.facet.b45) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%empty_struct_type -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.a43 -// CHECK:STDOUT: %Self => constants.%HasF.facet.891 -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.0a1 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.765 -// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.5bf -// CHECK:STDOUT: %assoc0.loc5_21.2 => constants.%assoc0.d84 +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.b91 +// CHECK:STDOUT: %Self => constants.%HasF.facet.b45 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.1ff +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.260 +// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.1d0 +// CHECK:STDOUT: %assoc0.loc5_21.2 => constants.%assoc0.3f7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_struct_type.as.HasF.impl.F(constants.%empty_struct_type) { @@ -1263,7 +1263,7 @@ fn G(x: A) { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.2da: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.c9f: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.type: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F: %HasF.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] @@ -1336,8 +1336,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F)] { -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.2da) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.2da) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { @@ -1388,7 +1388,7 @@ fn G(x: A) { // CHECK:STDOUT: generic fn @HasF.WithSelf.F(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.2da)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.c9f)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -1424,7 +1424,7 @@ fn G(x: A) { // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2da +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c9f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.HasF.impl(constants.%T, constants.%U) { @@ -1449,38 +1449,38 @@ fn G(x: A) { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %HasF.type.040: type = generic_interface_type @HasF [concrete] -// CHECK:STDOUT: %HasF.generic: %HasF.type.040 = struct_value () [concrete] -// CHECK:STDOUT: %HasF.type.91c: type = facet_type <@HasF, @HasF(%T)> [symbolic] -// CHECK:STDOUT: %Self.067: %HasF.type.91c = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.067 [symbolic] -// CHECK:STDOUT: %pattern_type.c8d: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.d19: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %Self.067) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.b0e: %HasF.WithSelf.F.type.d19 = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.assoc_type.93b: type = assoc_entity_type @HasF, @HasF(%T) [symbolic] -// CHECK:STDOUT: %assoc0.95a: %HasF.assoc_type.93b = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %HasF.type.c96: type = generic_interface_type @HasF [concrete] +// CHECK:STDOUT: %HasF.generic: %HasF.type.c96 = struct_value () [concrete] +// CHECK:STDOUT: %HasF.type.daf: type = facet_type <@HasF, @HasF(%T)> [symbolic] +// CHECK:STDOUT: %Self.822: %HasF.type.daf = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.822 [symbolic] +// CHECK:STDOUT: %pattern_type.a2b: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.41d: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %Self.822) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.ff7: %HasF.WithSelf.F.type.41d = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.assoc_type.ddf: type = assoc_entity_type @HasF, @HasF(%T) [symbolic] +// CHECK:STDOUT: %assoc0.e9a: %HasF.assoc_type.ddf = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [symbolic] // CHECK:STDOUT: %HasF.impl_witness: = impl_witness @T.as.HasF.impl.%HasF.impl_witness_table, @T.as.HasF.impl(%T) [symbolic] -// CHECK:STDOUT: %require_complete.b6b: = require_complete_type %HasF.type.91c [symbolic] +// CHECK:STDOUT: %require_complete.513: = require_complete_type %HasF.type.daf [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] // CHECK:STDOUT: %T.as.HasF.impl.F.type: type = fn_type @T.as.HasF.impl.F, @T.as.HasF.impl(%T) [symbolic] // CHECK:STDOUT: %T.as.HasF.impl.F: %T.as.HasF.impl.F.type = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.facet: %HasF.type.91c = facet_value %T, (%HasF.impl_witness) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.b46: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %HasF.facet) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.56a: %HasF.WithSelf.F.type.b46 = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.facet: %HasF.type.daf = facet_value %T, (%HasF.impl_witness) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.f9f: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %HasF.facet) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.3d5: %HasF.WithSelf.F.type.f9f = struct_value () [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] -// CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %HasF.type.90e: type = facet_type <@HasF, @HasF(%B)> [concrete] -// CHECK:STDOUT: %Self.baa: %HasF.type.90e = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.534: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%B, %Self.067) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.f7e: %HasF.WithSelf.F.type.534 = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.assoc_type.e5f: type = assoc_entity_type @HasF, @HasF(%B) [concrete] -// CHECK:STDOUT: %assoc0.4f9: %HasF.assoc_type.e5f = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %HasF.type.5a7: type = facet_type <@HasF, @HasF(%B)> [concrete] +// CHECK:STDOUT: %Self.ad0: %HasF.type.5a7 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.2a0: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%B, %Self.822) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.836: %HasF.WithSelf.F.type.2a0 = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.assoc_type.43e: type = assoc_entity_type @HasF, @HasF(%B) [concrete] +// CHECK:STDOUT: %assoc0.613: %HasF.assoc_type.43e = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1499,7 +1499,7 @@ fn G(x: A) { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %HasF.decl: %HasF.type.040 = interface_decl @HasF [concrete = constants.%HasF.generic] { +// CHECK:STDOUT: %HasF.decl: %HasF.type.c96 = interface_decl @HasF [concrete = constants.%HasF.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.2 [concrete = type] { @@ -1512,9 +1512,9 @@ fn G(x: A) { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc8_24: type = name_ref T, %T.loc8_15.2 [symbolic = %T.loc8_15.1 (constants.%T)] -// CHECK:STDOUT: %HasF.ref: %HasF.type.040 = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.generic] +// CHECK:STDOUT: %HasF.ref: %HasF.type.c96 = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.generic] // CHECK:STDOUT: %T.ref.loc8_34: type = name_ref T, %T.loc8_15.2 [symbolic = %T.loc8_15.1 (constants.%T)] -// CHECK:STDOUT: %HasF.type.loc8_35.2: type = facet_type <@HasF, @HasF(constants.%T)> [symbolic = %HasF.type.loc8_35.1 (constants.%HasF.type.91c)] +// CHECK:STDOUT: %HasF.type.loc8_35.2: type = facet_type <@HasF, @HasF(constants.%T)> [symbolic = %HasF.type.loc8_35.1 (constants.%HasF.type.daf)] // CHECK:STDOUT: %.loc8_18.1: type = splice_block %.loc8_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc8_18.2: type = type_literal type [concrete = type] @@ -1524,8 +1524,8 @@ fn G(x: A) { // CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.ccb = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.ccb = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.9ef = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.9ef = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %A = value_param call_param0 // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] @@ -1537,28 +1537,28 @@ fn G(x: A) { // CHECK:STDOUT: %T.loc4_17.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_17.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_17.1)> [symbolic = %HasF.type (constants.%HasF.type.91c)] -// CHECK:STDOUT: %Self.loc4_26.2: @HasF.%HasF.type (%HasF.type.91c) = symbolic_binding Self, 1 [symbolic = %Self.loc4_26.2 (constants.%Self.067)] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_17.1)> [symbolic = %HasF.type (constants.%HasF.type.daf)] +// CHECK:STDOUT: %Self.loc4_26.2: @HasF.%HasF.type (%HasF.type.daf) = symbolic_binding Self, 1 [symbolic = %Self.loc4_26.2 (constants.%Self.822)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_26.1: @HasF.%HasF.type (%HasF.type.91c) = symbolic_binding Self, 1 [symbolic = %Self.loc4_26.2 (constants.%Self.067)] +// CHECK:STDOUT: %Self.loc4_26.1: @HasF.%HasF.type (%HasF.type.daf) = symbolic_binding Self, 1 [symbolic = %Self.loc4_26.2 (constants.%Self.822)] // CHECK:STDOUT: %HasF.WithSelf.decl = interface_with_self_decl @HasF [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.d19) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.b0e)] { -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c8d) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c8d) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.41d) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.ff7)] { +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.a2b) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.a2b) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %.loc5_14.2: @HasF.WithSelf.F.%HasF.type (%HasF.type.91c) = specific_constant @HasF.%Self.loc4_26.1, @HasF(constants.%T) [symbolic = %Self (constants.%Self.067)] -// CHECK:STDOUT: %Self.ref: @HasF.WithSelf.F.%HasF.type (%HasF.type.91c) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self.067)] +// CHECK:STDOUT: %.loc5_14.2: @HasF.WithSelf.F.%HasF.type (%HasF.type.daf) = specific_constant @HasF.%Self.loc4_26.1, @HasF(constants.%T) [symbolic = %Self (constants.%Self.822)] +// CHECK:STDOUT: %Self.ref: @HasF.WithSelf.F.%HasF.type (%HasF.type.daf) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self.822)] // CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc5_14.3: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc5_21.1: @HasF.WithSelf.%HasF.assoc_type (%HasF.assoc_type.93b) = assoc_entity element0, %HasF.WithSelf.F.decl [symbolic = %assoc0.loc5_21.2 (constants.%assoc0.95a)] +// CHECK:STDOUT: %assoc0.loc5_21.1: @HasF.WithSelf.%HasF.assoc_type (%HasF.assoc_type.ddf) = assoc_entity element0, %HasF.WithSelf.F.decl [symbolic = %assoc0.loc5_21.2 (constants.%assoc0.e9a)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc4_26.1 @@ -1571,11 +1571,11 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @T.as.HasF.impl(%T.loc8_15.2: type) { // CHECK:STDOUT: %T.loc8_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_15.1 (constants.%T)] -// CHECK:STDOUT: %HasF.type.loc8_35.1: type = facet_type <@HasF, @HasF(%T.loc8_15.1)> [symbolic = %HasF.type.loc8_35.1 (constants.%HasF.type.91c)] +// CHECK:STDOUT: %HasF.type.loc8_35.1: type = facet_type <@HasF, @HasF(%T.loc8_15.1)> [symbolic = %HasF.type.loc8_35.1 (constants.%HasF.type.daf)] // CHECK:STDOUT: %HasF.impl_witness.loc8_37.2: = impl_witness %HasF.impl_witness_table, @T.as.HasF.impl(%T.loc8_15.1) [symbolic = %HasF.impl_witness.loc8_37.2 (constants.%HasF.impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %HasF.type.loc8_35.1 [symbolic = %require_complete (constants.%require_complete.b6b)] +// CHECK:STDOUT: %require_complete: = require_complete_type %HasF.type.loc8_35.1 [symbolic = %require_complete (constants.%require_complete.513)] // CHECK:STDOUT: %T.as.HasF.impl.F.type: type = fn_type @T.as.HasF.impl.F, @T.as.HasF.impl(%T.loc8_15.1) [symbolic = %T.as.HasF.impl.F.type (constants.%T.as.HasF.impl.F.type)] // CHECK:STDOUT: %T.as.HasF.impl.F: @T.as.HasF.impl.%T.as.HasF.impl.F.type (%T.as.HasF.impl.F.type) = struct_value () [symbolic = %T.as.HasF.impl.F (constants.%T.as.HasF.impl.F)] // CHECK:STDOUT: @@ -1614,12 +1614,12 @@ fn G(x: A) { // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HasF.WithSelf.F(@HasF.%T.loc4_17.2: type, @HasF.%Self.loc4_26.1: @HasF.%HasF.type (%HasF.type.91c)) { +// CHECK:STDOUT: generic fn @HasF.WithSelf.F(@HasF.%T.loc4_17.2: type, @HasF.%Self.loc4_26.1: @HasF.%HasF.type (%HasF.type.daf)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T)> [symbolic = %HasF.type (constants.%HasF.type.91c)] -// CHECK:STDOUT: %Self: @HasF.WithSelf.F.%HasF.type (%HasF.type.91c) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.067)] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T)> [symbolic = %HasF.type (constants.%HasF.type.daf)] +// CHECK:STDOUT: %Self: @HasF.WithSelf.F.%HasF.type (%HasF.type.daf) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.822)] // CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.c8d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.a2b)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -1640,11 +1640,11 @@ fn G(x: A) { // CHECK:STDOUT: fn @G(%x.param: %A) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: %A = name_ref x, %x -// CHECK:STDOUT: %HasF.ref: %HasF.type.040 = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.generic] +// CHECK:STDOUT: %HasF.ref: %HasF.type.c96 = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.generic] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(constants.%B)> [concrete = constants.%HasF.type.90e] -// CHECK:STDOUT: %.loc22: %HasF.assoc_type.e5f = specific_constant @HasF.WithSelf.%assoc0.loc5_21.1, @HasF.WithSelf(constants.%B, constants.%Self.067) [concrete = constants.%assoc0.4f9] -// CHECK:STDOUT: %F.ref: %HasF.assoc_type.e5f = name_ref F, %.loc22 [concrete = constants.%assoc0.4f9] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(constants.%B)> [concrete = constants.%HasF.type.5a7] +// CHECK:STDOUT: %.loc22: %HasF.assoc_type.43e = specific_constant @HasF.WithSelf.%assoc0.loc5_21.1, @HasF.WithSelf(constants.%B, constants.%Self.822) [concrete = constants.%assoc0.613] +// CHECK:STDOUT: %F.ref: %HasF.assoc_type.43e = name_ref F, %.loc22 [concrete = constants.%assoc0.613] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1652,36 +1652,36 @@ fn G(x: A) { // CHECK:STDOUT: %T.loc4_17.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.91c -// CHECK:STDOUT: %Self.loc4_26.2 => constants.%Self.067 +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.daf +// CHECK:STDOUT: %Self.loc4_26.2 => constants.%Self.822 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%T, constants.%Self.067) { +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%T, constants.%Self.822) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.91c -// CHECK:STDOUT: %Self => constants.%Self.067 -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.d19 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.b0e -// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.93b -// CHECK:STDOUT: %assoc0.loc5_21.2 => constants.%assoc0.95a +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.daf +// CHECK:STDOUT: %Self => constants.%Self.822 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.41d +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.ff7 +// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.ddf +// CHECK:STDOUT: %assoc0.loc5_21.2 => constants.%assoc0.e9a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%T, constants.%Self.067) { +// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%T, constants.%Self.822) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.91c -// CHECK:STDOUT: %Self => constants.%Self.067 +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.daf +// CHECK:STDOUT: %Self => constants.%Self.822 // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c8d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a2b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.HasF.impl(constants.%T) { // CHECK:STDOUT: %T.loc8_15.1 => constants.%T -// CHECK:STDOUT: %HasF.type.loc8_35.1 => constants.%HasF.type.91c +// CHECK:STDOUT: %HasF.type.loc8_35.1 => constants.%HasF.type.daf // CHECK:STDOUT: %HasF.impl_witness.loc8_37.2 => constants.%HasF.impl_witness // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.b6b +// CHECK:STDOUT: %require_complete => constants.%require_complete.513 // CHECK:STDOUT: %T.as.HasF.impl.F.type => constants.%T.as.HasF.impl.F.type // CHECK:STDOUT: %T.as.HasF.impl.F => constants.%T.as.HasF.impl.F // CHECK:STDOUT: } @@ -1694,17 +1694,17 @@ fn G(x: A) { // CHECK:STDOUT: specific @HasF.WithSelf(constants.%T, constants.%HasF.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.91c +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.daf // CHECK:STDOUT: %Self => constants.%HasF.facet -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.b46 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.56a -// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.93b -// CHECK:STDOUT: %assoc0.loc5_21.2 => constants.%assoc0.95a +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.f9f +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.3d5 +// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.ddf +// CHECK:STDOUT: %assoc0.loc5_21.2 => constants.%assoc0.e9a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%T, constants.%HasF.facet) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.91c +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.daf // CHECK:STDOUT: %Self => constants.%HasF.facet // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d @@ -1714,18 +1714,18 @@ fn G(x: A) { // CHECK:STDOUT: %T.loc4_17.1 => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.90e -// CHECK:STDOUT: %Self.loc4_26.2 => constants.%Self.baa +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.5a7 +// CHECK:STDOUT: %Self.loc4_26.2 => constants.%Self.ad0 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%B, constants.%Self.067) { +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%B, constants.%Self.822) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%B -// CHECK:STDOUT: %HasF.type => constants.%HasF.type.90e -// CHECK:STDOUT: %Self => constants.%Self.067 -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.534 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.f7e -// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.e5f -// CHECK:STDOUT: %assoc0.loc5_21.2 => constants.%assoc0.4f9 +// CHECK:STDOUT: %HasF.type => constants.%HasF.type.5a7 +// CHECK:STDOUT: %Self => constants.%Self.822 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.2a0 +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.836 +// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.43e +// CHECK:STDOUT: %assoc0.loc5_21.2 => constants.%assoc0.613 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/impl_forall.carbon b/toolchain/check/testdata/impl/lookup/impl_forall.carbon index 6c02c6aeb2e8..8d0836a80f2a 100644 --- a/toolchain/check/testdata/impl/lookup/impl_forall.carbon +++ b/toolchain/check/testdata/impl/lookup/impl_forall.carbon @@ -51,91 +51,91 @@ fn TestSpecific(a: A({})*) -> {}* { // CHECK:STDOUT: %A.type: type = generic_class_type @A [concrete] // CHECK:STDOUT: %A.generic: %A.type = struct_value () [concrete] // CHECK:STDOUT: %U.67d: type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.50feb0.1: type = facet_type <@I, @I(%U.67d)> [symbolic] -// CHECK:STDOUT: %Self.6263de.1: %I.type.50feb0.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.3fe556.1: type = facet_type <@I, @I(%U.67d)> [symbolic] +// CHECK:STDOUT: %Self.1916c4.1: %I.type.3fe556.1 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %V.67d: type = symbolic_binding V, 0 [symbolic] -// CHECK:STDOUT: %A.6eda0e.2: type = class_type @A, @A(%V.67d) [symbolic] -// CHECK:STDOUT: %I.type.50feb0.2: type = facet_type <@I, @I(%V.67d)> [symbolic] -// CHECK:STDOUT: %I.impl_witness.580224.1: = impl_witness @A.as.I.impl.%I.impl_witness_table, @A.as.I.impl(%V.67d) [symbolic] -// CHECK:STDOUT: %require_complete.df9dcc.1: = require_complete_type %I.type.50feb0.2 [symbolic] -// CHECK:STDOUT: %pattern_type.2e18a7.1: type = pattern_type %A.6eda0e.2 [symbolic] +// CHECK:STDOUT: %A.47a1de.2: type = class_type @A, @A(%V.67d) [symbolic] +// CHECK:STDOUT: %I.type.3fe556.2: type = facet_type <@I, @I(%V.67d)> [symbolic] +// CHECK:STDOUT: %I.impl_witness.25d8bb.1: = impl_witness @A.as.I.impl.%I.impl_witness_table, @A.as.I.impl(%V.67d) [symbolic] +// CHECK:STDOUT: %require_complete.45eab2.1: = require_complete_type %I.type.3fe556.2 [symbolic] +// CHECK:STDOUT: %pattern_type.44a178.1: type = pattern_type %A.47a1de.2 [symbolic] // CHECK:STDOUT: %ptr.e8f8f9.2: type = ptr_type %V.67d [symbolic] // CHECK:STDOUT: %.cb6cb9.2: Core.Form = init_form %ptr.e8f8f9.2 [symbolic] // CHECK:STDOUT: %pattern_type.4f4b84.2: type = pattern_type %ptr.e8f8f9.2 [symbolic] -// CHECK:STDOUT: %A.as.I.impl.F.type.f4acbf.1: type = fn_type @A.as.I.impl.F, @A.as.I.impl(%V.67d) [symbolic] -// CHECK:STDOUT: %A.as.I.impl.F.91160c.1: %A.as.I.impl.F.type.f4acbf.1 = struct_value () [symbolic] -// CHECK:STDOUT: %A.elem.e8eca3.2: type = unbound_element_type %A.6eda0e.2, %V.67d [symbolic] -// CHECK:STDOUT: %require_complete.4ad: = require_complete_type %A.6eda0e.2 [symbolic] +// CHECK:STDOUT: %A.as.I.impl.F.type.d1ec9e.1: type = fn_type @A.as.I.impl.F, @A.as.I.impl(%V.67d) [symbolic] +// CHECK:STDOUT: %A.as.I.impl.F.d83bf5.1: %A.as.I.impl.F.type.d1ec9e.1 = struct_value () [symbolic] +// CHECK:STDOUT: %A.elem.d41ac1.2: type = unbound_element_type %A.47a1de.2, %V.67d [symbolic] +// CHECK:STDOUT: %require_complete.c7a: = require_complete_type %A.47a1de.2 [symbolic] // CHECK:STDOUT: %require_complete.ef162c.1: = require_complete_type %ptr.e8f8f9.2 [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa424f.1: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1c66.1: %ptr.as.Copy.impl.Op.type.aa424f.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2bf: = lookup_impl_witness %ptr.e8f8f9.2, @Copy [symbolic] -// CHECK:STDOUT: %.b6a: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%V.67d) [symbolic] -// CHECK:STDOUT: %Copy.facet.44d: %Copy.type = facet_value %ptr.e8f8f9.2, (%Copy.lookup_impl_witness.2bf) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.72b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.44d) [symbolic] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.72b, %Copy.facet.44d [symbolic] -// CHECK:STDOUT: %impl.elem0.8a3: %.39b = impl_witness_access %Copy.lookup_impl_witness.2bf, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a13: = specific_impl_function %impl.elem0.8a3, @Copy.WithSelf.Op(%Copy.facet.44d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5f0d.1: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce912e.1: %ptr.as.Copy.impl.Op.type.ff5f0d.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.1da: = lookup_impl_witness %ptr.e8f8f9.2, @Copy [symbolic] +// CHECK:STDOUT: %.0e9: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%V.67d) [symbolic] +// CHECK:STDOUT: %Copy.facet.302: %Copy.type = facet_value %ptr.e8f8f9.2, (%Copy.lookup_impl_witness.1da) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.884: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.302) [symbolic] +// CHECK:STDOUT: %.be5: type = fn_type_with_self_type %Copy.WithSelf.Op.type.884, %Copy.facet.302 [symbolic] +// CHECK:STDOUT: %impl.elem0.484: %.be5 = impl_witness_access %Copy.lookup_impl_witness.1da, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.a76: = specific_impl_function %impl.elem0.484, @Copy.WithSelf.Op(%Copy.facet.302) [symbolic] // CHECK:STDOUT: %W: type = symbolic_binding W, 0 [symbolic] -// CHECK:STDOUT: %A.6eda0e.3: type = class_type @A, @A(%W) [symbolic] -// CHECK:STDOUT: %ptr.670: type = ptr_type %A.6eda0e.3 [symbolic] -// CHECK:STDOUT: %pattern_type.aa5: type = pattern_type %ptr.670 [symbolic] +// CHECK:STDOUT: %A.47a1de.3: type = class_type @A, @A(%W) [symbolic] +// CHECK:STDOUT: %ptr.5ab: type = ptr_type %A.47a1de.3 [symbolic] +// CHECK:STDOUT: %pattern_type.c61: type = pattern_type %ptr.5ab [symbolic] // CHECK:STDOUT: %ptr.e8f8f9.4: type = ptr_type %W [symbolic] // CHECK:STDOUT: %.cb6cb9.4: Core.Form = init_form %ptr.e8f8f9.4 [symbolic] // CHECK:STDOUT: %pattern_type.4f4b84.4: type = pattern_type %ptr.e8f8f9.4 [symbolic] -// CHECK:STDOUT: %I.type.50feb0.3: type = facet_type <@I, @I(%W)> [symbolic] -// CHECK:STDOUT: %I.assoc_type.bd7023.3: type = assoc_entity_type @I, @I(%W) [symbolic] -// CHECK:STDOUT: %assoc0.631ba7.3: %I.assoc_type.bd7023.3 = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [symbolic] -// CHECK:STDOUT: %require_complete.df9dcc.2: = require_complete_type %I.type.50feb0.3 [symbolic] -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %A.6eda0e.3, @I, @I(%W) [symbolic] -// CHECK:STDOUT: %I.impl_witness.580224.2: = impl_witness @A.as.I.impl.%I.impl_witness_table, @A.as.I.impl(%W) [symbolic] -// CHECK:STDOUT: %A.as.I.impl.F.type.f4acbf.2: type = fn_type @A.as.I.impl.F, @A.as.I.impl(%W) [symbolic] -// CHECK:STDOUT: %A.as.I.impl.F.91160c.2: %A.as.I.impl.F.type.f4acbf.2 = struct_value () [symbolic] -// CHECK:STDOUT: %.f9e: require_specific_def_type = require_specific_def @A.as.I.impl(%W) [symbolic] -// CHECK:STDOUT: %I.facet.42f: %I.type.50feb0.3 = facet_value %A.6eda0e.3, (%I.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.125: type = fn_type @I.WithSelf.F, @I.WithSelf(%W, %I.facet.42f) [symbolic] -// CHECK:STDOUT: %.00e: type = fn_type_with_self_type %I.WithSelf.F.type.125, %I.facet.42f [symbolic] -// CHECK:STDOUT: %impl.elem0.ac1: %.00e = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.4e2: = specific_impl_function %impl.elem0.ac1, @I.WithSelf.F(%W, %I.facet.42f) [symbolic] +// CHECK:STDOUT: %I.type.3fe556.3: type = facet_type <@I, @I(%W)> [symbolic] +// CHECK:STDOUT: %I.assoc_type.b71f2b.3: type = assoc_entity_type @I, @I(%W) [symbolic] +// CHECK:STDOUT: %assoc0.13b5f8.3: %I.assoc_type.b71f2b.3 = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %require_complete.45eab2.2: = require_complete_type %I.type.3fe556.3 [symbolic] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %A.47a1de.3, @I, @I(%W) [symbolic] +// CHECK:STDOUT: %I.impl_witness.25d8bb.2: = impl_witness @A.as.I.impl.%I.impl_witness_table, @A.as.I.impl(%W) [symbolic] +// CHECK:STDOUT: %A.as.I.impl.F.type.d1ec9e.2: type = fn_type @A.as.I.impl.F, @A.as.I.impl(%W) [symbolic] +// CHECK:STDOUT: %A.as.I.impl.F.d83bf5.2: %A.as.I.impl.F.type.d1ec9e.2 = struct_value () [symbolic] +// CHECK:STDOUT: %.346: require_specific_def_type = require_specific_def @A.as.I.impl(%W) [symbolic] +// CHECK:STDOUT: %I.facet.3c2: %I.type.3fe556.3 = facet_value %A.47a1de.3, (%I.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.52e: type = fn_type @I.WithSelf.F, @I.WithSelf(%W, %I.facet.3c2) [symbolic] +// CHECK:STDOUT: %.72b: type = fn_type_with_self_type %I.WithSelf.F.type.52e, %I.facet.3c2 [symbolic] +// CHECK:STDOUT: %impl.elem0.089: %.72b = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.250: = specific_impl_function %impl.elem0.089, @I.WithSelf.F(%W, %I.facet.3c2) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %A.966: type = class_type @A, @A(%empty_struct_type) [concrete] -// CHECK:STDOUT: %ptr.f6a: type = ptr_type %A.966 [concrete] +// CHECK:STDOUT: %A.940: type = class_type @A, @A(%empty_struct_type) [concrete] +// CHECK:STDOUT: %ptr.d35: type = ptr_type %A.940 [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] // CHECK:STDOUT: %.9ba: Core.Form = init_form %ptr.c28 [concrete] // CHECK:STDOUT: %pattern_type.1cc: type = pattern_type %ptr.c28 [concrete] -// CHECK:STDOUT: %I.type.317: type = facet_type <@I, @I(%empty_struct_type)> [concrete] -// CHECK:STDOUT: %I.assoc_type.4a0: type = assoc_entity_type @I, @I(%empty_struct_type) [concrete] -// CHECK:STDOUT: %assoc0.379: %I.assoc_type.4a0 = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] -// CHECK:STDOUT: %I.impl_witness.865: = impl_witness @A.as.I.impl.%I.impl_witness_table, @A.as.I.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %complete_type.d9a: = complete_type_witness %I.type.317 [concrete] -// CHECK:STDOUT: %A.as.I.impl.F.type.0a1: type = fn_type @A.as.I.impl.F, @A.as.I.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %A.as.I.impl.F.36b: %A.as.I.impl.F.type.0a1 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet.7fa: %I.type.317 = facet_value %A.966, (%I.impl_witness.865) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.69a: type = fn_type @I.WithSelf.F, @I.WithSelf(%empty_struct_type, %I.facet.7fa) [concrete] -// CHECK:STDOUT: %.329: type = fn_type_with_self_type %I.WithSelf.F.type.69a, %I.facet.7fa [concrete] -// CHECK:STDOUT: %pattern_type.53f: type = pattern_type %A.966 [concrete] -// CHECK:STDOUT: %A.as.I.impl.F.specific_fn: = specific_function %A.as.I.impl.F.36b, @A.as.I.impl.F(%empty_struct_type) [concrete] -// CHECK:STDOUT: %A.elem.71e: type = unbound_element_type %A.966, %empty_struct_type [concrete] +// CHECK:STDOUT: %I.type.81d: type = facet_type <@I, @I(%empty_struct_type)> [concrete] +// CHECK:STDOUT: %I.assoc_type.cd3: type = assoc_entity_type @I, @I(%empty_struct_type) [concrete] +// CHECK:STDOUT: %assoc0.a4c: %I.assoc_type.cd3 = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %I.impl_witness.e69: = impl_witness @A.as.I.impl.%I.impl_witness_table, @A.as.I.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %complete_type.7da: = complete_type_witness %I.type.81d [concrete] +// CHECK:STDOUT: %A.as.I.impl.F.type.a42: type = fn_type @A.as.I.impl.F, @A.as.I.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %A.as.I.impl.F.837: %A.as.I.impl.F.type.a42 = struct_value () [concrete] +// CHECK:STDOUT: %I.facet.3f4: %I.type.81d = facet_value %A.940, (%I.impl_witness.e69) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.071: type = fn_type @I.WithSelf.F, @I.WithSelf(%empty_struct_type, %I.facet.3f4) [concrete] +// CHECK:STDOUT: %.6b2: type = fn_type_with_self_type %I.WithSelf.F.type.071, %I.facet.3f4 [concrete] +// CHECK:STDOUT: %pattern_type.1ff: type = pattern_type %A.940 [concrete] +// CHECK:STDOUT: %A.as.I.impl.F.specific_fn: = specific_function %A.as.I.impl.F.837, @A.as.I.impl.F(%empty_struct_type) [concrete] +// CHECK:STDOUT: %A.elem.339: type = unbound_element_type %A.940, %empty_struct_type [concrete] // CHECK:STDOUT: %struct_type.n.91c: type = struct_type {.n: %empty_struct_type} [concrete] // CHECK:STDOUT: %complete_type.0a6: = complete_type_witness %struct_type.n.91c [concrete] // CHECK:STDOUT: %complete_type.38e: = complete_type_witness %ptr.c28 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.1c0: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.91f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.d7b: %ptr.as.Copy.impl.Op.type.91f = struct_value () [concrete] -// CHECK:STDOUT: %.41e: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %Copy.facet.e29: %Copy.type = facet_value %ptr.c28, (%Copy.impl_witness.1c0) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.980: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.e29) [concrete] -// CHECK:STDOUT: %.f8c: type = fn_type_with_self_type %Copy.WithSelf.Op.type.980, %Copy.facet.e29 [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.d7b, @ptr.as.Copy.impl.Op(%empty_struct_type) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.1c2: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.6c5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.9ed: %ptr.as.Copy.impl.Op.type.6c5 = struct_value () [concrete] +// CHECK:STDOUT: %.a81: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %Copy.facet.80f: %Copy.type = facet_value %ptr.c28, (%Copy.impl_witness.1c2) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8a4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.80f) [concrete] +// CHECK:STDOUT: %.523: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8a4, %Copy.facet.80f [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.9ed, @ptr.as.Copy.impl.Op(%empty_struct_type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa424f.1) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1c66.1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5f0d.1) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce912e.1)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -144,10 +144,10 @@ fn TestSpecific(a: A({})*) -> {}* { // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: %A.type = name_ref A, file.%A.decl [concrete = constants.%A.generic] // CHECK:STDOUT: %V.ref.loc12_26: type = name_ref V, %V.loc12_15.2 [symbolic = %V.loc12_15.1 (constants.%V.67d)] -// CHECK:STDOUT: %A.loc12_27.2: type = class_type @A, @A(constants.%V.67d) [symbolic = %A.loc12_27.1 (constants.%A.6eda0e.2)] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %A.loc12_27.2: type = class_type @A, @A(constants.%V.67d) [symbolic = %A.loc12_27.1 (constants.%A.47a1de.2)] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %V.ref.loc12_34: type = name_ref V, %V.loc12_15.2 [symbolic = %V.loc12_15.1 (constants.%V.67d)] -// CHECK:STDOUT: %I.type.loc12_35.2: type = facet_type <@I, @I(constants.%V.67d)> [symbolic = %I.type.loc12_35.1 (constants.%I.type.50feb0.2)] +// CHECK:STDOUT: %I.type.loc12_35.2: type = facet_type <@I, @I(constants.%V.67d)> [symbolic = %I.type.loc12_35.1 (constants.%I.type.3fe556.2)] // CHECK:STDOUT: %.loc12_18.1: type = splice_block %.loc12_18.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc12_18.2: type = type_literal type [concrete = type] @@ -158,33 +158,33 @@ fn TestSpecific(a: A({})*) -> {}* { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @A.as.I.impl(%V.loc12_15.2: type) { // CHECK:STDOUT: %V.loc12_15.1: type = symbolic_binding V, 0 [symbolic = %V.loc12_15.1 (constants.%V.67d)] -// CHECK:STDOUT: %A.loc12_27.1: type = class_type @A, @A(%V.loc12_15.1) [symbolic = %A.loc12_27.1 (constants.%A.6eda0e.2)] -// CHECK:STDOUT: %I.type.loc12_35.1: type = facet_type <@I, @I(%V.loc12_15.1)> [symbolic = %I.type.loc12_35.1 (constants.%I.type.50feb0.2)] -// CHECK:STDOUT: %I.impl_witness.loc12_37.2: = impl_witness %I.impl_witness_table, @A.as.I.impl(%V.loc12_15.1) [symbolic = %I.impl_witness.loc12_37.2 (constants.%I.impl_witness.580224.1)] +// CHECK:STDOUT: %A.loc12_27.1: type = class_type @A, @A(%V.loc12_15.1) [symbolic = %A.loc12_27.1 (constants.%A.47a1de.2)] +// CHECK:STDOUT: %I.type.loc12_35.1: type = facet_type <@I, @I(%V.loc12_15.1)> [symbolic = %I.type.loc12_35.1 (constants.%I.type.3fe556.2)] +// CHECK:STDOUT: %I.impl_witness.loc12_37.2: = impl_witness %I.impl_witness_table, @A.as.I.impl(%V.loc12_15.1) [symbolic = %I.impl_witness.loc12_37.2 (constants.%I.impl_witness.25d8bb.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.loc12_35.1 [symbolic = %require_complete (constants.%require_complete.df9dcc.1)] -// CHECK:STDOUT: %A.as.I.impl.F.type: type = fn_type @A.as.I.impl.F, @A.as.I.impl(%V.loc12_15.1) [symbolic = %A.as.I.impl.F.type (constants.%A.as.I.impl.F.type.f4acbf.1)] -// CHECK:STDOUT: %A.as.I.impl.F: @A.as.I.impl.%A.as.I.impl.F.type (%A.as.I.impl.F.type.f4acbf.1) = struct_value () [symbolic = %A.as.I.impl.F (constants.%A.as.I.impl.F.91160c.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.loc12_35.1 [symbolic = %require_complete (constants.%require_complete.45eab2.1)] +// CHECK:STDOUT: %A.as.I.impl.F.type: type = fn_type @A.as.I.impl.F, @A.as.I.impl(%V.loc12_15.1) [symbolic = %A.as.I.impl.F.type (constants.%A.as.I.impl.F.type.d1ec9e.1)] +// CHECK:STDOUT: %A.as.I.impl.F: @A.as.I.impl.%A.as.I.impl.F.type (%A.as.I.impl.F.type.d1ec9e.1) = struct_value () [symbolic = %A.as.I.impl.F (constants.%A.as.I.impl.F.d83bf5.1)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %A.loc12_27.2 as %I.type.loc12_35.2 { -// CHECK:STDOUT: %A.as.I.impl.F.decl: @A.as.I.impl.%A.as.I.impl.F.type (%A.as.I.impl.F.type.f4acbf.1) = fn_decl @A.as.I.impl.F [symbolic = @A.as.I.impl.%A.as.I.impl.F (constants.%A.as.I.impl.F.91160c.1)] { -// CHECK:STDOUT: %self.param_patt: @A.as.I.impl.F.%pattern_type.loc13_16 (%pattern_type.2e18a7.1) = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @A.as.I.impl.F.%pattern_type.loc13_16 (%pattern_type.2e18a7.1) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %A.as.I.impl.F.decl: @A.as.I.impl.%A.as.I.impl.F.type (%A.as.I.impl.F.type.d1ec9e.1) = fn_decl @A.as.I.impl.F [symbolic = @A.as.I.impl.%A.as.I.impl.F (constants.%A.as.I.impl.F.d83bf5.1)] { +// CHECK:STDOUT: %self.param_patt: @A.as.I.impl.F.%pattern_type.loc13_16 (%pattern_type.44a178.1) = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @A.as.I.impl.F.%pattern_type.loc13_16 (%pattern_type.44a178.1) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @A.as.I.impl.F.%pattern_type.loc13_30 (%pattern_type.4f4b84.2) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @A.as.I.impl.F.%pattern_type.loc13_30 (%pattern_type.4f4b84.2) = return_slot_pattern %return.param_patt, %ptr.loc13_30.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %V.ref: type = name_ref V, @A.as.I.impl.%V.loc12_15.2 [symbolic = %V (constants.%V.67d)] // CHECK:STDOUT: %ptr.loc13_30.2: type = ptr_type %V.ref [symbolic = %ptr.loc13_30.1 (constants.%ptr.e8f8f9.2)] // CHECK:STDOUT: %.loc13_30.2: Core.Form = init_form %ptr.loc13_30.2 [symbolic = %.loc13_30.1 (constants.%.cb6cb9.2)] -// CHECK:STDOUT: %self.param: ref @A.as.I.impl.F.%A (%A.6eda0e.2) = ref_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @A.as.I.impl.%A.loc12_27.2 [symbolic = %A (constants.%A.6eda0e.2)] -// CHECK:STDOUT: %self: ref @A.as.I.impl.F.%A (%A.6eda0e.2) = ref_binding self, %self.param +// CHECK:STDOUT: %self.param: ref @A.as.I.impl.F.%A (%A.47a1de.2) = ref_param call_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @A.as.I.impl.%A.loc12_27.2 [symbolic = %A (constants.%A.47a1de.2)] +// CHECK:STDOUT: %self: ref @A.as.I.impl.F.%A (%A.47a1de.2) = ref_binding self, %self.param // CHECK:STDOUT: %return.param: ref @A.as.I.impl.F.%ptr.loc13_30.1 (%ptr.e8f8f9.2) = out_param call_param1 // CHECK:STDOUT: %return: ref @A.as.I.impl.F.%ptr.loc13_30.1 (%ptr.e8f8f9.2) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%A.as.I.impl.F.decl), @A.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness.loc12_37.1: = impl_witness %I.impl_witness_table, @A.as.I.impl(constants.%V.67d) [symbolic = %I.impl_witness.loc12_37.2 (constants.%I.impl_witness.580224.1)] +// CHECK:STDOUT: %I.impl_witness.loc12_37.1: = impl_witness %I.impl_witness_table, @A.as.I.impl(constants.%V.67d) [symbolic = %I.impl_witness.loc12_37.2 (constants.%I.impl_witness.25d8bb.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .V = @@ -196,33 +196,33 @@ fn TestSpecific(a: A({})*) -> {}* { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A.as.I.impl.F(@A.as.I.impl.%V.loc12_15.2: type) { // CHECK:STDOUT: %V: type = symbolic_binding V, 0 [symbolic = %V (constants.%V.67d)] -// CHECK:STDOUT: %A: type = class_type @A, @A(%V) [symbolic = %A (constants.%A.6eda0e.2)] -// CHECK:STDOUT: %pattern_type.loc13_16: type = pattern_type %A [symbolic = %pattern_type.loc13_16 (constants.%pattern_type.2e18a7.1)] +// CHECK:STDOUT: %A: type = class_type @A, @A(%V) [symbolic = %A (constants.%A.47a1de.2)] +// CHECK:STDOUT: %pattern_type.loc13_16: type = pattern_type %A [symbolic = %pattern_type.loc13_16 (constants.%pattern_type.44a178.1)] // CHECK:STDOUT: %ptr.loc13_30.1: type = ptr_type %V [symbolic = %ptr.loc13_30.1 (constants.%ptr.e8f8f9.2)] // CHECK:STDOUT: %.loc13_30.1: Core.Form = init_form %ptr.loc13_30.1 [symbolic = %.loc13_30.1 (constants.%.cb6cb9.2)] // CHECK:STDOUT: %pattern_type.loc13_30: type = pattern_type %ptr.loc13_30.1 [symbolic = %pattern_type.loc13_30 (constants.%pattern_type.4f4b84.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13_16: = require_complete_type %A [symbolic = %require_complete.loc13_16 (constants.%require_complete.4ad)] +// CHECK:STDOUT: %require_complete.loc13_16: = require_complete_type %A [symbolic = %require_complete.loc13_16 (constants.%require_complete.c7a)] // CHECK:STDOUT: %require_complete.loc13_26: = require_complete_type %ptr.loc13_30.1 [symbolic = %require_complete.loc13_26 (constants.%require_complete.ef162c.1)] -// CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %V [symbolic = %A.elem (constants.%A.elem.e8eca3.2)] -// CHECK:STDOUT: %.loc14_12.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%V) [symbolic = %.loc14_12.1 (constants.%.b6a)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc13_30.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2bf)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc13_30.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.44d)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.72b)] -// CHECK:STDOUT: %.loc14_12.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc14_12.2 (constants.%.39b)] -// CHECK:STDOUT: %impl.elem0.loc14_12.2: @A.as.I.impl.F.%.loc14_12.2 (%.39b) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_12.2 (constants.%impl.elem0.8a3)] -// CHECK:STDOUT: %specific_impl_fn.loc14_12.2: = specific_impl_function %impl.elem0.loc14_12.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc14_12.2 (constants.%specific_impl_fn.a13)] +// CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %V [symbolic = %A.elem (constants.%A.elem.d41ac1.2)] +// CHECK:STDOUT: %.loc14_12.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%V) [symbolic = %.loc14_12.1 (constants.%.0e9)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc13_30.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.1da)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc13_30.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.302)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.884)] +// CHECK:STDOUT: %.loc14_12.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc14_12.2 (constants.%.be5)] +// CHECK:STDOUT: %impl.elem0.loc14_12.2: @A.as.I.impl.F.%.loc14_12.2 (%.be5) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_12.2 (constants.%impl.elem0.484)] +// CHECK:STDOUT: %specific_impl_fn.loc14_12.2: = specific_impl_function %impl.elem0.loc14_12.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc14_12.2 (constants.%specific_impl_fn.a76)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: ref @A.as.I.impl.F.%A (%A.6eda0e.2)) -> out %return.param: @A.as.I.impl.F.%ptr.loc13_30.1 (%ptr.e8f8f9.2) { +// CHECK:STDOUT: fn(%self.param: ref @A.as.I.impl.F.%A (%A.47a1de.2)) -> out %return.param: @A.as.I.impl.F.%ptr.loc13_30.1 (%ptr.e8f8f9.2) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: ref @A.as.I.impl.F.%A (%A.6eda0e.2) = name_ref self, %self -// CHECK:STDOUT: %n.ref: @A.as.I.impl.F.%A.elem (%A.elem.e8eca3.2) = name_ref n, @A.%.loc4 [concrete = @A.%.loc4] +// CHECK:STDOUT: %self.ref: ref @A.as.I.impl.F.%A (%A.47a1de.2) = name_ref self, %self +// CHECK:STDOUT: %n.ref: @A.as.I.impl.F.%A.elem (%A.elem.d41ac1.2) = name_ref n, @A.%.loc4 [concrete = @A.%.loc4] // CHECK:STDOUT: %.loc14_17: ref @A.as.I.impl.F.%V (%V.67d) = class_element_access %self.ref, element0 // CHECK:STDOUT: %addr: @A.as.I.impl.F.%ptr.loc13_30.1 (%ptr.e8f8f9.2) = addr_of %.loc14_17 -// CHECK:STDOUT: %impl.elem0.loc14_12.1: @A.as.I.impl.F.%.loc14_12.2 (%.39b) = impl_witness_access constants.%Copy.lookup_impl_witness.2bf, element0 [symbolic = %impl.elem0.loc14_12.2 (constants.%impl.elem0.8a3)] +// CHECK:STDOUT: %impl.elem0.loc14_12.1: @A.as.I.impl.F.%.loc14_12.2 (%.be5) = impl_witness_access constants.%Copy.lookup_impl_witness.1da, element0 [symbolic = %impl.elem0.loc14_12.2 (constants.%impl.elem0.484)] // CHECK:STDOUT: %bound_method.loc14_12.1: = bound_method %addr, %impl.elem0.loc14_12.1 -// CHECK:STDOUT: %specific_impl_fn.loc14_12.1: = specific_impl_function %impl.elem0.loc14_12.1, @Copy.WithSelf.Op(constants.%Copy.facet.44d) [symbolic = %specific_impl_fn.loc14_12.2 (constants.%specific_impl_fn.a13)] +// CHECK:STDOUT: %specific_impl_fn.loc14_12.1: = specific_impl_function %impl.elem0.loc14_12.1, @Copy.WithSelf.Op(constants.%Copy.facet.302) [symbolic = %specific_impl_fn.loc14_12.2 (constants.%specific_impl_fn.a76)] // CHECK:STDOUT: %bound_method.loc14_12.2: = bound_method %addr, %specific_impl_fn.loc14_12.1 // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @A.as.I.impl.F.%ptr.loc13_30.1 (%ptr.e8f8f9.2) = call %bound_method.loc14_12.2(%addr) // CHECK:STDOUT: return %Copy.WithSelf.Op.call @@ -234,47 +234,47 @@ fn TestSpecific(a: A({})*) -> {}* { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %I.type.loc21_17.2: type = facet_type <@I, @I(%W.loc19_17.1)> [symbolic = %I.type.loc21_17.2 (constants.%I.type.50feb0.3)] -// CHECK:STDOUT: %require_complete.loc21: = require_complete_type %I.type.loc21_17.2 [symbolic = %require_complete.loc21 (constants.%require_complete.df9dcc.2)] -// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%W.loc19_17.1) [symbolic = %I.assoc_type (constants.%I.assoc_type.bd7023.3)] -// CHECK:STDOUT: %assoc0: @TestGeneric.%I.assoc_type (%I.assoc_type.bd7023.3) = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [symbolic = %assoc0 (constants.%assoc0.631ba7.3)] -// CHECK:STDOUT: %.loc21_11.2: require_specific_def_type = require_specific_def @A.as.I.impl(%W.loc19_17.1) [symbolic = %.loc21_11.2 (constants.%.f9e)] +// CHECK:STDOUT: %I.type.loc21_17.2: type = facet_type <@I, @I(%W.loc19_17.1)> [symbolic = %I.type.loc21_17.2 (constants.%I.type.3fe556.3)] +// CHECK:STDOUT: %require_complete.loc21: = require_complete_type %I.type.loc21_17.2 [symbolic = %require_complete.loc21 (constants.%require_complete.45eab2.2)] +// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%W.loc19_17.1) [symbolic = %I.assoc_type (constants.%I.assoc_type.b71f2b.3)] +// CHECK:STDOUT: %assoc0: @TestGeneric.%I.assoc_type (%I.assoc_type.b71f2b.3) = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [symbolic = %assoc0 (constants.%assoc0.13b5f8.3)] +// CHECK:STDOUT: %.loc21_11.2: require_specific_def_type = require_specific_def @A.as.I.impl(%W.loc19_17.1) [symbolic = %.loc21_11.2 (constants.%.346)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %A.loc19_32.1, @I, @I(%W.loc19_17.1) [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %I.facet: @TestGeneric.%I.type.loc21_17.2 (%I.type.50feb0.3) = facet_value %A.loc19_32.1, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet.42f)] -// CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%W.loc19_17.1, %I.facet) [symbolic = %I.WithSelf.F.type (constants.%I.WithSelf.F.type.125)] -// CHECK:STDOUT: %.loc21_11.3: type = fn_type_with_self_type %I.WithSelf.F.type, %I.facet [symbolic = %.loc21_11.3 (constants.%.00e)] -// CHECK:STDOUT: %impl.elem0.loc21_11.2: @TestGeneric.%.loc21_11.3 (%.00e) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_11.2 (constants.%impl.elem0.ac1)] -// CHECK:STDOUT: %specific_impl_fn.loc21_11.2: = specific_impl_function %impl.elem0.loc21_11.2, @I.WithSelf.F(%W.loc19_17.1, %I.facet) [symbolic = %specific_impl_fn.loc21_11.2 (constants.%specific_impl_fn.4e2)] +// CHECK:STDOUT: %I.facet: @TestGeneric.%I.type.loc21_17.2 (%I.type.3fe556.3) = facet_value %A.loc19_32.1, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet.3c2)] +// CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%W.loc19_17.1, %I.facet) [symbolic = %I.WithSelf.F.type (constants.%I.WithSelf.F.type.52e)] +// CHECK:STDOUT: %.loc21_11.3: type = fn_type_with_self_type %I.WithSelf.F.type, %I.facet [symbolic = %.loc21_11.3 (constants.%.72b)] +// CHECK:STDOUT: %impl.elem0.loc21_11.2: @TestGeneric.%.loc21_11.3 (%.72b) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_11.2 (constants.%impl.elem0.089)] +// CHECK:STDOUT: %specific_impl_fn.loc21_11.2: = specific_impl_function %impl.elem0.loc21_11.2, @I.WithSelf.F(%W.loc19_17.1, %I.facet) [symbolic = %specific_impl_fn.loc21_11.2 (constants.%specific_impl_fn.250)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @TestGeneric.%ptr.loc19_33.1 (%ptr.670)) -> out %return.param: @TestGeneric.%ptr.loc19_40.1 (%ptr.e8f8f9.4) { +// CHECK:STDOUT: fn(%a.param: @TestGeneric.%ptr.loc19_33.1 (%ptr.5ab)) -> out %return.param: @TestGeneric.%ptr.loc19_40.1 (%ptr.e8f8f9.4) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: @TestGeneric.%ptr.loc19_33.1 (%ptr.670) = name_ref a, %a -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %a.ref: @TestGeneric.%ptr.loc19_33.1 (%ptr.5ab) = name_ref a, %a +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %W.ref.loc21: type = name_ref W, %W.loc19_17.2 [symbolic = %W.loc19_17.1 (constants.%W)] -// CHECK:STDOUT: %I.type.loc21_17.1: type = facet_type <@I, @I(constants.%W)> [symbolic = %I.type.loc21_17.2 (constants.%I.type.50feb0.3)] -// CHECK:STDOUT: %.loc21_18: @TestGeneric.%I.assoc_type (%I.assoc_type.bd7023.3) = specific_constant @I.WithSelf.%assoc0.loc8_31.1, @I.WithSelf(constants.%W, constants.%Self.6263de.1) [symbolic = %assoc0 (constants.%assoc0.631ba7.3)] -// CHECK:STDOUT: %F.ref: @TestGeneric.%I.assoc_type (%I.assoc_type.bd7023.3) = name_ref F, %.loc21_18 [symbolic = %assoc0 (constants.%assoc0.631ba7.3)] -// CHECK:STDOUT: %.loc21_11.1: ref @TestGeneric.%A.loc19_32.1 (%A.6eda0e.3) = deref %a.ref -// CHECK:STDOUT: %impl.elem0.loc21_11.1: @TestGeneric.%.loc21_11.3 (%.00e) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_11.2 (constants.%impl.elem0.ac1)] +// CHECK:STDOUT: %I.type.loc21_17.1: type = facet_type <@I, @I(constants.%W)> [symbolic = %I.type.loc21_17.2 (constants.%I.type.3fe556.3)] +// CHECK:STDOUT: %.loc21_18: @TestGeneric.%I.assoc_type (%I.assoc_type.b71f2b.3) = specific_constant @I.WithSelf.%assoc0.loc8_31.1, @I.WithSelf(constants.%W, constants.%Self.1916c4.1) [symbolic = %assoc0 (constants.%assoc0.13b5f8.3)] +// CHECK:STDOUT: %F.ref: @TestGeneric.%I.assoc_type (%I.assoc_type.b71f2b.3) = name_ref F, %.loc21_18 [symbolic = %assoc0 (constants.%assoc0.13b5f8.3)] +// CHECK:STDOUT: %.loc21_11.1: ref @TestGeneric.%A.loc19_32.1 (%A.47a1de.3) = deref %a.ref +// CHECK:STDOUT: %impl.elem0.loc21_11.1: @TestGeneric.%.loc21_11.3 (%.72b) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_11.2 (constants.%impl.elem0.089)] // CHECK:STDOUT: %bound_method.loc21_11: = bound_method %.loc21_11.1, %impl.elem0.loc21_11.1 -// CHECK:STDOUT: %specific_impl_fn.loc21_11.1: = specific_impl_function %impl.elem0.loc21_11.1, @I.WithSelf.F(constants.%W, constants.%I.facet.42f) [symbolic = %specific_impl_fn.loc21_11.2 (constants.%specific_impl_fn.4e2)] +// CHECK:STDOUT: %specific_impl_fn.loc21_11.1: = specific_impl_function %impl.elem0.loc21_11.1, @I.WithSelf.F(constants.%W, constants.%I.facet.3c2) [symbolic = %specific_impl_fn.loc21_11.2 (constants.%specific_impl_fn.250)] // CHECK:STDOUT: %bound_method.loc21_22: = bound_method %.loc21_11.1, %specific_impl_fn.loc21_11.1 // CHECK:STDOUT: %I.WithSelf.F.call: init @TestGeneric.%ptr.loc19_40.1 (%ptr.e8f8f9.4) = call %bound_method.loc21_22(%.loc21_11.1) // CHECK:STDOUT: return %I.WithSelf.F.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @TestSpecific(%a.param: %ptr.f6a) -> out %return.param: %ptr.c28 { +// CHECK:STDOUT: fn @TestSpecific(%a.param: %ptr.d35) -> out %return.param: %ptr.c28 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %ptr.f6a = name_ref a, %a -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %a.ref: %ptr.d35 = name_ref a, %a +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %.loc27_17: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc27_18: type = converted %.loc27_17, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type)> [concrete = constants.%I.type.317] -// CHECK:STDOUT: %.loc27_19: %I.assoc_type.4a0 = specific_constant @I.WithSelf.%assoc0.loc8_31.1, @I.WithSelf(constants.%empty_struct_type, constants.%Self.6263de.1) [concrete = constants.%assoc0.379] -// CHECK:STDOUT: %F.ref: %I.assoc_type.4a0 = name_ref F, %.loc27_19 [concrete = constants.%assoc0.379] -// CHECK:STDOUT: %.loc27_11: ref %A.966 = deref %a.ref -// CHECK:STDOUT: %impl.elem0: %.329 = impl_witness_access constants.%I.impl_witness.865, element0 [concrete = constants.%A.as.I.impl.F.36b] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type)> [concrete = constants.%I.type.81d] +// CHECK:STDOUT: %.loc27_19: %I.assoc_type.cd3 = specific_constant @I.WithSelf.%assoc0.loc8_31.1, @I.WithSelf(constants.%empty_struct_type, constants.%Self.1916c4.1) [concrete = constants.%assoc0.a4c] +// CHECK:STDOUT: %F.ref: %I.assoc_type.cd3 = name_ref F, %.loc27_19 [concrete = constants.%assoc0.a4c] +// CHECK:STDOUT: %.loc27_11: ref %A.940 = deref %a.ref +// CHECK:STDOUT: %impl.elem0: %.6b2 = impl_witness_access constants.%I.impl_witness.e69, element0 [concrete = constants.%A.as.I.impl.F.837] // CHECK:STDOUT: %bound_method.loc27_11: = bound_method %.loc27_11, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @A.as.I.impl.F(constants.%empty_struct_type) [concrete = constants.%A.as.I.impl.F.specific_fn] // CHECK:STDOUT: %bound_method.loc27_23: = bound_method %.loc27_11, %specific_fn @@ -284,20 +284,20 @@ fn TestSpecific(a: A({})*) -> {}* { // CHECK:STDOUT: // CHECK:STDOUT: specific @A.as.I.impl(constants.%V.67d) { // CHECK:STDOUT: %V.loc12_15.1 => constants.%V.67d -// CHECK:STDOUT: %A.loc12_27.1 => constants.%A.6eda0e.2 -// CHECK:STDOUT: %I.type.loc12_35.1 => constants.%I.type.50feb0.2 -// CHECK:STDOUT: %I.impl_witness.loc12_37.2 => constants.%I.impl_witness.580224.1 +// CHECK:STDOUT: %A.loc12_27.1 => constants.%A.47a1de.2 +// CHECK:STDOUT: %I.type.loc12_35.1 => constants.%I.type.3fe556.2 +// CHECK:STDOUT: %I.impl_witness.loc12_37.2 => constants.%I.impl_witness.25d8bb.1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.df9dcc.1 -// CHECK:STDOUT: %A.as.I.impl.F.type => constants.%A.as.I.impl.F.type.f4acbf.1 -// CHECK:STDOUT: %A.as.I.impl.F => constants.%A.as.I.impl.F.91160c.1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.45eab2.1 +// CHECK:STDOUT: %A.as.I.impl.F.type => constants.%A.as.I.impl.F.type.d1ec9e.1 +// CHECK:STDOUT: %A.as.I.impl.F => constants.%A.as.I.impl.F.d83bf5.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.as.I.impl.F(constants.%V.67d) { // CHECK:STDOUT: %V => constants.%V.67d -// CHECK:STDOUT: %A => constants.%A.6eda0e.2 -// CHECK:STDOUT: %pattern_type.loc13_16 => constants.%pattern_type.2e18a7.1 +// CHECK:STDOUT: %A => constants.%A.47a1de.2 +// CHECK:STDOUT: %pattern_type.loc13_16 => constants.%pattern_type.44a178.1 // CHECK:STDOUT: %ptr.loc13_30.1 => constants.%ptr.e8f8f9.2 // CHECK:STDOUT: %.loc13_30.1 => constants.%.cb6cb9.2 // CHECK:STDOUT: %pattern_type.loc13_30 => constants.%pattern_type.4f4b84.2 @@ -305,9 +305,9 @@ fn TestSpecific(a: A({})*) -> {}* { // CHECK:STDOUT: // CHECK:STDOUT: specific @TestGeneric(constants.%W) { // CHECK:STDOUT: %W.loc19_17.1 => constants.%W -// CHECK:STDOUT: %A.loc19_32.1 => constants.%A.6eda0e.3 -// CHECK:STDOUT: %ptr.loc19_33.1 => constants.%ptr.670 -// CHECK:STDOUT: %pattern_type.loc19_27 => constants.%pattern_type.aa5 +// CHECK:STDOUT: %A.loc19_32.1 => constants.%A.47a1de.3 +// CHECK:STDOUT: %ptr.loc19_33.1 => constants.%ptr.5ab +// CHECK:STDOUT: %pattern_type.loc19_27 => constants.%pattern_type.c61 // CHECK:STDOUT: %ptr.loc19_40.1 => constants.%ptr.e8f8f9.4 // CHECK:STDOUT: %.loc19_40.1 => constants.%.cb6cb9.4 // CHECK:STDOUT: %pattern_type.loc19_40 => constants.%pattern_type.4f4b84.4 @@ -315,32 +315,32 @@ fn TestSpecific(a: A({})*) -> {}* { // CHECK:STDOUT: // CHECK:STDOUT: specific @A.as.I.impl(constants.%W) { // CHECK:STDOUT: %V.loc12_15.1 => constants.%W -// CHECK:STDOUT: %A.loc12_27.1 => constants.%A.6eda0e.3 -// CHECK:STDOUT: %I.type.loc12_35.1 => constants.%I.type.50feb0.3 -// CHECK:STDOUT: %I.impl_witness.loc12_37.2 => constants.%I.impl_witness.580224.2 +// CHECK:STDOUT: %A.loc12_27.1 => constants.%A.47a1de.3 +// CHECK:STDOUT: %I.type.loc12_35.1 => constants.%I.type.3fe556.3 +// CHECK:STDOUT: %I.impl_witness.loc12_37.2 => constants.%I.impl_witness.25d8bb.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.df9dcc.2 -// CHECK:STDOUT: %A.as.I.impl.F.type => constants.%A.as.I.impl.F.type.f4acbf.2 -// CHECK:STDOUT: %A.as.I.impl.F => constants.%A.as.I.impl.F.91160c.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.45eab2.2 +// CHECK:STDOUT: %A.as.I.impl.F.type => constants.%A.as.I.impl.F.type.d1ec9e.2 +// CHECK:STDOUT: %A.as.I.impl.F => constants.%A.as.I.impl.F.d83bf5.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.as.I.impl(constants.%empty_struct_type) { // CHECK:STDOUT: %V.loc12_15.1 => constants.%empty_struct_type -// CHECK:STDOUT: %A.loc12_27.1 => constants.%A.966 -// CHECK:STDOUT: %I.type.loc12_35.1 => constants.%I.type.317 -// CHECK:STDOUT: %I.impl_witness.loc12_37.2 => constants.%I.impl_witness.865 +// CHECK:STDOUT: %A.loc12_27.1 => constants.%A.940 +// CHECK:STDOUT: %I.type.loc12_35.1 => constants.%I.type.81d +// CHECK:STDOUT: %I.impl_witness.loc12_37.2 => constants.%I.impl_witness.e69 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.d9a -// CHECK:STDOUT: %A.as.I.impl.F.type => constants.%A.as.I.impl.F.type.0a1 -// CHECK:STDOUT: %A.as.I.impl.F => constants.%A.as.I.impl.F.36b +// CHECK:STDOUT: %require_complete => constants.%complete_type.7da +// CHECK:STDOUT: %A.as.I.impl.F.type => constants.%A.as.I.impl.F.type.a42 +// CHECK:STDOUT: %A.as.I.impl.F => constants.%A.as.I.impl.F.837 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.as.I.impl.F(constants.%empty_struct_type) { // CHECK:STDOUT: %V => constants.%empty_struct_type -// CHECK:STDOUT: %A => constants.%A.966 -// CHECK:STDOUT: %pattern_type.loc13_16 => constants.%pattern_type.53f +// CHECK:STDOUT: %A => constants.%A.940 +// CHECK:STDOUT: %pattern_type.loc13_16 => constants.%pattern_type.1ff // CHECK:STDOUT: %ptr.loc13_30.1 => constants.%ptr.c28 // CHECK:STDOUT: %.loc13_30.1 => constants.%.9ba // CHECK:STDOUT: %pattern_type.loc13_30 => constants.%pattern_type.1cc @@ -348,13 +348,13 @@ fn TestSpecific(a: A({})*) -> {}* { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc13_16 => constants.%complete_type.0a6 // CHECK:STDOUT: %require_complete.loc13_26 => constants.%complete_type.38e -// CHECK:STDOUT: %A.elem => constants.%A.elem.71e -// CHECK:STDOUT: %.loc14_12.1 => constants.%.41e -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.1c0 -// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.e29 -// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.980 -// CHECK:STDOUT: %.loc14_12.2 => constants.%.f8c -// CHECK:STDOUT: %impl.elem0.loc14_12.2 => constants.%ptr.as.Copy.impl.Op.d7b +// CHECK:STDOUT: %A.elem => constants.%A.elem.339 +// CHECK:STDOUT: %.loc14_12.1 => constants.%.a81 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.1c2 +// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.80f +// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.8a4 +// CHECK:STDOUT: %.loc14_12.2 => constants.%.523 +// CHECK:STDOUT: %impl.elem0.loc14_12.2 => constants.%ptr.as.Copy.impl.Op.9ed // CHECK:STDOUT: %specific_impl_fn.loc14_12.2 => constants.%ptr.as.Copy.impl.Op.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/import.carbon b/toolchain/check/testdata/impl/lookup/import.carbon index c709449514ae..d27ce8fdefe9 100644 --- a/toolchain/check/testdata/impl/lookup/import.carbon +++ b/toolchain/check/testdata/impl/lookup/import.carbon @@ -229,21 +229,21 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.847: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.3b0: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.12e: %HasF.WithSelf.F.type.3b0 = struct_value () [symbolic] +// CHECK:STDOUT: %pattern_type.f71: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.dce: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.faf: %HasF.WithSelf.F.type.dce = struct_value () [symbolic] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %HasF.impl_witness: = impl_witness @C.as.HasF.impl.%HasF.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.e62: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.866: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.as.HasF.impl.F.type: type = fn_type @C.as.HasF.impl.F [concrete] // CHECK:STDOUT: %C.as.HasF.impl.F: %C.as.HasF.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, (%HasF.impl_witness) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.type.69a: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.5fd: %HasF.WithSelf.F.type.69a = struct_value () [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.type.75e: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.365: %HasF.WithSelf.F.type.75e = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -273,9 +273,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %HasF.WithSelf.decl = interface_with_self_decl @HasF [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.3b0) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.12e)] { -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.847) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.847) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.dce) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.faf)] { +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.f71) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.f71) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { @@ -297,8 +297,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.HasF.impl: %C.ref as %HasF.ref { // CHECK:STDOUT: %C.as.HasF.impl.F.decl: %C.as.HasF.impl.F.type = fn_decl @C.as.HasF.impl.F [concrete = constants.%C.as.HasF.impl.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.e62 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.e62 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.866 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.866 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.HasF.impl.%C.ref [concrete = constants.%C] @@ -324,7 +324,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: generic fn @HasF.WithSelf.F(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.847)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.f71)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -337,70 +337,70 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: specific @HasF.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.3b0 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.12e +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.dce +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.faf // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.847 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%HasF.facet -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.69a -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.5fd +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.75e +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.365 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet) { // CHECK:STDOUT: %Self => constants.%HasF.facet // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%C -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e62 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.866 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- package_b.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasG.type: type = facet_type <@HasG> [concrete] -// CHECK:STDOUT: %Self.ea6: %HasG.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.491: type = facet_access_type %Self.ea6 [symbolic] -// CHECK:STDOUT: %pattern_type.3bb: type = pattern_type %Self.as_type.491 [symbolic] -// CHECK:STDOUT: %HasG.WithSelf.G.type.9c0: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%Self.ea6) [symbolic] -// CHECK:STDOUT: %HasG.WithSelf.G.81d: %HasG.WithSelf.G.type.9c0 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.150: %HasG.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.dd3: type = facet_access_type %Self.150 [symbolic] +// CHECK:STDOUT: %pattern_type.bfc: type = pattern_type %Self.as_type.dd3 [symbolic] +// CHECK:STDOUT: %HasG.WithSelf.G.type.34a: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%Self.150) [symbolic] +// CHECK:STDOUT: %HasG.WithSelf.G.6a9: %HasG.WithSelf.G.type.34a = struct_value () [symbolic] // CHECK:STDOUT: %HasG.assoc_type: type = assoc_entity_type @HasG [concrete] // CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, @HasG.WithSelf.%HasG.WithSelf.G.decl [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %HasG.impl_witness.2af: = impl_witness @C.as.HasG.impl.%HasG.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.e62: type = pattern_type %C [concrete] +// CHECK:STDOUT: %HasG.impl_witness.992: = impl_witness @C.as.HasG.impl.%HasG.impl_witness_table [concrete] +// CHECK:STDOUT: %pattern_type.866: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.as.HasG.impl.G.type: type = fn_type @C.as.HasG.impl.G [concrete] // CHECK:STDOUT: %C.as.HasG.impl.G: %C.as.HasG.impl.G.type = struct_value () [concrete] -// CHECK:STDOUT: %HasG.facet.3b8: %HasG.type = facet_value %C, (%HasG.impl_witness.2af) [concrete] -// CHECK:STDOUT: %HasG.WithSelf.G.type.499: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet.3b8) [concrete] -// CHECK:STDOUT: %HasG.WithSelf.G.11b: %HasG.WithSelf.G.type.499 = struct_value () [concrete] +// CHECK:STDOUT: %HasG.facet.fa2: %HasG.type = facet_value %C, (%HasG.impl_witness.992) [concrete] +// CHECK:STDOUT: %HasG.WithSelf.G.type.9e7: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet.fa2) [concrete] +// CHECK:STDOUT: %HasG.WithSelf.G.553: %HasG.WithSelf.G.type.9e7 = struct_value () [concrete] // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] -// CHECK:STDOUT: %Self.518: %HasF.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.699: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self.518) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.c81: %HasF.WithSelf.F.type.699 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type.6c4: type = facet_access_type %Self.518 [symbolic] -// CHECK:STDOUT: %pattern_type.d62: type = pattern_type %Self.as_type.6c4 [symbolic] +// CHECK:STDOUT: %Self.4dc: %HasF.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.c4f: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self.4dc) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.c56: %HasF.WithSelf.F.type.c4f = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type.7bb: type = facet_access_type %Self.4dc [symbolic] +// CHECK:STDOUT: %pattern_type.6cd: type = pattern_type %Self.as_type.7bb [symbolic] // CHECK:STDOUT: %HasF.impl_witness: = impl_witness @D.as.HasF.impl.%HasF.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.d93: type = pattern_type %D [concrete] +// CHECK:STDOUT: %pattern_type.709: type = pattern_type %D [concrete] // CHECK:STDOUT: %D.as.HasF.impl.F.type: type = fn_type @D.as.HasF.impl.F [concrete] // CHECK:STDOUT: %D.as.HasF.impl.F: %D.as.HasF.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %D, (%HasF.impl_witness) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.type.4f1: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.7d3: %HasF.WithSelf.F.type.4f1 = struct_value () [concrete] -// CHECK:STDOUT: %HasG.impl_witness.d8a: = impl_witness @D.as.HasG.impl.%HasG.impl_witness_table [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.type.bf9: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.715: %HasF.WithSelf.F.type.bf9 = struct_value () [concrete] +// CHECK:STDOUT: %HasG.impl_witness.e55: = impl_witness @D.as.HasG.impl.%HasG.impl_witness_table [concrete] // CHECK:STDOUT: %D.as.HasG.impl.G.type: type = fn_type @D.as.HasG.impl.G [concrete] // CHECK:STDOUT: %D.as.HasG.impl.G: %D.as.HasG.impl.G.type = struct_value () [concrete] -// CHECK:STDOUT: %HasG.facet.e65: %HasG.type = facet_value %D, (%HasG.impl_witness.d8a) [concrete] -// CHECK:STDOUT: %HasG.WithSelf.G.type.f9f: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet.e65) [concrete] -// CHECK:STDOUT: %HasG.WithSelf.G.a44: %HasG.WithSelf.G.type.f9f = struct_value () [concrete] +// CHECK:STDOUT: %HasG.facet.16a: %HasG.type = facet_value %D, (%HasG.impl_witness.e55) [concrete] +// CHECK:STDOUT: %HasG.WithSelf.G.type.933: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet.16a) [concrete] +// CHECK:STDOUT: %HasG.WithSelf.G.67e: %HasG.WithSelf.G.type.933 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -415,12 +415,12 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %PackageA.C: type = import_ref PackageA//default, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %PackageA.import_ref.8f2: = import_ref PackageA//default, loc8_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageA.import_ref.927 = import_ref PackageA//default, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %PackageA.import_ref.ce9 = import_ref PackageA//default, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %PackageA.HasF: type = import_ref PackageA//default, HasF, loaded [concrete = constants.%HasF.type] -// CHECK:STDOUT: %PackageA.import_ref.0b1 = import_ref PackageA//default, loc5_21, unloaded -// CHECK:STDOUT: %PackageA.F: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.699) = import_ref PackageA//default, F, loaded [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.c81)] -// CHECK:STDOUT: %PackageA.import_ref.7de6df.2: %HasF.type = import_ref PackageA//default, loc4_16, loaded [symbolic = constants.%Self.518] -// CHECK:STDOUT: %PackageA.import_ref.066 = import_ref PackageA//default, loc4_16, unloaded +// CHECK:STDOUT: %PackageA.import_ref.a23 = import_ref PackageA//default, loc5_21, unloaded +// CHECK:STDOUT: %PackageA.F: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.c4f) = import_ref PackageA//default, F, loaded [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.c56)] +// CHECK:STDOUT: %PackageA.import_ref.b7072f.2: %HasF.type = import_ref PackageA//default, loc4_16, loaded [symbolic = constants.%Self.4dc] +// CHECK:STDOUT: %PackageA.import_ref.15c = import_ref PackageA//default, loc4_16, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -451,21 +451,21 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasG { -// CHECK:STDOUT: %Self: %HasG.type = symbolic_binding Self, 0 [symbolic = constants.%Self.ea6] +// CHECK:STDOUT: %Self: %HasG.type = symbolic_binding Self, 0 [symbolic = constants.%Self.150] // CHECK:STDOUT: %HasG.WithSelf.decl = interface_with_self_decl @HasG [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasG.WithSelf.G.decl: @HasG.WithSelf.%HasG.WithSelf.G.type (%HasG.WithSelf.G.type.9c0) = fn_decl @HasG.WithSelf.G [symbolic = @HasG.WithSelf.%HasG.WithSelf.G (constants.%HasG.WithSelf.G.81d)] { -// CHECK:STDOUT: %self.param_patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.3bb) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.3bb) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %HasG.WithSelf.G.decl: @HasG.WithSelf.%HasG.WithSelf.G.type (%HasG.WithSelf.G.type.34a) = fn_decl @HasG.WithSelf.G [symbolic = @HasG.WithSelf.%HasG.WithSelf.G (constants.%HasG.WithSelf.G.6a9)] { +// CHECK:STDOUT: %self.param_patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.bfc) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.bfc) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @HasG.WithSelf.G.%Self.as_type.loc7_14.1 (%Self.as_type.491) = value_param call_param0 -// CHECK:STDOUT: %.loc7_14.1: type = splice_block %.loc7_14.2 [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.491)] { -// CHECK:STDOUT: %Self.ref: %HasG.type = name_ref Self, @HasG.%Self [symbolic = %Self (constants.%Self.ea6)] -// CHECK:STDOUT: %Self.as_type.loc7_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.491)] -// CHECK:STDOUT: %.loc7_14.2: type = converted %Self.ref, %Self.as_type.loc7_14.2 [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.491)] +// CHECK:STDOUT: %self.param: @HasG.WithSelf.G.%Self.as_type.loc7_14.1 (%Self.as_type.dd3) = value_param call_param0 +// CHECK:STDOUT: %.loc7_14.1: type = splice_block %.loc7_14.2 [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.dd3)] { +// CHECK:STDOUT: %Self.ref: %HasG.type = name_ref Self, @HasG.%Self [symbolic = %Self (constants.%Self.150)] +// CHECK:STDOUT: %Self.as_type.loc7_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.dd3)] +// CHECK:STDOUT: %.loc7_14.2: type = converted %Self.ref, %Self.as_type.loc7_14.2 [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.dd3)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @HasG.WithSelf.G.%Self.as_type.loc7_14.1 (%Self.as_type.491) = value_binding self, %self.param +// CHECK:STDOUT: %self: @HasG.WithSelf.G.%Self.as_type.loc7_14.1 (%Self.as_type.dd3) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, %HasG.WithSelf.G.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -479,8 +479,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF [from "package_a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageA.import_ref.066 -// CHECK:STDOUT: .F = imports.%PackageA.import_ref.0b1 +// CHECK:STDOUT: .Self = imports.%PackageA.import_ref.15c +// CHECK:STDOUT: .F = imports.%PackageA.import_ref.a23 // CHECK:STDOUT: witness = (imports.%PackageA.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -488,15 +488,15 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.HasG.impl: %C.ref as %HasG.ref { // CHECK:STDOUT: %C.as.HasG.impl.G.decl: %C.as.HasG.impl.G.type = fn_decl @C.as.HasG.impl.G [concrete = constants.%C.as.HasG.impl.G] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.e62 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.e62 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.866 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.866 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.HasG.impl.%C.ref [concrete = constants.%C] // CHECK:STDOUT: %self: %C = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %HasG.impl_witness_table = impl_witness_table (%C.as.HasG.impl.G.decl), @C.as.HasG.impl [concrete] -// CHECK:STDOUT: %HasG.impl_witness: = impl_witness %HasG.impl_witness_table [concrete = constants.%HasG.impl_witness.2af] +// CHECK:STDOUT: %HasG.impl_witness: = impl_witness %HasG.impl_witness_table [concrete = constants.%HasG.impl_witness.992] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .G = %C.as.HasG.impl.G.decl @@ -506,8 +506,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: impl @D.as.HasF.impl: %D.ref as %HasF.ref { // CHECK:STDOUT: %D.as.HasF.impl.F.decl: %D.as.HasF.impl.F.type = fn_decl @D.as.HasF.impl.F [concrete = constants.%D.as.HasF.impl.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.d93 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.d93 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.709 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.709 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %D = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @D.as.HasF.impl.%D.ref [concrete = constants.%D] @@ -524,15 +524,15 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: impl @D.as.HasG.impl: %D.ref as %HasG.ref { // CHECK:STDOUT: %D.as.HasG.impl.G.decl: %D.as.HasG.impl.G.type = fn_decl @D.as.HasG.impl.G [concrete = constants.%D.as.HasG.impl.G] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.d93 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.d93 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.709 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.709 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %D = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @D.as.HasG.impl.%D.ref [concrete = constants.%D] // CHECK:STDOUT: %self: %D = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %HasG.impl_witness_table = impl_witness_table (%D.as.HasG.impl.G.decl), @D.as.HasG.impl [concrete] -// CHECK:STDOUT: %HasG.impl_witness: = impl_witness %HasG.impl_witness_table [concrete = constants.%HasG.impl_witness.d8a] +// CHECK:STDOUT: %HasG.impl_witness: = impl_witness %HasG.impl_witness_table [concrete = constants.%HasG.impl_witness.e55] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .G = %D.as.HasG.impl.G.decl @@ -552,15 +552,15 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: complete_type_witness = imports.%PackageA.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageA.import_ref.927 +// CHECK:STDOUT: .Self = imports.%PackageA.import_ref.ce9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasG.WithSelf.G(@HasG.%Self: %HasG.type) { -// CHECK:STDOUT: %Self: %HasG.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.ea6)] -// CHECK:STDOUT: %Self.as_type.loc7_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.491)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc7_14.1 [symbolic = %pattern_type (constants.%pattern_type.3bb)] +// CHECK:STDOUT: %Self: %HasG.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.150)] +// CHECK:STDOUT: %Self.as_type.loc7_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.dd3)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc7_14.1 [symbolic = %pattern_type (constants.%pattern_type.bfc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasG.WithSelf.G.%Self.as_type.loc7_14.1 (%Self.as_type.491)); +// CHECK:STDOUT: fn(%self.param: @HasG.WithSelf.G.%Self.as_type.loc7_14.1 (%Self.as_type.dd3)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.HasG.impl.G(%self.param: %C) { @@ -568,10 +568,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HasF.WithSelf.F(imports.%PackageA.import_ref.7de6df.2: %HasF.type) [from "package_a.carbon"] { -// CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.518)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.6c4)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.d62)] +// CHECK:STDOUT: generic fn @HasF.WithSelf.F(imports.%PackageA.import_ref.b7072f.2: %HasF.type) [from "package_a.carbon"] { +// CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.4dc)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.7bb)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.6cd)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -586,69 +586,69 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasG.WithSelf(constants.%Self.ea6) { +// CHECK:STDOUT: specific @HasG.WithSelf(constants.%Self.150) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.ea6 -// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.9c0 -// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.81d +// CHECK:STDOUT: %Self => constants.%Self.150 +// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.34a +// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.6a9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%Self.ea6) { -// CHECK:STDOUT: %Self => constants.%Self.ea6 -// CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%Self.as_type.491 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3bb +// CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%Self.150) { +// CHECK:STDOUT: %Self => constants.%Self.150 +// CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%Self.as_type.dd3 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bfc // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet.3b8) { +// CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet.fa2) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%HasG.facet.3b8 -// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.499 -// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.11b +// CHECK:STDOUT: %Self => constants.%HasG.facet.fa2 +// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.9e7 +// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.553 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%HasG.facet.3b8) { -// CHECK:STDOUT: %Self => constants.%HasG.facet.3b8 +// CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%HasG.facet.fa2) { +// CHECK:STDOUT: %Self => constants.%HasG.facet.fa2 // CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%C -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e62 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.866 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%Self.518) { +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%Self.4dc) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.518 -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.699 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.c81 +// CHECK:STDOUT: %Self => constants.%Self.4dc +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.c4f +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.c56 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self.518) { -// CHECK:STDOUT: %Self => constants.%Self.518 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.6c4 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d62 +// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self.4dc) { +// CHECK:STDOUT: %Self => constants.%Self.4dc +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.7bb +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6cd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%HasF.facet -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.4f1 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.7d3 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.bf9 +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.715 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet) { // CHECK:STDOUT: %Self => constants.%HasF.facet // CHECK:STDOUT: %Self.as_type => constants.%D -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d93 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.709 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet.e65) { +// CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet.16a) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%HasG.facet.e65 -// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.f9f -// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.a44 +// CHECK:STDOUT: %Self => constants.%HasG.facet.16a +// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.933 +// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.67e // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%HasG.facet.e65) { -// CHECK:STDOUT: %Self => constants.%HasG.facet.e65 +// CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%HasG.facet.16a) { +// CHECK:STDOUT: %Self => constants.%HasG.facet.16a // CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%D -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d93 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.709 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_cf.carbon @@ -657,23 +657,23 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.e62: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.866: type = pattern_type %C [concrete] // CHECK:STDOUT: %TestCF.type: type = fn_type @TestCF [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %TestCF: %TestCF.type = struct_value () [concrete] // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.699: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.c81: %HasF.WithSelf.F.type.699 = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.c4f: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.c56: %HasF.WithSelf.F.type.c4f = struct_value () [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.d62: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.6cd: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] -// CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, imports.%PackageA.import_ref.34d [concrete] +// CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, imports.%PackageA.import_ref.91e [concrete] // CHECK:STDOUT: %HasF.impl_witness: = impl_witness imports.%HasF.impl_witness_table [concrete] // CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, (%HasF.impl_witness) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.type.87a: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.f2f: %HasF.WithSelf.F.type.87a = struct_value () [concrete] -// CHECK:STDOUT: %.11d: type = fn_type_with_self_type %HasF.WithSelf.F.type.87a, %HasF.facet [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.type.005: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.5fa: %HasF.WithSelf.F.type.005 = struct_value () [concrete] +// CHECK:STDOUT: %.4f9: type = fn_type_with_self_type %HasF.WithSelf.F.type.005, %HasF.facet [concrete] // CHECK:STDOUT: %C.as.HasF.impl.F.type: type = fn_type @C.as.HasF.impl.F [concrete] // CHECK:STDOUT: %C.as.HasF.impl.F: %C.as.HasF.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -690,18 +690,18 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %PackageA.C: type = import_ref PackageA//default, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %PackageA.import_ref.8f2: = import_ref PackageA//default, loc8_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageA.import_ref.927 = import_ref PackageA//default, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %PackageA.import_ref.ce9 = import_ref PackageA//default, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %PackageA.HasF: type = import_ref PackageA//default, HasF, loaded [concrete = constants.%HasF.type] -// CHECK:STDOUT: %PackageA.import_ref.067: %HasF.assoc_type = import_ref PackageA//default, loc5_21, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %PackageA.import_ref.dff: %HasF.assoc_type = import_ref PackageA//default, loc5_21, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %PackageA.F = import_ref PackageA//default, F, unloaded -// CHECK:STDOUT: %PackageA.import_ref.7de6df.2: %HasF.type = import_ref PackageA//default, loc4_16, loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %PackageA.import_ref.066 = import_ref PackageA//default, loc4_16, unloaded -// CHECK:STDOUT: %PackageA.import_ref.34d: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.699) = import_ref PackageA//default, loc5_21, loaded [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.c81)] -// CHECK:STDOUT: %PackageA.import_ref.6e8: = import_ref PackageA//default, loc11_16, loaded [concrete = constants.%HasF.impl_witness] -// CHECK:STDOUT: %PackageA.import_ref.7c2: type = import_ref PackageA//default, loc11_6, loaded [concrete = constants.%C] -// CHECK:STDOUT: %PackageA.import_ref.1c7: type = import_ref PackageA//default, loc11_11, loaded [concrete = constants.%HasF.type] -// CHECK:STDOUT: %PackageA.import_ref.f6f: %C.as.HasF.impl.F.type = import_ref PackageA//default, loc12_29, loaded [concrete = constants.%C.as.HasF.impl.F] -// CHECK:STDOUT: %HasF.impl_witness_table = impl_witness_table (%PackageA.import_ref.f6f), @C.as.HasF.impl [concrete] +// CHECK:STDOUT: %PackageA.import_ref.b7072f.2: %HasF.type = import_ref PackageA//default, loc4_16, loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %PackageA.import_ref.15c = import_ref PackageA//default, loc4_16, unloaded +// CHECK:STDOUT: %PackageA.import_ref.91e: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.c4f) = import_ref PackageA//default, loc5_21, loaded [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.c56)] +// CHECK:STDOUT: %PackageA.import_ref.7b8: = import_ref PackageA//default, loc11_16, loaded [concrete = constants.%HasF.impl_witness] +// CHECK:STDOUT: %PackageA.import_ref.364: type = import_ref PackageA//default, loc11_6, loaded [concrete = constants.%C] +// CHECK:STDOUT: %PackageA.import_ref.e71: type = import_ref PackageA//default, loc11_11, loaded [concrete = constants.%HasF.type] +// CHECK:STDOUT: %PackageA.import_ref.448: %C.as.HasF.impl.F.type = import_ref PackageA//default, loc12_29, loaded [concrete = constants.%C.as.HasF.impl.F] +// CHECK:STDOUT: %HasF.impl_witness_table = impl_witness_table (%PackageA.import_ref.448), @C.as.HasF.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -713,8 +713,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %PackageA.import = import PackageA // CHECK:STDOUT: %TestCF.decl: %TestCF.type = fn_decl @TestCF [concrete = constants.%TestCF] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.e62 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.e62 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.866 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.866 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %.loc6: type = splice_block %C.ref [concrete = constants.%C] { @@ -727,23 +727,23 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF [from "package_a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageA.import_ref.066 -// CHECK:STDOUT: .F = imports.%PackageA.import_ref.067 +// CHECK:STDOUT: .Self = imports.%PackageA.import_ref.15c +// CHECK:STDOUT: .F = imports.%PackageA.import_ref.dff // CHECK:STDOUT: witness = (imports.%PackageA.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.HasF.impl: imports.%PackageA.import_ref.7c2 as imports.%PackageA.import_ref.1c7 [from "package_a.carbon"] { +// CHECK:STDOUT: impl @C.as.HasF.impl: imports.%PackageA.import_ref.364 as imports.%PackageA.import_ref.e71 [from "package_a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%PackageA.import_ref.6e8 +// CHECK:STDOUT: witness = imports.%PackageA.import_ref.7b8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "package_a.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%PackageA.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageA.import_ref.927 +// CHECK:STDOUT: .Self = imports.%PackageA.import_ref.ce9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestCF(%c.param: %C) { @@ -751,17 +751,17 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %PackageA.ref.loc7: = name_ref PackageA, imports.%PackageA [concrete = imports.%PackageA] // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, imports.%PackageA.HasF [concrete = constants.%HasF.type] -// CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, imports.%PackageA.import_ref.067 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.11d = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F] +// CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, imports.%PackageA.import_ref.dff [concrete = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %.4f9 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %C.as.HasF.impl.F.call: init %empty_tuple.type = call %bound_method(%c.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HasF.WithSelf.F(imports.%PackageA.import_ref.7de6df.2: %HasF.type) [from "package_a.carbon"] { +// CHECK:STDOUT: generic fn @HasF.WithSelf.F(imports.%PackageA.import_ref.b7072f.2: %HasF.type) [from "package_a.carbon"] { // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.d62)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.6cd)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -771,21 +771,21 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: specific @HasF.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.699 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.c81 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.c4f +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.c56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d62 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6cd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%HasF.facet -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.87a -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.f2f +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.005 +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.5fa // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_df.carbon @@ -794,24 +794,24 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.d93: type = pattern_type %D [concrete] +// CHECK:STDOUT: %pattern_type.709: type = pattern_type %D [concrete] // CHECK:STDOUT: %TestDF.type: type = fn_type @TestDF [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %TestDF: %TestDF.type = struct_value () [concrete] // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.699: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.c81: %HasF.WithSelf.F.type.699 = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.c4f: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.c56: %HasF.WithSelf.F.type.c4f = struct_value () [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.d62: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.6cd: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] -// CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, imports.%PackageA.import_ref.34d [concrete] +// CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, imports.%PackageA.import_ref.91e [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %HasF.impl_witness: = impl_witness imports.%HasF.impl_witness_table [concrete] // CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %D, (%HasF.impl_witness) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.type.f9f: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.ea5: %HasF.WithSelf.F.type.f9f = struct_value () [concrete] -// CHECK:STDOUT: %.708: type = fn_type_with_self_type %HasF.WithSelf.F.type.f9f, %HasF.facet [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.type.0da: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.8b9: %HasF.WithSelf.F.type.0da = struct_value () [concrete] +// CHECK:STDOUT: %.322: type = fn_type_with_self_type %HasF.WithSelf.F.type.0da, %HasF.facet [concrete] // CHECK:STDOUT: %D.as.HasF.impl.F.type: type = fn_type @D.as.HasF.impl.F [concrete] // CHECK:STDOUT: %D.as.HasF.impl.F: %D.as.HasF.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -831,23 +831,23 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %PackageB.D: type = import_ref PackageB//default, D, loaded [concrete = constants.%D] // CHECK:STDOUT: %PackageB.import_ref.8f2: = import_ref PackageB//default, loc10_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageB.import_ref.4a4 = import_ref PackageB//default, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %PackageB.import_ref.26f = import_ref PackageB//default, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %PackageA.HasF: type = import_ref PackageA//default, HasF, loaded [concrete = constants.%HasF.type] -// CHECK:STDOUT: %PackageA.import_ref.067: %HasF.assoc_type = import_ref PackageA//default, loc5_21, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %PackageA.import_ref.dff: %HasF.assoc_type = import_ref PackageA//default, loc5_21, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %PackageA.F = import_ref PackageA//default, F, unloaded -// CHECK:STDOUT: %PackageA.import_ref.7de6df.2: %HasF.type = import_ref PackageA//default, loc4_16, loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %PackageA.import_ref.066 = import_ref PackageA//default, loc4_16, unloaded -// CHECK:STDOUT: %PackageA.import_ref.34d: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.699) = import_ref PackageA//default, loc5_21, loaded [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.c81)] -// CHECK:STDOUT: %PackageA.import_ref.b19 = import_ref PackageA//default, loc11_16, unloaded +// CHECK:STDOUT: %PackageA.import_ref.b7072f.2: %HasF.type = import_ref PackageA//default, loc4_16, loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %PackageA.import_ref.15c = import_ref PackageA//default, loc4_16, unloaded +// CHECK:STDOUT: %PackageA.import_ref.91e: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.c4f) = import_ref PackageA//default, loc5_21, loaded [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.c56)] +// CHECK:STDOUT: %PackageA.import_ref.b97 = import_ref PackageA//default, loc11_16, unloaded // CHECK:STDOUT: %PackageA.import_ref.8f2: = import_ref PackageA//default, loc8_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageA.import_ref.927 = import_ref PackageA//default, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %PackageA.import_ref.7c2: type = import_ref PackageA//default, loc11_6, loaded [concrete = constants.%C] -// CHECK:STDOUT: %PackageA.import_ref.1c7: type = import_ref PackageA//default, loc11_11, loaded [concrete = constants.%HasF.type] -// CHECK:STDOUT: %PackageB.import_ref.0c4: = import_ref PackageB//default, loc18_25, loaded [concrete = constants.%HasF.impl_witness] -// CHECK:STDOUT: %PackageB.import_ref.109: type = import_ref PackageB//default, loc18_6, loaded [concrete = constants.%D] -// CHECK:STDOUT: %PackageB.import_ref.ee7: type = import_ref PackageB//default, loc18_19, loaded [concrete = constants.%HasF.type] -// CHECK:STDOUT: %PackageB.import_ref.9ae: %D.as.HasF.impl.F.type = import_ref PackageB//default, loc19_29, loaded [concrete = constants.%D.as.HasF.impl.F] -// CHECK:STDOUT: %HasF.impl_witness_table = impl_witness_table (%PackageB.import_ref.9ae), @D.as.HasF.impl [concrete] +// CHECK:STDOUT: %PackageA.import_ref.ce9 = import_ref PackageA//default, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %PackageA.import_ref.364: type = import_ref PackageA//default, loc11_6, loaded [concrete = constants.%C] +// CHECK:STDOUT: %PackageA.import_ref.e71: type = import_ref PackageA//default, loc11_11, loaded [concrete = constants.%HasF.type] +// CHECK:STDOUT: %PackageB.import_ref.b78: = import_ref PackageB//default, loc18_25, loaded [concrete = constants.%HasF.impl_witness] +// CHECK:STDOUT: %PackageB.import_ref.624: type = import_ref PackageB//default, loc18_6, loaded [concrete = constants.%D] +// CHECK:STDOUT: %PackageB.import_ref.876: type = import_ref PackageB//default, loc18_19, loaded [concrete = constants.%HasF.type] +// CHECK:STDOUT: %PackageB.import_ref.2df: %D.as.HasF.impl.F.type = import_ref PackageB//default, loc19_29, loaded [concrete = constants.%D.as.HasF.impl.F] +// CHECK:STDOUT: %HasF.impl_witness_table = impl_witness_table (%PackageB.import_ref.2df), @D.as.HasF.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -861,8 +861,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageA.import = import PackageA // CHECK:STDOUT: %PackageB.import = import PackageB // CHECK:STDOUT: %TestDF.decl: %TestDF.type = fn_decl @TestDF [concrete = constants.%TestDF] { -// CHECK:STDOUT: %d.param_patt: %pattern_type.d93 = value_param_pattern [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.d93 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.709 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.709 = at_binding_pattern d, %d.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %d.param: %D = value_param call_param0 // CHECK:STDOUT: %.loc7: type = splice_block %D.ref [concrete = constants.%D] { @@ -875,35 +875,35 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF [from "package_a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageA.import_ref.066 -// CHECK:STDOUT: .F = imports.%PackageA.import_ref.067 +// CHECK:STDOUT: .Self = imports.%PackageA.import_ref.15c +// CHECK:STDOUT: .F = imports.%PackageA.import_ref.dff // CHECK:STDOUT: witness = (imports.%PackageA.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.HasF.impl: imports.%PackageA.import_ref.7c2 as imports.%PackageA.import_ref.1c7 [from "package_a.carbon"] { +// CHECK:STDOUT: impl @C.as.HasF.impl: imports.%PackageA.import_ref.364 as imports.%PackageA.import_ref.e71 [from "package_a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%PackageA.import_ref.b19 +// CHECK:STDOUT: witness = imports.%PackageA.import_ref.b97 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @D.as.HasF.impl: imports.%PackageB.import_ref.109 as imports.%PackageB.import_ref.ee7 [from "package_b.carbon"] { +// CHECK:STDOUT: impl @D.as.HasF.impl: imports.%PackageB.import_ref.624 as imports.%PackageB.import_ref.876 [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%PackageB.import_ref.0c4 +// CHECK:STDOUT: witness = imports.%PackageB.import_ref.b78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D [from "package_b.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%PackageB.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageB.import_ref.4a4 +// CHECK:STDOUT: .Self = imports.%PackageB.import_ref.26f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "package_a.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%PackageA.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageA.import_ref.927 +// CHECK:STDOUT: .Self = imports.%PackageA.import_ref.ce9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestDF(%d.param: %D) { @@ -911,17 +911,17 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %d.ref: %D = name_ref d, %d // CHECK:STDOUT: %PackageA.ref: = name_ref PackageA, imports.%PackageA [concrete = imports.%PackageA] // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, imports.%PackageA.HasF [concrete = constants.%HasF.type] -// CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, imports.%PackageA.import_ref.067 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.708 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%D.as.HasF.impl.F] +// CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, imports.%PackageA.import_ref.dff [concrete = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %.322 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%D.as.HasF.impl.F] // CHECK:STDOUT: %bound_method: = bound_method %d.ref, %impl.elem0 // CHECK:STDOUT: %D.as.HasF.impl.F.call: init %empty_tuple.type = call %bound_method(%d.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HasF.WithSelf.F(imports.%PackageA.import_ref.7de6df.2: %HasF.type) [from "package_a.carbon"] { +// CHECK:STDOUT: generic fn @HasF.WithSelf.F(imports.%PackageA.import_ref.b7072f.2: %HasF.type) [from "package_a.carbon"] { // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.d62)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.6cd)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -931,21 +931,21 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: specific @HasF.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.699 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.c81 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.c4f +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.c56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d62 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6cd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%HasF.facet -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.f9f -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.ea5 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.0da +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.8b9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_cg.carbon @@ -954,24 +954,24 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.e62: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.866: type = pattern_type %C [concrete] // CHECK:STDOUT: %TestCG.type: type = fn_type @TestCG [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %TestCG: %TestCG.type = struct_value () [concrete] // CHECK:STDOUT: %HasG.type: type = facet_type <@HasG> [concrete] // CHECK:STDOUT: %Self: %HasG.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %HasG.WithSelf.G.type.353: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %HasG.WithSelf.G.0b9: %HasG.WithSelf.G.type.353 = struct_value () [symbolic] +// CHECK:STDOUT: %HasG.WithSelf.G.type.95e: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %HasG.WithSelf.G.50a: %HasG.WithSelf.G.type.95e = struct_value () [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.96e: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.2fa: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %HasG.assoc_type: type = assoc_entity_type @HasG [concrete] -// CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, imports.%PackageB.import_ref.658 [concrete] +// CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, imports.%PackageB.import_ref.89b [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %HasG.impl_witness: = impl_witness imports.%HasG.impl_witness_table [concrete] // CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %C, (%HasG.impl_witness) [concrete] -// CHECK:STDOUT: %HasG.WithSelf.G.type.e39: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet) [concrete] -// CHECK:STDOUT: %HasG.WithSelf.G.207: %HasG.WithSelf.G.type.e39 = struct_value () [concrete] -// CHECK:STDOUT: %.50e: type = fn_type_with_self_type %HasG.WithSelf.G.type.e39, %HasG.facet [concrete] +// CHECK:STDOUT: %HasG.WithSelf.G.type.49f: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet) [concrete] +// CHECK:STDOUT: %HasG.WithSelf.G.aaf: %HasG.WithSelf.G.type.49f = struct_value () [concrete] +// CHECK:STDOUT: %.87e: type = fn_type_with_self_type %HasG.WithSelf.G.type.49f, %HasG.facet [concrete] // CHECK:STDOUT: %C.as.HasG.impl.G.type: type = fn_type @C.as.HasG.impl.G [concrete] // CHECK:STDOUT: %C.as.HasG.impl.G: %C.as.HasG.impl.G.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -991,23 +991,23 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %PackageA.C: type = import_ref PackageA//default, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %PackageA.import_ref.8f2: = import_ref PackageA//default, loc8_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageA.import_ref.927 = import_ref PackageA//default, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %PackageA.import_ref.ce9 = import_ref PackageA//default, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %PackageB.HasG: type = import_ref PackageB//default, HasG, loaded [concrete = constants.%HasG.type] -// CHECK:STDOUT: %PackageB.import_ref.8c0: %HasG.assoc_type = import_ref PackageB//default, loc7_21, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %PackageB.import_ref.d25: %HasG.assoc_type = import_ref PackageB//default, loc7_21, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %PackageB.G = import_ref PackageB//default, G, unloaded -// CHECK:STDOUT: %PackageB.import_ref.1d7a42.2: %HasG.type = import_ref PackageB//default, loc6_16, loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %PackageB.import_ref.067 = import_ref PackageB//default, loc6_16, unloaded -// CHECK:STDOUT: %PackageB.import_ref.658: @HasG.WithSelf.%HasG.WithSelf.G.type (%HasG.WithSelf.G.type.353) = import_ref PackageB//default, loc7_21, loaded [symbolic = @HasG.WithSelf.%HasG.WithSelf.G (constants.%HasG.WithSelf.G.0b9)] -// CHECK:STDOUT: %PackageB.import_ref.d7f: = import_ref PackageB//default, loc13_25, loaded [concrete = constants.%HasG.impl_witness] -// CHECK:STDOUT: %PackageB.import_ref.4ab: type = import_ref PackageB//default, loc13_14, loaded [concrete = constants.%C] -// CHECK:STDOUT: %PackageB.import_ref.68e266.1: type = import_ref PackageB//default, loc13_20, loaded [concrete = constants.%HasG.type] -// CHECK:STDOUT: %PackageB.import_ref.f75 = import_ref PackageB//default, loc23_16, unloaded +// CHECK:STDOUT: %PackageB.import_ref.10cb76.2: %HasG.type = import_ref PackageB//default, loc6_16, loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %PackageB.import_ref.d8d = import_ref PackageB//default, loc6_16, unloaded +// CHECK:STDOUT: %PackageB.import_ref.89b: @HasG.WithSelf.%HasG.WithSelf.G.type (%HasG.WithSelf.G.type.95e) = import_ref PackageB//default, loc7_21, loaded [symbolic = @HasG.WithSelf.%HasG.WithSelf.G (constants.%HasG.WithSelf.G.50a)] +// CHECK:STDOUT: %PackageB.import_ref.588: = import_ref PackageB//default, loc13_25, loaded [concrete = constants.%HasG.impl_witness] +// CHECK:STDOUT: %PackageB.import_ref.473: type = import_ref PackageB//default, loc13_14, loaded [concrete = constants.%C] +// CHECK:STDOUT: %PackageB.import_ref.e35e93.1: type = import_ref PackageB//default, loc13_20, loaded [concrete = constants.%HasG.type] +// CHECK:STDOUT: %PackageB.import_ref.8cf = import_ref PackageB//default, loc23_16, unloaded // CHECK:STDOUT: %PackageB.import_ref.8f2: = import_ref PackageB//default, loc10_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageB.import_ref.4a4 = import_ref PackageB//default, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %PackageB.import_ref.109: type = import_ref PackageB//default, loc23_6, loaded [concrete = constants.%D] -// CHECK:STDOUT: %PackageB.import_ref.68e266.2: type = import_ref PackageB//default, loc23_11, loaded [concrete = constants.%HasG.type] -// CHECK:STDOUT: %PackageB.import_ref.b28: %C.as.HasG.impl.G.type = import_ref PackageB//default, loc14_29, loaded [concrete = constants.%C.as.HasG.impl.G] -// CHECK:STDOUT: %HasG.impl_witness_table = impl_witness_table (%PackageB.import_ref.b28), @C.as.HasG.impl [concrete] +// CHECK:STDOUT: %PackageB.import_ref.26f = import_ref PackageB//default, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %PackageB.import_ref.624: type = import_ref PackageB//default, loc23_6, loaded [concrete = constants.%D] +// CHECK:STDOUT: %PackageB.import_ref.e35e93.2: type = import_ref PackageB//default, loc23_11, loaded [concrete = constants.%HasG.type] +// CHECK:STDOUT: %PackageB.import_ref.98c: %C.as.HasG.impl.G.type = import_ref PackageB//default, loc14_29, loaded [concrete = constants.%C.as.HasG.impl.G] +// CHECK:STDOUT: %HasG.impl_witness_table = impl_witness_table (%PackageB.import_ref.98c), @C.as.HasG.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1021,8 +1021,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageA.import = import PackageA // CHECK:STDOUT: %PackageB.import = import PackageB // CHECK:STDOUT: %TestCG.decl: %TestCG.type = fn_decl @TestCG [concrete = constants.%TestCG] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.e62 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.e62 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.866 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.866 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %.loc7: type = splice_block %C.ref [concrete = constants.%C] { @@ -1035,35 +1035,35 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasG [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageB.import_ref.067 -// CHECK:STDOUT: .G = imports.%PackageB.import_ref.8c0 +// CHECK:STDOUT: .Self = imports.%PackageB.import_ref.d8d +// CHECK:STDOUT: .G = imports.%PackageB.import_ref.d25 // CHECK:STDOUT: witness = (imports.%PackageB.G) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.HasG.impl: imports.%PackageB.import_ref.4ab as imports.%PackageB.import_ref.68e266.1 [from "package_b.carbon"] { +// CHECK:STDOUT: impl @C.as.HasG.impl: imports.%PackageB.import_ref.473 as imports.%PackageB.import_ref.e35e93.1 [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%PackageB.import_ref.d7f +// CHECK:STDOUT: witness = imports.%PackageB.import_ref.588 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @D.as.HasG.impl: imports.%PackageB.import_ref.109 as imports.%PackageB.import_ref.68e266.2 [from "package_b.carbon"] { +// CHECK:STDOUT: impl @D.as.HasG.impl: imports.%PackageB.import_ref.624 as imports.%PackageB.import_ref.e35e93.2 [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%PackageB.import_ref.f75 +// CHECK:STDOUT: witness = imports.%PackageB.import_ref.8cf // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "package_a.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%PackageA.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageA.import_ref.927 +// CHECK:STDOUT: .Self = imports.%PackageA.import_ref.ce9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D [from "package_b.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%PackageB.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageB.import_ref.4a4 +// CHECK:STDOUT: .Self = imports.%PackageB.import_ref.26f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestCG(%c.param: %C) { @@ -1071,17 +1071,17 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %PackageB.ref: = name_ref PackageB, imports.%PackageB [concrete = imports.%PackageB] // CHECK:STDOUT: %HasG.ref: type = name_ref HasG, imports.%PackageB.HasG [concrete = constants.%HasG.type] -// CHECK:STDOUT: %G.ref: %HasG.assoc_type = name_ref G, imports.%PackageB.import_ref.8c0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.50e = impl_witness_access constants.%HasG.impl_witness, element0 [concrete = constants.%C.as.HasG.impl.G] +// CHECK:STDOUT: %G.ref: %HasG.assoc_type = name_ref G, imports.%PackageB.import_ref.d25 [concrete = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %.87e = impl_witness_access constants.%HasG.impl_witness, element0 [concrete = constants.%C.as.HasG.impl.G] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %C.as.HasG.impl.G.call: init %empty_tuple.type = call %bound_method(%c.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HasG.WithSelf.G(imports.%PackageB.import_ref.1d7a42.2: %HasG.type) [from "package_b.carbon"] { +// CHECK:STDOUT: generic fn @HasG.WithSelf.G(imports.%PackageB.import_ref.10cb76.2: %HasG.type) [from "package_b.carbon"] { // CHECK:STDOUT: %Self: %HasG.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.96e)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.2fa)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -1091,21 +1091,21 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: specific @HasG.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.353 -// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.0b9 +// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.95e +// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.50a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.96e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2fa // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%HasG.facet -// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.e39 -// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.207 +// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.49f +// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.aaf // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_dg.carbon @@ -1114,24 +1114,24 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.d93: type = pattern_type %D [concrete] +// CHECK:STDOUT: %pattern_type.709: type = pattern_type %D [concrete] // CHECK:STDOUT: %TestDG.type: type = fn_type @TestDG [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %TestDG: %TestDG.type = struct_value () [concrete] // CHECK:STDOUT: %HasG.type: type = facet_type <@HasG> [concrete] // CHECK:STDOUT: %Self: %HasG.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %HasG.WithSelf.G.type.353: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %HasG.WithSelf.G.0b9: %HasG.WithSelf.G.type.353 = struct_value () [symbolic] +// CHECK:STDOUT: %HasG.WithSelf.G.type.95e: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %HasG.WithSelf.G.50a: %HasG.WithSelf.G.type.95e = struct_value () [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.96e: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.2fa: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %HasG.assoc_type: type = assoc_entity_type @HasG [concrete] -// CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, imports.%PackageB.import_ref.658 [concrete] +// CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, imports.%PackageB.import_ref.89b [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %HasG.impl_witness: = impl_witness imports.%HasG.impl_witness_table [concrete] // CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %D, (%HasG.impl_witness) [concrete] -// CHECK:STDOUT: %HasG.WithSelf.G.type.c3d: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet) [concrete] -// CHECK:STDOUT: %HasG.WithSelf.G.7c3: %HasG.WithSelf.G.type.c3d = struct_value () [concrete] -// CHECK:STDOUT: %.cc9: type = fn_type_with_self_type %HasG.WithSelf.G.type.c3d, %HasG.facet [concrete] +// CHECK:STDOUT: %HasG.WithSelf.G.type.ef9: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet) [concrete] +// CHECK:STDOUT: %HasG.WithSelf.G.482: %HasG.WithSelf.G.type.ef9 = struct_value () [concrete] +// CHECK:STDOUT: %.009: type = fn_type_with_self_type %HasG.WithSelf.G.type.ef9, %HasG.facet [concrete] // CHECK:STDOUT: %D.as.HasG.impl.G.type: type = fn_type @D.as.HasG.impl.G [concrete] // CHECK:STDOUT: %D.as.HasG.impl.G: %D.as.HasG.impl.G.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -1148,23 +1148,23 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %PackageB.D: type = import_ref PackageB//default, D, loaded [concrete = constants.%D] // CHECK:STDOUT: %PackageB.import_ref.8f2: = import_ref PackageB//default, loc10_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageB.import_ref.4a4 = import_ref PackageB//default, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %PackageB.import_ref.26f = import_ref PackageB//default, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %PackageB.HasG: type = import_ref PackageB//default, HasG, loaded [concrete = constants.%HasG.type] -// CHECK:STDOUT: %PackageB.import_ref.8c0: %HasG.assoc_type = import_ref PackageB//default, loc7_21, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %PackageB.import_ref.d25: %HasG.assoc_type = import_ref PackageB//default, loc7_21, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %PackageB.G = import_ref PackageB//default, G, unloaded -// CHECK:STDOUT: %PackageB.import_ref.1d7a42.2: %HasG.type = import_ref PackageB//default, loc6_16, loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %PackageB.import_ref.067 = import_ref PackageB//default, loc6_16, unloaded -// CHECK:STDOUT: %PackageB.import_ref.658: @HasG.WithSelf.%HasG.WithSelf.G.type (%HasG.WithSelf.G.type.353) = import_ref PackageB//default, loc7_21, loaded [symbolic = @HasG.WithSelf.%HasG.WithSelf.G (constants.%HasG.WithSelf.G.0b9)] -// CHECK:STDOUT: %PackageB.import_ref.199 = import_ref PackageB//default, loc13_25, unloaded +// CHECK:STDOUT: %PackageB.import_ref.10cb76.2: %HasG.type = import_ref PackageB//default, loc6_16, loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %PackageB.import_ref.d8d = import_ref PackageB//default, loc6_16, unloaded +// CHECK:STDOUT: %PackageB.import_ref.89b: @HasG.WithSelf.%HasG.WithSelf.G.type (%HasG.WithSelf.G.type.95e) = import_ref PackageB//default, loc7_21, loaded [symbolic = @HasG.WithSelf.%HasG.WithSelf.G (constants.%HasG.WithSelf.G.50a)] +// CHECK:STDOUT: %PackageB.import_ref.720 = import_ref PackageB//default, loc13_25, unloaded // CHECK:STDOUT: %PackageB.import_ref.8db: = import_ref PackageB//default, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageB.import_ref.288 = import_ref PackageB//default, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %PackageB.import_ref.4ab: type = import_ref PackageB//default, loc13_14, loaded [concrete = constants.%C] -// CHECK:STDOUT: %PackageB.import_ref.68e266.1: type = import_ref PackageB//default, loc13_20, loaded [concrete = constants.%HasG.type] -// CHECK:STDOUT: %PackageB.import_ref.3cb: = import_ref PackageB//default, loc23_16, loaded [concrete = constants.%HasG.impl_witness] -// CHECK:STDOUT: %PackageB.import_ref.109: type = import_ref PackageB//default, loc23_6, loaded [concrete = constants.%D] -// CHECK:STDOUT: %PackageB.import_ref.68e266.2: type = import_ref PackageB//default, loc23_11, loaded [concrete = constants.%HasG.type] -// CHECK:STDOUT: %PackageB.import_ref.b28: %D.as.HasG.impl.G.type = import_ref PackageB//default, loc24_29, loaded [concrete = constants.%D.as.HasG.impl.G] -// CHECK:STDOUT: %HasG.impl_witness_table = impl_witness_table (%PackageB.import_ref.b28), @D.as.HasG.impl [concrete] +// CHECK:STDOUT: %PackageB.import_ref.ded = import_ref PackageB//default, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %PackageB.import_ref.473: type = import_ref PackageB//default, loc13_14, loaded [concrete = constants.%C] +// CHECK:STDOUT: %PackageB.import_ref.e35e93.1: type = import_ref PackageB//default, loc13_20, loaded [concrete = constants.%HasG.type] +// CHECK:STDOUT: %PackageB.import_ref.3cd: = import_ref PackageB//default, loc23_16, loaded [concrete = constants.%HasG.impl_witness] +// CHECK:STDOUT: %PackageB.import_ref.624: type = import_ref PackageB//default, loc23_6, loaded [concrete = constants.%D] +// CHECK:STDOUT: %PackageB.import_ref.e35e93.2: type = import_ref PackageB//default, loc23_11, loaded [concrete = constants.%HasG.type] +// CHECK:STDOUT: %PackageB.import_ref.98c: %D.as.HasG.impl.G.type = import_ref PackageB//default, loc24_29, loaded [concrete = constants.%D.as.HasG.impl.G] +// CHECK:STDOUT: %HasG.impl_witness_table = impl_witness_table (%PackageB.import_ref.98c), @D.as.HasG.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1176,8 +1176,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %PackageB.import = import PackageB // CHECK:STDOUT: %TestDG.decl: %TestDG.type = fn_decl @TestDG [concrete = constants.%TestDG] { -// CHECK:STDOUT: %d.param_patt: %pattern_type.d93 = value_param_pattern [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.d93 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.709 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.709 = at_binding_pattern d, %d.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %d.param: %D = value_param call_param0 // CHECK:STDOUT: %.loc6: type = splice_block %D.ref [concrete = constants.%D] { @@ -1190,35 +1190,35 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @HasG [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageB.import_ref.067 -// CHECK:STDOUT: .G = imports.%PackageB.import_ref.8c0 +// CHECK:STDOUT: .Self = imports.%PackageB.import_ref.d8d +// CHECK:STDOUT: .G = imports.%PackageB.import_ref.d25 // CHECK:STDOUT: witness = (imports.%PackageB.G) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.HasG.impl: imports.%PackageB.import_ref.4ab as imports.%PackageB.import_ref.68e266.1 [from "package_b.carbon"] { +// CHECK:STDOUT: impl @C.as.HasG.impl: imports.%PackageB.import_ref.473 as imports.%PackageB.import_ref.e35e93.1 [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%PackageB.import_ref.199 +// CHECK:STDOUT: witness = imports.%PackageB.import_ref.720 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @D.as.HasG.impl: imports.%PackageB.import_ref.109 as imports.%PackageB.import_ref.68e266.2 [from "package_b.carbon"] { +// CHECK:STDOUT: impl @D.as.HasG.impl: imports.%PackageB.import_ref.624 as imports.%PackageB.import_ref.e35e93.2 [from "package_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%PackageB.import_ref.3cb +// CHECK:STDOUT: witness = imports.%PackageB.import_ref.3cd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D [from "package_b.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%PackageB.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageB.import_ref.4a4 +// CHECK:STDOUT: .Self = imports.%PackageB.import_ref.26f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "package_b.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%PackageB.import_ref.8db // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageB.import_ref.288 +// CHECK:STDOUT: .Self = imports.%PackageB.import_ref.ded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestDG(%d.param: %D) { @@ -1226,17 +1226,17 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %d.ref: %D = name_ref d, %d // CHECK:STDOUT: %PackageB.ref.loc7: = name_ref PackageB, imports.%PackageB [concrete = imports.%PackageB] // CHECK:STDOUT: %HasG.ref: type = name_ref HasG, imports.%PackageB.HasG [concrete = constants.%HasG.type] -// CHECK:STDOUT: %G.ref: %HasG.assoc_type = name_ref G, imports.%PackageB.import_ref.8c0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.cc9 = impl_witness_access constants.%HasG.impl_witness, element0 [concrete = constants.%D.as.HasG.impl.G] +// CHECK:STDOUT: %G.ref: %HasG.assoc_type = name_ref G, imports.%PackageB.import_ref.d25 [concrete = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %.009 = impl_witness_access constants.%HasG.impl_witness, element0 [concrete = constants.%D.as.HasG.impl.G] // CHECK:STDOUT: %bound_method: = bound_method %d.ref, %impl.elem0 // CHECK:STDOUT: %D.as.HasG.impl.G.call: init %empty_tuple.type = call %bound_method(%d.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HasG.WithSelf.G(imports.%PackageB.import_ref.1d7a42.2: %HasG.type) [from "package_b.carbon"] { +// CHECK:STDOUT: generic fn @HasG.WithSelf.G(imports.%PackageB.import_ref.10cb76.2: %HasG.type) [from "package_b.carbon"] { // CHECK:STDOUT: %Self: %HasG.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.96e)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.2fa)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -1246,21 +1246,21 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: specific @HasG.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.353 -// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.0b9 +// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.95e +// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.50a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.96e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2fa // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%HasG.facet -// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.c3d -// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.7c3 +// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.ef9 +// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.482 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- associated_interface.carbon @@ -1269,10 +1269,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.fb1: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %Z.WithSelf.H.type.f29: type = fn_type @Z.WithSelf.H, @Z.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %pattern_type.a8e: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Z.WithSelf.H.type.9ae: type = fn_type @Z.WithSelf.H, @Z.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Z.WithSelf.H.014: %Z.WithSelf.H.type.f29 = struct_value () [symbolic] +// CHECK:STDOUT: %Z.WithSelf.H.051: %Z.WithSelf.H.type.9ae = struct_value () [symbolic] // CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z [concrete] // CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, @Z.WithSelf.%Z.WithSelf.H.decl [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -1281,8 +1281,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %empty_tuple.type.as.Z.impl.H.type: type = fn_type @empty_tuple.type.as.Z.impl.H [concrete] // CHECK:STDOUT: %empty_tuple.type.as.Z.impl.H: %empty_tuple.type.as.Z.impl.H.type = struct_value () [concrete] // CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_tuple.type, (%Z.impl_witness) [concrete] -// CHECK:STDOUT: %Z.WithSelf.H.type.7ab: type = fn_type @Z.WithSelf.H, @Z.WithSelf(%Z.facet) [concrete] -// CHECK:STDOUT: %Z.WithSelf.H.6a1: %Z.WithSelf.H.type.7ab = struct_value () [concrete] +// CHECK:STDOUT: %Z.WithSelf.H.type.c57: type = fn_type @Z.WithSelf.H, @Z.WithSelf(%Z.facet) [concrete] +// CHECK:STDOUT: %Z.WithSelf.H.148: %Z.WithSelf.H.type.c57 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1311,9 +1311,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Z.WithSelf.H.decl: @Z.WithSelf.%Z.WithSelf.H.type (%Z.WithSelf.H.type.f29) = fn_decl @Z.WithSelf.H [symbolic = @Z.WithSelf.%Z.WithSelf.H (constants.%Z.WithSelf.H.014)] { -// CHECK:STDOUT: %self.param_patt: @Z.WithSelf.H.%pattern_type (%pattern_type.fb1) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Z.WithSelf.H.%pattern_type (%pattern_type.fb1) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %Z.WithSelf.H.decl: @Z.WithSelf.%Z.WithSelf.H.type (%Z.WithSelf.H.type.9ae) = fn_decl @Z.WithSelf.H [symbolic = @Z.WithSelf.%Z.WithSelf.H (constants.%Z.WithSelf.H.051)] { +// CHECK:STDOUT: %self.param_patt: @Z.WithSelf.H.%pattern_type (%pattern_type.a8e) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Z.WithSelf.H.%pattern_type (%pattern_type.a8e) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Z.WithSelf.H.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { @@ -1354,7 +1354,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: generic fn @Z.WithSelf.H(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.fb1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.a8e)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @Z.WithSelf.H.%Self.as_type.loc5_14.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -1367,21 +1367,21 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: specific @Z.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Z.WithSelf.H.type => constants.%Z.WithSelf.H.type.f29 -// CHECK:STDOUT: %Z.WithSelf.H => constants.%Z.WithSelf.H.014 +// CHECK:STDOUT: %Z.WithSelf.H.type => constants.%Z.WithSelf.H.type.9ae +// CHECK:STDOUT: %Z.WithSelf.H => constants.%Z.WithSelf.H.051 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.H(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fb1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a8e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Z.facet -// CHECK:STDOUT: %Z.WithSelf.H.type => constants.%Z.WithSelf.H.type.7ab -// CHECK:STDOUT: %Z.WithSelf.H => constants.%Z.WithSelf.H.6a1 +// CHECK:STDOUT: %Z.WithSelf.H.type => constants.%Z.WithSelf.H.type.c57 +// CHECK:STDOUT: %Z.WithSelf.H => constants.%Z.WithSelf.H.148 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.H(constants.%Z.facet) { @@ -1399,17 +1399,17 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Z.WithSelf.H.type.8f2: type = fn_type @Z.WithSelf.H, @Z.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %Z.WithSelf.H.ba9: %Z.WithSelf.H.type.8f2 = struct_value () [symbolic] +// CHECK:STDOUT: %Z.WithSelf.H.type.e28: type = fn_type @Z.WithSelf.H, @Z.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %Z.WithSelf.H.6ec: %Z.WithSelf.H.type.e28 = struct_value () [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.069: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z [concrete] -// CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, imports.%PackageAssociatedInterface.import_ref.817 [concrete] +// CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, imports.%PackageAssociatedInterface.import_ref.635 [concrete] // CHECK:STDOUT: %Z.impl_witness: = impl_witness imports.%Z.impl_witness_table [concrete] // CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_tuple.type, (%Z.impl_witness) [concrete] -// CHECK:STDOUT: %Z.WithSelf.H.type.bf1: type = fn_type @Z.WithSelf.H, @Z.WithSelf(%Z.facet) [concrete] -// CHECK:STDOUT: %Z.WithSelf.H.59d: %Z.WithSelf.H.type.bf1 = struct_value () [concrete] -// CHECK:STDOUT: %.0e9: type = fn_type_with_self_type %Z.WithSelf.H.type.bf1, %Z.facet [concrete] +// CHECK:STDOUT: %Z.WithSelf.H.type.ff3: type = fn_type @Z.WithSelf.H, @Z.WithSelf(%Z.facet) [concrete] +// CHECK:STDOUT: %Z.WithSelf.H.d80: %Z.WithSelf.H.type.ff3 = struct_value () [concrete] +// CHECK:STDOUT: %.1e6: type = fn_type_with_self_type %Z.WithSelf.H.type.ff3, %Z.facet [concrete] // CHECK:STDOUT: %empty_tuple.type.as.Z.impl.H.type: type = fn_type @empty_tuple.type.as.Z.impl.H [concrete] // CHECK:STDOUT: %empty_tuple.type.as.Z.impl.H: %empty_tuple.type.as.Z.impl.H.type = struct_value () [concrete] // CHECK:STDOUT: %empty_tuple.type.as.Z.impl.H.bound: = bound_method %empty_tuple, %empty_tuple.type.as.Z.impl.H [concrete] @@ -1425,16 +1425,16 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: import PackageAssociatedInterface//default // CHECK:STDOUT: } // CHECK:STDOUT: %PackageAssociatedInterface.Z: type = import_ref PackageAssociatedInterface//default, Z, loaded [concrete = constants.%Z.type] -// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.ce6: %Z.assoc_type = import_ref PackageAssociatedInterface//default, loc5_21, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.a7b: %Z.assoc_type = import_ref PackageAssociatedInterface//default, loc5_21, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %PackageAssociatedInterface.H = import_ref PackageAssociatedInterface//default, H, unloaded -// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.04735e.2: %Z.type = import_ref PackageAssociatedInterface//default, loc4_13, loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.70e = import_ref PackageAssociatedInterface//default, loc4_13, unloaded -// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.817: @Z.WithSelf.%Z.WithSelf.H.type (%Z.WithSelf.H.type.8f2) = import_ref PackageAssociatedInterface//default, loc5_21, loaded [symbolic = @Z.WithSelf.%Z.WithSelf.H (constants.%Z.WithSelf.H.ba9)] -// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.7cc: = import_ref PackageAssociatedInterface//default, loc8_14, loaded [concrete = constants.%Z.impl_witness] +// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.f4f417.2: %Z.type = import_ref PackageAssociatedInterface//default, loc4_13, loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.503 = import_ref PackageAssociatedInterface//default, loc4_13, unloaded +// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.635: @Z.WithSelf.%Z.WithSelf.H.type (%Z.WithSelf.H.type.e28) = import_ref PackageAssociatedInterface//default, loc5_21, loaded [symbolic = @Z.WithSelf.%Z.WithSelf.H (constants.%Z.WithSelf.H.6ec)] +// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.6bc: = import_ref PackageAssociatedInterface//default, loc8_14, loaded [concrete = constants.%Z.impl_witness] // CHECK:STDOUT: %PackageAssociatedInterface.import_ref.e5c: type = import_ref PackageAssociatedInterface//default, loc8_7, loaded [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.f2b: type = import_ref PackageAssociatedInterface//default, loc8_12, loaded [concrete = constants.%Z.type] -// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.1ac: %empty_tuple.type.as.Z.impl.H.type = import_ref PackageAssociatedInterface//default, loc9_29, loaded [concrete = constants.%empty_tuple.type.as.Z.impl.H] -// CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (%PackageAssociatedInterface.import_ref.1ac), @empty_tuple.type.as.Z.impl [concrete] +// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.72a: type = import_ref PackageAssociatedInterface//default, loc8_12, loaded [concrete = constants.%Z.type] +// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.7f2: %empty_tuple.type.as.Z.impl.H.type = import_ref PackageAssociatedInterface//default, loc9_29, loaded [concrete = constants.%empty_tuple.type.as.Z.impl.H] +// CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (%PackageAssociatedInterface.import_ref.7f2), @empty_tuple.type.as.Z.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1450,16 +1450,16 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Z [from "associated_interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageAssociatedInterface.import_ref.70e -// CHECK:STDOUT: .H = imports.%PackageAssociatedInterface.import_ref.ce6 +// CHECK:STDOUT: .Self = imports.%PackageAssociatedInterface.import_ref.503 +// CHECK:STDOUT: .H = imports.%PackageAssociatedInterface.import_ref.a7b // CHECK:STDOUT: witness = (imports.%PackageAssociatedInterface.H) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @empty_tuple.type.as.Z.impl: imports.%PackageAssociatedInterface.import_ref.e5c as imports.%PackageAssociatedInterface.import_ref.f2b [from "associated_interface.carbon"] { +// CHECK:STDOUT: impl @empty_tuple.type.as.Z.impl: imports.%PackageAssociatedInterface.import_ref.e5c as imports.%PackageAssociatedInterface.import_ref.72a [from "associated_interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%PackageAssociatedInterface.import_ref.7cc +// CHECK:STDOUT: witness = imports.%PackageAssociatedInterface.import_ref.6bc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @J() { @@ -1467,8 +1467,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %.loc7_4.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %PackageAssociatedInterface.ref: = name_ref PackageAssociatedInterface, imports.%PackageAssociatedInterface [concrete = imports.%PackageAssociatedInterface] // CHECK:STDOUT: %Z.ref: type = name_ref Z, imports.%PackageAssociatedInterface.Z [concrete = constants.%Z.type] -// CHECK:STDOUT: %H.ref: %Z.assoc_type = name_ref H, imports.%PackageAssociatedInterface.import_ref.ce6 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.0e9 = impl_witness_access constants.%Z.impl_witness, element0 [concrete = constants.%empty_tuple.type.as.Z.impl.H] +// CHECK:STDOUT: %H.ref: %Z.assoc_type = name_ref H, imports.%PackageAssociatedInterface.import_ref.a7b [concrete = constants.%assoc0] +// CHECK:STDOUT: %impl.elem0: %.1e6 = impl_witness_access constants.%Z.impl_witness, element0 [concrete = constants.%empty_tuple.type.as.Z.impl.H] // CHECK:STDOUT: %bound_method: = bound_method %.loc7_4.1, %impl.elem0 [concrete = constants.%empty_tuple.type.as.Z.impl.H.bound] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_4.2: %empty_tuple.type = converted %.loc7_4.1, %empty_tuple [concrete = constants.%empty_tuple] @@ -1476,10 +1476,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Z.WithSelf.H(imports.%PackageAssociatedInterface.import_ref.04735e.2: %Z.type) [from "associated_interface.carbon"] { +// CHECK:STDOUT: generic fn @Z.WithSelf.H(imports.%PackageAssociatedInterface.import_ref.f4f417.2: %Z.type) [from "associated_interface.carbon"] { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.069)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.f00)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -1489,21 +1489,21 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: specific @Z.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Z.WithSelf.H.type => constants.%Z.WithSelf.H.type.8f2 -// CHECK:STDOUT: %Z.WithSelf.H => constants.%Z.WithSelf.H.ba9 +// CHECK:STDOUT: %Z.WithSelf.H.type => constants.%Z.WithSelf.H.type.e28 +// CHECK:STDOUT: %Z.WithSelf.H => constants.%Z.WithSelf.H.6ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.H(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.069 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f00 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Z.facet -// CHECK:STDOUT: %Z.WithSelf.H.type => constants.%Z.WithSelf.H.type.bf1 -// CHECK:STDOUT: %Z.WithSelf.H => constants.%Z.WithSelf.H.59d +// CHECK:STDOUT: %Z.WithSelf.H.type => constants.%Z.WithSelf.H.type.ff3 +// CHECK:STDOUT: %Z.WithSelf.H => constants.%Z.WithSelf.H.d80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- has_param.carbon @@ -1523,7 +1523,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] // CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.2b8: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.28b: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Y.WithSelf.K.type: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %Y.WithSelf.K: %Y.WithSelf.K.type = struct_value () [symbolic] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] @@ -1569,8 +1569,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Y.WithSelf.K.decl: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type) = fn_decl @Y.WithSelf.K [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K)] { -// CHECK:STDOUT: %self.param_patt: @Y.WithSelf.K.%pattern_type (%pattern_type.2b8) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Y.WithSelf.K.%pattern_type (%pattern_type.2b8) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Y.WithSelf.K.%pattern_type (%pattern_type.28b) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Y.WithSelf.K.%pattern_type (%pattern_type.28b) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Y.WithSelf.K.%Self.as_type.loc7_21.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc7_21.1: type = splice_block %.loc7_21.2 [symbolic = %Self.as_type.loc7_21.1 (constants.%Self.as_type)] { @@ -1609,7 +1609,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: generic fn @Y.WithSelf.K(@Y.%Self: %Y.type) { // CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc7_21.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_21.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc7_21.1 [symbolic = %pattern_type (constants.%pattern_type.2b8)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc7_21.1 [symbolic = %pattern_type (constants.%pattern_type.28b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc7_21.1 [symbolic = %require_complete (constants.%require_complete)] @@ -1636,7 +1636,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc7_21.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2b8 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.28b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- has_generic_interface.carbon @@ -1646,11 +1646,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %GenericInterface.type.974: type = generic_interface_type @GenericInterface [concrete] +// CHECK:STDOUT: %GenericInterface.type.cd1: type = generic_interface_type @GenericInterface [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %GenericInterface.generic: %GenericInterface.type.974 = struct_value () [concrete] -// CHECK:STDOUT: %GenericInterface.type.1d5: type = facet_type <@GenericInterface, @GenericInterface(%U)> [symbolic] -// CHECK:STDOUT: %Self.425: %GenericInterface.type.1d5 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %GenericInterface.generic: %GenericInterface.type.cd1 = struct_value () [concrete] +// CHECK:STDOUT: %GenericInterface.type.48f: type = facet_type <@GenericInterface, @GenericInterface(%U)> [symbolic] +// CHECK:STDOUT: %Self.19b: %GenericInterface.type.48f = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %AnyParam.type: type = generic_class_type @AnyParam [concrete] // CHECK:STDOUT: %AnyParam.generic: %AnyParam.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] @@ -1658,32 +1658,32 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %X: %T = symbolic_binding X, 1 [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.831: type = pattern_type %GenericInterface.type.974 [concrete] -// CHECK:STDOUT: %AnyParam.1d7: type = class_type @AnyParam, @AnyParam(%GenericInterface.type.974, %GenericInterface.generic) [concrete] +// CHECK:STDOUT: %pattern_type.ed9: type = pattern_type %GenericInterface.type.cd1 [concrete] +// CHECK:STDOUT: %AnyParam.591: type = class_type @AnyParam, @AnyParam(%GenericInterface.type.cd1, %GenericInterface.generic) [concrete] // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] -// CHECK:STDOUT: %Self.746: %Y.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Y.WithSelf.K.type.1a2: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Self.746) [symbolic] -// CHECK:STDOUT: %Y.WithSelf.K.c42: %Y.WithSelf.K.type.1a2 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type.5d0: type = facet_access_type %Self.746 [symbolic] -// CHECK:STDOUT: %pattern_type.29b: type = pattern_type %Self.as_type.5d0 [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.5d0 [symbolic] +// CHECK:STDOUT: %Self.aff: %Y.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Y.WithSelf.K.type.977: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Self.aff) [symbolic] +// CHECK:STDOUT: %Y.WithSelf.K.d2d: %Y.WithSelf.K.type.977 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type.59a: type = facet_access_type %Self.aff [symbolic] +// CHECK:STDOUT: %pattern_type.615: type = pattern_type %Self.as_type.59a [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.59a [symbolic] // CHECK:STDOUT: %Y.impl_witness: = impl_witness @AnyParam.as.Y.impl.%Y.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.2f8: type = pattern_type %AnyParam.1d7 [concrete] +// CHECK:STDOUT: %pattern_type.f0f: type = pattern_type %AnyParam.591 [concrete] // 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: %Y.facet: %Y.type = facet_value %AnyParam.1d7, (%Y.impl_witness) [concrete] -// CHECK:STDOUT: %Y.WithSelf.K.type.576: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Y.facet) [concrete] -// CHECK:STDOUT: %Y.WithSelf.K.70f: %Y.WithSelf.K.type.576 = struct_value () [concrete] +// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.591, (%Y.impl_witness) [concrete] +// CHECK:STDOUT: %Y.WithSelf.K.type.cd7: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Y.facet) [concrete] +// CHECK:STDOUT: %Y.WithSelf.K.8fc: %Y.WithSelf.K.type.cd7 = struct_value () [concrete] // CHECK:STDOUT: %L.type: type = fn_type @L [concrete] // CHECK:STDOUT: %L: %L.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %AnyParam.val: %AnyParam.1d7 = struct_value () [concrete] +// CHECK:STDOUT: %AnyParam.val: %AnyParam.591 = struct_value () [concrete] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] -// CHECK:STDOUT: %assoc0.78d: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.84c [concrete] -// CHECK:STDOUT: %.bbd: type = fn_type_with_self_type %Y.WithSelf.K.type.576, %Y.facet [concrete] +// CHECK:STDOUT: %assoc0.970: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ee7 [concrete] +// CHECK:STDOUT: %.3eb: type = fn_type_with_self_type %Y.WithSelf.K.type.cd7, %Y.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc13_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1699,15 +1699,15 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %PackageHasParam.AnyParam: %AnyParam.type = import_ref PackageHasParam//default, AnyParam, loaded [concrete = constants.%AnyParam.generic] // CHECK:STDOUT: %PackageHasParam.import_ref.8f2: = import_ref PackageHasParam//default, loc4_34, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageHasParam.import_ref.20c = import_ref PackageHasParam//default, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %PackageHasParam.import_ref.527 = import_ref PackageHasParam//default, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %PackageHasParam.import_ref.b3b: type = import_ref PackageHasParam//default, loc4_17, loaded [symbolic = @AnyParam.%T (constants.%T)] // CHECK:STDOUT: %PackageHasParam.import_ref.b42: @AnyParam.%T (%T) = import_ref PackageHasParam//default, loc4_27, loaded [symbolic = @AnyParam.%X (constants.%X)] // CHECK:STDOUT: %PackageHasParam.Y: type = import_ref PackageHasParam//default, Y, loaded [concrete = constants.%Y.type] -// CHECK:STDOUT: %PackageHasParam.import_ref.07e: %Y.assoc_type = import_ref PackageHasParam//default, loc7_29, loaded [concrete = constants.%assoc0.78d] -// CHECK:STDOUT: %PackageHasParam.K: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type.1a2) = import_ref PackageHasParam//default, K, loaded [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K.c42)] -// CHECK:STDOUT: %PackageHasParam.import_ref.3d0ead.2: %Y.type = import_ref PackageHasParam//default, loc6_13, loaded [symbolic = constants.%Self.746] -// CHECK:STDOUT: %PackageHasParam.import_ref.cf8 = import_ref PackageHasParam//default, loc6_13, unloaded -// CHECK:STDOUT: %PackageHasParam.import_ref.84c: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type.1a2) = import_ref PackageHasParam//default, loc7_29, loaded [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K.c42)] +// CHECK:STDOUT: %PackageHasParam.import_ref.03c: %Y.assoc_type = import_ref PackageHasParam//default, loc7_29, loaded [concrete = constants.%assoc0.970] +// CHECK:STDOUT: %PackageHasParam.K: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type.977) = import_ref PackageHasParam//default, K, loaded [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K.d2d)] +// CHECK:STDOUT: %PackageHasParam.import_ref.fa191b.2: %Y.type = import_ref PackageHasParam//default, loc6_13, loaded [symbolic = constants.%Self.aff] +// CHECK:STDOUT: %PackageHasParam.import_ref.2ff = import_ref PackageHasParam//default, loc6_13, unloaded +// CHECK:STDOUT: %PackageHasParam.import_ref.ee7: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type.977) = import_ref PackageHasParam//default, loc7_29, loaded [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K.d2d)] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1720,7 +1720,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %PackageHasParam.import = import PackageHasParam -// CHECK:STDOUT: %GenericInterface.decl: %GenericInterface.type.974 = interface_decl @GenericInterface [concrete = constants.%GenericInterface.generic] { +// CHECK:STDOUT: %GenericInterface.decl: %GenericInterface.type.cd1 = interface_decl @GenericInterface [concrete = constants.%GenericInterface.generic] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6_32.1: type = splice_block %.loc6_32.2 [concrete = type] { @@ -1732,8 +1732,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: impl_decl @AnyParam.as.Y.impl [concrete] {} { // CHECK:STDOUT: %PackageHasParam.ref.loc8_6: = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam] // CHECK:STDOUT: %AnyParam.ref: %AnyParam.type = name_ref AnyParam, imports.%PackageHasParam.AnyParam [concrete = constants.%AnyParam.generic] -// CHECK:STDOUT: %GenericInterface.ref: %GenericInterface.type.974 = name_ref GenericInterface, file.%GenericInterface.decl [concrete = constants.%GenericInterface.generic] -// CHECK:STDOUT: %AnyParam: type = class_type @AnyParam, @AnyParam(constants.%GenericInterface.type.974, constants.%GenericInterface.generic) [concrete = constants.%AnyParam.1d7] +// CHECK:STDOUT: %GenericInterface.ref: %GenericInterface.type.cd1 = name_ref GenericInterface, file.%GenericInterface.decl [concrete = constants.%GenericInterface.generic] +// CHECK:STDOUT: %AnyParam: type = class_type @AnyParam, @AnyParam(constants.%GenericInterface.type.cd1, constants.%GenericInterface.generic) [concrete = constants.%AnyParam.591] // CHECK:STDOUT: %PackageHasParam.ref.loc8_52: = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam] // CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%PackageHasParam.Y [concrete = constants.%Y.type] // CHECK:STDOUT: } @@ -1744,11 +1744,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %U.loc6_29.1: type = symbolic_binding U, 0 [symbolic = %U.loc6_29.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericInterface.type: type = facet_type <@GenericInterface, @GenericInterface(%U.loc6_29.1)> [symbolic = %GenericInterface.type (constants.%GenericInterface.type.1d5)] -// CHECK:STDOUT: %Self.loc6_38.2: @GenericInterface.%GenericInterface.type (%GenericInterface.type.1d5) = symbolic_binding Self, 1 [symbolic = %Self.loc6_38.2 (constants.%Self.425)] +// CHECK:STDOUT: %GenericInterface.type: type = facet_type <@GenericInterface, @GenericInterface(%U.loc6_29.1)> [symbolic = %GenericInterface.type (constants.%GenericInterface.type.48f)] +// CHECK:STDOUT: %Self.loc6_38.2: @GenericInterface.%GenericInterface.type (%GenericInterface.type.48f) = symbolic_binding Self, 1 [symbolic = %Self.loc6_38.2 (constants.%Self.19b)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc6_38.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.1d5) = symbolic_binding Self, 1 [symbolic = %Self.loc6_38.2 (constants.%Self.425)] +// CHECK:STDOUT: %Self.loc6_38.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.48f) = symbolic_binding Self, 1 [symbolic = %Self.loc6_38.2 (constants.%Self.19b)] // CHECK:STDOUT: %GenericInterface.WithSelf.decl = interface_with_self_decl @GenericInterface [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1761,8 +1761,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Y [from "has_param.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageHasParam.import_ref.cf8 -// CHECK:STDOUT: .K = imports.%PackageHasParam.import_ref.07e +// CHECK:STDOUT: .Self = imports.%PackageHasParam.import_ref.2ff +// CHECK:STDOUT: .K = imports.%PackageHasParam.import_ref.03c // CHECK:STDOUT: witness = (imports.%PackageHasParam.K) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -1770,12 +1770,12 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: impl @AnyParam.as.Y.impl: %AnyParam as %Y.ref { // CHECK:STDOUT: %AnyParam.as.Y.impl.K.decl: %AnyParam.as.Y.impl.K.type = fn_decl @AnyParam.as.Y.impl.K [concrete = constants.%AnyParam.as.Y.impl.K] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.2f8 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.2f8 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.f0f = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.f0f = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: %AnyParam.1d7 = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @AnyParam.as.Y.impl.%AnyParam [concrete = constants.%AnyParam.1d7] -// CHECK:STDOUT: %self: %AnyParam.1d7 = value_binding self, %self.param +// CHECK:STDOUT: %self.param: %AnyParam.591 = value_param call_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @AnyParam.as.Y.impl.%AnyParam [concrete = constants.%AnyParam.591] +// CHECK:STDOUT: %self: %AnyParam.591 = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %Y.impl_witness_table = impl_witness_table (%AnyParam.as.Y.impl.K.decl), @AnyParam.as.Y.impl [concrete] // CHECK:STDOUT: %Y.impl_witness: = impl_witness %Y.impl_witness_table [concrete = constants.%Y.impl_witness] @@ -1797,14 +1797,14 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: complete_type_witness = imports.%PackageHasParam.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageHasParam.import_ref.20c +// CHECK:STDOUT: .Self = imports.%PackageHasParam.import_ref.527 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Y.WithSelf.K(imports.%PackageHasParam.import_ref.3d0ead.2: %Y.type) [from "has_param.carbon"] { -// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.746)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.5d0)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.29b)] +// CHECK:STDOUT: generic fn @Y.WithSelf.K(imports.%PackageHasParam.import_ref.fa191b.2: %Y.type) [from "has_param.carbon"] { +// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.aff)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.59a)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.615)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete)] @@ -1812,7 +1812,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @AnyParam.as.Y.impl.K(%self.param: %AnyParam.1d7) { +// CHECK:STDOUT: fn @AnyParam.as.Y.impl.K(%self.param: %AnyParam.591) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1820,37 +1820,37 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: fn @L() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %obj.patt: %pattern_type.2f8 = ref_binding_pattern obj [concrete] -// CHECK:STDOUT: %obj.var_patt: %pattern_type.2f8 = var_pattern %obj.patt [concrete] +// CHECK:STDOUT: %obj.patt: %pattern_type.f0f = ref_binding_pattern obj [concrete] +// CHECK:STDOUT: %obj.var_patt: %pattern_type.f0f = var_pattern %obj.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %obj.var: ref %AnyParam.1d7 = var %obj.var_patt +// CHECK:STDOUT: %obj.var: ref %AnyParam.591 = var %obj.var_patt // CHECK:STDOUT: %.loc13_58.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc13_58.2: init %AnyParam.1d7 to %obj.var = class_init () [concrete = constants.%AnyParam.val] -// CHECK:STDOUT: %.loc13_3: init %AnyParam.1d7 = converted %.loc13_58.1, %.loc13_58.2 [concrete = constants.%AnyParam.val] +// CHECK:STDOUT: %.loc13_58.2: init %AnyParam.591 to %obj.var = class_init () [concrete = constants.%AnyParam.val] +// CHECK:STDOUT: %.loc13_3: init %AnyParam.591 = converted %.loc13_58.1, %.loc13_58.2 [concrete = constants.%AnyParam.val] // CHECK:STDOUT: assign %obj.var, %.loc13_3 -// CHECK:STDOUT: %.loc13_53: type = splice_block %AnyParam [concrete = constants.%AnyParam.1d7] { +// CHECK:STDOUT: %.loc13_53: type = splice_block %AnyParam [concrete = constants.%AnyParam.591] { // CHECK:STDOUT: %PackageHasParam.ref.loc13: = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam] // CHECK:STDOUT: %AnyParam.ref: %AnyParam.type = name_ref AnyParam, imports.%PackageHasParam.AnyParam [concrete = constants.%AnyParam.generic] -// CHECK:STDOUT: %GenericInterface.ref: %GenericInterface.type.974 = name_ref GenericInterface, file.%GenericInterface.decl [concrete = constants.%GenericInterface.generic] -// CHECK:STDOUT: %AnyParam: type = class_type @AnyParam, @AnyParam(constants.%GenericInterface.type.974, constants.%GenericInterface.generic) [concrete = constants.%AnyParam.1d7] +// CHECK:STDOUT: %GenericInterface.ref: %GenericInterface.type.cd1 = name_ref GenericInterface, file.%GenericInterface.decl [concrete = constants.%GenericInterface.generic] +// CHECK:STDOUT: %AnyParam: type = class_type @AnyParam, @AnyParam(constants.%GenericInterface.type.cd1, constants.%GenericInterface.generic) [concrete = constants.%AnyParam.591] // CHECK:STDOUT: } -// CHECK:STDOUT: %obj: ref %AnyParam.1d7 = ref_binding obj, %obj.var -// CHECK:STDOUT: %obj.ref: ref %AnyParam.1d7 = name_ref obj, %obj +// CHECK:STDOUT: %obj: ref %AnyParam.591 = ref_binding obj, %obj.var +// CHECK:STDOUT: %obj.ref: ref %AnyParam.591 = name_ref obj, %obj // CHECK:STDOUT: %PackageHasParam.ref.loc14: = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam] // CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%PackageHasParam.Y [concrete = constants.%Y.type] -// CHECK:STDOUT: %K.ref: %Y.assoc_type = name_ref K, imports.%PackageHasParam.import_ref.07e [concrete = constants.%assoc0.78d] -// CHECK:STDOUT: %impl.elem0: %.bbd = impl_witness_access constants.%Y.impl_witness, element0 [concrete = constants.%AnyParam.as.Y.impl.K] +// CHECK:STDOUT: %K.ref: %Y.assoc_type = name_ref K, imports.%PackageHasParam.import_ref.03c [concrete = constants.%assoc0.970] +// CHECK:STDOUT: %impl.elem0: %.3eb = impl_witness_access constants.%Y.impl_witness, element0 [concrete = constants.%AnyParam.as.Y.impl.K] // CHECK:STDOUT: %bound_method: = bound_method %obj.ref, %impl.elem0 -// CHECK:STDOUT: %.loc14: %AnyParam.1d7 = acquire_value %obj.ref +// 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.2dd605.2 +// 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: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.1d7) { +// CHECK:STDOUT: fn @Destroy.Op.loc13_3.2(%self.param: ref %AnyParam.591) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1859,7 +1859,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %U.loc6_29.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericInterface.WithSelf(constants.%U, constants.%Self.425) {} +// CHECK:STDOUT: specific @GenericInterface.WithSelf(constants.%U, constants.%Self.19b) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @AnyParam(constants.%T, constants.%X) { // CHECK:STDOUT: %T => constants.%T @@ -1867,38 +1867,38 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AnyParam(constants.%GenericInterface.type.974, constants.%GenericInterface.generic) { -// CHECK:STDOUT: %T => constants.%GenericInterface.type.974 +// CHECK:STDOUT: specific @AnyParam(constants.%GenericInterface.type.cd1, constants.%GenericInterface.generic) { +// CHECK:STDOUT: %T => constants.%GenericInterface.type.cd1 // CHECK:STDOUT: %X => constants.%GenericInterface.generic -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.831 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ed9 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.746) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.aff) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.746 -// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.1a2 -// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.c42 +// CHECK:STDOUT: %Self => constants.%Self.aff +// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.977 +// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.d2d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Self.746) { -// CHECK:STDOUT: %Self => constants.%Self.746 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.5d0 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.29b +// CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Self.aff) { +// CHECK:STDOUT: %Self => constants.%Self.aff +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.59a +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.615 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Y.facet -// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.576 -// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.70f +// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.cd7 +// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.8fc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Y.facet) { // CHECK:STDOUT: %Self => constants.%Y.facet -// CHECK:STDOUT: %Self.as_type => constants.%AnyParam.1d7 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2f8 +// CHECK:STDOUT: %Self.as_type => constants.%AnyParam.591 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f0f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_generic_interface_as_param.carbon @@ -1914,35 +1914,35 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %X: %T = symbolic_binding X, 1 [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %GenericInterface.type.974: type = generic_interface_type @GenericInterface [concrete] -// CHECK:STDOUT: %GenericInterface.generic: %GenericInterface.type.974 = struct_value () [concrete] +// CHECK:STDOUT: %GenericInterface.type.cd1: type = generic_interface_type @GenericInterface [concrete] +// CHECK:STDOUT: %GenericInterface.generic: %GenericInterface.type.cd1 = struct_value () [concrete] // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %GenericInterface.type.1d5: type = facet_type <@GenericInterface, @GenericInterface(%U)> [symbolic] -// CHECK:STDOUT: %Self.4c1: %GenericInterface.type.1d5 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %pattern_type.831: type = pattern_type %GenericInterface.type.974 [concrete] -// CHECK:STDOUT: %AnyParam.1d7: type = class_type @AnyParam, @AnyParam(%GenericInterface.type.974, %GenericInterface.generic) [concrete] -// CHECK:STDOUT: %pattern_type.2f8: type = pattern_type %AnyParam.1d7 [concrete] +// CHECK:STDOUT: %GenericInterface.type.48f: type = facet_type <@GenericInterface, @GenericInterface(%U)> [symbolic] +// CHECK:STDOUT: %Self.d44: %GenericInterface.type.48f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %pattern_type.ed9: type = pattern_type %GenericInterface.type.cd1 [concrete] +// CHECK:STDOUT: %AnyParam.591: type = class_type @AnyParam, @AnyParam(%GenericInterface.type.cd1, %GenericInterface.generic) [concrete] +// CHECK:STDOUT: %pattern_type.f0f: type = pattern_type %AnyParam.591 [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %AnyParam.val: %AnyParam.1d7 = struct_value () [concrete] +// CHECK:STDOUT: %AnyParam.val: %AnyParam.591 = struct_value () [concrete] // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] -// CHECK:STDOUT: %Self.746: %Y.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Y.WithSelf.K.type.1a2: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Self.746) [symbolic] -// CHECK:STDOUT: %Y.WithSelf.K.c42: %Y.WithSelf.K.type.1a2 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type.5d0: type = facet_access_type %Self.746 [symbolic] -// CHECK:STDOUT: %pattern_type.29b: type = pattern_type %Self.as_type.5d0 [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.5d0 [symbolic] +// CHECK:STDOUT: %Self.aff: %Y.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Y.WithSelf.K.type.977: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Self.aff) [symbolic] +// CHECK:STDOUT: %Y.WithSelf.K.d2d: %Y.WithSelf.K.type.977 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type.59a: type = facet_access_type %Self.aff [symbolic] +// CHECK:STDOUT: %pattern_type.615: type = pattern_type %Self.as_type.59a [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.59a [symbolic] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] -// CHECK:STDOUT: %assoc0.78d: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.84c [concrete] +// CHECK:STDOUT: %assoc0.970: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ee7 [concrete] // CHECK:STDOUT: %Y.impl_witness: = impl_witness imports.%Y.impl_witness_table [concrete] -// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.1d7, (%Y.impl_witness) [concrete] -// CHECK:STDOUT: %Y.WithSelf.K.type.d6d: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Y.facet) [concrete] -// CHECK:STDOUT: %Y.WithSelf.K.14e: %Y.WithSelf.K.type.d6d = struct_value () [concrete] -// CHECK:STDOUT: %.918: type = fn_type_with_self_type %Y.WithSelf.K.type.d6d, %Y.facet [concrete] +// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.591, (%Y.impl_witness) [concrete] +// CHECK:STDOUT: %Y.WithSelf.K.type.44d: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Y.facet) [concrete] +// CHECK:STDOUT: %Y.WithSelf.K.077: %Y.WithSelf.K.type.44d = struct_value () [concrete] +// CHECK:STDOUT: %.8a0: type = fn_type_with_self_type %Y.WithSelf.K.type.44d, %Y.facet [concrete] // 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.790b3b.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1962,23 +1962,23 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %PackageHasParam.AnyParam: %AnyParam.type = import_ref PackageHasParam//default, AnyParam, loaded [concrete = constants.%AnyParam.generic] // CHECK:STDOUT: %PackageHasParam.import_ref.8f2: = import_ref PackageHasParam//default, loc4_34, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageHasParam.import_ref.20c = import_ref PackageHasParam//default, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %PackageHasParam.import_ref.527 = import_ref PackageHasParam//default, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %PackageHasParam.import_ref.b3b: type = import_ref PackageHasParam//default, loc4_17, loaded [symbolic = @AnyParam.%T (constants.%T)] // CHECK:STDOUT: %PackageHasParam.import_ref.b42: @AnyParam.%T (%T) = import_ref PackageHasParam//default, loc4_27, loaded [symbolic = @AnyParam.%X (constants.%X)] -// CHECK:STDOUT: %PackageGenericInterface.GenericInterface: %GenericInterface.type.974 = import_ref PackageGenericInterface//default, GenericInterface, loaded [concrete = constants.%GenericInterface.generic] -// CHECK:STDOUT: %PackageGenericInterface.import_ref.822 = import_ref PackageGenericInterface//default, loc6_38, unloaded +// CHECK:STDOUT: %PackageGenericInterface.GenericInterface: %GenericInterface.type.cd1 = import_ref PackageGenericInterface//default, GenericInterface, loaded [concrete = constants.%GenericInterface.generic] +// CHECK:STDOUT: %PackageGenericInterface.import_ref.b00 = import_ref PackageGenericInterface//default, loc6_38, unloaded // CHECK:STDOUT: %PackageGenericInterface.import_ref.b3bc94.2: type = import_ref PackageGenericInterface//default, loc6_29, loaded [symbolic = @GenericInterface.%U (constants.%U)] // CHECK:STDOUT: %PackageHasParam.Y: type = import_ref PackageHasParam//default, Y, loaded [concrete = constants.%Y.type] -// CHECK:STDOUT: %PackageHasParam.import_ref.07e: %Y.assoc_type = import_ref PackageHasParam//default, loc7_29, loaded [concrete = constants.%assoc0.78d] +// CHECK:STDOUT: %PackageHasParam.import_ref.03c: %Y.assoc_type = import_ref PackageHasParam//default, loc7_29, loaded [concrete = constants.%assoc0.970] // CHECK:STDOUT: %PackageHasParam.K = import_ref PackageHasParam//default, K, unloaded -// CHECK:STDOUT: %PackageHasParam.import_ref.3d0ead.2: %Y.type = import_ref PackageHasParam//default, loc6_13, loaded [symbolic = constants.%Self.746] -// CHECK:STDOUT: %PackageHasParam.import_ref.cf8 = import_ref PackageHasParam//default, loc6_13, unloaded -// CHECK:STDOUT: %PackageHasParam.import_ref.84c: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type.1a2) = import_ref PackageHasParam//default, loc7_29, loaded [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K.c42)] -// CHECK:STDOUT: %PackageGenericInterface.import_ref.545: = import_ref PackageGenericInterface//default, loc8_70, loaded [concrete = constants.%Y.impl_witness] -// CHECK:STDOUT: %PackageGenericInterface.import_ref.74b: type = import_ref PackageGenericInterface//default, loc8_47, loaded [concrete = constants.%AnyParam.1d7] -// CHECK:STDOUT: %PackageGenericInterface.import_ref.38d: type = import_ref PackageGenericInterface//default, loc8_67, loaded [concrete = constants.%Y.type] -// CHECK:STDOUT: %PackageGenericInterface.import_ref.325: %AnyParam.as.Y.impl.K.type = import_ref PackageGenericInterface//default, loc9_29, loaded [concrete = constants.%AnyParam.as.Y.impl.K] -// CHECK:STDOUT: %Y.impl_witness_table = impl_witness_table (%PackageGenericInterface.import_ref.325), @AnyParam.as.Y.impl [concrete] +// CHECK:STDOUT: %PackageHasParam.import_ref.fa191b.2: %Y.type = import_ref PackageHasParam//default, loc6_13, loaded [symbolic = constants.%Self.aff] +// CHECK:STDOUT: %PackageHasParam.import_ref.2ff = import_ref PackageHasParam//default, loc6_13, unloaded +// CHECK:STDOUT: %PackageHasParam.import_ref.ee7: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type.977) = import_ref PackageHasParam//default, loc7_29, loaded [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K.d2d)] +// CHECK:STDOUT: %PackageGenericInterface.import_ref.b38: = import_ref PackageGenericInterface//default, loc8_70, loaded [concrete = constants.%Y.impl_witness] +// CHECK:STDOUT: %PackageGenericInterface.import_ref.82e: type = import_ref PackageGenericInterface//default, loc8_47, loaded [concrete = constants.%AnyParam.591] +// CHECK:STDOUT: %PackageGenericInterface.import_ref.482: type = import_ref PackageGenericInterface//default, loc8_67, loaded [concrete = constants.%Y.type] +// CHECK:STDOUT: %PackageGenericInterface.import_ref.49f: %AnyParam.as.Y.impl.K.type = import_ref PackageGenericInterface//default, loc9_29, loaded [concrete = constants.%AnyParam.as.Y.impl.K] +// CHECK:STDOUT: %Y.impl_witness_table = impl_witness_table (%PackageGenericInterface.import_ref.49f), @AnyParam.as.Y.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1999,12 +1999,12 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic = %U (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericInterface.type: type = facet_type <@GenericInterface, @GenericInterface(%U)> [symbolic = %GenericInterface.type (constants.%GenericInterface.type.1d5)] -// CHECK:STDOUT: %Self: @GenericInterface.%GenericInterface.type (%GenericInterface.type.1d5) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.4c1)] +// CHECK:STDOUT: %GenericInterface.type: type = facet_type <@GenericInterface, @GenericInterface(%U)> [symbolic = %GenericInterface.type (constants.%GenericInterface.type.48f)] +// CHECK:STDOUT: %Self: @GenericInterface.%GenericInterface.type (%GenericInterface.type.48f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.d44)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageGenericInterface.import_ref.822 +// CHECK:STDOUT: .Self = imports.%PackageGenericInterface.import_ref.b00 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -2013,16 +2013,16 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Y [from "has_param.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageHasParam.import_ref.cf8 -// CHECK:STDOUT: .K = imports.%PackageHasParam.import_ref.07e +// CHECK:STDOUT: .Self = imports.%PackageHasParam.import_ref.2ff +// CHECK:STDOUT: .K = imports.%PackageHasParam.import_ref.03c // CHECK:STDOUT: witness = (imports.%PackageHasParam.K) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @AnyParam.as.Y.impl: imports.%PackageGenericInterface.import_ref.74b as imports.%PackageGenericInterface.import_ref.38d [from "has_generic_interface.carbon"] { +// CHECK:STDOUT: impl @AnyParam.as.Y.impl: imports.%PackageGenericInterface.import_ref.82e as imports.%PackageGenericInterface.import_ref.482 [from "has_generic_interface.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%PackageGenericInterface.import_ref.545 +// CHECK:STDOUT: witness = imports.%PackageGenericInterface.import_ref.b38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @AnyParam(imports.%PackageHasParam.import_ref.b3b: type, imports.%PackageHasParam.import_ref.b42: @AnyParam.%T (%T)) [from "has_param.carbon"] { @@ -2036,46 +2036,46 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: complete_type_witness = imports.%PackageHasParam.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageHasParam.import_ref.20c +// CHECK:STDOUT: .Self = imports.%PackageHasParam.import_ref.527 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @M() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %obj.patt: %pattern_type.2f8 = ref_binding_pattern obj [concrete] -// CHECK:STDOUT: %obj.var_patt: %pattern_type.2f8 = var_pattern %obj.patt [concrete] +// CHECK:STDOUT: %obj.patt: %pattern_type.f0f = ref_binding_pattern obj [concrete] +// CHECK:STDOUT: %obj.var_patt: %pattern_type.f0f = var_pattern %obj.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %obj.var: ref %AnyParam.1d7 = var %obj.var_patt +// CHECK:STDOUT: %obj.var: ref %AnyParam.591 = var %obj.var_patt // CHECK:STDOUT: %.loc9_50.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc9_50.2: init %AnyParam.1d7 to %obj.var = class_init () [concrete = constants.%AnyParam.val] -// CHECK:STDOUT: %.loc8: init %AnyParam.1d7 = converted %.loc9_50.1, %.loc9_50.2 [concrete = constants.%AnyParam.val] +// CHECK:STDOUT: %.loc9_50.2: init %AnyParam.591 to %obj.var = class_init () [concrete = constants.%AnyParam.val] +// CHECK:STDOUT: %.loc8: init %AnyParam.591 = converted %.loc9_50.1, %.loc9_50.2 [concrete = constants.%AnyParam.val] // CHECK:STDOUT: assign %obj.var, %.loc8 -// CHECK:STDOUT: %.loc9_45: type = splice_block %AnyParam [concrete = constants.%AnyParam.1d7] { +// CHECK:STDOUT: %.loc9_45: type = splice_block %AnyParam [concrete = constants.%AnyParam.591] { // CHECK:STDOUT: %PackageHasParam.ref.loc8: = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam] // CHECK:STDOUT: %AnyParam.ref: %AnyParam.type = name_ref AnyParam, imports.%PackageHasParam.AnyParam [concrete = constants.%AnyParam.generic] // CHECK:STDOUT: %PackageGenericInterface.ref: = name_ref PackageGenericInterface, imports.%PackageGenericInterface [concrete = imports.%PackageGenericInterface] -// CHECK:STDOUT: %GenericInterface.ref: %GenericInterface.type.974 = name_ref GenericInterface, imports.%PackageGenericInterface.GenericInterface [concrete = constants.%GenericInterface.generic] -// CHECK:STDOUT: %AnyParam: type = class_type @AnyParam, @AnyParam(constants.%GenericInterface.type.974, constants.%GenericInterface.generic) [concrete = constants.%AnyParam.1d7] +// CHECK:STDOUT: %GenericInterface.ref: %GenericInterface.type.cd1 = name_ref GenericInterface, imports.%PackageGenericInterface.GenericInterface [concrete = constants.%GenericInterface.generic] +// CHECK:STDOUT: %AnyParam: type = class_type @AnyParam, @AnyParam(constants.%GenericInterface.type.cd1, constants.%GenericInterface.generic) [concrete = constants.%AnyParam.591] // CHECK:STDOUT: } -// CHECK:STDOUT: %obj: ref %AnyParam.1d7 = ref_binding obj, %obj.var -// CHECK:STDOUT: %obj.ref: ref %AnyParam.1d7 = name_ref obj, %obj +// CHECK:STDOUT: %obj: ref %AnyParam.591 = ref_binding obj, %obj.var +// CHECK:STDOUT: %obj.ref: ref %AnyParam.591 = name_ref obj, %obj // CHECK:STDOUT: %PackageHasParam.ref.loc10: = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam] // CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%PackageHasParam.Y [concrete = constants.%Y.type] -// CHECK:STDOUT: %K.ref: %Y.assoc_type = name_ref K, imports.%PackageHasParam.import_ref.07e [concrete = constants.%assoc0.78d] -// CHECK:STDOUT: %impl.elem0: %.918 = impl_witness_access constants.%Y.impl_witness, element0 [concrete = constants.%AnyParam.as.Y.impl.K] +// CHECK:STDOUT: %K.ref: %Y.assoc_type = name_ref K, imports.%PackageHasParam.import_ref.03c [concrete = constants.%assoc0.970] +// CHECK:STDOUT: %impl.elem0: %.8a0 = impl_witness_access constants.%Y.impl_witness, element0 [concrete = constants.%AnyParam.as.Y.impl.K] // CHECK:STDOUT: %bound_method: = bound_method %obj.ref, %impl.elem0 -// CHECK:STDOUT: %.loc10: %AnyParam.1d7 = acquire_value %obj.ref +// 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.2dd605.2 +// 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: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Y.WithSelf.K(imports.%PackageHasParam.import_ref.3d0ead.2: %Y.type) [from "has_param.carbon"] { -// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.746)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.5d0)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.29b)] +// CHECK:STDOUT: generic fn @Y.WithSelf.K(imports.%PackageHasParam.import_ref.fa191b.2: %Y.type) [from "has_param.carbon"] { +// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.aff)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.59a)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.615)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete)] @@ -2087,7 +2087,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.1d7) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %AnyParam.591) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2102,34 +2102,34 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %U => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericInterface.WithSelf(constants.%U, constants.%Self.4c1) {} +// CHECK:STDOUT: specific @GenericInterface.WithSelf(constants.%U, constants.%Self.d44) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @AnyParam(constants.%GenericInterface.type.974, constants.%GenericInterface.generic) { -// CHECK:STDOUT: %T => constants.%GenericInterface.type.974 +// CHECK:STDOUT: specific @AnyParam(constants.%GenericInterface.type.cd1, constants.%GenericInterface.generic) { +// CHECK:STDOUT: %T => constants.%GenericInterface.type.cd1 // CHECK:STDOUT: %X => constants.%GenericInterface.generic -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.831 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ed9 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.746) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.aff) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.746 -// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.1a2 -// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.c42 +// CHECK:STDOUT: %Self => constants.%Self.aff +// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.977 +// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.d2d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Self.746) { -// CHECK:STDOUT: %Self => constants.%Self.746 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.5d0 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.29b +// CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Self.aff) { +// CHECK:STDOUT: %Self => constants.%Self.aff +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.59a +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.615 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Y.facet -// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.d6d -// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.14e +// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.44d +// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.077 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- has_generic_class.carbon @@ -2150,32 +2150,32 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %X: %T = symbolic_binding X, 1 [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.874: type = pattern_type %GenericClass.type [concrete] -// CHECK:STDOUT: %AnyParam.eda: type = class_type @AnyParam, @AnyParam(%GenericClass.type, %GenericClass.generic) [concrete] +// CHECK:STDOUT: %pattern_type.399: type = pattern_type %GenericClass.type [concrete] +// CHECK:STDOUT: %AnyParam.21c: type = class_type @AnyParam, @AnyParam(%GenericClass.type, %GenericClass.generic) [concrete] // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] -// CHECK:STDOUT: %Self.746: %Y.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Y.WithSelf.K.type.1a2: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Self.746) [symbolic] -// CHECK:STDOUT: %Y.WithSelf.K.c42: %Y.WithSelf.K.type.1a2 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type.5d0: type = facet_access_type %Self.746 [symbolic] -// CHECK:STDOUT: %pattern_type.29b: type = pattern_type %Self.as_type.5d0 [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.5d0 [symbolic] +// CHECK:STDOUT: %Self.aff: %Y.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Y.WithSelf.K.type.977: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Self.aff) [symbolic] +// CHECK:STDOUT: %Y.WithSelf.K.d2d: %Y.WithSelf.K.type.977 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type.59a: type = facet_access_type %Self.aff [symbolic] +// CHECK:STDOUT: %pattern_type.615: type = pattern_type %Self.as_type.59a [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.59a [symbolic] // CHECK:STDOUT: %Y.impl_witness: = impl_witness @AnyParam.as.Y.impl.%Y.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.466: type = pattern_type %AnyParam.eda [concrete] +// CHECK:STDOUT: %pattern_type.005: type = pattern_type %AnyParam.21c [concrete] // 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: %Y.facet: %Y.type = facet_value %AnyParam.eda, (%Y.impl_witness) [concrete] -// CHECK:STDOUT: %Y.WithSelf.K.type.26c: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Y.facet) [concrete] -// CHECK:STDOUT: %Y.WithSelf.K.e3f: %Y.WithSelf.K.type.26c = struct_value () [concrete] +// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.21c, (%Y.impl_witness) [concrete] +// CHECK:STDOUT: %Y.WithSelf.K.type.020: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Y.facet) [concrete] +// CHECK:STDOUT: %Y.WithSelf.K.658: %Y.WithSelf.K.type.020 = struct_value () [concrete] // CHECK:STDOUT: %L.type: type = fn_type @L [concrete] // CHECK:STDOUT: %L: %L.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %AnyParam.val: %AnyParam.eda = struct_value () [concrete] +// CHECK:STDOUT: %AnyParam.val: %AnyParam.21c = struct_value () [concrete] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] -// CHECK:STDOUT: %assoc0.78d: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.84c [concrete] -// CHECK:STDOUT: %.97d: type = fn_type_with_self_type %Y.WithSelf.K.type.26c, %Y.facet [concrete] +// CHECK:STDOUT: %assoc0.970: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ee7 [concrete] +// CHECK:STDOUT: %.ca2: type = fn_type_with_self_type %Y.WithSelf.K.type.020, %Y.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc13_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2191,15 +2191,15 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %PackageHasParam.AnyParam: %AnyParam.type = import_ref PackageHasParam//default, AnyParam, loaded [concrete = constants.%AnyParam.generic] // CHECK:STDOUT: %PackageHasParam.import_ref.8f2: = import_ref PackageHasParam//default, loc4_34, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageHasParam.import_ref.20c = import_ref PackageHasParam//default, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %PackageHasParam.import_ref.527 = import_ref PackageHasParam//default, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %PackageHasParam.import_ref.b3b: type = import_ref PackageHasParam//default, loc4_17, loaded [symbolic = @AnyParam.%T (constants.%T)] // CHECK:STDOUT: %PackageHasParam.import_ref.b42: @AnyParam.%T (%T) = import_ref PackageHasParam//default, loc4_27, loaded [symbolic = @AnyParam.%X (constants.%X)] // CHECK:STDOUT: %PackageHasParam.Y: type = import_ref PackageHasParam//default, Y, loaded [concrete = constants.%Y.type] -// CHECK:STDOUT: %PackageHasParam.import_ref.07e: %Y.assoc_type = import_ref PackageHasParam//default, loc7_29, loaded [concrete = constants.%assoc0.78d] -// CHECK:STDOUT: %PackageHasParam.K: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type.1a2) = import_ref PackageHasParam//default, K, loaded [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K.c42)] -// CHECK:STDOUT: %PackageHasParam.import_ref.3d0ead.2: %Y.type = import_ref PackageHasParam//default, loc6_13, loaded [symbolic = constants.%Self.746] -// CHECK:STDOUT: %PackageHasParam.import_ref.cf8 = import_ref PackageHasParam//default, loc6_13, unloaded -// CHECK:STDOUT: %PackageHasParam.import_ref.84c: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type.1a2) = import_ref PackageHasParam//default, loc7_29, loaded [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K.c42)] +// CHECK:STDOUT: %PackageHasParam.import_ref.03c: %Y.assoc_type = import_ref PackageHasParam//default, loc7_29, loaded [concrete = constants.%assoc0.970] +// CHECK:STDOUT: %PackageHasParam.K: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type.977) = import_ref PackageHasParam//default, K, loaded [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K.d2d)] +// CHECK:STDOUT: %PackageHasParam.import_ref.fa191b.2: %Y.type = import_ref PackageHasParam//default, loc6_13, loaded [symbolic = constants.%Self.aff] +// CHECK:STDOUT: %PackageHasParam.import_ref.2ff = import_ref PackageHasParam//default, loc6_13, unloaded +// CHECK:STDOUT: %PackageHasParam.import_ref.ee7: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type.977) = import_ref PackageHasParam//default, loc7_29, loaded [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K.d2d)] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2225,7 +2225,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageHasParam.ref.loc8_6: = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam] // CHECK:STDOUT: %AnyParam.ref: %AnyParam.type = name_ref AnyParam, imports.%PackageHasParam.AnyParam [concrete = constants.%AnyParam.generic] // CHECK:STDOUT: %GenericClass.ref: %GenericClass.type = name_ref GenericClass, file.%GenericClass.decl [concrete = constants.%GenericClass.generic] -// CHECK:STDOUT: %AnyParam: type = class_type @AnyParam, @AnyParam(constants.%GenericClass.type, constants.%GenericClass.generic) [concrete = constants.%AnyParam.eda] +// CHECK:STDOUT: %AnyParam: type = class_type @AnyParam, @AnyParam(constants.%GenericClass.type, constants.%GenericClass.generic) [concrete = constants.%AnyParam.21c] // CHECK:STDOUT: %PackageHasParam.ref.loc8_48: = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam] // CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%PackageHasParam.Y [concrete = constants.%Y.type] // CHECK:STDOUT: } @@ -2234,8 +2234,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Y [from "has_param.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageHasParam.import_ref.cf8 -// CHECK:STDOUT: .K = imports.%PackageHasParam.import_ref.07e +// CHECK:STDOUT: .Self = imports.%PackageHasParam.import_ref.2ff +// CHECK:STDOUT: .K = imports.%PackageHasParam.import_ref.03c // CHECK:STDOUT: witness = (imports.%PackageHasParam.K) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -2243,12 +2243,12 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: impl @AnyParam.as.Y.impl: %AnyParam as %Y.ref { // CHECK:STDOUT: %AnyParam.as.Y.impl.K.decl: %AnyParam.as.Y.impl.K.type = fn_decl @AnyParam.as.Y.impl.K [concrete = constants.%AnyParam.as.Y.impl.K] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.466 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.466 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.005 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.005 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: %AnyParam.eda = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @AnyParam.as.Y.impl.%AnyParam [concrete = constants.%AnyParam.eda] -// CHECK:STDOUT: %self: %AnyParam.eda = value_binding self, %self.param +// CHECK:STDOUT: %self.param: %AnyParam.21c = value_param call_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @AnyParam.as.Y.impl.%AnyParam [concrete = constants.%AnyParam.21c] +// CHECK:STDOUT: %self: %AnyParam.21c = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %Y.impl_witness_table = impl_witness_table (%AnyParam.as.Y.impl.K.decl), @AnyParam.as.Y.impl [concrete] // CHECK:STDOUT: %Y.impl_witness: = impl_witness %Y.impl_witness_table [concrete = constants.%Y.impl_witness] @@ -2284,14 +2284,14 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: complete_type_witness = imports.%PackageHasParam.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageHasParam.import_ref.20c +// CHECK:STDOUT: .Self = imports.%PackageHasParam.import_ref.527 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Y.WithSelf.K(imports.%PackageHasParam.import_ref.3d0ead.2: %Y.type) [from "has_param.carbon"] { -// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.746)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.5d0)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.29b)] +// CHECK:STDOUT: generic fn @Y.WithSelf.K(imports.%PackageHasParam.import_ref.fa191b.2: %Y.type) [from "has_param.carbon"] { +// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.aff)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.59a)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.615)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete)] @@ -2299,7 +2299,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @AnyParam.as.Y.impl.K(%self.param: %AnyParam.eda) { +// CHECK:STDOUT: fn @AnyParam.as.Y.impl.K(%self.param: %AnyParam.21c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2307,37 +2307,37 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: fn @L() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %obj.patt: %pattern_type.466 = ref_binding_pattern obj [concrete] -// CHECK:STDOUT: %obj.var_patt: %pattern_type.466 = var_pattern %obj.patt [concrete] +// CHECK:STDOUT: %obj.patt: %pattern_type.005 = ref_binding_pattern obj [concrete] +// CHECK:STDOUT: %obj.var_patt: %pattern_type.005 = var_pattern %obj.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %obj.var: ref %AnyParam.eda = var %obj.var_patt +// CHECK:STDOUT: %obj.var: ref %AnyParam.21c = var %obj.var_patt // CHECK:STDOUT: %.loc13_54.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc13_54.2: init %AnyParam.eda to %obj.var = class_init () [concrete = constants.%AnyParam.val] -// CHECK:STDOUT: %.loc13_3: init %AnyParam.eda = converted %.loc13_54.1, %.loc13_54.2 [concrete = constants.%AnyParam.val] +// CHECK:STDOUT: %.loc13_54.2: init %AnyParam.21c to %obj.var = class_init () [concrete = constants.%AnyParam.val] +// CHECK:STDOUT: %.loc13_3: init %AnyParam.21c = converted %.loc13_54.1, %.loc13_54.2 [concrete = constants.%AnyParam.val] // CHECK:STDOUT: assign %obj.var, %.loc13_3 -// CHECK:STDOUT: %.loc13_49: type = splice_block %AnyParam [concrete = constants.%AnyParam.eda] { +// CHECK:STDOUT: %.loc13_49: type = splice_block %AnyParam [concrete = constants.%AnyParam.21c] { // CHECK:STDOUT: %PackageHasParam.ref.loc13: = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam] // CHECK:STDOUT: %AnyParam.ref: %AnyParam.type = name_ref AnyParam, imports.%PackageHasParam.AnyParam [concrete = constants.%AnyParam.generic] // CHECK:STDOUT: %GenericClass.ref: %GenericClass.type = name_ref GenericClass, file.%GenericClass.decl [concrete = constants.%GenericClass.generic] -// CHECK:STDOUT: %AnyParam: type = class_type @AnyParam, @AnyParam(constants.%GenericClass.type, constants.%GenericClass.generic) [concrete = constants.%AnyParam.eda] +// CHECK:STDOUT: %AnyParam: type = class_type @AnyParam, @AnyParam(constants.%GenericClass.type, constants.%GenericClass.generic) [concrete = constants.%AnyParam.21c] // CHECK:STDOUT: } -// CHECK:STDOUT: %obj: ref %AnyParam.eda = ref_binding obj, %obj.var -// CHECK:STDOUT: %obj.ref: ref %AnyParam.eda = name_ref obj, %obj +// CHECK:STDOUT: %obj: ref %AnyParam.21c = ref_binding obj, %obj.var +// CHECK:STDOUT: %obj.ref: ref %AnyParam.21c = name_ref obj, %obj // CHECK:STDOUT: %PackageHasParam.ref.loc14: = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam] // CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%PackageHasParam.Y [concrete = constants.%Y.type] -// CHECK:STDOUT: %K.ref: %Y.assoc_type = name_ref K, imports.%PackageHasParam.import_ref.07e [concrete = constants.%assoc0.78d] -// CHECK:STDOUT: %impl.elem0: %.97d = impl_witness_access constants.%Y.impl_witness, element0 [concrete = constants.%AnyParam.as.Y.impl.K] +// CHECK:STDOUT: %K.ref: %Y.assoc_type = name_ref K, imports.%PackageHasParam.import_ref.03c [concrete = constants.%assoc0.970] +// CHECK:STDOUT: %impl.elem0: %.ca2 = impl_witness_access constants.%Y.impl_witness, element0 [concrete = constants.%AnyParam.as.Y.impl.K] // CHECK:STDOUT: %bound_method: = bound_method %obj.ref, %impl.elem0 -// CHECK:STDOUT: %.loc14: %AnyParam.eda = acquire_value %obj.ref +// 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.2dd605.2 +// 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: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.eda) { +// CHECK:STDOUT: fn @Destroy.Op.loc13_3.2(%self.param: ref %AnyParam.21c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2355,35 +2355,35 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: specific @AnyParam(constants.%GenericClass.type, constants.%GenericClass.generic) { // CHECK:STDOUT: %T => constants.%GenericClass.type // CHECK:STDOUT: %X => constants.%GenericClass.generic -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.874 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.399 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.746) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.aff) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.746 -// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.1a2 -// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.c42 +// CHECK:STDOUT: %Self => constants.%Self.aff +// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.977 +// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.d2d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Self.746) { -// CHECK:STDOUT: %Self => constants.%Self.746 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.5d0 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.29b +// CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Self.aff) { +// CHECK:STDOUT: %Self => constants.%Self.aff +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.59a +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.615 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Y.facet -// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.26c -// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.e3f +// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.020 +// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.658 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Y.facet) { // CHECK:STDOUT: %Self => constants.%Y.facet -// CHECK:STDOUT: %Self.as_type => constants.%AnyParam.eda -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.466 +// CHECK:STDOUT: %Self.as_type => constants.%AnyParam.21c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.005 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_generic_class_as_param.carbon @@ -2402,30 +2402,30 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %GenericClass.type: type = generic_class_type @GenericClass [concrete] // CHECK:STDOUT: %GenericClass.generic: %GenericClass.type = struct_value () [concrete] // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %pattern_type.874: type = pattern_type %GenericClass.type [concrete] -// CHECK:STDOUT: %AnyParam.eda: type = class_type @AnyParam, @AnyParam(%GenericClass.type, %GenericClass.generic) [concrete] -// CHECK:STDOUT: %pattern_type.466: type = pattern_type %AnyParam.eda [concrete] +// CHECK:STDOUT: %pattern_type.399: type = pattern_type %GenericClass.type [concrete] +// CHECK:STDOUT: %AnyParam.21c: type = class_type @AnyParam, @AnyParam(%GenericClass.type, %GenericClass.generic) [concrete] +// CHECK:STDOUT: %pattern_type.005: type = pattern_type %AnyParam.21c [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %AnyParam.val: %AnyParam.eda = struct_value () [concrete] +// CHECK:STDOUT: %AnyParam.val: %AnyParam.21c = struct_value () [concrete] // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] -// CHECK:STDOUT: %Self.746: %Y.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Y.WithSelf.K.type.1a2: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Self.746) [symbolic] -// CHECK:STDOUT: %Y.WithSelf.K.c42: %Y.WithSelf.K.type.1a2 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type.5d0: type = facet_access_type %Self.746 [symbolic] -// CHECK:STDOUT: %pattern_type.29b: type = pattern_type %Self.as_type.5d0 [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.5d0 [symbolic] +// CHECK:STDOUT: %Self.aff: %Y.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Y.WithSelf.K.type.977: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Self.aff) [symbolic] +// CHECK:STDOUT: %Y.WithSelf.K.d2d: %Y.WithSelf.K.type.977 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type.59a: type = facet_access_type %Self.aff [symbolic] +// CHECK:STDOUT: %pattern_type.615: type = pattern_type %Self.as_type.59a [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.59a [symbolic] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] -// CHECK:STDOUT: %assoc0.78d: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.84c [concrete] +// CHECK:STDOUT: %assoc0.970: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ee7 [concrete] // CHECK:STDOUT: %Y.impl_witness: = impl_witness imports.%Y.impl_witness_table [concrete] -// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.eda, (%Y.impl_witness) [concrete] -// CHECK:STDOUT: %Y.WithSelf.K.type.124: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Y.facet) [concrete] -// CHECK:STDOUT: %Y.WithSelf.K.ccd: %Y.WithSelf.K.type.124 = struct_value () [concrete] -// CHECK:STDOUT: %.0e8: type = fn_type_with_self_type %Y.WithSelf.K.type.124, %Y.facet [concrete] +// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.21c, (%Y.impl_witness) [concrete] +// CHECK:STDOUT: %Y.WithSelf.K.type.7da: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Y.facet) [concrete] +// CHECK:STDOUT: %Y.WithSelf.K.c9c: %Y.WithSelf.K.type.7da = struct_value () [concrete] +// CHECK:STDOUT: %.f07: type = fn_type_with_self_type %Y.WithSelf.K.type.7da, %Y.facet [concrete] // 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.790b3b.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2445,24 +2445,24 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %PackageHasParam.AnyParam: %AnyParam.type = import_ref PackageHasParam//default, AnyParam, loaded [concrete = constants.%AnyParam.generic] // CHECK:STDOUT: %PackageHasParam.import_ref.8f2: = import_ref PackageHasParam//default, loc4_34, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageHasParam.import_ref.20c = import_ref PackageHasParam//default, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %PackageHasParam.import_ref.527 = import_ref PackageHasParam//default, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %PackageHasParam.import_ref.b3b: type = import_ref PackageHasParam//default, loc4_17, loaded [symbolic = @AnyParam.%T (constants.%T)] // CHECK:STDOUT: %PackageHasParam.import_ref.b42: @AnyParam.%T (%T) = import_ref PackageHasParam//default, loc4_27, loaded [symbolic = @AnyParam.%X (constants.%X)] // CHECK:STDOUT: %PackageGenericClass.GenericClass: %GenericClass.type = import_ref PackageGenericClass//default, GenericClass, loaded [concrete = constants.%GenericClass.generic] // CHECK:STDOUT: %PackageGenericClass.import_ref.8f2: = import_ref PackageGenericClass//default, loc6_31, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageGenericClass.import_ref.6b8 = import_ref PackageGenericClass//default, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %PackageGenericClass.import_ref.772 = import_ref PackageGenericClass//default, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %PackageGenericClass.import_ref.b3b: type = import_ref PackageGenericClass//default, loc6_21, loaded [symbolic = @GenericClass.%U (constants.%U)] // CHECK:STDOUT: %PackageHasParam.Y: type = import_ref PackageHasParam//default, Y, loaded [concrete = constants.%Y.type] -// CHECK:STDOUT: %PackageHasParam.import_ref.07e: %Y.assoc_type = import_ref PackageHasParam//default, loc7_29, loaded [concrete = constants.%assoc0.78d] +// CHECK:STDOUT: %PackageHasParam.import_ref.03c: %Y.assoc_type = import_ref PackageHasParam//default, loc7_29, loaded [concrete = constants.%assoc0.970] // CHECK:STDOUT: %PackageHasParam.K = import_ref PackageHasParam//default, K, unloaded -// CHECK:STDOUT: %PackageHasParam.import_ref.3d0ead.2: %Y.type = import_ref PackageHasParam//default, loc6_13, loaded [symbolic = constants.%Self.746] -// CHECK:STDOUT: %PackageHasParam.import_ref.cf8 = import_ref PackageHasParam//default, loc6_13, unloaded -// CHECK:STDOUT: %PackageHasParam.import_ref.84c: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type.1a2) = import_ref PackageHasParam//default, loc7_29, loaded [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K.c42)] -// CHECK:STDOUT: %PackageGenericClass.import_ref.744: = import_ref PackageGenericClass//default, loc8_66, loaded [concrete = constants.%Y.impl_witness] -// CHECK:STDOUT: %PackageGenericClass.import_ref.f50: type = import_ref PackageGenericClass//default, loc8_43, loaded [concrete = constants.%AnyParam.eda] -// CHECK:STDOUT: %PackageGenericClass.import_ref.38d: type = import_ref PackageGenericClass//default, loc8_63, loaded [concrete = constants.%Y.type] -// CHECK:STDOUT: %PackageGenericClass.import_ref.869: %AnyParam.as.Y.impl.K.type = import_ref PackageGenericClass//default, loc9_29, loaded [concrete = constants.%AnyParam.as.Y.impl.K] -// CHECK:STDOUT: %Y.impl_witness_table = impl_witness_table (%PackageGenericClass.import_ref.869), @AnyParam.as.Y.impl [concrete] +// CHECK:STDOUT: %PackageHasParam.import_ref.fa191b.2: %Y.type = import_ref PackageHasParam//default, loc6_13, loaded [symbolic = constants.%Self.aff] +// CHECK:STDOUT: %PackageHasParam.import_ref.2ff = import_ref PackageHasParam//default, loc6_13, unloaded +// CHECK:STDOUT: %PackageHasParam.import_ref.ee7: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type.977) = import_ref PackageHasParam//default, loc7_29, loaded [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K.d2d)] +// CHECK:STDOUT: %PackageGenericClass.import_ref.28c: = import_ref PackageGenericClass//default, loc8_66, loaded [concrete = constants.%Y.impl_witness] +// CHECK:STDOUT: %PackageGenericClass.import_ref.c77: type = import_ref PackageGenericClass//default, loc8_43, loaded [concrete = constants.%AnyParam.21c] +// CHECK:STDOUT: %PackageGenericClass.import_ref.482: type = import_ref PackageGenericClass//default, loc8_63, loaded [concrete = constants.%Y.type] +// CHECK:STDOUT: %PackageGenericClass.import_ref.64c: %AnyParam.as.Y.impl.K.type = import_ref PackageGenericClass//default, loc9_29, loaded [concrete = constants.%AnyParam.as.Y.impl.K] +// CHECK:STDOUT: %Y.impl_witness_table = impl_witness_table (%PackageGenericClass.import_ref.64c), @AnyParam.as.Y.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2481,16 +2481,16 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Y [from "has_param.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageHasParam.import_ref.cf8 -// CHECK:STDOUT: .K = imports.%PackageHasParam.import_ref.07e +// CHECK:STDOUT: .Self = imports.%PackageHasParam.import_ref.2ff +// CHECK:STDOUT: .K = imports.%PackageHasParam.import_ref.03c // CHECK:STDOUT: witness = (imports.%PackageHasParam.K) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @AnyParam.as.Y.impl: imports.%PackageGenericClass.import_ref.f50 as imports.%PackageGenericClass.import_ref.38d [from "has_generic_class.carbon"] { +// CHECK:STDOUT: impl @AnyParam.as.Y.impl: imports.%PackageGenericClass.import_ref.c77 as imports.%PackageGenericClass.import_ref.482 [from "has_generic_class.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%PackageGenericClass.import_ref.744 +// CHECK:STDOUT: witness = imports.%PackageGenericClass.import_ref.28c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @AnyParam(imports.%PackageHasParam.import_ref.b3b: type, imports.%PackageHasParam.import_ref.b42: @AnyParam.%T (%T)) [from "has_param.carbon"] { @@ -2504,7 +2504,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: complete_type_witness = imports.%PackageHasParam.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageHasParam.import_ref.20c +// CHECK:STDOUT: .Self = imports.%PackageHasParam.import_ref.527 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2517,46 +2517,46 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: complete_type_witness = imports.%PackageGenericClass.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%PackageGenericClass.import_ref.6b8 +// CHECK:STDOUT: .Self = imports.%PackageGenericClass.import_ref.772 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @M() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %obj.patt: %pattern_type.466 = ref_binding_pattern obj [concrete] -// CHECK:STDOUT: %obj.var_patt: %pattern_type.466 = var_pattern %obj.patt [concrete] +// CHECK:STDOUT: %obj.patt: %pattern_type.005 = ref_binding_pattern obj [concrete] +// CHECK:STDOUT: %obj.var_patt: %pattern_type.005 = var_pattern %obj.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %obj.var: ref %AnyParam.eda = var %obj.var_patt +// CHECK:STDOUT: %obj.var: ref %AnyParam.21c = var %obj.var_patt // CHECK:STDOUT: %.loc8_74.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc8_74.2: init %AnyParam.eda to %obj.var = class_init () [concrete = constants.%AnyParam.val] -// CHECK:STDOUT: %.loc8_3: init %AnyParam.eda = converted %.loc8_74.1, %.loc8_74.2 [concrete = constants.%AnyParam.val] +// CHECK:STDOUT: %.loc8_74.2: init %AnyParam.21c to %obj.var = class_init () [concrete = constants.%AnyParam.val] +// CHECK:STDOUT: %.loc8_3: init %AnyParam.21c = converted %.loc8_74.1, %.loc8_74.2 [concrete = constants.%AnyParam.val] // CHECK:STDOUT: assign %obj.var, %.loc8_3 -// CHECK:STDOUT: %.loc8_69: type = splice_block %AnyParam [concrete = constants.%AnyParam.eda] { +// CHECK:STDOUT: %.loc8_69: type = splice_block %AnyParam [concrete = constants.%AnyParam.21c] { // CHECK:STDOUT: %PackageHasParam.ref.loc8: = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam] // CHECK:STDOUT: %AnyParam.ref: %AnyParam.type = name_ref AnyParam, imports.%PackageHasParam.AnyParam [concrete = constants.%AnyParam.generic] // CHECK:STDOUT: %PackageGenericClass.ref: = name_ref PackageGenericClass, imports.%PackageGenericClass [concrete = imports.%PackageGenericClass] // CHECK:STDOUT: %GenericClass.ref: %GenericClass.type = name_ref GenericClass, imports.%PackageGenericClass.GenericClass [concrete = constants.%GenericClass.generic] -// CHECK:STDOUT: %AnyParam: type = class_type @AnyParam, @AnyParam(constants.%GenericClass.type, constants.%GenericClass.generic) [concrete = constants.%AnyParam.eda] +// CHECK:STDOUT: %AnyParam: type = class_type @AnyParam, @AnyParam(constants.%GenericClass.type, constants.%GenericClass.generic) [concrete = constants.%AnyParam.21c] // CHECK:STDOUT: } -// CHECK:STDOUT: %obj: ref %AnyParam.eda = ref_binding obj, %obj.var -// CHECK:STDOUT: %obj.ref: ref %AnyParam.eda = name_ref obj, %obj +// CHECK:STDOUT: %obj: ref %AnyParam.21c = ref_binding obj, %obj.var +// CHECK:STDOUT: %obj.ref: ref %AnyParam.21c = name_ref obj, %obj // CHECK:STDOUT: %PackageHasParam.ref.loc9: = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam] // CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%PackageHasParam.Y [concrete = constants.%Y.type] -// CHECK:STDOUT: %K.ref: %Y.assoc_type = name_ref K, imports.%PackageHasParam.import_ref.07e [concrete = constants.%assoc0.78d] -// CHECK:STDOUT: %impl.elem0: %.0e8 = impl_witness_access constants.%Y.impl_witness, element0 [concrete = constants.%AnyParam.as.Y.impl.K] +// CHECK:STDOUT: %K.ref: %Y.assoc_type = name_ref K, imports.%PackageHasParam.import_ref.03c [concrete = constants.%assoc0.970] +// CHECK:STDOUT: %impl.elem0: %.f07 = impl_witness_access constants.%Y.impl_witness, element0 [concrete = constants.%AnyParam.as.Y.impl.K] // CHECK:STDOUT: %bound_method: = bound_method %obj.ref, %impl.elem0 -// CHECK:STDOUT: %.loc9: %AnyParam.eda = acquire_value %obj.ref +// 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.2dd605.2 +// 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: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Y.WithSelf.K(imports.%PackageHasParam.import_ref.3d0ead.2: %Y.type) [from "has_param.carbon"] { -// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.746)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.5d0)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.29b)] +// CHECK:STDOUT: generic fn @Y.WithSelf.K(imports.%PackageHasParam.import_ref.fa191b.2: %Y.type) [from "has_param.carbon"] { +// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.aff)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.59a)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.615)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete)] @@ -2568,7 +2568,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.eda) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_3.2(%self.param: ref %AnyParam.21c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2586,78 +2586,78 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: specific @AnyParam(constants.%GenericClass.type, constants.%GenericClass.generic) { // CHECK:STDOUT: %T => constants.%GenericClass.type // CHECK:STDOUT: %X => constants.%GenericClass.generic -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.874 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.399 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.746) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.aff) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.746 -// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.1a2 -// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.c42 +// CHECK:STDOUT: %Self => constants.%Self.aff +// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.977 +// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.d2d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Self.746) { -// CHECK:STDOUT: %Self => constants.%Self.746 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.5d0 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.29b +// CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Self.aff) { +// CHECK:STDOUT: %Self => constants.%Self.aff +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.59a +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.615 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Y.facet -// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.124 -// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.ccd +// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.7da +// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.c9c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- has_extra_interfaces.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Extra1.type: type = facet_type <@Extra1> [concrete] -// CHECK:STDOUT: %Self.e83: %Extra1.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.f48: %Extra1.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Extra2.type: type = facet_type <@Extra2> [concrete] -// CHECK:STDOUT: %Self.a27: %Extra2.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.2c7: %Extra2.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Extra3.type: type = facet_type <@Extra3> [concrete] -// CHECK:STDOUT: %Self.d87: %Extra3.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.2b2: %Extra3.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Extra4.type: type = facet_type <@Extra4> [concrete] -// CHECK:STDOUT: %Self.7bc: %Extra4.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.e57: %Extra4.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Extra5.type: type = facet_type <@Extra5> [concrete] -// CHECK:STDOUT: %Self.647: %Extra5.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.e08: %Extra5.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Extra6.type: type = facet_type <@Extra6> [concrete] -// CHECK:STDOUT: %Self.658: %Extra6.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.a75: %Extra6.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Extra7.type: type = facet_type <@Extra7> [concrete] -// CHECK:STDOUT: %Self.c87: %Extra7.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.c9e: %Extra7.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Extra8.type: type = facet_type <@Extra8> [concrete] -// CHECK:STDOUT: %Self.5af: %Extra8.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.345: %Extra8.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.206: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %C.c10: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.418: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.418 [symbolic] -// CHECK:STDOUT: %pattern_type.2b8: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.8ee: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.418) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.9a6: %I.WithSelf.F.type.8ee = struct_value () [symbolic] +// CHECK:STDOUT: %Self.155: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.155 [symbolic] +// CHECK:STDOUT: %pattern_type.919: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.e1c: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.155) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.1a7: %I.WithSelf.F.type.e1c = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] // CHECK:STDOUT: %tuple.type.c53: type = tuple_type (type, type, type, type, type, type, type, type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.c53 = tuple_value (%Extra1.type, %Extra2.type, %Extra3.type, %Extra4.type, %Extra5.type, %Extra6.type, %Extra7.type, %Extra8.type) [concrete] -// CHECK:STDOUT: %tuple.type.4f5: type = tuple_type (%Extra1.type, %Extra2.type, %Extra3.type, %Extra4.type, %Extra5.type, %Extra6.type, %Extra7.type, %Extra8.type) [concrete] -// CHECK:STDOUT: %C.a17: type = class_type @C, @C(%tuple.type.4f5) [concrete] +// CHECK:STDOUT: %tuple.type.d47: type = tuple_type (%Extra1.type, %Extra2.type, %Extra3.type, %Extra4.type, %Extra5.type, %Extra6.type, %Extra7.type, %Extra8.type) [concrete] +// CHECK:STDOUT: %C.279: type = class_type @C, @C(%tuple.type.d47) [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.a06: type = pattern_type %C.a17 [concrete] +// CHECK:STDOUT: %pattern_type.881: type = pattern_type %C.279 [concrete] // 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: %I.facet: %I.type = facet_value %C.a17, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.d1d: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.659: %I.WithSelf.F.type.d1d = struct_value () [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.279, (%I.impl_witness) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.291: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.9e8: %I.WithSelf.F.type.291 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2711,14 +2711,14 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Extra7.ref: type = name_ref Extra7, file.%Extra7.decl [concrete = constants.%Extra7.type] // CHECK:STDOUT: %Extra8.ref: type = name_ref Extra8, file.%Extra8.decl [concrete = constants.%Extra8.type] // CHECK:STDOUT: %.loc16_71: %tuple.type.c53 = tuple_literal (%Extra1.ref, %Extra2.ref, %Extra3.ref, %Extra4.ref, %Extra5.ref, %Extra6.ref, %Extra7.ref, %Extra8.ref) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc16_72: type = converted %.loc16_71, constants.%tuple.type.4f5 [concrete = constants.%tuple.type.4f5] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%tuple.type.4f5) [concrete = constants.%C.a17] +// CHECK:STDOUT: %.loc16_72: type = converted %.loc16_71, constants.%tuple.type.d47 [concrete = constants.%tuple.type.d47] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%tuple.type.d47) [concrete = constants.%C.279] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra1 { -// CHECK:STDOUT: %Self: %Extra1.type = symbolic_binding Self, 0 [symbolic = constants.%Self.e83] +// CHECK:STDOUT: %Self: %Extra1.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f48] // CHECK:STDOUT: %Extra1.WithSelf.decl = interface_with_self_decl @Extra1 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -2729,7 +2729,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra2 { -// CHECK:STDOUT: %Self: %Extra2.type = symbolic_binding Self, 0 [symbolic = constants.%Self.a27] +// CHECK:STDOUT: %Self: %Extra2.type = symbolic_binding Self, 0 [symbolic = constants.%Self.2c7] // CHECK:STDOUT: %Extra2.WithSelf.decl = interface_with_self_decl @Extra2 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -2740,7 +2740,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra3 { -// CHECK:STDOUT: %Self: %Extra3.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d87] +// CHECK:STDOUT: %Self: %Extra3.type = symbolic_binding Self, 0 [symbolic = constants.%Self.2b2] // CHECK:STDOUT: %Extra3.WithSelf.decl = interface_with_self_decl @Extra3 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -2751,7 +2751,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra4 { -// CHECK:STDOUT: %Self: %Extra4.type = symbolic_binding Self, 0 [symbolic = constants.%Self.7bc] +// CHECK:STDOUT: %Self: %Extra4.type = symbolic_binding Self, 0 [symbolic = constants.%Self.e57] // CHECK:STDOUT: %Extra4.WithSelf.decl = interface_with_self_decl @Extra4 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -2762,7 +2762,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra5 { -// CHECK:STDOUT: %Self: %Extra5.type = symbolic_binding Self, 0 [symbolic = constants.%Self.647] +// CHECK:STDOUT: %Self: %Extra5.type = symbolic_binding Self, 0 [symbolic = constants.%Self.e08] // CHECK:STDOUT: %Extra5.WithSelf.decl = interface_with_self_decl @Extra5 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -2773,7 +2773,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra6 { -// CHECK:STDOUT: %Self: %Extra6.type = symbolic_binding Self, 0 [symbolic = constants.%Self.658] +// CHECK:STDOUT: %Self: %Extra6.type = symbolic_binding Self, 0 [symbolic = constants.%Self.a75] // CHECK:STDOUT: %Extra6.WithSelf.decl = interface_with_self_decl @Extra6 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -2784,7 +2784,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra7 { -// CHECK:STDOUT: %Self: %Extra7.type = symbolic_binding Self, 0 [symbolic = constants.%Self.c87] +// CHECK:STDOUT: %Self: %Extra7.type = symbolic_binding Self, 0 [symbolic = constants.%Self.c9e] // CHECK:STDOUT: %Extra7.WithSelf.decl = interface_with_self_decl @Extra7 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -2795,7 +2795,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra8 { -// CHECK:STDOUT: %Self: %Extra8.type = symbolic_binding Self, 0 [symbolic = constants.%Self.5af] +// CHECK:STDOUT: %Self: %Extra8.type = symbolic_binding Self, 0 [symbolic = constants.%Self.345] // CHECK:STDOUT: %Extra8.WithSelf.decl = interface_with_self_decl @Extra8 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -2806,17 +2806,17 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.418] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.155] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.8ee) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.9a6)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.2b8) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.2b8) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.e1c) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.1a7)] { +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.919) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.919) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc14_26.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc14_26.1: type = splice_block %.loc14_26.2 [symbolic = %Self.as_type.loc14_26.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.418)] +// CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.155)] // CHECK:STDOUT: %Self.as_type.loc14_26.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc14_26.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc14_26.2: type = converted %Self.ref, %Self.as_type.loc14_26.2 [symbolic = %Self.as_type.loc14_26.1 (constants.%Self.as_type)] // CHECK:STDOUT: } @@ -2834,12 +2834,12 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.I.impl: %C as %I.ref { // CHECK:STDOUT: %C.as.I.impl.F.decl: %C.as.I.impl.F.type = fn_decl @C.as.I.impl.F [concrete = constants.%C.as.I.impl.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.a06 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.a06 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.881 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.881 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: %C.a17 = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.I.impl.%C [concrete = constants.%C.a17] -// CHECK:STDOUT: %self: %C.a17 = value_binding self, %self.param +// CHECK:STDOUT: %self.param: %C.279 = value_param call_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.I.impl.%C [concrete = constants.%C.279] +// CHECK:STDOUT: %self: %C.279 = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%C.as.I.impl.F.decl), @C.as.I.impl [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness] @@ -2860,58 +2860,58 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.206 +// CHECK:STDOUT: .Self = constants.%C.c10 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.418)] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.155)] // CHECK:STDOUT: %Self.as_type.loc14_26.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc14_26.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc14_26.1 [symbolic = %pattern_type (constants.%pattern_type.2b8)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc14_26.1 [symbolic = %pattern_type (constants.%pattern_type.919)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc14_26.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @C.as.I.impl.F(%self.param: %C.a17) { +// CHECK:STDOUT: fn @C.as.I.impl.F(%self.param: %C.279) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Extra1.WithSelf(constants.%Self.e83) {} +// CHECK:STDOUT: specific @Extra1.WithSelf(constants.%Self.f48) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Extra2.WithSelf(constants.%Self.a27) {} +// CHECK:STDOUT: specific @Extra2.WithSelf(constants.%Self.2c7) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Extra3.WithSelf(constants.%Self.d87) {} +// CHECK:STDOUT: specific @Extra3.WithSelf(constants.%Self.2b2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Extra4.WithSelf(constants.%Self.7bc) {} +// CHECK:STDOUT: specific @Extra4.WithSelf(constants.%Self.e57) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Extra5.WithSelf(constants.%Self.647) {} +// CHECK:STDOUT: specific @Extra5.WithSelf(constants.%Self.e08) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Extra6.WithSelf(constants.%Self.658) {} +// CHECK:STDOUT: specific @Extra6.WithSelf(constants.%Self.a75) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Extra7.WithSelf(constants.%Self.c87) {} +// CHECK:STDOUT: specific @Extra7.WithSelf(constants.%Self.c9e) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Extra8.WithSelf(constants.%Self.5af) {} +// CHECK:STDOUT: specific @Extra8.WithSelf(constants.%Self.345) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { // CHECK:STDOUT: %T.loc13_10.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.418) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.155) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.418 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.8ee -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.9a6 +// CHECK:STDOUT: %Self => constants.%Self.155 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.e1c +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.1a7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.418) { -// CHECK:STDOUT: %Self => constants.%Self.418 +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.155) { +// CHECK:STDOUT: %Self => constants.%Self.155 // CHECK:STDOUT: %Self.as_type.loc14_26.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2b8 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.919 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%tuple.type.4f5) { -// CHECK:STDOUT: %T.loc13_10.1 => constants.%tuple.type.4f5 +// CHECK:STDOUT: specific @C(constants.%tuple.type.d47) { +// CHECK:STDOUT: %T.loc13_10.1 => constants.%tuple.type.d47 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -2919,14 +2919,14 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d1d -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.659 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.291 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.9e8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc14_26.1 => constants.%C.a17 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a06 +// CHECK:STDOUT: %Self.as_type.loc14_26.1 => constants.%C.279 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.881 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_use_has_extra_interfaces.carbon @@ -2937,36 +2937,36 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %C.29d: type = class_type @C, @C(type) [concrete] -// CHECK:STDOUT: %pattern_type.f28: type = pattern_type %C.29d [concrete] +// CHECK:STDOUT: %C.62c: type = class_type @C, @C(type) [concrete] +// CHECK:STDOUT: %pattern_type.1fc: type = pattern_type %C.62c [concrete] // CHECK:STDOUT: %Test.type: type = fn_type @Test [concrete] // CHECK:STDOUT: %Test: %Test.type = struct_value () [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.59b: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.59b) [symbolic] +// CHECK:STDOUT: %Self.b29: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.b29) [symbolic] // CHECK:STDOUT: %I.WithSelf.F: %I.WithSelf.F.type = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.59b [symbolic] -// CHECK:STDOUT: %pattern_type.2e0: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.b29 [symbolic] +// CHECK:STDOUT: %pattern_type.43d: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%HasExtraInterfaces.import_ref.deb [concrete] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%HasExtraInterfaces.import_ref.f85 [concrete] // CHECK:STDOUT: %Extra8.type: type = facet_type <@Extra8> [concrete] -// CHECK:STDOUT: %Self.3b0: %Extra8.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.5d6: %Extra8.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Extra7.type: type = facet_type <@Extra7> [concrete] -// CHECK:STDOUT: %Self.9eb: %Extra7.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.fdc: %Extra7.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Extra6.type: type = facet_type <@Extra6> [concrete] -// CHECK:STDOUT: %Self.28d: %Extra6.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.c9c: %Extra6.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Extra5.type: type = facet_type <@Extra5> [concrete] -// CHECK:STDOUT: %Self.841: %Extra5.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.03e: %Extra5.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Extra4.type: type = facet_type <@Extra4> [concrete] -// CHECK:STDOUT: %Self.b05: %Extra4.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.782: %Extra4.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Extra3.type: type = facet_type <@Extra3> [concrete] -// CHECK:STDOUT: %Self.591: %Extra3.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.328: %Extra3.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Extra2.type: type = facet_type <@Extra2> [concrete] -// CHECK:STDOUT: %Self.c52: %Extra2.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.a5a: %Extra2.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Extra1.type: type = facet_type <@Extra1> [concrete] -// CHECK:STDOUT: %Self.de5: %Extra1.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.e84: %Extra1.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %tuple.type: type = tuple_type (%Extra1.type, %Extra2.type, %Extra3.type, %Extra4.type, %Extra5.type, %Extra6.type, %Extra7.type, %Extra8.type) [concrete] -// CHECK:STDOUT: %C.a17: type = class_type @C, @C(%tuple.type) [concrete] +// CHECK:STDOUT: %C.279: type = class_type @C, @C(%tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2981,25 +2981,25 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %HasExtraInterfaces.C: %C.type = import_ref HasExtraInterfaces//default, C, loaded [concrete = constants.%C.generic] // CHECK:STDOUT: %HasExtraInterfaces.import_ref.8f2: = import_ref HasExtraInterfaces//default, loc13_20, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.755 = import_ref HasExtraInterfaces//default, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.0f9 = import_ref HasExtraInterfaces//default, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %HasExtraInterfaces.import_ref.b3b: type = import_ref HasExtraInterfaces//default, loc13_10, loaded [symbolic = @C.%T (constants.%T)] // CHECK:STDOUT: %HasExtraInterfaces.I: type = import_ref HasExtraInterfaces//default, I, loaded [concrete = constants.%I.type] -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.f08: %I.assoc_type = import_ref HasExtraInterfaces//default, loc14_33, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.8f6: %I.assoc_type = import_ref HasExtraInterfaces//default, loc14_33, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %HasExtraInterfaces.F = import_ref HasExtraInterfaces//default, F, unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.4f100f.2: %I.type = import_ref HasExtraInterfaces//default, loc14_13, loaded [symbolic = constants.%Self.59b] -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.2c3 = import_ref HasExtraInterfaces//default, loc14_13, unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.deb: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = import_ref HasExtraInterfaces//default, loc14_33, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.c87 = import_ref HasExtraInterfaces//default, loc16_79, unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.ee5 = import_ref HasExtraInterfaces//default, loc11_18, unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.d53 = import_ref HasExtraInterfaces//default, loc10_18, unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.409 = import_ref HasExtraInterfaces//default, loc9_18, unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.941 = import_ref HasExtraInterfaces//default, loc8_18, unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.3f1 = import_ref HasExtraInterfaces//default, loc7_18, unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.651 = import_ref HasExtraInterfaces//default, loc6_18, unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.188 = import_ref HasExtraInterfaces//default, loc5_18, unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.f77 = import_ref HasExtraInterfaces//default, loc4_18, unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.3ce: type = import_ref HasExtraInterfaces//default, loc16_72, loaded [concrete = constants.%C.a17] -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.25b: type = import_ref HasExtraInterfaces//default, loc16_77, loaded [concrete = constants.%I.type] +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.51a236.2: %I.type = import_ref HasExtraInterfaces//default, loc14_13, loaded [symbolic = constants.%Self.b29] +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.ca1 = import_ref HasExtraInterfaces//default, loc14_13, unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.f85: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = import_ref HasExtraInterfaces//default, loc14_33, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.16c = import_ref HasExtraInterfaces//default, loc16_79, unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.9a3 = import_ref HasExtraInterfaces//default, loc11_18, unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.c9e = import_ref HasExtraInterfaces//default, loc10_18, unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.8b3 = import_ref HasExtraInterfaces//default, loc9_18, unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.da0 = import_ref HasExtraInterfaces//default, loc8_18, unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.323 = import_ref HasExtraInterfaces//default, loc7_18, unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.d91 = import_ref HasExtraInterfaces//default, loc6_18, unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.b9a = import_ref HasExtraInterfaces//default, loc5_18, unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.cb9 = import_ref HasExtraInterfaces//default, loc4_18, unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.f05: type = import_ref HasExtraInterfaces//default, loc16_72, loaded [concrete = constants.%C.279] +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.d6f: type = import_ref HasExtraInterfaces//default, loc16_77, loaded [concrete = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -3011,24 +3011,24 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %HasExtraInterfaces.import = import HasExtraInterfaces // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.f28 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.f28 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.1fc = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.1fc = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %c.param: %C.29d = value_param call_param0 -// CHECK:STDOUT: %.loc5_37: type = splice_block %C [concrete = constants.%C.29d] { +// CHECK:STDOUT: %c.param: %C.62c = value_param call_param0 +// CHECK:STDOUT: %.loc5_37: type = splice_block %C [concrete = constants.%C.62c] { // CHECK:STDOUT: %HasExtraInterfaces.ref.loc5: = name_ref HasExtraInterfaces, imports.%HasExtraInterfaces [concrete = imports.%HasExtraInterfaces] // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%HasExtraInterfaces.C [concrete = constants.%C.generic] // CHECK:STDOUT: %.loc5_33: type = type_literal type [concrete = type] -// CHECK:STDOUT: %C: type = class_type @C, @C(type) [concrete = constants.%C.29d] +// CHECK:STDOUT: %C: type = class_type @C, @C(type) [concrete = constants.%C.62c] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %C.29d = value_binding c, %c.param +// CHECK:STDOUT: %c: %C.62c = value_binding c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.2c3 -// CHECK:STDOUT: .F = imports.%HasExtraInterfaces.import_ref.f08 +// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.ca1 +// CHECK:STDOUT: .F = imports.%HasExtraInterfaces.import_ref.8f6 // CHECK:STDOUT: witness = (imports.%HasExtraInterfaces.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -3036,7 +3036,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra8 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.ee5 +// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.9a3 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -3044,7 +3044,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra7 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.d53 +// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.c9e // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -3052,7 +3052,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra6 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.409 +// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.8b3 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -3060,7 +3060,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra5 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.941 +// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.da0 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -3068,7 +3068,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra4 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.3f1 +// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.323 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -3076,7 +3076,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra3 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.651 +// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.d91 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -3084,7 +3084,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra2 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.188 +// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.b9a // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -3092,15 +3092,15 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: interface @Extra1 [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.f77 +// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.cb9 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.I.impl: imports.%HasExtraInterfaces.import_ref.3ce as imports.%HasExtraInterfaces.import_ref.25b [from "has_extra_interfaces.carbon"] { +// CHECK:STDOUT: impl @C.as.I.impl: imports.%HasExtraInterfaces.import_ref.f05 as imports.%HasExtraInterfaces.import_ref.d6f [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%HasExtraInterfaces.import_ref.c87 +// CHECK:STDOUT: witness = imports.%HasExtraInterfaces.import_ref.16c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(imports.%HasExtraInterfaces.import_ref.b3b: type) [from "has_extra_interfaces.carbon"] { @@ -3112,23 +3112,23 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: complete_type_witness = imports.%HasExtraInterfaces.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.755 +// CHECK:STDOUT: .Self = imports.%HasExtraInterfaces.import_ref.0f9 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Test(%c.param: %C.29d) { +// CHECK:STDOUT: fn @Test(%c.param: %C.62c) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: %C.29d = name_ref c, %c +// CHECK:STDOUT: %c.ref: %C.62c = name_ref c, %c // CHECK:STDOUT: %HasExtraInterfaces.ref.loc12: = name_ref HasExtraInterfaces, imports.%HasExtraInterfaces [concrete = imports.%HasExtraInterfaces] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%HasExtraInterfaces.I [concrete = constants.%I.type] -// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, imports.%HasExtraInterfaces.import_ref.f08 [concrete = constants.%assoc0] +// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, imports.%HasExtraInterfaces.import_ref.8f6 [concrete = constants.%assoc0] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%HasExtraInterfaces.import_ref.4f100f.2: %I.type) [from "has_extra_interfaces.carbon"] { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.59b)] +// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%HasExtraInterfaces.import_ref.51a236.2: %I.type) [from "has_extra_interfaces.carbon"] { +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.b29)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.2e0)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.43d)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -3143,34 +3143,34 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.59b) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.b29) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.59b +// CHECK:STDOUT: %Self => constants.%Self.b29 // CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type // CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.59b) { -// CHECK:STDOUT: %Self => constants.%Self.59b +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.b29) { +// CHECK:STDOUT: %Self => constants.%Self.b29 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2e0 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.43d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Extra8.WithSelf(constants.%Self.3b0) {} +// CHECK:STDOUT: specific @Extra8.WithSelf(constants.%Self.5d6) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Extra7.WithSelf(constants.%Self.9eb) {} +// CHECK:STDOUT: specific @Extra7.WithSelf(constants.%Self.fdc) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Extra6.WithSelf(constants.%Self.28d) {} +// CHECK:STDOUT: specific @Extra6.WithSelf(constants.%Self.c9c) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Extra5.WithSelf(constants.%Self.841) {} +// CHECK:STDOUT: specific @Extra5.WithSelf(constants.%Self.03e) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Extra4.WithSelf(constants.%Self.b05) {} +// CHECK:STDOUT: specific @Extra4.WithSelf(constants.%Self.782) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Extra3.WithSelf(constants.%Self.591) {} +// CHECK:STDOUT: specific @Extra3.WithSelf(constants.%Self.328) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Extra2.WithSelf(constants.%Self.c52) {} +// CHECK:STDOUT: specific @Extra2.WithSelf(constants.%Self.a5a) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Extra1.WithSelf(constants.%Self.de5) {} +// CHECK:STDOUT: specific @Extra1.WithSelf(constants.%Self.e84) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%tuple.type) { // CHECK:STDOUT: %T => constants.%tuple.type diff --git a/toolchain/check/testdata/impl/lookup/instance_method.carbon b/toolchain/check/testdata/impl/lookup/instance_method.carbon index ba3f116f5d43..74b60b529787 100644 --- a/toolchain/check/testdata/impl/lookup/instance_method.carbon +++ b/toolchain/check/testdata/impl/lookup/instance_method.carbon @@ -35,33 +35,33 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.a3c: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.c60: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.d9f: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.592: %I.WithSelf.F.type.d9f = struct_value () [symbolic] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.dcc: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ec6: %I.WithSelf.F.type.dcc = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // 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: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.3a2: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.138: %I.WithSelf.F.type.3a2 = struct_value () [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.064: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.513: %I.WithSelf.F.type.064 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %C.type.facet: %type = facet_value %C, () [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.eef: type = fn_type @I.WithSelf.F, @I.WithSelf(%C.type.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.b58: %I.WithSelf.F.type.eef = struct_value () [concrete] -// CHECK:STDOUT: %.f38: type = fn_type_with_self_type %I.WithSelf.F.type.3a2, %I.facet [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.b04: type = fn_type @I.WithSelf.F, @I.WithSelf(%C.type.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.cef: %I.WithSelf.F.type.b04 = struct_value () [concrete] +// CHECK:STDOUT: %.ea0: type = fn_type_with_self_type %I.WithSelf.F.type.064, %I.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -85,13 +85,13 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %C.decl.loc21: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc27: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc27: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %c.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl.loc15 [concrete = constants.%C] // CHECK:STDOUT: %c: %C = value_binding c, %c.param @@ -105,14 +105,14 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.d9f) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.592)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.a3c) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.a3c) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.dcc) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ec6)] { +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc18_25: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc18_25: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc18_14.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc18_14.1: type = splice_block %.loc18_14.2 [symbolic = %Self.as_type.loc18_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] @@ -135,13 +135,13 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.I.impl: %Self.ref as %I.ref { // CHECK:STDOUT: %C.as.I.impl.F.decl: %C.as.I.impl.F.type = fn_decl @C.as.I.impl.F [concrete = constants.%C.as.I.impl.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.0d5 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc23: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc23: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] // CHECK:STDOUT: %self: %C = value_binding self, %self.param @@ -175,7 +175,7 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc18_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc18_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc18_14.1 [symbolic = %pattern_type (constants.%pattern_type.a3c)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc18_14.1 [symbolic = %pattern_type (constants.%pattern_type.c60)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc18_14.1 (%Self.as_type)) -> out %return.param: %i32; // CHECK:STDOUT: } @@ -186,7 +186,7 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.f38 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F] +// CHECK:STDOUT: %impl.elem0: %.ea0 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %C.as.I.impl.F.call: init %i32 = call %bound_method(%c.ref) // CHECK:STDOUT: return %C.as.I.impl.F.call @@ -195,33 +195,33 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: specific @I.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d9f -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.592 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.dcc +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ec6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc18_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a3c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.3a2 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.138 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.064 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.513 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet // CHECK:STDOUT: %Self.as_type.loc18_14.1 => constants.%C -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d5 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%C.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%C.type.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.eef -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.b58 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.b04 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.cef // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/lookup_interface_with_enclosing_generic_inside_rewrite_constraint.carbon b/toolchain/check/testdata/impl/lookup/lookup_interface_with_enclosing_generic_inside_rewrite_constraint.carbon index 576e5a9ebcd2..237c9e23ae1e 100644 --- a/toolchain/check/testdata/impl/lookup/lookup_interface_with_enclosing_generic_inside_rewrite_constraint.carbon +++ b/toolchain/check/testdata/impl/lookup/lookup_interface_with_enclosing_generic_inside_rewrite_constraint.carbon @@ -110,45 +110,45 @@ fn F() { // CHECK:STDOUT: %Outer.type: type = generic_class_type @Outer [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Outer.generic: %Outer.type = struct_value () [concrete] -// CHECK:STDOUT: %Outer.3b5: type = class_type @Outer, @Outer(%OuterParam) [symbolic] -// CHECK:STDOUT: %Y.type.2c1: type = facet_type <@Y, @Y(%OuterParam)> [symbolic] -// CHECK:STDOUT: %Self.356: %Y.type.2c1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Y.assoc_type.812: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic] -// CHECK:STDOUT: %assoc0.43a: %Y.assoc_type.812 = assoc_entity element0, @Y.WithSelf.%T [symbolic] -// CHECK:STDOUT: %.Self.375: %Y.type.2c1 = symbolic_binding .Self [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %Y.type.2c1 [symbolic] -// CHECK:STDOUT: %.Self.as_type.975: type = facet_access_type %.Self.375 [symbolic] -// CHECK:STDOUT: %Y.lookup_impl_witness.a01: = lookup_impl_witness %.Self.375, @Y, @Y(%OuterParam) [symbolic] -// CHECK:STDOUT: %impl.elem0.b7e: type = impl_witness_access %Y.lookup_impl_witness.a01, element0 [symbolic] +// CHECK:STDOUT: %Outer.dee: type = class_type @Outer, @Outer(%OuterParam) [symbolic] +// CHECK:STDOUT: %Y.type.d63: type = facet_type <@Y, @Y(%OuterParam)> [symbolic] +// CHECK:STDOUT: %Self.b6d: %Y.type.d63 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Y.assoc_type.045: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic] +// CHECK:STDOUT: %assoc0.bbd: %Y.assoc_type.045 = assoc_entity element0, @Y.WithSelf.%T [symbolic] +// CHECK:STDOUT: %.Self.1f2: %Y.type.d63 = symbolic_binding .Self [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Y.type.d63 [symbolic] +// CHECK:STDOUT: %.Self.as_type.88e: type = facet_access_type %.Self.1f2 [symbolic] +// CHECK:STDOUT: %Y.lookup_impl_witness.593: = lookup_impl_witness %.Self.1f2, @Y, @Y(%OuterParam) [symbolic] +// CHECK:STDOUT: %impl.elem0.231: type = impl_witness_access %Y.lookup_impl_witness.593, element0 [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %Y_where.type.bfa: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.b7e = %empty_tuple.type> [symbolic] -// CHECK:STDOUT: %pattern_type.f13: type = pattern_type %Y_where.type.bfa [symbolic] -// CHECK:STDOUT: %H: %Y_where.type.bfa = symbolic_binding H, 1 [symbolic] -// CHECK:STDOUT: %Outer.G.type.dad: type = fn_type @Outer.G, @Outer(%OuterParam) [symbolic] -// CHECK:STDOUT: %Outer.G.dfb: %Outer.G.type.dad = struct_value () [symbolic] +// CHECK:STDOUT: %Y_where.type.e36: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.231 = %empty_tuple.type> [symbolic] +// CHECK:STDOUT: %pattern_type.afd: type = pattern_type %Y_where.type.e36 [symbolic] +// CHECK:STDOUT: %H: %Y_where.type.e36 = symbolic_binding H, 1 [symbolic] +// CHECK:STDOUT: %Outer.G.type.744: type = fn_type @Outer.G, @Outer(%OuterParam) [symbolic] +// CHECK:STDOUT: %Outer.G.2ce: %Outer.G.type.744 = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %Outer.922: type = class_type @Outer, @Outer(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %Y.type.de7: type = facet_type <@Y, @Y(%empty_tuple.type)> [concrete] -// CHECK:STDOUT: %Outer.G.type.c60: type = fn_type @Outer.G, @Outer(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %Outer.G.949: %Outer.G.type.c60 = struct_value () [concrete] -// CHECK:STDOUT: %.Self.c71: %Y.type.de7 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Self.45a: %Y.type.de7 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Y.assoc_type.ab2: type = assoc_entity_type @Y, @Y(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %assoc0.ef6: %Y.assoc_type.ab2 = assoc_entity element0, @Y.WithSelf.%T [concrete] -// CHECK:STDOUT: %.Self.as_type.e93: type = facet_access_type %.Self.c71 [symbolic_self] -// CHECK:STDOUT: %Y.lookup_impl_witness.ca3: = lookup_impl_witness %.Self.c71, @Y, @Y(%empty_tuple.type) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.16f: type = impl_witness_access %Y.lookup_impl_witness.ca3, element0 [symbolic_self] -// CHECK:STDOUT: %Y_where.type.c1d: type = facet_type <@Y, @Y(%empty_tuple.type) where %impl.elem0.16f = %empty_tuple.type> [concrete] +// CHECK:STDOUT: %Outer.9cf: type = class_type @Outer, @Outer(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Y.type.1f7: type = facet_type <@Y, @Y(%empty_tuple.type)> [concrete] +// CHECK:STDOUT: %Outer.G.type.c4d: type = fn_type @Outer.G, @Outer(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Outer.G.49b: %Outer.G.type.c4d = struct_value () [concrete] +// CHECK:STDOUT: %.Self.397: %Y.type.1f7 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Self.b11: %Y.type.1f7 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Y.assoc_type.46d: type = assoc_entity_type @Y, @Y(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %assoc0.a6e: %Y.assoc_type.46d = assoc_entity element0, @Y.WithSelf.%T [concrete] +// CHECK:STDOUT: %.Self.as_type.043: type = facet_access_type %.Self.397 [symbolic_self] +// CHECK:STDOUT: %Y.lookup_impl_witness.25a: = lookup_impl_witness %.Self.397, @Y, @Y(%empty_tuple.type) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.765: type = impl_witness_access %Y.lookup_impl_witness.25a, element0 [symbolic_self] +// CHECK:STDOUT: %Y_where.type.84c: type = facet_type <@Y, @Y(%empty_tuple.type) where %impl.elem0.765 = %empty_tuple.type> [concrete] // CHECK:STDOUT: %Y.impl_witness: = impl_witness @C.as.Y.impl.%Y.impl_witness_table [concrete] -// CHECK:STDOUT: %Y.facet: %Y.type.de7 = facet_value %C, (%Y.impl_witness) [concrete] +// CHECK:STDOUT: %Y.facet: %Y.type.1f7 = facet_value %C, (%Y.impl_witness) [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %facet_value: %Y_where.type.c1d = facet_value %C, (%Y.impl_witness) [concrete] -// CHECK:STDOUT: %complete_type.c62: = complete_type_witness %Y.type.de7 [concrete] -// CHECK:STDOUT: %pattern_type.c64: type = pattern_type %Y_where.type.c1d [concrete] -// CHECK:STDOUT: %Outer.G.specific_fn: = specific_function %Outer.G.949, @Outer.G(%empty_tuple.type, %facet_value) [concrete] +// CHECK:STDOUT: %facet_value: %Y_where.type.84c = facet_value %C, (%Y.impl_witness) [concrete] +// CHECK:STDOUT: %complete_type.002: = complete_type_witness %Y.type.1f7 [concrete] +// CHECK:STDOUT: %pattern_type.27b: type = pattern_type %Y_where.type.84c [concrete] +// CHECK:STDOUT: %Outer.G.specific_fn: = specific_function %Outer.G.49b, @Outer.G(%empty_tuple.type, %facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -181,19 +181,19 @@ fn F() { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %.loc58_18: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc58_19: type = converted %.loc58_18, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %Outer: type = class_type @Outer, @Outer(constants.%empty_tuple.type) [concrete = constants.%Outer.922] -// CHECK:STDOUT: %.loc58_20: type = specific_constant @Outer.%Y.decl, @Outer(constants.%empty_tuple.type) [concrete = constants.%Y.type.de7] -// CHECK:STDOUT: %Y.ref: type = name_ref Y, %.loc58_20 [concrete = constants.%Y.type.de7] -// CHECK:STDOUT: %.Self: %Y.type.de7 = symbolic_binding .Self [symbolic_self = constants.%.Self.c71] -// CHECK:STDOUT: %.Self.ref: %Y.type.de7 = name_ref .Self, %.Self [symbolic_self = constants.%.Self.c71] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.e93] -// CHECK:STDOUT: %.loc58_29.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.e93] -// CHECK:STDOUT: %.loc58_29.2: %Y.assoc_type.ab2 = specific_constant @T.%assoc0, @Y.WithSelf(constants.%empty_tuple.type, constants.%.Self.c71) [concrete = constants.%assoc0.ef6] -// CHECK:STDOUT: %T.ref: %Y.assoc_type.ab2 = name_ref T, %.loc58_29.2 [concrete = constants.%assoc0.ef6] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Y.lookup_impl_witness.ca3, element0 [symbolic_self = constants.%impl.elem0.16f] +// CHECK:STDOUT: %Outer: type = class_type @Outer, @Outer(constants.%empty_tuple.type) [concrete = constants.%Outer.9cf] +// CHECK:STDOUT: %.loc58_20: type = specific_constant @Outer.%Y.decl, @Outer(constants.%empty_tuple.type) [concrete = constants.%Y.type.1f7] +// CHECK:STDOUT: %Y.ref: type = name_ref Y, %.loc58_20 [concrete = constants.%Y.type.1f7] +// CHECK:STDOUT: %.Self: %Y.type.1f7 = symbolic_binding .Self [symbolic_self = constants.%.Self.397] +// CHECK:STDOUT: %.Self.ref: %Y.type.1f7 = name_ref .Self, %.Self [symbolic_self = constants.%.Self.397] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.043] +// CHECK:STDOUT: %.loc58_29.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.043] +// CHECK:STDOUT: %.loc58_29.2: %Y.assoc_type.46d = specific_constant @T.%assoc0, @Y.WithSelf(constants.%empty_tuple.type, constants.%.Self.397) [concrete = constants.%assoc0.a6e] +// CHECK:STDOUT: %T.ref: %Y.assoc_type.46d = name_ref T, %.loc58_29.2 [concrete = constants.%assoc0.a6e] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Y.lookup_impl_witness.25a, element0 [symbolic_self = constants.%impl.elem0.765] // CHECK:STDOUT: %.loc58_35.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc58_35.2: type = converted %.loc58_35.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc58_23: type = where_expr [concrete = constants.%Y_where.type.c1d] { +// CHECK:STDOUT: %.loc58_23: type = where_expr [concrete = constants.%Y_where.type.84c] { // CHECK:STDOUT: requirement_base_facet_type %Y.ref // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc58_35.2 // CHECK:STDOUT: } @@ -204,16 +204,16 @@ fn F() { // CHECK:STDOUT: generic interface @Y(@Outer.%OuterParam.loc49_23.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam: type = symbolic_binding OuterParam, 0 [symbolic = %OuterParam (constants.%OuterParam)] -// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.2c1)] -// CHECK:STDOUT: %Self.loc50_15.2: @Y.%Y.type (%Y.type.2c1) = symbolic_binding Self, 1 [symbolic = %Self.loc50_15.2 (constants.%Self.356)] +// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.d63)] +// CHECK:STDOUT: %Self.loc50_15.2: @Y.%Y.type (%Y.type.d63) = symbolic_binding Self, 1 [symbolic = %Self.loc50_15.2 (constants.%Self.b6d)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc50_15.1: @Y.%Y.type (%Y.type.2c1) = symbolic_binding Self, 1 [symbolic = %Self.loc50_15.2 (constants.%Self.356)] +// CHECK:STDOUT: %Self.loc50_15.1: @Y.%Y.type (%Y.type.d63) = symbolic_binding Self, 1 [symbolic = %Self.loc50_15.2 (constants.%Self.b6d)] // CHECK:STDOUT: %Y.WithSelf.decl = interface_with_self_decl @Y [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] { -// CHECK:STDOUT: %assoc0: @Y.WithSelf.%Y.assoc_type (%Y.assoc_type.812) = assoc_entity element0, @Y.WithSelf.%T [symbolic = @Y.WithSelf.%assoc0 (constants.%assoc0.43a)] +// CHECK:STDOUT: %assoc0: @Y.WithSelf.%Y.assoc_type (%Y.assoc_type.045) = assoc_entity element0, @Y.WithSelf.%T [symbolic = @Y.WithSelf.%assoc0 (constants.%assoc0.bbd)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -239,40 +239,40 @@ fn F() { // CHECK:STDOUT: %OuterParam.loc49_23.1: type = symbolic_binding OuterParam, 0 [symbolic = %OuterParam.loc49_23.1 (constants.%OuterParam)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam.loc49_23.1)> [symbolic = %Y.type (constants.%Y.type.2c1)] -// CHECK:STDOUT: %Outer.G.type: type = fn_type @Outer.G, @Outer(%OuterParam.loc49_23.1) [symbolic = %Outer.G.type (constants.%Outer.G.type.dad)] -// CHECK:STDOUT: %Outer.G: @Outer.%Outer.G.type (%Outer.G.type.dad) = struct_value () [symbolic = %Outer.G (constants.%Outer.G.dfb)] +// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam.loc49_23.1)> [symbolic = %Y.type (constants.%Y.type.d63)] +// CHECK:STDOUT: %Outer.G.type: type = fn_type @Outer.G, @Outer(%OuterParam.loc49_23.1) [symbolic = %Outer.G.type (constants.%Outer.G.type.744)] +// CHECK:STDOUT: %Outer.G: @Outer.%Outer.G.type (%Outer.G.type.744) = struct_value () [symbolic = %Outer.G (constants.%Outer.G.2ce)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Y.decl: type = interface_decl @Y [symbolic = @Outer.%Y.type (constants.%Y.type.2c1)] {} {} -// CHECK:STDOUT: %Outer.G.decl: @Outer.%Outer.G.type (%Outer.G.type.dad) = fn_decl @Outer.G [symbolic = @Outer.%Outer.G (constants.%Outer.G.dfb)] { -// CHECK:STDOUT: %H.patt: @Outer.G.%pattern_type (%pattern_type.f13) = symbolic_binding_pattern H, 1 [concrete] +// CHECK:STDOUT: %Y.decl: type = interface_decl @Y [symbolic = @Outer.%Y.type (constants.%Y.type.d63)] {} {} +// CHECK:STDOUT: %Outer.G.decl: @Outer.%Outer.G.type (%Outer.G.type.744) = fn_decl @Outer.G [symbolic = @Outer.%Outer.G (constants.%Outer.G.2ce)] { +// CHECK:STDOUT: %H.patt: @Outer.G.%pattern_type (%pattern_type.afd) = symbolic_binding_pattern H, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc54_21.1: type = splice_block %.loc54_21.2 [symbolic = %Y_where.type (constants.%Y_where.type.bfa)] { +// CHECK:STDOUT: %.loc54_21.1: type = splice_block %.loc54_21.2 [symbolic = %Y_where.type (constants.%Y_where.type.e36)] { // CHECK:STDOUT: %.Self.loc54_16: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] -// CHECK:STDOUT: %.loc54_19: type = specific_constant @Outer.%Y.decl, @Outer(constants.%OuterParam) [symbolic = %Y.type (constants.%Y.type.2c1)] -// CHECK:STDOUT: %Y.ref: type = name_ref Y, %.loc54_19 [symbolic = %Y.type (constants.%Y.type.2c1)] -// CHECK:STDOUT: %.Self.loc54_21.2: @Outer.G.%Y.type (%Y.type.2c1) = symbolic_binding .Self [symbolic = %.Self.loc54_21.1 (constants.%.Self.375)] -// CHECK:STDOUT: %.Self.ref: @Outer.G.%Y.type (%Y.type.2c1) = name_ref .Self, %.Self.loc54_21.2 [symbolic = %.Self.loc54_21.1 (constants.%.Self.375)] -// CHECK:STDOUT: %.Self.as_type.loc54_27.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc54_27.1 (constants.%.Self.as_type.975)] -// CHECK:STDOUT: %.loc54_27.1: type = converted %.Self.ref, %.Self.as_type.loc54_27.2 [symbolic = %.Self.as_type.loc54_27.1 (constants.%.Self.as_type.975)] -// CHECK:STDOUT: %.loc54_27.2: @Outer.G.%Y.assoc_type (%Y.assoc_type.812) = specific_constant @T.%assoc0, @Y.WithSelf(constants.%OuterParam, constants.%.Self.375) [symbolic = %assoc0 (constants.%assoc0.43a)] -// CHECK:STDOUT: %T.ref: @Outer.G.%Y.assoc_type (%Y.assoc_type.812) = name_ref T, %.loc54_27.2 [symbolic = %assoc0 (constants.%assoc0.43a)] -// CHECK:STDOUT: %impl.elem0.loc54_27.2: type = impl_witness_access constants.%Y.lookup_impl_witness.a01, element0 [symbolic = %impl.elem0.loc54_27.1 (constants.%impl.elem0.b7e)] +// CHECK:STDOUT: %.loc54_19: type = specific_constant @Outer.%Y.decl, @Outer(constants.%OuterParam) [symbolic = %Y.type (constants.%Y.type.d63)] +// CHECK:STDOUT: %Y.ref: type = name_ref Y, %.loc54_19 [symbolic = %Y.type (constants.%Y.type.d63)] +// CHECK:STDOUT: %.Self.loc54_21.2: @Outer.G.%Y.type (%Y.type.d63) = symbolic_binding .Self [symbolic = %.Self.loc54_21.1 (constants.%.Self.1f2)] +// CHECK:STDOUT: %.Self.ref: @Outer.G.%Y.type (%Y.type.d63) = name_ref .Self, %.Self.loc54_21.2 [symbolic = %.Self.loc54_21.1 (constants.%.Self.1f2)] +// CHECK:STDOUT: %.Self.as_type.loc54_27.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc54_27.1 (constants.%.Self.as_type.88e)] +// CHECK:STDOUT: %.loc54_27.1: type = converted %.Self.ref, %.Self.as_type.loc54_27.2 [symbolic = %.Self.as_type.loc54_27.1 (constants.%.Self.as_type.88e)] +// CHECK:STDOUT: %.loc54_27.2: @Outer.G.%Y.assoc_type (%Y.assoc_type.045) = specific_constant @T.%assoc0, @Y.WithSelf(constants.%OuterParam, constants.%.Self.1f2) [symbolic = %assoc0 (constants.%assoc0.bbd)] +// CHECK:STDOUT: %T.ref: @Outer.G.%Y.assoc_type (%Y.assoc_type.045) = name_ref T, %.loc54_27.2 [symbolic = %assoc0 (constants.%assoc0.bbd)] +// CHECK:STDOUT: %impl.elem0.loc54_27.2: type = impl_witness_access constants.%Y.lookup_impl_witness.593, element0 [symbolic = %impl.elem0.loc54_27.1 (constants.%impl.elem0.231)] // CHECK:STDOUT: %.loc54_33.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc54_33.2: type = converted %.loc54_33.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc54_21.2: type = where_expr [symbolic = %Y_where.type (constants.%Y_where.type.bfa)] { +// CHECK:STDOUT: %.loc54_21.2: type = where_expr [symbolic = %Y_where.type (constants.%Y_where.type.e36)] { // CHECK:STDOUT: requirement_base_facet_type %Y.ref // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc54_27.2, %.loc54_33.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %H.loc54_16.2: @Outer.G.%Y_where.type (%Y_where.type.bfa) = symbolic_binding H, 1 [symbolic = %H.loc54_16.1 (constants.%H)] +// CHECK:STDOUT: %H.loc54_16.2: @Outer.G.%Y_where.type (%Y_where.type.e36) = symbolic_binding H, 1 [symbolic = %H.loc54_16.1 (constants.%H)] // CHECK:STDOUT: } // CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type.357] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Outer.3b5 +// CHECK:STDOUT: .Self = constants.%Outer.dee // CHECK:STDOUT: .Y = %Y.decl // CHECK:STDOUT: .G = %Outer.G.decl // CHECK:STDOUT: } @@ -280,19 +280,19 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: class @C; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Outer.G(@Outer.%OuterParam.loc49_23.2: type, %H.loc54_16.2: @Outer.G.%Y_where.type (%Y_where.type.bfa)) { +// CHECK:STDOUT: generic fn @Outer.G(@Outer.%OuterParam.loc49_23.2: type, %H.loc54_16.2: @Outer.G.%Y_where.type (%Y_where.type.e36)) { // CHECK:STDOUT: %OuterParam: type = symbolic_binding OuterParam, 0 [symbolic = %OuterParam (constants.%OuterParam)] -// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.2c1)] -// CHECK:STDOUT: %.Self.loc54_21.1: @Outer.G.%Y.type (%Y.type.2c1) = symbolic_binding .Self [symbolic = %.Self.loc54_21.1 (constants.%.Self.375)] +// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.d63)] +// CHECK:STDOUT: %.Self.loc54_21.1: @Outer.G.%Y.type (%Y.type.d63) = symbolic_binding .Self [symbolic = %.Self.loc54_21.1 (constants.%.Self.1f2)] // CHECK:STDOUT: %require_complete: = require_complete_type %Y.type [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %.Self.as_type.loc54_27.1: type = facet_access_type %.Self.loc54_21.1 [symbolic = %.Self.as_type.loc54_27.1 (constants.%.Self.as_type.975)] -// CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.812)] -// CHECK:STDOUT: %assoc0: @Outer.G.%Y.assoc_type (%Y.assoc_type.812) = assoc_entity element0, @Y.WithSelf.%T [symbolic = %assoc0 (constants.%assoc0.43a)] -// CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self.loc54_21.1, @Y, @Y(%OuterParam) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness.a01)] -// CHECK:STDOUT: %impl.elem0.loc54_27.1: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc54_27.1 (constants.%impl.elem0.b7e)] -// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.loc54_27.1 = constants.%empty_tuple.type> [symbolic = %Y_where.type (constants.%Y_where.type.bfa)] -// CHECK:STDOUT: %H.loc54_16.1: @Outer.G.%Y_where.type (%Y_where.type.bfa) = symbolic_binding H, 1 [symbolic = %H.loc54_16.1 (constants.%H)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Y_where.type [symbolic = %pattern_type (constants.%pattern_type.f13)] +// CHECK:STDOUT: %.Self.as_type.loc54_27.1: type = facet_access_type %.Self.loc54_21.1 [symbolic = %.Self.as_type.loc54_27.1 (constants.%.Self.as_type.88e)] +// CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.045)] +// CHECK:STDOUT: %assoc0: @Outer.G.%Y.assoc_type (%Y.assoc_type.045) = assoc_entity element0, @Y.WithSelf.%T [symbolic = %assoc0 (constants.%assoc0.bbd)] +// CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self.loc54_21.1, @Y, @Y(%OuterParam) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness.593)] +// CHECK:STDOUT: %impl.elem0.loc54_27.1: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc54_27.1 (constants.%impl.elem0.231)] +// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.loc54_27.1 = constants.%empty_tuple.type> [symbolic = %Y_where.type (constants.%Y_where.type.e36)] +// CHECK:STDOUT: %H.loc54_16.1: @Outer.G.%Y_where.type (%Y_where.type.e36) = symbolic_binding H, 1 [symbolic = %H.loc54_16.1 (constants.%H)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Y_where.type [symbolic = %pattern_type (constants.%pattern_type.afd)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -307,12 +307,12 @@ fn F() { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %.loc61_10: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc61_11: type = converted %.loc61_10, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %Outer: type = class_type @Outer, @Outer(constants.%empty_tuple.type) [concrete = constants.%Outer.922] -// CHECK:STDOUT: %.loc61_12: %Outer.G.type.c60 = specific_constant @Outer.%Outer.G.decl, @Outer(constants.%empty_tuple.type) [concrete = constants.%Outer.G.949] -// CHECK:STDOUT: %G.ref: %Outer.G.type.c60 = name_ref G, %.loc61_12 [concrete = constants.%Outer.G.949] +// CHECK:STDOUT: %Outer: type = class_type @Outer, @Outer(constants.%empty_tuple.type) [concrete = constants.%Outer.9cf] +// CHECK:STDOUT: %.loc61_12: %Outer.G.type.c4d = specific_constant @Outer.%Outer.G.decl, @Outer(constants.%empty_tuple.type) [concrete = constants.%Outer.G.49b] +// CHECK:STDOUT: %G.ref: %Outer.G.type.c4d = name_ref G, %.loc61_12 [concrete = constants.%Outer.G.49b] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %facet_value: %Y_where.type.c1d = facet_value constants.%C, (constants.%Y.impl_witness) [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc61_16: %Y_where.type.c1d = converted constants.%C, %facet_value [concrete = constants.%facet_value] +// CHECK:STDOUT: %facet_value: %Y_where.type.84c = facet_value constants.%C, (constants.%Y.impl_witness) [concrete = constants.%facet_value] +// CHECK:STDOUT: %.loc61_16: %Y_where.type.84c = converted constants.%C, %facet_value [concrete = constants.%facet_value] // CHECK:STDOUT: %Outer.G.specific_fn: = specific_function %G.ref, @Outer.G(constants.%empty_tuple.type, constants.%facet_value) [concrete = constants.%Outer.G.specific_fn] // CHECK:STDOUT: %Outer.G.call: init %empty_tuple.type = call %Outer.G.specific_fn() // CHECK:STDOUT: return @@ -322,97 +322,97 @@ fn F() { // CHECK:STDOUT: %OuterParam.loc49_23.1 => constants.%OuterParam // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Y.type => constants.%Y.type.2c1 -// CHECK:STDOUT: %Outer.G.type => constants.%Outer.G.type.dad -// CHECK:STDOUT: %Outer.G => constants.%Outer.G.dfb +// CHECK:STDOUT: %Y.type => constants.%Y.type.d63 +// CHECK:STDOUT: %Outer.G.type => constants.%Outer.G.type.744 +// CHECK:STDOUT: %Outer.G => constants.%Outer.G.2ce // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y(constants.%OuterParam) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam => constants.%OuterParam -// CHECK:STDOUT: %Y.type => constants.%Y.type.2c1 -// CHECK:STDOUT: %Self.loc50_15.2 => constants.%Self.356 +// CHECK:STDOUT: %Y.type => constants.%Y.type.d63 +// CHECK:STDOUT: %Self.loc50_15.2 => constants.%Self.b6d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%OuterParam, constants.%Self.356) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%OuterParam, constants.%Self.b6d) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam => constants.%OuterParam -// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.812 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.43a +// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.045 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.bbd // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%OuterParam, constants.%.Self.375) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%OuterParam, constants.%.Self.1f2) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam => constants.%OuterParam -// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.812 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.43a +// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.045 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.bbd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer.G(constants.%OuterParam, constants.%H) { // CHECK:STDOUT: %OuterParam => constants.%OuterParam -// CHECK:STDOUT: %Y.type => constants.%Y.type.2c1 -// CHECK:STDOUT: %.Self.loc54_21.1 => constants.%.Self.375 +// CHECK:STDOUT: %Y.type => constants.%Y.type.d63 +// CHECK:STDOUT: %.Self.loc54_21.1 => constants.%.Self.1f2 // CHECK:STDOUT: %require_complete => constants.%require_complete -// CHECK:STDOUT: %.Self.as_type.loc54_27.1 => constants.%.Self.as_type.975 -// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.812 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.43a -// CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.a01 -// CHECK:STDOUT: %impl.elem0.loc54_27.1 => constants.%impl.elem0.b7e -// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.bfa +// CHECK:STDOUT: %.Self.as_type.loc54_27.1 => constants.%.Self.as_type.88e +// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.045 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.bbd +// CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.593 +// CHECK:STDOUT: %impl.elem0.loc54_27.1 => constants.%impl.elem0.231 +// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.e36 // CHECK:STDOUT: %H.loc54_16.1 => constants.%H -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f13 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.afd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%empty_tuple.type) { // CHECK:STDOUT: %OuterParam.loc49_23.1 => constants.%empty_tuple.type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Y.type => constants.%Y.type.de7 -// CHECK:STDOUT: %Outer.G.type => constants.%Outer.G.type.c60 -// CHECK:STDOUT: %Outer.G => constants.%Outer.G.949 +// CHECK:STDOUT: %Y.type => constants.%Y.type.1f7 +// CHECK:STDOUT: %Outer.G.type => constants.%Outer.G.type.c4d +// CHECK:STDOUT: %Outer.G => constants.%Outer.G.49b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y(constants.%empty_tuple.type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam => constants.%empty_tuple.type -// CHECK:STDOUT: %Y.type => constants.%Y.type.de7 -// CHECK:STDOUT: %Self.loc50_15.2 => constants.%Self.45a +// CHECK:STDOUT: %Y.type => constants.%Y.type.1f7 +// CHECK:STDOUT: %Self.loc50_15.2 => constants.%Self.b11 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%empty_tuple.type, constants.%Self.356) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%empty_tuple.type, constants.%Self.b6d) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam => constants.%empty_tuple.type -// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.ab2 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.ef6 +// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.46d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.a6e // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%empty_tuple.type, constants.%.Self.c71) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%empty_tuple.type, constants.%.Self.397) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam => constants.%empty_tuple.type -// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.ab2 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.ef6 +// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.46d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.a6e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf(constants.%empty_tuple.type, constants.%Y.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam => constants.%empty_tuple.type -// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.ab2 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.ef6 +// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.46d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.a6e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer.G(constants.%empty_tuple.type, constants.%facet_value) { // CHECK:STDOUT: %OuterParam => constants.%empty_tuple.type -// CHECK:STDOUT: %Y.type => constants.%Y.type.de7 -// CHECK:STDOUT: %.Self.loc54_21.1 => constants.%.Self.c71 -// CHECK:STDOUT: %require_complete => constants.%complete_type.c62 -// CHECK:STDOUT: %.Self.as_type.loc54_27.1 => constants.%.Self.as_type.e93 -// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.ab2 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.ef6 -// CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.ca3 -// CHECK:STDOUT: %impl.elem0.loc54_27.1 => constants.%impl.elem0.16f -// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.c1d +// CHECK:STDOUT: %Y.type => constants.%Y.type.1f7 +// CHECK:STDOUT: %.Self.loc54_21.1 => constants.%.Self.397 +// CHECK:STDOUT: %require_complete => constants.%complete_type.002 +// CHECK:STDOUT: %.Self.as_type.loc54_27.1 => constants.%.Self.as_type.043 +// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.46d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.a6e +// CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.25a +// CHECK:STDOUT: %impl.elem0.loc54_27.1 => constants.%impl.elem0.765 +// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.84c // CHECK:STDOUT: %H.loc54_16.1 => constants.%facet_value -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c64 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.27b // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -421,36 +421,36 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Z1.type: type = facet_type <@Z1> [concrete] -// CHECK:STDOUT: %Self.9d0: %Z1.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.bc4: %Z1.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Z2.type: type = facet_type <@Z2> [concrete] -// CHECK:STDOUT: %Self.67a: %Z2.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.5ad: %Z2.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.3a9: type = pattern_type %Z1.type [concrete] +// CHECK:STDOUT: %pattern_type.f4f: type = pattern_type %Z1.type [concrete] // CHECK:STDOUT: %OuterParam: %Z1.type = symbolic_binding OuterParam, 0 [symbolic] // CHECK:STDOUT: %Outer.type: type = generic_class_type @Outer [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Outer.generic: %Outer.type = struct_value () [concrete] -// CHECK:STDOUT: %Outer.71d: type = class_type @Outer, @Outer(%OuterParam) [symbolic] -// CHECK:STDOUT: %Y.type.244: type = facet_type <@Y, @Y(%OuterParam)> [symbolic] -// CHECK:STDOUT: %Self.5ed: %Y.type.244 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Y.assoc_type.fd4: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic] -// CHECK:STDOUT: %assoc0.076: %Y.assoc_type.fd4 = assoc_entity element0, @Y.WithSelf.%T [symbolic] -// CHECK:STDOUT: %.Self.5f7: %Y.type.244 = symbolic_binding .Self [symbolic] -// CHECK:STDOUT: %require_complete.9b4: = require_complete_type %Y.type.244 [symbolic] -// CHECK:STDOUT: %.Self.as_type.da8: type = facet_access_type %.Self.5f7 [symbolic] -// CHECK:STDOUT: %Y.lookup_impl_witness.412: = lookup_impl_witness %.Self.5f7, @Y, @Y(%OuterParam) [symbolic] -// CHECK:STDOUT: %impl.elem0.b6c: type = impl_witness_access %Y.lookup_impl_witness.412, element0 [symbolic] +// CHECK:STDOUT: %Outer.e34: type = class_type @Outer, @Outer(%OuterParam) [symbolic] +// CHECK:STDOUT: %Y.type.6da: type = facet_type <@Y, @Y(%OuterParam)> [symbolic] +// CHECK:STDOUT: %Self.b90: %Y.type.6da = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Y.assoc_type.9e3: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic] +// CHECK:STDOUT: %assoc0.c2d: %Y.assoc_type.9e3 = assoc_entity element0, @Y.WithSelf.%T [symbolic] +// CHECK:STDOUT: %.Self.566: %Y.type.6da = symbolic_binding .Self [symbolic] +// CHECK:STDOUT: %require_complete.ab6: = require_complete_type %Y.type.6da [symbolic] +// CHECK:STDOUT: %.Self.as_type.eab: type = facet_access_type %.Self.566 [symbolic] +// CHECK:STDOUT: %Y.lookup_impl_witness.775: = lookup_impl_witness %.Self.566, @Y, @Y(%OuterParam) [symbolic] +// CHECK:STDOUT: %impl.elem0.231: type = impl_witness_access %Y.lookup_impl_witness.775, element0 [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %Y_where.type.1cf: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.b6c = %empty_tuple.type> [symbolic] -// CHECK:STDOUT: %pattern_type.3e8: type = pattern_type %Y_where.type.1cf [symbolic] -// CHECK:STDOUT: %H: %Y_where.type.1cf = symbolic_binding H, 1 [symbolic] -// CHECK:STDOUT: %Outer.G.type.359: type = fn_type @Outer.G, @Outer(%OuterParam) [symbolic] -// CHECK:STDOUT: %Outer.G.f26: %Outer.G.type.359 = struct_value () [symbolic] -// CHECK:STDOUT: %C.b80: type = class_type @C, @C(%OuterParam) [symbolic] -// CHECK:STDOUT: %Y.impl_witness.499: = impl_witness @C.as.Y.impl.%Y.impl_witness_table, @C.as.Y.impl(%OuterParam) [symbolic] -// CHECK:STDOUT: %require_complete.806: = require_complete_type %Y_where.type.1cf [symbolic] -// CHECK:STDOUT: %Y.facet.00a: %Y.type.244 = facet_value %C.b80, (%Y.impl_witness.499) [symbolic] +// CHECK:STDOUT: %Y_where.type.9b0: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.231 = %empty_tuple.type> [symbolic] +// CHECK:STDOUT: %pattern_type.68e: type = pattern_type %Y_where.type.9b0 [symbolic] +// CHECK:STDOUT: %H: %Y_where.type.9b0 = symbolic_binding H, 1 [symbolic] +// CHECK:STDOUT: %Outer.G.type.2cf: type = fn_type @Outer.G, @Outer(%OuterParam) [symbolic] +// CHECK:STDOUT: %Outer.G.f56: %Outer.G.type.2cf = struct_value () [symbolic] +// CHECK:STDOUT: %C.147: type = class_type @C, @C(%OuterParam) [symbolic] +// CHECK:STDOUT: %Y.impl_witness.94f: = impl_witness @C.as.Y.impl.%Y.impl_witness_table, @C.as.Y.impl(%OuterParam) [symbolic] +// CHECK:STDOUT: %require_complete.9ed: = require_complete_type %Y_where.type.9b0 [symbolic] +// CHECK:STDOUT: %Y.facet.93f: %Y.type.6da = facet_value %C.147, (%Y.impl_witness.94f) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Z1.impl_witness: = impl_witness @empty_tuple.type.as.Z1.impl.%Z1.impl_witness_table [concrete] @@ -459,37 +459,37 @@ fn F() { // CHECK:STDOUT: %Z2.facet: %Z2.type = facet_value %empty_tuple.type, (%Z2.impl_witness) [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.fd8: type = generic_interface_type @BitAndWith [concrete] -// CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.fd8 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.2af: type = facet_type <@BitAndWith, @BitAndWith(type)> [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] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.2af = facet_value type, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.5d1: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %.9ee: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.5d1, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %Z1.type, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %facet_type: type = facet_type <@Z1 & @Z2> [concrete] -// CHECK:STDOUT: %facet_value.1c9: %facet_type = facet_value %empty_tuple.type, (%Z1.impl_witness, %Z2.impl_witness) [concrete] -// CHECK:STDOUT: %Outer.d69: type = class_type @Outer, @Outer(%Z1.facet) [concrete] -// CHECK:STDOUT: %Y.type.52f: type = facet_type <@Y, @Y(%Z1.facet)> [concrete] -// CHECK:STDOUT: %Outer.G.type.9fe: type = fn_type @Outer.G, @Outer(%Z1.facet) [concrete] -// CHECK:STDOUT: %Outer.G.f31: %Outer.G.type.9fe = struct_value () [concrete] -// CHECK:STDOUT: %C.4a0: type = class_type @C, @C(%Z1.facet) [concrete] -// CHECK:STDOUT: %.Self.b03: %Y.type.52f = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Y.lookup_impl_witness.0c6: = lookup_impl_witness %.Self.b03, @Y, @Y(%Z1.facet) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.a26: type = impl_witness_access %Y.lookup_impl_witness.0c6, element0 [symbolic_self] -// CHECK:STDOUT: %Y_where.type.48f: type = facet_type <@Y, @Y(%Z1.facet) where %impl.elem0.a26 = %empty_tuple.type> [concrete] -// CHECK:STDOUT: %Self.623: %Y.type.52f = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Y.assoc_type.c4e: type = assoc_entity_type @Y, @Y(%Z1.facet) [concrete] -// CHECK:STDOUT: %assoc0.654: %Y.assoc_type.c4e = assoc_entity element0, @Y.WithSelf.%T [concrete] -// CHECK:STDOUT: %complete_type.a1f: = complete_type_witness %Y.type.52f [concrete] -// CHECK:STDOUT: %.Self.as_type.bfc: type = facet_access_type %.Self.b03 [symbolic_self] -// CHECK:STDOUT: %Y.impl_witness.6ba: = impl_witness @C.as.Y.impl.%Y.impl_witness_table, @C.as.Y.impl(%Z1.facet) [concrete] -// CHECK:STDOUT: %complete_type.fe0: = complete_type_witness %Y_where.type.48f [concrete] -// CHECK:STDOUT: %facet_value.4ef: %Y_where.type.48f = facet_value %C.4a0, (%Y.impl_witness.6ba) [concrete] -// CHECK:STDOUT: %pattern_type.279: type = pattern_type %Y_where.type.48f [concrete] -// CHECK:STDOUT: %Outer.G.specific_fn: = specific_function %Outer.G.f31, @Outer.G(%Z1.facet, %facet_value.4ef) [concrete] +// CHECK:STDOUT: %facet_value.af0: %facet_type = facet_value %empty_tuple.type, (%Z1.impl_witness, %Z2.impl_witness) [concrete] +// CHECK:STDOUT: %Outer.22e: type = class_type @Outer, @Outer(%Z1.facet) [concrete] +// CHECK:STDOUT: %Y.type.b7c: type = facet_type <@Y, @Y(%Z1.facet)> [concrete] +// CHECK:STDOUT: %Outer.G.type.8ce: type = fn_type @Outer.G, @Outer(%Z1.facet) [concrete] +// CHECK:STDOUT: %Outer.G.20a: %Outer.G.type.8ce = struct_value () [concrete] +// CHECK:STDOUT: %C.5e2: type = class_type @C, @C(%Z1.facet) [concrete] +// CHECK:STDOUT: %.Self.42f: %Y.type.b7c = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Y.lookup_impl_witness.e27: = lookup_impl_witness %.Self.42f, @Y, @Y(%Z1.facet) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.801: type = impl_witness_access %Y.lookup_impl_witness.e27, element0 [symbolic_self] +// CHECK:STDOUT: %Y_where.type.948: type = facet_type <@Y, @Y(%Z1.facet) where %impl.elem0.801 = %empty_tuple.type> [concrete] +// CHECK:STDOUT: %Self.0e0: %Y.type.b7c = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Y.assoc_type.d53: type = assoc_entity_type @Y, @Y(%Z1.facet) [concrete] +// CHECK:STDOUT: %assoc0.ef6: %Y.assoc_type.d53 = assoc_entity element0, @Y.WithSelf.%T [concrete] +// CHECK:STDOUT: %complete_type.c4c: = complete_type_witness %Y.type.b7c [concrete] +// CHECK:STDOUT: %.Self.as_type.579: type = facet_access_type %.Self.42f [symbolic_self] +// CHECK:STDOUT: %Y.impl_witness.056: = impl_witness @C.as.Y.impl.%Y.impl_witness_table, @C.as.Y.impl(%Z1.facet) [concrete] +// CHECK:STDOUT: %complete_type.8f5: = complete_type_witness %Y_where.type.948 [concrete] +// CHECK:STDOUT: %facet_value.1c3: %Y_where.type.948 = facet_value %C.5e2, (%Y.impl_witness.056) [concrete] +// CHECK:STDOUT: %pattern_type.4ae: type = pattern_type %Y_where.type.948 [concrete] +// CHECK:STDOUT: %Outer.G.specific_fn: = specific_function %Outer.G.20a, @Outer.G(%Z1.facet, %facet_value.1c3) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -498,9 +498,9 @@ fn F() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.fd8 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @type.as.BitAndWith.impl [concrete] +// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.a06 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @type.as.BitAndWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -515,7 +515,7 @@ fn F() { // CHECK:STDOUT: %Z1.decl: type = interface_decl @Z1 [concrete = constants.%Z1.type] {} {} // CHECK:STDOUT: %Z2.decl: type = interface_decl @Z2 [concrete = constants.%Z2.type] {} {} // CHECK:STDOUT: %Outer.decl: %Outer.type = class_decl @Outer [concrete = constants.%Outer.generic] { -// CHECK:STDOUT: %OuterParam.patt: %pattern_type.3a9 = symbolic_binding_pattern OuterParam, 0 [concrete] +// CHECK:STDOUT: %OuterParam.patt: %pattern_type.f4f = symbolic_binding_pattern OuterParam, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6: type = splice_block %Z1.ref [concrete = constants.%Z1.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] @@ -537,7 +537,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Z1 { -// CHECK:STDOUT: %Self: %Z1.type = symbolic_binding Self, 0 [symbolic = constants.%Self.9d0] +// CHECK:STDOUT: %Self: %Z1.type = symbolic_binding Self, 0 [symbolic = constants.%Self.bc4] // CHECK:STDOUT: %Z1.WithSelf.decl = interface_with_self_decl @Z1 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -548,7 +548,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Z2 { -// CHECK:STDOUT: %Self: %Z2.type = symbolic_binding Self, 0 [symbolic = constants.%Self.67a] +// CHECK:STDOUT: %Self: %Z2.type = symbolic_binding Self, 0 [symbolic = constants.%Self.5ad] // CHECK:STDOUT: %Z2.WithSelf.decl = interface_with_self_decl @Z2 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -561,16 +561,16 @@ fn F() { // CHECK:STDOUT: generic interface @Y(@Outer.%OuterParam.loc6_23.2: %Z1.type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam: %Z1.type = symbolic_binding OuterParam, 0 [symbolic = %OuterParam (constants.%OuterParam)] -// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.244)] -// CHECK:STDOUT: %Self.loc7_15.2: @Y.%Y.type (%Y.type.244) = symbolic_binding Self, 1 [symbolic = %Self.loc7_15.2 (constants.%Self.5ed)] +// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.6da)] +// CHECK:STDOUT: %Self.loc7_15.2: @Y.%Y.type (%Y.type.6da) = symbolic_binding Self, 1 [symbolic = %Self.loc7_15.2 (constants.%Self.b90)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc7_15.1: @Y.%Y.type (%Y.type.244) = symbolic_binding Self, 1 [symbolic = %Self.loc7_15.2 (constants.%Self.5ed)] +// CHECK:STDOUT: %Self.loc7_15.1: @Y.%Y.type (%Y.type.6da) = symbolic_binding Self, 1 [symbolic = %Self.loc7_15.2 (constants.%Self.b90)] // CHECK:STDOUT: %Y.WithSelf.decl = interface_with_self_decl @Y [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] { -// CHECK:STDOUT: %assoc0: @Y.WithSelf.%Y.assoc_type (%Y.assoc_type.fd4) = assoc_entity element0, @Y.WithSelf.%T [symbolic = @Y.WithSelf.%assoc0 (constants.%assoc0.076)] +// CHECK:STDOUT: %assoc0: @Y.WithSelf.%Y.assoc_type (%Y.assoc_type.9e3) = assoc_entity element0, @Y.WithSelf.%T [symbolic = @Y.WithSelf.%assoc0 (constants.%assoc0.c2d)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -584,24 +584,24 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @C.as.Y.impl(@Outer.%OuterParam.loc6_23.2: %Z1.type) { // CHECK:STDOUT: %OuterParam: %Z1.type = symbolic_binding OuterParam, 0 [symbolic = %OuterParam (constants.%OuterParam)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%OuterParam) [symbolic = %C (constants.%C.b80)] -// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.244)] -// CHECK:STDOUT: %.Self.loc14_15.2: @C.as.Y.impl.%Y.type (%Y.type.244) = symbolic_binding .Self [symbolic = %.Self.loc14_15.2 (constants.%.Self.5f7)] -// CHECK:STDOUT: %require_complete.loc14_21: = require_complete_type %Y.type [symbolic = %require_complete.loc14_21 (constants.%require_complete.9b4)] -// CHECK:STDOUT: %.Self.as_type.loc14_21.2: type = facet_access_type %.Self.loc14_15.2 [symbolic = %.Self.as_type.loc14_21.2 (constants.%.Self.as_type.da8)] -// CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.fd4)] -// CHECK:STDOUT: %assoc0: @C.as.Y.impl.%Y.assoc_type (%Y.assoc_type.fd4) = assoc_entity element0, @Y.WithSelf.%T [symbolic = %assoc0 (constants.%assoc0.076)] -// CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self.loc14_15.2, @Y, @Y(%OuterParam) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness.412)] -// CHECK:STDOUT: %impl.elem0.loc14_21.2: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_21.2 (constants.%impl.elem0.b6c)] -// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.loc14_21.2 = constants.%empty_tuple.type> [symbolic = %Y_where.type (constants.%Y_where.type.1cf)] -// CHECK:STDOUT: %Y.impl_witness.loc14_29.2: = impl_witness %Y.impl_witness_table, @C.as.Y.impl(%OuterParam) [symbolic = %Y.impl_witness.loc14_29.2 (constants.%Y.impl_witness.499)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%OuterParam) [symbolic = %C (constants.%C.147)] +// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.6da)] +// CHECK:STDOUT: %.Self.loc14_15.2: @C.as.Y.impl.%Y.type (%Y.type.6da) = symbolic_binding .Self [symbolic = %.Self.loc14_15.2 (constants.%.Self.566)] +// CHECK:STDOUT: %require_complete.loc14_21: = require_complete_type %Y.type [symbolic = %require_complete.loc14_21 (constants.%require_complete.ab6)] +// CHECK:STDOUT: %.Self.as_type.loc14_21.2: type = facet_access_type %.Self.loc14_15.2 [symbolic = %.Self.as_type.loc14_21.2 (constants.%.Self.as_type.eab)] +// CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.9e3)] +// CHECK:STDOUT: %assoc0: @C.as.Y.impl.%Y.assoc_type (%Y.assoc_type.9e3) = assoc_entity element0, @Y.WithSelf.%T [symbolic = %assoc0 (constants.%assoc0.c2d)] +// CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self.loc14_15.2, @Y, @Y(%OuterParam) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness.775)] +// CHECK:STDOUT: %impl.elem0.loc14_21.2: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_21.2 (constants.%impl.elem0.231)] +// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.loc14_21.2 = constants.%empty_tuple.type> [symbolic = %Y_where.type (constants.%Y_where.type.9b0)] +// CHECK:STDOUT: %Y.impl_witness.loc14_29.2: = impl_witness %Y.impl_witness_table, @C.as.Y.impl(%OuterParam) [symbolic = %Y.impl_witness.loc14_29.2 (constants.%Y.impl_witness.94f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc14_15: = require_complete_type %Y_where.type [symbolic = %require_complete.loc14_15 (constants.%require_complete.806)] +// CHECK:STDOUT: %require_complete.loc14_15: = require_complete_type %Y_where.type [symbolic = %require_complete.loc14_15 (constants.%require_complete.9ed)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %C.ref as %.loc14_15 { // CHECK:STDOUT: %Y.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @C.as.Y.impl [concrete] -// CHECK:STDOUT: %Y.impl_witness.loc14_29.1: = impl_witness %Y.impl_witness_table, @C.as.Y.impl(constants.%OuterParam) [symbolic = %Y.impl_witness.loc14_29.2 (constants.%Y.impl_witness.499)] +// CHECK:STDOUT: %Y.impl_witness.loc14_29.1: = impl_witness %Y.impl_witness_table, @C.as.Y.impl(constants.%OuterParam) [symbolic = %Y.impl_witness.loc14_29.2 (constants.%Y.impl_witness.94f)] // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -632,52 +632,52 @@ fn F() { // CHECK:STDOUT: %OuterParam.loc6_23.1: %Z1.type = symbolic_binding OuterParam, 0 [symbolic = %OuterParam.loc6_23.1 (constants.%OuterParam)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam.loc6_23.1)> [symbolic = %Y.type (constants.%Y.type.244)] -// CHECK:STDOUT: %Outer.G.type: type = fn_type @Outer.G, @Outer(%OuterParam.loc6_23.1) [symbolic = %Outer.G.type (constants.%Outer.G.type.359)] -// CHECK:STDOUT: %Outer.G: @Outer.%Outer.G.type (%Outer.G.type.359) = struct_value () [symbolic = %Outer.G (constants.%Outer.G.f26)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%OuterParam.loc6_23.1) [symbolic = %C (constants.%C.b80)] +// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam.loc6_23.1)> [symbolic = %Y.type (constants.%Y.type.6da)] +// CHECK:STDOUT: %Outer.G.type: type = fn_type @Outer.G, @Outer(%OuterParam.loc6_23.1) [symbolic = %Outer.G.type (constants.%Outer.G.type.2cf)] +// CHECK:STDOUT: %Outer.G: @Outer.%Outer.G.type (%Outer.G.type.2cf) = struct_value () [symbolic = %Outer.G (constants.%Outer.G.f56)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%OuterParam.loc6_23.1) [symbolic = %C (constants.%C.147)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Y.decl: type = interface_decl @Y [symbolic = @Outer.%Y.type (constants.%Y.type.244)] {} {} -// CHECK:STDOUT: %Outer.G.decl: @Outer.%Outer.G.type (%Outer.G.type.359) = fn_decl @Outer.G [symbolic = @Outer.%Outer.G (constants.%Outer.G.f26)] { -// CHECK:STDOUT: %H.patt: @Outer.G.%pattern_type (%pattern_type.3e8) = symbolic_binding_pattern H, 1 [concrete] +// CHECK:STDOUT: %Y.decl: type = interface_decl @Y [symbolic = @Outer.%Y.type (constants.%Y.type.6da)] {} {} +// CHECK:STDOUT: %Outer.G.decl: @Outer.%Outer.G.type (%Outer.G.type.2cf) = fn_decl @Outer.G [symbolic = @Outer.%Outer.G (constants.%Outer.G.f56)] { +// CHECK:STDOUT: %H.patt: @Outer.G.%pattern_type (%pattern_type.68e) = symbolic_binding_pattern H, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc11_21.1: type = splice_block %.loc11_21.2 [symbolic = %Y_where.type (constants.%Y_where.type.1cf)] { +// CHECK:STDOUT: %.loc11_21.1: type = splice_block %.loc11_21.2 [symbolic = %Y_where.type (constants.%Y_where.type.9b0)] { // CHECK:STDOUT: %.Self.loc11_16: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] -// CHECK:STDOUT: %.loc11_19: type = specific_constant @Outer.%Y.decl, @Outer(constants.%OuterParam) [symbolic = %Y.type (constants.%Y.type.244)] -// CHECK:STDOUT: %Y.ref: type = name_ref Y, %.loc11_19 [symbolic = %Y.type (constants.%Y.type.244)] -// CHECK:STDOUT: %.Self.loc11_21.2: @Outer.G.%Y.type (%Y.type.244) = symbolic_binding .Self [symbolic = %.Self.loc11_21.1 (constants.%.Self.5f7)] -// CHECK:STDOUT: %.Self.ref: @Outer.G.%Y.type (%Y.type.244) = name_ref .Self, %.Self.loc11_21.2 [symbolic = %.Self.loc11_21.1 (constants.%.Self.5f7)] -// CHECK:STDOUT: %.Self.as_type.loc11_27.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc11_27.1 (constants.%.Self.as_type.da8)] -// CHECK:STDOUT: %.loc11_27.1: type = converted %.Self.ref, %.Self.as_type.loc11_27.2 [symbolic = %.Self.as_type.loc11_27.1 (constants.%.Self.as_type.da8)] -// CHECK:STDOUT: %.loc11_27.2: @Outer.G.%Y.assoc_type (%Y.assoc_type.fd4) = specific_constant @T.%assoc0, @Y.WithSelf(constants.%OuterParam, constants.%.Self.5f7) [symbolic = %assoc0 (constants.%assoc0.076)] -// CHECK:STDOUT: %T.ref: @Outer.G.%Y.assoc_type (%Y.assoc_type.fd4) = name_ref T, %.loc11_27.2 [symbolic = %assoc0 (constants.%assoc0.076)] -// CHECK:STDOUT: %impl.elem0.loc11_27.2: type = impl_witness_access constants.%Y.lookup_impl_witness.412, element0 [symbolic = %impl.elem0.loc11_27.1 (constants.%impl.elem0.b6c)] +// CHECK:STDOUT: %.loc11_19: type = specific_constant @Outer.%Y.decl, @Outer(constants.%OuterParam) [symbolic = %Y.type (constants.%Y.type.6da)] +// CHECK:STDOUT: %Y.ref: type = name_ref Y, %.loc11_19 [symbolic = %Y.type (constants.%Y.type.6da)] +// CHECK:STDOUT: %.Self.loc11_21.2: @Outer.G.%Y.type (%Y.type.6da) = symbolic_binding .Self [symbolic = %.Self.loc11_21.1 (constants.%.Self.566)] +// CHECK:STDOUT: %.Self.ref: @Outer.G.%Y.type (%Y.type.6da) = name_ref .Self, %.Self.loc11_21.2 [symbolic = %.Self.loc11_21.1 (constants.%.Self.566)] +// CHECK:STDOUT: %.Self.as_type.loc11_27.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc11_27.1 (constants.%.Self.as_type.eab)] +// CHECK:STDOUT: %.loc11_27.1: type = converted %.Self.ref, %.Self.as_type.loc11_27.2 [symbolic = %.Self.as_type.loc11_27.1 (constants.%.Self.as_type.eab)] +// CHECK:STDOUT: %.loc11_27.2: @Outer.G.%Y.assoc_type (%Y.assoc_type.9e3) = specific_constant @T.%assoc0, @Y.WithSelf(constants.%OuterParam, constants.%.Self.566) [symbolic = %assoc0 (constants.%assoc0.c2d)] +// CHECK:STDOUT: %T.ref: @Outer.G.%Y.assoc_type (%Y.assoc_type.9e3) = name_ref T, %.loc11_27.2 [symbolic = %assoc0 (constants.%assoc0.c2d)] +// CHECK:STDOUT: %impl.elem0.loc11_27.2: type = impl_witness_access constants.%Y.lookup_impl_witness.775, element0 [symbolic = %impl.elem0.loc11_27.1 (constants.%impl.elem0.231)] // CHECK:STDOUT: %.loc11_33.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc11_33.2: type = converted %.loc11_33.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc11_21.2: type = where_expr [symbolic = %Y_where.type (constants.%Y_where.type.1cf)] { +// CHECK:STDOUT: %.loc11_21.2: type = where_expr [symbolic = %Y_where.type (constants.%Y_where.type.9b0)] { // CHECK:STDOUT: requirement_base_facet_type %Y.ref // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc11_27.2, %.loc11_33.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %H.loc11_16.2: @Outer.G.%Y_where.type (%Y_where.type.1cf) = symbolic_binding H, 1 [symbolic = %H.loc11_16.1 (constants.%H)] +// CHECK:STDOUT: %H.loc11_16.2: @Outer.G.%Y_where.type (%Y_where.type.9b0) = symbolic_binding H, 1 [symbolic = %H.loc11_16.1 (constants.%H)] // CHECK:STDOUT: } -// CHECK:STDOUT: %C.decl: type = class_decl @C [symbolic = @Outer.%C (constants.%C.b80)] {} {} +// CHECK:STDOUT: %C.decl: type = class_decl @C [symbolic = @Outer.%C (constants.%C.147)] {} {} // CHECK:STDOUT: impl_decl @C.as.Y.impl [concrete] {} { -// CHECK:STDOUT: %.loc14_8: type = specific_constant @Outer.%C.decl, @Outer(constants.%OuterParam) [symbolic = %C (constants.%C.b80)] -// CHECK:STDOUT: %C.ref: type = name_ref C, %.loc14_8 [symbolic = %C (constants.%C.b80)] -// CHECK:STDOUT: %.loc14_13: type = specific_constant @Outer.%Y.decl, @Outer(constants.%OuterParam) [symbolic = %Y.type (constants.%Y.type.244)] -// CHECK:STDOUT: %Y.ref: type = name_ref Y, %.loc14_13 [symbolic = %Y.type (constants.%Y.type.244)] -// CHECK:STDOUT: %.Self.loc14_15.1: @C.as.Y.impl.%Y.type (%Y.type.244) = symbolic_binding .Self [symbolic = %.Self.loc14_15.2 (constants.%.Self.5f7)] -// CHECK:STDOUT: %.Self.ref: @C.as.Y.impl.%Y.type (%Y.type.244) = name_ref .Self, %.Self.loc14_15.1 [symbolic = %.Self.loc14_15.2 (constants.%.Self.5f7)] -// CHECK:STDOUT: %.Self.as_type.loc14_21.1: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc14_21.2 (constants.%.Self.as_type.da8)] -// CHECK:STDOUT: %.loc14_21.1: type = converted %.Self.ref, %.Self.as_type.loc14_21.1 [symbolic = %.Self.as_type.loc14_21.2 (constants.%.Self.as_type.da8)] -// CHECK:STDOUT: %.loc14_21.2: @C.as.Y.impl.%Y.assoc_type (%Y.assoc_type.fd4) = specific_constant @T.%assoc0, @Y.WithSelf(constants.%OuterParam, constants.%.Self.5f7) [symbolic = %assoc0 (constants.%assoc0.076)] -// CHECK:STDOUT: %T.ref: @C.as.Y.impl.%Y.assoc_type (%Y.assoc_type.fd4) = name_ref T, %.loc14_21.2 [symbolic = %assoc0 (constants.%assoc0.076)] -// CHECK:STDOUT: %impl.elem0.loc14_21.1: type = impl_witness_access constants.%Y.lookup_impl_witness.412, element0 [symbolic = %impl.elem0.loc14_21.2 (constants.%impl.elem0.b6c)] +// CHECK:STDOUT: %.loc14_8: type = specific_constant @Outer.%C.decl, @Outer(constants.%OuterParam) [symbolic = %C (constants.%C.147)] +// CHECK:STDOUT: %C.ref: type = name_ref C, %.loc14_8 [symbolic = %C (constants.%C.147)] +// CHECK:STDOUT: %.loc14_13: type = specific_constant @Outer.%Y.decl, @Outer(constants.%OuterParam) [symbolic = %Y.type (constants.%Y.type.6da)] +// CHECK:STDOUT: %Y.ref: type = name_ref Y, %.loc14_13 [symbolic = %Y.type (constants.%Y.type.6da)] +// CHECK:STDOUT: %.Self.loc14_15.1: @C.as.Y.impl.%Y.type (%Y.type.6da) = symbolic_binding .Self [symbolic = %.Self.loc14_15.2 (constants.%.Self.566)] +// CHECK:STDOUT: %.Self.ref: @C.as.Y.impl.%Y.type (%Y.type.6da) = name_ref .Self, %.Self.loc14_15.1 [symbolic = %.Self.loc14_15.2 (constants.%.Self.566)] +// CHECK:STDOUT: %.Self.as_type.loc14_21.1: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc14_21.2 (constants.%.Self.as_type.eab)] +// CHECK:STDOUT: %.loc14_21.1: type = converted %.Self.ref, %.Self.as_type.loc14_21.1 [symbolic = %.Self.as_type.loc14_21.2 (constants.%.Self.as_type.eab)] +// CHECK:STDOUT: %.loc14_21.2: @C.as.Y.impl.%Y.assoc_type (%Y.assoc_type.9e3) = specific_constant @T.%assoc0, @Y.WithSelf(constants.%OuterParam, constants.%.Self.566) [symbolic = %assoc0 (constants.%assoc0.c2d)] +// CHECK:STDOUT: %T.ref: @C.as.Y.impl.%Y.assoc_type (%Y.assoc_type.9e3) = name_ref T, %.loc14_21.2 [symbolic = %assoc0 (constants.%assoc0.c2d)] +// CHECK:STDOUT: %impl.elem0.loc14_21.1: type = impl_witness_access constants.%Y.lookup_impl_witness.775, element0 [symbolic = %impl.elem0.loc14_21.2 (constants.%impl.elem0.231)] // CHECK:STDOUT: %.loc14_27.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc14_27.2: type = converted %.loc14_27.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc14_15: type = where_expr [symbolic = %Y_where.type (constants.%Y_where.type.1cf)] { +// CHECK:STDOUT: %.loc14_15: type = where_expr [symbolic = %Y_where.type (constants.%Y_where.type.9b0)] { // CHECK:STDOUT: requirement_base_facet_type %Y.ref // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc14_21.1, %.loc14_27.2 // CHECK:STDOUT: } @@ -686,7 +686,7 @@ fn F() { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Outer.71d +// CHECK:STDOUT: .Self = constants.%Outer.e34 // CHECK:STDOUT: .Y = %Y.decl // CHECK:STDOUT: .G = %Outer.G.decl // CHECK:STDOUT: .C = %C.decl @@ -697,19 +697,19 @@ fn F() { // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Outer.G(@Outer.%OuterParam.loc6_23.2: %Z1.type, %H.loc11_16.2: @Outer.G.%Y_where.type (%Y_where.type.1cf)) { +// CHECK:STDOUT: generic fn @Outer.G(@Outer.%OuterParam.loc6_23.2: %Z1.type, %H.loc11_16.2: @Outer.G.%Y_where.type (%Y_where.type.9b0)) { // CHECK:STDOUT: %OuterParam: %Z1.type = symbolic_binding OuterParam, 0 [symbolic = %OuterParam (constants.%OuterParam)] -// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.244)] -// CHECK:STDOUT: %.Self.loc11_21.1: @Outer.G.%Y.type (%Y.type.244) = symbolic_binding .Self [symbolic = %.Self.loc11_21.1 (constants.%.Self.5f7)] -// CHECK:STDOUT: %require_complete: = require_complete_type %Y.type [symbolic = %require_complete (constants.%require_complete.9b4)] -// CHECK:STDOUT: %.Self.as_type.loc11_27.1: type = facet_access_type %.Self.loc11_21.1 [symbolic = %.Self.as_type.loc11_27.1 (constants.%.Self.as_type.da8)] -// CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.fd4)] -// CHECK:STDOUT: %assoc0: @Outer.G.%Y.assoc_type (%Y.assoc_type.fd4) = assoc_entity element0, @Y.WithSelf.%T [symbolic = %assoc0 (constants.%assoc0.076)] -// CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self.loc11_21.1, @Y, @Y(%OuterParam) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness.412)] -// CHECK:STDOUT: %impl.elem0.loc11_27.1: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_27.1 (constants.%impl.elem0.b6c)] -// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.loc11_27.1 = constants.%empty_tuple.type> [symbolic = %Y_where.type (constants.%Y_where.type.1cf)] -// CHECK:STDOUT: %H.loc11_16.1: @Outer.G.%Y_where.type (%Y_where.type.1cf) = symbolic_binding H, 1 [symbolic = %H.loc11_16.1 (constants.%H)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Y_where.type [symbolic = %pattern_type (constants.%pattern_type.3e8)] +// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.6da)] +// CHECK:STDOUT: %.Self.loc11_21.1: @Outer.G.%Y.type (%Y.type.6da) = symbolic_binding .Self [symbolic = %.Self.loc11_21.1 (constants.%.Self.566)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Y.type [symbolic = %require_complete (constants.%require_complete.ab6)] +// CHECK:STDOUT: %.Self.as_type.loc11_27.1: type = facet_access_type %.Self.loc11_21.1 [symbolic = %.Self.as_type.loc11_27.1 (constants.%.Self.as_type.eab)] +// CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.9e3)] +// CHECK:STDOUT: %assoc0: @Outer.G.%Y.assoc_type (%Y.assoc_type.9e3) = assoc_entity element0, @Y.WithSelf.%T [symbolic = %assoc0 (constants.%assoc0.c2d)] +// CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self.loc11_21.1, @Y, @Y(%OuterParam) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness.775)] +// CHECK:STDOUT: %impl.elem0.loc11_27.1: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_27.1 (constants.%impl.elem0.231)] +// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.loc11_27.1 = constants.%empty_tuple.type> [symbolic = %Y_where.type (constants.%Y_where.type.9b0)] +// CHECK:STDOUT: %H.loc11_16.1: @Outer.G.%Y_where.type (%Y_where.type.9b0) = symbolic_binding H, 1 [symbolic = %H.loc11_16.1 (constants.%H)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Y_where.type [symbolic = %pattern_type (constants.%pattern_type.68e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -725,48 +725,48 @@ fn F() { // CHECK:STDOUT: %.loc21_10: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %Z1.ref.loc21_16: type = name_ref Z1, file.%Z1.decl [concrete = constants.%Z1.type] // CHECK:STDOUT: %Z2.ref.loc21_21: type = name_ref Z2, file.%Z2.decl [concrete = constants.%Z2.type] -// CHECK:STDOUT: %impl.elem0.loc21_19: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc21_19: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method.loc21_19: = bound_method %Z1.ref.loc21_16, %impl.elem0.loc21_19 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc21_19: init type = call %bound_method.loc21_19(%Z1.ref.loc21_16, %Z2.ref.loc21_21) [concrete = constants.%facet_type] // CHECK:STDOUT: %.loc21_23.1: type = value_of_initializer %type.as.BitAndWith.impl.Op.call.loc21_19 [concrete = constants.%facet_type] // CHECK:STDOUT: %.loc21_23.2: type = converted %type.as.BitAndWith.impl.Op.call.loc21_19, %.loc21_23.1 [concrete = constants.%facet_type] -// CHECK:STDOUT: %facet_value.loc21_12: %facet_type = facet_value constants.%empty_tuple.type, (constants.%Z1.impl_witness, constants.%Z2.impl_witness) [concrete = constants.%facet_value.1c9] -// CHECK:STDOUT: %.loc21_12: %facet_type = converted %.loc21_10, %facet_value.loc21_12 [concrete = constants.%facet_value.1c9] +// CHECK:STDOUT: %facet_value.loc21_12: %facet_type = facet_value constants.%empty_tuple.type, (constants.%Z1.impl_witness, constants.%Z2.impl_witness) [concrete = constants.%facet_value.af0] +// CHECK:STDOUT: %.loc21_12: %facet_type = converted %.loc21_10, %facet_value.loc21_12 [concrete = constants.%facet_value.af0] // CHECK:STDOUT: %as_type.loc21_24: type = facet_access_type %.loc21_12 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %Z1.facet.loc21_24: %Z1.type = facet_value %as_type.loc21_24, (constants.%Z1.impl_witness) [concrete = constants.%Z1.facet] // CHECK:STDOUT: %.loc21_24: %Z1.type = converted %.loc21_12, %Z1.facet.loc21_24 [concrete = constants.%Z1.facet] -// CHECK:STDOUT: %Outer.loc21_24: type = class_type @Outer, @Outer(constants.%Z1.facet) [concrete = constants.%Outer.d69] -// CHECK:STDOUT: %.loc21_25: %Outer.G.type.9fe = specific_constant @Outer.%Outer.G.decl, @Outer(constants.%Z1.facet) [concrete = constants.%Outer.G.f31] -// CHECK:STDOUT: %G.ref: %Outer.G.type.9fe = name_ref G, %.loc21_25 [concrete = constants.%Outer.G.f31] +// CHECK:STDOUT: %Outer.loc21_24: type = class_type @Outer, @Outer(constants.%Z1.facet) [concrete = constants.%Outer.22e] +// CHECK:STDOUT: %.loc21_25: %Outer.G.type.8ce = specific_constant @Outer.%Outer.G.decl, @Outer(constants.%Z1.facet) [concrete = constants.%Outer.G.20a] +// CHECK:STDOUT: %G.ref: %Outer.G.type.8ce = name_ref G, %.loc21_25 [concrete = constants.%Outer.G.20a] // CHECK:STDOUT: %Outer.ref.loc21_28: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %.loc21_35: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %Z1.ref.loc21_41: type = name_ref Z1, file.%Z1.decl [concrete = constants.%Z1.type] // CHECK:STDOUT: %Z2.ref.loc21_46: type = name_ref Z2, file.%Z2.decl [concrete = constants.%Z2.type] -// CHECK:STDOUT: %impl.elem0.loc21_44: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc21_44: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method.loc21_44: = bound_method %Z1.ref.loc21_41, %impl.elem0.loc21_44 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc21_44: init type = call %bound_method.loc21_44(%Z1.ref.loc21_41, %Z2.ref.loc21_46) [concrete = constants.%facet_type] // CHECK:STDOUT: %.loc21_48.1: type = value_of_initializer %type.as.BitAndWith.impl.Op.call.loc21_44 [concrete = constants.%facet_type] // CHECK:STDOUT: %.loc21_48.2: type = converted %type.as.BitAndWith.impl.Op.call.loc21_44, %.loc21_48.1 [concrete = constants.%facet_type] -// CHECK:STDOUT: %facet_value.loc21_37: %facet_type = facet_value constants.%empty_tuple.type, (constants.%Z1.impl_witness, constants.%Z2.impl_witness) [concrete = constants.%facet_value.1c9] -// CHECK:STDOUT: %.loc21_37: %facet_type = converted %.loc21_35, %facet_value.loc21_37 [concrete = constants.%facet_value.1c9] +// CHECK:STDOUT: %facet_value.loc21_37: %facet_type = facet_value constants.%empty_tuple.type, (constants.%Z1.impl_witness, constants.%Z2.impl_witness) [concrete = constants.%facet_value.af0] +// CHECK:STDOUT: %.loc21_37: %facet_type = converted %.loc21_35, %facet_value.loc21_37 [concrete = constants.%facet_value.af0] // CHECK:STDOUT: %as_type.loc21_49: type = facet_access_type %.loc21_37 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %Z1.facet.loc21_49: %Z1.type = facet_value %as_type.loc21_49, (constants.%Z1.impl_witness) [concrete = constants.%Z1.facet] // CHECK:STDOUT: %.loc21_49: %Z1.type = converted %.loc21_37, %Z1.facet.loc21_49 [concrete = constants.%Z1.facet] -// CHECK:STDOUT: %Outer.loc21_49: type = class_type @Outer, @Outer(constants.%Z1.facet) [concrete = constants.%Outer.d69] -// CHECK:STDOUT: %.loc21_50: type = specific_constant @Outer.%C.decl, @Outer(constants.%Z1.facet) [concrete = constants.%C.4a0] -// CHECK:STDOUT: %C.ref: type = name_ref C, %.loc21_50 [concrete = constants.%C.4a0] -// CHECK:STDOUT: %facet_value.loc21_52: %Y_where.type.48f = facet_value constants.%C.4a0, (constants.%Y.impl_witness.6ba) [concrete = constants.%facet_value.4ef] -// CHECK:STDOUT: %.loc21_52: %Y_where.type.48f = converted constants.%C.4a0, %facet_value.loc21_52 [concrete = constants.%facet_value.4ef] -// CHECK:STDOUT: %Outer.G.specific_fn: = specific_function %G.ref, @Outer.G(constants.%Z1.facet, constants.%facet_value.4ef) [concrete = constants.%Outer.G.specific_fn] +// CHECK:STDOUT: %Outer.loc21_49: type = class_type @Outer, @Outer(constants.%Z1.facet) [concrete = constants.%Outer.22e] +// CHECK:STDOUT: %.loc21_50: type = specific_constant @Outer.%C.decl, @Outer(constants.%Z1.facet) [concrete = constants.%C.5e2] +// CHECK:STDOUT: %C.ref: type = name_ref C, %.loc21_50 [concrete = constants.%C.5e2] +// CHECK:STDOUT: %facet_value.loc21_52: %Y_where.type.948 = facet_value constants.%C.5e2, (constants.%Y.impl_witness.056) [concrete = constants.%facet_value.1c3] +// CHECK:STDOUT: %.loc21_52: %Y_where.type.948 = converted constants.%C.5e2, %facet_value.loc21_52 [concrete = constants.%facet_value.1c3] +// CHECK:STDOUT: %Outer.G.specific_fn: = specific_function %G.ref, @Outer.G(constants.%Z1.facet, constants.%facet_value.1c3) [concrete = constants.%Outer.G.specific_fn] // CHECK:STDOUT: %Outer.G.call: init %empty_tuple.type = call %Outer.G.specific_fn() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z1.WithSelf(constants.%Self.9d0) { +// CHECK:STDOUT: specific @Z1.WithSelf(constants.%Self.bc4) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z2.WithSelf(constants.%Self.67a) { +// CHECK:STDOUT: specific @Z2.WithSelf(constants.%Self.5ad) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -774,70 +774,70 @@ fn F() { // CHECK:STDOUT: %OuterParam.loc6_23.1 => constants.%OuterParam // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Y.type => constants.%Y.type.244 -// CHECK:STDOUT: %Outer.G.type => constants.%Outer.G.type.359 -// CHECK:STDOUT: %Outer.G => constants.%Outer.G.f26 -// CHECK:STDOUT: %C => constants.%C.b80 +// CHECK:STDOUT: %Y.type => constants.%Y.type.6da +// CHECK:STDOUT: %Outer.G.type => constants.%Outer.G.type.2cf +// CHECK:STDOUT: %Outer.G => constants.%Outer.G.f56 +// CHECK:STDOUT: %C => constants.%C.147 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y(constants.%OuterParam) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam => constants.%OuterParam -// CHECK:STDOUT: %Y.type => constants.%Y.type.244 -// CHECK:STDOUT: %Self.loc7_15.2 => constants.%Self.5ed +// CHECK:STDOUT: %Y.type => constants.%Y.type.6da +// CHECK:STDOUT: %Self.loc7_15.2 => constants.%Self.b90 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%OuterParam, constants.%Self.5ed) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%OuterParam, constants.%Self.b90) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam => constants.%OuterParam -// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.fd4 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.076 +// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.9e3 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c2d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%OuterParam, constants.%.Self.5f7) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%OuterParam, constants.%.Self.566) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam => constants.%OuterParam -// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.fd4 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.076 +// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.9e3 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c2d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer.G(constants.%OuterParam, constants.%H) { // CHECK:STDOUT: %OuterParam => constants.%OuterParam -// CHECK:STDOUT: %Y.type => constants.%Y.type.244 -// CHECK:STDOUT: %.Self.loc11_21.1 => constants.%.Self.5f7 -// CHECK:STDOUT: %require_complete => constants.%require_complete.9b4 -// CHECK:STDOUT: %.Self.as_type.loc11_27.1 => constants.%.Self.as_type.da8 -// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.fd4 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.076 -// CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.412 -// CHECK:STDOUT: %impl.elem0.loc11_27.1 => constants.%impl.elem0.b6c -// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.1cf +// CHECK:STDOUT: %Y.type => constants.%Y.type.6da +// CHECK:STDOUT: %.Self.loc11_21.1 => constants.%.Self.566 +// CHECK:STDOUT: %require_complete => constants.%require_complete.ab6 +// CHECK:STDOUT: %.Self.as_type.loc11_27.1 => constants.%.Self.as_type.eab +// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.9e3 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c2d +// CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.775 +// CHECK:STDOUT: %impl.elem0.loc11_27.1 => constants.%impl.elem0.231 +// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.9b0 // CHECK:STDOUT: %H.loc11_16.1 => constants.%H -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3e8 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.68e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%OuterParam) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.Y.impl(constants.%OuterParam) { // CHECK:STDOUT: %OuterParam => constants.%OuterParam -// CHECK:STDOUT: %C => constants.%C.b80 -// CHECK:STDOUT: %Y.type => constants.%Y.type.244 -// CHECK:STDOUT: %.Self.loc14_15.2 => constants.%.Self.5f7 -// CHECK:STDOUT: %require_complete.loc14_21 => constants.%require_complete.9b4 -// CHECK:STDOUT: %.Self.as_type.loc14_21.2 => constants.%.Self.as_type.da8 -// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.fd4 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.076 -// CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.412 -// CHECK:STDOUT: %impl.elem0.loc14_21.2 => constants.%impl.elem0.b6c -// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.1cf -// CHECK:STDOUT: %Y.impl_witness.loc14_29.2 => constants.%Y.impl_witness.499 +// CHECK:STDOUT: %C => constants.%C.147 +// CHECK:STDOUT: %Y.type => constants.%Y.type.6da +// CHECK:STDOUT: %.Self.loc14_15.2 => constants.%.Self.566 +// CHECK:STDOUT: %require_complete.loc14_21 => constants.%require_complete.ab6 +// CHECK:STDOUT: %.Self.as_type.loc14_21.2 => constants.%.Self.as_type.eab +// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.9e3 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c2d +// CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.775 +// CHECK:STDOUT: %impl.elem0.loc14_21.2 => constants.%impl.elem0.231 +// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.9b0 +// CHECK:STDOUT: %Y.impl_witness.loc14_29.2 => constants.%Y.impl_witness.94f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%OuterParam, constants.%Y.facet.00a) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%OuterParam, constants.%Y.facet.93f) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam => constants.%OuterParam -// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.fd4 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.076 +// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.9e3 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c2d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z1.WithSelf(constants.%Z1.facet) { @@ -852,59 +852,59 @@ fn F() { // CHECK:STDOUT: %OuterParam.loc6_23.1 => constants.%Z1.facet // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Y.type => constants.%Y.type.52f -// CHECK:STDOUT: %Outer.G.type => constants.%Outer.G.type.9fe -// CHECK:STDOUT: %Outer.G => constants.%Outer.G.f31 -// CHECK:STDOUT: %C => constants.%C.4a0 +// CHECK:STDOUT: %Y.type => constants.%Y.type.b7c +// CHECK:STDOUT: %Outer.G.type => constants.%Outer.G.type.8ce +// CHECK:STDOUT: %Outer.G => constants.%Outer.G.20a +// CHECK:STDOUT: %C => constants.%C.5e2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y(constants.%Z1.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam => constants.%Z1.facet -// CHECK:STDOUT: %Y.type => constants.%Y.type.52f -// CHECK:STDOUT: %Self.loc7_15.2 => constants.%Self.623 +// CHECK:STDOUT: %Y.type => constants.%Y.type.b7c +// CHECK:STDOUT: %Self.loc7_15.2 => constants.%Self.0e0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%Z1.facet) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.Y.impl(constants.%Z1.facet) { // CHECK:STDOUT: %OuterParam => constants.%Z1.facet -// CHECK:STDOUT: %C => constants.%C.4a0 -// CHECK:STDOUT: %Y.type => constants.%Y.type.52f -// CHECK:STDOUT: %.Self.loc14_15.2 => constants.%.Self.b03 -// CHECK:STDOUT: %require_complete.loc14_21 => constants.%complete_type.a1f -// CHECK:STDOUT: %.Self.as_type.loc14_21.2 => constants.%.Self.as_type.bfc -// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.c4e -// CHECK:STDOUT: %assoc0 => constants.%assoc0.654 -// CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.0c6 -// CHECK:STDOUT: %impl.elem0.loc14_21.2 => constants.%impl.elem0.a26 -// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.48f -// CHECK:STDOUT: %Y.impl_witness.loc14_29.2 => constants.%Y.impl_witness.6ba +// CHECK:STDOUT: %C => constants.%C.5e2 +// CHECK:STDOUT: %Y.type => constants.%Y.type.b7c +// CHECK:STDOUT: %.Self.loc14_15.2 => constants.%.Self.42f +// CHECK:STDOUT: %require_complete.loc14_21 => constants.%complete_type.c4c +// CHECK:STDOUT: %.Self.as_type.loc14_21.2 => constants.%.Self.as_type.579 +// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.d53 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.ef6 +// CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.e27 +// CHECK:STDOUT: %impl.elem0.loc14_21.2 => constants.%impl.elem0.801 +// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.948 +// CHECK:STDOUT: %Y.impl_witness.loc14_29.2 => constants.%Y.impl_witness.056 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc14_15 => constants.%complete_type.fe0 +// CHECK:STDOUT: %require_complete.loc14_15 => constants.%complete_type.8f5 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%Z1.facet, constants.%Self.5ed) { +// CHECK:STDOUT: specific @Y.WithSelf(constants.%Z1.facet, constants.%Self.b90) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam => constants.%Z1.facet -// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.c4e -// CHECK:STDOUT: %assoc0 => constants.%assoc0.654 +// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.d53 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.ef6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Outer.G(constants.%Z1.facet, constants.%facet_value.4ef) { +// CHECK:STDOUT: specific @Outer.G(constants.%Z1.facet, constants.%facet_value.1c3) { // CHECK:STDOUT: %OuterParam => constants.%Z1.facet -// CHECK:STDOUT: %Y.type => constants.%Y.type.52f -// CHECK:STDOUT: %.Self.loc11_21.1 => constants.%.Self.b03 -// CHECK:STDOUT: %require_complete => constants.%complete_type.a1f -// CHECK:STDOUT: %.Self.as_type.loc11_27.1 => constants.%.Self.as_type.bfc -// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.c4e -// CHECK:STDOUT: %assoc0 => constants.%assoc0.654 -// CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.0c6 -// CHECK:STDOUT: %impl.elem0.loc11_27.1 => constants.%impl.elem0.a26 -// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.48f -// CHECK:STDOUT: %H.loc11_16.1 => constants.%facet_value.4ef -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.279 +// CHECK:STDOUT: %Y.type => constants.%Y.type.b7c +// CHECK:STDOUT: %.Self.loc11_21.1 => constants.%.Self.42f +// CHECK:STDOUT: %require_complete => constants.%complete_type.c4c +// CHECK:STDOUT: %.Self.as_type.loc11_27.1 => constants.%.Self.as_type.579 +// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.d53 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.ef6 +// CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.e27 +// CHECK:STDOUT: %impl.elem0.loc11_27.1 => constants.%impl.elem0.801 +// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.948 +// CHECK:STDOUT: %H.loc11_16.1 => constants.%facet_value.1c3 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4ae // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon b/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon index 916a131af3cf..4e3dabea287f 100644 --- a/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon +++ b/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon @@ -101,54 +101,54 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Z.type.8a6: type = generic_interface_type @Z [concrete] +// CHECK:STDOUT: %Z.type.c39: type = generic_interface_type @Z [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Z.generic: %Z.type.8a6 = struct_value () [concrete] -// CHECK:STDOUT: %Z.type.284: type = facet_type <@Z, @Z(%T.67d)> [symbolic] -// CHECK:STDOUT: %Self.f76: %Z.type.284 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Z.assoc_type.e20: type = assoc_entity_type @Z, @Z(%T.67d) [symbolic] -// CHECK:STDOUT: %assoc0.5be: %Z.assoc_type.e20 = assoc_entity element0, @Z.WithSelf.%X [symbolic] +// CHECK:STDOUT: %Z.generic: %Z.type.c39 = struct_value () [concrete] +// CHECK:STDOUT: %Z.type.924: type = facet_type <@Z, @Z(%T.67d)> [symbolic] +// CHECK:STDOUT: %Self.21f: %Z.type.924 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Z.assoc_type.496: type = assoc_entity_type @Z, @Z(%T.67d) [symbolic] +// CHECK:STDOUT: %assoc0.36e: %Z.assoc_type.496 = assoc_entity element0, @Z.WithSelf.%X [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %S: type = symbolic_binding S, 1 [symbolic] -// CHECK:STDOUT: %Z.type.6ef: type = facet_type <@Z, @Z(%S)> [symbolic] -// CHECK:STDOUT: %.Self.d86: %Z.type.6ef = symbolic_binding .Self [symbolic] -// CHECK:STDOUT: %Self.d23: %Z.type.6ef = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Z.assoc_type.795: type = assoc_entity_type @Z, @Z(%S) [symbolic] -// CHECK:STDOUT: %assoc0.281: %Z.assoc_type.795 = assoc_entity element0, @Z.WithSelf.%X [symbolic] -// CHECK:STDOUT: %require_complete.c80: = require_complete_type %Z.type.6ef [symbolic] -// CHECK:STDOUT: %.Self.as_type.1a7: type = facet_access_type %.Self.d86 [symbolic] -// CHECK:STDOUT: %Z.lookup_impl_witness.18f: = lookup_impl_witness %.Self.d86, @Z, @Z(%S) [symbolic] -// CHECK:STDOUT: %impl.elem0.6c0: type = impl_witness_access %Z.lookup_impl_witness.18f, element0 [symbolic] +// CHECK:STDOUT: %Z.type.78b: type = facet_type <@Z, @Z(%S)> [symbolic] +// CHECK:STDOUT: %.Self.a97: %Z.type.78b = symbolic_binding .Self [symbolic] +// CHECK:STDOUT: %Self.1a9: %Z.type.78b = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Z.assoc_type.083: type = assoc_entity_type @Z, @Z(%S) [symbolic] +// CHECK:STDOUT: %assoc0.c53: %Z.assoc_type.083 = assoc_entity element0, @Z.WithSelf.%X [symbolic] +// CHECK:STDOUT: %require_complete.291: = require_complete_type %Z.type.78b [symbolic] +// CHECK:STDOUT: %.Self.as_type.120: type = facet_access_type %.Self.a97 [symbolic] +// CHECK:STDOUT: %Z.lookup_impl_witness.8c8: = lookup_impl_witness %.Self.a97, @Z, @Z(%S) [symbolic] +// CHECK:STDOUT: %impl.elem0.88a: type = impl_witness_access %Z.lookup_impl_witness.8c8, element0 [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %Z_where.type.d8a: type = facet_type <@Z, @Z(%S) where %impl.elem0.6c0 = %empty_tuple.type> [symbolic] -// CHECK:STDOUT: %Z.impl_witness.62a: = impl_witness @T.as.Z.impl.e64.%Z.impl_witness_table, @T.as.Z.impl.e64(%T.67d, %S) [symbolic] -// CHECK:STDOUT: %require_complete.310: = require_complete_type %Z_where.type.d8a [symbolic] -// CHECK:STDOUT: %Z.facet.59a: %Z.type.6ef = facet_value %T.67d, (%Z.impl_witness.62a) [symbolic] -// CHECK:STDOUT: %Z.type.2d0: type = facet_type <@Z, @Z(%C)> [concrete] -// CHECK:STDOUT: %.Self.e6c: %Z.type.2d0 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Self.f16: %Z.type.2d0 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Z.assoc_type.8db: type = assoc_entity_type @Z, @Z(%C) [concrete] -// CHECK:STDOUT: %assoc0.f02: %Z.assoc_type.8db = assoc_entity element0, @Z.WithSelf.%X [concrete] -// CHECK:STDOUT: %.Self.as_type.e4e: type = facet_access_type %.Self.e6c [symbolic_self] -// CHECK:STDOUT: %Z.lookup_impl_witness.c21: = lookup_impl_witness %.Self.e6c, @Z, @Z(%C) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.fe4: type = impl_witness_access %Z.lookup_impl_witness.c21, element0 [symbolic_self] -// CHECK:STDOUT: %Z_where.type.346: type = facet_type <@Z, @Z(%C) where %impl.elem0.fe4 = %T.67d> [symbolic] -// CHECK:STDOUT: %Z.impl_witness.61a: = impl_witness @T.as.Z.impl.b90.%Z.impl_witness_table, @T.as.Z.impl.b90(%T.67d) [symbolic] -// CHECK:STDOUT: %require_complete.3d6: = require_complete_type %Z_where.type.346 [symbolic] -// CHECK:STDOUT: %Z.facet.587: %Z.type.2d0 = facet_value %T.67d, (%Z.impl_witness.61a) [symbolic] -// CHECK:STDOUT: %pattern_type.59a: type = pattern_type %Z.type.2d0 [concrete] -// CHECK:STDOUT: %T.196: %Z.type.2d0 = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.196 [symbolic] -// CHECK:STDOUT: %pattern_type.56b: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %Z_where.type.ee4: type = facet_type <@Z, @Z(%S) where %impl.elem0.88a = %empty_tuple.type> [symbolic] +// CHECK:STDOUT: %Z.impl_witness.cba: = impl_witness @T.as.Z.impl.9ba.%Z.impl_witness_table, @T.as.Z.impl.9ba(%T.67d, %S) [symbolic] +// CHECK:STDOUT: %require_complete.968: = require_complete_type %Z_where.type.ee4 [symbolic] +// CHECK:STDOUT: %Z.facet.952: %Z.type.78b = facet_value %T.67d, (%Z.impl_witness.cba) [symbolic] +// CHECK:STDOUT: %Z.type.963: type = facet_type <@Z, @Z(%C)> [concrete] +// CHECK:STDOUT: %.Self.175: %Z.type.963 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Self.ae2: %Z.type.963 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Z.assoc_type.f4d: type = assoc_entity_type @Z, @Z(%C) [concrete] +// CHECK:STDOUT: %assoc0.169: %Z.assoc_type.f4d = assoc_entity element0, @Z.WithSelf.%X [concrete] +// CHECK:STDOUT: %.Self.as_type.dac: type = facet_access_type %.Self.175 [symbolic_self] +// CHECK:STDOUT: %Z.lookup_impl_witness.46e: = lookup_impl_witness %.Self.175, @Z, @Z(%C) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.9ca: type = impl_witness_access %Z.lookup_impl_witness.46e, element0 [symbolic_self] +// CHECK:STDOUT: %Z_where.type.18c: type = facet_type <@Z, @Z(%C) where %impl.elem0.9ca = %T.67d> [symbolic] +// CHECK:STDOUT: %Z.impl_witness.fc3: = impl_witness @T.as.Z.impl.61e.%Z.impl_witness_table, @T.as.Z.impl.61e(%T.67d) [symbolic] +// CHECK:STDOUT: %require_complete.9f7: = require_complete_type %Z_where.type.18c [symbolic] +// CHECK:STDOUT: %Z.facet.fa5: %Z.type.963 = facet_value %T.67d, (%Z.impl_witness.fc3) [symbolic] +// CHECK:STDOUT: %pattern_type.d7e: type = pattern_type %Z.type.963 [concrete] +// CHECK:STDOUT: %T.4b3: %Z.type.963 = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.4b3 [symbolic] +// CHECK:STDOUT: %pattern_type.d37: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.c09: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %Z_where.type.c40: type = facet_type <@Z, @Z(%C) where %impl.elem0.fe4 = %T.as_type> [symbolic] -// CHECK:STDOUT: %Z.impl_witness.f75: = impl_witness @T.as.Z.impl.b90.%Z.impl_witness_table, @T.as.Z.impl.b90(%T.as_type) [symbolic] -// CHECK:STDOUT: %require_complete.386: = require_complete_type %Z_where.type.c40 [symbolic] -// CHECK:STDOUT: %.639: require_specific_def_type = require_specific_def @T.as.Z.impl.b90(%T.as_type) [symbolic] +// CHECK:STDOUT: %require_complete.df7: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %Z_where.type.c07: type = facet_type <@Z, @Z(%C) where %impl.elem0.9ca = %T.as_type> [symbolic] +// CHECK:STDOUT: %Z.impl_witness.597: = impl_witness @T.as.Z.impl.61e.%Z.impl_witness_table, @T.as.Z.impl.61e(%T.as_type) [symbolic] +// CHECK:STDOUT: %require_complete.c7b: = require_complete_type %Z_where.type.c07 [symbolic] +// CHECK:STDOUT: %.c6c: require_specific_def_type = require_specific_def @T.as.Z.impl.61e(%T.as_type) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -166,7 +166,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %Z.decl: %Z.type.8a6 = interface_decl @Z [concrete = constants.%Z.generic] { +// CHECK:STDOUT: %Z.decl: %Z.type.c39 = interface_decl @Z [concrete = constants.%Z.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc3_17.1: type = splice_block %.loc3_17.2 [concrete = type] { @@ -176,24 +176,24 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %T.loc3_14.2: type = symbolic_binding T, 0 [symbolic = %T.loc3_14.1 (constants.%T.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: impl_decl @T.as.Z.impl.e64 [concrete] { +// CHECK:STDOUT: impl_decl @T.as.Z.impl.9ba [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %S.patt: %pattern_type.98f = symbolic_binding_pattern S, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc9_15.1 [symbolic = %T.loc9_15.2 (constants.%T.67d)] -// CHECK:STDOUT: %Z.ref: %Z.type.8a6 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] +// CHECK:STDOUT: %Z.ref: %Z.type.c39 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] // CHECK:STDOUT: %S.ref: type = name_ref S, %S.loc9_25.1 [symbolic = %S.loc9_25.2 (constants.%S)] -// CHECK:STDOUT: %Z.type.loc9_42.1: type = facet_type <@Z, @Z(constants.%S)> [symbolic = %Z.type.loc9_42.2 (constants.%Z.type.6ef)] -// CHECK:STDOUT: %.Self.loc9_44.1: @T.as.Z.impl.e64.%Z.type.loc9_42.2 (%Z.type.6ef) = symbolic_binding .Self [symbolic = %.Self.loc9_44.2 (constants.%.Self.d86)] -// CHECK:STDOUT: %.Self.ref: @T.as.Z.impl.e64.%Z.type.loc9_42.2 (%Z.type.6ef) = name_ref .Self, %.Self.loc9_44.1 [symbolic = %.Self.loc9_44.2 (constants.%.Self.d86)] -// CHECK:STDOUT: %.Self.as_type.loc9_50.1: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc9_50.2 (constants.%.Self.as_type.1a7)] -// CHECK:STDOUT: %.loc9_50.1: type = converted %.Self.ref, %.Self.as_type.loc9_50.1 [symbolic = %.Self.as_type.loc9_50.2 (constants.%.Self.as_type.1a7)] -// CHECK:STDOUT: %.loc9_50.2: @T.as.Z.impl.e64.%Z.assoc_type (%Z.assoc_type.795) = specific_constant @X.%assoc0, @Z.WithSelf(constants.%S, constants.%.Self.d86) [symbolic = %assoc0 (constants.%assoc0.281)] -// CHECK:STDOUT: %X.ref: @T.as.Z.impl.e64.%Z.assoc_type (%Z.assoc_type.795) = name_ref X, %.loc9_50.2 [symbolic = %assoc0 (constants.%assoc0.281)] -// CHECK:STDOUT: %impl.elem0.loc9_50.1: type = impl_witness_access constants.%Z.lookup_impl_witness.18f, element0 [symbolic = %impl.elem0.loc9_50.2 (constants.%impl.elem0.6c0)] +// CHECK:STDOUT: %Z.type.loc9_42.1: type = facet_type <@Z, @Z(constants.%S)> [symbolic = %Z.type.loc9_42.2 (constants.%Z.type.78b)] +// CHECK:STDOUT: %.Self.loc9_44.1: @T.as.Z.impl.9ba.%Z.type.loc9_42.2 (%Z.type.78b) = symbolic_binding .Self [symbolic = %.Self.loc9_44.2 (constants.%.Self.a97)] +// CHECK:STDOUT: %.Self.ref: @T.as.Z.impl.9ba.%Z.type.loc9_42.2 (%Z.type.78b) = name_ref .Self, %.Self.loc9_44.1 [symbolic = %.Self.loc9_44.2 (constants.%.Self.a97)] +// CHECK:STDOUT: %.Self.as_type.loc9_50.1: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc9_50.2 (constants.%.Self.as_type.120)] +// CHECK:STDOUT: %.loc9_50.1: type = converted %.Self.ref, %.Self.as_type.loc9_50.1 [symbolic = %.Self.as_type.loc9_50.2 (constants.%.Self.as_type.120)] +// CHECK:STDOUT: %.loc9_50.2: @T.as.Z.impl.9ba.%Z.assoc_type (%Z.assoc_type.083) = specific_constant @X.%assoc0, @Z.WithSelf(constants.%S, constants.%.Self.a97) [symbolic = %assoc0 (constants.%assoc0.c53)] +// CHECK:STDOUT: %X.ref: @T.as.Z.impl.9ba.%Z.assoc_type (%Z.assoc_type.083) = name_ref X, %.loc9_50.2 [symbolic = %assoc0 (constants.%assoc0.c53)] +// CHECK:STDOUT: %impl.elem0.loc9_50.1: type = impl_witness_access constants.%Z.lookup_impl_witness.8c8, element0 [symbolic = %impl.elem0.loc9_50.2 (constants.%impl.elem0.88a)] // CHECK:STDOUT: %.loc9_56.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc9_56.2: type = converted %.loc9_56.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc9_44: type = where_expr [symbolic = %Z_where.type (constants.%Z_where.type.d8a)] { +// CHECK:STDOUT: %.loc9_44: type = where_expr [symbolic = %Z_where.type (constants.%Z_where.type.ee4)] { // CHECK:STDOUT: requirement_base_facet_type %Z.type.loc9_42.1 // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc9_50.1, %.loc9_56.2 // CHECK:STDOUT: } @@ -208,22 +208,22 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: %S.loc9_25.1: type = symbolic_binding S, 1 [symbolic = %S.loc9_25.2 (constants.%S)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.as.Z.impl.b90 [concrete] { +// CHECK:STDOUT: impl_decl @T.as.Z.impl.61e [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc11_30: type = name_ref T, %T.loc11_21.1 [symbolic = %T.loc11_21.2 (constants.%T.67d)] -// CHECK:STDOUT: %Z.ref: %Z.type.8a6 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] +// CHECK:STDOUT: %Z.ref: %Z.type.c39 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(constants.%C)> [concrete = constants.%Z.type.2d0] -// CHECK:STDOUT: %.Self.loc11_40: %Z.type.2d0 = symbolic_binding .Self [symbolic_self = constants.%.Self.e6c] -// CHECK:STDOUT: %.Self.ref: %Z.type.2d0 = name_ref .Self, %.Self.loc11_40 [symbolic_self = constants.%.Self.e6c] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.e4e] -// CHECK:STDOUT: %.loc11_46.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.e4e] -// CHECK:STDOUT: %.loc11_46.2: %Z.assoc_type.8db = specific_constant @X.%assoc0, @Z.WithSelf(constants.%C, constants.%.Self.e6c) [concrete = constants.%assoc0.f02] -// CHECK:STDOUT: %X.ref: %Z.assoc_type.8db = name_ref X, %.loc11_46.2 [concrete = constants.%assoc0.f02] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.lookup_impl_witness.c21, element0 [symbolic_self = constants.%impl.elem0.fe4] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(constants.%C)> [concrete = constants.%Z.type.963] +// CHECK:STDOUT: %.Self.loc11_40: %Z.type.963 = symbolic_binding .Self [symbolic_self = constants.%.Self.175] +// CHECK:STDOUT: %.Self.ref: %Z.type.963 = name_ref .Self, %.Self.loc11_40 [symbolic_self = constants.%.Self.175] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.dac] +// CHECK:STDOUT: %.loc11_46.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.dac] +// CHECK:STDOUT: %.loc11_46.2: %Z.assoc_type.f4d = specific_constant @X.%assoc0, @Z.WithSelf(constants.%C, constants.%.Self.175) [concrete = constants.%assoc0.169] +// CHECK:STDOUT: %X.ref: %Z.assoc_type.f4d = name_ref X, %.loc11_46.2 [concrete = constants.%assoc0.169] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.lookup_impl_witness.46e, element0 [symbolic_self = constants.%impl.elem0.9ca] // CHECK:STDOUT: %T.ref.loc11_51: type = name_ref T, %T.loc11_21.1 [symbolic = %T.loc11_21.2 (constants.%T.67d)] -// CHECK:STDOUT: %.loc11_40: type = where_expr [symbolic = %Z_where.type (constants.%Z_where.type.346)] { +// CHECK:STDOUT: %.loc11_40: type = where_expr [symbolic = %Z_where.type (constants.%Z_where.type.18c)] { // CHECK:STDOUT: requirement_base_facet_type %Z.type // CHECK:STDOUT: requirement_rewrite %impl.elem0, %T.ref.loc11_51 // CHECK:STDOUT: } @@ -234,20 +234,20 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %T.loc11_21.1: type = symbolic_binding T, 0 [symbolic = %T.loc11_21.2 (constants.%T.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %T.patt: %pattern_type.59a = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type (%pattern_type.56b) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type (%pattern_type.56b) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.d7e = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type (%pattern_type.d37) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type (%pattern_type.d37) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc13_13: type = splice_block %Z.type [concrete = constants.%Z.type.2d0] { +// CHECK:STDOUT: %.loc13_13: type = splice_block %Z.type [concrete = constants.%Z.type.963] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] -// CHECK:STDOUT: %Z.ref: %Z.type.8a6 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] +// CHECK:STDOUT: %Z.ref: %Z.type.c39 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(constants.%C)> [concrete = constants.%Z.type.2d0] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(constants.%C)> [concrete = constants.%Z.type.963] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc13_7.2: %Z.type.2d0 = symbolic_binding T, 0 [symbolic = %T.loc13_7.1 (constants.%T.196)] +// CHECK:STDOUT: %T.loc13_7.2: %Z.type.963 = symbolic_binding T, 0 [symbolic = %T.loc13_7.1 (constants.%T.4b3)] // CHECK:STDOUT: %t.param: @F.%T.as_type.loc13_19.1 (%T.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc13_19.1: type = splice_block %.loc13_19.2 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc13: %Z.type.2d0 = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.196)] +// CHECK:STDOUT: %T.ref.loc13: %Z.type.963 = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.4b3)] // CHECK:STDOUT: %T.as_type.loc13_19.2: type = facet_access_type %T.ref.loc13 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc13_19.2: type = converted %T.ref.loc13, %T.as_type.loc13_19.2 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] // CHECK:STDOUT: } @@ -259,16 +259,16 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %T.loc3_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc3_14.1 (constants.%T.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%T.loc3_14.1)> [symbolic = %Z.type (constants.%Z.type.284)] -// CHECK:STDOUT: %Self.loc3_23.2: @Z.%Z.type (%Z.type.284) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.f76)] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%T.loc3_14.1)> [symbolic = %Z.type (constants.%Z.type.924)] +// CHECK:STDOUT: %Self.loc3_23.2: @Z.%Z.type (%Z.type.924) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.21f)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc3_23.1: @Z.%Z.type (%Z.type.284) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.f76)] +// CHECK:STDOUT: %Self.loc3_23.1: @Z.%Z.type (%Z.type.924) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.21f)] // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %X: type = assoc_const_decl @X [concrete] { -// CHECK:STDOUT: %assoc0: @Z.WithSelf.%Z.assoc_type (%Z.assoc_type.e20) = assoc_entity element0, @Z.WithSelf.%X [symbolic = @Z.WithSelf.%assoc0 (constants.%assoc0.5be)] +// CHECK:STDOUT: %assoc0: @Z.WithSelf.%Z.assoc_type (%Z.assoc_type.496) = assoc_entity element0, @Z.WithSelf.%X [symbolic = @Z.WithSelf.%assoc0 (constants.%assoc0.36e)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -280,26 +280,26 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as.Z.impl.e64(%T.loc9_15.1: type, %S.loc9_25.1: type) { +// CHECK:STDOUT: generic impl @T.as.Z.impl.9ba(%T.loc9_15.1: type, %S.loc9_25.1: type) { // CHECK:STDOUT: %T.loc9_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc9_15.2 (constants.%T.67d)] // CHECK:STDOUT: %S.loc9_25.2: type = symbolic_binding S, 1 [symbolic = %S.loc9_25.2 (constants.%S)] -// CHECK:STDOUT: %Z.type.loc9_42.2: type = facet_type <@Z, @Z(%S.loc9_25.2)> [symbolic = %Z.type.loc9_42.2 (constants.%Z.type.6ef)] -// CHECK:STDOUT: %.Self.loc9_44.2: @T.as.Z.impl.e64.%Z.type.loc9_42.2 (%Z.type.6ef) = symbolic_binding .Self [symbolic = %.Self.loc9_44.2 (constants.%.Self.d86)] -// CHECK:STDOUT: %require_complete.loc9_50: = require_complete_type %Z.type.loc9_42.2 [symbolic = %require_complete.loc9_50 (constants.%require_complete.c80)] -// CHECK:STDOUT: %.Self.as_type.loc9_50.2: type = facet_access_type %.Self.loc9_44.2 [symbolic = %.Self.as_type.loc9_50.2 (constants.%.Self.as_type.1a7)] -// CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z, @Z(%S.loc9_25.2) [symbolic = %Z.assoc_type (constants.%Z.assoc_type.795)] -// CHECK:STDOUT: %assoc0: @T.as.Z.impl.e64.%Z.assoc_type (%Z.assoc_type.795) = assoc_entity element0, @Z.WithSelf.%X [symbolic = %assoc0 (constants.%assoc0.281)] -// CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %.Self.loc9_44.2, @Z, @Z(%S.loc9_25.2) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness.18f)] -// CHECK:STDOUT: %impl.elem0.loc9_50.2: type = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_50.2 (constants.%impl.elem0.6c0)] -// CHECK:STDOUT: %Z_where.type: type = facet_type <@Z, @Z(%S.loc9_25.2) where %impl.elem0.loc9_50.2 = constants.%empty_tuple.type> [symbolic = %Z_where.type (constants.%Z_where.type.d8a)] -// CHECK:STDOUT: %Z.impl_witness.loc9_58.2: = impl_witness %Z.impl_witness_table, @T.as.Z.impl.e64(%T.loc9_15.2, %S.loc9_25.2) [symbolic = %Z.impl_witness.loc9_58.2 (constants.%Z.impl_witness.62a)] +// CHECK:STDOUT: %Z.type.loc9_42.2: type = facet_type <@Z, @Z(%S.loc9_25.2)> [symbolic = %Z.type.loc9_42.2 (constants.%Z.type.78b)] +// CHECK:STDOUT: %.Self.loc9_44.2: @T.as.Z.impl.9ba.%Z.type.loc9_42.2 (%Z.type.78b) = symbolic_binding .Self [symbolic = %.Self.loc9_44.2 (constants.%.Self.a97)] +// CHECK:STDOUT: %require_complete.loc9_50: = require_complete_type %Z.type.loc9_42.2 [symbolic = %require_complete.loc9_50 (constants.%require_complete.291)] +// CHECK:STDOUT: %.Self.as_type.loc9_50.2: type = facet_access_type %.Self.loc9_44.2 [symbolic = %.Self.as_type.loc9_50.2 (constants.%.Self.as_type.120)] +// CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z, @Z(%S.loc9_25.2) [symbolic = %Z.assoc_type (constants.%Z.assoc_type.083)] +// CHECK:STDOUT: %assoc0: @T.as.Z.impl.9ba.%Z.assoc_type (%Z.assoc_type.083) = assoc_entity element0, @Z.WithSelf.%X [symbolic = %assoc0 (constants.%assoc0.c53)] +// CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %.Self.loc9_44.2, @Z, @Z(%S.loc9_25.2) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness.8c8)] +// CHECK:STDOUT: %impl.elem0.loc9_50.2: type = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_50.2 (constants.%impl.elem0.88a)] +// CHECK:STDOUT: %Z_where.type: type = facet_type <@Z, @Z(%S.loc9_25.2) where %impl.elem0.loc9_50.2 = constants.%empty_tuple.type> [symbolic = %Z_where.type (constants.%Z_where.type.ee4)] +// CHECK:STDOUT: %Z.impl_witness.loc9_58.2: = impl_witness %Z.impl_witness_table, @T.as.Z.impl.9ba(%T.loc9_15.2, %S.loc9_25.2) [symbolic = %Z.impl_witness.loc9_58.2 (constants.%Z.impl_witness.cba)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_44: = require_complete_type %Z_where.type [symbolic = %require_complete.loc9_44 (constants.%require_complete.310)] +// CHECK:STDOUT: %require_complete.loc9_44: = require_complete_type %Z_where.type [symbolic = %require_complete.loc9_44 (constants.%require_complete.968)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref as %.loc9_44 { -// CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @T.as.Z.impl.e64 [concrete] -// CHECK:STDOUT: %Z.impl_witness.loc9_58.1: = impl_witness %Z.impl_witness_table, @T.as.Z.impl.e64(constants.%T.67d, constants.%S) [symbolic = %Z.impl_witness.loc9_58.2 (constants.%Z.impl_witness.62a)] +// CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @T.as.Z.impl.9ba [concrete] +// CHECK:STDOUT: %Z.impl_witness.loc9_58.1: = impl_witness %Z.impl_witness_table, @T.as.Z.impl.9ba(constants.%T.67d, constants.%S) [symbolic = %Z.impl_witness.loc9_58.2 (constants.%Z.impl_witness.cba)] // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -308,17 +308,17 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as.Z.impl.b90(%T.loc11_21.1: type) { +// CHECK:STDOUT: generic impl @T.as.Z.impl.61e(%T.loc11_21.1: type) { // CHECK:STDOUT: %T.loc11_21.2: type = symbolic_binding T, 0 [symbolic = %T.loc11_21.2 (constants.%T.67d)] -// CHECK:STDOUT: %Z_where.type: type = facet_type <@Z, @Z(constants.%C) where constants.%impl.elem0.fe4 = %T.loc11_21.2> [symbolic = %Z_where.type (constants.%Z_where.type.346)] -// CHECK:STDOUT: %Z.impl_witness.loc11_53.2: = impl_witness %Z.impl_witness_table, @T.as.Z.impl.b90(%T.loc11_21.2) [symbolic = %Z.impl_witness.loc11_53.2 (constants.%Z.impl_witness.61a)] +// CHECK:STDOUT: %Z_where.type: type = facet_type <@Z, @Z(constants.%C) where constants.%impl.elem0.9ca = %T.loc11_21.2> [symbolic = %Z_where.type (constants.%Z_where.type.18c)] +// CHECK:STDOUT: %Z.impl_witness.loc11_53.2: = impl_witness %Z.impl_witness_table, @T.as.Z.impl.61e(%T.loc11_21.2) [symbolic = %Z.impl_witness.loc11_53.2 (constants.%Z.impl_witness.fc3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Z_where.type [symbolic = %require_complete (constants.%require_complete.3d6)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Z_where.type [symbolic = %require_complete (constants.%require_complete.9f7)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref.loc11_30 as %.loc11_40 { -// CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @T.as.Z.impl.b90 [concrete] -// CHECK:STDOUT: %Z.impl_witness.loc11_53.1: = impl_witness %Z.impl_witness_table, @T.as.Z.impl.b90(constants.%T.67d) [symbolic = %Z.impl_witness.loc11_53.2 (constants.%Z.impl_witness.61a)] +// CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @T.as.Z.impl.61e [concrete] +// CHECK:STDOUT: %Z.impl_witness.loc11_53.1: = impl_witness %Z.impl_witness_table, @T.as.Z.impl.61e(constants.%T.67d) [symbolic = %Z.impl_witness.loc11_53.2 (constants.%Z.impl_witness.fc3)] // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%T.67d [symbolic = %T.loc11_21.2 (constants.%T.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -335,28 +335,28 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc13_7.2: %Z.type.2d0) { -// CHECK:STDOUT: %T.loc13_7.1: %Z.type.2d0 = symbolic_binding T, 0 [symbolic = %T.loc13_7.1 (constants.%T.196)] +// CHECK:STDOUT: generic fn @F(%T.loc13_7.2: %Z.type.963) { +// CHECK:STDOUT: %T.loc13_7.1: %Z.type.963 = symbolic_binding T, 0 [symbolic = %T.loc13_7.1 (constants.%T.4b3)] // CHECK:STDOUT: %T.as_type.loc13_19.1: type = facet_access_type %T.loc13_7.1 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc13_19.1 [symbolic = %pattern_type (constants.%pattern_type.56b)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc13_19.1 [symbolic = %pattern_type (constants.%pattern_type.d37)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc13_19.1 [symbolic = %require_complete (constants.%require_complete.c09)] -// CHECK:STDOUT: %.loc15_18.4: require_specific_def_type = require_specific_def @T.as.Z.impl.b90(%T.as_type.loc13_19.1) [symbolic = %.loc15_18.4 (constants.%.639)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc13_19.1 [symbolic = %require_complete (constants.%require_complete.df7)] +// CHECK:STDOUT: %.loc15_18.4: require_specific_def_type = require_specific_def @T.as.Z.impl.61e(%T.as_type.loc13_19.1) [symbolic = %.loc15_18.4 (constants.%.c6c)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc13_19.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.56b) = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.d37) = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %t.ref: @F.%T.as_type.loc13_19.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %.loc15_18.1: type = splice_block %impl.elem0 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc15: %Z.type.2d0 = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.196)] +// CHECK:STDOUT: %T.ref.loc15: %Z.type.963 = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.4b3)] // CHECK:STDOUT: %T.as_type.loc15: type = facet_access_type %T.ref.loc15 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc15_18.2: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc15_18.3: %Z.assoc_type.8db = specific_constant @X.%assoc0, @Z.WithSelf(constants.%C, constants.%T.196) [concrete = constants.%assoc0.f02] -// CHECK:STDOUT: %X.ref: %Z.assoc_type.8db = name_ref X, %.loc15_18.3 [concrete = constants.%assoc0.f02] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.impl_witness.f75, element0 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc15_18.3: %Z.assoc_type.f4d = specific_constant @X.%assoc0, @Z.WithSelf(constants.%C, constants.%T.4b3) [concrete = constants.%assoc0.169] +// CHECK:STDOUT: %X.ref: %Z.assoc_type.f4d = name_ref X, %.loc15_18.3 [concrete = constants.%assoc0.169] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.impl_witness.597, element0 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: %a: @F.%T.as_type.loc13_19.1 (%T.as_type) = value_binding a, %t.ref // CHECK:STDOUT: return @@ -367,107 +367,107 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %T.loc3_14.1 => constants.%T.67d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%T.67d, constants.%Self.f76) {} +// CHECK:STDOUT: specific @Z.WithSelf(constants.%T.67d, constants.%Self.21f) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%S) { // CHECK:STDOUT: %T.loc3_14.1 => constants.%S // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Z.type => constants.%Z.type.6ef -// CHECK:STDOUT: %Self.loc3_23.2 => constants.%Self.d23 +// CHECK:STDOUT: %Z.type => constants.%Z.type.78b +// CHECK:STDOUT: %Self.loc3_23.2 => constants.%Self.1a9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%S, constants.%Self.f76) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%S, constants.%Self.21f) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%S -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.795 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.281 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.083 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c53 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%S, constants.%.Self.d86) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%S, constants.%.Self.a97) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%S -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.795 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.281 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.083 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c53 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as.Z.impl.e64(constants.%T.67d, constants.%S) { +// CHECK:STDOUT: specific @T.as.Z.impl.9ba(constants.%T.67d, constants.%S) { // CHECK:STDOUT: %T.loc9_15.2 => constants.%T.67d // CHECK:STDOUT: %S.loc9_25.2 => constants.%S -// CHECK:STDOUT: %Z.type.loc9_42.2 => constants.%Z.type.6ef -// CHECK:STDOUT: %.Self.loc9_44.2 => constants.%.Self.d86 -// CHECK:STDOUT: %require_complete.loc9_50 => constants.%require_complete.c80 -// CHECK:STDOUT: %.Self.as_type.loc9_50.2 => constants.%.Self.as_type.1a7 -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.795 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.281 -// CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.lookup_impl_witness.18f -// CHECK:STDOUT: %impl.elem0.loc9_50.2 => constants.%impl.elem0.6c0 -// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.d8a -// CHECK:STDOUT: %Z.impl_witness.loc9_58.2 => constants.%Z.impl_witness.62a +// CHECK:STDOUT: %Z.type.loc9_42.2 => constants.%Z.type.78b +// CHECK:STDOUT: %.Self.loc9_44.2 => constants.%.Self.a97 +// CHECK:STDOUT: %require_complete.loc9_50 => constants.%require_complete.291 +// CHECK:STDOUT: %.Self.as_type.loc9_50.2 => constants.%.Self.as_type.120 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.083 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c53 +// CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.lookup_impl_witness.8c8 +// CHECK:STDOUT: %impl.elem0.loc9_50.2 => constants.%impl.elem0.88a +// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.ee4 +// CHECK:STDOUT: %Z.impl_witness.loc9_58.2 => constants.%Z.impl_witness.cba // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%S, constants.%Z.facet.59a) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%S, constants.%Z.facet.952) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%S -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.795 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.281 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.083 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%C) { // CHECK:STDOUT: %T.loc3_14.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Z.type => constants.%Z.type.2d0 -// CHECK:STDOUT: %Self.loc3_23.2 => constants.%Self.f16 +// CHECK:STDOUT: %Z.type => constants.%Z.type.963 +// CHECK:STDOUT: %Self.loc3_23.2 => constants.%Self.ae2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%Self.f76) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%Self.21f) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%C -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.8db -// CHECK:STDOUT: %assoc0 => constants.%assoc0.f02 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.f4d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.169 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%.Self.e6c) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%.Self.175) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%C -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.8db -// CHECK:STDOUT: %assoc0 => constants.%assoc0.f02 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.f4d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.169 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as.Z.impl.b90(constants.%T.67d) { +// CHECK:STDOUT: specific @T.as.Z.impl.61e(constants.%T.67d) { // CHECK:STDOUT: %T.loc11_21.2 => constants.%T.67d -// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.346 -// CHECK:STDOUT: %Z.impl_witness.loc11_53.2 => constants.%Z.impl_witness.61a +// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.18c +// CHECK:STDOUT: %Z.impl_witness.loc11_53.2 => constants.%Z.impl_witness.fc3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%Z.facet.587) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%Z.facet.fa5) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%C -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.8db -// CHECK:STDOUT: %assoc0 => constants.%assoc0.f02 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.f4d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.169 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.196) { -// CHECK:STDOUT: %T.loc13_7.1 => constants.%T.196 +// CHECK:STDOUT: specific @F(constants.%T.4b3) { +// CHECK:STDOUT: %T.loc13_7.1 => constants.%T.4b3 // CHECK:STDOUT: %T.as_type.loc13_19.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.56b +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d37 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%T.196) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%T.4b3) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%C -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.8db -// CHECK:STDOUT: %assoc0 => constants.%assoc0.f02 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.f4d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.169 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as.Z.impl.b90(constants.%T.as_type) { +// CHECK:STDOUT: specific @T.as.Z.impl.61e(constants.%T.as_type) { // CHECK:STDOUT: %T.loc11_21.2 => constants.%T.as_type -// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.c40 -// CHECK:STDOUT: %Z.impl_witness.loc11_53.2 => constants.%Z.impl_witness.f75 +// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.c07 +// CHECK:STDOUT: %Z.impl_witness.loc11_53.2 => constants.%Z.impl_witness.597 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.386 +// CHECK:STDOUT: %require_complete => constants.%require_complete.c7b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_nonfinal_specialized_symbolic_rewrite.carbon @@ -477,69 +477,69 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Z.type.8a6: type = generic_interface_type @Z [concrete] +// CHECK:STDOUT: %Z.type.c39: type = generic_interface_type @Z [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Z.generic: %Z.type.8a6 = struct_value () [concrete] -// CHECK:STDOUT: %Z.type.284: type = facet_type <@Z, @Z(%T.67d)> [symbolic] -// CHECK:STDOUT: %Self.f76: %Z.type.284 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Z.assoc_type.e20: type = assoc_entity_type @Z, @Z(%T.67d) [symbolic] -// CHECK:STDOUT: %assoc0.5be: %Z.assoc_type.e20 = assoc_entity element0, @Z.WithSelf.%X [symbolic] +// CHECK:STDOUT: %Z.generic: %Z.type.c39 = struct_value () [concrete] +// CHECK:STDOUT: %Z.type.924: type = facet_type <@Z, @Z(%T.67d)> [symbolic] +// CHECK:STDOUT: %Self.21f: %Z.type.924 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Z.assoc_type.496: type = assoc_entity_type @Z, @Z(%T.67d) [symbolic] +// CHECK:STDOUT: %assoc0.36e: %Z.assoc_type.496 = assoc_entity element0, @Z.WithSelf.%X [symbolic] // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] -// CHECK:STDOUT: %Self.d9e: %Y.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.765: %Y.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %S: type = symbolic_binding S, 1 [symbolic] -// CHECK:STDOUT: %Z.type.6ef: type = facet_type <@Z, @Z(%S)> [symbolic] -// CHECK:STDOUT: %.Self.d86: %Z.type.6ef = symbolic_binding .Self [symbolic] -// CHECK:STDOUT: %Self.d23: %Z.type.6ef = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Z.assoc_type.795: type = assoc_entity_type @Z, @Z(%S) [symbolic] -// CHECK:STDOUT: %assoc0.281: %Z.assoc_type.795 = assoc_entity element0, @Z.WithSelf.%X [symbolic] -// CHECK:STDOUT: %require_complete.c80: = require_complete_type %Z.type.6ef [symbolic] -// CHECK:STDOUT: %.Self.as_type.1a7: type = facet_access_type %.Self.d86 [symbolic] -// CHECK:STDOUT: %Z.lookup_impl_witness.18f: = lookup_impl_witness %.Self.d86, @Z, @Z(%S) [symbolic] -// CHECK:STDOUT: %impl.elem0.6c0: type = impl_witness_access %Z.lookup_impl_witness.18f, element0 [symbolic] +// CHECK:STDOUT: %Z.type.78b: type = facet_type <@Z, @Z(%S)> [symbolic] +// CHECK:STDOUT: %.Self.a97: %Z.type.78b = symbolic_binding .Self [symbolic] +// CHECK:STDOUT: %Self.1a9: %Z.type.78b = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Z.assoc_type.083: type = assoc_entity_type @Z, @Z(%S) [symbolic] +// CHECK:STDOUT: %assoc0.c53: %Z.assoc_type.083 = assoc_entity element0, @Z.WithSelf.%X [symbolic] +// CHECK:STDOUT: %require_complete.291: = require_complete_type %Z.type.78b [symbolic] +// CHECK:STDOUT: %.Self.as_type.120: type = facet_access_type %.Self.a97 [symbolic] +// CHECK:STDOUT: %Z.lookup_impl_witness.8c8: = lookup_impl_witness %.Self.a97, @Z, @Z(%S) [symbolic] +// CHECK:STDOUT: %impl.elem0.88a: type = impl_witness_access %Z.lookup_impl_witness.8c8, element0 [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %Z_where.type.d8a: type = facet_type <@Z, @Z(%S) where %impl.elem0.6c0 = %empty_tuple.type> [symbolic] -// CHECK:STDOUT: %Z.impl_witness.62a: = impl_witness @T.as.Z.impl.e64.%Z.impl_witness_table, @T.as.Z.impl.e64(%T.67d, %S) [symbolic] -// CHECK:STDOUT: %require_complete.310: = require_complete_type %Z_where.type.d8a [symbolic] -// CHECK:STDOUT: %Z.facet.59a: %Z.type.6ef = facet_value %T.67d, (%Z.impl_witness.62a) [symbolic] -// CHECK:STDOUT: %Z.type.2d0: type = facet_type <@Z, @Z(%C)> [concrete] -// CHECK:STDOUT: %.Self.e6c: %Z.type.2d0 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Self.f16: %Z.type.2d0 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Z.assoc_type.8db: type = assoc_entity_type @Z, @Z(%C) [concrete] -// CHECK:STDOUT: %assoc0.f02: %Z.assoc_type.8db = assoc_entity element0, @Z.WithSelf.%X [concrete] -// CHECK:STDOUT: %.Self.as_type.e4e: type = facet_access_type %.Self.e6c [symbolic_self] -// CHECK:STDOUT: %Z.lookup_impl_witness.c21: = lookup_impl_witness %.Self.e6c, @Z, @Z(%C) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.fe4: type = impl_witness_access %Z.lookup_impl_witness.c21, element0 [symbolic_self] -// CHECK:STDOUT: %Z_where.type.346: type = facet_type <@Z, @Z(%C) where %impl.elem0.fe4 = %T.67d> [symbolic] -// CHECK:STDOUT: %Z.impl_witness.61a: = impl_witness @T.as.Z.impl.b90.%Z.impl_witness_table, @T.as.Z.impl.b90(%T.67d) [symbolic] -// CHECK:STDOUT: %require_complete.3d6: = require_complete_type %Z_where.type.346 [symbolic] -// CHECK:STDOUT: %Z.facet.587: %Z.type.2d0 = facet_value %T.67d, (%Z.impl_witness.61a) [symbolic] -// CHECK:STDOUT: %pattern_type.59a: type = pattern_type %Z.type.2d0 [concrete] -// CHECK:STDOUT: %T.196: %Z.type.2d0 = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.196 [symbolic] -// CHECK:STDOUT: %pattern_type.56b: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %Z_where.type.ee4: type = facet_type <@Z, @Z(%S) where %impl.elem0.88a = %empty_tuple.type> [symbolic] +// CHECK:STDOUT: %Z.impl_witness.cba: = impl_witness @T.as.Z.impl.9ba.%Z.impl_witness_table, @T.as.Z.impl.9ba(%T.67d, %S) [symbolic] +// CHECK:STDOUT: %require_complete.968: = require_complete_type %Z_where.type.ee4 [symbolic] +// CHECK:STDOUT: %Z.facet.952: %Z.type.78b = facet_value %T.67d, (%Z.impl_witness.cba) [symbolic] +// CHECK:STDOUT: %Z.type.963: type = facet_type <@Z, @Z(%C)> [concrete] +// CHECK:STDOUT: %.Self.175: %Z.type.963 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Self.ae2: %Z.type.963 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Z.assoc_type.f4d: type = assoc_entity_type @Z, @Z(%C) [concrete] +// CHECK:STDOUT: %assoc0.169: %Z.assoc_type.f4d = assoc_entity element0, @Z.WithSelf.%X [concrete] +// CHECK:STDOUT: %.Self.as_type.dac: type = facet_access_type %.Self.175 [symbolic_self] +// CHECK:STDOUT: %Z.lookup_impl_witness.46e: = lookup_impl_witness %.Self.175, @Z, @Z(%C) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.9ca: type = impl_witness_access %Z.lookup_impl_witness.46e, element0 [symbolic_self] +// CHECK:STDOUT: %Z_where.type.18c: type = facet_type <@Z, @Z(%C) where %impl.elem0.9ca = %T.67d> [symbolic] +// CHECK:STDOUT: %Z.impl_witness.fc3: = impl_witness @T.as.Z.impl.61e.%Z.impl_witness_table, @T.as.Z.impl.61e(%T.67d) [symbolic] +// CHECK:STDOUT: %require_complete.9f7: = require_complete_type %Z_where.type.18c [symbolic] +// CHECK:STDOUT: %Z.facet.fa5: %Z.type.963 = facet_value %T.67d, (%Z.impl_witness.fc3) [symbolic] +// CHECK:STDOUT: %pattern_type.d7e: type = pattern_type %Z.type.963 [concrete] +// CHECK:STDOUT: %T.4b3: %Z.type.963 = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.4b3 [symbolic] +// CHECK:STDOUT: %pattern_type.d37: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.c09: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %Z.lookup_impl_witness.34b: = lookup_impl_witness %T.196, @Z, @Z(%C) [symbolic] -// CHECK:STDOUT: %impl.elem0.aaf: type = impl_witness_access %Z.lookup_impl_witness.34b, element0 [symbolic] -// CHECK:STDOUT: %require_complete.11b: = require_complete_type %impl.elem0.aaf [symbolic] -// CHECK:STDOUT: %pattern_type.87f: type = pattern_type %impl.elem0.aaf [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %require_complete.df7: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %Z.lookup_impl_witness.89c: = lookup_impl_witness %T.4b3, @Z, @Z(%C) [symbolic] +// CHECK:STDOUT: %impl.elem0.aab: type = impl_witness_access %Z.lookup_impl_witness.89c, element0 [symbolic] +// CHECK:STDOUT: %require_complete.d22: = require_complete_type %impl.elem0.aab [symbolic] +// CHECK:STDOUT: %pattern_type.dc1: type = pattern_type %impl.elem0.aab [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.6e6: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] -// CHECK:STDOUT: %Self.b7e: %ImplicitAs.type.6e6 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.bf1: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c63: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self.b7e) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.cba: %ImplicitAs.WithSelf.Convert.type.c63 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.ad3: type = facet_type <@ImplicitAs, @ImplicitAs(%impl.elem0.aaf)> [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.09c: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%impl.elem0.aaf) [symbolic] -// CHECK:STDOUT: %assoc0.59a: %ImplicitAs.assoc_type.09c = assoc_entity element0, imports.%Core.import_ref.569 [symbolic] -// CHECK:STDOUT: %require_complete.d79: = require_complete_type %ImplicitAs.type.ad3 [symbolic] -// CHECK:STDOUT: %assoc0.bd2: %ImplicitAs.assoc_type.bf1 = assoc_entity element0, imports.%Core.import_ref.cd5 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.3aa: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] +// CHECK:STDOUT: %Self.294: %ImplicitAs.type.3aa = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.fcc: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.97e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self.294) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.945: %ImplicitAs.WithSelf.Convert.type.97e = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.034: type = facet_type <@ImplicitAs, @ImplicitAs(%impl.elem0.aab)> [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.aba: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%impl.elem0.aab) [symbolic] +// CHECK:STDOUT: %assoc0.7e2: %ImplicitAs.assoc_type.aba = assoc_entity element0, imports.%Core.import_ref.cb2 [symbolic] +// CHECK:STDOUT: %require_complete.504: = require_complete_type %ImplicitAs.type.034 [symbolic] +// CHECK:STDOUT: %assoc0.0ac: %ImplicitAs.assoc_type.fcc = assoc_entity element0, imports.%Core.import_ref.f9d [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -548,10 +548,10 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.195: @ImplicitAs.WithSelf.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.bf1) = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%assoc0 (constants.%assoc0.bd2)] -// CHECK:STDOUT: %Core.import_ref.569: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.c63) = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.cba)] -// CHECK:STDOUT: %Core.import_ref.cd5 = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.484: @ImplicitAs.WithSelf.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.fcc) = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%assoc0 (constants.%assoc0.0ac)] +// CHECK:STDOUT: %Core.import_ref.cb2: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.97e) = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.945)] +// CHECK:STDOUT: %Core.import_ref.f9d = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -563,7 +563,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %Z.decl: %Z.type.8a6 = interface_decl @Z [concrete = constants.%Z.generic] { +// CHECK:STDOUT: %Z.decl: %Z.type.c39 = interface_decl @Z [concrete = constants.%Z.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc3_17.1: type = splice_block %.loc3_17.2 [concrete = type] { @@ -574,24 +574,24 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: %Y.decl: type = interface_decl @Y [concrete = constants.%Y.type] {} {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: impl_decl @T.as.Z.impl.e64 [concrete] { +// CHECK:STDOUT: impl_decl @T.as.Z.impl.9ba [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %S.patt: %pattern_type.98f = symbolic_binding_pattern S, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc10_15.1 [symbolic = %T.loc10_15.2 (constants.%T.67d)] -// CHECK:STDOUT: %Z.ref: %Z.type.8a6 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] +// CHECK:STDOUT: %Z.ref: %Z.type.c39 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] // CHECK:STDOUT: %S.ref: type = name_ref S, %S.loc10_25.1 [symbolic = %S.loc10_25.2 (constants.%S)] -// CHECK:STDOUT: %Z.type.loc10_42.1: type = facet_type <@Z, @Z(constants.%S)> [symbolic = %Z.type.loc10_42.2 (constants.%Z.type.6ef)] -// CHECK:STDOUT: %.Self.loc10_44.1: @T.as.Z.impl.e64.%Z.type.loc10_42.2 (%Z.type.6ef) = symbolic_binding .Self [symbolic = %.Self.loc10_44.2 (constants.%.Self.d86)] -// CHECK:STDOUT: %.Self.ref: @T.as.Z.impl.e64.%Z.type.loc10_42.2 (%Z.type.6ef) = name_ref .Self, %.Self.loc10_44.1 [symbolic = %.Self.loc10_44.2 (constants.%.Self.d86)] -// CHECK:STDOUT: %.Self.as_type.loc10_50.1: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc10_50.2 (constants.%.Self.as_type.1a7)] -// CHECK:STDOUT: %.loc10_50.1: type = converted %.Self.ref, %.Self.as_type.loc10_50.1 [symbolic = %.Self.as_type.loc10_50.2 (constants.%.Self.as_type.1a7)] -// CHECK:STDOUT: %.loc10_50.2: @T.as.Z.impl.e64.%Z.assoc_type (%Z.assoc_type.795) = specific_constant @X.%assoc0, @Z.WithSelf(constants.%S, constants.%.Self.d86) [symbolic = %assoc0 (constants.%assoc0.281)] -// CHECK:STDOUT: %X.ref: @T.as.Z.impl.e64.%Z.assoc_type (%Z.assoc_type.795) = name_ref X, %.loc10_50.2 [symbolic = %assoc0 (constants.%assoc0.281)] -// CHECK:STDOUT: %impl.elem0.loc10_50.1: type = impl_witness_access constants.%Z.lookup_impl_witness.18f, element0 [symbolic = %impl.elem0.loc10_50.2 (constants.%impl.elem0.6c0)] +// CHECK:STDOUT: %Z.type.loc10_42.1: type = facet_type <@Z, @Z(constants.%S)> [symbolic = %Z.type.loc10_42.2 (constants.%Z.type.78b)] +// CHECK:STDOUT: %.Self.loc10_44.1: @T.as.Z.impl.9ba.%Z.type.loc10_42.2 (%Z.type.78b) = symbolic_binding .Self [symbolic = %.Self.loc10_44.2 (constants.%.Self.a97)] +// CHECK:STDOUT: %.Self.ref: @T.as.Z.impl.9ba.%Z.type.loc10_42.2 (%Z.type.78b) = name_ref .Self, %.Self.loc10_44.1 [symbolic = %.Self.loc10_44.2 (constants.%.Self.a97)] +// CHECK:STDOUT: %.Self.as_type.loc10_50.1: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc10_50.2 (constants.%.Self.as_type.120)] +// CHECK:STDOUT: %.loc10_50.1: type = converted %.Self.ref, %.Self.as_type.loc10_50.1 [symbolic = %.Self.as_type.loc10_50.2 (constants.%.Self.as_type.120)] +// CHECK:STDOUT: %.loc10_50.2: @T.as.Z.impl.9ba.%Z.assoc_type (%Z.assoc_type.083) = specific_constant @X.%assoc0, @Z.WithSelf(constants.%S, constants.%.Self.a97) [symbolic = %assoc0 (constants.%assoc0.c53)] +// CHECK:STDOUT: %X.ref: @T.as.Z.impl.9ba.%Z.assoc_type (%Z.assoc_type.083) = name_ref X, %.loc10_50.2 [symbolic = %assoc0 (constants.%assoc0.c53)] +// CHECK:STDOUT: %impl.elem0.loc10_50.1: type = impl_witness_access constants.%Z.lookup_impl_witness.8c8, element0 [symbolic = %impl.elem0.loc10_50.2 (constants.%impl.elem0.88a)] // CHECK:STDOUT: %.loc10_56.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc10_56.2: type = converted %.loc10_56.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc10_44: type = where_expr [symbolic = %Z_where.type (constants.%Z_where.type.d8a)] { +// CHECK:STDOUT: %.loc10_44: type = where_expr [symbolic = %Z_where.type (constants.%Z_where.type.ee4)] { // CHECK:STDOUT: requirement_base_facet_type %Z.type.loc10_42.1 // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc10_50.1, %.loc10_56.2 // CHECK:STDOUT: } @@ -606,22 +606,22 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: %S.loc10_25.1: type = symbolic_binding S, 1 [symbolic = %S.loc10_25.2 (constants.%S)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.as.Z.impl.b90 [concrete] { +// CHECK:STDOUT: impl_decl @T.as.Z.impl.61e [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc12_24: type = name_ref T, %T.loc12_15.1 [symbolic = %T.loc12_15.2 (constants.%T.67d)] -// CHECK:STDOUT: %Z.ref: %Z.type.8a6 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] +// CHECK:STDOUT: %Z.ref: %Z.type.c39 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(constants.%C)> [concrete = constants.%Z.type.2d0] -// CHECK:STDOUT: %.Self.loc12_34: %Z.type.2d0 = symbolic_binding .Self [symbolic_self = constants.%.Self.e6c] -// CHECK:STDOUT: %.Self.ref: %Z.type.2d0 = name_ref .Self, %.Self.loc12_34 [symbolic_self = constants.%.Self.e6c] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.e4e] -// CHECK:STDOUT: %.loc12_40.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.e4e] -// CHECK:STDOUT: %.loc12_40.2: %Z.assoc_type.8db = specific_constant @X.%assoc0, @Z.WithSelf(constants.%C, constants.%.Self.e6c) [concrete = constants.%assoc0.f02] -// CHECK:STDOUT: %X.ref: %Z.assoc_type.8db = name_ref X, %.loc12_40.2 [concrete = constants.%assoc0.f02] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.lookup_impl_witness.c21, element0 [symbolic_self = constants.%impl.elem0.fe4] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(constants.%C)> [concrete = constants.%Z.type.963] +// CHECK:STDOUT: %.Self.loc12_34: %Z.type.963 = symbolic_binding .Self [symbolic_self = constants.%.Self.175] +// CHECK:STDOUT: %.Self.ref: %Z.type.963 = name_ref .Self, %.Self.loc12_34 [symbolic_self = constants.%.Self.175] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.dac] +// CHECK:STDOUT: %.loc12_40.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.dac] +// CHECK:STDOUT: %.loc12_40.2: %Z.assoc_type.f4d = specific_constant @X.%assoc0, @Z.WithSelf(constants.%C, constants.%.Self.175) [concrete = constants.%assoc0.169] +// CHECK:STDOUT: %X.ref: %Z.assoc_type.f4d = name_ref X, %.loc12_40.2 [concrete = constants.%assoc0.169] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.lookup_impl_witness.46e, element0 [symbolic_self = constants.%impl.elem0.9ca] // CHECK:STDOUT: %T.ref.loc12_45: type = name_ref T, %T.loc12_15.1 [symbolic = %T.loc12_15.2 (constants.%T.67d)] -// CHECK:STDOUT: %.loc12_34: type = where_expr [symbolic = %Z_where.type (constants.%Z_where.type.346)] { +// CHECK:STDOUT: %.loc12_34: type = where_expr [symbolic = %Z_where.type (constants.%Z_where.type.18c)] { // CHECK:STDOUT: requirement_base_facet_type %Z.type // CHECK:STDOUT: requirement_rewrite %impl.elem0, %T.ref.loc12_45 // CHECK:STDOUT: } @@ -632,20 +632,20 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %T.loc12_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc12_15.2 (constants.%T.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %T.patt: %pattern_type.59a = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc14 (%pattern_type.56b) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc14 (%pattern_type.56b) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.d7e = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc14 (%pattern_type.d37) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc14 (%pattern_type.d37) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc14_13: type = splice_block %Z.type [concrete = constants.%Z.type.2d0] { +// CHECK:STDOUT: %.loc14_13: type = splice_block %Z.type [concrete = constants.%Z.type.963] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] -// CHECK:STDOUT: %Z.ref: %Z.type.8a6 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] +// CHECK:STDOUT: %Z.ref: %Z.type.c39 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(constants.%C)> [concrete = constants.%Z.type.2d0] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(constants.%C)> [concrete = constants.%Z.type.963] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc14_7.2: %Z.type.2d0 = symbolic_binding T, 0 [symbolic = %T.loc14_7.1 (constants.%T.196)] +// CHECK:STDOUT: %T.loc14_7.2: %Z.type.963 = symbolic_binding T, 0 [symbolic = %T.loc14_7.1 (constants.%T.4b3)] // CHECK:STDOUT: %t.param: @F.%T.as_type.loc14_19.1 (%T.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc14_19.1: type = splice_block %.loc14_19.2 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc14: %Z.type.2d0 = name_ref T, %T.loc14_7.2 [symbolic = %T.loc14_7.1 (constants.%T.196)] +// CHECK:STDOUT: %T.ref.loc14: %Z.type.963 = name_ref T, %T.loc14_7.2 [symbolic = %T.loc14_7.1 (constants.%T.4b3)] // CHECK:STDOUT: %T.as_type.loc14_19.2: type = facet_access_type %T.ref.loc14 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc14_19.2: type = converted %T.ref.loc14, %T.as_type.loc14_19.2 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] // CHECK:STDOUT: } @@ -657,16 +657,16 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %T.loc3_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc3_14.1 (constants.%T.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%T.loc3_14.1)> [symbolic = %Z.type (constants.%Z.type.284)] -// CHECK:STDOUT: %Self.loc3_23.2: @Z.%Z.type (%Z.type.284) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.f76)] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%T.loc3_14.1)> [symbolic = %Z.type (constants.%Z.type.924)] +// CHECK:STDOUT: %Self.loc3_23.2: @Z.%Z.type (%Z.type.924) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.21f)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc3_23.1: @Z.%Z.type (%Z.type.284) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.f76)] +// CHECK:STDOUT: %Self.loc3_23.1: @Z.%Z.type (%Z.type.924) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self.21f)] // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %X: type = assoc_const_decl @X [concrete] { -// CHECK:STDOUT: %assoc0: @Z.WithSelf.%Z.assoc_type (%Z.assoc_type.e20) = assoc_entity element0, @Z.WithSelf.%X [symbolic = @Z.WithSelf.%assoc0 (constants.%assoc0.5be)] +// CHECK:STDOUT: %assoc0: @Z.WithSelf.%Z.assoc_type (%Z.assoc_type.496) = assoc_entity element0, @Z.WithSelf.%X [symbolic = @Z.WithSelf.%assoc0 (constants.%assoc0.36e)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -679,7 +679,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Y { -// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d9e] +// CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = constants.%Self.765] // CHECK:STDOUT: %Y.WithSelf.decl = interface_with_self_decl @Y [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -689,26 +689,26 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as.Z.impl.e64(%T.loc10_15.1: type, %S.loc10_25.1: type) { +// CHECK:STDOUT: generic impl @T.as.Z.impl.9ba(%T.loc10_15.1: type, %S.loc10_25.1: type) { // CHECK:STDOUT: %T.loc10_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc10_15.2 (constants.%T.67d)] // CHECK:STDOUT: %S.loc10_25.2: type = symbolic_binding S, 1 [symbolic = %S.loc10_25.2 (constants.%S)] -// CHECK:STDOUT: %Z.type.loc10_42.2: type = facet_type <@Z, @Z(%S.loc10_25.2)> [symbolic = %Z.type.loc10_42.2 (constants.%Z.type.6ef)] -// CHECK:STDOUT: %.Self.loc10_44.2: @T.as.Z.impl.e64.%Z.type.loc10_42.2 (%Z.type.6ef) = symbolic_binding .Self [symbolic = %.Self.loc10_44.2 (constants.%.Self.d86)] -// CHECK:STDOUT: %require_complete.loc10_50: = require_complete_type %Z.type.loc10_42.2 [symbolic = %require_complete.loc10_50 (constants.%require_complete.c80)] -// CHECK:STDOUT: %.Self.as_type.loc10_50.2: type = facet_access_type %.Self.loc10_44.2 [symbolic = %.Self.as_type.loc10_50.2 (constants.%.Self.as_type.1a7)] -// CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z, @Z(%S.loc10_25.2) [symbolic = %Z.assoc_type (constants.%Z.assoc_type.795)] -// CHECK:STDOUT: %assoc0: @T.as.Z.impl.e64.%Z.assoc_type (%Z.assoc_type.795) = assoc_entity element0, @Z.WithSelf.%X [symbolic = %assoc0 (constants.%assoc0.281)] -// CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %.Self.loc10_44.2, @Z, @Z(%S.loc10_25.2) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness.18f)] -// CHECK:STDOUT: %impl.elem0.loc10_50.2: type = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_50.2 (constants.%impl.elem0.6c0)] -// CHECK:STDOUT: %Z_where.type: type = facet_type <@Z, @Z(%S.loc10_25.2) where %impl.elem0.loc10_50.2 = constants.%empty_tuple.type> [symbolic = %Z_where.type (constants.%Z_where.type.d8a)] -// CHECK:STDOUT: %Z.impl_witness.loc10_58.2: = impl_witness %Z.impl_witness_table, @T.as.Z.impl.e64(%T.loc10_15.2, %S.loc10_25.2) [symbolic = %Z.impl_witness.loc10_58.2 (constants.%Z.impl_witness.62a)] +// CHECK:STDOUT: %Z.type.loc10_42.2: type = facet_type <@Z, @Z(%S.loc10_25.2)> [symbolic = %Z.type.loc10_42.2 (constants.%Z.type.78b)] +// CHECK:STDOUT: %.Self.loc10_44.2: @T.as.Z.impl.9ba.%Z.type.loc10_42.2 (%Z.type.78b) = symbolic_binding .Self [symbolic = %.Self.loc10_44.2 (constants.%.Self.a97)] +// CHECK:STDOUT: %require_complete.loc10_50: = require_complete_type %Z.type.loc10_42.2 [symbolic = %require_complete.loc10_50 (constants.%require_complete.291)] +// CHECK:STDOUT: %.Self.as_type.loc10_50.2: type = facet_access_type %.Self.loc10_44.2 [symbolic = %.Self.as_type.loc10_50.2 (constants.%.Self.as_type.120)] +// CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z, @Z(%S.loc10_25.2) [symbolic = %Z.assoc_type (constants.%Z.assoc_type.083)] +// CHECK:STDOUT: %assoc0: @T.as.Z.impl.9ba.%Z.assoc_type (%Z.assoc_type.083) = assoc_entity element0, @Z.WithSelf.%X [symbolic = %assoc0 (constants.%assoc0.c53)] +// CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %.Self.loc10_44.2, @Z, @Z(%S.loc10_25.2) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness.8c8)] +// CHECK:STDOUT: %impl.elem0.loc10_50.2: type = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_50.2 (constants.%impl.elem0.88a)] +// CHECK:STDOUT: %Z_where.type: type = facet_type <@Z, @Z(%S.loc10_25.2) where %impl.elem0.loc10_50.2 = constants.%empty_tuple.type> [symbolic = %Z_where.type (constants.%Z_where.type.ee4)] +// CHECK:STDOUT: %Z.impl_witness.loc10_58.2: = impl_witness %Z.impl_witness_table, @T.as.Z.impl.9ba(%T.loc10_15.2, %S.loc10_25.2) [symbolic = %Z.impl_witness.loc10_58.2 (constants.%Z.impl_witness.cba)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc10_44: = require_complete_type %Z_where.type [symbolic = %require_complete.loc10_44 (constants.%require_complete.310)] +// CHECK:STDOUT: %require_complete.loc10_44: = require_complete_type %Z_where.type [symbolic = %require_complete.loc10_44 (constants.%require_complete.968)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref as %.loc10_44 { -// CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @T.as.Z.impl.e64 [concrete] -// CHECK:STDOUT: %Z.impl_witness.loc10_58.1: = impl_witness %Z.impl_witness_table, @T.as.Z.impl.e64(constants.%T.67d, constants.%S) [symbolic = %Z.impl_witness.loc10_58.2 (constants.%Z.impl_witness.62a)] +// CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @T.as.Z.impl.9ba [concrete] +// CHECK:STDOUT: %Z.impl_witness.loc10_58.1: = impl_witness %Z.impl_witness_table, @T.as.Z.impl.9ba(constants.%T.67d, constants.%S) [symbolic = %Z.impl_witness.loc10_58.2 (constants.%Z.impl_witness.cba)] // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -717,17 +717,17 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as.Z.impl.b90(%T.loc12_15.1: type) { +// CHECK:STDOUT: generic impl @T.as.Z.impl.61e(%T.loc12_15.1: type) { // CHECK:STDOUT: %T.loc12_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc12_15.2 (constants.%T.67d)] -// CHECK:STDOUT: %Z_where.type: type = facet_type <@Z, @Z(constants.%C) where constants.%impl.elem0.fe4 = %T.loc12_15.2> [symbolic = %Z_where.type (constants.%Z_where.type.346)] -// CHECK:STDOUT: %Z.impl_witness.loc12_47.2: = impl_witness %Z.impl_witness_table, @T.as.Z.impl.b90(%T.loc12_15.2) [symbolic = %Z.impl_witness.loc12_47.2 (constants.%Z.impl_witness.61a)] +// CHECK:STDOUT: %Z_where.type: type = facet_type <@Z, @Z(constants.%C) where constants.%impl.elem0.9ca = %T.loc12_15.2> [symbolic = %Z_where.type (constants.%Z_where.type.18c)] +// CHECK:STDOUT: %Z.impl_witness.loc12_47.2: = impl_witness %Z.impl_witness_table, @T.as.Z.impl.61e(%T.loc12_15.2) [symbolic = %Z.impl_witness.loc12_47.2 (constants.%Z.impl_witness.fc3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Z_where.type [symbolic = %require_complete (constants.%require_complete.3d6)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Z_where.type [symbolic = %require_complete (constants.%require_complete.9f7)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref.loc12_24 as %.loc12_34 { -// CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @T.as.Z.impl.b90 [concrete] -// CHECK:STDOUT: %Z.impl_witness.loc12_47.1: = impl_witness %Z.impl_witness_table, @T.as.Z.impl.b90(constants.%T.67d) [symbolic = %Z.impl_witness.loc12_47.2 (constants.%Z.impl_witness.61a)] +// CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @T.as.Z.impl.61e [concrete] +// CHECK:STDOUT: %Z.impl_witness.loc12_47.1: = impl_witness %Z.impl_witness_table, @T.as.Z.impl.61e(constants.%T.67d) [symbolic = %Z.impl_witness.loc12_47.2 (constants.%Z.impl_witness.fc3)] // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%T.67d [symbolic = %T.loc12_15.2 (constants.%T.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -744,41 +744,41 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc14_7.2: %Z.type.2d0) { -// CHECK:STDOUT: %T.loc14_7.1: %Z.type.2d0 = symbolic_binding T, 0 [symbolic = %T.loc14_7.1 (constants.%T.196)] +// CHECK:STDOUT: generic fn @F(%T.loc14_7.2: %Z.type.963) { +// CHECK:STDOUT: %T.loc14_7.1: %Z.type.963 = symbolic_binding T, 0 [symbolic = %T.loc14_7.1 (constants.%T.4b3)] // CHECK:STDOUT: %T.as_type.loc14_19.1: type = facet_access_type %T.loc14_7.1 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type.loc14: type = pattern_type %T.as_type.loc14_19.1 [symbolic = %pattern_type.loc14 (constants.%pattern_type.56b)] +// CHECK:STDOUT: %pattern_type.loc14: type = pattern_type %T.as_type.loc14_19.1 [symbolic = %pattern_type.loc14 (constants.%pattern_type.d37)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %T.as_type.loc14_19.1 [symbolic = %require_complete.loc14 (constants.%require_complete.c09)] -// CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T.loc14_7.1, @Z, @Z(constants.%C) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness.34b)] -// CHECK:STDOUT: %impl.elem0.loc22_18.2: type = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_18.2 (constants.%impl.elem0.aaf)] -// CHECK:STDOUT: %require_complete.loc22_18: = require_complete_type %impl.elem0.loc22_18.2 [symbolic = %require_complete.loc22_18 (constants.%require_complete.11b)] -// CHECK:STDOUT: %pattern_type.loc22: type = pattern_type %impl.elem0.loc22_18.2 [symbolic = %pattern_type.loc22 (constants.%pattern_type.87f)] -// CHECK:STDOUT: %ImplicitAs.type.loc22_23.2: type = facet_type <@ImplicitAs, @ImplicitAs(%impl.elem0.loc22_18.2)> [symbolic = %ImplicitAs.type.loc22_23.2 (constants.%ImplicitAs.type.ad3)] -// CHECK:STDOUT: %require_complete.loc22_23: = require_complete_type %ImplicitAs.type.loc22_23.2 [symbolic = %require_complete.loc22_23 (constants.%require_complete.d79)] -// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%impl.elem0.loc22_18.2) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type.09c)] -// CHECK:STDOUT: %assoc0: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.09c) = assoc_entity element0, imports.%Core.import_ref.569 [symbolic = %assoc0 (constants.%assoc0.59a)] +// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %T.as_type.loc14_19.1 [symbolic = %require_complete.loc14 (constants.%require_complete.df7)] +// CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T.loc14_7.1, @Z, @Z(constants.%C) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness.89c)] +// CHECK:STDOUT: %impl.elem0.loc22_18.2: type = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_18.2 (constants.%impl.elem0.aab)] +// CHECK:STDOUT: %require_complete.loc22_18: = require_complete_type %impl.elem0.loc22_18.2 [symbolic = %require_complete.loc22_18 (constants.%require_complete.d22)] +// CHECK:STDOUT: %pattern_type.loc22: type = pattern_type %impl.elem0.loc22_18.2 [symbolic = %pattern_type.loc22 (constants.%pattern_type.dc1)] +// CHECK:STDOUT: %ImplicitAs.type.loc22_23.2: type = facet_type <@ImplicitAs, @ImplicitAs(%impl.elem0.loc22_18.2)> [symbolic = %ImplicitAs.type.loc22_23.2 (constants.%ImplicitAs.type.034)] +// CHECK:STDOUT: %require_complete.loc22_23: = require_complete_type %ImplicitAs.type.loc22_23.2 [symbolic = %require_complete.loc22_23 (constants.%require_complete.504)] +// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%impl.elem0.loc22_18.2) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type.aba)] +// CHECK:STDOUT: %assoc0: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.aba) = assoc_entity element0, imports.%Core.import_ref.cb2 [symbolic = %assoc0 (constants.%assoc0.7e2)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc14_19.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: @F.%pattern_type.loc22 (%pattern_type.87f) = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type.loc22 (%pattern_type.dc1) = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %t.ref: @F.%T.as_type.loc14_19.1 (%T.as_type) = name_ref t, %t -// CHECK:STDOUT: %.loc22_18.1: type = splice_block %impl.elem0.loc22_18.1 [symbolic = %impl.elem0.loc22_18.2 (constants.%impl.elem0.aaf)] { -// CHECK:STDOUT: %T.ref.loc22: %Z.type.2d0 = name_ref T, %T.loc14_7.2 [symbolic = %T.loc14_7.1 (constants.%T.196)] +// CHECK:STDOUT: %.loc22_18.1: type = splice_block %impl.elem0.loc22_18.1 [symbolic = %impl.elem0.loc22_18.2 (constants.%impl.elem0.aab)] { +// CHECK:STDOUT: %T.ref.loc22: %Z.type.963 = name_ref T, %T.loc14_7.2 [symbolic = %T.loc14_7.1 (constants.%T.4b3)] // CHECK:STDOUT: %T.as_type.loc22: type = facet_access_type %T.ref.loc22 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc22_18.2: type = converted %T.ref.loc22, %T.as_type.loc22 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc22_18.3: %Z.assoc_type.8db = specific_constant @X.%assoc0, @Z.WithSelf(constants.%C, constants.%T.196) [concrete = constants.%assoc0.f02] -// CHECK:STDOUT: %X.ref: %Z.assoc_type.8db = name_ref X, %.loc22_18.3 [concrete = constants.%assoc0.f02] -// CHECK:STDOUT: %impl.elem0.loc22_18.1: type = impl_witness_access constants.%Z.lookup_impl_witness.34b, element0 [symbolic = %impl.elem0.loc22_18.2 (constants.%impl.elem0.aaf)] +// CHECK:STDOUT: %.loc22_18.3: %Z.assoc_type.f4d = specific_constant @X.%assoc0, @Z.WithSelf(constants.%C, constants.%T.4b3) [concrete = constants.%assoc0.169] +// CHECK:STDOUT: %X.ref: %Z.assoc_type.f4d = name_ref X, %.loc22_18.3 [concrete = constants.%assoc0.169] +// CHECK:STDOUT: %impl.elem0.loc22_18.1: type = impl_witness_access constants.%Z.lookup_impl_witness.89c, element0 [symbolic = %impl.elem0.loc22_18.2 (constants.%impl.elem0.aab)] // CHECK:STDOUT: } -// CHECK:STDOUT: %ImplicitAs.type.loc22_23.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%impl.elem0.aaf)> [symbolic = %ImplicitAs.type.loc22_23.2 (constants.%ImplicitAs.type.ad3)] -// CHECK:STDOUT: %.loc22_23.1: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.09c) = specific_constant imports.%Core.import_ref.195, @ImplicitAs.WithSelf(constants.%impl.elem0.aaf, constants.%Self.b7e) [symbolic = %assoc0 (constants.%assoc0.59a)] -// CHECK:STDOUT: %Convert.ref: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.09c) = name_ref Convert, %.loc22_23.1 [symbolic = %assoc0 (constants.%assoc0.59a)] -// CHECK:STDOUT: %.loc22_23.2: @F.%impl.elem0.loc22_18.2 (%impl.elem0.aaf) = converted %t.ref, [concrete = ] -// CHECK:STDOUT: %a: @F.%impl.elem0.loc22_18.2 (%impl.elem0.aaf) = value_binding a, [concrete = ] +// CHECK:STDOUT: %ImplicitAs.type.loc22_23.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%impl.elem0.aab)> [symbolic = %ImplicitAs.type.loc22_23.2 (constants.%ImplicitAs.type.034)] +// CHECK:STDOUT: %.loc22_23.1: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.aba) = specific_constant imports.%Core.import_ref.484, @ImplicitAs.WithSelf(constants.%impl.elem0.aab, constants.%Self.294) [symbolic = %assoc0 (constants.%assoc0.7e2)] +// CHECK:STDOUT: %Convert.ref: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.aba) = name_ref Convert, %.loc22_23.1 [symbolic = %assoc0 (constants.%assoc0.7e2)] +// CHECK:STDOUT: %.loc22_23.2: @F.%impl.elem0.loc22_18.2 (%impl.elem0.aab) = converted %t.ref, [concrete = ] +// CHECK:STDOUT: %a: @F.%impl.elem0.loc22_18.2 (%impl.elem0.aab) = value_binding a, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -787,130 +787,130 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %T.loc3_14.1 => constants.%T.67d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%T.67d, constants.%Self.f76) {} +// CHECK:STDOUT: specific @Z.WithSelf(constants.%T.67d, constants.%Self.21f) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.d9e) {} +// CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.765) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%S) { // CHECK:STDOUT: %T.loc3_14.1 => constants.%S // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Z.type => constants.%Z.type.6ef -// CHECK:STDOUT: %Self.loc3_23.2 => constants.%Self.d23 +// CHECK:STDOUT: %Z.type => constants.%Z.type.78b +// CHECK:STDOUT: %Self.loc3_23.2 => constants.%Self.1a9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%S, constants.%Self.f76) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%S, constants.%Self.21f) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%S -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.795 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.281 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.083 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c53 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%S, constants.%.Self.d86) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%S, constants.%.Self.a97) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%S -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.795 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.281 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.083 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c53 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as.Z.impl.e64(constants.%T.67d, constants.%S) { +// CHECK:STDOUT: specific @T.as.Z.impl.9ba(constants.%T.67d, constants.%S) { // CHECK:STDOUT: %T.loc10_15.2 => constants.%T.67d // CHECK:STDOUT: %S.loc10_25.2 => constants.%S -// CHECK:STDOUT: %Z.type.loc10_42.2 => constants.%Z.type.6ef -// CHECK:STDOUT: %.Self.loc10_44.2 => constants.%.Self.d86 -// CHECK:STDOUT: %require_complete.loc10_50 => constants.%require_complete.c80 -// CHECK:STDOUT: %.Self.as_type.loc10_50.2 => constants.%.Self.as_type.1a7 -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.795 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.281 -// CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.lookup_impl_witness.18f -// CHECK:STDOUT: %impl.elem0.loc10_50.2 => constants.%impl.elem0.6c0 -// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.d8a -// CHECK:STDOUT: %Z.impl_witness.loc10_58.2 => constants.%Z.impl_witness.62a +// CHECK:STDOUT: %Z.type.loc10_42.2 => constants.%Z.type.78b +// CHECK:STDOUT: %.Self.loc10_44.2 => constants.%.Self.a97 +// CHECK:STDOUT: %require_complete.loc10_50 => constants.%require_complete.291 +// CHECK:STDOUT: %.Self.as_type.loc10_50.2 => constants.%.Self.as_type.120 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.083 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c53 +// CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.lookup_impl_witness.8c8 +// CHECK:STDOUT: %impl.elem0.loc10_50.2 => constants.%impl.elem0.88a +// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.ee4 +// CHECK:STDOUT: %Z.impl_witness.loc10_58.2 => constants.%Z.impl_witness.cba // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%S, constants.%Z.facet.59a) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%S, constants.%Z.facet.952) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%S -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.795 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.281 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.083 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%C) { // CHECK:STDOUT: %T.loc3_14.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Z.type => constants.%Z.type.2d0 -// CHECK:STDOUT: %Self.loc3_23.2 => constants.%Self.f16 +// CHECK:STDOUT: %Z.type => constants.%Z.type.963 +// CHECK:STDOUT: %Self.loc3_23.2 => constants.%Self.ae2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%Self.f76) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%Self.21f) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%C -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.8db -// CHECK:STDOUT: %assoc0 => constants.%assoc0.f02 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.f4d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.169 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%.Self.e6c) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%.Self.175) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%C -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.8db -// CHECK:STDOUT: %assoc0 => constants.%assoc0.f02 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.f4d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.169 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as.Z.impl.b90(constants.%T.67d) { +// CHECK:STDOUT: specific @T.as.Z.impl.61e(constants.%T.67d) { // CHECK:STDOUT: %T.loc12_15.2 => constants.%T.67d -// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.346 -// CHECK:STDOUT: %Z.impl_witness.loc12_47.2 => constants.%Z.impl_witness.61a +// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.18c +// CHECK:STDOUT: %Z.impl_witness.loc12_47.2 => constants.%Z.impl_witness.fc3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%Z.facet.587) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%Z.facet.fa5) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%C -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.8db -// CHECK:STDOUT: %assoc0 => constants.%assoc0.f02 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.f4d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.169 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.196) { -// CHECK:STDOUT: %T.loc14_7.1 => constants.%T.196 +// CHECK:STDOUT: specific @F(constants.%T.4b3) { +// CHECK:STDOUT: %T.loc14_7.1 => constants.%T.4b3 // CHECK:STDOUT: %T.as_type.loc14_19.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc14 => constants.%pattern_type.56b +// CHECK:STDOUT: %pattern_type.loc14 => constants.%pattern_type.d37 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%T.196) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%T.4b3) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%C -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.8db -// CHECK:STDOUT: %assoc0 => constants.%assoc0.f02 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.f4d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.169 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- final_impl_rewrite_of_symbolic_through_impl_lookup.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Ptr.type: type = facet_type <@Ptr> [concrete] -// CHECK:STDOUT: %Self.ca4: %Ptr.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.99f: %Ptr.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Ptr.assoc_type: type = assoc_entity_type @Ptr [concrete] -// CHECK:STDOUT: %assoc0.a3d: %Ptr.assoc_type = assoc_entity element0, @Ptr.WithSelf.%Type [concrete] +// CHECK:STDOUT: %assoc0.b1a: %Ptr.assoc_type = assoc_entity element0, @Ptr.WithSelf.%Type [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %U.67d: type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %.Self.332: %Ptr.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.332 [symbolic_self] -// CHECK:STDOUT: %Ptr.lookup_impl_witness: = lookup_impl_witness %.Self.332, @Ptr [symbolic_self] -// CHECK:STDOUT: %impl.elem0.bd8: type = impl_witness_access %Ptr.lookup_impl_witness, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.ffa: %Ptr.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ffa [symbolic_self] +// CHECK:STDOUT: %Ptr.lookup_impl_witness: = lookup_impl_witness %.Self.ffa, @Ptr [symbolic_self] +// CHECK:STDOUT: %impl.elem0.92c: type = impl_witness_access %Ptr.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %ptr.e8f8f9.1: type = ptr_type %U.67d [symbolic] -// CHECK:STDOUT: %Ptr_where.type.bb99f8.1: type = facet_type <@Ptr where %impl.elem0.bd8 = %ptr.e8f8f9.1> [symbolic] -// CHECK:STDOUT: %Ptr.impl_witness.1f9b1e.1: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%U.67d) [symbolic] -// CHECK:STDOUT: %require_complete.425ff2.1: = require_complete_type %Ptr_where.type.bb99f8.1 [symbolic] -// CHECK:STDOUT: %Ptr.facet.d63c8c.1: %Ptr.type = facet_value %U.67d, (%Ptr.impl_witness.1f9b1e.1) [symbolic] +// CHECK:STDOUT: %Ptr_where.type.71ffc3.1: type = facet_type <@Ptr where %impl.elem0.92c = %ptr.e8f8f9.1> [symbolic] +// CHECK:STDOUT: %Ptr.impl_witness.dc28c2.1: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%U.67d) [symbolic] +// CHECK:STDOUT: %require_complete.15c7c4.1: = require_complete_type %Ptr_where.type.71ffc3.1 [symbolic] +// CHECK:STDOUT: %Ptr.facet.a52cb5.1: %Ptr.type = facet_value %U.67d, (%Ptr.impl_witness.dc28c2.1) [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T.67d [symbolic] // CHECK:STDOUT: %ptr.e8f8f9.2: type = ptr_type %T.67d [symbolic] -// CHECK:STDOUT: %Ptr_where.type.bb99f8.2: type = facet_type <@Ptr where %impl.elem0.bd8 = %ptr.e8f8f9.2> [symbolic] -// CHECK:STDOUT: %Ptr.impl_witness.1f9b1e.2: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %require_complete.425ff2.2: = require_complete_type %Ptr_where.type.bb99f8.2 [symbolic] -// CHECK:STDOUT: %.aed: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %Ptr.facet.d63c8c.2: %Ptr.type = facet_value %T.67d, (%Ptr.impl_witness.1f9b1e.2) [symbolic] +// CHECK:STDOUT: %Ptr_where.type.71ffc3.2: type = facet_type <@Ptr where %impl.elem0.92c = %ptr.e8f8f9.2> [symbolic] +// CHECK:STDOUT: %Ptr.impl_witness.dc28c2.2: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %require_complete.15c7c4.2: = require_complete_type %Ptr_where.type.71ffc3.2 [symbolic] +// CHECK:STDOUT: %.e08: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %Ptr.facet.a52cb5.2: %Ptr.type = facet_value %T.67d, (%Ptr.impl_witness.dc28c2.2) [symbolic] // CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr.e8f8f9.2 [symbolic] // CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f8f9.2 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] @@ -918,13 +918,13 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %require_complete.944: = require_complete_type %T.67d [symbolic] // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f8f9.2 [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2bf: = lookup_impl_witness %ptr.e8f8f9.2, @Copy [symbolic] -// CHECK:STDOUT: %.b6a: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e8f8f9.2, (%Copy.lookup_impl_witness.2bf) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.72b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.72b, %Copy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.8a3: %.39b = impl_witness_access %Copy.lookup_impl_witness.2bf, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a13: = specific_impl_function %impl.elem0.8a3, @Copy.WithSelf.Op(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.1da: = lookup_impl_witness %ptr.e8f8f9.2, @Copy [symbolic] +// CHECK:STDOUT: %.0e9: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e8f8f9.2, (%Copy.lookup_impl_witness.1da) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.884: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] +// CHECK:STDOUT: %.be5: type = fn_type_with_self_type %Copy.WithSelf.Op.type.884, %Copy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.484: %.be5 = impl_witness_access %Copy.lookup_impl_witness.1da, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.a76: = specific_impl_function %impl.elem0.484, @Copy.WithSelf.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -949,15 +949,15 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc7_30: type = name_ref U, %U.loc7_21.1 [symbolic = %U.loc7_21.2 (constants.%U.67d)] // CHECK:STDOUT: %Ptr.ref: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] -// CHECK:STDOUT: %.Self.loc7_39: %Ptr.type = symbolic_binding .Self [symbolic_self = constants.%.Self.332] -// CHECK:STDOUT: %.Self.ref: %Ptr.type = name_ref .Self, %.Self.loc7_39 [symbolic_self = constants.%.Self.332] +// CHECK:STDOUT: %.Self.loc7_39: %Ptr.type = symbolic_binding .Self [symbolic_self = constants.%.Self.ffa] +// CHECK:STDOUT: %.Self.ref: %Ptr.type = name_ref .Self, %.Self.loc7_39 [symbolic_self = constants.%.Self.ffa] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc7_45: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.a3d] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Ptr.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.bd8] +// CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.b1a] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Ptr.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.92c] // CHECK:STDOUT: %U.ref.loc7_53: type = name_ref U, %U.loc7_21.1 [symbolic = %U.loc7_21.2 (constants.%U.67d)] // CHECK:STDOUT: %ptr.loc7_54.1: type = ptr_type %U.ref.loc7_53 [symbolic = %ptr.loc7_54.2 (constants.%ptr.e8f8f9.1)] -// CHECK:STDOUT: %.loc7_39: type = where_expr [symbolic = %Ptr_where.type (constants.%Ptr_where.type.bb99f8.1)] { +// CHECK:STDOUT: %.loc7_39: type = where_expr [symbolic = %Ptr_where.type (constants.%Ptr_where.type.71ffc3.1)] { // CHECK:STDOUT: requirement_base_facet_type %Ptr.ref // CHECK:STDOUT: requirement_rewrite %impl.elem0, %ptr.loc7_54.1 // CHECK:STDOUT: } @@ -976,10 +976,10 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_29: type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.67d)] // CHECK:STDOUT: %Ptr.ref: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] -// CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.a3d] -// CHECK:STDOUT: %Ptr.facet.loc9_30.2: %Ptr.type = facet_value %T.ref.loc9_29, (constants.%Ptr.impl_witness.1f9b1e.2) [symbolic = %Ptr.facet.loc9_30.1 (constants.%Ptr.facet.d63c8c.2)] -// CHECK:STDOUT: %.loc9_30.3: %Ptr.type = converted %T.ref.loc9_29, %Ptr.facet.loc9_30.2 [symbolic = %Ptr.facet.loc9_30.1 (constants.%Ptr.facet.d63c8c.2)] -// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.1f9b1e.2, element0 [symbolic = %ptr (constants.%ptr.e8f8f9.2)] +// CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.b1a] +// CHECK:STDOUT: %Ptr.facet.loc9_30.2: %Ptr.type = facet_value %T.ref.loc9_29, (constants.%Ptr.impl_witness.dc28c2.2) [symbolic = %Ptr.facet.loc9_30.1 (constants.%Ptr.facet.a52cb5.2)] +// CHECK:STDOUT: %.loc9_30.3: %Ptr.type = converted %T.ref.loc9_29, %Ptr.facet.loc9_30.2 [symbolic = %Ptr.facet.loc9_30.1 (constants.%Ptr.facet.a52cb5.2)] +// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.dc28c2.2, element0 [symbolic = %ptr (constants.%ptr.e8f8f9.2)] // CHECK:STDOUT: %.loc9_30.4: Core.Form = init_form %impl.elem0.loc9 [symbolic = %.loc9_30.2 (constants.%.cb6)] // CHECK:STDOUT: %.loc9_10.1: type = splice_block %.loc9_10.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] @@ -995,12 +995,12 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Ptr { -// CHECK:STDOUT: %Self: %Ptr.type = symbolic_binding Self, 0 [symbolic = constants.%Self.ca4] +// CHECK:STDOUT: %Self: %Ptr.type = symbolic_binding Self, 0 [symbolic = constants.%Self.99f] // CHECK:STDOUT: %Ptr.WithSelf.decl = interface_with_self_decl @Ptr [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Type: type = assoc_const_decl @Type [concrete] { -// CHECK:STDOUT: %assoc0: %Ptr.assoc_type = assoc_entity element0, @Ptr.WithSelf.%Type [concrete = constants.%assoc0.a3d] +// CHECK:STDOUT: %assoc0: %Ptr.assoc_type = assoc_entity element0, @Ptr.WithSelf.%Type [concrete = constants.%assoc0.b1a] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1014,15 +1014,15 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: generic impl @U.as.Ptr.impl(%U.loc7_21.1: type) { // CHECK:STDOUT: %U.loc7_21.2: type = symbolic_binding U, 0 [symbolic = %U.loc7_21.2 (constants.%U.67d)] // CHECK:STDOUT: %ptr.loc7_54.2: type = ptr_type %U.loc7_21.2 [symbolic = %ptr.loc7_54.2 (constants.%ptr.e8f8f9.1)] -// CHECK:STDOUT: %Ptr_where.type: type = facet_type <@Ptr where constants.%impl.elem0.bd8 = %ptr.loc7_54.2> [symbolic = %Ptr_where.type (constants.%Ptr_where.type.bb99f8.1)] -// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2: = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(%U.loc7_21.2) [symbolic = %Ptr.impl_witness.loc7_56.2 (constants.%Ptr.impl_witness.1f9b1e.1)] +// CHECK:STDOUT: %Ptr_where.type: type = facet_type <@Ptr where constants.%impl.elem0.92c = %ptr.loc7_54.2> [symbolic = %Ptr_where.type (constants.%Ptr_where.type.71ffc3.1)] +// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2: = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(%U.loc7_21.2) [symbolic = %Ptr.impl_witness.loc7_56.2 (constants.%Ptr.impl_witness.dc28c2.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Ptr_where.type [symbolic = %require_complete (constants.%require_complete.425ff2.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Ptr_where.type [symbolic = %require_complete (constants.%require_complete.15c7c4.1)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %U.ref.loc7_30 as %.loc7_39 { // CHECK:STDOUT: %Ptr.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @U.as.Ptr.impl [concrete] -// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.1: = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(constants.%U.67d) [symbolic = %Ptr.impl_witness.loc7_56.2 (constants.%Ptr.impl_witness.1f9b1e.1)] +// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.1: = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(constants.%U.67d) [symbolic = %Ptr.impl_witness.loc7_56.2 (constants.%Ptr.impl_witness.dc28c2.1)] // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%ptr.e8f8f9.1 [symbolic = %ptr.loc7_54.2 (constants.%ptr.e8f8f9.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1034,9 +1034,9 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: generic fn @F(%T.loc9_7.2: type) { // CHECK:STDOUT: %T.loc9_7.1: type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.67d)] // CHECK:STDOUT: %pattern_type.loc9_21: type = pattern_type %T.loc9_7.1 [symbolic = %pattern_type.loc9_21 (constants.%pattern_type.51d)] -// CHECK:STDOUT: %.loc9_30.1: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.loc9_7.1) [symbolic = %.loc9_30.1 (constants.%.aed)] -// CHECK:STDOUT: %Ptr.impl_witness: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.loc9_7.1) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.1f9b1e.2)] -// CHECK:STDOUT: %Ptr.facet.loc9_30.1: %Ptr.type = facet_value %T.loc9_7.1, (%Ptr.impl_witness) [symbolic = %Ptr.facet.loc9_30.1 (constants.%Ptr.facet.d63c8c.2)] +// CHECK:STDOUT: %.loc9_30.1: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.loc9_7.1) [symbolic = %.loc9_30.1 (constants.%.e08)] +// CHECK:STDOUT: %Ptr.impl_witness: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.loc9_7.1) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.dc28c2.2)] +// CHECK:STDOUT: %Ptr.facet.loc9_30.1: %Ptr.type = facet_value %T.loc9_7.1, (%Ptr.impl_witness) [symbolic = %Ptr.facet.loc9_30.1 (constants.%Ptr.facet.a52cb5.2)] // CHECK:STDOUT: %ptr: type = ptr_type %T.loc9_7.1 [symbolic = %ptr (constants.%ptr.e8f8f9.2)] // CHECK:STDOUT: %.loc9_30.2: Core.Form = init_form %ptr [symbolic = %.loc9_30.2 (constants.%.cb6)] // CHECK:STDOUT: %pattern_type.loc9_30: type = pattern_type %ptr [symbolic = %pattern_type.loc9_30 (constants.%pattern_type.4f4)] @@ -1044,66 +1044,66 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc9_16: = require_complete_type %T.loc9_7.1 [symbolic = %require_complete.loc9_16 (constants.%require_complete.944)] // CHECK:STDOUT: %require_complete.loc9_26: = require_complete_type %ptr [symbolic = %require_complete.loc9_26 (constants.%require_complete.ef1)] -// CHECK:STDOUT: %.loc10_10.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc9_7.1) [symbolic = %.loc10_10.1 (constants.%.b6a)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2bf)] +// CHECK:STDOUT: %.loc10_10.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc9_7.1) [symbolic = %.loc10_10.1 (constants.%.0e9)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.1da)] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.72b)] -// CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.39b)] -// CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.39b) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.8a3)] -// CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.a13)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.884)] +// CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.be5)] +// CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.be5) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.484)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.a76)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%t.param: ref @F.%T.loc9_7.1 (%T.67d)) -> out %return.param: @F.%ptr (%ptr.e8f8f9.2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %t.ref: ref @F.%T.loc9_7.1 (%T.67d) = name_ref t, %t // CHECK:STDOUT: %addr: @F.%ptr (%ptr.e8f8f9.2) = addr_of %t.ref -// CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.39b) = impl_witness_access constants.%Copy.lookup_impl_witness.2bf, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.8a3)] +// CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.be5) = impl_witness_access constants.%Copy.lookup_impl_witness.1da, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.484)] // CHECK:STDOUT: %bound_method.loc10_10.1: = bound_method %addr, %impl.elem0.loc10_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.a13)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.a76)] // CHECK:STDOUT: %bound_method.loc10_10.2: = bound_method %addr, %specific_impl_fn.loc10_10.1 // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @F.%ptr (%ptr.e8f8f9.2) = call %bound_method.loc10_10.2(%addr) // CHECK:STDOUT: return %Copy.WithSelf.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Self.ca4) { +// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Self.99f) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%.Self.332) { +// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%.Self.ffa) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%U.67d) { // CHECK:STDOUT: %U.loc7_21.2 => constants.%U.67d // CHECK:STDOUT: %ptr.loc7_54.2 => constants.%ptr.e8f8f9.1 -// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.bb99f8.1 -// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2 => constants.%Ptr.impl_witness.1f9b1e.1 +// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.71ffc3.1 +// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2 => constants.%Ptr.impl_witness.dc28c2.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Ptr.facet.d63c8c.1) { +// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Ptr.facet.a52cb5.1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%T.67d) { // CHECK:STDOUT: %U.loc7_21.2 => constants.%T.67d // CHECK:STDOUT: %ptr.loc7_54.2 => constants.%ptr.e8f8f9.2 -// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.bb99f8.2 -// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2 => constants.%Ptr.impl_witness.1f9b1e.2 +// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.71ffc3.2 +// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2 => constants.%Ptr.impl_witness.dc28c2.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.425ff2.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.15c7c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Ptr.facet.d63c8c.2) { +// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Ptr.facet.a52cb5.2) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.67d) { // CHECK:STDOUT: %T.loc9_7.1 => constants.%T.67d // CHECK:STDOUT: %pattern_type.loc9_21 => constants.%pattern_type.51d -// CHECK:STDOUT: %.loc9_30.1 => constants.%.aed -// CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.1f9b1e.2 -// CHECK:STDOUT: %Ptr.facet.loc9_30.1 => constants.%Ptr.facet.d63c8c.2 +// CHECK:STDOUT: %.loc9_30.1 => constants.%.e08 +// CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.dc28c2.2 +// CHECK:STDOUT: %Ptr.facet.loc9_30.1 => constants.%Ptr.facet.a52cb5.2 // CHECK:STDOUT: %ptr => constants.%ptr.e8f8f9.2 // CHECK:STDOUT: %.loc9_30.2 => constants.%.cb6 // CHECK:STDOUT: %pattern_type.loc9_30 => constants.%pattern_type.4f4 @@ -1113,45 +1113,45 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Ptr.type: type = facet_type <@Ptr> [concrete] -// CHECK:STDOUT: %Self.ca4: %Ptr.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.99f: %Ptr.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Ptr.assoc_type: type = assoc_entity_type @Ptr [concrete] -// CHECK:STDOUT: %assoc0.a3d: %Ptr.assoc_type = assoc_entity element0, @Ptr.WithSelf.%Type [concrete] +// CHECK:STDOUT: %assoc0.b1a: %Ptr.assoc_type = assoc_entity element0, @Ptr.WithSelf.%Type [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %U.67d: type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %.Self.332: %Ptr.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.332 [symbolic_self] -// CHECK:STDOUT: %Ptr.lookup_impl_witness: = lookup_impl_witness %.Self.332, @Ptr [symbolic_self] -// CHECK:STDOUT: %impl.elem0.bd8: type = impl_witness_access %Ptr.lookup_impl_witness, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.ffa: %Ptr.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ffa [symbolic_self] +// CHECK:STDOUT: %Ptr.lookup_impl_witness: = lookup_impl_witness %.Self.ffa, @Ptr [symbolic_self] +// CHECK:STDOUT: %impl.elem0.92c: type = impl_witness_access %Ptr.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %ptr.e8f8f9.1: type = ptr_type %U.67d [symbolic] -// CHECK:STDOUT: %Ptr_where.type.bb9: type = facet_type <@Ptr where %impl.elem0.bd8 = %ptr.e8f8f9.1> [symbolic] -// CHECK:STDOUT: %Ptr.impl_witness.1f9: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%U.67d) [symbolic] -// CHECK:STDOUT: %require_complete.425: = require_complete_type %Ptr_where.type.bb9 [symbolic] -// CHECK:STDOUT: %Ptr.facet: %Ptr.type = facet_value %U.67d, (%Ptr.impl_witness.1f9) [symbolic] -// CHECK:STDOUT: %pattern_type.51e: type = pattern_type %Ptr.type [concrete] -// CHECK:STDOUT: %T.7bc: %Ptr.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.6c8: type = facet_access_type %T.7bc [symbolic] -// CHECK:STDOUT: %pattern_type.256: type = pattern_type %T.as_type.6c8 [symbolic] -// CHECK:STDOUT: %ptr.3c2: type = ptr_type %T.as_type.6c8 [symbolic] -// CHECK:STDOUT: %Ptr_where.type.b07: type = facet_type <@Ptr where %impl.elem0.bd8 = %ptr.3c2> [symbolic] -// CHECK:STDOUT: %Ptr.impl_witness.140: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.as_type.6c8) [symbolic] -// CHECK:STDOUT: %require_complete.76a: = require_complete_type %Ptr_where.type.b07 [symbolic] -// CHECK:STDOUT: %.dab: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.as_type.6c8) [symbolic] -// CHECK:STDOUT: %.ed7: Core.Form = init_form %ptr.3c2 [symbolic] -// CHECK:STDOUT: %pattern_type.438: type = pattern_type %ptr.3c2 [symbolic] +// CHECK:STDOUT: %Ptr_where.type.71f: type = facet_type <@Ptr where %impl.elem0.92c = %ptr.e8f8f9.1> [symbolic] +// CHECK:STDOUT: %Ptr.impl_witness.dc2: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%U.67d) [symbolic] +// CHECK:STDOUT: %require_complete.15c: = require_complete_type %Ptr_where.type.71f [symbolic] +// CHECK:STDOUT: %Ptr.facet: %Ptr.type = facet_value %U.67d, (%Ptr.impl_witness.dc2) [symbolic] +// CHECK:STDOUT: %pattern_type.f5d: type = pattern_type %Ptr.type [concrete] +// CHECK:STDOUT: %T.76f: %Ptr.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.468: type = facet_access_type %T.76f [symbolic] +// CHECK:STDOUT: %pattern_type.756: type = pattern_type %T.as_type.468 [symbolic] +// CHECK:STDOUT: %ptr.ac4: type = ptr_type %T.as_type.468 [symbolic] +// CHECK:STDOUT: %Ptr_where.type.928: type = facet_type <@Ptr where %impl.elem0.92c = %ptr.ac4> [symbolic] +// CHECK:STDOUT: %Ptr.impl_witness.668: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.as_type.468) [symbolic] +// CHECK:STDOUT: %require_complete.92e: = require_complete_type %Ptr_where.type.928 [symbolic] +// CHECK:STDOUT: %.184: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.as_type.468) [symbolic] +// CHECK:STDOUT: %.e16: Core.Form = init_form %ptr.ac4 [symbolic] +// CHECK:STDOUT: %pattern_type.f62: type = pattern_type %ptr.ac4 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.233: = require_complete_type %T.as_type.6c8 [symbolic] -// CHECK:STDOUT: %require_complete.b3d: = require_complete_type %ptr.3c2 [symbolic] +// CHECK:STDOUT: %require_complete.35c: = require_complete_type %T.as_type.468 [symbolic] +// CHECK:STDOUT: %require_complete.841: = require_complete_type %ptr.ac4 [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.lookup_impl_witness.3b7: = lookup_impl_witness %ptr.3c2, @Copy [symbolic] -// CHECK:STDOUT: %.4fe: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.6c8) [symbolic] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.3c2, (%Copy.lookup_impl_witness.3b7) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.666: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] -// CHECK:STDOUT: %.1ab: type = fn_type_with_self_type %Copy.WithSelf.Op.type.666, %Copy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.077: %.1ab = impl_witness_access %Copy.lookup_impl_witness.3b7, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.9fb: = specific_impl_function %impl.elem0.077, @Copy.WithSelf.Op(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d90: = lookup_impl_witness %ptr.ac4, @Copy [symbolic] +// CHECK:STDOUT: %.ee9: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.468) [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.ac4, (%Copy.lookup_impl_witness.d90) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.a39: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] +// CHECK:STDOUT: %.229: type = fn_type_with_self_type %Copy.WithSelf.Op.type.a39, %Copy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.1f8: %.229 = impl_witness_access %Copy.lookup_impl_witness.d90, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.d80: = specific_impl_function %impl.elem0.1f8, @Copy.WithSelf.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1176,15 +1176,15 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc7_30: type = name_ref U, %U.loc7_21.1 [symbolic = %U.loc7_21.2 (constants.%U.67d)] // CHECK:STDOUT: %Ptr.ref: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] -// CHECK:STDOUT: %.Self.loc7_39: %Ptr.type = symbolic_binding .Self [symbolic_self = constants.%.Self.332] -// CHECK:STDOUT: %.Self.ref: %Ptr.type = name_ref .Self, %.Self.loc7_39 [symbolic_self = constants.%.Self.332] +// CHECK:STDOUT: %.Self.loc7_39: %Ptr.type = symbolic_binding .Self [symbolic_self = constants.%.Self.ffa] +// CHECK:STDOUT: %.Self.ref: %Ptr.type = name_ref .Self, %.Self.loc7_39 [symbolic_self = constants.%.Self.ffa] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc7_45: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.a3d] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Ptr.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.bd8] +// CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.b1a] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Ptr.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.92c] // CHECK:STDOUT: %U.ref.loc7_53: type = name_ref U, %U.loc7_21.1 [symbolic = %U.loc7_21.2 (constants.%U.67d)] // CHECK:STDOUT: %ptr.loc7_54.1: type = ptr_type %U.ref.loc7_53 [symbolic = %ptr.loc7_54.2 (constants.%ptr.e8f8f9.1)] -// CHECK:STDOUT: %.loc7_39: type = where_expr [symbolic = %Ptr_where.type (constants.%Ptr_where.type.bb9)] { +// CHECK:STDOUT: %.loc7_39: type = where_expr [symbolic = %Ptr_where.type (constants.%Ptr_where.type.71f)] { // CHECK:STDOUT: requirement_base_facet_type %Ptr.ref // CHECK:STDOUT: requirement_rewrite %impl.elem0, %ptr.loc7_54.1 // CHECK:STDOUT: } @@ -1195,42 +1195,42 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %U.loc7_21.1: type = symbolic_binding U, 0 [symbolic = %U.loc7_21.2 (constants.%U.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %T.patt: %pattern_type.51e = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc9_20 (%pattern_type.256) = ref_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc9_20 (%pattern_type.256) = var_param_pattern %t.patt [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_29 (%pattern_type.438) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_29 (%pattern_type.438) = return_slot_pattern %return.param_patt, %impl.elem0.loc9 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.f5d = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc9_20 (%pattern_type.756) = ref_binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc9_20 (%pattern_type.756) = var_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_29 (%pattern_type.f62) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_29 (%pattern_type.f62) = return_slot_pattern %return.param_patt, %impl.elem0.loc9 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc9_28: %Ptr.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.7bc)] -// CHECK:STDOUT: %T.as_type.loc9_29: type = facet_access_type %T.ref.loc9_28 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.6c8)] -// CHECK:STDOUT: %.loc9_29.3: type = converted %T.ref.loc9_28, %T.as_type.loc9_29 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.6c8)] -// CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.a3d] -// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.140, element0 [symbolic = %ptr (constants.%ptr.3c2)] -// CHECK:STDOUT: %.loc9_29.4: Core.Form = init_form %impl.elem0.loc9 [symbolic = %.loc9_29.2 (constants.%.ed7)] +// CHECK:STDOUT: %T.ref.loc9_28: %Ptr.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.76f)] +// CHECK:STDOUT: %T.as_type.loc9_29: type = facet_access_type %T.ref.loc9_28 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.468)] +// CHECK:STDOUT: %.loc9_29.3: type = converted %T.ref.loc9_28, %T.as_type.loc9_29 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.468)] +// CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.b1a] +// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.668, element0 [symbolic = %ptr (constants.%ptr.ac4)] +// CHECK:STDOUT: %.loc9_29.4: Core.Form = init_form %impl.elem0.loc9 [symbolic = %.loc9_29.2 (constants.%.e16)] // CHECK:STDOUT: %.loc9_10: type = splice_block %Ptr.ref [concrete = constants.%Ptr.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %Ptr.ref: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc9_7.2: %Ptr.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.7bc)] -// CHECK:STDOUT: %t.param: ref @F.%T.as_type.loc9_22.1 (%T.as_type.6c8) = ref_param call_param0 -// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.6c8)] { -// CHECK:STDOUT: %T.ref.loc9_22: %Ptr.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.7bc)] -// CHECK:STDOUT: %T.as_type.loc9_22.2: type = facet_access_type %T.ref.loc9_22 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.6c8)] -// CHECK:STDOUT: %.loc9_22.2: type = converted %T.ref.loc9_22, %T.as_type.loc9_22.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.6c8)] +// CHECK:STDOUT: %T.loc9_7.2: %Ptr.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.76f)] +// CHECK:STDOUT: %t.param: ref @F.%T.as_type.loc9_22.1 (%T.as_type.468) = ref_param call_param0 +// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.468)] { +// CHECK:STDOUT: %T.ref.loc9_22: %Ptr.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.76f)] +// CHECK:STDOUT: %T.as_type.loc9_22.2: type = facet_access_type %T.ref.loc9_22 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.468)] +// CHECK:STDOUT: %.loc9_22.2: type = converted %T.ref.loc9_22, %T.as_type.loc9_22.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.468)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: ref @F.%T.as_type.loc9_22.1 (%T.as_type.6c8) = ref_binding t, %t.param -// CHECK:STDOUT: %return.param: ref @F.%ptr (%ptr.3c2) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%ptr (%ptr.3c2) = return_slot %return.param +// CHECK:STDOUT: %t: ref @F.%T.as_type.loc9_22.1 (%T.as_type.468) = ref_binding t, %t.param +// CHECK:STDOUT: %return.param: ref @F.%ptr (%ptr.ac4) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%ptr (%ptr.ac4) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Ptr { -// CHECK:STDOUT: %Self: %Ptr.type = symbolic_binding Self, 0 [symbolic = constants.%Self.ca4] +// CHECK:STDOUT: %Self: %Ptr.type = symbolic_binding Self, 0 [symbolic = constants.%Self.99f] // CHECK:STDOUT: %Ptr.WithSelf.decl = interface_with_self_decl @Ptr [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Type: type = assoc_const_decl @Type [concrete] { -// CHECK:STDOUT: %assoc0: %Ptr.assoc_type = assoc_entity element0, @Ptr.WithSelf.%Type [concrete = constants.%assoc0.a3d] +// CHECK:STDOUT: %assoc0: %Ptr.assoc_type = assoc_entity element0, @Ptr.WithSelf.%Type [concrete = constants.%assoc0.b1a] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1244,15 +1244,15 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: generic impl @U.as.Ptr.impl(%U.loc7_21.1: type) { // CHECK:STDOUT: %U.loc7_21.2: type = symbolic_binding U, 0 [symbolic = %U.loc7_21.2 (constants.%U.67d)] // CHECK:STDOUT: %ptr.loc7_54.2: type = ptr_type %U.loc7_21.2 [symbolic = %ptr.loc7_54.2 (constants.%ptr.e8f8f9.1)] -// CHECK:STDOUT: %Ptr_where.type: type = facet_type <@Ptr where constants.%impl.elem0.bd8 = %ptr.loc7_54.2> [symbolic = %Ptr_where.type (constants.%Ptr_where.type.bb9)] -// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2: = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(%U.loc7_21.2) [symbolic = %Ptr.impl_witness.loc7_56.2 (constants.%Ptr.impl_witness.1f9)] +// CHECK:STDOUT: %Ptr_where.type: type = facet_type <@Ptr where constants.%impl.elem0.92c = %ptr.loc7_54.2> [symbolic = %Ptr_where.type (constants.%Ptr_where.type.71f)] +// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2: = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(%U.loc7_21.2) [symbolic = %Ptr.impl_witness.loc7_56.2 (constants.%Ptr.impl_witness.dc2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Ptr_where.type [symbolic = %require_complete (constants.%require_complete.425)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Ptr_where.type [symbolic = %require_complete (constants.%require_complete.15c)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %U.ref.loc7_30 as %.loc7_39 { // CHECK:STDOUT: %Ptr.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @U.as.Ptr.impl [concrete] -// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.1: = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(constants.%U.67d) [symbolic = %Ptr.impl_witness.loc7_56.2 (constants.%Ptr.impl_witness.1f9)] +// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.1: = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(constants.%U.67d) [symbolic = %Ptr.impl_witness.loc7_56.2 (constants.%Ptr.impl_witness.dc2)] // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%ptr.e8f8f9.1 [symbolic = %ptr.loc7_54.2 (constants.%ptr.e8f8f9.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1262,124 +1262,124 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc9_7.2: %Ptr.type) { -// CHECK:STDOUT: %T.loc9_7.1: %Ptr.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.7bc)] -// CHECK:STDOUT: %T.as_type.loc9_22.1: type = facet_access_type %T.loc9_7.1 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.6c8)] -// CHECK:STDOUT: %pattern_type.loc9_20: type = pattern_type %T.as_type.loc9_22.1 [symbolic = %pattern_type.loc9_20 (constants.%pattern_type.256)] -// CHECK:STDOUT: %.loc9_29.1: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.as_type.loc9_22.1) [symbolic = %.loc9_29.1 (constants.%.dab)] -// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc9_22.1 [symbolic = %ptr (constants.%ptr.3c2)] -// CHECK:STDOUT: %.loc9_29.2: Core.Form = init_form %ptr [symbolic = %.loc9_29.2 (constants.%.ed7)] -// CHECK:STDOUT: %pattern_type.loc9_29: type = pattern_type %ptr [symbolic = %pattern_type.loc9_29 (constants.%pattern_type.438)] +// CHECK:STDOUT: %T.loc9_7.1: %Ptr.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.76f)] +// CHECK:STDOUT: %T.as_type.loc9_22.1: type = facet_access_type %T.loc9_7.1 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.468)] +// CHECK:STDOUT: %pattern_type.loc9_20: type = pattern_type %T.as_type.loc9_22.1 [symbolic = %pattern_type.loc9_20 (constants.%pattern_type.756)] +// CHECK:STDOUT: %.loc9_29.1: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.as_type.loc9_22.1) [symbolic = %.loc9_29.1 (constants.%.184)] +// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc9_22.1 [symbolic = %ptr (constants.%ptr.ac4)] +// CHECK:STDOUT: %.loc9_29.2: Core.Form = init_form %ptr [symbolic = %.loc9_29.2 (constants.%.e16)] +// CHECK:STDOUT: %pattern_type.loc9_29: type = pattern_type %ptr [symbolic = %pattern_type.loc9_29 (constants.%pattern_type.f62)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.as_type.loc9_22.1 [symbolic = %require_complete.loc9_15 (constants.%require_complete.233)] -// CHECK:STDOUT: %require_complete.loc9_25: = require_complete_type %ptr [symbolic = %require_complete.loc9_25 (constants.%require_complete.b3d)] -// CHECK:STDOUT: %.loc10_10.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.loc9_22.1) [symbolic = %.loc10_10.1 (constants.%.4fe)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.3b7)] +// CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.as_type.loc9_22.1 [symbolic = %require_complete.loc9_15 (constants.%require_complete.35c)] +// CHECK:STDOUT: %require_complete.loc9_25: = require_complete_type %ptr [symbolic = %require_complete.loc9_25 (constants.%require_complete.841)] +// CHECK:STDOUT: %.loc10_10.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.loc9_22.1) [symbolic = %.loc10_10.1 (constants.%.ee9)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d90)] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.666)] -// CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.1ab)] -// CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.1ab) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.077)] -// CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.9fb)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.a39)] +// CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.229)] +// CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.229) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.1f8)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.d80)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: ref @F.%T.as_type.loc9_22.1 (%T.as_type.6c8)) -> out %return.param: @F.%ptr (%ptr.3c2) { +// CHECK:STDOUT: fn(%t.param: ref @F.%T.as_type.loc9_22.1 (%T.as_type.468)) -> out %return.param: @F.%ptr (%ptr.ac4) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: ref @F.%T.as_type.loc9_22.1 (%T.as_type.6c8) = name_ref t, %t -// CHECK:STDOUT: %addr: @F.%ptr (%ptr.3c2) = addr_of %t.ref -// CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.1ab) = impl_witness_access constants.%Copy.lookup_impl_witness.3b7, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.077)] +// CHECK:STDOUT: %t.ref: ref @F.%T.as_type.loc9_22.1 (%T.as_type.468) = name_ref t, %t +// CHECK:STDOUT: %addr: @F.%ptr (%ptr.ac4) = addr_of %t.ref +// CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.229) = impl_witness_access constants.%Copy.lookup_impl_witness.d90, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.1f8)] // CHECK:STDOUT: %bound_method.loc10_10.1: = bound_method %addr, %impl.elem0.loc10_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.9fb)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.d80)] // CHECK:STDOUT: %bound_method.loc10_10.2: = bound_method %addr, %specific_impl_fn.loc10_10.1 -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @F.%ptr (%ptr.3c2) = call %bound_method.loc10_10.2(%addr) +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @F.%ptr (%ptr.ac4) = call %bound_method.loc10_10.2(%addr) // CHECK:STDOUT: return %Copy.WithSelf.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Self.ca4) { +// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Self.99f) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%.Self.332) { +// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%.Self.ffa) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%U.67d) { // CHECK:STDOUT: %U.loc7_21.2 => constants.%U.67d // CHECK:STDOUT: %ptr.loc7_54.2 => constants.%ptr.e8f8f9.1 -// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.bb9 -// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2 => constants.%Ptr.impl_witness.1f9 +// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.71f +// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2 => constants.%Ptr.impl_witness.dc2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Ptr.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%T.7bc) { +// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%T.76f) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%T.as_type.6c8) { -// CHECK:STDOUT: %U.loc7_21.2 => constants.%T.as_type.6c8 -// CHECK:STDOUT: %ptr.loc7_54.2 => constants.%ptr.3c2 -// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.b07 -// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2 => constants.%Ptr.impl_witness.140 +// CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%T.as_type.468) { +// CHECK:STDOUT: %U.loc7_21.2 => constants.%T.as_type.468 +// CHECK:STDOUT: %ptr.loc7_54.2 => constants.%ptr.ac4 +// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.928 +// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2 => constants.%Ptr.impl_witness.668 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.76a +// CHECK:STDOUT: %require_complete => constants.%require_complete.92e // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.7bc) { -// CHECK:STDOUT: %T.loc9_7.1 => constants.%T.7bc -// CHECK:STDOUT: %T.as_type.loc9_22.1 => constants.%T.as_type.6c8 -// CHECK:STDOUT: %pattern_type.loc9_20 => constants.%pattern_type.256 -// CHECK:STDOUT: %.loc9_29.1 => constants.%.dab -// CHECK:STDOUT: %ptr => constants.%ptr.3c2 -// CHECK:STDOUT: %.loc9_29.2 => constants.%.ed7 -// CHECK:STDOUT: %pattern_type.loc9_29 => constants.%pattern_type.438 +// CHECK:STDOUT: specific @F(constants.%T.76f) { +// CHECK:STDOUT: %T.loc9_7.1 => constants.%T.76f +// CHECK:STDOUT: %T.as_type.loc9_22.1 => constants.%T.as_type.468 +// CHECK:STDOUT: %pattern_type.loc9_20 => constants.%pattern_type.756 +// CHECK:STDOUT: %.loc9_29.1 => constants.%.184 +// CHECK:STDOUT: %ptr => constants.%ptr.ac4 +// CHECK:STDOUT: %.loc9_29.2 => constants.%.e16 +// CHECK:STDOUT: %pattern_type.loc9_29 => constants.%pattern_type.f62 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- final_impl_rewrite_of_symbolic_through_facet_value.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Ptr.type: type = facet_type <@Ptr> [concrete] -// CHECK:STDOUT: %Self.ca4: %Ptr.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.99f: %Ptr.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Ptr.assoc_type: type = assoc_entity_type @Ptr [concrete] -// CHECK:STDOUT: %assoc0.a3d: %Ptr.assoc_type = assoc_entity element0, @Ptr.WithSelf.%Type [concrete] +// CHECK:STDOUT: %assoc0.b1a: %Ptr.assoc_type = assoc_entity element0, @Ptr.WithSelf.%Type [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %U.67d: type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %.Self.332: %Ptr.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.332 [symbolic_self] -// CHECK:STDOUT: %Ptr.lookup_impl_witness: = lookup_impl_witness %.Self.332, @Ptr [symbolic_self] -// CHECK:STDOUT: %impl.elem0.bd8: type = impl_witness_access %Ptr.lookup_impl_witness, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.ffa: %Ptr.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ffa [symbolic_self] +// CHECK:STDOUT: %Ptr.lookup_impl_witness: = lookup_impl_witness %.Self.ffa, @Ptr [symbolic_self] +// CHECK:STDOUT: %impl.elem0.92c: type = impl_witness_access %Ptr.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %ptr.e8f8f9.1: type = ptr_type %U.67d [symbolic] -// CHECK:STDOUT: %Ptr_where.type.bb9: type = facet_type <@Ptr where %impl.elem0.bd8 = %ptr.e8f8f9.1> [symbolic] -// CHECK:STDOUT: %Ptr.impl_witness.1f9: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%U.67d) [symbolic] -// CHECK:STDOUT: %require_complete.425: = require_complete_type %Ptr_where.type.bb9 [symbolic] -// CHECK:STDOUT: %Ptr.facet: %Ptr.type = facet_value %U.67d, (%Ptr.impl_witness.1f9) [symbolic] -// CHECK:STDOUT: %pattern_type.51e: type = pattern_type %Ptr.type [concrete] -// CHECK:STDOUT: %T.7bc: %Ptr.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.6c8: type = facet_access_type %T.7bc [symbolic] -// CHECK:STDOUT: %pattern_type.256: type = pattern_type %T.as_type.6c8 [symbolic] -// CHECK:STDOUT: %ptr.3c2: type = ptr_type %T.as_type.6c8 [symbolic] -// CHECK:STDOUT: %Ptr_where.type.b07: type = facet_type <@Ptr where %impl.elem0.bd8 = %ptr.3c2> [symbolic] -// CHECK:STDOUT: %Ptr.impl_witness.140: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.as_type.6c8) [symbolic] -// CHECK:STDOUT: %require_complete.76a: = require_complete_type %Ptr_where.type.b07 [symbolic] -// CHECK:STDOUT: %.dab: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.as_type.6c8) [symbolic] -// CHECK:STDOUT: %.ed7: Core.Form = init_form %ptr.3c2 [symbolic] -// CHECK:STDOUT: %pattern_type.438: type = pattern_type %ptr.3c2 [symbolic] +// CHECK:STDOUT: %Ptr_where.type.71f: type = facet_type <@Ptr where %impl.elem0.92c = %ptr.e8f8f9.1> [symbolic] +// CHECK:STDOUT: %Ptr.impl_witness.dc2: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%U.67d) [symbolic] +// CHECK:STDOUT: %require_complete.15c: = require_complete_type %Ptr_where.type.71f [symbolic] +// CHECK:STDOUT: %Ptr.facet: %Ptr.type = facet_value %U.67d, (%Ptr.impl_witness.dc2) [symbolic] +// CHECK:STDOUT: %pattern_type.f5d: type = pattern_type %Ptr.type [concrete] +// CHECK:STDOUT: %T.76f: %Ptr.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.468: type = facet_access_type %T.76f [symbolic] +// CHECK:STDOUT: %pattern_type.756: type = pattern_type %T.as_type.468 [symbolic] +// CHECK:STDOUT: %ptr.ac4: type = ptr_type %T.as_type.468 [symbolic] +// CHECK:STDOUT: %Ptr_where.type.928: type = facet_type <@Ptr where %impl.elem0.92c = %ptr.ac4> [symbolic] +// CHECK:STDOUT: %Ptr.impl_witness.668: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.as_type.468) [symbolic] +// CHECK:STDOUT: %require_complete.92e: = require_complete_type %Ptr_where.type.928 [symbolic] +// CHECK:STDOUT: %.184: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.as_type.468) [symbolic] +// CHECK:STDOUT: %.e16: Core.Form = init_form %ptr.ac4 [symbolic] +// CHECK:STDOUT: %pattern_type.f62: type = pattern_type %ptr.ac4 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.233: = require_complete_type %T.as_type.6c8 [symbolic] -// CHECK:STDOUT: %require_complete.b3d: = require_complete_type %ptr.3c2 [symbolic] +// CHECK:STDOUT: %require_complete.35c: = require_complete_type %T.as_type.468 [symbolic] +// CHECK:STDOUT: %require_complete.841: = require_complete_type %ptr.ac4 [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.lookup_impl_witness.3b7: = lookup_impl_witness %ptr.3c2, @Copy [symbolic] -// CHECK:STDOUT: %.4fe: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.6c8) [symbolic] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.3c2, (%Copy.lookup_impl_witness.3b7) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.666: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] -// CHECK:STDOUT: %.1ab: type = fn_type_with_self_type %Copy.WithSelf.Op.type.666, %Copy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.077: %.1ab = impl_witness_access %Copy.lookup_impl_witness.3b7, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.9fb: = specific_impl_function %impl.elem0.077, @Copy.WithSelf.Op(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d90: = lookup_impl_witness %ptr.ac4, @Copy [symbolic] +// CHECK:STDOUT: %.ee9: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.468) [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.ac4, (%Copy.lookup_impl_witness.d90) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.a39: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] +// CHECK:STDOUT: %.229: type = fn_type_with_self_type %Copy.WithSelf.Op.type.a39, %Copy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.1f8: %.229 = impl_witness_access %Copy.lookup_impl_witness.d90, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.d80: = specific_impl_function %impl.elem0.1f8, @Copy.WithSelf.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1404,15 +1404,15 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc7_30: type = name_ref U, %U.loc7_21.1 [symbolic = %U.loc7_21.2 (constants.%U.67d)] // CHECK:STDOUT: %Ptr.ref: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] -// CHECK:STDOUT: %.Self.loc7_39: %Ptr.type = symbolic_binding .Self [symbolic_self = constants.%.Self.332] -// CHECK:STDOUT: %.Self.ref: %Ptr.type = name_ref .Self, %.Self.loc7_39 [symbolic_self = constants.%.Self.332] +// CHECK:STDOUT: %.Self.loc7_39: %Ptr.type = symbolic_binding .Self [symbolic_self = constants.%.Self.ffa] +// CHECK:STDOUT: %.Self.ref: %Ptr.type = name_ref .Self, %.Self.loc7_39 [symbolic_self = constants.%.Self.ffa] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc7_45: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.a3d] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Ptr.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.bd8] +// CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.b1a] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Ptr.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.92c] // CHECK:STDOUT: %U.ref.loc7_53: type = name_ref U, %U.loc7_21.1 [symbolic = %U.loc7_21.2 (constants.%U.67d)] // CHECK:STDOUT: %ptr.loc7_54.1: type = ptr_type %U.ref.loc7_53 [symbolic = %ptr.loc7_54.2 (constants.%ptr.e8f8f9.1)] -// CHECK:STDOUT: %.loc7_39: type = where_expr [symbolic = %Ptr_where.type (constants.%Ptr_where.type.bb9)] { +// CHECK:STDOUT: %.loc7_39: type = where_expr [symbolic = %Ptr_where.type (constants.%Ptr_where.type.71f)] { // CHECK:STDOUT: requirement_base_facet_type %Ptr.ref // CHECK:STDOUT: requirement_rewrite %impl.elem0, %ptr.loc7_54.1 // CHECK:STDOUT: } @@ -1423,41 +1423,41 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %U.loc7_21.1: type = symbolic_binding U, 0 [symbolic = %U.loc7_21.2 (constants.%U.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %T.patt: %pattern_type.51e = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc9_20 (%pattern_type.256) = ref_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc9_20 (%pattern_type.256) = var_param_pattern %t.patt [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_29 (%pattern_type.438) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_29 (%pattern_type.438) = return_slot_pattern %return.param_patt, %impl.elem0.loc9 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.f5d = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc9_20 (%pattern_type.756) = ref_binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc9_20 (%pattern_type.756) = var_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_29 (%pattern_type.f62) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_29 (%pattern_type.f62) = return_slot_pattern %return.param_patt, %impl.elem0.loc9 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc9_28: %Ptr.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.7bc)] +// CHECK:STDOUT: %T.ref.loc9_28: %Ptr.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.76f)] // CHECK:STDOUT: %Ptr.ref.loc9_31: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] -// CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.a3d] -// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.140, element0 [symbolic = %ptr (constants.%ptr.3c2)] -// CHECK:STDOUT: %.loc9_29.3: Core.Form = init_form %impl.elem0.loc9 [symbolic = %.loc9_29.2 (constants.%.ed7)] +// CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.b1a] +// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.668, element0 [symbolic = %ptr (constants.%ptr.ac4)] +// CHECK:STDOUT: %.loc9_29.3: Core.Form = init_form %impl.elem0.loc9 [symbolic = %.loc9_29.2 (constants.%.e16)] // CHECK:STDOUT: %.loc9_10: type = splice_block %Ptr.ref.loc9_10 [concrete = constants.%Ptr.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %Ptr.ref.loc9_10: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc9_7.2: %Ptr.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.7bc)] -// CHECK:STDOUT: %t.param: ref @F.%T.as_type.loc9_22.1 (%T.as_type.6c8) = ref_param call_param0 -// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.6c8)] { -// CHECK:STDOUT: %T.ref.loc9_22: %Ptr.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.7bc)] -// CHECK:STDOUT: %T.as_type.loc9_22.2: type = facet_access_type %T.ref.loc9_22 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.6c8)] -// CHECK:STDOUT: %.loc9_22.2: type = converted %T.ref.loc9_22, %T.as_type.loc9_22.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.6c8)] +// CHECK:STDOUT: %T.loc9_7.2: %Ptr.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.76f)] +// CHECK:STDOUT: %t.param: ref @F.%T.as_type.loc9_22.1 (%T.as_type.468) = ref_param call_param0 +// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.468)] { +// CHECK:STDOUT: %T.ref.loc9_22: %Ptr.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.76f)] +// CHECK:STDOUT: %T.as_type.loc9_22.2: type = facet_access_type %T.ref.loc9_22 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.468)] +// CHECK:STDOUT: %.loc9_22.2: type = converted %T.ref.loc9_22, %T.as_type.loc9_22.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.468)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: ref @F.%T.as_type.loc9_22.1 (%T.as_type.6c8) = ref_binding t, %t.param -// CHECK:STDOUT: %return.param: ref @F.%ptr (%ptr.3c2) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%ptr (%ptr.3c2) = return_slot %return.param +// CHECK:STDOUT: %t: ref @F.%T.as_type.loc9_22.1 (%T.as_type.468) = ref_binding t, %t.param +// CHECK:STDOUT: %return.param: ref @F.%ptr (%ptr.ac4) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%ptr (%ptr.ac4) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Ptr { -// CHECK:STDOUT: %Self: %Ptr.type = symbolic_binding Self, 0 [symbolic = constants.%Self.ca4] +// CHECK:STDOUT: %Self: %Ptr.type = symbolic_binding Self, 0 [symbolic = constants.%Self.99f] // CHECK:STDOUT: %Ptr.WithSelf.decl = interface_with_self_decl @Ptr [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Type: type = assoc_const_decl @Type [concrete] { -// CHECK:STDOUT: %assoc0: %Ptr.assoc_type = assoc_entity element0, @Ptr.WithSelf.%Type [concrete = constants.%assoc0.a3d] +// CHECK:STDOUT: %assoc0: %Ptr.assoc_type = assoc_entity element0, @Ptr.WithSelf.%Type [concrete = constants.%assoc0.b1a] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1471,15 +1471,15 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: generic impl @U.as.Ptr.impl(%U.loc7_21.1: type) { // CHECK:STDOUT: %U.loc7_21.2: type = symbolic_binding U, 0 [symbolic = %U.loc7_21.2 (constants.%U.67d)] // CHECK:STDOUT: %ptr.loc7_54.2: type = ptr_type %U.loc7_21.2 [symbolic = %ptr.loc7_54.2 (constants.%ptr.e8f8f9.1)] -// CHECK:STDOUT: %Ptr_where.type: type = facet_type <@Ptr where constants.%impl.elem0.bd8 = %ptr.loc7_54.2> [symbolic = %Ptr_where.type (constants.%Ptr_where.type.bb9)] -// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2: = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(%U.loc7_21.2) [symbolic = %Ptr.impl_witness.loc7_56.2 (constants.%Ptr.impl_witness.1f9)] +// CHECK:STDOUT: %Ptr_where.type: type = facet_type <@Ptr where constants.%impl.elem0.92c = %ptr.loc7_54.2> [symbolic = %Ptr_where.type (constants.%Ptr_where.type.71f)] +// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2: = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(%U.loc7_21.2) [symbolic = %Ptr.impl_witness.loc7_56.2 (constants.%Ptr.impl_witness.dc2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Ptr_where.type [symbolic = %require_complete (constants.%require_complete.425)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Ptr_where.type [symbolic = %require_complete (constants.%require_complete.15c)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %U.ref.loc7_30 as %.loc7_39 { // CHECK:STDOUT: %Ptr.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @U.as.Ptr.impl [concrete] -// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.1: = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(constants.%U.67d) [symbolic = %Ptr.impl_witness.loc7_56.2 (constants.%Ptr.impl_witness.1f9)] +// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.1: = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(constants.%U.67d) [symbolic = %Ptr.impl_witness.loc7_56.2 (constants.%Ptr.impl_witness.dc2)] // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%ptr.e8f8f9.1 [symbolic = %ptr.loc7_54.2 (constants.%ptr.e8f8f9.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1489,78 +1489,78 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc9_7.2: %Ptr.type) { -// CHECK:STDOUT: %T.loc9_7.1: %Ptr.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.7bc)] -// CHECK:STDOUT: %T.as_type.loc9_22.1: type = facet_access_type %T.loc9_7.1 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.6c8)] -// CHECK:STDOUT: %pattern_type.loc9_20: type = pattern_type %T.as_type.loc9_22.1 [symbolic = %pattern_type.loc9_20 (constants.%pattern_type.256)] -// CHECK:STDOUT: %.loc9_29.1: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.as_type.loc9_22.1) [symbolic = %.loc9_29.1 (constants.%.dab)] -// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc9_22.1 [symbolic = %ptr (constants.%ptr.3c2)] -// CHECK:STDOUT: %.loc9_29.2: Core.Form = init_form %ptr [symbolic = %.loc9_29.2 (constants.%.ed7)] -// CHECK:STDOUT: %pattern_type.loc9_29: type = pattern_type %ptr [symbolic = %pattern_type.loc9_29 (constants.%pattern_type.438)] +// CHECK:STDOUT: %T.loc9_7.1: %Ptr.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.76f)] +// CHECK:STDOUT: %T.as_type.loc9_22.1: type = facet_access_type %T.loc9_7.1 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.468)] +// CHECK:STDOUT: %pattern_type.loc9_20: type = pattern_type %T.as_type.loc9_22.1 [symbolic = %pattern_type.loc9_20 (constants.%pattern_type.756)] +// CHECK:STDOUT: %.loc9_29.1: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.as_type.loc9_22.1) [symbolic = %.loc9_29.1 (constants.%.184)] +// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc9_22.1 [symbolic = %ptr (constants.%ptr.ac4)] +// CHECK:STDOUT: %.loc9_29.2: Core.Form = init_form %ptr [symbolic = %.loc9_29.2 (constants.%.e16)] +// CHECK:STDOUT: %pattern_type.loc9_29: type = pattern_type %ptr [symbolic = %pattern_type.loc9_29 (constants.%pattern_type.f62)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.as_type.loc9_22.1 [symbolic = %require_complete.loc9_15 (constants.%require_complete.233)] -// CHECK:STDOUT: %require_complete.loc9_25: = require_complete_type %ptr [symbolic = %require_complete.loc9_25 (constants.%require_complete.b3d)] -// CHECK:STDOUT: %.loc10_10.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.loc9_22.1) [symbolic = %.loc10_10.1 (constants.%.4fe)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.3b7)] +// CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.as_type.loc9_22.1 [symbolic = %require_complete.loc9_15 (constants.%require_complete.35c)] +// CHECK:STDOUT: %require_complete.loc9_25: = require_complete_type %ptr [symbolic = %require_complete.loc9_25 (constants.%require_complete.841)] +// CHECK:STDOUT: %.loc10_10.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.loc9_22.1) [symbolic = %.loc10_10.1 (constants.%.ee9)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d90)] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.666)] -// CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.1ab)] -// CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.1ab) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.077)] -// CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.9fb)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.a39)] +// CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.229)] +// CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.229) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.1f8)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.d80)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: ref @F.%T.as_type.loc9_22.1 (%T.as_type.6c8)) -> out %return.param: @F.%ptr (%ptr.3c2) { +// CHECK:STDOUT: fn(%t.param: ref @F.%T.as_type.loc9_22.1 (%T.as_type.468)) -> out %return.param: @F.%ptr (%ptr.ac4) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: ref @F.%T.as_type.loc9_22.1 (%T.as_type.6c8) = name_ref t, %t -// CHECK:STDOUT: %addr: @F.%ptr (%ptr.3c2) = addr_of %t.ref -// CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.1ab) = impl_witness_access constants.%Copy.lookup_impl_witness.3b7, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.077)] +// CHECK:STDOUT: %t.ref: ref @F.%T.as_type.loc9_22.1 (%T.as_type.468) = name_ref t, %t +// CHECK:STDOUT: %addr: @F.%ptr (%ptr.ac4) = addr_of %t.ref +// CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.229) = impl_witness_access constants.%Copy.lookup_impl_witness.d90, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.1f8)] // CHECK:STDOUT: %bound_method.loc10_10.1: = bound_method %addr, %impl.elem0.loc10_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.9fb)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.d80)] // CHECK:STDOUT: %bound_method.loc10_10.2: = bound_method %addr, %specific_impl_fn.loc10_10.1 -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @F.%ptr (%ptr.3c2) = call %bound_method.loc10_10.2(%addr) +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @F.%ptr (%ptr.ac4) = call %bound_method.loc10_10.2(%addr) // CHECK:STDOUT: return %Copy.WithSelf.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Self.ca4) { +// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Self.99f) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%.Self.332) { +// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%.Self.ffa) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%U.67d) { // CHECK:STDOUT: %U.loc7_21.2 => constants.%U.67d // CHECK:STDOUT: %ptr.loc7_54.2 => constants.%ptr.e8f8f9.1 -// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.bb9 -// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2 => constants.%Ptr.impl_witness.1f9 +// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.71f +// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2 => constants.%Ptr.impl_witness.dc2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Ptr.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%T.as_type.6c8) { -// CHECK:STDOUT: %U.loc7_21.2 => constants.%T.as_type.6c8 -// CHECK:STDOUT: %ptr.loc7_54.2 => constants.%ptr.3c2 -// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.b07 -// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2 => constants.%Ptr.impl_witness.140 +// CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%T.as_type.468) { +// CHECK:STDOUT: %U.loc7_21.2 => constants.%T.as_type.468 +// CHECK:STDOUT: %ptr.loc7_54.2 => constants.%ptr.ac4 +// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.928 +// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2 => constants.%Ptr.impl_witness.668 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.76a +// CHECK:STDOUT: %require_complete => constants.%require_complete.92e // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%T.7bc) { +// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%T.76f) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.7bc) { -// CHECK:STDOUT: %T.loc9_7.1 => constants.%T.7bc -// CHECK:STDOUT: %T.as_type.loc9_22.1 => constants.%T.as_type.6c8 -// CHECK:STDOUT: %pattern_type.loc9_20 => constants.%pattern_type.256 -// CHECK:STDOUT: %.loc9_29.1 => constants.%.dab -// CHECK:STDOUT: %ptr => constants.%ptr.3c2 -// CHECK:STDOUT: %.loc9_29.2 => constants.%.ed7 -// CHECK:STDOUT: %pattern_type.loc9_29 => constants.%pattern_type.438 +// CHECK:STDOUT: specific @F(constants.%T.76f) { +// CHECK:STDOUT: %T.loc9_7.1 => constants.%T.76f +// CHECK:STDOUT: %T.as_type.loc9_22.1 => constants.%T.as_type.468 +// CHECK:STDOUT: %pattern_type.loc9_20 => constants.%pattern_type.756 +// CHECK:STDOUT: %.loc9_29.1 => constants.%.184 +// CHECK:STDOUT: %ptr => constants.%ptr.ac4 +// CHECK:STDOUT: %.loc9_29.2 => constants.%.e16 +// CHECK:STDOUT: %pattern_type.loc9_29 => constants.%pattern_type.f62 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/specific_args.carbon b/toolchain/check/testdata/impl/lookup/specific_args.carbon index ffd4cc5910ce..a600276bf57a 100644 --- a/toolchain/check/testdata/impl/lookup/specific_args.carbon +++ b/toolchain/check/testdata/impl/lookup/specific_args.carbon @@ -62,12 +62,12 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.50f: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self: %I.type.50f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self: %I.type.3fe = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.eff: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.b82: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self) [symbolic] // CHECK:STDOUT: %I.WithSelf.F: %I.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T) [symbolic] @@ -86,7 +86,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: .X = %X.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %I.decl: %I.type.48c = interface_decl @I [concrete = constants.%I.generic] { +// CHECK:STDOUT: %I.decl: %I.type.335 = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_17.1: type = splice_block %.loc4_17.2 [concrete = type] { @@ -111,22 +111,22 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T.loc4_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc4_14.1)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self.loc4_23.2: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc4_14.1)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self.loc4_23.2: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_23.1: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc4_23.1: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self)] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.eff) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.eff) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.b82) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.b82) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc4_36.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc4_36.1: type = splice_block %.loc4_36.3 [symbolic = %Self.as_type.loc4_36.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %.loc4_36.2: @I.WithSelf.F.%I.type (%I.type.50f) = specific_constant @I.%Self.loc4_23.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.ref: @I.WithSelf.F.%I.type (%I.type.50f) = name_ref Self, %.loc4_36.2 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %.loc4_36.2: @I.WithSelf.F.%I.type (%I.type.3fe) = specific_constant @I.%Self.loc4_23.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref: @I.WithSelf.F.%I.type (%I.type.3fe) = name_ref Self, %.loc4_36.2 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc4_36.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_36.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc4_36.3: type = converted %Self.ref, %Self.as_type.loc4_36.2 [symbolic = %Self.as_type.loc4_36.1 (constants.%Self.as_type)] // CHECK:STDOUT: } @@ -165,12 +165,12 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: .Self = constants.%X // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%T.loc4_14.2: type, @I.%Self.loc4_23.1: @I.%I.type (%I.type.50f)) { +// CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%T.loc4_14.2: type, @I.%Self.loc4_23.1: @I.%I.type (%I.type.3fe)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc4_36.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_36.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_36.1 [symbolic = %pattern_type (constants.%pattern_type.eff)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_36.1 [symbolic = %pattern_type (constants.%pattern_type.b82)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc4_36.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -183,10 +183,10 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%T, constants.%Self) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %I.type => constants.%I.type.50f +// CHECK:STDOUT: %I.type => constants.%I.type.3fe // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc4_36.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.eff +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { @@ -200,42 +200,42 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %X: type = class_type @X [concrete] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %I.type.50f: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self.501: %I.type.50f = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.908: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.501) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.3ed: %I.WithSelf.F.type.908 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.501 [symbolic] -// CHECK:STDOUT: %pattern_type.dfa: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %I.type.592: type = facet_type <@I, @I(%InInterfaceArgs)> [concrete] +// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self.a67: %I.type.3fe = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.0fc: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.a67) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.a92: %I.WithSelf.F.type.0fc = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.a67 [symbolic] +// CHECK:STDOUT: %pattern_type.efd: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %I.type.ec4: type = facet_type <@I, @I(%InInterfaceArgs)> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @X.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.19f: %I.type.592 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.7e0: type = fn_type @I.WithSelf.F, @I.WithSelf(%InInterfaceArgs, %Self.501) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.3e2: %I.WithSelf.F.type.7e0 = struct_value () [symbolic] -// CHECK:STDOUT: %I.assoc_type.90b: type = assoc_entity_type @I, @I(%InInterfaceArgs) [concrete] -// CHECK:STDOUT: %assoc0.12e: %I.assoc_type.90b = assoc_entity element0, imports.%Main.import_ref.bc7 [concrete] -// CHECK:STDOUT: %pattern_type.7b3: type = pattern_type %X [concrete] +// CHECK:STDOUT: %Self.8d9: %I.type.ec4 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.d6f: type = fn_type @I.WithSelf.F, @I.WithSelf(%InInterfaceArgs, %Self.a67) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.f6c: %I.WithSelf.F.type.d6f = struct_value () [symbolic] +// CHECK:STDOUT: %I.assoc_type.f32: type = assoc_entity_type @I, @I(%InInterfaceArgs) [concrete] +// CHECK:STDOUT: %assoc0.d86: %I.assoc_type.f32 = assoc_entity element0, imports.%Main.import_ref.35c [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %X [concrete] // CHECK:STDOUT: %X.as.I.impl.F.type: type = fn_type @X.as.I.impl.F [concrete] // CHECK:STDOUT: %X.as.I.impl.F: %X.as.I.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %I.facet: %I.type.592 = facet_value %X, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.d8a: type = fn_type @I.WithSelf.F, @I.WithSelf(%InInterfaceArgs, %I.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.413: %I.WithSelf.F.type.d8a = struct_value () [concrete] +// CHECK:STDOUT: %I.facet: %I.type.ec4 = facet_value %X, (%I.impl_witness) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.dba: type = fn_type @I.WithSelf.F, @I.WithSelf(%InInterfaceArgs, %I.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.d4f: %I.WithSelf.F.type.dba = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.I: %I.type.48c = import_ref Main//types, I, loaded [concrete = constants.%I.generic] +// CHECK:STDOUT: %Main.I: %I.type.335 = import_ref Main//types, I, loaded [concrete = constants.%I.generic] // CHECK:STDOUT: %Main.C = import_ref Main//types, C, unloaded // CHECK:STDOUT: %Main.X: type = import_ref Main//types, X, loaded [concrete = constants.%X] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//types, loc7_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.49e = import_ref Main//types, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.61d = import_ref Main//types, loc4_43, unloaded -// CHECK:STDOUT: %Main.F: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.908) = import_ref Main//types, F, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.3ed)] -// CHECK:STDOUT: %Main.import_ref.bc7 = import_ref Main//types, loc4_43, unloaded +// CHECK:STDOUT: %Main.import_ref.9c8 = import_ref Main//types, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.5f6 = import_ref Main//types, loc4_43, unloaded +// CHECK:STDOUT: %Main.F: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.0fc) = import_ref Main//types, F, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.a92)] +// CHECK:STDOUT: %Main.import_ref.35c = import_ref Main//types, loc4_43, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//types, loc4_14, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.8e3e51.2: @I.%I.type (%I.type.50f) = import_ref Main//types, loc4_23, loaded [symbolic = @I.%Self (constants.%Self.501)] -// CHECK:STDOUT: %Main.import_ref.157 = import_ref Main//types, loc4_23, unloaded +// CHECK:STDOUT: %Main.import_ref.d08dda.2: @I.%I.type (%I.type.3fe) = import_ref Main//types, loc4_23, loaded [symbolic = @I.%Self (constants.%Self.a67)] +// CHECK:STDOUT: %Main.import_ref.a43 = import_ref Main//types, loc4_23, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//types, loc4_14, loaded [symbolic = @I.%T (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -250,9 +250,9 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %InInterfaceArgs.decl: type = class_decl @InInterfaceArgs [concrete = constants.%InInterfaceArgs] {} {} // CHECK:STDOUT: impl_decl @X.as.I.impl [concrete] {} { // CHECK:STDOUT: %X.ref: type = name_ref X, imports.%Main.X [concrete = constants.%X] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, imports.%Main.I [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, imports.%Main.I [concrete = constants.%I.generic] // CHECK:STDOUT: %InInterfaceArgs.ref: type = name_ref InInterfaceArgs, file.%InInterfaceArgs.decl [concrete = constants.%InInterfaceArgs] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%InInterfaceArgs)> [concrete = constants.%I.type.592] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%InInterfaceArgs)> [concrete = constants.%I.type.ec4] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -260,13 +260,13 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.501)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a67)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.157 -// CHECK:STDOUT: .F = imports.%Main.import_ref.61d +// CHECK:STDOUT: .Self = imports.%Main.import_ref.a43 +// CHECK:STDOUT: .F = imports.%Main.import_ref.5f6 // CHECK:STDOUT: witness = (imports.%Main.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -275,8 +275,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: // CHECK:STDOUT: impl @X.as.I.impl: %X.ref as %I.type { // CHECK:STDOUT: %X.as.I.impl.F.decl: %X.as.I.impl.F.type = fn_decl @X.as.I.impl.F [concrete = constants.%X.as.I.impl.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.7b3 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.7b3 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.6cb = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.6cb = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %X = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @X.as.I.impl.%X.ref [concrete = constants.%X] @@ -303,15 +303,15 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.49e +// CHECK:STDOUT: .Self = imports.%Main.import_ref.9c8 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.8e3e51.2: @I.%I.type (%I.type.50f)) [from "types.carbon"] { +// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.d08dda.2: @I.%I.type (%I.type.3fe)) [from "types.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.501)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a67)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.dfa)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.efd)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -325,52 +325,52 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.501) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.a67) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%T, constants.%Self.501) { +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%T, constants.%Self.a67) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %Self => constants.%Self.501 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %Self => constants.%Self.a67 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.dfa +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.efd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%InInterfaceArgs) { // CHECK:STDOUT: %T => constants.%InInterfaceArgs // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.592 -// CHECK:STDOUT: %Self => constants.%Self.19f +// CHECK:STDOUT: %I.type => constants.%I.type.ec4 +// CHECK:STDOUT: %Self => constants.%Self.8d9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%InInterfaceArgs, constants.%Self.501) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%InInterfaceArgs, constants.%Self.a67) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%InInterfaceArgs -// CHECK:STDOUT: %I.type => constants.%I.type.592 -// CHECK:STDOUT: %Self => constants.%Self.501 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.7e0 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.3e2 -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.90b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.12e +// CHECK:STDOUT: %I.type => constants.%I.type.ec4 +// CHECK:STDOUT: %Self => constants.%Self.a67 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d6f +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.f6c +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.f32 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.d86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%InInterfaceArgs, constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%InInterfaceArgs -// CHECK:STDOUT: %I.type => constants.%I.type.592 +// CHECK:STDOUT: %I.type => constants.%I.type.ec4 // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d8a -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.413 -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.90b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.12e +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.dba +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.d4f +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.f32 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.d86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%InInterfaceArgs, constants.%I.facet) { // CHECK:STDOUT: %T => constants.%InInterfaceArgs -// CHECK:STDOUT: %I.type => constants.%I.type.592 +// CHECK:STDOUT: %I.type => constants.%I.type.ec4 // CHECK:STDOUT: %Self => constants.%I.facet // CHECK:STDOUT: %Self.as_type => constants.%X -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7b3 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6cb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_impl_in_interface_args.carbon @@ -379,59 +379,59 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.7b3: type = pattern_type %X [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %X [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %I.type.50f: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self.501: %I.type.50f = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.assoc_type.bd7: type = assoc_entity_type @I, @I(%T) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.908: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.501) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.3ed: %I.WithSelf.F.type.908 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.501 [symbolic] -// CHECK:STDOUT: %pattern_type.dfa: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self.a67: %I.type.3fe = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.assoc_type.b71: type = assoc_entity_type @I, @I(%T) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.0fc: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.a67) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.a92: %I.WithSelf.F.type.0fc = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.a67 [symbolic] +// CHECK:STDOUT: %pattern_type.efd: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %InInterfaceArgs: type = class_type @InInterfaceArgs [concrete] -// CHECK:STDOUT: %I.type.592: type = facet_type <@I, @I(%InInterfaceArgs)> [concrete] -// CHECK:STDOUT: %Self.19f: %I.type.592 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.7e0: type = fn_type @I.WithSelf.F, @I.WithSelf(%InInterfaceArgs, %Self.501) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.3e2: %I.WithSelf.F.type.7e0 = struct_value () [symbolic] -// CHECK:STDOUT: %I.assoc_type.90b: type = assoc_entity_type @I, @I(%InInterfaceArgs) [concrete] -// CHECK:STDOUT: %assoc0.845: %I.assoc_type.90b = assoc_entity element0, imports.%Main.import_ref.bb0 [concrete] -// CHECK:STDOUT: %assoc0.80c: %I.assoc_type.bd7 = assoc_entity element0, imports.%Main.import_ref.bc7 [symbolic] +// CHECK:STDOUT: %I.type.ec4: type = facet_type <@I, @I(%InInterfaceArgs)> [concrete] +// CHECK:STDOUT: %Self.8d9: %I.type.ec4 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.d6f: type = fn_type @I.WithSelf.F, @I.WithSelf(%InInterfaceArgs, %Self.a67) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.f6c: %I.WithSelf.F.type.d6f = struct_value () [symbolic] +// CHECK:STDOUT: %I.assoc_type.f32: type = assoc_entity_type @I, @I(%InInterfaceArgs) [concrete] +// CHECK:STDOUT: %assoc0.7f7: %I.assoc_type.f32 = assoc_entity element0, imports.%Main.import_ref.620 [concrete] +// CHECK:STDOUT: %assoc0.341: %I.assoc_type.b71 = assoc_entity element0, imports.%Main.import_ref.35c [symbolic] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %I.facet: %I.type.592 = facet_value %X, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.586: type = fn_type @I.WithSelf.F, @I.WithSelf(%InInterfaceArgs, %I.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.b3d: %I.WithSelf.F.type.586 = struct_value () [concrete] -// CHECK:STDOUT: %.e4a: type = fn_type_with_self_type %I.WithSelf.F.type.586, %I.facet [concrete] +// CHECK:STDOUT: %I.facet: %I.type.ec4 = facet_value %X, (%I.impl_witness) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.27c: type = fn_type @I.WithSelf.F, @I.WithSelf(%InInterfaceArgs, %I.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.f8d: %I.WithSelf.F.type.27c = struct_value () [concrete] +// CHECK:STDOUT: %.a22: type = fn_type_with_self_type %I.WithSelf.F.type.27c, %I.facet [concrete] // CHECK:STDOUT: %X.as.I.impl.F.type: type = fn_type @X.as.I.impl.F [concrete] // CHECK:STDOUT: %X.as.I.impl.F: %X.as.I.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.I: %I.type.48c = import_ref Main//types, I, loaded [concrete = constants.%I.generic] +// CHECK:STDOUT: %Main.I: %I.type.335 = import_ref Main//types, I, loaded [concrete = constants.%I.generic] // CHECK:STDOUT: %Main.C = import_ref Main//types, C, unloaded // CHECK:STDOUT: %Main.X: type = import_ref Main//types, X, loaded [concrete = constants.%X] // CHECK:STDOUT: %Main.InInterfaceArgs: type = import_ref Main//impl_in_interface_args, InInterfaceArgs, loaded [concrete = constants.%InInterfaceArgs] // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//types, loc7_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.49e = import_ref Main//types, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.28c: @I.WithSelf.%I.assoc_type (%I.assoc_type.bd7) = import_ref Main//types, loc4_43, loaded [symbolic = @I.WithSelf.%assoc0 (constants.%assoc0.80c)] +// CHECK:STDOUT: %Main.import_ref.9c8 = import_ref Main//types, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c60: @I.WithSelf.%I.assoc_type (%I.assoc_type.b71) = import_ref Main//types, loc4_43, loaded [symbolic = @I.WithSelf.%assoc0 (constants.%assoc0.341)] // CHECK:STDOUT: %Main.F = import_ref Main//types, F, unloaded -// CHECK:STDOUT: %Main.import_ref.bb0: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.908) = import_ref Main//types, loc4_43, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.3ed)] +// CHECK:STDOUT: %Main.import_ref.620: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.0fc) = import_ref Main//types, loc4_43, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.a92)] // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//types, loc4_14, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.8e3e51.2: @I.%I.type (%I.type.50f) = import_ref Main//types, loc4_23, loaded [symbolic = @I.%Self (constants.%Self.501)] -// CHECK:STDOUT: %Main.import_ref.157 = import_ref Main//types, loc4_23, unloaded +// CHECK:STDOUT: %Main.import_ref.d08dda.2: @I.%I.type (%I.type.3fe) = import_ref Main//types, loc4_23, loaded [symbolic = @I.%Self (constants.%Self.a67)] +// CHECK:STDOUT: %Main.import_ref.a43 = import_ref Main//types, loc4_23, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//types, loc4_14, loaded [symbolic = @I.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//impl_in_interface_args, loc5_24, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.261 = import_ref Main//impl_in_interface_args, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.bc7 = import_ref Main//types, loc4_43, unloaded -// CHECK:STDOUT: %Main.import_ref.908: = import_ref Main//impl_in_interface_args, loc7_30, loaded [concrete = constants.%I.impl_witness] -// CHECK:STDOUT: %Main.import_ref.178: type = import_ref Main//impl_in_interface_args, loc7_6, loaded [concrete = constants.%X] -// CHECK:STDOUT: %Main.import_ref.f0c: type = import_ref Main//impl_in_interface_args, loc7_28, loaded [concrete = constants.%I.type.592] -// CHECK:STDOUT: %Main.import_ref.628: %X.as.I.impl.F.type = import_ref Main//impl_in_interface_args, loc7_58, loaded [concrete = constants.%X.as.I.impl.F] -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.628), @X.as.I.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.9ad = import_ref Main//impl_in_interface_args, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.35c = import_ref Main//types, loc4_43, unloaded +// CHECK:STDOUT: %Main.import_ref.743: = import_ref Main//impl_in_interface_args, loc7_30, loaded [concrete = constants.%I.impl_witness] +// CHECK:STDOUT: %Main.import_ref.57b: type = import_ref Main//impl_in_interface_args, loc7_6, loaded [concrete = constants.%X] +// CHECK:STDOUT: %Main.import_ref.555: type = import_ref Main//impl_in_interface_args, loc7_28, loaded [concrete = constants.%I.type.ec4] +// CHECK:STDOUT: %Main.import_ref.0d0: %X.as.I.impl.F.type = import_ref Main//impl_in_interface_args, loc7_58, loaded [concrete = constants.%X.as.I.impl.F] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.0d0), @X.as.I.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -444,8 +444,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.7b3 = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.7b3 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.6cb = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6cb = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %X = value_param call_param0 // CHECK:STDOUT: %X.ref: type = name_ref X, imports.%Main.X [concrete = constants.%X] @@ -457,58 +457,58 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.501)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a67)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.157 -// CHECK:STDOUT: .F = imports.%Main.import_ref.28c +// CHECK:STDOUT: .Self = imports.%Main.import_ref.a43 +// CHECK:STDOUT: .F = imports.%Main.import_ref.c60 // CHECK:STDOUT: witness = (imports.%Main.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @X.as.I.impl: imports.%Main.import_ref.178 as imports.%Main.import_ref.f0c [from "impl_in_interface_args.carbon"] { +// CHECK:STDOUT: impl @X.as.I.impl: imports.%Main.import_ref.57b as imports.%Main.import_ref.555 [from "impl_in_interface_args.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Main.import_ref.908 +// CHECK:STDOUT: witness = imports.%Main.import_ref.743 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @X [from "types.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.49e +// CHECK:STDOUT: .Self = imports.%Main.import_ref.9c8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @InInterfaceArgs [from "impl_in_interface_args.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.261 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.9ad // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%x.param: %X) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: %X = name_ref x, %x -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, imports.%Main.I [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, imports.%Main.I [concrete = constants.%I.generic] // CHECK:STDOUT: %InInterfaceArgs.ref: type = name_ref InInterfaceArgs, imports.%Main.InInterfaceArgs [concrete = constants.%InInterfaceArgs] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%InInterfaceArgs)> [concrete = constants.%I.type.592] -// CHECK:STDOUT: %.loc6: %I.assoc_type.90b = specific_constant imports.%Main.import_ref.28c, @I.WithSelf(constants.%InInterfaceArgs, constants.%Self.501) [concrete = constants.%assoc0.845] -// CHECK:STDOUT: %F.ref: %I.assoc_type.90b = name_ref F, %.loc6 [concrete = constants.%assoc0.845] -// CHECK:STDOUT: %impl.elem0: %.e4a = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%X.as.I.impl.F] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%InInterfaceArgs)> [concrete = constants.%I.type.ec4] +// CHECK:STDOUT: %.loc6: %I.assoc_type.f32 = specific_constant imports.%Main.import_ref.c60, @I.WithSelf(constants.%InInterfaceArgs, constants.%Self.a67) [concrete = constants.%assoc0.7f7] +// CHECK:STDOUT: %F.ref: %I.assoc_type.f32 = name_ref F, %.loc6 [concrete = constants.%assoc0.7f7] +// CHECK:STDOUT: %impl.elem0: %.a22 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%X.as.I.impl.F] // CHECK:STDOUT: %bound_method: = bound_method %x.ref, %impl.elem0 // CHECK:STDOUT: %X.as.I.impl.F.call: init %empty_tuple.type = call %bound_method(%x.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.8e3e51.2: @I.%I.type (%I.type.50f)) [from "types.carbon"] { +// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.d08dda.2: @I.%I.type (%I.type.3fe)) [from "types.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.501)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a67)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.dfa)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.efd)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -519,44 +519,44 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.501) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.a67) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%T, constants.%Self.501) { +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%T, constants.%Self.a67) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %Self => constants.%Self.501 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %Self => constants.%Self.a67 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.dfa +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.efd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%InInterfaceArgs) { // CHECK:STDOUT: %T => constants.%InInterfaceArgs // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.592 -// CHECK:STDOUT: %Self => constants.%Self.19f +// CHECK:STDOUT: %I.type => constants.%I.type.ec4 +// CHECK:STDOUT: %Self => constants.%Self.8d9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%InInterfaceArgs, constants.%Self.501) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%InInterfaceArgs, constants.%Self.a67) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%InInterfaceArgs -// CHECK:STDOUT: %I.type => constants.%I.type.592 -// CHECK:STDOUT: %Self => constants.%Self.501 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.7e0 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.3e2 -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.90b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.845 +// CHECK:STDOUT: %I.type => constants.%I.type.ec4 +// CHECK:STDOUT: %Self => constants.%Self.a67 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d6f +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.f6c +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.f32 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.7f7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%InInterfaceArgs, constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%InInterfaceArgs -// CHECK:STDOUT: %I.type => constants.%I.type.592 +// CHECK:STDOUT: %I.type => constants.%I.type.ec4 // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.586 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.b3d -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.90b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.845 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.27c +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.f8d +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.f32 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.7f7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- impl_in_class_args.carbon @@ -568,47 +568,47 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %C.a67: type = class_type @C, @C(%InClassArgs) [concrete] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.50f: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self.501: %I.type.50f = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.908: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.501) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.3ed: %I.WithSelf.F.type.908 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.501 [symbolic] -// CHECK:STDOUT: %pattern_type.dfa: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %C.165: type = class_type @C, @C(%InClassArgs) [concrete] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self.a67: %I.type.3fe = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.0fc: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.a67) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.a92: %I.WithSelf.F.type.0fc = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.a67 [symbolic] +// CHECK:STDOUT: %pattern_type.efd: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %X: type = class_type @X [concrete] -// CHECK:STDOUT: %I.type.4fc: type = facet_type <@I, @I(%X)> [concrete] +// CHECK:STDOUT: %I.type.d91: type = facet_type <@I, @I(%X)> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.882: %I.type.4fc = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.cd7: type = fn_type @I.WithSelf.F, @I.WithSelf(%X, %Self.501) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.239: %I.WithSelf.F.type.cd7 = struct_value () [symbolic] -// CHECK:STDOUT: %I.assoc_type.304: type = assoc_entity_type @I, @I(%X) [concrete] -// CHECK:STDOUT: %assoc0.86d: %I.assoc_type.304 = assoc_entity element0, imports.%Main.import_ref.bc7 [concrete] -// CHECK:STDOUT: %pattern_type.f7b: type = pattern_type %C.a67 [concrete] +// CHECK:STDOUT: %Self.c9d: %I.type.d91 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.7f9: type = fn_type @I.WithSelf.F, @I.WithSelf(%X, %Self.a67) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.51f: %I.WithSelf.F.type.7f9 = struct_value () [symbolic] +// CHECK:STDOUT: %I.assoc_type.696: type = assoc_entity_type @I, @I(%X) [concrete] +// CHECK:STDOUT: %assoc0.a42: %I.assoc_type.696 = assoc_entity element0, imports.%Main.import_ref.35c [concrete] +// CHECK:STDOUT: %pattern_type.90a: type = pattern_type %C.165 [concrete] // 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: %I.facet: %I.type.4fc = facet_value %C.a67, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.f64: type = fn_type @I.WithSelf.F, @I.WithSelf(%X, %I.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.807: %I.WithSelf.F.type.f64 = struct_value () [concrete] +// CHECK:STDOUT: %I.facet: %I.type.d91 = facet_value %C.165, (%I.impl_witness) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.426: type = fn_type @I.WithSelf.F, @I.WithSelf(%X, %I.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.864: %I.WithSelf.F.type.426 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.I: %I.type.48c = import_ref Main//types, I, loaded [concrete = constants.%I.generic] +// CHECK:STDOUT: %Main.I: %I.type.335 = import_ref Main//types, I, loaded [concrete = constants.%I.generic] // CHECK:STDOUT: %Main.C: %C.type = import_ref Main//types, C, loaded [concrete = constants.%C.generic] // CHECK:STDOUT: %Main.X: type = import_ref Main//types, X, loaded [concrete = constants.%X] // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//types, loc5_20, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a5 = import_ref Main//types, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.189 = import_ref Main//types, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.1: type = import_ref Main//types, loc5_10, loaded [symbolic = @C.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.61d = import_ref Main//types, loc4_43, unloaded -// CHECK:STDOUT: %Main.F: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.908) = import_ref Main//types, F, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.3ed)] -// CHECK:STDOUT: %Main.import_ref.bc7 = import_ref Main//types, loc4_43, unloaded +// CHECK:STDOUT: %Main.import_ref.5f6 = import_ref Main//types, loc4_43, unloaded +// CHECK:STDOUT: %Main.F: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.0fc) = import_ref Main//types, F, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.a92)] +// CHECK:STDOUT: %Main.import_ref.35c = import_ref Main//types, loc4_43, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//types, loc4_14, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.8e3e51.2: @I.%I.type (%I.type.50f) = import_ref Main//types, loc4_23, loaded [symbolic = @I.%Self (constants.%Self.501)] -// CHECK:STDOUT: %Main.import_ref.157 = import_ref Main//types, loc4_23, unloaded +// CHECK:STDOUT: %Main.import_ref.d08dda.2: @I.%I.type (%I.type.3fe) = import_ref Main//types, loc4_23, loaded [symbolic = @I.%Self (constants.%Self.a67)] +// CHECK:STDOUT: %Main.import_ref.a43 = import_ref Main//types, loc4_23, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//types, loc4_14, loaded [symbolic = @I.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//types, loc7_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.49e = import_ref Main//types, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.9c8 = import_ref Main//types, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -623,10 +623,10 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: impl_decl @C.as.I.impl [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C.generic] // CHECK:STDOUT: %InClassArgs.ref: type = name_ref InClassArgs, file.%InClassArgs.decl [concrete = constants.%InClassArgs] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%InClassArgs) [concrete = constants.%C.a67] -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, imports.%Main.I [concrete = constants.%I.generic] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%InClassArgs) [concrete = constants.%C.165] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, imports.%Main.I [concrete = constants.%I.generic] // CHECK:STDOUT: %X.ref: type = name_ref X, imports.%Main.X [concrete = constants.%X] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%X)> [concrete = constants.%I.type.4fc] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%X)> [concrete = constants.%I.type.d91] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -634,13 +634,13 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.501)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a67)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.157 -// CHECK:STDOUT: .F = imports.%Main.import_ref.61d +// CHECK:STDOUT: .Self = imports.%Main.import_ref.a43 +// CHECK:STDOUT: .F = imports.%Main.import_ref.5f6 // CHECK:STDOUT: witness = (imports.%Main.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -649,12 +649,12 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.I.impl: %C as %I.type { // CHECK:STDOUT: %C.as.I.impl.F.decl: %C.as.I.impl.F.type = fn_decl @C.as.I.impl.F [concrete = constants.%C.as.I.impl.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.f7b = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.f7b = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.90a = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.90a = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: %C.a67 = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.I.impl.%C [concrete = constants.%C.a67] -// CHECK:STDOUT: %self: %C.a67 = value_binding self, %self.param +// CHECK:STDOUT: %self.param: %C.165 = value_param call_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.I.impl.%C [concrete = constants.%C.165] +// CHECK:STDOUT: %self: %C.165 = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%C.as.I.impl.F.decl), @C.as.I.impl [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness] @@ -682,7 +682,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.6a5 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.189 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -690,20 +690,20 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.49e +// CHECK:STDOUT: .Self = imports.%Main.import_ref.9c8 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.b3bc94.3: type, imports.%Main.import_ref.8e3e51.2: @I.%I.type (%I.type.50f)) [from "types.carbon"] { +// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.b3bc94.3: type, imports.%Main.import_ref.d08dda.2: @I.%I.type (%I.type.3fe)) [from "types.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.501)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a67)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.dfa)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.efd)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @C.as.I.impl.F(%self.param: %C.a67) { +// CHECK:STDOUT: fn @C.as.I.impl.F(%self.param: %C.165) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -722,52 +722,52 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.501) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.a67) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%T, constants.%Self.501) { +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%T, constants.%Self.a67) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %Self => constants.%Self.501 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %Self => constants.%Self.a67 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.dfa +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.efd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%X) { // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.4fc -// CHECK:STDOUT: %Self => constants.%Self.882 +// CHECK:STDOUT: %I.type => constants.%I.type.d91 +// CHECK:STDOUT: %Self => constants.%Self.c9d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%X, constants.%Self.501) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%X, constants.%Self.a67) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %I.type => constants.%I.type.4fc -// CHECK:STDOUT: %Self => constants.%Self.501 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.cd7 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.239 -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.304 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.86d +// CHECK:STDOUT: %I.type => constants.%I.type.d91 +// CHECK:STDOUT: %Self => constants.%Self.a67 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.7f9 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.51f +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.696 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.a42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%X, constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %I.type => constants.%I.type.4fc +// CHECK:STDOUT: %I.type => constants.%I.type.d91 // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.f64 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.807 -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.304 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.86d +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.426 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.864 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.696 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.a42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%X, constants.%I.facet) { // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %I.type => constants.%I.type.4fc +// CHECK:STDOUT: %I.type => constants.%I.type.d91 // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type => constants.%C.a67 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f7b +// CHECK:STDOUT: %Self.as_type => constants.%C.165 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.90a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_impl_in_class_args.carbon @@ -780,61 +780,61 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %InClassArgs: type = class_type @InClassArgs [concrete] -// CHECK:STDOUT: %C.a67: type = class_type @C, @C(%InClassArgs) [concrete] -// CHECK:STDOUT: %pattern_type.f7b: type = pattern_type %C.a67 [concrete] +// CHECK:STDOUT: %C.165: type = class_type @C, @C(%InClassArgs) [concrete] +// CHECK:STDOUT: %pattern_type.90a: type = pattern_type %C.165 [concrete] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.50f: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self.501: %I.type.50f = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.assoc_type.bd7: type = assoc_entity_type @I, @I(%T) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.908: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.501) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.3ed: %I.WithSelf.F.type.908 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.501 [symbolic] -// CHECK:STDOUT: %pattern_type.dfa: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self.a67: %I.type.3fe = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.assoc_type.b71: type = assoc_entity_type @I, @I(%T) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.0fc: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.a67) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.a92: %I.WithSelf.F.type.0fc = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.a67 [symbolic] +// CHECK:STDOUT: %pattern_type.efd: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %X: type = class_type @X [concrete] -// CHECK:STDOUT: %I.type.4fc: type = facet_type <@I, @I(%X)> [concrete] -// CHECK:STDOUT: %Self.882: %I.type.4fc = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.cd7: type = fn_type @I.WithSelf.F, @I.WithSelf(%X, %Self.501) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.239: %I.WithSelf.F.type.cd7 = struct_value () [symbolic] -// CHECK:STDOUT: %I.assoc_type.304: type = assoc_entity_type @I, @I(%X) [concrete] -// CHECK:STDOUT: %assoc0.629: %I.assoc_type.304 = assoc_entity element0, imports.%Main.import_ref.bb0 [concrete] -// CHECK:STDOUT: %assoc0.80c: %I.assoc_type.bd7 = assoc_entity element0, imports.%Main.import_ref.bc7 [symbolic] +// CHECK:STDOUT: %I.type.d91: type = facet_type <@I, @I(%X)> [concrete] +// CHECK:STDOUT: %Self.c9d: %I.type.d91 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.7f9: type = fn_type @I.WithSelf.F, @I.WithSelf(%X, %Self.a67) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.51f: %I.WithSelf.F.type.7f9 = struct_value () [symbolic] +// CHECK:STDOUT: %I.assoc_type.696: type = assoc_entity_type @I, @I(%X) [concrete] +// CHECK:STDOUT: %assoc0.563: %I.assoc_type.696 = assoc_entity element0, imports.%Main.import_ref.620 [concrete] +// CHECK:STDOUT: %assoc0.341: %I.assoc_type.b71 = assoc_entity element0, imports.%Main.import_ref.35c [symbolic] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %I.facet: %I.type.4fc = facet_value %C.a67, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.8dd: type = fn_type @I.WithSelf.F, @I.WithSelf(%X, %I.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.b11: %I.WithSelf.F.type.8dd = struct_value () [concrete] -// CHECK:STDOUT: %.3f0: type = fn_type_with_self_type %I.WithSelf.F.type.8dd, %I.facet [concrete] +// CHECK:STDOUT: %I.facet: %I.type.d91 = facet_value %C.165, (%I.impl_witness) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.c23: type = fn_type @I.WithSelf.F, @I.WithSelf(%X, %I.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.80b: %I.WithSelf.F.type.c23 = struct_value () [concrete] +// CHECK:STDOUT: %.325: type = fn_type_with_self_type %I.WithSelf.F.type.c23, %I.facet [concrete] // 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.I: %I.type.48c = import_ref Main//types, I, loaded [concrete = constants.%I.generic] +// CHECK:STDOUT: %Main.I: %I.type.335 = import_ref Main//types, I, loaded [concrete = constants.%I.generic] // CHECK:STDOUT: %Main.C: %C.type = import_ref Main//types, C, loaded [concrete = constants.%C.generic] // CHECK:STDOUT: %Main.X: type = import_ref Main//types, X, loaded [concrete = constants.%X] // CHECK:STDOUT: %Main.InClassArgs: type = import_ref Main//impl_in_class_args, InClassArgs, loaded [concrete = constants.%InClassArgs] // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//types, loc5_20, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a5 = import_ref Main//types, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.189 = import_ref Main//types, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.1: type = import_ref Main//types, loc5_10, loaded [symbolic = @C.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//impl_in_class_args, loc5_20, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.ad3 = import_ref Main//impl_in_class_args, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.28c: @I.WithSelf.%I.assoc_type (%I.assoc_type.bd7) = import_ref Main//types, loc4_43, loaded [symbolic = @I.WithSelf.%assoc0 (constants.%assoc0.80c)] +// CHECK:STDOUT: %Main.import_ref.195 = import_ref Main//impl_in_class_args, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c60: @I.WithSelf.%I.assoc_type (%I.assoc_type.b71) = import_ref Main//types, loc4_43, loaded [symbolic = @I.WithSelf.%assoc0 (constants.%assoc0.341)] // CHECK:STDOUT: %Main.F = import_ref Main//types, F, unloaded -// CHECK:STDOUT: %Main.import_ref.bb0: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.908) = import_ref Main//types, loc4_43, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.3ed)] +// CHECK:STDOUT: %Main.import_ref.620: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.0fc) = import_ref Main//types, loc4_43, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.a92)] // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//types, loc4_14, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.8e3e51.2: @I.%I.type (%I.type.50f) = import_ref Main//types, loc4_23, loaded [symbolic = @I.%Self (constants.%Self.501)] -// CHECK:STDOUT: %Main.import_ref.157 = import_ref Main//types, loc4_23, unloaded +// CHECK:STDOUT: %Main.import_ref.d08dda.2: @I.%I.type (%I.type.3fe) = import_ref Main//types, loc4_23, loaded [symbolic = @I.%Self (constants.%Self.a67)] +// CHECK:STDOUT: %Main.import_ref.a43 = import_ref Main//types, loc4_23, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//types, loc4_14, loaded [symbolic = @I.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.8f24d3.3: = import_ref Main//types, loc7_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.49e = import_ref Main//types, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.bc7 = import_ref Main//types, loc4_43, unloaded -// CHECK:STDOUT: %Main.import_ref.730: = import_ref Main//impl_in_class_args, loc7_29, loaded [concrete = constants.%I.impl_witness] -// CHECK:STDOUT: %Main.import_ref.8ee: type = import_ref Main//impl_in_class_args, loc7_19, loaded [concrete = constants.%C.a67] -// CHECK:STDOUT: %Main.import_ref.2da: type = import_ref Main//impl_in_class_args, loc7_27, loaded [concrete = constants.%I.type.4fc] -// CHECK:STDOUT: %Main.import_ref.628: %C.as.I.impl.F.type = import_ref Main//impl_in_class_args, loc7_57, loaded [concrete = constants.%C.as.I.impl.F] -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.628), @C.as.I.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.9c8 = import_ref Main//types, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.35c = import_ref Main//types, loc4_43, unloaded +// CHECK:STDOUT: %Main.import_ref.d12: = import_ref Main//impl_in_class_args, loc7_29, loaded [concrete = constants.%I.impl_witness] +// CHECK:STDOUT: %Main.import_ref.312: type = import_ref Main//impl_in_class_args, loc7_19, loaded [concrete = constants.%C.165] +// CHECK:STDOUT: %Main.import_ref.ae9: type = import_ref Main//impl_in_class_args, loc7_27, loaded [concrete = constants.%I.type.d91] +// CHECK:STDOUT: %Main.import_ref.0d0: %C.as.I.impl.F.type = import_ref Main//impl_in_class_args, loc7_57, loaded [concrete = constants.%C.as.I.impl.F] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.0d0), @C.as.I.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -847,16 +847,16 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { -// CHECK:STDOUT: %c.param_patt: %pattern_type.f7b = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.f7b = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.90a = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.90a = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %c.param: %C.a67 = value_param call_param0 -// CHECK:STDOUT: %.loc6_22: type = splice_block %C [concrete = constants.%C.a67] { +// CHECK:STDOUT: %c.param: %C.165 = value_param call_param0 +// CHECK:STDOUT: %.loc6_22: type = splice_block %C [concrete = constants.%C.165] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C.generic] // CHECK:STDOUT: %InClassArgs.ref: type = name_ref InClassArgs, imports.%Main.InClassArgs [concrete = constants.%InClassArgs] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%InClassArgs) [concrete = constants.%C.a67] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%InClassArgs) [concrete = constants.%C.165] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: %C.a67 = value_binding c, %c.param +// CHECK:STDOUT: %c: %C.165 = value_binding c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -864,22 +864,22 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.501)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a67)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.157 -// CHECK:STDOUT: .F = imports.%Main.import_ref.28c +// CHECK:STDOUT: .Self = imports.%Main.import_ref.a43 +// CHECK:STDOUT: .F = imports.%Main.import_ref.c60 // CHECK:STDOUT: witness = (imports.%Main.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.I.impl: imports.%Main.import_ref.8ee as imports.%Main.import_ref.2da [from "impl_in_class_args.carbon"] { +// CHECK:STDOUT: impl @C.as.I.impl: imports.%Main.import_ref.312 as imports.%Main.import_ref.ae9 [from "impl_in_class_args.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Main.import_ref.730 +// CHECK:STDOUT: witness = imports.%Main.import_ref.d12 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(imports.%Main.import_ref.b3bc94.1: type) [from "types.carbon"] { @@ -891,7 +891,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.6a5 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.189 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -899,36 +899,36 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.ad3 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.195 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @X [from "types.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.49e +// CHECK:STDOUT: .Self = imports.%Main.import_ref.9c8 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @H(%c.param: %C.a67) { +// CHECK:STDOUT: fn @H(%c.param: %C.165) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: %C.a67 = name_ref c, %c -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, imports.%Main.I [concrete = constants.%I.generic] +// CHECK:STDOUT: %c.ref: %C.165 = name_ref c, %c +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, imports.%Main.I [concrete = constants.%I.generic] // CHECK:STDOUT: %X.ref: type = name_ref X, imports.%Main.X [concrete = constants.%X] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%X)> [concrete = constants.%I.type.4fc] -// CHECK:STDOUT: %.loc6_34: %I.assoc_type.304 = specific_constant imports.%Main.import_ref.28c, @I.WithSelf(constants.%X, constants.%Self.501) [concrete = constants.%assoc0.629] -// CHECK:STDOUT: %F.ref: %I.assoc_type.304 = name_ref F, %.loc6_34 [concrete = constants.%assoc0.629] -// CHECK:STDOUT: %impl.elem0: %.3f0 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%X)> [concrete = constants.%I.type.d91] +// CHECK:STDOUT: %.loc6_34: %I.assoc_type.696 = specific_constant imports.%Main.import_ref.c60, @I.WithSelf(constants.%X, constants.%Self.a67) [concrete = constants.%assoc0.563] +// CHECK:STDOUT: %F.ref: %I.assoc_type.696 = name_ref F, %.loc6_34 [concrete = constants.%assoc0.563] +// CHECK:STDOUT: %impl.elem0: %.325 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %C.as.I.impl.F.call: init %empty_tuple.type = call %bound_method(%c.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.b3bc94.3: type, imports.%Main.import_ref.8e3e51.2: @I.%I.type (%I.type.50f)) [from "types.carbon"] { +// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.b3bc94.3: type, imports.%Main.import_ref.d08dda.2: @I.%I.type (%I.type.3fe)) [from "types.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.501)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a67)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.dfa)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.efd)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -949,43 +949,43 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.501) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.a67) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%T, constants.%Self.501) { +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%T, constants.%Self.a67) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %Self => constants.%Self.501 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %Self => constants.%Self.a67 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.dfa +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.efd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%X) { // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.4fc -// CHECK:STDOUT: %Self => constants.%Self.882 +// CHECK:STDOUT: %I.type => constants.%I.type.d91 +// CHECK:STDOUT: %Self => constants.%Self.c9d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%X, constants.%Self.501) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%X, constants.%Self.a67) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %I.type => constants.%I.type.4fc -// CHECK:STDOUT: %Self => constants.%Self.501 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.cd7 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.239 -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.304 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.629 +// CHECK:STDOUT: %I.type => constants.%I.type.d91 +// CHECK:STDOUT: %Self => constants.%Self.a67 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.7f9 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.51f +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.696 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.563 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%X, constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %I.type => constants.%I.type.4fc +// CHECK:STDOUT: %I.type => constants.%I.type.d91 // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.8dd -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.b11 -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.304 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.629 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.c23 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.80b +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.696 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.563 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/transitive.carbon b/toolchain/check/testdata/impl/lookup/transitive.carbon index 1dc8c7d3eef9..ca000b35017b 100644 --- a/toolchain/check/testdata/impl/lookup/transitive.carbon +++ b/toolchain/check/testdata/impl/lookup/transitive.carbon @@ -127,17 +127,17 @@ fn Call() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.a52: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.08d: %I.WithSelf.F.type.a52 = struct_value () [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.418: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ca5: %I.WithSelf.F.type.418 = struct_value () [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.3df: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // 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: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.9a6: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.a2c: %I.WithSelf.F.type.9a6 = struct_value () [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.51c: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.179: %I.WithSelf.F.type.51c = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -146,10 +146,10 @@ fn Call() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.8a2 = import_ref Main//i, loc4_33, unloaded -// CHECK:STDOUT: %Main.F: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.a52) = import_ref Main//i, F, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.08d)] -// CHECK:STDOUT: %Main.import_ref.c42703.2: %I.type = import_ref Main//i, loc4_13, loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//i, loc4_13, unloaded +// CHECK:STDOUT: %Main.import_ref.046 = import_ref Main//i, loc4_33, unloaded +// CHECK:STDOUT: %Main.F: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.418) = import_ref Main//i, F, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ca5)] +// CHECK:STDOUT: %Main.import_ref.e59c42.2: %I.type = import_ref Main//i, loc4_13, loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//i, loc4_13, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -169,8 +169,8 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "i.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .F = imports.%Main.import_ref.8a2 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .F = imports.%Main.import_ref.046 // CHECK:STDOUT: witness = (imports.%Main.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -178,8 +178,8 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.I.impl: %C.ref as %I.ref { // CHECK:STDOUT: %C.as.I.impl.F.decl: %C.as.I.impl.F.type = fn_decl @C.as.I.impl.F [concrete = constants.%C.as.I.impl.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.0d5 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.I.impl.%C.ref [concrete = constants.%C] @@ -202,10 +202,10 @@ fn Call() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.c42703.2: %I.type) [from "i.carbon"] { +// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.e59c42.2: %I.type) [from "i.carbon"] { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.3df)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.b3a)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -218,27 +218,27 @@ fn Call() { // CHECK:STDOUT: specific @I.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.a52 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.08d +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.418 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ca5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3df +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b3a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.9a6 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.a2c +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.51c +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.179 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet // CHECK:STDOUT: %Self.as_type => constants.%C -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d5 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- get.carbon @@ -247,7 +247,7 @@ fn Call() { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %Get.type: type = fn_type @Get [concrete] // CHECK:STDOUT: %Get: %Get.type = struct_value () [concrete] @@ -260,7 +260,7 @@ fn Call() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//c, loc6_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//c, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//c, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -276,7 +276,7 @@ fn Call() { // CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %.loc6: Core.Form = init_form %C.ref [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc6: Core.Form = init_form %C.ref [concrete = constants.%.a44] // CHECK:STDOUT: %return.param: ref %C = out_param call_param0 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } @@ -286,7 +286,7 @@ fn Call() { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Get() -> out %return.param: %C; @@ -303,23 +303,23 @@ fn Call() { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.2e1: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.a52: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.2e1) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.08d: %I.WithSelf.F.type.a52 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type.a70: type = facet_access_type %Self.2e1 [symbolic] -// CHECK:STDOUT: %pattern_type.3df: type = pattern_type %Self.as_type.a70 [symbolic] +// CHECK:STDOUT: %Self.dda: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.418: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.dda) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ca5: %I.WithSelf.F.type.418 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type.b38: type = facet_access_type %Self.dda [symbolic] +// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %Self.as_type.b38 [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.210: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.50e [concrete] +// CHECK:STDOUT: %assoc0.232: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9f7 [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.897: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.702: %I.WithSelf.F.type.897 = struct_value () [concrete] -// CHECK:STDOUT: %.f80: type = fn_type_with_self_type %I.WithSelf.F.type.897, %I.facet [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.1e6: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.6d0: %I.WithSelf.F.type.1e6 = struct_value () [concrete] +// CHECK:STDOUT: %.fa9: type = fn_type_with_self_type %I.WithSelf.F.type.1e6, %I.facet [concrete] // 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.790b3b.2: type = fn_type @Destroy.Op.loc9_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -331,17 +331,17 @@ fn Call() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//get, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//get, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.a47: %I.assoc_type = import_ref Main//i, loc4_33, loaded [concrete = constants.%assoc0.210] +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//get, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.1b3: %I.assoc_type = import_ref Main//i, loc4_33, loaded [concrete = constants.%assoc0.232] // CHECK:STDOUT: %Main.F = import_ref Main//i, F, unloaded -// CHECK:STDOUT: %Main.import_ref.c42703.2: %I.type = import_ref Main//i, loc4_13, loaded [symbolic = constants.%Self.2e1] -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//i, loc4_13, unloaded -// CHECK:STDOUT: %Main.import_ref.50e: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.a52) = import_ref Main//i, loc4_33, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.08d)] -// CHECK:STDOUT: %Main.import_ref.1bc: = import_ref Main//c, loc7_13, loaded [concrete = constants.%I.impl_witness] -// CHECK:STDOUT: %Main.import_ref.f5a: type = import_ref Main//c, loc7_6, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.0e9: type = import_ref Main//c, loc7_11, loaded [concrete = constants.%I.type] -// CHECK:STDOUT: %Main.import_ref.628: %C.as.I.impl.F.type = import_ref Main//c, loc7_41, loaded [concrete = constants.%C.as.I.impl.F] -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.628), @C.as.I.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.e59c42.2: %I.type = import_ref Main//i, loc4_13, loaded [symbolic = constants.%Self.dda] +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//i, loc4_13, unloaded +// CHECK:STDOUT: %Main.import_ref.9f7: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.418) = import_ref Main//i, loc4_33, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ca5)] +// CHECK:STDOUT: %Main.import_ref.dbc: = import_ref Main//c, loc7_13, loaded [concrete = constants.%I.impl_witness] +// CHECK:STDOUT: %Main.import_ref.335: type = import_ref Main//c, loc7_6, loaded [concrete = constants.%C] +// CHECK:STDOUT: %Main.import_ref.e90: type = import_ref Main//c, loc7_11, loaded [concrete = constants.%I.type] +// CHECK:STDOUT: %Main.import_ref.0d0: %C.as.I.impl.F.type = import_ref Main//c, loc7_41, loaded [concrete = constants.%C.as.I.impl.F] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.0d0), @C.as.I.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -359,23 +359,23 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "i.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 -// CHECK:STDOUT: .F = imports.%Main.import_ref.a47 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 +// CHECK:STDOUT: .F = imports.%Main.import_ref.1b3 // CHECK:STDOUT: witness = (imports.%Main.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.I.impl: imports.%Main.import_ref.f5a as imports.%Main.import_ref.0e9 [from "c.carbon"] { +// CHECK:STDOUT: impl @C.as.I.impl: imports.%Main.import_ref.335 as imports.%Main.import_ref.e90 [from "c.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%Main.import_ref.1bc +// CHECK:STDOUT: witness = imports.%Main.import_ref.dbc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C [from "get.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8db // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Call() { @@ -384,23 +384,23 @@ fn Call() { // CHECK:STDOUT: %.loc9_7.1: ref %C = temporary_storage // CHECK:STDOUT: %Get.call: init %C to %.loc9_7.1 = call %Get.ref() // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] -// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, imports.%Main.import_ref.a47 [concrete = constants.%assoc0.210] -// CHECK:STDOUT: %impl.elem0: %.f80 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F] +// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, imports.%Main.import_ref.1b3 [concrete = constants.%assoc0.232] +// CHECK:STDOUT: %impl.elem0: %.fa9 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F] // CHECK:STDOUT: %bound_method: = bound_method %Get.call, %impl.elem0 // CHECK:STDOUT: %.loc9_7.2: ref %C = temporary %.loc9_7.1, %Get.call // CHECK:STDOUT: %.loc9_7.3: %C = 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.2dd605.2 +// 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: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Get [from "get.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.c42703.2: %I.type) [from "i.carbon"] { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.2e1)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.a70)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.3df)] +// CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.e59c42.2: %I.type) [from "i.carbon"] { +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.dda)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.b38)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.b3a)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -414,23 +414,23 @@ fn Call() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.2e1) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.dda) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.2e1 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.a52 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.08d +// CHECK:STDOUT: %Self => constants.%Self.dda +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.418 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ca5 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.2e1) { -// CHECK:STDOUT: %Self => constants.%Self.2e1 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.a70 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3df +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.dda) { +// CHECK:STDOUT: %Self => constants.%Self.dda +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.b38 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b3a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.897 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.702 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.1e6 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.6d0 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/multiple_extend.carbon b/toolchain/check/testdata/impl/multiple_extend.carbon index 1a2843c24507..7efe59c96c8d 100644 --- a/toolchain/check/testdata/impl/multiple_extend.carbon +++ b/toolchain/check/testdata/impl/multiple_extend.carbon @@ -168,31 +168,31 @@ fn P(o: O) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] -// CHECK:STDOUT: %Self.62e: %HasF.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %HasF.WithSelf.F.type.4d3: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self.62e) [symbolic] +// CHECK:STDOUT: %Self.c62: %HasF.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.type.a73: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self.c62) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.8d9: %HasF.WithSelf.F.type.4d3 = struct_value () [symbolic] +// CHECK:STDOUT: %HasF.WithSelf.F.851: %HasF.WithSelf.F.type.a73 = struct_value () [symbolic] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] -// CHECK:STDOUT: %assoc0.3b4: %HasF.assoc_type = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %assoc0.a0c: %HasF.assoc_type = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [concrete] // CHECK:STDOUT: %HasG.type: type = facet_type <@HasG> [concrete] -// CHECK:STDOUT: %Self.d61: %HasG.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %HasG.WithSelf.G.type.ebd: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%Self.d61) [symbolic] -// CHECK:STDOUT: %HasG.WithSelf.G.0eb: %HasG.WithSelf.G.type.ebd = struct_value () [symbolic] +// CHECK:STDOUT: %Self.ab8: %HasG.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %HasG.WithSelf.G.type.c7e: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%Self.ab8) [symbolic] +// CHECK:STDOUT: %HasG.WithSelf.G.821: %HasG.WithSelf.G.type.c7e = struct_value () [symbolic] // CHECK:STDOUT: %HasG.assoc_type: type = assoc_entity_type @HasG [concrete] -// CHECK:STDOUT: %assoc0.eaf: %HasG.assoc_type = assoc_entity element0, @HasG.WithSelf.%HasG.WithSelf.G.decl [concrete] +// CHECK:STDOUT: %assoc0.9a7: %HasG.assoc_type = assoc_entity element0, @HasG.WithSelf.%HasG.WithSelf.G.decl [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %HasF.impl_witness: = impl_witness @C.as.HasF.impl.%HasF.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.HasF.impl.F.type: type = fn_type @C.as.HasF.impl.F [concrete] // CHECK:STDOUT: %C.as.HasF.impl.F: %C.as.HasF.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, (%HasF.impl_witness) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.type.189: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.916: %HasF.WithSelf.F.type.189 = struct_value () [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.type.58e: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.1cb: %HasF.WithSelf.F.type.58e = struct_value () [concrete] // CHECK:STDOUT: %HasG.impl_witness: = impl_witness @C.as.HasG.impl.%HasG.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.HasG.impl.G.type: type = fn_type @C.as.HasG.impl.G [concrete] // CHECK:STDOUT: %C.as.HasG.impl.G: %C.as.HasG.impl.G.type = struct_value () [concrete] // CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %C, (%HasG.impl_witness) [concrete] -// CHECK:STDOUT: %HasG.WithSelf.G.type.b0e: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet) [concrete] -// CHECK:STDOUT: %HasG.WithSelf.G.f70: %HasG.WithSelf.G.type.b0e = struct_value () [concrete] +// CHECK:STDOUT: %HasG.WithSelf.G.type.a09: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet) [concrete] +// CHECK:STDOUT: %HasG.WithSelf.G.1c9: %HasG.WithSelf.G.type.a09 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] @@ -200,12 +200,12 @@ fn P(o: O) { // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %C.type.facet: %type = facet_value %C, () [concrete] -// CHECK:STDOUT: %HasG.WithSelf.G.type.e60: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%C.type.facet) [concrete] -// CHECK:STDOUT: %HasG.WithSelf.G.530: %HasG.WithSelf.G.type.e60 = struct_value () [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.type.29f: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%C.type.facet) [concrete] -// CHECK:STDOUT: %HasF.WithSelf.F.469: %HasF.WithSelf.F.type.29f = struct_value () [concrete] -// CHECK:STDOUT: %.93d: type = fn_type_with_self_type %HasF.WithSelf.F.type.189, %HasF.facet [concrete] -// CHECK:STDOUT: %.c35: type = fn_type_with_self_type %HasG.WithSelf.G.type.b0e, %HasG.facet [concrete] +// CHECK:STDOUT: %HasG.WithSelf.G.type.012: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%C.type.facet) [concrete] +// CHECK:STDOUT: %HasG.WithSelf.G.008: %HasG.WithSelf.G.type.012 = struct_value () [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.type.b9d: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%C.type.facet) [concrete] +// CHECK:STDOUT: %HasF.WithSelf.F.ce1: %HasF.WithSelf.F.type.b9d = struct_value () [concrete] +// CHECK:STDOUT: %.479: type = fn_type_with_self_type %HasF.WithSelf.F.type.58e, %HasF.facet [concrete] +// CHECK:STDOUT: %.ccf: type = fn_type_with_self_type %HasG.WithSelf.G.type.a09, %HasG.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -229,12 +229,12 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasF { -// CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = constants.%Self.62e] +// CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = constants.%Self.c62] // CHECK:STDOUT: %HasF.WithSelf.decl = interface_with_self_decl @HasF [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.4d3) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.8d9)] {} {} -// CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %HasF.WithSelf.F.decl [concrete = constants.%assoc0.3b4] +// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.a73) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.851)] {} {} +// CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %HasF.WithSelf.F.decl [concrete = constants.%assoc0.a0c] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -247,12 +247,12 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasG { -// CHECK:STDOUT: %Self: %HasG.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d61] +// CHECK:STDOUT: %Self: %HasG.type = symbolic_binding Self, 0 [symbolic = constants.%Self.ab8] // CHECK:STDOUT: %HasG.WithSelf.decl = interface_with_self_decl @HasG [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasG.WithSelf.G.decl: @HasG.WithSelf.%HasG.WithSelf.G.type (%HasG.WithSelf.G.type.ebd) = fn_decl @HasG.WithSelf.G [symbolic = @HasG.WithSelf.%HasG.WithSelf.G (constants.%HasG.WithSelf.G.0eb)] {} {} -// CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, %HasG.WithSelf.G.decl [concrete = constants.%assoc0.eaf] +// CHECK:STDOUT: %HasG.WithSelf.G.decl: @HasG.WithSelf.%HasG.WithSelf.G.type (%HasG.WithSelf.G.type.c7e) = fn_decl @HasG.WithSelf.G [symbolic = @HasG.WithSelf.%HasG.WithSelf.G (constants.%HasG.WithSelf.G.821)] {} {} +// CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, %HasG.WithSelf.G.decl [concrete = constants.%assoc0.9a7] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -328,47 +328,47 @@ fn P(o: O) { // CHECK:STDOUT: fn @H(%c.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref.loc22: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %F.ref.loc22: %HasF.assoc_type = name_ref F, @HasF.WithSelf.%assoc0 [concrete = constants.%assoc0.3b4] -// CHECK:STDOUT: %impl.elem0.loc22: %.93d = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F] +// CHECK:STDOUT: %F.ref.loc22: %HasF.assoc_type = name_ref F, @HasF.WithSelf.%assoc0 [concrete = constants.%assoc0.a0c] +// CHECK:STDOUT: %impl.elem0.loc22: %.479 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F] // CHECK:STDOUT: %C.as.HasF.impl.F.call.loc22: init %empty_tuple.type = call %impl.elem0.loc22() // CHECK:STDOUT: %c.ref.loc23: %C = name_ref c, %c -// CHECK:STDOUT: %F.ref.loc23: %HasF.assoc_type = name_ref F, @HasF.WithSelf.%assoc0 [concrete = constants.%assoc0.3b4] -// CHECK:STDOUT: %impl.elem0.loc23: %.93d = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F] +// CHECK:STDOUT: %F.ref.loc23: %HasF.assoc_type = name_ref F, @HasF.WithSelf.%assoc0 [concrete = constants.%assoc0.a0c] +// CHECK:STDOUT: %impl.elem0.loc23: %.479 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F] // CHECK:STDOUT: %C.as.HasF.impl.F.call.loc23: init %empty_tuple.type = call %impl.elem0.loc23() // CHECK:STDOUT: %C.ref.loc24: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %G.ref.loc24: %HasG.assoc_type = name_ref G, @HasG.WithSelf.%assoc0 [concrete = constants.%assoc0.eaf] -// CHECK:STDOUT: %impl.elem0.loc24: %.c35 = impl_witness_access constants.%HasG.impl_witness, element0 [concrete = constants.%C.as.HasG.impl.G] +// CHECK:STDOUT: %G.ref.loc24: %HasG.assoc_type = name_ref G, @HasG.WithSelf.%assoc0 [concrete = constants.%assoc0.9a7] +// CHECK:STDOUT: %impl.elem0.loc24: %.ccf = impl_witness_access constants.%HasG.impl_witness, element0 [concrete = constants.%C.as.HasG.impl.G] // CHECK:STDOUT: %C.as.HasG.impl.G.call.loc24: init %empty_tuple.type = call %impl.elem0.loc24() // CHECK:STDOUT: %c.ref.loc25: %C = name_ref c, %c -// CHECK:STDOUT: %G.ref.loc25: %HasG.assoc_type = name_ref G, @HasG.WithSelf.%assoc0 [concrete = constants.%assoc0.eaf] -// CHECK:STDOUT: %impl.elem0.loc25: %.c35 = impl_witness_access constants.%HasG.impl_witness, element0 [concrete = constants.%C.as.HasG.impl.G] +// CHECK:STDOUT: %G.ref.loc25: %HasG.assoc_type = name_ref G, @HasG.WithSelf.%assoc0 [concrete = constants.%assoc0.9a7] +// CHECK:STDOUT: %impl.elem0.loc25: %.ccf = impl_witness_access constants.%HasG.impl_witness, element0 [concrete = constants.%C.as.HasG.impl.G] // CHECK:STDOUT: %C.as.HasG.impl.G.call.loc25: init %empty_tuple.type = call %impl.elem0.loc25() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf(constants.%Self.62e) { +// CHECK:STDOUT: specific @HasF.WithSelf(constants.%Self.c62) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.62e -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.4d3 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.8d9 +// CHECK:STDOUT: %Self => constants.%Self.c62 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.a73 +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.851 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self.62e) {} +// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self.c62) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasG.WithSelf(constants.%Self.d61) { +// CHECK:STDOUT: specific @HasG.WithSelf(constants.%Self.ab8) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.d61 -// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.ebd -// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.0eb +// CHECK:STDOUT: %Self => constants.%Self.ab8 +// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.c7e +// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.821 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%Self.d61) {} +// CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%Self.ab8) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%HasF.facet -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.189 -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.916 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.58e +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.1cb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet) {} @@ -376,8 +376,8 @@ fn P(o: O) { // CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%HasG.facet -// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.b0e -// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.f70 +// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.a09 +// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.1c9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%HasG.facet) {} @@ -385,45 +385,45 @@ fn P(o: O) { // CHECK:STDOUT: specific @HasG.WithSelf(constants.%C.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%C.type.facet -// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.e60 -// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.530 +// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.012 +// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.008 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf(constants.%C.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%C.type.facet -// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.29f -// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.469 +// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.b9d +// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.ce1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_ambiguous_impls.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasA1.type: type = facet_type <@HasA1> [concrete] -// CHECK:STDOUT: %Self.32c: %HasA1.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %HasA1.WithSelf.A.type.a6d: type = fn_type @HasA1.WithSelf.A, @HasA1.WithSelf(%Self.32c) [symbolic] -// CHECK:STDOUT: %HasA1.WithSelf.A.70a: %HasA1.WithSelf.A.type.a6d = struct_value () [symbolic] +// CHECK:STDOUT: %Self.1db: %HasA1.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %HasA1.WithSelf.A.type.b62: type = fn_type @HasA1.WithSelf.A, @HasA1.WithSelf(%Self.1db) [symbolic] +// CHECK:STDOUT: %HasA1.WithSelf.A.2c6: %HasA1.WithSelf.A.type.b62 = struct_value () [symbolic] // CHECK:STDOUT: %HasA1.assoc_type: type = assoc_entity_type @HasA1 [concrete] -// CHECK:STDOUT: %assoc0.ddc: %HasA1.assoc_type = assoc_entity element0, @HasA1.WithSelf.%HasA1.WithSelf.A.decl [concrete] +// CHECK:STDOUT: %assoc0.2f0: %HasA1.assoc_type = assoc_entity element0, @HasA1.WithSelf.%HasA1.WithSelf.A.decl [concrete] // CHECK:STDOUT: %HasA2.type: type = facet_type <@HasA2> [concrete] -// CHECK:STDOUT: %Self.208: %HasA2.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %HasA2.WithSelf.A.type.402: type = fn_type @HasA2.WithSelf.A, @HasA2.WithSelf(%Self.208) [symbolic] -// CHECK:STDOUT: %HasA2.WithSelf.A.8d2: %HasA2.WithSelf.A.type.402 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.1d1: %HasA2.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %HasA2.WithSelf.A.type.b5e: type = fn_type @HasA2.WithSelf.A, @HasA2.WithSelf(%Self.1d1) [symbolic] +// CHECK:STDOUT: %HasA2.WithSelf.A.1ae: %HasA2.WithSelf.A.type.b5e = struct_value () [symbolic] // CHECK:STDOUT: %HasA2.assoc_type: type = assoc_entity_type @HasA2 [concrete] -// CHECK:STDOUT: %assoc0.97f: %HasA2.assoc_type = assoc_entity element0, @HasA2.WithSelf.%HasA2.WithSelf.A.decl [concrete] +// CHECK:STDOUT: %assoc0.903: %HasA2.assoc_type = assoc_entity element0, @HasA2.WithSelf.%HasA2.WithSelf.A.decl [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %HasA1.impl_witness: = impl_witness @D.as.HasA1.impl.%HasA1.impl_witness_table [concrete] // CHECK:STDOUT: %D.as.HasA1.impl.A.type: type = fn_type @D.as.HasA1.impl.A [concrete] // CHECK:STDOUT: %D.as.HasA1.impl.A: %D.as.HasA1.impl.A.type = struct_value () [concrete] // CHECK:STDOUT: %HasA1.facet: %HasA1.type = facet_value %D, (%HasA1.impl_witness) [concrete] -// CHECK:STDOUT: %HasA1.WithSelf.A.type.dc1: type = fn_type @HasA1.WithSelf.A, @HasA1.WithSelf(%HasA1.facet) [concrete] -// CHECK:STDOUT: %HasA1.WithSelf.A.2ce: %HasA1.WithSelf.A.type.dc1 = struct_value () [concrete] +// CHECK:STDOUT: %HasA1.WithSelf.A.type.aa7: type = fn_type @HasA1.WithSelf.A, @HasA1.WithSelf(%HasA1.facet) [concrete] +// CHECK:STDOUT: %HasA1.WithSelf.A.f21: %HasA1.WithSelf.A.type.aa7 = struct_value () [concrete] // CHECK:STDOUT: %HasA2.impl_witness: = impl_witness @D.as.HasA2.impl.%HasA2.impl_witness_table [concrete] // CHECK:STDOUT: %D.as.HasA2.impl.A.type: type = fn_type @D.as.HasA2.impl.A [concrete] // CHECK:STDOUT: %D.as.HasA2.impl.A: %D.as.HasA2.impl.A.type = struct_value () [concrete] // CHECK:STDOUT: %HasA2.facet: %HasA2.type = facet_value %D, (%HasA2.impl_witness) [concrete] -// CHECK:STDOUT: %HasA2.WithSelf.A.type.ace: type = fn_type @HasA2.WithSelf.A, @HasA2.WithSelf(%HasA2.facet) [concrete] -// CHECK:STDOUT: %HasA2.WithSelf.A.d9f: %HasA2.WithSelf.A.type.ace = struct_value () [concrete] +// CHECK:STDOUT: %HasA2.WithSelf.A.type.828: type = fn_type @HasA2.WithSelf.A, @HasA2.WithSelf(%HasA2.facet) [concrete] +// CHECK:STDOUT: %HasA2.WithSelf.A.be9: %HasA2.WithSelf.A.type.828 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %D [concrete] @@ -431,10 +431,10 @@ fn P(o: O) { // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %D.type.facet: %type = facet_value %D, () [concrete] -// CHECK:STDOUT: %HasA2.WithSelf.A.type.596: type = fn_type @HasA2.WithSelf.A, @HasA2.WithSelf(%D.type.facet) [concrete] -// CHECK:STDOUT: %HasA2.WithSelf.A.68e: %HasA2.WithSelf.A.type.596 = struct_value () [concrete] -// CHECK:STDOUT: %HasA1.WithSelf.A.type.3c5: type = fn_type @HasA1.WithSelf.A, @HasA1.WithSelf(%D.type.facet) [concrete] -// CHECK:STDOUT: %HasA1.WithSelf.A.51c: %HasA1.WithSelf.A.type.3c5 = struct_value () [concrete] +// CHECK:STDOUT: %HasA2.WithSelf.A.type.8b9: type = fn_type @HasA2.WithSelf.A, @HasA2.WithSelf(%D.type.facet) [concrete] +// CHECK:STDOUT: %HasA2.WithSelf.A.f2b: %HasA2.WithSelf.A.type.8b9 = struct_value () [concrete] +// CHECK:STDOUT: %HasA1.WithSelf.A.type.9bf: type = fn_type @HasA1.WithSelf.A, @HasA1.WithSelf(%D.type.facet) [concrete] +// CHECK:STDOUT: %HasA1.WithSelf.A.4e4: %HasA1.WithSelf.A.type.9bf = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -458,12 +458,12 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasA1 { -// CHECK:STDOUT: %Self: %HasA1.type = symbolic_binding Self, 0 [symbolic = constants.%Self.32c] +// CHECK:STDOUT: %Self: %HasA1.type = symbolic_binding Self, 0 [symbolic = constants.%Self.1db] // CHECK:STDOUT: %HasA1.WithSelf.decl = interface_with_self_decl @HasA1 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasA1.WithSelf.A.decl: @HasA1.WithSelf.%HasA1.WithSelf.A.type (%HasA1.WithSelf.A.type.a6d) = fn_decl @HasA1.WithSelf.A [symbolic = @HasA1.WithSelf.%HasA1.WithSelf.A (constants.%HasA1.WithSelf.A.70a)] {} {} -// CHECK:STDOUT: %assoc0: %HasA1.assoc_type = assoc_entity element0, %HasA1.WithSelf.A.decl [concrete = constants.%assoc0.ddc] +// CHECK:STDOUT: %HasA1.WithSelf.A.decl: @HasA1.WithSelf.%HasA1.WithSelf.A.type (%HasA1.WithSelf.A.type.b62) = fn_decl @HasA1.WithSelf.A [symbolic = @HasA1.WithSelf.%HasA1.WithSelf.A (constants.%HasA1.WithSelf.A.2c6)] {} {} +// CHECK:STDOUT: %assoc0: %HasA1.assoc_type = assoc_entity element0, %HasA1.WithSelf.A.decl [concrete = constants.%assoc0.2f0] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -475,12 +475,12 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasA2 { -// CHECK:STDOUT: %Self: %HasA2.type = symbolic_binding Self, 0 [symbolic = constants.%Self.208] +// CHECK:STDOUT: %Self: %HasA2.type = symbolic_binding Self, 0 [symbolic = constants.%Self.1d1] // CHECK:STDOUT: %HasA2.WithSelf.decl = interface_with_self_decl @HasA2 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasA2.WithSelf.A.decl: @HasA2.WithSelf.%HasA2.WithSelf.A.type (%HasA2.WithSelf.A.type.402) = fn_decl @HasA2.WithSelf.A [symbolic = @HasA2.WithSelf.%HasA2.WithSelf.A (constants.%HasA2.WithSelf.A.8d2)] {} {} -// CHECK:STDOUT: %assoc0: %HasA2.assoc_type = assoc_entity element0, %HasA2.WithSelf.A.decl [concrete = constants.%assoc0.97f] +// CHECK:STDOUT: %HasA2.WithSelf.A.decl: @HasA2.WithSelf.%HasA2.WithSelf.A.type (%HasA2.WithSelf.A.type.b5e) = fn_decl @HasA2.WithSelf.A [symbolic = @HasA2.WithSelf.%HasA2.WithSelf.A (constants.%HasA2.WithSelf.A.1ae)] {} {} +// CHECK:STDOUT: %assoc0: %HasA2.assoc_type = assoc_entity element0, %HasA2.WithSelf.A.decl [concrete = constants.%assoc0.903] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -560,29 +560,29 @@ fn P(o: O) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasA1.WithSelf(constants.%Self.32c) { +// CHECK:STDOUT: specific @HasA1.WithSelf(constants.%Self.1db) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.32c -// CHECK:STDOUT: %HasA1.WithSelf.A.type => constants.%HasA1.WithSelf.A.type.a6d -// CHECK:STDOUT: %HasA1.WithSelf.A => constants.%HasA1.WithSelf.A.70a +// CHECK:STDOUT: %Self => constants.%Self.1db +// CHECK:STDOUT: %HasA1.WithSelf.A.type => constants.%HasA1.WithSelf.A.type.b62 +// CHECK:STDOUT: %HasA1.WithSelf.A => constants.%HasA1.WithSelf.A.2c6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasA1.WithSelf.A(constants.%Self.32c) {} +// CHECK:STDOUT: specific @HasA1.WithSelf.A(constants.%Self.1db) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasA2.WithSelf(constants.%Self.208) { +// CHECK:STDOUT: specific @HasA2.WithSelf(constants.%Self.1d1) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.208 -// CHECK:STDOUT: %HasA2.WithSelf.A.type => constants.%HasA2.WithSelf.A.type.402 -// CHECK:STDOUT: %HasA2.WithSelf.A => constants.%HasA2.WithSelf.A.8d2 +// CHECK:STDOUT: %Self => constants.%Self.1d1 +// CHECK:STDOUT: %HasA2.WithSelf.A.type => constants.%HasA2.WithSelf.A.type.b5e +// CHECK:STDOUT: %HasA2.WithSelf.A => constants.%HasA2.WithSelf.A.1ae // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasA2.WithSelf.A(constants.%Self.208) {} +// CHECK:STDOUT: specific @HasA2.WithSelf.A(constants.%Self.1d1) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @HasA1.WithSelf(constants.%HasA1.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%HasA1.facet -// CHECK:STDOUT: %HasA1.WithSelf.A.type => constants.%HasA1.WithSelf.A.type.dc1 -// CHECK:STDOUT: %HasA1.WithSelf.A => constants.%HasA1.WithSelf.A.2ce +// CHECK:STDOUT: %HasA1.WithSelf.A.type => constants.%HasA1.WithSelf.A.type.aa7 +// CHECK:STDOUT: %HasA1.WithSelf.A => constants.%HasA1.WithSelf.A.f21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasA1.WithSelf.A(constants.%HasA1.facet) {} @@ -590,8 +590,8 @@ fn P(o: O) { // CHECK:STDOUT: specific @HasA2.WithSelf(constants.%HasA2.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%HasA2.facet -// CHECK:STDOUT: %HasA2.WithSelf.A.type => constants.%HasA2.WithSelf.A.type.ace -// CHECK:STDOUT: %HasA2.WithSelf.A => constants.%HasA2.WithSelf.A.d9f +// CHECK:STDOUT: %HasA2.WithSelf.A.type => constants.%HasA2.WithSelf.A.type.828 +// CHECK:STDOUT: %HasA2.WithSelf.A => constants.%HasA2.WithSelf.A.be9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasA2.WithSelf.A(constants.%HasA2.facet) {} @@ -599,15 +599,15 @@ fn P(o: O) { // CHECK:STDOUT: specific @HasA2.WithSelf(constants.%D.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%D.type.facet -// CHECK:STDOUT: %HasA2.WithSelf.A.type => constants.%HasA2.WithSelf.A.type.596 -// CHECK:STDOUT: %HasA2.WithSelf.A => constants.%HasA2.WithSelf.A.68e +// CHECK:STDOUT: %HasA2.WithSelf.A.type => constants.%HasA2.WithSelf.A.type.8b9 +// CHECK:STDOUT: %HasA2.WithSelf.A => constants.%HasA2.WithSelf.A.f2b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasA1.WithSelf(constants.%D.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%D.type.facet -// CHECK:STDOUT: %HasA1.WithSelf.A.type => constants.%HasA1.WithSelf.A.type.3c5 -// CHECK:STDOUT: %HasA1.WithSelf.A => constants.%HasA1.WithSelf.A.51c +// CHECK:STDOUT: %HasA1.WithSelf.A.type => constants.%HasA1.WithSelf.A.type.9bf +// CHECK:STDOUT: %HasA1.WithSelf.A => constants.%HasA1.WithSelf.A.4e4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- different_impl_and_base.carbon @@ -615,9 +615,9 @@ fn P(o: O) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasI.type: type = facet_type <@HasI> [concrete] // CHECK:STDOUT: %Self: %HasI.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %HasI.WithSelf.I.type.795: type = fn_type @HasI.WithSelf.I, @HasI.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %HasI.WithSelf.I.type.a8e: type = fn_type @HasI.WithSelf.I, @HasI.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %HasI.WithSelf.I.f21: %HasI.WithSelf.I.type.795 = struct_value () [symbolic] +// CHECK:STDOUT: %HasI.WithSelf.I.aca: %HasI.WithSelf.I.type.a8e = struct_value () [symbolic] // CHECK:STDOUT: %HasI.assoc_type: type = assoc_entity_type @HasI [concrete] // CHECK:STDOUT: %assoc0: %HasI.assoc_type = assoc_entity element0, @HasI.WithSelf.%HasI.WithSelf.I.decl [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] @@ -631,18 +631,18 @@ fn P(o: O) { // CHECK:STDOUT: %E.as.HasI.impl.I.type: type = fn_type @E.as.HasI.impl.I [concrete] // CHECK:STDOUT: %E.as.HasI.impl.I: %E.as.HasI.impl.I.type = struct_value () [concrete] // CHECK:STDOUT: %HasI.facet: %HasI.type = facet_value %E, (%HasI.impl_witness) [concrete] -// CHECK:STDOUT: %HasI.WithSelf.I.type.9e6: type = fn_type @HasI.WithSelf.I, @HasI.WithSelf(%HasI.facet) [concrete] -// CHECK:STDOUT: %HasI.WithSelf.I.6d9: %HasI.WithSelf.I.type.9e6 = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.cef: type = struct_type {.base: %B} [concrete] -// CHECK:STDOUT: %complete_type.3f7: = complete_type_witness %struct_type.base.cef [concrete] +// CHECK:STDOUT: %HasI.WithSelf.I.type.c55: type = fn_type @HasI.WithSelf.I, @HasI.WithSelf(%HasI.facet) [concrete] +// CHECK:STDOUT: %HasI.WithSelf.I.7d0: %HasI.WithSelf.I.type.c55 = struct_value () [concrete] +// CHECK:STDOUT: %struct_type.base.e05: type = struct_type {.base: %B} [concrete] +// CHECK:STDOUT: %complete_type.c77: = complete_type_witness %struct_type.base.e05 [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %E [concrete] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %E.type.facet: %type = facet_value %E, () [concrete] -// CHECK:STDOUT: %HasI.WithSelf.I.type.fb8: type = fn_type @HasI.WithSelf.I, @HasI.WithSelf(%E.type.facet) [concrete] -// CHECK:STDOUT: %HasI.WithSelf.I.c31: %HasI.WithSelf.I.type.fb8 = struct_value () [concrete] -// CHECK:STDOUT: %.277: type = fn_type_with_self_type %HasI.WithSelf.I.type.9e6, %HasI.facet [concrete] +// CHECK:STDOUT: %HasI.WithSelf.I.type.e5a: type = fn_type @HasI.WithSelf.I, @HasI.WithSelf(%E.type.facet) [concrete] +// CHECK:STDOUT: %HasI.WithSelf.I.e25: %HasI.WithSelf.I.type.e5a = struct_value () [concrete] +// CHECK:STDOUT: %.f70: type = fn_type_with_self_type %HasI.WithSelf.I.type.c55, %HasI.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -670,7 +670,7 @@ fn P(o: O) { // CHECK:STDOUT: %HasI.WithSelf.decl = interface_with_self_decl @HasI [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasI.WithSelf.I.decl: @HasI.WithSelf.%HasI.WithSelf.I.type (%HasI.WithSelf.I.type.795) = fn_decl @HasI.WithSelf.I [symbolic = @HasI.WithSelf.%HasI.WithSelf.I (constants.%HasI.WithSelf.I.f21)] {} {} +// CHECK:STDOUT: %HasI.WithSelf.I.decl: @HasI.WithSelf.%HasI.WithSelf.I.type (%HasI.WithSelf.I.type.a8e) = fn_decl @HasI.WithSelf.I [symbolic = @HasI.WithSelf.%HasI.WithSelf.I (constants.%HasI.WithSelf.I.aca)] {} {} // CHECK:STDOUT: %assoc0: %HasI.assoc_type = assoc_entity element0, %HasI.WithSelf.I.decl [concrete = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -712,7 +712,7 @@ fn P(o: O) { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%E [concrete = constants.%E] // CHECK:STDOUT: %HasI.ref: type = name_ref HasI, file.%HasI.decl [concrete = constants.%HasI.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.cef [concrete = constants.%complete_type.3f7] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.e05 [concrete = constants.%complete_type.c77] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -744,11 +744,11 @@ fn P(o: O) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %E.ref.loc20: type = name_ref E, file.%E.decl [concrete = constants.%E] // CHECK:STDOUT: %I.ref.loc20: %HasI.assoc_type = name_ref I, @HasI.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc20: %.277 = impl_witness_access constants.%HasI.impl_witness, element0 [concrete = constants.%E.as.HasI.impl.I] +// CHECK:STDOUT: %impl.elem0.loc20: %.f70 = impl_witness_access constants.%HasI.impl_witness, element0 [concrete = constants.%E.as.HasI.impl.I] // CHECK:STDOUT: %E.as.HasI.impl.I.call.loc20: init %empty_tuple.type = call %impl.elem0.loc20() // CHECK:STDOUT: %e.ref.loc21: %E = name_ref e, %e // CHECK:STDOUT: %I.ref.loc21: %HasI.assoc_type = name_ref I, @HasI.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc21: %.277 = impl_witness_access constants.%HasI.impl_witness, element0 [concrete = constants.%E.as.HasI.impl.I] +// CHECK:STDOUT: %impl.elem0.loc21: %.f70 = impl_witness_access constants.%HasI.impl_witness, element0 [concrete = constants.%E.as.HasI.impl.I] // CHECK:STDOUT: %E.as.HasI.impl.I.call.loc21: init %empty_tuple.type = call %impl.elem0.loc21() // CHECK:STDOUT: %E.ref.loc22: type = name_ref E, file.%E.decl [concrete = constants.%E] // CHECK:STDOUT: %J.ref.loc22: %B.J.type = name_ref J, @B.%B.J.decl [concrete = constants.%B.J] @@ -762,8 +762,8 @@ fn P(o: O) { // CHECK:STDOUT: specific @HasI.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %HasI.WithSelf.I.type => constants.%HasI.WithSelf.I.type.795 -// CHECK:STDOUT: %HasI.WithSelf.I => constants.%HasI.WithSelf.I.f21 +// CHECK:STDOUT: %HasI.WithSelf.I.type => constants.%HasI.WithSelf.I.type.a8e +// CHECK:STDOUT: %HasI.WithSelf.I => constants.%HasI.WithSelf.I.aca // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasI.WithSelf.I(constants.%Self) {} @@ -771,8 +771,8 @@ fn P(o: O) { // CHECK:STDOUT: specific @HasI.WithSelf(constants.%HasI.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%HasI.facet -// CHECK:STDOUT: %HasI.WithSelf.I.type => constants.%HasI.WithSelf.I.type.9e6 -// CHECK:STDOUT: %HasI.WithSelf.I => constants.%HasI.WithSelf.I.6d9 +// CHECK:STDOUT: %HasI.WithSelf.I.type => constants.%HasI.WithSelf.I.type.c55 +// CHECK:STDOUT: %HasI.WithSelf.I => constants.%HasI.WithSelf.I.7d0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasI.WithSelf.I(constants.%HasI.facet) {} @@ -780,8 +780,8 @@ fn P(o: O) { // CHECK:STDOUT: specific @HasI.WithSelf(constants.%E.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%E.type.facet -// CHECK:STDOUT: %HasI.WithSelf.I.type => constants.%HasI.WithSelf.I.type.fb8 -// CHECK:STDOUT: %HasI.WithSelf.I => constants.%HasI.WithSelf.I.c31 +// CHECK:STDOUT: %HasI.WithSelf.I.type => constants.%HasI.WithSelf.I.type.e5a +// CHECK:STDOUT: %HasI.WithSelf.I => constants.%HasI.WithSelf.I.e25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_ambiguous_impl_and_base.carbon @@ -794,8 +794,8 @@ fn P(o: O) { // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %HasK.type: type = facet_type <@HasK> [concrete] // CHECK:STDOUT: %Self: %HasK.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %HasK.WithSelf.K.type.adb: type = fn_type @HasK.WithSelf.K, @HasK.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %HasK.WithSelf.K.c0f: %HasK.WithSelf.K.type.adb = struct_value () [symbolic] +// CHECK:STDOUT: %HasK.WithSelf.K.type.52c: type = fn_type @HasK.WithSelf.K, @HasK.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %HasK.WithSelf.K.72a: %HasK.WithSelf.K.type.52c = struct_value () [symbolic] // CHECK:STDOUT: %HasK.assoc_type: type = assoc_entity_type @HasK [concrete] // CHECK:STDOUT: %assoc0: %HasK.assoc_type = assoc_entity element0, @HasK.WithSelf.%HasK.WithSelf.K.decl [concrete] // CHECK:STDOUT: %L: type = class_type @L [concrete] @@ -804,17 +804,17 @@ fn P(o: O) { // CHECK:STDOUT: %L.as.HasK.impl.K.type: type = fn_type @L.as.HasK.impl.K [concrete] // CHECK:STDOUT: %L.as.HasK.impl.K: %L.as.HasK.impl.K.type = struct_value () [concrete] // CHECK:STDOUT: %HasK.facet: %HasK.type = facet_value %L, (%HasK.impl_witness) [concrete] -// CHECK:STDOUT: %HasK.WithSelf.K.type.211: type = fn_type @HasK.WithSelf.K, @HasK.WithSelf(%HasK.facet) [concrete] -// CHECK:STDOUT: %HasK.WithSelf.K.52a: %HasK.WithSelf.K.type.211 = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.d37: type = struct_type {.base: %Base} [concrete] -// CHECK:STDOUT: %complete_type.736: = complete_type_witness %struct_type.base.d37 [concrete] +// CHECK:STDOUT: %HasK.WithSelf.K.type.4ee: type = fn_type @HasK.WithSelf.K, @HasK.WithSelf(%HasK.facet) [concrete] +// CHECK:STDOUT: %HasK.WithSelf.K.e15: %HasK.WithSelf.K.type.4ee = struct_value () [concrete] +// CHECK:STDOUT: %struct_type.base.cae: type = struct_type {.base: %Base} [concrete] +// CHECK:STDOUT: %complete_type.c02: = complete_type_witness %struct_type.base.cae [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %L [concrete] // CHECK:STDOUT: %M.type: type = fn_type @M [concrete] // CHECK:STDOUT: %M: %M.type = struct_value () [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %L.type.facet: %type = facet_value %L, () [concrete] -// CHECK:STDOUT: %HasK.WithSelf.K.type.023: type = fn_type @HasK.WithSelf.K, @HasK.WithSelf(%L.type.facet) [concrete] -// CHECK:STDOUT: %HasK.WithSelf.K.84b: %HasK.WithSelf.K.type.023 = struct_value () [concrete] +// CHECK:STDOUT: %HasK.WithSelf.K.type.4b4: type = fn_type @HasK.WithSelf.K, @HasK.WithSelf(%L.type.facet) [concrete] +// CHECK:STDOUT: %HasK.WithSelf.K.740: %HasK.WithSelf.K.type.4b4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -842,7 +842,7 @@ fn P(o: O) { // CHECK:STDOUT: %HasK.WithSelf.decl = interface_with_self_decl @HasK [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasK.WithSelf.K.decl: @HasK.WithSelf.%HasK.WithSelf.K.type (%HasK.WithSelf.K.type.adb) = fn_decl @HasK.WithSelf.K [symbolic = @HasK.WithSelf.%HasK.WithSelf.K (constants.%HasK.WithSelf.K.c0f)] {} {} +// CHECK:STDOUT: %HasK.WithSelf.K.decl: @HasK.WithSelf.%HasK.WithSelf.K.type (%HasK.WithSelf.K.type.52c) = fn_decl @HasK.WithSelf.K [symbolic = @HasK.WithSelf.%HasK.WithSelf.K (constants.%HasK.WithSelf.K.72a)] {} {} // CHECK:STDOUT: %assoc0: %HasK.assoc_type = assoc_entity element0, %HasK.WithSelf.K.decl [concrete = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -882,7 +882,7 @@ fn P(o: O) { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%L [concrete = constants.%L] // CHECK:STDOUT: %HasK.ref: type = name_ref HasK, file.%HasK.decl [concrete = constants.%HasK.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.d37 [concrete = constants.%complete_type.736] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.cae [concrete = constants.%complete_type.c02] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -921,8 +921,8 @@ fn P(o: O) { // CHECK:STDOUT: specific @HasK.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %HasK.WithSelf.K.type => constants.%HasK.WithSelf.K.type.adb -// CHECK:STDOUT: %HasK.WithSelf.K => constants.%HasK.WithSelf.K.c0f +// CHECK:STDOUT: %HasK.WithSelf.K.type => constants.%HasK.WithSelf.K.type.52c +// CHECK:STDOUT: %HasK.WithSelf.K => constants.%HasK.WithSelf.K.72a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasK.WithSelf.K(constants.%Self) {} @@ -930,8 +930,8 @@ fn P(o: O) { // CHECK:STDOUT: specific @HasK.WithSelf(constants.%HasK.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%HasK.facet -// CHECK:STDOUT: %HasK.WithSelf.K.type => constants.%HasK.WithSelf.K.type.211 -// CHECK:STDOUT: %HasK.WithSelf.K => constants.%HasK.WithSelf.K.52a +// CHECK:STDOUT: %HasK.WithSelf.K.type => constants.%HasK.WithSelf.K.type.4ee +// CHECK:STDOUT: %HasK.WithSelf.K => constants.%HasK.WithSelf.K.e15 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasK.WithSelf.K(constants.%HasK.facet) {} @@ -939,8 +939,8 @@ fn P(o: O) { // CHECK:STDOUT: specific @HasK.WithSelf(constants.%L.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%L.type.facet -// CHECK:STDOUT: %HasK.WithSelf.K.type => constants.%HasK.WithSelf.K.type.023 -// CHECK:STDOUT: %HasK.WithSelf.K => constants.%HasK.WithSelf.K.84b +// CHECK:STDOUT: %HasK.WithSelf.K.type => constants.%HasK.WithSelf.K.type.4b4 +// CHECK:STDOUT: %HasK.WithSelf.K => constants.%HasK.WithSelf.K.740 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- ambiguity_hidden.carbon @@ -953,35 +953,35 @@ fn P(o: O) { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %HasN1.type: type = facet_type <@HasN1> [concrete] -// CHECK:STDOUT: %Self.23c: %HasN1.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %HasN1.WithSelf.N.type.bec: type = fn_type @HasN1.WithSelf.N, @HasN1.WithSelf(%Self.23c) [symbolic] -// CHECK:STDOUT: %HasN1.WithSelf.N.91b: %HasN1.WithSelf.N.type.bec = struct_value () [symbolic] +// CHECK:STDOUT: %Self.97e: %HasN1.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %HasN1.WithSelf.N.type.a60: type = fn_type @HasN1.WithSelf.N, @HasN1.WithSelf(%Self.97e) [symbolic] +// CHECK:STDOUT: %HasN1.WithSelf.N.618: %HasN1.WithSelf.N.type.a60 = struct_value () [symbolic] // CHECK:STDOUT: %HasN1.assoc_type: type = assoc_entity_type @HasN1 [concrete] -// CHECK:STDOUT: %assoc0.a42: %HasN1.assoc_type = assoc_entity element0, @HasN1.WithSelf.%HasN1.WithSelf.N.decl [concrete] +// CHECK:STDOUT: %assoc0.6d6: %HasN1.assoc_type = assoc_entity element0, @HasN1.WithSelf.%HasN1.WithSelf.N.decl [concrete] // CHECK:STDOUT: %HasN2.type: type = facet_type <@HasN2> [concrete] -// CHECK:STDOUT: %Self.c9f: %HasN2.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %HasN2.WithSelf.N.type.d79: type = fn_type @HasN2.WithSelf.N, @HasN2.WithSelf(%Self.c9f) [symbolic] -// CHECK:STDOUT: %HasN2.WithSelf.N.e63: %HasN2.WithSelf.N.type.d79 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.e42: %HasN2.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %HasN2.WithSelf.N.type.104: type = fn_type @HasN2.WithSelf.N, @HasN2.WithSelf(%Self.e42) [symbolic] +// CHECK:STDOUT: %HasN2.WithSelf.N.553: %HasN2.WithSelf.N.type.104 = struct_value () [symbolic] // CHECK:STDOUT: %HasN2.assoc_type: type = assoc_entity_type @HasN2 [concrete] -// CHECK:STDOUT: %assoc0.d15: %HasN2.assoc_type = assoc_entity element0, @HasN2.WithSelf.%HasN2.WithSelf.N.decl [concrete] +// CHECK:STDOUT: %assoc0.aea: %HasN2.assoc_type = assoc_entity element0, @HasN2.WithSelf.%HasN2.WithSelf.N.decl [concrete] // CHECK:STDOUT: %O: type = class_type @O [concrete] // CHECK:STDOUT: %O.elem: type = unbound_element_type %O, %NBase [concrete] // CHECK:STDOUT: %HasN1.impl_witness: = impl_witness @O.as.HasN1.impl.%HasN1.impl_witness_table [concrete] // CHECK:STDOUT: %O.as.HasN1.impl.N.type: type = fn_type @O.as.HasN1.impl.N [concrete] // CHECK:STDOUT: %O.as.HasN1.impl.N: %O.as.HasN1.impl.N.type = struct_value () [concrete] // CHECK:STDOUT: %HasN1.facet: %HasN1.type = facet_value %O, (%HasN1.impl_witness) [concrete] -// CHECK:STDOUT: %HasN1.WithSelf.N.type.aa9: type = fn_type @HasN1.WithSelf.N, @HasN1.WithSelf(%HasN1.facet) [concrete] -// CHECK:STDOUT: %HasN1.WithSelf.N.6b9: %HasN1.WithSelf.N.type.aa9 = struct_value () [concrete] +// CHECK:STDOUT: %HasN1.WithSelf.N.type.446: type = fn_type @HasN1.WithSelf.N, @HasN1.WithSelf(%HasN1.facet) [concrete] +// CHECK:STDOUT: %HasN1.WithSelf.N.d2e: %HasN1.WithSelf.N.type.446 = struct_value () [concrete] // CHECK:STDOUT: %HasN2.impl_witness: = impl_witness @O.as.HasN2.impl.%HasN2.impl_witness_table [concrete] // CHECK:STDOUT: %O.as.HasN2.impl.N.type: type = fn_type @O.as.HasN2.impl.N [concrete] // CHECK:STDOUT: %O.as.HasN2.impl.N: %O.as.HasN2.impl.N.type = struct_value () [concrete] // CHECK:STDOUT: %HasN2.facet: %HasN2.type = facet_value %O, (%HasN2.impl_witness) [concrete] -// CHECK:STDOUT: %HasN2.WithSelf.N.type.3a2: type = fn_type @HasN2.WithSelf.N, @HasN2.WithSelf(%HasN2.facet) [concrete] -// CHECK:STDOUT: %HasN2.WithSelf.N.129: %HasN2.WithSelf.N.type.3a2 = struct_value () [concrete] +// CHECK:STDOUT: %HasN2.WithSelf.N.type.e3b: type = fn_type @HasN2.WithSelf.N, @HasN2.WithSelf(%HasN2.facet) [concrete] +// CHECK:STDOUT: %HasN2.WithSelf.N.be8: %HasN2.WithSelf.N.type.e3b = struct_value () [concrete] // CHECK:STDOUT: %O.N.type: type = fn_type @O.N [concrete] // CHECK:STDOUT: %O.N: %O.N.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.base.9ec: type = struct_type {.base: %NBase} [concrete] -// CHECK:STDOUT: %complete_type.299: = complete_type_witness %struct_type.base.9ec [concrete] +// CHECK:STDOUT: %struct_type.base.40f: type = struct_type {.base: %NBase} [concrete] +// CHECK:STDOUT: %complete_type.3b3: = complete_type_witness %struct_type.base.40f [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %O [concrete] // CHECK:STDOUT: %P.type: type = fn_type @P [concrete] // CHECK:STDOUT: %P: %P.type = struct_value () [concrete] @@ -1010,12 +1010,12 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasN1 { -// CHECK:STDOUT: %Self: %HasN1.type = symbolic_binding Self, 0 [symbolic = constants.%Self.23c] +// CHECK:STDOUT: %Self: %HasN1.type = symbolic_binding Self, 0 [symbolic = constants.%Self.97e] // CHECK:STDOUT: %HasN1.WithSelf.decl = interface_with_self_decl @HasN1 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasN1.WithSelf.N.decl: @HasN1.WithSelf.%HasN1.WithSelf.N.type (%HasN1.WithSelf.N.type.bec) = fn_decl @HasN1.WithSelf.N [symbolic = @HasN1.WithSelf.%HasN1.WithSelf.N (constants.%HasN1.WithSelf.N.91b)] {} {} -// CHECK:STDOUT: %assoc0: %HasN1.assoc_type = assoc_entity element0, %HasN1.WithSelf.N.decl [concrete = constants.%assoc0.a42] +// CHECK:STDOUT: %HasN1.WithSelf.N.decl: @HasN1.WithSelf.%HasN1.WithSelf.N.type (%HasN1.WithSelf.N.type.a60) = fn_decl @HasN1.WithSelf.N [symbolic = @HasN1.WithSelf.%HasN1.WithSelf.N (constants.%HasN1.WithSelf.N.618)] {} {} +// CHECK:STDOUT: %assoc0: %HasN1.assoc_type = assoc_entity element0, %HasN1.WithSelf.N.decl [concrete = constants.%assoc0.6d6] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -1027,12 +1027,12 @@ fn P(o: O) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @HasN2 { -// CHECK:STDOUT: %Self: %HasN2.type = symbolic_binding Self, 0 [symbolic = constants.%Self.c9f] +// CHECK:STDOUT: %Self: %HasN2.type = symbolic_binding Self, 0 [symbolic = constants.%Self.e42] // CHECK:STDOUT: %HasN2.WithSelf.decl = interface_with_self_decl @HasN2 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %HasN2.WithSelf.N.decl: @HasN2.WithSelf.%HasN2.WithSelf.N.type (%HasN2.WithSelf.N.type.d79) = fn_decl @HasN2.WithSelf.N [symbolic = @HasN2.WithSelf.%HasN2.WithSelf.N (constants.%HasN2.WithSelf.N.e63)] {} {} -// CHECK:STDOUT: %assoc0: %HasN2.assoc_type = assoc_entity element0, %HasN2.WithSelf.N.decl [concrete = constants.%assoc0.d15] +// CHECK:STDOUT: %HasN2.WithSelf.N.decl: @HasN2.WithSelf.%HasN2.WithSelf.N.type (%HasN2.WithSelf.N.type.104) = fn_decl @HasN2.WithSelf.N [symbolic = @HasN2.WithSelf.%HasN2.WithSelf.N (constants.%HasN2.WithSelf.N.553)] {} {} +// CHECK:STDOUT: %assoc0: %HasN2.assoc_type = assoc_entity element0, %HasN2.WithSelf.N.decl [concrete = constants.%assoc0.aea] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -1088,7 +1088,7 @@ fn P(o: O) { // CHECK:STDOUT: %HasN2.ref: type = name_ref HasN2, file.%HasN2.decl [concrete = constants.%HasN2.type] // CHECK:STDOUT: } // CHECK:STDOUT: %O.N.decl: %O.N.type = fn_decl @O.N [concrete = constants.%O.N] {} {} -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.9ec [concrete = constants.%complete_type.299] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.40f [concrete = constants.%complete_type.3b3] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1139,29 +1139,29 @@ fn P(o: O) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasN1.WithSelf(constants.%Self.23c) { +// CHECK:STDOUT: specific @HasN1.WithSelf(constants.%Self.97e) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.23c -// CHECK:STDOUT: %HasN1.WithSelf.N.type => constants.%HasN1.WithSelf.N.type.bec -// CHECK:STDOUT: %HasN1.WithSelf.N => constants.%HasN1.WithSelf.N.91b +// CHECK:STDOUT: %Self => constants.%Self.97e +// CHECK:STDOUT: %HasN1.WithSelf.N.type => constants.%HasN1.WithSelf.N.type.a60 +// CHECK:STDOUT: %HasN1.WithSelf.N => constants.%HasN1.WithSelf.N.618 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasN1.WithSelf.N(constants.%Self.23c) {} +// CHECK:STDOUT: specific @HasN1.WithSelf.N(constants.%Self.97e) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasN2.WithSelf(constants.%Self.c9f) { +// CHECK:STDOUT: specific @HasN2.WithSelf(constants.%Self.e42) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.c9f -// CHECK:STDOUT: %HasN2.WithSelf.N.type => constants.%HasN2.WithSelf.N.type.d79 -// CHECK:STDOUT: %HasN2.WithSelf.N => constants.%HasN2.WithSelf.N.e63 +// CHECK:STDOUT: %Self => constants.%Self.e42 +// CHECK:STDOUT: %HasN2.WithSelf.N.type => constants.%HasN2.WithSelf.N.type.104 +// CHECK:STDOUT: %HasN2.WithSelf.N => constants.%HasN2.WithSelf.N.553 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasN2.WithSelf.N(constants.%Self.c9f) {} +// CHECK:STDOUT: specific @HasN2.WithSelf.N(constants.%Self.e42) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @HasN1.WithSelf(constants.%HasN1.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%HasN1.facet -// CHECK:STDOUT: %HasN1.WithSelf.N.type => constants.%HasN1.WithSelf.N.type.aa9 -// CHECK:STDOUT: %HasN1.WithSelf.N => constants.%HasN1.WithSelf.N.6b9 +// CHECK:STDOUT: %HasN1.WithSelf.N.type => constants.%HasN1.WithSelf.N.type.446 +// CHECK:STDOUT: %HasN1.WithSelf.N => constants.%HasN1.WithSelf.N.d2e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasN1.WithSelf.N(constants.%HasN1.facet) {} @@ -1169,8 +1169,8 @@ fn P(o: O) { // CHECK:STDOUT: specific @HasN2.WithSelf(constants.%HasN2.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%HasN2.facet -// CHECK:STDOUT: %HasN2.WithSelf.N.type => constants.%HasN2.WithSelf.N.type.3a2 -// CHECK:STDOUT: %HasN2.WithSelf.N => constants.%HasN2.WithSelf.N.129 +// CHECK:STDOUT: %HasN2.WithSelf.N.type => constants.%HasN2.WithSelf.N.type.e3b +// CHECK:STDOUT: %HasN2.WithSelf.N => constants.%HasN2.WithSelf.N.be8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasN2.WithSelf.N(constants.%HasN2.facet) {} diff --git a/toolchain/check/testdata/impl/name_lookup_in_impl_definition.carbon b/toolchain/check/testdata/impl/name_lookup_in_impl_definition.carbon index 63aca758505c..ef79548dc071 100644 --- a/toolchain/check/testdata/impl/name_lookup_in_impl_definition.carbon +++ b/toolchain/check/testdata/impl/name_lookup_in_impl_definition.carbon @@ -37,8 +37,8 @@ impl forall [T:! type] T as I where .U = C { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %I.impl_witness: = impl_witness @T.as.I.impl.%I.impl_witness_table, @T.as.I.impl(%T) [symbolic] // CHECK:STDOUT: %I.facet: %I.type = facet_value %T, (%I.impl_witness) [symbolic] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %T.as.I.impl.F.type: type = fn_type @T.as.I.impl.F, @T.as.I.impl(%T) [symbolic] // CHECK:STDOUT: %T.as.I.impl.F: %T.as.I.impl.F.type = struct_value () [symbolic] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] @@ -53,14 +53,14 @@ impl forall [T:! type] T as I where .U = C { // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref as %.loc10_31 { // CHECK:STDOUT: %T.as.I.impl.F.decl: @T.as.I.impl.%T.as.I.impl.F.type (%T.as.I.impl.F.type) = fn_decl @T.as.I.impl.F [symbolic = @T.as.I.impl.%T.as.I.impl.F (constants.%T.as.I.impl.F)] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %U.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %U.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %I.facet.loc13_13.2: %I.type = facet_value @T.as.I.impl.%T.ref, (constants.%I.impl_witness) [symbolic = %I.facet.loc13_13.1 (constants.%I.facet)] // CHECK:STDOUT: %.loc13_13.1: %I.type = converted @T.as.I.impl.%T.ref, %I.facet.loc13_13.2 [symbolic = %I.facet.loc13_13.1 (constants.%I.facet)] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C] // CHECK:STDOUT: %U.ref: type = name_ref U, %impl.elem0 [concrete = constants.%C] -// CHECK:STDOUT: %.loc13_13.2: Core.Form = init_form %U.ref [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc13_13.2: Core.Form = init_form %U.ref [concrete = constants.%.a44] // CHECK:STDOUT: %return.param: ref %C = out_param call_param0 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/no_definition_in_impl_file.carbon b/toolchain/check/testdata/impl/no_definition_in_impl_file.carbon index 58f4b554bf87..f10e89cd8d64 100644 --- a/toolchain/check/testdata/impl/no_definition_in_impl_file.carbon +++ b/toolchain/check/testdata/impl/no_definition_in_impl_file.carbon @@ -151,9 +151,9 @@ impl () as D; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.A: type = import_ref Main//decl_in_api_definition_in_impl, A, loaded [concrete = constants.%A.type] -// CHECK:STDOUT: %Main.import_ref.687 = import_ref Main//decl_in_api_definition_in_impl, loc4_13, unloaded +// CHECK:STDOUT: %Main.import_ref.0a1 = import_ref Main//decl_in_api_definition_in_impl, loc4_13, unloaded // CHECK:STDOUT: %Main.import_ref.e5c: type = import_ref Main//decl_in_api_definition_in_impl, loc10_7, loaded [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %Main.import_ref.7f7: type = import_ref Main//decl_in_api_definition_in_impl, loc10_12, loaded [concrete = constants.%A.type] +// CHECK:STDOUT: %Main.import_ref.201: type = import_ref Main//decl_in_api_definition_in_impl, loc10_12, loaded [concrete = constants.%A.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -162,12 +162,12 @@ impl () as D; // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_46.1 = import // CHECK:STDOUT: %default.import.loc2_46.2 = import -// CHECK:STDOUT: impl_decl @empty_tuple.type.as.A.impl.5f5e2c.1 [concrete] {} { +// CHECK:STDOUT: impl_decl @empty_tuple.type.as.A.impl.2e7a85.1 [concrete] {} { // CHECK:STDOUT: %.loc8_7.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_7.2: type = converted %.loc8_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Main.A [concrete = constants.%A.type] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @empty_tuple.type.as.A.impl.5f5e2c.2 [concrete] {} { +// CHECK:STDOUT: impl_decl @empty_tuple.type.as.A.impl.2e7a85.2 [concrete] {} { // CHECK:STDOUT: %.loc14_7.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc14_7.2: type = converted %.loc14_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Main.A [concrete = constants.%A.type] @@ -176,17 +176,17 @@ impl () as D; // CHECK:STDOUT: // CHECK:STDOUT: interface @A [from "fail_decl_in_api_definition_in_impl.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.687 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a1 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @empty_tuple.type.as.A.impl.87a: imports.%Main.import_ref.e5c as imports.%Main.import_ref.7f7 [from "fail_decl_in_api_definition_in_impl.carbon"]; +// CHECK:STDOUT: impl @empty_tuple.type.as.A.impl.f51: imports.%Main.import_ref.e5c as imports.%Main.import_ref.201 [from "fail_decl_in_api_definition_in_impl.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: impl @empty_tuple.type.as.A.impl.5f5e2c.1: %.loc8_7.2 as %A.ref; +// CHECK:STDOUT: impl @empty_tuple.type.as.A.impl.2e7a85.1: %.loc8_7.2 as %A.ref; // CHECK:STDOUT: -// CHECK:STDOUT: impl @empty_tuple.type.as.A.impl.5f5e2c.2: %.loc14_7.2 as %A.ref { +// CHECK:STDOUT: impl @empty_tuple.type.as.A.impl.2e7a85.2: %.loc14_7.2 as %A.ref { // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %A.ref // CHECK:STDOUT: witness = @@ -260,9 +260,9 @@ impl () as D; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.B = import_ref Main//decl_only_in_api, B, unloaded -// CHECK:STDOUT: %Main.import_ref.f95 = import_ref Main//decl_only_in_api, loc4_13, unloaded +// CHECK:STDOUT: %Main.import_ref.c07 = import_ref Main//decl_only_in_api, loc4_13, unloaded // CHECK:STDOUT: %Main.import_ref.e5c: type = import_ref Main//decl_only_in_api, loc10_7, loaded [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %Main.import_ref.7eb: type = import_ref Main//decl_only_in_api, loc10_12, loaded [concrete = constants.%B.type] +// CHECK:STDOUT: %Main.import_ref.21a: type = import_ref Main//decl_only_in_api, loc10_12, loaded [concrete = constants.%B.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -275,13 +275,13 @@ impl () as D; // CHECK:STDOUT: // CHECK:STDOUT: interface @B [from "fail_decl_only_in_api.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.f95 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.c07 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @empty_tuple.type.as.B.impl: imports.%Main.import_ref.e5c as imports.%Main.import_ref.7eb [from "fail_decl_only_in_api.carbon"]; +// CHECK:STDOUT: impl @empty_tuple.type.as.B.impl: imports.%Main.import_ref.e5c as imports.%Main.import_ref.21a [from "fail_decl_only_in_api.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: specific @B.WithSelf(constants.%Self) {} // CHECK:STDOUT: @@ -332,9 +332,9 @@ impl () as D; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//decl_in_api_decl_in_impl, C, loaded [concrete = constants.%C.type] -// CHECK:STDOUT: %Main.import_ref.007 = import_ref Main//decl_in_api_decl_in_impl, loc4_13, unloaded +// CHECK:STDOUT: %Main.import_ref.fb3 = import_ref Main//decl_in_api_decl_in_impl, loc4_13, unloaded // CHECK:STDOUT: %Main.import_ref.e5c: type = import_ref Main//decl_in_api_decl_in_impl, loc10_7, loaded [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %Main.import_ref.dd5: type = import_ref Main//decl_in_api_decl_in_impl, loc10_12, loaded [concrete = constants.%C.type] +// CHECK:STDOUT: %Main.import_ref.3f1: type = import_ref Main//decl_in_api_decl_in_impl, loc10_12, loaded [concrete = constants.%C.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -343,7 +343,7 @@ impl () as D; // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_40.1 = import // CHECK:STDOUT: %default.import.loc2_40.2 = import -// CHECK:STDOUT: impl_decl @empty_tuple.type.as.C.impl.ac7 [concrete] {} { +// CHECK:STDOUT: impl_decl @empty_tuple.type.as.C.impl.006 [concrete] {} { // CHECK:STDOUT: %.loc8_7.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_7.2: type = converted %.loc8_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C.type] @@ -352,15 +352,15 @@ impl () as D; // CHECK:STDOUT: // CHECK:STDOUT: interface @C [from "fail_decl_in_api_decl_in_impl.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.007 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.fb3 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @empty_tuple.type.as.C.impl.4c7: imports.%Main.import_ref.e5c as imports.%Main.import_ref.dd5 [from "fail_decl_in_api_decl_in_impl.carbon"]; +// CHECK:STDOUT: impl @empty_tuple.type.as.C.impl.4b9: imports.%Main.import_ref.e5c as imports.%Main.import_ref.3f1 [from "fail_decl_in_api_decl_in_impl.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: impl @empty_tuple.type.as.C.impl.ac7: %.loc8_7.2 as %C.ref; +// CHECK:STDOUT: impl @empty_tuple.type.as.C.impl.006: %.loc8_7.2 as %C.ref; // CHECK:STDOUT: // CHECK:STDOUT: specific @C.WithSelf(constants.%Self) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/self_in_class.carbon b/toolchain/check/testdata/impl/self_in_class.carbon index 846ed658bd20..ba3127059299 100644 --- a/toolchain/check/testdata/impl/self_in_class.carbon +++ b/toolchain/check/testdata/impl/self_in_class.carbon @@ -32,10 +32,10 @@ class A { // CHECK:STDOUT: %DefaultConstructible.type: type = facet_type <@DefaultConstructible> [concrete] // CHECK:STDOUT: %Self: %DefaultConstructible.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %.8c2: Core.Form = init_form %Self.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.ad8: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.type.e02: type = fn_type @DefaultConstructible.WithSelf.Make, @DefaultConstructible.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.20d: %DefaultConstructible.WithSelf.Make.type.e02 = struct_value () [symbolic] +// CHECK:STDOUT: %.a3b: Core.Form = init_form %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.daa: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.type.6f5: type = fn_type @DefaultConstructible.WithSelf.Make, @DefaultConstructible.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.a1d: %DefaultConstructible.WithSelf.Make.type.6f5 = struct_value () [symbolic] // CHECK:STDOUT: %DefaultConstructible.assoc_type: type = assoc_entity_type @DefaultConstructible [concrete] // CHECK:STDOUT: %assoc0: %DefaultConstructible.assoc_type = assoc_entity element0, @DefaultConstructible.WithSelf.%DefaultConstructible.WithSelf.Make.decl [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] @@ -43,13 +43,13 @@ class A { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %DefaultConstructible.impl_witness: = impl_witness @C.as.DefaultConstructible.impl.%DefaultConstructible.impl_witness_table [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.as.DefaultConstructible.impl.Make.type: type = fn_type @C.as.DefaultConstructible.impl.Make [concrete] // CHECK:STDOUT: %C.as.DefaultConstructible.impl.Make: %C.as.DefaultConstructible.impl.Make.type = struct_value () [concrete] // CHECK:STDOUT: %DefaultConstructible.facet: %DefaultConstructible.type = facet_value %C, (%DefaultConstructible.impl_witness) [concrete] -// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.type.093: type = fn_type @DefaultConstructible.WithSelf.Make, @DefaultConstructible.WithSelf(%DefaultConstructible.facet) [concrete] -// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.36d: %DefaultConstructible.WithSelf.Make.type.093 = struct_value () [concrete] +// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.type.1d3: type = fn_type @DefaultConstructible.WithSelf.Make, @DefaultConstructible.WithSelf(%DefaultConstructible.facet) [concrete] +// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.08d: %DefaultConstructible.WithSelf.Make.type.1d3 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: } @@ -70,14 +70,14 @@ class A { // CHECK:STDOUT: %DefaultConstructible.WithSelf.decl = interface_with_self_decl @DefaultConstructible [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.decl: @DefaultConstructible.WithSelf.%DefaultConstructible.WithSelf.Make.type (%DefaultConstructible.WithSelf.Make.type.e02) = fn_decl @DefaultConstructible.WithSelf.Make [symbolic = @DefaultConstructible.WithSelf.%DefaultConstructible.WithSelf.Make (constants.%DefaultConstructible.WithSelf.Make.20d)] { -// CHECK:STDOUT: %return.param_patt: @DefaultConstructible.WithSelf.Make.%pattern_type (%pattern_type.ad8) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @DefaultConstructible.WithSelf.Make.%pattern_type (%pattern_type.ad8) = return_slot_pattern %return.param_patt, %.loc16_16.2 [concrete] +// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.decl: @DefaultConstructible.WithSelf.%DefaultConstructible.WithSelf.Make.type (%DefaultConstructible.WithSelf.Make.type.6f5) = fn_decl @DefaultConstructible.WithSelf.Make [symbolic = @DefaultConstructible.WithSelf.%DefaultConstructible.WithSelf.Make (constants.%DefaultConstructible.WithSelf.Make.a1d)] { +// CHECK:STDOUT: %return.param_patt: @DefaultConstructible.WithSelf.Make.%pattern_type (%pattern_type.daa) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @DefaultConstructible.WithSelf.Make.%pattern_type (%pattern_type.daa) = return_slot_pattern %return.param_patt, %.loc16_16.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref: %DefaultConstructible.type = name_ref Self, @DefaultConstructible.%Self [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc16_16.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_16.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc16_16.2: type = converted %Self.ref, %Self.as_type.loc16_16.2 [symbolic = %Self.as_type.loc16_16.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc16_16.3: Core.Form = init_form %.loc16_16.2 [symbolic = %.loc16_16.1 (constants.%.8c2)] +// CHECK:STDOUT: %.loc16_16.3: Core.Form = init_form %.loc16_16.2 [symbolic = %.loc16_16.1 (constants.%.a3b)] // CHECK:STDOUT: %return.param: ref @DefaultConstructible.WithSelf.Make.%Self.as_type.loc16_16.1 (%Self.as_type) = out_param call_param0 // CHECK:STDOUT: %return: ref @DefaultConstructible.WithSelf.Make.%Self.as_type.loc16_16.1 (%Self.as_type) = return_slot %return.param // CHECK:STDOUT: } @@ -93,11 +93,11 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.DefaultConstructible.impl: %C.ref as %DefaultConstructible.ref { // CHECK:STDOUT: %C.as.DefaultConstructible.impl.Make.decl: %C.as.DefaultConstructible.impl.Make.type = fn_decl @C.as.DefaultConstructible.impl.Make [concrete = constants.%C.as.DefaultConstructible.impl.Make] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %Self.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %Self.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.DefaultConstructible.impl.%C.ref [concrete = constants.%C] -// CHECK:STDOUT: %.loc25_18: Core.Form = init_form %Self.ref [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc25_18: Core.Form = init_form %Self.ref [concrete = constants.%.a44] // CHECK:STDOUT: %return.param: ref %C = out_param call_param0 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } @@ -135,8 +135,8 @@ class A { // CHECK:STDOUT: generic fn @DefaultConstructible.WithSelf.Make(@DefaultConstructible.%Self: %DefaultConstructible.type) { // CHECK:STDOUT: %Self: %DefaultConstructible.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc16_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_16.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc16_16.1: Core.Form = init_form %Self.as_type.loc16_16.1 [symbolic = %.loc16_16.1 (constants.%.8c2)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_16.1 [symbolic = %pattern_type (constants.%pattern_type.ad8)] +// CHECK:STDOUT: %.loc16_16.1: Core.Form = init_form %Self.as_type.loc16_16.1 [symbolic = %.loc16_16.1 (constants.%.a3b)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_16.1 [symbolic = %pattern_type (constants.%pattern_type.daa)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: @DefaultConstructible.WithSelf.Make.%Self.as_type.loc16_16.1 (%Self.as_type); // CHECK:STDOUT: } @@ -152,28 +152,28 @@ class A { // CHECK:STDOUT: specific @DefaultConstructible.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.type => constants.%DefaultConstructible.WithSelf.Make.type.e02 -// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make => constants.%DefaultConstructible.WithSelf.Make.20d +// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.type => constants.%DefaultConstructible.WithSelf.Make.type.6f5 +// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make => constants.%DefaultConstructible.WithSelf.Make.a1d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @DefaultConstructible.WithSelf.Make(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc16_16.1 => constants.%Self.as_type -// CHECK:STDOUT: %.loc16_16.1 => constants.%.8c2 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ad8 +// CHECK:STDOUT: %.loc16_16.1 => constants.%.a3b +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.daa // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @DefaultConstructible.WithSelf(constants.%DefaultConstructible.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%DefaultConstructible.facet -// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.type => constants.%DefaultConstructible.WithSelf.Make.type.093 -// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make => constants.%DefaultConstructible.WithSelf.Make.36d +// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.type => constants.%DefaultConstructible.WithSelf.Make.type.1d3 +// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make => constants.%DefaultConstructible.WithSelf.Make.08d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @DefaultConstructible.WithSelf.Make(constants.%DefaultConstructible.facet) { // CHECK:STDOUT: %Self => constants.%DefaultConstructible.facet // CHECK:STDOUT: %Self.as_type.loc16_16.1 => constants.%C -// CHECK:STDOUT: %.loc16_16.1 => constants.%.8f0 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d5 +// CHECK:STDOUT: %.loc16_16.1 => constants.%.a44 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/self_in_signature.carbon b/toolchain/check/testdata/impl/self_in_signature.carbon index 1b662ce250d2..a9aef291ff2a 100644 --- a/toolchain/check/testdata/impl/self_in_signature.carbon +++ b/toolchain/check/testdata/impl/self_in_signature.carbon @@ -44,74 +44,74 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %UseSelf.type: type = facet_type <@UseSelf> [concrete] -// CHECK:STDOUT: %Self.aea: %UseSelf.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.b41: type = facet_access_type %Self.aea [symbolic] -// CHECK:STDOUT: %pattern_type.949: type = pattern_type %Self.as_type.b41 [symbolic] -// CHECK:STDOUT: %.edf: Core.Form = init_form %Self.as_type.b41 [symbolic] -// CHECK:STDOUT: %UseSelf.WithSelf.F.type.162: type = fn_type @UseSelf.WithSelf.F, @UseSelf.WithSelf(%Self.aea) [symbolic] +// CHECK:STDOUT: %Self.bde: %UseSelf.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.968: type = facet_access_type %Self.bde [symbolic] +// CHECK:STDOUT: %pattern_type.04e: type = pattern_type %Self.as_type.968 [symbolic] +// CHECK:STDOUT: %.326: Core.Form = init_form %Self.as_type.968 [symbolic] +// CHECK:STDOUT: %UseSelf.WithSelf.F.type.74d: type = fn_type @UseSelf.WithSelf.F, @UseSelf.WithSelf(%Self.bde) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %UseSelf.WithSelf.F.91b: %UseSelf.WithSelf.F.type.162 = struct_value () [symbolic] +// CHECK:STDOUT: %UseSelf.WithSelf.F.8c4: %UseSelf.WithSelf.F.type.74d = struct_value () [symbolic] // CHECK:STDOUT: %UseSelf.assoc_type: type = assoc_entity_type @UseSelf [concrete] -// CHECK:STDOUT: %assoc0.d6a: %UseSelf.assoc_type = assoc_entity element0, @UseSelf.WithSelf.%UseSelf.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %assoc0.f2e: %UseSelf.assoc_type = assoc_entity element0, @UseSelf.WithSelf.%UseSelf.WithSelf.F.decl [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] -// CHECK:STDOUT: %UseSelf.impl_witness.8ec: = impl_witness @C.as.UseSelf.impl.%UseSelf.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %UseSelf.impl_witness.046: = impl_witness @C.as.UseSelf.impl.%UseSelf.impl_witness_table [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] // CHECK:STDOUT: %C.as.UseSelf.impl.F.type: type = fn_type @C.as.UseSelf.impl.F [concrete] // CHECK:STDOUT: %C.as.UseSelf.impl.F: %C.as.UseSelf.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %UseSelf.facet.b77: %UseSelf.type = facet_value %C, (%UseSelf.impl_witness.8ec) [concrete] -// CHECK:STDOUT: %UseSelf.WithSelf.F.type.acc: type = fn_type @UseSelf.WithSelf.F, @UseSelf.WithSelf(%UseSelf.facet.b77) [concrete] -// CHECK:STDOUT: %UseSelf.WithSelf.F.209: %UseSelf.WithSelf.F.type.acc = struct_value () [concrete] +// CHECK:STDOUT: %UseSelf.facet.14b: %UseSelf.type = facet_value %C, (%UseSelf.impl_witness.046) [concrete] +// CHECK:STDOUT: %UseSelf.WithSelf.F.type.103: type = fn_type @UseSelf.WithSelf.F, @UseSelf.WithSelf(%UseSelf.facet.14b) [concrete] +// CHECK:STDOUT: %UseSelf.WithSelf.F.e1d: %UseSelf.WithSelf.F.type.103 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %UseSelf.impl_witness.6ee: = impl_witness @D.as.UseSelf.impl.%UseSelf.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.f1a: type = pattern_type %D [concrete] -// CHECK:STDOUT: %.f19: Core.Form = init_form %D [concrete] +// CHECK:STDOUT: %UseSelf.impl_witness.047: = impl_witness @D.as.UseSelf.impl.%UseSelf.impl_witness_table [concrete] +// CHECK:STDOUT: %pattern_type.d8d: type = pattern_type %D [concrete] +// CHECK:STDOUT: %.592: Core.Form = init_form %D [concrete] // CHECK:STDOUT: %D.as.UseSelf.impl.F.type: type = fn_type @D.as.UseSelf.impl.F [concrete] // CHECK:STDOUT: %D.as.UseSelf.impl.F: %D.as.UseSelf.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %UseSelf.facet.16a: %UseSelf.type = facet_value %D, (%UseSelf.impl_witness.6ee) [concrete] -// CHECK:STDOUT: %UseSelf.WithSelf.F.type.f22: type = fn_type @UseSelf.WithSelf.F, @UseSelf.WithSelf(%UseSelf.facet.16a) [concrete] -// CHECK:STDOUT: %UseSelf.WithSelf.F.7e1: %UseSelf.WithSelf.F.type.f22 = struct_value () [concrete] +// CHECK:STDOUT: %UseSelf.facet.64f: %UseSelf.type = facet_value %D, (%UseSelf.impl_witness.047) [concrete] +// CHECK:STDOUT: %UseSelf.WithSelf.F.type.bbe: type = fn_type @UseSelf.WithSelf.F, @UseSelf.WithSelf(%UseSelf.facet.64f) [concrete] +// CHECK:STDOUT: %UseSelf.WithSelf.F.8b5: %UseSelf.WithSelf.F.type.bbe = struct_value () [concrete] // CHECK:STDOUT: %D.val: %D = struct_value () [concrete] // CHECK:STDOUT: %SelfNested.type: type = facet_type <@SelfNested> [concrete] -// CHECK:STDOUT: %Self.d32: %SelfNested.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.fd2: type = facet_access_type %Self.d32 [symbolic] -// CHECK:STDOUT: %ptr.99d: type = ptr_type %Self.as_type.fd2 [symbolic] +// CHECK:STDOUT: %Self.e81: %SelfNested.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.8ab: type = facet_access_type %Self.e81 [symbolic] +// CHECK:STDOUT: %ptr.a16: type = ptr_type %Self.as_type.8ab [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %struct_type.x.y.a76: type = struct_type {.x: %Self.as_type.fd2, .y: %empty_tuple.type} [symbolic] +// CHECK:STDOUT: %struct_type.x.y.749: type = struct_type {.x: %Self.as_type.8ab, .y: %empty_tuple.type} [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.f48: %tuple.type.24b = tuple_value (%ptr.99d, %struct_type.x.y.a76) [symbolic] -// CHECK:STDOUT: %tuple.type.b72: type = tuple_type (%ptr.99d, %struct_type.x.y.a76) [symbolic] -// CHECK:STDOUT: %pattern_type.21c: type = pattern_type %tuple.type.b72 [symbolic] -// CHECK:STDOUT: %SelfNested.WithSelf.F.type.9b9: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%Self.d32) [symbolic] -// CHECK:STDOUT: %SelfNested.WithSelf.F.d66: %SelfNested.WithSelf.F.type.9b9 = struct_value () [symbolic] +// CHECK:STDOUT: %tuple.876: %tuple.type.24b = tuple_value (%ptr.a16, %struct_type.x.y.749) [symbolic] +// CHECK:STDOUT: %tuple.type.d83: type = tuple_type (%ptr.a16, %struct_type.x.y.749) [symbolic] +// CHECK:STDOUT: %pattern_type.6eb: type = pattern_type %tuple.type.d83 [symbolic] +// CHECK:STDOUT: %SelfNested.WithSelf.F.type.702: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%Self.e81) [symbolic] +// CHECK:STDOUT: %SelfNested.WithSelf.F.eec: %SelfNested.WithSelf.F.type.702 = struct_value () [symbolic] // CHECK:STDOUT: %SelfNested.assoc_type: type = assoc_entity_type @SelfNested [concrete] -// CHECK:STDOUT: %assoc0.338: %SelfNested.assoc_type = assoc_entity element0, @SelfNested.WithSelf.%SelfNested.WithSelf.F.decl [concrete] -// CHECK:STDOUT: %SelfNested.impl_witness.97c: = impl_witness @C.as.SelfNested.impl.%SelfNested.impl_witness_table [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %struct_type.x.y.f6d: type = struct_type {.x: %C, .y: %empty_tuple.type} [concrete] -// CHECK:STDOUT: %tuple.0dc: %tuple.type.24b = tuple_value (%ptr.6be, %struct_type.x.y.f6d) [concrete] -// CHECK:STDOUT: %tuple.type.0ff: type = tuple_type (%ptr.6be, %struct_type.x.y.f6d) [concrete] -// CHECK:STDOUT: %pattern_type.05a: type = pattern_type %tuple.type.0ff [concrete] +// CHECK:STDOUT: %assoc0.219: %SelfNested.assoc_type = assoc_entity element0, @SelfNested.WithSelf.%SelfNested.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %SelfNested.impl_witness.d40: = impl_witness @C.as.SelfNested.impl.%SelfNested.impl_witness_table [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %struct_type.x.y.ee7: type = struct_type {.x: %C, .y: %empty_tuple.type} [concrete] +// CHECK:STDOUT: %tuple.562: %tuple.type.24b = tuple_value (%ptr.6b6, %struct_type.x.y.ee7) [concrete] +// CHECK:STDOUT: %tuple.type.746: type = tuple_type (%ptr.6b6, %struct_type.x.y.ee7) [concrete] +// CHECK:STDOUT: %pattern_type.79c: type = pattern_type %tuple.type.746 [concrete] // CHECK:STDOUT: %C.as.SelfNested.impl.F.type: type = fn_type @C.as.SelfNested.impl.F [concrete] // CHECK:STDOUT: %C.as.SelfNested.impl.F: %C.as.SelfNested.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %SelfNested.facet.593: %SelfNested.type = facet_value %C, (%SelfNested.impl_witness.97c) [concrete] -// CHECK:STDOUT: %SelfNested.WithSelf.F.type.c4b: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%SelfNested.facet.593) [concrete] -// CHECK:STDOUT: %SelfNested.WithSelf.F.899: %SelfNested.WithSelf.F.type.c4b = struct_value () [concrete] -// CHECK:STDOUT: %SelfNested.impl_witness.0f1: = impl_witness @D.as.SelfNested.impl.%SelfNested.impl_witness_table [concrete] -// CHECK:STDOUT: %ptr.c12: type = ptr_type %D [concrete] -// CHECK:STDOUT: %struct_type.x.y.e65: type = struct_type {.x: %D, .y: %empty_tuple.type} [concrete] -// CHECK:STDOUT: %tuple.9ca: %tuple.type.24b = tuple_value (%ptr.c12, %struct_type.x.y.e65) [concrete] -// CHECK:STDOUT: %tuple.type.1a8: type = tuple_type (%ptr.c12, %struct_type.x.y.e65) [concrete] -// CHECK:STDOUT: %pattern_type.3e5: type = pattern_type %tuple.type.1a8 [concrete] +// CHECK:STDOUT: %SelfNested.facet.749: %SelfNested.type = facet_value %C, (%SelfNested.impl_witness.d40) [concrete] +// CHECK:STDOUT: %SelfNested.WithSelf.F.type.369: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%SelfNested.facet.749) [concrete] +// CHECK:STDOUT: %SelfNested.WithSelf.F.0c3: %SelfNested.WithSelf.F.type.369 = struct_value () [concrete] +// CHECK:STDOUT: %SelfNested.impl_witness.ad8: = impl_witness @D.as.SelfNested.impl.%SelfNested.impl_witness_table [concrete] +// CHECK:STDOUT: %ptr.d57: type = ptr_type %D [concrete] +// CHECK:STDOUT: %struct_type.x.y.e52: type = struct_type {.x: %D, .y: %empty_tuple.type} [concrete] +// CHECK:STDOUT: %tuple.c73: %tuple.type.24b = tuple_value (%ptr.d57, %struct_type.x.y.e52) [concrete] +// CHECK:STDOUT: %tuple.type.aaa: type = tuple_type (%ptr.d57, %struct_type.x.y.e52) [concrete] +// CHECK:STDOUT: %pattern_type.338: type = pattern_type %tuple.type.aaa [concrete] // CHECK:STDOUT: %D.as.SelfNested.impl.F.type: type = fn_type @D.as.SelfNested.impl.F [concrete] // CHECK:STDOUT: %D.as.SelfNested.impl.F: %D.as.SelfNested.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %SelfNested.facet.93e: %SelfNested.type = facet_value %D, (%SelfNested.impl_witness.0f1) [concrete] -// CHECK:STDOUT: %SelfNested.WithSelf.F.type.4ca: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%SelfNested.facet.93e) [concrete] -// CHECK:STDOUT: %SelfNested.WithSelf.F.3a5: %SelfNested.WithSelf.F.type.4ca = struct_value () [concrete] +// CHECK:STDOUT: %SelfNested.facet.d22: %SelfNested.type = facet_value %D, (%SelfNested.impl_witness.ad8) [concrete] +// CHECK:STDOUT: %SelfNested.WithSelf.F.type.f5f: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%SelfNested.facet.d22) [concrete] +// CHECK:STDOUT: %SelfNested.WithSelf.F.ece: %SelfNested.WithSelf.F.type.f5f = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -144,40 +144,40 @@ impl D as SelfNested { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @UseSelf { -// CHECK:STDOUT: %Self: %UseSelf.type = symbolic_binding Self, 0 [symbolic = constants.%Self.aea] +// CHECK:STDOUT: %Self: %UseSelf.type = symbolic_binding Self, 0 [symbolic = constants.%Self.bde] // CHECK:STDOUT: %UseSelf.WithSelf.decl = interface_with_self_decl @UseSelf [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %UseSelf.WithSelf.F.decl: @UseSelf.WithSelf.%UseSelf.WithSelf.F.type (%UseSelf.WithSelf.F.type.162) = fn_decl @UseSelf.WithSelf.F [symbolic = @UseSelf.WithSelf.%UseSelf.WithSelf.F (constants.%UseSelf.WithSelf.F.91b)] { -// CHECK:STDOUT: %self.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.949) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.949) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %x.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.949) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.949) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.949) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.949) = return_slot_pattern %return.param_patt, %.loc16_32.2 [concrete] +// CHECK:STDOUT: %UseSelf.WithSelf.F.decl: @UseSelf.WithSelf.%UseSelf.WithSelf.F.type (%UseSelf.WithSelf.F.type.74d) = fn_decl @UseSelf.WithSelf.F [symbolic = @UseSelf.WithSelf.%UseSelf.WithSelf.F (constants.%UseSelf.WithSelf.F.8c4)] { +// CHECK:STDOUT: %self.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = return_slot_pattern %return.param_patt, %.loc16_32.2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.ref.loc16_32: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.aea)] -// CHECK:STDOUT: %Self.as_type.loc16_32: type = facet_access_type %Self.ref.loc16_32 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b41)] -// CHECK:STDOUT: %.loc16_32.2: type = converted %Self.ref.loc16_32, %Self.as_type.loc16_32 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b41)] -// CHECK:STDOUT: %.loc16_32.3: Core.Form = init_form %.loc16_32.2 [symbolic = %.loc16_32.1 (constants.%.edf)] -// CHECK:STDOUT: %self.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.b41) = value_param call_param0 -// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b41)] { -// CHECK:STDOUT: %Self.ref.loc16_14: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.aea)] -// CHECK:STDOUT: %Self.as_type.loc16_14.2: type = facet_access_type %Self.ref.loc16_14 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b41)] -// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref.loc16_14, %Self.as_type.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b41)] +// CHECK:STDOUT: %Self.ref.loc16_32: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.bde)] +// CHECK:STDOUT: %Self.as_type.loc16_32: type = facet_access_type %Self.ref.loc16_32 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.968)] +// CHECK:STDOUT: %.loc16_32.2: type = converted %Self.ref.loc16_32, %Self.as_type.loc16_32 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.968)] +// CHECK:STDOUT: %.loc16_32.3: Core.Form = init_form %.loc16_32.2 [symbolic = %.loc16_32.1 (constants.%.326)] +// CHECK:STDOUT: %self.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.968) = value_param call_param0 +// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.968)] { +// CHECK:STDOUT: %Self.ref.loc16_14: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.bde)] +// CHECK:STDOUT: %Self.as_type.loc16_14.2: type = facet_access_type %Self.ref.loc16_14 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.968)] +// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref.loc16_14, %Self.as_type.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.968)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.b41) = value_binding self, %self.param -// CHECK:STDOUT: %x.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.b41) = value_param call_param1 -// CHECK:STDOUT: %.loc16_23.1: type = splice_block %.loc16_23.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b41)] { -// CHECK:STDOUT: %Self.ref.loc16_23: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.aea)] -// CHECK:STDOUT: %Self.as_type.loc16_23: type = facet_access_type %Self.ref.loc16_23 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b41)] -// CHECK:STDOUT: %.loc16_23.2: type = converted %Self.ref.loc16_23, %Self.as_type.loc16_23 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b41)] +// CHECK:STDOUT: %self: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.968) = value_binding self, %self.param +// CHECK:STDOUT: %x.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.968) = value_param call_param1 +// CHECK:STDOUT: %.loc16_23.1: type = splice_block %.loc16_23.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.968)] { +// CHECK:STDOUT: %Self.ref.loc16_23: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.bde)] +// CHECK:STDOUT: %Self.as_type.loc16_23: type = facet_access_type %Self.ref.loc16_23 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.968)] +// CHECK:STDOUT: %.loc16_23.2: type = converted %Self.ref.loc16_23, %Self.as_type.loc16_23 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.968)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.b41) = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.b41) = out_param call_param2 -// CHECK:STDOUT: %return: ref @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.b41) = return_slot %return.param +// CHECK:STDOUT: %x: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.968) = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.968) = out_param call_param2 +// CHECK:STDOUT: %return: ref @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.968) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %UseSelf.assoc_type = assoc_entity element0, %UseSelf.WithSelf.F.decl [concrete = constants.%assoc0.d6a] +// CHECK:STDOUT: %assoc0: %UseSelf.assoc_type = assoc_entity element0, %UseSelf.WithSelf.F.decl [concrete = constants.%assoc0.f2e] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -189,32 +189,32 @@ impl D as SelfNested { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @SelfNested { -// CHECK:STDOUT: %Self: %SelfNested.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d32] +// CHECK:STDOUT: %Self: %SelfNested.type = symbolic_binding Self, 0 [symbolic = constants.%Self.e81] // CHECK:STDOUT: %SelfNested.WithSelf.decl = interface_with_self_decl @SelfNested [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %SelfNested.WithSelf.F.decl: @SelfNested.WithSelf.%SelfNested.WithSelf.F.type (%SelfNested.WithSelf.F.type.9b9) = fn_decl @SelfNested.WithSelf.F [symbolic = @SelfNested.WithSelf.%SelfNested.WithSelf.F (constants.%SelfNested.WithSelf.F.d66)] { -// CHECK:STDOUT: %x.param_patt: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.21c) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.21c) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %SelfNested.WithSelf.F.decl: @SelfNested.WithSelf.%SelfNested.WithSelf.F.type (%SelfNested.WithSelf.F.type.702) = fn_decl @SelfNested.WithSelf.F [symbolic = @SelfNested.WithSelf.%SelfNested.WithSelf.F (constants.%SelfNested.WithSelf.F.eec)] { +// CHECK:STDOUT: %x.param_patt: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.6eb) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.6eb) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.b72) = value_param call_param0 -// CHECK:STDOUT: %.loc32_37.1: type = splice_block %.loc32_37.3 [symbolic = %tuple.type (constants.%tuple.type.b72)] { -// CHECK:STDOUT: %Self.ref.loc32_12: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.d32)] -// CHECK:STDOUT: %Self.as_type.loc32_16.2: type = facet_access_type %Self.ref.loc32_12 [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.fd2)] -// CHECK:STDOUT: %.loc32_16: type = converted %Self.ref.loc32_12, %Self.as_type.loc32_16.2 [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.fd2)] -// CHECK:STDOUT: %ptr.loc32_16.2: type = ptr_type %.loc32_16 [symbolic = %ptr.loc32_16.1 (constants.%ptr.99d)] -// CHECK:STDOUT: %Self.ref.loc32_24: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.d32)] -// CHECK:STDOUT: %Self.as_type.loc32_24: type = facet_access_type %Self.ref.loc32_24 [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.fd2)] -// CHECK:STDOUT: %.loc32_24: type = converted %Self.ref.loc32_24, %Self.as_type.loc32_24 [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.fd2)] +// CHECK:STDOUT: %x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.d83) = value_param call_param0 +// CHECK:STDOUT: %.loc32_37.1: type = splice_block %.loc32_37.3 [symbolic = %tuple.type (constants.%tuple.type.d83)] { +// CHECK:STDOUT: %Self.ref.loc32_12: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.e81)] +// CHECK:STDOUT: %Self.as_type.loc32_16.2: type = facet_access_type %Self.ref.loc32_12 [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.8ab)] +// CHECK:STDOUT: %.loc32_16: type = converted %Self.ref.loc32_12, %Self.as_type.loc32_16.2 [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.8ab)] +// CHECK:STDOUT: %ptr.loc32_16.2: type = ptr_type %.loc32_16 [symbolic = %ptr.loc32_16.1 (constants.%ptr.a16)] +// CHECK:STDOUT: %Self.ref.loc32_24: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.e81)] +// CHECK:STDOUT: %Self.as_type.loc32_24: type = facet_access_type %Self.ref.loc32_24 [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.8ab)] +// CHECK:STDOUT: %.loc32_24: type = converted %Self.ref.loc32_24, %Self.as_type.loc32_24 [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.8ab)] // CHECK:STDOUT: %.loc32_35.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc32_35.2: type = converted %.loc32_35.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %struct_type.x.y.loc32_36.2: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.as_type.loc32_16.1 (%Self.as_type.fd2), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc32_36.1 (constants.%struct_type.x.y.a76)] -// CHECK:STDOUT: %.loc32_37.2: %tuple.type.24b = tuple_literal (%ptr.loc32_16.2, %struct_type.x.y.loc32_36.2) [symbolic = %tuple (constants.%tuple.f48)] -// CHECK:STDOUT: %.loc32_37.3: type = converted %.loc32_37.2, constants.%tuple.type.b72 [symbolic = %tuple.type (constants.%tuple.type.b72)] +// CHECK:STDOUT: %struct_type.x.y.loc32_36.2: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.as_type.loc32_16.1 (%Self.as_type.8ab), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc32_36.1 (constants.%struct_type.x.y.749)] +// CHECK:STDOUT: %.loc32_37.2: %tuple.type.24b = tuple_literal (%ptr.loc32_16.2, %struct_type.x.y.loc32_36.2) [symbolic = %tuple (constants.%tuple.876)] +// CHECK:STDOUT: %.loc32_37.3: type = converted %.loc32_37.2, constants.%tuple.type.d83 [symbolic = %tuple.type (constants.%tuple.type.d83)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.b72) = value_binding x, %x.param +// CHECK:STDOUT: %x: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.d83) = value_binding x, %x.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %SelfNested.assoc_type = assoc_entity element0, %SelfNested.WithSelf.F.decl [concrete = constants.%assoc0.338] +// CHECK:STDOUT: %assoc0: %SelfNested.assoc_type = assoc_entity element0, %SelfNested.WithSelf.F.decl [concrete = constants.%assoc0.219] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -227,15 +227,15 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.UseSelf.impl: %C.ref as %UseSelf.ref { // CHECK:STDOUT: %C.as.UseSelf.impl.F.decl: %C.as.UseSelf.impl.F.type = fn_decl @C.as.UseSelf.impl.F [concrete = constants.%C.as.UseSelf.impl.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.0d5 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.0d5 = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref.loc24_40 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.98b = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc24_40 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc24_40: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc24_40: Core.Form = init_form %C.ref.loc24_40 [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc24_40: Core.Form = init_form %C.ref.loc24_40 [concrete = constants.%.a44] // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc24_21: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %self: %C = value_binding self, %self.param @@ -246,7 +246,7 @@ impl D as SelfNested { // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %UseSelf.impl_witness_table = impl_witness_table (%C.as.UseSelf.impl.F.decl), @C.as.UseSelf.impl [concrete] -// CHECK:STDOUT: %UseSelf.impl_witness: = impl_witness %UseSelf.impl_witness_table [concrete = constants.%UseSelf.impl_witness.8ec] +// CHECK:STDOUT: %UseSelf.impl_witness: = impl_witness %UseSelf.impl_witness_table [concrete = constants.%UseSelf.impl_witness.046] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .C = @@ -257,15 +257,15 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: impl @D.as.UseSelf.impl: %D.ref as %UseSelf.ref { // CHECK:STDOUT: %D.as.UseSelf.impl.F.decl: %D.as.UseSelf.impl.F.type = fn_decl @D.as.UseSelf.impl.F [concrete = constants.%D.as.UseSelf.impl.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.f1a = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.f1a = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %x.param_patt: %pattern_type.f1a = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.f1a = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.f1a = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.f1a = return_slot_pattern %return.param_patt, %Self.ref.loc28_46 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.d8d = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.d8d = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.d8d = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.d8d = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.d8d = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.d8d = return_slot_pattern %return.param_patt, %Self.ref.loc28_46 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc28_46: type = name_ref Self, @D.as.UseSelf.impl.%D.ref [concrete = constants.%D] -// CHECK:STDOUT: %.loc28_46: Core.Form = init_form %Self.ref.loc28_46 [concrete = constants.%.f19] +// CHECK:STDOUT: %.loc28_46: Core.Form = init_form %Self.ref.loc28_46 [concrete = constants.%.592] // CHECK:STDOUT: %self.param: %D = value_param call_param0 // CHECK:STDOUT: %Self.ref.loc28_21: type = name_ref Self, @D.as.UseSelf.impl.%D.ref [concrete = constants.%D] // CHECK:STDOUT: %self: %D = value_binding self, %self.param @@ -276,7 +276,7 @@ impl D as SelfNested { // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %UseSelf.impl_witness_table = impl_witness_table (%D.as.UseSelf.impl.F.decl), @D.as.UseSelf.impl [concrete] -// CHECK:STDOUT: %UseSelf.impl_witness: = impl_witness %UseSelf.impl_witness_table [concrete = constants.%UseSelf.impl_witness.6ee] +// CHECK:STDOUT: %UseSelf.impl_witness: = impl_witness %UseSelf.impl_witness_table [concrete = constants.%UseSelf.impl_witness.047] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %D.as.UseSelf.impl.F.decl @@ -286,24 +286,24 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.SelfNested.impl: %C.ref as %SelfNested.ref { // CHECK:STDOUT: %C.as.SelfNested.impl.F.decl: %C.as.SelfNested.impl.F.type = fn_decl @C.as.SelfNested.impl.F [concrete = constants.%C.as.SelfNested.impl.F] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.05a = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.05a = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.79c = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.79c = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %x.param: %tuple.type.0ff = value_param call_param0 -// CHECK:STDOUT: %.loc36_31.1: type = splice_block %.loc36_31.3 [concrete = constants.%tuple.type.0ff] { +// CHECK:STDOUT: %x.param: %tuple.type.746 = value_param call_param0 +// CHECK:STDOUT: %.loc36_31.1: type = splice_block %.loc36_31.3 [concrete = constants.%tuple.type.746] { // CHECK:STDOUT: %C.ref.loc36_12: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr: type = ptr_type %C.ref.loc36_12 [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr: type = ptr_type %C.ref.loc36_12 [concrete = constants.%ptr.6b6] // CHECK:STDOUT: %C.ref.loc36_21: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc36_29.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc36_29.2: type = converted %.loc36_29.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %struct_type.x.y: type = struct_type {.x: %C, .y: %empty_tuple.type} [concrete = constants.%struct_type.x.y.f6d] -// CHECK:STDOUT: %.loc36_31.2: %tuple.type.24b = tuple_literal (%ptr, %struct_type.x.y) [concrete = constants.%tuple.0dc] -// CHECK:STDOUT: %.loc36_31.3: type = converted %.loc36_31.2, constants.%tuple.type.0ff [concrete = constants.%tuple.type.0ff] +// CHECK:STDOUT: %struct_type.x.y: type = struct_type {.x: %C, .y: %empty_tuple.type} [concrete = constants.%struct_type.x.y.ee7] +// CHECK:STDOUT: %.loc36_31.2: %tuple.type.24b = tuple_literal (%ptr, %struct_type.x.y) [concrete = constants.%tuple.562] +// CHECK:STDOUT: %.loc36_31.3: type = converted %.loc36_31.2, constants.%tuple.type.746 [concrete = constants.%tuple.type.746] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: %tuple.type.0ff = value_binding x, %x.param +// CHECK:STDOUT: %x: %tuple.type.746 = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %SelfNested.impl_witness_table = impl_witness_table (%C.as.SelfNested.impl.F.decl), @C.as.SelfNested.impl [concrete] -// CHECK:STDOUT: %SelfNested.impl_witness: = impl_witness %SelfNested.impl_witness_table [concrete = constants.%SelfNested.impl_witness.97c] +// CHECK:STDOUT: %SelfNested.impl_witness: = impl_witness %SelfNested.impl_witness_table [concrete = constants.%SelfNested.impl_witness.d40] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .C = @@ -314,24 +314,24 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: impl @D.as.SelfNested.impl: %D.ref as %SelfNested.ref { // CHECK:STDOUT: %D.as.SelfNested.impl.F.decl: %D.as.SelfNested.impl.F.type = fn_decl @D.as.SelfNested.impl.F [concrete = constants.%D.as.SelfNested.impl.F] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.3e5 = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.3e5 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.338 = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.338 = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %x.param: %tuple.type.1a8 = value_param call_param0 -// CHECK:STDOUT: %.loc40_37.1: type = splice_block %.loc40_37.3 [concrete = constants.%tuple.type.1a8] { +// CHECK:STDOUT: %x.param: %tuple.type.aaa = value_param call_param0 +// CHECK:STDOUT: %.loc40_37.1: type = splice_block %.loc40_37.3 [concrete = constants.%tuple.type.aaa] { // CHECK:STDOUT: %Self.ref.loc40_12: type = name_ref Self, @D.as.SelfNested.impl.%D.ref [concrete = constants.%D] -// CHECK:STDOUT: %ptr: type = ptr_type %Self.ref.loc40_12 [concrete = constants.%ptr.c12] +// CHECK:STDOUT: %ptr: type = ptr_type %Self.ref.loc40_12 [concrete = constants.%ptr.d57] // CHECK:STDOUT: %Self.ref.loc40_24: type = name_ref Self, @D.as.SelfNested.impl.%D.ref [concrete = constants.%D] // CHECK:STDOUT: %.loc40_35.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc40_35.2: type = converted %.loc40_35.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %struct_type.x.y: type = struct_type {.x: %D, .y: %empty_tuple.type} [concrete = constants.%struct_type.x.y.e65] -// CHECK:STDOUT: %.loc40_37.2: %tuple.type.24b = tuple_literal (%ptr, %struct_type.x.y) [concrete = constants.%tuple.9ca] -// CHECK:STDOUT: %.loc40_37.3: type = converted %.loc40_37.2, constants.%tuple.type.1a8 [concrete = constants.%tuple.type.1a8] +// CHECK:STDOUT: %struct_type.x.y: type = struct_type {.x: %D, .y: %empty_tuple.type} [concrete = constants.%struct_type.x.y.e52] +// CHECK:STDOUT: %.loc40_37.2: %tuple.type.24b = tuple_literal (%ptr, %struct_type.x.y) [concrete = constants.%tuple.c73] +// CHECK:STDOUT: %.loc40_37.3: type = converted %.loc40_37.2, constants.%tuple.type.aaa [concrete = constants.%tuple.type.aaa] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: %tuple.type.1a8 = value_binding x, %x.param +// CHECK:STDOUT: %x: %tuple.type.aaa = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %SelfNested.impl_witness_table = impl_witness_table (%D.as.SelfNested.impl.F.decl), @D.as.SelfNested.impl [concrete] -// CHECK:STDOUT: %SelfNested.impl_witness: = impl_witness %SelfNested.impl_witness_table [concrete = constants.%SelfNested.impl_witness.0f1] +// CHECK:STDOUT: %SelfNested.impl_witness: = impl_witness %SelfNested.impl_witness_table [concrete = constants.%SelfNested.impl_witness.ad8] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %D.as.SelfNested.impl.F.decl @@ -356,12 +356,12 @@ impl D as SelfNested { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @UseSelf.WithSelf.F(@UseSelf.%Self: %UseSelf.type) { -// CHECK:STDOUT: %Self: %UseSelf.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.aea)] -// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b41)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type.949)] -// CHECK:STDOUT: %.loc16_32.1: Core.Form = init_form %Self.as_type.loc16_14.1 [symbolic = %.loc16_32.1 (constants.%.edf)] +// CHECK:STDOUT: %Self: %UseSelf.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.bde)] +// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.968)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type.04e)] +// CHECK:STDOUT: %.loc16_32.1: Core.Form = init_form %Self.as_type.loc16_14.1 [symbolic = %.loc16_32.1 (constants.%.326)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.b41), %x.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.b41)) -> out %return.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.b41); +// CHECK:STDOUT: fn(%self.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.968), %x.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.968)) -> out %return.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.968); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.UseSelf.impl.F(%self.param: %C, %x.param: %C) -> out %return.param: %C { @@ -381,111 +381,111 @@ impl D as SelfNested { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @SelfNested.WithSelf.F(@SelfNested.%Self: %SelfNested.type) { -// CHECK:STDOUT: %Self: %SelfNested.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.d32)] -// CHECK:STDOUT: %Self.as_type.loc32_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.fd2)] -// CHECK:STDOUT: %ptr.loc32_16.1: type = ptr_type %Self.as_type.loc32_16.1 [symbolic = %ptr.loc32_16.1 (constants.%ptr.99d)] -// CHECK:STDOUT: %struct_type.x.y.loc32_36.1: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.as_type.loc32_16.1 (%Self.as_type.fd2), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc32_36.1 (constants.%struct_type.x.y.a76)] -// CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%ptr.loc32_16.1, %struct_type.x.y.loc32_36.1) [symbolic = %tuple (constants.%tuple.f48)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc32_16.1, %struct_type.x.y.loc32_36.1) [symbolic = %tuple.type (constants.%tuple.type.b72)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %tuple.type [symbolic = %pattern_type (constants.%pattern_type.21c)] +// CHECK:STDOUT: %Self: %SelfNested.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.e81)] +// CHECK:STDOUT: %Self.as_type.loc32_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.8ab)] +// CHECK:STDOUT: %ptr.loc32_16.1: type = ptr_type %Self.as_type.loc32_16.1 [symbolic = %ptr.loc32_16.1 (constants.%ptr.a16)] +// CHECK:STDOUT: %struct_type.x.y.loc32_36.1: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.as_type.loc32_16.1 (%Self.as_type.8ab), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc32_36.1 (constants.%struct_type.x.y.749)] +// CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%ptr.loc32_16.1, %struct_type.x.y.loc32_36.1) [symbolic = %tuple (constants.%tuple.876)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc32_16.1, %struct_type.x.y.loc32_36.1) [symbolic = %tuple.type (constants.%tuple.type.d83)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %tuple.type [symbolic = %pattern_type (constants.%pattern_type.6eb)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.b72)); +// CHECK:STDOUT: fn(%x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.d83)); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @C.as.SelfNested.impl.F(%x.param: %tuple.type.0ff); +// CHECK:STDOUT: fn @C.as.SelfNested.impl.F(%x.param: %tuple.type.746); // CHECK:STDOUT: -// CHECK:STDOUT: fn @D.as.SelfNested.impl.F(%x.param: %tuple.type.1a8); +// CHECK:STDOUT: fn @D.as.SelfNested.impl.F(%x.param: %tuple.type.aaa); // CHECK:STDOUT: -// CHECK:STDOUT: specific @UseSelf.WithSelf(constants.%Self.aea) { +// CHECK:STDOUT: specific @UseSelf.WithSelf(constants.%Self.bde) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.aea -// CHECK:STDOUT: %UseSelf.WithSelf.F.type => constants.%UseSelf.WithSelf.F.type.162 -// CHECK:STDOUT: %UseSelf.WithSelf.F => constants.%UseSelf.WithSelf.F.91b +// CHECK:STDOUT: %Self => constants.%Self.bde +// CHECK:STDOUT: %UseSelf.WithSelf.F.type => constants.%UseSelf.WithSelf.F.type.74d +// CHECK:STDOUT: %UseSelf.WithSelf.F => constants.%UseSelf.WithSelf.F.8c4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @UseSelf.WithSelf.F(constants.%Self.aea) { -// CHECK:STDOUT: %Self => constants.%Self.aea -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type.b41 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.949 -// CHECK:STDOUT: %.loc16_32.1 => constants.%.edf +// CHECK:STDOUT: specific @UseSelf.WithSelf.F(constants.%Self.bde) { +// CHECK:STDOUT: %Self => constants.%Self.bde +// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type.968 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.04e +// CHECK:STDOUT: %.loc16_32.1 => constants.%.326 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @UseSelf.WithSelf(constants.%UseSelf.facet.b77) { +// CHECK:STDOUT: specific @UseSelf.WithSelf(constants.%UseSelf.facet.14b) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%UseSelf.facet.b77 -// CHECK:STDOUT: %UseSelf.WithSelf.F.type => constants.%UseSelf.WithSelf.F.type.acc -// CHECK:STDOUT: %UseSelf.WithSelf.F => constants.%UseSelf.WithSelf.F.209 +// CHECK:STDOUT: %Self => constants.%UseSelf.facet.14b +// CHECK:STDOUT: %UseSelf.WithSelf.F.type => constants.%UseSelf.WithSelf.F.type.103 +// CHECK:STDOUT: %UseSelf.WithSelf.F => constants.%UseSelf.WithSelf.F.e1d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @UseSelf.WithSelf.F(constants.%UseSelf.facet.b77) { -// CHECK:STDOUT: %Self => constants.%UseSelf.facet.b77 +// CHECK:STDOUT: specific @UseSelf.WithSelf.F(constants.%UseSelf.facet.14b) { +// CHECK:STDOUT: %Self => constants.%UseSelf.facet.14b // CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%C -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d5 -// CHECK:STDOUT: %.loc16_32.1 => constants.%.8f0 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b +// CHECK:STDOUT: %.loc16_32.1 => constants.%.a44 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @UseSelf.WithSelf(constants.%UseSelf.facet.16a) { +// CHECK:STDOUT: specific @UseSelf.WithSelf(constants.%UseSelf.facet.64f) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%UseSelf.facet.16a -// CHECK:STDOUT: %UseSelf.WithSelf.F.type => constants.%UseSelf.WithSelf.F.type.f22 -// CHECK:STDOUT: %UseSelf.WithSelf.F => constants.%UseSelf.WithSelf.F.7e1 +// CHECK:STDOUT: %Self => constants.%UseSelf.facet.64f +// CHECK:STDOUT: %UseSelf.WithSelf.F.type => constants.%UseSelf.WithSelf.F.type.bbe +// CHECK:STDOUT: %UseSelf.WithSelf.F => constants.%UseSelf.WithSelf.F.8b5 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @UseSelf.WithSelf.F(constants.%UseSelf.facet.16a) { -// CHECK:STDOUT: %Self => constants.%UseSelf.facet.16a +// CHECK:STDOUT: specific @UseSelf.WithSelf.F(constants.%UseSelf.facet.64f) { +// CHECK:STDOUT: %Self => constants.%UseSelf.facet.64f // CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%D -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f1a -// CHECK:STDOUT: %.loc16_32.1 => constants.%.f19 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d8d +// CHECK:STDOUT: %.loc16_32.1 => constants.%.592 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%Self.d32) { +// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%Self.e81) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.d32 -// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.9b9 -// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.d66 +// CHECK:STDOUT: %Self => constants.%Self.e81 +// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.702 +// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.eec // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%Self.d32) { -// CHECK:STDOUT: %Self => constants.%Self.d32 -// CHECK:STDOUT: %Self.as_type.loc32_16.1 => constants.%Self.as_type.fd2 -// CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.99d -// CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.a76 -// CHECK:STDOUT: %tuple => constants.%tuple.f48 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.b72 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.21c +// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%Self.e81) { +// CHECK:STDOUT: %Self => constants.%Self.e81 +// CHECK:STDOUT: %Self.as_type.loc32_16.1 => constants.%Self.as_type.8ab +// CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.a16 +// CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.749 +// CHECK:STDOUT: %tuple => constants.%tuple.876 +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.d83 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6eb // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.593) { +// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.749) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%SelfNested.facet.593 -// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.c4b -// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.899 +// CHECK:STDOUT: %Self => constants.%SelfNested.facet.749 +// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.369 +// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.0c3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.593) { -// CHECK:STDOUT: %Self => constants.%SelfNested.facet.593 +// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.749) { +// CHECK:STDOUT: %Self => constants.%SelfNested.facet.749 // CHECK:STDOUT: %Self.as_type.loc32_16.1 => constants.%C -// CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.6be -// CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.f6d -// CHECK:STDOUT: %tuple => constants.%tuple.0dc -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.0ff -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.05a +// CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.6b6 +// CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.ee7 +// CHECK:STDOUT: %tuple => constants.%tuple.562 +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.746 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.79c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.93e) { +// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.d22) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%SelfNested.facet.93e -// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.4ca -// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.3a5 +// CHECK:STDOUT: %Self => constants.%SelfNested.facet.d22 +// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.f5f +// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.ece // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.93e) { -// CHECK:STDOUT: %Self => constants.%SelfNested.facet.93e +// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.d22) { +// CHECK:STDOUT: %Self => constants.%SelfNested.facet.d22 // CHECK:STDOUT: %Self.as_type.loc32_16.1 => constants.%D -// CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.c12 -// CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.e65 -// CHECK:STDOUT: %tuple => constants.%tuple.9ca -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.1a8 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3e5 +// CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.d57 +// CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.e52 +// CHECK:STDOUT: %tuple => constants.%tuple.c73 +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.aaa +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.338 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/todo_impl_with_unrelated_fn.carbon b/toolchain/check/testdata/impl/todo_impl_with_unrelated_fn.carbon index bfd9260e8446..2044f73fb878 100644 --- a/toolchain/check/testdata/impl/todo_impl_with_unrelated_fn.carbon +++ b/toolchain/check/testdata/impl/todo_impl_with_unrelated_fn.carbon @@ -30,8 +30,8 @@ class X { // CHECK:STDOUT: constants { // CHECK:STDOUT: %A.type: type = facet_type <@A> [concrete] // CHECK:STDOUT: %Self: %A.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %A.WithSelf.B.type.fb9: type = fn_type @A.WithSelf.B, @A.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %A.WithSelf.B.4f3: %A.WithSelf.B.type.fb9 = struct_value () [symbolic] +// CHECK:STDOUT: %A.WithSelf.B.type.ab5: type = fn_type @A.WithSelf.B, @A.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %A.WithSelf.B.a0b: %A.WithSelf.B.type.ab5 = struct_value () [symbolic] // CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A [concrete] // CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, @A.WithSelf.%A.WithSelf.B.decl [concrete] // CHECK:STDOUT: %X: type = class_type @X [concrete] @@ -41,8 +41,8 @@ class X { // CHECK:STDOUT: %X.as.A.impl.F.type: type = fn_type @X.as.A.impl.F [concrete] // CHECK:STDOUT: %X.as.A.impl.F: %X.as.A.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: %A.facet: %A.type = facet_value %X, (%A.impl_witness) [concrete] -// CHECK:STDOUT: %A.WithSelf.B.type.036: type = fn_type @A.WithSelf.B, @A.WithSelf(%A.facet) [concrete] -// CHECK:STDOUT: %A.WithSelf.B.c6d: %A.WithSelf.B.type.036 = struct_value () [concrete] +// CHECK:STDOUT: %A.WithSelf.B.type.d09: type = fn_type @A.WithSelf.B, @A.WithSelf(%A.facet) [concrete] +// CHECK:STDOUT: %A.WithSelf.B.e21: %A.WithSelf.B.type.d09 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -61,7 +61,7 @@ class X { // CHECK:STDOUT: %A.WithSelf.decl = interface_with_self_decl @A [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %A.WithSelf.B.decl: @A.WithSelf.%A.WithSelf.B.type (%A.WithSelf.B.type.fb9) = fn_decl @A.WithSelf.B [symbolic = @A.WithSelf.%A.WithSelf.B (constants.%A.WithSelf.B.4f3)] {} {} +// CHECK:STDOUT: %A.WithSelf.B.decl: @A.WithSelf.%A.WithSelf.B.type (%A.WithSelf.B.type.ab5) = fn_decl @A.WithSelf.B [symbolic = @A.WithSelf.%A.WithSelf.B (constants.%A.WithSelf.B.a0b)] {} {} // CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, %A.WithSelf.B.decl [concrete = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -115,8 +115,8 @@ class X { // CHECK:STDOUT: specific @A.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %A.WithSelf.B.type => constants.%A.WithSelf.B.type.fb9 -// CHECK:STDOUT: %A.WithSelf.B => constants.%A.WithSelf.B.4f3 +// CHECK:STDOUT: %A.WithSelf.B.type => constants.%A.WithSelf.B.type.ab5 +// CHECK:STDOUT: %A.WithSelf.B => constants.%A.WithSelf.B.a0b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf.B(constants.%Self) {} @@ -124,8 +124,8 @@ class X { // CHECK:STDOUT: specific @A.WithSelf(constants.%A.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%A.facet -// CHECK:STDOUT: %A.WithSelf.B.type => constants.%A.WithSelf.B.type.036 -// CHECK:STDOUT: %A.WithSelf.B => constants.%A.WithSelf.B.c6d +// CHECK:STDOUT: %A.WithSelf.B.type => constants.%A.WithSelf.B.type.d09 +// CHECK:STDOUT: %A.WithSelf.B => constants.%A.WithSelf.B.e21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf.B(constants.%A.facet) {} diff --git a/toolchain/check/testdata/impl/use_assoc_entity.carbon b/toolchain/check/testdata/impl/use_assoc_entity.carbon index b3cdacb4adf2..943f548cbe14 100644 --- a/toolchain/check/testdata/impl/use_assoc_entity.carbon +++ b/toolchain/check/testdata/impl/use_assoc_entity.carbon @@ -492,79 +492,79 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete] -// CHECK:STDOUT: %Self.fd8: %J.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.653: %J.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] -// CHECK:STDOUT: %Self.as_type.e52: type = facet_access_type %Self.fd8 [symbolic] -// CHECK:STDOUT: %pattern_type.9d0: type = pattern_type %Self.as_type.e52 [symbolic] -// CHECK:STDOUT: %J.lookup_impl_witness.89d: = lookup_impl_witness %Self.fd8, @J [symbolic] -// CHECK:STDOUT: %impl.elem0.fbe: type = impl_witness_access %J.lookup_impl_witness.89d, element0 [symbolic] -// CHECK:STDOUT: %pattern_type.d8a: type = pattern_type %impl.elem0.fbe [symbolic] -// CHECK:STDOUT: %.f0e: Core.Form = init_form %impl.elem0.fbe [symbolic] -// CHECK:STDOUT: %J.WithSelf.F.type.37c: type = fn_type @J.WithSelf.F, @J.WithSelf(%Self.fd8) [symbolic] +// CHECK:STDOUT: %Self.as_type.976: type = facet_access_type %Self.653 [symbolic] +// CHECK:STDOUT: %pattern_type.506: type = pattern_type %Self.as_type.976 [symbolic] +// CHECK:STDOUT: %J.lookup_impl_witness.e57: = lookup_impl_witness %Self.653, @J [symbolic] +// CHECK:STDOUT: %impl.elem0.c15: type = impl_witness_access %J.lookup_impl_witness.e57, element0 [symbolic] +// CHECK:STDOUT: %pattern_type.a39: type = pattern_type %impl.elem0.c15 [symbolic] +// CHECK:STDOUT: %.eb9: Core.Form = init_form %impl.elem0.c15 [symbolic] +// CHECK:STDOUT: %J.WithSelf.F.type.a0a: type = fn_type @J.WithSelf.F, @J.WithSelf(%Self.653) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %J.WithSelf.F.acf: %J.WithSelf.F.type.37c = struct_value () [symbolic] -// CHECK:STDOUT: %assoc1.24c: %J.assoc_type = assoc_entity element1, @J.WithSelf.%J.WithSelf.F.decl [concrete] -// CHECK:STDOUT: %.Self.944: %J.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %J.WithSelf.F.type.131: type = fn_type @J.WithSelf.F, @J.WithSelf(%.Self.944) [symbolic_self] -// CHECK:STDOUT: %J.WithSelf.F.51c: %J.WithSelf.F.type.131 = struct_value () [symbolic_self] +// CHECK:STDOUT: %J.WithSelf.F.f69: %J.WithSelf.F.type.a0a = struct_value () [symbolic] +// CHECK:STDOUT: %assoc1.413: %J.assoc_type = assoc_entity element1, @J.WithSelf.%J.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %.Self.d2f: %J.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %J.WithSelf.F.type.fe4: type = fn_type @J.WithSelf.F, @J.WithSelf(%.Self.d2f) [symbolic_self] +// CHECK:STDOUT: %J.WithSelf.F.839: %J.WithSelf.F.type.fe4 = struct_value () [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %J.impl_witness.133: = impl_witness @empty_tuple.type.as.J.impl.%J.impl_witness_table [concrete] +// CHECK:STDOUT: %J.impl_witness.a18: = impl_witness @empty_tuple.type.as.J.impl.%J.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %empty_tuple.type.as.J.impl.F.type: type = fn_type @empty_tuple.type.as.J.impl.F [concrete] // CHECK:STDOUT: %empty_tuple.type.as.J.impl.F: %empty_tuple.type.as.J.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.180: %J.type = facet_value %empty_tuple.type, (%J.impl_witness.133) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.type.096: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.180) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.cd8: %J.WithSelf.F.type.096 = struct_value () [concrete] +// CHECK:STDOUT: %J.facet.7f4: %J.type = facet_value %empty_tuple.type, (%J.impl_witness.a18) [concrete] +// CHECK:STDOUT: %J.WithSelf.F.type.23c: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.7f4) [concrete] +// CHECK:STDOUT: %J.WithSelf.F.bc0: %J.WithSelf.F.type.23c = struct_value () [concrete] // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] -// CHECK:STDOUT: %Int.as.Negate.impl.Op.type.8c1: type = fn_type @Int.as.Negate.impl.Op, @Int.as.Negate.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Negate.impl.Op.f1a: %Int.as.Negate.impl.Op.type.8c1 = struct_value () [symbolic] -// CHECK:STDOUT: %Negate.impl_witness.a16: = impl_witness imports.%Negate.impl_witness_table, @Int.as.Negate.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Negate.impl.Op.type.c30: type = fn_type @Int.as.Negate.impl.Op, @Int.as.Negate.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Negate.impl.Op.aa9: %Int.as.Negate.impl.Op.type.c30 = struct_value () [concrete] -// CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value %i32, (%Negate.impl_witness.a16) [concrete] -// CHECK:STDOUT: %Negate.WithSelf.Op.type.b32: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] -// CHECK:STDOUT: %.7fb: type = fn_type_with_self_type %Negate.WithSelf.Op.type.b32, %Negate.facet [concrete] -// CHECK:STDOUT: %Int.as.Negate.impl.Op.specific_fn: = specific_function %Int.as.Negate.impl.Op.aa9, @Int.as.Negate.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %.205: type = fn_type_with_self_type %J.WithSelf.F.type.096, %J.facet.180 [concrete] +// CHECK:STDOUT: %Int.as.Negate.impl.Op.type.454: type = fn_type @Int.as.Negate.impl.Op, @Int.as.Negate.impl(%N) [symbolic] +// CHECK:STDOUT: %Int.as.Negate.impl.Op.90a: %Int.as.Negate.impl.Op.type.454 = struct_value () [symbolic] +// CHECK:STDOUT: %Negate.impl_witness.3c4: = impl_witness imports.%Negate.impl_witness_table, @Int.as.Negate.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Negate.impl.Op.type.144: type = fn_type @Int.as.Negate.impl.Op, @Int.as.Negate.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Negate.impl.Op.246: %Int.as.Negate.impl.Op.type.144 = struct_value () [concrete] +// CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value %i32, (%Negate.impl_witness.3c4) [concrete] +// CHECK:STDOUT: %Negate.WithSelf.Op.type.0c8: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] +// CHECK:STDOUT: %.435: type = fn_type_with_self_type %Negate.WithSelf.Op.type.0c8, %Negate.facet [concrete] +// CHECK:STDOUT: %Int.as.Negate.impl.Op.specific_fn: = specific_function %Int.as.Negate.impl.Op.246, @Int.as.Negate.impl.Op(%int_32) [concrete] +// CHECK:STDOUT: %.571: type = fn_type_with_self_type %J.WithSelf.F.type.23c, %J.facet.7f4 [concrete] // CHECK:STDOUT: %int_40.f80: Core.IntLiteral = int_value 40 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_40.f80, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_40.f80, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_40.f80, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_40.c3d: %i32 = int_value 40 [concrete] +// CHECK:STDOUT: %int_40.e3d: %i32 = int_value 40 [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %J.impl_witness.62f: = impl_witness @C.as.J.impl.%J.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %J.impl_witness.aa2: = impl_witness @C.as.J.impl.%J.impl_witness_table [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] // CHECK:STDOUT: %C.as.J.impl.F.type: type = fn_type @C.as.J.impl.F [concrete] // CHECK:STDOUT: %C.as.J.impl.F: %C.as.J.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.bf8: %J.type = facet_value %C, (%J.impl_witness.62f) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.type.78a: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.bf8) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.a5c: %J.WithSelf.F.type.78a = struct_value () [concrete] +// CHECK:STDOUT: %J.facet.9f1: %J.type = facet_value %C, (%J.impl_witness.aa2) [concrete] +// CHECK:STDOUT: %J.WithSelf.F.type.4e8: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.9f1) [concrete] +// CHECK:STDOUT: %J.WithSelf.F.39b: %J.WithSelf.F.type.4e8 = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.d77 = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.b1a: @Int.as.Negate.impl.%Int.as.Negate.impl.Op.type (%Int.as.Negate.impl.Op.type.8c1) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Negate.impl.%Int.as.Negate.impl.Op (constants.%Int.as.Negate.impl.Op.f1a)] -// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.d77, %Core.import_ref.b1a), @Int.as.Negate.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.b4f = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.c60: @Int.as.Negate.impl.%Int.as.Negate.impl.Op.type (%Int.as.Negate.impl.Op.type.454) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Negate.impl.%Int.as.Negate.impl.Op (constants.%Int.as.Negate.impl.Op.90a)] +// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.b4f, %Core.import_ref.c60), @Int.as.Negate.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @J { @@ -572,34 +572,34 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: -// CHECK:STDOUT: %J.WithSelf.F.decl: @J.WithSelf.%J.WithSelf.F.type (%J.WithSelf.F.type.37c) = fn_decl @J.WithSelf.F [symbolic = @J.WithSelf.%J.WithSelf.F (constants.%J.WithSelf.F.acf)] { -// CHECK:STDOUT: %self.param_patt: @J.WithSelf.F.%pattern_type.loc6_12 (%pattern_type.9d0) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @J.WithSelf.F.%pattern_type.loc6_12 (%pattern_type.9d0) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %u.param_patt: @J.WithSelf.F.%pattern_type.loc6_21 (%pattern_type.d8a) = value_param_pattern [concrete] -// CHECK:STDOUT: %u.patt: @J.WithSelf.F.%pattern_type.loc6_21 (%pattern_type.d8a) = at_binding_pattern u, %u.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @J.WithSelf.F.%pattern_type.loc6_21 (%pattern_type.d8a) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @J.WithSelf.F.%pattern_type.loc6_21 (%pattern_type.d8a) = return_slot_pattern %return.param_patt, %U.ref.loc6_29 [concrete] +// CHECK:STDOUT: %J.WithSelf.F.decl: @J.WithSelf.%J.WithSelf.F.type (%J.WithSelf.F.type.a0a) = fn_decl @J.WithSelf.F [symbolic = @J.WithSelf.%J.WithSelf.F (constants.%J.WithSelf.F.f69)] { +// CHECK:STDOUT: %self.param_patt: @J.WithSelf.F.%pattern_type.loc6_12 (%pattern_type.506) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @J.WithSelf.F.%pattern_type.loc6_12 (%pattern_type.506) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %u.param_patt: @J.WithSelf.F.%pattern_type.loc6_21 (%pattern_type.a39) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @J.WithSelf.F.%pattern_type.loc6_21 (%pattern_type.a39) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @J.WithSelf.F.%pattern_type.loc6_21 (%pattern_type.a39) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @J.WithSelf.F.%pattern_type.loc6_21 (%pattern_type.a39) = return_slot_pattern %return.param_patt, %U.ref.loc6_29 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %impl.elem0.loc6_29: type = impl_witness_access constants.%J.lookup_impl_witness.89d, element0 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.fbe)] -// CHECK:STDOUT: %U.ref.loc6_29: type = name_ref U, %impl.elem0.loc6_29 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.fbe)] -// CHECK:STDOUT: %.loc6_29.2: Core.Form = init_form %U.ref.loc6_29 [symbolic = %.loc6_29.1 (constants.%.f0e)] -// CHECK:STDOUT: %self.param: @J.WithSelf.F.%Self.as_type.loc6_14.1 (%Self.as_type.e52) = value_param call_param0 -// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.2 [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.e52)] { -// CHECK:STDOUT: %Self.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self.fd8)] -// CHECK:STDOUT: %Self.as_type.loc6_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.e52)] -// CHECK:STDOUT: %.loc6_14.2: type = converted %Self.ref, %Self.as_type.loc6_14.2 [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.e52)] +// CHECK:STDOUT: %impl.elem0.loc6_29: type = impl_witness_access constants.%J.lookup_impl_witness.e57, element0 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.c15)] +// CHECK:STDOUT: %U.ref.loc6_29: type = name_ref U, %impl.elem0.loc6_29 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.c15)] +// CHECK:STDOUT: %.loc6_29.2: Core.Form = init_form %U.ref.loc6_29 [symbolic = %.loc6_29.1 (constants.%.eb9)] +// CHECK:STDOUT: %self.param: @J.WithSelf.F.%Self.as_type.loc6_14.1 (%Self.as_type.976) = value_param call_param0 +// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.2 [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.976)] { +// CHECK:STDOUT: %Self.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self.653)] +// CHECK:STDOUT: %Self.as_type.loc6_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.976)] +// CHECK:STDOUT: %.loc6_14.2: type = converted %Self.ref, %Self.as_type.loc6_14.2 [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.976)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @J.WithSelf.F.%Self.as_type.loc6_14.1 (%Self.as_type.e52) = value_binding self, %self.param -// CHECK:STDOUT: %u.param: @J.WithSelf.F.%impl.elem0.loc6_23.1 (%impl.elem0.fbe) = value_param call_param1 -// CHECK:STDOUT: %.loc6_23: type = splice_block %U.ref.loc6_23 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.fbe)] { -// CHECK:STDOUT: %impl.elem0.loc6_23.2: type = impl_witness_access constants.%J.lookup_impl_witness.89d, element0 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.fbe)] -// CHECK:STDOUT: %U.ref.loc6_23: type = name_ref U, %impl.elem0.loc6_23.2 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.fbe)] +// CHECK:STDOUT: %self: @J.WithSelf.F.%Self.as_type.loc6_14.1 (%Self.as_type.976) = value_binding self, %self.param +// CHECK:STDOUT: %u.param: @J.WithSelf.F.%impl.elem0.loc6_23.1 (%impl.elem0.c15) = value_param call_param1 +// CHECK:STDOUT: %.loc6_23: type = splice_block %U.ref.loc6_23 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.c15)] { +// CHECK:STDOUT: %impl.elem0.loc6_23.2: type = impl_witness_access constants.%J.lookup_impl_witness.e57, element0 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.c15)] +// CHECK:STDOUT: %U.ref.loc6_23: type = name_ref U, %impl.elem0.loc6_23.2 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.c15)] // CHECK:STDOUT: } -// CHECK:STDOUT: %u: @J.WithSelf.F.%impl.elem0.loc6_23.1 (%impl.elem0.fbe) = value_binding u, %u.param -// CHECK:STDOUT: %return.param: ref @J.WithSelf.F.%impl.elem0.loc6_23.1 (%impl.elem0.fbe) = out_param call_param2 -// CHECK:STDOUT: %return: ref @J.WithSelf.F.%impl.elem0.loc6_23.1 (%impl.elem0.fbe) = return_slot %return.param +// CHECK:STDOUT: %u: @J.WithSelf.F.%impl.elem0.loc6_23.1 (%impl.elem0.c15) = value_binding u, %u.param +// CHECK:STDOUT: %return.param: ref @J.WithSelf.F.%impl.elem0.loc6_23.1 (%impl.elem0.c15) = out_param call_param2 +// CHECK:STDOUT: %return: ref @J.WithSelf.F.%impl.elem0.loc6_23.1 (%impl.elem0.c15) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc1: %J.assoc_type = assoc_entity element1, %J.WithSelf.F.decl [concrete = constants.%assoc1.24c] +// CHECK:STDOUT: %assoc1: %J.assoc_type = assoc_entity element1, %J.WithSelf.F.decl [concrete = constants.%assoc1.413] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -615,13 +615,13 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type.as.J.impl.F.decl: %empty_tuple.type.as.J.impl.F.type = fn_decl @empty_tuple.type.as.J.impl.F [concrete = constants.%empty_tuple.type.as.J.impl.F] { // CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %u.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %u.patt: %pattern_type.104 = at_binding_pattern u, %u.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc12_38 [concrete] +// CHECK:STDOUT: %u.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: %pattern_type.6b6 = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc12_38 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc12_38: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc12: Core.Form = init_form %i32.loc12_38 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc12: Core.Form = init_form %i32.loc12_38 [concrete = constants.%.795] // CHECK:STDOUT: %self.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @empty_tuple.type.as.J.impl.%.loc10_7.2 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %self: %empty_tuple.type = value_binding self, %self.param @@ -641,15 +641,15 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.J.impl: %C.ref.loc27_6 as %.loc27_13 { // CHECK:STDOUT: %C.as.J.impl.F.decl: %C.as.J.impl.F.type = fn_decl @C.as.J.impl.F [concrete = constants.%C.as.J.impl.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.0d5 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %u.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %u.patt: %pattern_type.0d5 = at_binding_pattern u, %u.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref.loc29_36 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %u.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: %pattern_type.98b = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc29_36 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc29_36: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc29_36: Core.Form = init_form %C.ref.loc29_36 [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc29_36: Core.Form = init_form %C.ref.loc29_36 [concrete = constants.%.a44] // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.J.impl.%C.ref.loc27_6 [concrete = constants.%C] // CHECK:STDOUT: %self: %C = value_binding self, %self.param @@ -669,21 +669,21 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J.WithSelf.F(@J.%Self: %J.type) { -// CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.fd8)] -// CHECK:STDOUT: %Self.as_type.loc6_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.e52)] -// CHECK:STDOUT: %pattern_type.loc6_12: type = pattern_type %Self.as_type.loc6_14.1 [symbolic = %pattern_type.loc6_12 (constants.%pattern_type.9d0)] -// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.89d)] -// CHECK:STDOUT: %impl.elem0.loc6_23.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.fbe)] -// CHECK:STDOUT: %pattern_type.loc6_21: type = pattern_type %impl.elem0.loc6_23.1 [symbolic = %pattern_type.loc6_21 (constants.%pattern_type.d8a)] -// CHECK:STDOUT: %.loc6_29.1: Core.Form = init_form %impl.elem0.loc6_23.1 [symbolic = %.loc6_29.1 (constants.%.f0e)] +// CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.653)] +// CHECK:STDOUT: %Self.as_type.loc6_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.976)] +// CHECK:STDOUT: %pattern_type.loc6_12: type = pattern_type %Self.as_type.loc6_14.1 [symbolic = %pattern_type.loc6_12 (constants.%pattern_type.506)] +// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.e57)] +// CHECK:STDOUT: %impl.elem0.loc6_23.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.c15)] +// CHECK:STDOUT: %pattern_type.loc6_21: type = pattern_type %impl.elem0.loc6_23.1 [symbolic = %pattern_type.loc6_21 (constants.%pattern_type.a39)] +// CHECK:STDOUT: %.loc6_29.1: Core.Form = init_form %impl.elem0.loc6_23.1 [symbolic = %.loc6_29.1 (constants.%.eb9)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @J.WithSelf.F.%Self.as_type.loc6_14.1 (%Self.as_type.e52), %u.param: @J.WithSelf.F.%impl.elem0.loc6_23.1 (%impl.elem0.fbe)) -> out %return.param: @J.WithSelf.F.%impl.elem0.loc6_23.1 (%impl.elem0.fbe); +// CHECK:STDOUT: fn(%self.param: @J.WithSelf.F.%Self.as_type.loc6_14.1 (%Self.as_type.976), %u.param: @J.WithSelf.F.%impl.elem0.loc6_23.1 (%impl.elem0.c15)) -> out %return.param: @J.WithSelf.F.%impl.elem0.loc6_23.1 (%impl.elem0.c15); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @empty_tuple.type.as.J.impl.F(%self.param: %empty_tuple.type, %u.param: %i32) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %u.ref: %i32 = name_ref u, %u -// CHECK:STDOUT: %impl.elem1: %.7fb = impl_witness_access constants.%Negate.impl_witness.a16, element1 [concrete = constants.%Int.as.Negate.impl.Op.aa9] +// CHECK:STDOUT: %impl.elem1: %.435 = impl_witness_access constants.%Negate.impl_witness.3c4, element1 [concrete = constants.%Int.as.Negate.impl.Op.246] // CHECK:STDOUT: %bound_method.loc12_51.1: = bound_method %u.ref, %impl.elem1 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem1, @Int.as.Negate.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Negate.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc12_51.2: = bound_method %u.ref, %specific_fn @@ -695,17 +695,17 @@ fn F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: %empty_tuple.type = name_ref x, %x // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %F.ref: %J.assoc_type = name_ref F, @J.WithSelf.%assoc1 [concrete = constants.%assoc1.24c] -// CHECK:STDOUT: %impl.elem1: %.205 = impl_witness_access constants.%J.impl_witness.133, element1 [concrete = constants.%empty_tuple.type.as.J.impl.F] +// CHECK:STDOUT: %F.ref: %J.assoc_type = name_ref F, @J.WithSelf.%assoc1 [concrete = constants.%assoc1.413] +// CHECK:STDOUT: %impl.elem1: %.571 = impl_witness_access constants.%J.impl_witness.a18, element1 [concrete = constants.%empty_tuple.type.as.J.impl.F] // CHECK:STDOUT: %bound_method.loc18_11: = bound_method %x.ref, %impl.elem1 // CHECK:STDOUT: %int_40: Core.IntLiteral = int_value 40 [concrete = constants.%int_40.f80] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc18_18.1: = bound_method %int_40, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_18.2: = bound_method %int_40, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc18_18.2(%int_40) [concrete = constants.%int_40.c3d] -// CHECK:STDOUT: %.loc18_18.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_40.c3d] -// CHECK:STDOUT: %.loc18_18.2: %i32 = converted %int_40, %.loc18_18.1 [concrete = constants.%int_40.c3d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc18_18.2(%int_40) [concrete = constants.%int_40.e3d] +// CHECK:STDOUT: %.loc18_18.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_40.e3d] +// CHECK:STDOUT: %.loc18_18.2: %i32 = converted %int_40, %.loc18_18.1 [concrete = constants.%int_40.e3d] // CHECK:STDOUT: %empty_tuple.type.as.J.impl.F.call: init %i32 = call %bound_method.loc18_11(%x.ref, %.loc18_18.2) // CHECK:STDOUT: return %empty_tuple.type.as.J.impl.F.call // CHECK:STDOUT: } @@ -720,62 +720,62 @@ fn F() { // CHECK:STDOUT: return %.loc29_51.4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%Self.fd8) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%Self.653) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.fd8 -// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.37c -// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.acf +// CHECK:STDOUT: %Self => constants.%Self.653 +// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.a0a +// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.f69 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.F(constants.%Self.fd8) { -// CHECK:STDOUT: %Self => constants.%Self.fd8 -// CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%Self.as_type.e52 -// CHECK:STDOUT: %pattern_type.loc6_12 => constants.%pattern_type.9d0 -// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.89d -// CHECK:STDOUT: %impl.elem0.loc6_23.1 => constants.%impl.elem0.fbe -// CHECK:STDOUT: %pattern_type.loc6_21 => constants.%pattern_type.d8a -// CHECK:STDOUT: %.loc6_29.1 => constants.%.f0e +// CHECK:STDOUT: specific @J.WithSelf.F(constants.%Self.653) { +// CHECK:STDOUT: %Self => constants.%Self.653 +// CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%Self.as_type.976 +// CHECK:STDOUT: %pattern_type.loc6_12 => constants.%pattern_type.506 +// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.e57 +// CHECK:STDOUT: %impl.elem0.loc6_23.1 => constants.%impl.elem0.c15 +// CHECK:STDOUT: %pattern_type.loc6_21 => constants.%pattern_type.a39 +// CHECK:STDOUT: %.loc6_29.1 => constants.%.eb9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%.Self.944) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%.Self.d2f) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%.Self.944 -// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.131 -// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.51c +// CHECK:STDOUT: %Self => constants.%.Self.d2f +// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.fe4 +// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.839 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.180) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.7f4) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%J.facet.180 -// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.096 -// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.cd8 +// CHECK:STDOUT: %Self => constants.%J.facet.7f4 +// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.23c +// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.bc0 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.180) { -// CHECK:STDOUT: %Self => constants.%J.facet.180 +// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.7f4) { +// CHECK:STDOUT: %Self => constants.%J.facet.7f4 // CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type.loc6_12 => constants.%pattern_type.cb1 -// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.133 +// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.a18 // CHECK:STDOUT: %impl.elem0.loc6_23.1 => constants.%i32 -// CHECK:STDOUT: %pattern_type.loc6_21 => constants.%pattern_type.104 -// CHECK:STDOUT: %.loc6_29.1 => constants.%.7ea +// CHECK:STDOUT: %pattern_type.loc6_21 => constants.%pattern_type.6b6 +// CHECK:STDOUT: %.loc6_29.1 => constants.%.795 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.bf8) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.9f1) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%J.facet.bf8 -// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.78a -// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.a5c +// CHECK:STDOUT: %Self => constants.%J.facet.9f1 +// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.4e8 +// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.39b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.bf8) { -// CHECK:STDOUT: %Self => constants.%J.facet.bf8 +// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.9f1) { +// CHECK:STDOUT: %Self => constants.%J.facet.9f1 // CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%C -// CHECK:STDOUT: %pattern_type.loc6_12 => constants.%pattern_type.0d5 -// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.62f +// CHECK:STDOUT: %pattern_type.loc6_12 => constants.%pattern_type.98b +// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.aa2 // CHECK:STDOUT: %impl.elem0.loc6_23.1 => constants.%C -// CHECK:STDOUT: %pattern_type.loc6_21 => constants.%pattern_type.0d5 -// CHECK:STDOUT: %.loc6_29.1 => constants.%.8f0 +// CHECK:STDOUT: %pattern_type.loc6_21 => constants.%pattern_type.98b +// CHECK:STDOUT: %.loc6_29.1 => constants.%.a44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- extend_impl_with_associated_type_in_signature.carbon @@ -783,157 +783,157 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] -// CHECK:STDOUT: %assoc1.24c: %J.assoc_type = assoc_entity element1, @J.WithSelf.%J.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %assoc1.413: %J.assoc_type = assoc_entity element1, @J.WithSelf.%J.WithSelf.F.decl [concrete] // CHECK:STDOUT: %assoc2: %J.assoc_type = assoc_entity element2, @J.WithSelf.%J.WithSelf.G.decl [concrete] // CHECK:STDOUT: %E: type = class_type @E [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %J.impl_witness: = impl_witness @E.as.J.impl.%J.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %E.as.J.impl.F.type: type = fn_type @E.as.J.impl.F [concrete] // CHECK:STDOUT: %E.as.J.impl.F: %E.as.J.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: %E.as.J.impl.G.type: type = fn_type @E.as.J.impl.G [concrete] // CHECK:STDOUT: %E.as.J.impl.G: %E.as.J.impl.G.type = struct_value () [concrete] // CHECK:STDOUT: %J.facet: %J.type = facet_value %E, (%J.impl_witness) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.type.399: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet) [concrete] -// CHECK:STDOUT: %J.WithSelf.G.type.73c: type = fn_type @J.WithSelf.G, @J.WithSelf(%J.facet) [concrete] -// CHECK:STDOUT: %.e20: type = fn_type_with_self_type %J.WithSelf.F.type.399, %J.facet [concrete] +// CHECK:STDOUT: %J.WithSelf.F.type.78d: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet) [concrete] +// CHECK:STDOUT: %J.WithSelf.G.type.622: type = fn_type @J.WithSelf.G, @J.WithSelf(%J.facet) [concrete] +// CHECK:STDOUT: %.f23: type = fn_type_with_self_type %J.WithSelf.F.type.78d, %J.facet [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %.4b1: type = fn_type_with_self_type %J.WithSelf.G.type.73c, %J.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %.008: type = fn_type_with_self_type %J.WithSelf.G.type.622, %J.facet [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = 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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.9f5: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_4.a4d: %i32 = 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] +// CHECK:STDOUT: %int_4.4eb: %i32 = int_value 4 [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e3e: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_5.354: %i32 = 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] +// CHECK:STDOUT: %int_5.eef: %i32 = int_value 5 [concrete] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.6e4: = bound_method %int_6.462, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.50f: = bound_method %int_6.462, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_6.77d: %i32 = 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] +// CHECK:STDOUT: %int_6.439: %i32 = int_value 6 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CallBoth(%e.param: %E) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %e1.patt: %pattern_type.104 = value_binding_pattern e1 [concrete] +// CHECK:STDOUT: %e1.patt: %pattern_type.6b6 = value_binding_pattern e1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %e.ref.loc22: %E = name_ref e, %e -// CHECK:STDOUT: %F.ref.loc22: %J.assoc_type = name_ref F, @J.WithSelf.%assoc1 [concrete = constants.%assoc1.24c] -// CHECK:STDOUT: %impl.elem1.loc22: %.e20 = impl_witness_access constants.%J.impl_witness, element1 [concrete = constants.%E.as.J.impl.F] +// CHECK:STDOUT: %F.ref.loc22: %J.assoc_type = name_ref F, @J.WithSelf.%assoc1 [concrete = constants.%assoc1.413] +// CHECK:STDOUT: %impl.elem1.loc22: %.f23 = impl_witness_access constants.%J.impl_witness, element1 [concrete = constants.%E.as.J.impl.F] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc22: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc22_28.1: = bound_method %int_2, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %impl.elem0.loc22: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc22_28.1: = bound_method %int_2, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem0.loc22, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc22_28.2: = bound_method %int_2, %specific_fn.loc22 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %i32 = call %bound_method.loc22_28.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc22_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc22_28.2: %i32 = converted %int_2, %.loc22_28.1 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc22_28.2: = bound_method %int_2, %specific_fn.loc22 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %i32 = call %bound_method.loc22_28.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc22_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc22_28.2: %i32 = converted %int_2, %.loc22_28.1 [concrete = constants.%int_2.295] // CHECK:STDOUT: %E.as.J.impl.F.call.loc22: init %i32 = call %impl.elem1.loc22(%.loc22_28.2) // CHECK:STDOUT: %i32.loc22: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc22_29.1: %i32 = value_of_initializer %E.as.J.impl.F.call.loc22 // CHECK:STDOUT: %.loc22_29.2: %i32 = converted %E.as.J.impl.F.call.loc22, %.loc22_29.1 // CHECK:STDOUT: %e1: %i32 = value_binding e1, %.loc22_29.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %e2.patt: %pattern_type.104 = value_binding_pattern e2 [concrete] +// CHECK:STDOUT: %e2.patt: %pattern_type.6b6 = value_binding_pattern e2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %e.ref.loc23: %E = name_ref e, %e // CHECK:STDOUT: %G.ref.loc23: %J.assoc_type = name_ref G, @J.WithSelf.%assoc2 [concrete = constants.%assoc2] -// CHECK:STDOUT: %impl.elem2.loc23: %.4b1 = impl_witness_access constants.%J.impl_witness, element2 [concrete = constants.%E.as.J.impl.G] +// CHECK:STDOUT: %impl.elem2.loc23: %.008 = impl_witness_access constants.%J.impl_witness, element2 [concrete = constants.%E.as.J.impl.G] // CHECK:STDOUT: %bound_method.loc23_25: = bound_method %e.ref.loc23, %impl.elem2.loc23 // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc23: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc23_28.1: = bound_method %int_3, %impl.elem0.loc23 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %impl.elem0.loc23: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc23_28.1: = bound_method %int_3, %impl.elem0.loc23 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc23_28.2: = bound_method %int_3, %specific_fn.loc23 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23: init %i32 = call %bound_method.loc23_28.2(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc23_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc23_28.2: %i32 = converted %int_3, %.loc23_28.1 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc23_28.2: = bound_method %int_3, %specific_fn.loc23 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23: init %i32 = call %bound_method.loc23_28.2(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc23_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc23_28.2: %i32 = converted %int_3, %.loc23_28.1 [concrete = constants.%int_3.410] // CHECK:STDOUT: %E.as.J.impl.G.call.loc23: init %i32 = call %bound_method.loc23_25(%e.ref.loc23, %.loc23_28.2) // CHECK:STDOUT: %i32.loc23: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc23_29.1: %i32 = value_of_initializer %E.as.J.impl.G.call.loc23 // CHECK:STDOUT: %.loc23_29.2: %i32 = converted %E.as.J.impl.G.call.loc23, %.loc23_29.1 // CHECK:STDOUT: %e2: %i32 = value_binding e2, %.loc23_29.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %e3.patt: %pattern_type.104 = value_binding_pattern e3 [concrete] +// CHECK:STDOUT: %e3.patt: %pattern_type.6b6 = value_binding_pattern e3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %E.ref.loc24: type = name_ref E, file.%E.decl [concrete = constants.%E] -// CHECK:STDOUT: %F.ref.loc24: %J.assoc_type = name_ref F, @J.WithSelf.%assoc1 [concrete = constants.%assoc1.24c] -// CHECK:STDOUT: %impl.elem1.loc24: %.e20 = impl_witness_access constants.%J.impl_witness, element1 [concrete = constants.%E.as.J.impl.F] +// CHECK:STDOUT: %F.ref.loc24: %J.assoc_type = name_ref F, @J.WithSelf.%assoc1 [concrete = constants.%assoc1.413] +// CHECK:STDOUT: %impl.elem1.loc24: %.f23 = impl_witness_access constants.%J.impl_witness, element1 [concrete = constants.%E.as.J.impl.F] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc24: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc24_28.1: = bound_method %int_4, %impl.elem0.loc24 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe] +// CHECK:STDOUT: %impl.elem0.loc24: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc24_28.1: = bound_method %int_4, %impl.elem0.loc24 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad] // CHECK:STDOUT: %specific_fn.loc24: = specific_function %impl.elem0.loc24, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc24_28.2: = bound_method %int_4, %specific_fn.loc24 [concrete = constants.%bound_method.9f5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc24: init %i32 = call %bound_method.loc24_28.2(%int_4) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc24_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc24 [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc24_28.2: %i32 = converted %int_4, %.loc24_28.1 [concrete = constants.%int_4.a4d] +// CHECK:STDOUT: %bound_method.loc24_28.2: = bound_method %int_4, %specific_fn.loc24 [concrete = constants.%bound_method.b7a] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc24: init %i32 = call %bound_method.loc24_28.2(%int_4) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc24_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc24 [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc24_28.2: %i32 = converted %int_4, %.loc24_28.1 [concrete = constants.%int_4.4eb] // CHECK:STDOUT: %E.as.J.impl.F.call.loc24: init %i32 = call %impl.elem1.loc24(%.loc24_28.2) // CHECK:STDOUT: %i32.loc24: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc24_29.1: %i32 = value_of_initializer %E.as.J.impl.F.call.loc24 // CHECK:STDOUT: %.loc24_29.2: %i32 = converted %E.as.J.impl.F.call.loc24, %.loc24_29.1 // CHECK:STDOUT: %e3: %i32 = value_binding e3, %.loc24_29.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %e4.patt: %pattern_type.104 = value_binding_pattern e4 [concrete] +// CHECK:STDOUT: %e4.patt: %pattern_type.6b6 = value_binding_pattern e4 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %e.ref.loc25: %E = name_ref e, %e // CHECK:STDOUT: %E.ref.loc25: type = name_ref E, file.%E.decl [concrete = constants.%E] // CHECK:STDOUT: %G.ref.loc25: %J.assoc_type = name_ref G, @J.WithSelf.%assoc2 [concrete = constants.%assoc2] -// CHECK:STDOUT: %impl.elem2.loc25: %.4b1 = impl_witness_access constants.%J.impl_witness, element2 [concrete = constants.%E.as.J.impl.G] +// CHECK:STDOUT: %impl.elem2.loc25: %.008 = impl_witness_access constants.%J.impl_witness, element2 [concrete = constants.%E.as.J.impl.G] // CHECK:STDOUT: %bound_method.loc25_25: = bound_method %e.ref.loc25, %impl.elem2.loc25 // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0.loc25: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc25_32.1: = bound_method %int_5, %impl.elem0.loc25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c] +// CHECK:STDOUT: %impl.elem0.loc25: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc25_32.1: = bound_method %int_5, %impl.elem0.loc25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f6c] // CHECK:STDOUT: %specific_fn.loc25: = specific_function %impl.elem0.loc25, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc25_32.2: = bound_method %int_5, %specific_fn.loc25 [concrete = constants.%bound_method.e3e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25: init %i32 = call %bound_method.loc25_32.2(%int_5) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc25_32.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc25_32.2: %i32 = converted %int_5, %.loc25_32.1 [concrete = constants.%int_5.354] +// CHECK:STDOUT: %bound_method.loc25_32.2: = bound_method %int_5, %specific_fn.loc25 [concrete = constants.%bound_method.c9d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25: init %i32 = call %bound_method.loc25_32.2(%int_5) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc25_32.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc25_32.2: %i32 = converted %int_5, %.loc25_32.1 [concrete = constants.%int_5.eef] // CHECK:STDOUT: %E.as.J.impl.G.call.loc25: init %i32 = call %bound_method.loc25_25(%e.ref.loc25, %.loc25_32.2) // CHECK:STDOUT: %i32.loc25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc25_33.1: %i32 = value_of_initializer %E.as.J.impl.G.call.loc25 // CHECK:STDOUT: %.loc25_33.2: %i32 = converted %E.as.J.impl.G.call.loc25, %.loc25_33.1 // CHECK:STDOUT: %e4: %i32 = value_binding e4, %.loc25_33.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %e5.patt: %pattern_type.104 = value_binding_pattern e5 [concrete] +// CHECK:STDOUT: %e5.patt: %pattern_type.6b6 = value_binding_pattern e5 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %e.ref.loc26: %E = name_ref e, %e // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %G.ref.loc26: %J.assoc_type = name_ref G, @J.WithSelf.%assoc2 [concrete = constants.%assoc2] -// CHECK:STDOUT: %impl.elem2.loc26: %.4b1 = impl_witness_access constants.%J.impl_witness, element2 [concrete = constants.%E.as.J.impl.G] +// CHECK:STDOUT: %impl.elem2.loc26: %.008 = impl_witness_access constants.%J.impl_witness, element2 [concrete = constants.%E.as.J.impl.G] // CHECK:STDOUT: %bound_method.loc26_25: = bound_method %e.ref.loc26, %impl.elem2.loc26 // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [concrete = constants.%int_6.462] -// CHECK:STDOUT: %impl.elem0.loc26: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc26_32.1: = bound_method %int_6, %impl.elem0.loc26 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.6e4] +// CHECK:STDOUT: %impl.elem0.loc26: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc26_32.1: = bound_method %int_6, %impl.elem0.loc26 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.13d] // CHECK:STDOUT: %specific_fn.loc26: = specific_function %impl.elem0.loc26, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_32.2: = bound_method %int_6, %specific_fn.loc26 [concrete = constants.%bound_method.50f] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26: init %i32 = call %bound_method.loc26_32.2(%int_6) [concrete = constants.%int_6.77d] -// CHECK:STDOUT: %.loc26_32.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26 [concrete = constants.%int_6.77d] -// CHECK:STDOUT: %.loc26_32.2: %i32 = converted %int_6, %.loc26_32.1 [concrete = constants.%int_6.77d] +// CHECK:STDOUT: %bound_method.loc26_32.2: = bound_method %int_6, %specific_fn.loc26 [concrete = constants.%bound_method.be9] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26: init %i32 = call %bound_method.loc26_32.2(%int_6) [concrete = constants.%int_6.439] +// CHECK:STDOUT: %.loc26_32.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26 [concrete = constants.%int_6.439] +// CHECK:STDOUT: %.loc26_32.2: %i32 = converted %int_6, %.loc26_32.1 [concrete = constants.%int_6.439] // CHECK:STDOUT: %E.as.J.impl.G.call.loc26: init %i32 = call %bound_method.loc26_25(%e.ref.loc26, %.loc26_32.2) // CHECK:STDOUT: %i32.loc26: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc26_33.1: %i32 = value_of_initializer %E.as.J.impl.G.call.loc26 @@ -981,39 +981,39 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %J.impl_witness: = impl_witness @E.as.J.impl.%J.impl_witness_table [concrete] // CHECK:STDOUT: %J.facet: %J.type = facet_value %E, (%J.impl_witness) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %E.as.J.impl.F.type: type = fn_type @E.as.J.impl.F [concrete] // CHECK:STDOUT: %E.as.J.impl.F: %E.as.J.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @E.as.J.impl: %Self.ref as %.loc9_20 { // CHECK:STDOUT: %E.as.J.impl.F.decl: %E.as.J.impl.F.type = fn_decl @E.as.J.impl.F [concrete = constants.%E.as.J.impl.F] { -// CHECK:STDOUT: %u.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %u.patt: %pattern_type.104 = at_binding_pattern u, %u.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %U.ref.loc11_19 [concrete] +// CHECK:STDOUT: %u.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: %pattern_type.6b6 = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %U.ref.loc11_19 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %J.facet.loc11_19: %J.type = facet_value @E.as.J.impl.%Self.ref, (constants.%J.impl_witness) [concrete = constants.%J.facet] // CHECK:STDOUT: %.loc11_19.1: %J.type = converted @E.as.J.impl.%Self.ref, %J.facet.loc11_19 [concrete = constants.%J.facet] // CHECK:STDOUT: %impl.elem0.loc11_19: type = impl_witness_access constants.%J.impl_witness, element0 [concrete = constants.%i32] // CHECK:STDOUT: %U.ref.loc11_19: type = name_ref U, %impl.elem0.loc11_19 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc11_19.2: Core.Form = init_form %U.ref.loc11_19 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc11_19.2: Core.Form = init_form %U.ref.loc11_19 [concrete = constants.%.795] // CHECK:STDOUT: %u.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.loc11_13.1: type = splice_block %U.ref.loc11_13 [concrete = constants.%i32] { // CHECK:STDOUT: %J.facet.loc11_13: %J.type = facet_value @E.as.J.impl.%Self.ref, (constants.%J.impl_witness) [concrete = constants.%J.facet] @@ -1047,7 +1047,7 @@ fn F() { // CHECK:STDOUT: fn @E.as.J.impl.F(%u.param: %i32) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %u.ref: %i32 = name_ref u, %u -// CHECK:STDOUT: %impl.elem0.loc12: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc12: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc12_14.1: = bound_method %u.ref, %impl.elem0.loc12 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc12, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc12_14.2: = bound_method %u.ref, %specific_fn @@ -1065,8 +1065,8 @@ fn F() { // CHECK:STDOUT: %E.as.J.impl.F.type: type = fn_type @E.as.J.impl.F [concrete] // CHECK:STDOUT: %E.as.J.impl.F: %E.as.J.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: %J.facet: %J.type = facet_value %E, (%J.impl_witness) [concrete] -// CHECK:STDOUT: %J.WithSelf.F.type.903: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet) [concrete] -// CHECK:STDOUT: %.451: type = fn_type_with_self_type %J.WithSelf.F.type.903, %J.facet [concrete] +// CHECK:STDOUT: %J.WithSelf.F.type.ee0: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet) [concrete] +// CHECK:STDOUT: %.b5e: type = fn_type_with_self_type %J.WithSelf.F.type.ee0, %J.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @E { @@ -1085,8 +1085,8 @@ fn F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %J.facet: %J.type = facet_value constants.%E, (constants.%J.impl_witness) [concrete = constants.%J.facet] // CHECK:STDOUT: %.loc14: %J.type = converted constants.%E, %J.facet [concrete = constants.%J.facet] -// CHECK:STDOUT: %impl.elem0: %.451 = impl_witness_access constants.%J.impl_witness, element0 [concrete = constants.%E.as.J.impl.F] -// CHECK:STDOUT: %F.ref: %.451 = name_ref F, %impl.elem0 [concrete = constants.%E.as.J.impl.F] +// CHECK:STDOUT: %impl.elem0: %.b5e = impl_witness_access constants.%J.impl_witness, element0 [concrete = constants.%E.as.J.impl.F] +// CHECK:STDOUT: %F.ref: %.b5e = name_ref F, %impl.elem0 [concrete = constants.%E.as.J.impl.F] // CHECK:STDOUT: %E.as.J.impl.F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/index/array_element_access.carbon b/toolchain/check/testdata/index/array_element_access.carbon index af5d514cbd8b..2fd2f7b5d741 100644 --- a/toolchain/check/testdata/index/array_element_access.carbon +++ b/toolchain/check/testdata/index/array_element_access.carbon @@ -27,50 +27,50 @@ var d: i32 = a[b]; // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_2, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.f35: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.7b0: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [concrete] // CHECK:STDOUT: %int_24.e3c: Core.IntLiteral = int_value 24 [concrete] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.dac: %tuple.type.f94 = tuple_value (%int_12.6a3, %int_24.e3c) [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bc9: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.739: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_12.aa5: %i32 = int_value 12 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.87c: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// 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.46b: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_12.8c7: %i32 = int_value 12 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7c5: = bound_method %int_24.e3c, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.1db: = bound_method %int_24.e3c, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_24.a1b: %i32 = int_value 24 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_12.aa5, %int_24.a1b) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.6cc: = bound_method %int_24.e3c, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %bound_method.b67: = bound_method %int_24.e3c, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_24.130: %i32 = int_value 24 [concrete] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_12.8c7, %int_24.130) [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] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -82,12 +82,12 @@ var d: i32 = a[b]; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -100,8 +100,8 @@ var d: i32 = a[b]; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f35 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.f35 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.7b0 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.7b0 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %array_type = var %a.var_patt [concrete] // CHECK:STDOUT: %.loc15: type = splice_block %array_type [concrete = constants.%array_type] { @@ -111,22 +111,22 @@ var d: i32 = a[b]; // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %array_type = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt [concrete] // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: ref %i32 = ref_binding b, %b.var [concrete = %b.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.104 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.104 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.6b6 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.6b6 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %i32 = var %c.var_patt [concrete] // CHECK:STDOUT: %i32.loc17: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %c: ref %i32 = ref_binding c, %c.var [concrete = %c.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.104 = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.104 = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.6b6 = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.6b6 = var_pattern %d.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %d.var: ref %i32 = var %d.var_patt [concrete] // CHECK:STDOUT: %i32.loc18: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -138,47 +138,47 @@ var d: i32 = a[b]; // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] // CHECK:STDOUT: %int_24: Core.IntLiteral = int_value 24 [concrete = constants.%int_24.e3c] // CHECK:STDOUT: %.loc15_31.1: %tuple.type.f94 = tuple_literal (%int_12, %int_24) [concrete = constants.%tuple.dac] -// CHECK:STDOUT: %impl.elem0.loc15_31.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_31.1: = bound_method %int_12, %impl.elem0.loc15_31.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bc9] +// CHECK:STDOUT: %impl.elem0.loc15_31.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_31.1: = bound_method %int_12, %impl.elem0.loc15_31.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.87c] // CHECK:STDOUT: %specific_fn.loc15_31.1: = specific_function %impl.elem0.loc15_31.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_31.2: = bound_method %int_12, %specific_fn.loc15_31.1 [concrete = constants.%bound_method.739] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_31.1: init %i32 = call %bound_method.loc15_31.2(%int_12) [concrete = constants.%int_12.aa5] -// CHECK:STDOUT: %.loc15_31.2: init %i32 = converted %int_12, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_31.1 [concrete = constants.%int_12.aa5] +// CHECK:STDOUT: %bound_method.loc15_31.2: = bound_method %int_12, %specific_fn.loc15_31.1 [concrete = constants.%bound_method.46b] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_31.1: init %i32 = call %bound_method.loc15_31.2(%int_12) [concrete = constants.%int_12.8c7] +// CHECK:STDOUT: %.loc15_31.2: init %i32 = converted %int_12, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_31.1 [concrete = constants.%int_12.8c7] // CHECK:STDOUT: %int_0.loc15: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc15_31.3: ref %i32 = array_index file.%a.var, %int_0.loc15 -// CHECK:STDOUT: %.loc15_31.4: init %i32 to %.loc15_31.3 = in_place_init %.loc15_31.2 [concrete = constants.%int_12.aa5] -// CHECK:STDOUT: %impl.elem0.loc15_31.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_31.3: = bound_method %int_24, %impl.elem0.loc15_31.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7c5] +// CHECK:STDOUT: %.loc15_31.4: init %i32 to %.loc15_31.3 = in_place_init %.loc15_31.2 [concrete = constants.%int_12.8c7] +// CHECK:STDOUT: %impl.elem0.loc15_31.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_31.3: = bound_method %int_24, %impl.elem0.loc15_31.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.6cc] // CHECK:STDOUT: %specific_fn.loc15_31.2: = specific_function %impl.elem0.loc15_31.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_31.4: = bound_method %int_24, %specific_fn.loc15_31.2 [concrete = constants.%bound_method.1db] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_31.2: init %i32 = call %bound_method.loc15_31.4(%int_24) [concrete = constants.%int_24.a1b] -// CHECK:STDOUT: %.loc15_31.5: init %i32 = converted %int_24, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_31.2 [concrete = constants.%int_24.a1b] +// CHECK:STDOUT: %bound_method.loc15_31.4: = bound_method %int_24, %specific_fn.loc15_31.2 [concrete = constants.%bound_method.b67] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_31.2: init %i32 = call %bound_method.loc15_31.4(%int_24) [concrete = constants.%int_24.130] +// CHECK:STDOUT: %.loc15_31.5: init %i32 = converted %int_24, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_31.2 [concrete = constants.%int_24.130] // CHECK:STDOUT: %int_1.loc15: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc15_31.6: ref %i32 = array_index file.%a.var, %int_1.loc15 -// CHECK:STDOUT: %.loc15_31.7: init %i32 to %.loc15_31.6 = in_place_init %.loc15_31.5 [concrete = constants.%int_24.a1b] +// CHECK:STDOUT: %.loc15_31.7: init %i32 to %.loc15_31.6 = in_place_init %.loc15_31.5 [concrete = constants.%int_24.130] // CHECK:STDOUT: %.loc15_31.8: init %array_type to file.%a.var = array_init (%.loc15_31.4, %.loc15_31.7) [concrete = constants.%array] // CHECK:STDOUT: %.loc15_1: init %array_type = converted %.loc15_31.1, %.loc15_31.8 [concrete = constants.%array] // CHECK:STDOUT: assign file.%a.var, %.loc15_1 // CHECK:STDOUT: %int_1.loc16: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc16: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc16_1.1: = bound_method %int_1.loc16, %impl.elem0.loc16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc16: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc16_1.1: = bound_method %int_1.loc16, %impl.elem0.loc16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_1.2: = bound_method %int_1.loc16, %specific_fn.loc16 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16: init %i32 = call %bound_method.loc16_1.2(%int_1.loc16) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc16: init %i32 = converted %int_1.loc16, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc16_1.2: = bound_method %int_1.loc16, %specific_fn.loc16 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16: init %i32 = call %bound_method.loc16_1.2(%int_1.loc16) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc16: init %i32 = converted %int_1.loc16, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: assign file.%b.var, %.loc16 // CHECK:STDOUT: %a.ref.loc17: ref %array_type = name_ref a, file.%a [concrete = file.%a.var] // CHECK:STDOUT: %int_0.loc17: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc17_16: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc17_16.1: = bound_method %int_0.loc17, %impl.elem0.loc17_16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc17_16: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc17_16.1: = bound_method %int_0.loc17, %impl.elem0.loc17_16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc17_16: = specific_function %impl.elem0.loc17_16, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_16.2: = bound_method %int_0.loc17, %specific_fn.loc17_16 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %i32 = call %bound_method.loc17_16.2(%int_0.loc17) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc17_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc17_16.2: %i32 = converted %int_0.loc17, %.loc17_16.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc17_16.2: = bound_method %int_0.loc17, %specific_fn.loc17_16 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %i32 = call %bound_method.loc17_16.2(%int_0.loc17) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc17_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc17_16.2: %i32 = converted %int_0.loc17, %.loc17_16.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc17_17.1: ref %i32 = array_index %a.ref.loc17, %.loc17_16.2 // CHECK:STDOUT: %.loc17_17.2: %i32 = acquire_value %.loc17_17.1 -// CHECK:STDOUT: %impl.elem0.loc17_17: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc17_17: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc17_17.1: = bound_method %.loc17_17.2, %impl.elem0.loc17_17 // CHECK:STDOUT: %specific_fn.loc17_17: = specific_function %impl.elem0.loc17_17, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc17_17.2: = bound_method %.loc17_17.2, %specific_fn.loc17_17 @@ -189,7 +189,7 @@ var d: i32 = a[b]; // CHECK:STDOUT: %.loc18_16: %i32 = acquire_value %b.ref // CHECK:STDOUT: %.loc18_17.1: ref %i32 = array_index %a.ref.loc18, %.loc18_16 // CHECK:STDOUT: %.loc18_17.2: %i32 = acquire_value %.loc18_17.1 -// CHECK:STDOUT: %impl.elem0.loc18: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc18: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc18_17.1: = bound_method %.loc18_17.2, %impl.elem0.loc18 // CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc18_17.2: = bound_method %.loc18_17.2, %specific_fn.loc18 diff --git a/toolchain/check/testdata/index/expr_category.carbon b/toolchain/check/testdata/index/expr_category.carbon index 815171210653..ad6c1512035c 100644 --- a/toolchain/check/testdata/index/expr_category.carbon +++ b/toolchain/check/testdata/index/expr_category.carbon @@ -42,8 +42,8 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_3.1ba, %i32 [concrete] -// CHECK:STDOUT: %.761: Core.Form = init_form %array_type [concrete] -// CHECK:STDOUT: %pattern_type.bec: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %.2b2: Core.Form = init_form %array_type [concrete] +// CHECK:STDOUT: %pattern_type.771: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] @@ -54,54 +54,54 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %tuple.type.37f: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.2d5: %tuple.type.37f = tuple_value (%int_1.5b8, %int_2.ecc, %int_3.1ba) [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.d9c, %int_2.228, %int_3.6cc) [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr.847 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %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] +// 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: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.c37: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ae4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.6e4: %ptr.as.Copy.impl.Op.type.ae4 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.847, (%Copy.impl_witness.c37) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.165: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.cd7: type = fn_type_with_self_type %Copy.WithSelf.Op.type.165, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.6e4, @ptr.as.Copy.impl.Op(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.ce1: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c1c: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.d1c: %ptr.as.Copy.impl.Op.type.c1c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.d08, (%Copy.impl_witness.ce1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.f9d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.ac9: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f9d, %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: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.9f5: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_4.a4d: %i32 = 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] +// CHECK:STDOUT: %int_4.4eb: %i32 = int_value 4 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.loc21 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc18_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: %ValueBinding.type: type = fn_type @ValueBinding [concrete] // CHECK:STDOUT: %ValueBinding: %ValueBinding.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -116,12 +116,12 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -134,19 +134,19 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.bec = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.bec = return_slot_pattern %return.param_patt, %array_type [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.771 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.771 = return_slot_pattern %return.param_patt, %array_type [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %array_type: type = array_type %int_3, %i32 [concrete = constants.%array_type] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %array_type [concrete = constants.%.761] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %array_type [concrete = constants.%.2b2] // CHECK:STDOUT: %return.param: ref %array_type = out_param call_param0 // CHECK:STDOUT: %return: ref %array_type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %b.param_patt: %pattern_type.bec = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.bec = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.771 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.771 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %b.param: %array_type = value_param call_param0 // CHECK:STDOUT: %.loc17: type = splice_block %array_type.loc17 [concrete = constants.%array_type] { @@ -157,8 +157,8 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %b: %array_type = value_binding b, %b.param // CHECK:STDOUT: } // CHECK:STDOUT: %ValueBinding.decl: %ValueBinding.type = fn_decl @ValueBinding [concrete = constants.%ValueBinding] { -// CHECK:STDOUT: %b.param_patt: %pattern_type.bec = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.bec = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.771 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.771 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %b.param: %array_type = value_param call_param0 // CHECK:STDOUT: %.loc25: type = splice_block %array_type.loc25 [concrete = constants.%array_type] { @@ -175,41 +175,41 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: fn @G(%b.param: %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.bec = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.bec = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.771 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.771 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %array_type = var %a.var_patt // CHECK:STDOUT: %int_1.loc18_27: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc18_30: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3.loc18_33: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc18_34.1: %tuple.type.37f = tuple_literal (%int_1.loc18_27, %int_2.loc18_30, %int_3.loc18_33) [concrete = constants.%tuple.2d5] -// CHECK:STDOUT: %impl.elem0.loc18_34.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_34.1: = bound_method %int_1.loc18_27, %impl.elem0.loc18_34.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc18_34.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_34.1: = bound_method %int_1.loc18_27, %impl.elem0.loc18_34.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc18_34.1: = specific_function %impl.elem0.loc18_34.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_34.2: = bound_method %int_1.loc18_27, %specific_fn.loc18_34.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_34.1: init %i32 = call %bound_method.loc18_34.2(%int_1.loc18_27) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_34.2: init %i32 = converted %int_1.loc18_27, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_34.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc18_34.2: = bound_method %int_1.loc18_27, %specific_fn.loc18_34.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_34.1: init %i32 = call %bound_method.loc18_34.2(%int_1.loc18_27) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_34.2: init %i32 = converted %int_1.loc18_27, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_34.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %int_0.loc18: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc18_34.3: ref %i32 = array_index %a.var, %int_0.loc18 -// CHECK:STDOUT: %.loc18_34.4: init %i32 to %.loc18_34.3 = in_place_init %.loc18_34.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc18_34.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_34.3: = bound_method %int_2.loc18_30, %impl.elem0.loc18_34.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc18_34.4: init %i32 to %.loc18_34.3 = in_place_init %.loc18_34.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc18_34.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_34.3: = bound_method %int_2.loc18_30, %impl.elem0.loc18_34.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc18_34.2: = specific_function %impl.elem0.loc18_34.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_34.4: = bound_method %int_2.loc18_30, %specific_fn.loc18_34.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_34.2: init %i32 = call %bound_method.loc18_34.4(%int_2.loc18_30) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc18_34.5: init %i32 = converted %int_2.loc18_30, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_34.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc18_34.4: = bound_method %int_2.loc18_30, %specific_fn.loc18_34.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_34.2: init %i32 = call %bound_method.loc18_34.4(%int_2.loc18_30) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc18_34.5: init %i32 = converted %int_2.loc18_30, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_34.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %int_1.loc18_34: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc18_34.6: ref %i32 = array_index %a.var, %int_1.loc18_34 -// CHECK:STDOUT: %.loc18_34.7: init %i32 to %.loc18_34.6 = in_place_init %.loc18_34.5 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %impl.elem0.loc18_34.3: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_34.5: = bound_method %int_3.loc18_33, %impl.elem0.loc18_34.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %.loc18_34.7: init %i32 to %.loc18_34.6 = in_place_init %.loc18_34.5 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %impl.elem0.loc18_34.3: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_34.5: = bound_method %int_3.loc18_33, %impl.elem0.loc18_34.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc18_34.3: = specific_function %impl.elem0.loc18_34.3, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_34.6: = bound_method %int_3.loc18_33, %specific_fn.loc18_34.3 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_34.3: init %i32 = call %bound_method.loc18_34.6(%int_3.loc18_33) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc18_34.8: init %i32 = converted %int_3.loc18_33, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_34.3 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc18_34.6: = bound_method %int_3.loc18_33, %specific_fn.loc18_34.3 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_34.3: init %i32 = call %bound_method.loc18_34.6(%int_3.loc18_33) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc18_34.8: init %i32 = converted %int_3.loc18_33, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_34.3 [concrete = constants.%int_3.410] // CHECK:STDOUT: %int_2.loc18_34: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc18_34.9: ref %i32 = array_index %a.var, %int_2.loc18_34 -// CHECK:STDOUT: %.loc18_34.10: init %i32 to %.loc18_34.9 = in_place_init %.loc18_34.8 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %.loc18_34.10: init %i32 to %.loc18_34.9 = in_place_init %.loc18_34.8 [concrete = constants.%int_3.410] // CHECK:STDOUT: %.loc18_34.11: init %array_type to %a.var = array_init (%.loc18_34.4, %.loc18_34.7, %.loc18_34.10) [concrete = constants.%array] // CHECK:STDOUT: %.loc18_3: init %array_type = converted %.loc18_34.1, %.loc18_34.11 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc18_3 @@ -220,58 +220,58 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %array_type = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pa.patt: %pattern_type.7b5 = ref_binding_pattern pa [concrete] -// CHECK:STDOUT: %pa.var_patt: %pattern_type.7b5 = var_pattern %pa.patt [concrete] +// CHECK:STDOUT: %pa.patt: %pattern_type.f00 = ref_binding_pattern pa [concrete] +// CHECK:STDOUT: %pa.var_patt: %pattern_type.f00 = var_pattern %pa.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %pa.var: ref %ptr.847 = var %pa.var_patt +// CHECK:STDOUT: %pa.var: ref %ptr.d08 = var %pa.var_patt // CHECK:STDOUT: %a.ref.loc21: ref %array_type = name_ref a, %a // CHECK:STDOUT: %int_0.loc21: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc21_28: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc21_28.1: = bound_method %int_0.loc21, %impl.elem0.loc21_28 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc21_28: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc21_28.1: = bound_method %int_0.loc21, %impl.elem0.loc21_28 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc21_28: = specific_function %impl.elem0.loc21_28, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc21_28.2: = bound_method %int_0.loc21, %specific_fn.loc21_28 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %i32 = call %bound_method.loc21_28.2(%int_0.loc21) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc21_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc21_28.2: %i32 = converted %int_0.loc21, %.loc21_28.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc21_28.2: = bound_method %int_0.loc21, %specific_fn.loc21_28 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %i32 = call %bound_method.loc21_28.2(%int_0.loc21) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc21_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc21_28.2: %i32 = converted %int_0.loc21, %.loc21_28.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc21_29: ref %i32 = array_index %a.ref.loc21, %.loc21_28.2 -// CHECK:STDOUT: %addr: %ptr.847 = addr_of %.loc21_29 -// CHECK:STDOUT: %impl.elem0.loc21_25: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %addr: %ptr.d08 = addr_of %.loc21_29 +// CHECK:STDOUT: %impl.elem0.loc21_25: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc21_25.1: = bound_method %addr, %impl.elem0.loc21_25 // CHECK:STDOUT: %specific_fn.loc21_25: = specific_function %impl.elem0.loc21_25, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc21_25.2: = bound_method %addr, %specific_fn.loc21_25 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.847 = call %bound_method.loc21_25.2(%addr) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d08 = call %bound_method.loc21_25.2(%addr) // CHECK:STDOUT: assign %pa.var, %ptr.as.Copy.impl.Op.call -// CHECK:STDOUT: %.loc21_21: type = splice_block %ptr [concrete = constants.%ptr.847] { +// CHECK:STDOUT: %.loc21_21: type = splice_block %ptr [concrete = constants.%ptr.d08] { // CHECK:STDOUT: %i32.loc21: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc21 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc21 [concrete = constants.%ptr.d08] // CHECK:STDOUT: } -// CHECK:STDOUT: %pa: ref %ptr.847 = ref_binding pa, %pa.var +// CHECK:STDOUT: %pa: ref %ptr.d08 = ref_binding pa, %pa.var // CHECK:STDOUT: %a.ref.loc22: ref %array_type = name_ref a, %a // CHECK:STDOUT: %int_0.loc22: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc22_5: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %int_0.loc22, %impl.elem0.loc22_5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc22_5: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %int_0.loc22, %impl.elem0.loc22_5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc22_5: = specific_function %impl.elem0.loc22_5, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %int_0.loc22, %specific_fn.loc22_5 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_5: init %i32 = call %bound_method.loc22_5.2(%int_0.loc22) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc22_5.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_5 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc22_5.2: %i32 = converted %int_0.loc22, %.loc22_5.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %int_0.loc22, %specific_fn.loc22_5 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_5: init %i32 = call %bound_method.loc22_5.2(%int_0.loc22) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc22_5.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_5 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc22_5.2: %i32 = converted %int_0.loc22, %.loc22_5.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc22_6: ref %i32 = array_index %a.ref.loc22, %.loc22_5.2 // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc22_8: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc22_8.1: = bound_method %int_4, %impl.elem0.loc22_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe] +// CHECK:STDOUT: %impl.elem0.loc22_8: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc22_8.1: = bound_method %int_4, %impl.elem0.loc22_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad] // CHECK:STDOUT: %specific_fn.loc22_8: = specific_function %impl.elem0.loc22_8, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc22_8.2: = bound_method %int_4, %specific_fn.loc22_8 [concrete = constants.%bound_method.9f5] -// 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.a4d] -// CHECK:STDOUT: %.loc22_8: init %i32 = converted %int_4, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_8 [concrete = constants.%int_4.a4d] +// CHECK:STDOUT: %bound_method.loc22_8.2: = bound_method %int_4, %specific_fn.loc22_8 [concrete = constants.%bound_method.b7a] +// 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.2dd605.1 +// 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.2dd605.4 +// 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: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc21(%self.param: ref %ptr.847) = "no_op"; +// CHECK:STDOUT: fn @Destroy.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: @@ -288,41 +288,41 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: fn @ValueBinding(%b.param: %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.bec = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.bec = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.771 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.771 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %array_type = var %a.var_patt // CHECK:STDOUT: %int_1.loc26_27: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc26_30: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3.loc26_33: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc26_34.1: %tuple.type.37f = tuple_literal (%int_1.loc26_27, %int_2.loc26_30, %int_3.loc26_33) [concrete = constants.%tuple.2d5] -// CHECK:STDOUT: %impl.elem0.loc26_34.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc26_34.1: = bound_method %int_1.loc26_27, %impl.elem0.loc26_34.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc26_34.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc26_34.1: = bound_method %int_1.loc26_27, %impl.elem0.loc26_34.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc26_34.1: = specific_function %impl.elem0.loc26_34.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_34.2: = bound_method %int_1.loc26_27, %specific_fn.loc26_34.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_34.1: init %i32 = call %bound_method.loc26_34.2(%int_1.loc26_27) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc26_34.2: init %i32 = converted %int_1.loc26_27, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_34.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc26_34.2: = bound_method %int_1.loc26_27, %specific_fn.loc26_34.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_34.1: init %i32 = call %bound_method.loc26_34.2(%int_1.loc26_27) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc26_34.2: init %i32 = converted %int_1.loc26_27, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_34.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %int_0.loc26: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc26_34.3: ref %i32 = array_index %a.var, %int_0.loc26 -// CHECK:STDOUT: %.loc26_34.4: init %i32 to %.loc26_34.3 = in_place_init %.loc26_34.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc26_34.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc26_34.3: = bound_method %int_2.loc26_30, %impl.elem0.loc26_34.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc26_34.4: init %i32 to %.loc26_34.3 = in_place_init %.loc26_34.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc26_34.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc26_34.3: = bound_method %int_2.loc26_30, %impl.elem0.loc26_34.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc26_34.2: = specific_function %impl.elem0.loc26_34.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_34.4: = bound_method %int_2.loc26_30, %specific_fn.loc26_34.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_34.2: init %i32 = call %bound_method.loc26_34.4(%int_2.loc26_30) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc26_34.5: init %i32 = converted %int_2.loc26_30, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_34.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc26_34.4: = bound_method %int_2.loc26_30, %specific_fn.loc26_34.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_34.2: init %i32 = call %bound_method.loc26_34.4(%int_2.loc26_30) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc26_34.5: init %i32 = converted %int_2.loc26_30, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_34.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %int_1.loc26_34: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc26_34.6: ref %i32 = array_index %a.var, %int_1.loc26_34 -// CHECK:STDOUT: %.loc26_34.7: init %i32 to %.loc26_34.6 = in_place_init %.loc26_34.5 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %impl.elem0.loc26_34.3: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc26_34.5: = bound_method %int_3.loc26_33, %impl.elem0.loc26_34.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %.loc26_34.7: init %i32 to %.loc26_34.6 = in_place_init %.loc26_34.5 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %impl.elem0.loc26_34.3: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc26_34.5: = bound_method %int_3.loc26_33, %impl.elem0.loc26_34.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc26_34.3: = specific_function %impl.elem0.loc26_34.3, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_34.6: = bound_method %int_3.loc26_33, %specific_fn.loc26_34.3 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_34.3: init %i32 = call %bound_method.loc26_34.6(%int_3.loc26_33) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc26_34.8: init %i32 = converted %int_3.loc26_33, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_34.3 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc26_34.6: = bound_method %int_3.loc26_33, %specific_fn.loc26_34.3 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_34.3: init %i32 = call %bound_method.loc26_34.6(%int_3.loc26_33) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc26_34.8: init %i32 = converted %int_3.loc26_33, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26_34.3 [concrete = constants.%int_3.410] // CHECK:STDOUT: %int_2.loc26_34: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc26_34.9: ref %i32 = array_index %a.var, %int_2.loc26_34 -// CHECK:STDOUT: %.loc26_34.10: init %i32 to %.loc26_34.9 = in_place_init %.loc26_34.8 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %.loc26_34.10: init %i32 to %.loc26_34.9 = in_place_init %.loc26_34.8 [concrete = constants.%int_3.410] // CHECK:STDOUT: %.loc26_34.11: init %array_type to %a.var = array_init (%.loc26_34.4, %.loc26_34.7, %.loc26_34.10) [concrete = constants.%array] // CHECK:STDOUT: %.loc26_3: init %array_type = converted %.loc26_34.1, %.loc26_34.11 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc26_3 @@ -334,23 +334,23 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %a: ref %array_type = ref_binding a, %a.var // CHECK:STDOUT: %a.ref: ref %array_type = name_ref a, %a // CHECK:STDOUT: %int_0.loc30: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc30: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc30_5.1: = bound_method %int_0.loc30, %impl.elem0.loc30 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc30: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc30_5.1: = bound_method %int_0.loc30, %impl.elem0.loc30 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc30: = specific_function %impl.elem0.loc30, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc30_5.2: = bound_method %int_0.loc30, %specific_fn.loc30 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc30: init %i32 = call %bound_method.loc30_5.2(%int_0.loc30) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc30_5.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc30 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc30_5.2: %i32 = converted %int_0.loc30, %.loc30_5.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc30_5.2: = bound_method %int_0.loc30, %specific_fn.loc30 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc30: init %i32 = call %bound_method.loc30_5.2(%int_0.loc30) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc30_5.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc30 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc30_5.2: %i32 = converted %int_0.loc30, %.loc30_5.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc30_6: ref %i32 = array_index %a.ref, %.loc30_5.2 // CHECK:STDOUT: %b.ref: %array_type = name_ref b, %b // CHECK:STDOUT: %int_0.loc31: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc31: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc31_5.1: = bound_method %int_0.loc31, %impl.elem0.loc31 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc31: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc31_5.1: = bound_method %int_0.loc31, %impl.elem0.loc31 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc31: = specific_function %impl.elem0.loc31, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc31_5.2: = bound_method %int_0.loc31, %specific_fn.loc31 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31: init %i32 = call %bound_method.loc31_5.2(%int_0.loc31) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc31_5.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc31_5.2: %i32 = converted %int_0.loc31, %.loc31_5.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc31_5.2: = bound_method %int_0.loc31, %specific_fn.loc31 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31: init %i32 = call %bound_method.loc31_5.2(%int_0.loc31) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc31_5.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc31_5.2: %i32 = converted %int_0.loc31, %.loc31_5.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc31_6.1: ref %array_type = value_as_ref %b.ref // CHECK:STDOUT: %.loc31_6.2: ref %i32 = array_index %.loc31_6.1, %.loc31_5.2 // CHECK:STDOUT: %.loc31_6.3: %i32 = acquire_value %.loc31_6.2 @@ -359,18 +359,18 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %F.call: init %array_type to %.loc32_5.1 = call %F.ref() // CHECK:STDOUT: %int_0.loc32: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc32_5.2: ref %array_type = temporary %.loc32_5.1, %F.call -// CHECK:STDOUT: %impl.elem0.loc32: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc32_7.1: = bound_method %int_0.loc32, %impl.elem0.loc32 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc32: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc32_7.1: = bound_method %int_0.loc32, %impl.elem0.loc32 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc32: = specific_function %impl.elem0.loc32, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc32_7.2: = bound_method %int_0.loc32, %specific_fn.loc32 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32: init %i32 = call %bound_method.loc32_7.2(%int_0.loc32) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc32_7.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc32_7.2: %i32 = converted %int_0.loc32, %.loc32_7.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc32_7.2: = bound_method %int_0.loc32, %specific_fn.loc32 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32: init %i32 = call %bound_method.loc32_7.2(%int_0.loc32) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc32_7.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32 [concrete = constants.%int_0.3c0] +// 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.2dd605.4 +// 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.2dd605.4 +// 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: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/index/fail_array_large_index.carbon b/toolchain/check/testdata/index/fail_array_large_index.carbon index 3587f30cec6e..2d8940c5322e 100644 --- a/toolchain/check/testdata/index/fail_array_large_index.carbon +++ b/toolchain/check/testdata/index/fail_array_large_index.carbon @@ -36,46 +36,46 @@ var c: i32 = a[0x7FFF_FFFF]; // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.34b: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.97e: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.3bc: %tuple.type.985 = tuple_value (%int_12.6a3) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bc9: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.739: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_12.aa5: %i32 = int_value 12 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_12.aa5) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.87c: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// 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.46b: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_12.8c7: %i32 = int_value 12 [concrete] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_12.8c7) [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] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %int_2147483647.d89: Core.IntLiteral = int_value 2147483647 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.374: = bound_method %int_2147483647.d89, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.2a8: = bound_method %int_2147483647.d89, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2147483647.9ca: %i32 = int_value 2147483647 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.91c: = bound_method %int_2147483647.d89, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %bound_method.777: = bound_method %int_2147483647.d89, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_2147483647.a0e: %i32 = int_value 2147483647 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -87,12 +87,12 @@ var c: i32 = a[0x7FFF_FFFF]; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -104,8 +104,8 @@ var c: i32 = a[0x7FFF_FFFF]; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.34b = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.34b = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.97e = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.97e = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %array_type = var %a.var_patt [concrete] // CHECK:STDOUT: %.loc15: type = splice_block %array_type [concrete = constants.%array_type] { @@ -115,15 +115,15 @@ var c: i32 = a[0x7FFF_FFFF]; // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %array_type = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt [concrete] // CHECK:STDOUT: %i32.loc21: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: ref %i32 = ref_binding b, %b.var [concrete = %b.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.104 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.104 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.6b6 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.6b6 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %i32 = var %c.var_patt [concrete] // CHECK:STDOUT: %i32.loc27: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -134,30 +134,30 @@ var c: i32 = a[0x7FFF_FFFF]; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] // CHECK:STDOUT: %.loc15_28.1: %tuple.type.985 = tuple_literal (%int_12) [concrete = constants.%tuple.3bc] -// CHECK:STDOUT: %impl.elem0.loc15: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_28.1: = bound_method %int_12, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bc9] +// CHECK:STDOUT: %impl.elem0.loc15: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_28.1: = bound_method %int_12, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.87c] // CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_28.2: = bound_method %int_12, %specific_fn.loc15 [concrete = constants.%bound_method.739] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %i32 = call %bound_method.loc15_28.2(%int_12) [concrete = constants.%int_12.aa5] -// CHECK:STDOUT: %.loc15_28.2: init %i32 = converted %int_12, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%int_12.aa5] +// CHECK:STDOUT: %bound_method.loc15_28.2: = bound_method %int_12, %specific_fn.loc15 [concrete = constants.%bound_method.46b] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %i32 = call %bound_method.loc15_28.2(%int_12) [concrete = constants.%int_12.8c7] +// CHECK:STDOUT: %.loc15_28.2: init %i32 = converted %int_12, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%int_12.8c7] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc15_28.3: ref %i32 = array_index file.%a.var, %int_0 -// CHECK:STDOUT: %.loc15_28.4: init %i32 to %.loc15_28.3 = in_place_init %.loc15_28.2 [concrete = constants.%int_12.aa5] +// CHECK:STDOUT: %.loc15_28.4: init %i32 to %.loc15_28.3 = in_place_init %.loc15_28.2 [concrete = constants.%int_12.8c7] // CHECK:STDOUT: %.loc15_28.5: init %array_type to file.%a.var = array_init (%.loc15_28.4) [concrete = constants.%array] // CHECK:STDOUT: %.loc15_1: init %array_type = converted %.loc15_28.1, %.loc15_28.5 [concrete = constants.%array] // CHECK:STDOUT: assign file.%a.var, %.loc15_1 // CHECK:STDOUT: %a.ref.loc21: ref %array_type = name_ref a, file.%a [concrete = file.%a.var] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc21_16: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc21_16.1: = bound_method %int_1, %impl.elem0.loc21_16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc21_16: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc21_16.1: = bound_method %int_1, %impl.elem0.loc21_16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc21_16: = specific_function %impl.elem0.loc21_16, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc21_16.2: = bound_method %int_1, %specific_fn.loc21_16 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %i32 = call %bound_method.loc21_16.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc21_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc21_16.2: %i32 = converted %int_1, %.loc21_16.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc21_16.2: = bound_method %int_1, %specific_fn.loc21_16 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %i32 = call %bound_method.loc21_16.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc21_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc21_16.2: %i32 = converted %int_1, %.loc21_16.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc21_17.1: ref %i32 = array_index %a.ref.loc21, %.loc21_16.2 [concrete = ] // CHECK:STDOUT: %.loc21_17.2: %i32 = acquire_value %.loc21_17.1 [concrete = ] -// CHECK:STDOUT: %impl.elem0.loc21_17: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc21_17: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc21_17.1: = bound_method %.loc21_17.2, %impl.elem0.loc21_17 [concrete = ] // CHECK:STDOUT: %specific_fn.loc21_17: = specific_function %impl.elem0.loc21_17, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc21_17.2: = bound_method %.loc21_17.2, %specific_fn.loc21_17 [concrete = ] @@ -165,16 +165,16 @@ var c: i32 = a[0x7FFF_FFFF]; // CHECK:STDOUT: assign file.%b.var, %Int.as.Copy.impl.Op.call.loc21 // CHECK:STDOUT: %a.ref.loc27: ref %array_type = name_ref a, file.%a [concrete = file.%a.var] // CHECK:STDOUT: %int_2147483647: Core.IntLiteral = int_value 2147483647 [concrete = constants.%int_2147483647.d89] -// CHECK:STDOUT: %impl.elem0.loc27_16: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc27_16.1: = bound_method %int_2147483647, %impl.elem0.loc27_16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.374] +// CHECK:STDOUT: %impl.elem0.loc27_16: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc27_16.1: = bound_method %int_2147483647, %impl.elem0.loc27_16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.91c] // CHECK:STDOUT: %specific_fn.loc27_16: = specific_function %impl.elem0.loc27_16, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc27_16.2: = bound_method %int_2147483647, %specific_fn.loc27_16 [concrete = constants.%bound_method.2a8] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27: init %i32 = call %bound_method.loc27_16.2(%int_2147483647) [concrete = constants.%int_2147483647.9ca] -// CHECK:STDOUT: %.loc27_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27 [concrete = constants.%int_2147483647.9ca] -// CHECK:STDOUT: %.loc27_16.2: %i32 = converted %int_2147483647, %.loc27_16.1 [concrete = constants.%int_2147483647.9ca] +// CHECK:STDOUT: %bound_method.loc27_16.2: = bound_method %int_2147483647, %specific_fn.loc27_16 [concrete = constants.%bound_method.777] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27: init %i32 = call %bound_method.loc27_16.2(%int_2147483647) [concrete = constants.%int_2147483647.a0e] +// CHECK:STDOUT: %.loc27_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27 [concrete = constants.%int_2147483647.a0e] +// CHECK:STDOUT: %.loc27_16.2: %i32 = converted %int_2147483647, %.loc27_16.1 [concrete = constants.%int_2147483647.a0e] // CHECK:STDOUT: %.loc27_27.1: ref %i32 = array_index %a.ref.loc27, %.loc27_16.2 [concrete = ] // CHECK:STDOUT: %.loc27_27.2: %i32 = acquire_value %.loc27_27.1 [concrete = ] -// CHECK:STDOUT: %impl.elem0.loc27_27: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc27_27: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc27_27.1: = bound_method %.loc27_27.2, %impl.elem0.loc27_27 [concrete = ] // CHECK:STDOUT: %specific_fn.loc27_27: = specific_function %impl.elem0.loc27_27, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc27_27.2: = bound_method %.loc27_27.2, %specific_fn.loc27_27 [concrete = ] diff --git a/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon b/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon index 78f451911f8e..2da93b1f053a 100644 --- a/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon +++ b/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon @@ -32,40 +32,40 @@ var b: i32 = a[2.6]; // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_1, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.34b: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.97e: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.3bc: %tuple.type.985 = tuple_value (%int_12.6a3) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// 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_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_12.aa5: %i32 = int_value 12 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_12.aa5) [concrete] +// CHECK:STDOUT: %int_12.8c7: %i32 = int_value 12 [concrete] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_12.8c7) [concrete] // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 26e-1 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -77,12 +77,12 @@ var b: i32 = a[2.6]; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -93,8 +93,8 @@ var b: i32 = a[2.6]; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.34b = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.34b = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.97e = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.97e = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %array_type = var %a.var_patt [concrete] // CHECK:STDOUT: %.loc15: type = splice_block %array_type [concrete = constants.%array_type] { @@ -104,8 +104,8 @@ var b: i32 = a[2.6]; // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %array_type = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt [concrete] // CHECK:STDOUT: %i32.loc23: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -116,15 +116,15 @@ var b: i32 = a[2.6]; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] // CHECK:STDOUT: %.loc15_28.1: %tuple.type.985 = tuple_literal (%int_12) [concrete = constants.%tuple.3bc] -// CHECK:STDOUT: %impl.elem0.loc15: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc15: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc15_28.1: = bound_method %int_12, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_28.2: = bound_method %int_12, %specific_fn.loc15 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_28.2(%int_12) [concrete = constants.%int_12.aa5] -// CHECK:STDOUT: %.loc15_28.2: init %i32 = converted %int_12, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_12.aa5] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_28.2(%int_12) [concrete = constants.%int_12.8c7] +// CHECK:STDOUT: %.loc15_28.2: init %i32 = converted %int_12, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_12.8c7] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc15_28.3: ref %i32 = array_index file.%a.var, %int_0 -// CHECK:STDOUT: %.loc15_28.4: init %i32 to %.loc15_28.3 = in_place_init %.loc15_28.2 [concrete = constants.%int_12.aa5] +// CHECK:STDOUT: %.loc15_28.4: init %i32 to %.loc15_28.3 = in_place_init %.loc15_28.2 [concrete = constants.%int_12.8c7] // CHECK:STDOUT: %.loc15_28.5: init %array_type to file.%a.var = array_init (%.loc15_28.4) [concrete = constants.%array] // CHECK:STDOUT: %.loc15_1: init %array_type = converted %.loc15_28.1, %.loc15_28.5 [concrete = constants.%array] // CHECK:STDOUT: assign file.%a.var, %.loc15_1 @@ -133,7 +133,7 @@ var b: i32 = a[2.6]; // CHECK:STDOUT: %.loc23_16: %i32 = converted %float, [concrete = ] // CHECK:STDOUT: %.loc23_19.1: ref %i32 = array_index %a.ref, [concrete = ] // CHECK:STDOUT: %.loc23_19.2: %i32 = acquire_value %.loc23_19.1 [concrete = ] -// CHECK:STDOUT: %impl.elem0.loc23: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc23: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc23_19.1: = bound_method %.loc23_19.2, %impl.elem0.loc23 [concrete = ] // CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc23_19.2: = bound_method %.loc23_19.2, %specific_fn.loc23 [concrete = ] diff --git a/toolchain/check/testdata/index/fail_array_out_of_bound_access.carbon b/toolchain/check/testdata/index/fail_array_out_of_bound_access.carbon index 9ccd8d87b60a..d8c363e345dc 100644 --- a/toolchain/check/testdata/index/fail_array_out_of_bound_access.carbon +++ b/toolchain/check/testdata/index/fail_array_out_of_bound_access.carbon @@ -29,42 +29,42 @@ var b: i32 = a[1]; // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.34b: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.97e: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.3bc: %tuple.type.985 = tuple_value (%int_12.6a3) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bc9: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.739: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_12.aa5: %i32 = int_value 12 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_12.aa5) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.87c: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// 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.46b: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_12.8c7: %i32 = int_value 12 [concrete] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_12.8c7) [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] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -76,12 +76,12 @@ var b: i32 = a[1]; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -92,8 +92,8 @@ var b: i32 = a[1]; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.34b = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.34b = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.97e = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.97e = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %array_type = var %a.var_patt [concrete] // CHECK:STDOUT: %.loc15: type = splice_block %array_type [concrete = constants.%array_type] { @@ -103,8 +103,8 @@ var b: i32 = a[1]; // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %array_type = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt [concrete] // CHECK:STDOUT: %i32.loc20: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -115,30 +115,30 @@ var b: i32 = a[1]; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] // CHECK:STDOUT: %.loc15_28.1: %tuple.type.985 = tuple_literal (%int_12) [concrete = constants.%tuple.3bc] -// CHECK:STDOUT: %impl.elem0.loc15: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_28.1: = bound_method %int_12, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bc9] +// CHECK:STDOUT: %impl.elem0.loc15: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_28.1: = bound_method %int_12, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.87c] // CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_28.2: = bound_method %int_12, %specific_fn.loc15 [concrete = constants.%bound_method.739] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %i32 = call %bound_method.loc15_28.2(%int_12) [concrete = constants.%int_12.aa5] -// CHECK:STDOUT: %.loc15_28.2: init %i32 = converted %int_12, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%int_12.aa5] +// CHECK:STDOUT: %bound_method.loc15_28.2: = bound_method %int_12, %specific_fn.loc15 [concrete = constants.%bound_method.46b] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %i32 = call %bound_method.loc15_28.2(%int_12) [concrete = constants.%int_12.8c7] +// CHECK:STDOUT: %.loc15_28.2: init %i32 = converted %int_12, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%int_12.8c7] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc15_28.3: ref %i32 = array_index file.%a.var, %int_0 -// CHECK:STDOUT: %.loc15_28.4: init %i32 to %.loc15_28.3 = in_place_init %.loc15_28.2 [concrete = constants.%int_12.aa5] +// CHECK:STDOUT: %.loc15_28.4: init %i32 to %.loc15_28.3 = in_place_init %.loc15_28.2 [concrete = constants.%int_12.8c7] // CHECK:STDOUT: %.loc15_28.5: init %array_type to file.%a.var = array_init (%.loc15_28.4) [concrete = constants.%array] // CHECK:STDOUT: %.loc15_1: init %array_type = converted %.loc15_28.1, %.loc15_28.5 [concrete = constants.%array] // CHECK:STDOUT: assign file.%a.var, %.loc15_1 // CHECK:STDOUT: %a.ref: ref %array_type = name_ref a, file.%a [concrete = file.%a.var] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc20_16: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc20_16.1: = bound_method %int_1, %impl.elem0.loc20_16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc20_16: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc20_16.1: = bound_method %int_1, %impl.elem0.loc20_16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc20_16: = specific_function %impl.elem0.loc20_16, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc20_16.2: = bound_method %int_1, %specific_fn.loc20_16 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %i32 = call %bound_method.loc20_16.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc20_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc20_16.2: %i32 = converted %int_1, %.loc20_16.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc20_16.2: = bound_method %int_1, %specific_fn.loc20_16 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %i32 = call %bound_method.loc20_16.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc20_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc20_16.2: %i32 = converted %int_1, %.loc20_16.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc20_17.1: ref %i32 = array_index %a.ref, %.loc20_16.2 [concrete = ] // CHECK:STDOUT: %.loc20_17.2: %i32 = acquire_value %.loc20_17.1 [concrete = ] -// CHECK:STDOUT: %impl.elem0.loc20_17: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc20_17: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc20_17.1: = bound_method %.loc20_17.2, %impl.elem0.loc20_17 [concrete = ] // CHECK:STDOUT: %specific_fn.loc20_17: = specific_function %impl.elem0.loc20_17, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc20_17.2: = bound_method %.loc20_17.2, %specific_fn.loc20_17 [concrete = ] diff --git a/toolchain/check/testdata/index/fail_expr_category.carbon b/toolchain/check/testdata/index/fail_expr_category.carbon index 1a782bad2734..98115ad459c4 100644 --- a/toolchain/check/testdata/index/fail_expr_category.carbon +++ b/toolchain/check/testdata/index/fail_expr_category.carbon @@ -51,52 +51,52 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_3, %i32 [concrete] -// CHECK:STDOUT: %.761: Core.Form = init_form %array_type [concrete] -// CHECK:STDOUT: %pattern_type.bec: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %.2b2: Core.Form = init_form %array_type [concrete] +// CHECK:STDOUT: %pattern_type.771: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr.847 [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.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: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.c37: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ae4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.6e4: %ptr.as.Copy.impl.Op.type.ae4 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.847, (%Copy.impl_witness.c37) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.165: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.cd7: type = fn_type_with_self_type %Copy.WithSelf.Op.type.165, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.6e4, @ptr.as.Copy.impl.Op(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.ce1: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c1c: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.d1c: %ptr.as.Copy.impl.Op.type.c1c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.d08, (%Copy.impl_witness.ce1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.f9d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.ac9: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f9d, %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: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.9f5: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_4.a4d: %i32 = 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] +// CHECK:STDOUT: %int_4.4eb: %i32 = int_value 4 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc41_5.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc36 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -109,12 +109,12 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -126,19 +126,19 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.bec = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.bec = return_slot_pattern %return.param_patt, %array_type [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.771 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.771 = return_slot_pattern %return.param_patt, %array_type [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] // CHECK:STDOUT: %array_type: type = array_type %int_3, %i32 [concrete = constants.%array_type] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %array_type [concrete = constants.%.761] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %array_type [concrete = constants.%.2b2] // CHECK:STDOUT: %return.param: ref %array_type = out_param call_param0 // CHECK:STDOUT: %return: ref %array_type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %b.param_patt: %pattern_type.bec = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.bec = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.771 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.771 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %b.param: %array_type = value_param call_param0 // CHECK:STDOUT: %.loc17: type = splice_block %array_type [concrete = constants.%array_type] { @@ -155,114 +155,114 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: fn @G(%b.param: %array_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pb.patt: %pattern_type.7b5 = ref_binding_pattern pb [concrete] -// CHECK:STDOUT: %pb.var_patt: %pattern_type.7b5 = var_pattern %pb.patt [concrete] +// CHECK:STDOUT: %pb.patt: %pattern_type.f00 = ref_binding_pattern pb [concrete] +// CHECK:STDOUT: %pb.var_patt: %pattern_type.f00 = var_pattern %pb.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %pb.var: ref %ptr.847 = var %pb.var_patt +// CHECK:STDOUT: %pb.var: ref %ptr.d08 = var %pb.var_patt // CHECK:STDOUT: %b.ref.loc23: %array_type = name_ref b, %b // CHECK:STDOUT: %int_0.loc23: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc23_28: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc23_28.1: = bound_method %int_0.loc23, %impl.elem0.loc23_28 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc23_28: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc23_28.1: = bound_method %int_0.loc23, %impl.elem0.loc23_28 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc23_28: = specific_function %impl.elem0.loc23_28, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc23_28.2: = bound_method %int_0.loc23, %specific_fn.loc23_28 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23: init %i32 = call %bound_method.loc23_28.2(%int_0.loc23) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc23_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc23_28.2: %i32 = converted %int_0.loc23, %.loc23_28.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc23_28.2: = bound_method %int_0.loc23, %specific_fn.loc23_28 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23: init %i32 = call %bound_method.loc23_28.2(%int_0.loc23) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc23_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc23_28.2: %i32 = converted %int_0.loc23, %.loc23_28.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc23_29.1: ref %array_type = value_as_ref %b.ref.loc23 // CHECK:STDOUT: %.loc23_29.2: ref %i32 = array_index %.loc23_29.1, %.loc23_28.2 // CHECK:STDOUT: %.loc23_29.3: %i32 = acquire_value %.loc23_29.2 -// CHECK:STDOUT: %addr.loc23: %ptr.847 = addr_of [concrete = ] -// CHECK:STDOUT: %impl.elem0.loc23_25: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %addr.loc23: %ptr.d08 = addr_of [concrete = ] +// CHECK:STDOUT: %impl.elem0.loc23_25: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc23_25.1: = bound_method %addr.loc23, %impl.elem0.loc23_25 [concrete = ] // CHECK:STDOUT: %specific_fn.loc23_25: = specific_function %impl.elem0.loc23_25, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc23_25.2: = bound_method %addr.loc23, %specific_fn.loc23_25 [concrete = ] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc23: init %ptr.847 = call %bound_method.loc23_25.2(%addr.loc23) [concrete = ] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc23: init %ptr.d08 = call %bound_method.loc23_25.2(%addr.loc23) [concrete = ] // CHECK:STDOUT: assign %pb.var, %ptr.as.Copy.impl.Op.call.loc23 -// CHECK:STDOUT: %.loc23_21: type = splice_block %ptr.loc23 [concrete = constants.%ptr.847] { +// CHECK:STDOUT: %.loc23_21: type = splice_block %ptr.loc23 [concrete = constants.%ptr.d08] { // CHECK:STDOUT: %i32.loc23: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr.loc23: type = ptr_type %i32.loc23 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr.loc23: type = ptr_type %i32.loc23 [concrete = constants.%ptr.d08] // CHECK:STDOUT: } -// CHECK:STDOUT: %pb: ref %ptr.847 = ref_binding pb, %pb.var +// CHECK:STDOUT: %pb: ref %ptr.d08 = ref_binding pb, %pb.var // CHECK:STDOUT: %b.ref.loc28: %array_type = name_ref b, %b // CHECK:STDOUT: %int_0.loc28: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc28_5: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc28_5.1: = bound_method %int_0.loc28, %impl.elem0.loc28_5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc28_5: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc28_5.1: = bound_method %int_0.loc28, %impl.elem0.loc28_5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc28_5: = specific_function %impl.elem0.loc28_5, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc28_5.2: = bound_method %int_0.loc28, %specific_fn.loc28_5 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc28_5: init %i32 = call %bound_method.loc28_5.2(%int_0.loc28) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc28_5.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc28_5 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc28_5.2: %i32 = converted %int_0.loc28, %.loc28_5.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc28_5.2: = bound_method %int_0.loc28, %specific_fn.loc28_5 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc28_5: init %i32 = call %bound_method.loc28_5.2(%int_0.loc28) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc28_5.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc28_5 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc28_5.2: %i32 = converted %int_0.loc28, %.loc28_5.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc28_6.1: ref %array_type = value_as_ref %b.ref.loc28 // CHECK:STDOUT: %.loc28_6.2: ref %i32 = array_index %.loc28_6.1, %.loc28_5.2 // CHECK:STDOUT: %.loc28_6.3: %i32 = acquire_value %.loc28_6.2 // CHECK:STDOUT: %int_4.loc28: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc28_8: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc28_8.1: = bound_method %int_4.loc28, %impl.elem0.loc28_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe] +// CHECK:STDOUT: %impl.elem0.loc28_8: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc28_8.1: = bound_method %int_4.loc28, %impl.elem0.loc28_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad] // CHECK:STDOUT: %specific_fn.loc28_8: = specific_function %impl.elem0.loc28_8, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc28_8.2: = bound_method %int_4.loc28, %specific_fn.loc28_8 [concrete = constants.%bound_method.9f5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc28_8: init %i32 = call %bound_method.loc28_8.2(%int_4.loc28) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc28_8: init %i32 = converted %int_4.loc28, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc28_8 [concrete = constants.%int_4.a4d] +// CHECK:STDOUT: %bound_method.loc28_8.2: = bound_method %int_4.loc28, %specific_fn.loc28_8 [concrete = constants.%bound_method.b7a] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc28_8: init %i32 = call %bound_method.loc28_8.2(%int_4.loc28) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc28_8: init %i32 = converted %int_4.loc28, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc28_8 [concrete = constants.%int_4.4eb] // CHECK:STDOUT: assign %.loc28_6.3, %.loc28_8 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pf.patt: %pattern_type.7b5 = ref_binding_pattern pf [concrete] -// CHECK:STDOUT: %pf.var_patt: %pattern_type.7b5 = var_pattern %pf.patt [concrete] +// 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: } -// CHECK:STDOUT: %pf.var: ref %ptr.847 = var %pf.var_patt +// CHECK:STDOUT: %pf.var: ref %ptr.d08 = var %pf.var_patt // CHECK:STDOUT: %F.ref.loc36: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %.loc36_28.1: ref %array_type = temporary_storage // CHECK:STDOUT: %F.call.loc36: init %array_type to %.loc36_28.1 = call %F.ref.loc36() // CHECK:STDOUT: %int_0.loc36: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc36_28.2: ref %array_type = temporary %.loc36_28.1, %F.call.loc36 -// CHECK:STDOUT: %impl.elem0.loc36_30: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc36_30.1: = bound_method %int_0.loc36, %impl.elem0.loc36_30 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc36_30: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc36_30.1: = bound_method %int_0.loc36, %impl.elem0.loc36_30 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc36_30: = specific_function %impl.elem0.loc36_30, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc36_30.2: = bound_method %int_0.loc36, %specific_fn.loc36_30 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc36: init %i32 = call %bound_method.loc36_30.2(%int_0.loc36) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc36_30.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc36 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc36_30.2: %i32 = converted %int_0.loc36, %.loc36_30.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc36_30.2: = bound_method %int_0.loc36, %specific_fn.loc36_30 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc36: init %i32 = call %bound_method.loc36_30.2(%int_0.loc36) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc36_30.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc36 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc36_30.2: %i32 = converted %int_0.loc36, %.loc36_30.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc36_31.1: ref %i32 = array_index %.loc36_28.2, %.loc36_30.2 // CHECK:STDOUT: %.loc36_31.2: %i32 = acquire_value %.loc36_31.1 -// CHECK:STDOUT: %addr.loc36: %ptr.847 = addr_of [concrete = ] -// CHECK:STDOUT: %impl.elem0.loc36_25: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %addr.loc36: %ptr.d08 = addr_of [concrete = ] +// CHECK:STDOUT: %impl.elem0.loc36_25: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc36_25.1: = bound_method %addr.loc36, %impl.elem0.loc36_25 [concrete = ] // CHECK:STDOUT: %specific_fn.loc36_25: = specific_function %impl.elem0.loc36_25, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc36_25.2: = bound_method %addr.loc36, %specific_fn.loc36_25 [concrete = ] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc36: init %ptr.847 = call %bound_method.loc36_25.2(%addr.loc36) [concrete = ] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc36: init %ptr.d08 = call %bound_method.loc36_25.2(%addr.loc36) [concrete = ] // CHECK:STDOUT: assign %pf.var, %ptr.as.Copy.impl.Op.call.loc36 -// CHECK:STDOUT: %.loc36_21: type = splice_block %ptr.loc36 [concrete = constants.%ptr.847] { +// CHECK:STDOUT: %.loc36_21: type = splice_block %ptr.loc36 [concrete = constants.%ptr.d08] { // CHECK:STDOUT: %i32.loc36: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr.loc36: type = ptr_type %i32.loc36 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr.loc36: type = ptr_type %i32.loc36 [concrete = constants.%ptr.d08] // CHECK:STDOUT: } -// CHECK:STDOUT: %pf: ref %ptr.847 = ref_binding pf, %pf.var +// CHECK:STDOUT: %pf: ref %ptr.d08 = ref_binding pf, %pf.var // CHECK:STDOUT: %F.ref.loc41: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %.loc41_5.1: ref %array_type = temporary_storage // CHECK:STDOUT: %F.call.loc41: init %array_type to %.loc41_5.1 = call %F.ref.loc41() // CHECK:STDOUT: %int_0.loc41: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc41_5.2: ref %array_type = temporary %.loc41_5.1, %F.call.loc41 -// CHECK:STDOUT: %impl.elem0.loc41_7: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc41_7.1: = bound_method %int_0.loc41, %impl.elem0.loc41_7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc41_7: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc41_7.1: = bound_method %int_0.loc41, %impl.elem0.loc41_7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc41_7: = specific_function %impl.elem0.loc41_7, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc41_7.2: = bound_method %int_0.loc41, %specific_fn.loc41_7 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc41_7: init %i32 = call %bound_method.loc41_7.2(%int_0.loc41) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc41_7.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc41_7 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc41_7.2: %i32 = converted %int_0.loc41, %.loc41_7.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc41_7.2: = bound_method %int_0.loc41, %specific_fn.loc41_7 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc41_7: init %i32 = call %bound_method.loc41_7.2(%int_0.loc41) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc41_7.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc41_7 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc41_7.2: %i32 = converted %int_0.loc41, %.loc41_7.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc41_8.1: ref %i32 = array_index %.loc41_5.2, %.loc41_7.2 // CHECK:STDOUT: %.loc41_8.2: %i32 = acquire_value %.loc41_8.1 // CHECK:STDOUT: %int_4.loc41: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc41_10: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc41_10.1: = bound_method %int_4.loc41, %impl.elem0.loc41_10 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe] +// CHECK:STDOUT: %impl.elem0.loc41_10: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc41_10.1: = bound_method %int_4.loc41, %impl.elem0.loc41_10 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad] // CHECK:STDOUT: %specific_fn.loc41_10: = specific_function %impl.elem0.loc41_10, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc41_10.2: = bound_method %int_4.loc41, %specific_fn.loc41_10 [concrete = constants.%bound_method.9f5] -// 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.a4d] -// CHECK:STDOUT: %.loc41_10: init %i32 = converted %int_4.loc41, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc41_10 [concrete = constants.%int_4.a4d] +// CHECK:STDOUT: %bound_method.loc41_10.2: = bound_method %int_4.loc41, %specific_fn.loc41_10 [concrete = constants.%bound_method.b7a] +// 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.2dd605.3 +// 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.2dd605.3 +// 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.2dd605.4 +// 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.2dd605.4 +// 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: return // CHECK:STDOUT: } @@ -279,5 +279,5 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc36(%self.param: ref %ptr.847) = "no_op"; +// CHECK:STDOUT: fn @Destroy.Op.loc36(%self.param: ref %ptr.d08) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/index/fail_invalid_base.carbon b/toolchain/check/testdata/index/fail_invalid_base.carbon index d756f59d9ff7..65114ddf3bb1 100644 --- a/toolchain/check/testdata/index/fail_invalid_base.carbon +++ b/toolchain/check/testdata/index/fail_invalid_base.carbon @@ -46,7 +46,7 @@ var d: i32 = {.a: i32, .b: i32}[0]; // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] @@ -54,9 +54,9 @@ var d: i32 = {.a: i32, .b: i32}[0]; // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.a.b.cfd = struct_value (%int_1, %int_2) [concrete] -// CHECK:STDOUT: %IndexWith.type.579: type = generic_interface_type @IndexWith [concrete] -// CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.579 = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.a.b.b47: type = struct_type {.a: %i32, .b: %i32} [concrete] +// CHECK:STDOUT: %IndexWith.type.df6: type = generic_interface_type @IndexWith [concrete] +// CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.df6 = struct_value () [concrete] +// CHECK:STDOUT: %struct_type.a.b.b4c: type = struct_type {.a: %i32, .b: %i32} [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -67,7 +67,7 @@ var d: i32 = {.a: i32, .b: i32}[0]; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.IndexWith: %IndexWith.type.579 = import_ref Core//prelude/operators/index, IndexWith, loaded [concrete = constants.%IndexWith.generic] +// CHECK:STDOUT: %Core.IndexWith: %IndexWith.type.df6 = import_ref Core//prelude/operators/index, IndexWith, loaded [concrete = constants.%IndexWith.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -83,30 +83,30 @@ var d: i32 = {.a: i32, .b: i32}[0]; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %N: = namespace [concrete] {} // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.104 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var %a.var_patt [concrete] // CHECK:STDOUT: %i32.loc21: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: ref %i32 = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt [concrete] // CHECK:STDOUT: %i32.loc28: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: ref %i32 = ref_binding b, %b.var [concrete = %b.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.104 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.104 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.6b6 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.6b6 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %i32 = var %c.var_patt [concrete] // CHECK:STDOUT: %i32.loc34: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %c: ref %i32 = ref_binding c, %c.var [concrete = %c.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.104 = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.104 = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.6b6 = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.6b6 = var_pattern %d.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %d.var: ref %i32 = var %d.var_patt [concrete] // CHECK:STDOUT: %i32.loc40: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -132,7 +132,7 @@ var d: i32 = {.a: i32, .b: i32}[0]; // CHECK:STDOUT: assign file.%c.var, // CHECK:STDOUT: %i32.loc40_19: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc40_28: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b47] +// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b4c] // CHECK:STDOUT: %int_0.loc40: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: assign file.%d.var, // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/index/fail_name_not_found.carbon b/toolchain/check/testdata/index/fail_name_not_found.carbon index 0aacbf53ded7..36c738e6d976 100644 --- a/toolchain/check/testdata/index/fail_name_not_found.carbon +++ b/toolchain/check/testdata/index/fail_name_not_found.carbon @@ -31,11 +31,11 @@ fn Main() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [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.790b3b.2: type = fn_type @Destroy.Op.loc20_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -62,8 +62,8 @@ fn Main() { // CHECK:STDOUT: fn @Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt // CHECK:STDOUT: %a.ref: = name_ref a, [concrete = ] @@ -71,7 +71,7 @@ fn Main() { // CHECK:STDOUT: assign %b.var, // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: ref %i32 = ref_binding b, %b.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %b.var, constants.%Destroy.Op.2dd605.2 +// 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: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/index/fail_negative_indexing.carbon b/toolchain/check/testdata/index/fail_negative_indexing.carbon index d2921073e586..e54ea018170e 100644 --- a/toolchain/check/testdata/index/fail_negative_indexing.carbon +++ b/toolchain/check/testdata/index/fail_negative_indexing.carbon @@ -30,53 +30,53 @@ var d: i32 = c[-10]; // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_2, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.f35: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.7b0: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %int_42.20e: Core.IntLiteral = int_value 42 [concrete] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.df5: %tuple.type.f94 = tuple_value (%int_42.20e, %int_42.20e) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.21e: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.98e: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_42.daa: %i32 = int_value 42 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// 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: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// 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.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: %int_1: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_42.daa, %int_42.daa) [concrete] +// CHECK:STDOUT: %array: %array_type = tuple_value (%int_42.ac4, %int_42.ac4) [concrete] // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [concrete] // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] // CHECK:STDOUT: %Negate.impl_witness: = impl_witness imports.%Negate.impl_witness_table [concrete] // CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, (%Negate.impl_witness) [concrete] -// CHECK:STDOUT: %Negate.WithSelf.Op.type.309: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] -// CHECK:STDOUT: %.f38: type = fn_type_with_self_type %Negate.WithSelf.Op.type.309, %Negate.facet [concrete] +// CHECK:STDOUT: %Negate.WithSelf.Op.type.802: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] +// CHECK:STDOUT: %.765: type = fn_type_with_self_type %Negate.WithSelf.Op.type.802, %Negate.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.type: type = fn_type @Core.IntLiteral.as.Negate.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op: %Core.IntLiteral.as.Negate.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.bound: = bound_method %int_10, %Core.IntLiteral.as.Negate.impl.Op [concrete] // CHECK:STDOUT: %int_-10.06d: Core.IntLiteral = int_value -10 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.b1b: = bound_method %int_-10.06d, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.682: = bound_method %int_-10.06d, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_-10.0d4: %i32 = int_value -10 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f93: = bound_method %int_-10.06d, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %bound_method.27d: = bound_method %int_-10.06d, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_-10.642: %i32 = int_value -10 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -89,16 +89,16 @@ var d: i32 = c[-10]; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Negate: type = import_ref Core//prelude/parts/int_literal, Negate, loaded [concrete = constants.%Negate.type] // CHECK:STDOUT: %Core.import_ref.abd = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63: %Core.IntLiteral.as.Negate.impl.Op.type = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] -// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.f63), @Core.IntLiteral.as.Negate.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Core.IntLiteral.as.Negate.impl.Op.type = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] +// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.9c3), @Core.IntLiteral.as.Negate.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -109,8 +109,8 @@ var d: i32 = c[-10]; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.f35 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.f35 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.7b0 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.7b0 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %array_type = var %c.var_patt [concrete] // CHECK:STDOUT: %.loc15: type = splice_block %array_type [concrete = constants.%array_type] { @@ -120,8 +120,8 @@ var d: i32 = c[-10]; // CHECK:STDOUT: } // CHECK:STDOUT: %c: ref %array_type = ref_binding c, %c.var [concrete = %c.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.104 = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.104 = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.6b6 = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.6b6 = var_pattern %d.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %d.var: ref %i32 = var %d.var_patt [concrete] // CHECK:STDOUT: %i32.loc20: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -133,44 +133,44 @@ var d: i32 = c[-10]; // CHECK:STDOUT: %int_42.loc15_25: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] // CHECK:STDOUT: %int_42.loc15_29: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] // CHECK:STDOUT: %.loc15_31.1: %tuple.type.f94 = tuple_literal (%int_42.loc15_25, %int_42.loc15_29) [concrete = constants.%tuple.df5] -// CHECK:STDOUT: %impl.elem0.loc15_31.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_31.1: = bound_method %int_42.loc15_25, %impl.elem0.loc15_31.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.21e] +// CHECK:STDOUT: %impl.elem0.loc15_31.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_31.1: = bound_method %int_42.loc15_25, %impl.elem0.loc15_31.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf3] // CHECK:STDOUT: %specific_fn.loc15_31.1: = specific_function %impl.elem0.loc15_31.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_31.2: = bound_method %int_42.loc15_25, %specific_fn.loc15_31.1 [concrete = constants.%bound_method.98e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_31.1: init %i32 = call %bound_method.loc15_31.2(%int_42.loc15_25) [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %.loc15_31.2: init %i32 = converted %int_42.loc15_25, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_31.1 [concrete = constants.%int_42.daa] +// CHECK:STDOUT: %bound_method.loc15_31.2: = bound_method %int_42.loc15_25, %specific_fn.loc15_31.1 [concrete = constants.%bound_method.098] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_31.1: init %i32 = call %bound_method.loc15_31.2(%int_42.loc15_25) [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %.loc15_31.2: init %i32 = converted %int_42.loc15_25, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_31.1 [concrete = constants.%int_42.ac4] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc15_31.3: ref %i32 = array_index file.%c.var, %int_0 -// CHECK:STDOUT: %.loc15_31.4: init %i32 to %.loc15_31.3 = in_place_init %.loc15_31.2 [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %impl.elem0.loc15_31.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_31.3: = bound_method %int_42.loc15_29, %impl.elem0.loc15_31.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.21e] +// CHECK:STDOUT: %.loc15_31.4: init %i32 to %.loc15_31.3 = in_place_init %.loc15_31.2 [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %impl.elem0.loc15_31.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_31.3: = bound_method %int_42.loc15_29, %impl.elem0.loc15_31.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf3] // CHECK:STDOUT: %specific_fn.loc15_31.2: = specific_function %impl.elem0.loc15_31.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_31.4: = bound_method %int_42.loc15_29, %specific_fn.loc15_31.2 [concrete = constants.%bound_method.98e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_31.2: init %i32 = call %bound_method.loc15_31.4(%int_42.loc15_29) [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %.loc15_31.5: init %i32 = converted %int_42.loc15_29, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_31.2 [concrete = constants.%int_42.daa] +// CHECK:STDOUT: %bound_method.loc15_31.4: = bound_method %int_42.loc15_29, %specific_fn.loc15_31.2 [concrete = constants.%bound_method.098] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_31.2: init %i32 = call %bound_method.loc15_31.4(%int_42.loc15_29) [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %.loc15_31.5: init %i32 = converted %int_42.loc15_29, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_31.2 [concrete = constants.%int_42.ac4] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %.loc15_31.6: ref %i32 = array_index file.%c.var, %int_1 -// CHECK:STDOUT: %.loc15_31.7: init %i32 to %.loc15_31.6 = in_place_init %.loc15_31.5 [concrete = constants.%int_42.daa] +// CHECK:STDOUT: %.loc15_31.7: init %i32 to %.loc15_31.6 = in_place_init %.loc15_31.5 [concrete = constants.%int_42.ac4] // CHECK:STDOUT: %.loc15_31.8: init %array_type to file.%c.var = array_init (%.loc15_31.4, %.loc15_31.7) [concrete = constants.%array] // CHECK:STDOUT: %.loc15_1: init %array_type = converted %.loc15_31.1, %.loc15_31.8 [concrete = constants.%array] // CHECK:STDOUT: assign file.%c.var, %.loc15_1 // CHECK:STDOUT: %c.ref: ref %array_type = name_ref c, file.%c [concrete = file.%c.var] // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [concrete = constants.%int_10] -// CHECK:STDOUT: %impl.elem1: %.f38 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.765 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] // CHECK:STDOUT: %bound_method.loc20_16.1: = bound_method %int_10, %impl.elem1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op.bound] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.call: init Core.IntLiteral = call %bound_method.loc20_16.1(%int_10) [concrete = constants.%int_-10.06d] -// CHECK:STDOUT: %impl.elem0.loc20_16: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc20_16.2: = bound_method %Core.IntLiteral.as.Negate.impl.Op.call, %impl.elem0.loc20_16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.b1b] +// CHECK:STDOUT: %impl.elem0.loc20_16: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc20_16.2: = bound_method %Core.IntLiteral.as.Negate.impl.Op.call, %impl.elem0.loc20_16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f93] // CHECK:STDOUT: %specific_fn.loc20_16: = specific_function %impl.elem0.loc20_16, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc20_16.3: = bound_method %Core.IntLiteral.as.Negate.impl.Op.call, %specific_fn.loc20_16 [concrete = constants.%bound_method.682] +// CHECK:STDOUT: %bound_method.loc20_16.3: = bound_method %Core.IntLiteral.as.Negate.impl.Op.call, %specific_fn.loc20_16 [concrete = constants.%bound_method.27d] // CHECK:STDOUT: %.loc20_16.1: Core.IntLiteral = value_of_initializer %Core.IntLiteral.as.Negate.impl.Op.call [concrete = constants.%int_-10.06d] // CHECK:STDOUT: %.loc20_16.2: Core.IntLiteral = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc20_16.1 [concrete = constants.%int_-10.06d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %i32 = call %bound_method.loc20_16.3(%.loc20_16.2) [concrete = constants.%int_-10.0d4] -// CHECK:STDOUT: %.loc20_16.3: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_-10.0d4] -// CHECK:STDOUT: %.loc20_16.4: %i32 = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc20_16.3 [concrete = constants.%int_-10.0d4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %i32 = call %bound_method.loc20_16.3(%.loc20_16.2) [concrete = constants.%int_-10.642] +// CHECK:STDOUT: %.loc20_16.3: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_-10.642] +// CHECK:STDOUT: %.loc20_16.4: %i32 = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc20_16.3 [concrete = constants.%int_-10.642] // CHECK:STDOUT: %.loc20_19.1: ref %i32 = array_index %c.ref, %.loc20_16.4 [concrete = ] // CHECK:STDOUT: %.loc20_19.2: %i32 = acquire_value %.loc20_19.1 [concrete = ] -// CHECK:STDOUT: %impl.elem0.loc20_19: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc20_19: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc20_19.1: = bound_method %.loc20_19.2, %impl.elem0.loc20_19 [concrete = ] // CHECK:STDOUT: %specific_fn.loc20_19: = specific_function %impl.elem0.loc20_19, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc20_19.2: = bound_method %.loc20_19.2, %specific_fn.loc20_19 [concrete = ] diff --git a/toolchain/check/testdata/index/fail_non_tuple_access.carbon b/toolchain/check/testdata/index/fail_non_tuple_access.carbon index 09ee37cd5c8c..dfa900b3f3a0 100644 --- a/toolchain/check/testdata/index/fail_non_tuple_access.carbon +++ b/toolchain/check/testdata/index/fail_non_tuple_access.carbon @@ -27,8 +27,8 @@ fn Main() { // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %IndexWith.type.579: type = generic_interface_type @IndexWith [concrete] -// CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.579 = struct_value () [concrete] +// CHECK:STDOUT: %IndexWith.type.df6: type = generic_interface_type @IndexWith [concrete] +// CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.df6 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -37,7 +37,7 @@ fn Main() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.IndexWith: %IndexWith.type.579 = import_ref Core//prelude/operators/index, IndexWith, loaded [concrete = constants.%IndexWith.generic] +// CHECK:STDOUT: %Core.IndexWith: %IndexWith.type.df6 = import_ref Core//prelude/operators/index, IndexWith, loaded [concrete = constants.%IndexWith.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/interface/as_type_of_type.carbon b/toolchain/check/testdata/interface/as_type_of_type.carbon index c0e54c1d007c..fe957067009b 100644 --- a/toolchain/check/testdata/interface/as_type_of_type.carbon +++ b/toolchain/check/testdata/interface/as_type_of_type.carbon @@ -26,7 +26,7 @@ fn F(T:! Empty) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Empty.type: type = facet_type <@Empty> [concrete] -// CHECK:STDOUT: %Self.2f3: %Empty.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.d44: %Empty.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] @@ -34,30 +34,30 @@ fn F(T:! Empty) { // CHECK:STDOUT: %Empty.facet: %Empty.type = facet_value %C, (%Empty.impl_witness) [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.e97: type = pattern_type %Empty.type [concrete] -// CHECK:STDOUT: %T.1f1: %Empty.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.894: type = pattern_type %Empty.type [concrete] +// CHECK:STDOUT: %T.4e8: %Empty.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.52d: type = facet_access_type %T.1f1 [symbolic] -// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.52d [symbolic] -// CHECK:STDOUT: %require_complete.cfc: = require_complete_type %ptr [symbolic] -// CHECK:STDOUT: %pattern_type.eff: type = pattern_type %ptr [symbolic] +// CHECK:STDOUT: %T.as_type.22c: type = facet_access_type %T.4e8 [symbolic] +// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.22c [symbolic] +// CHECK:STDOUT: %require_complete.ee8: = require_complete_type %ptr [symbolic] +// CHECK:STDOUT: %pattern_type.777: type = pattern_type %ptr [symbolic] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness: = lookup_impl_witness %ptr, @DefaultOrUnformed [symbolic] -// CHECK:STDOUT: %.64f: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%ptr) [symbolic] +// CHECK:STDOUT: %.50b: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%ptr) [symbolic] // CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr, (%DefaultOrUnformed.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.b71: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet) [symbolic] -// CHECK:STDOUT: %.de2: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.b71, %DefaultOrUnformed.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.301: %.de2 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.10b: = specific_impl_function %impl.elem0.301, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.176: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet) [symbolic] +// CHECK:STDOUT: %.ddb: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.176, %DefaultOrUnformed.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.98b: %.ddb = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.f14: = specific_impl_function %impl.elem0.98b, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet) [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %ptr, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr, (%Destroy.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.2e3: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic] -// CHECK:STDOUT: %.018: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.2e3, %Destroy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.3f6: %.018 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.4d6: = specific_impl_function %impl.elem0.3f6, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.67a: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic] +// CHECK:STDOUT: %.0f5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.67a, %Destroy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.584: %.0f5 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e4d: = specific_impl_function %impl.elem0.584, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -86,18 +86,18 @@ fn F(T:! Empty) { // CHECK:STDOUT: %Empty.ref: type = name_ref Empty, file.%Empty.decl [concrete = constants.%Empty.type] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %T.patt: %pattern_type.e97 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.894 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc21: type = splice_block %Empty.ref [concrete = constants.%Empty.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Empty.ref: type = name_ref Empty, file.%Empty.decl [concrete = constants.%Empty.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc21_7.2: %Empty.type = symbolic_binding T, 0 [symbolic = %T.loc21_7.1 (constants.%T.1f1)] +// CHECK:STDOUT: %T.loc21_7.2: %Empty.type = symbolic_binding T, 0 [symbolic = %T.loc21_7.1 (constants.%T.4e8)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Empty { -// CHECK:STDOUT: %Self: %Empty.type = symbolic_binding Self, 0 [symbolic = constants.%Self.2f3] +// CHECK:STDOUT: %Self: %Empty.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d44] // CHECK:STDOUT: %Empty.WithSelf.decl = interface_with_self_decl @Empty [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -125,59 +125,59 @@ fn F(T:! Empty) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc21_7.2: %Empty.type) { -// CHECK:STDOUT: %T.loc21_7.1: %Empty.type = symbolic_binding T, 0 [symbolic = %T.loc21_7.1 (constants.%T.1f1)] +// CHECK:STDOUT: %T.loc21_7.1: %Empty.type = symbolic_binding T, 0 [symbolic = %T.loc21_7.1 (constants.%T.4e8)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc22_18.2: type = facet_access_type %T.loc21_7.1 [symbolic = %T.as_type.loc22_18.2 (constants.%T.as_type.52d)] +// CHECK:STDOUT: %T.as_type.loc22_18.2: type = facet_access_type %T.loc21_7.1 [symbolic = %T.as_type.loc22_18.2 (constants.%T.as_type.22c)] // CHECK:STDOUT: %ptr.loc22_18.2: type = ptr_type %T.as_type.loc22_18.2 [symbolic = %ptr.loc22_18.2 (constants.%ptr)] -// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc22_18.2 [symbolic = %require_complete (constants.%require_complete.cfc)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc22_18.2 [symbolic = %pattern_type (constants.%pattern_type.eff)] -// CHECK:STDOUT: %.loc22_19.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%ptr.loc22_18.2) [symbolic = %.loc22_19.3 (constants.%.64f)] +// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc22_18.2 [symbolic = %require_complete (constants.%require_complete.ee8)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc22_18.2 [symbolic = %pattern_type (constants.%pattern_type.777)] +// CHECK:STDOUT: %.loc22_19.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%ptr.loc22_18.2) [symbolic = %.loc22_19.3 (constants.%.50b)] // CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness: = lookup_impl_witness %ptr.loc22_18.2, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness (constants.%DefaultOrUnformed.lookup_impl_witness)] // CHECK:STDOUT: %DefaultOrUnformed.facet.loc22_19.2: %DefaultOrUnformed.type = facet_value %ptr.loc22_18.2, (%DefaultOrUnformed.lookup_impl_witness) [symbolic = %DefaultOrUnformed.facet.loc22_19.2 (constants.%DefaultOrUnformed.facet)] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc22_19.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type (constants.%DefaultOrUnformed.WithSelf.Op.type.b71)] -// CHECK:STDOUT: %.loc22_19.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type, %DefaultOrUnformed.facet.loc22_19.2 [symbolic = %.loc22_19.4 (constants.%.de2)] -// CHECK:STDOUT: %impl.elem0.loc22_19.2: @F.%.loc22_19.4 (%.de2) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_19.2 (constants.%impl.elem0.301)] -// CHECK:STDOUT: %specific_impl_fn.loc22_19.2: = specific_impl_function %impl.elem0.loc22_19.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc22_19.2) [symbolic = %specific_impl_fn.loc22_19.2 (constants.%specific_impl_fn.10b)] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc22_19.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type (constants.%DefaultOrUnformed.WithSelf.Op.type.176)] +// CHECK:STDOUT: %.loc22_19.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type, %DefaultOrUnformed.facet.loc22_19.2 [symbolic = %.loc22_19.4 (constants.%.ddb)] +// CHECK:STDOUT: %impl.elem0.loc22_19.2: @F.%.loc22_19.4 (%.ddb) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_19.2 (constants.%impl.elem0.98b)] +// CHECK:STDOUT: %specific_impl_fn.loc22_19.2: = specific_impl_function %impl.elem0.loc22_19.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc22_19.2) [symbolic = %specific_impl_fn.loc22_19.2 (constants.%specific_impl_fn.f14)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %ptr.loc22_18.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc22_18.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.2e3)] -// CHECK:STDOUT: %.loc22_3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc22_3 (constants.%.018)] -// CHECK:STDOUT: %impl.elem0.loc22_3.2: @F.%.loc22_3 (%.018) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_3.2 (constants.%impl.elem0.3f6)] -// CHECK:STDOUT: %specific_impl_fn.loc22_3.2: = specific_impl_function %impl.elem0.loc22_3.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc22_3.2 (constants.%specific_impl_fn.4d6)] +// 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.67a)] +// CHECK:STDOUT: %.loc22_3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc22_3 (constants.%.0f5)] +// CHECK:STDOUT: %impl.elem0.loc22_3.2: @F.%.loc22_3 (%.0f5) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_3.2 (constants.%impl.elem0.584)] +// CHECK:STDOUT: %specific_impl_fn.loc22_3.2: = specific_impl_function %impl.elem0.loc22_3.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc22_3.2 (constants.%specific_impl_fn.e4d)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.eff) = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: @F.%pattern_type (%pattern_type.eff) = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.777) = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: @F.%pattern_type (%pattern_type.777) = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref @F.%ptr.loc22_18.2 (%ptr) = var %x.var_patt // CHECK:STDOUT: %DefaultOrUnformed.facet.loc22_19.1: %DefaultOrUnformed.type = facet_value constants.%ptr, (constants.%DefaultOrUnformed.lookup_impl_witness) [symbolic = %DefaultOrUnformed.facet.loc22_19.2 (constants.%DefaultOrUnformed.facet)] // CHECK:STDOUT: %.loc22_19.1: %DefaultOrUnformed.type = converted constants.%ptr, %DefaultOrUnformed.facet.loc22_19.1 [symbolic = %DefaultOrUnformed.facet.loc22_19.2 (constants.%DefaultOrUnformed.facet)] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc22_19.1 [symbolic = %ptr.loc22_18.2 (constants.%ptr)] // CHECK:STDOUT: %.loc22_19.2: type = converted %.loc22_19.1, %as_type [symbolic = %ptr.loc22_18.2 (constants.%ptr)] -// CHECK:STDOUT: %impl.elem0.loc22_19.1: @F.%.loc22_19.4 (%.de2) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_19.2 (constants.%impl.elem0.301)] -// CHECK:STDOUT: %specific_impl_fn.loc22_19.1: = specific_impl_function %impl.elem0.loc22_19.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet) [symbolic = %specific_impl_fn.loc22_19.2 (constants.%specific_impl_fn.10b)] +// CHECK:STDOUT: %impl.elem0.loc22_19.1: @F.%.loc22_19.4 (%.ddb) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_19.2 (constants.%impl.elem0.98b)] +// CHECK:STDOUT: %specific_impl_fn.loc22_19.1: = specific_impl_function %impl.elem0.loc22_19.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet) [symbolic = %specific_impl_fn.loc22_19.2 (constants.%specific_impl_fn.f14)] // CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.call: init @F.%ptr.loc22_18.2 (%ptr) = call %specific_impl_fn.loc22_19.1() // CHECK:STDOUT: assign %x.var, %DefaultOrUnformed.WithSelf.Op.call // CHECK:STDOUT: %.loc22_18.1: type = splice_block %ptr.loc22_18.1 [symbolic = %ptr.loc22_18.2 (constants.%ptr)] { -// CHECK:STDOUT: %T.ref: %Empty.type = name_ref T, %T.loc21_7.2 [symbolic = %T.loc21_7.1 (constants.%T.1f1)] -// CHECK:STDOUT: %T.as_type.loc22_18.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc22_18.2 (constants.%T.as_type.52d)] -// CHECK:STDOUT: %.loc22_18.2: type = converted %T.ref, %T.as_type.loc22_18.1 [symbolic = %T.as_type.loc22_18.2 (constants.%T.as_type.52d)] +// CHECK:STDOUT: %T.ref: %Empty.type = name_ref T, %T.loc21_7.2 [symbolic = %T.loc21_7.1 (constants.%T.4e8)] +// CHECK:STDOUT: %T.as_type.loc22_18.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc22_18.2 (constants.%T.as_type.22c)] +// CHECK:STDOUT: %.loc22_18.2: type = converted %T.ref, %T.as_type.loc22_18.1 [symbolic = %T.as_type.loc22_18.2 (constants.%T.as_type.22c)] // CHECK:STDOUT: %ptr.loc22_18.1: type = ptr_type %.loc22_18.2 [symbolic = %ptr.loc22_18.2 (constants.%ptr)] // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref @F.%ptr.loc22_18.2 (%ptr) = ref_binding x, %x.var -// CHECK:STDOUT: %impl.elem0.loc22_3.1: @F.%.loc22_3 (%.018) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_3.2 (constants.%impl.elem0.3f6)] +// CHECK:STDOUT: %impl.elem0.loc22_3.1: @F.%.loc22_3 (%.0f5) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_3.2 (constants.%impl.elem0.584)] // CHECK:STDOUT: %bound_method.loc22_3.1: = bound_method %x.var, %impl.elem0.loc22_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc22_3.1: = specific_impl_function %impl.elem0.loc22_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc22_3.2 (constants.%specific_impl_fn.4d6)] +// CHECK:STDOUT: %specific_impl_fn.loc22_3.1: = specific_impl_function %impl.elem0.loc22_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc22_3.2 (constants.%specific_impl_fn.e4d)] // CHECK:STDOUT: %bound_method.loc22_3.2: = bound_method %x.var, %specific_impl_fn.loc22_3.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc22_3.2(%x.var) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Empty.WithSelf(constants.%Self.2f3) { +// CHECK:STDOUT: specific @Empty.WithSelf(constants.%Self.d44) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -185,7 +185,7 @@ fn F(T:! Empty) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.1f1) { -// CHECK:STDOUT: %T.loc21_7.1 => constants.%T.1f1 +// CHECK:STDOUT: specific @F(constants.%T.4e8) { +// CHECK:STDOUT: %T.loc21_7.1 => constants.%T.4e8 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/assoc_const_in_generic.carbon b/toolchain/check/testdata/interface/assoc_const_in_generic.carbon index 6778c9d08b47..841490a8ccd6 100644 --- a/toolchain/check/testdata/interface/assoc_const_in_generic.carbon +++ b/toolchain/check/testdata/interface/assoc_const_in_generic.carbon @@ -34,33 +34,33 @@ fn H() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %I.type.48c: type = generic_interface_type @I [concrete] +// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %I.generic: %I.type.48c = struct_value () [concrete] -// CHECK:STDOUT: %I.type.50f: type = facet_type <@I, @I(%T)> [symbolic] -// CHECK:STDOUT: %Self.626: %I.type.50f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.generic: %I.type.335 = struct_value () [concrete] +// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%T)> [symbolic] +// CHECK:STDOUT: %Self.191: %I.type.3fe = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %U: type = symbolic_binding U, 2 [symbolic] // CHECK:STDOUT: %.a6b: Core.Form = init_form %U [symbolic] // CHECK:STDOUT: %pattern_type.62e: type = pattern_type %U [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.101: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.626) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.252: %I.WithSelf.F.type.101 = struct_value () [symbolic] -// CHECK:STDOUT: %I.assoc_type.bd7: type = assoc_entity_type @I, @I(%T) [symbolic] -// CHECK:STDOUT: %assoc0.631: %I.assoc_type.bd7 = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.09f: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.191) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.5f2: %I.WithSelf.F.type.09f = struct_value () [symbolic] +// CHECK:STDOUT: %I.assoc_type.b71: type = assoc_entity_type @I, @I(%T) [symbolic] +// CHECK:STDOUT: %assoc0.13b: %I.assoc_type.b71 = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.50f [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %I.type.3fe [symbolic] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%empty_struct_type) [concrete] -// CHECK:STDOUT: %I.type.317: type = facet_type <@I, @I(%empty_struct_type)> [concrete] -// CHECK:STDOUT: %Self.170: %I.type.317 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.dc9: type = fn_type @I.WithSelf.F, @I.WithSelf(%empty_struct_type, %Self.626) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.0fc: %I.WithSelf.F.type.dc9 = struct_value () [symbolic] -// CHECK:STDOUT: %I.assoc_type.4a0: type = assoc_entity_type @I, @I(%empty_struct_type) [concrete] -// CHECK:STDOUT: %assoc0.379: %I.assoc_type.4a0 = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness %I.type.317 [concrete] +// CHECK:STDOUT: %I.type.81d: type = facet_type <@I, @I(%empty_struct_type)> [concrete] +// CHECK:STDOUT: %Self.524: %I.type.81d = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.272: type = fn_type @I.WithSelf.F, @I.WithSelf(%empty_struct_type, %Self.191) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.fb6: %I.WithSelf.F.type.272 = struct_value () [symbolic] +// CHECK:STDOUT: %I.assoc_type.cd3: type = assoc_entity_type @I, @I(%empty_struct_type) [concrete] +// CHECK:STDOUT: %assoc0.a4c: %I.assoc_type.cd3 = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %complete_type: = complete_type_witness %I.type.81d [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -69,7 +69,7 @@ fn H() { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: .H = %H.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %I.decl: %I.type.48c = interface_decl @I [concrete = constants.%I.generic] { +// CHECK:STDOUT: %I.decl: %I.type.335 = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_17.1: type = splice_block %.loc15_17.2 [concrete = type] { @@ -94,15 +94,15 @@ fn H() { // CHECK:STDOUT: %T.loc15_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc15_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc15_14.1)> [symbolic = %I.type (constants.%I.type.50f)] -// CHECK:STDOUT: %Self.loc15_23.2: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self.loc15_23.2 (constants.%Self.626)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc15_14.1)> [symbolic = %I.type (constants.%I.type.3fe)] +// CHECK:STDOUT: %Self.loc15_23.2: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self.loc15_23.2 (constants.%Self.191)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc15_23.1: @I.%I.type (%I.type.50f) = symbolic_binding Self, 1 [symbolic = %Self.loc15_23.2 (constants.%Self.626)] +// CHECK:STDOUT: %Self.loc15_23.1: @I.%I.type (%I.type.3fe) = symbolic_binding Self, 1 [symbolic = %Self.loc15_23.2 (constants.%Self.191)] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.101) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.252)] { +// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.09f) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.5f2)] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 2 [concrete] // CHECK:STDOUT: %return.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.62e) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @I.WithSelf.F.%pattern_type (%pattern_type.62e) = return_slot_pattern %return.param_patt, %U.ref [concrete] @@ -117,7 +117,7 @@ fn H() { // CHECK:STDOUT: %return.param: ref @I.WithSelf.F.%U.loc16_9.1 (%U) = out_param call_param0 // CHECK:STDOUT: %return: ref @I.WithSelf.F.%U.loc16_9.1 (%U) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc16_22.1: @I.WithSelf.%I.assoc_type (%I.assoc_type.bd7) = assoc_entity element0, %I.WithSelf.F.decl [symbolic = %assoc0.loc16_22.2 (constants.%assoc0.631)] +// CHECK:STDOUT: %assoc0.loc16_22.1: @I.WithSelf.%I.assoc_type (%I.assoc_type.b71) = assoc_entity element0, %I.WithSelf.F.decl [symbolic = %assoc0.loc16_22.2 (constants.%assoc0.13b)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc15_23.1 @@ -128,7 +128,7 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%T.loc15_14.2: type, @I.%Self.loc15_23.1: @I.%I.type (%I.type.50f), %U.loc16_9.2: type) { +// CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%T.loc15_14.2: type, @I.%Self.loc15_23.1: @I.%I.type (%I.type.3fe), %U.loc16_9.2: type) { // CHECK:STDOUT: %U.loc16_9.1: type = symbolic_binding U, 2 [symbolic = %U.loc16_9.1 (constants.%U)] // CHECK:STDOUT: %.loc16_21.1: Core.Form = init_form %U.loc16_9.1 [symbolic = %.loc16_21.1 (constants.%.a6b)] // CHECK:STDOUT: %pattern_type: type = pattern_type %U.loc16_9.1 [symbolic = %pattern_type (constants.%pattern_type.62e)] @@ -140,18 +140,18 @@ fn H() { // CHECK:STDOUT: %T.loc19_7.1: type = symbolic_binding T, 0 [symbolic = %T.loc19_7.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type.loc23_6.2: type = facet_type <@I, @I(%T.loc19_7.1)> [symbolic = %I.type.loc23_6.2 (constants.%I.type.50f)] +// CHECK:STDOUT: %I.type.loc23_6.2: type = facet_type <@I, @I(%T.loc19_7.1)> [symbolic = %I.type.loc23_6.2 (constants.%I.type.3fe)] // CHECK:STDOUT: %require_complete: = require_complete_type %I.type.loc23_6.2 [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T.loc19_7.1) [symbolic = %I.assoc_type (constants.%I.assoc_type.bd7)] -// CHECK:STDOUT: %assoc0: @G.%I.assoc_type (%I.assoc_type.bd7) = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [symbolic = %assoc0 (constants.%assoc0.631)] +// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T.loc19_7.1) [symbolic = %I.assoc_type (constants.%I.assoc_type.b71)] +// CHECK:STDOUT: %assoc0: @G.%I.assoc_type (%I.assoc_type.b71) = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [symbolic = %assoc0 (constants.%assoc0.13b)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %I.ref: %I.type.48c = name_ref I, file.%I.decl [concrete = constants.%I.generic] +// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc19_7.2 [symbolic = %T.loc19_7.1 (constants.%T)] -// CHECK:STDOUT: %I.type.loc23_6.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc23_6.2 (constants.%I.type.50f)] -// CHECK:STDOUT: %.loc23: @G.%I.assoc_type (%I.assoc_type.bd7) = specific_constant @I.WithSelf.%assoc0.loc16_22.1, @I.WithSelf(constants.%T, constants.%Self.626) [symbolic = %assoc0 (constants.%assoc0.631)] -// CHECK:STDOUT: %F.ref: @G.%I.assoc_type (%I.assoc_type.bd7) = name_ref F, %.loc23 [symbolic = %assoc0 (constants.%assoc0.631)] +// CHECK:STDOUT: %I.type.loc23_6.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc23_6.2 (constants.%I.type.3fe)] +// CHECK:STDOUT: %.loc23: @G.%I.assoc_type (%I.assoc_type.b71) = specific_constant @I.WithSelf.%assoc0.loc16_22.1, @I.WithSelf(constants.%T, constants.%Self.191) [symbolic = %assoc0 (constants.%assoc0.13b)] +// CHECK:STDOUT: %F.ref: @G.%I.assoc_type (%I.assoc_type.b71) = name_ref F, %.loc23 [symbolic = %assoc0 (constants.%assoc0.13b)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -170,22 +170,22 @@ fn H() { // CHECK:STDOUT: %T.loc15_14.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %Self.loc15_23.2 => constants.%Self.626 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %Self.loc15_23.2 => constants.%Self.191 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.626) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%Self.191) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %I.type => constants.%I.type.50f -// CHECK:STDOUT: %Self => constants.%Self.626 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.101 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.252 -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.bd7 -// CHECK:STDOUT: %assoc0.loc16_22.2 => constants.%assoc0.631 +// CHECK:STDOUT: %I.type => constants.%I.type.3fe +// CHECK:STDOUT: %Self => constants.%Self.191 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.09f +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.5f2 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.b71 +// CHECK:STDOUT: %assoc0.loc16_22.2 => constants.%assoc0.13b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%T, constants.%Self.626, constants.%U) { +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%T, constants.%Self.191, constants.%U) { // CHECK:STDOUT: %U.loc16_9.1 => constants.%U // CHECK:STDOUT: %.loc16_21.1 => constants.%.a6b // CHECK:STDOUT: %pattern_type => constants.%pattern_type.62e @@ -199,28 +199,28 @@ fn H() { // CHECK:STDOUT: %T.loc19_7.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type.loc23_6.2 => constants.%I.type.317 +// CHECK:STDOUT: %I.type.loc23_6.2 => constants.%I.type.81d // CHECK:STDOUT: %require_complete => constants.%complete_type -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.4a0 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.379 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.cd3 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.a4c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%empty_struct_type) { // CHECK:STDOUT: %T.loc15_14.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.317 -// CHECK:STDOUT: %Self.loc15_23.2 => constants.%Self.170 +// CHECK:STDOUT: %I.type => constants.%I.type.81d +// CHECK:STDOUT: %Self.loc15_23.2 => constants.%Self.524 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%empty_struct_type, constants.%Self.626) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%empty_struct_type, constants.%Self.191) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%empty_struct_type -// CHECK:STDOUT: %I.type => constants.%I.type.317 -// CHECK:STDOUT: %Self => constants.%Self.626 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.dc9 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.0fc -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.4a0 -// CHECK:STDOUT: %assoc0.loc16_22.2 => constants.%assoc0.379 +// CHECK:STDOUT: %I.type => constants.%I.type.81d +// CHECK:STDOUT: %Self => constants.%Self.191 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.272 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.fb6 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.cd3 +// CHECK:STDOUT: %assoc0.loc16_22.2 => constants.%assoc0.a4c // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/basic.carbon b/toolchain/check/testdata/interface/basic.carbon index d9de6e9189b2..ae014584f3a8 100644 --- a/toolchain/check/testdata/interface/basic.carbon +++ b/toolchain/check/testdata/interface/basic.carbon @@ -25,10 +25,10 @@ interface ForwardDeclared { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Empty.type: type = facet_type <@Empty> [concrete] -// CHECK:STDOUT: %Self.2f3: %Empty.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.d44: %Empty.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %ForwardDeclared.type: type = facet_type <@ForwardDeclared> [concrete] -// CHECK:STDOUT: %Self.c9a: %ForwardDeclared.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %ForwardDeclared.WithSelf.F.type: type = fn_type @ForwardDeclared.WithSelf.F, @ForwardDeclared.WithSelf(%Self.c9a) [symbolic] +// CHECK:STDOUT: %Self.d56: %ForwardDeclared.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %ForwardDeclared.WithSelf.F.type: type = fn_type @ForwardDeclared.WithSelf.F, @ForwardDeclared.WithSelf(%Self.d56) [symbolic] // CHECK:STDOUT: %ForwardDeclared.WithSelf.F: %ForwardDeclared.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %ForwardDeclared.assoc_type: type = assoc_entity_type @ForwardDeclared [concrete] // CHECK:STDOUT: %assoc0: %ForwardDeclared.assoc_type = assoc_entity element0, @ForwardDeclared.WithSelf.%ForwardDeclared.WithSelf.F.decl [concrete] @@ -45,7 +45,7 @@ interface ForwardDeclared { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Empty { -// CHECK:STDOUT: %Self: %Empty.type = symbolic_binding Self, 0 [symbolic = constants.%Self.2f3] +// CHECK:STDOUT: %Self: %Empty.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d44] // CHECK:STDOUT: %Empty.WithSelf.decl = interface_with_self_decl @Empty [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -56,7 +56,7 @@ interface ForwardDeclared { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @ForwardDeclared { -// CHECK:STDOUT: %Self: %ForwardDeclared.type = symbolic_binding Self, 0 [symbolic = constants.%Self.c9a] +// CHECK:STDOUT: %Self: %ForwardDeclared.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d56] // CHECK:STDOUT: %ForwardDeclared.WithSelf.decl = interface_with_self_decl @ForwardDeclared [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -75,9 +75,9 @@ interface ForwardDeclared { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Empty.WithSelf(constants.%Self.2f3) {} +// CHECK:STDOUT: specific @Empty.WithSelf(constants.%Self.d44) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @ForwardDeclared.WithSelf(constants.%Self.c9a) {} +// CHECK:STDOUT: specific @ForwardDeclared.WithSelf(constants.%Self.d56) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @ForwardDeclared.WithSelf.F(constants.%Self.c9a) {} +// CHECK:STDOUT: specific @ForwardDeclared.WithSelf.F(constants.%Self.d56) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/compound_member_access.carbon b/toolchain/check/testdata/interface/compound_member_access.carbon index 6d70a5876977..1464e7e3d833 100644 --- a/toolchain/check/testdata/interface/compound_member_access.carbon +++ b/toolchain/check/testdata/interface/compound_member_access.carbon @@ -198,20 +198,20 @@ fn Works() { // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.WithSelf.%U [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.1b4: type = pattern_type %J.type [concrete] +// CHECK:STDOUT: %pattern_type.2c5: type = pattern_type %J.type [concrete] // CHECK:STDOUT: %T: %J.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %J.lookup_impl_witness.7245fa.1: = lookup_impl_witness %T, @J [symbolic] -// CHECK:STDOUT: %impl.elem0.a030c0.1: type = impl_witness_access %J.lookup_impl_witness.7245fa.1, element0 [symbolic] -// CHECK:STDOUT: %pattern_type.9d79a7.1: type = pattern_type %impl.elem0.a030c0.1 [symbolic] -// CHECK:STDOUT: %S: %impl.elem0.a030c0.1 = symbolic_binding S, 1 [symbolic] +// CHECK:STDOUT: %J.lookup_impl_witness.1952bf.1: = lookup_impl_witness %T, @J [symbolic] +// CHECK:STDOUT: %impl.elem0.436176.1: type = impl_witness_access %J.lookup_impl_witness.1952bf.1, element0 [symbolic] +// CHECK:STDOUT: %pattern_type.0f6fa4.1: type = pattern_type %impl.elem0.436176.1 [symbolic] +// CHECK:STDOUT: %S: %impl.elem0.436176.1 = symbolic_binding S, 1 [symbolic] // CHECK:STDOUT: %Simple1.type: type = fn_type @Simple1 [concrete] // CHECK:STDOUT: %Simple1: %Simple1.type = struct_value () [concrete] // CHECK:STDOUT: %V: %J.type = symbolic_binding V, 0 [symbolic] -// CHECK:STDOUT: %J.lookup_impl_witness.7245fa.2: = lookup_impl_witness %V, @J [symbolic] -// CHECK:STDOUT: %impl.elem0.a030c0.2: type = impl_witness_access %J.lookup_impl_witness.7245fa.2, element0 [symbolic] -// CHECK:STDOUT: %pattern_type.9d79a7.2: type = pattern_type %impl.elem0.a030c0.2 [symbolic] -// CHECK:STDOUT: %W: %impl.elem0.a030c0.2 = symbolic_binding W, 1 [symbolic] +// CHECK:STDOUT: %J.lookup_impl_witness.1952bf.2: = lookup_impl_witness %V, @J [symbolic] +// CHECK:STDOUT: %impl.elem0.436176.2: type = impl_witness_access %J.lookup_impl_witness.1952bf.2, element0 [symbolic] +// CHECK:STDOUT: %pattern_type.0f6fa4.2: type = pattern_type %impl.elem0.436176.2 [symbolic] +// CHECK:STDOUT: %W: %impl.elem0.436176.2 = symbolic_binding W, 1 [symbolic] // CHECK:STDOUT: %Compound1.type: type = fn_type @Compound1 [concrete] // CHECK:STDOUT: %Compound1: %Compound1.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -233,41 +233,41 @@ fn Works() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} // CHECK:STDOUT: %Simple1.decl: %Simple1.type = fn_decl @Simple1 [concrete = constants.%Simple1] { -// CHECK:STDOUT: %T.patt: %pattern_type.1b4 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %S.patt: @Simple1.%pattern_type (%pattern_type.9d79a7.1) = symbolic_binding_pattern S, 1 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.2c5 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %S.patt: @Simple1.%pattern_type (%pattern_type.0f6fa4.1) = symbolic_binding_pattern S, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_16: type = splice_block %J.ref [concrete = constants.%J.type] { // CHECK:STDOUT: %.Self.loc8_13: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc8_13.2: %J.type = symbolic_binding T, 0 [symbolic = %T.loc8_13.1 (constants.%T)] -// CHECK:STDOUT: %.loc8_31.1: type = splice_block %impl.elem0.loc8_31.2 [symbolic = %impl.elem0.loc8_31.1 (constants.%impl.elem0.a030c0.1)] { +// CHECK:STDOUT: %.loc8_31.1: type = splice_block %impl.elem0.loc8_31.2 [symbolic = %impl.elem0.loc8_31.1 (constants.%impl.elem0.436176.1)] { // CHECK:STDOUT: %.Self.loc8_27: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref: %J.type = name_ref T, %T.loc8_13.2 [symbolic = %T.loc8_13.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc8_31.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc8_31.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc8_31.2: type = converted %T.ref, %T.as_type.loc8_31.2 [symbolic = %T.as_type.loc8_31.1 (constants.%T.as_type)] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc8_31.2: type = impl_witness_access constants.%J.lookup_impl_witness.7245fa.1, element0 [symbolic = %impl.elem0.loc8_31.1 (constants.%impl.elem0.a030c0.1)] +// CHECK:STDOUT: %impl.elem0.loc8_31.2: type = impl_witness_access constants.%J.lookup_impl_witness.1952bf.1, element0 [symbolic = %impl.elem0.loc8_31.1 (constants.%impl.elem0.436176.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %S.loc8_27.2: @Simple1.%impl.elem0.loc8_31.1 (%impl.elem0.a030c0.1) = symbolic_binding S, 1 [symbolic = %S.loc8_27.1 (constants.%S)] +// CHECK:STDOUT: %S.loc8_27.2: @Simple1.%impl.elem0.loc8_31.1 (%impl.elem0.436176.1) = symbolic_binding S, 1 [symbolic = %S.loc8_27.1 (constants.%S)] // CHECK:STDOUT: } // CHECK:STDOUT: %Compound1.decl: %Compound1.type = fn_decl @Compound1 [concrete = constants.%Compound1] { -// CHECK:STDOUT: %V.patt: %pattern_type.1b4 = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %W.patt: @Compound1.%pattern_type (%pattern_type.9d79a7.2) = symbolic_binding_pattern W, 1 [concrete] +// CHECK:STDOUT: %V.patt: %pattern_type.2c5 = symbolic_binding_pattern V, 0 [concrete] +// CHECK:STDOUT: %W.patt: @Compound1.%pattern_type (%pattern_type.0f6fa4.2) = symbolic_binding_pattern W, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_18: type = splice_block %J.ref.loc11_18 [concrete = constants.%J.type] { // CHECK:STDOUT: %.Self.loc11_15: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %J.ref.loc11_18: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: } // CHECK:STDOUT: %V.loc11_15.2: %J.type = symbolic_binding V, 0 [symbolic = %V.loc11_15.1 (constants.%V)] -// CHECK:STDOUT: %.loc11_33: type = splice_block %impl.elem0.loc11_33.2 [symbolic = %impl.elem0.loc11_33.1 (constants.%impl.elem0.a030c0.2)] { +// CHECK:STDOUT: %.loc11_33: type = splice_block %impl.elem0.loc11_33.2 [symbolic = %impl.elem0.loc11_33.1 (constants.%impl.elem0.436176.2)] { // CHECK:STDOUT: %.Self.loc11_29: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %V.ref: %J.type = name_ref V, %V.loc11_15.2 [symbolic = %V.loc11_15.1 (constants.%V)] // CHECK:STDOUT: %J.ref.loc11_35: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc11_33.2: type = impl_witness_access constants.%J.lookup_impl_witness.7245fa.2, element0 [symbolic = %impl.elem0.loc11_33.1 (constants.%impl.elem0.a030c0.2)] +// CHECK:STDOUT: %impl.elem0.loc11_33.2: type = impl_witness_access constants.%J.lookup_impl_witness.1952bf.2, element0 [symbolic = %impl.elem0.loc11_33.1 (constants.%impl.elem0.436176.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %W.loc11_29.2: @Compound1.%impl.elem0.loc11_33.1 (%impl.elem0.a030c0.2) = symbolic_binding W, 1 [symbolic = %W.loc11_29.1 (constants.%W)] +// CHECK:STDOUT: %W.loc11_29.2: @Compound1.%impl.elem0.loc11_33.1 (%impl.elem0.436176.2) = symbolic_binding W, 1 [symbolic = %W.loc11_29.1 (constants.%W)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -288,13 +288,13 @@ fn Works() { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Simple1(%T.loc8_13.2: %J.type, %S.loc8_27.2: @Simple1.%impl.elem0.loc8_31.1 (%impl.elem0.a030c0.1)) { +// CHECK:STDOUT: generic fn @Simple1(%T.loc8_13.2: %J.type, %S.loc8_27.2: @Simple1.%impl.elem0.loc8_31.1 (%impl.elem0.436176.1)) { // CHECK:STDOUT: %T.loc8_13.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc8_13.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc8_31.1: type = facet_access_type %T.loc8_13.1 [symbolic = %T.as_type.loc8_31.1 (constants.%T.as_type)] -// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc8_13.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.7245fa.1)] -// CHECK:STDOUT: %impl.elem0.loc8_31.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_31.1 (constants.%impl.elem0.a030c0.1)] -// CHECK:STDOUT: %S.loc8_27.1: @Simple1.%impl.elem0.loc8_31.1 (%impl.elem0.a030c0.1) = symbolic_binding S, 1 [symbolic = %S.loc8_27.1 (constants.%S)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc8_31.1 [symbolic = %pattern_type (constants.%pattern_type.9d79a7.1)] +// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc8_13.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.1952bf.1)] +// CHECK:STDOUT: %impl.elem0.loc8_31.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_31.1 (constants.%impl.elem0.436176.1)] +// CHECK:STDOUT: %S.loc8_27.1: @Simple1.%impl.elem0.loc8_31.1 (%impl.elem0.436176.1) = symbolic_binding S, 1 [symbolic = %S.loc8_27.1 (constants.%S)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc8_31.1 [symbolic = %pattern_type (constants.%pattern_type.0f6fa4.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -304,12 +304,12 @@ fn Works() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Compound1(%V.loc11_15.2: %J.type, %W.loc11_29.2: @Compound1.%impl.elem0.loc11_33.1 (%impl.elem0.a030c0.2)) { +// CHECK:STDOUT: generic fn @Compound1(%V.loc11_15.2: %J.type, %W.loc11_29.2: @Compound1.%impl.elem0.loc11_33.1 (%impl.elem0.436176.2)) { // CHECK:STDOUT: %V.loc11_15.1: %J.type = symbolic_binding V, 0 [symbolic = %V.loc11_15.1 (constants.%V)] -// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %V.loc11_15.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.7245fa.2)] -// CHECK:STDOUT: %impl.elem0.loc11_33.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_33.1 (constants.%impl.elem0.a030c0.2)] -// CHECK:STDOUT: %W.loc11_29.1: @Compound1.%impl.elem0.loc11_33.1 (%impl.elem0.a030c0.2) = symbolic_binding W, 1 [symbolic = %W.loc11_29.1 (constants.%W)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc11_33.1 [symbolic = %pattern_type (constants.%pattern_type.9d79a7.2)] +// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %V.loc11_15.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.1952bf.2)] +// CHECK:STDOUT: %impl.elem0.loc11_33.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_33.1 (constants.%impl.elem0.436176.2)] +// CHECK:STDOUT: %W.loc11_29.1: @Compound1.%impl.elem0.loc11_33.1 (%impl.elem0.436176.2) = symbolic_binding W, 1 [symbolic = %W.loc11_29.1 (constants.%W)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc11_33.1 [symbolic = %pattern_type (constants.%pattern_type.0f6fa4.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -330,10 +330,10 @@ fn Works() { // CHECK:STDOUT: specific @Simple1(constants.%T, constants.%S) { // CHECK:STDOUT: %T.loc8_13.1 => constants.%T // CHECK:STDOUT: %T.as_type.loc8_31.1 => constants.%T.as_type -// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.7245fa.1 -// CHECK:STDOUT: %impl.elem0.loc8_31.1 => constants.%impl.elem0.a030c0.1 +// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.1952bf.1 +// CHECK:STDOUT: %impl.elem0.loc8_31.1 => constants.%impl.elem0.436176.1 // CHECK:STDOUT: %S.loc8_27.1 => constants.%S -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9d79a7.1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0f6fa4.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf(constants.%V) { @@ -342,10 +342,10 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound1(constants.%V, constants.%W) { // CHECK:STDOUT: %V.loc11_15.1 => constants.%V -// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.7245fa.2 -// CHECK:STDOUT: %impl.elem0.loc11_33.1 => constants.%impl.elem0.a030c0.2 +// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.1952bf.2 +// CHECK:STDOUT: %impl.elem0.loc11_33.1 => constants.%impl.elem0.436176.2 // CHECK:STDOUT: %W.loc11_29.1 => constants.%W -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9d79a7.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0f6fa4.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- non_instance.carbon @@ -353,9 +353,9 @@ fn Works() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %K1.type: type = facet_type <@K1> [concrete] // CHECK:STDOUT: %Self: %K1.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %K1.WithSelf.Q1.type.cd0: type = fn_type @K1.WithSelf.Q1, @K1.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %K1.WithSelf.Q1.type.497: type = fn_type @K1.WithSelf.Q1, @K1.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %K1.WithSelf.Q1.39f: %K1.WithSelf.Q1.type.cd0 = struct_value () [symbolic] +// CHECK:STDOUT: %K1.WithSelf.Q1.1f8: %K1.WithSelf.Q1.type.497 = struct_value () [symbolic] // CHECK:STDOUT: %K1.assoc_type: type = assoc_entity_type @K1 [concrete] // CHECK:STDOUT: %assoc0: %K1.assoc_type = assoc_entity element0, @K1.WithSelf.%K1.WithSelf.Q1.decl [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] @@ -364,22 +364,22 @@ fn Works() { // CHECK:STDOUT: %T: %K1.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Simple2.type: type = fn_type @Simple2 [concrete] // CHECK:STDOUT: %Simple2: %Simple2.type = struct_value () [concrete] -// CHECK:STDOUT: %K1.WithSelf.Q1.type.59aca2.1: type = fn_type @K1.WithSelf.Q1, @K1.WithSelf(%T) [symbolic] -// CHECK:STDOUT: %K1.WithSelf.Q1.4abf2a.1: %K1.WithSelf.Q1.type.59aca2.1 = struct_value () [symbolic] +// CHECK:STDOUT: %K1.WithSelf.Q1.type.95e2e8.1: type = fn_type @K1.WithSelf.Q1, @K1.WithSelf(%T) [symbolic] +// CHECK:STDOUT: %K1.WithSelf.Q1.0cff11.1: %K1.WithSelf.Q1.type.95e2e8.1 = struct_value () [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %K1.lookup_impl_witness.2f959e.1: = lookup_impl_witness %T, @K1 [symbolic] -// CHECK:STDOUT: %.b70b64.1: type = fn_type_with_self_type %K1.WithSelf.Q1.type.59aca2.1, %T [symbolic] -// CHECK:STDOUT: %impl.elem0.de46be.1: %.b70b64.1 = impl_witness_access %K1.lookup_impl_witness.2f959e.1, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.c74519.1: = specific_impl_function %impl.elem0.de46be.1, @K1.WithSelf.Q1(%T) [symbolic] +// CHECK:STDOUT: %K1.lookup_impl_witness.27af5e.1: = lookup_impl_witness %T, @K1 [symbolic] +// CHECK:STDOUT: %.ad76f4.1: type = fn_type_with_self_type %K1.WithSelf.Q1.type.95e2e8.1, %T [symbolic] +// CHECK:STDOUT: %impl.elem0.6d291b.1: %.ad76f4.1 = impl_witness_access %K1.lookup_impl_witness.27af5e.1, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.747340.1: = specific_impl_function %impl.elem0.6d291b.1, @K1.WithSelf.Q1(%T) [symbolic] // CHECK:STDOUT: %V: %K1.type = symbolic_binding V, 0 [symbolic] // CHECK:STDOUT: %Compound2.type: type = fn_type @Compound2 [concrete] // CHECK:STDOUT: %Compound2: %Compound2.type = struct_value () [concrete] -// CHECK:STDOUT: %K1.lookup_impl_witness.2f959e.2: = lookup_impl_witness %V, @K1 [symbolic] -// CHECK:STDOUT: %K1.WithSelf.Q1.type.59aca2.2: type = fn_type @K1.WithSelf.Q1, @K1.WithSelf(%V) [symbolic] -// CHECK:STDOUT: %K1.WithSelf.Q1.4abf2a.2: %K1.WithSelf.Q1.type.59aca2.2 = struct_value () [symbolic] -// CHECK:STDOUT: %.b70b64.2: type = fn_type_with_self_type %K1.WithSelf.Q1.type.59aca2.2, %V [symbolic] -// CHECK:STDOUT: %impl.elem0.de46be.2: %.b70b64.2 = impl_witness_access %K1.lookup_impl_witness.2f959e.2, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.c74519.2: = specific_impl_function %impl.elem0.de46be.2, @K1.WithSelf.Q1(%V) [symbolic] +// CHECK:STDOUT: %K1.lookup_impl_witness.27af5e.2: = lookup_impl_witness %V, @K1 [symbolic] +// CHECK:STDOUT: %K1.WithSelf.Q1.type.95e2e8.2: type = fn_type @K1.WithSelf.Q1, @K1.WithSelf(%V) [symbolic] +// CHECK:STDOUT: %K1.WithSelf.Q1.0cff11.2: %K1.WithSelf.Q1.type.95e2e8.2 = struct_value () [symbolic] +// CHECK:STDOUT: %.ad76f4.2: type = fn_type_with_self_type %K1.WithSelf.Q1.type.95e2e8.2, %V [symbolic] +// CHECK:STDOUT: %impl.elem0.6d291b.2: %.ad76f4.2 = impl_witness_access %K1.lookup_impl_witness.27af5e.2, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.747340.2: = specific_impl_function %impl.elem0.6d291b.2, @K1.WithSelf.Q1(%V) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -423,7 +423,7 @@ fn Works() { // CHECK:STDOUT: %K1.WithSelf.decl = interface_with_self_decl @K1 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %K1.WithSelf.Q1.decl: @K1.WithSelf.%K1.WithSelf.Q1.type (%K1.WithSelf.Q1.type.cd0) = fn_decl @K1.WithSelf.Q1 [symbolic = @K1.WithSelf.%K1.WithSelf.Q1 (constants.%K1.WithSelf.Q1.39f)] {} {} +// CHECK:STDOUT: %K1.WithSelf.Q1.decl: @K1.WithSelf.%K1.WithSelf.Q1.type (%K1.WithSelf.Q1.type.497) = fn_decl @K1.WithSelf.Q1 [symbolic = @K1.WithSelf.%K1.WithSelf.Q1 (constants.%K1.WithSelf.Q1.1f8)] {} {} // CHECK:STDOUT: %assoc0: %K1.assoc_type = assoc_entity element0, %K1.WithSelf.Q1.decl [concrete = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -443,11 +443,11 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc9_4.2: type = facet_access_type %T.loc8_13.1 [symbolic = %T.as_type.loc9_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %K1.WithSelf.Q1.type: type = fn_type @K1.WithSelf.Q1, @K1.WithSelf(%T.loc8_13.1) [symbolic = %K1.WithSelf.Q1.type (constants.%K1.WithSelf.Q1.type.59aca2.1)] -// CHECK:STDOUT: %.loc9_4.2: type = fn_type_with_self_type %K1.WithSelf.Q1.type, %T.loc8_13.1 [symbolic = %.loc9_4.2 (constants.%.b70b64.1)] -// CHECK:STDOUT: %K1.lookup_impl_witness: = lookup_impl_witness %T.loc8_13.1, @K1 [symbolic = %K1.lookup_impl_witness (constants.%K1.lookup_impl_witness.2f959e.1)] -// CHECK:STDOUT: %impl.elem0.loc9_4.2: @Simple2.%.loc9_4.2 (%.b70b64.1) = impl_witness_access %K1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0.de46be.1)] -// CHECK:STDOUT: %specific_impl_fn.loc9_4.2: = specific_impl_function %impl.elem0.loc9_4.2, @K1.WithSelf.Q1(%T.loc8_13.1) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn.c74519.1)] +// CHECK:STDOUT: %K1.WithSelf.Q1.type: type = fn_type @K1.WithSelf.Q1, @K1.WithSelf(%T.loc8_13.1) [symbolic = %K1.WithSelf.Q1.type (constants.%K1.WithSelf.Q1.type.95e2e8.1)] +// CHECK:STDOUT: %.loc9_4.2: type = fn_type_with_self_type %K1.WithSelf.Q1.type, %T.loc8_13.1 [symbolic = %.loc9_4.2 (constants.%.ad76f4.1)] +// CHECK:STDOUT: %K1.lookup_impl_witness: = lookup_impl_witness %T.loc8_13.1, @K1 [symbolic = %K1.lookup_impl_witness (constants.%K1.lookup_impl_witness.27af5e.1)] +// CHECK:STDOUT: %impl.elem0.loc9_4.2: @Simple2.%.loc9_4.2 (%.ad76f4.1) = impl_witness_access %K1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0.6d291b.1)] +// CHECK:STDOUT: %specific_impl_fn.loc9_4.2: = specific_impl_function %impl.elem0.loc9_4.2, @K1.WithSelf.Q1(%T.loc8_13.1) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn.747340.1)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -455,8 +455,8 @@ fn Works() { // CHECK:STDOUT: %T.as_type.loc9_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc9_4.1: type = converted %T.ref, %T.as_type.loc9_4.1 [symbolic = %T.as_type.loc9_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %Q1.ref: %K1.assoc_type = name_ref Q1, @K1.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc9_4.1: @Simple2.%.loc9_4.2 (%.b70b64.1) = impl_witness_access constants.%K1.lookup_impl_witness.2f959e.1, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0.de46be.1)] -// CHECK:STDOUT: %specific_impl_fn.loc9_4.1: = specific_impl_function %impl.elem0.loc9_4.1, @K1.WithSelf.Q1(constants.%T) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn.c74519.1)] +// CHECK:STDOUT: %impl.elem0.loc9_4.1: @Simple2.%.loc9_4.2 (%.ad76f4.1) = impl_witness_access constants.%K1.lookup_impl_witness.27af5e.1, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0.6d291b.1)] +// CHECK:STDOUT: %specific_impl_fn.loc9_4.1: = specific_impl_function %impl.elem0.loc9_4.1, @K1.WithSelf.Q1(constants.%T) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn.747340.1)] // CHECK:STDOUT: %K1.WithSelf.Q1.call: init %empty_tuple.type = call %specific_impl_fn.loc9_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -466,19 +466,19 @@ fn Works() { // CHECK:STDOUT: %V.loc13_15.1: %K1.type = symbolic_binding V, 0 [symbolic = %V.loc13_15.1 (constants.%V)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %K1.WithSelf.Q1.type: type = fn_type @K1.WithSelf.Q1, @K1.WithSelf(%V.loc13_15.1) [symbolic = %K1.WithSelf.Q1.type (constants.%K1.WithSelf.Q1.type.59aca2.2)] -// CHECK:STDOUT: %.loc14: type = fn_type_with_self_type %K1.WithSelf.Q1.type, %V.loc13_15.1 [symbolic = %.loc14 (constants.%.b70b64.2)] -// CHECK:STDOUT: %K1.lookup_impl_witness: = lookup_impl_witness %V.loc13_15.1, @K1 [symbolic = %K1.lookup_impl_witness (constants.%K1.lookup_impl_witness.2f959e.2)] -// CHECK:STDOUT: %impl.elem0.loc14_4.2: @Compound2.%.loc14 (%.b70b64.2) = impl_witness_access %K1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.de46be.2)] -// CHECK:STDOUT: %specific_impl_fn.loc14_4.2: = specific_impl_function %impl.elem0.loc14_4.2, @K1.WithSelf.Q1(%V.loc13_15.1) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.c74519.2)] +// CHECK:STDOUT: %K1.WithSelf.Q1.type: type = fn_type @K1.WithSelf.Q1, @K1.WithSelf(%V.loc13_15.1) [symbolic = %K1.WithSelf.Q1.type (constants.%K1.WithSelf.Q1.type.95e2e8.2)] +// CHECK:STDOUT: %.loc14: type = fn_type_with_self_type %K1.WithSelf.Q1.type, %V.loc13_15.1 [symbolic = %.loc14 (constants.%.ad76f4.2)] +// CHECK:STDOUT: %K1.lookup_impl_witness: = lookup_impl_witness %V.loc13_15.1, @K1 [symbolic = %K1.lookup_impl_witness (constants.%K1.lookup_impl_witness.27af5e.2)] +// CHECK:STDOUT: %impl.elem0.loc14_4.2: @Compound2.%.loc14 (%.ad76f4.2) = impl_witness_access %K1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.6d291b.2)] +// CHECK:STDOUT: %specific_impl_fn.loc14_4.2: = specific_impl_function %impl.elem0.loc14_4.2, @K1.WithSelf.Q1(%V.loc13_15.1) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.747340.2)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %V.ref: %K1.type = name_ref V, %V.loc13_15.2 [symbolic = %V.loc13_15.1 (constants.%V)] // CHECK:STDOUT: %K1.ref.loc14: type = name_ref K1, file.%K1.decl [concrete = constants.%K1.type] // CHECK:STDOUT: %Q1.ref: %K1.assoc_type = name_ref Q1, @K1.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc14_4.1: @Compound2.%.loc14 (%.b70b64.2) = impl_witness_access constants.%K1.lookup_impl_witness.2f959e.2, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.de46be.2)] -// CHECK:STDOUT: %specific_impl_fn.loc14_4.1: = specific_impl_function %impl.elem0.loc14_4.1, @K1.WithSelf.Q1(constants.%V) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.c74519.2)] +// CHECK:STDOUT: %impl.elem0.loc14_4.1: @Compound2.%.loc14 (%.ad76f4.2) = impl_witness_access constants.%K1.lookup_impl_witness.27af5e.2, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.6d291b.2)] +// CHECK:STDOUT: %specific_impl_fn.loc14_4.1: = specific_impl_function %impl.elem0.loc14_4.1, @K1.WithSelf.Q1(constants.%V) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.747340.2)] // CHECK:STDOUT: %K1.WithSelf.Q1.call: init %empty_tuple.type = call %specific_impl_fn.loc14_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -487,8 +487,8 @@ fn Works() { // CHECK:STDOUT: specific @K1.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %K1.WithSelf.Q1.type => constants.%K1.WithSelf.Q1.type.cd0 -// CHECK:STDOUT: %K1.WithSelf.Q1 => constants.%K1.WithSelf.Q1.39f +// CHECK:STDOUT: %K1.WithSelf.Q1.type => constants.%K1.WithSelf.Q1.type.497 +// CHECK:STDOUT: %K1.WithSelf.Q1 => constants.%K1.WithSelf.Q1.1f8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @K1.WithSelf.Q1(constants.%Self) {} @@ -500,8 +500,8 @@ fn Works() { // CHECK:STDOUT: specific @K1.WithSelf(constants.%T) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %K1.WithSelf.Q1.type => constants.%K1.WithSelf.Q1.type.59aca2.1 -// CHECK:STDOUT: %K1.WithSelf.Q1 => constants.%K1.WithSelf.Q1.4abf2a.1 +// CHECK:STDOUT: %K1.WithSelf.Q1.type => constants.%K1.WithSelf.Q1.type.95e2e8.1 +// CHECK:STDOUT: %K1.WithSelf.Q1 => constants.%K1.WithSelf.Q1.0cff11.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @K1.WithSelf.Q1(constants.%T) {} @@ -513,8 +513,8 @@ fn Works() { // CHECK:STDOUT: specific @K1.WithSelf(constants.%V) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%V -// CHECK:STDOUT: %K1.WithSelf.Q1.type => constants.%K1.WithSelf.Q1.type.59aca2.2 -// CHECK:STDOUT: %K1.WithSelf.Q1 => constants.%K1.WithSelf.Q1.4abf2a.2 +// CHECK:STDOUT: %K1.WithSelf.Q1.type => constants.%K1.WithSelf.Q1.type.95e2e8.2 +// CHECK:STDOUT: %K1.WithSelf.Q1 => constants.%K1.WithSelf.Q1.0cff11.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @K1.WithSelf.Q1(constants.%V) {} @@ -523,35 +523,35 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %K2.type: type = facet_type <@K2> [concrete] -// CHECK:STDOUT: %Self.8fe: %K2.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %K2.WithSelf.Q2.type.051: type = fn_type @K2.WithSelf.Q2, @K2.WithSelf(%Self.8fe) [symbolic] +// CHECK:STDOUT: %Self.b0c: %K2.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %K2.WithSelf.Q2.type.ace: type = fn_type @K2.WithSelf.Q2, @K2.WithSelf(%Self.b0c) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %K2.WithSelf.Q2.d58: %K2.WithSelf.Q2.type.051 = struct_value () [symbolic] +// CHECK:STDOUT: %K2.WithSelf.Q2.5a8: %K2.WithSelf.Q2.type.ace = struct_value () [symbolic] // CHECK:STDOUT: %K2.assoc_type: type = assoc_entity_type @K2 [concrete] -// CHECK:STDOUT: %assoc0.aa9: %K2.assoc_type = assoc_entity element0, @K2.WithSelf.%K2.WithSelf.Q2.decl [concrete] +// CHECK:STDOUT: %assoc0.7f8: %K2.assoc_type = assoc_entity element0, @K2.WithSelf.%K2.WithSelf.Q2.decl [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.6b1: type = pattern_type %K2.type [concrete] +// CHECK:STDOUT: %pattern_type.583: type = pattern_type %K2.type [concrete] // CHECK:STDOUT: %T: %K2.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.df6b60.1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.f2711c.1: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %Simple3.type: type = fn_type @Simple3 [concrete] // CHECK:STDOUT: %Simple3: %Simple3.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.d7d81f.1: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %K2.WithSelf.Q2.type.040: type = fn_type @K2.WithSelf.Q2, @K2.WithSelf(%T) [symbolic] -// CHECK:STDOUT: %K2.WithSelf.Q2.3c0: %K2.WithSelf.Q2.type.040 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.041d4e.1: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %K2.WithSelf.Q2.type.71e: type = fn_type @K2.WithSelf.Q2, @K2.WithSelf(%T) [symbolic] +// CHECK:STDOUT: %K2.WithSelf.Q2.092: %K2.WithSelf.Q2.type.71e = struct_value () [symbolic] // CHECK:STDOUT: %K2.lookup_impl_witness: = lookup_impl_witness %T, @K2 [symbolic] -// CHECK:STDOUT: %.cf2: type = fn_type_with_self_type %K2.WithSelf.Q2.type.040, %T [symbolic] -// CHECK:STDOUT: %impl.elem0: %.cf2 = impl_witness_access %K2.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %.13a: type = fn_type_with_self_type %K2.WithSelf.Q2.type.71e, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.13a = impl_witness_access %K2.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @K2.WithSelf.Q2(%T) [symbolic] // CHECK:STDOUT: %V: %K2.type = symbolic_binding V, 0 [symbolic] // CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] -// CHECK:STDOUT: %pattern_type.df6b60.2: type = pattern_type %V.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.f2711c.2: type = pattern_type %V.as_type [symbolic] // CHECK:STDOUT: %Compound3.type: type = fn_type @Compound3 [concrete] // CHECK:STDOUT: %Compound3: %Compound3.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.d7d81f.2: = require_complete_type %V.as_type [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %require_complete.041d4e.2: = require_complete_type %V.as_type [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -560,7 +560,7 @@ fn Works() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -573,9 +573,9 @@ fn Works() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %K2.decl: type = interface_decl @K2 [concrete = constants.%K2.type] {} {} // CHECK:STDOUT: %Simple3.decl: %Simple3.type = fn_decl @Simple3 [concrete = constants.%Simple3] { -// CHECK:STDOUT: %T.patt: %pattern_type.6b1 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @Simple3.%pattern_type (%pattern_type.df6b60.1) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @Simple3.%pattern_type (%pattern_type.df6b60.1) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.583 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %x.param_patt: @Simple3.%pattern_type (%pattern_type.f2711c.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Simple3.%pattern_type (%pattern_type.f2711c.1) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_16: type = splice_block %K2.ref [concrete = constants.%K2.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -591,9 +591,9 @@ fn Works() { // CHECK:STDOUT: %x: @Simple3.%T.as_type.loc8_23.1 (%T.as_type) = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %Compound3.decl: %Compound3.type = fn_decl @Compound3 [concrete = constants.%Compound3] { -// CHECK:STDOUT: %V.patt: %pattern_type.6b1 = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %y.param_patt: @Compound3.%pattern_type (%pattern_type.df6b60.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %y.patt: @Compound3.%pattern_type (%pattern_type.df6b60.2) = at_binding_pattern y, %y.param_patt [concrete] +// CHECK:STDOUT: %V.patt: %pattern_type.583 = symbolic_binding_pattern V, 0 [concrete] +// CHECK:STDOUT: %y.param_patt: @Compound3.%pattern_type (%pattern_type.f2711c.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: @Compound3.%pattern_type (%pattern_type.f2711c.2) = at_binding_pattern y, %y.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14_18: type = splice_block %K2.ref.loc14 [concrete = constants.%K2.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -611,12 +611,12 @@ fn Works() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @K2 { -// CHECK:STDOUT: %Self: %K2.type = symbolic_binding Self, 0 [symbolic = constants.%Self.8fe] +// CHECK:STDOUT: %Self: %K2.type = symbolic_binding Self, 0 [symbolic = constants.%Self.b0c] // CHECK:STDOUT: %K2.WithSelf.decl = interface_with_self_decl @K2 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %K2.WithSelf.Q2.decl: @K2.WithSelf.%K2.WithSelf.Q2.type (%K2.WithSelf.Q2.type.051) = fn_decl @K2.WithSelf.Q2 [symbolic = @K2.WithSelf.%K2.WithSelf.Q2 (constants.%K2.WithSelf.Q2.d58)] {} {} -// CHECK:STDOUT: %assoc0: %K2.assoc_type = assoc_entity element0, %K2.WithSelf.Q2.decl [concrete = constants.%assoc0.aa9] +// CHECK:STDOUT: %K2.WithSelf.Q2.decl: @K2.WithSelf.%K2.WithSelf.Q2.type (%K2.WithSelf.Q2.type.ace) = fn_decl @K2.WithSelf.Q2 [symbolic = @K2.WithSelf.%K2.WithSelf.Q2 (constants.%K2.WithSelf.Q2.5a8)] {} {} +// CHECK:STDOUT: %assoc0: %K2.assoc_type = assoc_entity element0, %K2.WithSelf.Q2.decl [concrete = constants.%assoc0.7f8] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -633,21 +633,21 @@ fn Works() { // CHECK:STDOUT: generic fn @Simple3(%T.loc8_13.2: %K2.type) { // CHECK:STDOUT: %T.loc8_13.1: %K2.type = symbolic_binding T, 0 [symbolic = %T.loc8_13.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc8_23.1: type = facet_access_type %T.loc8_13.1 [symbolic = %T.as_type.loc8_23.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc8_23.1 [symbolic = %pattern_type (constants.%pattern_type.df6b60.1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc8_23.1 [symbolic = %pattern_type (constants.%pattern_type.f2711c.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc8_23.1 [symbolic = %require_complete (constants.%require_complete.d7d81f.1)] -// CHECK:STDOUT: %K2.WithSelf.Q2.type: type = fn_type @K2.WithSelf.Q2, @K2.WithSelf(%T.loc8_13.1) [symbolic = %K2.WithSelf.Q2.type (constants.%K2.WithSelf.Q2.type.040)] -// CHECK:STDOUT: %.loc9: type = fn_type_with_self_type %K2.WithSelf.Q2.type, %T.loc8_13.1 [symbolic = %.loc9 (constants.%.cf2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc8_23.1 [symbolic = %require_complete (constants.%require_complete.041d4e.1)] +// CHECK:STDOUT: %K2.WithSelf.Q2.type: type = fn_type @K2.WithSelf.Q2, @K2.WithSelf(%T.loc8_13.1) [symbolic = %K2.WithSelf.Q2.type (constants.%K2.WithSelf.Q2.type.71e)] +// CHECK:STDOUT: %.loc9: type = fn_type_with_self_type %K2.WithSelf.Q2.type, %T.loc8_13.1 [symbolic = %.loc9 (constants.%.13a)] // CHECK:STDOUT: %K2.lookup_impl_witness: = lookup_impl_witness %T.loc8_13.1, @K2 [symbolic = %K2.lookup_impl_witness (constants.%K2.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc9_4.2: @Simple3.%.loc9 (%.cf2) = impl_witness_access %K2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc9_4.2: @Simple3.%.loc9 (%.13a) = impl_witness_access %K2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc9_4.2: = specific_impl_function %impl.elem0.loc9_4.2, @K2.WithSelf.Q2(%T.loc8_13.1) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @Simple3.%T.as_type.loc8_23.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: @Simple3.%T.as_type.loc8_23.1 (%T.as_type) = name_ref x, %x -// CHECK:STDOUT: %Q2.ref: %K2.assoc_type = name_ref Q2, @K2.WithSelf.%assoc0 [concrete = constants.%assoc0.aa9] -// CHECK:STDOUT: %impl.elem0.loc9_4.1: @Simple3.%.loc9 (%.cf2) = impl_witness_access constants.%K2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %Q2.ref: %K2.assoc_type = name_ref Q2, @K2.WithSelf.%assoc0 [concrete = constants.%assoc0.7f8] +// CHECK:STDOUT: %impl.elem0.loc9_4.1: @Simple3.%.loc9 (%.13a) = impl_witness_access constants.%K2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc9_4.1: = specific_impl_function %impl.elem0.loc9_4.1, @K2.WithSelf.Q2(constants.%T) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %K2.WithSelf.Q2.call: init %empty_tuple.type = call %specific_impl_fn.loc9_4.1() // CHECK:STDOUT: return @@ -657,41 +657,41 @@ fn Works() { // CHECK:STDOUT: generic fn @Compound3(%V.loc14_15.2: %K2.type) { // CHECK:STDOUT: %V.loc14_15.1: %K2.type = symbolic_binding V, 0 [symbolic = %V.loc14_15.1 (constants.%V)] // CHECK:STDOUT: %V.as_type.loc14_25.1: type = facet_access_type %V.loc14_15.1 [symbolic = %V.as_type.loc14_25.1 (constants.%V.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc14_25.1 [symbolic = %pattern_type (constants.%pattern_type.df6b60.2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc14_25.1 [symbolic = %pattern_type (constants.%pattern_type.f2711c.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc14_25.1 [symbolic = %require_complete (constants.%require_complete.d7d81f.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc14_25.1 [symbolic = %require_complete (constants.%require_complete.041d4e.2)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%y.param: @Compound3.%V.as_type.loc14_25.1 (%V.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %y.ref: @Compound3.%V.as_type.loc14_25.1 (%V.as_type) = name_ref y, %y // CHECK:STDOUT: %K2.ref.loc22: type = name_ref K2, file.%K2.decl [concrete = constants.%K2.type] -// CHECK:STDOUT: %Q2.ref: %K2.assoc_type = name_ref Q2, @K2.WithSelf.%assoc0 [concrete = constants.%assoc0.aa9] +// CHECK:STDOUT: %Q2.ref: %K2.assoc_type = name_ref Q2, @K2.WithSelf.%assoc0 [concrete = constants.%assoc0.7f8] // CHECK:STDOUT: %.loc22: %K2.type = converted %y.ref, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @K2.WithSelf(constants.%Self.8fe) { +// CHECK:STDOUT: specific @K2.WithSelf(constants.%Self.b0c) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.8fe -// CHECK:STDOUT: %K2.WithSelf.Q2.type => constants.%K2.WithSelf.Q2.type.051 -// CHECK:STDOUT: %K2.WithSelf.Q2 => constants.%K2.WithSelf.Q2.d58 +// CHECK:STDOUT: %Self => constants.%Self.b0c +// CHECK:STDOUT: %K2.WithSelf.Q2.type => constants.%K2.WithSelf.Q2.type.ace +// CHECK:STDOUT: %K2.WithSelf.Q2 => constants.%K2.WithSelf.Q2.5a8 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @K2.WithSelf.Q2(constants.%Self.8fe) {} +// CHECK:STDOUT: specific @K2.WithSelf.Q2(constants.%Self.b0c) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple3(constants.%T) { // CHECK:STDOUT: %T.loc8_13.1 => constants.%T // CHECK:STDOUT: %T.as_type.loc8_23.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.df6b60.1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f2711c.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @K2.WithSelf(constants.%T) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %K2.WithSelf.Q2.type => constants.%K2.WithSelf.Q2.type.040 -// CHECK:STDOUT: %K2.WithSelf.Q2 => constants.%K2.WithSelf.Q2.3c0 +// CHECK:STDOUT: %K2.WithSelf.Q2.type => constants.%K2.WithSelf.Q2.type.71e +// CHECK:STDOUT: %K2.WithSelf.Q2 => constants.%K2.WithSelf.Q2.092 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @K2.WithSelf.Q2(constants.%T) {} @@ -699,7 +699,7 @@ fn Works() { // CHECK:STDOUT: specific @Compound3(constants.%V) { // CHECK:STDOUT: %V.loc14_15.1 => constants.%V // CHECK:STDOUT: %V.as_type.loc14_25.1 => constants.%V.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.df6b60.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f2711c.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- instance.carbon @@ -708,58 +708,58 @@ fn Works() { // CHECK:STDOUT: %L1.type: type = facet_type <@L1> [concrete] // CHECK:STDOUT: %Self: %L1.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.02d: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %L1.WithSelf.R1.type.5a7: type = fn_type @L1.WithSelf.R1, @L1.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %pattern_type.63b: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %L1.WithSelf.R1.type.861: type = fn_type @L1.WithSelf.R1, @L1.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %L1.WithSelf.R1.ef2: %L1.WithSelf.R1.type.5a7 = struct_value () [symbolic] +// CHECK:STDOUT: %L1.WithSelf.R1.1c0: %L1.WithSelf.R1.type.861 = struct_value () [symbolic] // CHECK:STDOUT: %L1.assoc_type: type = assoc_entity_type @L1 [concrete] // CHECK:STDOUT: %assoc0: %L1.assoc_type = assoc_entity element0, @L1.WithSelf.%L1.WithSelf.R1.decl [concrete] -// CHECK:STDOUT: %L1.WithSelf.S1.type.d7d: type = fn_type @L1.WithSelf.S1, @L1.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %L1.WithSelf.S1.a7e: %L1.WithSelf.S1.type.d7d = struct_value () [symbolic] +// CHECK:STDOUT: %L1.WithSelf.S1.type.ff3: type = fn_type @L1.WithSelf.S1, @L1.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %L1.WithSelf.S1.11f: %L1.WithSelf.S1.type.ff3 = struct_value () [symbolic] // CHECK:STDOUT: %assoc1: %L1.assoc_type = assoc_entity element1, @L1.WithSelf.%L1.WithSelf.S1.decl [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.144: type = pattern_type %L1.type [concrete] +// CHECK:STDOUT: %pattern_type.b7b: type = pattern_type %L1.type [concrete] // CHECK:STDOUT: %T: %L1.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.34d8e7.1: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %ptr.5d0360.1: type = ptr_type %T.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.77123f.1: type = pattern_type %ptr.5d0360.1 [symbolic] +// CHECK:STDOUT: %pattern_type.5697a7.1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %ptr.ed22b9.1: type = ptr_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.e0b9be.1: type = pattern_type %ptr.ed22b9.1 [symbolic] // CHECK:STDOUT: %Simple4.type: type = fn_type @Simple4 [concrete] // CHECK:STDOUT: %Simple4: %Simple4.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.66b562.1: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %require_complete.0473f9.1: = require_complete_type %ptr.5d0360.1 [symbolic] -// CHECK:STDOUT: %L1.WithSelf.R1.type.c49ec5.1: type = fn_type @L1.WithSelf.R1, @L1.WithSelf(%T) [symbolic] -// CHECK:STDOUT: %L1.WithSelf.R1.15cca7.1: %L1.WithSelf.R1.type.c49ec5.1 = struct_value () [symbolic] -// CHECK:STDOUT: %L1.WithSelf.S1.type.cdb9c6.1: type = fn_type @L1.WithSelf.S1, @L1.WithSelf(%T) [symbolic] -// CHECK:STDOUT: %L1.WithSelf.S1.25e76e.1: %L1.WithSelf.S1.type.cdb9c6.1 = struct_value () [symbolic] -// CHECK:STDOUT: %L1.lookup_impl_witness.53b4ff.1: = lookup_impl_witness %T, @L1 [symbolic] -// CHECK:STDOUT: %.17ad0e.1: type = fn_type_with_self_type %L1.WithSelf.R1.type.c49ec5.1, %T [symbolic] -// CHECK:STDOUT: %impl.elem0.769162.1: %.17ad0e.1 = impl_witness_access %L1.lookup_impl_witness.53b4ff.1, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.3b2324.1: = specific_impl_function %impl.elem0.769162.1, @L1.WithSelf.R1(%T) [symbolic] -// CHECK:STDOUT: %.9361f0.1: type = fn_type_with_self_type %L1.WithSelf.S1.type.cdb9c6.1, %T [symbolic] -// CHECK:STDOUT: %impl.elem1.8b6b4a.1: %.9361f0.1 = impl_witness_access %L1.lookup_impl_witness.53b4ff.1, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.f35db6.1: = specific_impl_function %impl.elem1.8b6b4a.1, @L1.WithSelf.S1(%T) [symbolic] +// CHECK:STDOUT: %require_complete.770490.1: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.0d59a1.1: = require_complete_type %ptr.ed22b9.1 [symbolic] +// CHECK:STDOUT: %L1.WithSelf.R1.type.62535e.1: type = fn_type @L1.WithSelf.R1, @L1.WithSelf(%T) [symbolic] +// CHECK:STDOUT: %L1.WithSelf.R1.c3617e.1: %L1.WithSelf.R1.type.62535e.1 = struct_value () [symbolic] +// CHECK:STDOUT: %L1.WithSelf.S1.type.690082.1: type = fn_type @L1.WithSelf.S1, @L1.WithSelf(%T) [symbolic] +// CHECK:STDOUT: %L1.WithSelf.S1.acaab8.1: %L1.WithSelf.S1.type.690082.1 = struct_value () [symbolic] +// CHECK:STDOUT: %L1.lookup_impl_witness.cca206.1: = lookup_impl_witness %T, @L1 [symbolic] +// CHECK:STDOUT: %.56f6e0.1: type = fn_type_with_self_type %L1.WithSelf.R1.type.62535e.1, %T [symbolic] +// CHECK:STDOUT: %impl.elem0.4e8926.1: %.56f6e0.1 = impl_witness_access %L1.lookup_impl_witness.cca206.1, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e046e8.1: = specific_impl_function %impl.elem0.4e8926.1, @L1.WithSelf.R1(%T) [symbolic] +// CHECK:STDOUT: %.b63157.1: type = fn_type_with_self_type %L1.WithSelf.S1.type.690082.1, %T [symbolic] +// CHECK:STDOUT: %impl.elem1.86bb43.1: %.b63157.1 = impl_witness_access %L1.lookup_impl_witness.cca206.1, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.340d61.1: = specific_impl_function %impl.elem1.86bb43.1, @L1.WithSelf.S1(%T) [symbolic] // CHECK:STDOUT: %V: %L1.type = symbolic_binding V, 0 [symbolic] // CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] -// CHECK:STDOUT: %pattern_type.34d8e7.2: type = pattern_type %V.as_type [symbolic] -// CHECK:STDOUT: %ptr.5d0360.2: type = ptr_type %V.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.77123f.2: type = pattern_type %ptr.5d0360.2 [symbolic] +// CHECK:STDOUT: %pattern_type.5697a7.2: type = pattern_type %V.as_type [symbolic] +// CHECK:STDOUT: %ptr.ed22b9.2: type = ptr_type %V.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.e0b9be.2: type = pattern_type %ptr.ed22b9.2 [symbolic] // CHECK:STDOUT: %Compound4.type: type = fn_type @Compound4 [concrete] // CHECK:STDOUT: %Compound4: %Compound4.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.66b562.2: = require_complete_type %V.as_type [symbolic] -// CHECK:STDOUT: %require_complete.0473f9.2: = require_complete_type %ptr.5d0360.2 [symbolic] -// CHECK:STDOUT: %L1.lookup_impl_witness.53b4ff.2: = lookup_impl_witness %V, @L1 [symbolic] -// CHECK:STDOUT: %L1.WithSelf.R1.type.c49ec5.2: type = fn_type @L1.WithSelf.R1, @L1.WithSelf(%V) [symbolic] -// CHECK:STDOUT: %L1.WithSelf.R1.15cca7.2: %L1.WithSelf.R1.type.c49ec5.2 = struct_value () [symbolic] -// CHECK:STDOUT: %L1.WithSelf.S1.type.cdb9c6.2: type = fn_type @L1.WithSelf.S1, @L1.WithSelf(%V) [symbolic] -// CHECK:STDOUT: %L1.WithSelf.S1.25e76e.2: %L1.WithSelf.S1.type.cdb9c6.2 = struct_value () [symbolic] -// CHECK:STDOUT: %.17ad0e.2: type = fn_type_with_self_type %L1.WithSelf.R1.type.c49ec5.2, %V [symbolic] -// CHECK:STDOUT: %impl.elem0.769162.2: %.17ad0e.2 = impl_witness_access %L1.lookup_impl_witness.53b4ff.2, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.3b2324.2: = specific_impl_function %impl.elem0.769162.2, @L1.WithSelf.R1(%V) [symbolic] -// CHECK:STDOUT: %.9361f0.2: type = fn_type_with_self_type %L1.WithSelf.S1.type.cdb9c6.2, %V [symbolic] -// CHECK:STDOUT: %impl.elem1.8b6b4a.2: %.9361f0.2 = impl_witness_access %L1.lookup_impl_witness.53b4ff.2, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.f35db6.2: = specific_impl_function %impl.elem1.8b6b4a.2, @L1.WithSelf.S1(%V) [symbolic] +// CHECK:STDOUT: %require_complete.770490.2: = require_complete_type %V.as_type [symbolic] +// CHECK:STDOUT: %require_complete.0d59a1.2: = require_complete_type %ptr.ed22b9.2 [symbolic] +// CHECK:STDOUT: %L1.lookup_impl_witness.cca206.2: = lookup_impl_witness %V, @L1 [symbolic] +// CHECK:STDOUT: %L1.WithSelf.R1.type.62535e.2: type = fn_type @L1.WithSelf.R1, @L1.WithSelf(%V) [symbolic] +// CHECK:STDOUT: %L1.WithSelf.R1.c3617e.2: %L1.WithSelf.R1.type.62535e.2 = struct_value () [symbolic] +// CHECK:STDOUT: %L1.WithSelf.S1.type.690082.2: type = fn_type @L1.WithSelf.S1, @L1.WithSelf(%V) [symbolic] +// CHECK:STDOUT: %L1.WithSelf.S1.acaab8.2: %L1.WithSelf.S1.type.690082.2 = struct_value () [symbolic] +// CHECK:STDOUT: %.56f6e0.2: type = fn_type_with_self_type %L1.WithSelf.R1.type.62535e.2, %V [symbolic] +// CHECK:STDOUT: %impl.elem0.4e8926.2: %.56f6e0.2 = impl_witness_access %L1.lookup_impl_witness.cca206.2, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e046e8.2: = specific_impl_function %impl.elem0.4e8926.2, @L1.WithSelf.R1(%V) [symbolic] +// CHECK:STDOUT: %.b63157.2: type = fn_type_with_self_type %L1.WithSelf.S1.type.690082.2, %V [symbolic] +// CHECK:STDOUT: %impl.elem1.86bb43.2: %.b63157.2 = impl_witness_access %L1.lookup_impl_witness.cca206.2, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.340d61.2: = specific_impl_function %impl.elem1.86bb43.2, @L1.WithSelf.S1(%V) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -779,11 +779,11 @@ fn Works() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %L1.decl: type = interface_decl @L1 [concrete = constants.%L1.type] {} {} // CHECK:STDOUT: %Simple4.decl: %Simple4.type = fn_decl @Simple4 [concrete = constants.%Simple4] { -// CHECK:STDOUT: %T.patt: %pattern_type.144 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @Simple4.%pattern_type.loc9_21 (%pattern_type.34d8e7.1) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @Simple4.%pattern_type.loc9_21 (%pattern_type.34d8e7.1) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %p.param_patt: @Simple4.%pattern_type.loc9_27 (%pattern_type.77123f.1) = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: @Simple4.%pattern_type.loc9_27 (%pattern_type.77123f.1) = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.b7b = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %x.param_patt: @Simple4.%pattern_type.loc9_21 (%pattern_type.5697a7.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Simple4.%pattern_type.loc9_21 (%pattern_type.5697a7.1) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %p.param_patt: @Simple4.%pattern_type.loc9_27 (%pattern_type.e0b9be.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @Simple4.%pattern_type.loc9_27 (%pattern_type.e0b9be.1) = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_16: type = splice_block %L1.ref [concrete = constants.%L1.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -797,21 +797,21 @@ fn Works() { // CHECK:STDOUT: %.loc9_23.2: type = converted %T.ref.loc9_23, %T.as_type.loc9_23.2 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: %x: @Simple4.%T.as_type.loc9_23.1 (%T.as_type) = value_binding x, %x.param -// CHECK:STDOUT: %p.param: @Simple4.%ptr.loc9_30.1 (%ptr.5d0360.1) = value_param call_param1 -// CHECK:STDOUT: %.loc9_30.1: type = splice_block %ptr.loc9_30.2 [symbolic = %ptr.loc9_30.1 (constants.%ptr.5d0360.1)] { +// CHECK:STDOUT: %p.param: @Simple4.%ptr.loc9_30.1 (%ptr.ed22b9.1) = value_param call_param1 +// CHECK:STDOUT: %.loc9_30.1: type = splice_block %ptr.loc9_30.2 [symbolic = %ptr.loc9_30.1 (constants.%ptr.ed22b9.1)] { // CHECK:STDOUT: %T.ref.loc9_29: %L1.type = name_ref T, %T.loc9_13.2 [symbolic = %T.loc9_13.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc9_30: type = facet_access_type %T.ref.loc9_29 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc9_30.2: type = converted %T.ref.loc9_29, %T.as_type.loc9_30 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] -// CHECK:STDOUT: %ptr.loc9_30.2: type = ptr_type %.loc9_30.2 [symbolic = %ptr.loc9_30.1 (constants.%ptr.5d0360.1)] +// CHECK:STDOUT: %ptr.loc9_30.2: type = ptr_type %.loc9_30.2 [symbolic = %ptr.loc9_30.1 (constants.%ptr.ed22b9.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @Simple4.%ptr.loc9_30.1 (%ptr.5d0360.1) = value_binding p, %p.param +// CHECK:STDOUT: %p: @Simple4.%ptr.loc9_30.1 (%ptr.ed22b9.1) = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: %Compound4.decl: %Compound4.type = fn_decl @Compound4 [concrete = constants.%Compound4] { -// CHECK:STDOUT: %V.patt: %pattern_type.144 = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %y.param_patt: @Compound4.%pattern_type.loc15_23 (%pattern_type.34d8e7.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %y.patt: @Compound4.%pattern_type.loc15_23 (%pattern_type.34d8e7.2) = at_binding_pattern y, %y.param_patt [concrete] -// CHECK:STDOUT: %p.param_patt: @Compound4.%pattern_type.loc15_29 (%pattern_type.77123f.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: @Compound4.%pattern_type.loc15_29 (%pattern_type.77123f.2) = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %V.patt: %pattern_type.b7b = symbolic_binding_pattern V, 0 [concrete] +// CHECK:STDOUT: %y.param_patt: @Compound4.%pattern_type.loc15_23 (%pattern_type.5697a7.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: @Compound4.%pattern_type.loc15_23 (%pattern_type.5697a7.2) = at_binding_pattern y, %y.param_patt [concrete] +// CHECK:STDOUT: %p.param_patt: @Compound4.%pattern_type.loc15_29 (%pattern_type.e0b9be.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @Compound4.%pattern_type.loc15_29 (%pattern_type.e0b9be.2) = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_18: type = splice_block %L1.ref.loc15 [concrete = constants.%L1.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -825,14 +825,14 @@ fn Works() { // CHECK:STDOUT: %.loc15_25.2: type = converted %V.ref.loc15_25, %V.as_type.loc15_25.2 [symbolic = %V.as_type.loc15_25.1 (constants.%V.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: %y: @Compound4.%V.as_type.loc15_25.1 (%V.as_type) = value_binding y, %y.param -// CHECK:STDOUT: %p.param: @Compound4.%ptr.loc15_32.1 (%ptr.5d0360.2) = value_param call_param1 -// CHECK:STDOUT: %.loc15_32.1: type = splice_block %ptr.loc15_32.2 [symbolic = %ptr.loc15_32.1 (constants.%ptr.5d0360.2)] { +// CHECK:STDOUT: %p.param: @Compound4.%ptr.loc15_32.1 (%ptr.ed22b9.2) = value_param call_param1 +// CHECK:STDOUT: %.loc15_32.1: type = splice_block %ptr.loc15_32.2 [symbolic = %ptr.loc15_32.1 (constants.%ptr.ed22b9.2)] { // CHECK:STDOUT: %V.ref.loc15_31: %L1.type = name_ref V, %V.loc15_15.2 [symbolic = %V.loc15_15.1 (constants.%V)] // CHECK:STDOUT: %V.as_type.loc15_32: type = facet_access_type %V.ref.loc15_31 [symbolic = %V.as_type.loc15_25.1 (constants.%V.as_type)] // CHECK:STDOUT: %.loc15_32.2: type = converted %V.ref.loc15_31, %V.as_type.loc15_32 [symbolic = %V.as_type.loc15_25.1 (constants.%V.as_type)] -// CHECK:STDOUT: %ptr.loc15_32.2: type = ptr_type %.loc15_32.2 [symbolic = %ptr.loc15_32.1 (constants.%ptr.5d0360.2)] +// CHECK:STDOUT: %ptr.loc15_32.2: type = ptr_type %.loc15_32.2 [symbolic = %ptr.loc15_32.1 (constants.%ptr.ed22b9.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @Compound4.%ptr.loc15_32.1 (%ptr.5d0360.2) = value_binding p, %p.param +// CHECK:STDOUT: %p: @Compound4.%ptr.loc15_32.1 (%ptr.ed22b9.2) = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -841,9 +841,9 @@ fn Works() { // CHECK:STDOUT: %L1.WithSelf.decl = interface_with_self_decl @L1 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %L1.WithSelf.R1.decl: @L1.WithSelf.%L1.WithSelf.R1.type (%L1.WithSelf.R1.type.5a7) = fn_decl @L1.WithSelf.R1 [symbolic = @L1.WithSelf.%L1.WithSelf.R1 (constants.%L1.WithSelf.R1.ef2)] { -// CHECK:STDOUT: %self.param_patt: @L1.WithSelf.R1.%pattern_type (%pattern_type.02d) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @L1.WithSelf.R1.%pattern_type (%pattern_type.02d) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %L1.WithSelf.R1.decl: @L1.WithSelf.%L1.WithSelf.R1.type (%L1.WithSelf.R1.type.861) = fn_decl @L1.WithSelf.R1 [symbolic = @L1.WithSelf.%L1.WithSelf.R1 (constants.%L1.WithSelf.R1.1c0)] { +// CHECK:STDOUT: %self.param_patt: @L1.WithSelf.R1.%pattern_type (%pattern_type.63b) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @L1.WithSelf.R1.%pattern_type (%pattern_type.63b) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @L1.WithSelf.R1.%Self.as_type.loc4_15.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] { @@ -854,9 +854,9 @@ fn Works() { // CHECK:STDOUT: %self: @L1.WithSelf.R1.%Self.as_type.loc4_15.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %L1.assoc_type = assoc_entity element0, %L1.WithSelf.R1.decl [concrete = constants.%assoc0] -// CHECK:STDOUT: %L1.WithSelf.S1.decl: @L1.WithSelf.%L1.WithSelf.S1.type (%L1.WithSelf.S1.type.d7d) = fn_decl @L1.WithSelf.S1 [symbolic = @L1.WithSelf.%L1.WithSelf.S1 (constants.%L1.WithSelf.S1.a7e)] { -// CHECK:STDOUT: %self.param_patt: @L1.WithSelf.S1.%pattern_type (%pattern_type.02d) = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @L1.WithSelf.S1.%pattern_type (%pattern_type.02d) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %L1.WithSelf.S1.decl: @L1.WithSelf.%L1.WithSelf.S1.type (%L1.WithSelf.S1.type.ff3) = fn_decl @L1.WithSelf.S1 [symbolic = @L1.WithSelf.%L1.WithSelf.S1 (constants.%L1.WithSelf.S1.11f)] { +// CHECK:STDOUT: %self.param_patt: @L1.WithSelf.S1.%pattern_type (%pattern_type.63b) = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @L1.WithSelf.S1.%pattern_type (%pattern_type.63b) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref @L1.WithSelf.S1.%Self.as_type.loc5_19.1 (%Self.as_type) = ref_param call_param0 // CHECK:STDOUT: %.loc5_19.1: type = splice_block %.loc5_19.2 [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type)] { @@ -880,7 +880,7 @@ fn Works() { // CHECK:STDOUT: generic fn @L1.WithSelf.R1(@L1.%Self: %L1.type) { // CHECK:STDOUT: %Self: %L1.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc4_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.1 [symbolic = %pattern_type (constants.%pattern_type.02d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.1 [symbolic = %pattern_type (constants.%pattern_type.63b)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @L1.WithSelf.R1.%Self.as_type.loc4_15.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -888,7 +888,7 @@ fn Works() { // CHECK:STDOUT: generic fn @L1.WithSelf.S1(@L1.%Self: %L1.type) { // CHECK:STDOUT: %Self: %L1.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_19.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_19.1 [symbolic = %pattern_type (constants.%pattern_type.02d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_19.1 [symbolic = %pattern_type (constants.%pattern_type.63b)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: ref @L1.WithSelf.S1.%Self.as_type.loc5_19.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -896,38 +896,38 @@ fn Works() { // CHECK:STDOUT: generic fn @Simple4(%T.loc9_13.2: %L1.type) { // CHECK:STDOUT: %T.loc9_13.1: %L1.type = symbolic_binding T, 0 [symbolic = %T.loc9_13.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc9_23.1: type = facet_access_type %T.loc9_13.1 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type.loc9_21: type = pattern_type %T.as_type.loc9_23.1 [symbolic = %pattern_type.loc9_21 (constants.%pattern_type.34d8e7.1)] -// CHECK:STDOUT: %ptr.loc9_30.1: type = ptr_type %T.as_type.loc9_23.1 [symbolic = %ptr.loc9_30.1 (constants.%ptr.5d0360.1)] -// CHECK:STDOUT: %pattern_type.loc9_27: type = pattern_type %ptr.loc9_30.1 [symbolic = %pattern_type.loc9_27 (constants.%pattern_type.77123f.1)] +// CHECK:STDOUT: %pattern_type.loc9_21: type = pattern_type %T.as_type.loc9_23.1 [symbolic = %pattern_type.loc9_21 (constants.%pattern_type.5697a7.1)] +// CHECK:STDOUT: %ptr.loc9_30.1: type = ptr_type %T.as_type.loc9_23.1 [symbolic = %ptr.loc9_30.1 (constants.%ptr.ed22b9.1)] +// CHECK:STDOUT: %pattern_type.loc9_27: type = pattern_type %ptr.loc9_30.1 [symbolic = %pattern_type.loc9_27 (constants.%pattern_type.e0b9be.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_21: = require_complete_type %T.as_type.loc9_23.1 [symbolic = %require_complete.loc9_21 (constants.%require_complete.66b562.1)] -// CHECK:STDOUT: %require_complete.loc9_27: = require_complete_type %ptr.loc9_30.1 [symbolic = %require_complete.loc9_27 (constants.%require_complete.0473f9.1)] -// CHECK:STDOUT: %L1.WithSelf.R1.type: type = fn_type @L1.WithSelf.R1, @L1.WithSelf(%T.loc9_13.1) [symbolic = %L1.WithSelf.R1.type (constants.%L1.WithSelf.R1.type.c49ec5.1)] -// CHECK:STDOUT: %.loc10: type = fn_type_with_self_type %L1.WithSelf.R1.type, %T.loc9_13.1 [symbolic = %.loc10 (constants.%.17ad0e.1)] -// CHECK:STDOUT: %L1.lookup_impl_witness: = lookup_impl_witness %T.loc9_13.1, @L1 [symbolic = %L1.lookup_impl_witness (constants.%L1.lookup_impl_witness.53b4ff.1)] -// CHECK:STDOUT: %impl.elem0.loc10_4.2: @Simple4.%.loc10 (%.17ad0e.1) = impl_witness_access %L1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0.769162.1)] -// CHECK:STDOUT: %specific_impl_fn.loc10_4.2: = specific_impl_function %impl.elem0.loc10_4.2, @L1.WithSelf.R1(%T.loc9_13.1) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn.3b2324.1)] -// CHECK:STDOUT: %L1.WithSelf.S1.type: type = fn_type @L1.WithSelf.S1, @L1.WithSelf(%T.loc9_13.1) [symbolic = %L1.WithSelf.S1.type (constants.%L1.WithSelf.S1.type.cdb9c6.1)] -// CHECK:STDOUT: %.loc11_4.2: type = fn_type_with_self_type %L1.WithSelf.S1.type, %T.loc9_13.1 [symbolic = %.loc11_4.2 (constants.%.9361f0.1)] -// CHECK:STDOUT: %impl.elem1.loc11_4.2: @Simple4.%.loc11_4.2 (%.9361f0.1) = impl_witness_access %L1.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc11_4.2 (constants.%impl.elem1.8b6b4a.1)] -// CHECK:STDOUT: %specific_impl_fn.loc11_4.2: = specific_impl_function %impl.elem1.loc11_4.2, @L1.WithSelf.S1(%T.loc9_13.1) [symbolic = %specific_impl_fn.loc11_4.2 (constants.%specific_impl_fn.f35db6.1)] +// CHECK:STDOUT: %require_complete.loc9_21: = require_complete_type %T.as_type.loc9_23.1 [symbolic = %require_complete.loc9_21 (constants.%require_complete.770490.1)] +// CHECK:STDOUT: %require_complete.loc9_27: = require_complete_type %ptr.loc9_30.1 [symbolic = %require_complete.loc9_27 (constants.%require_complete.0d59a1.1)] +// CHECK:STDOUT: %L1.WithSelf.R1.type: type = fn_type @L1.WithSelf.R1, @L1.WithSelf(%T.loc9_13.1) [symbolic = %L1.WithSelf.R1.type (constants.%L1.WithSelf.R1.type.62535e.1)] +// CHECK:STDOUT: %.loc10: type = fn_type_with_self_type %L1.WithSelf.R1.type, %T.loc9_13.1 [symbolic = %.loc10 (constants.%.56f6e0.1)] +// CHECK:STDOUT: %L1.lookup_impl_witness: = lookup_impl_witness %T.loc9_13.1, @L1 [symbolic = %L1.lookup_impl_witness (constants.%L1.lookup_impl_witness.cca206.1)] +// CHECK:STDOUT: %impl.elem0.loc10_4.2: @Simple4.%.loc10 (%.56f6e0.1) = impl_witness_access %L1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0.4e8926.1)] +// CHECK:STDOUT: %specific_impl_fn.loc10_4.2: = specific_impl_function %impl.elem0.loc10_4.2, @L1.WithSelf.R1(%T.loc9_13.1) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn.e046e8.1)] +// CHECK:STDOUT: %L1.WithSelf.S1.type: type = fn_type @L1.WithSelf.S1, @L1.WithSelf(%T.loc9_13.1) [symbolic = %L1.WithSelf.S1.type (constants.%L1.WithSelf.S1.type.690082.1)] +// CHECK:STDOUT: %.loc11_4.2: type = fn_type_with_self_type %L1.WithSelf.S1.type, %T.loc9_13.1 [symbolic = %.loc11_4.2 (constants.%.b63157.1)] +// CHECK:STDOUT: %impl.elem1.loc11_4.2: @Simple4.%.loc11_4.2 (%.b63157.1) = impl_witness_access %L1.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc11_4.2 (constants.%impl.elem1.86bb43.1)] +// CHECK:STDOUT: %specific_impl_fn.loc11_4.2: = specific_impl_function %impl.elem1.loc11_4.2, @L1.WithSelf.S1(%T.loc9_13.1) [symbolic = %specific_impl_fn.loc11_4.2 (constants.%specific_impl_fn.340d61.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Simple4.%T.as_type.loc9_23.1 (%T.as_type), %p.param: @Simple4.%ptr.loc9_30.1 (%ptr.5d0360.1)) { +// CHECK:STDOUT: fn(%x.param: @Simple4.%T.as_type.loc9_23.1 (%T.as_type), %p.param: @Simple4.%ptr.loc9_30.1 (%ptr.ed22b9.1)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: @Simple4.%T.as_type.loc9_23.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %R1.ref: %L1.assoc_type = name_ref R1, @L1.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc10_4.1: @Simple4.%.loc10 (%.17ad0e.1) = impl_witness_access constants.%L1.lookup_impl_witness.53b4ff.1, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0.769162.1)] +// CHECK:STDOUT: %impl.elem0.loc10_4.1: @Simple4.%.loc10 (%.56f6e0.1) = impl_witness_access constants.%L1.lookup_impl_witness.cca206.1, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0.4e8926.1)] // CHECK:STDOUT: %bound_method.loc10_4: = bound_method %x.ref, %impl.elem0.loc10_4.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_4.1: = specific_impl_function %impl.elem0.loc10_4.1, @L1.WithSelf.R1(constants.%T) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn.3b2324.1)] +// CHECK:STDOUT: %specific_impl_fn.loc10_4.1: = specific_impl_function %impl.elem0.loc10_4.1, @L1.WithSelf.R1(constants.%T) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn.e046e8.1)] // CHECK:STDOUT: %bound_method.loc10_8: = bound_method %x.ref, %specific_impl_fn.loc10_4.1 // CHECK:STDOUT: %L1.WithSelf.R1.call: init %empty_tuple.type = call %bound_method.loc10_8(%x.ref) -// CHECK:STDOUT: %p.ref: @Simple4.%ptr.loc9_30.1 (%ptr.5d0360.1) = name_ref p, %p +// CHECK:STDOUT: %p.ref: @Simple4.%ptr.loc9_30.1 (%ptr.ed22b9.1) = name_ref p, %p // CHECK:STDOUT: %.loc11_4.1: ref @Simple4.%T.as_type.loc9_23.1 (%T.as_type) = deref %p.ref // CHECK:STDOUT: %S1.ref: %L1.assoc_type = name_ref S1, @L1.WithSelf.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %impl.elem1.loc11_4.1: @Simple4.%.loc11_4.2 (%.9361f0.1) = impl_witness_access constants.%L1.lookup_impl_witness.53b4ff.1, element1 [symbolic = %impl.elem1.loc11_4.2 (constants.%impl.elem1.8b6b4a.1)] +// CHECK:STDOUT: %impl.elem1.loc11_4.1: @Simple4.%.loc11_4.2 (%.b63157.1) = impl_witness_access constants.%L1.lookup_impl_witness.cca206.1, element1 [symbolic = %impl.elem1.loc11_4.2 (constants.%impl.elem1.86bb43.1)] // CHECK:STDOUT: %bound_method.loc11_4: = bound_method %.loc11_4.1, %impl.elem1.loc11_4.1 -// CHECK:STDOUT: %specific_impl_fn.loc11_4.1: = specific_impl_function %impl.elem1.loc11_4.1, @L1.WithSelf.S1(constants.%T) [symbolic = %specific_impl_fn.loc11_4.2 (constants.%specific_impl_fn.f35db6.1)] +// CHECK:STDOUT: %specific_impl_fn.loc11_4.1: = specific_impl_function %impl.elem1.loc11_4.1, @L1.WithSelf.S1(constants.%T) [symbolic = %specific_impl_fn.loc11_4.2 (constants.%specific_impl_fn.340d61.1)] // CHECK:STDOUT: %bound_method.loc11_9: = bound_method %.loc11_4.1, %specific_impl_fn.loc11_4.1 // CHECK:STDOUT: %L1.WithSelf.S1.call: init %empty_tuple.type = call %bound_method.loc11_9(%.loc11_4.1) // CHECK:STDOUT: return @@ -937,40 +937,40 @@ fn Works() { // CHECK:STDOUT: generic fn @Compound4(%V.loc15_15.2: %L1.type) { // CHECK:STDOUT: %V.loc15_15.1: %L1.type = symbolic_binding V, 0 [symbolic = %V.loc15_15.1 (constants.%V)] // CHECK:STDOUT: %V.as_type.loc15_25.1: type = facet_access_type %V.loc15_15.1 [symbolic = %V.as_type.loc15_25.1 (constants.%V.as_type)] -// CHECK:STDOUT: %pattern_type.loc15_23: type = pattern_type %V.as_type.loc15_25.1 [symbolic = %pattern_type.loc15_23 (constants.%pattern_type.34d8e7.2)] -// CHECK:STDOUT: %ptr.loc15_32.1: type = ptr_type %V.as_type.loc15_25.1 [symbolic = %ptr.loc15_32.1 (constants.%ptr.5d0360.2)] -// CHECK:STDOUT: %pattern_type.loc15_29: type = pattern_type %ptr.loc15_32.1 [symbolic = %pattern_type.loc15_29 (constants.%pattern_type.77123f.2)] +// CHECK:STDOUT: %pattern_type.loc15_23: type = pattern_type %V.as_type.loc15_25.1 [symbolic = %pattern_type.loc15_23 (constants.%pattern_type.5697a7.2)] +// CHECK:STDOUT: %ptr.loc15_32.1: type = ptr_type %V.as_type.loc15_25.1 [symbolic = %ptr.loc15_32.1 (constants.%ptr.ed22b9.2)] +// CHECK:STDOUT: %pattern_type.loc15_29: type = pattern_type %ptr.loc15_32.1 [symbolic = %pattern_type.loc15_29 (constants.%pattern_type.e0b9be.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc15_23: = require_complete_type %V.as_type.loc15_25.1 [symbolic = %require_complete.loc15_23 (constants.%require_complete.66b562.2)] -// CHECK:STDOUT: %require_complete.loc15_29: = require_complete_type %ptr.loc15_32.1 [symbolic = %require_complete.loc15_29 (constants.%require_complete.0473f9.2)] -// CHECK:STDOUT: %L1.WithSelf.R1.type: type = fn_type @L1.WithSelf.R1, @L1.WithSelf(%V.loc15_15.1) [symbolic = %L1.WithSelf.R1.type (constants.%L1.WithSelf.R1.type.c49ec5.2)] -// CHECK:STDOUT: %.loc16: type = fn_type_with_self_type %L1.WithSelf.R1.type, %V.loc15_15.1 [symbolic = %.loc16 (constants.%.17ad0e.2)] -// CHECK:STDOUT: %L1.lookup_impl_witness: = lookup_impl_witness %V.loc15_15.1, @L1 [symbolic = %L1.lookup_impl_witness (constants.%L1.lookup_impl_witness.53b4ff.2)] -// CHECK:STDOUT: %impl.elem0.loc16_4.2: @Compound4.%.loc16 (%.17ad0e.2) = impl_witness_access %L1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.769162.2)] -// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @L1.WithSelf.R1(%V.loc15_15.1) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.3b2324.2)] -// CHECK:STDOUT: %L1.WithSelf.S1.type: type = fn_type @L1.WithSelf.S1, @L1.WithSelf(%V.loc15_15.1) [symbolic = %L1.WithSelf.S1.type (constants.%L1.WithSelf.S1.type.cdb9c6.2)] -// CHECK:STDOUT: %.loc17_4.2: type = fn_type_with_self_type %L1.WithSelf.S1.type, %V.loc15_15.1 [symbolic = %.loc17_4.2 (constants.%.9361f0.2)] -// CHECK:STDOUT: %impl.elem1.loc17_4.2: @Compound4.%.loc17_4.2 (%.9361f0.2) = impl_witness_access %L1.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc17_4.2 (constants.%impl.elem1.8b6b4a.2)] -// CHECK:STDOUT: %specific_impl_fn.loc17_4.2: = specific_impl_function %impl.elem1.loc17_4.2, @L1.WithSelf.S1(%V.loc15_15.1) [symbolic = %specific_impl_fn.loc17_4.2 (constants.%specific_impl_fn.f35db6.2)] +// CHECK:STDOUT: %require_complete.loc15_23: = require_complete_type %V.as_type.loc15_25.1 [symbolic = %require_complete.loc15_23 (constants.%require_complete.770490.2)] +// CHECK:STDOUT: %require_complete.loc15_29: = require_complete_type %ptr.loc15_32.1 [symbolic = %require_complete.loc15_29 (constants.%require_complete.0d59a1.2)] +// CHECK:STDOUT: %L1.WithSelf.R1.type: type = fn_type @L1.WithSelf.R1, @L1.WithSelf(%V.loc15_15.1) [symbolic = %L1.WithSelf.R1.type (constants.%L1.WithSelf.R1.type.62535e.2)] +// CHECK:STDOUT: %.loc16: type = fn_type_with_self_type %L1.WithSelf.R1.type, %V.loc15_15.1 [symbolic = %.loc16 (constants.%.56f6e0.2)] +// CHECK:STDOUT: %L1.lookup_impl_witness: = lookup_impl_witness %V.loc15_15.1, @L1 [symbolic = %L1.lookup_impl_witness (constants.%L1.lookup_impl_witness.cca206.2)] +// CHECK:STDOUT: %impl.elem0.loc16_4.2: @Compound4.%.loc16 (%.56f6e0.2) = impl_witness_access %L1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.4e8926.2)] +// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @L1.WithSelf.R1(%V.loc15_15.1) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.e046e8.2)] +// CHECK:STDOUT: %L1.WithSelf.S1.type: type = fn_type @L1.WithSelf.S1, @L1.WithSelf(%V.loc15_15.1) [symbolic = %L1.WithSelf.S1.type (constants.%L1.WithSelf.S1.type.690082.2)] +// CHECK:STDOUT: %.loc17_4.2: type = fn_type_with_self_type %L1.WithSelf.S1.type, %V.loc15_15.1 [symbolic = %.loc17_4.2 (constants.%.b63157.2)] +// CHECK:STDOUT: %impl.elem1.loc17_4.2: @Compound4.%.loc17_4.2 (%.b63157.2) = impl_witness_access %L1.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc17_4.2 (constants.%impl.elem1.86bb43.2)] +// CHECK:STDOUT: %specific_impl_fn.loc17_4.2: = specific_impl_function %impl.elem1.loc17_4.2, @L1.WithSelf.S1(%V.loc15_15.1) [symbolic = %specific_impl_fn.loc17_4.2 (constants.%specific_impl_fn.340d61.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%y.param: @Compound4.%V.as_type.loc15_25.1 (%V.as_type), %p.param: @Compound4.%ptr.loc15_32.1 (%ptr.5d0360.2)) { +// CHECK:STDOUT: fn(%y.param: @Compound4.%V.as_type.loc15_25.1 (%V.as_type), %p.param: @Compound4.%ptr.loc15_32.1 (%ptr.ed22b9.2)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %y.ref: @Compound4.%V.as_type.loc15_25.1 (%V.as_type) = name_ref y, %y // CHECK:STDOUT: %L1.ref.loc16: type = name_ref L1, file.%L1.decl [concrete = constants.%L1.type] // CHECK:STDOUT: %R1.ref: %L1.assoc_type = name_ref R1, @L1.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc16_4.1: @Compound4.%.loc16 (%.17ad0e.2) = impl_witness_access constants.%L1.lookup_impl_witness.53b4ff.2, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.769162.2)] +// CHECK:STDOUT: %impl.elem0.loc16_4.1: @Compound4.%.loc16 (%.56f6e0.2) = impl_witness_access constants.%L1.lookup_impl_witness.cca206.2, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.4e8926.2)] // CHECK:STDOUT: %bound_method.loc16_4: = bound_method %y.ref, %impl.elem0.loc16_4.1 -// CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @L1.WithSelf.R1(constants.%V) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.3b2324.2)] +// CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @L1.WithSelf.R1(constants.%V) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.e046e8.2)] // CHECK:STDOUT: %bound_method.loc16_13: = bound_method %y.ref, %specific_impl_fn.loc16_4.1 // CHECK:STDOUT: %L1.WithSelf.R1.call: init %empty_tuple.type = call %bound_method.loc16_13(%y.ref) -// CHECK:STDOUT: %p.ref: @Compound4.%ptr.loc15_32.1 (%ptr.5d0360.2) = name_ref p, %p +// CHECK:STDOUT: %p.ref: @Compound4.%ptr.loc15_32.1 (%ptr.ed22b9.2) = name_ref p, %p // CHECK:STDOUT: %L1.ref.loc17: type = name_ref L1, file.%L1.decl [concrete = constants.%L1.type] // CHECK:STDOUT: %S1.ref: %L1.assoc_type = name_ref S1, @L1.WithSelf.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %.loc17_4.1: ref @Compound4.%V.as_type.loc15_25.1 (%V.as_type) = deref %p.ref -// CHECK:STDOUT: %impl.elem1.loc17_4.1: @Compound4.%.loc17_4.2 (%.9361f0.2) = impl_witness_access constants.%L1.lookup_impl_witness.53b4ff.2, element1 [symbolic = %impl.elem1.loc17_4.2 (constants.%impl.elem1.8b6b4a.2)] +// CHECK:STDOUT: %impl.elem1.loc17_4.1: @Compound4.%.loc17_4.2 (%.b63157.2) = impl_witness_access constants.%L1.lookup_impl_witness.cca206.2, element1 [symbolic = %impl.elem1.loc17_4.2 (constants.%impl.elem1.86bb43.2)] // CHECK:STDOUT: %bound_method.loc17_4: = bound_method %.loc17_4.1, %impl.elem1.loc17_4.1 -// CHECK:STDOUT: %specific_impl_fn.loc17_4.1: = specific_impl_function %impl.elem1.loc17_4.1, @L1.WithSelf.S1(constants.%V) [symbolic = %specific_impl_fn.loc17_4.2 (constants.%specific_impl_fn.f35db6.2)] +// CHECK:STDOUT: %specific_impl_fn.loc17_4.1: = specific_impl_function %impl.elem1.loc17_4.1, @L1.WithSelf.S1(constants.%V) [symbolic = %specific_impl_fn.loc17_4.2 (constants.%specific_impl_fn.340d61.2)] // CHECK:STDOUT: %bound_method.loc17_14: = bound_method %.loc17_4.1, %specific_impl_fn.loc17_4.1 // CHECK:STDOUT: %L1.WithSelf.S1.call: init %empty_tuple.type = call %bound_method.loc17_14(%.loc17_4.1) // CHECK:STDOUT: return @@ -980,80 +980,80 @@ fn Works() { // CHECK:STDOUT: specific @L1.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %L1.WithSelf.R1.type => constants.%L1.WithSelf.R1.type.5a7 -// CHECK:STDOUT: %L1.WithSelf.R1 => constants.%L1.WithSelf.R1.ef2 -// CHECK:STDOUT: %L1.WithSelf.S1.type => constants.%L1.WithSelf.S1.type.d7d -// CHECK:STDOUT: %L1.WithSelf.S1 => constants.%L1.WithSelf.S1.a7e +// CHECK:STDOUT: %L1.WithSelf.R1.type => constants.%L1.WithSelf.R1.type.861 +// CHECK:STDOUT: %L1.WithSelf.R1 => constants.%L1.WithSelf.R1.1c0 +// CHECK:STDOUT: %L1.WithSelf.S1.type => constants.%L1.WithSelf.S1.type.ff3 +// CHECK:STDOUT: %L1.WithSelf.S1 => constants.%L1.WithSelf.S1.11f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf.R1(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.02d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.63b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf.S1(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc5_19.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.02d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.63b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple4(constants.%T) { // CHECK:STDOUT: %T.loc9_13.1 => constants.%T // CHECK:STDOUT: %T.as_type.loc9_23.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc9_21 => constants.%pattern_type.34d8e7.1 -// CHECK:STDOUT: %ptr.loc9_30.1 => constants.%ptr.5d0360.1 -// CHECK:STDOUT: %pattern_type.loc9_27 => constants.%pattern_type.77123f.1 +// CHECK:STDOUT: %pattern_type.loc9_21 => constants.%pattern_type.5697a7.1 +// CHECK:STDOUT: %ptr.loc9_30.1 => constants.%ptr.ed22b9.1 +// CHECK:STDOUT: %pattern_type.loc9_27 => constants.%pattern_type.e0b9be.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf(constants.%T) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %L1.WithSelf.R1.type => constants.%L1.WithSelf.R1.type.c49ec5.1 -// CHECK:STDOUT: %L1.WithSelf.R1 => constants.%L1.WithSelf.R1.15cca7.1 -// CHECK:STDOUT: %L1.WithSelf.S1.type => constants.%L1.WithSelf.S1.type.cdb9c6.1 -// CHECK:STDOUT: %L1.WithSelf.S1 => constants.%L1.WithSelf.S1.25e76e.1 +// CHECK:STDOUT: %L1.WithSelf.R1.type => constants.%L1.WithSelf.R1.type.62535e.1 +// CHECK:STDOUT: %L1.WithSelf.R1 => constants.%L1.WithSelf.R1.c3617e.1 +// CHECK:STDOUT: %L1.WithSelf.S1.type => constants.%L1.WithSelf.S1.type.690082.1 +// CHECK:STDOUT: %L1.WithSelf.S1 => constants.%L1.WithSelf.S1.acaab8.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf.R1(constants.%T) { // CHECK:STDOUT: %Self => constants.%T // CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.34d8e7.1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5697a7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf.S1(constants.%T) { // CHECK:STDOUT: %Self => constants.%T // CHECK:STDOUT: %Self.as_type.loc5_19.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.34d8e7.1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5697a7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound4(constants.%V) { // CHECK:STDOUT: %V.loc15_15.1 => constants.%V // CHECK:STDOUT: %V.as_type.loc15_25.1 => constants.%V.as_type -// CHECK:STDOUT: %pattern_type.loc15_23 => constants.%pattern_type.34d8e7.2 -// CHECK:STDOUT: %ptr.loc15_32.1 => constants.%ptr.5d0360.2 -// CHECK:STDOUT: %pattern_type.loc15_29 => constants.%pattern_type.77123f.2 +// CHECK:STDOUT: %pattern_type.loc15_23 => constants.%pattern_type.5697a7.2 +// CHECK:STDOUT: %ptr.loc15_32.1 => constants.%ptr.ed22b9.2 +// CHECK:STDOUT: %pattern_type.loc15_29 => constants.%pattern_type.e0b9be.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf(constants.%V) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%V -// CHECK:STDOUT: %L1.WithSelf.R1.type => constants.%L1.WithSelf.R1.type.c49ec5.2 -// CHECK:STDOUT: %L1.WithSelf.R1 => constants.%L1.WithSelf.R1.15cca7.2 -// CHECK:STDOUT: %L1.WithSelf.S1.type => constants.%L1.WithSelf.S1.type.cdb9c6.2 -// CHECK:STDOUT: %L1.WithSelf.S1 => constants.%L1.WithSelf.S1.25e76e.2 +// CHECK:STDOUT: %L1.WithSelf.R1.type => constants.%L1.WithSelf.R1.type.62535e.2 +// CHECK:STDOUT: %L1.WithSelf.R1 => constants.%L1.WithSelf.R1.c3617e.2 +// CHECK:STDOUT: %L1.WithSelf.S1.type => constants.%L1.WithSelf.S1.type.690082.2 +// CHECK:STDOUT: %L1.WithSelf.S1 => constants.%L1.WithSelf.S1.acaab8.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf.R1(constants.%V) { // CHECK:STDOUT: %Self => constants.%V // CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%V.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.34d8e7.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5697a7.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf.S1(constants.%V) { // CHECK:STDOUT: %Self => constants.%V // CHECK:STDOUT: %Self.as_type.loc5_19.1 => constants.%V.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.34d8e7.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5697a7.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_interface_instance_caller_not.carbon @@ -1062,34 +1062,34 @@ fn Works() { // CHECK:STDOUT: %L2.type: type = facet_type <@L2> [concrete] // CHECK:STDOUT: %Self: %L2.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.5c1: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %L2.WithSelf.R2.type.aa1: type = fn_type @L2.WithSelf.R2, @L2.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %pattern_type.b91: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %L2.WithSelf.R2.type.bc0: type = fn_type @L2.WithSelf.R2, @L2.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %L2.WithSelf.R2.594: %L2.WithSelf.R2.type.aa1 = struct_value () [symbolic] +// CHECK:STDOUT: %L2.WithSelf.R2.efd: %L2.WithSelf.R2.type.bc0 = struct_value () [symbolic] // CHECK:STDOUT: %L2.assoc_type: type = assoc_entity_type @L2 [concrete] // CHECK:STDOUT: %assoc0: %L2.assoc_type = assoc_entity element0, @L2.WithSelf.%L2.WithSelf.R2.decl [concrete] -// CHECK:STDOUT: %L2.WithSelf.S2.type.eda: type = fn_type @L2.WithSelf.S2, @L2.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %L2.WithSelf.S2.4d0: %L2.WithSelf.S2.type.eda = struct_value () [symbolic] +// CHECK:STDOUT: %L2.WithSelf.S2.type.51d: type = fn_type @L2.WithSelf.S2, @L2.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %L2.WithSelf.S2.a11: %L2.WithSelf.S2.type.51d = struct_value () [symbolic] // CHECK:STDOUT: %assoc1: %L2.assoc_type = assoc_entity element1, @L2.WithSelf.%L2.WithSelf.S2.decl [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.6c1: type = pattern_type %L2.type [concrete] +// CHECK:STDOUT: %pattern_type.5b3: type = pattern_type %L2.type [concrete] // CHECK:STDOUT: %T: %L2.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Simple5.type: type = fn_type @Simple5 [concrete] // CHECK:STDOUT: %Simple5: %Simple5.type = struct_value () [concrete] -// CHECK:STDOUT: %L2.WithSelf.R2.type.cd3: type = fn_type @L2.WithSelf.R2, @L2.WithSelf(%T) [symbolic] -// CHECK:STDOUT: %L2.WithSelf.R2.a6d: %L2.WithSelf.R2.type.cd3 = struct_value () [symbolic] -// CHECK:STDOUT: %L2.WithSelf.S2.type.e93: type = fn_type @L2.WithSelf.S2, @L2.WithSelf(%T) [symbolic] -// CHECK:STDOUT: %L2.WithSelf.S2.8b3: %L2.WithSelf.S2.type.e93 = struct_value () [symbolic] +// CHECK:STDOUT: %L2.WithSelf.R2.type.1a9: type = fn_type @L2.WithSelf.R2, @L2.WithSelf(%T) [symbolic] +// CHECK:STDOUT: %L2.WithSelf.R2.ae7: %L2.WithSelf.R2.type.1a9 = struct_value () [symbolic] +// CHECK:STDOUT: %L2.WithSelf.S2.type.937: type = fn_type @L2.WithSelf.S2, @L2.WithSelf(%T) [symbolic] +// CHECK:STDOUT: %L2.WithSelf.S2.c68: %L2.WithSelf.S2.type.937 = struct_value () [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %L2.lookup_impl_witness.7a9: = lookup_impl_witness %T, @L2 [symbolic] -// CHECK:STDOUT: %.c1a: type = fn_type_with_self_type %L2.WithSelf.R2.type.cd3, %T [symbolic] -// CHECK:STDOUT: %impl.elem0: %.c1a = impl_witness_access %L2.lookup_impl_witness.7a9, element0 [symbolic] -// CHECK:STDOUT: %pattern_type.cd1: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %specific_impl_fn.dcc: = specific_impl_function %impl.elem0, @L2.WithSelf.R2(%T) [symbolic] -// CHECK:STDOUT: %.120: type = fn_type_with_self_type %L2.WithSelf.S2.type.e93, %T [symbolic] -// CHECK:STDOUT: %impl.elem1: %.120 = impl_witness_access %L2.lookup_impl_witness.7a9, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.843: = specific_impl_function %impl.elem1, @L2.WithSelf.S2(%T) [symbolic] +// CHECK:STDOUT: %L2.lookup_impl_witness.d84: = lookup_impl_witness %T, @L2 [symbolic] +// CHECK:STDOUT: %.244: type = fn_type_with_self_type %L2.WithSelf.R2.type.1a9, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.244 = impl_witness_access %L2.lookup_impl_witness.d84, element0 [symbolic] +// CHECK:STDOUT: %pattern_type.dc8: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %specific_impl_fn.0a8: = specific_impl_function %impl.elem0, @L2.WithSelf.R2(%T) [symbolic] +// CHECK:STDOUT: %.451: type = fn_type_with_self_type %L2.WithSelf.S2.type.937, %T [symbolic] +// CHECK:STDOUT: %impl.elem1: %.451 = impl_witness_access %L2.lookup_impl_witness.d84, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.aa5: = specific_impl_function %impl.elem1, @L2.WithSelf.S2(%T) [symbolic] // CHECK:STDOUT: %V: %L2.type = symbolic_binding V, 0 [symbolic] // CHECK:STDOUT: %Compound5.type: type = fn_type @Compound5 [concrete] // CHECK:STDOUT: %Compound5: %Compound5.type = struct_value () [concrete] @@ -1112,7 +1112,7 @@ fn Works() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %L2.decl: type = interface_decl @L2 [concrete = constants.%L2.type] {} {} // CHECK:STDOUT: %Simple5.decl: %Simple5.type = fn_decl @Simple5 [concrete = constants.%Simple5] { -// CHECK:STDOUT: %T.patt: %pattern_type.6c1 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.5b3 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10: type = splice_block %L2.ref [concrete = constants.%L2.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1121,7 +1121,7 @@ fn Works() { // CHECK:STDOUT: %T.loc10_13.2: %L2.type = symbolic_binding T, 0 [symbolic = %T.loc10_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Compound5.decl: %Compound5.type = fn_decl @Compound5 [concrete = constants.%Compound5] { -// CHECK:STDOUT: %V.patt: %pattern_type.6c1 = symbolic_binding_pattern V, 0 [concrete] +// CHECK:STDOUT: %V.patt: %pattern_type.5b3 = symbolic_binding_pattern V, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc30: type = splice_block %L2.ref.loc30 [concrete = constants.%L2.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1136,9 +1136,9 @@ fn Works() { // CHECK:STDOUT: %L2.WithSelf.decl = interface_with_self_decl @L2 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %L2.WithSelf.R2.decl: @L2.WithSelf.%L2.WithSelf.R2.type (%L2.WithSelf.R2.type.aa1) = fn_decl @L2.WithSelf.R2 [symbolic = @L2.WithSelf.%L2.WithSelf.R2 (constants.%L2.WithSelf.R2.594)] { -// CHECK:STDOUT: %self.param_patt: @L2.WithSelf.R2.%pattern_type (%pattern_type.5c1) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @L2.WithSelf.R2.%pattern_type (%pattern_type.5c1) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %L2.WithSelf.R2.decl: @L2.WithSelf.%L2.WithSelf.R2.type (%L2.WithSelf.R2.type.bc0) = fn_decl @L2.WithSelf.R2 [symbolic = @L2.WithSelf.%L2.WithSelf.R2 (constants.%L2.WithSelf.R2.efd)] { +// CHECK:STDOUT: %self.param_patt: @L2.WithSelf.R2.%pattern_type (%pattern_type.b91) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @L2.WithSelf.R2.%pattern_type (%pattern_type.b91) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @L2.WithSelf.R2.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { @@ -1149,9 +1149,9 @@ fn Works() { // CHECK:STDOUT: %self: @L2.WithSelf.R2.%Self.as_type.loc5_15.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %L2.assoc_type = assoc_entity element0, %L2.WithSelf.R2.decl [concrete = constants.%assoc0] -// CHECK:STDOUT: %L2.WithSelf.S2.decl: @L2.WithSelf.%L2.WithSelf.S2.type (%L2.WithSelf.S2.type.eda) = fn_decl @L2.WithSelf.S2 [symbolic = @L2.WithSelf.%L2.WithSelf.S2 (constants.%L2.WithSelf.S2.4d0)] { -// CHECK:STDOUT: %self.param_patt: @L2.WithSelf.S2.%pattern_type (%pattern_type.5c1) = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @L2.WithSelf.S2.%pattern_type (%pattern_type.5c1) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %L2.WithSelf.S2.decl: @L2.WithSelf.%L2.WithSelf.S2.type (%L2.WithSelf.S2.type.51d) = fn_decl @L2.WithSelf.S2 [symbolic = @L2.WithSelf.%L2.WithSelf.S2 (constants.%L2.WithSelf.S2.a11)] { +// CHECK:STDOUT: %self.param_patt: @L2.WithSelf.S2.%pattern_type (%pattern_type.b91) = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @L2.WithSelf.S2.%pattern_type (%pattern_type.b91) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref @L2.WithSelf.S2.%Self.as_type.loc6_19.1 (%Self.as_type) = ref_param call_param0 // CHECK:STDOUT: %.loc6_19.1: type = splice_block %.loc6_19.2 [symbolic = %Self.as_type.loc6_19.1 (constants.%Self.as_type)] { @@ -1175,7 +1175,7 @@ fn Works() { // CHECK:STDOUT: generic fn @L2.WithSelf.R2(@L2.%Self: %L2.type) { // CHECK:STDOUT: %Self: %L2.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type (constants.%pattern_type.5c1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type (constants.%pattern_type.b91)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @L2.WithSelf.R2.%Self.as_type.loc5_15.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -1183,7 +1183,7 @@ fn Works() { // CHECK:STDOUT: generic fn @L2.WithSelf.S2(@L2.%Self: %L2.type) { // CHECK:STDOUT: %Self: %L2.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc6_19.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_19.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc6_19.1 [symbolic = %pattern_type (constants.%pattern_type.5c1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc6_19.1 [symbolic = %pattern_type (constants.%pattern_type.b91)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: ref @L2.WithSelf.S2.%Self.as_type.loc6_19.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -1193,15 +1193,15 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc18_4.2: type = facet_access_type %T.loc10_13.1 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %L2.WithSelf.R2.type: type = fn_type @L2.WithSelf.R2, @L2.WithSelf(%T.loc10_13.1) [symbolic = %L2.WithSelf.R2.type (constants.%L2.WithSelf.R2.type.cd3)] -// CHECK:STDOUT: %.loc18_4.2: type = fn_type_with_self_type %L2.WithSelf.R2.type, %T.loc10_13.1 [symbolic = %.loc18_4.2 (constants.%.c1a)] -// CHECK:STDOUT: %L2.lookup_impl_witness: = lookup_impl_witness %T.loc10_13.1, @L2 [symbolic = %L2.lookup_impl_witness (constants.%L2.lookup_impl_witness.7a9)] -// CHECK:STDOUT: %impl.elem0.loc18_4.2: @Simple5.%.loc18_4.2 (%.c1a) = impl_witness_access %L2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc18_4.2: = specific_impl_function %impl.elem0.loc18_4.2, @L2.WithSelf.R2(%T.loc10_13.1) [symbolic = %specific_impl_fn.loc18_4.2 (constants.%specific_impl_fn.dcc)] -// CHECK:STDOUT: %L2.WithSelf.S2.type: type = fn_type @L2.WithSelf.S2, @L2.WithSelf(%T.loc10_13.1) [symbolic = %L2.WithSelf.S2.type (constants.%L2.WithSelf.S2.type.e93)] -// CHECK:STDOUT: %.loc26_4.2: type = fn_type_with_self_type %L2.WithSelf.S2.type, %T.loc10_13.1 [symbolic = %.loc26_4.2 (constants.%.120)] -// CHECK:STDOUT: %impl.elem1.loc26_4.2: @Simple5.%.loc26_4.2 (%.120) = impl_witness_access %L2.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc26_4.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %specific_impl_fn.loc26_4.2: = specific_impl_function %impl.elem1.loc26_4.2, @L2.WithSelf.S2(%T.loc10_13.1) [symbolic = %specific_impl_fn.loc26_4.2 (constants.%specific_impl_fn.843)] +// CHECK:STDOUT: %L2.WithSelf.R2.type: type = fn_type @L2.WithSelf.R2, @L2.WithSelf(%T.loc10_13.1) [symbolic = %L2.WithSelf.R2.type (constants.%L2.WithSelf.R2.type.1a9)] +// CHECK:STDOUT: %.loc18_4.2: type = fn_type_with_self_type %L2.WithSelf.R2.type, %T.loc10_13.1 [symbolic = %.loc18_4.2 (constants.%.244)] +// CHECK:STDOUT: %L2.lookup_impl_witness: = lookup_impl_witness %T.loc10_13.1, @L2 [symbolic = %L2.lookup_impl_witness (constants.%L2.lookup_impl_witness.d84)] +// CHECK:STDOUT: %impl.elem0.loc18_4.2: @Simple5.%.loc18_4.2 (%.244) = impl_witness_access %L2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc18_4.2: = specific_impl_function %impl.elem0.loc18_4.2, @L2.WithSelf.R2(%T.loc10_13.1) [symbolic = %specific_impl_fn.loc18_4.2 (constants.%specific_impl_fn.0a8)] +// CHECK:STDOUT: %L2.WithSelf.S2.type: type = fn_type @L2.WithSelf.S2, @L2.WithSelf(%T.loc10_13.1) [symbolic = %L2.WithSelf.S2.type (constants.%L2.WithSelf.S2.type.937)] +// CHECK:STDOUT: %.loc26_4.2: type = fn_type_with_self_type %L2.WithSelf.S2.type, %T.loc10_13.1 [symbolic = %.loc26_4.2 (constants.%.451)] +// CHECK:STDOUT: %impl.elem1.loc26_4.2: @Simple5.%.loc26_4.2 (%.451) = impl_witness_access %L2.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc26_4.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %specific_impl_fn.loc26_4.2: = specific_impl_function %impl.elem1.loc26_4.2, @L2.WithSelf.S2(%T.loc10_13.1) [symbolic = %specific_impl_fn.loc26_4.2 (constants.%specific_impl_fn.aa5)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -1209,15 +1209,15 @@ fn Works() { // CHECK:STDOUT: %T.as_type.loc18_4.1: type = facet_access_type %T.ref.loc18 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc18_4.1: type = converted %T.ref.loc18, %T.as_type.loc18_4.1 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %R2.ref: %L2.assoc_type = name_ref R2, @L2.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc18_4.1: @Simple5.%.loc18_4.2 (%.c1a) = impl_witness_access constants.%L2.lookup_impl_witness.7a9, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc18_4.1: = specific_impl_function %impl.elem0.loc18_4.1, @L2.WithSelf.R2(constants.%T) [symbolic = %specific_impl_fn.loc18_4.2 (constants.%specific_impl_fn.dcc)] +// CHECK:STDOUT: %impl.elem0.loc18_4.1: @Simple5.%.loc18_4.2 (%.244) = impl_witness_access constants.%L2.lookup_impl_witness.d84, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc18_4.1: = specific_impl_function %impl.elem0.loc18_4.1, @L2.WithSelf.R2(constants.%T) [symbolic = %specific_impl_fn.loc18_4.2 (constants.%specific_impl_fn.0a8)] // CHECK:STDOUT: %L2.WithSelf.R2.call: init %empty_tuple.type = call %specific_impl_fn.loc18_4.1() // CHECK:STDOUT: %T.ref.loc26: %L2.type = name_ref T, %T.loc10_13.2 [symbolic = %T.loc10_13.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc26: type = facet_access_type %T.ref.loc26 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc26_4.1: type = converted %T.ref.loc26, %T.as_type.loc26 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %S2.ref: %L2.assoc_type = name_ref S2, @L2.WithSelf.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %impl.elem1.loc26_4.1: @Simple5.%.loc26_4.2 (%.120) = impl_witness_access constants.%L2.lookup_impl_witness.7a9, element1 [symbolic = %impl.elem1.loc26_4.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %specific_impl_fn.loc26_4.1: = specific_impl_function %impl.elem1.loc26_4.1, @L2.WithSelf.S2(constants.%T) [symbolic = %specific_impl_fn.loc26_4.2 (constants.%specific_impl_fn.843)] +// CHECK:STDOUT: %impl.elem1.loc26_4.1: @Simple5.%.loc26_4.2 (%.451) = impl_witness_access constants.%L2.lookup_impl_witness.d84, element1 [symbolic = %impl.elem1.loc26_4.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %specific_impl_fn.loc26_4.1: = specific_impl_function %impl.elem1.loc26_4.1, @L2.WithSelf.S2(constants.%T) [symbolic = %specific_impl_fn.loc26_4.2 (constants.%specific_impl_fn.aa5)] // CHECK:STDOUT: %L2.WithSelf.S2.call: init %empty_tuple.type = call %specific_impl_fn.loc26_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1243,22 +1243,22 @@ fn Works() { // CHECK:STDOUT: specific @L2.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %L2.WithSelf.R2.type => constants.%L2.WithSelf.R2.type.aa1 -// CHECK:STDOUT: %L2.WithSelf.R2 => constants.%L2.WithSelf.R2.594 -// CHECK:STDOUT: %L2.WithSelf.S2.type => constants.%L2.WithSelf.S2.type.eda -// CHECK:STDOUT: %L2.WithSelf.S2 => constants.%L2.WithSelf.S2.4d0 +// CHECK:STDOUT: %L2.WithSelf.R2.type => constants.%L2.WithSelf.R2.type.bc0 +// CHECK:STDOUT: %L2.WithSelf.R2 => constants.%L2.WithSelf.R2.efd +// CHECK:STDOUT: %L2.WithSelf.S2.type => constants.%L2.WithSelf.S2.type.51d +// CHECK:STDOUT: %L2.WithSelf.S2 => constants.%L2.WithSelf.S2.a11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L2.WithSelf.R2(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5c1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b91 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L2.WithSelf.S2(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc6_19.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5c1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b91 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple5(constants.%T) { @@ -1268,22 +1268,22 @@ fn Works() { // CHECK:STDOUT: specific @L2.WithSelf(constants.%T) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %L2.WithSelf.R2.type => constants.%L2.WithSelf.R2.type.cd3 -// CHECK:STDOUT: %L2.WithSelf.R2 => constants.%L2.WithSelf.R2.a6d -// CHECK:STDOUT: %L2.WithSelf.S2.type => constants.%L2.WithSelf.S2.type.e93 -// CHECK:STDOUT: %L2.WithSelf.S2 => constants.%L2.WithSelf.S2.8b3 +// CHECK:STDOUT: %L2.WithSelf.R2.type => constants.%L2.WithSelf.R2.type.1a9 +// CHECK:STDOUT: %L2.WithSelf.R2 => constants.%L2.WithSelf.R2.ae7 +// CHECK:STDOUT: %L2.WithSelf.S2.type => constants.%L2.WithSelf.S2.type.937 +// CHECK:STDOUT: %L2.WithSelf.S2 => constants.%L2.WithSelf.S2.c68 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L2.WithSelf.R2(constants.%T) { // CHECK:STDOUT: %Self => constants.%T // CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.cd1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.dc8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L2.WithSelf.S2(constants.%T) { // CHECK:STDOUT: %Self => constants.%T // CHECK:STDOUT: %Self.as_type.loc6_19.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.cd1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.dc8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound5(constants.%V) { @@ -1294,11 +1294,11 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %A.type: type = facet_type <@A> [concrete] -// CHECK:STDOUT: %Self.2fc: %A.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %A.WithSelf.G.type.c82: type = fn_type @A.WithSelf.G, @A.WithSelf(%Self.2fc) [symbolic] -// CHECK:STDOUT: %A.WithSelf.G.7bf: %A.WithSelf.G.type.c82 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.d0c: %A.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %A.WithSelf.G.type.9da: type = fn_type @A.WithSelf.G, @A.WithSelf(%Self.d0c) [symbolic] +// CHECK:STDOUT: %A.WithSelf.G.06c: %A.WithSelf.G.type.9da = struct_value () [symbolic] // CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A [concrete] -// CHECK:STDOUT: %assoc0.52c: %A.assoc_type = assoc_entity element0, @A.WithSelf.%A.WithSelf.G.decl [concrete] +// CHECK:STDOUT: %assoc0.f27: %A.assoc_type = assoc_entity element0, @A.WithSelf.%A.WithSelf.G.decl [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] @@ -1306,24 +1306,24 @@ fn Works() { // CHECK:STDOUT: %C.as.A.impl.G.type: type = fn_type @C.as.A.impl.G [concrete] // CHECK:STDOUT: %C.as.A.impl.G: %C.as.A.impl.G.type = struct_value () [concrete] // CHECK:STDOUT: %A.facet: %A.type = facet_value %C, (%A.impl_witness) [concrete] -// CHECK:STDOUT: %A.WithSelf.G.type.0c1: type = fn_type @A.WithSelf.G, @A.WithSelf(%A.facet) [concrete] -// CHECK:STDOUT: %A.WithSelf.G.621: %A.WithSelf.G.type.0c1 = struct_value () [concrete] +// CHECK:STDOUT: %A.WithSelf.G.type.ec7: type = fn_type @A.WithSelf.G, @A.WithSelf(%A.facet) [concrete] +// CHECK:STDOUT: %A.WithSelf.G.c79: %A.WithSelf.G.type.ec7 = struct_value () [concrete] // CHECK:STDOUT: %Fails.type: type = fn_type @Fails [concrete] // CHECK:STDOUT: %Fails: %Fails.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.fd8: type = generic_interface_type @BitAndWith [concrete] -// CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.fd8 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.2af: type = facet_type <@BitAndWith, @BitAndWith(type)> [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] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.2af = facet_value type, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.5d1: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %.9ee: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.5d1, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %A.type, %type.as.BitAndWith.impl.Op [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1333,10 +1333,10 @@ fn Works() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.fd8 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @type.as.BitAndWith.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.a06 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @type.as.BitAndWith.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1357,12 +1357,12 @@ fn Works() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @A { -// CHECK:STDOUT: %Self: %A.type = symbolic_binding Self, 0 [symbolic = constants.%Self.2fc] +// CHECK:STDOUT: %Self: %A.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d0c] // CHECK:STDOUT: %A.WithSelf.decl = interface_with_self_decl @A [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %A.WithSelf.G.decl: @A.WithSelf.%A.WithSelf.G.type (%A.WithSelf.G.type.c82) = fn_decl @A.WithSelf.G [symbolic = @A.WithSelf.%A.WithSelf.G (constants.%A.WithSelf.G.7bf)] {} {} -// CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, %A.WithSelf.G.decl [concrete = constants.%assoc0.52c] +// CHECK:STDOUT: %A.WithSelf.G.decl: @A.WithSelf.%A.WithSelf.G.type (%A.WithSelf.G.type.9da) = fn_decl @A.WithSelf.G [symbolic = @A.WithSelf.%A.WithSelf.G (constants.%A.WithSelf.G.06c)] {} {} +// CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, %A.WithSelf.G.decl [concrete = constants.%assoc0.f27] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -1409,10 +1409,10 @@ fn Works() { // CHECK:STDOUT: %.loc22_7: init %C = converted %.loc22_5.1, %.loc22_5.3 [concrete = constants.%C.val] // CHECK:STDOUT: %A.ref.loc22_15: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %A.ref.loc22_19: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %impl.elem0.loc22: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc22: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method.loc22: = bound_method %A.ref.loc22_15, %impl.elem0.loc22 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc22: init type = call %bound_method.loc22(%A.ref.loc22_15, %A.ref.loc22_19) [concrete = constants.%A.type] -// CHECK:STDOUT: %G.ref.loc22: %A.assoc_type = name_ref G, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.52c] +// CHECK:STDOUT: %G.ref.loc22: %A.assoc_type = name_ref G, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.f27] // CHECK:STDOUT: %.loc22_12: %A.type = converted %.loc22_7, [concrete = ] // CHECK:STDOUT: %.loc30_6.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %C.ref.loc30_11: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -1422,7 +1422,7 @@ fn Works() { // CHECK:STDOUT: %C.ref.loc30_18: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %A.ref.loc30_24: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %A.ref.loc30_28: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %impl.elem0.loc30_26: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc30_26: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method.loc30_26: = bound_method %A.ref.loc30_24, %impl.elem0.loc30_26 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc30_26: init type = call %bound_method.loc30_26(%A.ref.loc30_24, %A.ref.loc30_28) [concrete = constants.%A.type] // CHECK:STDOUT: %.loc30_29.1: type = value_of_initializer %type.as.BitAndWith.impl.Op.call.loc30_26 [concrete = constants.%A.type] @@ -1433,10 +1433,10 @@ fn Works() { // CHECK:STDOUT: %.loc30_30: type = converted %.loc30_20, %as_type.loc30 [concrete = constants.%C] // CHECK:STDOUT: %A.ref.loc30_35: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %A.ref.loc30_39: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %impl.elem0.loc30_37: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc30_37: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method.loc30_37: = bound_method %A.ref.loc30_35, %impl.elem0.loc30_37 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc30_37: init type = call %bound_method.loc30_37(%A.ref.loc30_35, %A.ref.loc30_39) [concrete = constants.%A.type] -// CHECK:STDOUT: %G.ref.loc30: %A.assoc_type = name_ref G, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.52c] +// CHECK:STDOUT: %G.ref.loc30: %A.assoc_type = name_ref G, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.f27] // CHECK:STDOUT: %.loc30_32: %A.type = converted %.loc30_8, [concrete = ] // CHECK:STDOUT: %.loc38_6.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %C.ref.loc38_11: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -1446,7 +1446,7 @@ fn Works() { // CHECK:STDOUT: %C.ref.loc38_18: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %A.ref.loc38_24: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %A.ref.loc38_28: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %impl.elem0.loc38: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc38: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method.loc38: = bound_method %A.ref.loc38_24, %impl.elem0.loc38 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc38: init type = call %bound_method.loc38(%A.ref.loc38_24, %A.ref.loc38_28) [concrete = constants.%A.type] // CHECK:STDOUT: %.loc38_29.1: type = value_of_initializer %type.as.BitAndWith.impl.Op.call.loc38 [concrete = constants.%A.type] @@ -1456,25 +1456,25 @@ fn Works() { // CHECK:STDOUT: %as_type.loc38: type = facet_access_type %.loc38_20 [concrete = constants.%C] // CHECK:STDOUT: %.loc38_30: type = converted %.loc38_20, %as_type.loc38 [concrete = constants.%C] // CHECK:STDOUT: %A.ref.loc38_34: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %G.ref.loc38: %A.assoc_type = name_ref G, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.52c] +// CHECK:STDOUT: %G.ref.loc38: %A.assoc_type = name_ref G, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.f27] // CHECK:STDOUT: %.loc38_32: %A.type = converted %.loc38_8, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%Self.2fc) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%Self.d0c) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.2fc -// CHECK:STDOUT: %A.WithSelf.G.type => constants.%A.WithSelf.G.type.c82 -// CHECK:STDOUT: %A.WithSelf.G => constants.%A.WithSelf.G.7bf +// CHECK:STDOUT: %Self => constants.%Self.d0c +// CHECK:STDOUT: %A.WithSelf.G.type => constants.%A.WithSelf.G.type.9da +// CHECK:STDOUT: %A.WithSelf.G => constants.%A.WithSelf.G.06c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.G(constants.%Self.2fc) {} +// CHECK:STDOUT: specific @A.WithSelf.G(constants.%Self.d0c) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf(constants.%A.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%A.facet -// CHECK:STDOUT: %A.WithSelf.G.type => constants.%A.WithSelf.G.type.0c1 -// CHECK:STDOUT: %A.WithSelf.G => constants.%A.WithSelf.G.621 +// CHECK:STDOUT: %A.WithSelf.G.type => constants.%A.WithSelf.G.type.ec7 +// CHECK:STDOUT: %A.WithSelf.G => constants.%A.WithSelf.G.c79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf.G(constants.%A.facet) {} @@ -1483,12 +1483,12 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %A.type: type = facet_type <@A> [concrete] -// CHECK:STDOUT: %Self.2fc: %A.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %A.WithSelf.G.type.c82: type = fn_type @A.WithSelf.G, @A.WithSelf(%Self.2fc) [symbolic] +// CHECK:STDOUT: %Self.d0c: %A.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %A.WithSelf.G.type.9da: type = fn_type @A.WithSelf.G, @A.WithSelf(%Self.d0c) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %A.WithSelf.G.7bf: %A.WithSelf.G.type.c82 = struct_value () [symbolic] +// CHECK:STDOUT: %A.WithSelf.G.06c: %A.WithSelf.G.type.9da = struct_value () [symbolic] // CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A [concrete] -// CHECK:STDOUT: %assoc0.52c: %A.assoc_type = assoc_entity element0, @A.WithSelf.%A.WithSelf.G.decl [concrete] +// CHECK:STDOUT: %assoc0.f27: %A.assoc_type = assoc_entity element0, @A.WithSelf.%A.WithSelf.G.decl [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] @@ -1496,21 +1496,21 @@ fn Works() { // CHECK:STDOUT: %C.as.A.impl.G.type: type = fn_type @C.as.A.impl.G [concrete] // CHECK:STDOUT: %C.as.A.impl.G: %C.as.A.impl.G.type = struct_value () [concrete] // CHECK:STDOUT: %A.facet: %A.type = facet_value %C, (%A.impl_witness) [concrete] -// CHECK:STDOUT: %A.WithSelf.G.type.0c1: type = fn_type @A.WithSelf.G, @A.WithSelf(%A.facet) [concrete] -// CHECK:STDOUT: %A.WithSelf.G.621: %A.WithSelf.G.type.0c1 = struct_value () [concrete] +// CHECK:STDOUT: %A.WithSelf.G.type.ec7: type = fn_type @A.WithSelf.G, @A.WithSelf(%A.facet) [concrete] +// CHECK:STDOUT: %A.WithSelf.G.c79: %A.WithSelf.G.type.ec7 = struct_value () [concrete] // CHECK:STDOUT: %Works.type: type = fn_type @Works [concrete] // CHECK:STDOUT: %Works: %Works.type = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.fd8: type = generic_interface_type @BitAndWith [concrete] -// CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.fd8 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.2af: type = facet_type <@BitAndWith, @BitAndWith(type)> [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] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.2af = facet_value type, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.5d1: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %.9ee: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.5d1, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %A.type, %type.as.BitAndWith.impl.Op [concrete] -// CHECK:STDOUT: %.35a: type = fn_type_with_self_type %A.WithSelf.G.type.0c1, %A.facet [concrete] +// CHECK:STDOUT: %.282: type = fn_type_with_self_type %A.WithSelf.G.type.ec7, %A.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1519,9 +1519,9 @@ fn Works() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.fd8 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @type.as.BitAndWith.impl [concrete] +// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.a06 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @type.as.BitAndWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1542,12 +1542,12 @@ fn Works() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @A { -// CHECK:STDOUT: %Self: %A.type = symbolic_binding Self, 0 [symbolic = constants.%Self.2fc] +// CHECK:STDOUT: %Self: %A.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d0c] // CHECK:STDOUT: %A.WithSelf.decl = interface_with_self_decl @A [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %A.WithSelf.G.decl: @A.WithSelf.%A.WithSelf.G.type (%A.WithSelf.G.type.c82) = fn_decl @A.WithSelf.G [symbolic = @A.WithSelf.%A.WithSelf.G (constants.%A.WithSelf.G.7bf)] {} {} -// CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, %A.WithSelf.G.decl [concrete = constants.%assoc0.52c] +// CHECK:STDOUT: %A.WithSelf.G.decl: @A.WithSelf.%A.WithSelf.G.type (%A.WithSelf.G.type.9da) = fn_decl @A.WithSelf.G [symbolic = @A.WithSelf.%A.WithSelf.G (constants.%A.WithSelf.G.06c)] {} {} +// CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, %A.WithSelf.G.decl [concrete = constants.%assoc0.f27] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -1590,18 +1590,18 @@ fn Works() { // CHECK:STDOUT: %C.ref.loc13: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %A.ref.loc13_7: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %A.ref.loc13_11: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %impl.elem0.loc13_9: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc13_9: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method.loc13: = bound_method %A.ref.loc13_7, %impl.elem0.loc13_9 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc13: init type = call %bound_method.loc13(%A.ref.loc13_7, %A.ref.loc13_11) [concrete = constants.%A.type] -// CHECK:STDOUT: %G.ref.loc13: %A.assoc_type = name_ref G, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.52c] +// CHECK:STDOUT: %G.ref.loc13: %A.assoc_type = name_ref G, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.f27] // CHECK:STDOUT: %A.facet.loc13: %A.type = facet_value %C.ref.loc13, (constants.%A.impl_witness) [concrete = constants.%A.facet] // CHECK:STDOUT: %.loc13: %A.type = converted %C.ref.loc13, %A.facet.loc13 [concrete = constants.%A.facet] -// CHECK:STDOUT: %impl.elem0.loc13_4: %.35a = impl_witness_access constants.%A.impl_witness, element0 [concrete = constants.%C.as.A.impl.G] +// CHECK:STDOUT: %impl.elem0.loc13_4: %.282 = impl_witness_access constants.%A.impl_witness, element0 [concrete = constants.%C.as.A.impl.G] // CHECK:STDOUT: %C.as.A.impl.G.call.loc13: init %empty_tuple.type = call %impl.elem0.loc13_4() // CHECK:STDOUT: %C.ref.loc14: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %A.ref.loc14_10: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %A.ref.loc14_14: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %impl.elem0.loc14_12: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc14_12: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method.loc14_12: = bound_method %A.ref.loc14_10, %impl.elem0.loc14_12 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc14_12: init type = call %bound_method.loc14_12(%A.ref.loc14_10, %A.ref.loc14_14) [concrete = constants.%A.type] // CHECK:STDOUT: %.loc14_15.1: type = value_of_initializer %type.as.BitAndWith.impl.Op.call.loc14_12 [concrete = constants.%A.type] @@ -1610,16 +1610,16 @@ fn Works() { // CHECK:STDOUT: %.loc14_6: %A.type = converted %C.ref.loc14, %A.facet.loc14 [concrete = constants.%A.facet] // CHECK:STDOUT: %A.ref.loc14_20: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %A.ref.loc14_24: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %impl.elem0.loc14_22: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc14_22: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method.loc14_22: = bound_method %A.ref.loc14_20, %impl.elem0.loc14_22 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc14_22: init type = call %bound_method.loc14_22(%A.ref.loc14_20, %A.ref.loc14_24) [concrete = constants.%A.type] -// CHECK:STDOUT: %G.ref.loc14: %A.assoc_type = name_ref G, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.52c] -// CHECK:STDOUT: %impl.elem0.loc14_17: %.35a = impl_witness_access constants.%A.impl_witness, element0 [concrete = constants.%C.as.A.impl.G] +// CHECK:STDOUT: %G.ref.loc14: %A.assoc_type = name_ref G, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.f27] +// CHECK:STDOUT: %impl.elem0.loc14_17: %.282 = impl_witness_access constants.%A.impl_witness, element0 [concrete = constants.%C.as.A.impl.G] // CHECK:STDOUT: %C.as.A.impl.G.call.loc14: init %empty_tuple.type = call %impl.elem0.loc14_17() // CHECK:STDOUT: %C.ref.loc15: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %A.ref.loc15_10: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %A.ref.loc15_14: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %impl.elem0.loc15_12: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc15_12: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method.loc15: = bound_method %A.ref.loc15_10, %impl.elem0.loc15_12 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc15: init type = call %bound_method.loc15(%A.ref.loc15_10, %A.ref.loc15_14) [concrete = constants.%A.type] // CHECK:STDOUT: %.loc15_15.1: type = value_of_initializer %type.as.BitAndWith.impl.Op.call.loc15 [concrete = constants.%A.type] @@ -1627,26 +1627,26 @@ fn Works() { // CHECK:STDOUT: %A.facet.loc15: %A.type = facet_value %C.ref.loc15, (constants.%A.impl_witness) [concrete = constants.%A.facet] // CHECK:STDOUT: %.loc15_6: %A.type = converted %C.ref.loc15, %A.facet.loc15 [concrete = constants.%A.facet] // CHECK:STDOUT: %A.ref.loc15_19: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %G.ref.loc15: %A.assoc_type = name_ref G, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.52c] -// CHECK:STDOUT: %impl.elem0.loc15_17: %.35a = impl_witness_access constants.%A.impl_witness, element0 [concrete = constants.%C.as.A.impl.G] +// CHECK:STDOUT: %G.ref.loc15: %A.assoc_type = name_ref G, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.f27] +// CHECK:STDOUT: %impl.elem0.loc15_17: %.282 = impl_witness_access constants.%A.impl_witness, element0 [concrete = constants.%C.as.A.impl.G] // CHECK:STDOUT: %C.as.A.impl.G.call.loc15: init %empty_tuple.type = call %impl.elem0.loc15_17() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%Self.2fc) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%Self.d0c) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.2fc -// CHECK:STDOUT: %A.WithSelf.G.type => constants.%A.WithSelf.G.type.c82 -// CHECK:STDOUT: %A.WithSelf.G => constants.%A.WithSelf.G.7bf +// CHECK:STDOUT: %Self => constants.%Self.d0c +// CHECK:STDOUT: %A.WithSelf.G.type => constants.%A.WithSelf.G.type.9da +// CHECK:STDOUT: %A.WithSelf.G => constants.%A.WithSelf.G.06c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.G(constants.%Self.2fc) {} +// CHECK:STDOUT: specific @A.WithSelf.G(constants.%Self.d0c) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf(constants.%A.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%A.facet -// CHECK:STDOUT: %A.WithSelf.G.type => constants.%A.WithSelf.G.type.0c1 -// CHECK:STDOUT: %A.WithSelf.G => constants.%A.WithSelf.G.621 +// CHECK:STDOUT: %A.WithSelf.G.type => constants.%A.WithSelf.G.type.ec7 +// CHECK:STDOUT: %A.WithSelf.G => constants.%A.WithSelf.G.c79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf.G(constants.%A.facet) {} diff --git a/toolchain/check/testdata/interface/default_fn.carbon b/toolchain/check/testdata/interface/default_fn.carbon index 4eeb2820d2fb..76cabb5c24a0 100644 --- a/toolchain/check/testdata/interface/default_fn.carbon +++ b/toolchain/check/testdata/interface/default_fn.carbon @@ -32,30 +32,30 @@ class C { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.3ec: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.de7: type = facet_access_type %Self.3ec [symbolic] -// CHECK:STDOUT: %pattern_type.b56: type = pattern_type %Self.as_type.de7 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.bcf: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.3ec) [symbolic] +// CHECK:STDOUT: %Self.4e9: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.0fa: type = facet_access_type %Self.4e9 [symbolic] +// CHECK:STDOUT: %pattern_type.492: type = pattern_type %Self.as_type.0fa [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.933: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.4e9) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %I.WithSelf.F.e2f: %I.WithSelf.F.type.bcf = struct_value () [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.02a: %I.WithSelf.F.type.933 = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.84b: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %assoc0.08d: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // 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: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.67a: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.2ad: %I.WithSelf.F.type.67a = struct_value () [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.903: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.60d: %I.WithSelf.F.type.903 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.de7 [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.0fa [symbolic] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %.deb: type = fn_type_with_self_type %I.WithSelf.F.type.67a, %I.facet [concrete] +// CHECK:STDOUT: %.66b: type = fn_type_with_self_type %I.WithSelf.F.type.903, %I.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc20_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -77,23 +77,23 @@ class C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.3ec] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.4e9] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.bcf) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.e2f)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.b56) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.b56) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.933) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.02a)] { +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.492) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.492) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc18_23.1 (%Self.as_type.de7) = value_param call_param0 -// CHECK:STDOUT: %.loc18_23.1: type = splice_block %.loc18_23.2 [symbolic = %Self.as_type.loc18_23.1 (constants.%Self.as_type.de7)] { -// CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.3ec)] -// CHECK:STDOUT: %Self.as_type.loc18_23.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc18_23.1 (constants.%Self.as_type.de7)] -// CHECK:STDOUT: %.loc18_23.2: type = converted %Self.ref, %Self.as_type.loc18_23.2 [symbolic = %Self.as_type.loc18_23.1 (constants.%Self.as_type.de7)] +// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc18_23.1 (%Self.as_type.0fa) = value_param call_param0 +// CHECK:STDOUT: %.loc18_23.1: type = splice_block %.loc18_23.2 [symbolic = %Self.as_type.loc18_23.1 (constants.%Self.as_type.0fa)] { +// CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.4e9)] +// CHECK:STDOUT: %Self.as_type.loc18_23.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc18_23.1 (constants.%Self.as_type.0fa)] +// CHECK:STDOUT: %.loc18_23.2: type = converted %Self.ref, %Self.as_type.loc18_23.2 [symbolic = %Self.as_type.loc18_23.1 (constants.%Self.as_type.0fa)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.as_type.loc18_23.1 (%Self.as_type.de7) = value_binding self, %self.param +// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.as_type.loc18_23.1 (%Self.as_type.0fa) = value_binding self, %self.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0.84b] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0.08d] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -109,8 +109,8 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.I.impl: %C.ref as %I.ref { // CHECK:STDOUT: %C.as.I.impl.F.decl: %C.as.I.impl.F.type = fn_decl @C.as.I.impl.F [concrete = constants.%C.as.I.impl.F] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.0d5 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.I.impl.%C.ref [concrete = constants.%C] @@ -141,18 +141,18 @@ class C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.3ec)] -// CHECK:STDOUT: %Self.as_type.loc18_23.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc18_23.1 (constants.%Self.as_type.de7)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc18_23.1 [symbolic = %pattern_type (constants.%pattern_type.b56)] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.4e9)] +// CHECK:STDOUT: %Self.as_type.loc18_23.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc18_23.1 (constants.%Self.as_type.0fa)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc18_23.1 [symbolic = %pattern_type (constants.%pattern_type.492)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc18_23.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc18_23.1 (%Self.as_type.de7)) { +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc18_23.1 (%Self.as_type.0fa)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.0d5 = var_pattern %c.patt [concrete] +// 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: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt // CHECK:STDOUT: %.loc20_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -163,12 +163,12 @@ class C { // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var // CHECK:STDOUT: %c.ref: ref %C = name_ref c, %c // CHECK:STDOUT: %I.ref: type = name_ref I, @C.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.WithSelf.%assoc0 [concrete = constants.%assoc0.84b] -// CHECK:STDOUT: %impl.elem0: %.deb = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F] +// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.WithSelf.%assoc0 [concrete = constants.%assoc0.08d] +// CHECK:STDOUT: %impl.elem0: %.66b = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F] // 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.2dd605.2 +// 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: return // CHECK:STDOUT: } @@ -186,29 +186,29 @@ class C { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.3ec) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.4e9) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.3ec -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.bcf -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.e2f +// CHECK:STDOUT: %Self => constants.%Self.4e9 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.933 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.02a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.3ec) { -// CHECK:STDOUT: %Self => constants.%Self.3ec -// CHECK:STDOUT: %Self.as_type.loc18_23.1 => constants.%Self.as_type.de7 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b56 +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.4e9) { +// CHECK:STDOUT: %Self => constants.%Self.4e9 +// CHECK:STDOUT: %Self.as_type.loc18_23.1 => constants.%Self.as_type.0fa +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.492 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.67a -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.2ad +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.903 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.60d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet // CHECK:STDOUT: %Self.as_type.loc18_23.1 => constants.%C -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d5 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/export_name.carbon b/toolchain/check/testdata/interface/export_name.carbon index 1725ce271bd5..ccfa14c782af 100644 --- a/toolchain/check/testdata/interface/export_name.carbon +++ b/toolchain/check/testdata/interface/export_name.carbon @@ -78,7 +78,7 @@ fn UseEmpty(unused i: I) {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//base, I, loaded [concrete = constants.%I.type] -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//base, loc4_13, unloaded +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//base, loc4_13, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -91,7 +91,7 @@ fn UseEmpty(unused i: I) {} // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "base.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -111,7 +111,7 @@ fn UseEmpty(unused i: I) {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//export, I, loaded [concrete = constants.%I.type] -// CHECK:STDOUT: %Main.import_ref.37f = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.30a = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -132,7 +132,7 @@ fn UseEmpty(unused i: I) {} // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "export.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.37f +// CHECK:STDOUT: .Self = imports.%Main.import_ref.30a // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: diff --git a/toolchain/check/testdata/interface/fail_add_member_outside_definition.carbon b/toolchain/check/testdata/interface/fail_add_member_outside_definition.carbon index d7562ba8a875..614dfc8963e3 100644 --- a/toolchain/check/testdata/interface/fail_add_member_outside_definition.carbon +++ b/toolchain/check/testdata/interface/fail_add_member_outside_definition.carbon @@ -40,17 +40,17 @@ interface Outer { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [concrete] -// CHECK:STDOUT: %Self.b54: %Interface.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Interface.WithSelf.F.type: type = fn_type @Interface.WithSelf.F, @Interface.WithSelf(%Self.b54) [symbolic] +// CHECK:STDOUT: %Self.3ce: %Interface.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Interface.WithSelf.F.type: type = fn_type @Interface.WithSelf.F, @Interface.WithSelf(%Self.3ce) [symbolic] // CHECK:STDOUT: %Interface.WithSelf.F: %Interface.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %Outer.type: type = facet_type <@Outer> [concrete] -// CHECK:STDOUT: %Self.7fb: %Outer.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%Self.7fb)> [symbolic] -// CHECK:STDOUT: %Self.2d6: %Inner.type = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Inner.WithSelf.F.type.b217f1.1: type = fn_type @Inner.WithSelf.F.loc30, @Inner.WithSelf(%Self.7fb, %Self.2d6) [symbolic] -// CHECK:STDOUT: %Inner.WithSelf.F.915cdb.1: %Inner.WithSelf.F.type.b217f1.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.WithSelf.F.type.b217f1.2: type = fn_type @Inner.WithSelf.F.loc36, @Inner.WithSelf(%Self.7fb, %Self.2d6) [symbolic] -// CHECK:STDOUT: %Inner.WithSelf.F.915cdb.2: %Inner.WithSelf.F.type.b217f1.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.a58: %Outer.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%Self.a58)> [symbolic] +// CHECK:STDOUT: %Self.279: %Inner.type = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Inner.WithSelf.F.type.445c54.1: type = fn_type @Inner.WithSelf.F.loc30, @Inner.WithSelf(%Self.a58, %Self.279) [symbolic] +// CHECK:STDOUT: %Inner.WithSelf.F.cae502.1: %Inner.WithSelf.F.type.445c54.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Inner.WithSelf.F.type.445c54.2: type = fn_type @Inner.WithSelf.F.loc36, @Inner.WithSelf(%Self.a58, %Self.279) [symbolic] +// CHECK:STDOUT: %Inner.WithSelf.F.cae502.2: %Inner.WithSelf.F.type.445c54.2 = struct_value () [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -64,7 +64,7 @@ interface Outer { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Interface { -// CHECK:STDOUT: %Self: %Interface.type = symbolic_binding Self, 0 [symbolic = constants.%Self.b54] +// CHECK:STDOUT: %Self: %Interface.type = symbolic_binding Self, 0 [symbolic = constants.%Self.3ce] // CHECK:STDOUT: %Interface.WithSelf.decl = interface_with_self_decl @Interface [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -76,12 +76,12 @@ interface Outer { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Outer { -// CHECK:STDOUT: %Self: %Outer.type = symbolic_binding Self, 0 [symbolic = constants.%Self.7fb] +// CHECK:STDOUT: %Self: %Outer.type = symbolic_binding Self, 0 [symbolic = constants.%Self.a58] // CHECK:STDOUT: %Outer.WithSelf.decl = interface_with_self_decl @Outer [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Inner.decl: type = interface_decl @Inner [symbolic = @Outer.WithSelf.%Inner.type (constants.%Inner.type)] {} {} -// CHECK:STDOUT: %Inner.WithSelf.F.decl: @Outer.WithSelf.%Inner.WithSelf.F.type (%Inner.WithSelf.F.type.b217f1.2) = fn_decl @Inner.WithSelf.F.loc36 [symbolic = @Outer.WithSelf.%Inner.WithSelf.F (constants.%Inner.WithSelf.F.915cdb.2)] {} {} +// CHECK:STDOUT: %Inner.WithSelf.F.decl: @Outer.WithSelf.%Inner.WithSelf.F.type (%Inner.WithSelf.F.type.445c54.2) = fn_decl @Inner.WithSelf.F.loc36 [symbolic = @Outer.WithSelf.%Inner.WithSelf.F (constants.%Inner.WithSelf.F.cae502.2)] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -93,16 +93,16 @@ interface Outer { // CHECK:STDOUT: // CHECK:STDOUT: generic interface @Inner(@Outer.%Self: %Outer.type) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self.loc25_19.2: %Outer.type = symbolic_binding Self, 0 [symbolic = %Self.loc25_19.2 (constants.%Self.7fb)] +// CHECK:STDOUT: %Self.loc25_19.2: %Outer.type = symbolic_binding Self, 0 [symbolic = %Self.loc25_19.2 (constants.%Self.a58)] // CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%Self.loc25_19.2)> [symbolic = %Inner.type (constants.%Inner.type)] -// CHECK:STDOUT: %Self.loc25_19.3: @Inner.%Inner.type (%Inner.type) = symbolic_binding Self, 1 [symbolic = %Self.loc25_19.3 (constants.%Self.2d6)] +// CHECK:STDOUT: %Self.loc25_19.3: @Inner.%Inner.type (%Inner.type) = symbolic_binding Self, 1 [symbolic = %Self.loc25_19.3 (constants.%Self.279)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc25_19.1: @Inner.%Inner.type (%Inner.type) = symbolic_binding Self, 1 [symbolic = %Self.loc25_19.3 (constants.%Self.2d6)] +// CHECK:STDOUT: %Self.loc25_19.1: @Inner.%Inner.type (%Inner.type) = symbolic_binding Self, 1 [symbolic = %Self.loc25_19.3 (constants.%Self.279)] // CHECK:STDOUT: %Inner.WithSelf.decl = interface_with_self_decl @Inner [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Inner.WithSelf.F.decl: @Inner.WithSelf.%Inner.WithSelf.F.type (%Inner.WithSelf.F.type.b217f1.1) = fn_decl @Inner.WithSelf.F.loc30 [symbolic = @Inner.WithSelf.%Inner.WithSelf.F (constants.%Inner.WithSelf.F.915cdb.1)] {} {} +// CHECK:STDOUT: %Inner.WithSelf.F.decl: @Inner.WithSelf.%Inner.WithSelf.F.type (%Inner.WithSelf.F.type.445c54.1) = fn_decl @Inner.WithSelf.F.loc30 [symbolic = @Inner.WithSelf.%Inner.WithSelf.F (constants.%Inner.WithSelf.F.cae502.1)] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc25_19.1 @@ -130,22 +130,22 @@ interface Outer { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Self.b54) {} +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Self.3ce) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf.F(constants.%Self.b54) {} +// CHECK:STDOUT: specific @Interface.WithSelf.F(constants.%Self.3ce) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Outer.WithSelf(constants.%Self.7fb) {} +// CHECK:STDOUT: specific @Outer.WithSelf(constants.%Self.a58) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner(constants.%Self.7fb) { +// CHECK:STDOUT: specific @Inner(constants.%Self.a58) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self.loc25_19.2 => constants.%Self.7fb +// CHECK:STDOUT: %Self.loc25_19.2 => constants.%Self.a58 // CHECK:STDOUT: %Inner.type => constants.%Inner.type -// CHECK:STDOUT: %Self.loc25_19.3 => constants.%Self.2d6 +// CHECK:STDOUT: %Self.loc25_19.3 => constants.%Self.279 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.WithSelf(constants.%Self.7fb, constants.%Self.2d6) {} +// CHECK:STDOUT: specific @Inner.WithSelf(constants.%Self.a58, constants.%Self.279) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.WithSelf.F.loc30(constants.%Self.7fb, constants.%Self.2d6) {} +// CHECK:STDOUT: specific @Inner.WithSelf.F.loc30(constants.%Self.a58, constants.%Self.279) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.WithSelf.F.loc36(constants.%Self.7fb, constants.%Self.2d6) {} +// CHECK:STDOUT: specific @Inner.WithSelf.F.loc36(constants.%Self.a58, constants.%Self.279) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon b/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon index 443497ba0e7c..0a6b88db2acb 100644 --- a/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon +++ b/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon @@ -78,20 +78,20 @@ interface C { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I2.type: type = facet_type <@I2> [concrete] // CHECK:STDOUT: %I2.assoc_type: type = assoc_entity_type @I2 [concrete] -// CHECK:STDOUT: %assoc0.071: %I2.assoc_type = assoc_entity element0, @I2.WithSelf.%T2 [concrete] +// CHECK:STDOUT: %assoc0.d6c: %I2.assoc_type = assoc_entity element0, @I2.WithSelf.%T2 [concrete] // CHECK:STDOUT: %J2.type: type = facet_type <@J2> [concrete] -// CHECK:STDOUT: %Self.4da: %J2.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.4da [symbolic] -// CHECK:STDOUT: %I2.lookup_impl_witness.62a: = lookup_impl_witness %Self.4da, @I2 [symbolic] -// CHECK:STDOUT: %.049: require_specific_def_type = require_specific_def @V.as_type.as.I2.impl(%Self.4da) [symbolic] -// CHECK:STDOUT: %I2.facet.6d7: %I2.type = facet_value %Self.as_type, (%I2.lookup_impl_witness.62a) [symbolic] -// CHECK:STDOUT: %impl.elem0.8df: type = impl_witness_access %I2.lookup_impl_witness.62a, element0 [symbolic] -// CHECK:STDOUT: %.72e: Core.Form = init_form %impl.elem0.8df [symbolic] -// CHECK:STDOUT: %pattern_type.089: type = pattern_type %impl.elem0.8df [symbolic] -// CHECK:STDOUT: %J2.WithSelf.F2.type: type = fn_type @J2.WithSelf.F2, @J2.WithSelf(%Self.4da) [symbolic] +// CHECK:STDOUT: %Self.c1f: %J2.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c1f [symbolic] +// CHECK:STDOUT: %I2.lookup_impl_witness.b5c: = lookup_impl_witness %Self.c1f, @I2 [symbolic] +// CHECK:STDOUT: %.eef: require_specific_def_type = require_specific_def @V.as_type.as.I2.impl(%Self.c1f) [symbolic] +// CHECK:STDOUT: %I2.facet.39b: %I2.type = facet_value %Self.as_type, (%I2.lookup_impl_witness.b5c) [symbolic] +// CHECK:STDOUT: %impl.elem0.422: type = impl_witness_access %I2.lookup_impl_witness.b5c, element0 [symbolic] +// CHECK:STDOUT: %.932: Core.Form = init_form %impl.elem0.422 [symbolic] +// CHECK:STDOUT: %pattern_type.ff8: type = pattern_type %impl.elem0.422 [symbolic] +// CHECK:STDOUT: %J2.WithSelf.F2.type: type = fn_type @J2.WithSelf.F2, @J2.WithSelf(%Self.c1f) [symbolic] // CHECK:STDOUT: %J2.WithSelf.F2: %J2.WithSelf.F2.type = struct_value () [symbolic] // CHECK:STDOUT: %J2.assoc_type: type = assoc_entity_type @J2 [concrete] -// CHECK:STDOUT: %assoc0.660: %J2.assoc_type = assoc_entity element0, @J2.WithSelf.%J2.WithSelf.F2.decl [concrete] +// CHECK:STDOUT: %assoc0.253: %J2.assoc_type = assoc_entity element0, @J2.WithSelf.%J2.WithSelf.F2.decl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -99,27 +99,27 @@ interface C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @J2 { -// CHECK:STDOUT: %Self: %J2.type = symbolic_binding Self, 0 [symbolic = constants.%Self.4da] +// CHECK:STDOUT: %Self: %J2.type = symbolic_binding Self, 0 [symbolic = constants.%Self.c1f] // CHECK:STDOUT: %J2.WithSelf.decl = interface_with_self_decl @J2 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I2.ref: type = name_ref I2, file.%I2.decl [concrete = constants.%I2.type] -// CHECK:STDOUT: %T2.ref: %I2.assoc_type = name_ref T2, @T2.%assoc0 [concrete = constants.%assoc0.071] -// CHECK:STDOUT: %U2: %I2.assoc_type = alias_binding U2, %T2.ref [concrete = constants.%assoc0.071] +// CHECK:STDOUT: %T2.ref: %I2.assoc_type = name_ref T2, @T2.%assoc0 [concrete = constants.%assoc0.d6c] +// CHECK:STDOUT: %U2: %I2.assoc_type = alias_binding U2, %T2.ref [concrete = constants.%assoc0.d6c] // CHECK:STDOUT: %J2.WithSelf.F2.decl: @J2.WithSelf.%J2.WithSelf.F2.type (%J2.WithSelf.F2.type) = fn_decl @J2.WithSelf.F2 [symbolic = @J2.WithSelf.%J2.WithSelf.F2 (constants.%J2.WithSelf.F2)] { -// CHECK:STDOUT: %return.param_patt: @J2.WithSelf.F2.%pattern_type (%pattern_type.089) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @J2.WithSelf.F2.%pattern_type (%pattern_type.089) = return_slot_pattern %return.param_patt, %U2.ref [concrete] +// CHECK:STDOUT: %return.param_patt: @J2.WithSelf.F2.%pattern_type (%pattern_type.ff8) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @J2.WithSelf.F2.%pattern_type (%pattern_type.ff8) = return_slot_pattern %return.param_patt, %U2.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.as_type.loc14_14.2: type = facet_access_type @J2.%Self [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %I2.facet.loc14_14.2: %I2.type = facet_value %Self.as_type.loc14_14.2, (constants.%I2.lookup_impl_witness.62a) [symbolic = %I2.facet.loc14_14.1 (constants.%I2.facet.6d7)] -// CHECK:STDOUT: %.loc14_14.3: %I2.type = converted @J2.%Self, %I2.facet.loc14_14.2 [symbolic = %I2.facet.loc14_14.1 (constants.%I2.facet.6d7)] -// CHECK:STDOUT: %impl.elem0.loc14_14.2: type = impl_witness_access constants.%I2.lookup_impl_witness.62a, element0 [symbolic = %impl.elem0.loc14_14.1 (constants.%impl.elem0.8df)] -// CHECK:STDOUT: %U2.ref: type = name_ref U2, %impl.elem0.loc14_14.2 [symbolic = %impl.elem0.loc14_14.1 (constants.%impl.elem0.8df)] -// CHECK:STDOUT: %.loc14_14.4: Core.Form = init_form %U2.ref [symbolic = %.loc14_14.2 (constants.%.72e)] -// CHECK:STDOUT: %return.param: ref @J2.WithSelf.F2.%impl.elem0.loc14_14.1 (%impl.elem0.8df) = out_param call_param0 -// CHECK:STDOUT: %return: ref @J2.WithSelf.F2.%impl.elem0.loc14_14.1 (%impl.elem0.8df) = return_slot %return.param +// CHECK:STDOUT: %I2.facet.loc14_14.2: %I2.type = facet_value %Self.as_type.loc14_14.2, (constants.%I2.lookup_impl_witness.b5c) [symbolic = %I2.facet.loc14_14.1 (constants.%I2.facet.39b)] +// CHECK:STDOUT: %.loc14_14.3: %I2.type = converted @J2.%Self, %I2.facet.loc14_14.2 [symbolic = %I2.facet.loc14_14.1 (constants.%I2.facet.39b)] +// CHECK:STDOUT: %impl.elem0.loc14_14.2: type = impl_witness_access constants.%I2.lookup_impl_witness.b5c, element0 [symbolic = %impl.elem0.loc14_14.1 (constants.%impl.elem0.422)] +// CHECK:STDOUT: %U2.ref: type = name_ref U2, %impl.elem0.loc14_14.2 [symbolic = %impl.elem0.loc14_14.1 (constants.%impl.elem0.422)] +// CHECK:STDOUT: %.loc14_14.4: Core.Form = init_form %U2.ref [symbolic = %.loc14_14.2 (constants.%.932)] +// CHECK:STDOUT: %return.param: ref @J2.WithSelf.F2.%impl.elem0.loc14_14.1 (%impl.elem0.422) = out_param call_param0 +// CHECK:STDOUT: %return: ref @J2.WithSelf.F2.%impl.elem0.loc14_14.1 (%impl.elem0.422) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0: %J2.assoc_type = assoc_entity element0, %J2.WithSelf.F2.decl [concrete = constants.%assoc0.660] +// CHECK:STDOUT: %assoc0: %J2.assoc_type = assoc_entity element0, %J2.WithSelf.F2.decl [concrete = constants.%assoc0.253] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -133,29 +133,29 @@ interface C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J2.WithSelf.F2(@J2.%Self: %J2.type) { -// CHECK:STDOUT: %Self: %J2.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.4da)] +// CHECK:STDOUT: %Self: %J2.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c1f)] // CHECK:STDOUT: %Self.as_type.loc14_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc14_14.1: require_specific_def_type = require_specific_def @V.as_type.as.I2.impl(%Self) [symbolic = %.loc14_14.1 (constants.%.049)] -// CHECK:STDOUT: %I2.lookup_impl_witness: = lookup_impl_witness %Self, @I2 [symbolic = %I2.lookup_impl_witness (constants.%I2.lookup_impl_witness.62a)] -// CHECK:STDOUT: %I2.facet.loc14_14.1: %I2.type = facet_value %Self.as_type.loc14_14.1, (%I2.lookup_impl_witness) [symbolic = %I2.facet.loc14_14.1 (constants.%I2.facet.6d7)] -// CHECK:STDOUT: %impl.elem0.loc14_14.1: type = impl_witness_access %I2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_14.1 (constants.%impl.elem0.8df)] -// CHECK:STDOUT: %.loc14_14.2: Core.Form = init_form %impl.elem0.loc14_14.1 [symbolic = %.loc14_14.2 (constants.%.72e)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc14_14.1 [symbolic = %pattern_type (constants.%pattern_type.089)] +// CHECK:STDOUT: %.loc14_14.1: require_specific_def_type = require_specific_def @V.as_type.as.I2.impl(%Self) [symbolic = %.loc14_14.1 (constants.%.eef)] +// CHECK:STDOUT: %I2.lookup_impl_witness: = lookup_impl_witness %Self, @I2 [symbolic = %I2.lookup_impl_witness (constants.%I2.lookup_impl_witness.b5c)] +// CHECK:STDOUT: %I2.facet.loc14_14.1: %I2.type = facet_value %Self.as_type.loc14_14.1, (%I2.lookup_impl_witness) [symbolic = %I2.facet.loc14_14.1 (constants.%I2.facet.39b)] +// CHECK:STDOUT: %impl.elem0.loc14_14.1: type = impl_witness_access %I2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_14.1 (constants.%impl.elem0.422)] +// CHECK:STDOUT: %.loc14_14.2: Core.Form = init_form %impl.elem0.loc14_14.1 [symbolic = %.loc14_14.2 (constants.%.932)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc14_14.1 [symbolic = %pattern_type (constants.%pattern_type.ff8)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> out %return.param: @J2.WithSelf.F2.%impl.elem0.loc14_14.1 (%impl.elem0.8df); +// CHECK:STDOUT: fn() -> out %return.param: @J2.WithSelf.F2.%impl.elem0.loc14_14.1 (%impl.elem0.422); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J2.WithSelf(constants.%Self.4da) {} +// CHECK:STDOUT: specific @J2.WithSelf(constants.%Self.c1f) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J2.WithSelf.F2(constants.%Self.4da) { -// CHECK:STDOUT: %Self => constants.%Self.4da +// CHECK:STDOUT: specific @J2.WithSelf.F2(constants.%Self.c1f) { +// CHECK:STDOUT: %Self => constants.%Self.c1f // CHECK:STDOUT: %Self.as_type.loc14_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %.loc14_14.1 => constants.%.049 -// CHECK:STDOUT: %I2.lookup_impl_witness => constants.%I2.lookup_impl_witness.62a -// CHECK:STDOUT: %I2.facet.loc14_14.1 => constants.%I2.facet.6d7 -// CHECK:STDOUT: %impl.elem0.loc14_14.1 => constants.%impl.elem0.8df -// CHECK:STDOUT: %.loc14_14.2 => constants.%.72e -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.089 +// CHECK:STDOUT: %.loc14_14.1 => constants.%.eef +// CHECK:STDOUT: %I2.lookup_impl_witness => constants.%I2.lookup_impl_witness.b5c +// CHECK:STDOUT: %I2.facet.loc14_14.1 => constants.%I2.facet.39b +// CHECK:STDOUT: %impl.elem0.loc14_14.1 => constants.%impl.elem0.422 +// CHECK:STDOUT: %.loc14_14.2 => constants.%.932 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ff8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- call_with_compound_member_access.carbon @@ -173,8 +173,8 @@ interface C { // CHECK:STDOUT: %C.WithSelf.G.type: type = fn_type @C.WithSelf.G, @C.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %C.WithSelf.G: %C.WithSelf.G.type = struct_value () [symbolic] // CHECK:STDOUT: %C.lookup_impl_witness: = lookup_impl_witness %Self, @C [symbolic] -// CHECK:STDOUT: %.c95: type = fn_type_with_self_type %C.WithSelf.F.type, %Self [symbolic] -// CHECK:STDOUT: %impl.elem0: %.c95 = impl_witness_access %C.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %.b5a: type = fn_type_with_self_type %C.WithSelf.F.type, %Self [symbolic] +// CHECK:STDOUT: %impl.elem0: %.b5a = impl_witness_access %C.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @C.WithSelf.F(%Self) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -199,23 +199,23 @@ interface C { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: %C.WithSelf.F.type: type = fn_type @C.WithSelf.F, @C.WithSelf(%Self) [symbolic = %C.WithSelf.F.type (constants.%C.WithSelf.F.type)] -// CHECK:STDOUT: %.loc8: type = fn_type_with_self_type %C.WithSelf.F.type, %Self [symbolic = %.loc8 (constants.%.c95)] +// CHECK:STDOUT: %.loc8: type = fn_type_with_self_type %C.WithSelf.F.type, %Self [symbolic = %.loc8 (constants.%.b5a)] // CHECK:STDOUT: %C.lookup_impl_witness: = lookup_impl_witness %Self, @C [symbolic = %C.lookup_impl_witness (constants.%C.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc8_9.2: @C.WithSelf.G.%.loc8 (%.c95) = impl_witness_access %C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_9.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc8_9.2: @C.WithSelf.G.%.loc8 (%.b5a) = impl_witness_access %C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc8_9.2: = specific_impl_function %impl.elem0.loc8_9.2, @C.WithSelf.F(%Self) [symbolic = %specific_impl_fn.loc8_9.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @C.WithSelf.G.%Self.as_type.loc6_14.1 (%Self.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref.loc8: @C.WithSelf.G.%Self.as_type.loc6_14.1 (%Self.as_type) = name_ref self, %self // CHECK:STDOUT: %F.ref.loc8: %C.assoc_type = name_ref F, @C.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc8_9.1: @C.WithSelf.G.%.loc8 (%.c95) = impl_witness_access constants.%C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_9.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc8_9.1: @C.WithSelf.G.%.loc8 (%.b5a) = impl_witness_access constants.%C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc8_9: = bound_method %self.ref.loc8, %impl.elem0.loc8_9.1 // CHECK:STDOUT: %specific_impl_fn.loc8_9.1: = specific_impl_function %impl.elem0.loc8_9.1, @C.WithSelf.F(constants.%Self) [symbolic = %specific_impl_fn.loc8_9.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc8_12: = bound_method %self.ref.loc8, %specific_impl_fn.loc8_9.1 // CHECK:STDOUT: %C.WithSelf.F.call.loc8: init %empty_tuple.type = call %bound_method.loc8_12(%self.ref.loc8) // CHECK:STDOUT: %self.ref.loc9: @C.WithSelf.G.%Self.as_type.loc6_14.1 (%Self.as_type) = name_ref self, %self -// CHECK:STDOUT: %impl.elem0.loc9: @C.WithSelf.G.%.loc8 (%.c95) = impl_witness_access constants.%C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_9.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %F.ref.loc9: @C.WithSelf.G.%.loc8 (%.c95) = name_ref F, %impl.elem0.loc9 [symbolic = %impl.elem0.loc8_9.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc9: @C.WithSelf.G.%.loc8 (%.b5a) = impl_witness_access constants.%C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_9.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %F.ref.loc9: @C.WithSelf.G.%.loc8 (%.b5a) = name_ref F, %impl.elem0.loc9 [symbolic = %impl.elem0.loc8_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc9_9: = bound_method %self.ref.loc9, %F.ref.loc9 // CHECK:STDOUT: %specific_impl_fn.loc9: = specific_impl_function %F.ref.loc9, @C.WithSelf.F(constants.%Self) [symbolic = %specific_impl_fn.loc8_9.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc9_14: = bound_method %self.ref.loc9, %specific_impl_fn.loc9 diff --git a/toolchain/check/testdata/interface/fail_assoc_const_bad_default.carbon b/toolchain/check/testdata/interface/fail_assoc_const_bad_default.carbon index 8a8a71b35d52..06d0ebe63b40 100644 --- a/toolchain/check/testdata/interface/fail_assoc_const_bad_default.carbon +++ b/toolchain/check/testdata/interface/fail_assoc_const_bad_default.carbon @@ -27,12 +27,12 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.ab7: %I.assoc_type = assoc_entity element0, @I.WithSelf.%T [concrete] +// CHECK:STDOUT: %assoc0.2ce: %I.assoc_type = assoc_entity element0, @I.WithSelf.%T [concrete] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -41,7 +41,7 @@ interface I { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -54,12 +54,12 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%T [concrete = constants.%assoc0.ab7] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%T [concrete = constants.%assoc0.2ce] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42] // CHECK:STDOUT: %.loc23: type = converted %int_42, [concrete = ] // CHECK:STDOUT: } @@ -72,5 +72,5 @@ interface I { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon b/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon index a2952eff33a0..e15217a70fb8 100644 --- a/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon +++ b/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon @@ -34,24 +34,24 @@ fn Use(T:! I) { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.a3c: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.d9f: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.592: %I.WithSelf.F.type.d9f = struct_value () [symbolic] +// CHECK:STDOUT: %pattern_type.c60: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.dcc: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ec6: %I.WithSelf.F.type.dcc = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.998: type = pattern_type %I.type [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %T: %I.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Use.type: type = fn_type @Use [concrete] // CHECK:STDOUT: %Use: %Use.type = struct_value () [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.a52: type = fn_type @I.WithSelf.F, @I.WithSelf(%T) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.08d: %I.WithSelf.F.type.a52 = struct_value () [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.418: type = fn_type @I.WithSelf.F, @I.WithSelf(%T) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ca5: %I.WithSelf.F.type.418 = struct_value () [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] -// CHECK:STDOUT: %.b7f: type = fn_type_with_self_type %I.WithSelf.F.type.a52, %T [symbolic] -// CHECK:STDOUT: %impl.elem0: %.b7f = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %.b7f [symbolic] +// CHECK:STDOUT: %.81d: type = fn_type_with_self_type %I.WithSelf.F.type.418, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.81d = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %.81d [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -61,7 +61,7 @@ fn Use(T:! I) { // CHECK:STDOUT: } // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %Use.decl: %Use.type = fn_decl @Use [concrete = constants.%Use] { -// CHECK:STDOUT: %T.patt: %pattern_type.998 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.6cb = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -76,9 +76,9 @@ fn Use(T:! I) { // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.d9f) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.592)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.a3c) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.a3c) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.dcc) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ec6)] { +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { @@ -101,7 +101,7 @@ fn Use(T:! I) { // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.a3c)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.c60)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type)); // CHECK:STDOUT: } @@ -111,10 +111,10 @@ fn Use(T:! I) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc13_4.2: type = facet_access_type %T.loc8_9.1 [symbolic = %T.as_type.loc13_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%T.loc8_9.1) [symbolic = %I.WithSelf.F.type (constants.%I.WithSelf.F.type.a52)] -// CHECK:STDOUT: %.loc13_4.2: type = fn_type_with_self_type %I.WithSelf.F.type, %T.loc8_9.1 [symbolic = %.loc13_4.2 (constants.%.b7f)] +// CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%T.loc8_9.1) [symbolic = %I.WithSelf.F.type (constants.%I.WithSelf.F.type.418)] +// CHECK:STDOUT: %.loc13_4.2: type = fn_type_with_self_type %I.WithSelf.F.type, %T.loc8_9.1 [symbolic = %.loc13_4.2 (constants.%.81d)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_9.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc13_4.2: @Use.%.loc13_4.2 (%.b7f) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc13_4.2: @Use.%.loc13_4.2 (%.81d) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %require_complete: = require_complete_type %.loc13_4.2 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -123,7 +123,7 @@ fn Use(T:! I) { // CHECK:STDOUT: %T.as_type.loc13_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc13_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc13_4.1: type = converted %T.ref, %T.as_type.loc13_4.1 [symbolic = %T.as_type.loc13_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc13_4.1: @Use.%.loc13_4.2 (%.b7f) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc13_4.1: @Use.%.loc13_4.2 (%.81d) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -131,14 +131,14 @@ fn Use(T:! I) { // CHECK:STDOUT: specific @I.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d9f -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.592 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.dcc +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ec6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a3c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Use(constants.%T) { @@ -148,7 +148,7 @@ fn Use(T:! I) { // CHECK:STDOUT: specific @I.WithSelf(constants.%T) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.a52 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.08d +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.418 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ca5 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_definition_imported.carbon b/toolchain/check/testdata/interface/fail_definition_imported.carbon index 4aca4920c0c7..bf0c31c0ac0d 100644 --- a/toolchain/check/testdata/interface/fail_definition_imported.carbon +++ b/toolchain/check/testdata/interface/fail_definition_imported.carbon @@ -51,13 +51,13 @@ interface I {} // CHECK:STDOUT: --- fail_b.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %I.type.4048ab.1: type = facet_type <@I.1> [concrete] -// CHECK:STDOUT: %I.type.4048ab.2: type = facet_type <@I.loc13> [concrete] -// CHECK:STDOUT: %Self: %I.type.4048ab.2 = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %I.type.8e70aa.1: type = facet_type <@I.1> [concrete] +// CHECK:STDOUT: %I.type.8e70aa.2: type = facet_type <@I.loc13> [concrete] +// CHECK:STDOUT: %Self: %I.type.8e70aa.2 = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.I: type = import_ref Main//a, I, loaded [concrete = constants.%I.type.4048ab.1] +// CHECK:STDOUT: %Main.I: type = import_ref Main//a, I, loaded [concrete = constants.%I.type.8e70aa.1] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -65,13 +65,13 @@ interface I {} // CHECK:STDOUT: .I = imports.%Main.I // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %I.decl: type = interface_decl @I.loc13 [concrete = constants.%I.type.4048ab.2] {} {} +// CHECK:STDOUT: %I.decl: type = interface_decl @I.loc13 [concrete = constants.%I.type.8e70aa.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I.1 [from "a.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: interface @I.loc13 { -// CHECK:STDOUT: %Self: %I.type.4048ab.2 = symbolic_binding Self, 0 [symbolic = constants.%Self] +// CHECK:STDOUT: %Self: %I.type.8e70aa.2 = symbolic_binding Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I.loc13 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/interface/fail_duplicate.carbon b/toolchain/check/testdata/interface/fail_duplicate.carbon index 4b2184c81b9d..9fff10d356a4 100644 --- a/toolchain/check/testdata/interface/fail_duplicate.carbon +++ b/toolchain/check/testdata/interface/fail_duplicate.carbon @@ -77,11 +77,11 @@ interface Class { } // CHECK:STDOUT: --- fail_redefine_without_dependents.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %Interface.type.e7878b.1: type = facet_type <@Interface.loc4> [concrete] -// CHECK:STDOUT: %Self.b546a4.1: %Interface.type.e7878b.1 = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Interface.type.e7878b.2: type = facet_type <@Interface.loc13> [concrete] -// CHECK:STDOUT: %Self.b546a4.2: %Interface.type.e7878b.2 = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Interface.WithSelf.F.type: type = fn_type @Interface.WithSelf.F, @Interface.WithSelf.loc13(%Self.b546a4.2) [symbolic] +// CHECK:STDOUT: %Interface.type.283524.1: type = facet_type <@Interface.loc4> [concrete] +// CHECK:STDOUT: %Self.3ce02d.1: %Interface.type.283524.1 = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Interface.type.283524.2: type = facet_type <@Interface.loc13> [concrete] +// CHECK:STDOUT: %Self.3ce02d.2: %Interface.type.283524.2 = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Interface.WithSelf.F.type: type = fn_type @Interface.WithSelf.F, @Interface.WithSelf.loc13(%Self.3ce02d.2) [symbolic] // CHECK:STDOUT: %Interface.WithSelf.F: %Interface.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface.loc13 [concrete] // CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, @Interface.WithSelf.loc13.%Interface.WithSelf.F.decl [concrete] @@ -91,12 +91,12 @@ interface Class { } // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Interface = %Interface.decl.loc4 // CHECK:STDOUT: } -// CHECK:STDOUT: %Interface.decl.loc4: type = interface_decl @Interface.loc4 [concrete = constants.%Interface.type.e7878b.1] {} {} -// CHECK:STDOUT: %Interface.decl.loc13: type = interface_decl @Interface.loc13 [concrete = constants.%Interface.type.e7878b.2] {} {} +// CHECK:STDOUT: %Interface.decl.loc4: type = interface_decl @Interface.loc4 [concrete = constants.%Interface.type.283524.1] {} {} +// CHECK:STDOUT: %Interface.decl.loc13: type = interface_decl @Interface.loc13 [concrete = constants.%Interface.type.283524.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Interface.loc4 { -// CHECK:STDOUT: %Self: %Interface.type.e7878b.1 = symbolic_binding Self, 0 [symbolic = constants.%Self.b546a4.1] +// CHECK:STDOUT: %Self: %Interface.type.283524.1 = symbolic_binding Self, 0 [symbolic = constants.%Self.3ce02d.1] // CHECK:STDOUT: %Interface.WithSelf.decl = interface_with_self_decl @Interface.loc4 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -107,7 +107,7 @@ interface Class { } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Interface.loc13 { -// CHECK:STDOUT: %Self: %Interface.type.e7878b.2 = symbolic_binding Self, 0 [symbolic = constants.%Self.b546a4.2] +// CHECK:STDOUT: %Self: %Interface.type.283524.2 = symbolic_binding Self, 0 [symbolic = constants.%Self.3ce02d.2] // CHECK:STDOUT: %Interface.WithSelf.decl = interface_with_self_decl @Interface.loc13 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -122,26 +122,26 @@ interface Class { } // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Interface.WithSelf.F(@Interface.loc13.%Self: %Interface.type.e7878b.2) { +// CHECK:STDOUT: generic fn @Interface.WithSelf.F(@Interface.loc13.%Self: %Interface.type.283524.2) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf.loc4(constants.%Self.b546a4.1) {} +// CHECK:STDOUT: specific @Interface.WithSelf.loc4(constants.%Self.3ce02d.1) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf.loc13(constants.%Self.b546a4.2) {} +// CHECK:STDOUT: specific @Interface.WithSelf.loc13(constants.%Self.3ce02d.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf.F(constants.%Self.b546a4.2) {} +// CHECK:STDOUT: specific @Interface.WithSelf.F(constants.%Self.3ce02d.2) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_redefine_with_dependents.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %Interface.type.e7878b.1: type = facet_type <@Interface.loc4> [concrete] -// CHECK:STDOUT: %Self.b546a4.1: %Interface.type.e7878b.1 = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Interface.type.e7878b.2: type = facet_type <@Interface.loc13> [concrete] -// CHECK:STDOUT: %Self.b546a4.2: %Interface.type.e7878b.2 = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.b546a4.2 [symbolic] +// CHECK:STDOUT: %Interface.type.283524.1: type = facet_type <@Interface.loc4> [concrete] +// CHECK:STDOUT: %Self.3ce02d.1: %Interface.type.283524.1 = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Interface.type.283524.2: type = facet_type <@Interface.loc13> [concrete] +// CHECK:STDOUT: %Self.3ce02d.2: %Interface.type.283524.2 = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.3ce02d.2 [symbolic] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %Interface.WithSelf.F.type: type = fn_type @Interface.WithSelf.F, @Interface.WithSelf.loc13(%Self.b546a4.2) [symbolic] +// CHECK:STDOUT: %Interface.WithSelf.F.type: type = fn_type @Interface.WithSelf.F, @Interface.WithSelf.loc13(%Self.3ce02d.2) [symbolic] // CHECK:STDOUT: %Interface.WithSelf.F: %Interface.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface.loc13 [concrete] // CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, @Interface.WithSelf.loc13.%Interface.WithSelf.F.decl [concrete] @@ -151,12 +151,12 @@ interface Class { } // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Interface = %Interface.decl.loc4 // CHECK:STDOUT: } -// CHECK:STDOUT: %Interface.decl.loc4: type = interface_decl @Interface.loc4 [concrete = constants.%Interface.type.e7878b.1] {} {} -// CHECK:STDOUT: %Interface.decl.loc13: type = interface_decl @Interface.loc13 [concrete = constants.%Interface.type.e7878b.2] {} {} +// CHECK:STDOUT: %Interface.decl.loc4: type = interface_decl @Interface.loc4 [concrete = constants.%Interface.type.283524.1] {} {} +// CHECK:STDOUT: %Interface.decl.loc13: type = interface_decl @Interface.loc13 [concrete = constants.%Interface.type.283524.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Interface.loc4 { -// CHECK:STDOUT: %Self: %Interface.type.e7878b.1 = symbolic_binding Self, 0 [symbolic = constants.%Self.b546a4.1] +// CHECK:STDOUT: %Self: %Interface.type.283524.1 = symbolic_binding Self, 0 [symbolic = constants.%Self.3ce02d.1] // CHECK:STDOUT: %Interface.WithSelf.decl = interface_with_self_decl @Interface.loc4 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -167,7 +167,7 @@ interface Class { } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Interface.loc13 { -// CHECK:STDOUT: %Self: %Interface.type.e7878b.2 = symbolic_binding Self, 0 [symbolic = constants.%Self.b546a4.2] +// CHECK:STDOUT: %Self: %Interface.type.283524.2 = symbolic_binding Self, 0 [symbolic = constants.%Self.3ce02d.2] // CHECK:STDOUT: %Interface.WithSelf.decl = interface_with_self_decl @Interface.loc13 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -177,7 +177,7 @@ interface Class { } // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: @Interface.WithSelf.F.%Self.as_type.loc14_14.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc14_14.1: type = splice_block %.loc14_14.2 [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %Self.ref: %Interface.type.e7878b.2 = name_ref Self, @Interface.loc13.%Self [symbolic = %Self (constants.%Self.b546a4.2)] +// CHECK:STDOUT: %Self.ref: %Interface.type.283524.2 = name_ref Self, @Interface.loc13.%Self [symbolic = %Self (constants.%Self.3ce02d.2)] // CHECK:STDOUT: %Self.as_type.loc14_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc14_14.2: type = converted %Self.ref, %Self.as_type.loc14_14.2 [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } @@ -193,20 +193,20 @@ interface Class { } // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Interface.WithSelf.F(@Interface.loc13.%Self: %Interface.type.e7878b.2) { -// CHECK:STDOUT: %Self: %Interface.type.e7878b.2 = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.b546a4.2)] +// CHECK:STDOUT: generic fn @Interface.WithSelf.F(@Interface.loc13.%Self: %Interface.type.283524.2) { +// CHECK:STDOUT: %Self: %Interface.type.283524.2 = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.3ce02d.2)] // CHECK:STDOUT: %Self.as_type.loc14_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc14_14.1 [symbolic = %pattern_type (constants.%pattern_type)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @Interface.WithSelf.F.%Self.as_type.loc14_14.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf.loc4(constants.%Self.b546a4.1) {} +// CHECK:STDOUT: specific @Interface.WithSelf.loc4(constants.%Self.3ce02d.1) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf.loc13(constants.%Self.b546a4.2) {} +// CHECK:STDOUT: specific @Interface.WithSelf.loc13(constants.%Self.3ce02d.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf.F(constants.%Self.b546a4.2) { -// CHECK:STDOUT: %Self => constants.%Self.b546a4.2 +// CHECK:STDOUT: specific @Interface.WithSelf.F(constants.%Self.3ce02d.2) { +// CHECK:STDOUT: %Self => constants.%Self.3ce02d.2 // CHECK:STDOUT: %Self.as_type.loc14_14.1 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } @@ -214,17 +214,17 @@ interface Class { } // CHECK:STDOUT: --- fail_name_conflict_with_fn.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %Function.type.fe9: type = fn_type @Function.loc4 [concrete] -// CHECK:STDOUT: %Function: %Function.type.fe9 = struct_value () [concrete] -// CHECK:STDOUT: %Function.type.7ff: type = facet_type <@Function.loc13> [concrete] +// CHECK:STDOUT: %Function.type.b68: type = fn_type @Function.loc4 [concrete] +// CHECK:STDOUT: %Function: %Function.type.b68 = struct_value () [concrete] +// CHECK:STDOUT: %Function.type.186: type = facet_type <@Function.loc13> [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Function = %Function.decl.loc4 // CHECK:STDOUT: } -// CHECK:STDOUT: %Function.decl.loc4: %Function.type.fe9 = fn_decl @Function.loc4 [concrete = constants.%Function] {} {} -// CHECK:STDOUT: %Function.decl.loc13: type = interface_decl @Function.loc13 [concrete = constants.%Function.type.7ff] {} {} +// CHECK:STDOUT: %Function.decl.loc4: %Function.type.b68 = fn_decl @Function.loc4 [concrete = constants.%Function] {} {} +// CHECK:STDOUT: %Function.decl.loc13: type = interface_decl @Function.loc13 [concrete = constants.%Function.type.186] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Function.loc13; diff --git a/toolchain/check/testdata/interface/fail_generic_redeclaration.carbon b/toolchain/check/testdata/interface/fail_generic_redeclaration.carbon index 53c78946ef65..a0abaadc1029 100644 --- a/toolchain/check/testdata/interface/fail_generic_redeclaration.carbon +++ b/toolchain/check/testdata/interface/fail_generic_redeclaration.carbon @@ -45,29 +45,29 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: --- fail_generic_redeclaration.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %NotGeneric.type.826: type = facet_type <@NotGeneric.loc15> [concrete] +// CHECK:STDOUT: %NotGeneric.type.fd5: type = facet_type <@NotGeneric.loc15> [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %NotGeneric.type.5b7: type = generic_interface_type @NotGeneric.loc23 [concrete] +// CHECK:STDOUT: %NotGeneric.type.fec: type = generic_interface_type @NotGeneric.loc23 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %NotGeneric.generic: %NotGeneric.type.5b7 = struct_value () [concrete] -// CHECK:STDOUT: %NotGeneric.type.319: type = facet_type <@NotGeneric.loc23, @NotGeneric.loc23(%T.67d)> [symbolic] -// CHECK:STDOUT: %Self.370: %NotGeneric.type.319 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Generic.type.df8: type = generic_interface_type @Generic.loc25 [concrete] -// CHECK:STDOUT: %Generic.generic: %Generic.type.df8 = struct_value () [concrete] -// CHECK:STDOUT: %Generic.type.d70: type = facet_type <@Generic.loc33> [concrete] -// CHECK:STDOUT: %Self.5b2: %Generic.type.d70 = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %DifferentParams.type.577ff4.1: type = generic_interface_type @DifferentParams.loc35 [concrete] -// CHECK:STDOUT: %DifferentParams.generic.be45ef.1: %DifferentParams.type.577ff4.1 = struct_value () [concrete] +// CHECK:STDOUT: %NotGeneric.generic: %NotGeneric.type.fec = struct_value () [concrete] +// CHECK:STDOUT: %NotGeneric.type.e75: type = facet_type <@NotGeneric.loc23, @NotGeneric.loc23(%T.67d)> [symbolic] +// CHECK:STDOUT: %Self.b8f: %NotGeneric.type.e75 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.type.30d: type = generic_interface_type @Generic.loc25 [concrete] +// CHECK:STDOUT: %Generic.generic: %Generic.type.30d = struct_value () [concrete] +// CHECK:STDOUT: %Generic.type.b2d: type = facet_type <@Generic.loc33> [concrete] +// CHECK:STDOUT: %Self.c53: %Generic.type.b2d = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %DifferentParams.type.998819.1: type = generic_interface_type @DifferentParams.loc35 [concrete] +// CHECK:STDOUT: %DifferentParams.generic.54c122.1: %DifferentParams.type.998819.1 = 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: %T.d5f: %empty_tuple.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %DifferentParams.type.577ff4.2: type = generic_interface_type @DifferentParams.loc43 [concrete] -// CHECK:STDOUT: %DifferentParams.generic.be45ef.2: %DifferentParams.type.577ff4.2 = struct_value () [concrete] -// CHECK:STDOUT: %DifferentParams.type.2cc: type = facet_type <@DifferentParams.loc43, @DifferentParams.loc43(%T.d5f)> [symbolic] -// CHECK:STDOUT: %Self.341: %DifferentParams.type.2cc = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %DifferentParams.type.998819.2: type = generic_interface_type @DifferentParams.loc43 [concrete] +// CHECK:STDOUT: %DifferentParams.generic.54c122.2: %DifferentParams.type.998819.2 = struct_value () [concrete] +// CHECK:STDOUT: %DifferentParams.type.7d4: type = facet_type <@DifferentParams.loc43, @DifferentParams.loc43(%T.d5f)> [symbolic] +// CHECK:STDOUT: %Self.a37: %DifferentParams.type.7d4 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -76,8 +76,8 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: .Generic = %Generic.decl.loc25 // CHECK:STDOUT: .DifferentParams = %DifferentParams.decl.loc35 // CHECK:STDOUT: } -// CHECK:STDOUT: %NotGeneric.decl.loc15: type = interface_decl @NotGeneric.loc15 [concrete = constants.%NotGeneric.type.826] {} {} -// CHECK:STDOUT: %NotGeneric.decl.loc23: %NotGeneric.type.5b7 = interface_decl @NotGeneric.loc23 [concrete = constants.%NotGeneric.generic] { +// CHECK:STDOUT: %NotGeneric.decl.loc15: type = interface_decl @NotGeneric.loc15 [concrete = constants.%NotGeneric.type.fd5] {} {} +// CHECK:STDOUT: %NotGeneric.decl.loc23: %NotGeneric.type.fec = interface_decl @NotGeneric.loc23 [concrete = constants.%NotGeneric.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc23_26.1: type = splice_block %.loc23_26.2 [concrete = type] { @@ -86,7 +86,7 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc23_23.2: type = symbolic_binding T, 0 [symbolic = %T.loc23_23.1 (constants.%T.67d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Generic.decl.loc25: %Generic.type.df8 = interface_decl @Generic.loc25 [concrete = constants.%Generic.generic] { +// CHECK:STDOUT: %Generic.decl.loc25: %Generic.type.30d = interface_decl @Generic.loc25 [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc25_23.1: type = splice_block %.loc25_23.2 [concrete = type] { @@ -95,8 +95,8 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc25_20.2: type = symbolic_binding T, 0 [symbolic = %T.loc25_20.1 (constants.%T.67d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Generic.decl.loc33: type = interface_decl @Generic.loc33 [concrete = constants.%Generic.type.d70] {} {} -// CHECK:STDOUT: %DifferentParams.decl.loc35: %DifferentParams.type.577ff4.1 = interface_decl @DifferentParams.loc35 [concrete = constants.%DifferentParams.generic.be45ef.1] { +// CHECK:STDOUT: %Generic.decl.loc33: type = interface_decl @Generic.loc33 [concrete = constants.%Generic.type.b2d] {} {} +// CHECK:STDOUT: %DifferentParams.decl.loc35: %DifferentParams.type.998819.1 = interface_decl @DifferentParams.loc35 [concrete = constants.%DifferentParams.generic.54c122.1] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc35_31.1: type = splice_block %.loc35_31.2 [concrete = type] { @@ -105,7 +105,7 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc35_28.2: type = symbolic_binding T, 0 [symbolic = %T.loc35_28.1 (constants.%T.67d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %DifferentParams.decl.loc43: %DifferentParams.type.577ff4.2 = interface_decl @DifferentParams.loc43 [concrete = constants.%DifferentParams.generic.be45ef.2] { +// CHECK:STDOUT: %DifferentParams.decl.loc43: %DifferentParams.type.998819.2 = interface_decl @DifferentParams.loc43 [concrete = constants.%DifferentParams.generic.54c122.2] { // CHECK:STDOUT: %T.patt: %pattern_type.cb1 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc43_32.1: type = splice_block %.loc43_32.3 [concrete = constants.%empty_tuple.type] { @@ -123,11 +123,11 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: %T.loc23_23.1: type = symbolic_binding T, 0 [symbolic = %T.loc23_23.1 (constants.%T.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %NotGeneric.type: type = facet_type <@NotGeneric.loc23, @NotGeneric.loc23(%T.loc23_23.1)> [symbolic = %NotGeneric.type (constants.%NotGeneric.type.319)] -// CHECK:STDOUT: %Self.loc23_32.2: @NotGeneric.loc23.%NotGeneric.type (%NotGeneric.type.319) = symbolic_binding Self, 1 [symbolic = %Self.loc23_32.2 (constants.%Self.370)] +// CHECK:STDOUT: %NotGeneric.type: type = facet_type <@NotGeneric.loc23, @NotGeneric.loc23(%T.loc23_23.1)> [symbolic = %NotGeneric.type (constants.%NotGeneric.type.e75)] +// CHECK:STDOUT: %Self.loc23_32.2: @NotGeneric.loc23.%NotGeneric.type (%NotGeneric.type.e75) = symbolic_binding Self, 1 [symbolic = %Self.loc23_32.2 (constants.%Self.b8f)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc23_32.1: @NotGeneric.loc23.%NotGeneric.type (%NotGeneric.type.319) = symbolic_binding Self, 1 [symbolic = %Self.loc23_32.2 (constants.%Self.370)] +// CHECK:STDOUT: %Self.loc23_32.1: @NotGeneric.loc23.%NotGeneric.type (%NotGeneric.type.e75) = symbolic_binding Self, 1 [symbolic = %Self.loc23_32.2 (constants.%Self.b8f)] // CHECK:STDOUT: %NotGeneric.WithSelf.decl = interface_with_self_decl @NotGeneric.loc23 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -145,7 +145,7 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Generic.loc33 { -// CHECK:STDOUT: %Self: %Generic.type.d70 = symbolic_binding Self, 0 [symbolic = constants.%Self.5b2] +// CHECK:STDOUT: %Self: %Generic.type.b2d = symbolic_binding Self, 0 [symbolic = constants.%Self.c53] // CHECK:STDOUT: %Generic.WithSelf.decl = interface_with_self_decl @Generic.loc33 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -165,11 +165,11 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: %T.loc43_28.1: %empty_tuple.type = symbolic_binding T, 0 [symbolic = %T.loc43_28.1 (constants.%T.d5f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %DifferentParams.type: type = facet_type <@DifferentParams.loc43, @DifferentParams.loc43(%T.loc43_28.1)> [symbolic = %DifferentParams.type (constants.%DifferentParams.type.2cc)] -// CHECK:STDOUT: %Self.loc43_35.2: @DifferentParams.loc43.%DifferentParams.type (%DifferentParams.type.2cc) = symbolic_binding Self, 1 [symbolic = %Self.loc43_35.2 (constants.%Self.341)] +// CHECK:STDOUT: %DifferentParams.type: type = facet_type <@DifferentParams.loc43, @DifferentParams.loc43(%T.loc43_28.1)> [symbolic = %DifferentParams.type (constants.%DifferentParams.type.7d4)] +// CHECK:STDOUT: %Self.loc43_35.2: @DifferentParams.loc43.%DifferentParams.type (%DifferentParams.type.7d4) = symbolic_binding Self, 1 [symbolic = %Self.loc43_35.2 (constants.%Self.a37)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc43_35.1: @DifferentParams.loc43.%DifferentParams.type (%DifferentParams.type.2cc) = symbolic_binding Self, 1 [symbolic = %Self.loc43_35.2 (constants.%Self.341)] +// CHECK:STDOUT: %Self.loc43_35.1: @DifferentParams.loc43.%DifferentParams.type (%DifferentParams.type.7d4) = symbolic_binding Self, 1 [symbolic = %Self.loc43_35.2 (constants.%Self.a37)] // CHECK:STDOUT: %DifferentParams.WithSelf.decl = interface_with_self_decl @DifferentParams.loc43 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -184,13 +184,13 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: %T.loc23_23.1 => constants.%T.67d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @NotGeneric.WithSelf(constants.%T.67d, constants.%Self.370) {} +// CHECK:STDOUT: specific @NotGeneric.WithSelf(constants.%T.67d, constants.%Self.b8f) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.loc25(constants.%T.67d) { // CHECK:STDOUT: %T.loc25_20.1 => constants.%T.67d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf(constants.%Self.5b2) {} +// CHECK:STDOUT: specific @Generic.WithSelf(constants.%Self.c53) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @DifferentParams.loc35(constants.%T.67d) { // CHECK:STDOUT: %T.loc35_28.1 => constants.%T.67d @@ -200,5 +200,5 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: %T.loc43_28.1 => constants.%T.d5f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DifferentParams.WithSelf(constants.%T.d5f, constants.%Self.341) {} +// CHECK:STDOUT: specific @DifferentParams.WithSelf(constants.%T.d5f, constants.%Self.a37) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_member_lookup.carbon b/toolchain/check/testdata/interface/fail_member_lookup.carbon index 616e975973ec..4c7d51815038 100644 --- a/toolchain/check/testdata/interface/fail_member_lookup.carbon +++ b/toolchain/check/testdata/interface/fail_member_lookup.carbon @@ -50,22 +50,22 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [concrete] -// CHECK:STDOUT: %Self.b54: %Interface.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Interface.WithSelf.F.type: type = fn_type @Interface.WithSelf.F, @Interface.WithSelf(%Self.b54) [symbolic] +// CHECK:STDOUT: %Self.3ce: %Interface.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Interface.WithSelf.F.type: type = fn_type @Interface.WithSelf.F, @Interface.WithSelf(%Self.3ce) [symbolic] // CHECK:STDOUT: %Interface.WithSelf.F: %Interface.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface [concrete] -// CHECK:STDOUT: %assoc0.7a1: %Interface.assoc_type = assoc_entity element0, @Interface.WithSelf.%Interface.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %assoc0.baa: %Interface.assoc_type = assoc_entity element0, @Interface.WithSelf.%Interface.WithSelf.F.decl [concrete] // CHECK:STDOUT: %assoc1: %Interface.assoc_type = assoc_entity element1, @Interface.WithSelf.%T [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// 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: %Different.type: type = facet_type <@Different> [concrete] -// CHECK:STDOUT: %Self.d5e: %Different.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.8ba: %Different.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.d18: type = pattern_type %Different.type [concrete] +// CHECK:STDOUT: %pattern_type.776: type = pattern_type %Different.type [concrete] // CHECK:STDOUT: %U: %Different.type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] @@ -79,7 +79,7 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -96,7 +96,7 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: %Different.decl: type = interface_decl @Different [concrete = constants.%Different.type] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %U.patt: %pattern_type.d18 = symbolic_binding_pattern U, 0 [concrete] +// CHECK:STDOUT: %U.patt: %pattern_type.776 = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: %return.patt: = return_slot_pattern , [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref: %Different.type = name_ref U, %U.loc32_7.2 [symbolic = %U.loc32_7.1 (constants.%U)] @@ -113,12 +113,12 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Interface { -// CHECK:STDOUT: %Self: %Interface.type = symbolic_binding Self, 0 [symbolic = constants.%Self.b54] +// CHECK:STDOUT: %Self: %Interface.type = symbolic_binding Self, 0 [symbolic = constants.%Self.3ce] // CHECK:STDOUT: %Interface.WithSelf.decl = interface_with_self_decl @Interface [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Interface.WithSelf.F.decl: @Interface.WithSelf.%Interface.WithSelf.F.type (%Interface.WithSelf.F.type) = fn_decl @Interface.WithSelf.F [symbolic = @Interface.WithSelf.%Interface.WithSelf.F (constants.%Interface.WithSelf.F)] {} {} -// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %Interface.WithSelf.F.decl [concrete = constants.%assoc0.7a1] +// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %Interface.WithSelf.F.decl [concrete = constants.%assoc0.baa] // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] { // CHECK:STDOUT: %assoc1: %Interface.assoc_type = assoc_entity element1, @Interface.WithSelf.%T [concrete = constants.%assoc1] // CHECK:STDOUT: } @@ -133,7 +133,7 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Different { -// CHECK:STDOUT: %Self: %Different.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d5e] +// CHECK:STDOUT: %Self: %Different.type = symbolic_binding Self, 0 [symbolic = constants.%Self.8ba] // CHECK:STDOUT: %Different.WithSelf.decl = interface_with_self_decl @Different [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -150,7 +150,7 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Interface.ref.loc14: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] -// CHECK:STDOUT: %F.ref: %Interface.assoc_type = name_ref F, @Interface.WithSelf.%assoc0 [concrete = constants.%assoc0.7a1] +// CHECK:STDOUT: %F.ref: %Interface.assoc_type = name_ref F, @Interface.WithSelf.%assoc0 [concrete = constants.%assoc0.baa] // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %v.patt: = ref_binding_pattern v [concrete] // CHECK:STDOUT: %v.var_patt: = var_pattern %v.patt [concrete] @@ -173,16 +173,16 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: fn() -> ; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Self.b54) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Self.3ce) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.b54 +// CHECK:STDOUT: %Self => constants.%Self.3ce // CHECK:STDOUT: %Interface.WithSelf.F.type => constants.%Interface.WithSelf.F.type // CHECK:STDOUT: %Interface.WithSelf.F => constants.%Interface.WithSelf.F // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf.F(constants.%Self.b54) {} +// CHECK:STDOUT: specific @Interface.WithSelf.F(constants.%Self.3ce) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Different.WithSelf(constants.%Self.d5e) { +// CHECK:STDOUT: specific @Different.WithSelf(constants.%Self.8ba) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_todo_assoc_const_default.carbon b/toolchain/check/testdata/interface/fail_todo_assoc_const_default.carbon index ecd649d7e33e..d96103828ed6 100644 --- a/toolchain/check/testdata/interface/fail_todo_assoc_const_default.carbon +++ b/toolchain/check/testdata/interface/fail_todo_assoc_const_default.carbon @@ -29,34 +29,34 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.ab7: %I.assoc_type = assoc_entity element0, @I.WithSelf.%T [concrete] +// CHECK:STDOUT: %assoc0.2ce: %I.assoc_type = assoc_entity element0, @I.WithSelf.%T [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] // CHECK:STDOUT: %assoc1: %I.assoc_type = assoc_entity element1, @I.WithSelf.%N [concrete] // CHECK:STDOUT: %int_42.20e: Core.IntLiteral = int_value 42 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_42.daa: %i32 = int_value 42 [concrete] +// CHECK:STDOUT: %int_42.ac4: %i32 = int_value 42 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -67,9 +67,9 @@ interface I { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -82,27 +82,27 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%T [concrete = constants.%assoc0.ab7] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%T [concrete = constants.%assoc0.2ce] // CHECK:STDOUT: %i32.loc20_27: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc20_32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc20_35: %tuple.type.24b = tuple_literal (%i32.loc20_27, %i32.loc20_32) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc20_36: type = converted %.loc20_35, constants.%tuple.type.e5a [concrete = constants.%tuple.type.e5a] +// CHECK:STDOUT: %.loc20_36: type = converted %.loc20_35, constants.%tuple.type.e55 [concrete = constants.%tuple.type.e55] // CHECK:STDOUT: } // CHECK:STDOUT: %N: %i32 = assoc_const_decl @N [concrete] { // CHECK:STDOUT: %assoc1: %I.assoc_type = assoc_entity element1, @I.WithSelf.%N [concrete = constants.%assoc1] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc25_27.1: = bound_method %int_42, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc25_27.2: = bound_method %int_42, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc25_27.2(%int_42) [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %.loc25_27.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %.loc25_27.2: %i32 = converted %int_42, %.loc25_27.1 [concrete = constants.%int_42.daa] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc25_27.2(%int_42) [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %.loc25_27.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %.loc25_27.2: %i32 = converted %int_42, %.loc25_27.1 [concrete = constants.%int_42.ac4] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -114,5 +114,5 @@ interface I { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_todo_define_default_fn_inline.carbon b/toolchain/check/testdata/interface/fail_todo_define_default_fn_inline.carbon index 3880bd3b7029..64866db008b5 100644 --- a/toolchain/check/testdata/interface/fail_todo_define_default_fn_inline.carbon +++ b/toolchain/check/testdata/interface/fail_todo_define_default_fn_inline.carbon @@ -39,8 +39,8 @@ interface Interface { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %Interface.WithSelf.G.type: type = fn_type @Interface.WithSelf.G, @Interface.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %Interface.WithSelf.G: %Interface.WithSelf.G.type = struct_value () [symbolic] // CHECK:STDOUT: %assoc1: %Interface.assoc_type = assoc_entity element1, @Interface.WithSelf.%Interface.WithSelf.G.decl [concrete] @@ -72,15 +72,15 @@ interface Interface { // CHECK:STDOUT: %Interface.WithSelf.F.decl: @Interface.WithSelf.%Interface.WithSelf.F.type (%Interface.WithSelf.F.type) = fn_decl @Interface.WithSelf.F [symbolic = @Interface.WithSelf.%Interface.WithSelf.F (constants.%Interface.WithSelf.F)] {} {} // CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %Interface.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: %Interface.WithSelf.G.decl: @Interface.WithSelf.%Interface.WithSelf.G.type (%Interface.WithSelf.G.type) = fn_decl @Interface.WithSelf.G [symbolic = @Interface.WithSelf.%Interface.WithSelf.G (constants.%Interface.WithSelf.G)] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc26_35 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc26_35 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc26_35: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc26: Core.Form = init_form %i32.loc26_35 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc26: Core.Form = init_form %i32.loc26_35 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc26_19: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: %i32 = value_binding a, %a.param diff --git a/toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon b/toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon index 382911ca7c03..0f6cc599b51b 100644 --- a/toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon +++ b/toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon @@ -67,8 +67,8 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %Interface.WithSelf.G.type: type = fn_type @Interface.WithSelf.G, @Interface.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %Interface.WithSelf.G: %Interface.WithSelf.G.type = struct_value () [symbolic] // CHECK:STDOUT: %assoc1: %Interface.assoc_type = assoc_entity element1, @Interface.WithSelf.%Interface.WithSelf.G.decl [concrete] @@ -92,15 +92,15 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: %Interface.decl: type = interface_decl @Interface [concrete = constants.%Interface.type] {} {} // CHECK:STDOUT: %Interface.WithSelf.F.decl: %Interface.WithSelf.F.type = fn_decl @Interface.WithSelf.F [symbolic = constants.%Interface.WithSelf.F] {} {} // CHECK:STDOUT: %Interface.WithSelf.G.decl: %Interface.WithSelf.G.type = fn_decl @Interface.WithSelf.G [symbolic = constants.%Interface.WithSelf.G] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc18_35 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc18_35 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc18_35: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc18: Core.Form = init_form %i32.loc18_35 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc18: Core.Form = init_form %i32.loc18_35 [concrete = constants.%.795] // CHECK:STDOUT: %a.param.loc18: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc18_19: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a.loc18: %i32 = value_binding a, %a.param.loc18 @@ -120,15 +120,15 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: %Interface.WithSelf.F.decl: @Interface.WithSelf.%Interface.WithSelf.F.type (%Interface.WithSelf.F.type) = fn_decl @Interface.WithSelf.F [symbolic = @Interface.WithSelf.%Interface.WithSelf.F (constants.%Interface.WithSelf.F)] {} {} // CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %Interface.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: %Interface.WithSelf.G.decl: @Interface.WithSelf.%Interface.WithSelf.G.type (%Interface.WithSelf.G.type) = fn_decl @Interface.WithSelf.G [symbolic = @Interface.WithSelf.%Interface.WithSelf.G (constants.%Interface.WithSelf.G)] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc18_35 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc18_35 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc13_35: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc13: Core.Form = init_form %i32.loc13_35 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc13: Core.Form = init_form %i32.loc13_35 [concrete = constants.%.795] // CHECK:STDOUT: %a.param.loc13: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc13_19: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a.loc13: %i32 = value_binding a, %a.param.loc13 @@ -174,9 +174,9 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [concrete] -// CHECK:STDOUT: %Self.b54: %Interface.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %C: type = class_type @C, @C(%Self.b54) [symbolic] -// CHECK:STDOUT: %pattern_type.528: type = pattern_type %C [symbolic] +// CHECK:STDOUT: %Self.3ce: %Interface.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %C: type = class_type @C, @C(%Self.3ce) [symbolic] +// CHECK:STDOUT: %pattern_type.f25: type = pattern_type %C [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] @@ -184,20 +184,20 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: %ptr.18e: type = ptr_type %U.091 [symbolic] // CHECK:STDOUT: %pattern_type.423: type = pattern_type %ptr.18e [symbolic] // CHECK:STDOUT: %.6d8: Core.Form = init_form %ptr.18e [symbolic] -// CHECK:STDOUT: %C.F.type: type = fn_type @C.F, @C(%Self.b54) [symbolic] +// CHECK:STDOUT: %C.F.type: type = fn_type @C.F, @C(%Self.3ce) [symbolic] // CHECK:STDOUT: %C.F: %C.F.type = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %require_complete.b28: = require_complete_type %C [symbolic] +// CHECK:STDOUT: %require_complete.f37: = require_complete_type %C [symbolic] // CHECK:STDOUT: %require_complete.56d: = require_complete_type %ptr.18e [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.lookup_impl_witness.6a3: = lookup_impl_witness %ptr.18e, @Copy [symbolic] -// CHECK:STDOUT: %.2f1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%U.091) [symbolic] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.18e, (%Copy.lookup_impl_witness.6a3) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.c9b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] -// CHECK:STDOUT: %.f38: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c9b, %Copy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.601: %.f38 = impl_witness_access %Copy.lookup_impl_witness.6a3, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.6bf: = specific_impl_function %impl.elem0.601, @Copy.WithSelf.Op(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.088: = lookup_impl_witness %ptr.18e, @Copy [symbolic] +// CHECK:STDOUT: %.ddf: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%U.091) [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.18e, (%Copy.lookup_impl_witness.088) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.da6: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] +// CHECK:STDOUT: %.a56: type = fn_type_with_self_type %Copy.WithSelf.Op.type.da6, %Copy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.fbe: %.a56 = impl_witness_access %Copy.lookup_impl_witness.088, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.16d: = specific_impl_function %impl.elem0.fbe, @Copy.WithSelf.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -217,8 +217,8 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Interface.decl: type = interface_decl @Interface [concrete = constants.%Interface.type] {} {} // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [symbolic = constants.%C.F] { -// CHECK:STDOUT: %self.param_patt: @C.F.%pattern_type.loc14_14 (%pattern_type.528) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @C.F.%pattern_type.loc14_14 (%pattern_type.528) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @C.F.%pattern_type.loc14_14 (%pattern_type.f25) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @C.F.%pattern_type.loc14_14 (%pattern_type.f25) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: %u.param_patt: @C.F.%pattern_type.loc14_33 (%pattern_type.423) = value_param_pattern [concrete] // CHECK:STDOUT: %u.patt: @C.F.%pattern_type.loc14_33 (%pattern_type.423) = at_binding_pattern u, %u.param_patt [concrete] @@ -230,7 +230,7 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: %.loc20_58: Core.Form = init_form %ptr.loc20_58 [symbolic = %.loc14_43.1 (constants.%.6d8)] // CHECK:STDOUT: %self.param.loc20: @C.F.%C (%C) = value_param call_param0 // CHECK:STDOUT: %.loc20_31.1: type = splice_block %Self.ref.loc20 [symbolic = %C (constants.%C)] { -// CHECK:STDOUT: %.loc20_31.2: type = specific_constant constants.%C, @C(constants.%Self.b54) [symbolic = %C (constants.%C)] +// CHECK:STDOUT: %.loc20_31.2: type = specific_constant constants.%C, @C(constants.%Self.3ce) [symbolic = %C (constants.%C)] // CHECK:STDOUT: %Self.ref.loc20: type = name_ref Self, %.loc20_31.2 [symbolic = %C (constants.%C)] // CHECK:STDOUT: } // CHECK:STDOUT: %self.loc20: @C.F.%C (%C) = value_binding self, %self.param.loc20 @@ -251,7 +251,7 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Interface { -// CHECK:STDOUT: %Self: %Interface.type = symbolic_binding Self, 0 [symbolic = constants.%Self.b54] +// CHECK:STDOUT: %Self: %Interface.type = symbolic_binding Self, 0 [symbolic = constants.%Self.3ce] // CHECK:STDOUT: %Interface.WithSelf.decl = interface_with_self_decl @Interface [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -267,14 +267,14 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(@Interface.%Self: %Interface.type) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self: %Interface.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.b54)] +// CHECK:STDOUT: %Self: %Interface.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.3ce)] // CHECK:STDOUT: %C.F.type: type = fn_type @C.F, @C(%Self) [symbolic = %C.F.type (constants.%C.F.type)] // CHECK:STDOUT: %C.F: @C.%C.F.type (%C.F.type) = struct_value () [symbolic = %C.F (constants.%C.F)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %C.F.decl: @C.%C.F.type (%C.F.type) = fn_decl @C.F [symbolic = @C.%C.F (constants.%C.F)] { -// CHECK:STDOUT: %self.param_patt: @C.F.%pattern_type.loc14_14 (%pattern_type.528) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @C.F.%pattern_type.loc14_14 (%pattern_type.528) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @C.F.%pattern_type.loc14_14 (%pattern_type.f25) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @C.F.%pattern_type.loc14_14 (%pattern_type.f25) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: %u.param_patt: @C.F.%pattern_type.loc14_33 (%pattern_type.423) = value_param_pattern [concrete] // CHECK:STDOUT: %u.patt: @C.F.%pattern_type.loc14_33 (%pattern_type.423) = at_binding_pattern u, %u.param_patt [concrete] @@ -286,7 +286,7 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: %.loc14_43.2: Core.Form = init_form %ptr.loc14_43 [symbolic = %.loc14_43.1 (constants.%.6d8)] // CHECK:STDOUT: %self.param.loc14: @C.F.%C (%C) = value_param call_param0 // CHECK:STDOUT: %.loc14_16.1: type = splice_block %Self.ref.loc14 [symbolic = %C (constants.%C)] { -// CHECK:STDOUT: %.loc14_16.2: type = specific_constant constants.%C, @C(constants.%Self.b54) [symbolic = %C (constants.%C)] +// CHECK:STDOUT: %.loc14_16.2: type = specific_constant constants.%C, @C(constants.%Self.3ce) [symbolic = %C (constants.%C)] // CHECK:STDOUT: %Self.ref.loc14: type = name_ref Self, %.loc14_16.2 [symbolic = %C (constants.%C)] // CHECK:STDOUT: } // CHECK:STDOUT: %self.loc14: @C.F.%C (%C) = value_binding self, %self.param.loc14 @@ -314,50 +314,50 @@ fn Interface.C.F[unused self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @C.F(@Interface.%Self: %Interface.type, %U.loc14_23.2: type) { -// CHECK:STDOUT: %Self: %Interface.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.b54)] +// CHECK:STDOUT: %Self: %Interface.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.3ce)] // CHECK:STDOUT: %C: type = class_type @C, @C(%Self) [symbolic = %C (constants.%C)] -// CHECK:STDOUT: %pattern_type.loc14_14: type = pattern_type %C [symbolic = %pattern_type.loc14_14 (constants.%pattern_type.528)] +// CHECK:STDOUT: %pattern_type.loc14_14: type = pattern_type %C [symbolic = %pattern_type.loc14_14 (constants.%pattern_type.f25)] // CHECK:STDOUT: %U.loc14_23.1: type = symbolic_binding U, 1 [symbolic = %U.loc14_23.1 (constants.%U.091)] // CHECK:STDOUT: %ptr.loc14_36.1: type = ptr_type %U.loc14_23.1 [symbolic = %ptr.loc14_36.1 (constants.%ptr.18e)] // CHECK:STDOUT: %pattern_type.loc14_33: type = pattern_type %ptr.loc14_36.1 [symbolic = %pattern_type.loc14_33 (constants.%pattern_type.423)] // CHECK:STDOUT: %.loc14_43.1: Core.Form = init_form %ptr.loc14_36.1 [symbolic = %.loc14_43.1 (constants.%.6d8)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc20_29: = require_complete_type %C [symbolic = %require_complete.loc20_29 (constants.%require_complete.b28)] +// CHECK:STDOUT: %require_complete.loc20_29: = require_complete_type %C [symbolic = %require_complete.loc20_29 (constants.%require_complete.f37)] // CHECK:STDOUT: %require_complete.loc20_48: = require_complete_type %ptr.loc14_36.1 [symbolic = %require_complete.loc20_48 (constants.%require_complete.56d)] -// CHECK:STDOUT: %.loc20_69.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%U.loc14_23.1) [symbolic = %.loc20_69.1 (constants.%.2f1)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc14_36.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.6a3)] +// CHECK:STDOUT: %.loc20_69.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%U.loc14_23.1) [symbolic = %.loc20_69.1 (constants.%.ddf)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc14_36.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.088)] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc14_36.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.c9b)] -// CHECK:STDOUT: %.loc20_69.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc20_69.2 (constants.%.f38)] -// CHECK:STDOUT: %impl.elem0.loc20_69.2: @C.F.%.loc20_69.2 (%.f38) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc20_69.2 (constants.%impl.elem0.601)] -// CHECK:STDOUT: %specific_impl_fn.loc20_69.2: = specific_impl_function %impl.elem0.loc20_69.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc20_69.2 (constants.%specific_impl_fn.6bf)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.da6)] +// CHECK:STDOUT: %.loc20_69.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc20_69.2 (constants.%.a56)] +// CHECK:STDOUT: %impl.elem0.loc20_69.2: @C.F.%.loc20_69.2 (%.a56) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc20_69.2 (constants.%impl.elem0.fbe)] +// CHECK:STDOUT: %specific_impl_fn.loc20_69.2: = specific_impl_function %impl.elem0.loc20_69.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc20_69.2 (constants.%specific_impl_fn.16d)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param.loc20: @C.F.%C (%C), %u.param.loc20: @C.F.%ptr.loc14_36.1 (%ptr.18e)) -> out %return.param.loc20: @C.F.%ptr.loc14_36.1 (%ptr.18e) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %u.ref: @C.F.%ptr.loc14_36.1 (%ptr.18e) = name_ref u, %u.loc20 -// CHECK:STDOUT: %impl.elem0.loc20_69.1: @C.F.%.loc20_69.2 (%.f38) = impl_witness_access constants.%Copy.lookup_impl_witness.6a3, element0 [symbolic = %impl.elem0.loc20_69.2 (constants.%impl.elem0.601)] +// CHECK:STDOUT: %impl.elem0.loc20_69.1: @C.F.%.loc20_69.2 (%.a56) = impl_witness_access constants.%Copy.lookup_impl_witness.088, element0 [symbolic = %impl.elem0.loc20_69.2 (constants.%impl.elem0.fbe)] // CHECK:STDOUT: %bound_method.loc20_69.1: = bound_method %u.ref, %impl.elem0.loc20_69.1 -// CHECK:STDOUT: %specific_impl_fn.loc20_69.1: = specific_impl_function %impl.elem0.loc20_69.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc20_69.2 (constants.%specific_impl_fn.6bf)] +// CHECK:STDOUT: %specific_impl_fn.loc20_69.1: = specific_impl_function %impl.elem0.loc20_69.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc20_69.2 (constants.%specific_impl_fn.16d)] // CHECK:STDOUT: %bound_method.loc20_69.2: = bound_method %u.ref, %specific_impl_fn.loc20_69.1 // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @C.F.%ptr.loc14_36.1 (%ptr.18e) = call %bound_method.loc20_69.2(%u.ref) // CHECK:STDOUT: return %Copy.WithSelf.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Self.b54) {} +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Self.3ce) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%Self.b54) { +// CHECK:STDOUT: specific @C(constants.%Self.3ce) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.b54 +// CHECK:STDOUT: %Self => constants.%Self.3ce // CHECK:STDOUT: %C.F.type => constants.%C.F.type // CHECK:STDOUT: %C.F => constants.%C.F // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.F(constants.%Self.b54, constants.%U.091) { -// CHECK:STDOUT: %Self => constants.%Self.b54 +// CHECK:STDOUT: specific @C.F(constants.%Self.3ce, constants.%U.091) { +// CHECK:STDOUT: %Self => constants.%Self.3ce // CHECK:STDOUT: %C => constants.%C -// CHECK:STDOUT: %pattern_type.loc14_14 => constants.%pattern_type.528 +// CHECK:STDOUT: %pattern_type.loc14_14 => constants.%pattern_type.f25 // CHECK:STDOUT: %U.loc14_23.1 => constants.%U.091 // CHECK:STDOUT: %ptr.loc14_36.1 => constants.%ptr.18e // CHECK:STDOUT: %pattern_type.loc14_33 => constants.%pattern_type.423 diff --git a/toolchain/check/testdata/interface/final.carbon b/toolchain/check/testdata/interface/final.carbon index 593cbe8a645e..6ad3a9cd5e9f 100644 --- a/toolchain/check/testdata/interface/final.carbon +++ b/toolchain/check/testdata/interface/final.carbon @@ -32,40 +32,40 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.d9f: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.179) [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.dcc: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.37e) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %I.WithSelf.F.592: %I.WithSelf.F.type.d9f = struct_value () [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ec6: %I.WithSelf.F.type.dcc = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] // CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete] -// CHECK:STDOUT: %Self.fd8: %J.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.653: %J.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.1b4: type = pattern_type %J.type [concrete] -// CHECK:STDOUT: %T.1f3: %J.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.771: type = facet_access_type %T.1f3 [symbolic] -// CHECK:STDOUT: %I.impl_witness.f6a: = impl_witness @T.as_type.as.I.impl.%I.impl_witness_table, @T.as_type.as.I.impl(%T.1f3) [symbolic] -// CHECK:STDOUT: %T.as_type.as.I.impl.F.type.1ee: type = fn_type @T.as_type.as.I.impl.F, @T.as_type.as.I.impl(%T.1f3) [symbolic] -// CHECK:STDOUT: %T.as_type.as.I.impl.F.da0: %T.as_type.as.I.impl.F.type.1ee = struct_value () [symbolic] -// CHECK:STDOUT: %I.facet.e7f: %I.type = facet_value %T.as_type.771, (%I.impl_witness.f6a) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.9d4: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.e7f) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.4d1: %I.WithSelf.F.type.9d4 = struct_value () [symbolic] -// CHECK:STDOUT: %pattern_type.998: type = pattern_type %I.type [concrete] -// CHECK:STDOUT: %T.2e1: %I.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.2c5: type = pattern_type %J.type [concrete] +// CHECK:STDOUT: %T.e40: %J.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.d90: type = facet_access_type %T.e40 [symbolic] +// CHECK:STDOUT: %I.impl_witness.333: = impl_witness @T.as_type.as.I.impl.%I.impl_witness_table, @T.as_type.as.I.impl(%T.e40) [symbolic] +// CHECK:STDOUT: %T.as_type.as.I.impl.F.type.f53: type = fn_type @T.as_type.as.I.impl.F, @T.as_type.as.I.impl(%T.e40) [symbolic] +// CHECK:STDOUT: %T.as_type.as.I.impl.F.305: %T.as_type.as.I.impl.F.type.f53 = struct_value () [symbolic] +// CHECK:STDOUT: %I.facet.39f: %I.type = facet_value %T.as_type.d90, (%I.impl_witness.333) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.12f: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.39f) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.a78: %I.WithSelf.F.type.12f = struct_value () [symbolic] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %I.type [concrete] +// CHECK:STDOUT: %T.dda: %I.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %UseI.type: type = fn_type @UseI [concrete] // CHECK:STDOUT: %UseI: %UseI.type = struct_value () [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.a52: type = fn_type @I.WithSelf.F, @I.WithSelf(%T.2e1) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.08d: %I.WithSelf.F.type.a52 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.a70: type = facet_access_type %T.2e1 [symbolic] -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.2e1, @I [symbolic] -// CHECK:STDOUT: %.b7f: type = fn_type_with_self_type %I.WithSelf.F.type.a52, %T.2e1 [symbolic] -// CHECK:STDOUT: %impl.elem0: %.b7f = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.WithSelf.F(%T.2e1) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.418: type = fn_type @I.WithSelf.F, @I.WithSelf(%T.dda) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.ca5: %I.WithSelf.F.type.418 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.b38: type = facet_access_type %T.dda [symbolic] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.dda, @I [symbolic] +// CHECK:STDOUT: %.81d: type = fn_type_with_self_type %I.WithSelf.F.type.418, %T.dda [symbolic] +// CHECK:STDOUT: %impl.elem0: %.81d = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.WithSelf.F(%T.dda) [symbolic] // CHECK:STDOUT: %UseJ.type: type = fn_type @UseJ [concrete] // CHECK:STDOUT: %UseJ: %UseJ.type = struct_value () [concrete] -// CHECK:STDOUT: %.af5: require_specific_def_type = require_specific_def @T.as_type.as.I.impl(%T.1f3) [symbolic] -// CHECK:STDOUT: %UseI.specific_fn.722: = specific_function %UseI, @UseI(%I.facet.e7f) [symbolic] +// CHECK:STDOUT: %.062: require_specific_def_type = require_specific_def @T.as_type.as.I.impl(%T.e40) [symbolic] +// CHECK:STDOUT: %UseI.specific_fn.081: = specific_function %UseI, @UseI(%I.facet.39f) [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] @@ -74,17 +74,17 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: %Use.type: type = fn_type @Use [concrete] // CHECK:STDOUT: %Use: %Use.type = struct_value () [concrete] // CHECK:STDOUT: %UseJ.specific_fn: = specific_function %UseJ, @UseJ(%J.facet) [concrete] -// CHECK:STDOUT: %.9f6: type = fn_type_with_self_type %I.WithSelf.F.type.9d4, %I.facet.e7f [symbolic] -// CHECK:STDOUT: %T.as_type.as.I.impl.F.specific_fn.04c: = specific_function %T.as_type.as.I.impl.F.da0, @T.as_type.as.I.impl.F(%T.1f3) [symbolic] -// CHECK:STDOUT: %I.impl_witness.e9c: = impl_witness @T.as_type.as.I.impl.%I.impl_witness_table, @T.as_type.as.I.impl(%J.facet) [concrete] -// CHECK:STDOUT: %T.as_type.as.I.impl.F.type.2ec: type = fn_type @T.as_type.as.I.impl.F, @T.as_type.as.I.impl(%J.facet) [concrete] -// CHECK:STDOUT: %T.as_type.as.I.impl.F.5b3: %T.as_type.as.I.impl.F.type.2ec = struct_value () [concrete] -// CHECK:STDOUT: %.86c: require_specific_def_type = require_specific_def @T.as_type.as.I.impl(%J.facet) [concrete] -// CHECK:STDOUT: %I.facet.9c3: %I.type = facet_value %C, (%I.impl_witness.e9c) [concrete] -// CHECK:STDOUT: %UseI.specific_fn.6ad: = specific_function %UseI, @UseI(%I.facet.9c3) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.425: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.9c3) [concrete] -// CHECK:STDOUT: %.59d: type = fn_type_with_self_type %I.WithSelf.F.type.425, %I.facet.9c3 [concrete] -// CHECK:STDOUT: %T.as_type.as.I.impl.F.specific_fn.675: = specific_function %T.as_type.as.I.impl.F.5b3, @T.as_type.as.I.impl.F(%J.facet) [concrete] +// CHECK:STDOUT: %.c2e: type = fn_type_with_self_type %I.WithSelf.F.type.12f, %I.facet.39f [symbolic] +// CHECK:STDOUT: %T.as_type.as.I.impl.F.specific_fn.925: = specific_function %T.as_type.as.I.impl.F.305, @T.as_type.as.I.impl.F(%T.e40) [symbolic] +// CHECK:STDOUT: %I.impl_witness.9d5: = impl_witness @T.as_type.as.I.impl.%I.impl_witness_table, @T.as_type.as.I.impl(%J.facet) [concrete] +// CHECK:STDOUT: %T.as_type.as.I.impl.F.type.907: type = fn_type @T.as_type.as.I.impl.F, @T.as_type.as.I.impl(%J.facet) [concrete] +// CHECK:STDOUT: %T.as_type.as.I.impl.F.b2b: %T.as_type.as.I.impl.F.type.907 = struct_value () [concrete] +// CHECK:STDOUT: %.72e: require_specific_def_type = require_specific_def @T.as_type.as.I.impl(%J.facet) [concrete] +// CHECK:STDOUT: %I.facet.ed7: %I.type = facet_value %C, (%I.impl_witness.9d5) [concrete] +// CHECK:STDOUT: %UseI.specific_fn.238: = specific_function %UseI, @UseI(%I.facet.ed7) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.31e: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.ed7) [concrete] +// CHECK:STDOUT: %.7bd: type = fn_type_with_self_type %I.WithSelf.F.type.31e, %I.facet.ed7 [concrete] +// CHECK:STDOUT: %T.as_type.as.I.impl.F.specific_fn.2e2: = specific_function %T.as_type.as.I.impl.F.b2b, @T.as_type.as.I.impl.F(%J.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -108,35 +108,35 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} // CHECK:STDOUT: impl_decl @T.as_type.as.I.impl [concrete] { -// CHECK:STDOUT: %T.patt: %pattern_type.1b4 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.2c5 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: %J.type = name_ref T, %T.loc7_21.2 [symbolic = %T.loc7_21.1 (constants.%T.1f3)] -// CHECK:STDOUT: %T.as_type.loc7_27.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc7_27.1 (constants.%T.as_type.771)] -// CHECK:STDOUT: %.loc7_27: type = converted %T.ref, %T.as_type.loc7_27.2 [symbolic = %T.as_type.loc7_27.1 (constants.%T.as_type.771)] +// CHECK:STDOUT: %T.ref: %J.type = name_ref T, %T.loc7_21.2 [symbolic = %T.loc7_21.1 (constants.%T.e40)] +// CHECK:STDOUT: %T.as_type.loc7_27.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc7_27.1 (constants.%T.as_type.d90)] +// CHECK:STDOUT: %.loc7_27: type = converted %T.ref, %T.as_type.loc7_27.2 [symbolic = %T.as_type.loc7_27.1 (constants.%T.as_type.d90)] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.loc7_24: type = splice_block %J.ref [concrete = constants.%J.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc7_21.2: %J.type = symbolic_binding T, 0 [symbolic = %T.loc7_21.1 (constants.%T.1f3)] +// CHECK:STDOUT: %T.loc7_21.2: %J.type = symbolic_binding T, 0 [symbolic = %T.loc7_21.1 (constants.%T.e40)] // CHECK:STDOUT: } // CHECK:STDOUT: %UseI.decl: %UseI.type = fn_decl @UseI [concrete = constants.%UseI] { -// CHECK:STDOUT: %T.patt: %pattern_type.998 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.6cb = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_13: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc11_10.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc11_10.1 (constants.%T.2e1)] +// CHECK:STDOUT: %T.loc11_10.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc11_10.1 (constants.%T.dda)] // CHECK:STDOUT: } // CHECK:STDOUT: %UseJ.decl: %UseJ.type = fn_decl @UseJ [concrete = constants.%UseJ] { -// CHECK:STDOUT: %T.patt: %pattern_type.1b4 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.2c5 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc12_13: type = splice_block %J.ref [concrete = constants.%J.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc12_10.2: %J.type = symbolic_binding T, 0 [symbolic = %T.loc12_10.1 (constants.%T.1f3)] +// CHECK:STDOUT: %T.loc12_10.2: %J.type = symbolic_binding T, 0 [symbolic = %T.loc12_10.1 (constants.%T.e40)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: impl_decl @C.as.J.impl [concrete] {} { @@ -147,11 +147,11 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.d9f) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.592)] {} {} +// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.dcc) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ec6)] {} {} // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -163,7 +163,7 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @J { -// CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = constants.%Self.fd8] +// CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = constants.%Self.653] // CHECK:STDOUT: %J.WithSelf.decl = interface_with_self_decl @J [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -174,18 +174,18 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic impl @T.as_type.as.I.impl(%T.loc7_21.2: %J.type) { -// CHECK:STDOUT: %T.loc7_21.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc7_21.1 (constants.%T.1f3)] -// CHECK:STDOUT: %T.as_type.loc7_27.1: type = facet_access_type %T.loc7_21.1 [symbolic = %T.as_type.loc7_27.1 (constants.%T.as_type.771)] -// CHECK:STDOUT: %I.impl_witness.loc7_34.2: = impl_witness %I.impl_witness_table, @T.as_type.as.I.impl(%T.loc7_21.1) [symbolic = %I.impl_witness.loc7_34.2 (constants.%I.impl_witness.f6a)] +// CHECK:STDOUT: %T.loc7_21.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc7_21.1 (constants.%T.e40)] +// CHECK:STDOUT: %T.as_type.loc7_27.1: type = facet_access_type %T.loc7_21.1 [symbolic = %T.as_type.loc7_27.1 (constants.%T.as_type.d90)] +// CHECK:STDOUT: %I.impl_witness.loc7_34.2: = impl_witness %I.impl_witness_table, @T.as_type.as.I.impl(%T.loc7_21.1) [symbolic = %I.impl_witness.loc7_34.2 (constants.%I.impl_witness.333)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.as.I.impl.F.type: type = fn_type @T.as_type.as.I.impl.F, @T.as_type.as.I.impl(%T.loc7_21.1) [symbolic = %T.as_type.as.I.impl.F.type (constants.%T.as_type.as.I.impl.F.type.1ee)] -// CHECK:STDOUT: %T.as_type.as.I.impl.F: @T.as_type.as.I.impl.%T.as_type.as.I.impl.F.type (%T.as_type.as.I.impl.F.type.1ee) = struct_value () [symbolic = %T.as_type.as.I.impl.F (constants.%T.as_type.as.I.impl.F.da0)] +// CHECK:STDOUT: %T.as_type.as.I.impl.F.type: type = fn_type @T.as_type.as.I.impl.F, @T.as_type.as.I.impl(%T.loc7_21.1) [symbolic = %T.as_type.as.I.impl.F.type (constants.%T.as_type.as.I.impl.F.type.f53)] +// CHECK:STDOUT: %T.as_type.as.I.impl.F: @T.as_type.as.I.impl.%T.as_type.as.I.impl.F.type (%T.as_type.as.I.impl.F.type.f53) = struct_value () [symbolic = %T.as_type.as.I.impl.F (constants.%T.as_type.as.I.impl.F.305)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc7_27 as %I.ref { -// CHECK:STDOUT: %T.as_type.as.I.impl.F.decl: @T.as_type.as.I.impl.%T.as_type.as.I.impl.F.type (%T.as_type.as.I.impl.F.type.1ee) = fn_decl @T.as_type.as.I.impl.F [symbolic = @T.as_type.as.I.impl.%T.as_type.as.I.impl.F (constants.%T.as_type.as.I.impl.F.da0)] {} {} +// CHECK:STDOUT: %T.as_type.as.I.impl.F.decl: @T.as_type.as.I.impl.%T.as_type.as.I.impl.F.type (%T.as_type.as.I.impl.F.type.f53) = fn_decl @T.as_type.as.I.impl.F [symbolic = @T.as_type.as.I.impl.%T.as_type.as.I.impl.F (constants.%T.as_type.as.I.impl.F.305)] {} {} // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%T.as_type.as.I.impl.F.decl), @T.as_type.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness.loc7_34.1: = impl_witness %I.impl_witness_table, @T.as_type.as.I.impl(constants.%T.1f3) [symbolic = %I.impl_witness.loc7_34.2 (constants.%I.impl_witness.f6a)] +// CHECK:STDOUT: %I.impl_witness.loc7_34.1: = impl_witness %I.impl_witness_table, @T.as_type.as.I.impl(constants.%T.e40) [symbolic = %I.impl_witness.loc7_34.2 (constants.%I.impl_witness.333)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %T.as_type.as.I.impl.F.decl @@ -225,47 +225,47 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @UseI(%T.loc11_10.2: %I.type) { -// CHECK:STDOUT: %T.loc11_10.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc11_10.1 (constants.%T.2e1)] +// CHECK:STDOUT: %T.loc11_10.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc11_10.1 (constants.%T.dda)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc11_19.2: type = facet_access_type %T.loc11_10.1 [symbolic = %T.as_type.loc11_19.2 (constants.%T.as_type.a70)] -// CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%T.loc11_10.1) [symbolic = %I.WithSelf.F.type (constants.%I.WithSelf.F.type.a52)] -// CHECK:STDOUT: %.loc11_19.2: type = fn_type_with_self_type %I.WithSelf.F.type, %T.loc11_10.1 [symbolic = %.loc11_19.2 (constants.%.b7f)] +// CHECK:STDOUT: %T.as_type.loc11_19.2: type = facet_access_type %T.loc11_10.1 [symbolic = %T.as_type.loc11_19.2 (constants.%T.as_type.b38)] +// CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%T.loc11_10.1) [symbolic = %I.WithSelf.F.type (constants.%I.WithSelf.F.type.418)] +// CHECK:STDOUT: %.loc11_19.2: type = fn_type_with_self_type %I.WithSelf.F.type, %T.loc11_10.1 [symbolic = %.loc11_19.2 (constants.%.81d)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc11_10.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc11_19.2: @UseI.%.loc11_19.2 (%.b7f) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_19.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc11_19.2: @UseI.%.loc11_19.2 (%.81d) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_19.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc11_19.2: = specific_impl_function %impl.elem0.loc11_19.2, @I.WithSelf.F(%T.loc11_10.1) [symbolic = %specific_impl_fn.loc11_19.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc11_10.2 [symbolic = %T.loc11_10.1 (constants.%T.2e1)] -// CHECK:STDOUT: %T.as_type.loc11_19.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc11_19.2 (constants.%T.as_type.a70)] -// CHECK:STDOUT: %.loc11_19.1: type = converted %T.ref, %T.as_type.loc11_19.1 [symbolic = %T.as_type.loc11_19.2 (constants.%T.as_type.a70)] +// CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc11_10.2 [symbolic = %T.loc11_10.1 (constants.%T.dda)] +// CHECK:STDOUT: %T.as_type.loc11_19.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc11_19.2 (constants.%T.as_type.b38)] +// CHECK:STDOUT: %.loc11_19.1: type = converted %T.ref, %T.as_type.loc11_19.1 [symbolic = %T.as_type.loc11_19.2 (constants.%T.as_type.b38)] // CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc11_19.1: @UseI.%.loc11_19.2 (%.b7f) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_19.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc11_19.1: = specific_impl_function %impl.elem0.loc11_19.1, @I.WithSelf.F(constants.%T.2e1) [symbolic = %specific_impl_fn.loc11_19.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %impl.elem0.loc11_19.1: @UseI.%.loc11_19.2 (%.81d) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_19.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc11_19.1: = specific_impl_function %impl.elem0.loc11_19.1, @I.WithSelf.F(constants.%T.dda) [symbolic = %specific_impl_fn.loc11_19.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %I.WithSelf.F.call: init %empty_tuple.type = call %specific_impl_fn.loc11_19.1() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @UseJ(%T.loc12_10.2: %J.type) { -// CHECK:STDOUT: %T.loc12_10.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc12_10.1 (constants.%T.1f3)] +// CHECK:STDOUT: %T.loc12_10.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc12_10.1 (constants.%T.e40)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc12_24.2: type = facet_access_type %T.loc12_10.1 [symbolic = %T.as_type.loc12_24.2 (constants.%T.as_type.771)] -// CHECK:STDOUT: %.loc12_24.2: require_specific_def_type = require_specific_def @T.as_type.as.I.impl(%T.loc12_10.1) [symbolic = %.loc12_24.2 (constants.%.af5)] -// CHECK:STDOUT: %I.impl_witness: = impl_witness @T.as_type.as.I.impl.%I.impl_witness_table, @T.as_type.as.I.impl(%T.loc12_10.1) [symbolic = %I.impl_witness (constants.%I.impl_witness.f6a)] -// CHECK:STDOUT: %I.facet.loc12_24.2: %I.type = facet_value %T.as_type.loc12_24.2, (%I.impl_witness) [symbolic = %I.facet.loc12_24.2 (constants.%I.facet.e7f)] -// CHECK:STDOUT: %UseI.specific_fn.loc12_18.2: = specific_function constants.%UseI, @UseI(%I.facet.loc12_24.2) [symbolic = %UseI.specific_fn.loc12_18.2 (constants.%UseI.specific_fn.722)] +// CHECK:STDOUT: %T.as_type.loc12_24.2: type = facet_access_type %T.loc12_10.1 [symbolic = %T.as_type.loc12_24.2 (constants.%T.as_type.d90)] +// CHECK:STDOUT: %.loc12_24.2: require_specific_def_type = require_specific_def @T.as_type.as.I.impl(%T.loc12_10.1) [symbolic = %.loc12_24.2 (constants.%.062)] +// CHECK:STDOUT: %I.impl_witness: = impl_witness @T.as_type.as.I.impl.%I.impl_witness_table, @T.as_type.as.I.impl(%T.loc12_10.1) [symbolic = %I.impl_witness (constants.%I.impl_witness.333)] +// CHECK:STDOUT: %I.facet.loc12_24.2: %I.type = facet_value %T.as_type.loc12_24.2, (%I.impl_witness) [symbolic = %I.facet.loc12_24.2 (constants.%I.facet.39f)] +// CHECK:STDOUT: %UseI.specific_fn.loc12_18.2: = specific_function constants.%UseI, @UseI(%I.facet.loc12_24.2) [symbolic = %UseI.specific_fn.loc12_18.2 (constants.%UseI.specific_fn.081)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %UseI.ref: %UseI.type = name_ref UseI, file.%UseI.decl [concrete = constants.%UseI] -// CHECK:STDOUT: %T.ref: %J.type = name_ref T, %T.loc12_10.2 [symbolic = %T.loc12_10.1 (constants.%T.1f3)] -// CHECK:STDOUT: %T.as_type.loc12_24.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc12_24.2 (constants.%T.as_type.771)] -// CHECK:STDOUT: %I.facet.loc12_24.1: %I.type = facet_value %T.as_type.loc12_24.1, (constants.%I.impl_witness.f6a) [symbolic = %I.facet.loc12_24.2 (constants.%I.facet.e7f)] -// CHECK:STDOUT: %.loc12_24.1: %I.type = converted %T.ref, %I.facet.loc12_24.1 [symbolic = %I.facet.loc12_24.2 (constants.%I.facet.e7f)] -// CHECK:STDOUT: %UseI.specific_fn.loc12_18.1: = specific_function %UseI.ref, @UseI(constants.%I.facet.e7f) [symbolic = %UseI.specific_fn.loc12_18.2 (constants.%UseI.specific_fn.722)] +// CHECK:STDOUT: %T.ref: %J.type = name_ref T, %T.loc12_10.2 [symbolic = %T.loc12_10.1 (constants.%T.e40)] +// CHECK:STDOUT: %T.as_type.loc12_24.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc12_24.2 (constants.%T.as_type.d90)] +// CHECK:STDOUT: %I.facet.loc12_24.1: %I.type = facet_value %T.as_type.loc12_24.1, (constants.%I.impl_witness.333) [symbolic = %I.facet.loc12_24.2 (constants.%I.facet.39f)] +// CHECK:STDOUT: %.loc12_24.1: %I.type = converted %T.ref, %I.facet.loc12_24.1 [symbolic = %I.facet.loc12_24.2 (constants.%I.facet.39f)] +// CHECK:STDOUT: %UseI.specific_fn.loc12_18.1: = specific_function %UseI.ref, @UseI(constants.%I.facet.39f) [symbolic = %UseI.specific_fn.loc12_18.2 (constants.%UseI.specific_fn.081)] // CHECK:STDOUT: %UseI.call: init %empty_tuple.type = call %UseI.specific_fn.loc12_18.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -282,69 +282,69 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.179 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d9f -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.592 +// CHECK:STDOUT: %Self => constants.%Self.37e +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.dcc +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ec6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.179) {} +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.37e) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%Self.fd8) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%Self.653) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.I.impl(constants.%T.1f3) { -// CHECK:STDOUT: %T.loc7_21.1 => constants.%T.1f3 -// CHECK:STDOUT: %T.as_type.loc7_27.1 => constants.%T.as_type.771 -// CHECK:STDOUT: %I.impl_witness.loc7_34.2 => constants.%I.impl_witness.f6a +// CHECK:STDOUT: specific @T.as_type.as.I.impl(constants.%T.e40) { +// CHECK:STDOUT: %T.loc7_21.1 => constants.%T.e40 +// CHECK:STDOUT: %T.as_type.loc7_27.1 => constants.%T.as_type.d90 +// CHECK:STDOUT: %I.impl_witness.loc7_34.2 => constants.%I.impl_witness.333 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.as.I.impl.F.type => constants.%T.as_type.as.I.impl.F.type.1ee -// CHECK:STDOUT: %T.as_type.as.I.impl.F => constants.%T.as_type.as.I.impl.F.da0 +// CHECK:STDOUT: %T.as_type.as.I.impl.F.type => constants.%T.as_type.as.I.impl.F.type.f53 +// CHECK:STDOUT: %T.as_type.as.I.impl.F => constants.%T.as_type.as.I.impl.F.305 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.I.impl.F(constants.%T.1f3) { +// CHECK:STDOUT: specific @T.as_type.as.I.impl.F(constants.%T.e40) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.e7f) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.39f) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.e7f -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.9d4 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.4d1 +// CHECK:STDOUT: %Self => constants.%I.facet.39f +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.12f +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.a78 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.e7f) {} +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.39f) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @UseI(constants.%T.2e1) { -// CHECK:STDOUT: %T.loc11_10.1 => constants.%T.2e1 +// CHECK:STDOUT: specific @UseI(constants.%T.dda) { +// CHECK:STDOUT: %T.loc11_10.1 => constants.%T.dda // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%T.2e1) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%T.dda) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%T.2e1 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.a52 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.08d +// CHECK:STDOUT: %Self => constants.%T.dda +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.418 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ca5 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%T.2e1) {} +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%T.dda) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @UseJ(constants.%T.1f3) { -// CHECK:STDOUT: %T.loc12_10.1 => constants.%T.1f3 +// CHECK:STDOUT: specific @UseJ(constants.%T.e40) { +// CHECK:STDOUT: %T.loc12_10.1 => constants.%T.e40 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @UseI(constants.%I.facet.e7f) { -// CHECK:STDOUT: %T.loc11_10.1 => constants.%I.facet.e7f +// CHECK:STDOUT: specific @UseI(constants.%I.facet.39f) { +// CHECK:STDOUT: %T.loc11_10.1 => constants.%I.facet.39f // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc11_19.2 => constants.%T.as_type.771 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.9d4 -// CHECK:STDOUT: %.loc11_19.2 => constants.%.9f6 -// CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.impl_witness.f6a -// CHECK:STDOUT: %impl.elem0.loc11_19.2 => constants.%T.as_type.as.I.impl.F.da0 -// CHECK:STDOUT: %specific_impl_fn.loc11_19.2 => constants.%T.as_type.as.I.impl.F.specific_fn.04c +// CHECK:STDOUT: %T.as_type.loc11_19.2 => constants.%T.as_type.d90 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.12f +// CHECK:STDOUT: %.loc11_19.2 => constants.%.c2e +// CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.impl_witness.333 +// CHECK:STDOUT: %impl.elem0.loc11_19.2 => constants.%T.as_type.as.I.impl.F.305 +// CHECK:STDOUT: %specific_impl_fn.loc11_19.2 => constants.%T.as_type.as.I.impl.F.specific_fn.925 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet) { @@ -356,37 +356,37 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc12_24.2 => constants.%C -// CHECK:STDOUT: %.loc12_24.2 => constants.%.86c -// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.e9c -// CHECK:STDOUT: %I.facet.loc12_24.2 => constants.%I.facet.9c3 -// CHECK:STDOUT: %UseI.specific_fn.loc12_18.2 => constants.%UseI.specific_fn.6ad +// CHECK:STDOUT: %.loc12_24.2 => constants.%.72e +// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.9d5 +// CHECK:STDOUT: %I.facet.loc12_24.2 => constants.%I.facet.ed7 +// CHECK:STDOUT: %UseI.specific_fn.loc12_18.2 => constants.%UseI.specific_fn.238 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as_type.as.I.impl(constants.%J.facet) { // CHECK:STDOUT: %T.loc7_21.1 => constants.%J.facet // CHECK:STDOUT: %T.as_type.loc7_27.1 => constants.%C -// CHECK:STDOUT: %I.impl_witness.loc7_34.2 => constants.%I.impl_witness.e9c +// CHECK:STDOUT: %I.impl_witness.loc7_34.2 => constants.%I.impl_witness.9d5 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.as.I.impl.F.type => constants.%T.as_type.as.I.impl.F.type.2ec -// CHECK:STDOUT: %T.as_type.as.I.impl.F => constants.%T.as_type.as.I.impl.F.5b3 +// CHECK:STDOUT: %T.as_type.as.I.impl.F.type => constants.%T.as_type.as.I.impl.F.type.907 +// CHECK:STDOUT: %T.as_type.as.I.impl.F => constants.%T.as_type.as.I.impl.F.b2b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @UseI(constants.%I.facet.9c3) { -// CHECK:STDOUT: %T.loc11_10.1 => constants.%I.facet.9c3 +// CHECK:STDOUT: specific @UseI(constants.%I.facet.ed7) { +// CHECK:STDOUT: %T.loc11_10.1 => constants.%I.facet.ed7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc11_19.2 => constants.%C -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.425 -// CHECK:STDOUT: %.loc11_19.2 => constants.%.59d -// CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.impl_witness.e9c -// CHECK:STDOUT: %impl.elem0.loc11_19.2 => constants.%T.as_type.as.I.impl.F.5b3 -// CHECK:STDOUT: %specific_impl_fn.loc11_19.2 => constants.%T.as_type.as.I.impl.F.specific_fn.675 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.31e +// CHECK:STDOUT: %.loc11_19.2 => constants.%.7bd +// CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.impl_witness.9d5 +// CHECK:STDOUT: %impl.elem0.loc11_19.2 => constants.%T.as_type.as.I.impl.F.b2b +// CHECK:STDOUT: %specific_impl_fn.loc11_19.2 => constants.%T.as_type.as.I.impl.F.specific_fn.2e2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.9c3) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.ed7) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.9c3) {} +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.ed7) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as_type.as.I.impl.F(constants.%J.facet) { // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/interface/generic.carbon b/toolchain/check/testdata/interface/generic.carbon index 0c89cb3aac35..cde7128a4da1 100644 --- a/toolchain/check/testdata/interface/generic.carbon +++ b/toolchain/check/testdata/interface/generic.carbon @@ -83,55 +83,55 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Simple.type.7b1: type = generic_interface_type @Simple [concrete] +// CHECK:STDOUT: %Simple.type.887: type = generic_interface_type @Simple [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Simple.generic: %Simple.type.7b1 = struct_value () [concrete] -// CHECK:STDOUT: %Simple.type.260: type = facet_type <@Simple, @Simple(%T.67d)> [symbolic] -// CHECK:STDOUT: %Self.2a5: %Simple.type.260 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Simple.generic: %Simple.type.887 = struct_value () [concrete] +// CHECK:STDOUT: %Simple.type.f9b: type = facet_type <@Simple, @Simple(%T.67d)> [symbolic] +// CHECK:STDOUT: %Self.55b: %Simple.type.f9b = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %WithAssocFn.type.e82: type = generic_interface_type @WithAssocFn [concrete] -// CHECK:STDOUT: %WithAssocFn.generic: %WithAssocFn.type.e82 = struct_value () [concrete] -// CHECK:STDOUT: %WithAssocFn.type.38e: type = facet_type <@WithAssocFn, @WithAssocFn(%T.67d)> [symbolic] -// CHECK:STDOUT: %Self.82f: %WithAssocFn.type.38e = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %.15f: Core.Form = init_form %X [concrete] -// CHECK:STDOUT: %pattern_type.7b3: type = pattern_type %X [concrete] -// CHECK:STDOUT: %WithAssocFn.WithSelf.F.type.15c: type = fn_type @WithAssocFn.WithSelf.F, @WithAssocFn.WithSelf(%T.67d, %Self.82f) [symbolic] -// CHECK:STDOUT: %WithAssocFn.WithSelf.F.ee3: %WithAssocFn.WithSelf.F.type.15c = struct_value () [symbolic] -// CHECK:STDOUT: %WithAssocFn.assoc_type.242: type = assoc_entity_type @WithAssocFn, @WithAssocFn(%T.67d) [symbolic] -// CHECK:STDOUT: %assoc0.463: %WithAssocFn.assoc_type.242 = assoc_entity element0, @WithAssocFn.WithSelf.%WithAssocFn.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %WithAssocFn.type.0a6: type = generic_interface_type @WithAssocFn [concrete] +// CHECK:STDOUT: %WithAssocFn.generic: %WithAssocFn.type.0a6 = struct_value () [concrete] +// CHECK:STDOUT: %WithAssocFn.type.ea2: type = facet_type <@WithAssocFn, @WithAssocFn(%T.67d)> [symbolic] +// CHECK:STDOUT: %Self.e5d: %WithAssocFn.type.ea2 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %.325: Core.Form = init_form %X [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %X [concrete] +// CHECK:STDOUT: %WithAssocFn.WithSelf.F.type.25e: type = fn_type @WithAssocFn.WithSelf.F, @WithAssocFn.WithSelf(%T.67d, %Self.e5d) [symbolic] +// CHECK:STDOUT: %WithAssocFn.WithSelf.F.b21: %WithAssocFn.WithSelf.F.type.25e = struct_value () [symbolic] +// CHECK:STDOUT: %WithAssocFn.assoc_type.b11: type = assoc_entity_type @WithAssocFn, @WithAssocFn(%T.67d) [symbolic] +// CHECK:STDOUT: %assoc0.f49: %WithAssocFn.assoc_type.b11 = assoc_entity element0, @WithAssocFn.WithSelf.%WithAssocFn.WithSelf.F.decl [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %Simple.type.060: type = facet_type <@Simple, @Simple(%C)> [concrete] +// CHECK:STDOUT: %Simple.type.d50: type = facet_type <@Simple, @Simple(%C)> [concrete] // CHECK:STDOUT: %Simple.impl_witness: = impl_witness @C.as.Simple.impl.%Simple.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.b42: %Simple.type.060 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Simple.facet: %Simple.type.060 = facet_value %C, (%Simple.impl_witness) [concrete] -// CHECK:STDOUT: %WithAssocFn.type.dfe: type = facet_type <@WithAssocFn, @WithAssocFn(%C)> [concrete] +// CHECK:STDOUT: %Self.e0f: %Simple.type.d50 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Simple.facet: %Simple.type.d50 = facet_value %C, (%Simple.impl_witness) [concrete] +// CHECK:STDOUT: %WithAssocFn.type.5fd: type = facet_type <@WithAssocFn, @WithAssocFn(%C)> [concrete] // CHECK:STDOUT: %WithAssocFn.impl_witness: = impl_witness @C.as.WithAssocFn.impl.%WithAssocFn.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.3e0: %WithAssocFn.type.dfe = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %WithAssocFn.WithSelf.F.type.0d1: type = fn_type @WithAssocFn.WithSelf.F, @WithAssocFn.WithSelf(%C, %Self.82f) [symbolic] -// CHECK:STDOUT: %WithAssocFn.WithSelf.F.d9a: %WithAssocFn.WithSelf.F.type.0d1 = struct_value () [symbolic] -// CHECK:STDOUT: %WithAssocFn.assoc_type.e2f: type = assoc_entity_type @WithAssocFn, @WithAssocFn(%C) [concrete] -// CHECK:STDOUT: %assoc0.c70: %WithAssocFn.assoc_type.e2f = assoc_entity element0, @WithAssocFn.WithSelf.%WithAssocFn.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %Self.925: %WithAssocFn.type.5fd = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %WithAssocFn.WithSelf.F.type.8f1: type = fn_type @WithAssocFn.WithSelf.F, @WithAssocFn.WithSelf(%C, %Self.e5d) [symbolic] +// CHECK:STDOUT: %WithAssocFn.WithSelf.F.87e: %WithAssocFn.WithSelf.F.type.8f1 = struct_value () [symbolic] +// CHECK:STDOUT: %WithAssocFn.assoc_type.c3e: type = assoc_entity_type @WithAssocFn, @WithAssocFn(%C) [concrete] +// CHECK:STDOUT: %assoc0.d90: %WithAssocFn.assoc_type.c3e = assoc_entity element0, @WithAssocFn.WithSelf.%WithAssocFn.WithSelf.F.decl [concrete] // CHECK:STDOUT: %C.as.WithAssocFn.impl.F.type: type = fn_type @C.as.WithAssocFn.impl.F [concrete] // CHECK:STDOUT: %C.as.WithAssocFn.impl.F: %C.as.WithAssocFn.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %WithAssocFn.facet: %WithAssocFn.type.dfe = facet_value %C, (%WithAssocFn.impl_witness) [concrete] -// CHECK:STDOUT: %WithAssocFn.WithSelf.F.type.e8e: type = fn_type @WithAssocFn.WithSelf.F, @WithAssocFn.WithSelf(%C, %WithAssocFn.facet) [concrete] -// CHECK:STDOUT: %WithAssocFn.WithSelf.F.1d8: %WithAssocFn.WithSelf.F.type.e8e = struct_value () [concrete] +// CHECK:STDOUT: %WithAssocFn.facet: %WithAssocFn.type.5fd = facet_value %C, (%WithAssocFn.impl_witness) [concrete] +// CHECK:STDOUT: %WithAssocFn.WithSelf.F.type.7cf: type = fn_type @WithAssocFn.WithSelf.F, @WithAssocFn.WithSelf(%C, %WithAssocFn.facet) [concrete] +// CHECK:STDOUT: %WithAssocFn.WithSelf.F.9fa: %WithAssocFn.WithSelf.F.type.7cf = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %X.val: %X = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T.67d [symbolic] // CHECK:STDOUT: %N: %T.67d = symbolic_binding N, 1 [symbolic] // CHECK:STDOUT: %WithImplicitArgs.type: type = generic_interface_type @WithImplicitArgs [concrete] // CHECK:STDOUT: %WithImplicitArgs.generic: %WithImplicitArgs.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.346: type = pattern_type %Simple.type.060 [concrete] -// CHECK:STDOUT: %T.f56aca.1: %Simple.type.060 = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.f56aca.2: %Simple.type.060 = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.472: type = pattern_type %Simple.type.d50 [concrete] +// CHECK:STDOUT: %T.16788c.1: %Simple.type.d50 = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.16788c.2: %Simple.type.d50 = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Receive.type: type = fn_type @Receive [concrete] // CHECK:STDOUT: %Receive: %Receive.type = struct_value () [concrete] // CHECK:STDOUT: %Pass.type: type = fn_type @Pass [concrete] // CHECK:STDOUT: %Pass: %Pass.type = struct_value () [concrete] -// CHECK:STDOUT: %Receive.specific_fn: = specific_function %Receive, @Receive(%T.f56aca.1) [symbolic] +// CHECK:STDOUT: %Receive.specific_fn: = specific_function %Receive, @Receive(%T.16788c.1) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -144,7 +144,7 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: .Receive = %Receive.decl // CHECK:STDOUT: .Pass = %Pass.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %Simple.decl: %Simple.type.7b1 = interface_decl @Simple [concrete = constants.%Simple.generic] { +// CHECK:STDOUT: %Simple.decl: %Simple.type.887 = interface_decl @Simple [concrete = constants.%Simple.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_22.1: type = splice_block %.loc4_22.2 [concrete = type] { @@ -154,7 +154,7 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %T.loc4_19.2: type = symbolic_binding T, 0 [symbolic = %T.loc4_19.1 (constants.%T.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {} -// CHECK:STDOUT: %WithAssocFn.decl: %WithAssocFn.type.e82 = interface_decl @WithAssocFn [concrete = constants.%WithAssocFn.generic] { +// CHECK:STDOUT: %WithAssocFn.decl: %WithAssocFn.type.0a6 = interface_decl @WithAssocFn [concrete = constants.%WithAssocFn.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_27.1: type = splice_block %.loc8_27.2 [concrete = type] { @@ -180,26 +180,26 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %N.loc22_39.2: @WithImplicitArgs.%T.loc22_29.1 (%T.67d) = symbolic_binding N, 1 [symbolic = %N.loc22_39.1 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: %Receive.decl: %Receive.type = fn_decl @Receive [concrete = constants.%Receive] { -// CHECK:STDOUT: %T.patt: %pattern_type.346 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.472 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc24: type = splice_block %Simple.type [concrete = constants.%Simple.type.060] { +// CHECK:STDOUT: %.loc24: type = splice_block %Simple.type [concrete = constants.%Simple.type.d50] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Simple.ref: %Simple.type.7b1 = name_ref Simple, file.%Simple.decl [concrete = constants.%Simple.generic] +// CHECK:STDOUT: %Simple.ref: %Simple.type.887 = name_ref Simple, file.%Simple.decl [concrete = constants.%Simple.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(constants.%C)> [concrete = constants.%Simple.type.060] +// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(constants.%C)> [concrete = constants.%Simple.type.d50] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc24_20.3: %Simple.type.060 = symbolic_binding T, 0 [symbolic = %T.loc24_20.2 (constants.%T.f56aca.2)] +// CHECK:STDOUT: %T.loc24_20.3: %Simple.type.d50 = symbolic_binding T, 0 [symbolic = %T.loc24_20.2 (constants.%T.16788c.2)] // CHECK:STDOUT: } // CHECK:STDOUT: %Pass.decl: %Pass.type = fn_decl @Pass [concrete = constants.%Pass] { -// CHECK:STDOUT: %T.patt: %pattern_type.346 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.472 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc25: type = splice_block %Simple.type [concrete = constants.%Simple.type.060] { +// CHECK:STDOUT: %.loc25: type = splice_block %Simple.type [concrete = constants.%Simple.type.d50] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Simple.ref: %Simple.type.7b1 = name_ref Simple, file.%Simple.decl [concrete = constants.%Simple.generic] +// CHECK:STDOUT: %Simple.ref: %Simple.type.887 = name_ref Simple, file.%Simple.decl [concrete = constants.%Simple.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(constants.%C)> [concrete = constants.%Simple.type.060] +// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(constants.%C)> [concrete = constants.%Simple.type.d50] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc25_10.2: %Simple.type.060 = symbolic_binding T, 0 [symbolic = %T.loc25_10.1 (constants.%T.f56aca.1)] +// CHECK:STDOUT: %T.loc25_10.2: %Simple.type.d50 = symbolic_binding T, 0 [symbolic = %T.loc25_10.1 (constants.%T.16788c.1)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -207,11 +207,11 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %T.loc4_19.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_19.1 (constants.%T.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(%T.loc4_19.1)> [symbolic = %Simple.type (constants.%Simple.type.260)] -// CHECK:STDOUT: %Self.loc4_28.2: @Simple.%Simple.type (%Simple.type.260) = symbolic_binding Self, 1 [symbolic = %Self.loc4_28.2 (constants.%Self.2a5)] +// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(%T.loc4_19.1)> [symbolic = %Simple.type (constants.%Simple.type.f9b)] +// CHECK:STDOUT: %Self.loc4_28.2: @Simple.%Simple.type (%Simple.type.f9b) = symbolic_binding Self, 1 [symbolic = %Self.loc4_28.2 (constants.%Self.55b)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_28.1: @Simple.%Simple.type (%Simple.type.260) = symbolic_binding Self, 1 [symbolic = %Self.loc4_28.2 (constants.%Self.2a5)] +// CHECK:STDOUT: %Self.loc4_28.1: @Simple.%Simple.type (%Simple.type.f9b) = symbolic_binding Self, 1 [symbolic = %Self.loc4_28.2 (constants.%Self.55b)] // CHECK:STDOUT: %Simple.WithSelf.decl = interface_with_self_decl @Simple [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -226,24 +226,24 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %T.loc8_24.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_24.1 (constants.%T.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %WithAssocFn.type: type = facet_type <@WithAssocFn, @WithAssocFn(%T.loc8_24.1)> [symbolic = %WithAssocFn.type (constants.%WithAssocFn.type.38e)] -// CHECK:STDOUT: %Self.loc8_33.2: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.38e) = symbolic_binding Self, 1 [symbolic = %Self.loc8_33.2 (constants.%Self.82f)] +// CHECK:STDOUT: %WithAssocFn.type: type = facet_type <@WithAssocFn, @WithAssocFn(%T.loc8_24.1)> [symbolic = %WithAssocFn.type (constants.%WithAssocFn.type.ea2)] +// CHECK:STDOUT: %Self.loc8_33.2: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.ea2) = symbolic_binding Self, 1 [symbolic = %Self.loc8_33.2 (constants.%Self.e5d)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc8_33.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.38e) = symbolic_binding Self, 1 [symbolic = %Self.loc8_33.2 (constants.%Self.82f)] +// CHECK:STDOUT: %Self.loc8_33.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.ea2) = symbolic_binding Self, 1 [symbolic = %Self.loc8_33.2 (constants.%Self.e5d)] // CHECK:STDOUT: %WithAssocFn.WithSelf.decl = interface_with_self_decl @WithAssocFn [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %WithAssocFn.WithSelf.F.decl: @WithAssocFn.WithSelf.%WithAssocFn.WithSelf.F.type (%WithAssocFn.WithSelf.F.type.15c) = fn_decl @WithAssocFn.WithSelf.F [symbolic = @WithAssocFn.WithSelf.%WithAssocFn.WithSelf.F (constants.%WithAssocFn.WithSelf.F.ee3)] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.7b3 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7b3 = return_slot_pattern %return.param_patt, %X.ref [concrete] +// CHECK:STDOUT: %WithAssocFn.WithSelf.F.decl: @WithAssocFn.WithSelf.%WithAssocFn.WithSelf.F.type (%WithAssocFn.WithSelf.F.type.25e) = fn_decl @WithAssocFn.WithSelf.F [symbolic = @WithAssocFn.WithSelf.%WithAssocFn.WithSelf.F (constants.%WithAssocFn.WithSelf.F.b21)] { +// CHECK:STDOUT: %return.param_patt: %pattern_type.6cb = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6cb = return_slot_pattern %return.param_patt, %X.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc10: Core.Form = init_form %X.ref [concrete = constants.%.15f] +// CHECK:STDOUT: %.loc10: Core.Form = init_form %X.ref [concrete = constants.%.325] // CHECK:STDOUT: %return.param: ref %X = out_param call_param0 // CHECK:STDOUT: %return: ref %X = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc10_14.1: @WithAssocFn.WithSelf.%WithAssocFn.assoc_type (%WithAssocFn.assoc_type.242) = assoc_entity element0, %WithAssocFn.WithSelf.F.decl [symbolic = %assoc0.loc10_14.2 (constants.%assoc0.463)] +// CHECK:STDOUT: %assoc0.loc10_14.1: @WithAssocFn.WithSelf.%WithAssocFn.assoc_type (%WithAssocFn.assoc_type.b11) = assoc_entity element0, %WithAssocFn.WithSelf.F.decl [symbolic = %assoc0.loc10_14.2 (constants.%assoc0.f49)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc8_33.1 @@ -275,11 +275,11 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.WithAssocFn.impl: %Self.ref as %WithAssocFn.type { // CHECK:STDOUT: %C.as.WithAssocFn.impl.F.decl: %C.as.WithAssocFn.impl.F.type = fn_decl @C.as.WithAssocFn.impl.F [concrete = constants.%C.as.WithAssocFn.impl.F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.7b3 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7b3 = return_slot_pattern %return.param_patt, %X.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6cb = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6cb = return_slot_pattern %return.param_patt, %X.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc16: Core.Form = init_form %X.ref [concrete = constants.%.15f] +// CHECK:STDOUT: %.loc16: Core.Form = init_form %X.ref [concrete = constants.%.325] // CHECK:STDOUT: %return.param: ref %X = out_param call_param0 // CHECK:STDOUT: %return: ref %X = return_slot %return.param // CHECK:STDOUT: } @@ -304,15 +304,15 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: class @C { // CHECK:STDOUT: impl_decl @C.as.Simple.impl [concrete] {} { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] -// CHECK:STDOUT: %Simple.ref: %Simple.type.7b1 = name_ref Simple, file.%Simple.decl [concrete = constants.%Simple.generic] +// CHECK:STDOUT: %Simple.ref: %Simple.type.887 = name_ref Simple, file.%Simple.decl [concrete = constants.%Simple.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(constants.%C)> [concrete = constants.%Simple.type.060] +// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(constants.%C)> [concrete = constants.%Simple.type.d50] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @C.as.WithAssocFn.impl [concrete] {} { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] -// CHECK:STDOUT: %WithAssocFn.ref: %WithAssocFn.type.e82 = name_ref WithAssocFn, file.%WithAssocFn.decl [concrete = constants.%WithAssocFn.generic] +// CHECK:STDOUT: %WithAssocFn.ref: %WithAssocFn.type.0a6 = name_ref WithAssocFn, file.%WithAssocFn.decl [concrete = constants.%WithAssocFn.generic] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %WithAssocFn.type: type = facet_type <@WithAssocFn, @WithAssocFn(constants.%C)> [concrete = constants.%WithAssocFn.type.dfe] +// CHECK:STDOUT: %WithAssocFn.type: type = facet_type <@WithAssocFn, @WithAssocFn(constants.%C)> [concrete = constants.%WithAssocFn.type.5fd] // CHECK:STDOUT: } // CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type @@ -325,7 +325,7 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: .X = // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @WithAssocFn.WithSelf.F(@WithAssocFn.%T.loc8_24.2: type, @WithAssocFn.%Self.loc8_33.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.38e)) { +// CHECK:STDOUT: generic fn @WithAssocFn.WithSelf.F(@WithAssocFn.%T.loc8_24.2: type, @WithAssocFn.%Self.loc8_33.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.ea2)) { // CHECK:STDOUT: fn() -> out %return.param: %X; // CHECK:STDOUT: } // CHECK:STDOUT: @@ -337,9 +337,9 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: return %.loc17_16 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Receive(%T.loc24_20.3: %Simple.type.060) { -// CHECK:STDOUT: %T.loc24_20.1: %Simple.type.060 = symbolic_binding T, 0 [symbolic = %T.loc24_20.1 (constants.%T.f56aca.1)] -// CHECK:STDOUT: %T.loc24_20.2: %Simple.type.060 = symbolic_binding T, 0 [symbolic = %T.loc24_20.2 (constants.%T.f56aca.2)] +// CHECK:STDOUT: generic fn @Receive(%T.loc24_20.3: %Simple.type.d50) { +// CHECK:STDOUT: %T.loc24_20.1: %Simple.type.d50 = symbolic_binding T, 0 [symbolic = %T.loc24_20.1 (constants.%T.16788c.1)] +// CHECK:STDOUT: %T.loc24_20.2: %Simple.type.d50 = symbolic_binding T, 0 [symbolic = %T.loc24_20.2 (constants.%T.16788c.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -349,8 +349,8 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Pass(%T.loc25_10.2: %Simple.type.060) { -// CHECK:STDOUT: %T.loc25_10.1: %Simple.type.060 = symbolic_binding T, 0 [symbolic = %T.loc25_10.1 (constants.%T.f56aca.1)] +// CHECK:STDOUT: generic fn @Pass(%T.loc25_10.2: %Simple.type.d50) { +// CHECK:STDOUT: %T.loc25_10.1: %Simple.type.d50 = symbolic_binding T, 0 [symbolic = %T.loc25_10.1 (constants.%T.16788c.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Receive.specific_fn.loc26_3.2: = specific_function constants.%Receive, @Receive(%T.loc25_10.1) [symbolic = %Receive.specific_fn.loc26_3.2 (constants.%Receive.specific_fn)] @@ -358,8 +358,8 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Receive.ref: %Receive.type = name_ref Receive, file.%Receive.decl [concrete = constants.%Receive] -// CHECK:STDOUT: %T.ref: %Simple.type.060 = name_ref T, %T.loc25_10.2 [symbolic = %T.loc25_10.1 (constants.%T.f56aca.1)] -// CHECK:STDOUT: %Receive.specific_fn.loc26_3.1: = specific_function %Receive.ref, @Receive(constants.%T.f56aca.1) [symbolic = %Receive.specific_fn.loc26_3.2 (constants.%Receive.specific_fn)] +// CHECK:STDOUT: %T.ref: %Simple.type.d50 = name_ref T, %T.loc25_10.2 [symbolic = %T.loc25_10.1 (constants.%T.16788c.1)] +// CHECK:STDOUT: %Receive.specific_fn.loc26_3.1: = specific_function %Receive.ref, @Receive(constants.%T.16788c.1) [symbolic = %Receive.specific_fn.loc26_3.2 (constants.%Receive.specific_fn)] // CHECK:STDOUT: %Receive.call: init %empty_tuple.type = call %Receive.specific_fn.loc26_3.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -369,25 +369,25 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %T.loc4_19.1 => constants.%T.67d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Simple.WithSelf(constants.%T.67d, constants.%Self.2a5) {} +// CHECK:STDOUT: specific @Simple.WithSelf(constants.%T.67d, constants.%Self.55b) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @WithAssocFn(constants.%T.67d) { // CHECK:STDOUT: %T.loc8_24.1 => constants.%T.67d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @WithAssocFn.WithSelf(constants.%T.67d, constants.%Self.82f) {} +// CHECK:STDOUT: specific @WithAssocFn.WithSelf(constants.%T.67d, constants.%Self.e5d) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @WithAssocFn.WithSelf.F(constants.%T.67d, constants.%Self.82f) {} +// CHECK:STDOUT: specific @WithAssocFn.WithSelf.F(constants.%T.67d, constants.%Self.e5d) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple(constants.%C) { // CHECK:STDOUT: %T.loc4_19.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Simple.type => constants.%Simple.type.060 -// CHECK:STDOUT: %Self.loc4_28.2 => constants.%Self.b42 +// CHECK:STDOUT: %Simple.type => constants.%Simple.type.d50 +// CHECK:STDOUT: %Self.loc4_28.2 => constants.%Self.e0f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Simple.WithSelf(constants.%C, constants.%Self.2a5) { +// CHECK:STDOUT: specific @Simple.WithSelf(constants.%C, constants.%Self.55b) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -399,30 +399,30 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %T.loc8_24.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %WithAssocFn.type => constants.%WithAssocFn.type.dfe -// CHECK:STDOUT: %Self.loc8_33.2 => constants.%Self.3e0 +// CHECK:STDOUT: %WithAssocFn.type => constants.%WithAssocFn.type.5fd +// CHECK:STDOUT: %Self.loc8_33.2 => constants.%Self.925 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @WithAssocFn.WithSelf(constants.%C, constants.%Self.82f) { +// CHECK:STDOUT: specific @WithAssocFn.WithSelf(constants.%C, constants.%Self.e5d) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%C -// CHECK:STDOUT: %WithAssocFn.type => constants.%WithAssocFn.type.dfe -// CHECK:STDOUT: %Self => constants.%Self.82f -// CHECK:STDOUT: %WithAssocFn.WithSelf.F.type => constants.%WithAssocFn.WithSelf.F.type.0d1 -// CHECK:STDOUT: %WithAssocFn.WithSelf.F => constants.%WithAssocFn.WithSelf.F.d9a -// CHECK:STDOUT: %WithAssocFn.assoc_type => constants.%WithAssocFn.assoc_type.e2f -// CHECK:STDOUT: %assoc0.loc10_14.2 => constants.%assoc0.c70 +// CHECK:STDOUT: %WithAssocFn.type => constants.%WithAssocFn.type.5fd +// CHECK:STDOUT: %Self => constants.%Self.e5d +// CHECK:STDOUT: %WithAssocFn.WithSelf.F.type => constants.%WithAssocFn.WithSelf.F.type.8f1 +// CHECK:STDOUT: %WithAssocFn.WithSelf.F => constants.%WithAssocFn.WithSelf.F.87e +// CHECK:STDOUT: %WithAssocFn.assoc_type => constants.%WithAssocFn.assoc_type.c3e +// CHECK:STDOUT: %assoc0.loc10_14.2 => constants.%assoc0.d90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WithAssocFn.WithSelf(constants.%C, constants.%WithAssocFn.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%C -// CHECK:STDOUT: %WithAssocFn.type => constants.%WithAssocFn.type.dfe +// CHECK:STDOUT: %WithAssocFn.type => constants.%WithAssocFn.type.5fd // CHECK:STDOUT: %Self => constants.%WithAssocFn.facet -// CHECK:STDOUT: %WithAssocFn.WithSelf.F.type => constants.%WithAssocFn.WithSelf.F.type.e8e -// CHECK:STDOUT: %WithAssocFn.WithSelf.F => constants.%WithAssocFn.WithSelf.F.1d8 -// CHECK:STDOUT: %WithAssocFn.assoc_type => constants.%WithAssocFn.assoc_type.e2f -// CHECK:STDOUT: %assoc0.loc10_14.2 => constants.%assoc0.c70 +// CHECK:STDOUT: %WithAssocFn.WithSelf.F.type => constants.%WithAssocFn.WithSelf.F.type.7cf +// CHECK:STDOUT: %WithAssocFn.WithSelf.F => constants.%WithAssocFn.WithSelf.F.9fa +// CHECK:STDOUT: %WithAssocFn.assoc_type => constants.%WithAssocFn.assoc_type.c3e +// CHECK:STDOUT: %assoc0.loc10_14.2 => constants.%assoc0.d90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WithAssocFn.WithSelf.F(constants.%C, constants.%WithAssocFn.facet) {} @@ -433,18 +433,18 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Receive(constants.%T.f56aca.2) { -// CHECK:STDOUT: %T.loc24_20.1 => constants.%T.f56aca.2 -// CHECK:STDOUT: %T.loc24_20.2 => constants.%T.f56aca.2 +// CHECK:STDOUT: specific @Receive(constants.%T.16788c.2) { +// CHECK:STDOUT: %T.loc24_20.1 => constants.%T.16788c.2 +// CHECK:STDOUT: %T.loc24_20.2 => constants.%T.16788c.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Pass(constants.%T.f56aca.1) { -// CHECK:STDOUT: %T.loc25_10.1 => constants.%T.f56aca.1 +// CHECK:STDOUT: specific @Pass(constants.%T.16788c.1) { +// CHECK:STDOUT: %T.loc25_10.1 => constants.%T.16788c.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Receive(constants.%T.f56aca.1) { -// CHECK:STDOUT: %T.loc24_20.1 => constants.%T.f56aca.1 -// CHECK:STDOUT: %T.loc24_20.2 => constants.%T.f56aca.1 +// CHECK:STDOUT: specific @Receive(constants.%T.16788c.1) { +// CHECK:STDOUT: %T.loc24_20.1 => constants.%T.16788c.1 +// CHECK:STDOUT: %T.loc24_20.2 => constants.%T.16788c.1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -456,26 +456,26 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Generic.type.df8: type = generic_interface_type @Generic [concrete] -// CHECK:STDOUT: %Generic.generic: %Generic.type.df8 = struct_value () [concrete] -// CHECK:STDOUT: %Generic.type.79a: type = facet_type <@Generic, @Generic(%T.67d)> [symbolic] -// CHECK:STDOUT: %Self.34f: %Generic.type.79a = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.type.30d: type = generic_interface_type @Generic [concrete] +// CHECK:STDOUT: %Generic.generic: %Generic.type.30d = struct_value () [concrete] +// CHECK:STDOUT: %Generic.type.ee1: type = facet_type <@Generic, @Generic(%T.67d)> [symbolic] +// CHECK:STDOUT: %Self.8ea: %Generic.type.ee1 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] -// CHECK:STDOUT: %Generic.type.a8c: type = facet_type <@Generic, @Generic(%A)> [concrete] -// CHECK:STDOUT: %pattern_type.a3e: type = pattern_type %Generic.type.a8c [concrete] -// CHECK:STDOUT: %T.faa: %Generic.type.a8c = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Generic.type.c3a: type = facet_type <@Generic, @Generic(%A)> [concrete] +// CHECK:STDOUT: %pattern_type.338: type = pattern_type %Generic.type.c3a [concrete] +// CHECK:STDOUT: %T.ca1: %Generic.type.c3a = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %Generic.type.141: type = facet_type <@Generic, @Generic(%B)> [concrete] -// CHECK:STDOUT: %pattern_type.523: type = pattern_type %Generic.type.141 [concrete] -// CHECK:STDOUT: %T.eff: %Generic.type.141 = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Generic.type.57d: type = facet_type <@Generic, @Generic(%B)> [concrete] +// CHECK:STDOUT: %pattern_type.dae: type = pattern_type %Generic.type.57d [concrete] +// CHECK:STDOUT: %T.f18: %Generic.type.57d = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.8ba: %Generic.type.141 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.eff [symbolic] +// CHECK:STDOUT: %Self.cb2: %Generic.type.57d = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f18 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -486,7 +486,7 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %Generic.decl: %Generic.type.df8 = interface_decl @Generic [concrete = constants.%Generic.generic] { +// CHECK:STDOUT: %Generic.decl: %Generic.type.30d = interface_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_23.1: type = splice_block %.loc4_23.2 [concrete = type] { @@ -498,26 +498,26 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %T.patt: %pattern_type.a3e = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.338 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc9: type = splice_block %Generic.type [concrete = constants.%Generic.type.a8c] { +// CHECK:STDOUT: %.loc9: type = splice_block %Generic.type [concrete = constants.%Generic.type.c3a] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Generic.ref: %Generic.type.df8 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] +// CHECK:STDOUT: %Generic.ref: %Generic.type.30d = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%A)> [concrete = constants.%Generic.type.a8c] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%A)> [concrete = constants.%Generic.type.c3a] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc9_7.2: %Generic.type.a8c = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.faa)] +// CHECK:STDOUT: %T.loc9_7.2: %Generic.type.c3a = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.ca1)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %T.patt: %pattern_type.523 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.dae = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc10: type = splice_block %Generic.type [concrete = constants.%Generic.type.141] { +// CHECK:STDOUT: %.loc10: type = splice_block %Generic.type [concrete = constants.%Generic.type.57d] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Generic.ref: %Generic.type.df8 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] +// CHECK:STDOUT: %Generic.ref: %Generic.type.30d = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%B)> [concrete = constants.%Generic.type.141] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%B)> [concrete = constants.%Generic.type.57d] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc10_7.2: %Generic.type.141 = symbolic_binding T, 0 [symbolic = %T.loc10_7.1 (constants.%T.eff)] +// CHECK:STDOUT: %T.loc10_7.2: %Generic.type.57d = symbolic_binding T, 0 [symbolic = %T.loc10_7.1 (constants.%T.f18)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -525,11 +525,11 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %T.loc4_20.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_20.1 (constants.%T.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%T.loc4_20.1)> [symbolic = %Generic.type (constants.%Generic.type.79a)] -// CHECK:STDOUT: %Self.loc4_29.2: @Generic.%Generic.type (%Generic.type.79a) = symbolic_binding Self, 1 [symbolic = %Self.loc4_29.2 (constants.%Self.34f)] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%T.loc4_20.1)> [symbolic = %Generic.type (constants.%Generic.type.ee1)] +// CHECK:STDOUT: %Self.loc4_29.2: @Generic.%Generic.type (%Generic.type.ee1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_29.2 (constants.%Self.8ea)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_29.1: @Generic.%Generic.type (%Generic.type.79a) = symbolic_binding Self, 1 [symbolic = %Self.loc4_29.2 (constants.%Self.34f)] +// CHECK:STDOUT: %Self.loc4_29.1: @Generic.%Generic.type (%Generic.type.ee1) = symbolic_binding Self, 1 [symbolic = %Self.loc4_29.2 (constants.%Self.8ea)] // CHECK:STDOUT: %Generic.WithSelf.decl = interface_with_self_decl @Generic [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -556,14 +556,14 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc9_7.2: %Generic.type.a8c) { -// CHECK:STDOUT: %T.loc9_7.1: %Generic.type.a8c = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.faa)] +// CHECK:STDOUT: generic fn @F(%T.loc9_7.2: %Generic.type.c3a) { +// CHECK:STDOUT: %T.loc9_7.1: %Generic.type.c3a = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.ca1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%T.loc10_7.2: %Generic.type.141) { -// CHECK:STDOUT: %T.loc10_7.1: %Generic.type.141 = symbolic_binding T, 0 [symbolic = %T.loc10_7.1 (constants.%T.eff)] +// CHECK:STDOUT: generic fn @G(%T.loc10_7.2: %Generic.type.57d) { +// CHECK:STDOUT: %T.loc10_7.1: %Generic.type.57d = symbolic_binding T, 0 [symbolic = %T.loc10_7.1 (constants.%T.f18)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc18_6.2: type = facet_access_type %T.loc10_7.1 [symbolic = %T.as_type.loc18_6.2 (constants.%T.as_type)] @@ -571,7 +571,7 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %T.ref: %Generic.type.141 = name_ref T, %T.loc10_7.2 [symbolic = %T.loc10_7.1 (constants.%T.eff)] +// CHECK:STDOUT: %T.ref: %Generic.type.57d = name_ref T, %T.loc10_7.2 [symbolic = %T.loc10_7.1 (constants.%T.f18)] // CHECK:STDOUT: %T.as_type.loc18_6.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc18_6.2 (constants.%T.as_type)] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -581,29 +581,29 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %T.loc4_20.1 => constants.%T.67d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf(constants.%T.67d, constants.%Self.34f) {} +// CHECK:STDOUT: specific @Generic.WithSelf(constants.%T.67d, constants.%Self.8ea) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%A) { // CHECK:STDOUT: %T.loc4_20.1 => constants.%A // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.faa) { -// CHECK:STDOUT: %T.loc9_7.1 => constants.%T.faa +// CHECK:STDOUT: specific @F(constants.%T.ca1) { +// CHECK:STDOUT: %T.loc9_7.1 => constants.%T.ca1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%B) { // CHECK:STDOUT: %T.loc4_20.1 => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type => constants.%Generic.type.141 -// CHECK:STDOUT: %Self.loc4_29.2 => constants.%Self.8ba +// CHECK:STDOUT: %Generic.type => constants.%Generic.type.57d +// CHECK:STDOUT: %Self.loc4_29.2 => constants.%Self.cb2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G(constants.%T.eff) { -// CHECK:STDOUT: %T.loc10_7.1 => constants.%T.eff +// CHECK:STDOUT: specific @G(constants.%T.f18) { +// CHECK:STDOUT: %T.loc10_7.1 => constants.%T.f18 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic.WithSelf(constants.%B, constants.%Self.34f) { +// CHECK:STDOUT: specific @Generic.WithSelf(constants.%B, constants.%Self.8ea) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -614,11 +614,11 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Generic.type.df8: type = generic_interface_type @Generic [concrete] +// CHECK:STDOUT: %Generic.type.30d: type = generic_interface_type @Generic [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Generic.generic: %Generic.type.df8 = struct_value () [concrete] -// CHECK:STDOUT: %Generic.type.79a: type = facet_type <@Generic, @Generic(%T)> [symbolic] -// CHECK:STDOUT: %Self: %Generic.type.79a = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Generic.generic: %Generic.type.30d = struct_value () [concrete] +// CHECK:STDOUT: %Generic.type.ee1: type = facet_type <@Generic, @Generic(%T)> [symbolic] +// CHECK:STDOUT: %Self: %Generic.type.ee1 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] @@ -629,7 +629,7 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: .Generic = %Generic.decl // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %Generic.decl: %Generic.type.df8 = interface_decl @Generic [concrete = constants.%Generic.generic] { +// CHECK:STDOUT: %Generic.decl: %Generic.type.30d = interface_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc3_23.1: type = splice_block %.loc3_23.2 [concrete = type] { @@ -643,7 +643,7 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: } { // CHECK:STDOUT: %.1: = splice_block [concrete = ] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Generic.ref: %Generic.type.df8 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] +// CHECK:STDOUT: %Generic.ref: %Generic.type.30d = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] // CHECK:STDOUT: %.loc12_26: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc12_30: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: } @@ -655,11 +655,11 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %T.loc3_20.1: type = symbolic_binding T, 0 [symbolic = %T.loc3_20.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%T.loc3_20.1)> [symbolic = %Generic.type (constants.%Generic.type.79a)] -// CHECK:STDOUT: %Self.loc3_29.2: @Generic.%Generic.type (%Generic.type.79a) = symbolic_binding Self, 1 [symbolic = %Self.loc3_29.2 (constants.%Self)] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%T.loc3_20.1)> [symbolic = %Generic.type (constants.%Generic.type.ee1)] +// CHECK:STDOUT: %Self.loc3_29.2: @Generic.%Generic.type (%Generic.type.ee1) = symbolic_binding Self, 1 [symbolic = %Self.loc3_29.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc3_29.1: @Generic.%Generic.type (%Generic.type.79a) = symbolic_binding Self, 1 [symbolic = %Self.loc3_29.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc3_29.1: @Generic.%Generic.type (%Generic.type.ee1) = symbolic_binding Self, 1 [symbolic = %Self.loc3_29.2 (constants.%Self)] // CHECK:STDOUT: %Generic.WithSelf.decl = interface_with_self_decl @Generic [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/interface/generic_import.carbon b/toolchain/check/testdata/interface/generic_import.carbon index 71448c595bd7..65f59cdc2d2f 100644 --- a/toolchain/check/testdata/interface/generic_import.carbon +++ b/toolchain/check/testdata/interface/generic_import.carbon @@ -38,10 +38,10 @@ impl C as AddWith(C) { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %AddWith.type.093: type = generic_interface_type @AddWith [concrete] -// CHECK:STDOUT: %AddWith.generic: %AddWith.type.093 = struct_value () [concrete] -// CHECK:STDOUT: %AddWith.type.059: type = facet_type <@AddWith, @AddWith(%T)> [symbolic] -// CHECK:STDOUT: %Self: %AddWith.type.059 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %AddWith.type.097: type = generic_interface_type @AddWith [concrete] +// CHECK:STDOUT: %AddWith.generic: %AddWith.type.097 = struct_value () [concrete] +// CHECK:STDOUT: %AddWith.type.e7b: type = facet_type <@AddWith, @AddWith(%T)> [symbolic] +// CHECK:STDOUT: %Self: %AddWith.type.e7b = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %AddWith.WithSelf.F.type: type = fn_type @AddWith.WithSelf.F, @AddWith.WithSelf(%T, %Self) [symbolic] // CHECK:STDOUT: %AddWith.WithSelf.F: %AddWith.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %AddWith.assoc_type: type = assoc_entity_type @AddWith, @AddWith(%T) [symbolic] @@ -52,7 +52,7 @@ impl C as AddWith(C) { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .AddWith = %AddWith.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %AddWith.decl: %AddWith.type.093 = interface_decl @AddWith [concrete = constants.%AddWith.generic] { +// CHECK:STDOUT: %AddWith.decl: %AddWith.type.097 = interface_decl @AddWith [concrete = constants.%AddWith.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_23.1: type = splice_block %.loc4_23.2 [concrete = type] { @@ -67,11 +67,11 @@ impl C as AddWith(C) { // CHECK:STDOUT: %T.loc4_20.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_20.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T.loc4_20.1)> [symbolic = %AddWith.type (constants.%AddWith.type.059)] -// CHECK:STDOUT: %Self.loc4_29.2: @AddWith.%AddWith.type (%AddWith.type.059) = symbolic_binding Self, 1 [symbolic = %Self.loc4_29.2 (constants.%Self)] +// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T.loc4_20.1)> [symbolic = %AddWith.type (constants.%AddWith.type.e7b)] +// CHECK:STDOUT: %Self.loc4_29.2: @AddWith.%AddWith.type (%AddWith.type.e7b) = symbolic_binding Self, 1 [symbolic = %Self.loc4_29.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_29.1: @AddWith.%AddWith.type (%AddWith.type.059) = symbolic_binding Self, 1 [symbolic = %Self.loc4_29.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc4_29.1: @AddWith.%AddWith.type (%AddWith.type.e7b) = symbolic_binding Self, 1 [symbolic = %Self.loc4_29.2 (constants.%Self)] // CHECK:STDOUT: %AddWith.WithSelf.decl = interface_with_self_decl @AddWith [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -87,7 +87,7 @@ impl C as AddWith(C) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AddWith.WithSelf.F(@AddWith.%T.loc4_20.2: type, @AddWith.%Self.loc4_29.1: @AddWith.%AddWith.type (%AddWith.type.059)) { +// CHECK:STDOUT: generic fn @AddWith.WithSelf.F(@AddWith.%T.loc4_20.2: type, @AddWith.%Self.loc4_29.1: @AddWith.%AddWith.type (%AddWith.type.e7b)) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: @@ -105,35 +105,35 @@ impl C as AddWith(C) { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %AddWith.type.093: type = generic_interface_type @AddWith [concrete] -// CHECK:STDOUT: %AddWith.generic: %AddWith.type.093 = struct_value () [concrete] +// CHECK:STDOUT: %AddWith.type.097: type = generic_interface_type @AddWith [concrete] +// CHECK:STDOUT: %AddWith.generic: %AddWith.type.097 = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %AddWith.type.059: type = facet_type <@AddWith, @AddWith(%T)> [symbolic] -// CHECK:STDOUT: %Self.842: %AddWith.type.059 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %AddWith.WithSelf.F.type.19b: type = fn_type @AddWith.WithSelf.F, @AddWith.WithSelf(%T, %Self.842) [symbolic] -// CHECK:STDOUT: %AddWith.WithSelf.F.588: %AddWith.WithSelf.F.type.19b = struct_value () [symbolic] -// CHECK:STDOUT: %AddWith.type.36c: type = facet_type <@AddWith, @AddWith(%C)> [concrete] +// CHECK:STDOUT: %AddWith.type.e7b: type = facet_type <@AddWith, @AddWith(%T)> [symbolic] +// CHECK:STDOUT: %Self.403: %AddWith.type.e7b = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %AddWith.WithSelf.F.type.ada: type = fn_type @AddWith.WithSelf.F, @AddWith.WithSelf(%T, %Self.403) [symbolic] +// CHECK:STDOUT: %AddWith.WithSelf.F.2ed: %AddWith.WithSelf.F.type.ada = struct_value () [symbolic] +// CHECK:STDOUT: %AddWith.type.236: type = facet_type <@AddWith, @AddWith(%C)> [concrete] // CHECK:STDOUT: %AddWith.impl_witness: = impl_witness @C.as.AddWith.impl.%AddWith.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.c39: %AddWith.type.36c = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %AddWith.WithSelf.F.type.0d3: type = fn_type @AddWith.WithSelf.F, @AddWith.WithSelf(%C, %Self.842) [symbolic] -// CHECK:STDOUT: %AddWith.WithSelf.F.a81: %AddWith.WithSelf.F.type.0d3 = struct_value () [symbolic] -// CHECK:STDOUT: %AddWith.assoc_type.933: type = assoc_entity_type @AddWith, @AddWith(%C) [concrete] -// CHECK:STDOUT: %assoc0.e24: %AddWith.assoc_type.933 = assoc_entity element0, imports.%Main.import_ref.2ba [concrete] +// CHECK:STDOUT: %Self.189: %AddWith.type.236 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %AddWith.WithSelf.F.type.8d2: type = fn_type @AddWith.WithSelf.F, @AddWith.WithSelf(%C, %Self.403) [symbolic] +// CHECK:STDOUT: %AddWith.WithSelf.F.c97: %AddWith.WithSelf.F.type.8d2 = struct_value () [symbolic] +// CHECK:STDOUT: %AddWith.assoc_type.cec: type = assoc_entity_type @AddWith, @AddWith(%C) [concrete] +// CHECK:STDOUT: %assoc0.b8b: %AddWith.assoc_type.cec = assoc_entity element0, imports.%Main.import_ref.b87 [concrete] // CHECK:STDOUT: %C.as.AddWith.impl.F.type: type = fn_type @C.as.AddWith.impl.F [concrete] // CHECK:STDOUT: %C.as.AddWith.impl.F: %C.as.AddWith.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %AddWith.facet: %AddWith.type.36c = facet_value %C, (%AddWith.impl_witness) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.F.type.c71: type = fn_type @AddWith.WithSelf.F, @AddWith.WithSelf(%C, %AddWith.facet) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.F.4f7: %AddWith.WithSelf.F.type.c71 = struct_value () [concrete] +// CHECK:STDOUT: %AddWith.facet: %AddWith.type.236 = facet_value %C, (%AddWith.impl_witness) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.F.type.3e6: type = fn_type @AddWith.WithSelf.F, @AddWith.WithSelf(%C, %AddWith.facet) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.F.8e0: %AddWith.WithSelf.F.type.3e6 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Main.AddWith: %AddWith.type.093 = import_ref Main//a, AddWith, loaded [concrete = constants.%AddWith.generic] -// CHECK:STDOUT: %Main.import_ref.891 = import_ref Main//a, loc5_9, unloaded -// CHECK:STDOUT: %Main.F: @AddWith.WithSelf.%AddWith.WithSelf.F.type (%AddWith.WithSelf.F.type.19b) = import_ref Main//a, F, loaded [symbolic = @AddWith.WithSelf.%AddWith.WithSelf.F (constants.%AddWith.WithSelf.F.588)] -// CHECK:STDOUT: %Main.import_ref.2ba = import_ref Main//a, loc5_9, unloaded +// CHECK:STDOUT: %Main.AddWith: %AddWith.type.097 = import_ref Main//a, AddWith, loaded [concrete = constants.%AddWith.generic] +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//a, loc5_9, unloaded +// CHECK:STDOUT: %Main.F: @AddWith.WithSelf.%AddWith.WithSelf.F.type (%AddWith.WithSelf.F.type.ada) = import_ref Main//a, F, loaded [symbolic = @AddWith.WithSelf.%AddWith.WithSelf.F (constants.%AddWith.WithSelf.F.2ed)] +// CHECK:STDOUT: %Main.import_ref.b87 = import_ref Main//a, loc5_9, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//a, loc4_20, loaded [symbolic = @AddWith.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.18e244.2: @AddWith.%AddWith.type (%AddWith.type.059) = import_ref Main//a, loc4_29, loaded [symbolic = @AddWith.%Self (constants.%Self.842)] -// CHECK:STDOUT: %Main.import_ref.12e = import_ref Main//a, loc4_29, unloaded +// CHECK:STDOUT: %Main.import_ref.08ad54.2: @AddWith.%AddWith.type (%AddWith.type.e7b) = import_ref Main//a, loc4_29, loaded [symbolic = @AddWith.%Self (constants.%Self.403)] +// CHECK:STDOUT: %Main.import_ref.a0a = import_ref Main//a, loc4_29, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//a, loc4_20, loaded [symbolic = @AddWith.%T (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -146,9 +146,9 @@ impl C as AddWith(C) { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: impl_decl @C.as.AddWith.impl [concrete] {} { // CHECK:STDOUT: %C.ref.loc7_6: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %AddWith.ref: %AddWith.type.093 = name_ref AddWith, imports.%Main.AddWith [concrete = constants.%AddWith.generic] +// CHECK:STDOUT: %AddWith.ref: %AddWith.type.097 = name_ref AddWith, imports.%Main.AddWith [concrete = constants.%AddWith.generic] // CHECK:STDOUT: %C.ref.loc7_19: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(constants.%C)> [concrete = constants.%AddWith.type.36c] +// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(constants.%C)> [concrete = constants.%AddWith.type.236] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -156,13 +156,13 @@ impl C as AddWith(C) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T)> [symbolic = %AddWith.type (constants.%AddWith.type.059)] -// CHECK:STDOUT: %Self: @AddWith.%AddWith.type (%AddWith.type.059) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.842)] +// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T)> [symbolic = %AddWith.type (constants.%AddWith.type.e7b)] +// CHECK:STDOUT: %Self: @AddWith.%AddWith.type (%AddWith.type.e7b) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.403)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.12e -// CHECK:STDOUT: .F = imports.%Main.import_ref.891 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.a0a +// CHECK:STDOUT: .F = imports.%Main.import_ref.0a8 // CHECK:STDOUT: witness = (imports.%Main.F) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -188,7 +188,7 @@ impl C as AddWith(C) { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AddWith.WithSelf.F(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.18e244.2: @AddWith.%AddWith.type (%AddWith.type.059)) [from "a.carbon"] { +// CHECK:STDOUT: generic fn @AddWith.WithSelf.F(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.08ad54.2: @AddWith.%AddWith.type (%AddWith.type.e7b)) [from "a.carbon"] { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: @@ -201,38 +201,38 @@ impl C as AddWith(C) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.WithSelf(constants.%T, constants.%Self.842) {} +// CHECK:STDOUT: specific @AddWith.WithSelf(constants.%T, constants.%Self.403) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.WithSelf.F(constants.%T, constants.%Self.842) {} +// CHECK:STDOUT: specific @AddWith.WithSelf.F(constants.%T, constants.%Self.403) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @AddWith(constants.%C) { // CHECK:STDOUT: %T => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.36c -// CHECK:STDOUT: %Self => constants.%Self.c39 +// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.236 +// CHECK:STDOUT: %Self => constants.%Self.189 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.WithSelf(constants.%C, constants.%Self.842) { +// CHECK:STDOUT: specific @AddWith.WithSelf(constants.%C, constants.%Self.403) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%C -// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.36c -// CHECK:STDOUT: %Self => constants.%Self.842 -// CHECK:STDOUT: %AddWith.WithSelf.F.type => constants.%AddWith.WithSelf.F.type.0d3 -// CHECK:STDOUT: %AddWith.WithSelf.F => constants.%AddWith.WithSelf.F.a81 -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.933 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.e24 +// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.236 +// CHECK:STDOUT: %Self => constants.%Self.403 +// CHECK:STDOUT: %AddWith.WithSelf.F.type => constants.%AddWith.WithSelf.F.type.8d2 +// CHECK:STDOUT: %AddWith.WithSelf.F => constants.%AddWith.WithSelf.F.c97 +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.cec +// CHECK:STDOUT: %assoc0 => constants.%assoc0.b8b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AddWith.WithSelf(constants.%C, constants.%AddWith.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%C -// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.36c +// CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.236 // CHECK:STDOUT: %Self => constants.%AddWith.facet -// CHECK:STDOUT: %AddWith.WithSelf.F.type => constants.%AddWith.WithSelf.F.type.c71 -// CHECK:STDOUT: %AddWith.WithSelf.F => constants.%AddWith.WithSelf.F.4f7 -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.933 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.e24 +// CHECK:STDOUT: %AddWith.WithSelf.F.type => constants.%AddWith.WithSelf.F.type.3e6 +// CHECK:STDOUT: %AddWith.WithSelf.F => constants.%AddWith.WithSelf.F.8e0 +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.cec +// CHECK:STDOUT: %assoc0 => constants.%assoc0.b8b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AddWith.WithSelf.F(constants.%C, constants.%AddWith.facet) {} diff --git a/toolchain/check/testdata/interface/generic_method.carbon b/toolchain/check/testdata/interface/generic_method.carbon index b2c1bcb55c12..e150711c8c36 100644 --- a/toolchain/check/testdata/interface/generic_method.carbon +++ b/toolchain/check/testdata/interface/generic_method.carbon @@ -90,150 +90,150 @@ fn CallIndirect() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %A.type.0af: type = generic_interface_type @A [concrete] +// CHECK:STDOUT: %A.type.55a: type = generic_interface_type @A [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %A.generic: %A.type.0af = struct_value () [concrete] -// CHECK:STDOUT: %A.type.5ea: type = facet_type <@A, @A(%T.67d)> [symbolic] -// CHECK:STDOUT: %Self.a33: %A.type.5ea = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %A.generic: %A.type.55a = struct_value () [concrete] +// CHECK:STDOUT: %A.type.acd: type = facet_type <@A, @A(%T.67d)> [symbolic] +// CHECK:STDOUT: %Self.49a: %A.type.acd = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %U.4e7: type = symbolic_binding U, 2 [symbolic] // CHECK:STDOUT: %ptr.8f6: type = ptr_type %U.4e7 [symbolic] // CHECK:STDOUT: %pattern_type.986: type = pattern_type %ptr.8f6 [symbolic] -// CHECK:STDOUT: %tuple.type.54d: type = tuple_type (type, %A.type.5ea, type) [symbolic] -// CHECK:STDOUT: %tuple.44b: %tuple.type.54d = tuple_value (%T.67d, %Self.a33, %ptr.8f6) [symbolic] -// CHECK:STDOUT: %Self.as_type.0a5: type = facet_access_type %Self.a33 [symbolic] -// CHECK:STDOUT: %tuple.type.67c: type = tuple_type (%T.67d, %Self.as_type.0a5, %ptr.8f6) [symbolic] -// CHECK:STDOUT: %.f77: Core.Form = init_form %tuple.type.67c [symbolic] -// CHECK:STDOUT: %pattern_type.050: type = pattern_type %tuple.type.67c [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.type.f0d: type = fn_type @A.WithSelf.F, @A.WithSelf(%T.67d, %Self.a33) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.628: %A.WithSelf.F.type.f0d = struct_value () [symbolic] -// CHECK:STDOUT: %A.assoc_type.092: type = assoc_entity_type @A, @A(%T.67d) [symbolic] -// CHECK:STDOUT: %assoc0.7bb: %A.assoc_type.092 = assoc_entity element0, @A.WithSelf.%A.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %tuple.type.76f: type = tuple_type (type, %A.type.acd, type) [symbolic] +// CHECK:STDOUT: %tuple.0f4: %tuple.type.76f = tuple_value (%T.67d, %Self.49a, %ptr.8f6) [symbolic] +// CHECK:STDOUT: %Self.as_type.763: type = facet_access_type %Self.49a [symbolic] +// CHECK:STDOUT: %tuple.type.640: type = tuple_type (%T.67d, %Self.as_type.763, %ptr.8f6) [symbolic] +// CHECK:STDOUT: %.f0d: Core.Form = init_form %tuple.type.640 [symbolic] +// CHECK:STDOUT: %pattern_type.0d7: type = pattern_type %tuple.type.640 [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.type.08d: type = fn_type @A.WithSelf.F, @A.WithSelf(%T.67d, %Self.49a) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.3fa: %A.WithSelf.F.type.08d = struct_value () [symbolic] +// CHECK:STDOUT: %A.assoc_type.447: type = assoc_entity_type @A, @A(%T.67d) [symbolic] +// CHECK:STDOUT: %assoc0.d4b: %A.assoc_type.447 = assoc_entity element0, @A.WithSelf.%A.WithSelf.F.decl [symbolic] // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Y: type = class_type @Y [concrete] // CHECK:STDOUT: %Z: type = class_type @Z [concrete] -// CHECK:STDOUT: %A.type.ef5: type = facet_type <@A, @A(%X)> [concrete] +// CHECK:STDOUT: %A.type.df0: type = facet_type <@A, @A(%X)> [concrete] // CHECK:STDOUT: %A.impl_witness: = impl_witness @Y.as.A.impl.%A.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.0c0: %A.type.ef5 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.type.c12: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %Self.a33) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.612: %A.WithSelf.F.type.c12 = struct_value () [symbolic] -// CHECK:STDOUT: %A.assoc_type.3ce: type = assoc_entity_type @A, @A(%X) [concrete] -// CHECK:STDOUT: %assoc0.2c2: %A.assoc_type.3ce = assoc_entity element0, @A.WithSelf.%A.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %Self.891: %A.type.df0 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.type.ad4: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %Self.49a) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.1e2: %A.WithSelf.F.type.ad4 = struct_value () [symbolic] +// CHECK:STDOUT: %A.assoc_type.a54: type = assoc_entity_type @A, @A(%X) [concrete] +// CHECK:STDOUT: %assoc0.987: %A.assoc_type.a54 = assoc_entity element0, @A.WithSelf.%A.WithSelf.F.decl [concrete] // CHECK:STDOUT: %U.67d: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f8f9.1: type = ptr_type %U.67d [symbolic] // CHECK:STDOUT: %pattern_type.4f4b84.1: type = pattern_type %ptr.e8f8f9.1 [symbolic] // CHECK:STDOUT: %tuple.type.ff9: type = tuple_type (type, type, type) [concrete] -// CHECK:STDOUT: %tuple.fdd: %tuple.type.ff9 = tuple_value (%X, %Y, %ptr.e8f8f9.1) [symbolic] -// CHECK:STDOUT: %tuple.type.4b0: type = tuple_type (%X, %Y, %ptr.e8f8f9.1) [symbolic] -// CHECK:STDOUT: %.de3: Core.Form = init_form %tuple.type.4b0 [symbolic] -// CHECK:STDOUT: %pattern_type.145: type = pattern_type %tuple.type.4b0 [symbolic] +// CHECK:STDOUT: %tuple.f57: %tuple.type.ff9 = tuple_value (%X, %Y, %ptr.e8f8f9.1) [symbolic] +// CHECK:STDOUT: %tuple.type.316: type = tuple_type (%X, %Y, %ptr.e8f8f9.1) [symbolic] +// CHECK:STDOUT: %.3c1: Core.Form = init_form %tuple.type.316 [symbolic] +// CHECK:STDOUT: %pattern_type.178: type = pattern_type %tuple.type.316 [symbolic] // CHECK:STDOUT: %Y.as.A.impl.F.type: type = fn_type @Y.as.A.impl.F [concrete] // CHECK:STDOUT: %Y.as.A.impl.F: %Y.as.A.impl.F.type = struct_value () [concrete] -// CHECK:STDOUT: %A.facet.027: %A.type.ef5 = facet_value %Y, (%A.impl_witness) [concrete] -// CHECK:STDOUT: %A.WithSelf.F.type.d17: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %A.facet.027) [concrete] -// CHECK:STDOUT: %A.WithSelf.F.a05: %A.WithSelf.F.type.d17 = struct_value () [concrete] -// CHECK:STDOUT: %tuple.type.d63: type = tuple_type (type, %A.type.ef5, type) [concrete] -// CHECK:STDOUT: %tuple.6cb: %tuple.type.d63 = tuple_value (%X, %A.facet.027, %ptr.e8f8f9.1) [symbolic] +// CHECK:STDOUT: %A.facet.c65: %A.type.df0 = facet_value %Y, (%A.impl_witness) [concrete] +// CHECK:STDOUT: %A.WithSelf.F.type.22c: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %A.facet.c65) [concrete] +// CHECK:STDOUT: %A.WithSelf.F.06a: %A.WithSelf.F.type.22c = struct_value () [concrete] +// CHECK:STDOUT: %tuple.type.966: type = tuple_type (type, %A.type.df0, type) [concrete] +// CHECK:STDOUT: %tuple.7f7: %tuple.type.966 = tuple_value (%X, %A.facet.c65, %ptr.e8f8f9.1) [symbolic] // CHECK:STDOUT: %require_complete.ef162c.1: = require_complete_type %ptr.e8f8f9.1 [symbolic] -// CHECK:STDOUT: %require_complete.4f8: = require_complete_type %tuple.type.4b0 [symbolic] +// CHECK:STDOUT: %require_complete.44f: = require_complete_type %tuple.type.316 [symbolic] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.dd2: type = tuple_type (%empty_struct_type, %empty_struct_type, %ptr.e8f8f9.1) [symbolic] // CHECK:STDOUT: %X.val: %X = struct_value () [concrete] // CHECK:STDOUT: %Y.val: %Y = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa424f.1: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1c66.1: %ptr.as.Copy.impl.Op.type.aa424f.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2bf: = lookup_impl_witness %ptr.e8f8f9.1, @Copy [symbolic] -// CHECK:STDOUT: %.b6a: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%U.67d) [symbolic] -// CHECK:STDOUT: %Copy.facet.44d: %Copy.type = facet_value %ptr.e8f8f9.1, (%Copy.lookup_impl_witness.2bf) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.72b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.44d) [symbolic] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.72b, %Copy.facet.44d [symbolic] -// CHECK:STDOUT: %impl.elem0.8a3: %.39b = impl_witness_access %Copy.lookup_impl_witness.2bf, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a13: = specific_impl_function %impl.elem0.8a3, @Copy.WithSelf.Op(%Copy.facet.44d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5f0d.1: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce912e.1: %ptr.as.Copy.impl.Op.type.ff5f0d.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.1da: = lookup_impl_witness %ptr.e8f8f9.1, @Copy [symbolic] +// CHECK:STDOUT: %.0e9: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%U.67d) [symbolic] +// CHECK:STDOUT: %Copy.facet.302b: %Copy.type = facet_value %ptr.e8f8f9.1, (%Copy.lookup_impl_witness.1da) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.884: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.302b) [symbolic] +// CHECK:STDOUT: %.be5: type = fn_type_with_self_type %Copy.WithSelf.Op.type.884, %Copy.facet.302b [symbolic] +// CHECK:STDOUT: %impl.elem0.484: %.be5 = impl_witness_access %Copy.lookup_impl_witness.1da, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.a76: = specific_impl_function %impl.elem0.484, @Copy.WithSelf.Op(%Copy.facet.302b) [symbolic] // CHECK:STDOUT: %Call.type: type = fn_type @Call [concrete] // CHECK:STDOUT: %Call: %Call.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.f0a: type = pattern_type %Z [concrete] +// CHECK:STDOUT: %pattern_type.34e: type = pattern_type %Z [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.868: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%Z) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.121: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Z) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.b4b: %T.as.DefaultOrUnformed.impl.Op.type.121 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Z, (%DefaultOrUnformed.impl_witness.868) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.b4b, @T.as.DefaultOrUnformed.impl.Op(%Z) [concrete] -// CHECK:STDOUT: %.7ae: type = fn_type_with_self_type %A.WithSelf.F.type.d17, %A.facet.027 [concrete] -// CHECK:STDOUT: %ptr.1c4: type = ptr_type %Z [concrete] -// CHECK:STDOUT: %pattern_type.8b9: type = pattern_type %ptr.1c4 [concrete] -// CHECK:STDOUT: %tuple.61d: %tuple.type.ff9 = tuple_value (%X, %Y, %ptr.1c4) [concrete] -// CHECK:STDOUT: %tuple.type.cf4: type = tuple_type (%X, %Y, %ptr.1c4) [concrete] -// CHECK:STDOUT: %.d9d: Core.Form = init_form %tuple.type.cf4 [concrete] -// CHECK:STDOUT: %pattern_type.213: type = pattern_type %tuple.type.cf4 [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.e88: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%Z) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.1d9: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%Z) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.f06: %T.as.DefaultOrUnformed.impl.Op.type.1d9 = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %Z, (%DefaultOrUnformed.impl_witness.e88) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.f06, @T.as.DefaultOrUnformed.impl.Op(%Z) [concrete] +// CHECK:STDOUT: %.7d5: type = fn_type_with_self_type %A.WithSelf.F.type.22c, %A.facet.c65 [concrete] +// CHECK:STDOUT: %ptr.415: type = ptr_type %Z [concrete] +// CHECK:STDOUT: %pattern_type.b4b: type = pattern_type %ptr.415 [concrete] +// CHECK:STDOUT: %tuple.8e4: %tuple.type.ff9 = tuple_value (%X, %Y, %ptr.415) [concrete] +// CHECK:STDOUT: %tuple.type.2cd: type = tuple_type (%X, %Y, %ptr.415) [concrete] +// CHECK:STDOUT: %.5bc: Core.Form = init_form %tuple.type.2cd [concrete] +// CHECK:STDOUT: %pattern_type.b33: type = pattern_type %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.790b3b.3: type = fn_type @Destroy.Op.loc23_22.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.3: = custom_witness (%Destroy.Op.2dd605.3), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.5: type = fn_type @Destroy.Op.loc23_22.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.5: %Destroy.Op.type.790b3b.5 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.5: = custom_witness (%Destroy.Op.2dd605.5), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.062: %Destroy.type = facet_value %tuple.type.cf4, (%custom_witness.e20f1f.5) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d44: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.062) [concrete] -// CHECK:STDOUT: %.95e: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.d44, %Destroy.facet.062 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.6: type = fn_type @Destroy.Op.loc22 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.fd8: type = generic_interface_type @BitAndWith [concrete] -// CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.fd8 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.2af: type = facet_type <@BitAndWith, @BitAndWith(type)> [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: %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] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.2af = facet_value type, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.5d1: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %.9ee: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.5d1, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %A.type.ef5, %type.as.BitAndWith.impl.Op [concrete] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %A.type.df0, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %facet_type: type = facet_type <@A, @A(%X) & @Destroy> [concrete] -// CHECK:STDOUT: %pattern_type.e1b: type = pattern_type %facet_type [concrete] -// CHECK:STDOUT: %T.0c6: %facet_type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.871: type = pattern_type %facet_type [concrete] +// CHECK:STDOUT: %T.5b7: %facet_type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %CallGeneric.type: type = fn_type @CallGeneric [concrete] // CHECK:STDOUT: %CallGeneric: %CallGeneric.type = struct_value () [concrete] -// CHECK:STDOUT: %A.WithSelf.F.type.5f2: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %T.0c6) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.923: %A.WithSelf.F.type.5f2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.586: type = facet_access_type %T.0c6 [symbolic] -// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.0c6, @A, @A(%X) [symbolic] -// CHECK:STDOUT: %A.facet.210: %A.type.ef5 = facet_value %T.as_type.586, (%A.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.type.b88: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %A.facet.210) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.702: %A.WithSelf.F.type.b88 = struct_value () [symbolic] -// CHECK:STDOUT: %.b59: type = fn_type_with_self_type %A.WithSelf.F.type.b88, %A.facet.210 [symbolic] -// CHECK:STDOUT: %impl.elem0.65b: %.b59 = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %tuple.e0a: %tuple.type.d63 = tuple_value (%X, %A.facet.210, %ptr.1c4) [symbolic] -// CHECK:STDOUT: %tuple.type.0d8: type = tuple_type (%X, %T.as_type.586, %ptr.1c4) [symbolic] -// CHECK:STDOUT: %.cfc: Core.Form = init_form %tuple.type.0d8 [symbolic] -// CHECK:STDOUT: %pattern_type.b37: type = pattern_type %tuple.type.0d8 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.846: = specific_impl_function %impl.elem0.65b, @A.WithSelf.F(%X, %A.facet.210, %Z) [symbolic] -// CHECK:STDOUT: %require_complete.04f: = require_complete_type %tuple.type.0d8 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.57c: = lookup_impl_witness %tuple.type.0d8, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.096: %Destroy.type = facet_value %tuple.type.0d8, (%Destroy.lookup_impl_witness.57c) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.9ca: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.096) [symbolic] -// CHECK:STDOUT: %.83e: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.9ca, %Destroy.facet.096 [symbolic] -// CHECK:STDOUT: %impl.elem0.c24: %.83e = impl_witness_access %Destroy.lookup_impl_witness.57c, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.da7: = specific_impl_function %impl.elem0.c24, @Destroy.WithSelf.Op(%Destroy.facet.096) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.type.91d: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %T.5b7) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.3f4: %A.WithSelf.F.type.91d = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.0af: type = facet_access_type %T.5b7 [symbolic] +// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.5b7, @A, @A(%X) [symbolic] +// CHECK:STDOUT: %A.facet.318: %A.type.df0 = facet_value %T.as_type.0af, (%A.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.type.497: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %A.facet.318) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.a4d: %A.WithSelf.F.type.497 = struct_value () [symbolic] +// CHECK:STDOUT: %.151: type = fn_type_with_self_type %A.WithSelf.F.type.497, %A.facet.318 [symbolic] +// CHECK:STDOUT: %impl.elem0.1a3: %.151 = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %tuple.575: %tuple.type.966 = tuple_value (%X, %A.facet.318, %ptr.415) [symbolic] +// CHECK:STDOUT: %tuple.type.c2a: type = tuple_type (%X, %T.as_type.0af, %ptr.415) [symbolic] +// CHECK:STDOUT: %.546: Core.Form = init_form %tuple.type.c2a [symbolic] +// CHECK:STDOUT: %pattern_type.0e9: type = pattern_type %tuple.type.c2a [symbolic] +// CHECK:STDOUT: %specific_impl_fn.74d: = specific_impl_function %impl.elem0.1a3, @A.WithSelf.F(%X, %A.facet.318, %Z) [symbolic] +// 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: %.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: %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.e20f1f.3) [concrete] +// CHECK:STDOUT: %facet_value: %facet_type = facet_value %Y, (%A.impl_witness, %custom_witness.df9cc1.3) [concrete] // CHECK:STDOUT: %CallGeneric.specific_fn: = specific_function %CallGeneric, @CallGeneric(%facet_value) [concrete] -// CHECK:STDOUT: %complete_type.6c5: = complete_type_witness %ptr.1c4 [concrete] -// CHECK:STDOUT: %complete_type.2ad: = complete_type_witness %tuple.type.cf4 [concrete] -// CHECK:STDOUT: %tuple.type.738: type = tuple_type (%empty_struct_type, %empty_struct_type, %ptr.1c4) [concrete] -// CHECK:STDOUT: %Copy.impl_witness.803: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%Z) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.6ee: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Z) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.f43: %ptr.as.Copy.impl.Op.type.6ee = struct_value () [concrete] -// CHECK:STDOUT: %.d55: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%Z) [concrete] -// CHECK:STDOUT: %Copy.facet.777: %Copy.type = facet_value %ptr.1c4, (%Copy.impl_witness.803) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.c51: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.777) [concrete] -// CHECK:STDOUT: %.8ee: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c51, %Copy.facet.777 [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.f43, @ptr.as.Copy.impl.Op(%Z) [concrete] -// CHECK:STDOUT: %tuple.6ea: %tuple.type.d63 = tuple_value (%X, %A.facet.027, %ptr.1c4) [concrete] +// CHECK:STDOUT: %complete_type.458: = complete_type_witness %ptr.415 [concrete] +// CHECK:STDOUT: %complete_type.dec: = complete_type_witness %tuple.type.2cd [concrete] +// CHECK:STDOUT: %tuple.type.2c5: type = tuple_type (%empty_struct_type, %empty_struct_type, %ptr.415) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.d9a: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%Z) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.905: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Z) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ebe: %ptr.as.Copy.impl.Op.type.905 = struct_value () [concrete] +// CHECK:STDOUT: %.072: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%Z) [concrete] +// CHECK:STDOUT: %Copy.facet.302f: %Copy.type = facet_value %ptr.415, (%Copy.impl_witness.d9a) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.b68: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.302f) [concrete] +// CHECK:STDOUT: %.6df: type = fn_type_with_self_type %Copy.WithSelf.Op.type.b68, %Copy.facet.302f [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.ebe, @ptr.as.Copy.impl.Op(%Z) [concrete] +// CHECK:STDOUT: %tuple.1b5: %tuple.type.966 = tuple_value (%X, %A.facet.c65, %ptr.415) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -246,15 +246,15 @@ fn CallIndirect() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa424f.1) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1c66.1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5f0d.1) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce912e.1)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.fd8 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @type.as.BitAndWith.impl [concrete] +// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.a06 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @type.as.BitAndWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -269,7 +269,7 @@ fn CallIndirect() { // CHECK:STDOUT: .CallIndirect = %CallIndirect.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %A.decl: %A.type.0af = interface_decl @A [concrete = constants.%A.generic] { +// CHECK:STDOUT: %A.decl: %A.type.55a = interface_decl @A [concrete = constants.%A.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_17.1: type = splice_block %.loc5_17.2 [concrete = type] { @@ -283,28 +283,28 @@ fn CallIndirect() { // CHECK:STDOUT: %Z.decl: type = class_decl @Z [concrete = constants.%Z] {} {} // CHECK:STDOUT: impl_decl @Y.as.A.impl [concrete] {} { // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y] -// CHECK:STDOUT: %A.ref: %A.type.0af = name_ref A, file.%A.decl [concrete = constants.%A.generic] +// CHECK:STDOUT: %A.ref: %A.type.55a = name_ref A, file.%A.decl [concrete = constants.%A.generic] // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(constants.%X)> [concrete = constants.%A.type.ef5] +// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(constants.%X)> [concrete = constants.%A.type.df0] // CHECK:STDOUT: } // CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] {} {} // CHECK:STDOUT: %CallGeneric.decl: %CallGeneric.type = fn_decl @CallGeneric [concrete = constants.%CallGeneric] { -// CHECK:STDOUT: %T.patt: %pattern_type.e1b = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.871 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc26_25.1: type = splice_block %.loc26_25.3 [concrete = constants.%facet_type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %A.ref: %A.type.0af = name_ref A, file.%A.decl [concrete = constants.%A.generic] +// CHECK:STDOUT: %A.ref: %A.type.55a = name_ref A, file.%A.decl [concrete = constants.%A.generic] // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(constants.%X)> [concrete = constants.%A.type.ef5] +// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(constants.%X)> [concrete = constants.%A.type.df0] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Destroy.ref: type = name_ref Destroy, imports.%Core.Destroy [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %impl.elem0.loc26: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc26: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method.loc26: = bound_method %A.type, %impl.elem0.loc26 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method.loc26(%A.type, %Destroy.ref) [concrete = constants.%facet_type] // CHECK:STDOUT: %.loc26_25.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type] // CHECK:STDOUT: %.loc26_25.3: type = converted %type.as.BitAndWith.impl.Op.call, %.loc26_25.2 [concrete = constants.%facet_type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc26_17.2: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc26_17.1 (constants.%T.0c6)] +// CHECK:STDOUT: %T.loc26_17.2: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc26_17.1 (constants.%T.5b7)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallIndirect.decl: %CallIndirect.type = fn_decl @CallIndirect [concrete = constants.%CallIndirect] {} {} // CHECK:STDOUT: } @@ -313,31 +313,31 @@ fn CallIndirect() { // CHECK:STDOUT: %T.loc5_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T.loc5_14.1)> [symbolic = %A.type (constants.%A.type.5ea)] -// CHECK:STDOUT: %Self.loc5_23.2: @A.%A.type (%A.type.5ea) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.a33)] +// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T.loc5_14.1)> [symbolic = %A.type (constants.%A.type.acd)] +// CHECK:STDOUT: %Self.loc5_23.2: @A.%A.type (%A.type.acd) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.49a)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc5_23.1: @A.%A.type (%A.type.5ea) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.a33)] +// CHECK:STDOUT: %Self.loc5_23.1: @A.%A.type (%A.type.acd) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.49a)] // CHECK:STDOUT: %A.WithSelf.decl = interface_with_self_decl @A [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %A.WithSelf.F.decl: @A.WithSelf.%A.WithSelf.F.type (%A.WithSelf.F.type.f0d) = fn_decl @A.WithSelf.F [symbolic = @A.WithSelf.%A.WithSelf.F (constants.%A.WithSelf.F.628)] { +// CHECK:STDOUT: %A.WithSelf.F.decl: @A.WithSelf.%A.WithSelf.F.type (%A.WithSelf.F.type.08d) = fn_decl @A.WithSelf.F [symbolic = @A.WithSelf.%A.WithSelf.F (constants.%A.WithSelf.F.3fa)] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 2 [concrete] // CHECK:STDOUT: %u.param_patt: @A.WithSelf.F.%pattern_type.loc6_19 (%pattern_type.986) = value_param_pattern [concrete] // CHECK:STDOUT: %u.patt: @A.WithSelf.F.%pattern_type.loc6_19 (%pattern_type.986) = at_binding_pattern u, %u.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @A.WithSelf.F.%pattern_type.loc6_40 (%pattern_type.050) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @A.WithSelf.F.%pattern_type.loc6_40 (%pattern_type.050) = return_slot_pattern %return.param_patt, %.loc6_40.4 [concrete] +// CHECK:STDOUT: %return.param_patt: @A.WithSelf.F.%pattern_type.loc6_40 (%pattern_type.0d7) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @A.WithSelf.F.%pattern_type.loc6_40 (%pattern_type.0d7) = return_slot_pattern %return.param_patt, %.loc6_40.4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc5_14.2 [symbolic = %T (constants.%T.67d)] -// CHECK:STDOUT: %.loc6_32: @A.WithSelf.F.%A.type (%A.type.5ea) = specific_constant @A.%Self.loc5_23.1, @A(constants.%T.67d) [symbolic = %Self (constants.%Self.a33)] -// CHECK:STDOUT: %Self.ref: @A.WithSelf.F.%A.type (%A.type.5ea) = name_ref Self, %.loc6_32 [symbolic = %Self (constants.%Self.a33)] +// CHECK:STDOUT: %.loc6_32: @A.WithSelf.F.%A.type (%A.type.acd) = specific_constant @A.%Self.loc5_23.1, @A(constants.%T.67d) [symbolic = %Self (constants.%Self.49a)] +// CHECK:STDOUT: %Self.ref: @A.WithSelf.F.%A.type (%A.type.acd) = name_ref Self, %.loc6_32 [symbolic = %Self (constants.%Self.49a)] // CHECK:STDOUT: %U.ref.loc6_38: type = name_ref U, %U.loc6_9.2 [symbolic = %U.loc6_9.1 (constants.%U.4e7)] // CHECK:STDOUT: %ptr.loc6_39: type = ptr_type %U.ref.loc6_38 [symbolic = %ptr.loc6_22.1 (constants.%ptr.8f6)] -// CHECK:STDOUT: %.loc6_40.2: @A.WithSelf.F.%tuple.type.loc6_40.1 (%tuple.type.54d) = tuple_literal (%T.ref, %Self.ref, %ptr.loc6_39) [symbolic = %tuple (constants.%tuple.44b)] -// CHECK:STDOUT: %Self.as_type.loc6_40.2: type = facet_access_type constants.%Self.a33 [symbolic = %Self.as_type.loc6_40.1 (constants.%Self.as_type.0a5)] -// CHECK:STDOUT: %.loc6_40.3: type = converted constants.%Self.a33, %Self.as_type.loc6_40.2 [symbolic = %Self.as_type.loc6_40.1 (constants.%Self.as_type.0a5)] -// CHECK:STDOUT: %.loc6_40.4: type = converted %.loc6_40.2, constants.%tuple.type.67c [symbolic = %tuple.type.loc6_40.2 (constants.%tuple.type.67c)] -// CHECK:STDOUT: %.loc6_40.5: Core.Form = init_form %.loc6_40.4 [symbolic = %.loc6_40.1 (constants.%.f77)] +// CHECK:STDOUT: %.loc6_40.2: @A.WithSelf.F.%tuple.type.loc6_40.1 (%tuple.type.76f) = tuple_literal (%T.ref, %Self.ref, %ptr.loc6_39) [symbolic = %tuple (constants.%tuple.0f4)] +// CHECK:STDOUT: %Self.as_type.loc6_40.2: type = facet_access_type constants.%Self.49a [symbolic = %Self.as_type.loc6_40.1 (constants.%Self.as_type.763)] +// CHECK:STDOUT: %.loc6_40.3: type = converted constants.%Self.49a, %Self.as_type.loc6_40.2 [symbolic = %Self.as_type.loc6_40.1 (constants.%Self.as_type.763)] +// CHECK:STDOUT: %.loc6_40.4: type = converted %.loc6_40.2, constants.%tuple.type.640 [symbolic = %tuple.type.loc6_40.2 (constants.%tuple.type.640)] +// CHECK:STDOUT: %.loc6_40.5: Core.Form = init_form %.loc6_40.4 [symbolic = %.loc6_40.1 (constants.%.f0d)] // CHECK:STDOUT: %.loc6_12.1: type = splice_block %.loc6_12.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc6_12.2: type = type_literal type [concrete = type] @@ -349,10 +349,10 @@ fn CallIndirect() { // CHECK:STDOUT: %ptr.loc6_22.2: type = ptr_type %U.ref.loc6_21 [symbolic = %ptr.loc6_22.1 (constants.%ptr.8f6)] // CHECK:STDOUT: } // CHECK:STDOUT: %u: @A.WithSelf.F.%ptr.loc6_22.1 (%ptr.8f6) = value_binding u, %u.param -// CHECK:STDOUT: %return.param: ref @A.WithSelf.F.%tuple.type.loc6_40.2 (%tuple.type.67c) = out_param call_param1 -// CHECK:STDOUT: %return: ref @A.WithSelf.F.%tuple.type.loc6_40.2 (%tuple.type.67c) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @A.WithSelf.F.%tuple.type.loc6_40.2 (%tuple.type.640) = out_param call_param1 +// CHECK:STDOUT: %return: ref @A.WithSelf.F.%tuple.type.loc6_40.2 (%tuple.type.640) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc6_41.1: @A.WithSelf.%A.assoc_type (%A.assoc_type.092) = assoc_entity element0, %A.WithSelf.F.decl [symbolic = %assoc0.loc6_41.2 (constants.%assoc0.7bb)] +// CHECK:STDOUT: %assoc0.loc6_41.1: @A.WithSelf.%A.assoc_type (%A.assoc_type.447) = assoc_entity element0, %A.WithSelf.F.decl [symbolic = %assoc0.loc6_41.2 (constants.%assoc0.d4b)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc5_23.1 @@ -372,16 +372,16 @@ fn CallIndirect() { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: %u.param_patt: @Y.as.A.impl.F.%pattern_type.loc16_19 (%pattern_type.4f4b84.1) = value_param_pattern [concrete] // CHECK:STDOUT: %u.patt: @Y.as.A.impl.F.%pattern_type.loc16_19 (%pattern_type.4f4b84.1) = at_binding_pattern u, %u.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Y.as.A.impl.F.%pattern_type.loc16_37 (%pattern_type.145) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Y.as.A.impl.F.%pattern_type.loc16_37 (%pattern_type.145) = return_slot_pattern %return.param_patt, %.loc16_37.3 [concrete] +// CHECK:STDOUT: %return.param_patt: @Y.as.A.impl.F.%pattern_type.loc16_37 (%pattern_type.178) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Y.as.A.impl.F.%pattern_type.loc16_37 (%pattern_type.178) = return_slot_pattern %return.param_patt, %.loc16_37.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y] // CHECK:STDOUT: %U.ref.loc16_35: type = name_ref U, %U.loc16_9.2 [symbolic = %U.loc16_9.1 (constants.%U.67d)] // CHECK:STDOUT: %ptr.loc16_36: type = ptr_type %U.ref.loc16_35 [symbolic = %ptr.loc16_22.1 (constants.%ptr.e8f8f9.1)] -// CHECK:STDOUT: %.loc16_37.2: %tuple.type.ff9 = tuple_literal (%X.ref, %Y.ref, %ptr.loc16_36) [symbolic = %tuple (constants.%tuple.fdd)] -// CHECK:STDOUT: %.loc16_37.3: type = converted %.loc16_37.2, constants.%tuple.type.4b0 [symbolic = %tuple.type.loc16 (constants.%tuple.type.4b0)] -// CHECK:STDOUT: %.loc16_37.4: Core.Form = init_form %.loc16_37.3 [symbolic = %.loc16_37.1 (constants.%.de3)] +// CHECK:STDOUT: %.loc16_37.2: %tuple.type.ff9 = tuple_literal (%X.ref, %Y.ref, %ptr.loc16_36) [symbolic = %tuple (constants.%tuple.f57)] +// CHECK:STDOUT: %.loc16_37.3: type = converted %.loc16_37.2, constants.%tuple.type.316 [symbolic = %tuple.type.loc16 (constants.%tuple.type.316)] +// CHECK:STDOUT: %.loc16_37.4: Core.Form = init_form %.loc16_37.3 [symbolic = %.loc16_37.1 (constants.%.3c1)] // CHECK:STDOUT: %.loc16_12.1: type = splice_block %.loc16_12.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc16_12.2: type = type_literal type [concrete = type] @@ -393,8 +393,8 @@ fn CallIndirect() { // CHECK:STDOUT: %ptr.loc16_22.2: type = ptr_type %U.ref.loc16_21 [symbolic = %ptr.loc16_22.1 (constants.%ptr.e8f8f9.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %u: @Y.as.A.impl.F.%ptr.loc16_22.1 (%ptr.e8f8f9.1) = value_binding u, %u.param -// CHECK:STDOUT: %return.param: ref @Y.as.A.impl.F.%tuple.type.loc16 (%tuple.type.4b0) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Y.as.A.impl.F.%tuple.type.loc16 (%tuple.type.4b0) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @Y.as.A.impl.F.%tuple.type.loc16 (%tuple.type.316) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Y.as.A.impl.F.%tuple.type.loc16 (%tuple.type.316) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %A.impl_witness_table = impl_witness_table (%Y.as.A.impl.F.decl), @Y.as.A.impl [concrete] // CHECK:STDOUT: %A.impl_witness: = impl_witness %A.impl_witness_table [concrete = constants.%A.impl_witness] @@ -431,45 +431,45 @@ fn CallIndirect() { // CHECK:STDOUT: .Self = constants.%Z // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @A.WithSelf.F(@A.%T.loc5_14.2: type, @A.%Self.loc5_23.1: @A.%A.type (%A.type.5ea), %U.loc6_9.2: type) { +// CHECK:STDOUT: generic fn @A.WithSelf.F(@A.%T.loc5_14.2: type, @A.%Self.loc5_23.1: @A.%A.type (%A.type.acd), %U.loc6_9.2: type) { // CHECK:STDOUT: %U.loc6_9.1: type = symbolic_binding U, 2 [symbolic = %U.loc6_9.1 (constants.%U.4e7)] // CHECK:STDOUT: %ptr.loc6_22.1: type = ptr_type %U.loc6_9.1 [symbolic = %ptr.loc6_22.1 (constants.%ptr.8f6)] // CHECK:STDOUT: %pattern_type.loc6_19: type = pattern_type %ptr.loc6_22.1 [symbolic = %pattern_type.loc6_19 (constants.%pattern_type.986)] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T.67d)] -// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T)> [symbolic = %A.type (constants.%A.type.5ea)] -// CHECK:STDOUT: %Self: @A.WithSelf.F.%A.type (%A.type.5ea) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a33)] -// CHECK:STDOUT: %tuple.type.loc6_40.1: type = tuple_type (type, %A.type, type) [symbolic = %tuple.type.loc6_40.1 (constants.%tuple.type.54d)] -// CHECK:STDOUT: %tuple: @A.WithSelf.F.%tuple.type.loc6_40.1 (%tuple.type.54d) = tuple_value (%T, %Self, %ptr.loc6_22.1) [symbolic = %tuple (constants.%tuple.44b)] -// CHECK:STDOUT: %Self.as_type.loc6_40.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_40.1 (constants.%Self.as_type.0a5)] -// CHECK:STDOUT: %tuple.type.loc6_40.2: type = tuple_type (%T, %Self.as_type.loc6_40.1, %ptr.loc6_22.1) [symbolic = %tuple.type.loc6_40.2 (constants.%tuple.type.67c)] -// CHECK:STDOUT: %.loc6_40.1: Core.Form = init_form %tuple.type.loc6_40.2 [symbolic = %.loc6_40.1 (constants.%.f77)] -// CHECK:STDOUT: %pattern_type.loc6_40: type = pattern_type %tuple.type.loc6_40.2 [symbolic = %pattern_type.loc6_40 (constants.%pattern_type.050)] +// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T)> [symbolic = %A.type (constants.%A.type.acd)] +// CHECK:STDOUT: %Self: @A.WithSelf.F.%A.type (%A.type.acd) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.49a)] +// CHECK:STDOUT: %tuple.type.loc6_40.1: type = tuple_type (type, %A.type, type) [symbolic = %tuple.type.loc6_40.1 (constants.%tuple.type.76f)] +// CHECK:STDOUT: %tuple: @A.WithSelf.F.%tuple.type.loc6_40.1 (%tuple.type.76f) = tuple_value (%T, %Self, %ptr.loc6_22.1) [symbolic = %tuple (constants.%tuple.0f4)] +// CHECK:STDOUT: %Self.as_type.loc6_40.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_40.1 (constants.%Self.as_type.763)] +// CHECK:STDOUT: %tuple.type.loc6_40.2: type = tuple_type (%T, %Self.as_type.loc6_40.1, %ptr.loc6_22.1) [symbolic = %tuple.type.loc6_40.2 (constants.%tuple.type.640)] +// CHECK:STDOUT: %.loc6_40.1: Core.Form = init_form %tuple.type.loc6_40.2 [symbolic = %.loc6_40.1 (constants.%.f0d)] +// CHECK:STDOUT: %pattern_type.loc6_40: type = pattern_type %tuple.type.loc6_40.2 [symbolic = %pattern_type.loc6_40 (constants.%pattern_type.0d7)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%u.param: @A.WithSelf.F.%ptr.loc6_22.1 (%ptr.8f6)) -> out %return.param: @A.WithSelf.F.%tuple.type.loc6_40.2 (%tuple.type.67c); +// CHECK:STDOUT: fn(%u.param: @A.WithSelf.F.%ptr.loc6_22.1 (%ptr.8f6)) -> out %return.param: @A.WithSelf.F.%tuple.type.loc6_40.2 (%tuple.type.640); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Y.as.A.impl.F(%U.loc16_9.2: type) { // CHECK:STDOUT: %U.loc16_9.1: type = symbolic_binding U, 0 [symbolic = %U.loc16_9.1 (constants.%U.67d)] // CHECK:STDOUT: %ptr.loc16_22.1: type = ptr_type %U.loc16_9.1 [symbolic = %ptr.loc16_22.1 (constants.%ptr.e8f8f9.1)] // CHECK:STDOUT: %pattern_type.loc16_19: type = pattern_type %ptr.loc16_22.1 [symbolic = %pattern_type.loc16_19 (constants.%pattern_type.4f4b84.1)] -// CHECK:STDOUT: %tuple: %tuple.type.ff9 = tuple_value (constants.%X, constants.%Y, %ptr.loc16_22.1) [symbolic = %tuple (constants.%tuple.fdd)] -// CHECK:STDOUT: %tuple.type.loc16: type = tuple_type (constants.%X, constants.%Y, %ptr.loc16_22.1) [symbolic = %tuple.type.loc16 (constants.%tuple.type.4b0)] -// CHECK:STDOUT: %.loc16_37.1: Core.Form = init_form %tuple.type.loc16 [symbolic = %.loc16_37.1 (constants.%.de3)] -// CHECK:STDOUT: %pattern_type.loc16_37: type = pattern_type %tuple.type.loc16 [symbolic = %pattern_type.loc16_37 (constants.%pattern_type.145)] +// CHECK:STDOUT: %tuple: %tuple.type.ff9 = tuple_value (constants.%X, constants.%Y, %ptr.loc16_22.1) [symbolic = %tuple (constants.%tuple.f57)] +// CHECK:STDOUT: %tuple.type.loc16: type = tuple_type (constants.%X, constants.%Y, %ptr.loc16_22.1) [symbolic = %tuple.type.loc16 (constants.%tuple.type.316)] +// CHECK:STDOUT: %.loc16_37.1: Core.Form = init_form %tuple.type.loc16 [symbolic = %.loc16_37.1 (constants.%.3c1)] +// CHECK:STDOUT: %pattern_type.loc16_37: type = pattern_type %tuple.type.loc16 [symbolic = %pattern_type.loc16_37 (constants.%pattern_type.178)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc16_19: = require_complete_type %ptr.loc16_22.1 [symbolic = %require_complete.loc16_19 (constants.%require_complete.ef162c.1)] -// CHECK:STDOUT: %require_complete.loc16_25: = require_complete_type %tuple.type.loc16 [symbolic = %require_complete.loc16_25 (constants.%require_complete.4f8)] +// CHECK:STDOUT: %require_complete.loc16_25: = require_complete_type %tuple.type.loc16 [symbolic = %require_complete.loc16_25 (constants.%require_complete.44f)] // CHECK:STDOUT: %tuple.type.loc17: type = tuple_type (constants.%empty_struct_type, constants.%empty_struct_type, %ptr.loc16_22.1) [symbolic = %tuple.type.loc17 (constants.%tuple.type.dd2)] -// CHECK:STDOUT: %.loc17_21.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%U.loc16_9.1) [symbolic = %.loc17_21.1 (constants.%.b6a)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc16_22.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2bf)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc16_22.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.44d)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.72b)] -// CHECK:STDOUT: %.loc17_21.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc17_21.2 (constants.%.39b)] -// CHECK:STDOUT: %impl.elem0.loc17_21.2: @Y.as.A.impl.F.%.loc17_21.2 (%.39b) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc17_21.2 (constants.%impl.elem0.8a3)] -// CHECK:STDOUT: %specific_impl_fn.loc17_21.2: = specific_impl_function %impl.elem0.loc17_21.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc17_21.2 (constants.%specific_impl_fn.a13)] +// CHECK:STDOUT: %.loc17_21.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%U.loc16_9.1) [symbolic = %.loc17_21.1 (constants.%.0e9)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc16_22.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.1da)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc16_22.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.302b)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.884)] +// CHECK:STDOUT: %.loc17_21.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc17_21.2 (constants.%.be5)] +// CHECK:STDOUT: %impl.elem0.loc17_21.2: @Y.as.A.impl.F.%.loc17_21.2 (%.be5) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc17_21.2 (constants.%impl.elem0.484)] +// CHECK:STDOUT: %specific_impl_fn.loc17_21.2: = specific_impl_function %impl.elem0.loc17_21.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc17_21.2 (constants.%specific_impl_fn.a76)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%u.param: @Y.as.A.impl.F.%ptr.loc16_22.1 (%ptr.e8f8f9.1)) -> out %return.param: @Y.as.A.impl.F.%tuple.type.loc16 (%tuple.type.4b0) { +// CHECK:STDOUT: fn(%u.param: @Y.as.A.impl.F.%ptr.loc16_22.1 (%ptr.e8f8f9.1)) -> out %return.param: @Y.as.A.impl.F.%tuple.type.loc16 (%tuple.type.316) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc17_14.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc17_18.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -481,15 +481,15 @@ fn CallIndirect() { // CHECK:STDOUT: %tuple.elem1: ref %Y = tuple_access %return.param, element1 // CHECK:STDOUT: %.loc17_18.2: init %Y to %tuple.elem1 = class_init () [concrete = constants.%Y.val] // CHECK:STDOUT: %.loc17_22.3: init %Y = converted %.loc17_18.1, %.loc17_18.2 [concrete = constants.%Y.val] -// CHECK:STDOUT: %impl.elem0.loc17_21.1: @Y.as.A.impl.F.%.loc17_21.2 (%.39b) = impl_witness_access constants.%Copy.lookup_impl_witness.2bf, element0 [symbolic = %impl.elem0.loc17_21.2 (constants.%impl.elem0.8a3)] +// CHECK:STDOUT: %impl.elem0.loc17_21.1: @Y.as.A.impl.F.%.loc17_21.2 (%.be5) = impl_witness_access constants.%Copy.lookup_impl_witness.1da, element0 [symbolic = %impl.elem0.loc17_21.2 (constants.%impl.elem0.484)] // CHECK:STDOUT: %bound_method.loc17_21.1: = bound_method %u.ref, %impl.elem0.loc17_21.1 -// CHECK:STDOUT: %specific_impl_fn.loc17_21.1: = specific_impl_function %impl.elem0.loc17_21.1, @Copy.WithSelf.Op(constants.%Copy.facet.44d) [symbolic = %specific_impl_fn.loc17_21.2 (constants.%specific_impl_fn.a13)] +// CHECK:STDOUT: %specific_impl_fn.loc17_21.1: = specific_impl_function %impl.elem0.loc17_21.1, @Copy.WithSelf.Op(constants.%Copy.facet.302b) [symbolic = %specific_impl_fn.loc17_21.2 (constants.%specific_impl_fn.a76)] // CHECK:STDOUT: %bound_method.loc17_21.2: = bound_method %u.ref, %specific_impl_fn.loc17_21.1 // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Y.as.A.impl.F.%ptr.loc16_22.1 (%ptr.e8f8f9.1) = call %bound_method.loc17_21.2(%u.ref) // CHECK:STDOUT: %tuple.elem2: ref @Y.as.A.impl.F.%ptr.loc16_22.1 (%ptr.e8f8f9.1) = tuple_access %return.param, element2 // CHECK:STDOUT: %.loc17_22.4: init @Y.as.A.impl.F.%ptr.loc16_22.1 (%ptr.e8f8f9.1) to %tuple.elem2 = in_place_init %Copy.WithSelf.Op.call -// CHECK:STDOUT: %.loc17_22.5: init @Y.as.A.impl.F.%tuple.type.loc16 (%tuple.type.4b0) to %return.param = tuple_init (%.loc17_22.2, %.loc17_22.3, %.loc17_22.4) -// CHECK:STDOUT: %.loc17_23: init @Y.as.A.impl.F.%tuple.type.loc16 (%tuple.type.4b0) = converted %.loc17_22.1, %.loc17_22.5 +// CHECK:STDOUT: %.loc17_22.5: init @Y.as.A.impl.F.%tuple.type.loc16 (%tuple.type.316) to %return.param = tuple_init (%.loc17_22.2, %.loc17_22.3, %.loc17_22.4) +// CHECK:STDOUT: %.loc17_23: init @Y.as.A.impl.F.%tuple.type.loc16 (%tuple.type.316) = converted %.loc17_22.1, %.loc17_22.5 // CHECK:STDOUT: return %.loc17_23 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -497,41 +497,41 @@ fn CallIndirect() { // CHECK:STDOUT: fn @Call() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %u.patt: %pattern_type.f0a = ref_binding_pattern u [concrete] -// CHECK:STDOUT: %u.var_patt: %pattern_type.f0a = var_pattern %u.patt [concrete] +// CHECK:STDOUT: %u.patt: %pattern_type.34e = ref_binding_pattern u [concrete] +// CHECK:STDOUT: %u.var_patt: %pattern_type.34e = var_pattern %u.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %u.var: ref %Z = var %u.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Z, (constants.%DefaultOrUnformed.impl_witness.868) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Z, (constants.%DefaultOrUnformed.impl_witness.e88) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc22_11.1: %DefaultOrUnformed.type = converted constants.%Z, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type.loc22: type = facet_access_type %.loc22_11.1 [concrete = constants.%Z] // CHECK:STDOUT: %.loc22_11.2: type = converted %.loc22_11.1, %as_type.loc22 [concrete = constants.%Z] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.b4b, @T.as.DefaultOrUnformed.impl.Op(constants.%Z) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.f06, @T.as.DefaultOrUnformed.impl.Op(constants.%Z) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %.loc22_3: ref %Z = splice_block %u.var {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %Z to %.loc22_3 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign %u.var, %T.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: %Z.ref.loc22: type = name_ref Z, file.%Z.decl [concrete = constants.%Z] // CHECK:STDOUT: %u: ref %Z = ref_binding u, %u.var // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y] -// CHECK:STDOUT: %A.ref: %A.type.0af = name_ref A, file.%A.decl [concrete = constants.%A.generic] +// CHECK:STDOUT: %A.ref: %A.type.55a = name_ref A, file.%A.decl [concrete = constants.%A.generic] // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(constants.%X)> [concrete = constants.%A.type.ef5] -// CHECK:STDOUT: %A.facet: %A.type.ef5 = facet_value %Y.ref, (constants.%A.impl_witness) [concrete = constants.%A.facet.027] -// CHECK:STDOUT: %.loc23_6: %A.type.ef5 = converted %Y.ref, %A.facet [concrete = constants.%A.facet.027] +// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(constants.%X)> [concrete = constants.%A.type.df0] +// CHECK:STDOUT: %A.facet: %A.type.df0 = facet_value %Y.ref, (constants.%A.impl_witness) [concrete = constants.%A.facet.c65] +// CHECK:STDOUT: %.loc23_6: %A.type.df0 = converted %Y.ref, %A.facet [concrete = constants.%A.facet.c65] // CHECK:STDOUT: %as_type.loc23: type = facet_access_type %.loc23_6 [concrete = constants.%Y] // CHECK:STDOUT: %.loc23_14.1: type = converted %.loc23_6, %as_type.loc23 [concrete = constants.%Y] -// CHECK:STDOUT: %.loc23_14.2: %A.assoc_type.3ce = specific_constant @A.WithSelf.%assoc0.loc6_41.1, @A.WithSelf(constants.%X, constants.%A.facet.027) [concrete = constants.%assoc0.2c2] -// CHECK:STDOUT: %F.ref: %A.assoc_type.3ce = name_ref F, %.loc23_14.2 [concrete = constants.%assoc0.2c2] -// CHECK:STDOUT: %impl.elem0: %.7ae = impl_witness_access constants.%A.impl_witness, element0 [concrete = constants.%Y.as.A.impl.F] +// CHECK:STDOUT: %.loc23_14.2: %A.assoc_type.a54 = specific_constant @A.WithSelf.%assoc0.loc6_41.1, @A.WithSelf(constants.%X, constants.%A.facet.c65) [concrete = constants.%assoc0.987] +// CHECK:STDOUT: %F.ref: %A.assoc_type.a54 = name_ref F, %.loc23_14.2 [concrete = constants.%assoc0.987] +// CHECK:STDOUT: %impl.elem0: %.7d5 = impl_witness_access constants.%A.impl_witness, element0 [concrete = constants.%Y.as.A.impl.F] // CHECK:STDOUT: %Z.ref.loc23: type = name_ref Z, file.%Z.decl [concrete = constants.%Z] // CHECK:STDOUT: %u.ref: ref %Z = name_ref u, %u -// CHECK:STDOUT: %addr: %ptr.1c4 = addr_of %u.ref +// CHECK:STDOUT: %addr: %ptr.415 = addr_of %u.ref // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Y.as.A.impl.F(constants.%Z) [concrete = constants.%Y.as.A.impl.F.specific_fn] -// CHECK:STDOUT: %.loc23_22.1: ref %tuple.type.cf4 = temporary_storage -// CHECK:STDOUT: %Y.as.A.impl.F.call: init %tuple.type.cf4 to %.loc23_22.1 = call %specific_fn(%addr) -// CHECK:STDOUT: %.loc23_22.2: ref %tuple.type.cf4 = temporary %.loc23_22.1, %Y.as.A.impl.F.call -// CHECK:STDOUT: %Destroy.Op.bound.loc23: = bound_method %.loc23_22.2, constants.%Destroy.Op.2dd605.5 +// 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.2dd605.6 +// 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: return // CHECK:STDOUT: } @@ -548,9 +548,9 @@ fn CallIndirect() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_22.4(%self.param: ref %ptr.1c4) = "no_op"; +// CHECK:STDOUT: fn @Destroy.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.cf4) { +// CHECK:STDOUT: fn @Destroy.Op.loc23_22.5(%self.param: ref %tuple.type.2cd) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -561,61 +561,61 @@ fn CallIndirect() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @CallGeneric(%T.loc26_17.2: %facet_type) { -// CHECK:STDOUT: %T.loc26_17.1: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc26_17.1 (constants.%T.0c6)] +// CHECK:STDOUT: %T.loc26_17.1: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc26_17.1 (constants.%T.5b7)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc28_4.2: type = facet_access_type %T.loc26_17.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type.586)] +// CHECK:STDOUT: %T.as_type.loc28_4.2: type = facet_access_type %T.loc26_17.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type.0af)] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc26_17.1, @A, @A(constants.%X) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] -// CHECK:STDOUT: %A.facet: %A.type.ef5 = facet_value %T.as_type.loc28_4.2, (%A.lookup_impl_witness) [symbolic = %A.facet (constants.%A.facet.210)] -// CHECK:STDOUT: %A.WithSelf.F.type: type = fn_type @A.WithSelf.F, @A.WithSelf(constants.%X, %A.facet) [symbolic = %A.WithSelf.F.type (constants.%A.WithSelf.F.type.b88)] -// CHECK:STDOUT: %.loc28_4.3: type = fn_type_with_self_type %A.WithSelf.F.type, %A.facet [symbolic = %.loc28_4.3 (constants.%.b59)] -// CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.b59) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.65b)] -// CHECK:STDOUT: %specific_impl_fn.loc28_4.2: = specific_impl_function %impl.elem0.loc28_4.2, @A.WithSelf.F(constants.%X, %A.facet, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.846)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.as_type.loc28_4.2, constants.%ptr.1c4) [symbolic = %tuple.type (constants.%tuple.type.0d8)] -// CHECK:STDOUT: %require_complete: = require_complete_type %tuple.type [symbolic = %require_complete (constants.%require_complete.04f)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.57c)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.096)] -// 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.9ca)] -// CHECK:STDOUT: %.loc28_12.3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc28_12.3 (constants.%.83e)] -// CHECK:STDOUT: %impl.elem0.loc28_12.2: @CallGeneric.%.loc28_12.3 (%.83e) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.c24)] -// CHECK:STDOUT: %specific_impl_fn.loc28_12.2: = specific_impl_function %impl.elem0.loc28_12.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.da7)] +// CHECK:STDOUT: %A.facet: %A.type.df0 = facet_value %T.as_type.loc28_4.2, (%A.lookup_impl_witness) [symbolic = %A.facet (constants.%A.facet.318)] +// CHECK:STDOUT: %A.WithSelf.F.type: type = fn_type @A.WithSelf.F, @A.WithSelf(constants.%X, %A.facet) [symbolic = %A.WithSelf.F.type (constants.%A.WithSelf.F.type.497)] +// CHECK:STDOUT: %.loc28_4.3: type = fn_type_with_self_type %A.WithSelf.F.type, %A.facet [symbolic = %.loc28_4.3 (constants.%.151)] +// CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.151) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.1a3)] +// CHECK:STDOUT: %specific_impl_fn.loc28_4.2: = specific_impl_function %impl.elem0.loc28_4.2, @A.WithSelf.F(constants.%X, %A.facet, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.74d)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.as_type.loc28_4.2, constants.%ptr.415) [symbolic = %tuple.type (constants.%tuple.type.c2a)] +// 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: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.2f8)] +// 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.2ac)] +// CHECK:STDOUT: %.loc28_12.3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc28_12.3 (constants.%.89c)] +// CHECK:STDOUT: %impl.elem0.loc28_12.2: @CallGeneric.%.loc28_12.3 (%.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) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.65e)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %u.patt: %pattern_type.f0a = ref_binding_pattern u [concrete] -// CHECK:STDOUT: %u.var_patt: %pattern_type.f0a = var_pattern %u.patt [concrete] +// CHECK:STDOUT: %u.patt: %pattern_type.34e = ref_binding_pattern u [concrete] +// CHECK:STDOUT: %u.var_patt: %pattern_type.34e = var_pattern %u.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %u.var: ref %Z = var %u.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Z, (constants.%DefaultOrUnformed.impl_witness.868) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%Z, (constants.%DefaultOrUnformed.impl_witness.e88) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc27_11.1: %DefaultOrUnformed.type = converted constants.%Z, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc27_11.1 [concrete = constants.%Z] // CHECK:STDOUT: %.loc27_11.2: type = converted %.loc27_11.1, %as_type [concrete = constants.%Z] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.b4b, @T.as.DefaultOrUnformed.impl.Op(constants.%Z) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.f06, @T.as.DefaultOrUnformed.impl.Op(constants.%Z) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %.loc27_3: ref %Z = splice_block %u.var {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %Z to %.loc27_3 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign %u.var, %T.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: %Z.ref.loc27: type = name_ref Z, file.%Z.decl [concrete = constants.%Z] // CHECK:STDOUT: %u: ref %Z = ref_binding u, %u.var -// CHECK:STDOUT: %T.ref: %facet_type = name_ref T, %T.loc26_17.2 [symbolic = %T.loc26_17.1 (constants.%T.0c6)] -// CHECK:STDOUT: %T.as_type.loc28_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type.586)] -// CHECK:STDOUT: %.loc28_4.1: type = converted %T.ref, %T.as_type.loc28_4.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type.586)] -// CHECK:STDOUT: %.loc28_4.2: %A.assoc_type.3ce = specific_constant @A.WithSelf.%assoc0.loc6_41.1, @A.WithSelf(constants.%X, constants.%T.0c6) [concrete = constants.%assoc0.2c2] -// CHECK:STDOUT: %F.ref: %A.assoc_type.3ce = name_ref F, %.loc28_4.2 [concrete = constants.%assoc0.2c2] -// CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.b59) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.65b)] +// CHECK:STDOUT: %T.ref: %facet_type = name_ref T, %T.loc26_17.2 [symbolic = %T.loc26_17.1 (constants.%T.5b7)] +// CHECK:STDOUT: %T.as_type.loc28_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type.0af)] +// CHECK:STDOUT: %.loc28_4.1: type = converted %T.ref, %T.as_type.loc28_4.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type.0af)] +// CHECK:STDOUT: %.loc28_4.2: %A.assoc_type.a54 = specific_constant @A.WithSelf.%assoc0.loc6_41.1, @A.WithSelf(constants.%X, constants.%T.5b7) [concrete = constants.%assoc0.987] +// CHECK:STDOUT: %F.ref: %A.assoc_type.a54 = name_ref F, %.loc28_4.2 [concrete = constants.%assoc0.987] +// CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.151) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.1a3)] // CHECK:STDOUT: %Z.ref.loc28: type = name_ref Z, file.%Z.decl [concrete = constants.%Z] // CHECK:STDOUT: %u.ref: ref %Z = name_ref u, %u -// CHECK:STDOUT: %addr: %ptr.1c4 = addr_of %u.ref -// CHECK:STDOUT: %specific_impl_fn.loc28_4.1: = specific_impl_function %impl.elem0.loc28_4.1, @A.WithSelf.F(constants.%X, constants.%A.facet.210, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.846)] -// CHECK:STDOUT: %.loc28_12.1: ref @CallGeneric.%tuple.type (%tuple.type.0d8) = temporary_storage -// CHECK:STDOUT: %A.WithSelf.F.call: init @CallGeneric.%tuple.type (%tuple.type.0d8) to %.loc28_12.1 = call %specific_impl_fn.loc28_4.1(%addr) -// CHECK:STDOUT: %.loc28_12.2: ref @CallGeneric.%tuple.type (%tuple.type.0d8) = temporary %.loc28_12.1, %A.WithSelf.F.call -// CHECK:STDOUT: %impl.elem0.loc28_12.1: @CallGeneric.%.loc28_12.3 (%.83e) = impl_witness_access constants.%Destroy.lookup_impl_witness.57c, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.c24)] +// CHECK:STDOUT: %addr: %ptr.415 = addr_of %u.ref +// CHECK:STDOUT: %specific_impl_fn.loc28_4.1: = specific_impl_function %impl.elem0.loc28_4.1, @A.WithSelf.F(constants.%X, constants.%A.facet.318, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.74d)] +// CHECK:STDOUT: %.loc28_12.1: ref @CallGeneric.%tuple.type (%tuple.type.c2a) = temporary_storage +// CHECK:STDOUT: %A.WithSelf.F.call: init @CallGeneric.%tuple.type (%tuple.type.c2a) to %.loc28_12.1 = call %specific_impl_fn.loc28_4.1(%addr) +// CHECK:STDOUT: %.loc28_12.2: ref @CallGeneric.%tuple.type (%tuple.type.c2a) = temporary %.loc28_12.1, %A.WithSelf.F.call +// CHECK:STDOUT: %impl.elem0.loc28_12.1: @CallGeneric.%.loc28_12.3 (%.89c) = impl_witness_access constants.%Destroy.lookup_impl_witness.a02, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.a1a)] // CHECK:STDOUT: %bound_method.loc28_12.1: = bound_method %.loc28_12.2, %impl.elem0.loc28_12.1 -// CHECK:STDOUT: %specific_impl_fn.loc28_12.1: = specific_impl_function %impl.elem0.loc28_12.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.096) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.da7)] +// 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: %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.2dd605.6 +// 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: return // CHECK:STDOUT: } @@ -625,7 +625,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.e20f1f.3) [concrete = constants.%facet_value] +// 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: %.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() @@ -636,139 +636,139 @@ fn CallIndirect() { // CHECK:STDOUT: %T.loc5_14.1 => constants.%T.67d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%T.67d, constants.%Self.a33) {} +// CHECK:STDOUT: specific @A.WithSelf(constants.%T.67d, constants.%Self.49a) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.F(constants.%T.67d, constants.%Self.a33, constants.%U.4e7) { +// CHECK:STDOUT: specific @A.WithSelf.F(constants.%T.67d, constants.%Self.49a, constants.%U.4e7) { // CHECK:STDOUT: %U.loc6_9.1 => constants.%U.4e7 // CHECK:STDOUT: %ptr.loc6_22.1 => constants.%ptr.8f6 // CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.986 // CHECK:STDOUT: %T => constants.%T.67d -// CHECK:STDOUT: %A.type => constants.%A.type.5ea -// CHECK:STDOUT: %Self => constants.%Self.a33 -// CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.54d -// CHECK:STDOUT: %tuple => constants.%tuple.44b -// CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%Self.as_type.0a5 -// CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.67c -// CHECK:STDOUT: %.loc6_40.1 => constants.%.f77 -// CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.050 +// CHECK:STDOUT: %A.type => constants.%A.type.acd +// CHECK:STDOUT: %Self => constants.%Self.49a +// CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.76f +// CHECK:STDOUT: %tuple => constants.%tuple.0f4 +// CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%Self.as_type.763 +// CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.640 +// CHECK:STDOUT: %.loc6_40.1 => constants.%.f0d +// CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.0d7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%X) { // CHECK:STDOUT: %T.loc5_14.1 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %A.type => constants.%A.type.ef5 -// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.0c0 +// CHECK:STDOUT: %A.type => constants.%A.type.df0 +// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.891 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%Self.a33) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%Self.49a) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %A.type => constants.%A.type.ef5 -// CHECK:STDOUT: %Self => constants.%Self.a33 -// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.c12 -// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.612 -// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.3ce -// CHECK:STDOUT: %assoc0.loc6_41.2 => constants.%assoc0.2c2 +// CHECK:STDOUT: %A.type => constants.%A.type.df0 +// CHECK:STDOUT: %Self => constants.%Self.49a +// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.ad4 +// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.1e2 +// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.a54 +// CHECK:STDOUT: %assoc0.loc6_41.2 => constants.%assoc0.987 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.as.A.impl.F(constants.%U.67d) { // CHECK:STDOUT: %U.loc16_9.1 => constants.%U.67d // CHECK:STDOUT: %ptr.loc16_22.1 => constants.%ptr.e8f8f9.1 // CHECK:STDOUT: %pattern_type.loc16_19 => constants.%pattern_type.4f4b84.1 -// CHECK:STDOUT: %tuple => constants.%tuple.fdd -// CHECK:STDOUT: %tuple.type.loc16 => constants.%tuple.type.4b0 -// CHECK:STDOUT: %.loc16_37.1 => constants.%.de3 -// CHECK:STDOUT: %pattern_type.loc16_37 => constants.%pattern_type.145 +// CHECK:STDOUT: %tuple => constants.%tuple.f57 +// CHECK:STDOUT: %tuple.type.loc16 => constants.%tuple.type.316 +// CHECK:STDOUT: %.loc16_37.1 => constants.%.3c1 +// CHECK:STDOUT: %pattern_type.loc16_37 => constants.%pattern_type.178 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%A.facet.027) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%A.facet.c65) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %A.type => constants.%A.type.ef5 -// CHECK:STDOUT: %Self => constants.%A.facet.027 -// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.d17 -// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.a05 -// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.3ce -// CHECK:STDOUT: %assoc0.loc6_41.2 => constants.%assoc0.2c2 +// CHECK:STDOUT: %A.type => constants.%A.type.df0 +// CHECK:STDOUT: %Self => constants.%A.facet.c65 +// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.22c +// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.06a +// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.a54 +// CHECK:STDOUT: %assoc0.loc6_41.2 => constants.%assoc0.987 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.027, constants.%U.67d) { +// CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.c65, constants.%U.67d) { // CHECK:STDOUT: %U.loc6_9.1 => constants.%U.67d // CHECK:STDOUT: %ptr.loc6_22.1 => constants.%ptr.e8f8f9.1 // CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.4f4b84.1 // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %A.type => constants.%A.type.ef5 -// CHECK:STDOUT: %Self => constants.%A.facet.027 -// CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.d63 -// CHECK:STDOUT: %tuple => constants.%tuple.6cb +// CHECK:STDOUT: %A.type => constants.%A.type.df0 +// CHECK:STDOUT: %Self => constants.%A.facet.c65 +// CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.966 +// CHECK:STDOUT: %tuple => constants.%tuple.7f7 // CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%Y -// CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.4b0 -// CHECK:STDOUT: %.loc6_40.1 => constants.%.de3 -// CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.145 +// CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.316 +// CHECK:STDOUT: %.loc6_40.1 => constants.%.3c1 +// CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.178 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.as.A.impl.F(constants.%Z) { // CHECK:STDOUT: %U.loc16_9.1 => constants.%Z -// CHECK:STDOUT: %ptr.loc16_22.1 => constants.%ptr.1c4 -// CHECK:STDOUT: %pattern_type.loc16_19 => constants.%pattern_type.8b9 -// CHECK:STDOUT: %tuple => constants.%tuple.61d -// CHECK:STDOUT: %tuple.type.loc16 => constants.%tuple.type.cf4 -// CHECK:STDOUT: %.loc16_37.1 => constants.%.d9d -// CHECK:STDOUT: %pattern_type.loc16_37 => constants.%pattern_type.213 +// CHECK:STDOUT: %ptr.loc16_22.1 => constants.%ptr.415 +// CHECK:STDOUT: %pattern_type.loc16_19 => constants.%pattern_type.b4b +// CHECK:STDOUT: %tuple => constants.%tuple.8e4 +// CHECK:STDOUT: %tuple.type.loc16 => constants.%tuple.type.2cd +// CHECK:STDOUT: %.loc16_37.1 => constants.%.5bc +// CHECK:STDOUT: %pattern_type.loc16_37 => constants.%pattern_type.b33 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc16_19 => constants.%complete_type.6c5 -// CHECK:STDOUT: %require_complete.loc16_25 => constants.%complete_type.2ad -// CHECK:STDOUT: %tuple.type.loc17 => constants.%tuple.type.738 -// CHECK:STDOUT: %.loc17_21.1 => constants.%.d55 -// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.803 -// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.777 -// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.c51 -// CHECK:STDOUT: %.loc17_21.2 => constants.%.8ee -// CHECK:STDOUT: %impl.elem0.loc17_21.2 => constants.%ptr.as.Copy.impl.Op.f43 +// CHECK:STDOUT: %require_complete.loc16_19 => constants.%complete_type.458 +// CHECK:STDOUT: %require_complete.loc16_25 => constants.%complete_type.dec +// CHECK:STDOUT: %tuple.type.loc17 => constants.%tuple.type.2c5 +// CHECK:STDOUT: %.loc17_21.1 => constants.%.072 +// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.d9a +// CHECK:STDOUT: %Copy.facet => constants.%Copy.facet.302f +// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.b68 +// CHECK:STDOUT: %.loc17_21.2 => constants.%.6df +// CHECK:STDOUT: %impl.elem0.loc17_21.2 => constants.%ptr.as.Copy.impl.Op.ebe // CHECK:STDOUT: %specific_impl_fn.loc17_21.2 => constants.%ptr.as.Copy.impl.Op.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @CallGeneric(constants.%T.0c6) { -// CHECK:STDOUT: %T.loc26_17.1 => constants.%T.0c6 +// CHECK:STDOUT: specific @CallGeneric(constants.%T.5b7) { +// CHECK:STDOUT: %T.loc26_17.1 => constants.%T.5b7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%T.0c6) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%T.5b7) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %A.type => constants.%A.type.ef5 -// CHECK:STDOUT: %Self => constants.%T.0c6 -// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.5f2 -// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.923 -// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.3ce -// CHECK:STDOUT: %assoc0.loc6_41.2 => constants.%assoc0.2c2 +// CHECK:STDOUT: %A.type => constants.%A.type.df0 +// CHECK:STDOUT: %Self => constants.%T.5b7 +// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.91d +// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.3f4 +// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.a54 +// CHECK:STDOUT: %assoc0.loc6_41.2 => constants.%assoc0.987 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%A.facet.210) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%A.facet.318) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %A.type => constants.%A.type.ef5 -// CHECK:STDOUT: %Self => constants.%A.facet.210 -// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.b88 -// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.702 -// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.3ce -// CHECK:STDOUT: %assoc0.loc6_41.2 => constants.%assoc0.2c2 +// CHECK:STDOUT: %A.type => constants.%A.type.df0 +// CHECK:STDOUT: %Self => constants.%A.facet.318 +// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.497 +// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.a4d +// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.a54 +// CHECK:STDOUT: %assoc0.loc6_41.2 => constants.%assoc0.987 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.210, constants.%Z) { +// CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.318, constants.%Z) { // CHECK:STDOUT: %U.loc6_9.1 => constants.%Z -// CHECK:STDOUT: %ptr.loc6_22.1 => constants.%ptr.1c4 -// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.8b9 +// CHECK:STDOUT: %ptr.loc6_22.1 => constants.%ptr.415 +// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.b4b // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %A.type => constants.%A.type.ef5 -// CHECK:STDOUT: %Self => constants.%A.facet.210 -// CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.d63 -// CHECK:STDOUT: %tuple => constants.%tuple.e0a -// CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%T.as_type.586 -// CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.0d8 -// CHECK:STDOUT: %.loc6_40.1 => constants.%.cfc -// CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.b37 +// CHECK:STDOUT: %A.type => constants.%A.type.df0 +// CHECK:STDOUT: %Self => constants.%A.facet.318 +// CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.966 +// CHECK:STDOUT: %tuple => constants.%tuple.575 +// CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%T.as_type.0af +// CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.c2a +// CHECK:STDOUT: %.loc6_40.1 => constants.%.546 +// CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.0e9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%facet_value) { @@ -777,34 +777,34 @@ fn CallIndirect() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc28_4.2 => constants.%Y // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.impl_witness -// CHECK:STDOUT: %A.facet => constants.%A.facet.027 -// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.d17 -// CHECK:STDOUT: %.loc28_4.3 => constants.%.7ae +// CHECK:STDOUT: %A.facet => constants.%A.facet.c65 +// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.22c +// CHECK:STDOUT: %.loc28_4.3 => constants.%.7d5 // CHECK:STDOUT: %impl.elem0.loc28_4.2 => constants.%Y.as.A.impl.F // CHECK:STDOUT: %specific_impl_fn.loc28_4.2 => constants.%Y.as.A.impl.F.specific_fn -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.cf4 -// CHECK:STDOUT: %require_complete => constants.%complete_type.2ad -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e20f1f.5 -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.062 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.d44 -// CHECK:STDOUT: %.loc28_12.3 => constants.%.95e -// CHECK:STDOUT: %impl.elem0.loc28_12.2 => constants.%Destroy.Op.2dd605.5 -// CHECK:STDOUT: %specific_impl_fn.loc28_12.2 => constants.%Destroy.Op.2dd605.5 +// 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 => constants.%Destroy.facet.e95 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.964 +// CHECK:STDOUT: %.loc28_12.3 => 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: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.027, constants.%Z) { +// CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.c65, constants.%Z) { // CHECK:STDOUT: %U.loc6_9.1 => constants.%Z -// CHECK:STDOUT: %ptr.loc6_22.1 => constants.%ptr.1c4 -// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.8b9 +// CHECK:STDOUT: %ptr.loc6_22.1 => constants.%ptr.415 +// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.b4b // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %A.type => constants.%A.type.ef5 -// CHECK:STDOUT: %Self => constants.%A.facet.027 -// CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.d63 -// CHECK:STDOUT: %tuple => constants.%tuple.6ea +// CHECK:STDOUT: %A.type => constants.%A.type.df0 +// CHECK:STDOUT: %Self => constants.%A.facet.c65 +// CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.966 +// CHECK:STDOUT: %tuple => constants.%tuple.1b5 // CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%Y -// CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.cf4 -// CHECK:STDOUT: %.loc6_40.1 => constants.%.d9d -// CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.213 +// CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.2cd +// CHECK:STDOUT: %.loc6_40.1 => constants.%.5bc +// CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.b33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- generic_method_more_params.carbon @@ -814,23 +814,23 @@ fn CallIndirect() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %A.type.0af: type = generic_interface_type @A [concrete] +// CHECK:STDOUT: %A.type.55a: type = generic_interface_type @A [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %A.generic: %A.type.0af = struct_value () [concrete] -// CHECK:STDOUT: %A.type.5ea: type = facet_type <@A, @A(%T.67d)> [symbolic] -// CHECK:STDOUT: %Self.a33: %A.type.5ea = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %A.generic: %A.type.55a = struct_value () [concrete] +// CHECK:STDOUT: %A.type.acd: type = facet_type <@A, @A(%T.67d)> [symbolic] +// CHECK:STDOUT: %Self.49a: %A.type.acd = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %U.4e7: type = symbolic_binding U, 2 [symbolic] // CHECK:STDOUT: %pattern_type.62e: type = pattern_type %U.4e7 [symbolic] -// CHECK:STDOUT: %tuple.type.54d: type = tuple_type (type, %A.type.5ea, type) [symbolic] -// CHECK:STDOUT: %tuple.ca1: %tuple.type.54d = tuple_value (%T.67d, %Self.a33, %U.4e7) [symbolic] -// CHECK:STDOUT: %Self.as_type.0a5: type = facet_access_type %Self.a33 [symbolic] -// CHECK:STDOUT: %tuple.type.a60: type = tuple_type (%T.67d, %Self.as_type.0a5, %U.4e7) [symbolic] -// CHECK:STDOUT: %.ddd: Core.Form = init_form %tuple.type.a60 [symbolic] -// CHECK:STDOUT: %pattern_type.41c: type = pattern_type %tuple.type.a60 [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.type.f0d: type = fn_type @A.WithSelf.F, @A.WithSelf(%T.67d, %Self.a33) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.628: %A.WithSelf.F.type.f0d = struct_value () [symbolic] -// CHECK:STDOUT: %A.assoc_type.092: type = assoc_entity_type @A, @A(%T.67d) [symbolic] -// CHECK:STDOUT: %assoc0.7bb: %A.assoc_type.092 = assoc_entity element0, @A.WithSelf.%A.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %tuple.type.76f: type = tuple_type (type, %A.type.acd, type) [symbolic] +// CHECK:STDOUT: %tuple.55a: %tuple.type.76f = tuple_value (%T.67d, %Self.49a, %U.4e7) [symbolic] +// CHECK:STDOUT: %Self.as_type.763: type = facet_access_type %Self.49a [symbolic] +// CHECK:STDOUT: %tuple.type.d73: type = tuple_type (%T.67d, %Self.as_type.763, %U.4e7) [symbolic] +// CHECK:STDOUT: %.bc3: Core.Form = init_form %tuple.type.d73 [symbolic] +// CHECK:STDOUT: %pattern_type.d6c: type = pattern_type %tuple.type.d73 [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.type.08d: type = fn_type @A.WithSelf.F, @A.WithSelf(%T.67d, %Self.49a) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.3fa: %A.WithSelf.F.type.08d = struct_value () [symbolic] +// CHECK:STDOUT: %A.assoc_type.447: type = assoc_entity_type @A, @A(%T.67d) [symbolic] +// CHECK:STDOUT: %assoc0.d4b: %A.assoc_type.447 = assoc_entity element0, @A.WithSelf.%A.WithSelf.F.decl [symbolic] // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] @@ -843,14 +843,14 @@ fn CallIndirect() { // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %tuple.4b9: %tuple.type.24b = tuple_value (%V1, %V2) [symbolic] // CHECK:STDOUT: %tuple.type.a5e: type = tuple_type (%V1, %V2) [symbolic] -// CHECK:STDOUT: %A.type.e49: type = facet_type <@A, @A(%W)> [symbolic] -// CHECK:STDOUT: %A.impl_witness.6c9: = impl_witness @tuple.type.as.A.impl.%A.impl_witness_table, @tuple.type.as.A.impl(%V1, %V2, %W) [symbolic] -// CHECK:STDOUT: %Self.2ba: %A.type.e49 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.type.487: type = fn_type @A.WithSelf.F, @A.WithSelf(%W, %Self.a33) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.e2a: %A.WithSelf.F.type.487 = struct_value () [symbolic] -// CHECK:STDOUT: %A.assoc_type.edf: type = assoc_entity_type @A, @A(%W) [symbolic] -// CHECK:STDOUT: %assoc0.5cb: %A.assoc_type.edf = assoc_entity element0, @A.WithSelf.%A.WithSelf.F.decl [symbolic] -// CHECK:STDOUT: %require_complete.b42: = require_complete_type %A.type.e49 [symbolic] +// CHECK:STDOUT: %A.type.3ad: type = facet_type <@A, @A(%W)> [symbolic] +// CHECK:STDOUT: %A.impl_witness.756: = impl_witness @tuple.type.as.A.impl.%A.impl_witness_table, @tuple.type.as.A.impl(%V1, %V2, %W) [symbolic] +// CHECK:STDOUT: %Self.0f8: %A.type.3ad = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.type.64e: type = fn_type @A.WithSelf.F, @A.WithSelf(%W, %Self.49a) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.1fb: %A.WithSelf.F.type.64e = struct_value () [symbolic] +// CHECK:STDOUT: %A.assoc_type.250: type = assoc_entity_type @A, @A(%W) [symbolic] +// CHECK:STDOUT: %assoc0.6de: %A.assoc_type.250 = assoc_entity element0, @A.WithSelf.%A.WithSelf.F.decl [symbolic] +// CHECK:STDOUT: %require_complete.7b2: = require_complete_type %A.type.3ad [symbolic] // CHECK:STDOUT: %U.ce4: type = symbolic_binding U, 3 [symbolic] // CHECK:STDOUT: %pattern_type.e4a: type = pattern_type %U.ce4 [symbolic] // CHECK:STDOUT: %tuple.type.11f: type = tuple_type (type, %tuple.type.24b, type) [concrete] @@ -858,99 +858,99 @@ fn CallIndirect() { // CHECK:STDOUT: %tuple.type.897: type = tuple_type (%W, %tuple.type.a5e, %U.ce4) [symbolic] // CHECK:STDOUT: %.f8e: Core.Form = init_form %tuple.type.897 [symbolic] // CHECK:STDOUT: %pattern_type.5cc: type = pattern_type %tuple.type.897 [symbolic] -// CHECK:STDOUT: %tuple.type.as.A.impl.F.type.208: type = fn_type @tuple.type.as.A.impl.F, @tuple.type.as.A.impl(%V1, %V2, %W) [symbolic] -// CHECK:STDOUT: %tuple.type.as.A.impl.F.4ce: %tuple.type.as.A.impl.F.type.208 = struct_value () [symbolic] -// CHECK:STDOUT: %A.facet.2a9: %A.type.e49 = facet_value %tuple.type.a5e, (%A.impl_witness.6c9) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.type.234: type = fn_type @A.WithSelf.F, @A.WithSelf(%W, %A.facet.2a9) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.329: %A.WithSelf.F.type.234 = struct_value () [symbolic] -// CHECK:STDOUT: %tuple.type.ec9: type = tuple_type (type, %A.type.e49, type) [symbolic] -// CHECK:STDOUT: %tuple.db8: %tuple.type.ec9 = tuple_value (%W, %A.facet.2a9, %U.ce4) [symbolic] +// CHECK:STDOUT: %tuple.type.as.A.impl.F.type.44a: type = fn_type @tuple.type.as.A.impl.F, @tuple.type.as.A.impl(%V1, %V2, %W) [symbolic] +// CHECK:STDOUT: %tuple.type.as.A.impl.F.742: %tuple.type.as.A.impl.F.type.44a = struct_value () [symbolic] +// CHECK:STDOUT: %A.facet.ab0: %A.type.3ad = facet_value %tuple.type.a5e, (%A.impl_witness.756) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.type.5f0: type = fn_type @A.WithSelf.F, @A.WithSelf(%W, %A.facet.ab0) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.147: %A.WithSelf.F.type.5f0 = struct_value () [symbolic] +// CHECK:STDOUT: %tuple.type.a90: type = tuple_type (type, %A.type.3ad, type) [symbolic] +// CHECK:STDOUT: %tuple.059: %tuple.type.a90 = tuple_value (%W, %A.facet.ab0, %U.ce4) [symbolic] // CHECK:STDOUT: %require_complete.5a4: = require_complete_type %U.ce4 [symbolic] // CHECK:STDOUT: %require_complete.da0: = require_complete_type %tuple.type.897 [symbolic] -// CHECK:STDOUT: %tuple.type.as.A.impl.F.specific_fn.e1b: = specific_function %tuple.type.as.A.impl.F.4ce, @tuple.type.as.A.impl.F(%V1, %V2, %W, %U.ce4) [symbolic] +// CHECK:STDOUT: %tuple.type.as.A.impl.F.specific_fn.37b: = specific_function %tuple.type.as.A.impl.F.742, @tuple.type.as.A.impl.F(%V1, %V2, %W, %U.ce4) [symbolic] // CHECK:STDOUT: %Call.type: type = fn_type @Call [concrete] // CHECK:STDOUT: %Call: %Call.type = struct_value () [concrete] -// CHECK:STDOUT: %tuple.334: %tuple.type.24b = tuple_value (%Y1, %Y2) [concrete] -// CHECK:STDOUT: %tuple.type.a7c: type = tuple_type (%Y1, %Y2) [concrete] -// CHECK:STDOUT: %A.type.ef5: type = facet_type <@A, @A(%X)> [concrete] -// CHECK:STDOUT: %A.impl_witness.755: = impl_witness @tuple.type.as.A.impl.%A.impl_witness_table, @tuple.type.as.A.impl(%Y1, %Y2, %X) [concrete] -// CHECK:STDOUT: %Self.0c0: %A.type.ef5 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.type.c12: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %Self.a33) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.612: %A.WithSelf.F.type.c12 = struct_value () [symbolic] -// CHECK:STDOUT: %A.assoc_type.3ce: type = assoc_entity_type @A, @A(%X) [concrete] -// CHECK:STDOUT: %assoc0.2c2: %A.assoc_type.3ce = assoc_entity element0, @A.WithSelf.%A.WithSelf.F.decl [concrete] -// CHECK:STDOUT: %complete_type.740: = complete_type_witness %A.type.ef5 [concrete] -// CHECK:STDOUT: %tuple.type.as.A.impl.F.type.d8e: type = fn_type @tuple.type.as.A.impl.F, @tuple.type.as.A.impl(%Y1, %Y2, %X) [concrete] -// CHECK:STDOUT: %tuple.type.as.A.impl.F.677: %tuple.type.as.A.impl.F.type.d8e = struct_value () [concrete] -// CHECK:STDOUT: %A.facet.d43: %A.type.ef5 = facet_value %tuple.type.a7c, (%A.impl_witness.755) [concrete] -// CHECK:STDOUT: %A.WithSelf.F.type.4b7: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %A.facet.d43) [concrete] -// CHECK:STDOUT: %A.WithSelf.F.6c3: %A.WithSelf.F.type.4b7 = struct_value () [concrete] -// CHECK:STDOUT: %.0d1: type = fn_type_with_self_type %A.WithSelf.F.type.4b7, %A.facet.d43 [concrete] +// CHECK:STDOUT: %tuple.8db: %tuple.type.24b = tuple_value (%Y1, %Y2) [concrete] +// CHECK:STDOUT: %tuple.type.59f: type = tuple_type (%Y1, %Y2) [concrete] +// CHECK:STDOUT: %A.type.df0: type = facet_type <@A, @A(%X)> [concrete] +// CHECK:STDOUT: %A.impl_witness.6b7: = impl_witness @tuple.type.as.A.impl.%A.impl_witness_table, @tuple.type.as.A.impl(%Y1, %Y2, %X) [concrete] +// CHECK:STDOUT: %Self.891: %A.type.df0 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.type.ad4: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %Self.49a) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.1e2: %A.WithSelf.F.type.ad4 = struct_value () [symbolic] +// CHECK:STDOUT: %A.assoc_type.a54: type = assoc_entity_type @A, @A(%X) [concrete] +// CHECK:STDOUT: %assoc0.987: %A.assoc_type.a54 = assoc_entity element0, @A.WithSelf.%A.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %complete_type.e33: = complete_type_witness %A.type.df0 [concrete] +// CHECK:STDOUT: %tuple.type.as.A.impl.F.type.745: type = fn_type @tuple.type.as.A.impl.F, @tuple.type.as.A.impl(%Y1, %Y2, %X) [concrete] +// CHECK:STDOUT: %tuple.type.as.A.impl.F.749: %tuple.type.as.A.impl.F.type.745 = struct_value () [concrete] +// CHECK:STDOUT: %A.facet.682: %A.type.df0 = facet_value %tuple.type.59f, (%A.impl_witness.6b7) [concrete] +// CHECK:STDOUT: %A.WithSelf.F.type.243: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %A.facet.682) [concrete] +// CHECK:STDOUT: %A.WithSelf.F.5b5: %A.WithSelf.F.type.243 = struct_value () [concrete] +// CHECK:STDOUT: %.d9b: type = fn_type_with_self_type %A.WithSelf.F.type.243, %A.facet.682 [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.f0a: type = pattern_type %Z [concrete] -// CHECK:STDOUT: %tuple.b30: %tuple.type.11f = tuple_value (%X, %tuple.334, %Z) [concrete] -// CHECK:STDOUT: %tuple.type.df6: type = tuple_type (%X, %tuple.type.a7c, %Z) [concrete] -// CHECK:STDOUT: %.ec0: Core.Form = init_form %tuple.type.df6 [concrete] -// CHECK:STDOUT: %pattern_type.cc8: type = pattern_type %tuple.type.df6 [concrete] -// CHECK:STDOUT: %tuple.type.as.A.impl.F.specific_fn.b53: = specific_function %tuple.type.as.A.impl.F.677, @tuple.type.as.A.impl.F(%Y1, %Y2, %X, %Z) [concrete] +// CHECK:STDOUT: %pattern_type.34e: type = pattern_type %Z [concrete] +// CHECK:STDOUT: %tuple.1a1: %tuple.type.11f = tuple_value (%X, %tuple.8db, %Z) [concrete] +// CHECK:STDOUT: %tuple.type.d40: type = tuple_type (%X, %tuple.type.59f, %Z) [concrete] +// CHECK:STDOUT: %.1a9: Core.Form = init_form %tuple.type.d40 [concrete] +// CHECK:STDOUT: %pattern_type.6a8: type = pattern_type %tuple.type.d40 [concrete] +// CHECK:STDOUT: %tuple.type.as.A.impl.F.specific_fn.981: = specific_function %tuple.type.as.A.impl.F.749, @tuple.type.as.A.impl.F(%Y1, %Y2, %X, %Z) [concrete] // CHECK:STDOUT: %Z.val: %Z = struct_value () [concrete] -// CHECK:STDOUT: %.224: ref %Z = temporary invalid, %Z.val [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.790b3b.5: type = fn_type @Destroy.Op.loc24_39.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.5: %Destroy.Op.type.790b3b.5 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.5: = custom_witness (%Destroy.Op.2dd605.5), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.6: type = fn_type @Destroy.Op.loc24_39.6 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.7: type = fn_type @Destroy.Op.loc24_39.7 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.7: %Destroy.Op.type.790b3b.7 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.7: = custom_witness (%Destroy.Op.2dd605.7), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.195: %Destroy.type = facet_value %tuple.type.df6, (%custom_witness.e20f1f.7) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.acf: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.195) [concrete] -// CHECK:STDOUT: %.cdc: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.acf, %Destroy.facet.195 [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.224, %Destroy.Op.2dd605.6 [concrete] -// CHECK:STDOUT: %BitAndWith.type.fd8: type = generic_interface_type @BitAndWith [concrete] -// CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.fd8 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.2af: type = facet_type <@BitAndWith, @BitAndWith(type)> [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: %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] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.2af = facet_value type, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.5d1: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %.9ee: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.5d1, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %A.type.ef5, %type.as.BitAndWith.impl.Op [concrete] +// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %A.type.df0, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %facet_type: type = facet_type <@A, @A(%X) & @Destroy> [concrete] -// CHECK:STDOUT: %pattern_type.e1b: type = pattern_type %facet_type [concrete] -// CHECK:STDOUT: %T.0c6: %facet_type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.871: type = pattern_type %facet_type [concrete] +// CHECK:STDOUT: %T.5b7: %facet_type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %CallGeneric.type: type = fn_type @CallGeneric [concrete] // CHECK:STDOUT: %CallGeneric: %CallGeneric.type = struct_value () [concrete] -// CHECK:STDOUT: %A.WithSelf.F.type.5f2: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %T.0c6) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.923: %A.WithSelf.F.type.5f2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.0c6 [symbolic] -// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.0c6, @A, @A(%X) [symbolic] -// CHECK:STDOUT: %A.facet.210: %A.type.ef5 = facet_value %T.as_type, (%A.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.type.b88: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %A.facet.210) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.702: %A.WithSelf.F.type.b88 = struct_value () [symbolic] -// CHECK:STDOUT: %.b59: type = fn_type_with_self_type %A.WithSelf.F.type.b88, %A.facet.210 [symbolic] -// CHECK:STDOUT: %impl.elem0.65b: %.b59 = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %tuple.type.d63: type = tuple_type (type, %A.type.ef5, type) [concrete] -// CHECK:STDOUT: %tuple.4d5: %tuple.type.d63 = tuple_value (%X, %A.facet.210, %Z) [symbolic] -// CHECK:STDOUT: %tuple.type.5f8: type = tuple_type (%X, %T.as_type, %Z) [symbolic] -// CHECK:STDOUT: %.bce: Core.Form = init_form %tuple.type.5f8 [symbolic] -// CHECK:STDOUT: %pattern_type.bb6: type = pattern_type %tuple.type.5f8 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.846: = specific_impl_function %impl.elem0.65b, @A.WithSelf.F(%X, %A.facet.210, %Z) [symbolic] -// CHECK:STDOUT: %require_complete.422: = require_complete_type %tuple.type.5f8 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.9d8: = lookup_impl_witness %tuple.type.5f8, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.10f: %Destroy.type = facet_value %tuple.type.5f8, (%Destroy.lookup_impl_witness.9d8) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.2b3: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.10f) [symbolic] -// CHECK:STDOUT: %.446: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.2b3, %Destroy.facet.10f [symbolic] -// CHECK:STDOUT: %impl.elem0.14b: %.446 = impl_witness_access %Destroy.lookup_impl_witness.9d8, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.2ca: = specific_impl_function %impl.elem0.14b, @Destroy.WithSelf.Op(%Destroy.facet.10f) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.type.91d: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %T.5b7) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.3f4: %A.WithSelf.F.type.91d = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.5b7 [symbolic] +// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.5b7, @A, @A(%X) [symbolic] +// CHECK:STDOUT: %A.facet.318: %A.type.df0 = facet_value %T.as_type, (%A.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.type.497: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %A.facet.318) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.a4d: %A.WithSelf.F.type.497 = struct_value () [symbolic] +// CHECK:STDOUT: %.151: type = fn_type_with_self_type %A.WithSelf.F.type.497, %A.facet.318 [symbolic] +// CHECK:STDOUT: %impl.elem0.1a3: %.151 = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %tuple.type.966: type = tuple_type (type, %A.type.df0, type) [concrete] +// CHECK:STDOUT: %tuple.b58: %tuple.type.966 = tuple_value (%X, %A.facet.318, %Z) [symbolic] +// CHECK:STDOUT: %tuple.type.036: type = tuple_type (%X, %T.as_type, %Z) [symbolic] +// CHECK:STDOUT: %.772: Core.Form = init_form %tuple.type.036 [symbolic] +// CHECK:STDOUT: %pattern_type.8f9: type = pattern_type %tuple.type.036 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.74d: = specific_impl_function %impl.elem0.1a3, @A.WithSelf.F(%X, %A.facet.318, %Z) [symbolic] +// 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: %.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: %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.a7c, (%A.impl_witness.755, %custom_witness.e20f1f.5) [concrete] +// CHECK:STDOUT: %facet_value: %facet_type = facet_value %tuple.type.59f, (%A.impl_witness.6b7, %custom_witness.df9cc1.5) [concrete] // CHECK:STDOUT: %CallGeneric.specific_fn: = specific_function %CallGeneric, @CallGeneric(%facet_value) [concrete] -// CHECK:STDOUT: %complete_type.466: = complete_type_witness %tuple.type.df6 [concrete] -// CHECK:STDOUT: %tuple.aac: %tuple.type.d63 = tuple_value (%X, %A.facet.d43, %Z) [concrete] +// CHECK:STDOUT: %complete_type.8f6: = complete_type_witness %tuple.type.d40 [concrete] +// CHECK:STDOUT: %tuple.92c: %tuple.type.966 = tuple_value (%X, %A.facet.682, %Z) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -961,9 +961,9 @@ fn CallIndirect() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.fd8 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @type.as.BitAndWith.impl [concrete] +// CHECK:STDOUT: %Core.BitAndWith: %BitAndWith.type.a06 = import_ref Core//prelude/parts/as, BitAndWith, loaded [concrete = constants.%BitAndWith.generic] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @type.as.BitAndWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -979,7 +979,7 @@ fn CallIndirect() { // CHECK:STDOUT: .CallIndirect = %CallIndirect.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %A.decl: %A.type.0af = interface_decl @A [concrete = constants.%A.generic] { +// CHECK:STDOUT: %A.decl: %A.type.55a = interface_decl @A [concrete = constants.%A.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_17.1: type = splice_block %.loc5_17.2 [concrete = type] { @@ -1001,9 +1001,9 @@ fn CallIndirect() { // CHECK:STDOUT: %V2.ref: type = name_ref V2, %V2.loc14_27.2 [symbolic = %V2.loc14_27.1 (constants.%V2)] // CHECK:STDOUT: %.loc14_53.1: %tuple.type.24b = tuple_literal (%V1.ref, %V2.ref) [symbolic = %tuple (constants.%tuple.4b9)] // CHECK:STDOUT: %.loc14_53.2: type = converted %.loc14_53.1, constants.%tuple.type.a5e [symbolic = %tuple.type (constants.%tuple.type.a5e)] -// CHECK:STDOUT: %A.ref: %A.type.0af = name_ref A, file.%A.decl [concrete = constants.%A.generic] +// CHECK:STDOUT: %A.ref: %A.type.55a = name_ref A, file.%A.decl [concrete = constants.%A.generic] // CHECK:STDOUT: %W.ref: type = name_ref W, %W.loc14_37.2 [symbolic = %W.loc14_37.1 (constants.%W)] -// CHECK:STDOUT: %A.type.loc14_61.2: type = facet_type <@A, @A(constants.%W)> [symbolic = %A.type.loc14_61.1 (constants.%A.type.e49)] +// CHECK:STDOUT: %A.type.loc14_61.2: type = facet_type <@A, @A(constants.%W)> [symbolic = %A.type.loc14_61.1 (constants.%A.type.3ad)] // CHECK:STDOUT: %.loc14_19.1: type = splice_block %.loc14_19.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc14_16: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc14_19.2: type = type_literal type [concrete = type] @@ -1022,22 +1022,22 @@ fn CallIndirect() { // CHECK:STDOUT: } // CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] {} {} // CHECK:STDOUT: %CallGeneric.decl: %CallGeneric.type = fn_decl @CallGeneric [concrete = constants.%CallGeneric] { -// CHECK:STDOUT: %T.patt: %pattern_type.e1b = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.871 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc27_25.1: type = splice_block %.loc27_25.3 [concrete = constants.%facet_type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %A.ref: %A.type.0af = name_ref A, file.%A.decl [concrete = constants.%A.generic] +// CHECK:STDOUT: %A.ref: %A.type.55a = name_ref A, file.%A.decl [concrete = constants.%A.generic] // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(constants.%X)> [concrete = constants.%A.type.ef5] +// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(constants.%X)> [concrete = constants.%A.type.df0] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Destroy.ref: type = name_ref Destroy, imports.%Core.Destroy [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %impl.elem0.loc27: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc27: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method.loc27: = bound_method %A.type, %impl.elem0.loc27 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method.loc27(%A.type, %Destroy.ref) [concrete = constants.%facet_type] // CHECK:STDOUT: %.loc27_25.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type] // CHECK:STDOUT: %.loc27_25.3: type = converted %type.as.BitAndWith.impl.Op.call, %.loc27_25.2 [concrete = constants.%facet_type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc27_17.2: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc27_17.1 (constants.%T.0c6)] +// CHECK:STDOUT: %T.loc27_17.2: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc27_17.1 (constants.%T.5b7)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallIndirect.decl: %CallIndirect.type = fn_decl @CallIndirect [concrete = constants.%CallIndirect] {} {} // CHECK:STDOUT: } @@ -1046,30 +1046,30 @@ fn CallIndirect() { // CHECK:STDOUT: %T.loc5_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T.loc5_14.1)> [symbolic = %A.type (constants.%A.type.5ea)] -// CHECK:STDOUT: %Self.loc5_23.2: @A.%A.type (%A.type.5ea) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.a33)] +// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T.loc5_14.1)> [symbolic = %A.type (constants.%A.type.acd)] +// CHECK:STDOUT: %Self.loc5_23.2: @A.%A.type (%A.type.acd) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.49a)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc5_23.1: @A.%A.type (%A.type.5ea) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.a33)] +// CHECK:STDOUT: %Self.loc5_23.1: @A.%A.type (%A.type.acd) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.49a)] // CHECK:STDOUT: %A.WithSelf.decl = interface_with_self_decl @A [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %A.WithSelf.F.decl: @A.WithSelf.%A.WithSelf.F.type (%A.WithSelf.F.type.f0d) = fn_decl @A.WithSelf.F [symbolic = @A.WithSelf.%A.WithSelf.F (constants.%A.WithSelf.F.628)] { +// CHECK:STDOUT: %A.WithSelf.F.decl: @A.WithSelf.%A.WithSelf.F.type (%A.WithSelf.F.type.08d) = fn_decl @A.WithSelf.F [symbolic = @A.WithSelf.%A.WithSelf.F (constants.%A.WithSelf.F.3fa)] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 2 [concrete] // CHECK:STDOUT: %u.param_patt: @A.WithSelf.F.%pattern_type.loc6_19 (%pattern_type.62e) = value_param_pattern [concrete] // CHECK:STDOUT: %u.patt: @A.WithSelf.F.%pattern_type.loc6_19 (%pattern_type.62e) = at_binding_pattern u, %u.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @A.WithSelf.F.%pattern_type.loc6_38 (%pattern_type.41c) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @A.WithSelf.F.%pattern_type.loc6_38 (%pattern_type.41c) = return_slot_pattern %return.param_patt, %.loc6_38.4 [concrete] +// CHECK:STDOUT: %return.param_patt: @A.WithSelf.F.%pattern_type.loc6_38 (%pattern_type.d6c) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @A.WithSelf.F.%pattern_type.loc6_38 (%pattern_type.d6c) = return_slot_pattern %return.param_patt, %.loc6_38.4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc5_14.2 [symbolic = %T (constants.%T.67d)] -// CHECK:STDOUT: %.loc6_31: @A.WithSelf.F.%A.type (%A.type.5ea) = specific_constant @A.%Self.loc5_23.1, @A(constants.%T.67d) [symbolic = %Self (constants.%Self.a33)] -// CHECK:STDOUT: %Self.ref: @A.WithSelf.F.%A.type (%A.type.5ea) = name_ref Self, %.loc6_31 [symbolic = %Self (constants.%Self.a33)] +// CHECK:STDOUT: %.loc6_31: @A.WithSelf.F.%A.type (%A.type.acd) = specific_constant @A.%Self.loc5_23.1, @A(constants.%T.67d) [symbolic = %Self (constants.%Self.49a)] +// CHECK:STDOUT: %Self.ref: @A.WithSelf.F.%A.type (%A.type.acd) = name_ref Self, %.loc6_31 [symbolic = %Self (constants.%Self.49a)] // CHECK:STDOUT: %U.ref.loc6_37: type = name_ref U, %U.loc6_9.2 [symbolic = %U.loc6_9.1 (constants.%U.4e7)] -// CHECK:STDOUT: %.loc6_38.2: @A.WithSelf.F.%tuple.type.loc6_38.1 (%tuple.type.54d) = tuple_literal (%T.ref, %Self.ref, %U.ref.loc6_37) [symbolic = %tuple (constants.%tuple.ca1)] -// CHECK:STDOUT: %Self.as_type.loc6_38.2: type = facet_access_type constants.%Self.a33 [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.0a5)] -// CHECK:STDOUT: %.loc6_38.3: type = converted constants.%Self.a33, %Self.as_type.loc6_38.2 [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.0a5)] -// CHECK:STDOUT: %.loc6_38.4: type = converted %.loc6_38.2, constants.%tuple.type.a60 [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.a60)] -// CHECK:STDOUT: %.loc6_38.5: Core.Form = init_form %.loc6_38.4 [symbolic = %.loc6_38.1 (constants.%.ddd)] +// CHECK:STDOUT: %.loc6_38.2: @A.WithSelf.F.%tuple.type.loc6_38.1 (%tuple.type.76f) = tuple_literal (%T.ref, %Self.ref, %U.ref.loc6_37) [symbolic = %tuple (constants.%tuple.55a)] +// CHECK:STDOUT: %Self.as_type.loc6_38.2: type = facet_access_type constants.%Self.49a [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.763)] +// CHECK:STDOUT: %.loc6_38.3: type = converted constants.%Self.49a, %Self.as_type.loc6_38.2 [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.763)] +// CHECK:STDOUT: %.loc6_38.4: type = converted %.loc6_38.2, constants.%tuple.type.d73 [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.d73)] +// CHECK:STDOUT: %.loc6_38.5: Core.Form = init_form %.loc6_38.4 [symbolic = %.loc6_38.1 (constants.%.bc3)] // CHECK:STDOUT: %.loc6_12.1: type = splice_block %.loc6_12.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc6_12.2: type = type_literal type [concrete = type] @@ -1078,10 +1078,10 @@ fn CallIndirect() { // CHECK:STDOUT: %u.param: @A.WithSelf.F.%U.loc6_9.1 (%U.4e7) = value_param call_param0 // CHECK:STDOUT: %U.ref.loc6_21: type = name_ref U, %U.loc6_9.2 [symbolic = %U.loc6_9.1 (constants.%U.4e7)] // CHECK:STDOUT: %u: @A.WithSelf.F.%U.loc6_9.1 (%U.4e7) = value_binding u, %u.param -// CHECK:STDOUT: %return.param: ref @A.WithSelf.F.%tuple.type.loc6_38.2 (%tuple.type.a60) = out_param call_param1 -// CHECK:STDOUT: %return: ref @A.WithSelf.F.%tuple.type.loc6_38.2 (%tuple.type.a60) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @A.WithSelf.F.%tuple.type.loc6_38.2 (%tuple.type.d73) = out_param call_param1 +// CHECK:STDOUT: %return: ref @A.WithSelf.F.%tuple.type.loc6_38.2 (%tuple.type.d73) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %assoc0.loc6_39.1: @A.WithSelf.%A.assoc_type (%A.assoc_type.092) = assoc_entity element0, %A.WithSelf.F.decl [symbolic = %assoc0.loc6_39.2 (constants.%assoc0.7bb)] +// CHECK:STDOUT: %assoc0.loc6_39.1: @A.WithSelf.%A.assoc_type (%A.assoc_type.447) = assoc_entity element0, %A.WithSelf.F.decl [symbolic = %assoc0.loc6_39.2 (constants.%assoc0.d4b)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc5_23.1 @@ -1103,16 +1103,16 @@ fn CallIndirect() { // CHECK:STDOUT: %W.loc14_37.1: type = symbolic_binding W, 2 [symbolic = %W.loc14_37.1 (constants.%W)] // CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%V1.loc14_16.1, %V2.loc14_27.1) [symbolic = %tuple (constants.%tuple.4b9)] // CHECK:STDOUT: %tuple.type: type = tuple_type (%V1.loc14_16.1, %V2.loc14_27.1) [symbolic = %tuple.type (constants.%tuple.type.a5e)] -// CHECK:STDOUT: %A.type.loc14_61.1: type = facet_type <@A, @A(%W.loc14_37.1)> [symbolic = %A.type.loc14_61.1 (constants.%A.type.e49)] -// CHECK:STDOUT: %A.impl_witness.loc14_63.2: = impl_witness %A.impl_witness_table, @tuple.type.as.A.impl(%V1.loc14_16.1, %V2.loc14_27.1, %W.loc14_37.1) [symbolic = %A.impl_witness.loc14_63.2 (constants.%A.impl_witness.6c9)] +// CHECK:STDOUT: %A.type.loc14_61.1: type = facet_type <@A, @A(%W.loc14_37.1)> [symbolic = %A.type.loc14_61.1 (constants.%A.type.3ad)] +// CHECK:STDOUT: %A.impl_witness.loc14_63.2: = impl_witness %A.impl_witness_table, @tuple.type.as.A.impl(%V1.loc14_16.1, %V2.loc14_27.1, %W.loc14_37.1) [symbolic = %A.impl_witness.loc14_63.2 (constants.%A.impl_witness.756)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %A.type.loc14_61.1 [symbolic = %require_complete (constants.%require_complete.b42)] -// CHECK:STDOUT: %tuple.type.as.A.impl.F.type: type = fn_type @tuple.type.as.A.impl.F, @tuple.type.as.A.impl(%V1.loc14_16.1, %V2.loc14_27.1, %W.loc14_37.1) [symbolic = %tuple.type.as.A.impl.F.type (constants.%tuple.type.as.A.impl.F.type.208)] -// CHECK:STDOUT: %tuple.type.as.A.impl.F: @tuple.type.as.A.impl.%tuple.type.as.A.impl.F.type (%tuple.type.as.A.impl.F.type.208) = struct_value () [symbolic = %tuple.type.as.A.impl.F (constants.%tuple.type.as.A.impl.F.4ce)] +// CHECK:STDOUT: %require_complete: = require_complete_type %A.type.loc14_61.1 [symbolic = %require_complete (constants.%require_complete.7b2)] +// CHECK:STDOUT: %tuple.type.as.A.impl.F.type: type = fn_type @tuple.type.as.A.impl.F, @tuple.type.as.A.impl(%V1.loc14_16.1, %V2.loc14_27.1, %W.loc14_37.1) [symbolic = %tuple.type.as.A.impl.F.type (constants.%tuple.type.as.A.impl.F.type.44a)] +// CHECK:STDOUT: %tuple.type.as.A.impl.F: @tuple.type.as.A.impl.%tuple.type.as.A.impl.F.type (%tuple.type.as.A.impl.F.type.44a) = struct_value () [symbolic = %tuple.type.as.A.impl.F (constants.%tuple.type.as.A.impl.F.742)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc14_53.2 as %A.type.loc14_61.2 { -// CHECK:STDOUT: %tuple.type.as.A.impl.F.decl: @tuple.type.as.A.impl.%tuple.type.as.A.impl.F.type (%tuple.type.as.A.impl.F.type.208) = fn_decl @tuple.type.as.A.impl.F [symbolic = @tuple.type.as.A.impl.%tuple.type.as.A.impl.F (constants.%tuple.type.as.A.impl.F.4ce)] { +// CHECK:STDOUT: %tuple.type.as.A.impl.F.decl: @tuple.type.as.A.impl.%tuple.type.as.A.impl.F.type (%tuple.type.as.A.impl.F.type.44a) = fn_decl @tuple.type.as.A.impl.F [symbolic = @tuple.type.as.A.impl.%tuple.type.as.A.impl.F (constants.%tuple.type.as.A.impl.F.742)] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 3 [concrete] // CHECK:STDOUT: %u.param_patt: @tuple.type.as.A.impl.F.%pattern_type.loc17_19 (%pattern_type.e4a) = value_param_pattern [concrete] // CHECK:STDOUT: %u.patt: @tuple.type.as.A.impl.F.%pattern_type.loc17_19 (%pattern_type.e4a) = at_binding_pattern u, %u.param_patt [concrete] @@ -1140,7 +1140,7 @@ fn CallIndirect() { // CHECK:STDOUT: %return: ref @tuple.type.as.A.impl.F.%tuple.type.loc17_42.2 (%tuple.type.897) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %A.impl_witness_table = impl_witness_table (%tuple.type.as.A.impl.F.decl), @tuple.type.as.A.impl [concrete] -// CHECK:STDOUT: %A.impl_witness.loc14_63.1: = impl_witness %A.impl_witness_table, @tuple.type.as.A.impl(constants.%V1, constants.%V2, constants.%W) [symbolic = %A.impl_witness.loc14_63.2 (constants.%A.impl_witness.6c9)] +// CHECK:STDOUT: %A.impl_witness.loc14_63.1: = impl_witness %A.impl_witness_table, @tuple.type.as.A.impl(constants.%V1, constants.%V2, constants.%W) [symbolic = %A.impl_witness.loc14_63.2 (constants.%A.impl_witness.756)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .W = @@ -1184,20 +1184,20 @@ fn CallIndirect() { // CHECK:STDOUT: .Self = constants.%Z // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @A.WithSelf.F(@A.%T.loc5_14.2: type, @A.%Self.loc5_23.1: @A.%A.type (%A.type.5ea), %U.loc6_9.2: type) { +// CHECK:STDOUT: generic fn @A.WithSelf.F(@A.%T.loc5_14.2: type, @A.%Self.loc5_23.1: @A.%A.type (%A.type.acd), %U.loc6_9.2: type) { // CHECK:STDOUT: %U.loc6_9.1: type = symbolic_binding U, 2 [symbolic = %U.loc6_9.1 (constants.%U.4e7)] // CHECK:STDOUT: %pattern_type.loc6_19: type = pattern_type %U.loc6_9.1 [symbolic = %pattern_type.loc6_19 (constants.%pattern_type.62e)] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T.67d)] -// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T)> [symbolic = %A.type (constants.%A.type.5ea)] -// CHECK:STDOUT: %Self: @A.WithSelf.F.%A.type (%A.type.5ea) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a33)] -// CHECK:STDOUT: %tuple.type.loc6_38.1: type = tuple_type (type, %A.type, type) [symbolic = %tuple.type.loc6_38.1 (constants.%tuple.type.54d)] -// CHECK:STDOUT: %tuple: @A.WithSelf.F.%tuple.type.loc6_38.1 (%tuple.type.54d) = tuple_value (%T, %Self, %U.loc6_9.1) [symbolic = %tuple (constants.%tuple.ca1)] -// CHECK:STDOUT: %Self.as_type.loc6_38.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.0a5)] -// CHECK:STDOUT: %tuple.type.loc6_38.2: type = tuple_type (%T, %Self.as_type.loc6_38.1, %U.loc6_9.1) [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.a60)] -// CHECK:STDOUT: %.loc6_38.1: Core.Form = init_form %tuple.type.loc6_38.2 [symbolic = %.loc6_38.1 (constants.%.ddd)] -// CHECK:STDOUT: %pattern_type.loc6_38: type = pattern_type %tuple.type.loc6_38.2 [symbolic = %pattern_type.loc6_38 (constants.%pattern_type.41c)] +// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T)> [symbolic = %A.type (constants.%A.type.acd)] +// CHECK:STDOUT: %Self: @A.WithSelf.F.%A.type (%A.type.acd) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.49a)] +// CHECK:STDOUT: %tuple.type.loc6_38.1: type = tuple_type (type, %A.type, type) [symbolic = %tuple.type.loc6_38.1 (constants.%tuple.type.76f)] +// CHECK:STDOUT: %tuple: @A.WithSelf.F.%tuple.type.loc6_38.1 (%tuple.type.76f) = tuple_value (%T, %Self, %U.loc6_9.1) [symbolic = %tuple (constants.%tuple.55a)] +// CHECK:STDOUT: %Self.as_type.loc6_38.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.763)] +// CHECK:STDOUT: %tuple.type.loc6_38.2: type = tuple_type (%T, %Self.as_type.loc6_38.1, %U.loc6_9.1) [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.d73)] +// CHECK:STDOUT: %.loc6_38.1: Core.Form = init_form %tuple.type.loc6_38.2 [symbolic = %.loc6_38.1 (constants.%.bc3)] +// CHECK:STDOUT: %pattern_type.loc6_38: type = pattern_type %tuple.type.loc6_38.2 [symbolic = %pattern_type.loc6_38 (constants.%pattern_type.d6c)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%u.param: @A.WithSelf.F.%U.loc6_9.1 (%U.4e7)) -> out %return.param: @A.WithSelf.F.%tuple.type.loc6_38.2 (%tuple.type.a60); +// CHECK:STDOUT: fn(%u.param: @A.WithSelf.F.%U.loc6_9.1 (%U.4e7)) -> out %return.param: @A.WithSelf.F.%tuple.type.loc6_38.2 (%tuple.type.d73); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @tuple.type.as.A.impl.F(@tuple.type.as.A.impl.%V1.loc14_16.2: type, @tuple.type.as.A.impl.%V2.loc14_27.2: type, @tuple.type.as.A.impl.%W.loc14_37.2: type, %U.loc17_9.2: type) { @@ -1216,17 +1216,17 @@ fn CallIndirect() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc17_19: = require_complete_type %U.loc17_9.1 [symbolic = %require_complete.loc17_19 (constants.%require_complete.5a4)] // CHECK:STDOUT: %require_complete.loc17_24: = require_complete_type %tuple.type.loc17_42.2 [symbolic = %require_complete.loc17_24 (constants.%require_complete.da0)] -// CHECK:STDOUT: %tuple.type.as.A.impl.F.type: type = fn_type @tuple.type.as.A.impl.F, @tuple.type.as.A.impl(%V1, %V2, %W) [symbolic = %tuple.type.as.A.impl.F.type (constants.%tuple.type.as.A.impl.F.type.208)] -// CHECK:STDOUT: %tuple.type.as.A.impl.F: @tuple.type.as.A.impl.F.%tuple.type.as.A.impl.F.type (%tuple.type.as.A.impl.F.type.208) = struct_value () [symbolic = %tuple.type.as.A.impl.F (constants.%tuple.type.as.A.impl.F.4ce)] -// CHECK:STDOUT: %tuple.type.as.A.impl.F.specific_fn.loc18_12.2: = specific_function %tuple.type.as.A.impl.F, @tuple.type.as.A.impl.F(%V1, %V2, %W, %U.loc17_9.1) [symbolic = %tuple.type.as.A.impl.F.specific_fn.loc18_12.2 (constants.%tuple.type.as.A.impl.F.specific_fn.e1b)] +// CHECK:STDOUT: %tuple.type.as.A.impl.F.type: type = fn_type @tuple.type.as.A.impl.F, @tuple.type.as.A.impl(%V1, %V2, %W) [symbolic = %tuple.type.as.A.impl.F.type (constants.%tuple.type.as.A.impl.F.type.44a)] +// CHECK:STDOUT: %tuple.type.as.A.impl.F: @tuple.type.as.A.impl.F.%tuple.type.as.A.impl.F.type (%tuple.type.as.A.impl.F.type.44a) = struct_value () [symbolic = %tuple.type.as.A.impl.F (constants.%tuple.type.as.A.impl.F.742)] +// CHECK:STDOUT: %tuple.type.as.A.impl.F.specific_fn.loc18_12.2: = specific_function %tuple.type.as.A.impl.F, @tuple.type.as.A.impl.F(%V1, %V2, %W, %U.loc17_9.1) [symbolic = %tuple.type.as.A.impl.F.specific_fn.loc18_12.2 (constants.%tuple.type.as.A.impl.F.specific_fn.37b)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%u.param: @tuple.type.as.A.impl.F.%U.loc17_9.1 (%U.ce4)) -> out %return.param: @tuple.type.as.A.impl.F.%tuple.type.loc17_42.2 (%tuple.type.897) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc18: @tuple.type.as.A.impl.F.%tuple.type.as.A.impl.F.type (%tuple.type.as.A.impl.F.type.208) = specific_constant @tuple.type.as.A.impl.%tuple.type.as.A.impl.F.decl, @tuple.type.as.A.impl(constants.%V1, constants.%V2, constants.%W) [symbolic = %tuple.type.as.A.impl.F (constants.%tuple.type.as.A.impl.F.4ce)] -// CHECK:STDOUT: %F.ref: @tuple.type.as.A.impl.F.%tuple.type.as.A.impl.F.type (%tuple.type.as.A.impl.F.type.208) = name_ref F, %.loc18 [symbolic = %tuple.type.as.A.impl.F (constants.%tuple.type.as.A.impl.F.4ce)] +// CHECK:STDOUT: %.loc18: @tuple.type.as.A.impl.F.%tuple.type.as.A.impl.F.type (%tuple.type.as.A.impl.F.type.44a) = specific_constant @tuple.type.as.A.impl.%tuple.type.as.A.impl.F.decl, @tuple.type.as.A.impl(constants.%V1, constants.%V2, constants.%W) [symbolic = %tuple.type.as.A.impl.F (constants.%tuple.type.as.A.impl.F.742)] +// CHECK:STDOUT: %F.ref: @tuple.type.as.A.impl.F.%tuple.type.as.A.impl.F.type (%tuple.type.as.A.impl.F.type.44a) = name_ref F, %.loc18 [symbolic = %tuple.type.as.A.impl.F (constants.%tuple.type.as.A.impl.F.742)] // CHECK:STDOUT: %U.ref.loc18: type = name_ref U, %U.loc17_9.2 [symbolic = %U.loc17_9.1 (constants.%U.ce4)] // CHECK:STDOUT: %u.ref: @tuple.type.as.A.impl.F.%U.loc17_9.1 (%U.ce4) = name_ref u, %u -// CHECK:STDOUT: %tuple.type.as.A.impl.F.specific_fn.loc18_12.1: = specific_function %F.ref, @tuple.type.as.A.impl.F(constants.%V1, constants.%V2, constants.%W, constants.%U.ce4) [symbolic = %tuple.type.as.A.impl.F.specific_fn.loc18_12.2 (constants.%tuple.type.as.A.impl.F.specific_fn.e1b)] +// CHECK:STDOUT: %tuple.type.as.A.impl.F.specific_fn.loc18_12.1: = specific_function %F.ref, @tuple.type.as.A.impl.F(constants.%V1, constants.%V2, constants.%W, constants.%U.ce4) [symbolic = %tuple.type.as.A.impl.F.specific_fn.loc18_12.2 (constants.%tuple.type.as.A.impl.F.specific_fn.37b)] // CHECK:STDOUT: %.loc17_42.1: ref @tuple.type.as.A.impl.F.%tuple.type.loc17_42.2 (%tuple.type.897) = splice_block %return.param {} // CHECK:STDOUT: %tuple.type.as.A.impl.F.call: init @tuple.type.as.A.impl.F.%tuple.type.loc17_42.2 (%tuple.type.897) to %.loc17_42.1 = call %tuple.type.as.A.impl.F.specific_fn.loc18_12.1(%u.ref) // CHECK:STDOUT: return %tuple.type.as.A.impl.F.call to %return.param @@ -1237,33 +1237,33 @@ fn CallIndirect() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Y1.ref: type = name_ref Y1, file.%Y1.decl [concrete = constants.%Y1] // CHECK:STDOUT: %Y2.ref: type = name_ref Y2, file.%Y2.decl [concrete = constants.%Y2] -// CHECK:STDOUT: %.loc24_12: %tuple.type.24b = tuple_literal (%Y1.ref, %Y2.ref) [concrete = constants.%tuple.334] +// CHECK:STDOUT: %.loc24_12: %tuple.type.24b = tuple_literal (%Y1.ref, %Y2.ref) [concrete = constants.%tuple.8db] // CHECK:STDOUT: %.loc24_17: type = type_literal type [concrete = type] -// CHECK:STDOUT: %.loc24_14: type = converted %.loc24_12, constants.%tuple.type.a7c [concrete = constants.%tuple.type.a7c] -// CHECK:STDOUT: %A.ref: %A.type.0af = name_ref A, file.%A.decl [concrete = constants.%A.generic] +// CHECK:STDOUT: %.loc24_14: type = converted %.loc24_12, constants.%tuple.type.59f [concrete = constants.%tuple.type.59f] +// CHECK:STDOUT: %A.ref: %A.type.55a = name_ref A, file.%A.decl [concrete = constants.%A.generic] // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(constants.%X)> [concrete = constants.%A.type.ef5] -// CHECK:STDOUT: %A.facet: %A.type.ef5 = facet_value %.loc24_14, (constants.%A.impl_witness.755) [concrete = constants.%A.facet.d43] -// CHECK:STDOUT: %.loc24_23: %A.type.ef5 = converted %.loc24_14, %A.facet [concrete = constants.%A.facet.d43] -// CHECK:STDOUT: %as_type: type = facet_access_type %.loc24_23 [concrete = constants.%tuple.type.a7c] -// CHECK:STDOUT: %.loc24_31.1: type = converted %.loc24_23, %as_type [concrete = constants.%tuple.type.a7c] -// CHECK:STDOUT: %.loc24_31.2: %A.assoc_type.3ce = specific_constant @A.WithSelf.%assoc0.loc6_39.1, @A.WithSelf(constants.%X, constants.%A.facet.d43) [concrete = constants.%assoc0.2c2] -// CHECK:STDOUT: %F.ref: %A.assoc_type.3ce = name_ref F, %.loc24_31.2 [concrete = constants.%assoc0.2c2] -// CHECK:STDOUT: %impl.elem0: %.0d1 = impl_witness_access constants.%A.impl_witness.755, element0 [concrete = constants.%tuple.type.as.A.impl.F.677] +// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(constants.%X)> [concrete = constants.%A.type.df0] +// CHECK:STDOUT: %A.facet: %A.type.df0 = facet_value %.loc24_14, (constants.%A.impl_witness.6b7) [concrete = constants.%A.facet.682] +// CHECK:STDOUT: %.loc24_23: %A.type.df0 = converted %.loc24_14, %A.facet [concrete = constants.%A.facet.682] +// CHECK:STDOUT: %as_type: type = facet_access_type %.loc24_23 [concrete = constants.%tuple.type.59f] +// CHECK:STDOUT: %.loc24_31.1: type = converted %.loc24_23, %as_type [concrete = constants.%tuple.type.59f] +// CHECK:STDOUT: %.loc24_31.2: %A.assoc_type.a54 = specific_constant @A.WithSelf.%assoc0.loc6_39.1, @A.WithSelf(constants.%X, constants.%A.facet.682) [concrete = constants.%assoc0.987] +// CHECK:STDOUT: %F.ref: %A.assoc_type.a54 = name_ref F, %.loc24_31.2 [concrete = constants.%assoc0.987] +// CHECK:STDOUT: %impl.elem0: %.d9b = impl_witness_access constants.%A.impl_witness.6b7, element0 [concrete = constants.%tuple.type.as.A.impl.F.749] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z] // CHECK:STDOUT: %.loc24_38.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @tuple.type.as.A.impl.F(constants.%Y1, constants.%Y2, constants.%X, constants.%Z) [concrete = constants.%tuple.type.as.A.impl.F.specific_fn.b53] -// CHECK:STDOUT: %.loc24_39.1: ref %tuple.type.df6 = temporary_storage +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @tuple.type.as.A.impl.F(constants.%Y1, constants.%Y2, constants.%X, constants.%Z) [concrete = constants.%tuple.type.as.A.impl.F.specific_fn.981] +// CHECK:STDOUT: %.loc24_39.1: ref %tuple.type.d40 = temporary_storage // CHECK:STDOUT: %.loc24_38.2: ref %Z = temporary_storage // CHECK:STDOUT: %.loc24_38.3: init %Z to %.loc24_38.2 = class_init () [concrete = constants.%Z.val] // CHECK:STDOUT: %.loc24_38.4: init %Z = converted %.loc24_38.1, %.loc24_38.3 [concrete = constants.%Z.val] -// CHECK:STDOUT: %.loc24_38.5: ref %Z = temporary %.loc24_38.2, %.loc24_38.4 [concrete = constants.%.224] +// CHECK:STDOUT: %.loc24_38.5: ref %Z = temporary %.loc24_38.2, %.loc24_38.4 [concrete = constants.%.7dc] // 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.df6 to %.loc24_39.1 = call %specific_fn(%.loc24_38.6) -// CHECK:STDOUT: %.loc24_39.2: ref %tuple.type.df6 = temporary %.loc24_39.1, %tuple.type.as.A.impl.F.call -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc24_39.2, constants.%Destroy.Op.2dd605.7 +// 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.%.224) +// CHECK:STDOUT: %Destroy.Op.call.loc24_38: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.7dc) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1284,7 +1284,7 @@ fn CallIndirect() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_39.5(%self.param: ref %tuple.type.a7c) { +// CHECK:STDOUT: fn @Destroy.Op.loc24_39.5(%self.param: ref %tuple.type.59f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1294,56 +1294,56 @@ fn CallIndirect() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_39.7(%self.param: ref %tuple.type.df6) { +// CHECK:STDOUT: fn @Destroy.Op.loc24_39.7(%self.param: ref %tuple.type.d40) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @CallGeneric(%T.loc27_17.2: %facet_type) { -// CHECK:STDOUT: %T.loc27_17.1: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc27_17.1 (constants.%T.0c6)] +// CHECK:STDOUT: %T.loc27_17.1: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc27_17.1 (constants.%T.5b7)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc28_4.2: type = facet_access_type %T.loc27_17.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc27_17.1, @A, @A(constants.%X) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] -// CHECK:STDOUT: %A.facet: %A.type.ef5 = facet_value %T.as_type.loc28_4.2, (%A.lookup_impl_witness) [symbolic = %A.facet (constants.%A.facet.210)] -// CHECK:STDOUT: %A.WithSelf.F.type: type = fn_type @A.WithSelf.F, @A.WithSelf(constants.%X, %A.facet) [symbolic = %A.WithSelf.F.type (constants.%A.WithSelf.F.type.b88)] -// CHECK:STDOUT: %.loc28_4.3: type = fn_type_with_self_type %A.WithSelf.F.type, %A.facet [symbolic = %.loc28_4.3 (constants.%.b59)] -// CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.b59) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.65b)] -// CHECK:STDOUT: %specific_impl_fn.loc28_4.2: = specific_impl_function %impl.elem0.loc28_4.2, @A.WithSelf.F(constants.%X, %A.facet, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.846)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.as_type.loc28_4.2, constants.%Z) [symbolic = %tuple.type (constants.%tuple.type.5f8)] -// CHECK:STDOUT: %require_complete: = require_complete_type %tuple.type [symbolic = %require_complete (constants.%require_complete.422)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.9d8)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.10f)] -// 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.2b3)] -// CHECK:STDOUT: %.loc28_12.3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc28_12.3 (constants.%.446)] -// CHECK:STDOUT: %impl.elem0.loc28_12.2: @CallGeneric.%.loc28_12.3 (%.446) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.14b)] -// CHECK:STDOUT: %specific_impl_fn.loc28_12.2: = specific_impl_function %impl.elem0.loc28_12.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.2ca)] +// CHECK:STDOUT: %A.facet: %A.type.df0 = facet_value %T.as_type.loc28_4.2, (%A.lookup_impl_witness) [symbolic = %A.facet (constants.%A.facet.318)] +// CHECK:STDOUT: %A.WithSelf.F.type: type = fn_type @A.WithSelf.F, @A.WithSelf(constants.%X, %A.facet) [symbolic = %A.WithSelf.F.type (constants.%A.WithSelf.F.type.497)] +// CHECK:STDOUT: %.loc28_4.3: type = fn_type_with_self_type %A.WithSelf.F.type, %A.facet [symbolic = %.loc28_4.3 (constants.%.151)] +// CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.151) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.1a3)] +// CHECK:STDOUT: %specific_impl_fn.loc28_4.2: = specific_impl_function %impl.elem0.loc28_4.2, @A.WithSelf.F(constants.%X, %A.facet, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.74d)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.as_type.loc28_4.2, constants.%Z) [symbolic = %tuple.type (constants.%tuple.type.036)] +// 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: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.fef)] +// 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.937)] +// CHECK:STDOUT: %.loc28_12.3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc28_12.3 (constants.%.93b)] +// CHECK:STDOUT: %impl.elem0.loc28_12.2: @CallGeneric.%.loc28_12.3 (%.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) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.618)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref: %facet_type = name_ref T, %T.loc27_17.2 [symbolic = %T.loc27_17.1 (constants.%T.0c6)] +// CHECK:STDOUT: %T.ref: %facet_type = name_ref T, %T.loc27_17.2 [symbolic = %T.loc27_17.1 (constants.%T.5b7)] // CHECK:STDOUT: %T.as_type.loc28_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc28_4.1: type = converted %T.ref, %T.as_type.loc28_4.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc28_4.2: %A.assoc_type.3ce = specific_constant @A.WithSelf.%assoc0.loc6_39.1, @A.WithSelf(constants.%X, constants.%T.0c6) [concrete = constants.%assoc0.2c2] -// CHECK:STDOUT: %F.ref: %A.assoc_type.3ce = name_ref F, %.loc28_4.2 [concrete = constants.%assoc0.2c2] -// CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.b59) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.65b)] +// CHECK:STDOUT: %.loc28_4.2: %A.assoc_type.a54 = specific_constant @A.WithSelf.%assoc0.loc6_39.1, @A.WithSelf(constants.%X, constants.%T.5b7) [concrete = constants.%assoc0.987] +// CHECK:STDOUT: %F.ref: %A.assoc_type.a54 = name_ref F, %.loc28_4.2 [concrete = constants.%assoc0.987] +// CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.151) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.1a3)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z] // CHECK:STDOUT: %.loc28_11.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %specific_impl_fn.loc28_4.1: = specific_impl_function %impl.elem0.loc28_4.1, @A.WithSelf.F(constants.%X, constants.%A.facet.210, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.846)] -// CHECK:STDOUT: %.loc28_12.1: ref @CallGeneric.%tuple.type (%tuple.type.5f8) = temporary_storage +// CHECK:STDOUT: %specific_impl_fn.loc28_4.1: = specific_impl_function %impl.elem0.loc28_4.1, @A.WithSelf.F(constants.%X, constants.%A.facet.318, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.74d)] +// CHECK:STDOUT: %.loc28_12.1: ref @CallGeneric.%tuple.type (%tuple.type.036) = temporary_storage // CHECK:STDOUT: %.loc28_11.2: ref %Z = temporary_storage // CHECK:STDOUT: %.loc28_11.3: init %Z to %.loc28_11.2 = class_init () [concrete = constants.%Z.val] // CHECK:STDOUT: %.loc28_11.4: init %Z = converted %.loc28_11.1, %.loc28_11.3 [concrete = constants.%Z.val] -// CHECK:STDOUT: %.loc28_11.5: ref %Z = temporary %.loc28_11.2, %.loc28_11.4 [concrete = constants.%.224] +// CHECK:STDOUT: %.loc28_11.5: ref %Z = temporary %.loc28_11.2, %.loc28_11.4 [concrete = constants.%.7dc] // CHECK:STDOUT: %.loc28_11.6: %Z = acquire_value %.loc28_11.5 [concrete = constants.%Z.val] -// CHECK:STDOUT: %A.WithSelf.F.call: init @CallGeneric.%tuple.type (%tuple.type.5f8) to %.loc28_12.1 = call %specific_impl_fn.loc28_4.1(%.loc28_11.6) -// CHECK:STDOUT: %.loc28_12.2: ref @CallGeneric.%tuple.type (%tuple.type.5f8) = temporary %.loc28_12.1, %A.WithSelf.F.call -// CHECK:STDOUT: %impl.elem0.loc28_12.1: @CallGeneric.%.loc28_12.3 (%.446) = impl_witness_access constants.%Destroy.lookup_impl_witness.9d8, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.14b)] +// CHECK:STDOUT: %A.WithSelf.F.call: init @CallGeneric.%tuple.type (%tuple.type.036) to %.loc28_12.1 = call %specific_impl_fn.loc28_4.1(%.loc28_11.6) +// CHECK:STDOUT: %.loc28_12.2: ref @CallGeneric.%tuple.type (%tuple.type.036) = temporary %.loc28_12.1, %A.WithSelf.F.call +// CHECK:STDOUT: %impl.elem0.loc28_12.1: @CallGeneric.%.loc28_12.3 (%.93b) = impl_witness_access constants.%Destroy.lookup_impl_witness.8dc, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.743)] // CHECK:STDOUT: %bound_method.loc28_12.1: = bound_method %.loc28_12.2, %impl.elem0.loc28_12.1 -// CHECK:STDOUT: %specific_impl_fn.loc28_12.1: = specific_impl_function %impl.elem0.loc28_12.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.10f) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.2ca)] +// 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: %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.%.224) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.7dc) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1353,10 +1353,10 @@ fn CallIndirect() { // CHECK:STDOUT: %CallGeneric.ref: %CallGeneric.type = name_ref CallGeneric, file.%CallGeneric.decl [concrete = constants.%CallGeneric] // CHECK:STDOUT: %Y1.ref: type = name_ref Y1, file.%Y1.decl [concrete = constants.%Y1] // CHECK:STDOUT: %Y2.ref: type = name_ref Y2, file.%Y2.decl [concrete = constants.%Y2] -// CHECK:STDOUT: %.loc33_22: %tuple.type.24b = tuple_literal (%Y1.ref, %Y2.ref) [concrete = constants.%tuple.334] +// 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.a7c [concrete = constants.%tuple.type.a7c] -// CHECK:STDOUT: %facet_value: %facet_type = facet_value %.loc33_24, (constants.%A.impl_witness.755, constants.%custom_witness.e20f1f.5) [concrete = constants.%facet_value] +// 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.6b7, constants.%custom_witness.df9cc1.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() @@ -1367,28 +1367,28 @@ fn CallIndirect() { // CHECK:STDOUT: %T.loc5_14.1 => constants.%T.67d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%T.67d, constants.%Self.a33) {} +// CHECK:STDOUT: specific @A.WithSelf(constants.%T.67d, constants.%Self.49a) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.F(constants.%T.67d, constants.%Self.a33, constants.%U.4e7) { +// CHECK:STDOUT: specific @A.WithSelf.F(constants.%T.67d, constants.%Self.49a, constants.%U.4e7) { // CHECK:STDOUT: %U.loc6_9.1 => constants.%U.4e7 // CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.62e // CHECK:STDOUT: %T => constants.%T.67d -// CHECK:STDOUT: %A.type => constants.%A.type.5ea -// CHECK:STDOUT: %Self => constants.%Self.a33 -// CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.54d -// CHECK:STDOUT: %tuple => constants.%tuple.ca1 -// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%Self.as_type.0a5 -// CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.a60 -// CHECK:STDOUT: %.loc6_38.1 => constants.%.ddd -// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.41c +// CHECK:STDOUT: %A.type => constants.%A.type.acd +// CHECK:STDOUT: %Self => constants.%Self.49a +// CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.76f +// CHECK:STDOUT: %tuple => constants.%tuple.55a +// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%Self.as_type.763 +// CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.d73 +// CHECK:STDOUT: %.loc6_38.1 => constants.%.bc3 +// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.d6c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%W) { // CHECK:STDOUT: %T.loc5_14.1 => constants.%W // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %A.type => constants.%A.type.e49 -// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.2ba +// CHECK:STDOUT: %A.type => constants.%A.type.3ad +// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.0f8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @tuple.type.as.A.impl(constants.%V1, constants.%V2, constants.%W) { @@ -1397,24 +1397,24 @@ fn CallIndirect() { // CHECK:STDOUT: %W.loc14_37.1 => constants.%W // CHECK:STDOUT: %tuple => constants.%tuple.4b9 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.a5e -// CHECK:STDOUT: %A.type.loc14_61.1 => constants.%A.type.e49 -// CHECK:STDOUT: %A.impl_witness.loc14_63.2 => constants.%A.impl_witness.6c9 +// CHECK:STDOUT: %A.type.loc14_61.1 => constants.%A.type.3ad +// CHECK:STDOUT: %A.impl_witness.loc14_63.2 => constants.%A.impl_witness.756 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.b42 -// CHECK:STDOUT: %tuple.type.as.A.impl.F.type => constants.%tuple.type.as.A.impl.F.type.208 -// CHECK:STDOUT: %tuple.type.as.A.impl.F => constants.%tuple.type.as.A.impl.F.4ce +// CHECK:STDOUT: %require_complete => constants.%require_complete.7b2 +// CHECK:STDOUT: %tuple.type.as.A.impl.F.type => constants.%tuple.type.as.A.impl.F.type.44a +// CHECK:STDOUT: %tuple.type.as.A.impl.F => constants.%tuple.type.as.A.impl.F.742 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%W, constants.%Self.a33) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%W, constants.%Self.49a) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%W -// CHECK:STDOUT: %A.type => constants.%A.type.e49 -// CHECK:STDOUT: %Self => constants.%Self.a33 -// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.487 -// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.e2a -// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.edf -// CHECK:STDOUT: %assoc0.loc6_39.2 => constants.%assoc0.5cb +// CHECK:STDOUT: %A.type => constants.%A.type.3ad +// CHECK:STDOUT: %Self => constants.%Self.49a +// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.64e +// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.1fb +// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.250 +// CHECK:STDOUT: %assoc0.loc6_39.2 => constants.%assoc0.6de // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @tuple.type.as.A.impl.F(constants.%V1, constants.%V2, constants.%W, constants.%U.ce4) { @@ -1433,30 +1433,30 @@ fn CallIndirect() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc17_19 => constants.%require_complete.5a4 // CHECK:STDOUT: %require_complete.loc17_24 => constants.%require_complete.da0 -// CHECK:STDOUT: %tuple.type.as.A.impl.F.type => constants.%tuple.type.as.A.impl.F.type.208 -// CHECK:STDOUT: %tuple.type.as.A.impl.F => constants.%tuple.type.as.A.impl.F.4ce -// CHECK:STDOUT: %tuple.type.as.A.impl.F.specific_fn.loc18_12.2 => constants.%tuple.type.as.A.impl.F.specific_fn.e1b +// CHECK:STDOUT: %tuple.type.as.A.impl.F.type => constants.%tuple.type.as.A.impl.F.type.44a +// CHECK:STDOUT: %tuple.type.as.A.impl.F => constants.%tuple.type.as.A.impl.F.742 +// CHECK:STDOUT: %tuple.type.as.A.impl.F.specific_fn.loc18_12.2 => constants.%tuple.type.as.A.impl.F.specific_fn.37b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%W, constants.%A.facet.2a9) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%W, constants.%A.facet.ab0) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%W -// CHECK:STDOUT: %A.type => constants.%A.type.e49 -// CHECK:STDOUT: %Self => constants.%A.facet.2a9 -// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.234 -// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.329 -// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.edf -// CHECK:STDOUT: %assoc0.loc6_39.2 => constants.%assoc0.5cb +// CHECK:STDOUT: %A.type => constants.%A.type.3ad +// CHECK:STDOUT: %Self => constants.%A.facet.ab0 +// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.5f0 +// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.147 +// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.250 +// CHECK:STDOUT: %assoc0.loc6_39.2 => constants.%assoc0.6de // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.F(constants.%W, constants.%A.facet.2a9, constants.%U.ce4) { +// CHECK:STDOUT: specific @A.WithSelf.F(constants.%W, constants.%A.facet.ab0, constants.%U.ce4) { // CHECK:STDOUT: %U.loc6_9.1 => constants.%U.ce4 // CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.e4a // CHECK:STDOUT: %T => constants.%W -// CHECK:STDOUT: %A.type => constants.%A.type.e49 -// CHECK:STDOUT: %Self => constants.%A.facet.2a9 -// CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.ec9 -// CHECK:STDOUT: %tuple => constants.%tuple.db8 +// CHECK:STDOUT: %A.type => constants.%A.type.3ad +// CHECK:STDOUT: %Self => constants.%A.facet.ab0 +// CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.a90 +// CHECK:STDOUT: %tuple => constants.%tuple.059 // CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%tuple.type.a5e // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.897 // CHECK:STDOUT: %.loc6_38.1 => constants.%.f8e @@ -1467,140 +1467,140 @@ fn CallIndirect() { // CHECK:STDOUT: %T.loc5_14.1 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %A.type => constants.%A.type.ef5 -// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.0c0 +// CHECK:STDOUT: %A.type => constants.%A.type.df0 +// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.891 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @tuple.type.as.A.impl(constants.%Y1, constants.%Y2, constants.%X) { // CHECK:STDOUT: %V1.loc14_16.1 => constants.%Y1 // CHECK:STDOUT: %V2.loc14_27.1 => constants.%Y2 // CHECK:STDOUT: %W.loc14_37.1 => constants.%X -// CHECK:STDOUT: %tuple => constants.%tuple.334 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.a7c -// CHECK:STDOUT: %A.type.loc14_61.1 => constants.%A.type.ef5 -// CHECK:STDOUT: %A.impl_witness.loc14_63.2 => constants.%A.impl_witness.755 +// CHECK:STDOUT: %tuple => constants.%tuple.8db +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.59f +// CHECK:STDOUT: %A.type.loc14_61.1 => constants.%A.type.df0 +// CHECK:STDOUT: %A.impl_witness.loc14_63.2 => constants.%A.impl_witness.6b7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.740 -// CHECK:STDOUT: %tuple.type.as.A.impl.F.type => constants.%tuple.type.as.A.impl.F.type.d8e -// CHECK:STDOUT: %tuple.type.as.A.impl.F => constants.%tuple.type.as.A.impl.F.677 +// CHECK:STDOUT: %require_complete => constants.%complete_type.e33 +// CHECK:STDOUT: %tuple.type.as.A.impl.F.type => constants.%tuple.type.as.A.impl.F.type.745 +// CHECK:STDOUT: %tuple.type.as.A.impl.F => constants.%tuple.type.as.A.impl.F.749 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%Self.a33) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%Self.49a) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %A.type => constants.%A.type.ef5 -// CHECK:STDOUT: %Self => constants.%Self.a33 -// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.c12 -// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.612 -// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.3ce -// CHECK:STDOUT: %assoc0.loc6_39.2 => constants.%assoc0.2c2 +// CHECK:STDOUT: %A.type => constants.%A.type.df0 +// CHECK:STDOUT: %Self => constants.%Self.49a +// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.ad4 +// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.1e2 +// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.a54 +// CHECK:STDOUT: %assoc0.loc6_39.2 => constants.%assoc0.987 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%A.facet.d43) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%A.facet.682) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %A.type => constants.%A.type.ef5 -// CHECK:STDOUT: %Self => constants.%A.facet.d43 -// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.4b7 -// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.6c3 -// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.3ce -// CHECK:STDOUT: %assoc0.loc6_39.2 => constants.%assoc0.2c2 +// CHECK:STDOUT: %A.type => constants.%A.type.df0 +// CHECK:STDOUT: %Self => constants.%A.facet.682 +// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.243 +// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.5b5 +// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.a54 +// CHECK:STDOUT: %assoc0.loc6_39.2 => constants.%assoc0.987 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @tuple.type.as.A.impl.F(constants.%Y1, constants.%Y2, constants.%X, constants.%Z) { // CHECK:STDOUT: %U.loc17_9.1 => constants.%Z -// CHECK:STDOUT: %pattern_type.loc17_19 => constants.%pattern_type.f0a +// CHECK:STDOUT: %pattern_type.loc17_19 => constants.%pattern_type.34e // CHECK:STDOUT: %W => constants.%X // CHECK:STDOUT: %V1 => constants.%Y1 // CHECK:STDOUT: %V2 => constants.%Y2 -// CHECK:STDOUT: %tuple.loc17_38 => constants.%tuple.334 -// CHECK:STDOUT: %tuple.loc17_42 => constants.%tuple.b30 -// CHECK:STDOUT: %tuple.type.loc17_42.1 => constants.%tuple.type.a7c -// CHECK:STDOUT: %tuple.type.loc17_42.2 => constants.%tuple.type.df6 -// CHECK:STDOUT: %.loc17_42.2 => constants.%.ec0 -// CHECK:STDOUT: %pattern_type.loc17_42 => constants.%pattern_type.cc8 +// CHECK:STDOUT: %tuple.loc17_38 => constants.%tuple.8db +// CHECK:STDOUT: %tuple.loc17_42 => constants.%tuple.1a1 +// CHECK:STDOUT: %tuple.type.loc17_42.1 => constants.%tuple.type.59f +// CHECK:STDOUT: %tuple.type.loc17_42.2 => constants.%tuple.type.d40 +// CHECK:STDOUT: %.loc17_42.2 => constants.%.1a9 +// CHECK:STDOUT: %pattern_type.loc17_42 => constants.%pattern_type.6a8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc17_19 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc17_24 => constants.%complete_type.466 -// CHECK:STDOUT: %tuple.type.as.A.impl.F.type => constants.%tuple.type.as.A.impl.F.type.d8e -// CHECK:STDOUT: %tuple.type.as.A.impl.F => constants.%tuple.type.as.A.impl.F.677 -// CHECK:STDOUT: %tuple.type.as.A.impl.F.specific_fn.loc18_12.2 => constants.%tuple.type.as.A.impl.F.specific_fn.b53 +// CHECK:STDOUT: %require_complete.loc17_24 => constants.%complete_type.8f6 +// CHECK:STDOUT: %tuple.type.as.A.impl.F.type => constants.%tuple.type.as.A.impl.F.type.745 +// CHECK:STDOUT: %tuple.type.as.A.impl.F => constants.%tuple.type.as.A.impl.F.749 +// CHECK:STDOUT: %tuple.type.as.A.impl.F.specific_fn.loc18_12.2 => constants.%tuple.type.as.A.impl.F.specific_fn.981 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @CallGeneric(constants.%T.0c6) { -// CHECK:STDOUT: %T.loc27_17.1 => constants.%T.0c6 +// CHECK:STDOUT: specific @CallGeneric(constants.%T.5b7) { +// CHECK:STDOUT: %T.loc27_17.1 => constants.%T.5b7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%T.0c6) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%T.5b7) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %A.type => constants.%A.type.ef5 -// CHECK:STDOUT: %Self => constants.%T.0c6 -// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.5f2 -// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.923 -// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.3ce -// CHECK:STDOUT: %assoc0.loc6_39.2 => constants.%assoc0.2c2 +// CHECK:STDOUT: %A.type => constants.%A.type.df0 +// CHECK:STDOUT: %Self => constants.%T.5b7 +// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.91d +// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.3f4 +// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.a54 +// CHECK:STDOUT: %assoc0.loc6_39.2 => constants.%assoc0.987 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%A.facet.210) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%A.facet.318) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %A.type => constants.%A.type.ef5 -// CHECK:STDOUT: %Self => constants.%A.facet.210 -// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.b88 -// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.702 -// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.3ce -// CHECK:STDOUT: %assoc0.loc6_39.2 => constants.%assoc0.2c2 +// CHECK:STDOUT: %A.type => constants.%A.type.df0 +// CHECK:STDOUT: %Self => constants.%A.facet.318 +// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.497 +// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.a4d +// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.a54 +// CHECK:STDOUT: %assoc0.loc6_39.2 => constants.%assoc0.987 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.210, constants.%Z) { +// CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.318, constants.%Z) { // CHECK:STDOUT: %U.loc6_9.1 => constants.%Z -// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.f0a +// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.34e // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %A.type => constants.%A.type.ef5 -// CHECK:STDOUT: %Self => constants.%A.facet.210 -// CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.d63 -// CHECK:STDOUT: %tuple => constants.%tuple.4d5 +// CHECK:STDOUT: %A.type => constants.%A.type.df0 +// CHECK:STDOUT: %Self => constants.%A.facet.318 +// CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.966 +// CHECK:STDOUT: %tuple => constants.%tuple.b58 // CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%T.as_type -// CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.5f8 -// CHECK:STDOUT: %.loc6_38.1 => constants.%.bce -// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.bb6 +// CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.036 +// CHECK:STDOUT: %.loc6_38.1 => constants.%.772 +// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.8f9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%facet_value) { // CHECK:STDOUT: %T.loc27_17.1 => constants.%facet_value // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc28_4.2 => constants.%tuple.type.a7c -// CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.impl_witness.755 -// CHECK:STDOUT: %A.facet => constants.%A.facet.d43 -// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.4b7 -// CHECK:STDOUT: %.loc28_4.3 => constants.%.0d1 -// CHECK:STDOUT: %impl.elem0.loc28_4.2 => constants.%tuple.type.as.A.impl.F.677 -// CHECK:STDOUT: %specific_impl_fn.loc28_4.2 => constants.%tuple.type.as.A.impl.F.specific_fn.b53 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.df6 -// CHECK:STDOUT: %require_complete => constants.%complete_type.466 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e20f1f.7 -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.195 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.acf -// CHECK:STDOUT: %.loc28_12.3 => constants.%.cdc -// CHECK:STDOUT: %impl.elem0.loc28_12.2 => constants.%Destroy.Op.2dd605.7 -// CHECK:STDOUT: %specific_impl_fn.loc28_12.2 => constants.%Destroy.Op.2dd605.7 +// CHECK:STDOUT: %T.as_type.loc28_4.2 => constants.%tuple.type.59f +// CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.impl_witness.6b7 +// CHECK:STDOUT: %A.facet => constants.%A.facet.682 +// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.243 +// CHECK:STDOUT: %.loc28_4.3 => constants.%.d9b +// CHECK:STDOUT: %impl.elem0.loc28_4.2 => constants.%tuple.type.as.A.impl.F.749 +// 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 => constants.%Destroy.facet.50b +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.43f +// CHECK:STDOUT: %.loc28_12.3 => 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: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.d43, constants.%Z) { +// CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.682, constants.%Z) { // CHECK:STDOUT: %U.loc6_9.1 => constants.%Z -// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.f0a +// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.34e // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %A.type => constants.%A.type.ef5 -// CHECK:STDOUT: %Self => constants.%A.facet.d43 -// CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.d63 -// CHECK:STDOUT: %tuple => constants.%tuple.aac -// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%tuple.type.a7c -// CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.df6 -// CHECK:STDOUT: %.loc6_38.1 => constants.%.ec0 -// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.cc8 +// CHECK:STDOUT: %A.type => constants.%A.type.df0 +// CHECK:STDOUT: %Self => constants.%A.facet.682 +// CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.966 +// CHECK:STDOUT: %tuple => constants.%tuple.92c +// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%tuple.type.59f +// CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.d40 +// CHECK:STDOUT: %.loc6_38.1 => constants.%.1a9 +// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.6a8 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/generic_vs_params.carbon b/toolchain/check/testdata/interface/generic_vs_params.carbon index cc457d515f3e..fc694c232d06 100644 --- a/toolchain/check/testdata/interface/generic_vs_params.carbon +++ b/toolchain/check/testdata/interface/generic_vs_params.carbon @@ -76,51 +76,51 @@ interface Bar[T:! type] {} // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %NotGenericNoParams.type: type = facet_type <@NotGenericNoParams> [concrete] -// CHECK:STDOUT: %Self.52c: %NotGenericNoParams.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %NotGenericButParams.type.aee: type = generic_interface_type @NotGenericButParams [concrete] -// CHECK:STDOUT: %NotGenericButParams.generic: %NotGenericButParams.type.aee = struct_value () [concrete] -// CHECK:STDOUT: %NotGenericButParams.type.25f: type = facet_type <@NotGenericButParams> [concrete] -// CHECK:STDOUT: %Self.e41: %NotGenericButParams.type.25f = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.6f8: %NotGenericNoParams.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %NotGenericButParams.type.2fe: type = generic_interface_type @NotGenericButParams [concrete] +// CHECK:STDOUT: %NotGenericButParams.generic: %NotGenericButParams.type.2fe = struct_value () [concrete] +// CHECK:STDOUT: %NotGenericButParams.type.21c: type = facet_type <@NotGenericButParams> [concrete] +// CHECK:STDOUT: %Self.9dd: %NotGenericButParams.type.21c = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %GenericAndParams.type.b2d: type = generic_interface_type @GenericAndParams.loc6 [concrete] -// CHECK:STDOUT: %GenericAndParams.generic.cbb: %GenericAndParams.type.b2d = struct_value () [concrete] -// CHECK:STDOUT: %GenericAndParams.type.de5: type = facet_type <@GenericAndParams.loc6, @GenericAndParams.loc6(%T)> [symbolic] -// CHECK:STDOUT: %Self.651: %GenericAndParams.type.de5 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %GenericAndParams.type.23f: type = generic_interface_type @GenericAndParams.loc6 [concrete] +// CHECK:STDOUT: %GenericAndParams.generic.504: %GenericAndParams.type.23f = struct_value () [concrete] +// CHECK:STDOUT: %GenericAndParams.type.b17: type = facet_type <@GenericAndParams.loc6, @GenericAndParams.loc6(%T)> [symbolic] +// CHECK:STDOUT: %Self.cda: %GenericAndParams.type.b17 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.1f9: type = class_type @C, @C(%T) [symbolic] -// CHECK:STDOUT: %GenericNoParams.type.41a: type = facet_type <@GenericNoParams, @GenericNoParams(%T)> [symbolic] -// CHECK:STDOUT: %Self.be7: %GenericNoParams.type.41a = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %C.1d0: type = class_type @C, @C(%T) [symbolic] +// CHECK:STDOUT: %GenericNoParams.type.3f5: type = facet_type <@GenericNoParams, @GenericNoParams(%T)> [symbolic] +// CHECK:STDOUT: %Self.417: %GenericNoParams.type.3f5 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %U: type = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %GenericAndParams.type.3a6: type = generic_interface_type @GenericAndParams.loc10, @C(%T) [symbolic] -// CHECK:STDOUT: %GenericAndParams.generic.83d: %GenericAndParams.type.3a6 = struct_value () [symbolic] -// CHECK:STDOUT: %GenericAndParams.type.af8: type = facet_type <@GenericAndParams.loc10, @GenericAndParams.loc10(%T, %U)> [symbolic] -// CHECK:STDOUT: %Self.528: %GenericAndParams.type.af8 = symbolic_binding Self, 2 [symbolic] +// CHECK:STDOUT: %GenericAndParams.type.c43: type = generic_interface_type @GenericAndParams.loc10, @C(%T) [symbolic] +// CHECK:STDOUT: %GenericAndParams.generic.079: %GenericAndParams.type.c43 = struct_value () [symbolic] +// CHECK:STDOUT: %GenericAndParams.type.ba4: type = facet_type <@GenericAndParams.loc10, @GenericAndParams.loc10(%T, %U)> [symbolic] +// CHECK:STDOUT: %Self.72e: %GenericAndParams.type.ba4 = symbolic_binding Self, 2 [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %NotGenericNoParams.impl_witness: = impl_witness @X.as.NotGenericNoParams.impl.%NotGenericNoParams.impl_witness_table [concrete] // CHECK:STDOUT: %NotGenericNoParams.facet: %NotGenericNoParams.type = facet_value %X, (%NotGenericNoParams.impl_witness) [concrete] // CHECK:STDOUT: %NotGenericButParams.impl_witness: = impl_witness @X.as.NotGenericButParams.impl.%NotGenericButParams.impl_witness_table [concrete] -// CHECK:STDOUT: %NotGenericButParams.facet: %NotGenericButParams.type.25f = facet_value %X, (%NotGenericButParams.impl_witness) [concrete] -// CHECK:STDOUT: %GenericAndParams.type.0d2: type = facet_type <@GenericAndParams.loc6, @GenericAndParams.loc6(%X)> [concrete] -// CHECK:STDOUT: %GenericAndParams.impl_witness.194: = impl_witness @X.as.GenericAndParams.impl.c9e.%GenericAndParams.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.15c: %GenericAndParams.type.0d2 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %GenericAndParams.facet.845: %GenericAndParams.type.0d2 = facet_value %X, (%GenericAndParams.impl_witness.194) [concrete] -// CHECK:STDOUT: %C.7b5: type = class_type @C, @C(%X) [concrete] -// CHECK:STDOUT: %GenericNoParams.type.ff6: type = facet_type <@GenericNoParams, @GenericNoParams(%X)> [concrete] -// CHECK:STDOUT: %GenericAndParams.type.7d5: type = generic_interface_type @GenericAndParams.loc10, @C(%X) [concrete] -// CHECK:STDOUT: %GenericAndParams.generic.13c: %GenericAndParams.type.7d5 = struct_value () [concrete] +// CHECK:STDOUT: %NotGenericButParams.facet: %NotGenericButParams.type.21c = facet_value %X, (%NotGenericButParams.impl_witness) [concrete] +// CHECK:STDOUT: %GenericAndParams.type.8ab: type = facet_type <@GenericAndParams.loc6, @GenericAndParams.loc6(%X)> [concrete] +// CHECK:STDOUT: %GenericAndParams.impl_witness.925: = impl_witness @X.as.GenericAndParams.impl.44a.%GenericAndParams.impl_witness_table [concrete] +// CHECK:STDOUT: %Self.34f: %GenericAndParams.type.8ab = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %GenericAndParams.facet.9e9: %GenericAndParams.type.8ab = facet_value %X, (%GenericAndParams.impl_witness.925) [concrete] +// CHECK:STDOUT: %C.a43: type = class_type @C, @C(%X) [concrete] +// CHECK:STDOUT: %GenericNoParams.type.670: type = facet_type <@GenericNoParams, @GenericNoParams(%X)> [concrete] +// CHECK:STDOUT: %GenericAndParams.type.0ab: type = generic_interface_type @GenericAndParams.loc10, @C(%X) [concrete] +// CHECK:STDOUT: %GenericAndParams.generic.2f5: %GenericAndParams.type.0ab = struct_value () [concrete] // CHECK:STDOUT: %GenericNoParams.impl_witness: = impl_witness @X.as.GenericNoParams.impl.%GenericNoParams.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.018: %GenericNoParams.type.ff6 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %GenericNoParams.facet: %GenericNoParams.type.ff6 = facet_value %X, (%GenericNoParams.impl_witness) [concrete] -// CHECK:STDOUT: %GenericAndParams.type.504: type = facet_type <@GenericAndParams.loc10, @GenericAndParams.loc10(%X, %X)> [concrete] -// CHECK:STDOUT: %GenericAndParams.impl_witness.d85: = impl_witness @X.as.GenericAndParams.impl.918.%GenericAndParams.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.500: %GenericAndParams.type.504 = symbolic_binding Self, 2 [symbolic] -// CHECK:STDOUT: %GenericAndParams.facet.f27: %GenericAndParams.type.504 = facet_value %X, (%GenericAndParams.impl_witness.d85) [concrete] +// CHECK:STDOUT: %Self.998: %GenericNoParams.type.670 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %GenericNoParams.facet: %GenericNoParams.type.670 = facet_value %X, (%GenericNoParams.impl_witness) [concrete] +// CHECK:STDOUT: %GenericAndParams.type.b2b: type = facet_type <@GenericAndParams.loc10, @GenericAndParams.loc10(%X, %X)> [concrete] +// CHECK:STDOUT: %GenericAndParams.impl_witness.b47: = impl_witness @X.as.GenericAndParams.impl.5ef.%GenericAndParams.impl_witness_table [concrete] +// CHECK:STDOUT: %Self.883: %GenericAndParams.type.b2b = symbolic_binding Self, 2 [symbolic] +// CHECK:STDOUT: %GenericAndParams.facet.abe: %GenericAndParams.type.b2b = facet_value %X, (%GenericAndParams.impl_witness.b47) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -132,8 +132,8 @@ interface Bar[T:! type] {} // CHECK:STDOUT: .X = %X.decl // CHECK:STDOUT: } // CHECK:STDOUT: %NotGenericNoParams.decl: type = interface_decl @NotGenericNoParams [concrete = constants.%NotGenericNoParams.type] {} {} -// CHECK:STDOUT: %NotGenericButParams.decl: %NotGenericButParams.type.aee = interface_decl @NotGenericButParams [concrete = constants.%NotGenericButParams.generic] {} {} -// CHECK:STDOUT: %GenericAndParams.decl: %GenericAndParams.type.b2d = interface_decl @GenericAndParams.loc6 [concrete = constants.%GenericAndParams.generic.cbb] { +// CHECK:STDOUT: %NotGenericButParams.decl: %NotGenericButParams.type.2fe = interface_decl @NotGenericButParams [concrete = constants.%NotGenericButParams.generic] {} {} +// CHECK:STDOUT: %GenericAndParams.decl: %GenericAndParams.type.23f = interface_decl @GenericAndParams.loc6 [concrete = constants.%GenericAndParams.generic.504] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6_32.1: type = splice_block %.loc6_32.2 [concrete = type] { @@ -158,37 +158,37 @@ interface Bar[T:! type] {} // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @X.as.NotGenericButParams.impl [concrete] {} { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %NotGenericButParams.ref: %NotGenericButParams.type.aee = name_ref NotGenericButParams, file.%NotGenericButParams.decl [concrete = constants.%NotGenericButParams.generic] -// CHECK:STDOUT: %NotGenericButParams.type: type = facet_type <@NotGenericButParams> [concrete = constants.%NotGenericButParams.type.25f] +// CHECK:STDOUT: %NotGenericButParams.ref: %NotGenericButParams.type.2fe = name_ref NotGenericButParams, file.%NotGenericButParams.decl [concrete = constants.%NotGenericButParams.generic] +// CHECK:STDOUT: %NotGenericButParams.type: type = facet_type <@NotGenericButParams> [concrete = constants.%NotGenericButParams.type.21c] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @X.as.GenericAndParams.impl.c9e [concrete] {} { +// CHECK:STDOUT: impl_decl @X.as.GenericAndParams.impl.44a [concrete] {} { // CHECK:STDOUT: %X.ref.loc16_6: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %GenericAndParams.ref: %GenericAndParams.type.b2d = name_ref GenericAndParams, file.%GenericAndParams.decl [concrete = constants.%GenericAndParams.generic.cbb] +// CHECK:STDOUT: %GenericAndParams.ref: %GenericAndParams.type.23f = name_ref GenericAndParams, file.%GenericAndParams.decl [concrete = constants.%GenericAndParams.generic.504] // CHECK:STDOUT: %X.ref.loc16_28: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.loc6, @GenericAndParams.loc6(constants.%X)> [concrete = constants.%GenericAndParams.type.0d2] +// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.loc6, @GenericAndParams.loc6(constants.%X)> [concrete = constants.%GenericAndParams.type.8ab] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @X.as.GenericNoParams.impl [concrete] {} { // CHECK:STDOUT: %X.ref.loc17_6: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %X.ref.loc17_13: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%X) [concrete = constants.%C.7b5] -// CHECK:STDOUT: %.loc17: type = specific_constant @C.%GenericNoParams.decl, @C(constants.%X) [concrete = constants.%GenericNoParams.type.ff6] -// CHECK:STDOUT: %GenericNoParams.ref: type = name_ref GenericNoParams, %.loc17 [concrete = constants.%GenericNoParams.type.ff6] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%X) [concrete = constants.%C.a43] +// CHECK:STDOUT: %.loc17: type = specific_constant @C.%GenericNoParams.decl, @C(constants.%X) [concrete = constants.%GenericNoParams.type.670] +// CHECK:STDOUT: %GenericNoParams.ref: type = name_ref GenericNoParams, %.loc17 [concrete = constants.%GenericNoParams.type.670] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @X.as.GenericAndParams.impl.918 [concrete] {} { +// CHECK:STDOUT: impl_decl @X.as.GenericAndParams.impl.5ef [concrete] {} { // CHECK:STDOUT: %X.ref.loc18_6: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %X.ref.loc18_13: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%X) [concrete = constants.%C.7b5] -// CHECK:STDOUT: %.loc18: %GenericAndParams.type.7d5 = specific_constant @C.%GenericAndParams.decl, @C(constants.%X) [concrete = constants.%GenericAndParams.generic.13c] -// CHECK:STDOUT: %GenericAndParams.ref: %GenericAndParams.type.7d5 = name_ref GenericAndParams, %.loc18 [concrete = constants.%GenericAndParams.generic.13c] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%X) [concrete = constants.%C.a43] +// CHECK:STDOUT: %.loc18: %GenericAndParams.type.0ab = specific_constant @C.%GenericAndParams.decl, @C(constants.%X) [concrete = constants.%GenericAndParams.generic.2f5] +// CHECK:STDOUT: %GenericAndParams.ref: %GenericAndParams.type.0ab = name_ref GenericAndParams, %.loc18 [concrete = constants.%GenericAndParams.generic.2f5] // CHECK:STDOUT: %X.ref.loc18_33: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.loc10, @GenericAndParams.loc10(constants.%X, constants.%X)> [concrete = constants.%GenericAndParams.type.504] +// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.loc10, @GenericAndParams.loc10(constants.%X, constants.%X)> [concrete = constants.%GenericAndParams.type.b2b] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @NotGenericNoParams { -// CHECK:STDOUT: %Self: %NotGenericNoParams.type = symbolic_binding Self, 0 [symbolic = constants.%Self.52c] +// CHECK:STDOUT: %Self: %NotGenericNoParams.type = symbolic_binding Self, 0 [symbolic = constants.%Self.6f8] // CHECK:STDOUT: %NotGenericNoParams.WithSelf.decl = interface_with_self_decl @NotGenericNoParams [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -199,7 +199,7 @@ interface Bar[T:! type] {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @NotGenericButParams { -// CHECK:STDOUT: %Self: %NotGenericButParams.type.25f = symbolic_binding Self, 0 [symbolic = constants.%Self.e41] +// CHECK:STDOUT: %Self: %NotGenericButParams.type.21c = symbolic_binding Self, 0 [symbolic = constants.%Self.9dd] // CHECK:STDOUT: %NotGenericButParams.WithSelf.decl = interface_with_self_decl @NotGenericButParams [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -213,11 +213,11 @@ interface Bar[T:! type] {} // CHECK:STDOUT: %T.loc6_29.1: type = symbolic_binding T, 0 [symbolic = %T.loc6_29.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.loc6, @GenericAndParams.loc6(%T.loc6_29.1)> [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.de5)] -// CHECK:STDOUT: %Self.loc6_38.2: @GenericAndParams.loc6.%GenericAndParams.type (%GenericAndParams.type.de5) = symbolic_binding Self, 1 [symbolic = %Self.loc6_38.2 (constants.%Self.651)] +// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.loc6, @GenericAndParams.loc6(%T.loc6_29.1)> [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.b17)] +// CHECK:STDOUT: %Self.loc6_38.2: @GenericAndParams.loc6.%GenericAndParams.type (%GenericAndParams.type.b17) = symbolic_binding Self, 1 [symbolic = %Self.loc6_38.2 (constants.%Self.cda)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc6_38.1: @GenericAndParams.loc6.%GenericAndParams.type (%GenericAndParams.type.de5) = symbolic_binding Self, 1 [symbolic = %Self.loc6_38.2 (constants.%Self.651)] +// CHECK:STDOUT: %Self.loc6_38.1: @GenericAndParams.loc6.%GenericAndParams.type (%GenericAndParams.type.b17) = symbolic_binding Self, 1 [symbolic = %Self.loc6_38.2 (constants.%Self.cda)] // CHECK:STDOUT: %GenericAndParams.WithSelf.decl = interface_with_self_decl @GenericAndParams.loc6 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -231,11 +231,11 @@ interface Bar[T:! type] {} // CHECK:STDOUT: generic interface @GenericNoParams(@C.%T.loc8_10.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %GenericNoParams.type: type = facet_type <@GenericNoParams, @GenericNoParams(%T)> [symbolic = %GenericNoParams.type (constants.%GenericNoParams.type.41a)] -// CHECK:STDOUT: %Self.loc9_29.2: @GenericNoParams.%GenericNoParams.type (%GenericNoParams.type.41a) = symbolic_binding Self, 1 [symbolic = %Self.loc9_29.2 (constants.%Self.be7)] +// CHECK:STDOUT: %GenericNoParams.type: type = facet_type <@GenericNoParams, @GenericNoParams(%T)> [symbolic = %GenericNoParams.type (constants.%GenericNoParams.type.3f5)] +// CHECK:STDOUT: %Self.loc9_29.2: @GenericNoParams.%GenericNoParams.type (%GenericNoParams.type.3f5) = symbolic_binding Self, 1 [symbolic = %Self.loc9_29.2 (constants.%Self.417)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc9_29.1: @GenericNoParams.%GenericNoParams.type (%GenericNoParams.type.41a) = symbolic_binding Self, 1 [symbolic = %Self.loc9_29.2 (constants.%Self.be7)] +// CHECK:STDOUT: %Self.loc9_29.1: @GenericNoParams.%GenericNoParams.type (%GenericNoParams.type.3f5) = symbolic_binding Self, 1 [symbolic = %Self.loc9_29.2 (constants.%Self.417)] // CHECK:STDOUT: %GenericNoParams.WithSelf.decl = interface_with_self_decl @GenericNoParams [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -251,11 +251,11 @@ interface Bar[T:! type] {} // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.loc10, @GenericAndParams.loc10(%T, %U.loc10_31.1)> [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.af8)] -// CHECK:STDOUT: %Self.loc10_40.2: @GenericAndParams.loc10.%GenericAndParams.type (%GenericAndParams.type.af8) = symbolic_binding Self, 2 [symbolic = %Self.loc10_40.2 (constants.%Self.528)] +// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.loc10, @GenericAndParams.loc10(%T, %U.loc10_31.1)> [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.ba4)] +// CHECK:STDOUT: %Self.loc10_40.2: @GenericAndParams.loc10.%GenericAndParams.type (%GenericAndParams.type.ba4) = symbolic_binding Self, 2 [symbolic = %Self.loc10_40.2 (constants.%Self.72e)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc10_40.1: @GenericAndParams.loc10.%GenericAndParams.type (%GenericAndParams.type.af8) = symbolic_binding Self, 2 [symbolic = %Self.loc10_40.2 (constants.%Self.528)] +// CHECK:STDOUT: %Self.loc10_40.1: @GenericAndParams.loc10.%GenericAndParams.type (%GenericAndParams.type.ba4) = symbolic_binding Self, 2 [symbolic = %Self.loc10_40.2 (constants.%Self.72e)] // CHECK:STDOUT: %GenericAndParams.WithSelf.decl = interface_with_self_decl @GenericAndParams.loc10 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -284,9 +284,9 @@ interface Bar[T:! type] {} // CHECK:STDOUT: witness = %NotGenericButParams.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @X.as.GenericAndParams.impl.c9e: %X.ref.loc16_6 as %GenericAndParams.type { -// CHECK:STDOUT: %GenericAndParams.impl_witness_table = impl_witness_table (), @X.as.GenericAndParams.impl.c9e [concrete] -// CHECK:STDOUT: %GenericAndParams.impl_witness: = impl_witness %GenericAndParams.impl_witness_table [concrete = constants.%GenericAndParams.impl_witness.194] +// CHECK:STDOUT: impl @X.as.GenericAndParams.impl.44a: %X.ref.loc16_6 as %GenericAndParams.type { +// CHECK:STDOUT: %GenericAndParams.impl_witness_table = impl_witness_table (), @X.as.GenericAndParams.impl.44a [concrete] +// CHECK:STDOUT: %GenericAndParams.impl_witness: = impl_witness %GenericAndParams.impl_witness_table [concrete = constants.%GenericAndParams.impl_witness.925] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %GenericAndParams.type @@ -302,9 +302,9 @@ interface Bar[T:! type] {} // CHECK:STDOUT: witness = %GenericNoParams.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @X.as.GenericAndParams.impl.918: %X.ref.loc18_6 as %GenericAndParams.type { -// CHECK:STDOUT: %GenericAndParams.impl_witness_table = impl_witness_table (), @X.as.GenericAndParams.impl.918 [concrete] -// CHECK:STDOUT: %GenericAndParams.impl_witness: = impl_witness %GenericAndParams.impl_witness_table [concrete = constants.%GenericAndParams.impl_witness.d85] +// CHECK:STDOUT: impl @X.as.GenericAndParams.impl.5ef: %X.ref.loc18_6 as %GenericAndParams.type { +// CHECK:STDOUT: %GenericAndParams.impl_witness_table = impl_witness_table (), @X.as.GenericAndParams.impl.5ef [concrete] +// CHECK:STDOUT: %GenericAndParams.impl_witness: = impl_witness %GenericAndParams.impl_witness_table [concrete = constants.%GenericAndParams.impl_witness.b47] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: extend %GenericAndParams.type @@ -315,13 +315,13 @@ interface Bar[T:! type] {} // CHECK:STDOUT: %T.loc8_10.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_10.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericNoParams.type: type = facet_type <@GenericNoParams, @GenericNoParams(%T.loc8_10.1)> [symbolic = %GenericNoParams.type (constants.%GenericNoParams.type.41a)] -// CHECK:STDOUT: %GenericAndParams.type: type = generic_interface_type @GenericAndParams.loc10, @C(%T.loc8_10.1) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.3a6)] -// CHECK:STDOUT: %GenericAndParams.generic: @C.%GenericAndParams.type (%GenericAndParams.type.3a6) = struct_value () [symbolic = %GenericAndParams.generic (constants.%GenericAndParams.generic.83d)] +// CHECK:STDOUT: %GenericNoParams.type: type = facet_type <@GenericNoParams, @GenericNoParams(%T.loc8_10.1)> [symbolic = %GenericNoParams.type (constants.%GenericNoParams.type.3f5)] +// CHECK:STDOUT: %GenericAndParams.type: type = generic_interface_type @GenericAndParams.loc10, @C(%T.loc8_10.1) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.c43)] +// CHECK:STDOUT: %GenericAndParams.generic: @C.%GenericAndParams.type (%GenericAndParams.type.c43) = struct_value () [symbolic = %GenericAndParams.generic (constants.%GenericAndParams.generic.079)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %GenericNoParams.decl: type = interface_decl @GenericNoParams [symbolic = @C.%GenericNoParams.type (constants.%GenericNoParams.type.41a)] {} {} -// CHECK:STDOUT: %GenericAndParams.decl: @C.%GenericAndParams.type (%GenericAndParams.type.3a6) = interface_decl @GenericAndParams.loc10 [symbolic = @C.%GenericAndParams.generic (constants.%GenericAndParams.generic.83d)] { +// CHECK:STDOUT: %GenericNoParams.decl: type = interface_decl @GenericNoParams [symbolic = @C.%GenericNoParams.type (constants.%GenericNoParams.type.3f5)] {} {} +// CHECK:STDOUT: %GenericAndParams.decl: @C.%GenericAndParams.type (%GenericAndParams.type.c43) = interface_decl @GenericAndParams.loc10 [symbolic = @C.%GenericAndParams.generic (constants.%GenericAndParams.generic.079)] { // CHECK:STDOUT: %U.patt: %pattern_type = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10_34.1: type = splice_block %.loc10_34.2 [concrete = type] { @@ -334,7 +334,7 @@ interface Bar[T:! type] {} // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.1f9 +// CHECK:STDOUT: .Self = constants.%C.1d0 // CHECK:STDOUT: .GenericNoParams = %GenericNoParams.decl // CHECK:STDOUT: .GenericAndParams = %GenericAndParams.decl // CHECK:STDOUT: } @@ -348,11 +348,11 @@ interface Bar[T:! type] {} // CHECK:STDOUT: .Self = constants.%X // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @NotGenericNoParams.WithSelf(constants.%Self.52c) { +// CHECK:STDOUT: specific @NotGenericNoParams.WithSelf(constants.%Self.6f8) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @NotGenericButParams.WithSelf(constants.%Self.e41) { +// CHECK:STDOUT: specific @NotGenericButParams.WithSelf(constants.%Self.9dd) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -360,7 +360,7 @@ interface Bar[T:! type] {} // CHECK:STDOUT: %T.loc6_29.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericAndParams.WithSelf.loc6(constants.%T, constants.%Self.651) {} +// CHECK:STDOUT: specific @GenericAndParams.WithSelf.loc6(constants.%T, constants.%Self.cda) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { // CHECK:STDOUT: %T.loc8_10.1 => constants.%T @@ -368,13 +368,13 @@ interface Bar[T:! type] {} // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericNoParams(constants.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericNoParams.WithSelf(constants.%T, constants.%Self.be7) {} +// CHECK:STDOUT: specific @GenericNoParams.WithSelf(constants.%T, constants.%Self.417) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericAndParams.loc10(constants.%T, constants.%U) { // CHECK:STDOUT: %U.loc10_31.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericAndParams.WithSelf.loc10(constants.%T, constants.%U, constants.%Self.528) {} +// CHECK:STDOUT: specific @GenericAndParams.WithSelf.loc10(constants.%T, constants.%U, constants.%Self.72e) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @NotGenericNoParams.WithSelf(constants.%NotGenericNoParams.facet) { // CHECK:STDOUT: !definition: @@ -388,15 +388,15 @@ interface Bar[T:! type] {} // CHECK:STDOUT: %T.loc6_29.1 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.0d2 -// CHECK:STDOUT: %Self.loc6_38.2 => constants.%Self.15c +// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.8ab +// CHECK:STDOUT: %Self.loc6_38.2 => constants.%Self.34f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericAndParams.WithSelf.loc6(constants.%X, constants.%Self.651) { +// CHECK:STDOUT: specific @GenericAndParams.WithSelf.loc6(constants.%X, constants.%Self.cda) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericAndParams.WithSelf.loc6(constants.%X, constants.%GenericAndParams.facet.845) { +// CHECK:STDOUT: specific @GenericAndParams.WithSelf.loc6(constants.%X, constants.%GenericAndParams.facet.9e9) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -404,19 +404,19 @@ interface Bar[T:! type] {} // CHECK:STDOUT: %T.loc8_10.1 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericNoParams.type => constants.%GenericNoParams.type.ff6 -// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.7d5 -// CHECK:STDOUT: %GenericAndParams.generic => constants.%GenericAndParams.generic.13c +// CHECK:STDOUT: %GenericNoParams.type => constants.%GenericNoParams.type.670 +// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.0ab +// CHECK:STDOUT: %GenericAndParams.generic => constants.%GenericAndParams.generic.2f5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericNoParams(constants.%X) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %GenericNoParams.type => constants.%GenericNoParams.type.ff6 -// CHECK:STDOUT: %Self.loc9_29.2 => constants.%Self.018 +// CHECK:STDOUT: %GenericNoParams.type => constants.%GenericNoParams.type.670 +// CHECK:STDOUT: %Self.loc9_29.2 => constants.%Self.998 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericNoParams.WithSelf(constants.%X, constants.%Self.be7) { +// CHECK:STDOUT: specific @GenericNoParams.WithSelf(constants.%X, constants.%Self.417) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -429,36 +429,36 @@ interface Bar[T:! type] {} // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.504 -// CHECK:STDOUT: %Self.loc10_40.2 => constants.%Self.500 +// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.b2b +// CHECK:STDOUT: %Self.loc10_40.2 => constants.%Self.883 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericAndParams.WithSelf.loc10(constants.%X, constants.%X, constants.%Self.528) { +// CHECK:STDOUT: specific @GenericAndParams.WithSelf.loc10(constants.%X, constants.%X, constants.%Self.72e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericAndParams.WithSelf.loc10(constants.%X, constants.%X, constants.%GenericAndParams.facet.f27) { +// CHECK:STDOUT: specific @GenericAndParams.WithSelf.loc10(constants.%X, constants.%X, constants.%GenericAndParams.facet.abe) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_non_generic_implicit_params.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %A.type.0af: type = generic_interface_type @A [concrete] -// CHECK:STDOUT: %A.generic: %A.type.0af = struct_value () [concrete] -// CHECK:STDOUT: %A.type.026: type = facet_type <@A> [concrete] -// CHECK:STDOUT: %Self: %A.type.026 = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %A.type.55a: type = generic_interface_type @A [concrete] +// CHECK:STDOUT: %A.generic: %A.type.55a = struct_value () [concrete] +// CHECK:STDOUT: %A.type.313: type = facet_type <@A> [concrete] +// CHECK:STDOUT: %Self: %A.type.313 = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .A = %A.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %A.decl: %A.type.0af = interface_decl @A [concrete = constants.%A.generic] {} {} +// CHECK:STDOUT: %A.decl: %A.type.55a = interface_decl @A [concrete = constants.%A.generic] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @A { -// CHECK:STDOUT: %Self: %A.type.026 = symbolic_binding Self, 0 [symbolic = constants.%Self] +// CHECK:STDOUT: %Self: %A.type.313 = symbolic_binding Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %A.WithSelf.decl = interface_with_self_decl @A [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -473,21 +473,21 @@ interface Bar[T:! type] {} // CHECK:STDOUT: --- fail_non_generic_params.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %A.type.0af: type = generic_interface_type @A [concrete] -// CHECK:STDOUT: %A.generic: %A.type.0af = struct_value () [concrete] -// CHECK:STDOUT: %A.type.026: type = facet_type <@A> [concrete] -// CHECK:STDOUT: %Self: %A.type.026 = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %A.type.55a: type = generic_interface_type @A [concrete] +// CHECK:STDOUT: %A.generic: %A.type.55a = struct_value () [concrete] +// CHECK:STDOUT: %A.type.313: type = facet_type <@A> [concrete] +// CHECK:STDOUT: %Self: %A.type.313 = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .A = %A.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %A.decl: %A.type.0af = interface_decl @A [concrete = constants.%A.generic] {} {} +// CHECK:STDOUT: %A.decl: %A.type.55a = interface_decl @A [concrete = constants.%A.generic] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @A { -// CHECK:STDOUT: %Self: %A.type.026 = symbolic_binding Self, 0 [symbolic = constants.%Self] +// CHECK:STDOUT: %Self: %A.type.313 = symbolic_binding Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %A.WithSelf.decl = interface_with_self_decl @A [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -502,21 +502,21 @@ interface Bar[T:! type] {} // CHECK:STDOUT: --- fail_implicit_params_only_empty.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %Bar.type.d3b: type = generic_interface_type @Bar [concrete] -// CHECK:STDOUT: %Bar.generic: %Bar.type.d3b = struct_value () [concrete] -// CHECK:STDOUT: %Bar.type.1c8: type = facet_type <@Bar> [concrete] -// CHECK:STDOUT: %Self: %Bar.type.1c8 = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Bar.type.3f0: type = generic_interface_type @Bar [concrete] +// CHECK:STDOUT: %Bar.generic: %Bar.type.3f0 = struct_value () [concrete] +// CHECK:STDOUT: %Bar.type.131: type = facet_type <@Bar> [concrete] +// CHECK:STDOUT: %Self: %Bar.type.131 = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Bar = %Bar.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %Bar.decl: %Bar.type.d3b = interface_decl @Bar [concrete = constants.%Bar.generic] {} {} +// CHECK:STDOUT: %Bar.decl: %Bar.type.3f0 = interface_decl @Bar [concrete = constants.%Bar.generic] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Bar { -// CHECK:STDOUT: %Self: %Bar.type.1c8 = symbolic_binding Self, 0 [symbolic = constants.%Self] +// CHECK:STDOUT: %Self: %Bar.type.131 = symbolic_binding Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %Bar.WithSelf.decl = interface_with_self_decl @Bar [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -535,17 +535,17 @@ interface Bar[T:! type] {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Bar.type.d3b: type = generic_interface_type @Bar [concrete] -// CHECK:STDOUT: %Bar.generic: %Bar.type.d3b = struct_value () [concrete] -// CHECK:STDOUT: %Bar.type.a09: type = facet_type <@Bar, @Bar(%T)> [symbolic] -// CHECK:STDOUT: %Self: %Bar.type.a09 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Bar.type.3f0: type = generic_interface_type @Bar [concrete] +// CHECK:STDOUT: %Bar.generic: %Bar.type.3f0 = struct_value () [concrete] +// CHECK:STDOUT: %Bar.type.e6f: type = facet_type <@Bar, @Bar(%T)> [symbolic] +// CHECK:STDOUT: %Self: %Bar.type.e6f = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Bar = %Bar.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %Bar.decl: %Bar.type.d3b = interface_decl @Bar [concrete = constants.%Bar.generic] { +// CHECK:STDOUT: %Bar.decl: %Bar.type.3f0 = interface_decl @Bar [concrete = constants.%Bar.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_19.1: type = splice_block %.loc8_19.2 [concrete = type] { @@ -560,11 +560,11 @@ interface Bar[T:! type] {} // CHECK:STDOUT: %T.loc8_16.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_16.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar, @Bar(%T.loc8_16.1)> [symbolic = %Bar.type (constants.%Bar.type.a09)] -// CHECK:STDOUT: %Self.loc8_25.2: @Bar.%Bar.type (%Bar.type.a09) = symbolic_binding Self, 1 [symbolic = %Self.loc8_25.2 (constants.%Self)] +// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar, @Bar(%T.loc8_16.1)> [symbolic = %Bar.type (constants.%Bar.type.e6f)] +// CHECK:STDOUT: %Self.loc8_25.2: @Bar.%Bar.type (%Bar.type.e6f) = symbolic_binding Self, 1 [symbolic = %Self.loc8_25.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc8_25.1: @Bar.%Bar.type (%Bar.type.a09) = symbolic_binding Self, 1 [symbolic = %Self.loc8_25.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc8_25.1: @Bar.%Bar.type (%Bar.type.e6f) = symbolic_binding Self, 1 [symbolic = %Self.loc8_25.2 (constants.%Self)] // CHECK:STDOUT: %Bar.WithSelf.decl = interface_with_self_decl @Bar [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/interface/import.carbon b/toolchain/check/testdata/interface/import.carbon index b305a8104c99..678f03af246d 100644 --- a/toolchain/check/testdata/interface/import.carbon +++ b/toolchain/check/testdata/interface/import.carbon @@ -56,32 +56,32 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Empty.type: type = facet_type <@Empty> [concrete] -// CHECK:STDOUT: %Self.2f3: %Empty.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.d44: %Empty.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Basic.type: type = facet_type <@Basic> [concrete] -// CHECK:STDOUT: %Self.eb3: %Basic.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.89c: %Basic.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Basic.assoc_type: type = assoc_entity_type @Basic [concrete] -// CHECK:STDOUT: %assoc0.f6c: %Basic.assoc_type = assoc_entity element0, @Basic.WithSelf.%T [concrete] -// CHECK:STDOUT: %Basic.WithSelf.F.type: type = fn_type @Basic.WithSelf.F, @Basic.WithSelf(%Self.eb3) [symbolic] +// CHECK:STDOUT: %assoc0.05f: %Basic.assoc_type = assoc_entity element0, @Basic.WithSelf.%T [concrete] +// CHECK:STDOUT: %Basic.WithSelf.F.type: type = fn_type @Basic.WithSelf.F, @Basic.WithSelf(%Self.89c) [symbolic] // CHECK:STDOUT: %Basic.WithSelf.F: %Basic.WithSelf.F.type = struct_value () [symbolic] -// CHECK:STDOUT: %assoc1.8d0: %Basic.assoc_type = assoc_entity element1, @Basic.WithSelf.%Basic.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %assoc1.cd8: %Basic.assoc_type = assoc_entity element1, @Basic.WithSelf.%Basic.WithSelf.F.decl [concrete] // CHECK:STDOUT: %ForwardDeclared.type: type = facet_type <@ForwardDeclared> [concrete] -// CHECK:STDOUT: %Self.c9a: %ForwardDeclared.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.d56: %ForwardDeclared.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %ForwardDeclared.assoc_type: type = assoc_entity_type @ForwardDeclared [concrete] -// CHECK:STDOUT: %assoc0.88b: %ForwardDeclared.assoc_type = assoc_entity element0, @ForwardDeclared.WithSelf.%T [concrete] -// CHECK:STDOUT: %ForwardDeclared.WithSelf.F.type: type = fn_type @ForwardDeclared.WithSelf.F, @ForwardDeclared.WithSelf(%Self.c9a) [symbolic] +// CHECK:STDOUT: %assoc0.10f: %ForwardDeclared.assoc_type = assoc_entity element0, @ForwardDeclared.WithSelf.%T [concrete] +// CHECK:STDOUT: %ForwardDeclared.WithSelf.F.type: type = fn_type @ForwardDeclared.WithSelf.F, @ForwardDeclared.WithSelf(%Self.d56) [symbolic] // CHECK:STDOUT: %ForwardDeclared.WithSelf.F: %ForwardDeclared.WithSelf.F.type = struct_value () [symbolic] -// CHECK:STDOUT: %assoc1.c90: %ForwardDeclared.assoc_type = assoc_entity element1, @ForwardDeclared.WithSelf.%ForwardDeclared.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %assoc1.e3d: %ForwardDeclared.assoc_type = assoc_entity element1, @ForwardDeclared.WithSelf.%ForwardDeclared.WithSelf.F.decl [concrete] // CHECK:STDOUT: %struct_type.f: type = struct_type {.f: %ForwardDeclared.type} [concrete] -// CHECK:STDOUT: %pattern_type.748: type = pattern_type %struct_type.f [concrete] +// CHECK:STDOUT: %pattern_type.1c1: type = pattern_type %struct_type.f [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.a97: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%struct_type.f) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.f61: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%struct_type.f) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.b8e: %T.as.DefaultOrUnformed.impl.Op.type.f61 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %struct_type.f, (%DefaultOrUnformed.impl_witness.a97) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.b8e, @T.as.DefaultOrUnformed.impl.Op(%struct_type.f) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.c59: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%struct_type.f) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.095: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%struct_type.f) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.3cc: %T.as.DefaultOrUnformed.impl.Op.type.095 = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %struct_type.f, (%DefaultOrUnformed.impl_witness.c59) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.3cc, @T.as.DefaultOrUnformed.impl.Op(%struct_type.f) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -91,8 +91,8 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -108,8 +108,8 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: %Basic.decl: type = interface_decl @Basic [concrete = constants.%Basic.type] {} {} // CHECK:STDOUT: %ForwardDeclared.decl: type = interface_decl @ForwardDeclared [concrete = constants.%ForwardDeclared.type] {} {} // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %f_ref.patt: %pattern_type.748 = ref_binding_pattern f_ref [concrete] -// CHECK:STDOUT: %f_ref.var_patt: %pattern_type.748 = var_pattern %f_ref.patt [concrete] +// CHECK:STDOUT: %f_ref.patt: %pattern_type.1c1 = ref_binding_pattern f_ref [concrete] +// CHECK:STDOUT: %f_ref.var_patt: %pattern_type.1c1 = var_pattern %f_ref.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %f_ref.var: ref %struct_type.f = var %f_ref.var_patt [concrete] // CHECK:STDOUT: %.loc20: type = splice_block %struct_type.f [concrete = constants.%struct_type.f] { @@ -120,7 +120,7 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Empty { -// CHECK:STDOUT: %Self: %Empty.type = symbolic_binding Self, 0 [symbolic = constants.%Self.2f3] +// CHECK:STDOUT: %Self: %Empty.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d44] // CHECK:STDOUT: %Empty.WithSelf.decl = interface_with_self_decl @Empty [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -131,15 +131,15 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Basic { -// CHECK:STDOUT: %Self: %Basic.type = symbolic_binding Self, 0 [symbolic = constants.%Self.eb3] +// CHECK:STDOUT: %Self: %Basic.type = symbolic_binding Self, 0 [symbolic = constants.%Self.89c] // CHECK:STDOUT: %Basic.WithSelf.decl = interface_with_self_decl @Basic [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %T: type = assoc_const_decl @T.loc8 [concrete] { -// CHECK:STDOUT: %assoc0: %Basic.assoc_type = assoc_entity element0, @Basic.WithSelf.%T [concrete = constants.%assoc0.f6c] +// CHECK:STDOUT: %assoc0: %Basic.assoc_type = assoc_entity element0, @Basic.WithSelf.%T [concrete = constants.%assoc0.05f] // CHECK:STDOUT: } // CHECK:STDOUT: %Basic.WithSelf.F.decl: @Basic.WithSelf.%Basic.WithSelf.F.type (%Basic.WithSelf.F.type) = fn_decl @Basic.WithSelf.F [symbolic = @Basic.WithSelf.%Basic.WithSelf.F (constants.%Basic.WithSelf.F)] {} {} -// CHECK:STDOUT: %assoc1: %Basic.assoc_type = assoc_entity element1, %Basic.WithSelf.F.decl [concrete = constants.%assoc1.8d0] +// CHECK:STDOUT: %assoc1: %Basic.assoc_type = assoc_entity element1, %Basic.WithSelf.F.decl [concrete = constants.%assoc1.cd8] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -151,15 +151,15 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @ForwardDeclared { -// CHECK:STDOUT: %Self: %ForwardDeclared.type = symbolic_binding Self, 0 [symbolic = constants.%Self.c9a] +// CHECK:STDOUT: %Self: %ForwardDeclared.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d56] // CHECK:STDOUT: %ForwardDeclared.WithSelf.decl = interface_with_self_decl @ForwardDeclared [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %T: type = assoc_const_decl @T.loc16 [concrete] { -// CHECK:STDOUT: %assoc0: %ForwardDeclared.assoc_type = assoc_entity element0, @ForwardDeclared.WithSelf.%T [concrete = constants.%assoc0.88b] +// CHECK:STDOUT: %assoc0: %ForwardDeclared.assoc_type = assoc_entity element0, @ForwardDeclared.WithSelf.%T [concrete = constants.%assoc0.10f] // CHECK:STDOUT: } // CHECK:STDOUT: %ForwardDeclared.WithSelf.F.decl: @ForwardDeclared.WithSelf.%ForwardDeclared.WithSelf.F.type (%ForwardDeclared.WithSelf.F.type) = fn_decl @ForwardDeclared.WithSelf.F [symbolic = @ForwardDeclared.WithSelf.%ForwardDeclared.WithSelf.F (constants.%ForwardDeclared.WithSelf.F)] {} {} -// CHECK:STDOUT: %assoc1: %ForwardDeclared.assoc_type = assoc_entity element1, %ForwardDeclared.WithSelf.F.decl [concrete = constants.%assoc1.c90] +// CHECK:STDOUT: %assoc1: %ForwardDeclared.assoc_type = assoc_entity element1, %ForwardDeclared.WithSelf.F.decl [concrete = constants.%assoc1.e3d] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -180,77 +180,77 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%struct_type.f, (constants.%DefaultOrUnformed.impl_witness.a97) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%struct_type.f, (constants.%DefaultOrUnformed.impl_witness.c59) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc20_33.1: %DefaultOrUnformed.type = converted constants.%struct_type.f, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc20_33.1 [concrete = constants.%struct_type.f] // CHECK:STDOUT: %.loc20_33.2: type = converted %.loc20_33.1, %as_type [concrete = constants.%struct_type.f] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.b8e, @T.as.DefaultOrUnformed.impl.Op(constants.%struct_type.f) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.3cc, @T.as.DefaultOrUnformed.impl.Op(constants.%struct_type.f) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %struct_type.f = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign file.%f_ref.var, %T.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Empty.WithSelf(constants.%Self.2f3) {} +// CHECK:STDOUT: specific @Empty.WithSelf(constants.%Self.d44) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Basic.WithSelf(constants.%Self.eb3) {} +// CHECK:STDOUT: specific @Basic.WithSelf(constants.%Self.89c) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Basic.WithSelf.F(constants.%Self.eb3) {} +// CHECK:STDOUT: specific @Basic.WithSelf.F(constants.%Self.89c) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @ForwardDeclared.WithSelf(constants.%Self.c9a) { +// CHECK:STDOUT: specific @ForwardDeclared.WithSelf(constants.%Self.d56) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.c9a +// CHECK:STDOUT: %Self => constants.%Self.d56 // CHECK:STDOUT: %ForwardDeclared.WithSelf.F.type => constants.%ForwardDeclared.WithSelf.F.type // CHECK:STDOUT: %ForwardDeclared.WithSelf.F => constants.%ForwardDeclared.WithSelf.F // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ForwardDeclared.WithSelf.F(constants.%Self.c9a) {} +// CHECK:STDOUT: specific @ForwardDeclared.WithSelf.F(constants.%Self.d56) {} // CHECK:STDOUT: // CHECK:STDOUT: --- b.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Empty.type: type = facet_type <@Empty> [concrete] -// CHECK:STDOUT: %Self.1f1: %Empty.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %pattern_type.e97: type = pattern_type %Empty.type [concrete] +// CHECK:STDOUT: %Self.4e8: %Empty.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.894: type = pattern_type %Empty.type [concrete] // CHECK:STDOUT: %UseEmpty.type: type = fn_type @UseEmpty [concrete] // CHECK:STDOUT: %UseEmpty: %UseEmpty.type = struct_value () [concrete] // CHECK:STDOUT: %Basic.type: type = facet_type <@Basic> [concrete] -// CHECK:STDOUT: %Self.fe4: %Basic.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Basic.WithSelf.F.type: type = fn_type @Basic.WithSelf.F, @Basic.WithSelf(%Self.fe4) [symbolic] +// CHECK:STDOUT: %Self.a33: %Basic.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Basic.WithSelf.F.type: type = fn_type @Basic.WithSelf.F, @Basic.WithSelf(%Self.a33) [symbolic] // CHECK:STDOUT: %Basic.WithSelf.F: %Basic.WithSelf.F.type = struct_value () [symbolic] -// CHECK:STDOUT: %pattern_type.620: type = pattern_type %Basic.type [concrete] +// CHECK:STDOUT: %pattern_type.7fe: type = pattern_type %Basic.type [concrete] // CHECK:STDOUT: %UseBasic.type: type = fn_type @UseBasic [concrete] // CHECK:STDOUT: %UseBasic: %UseBasic.type = struct_value () [concrete] // CHECK:STDOUT: %ForwardDeclared.type: type = facet_type <@ForwardDeclared> [concrete] -// CHECK:STDOUT: %Self.593: %ForwardDeclared.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %ForwardDeclared.WithSelf.F.type: type = fn_type @ForwardDeclared.WithSelf.F, @ForwardDeclared.WithSelf(%Self.593) [symbolic] +// CHECK:STDOUT: %Self.603: %ForwardDeclared.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %ForwardDeclared.WithSelf.F.type: type = fn_type @ForwardDeclared.WithSelf.F, @ForwardDeclared.WithSelf(%Self.603) [symbolic] // CHECK:STDOUT: %ForwardDeclared.WithSelf.F: %ForwardDeclared.WithSelf.F.type = struct_value () [symbolic] -// CHECK:STDOUT: %pattern_type.b34: type = pattern_type %ForwardDeclared.type [concrete] +// CHECK:STDOUT: %pattern_type.566: type = pattern_type %ForwardDeclared.type [concrete] // CHECK:STDOUT: %UseForwardDeclared.type: type = fn_type @UseForwardDeclared [concrete] // CHECK:STDOUT: %UseForwardDeclared: %UseForwardDeclared.type = struct_value () [concrete] // CHECK:STDOUT: %Basic.assoc_type: type = assoc_entity_type @Basic [concrete] -// CHECK:STDOUT: %assoc0.28b: %Basic.assoc_type = assoc_entity element0, imports.%Main.import_ref.388 [concrete] -// CHECK:STDOUT: %assoc1.1cd: %Basic.assoc_type = assoc_entity element1, imports.%Main.import_ref.01b [concrete] +// CHECK:STDOUT: %assoc0.2b3: %Basic.assoc_type = assoc_entity element0, imports.%Main.import_ref.98e [concrete] +// CHECK:STDOUT: %assoc1.20f: %Basic.assoc_type = assoc_entity element1, imports.%Main.import_ref.3c9 [concrete] // CHECK:STDOUT: %ForwardDeclared.assoc_type: type = assoc_entity_type @ForwardDeclared [concrete] -// CHECK:STDOUT: %assoc0.53a: %ForwardDeclared.assoc_type = assoc_entity element0, imports.%Main.import_ref.d70 [concrete] -// CHECK:STDOUT: %assoc1.dfa: %ForwardDeclared.assoc_type = assoc_entity element1, imports.%Main.import_ref.d6e [concrete] -// CHECK:STDOUT: %ptr.03f: type = ptr_type %ForwardDeclared.type [concrete] -// CHECK:STDOUT: %pattern_type.2ee: type = pattern_type %ptr.03f [concrete] +// CHECK:STDOUT: %assoc0.096: %ForwardDeclared.assoc_type = assoc_entity element0, imports.%Main.import_ref.643 [concrete] +// CHECK:STDOUT: %assoc1.c68: %ForwardDeclared.assoc_type = assoc_entity element1, imports.%Main.import_ref.e95 [concrete] +// CHECK:STDOUT: %ptr.b71: type = ptr_type %ForwardDeclared.type [concrete] +// CHECK:STDOUT: %pattern_type.7a7: type = pattern_type %ptr.b71 [concrete] // CHECK:STDOUT: %struct_type.f: type = struct_type {.f: %ForwardDeclared.type} [concrete] -// CHECK:STDOUT: %pattern_type.748: type = pattern_type %struct_type.f [concrete] -// CHECK:STDOUT: %.cba: ref %ForwardDeclared.type = struct_access imports.%f_ref.var, element0 [concrete] -// CHECK:STDOUT: %addr: %ptr.03f = addr_of %.cba [concrete] +// CHECK:STDOUT: %pattern_type.1c1: type = pattern_type %struct_type.f [concrete] +// CHECK:STDOUT: %.81b: ref %ForwardDeclared.type = struct_access imports.%f_ref.var, element0 [concrete] +// CHECK:STDOUT: %addr: %ptr.b71 = addr_of %.81b [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.b4d: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%ForwardDeclared.type) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.816: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%ForwardDeclared.type) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.c1c: %ptr.as.Copy.impl.Op.type.816 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.03f, (%Copy.impl_witness.b4d) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.51e: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.4ff: type = fn_type_with_self_type %Copy.WithSelf.Op.type.51e, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.c1c [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.c1c, @ptr.as.Copy.impl.Op(%ForwardDeclared.type) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.fe0: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%ForwardDeclared.type) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c30: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%ForwardDeclared.type) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.a7b: %ptr.as.Copy.impl.Op.type.c30 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.b71, (%Copy.impl_witness.fe0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.b52: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.a22: type = fn_type_with_self_type %Copy.WithSelf.Op.type.b52, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.a7b [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.a7b, @ptr.as.Copy.impl.Op(%ForwardDeclared.type) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -264,29 +264,29 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.dce = import_ref Main//a, loc4_17, unloaded -// CHECK:STDOUT: %Main.import_ref.681: %Basic.assoc_type = import_ref Main//a, loc8_8, loaded [concrete = constants.%assoc0.28b] -// CHECK:STDOUT: %Main.import_ref.dba: %Basic.assoc_type = import_ref Main//a, loc9_9, loaded [concrete = constants.%assoc1.1cd] -// CHECK:STDOUT: %Main.T.eb1 = import_ref Main//a, T, unloaded -// CHECK:STDOUT: %Main.F.969 = import_ref Main//a, F, unloaded -// CHECK:STDOUT: %Main.import_ref.9f4c1e.2: %Basic.type = import_ref Main//a, loc7_17, loaded [symbolic = constants.%Self.fe4] -// CHECK:STDOUT: %Main.import_ref.d80 = import_ref Main//a, loc7_17, unloaded -// CHECK:STDOUT: %Main.import_ref.100: %ForwardDeclared.assoc_type = import_ref Main//a, loc16_8, loaded [concrete = constants.%assoc0.53a] -// CHECK:STDOUT: %Main.import_ref.f46: %ForwardDeclared.assoc_type = import_ref Main//a, loc17_9, loaded [concrete = constants.%assoc1.dfa] -// CHECK:STDOUT: %Main.T.ec6 = import_ref Main//a, T, unloaded -// CHECK:STDOUT: %Main.F.b34 = import_ref Main//a, F, unloaded -// CHECK:STDOUT: %Main.import_ref.af3f82.2: %ForwardDeclared.type = import_ref Main//a, loc15_27, loaded [symbolic = constants.%Self.593] -// CHECK:STDOUT: %Main.import_ref.96e = import_ref Main//a, loc15_27, unloaded -// CHECK:STDOUT: %Main.import_ref.388 = import_ref Main//a, loc8_8, unloaded -// CHECK:STDOUT: %Main.import_ref.01b = import_ref Main//a, loc9_9, unloaded -// CHECK:STDOUT: %Main.import_ref.d70 = import_ref Main//a, loc16_8, unloaded -// CHECK:STDOUT: %Main.import_ref.d6e = import_ref Main//a, loc17_9, unloaded -// CHECK:STDOUT: %f_ref.patt: %pattern_type.748 = ref_binding_pattern f_ref [concrete] -// CHECK:STDOUT: %f_ref.var_patt: %pattern_type.748 = var_pattern %f_ref.patt [concrete] +// CHECK:STDOUT: %Main.import_ref.852 = import_ref Main//a, loc4_17, unloaded +// CHECK:STDOUT: %Main.import_ref.5b8: %Basic.assoc_type = import_ref Main//a, loc8_8, loaded [concrete = constants.%assoc0.2b3] +// CHECK:STDOUT: %Main.import_ref.f7c: %Basic.assoc_type = import_ref Main//a, loc9_9, loaded [concrete = constants.%assoc1.20f] +// CHECK:STDOUT: %Main.T.e1d = import_ref Main//a, T, unloaded +// CHECK:STDOUT: %Main.F.a88 = import_ref Main//a, F, unloaded +// CHECK:STDOUT: %Main.import_ref.316a0d.2: %Basic.type = import_ref Main//a, loc7_17, loaded [symbolic = constants.%Self.a33] +// CHECK:STDOUT: %Main.import_ref.eb6 = import_ref Main//a, loc7_17, unloaded +// CHECK:STDOUT: %Main.import_ref.825: %ForwardDeclared.assoc_type = import_ref Main//a, loc16_8, loaded [concrete = constants.%assoc0.096] +// CHECK:STDOUT: %Main.import_ref.86f: %ForwardDeclared.assoc_type = import_ref Main//a, loc17_9, loaded [concrete = constants.%assoc1.c68] +// CHECK:STDOUT: %Main.T.c9b = import_ref Main//a, T, unloaded +// CHECK:STDOUT: %Main.F.511 = import_ref Main//a, F, unloaded +// CHECK:STDOUT: %Main.import_ref.a75fa2.2: %ForwardDeclared.type = import_ref Main//a, loc15_27, loaded [symbolic = constants.%Self.603] +// CHECK:STDOUT: %Main.import_ref.ef5 = import_ref Main//a, loc15_27, unloaded +// CHECK:STDOUT: %Main.import_ref.98e = import_ref Main//a, loc8_8, unloaded +// CHECK:STDOUT: %Main.import_ref.3c9 = import_ref Main//a, loc9_9, unloaded +// CHECK:STDOUT: %Main.import_ref.643 = import_ref Main//a, loc16_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e95 = import_ref Main//a, loc17_9, unloaded +// CHECK:STDOUT: %f_ref.patt: %pattern_type.1c1 = ref_binding_pattern f_ref [concrete] +// CHECK:STDOUT: %f_ref.var_patt: %pattern_type.1c1 = var_pattern %f_ref.patt [concrete] // CHECK:STDOUT: %f_ref.var: ref %struct_type.f = var %f_ref.var_patt [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -308,56 +308,56 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %UseEmpty.decl: %UseEmpty.type = fn_decl @UseEmpty [concrete = constants.%UseEmpty] { -// CHECK:STDOUT: %e.param_patt: %pattern_type.e97 = value_param_pattern [concrete] -// CHECK:STDOUT: %e.patt: %pattern_type.e97 = at_binding_pattern e, %e.param_patt [concrete] +// CHECK:STDOUT: %e.param_patt: %pattern_type.894 = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.894 = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %e.param: %Empty.type = value_param call_param0 // CHECK:STDOUT: %Empty.ref: type = name_ref Empty, imports.%Main.Empty [concrete = constants.%Empty.type] // CHECK:STDOUT: %e: %Empty.type = value_binding e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %UseBasic.decl: %UseBasic.type = fn_decl @UseBasic [concrete = constants.%UseBasic] { -// CHECK:STDOUT: %e.param_patt: %pattern_type.620 = value_param_pattern [concrete] -// CHECK:STDOUT: %e.patt: %pattern_type.620 = at_binding_pattern e, %e.param_patt [concrete] +// CHECK:STDOUT: %e.param_patt: %pattern_type.7fe = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.7fe = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %e.param: %Basic.type = value_param call_param0 // CHECK:STDOUT: %Basic.ref: type = name_ref Basic, imports.%Main.Basic [concrete = constants.%Basic.type] // CHECK:STDOUT: %e: %Basic.type = value_binding e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %UseForwardDeclared.decl: %UseForwardDeclared.type = fn_decl @UseForwardDeclared [concrete = constants.%UseForwardDeclared] { -// CHECK:STDOUT: %f.param_patt: %pattern_type.b34 = value_param_pattern [concrete] -// CHECK:STDOUT: %f.patt: %pattern_type.b34 = at_binding_pattern f, %f.param_patt [concrete] +// CHECK:STDOUT: %f.param_patt: %pattern_type.566 = value_param_pattern [concrete] +// CHECK:STDOUT: %f.patt: %pattern_type.566 = at_binding_pattern f, %f.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %f.param: %ForwardDeclared.type = value_param call_param0 // CHECK:STDOUT: %ForwardDeclared.ref: type = name_ref ForwardDeclared, imports.%Main.ForwardDeclared [concrete = constants.%ForwardDeclared.type] // CHECK:STDOUT: %f: %ForwardDeclared.type = value_binding f, %f.param // CHECK:STDOUT: } // CHECK:STDOUT: %Basic.ref.loc10: type = name_ref Basic, imports.%Main.Basic [concrete = constants.%Basic.type] -// CHECK:STDOUT: %T.ref.loc10: %Basic.assoc_type = name_ref T, imports.%Main.import_ref.681 [concrete = constants.%assoc0.28b] -// CHECK:STDOUT: %UseBasicT: %Basic.assoc_type = alias_binding UseBasicT, %T.ref.loc10 [concrete = constants.%assoc0.28b] +// CHECK:STDOUT: %T.ref.loc10: %Basic.assoc_type = name_ref T, imports.%Main.import_ref.5b8 [concrete = constants.%assoc0.2b3] +// CHECK:STDOUT: %UseBasicT: %Basic.assoc_type = alias_binding UseBasicT, %T.ref.loc10 [concrete = constants.%assoc0.2b3] // CHECK:STDOUT: %Basic.ref.loc11: type = name_ref Basic, imports.%Main.Basic [concrete = constants.%Basic.type] -// CHECK:STDOUT: %F.ref.loc11: %Basic.assoc_type = name_ref F, imports.%Main.import_ref.dba [concrete = constants.%assoc1.1cd] -// CHECK:STDOUT: %UseBasicF: %Basic.assoc_type = alias_binding UseBasicF, %F.ref.loc11 [concrete = constants.%assoc1.1cd] +// CHECK:STDOUT: %F.ref.loc11: %Basic.assoc_type = name_ref F, imports.%Main.import_ref.f7c [concrete = constants.%assoc1.20f] +// CHECK:STDOUT: %UseBasicF: %Basic.assoc_type = alias_binding UseBasicF, %F.ref.loc11 [concrete = constants.%assoc1.20f] // CHECK:STDOUT: %ForwardDeclared.ref.loc13: type = name_ref ForwardDeclared, imports.%Main.ForwardDeclared [concrete = constants.%ForwardDeclared.type] -// CHECK:STDOUT: %T.ref.loc13: %ForwardDeclared.assoc_type = name_ref T, imports.%Main.import_ref.100 [concrete = constants.%assoc0.53a] -// CHECK:STDOUT: %UseForwardDeclaredT: %ForwardDeclared.assoc_type = alias_binding UseForwardDeclaredT, %T.ref.loc13 [concrete = constants.%assoc0.53a] +// CHECK:STDOUT: %T.ref.loc13: %ForwardDeclared.assoc_type = name_ref T, imports.%Main.import_ref.825 [concrete = constants.%assoc0.096] +// CHECK:STDOUT: %UseForwardDeclaredT: %ForwardDeclared.assoc_type = alias_binding UseForwardDeclaredT, %T.ref.loc13 [concrete = constants.%assoc0.096] // CHECK:STDOUT: %ForwardDeclared.ref.loc14: type = name_ref ForwardDeclared, imports.%Main.ForwardDeclared [concrete = constants.%ForwardDeclared.type] -// CHECK:STDOUT: %F.ref.loc14: %ForwardDeclared.assoc_type = name_ref F, imports.%Main.import_ref.f46 [concrete = constants.%assoc1.dfa] -// CHECK:STDOUT: %UseForwardDeclaredF: %ForwardDeclared.assoc_type = alias_binding UseForwardDeclaredF, %F.ref.loc14 [concrete = constants.%assoc1.dfa] +// CHECK:STDOUT: %F.ref.loc14: %ForwardDeclared.assoc_type = name_ref F, imports.%Main.import_ref.86f [concrete = constants.%assoc1.c68] +// CHECK:STDOUT: %UseForwardDeclaredF: %ForwardDeclared.assoc_type = alias_binding UseForwardDeclaredF, %F.ref.loc14 [concrete = constants.%assoc1.c68] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %f.patt: %pattern_type.2ee = ref_binding_pattern f [concrete] -// CHECK:STDOUT: %f.var_patt: %pattern_type.2ee = var_pattern %f.patt [concrete] +// CHECK:STDOUT: %f.patt: %pattern_type.7a7 = ref_binding_pattern f [concrete] +// CHECK:STDOUT: %f.var_patt: %pattern_type.7a7 = var_pattern %f.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %f.var: ref %ptr.03f = var %f.var_patt [concrete] -// CHECK:STDOUT: %.loc16: type = splice_block %ptr [concrete = constants.%ptr.03f] { +// CHECK:STDOUT: %f.var: ref %ptr.b71 = var %f.var_patt [concrete] +// CHECK:STDOUT: %.loc16: type = splice_block %ptr [concrete = constants.%ptr.b71] { // CHECK:STDOUT: %ForwardDeclared.ref.loc16: type = name_ref ForwardDeclared, imports.%Main.ForwardDeclared [concrete = constants.%ForwardDeclared.type] -// CHECK:STDOUT: %ptr: type = ptr_type %ForwardDeclared.ref.loc16 [concrete = constants.%ptr.03f] +// CHECK:STDOUT: %ptr: type = ptr_type %ForwardDeclared.ref.loc16 [concrete = constants.%ptr.b71] // CHECK:STDOUT: } -// CHECK:STDOUT: %f: ref %ptr.03f = ref_binding f, %f.var [concrete = %f.var] +// CHECK:STDOUT: %f: ref %ptr.b71 = ref_binding f, %f.var [concrete = %f.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Empty [from "a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.dce +// CHECK:STDOUT: .Self = imports.%Main.import_ref.852 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -365,20 +365,20 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: // CHECK:STDOUT: interface @Basic [from "a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.d80 -// CHECK:STDOUT: .T = imports.%Main.import_ref.681 -// CHECK:STDOUT: .F = imports.%Main.import_ref.dba -// CHECK:STDOUT: witness = (imports.%Main.T.eb1, imports.%Main.F.969) +// CHECK:STDOUT: .Self = imports.%Main.import_ref.eb6 +// CHECK:STDOUT: .T = imports.%Main.import_ref.5b8 +// CHECK:STDOUT: .F = imports.%Main.import_ref.f7c +// CHECK:STDOUT: witness = (imports.%Main.T.e1d, imports.%Main.F.a88) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @ForwardDeclared [from "a.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.96e -// CHECK:STDOUT: .T = imports.%Main.import_ref.100 -// CHECK:STDOUT: .F = imports.%Main.import_ref.f46 -// CHECK:STDOUT: witness = (imports.%Main.T.ec6, imports.%Main.F.b34) +// CHECK:STDOUT: .Self = imports.%Main.import_ref.ef5 +// CHECK:STDOUT: .T = imports.%Main.import_ref.825 +// CHECK:STDOUT: .F = imports.%Main.import_ref.86f +// CHECK:STDOUT: witness = (imports.%Main.T.c9b, imports.%Main.F.511) // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } @@ -388,7 +388,7 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Basic.WithSelf.F(imports.%Main.import_ref.9f4c1e.2: %Basic.type) [from "a.carbon"] { +// CHECK:STDOUT: generic fn @Basic.WithSelf.F(imports.%Main.import_ref.316a0d.2: %Basic.type) [from "a.carbon"] { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: @@ -397,7 +397,7 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ForwardDeclared.WithSelf.F(imports.%Main.import_ref.af3f82.2: %ForwardDeclared.type) [from "a.carbon"] { +// CHECK:STDOUT: generic fn @ForwardDeclared.WithSelf.F(imports.%Main.import_ref.a75fa2.2: %ForwardDeclared.type) [from "a.carbon"] { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: @@ -409,36 +409,36 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %f_ref.ref: ref %struct_type.f = name_ref f_ref, imports.%Main.f_ref [concrete = imports.%f_ref.var] -// CHECK:STDOUT: %.loc16: ref %ForwardDeclared.type = struct_access %f_ref.ref, element0 [concrete = constants.%.cba] -// CHECK:STDOUT: %addr: %ptr.03f = addr_of %.loc16 [concrete = constants.%addr] -// CHECK:STDOUT: %impl.elem0: %.4ff = impl_witness_access constants.%Copy.impl_witness.b4d, element0 [concrete = constants.%ptr.as.Copy.impl.Op.c1c] +// CHECK:STDOUT: %.loc16: ref %ForwardDeclared.type = struct_access %f_ref.ref, element0 [concrete = constants.%.81b] +// CHECK:STDOUT: %addr: %ptr.b71 = addr_of %.loc16 [concrete = constants.%addr] +// CHECK:STDOUT: %impl.elem0: %.a22 = impl_witness_access constants.%Copy.impl_witness.fe0, element0 [concrete = constants.%ptr.as.Copy.impl.Op.a7b] // CHECK:STDOUT: %bound_method.loc16_27.1: = bound_method %addr, %impl.elem0 [concrete = constants.%ptr.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%ForwardDeclared.type) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc16_27.2: = bound_method %addr, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.03f = call %bound_method.loc16_27.2(%addr) [concrete = constants.%addr] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.b71 = call %bound_method.loc16_27.2(%addr) [concrete = constants.%addr] // CHECK:STDOUT: assign file.%f.var, %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Empty.WithSelf(constants.%Self.1f1) { +// CHECK:STDOUT: specific @Empty.WithSelf(constants.%Self.4e8) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Basic.WithSelf(constants.%Self.fe4) { +// CHECK:STDOUT: specific @Basic.WithSelf(constants.%Self.a33) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.fe4 +// CHECK:STDOUT: %Self => constants.%Self.a33 // CHECK:STDOUT: %Basic.WithSelf.F.type => constants.%Basic.WithSelf.F.type // CHECK:STDOUT: %Basic.WithSelf.F => constants.%Basic.WithSelf.F // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Basic.WithSelf.F(constants.%Self.fe4) {} +// CHECK:STDOUT: specific @Basic.WithSelf.F(constants.%Self.a33) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @ForwardDeclared.WithSelf(constants.%Self.593) { +// CHECK:STDOUT: specific @ForwardDeclared.WithSelf(constants.%Self.603) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.593 +// CHECK:STDOUT: %Self => constants.%Self.603 // CHECK:STDOUT: %ForwardDeclared.WithSelf.F.type => constants.%ForwardDeclared.WithSelf.F.type // CHECK:STDOUT: %ForwardDeclared.WithSelf.F => constants.%ForwardDeclared.WithSelf.F // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ForwardDeclared.WithSelf.F(constants.%Self.593) {} +// CHECK:STDOUT: specific @ForwardDeclared.WithSelf.F(constants.%Self.603) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/import_access.carbon b/toolchain/check/testdata/interface/import_access.carbon index 1958340a58d5..27cf1c818186 100644 --- a/toolchain/check/testdata/interface/import_access.carbon +++ b/toolchain/check/testdata/interface/import_access.carbon @@ -225,7 +225,7 @@ private interface Redecl {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Test.Def: type = import_ref Test//def, Def, loaded [concrete = constants.%Def.type] -// CHECK:STDOUT: %Test.import_ref.1f8 = import_ref Test//def, loc4_23, unloaded +// CHECK:STDOUT: %Test.import_ref.d50 = import_ref Test//def, loc4_23, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -247,7 +247,7 @@ private interface Redecl {} // CHECK:STDOUT: // CHECK:STDOUT: interface @Def [from "def.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Test.import_ref.1f8 +// CHECK:STDOUT: .Self = imports.%Test.import_ref.d50 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -340,7 +340,7 @@ private interface Redecl {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Test.ForwardWithDef: type = import_ref Test//forward_with_def, ForwardWithDef, loaded [concrete = constants.%ForwardWithDef.type] -// CHECK:STDOUT: %Test.import_ref.4bb = import_ref Test//forward_with_def, loc6_26, unloaded +// CHECK:STDOUT: %Test.import_ref.223 = import_ref Test//forward_with_def, loc6_26, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -362,7 +362,7 @@ private interface Redecl {} // CHECK:STDOUT: // CHECK:STDOUT: interface @ForwardWithDef [from "forward_with_def.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Test.import_ref.4bb +// CHECK:STDOUT: .Self = imports.%Test.import_ref.223 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: diff --git a/toolchain/check/testdata/interface/import_interface_decl.carbon b/toolchain/check/testdata/interface/import_interface_decl.carbon index 63d3e017a23a..278f2237b2eb 100644 --- a/toolchain/check/testdata/interface/import_interface_decl.carbon +++ b/toolchain/check/testdata/interface/import_interface_decl.carbon @@ -55,9 +55,9 @@ impl library "[[@TEST_NAME]]"; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.B = import_ref Main//b, B, unloaded -// CHECK:STDOUT: %Main.import_ref.f95 = import_ref Main//b, loc2_13, unloaded +// CHECK:STDOUT: %Main.import_ref.c07 = import_ref Main//b, loc2_13, unloaded // CHECK:STDOUT: %Main.import_ref.e5c: type = import_ref Main//b, loc7_7, loaded [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %Main.import_ref.7eb: type = import_ref Main//b, loc7_12, loaded [concrete = constants.%B.type] +// CHECK:STDOUT: %Main.import_ref.21a: type = import_ref Main//b, loc7_12, loaded [concrete = constants.%B.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -70,13 +70,13 @@ impl library "[[@TEST_NAME]]"; // CHECK:STDOUT: // CHECK:STDOUT: interface @B [from "fail_b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.f95 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.c07 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @empty_tuple.type.as.B.impl: imports.%Main.import_ref.e5c as imports.%Main.import_ref.7eb [from "fail_b.carbon"]; +// CHECK:STDOUT: impl @empty_tuple.type.as.B.impl: imports.%Main.import_ref.e5c as imports.%Main.import_ref.21a [from "fail_b.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: specific @B.WithSelf(constants.%Self) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/incomplete.carbon b/toolchain/check/testdata/interface/incomplete.carbon index 6b95ddf6b8ff..d509b3551e40 100644 --- a/toolchain/check/testdata/interface/incomplete.carbon +++ b/toolchain/check/testdata/interface/incomplete.carbon @@ -226,10 +226,10 @@ interface A(T:! type) { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%T [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.998: type = pattern_type %I.type [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %U: %I.type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] -// CHECK:STDOUT: %pattern_type.3df: type = pattern_type %U.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %U.as_type [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type [symbolic] @@ -246,9 +246,9 @@ interface A(T:! type) { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %U.patt: %pattern_type.998 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.3df) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.3df) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %U.patt: %pattern_type.6cb = symbolic_binding_pattern U, 0 [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.b3a) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.b3a) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_10: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -289,7 +289,7 @@ interface A(T:! type) { // CHECK:STDOUT: generic fn @F(%U.loc9_7.2: %I.type) { // CHECK:STDOUT: %U.loc9_7.1: %I.type = symbolic_binding U, 0 [symbolic = %U.loc9_7.1 (constants.%U)] // CHECK:STDOUT: %U.as_type.loc9_16.1: type = facet_access_type %U.loc9_7.1 [symbolic = %U.as_type.loc9_16.1 (constants.%U.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc9_16.1 [symbolic = %pattern_type (constants.%pattern_type.3df)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc9_16.1 [symbolic = %pattern_type (constants.%pattern_type.b3a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc9_16.1 [symbolic = %require_complete (constants.%require_complete)] @@ -312,7 +312,7 @@ interface A(T:! type) { // CHECK:STDOUT: specific @F(constants.%U) { // CHECK:STDOUT: %U.loc9_7.1 => constants.%U // CHECK:STDOUT: %U.as_type.loc9_16.1 => constants.%U.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3df +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b3a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%U) { @@ -409,21 +409,21 @@ interface A(T:! type) { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %A.type.0af: type = generic_interface_type @A [concrete] -// CHECK:STDOUT: %A.generic: %A.type.0af = struct_value () [concrete] -// CHECK:STDOUT: %A.type.5ea: type = facet_type <@A, @A(%T)> [symbolic] -// CHECK:STDOUT: %Self: %A.type.5ea = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %A.type.55a: type = generic_interface_type @A [concrete] +// CHECK:STDOUT: %A.generic: %A.type.55a = struct_value () [concrete] +// CHECK:STDOUT: %A.type.acd: type = facet_type <@A, @A(%T)> [symbolic] +// CHECK:STDOUT: %Self: %A.type.acd = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %A.type.7cc: type = facet_type <@A, @A(%empty_struct_type)> [concrete] +// CHECK:STDOUT: %A.type.0aa: type = facet_type <@A, @A(%empty_struct_type)> [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .A = %A.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %A.decl: %A.type.0af = interface_decl @A [concrete = constants.%A.generic] { +// CHECK:STDOUT: %A.decl: %A.type.55a = interface_decl @A [concrete = constants.%A.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc3_17.1: type = splice_block %.loc3_17.2 [concrete = type] { @@ -438,11 +438,11 @@ interface A(T:! type) { // CHECK:STDOUT: %T.loc3_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc3_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T.loc3_14.1)> [symbolic = %A.type (constants.%A.type.5ea)] -// CHECK:STDOUT: %Self.loc3_23.2: @A.%A.type (%A.type.5ea) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self)] +// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T.loc3_14.1)> [symbolic = %A.type (constants.%A.type.acd)] +// CHECK:STDOUT: %Self.loc3_23.2: @A.%A.type (%A.type.acd) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc3_23.1: @A.%A.type (%A.type.5ea) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc3_23.1: @A.%A.type (%A.type.acd) = symbolic_binding Self, 1 [symbolic = %Self.loc3_23.2 (constants.%Self)] // CHECK:STDOUT: %A.WithSelf.decl = interface_with_self_decl @A [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -450,10 +450,10 @@ interface A(T:! type) { // CHECK:STDOUT: require %Self.as_type.loc11_18.1 impls %A.type.loc11_28 // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.as_type.loc11_18.1: type = facet_access_type @A.%Self.loc3_23.1 [symbolic = %Self.as_type.loc11_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %A.ref: %A.type.0af = name_ref A, file.%A.decl [concrete = constants.%A.generic] +// CHECK:STDOUT: %A.ref: %A.type.55a = name_ref A, file.%A.decl [concrete = constants.%A.generic] // CHECK:STDOUT: %.loc11_27: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc11_28: type = converted %.loc11_27, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %A.type.loc11_28: type = facet_type <@A, @A(constants.%empty_struct_type)> [concrete = constants.%A.type.7cc] +// CHECK:STDOUT: %A.type.loc11_28: type = facet_type <@A, @A(constants.%empty_struct_type)> [concrete = constants.%A.type.0aa] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -466,10 +466,10 @@ interface A(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @A.WithSelf.Self.as_type.impls.A.type.require(@A.%T.loc3_14.2: type, @A.%Self.loc3_23.1: @A.%A.type (%A.type.5ea)) { +// CHECK:STDOUT: generic require @A.WithSelf.Self.as_type.impls.A.type.require(@A.%T.loc3_14.2: type, @A.%Self.loc3_23.1: @A.%A.type (%A.type.acd)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %A.type.loc11_18: type = facet_type <@A, @A(%T)> [symbolic = %A.type.loc11_18 (constants.%A.type.5ea)] -// CHECK:STDOUT: %Self: @A.WithSelf.Self.as_type.impls.A.type.require.%A.type.loc11_18 (%A.type.5ea) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %A.type.loc11_18: type = facet_type <@A, @A(%T)> [symbolic = %A.type.loc11_18 (constants.%A.type.acd)] +// CHECK:STDOUT: %Self: @A.WithSelf.Self.as_type.impls.A.type.require.%A.type.loc11_18 (%A.type.acd) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc11_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc11_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -485,7 +485,7 @@ interface A(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf.Self.as_type.impls.A.type.require(constants.%T, constants.%Self) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %A.type.loc11_18 => constants.%A.type.5ea +// CHECK:STDOUT: %A.type.loc11_18 => constants.%A.type.acd // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc11_18.2 => constants.%Self.as_type // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/member_lookup.carbon b/toolchain/check/testdata/interface/member_lookup.carbon index 33242322afcf..76ce337962cc 100644 --- a/toolchain/check/testdata/interface/member_lookup.carbon +++ b/toolchain/check/testdata/interface/member_lookup.carbon @@ -59,63 +59,63 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Interface.type.77d: type = generic_interface_type @Interface [concrete] -// CHECK:STDOUT: %Interface.generic: %Interface.type.77d = struct_value () [concrete] -// CHECK:STDOUT: %Interface.type.481: type = facet_type <@Interface, @Interface(%T.67d)> [symbolic] -// CHECK:STDOUT: %Self.0e1: %Interface.type.481 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Interface.type.1b1: type = generic_interface_type @Interface [concrete] +// CHECK:STDOUT: %Interface.generic: %Interface.type.1b1 = struct_value () [concrete] +// CHECK:STDOUT: %Interface.type.fe8: type = facet_type <@Interface, @Interface(%T.67d)> [symbolic] +// CHECK:STDOUT: %Self.45e: %Interface.type.fe8 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] -// CHECK:STDOUT: %Interface.assoc_type.91e: type = assoc_entity_type @Interface, @Interface(%T.67d) [symbolic] -// CHECK:STDOUT: %assoc0.3da: %Interface.assoc_type.91e = assoc_entity element0, @Interface.WithSelf.%X [symbolic] -// CHECK:STDOUT: %pattern_type.5a0: type = pattern_type %Interface.type.481 [symbolic] -// CHECK:STDOUT: %I.514: %Interface.type.481 = symbolic_binding I, 1 [symbolic] +// CHECK:STDOUT: %Interface.assoc_type.61f: type = assoc_entity_type @Interface, @Interface(%T.67d) [symbolic] +// CHECK:STDOUT: %assoc0.199: %Interface.assoc_type.61f = assoc_entity element0, @Interface.WithSelf.%X [symbolic] +// CHECK:STDOUT: %pattern_type.2c6f: type = pattern_type %Interface.type.fe8 [symbolic] +// CHECK:STDOUT: %I.63c: %Interface.type.fe8 = symbolic_binding I, 1 [symbolic] // CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr.e8f [symbolic] // CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic] // CHECK:STDOUT: %AccessGeneric.type: type = fn_type @AccessGeneric [concrete] // CHECK:STDOUT: %AccessGeneric: %AccessGeneric.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f [symbolic] -// CHECK:STDOUT: %require_complete.38c: = require_complete_type %Interface.type.481 [symbolic] -// CHECK:STDOUT: %I.as_type.363: type = facet_access_type %I.514 [symbolic] -// CHECK:STDOUT: %Interface.lookup_impl_witness.c21: = lookup_impl_witness %I.514, @Interface, @Interface(%T.67d) [symbolic] -// CHECK:STDOUT: %impl.elem0.b6b: %ptr.e8f = impl_witness_access %Interface.lookup_impl_witness.c21, element0 [symbolic] +// CHECK:STDOUT: %require_complete.08a: = require_complete_type %Interface.type.fe8 [symbolic] +// CHECK:STDOUT: %I.as_type.3c3: type = facet_access_type %I.63c [symbolic] +// CHECK:STDOUT: %Interface.lookup_impl_witness.ffe: = lookup_impl_witness %I.63c, @Interface, @Interface(%T.67d) [symbolic] +// CHECK:STDOUT: %impl.elem0.602: %ptr.e8f = impl_witness_access %Interface.lookup_impl_witness.ffe, element0 [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2bf: = lookup_impl_witness %ptr.e8f, @Copy [symbolic] -// CHECK:STDOUT: %.b6a: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %Copy.facet.44d: %Copy.type = facet_value %ptr.e8f, (%Copy.lookup_impl_witness.2bf) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.72b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.44d) [symbolic] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.72b, %Copy.facet.44d [symbolic] -// CHECK:STDOUT: %impl.elem0.8a3: %.39b = impl_witness_access %Copy.lookup_impl_witness.2bf, element0 [symbolic] -// CHECK:STDOUT: %bound_method.f92: = bound_method %impl.elem0.b6b, %impl.elem0.8a3 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a13: = specific_impl_function %impl.elem0.8a3, @Copy.WithSelf.Op(%Copy.facet.44d) [symbolic] -// CHECK:STDOUT: %bound_method.2d4: = bound_method %impl.elem0.b6b, %specific_impl_fn.a13 [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.1da: = lookup_impl_witness %ptr.e8f, @Copy [symbolic] +// CHECK:STDOUT: %.0e9: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %Copy.facet.302: %Copy.type = facet_value %ptr.e8f, (%Copy.lookup_impl_witness.1da) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.884: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.302) [symbolic] +// CHECK:STDOUT: %.be5: type = fn_type_with_self_type %Copy.WithSelf.Op.type.884, %Copy.facet.302 [symbolic] +// CHECK:STDOUT: %impl.elem0.484: %.be5 = impl_witness_access %Copy.lookup_impl_witness.1da, element0 [symbolic] +// CHECK:STDOUT: %bound_method.602: = bound_method %impl.elem0.602, %impl.elem0.484 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.a76: = specific_impl_function %impl.elem0.484, @Copy.WithSelf.Op(%Copy.facet.302) [symbolic] +// CHECK:STDOUT: %bound_method.060: = bound_method %impl.elem0.602, %specific_impl_fn.a76 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %Interface.type.734: type = facet_type <@Interface, @Interface(%i32)> [concrete] -// CHECK:STDOUT: %pattern_type.02c: type = pattern_type %Interface.type.734 [concrete] -// CHECK:STDOUT: %I.cc3: %Interface.type.734 = symbolic_binding I, 0 [symbolic] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %.060: Core.Form = init_form %ptr.847 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr.847 [concrete] +// CHECK:STDOUT: %Interface.type.c5f: type = facet_type <@Interface, @Interface(%i32)> [concrete] +// CHECK:STDOUT: %pattern_type.3cf: type = pattern_type %Interface.type.c5f [concrete] +// CHECK:STDOUT: %I.e05: %Interface.type.c5f = symbolic_binding I, 0 [symbolic] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %.952: Core.Form = init_form %ptr.d08 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete] // CHECK:STDOUT: %AccessConcrete.type: type = fn_type @AccessConcrete [concrete] // CHECK:STDOUT: %AccessConcrete: %AccessConcrete.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.f3b: %Interface.type.734 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Interface.assoc_type.488: type = assoc_entity_type @Interface, @Interface(%i32) [concrete] -// CHECK:STDOUT: %assoc0.868: %Interface.assoc_type.488 = assoc_entity element0, @Interface.WithSelf.%X [concrete] -// CHECK:STDOUT: %I.as_type.51d: type = facet_access_type %I.cc3 [symbolic] -// CHECK:STDOUT: %Interface.lookup_impl_witness.5ef: = lookup_impl_witness %I.cc3, @Interface, @Interface(%i32) [symbolic] -// CHECK:STDOUT: %impl.elem0.cf4: %ptr.847 = impl_witness_access %Interface.lookup_impl_witness.5ef, element0 [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.c37: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ae4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.6e4: %ptr.as.Copy.impl.Op.type.ae4 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.17a: %Copy.type = facet_value %ptr.847, (%Copy.impl_witness.c37) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.165: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.17a) [concrete] -// CHECK:STDOUT: %.cd7: type = fn_type_with_self_type %Copy.WithSelf.Op.type.165, %Copy.facet.17a [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %impl.elem0.cf4, %ptr.as.Copy.impl.Op.6e4 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.6e4, @ptr.as.Copy.impl.Op(%i32) [concrete] -// CHECK:STDOUT: %bound_method.915: = bound_method %impl.elem0.cf4, %ptr.as.Copy.impl.Op.specific_fn [symbolic] +// CHECK:STDOUT: %Self.43d: %Interface.type.c5f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Interface.assoc_type.d6a: type = assoc_entity_type @Interface, @Interface(%i32) [concrete] +// CHECK:STDOUT: %assoc0.80c: %Interface.assoc_type.d6a = assoc_entity element0, @Interface.WithSelf.%X [concrete] +// CHECK:STDOUT: %I.as_type.307: type = facet_access_type %I.e05 [symbolic] +// CHECK:STDOUT: %Interface.lookup_impl_witness.64c: = lookup_impl_witness %I.e05, @Interface, @Interface(%i32) [symbolic] +// CHECK:STDOUT: %impl.elem0.3b7: %ptr.d08 = impl_witness_access %Interface.lookup_impl_witness.64c, element0 [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.ce1: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c1c: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.d1c: %ptr.as.Copy.impl.Op.type.c1c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.b49: %Copy.type = facet_value %ptr.d08, (%Copy.impl_witness.ce1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.f9d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.b49) [concrete] +// CHECK:STDOUT: %.ac9: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f9d, %Copy.facet.b49 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %impl.elem0.3b7, %ptr.as.Copy.impl.Op.d1c [symbolic] +// 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: %bound_method.195: = bound_method %impl.elem0.3b7, %ptr.as.Copy.impl.Op.specific_fn [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -126,8 +126,8 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -139,7 +139,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: .AccessConcrete = %AccessConcrete.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %Interface.decl: %Interface.type.77d = interface_decl @Interface [concrete = constants.%Interface.generic] { +// CHECK:STDOUT: %Interface.decl: %Interface.type.1b1 = interface_decl @Interface [concrete = constants.%Interface.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_25.1: type = splice_block %.loc4_25.2 [concrete = type] { @@ -150,7 +150,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %AccessGeneric.decl: %AccessGeneric.type = fn_decl @AccessGeneric [concrete = constants.%AccessGeneric] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %I.patt: @AccessGeneric.%pattern_type.loc8_29 (%pattern_type.5a0) = symbolic_binding_pattern I, 1 [concrete] +// CHECK:STDOUT: %I.patt: @AccessGeneric.%pattern_type.loc8_29 (%pattern_type.2c6f) = symbolic_binding_pattern I, 1 [concrete] // CHECK:STDOUT: %return.param_patt: @AccessGeneric.%pattern_type.loc8_50 (%pattern_type.4f4) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @AccessGeneric.%pattern_type.loc8_50 (%pattern_type.4f4) = return_slot_pattern %return.param_patt, %ptr.loc8_50.2 [concrete] // CHECK:STDOUT: } { @@ -162,33 +162,33 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %.loc8_22.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc8_19.2: type = symbolic_binding T, 0 [symbolic = %T.loc8_19.1 (constants.%T.67d)] -// CHECK:STDOUT: %.loc8_43: type = splice_block %Interface.type.loc8_43.2 [symbolic = %Interface.type.loc8_43.1 (constants.%Interface.type.481)] { +// CHECK:STDOUT: %.loc8_43: type = splice_block %Interface.type.loc8_43.2 [symbolic = %Interface.type.loc8_43.1 (constants.%Interface.type.fe8)] { // CHECK:STDOUT: %.Self.loc8_29: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Interface.ref: %Interface.type.77d = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.generic] +// CHECK:STDOUT: %Interface.ref: %Interface.type.1b1 = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.generic] // CHECK:STDOUT: %T.ref.loc8_42: type = name_ref T, %T.loc8_19.2 [symbolic = %T.loc8_19.1 (constants.%T.67d)] -// CHECK:STDOUT: %Interface.type.loc8_43.2: type = facet_type <@Interface, @Interface(constants.%T.67d)> [symbolic = %Interface.type.loc8_43.1 (constants.%Interface.type.481)] +// CHECK:STDOUT: %Interface.type.loc8_43.2: type = facet_type <@Interface, @Interface(constants.%T.67d)> [symbolic = %Interface.type.loc8_43.1 (constants.%Interface.type.fe8)] // CHECK:STDOUT: } -// CHECK:STDOUT: %I.loc8_29.2: @AccessGeneric.%Interface.type.loc8_43.1 (%Interface.type.481) = symbolic_binding I, 1 [symbolic = %I.loc8_29.1 (constants.%I.514)] +// CHECK:STDOUT: %I.loc8_29.2: @AccessGeneric.%Interface.type.loc8_43.1 (%Interface.type.fe8) = symbolic_binding I, 1 [symbolic = %I.loc8_29.1 (constants.%I.63c)] // CHECK:STDOUT: %return.param: ref @AccessGeneric.%ptr.loc8_50.1 (%ptr.e8f) = out_param call_param0 // CHECK:STDOUT: %return: ref @AccessGeneric.%ptr.loc8_50.1 (%ptr.e8f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessConcrete.decl: %AccessConcrete.type = fn_decl @AccessConcrete [concrete = constants.%AccessConcrete] { -// CHECK:STDOUT: %I.patt: %pattern_type.02c = symbolic_binding_pattern I, 0 [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7b5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7b5 = return_slot_pattern %return.param_patt, %ptr [concrete] +// CHECK:STDOUT: %I.patt: %pattern_type.3cf = symbolic_binding_pattern I, 0 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f00 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f00 = return_slot_pattern %return.param_patt, %ptr [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc12_42: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc12_42 [concrete = constants.%ptr.847] -// CHECK:STDOUT: %.loc12_45: Core.Form = init_form %ptr [concrete = constants.%.060] -// CHECK:STDOUT: %.loc12_36: type = splice_block %Interface.type [concrete = constants.%Interface.type.734] { +// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc12_42 [concrete = constants.%ptr.d08] +// CHECK:STDOUT: %.loc12_45: Core.Form = init_form %ptr [concrete = constants.%.952] +// CHECK:STDOUT: %.loc12_36: type = splice_block %Interface.type [concrete = constants.%Interface.type.c5f] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Interface.ref: %Interface.type.77d = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.generic] +// CHECK:STDOUT: %Interface.ref: %Interface.type.1b1 = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.generic] // CHECK:STDOUT: %i32.loc12_33: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(constants.%i32)> [concrete = constants.%Interface.type.734] +// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(constants.%i32)> [concrete = constants.%Interface.type.c5f] // CHECK:STDOUT: } -// CHECK:STDOUT: %I.loc12_20.2: %Interface.type.734 = symbolic_binding I, 0 [symbolic = %I.loc12_20.1 (constants.%I.cc3)] -// CHECK:STDOUT: %return.param: ref %ptr.847 = out_param call_param0 -// CHECK:STDOUT: %return: ref %ptr.847 = return_slot %return.param +// CHECK:STDOUT: %I.loc12_20.2: %Interface.type.c5f = symbolic_binding I, 0 [symbolic = %I.loc12_20.1 (constants.%I.e05)] +// CHECK:STDOUT: %return.param: ref %ptr.d08 = out_param call_param0 +// CHECK:STDOUT: %return: ref %ptr.d08 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -196,16 +196,16 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %T.loc4_22.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_22.1 (constants.%T.67d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(%T.loc4_22.1)> [symbolic = %Interface.type (constants.%Interface.type.481)] -// CHECK:STDOUT: %Self.loc4_31.2: @Interface.%Interface.type (%Interface.type.481) = symbolic_binding Self, 1 [symbolic = %Self.loc4_31.2 (constants.%Self.0e1)] +// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(%T.loc4_22.1)> [symbolic = %Interface.type (constants.%Interface.type.fe8)] +// CHECK:STDOUT: %Self.loc4_31.2: @Interface.%Interface.type (%Interface.type.fe8) = symbolic_binding Self, 1 [symbolic = %Self.loc4_31.2 (constants.%Self.45e)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_31.1: @Interface.%Interface.type (%Interface.type.481) = symbolic_binding Self, 1 [symbolic = %Self.loc4_31.2 (constants.%Self.0e1)] +// CHECK:STDOUT: %Self.loc4_31.1: @Interface.%Interface.type (%Interface.type.fe8) = symbolic_binding Self, 1 [symbolic = %Self.loc4_31.2 (constants.%Self.45e)] // CHECK:STDOUT: %Interface.WithSelf.decl = interface_with_self_decl @Interface [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %X: @Interface.WithSelf.%ptr (%ptr.e8f) = assoc_const_decl @X [concrete] { -// CHECK:STDOUT: %assoc0: @Interface.WithSelf.%Interface.assoc_type (%Interface.assoc_type.91e) = assoc_entity element0, @Interface.WithSelf.%X [symbolic = @Interface.WithSelf.%assoc0 (constants.%assoc0.3da)] +// CHECK:STDOUT: %assoc0: @Interface.WithSelf.%Interface.assoc_type (%Interface.assoc_type.61f) = assoc_entity element0, @Interface.WithSelf.%X [symbolic = @Interface.WithSelf.%assoc0 (constants.%assoc0.199)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -219,73 +219,73 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AccessGeneric(%T.loc8_19.2: type, %I.loc8_29.2: @AccessGeneric.%Interface.type.loc8_43.1 (%Interface.type.481)) { +// CHECK:STDOUT: generic fn @AccessGeneric(%T.loc8_19.2: type, %I.loc8_29.2: @AccessGeneric.%Interface.type.loc8_43.1 (%Interface.type.fe8)) { // CHECK:STDOUT: %T.loc8_19.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_19.1 (constants.%T.67d)] -// CHECK:STDOUT: %Interface.type.loc8_43.1: type = facet_type <@Interface, @Interface(%T.loc8_19.1)> [symbolic = %Interface.type.loc8_43.1 (constants.%Interface.type.481)] -// CHECK:STDOUT: %I.loc8_29.1: @AccessGeneric.%Interface.type.loc8_43.1 (%Interface.type.481) = symbolic_binding I, 1 [symbolic = %I.loc8_29.1 (constants.%I.514)] -// CHECK:STDOUT: %pattern_type.loc8_29: type = pattern_type %Interface.type.loc8_43.1 [symbolic = %pattern_type.loc8_29 (constants.%pattern_type.5a0)] +// CHECK:STDOUT: %Interface.type.loc8_43.1: type = facet_type <@Interface, @Interface(%T.loc8_19.1)> [symbolic = %Interface.type.loc8_43.1 (constants.%Interface.type.fe8)] +// CHECK:STDOUT: %I.loc8_29.1: @AccessGeneric.%Interface.type.loc8_43.1 (%Interface.type.fe8) = symbolic_binding I, 1 [symbolic = %I.loc8_29.1 (constants.%I.63c)] +// CHECK:STDOUT: %pattern_type.loc8_29: type = pattern_type %Interface.type.loc8_43.1 [symbolic = %pattern_type.loc8_29 (constants.%pattern_type.2c6f)] // CHECK:STDOUT: %ptr.loc8_50.1: type = ptr_type %T.loc8_19.1 [symbolic = %ptr.loc8_50.1 (constants.%ptr.e8f)] // CHECK:STDOUT: %.loc8_50.1: Core.Form = init_form %ptr.loc8_50.1 [symbolic = %.loc8_50.1 (constants.%.cb6)] // CHECK:STDOUT: %pattern_type.loc8_50: type = pattern_type %ptr.loc8_50.1 [symbolic = %pattern_type.loc8_50 (constants.%pattern_type.4f4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8: = require_complete_type %ptr.loc8_50.1 [symbolic = %require_complete.loc8 (constants.%require_complete.ef1)] -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %Interface.type.loc8_43.1 [symbolic = %require_complete.loc9 (constants.%require_complete.38c)] -// CHECK:STDOUT: %I.as_type.loc9_11.2: type = facet_access_type %I.loc8_29.1 [symbolic = %I.as_type.loc9_11.2 (constants.%I.as_type.363)] -// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface, @Interface(%T.loc8_19.1) [symbolic = %Interface.assoc_type (constants.%Interface.assoc_type.91e)] -// CHECK:STDOUT: %assoc0: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.91e) = assoc_entity element0, @Interface.WithSelf.%X [symbolic = %assoc0 (constants.%assoc0.3da)] -// CHECK:STDOUT: %Interface.lookup_impl_witness: = lookup_impl_witness %I.loc8_29.1, @Interface, @Interface(%T.loc8_19.1) [symbolic = %Interface.lookup_impl_witness (constants.%Interface.lookup_impl_witness.c21)] -// CHECK:STDOUT: %impl.elem0.loc9_11.3: @AccessGeneric.%ptr.loc8_50.1 (%ptr.e8f) = impl_witness_access %Interface.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_11.3 (constants.%impl.elem0.b6b)] -// CHECK:STDOUT: %.loc9_11.3: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc8_19.1) [symbolic = %.loc9_11.3 (constants.%.b6a)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc8_50.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2bf)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc8_50.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.44d)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.72b)] -// CHECK:STDOUT: %.loc9_11.4: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc9_11.4 (constants.%.39b)] -// CHECK:STDOUT: %impl.elem0.loc9_11.4: @AccessGeneric.%.loc9_11.4 (%.39b) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_11.4 (constants.%impl.elem0.8a3)] -// CHECK:STDOUT: %bound_method.loc9_11.3: = bound_method %impl.elem0.loc9_11.3, %impl.elem0.loc9_11.4 [symbolic = %bound_method.loc9_11.3 (constants.%bound_method.f92)] -// CHECK:STDOUT: %specific_impl_fn.loc9_11.2: = specific_impl_function %impl.elem0.loc9_11.4, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn.a13)] -// CHECK:STDOUT: %bound_method.loc9_11.4: = bound_method %impl.elem0.loc9_11.3, %specific_impl_fn.loc9_11.2 [symbolic = %bound_method.loc9_11.4 (constants.%bound_method.2d4)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %Interface.type.loc8_43.1 [symbolic = %require_complete.loc9 (constants.%require_complete.08a)] +// CHECK:STDOUT: %I.as_type.loc9_11.2: type = facet_access_type %I.loc8_29.1 [symbolic = %I.as_type.loc9_11.2 (constants.%I.as_type.3c3)] +// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface, @Interface(%T.loc8_19.1) [symbolic = %Interface.assoc_type (constants.%Interface.assoc_type.61f)] +// CHECK:STDOUT: %assoc0: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.61f) = assoc_entity element0, @Interface.WithSelf.%X [symbolic = %assoc0 (constants.%assoc0.199)] +// CHECK:STDOUT: %Interface.lookup_impl_witness: = lookup_impl_witness %I.loc8_29.1, @Interface, @Interface(%T.loc8_19.1) [symbolic = %Interface.lookup_impl_witness (constants.%Interface.lookup_impl_witness.ffe)] +// CHECK:STDOUT: %impl.elem0.loc9_11.3: @AccessGeneric.%ptr.loc8_50.1 (%ptr.e8f) = impl_witness_access %Interface.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_11.3 (constants.%impl.elem0.602)] +// CHECK:STDOUT: %.loc9_11.3: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc8_19.1) [symbolic = %.loc9_11.3 (constants.%.0e9)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc8_50.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.1da)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc8_50.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.302)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.884)] +// CHECK:STDOUT: %.loc9_11.4: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc9_11.4 (constants.%.be5)] +// CHECK:STDOUT: %impl.elem0.loc9_11.4: @AccessGeneric.%.loc9_11.4 (%.be5) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_11.4 (constants.%impl.elem0.484)] +// CHECK:STDOUT: %bound_method.loc9_11.3: = bound_method %impl.elem0.loc9_11.3, %impl.elem0.loc9_11.4 [symbolic = %bound_method.loc9_11.3 (constants.%bound_method.602)] +// CHECK:STDOUT: %specific_impl_fn.loc9_11.2: = specific_impl_function %impl.elem0.loc9_11.4, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn.a76)] +// CHECK:STDOUT: %bound_method.loc9_11.4: = bound_method %impl.elem0.loc9_11.3, %specific_impl_fn.loc9_11.2 [symbolic = %bound_method.loc9_11.4 (constants.%bound_method.060)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: @AccessGeneric.%ptr.loc8_50.1 (%ptr.e8f) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %I.ref: @AccessGeneric.%Interface.type.loc8_43.1 (%Interface.type.481) = name_ref I, %I.loc8_29.2 [symbolic = %I.loc8_29.1 (constants.%I.514)] -// CHECK:STDOUT: %I.as_type.loc9_11.1: type = facet_access_type %I.ref [symbolic = %I.as_type.loc9_11.2 (constants.%I.as_type.363)] -// CHECK:STDOUT: %.loc9_11.1: type = converted %I.ref, %I.as_type.loc9_11.1 [symbolic = %I.as_type.loc9_11.2 (constants.%I.as_type.363)] -// CHECK:STDOUT: %.loc9_11.2: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.91e) = specific_constant @X.%assoc0, @Interface.WithSelf(constants.%T.67d, constants.%I.514) [symbolic = %assoc0 (constants.%assoc0.3da)] -// CHECK:STDOUT: %X.ref: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.91e) = name_ref X, %.loc9_11.2 [symbolic = %assoc0 (constants.%assoc0.3da)] -// CHECK:STDOUT: %impl.elem0.loc9_11.1: @AccessGeneric.%ptr.loc8_50.1 (%ptr.e8f) = impl_witness_access constants.%Interface.lookup_impl_witness.c21, element0 [symbolic = %impl.elem0.loc9_11.3 (constants.%impl.elem0.b6b)] -// CHECK:STDOUT: %impl.elem0.loc9_11.2: @AccessGeneric.%.loc9_11.4 (%.39b) = impl_witness_access constants.%Copy.lookup_impl_witness.2bf, element0 [symbolic = %impl.elem0.loc9_11.4 (constants.%impl.elem0.8a3)] -// CHECK:STDOUT: %bound_method.loc9_11.1: = bound_method %impl.elem0.loc9_11.1, %impl.elem0.loc9_11.2 [symbolic = %bound_method.loc9_11.3 (constants.%bound_method.f92)] -// CHECK:STDOUT: %specific_impl_fn.loc9_11.1: = specific_impl_function %impl.elem0.loc9_11.2, @Copy.WithSelf.Op(constants.%Copy.facet.44d) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn.a13)] -// CHECK:STDOUT: %bound_method.loc9_11.2: = bound_method %impl.elem0.loc9_11.1, %specific_impl_fn.loc9_11.1 [symbolic = %bound_method.loc9_11.4 (constants.%bound_method.2d4)] +// CHECK:STDOUT: %I.ref: @AccessGeneric.%Interface.type.loc8_43.1 (%Interface.type.fe8) = name_ref I, %I.loc8_29.2 [symbolic = %I.loc8_29.1 (constants.%I.63c)] +// CHECK:STDOUT: %I.as_type.loc9_11.1: type = facet_access_type %I.ref [symbolic = %I.as_type.loc9_11.2 (constants.%I.as_type.3c3)] +// CHECK:STDOUT: %.loc9_11.1: type = converted %I.ref, %I.as_type.loc9_11.1 [symbolic = %I.as_type.loc9_11.2 (constants.%I.as_type.3c3)] +// CHECK:STDOUT: %.loc9_11.2: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.61f) = specific_constant @X.%assoc0, @Interface.WithSelf(constants.%T.67d, constants.%I.63c) [symbolic = %assoc0 (constants.%assoc0.199)] +// CHECK:STDOUT: %X.ref: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.61f) = name_ref X, %.loc9_11.2 [symbolic = %assoc0 (constants.%assoc0.199)] +// CHECK:STDOUT: %impl.elem0.loc9_11.1: @AccessGeneric.%ptr.loc8_50.1 (%ptr.e8f) = impl_witness_access constants.%Interface.lookup_impl_witness.ffe, element0 [symbolic = %impl.elem0.loc9_11.3 (constants.%impl.elem0.602)] +// CHECK:STDOUT: %impl.elem0.loc9_11.2: @AccessGeneric.%.loc9_11.4 (%.be5) = impl_witness_access constants.%Copy.lookup_impl_witness.1da, element0 [symbolic = %impl.elem0.loc9_11.4 (constants.%impl.elem0.484)] +// CHECK:STDOUT: %bound_method.loc9_11.1: = bound_method %impl.elem0.loc9_11.1, %impl.elem0.loc9_11.2 [symbolic = %bound_method.loc9_11.3 (constants.%bound_method.602)] +// CHECK:STDOUT: %specific_impl_fn.loc9_11.1: = specific_impl_function %impl.elem0.loc9_11.2, @Copy.WithSelf.Op(constants.%Copy.facet.302) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn.a76)] +// CHECK:STDOUT: %bound_method.loc9_11.2: = bound_method %impl.elem0.loc9_11.1, %specific_impl_fn.loc9_11.1 [symbolic = %bound_method.loc9_11.4 (constants.%bound_method.060)] // CHECK:STDOUT: %Copy.WithSelf.Op.call: init @AccessGeneric.%ptr.loc8_50.1 (%ptr.e8f) = call %bound_method.loc9_11.2(%impl.elem0.loc9_11.1) // CHECK:STDOUT: return %Copy.WithSelf.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AccessConcrete(%I.loc12_20.2: %Interface.type.734) { -// CHECK:STDOUT: %I.loc12_20.1: %Interface.type.734 = symbolic_binding I, 0 [symbolic = %I.loc12_20.1 (constants.%I.cc3)] +// CHECK:STDOUT: generic fn @AccessConcrete(%I.loc12_20.2: %Interface.type.c5f) { +// CHECK:STDOUT: %I.loc12_20.1: %Interface.type.c5f = symbolic_binding I, 0 [symbolic = %I.loc12_20.1 (constants.%I.e05)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.as_type.loc13_11.2: type = facet_access_type %I.loc12_20.1 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.51d)] -// CHECK:STDOUT: %Interface.lookup_impl_witness: = lookup_impl_witness %I.loc12_20.1, @Interface, @Interface(constants.%i32) [symbolic = %Interface.lookup_impl_witness (constants.%Interface.lookup_impl_witness.5ef)] -// CHECK:STDOUT: %impl.elem0.loc13_11.3: %ptr.847 = impl_witness_access %Interface.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_11.3 (constants.%impl.elem0.cf4)] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %impl.elem0.loc13_11.3, constants.%ptr.as.Copy.impl.Op.6e4 [symbolic = %ptr.as.Copy.impl.Op.bound (constants.%ptr.as.Copy.impl.Op.bound)] -// CHECK:STDOUT: %bound_method.loc13_11.3: = bound_method %impl.elem0.loc13_11.3, constants.%ptr.as.Copy.impl.Op.specific_fn [symbolic = %bound_method.loc13_11.3 (constants.%bound_method.915)] +// CHECK:STDOUT: %I.as_type.loc13_11.2: type = facet_access_type %I.loc12_20.1 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.307)] +// CHECK:STDOUT: %Interface.lookup_impl_witness: = lookup_impl_witness %I.loc12_20.1, @Interface, @Interface(constants.%i32) [symbolic = %Interface.lookup_impl_witness (constants.%Interface.lookup_impl_witness.64c)] +// CHECK:STDOUT: %impl.elem0.loc13_11.3: %ptr.d08 = impl_witness_access %Interface.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_11.3 (constants.%impl.elem0.3b7)] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %impl.elem0.loc13_11.3, constants.%ptr.as.Copy.impl.Op.d1c [symbolic = %ptr.as.Copy.impl.Op.bound (constants.%ptr.as.Copy.impl.Op.bound)] +// CHECK:STDOUT: %bound_method.loc13_11.3: = bound_method %impl.elem0.loc13_11.3, constants.%ptr.as.Copy.impl.Op.specific_fn [symbolic = %bound_method.loc13_11.3 (constants.%bound_method.195)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> out %return.param: %ptr.847 { +// CHECK:STDOUT: fn() -> out %return.param: %ptr.d08 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %I.ref: %Interface.type.734 = name_ref I, %I.loc12_20.2 [symbolic = %I.loc12_20.1 (constants.%I.cc3)] -// CHECK:STDOUT: %I.as_type.loc13_11.1: type = facet_access_type %I.ref [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.51d)] -// CHECK:STDOUT: %.loc13_11.1: type = converted %I.ref, %I.as_type.loc13_11.1 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.51d)] -// CHECK:STDOUT: %.loc13_11.2: %Interface.assoc_type.488 = specific_constant @X.%assoc0, @Interface.WithSelf(constants.%i32, constants.%I.cc3) [concrete = constants.%assoc0.868] -// CHECK:STDOUT: %X.ref: %Interface.assoc_type.488 = name_ref X, %.loc13_11.2 [concrete = constants.%assoc0.868] -// CHECK:STDOUT: %impl.elem0.loc13_11.1: %ptr.847 = impl_witness_access constants.%Interface.lookup_impl_witness.5ef, element0 [symbolic = %impl.elem0.loc13_11.3 (constants.%impl.elem0.cf4)] -// CHECK:STDOUT: %impl.elem0.loc13_11.2: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %I.ref: %Interface.type.c5f = name_ref I, %I.loc12_20.2 [symbolic = %I.loc12_20.1 (constants.%I.e05)] +// CHECK:STDOUT: %I.as_type.loc13_11.1: type = facet_access_type %I.ref [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.307)] +// CHECK:STDOUT: %.loc13_11.1: type = converted %I.ref, %I.as_type.loc13_11.1 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.307)] +// CHECK:STDOUT: %.loc13_11.2: %Interface.assoc_type.d6a = specific_constant @X.%assoc0, @Interface.WithSelf(constants.%i32, constants.%I.e05) [concrete = constants.%assoc0.80c] +// CHECK:STDOUT: %X.ref: %Interface.assoc_type.d6a = name_ref X, %.loc13_11.2 [concrete = constants.%assoc0.80c] +// CHECK:STDOUT: %impl.elem0.loc13_11.1: %ptr.d08 = impl_witness_access constants.%Interface.lookup_impl_witness.64c, element0 [symbolic = %impl.elem0.loc13_11.3 (constants.%impl.elem0.3b7)] +// CHECK:STDOUT: %impl.elem0.loc13_11.2: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc13_11.1: = bound_method %impl.elem0.loc13_11.1, %impl.elem0.loc13_11.2 [symbolic = %ptr.as.Copy.impl.Op.bound (constants.%ptr.as.Copy.impl.Op.bound)] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc13_11.2, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc13_11.2: = bound_method %impl.elem0.loc13_11.1, %specific_fn [symbolic = %bound_method.loc13_11.3 (constants.%bound_method.915)] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.847 = call %bound_method.loc13_11.2(%impl.elem0.loc13_11.1) [symbolic = %impl.elem0.loc13_11.3 (constants.%impl.elem0.cf4)] +// CHECK:STDOUT: %bound_method.loc13_11.2: = bound_method %impl.elem0.loc13_11.1, %specific_fn [symbolic = %bound_method.loc13_11.3 (constants.%bound_method.195)] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d08 = call %bound_method.loc13_11.2(%impl.elem0.loc13_11.1) [symbolic = %impl.elem0.loc13_11.3 (constants.%impl.elem0.3b7)] // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -294,62 +294,62 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %T.loc4_22.1 => constants.%T.67d // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Interface.type => constants.%Interface.type.481 -// CHECK:STDOUT: %Self.loc4_31.2 => constants.%Self.0e1 +// CHECK:STDOUT: %Interface.type => constants.%Interface.type.fe8 +// CHECK:STDOUT: %Self.loc4_31.2 => constants.%Self.45e // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%T.67d, constants.%Self.0e1) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%T.67d, constants.%Self.45e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T.67d // CHECK:STDOUT: %ptr => constants.%ptr.e8f -// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.91e -// CHECK:STDOUT: %assoc0 => constants.%assoc0.3da +// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.61f +// CHECK:STDOUT: %assoc0 => constants.%assoc0.199 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AccessGeneric(constants.%T.67d, constants.%I.514) { +// CHECK:STDOUT: specific @AccessGeneric(constants.%T.67d, constants.%I.63c) { // CHECK:STDOUT: %T.loc8_19.1 => constants.%T.67d -// CHECK:STDOUT: %Interface.type.loc8_43.1 => constants.%Interface.type.481 -// CHECK:STDOUT: %I.loc8_29.1 => constants.%I.514 -// CHECK:STDOUT: %pattern_type.loc8_29 => constants.%pattern_type.5a0 +// CHECK:STDOUT: %Interface.type.loc8_43.1 => constants.%Interface.type.fe8 +// CHECK:STDOUT: %I.loc8_29.1 => constants.%I.63c +// CHECK:STDOUT: %pattern_type.loc8_29 => constants.%pattern_type.2c6f // CHECK:STDOUT: %ptr.loc8_50.1 => constants.%ptr.e8f // CHECK:STDOUT: %.loc8_50.1 => constants.%.cb6 // CHECK:STDOUT: %pattern_type.loc8_50 => constants.%pattern_type.4f4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%T.67d, constants.%I.514) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%T.67d, constants.%I.63c) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T.67d // CHECK:STDOUT: %ptr => constants.%ptr.e8f -// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.91e -// CHECK:STDOUT: %assoc0 => constants.%assoc0.3da +// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.61f +// CHECK:STDOUT: %assoc0 => constants.%assoc0.199 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Interface(constants.%i32) { // CHECK:STDOUT: %T.loc4_22.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Interface.type => constants.%Interface.type.734 -// CHECK:STDOUT: %Self.loc4_31.2 => constants.%Self.f3b +// CHECK:STDOUT: %Interface.type => constants.%Interface.type.c5f +// CHECK:STDOUT: %Self.loc4_31.2 => constants.%Self.43d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AccessConcrete(constants.%I.cc3) { -// CHECK:STDOUT: %I.loc12_20.1 => constants.%I.cc3 +// CHECK:STDOUT: specific @AccessConcrete(constants.%I.e05) { +// CHECK:STDOUT: %I.loc12_20.1 => constants.%I.e05 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%i32, constants.%Self.0e1) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%i32, constants.%Self.45e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32 -// CHECK:STDOUT: %ptr => constants.%ptr.847 -// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.488 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.868 +// CHECK:STDOUT: %ptr => constants.%ptr.d08 +// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.d6a +// CHECK:STDOUT: %assoc0 => constants.%assoc0.80c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%i32, constants.%I.cc3) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%i32, constants.%I.e05) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32 -// CHECK:STDOUT: %ptr => constants.%ptr.847 -// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.488 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.868 +// CHECK:STDOUT: %ptr => constants.%ptr.d08 +// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.d6a +// CHECK:STDOUT: %assoc0 => constants.%assoc0.80c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_no_member.carbon @@ -359,38 +359,38 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Interface.type.77d: type = generic_interface_type @Interface [concrete] -// CHECK:STDOUT: %Interface.generic: %Interface.type.77d = struct_value () [concrete] -// CHECK:STDOUT: %Interface.type.481: type = facet_type <@Interface, @Interface(%T)> [symbolic] -// CHECK:STDOUT: %Self.0e1: %Interface.type.481 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Interface.type.1b1: type = generic_interface_type @Interface [concrete] +// CHECK:STDOUT: %Interface.generic: %Interface.type.1b1 = struct_value () [concrete] +// CHECK:STDOUT: %Interface.type.fe8: type = facet_type <@Interface, @Interface(%T)> [symbolic] +// CHECK:STDOUT: %Self.45e: %Interface.type.fe8 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %Interface.assoc_type.91e: type = assoc_entity_type @Interface, @Interface(%T) [symbolic] -// CHECK:STDOUT: %assoc0.3da: %Interface.assoc_type.91e = assoc_entity element0, @Interface.WithSelf.%X [symbolic] -// CHECK:STDOUT: %pattern_type.5a0: type = pattern_type %Interface.type.481 [symbolic] -// CHECK:STDOUT: %I.514: %Interface.type.481 = symbolic_binding I, 1 [symbolic] +// CHECK:STDOUT: %Interface.assoc_type.61f: type = assoc_entity_type @Interface, @Interface(%T) [symbolic] +// CHECK:STDOUT: %assoc0.199: %Interface.assoc_type.61f = assoc_entity element0, @Interface.WithSelf.%X [symbolic] +// CHECK:STDOUT: %pattern_type.2c6: type = pattern_type %Interface.type.fe8 [symbolic] +// CHECK:STDOUT: %I.63c: %Interface.type.fe8 = symbolic_binding I, 1 [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] // CHECK:STDOUT: %AccessMissingGeneric.type: type = fn_type @AccessMissingGeneric [concrete] // CHECK:STDOUT: %AccessMissingGeneric: %AccessMissingGeneric.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %require_complete.38c: = require_complete_type %Interface.type.481 [symbolic] -// CHECK:STDOUT: %I.as_type.363: type = facet_access_type %I.514 [symbolic] +// CHECK:STDOUT: %require_complete.08a: = require_complete_type %Interface.type.fe8 [symbolic] +// CHECK:STDOUT: %I.as_type.3c3: type = facet_access_type %I.63c [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %Interface.type.734: type = facet_type <@Interface, @Interface(%i32)> [concrete] -// CHECK:STDOUT: %pattern_type.02c: type = pattern_type %Interface.type.734 [concrete] -// CHECK:STDOUT: %I.cc3: %Interface.type.734 = symbolic_binding I, 0 [symbolic] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Interface.type.c5f: type = facet_type <@Interface, @Interface(%i32)> [concrete] +// CHECK:STDOUT: %pattern_type.3cf: type = pattern_type %Interface.type.c5f [concrete] +// CHECK:STDOUT: %I.e05: %Interface.type.c5f = symbolic_binding I, 0 [symbolic] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %AccessMissingConcrete.type: type = fn_type @AccessMissingConcrete [concrete] // CHECK:STDOUT: %AccessMissingConcrete: %AccessMissingConcrete.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.f3b: %Interface.type.734 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Interface.assoc_type.488: type = assoc_entity_type @Interface, @Interface(%i32) [concrete] -// CHECK:STDOUT: %assoc0.868: %Interface.assoc_type.488 = assoc_entity element0, @Interface.WithSelf.%X [concrete] -// CHECK:STDOUT: %I.as_type.51d: type = facet_access_type %I.cc3 [symbolic] +// CHECK:STDOUT: %Self.43d: %Interface.type.c5f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %Interface.assoc_type.d6a: type = assoc_entity_type @Interface, @Interface(%i32) [concrete] +// CHECK:STDOUT: %assoc0.80c: %Interface.assoc_type.d6a = assoc_entity element0, @Interface.WithSelf.%X [concrete] +// CHECK:STDOUT: %I.as_type.307: type = facet_access_type %I.e05 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -410,7 +410,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: .AccessMissingConcrete = %AccessMissingConcrete.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %Interface.decl: %Interface.type.77d = interface_decl @Interface [concrete = constants.%Interface.generic] { +// CHECK:STDOUT: %Interface.decl: %Interface.type.1b1 = interface_decl @Interface [concrete = constants.%Interface.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_25.1: type = splice_block %.loc4_25.2 [concrete = type] { @@ -421,7 +421,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %AccessMissingGeneric.decl: %AccessMissingGeneric.type = fn_decl @AccessMissingGeneric [concrete = constants.%AccessMissingGeneric] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %I.patt: @AccessMissingGeneric.%pattern_type.loc8_36 (%pattern_type.5a0) = symbolic_binding_pattern I, 1 [concrete] +// CHECK:STDOUT: %I.patt: @AccessMissingGeneric.%pattern_type.loc8_36 (%pattern_type.2c6) = symbolic_binding_pattern I, 1 [concrete] // CHECK:STDOUT: %return.param_patt: @AccessMissingGeneric.%pattern_type.loc8_56 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @AccessMissingGeneric.%pattern_type.loc8_56 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref.loc8_56 [concrete] // CHECK:STDOUT: } { @@ -432,30 +432,30 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %.loc8_29.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc8_26.2: type = symbolic_binding T, 0 [symbolic = %T.loc8_26.1 (constants.%T)] -// CHECK:STDOUT: %.loc8_50: type = splice_block %Interface.type.loc8_50.2 [symbolic = %Interface.type.loc8_50.1 (constants.%Interface.type.481)] { +// CHECK:STDOUT: %.loc8_50: type = splice_block %Interface.type.loc8_50.2 [symbolic = %Interface.type.loc8_50.1 (constants.%Interface.type.fe8)] { // CHECK:STDOUT: %.Self.loc8_36: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Interface.ref: %Interface.type.77d = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.generic] +// CHECK:STDOUT: %Interface.ref: %Interface.type.1b1 = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.generic] // CHECK:STDOUT: %T.ref.loc8_49: type = name_ref T, %T.loc8_26.2 [symbolic = %T.loc8_26.1 (constants.%T)] -// CHECK:STDOUT: %Interface.type.loc8_50.2: type = facet_type <@Interface, @Interface(constants.%T)> [symbolic = %Interface.type.loc8_50.1 (constants.%Interface.type.481)] +// CHECK:STDOUT: %Interface.type.loc8_50.2: type = facet_type <@Interface, @Interface(constants.%T)> [symbolic = %Interface.type.loc8_50.1 (constants.%Interface.type.fe8)] // CHECK:STDOUT: } -// CHECK:STDOUT: %I.loc8_36.2: @AccessMissingGeneric.%Interface.type.loc8_50.1 (%Interface.type.481) = symbolic_binding I, 1 [symbolic = %I.loc8_36.1 (constants.%I.514)] +// CHECK:STDOUT: %I.loc8_36.2: @AccessMissingGeneric.%Interface.type.loc8_50.1 (%Interface.type.fe8) = symbolic_binding I, 1 [symbolic = %I.loc8_36.1 (constants.%I.63c)] // CHECK:STDOUT: %return.param: ref @AccessMissingGeneric.%T.loc8_26.1 (%T) = out_param call_param0 // CHECK:STDOUT: %return: ref @AccessMissingGeneric.%T.loc8_26.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessMissingConcrete.decl: %AccessMissingConcrete.type = fn_decl @AccessMissingConcrete [concrete = constants.%AccessMissingConcrete] { -// CHECK:STDOUT: %I.patt: %pattern_type.02c = symbolic_binding_pattern I, 0 [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc16_49 [concrete] +// CHECK:STDOUT: %I.patt: %pattern_type.3cf = symbolic_binding_pattern I, 0 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc16_49 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc16_49: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16_49: Core.Form = init_form %i32.loc16_49 [concrete = constants.%.7ea] -// CHECK:STDOUT: %.loc16_43: type = splice_block %Interface.type [concrete = constants.%Interface.type.734] { +// CHECK:STDOUT: %.loc16_49: Core.Form = init_form %i32.loc16_49 [concrete = constants.%.795] +// CHECK:STDOUT: %.loc16_43: type = splice_block %Interface.type [concrete = constants.%Interface.type.c5f] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Interface.ref: %Interface.type.77d = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.generic] +// CHECK:STDOUT: %Interface.ref: %Interface.type.1b1 = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.generic] // CHECK:STDOUT: %i32.loc16_40: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(constants.%i32)> [concrete = constants.%Interface.type.734] +// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(constants.%i32)> [concrete = constants.%Interface.type.c5f] // CHECK:STDOUT: } -// CHECK:STDOUT: %I.loc16_27.2: %Interface.type.734 = symbolic_binding I, 0 [symbolic = %I.loc16_27.1 (constants.%I.cc3)] +// CHECK:STDOUT: %I.loc16_27.2: %Interface.type.c5f = symbolic_binding I, 0 [symbolic = %I.loc16_27.1 (constants.%I.e05)] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -465,16 +465,16 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %T.loc4_22.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_22.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(%T.loc4_22.1)> [symbolic = %Interface.type (constants.%Interface.type.481)] -// CHECK:STDOUT: %Self.loc4_31.2: @Interface.%Interface.type (%Interface.type.481) = symbolic_binding Self, 1 [symbolic = %Self.loc4_31.2 (constants.%Self.0e1)] +// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(%T.loc4_22.1)> [symbolic = %Interface.type (constants.%Interface.type.fe8)] +// CHECK:STDOUT: %Self.loc4_31.2: @Interface.%Interface.type (%Interface.type.fe8) = symbolic_binding Self, 1 [symbolic = %Self.loc4_31.2 (constants.%Self.45e)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_31.1: @Interface.%Interface.type (%Interface.type.481) = symbolic_binding Self, 1 [symbolic = %Self.loc4_31.2 (constants.%Self.0e1)] +// CHECK:STDOUT: %Self.loc4_31.1: @Interface.%Interface.type (%Interface.type.fe8) = symbolic_binding Self, 1 [symbolic = %Self.loc4_31.2 (constants.%Self.45e)] // CHECK:STDOUT: %Interface.WithSelf.decl = interface_with_self_decl @Interface [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %X: @Interface.WithSelf.%ptr (%ptr.e8f) = assoc_const_decl @X [concrete] { -// CHECK:STDOUT: %assoc0: @Interface.WithSelf.%Interface.assoc_type (%Interface.assoc_type.91e) = assoc_entity element0, @Interface.WithSelf.%X [symbolic = @Interface.WithSelf.%assoc0 (constants.%assoc0.3da)] +// CHECK:STDOUT: %assoc0: @Interface.WithSelf.%Interface.assoc_type (%Interface.assoc_type.61f) = assoc_entity element0, @Interface.WithSelf.%X [symbolic = @Interface.WithSelf.%assoc0 (constants.%assoc0.199)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -489,40 +489,40 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AccessMissingGeneric(%T.loc8_26.2: type, %I.loc8_36.2: @AccessMissingGeneric.%Interface.type.loc8_50.1 (%Interface.type.481)) { +// CHECK:STDOUT: generic fn @AccessMissingGeneric(%T.loc8_26.2: type, %I.loc8_36.2: @AccessMissingGeneric.%Interface.type.loc8_50.1 (%Interface.type.fe8)) { // CHECK:STDOUT: %T.loc8_26.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_26.1 (constants.%T)] -// CHECK:STDOUT: %Interface.type.loc8_50.1: type = facet_type <@Interface, @Interface(%T.loc8_26.1)> [symbolic = %Interface.type.loc8_50.1 (constants.%Interface.type.481)] -// CHECK:STDOUT: %I.loc8_36.1: @AccessMissingGeneric.%Interface.type.loc8_50.1 (%Interface.type.481) = symbolic_binding I, 1 [symbolic = %I.loc8_36.1 (constants.%I.514)] -// CHECK:STDOUT: %pattern_type.loc8_36: type = pattern_type %Interface.type.loc8_50.1 [symbolic = %pattern_type.loc8_36 (constants.%pattern_type.5a0)] +// CHECK:STDOUT: %Interface.type.loc8_50.1: type = facet_type <@Interface, @Interface(%T.loc8_26.1)> [symbolic = %Interface.type.loc8_50.1 (constants.%Interface.type.fe8)] +// CHECK:STDOUT: %I.loc8_36.1: @AccessMissingGeneric.%Interface.type.loc8_50.1 (%Interface.type.fe8) = symbolic_binding I, 1 [symbolic = %I.loc8_36.1 (constants.%I.63c)] +// CHECK:STDOUT: %pattern_type.loc8_36: type = pattern_type %Interface.type.loc8_50.1 [symbolic = %pattern_type.loc8_36 (constants.%pattern_type.2c6)] // CHECK:STDOUT: %.loc8_56.1: Core.Form = init_form %T.loc8_26.1 [symbolic = %.loc8_56.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc8_56: type = pattern_type %T.loc8_26.1 [symbolic = %pattern_type.loc8_56 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8: = require_complete_type %T.loc8_26.1 [symbolic = %require_complete.loc8 (constants.%require_complete.944)] -// CHECK:STDOUT: %require_complete.loc13: = require_complete_type %Interface.type.loc8_50.1 [symbolic = %require_complete.loc13 (constants.%require_complete.38c)] -// CHECK:STDOUT: %I.as_type.loc13_11.2: type = facet_access_type %I.loc8_36.1 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.363)] +// CHECK:STDOUT: %require_complete.loc13: = require_complete_type %Interface.type.loc8_50.1 [symbolic = %require_complete.loc13 (constants.%require_complete.08a)] +// CHECK:STDOUT: %I.as_type.loc13_11.2: type = facet_access_type %I.loc8_36.1 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.3c3)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: @AccessMissingGeneric.%T.loc8_26.1 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %I.ref: @AccessMissingGeneric.%Interface.type.loc8_50.1 (%Interface.type.481) = name_ref I, %I.loc8_36.2 [symbolic = %I.loc8_36.1 (constants.%I.514)] -// CHECK:STDOUT: %I.as_type.loc13_11.1: type = facet_access_type %I.ref [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.363)] -// CHECK:STDOUT: %.loc13: type = converted %I.ref, %I.as_type.loc13_11.1 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.363)] +// CHECK:STDOUT: %I.ref: @AccessMissingGeneric.%Interface.type.loc8_50.1 (%Interface.type.fe8) = name_ref I, %I.loc8_36.2 [symbolic = %I.loc8_36.1 (constants.%I.63c)] +// CHECK:STDOUT: %I.as_type.loc13_11.1: type = facet_access_type %I.ref [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.3c3)] +// CHECK:STDOUT: %.loc13: type = converted %I.ref, %I.as_type.loc13_11.1 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.3c3)] // CHECK:STDOUT: %nonesuch.ref: = name_ref nonesuch, [concrete = ] // CHECK:STDOUT: return to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AccessMissingConcrete(%I.loc16_27.2: %Interface.type.734) { -// CHECK:STDOUT: %I.loc16_27.1: %Interface.type.734 = symbolic_binding I, 0 [symbolic = %I.loc16_27.1 (constants.%I.cc3)] +// CHECK:STDOUT: generic fn @AccessMissingConcrete(%I.loc16_27.2: %Interface.type.c5f) { +// CHECK:STDOUT: %I.loc16_27.1: %Interface.type.c5f = symbolic_binding I, 0 [symbolic = %I.loc16_27.1 (constants.%I.e05)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.as_type.loc21_11.2: type = facet_access_type %I.loc16_27.1 [symbolic = %I.as_type.loc21_11.2 (constants.%I.as_type.51d)] +// CHECK:STDOUT: %I.as_type.loc21_11.2: type = facet_access_type %I.loc16_27.1 [symbolic = %I.as_type.loc21_11.2 (constants.%I.as_type.307)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %I.ref: %Interface.type.734 = name_ref I, %I.loc16_27.2 [symbolic = %I.loc16_27.1 (constants.%I.cc3)] -// CHECK:STDOUT: %I.as_type.loc21_11.1: type = facet_access_type %I.ref [symbolic = %I.as_type.loc21_11.2 (constants.%I.as_type.51d)] -// CHECK:STDOUT: %.loc21: type = converted %I.ref, %I.as_type.loc21_11.1 [symbolic = %I.as_type.loc21_11.2 (constants.%I.as_type.51d)] +// CHECK:STDOUT: %I.ref: %Interface.type.c5f = name_ref I, %I.loc16_27.2 [symbolic = %I.loc16_27.1 (constants.%I.e05)] +// CHECK:STDOUT: %I.as_type.loc21_11.1: type = facet_access_type %I.ref [symbolic = %I.as_type.loc21_11.2 (constants.%I.as_type.307)] +// CHECK:STDOUT: %.loc21: type = converted %I.ref, %I.as_type.loc21_11.1 [symbolic = %I.as_type.loc21_11.2 (constants.%I.as_type.307)] // CHECK:STDOUT: %nonesuch.ref: = name_ref nonesuch, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -532,60 +532,60 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %T.loc4_22.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Interface.type => constants.%Interface.type.481 -// CHECK:STDOUT: %Self.loc4_31.2 => constants.%Self.0e1 +// CHECK:STDOUT: %Interface.type => constants.%Interface.type.fe8 +// CHECK:STDOUT: %Self.loc4_31.2 => constants.%Self.45e // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%T, constants.%Self.0e1) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%T, constants.%Self.45e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %ptr => constants.%ptr.e8f -// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.91e -// CHECK:STDOUT: %assoc0 => constants.%assoc0.3da +// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.61f +// CHECK:STDOUT: %assoc0 => constants.%assoc0.199 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AccessMissingGeneric(constants.%T, constants.%I.514) { +// CHECK:STDOUT: specific @AccessMissingGeneric(constants.%T, constants.%I.63c) { // CHECK:STDOUT: %T.loc8_26.1 => constants.%T -// CHECK:STDOUT: %Interface.type.loc8_50.1 => constants.%Interface.type.481 -// CHECK:STDOUT: %I.loc8_36.1 => constants.%I.514 -// CHECK:STDOUT: %pattern_type.loc8_36 => constants.%pattern_type.5a0 +// CHECK:STDOUT: %Interface.type.loc8_50.1 => constants.%Interface.type.fe8 +// CHECK:STDOUT: %I.loc8_36.1 => constants.%I.63c +// CHECK:STDOUT: %pattern_type.loc8_36 => constants.%pattern_type.2c6 // CHECK:STDOUT: %.loc8_56.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc8_56 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%T, constants.%I.514) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%T, constants.%I.63c) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %ptr => constants.%ptr.e8f -// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.91e -// CHECK:STDOUT: %assoc0 => constants.%assoc0.3da +// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.61f +// CHECK:STDOUT: %assoc0 => constants.%assoc0.199 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Interface(constants.%i32) { // CHECK:STDOUT: %T.loc4_22.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Interface.type => constants.%Interface.type.734 -// CHECK:STDOUT: %Self.loc4_31.2 => constants.%Self.f3b +// CHECK:STDOUT: %Interface.type => constants.%Interface.type.c5f +// CHECK:STDOUT: %Self.loc4_31.2 => constants.%Self.43d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AccessMissingConcrete(constants.%I.cc3) { -// CHECK:STDOUT: %I.loc16_27.1 => constants.%I.cc3 +// CHECK:STDOUT: specific @AccessMissingConcrete(constants.%I.e05) { +// CHECK:STDOUT: %I.loc16_27.1 => constants.%I.e05 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%i32, constants.%Self.0e1) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%i32, constants.%Self.45e) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32 -// CHECK:STDOUT: %ptr => constants.%ptr.847 -// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.488 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.868 +// CHECK:STDOUT: %ptr => constants.%ptr.d08 +// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.d6a +// CHECK:STDOUT: %assoc0 => constants.%assoc0.80c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%i32, constants.%I.cc3) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%i32, constants.%I.e05) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%i32 -// CHECK:STDOUT: %ptr => constants.%ptr.847 -// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.488 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.868 +// CHECK:STDOUT: %ptr => constants.%ptr.d08 +// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.d6a +// CHECK:STDOUT: %assoc0 => constants.%assoc0.80c // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/require.carbon b/toolchain/check/testdata/interface/require.carbon index c9f8d0a84d89..776f1744176c 100644 --- a/toolchain/check/testdata/interface/require.carbon +++ b/toolchain/check/testdata/interface/require.carbon @@ -377,8 +377,8 @@ interface Z(T:! type) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.91f: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.91f [symbolic] +// CHECK:STDOUT: %Self.cb6: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.cb6 [symbolic] // CHECK:STDOUT: %T: %Z.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -387,7 +387,7 @@ interface Z(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.91f] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.cb6] // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -397,7 +397,7 @@ interface Z(T:! type) { // CHECK:STDOUT: %Self.as_type.loc9_18.1: type = facet_access_type @Z.%Self [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc9: type = specific_constant @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.ref, @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.91f) [concrete = constants.%Y.type] +// CHECK:STDOUT: %.loc9: type = specific_constant @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.ref, @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.cb6) [concrete = constants.%Y.type] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -414,16 +414,16 @@ interface Z(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.91f)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.cb6)] // CHECK:STDOUT: %Self.as_type.loc9_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.91f) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.cb6) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.91f) { -// CHECK:STDOUT: %Self => constants.%Self.91f +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.cb6) { +// CHECK:STDOUT: %Self => constants.%Self.cb6 // CHECK:STDOUT: %Self.as_type.loc9_18.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -434,17 +434,17 @@ interface Z(T:! type) { // CHECK:STDOUT: --- fail_todo_extend_with_self.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %Y.type.99a: type = generic_interface_type @Y [concrete] -// CHECK:STDOUT: %Y.generic: %Y.type.99a = struct_value () [concrete] +// CHECK:STDOUT: %Y.type.cb4: type = generic_interface_type @Y [concrete] +// CHECK:STDOUT: %Y.generic: %Y.type.cb4 = struct_value () [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.91f: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.91f [symbolic] -// CHECK:STDOUT: %Y.type.f65: type = facet_type <@Y, @Y(%Self.as_type)> [symbolic] -// CHECK:STDOUT: %require_complete.748: = require_complete_type %Y.type.f65 [symbolic] -// CHECK:STDOUT: %T.aa0: %Z.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.aa0 [symbolic] -// CHECK:STDOUT: %Y.type.02d: type = facet_type <@Y, @Y(%T.as_type)> [symbolic] -// CHECK:STDOUT: %require_complete.602: = require_complete_type %Y.type.02d [symbolic] +// CHECK:STDOUT: %Self.cb6: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.cb6 [symbolic] +// CHECK:STDOUT: %Y.type.14a: type = facet_type <@Y, @Y(%Self.as_type)> [symbolic] +// CHECK:STDOUT: %require_complete.bf2: = require_complete_type %Y.type.14a [symbolic] +// CHECK:STDOUT: %T.013: %Z.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.013 [symbolic] +// CHECK:STDOUT: %Y.type.6ee: type = facet_type <@Y, @Y(%T.as_type)> [symbolic] +// CHECK:STDOUT: %require_complete.066: = require_complete_type %Y.type.6ee [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -452,7 +452,7 @@ interface Z(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.91f] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.cb6] // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -460,13 +460,13 @@ interface Z(T:! type) { // CHECK:STDOUT: require %Self.as_type.loc9_18.1 impls %Y.type.loc9_30.1 // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.as_type.loc9_18.1: type = facet_access_type @Z.%Self [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %Y.ref: %Y.type.99a = name_ref Y, file.%Y.decl [concrete = constants.%Y.generic] -// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.91f)] +// CHECK:STDOUT: %Y.ref: %Y.type.cb4 = name_ref Y, file.%Y.decl [concrete = constants.%Y.generic] +// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.cb6)] // CHECK:STDOUT: %Self.as_type.loc9_30: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type.loc9_30 [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %Y.type.loc9_30.1: type = facet_type <@Y, @Y(constants.%Self.as_type)> [symbolic = %Y.type.loc9_30.2 (constants.%Y.type.f65)] +// CHECK:STDOUT: %Y.type.loc9_30.1: type = facet_type <@Y, @Y(constants.%Self.as_type)> [symbolic = %Y.type.loc9_30.2 (constants.%Y.type.14a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc9: type = specific_constant @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.type.loc9_30.1, @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.91f) [symbolic = %Y.type (constants.%Y.type.f65)] +// CHECK:STDOUT: %.loc9: type = specific_constant @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.type.loc9_30.1, @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.cb6) [symbolic = %Y.type (constants.%Y.type.14a)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -483,31 +483,31 @@ interface Z(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.91f)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.cb6)] // CHECK:STDOUT: %Self.as_type.loc9_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %Y.type.loc9_30.2: type = facet_type <@Y, @Y(%Self.as_type.loc9_18.2)> [symbolic = %Y.type.loc9_30.2 (constants.%Y.type.f65)] +// CHECK:STDOUT: %Y.type.loc9_30.2: type = facet_type <@Y, @Y(%Self.as_type.loc9_18.2)> [symbolic = %Y.type.loc9_30.2 (constants.%Y.type.14a)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.91f) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.cb6) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.91f +// CHECK:STDOUT: %Self => constants.%Self.cb6 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %Y.type => constants.%Y.type.f65 -// CHECK:STDOUT: %require_complete => constants.%require_complete.748 +// CHECK:STDOUT: %Y.type => constants.%Y.type.14a +// CHECK:STDOUT: %require_complete => constants.%require_complete.bf2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.91f) { -// CHECK:STDOUT: %Self => constants.%Self.91f +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.cb6) { +// CHECK:STDOUT: %Self => constants.%Self.cb6 // CHECK:STDOUT: %Self.as_type.loc9_18.2 => constants.%Self.as_type -// CHECK:STDOUT: %Y.type.loc9_30.2 => constants.%Y.type.f65 +// CHECK:STDOUT: %Y.type.loc9_30.2 => constants.%Y.type.14a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%T.aa0) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%T.013) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%T.aa0 +// CHECK:STDOUT: %Self => constants.%T.013 // CHECK:STDOUT: %Self.as_type => constants.%T.as_type -// CHECK:STDOUT: %Y.type => constants.%Y.type.02d -// CHECK:STDOUT: %require_complete => constants.%require_complete.602 +// CHECK:STDOUT: %Y.type => constants.%Y.type.6ee +// CHECK:STDOUT: %require_complete => constants.%require_complete.066 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_implicit_self_impls.carbon @@ -515,8 +515,8 @@ interface Z(T:! type) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.91f: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.91f [symbolic] +// CHECK:STDOUT: %Self.cb6: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.cb6 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -524,7 +524,7 @@ interface Z(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.91f] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.cb6] // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -548,16 +548,16 @@ interface Z(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.91f)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.cb6)] // CHECK:STDOUT: %Self.as_type.loc9_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.91f) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.cb6) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.91f) { -// CHECK:STDOUT: %Self => constants.%Self.91f +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.cb6) { +// CHECK:STDOUT: %Self => constants.%Self.cb6 // CHECK:STDOUT: %Self.as_type.loc9_11.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -566,8 +566,8 @@ interface Z(T:! type) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.91f: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.91f [symbolic] +// CHECK:STDOUT: %Self.cb6: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.cb6 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -575,14 +575,14 @@ interface Z(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.91f] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.cb6] // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Z.WithSelf.Self.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.as_type.impls.Y.type.require [concrete] { // CHECK:STDOUT: require %.loc9 impls %Y.ref // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.91f)] +// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.cb6)] // CHECK:STDOUT: %Self.as_type.loc9_11.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type.loc9_11.1 [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] @@ -601,16 +601,16 @@ interface Z(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.91f)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.cb6)] // CHECK:STDOUT: %Self.as_type.loc9_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.91f) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.cb6) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.91f) { -// CHECK:STDOUT: %Self => constants.%Self.91f +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.cb6) { +// CHECK:STDOUT: %Self => constants.%Self.cb6 // CHECK:STDOUT: %Self.as_type.loc9_11.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -621,9 +621,9 @@ interface Z(T:! type) { // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.91f: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.91f [symbolic] -// CHECK:STDOUT: %C.7bc: type = class_type @C, @C(%Self.as_type) [symbolic] +// CHECK:STDOUT: %Self.cb6: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.cb6 [symbolic] +// CHECK:STDOUT: %C.b5f: type = class_type @C, @C(%Self.as_type) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -631,7 +631,7 @@ interface Z(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.91f] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.cb6] // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -639,10 +639,10 @@ interface Z(T:! type) { // CHECK:STDOUT: require %C.loc9_17.1 impls %Y.ref // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] -// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.91f)] +// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.cb6)] // CHECK:STDOUT: %Self.as_type.loc9_17.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_17.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type.loc9_17.1 [symbolic = %Self.as_type.loc9_17.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %C.loc9_17.1: type = class_type @C, @C(constants.%Self.as_type) [symbolic = %C.loc9_17.2 (constants.%C.7bc)] +// CHECK:STDOUT: %C.loc9_17.1: type = class_type @C, @C(constants.%Self.as_type) [symbolic = %C.loc9_17.2 (constants.%C.b5f)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -661,17 +661,17 @@ interface Z(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @Z.WithSelf.C.impls.Y.type.require(@Z.%Self: %Z.type) { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.91f)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.cb6)] // CHECK:STDOUT: %Self.as_type.loc9_17.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_17.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %C.loc9_17.2: type = class_type @C, @C(%Self.as_type.loc9_17.2) [symbolic = %C.loc9_17.2 (constants.%C.7bc)] +// CHECK:STDOUT: %C.loc9_17.2: type = class_type @C, @C(%Self.as_type.loc9_17.2) [symbolic = %C.loc9_17.2 (constants.%C.b5f)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.91f) {} +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.cb6) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.C.impls.Y.type.require(constants.%Self.91f) { -// CHECK:STDOUT: %Self => constants.%Self.91f +// CHECK:STDOUT: specific @Z.WithSelf.C.impls.Y.type.require(constants.%Self.cb6) { +// CHECK:STDOUT: %Self => constants.%Self.cb6 // CHECK:STDOUT: %Self.as_type.loc9_17.2 => constants.%Self.as_type -// CHECK:STDOUT: %C.loc9_17.2 => constants.%C.7bc +// CHECK:STDOUT: %C.loc9_17.2 => constants.%C.b5f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- require_impls_where.carbon @@ -681,8 +681,8 @@ interface Z(T:! type) { // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] // CHECK:STDOUT: %assoc0: %Y.assoc_type = assoc_entity element0, @Y.WithSelf.%Y1 [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.91f: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.91f [symbolic] +// CHECK:STDOUT: %Self.cb6: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.cb6 [symbolic] // CHECK:STDOUT: %.Self: %Y.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self, @Y [symbolic_self] @@ -697,7 +697,7 @@ interface Z(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.91f] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.cb6] // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -733,14 +733,14 @@ interface Z(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y_where.type.require(@Z.%Self: %Z.type) { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.91f)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.cb6)] // CHECK:STDOUT: %Self.as_type.loc7_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.91f) {} +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.cb6) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y_where.type.require(constants.%Self.91f) { -// CHECK:STDOUT: %Self => constants.%Self.91f +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y_where.type.require(constants.%Self.cb6) { +// CHECK:STDOUT: %Self => constants.%Self.cb6 // CHECK:STDOUT: %Self.as_type.loc7_11.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -751,16 +751,16 @@ interface Z(T:! type) { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Z.type.8a6: type = generic_interface_type @Z [concrete] -// CHECK:STDOUT: %Z.generic: %Z.type.8a6 = struct_value () [concrete] -// CHECK:STDOUT: %Z.type.284: type = facet_type <@Z, @Z(%T)> [symbolic] -// CHECK:STDOUT: %Self: %Z.type.284 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Z.type.c39: type = generic_interface_type @Z [concrete] +// CHECK:STDOUT: %Z.generic: %Z.type.c39 = struct_value () [concrete] +// CHECK:STDOUT: %Z.type.924: type = facet_type <@Z, @Z(%T)> [symbolic] +// CHECK:STDOUT: %Self: %Z.type.924 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %Z.type.1d9: type = facet_type <@Z, @Z(%Self.as_type)> [symbolic] +// CHECK:STDOUT: %Z.type.aeb: type = facet_type <@Z, @Z(%Self.as_type)> [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { -// CHECK:STDOUT: %Z.decl: %Z.type.8a6 = interface_decl @Z [concrete = constants.%Z.generic] { +// CHECK:STDOUT: %Z.decl: %Z.type.c39 = interface_decl @Z [concrete = constants.%Z.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_17.1: type = splice_block %.loc4_17.2 [concrete = type] { @@ -775,11 +775,11 @@ interface Z(T:! type) { // CHECK:STDOUT: %T.loc4_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%T.loc4_14.1)> [symbolic = %Z.type (constants.%Z.type.284)] -// CHECK:STDOUT: %Self.loc4_23.2: @Z.%Z.type (%Z.type.284) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self)] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%T.loc4_14.1)> [symbolic = %Z.type (constants.%Z.type.924)] +// CHECK:STDOUT: %Self.loc4_23.2: @Z.%Z.type (%Z.type.924) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_23.1: @Z.%Z.type (%Z.type.284) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc4_23.1: @Z.%Z.type (%Z.type.924) = symbolic_binding Self, 1 [symbolic = %Self.loc4_23.2 (constants.%Self)] // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -787,12 +787,12 @@ interface Z(T:! type) { // CHECK:STDOUT: require %T.ref impls %Z.type.loc5_25.1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Z.%T.loc4_14.2 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Z.ref: %Z.type.8a6 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] -// CHECK:STDOUT: %.loc5_21: @Z.WithSelf.T.impls.Z.type.require.%Z.type.loc5_21 (%Z.type.284) = specific_constant @Z.%Self.loc4_23.1, @Z(constants.%T) [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.ref: @Z.WithSelf.T.impls.Z.type.require.%Z.type.loc5_21 (%Z.type.284) = name_ref Self, %.loc5_21 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Z.ref: %Z.type.c39 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] +// CHECK:STDOUT: %.loc5_21: @Z.WithSelf.T.impls.Z.type.require.%Z.type.loc5_21 (%Z.type.924) = specific_constant @Z.%Self.loc4_23.1, @Z(constants.%T) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref: @Z.WithSelf.T.impls.Z.type.require.%Z.type.loc5_21 (%Z.type.924) = name_ref Self, %.loc5_21 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_25.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_25.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc5_25: type = converted %Self.ref, %Self.as_type.loc5_25.1 [symbolic = %Self.as_type.loc5_25.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %Z.type.loc5_25.1: type = facet_type <@Z, @Z(constants.%Self.as_type)> [symbolic = %Z.type.loc5_25.2 (constants.%Z.type.1d9)] +// CHECK:STDOUT: %Z.type.loc5_25.1: type = facet_type <@Z, @Z(constants.%Self.as_type)> [symbolic = %Z.type.loc5_25.2 (constants.%Z.type.aeb)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -810,12 +810,12 @@ interface Z(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Z.WithSelf.T.impls.Z.type.require(@Z.%T.loc4_14.2: type, @Z.%Self.loc4_23.1: @Z.%Z.type (%Z.type.284)) { +// CHECK:STDOUT: generic require @Z.WithSelf.T.impls.Z.type.require(@Z.%T.loc4_14.2: type, @Z.%Self.loc4_23.1: @Z.%Z.type (%Z.type.924)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Z.type.loc5_21: type = facet_type <@Z, @Z(%T)> [symbolic = %Z.type.loc5_21 (constants.%Z.type.284)] -// CHECK:STDOUT: %Self: @Z.WithSelf.T.impls.Z.type.require.%Z.type.loc5_21 (%Z.type.284) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Z.type.loc5_21: type = facet_type <@Z, @Z(%T)> [symbolic = %Z.type.loc5_21 (constants.%Z.type.924)] +// CHECK:STDOUT: %Self: @Z.WithSelf.T.impls.Z.type.require.%Z.type.loc5_21 (%Z.type.924) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_25.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_25.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %Z.type.loc5_25.2: type = facet_type <@Z, @Z(%Self.as_type.loc5_25.2)> [symbolic = %Z.type.loc5_25.2 (constants.%Z.type.1d9)] +// CHECK:STDOUT: %Z.type.loc5_25.2: type = facet_type <@Z, @Z(%Self.as_type.loc5_25.2)> [symbolic = %Z.type.loc5_25.2 (constants.%Z.type.aeb)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%T) { @@ -830,10 +830,10 @@ interface Z(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.T.impls.Z.type.require(constants.%T, constants.%Self) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Z.type.loc5_21 => constants.%Z.type.284 +// CHECK:STDOUT: %Z.type.loc5_21 => constants.%Z.type.924 // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc5_25.2 => constants.%Self.as_type -// CHECK:STDOUT: %Z.type.loc5_25.2 => constants.%Z.type.1d9 +// CHECK:STDOUT: %Z.type.loc5_25.2 => constants.%Z.type.aeb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- require_self_in_requirement.carbon @@ -843,8 +843,8 @@ interface Z(T:! type) { // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] // CHECK:STDOUT: %assoc0: %Y.assoc_type = assoc_entity element0, @Y.WithSelf.%Y1 [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.91f: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.91f [symbolic] +// CHECK:STDOUT: %Self.cb6: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.cb6 [symbolic] // CHECK:STDOUT: %.Self: %Y.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self, @Y [symbolic_self] @@ -857,7 +857,7 @@ interface Z(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.91f] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.cb6] // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -872,7 +872,7 @@ interface Z(T:! type) { // CHECK:STDOUT: %.loc10_25: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Y1.ref: %Y.assoc_type = name_ref Y1, @Y1.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] -// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.91f)] +// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.cb6)] // CHECK:STDOUT: %Self.as_type.loc10_31: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc10_31: type = converted %Self.ref, %Self.as_type.loc10_31 [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc10_19: type = where_expr [symbolic = %Y_where.type (constants.%Y_where.type)] { @@ -894,15 +894,15 @@ interface Z(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y_where.type.require(@Z.%Self: %Z.type) { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.91f)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.cb6)] // CHECK:STDOUT: %Self.as_type.loc10_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y_where.type: type = facet_type <@Y where constants.%impl.elem0 = %Self.as_type.loc10_11.2> [symbolic = %Y_where.type (constants.%Y_where.type)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.91f) {} +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.cb6) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y_where.type.require(constants.%Self.91f) { -// CHECK:STDOUT: %Self => constants.%Self.91f +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y_where.type.require(constants.%Self.cb6) { +// CHECK:STDOUT: %Self => constants.%Self.cb6 // CHECK:STDOUT: %Self.as_type.loc10_11.2 => constants.%Self.as_type // CHECK:STDOUT: %Y_where.type => constants.%Y_where.type // CHECK:STDOUT: } @@ -914,15 +914,15 @@ interface Z(T:! type) { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Z.type.8a6: type = generic_interface_type @Z [concrete] -// CHECK:STDOUT: %Z.generic: %Z.type.8a6 = struct_value () [concrete] -// CHECK:STDOUT: %Z.type.284: type = facet_type <@Z, @Z(%T)> [symbolic] -// CHECK:STDOUT: %Self.f76: %Z.type.284 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type.c1e: type = facet_access_type %Self.f76 [symbolic] +// CHECK:STDOUT: %Z.type.c39: type = generic_interface_type @Z [concrete] +// CHECK:STDOUT: %Z.generic: %Z.type.c39 = struct_value () [concrete] +// CHECK:STDOUT: %Z.type.924: type = facet_type <@Z, @Z(%T)> [symbolic] +// CHECK:STDOUT: %Self.21f: %Z.type.924 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type.a0d: type = facet_access_type %Self.21f [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { -// CHECK:STDOUT: %Z.decl: %Z.type.8a6 = interface_decl @Z [concrete = constants.%Z.generic] { +// CHECK:STDOUT: %Z.decl: %Z.type.c39 = interface_decl @Z [concrete = constants.%Z.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_17.1: type = splice_block %.loc8_17.2 [concrete = type] { @@ -937,21 +937,21 @@ interface Z(T:! type) { // CHECK:STDOUT: %T.loc8_14.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%T.loc8_14.1)> [symbolic = %Z.type (constants.%Z.type.284)] -// CHECK:STDOUT: %Self.loc8_23.2: @Z.%Z.type (%Z.type.284) = symbolic_binding Self, 1 [symbolic = %Self.loc8_23.2 (constants.%Self.f76)] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%T.loc8_14.1)> [symbolic = %Z.type (constants.%Z.type.924)] +// CHECK:STDOUT: %Self.loc8_23.2: @Z.%Z.type (%Z.type.924) = symbolic_binding Self, 1 [symbolic = %Self.loc8_23.2 (constants.%Self.21f)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc8_23.1: @Z.%Z.type (%Z.type.284) = symbolic_binding Self, 1 [symbolic = %Self.loc8_23.2 (constants.%Self.f76)] +// CHECK:STDOUT: %Self.loc8_23.1: @Z.%Z.type (%Z.type.924) = symbolic_binding Self, 1 [symbolic = %Self.loc8_23.2 (constants.%Self.21f)] // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Z.WithSelf.Self.as_type.impls.Z.type.require.decl = require_decl @Z.WithSelf.Self.as_type.impls.Z.type.require [concrete] { // CHECK:STDOUT: require %Self.as_type.loc11_11.1 impls %Z.type.loc11_20 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type.loc11_11.1: type = facet_access_type @Z.%Self.loc8_23.1 [symbolic = %Self.as_type.loc11_11.2 (constants.%Self.as_type.c1e)] -// CHECK:STDOUT: %Z.ref: %Z.type.8a6 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] +// CHECK:STDOUT: %Self.as_type.loc11_11.1: type = facet_access_type @Z.%Self.loc8_23.1 [symbolic = %Self.as_type.loc11_11.2 (constants.%Self.as_type.a0d)] +// CHECK:STDOUT: %Z.ref: %Z.type.c39 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @Z.%T.loc8_14.2 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Z.type.loc11_20: type = facet_type <@Z, @Z(constants.%T)> [symbolic = %Z.type.loc11_11 (constants.%Z.type.284)] +// CHECK:STDOUT: %Z.type.loc11_20: type = facet_type <@Z, @Z(constants.%T)> [symbolic = %Z.type.loc11_11 (constants.%Z.type.924)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -969,23 +969,23 @@ interface Z(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Z.type.require(@Z.%T.loc8_14.2: type, @Z.%Self.loc8_23.1: @Z.%Z.type (%Z.type.284)) { +// CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Z.type.require(@Z.%T.loc8_14.2: type, @Z.%Self.loc8_23.1: @Z.%Z.type (%Z.type.924)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Z.type.loc11_11: type = facet_type <@Z, @Z(%T)> [symbolic = %Z.type.loc11_11 (constants.%Z.type.284)] -// CHECK:STDOUT: %Self: @Z.WithSelf.Self.as_type.impls.Z.type.require.%Z.type.loc11_11 (%Z.type.284) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.f76)] -// CHECK:STDOUT: %Self.as_type.loc11_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc11_11.2 (constants.%Self.as_type.c1e)] +// CHECK:STDOUT: %Z.type.loc11_11: type = facet_type <@Z, @Z(%T)> [symbolic = %Z.type.loc11_11 (constants.%Z.type.924)] +// CHECK:STDOUT: %Self: @Z.WithSelf.Self.as_type.impls.Z.type.require.%Z.type.loc11_11 (%Z.type.924) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.21f)] +// CHECK:STDOUT: %Self.as_type.loc11_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc11_11.2 (constants.%Self.as_type.a0d)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%T) { // CHECK:STDOUT: %T.loc8_14.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%T, constants.%Self.f76) {} +// CHECK:STDOUT: specific @Z.WithSelf(constants.%T, constants.%Self.21f) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Z.type.require(constants.%T, constants.%Self.f76) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Z.type.require(constants.%T, constants.%Self.21f) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Z.type.loc11_11 => constants.%Z.type.284 -// CHECK:STDOUT: %Self => constants.%Self.f76 -// CHECK:STDOUT: %Self.as_type.loc11_11.2 => constants.%Self.as_type.c1e +// CHECK:STDOUT: %Z.type.loc11_11 => constants.%Z.type.924 +// CHECK:STDOUT: %Self => constants.%Self.21f +// CHECK:STDOUT: %Self.as_type.loc11_11.2 => constants.%Self.as_type.a0d // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/self.carbon b/toolchain/check/testdata/interface/self.carbon index be0f99aa692d..92d334bac363 100644 --- a/toolchain/check/testdata/interface/self.carbon +++ b/toolchain/check/testdata/interface/self.carbon @@ -23,7 +23,7 @@ interface UseSelf { // CHECK:STDOUT: %Self: %UseSelf.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic] -// CHECK:STDOUT: %.edf: Core.Form = init_form %Self.as_type [symbolic] +// CHECK:STDOUT: %.326: Core.Form = init_form %Self.as_type [symbolic] // CHECK:STDOUT: %UseSelf.WithSelf.F.type: type = fn_type @UseSelf.WithSelf.F, @UseSelf.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %UseSelf.WithSelf.F: %UseSelf.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %UseSelf.assoc_type: type = assoc_entity_type @UseSelf [concrete] @@ -51,7 +51,7 @@ interface UseSelf { // CHECK:STDOUT: %Self.ref.loc16_25: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc16_25: type = facet_access_type %Self.ref.loc16_25 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc16_25.2: type = converted %Self.ref.loc16_25, %Self.as_type.loc16_25 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc16_25.3: Core.Form = init_form %.loc16_25.2 [symbolic = %.loc16_25.1 (constants.%.edf)] +// CHECK:STDOUT: %.loc16_25.3: Core.Form = init_form %.loc16_25.2 [symbolic = %.loc16_25.1 (constants.%.326)] // CHECK:STDOUT: %self.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref.loc16_14: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self)] @@ -76,7 +76,7 @@ interface UseSelf { // CHECK:STDOUT: %Self: %UseSelf.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type)] -// CHECK:STDOUT: %.loc16_25.1: Core.Form = init_form %Self.as_type.loc16_14.1 [symbolic = %.loc16_25.1 (constants.%.edf)] +// CHECK:STDOUT: %.loc16_25.1: Core.Form = init_form %Self.as_type.loc16_14.1 [symbolic = %.loc16_25.1 (constants.%.326)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type)) -> out %return.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type); // CHECK:STDOUT: } @@ -87,6 +87,6 @@ interface UseSelf { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type -// CHECK:STDOUT: %.loc16_25.1 => constants.%.edf +// CHECK:STDOUT: %.loc16_25.1 => constants.%.326 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/syntactic_merge.carbon b/toolchain/check/testdata/interface/syntactic_merge.carbon index 288b10d3336c..60dfe2aafee8 100644 --- a/toolchain/check/testdata/interface/syntactic_merge.carbon +++ b/toolchain/check/testdata/interface/syntactic_merge.carbon @@ -207,14 +207,14 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.4e3: type = generic_interface_type @Foo [concrete] -// CHECK:STDOUT: %Foo.generic: %Foo.type.4e3 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.fd7: type = facet_type <@Foo, @Foo(%a)> [symbolic] -// CHECK:STDOUT: %Self.cca: %Foo.type.fd7 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Bar.type.d3b: type = generic_interface_type @Bar [concrete] -// CHECK:STDOUT: %Bar.generic: %Bar.type.d3b = struct_value () [concrete] -// CHECK:STDOUT: %Bar.type.c13: type = facet_type <@Bar, @Bar(%a)> [symbolic] -// CHECK:STDOUT: %Self.cf2: %Bar.type.c13 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.bc6: type = generic_interface_type @Foo [concrete] +// CHECK:STDOUT: %Foo.generic: %Foo.type.bc6 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.8ee: type = facet_type <@Foo, @Foo(%a)> [symbolic] +// CHECK:STDOUT: %Self.a95: %Foo.type.8ee = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Bar.type.3f0: type = generic_interface_type @Bar [concrete] +// CHECK:STDOUT: %Bar.generic: %Bar.type.3f0 = struct_value () [concrete] +// CHECK:STDOUT: %Bar.type.ab7: type = facet_type <@Bar, @Bar(%a)> [symbolic] +// CHECK:STDOUT: %Self.a90: %Bar.type.ab7 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -227,7 +227,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.ref [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.4e3 = interface_decl @Foo [concrete = constants.%Foo.generic] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.bc6 = interface_decl @Foo [concrete = constants.%Foo.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7: type = splice_block %C.ref.loc7 [concrete = constants.%C] { @@ -236,7 +236,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc7_16.2: %C = symbolic_binding a, 0 [symbolic = %a.loc7_16.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc8: %Foo.type.4e3 = interface_decl @Foo [concrete = constants.%Foo.generic] { +// CHECK:STDOUT: %Foo.decl.loc8: %Foo.type.bc6 = interface_decl @Foo [concrete = constants.%Foo.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8: type = splice_block %C.ref.loc8 [concrete = constants.%C] { @@ -245,7 +245,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc8: %C = symbolic_binding a, 0 [symbolic = %a.loc7_16.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Bar.decl.loc10: %Bar.type.d3b = interface_decl @Bar [concrete = constants.%Bar.generic] { +// CHECK:STDOUT: %Bar.decl.loc10: %Bar.type.3f0 = interface_decl @Bar [concrete = constants.%Bar.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10: type = splice_block %D.ref.loc10 [concrete = constants.%C] { @@ -254,7 +254,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc10_16.2: %C = symbolic_binding a, 0 [symbolic = %a.loc10_16.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Bar.decl.loc11: %Bar.type.d3b = interface_decl @Bar [concrete = constants.%Bar.generic] { +// CHECK:STDOUT: %Bar.decl.loc11: %Bar.type.3f0 = interface_decl @Bar [concrete = constants.%Bar.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11: type = splice_block %D.ref.loc11 [concrete = constants.%C] { @@ -269,11 +269,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.loc7_16.1: %C = symbolic_binding a, 0 [symbolic = %a.loc7_16.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc7_16.1)> [symbolic = %Foo.type (constants.%Foo.type.fd7)] -// CHECK:STDOUT: %Self.loc8_22.2: @Foo.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc8_22.2 (constants.%Self.cca)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc7_16.1)> [symbolic = %Foo.type (constants.%Foo.type.8ee)] +// CHECK:STDOUT: %Self.loc8_22.2: @Foo.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc8_22.2 (constants.%Self.a95)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc8_22.1: @Foo.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc8_22.2 (constants.%Self.cca)] +// CHECK:STDOUT: %Self.loc8_22.1: @Foo.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc8_22.2 (constants.%Self.a95)] // CHECK:STDOUT: %Foo.WithSelf.decl = interface_with_self_decl @Foo [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -288,11 +288,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.loc10_16.1: %C = symbolic_binding a, 0 [symbolic = %a.loc10_16.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar, @Bar(%a.loc10_16.1)> [symbolic = %Bar.type (constants.%Bar.type.c13)] -// CHECK:STDOUT: %Self.loc11_22.2: @Bar.%Bar.type (%Bar.type.c13) = symbolic_binding Self, 1 [symbolic = %Self.loc11_22.2 (constants.%Self.cf2)] +// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar, @Bar(%a.loc10_16.1)> [symbolic = %Bar.type (constants.%Bar.type.ab7)] +// CHECK:STDOUT: %Self.loc11_22.2: @Bar.%Bar.type (%Bar.type.ab7) = symbolic_binding Self, 1 [symbolic = %Self.loc11_22.2 (constants.%Self.a90)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc11_22.1: @Bar.%Bar.type (%Bar.type.c13) = symbolic_binding Self, 1 [symbolic = %Self.loc11_22.2 (constants.%Self.cf2)] +// CHECK:STDOUT: %Self.loc11_22.1: @Bar.%Bar.type (%Bar.type.ab7) = symbolic_binding Self, 1 [symbolic = %Self.loc11_22.2 (constants.%Self.a90)] // CHECK:STDOUT: %Bar.WithSelf.decl = interface_with_self_decl @Bar [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -315,13 +315,13 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.loc7_16.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo.WithSelf(constants.%a, constants.%Self.cca) {} +// CHECK:STDOUT: specific @Foo.WithSelf(constants.%a, constants.%Self.a95) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Bar(constants.%a) { // CHECK:STDOUT: %a.loc10_16.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Bar.WithSelf(constants.%a, constants.%Self.cf2) {} +// CHECK:STDOUT: specific @Bar.WithSelf(constants.%a, constants.%Self.a90) {} // CHECK:STDOUT: // CHECK:STDOUT: --- spacing.carbon // CHECK:STDOUT: @@ -333,10 +333,10 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.4e3: type = generic_interface_type @Foo [concrete] -// CHECK:STDOUT: %Foo.generic: %Foo.type.4e3 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.fd7: type = facet_type <@Foo, @Foo(%a)> [symbolic] -// CHECK:STDOUT: %Self: %Foo.type.fd7 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.bc6: type = generic_interface_type @Foo [concrete] +// CHECK:STDOUT: %Foo.generic: %Foo.type.bc6 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.8ee: type = facet_type <@Foo, @Foo(%a)> [symbolic] +// CHECK:STDOUT: %Self: %Foo.type.8ee = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -345,7 +345,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: .Foo = %Foo.decl.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.4e3 = interface_decl @Foo [concrete = constants.%Foo.generic] { +// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.bc6 = interface_decl @Foo [concrete = constants.%Foo.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6: type = splice_block %C.ref.loc6 [concrete = constants.%C] { @@ -354,7 +354,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc6_23.2: %C = symbolic_binding a, 0 [symbolic = %a.loc6_23.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.4e3 = interface_decl @Foo [concrete = constants.%Foo.generic] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.bc6 = interface_decl @Foo [concrete = constants.%Foo.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7: type = splice_block %C.ref.loc7 [concrete = constants.%C] { @@ -369,11 +369,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.loc6_23.1: %C = symbolic_binding a, 0 [symbolic = %a.loc6_23.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc6_23.1)> [symbolic = %Foo.type (constants.%Foo.type.fd7)] -// CHECK:STDOUT: %Self.loc7_24.2: @Foo.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc7_24.2 (constants.%Self)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc6_23.1)> [symbolic = %Foo.type (constants.%Foo.type.8ee)] +// CHECK:STDOUT: %Self.loc7_24.2: @Foo.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc7_24.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc7_24.1: @Foo.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc7_24.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc7_24.1: @Foo.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc7_24.2 (constants.%Self)] // CHECK:STDOUT: %Foo.WithSelf.decl = interface_with_self_decl @Foo [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -408,12 +408,12 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.4e31ae.1: type = generic_interface_type @Foo.loc6 [concrete] -// CHECK:STDOUT: %Foo.generic.8f8e05.1: %Foo.type.4e31ae.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.4e31ae.2: type = generic_interface_type @Foo.loc14 [concrete] -// CHECK:STDOUT: %Foo.generic.8f8e05.2: %Foo.type.4e31ae.2 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.fd7: type = facet_type <@Foo.loc14, @Foo.loc14(%a)> [symbolic] -// CHECK:STDOUT: %Self: %Foo.type.fd7 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.bc6a25.1: type = generic_interface_type @Foo.loc6 [concrete] +// CHECK:STDOUT: %Foo.generic.d3ea5a.1: %Foo.type.bc6a25.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.bc6a25.2: type = generic_interface_type @Foo.loc14 [concrete] +// CHECK:STDOUT: %Foo.generic.d3ea5a.2: %Foo.type.bc6a25.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.8ee: type = facet_type <@Foo.loc14, @Foo.loc14(%a)> [symbolic] +// CHECK:STDOUT: %Self: %Foo.type.8ee = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -422,7 +422,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: .Foo = %Foo.decl.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.4e31ae.1 = interface_decl @Foo.loc6 [concrete = constants.%Foo.generic.8f8e05.1] { +// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.bc6a25.1 = interface_decl @Foo.loc6 [concrete = constants.%Foo.generic.d3ea5a.1] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6: type = splice_block %C.ref [concrete = constants.%C] { @@ -431,7 +431,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc6_16.2: %C = symbolic_binding a, 0 [symbolic = %a.loc6_16.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.4e31ae.2 = interface_decl @Foo.loc14 [concrete = constants.%Foo.generic.8f8e05.2] { +// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.bc6a25.2 = interface_decl @Foo.loc14 [concrete = constants.%Foo.generic.d3ea5a.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14: type = splice_block %C.ref [concrete = constants.%C] { @@ -452,11 +452,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.loc14_16.1: %C = symbolic_binding a, 0 [symbolic = %a.loc14_16.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc14, @Foo.loc14(%a.loc14_16.1)> [symbolic = %Foo.type (constants.%Foo.type.fd7)] -// CHECK:STDOUT: %Self.loc14_24.2: @Foo.loc14.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc14, @Foo.loc14(%a.loc14_16.1)> [symbolic = %Foo.type (constants.%Foo.type.8ee)] +// CHECK:STDOUT: %Self.loc14_24.2: @Foo.loc14.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc14_24.1: @Foo.loc14.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc14_24.1: @Foo.loc14.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self)] // CHECK:STDOUT: %Foo.WithSelf.decl = interface_with_self_decl @Foo.loc14 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -495,12 +495,12 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.4e31ae.1: type = generic_interface_type @Foo.loc6 [concrete] -// CHECK:STDOUT: %Foo.generic.8f8e05.1: %Foo.type.4e31ae.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.4e31ae.2: type = generic_interface_type @Foo.loc14 [concrete] -// CHECK:STDOUT: %Foo.generic.8f8e05.2: %Foo.type.4e31ae.2 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.fd7: type = facet_type <@Foo.loc14, @Foo.loc14(%a)> [symbolic] -// CHECK:STDOUT: %Self: %Foo.type.fd7 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.bc6a25.1: type = generic_interface_type @Foo.loc6 [concrete] +// CHECK:STDOUT: %Foo.generic.d3ea5a.1: %Foo.type.bc6a25.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.bc6a25.2: type = generic_interface_type @Foo.loc14 [concrete] +// CHECK:STDOUT: %Foo.generic.d3ea5a.2: %Foo.type.bc6a25.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.8ee: type = facet_type <@Foo.loc14, @Foo.loc14(%a)> [symbolic] +// CHECK:STDOUT: %Self: %Foo.type.8ee = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -509,7 +509,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: .Foo = %Foo.decl.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.4e31ae.1 = interface_decl @Foo.loc6 [concrete = constants.%Foo.generic.8f8e05.1] { +// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.bc6a25.1 = interface_decl @Foo.loc6 [concrete = constants.%Foo.generic.d3ea5a.1] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6: type = splice_block %C.ref [concrete = constants.%C] { @@ -518,7 +518,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc6_16.2: %C = symbolic_binding a, 0 [symbolic = %a.loc6_16.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.4e31ae.2 = interface_decl @Foo.loc14 [concrete = constants.%Foo.generic.8f8e05.2] { +// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.bc6a25.2 = interface_decl @Foo.loc14 [concrete = constants.%Foo.generic.d3ea5a.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14: type = splice_block %C.ref [concrete = constants.%C] { @@ -539,11 +539,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.loc14_16.1: %C = symbolic_binding a, 0 [symbolic = %a.loc14_16.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc14, @Foo.loc14(%a.loc14_16.1)> [symbolic = %Foo.type (constants.%Foo.type.fd7)] -// CHECK:STDOUT: %Self.loc14_24.2: @Foo.loc14.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc14, @Foo.loc14(%a.loc14_16.1)> [symbolic = %Foo.type (constants.%Foo.type.8ee)] +// CHECK:STDOUT: %Self.loc14_24.2: @Foo.loc14.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc14_24.1: @Foo.loc14.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc14_24.1: @Foo.loc14.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self)] // CHECK:STDOUT: %Foo.WithSelf.decl = interface_with_self_decl @Foo.loc14 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -656,29 +656,29 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.4e31ae.1: type = generic_interface_type @Foo.1 [concrete] -// CHECK:STDOUT: %Foo.generic.8f8e05.1: %Foo.type.4e31ae.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.4e31ae.2: type = generic_interface_type @Foo.loc12 [concrete] -// CHECK:STDOUT: %Foo.generic.8f8e05.2: %Foo.type.4e31ae.2 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.fd7: type = facet_type <@Foo.loc12, @Foo.loc12(%a)> [symbolic] -// CHECK:STDOUT: %Self.cca: %Foo.type.fd7 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Bar.type.d3b1a7.1: type = generic_interface_type @Bar.1 [concrete] -// CHECK:STDOUT: %Bar.generic.a8b2bd.1: %Bar.type.d3b1a7.1 = struct_value () [concrete] -// CHECK:STDOUT: %Bar.type.d3b1a7.2: type = generic_interface_type @Bar.loc21 [concrete] -// CHECK:STDOUT: %Bar.generic.a8b2bd.2: %Bar.type.d3b1a7.2 = struct_value () [concrete] -// CHECK:STDOUT: %Bar.type.c13: type = facet_type <@Bar.loc21, @Bar.loc21(%a)> [symbolic] -// CHECK:STDOUT: %Self.cf2: %Bar.type.c13 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.bc6a25.1: type = generic_interface_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.generic.d3ea5a.1: %Foo.type.bc6a25.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.bc6a25.2: type = generic_interface_type @Foo.loc12 [concrete] +// CHECK:STDOUT: %Foo.generic.d3ea5a.2: %Foo.type.bc6a25.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.8ee: type = facet_type <@Foo.loc12, @Foo.loc12(%a)> [symbolic] +// CHECK:STDOUT: %Self.a95: %Foo.type.8ee = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Bar.type.3f06c8.1: type = generic_interface_type @Bar.1 [concrete] +// CHECK:STDOUT: %Bar.generic.b3011f.1: %Bar.type.3f06c8.1 = struct_value () [concrete] +// CHECK:STDOUT: %Bar.type.3f06c8.2: type = generic_interface_type @Bar.loc21 [concrete] +// CHECK:STDOUT: %Bar.generic.b3011f.2: %Bar.type.3f06c8.2 = struct_value () [concrete] +// CHECK:STDOUT: %Bar.type.ab7: type = facet_type <@Bar.loc21, @Bar.loc21(%a)> [symbolic] +// CHECK:STDOUT: %Self.a90: %Bar.type.ab7 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//two_file, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.D: type = import_ref Main//two_file, D, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.Foo: %Foo.type.4e31ae.1 = import_ref Main//two_file, Foo, loaded [concrete = constants.%Foo.generic.8f8e05.1] -// CHECK:STDOUT: %Main.Bar: %Bar.type.d3b1a7.1 = import_ref Main//two_file, Bar, loaded [concrete = constants.%Bar.generic.a8b2bd.1] +// CHECK:STDOUT: %Main.Foo: %Foo.type.bc6a25.1 = import_ref Main//two_file, Foo, loaded [concrete = constants.%Foo.generic.d3ea5a.1] +// CHECK:STDOUT: %Main.Bar: %Bar.type.3f06c8.1 = import_ref Main//two_file, Bar, loaded [concrete = constants.%Bar.generic.b3011f.1] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//two_file, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//two_file, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.068985.1: %C = import_ref Main//two_file, loc7_16, loaded [symbolic = @Foo.1.%a (constants.%a)] -// CHECK:STDOUT: %Main.import_ref.068985.2: %C = import_ref Main//two_file, loc8_16, loaded [symbolic = @Bar.1.%a (constants.%a)] +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//two_file, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.99696d.1: %C = import_ref Main//two_file, loc7_16, loaded [symbolic = @Foo.1.%a (constants.%a)] +// CHECK:STDOUT: %Main.import_ref.99696d.2: %C = import_ref Main//two_file, loc8_16, loaded [symbolic = @Bar.1.%a (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -690,7 +690,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_24.1 = import // CHECK:STDOUT: %default.import.loc2_24.2 = import -// CHECK:STDOUT: %Foo.decl: %Foo.type.4e31ae.2 = interface_decl @Foo.loc12 [concrete = constants.%Foo.generic.8f8e05.2] { +// CHECK:STDOUT: %Foo.decl: %Foo.type.bc6a25.2 = interface_decl @Foo.loc12 [concrete = constants.%Foo.generic.d3ea5a.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc12: type = splice_block %C.ref [concrete = constants.%C] { @@ -699,7 +699,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc12_16.2: %C = symbolic_binding a, 0 [symbolic = %a.loc12_16.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Bar.decl: %Bar.type.d3b1a7.2 = interface_decl @Bar.loc21 [concrete = constants.%Bar.generic.a8b2bd.2] { +// CHECK:STDOUT: %Bar.decl: %Bar.type.3f06c8.2 = interface_decl @Bar.loc21 [concrete = constants.%Bar.generic.b3011f.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc21: type = splice_block %D.ref [concrete = constants.%C] { @@ -710,7 +710,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo.1(imports.%Main.import_ref.068985.1: %C) [from "two_file.carbon"] { +// CHECK:STDOUT: generic interface @Foo.1(imports.%Main.import_ref.99696d.1: %C) [from "two_file.carbon"] { // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic = %a (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; @@ -720,11 +720,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.loc12_16.1: %C = symbolic_binding a, 0 [symbolic = %a.loc12_16.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc12, @Foo.loc12(%a.loc12_16.1)> [symbolic = %Foo.type (constants.%Foo.type.fd7)] -// CHECK:STDOUT: %Self.loc12_22.2: @Foo.loc12.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc12_22.2 (constants.%Self.cca)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc12, @Foo.loc12(%a.loc12_16.1)> [symbolic = %Foo.type (constants.%Foo.type.8ee)] +// CHECK:STDOUT: %Self.loc12_22.2: @Foo.loc12.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc12_22.2 (constants.%Self.a95)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc12_22.1: @Foo.loc12.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc12_22.2 (constants.%Self.cca)] +// CHECK:STDOUT: %Self.loc12_22.1: @Foo.loc12.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc12_22.2 (constants.%Self.a95)] // CHECK:STDOUT: %Foo.WithSelf.decl = interface_with_self_decl @Foo.loc12 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -735,7 +735,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Bar.1(imports.%Main.import_ref.068985.2: %C) [from "two_file.carbon"] { +// CHECK:STDOUT: generic interface @Bar.1(imports.%Main.import_ref.99696d.2: %C) [from "two_file.carbon"] { // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic = %a (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; @@ -745,11 +745,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.loc21_16.1: %C = symbolic_binding a, 0 [symbolic = %a.loc21_16.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar.loc21, @Bar.loc21(%a.loc21_16.1)> [symbolic = %Bar.type (constants.%Bar.type.c13)] -// CHECK:STDOUT: %Self.loc21_22.2: @Bar.loc21.%Bar.type (%Bar.type.c13) = symbolic_binding Self, 1 [symbolic = %Self.loc21_22.2 (constants.%Self.cf2)] +// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar.loc21, @Bar.loc21(%a.loc21_16.1)> [symbolic = %Bar.type (constants.%Bar.type.ab7)] +// CHECK:STDOUT: %Self.loc21_22.2: @Bar.loc21.%Bar.type (%Bar.type.ab7) = symbolic_binding Self, 1 [symbolic = %Self.loc21_22.2 (constants.%Self.a90)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc21_22.1: @Bar.loc21.%Bar.type (%Bar.type.c13) = symbolic_binding Self, 1 [symbolic = %Self.loc21_22.2 (constants.%Self.cf2)] +// CHECK:STDOUT: %Self.loc21_22.1: @Bar.loc21.%Bar.type (%Bar.type.ab7) = symbolic_binding Self, 1 [symbolic = %Self.loc21_22.2 (constants.%Self.a90)] // CHECK:STDOUT: %Bar.WithSelf.decl = interface_with_self_decl @Bar.loc21 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -764,7 +764,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.1(constants.%a) { @@ -775,7 +775,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.loc12_16.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo.WithSelf(constants.%a, constants.%Self.cca) {} +// CHECK:STDOUT: specific @Foo.WithSelf(constants.%a, constants.%Self.a95) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Bar.1(constants.%a) { // CHECK:STDOUT: %a => constants.%a @@ -785,7 +785,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.loc21_16.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Bar.WithSelf(constants.%a, constants.%Self.cf2) {} +// CHECK:STDOUT: specific @Bar.WithSelf(constants.%a, constants.%Self.a90) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_name_mismatch.carbon // CHECK:STDOUT: @@ -797,13 +797,13 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.4e31ae.1: type = generic_interface_type @Foo.loc7 [concrete] -// CHECK:STDOUT: %Foo.generic.8f8e05.1: %Foo.type.4e31ae.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.bc6a25.1: type = generic_interface_type @Foo.loc7 [concrete] +// CHECK:STDOUT: %Foo.generic.d3ea5a.1: %Foo.type.bc6a25.1 = struct_value () [concrete] // CHECK:STDOUT: %b: %C = symbolic_binding b, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.4e31ae.2: type = generic_interface_type @Foo.loc15 [concrete] -// CHECK:STDOUT: %Foo.generic.8f8e05.2: %Foo.type.4e31ae.2 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.fd7: type = facet_type <@Foo.loc15, @Foo.loc15(%b)> [symbolic] -// CHECK:STDOUT: %Self: %Foo.type.fd7 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.bc6a25.2: type = generic_interface_type @Foo.loc15 [concrete] +// CHECK:STDOUT: %Foo.generic.d3ea5a.2: %Foo.type.bc6a25.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.8ee: type = facet_type <@Foo.loc15, @Foo.loc15(%b)> [symbolic] +// CHECK:STDOUT: %Self: %Foo.type.8ee = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -815,7 +815,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.ref [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.4e31ae.1 = interface_decl @Foo.loc7 [concrete = constants.%Foo.generic.8f8e05.1] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.bc6a25.1 = interface_decl @Foo.loc7 [concrete = constants.%Foo.generic.d3ea5a.1] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7: type = splice_block %C.ref [concrete = constants.%C] { @@ -824,7 +824,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc7_16.2: %C = symbolic_binding a, 0 [symbolic = %a.loc7_16.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.4e31ae.2 = interface_decl @Foo.loc15 [concrete = constants.%Foo.generic.8f8e05.2] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.bc6a25.2 = interface_decl @Foo.loc15 [concrete = constants.%Foo.generic.d3ea5a.2] { // CHECK:STDOUT: %b.patt: %pattern_type = symbolic_binding_pattern b, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15: type = splice_block %D.ref [concrete = constants.%C] { @@ -845,11 +845,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %b.loc15_16.1: %C = symbolic_binding b, 0 [symbolic = %b.loc15_16.1 (constants.%b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%b.loc15_16.1)> [symbolic = %Foo.type (constants.%Foo.type.fd7)] -// CHECK:STDOUT: %Self.loc15_22.2: @Foo.loc15.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc15_22.2 (constants.%Self)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%b.loc15_16.1)> [symbolic = %Foo.type (constants.%Foo.type.8ee)] +// CHECK:STDOUT: %Self.loc15_22.2: @Foo.loc15.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc15_22.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc15_22.1: @Foo.loc15.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc15_22.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc15_22.1: @Foo.loc15.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc15_22.2 (constants.%Self)] // CHECK:STDOUT: %Foo.WithSelf.decl = interface_with_self_decl @Foo.loc15 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -888,12 +888,12 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.4e31ae.1: type = generic_interface_type @Foo.loc7 [concrete] -// CHECK:STDOUT: %Foo.generic.8f8e05.1: %Foo.type.4e31ae.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.4e31ae.2: type = generic_interface_type @Foo.loc15 [concrete] -// CHECK:STDOUT: %Foo.generic.8f8e05.2: %Foo.type.4e31ae.2 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.fd7: type = facet_type <@Foo.loc15, @Foo.loc15(%a)> [symbolic] -// CHECK:STDOUT: %Self: %Foo.type.fd7 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.bc6a25.1: type = generic_interface_type @Foo.loc7 [concrete] +// CHECK:STDOUT: %Foo.generic.d3ea5a.1: %Foo.type.bc6a25.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.bc6a25.2: type = generic_interface_type @Foo.loc15 [concrete] +// CHECK:STDOUT: %Foo.generic.d3ea5a.2: %Foo.type.bc6a25.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.8ee: type = facet_type <@Foo.loc15, @Foo.loc15(%a)> [symbolic] +// CHECK:STDOUT: %Self: %Foo.type.8ee = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -905,7 +905,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.ref [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.4e31ae.1 = interface_decl @Foo.loc7 [concrete = constants.%Foo.generic.8f8e05.1] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.bc6a25.1 = interface_decl @Foo.loc7 [concrete = constants.%Foo.generic.d3ea5a.1] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7: type = splice_block %C.ref [concrete = constants.%C] { @@ -914,7 +914,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc7_16.2: %C = symbolic_binding a, 0 [symbolic = %a.loc7_16.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.4e31ae.2 = interface_decl @Foo.loc15 [concrete = constants.%Foo.generic.8f8e05.2] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.bc6a25.2 = interface_decl @Foo.loc15 [concrete = constants.%Foo.generic.d3ea5a.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15: type = splice_block %D.ref [concrete = constants.%C] { @@ -935,11 +935,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.loc15_16.1: %C = symbolic_binding a, 0 [symbolic = %a.loc15_16.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%a.loc15_16.1)> [symbolic = %Foo.type (constants.%Foo.type.fd7)] -// CHECK:STDOUT: %Self.loc15_22.2: @Foo.loc15.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc15_22.2 (constants.%Self)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%a.loc15_16.1)> [symbolic = %Foo.type (constants.%Foo.type.8ee)] +// CHECK:STDOUT: %Self.loc15_22.2: @Foo.loc15.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc15_22.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc15_22.1: @Foo.loc15.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc15_22.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc15_22.1: @Foo.loc15.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc15_22.2 (constants.%Self)] // CHECK:STDOUT: %Foo.WithSelf.decl = interface_with_self_decl @Foo.loc15 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -978,12 +978,12 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.4e31ae.1: type = generic_interface_type @Foo.loc7 [concrete] -// CHECK:STDOUT: %Foo.generic.8f8e05.1: %Foo.type.4e31ae.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.4e31ae.2: type = generic_interface_type @Foo.loc15 [concrete] -// CHECK:STDOUT: %Foo.generic.8f8e05.2: %Foo.type.4e31ae.2 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.fd7: type = facet_type <@Foo.loc15, @Foo.loc15(%a)> [symbolic] -// CHECK:STDOUT: %Self: %Foo.type.fd7 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.bc6a25.1: type = generic_interface_type @Foo.loc7 [concrete] +// CHECK:STDOUT: %Foo.generic.d3ea5a.1: %Foo.type.bc6a25.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.bc6a25.2: type = generic_interface_type @Foo.loc15 [concrete] +// CHECK:STDOUT: %Foo.generic.d3ea5a.2: %Foo.type.bc6a25.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.8ee: type = facet_type <@Foo.loc15, @Foo.loc15(%a)> [symbolic] +// CHECK:STDOUT: %Self: %Foo.type.8ee = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -995,7 +995,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.ref [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.4e31ae.1 = interface_decl @Foo.loc7 [concrete = constants.%Foo.generic.8f8e05.1] { +// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.bc6a25.1 = interface_decl @Foo.loc7 [concrete = constants.%Foo.generic.d3ea5a.1] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7: type = splice_block %C.ref [concrete = constants.%C] { @@ -1004,7 +1004,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc7_16.2: %C = symbolic_binding a, 0 [symbolic = %a.loc7_16.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.4e31ae.2 = interface_decl @Foo.loc15 [concrete = constants.%Foo.generic.8f8e05.2] { +// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.bc6a25.2 = interface_decl @Foo.loc15 [concrete = constants.%Foo.generic.d3ea5a.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15: type = splice_block %D.ref [concrete = constants.%C] { @@ -1025,11 +1025,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.loc15_16.1: %C = symbolic_binding a, 0 [symbolic = %a.loc15_16.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%a.loc15_16.1)> [symbolic = %Foo.type (constants.%Foo.type.fd7)] -// CHECK:STDOUT: %Self.loc15_24.2: @Foo.loc15.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc15_24.2 (constants.%Self)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%a.loc15_16.1)> [symbolic = %Foo.type (constants.%Foo.type.8ee)] +// CHECK:STDOUT: %Self.loc15_24.2: @Foo.loc15.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc15_24.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc15_24.1: @Foo.loc15.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc15_24.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc15_24.1: @Foo.loc15.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc15_24.2 (constants.%Self)] // CHECK:STDOUT: %Foo.WithSelf.decl = interface_with_self_decl @Foo.loc15 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1117,20 +1117,20 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.4e31ae.1: type = generic_interface_type @Foo.1 [concrete] -// CHECK:STDOUT: %Foo.generic.8f8e05.1: %Foo.type.4e31ae.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.4e31ae.2: type = generic_interface_type @Foo.loc17 [concrete] -// CHECK:STDOUT: %Foo.generic.8f8e05.2: %Foo.type.4e31ae.2 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.fd7: type = facet_type <@Foo.loc17, @Foo.loc17(%a)> [symbolic] -// CHECK:STDOUT: %Self: %Foo.type.fd7 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.bc6a25.1: type = generic_interface_type @Foo.1 [concrete] +// CHECK:STDOUT: %Foo.generic.d3ea5a.1: %Foo.type.bc6a25.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.bc6a25.2: type = generic_interface_type @Foo.loc17 [concrete] +// CHECK:STDOUT: %Foo.generic.d3ea5a.2: %Foo.type.bc6a25.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.8ee: type = facet_type <@Foo.loc17, @Foo.loc17(%a)> [symbolic] +// CHECK:STDOUT: %Self: %Foo.type.8ee = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//alias_two_file, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.Foo: %Foo.type.4e31ae.1 = import_ref Main//alias_two_file, Foo, loaded [concrete = constants.%Foo.generic.8f8e05.1] +// CHECK:STDOUT: %Main.Foo: %Foo.type.bc6a25.1 = import_ref Main//alias_two_file, Foo, loaded [concrete = constants.%Foo.generic.d3ea5a.1] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//alias_two_file, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//alias_two_file, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.068: %C = import_ref Main//alias_two_file, loc6_16, loaded [symbolic = @Foo.1.%a (constants.%a)] +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//alias_two_file, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.996: %C = import_ref Main//alias_two_file, loc6_16, loaded [symbolic = @Foo.1.%a (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1143,7 +1143,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %default.import.loc2_30.2 = import // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %D: type = alias_binding D, %C.ref [concrete = constants.%C] -// CHECK:STDOUT: %Foo.decl: %Foo.type.4e31ae.2 = interface_decl @Foo.loc17 [concrete = constants.%Foo.generic.8f8e05.2] { +// CHECK:STDOUT: %Foo.decl: %Foo.type.bc6a25.2 = interface_decl @Foo.loc17 [concrete = constants.%Foo.generic.d3ea5a.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc17: type = splice_block %D.ref [concrete = constants.%C] { @@ -1154,7 +1154,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo.1(imports.%Main.import_ref.068: %C) [from "alias_two_file.carbon"] { +// CHECK:STDOUT: generic interface @Foo.1(imports.%Main.import_ref.996: %C) [from "alias_two_file.carbon"] { // CHECK:STDOUT: %a: %C = symbolic_binding a, 0 [symbolic = %a (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; @@ -1164,11 +1164,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.loc17_16.1: %C = symbolic_binding a, 0 [symbolic = %a.loc17_16.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc17, @Foo.loc17(%a.loc17_16.1)> [symbolic = %Foo.type (constants.%Foo.type.fd7)] -// CHECK:STDOUT: %Self.loc17_22.2: @Foo.loc17.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc17_22.2 (constants.%Self)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc17, @Foo.loc17(%a.loc17_16.1)> [symbolic = %Foo.type (constants.%Foo.type.8ee)] +// CHECK:STDOUT: %Self.loc17_22.2: @Foo.loc17.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc17_22.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc17_22.1: @Foo.loc17.%Foo.type (%Foo.type.fd7) = symbolic_binding Self, 1 [symbolic = %Self.loc17_22.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc17_22.1: @Foo.loc17.%Foo.type (%Foo.type.8ee) = symbolic_binding Self, 1 [symbolic = %Self.loc17_22.2 (constants.%Self)] // CHECK:STDOUT: %Foo.WithSelf.decl = interface_with_self_decl @Foo.loc17 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1183,7 +1183,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.1(constants.%a) { @@ -1207,12 +1207,12 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %const: type = const_type %C [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %const [concrete] // CHECK:STDOUT: %a: %const = symbolic_binding a, 0 [symbolic] -// CHECK:STDOUT: %Foo.type.4e31ae.1: type = generic_interface_type @Foo.loc6 [concrete] -// CHECK:STDOUT: %Foo.generic.8f8e05.1: %Foo.type.4e31ae.1 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.4e31ae.2: type = generic_interface_type @Foo.loc18 [concrete] -// CHECK:STDOUT: %Foo.generic.8f8e05.2: %Foo.type.4e31ae.2 = struct_value () [concrete] -// CHECK:STDOUT: %Foo.type.a3d: type = facet_type <@Foo.loc18, @Foo.loc18(%a)> [symbolic] -// CHECK:STDOUT: %Self: %Foo.type.a3d = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Foo.type.bc6a25.1: type = generic_interface_type @Foo.loc6 [concrete] +// CHECK:STDOUT: %Foo.generic.d3ea5a.1: %Foo.type.bc6a25.1 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.bc6a25.2: type = generic_interface_type @Foo.loc18 [concrete] +// CHECK:STDOUT: %Foo.generic.d3ea5a.2: %Foo.type.bc6a25.2 = struct_value () [concrete] +// CHECK:STDOUT: %Foo.type.b25: type = facet_type <@Foo.loc18, @Foo.loc18(%a)> [symbolic] +// CHECK:STDOUT: %Self: %Foo.type.b25 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1221,7 +1221,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: .Foo = %Foo.decl.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.4e31ae.1 = interface_decl @Foo.loc6 [concrete = constants.%Foo.generic.8f8e05.1] { +// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.bc6a25.1 = interface_decl @Foo.loc6 [concrete = constants.%Foo.generic.d3ea5a.1] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6: type = splice_block %const [concrete = constants.%const] { @@ -1231,7 +1231,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: %a.loc6_16.2: %const = symbolic_binding a, 0 [symbolic = %a.loc6_16.1 (constants.%a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Foo.decl.loc18: %Foo.type.4e31ae.2 = interface_decl @Foo.loc18 [concrete = constants.%Foo.generic.8f8e05.2] { +// CHECK:STDOUT: %Foo.decl.loc18: %Foo.type.bc6a25.2 = interface_decl @Foo.loc18 [concrete = constants.%Foo.generic.d3ea5a.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc18: type = splice_block %const.loc18_19 [concrete = constants.%const] { @@ -1254,11 +1254,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.loc18_16.1: %const = symbolic_binding a, 0 [symbolic = %a.loc18_16.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc18, @Foo.loc18(%a.loc18_16.1)> [symbolic = %Foo.type (constants.%Foo.type.a3d)] -// CHECK:STDOUT: %Self.loc18_36.2: @Foo.loc18.%Foo.type (%Foo.type.a3d) = symbolic_binding Self, 1 [symbolic = %Self.loc18_36.2 (constants.%Self)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc18, @Foo.loc18(%a.loc18_16.1)> [symbolic = %Foo.type (constants.%Foo.type.b25)] +// CHECK:STDOUT: %Self.loc18_36.2: @Foo.loc18.%Foo.type (%Foo.type.b25) = symbolic_binding Self, 1 [symbolic = %Self.loc18_36.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc18_36.1: @Foo.loc18.%Foo.type (%Foo.type.a3d) = symbolic_binding Self, 1 [symbolic = %Self.loc18_36.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc18_36.1: @Foo.loc18.%Foo.type (%Foo.type.b25) = symbolic_binding Self, 1 [symbolic = %Self.loc18_36.2 (constants.%Self)] // CHECK:STDOUT: %Foo.WithSelf.decl = interface_with_self_decl @Foo.loc18 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/interface/todo_define_not_default.carbon b/toolchain/check/testdata/interface/todo_define_not_default.carbon index 6ac194a9bf85..36187b535e1e 100644 --- a/toolchain/check/testdata/interface/todo_define_not_default.carbon +++ b/toolchain/check/testdata/interface/todo_define_not_default.carbon @@ -27,42 +27,42 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.179: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.179) [symbolic] +// CHECK:STDOUT: %Self.37e: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.37e) [symbolic] // CHECK:STDOUT: %I.WithSelf.F: %I.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.8fc: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] +// CHECK:STDOUT: %assoc0.6c9: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %I.WithSelf.G.type: type = fn_type @I.WithSelf.G, @I.WithSelf(%Self.179) [symbolic] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %I.WithSelf.G.type: type = fn_type @I.WithSelf.G, @I.WithSelf(%Self.37e) [symbolic] // CHECK:STDOUT: %I.WithSelf.G: %I.WithSelf.G.type = struct_value () [symbolic] // CHECK:STDOUT: %assoc1: %I.assoc_type = assoc_entity element1, @I.WithSelf.%I.WithSelf.G.decl [concrete] // CHECK:STDOUT: %assoc2: %I.assoc_type = assoc_entity element2, @I.WithSelf.%T [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] // CHECK:STDOUT: %assoc3: %I.assoc_type = assoc_entity element3, @I.WithSelf.%N [concrete] // CHECK:STDOUT: %int_42.20e: Core.IntLiteral = int_value 42 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_42.daa: %i32 = int_value 42 [concrete] +// CHECK:STDOUT: %int_42.ac4: %i32 = int_value 42 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -73,9 +73,9 @@ interface I { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -88,22 +88,22 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { -// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.179] +// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = constants.%Self.37e] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] {} {} -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0.8fc] +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0.6c9] // CHECK:STDOUT: %I.WithSelf.G.decl: @I.WithSelf.%I.WithSelf.G.type (%I.WithSelf.G.type) = fn_decl @I.WithSelf.G [symbolic = @I.WithSelf.%I.WithSelf.G (constants.%I.WithSelf.G)] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc18_27 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc18_27 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc18_27: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc18: Core.Form = init_form %i32.loc18_27 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc18: Core.Form = init_form %i32.loc18_27 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc18_11: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: %i32 = value_binding a, %a.param @@ -119,18 +119,18 @@ interface I { // CHECK:STDOUT: %i32.loc22_19: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc22_24: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc22_27: %tuple.type.24b = tuple_literal (%i32.loc22_19, %i32.loc22_24) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc22_28: type = converted %.loc22_27, constants.%tuple.type.e5a [concrete = constants.%tuple.type.e5a] +// CHECK:STDOUT: %.loc22_28: type = converted %.loc22_27, constants.%tuple.type.e55 [concrete = constants.%tuple.type.e55] // CHECK:STDOUT: } // CHECK:STDOUT: %N: %i32 = assoc_const_decl @N [concrete] { // CHECK:STDOUT: %assoc3: %I.assoc_type = assoc_entity element3, @I.WithSelf.%N [concrete = constants.%assoc3] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc23_19.1: = bound_method %int_42, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc23_19.2: = bound_method %int_42, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc23_19.2(%int_42) [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %.loc23_19.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %.loc23_19.2: %i32 = converted %int_42, %.loc23_19.1 [concrete = constants.%int_42.daa] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc23_19.2(%int_42) [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %.loc23_19.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %.loc23_19.2: %i32 = converted %int_42, %.loc23_19.1 [concrete = constants.%int_42.ac4] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -159,16 +159,16 @@ interface I { // CHECK:STDOUT: fn(%a.param: %i32, %b.param: %i32) -> out %return.param: %i32 = "int.sadd"; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.179) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.37e) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.179 +// CHECK:STDOUT: %Self => constants.%Self.37e // CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type // CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F // CHECK:STDOUT: %I.WithSelf.G.type => constants.%I.WithSelf.G.type // CHECK:STDOUT: %I.WithSelf.G => constants.%I.WithSelf.G // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.179) {} +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.37e) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.G(constants.%Self.179) {} +// CHECK:STDOUT: specific @I.WithSelf.G(constants.%Self.37e) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/basics/import/import.carbon b/toolchain/check/testdata/interop/cpp/basics/import/import.carbon index d40824153a2d..c8a67dafd919 100644 --- a/toolchain/check/testdata/interop/cpp/basics/import/import.carbon +++ b/toolchain/check/testdata/interop/cpp/basics/import/import.carbon @@ -148,28 +148,28 @@ fn F() { // CHECK:STDOUT: %int_8.b85: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] -// CHECK:STDOUT: %As.type.fff: type = facet_type <@As, @As(%i16)> [concrete] +// CHECK:STDOUT: %As.type.6f1: type = facet_type <@As, @As(%i16)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.16a: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.ced: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.0b6: %Core.IntLiteral.as.As.impl.Convert.type.ced = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fff = facet_value Core.IntLiteral, (%As.impl_witness.16a) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.28f: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] -// CHECK:STDOUT: %.696: type = fn_type_with_self_type %As.WithSelf.Convert.type.28f, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.0b6 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.0b6, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.820: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.4b7: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.70c: %Core.IntLiteral.as.As.impl.Convert.type.4b7 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.6f1 = facet_value Core.IntLiteral, (%As.impl_witness.820) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.d73: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] +// CHECK:STDOUT: %.6b5: type = fn_type_with_self_type %As.WithSelf.Convert.type.d73, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.70c [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.70c, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_8.43b: %i16 = int_value 8 [concrete] +// CHECK:STDOUT: %int_8.bee: %i16 = int_value 8 [concrete] // CHECK:STDOUT: %int_9: Core.IntLiteral = int_value 9 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.FooShort: = import_ref Main//function_api, FooShort, loaded [concrete = ] // CHECK:STDOUT: %Main.FooInt: = import_ref Main//function_api, FooInt, loaded [concrete = ] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -177,13 +177,13 @@ fn F() { // CHECK:STDOUT: %FooShort.ref: = name_ref FooShort, imports.%Main.FooShort [concrete = ] // CHECK:STDOUT: %int_8: Core.IntLiteral = int_value 8 [concrete = constants.%int_8.b85] // CHECK:STDOUT: %i16: type = type_literal constants.%i16 [concrete = constants.%i16] -// CHECK:STDOUT: %impl.elem0: %.696 = impl_witness_access constants.%As.impl_witness.16a, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.0b6] +// CHECK:STDOUT: %impl.elem0: %.6b5 = impl_witness_access constants.%As.impl_witness.820, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.70c] // CHECK:STDOUT: %bound_method.loc16_14.1: = bound_method %int_8, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.As.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_14.2: = bound_method %int_8, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc16_14.2(%int_8) [concrete = constants.%int_8.43b] -// CHECK:STDOUT: %.loc16_14.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_8.43b] -// CHECK:STDOUT: %.loc16_14.2: %i16 = converted %int_8, %.loc16_14.1 [concrete = constants.%int_8.43b] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc16_14.2(%int_8) [concrete = constants.%int_8.bee] +// CHECK:STDOUT: %.loc16_14.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_8.bee] +// CHECK:STDOUT: %.loc16_14.2: %i16 = converted %int_8, %.loc16_14.1 [concrete = constants.%int_8.bee] // CHECK:STDOUT: %FooInt.ref: = name_ref FooInt, imports.%Main.FooInt [concrete = ] // CHECK:STDOUT: %int_9: Core.IntLiteral = int_value 9 [concrete = constants.%int_9] // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/basics/import/indirect.carbon b/toolchain/check/testdata/interop/cpp/basics/import/indirect.carbon index e10269e2cd86..6d4c3e64ac51 100644 --- a/toolchain/check/testdata/interop/cpp/basics/import/indirect.carbon +++ b/toolchain/check/testdata/interop/cpp/basics/import/indirect.carbon @@ -145,15 +145,15 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %X.elem: type = unbound_element_type %X, %i32 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %X.cpp_destructor.type: type = fn_type @X.cpp_destructor [concrete] // CHECK:STDOUT: %X.cpp_destructor: %X.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %X.g.cpp_overload_set.type: type = cpp_overload_set_type @X.g.cpp_overload_set [concrete] @@ -164,8 +164,8 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.F: %F.type = import_ref Main//direct_import, F, loaded [concrete = constants.%F] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %X.g.cpp_overload_set.value: %X.g.cpp_overload_set.type = cpp_overload_set_value @X.g.cpp_overload_set [concrete = constants.%X.g.cpp_overload_set.value] // CHECK:STDOUT: %X.g.decl: %X.g.type = fn_decl @X.g [concrete = constants.%X.g] { // CHECK:STDOUT: @@ -183,7 +183,7 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: %x.ref: %X.elem = name_ref x, @X.%.1 [concrete = @X.%.1] // CHECK:STDOUT: %.loc9_13.1: ref %i32 = class_element_access %.loc9_12.2, element0 // CHECK:STDOUT: %.loc9_13.2: %i32 = acquire_value %.loc9_13.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc9_13.1: = bound_method %.loc9_13.2, %impl.elem0 // 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.loc9_13.2: = bound_method %.loc9_13.2, %specific_fn @@ -215,42 +215,42 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %X.elem: type = unbound_element_type %X, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.74a: type = pattern_type %X [concrete] +// CHECK:STDOUT: %pattern_type.88a: type = pattern_type %X [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ptr.4ff: type = ptr_type %X [concrete] +// CHECK:STDOUT: %ptr.606: type = ptr_type %X [concrete] // CHECK:STDOUT: %X__carbon_thunk.type: type = fn_type @X__carbon_thunk [concrete] // CHECK:STDOUT: %X__carbon_thunk: %X__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %X.g.cpp_overload_set.type: type = cpp_overload_set_type @X.g.cpp_overload_set [concrete] // CHECK:STDOUT: %X.g.cpp_overload_set.value: %X.g.cpp_overload_set.type = cpp_overload_set_value @X.g.cpp_overload_set [concrete] // CHECK:STDOUT: %X.g.type: type = fn_type @X.g [concrete] // CHECK:STDOUT: %X.g: %X.g.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %X.cpp_destructor.type: type = fn_type @X.cpp_destructor [concrete] // CHECK:STDOUT: %X.cpp_destructor: %X.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -262,35 +262,35 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %X.g.cpp_overload_set.value: %X.g.cpp_overload_set.type = cpp_overload_set_value @X.g.cpp_overload_set [concrete = constants.%X.g.cpp_overload_set.value] // CHECK:STDOUT: %X.g.decl: %X.g.type = fn_decl @X.g [concrete = constants.%X.g] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Use() -> out %return.param: %tuple.type.e5a { +// CHECK:STDOUT: fn @Use() -> out %return.param: %tuple.type.e55 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %ax.patt: %pattern_type.74a = ref_binding_pattern ax [concrete] -// CHECK:STDOUT: %ax.var_patt: %pattern_type.74a = var_pattern %ax.patt [concrete] +// CHECK:STDOUT: %ax.patt: %pattern_type.88a = ref_binding_pattern ax [concrete] +// CHECK:STDOUT: %ax.var_patt: %pattern_type.88a = var_pattern %ax.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %ax.var: ref %X = var %ax.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_3.1: ref %X = splice_block %ax.var {} -// CHECK:STDOUT: %impl.elem0.loc9: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc9: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc9_16.1: = bound_method %int_1, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_16.2: = bound_method %int_1, %specific_fn.loc9 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc9_16.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc9_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc9_16.2: %i32 = converted %int_1, %.loc9_16.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %addr: %ptr.4ff = addr_of %.loc9_3.1 +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc9_16.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_16.2: %i32 = converted %int_1, %.loc9_16.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %addr: %ptr.606 = addr_of %.loc9_3.1 // CHECK:STDOUT: %X__carbon_thunk.call: init %empty_tuple.type = call imports.%X__carbon_thunk.decl(%.loc9_16.2, %addr) // CHECK:STDOUT: %.loc9_3.2: init %X to %.loc9_3.1 = mark_in_place_init %X__carbon_thunk.call // CHECK:STDOUT: %.loc9_3.3: init %X = converted %int_1, %.loc9_3.2 @@ -304,9 +304,9 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: %g.ref: %X.g.cpp_overload_set.type = name_ref g, imports.%X.g.cpp_overload_set.value [concrete = constants.%X.g.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc10_19: = bound_method %ax.ref.loc10_17, %g.ref // CHECK:STDOUT: %X.g.call: init %i32 = call imports.%X.g.decl(%ax.ref.loc10_17) -// CHECK:STDOUT: %.loc10_23.1: %tuple.type.e5a = tuple_literal (%.loc10_13.1, %X.g.call) +// CHECK:STDOUT: %.loc10_23.1: %tuple.type.e55 = tuple_literal (%.loc10_13.1, %X.g.call) // CHECK:STDOUT: %.loc10_13.2: %i32 = acquire_value %.loc10_13.1 -// CHECK:STDOUT: %impl.elem0.loc10: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc10: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc10_13.1: = bound_method %.loc10_13.2, %impl.elem0.loc10 // CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc10_13.2: = bound_method %.loc10_13.2, %specific_fn.loc10 @@ -315,8 +315,8 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: %.loc10_23.2: init %i32 to %tuple.elem0 = in_place_init %Int.as.Copy.impl.Op.call // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access %return.param, element1 // CHECK:STDOUT: %.loc10_23.3: init %i32 to %tuple.elem1 = in_place_init %X.g.call -// CHECK:STDOUT: %.loc10_23.4: init %tuple.type.e5a to %return.param = tuple_init (%.loc10_23.2, %.loc10_23.3) -// CHECK:STDOUT: %.loc10_24: init %tuple.type.e5a = converted %.loc10_23.1, %.loc10_23.4 +// CHECK:STDOUT: %.loc10_23.4: init %tuple.type.e55 to %return.param = tuple_init (%.loc10_23.2, %.loc10_23.3) +// CHECK:STDOUT: %.loc10_24: init %tuple.type.e55 = converted %.loc10_23.1, %.loc10_23.4 // CHECK:STDOUT: %X.cpp_destructor.bound: = bound_method %ax.var, constants.%X.cpp_destructor // CHECK:STDOUT: %X.cpp_destructor.call: init %empty_tuple.type = call %X.cpp_destructor.bound(%ax.var) // CHECK:STDOUT: return %.loc10_24 to %return.param @@ -331,47 +331,47 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %Y.ef9: type = class_type @Y.1 [concrete] -// CHECK:STDOUT: %Y.elem.530: type = unbound_element_type %Y.ef9, %i32 [concrete] +// CHECK:STDOUT: %Y.90c: type = class_type @Y.1 [concrete] +// CHECK:STDOUT: %Y.elem.ab3: type = unbound_element_type %Y.90c, %i32 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.14d: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet.14d [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Y.cpp_destructor.type.300273.1: type = fn_type @Y.cpp_destructor.1 [concrete] -// CHECK:STDOUT: %Y.cpp_destructor.6dd6f2.1: %Y.cpp_destructor.type.300273.1 = struct_value () [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.987: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet.987 [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: %Y.cpp_destructor.type.0df797.1: type = fn_type @Y.cpp_destructor.1 [concrete] +// CHECK:STDOUT: %Y.cpp_destructor.be1864.1: %Y.cpp_destructor.type.0df797.1 = struct_value () [concrete] // CHECK:STDOUT: %Z: type = class_type @Z [concrete] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] -// CHECK:STDOUT: %Y.235: type = class_type @Y.2 [concrete] -// CHECK:STDOUT: %Y.elem.f1e: type = unbound_element_type %Y.235, %Z [concrete] +// CHECK:STDOUT: %Y.e8d: type = class_type @Y.2 [concrete] +// CHECK:STDOUT: %Y.elem.9a6: type = unbound_element_type %Y.e8d, %Z [concrete] // CHECK:STDOUT: %Z.Z.type: type = fn_type @Z.Z [concrete] // CHECK:STDOUT: %Z.Z: %Z.Z.type = struct_value () [concrete] -// CHECK:STDOUT: %const.ab6: type = const_type %Z [concrete] -// CHECK:STDOUT: %ptr.bf9: type = ptr_type %const.ab6 [concrete] -// CHECK:STDOUT: %ptr.c6c: type = ptr_type %Z [concrete] +// CHECK:STDOUT: %const.09e: type = const_type %Z [concrete] +// CHECK:STDOUT: %ptr.5fc: type = ptr_type %const.09e [concrete] +// CHECK:STDOUT: %ptr.df4: type = ptr_type %Z [concrete] // CHECK:STDOUT: %Z__carbon_thunk.type: type = fn_type @Z__carbon_thunk [concrete] // CHECK:STDOUT: %Z__carbon_thunk: %Z__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Z.Op.type: type = fn_type @Z.Op [concrete] // CHECK:STDOUT: %Z.Op: %Z.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.069: = custom_witness (%Z.Op), @Copy [concrete] -// CHECK:STDOUT: %Copy.facet.ede: %Copy.type = facet_value %Z, (%custom_witness.069) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.f30: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.ede) [concrete] -// CHECK:STDOUT: %.8e1: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f30, %Copy.facet.ede [concrete] -// CHECK:STDOUT: %Y.cpp_destructor.type.300273.2: type = fn_type @Y.cpp_destructor.2 [concrete] -// CHECK:STDOUT: %Y.cpp_destructor.6dd6f2.2: %Y.cpp_destructor.type.300273.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.f88: = custom_witness (%Z.Op), @Copy [concrete] +// CHECK:STDOUT: %Copy.facet.ca1: %Copy.type = facet_value %Z, (%custom_witness.f88) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.1ad: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.ca1) [concrete] +// CHECK:STDOUT: %.f96: type = fn_type_with_self_type %Copy.WithSelf.Op.type.1ad, %Copy.facet.ca1 [concrete] +// CHECK:STDOUT: %Y.cpp_destructor.type.0df797.2: type = fn_type @Y.cpp_destructor.2 [concrete] +// CHECK:STDOUT: %Y.cpp_destructor.be1864.2: %Y.cpp_destructor.type.0df797.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.G: %G.type = import_ref Main//direct_import, G, loaded [concrete = constants.%G] // CHECK:STDOUT: %Main.H: %H.type = import_ref Main//direct_import, H, loaded [concrete = constants.%H] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Z.Z.decl: %Z.Z.type = fn_decl @Z.Z [concrete = constants.%Z.Z] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -387,18 +387,18 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: fn @Use() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %G.ref: %G.type = name_ref G, imports.%Main.G [concrete = constants.%G] -// CHECK:STDOUT: %.loc9_12.1: ref %Y.ef9 = temporary_storage -// CHECK:STDOUT: %G.call: init %Y.ef9 to %.loc9_12.1 = call %G.ref() -// CHECK:STDOUT: %.loc9_12.2: ref %Y.ef9 = temporary %.loc9_12.1, %G.call -// CHECK:STDOUT: %y.ref: %Y.elem.530 = name_ref y, @Y.1.%.1 [concrete = @Y.1.%.1] +// CHECK:STDOUT: %.loc9_12.1: ref %Y.90c = temporary_storage +// CHECK:STDOUT: %G.call: init %Y.90c to %.loc9_12.1 = call %G.ref() +// CHECK:STDOUT: %.loc9_12.2: ref %Y.90c = temporary %.loc9_12.1, %G.call +// CHECK:STDOUT: %y.ref: %Y.elem.ab3 = name_ref y, @Y.1.%.1 [concrete = @Y.1.%.1] // CHECK:STDOUT: %.loc9_13.1: ref %i32 = class_element_access %.loc9_12.2, element0 // CHECK:STDOUT: %.loc9_13.2: %i32 = acquire_value %.loc9_13.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc9_13.1: = bound_method %.loc9_13.2, %impl.elem0 // 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.loc9_13.2: = bound_method %.loc9_13.2, %specific_fn // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc9_13.2(%.loc9_13.2) -// CHECK:STDOUT: %Y.cpp_destructor.bound: = bound_method %.loc9_12.2, constants.%Y.cpp_destructor.6dd6f2.1 +// CHECK:STDOUT: %Y.cpp_destructor.bound: = bound_method %.loc9_12.2, constants.%Y.cpp_destructor.be1864.1 // CHECK:STDOUT: %Y.cpp_destructor.call: init %empty_tuple.type = call %Y.cpp_destructor.bound(%.loc9_12.2) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } @@ -406,26 +406,26 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: fn @UseZ() -> out %return.param: %Z { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %H.ref: %H.type = name_ref H, imports.%Main.H [concrete = constants.%H] -// CHECK:STDOUT: %.loc15_12.1: ref %Y.235 = temporary_storage -// CHECK:STDOUT: %H.call: init %Y.235 to %.loc15_12.1 = call %H.ref() -// CHECK:STDOUT: %.loc15_12.2: ref %Y.235 = temporary %.loc15_12.1, %H.call -// CHECK:STDOUT: %y.ref: %Y.elem.f1e = name_ref y, @Y.2.%.1 [concrete = @Y.2.%.1] +// CHECK:STDOUT: %.loc15_12.1: ref %Y.e8d = temporary_storage +// CHECK:STDOUT: %H.call: init %Y.e8d to %.loc15_12.1 = call %H.ref() +// CHECK:STDOUT: %.loc15_12.2: ref %Y.e8d = temporary %.loc15_12.1, %H.call +// CHECK:STDOUT: %y.ref: %Y.elem.9a6 = name_ref y, @Y.2.%.1 [concrete = @Y.2.%.1] // CHECK:STDOUT: %.loc15_13.1: ref %Z = class_element_access %.loc15_12.2, element0 // CHECK:STDOUT: %.loc15_13.2: %Z = acquire_value %.loc15_13.1 // CHECK:STDOUT: -// CHECK:STDOUT: %impl.elem0: %.8e1 = impl_witness_access constants.%custom_witness.069, element0 [concrete = constants.%Z.Op] +// CHECK:STDOUT: %impl.elem0: %.f96 = impl_witness_access constants.%custom_witness.f88, element0 [concrete = constants.%Z.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc15_13.2, %impl.elem0 // CHECK:STDOUT: %.loc15_13.3: ref %Z = temporary_storage // CHECK:STDOUT: %Op.ref: %Z.Z.type = name_ref Op, imports.%Z.Z.decl [concrete = constants.%Z.Z] // CHECK:STDOUT: // CHECK:STDOUT: %.loc15_13.4: ref %Z = value_as_ref %.loc15_13.2 -// CHECK:STDOUT: %addr.loc15_13.1: %ptr.c6c = addr_of %.loc15_13.4 -// CHECK:STDOUT: %.loc15_13.5: %ptr.bf9 = as_compatible %addr.loc15_13.1 -// CHECK:STDOUT: %.loc15_13.6: %ptr.bf9 = converted %addr.loc15_13.1, %.loc15_13.5 -// CHECK:STDOUT: %addr.loc15_13.2: %ptr.c6c = addr_of %.loc13_19.1 +// CHECK:STDOUT: %addr.loc15_13.1: %ptr.df4 = addr_of %.loc15_13.4 +// CHECK:STDOUT: %.loc15_13.5: %ptr.5fc = as_compatible %addr.loc15_13.1 +// CHECK:STDOUT: %.loc15_13.6: %ptr.5fc = converted %addr.loc15_13.1, %.loc15_13.5 +// CHECK:STDOUT: %addr.loc15_13.2: %ptr.df4 = addr_of %.loc13_19.1 // CHECK:STDOUT: %Z__carbon_thunk.call: init %empty_tuple.type = call imports.%Z__carbon_thunk.decl(%.loc15_13.6, %addr.loc15_13.2) // CHECK:STDOUT: %.loc15_13.7: init %Z to %.loc13_19.1 = mark_in_place_init %Z__carbon_thunk.call -// CHECK:STDOUT: %Y.cpp_destructor.bound: = bound_method %.loc15_12.2, constants.%Y.cpp_destructor.6dd6f2.2 +// CHECK:STDOUT: %Y.cpp_destructor.bound: = bound_method %.loc15_12.2, constants.%Y.cpp_destructor.be1864.2 // CHECK:STDOUT: %Y.cpp_destructor.call: init %empty_tuple.type = call %Y.cpp_destructor.bound(%.loc15_12.2) // CHECK:STDOUT: return %.loc15_13.7 to %return.param // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/class/import/abstract.carbon b/toolchain/check/testdata/interop/cpp/class/import/abstract.carbon index 4f4fdb311aeb..454a04c3a06f 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/abstract.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/abstract.carbon @@ -105,7 +105,7 @@ fn F() -> Cpp.AbstractFinal { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %AbstractFinal: type = class_type @AbstractFinal [concrete] -// CHECK:STDOUT: %.216: Core.Form = init_form %AbstractFinal [concrete] +// CHECK:STDOUT: %.dbd: Core.Form = init_form %AbstractFinal [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %AbstractFinal [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] @@ -133,7 +133,7 @@ fn F() -> Cpp.AbstractFinal { // CHECK:STDOUT: } { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %AbstractFinal.ref: type = name_ref AbstractFinal, imports.%AbstractFinal.decl [concrete = constants.%AbstractFinal] -// CHECK:STDOUT: %.loc11_14.2: Core.Form = init_form %AbstractFinal.ref [concrete = constants.%.216] +// CHECK:STDOUT: %.loc11_14.2: Core.Form = init_form %AbstractFinal.ref [concrete = constants.%.dbd] // CHECK:STDOUT: %return.param: ref %AbstractFinal = out_param call_param0 // CHECK:STDOUT: %return: ref %AbstractFinal = return_slot %return.param // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/class/import/access.carbon b/toolchain/check/testdata/interop/cpp/class/import/access.carbon index 19a5ef90405f..dfe6bb52b3df 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/access.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/access.carbon @@ -1626,7 +1626,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %S.elem: type = unbound_element_type %S, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1635,15 +1635,15 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} -// CHECK:STDOUT: %static_data.patt: %pattern_type.104 = ref_binding_pattern static_data [concrete] -// CHECK:STDOUT: %static_data.var_patt: %pattern_type.104 = var_pattern %static_data.patt [concrete] +// CHECK:STDOUT: %static_data.patt: %pattern_type.6b6 = ref_binding_pattern static_data [concrete] +// CHECK:STDOUT: %static_data.var_patt: %pattern_type.6b6 = var_pattern %static_data.patt [concrete] // CHECK:STDOUT: %static_data.var: ref %i32 = var %static_data.var_patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%s.param: %S) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %instance_data.patt: %pattern_type.104 = value_binding_pattern instance_data [concrete] +// CHECK:STDOUT: %instance_data.patt: %pattern_type.6b6 = value_binding_pattern instance_data [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %instance_data.ref: %S.elem = name_ref instance_data, @S.%.1 [concrete = @S.%.1] @@ -1652,7 +1652,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %i32.loc8: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %instance_data: %i32 = value_binding instance_data, %.loc8_36.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %static_data.patt: %pattern_type.104 = value_binding_pattern static_data [concrete] +// CHECK:STDOUT: %static_data.patt: %pattern_type.6b6 = value_binding_pattern static_data [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc9: type = name_ref S, imports.%S.decl [concrete = constants.%S] @@ -1672,19 +1672,19 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %S.elem: type = unbound_element_type %S, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %static_data.patt: %pattern_type.104 = ref_binding_pattern static_data [concrete] -// CHECK:STDOUT: %static_data.var_patt: %pattern_type.104 = var_pattern %static_data.patt [concrete] +// CHECK:STDOUT: %static_data.patt: %pattern_type.6b6 = ref_binding_pattern static_data [concrete] +// CHECK:STDOUT: %static_data.var_patt: %pattern_type.6b6 = var_pattern %static_data.patt [concrete] // CHECK:STDOUT: %static_data.var: ref %i32 = var %static_data.var_patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%d.param: %Derived) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %instance_data.patt: %pattern_type.104 = value_binding_pattern instance_data [concrete] +// CHECK:STDOUT: %instance_data.patt: %pattern_type.6b6 = value_binding_pattern instance_data [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %d.ref: %Derived = name_ref d, %d // CHECK:STDOUT: %instance_data.ref: %S.elem = name_ref instance_data, @S.%.1 [concrete = @S.%.1] @@ -1695,7 +1695,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %.loc12_36.4: %i32 = acquire_value %.loc12_36.3 // CHECK:STDOUT: %instance_data: %i32 = value_binding instance_data, %.loc12_36.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %static_data.patt: %pattern_type.104 = value_binding_pattern static_data [concrete] +// CHECK:STDOUT: %static_data.patt: %pattern_type.6b6 = value_binding_pattern static_data [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.ref.loc13: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] // CHECK:STDOUT: @@ -1714,7 +1714,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1723,8 +1723,8 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %static_data.patt: %pattern_type.104 = ref_binding_pattern static_data [concrete] -// CHECK:STDOUT: %static_data.var_patt: %pattern_type.104 = var_pattern %static_data.patt [concrete] +// CHECK:STDOUT: %static_data.patt: %pattern_type.6b6 = ref_binding_pattern static_data [concrete] +// CHECK:STDOUT: %static_data.var_patt: %pattern_type.6b6 = var_pattern %static_data.patt [concrete] // CHECK:STDOUT: %static_data.var: ref %i32 = var %static_data.var_patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1745,7 +1745,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: fn @Derived.F(%self.param: %Derived) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %instance_data.patt: %pattern_type.104 = value_binding_pattern instance_data [concrete] +// CHECK:STDOUT: %instance_data.patt: %pattern_type.6b6 = value_binding_pattern instance_data [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %self.ref: %Derived = name_ref self, %self // CHECK:STDOUT: %instance_data.ref: %C.elem = name_ref instance_data, @C.%.1 [concrete = @C.%.1] @@ -1756,7 +1756,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %.loc10_41.4: %i32 = acquire_value %.loc10_41.3 // CHECK:STDOUT: %instance_data: %i32 = value_binding instance_data, %.loc10_41.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %unqualified_static_data.patt: %pattern_type.104 = value_binding_pattern unqualified_static_data [concrete] +// CHECK:STDOUT: %unqualified_static_data.patt: %pattern_type.6b6 = value_binding_pattern unqualified_static_data [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: %static_data.ref.loc11: ref %i32 = name_ref static_data, imports.%static_data.var [concrete = imports.%static_data.var] @@ -1764,7 +1764,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %.loc11: %i32 = acquire_value %static_data.ref.loc11 // CHECK:STDOUT: %unqualified_static_data: %i32 = value_binding unqualified_static_data, %.loc11 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %derived_static_data.patt: %pattern_type.104 = value_binding_pattern derived_static_data [concrete] +// CHECK:STDOUT: %derived_static_data.patt: %pattern_type.6b6 = value_binding_pattern derived_static_data [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] // CHECK:STDOUT: %static_data.ref.loc12: ref %i32 = name_ref static_data, imports.%static_data.var [concrete = imports.%static_data.var] @@ -1772,7 +1772,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %.loc12: %i32 = acquire_value %static_data.ref.loc12 // CHECK:STDOUT: %derived_static_data: %i32 = value_binding derived_static_data, %.loc12 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %base_static_data.patt: %pattern_type.104 = value_binding_pattern base_static_data [concrete] +// CHECK:STDOUT: %base_static_data.patt: %pattern_type.6b6 = value_binding_pattern base_static_data [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%C.decl [concrete = constants.%C] @@ -1787,7 +1787,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S.instance_fn.cpp_overload_set.type: type = cpp_overload_set_type @S.instance_fn.cpp_overload_set [concrete] // CHECK:STDOUT: %S.instance_fn.cpp_overload_set.value: %S.instance_fn.cpp_overload_set.type = cpp_overload_set_value @S.instance_fn.cpp_overload_set [concrete] @@ -1815,9 +1815,9 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %S.static_fn.decl: %S.static_fn.type = fn_decl @S.static_fn [concrete = constants.%S.static_fn] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%s.param: %ptr.055) { +// CHECK:STDOUT: fn @F(%s.param: %ptr.037) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %s.ref: %ptr.055 = name_ref s, %s +// CHECK:STDOUT: %s.ref: %ptr.037 = name_ref s, %s // CHECK:STDOUT: %.loc8: ref %S = deref %s.ref // CHECK:STDOUT: %instance_fn.ref: %S.instance_fn.cpp_overload_set.type = name_ref instance_fn, imports.%S.instance_fn.cpp_overload_set.value [concrete = constants.%S.instance_fn.cpp_overload_set.value] // CHECK:STDOUT: %bound_method: = bound_method %.loc8, %instance_fn.ref @@ -1920,10 +1920,10 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall: type = class_type @PublicCall [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.type: type = cpp_overload_set_type @PublicCall.PublicCall.cpp_overload_set [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.value: %PublicCall.PublicCall.cpp_overload_set.type = cpp_overload_set_value @PublicCall.PublicCall.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.9f8: type = ptr_type %PublicCall [concrete] +// CHECK:STDOUT: %ptr.d0a: type = ptr_type %PublicCall [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk.type: type = fn_type @PublicCall__carbon_thunk [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk: %PublicCall__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %C.Overload.cpp_overload_set.type: type = cpp_overload_set_type @C.Overload.cpp_overload_set [concrete] @@ -1973,15 +1973,15 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall.ref.loc8_14: type = name_ref PublicCall, imports.%PublicCall.decl [concrete = constants.%PublicCall] // CHECK:STDOUT: %PublicCall.ref.loc8_25: %PublicCall.PublicCall.cpp_overload_set.type = name_ref PublicCall, imports.%PublicCall.PublicCall.cpp_overload_set.value [concrete = constants.%PublicCall.PublicCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_37.1: ref %PublicCall = temporary_storage -// CHECK:STDOUT: %addr.loc8_37: %ptr.9f8 = addr_of %.loc8_37.1 +// CHECK:STDOUT: %addr.loc8_37: %ptr.d0a = addr_of %.loc8_37.1 // CHECK:STDOUT: %PublicCall__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%PublicCall__carbon_thunk.decl(%addr.loc8_37) // CHECK:STDOUT: %.loc8_37.2: init %PublicCall to %.loc8_37.1 = mark_in_place_init %PublicCall__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_38.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc8_37.3: ref %PublicCall = temporary %.loc8_37.1, %.loc8_37.2 // CHECK:STDOUT: %.loc8_37.4: %PublicCall = acquire_value %.loc8_37.3 // CHECK:STDOUT: %.loc8_37.5: ref %PublicCall = value_as_ref %.loc8_37.4 -// CHECK:STDOUT: %addr.loc8_38.1: %ptr.9f8 = addr_of %.loc8_37.5 -// CHECK:STDOUT: %addr.loc8_38.2: %ptr.3a8 = addr_of %.loc8_38.1 +// CHECK:STDOUT: %addr.loc8_38.1: %ptr.d0a = addr_of %.loc8_37.5 +// CHECK:STDOUT: %addr.loc8_38.2: %ptr.0a2 = addr_of %.loc8_38.1 // CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8_38.1, %addr.loc8_38.2) // CHECK:STDOUT: %.loc8_38.2: init %C to %.loc8_38.1 = mark_in_place_init %C__carbon_thunk.call // CHECK:STDOUT: %.loc8_38.3: ref %C = temporary %.loc8_38.1, %.loc8_38.2 @@ -1992,13 +1992,13 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall.ref.loc9_21: type = name_ref PublicCall, imports.%PublicCall.decl [concrete = constants.%PublicCall] // CHECK:STDOUT: %PublicCall.ref.loc9_32: %PublicCall.PublicCall.cpp_overload_set.type = name_ref PublicCall, imports.%PublicCall.PublicCall.cpp_overload_set.value [concrete = constants.%PublicCall.PublicCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_44.1: ref %PublicCall = temporary_storage -// CHECK:STDOUT: %addr.loc9_44: %ptr.9f8 = addr_of %.loc9_44.1 +// CHECK:STDOUT: %addr.loc9_44: %ptr.d0a = addr_of %.loc9_44.1 // CHECK:STDOUT: %PublicCall__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%PublicCall__carbon_thunk.decl(%addr.loc9_44) // CHECK:STDOUT: %.loc9_44.2: init %PublicCall to %.loc9_44.1 = mark_in_place_init %PublicCall__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_44.3: ref %PublicCall = temporary %.loc9_44.1, %.loc9_44.2 // CHECK:STDOUT: %.loc9_44.4: %PublicCall = acquire_value %.loc9_44.3 // CHECK:STDOUT: %.loc9_44.5: ref %PublicCall = value_as_ref %.loc9_44.4 -// CHECK:STDOUT: %addr.loc9_45: %ptr.9f8 = addr_of %.loc9_44.5 +// CHECK:STDOUT: %addr.loc9_45: %ptr.d0a = addr_of %.loc9_44.5 // CHECK:STDOUT: %Overload__carbon_thunk.call: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl(%addr.loc9_45) // CHECK:STDOUT: %PublicCall.cpp_destructor.bound.loc9: = bound_method %.loc9_44.3, constants.%PublicCall.cpp_destructor // CHECK:STDOUT: %PublicCall.cpp_destructor.call.loc9: init %empty_tuple.type = call %PublicCall.cpp_destructor.bound.loc9(%.loc9_44.3) @@ -2015,37 +2015,37 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %struct_type.base.b6f: type = struct_type {.base: %C} [concrete] +// CHECK:STDOUT: %struct_type.base.8d9: type = struct_type {.base: %C} [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %PublicCall: type = class_type @PublicCall [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.type: type = cpp_overload_set_type @PublicCall.PublicCall.cpp_overload_set [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.value: %PublicCall.PublicCall.cpp_overload_set.type = cpp_overload_set_value @PublicCall.PublicCall.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.9f8: type = ptr_type %PublicCall [concrete] +// CHECK:STDOUT: %ptr.d0a: type = ptr_type %PublicCall [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk.type: type = fn_type @PublicCall__carbon_thunk [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk: %PublicCall__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.1: type = fn_type @C__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %C__carbon_thunk.7c7210.1: %C__carbon_thunk.type.0be6f8.1 = struct_value () [concrete] -// CHECK:STDOUT: %.196: type = partial_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] +// CHECK:STDOUT: %C__carbon_thunk.type.e78457.1: type = fn_type @C__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %C__carbon_thunk.ca303d.1: %C__carbon_thunk.type.e78457.1 = struct_value () [concrete] +// CHECK:STDOUT: %.292: type = partial_type %C [concrete] // CHECK:STDOUT: %PublicCall.cpp_destructor.type: type = fn_type @PublicCall.cpp_destructor [concrete] // CHECK:STDOUT: %PublicCall.cpp_destructor: %PublicCall.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %ProtectedCall: type = class_type @ProtectedCall [concrete] // CHECK:STDOUT: %ProtectedCall.ProtectedCall.cpp_overload_set.type: type = cpp_overload_set_type @ProtectedCall.ProtectedCall.cpp_overload_set [concrete] // CHECK:STDOUT: %ProtectedCall.ProtectedCall.cpp_overload_set.value: %ProtectedCall.ProtectedCall.cpp_overload_set.type = cpp_overload_set_value @ProtectedCall.ProtectedCall.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.6e4: type = ptr_type %ProtectedCall [concrete] +// CHECK:STDOUT: %ptr.bc1: type = ptr_type %ProtectedCall [concrete] // CHECK:STDOUT: %ProtectedCall__carbon_thunk.type: type = fn_type @ProtectedCall__carbon_thunk [concrete] // CHECK:STDOUT: %ProtectedCall__carbon_thunk: %ProtectedCall__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.2: type = fn_type @C__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %C__carbon_thunk.7c7210.2: %C__carbon_thunk.type.0be6f8.2 = struct_value () [concrete] +// CHECK:STDOUT: %C__carbon_thunk.type.e78457.2: type = fn_type @C__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %C__carbon_thunk.ca303d.2: %C__carbon_thunk.type.e78457.2 = struct_value () [concrete] // CHECK:STDOUT: %ProtectedCall.cpp_destructor.type: type = fn_type @ProtectedCall.cpp_destructor [concrete] // CHECK:STDOUT: %ProtectedCall.cpp_destructor: %ProtectedCall.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %C.Overload.cpp_overload_set.type: type = cpp_overload_set_type @C.Overload.cpp_overload_set [concrete] // CHECK:STDOUT: %C.Overload.cpp_overload_set.value: %C.Overload.cpp_overload_set.type = cpp_overload_set_value @C.Overload.cpp_overload_set [concrete] -// CHECK:STDOUT: %Overload__carbon_thunk.type.8651cd.1: type = fn_type @Overload__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %Overload__carbon_thunk.e237e3.1: %Overload__carbon_thunk.type.8651cd.1 = struct_value () [concrete] -// CHECK:STDOUT: %Overload__carbon_thunk.type.8651cd.2: type = fn_type @Overload__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %Overload__carbon_thunk.e237e3.2: %Overload__carbon_thunk.type.8651cd.2 = struct_value () [concrete] +// CHECK:STDOUT: %Overload__carbon_thunk.type.3dd392.1: type = fn_type @Overload__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %Overload__carbon_thunk.1c804c.1: %Overload__carbon_thunk.type.3dd392.1 = struct_value () [concrete] +// CHECK:STDOUT: %Overload__carbon_thunk.type.3dd392.2: type = fn_type @Overload__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %Overload__carbon_thunk.1c804c.2: %Overload__carbon_thunk.type.3dd392.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2064,7 +2064,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %C__carbon_thunk.decl.5bf927.1: %C__carbon_thunk.type.0be6f8.1 = fn_decl @C__carbon_thunk.1 [concrete = constants.%C__carbon_thunk.7c7210.1] { +// CHECK:STDOUT: %C__carbon_thunk.decl.abd9a2.1: %C__carbon_thunk.type.e78457.1 = fn_decl @C__carbon_thunk.1 [concrete = constants.%C__carbon_thunk.ca303d.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -2076,18 +2076,18 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %C__carbon_thunk.decl.5bf927.2: %C__carbon_thunk.type.0be6f8.2 = fn_decl @C__carbon_thunk.2 [concrete = constants.%C__carbon_thunk.7c7210.2] { +// CHECK:STDOUT: %C__carbon_thunk.decl.abd9a2.2: %C__carbon_thunk.type.e78457.2 = fn_decl @C__carbon_thunk.2 [concrete = constants.%C__carbon_thunk.ca303d.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.Overload.cpp_overload_set.value: %C.Overload.cpp_overload_set.type = cpp_overload_set_value @C.Overload.cpp_overload_set [concrete = constants.%C.Overload.cpp_overload_set.value] -// CHECK:STDOUT: %Overload__carbon_thunk.decl.2c3a3d.1: %Overload__carbon_thunk.type.8651cd.1 = fn_decl @Overload__carbon_thunk.1 [concrete = constants.%Overload__carbon_thunk.e237e3.1] { +// CHECK:STDOUT: %Overload__carbon_thunk.decl.c2f84f.1: %Overload__carbon_thunk.type.3dd392.1 = fn_decl @Overload__carbon_thunk.1 [concrete = constants.%Overload__carbon_thunk.1c804c.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Overload__carbon_thunk.decl.2c3a3d.2: %Overload__carbon_thunk.type.8651cd.2 = fn_decl @Overload__carbon_thunk.2 [concrete = constants.%Overload__carbon_thunk.e237e3.2] { +// CHECK:STDOUT: %Overload__carbon_thunk.decl.c2f84f.2: %Overload__carbon_thunk.type.3dd392.2 = fn_decl @Overload__carbon_thunk.2 [concrete = constants.%Overload__carbon_thunk.1c804c.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -2118,20 +2118,20 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall.ref.loc11_26: type = name_ref PublicCall, imports.%PublicCall.decl [concrete = constants.%PublicCall] // CHECK:STDOUT: %PublicCall.ref.loc11_37: %PublicCall.PublicCall.cpp_overload_set.type = name_ref PublicCall, imports.%PublicCall.PublicCall.cpp_overload_set.value [concrete = constants.%PublicCall.PublicCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc11_49.1: ref %PublicCall = temporary_storage -// CHECK:STDOUT: %addr.loc11_49: %ptr.9f8 = addr_of %.loc11_49.1 +// CHECK:STDOUT: %addr.loc11_49: %ptr.d0a = addr_of %.loc11_49.1 // CHECK:STDOUT: %PublicCall__carbon_thunk.call: init %empty_tuple.type = call imports.%PublicCall__carbon_thunk.decl(%addr.loc11_49) // CHECK:STDOUT: %.loc11_49.2: init %PublicCall to %.loc11_49.1 = mark_in_place_init %PublicCall__carbon_thunk.call -// CHECK:STDOUT: %.loc11_51.1: ref %.196 = class_element_access %return.param, element0 +// CHECK:STDOUT: %.loc11_51.1: ref %.292 = class_element_access %return.param, element0 // CHECK:STDOUT: %.loc11_49.3: ref %PublicCall = temporary %.loc11_49.1, %.loc11_49.2 // CHECK:STDOUT: %.loc11_49.4: %PublicCall = acquire_value %.loc11_49.3 // CHECK:STDOUT: %.loc11_49.5: ref %PublicCall = value_as_ref %.loc11_49.4 -// CHECK:STDOUT: %addr.loc11_50.1: %ptr.9f8 = addr_of %.loc11_49.5 -// CHECK:STDOUT: %addr.loc11_50.2: %ptr.3a8 = addr_of %.loc11_51.1 -// CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.1(%addr.loc11_50.1, %addr.loc11_50.2) +// CHECK:STDOUT: %addr.loc11_50.1: %ptr.d0a = addr_of %.loc11_49.5 +// CHECK:STDOUT: %addr.loc11_50.2: %ptr.0a2 = addr_of %.loc11_51.1 +// CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.abd9a2.1(%addr.loc11_50.1, %addr.loc11_50.2) // CHECK:STDOUT: %.loc11_50: init %C to %.loc11_51.1 = mark_in_place_init %C__carbon_thunk.call -// CHECK:STDOUT: %.loc11_51.2: %struct_type.base.b6f = struct_literal (%.loc11_50) -// CHECK:STDOUT: %.loc11_51.3: init %.196 = as_compatible %.loc11_50 -// CHECK:STDOUT: %.loc11_51.4: init %.196 = converted %.loc11_50, %.loc11_51.3 +// CHECK:STDOUT: %.loc11_51.2: %struct_type.base.8d9 = struct_literal (%.loc11_50) +// CHECK:STDOUT: %.loc11_51.3: init %.292 = as_compatible %.loc11_50 +// CHECK:STDOUT: %.loc11_51.4: init %.292 = converted %.loc11_50, %.loc11_51.3 // CHECK:STDOUT: %.loc11_51.5: init %C = as_compatible %.loc11_51.4 // CHECK:STDOUT: %.loc11_51.6: init %D to %return.param = class_init (%.loc11_51.5) // CHECK:STDOUT: %.loc11_52: init %D = converted %.loc11_51.2, %.loc11_51.6 @@ -2147,20 +2147,20 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %ProtectedCall.ref.loc17_26: type = name_ref ProtectedCall, imports.%ProtectedCall.decl [concrete = constants.%ProtectedCall] // CHECK:STDOUT: %ProtectedCall.ref.loc17_40: %ProtectedCall.ProtectedCall.cpp_overload_set.type = name_ref ProtectedCall, imports.%ProtectedCall.ProtectedCall.cpp_overload_set.value [concrete = constants.%ProtectedCall.ProtectedCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc17_55.1: ref %ProtectedCall = temporary_storage -// CHECK:STDOUT: %addr.loc17_55: %ptr.6e4 = addr_of %.loc17_55.1 +// CHECK:STDOUT: %addr.loc17_55: %ptr.bc1 = addr_of %.loc17_55.1 // CHECK:STDOUT: %ProtectedCall__carbon_thunk.call: init %empty_tuple.type = call imports.%ProtectedCall__carbon_thunk.decl(%addr.loc17_55) // CHECK:STDOUT: %.loc17_55.2: init %ProtectedCall to %.loc17_55.1 = mark_in_place_init %ProtectedCall__carbon_thunk.call -// CHECK:STDOUT: %.loc17_57.1: ref %.196 = class_element_access %return.param, element0 +// CHECK:STDOUT: %.loc17_57.1: ref %.292 = class_element_access %return.param, element0 // CHECK:STDOUT: %.loc17_55.3: ref %ProtectedCall = temporary %.loc17_55.1, %.loc17_55.2 // CHECK:STDOUT: %.loc17_55.4: %ProtectedCall = acquire_value %.loc17_55.3 // CHECK:STDOUT: %.loc17_55.5: ref %ProtectedCall = value_as_ref %.loc17_55.4 -// CHECK:STDOUT: %addr.loc17_56.1: %ptr.6e4 = addr_of %.loc17_55.5 -// CHECK:STDOUT: %addr.loc17_56.2: %ptr.3a8 = addr_of %.loc17_57.1 -// CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.2(%addr.loc17_56.1, %addr.loc17_56.2) +// CHECK:STDOUT: %addr.loc17_56.1: %ptr.bc1 = addr_of %.loc17_55.5 +// CHECK:STDOUT: %addr.loc17_56.2: %ptr.0a2 = addr_of %.loc17_57.1 +// CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.abd9a2.2(%addr.loc17_56.1, %addr.loc17_56.2) // CHECK:STDOUT: %.loc17_56: init %C to %.loc17_57.1 = mark_in_place_init %C__carbon_thunk.call -// CHECK:STDOUT: %.loc17_57.2: %struct_type.base.b6f = struct_literal (%.loc17_56) -// CHECK:STDOUT: %.loc17_57.3: init %.196 = as_compatible %.loc17_56 -// CHECK:STDOUT: %.loc17_57.4: init %.196 = converted %.loc17_56, %.loc17_57.3 +// CHECK:STDOUT: %.loc17_57.2: %struct_type.base.8d9 = struct_literal (%.loc17_56) +// CHECK:STDOUT: %.loc17_57.3: init %.292 = as_compatible %.loc17_56 +// CHECK:STDOUT: %.loc17_57.4: init %.292 = converted %.loc17_56, %.loc17_57.3 // CHECK:STDOUT: %.loc17_57.5: init %C = as_compatible %.loc17_57.4 // CHECK:STDOUT: %.loc17_57.6: init %D to %return.param = class_init (%.loc17_57.5) // CHECK:STDOUT: %.loc17_58: init %D = converted %.loc17_57.2, %.loc17_57.6 @@ -2176,14 +2176,14 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall.ref.loc23_17: type = name_ref PublicCall, imports.%PublicCall.decl [concrete = constants.%PublicCall] // CHECK:STDOUT: %PublicCall.ref.loc23_28: %PublicCall.PublicCall.cpp_overload_set.type = name_ref PublicCall, imports.%PublicCall.PublicCall.cpp_overload_set.value [concrete = constants.%PublicCall.PublicCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc23_40.1: ref %PublicCall = temporary_storage -// CHECK:STDOUT: %addr.loc23_40: %ptr.9f8 = addr_of %.loc23_40.1 +// CHECK:STDOUT: %addr.loc23_40: %ptr.d0a = addr_of %.loc23_40.1 // CHECK:STDOUT: %PublicCall__carbon_thunk.call: init %empty_tuple.type = call imports.%PublicCall__carbon_thunk.decl(%addr.loc23_40) // CHECK:STDOUT: %.loc23_40.2: init %PublicCall to %.loc23_40.1 = mark_in_place_init %PublicCall__carbon_thunk.call // CHECK:STDOUT: %.loc23_40.3: ref %PublicCall = temporary %.loc23_40.1, %.loc23_40.2 // CHECK:STDOUT: %.loc23_40.4: %PublicCall = acquire_value %.loc23_40.3 // CHECK:STDOUT: %.loc23_40.5: ref %PublicCall = value_as_ref %.loc23_40.4 -// CHECK:STDOUT: %addr.loc23_41: %ptr.9f8 = addr_of %.loc23_40.5 -// CHECK:STDOUT: %Overload__carbon_thunk.call: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.2c3a3d.1(%addr.loc23_41) +// CHECK:STDOUT: %addr.loc23_41: %ptr.d0a = addr_of %.loc23_40.5 +// CHECK:STDOUT: %Overload__carbon_thunk.call: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.c2f84f.1(%addr.loc23_41) // CHECK:STDOUT: %PublicCall.cpp_destructor.bound: = bound_method %.loc23_40.3, constants.%PublicCall.cpp_destructor // CHECK:STDOUT: %PublicCall.cpp_destructor.call: init %empty_tuple.type = call %PublicCall.cpp_destructor.bound(%.loc23_40.3) // CHECK:STDOUT: @@ -2196,14 +2196,14 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %ProtectedCall.ref.loc29_17: type = name_ref ProtectedCall, imports.%ProtectedCall.decl [concrete = constants.%ProtectedCall] // CHECK:STDOUT: %ProtectedCall.ref.loc29_31: %ProtectedCall.ProtectedCall.cpp_overload_set.type = name_ref ProtectedCall, imports.%ProtectedCall.ProtectedCall.cpp_overload_set.value [concrete = constants.%ProtectedCall.ProtectedCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc29_46.1: ref %ProtectedCall = temporary_storage -// CHECK:STDOUT: %addr.loc29_46: %ptr.6e4 = addr_of %.loc29_46.1 +// CHECK:STDOUT: %addr.loc29_46: %ptr.bc1 = addr_of %.loc29_46.1 // CHECK:STDOUT: %ProtectedCall__carbon_thunk.call: init %empty_tuple.type = call imports.%ProtectedCall__carbon_thunk.decl(%addr.loc29_46) // CHECK:STDOUT: %.loc29_46.2: init %ProtectedCall to %.loc29_46.1 = mark_in_place_init %ProtectedCall__carbon_thunk.call // CHECK:STDOUT: %.loc29_46.3: ref %ProtectedCall = temporary %.loc29_46.1, %.loc29_46.2 // CHECK:STDOUT: %.loc29_46.4: %ProtectedCall = acquire_value %.loc29_46.3 // CHECK:STDOUT: %.loc29_46.5: ref %ProtectedCall = value_as_ref %.loc29_46.4 -// CHECK:STDOUT: %addr.loc29_47: %ptr.6e4 = addr_of %.loc29_46.5 -// CHECK:STDOUT: %Overload__carbon_thunk.call: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.2c3a3d.2(%addr.loc29_47) +// CHECK:STDOUT: %addr.loc29_47: %ptr.bc1 = addr_of %.loc29_46.5 +// CHECK:STDOUT: %Overload__carbon_thunk.call: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.c2f84f.2(%addr.loc29_47) // CHECK:STDOUT: %ProtectedCall.cpp_destructor.bound: = bound_method %.loc29_46.3, constants.%ProtectedCall.cpp_destructor // CHECK:STDOUT: %ProtectedCall.cpp_destructor.call: init %empty_tuple.type = call %ProtectedCall.cpp_destructor.bound(%.loc29_46.3) // CHECK:STDOUT: @@ -2219,7 +2219,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall: type = class_type @PublicCall [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.type: type = cpp_overload_set_type @PublicCall.PublicCall.cpp_overload_set [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.value: %PublicCall.PublicCall.cpp_overload_set.type = cpp_overload_set_value @PublicCall.PublicCall.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.9f8: type = ptr_type %PublicCall [concrete] +// CHECK:STDOUT: %ptr.d0a: type = ptr_type %PublicCall [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk.type: type = fn_type @PublicCall__carbon_thunk [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk: %PublicCall__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Overload__carbon_thunk.type: type = fn_type @Overload__carbon_thunk [concrete] @@ -2259,13 +2259,13 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall.ref.loc8_26: type = name_ref PublicCall, imports.%PublicCall.decl [concrete = constants.%PublicCall] // CHECK:STDOUT: %PublicCall.ref.loc8_37: %PublicCall.PublicCall.cpp_overload_set.type = name_ref PublicCall, imports.%PublicCall.PublicCall.cpp_overload_set.value [concrete = constants.%PublicCall.PublicCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_49.1: ref %PublicCall = temporary_storage -// CHECK:STDOUT: %addr.loc8_49: %ptr.9f8 = addr_of %.loc8_49.1 +// CHECK:STDOUT: %addr.loc8_49: %ptr.d0a = addr_of %.loc8_49.1 // CHECK:STDOUT: %PublicCall__carbon_thunk.call: init %empty_tuple.type = call imports.%PublicCall__carbon_thunk.decl(%addr.loc8_49) // CHECK:STDOUT: %.loc8_49.2: init %PublicCall to %.loc8_49.1 = mark_in_place_init %PublicCall__carbon_thunk.call // CHECK:STDOUT: %.loc8_49.3: ref %PublicCall = temporary %.loc8_49.1, %.loc8_49.2 // CHECK:STDOUT: %.loc8_49.4: %PublicCall = acquire_value %.loc8_49.3 // CHECK:STDOUT: %.loc8_49.5: ref %PublicCall = value_as_ref %.loc8_49.4 -// CHECK:STDOUT: %addr.loc8_50: %ptr.9f8 = addr_of %.loc8_49.5 +// CHECK:STDOUT: %addr.loc8_50: %ptr.d0a = addr_of %.loc8_49.5 // CHECK:STDOUT: %Overload__carbon_thunk.call: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl(%addr.loc8_50) // CHECK:STDOUT: %PublicCall.cpp_destructor.bound: = bound_method %.loc8_49.3, constants.%PublicCall.cpp_destructor // CHECK:STDOUT: %PublicCall.cpp_destructor.call: init %empty_tuple.type = call %PublicCall.cpp_destructor.bound(%.loc8_49.3) @@ -2283,19 +2283,19 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall: type = class_type @PublicCall [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.type: type = cpp_overload_set_type @PublicCall.PublicCall.cpp_overload_set [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.value: %PublicCall.PublicCall.cpp_overload_set.type = cpp_overload_set_value @PublicCall.PublicCall.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.9f8: type = ptr_type %PublicCall [concrete] +// CHECK:STDOUT: %ptr.d0a: type = ptr_type %PublicCall [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk.type: type = fn_type @PublicCall__carbon_thunk [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk: %PublicCall__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %Overload__carbon_thunk.type.8651cd.1: type = fn_type @Overload__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %Overload__carbon_thunk.e237e3.1: %Overload__carbon_thunk.type.8651cd.1 = struct_value () [concrete] +// CHECK:STDOUT: %Overload__carbon_thunk.type.3dd392.1: type = fn_type @Overload__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %Overload__carbon_thunk.1c804c.1: %Overload__carbon_thunk.type.3dd392.1 = struct_value () [concrete] // CHECK:STDOUT: %ProtectedCall: type = class_type @ProtectedCall [concrete] // CHECK:STDOUT: %ProtectedCall.ProtectedCall.cpp_overload_set.type: type = cpp_overload_set_type @ProtectedCall.ProtectedCall.cpp_overload_set [concrete] // CHECK:STDOUT: %ProtectedCall.ProtectedCall.cpp_overload_set.value: %ProtectedCall.ProtectedCall.cpp_overload_set.type = cpp_overload_set_value @ProtectedCall.ProtectedCall.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.6e4: type = ptr_type %ProtectedCall [concrete] +// CHECK:STDOUT: %ptr.bc1: type = ptr_type %ProtectedCall [concrete] // CHECK:STDOUT: %ProtectedCall__carbon_thunk.type: type = fn_type @ProtectedCall__carbon_thunk [concrete] // CHECK:STDOUT: %ProtectedCall__carbon_thunk: %ProtectedCall__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %Overload__carbon_thunk.type.8651cd.2: type = fn_type @Overload__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %Overload__carbon_thunk.e237e3.2: %Overload__carbon_thunk.type.8651cd.2 = struct_value () [concrete] +// CHECK:STDOUT: %Overload__carbon_thunk.type.3dd392.2: type = fn_type @Overload__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %Overload__carbon_thunk.1c804c.2: %Overload__carbon_thunk.type.3dd392.2 = struct_value () [concrete] // CHECK:STDOUT: %ProtectedCall.cpp_destructor.type: type = fn_type @ProtectedCall.cpp_destructor [concrete] // CHECK:STDOUT: %ProtectedCall.cpp_destructor: %ProtectedCall.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %PublicCall.cpp_destructor.type: type = fn_type @PublicCall.cpp_destructor [concrete] @@ -2318,7 +2318,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Overload__carbon_thunk.decl.2c3a3d.1: %Overload__carbon_thunk.type.8651cd.1 = fn_decl @Overload__carbon_thunk.1 [concrete = constants.%Overload__carbon_thunk.e237e3.1] { +// CHECK:STDOUT: %Overload__carbon_thunk.decl.c2f84f.1: %Overload__carbon_thunk.type.3dd392.1 = fn_decl @Overload__carbon_thunk.1 [concrete = constants.%Overload__carbon_thunk.1c804c.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -2330,7 +2330,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Overload__carbon_thunk.decl.2c3a3d.2: %Overload__carbon_thunk.type.8651cd.2 = fn_decl @Overload__carbon_thunk.2 [concrete = constants.%Overload__carbon_thunk.e237e3.2] { +// CHECK:STDOUT: %Overload__carbon_thunk.decl.c2f84f.2: %Overload__carbon_thunk.type.3dd392.2 = fn_decl @Overload__carbon_thunk.2 [concrete = constants.%Overload__carbon_thunk.1c804c.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -2356,27 +2356,27 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall.ref.loc11_17: type = name_ref PublicCall, imports.%PublicCall.decl [concrete = constants.%PublicCall] // CHECK:STDOUT: %PublicCall.ref.loc11_28: %PublicCall.PublicCall.cpp_overload_set.type = name_ref PublicCall, imports.%PublicCall.PublicCall.cpp_overload_set.value [concrete = constants.%PublicCall.PublicCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc11_40.1: ref %PublicCall = temporary_storage -// CHECK:STDOUT: %addr.loc11_40: %ptr.9f8 = addr_of %.loc11_40.1 +// CHECK:STDOUT: %addr.loc11_40: %ptr.d0a = addr_of %.loc11_40.1 // CHECK:STDOUT: %PublicCall__carbon_thunk.call: init %empty_tuple.type = call imports.%PublicCall__carbon_thunk.decl(%addr.loc11_40) // CHECK:STDOUT: %.loc11_40.2: init %PublicCall to %.loc11_40.1 = mark_in_place_init %PublicCall__carbon_thunk.call // CHECK:STDOUT: %.loc11_40.3: ref %PublicCall = temporary %.loc11_40.1, %.loc11_40.2 // CHECK:STDOUT: %.loc11_40.4: %PublicCall = acquire_value %.loc11_40.3 // CHECK:STDOUT: %.loc11_40.5: ref %PublicCall = value_as_ref %.loc11_40.4 -// CHECK:STDOUT: %addr.loc11_41: %ptr.9f8 = addr_of %.loc11_40.5 -// CHECK:STDOUT: %Overload__carbon_thunk.call.loc11: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.2c3a3d.1(%addr.loc11_41) +// CHECK:STDOUT: %addr.loc11_41: %ptr.d0a = addr_of %.loc11_40.5 +// CHECK:STDOUT: %Overload__carbon_thunk.call.loc11: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.c2f84f.1(%addr.loc11_41) // CHECK:STDOUT: %Overload.ref.loc12: %Public.Overload.cpp_overload_set.type = name_ref Overload, imports.%Public.Overload.cpp_overload_set.value [concrete = constants.%Public.Overload.cpp_overload_set.value] // CHECK:STDOUT: %Cpp.ref.loc12: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %ProtectedCall.ref.loc12_17: type = name_ref ProtectedCall, imports.%ProtectedCall.decl [concrete = constants.%ProtectedCall] // CHECK:STDOUT: %ProtectedCall.ref.loc12_31: %ProtectedCall.ProtectedCall.cpp_overload_set.type = name_ref ProtectedCall, imports.%ProtectedCall.ProtectedCall.cpp_overload_set.value [concrete = constants.%ProtectedCall.ProtectedCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc12_46.1: ref %ProtectedCall = temporary_storage -// CHECK:STDOUT: %addr.loc12_46: %ptr.6e4 = addr_of %.loc12_46.1 +// CHECK:STDOUT: %addr.loc12_46: %ptr.bc1 = addr_of %.loc12_46.1 // CHECK:STDOUT: %ProtectedCall__carbon_thunk.call: init %empty_tuple.type = call imports.%ProtectedCall__carbon_thunk.decl(%addr.loc12_46) // CHECK:STDOUT: %.loc12_46.2: init %ProtectedCall to %.loc12_46.1 = mark_in_place_init %ProtectedCall__carbon_thunk.call // CHECK:STDOUT: %.loc12_46.3: ref %ProtectedCall = temporary %.loc12_46.1, %.loc12_46.2 // CHECK:STDOUT: %.loc12_46.4: %ProtectedCall = acquire_value %.loc12_46.3 // CHECK:STDOUT: %.loc12_46.5: ref %ProtectedCall = value_as_ref %.loc12_46.4 -// CHECK:STDOUT: %addr.loc12_47: %ptr.6e4 = addr_of %.loc12_46.5 -// CHECK:STDOUT: %Overload__carbon_thunk.call.loc12: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.2c3a3d.2(%addr.loc12_47) +// CHECK:STDOUT: %addr.loc12_47: %ptr.bc1 = addr_of %.loc12_46.5 +// CHECK:STDOUT: %Overload__carbon_thunk.call.loc12: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.c2f84f.2(%addr.loc12_47) // CHECK:STDOUT: %ProtectedCall.cpp_destructor.bound: = bound_method %.loc12_46.3, constants.%ProtectedCall.cpp_destructor // CHECK:STDOUT: %ProtectedCall.cpp_destructor.call: init %empty_tuple.type = call %ProtectedCall.cpp_destructor.bound(%.loc12_46.3) // CHECK:STDOUT: %PublicCall.cpp_destructor.bound: = bound_method %.loc11_40.3, constants.%PublicCall.cpp_destructor @@ -2395,19 +2395,19 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall: type = class_type @PublicCall [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.type: type = cpp_overload_set_type @PublicCall.PublicCall.cpp_overload_set [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.value: %PublicCall.PublicCall.cpp_overload_set.type = cpp_overload_set_value @PublicCall.PublicCall.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.9f8: type = ptr_type %PublicCall [concrete] +// CHECK:STDOUT: %ptr.d0a: type = ptr_type %PublicCall [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk.type: type = fn_type @PublicCall__carbon_thunk [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk: %PublicCall__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %Overload__carbon_thunk.type.8651cd.1: type = fn_type @Overload__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %Overload__carbon_thunk.e237e3.1: %Overload__carbon_thunk.type.8651cd.1 = struct_value () [concrete] +// CHECK:STDOUT: %Overload__carbon_thunk.type.3dd392.1: type = fn_type @Overload__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %Overload__carbon_thunk.1c804c.1: %Overload__carbon_thunk.type.3dd392.1 = struct_value () [concrete] // CHECK:STDOUT: %ProtectedCall: type = class_type @ProtectedCall [concrete] // CHECK:STDOUT: %ProtectedCall.ProtectedCall.cpp_overload_set.type: type = cpp_overload_set_type @ProtectedCall.ProtectedCall.cpp_overload_set [concrete] // CHECK:STDOUT: %ProtectedCall.ProtectedCall.cpp_overload_set.value: %ProtectedCall.ProtectedCall.cpp_overload_set.type = cpp_overload_set_value @ProtectedCall.ProtectedCall.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.6e4: type = ptr_type %ProtectedCall [concrete] +// CHECK:STDOUT: %ptr.bc1: type = ptr_type %ProtectedCall [concrete] // CHECK:STDOUT: %ProtectedCall__carbon_thunk.type: type = fn_type @ProtectedCall__carbon_thunk [concrete] // CHECK:STDOUT: %ProtectedCall__carbon_thunk: %ProtectedCall__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %Overload__carbon_thunk.type.8651cd.2: type = fn_type @Overload__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %Overload__carbon_thunk.e237e3.2: %Overload__carbon_thunk.type.8651cd.2 = struct_value () [concrete] +// CHECK:STDOUT: %Overload__carbon_thunk.type.3dd392.2: type = fn_type @Overload__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %Overload__carbon_thunk.1c804c.2: %Overload__carbon_thunk.type.3dd392.2 = struct_value () [concrete] // CHECK:STDOUT: %ProtectedCall.cpp_destructor.type: type = fn_type @ProtectedCall.cpp_destructor [concrete] // CHECK:STDOUT: %ProtectedCall.cpp_destructor: %ProtectedCall.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %PublicCall.cpp_destructor.type: type = fn_type @PublicCall.cpp_destructor [concrete] @@ -2430,7 +2430,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Overload__carbon_thunk.decl.2c3a3d.1: %Overload__carbon_thunk.type.8651cd.1 = fn_decl @Overload__carbon_thunk.1 [concrete = constants.%Overload__carbon_thunk.e237e3.1] { +// CHECK:STDOUT: %Overload__carbon_thunk.decl.c2f84f.1: %Overload__carbon_thunk.type.3dd392.1 = fn_decl @Overload__carbon_thunk.1 [concrete = constants.%Overload__carbon_thunk.1c804c.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -2442,7 +2442,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Overload__carbon_thunk.decl.2c3a3d.2: %Overload__carbon_thunk.type.8651cd.2 = fn_decl @Overload__carbon_thunk.2 [concrete = constants.%Overload__carbon_thunk.e237e3.2] { +// CHECK:STDOUT: %Overload__carbon_thunk.decl.c2f84f.2: %Overload__carbon_thunk.type.3dd392.2 = fn_decl @Overload__carbon_thunk.2 [concrete = constants.%Overload__carbon_thunk.1c804c.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -2468,27 +2468,27 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall.ref.loc11_17: type = name_ref PublicCall, imports.%PublicCall.decl [concrete = constants.%PublicCall] // CHECK:STDOUT: %PublicCall.ref.loc11_28: %PublicCall.PublicCall.cpp_overload_set.type = name_ref PublicCall, imports.%PublicCall.PublicCall.cpp_overload_set.value [concrete = constants.%PublicCall.PublicCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc11_40.1: ref %PublicCall = temporary_storage -// CHECK:STDOUT: %addr.loc11_40: %ptr.9f8 = addr_of %.loc11_40.1 +// CHECK:STDOUT: %addr.loc11_40: %ptr.d0a = addr_of %.loc11_40.1 // CHECK:STDOUT: %PublicCall__carbon_thunk.call: init %empty_tuple.type = call imports.%PublicCall__carbon_thunk.decl(%addr.loc11_40) // CHECK:STDOUT: %.loc11_40.2: init %PublicCall to %.loc11_40.1 = mark_in_place_init %PublicCall__carbon_thunk.call // CHECK:STDOUT: %.loc11_40.3: ref %PublicCall = temporary %.loc11_40.1, %.loc11_40.2 // CHECK:STDOUT: %.loc11_40.4: %PublicCall = acquire_value %.loc11_40.3 // CHECK:STDOUT: %.loc11_40.5: ref %PublicCall = value_as_ref %.loc11_40.4 -// CHECK:STDOUT: %addr.loc11_41: %ptr.9f8 = addr_of %.loc11_40.5 -// CHECK:STDOUT: %Overload__carbon_thunk.call.loc11: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.2c3a3d.1(%addr.loc11_41) +// CHECK:STDOUT: %addr.loc11_41: %ptr.d0a = addr_of %.loc11_40.5 +// CHECK:STDOUT: %Overload__carbon_thunk.call.loc11: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.c2f84f.1(%addr.loc11_41) // CHECK:STDOUT: %Overload.ref.loc12: %Protected.Overload.cpp_overload_set.type = name_ref Overload, imports.%Protected.Overload.cpp_overload_set.value [concrete = constants.%Protected.Overload.cpp_overload_set.value] // CHECK:STDOUT: %Cpp.ref.loc12: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %ProtectedCall.ref.loc12_17: type = name_ref ProtectedCall, imports.%ProtectedCall.decl [concrete = constants.%ProtectedCall] // CHECK:STDOUT: %ProtectedCall.ref.loc12_31: %ProtectedCall.ProtectedCall.cpp_overload_set.type = name_ref ProtectedCall, imports.%ProtectedCall.ProtectedCall.cpp_overload_set.value [concrete = constants.%ProtectedCall.ProtectedCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc12_46.1: ref %ProtectedCall = temporary_storage -// CHECK:STDOUT: %addr.loc12_46: %ptr.6e4 = addr_of %.loc12_46.1 +// CHECK:STDOUT: %addr.loc12_46: %ptr.bc1 = addr_of %.loc12_46.1 // CHECK:STDOUT: %ProtectedCall__carbon_thunk.call: init %empty_tuple.type = call imports.%ProtectedCall__carbon_thunk.decl(%addr.loc12_46) // CHECK:STDOUT: %.loc12_46.2: init %ProtectedCall to %.loc12_46.1 = mark_in_place_init %ProtectedCall__carbon_thunk.call // CHECK:STDOUT: %.loc12_46.3: ref %ProtectedCall = temporary %.loc12_46.1, %.loc12_46.2 // CHECK:STDOUT: %.loc12_46.4: %ProtectedCall = acquire_value %.loc12_46.3 // CHECK:STDOUT: %.loc12_46.5: ref %ProtectedCall = value_as_ref %.loc12_46.4 -// CHECK:STDOUT: %addr.loc12_47: %ptr.6e4 = addr_of %.loc12_46.5 -// CHECK:STDOUT: %Overload__carbon_thunk.call.loc12: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.2c3a3d.2(%addr.loc12_47) +// CHECK:STDOUT: %addr.loc12_47: %ptr.bc1 = addr_of %.loc12_46.5 +// CHECK:STDOUT: %Overload__carbon_thunk.call.loc12: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.c2f84f.2(%addr.loc12_47) // CHECK:STDOUT: %ProtectedCall.cpp_destructor.bound: = bound_method %.loc12_46.3, constants.%ProtectedCall.cpp_destructor // CHECK:STDOUT: %ProtectedCall.cpp_destructor.call: init %empty_tuple.type = call %ProtectedCall.cpp_destructor.bound(%.loc12_46.3) // CHECK:STDOUT: %PublicCall.cpp_destructor.bound: = bound_method %.loc11_40.3, constants.%PublicCall.cpp_destructor diff --git a/toolchain/check/testdata/interop/cpp/class/import/base.carbon b/toolchain/check/testdata/interop/cpp/class/import/base.carbon index 53ea7f3ac536..daf0afcc7adb 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/base.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/base.carbon @@ -470,29 +470,29 @@ class V { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] -// CHECK:STDOUT: %ptr.2aa: type = ptr_type %Derived [concrete] -// CHECK:STDOUT: %pattern_type.ba6: type = pattern_type %ptr.2aa [concrete] +// CHECK:STDOUT: %ptr.976: type = ptr_type %Derived [concrete] +// CHECK:STDOUT: %pattern_type.d23: type = pattern_type %ptr.976 [concrete] // CHECK:STDOUT: %Base: type = class_type @Base [concrete] -// CHECK:STDOUT: %ptr.eb6: type = ptr_type %Base [concrete] -// CHECK:STDOUT: %.3e5: Core.Form = init_form %ptr.eb6 [concrete] -// CHECK:STDOUT: %pattern_type.47b: type = pattern_type %ptr.eb6 [concrete] +// CHECK:STDOUT: %ptr.0e0: type = ptr_type %Base [concrete] +// CHECK:STDOUT: %.866: Core.Form = init_form %ptr.0e0 [concrete] +// CHECK:STDOUT: %pattern_type.cb0: type = pattern_type %ptr.0e0 [concrete] // CHECK:STDOUT: %ConvertPtr.type: type = fn_type @ConvertPtr [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %ConvertPtr: %ConvertPtr.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.ab1: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%Base) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.f2f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Base) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.e51: %ptr.as.Copy.impl.Op.type.f2f = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.eb6, (%Copy.impl_witness.ab1) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.092: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.470: type = fn_type_with_self_type %Copy.WithSelf.Op.type.092, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.e51, @ptr.as.Copy.impl.Op(%Base) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.428: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%Base) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.136: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Base) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.377: %ptr.as.Copy.impl.Op.type.136 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.0e0, (%Copy.impl_witness.428) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.be3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.6e4: type = fn_type_with_self_type %Copy.WithSelf.Op.type.be3, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.377, @ptr.as.Copy.impl.Op(%Base) [concrete] // CHECK:STDOUT: %AcceptVal.type: type = fn_type @AcceptVal [concrete] // CHECK:STDOUT: %AcceptVal: %AcceptVal.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.ad3: type = pattern_type %Derived [concrete] +// CHECK:STDOUT: %pattern_type.2f5: type = pattern_type %Derived [concrete] // CHECK:STDOUT: %ConvertVal.type: type = fn_type @ConvertVal [concrete] // CHECK:STDOUT: %ConvertVal: %ConvertVal.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -505,34 +505,34 @@ class V { // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %ConvertPtr.decl: %ConvertPtr.type = fn_decl @ConvertPtr [concrete = constants.%ConvertPtr] { -// CHECK:STDOUT: %d.param_patt: %pattern_type.ba6 = value_param_pattern [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.ba6 = at_binding_pattern d, %d.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.47b = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.47b = return_slot_pattern %return.param_patt, %ptr.loc7_43 [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.d23 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.d23 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.cb0 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.cb0 = return_slot_pattern %return.param_patt, %ptr.loc7_43 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Cpp.ref.loc7_35: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Base.ref: type = name_ref Base, imports.%Base.decl [concrete = constants.%Base] -// CHECK:STDOUT: %ptr.loc7_43: type = ptr_type %Base.ref [concrete = constants.%ptr.eb6] -// CHECK:STDOUT: %.loc7_43: Core.Form = init_form %ptr.loc7_43 [concrete = constants.%.3e5] -// CHECK:STDOUT: %d.param: %ptr.2aa = value_param call_param0 -// CHECK:STDOUT: %.loc7_29: type = splice_block %ptr.loc7_29 [concrete = constants.%ptr.2aa] { +// CHECK:STDOUT: %ptr.loc7_43: type = ptr_type %Base.ref [concrete = constants.%ptr.0e0] +// CHECK:STDOUT: %.loc7_43: Core.Form = init_form %ptr.loc7_43 [concrete = constants.%.866] +// CHECK:STDOUT: %d.param: %ptr.976 = value_param call_param0 +// CHECK:STDOUT: %.loc7_29: type = splice_block %ptr.loc7_29 [concrete = constants.%ptr.976] { // CHECK:STDOUT: %Cpp.ref.loc7_18: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, imports.%Derived.decl [concrete = constants.%Derived] -// CHECK:STDOUT: %ptr.loc7_29: type = ptr_type %Derived.ref [concrete = constants.%ptr.2aa] +// CHECK:STDOUT: %ptr.loc7_29: type = ptr_type %Derived.ref [concrete = constants.%ptr.976] // CHECK:STDOUT: } -// CHECK:STDOUT: %d: %ptr.2aa = value_binding d, %d.param -// CHECK:STDOUT: %return.param: ref %ptr.eb6 = out_param call_param1 -// CHECK:STDOUT: %return: ref %ptr.eb6 = return_slot %return.param +// CHECK:STDOUT: %d: %ptr.976 = value_binding d, %d.param +// CHECK:STDOUT: %return.param: ref %ptr.0e0 = out_param call_param1 +// CHECK:STDOUT: %return: ref %ptr.0e0 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ConvertVal.decl: %ConvertVal.type = fn_decl @ConvertVal [concrete = constants.%ConvertVal] { -// CHECK:STDOUT: %d.param_patt: %pattern_type.ad3 = value_param_pattern [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.ad3 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.2f5 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.2f5 = at_binding_pattern d, %d.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %d.param: %Derived = value_param call_param0 // CHECK:STDOUT: %.loc15: type = splice_block %Derived.ref [concrete = constants.%Derived] { @@ -543,18 +543,18 @@ class V { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConvertPtr(%d.param: %ptr.2aa) -> out %return.param: %ptr.eb6 { +// CHECK:STDOUT: fn @ConvertPtr(%d.param: %ptr.976) -> out %return.param: %ptr.0e0 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %d.ref: %ptr.2aa = name_ref d, %d +// CHECK:STDOUT: %d.ref: %ptr.976 = name_ref d, %d // CHECK:STDOUT: %.loc8_11.1: ref %Derived = deref %d.ref // CHECK:STDOUT: %.loc8_11.2: ref %Base = class_element_access %.loc8_11.1, element0 -// CHECK:STDOUT: %addr: %ptr.eb6 = addr_of %.loc8_11.2 -// CHECK:STDOUT: %.loc8_11.3: %ptr.eb6 = converted %d.ref, %addr -// CHECK:STDOUT: %impl.elem0: %.470 = impl_witness_access constants.%Copy.impl_witness.ab1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.e51] +// CHECK:STDOUT: %addr: %ptr.0e0 = addr_of %.loc8_11.2 +// CHECK:STDOUT: %.loc8_11.3: %ptr.0e0 = converted %d.ref, %addr +// CHECK:STDOUT: %impl.elem0: %.6e4 = impl_witness_access constants.%Copy.impl_witness.428, element0 [concrete = constants.%ptr.as.Copy.impl.Op.377] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %.loc8_11.3, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%Base) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %.loc8_11.3, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.eb6 = call %bound_method.loc8_11.2(%.loc8_11.3) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.0e0 = call %bound_method.loc8_11.2(%.loc8_11.3) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -629,15 +629,15 @@ class V { // CHECK:STDOUT: %Base: type = class_type @Base [concrete] // CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -648,8 +648,8 @@ class V { // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {} -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @AccessDirect(%d.param: %Derived) -> out %return.param: %i32 { @@ -660,7 +660,7 @@ class V { // CHECK:STDOUT: %.loc8_11.2: ref %Base = converted %d.ref, %.loc8_11.1 // CHECK:STDOUT: %.loc8_11.3: ref %i32 = class_element_access %.loc8_11.2, element0 // CHECK:STDOUT: %.loc8_11.4: %i32 = acquire_value %.loc8_11.3 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %.loc8_11.4, %impl.elem0 // 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.loc8_11.2: = bound_method %.loc8_11.4, %specific_fn @@ -678,7 +678,7 @@ class V { // CHECK:STDOUT: %.loc14_11.2: ref %Base = converted %d.ref, %.loc14_11.1 // CHECK:STDOUT: %.loc14_11.3: ref %i32 = class_element_access %.loc14_11.2, element1 // CHECK:STDOUT: %.loc14_11.4: %i32 = acquire_value %.loc14_11.3 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc14_11.1: = bound_method %.loc14_11.4, %impl.elem0 // 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.loc14_11.2: = bound_method %.loc14_11.4, %specific_fn diff --git a/toolchain/check/testdata/interop/cpp/class/import/class.carbon b/toolchain/check/testdata/interop/cpp/class/import/class.carbon index 8c12851df7bb..8e08aa7debd2 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/class.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/class.carbon @@ -391,8 +391,8 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Bar: type = class_type @Bar [concrete] -// CHECK:STDOUT: %ptr.4d6: type = ptr_type %Bar [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.4d6 [concrete] +// CHECK:STDOUT: %ptr.227: type = ptr_type %Bar [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.227 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -403,7 +403,7 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: %Bar.decl: type = class_decl @Bar [concrete = constants.%Bar] {} {} // CHECK:STDOUT: %foo.patt: %pattern_type = ref_binding_pattern foo [concrete] // CHECK:STDOUT: %foo.var_patt: %pattern_type = var_pattern %foo.patt [concrete] -// CHECK:STDOUT: %foo.var: ref %ptr.4d6 = var %foo.var_patt [concrete] +// CHECK:STDOUT: %foo.var: ref %ptr.227 = var %foo.var_patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @MyF() { @@ -413,14 +413,14 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_30: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref.loc8_33: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %foo.ref: ref %ptr.4d6 = name_ref foo, imports.%foo.var [concrete = imports.%foo.var] -// CHECK:STDOUT: %.loc8_26: type = splice_block %ptr [concrete = constants.%ptr.4d6] { +// CHECK:STDOUT: %foo.ref: ref %ptr.227 = name_ref foo, imports.%foo.var [concrete = imports.%foo.var] +// CHECK:STDOUT: %.loc8_26: type = splice_block %ptr [concrete = constants.%ptr.227] { // CHECK:STDOUT: %Cpp.ref.loc8_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref.loc8_22: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %ptr: type = ptr_type %Bar.ref.loc8_22 [concrete = constants.%ptr.4d6] +// CHECK:STDOUT: %ptr: type = ptr_type %Bar.ref.loc8_22 [concrete = constants.%ptr.227] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8_37: %ptr.4d6 = acquire_value %foo.ref -// CHECK:STDOUT: %bar: %ptr.4d6 = value_binding bar, %.loc8_37 +// CHECK:STDOUT: %.loc8_37: %ptr.227 = acquire_value %foo.ref +// CHECK:STDOUT: %bar: %ptr.227 = value_binding bar, %.loc8_37 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -428,11 +428,11 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Bar: type = class_type @Bar [concrete] -// CHECK:STDOUT: %ptr.4d6: type = ptr_type %Bar [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.4d6 [concrete] +// CHECK:STDOUT: %ptr.227: type = ptr_type %Bar [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.227 [concrete] // CHECK:STDOUT: %MyF.type: type = fn_type @MyF [concrete] // CHECK:STDOUT: %MyF: %MyF.type = struct_value () [concrete] -// CHECK:STDOUT: %Bar.elem: type = unbound_element_type %Bar, %ptr.4d6 [concrete] +// CHECK:STDOUT: %Bar.elem: type = unbound_element_type %Bar, %ptr.227 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -448,32 +448,32 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %bar.patt: %pattern_type = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %bar.param: %ptr.4d6 = value_param call_param0 -// CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.4d6] { +// CHECK:STDOUT: %bar.param: %ptr.227 = value_param call_param0 +// CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.227] { // CHECK:STDOUT: %Cpp.ref.loc7: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref.loc7: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %ptr.loc7: type = ptr_type %Bar.ref.loc7 [concrete = constants.%ptr.4d6] +// CHECK:STDOUT: %ptr.loc7: type = ptr_type %Bar.ref.loc7 [concrete = constants.%ptr.227] // CHECK:STDOUT: } -// CHECK:STDOUT: %bar: %ptr.4d6 = value_binding bar, %bar.param +// CHECK:STDOUT: %bar: %ptr.227 = value_binding bar, %bar.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @MyF(%bar.param: %ptr.4d6) { +// CHECK:STDOUT: fn @MyF(%bar.param: %ptr.227) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %foo_bar.patt: %pattern_type = value_binding_pattern foo_bar [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %bar.ref: %ptr.4d6 = name_ref bar, %bar +// CHECK:STDOUT: %bar.ref: %ptr.227 = name_ref bar, %bar // CHECK:STDOUT: %.loc8_37.1: ref %Bar = deref %bar.ref // CHECK:STDOUT: %foo.ref: %Bar.elem = name_ref foo, @Bar.%.1 [concrete = @Bar.%.1] -// CHECK:STDOUT: %.loc8_37.2: ref %ptr.4d6 = class_element_access %.loc8_37.1, element0 -// CHECK:STDOUT: %.loc8_30: type = splice_block %ptr.loc8 [concrete = constants.%ptr.4d6] { +// CHECK:STDOUT: %.loc8_37.2: ref %ptr.227 = class_element_access %.loc8_37.1, element0 +// CHECK:STDOUT: %.loc8_30: type = splice_block %ptr.loc8 [concrete = constants.%ptr.227] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref.loc8: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %ptr.loc8: type = ptr_type %Bar.ref.loc8 [concrete = constants.%ptr.4d6] +// CHECK:STDOUT: %ptr.loc8: type = ptr_type %Bar.ref.loc8 [concrete = constants.%ptr.227] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8_37.3: %ptr.4d6 = acquire_value %.loc8_37.2 -// CHECK:STDOUT: %foo_bar: %ptr.4d6 = value_binding foo_bar, %.loc8_37.3 +// CHECK:STDOUT: %.loc8_37.3: %ptr.227 = acquire_value %.loc8_37.2 +// CHECK:STDOUT: %foo_bar: %ptr.227 = value_binding foo_bar, %.loc8_37.3 // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -481,8 +481,8 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Bar: type = class_type @Bar [concrete] -// CHECK:STDOUT: %ptr.4d6: type = ptr_type %Bar [concrete] -// CHECK:STDOUT: %pattern_type.d87: type = pattern_type %ptr.4d6 [concrete] +// CHECK:STDOUT: %ptr.227: type = ptr_type %Bar [concrete] +// CHECK:STDOUT: %pattern_type.1b6: type = pattern_type %ptr.227 [concrete] // CHECK:STDOUT: %MyF.type: type = fn_type @MyF [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %MyF: %MyF.type = struct_value () [concrete] @@ -508,16 +508,16 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %MyF.decl: %MyF.type = fn_decl @MyF [concrete = constants.%MyF] { -// CHECK:STDOUT: %bar.param_patt: %pattern_type.d87 = value_param_pattern [concrete] -// CHECK:STDOUT: %bar.patt: %pattern_type.d87 = at_binding_pattern bar, %bar.param_patt [concrete] +// CHECK:STDOUT: %bar.param_patt: %pattern_type.1b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %bar.patt: %pattern_type.1b6 = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %bar.param: %ptr.4d6 = value_param call_param0 -// CHECK:STDOUT: %.loc7: type = splice_block %ptr [concrete = constants.%ptr.4d6] { +// CHECK:STDOUT: %bar.param: %ptr.227 = value_param call_param0 +// CHECK:STDOUT: %.loc7: type = splice_block %ptr [concrete = constants.%ptr.227] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %ptr: type = ptr_type %Bar.ref [concrete = constants.%ptr.4d6] +// CHECK:STDOUT: %ptr: type = ptr_type %Bar.ref [concrete = constants.%ptr.227] // CHECK:STDOUT: } -// CHECK:STDOUT: %bar: %ptr.4d6 = value_binding bar, %bar.param +// CHECK:STDOUT: %bar: %ptr.227 = value_binding bar, %bar.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -527,9 +527,9 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: imports.%Bar.f.decl // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @MyF(%bar.param: %ptr.4d6) { +// CHECK:STDOUT: fn @MyF(%bar.param: %ptr.227) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %bar.ref: %ptr.4d6 = name_ref bar, %bar +// CHECK:STDOUT: %bar.ref: %ptr.227 = name_ref bar, %bar // CHECK:STDOUT: %.loc8: ref %Bar = deref %bar.ref // CHECK:STDOUT: %f.ref: %Bar.f.cpp_overload_set.type = name_ref f, imports.%Bar.f.cpp_overload_set.value [concrete = constants.%Bar.f.cpp_overload_set.value] // CHECK:STDOUT: %bound_method: = bound_method %.loc8, %f.ref @@ -544,8 +544,8 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: %Bar: type = class_type @Bar [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Bar [concrete] -// CHECK:STDOUT: %struct_type.base.9f8: type = struct_type {.base: %Bar} [concrete] -// CHECK:STDOUT: %complete_type.0b2: = complete_type_witness %struct_type.base.9f8 [concrete] +// CHECK:STDOUT: %struct_type.base.825: type = struct_type {.base: %Bar} [concrete] +// CHECK:STDOUT: %complete_type.cb3: = complete_type_witness %struct_type.base.825 [concrete] // CHECK:STDOUT: %MyF.type: type = fn_type @MyF [concrete] // CHECK:STDOUT: %MyF: %MyF.type = struct_value () [concrete] // CHECK:STDOUT: %Bar.foo.cpp_overload_set.type: type = cpp_overload_set_type @Bar.foo.cpp_overload_set [concrete] @@ -573,7 +573,7 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] // CHECK:STDOUT: %.loc8: %Derived.elem = base_decl %Bar.ref, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.9f8 [concrete = constants.%complete_type.0b2] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.825 [concrete = constants.%complete_type.cb3] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/interop/cpp/class/import/constructor.carbon b/toolchain/check/testdata/interop/cpp/class/import/constructor.carbon index 2f3660634a50..a8a869fe4445 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/constructor.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/constructor.carbon @@ -317,10 +317,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.bbc: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] @@ -344,13 +344,13 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.479 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.bbc = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_25: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_28: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_30: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_33.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc8_33.1 +// CHECK:STDOUT: %addr: %ptr.0a2 = addr_of %.loc8_33.1 // CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr) // CHECK:STDOUT: %.loc8_33.2: init %C to %.loc8_33.1 = mark_in_place_init %C__carbon_thunk.call // CHECK:STDOUT: %.loc8_20: type = splice_block %C.ref.loc8_20 [concrete = constants.%C] { @@ -370,18 +370,18 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.bbc: type = pattern_type %C [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] -// CHECK:STDOUT: %T.e5a: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.e5a) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.eab: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d = struct_value () [symbolic] +// CHECK:STDOUT: %T.b09: %Default.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.b09) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.cfe: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9 = struct_value () [symbolic] // CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete] // CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26: = custom_witness (%C.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.89f: %Default.type = facet_value %C, (%custom_witness.b26) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.6ab: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.89f) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.906: %DefaultOrUnformed.type = facet_value %C, (%DefaultOrUnformed.impl_witness.6ab) [concrete] +// CHECK:STDOUT: %custom_witness.9b4: = custom_witness (%C.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.3db: %Default.type = facet_value %C, (%custom_witness.9b4) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.7ba: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.3db) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.5f4: %DefaultOrUnformed.type = facet_value %C, (%DefaultOrUnformed.impl_witness.7ba) [concrete] // CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] // CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -392,19 +392,19 @@ fn F() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Core.import_ref.a03: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.38d) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.eab)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.48a = impl_witness_table (%Core.import_ref.a03), @T.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c2f: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.cfe)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.670 = impl_witness_table (%Core.import_ref.c2f), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.479 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.479 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.bbc = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.bbc = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%C, (constants.%DefaultOrUnformed.impl_witness.6ab) [concrete = constants.%DefaultOrUnformed.facet.906] -// CHECK:STDOUT: %.loc8_22.1: %DefaultOrUnformed.type = converted constants.%C, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet.906] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%C, (constants.%DefaultOrUnformed.impl_witness.7ba) [concrete = constants.%DefaultOrUnformed.facet.5f4] +// CHECK:STDOUT: %.loc8_22.1: %DefaultOrUnformed.type = converted constants.%C, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet.5f4] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc8_22.1 [concrete = constants.%C] // CHECK:STDOUT: %.loc8_22.2: type = converted %.loc8_22.1, %as_type [concrete = constants.%C] // CHECK:STDOUT: @@ -426,33 +426,33 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.bbc: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %int_123.fff: Core.IntLiteral = int_value 123 [concrete] // CHECK:STDOUT: %int_456.010: Core.IntLiteral = int_value 456 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.d08: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.f4c: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_123.5b5: %i32 = int_value 123 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.114: = bound_method %int_456.010, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.3d7: = bound_method %int_456.010, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_456.b9d: %i32 = int_value 456 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.b1d: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.450: = 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: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.efc: = bound_method %int_456.010, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %bound_method.c5c: = bound_method %int_456.010, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_456.8dd: %i32 = int_value 456 [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: } @@ -469,14 +469,14 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.479 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.bbc = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_25: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_28: type = name_ref C, imports.%C.decl [concrete = constants.%C] @@ -484,21 +484,21 @@ fn F() { // CHECK:STDOUT: %int_123: Core.IntLiteral = int_value 123 [concrete = constants.%int_123.fff] // CHECK:STDOUT: %int_456: Core.IntLiteral = int_value 456 [concrete = constants.%int_456.010] // CHECK:STDOUT: %.loc8_41.1: ref %C = temporary_storage -// CHECK:STDOUT: %impl.elem0.loc8_33: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_33.1: = bound_method %int_123, %impl.elem0.loc8_33 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.d08] +// CHECK:STDOUT: %impl.elem0.loc8_33: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_33.1: = bound_method %int_123, %impl.elem0.loc8_33 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.b1d] // CHECK:STDOUT: %specific_fn.loc8_33: = specific_function %impl.elem0.loc8_33, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_33.2: = bound_method %int_123, %specific_fn.loc8_33 [concrete = constants.%bound_method.f4c] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_33: init %i32 = call %bound_method.loc8_33.2(%int_123) [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %.loc8_33.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_33 [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %.loc8_33.2: %i32 = converted %int_123, %.loc8_33.1 [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %impl.elem0.loc8_38: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_38.1: = bound_method %int_456, %impl.elem0.loc8_38 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.114] +// CHECK:STDOUT: %bound_method.loc8_33.2: = bound_method %int_123, %specific_fn.loc8_33 [concrete = constants.%bound_method.450] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_33: init %i32 = call %bound_method.loc8_33.2(%int_123) [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %.loc8_33.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_33 [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %.loc8_33.2: %i32 = converted %int_123, %.loc8_33.1 [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %impl.elem0.loc8_38: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_38.1: = bound_method %int_456, %impl.elem0.loc8_38 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.efc] // CHECK:STDOUT: %specific_fn.loc8_38: = specific_function %impl.elem0.loc8_38, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_38.2: = bound_method %int_456, %specific_fn.loc8_38 [concrete = constants.%bound_method.3d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_38: init %i32 = call %bound_method.loc8_38.2(%int_456) [concrete = constants.%int_456.b9d] -// CHECK:STDOUT: %.loc8_38.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_38 [concrete = constants.%int_456.b9d] -// CHECK:STDOUT: %.loc8_38.2: %i32 = converted %int_456, %.loc8_38.1 [concrete = constants.%int_456.b9d] -// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc8_41.1 +// CHECK:STDOUT: %bound_method.loc8_38.2: = bound_method %int_456, %specific_fn.loc8_38 [concrete = constants.%bound_method.c5c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_38: init %i32 = call %bound_method.loc8_38.2(%int_456) [concrete = constants.%int_456.8dd] +// CHECK:STDOUT: %.loc8_38.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_38 [concrete = constants.%int_456.8dd] +// CHECK:STDOUT: %.loc8_38.2: %i32 = converted %int_456, %.loc8_38.1 [concrete = constants.%int_456.8dd] +// CHECK:STDOUT: %addr: %ptr.0a2 = addr_of %.loc8_41.1 // CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%.loc8_33.2, %.loc8_38.2, %addr) // CHECK:STDOUT: %.loc8_41.2: init %C to %.loc8_41.1 = mark_in_place_init %C__carbon_thunk.call // CHECK:STDOUT: %.loc8_20: type = splice_block %C.ref.loc8_20 [concrete = constants.%C] { @@ -518,35 +518,35 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.bbc: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.1: type = fn_type @C__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %C__carbon_thunk.7c7210.1: %C__carbon_thunk.type.0be6f8.1 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] +// CHECK:STDOUT: %C__carbon_thunk.type.e78457.1: type = fn_type @C__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %C__carbon_thunk.ca303d.1: %C__carbon_thunk.type.e78457.1 = struct_value () [concrete] // CHECK:STDOUT: %int_123.fff: Core.IntLiteral = int_value 123 [concrete] // CHECK:STDOUT: %int_456.010: Core.IntLiteral = int_value 456 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.2: type = fn_type @C__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %C__carbon_thunk.7c7210.2: %C__carbon_thunk.type.0be6f8.2 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %C__carbon_thunk.type.e78457.2: type = fn_type @C__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %C__carbon_thunk.ca303d.2: %C__carbon_thunk.type.e78457.2 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.d08: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.f4c: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_123.5b5: %i32 = int_value 123 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.114: = bound_method %int_456.010, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.3d7: = bound_method %int_456.010, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_456.b9d: %i32 = int_value 456 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.b1d: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.450: = 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: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.efc: = bound_method %int_456.010, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %bound_method.c5c: = bound_method %int_456.010, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_456.8dd: %i32 = int_value 456 [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: } @@ -558,31 +558,31 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete = constants.%C.C.cpp_overload_set.value] -// CHECK:STDOUT: %C__carbon_thunk.decl.5bf927.1: %C__carbon_thunk.type.0be6f8.1 = fn_decl @C__carbon_thunk.1 [concrete = constants.%C__carbon_thunk.7c7210.1] { +// CHECK:STDOUT: %C__carbon_thunk.decl.abd9a2.1: %C__carbon_thunk.type.e78457.1 = fn_decl @C__carbon_thunk.1 [concrete = constants.%C__carbon_thunk.ca303d.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %C__carbon_thunk.decl.5bf927.2: %C__carbon_thunk.type.0be6f8.2 = fn_decl @C__carbon_thunk.2 [concrete = constants.%C__carbon_thunk.7c7210.2] { +// CHECK:STDOUT: %C__carbon_thunk.decl.abd9a2.2: %C__carbon_thunk.type.e78457.2 = fn_decl @C__carbon_thunk.2 [concrete = constants.%C__carbon_thunk.ca303d.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.479 = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.bbc = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_29: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_31: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_34.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_34.1 -// CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.1(%addr.loc8) +// CHECK:STDOUT: %addr.loc8: %ptr.0a2 = addr_of %.loc8_34.1 +// CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.abd9a2.1(%addr.loc8) // CHECK:STDOUT: %.loc8_34.2: init %C to %.loc8_34.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_21: type = splice_block %C.ref.loc8_21 [concrete = constants.%C] { // CHECK:STDOUT: %Cpp.ref.loc8_18: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -592,7 +592,7 @@ fn F() { // CHECK:STDOUT: %.loc8_34.4: %C = acquire_value %.loc8_34.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_34.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.479 = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.bbc = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc9_29: type = name_ref C, imports.%C.decl [concrete = constants.%C] @@ -600,22 +600,22 @@ fn F() { // CHECK:STDOUT: %int_123: Core.IntLiteral = int_value 123 [concrete = constants.%int_123.fff] // CHECK:STDOUT: %int_456: Core.IntLiteral = int_value 456 [concrete = constants.%int_456.010] // CHECK:STDOUT: %.loc9_42.1: ref %C = temporary_storage -// CHECK:STDOUT: %impl.elem0.loc9_34: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_34.1: = bound_method %int_123, %impl.elem0.loc9_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.d08] +// CHECK:STDOUT: %impl.elem0.loc9_34: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_34.1: = bound_method %int_123, %impl.elem0.loc9_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.b1d] // CHECK:STDOUT: %specific_fn.loc9_34: = specific_function %impl.elem0.loc9_34, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_34.2: = bound_method %int_123, %specific_fn.loc9_34 [concrete = constants.%bound_method.f4c] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_34: init %i32 = call %bound_method.loc9_34.2(%int_123) [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %.loc9_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_34 [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %.loc9_34.2: %i32 = converted %int_123, %.loc9_34.1 [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %impl.elem0.loc9_39: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_39.1: = bound_method %int_456, %impl.elem0.loc9_39 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.114] +// CHECK:STDOUT: %bound_method.loc9_34.2: = bound_method %int_123, %specific_fn.loc9_34 [concrete = constants.%bound_method.450] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_34: init %i32 = call %bound_method.loc9_34.2(%int_123) [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %.loc9_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_34 [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %.loc9_34.2: %i32 = converted %int_123, %.loc9_34.1 [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %impl.elem0.loc9_39: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_39.1: = bound_method %int_456, %impl.elem0.loc9_39 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.efc] // CHECK:STDOUT: %specific_fn.loc9_39: = specific_function %impl.elem0.loc9_39, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_39.2: = bound_method %int_456, %specific_fn.loc9_39 [concrete = constants.%bound_method.3d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_39: init %i32 = call %bound_method.loc9_39.2(%int_456) [concrete = constants.%int_456.b9d] -// CHECK:STDOUT: %.loc9_39.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_39 [concrete = constants.%int_456.b9d] -// CHECK:STDOUT: %.loc9_39.2: %i32 = converted %int_456, %.loc9_39.1 [concrete = constants.%int_456.b9d] -// CHECK:STDOUT: %addr.loc9: %ptr.3a8 = addr_of %.loc9_42.1 -// CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.2(%.loc9_34.2, %.loc9_39.2, %addr.loc9) +// CHECK:STDOUT: %bound_method.loc9_39.2: = bound_method %int_456, %specific_fn.loc9_39 [concrete = constants.%bound_method.c5c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_39: init %i32 = call %bound_method.loc9_39.2(%int_456) [concrete = constants.%int_456.8dd] +// CHECK:STDOUT: %.loc9_39.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_39 [concrete = constants.%int_456.8dd] +// CHECK:STDOUT: %.loc9_39.2: %i32 = converted %int_456, %.loc9_39.1 [concrete = constants.%int_456.8dd] +// CHECK:STDOUT: %addr.loc9: %ptr.0a2 = addr_of %.loc9_42.1 +// CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.abd9a2.2(%.loc9_34.2, %.loc9_39.2, %addr.loc9) // CHECK:STDOUT: %.loc9_42.2: init %C to %.loc9_42.1 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_21: type = splice_block %C.ref.loc9_21 [concrete = constants.%C] { // CHECK:STDOUT: %Cpp.ref.loc9_18: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -636,35 +636,35 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.bbc: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %int_8.b85: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %int_9.988: Core.IntLiteral = int_value 9 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.1: type = fn_type @C__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %C__carbon_thunk.7c7210.1: %C__carbon_thunk.type.0be6f8.1 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] +// CHECK:STDOUT: %C__carbon_thunk.type.e78457.1: type = fn_type @C__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %C__carbon_thunk.ca303d.1: %C__carbon_thunk.type.e78457.1 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.748: = bound_method %int_8.b85, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.ebc: = bound_method %int_8.b85, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_8.1c2: %i32 = int_value 8 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aba: = bound_method %int_9.988, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.50b: = bound_method %int_9.988, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_9.7e6: %i32 = int_value 9 [concrete] -// CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.2: type = fn_type @C__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %C__carbon_thunk.7c7210.2: %C__carbon_thunk.type.0be6f8.2 = struct_value () [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9dd: = bound_method %int_8.b85, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.01f: = bound_method %int_8.b85, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_8.9cf: %i32 = int_value 8 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f46: = bound_method %int_9.988, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %bound_method.9bf: = bound_method %int_9.988, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_9.056: %i32 = int_value 9 [concrete] +// CHECK:STDOUT: %C__carbon_thunk.type.e78457.2: type = fn_type @C__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %C__carbon_thunk.ca303d.2: %C__carbon_thunk.type.e78457.2 = 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: } @@ -676,14 +676,14 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete = constants.%C.C.cpp_overload_set.value] -// CHECK:STDOUT: %C__carbon_thunk.decl.5bf927.1: %C__carbon_thunk.type.0be6f8.1 = fn_decl @C__carbon_thunk.1 [concrete = constants.%C__carbon_thunk.7c7210.1] { +// CHECK:STDOUT: %C__carbon_thunk.decl.abd9a2.1: %C__carbon_thunk.type.e78457.1 = fn_decl @C__carbon_thunk.1 [concrete = constants.%C__carbon_thunk.ca303d.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %C__carbon_thunk.decl.5bf927.2: %C__carbon_thunk.type.0be6f8.2 = fn_decl @C__carbon_thunk.2 [concrete = constants.%C__carbon_thunk.7c7210.2] { +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %C__carbon_thunk.decl.abd9a2.2: %C__carbon_thunk.type.e78457.2 = fn_decl @C__carbon_thunk.2 [concrete = constants.%C__carbon_thunk.ca303d.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -693,7 +693,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.479 = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.bbc = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_29: type = name_ref C, imports.%C.decl [concrete = constants.%C] @@ -701,22 +701,22 @@ fn F() { // CHECK:STDOUT: %int_8.loc8: Core.IntLiteral = int_value 8 [concrete = constants.%int_8.b85] // CHECK:STDOUT: %int_9: Core.IntLiteral = int_value 9 [concrete = constants.%int_9.988] // CHECK:STDOUT: %.loc8_38.1: ref %C = temporary_storage -// CHECK:STDOUT: %impl.elem0.loc8_34: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_34.1: = bound_method %int_8.loc8, %impl.elem0.loc8_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.748] +// CHECK:STDOUT: %impl.elem0.loc8_34: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_34.1: = bound_method %int_8.loc8, %impl.elem0.loc8_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9dd] // CHECK:STDOUT: %specific_fn.loc8_34: = specific_function %impl.elem0.loc8_34, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_34.2: = bound_method %int_8.loc8, %specific_fn.loc8_34 [concrete = constants.%bound_method.ebc] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_34: init %i32 = call %bound_method.loc8_34.2(%int_8.loc8) [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %.loc8_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_34 [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %.loc8_34.2: %i32 = converted %int_8.loc8, %.loc8_34.1 [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %impl.elem0.loc8_37: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_37.1: = bound_method %int_9, %impl.elem0.loc8_37 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aba] +// CHECK:STDOUT: %bound_method.loc8_34.2: = bound_method %int_8.loc8, %specific_fn.loc8_34 [concrete = constants.%bound_method.01f] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_34: init %i32 = call %bound_method.loc8_34.2(%int_8.loc8) [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %.loc8_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_34 [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %.loc8_34.2: %i32 = converted %int_8.loc8, %.loc8_34.1 [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %impl.elem0.loc8_37: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_37.1: = bound_method %int_9, %impl.elem0.loc8_37 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f46] // CHECK:STDOUT: %specific_fn.loc8_37: = specific_function %impl.elem0.loc8_37, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_37.2: = bound_method %int_9, %specific_fn.loc8_37 [concrete = constants.%bound_method.50b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_37: init %i32 = call %bound_method.loc8_37.2(%int_9) [concrete = constants.%int_9.7e6] -// CHECK:STDOUT: %.loc8_37.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_37 [concrete = constants.%int_9.7e6] -// CHECK:STDOUT: %.loc8_37.2: %i32 = converted %int_9, %.loc8_37.1 [concrete = constants.%int_9.7e6] -// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_38.1 -// CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.1(%.loc8_34.2, %.loc8_37.2, %addr.loc8) +// CHECK:STDOUT: %bound_method.loc8_37.2: = bound_method %int_9, %specific_fn.loc8_37 [concrete = constants.%bound_method.9bf] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_37: init %i32 = call %bound_method.loc8_37.2(%int_9) [concrete = constants.%int_9.056] +// CHECK:STDOUT: %.loc8_37.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_37 [concrete = constants.%int_9.056] +// CHECK:STDOUT: %.loc8_37.2: %i32 = converted %int_9, %.loc8_37.1 [concrete = constants.%int_9.056] +// CHECK:STDOUT: %addr.loc8: %ptr.0a2 = addr_of %.loc8_38.1 +// CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.abd9a2.1(%.loc8_34.2, %.loc8_37.2, %addr.loc8) // CHECK:STDOUT: %.loc8_38.2: init %C to %.loc8_38.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_21: type = splice_block %C.ref.loc8_21 [concrete = constants.%C] { // CHECK:STDOUT: %Cpp.ref.loc8_18: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -726,22 +726,22 @@ fn F() { // CHECK:STDOUT: %.loc8_38.4: %C = acquire_value %.loc8_38.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_38.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.479 = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.bbc = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc9_29: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc9_31: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %int_8.loc9: Core.IntLiteral = int_value 8 [concrete = constants.%int_8.b85] // CHECK:STDOUT: %.loc9_35.1: ref %C = temporary_storage -// CHECK:STDOUT: %impl.elem0.loc9: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_34.1: = bound_method %int_8.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.748] +// CHECK:STDOUT: %impl.elem0.loc9: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_34.1: = bound_method %int_8.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9dd] // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_34.2: = bound_method %int_8.loc9, %specific_fn.loc9 [concrete = constants.%bound_method.ebc] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_34.2(%int_8.loc9) [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %.loc9_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %.loc9_34.2: %i32 = converted %int_8.loc9, %.loc9_34.1 [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %addr.loc9: %ptr.3a8 = addr_of %.loc9_35.1 -// CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.2(%.loc9_34.2, %addr.loc9) +// CHECK:STDOUT: %bound_method.loc9_34.2: = bound_method %int_8.loc9, %specific_fn.loc9 [concrete = constants.%bound_method.01f] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_34.2(%int_8.loc9) [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %.loc9_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %.loc9_34.2: %i32 = converted %int_8.loc9, %.loc9_34.1 [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %addr.loc9: %ptr.0a2 = addr_of %.loc9_35.1 +// CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.abd9a2.2(%.loc9_34.2, %addr.loc9) // CHECK:STDOUT: %.loc9_35.2: init %C to %.loc9_35.1 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_21: type = splice_block %C.ref.loc9_21 [concrete = constants.%C] { // CHECK:STDOUT: %Cpp.ref.loc9_18: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -762,45 +762,45 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.bbc: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %int_123.fff: Core.IntLiteral = int_value 123 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.1: type = fn_type @C__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %C__carbon_thunk.7c7210.1: %C__carbon_thunk.type.0be6f8.1 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] +// CHECK:STDOUT: %C__carbon_thunk.type.e78457.1: type = fn_type @C__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %C__carbon_thunk.ca303d.1: %C__carbon_thunk.type.e78457.1 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.5b5: %i32 = int_value 123 [concrete] +// CHECK:STDOUT: %int_123.2bf: %i32 = int_value 123 [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %ptr.bb2: type = ptr_type bool [concrete] -// CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.2: type = fn_type @C__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %C__carbon_thunk.7c7210.2: %C__carbon_thunk.type.0be6f8.2 = struct_value () [concrete] +// CHECK:STDOUT: %C__carbon_thunk.type.e78457.2: type = fn_type @C__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %C__carbon_thunk.ca303d.2: %C__carbon_thunk.type.e78457.2 = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.de3: = impl_witness imports.%Copy.impl_witness_table.34b [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.de3) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.079: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.022: type = fn_type_with_self_type %Copy.WithSelf.Op.type.079, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.713: = impl_witness imports.%Copy.impl_witness_table.1ff [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.713) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.4a4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.15e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.4a4, %Copy.facet [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: %bool.as.Copy.impl.Op.bound: = bound_method %true, %bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %.e3b: ref bool = temporary invalid, %true [concrete] // CHECK:STDOUT: %addr: %ptr.bb2 = addr_of %.e3b [concrete] -// CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.3: type = fn_type @C__carbon_thunk.3 [concrete] -// CHECK:STDOUT: %C__carbon_thunk.7c7210.3: %C__carbon_thunk.type.0be6f8.3 = struct_value () [concrete] +// CHECK:STDOUT: %C__carbon_thunk.type.e78457.3: type = fn_type @C__carbon_thunk.3 [concrete] +// CHECK:STDOUT: %C__carbon_thunk.ca303d.3: %C__carbon_thunk.type.e78457.3 = 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: } @@ -812,21 +812,21 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete = constants.%C.C.cpp_overload_set.value] -// CHECK:STDOUT: %C__carbon_thunk.decl.5bf927.1: %C__carbon_thunk.type.0be6f8.1 = fn_decl @C__carbon_thunk.1 [concrete = constants.%C__carbon_thunk.7c7210.1] { +// CHECK:STDOUT: %C__carbon_thunk.decl.abd9a2.1: %C__carbon_thunk.type.e78457.1 = fn_decl @C__carbon_thunk.1 [concrete = constants.%C__carbon_thunk.ca303d.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %C__carbon_thunk.decl.5bf927.2: %C__carbon_thunk.type.0be6f8.2 = fn_decl @C__carbon_thunk.2 [concrete = constants.%C__carbon_thunk.7c7210.2] { +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %C__carbon_thunk.decl.abd9a2.2: %C__carbon_thunk.type.e78457.2 = fn_decl @C__carbon_thunk.2 [concrete = constants.%C__carbon_thunk.ca303d.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.f63: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.34b = impl_witness_table (%Core.import_ref.f63), @bool.as.Copy.impl [concrete] -// CHECK:STDOUT: %C__carbon_thunk.decl.5bf927.3: %C__carbon_thunk.type.0be6f8.3 = fn_decl @C__carbon_thunk.3 [concrete = constants.%C__carbon_thunk.7c7210.3] { +// CHECK:STDOUT: %Core.import_ref.9c3: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.1ff = impl_witness_table (%Core.import_ref.9c3), @bool.as.Copy.impl [concrete] +// CHECK:STDOUT: %C__carbon_thunk.decl.abd9a2.3: %C__carbon_thunk.type.e78457.3 = fn_decl @C__carbon_thunk.3 [concrete = constants.%C__carbon_thunk.ca303d.3] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -836,8 +836,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.479 = ref_binding_pattern c1 [concrete] -// CHECK:STDOUT: %c1.var_patt: %pattern_type.479 = var_pattern %c1.patt [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.bbc = ref_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.var_patt: %pattern_type.bbc = var_pattern %c1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.var: ref %C = var %c1.var_patt // CHECK:STDOUT: %Cpp.ref.loc8_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -845,15 +845,15 @@ fn F() { // CHECK:STDOUT: %C.ref.loc8_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %int_123: Core.IntLiteral = int_value 123 [concrete = constants.%int_123.fff] // CHECK:STDOUT: %.loc8_3: ref %C = splice_block %c1.var {} -// CHECK:STDOUT: %impl.elem0.loc8: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc8: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_27.1: = bound_method %int_123, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_27.2: = bound_method %int_123, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_27.2(%int_123) [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %.loc8_27.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %.loc8_27.2: %i32 = converted %int_123, %.loc8_27.1 [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_3 -// CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.1(%.loc8_27.2, %addr.loc8) +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_27.2(%int_123) [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %.loc8_27.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %.loc8_27.2: %i32 = converted %int_123, %.loc8_27.1 [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %addr.loc8: %ptr.0a2 = addr_of %.loc8_3 +// CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.abd9a2.1(%.loc8_27.2, %addr.loc8) // CHECK:STDOUT: %.loc8_30: init %C to %.loc8_3 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: assign %c1.var, %.loc8_30 // CHECK:STDOUT: %.loc8_14: type = splice_block %C.ref.loc8_14 [concrete = constants.%C] { @@ -862,8 +862,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c1: ref %C = ref_binding c1, %c1.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.479 = ref_binding_pattern c2 [concrete] -// CHECK:STDOUT: %c2.var_patt: %pattern_type.479 = var_pattern %c2.patt [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.bbc = ref_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.var_patt: %pattern_type.bbc = var_pattern %c2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c2.var: ref %C = var %c2.var_patt // CHECK:STDOUT: %Cpp.ref.loc9_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -871,14 +871,14 @@ fn F() { // CHECK:STDOUT: %C.ref.loc9_31: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %.loc9_3: ref %C = splice_block %c2.var {} -// CHECK:STDOUT: %impl.elem0.loc9: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc9: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc9: = bound_method %true, %impl.elem0.loc9 [concrete = constants.%bool.as.Copy.impl.Op.bound] // CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method.loc9(%true) [concrete = constants.%true] // CHECK:STDOUT: %.loc9_34.1: ref bool = temporary_storage // CHECK:STDOUT: %.loc9_34.2: ref bool = temporary %.loc9_34.1, %bool.as.Copy.impl.Op.call [concrete = constants.%.e3b] // CHECK:STDOUT: %addr.loc9_38.1: %ptr.bb2 = addr_of %.loc9_34.2 [concrete = constants.%addr] -// CHECK:STDOUT: %addr.loc9_38.2: %ptr.3a8 = addr_of %.loc9_3 -// CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.2(%addr.loc9_38.1, %addr.loc9_38.2) +// CHECK:STDOUT: %addr.loc9_38.2: %ptr.0a2 = addr_of %.loc9_3 +// CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.abd9a2.2(%addr.loc9_38.1, %addr.loc9_38.2) // CHECK:STDOUT: %.loc9_38: init %C to %.loc9_3 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: assign %c2.var, %.loc9_38 // CHECK:STDOUT: %.loc9_21: type = splice_block %C.ref.loc9_21 [concrete = constants.%C] { @@ -887,18 +887,18 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c2: ref %C = ref_binding c2, %c2.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.479 = ref_binding_pattern c3 [concrete] -// CHECK:STDOUT: %c3.var_patt: %pattern_type.479 = var_pattern %c3.patt [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.bbc = ref_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.var_patt: %pattern_type.bbc = var_pattern %c3.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c3.var: ref %C = var %c3.var_patt // CHECK:STDOUT: %Cpp.ref.loc10_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc10_29: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc10_31: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %c1.ref: ref %C = name_ref c1, %c1 -// CHECK:STDOUT: %addr.loc10_34: %ptr.3a8 = addr_of %c1.ref +// CHECK:STDOUT: %addr.loc10_34: %ptr.0a2 = addr_of %c1.ref // CHECK:STDOUT: %.loc10_3: ref %C = splice_block %c3.var {} -// CHECK:STDOUT: %addr.loc10_37: %ptr.3a8 = addr_of %.loc10_3 -// CHECK:STDOUT: %C__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.3(%addr.loc10_34, %addr.loc10_37) +// CHECK:STDOUT: %addr.loc10_37: %ptr.0a2 = addr_of %.loc10_3 +// CHECK:STDOUT: %C__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.abd9a2.3(%addr.loc10_34, %addr.loc10_37) // CHECK:STDOUT: %.loc10_37: init %C to %.loc10_3 = mark_in_place_init %C__carbon_thunk.call.loc10 // CHECK:STDOUT: assign %c3.var, %.loc10_37 // CHECK:STDOUT: %.loc10_21: type = splice_block %C.ref.loc10_21 [concrete = constants.%C] { @@ -922,41 +922,41 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.bbc: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %int_8.b85: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_8.b85, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.ebc: = bound_method %int_8.b85, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_8.1c2: %i32 = int_value 8 [concrete] -// CHECK:STDOUT: %As.type.c00: type = facet_type <@As, @As(%i32)> [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.54d: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.421: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.978: %Core.IntLiteral.as.As.impl.Convert.type.421 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.c00 = facet_value Core.IntLiteral, (%As.impl_witness.54d) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.f0c: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] -// CHECK:STDOUT: %.c18: type = fn_type_with_self_type %As.WithSelf.Convert.type.f0c, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.978 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.978, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.f38: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_8.b85, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.01f: = bound_method %int_8.b85, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_8.9cf: %i32 = int_value 8 [concrete] +// CHECK:STDOUT: %As.type.155: type = facet_type <@As, @As(%i32)> [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.03e: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.e79: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.8a4: %Core.IntLiteral.as.As.impl.Convert.type.e79 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.155 = facet_value Core.IntLiteral, (%As.impl_witness.03e) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.8ea: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] +// CHECK:STDOUT: %.fbc: type = fn_type_with_self_type %As.WithSelf.Convert.type.8ea, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.8a4 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.8a4, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.07f: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.specific_fn [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: } @@ -973,30 +973,30 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.479 = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.bbc = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_29: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_31: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %int_8.loc8: Core.IntLiteral = int_value 8 [concrete = constants.%int_8.b85] // CHECK:STDOUT: %.loc8_35.1: ref %C = temporary_storage -// CHECK:STDOUT: %impl.elem0.loc8: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc8: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_34.1: = bound_method %int_8.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_34.2: = bound_method %int_8.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.ebc] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_34.2(%int_8.loc8) [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %.loc8_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %.loc8_34.2: %i32 = converted %int_8.loc8, %.loc8_34.1 [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_35.1 +// CHECK:STDOUT: %bound_method.loc8_34.2: = bound_method %int_8.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.01f] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_34.2(%int_8.loc8) [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %.loc8_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %.loc8_34.2: %i32 = converted %int_8.loc8, %.loc8_34.1 [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %addr.loc8: %ptr.0a2 = addr_of %.loc8_35.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%.loc8_34.2, %addr.loc8) // CHECK:STDOUT: %.loc8_35.2: init %C to %.loc8_35.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_21: type = splice_block %C.ref.loc8_21 [concrete = constants.%C] { @@ -1007,23 +1007,23 @@ fn F() { // CHECK:STDOUT: %.loc8_35.4: %C = acquire_value %.loc8_35.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_35.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.479 = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.bbc = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_8.loc9: Core.IntLiteral = int_value 8 [concrete = constants.%int_8.b85] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc9: %.c18 = impl_witness_access constants.%As.impl_witness.54d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.978] +// CHECK:STDOUT: %impl.elem0.loc9: %.fbc = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.8a4] // CHECK:STDOUT: %bound_method.loc9_28.1: = bound_method %int_8.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_28.2: = bound_method %int_8.loc9, %specific_fn.loc9 [concrete = constants.%bound_method.f38] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc9_28.2(%int_8.loc9) [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %.loc9_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %.loc9_28.2: %i32 = converted %int_8.loc9, %.loc9_28.1 [concrete = constants.%int_8.1c2] +// CHECK:STDOUT: %bound_method.loc9_28.2: = bound_method %int_8.loc9, %specific_fn.loc9 [concrete = constants.%bound_method.07f] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc9_28.2(%int_8.loc9) [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %.loc9_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %.loc9_28.2: %i32 = converted %int_8.loc9, %.loc9_28.1 [concrete = constants.%int_8.9cf] // CHECK:STDOUT: %.loc9_21: type = splice_block %C.ref.loc9 [concrete = constants.%C] { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc9: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc9_28.3: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc9: %ptr.3a8 = addr_of %.loc9_28.3 +// CHECK:STDOUT: %addr.loc9: %ptr.0a2 = addr_of %.loc9_28.3 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%.loc9_28.2, %addr.loc9) // CHECK:STDOUT: %.loc9_28.4: init %C to %.loc9_28.3 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_28.5: init %C = converted %.loc9_28.2, %.loc9_28.4 @@ -1042,47 +1042,47 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.bbc: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %int_8.b85: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %int_9.988: Core.IntLiteral = int_value 9 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.1: type = fn_type @C__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %C__carbon_thunk.7c7210.1: %C__carbon_thunk.type.0be6f8.1 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] +// CHECK:STDOUT: %C__carbon_thunk.type.e78457.1: type = fn_type @C__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %C__carbon_thunk.ca303d.1: %C__carbon_thunk.type.e78457.1 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.748: = bound_method %int_8.b85, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.ebc: = bound_method %int_8.b85, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_8.1c2: %i32 = int_value 8 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aba: = bound_method %int_9.988, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.50b: = bound_method %int_9.988, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_9.7e6: %i32 = int_value 9 [concrete] -// CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.2: type = fn_type @C__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %C__carbon_thunk.7c7210.2: %C__carbon_thunk.type.0be6f8.2 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.c00: type = facet_type <@As, @As(%i32)> [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.54d: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.421: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.978: %Core.IntLiteral.as.As.impl.Convert.type.421 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.c00 = facet_value Core.IntLiteral, (%As.impl_witness.54d) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.f0c: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] -// CHECK:STDOUT: %.c18: type = fn_type_with_self_type %As.WithSelf.Convert.type.f0c, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.978 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.978, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.f38: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9dd: = bound_method %int_8.b85, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.01f: = bound_method %int_8.b85, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_8.9cf: %i32 = int_value 8 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f46: = bound_method %int_9.988, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %bound_method.9bf: = bound_method %int_9.988, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_9.056: %i32 = int_value 9 [concrete] +// CHECK:STDOUT: %C__carbon_thunk.type.e78457.2: type = fn_type @C__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %C__carbon_thunk.ca303d.2: %C__carbon_thunk.type.e78457.2 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.155: type = facet_type <@As, @As(%i32)> [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.03e: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.e79: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.8a4: %Core.IntLiteral.as.As.impl.Convert.type.e79 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.155 = facet_value Core.IntLiteral, (%As.impl_witness.03e) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.8ea: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] +// CHECK:STDOUT: %.fbc: type = fn_type_with_self_type %As.WithSelf.Convert.type.8ea, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.8a4 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.8a4, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.07f: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.specific_fn [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: } @@ -1094,26 +1094,26 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete = constants.%C.C.cpp_overload_set.value] -// CHECK:STDOUT: %C__carbon_thunk.decl.5bf927.1: %C__carbon_thunk.type.0be6f8.1 = fn_decl @C__carbon_thunk.1 [concrete = constants.%C__carbon_thunk.7c7210.1] { +// CHECK:STDOUT: %C__carbon_thunk.decl.abd9a2.1: %C__carbon_thunk.type.e78457.1 = fn_decl @C__carbon_thunk.1 [concrete = constants.%C__carbon_thunk.ca303d.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %C__carbon_thunk.decl.5bf927.2: %C__carbon_thunk.type.0be6f8.2 = fn_decl @C__carbon_thunk.2 [concrete = constants.%C__carbon_thunk.7c7210.2] { +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %C__carbon_thunk.decl.abd9a2.2: %C__carbon_thunk.type.e78457.2 = fn_decl @C__carbon_thunk.2 [concrete = constants.%C__carbon_thunk.ca303d.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.479 = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.bbc = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_29: type = name_ref C, imports.%C.decl [concrete = constants.%C] @@ -1121,22 +1121,22 @@ fn F() { // CHECK:STDOUT: %int_8.loc8: Core.IntLiteral = int_value 8 [concrete = constants.%int_8.b85] // CHECK:STDOUT: %int_9: Core.IntLiteral = int_value 9 [concrete = constants.%int_9.988] // CHECK:STDOUT: %.loc8_38.1: ref %C = temporary_storage -// CHECK:STDOUT: %impl.elem0.loc8_34: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_34.1: = bound_method %int_8.loc8, %impl.elem0.loc8_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.748] +// CHECK:STDOUT: %impl.elem0.loc8_34: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_34.1: = bound_method %int_8.loc8, %impl.elem0.loc8_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9dd] // CHECK:STDOUT: %specific_fn.loc8_34: = specific_function %impl.elem0.loc8_34, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_34.2: = bound_method %int_8.loc8, %specific_fn.loc8_34 [concrete = constants.%bound_method.ebc] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_34: init %i32 = call %bound_method.loc8_34.2(%int_8.loc8) [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %.loc8_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_34 [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %.loc8_34.2: %i32 = converted %int_8.loc8, %.loc8_34.1 [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %impl.elem0.loc8_37: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_37.1: = bound_method %int_9, %impl.elem0.loc8_37 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aba] +// CHECK:STDOUT: %bound_method.loc8_34.2: = bound_method %int_8.loc8, %specific_fn.loc8_34 [concrete = constants.%bound_method.01f] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_34: init %i32 = call %bound_method.loc8_34.2(%int_8.loc8) [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %.loc8_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_34 [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %.loc8_34.2: %i32 = converted %int_8.loc8, %.loc8_34.1 [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %impl.elem0.loc8_37: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_37.1: = bound_method %int_9, %impl.elem0.loc8_37 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f46] // CHECK:STDOUT: %specific_fn.loc8_37: = specific_function %impl.elem0.loc8_37, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_37.2: = bound_method %int_9, %specific_fn.loc8_37 [concrete = constants.%bound_method.50b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_37: init %i32 = call %bound_method.loc8_37.2(%int_9) [concrete = constants.%int_9.7e6] -// CHECK:STDOUT: %.loc8_37.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_37 [concrete = constants.%int_9.7e6] -// CHECK:STDOUT: %.loc8_37.2: %i32 = converted %int_9, %.loc8_37.1 [concrete = constants.%int_9.7e6] -// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_38.1 -// CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.1(%.loc8_34.2, %.loc8_37.2, %addr.loc8) +// CHECK:STDOUT: %bound_method.loc8_37.2: = bound_method %int_9, %specific_fn.loc8_37 [concrete = constants.%bound_method.9bf] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_37: init %i32 = call %bound_method.loc8_37.2(%int_9) [concrete = constants.%int_9.056] +// CHECK:STDOUT: %.loc8_37.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_37 [concrete = constants.%int_9.056] +// CHECK:STDOUT: %.loc8_37.2: %i32 = converted %int_9, %.loc8_37.1 [concrete = constants.%int_9.056] +// CHECK:STDOUT: %addr.loc8: %ptr.0a2 = addr_of %.loc8_38.1 +// CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.abd9a2.1(%.loc8_34.2, %.loc8_37.2, %addr.loc8) // CHECK:STDOUT: %.loc8_38.2: init %C to %.loc8_38.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_21: type = splice_block %C.ref.loc8_21 [concrete = constants.%C] { // CHECK:STDOUT: %Cpp.ref.loc8_18: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -1146,22 +1146,22 @@ fn F() { // CHECK:STDOUT: %.loc8_38.4: %C = acquire_value %.loc8_38.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_38.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.479 = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.bbc = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc9_29: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc9_31: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %int_8.loc9: Core.IntLiteral = int_value 8 [concrete = constants.%int_8.b85] // CHECK:STDOUT: %.loc9_35.1: ref %C = temporary_storage -// CHECK:STDOUT: %impl.elem0.loc9: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_34.1: = bound_method %int_8.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.748] +// CHECK:STDOUT: %impl.elem0.loc9: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_34.1: = bound_method %int_8.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9dd] // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_34.2: = bound_method %int_8.loc9, %specific_fn.loc9 [concrete = constants.%bound_method.ebc] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_34.2(%int_8.loc9) [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %.loc9_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %.loc9_34.2: %i32 = converted %int_8.loc9, %.loc9_34.1 [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %addr.loc9: %ptr.3a8 = addr_of %.loc9_35.1 -// CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.2(%.loc9_34.2, %addr.loc9) +// CHECK:STDOUT: %bound_method.loc9_34.2: = bound_method %int_8.loc9, %specific_fn.loc9 [concrete = constants.%bound_method.01f] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_34.2(%int_8.loc9) [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %.loc9_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %.loc9_34.2: %i32 = converted %int_8.loc9, %.loc9_34.1 [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %addr.loc9: %ptr.0a2 = addr_of %.loc9_35.1 +// CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.abd9a2.2(%.loc9_34.2, %addr.loc9) // CHECK:STDOUT: %.loc9_35.2: init %C to %.loc9_35.1 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_21: type = splice_block %C.ref.loc9_21 [concrete = constants.%C] { // CHECK:STDOUT: %Cpp.ref.loc9_18: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -1171,24 +1171,24 @@ fn F() { // CHECK:STDOUT: %.loc9_35.4: %C = acquire_value %.loc9_35.3 // CHECK:STDOUT: %c2: %C = value_binding c2, %.loc9_35.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.479 = value_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.bbc = value_binding_pattern c3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_8.loc10: Core.IntLiteral = int_value 8 [concrete = constants.%int_8.b85] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc10: %.c18 = impl_witness_access constants.%As.impl_witness.54d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.978] +// CHECK:STDOUT: %impl.elem0.loc10: %.fbc = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.8a4] // CHECK:STDOUT: %bound_method.loc10_28.1: = bound_method %int_8.loc10, %impl.elem0.loc10 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_28.2: = bound_method %int_8.loc10, %specific_fn.loc10 [concrete = constants.%bound_method.f38] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc10_28.2(%int_8.loc10) [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %.loc10_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_8.1c2] -// CHECK:STDOUT: %.loc10_28.2: %i32 = converted %int_8.loc10, %.loc10_28.1 [concrete = constants.%int_8.1c2] +// CHECK:STDOUT: %bound_method.loc10_28.2: = bound_method %int_8.loc10, %specific_fn.loc10 [concrete = constants.%bound_method.07f] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc10_28.2(%int_8.loc10) [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %.loc10_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_8.9cf] +// CHECK:STDOUT: %.loc10_28.2: %i32 = converted %int_8.loc10, %.loc10_28.1 [concrete = constants.%int_8.9cf] // CHECK:STDOUT: %.loc10_21: type = splice_block %C.ref.loc10 [concrete = constants.%C] { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc10: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc10_28.3: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc10: %ptr.3a8 = addr_of %.loc10_28.3 -// CHECK:STDOUT: %C__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.2(%.loc10_28.2, %addr.loc10) +// CHECK:STDOUT: %addr.loc10: %ptr.0a2 = addr_of %.loc10_28.3 +// CHECK:STDOUT: %C__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.abd9a2.2(%.loc10_28.2, %addr.loc10) // CHECK:STDOUT: %.loc10_28.4: init %C to %.loc10_28.3 = mark_in_place_init %C__carbon_thunk.call.loc10 // CHECK:STDOUT: %.loc10_28.5: init %C = converted %.loc10_28.2, %.loc10_28.4 // CHECK:STDOUT: %.loc10_28.6: ref %C = temporary %.loc10_28.3, %.loc10_28.5 diff --git a/toolchain/check/testdata/interop/cpp/class/import/field.carbon b/toolchain/check/testdata/interop/cpp/class/import/field.carbon index 93b889942134..b0e4edcfaba8 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/field.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/field.carbon @@ -204,98 +204,98 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %tuple.type.05b: type = tuple_type (%i32, %i32, %i32, %i32, %i32) [concrete] -// CHECK:STDOUT: %Struct.elem.da8: type = unbound_element_type %Struct, %i32 [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Struct.elem.689: type = unbound_element_type %Struct, %ptr.847 [concrete] +// CHECK:STDOUT: %tuple.type.ccd: type = tuple_type (%i32, %i32, %i32, %i32, %i32) [concrete] +// CHECK:STDOUT: %Struct.elem.da9: type = unbound_element_type %Struct, %i32 [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %Struct.elem.905: type = unbound_element_type %Struct, %ptr.d08 [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Optional.Get.type.d22: type = fn_type @Optional.Get, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.Get.6fc: %Optional.Get.type.d22 = struct_value () [symbolic] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Optional.Get.type.bb9: type = fn_type @Optional.Get, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.Get.fa1: %Optional.Get.type.bb9 = struct_value () [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.21f: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.3b3: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.21f) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.d10: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.3b3) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Get.type.e92: type = fn_type @ptr.as.OptionalStorage.impl.Get, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Get.514: %ptr.as.OptionalStorage.impl.Get.type.e92 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalStorage.impl_witness.10f: = impl_witness imports.%OptionalStorage.impl_witness_table.83d, @ptr.as.OptionalStorage.impl(%i32) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.847, (%OptionalStorage.impl_witness.10f) [concrete] -// CHECK:STDOUT: %Optional.17c: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %Struct.elem.e00: type = unbound_element_type %Struct, %Optional.17c [concrete] -// CHECK:STDOUT: %const.3d9: type = const_type %ptr.847 [concrete] -// CHECK:STDOUT: %Struct.elem.80e: type = unbound_element_type %Struct, %const.3d9 [concrete] -// CHECK:STDOUT: %Optional.Get.type.af9: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %Optional.Get.7cb: %Optional.Get.type.af9 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.7cb, @Optional.Get(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.14d: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet.14d [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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: %ptr.as.OptionalStorage.impl.Get.type.196: type = fn_type @ptr.as.OptionalStorage.impl.Get, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Get.147: %ptr.as.OptionalStorage.impl.Get.type.196 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalStorage.impl_witness.faa: = impl_witness imports.%OptionalStorage.impl_witness_table.517, @ptr.as.OptionalStorage.impl(%i32) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.d08, (%OptionalStorage.impl_witness.faa) [concrete] +// CHECK:STDOUT: %Optional.815: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Struct.elem.690: type = unbound_element_type %Struct, %Optional.815 [concrete] +// CHECK:STDOUT: %const.e2a: type = const_type %ptr.d08 [concrete] +// CHECK:STDOUT: %Struct.elem.6a0: type = unbound_element_type %Struct, %const.e2a [concrete] +// CHECK:STDOUT: %Optional.Get.type.e91: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Optional.Get.8af: %Optional.Get.type.e91 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.8af, @Optional.Get(%OptionalStorage.facet) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.987: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet.987 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.702: @Optional.%Optional.Get.type (%Optional.Get.type.d22) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.6fc)] -// CHECK:STDOUT: %Core.import_ref.c1a: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.d10)] -// CHECK:STDOUT: %Core.import_ref.31a = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.97e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.b33 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.1e6: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Get.type (%ptr.as.OptionalStorage.impl.Get.type.e92) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Get (constants.%ptr.as.OptionalStorage.impl.Get.514)] -// CHECK:STDOUT: %Core.import_ref.4ad = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.83d = impl_witness_table (%Core.import_ref.c1a, %Core.import_ref.31a, %Core.import_ref.97e, %Core.import_ref.b33, %Core.import_ref.1e6, %Core.import_ref.4ad), @ptr.as.OptionalStorage.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.497: @Optional.%Optional.Get.type (%Optional.Get.type.bb9) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.fa1)] +// 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.26e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.a6e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.274 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.96f: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Get.type (%ptr.as.OptionalStorage.impl.Get.type.196) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Get (constants.%ptr.as.OptionalStorage.impl.Get.147)] +// CHECK:STDOUT: %Core.import_ref.db3 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.517 = impl_witness_table (%Core.import_ref.509, %Core.import_ref.26e, %Core.import_ref.a6e, %Core.import_ref.274, %Core.import_ref.96f, %Core.import_ref.db3), @ptr.as.OptionalStorage.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%s.param: %Struct) -> out %return.param: %tuple.type.05b { +// CHECK:STDOUT: fn @F(%s.param: %Struct) -> out %return.param: %tuple.type.ccd { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %s.ref.loc8_11: %Struct = name_ref s, %s -// CHECK:STDOUT: %a.ref: %Struct.elem.da8 = name_ref a, @Struct.%.1 [concrete = @Struct.%.1] +// CHECK:STDOUT: %a.ref: %Struct.elem.da9 = name_ref a, @Struct.%.1 [concrete = @Struct.%.1] // CHECK:STDOUT: %.loc8_12.1: ref %i32 = class_element_access %s.ref.loc8_11, element0 // CHECK:STDOUT: %.loc8_12.2: %i32 = acquire_value %.loc8_12.1 // CHECK:STDOUT: %s.ref.loc8_16: %Struct = name_ref s, %s -// CHECK:STDOUT: %b.ref: %Struct.elem.da8 = name_ref b, @Struct.%.2 [concrete = @Struct.%.2] +// CHECK:STDOUT: %b.ref: %Struct.elem.da9 = name_ref b, @Struct.%.2 [concrete = @Struct.%.2] // CHECK:STDOUT: %.loc8_17.1: ref %i32 = class_element_access %s.ref.loc8_16, element1 // CHECK:STDOUT: %.loc8_17.2: %i32 = acquire_value %.loc8_17.1 // CHECK:STDOUT: %s.ref.loc8_22: %Struct = name_ref s, %s -// CHECK:STDOUT: %p.ref: %Struct.elem.689 = name_ref p, @Struct.%.3 [concrete = @Struct.%.3] -// CHECK:STDOUT: %.loc8_23.1: ref %ptr.847 = class_element_access %s.ref.loc8_22, element2 -// CHECK:STDOUT: %.loc8_23.2: %ptr.847 = acquire_value %.loc8_23.1 +// CHECK:STDOUT: %p.ref: %Struct.elem.905 = name_ref p, @Struct.%.3 [concrete = @Struct.%.3] +// CHECK:STDOUT: %.loc8_23.1: ref %ptr.d08 = class_element_access %s.ref.loc8_22, element2 +// CHECK:STDOUT: %.loc8_23.2: %ptr.d08 = acquire_value %.loc8_23.1 // CHECK:STDOUT: %.loc8_21.1: ref %i32 = deref %.loc8_23.2 // CHECK:STDOUT: %s.ref.loc8_28: %Struct = name_ref s, %s -// CHECK:STDOUT: %q.ref: %Struct.elem.e00 = name_ref q, @Struct.%.5 [concrete = @Struct.%.5] -// CHECK:STDOUT: %.loc8_29.1: ref %Optional.17c = class_element_access %s.ref.loc8_28, element3 -// CHECK:STDOUT: %.loc8_29.2: %Optional.17c = acquire_value %.loc8_29.1 -// CHECK:STDOUT: %.loc8_31: %Optional.Get.type.af9 = specific_constant imports.%Core.import_ref.702, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.Get.7cb] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.af9 = name_ref Get, %.loc8_31 [concrete = constants.%Optional.Get.7cb] +// CHECK:STDOUT: %q.ref: %Struct.elem.690 = name_ref q, @Struct.%.5 [concrete = @Struct.%.5] +// CHECK:STDOUT: %.loc8_29.1: ref %Optional.815 = class_element_access %s.ref.loc8_28, element3 +// CHECK:STDOUT: %.loc8_29.2: %Optional.815 = acquire_value %.loc8_29.1 +// CHECK:STDOUT: %.loc8_31: %Optional.Get.type.e91 = specific_constant imports.%Core.import_ref.497, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.Get.8af] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.e91 = name_ref Get, %.loc8_31 [concrete = constants.%Optional.Get.8af] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc8_29.2, %Get.ref // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc8_36: = bound_method %.loc8_29.2, %Optional.Get.specific_fn -// CHECK:STDOUT: %Optional.Get.call: init %ptr.847 = call %bound_method.loc8_36(%.loc8_29.2) -// CHECK:STDOUT: %.loc8_36.1: %ptr.847 = value_of_initializer %Optional.Get.call -// CHECK:STDOUT: %.loc8_36.2: %ptr.847 = converted %Optional.Get.call, %.loc8_36.1 +// CHECK:STDOUT: %Optional.Get.call: init %ptr.d08 = call %bound_method.loc8_36(%.loc8_29.2) +// CHECK:STDOUT: %.loc8_36.1: %ptr.d08 = value_of_initializer %Optional.Get.call +// CHECK:STDOUT: %.loc8_36.2: %ptr.d08 = converted %Optional.Get.call, %.loc8_36.1 // CHECK:STDOUT: %.loc8_27.1: ref %i32 = deref %.loc8_36.2 // CHECK:STDOUT: %s.ref.loc8_40: %Struct = name_ref s, %s -// CHECK:STDOUT: %r.ref: %Struct.elem.80e = name_ref r, @Struct.%.6 [concrete = @Struct.%.6] -// CHECK:STDOUT: %.loc8_41.1: ref %const.3d9 = class_element_access %s.ref.loc8_40, element4 -// CHECK:STDOUT: %.loc8_41.2: %const.3d9 = acquire_value %.loc8_41.1 +// CHECK:STDOUT: %r.ref: %Struct.elem.6a0 = name_ref r, @Struct.%.6 [concrete = @Struct.%.6] +// CHECK:STDOUT: %.loc8_41.1: ref %const.e2a = class_element_access %s.ref.loc8_40, element4 +// CHECK:STDOUT: %.loc8_41.2: %const.e2a = acquire_value %.loc8_41.1 // CHECK:STDOUT: %.loc8_39.1: ref %i32 = deref %.loc8_41.2 -// CHECK:STDOUT: %.loc8_43.1: %tuple.type.05b = tuple_literal (%.loc8_12.2, %.loc8_17.2, %.loc8_21.1, %.loc8_27.1, %.loc8_39.1) -// CHECK:STDOUT: %impl.elem0.loc8_12: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %.loc8_43.1: %tuple.type.ccd = tuple_literal (%.loc8_12.2, %.loc8_17.2, %.loc8_21.1, %.loc8_27.1, %.loc8_39.1) +// CHECK:STDOUT: %impl.elem0.loc8_12: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc8_12.1: = bound_method %.loc8_12.2, %impl.elem0.loc8_12 // CHECK:STDOUT: %specific_fn.loc8_12: = specific_function %impl.elem0.loc8_12, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8_12.2: = bound_method %.loc8_12.2, %specific_fn.loc8_12 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc8_12: init %i32 = call %bound_method.loc8_12.2(%.loc8_12.2) // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %return.param, element0 // CHECK:STDOUT: %.loc8_43.2: init %i32 to %tuple.elem0 = in_place_init %Int.as.Copy.impl.Op.call.loc8_12 -// CHECK:STDOUT: %impl.elem0.loc8_17: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc8_17: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc8_17.1: = bound_method %.loc8_17.2, %impl.elem0.loc8_17 // CHECK:STDOUT: %specific_fn.loc8_17: = specific_function %impl.elem0.loc8_17, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8_17.2: = bound_method %.loc8_17.2, %specific_fn.loc8_17 @@ -303,7 +303,7 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access %return.param, element1 // CHECK:STDOUT: %.loc8_43.3: init %i32 to %tuple.elem1 = in_place_init %Int.as.Copy.impl.Op.call.loc8_17 // CHECK:STDOUT: %.loc8_21.2: %i32 = acquire_value %.loc8_21.1 -// CHECK:STDOUT: %impl.elem0.loc8_21: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc8_21: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc8_21.1: = bound_method %.loc8_21.2, %impl.elem0.loc8_21 // CHECK:STDOUT: %specific_fn.loc8_21: = specific_function %impl.elem0.loc8_21, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8_21.2: = bound_method %.loc8_21.2, %specific_fn.loc8_21 @@ -311,7 +311,7 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: %tuple.elem2: ref %i32 = tuple_access %return.param, element2 // CHECK:STDOUT: %.loc8_43.4: init %i32 to %tuple.elem2 = in_place_init %Int.as.Copy.impl.Op.call.loc8_21 // CHECK:STDOUT: %.loc8_27.2: %i32 = acquire_value %.loc8_27.1 -// CHECK:STDOUT: %impl.elem0.loc8_27: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc8_27: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc8_27.1: = bound_method %.loc8_27.2, %impl.elem0.loc8_27 // CHECK:STDOUT: %specific_fn.loc8_27: = specific_function %impl.elem0.loc8_27, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8_27.2: = bound_method %.loc8_27.2, %specific_fn.loc8_27 @@ -319,15 +319,15 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: %tuple.elem3: ref %i32 = tuple_access %return.param, element3 // CHECK:STDOUT: %.loc8_43.5: init %i32 to %tuple.elem3 = in_place_init %Int.as.Copy.impl.Op.call.loc8_27 // CHECK:STDOUT: %.loc8_39.2: %i32 = acquire_value %.loc8_39.1 -// CHECK:STDOUT: %impl.elem0.loc8_39: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc8_39: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc8_39.1: = bound_method %.loc8_39.2, %impl.elem0.loc8_39 // CHECK:STDOUT: %specific_fn.loc8_39: = specific_function %impl.elem0.loc8_39, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8_39.2: = bound_method %.loc8_39.2, %specific_fn.loc8_39 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc8_39: init %i32 = call %bound_method.loc8_39.2(%.loc8_39.2) // CHECK:STDOUT: %tuple.elem4: ref %i32 = tuple_access %return.param, element4 // CHECK:STDOUT: %.loc8_43.6: init %i32 to %tuple.elem4 = in_place_init %Int.as.Copy.impl.Op.call.loc8_39 -// CHECK:STDOUT: %.loc8_43.7: init %tuple.type.05b to %return.param = tuple_init (%.loc8_43.2, %.loc8_43.3, %.loc8_43.4, %.loc8_43.5, %.loc8_43.6) -// CHECK:STDOUT: %.loc8_44: init %tuple.type.05b = converted %.loc8_43.1, %.loc8_43.7 +// CHECK:STDOUT: %.loc8_43.7: init %tuple.type.ccd to %return.param = tuple_init (%.loc8_43.2, %.loc8_43.3, %.loc8_43.4, %.loc8_43.5, %.loc8_43.6) +// CHECK:STDOUT: %.loc8_44: init %tuple.type.ccd = converted %.loc8_43.1, %.loc8_43.7 // CHECK:STDOUT: return %.loc8_44 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: @@ -338,33 +338,33 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %Union.elem.141: type = unbound_element_type %Union, %i32 [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Union.elem.054: type = unbound_element_type %Union, %ptr.847 [concrete] +// CHECK:STDOUT: %Union.elem.291: type = unbound_element_type %Union, %i32 [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %Union.elem.d1f: type = unbound_element_type %Union, %ptr.d08 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%u.param: %Union) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %u.ref: %Union = name_ref u, %u -// CHECK:STDOUT: %a.ref: %Union.elem.141 = name_ref a, @Union.%.1 [concrete = @Union.%.1] +// CHECK:STDOUT: %a.ref: %Union.elem.291 = name_ref a, @Union.%.1 [concrete = @Union.%.1] // CHECK:STDOUT: %.loc8_11.1: ref %i32 = class_element_access %u.ref, element0 // CHECK:STDOUT: %.loc8_11.2: %i32 = acquire_value %.loc8_11.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %.loc8_11.2, %impl.elem0 // 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.loc8_11.2: = bound_method %.loc8_11.2, %specific_fn @@ -375,10 +375,10 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: fn @G(%u.param: %Union) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %u.ref: %Union = name_ref u, %u -// CHECK:STDOUT: %b.ref: %Union.elem.141 = name_ref b, @Union.%.2 [concrete = @Union.%.2] +// CHECK:STDOUT: %b.ref: %Union.elem.291 = name_ref b, @Union.%.2 [concrete = @Union.%.2] // CHECK:STDOUT: %.loc14_11.1: ref %i32 = class_element_access %u.ref, element1 // CHECK:STDOUT: %.loc14_11.2: %i32 = acquire_value %.loc14_11.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc14_11.1: = bound_method %.loc14_11.2, %impl.elem0 // 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.loc14_11.2: = bound_method %.loc14_11.2, %specific_fn @@ -389,12 +389,12 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: fn @H(%u.param: %Union) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %u.ref: %Union = name_ref u, %u -// CHECK:STDOUT: %p.ref: %Union.elem.054 = name_ref p, @Union.%.3 [concrete = @Union.%.3] -// CHECK:STDOUT: %.loc20_12.1: ref %ptr.847 = class_element_access %u.ref, element2 -// CHECK:STDOUT: %.loc20_12.2: %ptr.847 = acquire_value %.loc20_12.1 +// CHECK:STDOUT: %p.ref: %Union.elem.d1f = name_ref p, @Union.%.3 [concrete = @Union.%.3] +// CHECK:STDOUT: %.loc20_12.1: ref %ptr.d08 = class_element_access %u.ref, element2 +// CHECK:STDOUT: %.loc20_12.2: %ptr.d08 = acquire_value %.loc20_12.1 // CHECK:STDOUT: %.loc20_10.1: ref %i32 = deref %.loc20_12.2 // CHECK:STDOUT: %.loc20_10.2: %i32 = acquire_value %.loc20_10.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc20_10.1: = bound_method %.loc20_10.2, %impl.elem0 // 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.loc20_10.2: = bound_method %.loc20_10.2, %specific_fn @@ -411,22 +411,22 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Struct.elem: type = unbound_element_type %Struct, %i32 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %Union: type = class_type @Union [concrete] // CHECK:STDOUT: %Union.elem: type = unbound_element_type %Union, %i32 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%s.param: %Struct) -> out %return.param: %i32 { @@ -435,7 +435,7 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: %a.ref: %Struct.elem = name_ref a, @Struct.%.1 [concrete = @Struct.%.1] // CHECK:STDOUT: %.loc8_11.1: ref %i32 = class_element_access %s.ref, element0 // CHECK:STDOUT: %.loc8_11.2: %i32 = acquire_value %.loc8_11.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %.loc8_11.2, %impl.elem0 // 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.loc8_11.2: = bound_method %.loc8_11.2, %specific_fn @@ -449,7 +449,7 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: %c.ref: %Union.elem = name_ref c, @Union.%.1 [concrete = @Union.%.1] // CHECK:STDOUT: %.loc14_11.1: ref %i32 = class_element_access %s.ref, element0 // CHECK:STDOUT: %.loc14_11.2: %i32 = acquire_value %.loc14_11.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc14_11.1: = bound_method %.loc14_11.2, %impl.elem0 // 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.loc14_11.2: = bound_method %.loc14_11.2, %specific_fn diff --git a/toolchain/check/testdata/interop/cpp/class/import/method.carbon b/toolchain/check/testdata/interop/cpp/class/import/method.carbon index f4e536b2a23b..bee79f542580 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/method.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/method.carbon @@ -273,7 +273,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.3f7: type = ptr_type %HasQualifiers [concrete] +// CHECK:STDOUT: %ptr.102: type = ptr_type %HasQualifiers [concrete] // CHECK:STDOUT: %HasQualifiers.const_this.cpp_overload_set.type: type = cpp_overload_set_type @HasQualifiers.const_this.cpp_overload_set [concrete] // CHECK:STDOUT: %HasQualifiers.const_this.cpp_overload_set.value: %HasQualifiers.const_this.cpp_overload_set.type = cpp_overload_set_value @HasQualifiers.const_this.cpp_overload_set [concrete] // CHECK:STDOUT: %const_this__carbon_thunk.type: type = fn_type @const_this__carbon_thunk [concrete] @@ -288,14 +288,14 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %const_ref_ref_this__carbon_thunk: %const_ref_ref_this__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %HasQualifiers.plain.cpp_overload_set.type: type = cpp_overload_set_type @HasQualifiers.plain.cpp_overload_set [concrete] // CHECK:STDOUT: %HasQualifiers.plain.cpp_overload_set.value: %HasQualifiers.plain.cpp_overload_set.type = cpp_overload_set_value @HasQualifiers.plain.cpp_overload_set [concrete] -// CHECK:STDOUT: %HasQualifiers.plain.type.9f8225.1: type = fn_type @HasQualifiers.plain.1 [concrete] -// CHECK:STDOUT: %HasQualifiers.plain.64d408.1: %HasQualifiers.plain.type.9f8225.1 = struct_value () [concrete] +// CHECK:STDOUT: %HasQualifiers.plain.type.99c640.1: type = fn_type @HasQualifiers.plain.1 [concrete] +// CHECK:STDOUT: %HasQualifiers.plain.cdd9ec.1: %HasQualifiers.plain.type.99c640.1 = struct_value () [concrete] // CHECK:STDOUT: %HasQualifiers.ref_this.cpp_overload_set.type: type = cpp_overload_set_type @HasQualifiers.ref_this.cpp_overload_set [concrete] // CHECK:STDOUT: %HasQualifiers.ref_this.cpp_overload_set.value: %HasQualifiers.ref_this.cpp_overload_set.type = cpp_overload_set_value @HasQualifiers.ref_this.cpp_overload_set [concrete] // CHECK:STDOUT: %HasQualifiers.ref_this.type: type = fn_type @HasQualifiers.ref_this [concrete] // CHECK:STDOUT: %HasQualifiers.ref_this: %HasQualifiers.ref_this.type = struct_value () [concrete] -// CHECK:STDOUT: %HasQualifiers.plain.type.9f8225.2: type = fn_type @HasQualifiers.plain.2 [concrete] -// CHECK:STDOUT: %HasQualifiers.plain.64d408.2: %HasQualifiers.plain.type.9f8225.2 = struct_value () [concrete] +// CHECK:STDOUT: %HasQualifiers.plain.type.99c640.2: type = fn_type @HasQualifiers.plain.2 [concrete] +// CHECK:STDOUT: %HasQualifiers.plain.cdd9ec.2: %HasQualifiers.plain.type.99c640.2 = struct_value () [concrete] // CHECK:STDOUT: %HasQualifiers.ref_ref_this.cpp_overload_set.type: type = cpp_overload_set_type @HasQualifiers.ref_ref_this.cpp_overload_set [concrete] // CHECK:STDOUT: %HasQualifiers.ref_ref_this.cpp_overload_set.value: %HasQualifiers.ref_ref_this.cpp_overload_set.type = cpp_overload_set_value @HasQualifiers.ref_ref_this.cpp_overload_set [concrete] // CHECK:STDOUT: %ref_ref_this__carbon_thunk.type: type = fn_type @ref_ref_this__carbon_thunk [concrete] @@ -303,20 +303,20 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %HasQualifiers.HasQualifiers.type: type = fn_type @HasQualifiers.HasQualifiers [concrete] // CHECK:STDOUT: %HasQualifiers.HasQualifiers: %HasQualifiers.HasQualifiers.type = struct_value () [concrete] -// CHECK:STDOUT: %const.0c0: type = const_type %HasQualifiers [concrete] -// CHECK:STDOUT: %ptr.aa5: type = ptr_type %const.0c0 [concrete] +// CHECK:STDOUT: %const.ba8: type = const_type %HasQualifiers [concrete] +// CHECK:STDOUT: %ptr.e71: type = ptr_type %const.ba8 [concrete] // CHECK:STDOUT: %HasQualifiers__carbon_thunk.type: type = fn_type @HasQualifiers__carbon_thunk [concrete] // CHECK:STDOUT: %HasQualifiers__carbon_thunk: %HasQualifiers__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %HasQualifiers.Op.type.43d658.1: type = fn_type @HasQualifiers.Op.1 [concrete] -// CHECK:STDOUT: %HasQualifiers.Op.cc70d5.1: %HasQualifiers.Op.type.43d658.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b05: = custom_witness (%HasQualifiers.Op.cc70d5.1), @Copy [concrete] -// CHECK:STDOUT: %Copy.facet.0ed: %Copy.type = facet_value %HasQualifiers, (%custom_witness.b05) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.8f4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.0ed) [concrete] -// CHECK:STDOUT: %.a30: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8f4, %Copy.facet.0ed [concrete] +// CHECK:STDOUT: %HasQualifiers.Op.type.83af6e.1: type = fn_type @HasQualifiers.Op.1 [concrete] +// CHECK:STDOUT: %HasQualifiers.Op.4dca31.1: %HasQualifiers.Op.type.83af6e.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.d0d: = custom_witness (%HasQualifiers.Op.4dca31.1), @Copy [concrete] +// CHECK:STDOUT: %Copy.facet.11b: %Copy.type = facet_value %HasQualifiers, (%custom_witness.d0d) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.033: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.11b) [concrete] +// CHECK:STDOUT: %.703: type = fn_type_with_self_type %Copy.WithSelf.Op.type.033, %Copy.facet.11b [concrete] // CHECK:STDOUT: %HasQualifiers.cpp_destructor.type: type = fn_type @HasQualifiers.cpp_destructor [concrete] // CHECK:STDOUT: %HasQualifiers.cpp_destructor: %HasQualifiers.cpp_destructor.type = struct_value () [concrete] -// CHECK:STDOUT: %HasQualifiers.Op.type.43d658.2: type = fn_type @HasQualifiers.Op.2 [concrete] -// CHECK:STDOUT: %HasQualifiers.Op.cc70d5.2: %HasQualifiers.Op.type.43d658.2 = struct_value () [concrete] +// CHECK:STDOUT: %HasQualifiers.Op.type.83af6e.2: type = fn_type @HasQualifiers.Op.2 [concrete] +// CHECK:STDOUT: %HasQualifiers.Op.4dca31.2: %HasQualifiers.Op.type.83af6e.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -339,7 +339,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %HasQualifiers.plain.cpp_overload_set.value: %HasQualifiers.plain.cpp_overload_set.type = cpp_overload_set_value @HasQualifiers.plain.cpp_overload_set [concrete = constants.%HasQualifiers.plain.cpp_overload_set.value] -// CHECK:STDOUT: %HasQualifiers.plain.decl.3a93fc.1: %HasQualifiers.plain.type.9f8225.1 = fn_decl @HasQualifiers.plain.1 [concrete = constants.%HasQualifiers.plain.64d408.1] { +// CHECK:STDOUT: %HasQualifiers.plain.decl.3d4ba8.1: %HasQualifiers.plain.type.99c640.1 = fn_decl @HasQualifiers.plain.1 [concrete = constants.%HasQualifiers.plain.cdd9ec.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -350,7 +350,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %HasQualifiers.plain.decl.3a93fc.2: %HasQualifiers.plain.type.9f8225.2 = fn_decl @HasQualifiers.plain.2 [concrete = constants.%HasQualifiers.plain.64d408.2] { +// CHECK:STDOUT: %HasQualifiers.plain.decl.3d4ba8.2: %HasQualifiers.plain.type.99c640.2 = fn_decl @HasQualifiers.plain.2 [concrete = constants.%HasQualifiers.plain.cdd9ec.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -378,7 +378,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%v.param: %HasQualifiers, %p.param: %ptr.3f7) { +// CHECK:STDOUT: fn @F(%v.param: %HasQualifiers, %p.param: %ptr.102) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %v.ref.loc10: %HasQualifiers = name_ref v, %v // CHECK:STDOUT: %const_this.ref.loc10: %HasQualifiers.const_this.cpp_overload_set.type = name_ref const_this, imports.%HasQualifiers.const_this.cpp_overload_set.value [concrete = constants.%HasQualifiers.const_this.cpp_overload_set.value] @@ -392,23 +392,23 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %const_ref_ref_this.ref.loc12: %HasQualifiers.const_ref_ref_this.cpp_overload_set.type = name_ref const_ref_ref_this, imports.%HasQualifiers.const_ref_ref_this.cpp_overload_set.value [concrete = constants.%HasQualifiers.const_ref_ref_this.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc12: = bound_method %v.ref.loc12, %const_ref_ref_this.ref.loc12 // CHECK:STDOUT: %const_ref_ref_this__carbon_thunk.call.loc12: init %empty_tuple.type = call imports.%const_ref_ref_this__carbon_thunk.decl(%v.ref.loc12) -// CHECK:STDOUT: %p.ref.loc14: %ptr.3f7 = name_ref p, %p +// CHECK:STDOUT: %p.ref.loc14: %ptr.102 = name_ref p, %p // CHECK:STDOUT: %.loc14: ref %HasQualifiers = deref %p.ref.loc14 // CHECK:STDOUT: %plain.ref.loc14: %HasQualifiers.plain.cpp_overload_set.type = name_ref plain, imports.%HasQualifiers.plain.cpp_overload_set.value [concrete = constants.%HasQualifiers.plain.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc14: = bound_method %.loc14, %plain.ref.loc14 -// CHECK:STDOUT: %HasQualifiers.plain.call.loc14: init %empty_tuple.type = call imports.%HasQualifiers.plain.decl.3a93fc.1(%.loc14) -// CHECK:STDOUT: %p.ref.loc15: %ptr.3f7 = name_ref p, %p +// CHECK:STDOUT: %HasQualifiers.plain.call.loc14: init %empty_tuple.type = call imports.%HasQualifiers.plain.decl.3d4ba8.1(%.loc14) +// CHECK:STDOUT: %p.ref.loc15: %ptr.102 = name_ref p, %p // CHECK:STDOUT: %.loc15: ref %HasQualifiers = deref %p.ref.loc15 // CHECK:STDOUT: %ref_this.ref: %HasQualifiers.ref_this.cpp_overload_set.type = name_ref ref_this, imports.%HasQualifiers.ref_this.cpp_overload_set.value [concrete = constants.%HasQualifiers.ref_this.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc15: = bound_method %.loc15, %ref_this.ref // CHECK:STDOUT: %HasQualifiers.ref_this.call: init %empty_tuple.type = call imports.%HasQualifiers.ref_this.decl(%.loc15) -// CHECK:STDOUT: %p.ref.loc16: %ptr.3f7 = name_ref p, %p +// CHECK:STDOUT: %p.ref.loc16: %ptr.102 = name_ref p, %p // CHECK:STDOUT: %.loc16_4.1: ref %HasQualifiers = deref %p.ref.loc16 // CHECK:STDOUT: %const_this.ref.loc16: %HasQualifiers.const_this.cpp_overload_set.type = name_ref const_this, imports.%HasQualifiers.const_this.cpp_overload_set.value [concrete = constants.%HasQualifiers.const_this.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc16: = bound_method %.loc16_4.1, %const_this.ref.loc16 // CHECK:STDOUT: %.loc16_4.2: %HasQualifiers = acquire_value %.loc16_4.1 // CHECK:STDOUT: %const_this__carbon_thunk.call.loc16: init %empty_tuple.type = call imports.%const_this__carbon_thunk.decl(%.loc16_4.2) -// CHECK:STDOUT: %p.ref.loc17: %ptr.3f7 = name_ref p, %p +// CHECK:STDOUT: %p.ref.loc17: %ptr.102 = name_ref p, %p // CHECK:STDOUT: %.loc17_4.1: ref %HasQualifiers = deref %p.ref.loc17 // CHECK:STDOUT: %const_ref_this.ref.loc17: %HasQualifiers.const_ref_this.cpp_overload_set.type = name_ref const_ref_this, imports.%HasQualifiers.const_ref_this.cpp_overload_set.value [concrete = constants.%HasQualifiers.const_ref_this.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc17: = bound_method %.loc17_4.1, %const_ref_this.ref.loc17 @@ -421,7 +421,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %plain.ref.loc19: %HasQualifiers.plain.cpp_overload_set.type = name_ref plain, imports.%HasQualifiers.plain.cpp_overload_set.value [concrete = constants.%HasQualifiers.plain.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc19: = bound_method %.loc19_8.2, %plain.ref.loc19 // CHECK:STDOUT: %.loc19_8.3: %HasQualifiers = acquire_value %.loc19_8.2 -// CHECK:STDOUT: %HasQualifiers.plain.call.loc19: init %empty_tuple.type = call imports.%HasQualifiers.plain.decl.3a93fc.2(%.loc19_8.3) +// CHECK:STDOUT: %HasQualifiers.plain.call.loc19: init %empty_tuple.type = call imports.%HasQualifiers.plain.decl.3d4ba8.2(%.loc19_8.3) // CHECK:STDOUT: %Make.ref.loc20: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make] // CHECK:STDOUT: %.loc20_8.1: ref %HasQualifiers = temporary_storage // CHECK:STDOUT: %Make.call.loc20: init %HasQualifiers to %.loc20_8.1 = call %Make.ref.loc20() @@ -446,16 +446,16 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %bound_method.loc22_9: = bound_method %.loc22_8.2, %ref_ref_this.ref // CHECK:STDOUT: %.loc22_8.3: %HasQualifiers = acquire_value %.loc22_8.2 // CHECK:STDOUT: -// CHECK:STDOUT: %impl.elem0.loc22: %.a30 = impl_witness_access constants.%custom_witness.b05, element0 [concrete = constants.%HasQualifiers.Op.cc70d5.1] +// CHECK:STDOUT: %impl.elem0.loc22: %.703 = impl_witness_access constants.%custom_witness.d0d, element0 [concrete = constants.%HasQualifiers.Op.4dca31.1] // CHECK:STDOUT: %bound_method.loc22_8: = bound_method %.loc22_8.3, %impl.elem0.loc22 // CHECK:STDOUT: %.loc22_8.4: ref %HasQualifiers = temporary_storage // CHECK:STDOUT: %Op.ref.loc22_8.1: %HasQualifiers.HasQualifiers.type = name_ref Op, imports.%HasQualifiers.HasQualifiers.decl [concrete = constants.%HasQualifiers.HasQualifiers] // CHECK:STDOUT: // CHECK:STDOUT: %.loc22_8.5: ref %HasQualifiers = value_as_ref %.loc22_8.3 -// CHECK:STDOUT: %addr.loc22_8.1: %ptr.3f7 = addr_of %.loc22_8.5 -// CHECK:STDOUT: %.loc22_8.6: %ptr.aa5 = as_compatible %addr.loc22_8.1 -// CHECK:STDOUT: %.loc22_8.7: %ptr.aa5 = converted %addr.loc22_8.1, %.loc22_8.6 -// CHECK:STDOUT: %addr.loc22_8.2: %ptr.3f7 = addr_of %self.var +// CHECK:STDOUT: %addr.loc22_8.1: %ptr.102 = addr_of %.loc22_8.5 +// CHECK:STDOUT: %.loc22_8.6: %ptr.e71 = as_compatible %addr.loc22_8.1 +// CHECK:STDOUT: %.loc22_8.7: %ptr.e71 = converted %addr.loc22_8.1, %.loc22_8.6 +// CHECK:STDOUT: %addr.loc22_8.2: %ptr.102 = addr_of %self.var // CHECK:STDOUT: %HasQualifiers__carbon_thunk.call: init %empty_tuple.type = call imports.%HasQualifiers__carbon_thunk.decl(%.loc22_8.7, %addr.loc22_8.2) // CHECK:STDOUT: %.loc22_8.8: init %HasQualifiers to %self.var = mark_in_place_init %HasQualifiers__carbon_thunk.call // CHECK:STDOUT: @@ -469,24 +469,24 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %.loc23_8.3: %HasQualifiers = acquire_value %.loc23_8.2 // CHECK:STDOUT: %const_ref_ref_this__carbon_thunk.call.loc23: init %empty_tuple.type = call imports.%const_ref_ref_this__carbon_thunk.decl(%.loc23_8.3) // CHECK:STDOUT: -// CHECK:STDOUT: %HasQualifiers.Op.bound.loc23: = bound_method %.loc23_8.2, constants.%HasQualifiers.Op.cc70d5.2 +// CHECK:STDOUT: %HasQualifiers.Op.bound.loc23: = bound_method %.loc23_8.2, constants.%HasQualifiers.Op.4dca31.2 // CHECK:STDOUT: %Op.ref.loc23: %HasQualifiers.cpp_destructor.type = name_ref Op, imports.%HasQualifiers.cpp_destructor.decl [concrete = constants.%HasQualifiers.cpp_destructor] // CHECK:STDOUT: %HasQualifiers.cpp_destructor.bound.loc23: = bound_method %.loc23_8.2, %Op.ref.loc23 // CHECK:STDOUT: %HasQualifiers.cpp_destructor.call.loc23: init %empty_tuple.type = call %HasQualifiers.cpp_destructor.bound.loc23(%.loc23_8.2) // CHECK:STDOUT: -// CHECK:STDOUT: %HasQualifiers.Op.bound.loc22: = bound_method %.loc22_8.2, constants.%HasQualifiers.Op.cc70d5.2 +// CHECK:STDOUT: %HasQualifiers.Op.bound.loc22: = bound_method %.loc22_8.2, constants.%HasQualifiers.Op.4dca31.2 // CHECK:STDOUT: %Op.ref.loc22_8.2: %HasQualifiers.cpp_destructor.type = name_ref Op, imports.%HasQualifiers.cpp_destructor.decl [concrete = constants.%HasQualifiers.cpp_destructor] // CHECK:STDOUT: %HasQualifiers.cpp_destructor.bound.loc22: = bound_method %.loc22_8.2, %Op.ref.loc22_8.2 // CHECK:STDOUT: %HasQualifiers.cpp_destructor.call.loc22: init %empty_tuple.type = call %HasQualifiers.cpp_destructor.bound.loc22(%.loc22_8.2) -// CHECK:STDOUT: %HasQualifiers.Op.bound.loc21: = bound_method %.loc21_8.2, constants.%HasQualifiers.Op.cc70d5.2 +// CHECK:STDOUT: %HasQualifiers.Op.bound.loc21: = bound_method %.loc21_8.2, constants.%HasQualifiers.Op.4dca31.2 // CHECK:STDOUT: %Op.ref.loc21: %HasQualifiers.cpp_destructor.type = name_ref Op, imports.%HasQualifiers.cpp_destructor.decl [concrete = constants.%HasQualifiers.cpp_destructor] // CHECK:STDOUT: %HasQualifiers.cpp_destructor.bound.loc21: = bound_method %.loc21_8.2, %Op.ref.loc21 // CHECK:STDOUT: %HasQualifiers.cpp_destructor.call.loc21: init %empty_tuple.type = call %HasQualifiers.cpp_destructor.bound.loc21(%.loc21_8.2) -// CHECK:STDOUT: %HasQualifiers.Op.bound.loc20: = bound_method %.loc20_8.2, constants.%HasQualifiers.Op.cc70d5.2 +// CHECK:STDOUT: %HasQualifiers.Op.bound.loc20: = bound_method %.loc20_8.2, constants.%HasQualifiers.Op.4dca31.2 // CHECK:STDOUT: %Op.ref.loc20: %HasQualifiers.cpp_destructor.type = name_ref Op, imports.%HasQualifiers.cpp_destructor.decl [concrete = constants.%HasQualifiers.cpp_destructor] // CHECK:STDOUT: %HasQualifiers.cpp_destructor.bound.loc20: = bound_method %.loc20_8.2, %Op.ref.loc20 // CHECK:STDOUT: %HasQualifiers.cpp_destructor.call.loc20: init %empty_tuple.type = call %HasQualifiers.cpp_destructor.bound.loc20(%.loc20_8.2) -// CHECK:STDOUT: %HasQualifiers.Op.bound.loc19: = bound_method %.loc19_8.2, constants.%HasQualifiers.Op.cc70d5.2 +// CHECK:STDOUT: %HasQualifiers.Op.bound.loc19: = bound_method %.loc19_8.2, constants.%HasQualifiers.Op.4dca31.2 // CHECK:STDOUT: %Op.ref.loc19: %HasQualifiers.cpp_destructor.type = name_ref Op, imports.%HasQualifiers.cpp_destructor.decl [concrete = constants.%HasQualifiers.cpp_destructor] // CHECK:STDOUT: %HasQualifiers.cpp_destructor.bound.loc19: = bound_method %.loc19_8.2, %Op.ref.loc19 // CHECK:STDOUT: %HasQualifiers.cpp_destructor.call.loc19: init %empty_tuple.type = call %HasQualifiers.cpp_destructor.bound.loc19(%.loc19_8.2) @@ -497,97 +497,97 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %NoRefQualifier: type = class_type @NoRefQualifier [concrete] -// CHECK:STDOUT: %ptr.909: type = ptr_type %NoRefQualifier [concrete] +// CHECK:STDOUT: %ptr.f7d: type = ptr_type %NoRefQualifier [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %NoRefQualifier.F.cpp_overload_set.type: type = cpp_overload_set_type @NoRefQualifier.F.cpp_overload_set [concrete] // CHECK:STDOUT: %NoRefQualifier.F.cpp_overload_set.value: %NoRefQualifier.F.cpp_overload_set.type = cpp_overload_set_value @NoRefQualifier.F.cpp_overload_set [concrete] -// CHECK:STDOUT: %F__carbon_thunk.type.715f07.1: type = fn_type @F__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %F__carbon_thunk.a50b67.1: %F__carbon_thunk.type.715f07.1 = struct_value () [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr.847 [concrete] -// CHECK:STDOUT: %NoRefQualifier.F.type.02d694.2: type = fn_type @NoRefQualifier.F.2 [concrete] -// CHECK:STDOUT: %NoRefQualifier.F.63a4ff.2: %NoRefQualifier.F.type.02d694.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.loc9 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %F__carbon_thunk.type.8cce43.1: type = fn_type @F__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %F__carbon_thunk.a92106.1: %F__carbon_thunk.type.8cce43.1 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [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: %WithRefQualifier: type = class_type @WithRefQualifier [concrete] -// CHECK:STDOUT: %ptr.c4e: type = ptr_type %WithRefQualifier [concrete] +// CHECK:STDOUT: %ptr.90c: type = ptr_type %WithRefQualifier [concrete] // CHECK:STDOUT: %WithRefQualifier.F.cpp_overload_set.type: type = cpp_overload_set_type @WithRefQualifier.F.cpp_overload_set [concrete] // CHECK:STDOUT: %WithRefQualifier.F.cpp_overload_set.value: %WithRefQualifier.F.cpp_overload_set.type = cpp_overload_set_value @WithRefQualifier.F.cpp_overload_set [concrete] -// CHECK:STDOUT: %F__carbon_thunk.type.715f07.2: type = fn_type @F__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %F__carbon_thunk.a50b67.2: %F__carbon_thunk.type.715f07.2 = struct_value () [concrete] -// CHECK:STDOUT: %WithRefQualifier.F.type.02d694.2: type = fn_type @WithRefQualifier.F.2 [concrete] -// CHECK:STDOUT: %WithRefQualifier.F.63a4ff.2: %WithRefQualifier.F.type.02d694.2 = struct_value () [concrete] +// CHECK:STDOUT: %F__carbon_thunk.type.8cce43.2: type = fn_type @F__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %F__carbon_thunk.a92106.2: %F__carbon_thunk.type.8cce43.2 = struct_value () [concrete] +// CHECK:STDOUT: %WithRefQualifier.F.type.8b6eff.2: type = fn_type @WithRefQualifier.F.2 [concrete] +// CHECK:STDOUT: %WithRefQualifier.F.dbb5f5.2: %WithRefQualifier.F.type.8b6eff.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %NoRefQualifier.F.cpp_overload_set.value: %NoRefQualifier.F.cpp_overload_set.type = cpp_overload_set_value @NoRefQualifier.F.cpp_overload_set [concrete = constants.%NoRefQualifier.F.cpp_overload_set.value] -// CHECK:STDOUT: %F__carbon_thunk.decl.aca65c.1: %F__carbon_thunk.type.715f07.1 = fn_decl @F__carbon_thunk.1 [concrete = constants.%F__carbon_thunk.a50b67.1] { +// CHECK:STDOUT: %F__carbon_thunk.decl.828b0d.1: %F__carbon_thunk.type.8cce43.1 = fn_decl @F__carbon_thunk.1 [concrete = constants.%F__carbon_thunk.a92106.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %NoRefQualifier.F.decl.d25af8.2: %NoRefQualifier.F.type.02d694.2 = fn_decl @NoRefQualifier.F.2 [concrete = constants.%NoRefQualifier.F.63a4ff.2] { +// CHECK:STDOUT: %NoRefQualifier.F.decl.89ec3d.2: %NoRefQualifier.F.type.8b6eff.2 = fn_decl @NoRefQualifier.F.2 [concrete = constants.%NoRefQualifier.F.dbb5f5.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %WithRefQualifier.F.cpp_overload_set.value: %WithRefQualifier.F.cpp_overload_set.type = cpp_overload_set_value @WithRefQualifier.F.cpp_overload_set [concrete = constants.%WithRefQualifier.F.cpp_overload_set.value] -// CHECK:STDOUT: %F__carbon_thunk.decl.aca65c.2: %F__carbon_thunk.type.715f07.2 = fn_decl @F__carbon_thunk.2 [concrete = constants.%F__carbon_thunk.a50b67.2] { +// CHECK:STDOUT: %F__carbon_thunk.decl.828b0d.2: %F__carbon_thunk.type.8cce43.2 = fn_decl @F__carbon_thunk.2 [concrete = constants.%F__carbon_thunk.a92106.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %WithRefQualifier.F.decl.d25af8.2: %WithRefQualifier.F.type.02d694.2 = fn_decl @WithRefQualifier.F.2 [concrete = constants.%WithRefQualifier.F.63a4ff.2] { +// CHECK:STDOUT: %WithRefQualifier.F.decl.89ec3d.2: %WithRefQualifier.F.type.8b6eff.2 = fn_decl @WithRefQualifier.F.2 [concrete = constants.%WithRefQualifier.F.dbb5f5.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallFNoRefQualifier(%v.param: %NoRefQualifier, %p.param: %ptr.909) { +// CHECK:STDOUT: fn @CallFNoRefQualifier(%v.param: %NoRefQualifier, %p.param: %ptr.f7d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.104 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var %a.var_patt // CHECK:STDOUT: %v.ref: %NoRefQualifier = name_ref v, %v // CHECK:STDOUT: %F.ref.loc8: %NoRefQualifier.F.cpp_overload_set.type = name_ref F, imports.%NoRefQualifier.F.cpp_overload_set.value [concrete = constants.%NoRefQualifier.F.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc8: = bound_method %v.ref, %F.ref.loc8 -// CHECK:STDOUT: %F__carbon_thunk.call: init %i32 = call imports.%F__carbon_thunk.decl.aca65c.1(%v.ref) +// CHECK:STDOUT: %F__carbon_thunk.call: init %i32 = call imports.%F__carbon_thunk.decl.828b0d.1(%v.ref) // CHECK:STDOUT: assign %a.var, %F__carbon_thunk.call // CHECK:STDOUT: %i32.loc8: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: ref %i32 = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.7b5 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.7b5 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.f00 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.f00 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.var: ref %ptr.847 = var %b.var_patt -// CHECK:STDOUT: %p.ref: %ptr.909 = name_ref p, %p +// CHECK:STDOUT: %b.var: ref %ptr.d08 = var %b.var_patt +// CHECK:STDOUT: %p.ref: %ptr.f7d = name_ref p, %p // CHECK:STDOUT: %.loc9_25: ref %NoRefQualifier = deref %p.ref // CHECK:STDOUT: %F.ref.loc9: %NoRefQualifier.F.cpp_overload_set.type = name_ref F, imports.%NoRefQualifier.F.cpp_overload_set.value [concrete = constants.%NoRefQualifier.F.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_25, %F.ref.loc9 -// CHECK:STDOUT: %NoRefQualifier.F.call: init %ptr.847 = call imports.%NoRefQualifier.F.decl.d25af8.2(%.loc9_25) +// CHECK:STDOUT: %NoRefQualifier.F.call: init %ptr.d08 = call imports.%NoRefQualifier.F.decl.89ec3d.2(%.loc9_25) // CHECK:STDOUT: assign %b.var, %NoRefQualifier.F.call -// CHECK:STDOUT: %.loc9_20: type = splice_block %ptr.loc9 [concrete = constants.%ptr.847] { +// CHECK:STDOUT: %.loc9_20: type = splice_block %ptr.loc9 [concrete = constants.%ptr.d08] { // CHECK:STDOUT: %i32.loc9: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr.loc9: type = ptr_type %i32.loc9 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr.loc9: type = ptr_type %i32.loc9 [concrete = constants.%ptr.d08] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: ref %ptr.847 = ref_binding b, %b.var -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.2dd605.1 +// CHECK:STDOUT: %b: ref %ptr.d08 = ref_binding b, %b.var +// 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.2dd605.3 +// 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: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9(%self.param: ref %ptr.847) = "no_op"; +// CHECK:STDOUT: fn @Destroy.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: @@ -596,39 +596,39 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallFWithRefQualifier(%v.param: %WithRefQualifier, %p.param: %ptr.c4e) { +// CHECK:STDOUT: fn @CallFWithRefQualifier(%v.param: %WithRefQualifier, %p.param: %ptr.90c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.104 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var %a.var_patt // CHECK:STDOUT: %v.ref: %WithRefQualifier = name_ref v, %v // CHECK:STDOUT: %F.ref.loc15: %WithRefQualifier.F.cpp_overload_set.type = name_ref F, imports.%WithRefQualifier.F.cpp_overload_set.value [concrete = constants.%WithRefQualifier.F.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc15: = bound_method %v.ref, %F.ref.loc15 -// CHECK:STDOUT: %F__carbon_thunk.call: init %i32 = call imports.%F__carbon_thunk.decl.aca65c.2(%v.ref) +// CHECK:STDOUT: %F__carbon_thunk.call: init %i32 = call imports.%F__carbon_thunk.decl.828b0d.2(%v.ref) // CHECK:STDOUT: assign %a.var, %F__carbon_thunk.call // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: ref %i32 = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.7b5 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.7b5 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.f00 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.f00 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.var: ref %ptr.847 = var %b.var_patt -// CHECK:STDOUT: %p.ref: %ptr.c4e = name_ref p, %p +// CHECK:STDOUT: %b.var: ref %ptr.d08 = var %b.var_patt +// CHECK:STDOUT: %p.ref: %ptr.90c = name_ref p, %p // CHECK:STDOUT: %.loc16_25: ref %WithRefQualifier = deref %p.ref // CHECK:STDOUT: %F.ref.loc16: %WithRefQualifier.F.cpp_overload_set.type = name_ref F, imports.%WithRefQualifier.F.cpp_overload_set.value [concrete = constants.%WithRefQualifier.F.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc16: = bound_method %.loc16_25, %F.ref.loc16 -// CHECK:STDOUT: %WithRefQualifier.F.call: init %ptr.847 = call imports.%WithRefQualifier.F.decl.d25af8.2(%.loc16_25) +// CHECK:STDOUT: %WithRefQualifier.F.call: init %ptr.d08 = call imports.%WithRefQualifier.F.decl.89ec3d.2(%.loc16_25) // CHECK:STDOUT: assign %b.var, %WithRefQualifier.F.call -// CHECK:STDOUT: %.loc16_20: type = splice_block %ptr.loc16 [concrete = constants.%ptr.847] { +// CHECK:STDOUT: %.loc16_20: type = splice_block %ptr.loc16 [concrete = constants.%ptr.d08] { // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr.loc16: type = ptr_type %i32.loc16 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr.loc16: type = ptr_type %i32.loc16 [concrete = constants.%ptr.d08] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: ref %ptr.847 = ref_binding b, %b.var -// CHECK:STDOUT: %Destroy.Op.bound.loc16: = bound_method %b.var, constants.%Destroy.Op.2dd605.1 +// CHECK:STDOUT: %b: ref %ptr.d08 = ref_binding b, %b.var +// 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.2dd605.3 +// 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: // CHECK:STDOUT: } @@ -643,7 +643,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %Another: type = class_type @Another [concrete] // CHECK:STDOUT: %ExplicitObjectParam.F.cpp_overload_set.type: type = cpp_overload_set_type @ExplicitObjectParam.F.cpp_overload_set [concrete] // CHECK:STDOUT: %ExplicitObjectParam.F.cpp_overload_set.value: %ExplicitObjectParam.F.cpp_overload_set.type = cpp_overload_set_value @ExplicitObjectParam.F.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3e0: type = ptr_type %ExplicitObjectParam [concrete] +// CHECK:STDOUT: %ptr.900: type = ptr_type %ExplicitObjectParam [concrete] // CHECK:STDOUT: %F__carbon_thunk.type: type = fn_type @F__carbon_thunk [concrete] // CHECK:STDOUT: %F__carbon_thunk: %F__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %ExplicitObjectParam.G.cpp_overload_set.type: type = cpp_overload_set_type @ExplicitObjectParam.G.cpp_overload_set [concrete] @@ -652,7 +652,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %G__carbon_thunk: %G__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %ExplicitObjectParam.H.cpp_overload_set.type: type = cpp_overload_set_type @ExplicitObjectParam.H.cpp_overload_set [concrete] // CHECK:STDOUT: %ExplicitObjectParam.H.cpp_overload_set.value: %ExplicitObjectParam.H.cpp_overload_set.type = cpp_overload_set_value @ExplicitObjectParam.H.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.368: type = ptr_type %Another [concrete] +// CHECK:STDOUT: %ptr.bad: type = ptr_type %Another [concrete] // CHECK:STDOUT: %H__carbon_thunk.type: type = fn_type @H__carbon_thunk [concrete] // CHECK:STDOUT: %H__carbon_thunk: %H__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -691,7 +691,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %F.ref: %ExplicitObjectParam.F.cpp_overload_set.type = name_ref F, imports.%ExplicitObjectParam.F.cpp_overload_set.value [concrete = constants.%ExplicitObjectParam.F.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc8: = bound_method %e.ref, %F.ref // CHECK:STDOUT: %.loc8: ref %ExplicitObjectParam = value_as_ref %e.ref -// CHECK:STDOUT: %addr.loc8: %ptr.3e0 = addr_of %.loc8 +// CHECK:STDOUT: %addr.loc8: %ptr.900 = addr_of %.loc8 // CHECK:STDOUT: %F__carbon_thunk.call: init %empty_tuple.type = call imports.%F__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -705,7 +705,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %H.ref: %ExplicitObjectParam.H.cpp_overload_set.type = name_ref H, imports.%ExplicitObjectParam.H.cpp_overload_set.value [concrete = constants.%ExplicitObjectParam.H.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc10: = bound_method %a.ref, %H.ref // CHECK:STDOUT: %.loc10: ref %Another = value_as_ref %a.ref -// CHECK:STDOUT: %addr.loc10: %ptr.368 = addr_of %.loc10 +// CHECK:STDOUT: %addr.loc10: %ptr.bad = addr_of %.loc10 // CHECK:STDOUT: %H__carbon_thunk.call: init %empty_tuple.type = call imports.%H__carbon_thunk.decl(%addr.loc10) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -720,14 +720,14 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %Another: type = class_type @Another [concrete] // CHECK:STDOUT: %ExplicitObjectParam.F.cpp_overload_set.type: type = cpp_overload_set_type @ExplicitObjectParam.F.cpp_overload_set [concrete] // CHECK:STDOUT: %ExplicitObjectParam.F.cpp_overload_set.value: %ExplicitObjectParam.F.cpp_overload_set.type = cpp_overload_set_value @ExplicitObjectParam.F.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3e0: type = ptr_type %ExplicitObjectParam [concrete] -// CHECK:STDOUT: %F__carbon_thunk.type.715f07.1: type = fn_type @F__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %F__carbon_thunk.a50b67.1: %F__carbon_thunk.type.715f07.1 = struct_value () [concrete] -// CHECK:STDOUT: %F__carbon_thunk.type.715f07.2: type = fn_type @F__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %F__carbon_thunk.a50b67.2: %F__carbon_thunk.type.715f07.2 = struct_value () [concrete] -// CHECK:STDOUT: %ptr.368: type = ptr_type %Another [concrete] -// CHECK:STDOUT: %F__carbon_thunk.type.715f07.3: type = fn_type @F__carbon_thunk.3 [concrete] -// CHECK:STDOUT: %F__carbon_thunk.a50b67.3: %F__carbon_thunk.type.715f07.3 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.900: type = ptr_type %ExplicitObjectParam [concrete] +// CHECK:STDOUT: %F__carbon_thunk.type.8cce43.1: type = fn_type @F__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %F__carbon_thunk.a92106.1: %F__carbon_thunk.type.8cce43.1 = struct_value () [concrete] +// CHECK:STDOUT: %F__carbon_thunk.type.8cce43.2: type = fn_type @F__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %F__carbon_thunk.a92106.2: %F__carbon_thunk.type.8cce43.2 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.bad: type = ptr_type %Another [concrete] +// CHECK:STDOUT: %F__carbon_thunk.type.8cce43.3: type = fn_type @F__carbon_thunk.3 [concrete] +// CHECK:STDOUT: %F__carbon_thunk.a92106.3: %F__carbon_thunk.type.8cce43.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -739,17 +739,17 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %ExplicitObjectParam.decl: type = class_decl @ExplicitObjectParam [concrete = constants.%ExplicitObjectParam] {} {} // CHECK:STDOUT: %Another.decl: type = class_decl @Another [concrete = constants.%Another] {} {} // CHECK:STDOUT: %ExplicitObjectParam.F.cpp_overload_set.value: %ExplicitObjectParam.F.cpp_overload_set.type = cpp_overload_set_value @ExplicitObjectParam.F.cpp_overload_set [concrete = constants.%ExplicitObjectParam.F.cpp_overload_set.value] -// CHECK:STDOUT: %F__carbon_thunk.decl.aca65c.1: %F__carbon_thunk.type.715f07.1 = fn_decl @F__carbon_thunk.1 [concrete = constants.%F__carbon_thunk.a50b67.1] { +// CHECK:STDOUT: %F__carbon_thunk.decl.828b0d.1: %F__carbon_thunk.type.8cce43.1 = fn_decl @F__carbon_thunk.1 [concrete = constants.%F__carbon_thunk.a92106.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %F__carbon_thunk.decl.aca65c.2: %F__carbon_thunk.type.715f07.2 = fn_decl @F__carbon_thunk.2 [concrete = constants.%F__carbon_thunk.a50b67.2] { +// CHECK:STDOUT: %F__carbon_thunk.decl.828b0d.2: %F__carbon_thunk.type.8cce43.2 = fn_decl @F__carbon_thunk.2 [concrete = constants.%F__carbon_thunk.a92106.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %F__carbon_thunk.decl.aca65c.3: %F__carbon_thunk.type.715f07.3 = fn_decl @F__carbon_thunk.3 [concrete = constants.%F__carbon_thunk.a50b67.3] { +// CHECK:STDOUT: %F__carbon_thunk.decl.828b0d.3: %F__carbon_thunk.type.8cce43.3 = fn_decl @F__carbon_thunk.3 [concrete = constants.%F__carbon_thunk.a92106.3] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -762,22 +762,22 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %F.ref.loc8: %ExplicitObjectParam.F.cpp_overload_set.type = name_ref F, imports.%ExplicitObjectParam.F.cpp_overload_set.value [concrete = constants.%ExplicitObjectParam.F.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc8: = bound_method %e.ref, %F.ref.loc8 // CHECK:STDOUT: %.loc8: ref %ExplicitObjectParam = value_as_ref %e.ref -// CHECK:STDOUT: %addr.loc8: %ptr.3e0 = addr_of %.loc8 -// CHECK:STDOUT: %F__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%F__carbon_thunk.decl.aca65c.1(%addr.loc8) +// CHECK:STDOUT: %addr.loc8: %ptr.900 = addr_of %.loc8 +// CHECK:STDOUT: %F__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%F__carbon_thunk.decl.828b0d.1(%addr.loc8) // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %ExplicitObjectParam.ref.loc9: type = name_ref ExplicitObjectParam, imports.%ExplicitObjectParam.decl [concrete = constants.%ExplicitObjectParam] // CHECK:STDOUT: %F.ref.loc9: %ExplicitObjectParam.F.cpp_overload_set.type = name_ref F, imports.%ExplicitObjectParam.F.cpp_overload_set.value [concrete = constants.%ExplicitObjectParam.F.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc9: = bound_method %n.ref, %F.ref.loc9 -// CHECK:STDOUT: %F__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%F__carbon_thunk.decl.aca65c.2(%n.ref) +// CHECK:STDOUT: %F__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%F__carbon_thunk.decl.828b0d.2(%n.ref) // CHECK:STDOUT: %a.ref: %Another = name_ref a, %a // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %ExplicitObjectParam.ref.loc10: type = name_ref ExplicitObjectParam, imports.%ExplicitObjectParam.decl [concrete = constants.%ExplicitObjectParam] // CHECK:STDOUT: %F.ref.loc10: %ExplicitObjectParam.F.cpp_overload_set.type = name_ref F, imports.%ExplicitObjectParam.F.cpp_overload_set.value [concrete = constants.%ExplicitObjectParam.F.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc10: = bound_method %a.ref, %F.ref.loc10 // CHECK:STDOUT: %.loc10: ref %Another = value_as_ref %a.ref -// CHECK:STDOUT: %addr.loc10: %ptr.368 = addr_of %.loc10 -// CHECK:STDOUT: %F__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%F__carbon_thunk.decl.aca65c.3(%addr.loc10) +// CHECK:STDOUT: %addr.loc10: %ptr.bad = addr_of %.loc10 +// CHECK:STDOUT: %F__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%F__carbon_thunk.decl.828b0d.3(%addr.loc10) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/class/import/template.carbon b/toolchain/check/testdata/interop/cpp/class/import/template.carbon index 900a927ca691..45cbfe17fde0 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/template.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/template.carbon @@ -101,40 +101,40 @@ fn F() { // CHECK:STDOUT: --- use_class_template.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %A.971: type = class_type @A.1 [concrete] +// CHECK:STDOUT: %A.614: type = class_type @A.1 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Base: type = class_type @Base [concrete] -// CHECK:STDOUT: %A.elem.8ae: type = unbound_element_type %A.971, %i32 [concrete] +// CHECK:STDOUT: %A.elem.708: type = unbound_element_type %A.614, %i32 [concrete] // CHECK:STDOUT: %A.f.cpp_overload_set.type: type = cpp_overload_set_type @A.f.cpp_overload_set [concrete] // CHECK:STDOUT: %A.f.cpp_overload_set.value: %A.f.cpp_overload_set.type = cpp_overload_set_value @A.f.cpp_overload_set [concrete] // CHECK:STDOUT: %f__carbon_thunk.type: type = fn_type @f__carbon_thunk [concrete] // CHECK:STDOUT: %f__carbon_thunk: %f__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] +// 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: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.14d: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet.14d [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %A.a10: type = class_type @A.2 [concrete] -// CHECK:STDOUT: %ptr.636: type = ptr_type %A.a10 [concrete] -// CHECK:STDOUT: %ptr.eb6: type = ptr_type %Base [concrete] -// CHECK:STDOUT: %Copy.impl_witness.ab1: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%Base) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.f2f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Base) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.e51: %ptr.as.Copy.impl.Op.type.f2f = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.8ea: %Copy.type = facet_value %ptr.eb6, (%Copy.impl_witness.ab1) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.092: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.8ea) [concrete] -// CHECK:STDOUT: %.470: type = fn_type_with_self_type %Copy.WithSelf.Op.type.092, %Copy.facet.8ea [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.e51, @ptr.as.Copy.impl.Op(%Base) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.987: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet.987 [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: %A.26b: type = class_type @A.2 [concrete] +// CHECK:STDOUT: %ptr.f2d: type = ptr_type %A.26b [concrete] +// CHECK:STDOUT: %ptr.0e0: type = ptr_type %Base [concrete] +// CHECK:STDOUT: %Copy.impl_witness.428: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%Base) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.136: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Base) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.377: %ptr.as.Copy.impl.Op.type.136 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.abc: %Copy.type = facet_value %ptr.0e0, (%Copy.impl_witness.428) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.be3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.abc) [concrete] +// CHECK:STDOUT: %.6e4: type = fn_type_with_self_type %Copy.WithSelf.Op.type.be3, %Copy.facet.abc [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.377, @ptr.as.Copy.impl.Op(%Base) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -144,23 +144,23 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%x.param: %A.971) -> out %return.param: %i32 { +// CHECK:STDOUT: fn @F(%x.param: %A.614) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref.loc9: %A.971 = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc9: %A.614 = name_ref x, %x // CHECK:STDOUT: %f.ref: %A.f.cpp_overload_set.type = name_ref f, imports.%A.f.cpp_overload_set.value [concrete = constants.%A.f.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc9: = bound_method %x.ref.loc9, %f.ref // CHECK:STDOUT: %f__carbon_thunk.call: init %empty_tuple.type = call imports.%f__carbon_thunk.decl(%x.ref.loc9) -// CHECK:STDOUT: %x.ref.loc10: %A.971 = name_ref x, %x -// CHECK:STDOUT: %n.ref: %A.elem.8ae = name_ref n, @A.1.%.2 [concrete = @A.1.%.2] +// CHECK:STDOUT: %x.ref.loc10: %A.614 = name_ref x, %x +// CHECK:STDOUT: %n.ref: %A.elem.708 = name_ref n, @A.1.%.2 [concrete = @A.1.%.2] // CHECK:STDOUT: %.loc10_11.1: ref %i32 = class_element_access %x.ref.loc10, element1 // CHECK:STDOUT: %.loc10_11.2: %i32 = acquire_value %.loc10_11.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc10_11.1: = bound_method %.loc10_11.2, %impl.elem0 // 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.loc10_11.2: = bound_method %.loc10_11.2, %specific_fn @@ -168,79 +168,79 @@ fn F() { // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param: %ptr.636) -> out %return.param: %ptr.eb6 { +// CHECK:STDOUT: fn @G(%p.param: %ptr.f2d) -> out %return.param: %ptr.0e0 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.636 = name_ref p, %p -// CHECK:STDOUT: %.loc17_11.1: ref %A.a10 = deref %p.ref +// CHECK:STDOUT: %p.ref: %ptr.f2d = name_ref p, %p +// CHECK:STDOUT: %.loc17_11.1: ref %A.26b = deref %p.ref // CHECK:STDOUT: %.loc17_11.2: ref %Base = class_element_access %.loc17_11.1, element0 -// CHECK:STDOUT: %addr: %ptr.eb6 = addr_of %.loc17_11.2 -// CHECK:STDOUT: %.loc17_11.3: %ptr.eb6 = converted %p.ref, %addr -// CHECK:STDOUT: %impl.elem0: %.470 = impl_witness_access constants.%Copy.impl_witness.ab1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.e51] +// CHECK:STDOUT: %addr: %ptr.0e0 = addr_of %.loc17_11.2 +// CHECK:STDOUT: %.loc17_11.3: %ptr.0e0 = converted %p.ref, %addr +// CHECK:STDOUT: %impl.elem0: %.6e4 = impl_witness_access constants.%Copy.impl_witness.428, element0 [concrete = constants.%ptr.as.Copy.impl.Op.377] // CHECK:STDOUT: %bound_method.loc17_11.1: = bound_method %.loc17_11.3, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%Base) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc17_11.2: = bound_method %.loc17_11.3, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.eb6 = call %bound_method.loc17_11.2(%.loc17_11.3) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.0e0 = call %bound_method.loc17_11.2(%.loc17_11.3) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_use_instantiation_error.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %X.548: type = class_type @X.1 [concrete] +// CHECK:STDOUT: %X.816: type = class_type @X.1 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %X.1cb: type = class_type @X.2 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %X.c92: type = class_type @X.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { -// CHECK:STDOUT: .XY = %X.decl.138 -// CHECK:STDOUT: .Xint = %X.decl.0ee +// CHECK:STDOUT: .XY = %X.decl.8c4 +// CHECK:STDOUT: .Xint = %X.decl.b67 // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %X.decl.138: type = class_decl @X.1 [concrete = constants.%X.548] {} {} -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %X.decl.0ee: type = class_decl @X.2 [concrete = constants.%X.1cb] {} {} +// CHECK:STDOUT: %X.decl.8c4: type = class_decl @X.1 [concrete = constants.%X.816] {} {} +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %X.decl.b67: type = class_decl @X.2 [concrete = constants.%X.c92] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.104 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.104 = var_pattern %x.patt [concrete] +// 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: } // CHECK:STDOUT: %x.var: ref %i32 = var %x.var_patt [concrete] // CHECK:STDOUT: %.loc7: type = splice_block %type.ref.loc7 [concrete = constants.%i32] { // CHECK:STDOUT: %Cpp.ref.loc7: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %XY.ref: type = name_ref XY, imports.%X.decl.138 [concrete = constants.%X.548] +// CHECK:STDOUT: %XY.ref: type = name_ref XY, imports.%X.decl.8c4 [concrete = constants.%X.816] // CHECK:STDOUT: // CHECK:STDOUT: %type.ref.loc7: type = name_ref r#type, %i32.4 [concrete = constants.%i32] // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref %i32 = ref_binding x, %x.var [concrete = %x.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.104 = ref_binding_pattern y [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type.104 = var_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.6b6 = ref_binding_pattern y [concrete] +// CHECK:STDOUT: %y.var_patt: %pattern_type.6b6 = var_pattern %y.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %y.var: ref %i32 = var %y.var_patt [concrete] // CHECK:STDOUT: %.loc21: type = splice_block %type.ref.loc21 [concrete = constants.%i32] { // CHECK:STDOUT: %Cpp.ref.loc21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %Xint.ref: type = name_ref Xint, imports.%X.decl.0ee [concrete = constants.%X.1cb] +// CHECK:STDOUT: %Xint.ref: type = name_ref Xint, imports.%X.decl.b67 [concrete = constants.%X.c92] // CHECK:STDOUT: // CHECK:STDOUT: %type.ref.loc21: type = name_ref r#type, %i32.2 [concrete = constants.%i32] // CHECK:STDOUT: } @@ -250,20 +250,20 @@ fn F() { // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0.loc7: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc7: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc7: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc7_1.1: = bound_method %int_0.loc7, %impl.elem0.loc7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_1.2: = bound_method %int_0.loc7, %specific_fn.loc7 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %i32 = call %bound_method.loc7_1.2(%int_0.loc7) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc7: init %i32 = converted %int_0.loc7, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %i32 = call %bound_method.loc7_1.2(%int_0.loc7) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc7: init %i32 = converted %int_0.loc7, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign file.%x.var, %.loc7 // CHECK:STDOUT: %int_0.loc21: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc21: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc21: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc21_1.1: = bound_method %int_0.loc21, %impl.elem0.loc21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_1.2: = bound_method %int_0.loc21, %specific_fn.loc21 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %i32 = call %bound_method.loc21_1.2(%int_0.loc21) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc21: init %i32 = converted %int_0.loc21, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %i32 = call %bound_method.loc21_1.2(%int_0.loc21) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc21: init %i32 = converted %int_0.loc21, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign file.%y.var, %.loc21 // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/class/import/union.carbon b/toolchain/check/testdata/interop/cpp/class/import/union.carbon index edc88c303efb..1bf9affa4956 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/union.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/union.carbon @@ -312,8 +312,8 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Bar: type = class_type @Bar [concrete] -// CHECK:STDOUT: %ptr.4d6: type = ptr_type %Bar [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.4d6 [concrete] +// CHECK:STDOUT: %ptr.227: type = ptr_type %Bar [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.227 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -324,7 +324,7 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: %Bar.decl: type = class_decl @Bar [concrete = constants.%Bar] {} {} // CHECK:STDOUT: %foo.patt: %pattern_type = ref_binding_pattern foo [concrete] // CHECK:STDOUT: %foo.var_patt: %pattern_type = var_pattern %foo.patt [concrete] -// CHECK:STDOUT: %foo.var: ref %ptr.4d6 = var %foo.var_patt [concrete] +// CHECK:STDOUT: %foo.var: ref %ptr.227 = var %foo.var_patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @MyF() { @@ -334,14 +334,14 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_30: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref.loc8_33: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %foo.ref: ref %ptr.4d6 = name_ref foo, imports.%foo.var [concrete = imports.%foo.var] -// CHECK:STDOUT: %.loc8_26: type = splice_block %ptr [concrete = constants.%ptr.4d6] { +// CHECK:STDOUT: %foo.ref: ref %ptr.227 = name_ref foo, imports.%foo.var [concrete = imports.%foo.var] +// CHECK:STDOUT: %.loc8_26: type = splice_block %ptr [concrete = constants.%ptr.227] { // CHECK:STDOUT: %Cpp.ref.loc8_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref.loc8_22: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %ptr: type = ptr_type %Bar.ref.loc8_22 [concrete = constants.%ptr.4d6] +// CHECK:STDOUT: %ptr: type = ptr_type %Bar.ref.loc8_22 [concrete = constants.%ptr.227] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8_37: %ptr.4d6 = acquire_value %foo.ref -// CHECK:STDOUT: %bar: %ptr.4d6 = value_binding bar, %.loc8_37 +// CHECK:STDOUT: %.loc8_37: %ptr.227 = acquire_value %foo.ref +// CHECK:STDOUT: %bar: %ptr.227 = value_binding bar, %.loc8_37 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -349,11 +349,11 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Bar: type = class_type @Bar [concrete] -// CHECK:STDOUT: %ptr.4d6: type = ptr_type %Bar [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.4d6 [concrete] +// CHECK:STDOUT: %ptr.227: type = ptr_type %Bar [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.227 [concrete] // CHECK:STDOUT: %MyF.type: type = fn_type @MyF [concrete] // CHECK:STDOUT: %MyF: %MyF.type = struct_value () [concrete] -// CHECK:STDOUT: %Bar.elem: type = unbound_element_type %Bar, %ptr.4d6 [concrete] +// CHECK:STDOUT: %Bar.elem: type = unbound_element_type %Bar, %ptr.227 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -369,32 +369,32 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %bar.patt: %pattern_type = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %bar.param: %ptr.4d6 = value_param call_param0 -// CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.4d6] { +// CHECK:STDOUT: %bar.param: %ptr.227 = value_param call_param0 +// CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.227] { // CHECK:STDOUT: %Cpp.ref.loc7: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref.loc7: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %ptr.loc7: type = ptr_type %Bar.ref.loc7 [concrete = constants.%ptr.4d6] +// CHECK:STDOUT: %ptr.loc7: type = ptr_type %Bar.ref.loc7 [concrete = constants.%ptr.227] // CHECK:STDOUT: } -// CHECK:STDOUT: %bar: %ptr.4d6 = value_binding bar, %bar.param +// CHECK:STDOUT: %bar: %ptr.227 = value_binding bar, %bar.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @MyF(%bar.param: %ptr.4d6) { +// CHECK:STDOUT: fn @MyF(%bar.param: %ptr.227) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %foo_bar.patt: %pattern_type = value_binding_pattern foo_bar [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %bar.ref: %ptr.4d6 = name_ref bar, %bar +// CHECK:STDOUT: %bar.ref: %ptr.227 = name_ref bar, %bar // CHECK:STDOUT: %.loc8_37.1: ref %Bar = deref %bar.ref // CHECK:STDOUT: %foo.ref: %Bar.elem = name_ref foo, @Bar.%.1 [concrete = @Bar.%.1] -// CHECK:STDOUT: %.loc8_37.2: ref %ptr.4d6 = class_element_access %.loc8_37.1, element0 -// CHECK:STDOUT: %.loc8_30: type = splice_block %ptr.loc8 [concrete = constants.%ptr.4d6] { +// CHECK:STDOUT: %.loc8_37.2: ref %ptr.227 = class_element_access %.loc8_37.1, element0 +// CHECK:STDOUT: %.loc8_30: type = splice_block %ptr.loc8 [concrete = constants.%ptr.227] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref.loc8: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %ptr.loc8: type = ptr_type %Bar.ref.loc8 [concrete = constants.%ptr.4d6] +// CHECK:STDOUT: %ptr.loc8: type = ptr_type %Bar.ref.loc8 [concrete = constants.%ptr.227] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8_37.3: %ptr.4d6 = acquire_value %.loc8_37.2 -// CHECK:STDOUT: %foo_bar: %ptr.4d6 = value_binding foo_bar, %.loc8_37.3 +// CHECK:STDOUT: %.loc8_37.3: %ptr.227 = acquire_value %.loc8_37.2 +// CHECK:STDOUT: %foo_bar: %ptr.227 = value_binding foo_bar, %.loc8_37.3 // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon b/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon index 4c70ce10550d..2f3db4ac3f21 100644 --- a/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon +++ b/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon @@ -45,20 +45,20 @@ fn G() { // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %F.cpp_overload_set.type: type = cpp_overload_set_type @F.cpp_overload_set [concrete] // CHECK:STDOUT: %F.cpp_overload_set.value: %F.cpp_overload_set.type = cpp_overload_set_value @F.cpp_overload_set [concrete] -// CHECK:STDOUT: %.730: type = class_type @.1 [concrete] -// CHECK:STDOUT: %int_1.94f: %.730 = int_value 1 [concrete] +// CHECK:STDOUT: %.d0d: type = class_type @.1 [concrete] +// CHECK:STDOUT: %int_1.00b: %.d0d = int_value 1 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %C.F.cpp_overload_set.type: type = cpp_overload_set_type @C.F.cpp_overload_set [concrete] // CHECK:STDOUT: %C.F.cpp_overload_set.value: %C.F.cpp_overload_set.type = cpp_overload_set_value @C.F.cpp_overload_set [concrete] -// CHECK:STDOUT: %.149: type = class_type @.2 [concrete] -// CHECK:STDOUT: %int_1.9c2: %.149 = int_value 1 [concrete] +// CHECK:STDOUT: %.2b9: type = class_type @.2 [concrete] +// CHECK:STDOUT: %int_1.1fb: %.2b9 = int_value 1 [concrete] // CHECK:STDOUT: %C.F.type: type = fn_type @C.F [concrete] // CHECK:STDOUT: %C.F: %C.F.type = struct_value () [concrete] // CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] @@ -68,12 +68,12 @@ fn G() { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { // CHECK:STDOUT: .F = %F.cpp_overload_set.value -// CHECK:STDOUT: .b = %int_1.94f +// CHECK:STDOUT: .b = %int_1.00b // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %F.cpp_overload_set.value: %F.cpp_overload_set.type = cpp_overload_set_value @F.cpp_overload_set [concrete = constants.%F.cpp_overload_set.value] -// CHECK:STDOUT: %int_1.94f: %.730 = int_value 1 [concrete = constants.%int_1.94f] +// CHECK:STDOUT: %int_1.00b: %.d0d = int_value 1 [concrete = constants.%int_1.00b] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -87,7 +87,7 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.F.cpp_overload_set.value: %C.F.cpp_overload_set.type = cpp_overload_set_value @C.F.cpp_overload_set [concrete = constants.%C.F.cpp_overload_set.value] -// CHECK:STDOUT: %int_1.9c2: %.149 = int_value 1 [concrete = constants.%int_1.9c2] +// CHECK:STDOUT: %int_1.1fb: %.2b9 = int_value 1 [concrete = constants.%int_1.1fb] // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -104,13 +104,13 @@ fn G() { // CHECK:STDOUT: %Cpp.ref.loc8_3: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %F.ref.loc8: %F.cpp_overload_set.type = name_ref F, imports.%F.cpp_overload_set.value [concrete = constants.%F.cpp_overload_set.value] // CHECK:STDOUT: %Cpp.ref.loc8_9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %b.ref: %.730 = name_ref b, imports.%int_1.94f [concrete = constants.%int_1.94f] +// CHECK:STDOUT: %b.ref: %.d0d = name_ref b, imports.%int_1.00b [concrete = constants.%int_1.00b] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call imports.%F.decl(%b.ref) // CHECK:STDOUT: %Cpp.ref.loc10_3: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc10_6: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc10_8: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc10_11.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc10_11.1 +// CHECK:STDOUT: %addr: %ptr.0a2 = addr_of %.loc10_11.1 // CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr) // CHECK:STDOUT: %.loc10_11.2: init %C to %.loc10_11.1 = mark_in_place_init %C__carbon_thunk.call // CHECK:STDOUT: %.loc10_11.3: ref %C = temporary %.loc10_11.1, %.loc10_11.2 @@ -118,7 +118,7 @@ fn G() { // CHECK:STDOUT: %bound_method: = bound_method %.loc10_11.3, %F.ref.loc10 // CHECK:STDOUT: %Cpp.ref.loc10_15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc10_18: type = name_ref C, imports.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %e.ref: %.149 = name_ref e, imports.%int_1.9c2 [concrete = constants.%int_1.9c2] +// CHECK:STDOUT: %e.ref: %.2b9 = name_ref e, imports.%int_1.1fb [concrete = constants.%int_1.1fb] // CHECK:STDOUT: %.loc10_11.4: %C = acquire_value %.loc10_11.3 // CHECK:STDOUT: %C.F.call: init %empty_tuple.type = call imports.%C.F.decl(%.loc10_11.4, %e.ref) // CHECK:STDOUT: %C.cpp_destructor.bound: = bound_method %.loc10_11.3, constants.%C.cpp_destructor diff --git a/toolchain/check/testdata/interop/cpp/enum/convert.carbon b/toolchain/check/testdata/interop/cpp/enum/convert.carbon index c250a9627785..1f28680ad458 100644 --- a/toolchain/check/testdata/interop/cpp/enum/convert.carbon +++ b/toolchain/check/testdata/interop/cpp/enum/convert.carbon @@ -92,30 +92,30 @@ fn F() { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] -// CHECK:STDOUT: %pattern_type.e1b: type = pattern_type %i16 [concrete] +// CHECK:STDOUT: %pattern_type.203: type = pattern_type %i16 [concrete] // CHECK:STDOUT: %Enum: type = class_type @Enum [concrete] -// CHECK:STDOUT: %int_0.167: %Enum = int_value 0 [concrete] -// CHECK:STDOUT: %int_0.640: %i16 = int_value 0 [concrete] -// CHECK:STDOUT: %pattern_type.361: type = pattern_type %Enum [concrete] +// CHECK:STDOUT: %int_0.822: %Enum = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.a8d: %i16 = int_value 0 [concrete] +// CHECK:STDOUT: %pattern_type.926: type = pattern_type %Enum [concrete] // CHECK:STDOUT: %int_42.20e: Core.IntLiteral = int_value 42 [concrete] -// CHECK:STDOUT: %As.type.fff: type = facet_type <@As, @As(%i16)> [concrete] +// CHECK:STDOUT: %As.type.6f1: type = facet_type <@As, @As(%i16)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.16a: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.ced: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.0b6: %Core.IntLiteral.as.As.impl.Convert.type.ced = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fff = facet_value Core.IntLiteral, (%As.impl_witness.16a) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.28f: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] -// CHECK:STDOUT: %.696: type = fn_type_with_self_type %As.WithSelf.Convert.type.28f, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_42.20e, %Core.IntLiteral.as.As.impl.Convert.0b6 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.0b6, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.820: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.4b7: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.70c: %Core.IntLiteral.as.As.impl.Convert.type.4b7 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.6f1 = facet_value Core.IntLiteral, (%As.impl_witness.820) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.d73: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] +// CHECK:STDOUT: %.6b5: type = fn_type_with_self_type %As.WithSelf.Convert.type.d73, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_42.20e, %Core.IntLiteral.as.As.impl.Convert.70c [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.70c, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_42.20e, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_42.6a7: %i16 = int_value 42 [concrete] -// CHECK:STDOUT: %int_42.3d1: %Enum = int_value 42 [concrete] +// CHECK:STDOUT: %int_42.0ff: %i16 = int_value 42 [concrete] +// CHECK:STDOUT: %int_42.4c2: %Enum = int_value 42 [concrete] // CHECK:STDOUT: %Other: type = class_type @Other [concrete] -// CHECK:STDOUT: %pattern_type.7cb: type = pattern_type %Other [concrete] -// CHECK:STDOUT: %int_0.10c: %Other = int_value 0 [concrete] +// CHECK:STDOUT: %pattern_type.d91: type = pattern_type %Other [concrete] +// CHECK:STDOUT: %int_0.10a: %Other = int_value 0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -126,9 +126,9 @@ fn F() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %Enum.decl: type = class_decl @Enum [concrete = constants.%Enum] {} {} -// CHECK:STDOUT: %int_0: %Enum = int_value 0 [concrete = constants.%int_0.167] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %int_0: %Enum = int_value 0 [concrete = constants.%int_0.822] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %Other.decl: type = class_decl @Other [concrete = constants.%Other] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -139,46 +139,46 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.e1b = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.203 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Enum.ref.loc8: 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.167] +// CHECK:STDOUT: %a.ref.loc8: %Enum = name_ref a, imports.%int_0 [concrete = constants.%int_0.822] // CHECK:STDOUT: %i16.loc8_37: type = type_literal constants.%i16 [concrete = constants.%i16] -// CHECK:STDOUT: %.loc8_34.1: %i16 = as_compatible %a.ref.loc8 [concrete = constants.%int_0.640] -// CHECK:STDOUT: %.loc8_34.2: %i16 = converted %a.ref.loc8, %.loc8_34.1 [concrete = constants.%int_0.640] +// CHECK:STDOUT: %.loc8_34.1: %i16 = as_compatible %a.ref.loc8 [concrete = constants.%int_0.a8d] +// CHECK:STDOUT: %.loc8_34.2: %i16 = converted %a.ref.loc8, %.loc8_34.1 [concrete = constants.%int_0.a8d] // CHECK:STDOUT: %i16.loc8_17: type = type_literal constants.%i16 [concrete = constants.%i16] // CHECK:STDOUT: %a: %i16 = value_binding a, %.loc8_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.361 = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.926 = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] // CHECK:STDOUT: %i16.loc9: type = type_literal constants.%i16 [concrete = constants.%i16] -// CHECK:STDOUT: %impl.elem0: %.696 = impl_witness_access constants.%As.impl_witness.16a, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.0b6] +// CHECK:STDOUT: %impl.elem0: %.6b5 = impl_witness_access constants.%As.impl_witness.820, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.70c] // CHECK:STDOUT: %bound_method.loc9_32.1: = bound_method %int_42, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.As.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_32.2: = bound_method %int_42, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc9_32.2(%int_42) [concrete = constants.%int_42.6a7] -// CHECK:STDOUT: %.loc9_32.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_42.6a7] -// CHECK:STDOUT: %.loc9_32.2: %i16 = converted %int_42, %.loc9_32.1 [concrete = constants.%int_42.6a7] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc9_32.2(%int_42) [concrete = constants.%int_42.0ff] +// CHECK:STDOUT: %.loc9_32.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_42.0ff] +// CHECK:STDOUT: %.loc9_32.2: %i16 = converted %int_42, %.loc9_32.1 [concrete = constants.%int_42.0ff] // CHECK:STDOUT: %Cpp.ref.loc9_43: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Enum.ref.loc9_46: type = name_ref Enum, imports.%Enum.decl [concrete = constants.%Enum] -// CHECK:STDOUT: %.loc9_40.1: %Enum = as_compatible %.loc9_32.2 [concrete = constants.%int_42.3d1] -// CHECK:STDOUT: %.loc9_40.2: %Enum = converted %.loc9_32.2, %.loc9_40.1 [concrete = constants.%int_42.3d1] +// CHECK:STDOUT: %.loc9_40.1: %Enum = as_compatible %.loc9_32.2 [concrete = constants.%int_42.4c2] +// CHECK:STDOUT: %.loc9_40.2: %Enum = converted %.loc9_32.2, %.loc9_40.1 [concrete = constants.%int_42.4c2] // CHECK:STDOUT: %.loc9_20: type = splice_block %Enum.ref.loc9_20 [concrete = constants.%Enum] { // CHECK:STDOUT: %Cpp.ref.loc9_17: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Enum.ref.loc9_20: type = name_ref Enum, imports.%Enum.decl [concrete = constants.%Enum] // CHECK:STDOUT: } // CHECK:STDOUT: %b: %Enum = value_binding b, %.loc9_40.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.7cb = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.d91 = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc10_29: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %a.ref.loc10: %Enum = name_ref a, imports.%int_0 [concrete = constants.%int_0.167] +// CHECK:STDOUT: %a.ref.loc10: %Enum = name_ref a, imports.%int_0 [concrete = constants.%int_0.822] // CHECK:STDOUT: %Cpp.ref.loc10_38: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Other.ref.loc10_41: type = name_ref Other, imports.%Other.decl [concrete = constants.%Other] -// CHECK:STDOUT: %.loc10_35.1: %Other = as_compatible %a.ref.loc10 [concrete = constants.%int_0.10c] -// CHECK:STDOUT: %.loc10_35.2: %Other = converted %a.ref.loc10, %.loc10_35.1 [concrete = constants.%int_0.10c] +// CHECK:STDOUT: %.loc10_35.1: %Other = as_compatible %a.ref.loc10 [concrete = constants.%int_0.10a] +// CHECK:STDOUT: %.loc10_35.2: %Other = converted %a.ref.loc10, %.loc10_35.1 [concrete = constants.%int_0.10a] // CHECK:STDOUT: %.loc10_20: type = splice_block %Other.ref.loc10_20 [concrete = constants.%Other] { // CHECK:STDOUT: %Cpp.ref.loc10_17: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Other.ref.loc10_20: type = name_ref Other, imports.%Other.decl [concrete = constants.%Other] diff --git a/toolchain/check/testdata/interop/cpp/enum/copy.carbon b/toolchain/check/testdata/interop/cpp/enum/copy.carbon index 81130635680a..61e8fa087aae 100644 --- a/toolchain/check/testdata/interop/cpp/enum/copy.carbon +++ b/toolchain/check/testdata/interop/cpp/enum/copy.carbon @@ -35,18 +35,18 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Enum: type = class_type @Enum [concrete] -// CHECK:STDOUT: %pattern_type.361: type = pattern_type %Enum [concrete] +// CHECK:STDOUT: %pattern_type.926: type = pattern_type %Enum [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.b05: = custom_witness (%Enum.Op), @Copy [concrete] -// CHECK:STDOUT: %Copy.facet.9d2: %Copy.type = facet_value %Enum, (%custom_witness.b05) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.fc7: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.9d2) [concrete] -// CHECK:STDOUT: %.2fc: type = fn_type_with_self_type %Copy.WithSelf.Op.type.fc7, %Copy.facet.9d2 [concrete] -// CHECK:STDOUT: %Enum.Op.bound.c3d: = bound_method %int_0, %Enum.Op [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: %int_1: %Enum = int_value 1 [concrete] -// CHECK:STDOUT: %Enum.Op.bound.6f8: = bound_method %int_1, %Enum.Op [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: } @@ -68,15 +68,15 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.361 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.361 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.926 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.926 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Enum = var %a.var_patt // CHECK:STDOUT: %Cpp.ref.loc8_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // 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: %impl.elem0.loc8: %.2fc = impl_witness_access constants.%custom_witness.b05, element0 [concrete = constants.%Enum.Op] -// CHECK:STDOUT: %bound_method.loc8: = bound_method %a.ref.loc8, %impl.elem0.loc8 [concrete = constants.%Enum.Op.bound.c3d] +// 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: %.loc8: type = splice_block %Enum.ref.loc8_13 [concrete = constants.%Enum] { @@ -88,8 +88,8 @@ 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: %.2fc = impl_witness_access constants.%custom_witness.b05, element0 [concrete = constants.%Enum.Op] -// CHECK:STDOUT: %bound_method.loc10: = bound_method %b.ref, %impl.elem0.loc10 [concrete = constants.%Enum.Op.bound.6f8] +// 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 diff --git a/toolchain/check/testdata/interop/cpp/enum/using.carbon b/toolchain/check/testdata/interop/cpp/enum/using.carbon index d47c594bb65f..a80a36cd942e 100644 --- a/toolchain/check/testdata/interop/cpp/enum/using.carbon +++ b/toolchain/check/testdata/interop/cpp/enum/using.carbon @@ -55,31 +55,31 @@ fn F() { // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Color: type = class_type @Color [concrete] -// CHECK:STDOUT: %pattern_type.3ad: type = pattern_type %Color [concrete] -// CHECK:STDOUT: %int_0.dc7: %Color = int_value 0 [concrete] -// CHECK:STDOUT: %int_1.c71: %Color = int_value 1 [concrete] +// CHECK:STDOUT: %pattern_type.732: type = pattern_type %Color [concrete] +// CHECK:STDOUT: %int_0.59e: %Color = int_value 0 [concrete] +// CHECK:STDOUT: %int_1.b76: %Color = int_value 1 [concrete] // CHECK:STDOUT: %Zoo: type = class_type @Zoo [concrete] // CHECK:STDOUT: %Animal: type = class_type @Animal [concrete] -// CHECK:STDOUT: %pattern_type.e29: type = pattern_type %Animal [concrete] -// CHECK:STDOUT: %int_0.f35: %Animal = int_value 0 [concrete] -// CHECK:STDOUT: %int_1.a89: %Animal = int_value 1 [concrete] +// CHECK:STDOUT: %pattern_type.8cd: type = pattern_type %Animal [concrete] +// CHECK:STDOUT: %int_0.648: %Animal = int_value 0 [concrete] +// CHECK:STDOUT: %int_1.e7b: %Animal = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { // CHECK:STDOUT: .Color = %Color.decl -// CHECK:STDOUT: .Blue = %int_1.c71 +// CHECK:STDOUT: .Blue = %int_1.b76 // CHECK:STDOUT: .Zoo = %Zoo.decl -// CHECK:STDOUT: .Dog = %int_1.a89 +// CHECK:STDOUT: .Dog = %int_1.e7b // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %Color.decl: type = class_decl @Color [concrete = constants.%Color] {} {} -// CHECK:STDOUT: %int_0.dc7: %Color = int_value 0 [concrete = constants.%int_0.dc7] -// CHECK:STDOUT: %int_1.c71: %Color = int_value 1 [concrete = constants.%int_1.c71] +// CHECK:STDOUT: %int_0.59e: %Color = int_value 0 [concrete = constants.%int_0.59e] +// CHECK:STDOUT: %int_1.b76: %Color = int_value 1 [concrete = constants.%int_1.b76] // CHECK:STDOUT: %Zoo.decl: type = class_decl @Zoo [concrete = constants.%Zoo] {} {} // CHECK:STDOUT: %Animal.decl: type = class_decl @Animal [concrete = constants.%Animal] {} {} -// CHECK:STDOUT: %int_0.f35: %Animal = int_value 0 [concrete = constants.%int_0.f35] -// CHECK:STDOUT: %int_1.a89: %Animal = int_value 1 [concrete = constants.%int_1.a89] +// CHECK:STDOUT: %int_0.648: %Animal = int_value 0 [concrete = constants.%int_0.648] +// CHECK:STDOUT: %int_1.e7b: %Animal = int_value 1 [concrete = constants.%int_1.e7b] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -89,33 +89,33 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %col.patt: %pattern_type.3ad = value_binding_pattern col [concrete] +// CHECK:STDOUT: %col.patt: %pattern_type.732 = value_binding_pattern col [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc18_32: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Color.ref.loc18_35: type = name_ref Color, imports.%Color.decl [concrete = constants.%Color] -// CHECK:STDOUT: %Red.ref: %Color = name_ref Red, imports.%int_0.dc7 [concrete = constants.%int_0.dc7] +// CHECK:STDOUT: %Red.ref: %Color = name_ref Red, imports.%int_0.59e [concrete = constants.%int_0.59e] // CHECK:STDOUT: %.loc18: type = splice_block %Color.ref.loc18_23 [concrete = constants.%Color] { // CHECK:STDOUT: %Cpp.ref.loc18_20: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Color.ref.loc18_23: type = name_ref Color, imports.%Color.decl [concrete = constants.%Color] // CHECK:STDOUT: } // CHECK:STDOUT: %col: %Color = value_binding col, %Red.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %colb.patt: %pattern_type.3ad = value_binding_pattern colb [concrete] +// CHECK:STDOUT: %colb.patt: %pattern_type.732 = value_binding_pattern colb [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc19_33: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %Blue.ref: %Color = name_ref Blue, imports.%int_1.c71 [concrete = constants.%int_1.c71] +// CHECK:STDOUT: %Blue.ref: %Color = name_ref Blue, imports.%int_1.b76 [concrete = constants.%int_1.b76] // CHECK:STDOUT: %.loc19: type = splice_block %Color.ref.loc19 [concrete = constants.%Color] { // CHECK:STDOUT: %Cpp.ref.loc19_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Color.ref.loc19: type = name_ref Color, imports.%Color.decl [concrete = constants.%Color] // CHECK:STDOUT: } // CHECK:STDOUT: %colb: %Color = value_binding colb, %Blue.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pet.patt: %pattern_type.e29 = value_binding_pattern pet [concrete] +// CHECK:STDOUT: %pet.patt: %pattern_type.8cd = value_binding_pattern pet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc20_37: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Zoo.ref.loc20_40: type = name_ref Zoo, imports.%Zoo.decl [concrete = constants.%Zoo] // CHECK:STDOUT: %Animal.ref.loc20_44: type = name_ref Animal, imports.%Animal.decl [concrete = constants.%Animal] -// CHECK:STDOUT: %Cat.ref: %Animal = name_ref Cat, imports.%int_0.f35 [concrete = constants.%int_0.f35] +// CHECK:STDOUT: %Cat.ref: %Animal = name_ref Cat, imports.%int_0.648 [concrete = constants.%int_0.648] // CHECK:STDOUT: %.loc20: type = splice_block %Animal.ref.loc20_27 [concrete = constants.%Animal] { // CHECK:STDOUT: %Cpp.ref.loc20_20: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Zoo.ref.loc20_23: type = name_ref Zoo, imports.%Zoo.decl [concrete = constants.%Zoo] @@ -123,10 +123,10 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %pet: %Animal = value_binding pet, %Cat.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pet2.patt: %pattern_type.e29 = value_binding_pattern pet2 [concrete] +// CHECK:STDOUT: %pet2.patt: %pattern_type.8cd = value_binding_pattern pet2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc21_38: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %Dog.ref: %Animal = name_ref Dog, imports.%int_1.a89 [concrete = constants.%int_1.a89] +// CHECK:STDOUT: %Dog.ref: %Animal = name_ref Dog, imports.%int_1.e7b [concrete = constants.%int_1.e7b] // CHECK:STDOUT: %.loc21: type = splice_block %Animal.ref.loc21 [concrete = constants.%Animal] { // CHECK:STDOUT: %Cpp.ref.loc21_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Zoo.ref.loc21: type = name_ref Zoo, imports.%Zoo.decl [concrete = constants.%Zoo] 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 490d45813308..c4fbc2477077 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 @@ -566,10 +566,10 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.de3: = impl_witness imports.%Copy.impl_witness_table.34b [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.de3) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.079: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.022: type = fn_type_with_self_type %Copy.WithSelf.Op.type.079, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.713: = impl_witness imports.%Copy.impl_witness_table.1ff [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.713) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.4a4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.15e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.4a4, %Copy.facet [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: %bool.as.Copy.impl.Op.bound: = bound_method %true, %bool.as.Copy.impl.Op [concrete] @@ -588,8 +588,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.f63: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.34b = impl_witness_table (%Core.import_ref.f63), @bool.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.1ff = impl_witness_table (%Core.import_ref.9c3), @bool.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -597,7 +597,7 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem0: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %true, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] // CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method(%true) [concrete = constants.%true] // CHECK:STDOUT: %.loc8_11.1: ref bool = temporary_storage @@ -620,10 +620,10 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.de3: = impl_witness imports.%Copy.impl_witness_table.34b [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.de3) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.079: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.022: type = fn_type_with_self_type %Copy.WithSelf.Op.type.079, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.713: = impl_witness imports.%Copy.impl_witness_table.1ff [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.713) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.4a4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.15e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.4a4, %Copy.facet [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: %bool.as.Copy.impl.Op.bound: = bound_method %false, %bool.as.Copy.impl.Op [concrete] @@ -642,8 +642,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.f63: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.34b = impl_witness_table (%Core.import_ref.f63), @bool.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.1ff = impl_witness_table (%Core.import_ref.9c3), @bool.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -651,7 +651,7 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %false: bool = bool_literal false [concrete = constants.%false] -// CHECK:STDOUT: %impl.elem0: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %false, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] // CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method(%false) [concrete = constants.%false] // CHECK:STDOUT: %.loc8_11.1: ref bool = temporary_storage @@ -673,8 +673,8 @@ fn F() { // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] // CHECK:STDOUT: %Negate.impl_witness: = impl_witness imports.%Negate.impl_witness_table [concrete] // CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, (%Negate.impl_witness) [concrete] -// CHECK:STDOUT: %Negate.WithSelf.Op.type.309: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] -// CHECK:STDOUT: %.f38: type = fn_type_with_self_type %Negate.WithSelf.Op.type.309, %Negate.facet [concrete] +// CHECK:STDOUT: %Negate.WithSelf.Op.type.802: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] +// CHECK:STDOUT: %.765: type = fn_type_with_self_type %Negate.WithSelf.Op.type.802, %Negate.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.type: type = fn_type @Core.IntLiteral.as.Negate.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op: %Core.IntLiteral.as.Negate.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.bound: = bound_method %int_1, %Core.IntLiteral.as.Negate.impl.Op [concrete] @@ -682,41 +682,41 @@ fn F() { // CHECK:STDOUT: %int_8: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i8: type = class_type @Int, @Int(%int_8) [concrete] -// CHECK:STDOUT: %ptr.303: type = ptr_type %i8 [concrete] +// CHECK:STDOUT: %ptr.de5: type = ptr_type %i8 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %i8.builtin: type = int_type signed, %int_8 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.046: type = facet_type <@ImplicitAs, @ImplicitAs(%i8)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.869: type = facet_type <@ImplicitAs, @ImplicitAs(%i8)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.361: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_8) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.3d1: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_8) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bcf: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.3d1 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.046 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.361) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.389: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i8, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.d2a: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.389, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_-1.638, %Core.IntLiteral.as.ImplicitAs.impl.Convert.bcf [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.bcf, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_8) [concrete] -// CHECK:STDOUT: %bound_method.e81: = bound_method %int_-1.638, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_-1.c6d: %i8 = int_value -1 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.b46: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_8) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.70a: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_8) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.07d: %Int.as.Copy.impl.Op.type.70a = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i8, (%Copy.impl_witness.b46) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.297: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.f69: type = fn_type_with_self_type %Copy.WithSelf.Op.type.297, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_-1.c6d, %Int.as.Copy.impl.Op.07d [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.07d, @Int.as.Copy.impl.Op(%int_8) [concrete] -// CHECK:STDOUT: %bound_method.8f0: = bound_method %int_-1.c6d, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.6ff: ref %i8 = temporary invalid, %int_-1.c6d [concrete] -// CHECK:STDOUT: %addr: %ptr.303 = addr_of %.6ff [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_11.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.6ff, %Destroy.Op.2dd605.2 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.925: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_8) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.f5b: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_8) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.868: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.f5b = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.869 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.925) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.41c: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i8, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.003: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.41c, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_-1.638, %Core.IntLiteral.as.ImplicitAs.impl.Convert.868 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.868, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_8) [concrete] +// CHECK:STDOUT: %bound_method.628: = bound_method %int_-1.638, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_-1.e55: %i8 = int_value -1 [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.f74: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_8) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.738: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_8) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.7fb: %Int.as.Copy.impl.Op.type.738 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i8, (%Copy.impl_witness.f74) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.ba8: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.dde: type = fn_type_with_self_type %Copy.WithSelf.Op.type.ba8, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_-1.e55, %Int.as.Copy.impl.Op.7fb [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.7fb, @Int.as.Copy.impl.Op(%int_8) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -726,17 +726,17 @@ fn F() { // 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.abd = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63: %Core.IntLiteral.as.Negate.impl.Op.type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] -// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.f63), @Core.IntLiteral.as.Negate.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Core.IntLiteral.as.Negate.impl.Op.type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] +// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.9c3), @Core.IntLiteral.as.Negate.impl [concrete] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -744,28 +744,28 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] -// CHECK:STDOUT: %impl.elem1: %.f38 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.765 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op.bound] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.call: init Core.IntLiteral = call %bound_method.loc8_11.1(%int_1) [concrete = constants.%int_-1.638] -// CHECK:STDOUT: %impl.elem0.loc8_11.1: %.d2a = impl_witness_access constants.%ImplicitAs.impl_witness.361, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bcf] +// CHECK:STDOUT: %impl.elem0.loc8_11.1: %.003 = impl_witness_access constants.%ImplicitAs.impl_witness.925, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.868] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %Core.IntLiteral.as.Negate.impl.Op.call, %impl.elem0.loc8_11.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8_11.1: = specific_function %impl.elem0.loc8_11.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_8) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_11.3: = bound_method %Core.IntLiteral.as.Negate.impl.Op.call, %specific_fn.loc8_11.1 [concrete = constants.%bound_method.e81] +// CHECK:STDOUT: %bound_method.loc8_11.3: = bound_method %Core.IntLiteral.as.Negate.impl.Op.call, %specific_fn.loc8_11.1 [concrete = constants.%bound_method.628] // CHECK:STDOUT: %.loc8_11.1: Core.IntLiteral = value_of_initializer %Core.IntLiteral.as.Negate.impl.Op.call [concrete = constants.%int_-1.638] // CHECK:STDOUT: %.loc8_11.2: Core.IntLiteral = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc8_11.1 [concrete = constants.%int_-1.638] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i8 = call %bound_method.loc8_11.3(%.loc8_11.2) [concrete = constants.%int_-1.c6d] -// CHECK:STDOUT: %.loc8_11.3: %i8 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_-1.c6d] -// CHECK:STDOUT: %.loc8_11.4: %i8 = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc8_11.3 [concrete = constants.%int_-1.c6d] -// CHECK:STDOUT: %impl.elem0.loc8_11.2: %.f69 = impl_witness_access constants.%Copy.impl_witness.b46, element0 [concrete = constants.%Int.as.Copy.impl.Op.07d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i8 = call %bound_method.loc8_11.3(%.loc8_11.2) [concrete = constants.%int_-1.e55] +// CHECK:STDOUT: %.loc8_11.3: %i8 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_-1.e55] +// CHECK:STDOUT: %.loc8_11.4: %i8 = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc8_11.3 [concrete = constants.%int_-1.e55] +// CHECK:STDOUT: %impl.elem0.loc8_11.2: %.dde = impl_witness_access constants.%Copy.impl_witness.f74, element0 [concrete = constants.%Int.as.Copy.impl.Op.7fb] // CHECK:STDOUT: %bound_method.loc8_11.4: = bound_method %.loc8_11.4, %impl.elem0.loc8_11.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc8_11.2: = specific_function %impl.elem0.loc8_11.2, @Int.as.Copy.impl.Op(constants.%int_8) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_11.5: = bound_method %.loc8_11.4, %specific_fn.loc8_11.2 [concrete = constants.%bound_method.8f0] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i8 = call %bound_method.loc8_11.5(%.loc8_11.4) [concrete = constants.%int_-1.c6d] +// CHECK:STDOUT: %bound_method.loc8_11.5: = bound_method %.loc8_11.4, %specific_fn.loc8_11.2 [concrete = constants.%bound_method.cfe] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i8 = call %bound_method.loc8_11.5(%.loc8_11.4) [concrete = constants.%int_-1.e55] // CHECK:STDOUT: %.loc8_11.5: ref %i8 = temporary_storage -// CHECK:STDOUT: %.loc8_11.6: ref %i8 = temporary %.loc8_11.5, %Int.as.Copy.impl.Op.call [concrete = constants.%.6ff] -// CHECK:STDOUT: %addr: %ptr.303 = addr_of %.loc8_11.6 [concrete = constants.%addr] +// 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.%.6ff) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.309) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -786,41 +786,41 @@ fn F() { // CHECK:STDOUT: %int_8: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %u8: type = class_type @UInt, @UInt(%int_8) [concrete] -// CHECK:STDOUT: %ptr.9b7: type = ptr_type %u8 [concrete] +// CHECK:STDOUT: %ptr.093: type = ptr_type %u8 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %u8.builtin: type = int_type unsigned, %int_8 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.b41: type = facet_type <@ImplicitAs, @ImplicitAs(%u8)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.91f: type = facet_type <@ImplicitAs, @ImplicitAs(%u8)> [concrete] // CHECK:STDOUT: %To.fe9: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.501(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.498: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6 = struct_value () [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.b68(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.170: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199 = struct_value () [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.c41: = impl_witness imports.%ImplicitAs.impl_witness_table.0c6, @Core.IntLiteral.as.ImplicitAs.impl.501(%int_8) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.17e: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.501(%int_8) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.59a: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.17e = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.b41 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c41) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.dfc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%u8, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.cee: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.dfc, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.59a [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.59a, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_8) [concrete] -// CHECK:STDOUT: %bound_method.286: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.96a: %u8 = int_value 1 [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.743: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.521: %UInt.as.Copy.impl.Op.type.743 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.c46: = impl_witness imports.%Copy.impl_witness_table.306, @UInt.as.Copy.impl(%int_8) [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.90d: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%int_8) [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.fef: %UInt.as.Copy.impl.Op.type.90d = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %u8, (%Copy.impl_witness.c46) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cf6: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.046: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cf6, %Copy.facet [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.bound: = bound_method %int_1.96a, %UInt.as.Copy.impl.Op.fef [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.fef, @UInt.as.Copy.impl.Op(%int_8) [concrete] -// CHECK:STDOUT: %bound_method.090: = bound_method %int_1.96a, %UInt.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.2a8: ref %u8 = temporary invalid, %int_1.96a [concrete] -// CHECK:STDOUT: %addr: %ptr.9b7 = addr_of %.2a8 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_11.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.2a8, %Destroy.Op.2dd605.2 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.fad: = impl_witness imports.%ImplicitAs.impl_witness_table.42f, @Core.IntLiteral.as.ImplicitAs.impl.b68(%int_8) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e32: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.b68(%int_8) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.a13: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e32 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.91f = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.fad) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c0f: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%u8, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.633: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c0f, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.a13 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.a13, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_8) [concrete] +// CHECK:STDOUT: %bound_method.ce6: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.067: %u8 = int_value 1 [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.0c5: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%N) [symbolic] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.38a: %UInt.as.Copy.impl.Op.type.0c5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.ed5: = impl_witness imports.%Copy.impl_witness_table.fe3, @UInt.as.Copy.impl(%int_8) [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.83b: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%int_8) [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.dcb: %UInt.as.Copy.impl.Op.type.83b = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %u8, (%Copy.impl_witness.ed5) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.7ac: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.a84: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7ac, %Copy.facet [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.bound: = bound_method %int_1.067, %UInt.as.Copy.impl.Op.dcb [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.dcb, @UInt.as.Copy.impl.Op(%int_8) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -834,10 +834,10 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.e9f: @Core.IntLiteral.as.ImplicitAs.impl.501.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.501.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.498)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0c6 = impl_witness_table (%Core.import_ref.e9f), @Core.IntLiteral.as.ImplicitAs.impl.501 [concrete] -// CHECK:STDOUT: %Core.import_ref.3cf: @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op.type (%UInt.as.Copy.impl.Op.type.743) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op (constants.%UInt.as.Copy.impl.Op.521)] -// CHECK:STDOUT: %Copy.impl_witness_table.306 = impl_witness_table (%Core.import_ref.3cf), @UInt.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.aa5: @Core.IntLiteral.as.ImplicitAs.impl.b68.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.b68.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.170)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.42f = impl_witness_table (%Core.import_ref.aa5), @Core.IntLiteral.as.ImplicitAs.impl.b68 [concrete] +// CHECK:STDOUT: %Core.import_ref.791: @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op.type (%UInt.as.Copy.impl.Op.type.0c5) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op (constants.%UInt.as.Copy.impl.Op.38a)] +// CHECK:STDOUT: %Copy.impl_witness_table.fe3 = impl_witness_table (%Core.import_ref.791), @UInt.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -845,23 +845,23 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc8_11.1: %.cee = impl_witness_access constants.%ImplicitAs.impl_witness.c41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.59a] +// CHECK:STDOUT: %impl.elem0.loc8_11.1: %.633 = impl_witness_access constants.%ImplicitAs.impl_witness.fad, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a13] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0.loc8_11.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8_11.1: = specific_function %impl.elem0.loc8_11.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_8) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn.loc8_11.1 [concrete = constants.%bound_method.286] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %u8 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.96a] -// CHECK:STDOUT: %.loc8_11.1: %u8 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.96a] -// CHECK:STDOUT: %.loc8_11.2: %u8 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.96a] -// CHECK:STDOUT: %impl.elem0.loc8_11.2: %.046 = impl_witness_access constants.%Copy.impl_witness.c46, element0 [concrete = constants.%UInt.as.Copy.impl.Op.fef] +// CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn.loc8_11.1 [concrete = constants.%bound_method.ce6] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %u8 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.067] +// CHECK:STDOUT: %.loc8_11.1: %u8 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.067] +// CHECK:STDOUT: %.loc8_11.2: %u8 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.067] +// CHECK:STDOUT: %impl.elem0.loc8_11.2: %.a84 = impl_witness_access constants.%Copy.impl_witness.ed5, element0 [concrete = constants.%UInt.as.Copy.impl.Op.dcb] // CHECK:STDOUT: %bound_method.loc8_11.3: = bound_method %.loc8_11.2, %impl.elem0.loc8_11.2 [concrete = constants.%UInt.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc8_11.2: = specific_function %impl.elem0.loc8_11.2, @UInt.as.Copy.impl.Op(constants.%int_8) [concrete = constants.%UInt.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_11.4: = bound_method %.loc8_11.2, %specific_fn.loc8_11.2 [concrete = constants.%bound_method.090] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.call: init %u8 = call %bound_method.loc8_11.4(%.loc8_11.2) [concrete = constants.%int_1.96a] +// CHECK:STDOUT: %bound_method.loc8_11.4: = bound_method %.loc8_11.2, %specific_fn.loc8_11.2 [concrete = constants.%bound_method.0fe] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.call: init %u8 = call %bound_method.loc8_11.4(%.loc8_11.2) [concrete = constants.%int_1.067] // CHECK:STDOUT: %.loc8_11.3: ref %u8 = temporary_storage -// CHECK:STDOUT: %.loc8_11.4: ref %u8 = temporary %.loc8_11.3, %UInt.as.Copy.impl.Op.call [concrete = constants.%.2a8] -// CHECK:STDOUT: %addr: %ptr.9b7 = addr_of %.loc8_11.4 [concrete = constants.%addr] +// 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.%.2a8) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.599) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -882,31 +882,31 @@ fn F() { // CHECK:STDOUT: %char: type = class_type @Char [concrete] // CHECK:STDOUT: %int_8: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %u8.builtin: type = int_type unsigned, %int_8 [concrete] -// CHECK:STDOUT: %ptr.d63: type = ptr_type %char [concrete] +// CHECK:STDOUT: %ptr.b46: type = ptr_type %char [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.f44: type = facet_type <@ImplicitAs, @ImplicitAs(%char)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.e81: type = facet_type <@ImplicitAs, @ImplicitAs(%char)> [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.4fa: = impl_witness imports.%ImplicitAs.impl_witness_table.e28 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.f44 = facet_value Core.CharLiteral, (%ImplicitAs.impl_witness.4fa) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b40: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%char, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.dd0: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b40, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.780: = impl_witness imports.%ImplicitAs.impl_witness_table.8a5 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.e81 = facet_value Core.CharLiteral, (%ImplicitAs.impl_witness.780) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.0c6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%char, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1e6: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.0c6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.CharLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert: %Core.CharLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %.d16, %Core.CharLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %int_88: %char = int_value 88 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.937: = impl_witness imports.%Copy.impl_witness_table.045 [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %char, (%Copy.impl_witness.937) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.386: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.e5e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.386, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.769: = impl_witness imports.%Copy.impl_witness_table.5aa [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %char, (%Copy.impl_witness.769) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.18f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.367: type = fn_type_with_self_type %Copy.WithSelf.Op.type.18f, %Copy.facet [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op.type: type = fn_type @char.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op: %char.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op.bound: = bound_method %int_88, %char.as.Copy.impl.Op [concrete] -// CHECK:STDOUT: %.5b5: ref %char = temporary invalid, %int_88 [concrete] -// CHECK:STDOUT: %addr: %ptr.d63 = addr_of %.5b5 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_11.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.5b5, %Destroy.Op.2dd605.2 [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.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 %.2ff, %Destroy.Op.1a2547.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -920,10 +920,10 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ade: %Core.CharLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/char, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.e28 = impl_witness_table (%Core.import_ref.ade), @Core.CharLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.f63: %char.as.Copy.impl.Op.type = import_ref Core//prelude/types/char, loc{{\d+_\d+}}, loaded [concrete = constants.%char.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.045 = impl_witness_table (%Core.import_ref.f63), @char.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.06c: %Core.CharLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/char, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.8a5 = impl_witness_table (%Core.import_ref.06c), @Core.CharLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %char.as.Copy.impl.Op.type = import_ref Core//prelude/types/char, loc{{\d+_\d+}}, loaded [concrete = constants.%char.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.5aa = impl_witness_table (%Core.import_ref.9c3), @char.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -931,19 +931,19 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_11.1: Core.CharLiteral = char_value U+0058 [concrete = constants.%.d16] -// CHECK:STDOUT: %impl.elem0.loc8_11.1: %.dd0 = impl_witness_access constants.%ImplicitAs.impl_witness.4fa, element0 [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc8_11.1: %.1e6 = impl_witness_access constants.%ImplicitAs.impl_witness.780, element0 [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %.loc8_11.1, %impl.elem0.loc8_11.1 [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert.call: init %char = call %bound_method.loc8_11.1(%.loc8_11.1) [concrete = constants.%int_88] // CHECK:STDOUT: %.loc8_11.2: %char = value_of_initializer %Core.CharLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_88] // CHECK:STDOUT: %.loc8_11.3: %char = converted %.loc8_11.1, %.loc8_11.2 [concrete = constants.%int_88] -// CHECK:STDOUT: %impl.elem0.loc8_11.2: %.e5e = impl_witness_access constants.%Copy.impl_witness.937, element0 [concrete = constants.%char.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc8_11.2: %.367 = impl_witness_access constants.%Copy.impl_witness.769, element0 [concrete = constants.%char.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %.loc8_11.3, %impl.elem0.loc8_11.2 [concrete = constants.%char.as.Copy.impl.Op.bound] // CHECK:STDOUT: %char.as.Copy.impl.Op.call: init %char = call %bound_method.loc8_11.2(%.loc8_11.3) [concrete = constants.%int_88] // CHECK:STDOUT: %.loc8_11.4: ref %char = temporary_storage -// CHECK:STDOUT: %.loc8_11.5: ref %char = temporary %.loc8_11.4, %char.as.Copy.impl.Op.call [concrete = constants.%.5b5] -// CHECK:STDOUT: %addr: %ptr.d63 = addr_of %.loc8_11.5 [concrete = constants.%addr] +// 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.%.5b5) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.2ff) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -989,20 +989,20 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1016,8 +1016,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -1025,13 +1025,13 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc13_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc13_11.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc13_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc13_11.2: %i32 = converted %int_1, %.loc13_11.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc13_11.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc13_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc13_11.2: %i32 = converted %int_1, %.loc13_11.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc13_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1095,40 +1095,40 @@ fn F() { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] // CHECK:STDOUT: %i16.builtin: type = int_type signed, %int_16 [concrete] -// CHECK:STDOUT: %As.type.fff: type = facet_type <@As, @As(%i16)> [concrete] +// CHECK:STDOUT: %As.type.6f1: type = facet_type <@As, @As(%i16)> [concrete] // CHECK:STDOUT: %To.fe9: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.16a: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.ced: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.0b6: %Core.IntLiteral.as.As.impl.Convert.type.ced = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fff = facet_value Core.IntLiteral, (%As.impl_witness.16a) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.28f: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] -// CHECK:STDOUT: %.696: type = fn_type_with_self_type %As.WithSelf.Convert.type.28f, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.0b6 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.0b6, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.7f7: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.792: %i16 = int_value 1 [concrete] -// CHECK:STDOUT: %ptr.83d: type = ptr_type %i16 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.820: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.4b7: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.70c: %Core.IntLiteral.as.As.impl.Convert.type.4b7 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.6f1 = facet_value Core.IntLiteral, (%As.impl_witness.820) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.d73: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] +// CHECK:STDOUT: %.6b5: type = fn_type_with_self_type %As.WithSelf.Convert.type.d73, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.70c [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.70c, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] +// CHECK:STDOUT: %bound_method.a0f: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.d17: %i16 = int_value 1 [concrete] +// CHECK:STDOUT: %ptr.686: type = ptr_type %i16 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.980: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.fe1: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a44: %Int.as.Copy.impl.Op.type.fe1 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.980) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cf9: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.799: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cf9, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.792, %Int.as.Copy.impl.Op.a44 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.a44, @Int.as.Copy.impl.Op(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.055: = bound_method %int_1.792, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.e50: ref %i16 = temporary invalid, %int_1.792 [concrete] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.e50 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_13.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e50, %Destroy.Op.2dd605.2 [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.7d9: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.16c: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.25c: %Int.as.Copy.impl.Op.type.16c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.7d9) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.332: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.000: type = fn_type_with_self_type %Copy.WithSelf.Op.type.332, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.d17, %Int.as.Copy.impl.Op.25c [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.25c, @Int.as.Copy.impl.Op(%int_16) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1137,15 +1137,15 @@ fn F() { // 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.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -1154,23 +1154,23 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i16: type = type_literal constants.%i16 [concrete = constants.%i16] -// CHECK:STDOUT: %impl.elem0.loc8_13.1: %.696 = impl_witness_access constants.%As.impl_witness.16a, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.0b6] +// CHECK:STDOUT: %impl.elem0.loc8_13.1: %.6b5 = impl_witness_access constants.%As.impl_witness.820, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.70c] // CHECK:STDOUT: %bound_method.loc8_13.1: = bound_method %int_1, %impl.elem0.loc8_13.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8_13.1: = specific_function %impl.elem0.loc8_13.1, @Core.IntLiteral.as.As.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1, %specific_fn.loc8_13.1 [concrete = constants.%bound_method.7f7] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc8_13.2: %i16 = converted %int_1, %.loc8_13.1 [concrete = constants.%int_1.792] -// CHECK:STDOUT: %impl.elem0.loc8_13.2: %.799 = impl_witness_access constants.%Copy.impl_witness.980, element0 [concrete = constants.%Int.as.Copy.impl.Op.a44] +// CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1, %specific_fn.loc8_13.1 [concrete = constants.%bound_method.a0f] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc8_13.2: %i16 = converted %int_1, %.loc8_13.1 [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %impl.elem0.loc8_13.2: %.000 = impl_witness_access constants.%Copy.impl_witness.7d9, element0 [concrete = constants.%Int.as.Copy.impl.Op.25c] // CHECK:STDOUT: %bound_method.loc8_13.3: = bound_method %.loc8_13.2, %impl.elem0.loc8_13.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc8_13.2: = specific_function %impl.elem0.loc8_13.2, @Int.as.Copy.impl.Op(constants.%int_16) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_13.4: = bound_method %.loc8_13.2, %specific_fn.loc8_13.2 [concrete = constants.%bound_method.055] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc8_13.4(%.loc8_13.2) [concrete = constants.%int_1.792] +// CHECK:STDOUT: %bound_method.loc8_13.4: = bound_method %.loc8_13.2, %specific_fn.loc8_13.2 [concrete = constants.%bound_method.47b] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc8_13.4(%.loc8_13.2) [concrete = constants.%int_1.d17] // CHECK:STDOUT: %.loc8_13.3: ref %i16 = temporary_storage -// CHECK:STDOUT: %.loc8_13.4: ref %i16 = temporary %.loc8_13.3, %Int.as.Copy.impl.Op.call [concrete = constants.%.e50] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.loc8_13.4 [concrete = constants.%addr] +// 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.%.e50) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1191,41 +1191,41 @@ fn F() { // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] -// CHECK:STDOUT: %ptr.83d: type = ptr_type %i16 [concrete] +// CHECK:STDOUT: %ptr.686: type = ptr_type %i16 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %i16.builtin: type = int_type signed, %int_16 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.be3: type = facet_type <@ImplicitAs, @ImplicitAs(%i16)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.044: type = facet_type <@ImplicitAs, @ImplicitAs(%i16)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.685: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.720: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.f75: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.720 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.be3 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.685) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.e56: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i16, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.94b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.e56, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_32767.f4b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.f75 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.f75, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.753: = bound_method %int_32767.f4b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_32767.13d: %i16 = int_value 32767 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.980: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.fe1: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a44: %Int.as.Copy.impl.Op.type.fe1 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.980) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cf9: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.799: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cf9, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_32767.13d, %Int.as.Copy.impl.Op.a44 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.a44, @Int.as.Copy.impl.Op(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.818: = bound_method %int_32767.13d, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.570: ref %i16 = temporary invalid, %int_32767.13d [concrete] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.570 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_11.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.570, %Destroy.Op.2dd605.2 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.884: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.c22: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.0c0: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.c22 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.044 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.884) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.d17: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i16, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.769: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.d17, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_32767.f4b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0c0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.0c0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_16) [concrete] +// CHECK:STDOUT: %bound_method.67b: = bound_method %int_32767.f4b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_32767.6d2: %i16 = int_value 32767 [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.7d9: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.16c: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.25c: %Int.as.Copy.impl.Op.type.16c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.7d9) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.332: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.000: type = fn_type_with_self_type %Copy.WithSelf.Op.type.332, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_32767.6d2, %Int.as.Copy.impl.Op.25c [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.25c, @Int.as.Copy.impl.Op(%int_16) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1239,10 +1239,10 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -1250,23 +1250,23 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_32767: Core.IntLiteral = int_value 32767 [concrete = constants.%int_32767.f4b] -// CHECK:STDOUT: %impl.elem0.loc8_11.1: %.94b = impl_witness_access constants.%ImplicitAs.impl_witness.685, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f75] +// CHECK:STDOUT: %impl.elem0.loc8_11.1: %.769 = impl_witness_access constants.%ImplicitAs.impl_witness.884, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.0c0] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_32767, %impl.elem0.loc8_11.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8_11.1: = specific_function %impl.elem0.loc8_11.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_32767, %specific_fn.loc8_11.1 [concrete = constants.%bound_method.753] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i16 = call %bound_method.loc8_11.2(%int_32767) [concrete = constants.%int_32767.13d] -// CHECK:STDOUT: %.loc8_11.1: %i16 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_32767.13d] -// CHECK:STDOUT: %.loc8_11.2: %i16 = converted %int_32767, %.loc8_11.1 [concrete = constants.%int_32767.13d] -// CHECK:STDOUT: %impl.elem0.loc8_11.2: %.799 = impl_witness_access constants.%Copy.impl_witness.980, element0 [concrete = constants.%Int.as.Copy.impl.Op.a44] +// CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_32767, %specific_fn.loc8_11.1 [concrete = constants.%bound_method.67b] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i16 = call %bound_method.loc8_11.2(%int_32767) [concrete = constants.%int_32767.6d2] +// CHECK:STDOUT: %.loc8_11.1: %i16 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_32767.6d2] +// CHECK:STDOUT: %.loc8_11.2: %i16 = converted %int_32767, %.loc8_11.1 [concrete = constants.%int_32767.6d2] +// CHECK:STDOUT: %impl.elem0.loc8_11.2: %.000 = impl_witness_access constants.%Copy.impl_witness.7d9, element0 [concrete = constants.%Int.as.Copy.impl.Op.25c] // CHECK:STDOUT: %bound_method.loc8_11.3: = bound_method %.loc8_11.2, %impl.elem0.loc8_11.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc8_11.2: = specific_function %impl.elem0.loc8_11.2, @Int.as.Copy.impl.Op(constants.%int_16) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_11.4: = bound_method %.loc8_11.2, %specific_fn.loc8_11.2 [concrete = constants.%bound_method.818] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc8_11.4(%.loc8_11.2) [concrete = constants.%int_32767.13d] +// CHECK:STDOUT: %bound_method.loc8_11.4: = bound_method %.loc8_11.2, %specific_fn.loc8_11.2 [concrete = constants.%bound_method.647] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc8_11.4(%.loc8_11.2) [concrete = constants.%int_32767.6d2] // CHECK:STDOUT: %.loc8_11.3: ref %i16 = temporary_storage -// CHECK:STDOUT: %.loc8_11.4: ref %i16 = temporary %.loc8_11.3, %Int.as.Copy.impl.Op.call [concrete = constants.%.570] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.loc8_11.4 [concrete = constants.%addr] +// 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.%.570) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.0d8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1287,8 +1287,8 @@ fn F() { // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] // CHECK:STDOUT: %Negate.impl_witness: = impl_witness imports.%Negate.impl_witness_table [concrete] // CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, (%Negate.impl_witness) [concrete] -// CHECK:STDOUT: %Negate.WithSelf.Op.type.309: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] -// CHECK:STDOUT: %.f38: type = fn_type_with_self_type %Negate.WithSelf.Op.type.309, %Negate.facet [concrete] +// CHECK:STDOUT: %Negate.WithSelf.Op.type.802: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] +// CHECK:STDOUT: %.765: type = fn_type_with_self_type %Negate.WithSelf.Op.type.802, %Negate.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.type: type = fn_type @Core.IntLiteral.as.Negate.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op: %Core.IntLiteral.as.Negate.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.bound: = bound_method %int_32768, %Core.IntLiteral.as.Negate.impl.Op [concrete] @@ -1296,41 +1296,41 @@ fn F() { // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] -// CHECK:STDOUT: %ptr.83d: type = ptr_type %i16 [concrete] +// CHECK:STDOUT: %ptr.686: type = ptr_type %i16 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %i16.builtin: type = int_type signed, %int_16 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.be3: type = facet_type <@ImplicitAs, @ImplicitAs(%i16)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.044: type = facet_type <@ImplicitAs, @ImplicitAs(%i16)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.685: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.720: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.f75: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.720 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.be3 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.685) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.e56: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i16, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.94b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.e56, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_-32768.882, %Core.IntLiteral.as.ImplicitAs.impl.Convert.f75 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.f75, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.f20: = bound_method %int_-32768.882, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_-32768.e71: %i16 = int_value -32768 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.980: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.fe1: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a44: %Int.as.Copy.impl.Op.type.fe1 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.980) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cf9: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.799: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cf9, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_-32768.e71, %Int.as.Copy.impl.Op.a44 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.a44, @Int.as.Copy.impl.Op(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.1c0: = bound_method %int_-32768.e71, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.09c: ref %i16 = temporary invalid, %int_-32768.e71 [concrete] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.09c [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_11.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.09c, %Destroy.Op.2dd605.2 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.884: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.c22: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.0c0: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.c22 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.044 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.884) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.d17: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i16, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.769: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.d17, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_-32768.882, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0c0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.0c0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_16) [concrete] +// CHECK:STDOUT: %bound_method.d1e: = bound_method %int_-32768.882, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_-32768.eb1: %i16 = int_value -32768 [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.7d9: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.16c: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.25c: %Int.as.Copy.impl.Op.type.16c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.7d9) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.332: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.000: type = fn_type_with_self_type %Copy.WithSelf.Op.type.332, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_-32768.eb1, %Int.as.Copy.impl.Op.25c [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.25c, @Int.as.Copy.impl.Op(%int_16) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1340,17 +1340,17 @@ fn F() { // 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.abd = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63: %Core.IntLiteral.as.Negate.impl.Op.type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] -// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.f63), @Core.IntLiteral.as.Negate.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Core.IntLiteral.as.Negate.impl.Op.type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] +// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.9c3), @Core.IntLiteral.as.Negate.impl [concrete] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -1358,28 +1358,28 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_32768: Core.IntLiteral = int_value 32768 [concrete = constants.%int_32768] -// CHECK:STDOUT: %impl.elem1: %.f38 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.765 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_32768, %impl.elem1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op.bound] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.call: init Core.IntLiteral = call %bound_method.loc8_11.1(%int_32768) [concrete = constants.%int_-32768.882] -// CHECK:STDOUT: %impl.elem0.loc8_11.1: %.94b = impl_witness_access constants.%ImplicitAs.impl_witness.685, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f75] +// CHECK:STDOUT: %impl.elem0.loc8_11.1: %.769 = impl_witness_access constants.%ImplicitAs.impl_witness.884, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.0c0] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %Core.IntLiteral.as.Negate.impl.Op.call, %impl.elem0.loc8_11.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8_11.1: = specific_function %impl.elem0.loc8_11.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_11.3: = bound_method %Core.IntLiteral.as.Negate.impl.Op.call, %specific_fn.loc8_11.1 [concrete = constants.%bound_method.f20] +// CHECK:STDOUT: %bound_method.loc8_11.3: = bound_method %Core.IntLiteral.as.Negate.impl.Op.call, %specific_fn.loc8_11.1 [concrete = constants.%bound_method.d1e] // CHECK:STDOUT: %.loc8_11.1: Core.IntLiteral = value_of_initializer %Core.IntLiteral.as.Negate.impl.Op.call [concrete = constants.%int_-32768.882] // CHECK:STDOUT: %.loc8_11.2: Core.IntLiteral = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc8_11.1 [concrete = constants.%int_-32768.882] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i16 = call %bound_method.loc8_11.3(%.loc8_11.2) [concrete = constants.%int_-32768.e71] -// CHECK:STDOUT: %.loc8_11.3: %i16 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_-32768.e71] -// CHECK:STDOUT: %.loc8_11.4: %i16 = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc8_11.3 [concrete = constants.%int_-32768.e71] -// CHECK:STDOUT: %impl.elem0.loc8_11.2: %.799 = impl_witness_access constants.%Copy.impl_witness.980, element0 [concrete = constants.%Int.as.Copy.impl.Op.a44] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i16 = call %bound_method.loc8_11.3(%.loc8_11.2) [concrete = constants.%int_-32768.eb1] +// CHECK:STDOUT: %.loc8_11.3: %i16 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_-32768.eb1] +// CHECK:STDOUT: %.loc8_11.4: %i16 = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc8_11.3 [concrete = constants.%int_-32768.eb1] +// CHECK:STDOUT: %impl.elem0.loc8_11.2: %.000 = impl_witness_access constants.%Copy.impl_witness.7d9, element0 [concrete = constants.%Int.as.Copy.impl.Op.25c] // CHECK:STDOUT: %bound_method.loc8_11.4: = bound_method %.loc8_11.4, %impl.elem0.loc8_11.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc8_11.2: = specific_function %impl.elem0.loc8_11.2, @Int.as.Copy.impl.Op(constants.%int_16) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_11.5: = bound_method %.loc8_11.4, %specific_fn.loc8_11.2 [concrete = constants.%bound_method.1c0] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc8_11.5(%.loc8_11.4) [concrete = constants.%int_-32768.e71] +// CHECK:STDOUT: %bound_method.loc8_11.5: = bound_method %.loc8_11.4, %specific_fn.loc8_11.2 [concrete = constants.%bound_method.b0b] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc8_11.5(%.loc8_11.4) [concrete = constants.%int_-32768.eb1] // CHECK:STDOUT: %.loc8_11.5: ref %i16 = temporary_storage -// CHECK:STDOUT: %.loc8_11.6: ref %i16 = temporary %.loc8_11.5, %Int.as.Copy.impl.Op.call [concrete = constants.%.09c] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.loc8_11.6 [concrete = constants.%addr] +// 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.%.09c) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.60a) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1401,40 +1401,40 @@ fn F() { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] // CHECK:STDOUT: %i16.builtin: type = int_type signed, %int_16 [concrete] -// CHECK:STDOUT: %As.type.fff: type = facet_type <@As, @As(%i16)> [concrete] +// CHECK:STDOUT: %As.type.6f1: type = facet_type <@As, @As(%i16)> [concrete] // CHECK:STDOUT: %To.fe9: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.16a: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.ced: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.0b6: %Core.IntLiteral.as.As.impl.Convert.type.ced = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fff = facet_value Core.IntLiteral, (%As.impl_witness.16a) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.28f: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] -// CHECK:STDOUT: %.696: type = fn_type_with_self_type %As.WithSelf.Convert.type.28f, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.0b6 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.0b6, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.7f7: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.792: %i16 = int_value 1 [concrete] -// CHECK:STDOUT: %ptr.83d: type = ptr_type %i16 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.820: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.4b7: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.70c: %Core.IntLiteral.as.As.impl.Convert.type.4b7 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.6f1 = facet_value Core.IntLiteral, (%As.impl_witness.820) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.d73: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] +// CHECK:STDOUT: %.6b5: type = fn_type_with_self_type %As.WithSelf.Convert.type.d73, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.70c [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.70c, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] +// CHECK:STDOUT: %bound_method.a0f: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.d17: %i16 = int_value 1 [concrete] +// CHECK:STDOUT: %ptr.686: type = ptr_type %i16 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.980: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.fe1: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a44: %Int.as.Copy.impl.Op.type.fe1 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.980) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cf9: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.799: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cf9, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.792, %Int.as.Copy.impl.Op.a44 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.a44, @Int.as.Copy.impl.Op(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.055: = bound_method %int_1.792, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.e50: ref %i16 = temporary invalid, %int_1.792 [concrete] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.e50 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_13.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e50, %Destroy.Op.2dd605.2 [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.7d9: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.16c: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.25c: %Int.as.Copy.impl.Op.type.16c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.7d9) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.332: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.000: type = fn_type_with_self_type %Copy.WithSelf.Op.type.332, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.d17, %Int.as.Copy.impl.Op.25c [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.25c, @Int.as.Copy.impl.Op(%int_16) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1443,15 +1443,15 @@ fn F() { // 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.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -1460,23 +1460,23 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i16: type = type_literal constants.%i16 [concrete = constants.%i16] -// CHECK:STDOUT: %impl.elem0.loc8_13.1: %.696 = impl_witness_access constants.%As.impl_witness.16a, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.0b6] +// CHECK:STDOUT: %impl.elem0.loc8_13.1: %.6b5 = impl_witness_access constants.%As.impl_witness.820, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.70c] // CHECK:STDOUT: %bound_method.loc8_13.1: = bound_method %int_1, %impl.elem0.loc8_13.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8_13.1: = specific_function %impl.elem0.loc8_13.1, @Core.IntLiteral.as.As.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1, %specific_fn.loc8_13.1 [concrete = constants.%bound_method.7f7] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc8_13.2: %i16 = converted %int_1, %.loc8_13.1 [concrete = constants.%int_1.792] -// CHECK:STDOUT: %impl.elem0.loc8_13.2: %.799 = impl_witness_access constants.%Copy.impl_witness.980, element0 [concrete = constants.%Int.as.Copy.impl.Op.a44] +// CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1, %specific_fn.loc8_13.1 [concrete = constants.%bound_method.a0f] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc8_13.2: %i16 = converted %int_1, %.loc8_13.1 [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %impl.elem0.loc8_13.2: %.000 = impl_witness_access constants.%Copy.impl_witness.7d9, element0 [concrete = constants.%Int.as.Copy.impl.Op.25c] // CHECK:STDOUT: %bound_method.loc8_13.3: = bound_method %.loc8_13.2, %impl.elem0.loc8_13.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc8_13.2: = specific_function %impl.elem0.loc8_13.2, @Int.as.Copy.impl.Op(constants.%int_16) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_13.4: = bound_method %.loc8_13.2, %specific_fn.loc8_13.2 [concrete = constants.%bound_method.055] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc8_13.4(%.loc8_13.2) [concrete = constants.%int_1.792] +// CHECK:STDOUT: %bound_method.loc8_13.4: = bound_method %.loc8_13.2, %specific_fn.loc8_13.2 [concrete = constants.%bound_method.47b] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc8_13.4(%.loc8_13.2) [concrete = constants.%int_1.d17] // CHECK:STDOUT: %.loc8_13.3: ref %i16 = temporary_storage -// CHECK:STDOUT: %.loc8_13.4: ref %i16 = temporary %.loc8_13.3, %Int.as.Copy.impl.Op.call [concrete = constants.%.e50] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.loc8_13.4 [concrete = constants.%addr] +// 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.%.e50) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1498,40 +1498,40 @@ fn F() { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] // CHECK:STDOUT: %i16.builtin: type = int_type signed, %int_16 [concrete] -// CHECK:STDOUT: %As.type.fff: type = facet_type <@As, @As(%i16)> [concrete] +// CHECK:STDOUT: %As.type.6f1: type = facet_type <@As, @As(%i16)> [concrete] // CHECK:STDOUT: %To.fe9: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.16a: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.ced: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.0b6: %Core.IntLiteral.as.As.impl.Convert.type.ced = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fff = facet_value Core.IntLiteral, (%As.impl_witness.16a) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.28f: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] -// CHECK:STDOUT: %.696: type = fn_type_with_self_type %As.WithSelf.Convert.type.28f, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.0b6 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.0b6, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.7f7: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.792: %i16 = int_value 1 [concrete] -// CHECK:STDOUT: %ptr.83d: type = ptr_type %i16 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.820: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.4b7: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.70c: %Core.IntLiteral.as.As.impl.Convert.type.4b7 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.6f1 = facet_value Core.IntLiteral, (%As.impl_witness.820) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.d73: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] +// CHECK:STDOUT: %.6b5: type = fn_type_with_self_type %As.WithSelf.Convert.type.d73, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.70c [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.70c, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] +// CHECK:STDOUT: %bound_method.a0f: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.d17: %i16 = int_value 1 [concrete] +// CHECK:STDOUT: %ptr.686: type = ptr_type %i16 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.980: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.fe1: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a44: %Int.as.Copy.impl.Op.type.fe1 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.980) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cf9: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.799: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cf9, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.792, %Int.as.Copy.impl.Op.a44 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.a44, @Int.as.Copy.impl.Op(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.055: = bound_method %int_1.792, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.e50: ref %i16 = temporary invalid, %int_1.792 [concrete] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.e50 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_13.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e50, %Destroy.Op.2dd605.2 [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.7d9: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.16c: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.25c: %Int.as.Copy.impl.Op.type.16c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.7d9) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.332: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.000: type = fn_type_with_self_type %Copy.WithSelf.Op.type.332, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.d17, %Int.as.Copy.impl.Op.25c [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.25c, @Int.as.Copy.impl.Op(%int_16) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1540,15 +1540,15 @@ fn F() { // 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.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -1557,23 +1557,23 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i16: type = type_literal constants.%i16 [concrete = constants.%i16] -// CHECK:STDOUT: %impl.elem0.loc8_13.1: %.696 = impl_witness_access constants.%As.impl_witness.16a, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.0b6] +// CHECK:STDOUT: %impl.elem0.loc8_13.1: %.6b5 = impl_witness_access constants.%As.impl_witness.820, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.70c] // CHECK:STDOUT: %bound_method.loc8_13.1: = bound_method %int_1, %impl.elem0.loc8_13.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8_13.1: = specific_function %impl.elem0.loc8_13.1, @Core.IntLiteral.as.As.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1, %specific_fn.loc8_13.1 [concrete = constants.%bound_method.7f7] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc8_13.2: %i16 = converted %int_1, %.loc8_13.1 [concrete = constants.%int_1.792] -// CHECK:STDOUT: %impl.elem0.loc8_13.2: %.799 = impl_witness_access constants.%Copy.impl_witness.980, element0 [concrete = constants.%Int.as.Copy.impl.Op.a44] +// CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1, %specific_fn.loc8_13.1 [concrete = constants.%bound_method.a0f] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc8_13.2: %i16 = converted %int_1, %.loc8_13.1 [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %impl.elem0.loc8_13.2: %.000 = impl_witness_access constants.%Copy.impl_witness.7d9, element0 [concrete = constants.%Int.as.Copy.impl.Op.25c] // CHECK:STDOUT: %bound_method.loc8_13.3: = bound_method %.loc8_13.2, %impl.elem0.loc8_13.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc8_13.2: = specific_function %impl.elem0.loc8_13.2, @Int.as.Copy.impl.Op(constants.%int_16) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_13.4: = bound_method %.loc8_13.2, %specific_fn.loc8_13.2 [concrete = constants.%bound_method.055] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc8_13.4(%.loc8_13.2) [concrete = constants.%int_1.792] +// CHECK:STDOUT: %bound_method.loc8_13.4: = bound_method %.loc8_13.2, %specific_fn.loc8_13.2 [concrete = constants.%bound_method.47b] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc8_13.4(%.loc8_13.2) [concrete = constants.%int_1.d17] // CHECK:STDOUT: %.loc8_13.3: ref %i16 = temporary_storage -// CHECK:STDOUT: %.loc8_13.4: ref %i16 = temporary %.loc8_13.3, %Int.as.Copy.impl.Op.call [concrete = constants.%.e50] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.loc8_13.4 [concrete = constants.%addr] +// 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.%.e50) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1595,40 +1595,40 @@ fn F() { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] // CHECK:STDOUT: %i16.builtin: type = int_type signed, %int_16 [concrete] -// CHECK:STDOUT: %As.type.fff: type = facet_type <@As, @As(%i16)> [concrete] +// CHECK:STDOUT: %As.type.6f1: type = facet_type <@As, @As(%i16)> [concrete] // CHECK:STDOUT: %To.fe9: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.16a: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.ced: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.0b6: %Core.IntLiteral.as.As.impl.Convert.type.ced = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fff = facet_value Core.IntLiteral, (%As.impl_witness.16a) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.28f: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] -// CHECK:STDOUT: %.696: type = fn_type_with_self_type %As.WithSelf.Convert.type.28f, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.0b6 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.0b6, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.7f7: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.792: %i16 = int_value 1 [concrete] -// CHECK:STDOUT: %ptr.83d: type = ptr_type %i16 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.820: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.4b7: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.70c: %Core.IntLiteral.as.As.impl.Convert.type.4b7 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.6f1 = facet_value Core.IntLiteral, (%As.impl_witness.820) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.d73: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] +// CHECK:STDOUT: %.6b5: type = fn_type_with_self_type %As.WithSelf.Convert.type.d73, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.70c [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.70c, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] +// CHECK:STDOUT: %bound_method.a0f: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.d17: %i16 = int_value 1 [concrete] +// CHECK:STDOUT: %ptr.686: type = ptr_type %i16 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.980: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.fe1: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a44: %Int.as.Copy.impl.Op.type.fe1 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.980) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cf9: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.799: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cf9, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.792, %Int.as.Copy.impl.Op.a44 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.a44, @Int.as.Copy.impl.Op(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.055: = bound_method %int_1.792, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.e50: ref %i16 = temporary invalid, %int_1.792 [concrete] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.e50 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_13.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e50, %Destroy.Op.2dd605.2 [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.7d9: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.16c: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.25c: %Int.as.Copy.impl.Op.type.16c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.7d9) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.332: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.000: type = fn_type_with_self_type %Copy.WithSelf.Op.type.332, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.d17, %Int.as.Copy.impl.Op.25c [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.25c, @Int.as.Copy.impl.Op(%int_16) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1637,15 +1637,15 @@ fn F() { // 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.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -1654,23 +1654,23 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i16: type = type_literal constants.%i16 [concrete = constants.%i16] -// CHECK:STDOUT: %impl.elem0.loc8_13.1: %.696 = impl_witness_access constants.%As.impl_witness.16a, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.0b6] +// CHECK:STDOUT: %impl.elem0.loc8_13.1: %.6b5 = impl_witness_access constants.%As.impl_witness.820, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.70c] // CHECK:STDOUT: %bound_method.loc8_13.1: = bound_method %int_1, %impl.elem0.loc8_13.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8_13.1: = specific_function %impl.elem0.loc8_13.1, @Core.IntLiteral.as.As.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1, %specific_fn.loc8_13.1 [concrete = constants.%bound_method.7f7] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc8_13.2: %i16 = converted %int_1, %.loc8_13.1 [concrete = constants.%int_1.792] -// CHECK:STDOUT: %impl.elem0.loc8_13.2: %.799 = impl_witness_access constants.%Copy.impl_witness.980, element0 [concrete = constants.%Int.as.Copy.impl.Op.a44] +// CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1, %specific_fn.loc8_13.1 [concrete = constants.%bound_method.a0f] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc8_13.2: %i16 = converted %int_1, %.loc8_13.1 [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %impl.elem0.loc8_13.2: %.000 = impl_witness_access constants.%Copy.impl_witness.7d9, element0 [concrete = constants.%Int.as.Copy.impl.Op.25c] // CHECK:STDOUT: %bound_method.loc8_13.3: = bound_method %.loc8_13.2, %impl.elem0.loc8_13.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc8_13.2: = specific_function %impl.elem0.loc8_13.2, @Int.as.Copy.impl.Op(constants.%int_16) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_13.4: = bound_method %.loc8_13.2, %specific_fn.loc8_13.2 [concrete = constants.%bound_method.055] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc8_13.4(%.loc8_13.2) [concrete = constants.%int_1.792] +// CHECK:STDOUT: %bound_method.loc8_13.4: = bound_method %.loc8_13.2, %specific_fn.loc8_13.2 [concrete = constants.%bound_method.47b] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc8_13.4(%.loc8_13.2) [concrete = constants.%int_1.d17] // CHECK:STDOUT: %.loc8_13.3: ref %i16 = temporary_storage -// CHECK:STDOUT: %.loc8_13.4: ref %i16 = temporary %.loc8_13.3, %Int.as.Copy.impl.Op.call [concrete = constants.%.e50] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.loc8_13.4 [concrete = constants.%addr] +// 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.%.e50) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1692,40 +1692,40 @@ fn F() { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] // CHECK:STDOUT: %i16.builtin: type = int_type signed, %int_16 [concrete] -// CHECK:STDOUT: %As.type.fff: type = facet_type <@As, @As(%i16)> [concrete] +// CHECK:STDOUT: %As.type.6f1: type = facet_type <@As, @As(%i16)> [concrete] // CHECK:STDOUT: %To.fe9: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.16a: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.ced: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.0b6: %Core.IntLiteral.as.As.impl.Convert.type.ced = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fff = facet_value Core.IntLiteral, (%As.impl_witness.16a) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.28f: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] -// CHECK:STDOUT: %.696: type = fn_type_with_self_type %As.WithSelf.Convert.type.28f, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.0b6 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.0b6, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.7f7: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.792: %i16 = int_value 1 [concrete] -// CHECK:STDOUT: %ptr.83d: type = ptr_type %i16 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.820: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.4b7: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.70c: %Core.IntLiteral.as.As.impl.Convert.type.4b7 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.6f1 = facet_value Core.IntLiteral, (%As.impl_witness.820) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.d73: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] +// CHECK:STDOUT: %.6b5: type = fn_type_with_self_type %As.WithSelf.Convert.type.d73, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.70c [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.70c, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] +// CHECK:STDOUT: %bound_method.a0f: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.d17: %i16 = int_value 1 [concrete] +// CHECK:STDOUT: %ptr.686: type = ptr_type %i16 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.980: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.fe1: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a44: %Int.as.Copy.impl.Op.type.fe1 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.980) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cf9: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.799: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cf9, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.792, %Int.as.Copy.impl.Op.a44 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.a44, @Int.as.Copy.impl.Op(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.055: = bound_method %int_1.792, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.e50: ref %i16 = temporary invalid, %int_1.792 [concrete] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.e50 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_13.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e50, %Destroy.Op.2dd605.2 [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.7d9: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.16c: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.25c: %Int.as.Copy.impl.Op.type.16c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.7d9) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.332: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.000: type = fn_type_with_self_type %Copy.WithSelf.Op.type.332, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.d17, %Int.as.Copy.impl.Op.25c [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.25c, @Int.as.Copy.impl.Op(%int_16) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1734,15 +1734,15 @@ fn F() { // 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.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -1751,23 +1751,23 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i16: type = type_literal constants.%i16 [concrete = constants.%i16] -// CHECK:STDOUT: %impl.elem0.loc8_13.1: %.696 = impl_witness_access constants.%As.impl_witness.16a, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.0b6] +// CHECK:STDOUT: %impl.elem0.loc8_13.1: %.6b5 = impl_witness_access constants.%As.impl_witness.820, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.70c] // CHECK:STDOUT: %bound_method.loc8_13.1: = bound_method %int_1, %impl.elem0.loc8_13.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8_13.1: = specific_function %impl.elem0.loc8_13.1, @Core.IntLiteral.as.As.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1, %specific_fn.loc8_13.1 [concrete = constants.%bound_method.7f7] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc8_13.2: %i16 = converted %int_1, %.loc8_13.1 [concrete = constants.%int_1.792] -// CHECK:STDOUT: %impl.elem0.loc8_13.2: %.799 = impl_witness_access constants.%Copy.impl_witness.980, element0 [concrete = constants.%Int.as.Copy.impl.Op.a44] +// CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1, %specific_fn.loc8_13.1 [concrete = constants.%bound_method.a0f] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc8_13.2: %i16 = converted %int_1, %.loc8_13.1 [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %impl.elem0.loc8_13.2: %.000 = impl_witness_access constants.%Copy.impl_witness.7d9, element0 [concrete = constants.%Int.as.Copy.impl.Op.25c] // CHECK:STDOUT: %bound_method.loc8_13.3: = bound_method %.loc8_13.2, %impl.elem0.loc8_13.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc8_13.2: = specific_function %impl.elem0.loc8_13.2, @Int.as.Copy.impl.Op(constants.%int_16) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_13.4: = bound_method %.loc8_13.2, %specific_fn.loc8_13.2 [concrete = constants.%bound_method.055] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc8_13.4(%.loc8_13.2) [concrete = constants.%int_1.792] +// CHECK:STDOUT: %bound_method.loc8_13.4: = bound_method %.loc8_13.2, %specific_fn.loc8_13.2 [concrete = constants.%bound_method.47b] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc8_13.4(%.loc8_13.2) [concrete = constants.%int_1.d17] // CHECK:STDOUT: %.loc8_13.3: ref %i16 = temporary_storage -// CHECK:STDOUT: %.loc8_13.4: ref %i16 = temporary %.loc8_13.3, %Int.as.Copy.impl.Op.call [concrete = constants.%.e50] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.loc8_13.4 [concrete = constants.%addr] +// 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.%.e50) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1787,41 +1787,41 @@ fn F() { // CHECK:STDOUT: %float.96e: Core.FloatLiteral = float_literal_value 8e-1 [concrete] // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %f16.6c9: type = class_type @Float, @Float(%int_16) [concrete] +// CHECK:STDOUT: %f16.907: type = class_type @Float, @Float(%int_16) [concrete] // CHECK:STDOUT: %f16.3ab: type = float_type %int_16, f16 [concrete] -// CHECK:STDOUT: %As.type.2b6: type = facet_type <@As, @As(%f16.6c9)> [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.bad: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%N) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.df8: %Core.FloatLiteral.as.As.impl.Convert.type.bad = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.5b8: = impl_witness imports.%As.impl_witness_table.302, @Core.FloatLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.fb7: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.32f: %Core.FloatLiteral.as.As.impl.Convert.type.fb7 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.2b6 = facet_value Core.FloatLiteral, (%As.impl_witness.5b8) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.002: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%f16.6c9, %As.facet) [concrete] -// CHECK:STDOUT: %.6ab: type = fn_type_with_self_type %As.WithSelf.Convert.type.002, %As.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bound: = bound_method %float.96e, %Core.FloatLiteral.as.As.impl.Convert.32f [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.As.impl.Convert.32f, @Core.FloatLiteral.as.As.impl.Convert(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.b13: = bound_method %float.96e, %Core.FloatLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.cc8: %f16.6c9 = float_value 0.7998 [concrete] -// CHECK:STDOUT: %ptr.041: type = ptr_type %f16.6c9 [concrete] +// CHECK:STDOUT: %As.type.e34: type = facet_type <@As, @As(%f16.907)> [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.69a: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%N) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.829: %Core.FloatLiteral.as.As.impl.Convert.type.69a = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.705: = impl_witness imports.%As.impl_witness_table.aa3, @Core.FloatLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.c80: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.f13: %Core.FloatLiteral.as.As.impl.Convert.type.c80 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.e34 = facet_value Core.FloatLiteral, (%As.impl_witness.705) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.5de: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%f16.907, %As.facet) [concrete] +// CHECK:STDOUT: %.c60: type = fn_type_with_self_type %As.WithSelf.Convert.type.5de, %As.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bound: = bound_method %float.96e, %Core.FloatLiteral.as.As.impl.Convert.f13 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.As.impl.Convert.f13, @Core.FloatLiteral.as.As.impl.Convert(%int_16) [concrete] +// CHECK:STDOUT: %bound_method.c4d: = bound_method %float.96e, %Core.FloatLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.c55: %f16.907 = float_value 0.7998 [concrete] +// CHECK:STDOUT: %ptr.8b7: type = ptr_type %f16.907 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.125: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bfc: %Float.as.Copy.impl.Op.type.125 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.0e1: = impl_witness imports.%Copy.impl_witness_table.384, @Float.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.587: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.7f3: %Float.as.Copy.impl.Op.type.587 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f16.6c9, (%Copy.impl_witness.0e1) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.e9b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.aa6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.e9b, %Copy.facet [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.cc8, %Float.as.Copy.impl.Op.7f3 [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.7f3, @Float.as.Copy.impl.Op(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.96b: = bound_method %float.cc8, %Float.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.a39: ref %f16.6c9 = temporary invalid, %float.cc8 [concrete] -// CHECK:STDOUT: %addr: %ptr.041 = addr_of %.a39 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.a39, %Destroy.Op.2dd605.2 [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.ff3: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N) [symbolic] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.d93: %Float.as.Copy.impl.Op.type.ff3 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.70c: = impl_witness imports.%Copy.impl_witness_table.4e8, @Float.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.5ee: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.103: %Float.as.Copy.impl.Op.type.5ee = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f16.907, (%Copy.impl_witness.70c) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.574: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.ebf: type = fn_type_with_self_type %Copy.WithSelf.Op.type.574, %Copy.facet [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.c55, %Float.as.Copy.impl.Op.103 [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.103, @Float.as.Copy.impl.Op(%int_16) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1830,15 +1830,15 @@ fn F() { // 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.81f: @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert.type (%Core.FloatLiteral.as.As.impl.Convert.type.bad) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert (constants.%Core.FloatLiteral.as.As.impl.Convert.df8)] -// CHECK:STDOUT: %As.impl_witness_table.302 = impl_witness_table (%Core.import_ref.81f), @Core.FloatLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c06: @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert.type (%Core.FloatLiteral.as.As.impl.Convert.type.69a) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert (constants.%Core.FloatLiteral.as.As.impl.Convert.829)] +// CHECK:STDOUT: %As.impl_witness_table.aa3 = impl_witness_table (%Core.import_ref.c06), @Core.FloatLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.461: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.125) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.bfc)] -// CHECK:STDOUT: %Copy.impl_witness_table.384 = impl_witness_table (%Core.import_ref.461), @Float.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e69: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.ff3) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.d93)] +// CHECK:STDOUT: %Copy.impl_witness_table.4e8 = impl_witness_table (%Core.import_ref.e69), @Float.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -1846,30 +1846,30 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 8e-1 [concrete = constants.%float.96e] -// CHECK:STDOUT: %f16: type = type_literal constants.%f16.6c9 [concrete = constants.%f16.6c9] -// CHECK:STDOUT: %impl.elem0.loc8_15.1: %.6ab = impl_witness_access constants.%As.impl_witness.5b8, element0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.32f] +// CHECK:STDOUT: %f16: type = type_literal constants.%f16.907 [concrete = constants.%f16.907] +// CHECK:STDOUT: %impl.elem0.loc8_15.1: %.c60 = impl_witness_access constants.%As.impl_witness.705, element0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.f13] // CHECK:STDOUT: %bound_method.loc8_15.1: = bound_method %float, %impl.elem0.loc8_15.1 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8_15.1: = specific_function %impl.elem0.loc8_15.1, @Core.FloatLiteral.as.As.impl.Convert(constants.%int_16) [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_15.2: = bound_method %float, %specific_fn.loc8_15.1 [concrete = constants.%bound_method.b13] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.call: init %f16.6c9 = call %bound_method.loc8_15.2(%float) [concrete = constants.%float.cc8] -// CHECK:STDOUT: %.loc8_15.1: %f16.6c9 = value_of_initializer %Core.FloatLiteral.as.As.impl.Convert.call [concrete = constants.%float.cc8] -// CHECK:STDOUT: %.loc8_15.2: %f16.6c9 = converted %float, %.loc8_15.1 [concrete = constants.%float.cc8] -// CHECK:STDOUT: %impl.elem0.loc8_15.2: %.aa6 = impl_witness_access constants.%Copy.impl_witness.0e1, element0 [concrete = constants.%Float.as.Copy.impl.Op.7f3] +// CHECK:STDOUT: %bound_method.loc8_15.2: = bound_method %float, %specific_fn.loc8_15.1 [concrete = constants.%bound_method.c4d] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.call: init %f16.907 = call %bound_method.loc8_15.2(%float) [concrete = constants.%float.c55] +// CHECK:STDOUT: %.loc8_15.1: %f16.907 = value_of_initializer %Core.FloatLiteral.as.As.impl.Convert.call [concrete = constants.%float.c55] +// CHECK:STDOUT: %.loc8_15.2: %f16.907 = converted %float, %.loc8_15.1 [concrete = constants.%float.c55] +// CHECK:STDOUT: %impl.elem0.loc8_15.2: %.ebf = impl_witness_access constants.%Copy.impl_witness.70c, element0 [concrete = constants.%Float.as.Copy.impl.Op.103] // CHECK:STDOUT: %bound_method.loc8_15.3: = bound_method %.loc8_15.2, %impl.elem0.loc8_15.2 [concrete = constants.%Float.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc8_15.2: = specific_function %impl.elem0.loc8_15.2, @Float.as.Copy.impl.Op(constants.%int_16) [concrete = constants.%Float.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_15.4: = bound_method %.loc8_15.2, %specific_fn.loc8_15.2 [concrete = constants.%bound_method.96b] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.call: init %f16.6c9 = call %bound_method.loc8_15.4(%.loc8_15.2) [concrete = constants.%float.cc8] -// CHECK:STDOUT: %.loc8_15.3: ref %f16.6c9 = temporary_storage -// CHECK:STDOUT: %.loc8_15.4: ref %f16.6c9 = temporary %.loc8_15.3, %Float.as.Copy.impl.Op.call [concrete = constants.%.a39] -// CHECK:STDOUT: %addr: %ptr.041 = addr_of %.loc8_15.4 [concrete = constants.%addr] +// CHECK:STDOUT: %bound_method.loc8_15.4: = bound_method %.loc8_15.2, %specific_fn.loc8_15.2 [concrete = constants.%bound_method.237] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.call: init %f16.907 = call %bound_method.loc8_15.4(%.loc8_15.2) [concrete = constants.%float.c55] +// CHECK:STDOUT: %.loc8_15.3: ref %f16.907 = temporary_storage +// 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.%.a39) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.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: -// CHECK:STDOUT: fn @Destroy.Op.loc8_15.2(%self.param: ref %f16.6c9) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_15.2(%self.param: ref %f16.907) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1883,41 +1883,41 @@ fn F() { // CHECK:STDOUT: %float.96e: Core.FloatLiteral = float_literal_value 8e-1 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] // CHECK:STDOUT: %f32.9b3: type = float_type %int_32, f32 [concrete] -// CHECK:STDOUT: %As.type.533: type = facet_type <@As, @As(%f32.a26)> [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.bad: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%N) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.df8: %Core.FloatLiteral.as.As.impl.Convert.type.bad = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.7d6: = impl_witness imports.%As.impl_witness_table.302, @Core.FloatLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.459: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.c4a: %Core.FloatLiteral.as.As.impl.Convert.type.459 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.533 = facet_value Core.FloatLiteral, (%As.impl_witness.7d6) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.823: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%f32.a26, %As.facet) [concrete] -// CHECK:STDOUT: %.2d2: type = fn_type_with_self_type %As.WithSelf.Convert.type.823, %As.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bound: = bound_method %float.96e, %Core.FloatLiteral.as.As.impl.Convert.c4a [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.As.impl.Convert.c4a, @Core.FloatLiteral.as.As.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.ac5: = bound_method %float.96e, %Core.FloatLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.c1a: %f32.a26 = float_value 0.800000011 [concrete] -// CHECK:STDOUT: %ptr.454: type = ptr_type %f32.a26 [concrete] +// CHECK:STDOUT: %As.type.093: type = facet_type <@As, @As(%f32.c73)> [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.69a: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%N) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.829: %Core.FloatLiteral.as.As.impl.Convert.type.69a = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.406: = impl_witness imports.%As.impl_witness_table.aa3, @Core.FloatLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.230: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.49e: %Core.FloatLiteral.as.As.impl.Convert.type.230 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.093 = facet_value Core.FloatLiteral, (%As.impl_witness.406) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.0fd: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%f32.c73, %As.facet) [concrete] +// CHECK:STDOUT: %.b4a: type = fn_type_with_self_type %As.WithSelf.Convert.type.0fd, %As.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bound: = bound_method %float.96e, %Core.FloatLiteral.as.As.impl.Convert.49e [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.As.impl.Convert.49e, @Core.FloatLiteral.as.As.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.cc6: = bound_method %float.96e, %Core.FloatLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.682: %f32.c73 = float_value 0.800000011 [concrete] +// CHECK:STDOUT: %ptr.da4: type = ptr_type %f32.c73 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.125: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bfc: %Float.as.Copy.impl.Op.type.125 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.c1c: = impl_witness imports.%Copy.impl_witness_table.384, @Float.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.f02: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.9ce: %Float.as.Copy.impl.Op.type.f02 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f32.a26, (%Copy.impl_witness.c1c) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.f86: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.934: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f86, %Copy.facet [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.c1a, %Float.as.Copy.impl.Op.9ce [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.9ce, @Float.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.201: = bound_method %float.c1a, %Float.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.433: ref %f32.a26 = temporary invalid, %float.c1a [concrete] -// CHECK:STDOUT: %addr: %ptr.454 = addr_of %.433 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.433, %Destroy.Op.2dd605.2 [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.ff3: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N) [symbolic] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.d93: %Float.as.Copy.impl.Op.type.ff3 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.478: = impl_witness imports.%Copy.impl_witness_table.4e8, @Float.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.bf9: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.ed6: %Float.as.Copy.impl.Op.type.bf9 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f32.c73, (%Copy.impl_witness.478) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.65e: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.437: type = fn_type_with_self_type %Copy.WithSelf.Op.type.65e, %Copy.facet [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.682, %Float.as.Copy.impl.Op.ed6 [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.ed6, @Float.as.Copy.impl.Op(%int_32) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1926,15 +1926,15 @@ fn F() { // 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.81f: @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert.type (%Core.FloatLiteral.as.As.impl.Convert.type.bad) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert (constants.%Core.FloatLiteral.as.As.impl.Convert.df8)] -// CHECK:STDOUT: %As.impl_witness_table.302 = impl_witness_table (%Core.import_ref.81f), @Core.FloatLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c06: @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert.type (%Core.FloatLiteral.as.As.impl.Convert.type.69a) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert (constants.%Core.FloatLiteral.as.As.impl.Convert.829)] +// CHECK:STDOUT: %As.impl_witness_table.aa3 = impl_witness_table (%Core.import_ref.c06), @Core.FloatLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.461: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.125) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.bfc)] -// CHECK:STDOUT: %Copy.impl_witness_table.384 = impl_witness_table (%Core.import_ref.461), @Float.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e69: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.ff3) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.d93)] +// CHECK:STDOUT: %Copy.impl_witness_table.4e8 = impl_witness_table (%Core.import_ref.e69), @Float.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -1942,30 +1942,30 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 8e-1 [concrete = constants.%float.96e] -// CHECK:STDOUT: %f32: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %impl.elem0.loc8_15.1: %.2d2 = impl_witness_access constants.%As.impl_witness.7d6, element0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.c4a] +// CHECK:STDOUT: %f32: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %impl.elem0.loc8_15.1: %.b4a = impl_witness_access constants.%As.impl_witness.406, element0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.49e] // CHECK:STDOUT: %bound_method.loc8_15.1: = bound_method %float, %impl.elem0.loc8_15.1 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8_15.1: = specific_function %impl.elem0.loc8_15.1, @Core.FloatLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_15.2: = bound_method %float, %specific_fn.loc8_15.1 [concrete = constants.%bound_method.ac5] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.call: init %f32.a26 = call %bound_method.loc8_15.2(%float) [concrete = constants.%float.c1a] -// CHECK:STDOUT: %.loc8_15.1: %f32.a26 = value_of_initializer %Core.FloatLiteral.as.As.impl.Convert.call [concrete = constants.%float.c1a] -// CHECK:STDOUT: %.loc8_15.2: %f32.a26 = converted %float, %.loc8_15.1 [concrete = constants.%float.c1a] -// CHECK:STDOUT: %impl.elem0.loc8_15.2: %.934 = impl_witness_access constants.%Copy.impl_witness.c1c, element0 [concrete = constants.%Float.as.Copy.impl.Op.9ce] +// CHECK:STDOUT: %bound_method.loc8_15.2: = bound_method %float, %specific_fn.loc8_15.1 [concrete = constants.%bound_method.cc6] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.call: init %f32.c73 = call %bound_method.loc8_15.2(%float) [concrete = constants.%float.682] +// CHECK:STDOUT: %.loc8_15.1: %f32.c73 = value_of_initializer %Core.FloatLiteral.as.As.impl.Convert.call [concrete = constants.%float.682] +// CHECK:STDOUT: %.loc8_15.2: %f32.c73 = converted %float, %.loc8_15.1 [concrete = constants.%float.682] +// CHECK:STDOUT: %impl.elem0.loc8_15.2: %.437 = impl_witness_access constants.%Copy.impl_witness.478, element0 [concrete = constants.%Float.as.Copy.impl.Op.ed6] // CHECK:STDOUT: %bound_method.loc8_15.3: = bound_method %.loc8_15.2, %impl.elem0.loc8_15.2 [concrete = constants.%Float.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc8_15.2: = specific_function %impl.elem0.loc8_15.2, @Float.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Float.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_15.4: = bound_method %.loc8_15.2, %specific_fn.loc8_15.2 [concrete = constants.%bound_method.201] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.call: init %f32.a26 = call %bound_method.loc8_15.4(%.loc8_15.2) [concrete = constants.%float.c1a] -// CHECK:STDOUT: %.loc8_15.3: ref %f32.a26 = temporary_storage -// CHECK:STDOUT: %.loc8_15.4: ref %f32.a26 = temporary %.loc8_15.3, %Float.as.Copy.impl.Op.call [concrete = constants.%.433] -// CHECK:STDOUT: %addr: %ptr.454 = addr_of %.loc8_15.4 [concrete = constants.%addr] +// CHECK:STDOUT: %bound_method.loc8_15.4: = bound_method %.loc8_15.2, %specific_fn.loc8_15.2 [concrete = constants.%bound_method.89b] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.call: init %f32.c73 = call %bound_method.loc8_15.4(%.loc8_15.2) [concrete = constants.%float.682] +// CHECK:STDOUT: %.loc8_15.3: ref %f32.c73 = temporary_storage +// 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.%.433) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.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: -// CHECK:STDOUT: fn @Destroy.Op.loc8_15.2(%self.param: ref %f32.a26) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_15.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1979,41 +1979,41 @@ fn F() { // CHECK:STDOUT: %float.96e: Core.FloatLiteral = float_literal_value 8e-1 [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %f64.794: type = float_type %int_64, f64 [concrete] -// CHECK:STDOUT: %As.type.e53: type = facet_type <@As, @As(%f64.b55)> [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.bad: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%N) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.df8: %Core.FloatLiteral.as.As.impl.Convert.type.bad = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.cf2: = impl_witness imports.%As.impl_witness_table.302, @Core.FloatLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.8de: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bcc: %Core.FloatLiteral.as.As.impl.Convert.type.8de = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.e53 = facet_value Core.FloatLiteral, (%As.impl_witness.cf2) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.d43: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%f64.b55, %As.facet) [concrete] -// CHECK:STDOUT: %.f88: type = fn_type_with_self_type %As.WithSelf.Convert.type.d43, %As.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bound: = bound_method %float.96e, %Core.FloatLiteral.as.As.impl.Convert.bcc [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.As.impl.Convert.bcc, @Core.FloatLiteral.as.As.impl.Convert(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.e81: = bound_method %float.96e, %Core.FloatLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.74c: %f64.b55 = float_value 0.80000000000000004 [concrete] -// CHECK:STDOUT: %ptr.f8a: type = ptr_type %f64.b55 [concrete] +// CHECK:STDOUT: %As.type.0e0: type = facet_type <@As, @As(%f64.dc1)> [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.69a: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%N) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.829: %Core.FloatLiteral.as.As.impl.Convert.type.69a = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.115: = impl_witness imports.%As.impl_witness_table.aa3, @Core.FloatLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.0cf: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.20d: %Core.FloatLiteral.as.As.impl.Convert.type.0cf = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.0e0 = facet_value Core.FloatLiteral, (%As.impl_witness.115) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.4d9: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%f64.dc1, %As.facet) [concrete] +// CHECK:STDOUT: %.e52: type = fn_type_with_self_type %As.WithSelf.Convert.type.4d9, %As.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bound: = bound_method %float.96e, %Core.FloatLiteral.as.As.impl.Convert.20d [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.As.impl.Convert.20d, @Core.FloatLiteral.as.As.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.c90: = bound_method %float.96e, %Core.FloatLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.82c: %f64.dc1 = float_value 0.80000000000000004 [concrete] +// CHECK:STDOUT: %ptr.749: type = ptr_type %f64.dc1 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.125: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bfc: %Float.as.Copy.impl.Op.type.125 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.811: = impl_witness imports.%Copy.impl_witness_table.384, @Float.as.Copy.impl(%int_64) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.7a5: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_64) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bcc: %Float.as.Copy.impl.Op.type.7a5 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f64.b55, (%Copy.impl_witness.811) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.286: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.c7d: type = fn_type_with_self_type %Copy.WithSelf.Op.type.286, %Copy.facet [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.74c, %Float.as.Copy.impl.Op.bcc [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.bcc, @Float.as.Copy.impl.Op(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.4a0: = bound_method %float.74c, %Float.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.1cd: ref %f64.b55 = temporary invalid, %float.74c [concrete] -// CHECK:STDOUT: %addr: %ptr.f8a = addr_of %.1cd [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.1cd, %Destroy.Op.2dd605.2 [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.ff3: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N) [symbolic] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.d93: %Float.as.Copy.impl.Op.type.ff3 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.873: = impl_witness imports.%Copy.impl_witness_table.4e8, @Float.as.Copy.impl(%int_64) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.7aa: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_64) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.9c2: %Float.as.Copy.impl.Op.type.7aa = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f64.dc1, (%Copy.impl_witness.873) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.2ca: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.557: type = fn_type_with_self_type %Copy.WithSelf.Op.type.2ca, %Copy.facet [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.82c, %Float.as.Copy.impl.Op.9c2 [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.9c2, @Float.as.Copy.impl.Op(%int_64) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2022,15 +2022,15 @@ fn F() { // 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.81f: @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert.type (%Core.FloatLiteral.as.As.impl.Convert.type.bad) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert (constants.%Core.FloatLiteral.as.As.impl.Convert.df8)] -// CHECK:STDOUT: %As.impl_witness_table.302 = impl_witness_table (%Core.import_ref.81f), @Core.FloatLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c06: @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert.type (%Core.FloatLiteral.as.As.impl.Convert.type.69a) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert (constants.%Core.FloatLiteral.as.As.impl.Convert.829)] +// CHECK:STDOUT: %As.impl_witness_table.aa3 = impl_witness_table (%Core.import_ref.c06), @Core.FloatLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.461: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.125) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.bfc)] -// CHECK:STDOUT: %Copy.impl_witness_table.384 = impl_witness_table (%Core.import_ref.461), @Float.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e69: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.ff3) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.d93)] +// CHECK:STDOUT: %Copy.impl_witness_table.4e8 = impl_witness_table (%Core.import_ref.e69), @Float.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -2038,30 +2038,30 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 8e-1 [concrete = constants.%float.96e] -// CHECK:STDOUT: %f64: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %impl.elem0.loc8_15.1: %.f88 = impl_witness_access constants.%As.impl_witness.cf2, element0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.bcc] +// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %impl.elem0.loc8_15.1: %.e52 = impl_witness_access constants.%As.impl_witness.115, element0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.20d] // CHECK:STDOUT: %bound_method.loc8_15.1: = bound_method %float, %impl.elem0.loc8_15.1 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8_15.1: = specific_function %impl.elem0.loc8_15.1, @Core.FloatLiteral.as.As.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_15.2: = bound_method %float, %specific_fn.loc8_15.1 [concrete = constants.%bound_method.e81] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.call: init %f64.b55 = call %bound_method.loc8_15.2(%float) [concrete = constants.%float.74c] -// CHECK:STDOUT: %.loc8_15.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.As.impl.Convert.call [concrete = constants.%float.74c] -// CHECK:STDOUT: %.loc8_15.2: %f64.b55 = converted %float, %.loc8_15.1 [concrete = constants.%float.74c] -// CHECK:STDOUT: %impl.elem0.loc8_15.2: %.c7d = impl_witness_access constants.%Copy.impl_witness.811, element0 [concrete = constants.%Float.as.Copy.impl.Op.bcc] +// CHECK:STDOUT: %bound_method.loc8_15.2: = bound_method %float, %specific_fn.loc8_15.1 [concrete = constants.%bound_method.c90] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.call: init %f64.dc1 = call %bound_method.loc8_15.2(%float) [concrete = constants.%float.82c] +// CHECK:STDOUT: %.loc8_15.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.As.impl.Convert.call [concrete = constants.%float.82c] +// CHECK:STDOUT: %.loc8_15.2: %f64.dc1 = converted %float, %.loc8_15.1 [concrete = constants.%float.82c] +// CHECK:STDOUT: %impl.elem0.loc8_15.2: %.557 = impl_witness_access constants.%Copy.impl_witness.873, element0 [concrete = constants.%Float.as.Copy.impl.Op.9c2] // CHECK:STDOUT: %bound_method.loc8_15.3: = bound_method %.loc8_15.2, %impl.elem0.loc8_15.2 [concrete = constants.%Float.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc8_15.2: = specific_function %impl.elem0.loc8_15.2, @Float.as.Copy.impl.Op(constants.%int_64) [concrete = constants.%Float.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_15.4: = bound_method %.loc8_15.2, %specific_fn.loc8_15.2 [concrete = constants.%bound_method.4a0] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.call: init %f64.b55 = call %bound_method.loc8_15.4(%.loc8_15.2) [concrete = constants.%float.74c] -// CHECK:STDOUT: %.loc8_15.3: ref %f64.b55 = temporary_storage -// CHECK:STDOUT: %.loc8_15.4: ref %f64.b55 = temporary %.loc8_15.3, %Float.as.Copy.impl.Op.call [concrete = constants.%.1cd] -// CHECK:STDOUT: %addr: %ptr.f8a = addr_of %.loc8_15.4 [concrete = constants.%addr] +// CHECK:STDOUT: %bound_method.loc8_15.4: = bound_method %.loc8_15.2, %specific_fn.loc8_15.2 [concrete = constants.%bound_method.994] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.call: init %f64.dc1 = call %bound_method.loc8_15.4(%.loc8_15.2) [concrete = constants.%float.82c] +// CHECK:STDOUT: %.loc8_15.3: ref %f64.dc1 = temporary_storage +// 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.%.1cd) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.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: -// CHECK:STDOUT: fn @Destroy.Op.loc8_15.2(%self.param: ref %f64.b55) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_15.2(%self.param: ref %f64.dc1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2075,41 +2075,41 @@ fn F() { // CHECK:STDOUT: %float.96e: Core.FloatLiteral = float_literal_value 8e-1 [concrete] // CHECK:STDOUT: %int_128: Core.IntLiteral = int_value 128 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %f128.899: type = class_type @Float, @Float(%int_128) [concrete] +// CHECK:STDOUT: %f128.e39: type = class_type @Float, @Float(%int_128) [concrete] // CHECK:STDOUT: %f128.853: type = float_type %int_128, f128 [concrete] -// CHECK:STDOUT: %As.type.09a: type = facet_type <@As, @As(%f128.899)> [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.bad: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%N) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.df8: %Core.FloatLiteral.as.As.impl.Convert.type.bad = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.f1b: = impl_witness imports.%As.impl_witness_table.302, @Core.FloatLiteral.as.As.impl(%int_128) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.09f: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%int_128) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.d08: %Core.FloatLiteral.as.As.impl.Convert.type.09f = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.09a = facet_value Core.FloatLiteral, (%As.impl_witness.f1b) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.2bd: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%f128.899, %As.facet) [concrete] -// CHECK:STDOUT: %.8f2: type = fn_type_with_self_type %As.WithSelf.Convert.type.2bd, %As.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bound: = bound_method %float.96e, %Core.FloatLiteral.as.As.impl.Convert.d08 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.As.impl.Convert.d08, @Core.FloatLiteral.as.As.impl.Convert(%int_128) [concrete] -// CHECK:STDOUT: %bound_method.a22: = bound_method %float.96e, %Core.FloatLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.0f4: %f128.899 = float_value 0.800000000000000000000000000000000039 [concrete] -// CHECK:STDOUT: %ptr.2c7: type = ptr_type %f128.899 [concrete] +// CHECK:STDOUT: %As.type.1ce: type = facet_type <@As, @As(%f128.e39)> [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.69a: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%N) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.829: %Core.FloatLiteral.as.As.impl.Convert.type.69a = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.625: = impl_witness imports.%As.impl_witness_table.aa3, @Core.FloatLiteral.as.As.impl(%int_128) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.954: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%int_128) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.566: %Core.FloatLiteral.as.As.impl.Convert.type.954 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.1ce = facet_value Core.FloatLiteral, (%As.impl_witness.625) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.af8: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%f128.e39, %As.facet) [concrete] +// CHECK:STDOUT: %.b4a: type = fn_type_with_self_type %As.WithSelf.Convert.type.af8, %As.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bound: = bound_method %float.96e, %Core.FloatLiteral.as.As.impl.Convert.566 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.As.impl.Convert.566, @Core.FloatLiteral.as.As.impl.Convert(%int_128) [concrete] +// CHECK:STDOUT: %bound_method.585: = bound_method %float.96e, %Core.FloatLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.ede: %f128.e39 = float_value 0.800000000000000000000000000000000039 [concrete] +// CHECK:STDOUT: %ptr.e02: type = ptr_type %f128.e39 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.125: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bfc: %Float.as.Copy.impl.Op.type.125 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.e80: = impl_witness imports.%Copy.impl_witness_table.384, @Float.as.Copy.impl(%int_128) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.fd9: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_128) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.7d3: %Float.as.Copy.impl.Op.type.fd9 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f128.899, (%Copy.impl_witness.e80) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.797: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.ec9: type = fn_type_with_self_type %Copy.WithSelf.Op.type.797, %Copy.facet [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.0f4, %Float.as.Copy.impl.Op.7d3 [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.7d3, @Float.as.Copy.impl.Op(%int_128) [concrete] -// CHECK:STDOUT: %bound_method.716: = bound_method %float.0f4, %Float.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.93d: ref %f128.899 = temporary invalid, %float.0f4 [concrete] -// CHECK:STDOUT: %addr: %ptr.2c7 = addr_of %.93d [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.93d, %Destroy.Op.2dd605.2 [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.ff3: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N) [symbolic] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.d93: %Float.as.Copy.impl.Op.type.ff3 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.64d: = impl_witness imports.%Copy.impl_witness_table.4e8, @Float.as.Copy.impl(%int_128) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.86d: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_128) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.759: %Float.as.Copy.impl.Op.type.86d = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f128.e39, (%Copy.impl_witness.64d) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.77f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.2d2: type = fn_type_with_self_type %Copy.WithSelf.Op.type.77f, %Copy.facet [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.ede, %Float.as.Copy.impl.Op.759 [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.759, @Float.as.Copy.impl.Op(%int_128) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2118,15 +2118,15 @@ fn F() { // 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.81f: @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert.type (%Core.FloatLiteral.as.As.impl.Convert.type.bad) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert (constants.%Core.FloatLiteral.as.As.impl.Convert.df8)] -// CHECK:STDOUT: %As.impl_witness_table.302 = impl_witness_table (%Core.import_ref.81f), @Core.FloatLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c06: @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert.type (%Core.FloatLiteral.as.As.impl.Convert.type.69a) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert (constants.%Core.FloatLiteral.as.As.impl.Convert.829)] +// CHECK:STDOUT: %As.impl_witness_table.aa3 = impl_witness_table (%Core.import_ref.c06), @Core.FloatLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.461: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.125) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.bfc)] -// CHECK:STDOUT: %Copy.impl_witness_table.384 = impl_witness_table (%Core.import_ref.461), @Float.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e69: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.ff3) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.d93)] +// CHECK:STDOUT: %Copy.impl_witness_table.4e8 = impl_witness_table (%Core.import_ref.e69), @Float.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -2134,30 +2134,30 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 8e-1 [concrete = constants.%float.96e] -// CHECK:STDOUT: %f128: type = type_literal constants.%f128.899 [concrete = constants.%f128.899] -// CHECK:STDOUT: %impl.elem0.loc8_15.1: %.8f2 = impl_witness_access constants.%As.impl_witness.f1b, element0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.d08] +// CHECK:STDOUT: %f128: type = type_literal constants.%f128.e39 [concrete = constants.%f128.e39] +// CHECK:STDOUT: %impl.elem0.loc8_15.1: %.b4a = impl_witness_access constants.%As.impl_witness.625, element0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.566] // CHECK:STDOUT: %bound_method.loc8_15.1: = bound_method %float, %impl.elem0.loc8_15.1 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8_15.1: = specific_function %impl.elem0.loc8_15.1, @Core.FloatLiteral.as.As.impl.Convert(constants.%int_128) [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_15.2: = bound_method %float, %specific_fn.loc8_15.1 [concrete = constants.%bound_method.a22] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.call: init %f128.899 = call %bound_method.loc8_15.2(%float) [concrete = constants.%float.0f4] -// CHECK:STDOUT: %.loc8_15.1: %f128.899 = value_of_initializer %Core.FloatLiteral.as.As.impl.Convert.call [concrete = constants.%float.0f4] -// CHECK:STDOUT: %.loc8_15.2: %f128.899 = converted %float, %.loc8_15.1 [concrete = constants.%float.0f4] -// CHECK:STDOUT: %impl.elem0.loc8_15.2: %.ec9 = impl_witness_access constants.%Copy.impl_witness.e80, element0 [concrete = constants.%Float.as.Copy.impl.Op.7d3] +// CHECK:STDOUT: %bound_method.loc8_15.2: = bound_method %float, %specific_fn.loc8_15.1 [concrete = constants.%bound_method.585] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.call: init %f128.e39 = call %bound_method.loc8_15.2(%float) [concrete = constants.%float.ede] +// CHECK:STDOUT: %.loc8_15.1: %f128.e39 = value_of_initializer %Core.FloatLiteral.as.As.impl.Convert.call [concrete = constants.%float.ede] +// CHECK:STDOUT: %.loc8_15.2: %f128.e39 = converted %float, %.loc8_15.1 [concrete = constants.%float.ede] +// CHECK:STDOUT: %impl.elem0.loc8_15.2: %.2d2 = impl_witness_access constants.%Copy.impl_witness.64d, element0 [concrete = constants.%Float.as.Copy.impl.Op.759] // CHECK:STDOUT: %bound_method.loc8_15.3: = bound_method %.loc8_15.2, %impl.elem0.loc8_15.2 [concrete = constants.%Float.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc8_15.2: = specific_function %impl.elem0.loc8_15.2, @Float.as.Copy.impl.Op(constants.%int_128) [concrete = constants.%Float.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_15.4: = bound_method %.loc8_15.2, %specific_fn.loc8_15.2 [concrete = constants.%bound_method.716] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.call: init %f128.899 = call %bound_method.loc8_15.4(%.loc8_15.2) [concrete = constants.%float.0f4] -// CHECK:STDOUT: %.loc8_15.3: ref %f128.899 = temporary_storage -// CHECK:STDOUT: %.loc8_15.4: ref %f128.899 = temporary %.loc8_15.3, %Float.as.Copy.impl.Op.call [concrete = constants.%.93d] -// CHECK:STDOUT: %addr: %ptr.2c7 = addr_of %.loc8_15.4 [concrete = constants.%addr] +// CHECK:STDOUT: %bound_method.loc8_15.4: = bound_method %.loc8_15.2, %specific_fn.loc8_15.2 [concrete = constants.%bound_method.64d] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.call: init %f128.e39 = call %bound_method.loc8_15.4(%.loc8_15.2) [concrete = constants.%float.ede] +// CHECK:STDOUT: %.loc8_15.3: ref %f128.e39 = temporary_storage +// 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.%.93d) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.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: -// CHECK:STDOUT: fn @Destroy.Op.loc8_15.2(%self.param: ref %f128.899) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_15.2(%self.param: ref %f128.e39) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2218,14 +2218,14 @@ fn F() { // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] // CHECK:STDOUT: %i16.builtin: type = int_type signed, %int_16 [concrete] -// CHECK:STDOUT: %pattern_type.e1b: type = pattern_type %i16 [concrete] +// CHECK:STDOUT: %pattern_type.203: type = pattern_type %i16 [concrete] // CHECK:STDOUT: %foo_short.cpp_overload_set.type: type = cpp_overload_set_type @foo_short.cpp_overload_set [concrete] // CHECK:STDOUT: %foo_short.cpp_overload_set.value: %foo_short.cpp_overload_set.type = cpp_overload_set_value @foo_short.cpp_overload_set [concrete] // 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.790b3b.2: type = fn_type @Destroy.Op.loc8_37.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2244,7 +2244,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.e1b = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.203 = value_binding_pattern x [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo_short.ref: %foo_short.cpp_overload_set.type = name_ref foo_short, imports.%foo_short.cpp_overload_set.value [concrete = constants.%foo_short.cpp_overload_set.value] @@ -2256,7 +2256,7 @@ fn F() { // CHECK:STDOUT: %.loc8_37.3: ref %i16 = temporary %.loc8_37.1, %.loc8_37.2 // CHECK:STDOUT: %.loc8_37.4: %i16 = acquire_value %.loc8_37.3 // CHECK:STDOUT: %x: %i16 = value_binding x, %.loc8_37.4 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc8_37.3, constants.%Destroy.Op.2dd605.2 +// 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: // CHECK:STDOUT: } @@ -2297,16 +2297,16 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %f64.794: type = float_type %int_64, f64 [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [concrete] +// CHECK:STDOUT: %pattern_type.fb7: type = pattern_type %f64.dc1 [concrete] // CHECK:STDOUT: %foo_double.cpp_overload_set.type: type = cpp_overload_set_type @foo_double.cpp_overload_set [concrete] // CHECK:STDOUT: %foo_double.cpp_overload_set.value: %foo_double.cpp_overload_set.type = cpp_overload_set_value @foo_double.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr: type = ptr_type %f64.b55 [concrete] +// 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.790b3b.2: type = fn_type @Destroy.Op.loc8_38.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2325,26 +2325,26 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.f3c = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.fb7 = value_binding_pattern x [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo_double.ref: %foo_double.cpp_overload_set.type = name_ref foo_double, imports.%foo_double.cpp_overload_set.value [concrete = constants.%foo_double.cpp_overload_set.value] -// CHECK:STDOUT: %.loc8_38.1: ref %f64.b55 = temporary_storage +// CHECK:STDOUT: %.loc8_38.1: ref %f64.dc1 = temporary_storage // CHECK:STDOUT: %addr: %ptr = addr_of %.loc8_38.1 // CHECK:STDOUT: %foo_double__carbon_thunk.call: init %empty_tuple.type = call imports.%foo_double__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %.loc8_38.2: init %f64.b55 to %.loc8_38.1 = mark_in_place_init %foo_double__carbon_thunk.call -// CHECK:STDOUT: %f64: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc8_38.3: ref %f64.b55 = temporary %.loc8_38.1, %.loc8_38.2 -// CHECK:STDOUT: %.loc8_38.4: %f64.b55 = acquire_value %.loc8_38.3 -// CHECK:STDOUT: %x: %f64.b55 = value_binding x, %.loc8_38.4 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc8_38.3, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %.loc8_38.2: init %f64.dc1 to %.loc8_38.1 = mark_in_place_init %foo_double__carbon_thunk.call +// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc8_38.3: ref %f64.dc1 = temporary %.loc8_38.1, %.loc8_38.2 +// CHECK:STDOUT: %.loc8_38.4: %f64.dc1 = acquire_value %.loc8_38.3 +// CHECK:STDOUT: %x: %f64.dc1 = value_binding x, %.loc8_38.4 +// 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: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.b55) { +// CHECK:STDOUT: fn @Destroy.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/arithmetic_types_direct.carbon b/toolchain/check/testdata/interop/cpp/function/import/arithmetic_types_direct.carbon index 748b9493a1bd..2a1e8543d92e 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/arithmetic_types_direct.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/arithmetic_types_direct.carbon @@ -327,20 +327,20 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -354,8 +354,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -363,13 +363,13 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -385,20 +385,20 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_2147483647.d89, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_2147483647.d89, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_2147483647.d89, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2147483647.9ca: %i32 = int_value 2147483647 [concrete] +// CHECK:STDOUT: %int_2147483647.a0e: %i32 = int_value 2147483647 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -412,8 +412,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -421,13 +421,13 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_2147483647: Core.IntLiteral = int_value 2147483647 [concrete = constants.%int_2147483647.d89] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_2147483647, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_2147483647, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.2(%int_2147483647) [concrete = constants.%int_2147483647.9ca] -// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2147483647.9ca] -// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_2147483647, %.loc8_11.1 [concrete = constants.%int_2147483647.9ca] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.2(%int_2147483647) [concrete = constants.%int_2147483647.a0e] +// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2147483647.a0e] +// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_2147483647, %.loc8_11.1 [concrete = constants.%int_2147483647.a0e] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -442,8 +442,8 @@ fn F() { // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] // CHECK:STDOUT: %Negate.impl_witness: = impl_witness imports.%Negate.impl_witness_table [concrete] // CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, (%Negate.impl_witness) [concrete] -// CHECK:STDOUT: %Negate.WithSelf.Op.type.309: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] -// CHECK:STDOUT: %.f38: type = fn_type_with_self_type %Negate.WithSelf.Op.type.309, %Negate.facet [concrete] +// CHECK:STDOUT: %Negate.WithSelf.Op.type.802: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] +// CHECK:STDOUT: %.765: type = fn_type_with_self_type %Negate.WithSelf.Op.type.802, %Negate.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.type: type = fn_type @Core.IntLiteral.as.Negate.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op: %Core.IntLiteral.as.Negate.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.bound: = bound_method %int_2147483648, %Core.IntLiteral.as.Negate.impl.Op [concrete] @@ -452,20 +452,20 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_-2147483648.3b9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_-2147483648.3b9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_-2147483648.3b9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_-2147483648.372: %i32 = int_value -2147483648 [concrete] +// CHECK:STDOUT: %int_-2147483648.45f: %i32 = int_value -2147483648 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -475,15 +475,15 @@ fn F() { // 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.abd = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63: %Core.IntLiteral.as.Negate.impl.Op.type = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] -// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.f63), @Core.IntLiteral.as.Negate.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Core.IntLiteral.as.Negate.impl.Op.type = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] +// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.9c3), @Core.IntLiteral.as.Negate.impl [concrete] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -491,18 +491,18 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_2147483648: Core.IntLiteral = int_value 2147483648 [concrete = constants.%int_2147483648] -// CHECK:STDOUT: %impl.elem1: %.f38 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.765 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_2147483648, %impl.elem1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op.bound] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.call: init Core.IntLiteral = call %bound_method.loc8_11.1(%int_2147483648) [concrete = constants.%int_-2147483648.3b9] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %Core.IntLiteral.as.Negate.impl.Op.call, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.3: = bound_method %Core.IntLiteral.as.Negate.impl.Op.call, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %.loc8_11.1: Core.IntLiteral = value_of_initializer %Core.IntLiteral.as.Negate.impl.Op.call [concrete = constants.%int_-2147483648.3b9] // CHECK:STDOUT: %.loc8_11.2: Core.IntLiteral = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc8_11.1 [concrete = constants.%int_-2147483648.3b9] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.3(%.loc8_11.2) [concrete = constants.%int_-2147483648.372] -// CHECK:STDOUT: %.loc8_11.3: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_-2147483648.372] -// CHECK:STDOUT: %.loc8_11.4: %i32 = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc8_11.3 [concrete = constants.%int_-2147483648.372] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.3(%.loc8_11.2) [concrete = constants.%int_-2147483648.45f] +// CHECK:STDOUT: %.loc8_11.3: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_-2147483648.45f] +// CHECK:STDOUT: %.loc8_11.4: %i32 = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc8_11.3 [concrete = constants.%int_-2147483648.45f] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc8_11.4) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -518,20 +518,20 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -545,8 +545,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -554,13 +554,13 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -576,20 +576,20 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -603,8 +603,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -612,13 +612,13 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -634,20 +634,20 @@ fn F() { // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.b0a: type = facet_type <@ImplicitAs, @ImplicitAs(%u32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.efe: type = facet_type <@ImplicitAs, @ImplicitAs(%u32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.498: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.040: = impl_witness imports.%ImplicitAs.impl_witness_table.0c6, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.34d: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.09f: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.34d = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.b0a = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.040) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.9e6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%u32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.955: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.9e6, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.09f [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.09f, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.170: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.0a1: = impl_witness imports.%ImplicitAs.impl_witness_table.42f, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.957: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.9db: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.957 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.efe = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.0a1) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b71: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%u32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.22b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b71, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.9db [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.9db, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.ce2: %u32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.92d: %u32 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -661,8 +661,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.e9f: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6) = import_ref Core//prelude/parts/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.498)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0c6 = impl_witness_table (%Core.import_ref.e9f), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.aa5: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199) = import_ref Core//prelude/parts/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.170)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.42f = impl_witness_table (%Core.import_ref.aa5), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -670,13 +670,13 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.955 = impl_witness_access constants.%ImplicitAs.impl_witness.040, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.09f] +// CHECK:STDOUT: %impl.elem0: %.22b = impl_witness_access constants.%ImplicitAs.impl_witness.0a1, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.9db] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %u32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.ce2] -// CHECK:STDOUT: %.loc8_11.1: %u32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.ce2] -// CHECK:STDOUT: %.loc8_11.2: %u32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.ce2] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %u32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.92d] +// CHECK:STDOUT: %.loc8_11.1: %u32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.92d] +// CHECK:STDOUT: %.loc8_11.2: %u32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.92d] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -692,20 +692,20 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -719,8 +719,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -728,13 +728,13 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -751,23 +751,23 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -781,8 +781,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -791,20 +791,20 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc8_11: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0.loc8_11 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc8_11: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0.loc8_11 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc8_11: = specific_function %impl.elem0.loc8_11, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn.loc8_11 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_11: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_11 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc8_14: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_14.1: = bound_method %int_2, %impl.elem0.loc8_14 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn.loc8_11 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_11: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_11 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc8_14: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_14.1: = bound_method %int_2, %impl.elem0.loc8_14 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc8_14: = specific_function %impl.elem0.loc8_14, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_14.2: = bound_method %int_2, %specific_fn.loc8_14 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_14: init %i32 = call %bound_method.loc8_14.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc8_14.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_14 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc8_14.2: %i32 = converted %int_2, %.loc8_14.1 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc8_14.2: = bound_method %int_2, %specific_fn.loc8_14 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_14: init %i32 = call %bound_method.loc8_14.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc8_14.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_14 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc8_14.2: %i32 = converted %int_2, %.loc8_14.1 [concrete = constants.%int_2.295] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc8_11.2, %.loc8_14.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -821,35 +821,35 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %foo1.type: type = fn_type @foo1 [concrete] // CHECK:STDOUT: %foo1: %foo1.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %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: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %foo2.type: type = fn_type @foo2 [concrete] // CHECK:STDOUT: %foo2: %foo2.type = struct_value () [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.9f5: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_4.a4d: %i32 = int_value 4 [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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [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] +// CHECK:STDOUT: %int_4.4eb: %i32 = int_value 4 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -864,8 +864,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %foo2.cpp_overload_set.value: %foo2.cpp_overload_set.type = cpp_overload_set_value @foo2.cpp_overload_set [concrete = constants.%foo2.cpp_overload_set.value] // CHECK:STDOUT: %foo2.decl: %foo2.type = fn_decl @foo2 [concrete = constants.%foo2] { // CHECK:STDOUT: @@ -880,39 +880,39 @@ fn F() { // CHECK:STDOUT: %foo1.ref: %foo1.cpp_overload_set.type = name_ref foo1, imports.%foo1.cpp_overload_set.value [concrete = constants.%foo1.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc8_12: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_12.1: = bound_method %int_1, %impl.elem0.loc8_12 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc8_12: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_12.1: = bound_method %int_1, %impl.elem0.loc8_12 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc8_12: = specific_function %impl.elem0.loc8_12, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_12.2: = bound_method %int_1, %specific_fn.loc8_12 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_12: init %i32 = call %bound_method.loc8_12.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_12.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_12 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_12.2: %i32 = converted %int_1, %.loc8_12.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc8_15: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_15.1: = bound_method %int_2, %impl.elem0.loc8_15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc8_12.2: = bound_method %int_1, %specific_fn.loc8_12 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_12: init %i32 = call %bound_method.loc8_12.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_12.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_12 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_12.2: %i32 = converted %int_1, %.loc8_12.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc8_15: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_15.1: = bound_method %int_2, %impl.elem0.loc8_15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc8_15: = specific_function %impl.elem0.loc8_15, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_15.2: = bound_method %int_2, %specific_fn.loc8_15 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_15: init %i32 = call %bound_method.loc8_15.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc8_15.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_15 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc8_15.2: %i32 = converted %int_2, %.loc8_15.1 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc8_15.2: = bound_method %int_2, %specific_fn.loc8_15 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_15: init %i32 = call %bound_method.loc8_15.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc8_15.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_15 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc8_15.2: %i32 = converted %int_2, %.loc8_15.1 [concrete = constants.%int_2.295] // CHECK:STDOUT: %foo1.call: init %empty_tuple.type = call imports.%foo1.decl(%.loc8_12.2, %.loc8_15.2) // CHECK:STDOUT: %Cpp.ref.loc9: = 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] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc9_12: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_12.1: = bound_method %int_3, %impl.elem0.loc9_12 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %impl.elem0.loc9_12: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_12.1: = bound_method %int_3, %impl.elem0.loc9_12 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc9_12: = specific_function %impl.elem0.loc9_12, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_12.2: = bound_method %int_3, %specific_fn.loc9_12 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_12: init %i32 = call %bound_method.loc9_12.2(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc9_12.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_12 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc9_12.2: %i32 = converted %int_3, %.loc9_12.1 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %impl.elem0.loc9_15: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_15.1: = bound_method %int_4, %impl.elem0.loc9_15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe] +// CHECK:STDOUT: %bound_method.loc9_12.2: = bound_method %int_3, %specific_fn.loc9_12 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_12: init %i32 = call %bound_method.loc9_12.2(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc9_12.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_12 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc9_12.2: %i32 = converted %int_3, %.loc9_12.1 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %impl.elem0.loc9_15: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_15.1: = bound_method %int_4, %impl.elem0.loc9_15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad] // CHECK:STDOUT: %specific_fn.loc9_15: = specific_function %impl.elem0.loc9_15, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_15.2: = bound_method %int_4, %specific_fn.loc9_15 [concrete = constants.%bound_method.9f5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_15: init %i32 = call %bound_method.loc9_15.2(%int_4) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc9_15.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_15 [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc9_15.2: %i32 = converted %int_4, %.loc9_15.1 [concrete = constants.%int_4.a4d] +// CHECK:STDOUT: %bound_method.loc9_15.2: = bound_method %int_4, %specific_fn.loc9_15 [concrete = constants.%bound_method.b7a] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_15: init %i32 = call %bound_method.loc9_15.2(%int_4) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc9_15.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_15 [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc9_15.2: %i32 = converted %int_4, %.loc9_15.1 [concrete = constants.%int_4.4eb] // CHECK:STDOUT: %foo2.call: init %empty_tuple.type = call imports.%foo2.decl(%.loc9_12.2, %.loc9_15.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -928,20 +928,20 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -955,8 +955,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -964,13 +964,13 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1025,20 +1025,20 @@ fn F() { // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.08a: type = facet_type <@ImplicitAs, @ImplicitAs(%i64)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.221: type = facet_type <@ImplicitAs, @ImplicitAs(%i64)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.35c: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.fc2: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.fc2 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.08a = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.35c) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.744: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i64, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.d4c: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.744, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.091: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.55a: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.55a = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.221 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.091) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.a04: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i64, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.f34: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.a04, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.0f3: %i64 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.d98: %i64 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1052,8 +1052,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -1061,13 +1061,13 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.d4c = impl_witness_access constants.%ImplicitAs.impl_witness.35c, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5] +// CHECK:STDOUT: %impl.elem0: %.f34 = impl_witness_access constants.%ImplicitAs.impl_witness.091, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i64 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %.loc8_11.1: %i64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %.loc8_11.2: %i64 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.0f3] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i64 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc8_11.1: %i64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc8_11.2: %i64 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.d98] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/function/import/class.carbon b/toolchain/check/testdata/interop/cpp/function/import/class.carbon index fff8491f93b4..274e5cd49167 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/class.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/class.carbon @@ -603,7 +603,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -629,7 +629,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc8: ref %C = value_as_ref %c.ref -// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.0a2 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -678,7 +678,7 @@ fn F() { // CHECK:STDOUT: %make.cpp_overload_set.type: type = cpp_overload_set_type @make.cpp_overload_set [concrete] // CHECK:STDOUT: %make.cpp_overload_set.value: %make.cpp_overload_set.type = cpp_overload_set_value @make.cpp_overload_set [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %make__carbon_thunk.type: type = fn_type @make__carbon_thunk [concrete] // CHECK:STDOUT: %make__carbon_thunk: %make__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] @@ -712,11 +712,11 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc8_11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %make.ref: %make.cpp_overload_set.type = name_ref make, imports.%make.cpp_overload_set.value [concrete = constants.%make.cpp_overload_set.value] // CHECK:STDOUT: -// CHECK:STDOUT: %addr.loc8_20: %ptr.3a8 = addr_of %_.var +// CHECK:STDOUT: %addr.loc8_20: %ptr.0a2 = addr_of %_.var // CHECK:STDOUT: %make__carbon_thunk.call: init %empty_tuple.type = call imports.%make__carbon_thunk.decl(%addr.loc8_20) // CHECK:STDOUT: %.loc8: init %C to %_.var = mark_in_place_init %make__carbon_thunk.call // CHECK:STDOUT: -// CHECK:STDOUT: %addr.loc8_21: %ptr.3a8 = addr_of %_.var +// CHECK:STDOUT: %addr.loc8_21: %ptr.0a2 = addr_of %_.var // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_21) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -728,7 +728,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -754,7 +754,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc8: ref %C = value_as_ref %c.ref -// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.0a2 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -766,7 +766,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -792,7 +792,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc8: ref %C = value_as_ref %c.ref -// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.0a2 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -801,24 +801,24 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.908: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.7cb: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.58d: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.f8b: type = ptr_type %C [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] -// CHECK:STDOUT: %T.e5a: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.e5a) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.eab: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d = struct_value () [symbolic] +// CHECK:STDOUT: %T.b09: %Default.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.b09) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.cfe: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9 = struct_value () [symbolic] // CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete] // CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.53f: = custom_witness (%C.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.ba2: %Default.type = facet_value %C, (%custom_witness.53f) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.b3c: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.ba2) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %C, (%DefaultOrUnformed.impl_witness.b3c) [concrete] +// CHECK:STDOUT: %custom_witness.85f: = custom_witness (%C.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.338: %Default.type = facet_value %C, (%custom_witness.85f) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.8f7: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.338) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %C, (%DefaultOrUnformed.impl_witness.8f7) [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: } @@ -840,8 +840,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.a03: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.38d) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.eab)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.48a = impl_witness_table (%Core.import_ref.a03), @T.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c2f: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.cfe)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.670 = impl_witness_table (%Core.import_ref.c2f), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%c.param: %C) { @@ -850,14 +850,14 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc8: ref %C = value_as_ref %c.ref -// CHECK:STDOUT: %addr: %ptr.58d = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.f8b = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.908 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.908 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.7cb = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.7cb = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %C = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%C, (constants.%DefaultOrUnformed.impl_witness.b3c) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%C, (constants.%DefaultOrUnformed.impl_witness.8f7) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc10_24.1: %DefaultOrUnformed.type = converted constants.%C, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc10_24.1 [concrete = constants.%C] // CHECK:STDOUT: %.loc10_24.2: type = converted %.loc10_24.1, %as_type [concrete = constants.%C] @@ -883,7 +883,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.b51: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.eda: type = ptr_type %C [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -918,7 +918,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc8: ref %C = value_as_ref %c.ref -// CHECK:STDOUT: %addr: %ptr.b51 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.eda = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -931,21 +931,21 @@ fn F() { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.010: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.39f: type = ptr_type %C [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.554: type = pattern_type %O [concrete] +// CHECK:STDOUT: %pattern_type.6eb: type = pattern_type %O [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] -// CHECK:STDOUT: %T.e5a: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.e5a) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.eab: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d = struct_value () [symbolic] +// CHECK:STDOUT: %T.b09: %Default.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.b09) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.cfe: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9 = struct_value () [symbolic] // CHECK:STDOUT: %O.Op.type: type = fn_type @O.Op [concrete] // CHECK:STDOUT: %O.Op: %O.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26: = custom_witness (%O.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.160: %Default.type = facet_value %O, (%custom_witness.b26) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.793: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.160) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.793) [concrete] +// CHECK:STDOUT: %custom_witness.9b4: = custom_witness (%O.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.240: %Default.type = facet_value %O, (%custom_witness.9b4) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.3bc: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.240) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.3bc) [concrete] // CHECK:STDOUT: %O.cpp_destructor.type: type = fn_type @O.cpp_destructor [concrete] // CHECK:STDOUT: %O.cpp_destructor: %O.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -963,8 +963,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.a03: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.38d) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.eab)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.48a = impl_witness_table (%Core.import_ref.a03), @T.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c2f: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.cfe)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.670 = impl_witness_table (%Core.import_ref.c2f), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%c.param: %C) { @@ -973,14 +973,14 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc8: ref %C = value_as_ref %c.ref -// CHECK:STDOUT: %addr: %ptr.010 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.39f = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.554 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.554 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6eb = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.6eb = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %O = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.793) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.3bc) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc9_22.1: %DefaultOrUnformed.type = converted constants.%O, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc9_22.1 [concrete = constants.%O] // CHECK:STDOUT: %.loc9_22.2: type = converted %.loc9_22.1, %as_type [concrete = constants.%O] @@ -1009,7 +1009,7 @@ fn F() { // CHECK:STDOUT: %C.bar: %C.bar.type = struct_value () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -1041,7 +1041,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc9: ref %C = value_as_ref %c.ref -// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc9 +// CHECK:STDOUT: %addr: %ptr.0a2 = addr_of %.loc9 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1053,7 +1053,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %C.bar.cpp_overload_set.type: type = cpp_overload_set_type @C.bar.cpp_overload_set [concrete] @@ -1085,7 +1085,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc8: ref %C = value_as_ref %c.ref -// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.0a2 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc9: type = name_ref C, imports.%C.decl [concrete = constants.%C] @@ -1173,7 +1173,7 @@ fn F() { // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] @@ -1198,7 +1198,7 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_11.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc8_11.1 +// CHECK:STDOUT: %addr: %ptr.0a2 = addr_of %.loc8_11.1 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: %.loc8_11.2: init %C to %.loc8_11.1 = mark_in_place_init %foo__carbon_thunk.call // CHECK:STDOUT: %.loc8_11.3: ref %C = temporary %.loc8_11.1, %.loc8_11.2 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 7835f9ace154..f1b599dc352d 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/decayed_param.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/decayed_param.carbon @@ -82,94 +82,94 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete] -// CHECK:STDOUT: %array_type.abd: type = array_type %int_42, %i32 [concrete] +// CHECK:STDOUT: %array_type.d58: type = array_type %int_42, %i32 [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.453: type = pattern_type %array_type.abd [concrete] +// CHECK:STDOUT: %pattern_type.c07: type = pattern_type %array_type.d58 [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %UnformedInit.type: type = facet_type <@UnformedInit> [concrete] -// CHECK:STDOUT: %T.4a7: %UnformedInit.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.a43: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op.2, @T.as_type.as.DefaultOrUnformed.impl.01f(%T.4a7) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.106: %T.as_type.as.DefaultOrUnformed.impl.Op.type.a43 = struct_value () [symbolic] +// CHECK:STDOUT: %T.fef: %UnformedInit.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.215: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op.2, @T.as_type.as.DefaultOrUnformed.impl.52f(%T.fef) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.f65: %T.as_type.as.DefaultOrUnformed.impl.Op.type.215 = struct_value () [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] -// CHECK:STDOUT: %UnformedInit.impl_witness.f86: = impl_witness imports.%UnformedInit.impl_witness_table.d46, @Int.as.UnformedInit.impl(%int_32) [concrete] -// CHECK:STDOUT: %UnformedInit.facet.820: %UnformedInit.type = facet_value %i32, (%UnformedInit.impl_witness.f86) [concrete] -// CHECK:STDOUT: %UnformedInit.impl_witness.743: = impl_witness imports.%UnformedInit.impl_witness_table.e8d, @array_type.as.UnformedInit.impl(%UnformedInit.facet.820, %int_42) [concrete] -// CHECK:STDOUT: %UnformedInit.facet.8a3: %UnformedInit.type = facet_value %array_type.abd, (%UnformedInit.impl_witness.743) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.e7a: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.8fb, @T.as_type.as.DefaultOrUnformed.impl.01f(%UnformedInit.facet.8a3) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %array_type.abd, (%DefaultOrUnformed.impl_witness.e7a) [concrete] +// CHECK:STDOUT: %UnformedInit.impl_witness.240: = impl_witness imports.%UnformedInit.impl_witness_table.a3e, @Int.as.UnformedInit.impl(%int_32) [concrete] +// CHECK:STDOUT: %UnformedInit.facet.74c: %UnformedInit.type = facet_value %i32, (%UnformedInit.impl_witness.240) [concrete] +// CHECK:STDOUT: %UnformedInit.impl_witness.5f7: = impl_witness imports.%UnformedInit.impl_witness_table.8f1, @array_type.as.UnformedInit.impl(%UnformedInit.facet.74c, %int_42) [concrete] +// CHECK:STDOUT: %UnformedInit.facet.100: %UnformedInit.type = facet_value %array_type.d58, (%UnformedInit.impl_witness.5f7) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.800: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.972, @T.as_type.as.DefaultOrUnformed.impl.52f(%UnformedInit.facet.100) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %array_type.d58, (%DefaultOrUnformed.impl_witness.800) [concrete] // CHECK:STDOUT: %TakesArray.cpp_overload_set.type: type = cpp_overload_set_type @TakesArray.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesArray.cpp_overload_set.value: %TakesArray.cpp_overload_set.type = cpp_overload_set_value @TakesArray.cpp_overload_set [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.840: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.840) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet.840 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.9f1: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.9f1) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet.9f1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.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: %ptr.d08: type = ptr_type %i32 [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.21f: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.3b3: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.21f) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.d10: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.3b3) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.type.7a7: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.d46: %ptr.as.OptionalStorage.impl.Some.type.7a7 = struct_value () [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.type.da2: type = fn_type @ptr.as.OptionalStorage.impl.None, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.41b: %ptr.as.OptionalStorage.impl.None.type.da2 = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.1: = custom_witness (%Destroy.Op.2dd605.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.2a8: %Destroy.type = facet_value %ptr.847, (%custom_witness.e20f1f.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.088: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.2a8) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.b2d: = impl_witness imports.%OptionalStorage.impl_witness_table.b48, @ptr.as.OptionalStorage.impl(%i32) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.130: %OptionalStorage.type = facet_value %ptr.847, (%OptionalStorage.impl_witness.b2d) [concrete] -// CHECK:STDOUT: %Optional.cb5: type = class_type @Optional, @Optional(%OptionalStorage.facet.130) [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: %ptr.as.OptionalStorage.impl.Some.type.d38: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.191: %ptr.as.OptionalStorage.impl.Some.type.d38 = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.type.703: type = fn_type @ptr.as.OptionalStorage.impl.None, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.467: %ptr.as.OptionalStorage.impl.None.type.703 = 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: %OptionalStorage.impl_witness.16a: = impl_witness imports.%OptionalStorage.impl_witness_table.271, @ptr.as.OptionalStorage.impl(%i32) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.472: %OptionalStorage.type = facet_value %ptr.d08, (%OptionalStorage.impl_witness.16a) [concrete] +// CHECK:STDOUT: %Optional.c4d: type = class_type @Optional, @Optional(%OptionalStorage.facet.472) [concrete] // CHECK:STDOUT: %TakesArray.type: type = fn_type @TakesArray [concrete] // CHECK:STDOUT: %TakesArray: %TakesArray.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.68a: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.cb5)> [concrete] -// CHECK:STDOUT: %OptionalAs.type.c01: type = facet_type <@OptionalAs, @OptionalAs(%T.4e7)> [symbolic] -// CHECK:STDOUT: %U.847: %OptionalAs.type.c01 = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.d99: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1e6(%T.4e7, %U.847) [symbolic] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.401: %U.as_type.as.ImplicitAs.impl.Convert.type.d99 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.type.9bf: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.130)> [concrete] -// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.b97: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.4e7) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.a9b: %T.as_type.as.OptionalAs.impl.Convert.type.b97 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.e6a: = impl_witness imports.%OptionalAs.impl_witness_table.973, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.130) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.9bf = facet_value %ptr.847, (%OptionalAs.impl_witness.e6a) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3cc: = impl_witness imports.%ImplicitAs.impl_witness_table.5f2, @U.as_type.as.ImplicitAs.impl.1e6(%OptionalStorage.facet.130, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.ee3: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1e6(%OptionalStorage.facet.130, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.dc8: %U.as_type.as.ImplicitAs.impl.Convert.type.ee3 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.2c5: %ImplicitAs.type.68a = facet_value %ptr.847, (%ImplicitAs.impl_witness.3cc) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.815: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.cb5, %ImplicitAs.facet.2c5) [concrete] -// CHECK:STDOUT: %.ece: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.815, %ImplicitAs.facet.2c5 [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.dc8, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.130, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.6a3: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.c4d)> [concrete] +// CHECK:STDOUT: %OptionalAs.type.3b8: type = facet_type <@OptionalAs, @OptionalAs(%T.220)> [symbolic] +// CHECK:STDOUT: %U.042: %OptionalAs.type.3b8 = symbolic_binding U, 1 [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.ad5: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.167(%T.220, %U.042) [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.331: %U.as_type.as.ImplicitAs.impl.Convert.type.ad5 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.type.c54: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.472)> [concrete] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.774: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.220) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.5f9: %T.as_type.as.OptionalAs.impl.Convert.type.774 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.impl_witness.ea6: = impl_witness imports.%OptionalAs.impl_witness_table.efa, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.472) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.c54 = facet_value %ptr.d08, (%OptionalAs.impl_witness.ea6) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.20e: = impl_witness imports.%ImplicitAs.impl_witness_table.cf7, @U.as_type.as.ImplicitAs.impl.167(%OptionalStorage.facet.472, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.86c: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.167(%OptionalStorage.facet.472, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.cdb: %U.as_type.as.ImplicitAs.impl.Convert.type.86c = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.c29: %ImplicitAs.type.6a3 = facet_value %ptr.d08, (%ImplicitAs.impl_witness.20e) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6d8: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.c4d, %ImplicitAs.facet.c29) [concrete] +// CHECK:STDOUT: %.671: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6d8, %ImplicitAs.facet.c29 [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.cdb, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.472, %OptionalAs.facet) [concrete] // CHECK:STDOUT: %Cpp.nullptr_t: type = class_type @NullptrT [concrete] // CHECK:STDOUT: %uninit: %Cpp.nullptr_t = uninitialized_value [concrete] -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.ce7: type = fn_type @Cpp.nullptr_t.as.ImplicitAs.impl.Convert, @Cpp.nullptr_t.as.ImplicitAs.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.4ce: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.ce7 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.c1f: = impl_witness imports.%ImplicitAs.impl_witness_table.193, @Cpp.nullptr_t.as.ImplicitAs.impl(%i32) [concrete] -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.769: type = fn_type @Cpp.nullptr_t.as.ImplicitAs.impl.Convert, @Cpp.nullptr_t.as.ImplicitAs.impl(%i32) [concrete] -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.6b5: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.769 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.1f1: %ImplicitAs.type.68a = facet_value %Cpp.nullptr_t, (%ImplicitAs.impl_witness.c1f) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.d2e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.cb5, %ImplicitAs.facet.1f1) [concrete] -// CHECK:STDOUT: %.d07: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.d2e, %ImplicitAs.facet.1f1 [concrete] -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.bound: = bound_method %uninit, %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.6b5 [concrete] -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.6b5, @Cpp.nullptr_t.as.ImplicitAs.impl.Convert(%i32) [concrete] -// CHECK:STDOUT: %bound_method.074: = bound_method %uninit, %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc13_21.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.7: type = fn_type @Destroy.Op.loc10_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.7: %Destroy.Op.type.790b3b.7 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.99b: type = fn_type @Cpp.nullptr_t.as.ImplicitAs.impl.Convert, @Cpp.nullptr_t.as.ImplicitAs.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.63e: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.99b = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.559: = impl_witness imports.%ImplicitAs.impl_witness_table.1ed, @Cpp.nullptr_t.as.ImplicitAs.impl(%i32) [concrete] +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.803: type = fn_type @Cpp.nullptr_t.as.ImplicitAs.impl.Convert, @Cpp.nullptr_t.as.ImplicitAs.impl(%i32) [concrete] +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.3b7: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.803 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.4d9: %ImplicitAs.type.6a3 = facet_value %Cpp.nullptr_t, (%ImplicitAs.impl_witness.559) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f45: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.c4d, %ImplicitAs.facet.4d9) [concrete] +// CHECK:STDOUT: %.163: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.f45, %ImplicitAs.facet.4d9 [concrete] +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.bound: = bound_method %uninit, %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.3b7 [concrete] +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.3b7, @Cpp.nullptr_t.as.ImplicitAs.impl.Convert(%i32) [concrete] +// CHECK:STDOUT: %bound_method.f6e: = bound_method %uninit, %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc13_21.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.7: type = fn_type @Destroy.Op.loc10_3.3 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.7: %Destroy.Op.type.1d8f74.7 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -178,114 +178,114 @@ fn F() { // CHECK:STDOUT: .nullptr = @F.%uninit // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.876: @T.as_type.as.DefaultOrUnformed.impl.01f.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.a43) = import_ref Core//prelude/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.01f.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.106)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.8fb = impl_witness_table (%Core.import_ref.876), @T.as_type.as.DefaultOrUnformed.impl.01f [concrete] -// CHECK:STDOUT: %UnformedInit.impl_witness_table.e8d = impl_witness_table (), @array_type.as.UnformedInit.impl [concrete] -// CHECK:STDOUT: %UnformedInit.impl_witness_table.d46 = impl_witness_table (), @Int.as.UnformedInit.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.083: @T.as_type.as.DefaultOrUnformed.impl.52f.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.215) = import_ref Core//prelude/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.52f.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.f65)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.972 = impl_witness_table (%Core.import_ref.083), @T.as_type.as.DefaultOrUnformed.impl.52f [concrete] +// CHECK:STDOUT: %UnformedInit.impl_witness_table.8f1 = impl_witness_table (), @array_type.as.UnformedInit.impl [concrete] +// CHECK:STDOUT: %UnformedInit.impl_witness_table.a3e = impl_witness_table (), @Int.as.UnformedInit.impl [concrete] // CHECK:STDOUT: %TakesArray.cpp_overload_set.value: %TakesArray.cpp_overload_set.type = cpp_overload_set_value @TakesArray.cpp_overload_set [concrete = constants.%TakesArray.cpp_overload_set.value] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] -// CHECK:STDOUT: %Core.import_ref.c1a: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.d10)] -// CHECK:STDOUT: %Core.import_ref.d20: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.None.type (%ptr.as.OptionalStorage.impl.None.type.da2) = 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.41b)] -// CHECK:STDOUT: %Core.import_ref.ed3: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some.type (%ptr.as.OptionalStorage.impl.Some.type.7a7) = 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.d46)] -// CHECK:STDOUT: %Core.import_ref.b33 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.d18 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.4ad4 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.b48 = impl_witness_table (%Core.import_ref.c1a, %Core.import_ref.d20, %Core.import_ref.ed3, %Core.import_ref.b33, %Core.import_ref.d18, %Core.import_ref.4ad4), @ptr.as.OptionalStorage.impl [concrete] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] +// 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.df2: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.None.type (%ptr.as.OptionalStorage.impl.None.type.703) = 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.467)] +// CHECK:STDOUT: %Core.import_ref.d86: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some.type (%ptr.as.OptionalStorage.impl.Some.type.d38) = 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.191)] +// CHECK:STDOUT: %Core.import_ref.274 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.358 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.db3 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.271 = impl_witness_table (%Core.import_ref.509, %Core.import_ref.df2, %Core.import_ref.d86, %Core.import_ref.274, %Core.import_ref.358, %Core.import_ref.db3), @ptr.as.OptionalStorage.impl [concrete] // CHECK:STDOUT: %TakesArray.decl: %TakesArray.type = fn_decl @TakesArray [concrete = constants.%TakesArray] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc11_23.1: type = splice_block %Optional [concrete = constants.%Optional.cb5] { +// CHECK:STDOUT: %.loc11_23.1: type = splice_block %Optional [concrete = constants.%Optional.c4d] { // CHECK:STDOUT: -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.847, (constants.%OptionalStorage.impl_witness.b2d) [concrete = constants.%OptionalStorage.facet.130] -// CHECK:STDOUT: %.loc11_23.2: %OptionalStorage.type = converted constants.%ptr.847, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.130] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.130) [concrete = constants.%Optional.cb5] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.d08, (constants.%OptionalStorage.impl_witness.16a) [concrete = constants.%OptionalStorage.facet.472] +// CHECK:STDOUT: %.loc11_23.2: %OptionalStorage.type = converted constants.%ptr.d08, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.472] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.472) [concrete = constants.%Optional.c4d] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ce3: @U.as_type.as.ImplicitAs.impl.1e6.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.d99) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.1e6.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.401)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.5f2 = impl_witness_table (%Core.import_ref.ce3), @U.as_type.as.ImplicitAs.impl.1e6 [concrete] -// CHECK:STDOUT: %Core.import_ref.cb8: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.b97) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.a9b)] -// CHECK:STDOUT: %OptionalAs.impl_witness_table.973 = impl_witness_table (%Core.import_ref.cb8), @T.as_type.as.OptionalAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.709: @Cpp.nullptr_t.as.ImplicitAs.impl.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type (%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.ce7) = import_ref Core//prelude/types/cpp/nullptr, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.nullptr_t.as.ImplicitAs.impl.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert (constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.4ce)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.193 = impl_witness_table (%Core.import_ref.709), @Cpp.nullptr_t.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.eb9: @U.as_type.as.ImplicitAs.impl.167.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.ad5) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.167.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.331)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.cf7 = impl_witness_table (%Core.import_ref.eb9), @U.as_type.as.ImplicitAs.impl.167 [concrete] +// CHECK:STDOUT: %Core.import_ref.017d: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.774) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.5f9)] +// CHECK:STDOUT: %OptionalAs.impl_witness_table.efa = impl_witness_table (%Core.import_ref.017d), @T.as_type.as.OptionalAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.599: @Cpp.nullptr_t.as.ImplicitAs.impl.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type (%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.99b) = import_ref Core//prelude/types/cpp/nullptr, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.nullptr_t.as.ImplicitAs.impl.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert (constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.63e)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.1ed = impl_witness_table (%Core.import_ref.599), @Cpp.nullptr_t.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.453 = ref_binding_pattern n [concrete] -// CHECK:STDOUT: %n.var_patt: %pattern_type.453 = var_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.c07 = ref_binding_pattern n [concrete] +// CHECK:STDOUT: %n.var_patt: %pattern_type.c07 = var_pattern %n.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %n.var: ref %array_type.abd = var %n.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%array_type.abd, (constants.%DefaultOrUnformed.impl_witness.e7a) [concrete = constants.%DefaultOrUnformed.facet] -// CHECK:STDOUT: %.loc10_24.1: %DefaultOrUnformed.type = converted constants.%array_type.abd, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] -// CHECK:STDOUT: %as_type: type = facet_access_type %.loc10_24.1 [concrete = constants.%array_type.abd] -// CHECK:STDOUT: %.loc10_24.2: type = converted %.loc10_24.1, %as_type [concrete = constants.%array_type.abd] +// CHECK:STDOUT: %n.var: ref %array_type.d58 = var %n.var_patt +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%array_type.d58, (constants.%DefaultOrUnformed.impl_witness.800) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %.loc10_24.1: %DefaultOrUnformed.type = converted constants.%array_type.d58, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %as_type: type = facet_access_type %.loc10_24.1 [concrete = constants.%array_type.d58] +// CHECK:STDOUT: %.loc10_24.2: type = converted %.loc10_24.1, %as_type [concrete = constants.%array_type.d58] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc10_3: ref %array_type.abd = splice_block %n.var {} -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %array_type.abd to %.loc10_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: %.loc10_3: ref %array_type.d58 = splice_block %n.var {} +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %array_type.d58 to %.loc10_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign %n.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call -// CHECK:STDOUT: %.loc10_23: type = splice_block %array_type [concrete = constants.%array_type.abd] { +// CHECK:STDOUT: %.loc10_23: type = splice_block %array_type [concrete = constants.%array_type.d58] { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42] -// CHECK:STDOUT: %array_type: type = array_type %int_42, %i32 [concrete = constants.%array_type.abd] +// CHECK:STDOUT: %array_type: type = array_type %int_42, %i32 [concrete = constants.%array_type.d58] // CHECK:STDOUT: } -// CHECK:STDOUT: %n: ref %array_type.abd = ref_binding n, %n.var +// CHECK:STDOUT: %n: ref %array_type.d58 = ref_binding n, %n.var // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesArray.ref.loc11: %TakesArray.cpp_overload_set.type = name_ref TakesArray, imports.%TakesArray.cpp_overload_set.value [concrete = constants.%TakesArray.cpp_overload_set.value] -// CHECK:STDOUT: %n.ref: ref %array_type.abd = name_ref n, %n +// CHECK:STDOUT: %n.ref: ref %array_type.d58 = name_ref n, %n // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc11_21: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc11_21: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc11_21.1: = bound_method %int_0, %impl.elem0.loc11_21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc11_21: = specific_function %impl.elem0.loc11_21, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_21.2: = bound_method %int_0, %specific_fn.loc11_21 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc11_21.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc11_21.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc11_21.2: %i32 = converted %int_0, %.loc11_21.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc11_21.2: = bound_method %int_0, %specific_fn.loc11_21 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc11_21.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc11_21.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc11_21.2: %i32 = converted %int_0, %.loc11_21.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc11_22: ref %i32 = array_index %n.ref, %.loc11_21.2 -// CHECK:STDOUT: %addr: %ptr.847 = addr_of %.loc11_22 -// CHECK:STDOUT: %impl.elem0.loc11_18: %.ece = impl_witness_access constants.%ImplicitAs.impl_witness.3cc, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.dc8] +// CHECK:STDOUT: %addr: %ptr.d08 = addr_of %.loc11_22 +// CHECK:STDOUT: %impl.elem0.loc11_18: %.671 = impl_witness_access constants.%ImplicitAs.impl_witness.20e, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.cdb] // CHECK:STDOUT: %bound_method.loc11_18.1: = bound_method %addr, %impl.elem0.loc11_18 -// CHECK:STDOUT: %specific_fn.loc11_18: = specific_function %impl.elem0.loc11_18, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.130, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc11_18: = specific_function %impl.elem0.loc11_18, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.472, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_18.2: = bound_method %addr, %specific_fn.loc11_18 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.cb5 = call %bound_method.loc11_18.2(%addr) -// CHECK:STDOUT: %.loc11_18.1: init %Optional.cb5 = converted %addr, %U.as_type.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %.loc11_18.2: ref %Optional.cb5 = temporary_storage -// CHECK:STDOUT: %.loc11_18.3: ref %Optional.cb5 = temporary %.loc11_18.2, %.loc11_18.1 -// CHECK:STDOUT: %.loc11_18.4: %Optional.cb5 = acquire_value %.loc11_18.3 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.c4d = call %bound_method.loc11_18.2(%addr) +// CHECK:STDOUT: %.loc11_18.1: init %Optional.c4d = converted %addr, %U.as_type.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %.loc11_18.2: ref %Optional.c4d = temporary_storage +// CHECK:STDOUT: %.loc11_18.3: ref %Optional.c4d = temporary %.loc11_18.2, %.loc11_18.1 +// CHECK:STDOUT: %.loc11_18.4: %Optional.c4d = acquire_value %.loc11_18.3 // CHECK:STDOUT: %TakesArray.call.loc11: init %empty_tuple.type = call imports.%TakesArray.decl(%.loc11_18.4) // 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] // CHECK:STDOUT: // CHECK:STDOUT: %nullptr.ref: %Cpp.nullptr_t = name_ref nullptr, %uninit [concrete = constants.%uninit] -// CHECK:STDOUT: %impl.elem0.loc13: %.d07 = impl_witness_access constants.%ImplicitAs.impl_witness.c1f, element0 [concrete = constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.6b5] +// CHECK:STDOUT: %impl.elem0.loc13: %.163 = impl_witness_access constants.%ImplicitAs.impl_witness.559, element0 [concrete = constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.3b7] // CHECK:STDOUT: %bound_method.loc13_21.1: = bound_method %nullptr.ref, %impl.elem0.loc13 [concrete = constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Cpp.nullptr_t.as.ImplicitAs.impl.Convert(constants.%i32) [concrete = constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc13_21.2: = bound_method %nullptr.ref, %specific_fn.loc13 [concrete = constants.%bound_method.074] -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call: init %Optional.cb5 = call %bound_method.loc13_21.2(%nullptr.ref) -// CHECK:STDOUT: %.loc13_21.1: init %Optional.cb5 = converted %nullptr.ref, %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %.loc13_21.2: ref %Optional.cb5 = temporary_storage -// CHECK:STDOUT: %.loc13_21.3: ref %Optional.cb5 = temporary %.loc13_21.2, %.loc13_21.1 -// CHECK:STDOUT: %.loc13_21.4: %Optional.cb5 = acquire_value %.loc13_21.3 +// CHECK:STDOUT: %bound_method.loc13_21.2: = bound_method %nullptr.ref, %specific_fn.loc13 [concrete = constants.%bound_method.f6e] +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call: init %Optional.c4d = call %bound_method.loc13_21.2(%nullptr.ref) +// CHECK:STDOUT: %.loc13_21.1: init %Optional.c4d = converted %nullptr.ref, %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %.loc13_21.2: ref %Optional.c4d = temporary_storage +// CHECK:STDOUT: %.loc13_21.3: ref %Optional.c4d = temporary %.loc13_21.2, %.loc13_21.1 +// CHECK:STDOUT: %.loc13_21.4: %Optional.c4d = 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.2dd605.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.loc11: = bound_method %.loc11_18.3, constants.%Destroy.Op.2dd605.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.Op.bound.loc10: = bound_method %n.var, constants.%Destroy.Op.2dd605.7 +// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %n.var, constants.%Destroy.Op.1a2547.7 // CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%n.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_21.1(%self.param: ref %MaybeUnformed.088) { +// CHECK:STDOUT: fn @Destroy.Op.loc13_21.1(%self.param: ref %MaybeUnformed.b84) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_21.2(%self.param: ref %Optional.cb5) { +// CHECK:STDOUT: fn @Destroy.Op.loc13_21.2(%self.param: ref %Optional.c4d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -297,7 +297,7 @@ fn F() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_3.3(%self.param: ref %array_type.abd) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_3.3(%self.param: ref %array_type.d58) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -315,40 +315,40 @@ fn F() { // CHECK:STDOUT: %Function.cpp_overload_set.type: type = cpp_overload_set_type @Function.cpp_overload_set [concrete] // CHECK:STDOUT: %Function.cpp_overload_set.value: %Function.cpp_overload_set.type = cpp_overload_set_value @Function.cpp_overload_set [concrete] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete] -// CHECK:STDOUT: %array_type.abd: type = array_type %int_42, %i32 [concrete] +// CHECK:STDOUT: %array_type.d58: type = array_type %int_42, %i32 [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.453: type = pattern_type %array_type.abd [concrete] +// CHECK:STDOUT: %pattern_type.c07: type = pattern_type %array_type.d58 [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %UnformedInit.type: type = facet_type <@UnformedInit> [concrete] -// CHECK:STDOUT: %T.4a7: %UnformedInit.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.a43: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op.2, @T.as_type.as.DefaultOrUnformed.impl.01f(%T.4a7) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.106: %T.as_type.as.DefaultOrUnformed.impl.Op.type.a43 = struct_value () [symbolic] -// CHECK:STDOUT: %UnformedInit.impl_witness.f86: = impl_witness imports.%UnformedInit.impl_witness_table.d46, @Int.as.UnformedInit.impl(%int_32) [concrete] -// CHECK:STDOUT: %UnformedInit.facet.820: %UnformedInit.type = facet_value %i32, (%UnformedInit.impl_witness.f86) [concrete] -// CHECK:STDOUT: %UnformedInit.impl_witness.743: = impl_witness imports.%UnformedInit.impl_witness_table.e8d, @array_type.as.UnformedInit.impl(%UnformedInit.facet.820, %int_42) [concrete] -// CHECK:STDOUT: %UnformedInit.facet.8a3: %UnformedInit.type = facet_value %array_type.abd, (%UnformedInit.impl_witness.743) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.e7a: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.8fb, @T.as_type.as.DefaultOrUnformed.impl.01f(%UnformedInit.facet.8a3) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %array_type.abd, (%DefaultOrUnformed.impl_witness.e7a) [concrete] +// CHECK:STDOUT: %T.fef: %UnformedInit.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.215: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op.2, @T.as_type.as.DefaultOrUnformed.impl.52f(%T.fef) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.f65: %T.as_type.as.DefaultOrUnformed.impl.Op.type.215 = struct_value () [symbolic] +// CHECK:STDOUT: %UnformedInit.impl_witness.240: = impl_witness imports.%UnformedInit.impl_witness_table.a3e, @Int.as.UnformedInit.impl(%int_32) [concrete] +// CHECK:STDOUT: %UnformedInit.facet.74c: %UnformedInit.type = facet_value %i32, (%UnformedInit.impl_witness.240) [concrete] +// CHECK:STDOUT: %UnformedInit.impl_witness.5f7: = impl_witness imports.%UnformedInit.impl_witness_table.8f1, @array_type.as.UnformedInit.impl(%UnformedInit.facet.74c, %int_42) [concrete] +// CHECK:STDOUT: %UnformedInit.facet.100: %UnformedInit.type = facet_value %array_type.d58, (%UnformedInit.impl_witness.5f7) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.800: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.972, @T.as_type.as.DefaultOrUnformed.impl.52f(%UnformedInit.facet.100) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %array_type.d58, (%DefaultOrUnformed.impl_witness.800) [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] +// 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.790b3b.4: type = fn_type @Destroy.Op.loc22_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -360,12 +360,12 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %TakesFunction.cpp_overload_set.value: %TakesFunction.cpp_overload_set.type = cpp_overload_set_value @TakesFunction.cpp_overload_set [concrete = constants.%TakesFunction.cpp_overload_set.value] // CHECK:STDOUT: %Function.cpp_overload_set.value: %Function.cpp_overload_set.type = cpp_overload_set_value @Function.cpp_overload_set [concrete = constants.%Function.cpp_overload_set.value] -// CHECK:STDOUT: %Core.import_ref.876: @T.as_type.as.DefaultOrUnformed.impl.01f.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.a43) = import_ref Core//prelude/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.01f.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.106)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.8fb = impl_witness_table (%Core.import_ref.876), @T.as_type.as.DefaultOrUnformed.impl.01f [concrete] -// CHECK:STDOUT: %UnformedInit.impl_witness_table.e8d = impl_witness_table (), @array_type.as.UnformedInit.impl [concrete] -// CHECK:STDOUT: %UnformedInit.impl_witness_table.d46 = impl_witness_table (), @Int.as.UnformedInit.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] +// CHECK:STDOUT: %Core.import_ref.083: @T.as_type.as.DefaultOrUnformed.impl.52f.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.215) = import_ref Core//prelude/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.52f.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.f65)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.972 = impl_witness_table (%Core.import_ref.083), @T.as_type.as.DefaultOrUnformed.impl.52f [concrete] +// CHECK:STDOUT: %UnformedInit.impl_witness_table.8f1 = impl_witness_table (), @array_type.as.UnformedInit.impl [concrete] +// CHECK:STDOUT: %UnformedInit.impl_witness_table.a3e = impl_witness_table (), @Int.as.UnformedInit.impl [concrete] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -378,43 +378,43 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc20_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Function.ref: %Function.cpp_overload_set.type = name_ref Function, imports.%Function.cpp_overload_set.value [concrete = constants.%Function.cpp_overload_set.value] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.453 = ref_binding_pattern n [concrete] -// CHECK:STDOUT: %n.var_patt: %pattern_type.453 = var_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.c07 = ref_binding_pattern n [concrete] +// CHECK:STDOUT: %n.var_patt: %pattern_type.c07 = var_pattern %n.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %n.var: ref %array_type.abd = var %n.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%array_type.abd, (constants.%DefaultOrUnformed.impl_witness.e7a) [concrete = constants.%DefaultOrUnformed.facet] -// CHECK:STDOUT: %.loc22_24.1: %DefaultOrUnformed.type = converted constants.%array_type.abd, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] -// CHECK:STDOUT: %as_type: type = facet_access_type %.loc22_24.1 [concrete = constants.%array_type.abd] -// CHECK:STDOUT: %.loc22_24.2: type = converted %.loc22_24.1, %as_type [concrete = constants.%array_type.abd] +// CHECK:STDOUT: %n.var: ref %array_type.d58 = var %n.var_patt +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%array_type.d58, (constants.%DefaultOrUnformed.impl_witness.800) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %.loc22_24.1: %DefaultOrUnformed.type = converted constants.%array_type.d58, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %as_type: type = facet_access_type %.loc22_24.1 [concrete = constants.%array_type.d58] +// CHECK:STDOUT: %.loc22_24.2: type = converted %.loc22_24.1, %as_type [concrete = constants.%array_type.d58] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc22_3: ref %array_type.abd = splice_block %n.var {} -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %array_type.abd to %.loc22_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: %.loc22_3: ref %array_type.d58 = splice_block %n.var {} +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %array_type.d58 to %.loc22_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign %n.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call -// CHECK:STDOUT: %.loc22_23: type = splice_block %array_type [concrete = constants.%array_type.abd] { +// CHECK:STDOUT: %.loc22_23: type = splice_block %array_type [concrete = constants.%array_type.d58] { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42] -// CHECK:STDOUT: %array_type: type = array_type %int_42, %i32 [concrete = constants.%array_type.abd] +// CHECK:STDOUT: %array_type: type = array_type %int_42, %i32 [concrete = constants.%array_type.d58] // CHECK:STDOUT: } -// CHECK:STDOUT: %n: ref %array_type.abd = ref_binding n, %n.var +// CHECK:STDOUT: %n: ref %array_type.d58 = ref_binding n, %n.var // CHECK:STDOUT: %Cpp.ref.loc31: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesFunction.ref.loc31: %TakesFunction.cpp_overload_set.type = name_ref TakesFunction, imports.%TakesFunction.cpp_overload_set.value [concrete = constants.%TakesFunction.cpp_overload_set.value] -// CHECK:STDOUT: %n.ref: ref %array_type.abd = name_ref n, %n +// CHECK:STDOUT: %n.ref: ref %array_type.d58 = name_ref n, %n // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc31_24.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc31_24.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc31_24.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc31_24.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc31_24.2: %i32 = converted %int_0, %.loc31_24.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc31_24.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc31_24.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc31_24.2: %i32 = converted %int_0, %.loc31_24.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc31_25: ref %i32 = array_index %n.ref, %.loc31_24.2 -// CHECK:STDOUT: %addr: %ptr.847 = addr_of %.loc31_25 +// CHECK:STDOUT: %addr: %ptr.d08 = addr_of %.loc31_25 // CHECK:STDOUT: %Cpp.ref.loc37_3: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesFunction.ref.loc37: %TakesFunction.cpp_overload_set.type = name_ref TakesFunction, imports.%TakesFunction.cpp_overload_set.value [concrete = constants.%TakesFunction.cpp_overload_set.value] // 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.2dd605.4 +// 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: // CHECK:STDOUT: } @@ -426,7 +426,7 @@ fn F() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc22_3.3(%self.param: ref %array_type.abd) { +// CHECK:STDOUT: fn @Destroy.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/default_arg.carbon b/toolchain/check/testdata/interop/cpp/function/import/default_arg.carbon index 4762ec265e1b..ac4170ef048b 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/default_arg.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/default_arg.carbon @@ -147,32 +147,32 @@ fn Call() { // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %GlobalNoReturn.type: type = fn_type @GlobalNoReturn [concrete] // CHECK:STDOUT: %GlobalNoReturn: %GlobalNoReturn.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.9f5: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_4.a4d: %i32 = int_value 4 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [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] +// CHECK:STDOUT: %int_4.4eb: %i32 = int_value 4 [concrete] // CHECK:STDOUT: %GlobalReturnInt.cpp_overload_set.type: type = cpp_overload_set_type @GlobalReturnInt.cpp_overload_set [concrete] // CHECK:STDOUT: %GlobalReturnInt.cpp_overload_set.value: %GlobalReturnInt.cpp_overload_set.type = cpp_overload_set_value @GlobalReturnInt.cpp_overload_set [concrete] // CHECK:STDOUT: %GlobalReturnInt.type: type = fn_type @GlobalReturnInt [concrete] @@ -181,10 +181,10 @@ fn Call() { // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %X.val: %X = struct_value () [concrete] -// CHECK:STDOUT: %.4e8: ref %X = temporary invalid, %X.val [concrete] +// CHECK:STDOUT: %.414: ref %X = temporary invalid, %X.val [concrete] // CHECK:STDOUT: %X.B.cpp_overload_set.type: type = cpp_overload_set_type @X.B.cpp_overload_set [concrete] // CHECK:STDOUT: %X.B.cpp_overload_set.value: %X.B.cpp_overload_set.type = cpp_overload_set_value @X.B.cpp_overload_set [concrete] -// CHECK:STDOUT: %bound_method.7cd: = bound_method %.4e8, %X.B.cpp_overload_set.value [concrete] +// CHECK:STDOUT: %bound_method.f8c: = bound_method %.414, %X.B.cpp_overload_set.value [concrete] // CHECK:STDOUT: %X.B.type: type = fn_type @X.B [concrete] // CHECK:STDOUT: %X.B: %X.B.type = struct_value () [concrete] // CHECK:STDOUT: %X.C.cpp_overload_set.type: type = cpp_overload_set_type @X.C.cpp_overload_set [concrete] @@ -193,8 +193,8 @@ fn Call() { // CHECK:STDOUT: %X.C: %X.C.type = struct_value () [concrete] // CHECK:STDOUT: %X.D.cpp_overload_set.type: type = cpp_overload_set_type @X.D.cpp_overload_set [concrete] // CHECK:STDOUT: %X.D.cpp_overload_set.value: %X.D.cpp_overload_set.type = cpp_overload_set_value @X.D.cpp_overload_set [concrete] -// CHECK:STDOUT: %bound_method.954: = bound_method %.4e8, %X.D.cpp_overload_set.value [concrete] -// CHECK:STDOUT: %ptr.d14: type = ptr_type %X [concrete] +// CHECK:STDOUT: %bound_method.9a8: = bound_method %.414, %X.D.cpp_overload_set.value [concrete] +// CHECK:STDOUT: %ptr.ca1: type = ptr_type %X [concrete] // CHECK:STDOUT: %D__carbon_thunk.type: type = fn_type @D__carbon_thunk [concrete] // CHECK:STDOUT: %D__carbon_thunk: %D__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %X.cpp_destructor.type: type = fn_type @X.cpp_destructor [concrete] @@ -214,8 +214,8 @@ fn Call() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %GlobalReturnInt.cpp_overload_set.value: %GlobalReturnInt.cpp_overload_set.type = cpp_overload_set_value @GlobalReturnInt.cpp_overload_set [concrete = constants.%GlobalReturnInt.cpp_overload_set.value] // CHECK:STDOUT: %GlobalReturnInt.decl: %GlobalReturnInt.type = fn_decl @GlobalReturnInt [concrete = constants.%GlobalReturnInt] { // CHECK:STDOUT: @@ -256,37 +256,37 @@ fn Call() { // CHECK:STDOUT: %int_2.loc8: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3.loc8: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %int_4.loc8: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc8_22: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_22.1: = bound_method %int_1.loc8, %impl.elem0.loc8_22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc8_22: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_22.1: = bound_method %int_1.loc8, %impl.elem0.loc8_22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc8_22: = specific_function %impl.elem0.loc8_22, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_22.2: = bound_method %int_1.loc8, %specific_fn.loc8_22 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_22: init %i32 = call %bound_method.loc8_22.2(%int_1.loc8) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_22.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_22 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_22.2: %i32 = converted %int_1.loc8, %.loc8_22.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc8_25: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_25.1: = bound_method %int_2.loc8, %impl.elem0.loc8_25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc8_22.2: = bound_method %int_1.loc8, %specific_fn.loc8_22 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_22: init %i32 = call %bound_method.loc8_22.2(%int_1.loc8) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_22.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_22 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_22.2: %i32 = converted %int_1.loc8, %.loc8_22.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc8_25: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_25.1: = bound_method %int_2.loc8, %impl.elem0.loc8_25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc8_25: = specific_function %impl.elem0.loc8_25, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_25.2: = bound_method %int_2.loc8, %specific_fn.loc8_25 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_25: init %i32 = call %bound_method.loc8_25.2(%int_2.loc8) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc8_25.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_25 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc8_25.2: %i32 = converted %int_2.loc8, %.loc8_25.1 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %impl.elem0.loc8_28: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_28.1: = bound_method %int_3.loc8, %impl.elem0.loc8_28 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %bound_method.loc8_25.2: = bound_method %int_2.loc8, %specific_fn.loc8_25 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_25: init %i32 = call %bound_method.loc8_25.2(%int_2.loc8) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc8_25.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_25 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc8_25.2: %i32 = converted %int_2.loc8, %.loc8_25.1 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %impl.elem0.loc8_28: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_28.1: = bound_method %int_3.loc8, %impl.elem0.loc8_28 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc8_28: = specific_function %impl.elem0.loc8_28, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_28.2: = bound_method %int_3.loc8, %specific_fn.loc8_28 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_28: init %i32 = call %bound_method.loc8_28.2(%int_3.loc8) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc8_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_28 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc8_28.2: %i32 = converted %int_3.loc8, %.loc8_28.1 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %impl.elem0.loc8_31: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_31.1: = bound_method %int_4.loc8, %impl.elem0.loc8_31 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe] +// CHECK:STDOUT: %bound_method.loc8_28.2: = bound_method %int_3.loc8, %specific_fn.loc8_28 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_28: init %i32 = call %bound_method.loc8_28.2(%int_3.loc8) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc8_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_28 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc8_28.2: %i32 = converted %int_3.loc8, %.loc8_28.1 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %impl.elem0.loc8_31: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_31.1: = bound_method %int_4.loc8, %impl.elem0.loc8_31 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad] // CHECK:STDOUT: %specific_fn.loc8_31: = specific_function %impl.elem0.loc8_31, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_31.2: = bound_method %int_4.loc8, %specific_fn.loc8_31 [concrete = constants.%bound_method.9f5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_31: init %i32 = call %bound_method.loc8_31.2(%int_4.loc8) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc8_31.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_31 [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc8_31.2: %i32 = converted %int_4.loc8, %.loc8_31.1 [concrete = constants.%int_4.a4d] +// CHECK:STDOUT: %bound_method.loc8_31.2: = bound_method %int_4.loc8, %specific_fn.loc8_31 [concrete = constants.%bound_method.b7a] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_31: init %i32 = call %bound_method.loc8_31.2(%int_4.loc8) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc8_31.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_31 [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc8_31.2: %i32 = converted %int_4.loc8, %.loc8_31.1 [concrete = constants.%int_4.4eb] // CHECK:STDOUT: %GlobalNoReturn.call: init %empty_tuple.type = call imports.%GlobalNoReturn.decl(%.loc8_22.2, %.loc8_25.2, %.loc8_28.2, %.loc8_31.2) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %value.patt: %pattern_type.104 = value_binding_pattern value [concrete] +// CHECK:STDOUT: %value.patt: %pattern_type.6b6 = value_binding_pattern value [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %GlobalReturnInt.ref: %GlobalReturnInt.cpp_overload_set.type = name_ref GlobalReturnInt, imports.%GlobalReturnInt.cpp_overload_set.value [concrete = constants.%GlobalReturnInt.cpp_overload_set.value] @@ -294,34 +294,34 @@ fn Call() { // CHECK:STDOUT: %int_2.loc9: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3.loc9: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %int_4.loc9: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc9_47: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_47.1: = bound_method %int_1.loc9, %impl.elem0.loc9_47 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc9_47: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_47.1: = bound_method %int_1.loc9, %impl.elem0.loc9_47 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc9_47: = specific_function %impl.elem0.loc9_47, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_47.2: = bound_method %int_1.loc9, %specific_fn.loc9_47 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_47: init %i32 = call %bound_method.loc9_47.2(%int_1.loc9) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc9_47.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_47 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc9_47.2: %i32 = converted %int_1.loc9, %.loc9_47.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc9_50: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_50.1: = bound_method %int_2.loc9, %impl.elem0.loc9_50 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc9_47.2: = bound_method %int_1.loc9, %specific_fn.loc9_47 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_47: init %i32 = call %bound_method.loc9_47.2(%int_1.loc9) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_47.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_47 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_47.2: %i32 = converted %int_1.loc9, %.loc9_47.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc9_50: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_50.1: = bound_method %int_2.loc9, %impl.elem0.loc9_50 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc9_50: = specific_function %impl.elem0.loc9_50, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_50.2: = bound_method %int_2.loc9, %specific_fn.loc9_50 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_50: init %i32 = call %bound_method.loc9_50.2(%int_2.loc9) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc9_50.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_50 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc9_50.2: %i32 = converted %int_2.loc9, %.loc9_50.1 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %impl.elem0.loc9_53: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_53.1: = bound_method %int_3.loc9, %impl.elem0.loc9_53 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %bound_method.loc9_50.2: = bound_method %int_2.loc9, %specific_fn.loc9_50 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_50: init %i32 = call %bound_method.loc9_50.2(%int_2.loc9) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc9_50.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_50 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc9_50.2: %i32 = converted %int_2.loc9, %.loc9_50.1 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %impl.elem0.loc9_53: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_53.1: = bound_method %int_3.loc9, %impl.elem0.loc9_53 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc9_53: = specific_function %impl.elem0.loc9_53, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_53.2: = bound_method %int_3.loc9, %specific_fn.loc9_53 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_53: init %i32 = call %bound_method.loc9_53.2(%int_3.loc9) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc9_53.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_53 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc9_53.2: %i32 = converted %int_3.loc9, %.loc9_53.1 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %impl.elem0.loc9_56: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_56.1: = bound_method %int_4.loc9, %impl.elem0.loc9_56 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe] +// CHECK:STDOUT: %bound_method.loc9_53.2: = bound_method %int_3.loc9, %specific_fn.loc9_53 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_53: init %i32 = call %bound_method.loc9_53.2(%int_3.loc9) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc9_53.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_53 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc9_53.2: %i32 = converted %int_3.loc9, %.loc9_53.1 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %impl.elem0.loc9_56: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_56.1: = bound_method %int_4.loc9, %impl.elem0.loc9_56 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad] // CHECK:STDOUT: %specific_fn.loc9_56: = specific_function %impl.elem0.loc9_56, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_56.2: = bound_method %int_4.loc9, %specific_fn.loc9_56 [concrete = constants.%bound_method.9f5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_56: init %i32 = call %bound_method.loc9_56.2(%int_4.loc9) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc9_56.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_56 [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc9_56.2: %i32 = converted %int_4.loc9, %.loc9_56.1 [concrete = constants.%int_4.a4d] +// CHECK:STDOUT: %bound_method.loc9_56.2: = bound_method %int_4.loc9, %specific_fn.loc9_56 [concrete = constants.%bound_method.b7a] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_56: init %i32 = call %bound_method.loc9_56.2(%int_4.loc9) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc9_56.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_56 [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc9_56.2: %i32 = converted %int_4.loc9, %.loc9_56.1 [concrete = constants.%int_4.4eb] // CHECK:STDOUT: %GlobalReturnInt.call: init %i32 = call imports.%GlobalReturnInt.decl(%.loc9_47.2, %.loc9_50.2, %.loc9_53.2, %.loc9_56.2) // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc9_57.1: %i32 = value_of_initializer %GlobalReturnInt.call @@ -333,46 +333,46 @@ fn Call() { // CHECK:STDOUT: %.loc10_5.2: ref %X = temporary_storage // CHECK:STDOUT: %.loc10_5.3: init %X to %.loc10_5.2 = class_init () [concrete = constants.%X.val] // CHECK:STDOUT: %.loc10_7.1: init %X = converted %.loc10_5.1, %.loc10_5.3 [concrete = constants.%X.val] -// CHECK:STDOUT: %.loc10_7.2: ref %X = temporary %.loc10_5.2, %.loc10_7.1 [concrete = constants.%.4e8] +// CHECK:STDOUT: %.loc10_7.2: ref %X = temporary %.loc10_5.2, %.loc10_7.1 [concrete = constants.%.414] // CHECK:STDOUT: %B.ref: %X.B.cpp_overload_set.type = name_ref B, imports.%X.B.cpp_overload_set.value [concrete = constants.%X.B.cpp_overload_set.value] -// CHECK:STDOUT: %bound_method.loc10_16: = bound_method %.loc10_7.2, %B.ref [concrete = constants.%bound_method.7cd] +// CHECK:STDOUT: %bound_method.loc10_16: = bound_method %.loc10_7.2, %B.ref [concrete = constants.%bound_method.f8c] // CHECK:STDOUT: %int_1.loc10: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc10: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc10_7.3: %X = acquire_value %.loc10_7.2 [concrete = constants.%X.val] -// CHECK:STDOUT: %impl.elem0.loc10_19: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_19.1: = bound_method %int_1.loc10, %impl.elem0.loc10_19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc10_19: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_19.1: = bound_method %int_1.loc10, %impl.elem0.loc10_19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc10_19: = specific_function %impl.elem0.loc10_19, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_19.2: = bound_method %int_1.loc10, %specific_fn.loc10_19 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_19: init %i32 = call %bound_method.loc10_19.2(%int_1.loc10) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc10_19.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_19 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc10_19.2: %i32 = converted %int_1.loc10, %.loc10_19.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc10_22: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_22.1: = bound_method %int_2.loc10, %impl.elem0.loc10_22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc10_19.2: = bound_method %int_1.loc10, %specific_fn.loc10_19 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_19: init %i32 = call %bound_method.loc10_19.2(%int_1.loc10) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc10_19.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_19 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc10_19.2: %i32 = converted %int_1.loc10, %.loc10_19.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc10_22: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_22.1: = bound_method %int_2.loc10, %impl.elem0.loc10_22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc10_22: = specific_function %impl.elem0.loc10_22, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_22.2: = bound_method %int_2.loc10, %specific_fn.loc10_22 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_22: init %i32 = call %bound_method.loc10_22.2(%int_2.loc10) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc10_22.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_22 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc10_22.2: %i32 = converted %int_2.loc10, %.loc10_22.1 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc10_22.2: = bound_method %int_2.loc10, %specific_fn.loc10_22 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_22: init %i32 = call %bound_method.loc10_22.2(%int_2.loc10) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc10_22.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_22 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc10_22.2: %i32 = converted %int_2.loc10, %.loc10_22.1 [concrete = constants.%int_2.295] // CHECK:STDOUT: %X.B.call: init %empty_tuple.type = call imports.%X.B.decl(%.loc10_7.3, %.loc10_19.2, %.loc10_22.2) // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %X.ref.loc11: type = name_ref X, imports.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %C.ref: %X.C.cpp_overload_set.type = name_ref C, imports.%X.C.cpp_overload_set.value [concrete = constants.%X.C.cpp_overload_set.value] // CHECK:STDOUT: %int_1.loc11: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc11: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc11_11: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc11_11.1: = bound_method %int_1.loc11, %impl.elem0.loc11_11 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc11_11: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc11_11.1: = bound_method %int_1.loc11, %impl.elem0.loc11_11 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc11_11: = specific_function %impl.elem0.loc11_11, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_11.2: = bound_method %int_1.loc11, %specific_fn.loc11_11 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_11: init %i32 = call %bound_method.loc11_11.2(%int_1.loc11) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc11_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_11 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc11_11.2: %i32 = converted %int_1.loc11, %.loc11_11.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc11_14: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc11_14.1: = bound_method %int_2.loc11, %impl.elem0.loc11_14 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc11_11.2: = bound_method %int_1.loc11, %specific_fn.loc11_11 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_11: init %i32 = call %bound_method.loc11_11.2(%int_1.loc11) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc11_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_11 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc11_11.2: %i32 = converted %int_1.loc11, %.loc11_11.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc11_14: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc11_14.1: = bound_method %int_2.loc11, %impl.elem0.loc11_14 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc11_14: = specific_function %impl.elem0.loc11_14, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_14.2: = bound_method %int_2.loc11, %specific_fn.loc11_14 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_14: init %i32 = call %bound_method.loc11_14.2(%int_2.loc11) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc11_14.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_14 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc11_14.2: %i32 = converted %int_2.loc11, %.loc11_14.1 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc11_14.2: = bound_method %int_2.loc11, %specific_fn.loc11_14 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_14: init %i32 = call %bound_method.loc11_14.2(%int_2.loc11) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc11_14.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11_14 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc11_14.2: %i32 = converted %int_2.loc11, %.loc11_14.1 [concrete = constants.%int_2.295] // CHECK:STDOUT: %X.C.call: init %empty_tuple.type = call imports.%X.C.decl(%.loc11_11.2, %.loc11_14.2) // CHECK:STDOUT: %.loc12_5.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %Cpp.ref.loc12: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -380,28 +380,28 @@ fn Call() { // CHECK:STDOUT: %.loc12_5.2: ref %X = temporary_storage // CHECK:STDOUT: %.loc12_5.3: init %X to %.loc12_5.2 = class_init () [concrete = constants.%X.val] // CHECK:STDOUT: %.loc12_7.1: init %X = converted %.loc12_5.1, %.loc12_5.3 [concrete = constants.%X.val] -// CHECK:STDOUT: %.loc12_7.2: ref %X = temporary %.loc12_5.2, %.loc12_7.1 [concrete = constants.%.4e8] +// CHECK:STDOUT: %.loc12_7.2: ref %X = temporary %.loc12_5.2, %.loc12_7.1 [concrete = constants.%.414] // CHECK:STDOUT: %D.ref: %X.D.cpp_overload_set.type = name_ref D, imports.%X.D.cpp_overload_set.value [concrete = constants.%X.D.cpp_overload_set.value] -// CHECK:STDOUT: %bound_method.loc12_16: = bound_method %.loc12_7.2, %D.ref [concrete = constants.%bound_method.954] +// CHECK:STDOUT: %bound_method.loc12_16: = bound_method %.loc12_7.2, %D.ref [concrete = constants.%bound_method.9a8] // CHECK:STDOUT: %int_1.loc12: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc12: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc12_7.3: %X = acquire_value %.loc12_7.2 [concrete = constants.%X.val] -// CHECK:STDOUT: %impl.elem0.loc12_19: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc12_19.1: = bound_method %int_1.loc12, %impl.elem0.loc12_19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc12_19: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc12_19.1: = bound_method %int_1.loc12, %impl.elem0.loc12_19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc12_19: = specific_function %impl.elem0.loc12_19, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc12_19.2: = bound_method %int_1.loc12, %specific_fn.loc12_19 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_19: init %i32 = call %bound_method.loc12_19.2(%int_1.loc12) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc12_19.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_19 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc12_19.2: %i32 = converted %int_1.loc12, %.loc12_19.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc12_22: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc12_22.1: = bound_method %int_2.loc12, %impl.elem0.loc12_22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc12_19.2: = bound_method %int_1.loc12, %specific_fn.loc12_19 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_19: init %i32 = call %bound_method.loc12_19.2(%int_1.loc12) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc12_19.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_19 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc12_19.2: %i32 = converted %int_1.loc12, %.loc12_19.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc12_22: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc12_22.1: = bound_method %int_2.loc12, %impl.elem0.loc12_22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc12_22: = specific_function %impl.elem0.loc12_22, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc12_22.2: = bound_method %int_2.loc12, %specific_fn.loc12_22 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_22: init %i32 = call %bound_method.loc12_22.2(%int_2.loc12) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc12_22.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_22 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc12_22.2: %i32 = converted %int_2.loc12, %.loc12_22.1 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc12_22.2: = bound_method %int_2.loc12, %specific_fn.loc12_22 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_22: init %i32 = call %bound_method.loc12_22.2(%int_2.loc12) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc12_22.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_22 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc12_22.2: %i32 = converted %int_2.loc12, %.loc12_22.1 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc12_7.4: ref %X = value_as_ref %.loc12_7.3 -// CHECK:STDOUT: %addr: %ptr.d14 = addr_of %.loc12_7.4 +// CHECK:STDOUT: %addr: %ptr.ca1 = addr_of %.loc12_7.4 // CHECK:STDOUT: %D__carbon_thunk.call: init %empty_tuple.type = call imports.%D__carbon_thunk.decl(%addr, %.loc12_19.2, %.loc12_22.2) // CHECK:STDOUT: // CHECK:STDOUT: %Op.ref.loc12: %X.cpp_destructor.type = name_ref Op, imports.%X.cpp_destructor.decl [concrete = constants.%X.cpp_destructor] @@ -423,48 +423,48 @@ fn Call() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.type.0b662c.1: type = fn_type @GlobalNoReturn__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.d6d8cb.1: %GlobalNoReturn__carbon_thunk.type.0b662c.1 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.type.b46fe2.1: type = fn_type @GlobalNoReturn__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.4bc5a6.1: %GlobalNoReturn__carbon_thunk.type.b46fe2.1 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %GlobalReturnInt.cpp_overload_set.type: type = cpp_overload_set_type @GlobalReturnInt.cpp_overload_set [concrete] // CHECK:STDOUT: %GlobalReturnInt.cpp_overload_set.value: %GlobalReturnInt.cpp_overload_set.type = cpp_overload_set_value @GlobalReturnInt.cpp_overload_set [concrete] // CHECK:STDOUT: %GlobalReturnInt__carbon_thunk.type: type = fn_type @GlobalReturnInt__carbon_thunk [concrete] // CHECK:STDOUT: %GlobalReturnInt__carbon_thunk: %GlobalReturnInt__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.type.0b662c.2: type = fn_type @GlobalNoReturn__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.d6d8cb.2: %GlobalNoReturn__carbon_thunk.type.0b662c.2 = struct_value () [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] +// CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.type.b46fe2.2: type = fn_type @GlobalNoReturn__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.4bc5a6.2: %GlobalNoReturn__carbon_thunk.type.b46fe2.2 = struct_value () [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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %X.val: %X = struct_value () [concrete] -// CHECK:STDOUT: %.4e8: ref %X = temporary invalid, %X.val [concrete] +// CHECK:STDOUT: %.414: ref %X = temporary invalid, %X.val [concrete] // CHECK:STDOUT: %X.B.cpp_overload_set.type: type = cpp_overload_set_type @X.B.cpp_overload_set [concrete] // CHECK:STDOUT: %X.B.cpp_overload_set.value: %X.B.cpp_overload_set.type = cpp_overload_set_value @X.B.cpp_overload_set [concrete] -// CHECK:STDOUT: %bound_method.7cd: = bound_method %.4e8, %X.B.cpp_overload_set.value [concrete] -// CHECK:STDOUT: %pattern_type.bd3: type = pattern_type %X [concrete] +// CHECK:STDOUT: %bound_method.f8c: = bound_method %.414, %X.B.cpp_overload_set.value [concrete] +// CHECK:STDOUT: %pattern_type.fa7: type = pattern_type %X [concrete] // CHECK:STDOUT: %B__carbon_thunk.type: type = fn_type @B__carbon_thunk [concrete] // CHECK:STDOUT: %B__carbon_thunk: %B__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %X.C.cpp_overload_set.type: type = cpp_overload_set_type @X.C.cpp_overload_set [concrete] @@ -473,19 +473,19 @@ fn Call() { // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %X.D.cpp_overload_set.type: type = cpp_overload_set_type @X.D.cpp_overload_set [concrete] // CHECK:STDOUT: %X.D.cpp_overload_set.value: %X.D.cpp_overload_set.type = cpp_overload_set_value @X.D.cpp_overload_set [concrete] -// CHECK:STDOUT: %bound_method.954: = bound_method %.4e8, %X.D.cpp_overload_set.value [concrete] -// CHECK:STDOUT: %ptr.d14: type = ptr_type %X [concrete] -// CHECK:STDOUT: %pattern_type.74f: type = pattern_type %ptr.d14 [concrete] +// CHECK:STDOUT: %bound_method.9a8: = bound_method %.414, %X.D.cpp_overload_set.value [concrete] +// CHECK:STDOUT: %ptr.ca1: type = ptr_type %X [concrete] +// CHECK:STDOUT: %pattern_type.cf1: type = pattern_type %ptr.ca1 [concrete] // CHECK:STDOUT: %D__carbon_thunk.type: type = fn_type @D__carbon_thunk [concrete] // CHECK:STDOUT: %D__carbon_thunk: %D__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Self.c66: %Destroy.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.630: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Self.c66) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.821: %Destroy.WithSelf.Op.type.630 = struct_value () [symbolic] +// 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.42b: %Destroy.WithSelf.Op.type.d3e = struct_value () [symbolic] // CHECK:STDOUT: %X.cpp_destructor.type: type = fn_type @X.cpp_destructor [concrete] // CHECK:STDOUT: %X.cpp_destructor: %X.cpp_destructor.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.d0a: = custom_witness (), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.b2c: %Destroy.type = facet_value %X, (%custom_witness.d0a) [concrete] +// CHECK:STDOUT: %custom_witness.c5a: = custom_witness (), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.761: %Destroy.type = facet_value %X, (%custom_witness.c5a) [concrete] // CHECK:STDOUT: %X.Op.type: type = fn_type @X.Op [concrete] // CHECK:STDOUT: %X.Op: %X.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -506,11 +506,11 @@ fn Call() { // CHECK:STDOUT: } // CHECK:STDOUT: %GlobalNoReturn.cpp_overload_set.value: %GlobalNoReturn.cpp_overload_set.type = cpp_overload_set_value @GlobalNoReturn.cpp_overload_set [concrete = constants.%GlobalNoReturn.cpp_overload_set.value] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.decl.c103e1.1: %GlobalNoReturn__carbon_thunk.type.0b662c.1 = fn_decl @GlobalNoReturn__carbon_thunk.1 [concrete = constants.%GlobalNoReturn__carbon_thunk.d6d8cb.1] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.decl.04a738.1: %GlobalNoReturn__carbon_thunk.type.b46fe2.1 = fn_decl @GlobalNoReturn__carbon_thunk.1 [concrete = constants.%GlobalNoReturn__carbon_thunk.4bc5a6.1] { +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.4 [concrete = constants.%i32] { @@ -527,17 +527,17 @@ fn Call() { // CHECK:STDOUT: } // CHECK:STDOUT: %b: %i32 = value_binding b, %b.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %GlobalReturnInt.cpp_overload_set.value: %GlobalReturnInt.cpp_overload_set.type = cpp_overload_set_value @GlobalReturnInt.cpp_overload_set [concrete = constants.%GlobalReturnInt.cpp_overload_set.value] // CHECK:STDOUT: %GlobalReturnInt__carbon_thunk.decl: %GlobalReturnInt__carbon_thunk.type = fn_decl @GlobalReturnInt__carbon_thunk [concrete = constants.%GlobalReturnInt__carbon_thunk] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.2 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.1: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.1: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] @@ -559,13 +559,13 @@ fn Call() { // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param2 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.decl.c103e1.2: %GlobalNoReturn__carbon_thunk.type.0b662c.2 = fn_decl @GlobalNoReturn__carbon_thunk.2 [concrete = constants.%GlobalNoReturn__carbon_thunk.d6d8cb.2] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.104 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %c.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: %pattern_type.104 = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.decl.04a738.2: %GlobalNoReturn__carbon_thunk.type.b46fe2.2 = fn_decl @GlobalNoReturn__carbon_thunk.2 [concrete = constants.%GlobalNoReturn__carbon_thunk.4bc5a6.2] { +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %c.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.6b6 = at_binding_pattern c, %c.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.6 [concrete = constants.%i32] { @@ -592,10 +592,10 @@ fn Call() { // CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {} // CHECK:STDOUT: %X.B.cpp_overload_set.value: %X.B.cpp_overload_set.type = cpp_overload_set_value @X.B.cpp_overload_set [concrete = constants.%X.B.cpp_overload_set.value] // CHECK:STDOUT: %B__carbon_thunk.decl: %B__carbon_thunk.type = fn_decl @B__carbon_thunk [concrete = constants.%B__carbon_thunk] { -// CHECK:STDOUT: %this.param_patt: %pattern_type.bd3 = value_param_pattern [concrete] -// CHECK:STDOUT: %this.patt: %pattern_type.bd3 = at_binding_pattern this, %this.param_patt [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %this.param_patt: %pattern_type.fa7 = value_param_pattern [concrete] +// CHECK:STDOUT: %this.patt: %pattern_type.fa7 = at_binding_pattern this, %this.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %this.param: %X = value_param call_param0 // CHECK:STDOUT: %this: %X = value_binding this, %this.param @@ -609,8 +609,8 @@ fn Call() { // CHECK:STDOUT: } // CHECK:STDOUT: %X.C.cpp_overload_set.value: %X.C.cpp_overload_set.type = cpp_overload_set_value @X.C.cpp_overload_set [concrete = constants.%X.C.cpp_overload_set.value] // CHECK:STDOUT: %C__carbon_thunk.decl: %C__carbon_thunk.type = fn_decl @C__carbon_thunk [concrete = constants.%C__carbon_thunk] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -622,13 +622,13 @@ fn Call() { // CHECK:STDOUT: } // CHECK:STDOUT: %X.D.cpp_overload_set.value: %X.D.cpp_overload_set.type = cpp_overload_set_value @X.D.cpp_overload_set [concrete = constants.%X.D.cpp_overload_set.value] // CHECK:STDOUT: %D__carbon_thunk.decl: %D__carbon_thunk.type = fn_decl @D__carbon_thunk [concrete = constants.%D__carbon_thunk] { -// CHECK:STDOUT: %_.param_patt: %pattern_type.74f = value_param_pattern [concrete] -// CHECK:STDOUT: %_.patt: %pattern_type.74f = at_binding_pattern _, %_.param_patt [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %_.param_patt: %pattern_type.cf1 = value_param_pattern [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.cf1 = at_binding_pattern _, %_.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %_.param: %ptr.d14 = value_param call_param0 -// CHECK:STDOUT: %_: %ptr.d14 = value_binding _, %_.param +// CHECK:STDOUT: %_.param: %ptr.ca1 = value_param call_param0 +// CHECK:STDOUT: %_: %ptr.ca1 = value_binding _, %_.param // CHECK:STDOUT: %a.param: %i32 = value_param call_param1 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] @@ -638,10 +638,10 @@ fn Call() { // CHECK:STDOUT: %a: %i32 = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Destroy.WithSelf.Op.decl: %Destroy.WithSelf.Op.type.630 = fn_decl @Destroy.WithSelf.Op [symbolic = @Destroy.WithSelf.%Destroy.WithSelf.Op (constants.%Destroy.WithSelf.Op.821)] {} {} +// CHECK:STDOUT: %Destroy.WithSelf.Op.decl: %Destroy.WithSelf.Op.type.d3e = fn_decl @Destroy.WithSelf.Op [symbolic = @Destroy.WithSelf.%Destroy.WithSelf.Op (constants.%Destroy.WithSelf.Op.42b)] {} {} // CHECK:STDOUT: %X.cpp_destructor.decl: %X.cpp_destructor.type = fn_decl @X.cpp_destructor [concrete = constants.%X.cpp_destructor] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.bd3 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.bd3 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.fa7 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.fa7 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %X = ref_param call_param0 // CHECK:STDOUT: %self: ref %X = ref_binding self, %self.param @@ -679,42 +679,42 @@ fn Call() { // CHECK:STDOUT: %GlobalNoReturn.ref.loc8: %GlobalNoReturn.cpp_overload_set.type = name_ref GlobalNoReturn, imports.%GlobalNoReturn.cpp_overload_set.value [concrete = constants.%GlobalNoReturn.cpp_overload_set.value] // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc8: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc8_22: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_22.1: = bound_method %int_1.loc8, %impl.elem0.loc8_22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc8_22: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_22.1: = bound_method %int_1.loc8, %impl.elem0.loc8_22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc8_22: = specific_function %impl.elem0.loc8_22, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_22.2: = bound_method %int_1.loc8, %specific_fn.loc8_22 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_22: init %i32 = call %bound_method.loc8_22.2(%int_1.loc8) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_22.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_22 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_22.2: %i32 = converted %int_1.loc8, %.loc8_22.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc8_25: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_25.1: = bound_method %int_2.loc8, %impl.elem0.loc8_25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc8_22.2: = bound_method %int_1.loc8, %specific_fn.loc8_22 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_22: init %i32 = call %bound_method.loc8_22.2(%int_1.loc8) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_22.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_22 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_22.2: %i32 = converted %int_1.loc8, %.loc8_22.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc8_25: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_25.1: = bound_method %int_2.loc8, %impl.elem0.loc8_25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc8_25: = specific_function %impl.elem0.loc8_25, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_25.2: = bound_method %int_2.loc8, %specific_fn.loc8_25 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_25: init %i32 = call %bound_method.loc8_25.2(%int_2.loc8) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc8_25.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_25 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc8_25.2: %i32 = converted %int_2.loc8, %.loc8_25.1 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%GlobalNoReturn__carbon_thunk.decl.c103e1.1(%.loc8_22.2, %.loc8_25.2) +// CHECK:STDOUT: %bound_method.loc8_25.2: = bound_method %int_2.loc8, %specific_fn.loc8_25 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_25: init %i32 = call %bound_method.loc8_25.2(%int_2.loc8) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc8_25.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_25 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc8_25.2: %i32 = converted %int_2.loc8, %.loc8_25.1 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%GlobalNoReturn__carbon_thunk.decl.04a738.1(%.loc8_22.2, %.loc8_25.2) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %value.patt: %pattern_type.104 = value_binding_pattern value [concrete] +// CHECK:STDOUT: %value.patt: %pattern_type.6b6 = value_binding_pattern value [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %GlobalReturnInt.ref: %GlobalReturnInt.cpp_overload_set.type = name_ref GlobalReturnInt, imports.%GlobalReturnInt.cpp_overload_set.value [concrete = constants.%GlobalReturnInt.cpp_overload_set.value] // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc9: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc9_47: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_47.1: = bound_method %int_1.loc9, %impl.elem0.loc9_47 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc9_47: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_47.1: = bound_method %int_1.loc9, %impl.elem0.loc9_47 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc9_47: = specific_function %impl.elem0.loc9_47, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_47.2: = bound_method %int_1.loc9, %specific_fn.loc9_47 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_47: init %i32 = call %bound_method.loc9_47.2(%int_1.loc9) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc9_47.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_47 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc9_47.2: %i32 = converted %int_1.loc9, %.loc9_47.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc9_50: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_50.1: = bound_method %int_2.loc9, %impl.elem0.loc9_50 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc9_47.2: = bound_method %int_1.loc9, %specific_fn.loc9_47 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_47: init %i32 = call %bound_method.loc9_47.2(%int_1.loc9) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_47.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_47 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_47.2: %i32 = converted %int_1.loc9, %.loc9_47.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc9_50: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_50.1: = bound_method %int_2.loc9, %impl.elem0.loc9_50 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc9_50: = specific_function %impl.elem0.loc9_50, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_50.2: = bound_method %int_2.loc9, %specific_fn.loc9_50 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_50: init %i32 = call %bound_method.loc9_50.2(%int_2.loc9) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc9_50.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_50 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc9_50.2: %i32 = converted %int_2.loc9, %.loc9_50.1 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc9_50.2: = bound_method %int_2.loc9, %specific_fn.loc9_50 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_50: init %i32 = call %bound_method.loc9_50.2(%int_2.loc9) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc9_50.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_50 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc9_50.2: %i32 = converted %int_2.loc9, %.loc9_50.1 [concrete = constants.%int_2.295] // CHECK:STDOUT: %GlobalReturnInt__carbon_thunk.call: init %i32 = call imports.%GlobalReturnInt__carbon_thunk.decl(%.loc9_47.2, %.loc9_50.2) // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc9_51.1: %i32 = value_of_initializer %GlobalReturnInt__carbon_thunk.call @@ -725,58 +725,58 @@ fn Call() { // CHECK:STDOUT: %int_1.loc10: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc10: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc10_22: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_22.1: = bound_method %int_1.loc10, %impl.elem0.loc10_22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc10_22: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_22.1: = bound_method %int_1.loc10, %impl.elem0.loc10_22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc10_22: = specific_function %impl.elem0.loc10_22, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_22.2: = bound_method %int_1.loc10, %specific_fn.loc10_22 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_22: init %i32 = call %bound_method.loc10_22.2(%int_1.loc10) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc10_22.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_22 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc10_22.2: %i32 = converted %int_1.loc10, %.loc10_22.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc10_25: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_25.1: = bound_method %int_2.loc10, %impl.elem0.loc10_25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc10_22.2: = bound_method %int_1.loc10, %specific_fn.loc10_22 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_22: init %i32 = call %bound_method.loc10_22.2(%int_1.loc10) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc10_22.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_22 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc10_22.2: %i32 = converted %int_1.loc10, %.loc10_22.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc10_25: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_25.1: = bound_method %int_2.loc10, %impl.elem0.loc10_25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc10_25: = specific_function %impl.elem0.loc10_25, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_25.2: = bound_method %int_2.loc10, %specific_fn.loc10_25 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_25: init %i32 = call %bound_method.loc10_25.2(%int_2.loc10) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc10_25.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_25 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc10_25.2: %i32 = converted %int_2.loc10, %.loc10_25.1 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %impl.elem0.loc10_28: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_28.1: = bound_method %int_3, %impl.elem0.loc10_28 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %bound_method.loc10_25.2: = bound_method %int_2.loc10, %specific_fn.loc10_25 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_25: init %i32 = call %bound_method.loc10_25.2(%int_2.loc10) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc10_25.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_25 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc10_25.2: %i32 = converted %int_2.loc10, %.loc10_25.1 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %impl.elem0.loc10_28: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_28.1: = bound_method %int_3, %impl.elem0.loc10_28 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc10_28: = specific_function %impl.elem0.loc10_28, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_28.2: = bound_method %int_3, %specific_fn.loc10_28 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_28: init %i32 = call %bound_method.loc10_28.2(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc10_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_28 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc10_28.2: %i32 = converted %int_3, %.loc10_28.1 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%GlobalNoReturn__carbon_thunk.decl.c103e1.2(%.loc10_22.2, %.loc10_25.2, %.loc10_28.2) +// CHECK:STDOUT: %bound_method.loc10_28.2: = bound_method %int_3, %specific_fn.loc10_28 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_28: init %i32 = call %bound_method.loc10_28.2(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc10_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_28 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc10_28.2: %i32 = converted %int_3, %.loc10_28.1 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %GlobalNoReturn__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%GlobalNoReturn__carbon_thunk.decl.04a738.2(%.loc10_22.2, %.loc10_25.2, %.loc10_28.2) // CHECK:STDOUT: %.loc11_5.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %X.ref.loc11: type = name_ref X, imports.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc11_5.2: ref %X = temporary_storage // CHECK:STDOUT: %.loc11_5.3: init %X to %.loc11_5.2 = class_init () [concrete = constants.%X.val] // CHECK:STDOUT: %.loc11_7.1: init %X = converted %.loc11_5.1, %.loc11_5.3 [concrete = constants.%X.val] -// CHECK:STDOUT: %.loc11_7.2: ref %X = temporary %.loc11_5.2, %.loc11_7.1 [concrete = constants.%.4e8] +// CHECK:STDOUT: %.loc11_7.2: ref %X = temporary %.loc11_5.2, %.loc11_7.1 [concrete = constants.%.414] // CHECK:STDOUT: %B.ref: %X.B.cpp_overload_set.type = name_ref B, imports.%X.B.cpp_overload_set.value [concrete = constants.%X.B.cpp_overload_set.value] -// CHECK:STDOUT: %bound_method.loc11_16: = bound_method %.loc11_7.2, %B.ref [concrete = constants.%bound_method.7cd] +// CHECK:STDOUT: %bound_method.loc11_16: = bound_method %.loc11_7.2, %B.ref [concrete = constants.%bound_method.f8c] // CHECK:STDOUT: %int_1.loc11: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_7.3: %X = acquire_value %.loc11_7.2 [concrete = constants.%X.val] -// CHECK:STDOUT: %impl.elem0.loc11: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc11_19.1: = bound_method %int_1.loc11, %impl.elem0.loc11 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc11: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc11_19.1: = bound_method %int_1.loc11, %impl.elem0.loc11 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_19.2: = bound_method %int_1.loc11, %specific_fn.loc11 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11: init %i32 = call %bound_method.loc11_19.2(%int_1.loc11) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc11_19.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc11_19.2: %i32 = converted %int_1.loc11, %.loc11_19.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc11_19.2: = bound_method %int_1.loc11, %specific_fn.loc11 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11: init %i32 = call %bound_method.loc11_19.2(%int_1.loc11) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc11_19.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc11_19.2: %i32 = converted %int_1.loc11, %.loc11_19.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %B__carbon_thunk.call: init %empty_tuple.type = call imports.%B__carbon_thunk.decl(%.loc11_7.3, %.loc11_19.2) // CHECK:STDOUT: %Cpp.ref.loc12: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %X.ref.loc12: type = name_ref X, imports.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %C.ref: %X.C.cpp_overload_set.type = name_ref C, imports.%X.C.cpp_overload_set.value [concrete = constants.%X.C.cpp_overload_set.value] // CHECK:STDOUT: %int_1.loc12: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc12: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc12_11.1: = bound_method %int_1.loc12, %impl.elem0.loc12 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc12: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc12_11.1: = bound_method %int_1.loc12, %impl.elem0.loc12 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc12_11.2: = bound_method %int_1.loc12, %specific_fn.loc12 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12: init %i32 = call %bound_method.loc12_11.2(%int_1.loc12) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc12_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc12_11.2: %i32 = converted %int_1.loc12, %.loc12_11.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc12_11.2: = bound_method %int_1.loc12, %specific_fn.loc12 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12: init %i32 = call %bound_method.loc12_11.2(%int_1.loc12) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc12_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc12_11.2: %i32 = converted %int_1.loc12, %.loc12_11.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%.loc12_11.2) // CHECK:STDOUT: %.loc13_5.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %Cpp.ref.loc13: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -784,24 +784,24 @@ fn Call() { // CHECK:STDOUT: %.loc13_5.2: ref %X = temporary_storage // CHECK:STDOUT: %.loc13_5.3: init %X to %.loc13_5.2 = class_init () [concrete = constants.%X.val] // CHECK:STDOUT: %.loc13_7.1: init %X = converted %.loc13_5.1, %.loc13_5.3 [concrete = constants.%X.val] -// CHECK:STDOUT: %.loc13_7.2: ref %X = temporary %.loc13_5.2, %.loc13_7.1 [concrete = constants.%.4e8] +// CHECK:STDOUT: %.loc13_7.2: ref %X = temporary %.loc13_5.2, %.loc13_7.1 [concrete = constants.%.414] // CHECK:STDOUT: %D.ref: %X.D.cpp_overload_set.type = name_ref D, imports.%X.D.cpp_overload_set.value [concrete = constants.%X.D.cpp_overload_set.value] -// CHECK:STDOUT: %bound_method.loc13_16: = bound_method %.loc13_7.2, %D.ref [concrete = constants.%bound_method.954] +// CHECK:STDOUT: %bound_method.loc13_16: = bound_method %.loc13_7.2, %D.ref [concrete = constants.%bound_method.9a8] // CHECK:STDOUT: %int_1.loc13: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc13_7.3: %X = acquire_value %.loc13_7.2 [concrete = constants.%X.val] -// CHECK:STDOUT: %impl.elem0.loc13: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc13_19.1: = bound_method %int_1.loc13, %impl.elem0.loc13 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc13: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc13_19.1: = bound_method %int_1.loc13, %impl.elem0.loc13 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc13_19.2: = bound_method %int_1.loc13, %specific_fn.loc13 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13: init %i32 = call %bound_method.loc13_19.2(%int_1.loc13) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc13_19.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc13_19.2: %i32 = converted %int_1.loc13, %.loc13_19.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc13_19.2: = bound_method %int_1.loc13, %specific_fn.loc13 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13: init %i32 = call %bound_method.loc13_19.2(%int_1.loc13) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc13_19.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc13_19.2: %i32 = converted %int_1.loc13, %.loc13_19.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc13_7.4: ref %X = value_as_ref %.loc13_7.3 -// CHECK:STDOUT: %addr: %ptr.d14 = addr_of %.loc13_7.4 +// CHECK:STDOUT: %addr: %ptr.ca1 = addr_of %.loc13_7.4 // CHECK:STDOUT: %D__carbon_thunk.call: init %empty_tuple.type = call imports.%D__carbon_thunk.decl(%addr, %.loc13_19.2) // CHECK:STDOUT: %X.Op.decl: %X.Op.type = fn_decl @X.Op [concrete = constants.%X.Op] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.bd3 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.bd3 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.fa7 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.fa7 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %X = ref_param call_param0 // CHECK:STDOUT: %self: ref %X = ref_binding self, %self.param @@ -833,11 +833,11 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: fn @X.D(%self.param: %X, %a.param: %i32); // CHECK:STDOUT: -// CHECK:STDOUT: fn @D__carbon_thunk(%_.param: %ptr.d14, %a.param: %i32); +// CHECK:STDOUT: fn @D__carbon_thunk(%_.param: %ptr.ca1, %a.param: %i32); // CHECK:STDOUT: // CHECK:STDOUT: fn @X.cpp_destructor(%self.param: ref %X) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @X.Op(%self.param: ref %X) [thunk imports.%X.cpp_destructor.decl for imports.%Destroy.WithSelf.Op.decl, @Destroy.WithSelf.Op(constants.%Destroy.facet.b2c)] { +// CHECK:STDOUT: fn @X.Op(%self.param: ref %X) [thunk imports.%X.cpp_destructor.decl for imports.%Destroy.WithSelf.Op.decl, @Destroy.WithSelf.Op(constants.%Destroy.facet.761)] { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Op.ref: %X.cpp_destructor.type = name_ref Op, imports.%X.cpp_destructor.decl [concrete = constants.%X.cpp_destructor] // CHECK:STDOUT: %X.cpp_destructor.bound: = bound_method %self.param, %Op.ref @@ -857,15 +857,15 @@ fn Call() { // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %X.val: %X = struct_value () [concrete] -// CHECK:STDOUT: %.4e8: ref %X = temporary invalid, %X.val [concrete] +// CHECK:STDOUT: %.414: ref %X = temporary invalid, %X.val [concrete] // CHECK:STDOUT: %X.B.cpp_overload_set.type: type = cpp_overload_set_type @X.B.cpp_overload_set [concrete] // CHECK:STDOUT: %X.B.cpp_overload_set.value: %X.B.cpp_overload_set.type = cpp_overload_set_value @X.B.cpp_overload_set [concrete] -// CHECK:STDOUT: %bound_method.7cd: = bound_method %.4e8, %X.B.cpp_overload_set.value [concrete] +// CHECK:STDOUT: %bound_method.f8c: = bound_method %.414, %X.B.cpp_overload_set.value [concrete] // CHECK:STDOUT: %X.C.cpp_overload_set.type: type = cpp_overload_set_type @X.C.cpp_overload_set [concrete] // CHECK:STDOUT: %X.C.cpp_overload_set.value: %X.C.cpp_overload_set.type = cpp_overload_set_value @X.C.cpp_overload_set [concrete] // CHECK:STDOUT: %X.D.cpp_overload_set.type: type = cpp_overload_set_type @X.D.cpp_overload_set [concrete] // CHECK:STDOUT: %X.D.cpp_overload_set.value: %X.D.cpp_overload_set.type = cpp_overload_set_value @X.D.cpp_overload_set [concrete] -// CHECK:STDOUT: %bound_method.954: = bound_method %.4e8, %X.D.cpp_overload_set.value [concrete] +// CHECK:STDOUT: %bound_method.9a8: = bound_method %.414, %X.D.cpp_overload_set.value [concrete] // CHECK:STDOUT: %X.cpp_destructor.type: type = fn_type @X.cpp_destructor [concrete] // CHECK:STDOUT: %X.cpp_destructor: %X.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -908,9 +908,9 @@ fn Call() { // CHECK:STDOUT: %.loc56_5.2: ref %X = temporary_storage // CHECK:STDOUT: %.loc56_5.3: init %X to %.loc56_5.2 = class_init () [concrete = constants.%X.val] // CHECK:STDOUT: %.loc56_7.1: init %X = converted %.loc56_5.1, %.loc56_5.3 [concrete = constants.%X.val] -// CHECK:STDOUT: %.loc56_7.2: ref %X = temporary %.loc56_5.2, %.loc56_7.1 [concrete = constants.%.4e8] +// CHECK:STDOUT: %.loc56_7.2: ref %X = temporary %.loc56_5.2, %.loc56_7.1 [concrete = constants.%.414] // CHECK:STDOUT: %B.ref: %X.B.cpp_overload_set.type = name_ref B, imports.%X.B.cpp_overload_set.value [concrete = constants.%X.B.cpp_overload_set.value] -// CHECK:STDOUT: %bound_method.loc56: = bound_method %.loc56_7.2, %B.ref [concrete = constants.%bound_method.7cd] +// CHECK:STDOUT: %bound_method.loc56: = bound_method %.loc56_7.2, %B.ref [concrete = constants.%bound_method.f8c] // CHECK:STDOUT: %Cpp.ref.loc66: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %X.ref.loc66: type = name_ref X, imports.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %C.ref: %X.C.cpp_overload_set.type = name_ref C, imports.%X.C.cpp_overload_set.value [concrete = constants.%X.C.cpp_overload_set.value] @@ -920,9 +920,9 @@ fn Call() { // CHECK:STDOUT: %.loc76_5.2: ref %X = temporary_storage // CHECK:STDOUT: %.loc76_5.3: init %X to %.loc76_5.2 = class_init () [concrete = constants.%X.val] // CHECK:STDOUT: %.loc76_7.1: init %X = converted %.loc76_5.1, %.loc76_5.3 [concrete = constants.%X.val] -// CHECK:STDOUT: %.loc76_7.2: ref %X = temporary %.loc76_5.2, %.loc76_7.1 [concrete = constants.%.4e8] +// CHECK:STDOUT: %.loc76_7.2: ref %X = temporary %.loc76_5.2, %.loc76_7.1 [concrete = constants.%.414] // CHECK:STDOUT: %D.ref: %X.D.cpp_overload_set.type = name_ref D, imports.%X.D.cpp_overload_set.value [concrete = constants.%X.D.cpp_overload_set.value] -// CHECK:STDOUT: %bound_method.loc76: = bound_method %.loc76_7.2, %D.ref [concrete = constants.%bound_method.954] +// CHECK:STDOUT: %bound_method.loc76: = bound_method %.loc76_7.2, %D.ref [concrete = constants.%bound_method.9a8] // CHECK:STDOUT: // CHECK:STDOUT: %Op.ref.loc76: %X.cpp_destructor.type = name_ref Op, imports.%X.cpp_destructor.decl [concrete = constants.%X.cpp_destructor] // CHECK:STDOUT: %Op.ref.loc56: %X.cpp_destructor.type = name_ref Op, imports.%X.cpp_destructor.decl [concrete = constants.%X.cpp_destructor] diff --git a/toolchain/check/testdata/interop/cpp/function/import/extern_c.carbon b/toolchain/check/testdata/interop/cpp/function/import/extern_c.carbon index 24517d73fee7..1738ba3806d0 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/extern_c.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/extern_c.carbon @@ -102,27 +102,27 @@ fn MyF(a: Cpp.X, b: Cpp.X) -> Cpp.X { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %foo.type.95b203.1: type = fn_type @foo.1 [concrete] -// CHECK:STDOUT: %foo.f55227.1: %foo.type.95b203.1 = struct_value () [concrete] +// CHECK:STDOUT: %foo.type.6d9caa.1: type = fn_type @foo.1 [concrete] +// CHECK:STDOUT: %foo.627376.1: %foo.type.6d9caa.1 = struct_value () [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %foo.type.95b203.2: type = fn_type @foo.2 [concrete] -// CHECK:STDOUT: %foo.f55227.2: %foo.type.95b203.2 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %foo.type.6d9caa.2: type = fn_type @foo.2 [concrete] +// CHECK:STDOUT: %foo.627376.2: %foo.type.6d9caa.2 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_5.354: %i32 = int_value 5 [concrete] +// CHECK:STDOUT: %int_5.eef: %i32 = int_value 5 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -131,32 +131,32 @@ fn MyF(a: Cpp.X, b: Cpp.X) -> Cpp.X { // 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: %foo.decl.993533.1: %foo.type.95b203.1 = fn_decl @foo.1 [concrete = constants.%foo.f55227.1] {} {} -// CHECK:STDOUT: %foo.decl.993533.2: %foo.type.95b203.2 = fn_decl @foo.2 [concrete = constants.%foo.f55227.2] { +// CHECK:STDOUT: %foo.decl.6431a3.1: %foo.type.6d9caa.1 = fn_decl @foo.1 [concrete = constants.%foo.627376.1] {} {} +// CHECK:STDOUT: %foo.decl.6431a3.2: %foo.type.6d9caa.2 = fn_decl @foo.2 [concrete = constants.%foo.627376.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @MyF() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref.loc11: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] -// CHECK:STDOUT: %foo.call.loc11: init %empty_tuple.type = call imports.%foo.decl.993533.1() +// CHECK:STDOUT: %foo.call.loc11: init %empty_tuple.type = call imports.%foo.decl.6431a3.1() // CHECK:STDOUT: %Cpp.ref.loc12: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref.loc12: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc12_11.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_11.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc12_11.2(%int_5) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc12_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc12_11.2: %i32 = converted %int_5, %.loc12_11.1 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %foo.call.loc12: init %empty_tuple.type = call imports.%foo.decl.993533.2(%.loc12_11.2) +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc12_11.2(%int_5) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc12_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc12_11.2: %i32 = converted %int_5, %.loc12_11.1 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %foo.call.loc12: init %empty_tuple.type = call imports.%foo.decl.6431a3.2(%.loc12_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -166,17 +166,17 @@ fn MyF(a: Cpp.X, b: Cpp.X) -> Cpp.X { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -184,11 +184,11 @@ fn MyF(a: Cpp.X, b: Cpp.X) -> Cpp.X { // CHECK:STDOUT: .foo = %foo.var // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %foo.patt: %pattern_type.104 = ref_binding_pattern foo [concrete] -// CHECK:STDOUT: %foo.var_patt: %pattern_type.104 = var_pattern %foo.patt [concrete] +// CHECK:STDOUT: %foo.patt: %pattern_type.6b6 = ref_binding_pattern foo [concrete] +// CHECK:STDOUT: %foo.var_patt: %pattern_type.6b6 = var_pattern %foo.patt [concrete] // CHECK:STDOUT: %foo.var: ref %i32 = var %foo.var_patt [concrete] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @MyF() -> out %return.param: %i32 { @@ -197,7 +197,7 @@ fn MyF(a: Cpp.X, b: Cpp.X) -> Cpp.X { // CHECK:STDOUT: // CHECK:STDOUT: %foo.ref: ref %i32 = name_ref foo, imports.%foo.var [concrete = imports.%foo.var] // CHECK:STDOUT: %.loc10: %i32 = acquire_value %foo.ref -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc10_13.1: = bound_method %.loc10, %impl.elem0 // 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.loc10_13.2: = bound_method %.loc10, %specific_fn @@ -210,7 +210,7 @@ fn MyF(a: Cpp.X, b: Cpp.X) -> Cpp.X { // CHECK:STDOUT: constants { // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ptr.d14: type = ptr_type %X [concrete] +// CHECK:STDOUT: %ptr.ca1: type = ptr_type %X [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk: %operator_Plus__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -229,10 +229,10 @@ fn MyF(a: Cpp.X, b: Cpp.X) -> Cpp.X { // CHECK:STDOUT: %b.ref: %X = name_ref b, %b // CHECK:STDOUT: // CHECK:STDOUT: %.loc11_10: ref %X = value_as_ref %a.ref -// CHECK:STDOUT: %addr.loc11_12.1: %ptr.d14 = addr_of %.loc11_10 +// CHECK:STDOUT: %addr.loc11_12.1: %ptr.ca1 = addr_of %.loc11_10 // CHECK:STDOUT: %.loc11_14: ref %X = value_as_ref %b.ref -// CHECK:STDOUT: %addr.loc11_12.2: %ptr.d14 = addr_of %.loc11_14 -// CHECK:STDOUT: %addr.loc11_12.3: %ptr.d14 = addr_of %.loc9_34.1 +// CHECK:STDOUT: %addr.loc11_12.2: %ptr.ca1 = addr_of %.loc11_14 +// CHECK:STDOUT: %addr.loc11_12.3: %ptr.ca1 = addr_of %.loc9_34.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc11_12.1, %addr.loc11_12.2, %addr.loc11_12.3) // CHECK:STDOUT: %.loc11_12: init %X to %.loc9_34.1 = mark_in_place_init %operator_Plus__carbon_thunk.call // CHECK:STDOUT: return %.loc11_12 to %return.param 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 3edb8d08eb60..fd6e69905608 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/full_semir.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/full_semir.carbon @@ -80,44 +80,44 @@ fn F() { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] // CHECK:STDOUT: %i16.builtin: type = int_type signed, %int_16 [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.fff: type = facet_type <@As, @As(%i16)> [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.6f1: type = facet_type <@As, @As(%i16)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.16a: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.ced: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.0b6: %Core.IntLiteral.as.As.impl.Convert.type.ced = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fff = facet_value Core.IntLiteral, (%As.impl_witness.16a) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.28f: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] -// CHECK:STDOUT: %.696: type = fn_type_with_self_type %As.WithSelf.Convert.type.28f, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.0b6 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.0b6, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.7f7: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.792: %i16 = int_value 1 [concrete] -// CHECK:STDOUT: %ptr.83d: type = ptr_type %i16 [concrete] -// CHECK:STDOUT: %pattern_type.497: type = pattern_type %ptr.83d [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.820: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.4b7: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.70c: %Core.IntLiteral.as.As.impl.Convert.type.4b7 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.6f1 = facet_value Core.IntLiteral, (%As.impl_witness.820) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.d73: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] +// CHECK:STDOUT: %.6b5: type = fn_type_with_self_type %As.WithSelf.Convert.type.d73, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.70c [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.70c, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] +// CHECK:STDOUT: %bound_method.a0f: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.d17: %i16 = int_value 1 [concrete] +// CHECK:STDOUT: %ptr.686: type = ptr_type %i16 [concrete] +// CHECK:STDOUT: %pattern_type.f71: type = pattern_type %ptr.686 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.980: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.fe1: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a44: %Int.as.Copy.impl.Op.type.fe1 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.980) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cf9: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.799: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cf9, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.792, %Int.as.Copy.impl.Op.a44 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.a44, @Int.as.Copy.impl.Op(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.055: = bound_method %int_1.792, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.e50: ref %i16 = temporary invalid, %int_1.792 [concrete] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.e50 [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.7d9: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.16c: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.25c: %Int.as.Copy.impl.Op.type.16c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.7d9) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.332: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.000: type = fn_type_with_self_type %Copy.WithSelf.Op.type.332, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.d17, %Int.as.Copy.impl.Op.25c [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.25c, @Int.as.Copy.impl.Op(%int_16) [concrete] +// 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.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc7_13.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e50, %Destroy.Op.2dd605.2 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -135,24 +135,24 @@ fn F() { // 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.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.497 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.497 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.f71 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.f71 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %a.param: %ptr.83d = value_param call_param0 -// CHECK:STDOUT: %.1: type = splice_block constants.%ptr.83d [concrete = constants.%ptr.83d] { +// CHECK:STDOUT: %a.param: %ptr.686 = value_param call_param0 +// CHECK:STDOUT: %.1: type = splice_block constants.%ptr.686 [concrete = constants.%ptr.686] { // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete = constants.%int_16] // CHECK:STDOUT: %i16.1: type = class_type @Int, @Int(constants.%int_16) [concrete = constants.%i16] // CHECK:STDOUT: %i16.2: type = type_literal %i16.1 [concrete = constants.%i16] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.83d = value_binding a, %a.param +// CHECK:STDOUT: %a: %ptr.686 = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -175,29 +175,29 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i16: type = type_literal constants.%i16 [concrete = constants.%i16] -// CHECK:STDOUT: %impl.elem0.loc7_13.1: %.696 = impl_witness_access constants.%As.impl_witness.16a, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.0b6] +// CHECK:STDOUT: %impl.elem0.loc7_13.1: %.6b5 = impl_witness_access constants.%As.impl_witness.820, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.70c] // CHECK:STDOUT: %bound_method.loc7_13.1: = bound_method %int_1, %impl.elem0.loc7_13.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc7_13.1: = specific_function %impl.elem0.loc7_13.1, @Core.IntLiteral.as.As.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_13.2: = bound_method %int_1, %specific_fn.loc7_13.1 [concrete = constants.%bound_method.7f7] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc7_13.2(%int_1) [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc7_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc7_13.2: %i16 = converted %int_1, %.loc7_13.1 [concrete = constants.%int_1.792] -// CHECK:STDOUT: %impl.elem0.loc7_13.2: %.799 = impl_witness_access constants.%Copy.impl_witness.980, element0 [concrete = constants.%Int.as.Copy.impl.Op.a44] +// CHECK:STDOUT: %bound_method.loc7_13.2: = bound_method %int_1, %specific_fn.loc7_13.1 [concrete = constants.%bound_method.a0f] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc7_13.2(%int_1) [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc7_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc7_13.2: %i16 = converted %int_1, %.loc7_13.1 [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %impl.elem0.loc7_13.2: %.000 = impl_witness_access constants.%Copy.impl_witness.7d9, element0 [concrete = constants.%Int.as.Copy.impl.Op.25c] // CHECK:STDOUT: %bound_method.loc7_13.3: = bound_method %.loc7_13.2, %impl.elem0.loc7_13.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc7_13.2: = specific_function %impl.elem0.loc7_13.2, @Int.as.Copy.impl.Op(constants.%int_16) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_13.4: = bound_method %.loc7_13.2, %specific_fn.loc7_13.2 [concrete = constants.%bound_method.055] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc7_13.4(%.loc7_13.2) [concrete = constants.%int_1.792] +// CHECK:STDOUT: %bound_method.loc7_13.4: = bound_method %.loc7_13.2, %specific_fn.loc7_13.2 [concrete = constants.%bound_method.47b] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc7_13.4(%.loc7_13.2) [concrete = constants.%int_1.d17] // CHECK:STDOUT: %.loc7_13.3: ref %i16 = temporary_storage -// CHECK:STDOUT: %.loc7_13.4: ref %i16 = temporary %.loc7_13.3, %Int.as.Copy.impl.Op.call [concrete = constants.%.e50] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.loc7_13.4 [concrete = constants.%addr] +// 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.%.e50) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @foo(%a.param: %i16); // CHECK:STDOUT: -// CHECK:STDOUT: fn @foo__carbon_thunk(%a.param: %ptr.83d); +// 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: @@ -219,25 +219,25 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -254,8 +254,8 @@ fn F() { // 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.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -265,9 +265,9 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: %i32 = value_binding a, %a.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -288,13 +288,13 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc7_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc7_11.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc7_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc7_11.2: %i32 = converted %int_1, %.loc7_11.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc7_11.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_11.2: %i32 = converted %int_1, %.loc7_11.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc7_11.2) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -312,16 +312,16 @@ fn F() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] // CHECK:STDOUT: %i16.builtin: type = int_type signed, %int_16 [concrete] -// CHECK:STDOUT: %pattern_type.e1b: type = pattern_type %i16 [concrete] +// CHECK:STDOUT: %pattern_type.203: type = pattern_type %i16 [concrete] // CHECK:STDOUT: %foo_short.cpp_overload_set.type: type = cpp_overload_set_type @foo_short.cpp_overload_set [concrete] // CHECK:STDOUT: %foo_short.cpp_overload_set.value: %foo_short.cpp_overload_set.type = cpp_overload_set_value @foo_short.cpp_overload_set [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %i16 [concrete] -// CHECK:STDOUT: %pattern_type.497: type = pattern_type %ptr [concrete] +// CHECK:STDOUT: %pattern_type.f71: type = pattern_type %ptr [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.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc7_37.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -338,8 +338,8 @@ fn F() { // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %foo_short.cpp_overload_set.value: %foo_short.cpp_overload_set.type = cpp_overload_set_value @foo_short.cpp_overload_set [concrete = constants.%foo_short.cpp_overload_set.value] // CHECK:STDOUT: %foo_short__carbon_thunk.decl: %foo_short__carbon_thunk.type = fn_decl @foo_short__carbon_thunk [concrete = constants.%foo_short__carbon_thunk] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.497 = value_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.497 = at_binding_pattern r#return, %return.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f71 = value_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f71 = at_binding_pattern r#return, %return.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %return.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block constants.%ptr [concrete = constants.%ptr] { @@ -368,7 +368,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.e1b = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.203 = value_binding_pattern x [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo_short.ref: %foo_short.cpp_overload_set.type = name_ref foo_short, imports.%foo_short.cpp_overload_set.value [concrete = constants.%foo_short.cpp_overload_set.value] @@ -380,7 +380,7 @@ fn F() { // CHECK:STDOUT: %.loc7_37.3: ref %i16 = temporary %.loc7_37.1, %.loc7_37.2 // CHECK:STDOUT: %.loc7_37.4: %i16 = acquire_value %.loc7_37.3 // CHECK:STDOUT: %x: %i16 = value_binding x, %.loc7_37.4 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc7_37.3, constants.%Destroy.Op.2dd605.2 +// 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: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/function/import/function.carbon b/toolchain/check/testdata/interop/cpp/function/import/function.carbon index 2187a6f12214..270d2969ee18 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/function.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/function.carbon @@ -323,20 +323,20 @@ fn G() -> i32 { // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %As.type.c00: type = facet_type <@As, @As(%i32)> [concrete] +// CHECK:STDOUT: %As.type.155: type = facet_type <@As, @As(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.54d: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.421: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.978: %Core.IntLiteral.as.As.impl.Convert.type.421 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.c00 = facet_value Core.IntLiteral, (%As.impl_witness.54d) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.f0c: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] -// CHECK:STDOUT: %.c18: type = fn_type_with_self_type %As.WithSelf.Convert.type.f0c, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.978 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.978, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.03e: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.e79: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.8a4: %Core.IntLiteral.as.As.impl.Convert.type.e79 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.155 = facet_value Core.IntLiteral, (%As.impl_witness.03e) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.8ea: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] +// CHECK:STDOUT: %.fbc: type = fn_type_with_self_type %As.WithSelf.Convert.type.8ea, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.8a4 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.8a4, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %bar.cpp_overload_set.type: type = cpp_overload_set_type @bar.cpp_overload_set [concrete] @@ -352,8 +352,8 @@ fn G() -> i32 { // 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.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -373,13 +373,13 @@ fn G() -> i32 { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.c18 = impl_witness_access constants.%As.impl_witness.54d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.978] +// CHECK:STDOUT: %impl.elem0: %.fbc = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.8a4] // CHECK:STDOUT: %bound_method.loc8_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_13.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_13.2: %i32 = converted %int_1, %.loc8_13.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_13.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_13.2: %i32 = converted %int_1, %.loc8_13.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc8_13.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -390,13 +390,13 @@ fn G() -> i32 { // CHECK:STDOUT: %bar.ref: %bar.cpp_overload_set.type = name_ref bar, imports.%bar.cpp_overload_set.value [concrete = constants.%bar.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i32.loc14: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.c18 = impl_witness_access constants.%As.impl_witness.54d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.978] +// CHECK:STDOUT: %impl.elem0: %.fbc = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.8a4] // CHECK:STDOUT: %bound_method.loc14_20.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_20.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc14_20.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc14_20.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc14_20.2: %i32 = converted %int_1, %.loc14_20.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc14_20.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc14_20.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc14_20.2: %i32 = converted %int_1, %.loc14_20.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %bar.call: init %i32 = call imports.%bar.decl(%.loc14_20.2) // CHECK:STDOUT: return %bar.call // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/function/import/in_template.carbon b/toolchain/check/testdata/interop/cpp/function/import/in_template.carbon index e5798d3be607..2436995927a9 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/in_template.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/in_template.carbon @@ -45,20 +45,20 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %X.f.type: type = fn_type @X.f [concrete] // CHECK:STDOUT: %X.f: %X.f.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_42.daa: %i32 = int_value 42 [concrete] +// CHECK:STDOUT: %int_42.ac4: %i32 = int_value 42 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -73,8 +73,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -83,13 +83,13 @@ fn F() { // CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %f.ref: %X.f.cpp_overload_set.type = name_ref f, imports.%X.f.cpp_overload_set.value [concrete = constants.%X.f.cpp_overload_set.value] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_42, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_42, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.2(%int_42) [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_42, %.loc8_11.1 [concrete = constants.%int_42.daa] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.2(%int_42) [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_42, %.loc8_11.1 [concrete = constants.%int_42.ac4] // CHECK:STDOUT: %X.f.call: init %empty_tuple.type = call imports.%X.f.decl(%.loc8_11.2) // CHECK:STDOUT: // 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 a8c305f48d6d..9cfbf1efcc40 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/inline.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/inline.carbon @@ -150,60 +150,60 @@ fn MyF() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %WithoutThunk.cpp_overload_set.type: type = cpp_overload_set_type @WithoutThunk.cpp_overload_set [concrete] // CHECK:STDOUT: %WithoutThunk.cpp_overload_set.value: %WithoutThunk.cpp_overload_set.type = cpp_overload_set_value @WithoutThunk.cpp_overload_set [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %WithoutThunk.type: type = fn_type @WithoutThunk [concrete] // CHECK:STDOUT: %WithoutThunk: %WithoutThunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.840: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.840) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet.840 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.247: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.247 [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.9f1: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.9f1) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet.9f1 [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: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.571: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.953: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.571 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %ThunkOnArg.cpp_overload_set.type: type = cpp_overload_set_type @ThunkOnArg.cpp_overload_set [concrete] // CHECK:STDOUT: %ThunkOnArg.cpp_overload_set.value: %ThunkOnArg.cpp_overload_set.type = cpp_overload_set_value @ThunkOnArg.cpp_overload_set [concrete] // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] -// CHECK:STDOUT: %pattern_type.e1b: type = pattern_type %i16 [concrete] -// CHECK:STDOUT: %ptr.83d: type = ptr_type %i16 [concrete] +// CHECK:STDOUT: %pattern_type.203: type = pattern_type %i16 [concrete] +// CHECK:STDOUT: %ptr.686: type = ptr_type %i16 [concrete] // CHECK:STDOUT: %ThunkOnArg__carbon_thunk.type: type = fn_type @ThunkOnArg__carbon_thunk [concrete] // CHECK:STDOUT: %ThunkOnArg__carbon_thunk: %ThunkOnArg__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %i16.builtin: type = int_type signed, %int_16 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.be3: type = facet_type <@ImplicitAs, @ImplicitAs(%i16)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.685: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.720: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.f75: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.720 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.c95: %ImplicitAs.type.be3 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.685) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.e56: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i16, %ImplicitAs.facet.c95) [concrete] -// CHECK:STDOUT: %.94b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.e56, %ImplicitAs.facet.c95 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.d9a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.f75 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.6d9: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.f75, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.711: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.6d9 [concrete] -// CHECK:STDOUT: %int_1.792: %i16 = int_value 1 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.044: type = facet_type <@ImplicitAs, @ImplicitAs(%i16)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.884: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.c22: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.0c0: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.c22 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.c33: %ImplicitAs.type.044 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.884) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.d17: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i16, %ImplicitAs.facet.c33) [concrete] +// CHECK:STDOUT: %.769: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.d17, %ImplicitAs.facet.c33 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.386: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0c0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.06a: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.0c0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_16) [concrete] +// CHECK:STDOUT: %bound_method.b1b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.06a [concrete] +// CHECK:STDOUT: %int_1.d17: %i16 = int_value 1 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.980: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.fe1: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a44: %Int.as.Copy.impl.Op.type.fe1 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.980) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cf9: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.799: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cf9, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.792, %Int.as.Copy.impl.Op.a44 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.a44, @Int.as.Copy.impl.Op(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.055: = bound_method %int_1.792, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.e50: ref %i16 = temporary invalid, %int_1.792 [concrete] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.e50 [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.7d9: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.16c: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.25c: %Int.as.Copy.impl.Op.type.16c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.7d9) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.332: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.000: type = fn_type_with_self_type %Copy.WithSelf.Op.type.332, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.d17, %Int.as.Copy.impl.Op.25c [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.25c, @Int.as.Copy.impl.Op(%int_16) [concrete] +// 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: %ThunkOnReturn.cpp_overload_set.type: type = cpp_overload_set_type @ThunkOnReturn.cpp_overload_set [concrete] // CHECK:STDOUT: %ThunkOnReturn.cpp_overload_set.value: %ThunkOnReturn.cpp_overload_set.type = cpp_overload_set_value @ThunkOnReturn.cpp_overload_set [concrete] // CHECK:STDOUT: %ThunkOnReturn__carbon_thunk.type: type = fn_type @ThunkOnReturn__carbon_thunk [concrete] @@ -212,9 +212,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.790b3b.2: type = fn_type @Destroy.Op.loc16_41.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e50, %Destroy.Op.2dd605.2 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -231,16 +231,16 @@ fn MyF() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %ThunkOnArg.cpp_overload_set.value: %ThunkOnArg.cpp_overload_set.type = cpp_overload_set_value @ThunkOnArg.cpp_overload_set [concrete = constants.%ThunkOnArg.cpp_overload_set.value] // CHECK:STDOUT: %ThunkOnArg__carbon_thunk.decl: %ThunkOnArg__carbon_thunk.type = fn_decl @ThunkOnArg__carbon_thunk [concrete = constants.%ThunkOnArg__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %ThunkOnReturn.cpp_overload_set.value: %ThunkOnReturn.cpp_overload_set.type = cpp_overload_set_value @ThunkOnReturn.cpp_overload_set [concrete = constants.%ThunkOnReturn.cpp_overload_set.value] // CHECK:STDOUT: %ThunkOnReturn__carbon_thunk.decl: %ThunkOnReturn__carbon_thunk.type = fn_decl @ThunkOnReturn__carbon_thunk [concrete = constants.%ThunkOnReturn__carbon_thunk] { // CHECK:STDOUT: @@ -258,64 +258,64 @@ fn MyF() { // CHECK:STDOUT: fn @MyF() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %r1.patt: %pattern_type.104 = value_binding_pattern r1 [concrete] +// CHECK:STDOUT: %r1.patt: %pattern_type.6b6 = value_binding_pattern r1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc13: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %WithoutThunk.ref: %WithoutThunk.cpp_overload_set.type = name_ref WithoutThunk, imports.%WithoutThunk.cpp_overload_set.value [concrete = constants.%WithoutThunk.cpp_overload_set.value] // CHECK:STDOUT: %int_1.loc13: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc13: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc13_41.1: = bound_method %int_1.loc13, %impl.elem0.loc13 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.247] -// CHECK:STDOUT: %bound_method.loc13_41.2: = bound_method %int_1.loc13, %specific_fn.loc13 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13: init %i32 = call %bound_method.loc13_41.2(%int_1.loc13) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc13_41.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc13_41.2: %i32 = converted %int_1.loc13, %.loc13_41.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %impl.elem0.loc13: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc13_41.1: = bound_method %int_1.loc13, %impl.elem0.loc13 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.571] +// CHECK:STDOUT: %bound_method.loc13_41.2: = bound_method %int_1.loc13, %specific_fn.loc13 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13: init %i32 = call %bound_method.loc13_41.2(%int_1.loc13) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc13_41.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc13_41.2: %i32 = converted %int_1.loc13, %.loc13_41.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %WithoutThunk.call: init %i32 = call imports.%WithoutThunk.decl(%.loc13_41.2) // CHECK:STDOUT: %i32.loc13: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc13_42.1: %i32 = value_of_initializer %WithoutThunk.call // CHECK:STDOUT: %.loc13_42.2: %i32 = converted %WithoutThunk.call, %.loc13_42.1 // CHECK:STDOUT: %r1: %i32 = value_binding r1, %.loc13_42.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %r2.patt: %pattern_type.104 = value_binding_pattern r2 [concrete] +// CHECK:STDOUT: %r2.patt: %pattern_type.6b6 = value_binding_pattern r2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc14: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %ThunkOnArg.ref: %ThunkOnArg.cpp_overload_set.type = name_ref ThunkOnArg, imports.%ThunkOnArg.cpp_overload_set.value [concrete = constants.%ThunkOnArg.cpp_overload_set.value] // CHECK:STDOUT: %int_1.loc14: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc14_39.1: %.94b = impl_witness_access constants.%ImplicitAs.impl_witness.685, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f75] -// CHECK:STDOUT: %bound_method.loc14_39.1: = bound_method %int_1.loc14, %impl.elem0.loc14_39.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.d9a] -// CHECK:STDOUT: %specific_fn.loc14_39.1: = specific_function %impl.elem0.loc14_39.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.6d9] -// CHECK:STDOUT: %bound_method.loc14_39.2: = bound_method %int_1.loc14, %specific_fn.loc14_39.1 [concrete = constants.%bound_method.711] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14: init %i16 = call %bound_method.loc14_39.2(%int_1.loc14) [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc14_39.1: %i16 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14 [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc14_39.2: %i16 = converted %int_1.loc14, %.loc14_39.1 [concrete = constants.%int_1.792] -// CHECK:STDOUT: %impl.elem0.loc14_39.2: %.799 = impl_witness_access constants.%Copy.impl_witness.980, element0 [concrete = constants.%Int.as.Copy.impl.Op.a44] +// CHECK:STDOUT: %impl.elem0.loc14_39.1: %.769 = impl_witness_access constants.%ImplicitAs.impl_witness.884, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.0c0] +// CHECK:STDOUT: %bound_method.loc14_39.1: = bound_method %int_1.loc14, %impl.elem0.loc14_39.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.386] +// CHECK:STDOUT: %specific_fn.loc14_39.1: = specific_function %impl.elem0.loc14_39.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.06a] +// CHECK:STDOUT: %bound_method.loc14_39.2: = bound_method %int_1.loc14, %specific_fn.loc14_39.1 [concrete = constants.%bound_method.b1b] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14: init %i16 = call %bound_method.loc14_39.2(%int_1.loc14) [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc14_39.1: %i16 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14 [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc14_39.2: %i16 = converted %int_1.loc14, %.loc14_39.1 [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %impl.elem0.loc14_39.2: %.000 = impl_witness_access constants.%Copy.impl_witness.7d9, element0 [concrete = constants.%Int.as.Copy.impl.Op.25c] // CHECK:STDOUT: %bound_method.loc14_39.3: = bound_method %.loc14_39.2, %impl.elem0.loc14_39.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc14_39.2: = specific_function %impl.elem0.loc14_39.2, @Int.as.Copy.impl.Op(constants.%int_16) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc14_39.4: = bound_method %.loc14_39.2, %specific_fn.loc14_39.2 [concrete = constants.%bound_method.055] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc14: init %i16 = call %bound_method.loc14_39.4(%.loc14_39.2) [concrete = constants.%int_1.792] +// CHECK:STDOUT: %bound_method.loc14_39.4: = bound_method %.loc14_39.2, %specific_fn.loc14_39.2 [concrete = constants.%bound_method.47b] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc14: init %i16 = call %bound_method.loc14_39.4(%.loc14_39.2) [concrete = constants.%int_1.d17] // CHECK:STDOUT: %.loc14_39.3: ref %i16 = temporary_storage -// CHECK:STDOUT: %.loc14_39.4: ref %i16 = temporary %.loc14_39.3, %Int.as.Copy.impl.Op.call.loc14 [concrete = constants.%.e50] -// CHECK:STDOUT: %addr.loc14: %ptr.83d = addr_of %.loc14_39.4 [concrete = constants.%addr] +// CHECK:STDOUT: %.loc14_39.4: ref %i16 = temporary %.loc14_39.3, %Int.as.Copy.impl.Op.call.loc14 [concrete = constants.%.597] +// CHECK:STDOUT: %addr.loc14: %ptr.686 = addr_of %.loc14_39.4 [concrete = constants.%addr] // CHECK:STDOUT: %ThunkOnArg__carbon_thunk.call: init %i32 = call imports.%ThunkOnArg__carbon_thunk.decl(%addr.loc14) // CHECK:STDOUT: %i32.loc14: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc14_40.1: %i32 = value_of_initializer %ThunkOnArg__carbon_thunk.call // CHECK:STDOUT: %.loc14_40.2: %i32 = converted %ThunkOnArg__carbon_thunk.call, %.loc14_40.1 // CHECK:STDOUT: %r2: %i32 = value_binding r2, %.loc14_40.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %r3.patt: %pattern_type.e1b = value_binding_pattern r3 [concrete] +// CHECK:STDOUT: %r3.patt: %pattern_type.203 = value_binding_pattern r3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %ThunkOnReturn.ref: %ThunkOnReturn.cpp_overload_set.type = name_ref ThunkOnReturn, imports.%ThunkOnReturn.cpp_overload_set.value [concrete = constants.%ThunkOnReturn.cpp_overload_set.value] // CHECK:STDOUT: %int_1.loc15: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc15: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_42.1: = bound_method %int_1.loc15, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] -// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.247] -// CHECK:STDOUT: %bound_method.loc15_42.2: = bound_method %int_1.loc15, %specific_fn.loc15 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %i32 = call %bound_method.loc15_42.2(%int_1.loc15) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc15_42.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc15_42.2: %i32 = converted %int_1.loc15, %.loc15_42.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %impl.elem0.loc15: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_42.1: = bound_method %int_1.loc15, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] +// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.571] +// CHECK:STDOUT: %bound_method.loc15_42.2: = bound_method %int_1.loc15, %specific_fn.loc15 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %i32 = call %bound_method.loc15_42.2(%int_1.loc15) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc15_42.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc15_42.2: %i32 = converted %int_1.loc15, %.loc15_42.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc15_43.1: ref %i16 = temporary_storage -// CHECK:STDOUT: %addr.loc15: %ptr.83d = addr_of %.loc15_43.1 +// CHECK:STDOUT: %addr.loc15: %ptr.686 = addr_of %.loc15_43.1 // CHECK:STDOUT: %ThunkOnReturn__carbon_thunk.call: init %empty_tuple.type = call imports.%ThunkOnReturn__carbon_thunk.decl(%.loc15_42.2, %addr.loc15) // CHECK:STDOUT: %.loc15_43.2: init %i16 to %.loc15_43.1 = mark_in_place_init %ThunkOnReturn__carbon_thunk.call // CHECK:STDOUT: %i16.loc15: type = type_literal constants.%i16 [concrete = constants.%i16] @@ -323,40 +323,40 @@ fn MyF() { // CHECK:STDOUT: %.loc15_43.4: %i16 = acquire_value %.loc15_43.3 // CHECK:STDOUT: %r3: %i16 = value_binding r3, %.loc15_43.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %r4.patt: %pattern_type.e1b = value_binding_pattern r4 [concrete] +// CHECK:STDOUT: %r4.patt: %pattern_type.203 = value_binding_pattern r4 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc16: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %ThunkOnBoth.ref: %ThunkOnBoth.cpp_overload_set.type = name_ref ThunkOnBoth, imports.%ThunkOnBoth.cpp_overload_set.value [concrete = constants.%ThunkOnBoth.cpp_overload_set.value] // CHECK:STDOUT: %int_1.loc16: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc16_40.1: %.94b = impl_witness_access constants.%ImplicitAs.impl_witness.685, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f75] -// CHECK:STDOUT: %bound_method.loc16_40.1: = bound_method %int_1.loc16, %impl.elem0.loc16_40.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.d9a] -// CHECK:STDOUT: %specific_fn.loc16_40.1: = specific_function %impl.elem0.loc16_40.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.6d9] -// CHECK:STDOUT: %bound_method.loc16_40.2: = bound_method %int_1.loc16, %specific_fn.loc16_40.1 [concrete = constants.%bound_method.711] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16: init %i16 = call %bound_method.loc16_40.2(%int_1.loc16) [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc16_40.1: %i16 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16 [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc16_40.2: %i16 = converted %int_1.loc16, %.loc16_40.1 [concrete = constants.%int_1.792] -// CHECK:STDOUT: %impl.elem0.loc16_40.2: %.799 = impl_witness_access constants.%Copy.impl_witness.980, element0 [concrete = constants.%Int.as.Copy.impl.Op.a44] +// CHECK:STDOUT: %impl.elem0.loc16_40.1: %.769 = impl_witness_access constants.%ImplicitAs.impl_witness.884, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.0c0] +// CHECK:STDOUT: %bound_method.loc16_40.1: = bound_method %int_1.loc16, %impl.elem0.loc16_40.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.386] +// CHECK:STDOUT: %specific_fn.loc16_40.1: = specific_function %impl.elem0.loc16_40.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.06a] +// CHECK:STDOUT: %bound_method.loc16_40.2: = bound_method %int_1.loc16, %specific_fn.loc16_40.1 [concrete = constants.%bound_method.b1b] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16: init %i16 = call %bound_method.loc16_40.2(%int_1.loc16) [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc16_40.1: %i16 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16 [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc16_40.2: %i16 = converted %int_1.loc16, %.loc16_40.1 [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %impl.elem0.loc16_40.2: %.000 = impl_witness_access constants.%Copy.impl_witness.7d9, element0 [concrete = constants.%Int.as.Copy.impl.Op.25c] // CHECK:STDOUT: %bound_method.loc16_40.3: = bound_method %.loc16_40.2, %impl.elem0.loc16_40.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc16_40.2: = specific_function %impl.elem0.loc16_40.2, @Int.as.Copy.impl.Op(constants.%int_16) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_40.4: = bound_method %.loc16_40.2, %specific_fn.loc16_40.2 [concrete = constants.%bound_method.055] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc16: init %i16 = call %bound_method.loc16_40.4(%.loc16_40.2) [concrete = constants.%int_1.792] +// CHECK:STDOUT: %bound_method.loc16_40.4: = bound_method %.loc16_40.2, %specific_fn.loc16_40.2 [concrete = constants.%bound_method.47b] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc16: init %i16 = call %bound_method.loc16_40.4(%.loc16_40.2) [concrete = constants.%int_1.d17] // CHECK:STDOUT: %.loc16_40.3: ref %i16 = temporary_storage -// CHECK:STDOUT: %.loc16_40.4: ref %i16 = temporary %.loc16_40.3, %Int.as.Copy.impl.Op.call.loc16 [concrete = constants.%.e50] -// CHECK:STDOUT: %addr.loc16_41.1: %ptr.83d = addr_of %.loc16_40.4 [concrete = constants.%addr] +// CHECK:STDOUT: %.loc16_40.4: ref %i16 = temporary %.loc16_40.3, %Int.as.Copy.impl.Op.call.loc16 [concrete = constants.%.597] +// CHECK:STDOUT: %addr.loc16_41.1: %ptr.686 = addr_of %.loc16_40.4 [concrete = constants.%addr] // CHECK:STDOUT: %.loc16_41.1: ref %i16 = temporary_storage -// CHECK:STDOUT: %addr.loc16_41.2: %ptr.83d = addr_of %.loc16_41.1 +// CHECK:STDOUT: %addr.loc16_41.2: %ptr.686 = addr_of %.loc16_41.1 // CHECK:STDOUT: %ThunkOnBoth__carbon_thunk.call: init %empty_tuple.type = call imports.%ThunkOnBoth__carbon_thunk.decl(%addr.loc16_41.1, %addr.loc16_41.2) // CHECK:STDOUT: %.loc16_41.2: init %i16 to %.loc16_41.1 = mark_in_place_init %ThunkOnBoth__carbon_thunk.call // CHECK:STDOUT: %i16.loc16: type = type_literal constants.%i16 [concrete = constants.%i16] // CHECK:STDOUT: %.loc16_41.3: ref %i16 = temporary %.loc16_41.1, %.loc16_41.2 // CHECK:STDOUT: %.loc16_41.4: %i16 = acquire_value %.loc16_41.3 // CHECK:STDOUT: %r4: %i16 = value_binding r4, %.loc16_41.4 -// CHECK:STDOUT: %Destroy.Op.bound.loc16: = bound_method %.loc16_41.3, constants.%Destroy.Op.2dd605.2 +// 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.%.e50) -// CHECK:STDOUT: %Destroy.Op.bound.loc15: = bound_method %.loc15_43.3, constants.%Destroy.Op.2dd605.2 +// 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.%.e50) +// CHECK:STDOUT: %Destroy.Op.call.loc14: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/import/overloads.carbon b/toolchain/check/testdata/interop/cpp/function/import/overloads.carbon index bdcf764da0b2..76b8de103eb1 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/overloads.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/overloads.carbon @@ -805,44 +805,44 @@ fn F() { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] // CHECK:STDOUT: %i16.builtin: type = int_type signed, %int_16 [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.fff: type = facet_type <@As, @As(%i16)> [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.6f1: type = facet_type <@As, @As(%i16)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.16a: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.ced: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.0b6: %Core.IntLiteral.as.As.impl.Convert.type.ced = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fff = facet_value Core.IntLiteral, (%As.impl_witness.16a) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.28f: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] -// CHECK:STDOUT: %.696: type = fn_type_with_self_type %As.WithSelf.Convert.type.28f, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.0b6 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.0b6, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.7f7: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.792: %i16 = int_value 1 [concrete] -// CHECK:STDOUT: %ptr.83d: type = ptr_type %i16 [concrete] -// CHECK:STDOUT: %pattern_type.497: type = pattern_type %ptr.83d [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.820: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.4b7: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.70c: %Core.IntLiteral.as.As.impl.Convert.type.4b7 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.6f1 = facet_value Core.IntLiteral, (%As.impl_witness.820) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.d73: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] +// CHECK:STDOUT: %.6b5: type = fn_type_with_self_type %As.WithSelf.Convert.type.d73, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.70c [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.70c, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] +// CHECK:STDOUT: %bound_method.a0f: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.d17: %i16 = int_value 1 [concrete] +// CHECK:STDOUT: %ptr.686: type = ptr_type %i16 [concrete] +// CHECK:STDOUT: %pattern_type.f71: type = pattern_type %ptr.686 [concrete] // CHECK:STDOUT: %bar__carbon_thunk.type: type = fn_type @bar__carbon_thunk [concrete] // CHECK:STDOUT: %bar__carbon_thunk: %bar__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.980: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.fe1: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a44: %Int.as.Copy.impl.Op.type.fe1 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.980) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cf9: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.799: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cf9, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.792, %Int.as.Copy.impl.Op.a44 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.a44, @Int.as.Copy.impl.Op(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.055: = bound_method %int_1.792, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.e50: ref %i16 = temporary invalid, %int_1.792 [concrete] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.e50 [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.7d9: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.16c: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.25c: %Int.as.Copy.impl.Op.type.16c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.7d9) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.332: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.000: type = fn_type_with_self_type %Copy.WithSelf.Op.type.332, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.d17, %Int.as.Copy.impl.Op.25c [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.25c, @Int.as.Copy.impl.Op(%int_16) [concrete] +// 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.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc7_13.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e50, %Destroy.Op.2dd605.2 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -860,24 +860,24 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %bar.cpp_overload_set.value: %bar.cpp_overload_set.type = cpp_overload_set_value @bar.cpp_overload_set [concrete = constants.%bar.cpp_overload_set.value] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %bar__carbon_thunk.decl: %bar__carbon_thunk.type = fn_decl @bar__carbon_thunk [concrete = constants.%bar__carbon_thunk] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.497 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.497 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.f71 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.f71 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %a.param: %ptr.83d = value_param call_param0 -// CHECK:STDOUT: %.1: type = splice_block constants.%ptr.83d [concrete = constants.%ptr.83d] { +// CHECK:STDOUT: %a.param: %ptr.686 = value_param call_param0 +// CHECK:STDOUT: %.1: type = splice_block constants.%ptr.686 [concrete = constants.%ptr.686] { // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete = constants.%int_16] // CHECK:STDOUT: %i16.1: type = class_type @Int, @Int(constants.%int_16) [concrete = constants.%i16] // CHECK:STDOUT: %i16.2: type = type_literal %i16.1 [concrete = constants.%i16] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.83d = value_binding a, %a.param +// CHECK:STDOUT: %a: %ptr.686 = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -900,29 +900,29 @@ fn F() { // CHECK:STDOUT: %bar.ref: %bar.cpp_overload_set.type = name_ref bar, imports.%bar.cpp_overload_set.value [concrete = constants.%bar.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i16: type = type_literal constants.%i16 [concrete = constants.%i16] -// CHECK:STDOUT: %impl.elem0.loc7_13.1: %.696 = impl_witness_access constants.%As.impl_witness.16a, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.0b6] +// CHECK:STDOUT: %impl.elem0.loc7_13.1: %.6b5 = impl_witness_access constants.%As.impl_witness.820, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.70c] // CHECK:STDOUT: %bound_method.loc7_13.1: = bound_method %int_1, %impl.elem0.loc7_13.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc7_13.1: = specific_function %impl.elem0.loc7_13.1, @Core.IntLiteral.as.As.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_13.2: = bound_method %int_1, %specific_fn.loc7_13.1 [concrete = constants.%bound_method.7f7] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc7_13.2(%int_1) [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc7_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc7_13.2: %i16 = converted %int_1, %.loc7_13.1 [concrete = constants.%int_1.792] -// CHECK:STDOUT: %impl.elem0.loc7_13.2: %.799 = impl_witness_access constants.%Copy.impl_witness.980, element0 [concrete = constants.%Int.as.Copy.impl.Op.a44] +// CHECK:STDOUT: %bound_method.loc7_13.2: = bound_method %int_1, %specific_fn.loc7_13.1 [concrete = constants.%bound_method.a0f] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc7_13.2(%int_1) [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc7_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc7_13.2: %i16 = converted %int_1, %.loc7_13.1 [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %impl.elem0.loc7_13.2: %.000 = impl_witness_access constants.%Copy.impl_witness.7d9, element0 [concrete = constants.%Int.as.Copy.impl.Op.25c] // CHECK:STDOUT: %bound_method.loc7_13.3: = bound_method %.loc7_13.2, %impl.elem0.loc7_13.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc7_13.2: = specific_function %impl.elem0.loc7_13.2, @Int.as.Copy.impl.Op(constants.%int_16) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_13.4: = bound_method %.loc7_13.2, %specific_fn.loc7_13.2 [concrete = constants.%bound_method.055] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc7_13.4(%.loc7_13.2) [concrete = constants.%int_1.792] +// CHECK:STDOUT: %bound_method.loc7_13.4: = bound_method %.loc7_13.2, %specific_fn.loc7_13.2 [concrete = constants.%bound_method.47b] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc7_13.4(%.loc7_13.2) [concrete = constants.%int_1.d17] // CHECK:STDOUT: %.loc7_13.3: ref %i16 = temporary_storage -// CHECK:STDOUT: %.loc7_13.4: ref %i16 = temporary %.loc7_13.3, %Int.as.Copy.impl.Op.call [concrete = constants.%.e50] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.loc7_13.4 [concrete = constants.%addr] +// 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: %bar__carbon_thunk.call: init %empty_tuple.type = call imports.%bar__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.e50) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @bar(%a.param: %i16); // CHECK:STDOUT: -// CHECK:STDOUT: fn @bar__carbon_thunk(%a.param: %ptr.83d); +// CHECK:STDOUT: fn @bar__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: @@ -944,23 +944,23 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.c00: type = facet_type <@As, @As(%i32)> [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.155: type = facet_type <@As, @As(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.54d: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.421: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.978: %Core.IntLiteral.as.As.impl.Convert.type.421 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.c00 = facet_value Core.IntLiteral, (%As.impl_witness.54d) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.f0c: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] -// CHECK:STDOUT: %.c18: type = fn_type_with_self_type %As.WithSelf.Convert.type.f0c, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.978 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.978, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.03e: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.e79: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.8a4: %Core.IntLiteral.as.As.impl.Convert.type.e79 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.155 = facet_value Core.IntLiteral, (%As.impl_witness.03e) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.8ea: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] +// CHECK:STDOUT: %.fbc: type = fn_type_with_self_type %As.WithSelf.Convert.type.8ea, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.8a4 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.8a4, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -978,12 +978,12 @@ fn F() { // 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.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -1014,13 +1014,13 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.c18 = impl_witness_access constants.%As.impl_witness.54d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.978] +// CHECK:STDOUT: %impl.elem0: %.fbc = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.8a4] // CHECK:STDOUT: %bound_method.loc7_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc7_13.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc7_13.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc7_13.2: %i32 = converted %int_1, %.loc7_13.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc7_13.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_13.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_13.2: %i32 = converted %int_1, %.loc7_13.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc7_13.2) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1041,61 +1041,61 @@ fn F() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.c00: type = facet_type <@As, @As(%i32)> [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.155: type = facet_type <@As, @As(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.54d: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.421: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.978: %Core.IntLiteral.as.As.impl.Convert.type.421 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet.394: %As.type.c00 = facet_value Core.IntLiteral, (%As.impl_witness.54d) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.f0c: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet.394) [concrete] -// CHECK:STDOUT: %.c18: type = fn_type_with_self_type %As.WithSelf.Convert.type.f0c, %As.facet.394 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.62b: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.978 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn.75d: = specific_function %Core.IntLiteral.as.As.impl.Convert.978, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.38f: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn.75d [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %foo.type.95b203.1: type = fn_type @foo.1 [concrete] -// CHECK:STDOUT: %foo.f55227.1: %foo.type.95b203.1 = struct_value () [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.03e: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.e79: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.8a4: %Core.IntLiteral.as.As.impl.Convert.type.e79 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet.f96: %As.type.155 = facet_value Core.IntLiteral, (%As.impl_witness.03e) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.8ea: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet.f96) [concrete] +// CHECK:STDOUT: %.fbc: type = fn_type_with_self_type %As.WithSelf.Convert.type.8ea, %As.facet.f96 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.3a0: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.8a4 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn.923: = specific_function %Core.IntLiteral.as.As.impl.Convert.8a4, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.18b: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn.923 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %foo.type.6d9caa.1: type = fn_type @foo.1 [concrete] +// CHECK:STDOUT: %foo.627376.1: %foo.type.6d9caa.1 = struct_value () [concrete] // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] // CHECK:STDOUT: %i16.builtin: type = int_type signed, %int_16 [concrete] -// CHECK:STDOUT: %As.type.fff: type = facet_type <@As, @As(%i16)> [concrete] -// CHECK:STDOUT: %As.impl_witness.16a: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.ced: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.0b6: %Core.IntLiteral.as.As.impl.Convert.type.ced = struct_value () [concrete] -// CHECK:STDOUT: %As.facet.af0: %As.type.fff = facet_value Core.IntLiteral, (%As.impl_witness.16a) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.28f: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet.af0) [concrete] -// CHECK:STDOUT: %.696: type = fn_type_with_self_type %As.WithSelf.Convert.type.28f, %As.facet.af0 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.6e7: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.0b6 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn.7ae: = specific_function %Core.IntLiteral.as.As.impl.Convert.0b6, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.7f7: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn.7ae [concrete] -// CHECK:STDOUT: %int_1.792: %i16 = int_value 1 [concrete] -// CHECK:STDOUT: %ptr.83d: type = ptr_type %i16 [concrete] -// CHECK:STDOUT: %pattern_type.497: type = pattern_type %ptr.83d [concrete] +// CHECK:STDOUT: %As.type.6f1: type = facet_type <@As, @As(%i16)> [concrete] +// CHECK:STDOUT: %As.impl_witness.820: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.4b7: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.70c: %Core.IntLiteral.as.As.impl.Convert.type.4b7 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet.bdf: %As.type.6f1 = facet_value Core.IntLiteral, (%As.impl_witness.820) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.d73: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet.bdf) [concrete] +// CHECK:STDOUT: %.6b5: type = fn_type_with_self_type %As.WithSelf.Convert.type.d73, %As.facet.bdf [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.544: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.70c [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn.07a: = specific_function %Core.IntLiteral.as.As.impl.Convert.70c, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] +// CHECK:STDOUT: %bound_method.a0f: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn.07a [concrete] +// CHECK:STDOUT: %int_1.d17: %i16 = int_value 1 [concrete] +// CHECK:STDOUT: %ptr.686: type = ptr_type %i16 [concrete] +// CHECK:STDOUT: %pattern_type.f71: type = pattern_type %ptr.686 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.980: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.fe1: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a44: %Int.as.Copy.impl.Op.type.fe1 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.980) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cf9: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.799: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cf9, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.792, %Int.as.Copy.impl.Op.a44 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.a44, @Int.as.Copy.impl.Op(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.055: = bound_method %int_1.792, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.e50: ref %i16 = temporary invalid, %int_1.792 [concrete] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.e50 [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.7d9: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.16c: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_16) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.25c: %Int.as.Copy.impl.Op.type.16c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i16, (%Copy.impl_witness.7d9) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.332: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.000: type = fn_type_with_self_type %Copy.WithSelf.Op.type.332, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.d17, %Int.as.Copy.impl.Op.25c [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.25c, @Int.as.Copy.impl.Op(%int_16) [concrete] +// 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.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_13.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.e50, %Destroy.Op.2dd605.2 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1113,12 +1113,12 @@ fn F() { // 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.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] -// CHECK:STDOUT: %foo.decl.993533.1: %foo.type.95b203.1 = fn_decl @foo.1 [concrete = constants.%foo.f55227.1] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %foo.decl.6431a3.1: %foo.type.6d9caa.1 = fn_decl @foo.1 [concrete = constants.%foo.627376.1] { +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -1129,20 +1129,20 @@ fn F() { // CHECK:STDOUT: %a: %i32 = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.497 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.497 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.f71 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.f71 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %a.param: %ptr.83d = value_param call_param0 -// CHECK:STDOUT: %.1: type = splice_block constants.%ptr.83d [concrete = constants.%ptr.83d] { +// CHECK:STDOUT: %a.param: %ptr.686 = value_param call_param0 +// CHECK:STDOUT: %.1: type = splice_block constants.%ptr.686 [concrete = constants.%ptr.686] { // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete = constants.%int_16] // CHECK:STDOUT: %i16.1: type = class_type @Int, @Int(constants.%int_16) [concrete = constants.%i16] // CHECK:STDOUT: %i16.2: type = type_literal %i16.1 [concrete = constants.%i16] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.83d = value_binding a, %a.param +// CHECK:STDOUT: %a: %ptr.686 = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1165,35 +1165,35 @@ fn F() { // CHECK:STDOUT: %foo.ref.loc7: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1.loc7: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc7: %.c18 = impl_witness_access constants.%As.impl_witness.54d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.978] -// CHECK:STDOUT: %bound_method.loc7_13.1: = bound_method %int_1.loc7, %impl.elem0.loc7 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.62b] -// CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn.75d] -// CHECK:STDOUT: %bound_method.loc7_13.2: = bound_method %int_1.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.38f] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc7: init %i32 = call %bound_method.loc7_13.2(%int_1.loc7) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc7_13.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc7 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc7_13.2: %i32 = converted %int_1.loc7, %.loc7_13.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl.993533.1(%.loc7_13.2) +// CHECK:STDOUT: %impl.elem0.loc7: %.fbc = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.8a4] +// CHECK:STDOUT: %bound_method.loc7_13.1: = bound_method %int_1.loc7, %impl.elem0.loc7 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.3a0] +// CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn.923] +// CHECK:STDOUT: %bound_method.loc7_13.2: = bound_method %int_1.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.18b] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc7: init %i32 = call %bound_method.loc7_13.2(%int_1.loc7) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_13.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc7 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_13.2: %i32 = converted %int_1.loc7, %.loc7_13.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl.6431a3.1(%.loc7_13.2) // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref.loc8: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i16: type = type_literal constants.%i16 [concrete = constants.%i16] -// CHECK:STDOUT: %impl.elem0.loc8_13.1: %.696 = impl_witness_access constants.%As.impl_witness.16a, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.0b6] -// CHECK:STDOUT: %bound_method.loc8_13.1: = bound_method %int_1.loc8, %impl.elem0.loc8_13.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.6e7] -// CHECK:STDOUT: %specific_fn.loc8_13.1: = specific_function %impl.elem0.loc8_13.1, @Core.IntLiteral.as.As.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn.7ae] -// CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1.loc8, %specific_fn.loc8_13.1 [concrete = constants.%bound_method.7f7] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc8: init %i16 = call %bound_method.loc8_13.2(%int_1.loc8) [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc8 [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc8_13.2: %i16 = converted %int_1.loc8, %.loc8_13.1 [concrete = constants.%int_1.792] -// CHECK:STDOUT: %impl.elem0.loc8_13.2: %.799 = impl_witness_access constants.%Copy.impl_witness.980, element0 [concrete = constants.%Int.as.Copy.impl.Op.a44] +// CHECK:STDOUT: %impl.elem0.loc8_13.1: %.6b5 = impl_witness_access constants.%As.impl_witness.820, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.70c] +// CHECK:STDOUT: %bound_method.loc8_13.1: = bound_method %int_1.loc8, %impl.elem0.loc8_13.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.544] +// CHECK:STDOUT: %specific_fn.loc8_13.1: = specific_function %impl.elem0.loc8_13.1, @Core.IntLiteral.as.As.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn.07a] +// CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1.loc8, %specific_fn.loc8_13.1 [concrete = constants.%bound_method.a0f] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc8: init %i16 = call %bound_method.loc8_13.2(%int_1.loc8) [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc8 [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc8_13.2: %i16 = converted %int_1.loc8, %.loc8_13.1 [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %impl.elem0.loc8_13.2: %.000 = impl_witness_access constants.%Copy.impl_witness.7d9, element0 [concrete = constants.%Int.as.Copy.impl.Op.25c] // CHECK:STDOUT: %bound_method.loc8_13.3: = bound_method %.loc8_13.2, %impl.elem0.loc8_13.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc8_13.2: = specific_function %impl.elem0.loc8_13.2, @Int.as.Copy.impl.Op(constants.%int_16) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_13.4: = bound_method %.loc8_13.2, %specific_fn.loc8_13.2 [concrete = constants.%bound_method.055] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc8_13.4(%.loc8_13.2) [concrete = constants.%int_1.792] +// CHECK:STDOUT: %bound_method.loc8_13.4: = bound_method %.loc8_13.2, %specific_fn.loc8_13.2 [concrete = constants.%bound_method.47b] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i16 = call %bound_method.loc8_13.4(%.loc8_13.2) [concrete = constants.%int_1.d17] // CHECK:STDOUT: %.loc8_13.3: ref %i16 = temporary_storage -// CHECK:STDOUT: %.loc8_13.4: ref %i16 = temporary %.loc8_13.3, %Int.as.Copy.impl.Op.call [concrete = constants.%.e50] -// CHECK:STDOUT: %addr: %ptr.83d = addr_of %.loc8_13.4 [concrete = constants.%addr] +// 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.%.e50) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.597) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1201,7 +1201,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: fn @foo.2(%a.param: %i16); // CHECK:STDOUT: -// CHECK:STDOUT: fn @foo__carbon_thunk(%a.param: %ptr.83d); +// CHECK:STDOUT: fn @foo__carbon_thunk(%a.param: %ptr.686); // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.Op.loc8_13.1(%self.param: ref %i16.builtin) = "no_op"; // CHECK:STDOUT: @@ -1223,23 +1223,23 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.c00: type = facet_type <@As, @As(%i32)> [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.155: type = facet_type <@As, @As(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.54d: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.421: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.978: %Core.IntLiteral.as.As.impl.Convert.type.421 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.c00 = facet_value Core.IntLiteral, (%As.impl_witness.54d) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.f0c: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] -// CHECK:STDOUT: %.c18: type = fn_type_with_self_type %As.WithSelf.Convert.type.f0c, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.978 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.978, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.03e: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.e79: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.8a4: %Core.IntLiteral.as.As.impl.Convert.type.e79 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.155 = facet_value Core.IntLiteral, (%As.impl_witness.03e) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.8ea: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] +// CHECK:STDOUT: %.fbc: type = fn_type_with_self_type %As.WithSelf.Convert.type.8ea, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.8a4 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.8a4, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %bar.cpp_overload_set.type: type = cpp_overload_set_type @bar.cpp_overload_set [concrete] @@ -1262,12 +1262,12 @@ fn F() { // 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.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -1279,8 +1279,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %bar.cpp_overload_set.value: %bar.cpp_overload_set.type = cpp_overload_set_value @bar.cpp_overload_set [concrete = constants.%bar.cpp_overload_set.value] // CHECK:STDOUT: %bar.decl: %bar.type = fn_decl @bar [concrete = constants.%bar] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -1311,25 +1311,25 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1.loc7: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i32.loc7: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc7: %.c18 = impl_witness_access constants.%As.impl_witness.54d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.978] +// CHECK:STDOUT: %impl.elem0.loc7: %.fbc = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.8a4] // CHECK:STDOUT: %bound_method.loc7_13.1: = bound_method %int_1.loc7, %impl.elem0.loc7 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_13.2: = bound_method %int_1.loc7, %specific_fn.loc7 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc7: init %i32 = call %bound_method.loc7_13.2(%int_1.loc7) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc7_13.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc7 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc7_13.2: %i32 = converted %int_1.loc7, %.loc7_13.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc7: init %i32 = call %bound_method.loc7_13.2(%int_1.loc7) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_13.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc7 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_13.2: %i32 = converted %int_1.loc7, %.loc7_13.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc7_13.2) // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %bar.ref: %bar.cpp_overload_set.type = name_ref bar, imports.%bar.cpp_overload_set.value [concrete = constants.%bar.cpp_overload_set.value] // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i32.loc8: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc8: %.c18 = impl_witness_access constants.%As.impl_witness.54d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.978] +// CHECK:STDOUT: %impl.elem0.loc8: %.fbc = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.8a4] // CHECK:STDOUT: %bound_method.loc8_13.1: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1.loc8, %specific_fn.loc8 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc8: init %i32 = call %bound_method.loc8_13.2(%int_1.loc8) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_13.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc8 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_13.2: %i32 = converted %int_1.loc8, %.loc8_13.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc8: init %i32 = call %bound_method.loc8_13.2(%int_1.loc8) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_13.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc8 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_13.2: %i32 = converted %int_1.loc8, %.loc8_13.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %bar.call: init %empty_tuple.type = call imports.%bar.decl(%.loc8_13.2) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1349,114 +1349,114 @@ fn F() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %int_2147483647.d89: Core.IntLiteral = int_value 2147483647 [concrete] -// CHECK:STDOUT: %foo.type.95b203.1: type = fn_type @foo.1 [concrete] -// CHECK:STDOUT: %foo.f55227.1: %foo.type.95b203.1 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %foo.type.6d9caa.1: type = fn_type @foo.1 [concrete] +// CHECK:STDOUT: %foo.627376.1: %foo.type.6d9caa.1 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.840: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.840) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet.840 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.374: = bound_method %int_2147483647.d89, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.247: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.2a8: = bound_method %int_2147483647.d89, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.247 [concrete] -// CHECK:STDOUT: %int_2147483647.9ca: %i32 = int_value 2147483647 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.9f1: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.9f1) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet.9f1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.91c: = bound_method %int_2147483647.d89, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.571: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.777: = bound_method %int_2147483647.d89, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.571 [concrete] +// CHECK:STDOUT: %int_2147483647.a0e: %i32 = int_value 2147483647 [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.fdd: type = pattern_type %i64 [concrete] +// CHECK:STDOUT: %pattern_type.f57: type = pattern_type %i64 [concrete] // CHECK:STDOUT: %int_2147483648.1db: Core.IntLiteral = int_value 2147483648 [concrete] -// CHECK:STDOUT: %foo.type.95b203.2: type = fn_type @foo.2 [concrete] -// CHECK:STDOUT: %foo.f55227.2: %foo.type.95b203.2 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.08a: type = facet_type <@ImplicitAs, @ImplicitAs(%i64)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.35c: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.fc2: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.fc2 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.8a1: %ImplicitAs.type.08a = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.35c) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.744: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i64, %ImplicitAs.facet.8a1) [concrete] -// CHECK:STDOUT: %.d4c: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.744, %ImplicitAs.facet.8a1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.560: = bound_method %int_2147483648.1db, %Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.b26: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.48d: = bound_method %int_2147483648.1db, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.b26 [concrete] -// CHECK:STDOUT: %int_2147483648.629: %i64 = int_value 2147483648 [concrete] +// CHECK:STDOUT: %foo.type.6d9caa.2: type = fn_type @foo.2 [concrete] +// CHECK:STDOUT: %foo.627376.2: %foo.type.6d9caa.2 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.221: type = facet_type <@ImplicitAs, @ImplicitAs(%i64)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.091: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.55a: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.55a = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.6e8: %ImplicitAs.type.221 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.091) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.a04: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i64, %ImplicitAs.facet.6e8) [concrete] +// CHECK:STDOUT: %.f34: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.a04, %ImplicitAs.facet.6e8 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f98: = bound_method %int_2147483648.1db, %Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.f33: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.2c2: = bound_method %int_2147483648.1db, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.f33 [concrete] +// CHECK:STDOUT: %int_2147483648.f59: %i64 = int_value 2147483648 [concrete] // CHECK:STDOUT: %int_9223372036854775807.e6f: Core.IntLiteral = int_value 9223372036854775807 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.efc: = bound_method %int_9223372036854775807.e6f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5 [concrete] -// CHECK:STDOUT: %bound_method.eb1: = bound_method %int_9223372036854775807.e6f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.b26 [concrete] -// CHECK:STDOUT: %int_9223372036854775807.0a1: %i64 = int_value 9223372036854775807 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.fc8: = bound_method %int_9223372036854775807.e6f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b [concrete] +// CHECK:STDOUT: %bound_method.e30: = bound_method %int_9223372036854775807.e6f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.f33 [concrete] +// CHECK:STDOUT: %int_9223372036854775807.045: %i64 = int_value 9223372036854775807 [concrete] // CHECK:STDOUT: %int_128: Core.IntLiteral = int_value 128 [concrete] // CHECK:STDOUT: %i128: type = class_type @Int, @Int(%int_128) [concrete] // CHECK:STDOUT: %i128.builtin: type = int_type signed, %int_128 [concrete] -// CHECK:STDOUT: %pattern_type.292: type = pattern_type %i128 [concrete] +// CHECK:STDOUT: %pattern_type.97f: type = pattern_type %i128 [concrete] // CHECK:STDOUT: %int_9223372036854775808.293: Core.IntLiteral = int_value 9223372036854775808 [concrete] -// CHECK:STDOUT: %ptr.201: type = ptr_type %i128 [concrete] -// CHECK:STDOUT: %pattern_type.778: type = pattern_type %ptr.201 [concrete] +// CHECK:STDOUT: %ptr.19c: type = ptr_type %i128 [concrete] +// CHECK:STDOUT: %pattern_type.c1e: type = pattern_type %ptr.19c [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.f43: type = facet_type <@ImplicitAs, @ImplicitAs(%i128)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.de9: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_128) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a0a: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_128) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.c2a: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.a0a = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.e71: %ImplicitAs.type.f43 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.de9) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.dfc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i128, %ImplicitAs.facet.e71) [concrete] -// CHECK:STDOUT: %.3b9: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.dfc, %ImplicitAs.facet.e71 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.412: = bound_method %int_9223372036854775808.293, %Core.IntLiteral.as.ImplicitAs.impl.Convert.c2a [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.0b5: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.c2a, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_128) [concrete] -// CHECK:STDOUT: %bound_method.b72: = bound_method %int_9223372036854775808.293, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.0b5 [concrete] -// CHECK:STDOUT: %int_9223372036854775808.13b: %i128 = int_value 9223372036854775808 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.be8: type = facet_type <@ImplicitAs, @ImplicitAs(%i128)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.2c8: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_128) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.9bf: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_128) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.c6b: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.9bf = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.4c7: %ImplicitAs.type.be8 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.2c8) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.450: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i128, %ImplicitAs.facet.4c7) [concrete] +// CHECK:STDOUT: %.2ea: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.450, %ImplicitAs.facet.4c7 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.64f: = bound_method %int_9223372036854775808.293, %Core.IntLiteral.as.ImplicitAs.impl.Convert.c6b [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.be8: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.c6b, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_128) [concrete] +// CHECK:STDOUT: %bound_method.5d3: = bound_method %int_9223372036854775808.293, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.be8 [concrete] +// CHECK:STDOUT: %int_9223372036854775808.c39: %i128 = int_value 9223372036854775808 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.ede: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_128) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.fc5: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_128) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.26e: %Int.as.Copy.impl.Op.type.fc5 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i128, (%Copy.impl_witness.ede) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.a44: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.803: type = fn_type_with_self_type %Copy.WithSelf.Op.type.a44, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.e5e: = bound_method %int_9223372036854775808.13b, %Int.as.Copy.impl.Op.26e [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.26e, @Int.as.Copy.impl.Op(%int_128) [concrete] -// CHECK:STDOUT: %bound_method.6a9: = bound_method %int_9223372036854775808.13b, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.4f2: ref %i128 = temporary invalid, %int_9223372036854775808.13b [concrete] -// CHECK:STDOUT: %addr.39c: %ptr.201 = addr_of %.4f2 [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.952: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_128) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c0f: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_128) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4fd: %Int.as.Copy.impl.Op.type.c0f = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i128, (%Copy.impl_witness.952) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.9c8: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.858: type = fn_type_with_self_type %Copy.WithSelf.Op.type.9c8, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.6d1: = bound_method %int_9223372036854775808.c39, %Int.as.Copy.impl.Op.4fd [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.4fd, @Int.as.Copy.impl.Op(%int_128) [concrete] +// CHECK:STDOUT: %bound_method.ddb: = bound_method %int_9223372036854775808.c39, %Int.as.Copy.impl.Op.specific_fn [concrete] +// CHECK:STDOUT: %.e05: ref %i128 = temporary invalid, %int_9223372036854775808.c39 [concrete] +// CHECK:STDOUT: %addr.ac7: %ptr.19c = addr_of %.e05 [concrete] // CHECK:STDOUT: %int_18446744073709551615.5ec: Core.IntLiteral = int_value 18446744073709551615 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.486: = bound_method %int_18446744073709551615.5ec, %Core.IntLiteral.as.ImplicitAs.impl.Convert.c2a [concrete] -// CHECK:STDOUT: %bound_method.765: = bound_method %int_18446744073709551615.5ec, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.0b5 [concrete] -// CHECK:STDOUT: %int_18446744073709551615.e81: %i128 = int_value 18446744073709551615 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.e7d: = bound_method %int_18446744073709551615.e81, %Int.as.Copy.impl.Op.26e [concrete] -// CHECK:STDOUT: %bound_method.32f: = bound_method %int_18446744073709551615.e81, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.22a: ref %i128 = temporary invalid, %int_18446744073709551615.e81 [concrete] -// CHECK:STDOUT: %addr.ad8: %ptr.201 = addr_of %.22a [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8ee: = bound_method %int_18446744073709551615.5ec, %Core.IntLiteral.as.ImplicitAs.impl.Convert.c6b [concrete] +// CHECK:STDOUT: %bound_method.5ac: = bound_method %int_18446744073709551615.5ec, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.be8 [concrete] +// CHECK:STDOUT: %int_18446744073709551615.278: %i128 = int_value 18446744073709551615 [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.4e4: = bound_method %int_18446744073709551615.278, %Int.as.Copy.impl.Op.4fd [concrete] +// CHECK:STDOUT: %bound_method.181: = bound_method %int_18446744073709551615.278, %Int.as.Copy.impl.Op.specific_fn [concrete] +// CHECK:STDOUT: %.6dc: ref %i128 = temporary invalid, %int_18446744073709551615.278 [concrete] +// CHECK:STDOUT: %addr.fb9: %ptr.19c = addr_of %.6dc [concrete] // CHECK:STDOUT: %int_18446744073709551616.1ee: Core.IntLiteral = int_value 18446744073709551616 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d2: = bound_method %int_18446744073709551616.1ee, %Core.IntLiteral.as.ImplicitAs.impl.Convert.c2a [concrete] -// CHECK:STDOUT: %bound_method.d66: = bound_method %int_18446744073709551616.1ee, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.0b5 [concrete] -// CHECK:STDOUT: %int_18446744073709551616.a31: %i128 = int_value 18446744073709551616 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.f2a: = bound_method %int_18446744073709551616.a31, %Int.as.Copy.impl.Op.26e [concrete] -// CHECK:STDOUT: %bound_method.162: = bound_method %int_18446744073709551616.a31, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.ae4: ref %i128 = temporary invalid, %int_18446744073709551616.a31 [concrete] -// CHECK:STDOUT: %addr.eaa: %ptr.201 = addr_of %.ae4 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f7c: = bound_method %int_18446744073709551616.1ee, %Core.IntLiteral.as.ImplicitAs.impl.Convert.c6b [concrete] +// CHECK:STDOUT: %bound_method.e5e: = bound_method %int_18446744073709551616.1ee, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.be8 [concrete] +// CHECK:STDOUT: %int_18446744073709551616.9ff: %i128 = int_value 18446744073709551616 [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.776: = bound_method %int_18446744073709551616.9ff, %Int.as.Copy.impl.Op.4fd [concrete] +// CHECK:STDOUT: %bound_method.b9e: = bound_method %int_18446744073709551616.9ff, %Int.as.Copy.impl.Op.specific_fn [concrete] +// CHECK:STDOUT: %.579: ref %i128 = temporary invalid, %int_18446744073709551616.9ff [concrete] +// CHECK:STDOUT: %addr.cbf: %ptr.19c = addr_of %.579 [concrete] // CHECK:STDOUT: %int_170141183460469231731687303715884105727.fea: Core.IntLiteral = int_value 170141183460469231731687303715884105727 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.132: = bound_method %int_170141183460469231731687303715884105727.fea, %Core.IntLiteral.as.ImplicitAs.impl.Convert.c2a [concrete] -// CHECK:STDOUT: %bound_method.3d4: = bound_method %int_170141183460469231731687303715884105727.fea, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.0b5 [concrete] -// CHECK:STDOUT: %int_170141183460469231731687303715884105727.276: %i128 = int_value 170141183460469231731687303715884105727 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.86f: = bound_method %int_170141183460469231731687303715884105727.276, %Int.as.Copy.impl.Op.26e [concrete] -// CHECK:STDOUT: %bound_method.30d: = bound_method %int_170141183460469231731687303715884105727.276, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.f1a: ref %i128 = temporary invalid, %int_170141183460469231731687303715884105727.276 [concrete] -// CHECK:STDOUT: %addr.dc2: %ptr.201 = addr_of %.f1a [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.6a6: = bound_method %int_170141183460469231731687303715884105727.fea, %Core.IntLiteral.as.ImplicitAs.impl.Convert.c6b [concrete] +// CHECK:STDOUT: %bound_method.537: = bound_method %int_170141183460469231731687303715884105727.fea, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.be8 [concrete] +// CHECK:STDOUT: %int_170141183460469231731687303715884105727.a76: %i128 = int_value 170141183460469231731687303715884105727 [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.61b: = bound_method %int_170141183460469231731687303715884105727.a76, %Int.as.Copy.impl.Op.4fd [concrete] +// CHECK:STDOUT: %bound_method.5a5: = bound_method %int_170141183460469231731687303715884105727.a76, %Int.as.Copy.impl.Op.specific_fn [concrete] +// CHECK:STDOUT: %.dc9: ref %i128 = temporary invalid, %int_170141183460469231731687303715884105727.a76 [concrete] +// CHECK:STDOUT: %addr.882: %ptr.19c = addr_of %.dc9 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc31_71.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.186: = bound_method %.f1a, %Destroy.Op.2dd605.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.eec: = bound_method %.ae4, %Destroy.Op.2dd605.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.673: = bound_method %.22a, %Destroy.Op.2dd605.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.838: = bound_method %.4f2, %Destroy.Op.2dd605.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc31_71.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.bound.741: = bound_method %.dc9, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.bound.bb1: = bound_method %.579, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.bound.958: = bound_method %.6dc, %Destroy.Op.1a2547.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.bound.eaa: = bound_method %.e05, %Destroy.Op.1a2547.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1474,11 +1474,11 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // 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: %foo.decl.993533.1: %foo.type.95b203.1 = fn_decl @foo.1 [concrete = constants.%foo.f55227.1] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.2 [concrete] +// CHECK:STDOUT: %foo.decl.6431a3.1: %foo.type.6d9caa.1 = fn_decl @foo.1 [concrete = constants.%foo.627376.1] { +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32.1: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.1: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] @@ -1493,14 +1493,14 @@ fn F() { // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %foo.decl.993533.2: %foo.type.95b203.2 = fn_decl @foo.2 [concrete = constants.%foo.f55227.2] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.fdd = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.fdd = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.fdd = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.fdd = return_slot_pattern %return.param_patt, %i64.2 [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %foo.decl.6431a3.2: %foo.type.6d9caa.2 = fn_decl @foo.2 [concrete = constants.%foo.627376.2] { +// CHECK:STDOUT: %a.param_patt: %pattern_type.f57 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.f57 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f57 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f57 = return_slot_pattern %return.param_patt, %i64.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %int_64.1: Core.IntLiteral = int_value 64 [concrete = constants.%int_64] // CHECK:STDOUT: %i64.1: type = class_type @Int, @Int(constants.%int_64) [concrete = constants.%i64] @@ -1516,29 +1516,29 @@ fn F() { // CHECK:STDOUT: %return: ref %i64 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.778 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.778 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.778 = value_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.778 = at_binding_pattern r#return, %return.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.c1e = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.c1e = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.c1e = value_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.c1e = at_binding_pattern r#return, %return.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %a.param: %ptr.201 = value_param call_param0 -// CHECK:STDOUT: %.1: type = splice_block constants.%ptr.201 [concrete = constants.%ptr.201] { +// CHECK:STDOUT: %a.param: %ptr.19c = value_param call_param0 +// CHECK:STDOUT: %.1: type = splice_block constants.%ptr.19c [concrete = constants.%ptr.19c] { // CHECK:STDOUT: %int_128.2: Core.IntLiteral = int_value 128 [concrete = constants.%int_128] // CHECK:STDOUT: %i128.3: type = class_type @Int, @Int(constants.%int_128) [concrete = constants.%i128] // CHECK:STDOUT: %i128.4: type = type_literal %i128.3 [concrete = constants.%i128] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.201 = value_binding a, %a.param -// CHECK:STDOUT: %return.param: %ptr.201 = value_param call_param1 -// CHECK:STDOUT: %.2: type = splice_block constants.%ptr.201 [concrete = constants.%ptr.201] { +// CHECK:STDOUT: %a: %ptr.19c = value_binding a, %a.param +// CHECK:STDOUT: %return.param: %ptr.19c = value_param call_param1 +// CHECK:STDOUT: %.2: type = splice_block constants.%ptr.19c [concrete = constants.%ptr.19c] { // CHECK:STDOUT: %int_128.1: Core.IntLiteral = int_value 128 [concrete = constants.%int_128] // CHECK:STDOUT: %i128.1: type = class_type @Int, @Int(constants.%int_128) [concrete = constants.%i128] // CHECK:STDOUT: %i128.2: type = type_literal %i128.1 [concrete = constants.%i128] // CHECK:STDOUT: } -// CHECK:STDOUT: %return: %ptr.201 = value_binding r#return, %return.param +// CHECK:STDOUT: %return: %ptr.19c = value_binding r#return, %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1558,118 +1558,118 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref.loc8: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_2147483647: Core.IntLiteral = int_value 2147483647 [concrete = constants.%int_2147483647.d89] -// CHECK:STDOUT: %impl.elem0.loc8: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_31.1: = bound_method %int_2147483647, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.374] -// CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.247] -// CHECK:STDOUT: %bound_method.loc8_31.2: = bound_method %int_2147483647, %specific_fn.loc8 [concrete = constants.%bound_method.2a8] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %i32 = call %bound_method.loc8_31.2(%int_2147483647) [concrete = constants.%int_2147483647.9ca] -// CHECK:STDOUT: %.loc8_31.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_2147483647.9ca] -// CHECK:STDOUT: %.loc8_31.2: %i32 = converted %int_2147483647, %.loc8_31.1 [concrete = constants.%int_2147483647.9ca] -// CHECK:STDOUT: %foo.call.loc8: init %i32 = call imports.%foo.decl.993533.1(%.loc8_31.2) +// CHECK:STDOUT: %impl.elem0.loc8: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_31.1: = bound_method %int_2147483647, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.91c] +// CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.571] +// CHECK:STDOUT: %bound_method.loc8_31.2: = bound_method %int_2147483647, %specific_fn.loc8 [concrete = constants.%bound_method.777] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %i32 = call %bound_method.loc8_31.2(%int_2147483647) [concrete = constants.%int_2147483647.a0e] +// CHECK:STDOUT: %.loc8_31.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_2147483647.a0e] +// CHECK:STDOUT: %.loc8_31.2: %i32 = converted %int_2147483647, %.loc8_31.1 [concrete = constants.%int_2147483647.a0e] +// CHECK:STDOUT: %foo.call.loc8: init %i32 = call imports.%foo.decl.6431a3.1(%.loc8_31.2) // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc8_41.1: %i32 = value_of_initializer %foo.call.loc8 // CHECK:STDOUT: %.loc8_41.2: %i32 = converted %foo.call.loc8, %.loc8_41.1 // CHECK:STDOUT: %a: %i32 = value_binding a, %.loc8_41.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.fdd = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.f57 = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc13: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref.loc13: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_2147483648.loc13: Core.IntLiteral = int_value 2147483648 [concrete = constants.%int_2147483648.1db] -// CHECK:STDOUT: %impl.elem0.loc13: %.d4c = impl_witness_access constants.%ImplicitAs.impl_witness.35c, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5] -// CHECK:STDOUT: %bound_method.loc13_31.1: = bound_method %int_2147483648.loc13, %impl.elem0.loc13 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.560] -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.b26] -// CHECK:STDOUT: %bound_method.loc13_31.2: = bound_method %int_2147483648.loc13, %specific_fn.loc13 [concrete = constants.%bound_method.48d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13: init %i64 = call %bound_method.loc13_31.2(%int_2147483648.loc13) [concrete = constants.%int_2147483648.629] -// CHECK:STDOUT: %.loc13_31.1: %i64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13 [concrete = constants.%int_2147483648.629] -// CHECK:STDOUT: %.loc13_31.2: %i64 = converted %int_2147483648.loc13, %.loc13_31.1 [concrete = constants.%int_2147483648.629] -// CHECK:STDOUT: %foo.call.loc13: init %i64 = call imports.%foo.decl.993533.2(%.loc13_31.2) +// CHECK:STDOUT: %impl.elem0.loc13: %.f34 = impl_witness_access constants.%ImplicitAs.impl_witness.091, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b] +// CHECK:STDOUT: %bound_method.loc13_31.1: = bound_method %int_2147483648.loc13, %impl.elem0.loc13 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f98] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.f33] +// CHECK:STDOUT: %bound_method.loc13_31.2: = bound_method %int_2147483648.loc13, %specific_fn.loc13 [concrete = constants.%bound_method.2c2] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13: init %i64 = call %bound_method.loc13_31.2(%int_2147483648.loc13) [concrete = constants.%int_2147483648.f59] +// CHECK:STDOUT: %.loc13_31.1: %i64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13 [concrete = constants.%int_2147483648.f59] +// CHECK:STDOUT: %.loc13_31.2: %i64 = converted %int_2147483648.loc13, %.loc13_31.1 [concrete = constants.%int_2147483648.f59] +// CHECK:STDOUT: %foo.call.loc13: init %i64 = call imports.%foo.decl.6431a3.2(%.loc13_31.2) // CHECK:STDOUT: %i64.loc13: type = type_literal constants.%i64 [concrete = constants.%i64] // CHECK:STDOUT: %.loc13_41.1: %i64 = value_of_initializer %foo.call.loc13 // CHECK:STDOUT: %.loc13_41.2: %i64 = converted %foo.call.loc13, %.loc13_41.1 // CHECK:STDOUT: %b: %i64 = value_binding b, %.loc13_41.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b_hexa.patt: %pattern_type.fdd = value_binding_pattern b_hexa [concrete] +// CHECK:STDOUT: %b_hexa.patt: %pattern_type.f57 = value_binding_pattern b_hexa [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc14: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref.loc14: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_2147483648.loc14: Core.IntLiteral = int_value 2147483648 [concrete = constants.%int_2147483648.1db] -// CHECK:STDOUT: %impl.elem0.loc14: %.d4c = impl_witness_access constants.%ImplicitAs.impl_witness.35c, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5] -// CHECK:STDOUT: %bound_method.loc14_36.1: = bound_method %int_2147483648.loc14, %impl.elem0.loc14 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.560] -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.b26] -// CHECK:STDOUT: %bound_method.loc14_36.2: = bound_method %int_2147483648.loc14, %specific_fn.loc14 [concrete = constants.%bound_method.48d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14: init %i64 = call %bound_method.loc14_36.2(%int_2147483648.loc14) [concrete = constants.%int_2147483648.629] -// CHECK:STDOUT: %.loc14_36.1: %i64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14 [concrete = constants.%int_2147483648.629] -// CHECK:STDOUT: %.loc14_36.2: %i64 = converted %int_2147483648.loc14, %.loc14_36.1 [concrete = constants.%int_2147483648.629] -// CHECK:STDOUT: %foo.call.loc14: init %i64 = call imports.%foo.decl.993533.2(%.loc14_36.2) +// CHECK:STDOUT: %impl.elem0.loc14: %.f34 = impl_witness_access constants.%ImplicitAs.impl_witness.091, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b] +// CHECK:STDOUT: %bound_method.loc14_36.1: = bound_method %int_2147483648.loc14, %impl.elem0.loc14 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f98] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.f33] +// CHECK:STDOUT: %bound_method.loc14_36.2: = bound_method %int_2147483648.loc14, %specific_fn.loc14 [concrete = constants.%bound_method.2c2] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14: init %i64 = call %bound_method.loc14_36.2(%int_2147483648.loc14) [concrete = constants.%int_2147483648.f59] +// CHECK:STDOUT: %.loc14_36.1: %i64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14 [concrete = constants.%int_2147483648.f59] +// CHECK:STDOUT: %.loc14_36.2: %i64 = converted %int_2147483648.loc14, %.loc14_36.1 [concrete = constants.%int_2147483648.f59] +// CHECK:STDOUT: %foo.call.loc14: init %i64 = call imports.%foo.decl.6431a3.2(%.loc14_36.2) // CHECK:STDOUT: %i64.loc14: type = type_literal constants.%i64 [concrete = constants.%i64] // CHECK:STDOUT: %.loc14_47.1: %i64 = value_of_initializer %foo.call.loc14 // CHECK:STDOUT: %.loc14_47.2: %i64 = converted %foo.call.loc14, %.loc14_47.1 // CHECK:STDOUT: %b_hexa: %i64 = value_binding b_hexa, %.loc14_47.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b_binary.patt: %pattern_type.fdd = value_binding_pattern b_binary [concrete] +// CHECK:STDOUT: %b_binary.patt: %pattern_type.f57 = value_binding_pattern b_binary [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref.loc15: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_2147483648.loc15: Core.IntLiteral = int_value 2147483648 [concrete = constants.%int_2147483648.1db] -// CHECK:STDOUT: %impl.elem0.loc15: %.d4c = impl_witness_access constants.%ImplicitAs.impl_witness.35c, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5] -// CHECK:STDOUT: %bound_method.loc15_38.1: = bound_method %int_2147483648.loc15, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.560] -// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.b26] -// CHECK:STDOUT: %bound_method.loc15_38.2: = bound_method %int_2147483648.loc15, %specific_fn.loc15 [concrete = constants.%bound_method.48d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %i64 = call %bound_method.loc15_38.2(%int_2147483648.loc15) [concrete = constants.%int_2147483648.629] -// CHECK:STDOUT: %.loc15_38.1: %i64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%int_2147483648.629] -// CHECK:STDOUT: %.loc15_38.2: %i64 = converted %int_2147483648.loc15, %.loc15_38.1 [concrete = constants.%int_2147483648.629] -// CHECK:STDOUT: %foo.call.loc15: init %i64 = call imports.%foo.decl.993533.2(%.loc15_38.2) +// CHECK:STDOUT: %impl.elem0.loc15: %.f34 = impl_witness_access constants.%ImplicitAs.impl_witness.091, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b] +// CHECK:STDOUT: %bound_method.loc15_38.1: = bound_method %int_2147483648.loc15, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f98] +// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.f33] +// CHECK:STDOUT: %bound_method.loc15_38.2: = bound_method %int_2147483648.loc15, %specific_fn.loc15 [concrete = constants.%bound_method.2c2] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %i64 = call %bound_method.loc15_38.2(%int_2147483648.loc15) [concrete = constants.%int_2147483648.f59] +// CHECK:STDOUT: %.loc15_38.1: %i64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%int_2147483648.f59] +// CHECK:STDOUT: %.loc15_38.2: %i64 = converted %int_2147483648.loc15, %.loc15_38.1 [concrete = constants.%int_2147483648.f59] +// CHECK:STDOUT: %foo.call.loc15: init %i64 = call imports.%foo.decl.6431a3.2(%.loc15_38.2) // CHECK:STDOUT: %i64.loc15: type = type_literal constants.%i64 [concrete = constants.%i64] // CHECK:STDOUT: %.loc15_79.1: %i64 = value_of_initializer %foo.call.loc15 // CHECK:STDOUT: %.loc15_79.2: %i64 = converted %foo.call.loc15, %.loc15_79.1 // CHECK:STDOUT: %b_binary: %i64 = value_binding b_binary, %.loc15_79.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.fdd = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.f57 = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc18: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref.loc18: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_9223372036854775807: Core.IntLiteral = int_value 9223372036854775807 [concrete = constants.%int_9223372036854775807.e6f] -// CHECK:STDOUT: %impl.elem0.loc18: %.d4c = impl_witness_access constants.%ImplicitAs.impl_witness.35c, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5] -// CHECK:STDOUT: %bound_method.loc18_31.1: = bound_method %int_9223372036854775807, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.efc] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.b26] -// CHECK:STDOUT: %bound_method.loc18_31.2: = bound_method %int_9223372036854775807, %specific_fn.loc18 [concrete = constants.%bound_method.eb1] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %i64 = call %bound_method.loc18_31.2(%int_9223372036854775807) [concrete = constants.%int_9223372036854775807.0a1] -// CHECK:STDOUT: %.loc18_31.1: %i64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_9223372036854775807.0a1] -// CHECK:STDOUT: %.loc18_31.2: %i64 = converted %int_9223372036854775807, %.loc18_31.1 [concrete = constants.%int_9223372036854775807.0a1] -// CHECK:STDOUT: %foo.call.loc18: init %i64 = call imports.%foo.decl.993533.2(%.loc18_31.2) +// CHECK:STDOUT: %impl.elem0.loc18: %.f34 = impl_witness_access constants.%ImplicitAs.impl_witness.091, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b] +// CHECK:STDOUT: %bound_method.loc18_31.1: = bound_method %int_9223372036854775807, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.fc8] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.f33] +// CHECK:STDOUT: %bound_method.loc18_31.2: = bound_method %int_9223372036854775807, %specific_fn.loc18 [concrete = constants.%bound_method.e30] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %i64 = call %bound_method.loc18_31.2(%int_9223372036854775807) [concrete = constants.%int_9223372036854775807.045] +// CHECK:STDOUT: %.loc18_31.1: %i64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_9223372036854775807.045] +// CHECK:STDOUT: %.loc18_31.2: %i64 = converted %int_9223372036854775807, %.loc18_31.1 [concrete = constants.%int_9223372036854775807.045] +// CHECK:STDOUT: %foo.call.loc18: init %i64 = call imports.%foo.decl.6431a3.2(%.loc18_31.2) // CHECK:STDOUT: %i64.loc18: type = type_literal constants.%i64 [concrete = constants.%i64] // CHECK:STDOUT: %.loc18_50.1: %i64 = value_of_initializer %foo.call.loc18 // CHECK:STDOUT: %.loc18_50.2: %i64 = converted %foo.call.loc18, %.loc18_50.1 // CHECK:STDOUT: %c: %i64 = value_binding c, %.loc18_50.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.292 = value_binding_pattern d [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.97f = value_binding_pattern d [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc22: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref.loc22: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_9223372036854775808: Core.IntLiteral = int_value 9223372036854775808 [concrete = constants.%int_9223372036854775808.293] -// CHECK:STDOUT: %impl.elem0.loc22_32.1: %.3b9 = impl_witness_access constants.%ImplicitAs.impl_witness.de9, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.c2a] -// CHECK:STDOUT: %bound_method.loc22_32.1: = bound_method %int_9223372036854775808, %impl.elem0.loc22_32.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.412] -// CHECK:STDOUT: %specific_fn.loc22_32.1: = specific_function %impl.elem0.loc22_32.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_128) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.0b5] -// CHECK:STDOUT: %bound_method.loc22_32.2: = bound_method %int_9223372036854775808, %specific_fn.loc22_32.1 [concrete = constants.%bound_method.b72] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %i128 = call %bound_method.loc22_32.2(%int_9223372036854775808) [concrete = constants.%int_9223372036854775808.13b] -// CHECK:STDOUT: %.loc22_32.1: %i128 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_9223372036854775808.13b] -// CHECK:STDOUT: %.loc22_32.2: %i128 = converted %int_9223372036854775808, %.loc22_32.1 [concrete = constants.%int_9223372036854775808.13b] -// CHECK:STDOUT: %impl.elem0.loc22_32.2: %.803 = impl_witness_access constants.%Copy.impl_witness.ede, element0 [concrete = constants.%Int.as.Copy.impl.Op.26e] -// CHECK:STDOUT: %bound_method.loc22_32.3: = bound_method %.loc22_32.2, %impl.elem0.loc22_32.2 [concrete = constants.%Int.as.Copy.impl.Op.bound.e5e] +// CHECK:STDOUT: %impl.elem0.loc22_32.1: %.2ea = impl_witness_access constants.%ImplicitAs.impl_witness.2c8, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.c6b] +// CHECK:STDOUT: %bound_method.loc22_32.1: = bound_method %int_9223372036854775808, %impl.elem0.loc22_32.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.64f] +// CHECK:STDOUT: %specific_fn.loc22_32.1: = specific_function %impl.elem0.loc22_32.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_128) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.be8] +// CHECK:STDOUT: %bound_method.loc22_32.2: = bound_method %int_9223372036854775808, %specific_fn.loc22_32.1 [concrete = constants.%bound_method.5d3] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %i128 = call %bound_method.loc22_32.2(%int_9223372036854775808) [concrete = constants.%int_9223372036854775808.c39] +// CHECK:STDOUT: %.loc22_32.1: %i128 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_9223372036854775808.c39] +// CHECK:STDOUT: %.loc22_32.2: %i128 = converted %int_9223372036854775808, %.loc22_32.1 [concrete = constants.%int_9223372036854775808.c39] +// CHECK:STDOUT: %impl.elem0.loc22_32.2: %.858 = impl_witness_access constants.%Copy.impl_witness.952, element0 [concrete = constants.%Int.as.Copy.impl.Op.4fd] +// CHECK:STDOUT: %bound_method.loc22_32.3: = bound_method %.loc22_32.2, %impl.elem0.loc22_32.2 [concrete = constants.%Int.as.Copy.impl.Op.bound.6d1] // CHECK:STDOUT: %specific_fn.loc22_32.2: = specific_function %impl.elem0.loc22_32.2, @Int.as.Copy.impl.Op(constants.%int_128) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc22_32.4: = bound_method %.loc22_32.2, %specific_fn.loc22_32.2 [concrete = constants.%bound_method.6a9] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc22: init %i128 = call %bound_method.loc22_32.4(%.loc22_32.2) [concrete = constants.%int_9223372036854775808.13b] +// CHECK:STDOUT: %bound_method.loc22_32.4: = bound_method %.loc22_32.2, %specific_fn.loc22_32.2 [concrete = constants.%bound_method.ddb] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc22: init %i128 = call %bound_method.loc22_32.4(%.loc22_32.2) [concrete = constants.%int_9223372036854775808.c39] // CHECK:STDOUT: %.loc22_32.3: ref %i128 = temporary_storage -// CHECK:STDOUT: %.loc22_32.4: ref %i128 = temporary %.loc22_32.3, %Int.as.Copy.impl.Op.call.loc22 [concrete = constants.%.4f2] -// CHECK:STDOUT: %addr.loc22_51.1: %ptr.201 = addr_of %.loc22_32.4 [concrete = constants.%addr.39c] +// CHECK:STDOUT: %.loc22_32.4: ref %i128 = temporary %.loc22_32.3, %Int.as.Copy.impl.Op.call.loc22 [concrete = constants.%.e05] +// CHECK:STDOUT: %addr.loc22_51.1: %ptr.19c = addr_of %.loc22_32.4 [concrete = constants.%addr.ac7] // CHECK:STDOUT: %.loc22_51.1: ref %i128 = temporary_storage -// CHECK:STDOUT: %addr.loc22_51.2: %ptr.201 = addr_of %.loc22_51.1 +// CHECK:STDOUT: %addr.loc22_51.2: %ptr.19c = addr_of %.loc22_51.1 // CHECK:STDOUT: %foo__carbon_thunk.call.loc22: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc22_51.1, %addr.loc22_51.2) // CHECK:STDOUT: %.loc22_51.2: init %i128 to %.loc22_51.1 = mark_in_place_init %foo__carbon_thunk.call.loc22 // CHECK:STDOUT: %i128.loc22: type = type_literal constants.%i128 [concrete = constants.%i128] @@ -1677,28 +1677,28 @@ fn F() { // CHECK:STDOUT: %.loc22_51.4: %i128 = acquire_value %.loc22_51.3 // CHECK:STDOUT: %d: %i128 = value_binding d, %.loc22_51.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %e.patt: %pattern_type.292 = value_binding_pattern e [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.97f = value_binding_pattern e [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc25: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref.loc25: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_18446744073709551615: Core.IntLiteral = int_value 18446744073709551615 [concrete = constants.%int_18446744073709551615.5ec] -// CHECK:STDOUT: %impl.elem0.loc25_32.1: %.3b9 = impl_witness_access constants.%ImplicitAs.impl_witness.de9, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.c2a] -// CHECK:STDOUT: %bound_method.loc25_32.1: = bound_method %int_18446744073709551615, %impl.elem0.loc25_32.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.486] -// CHECK:STDOUT: %specific_fn.loc25_32.1: = specific_function %impl.elem0.loc25_32.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_128) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.0b5] -// CHECK:STDOUT: %bound_method.loc25_32.2: = bound_method %int_18446744073709551615, %specific_fn.loc25_32.1 [concrete = constants.%bound_method.765] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25: init %i128 = call %bound_method.loc25_32.2(%int_18446744073709551615) [concrete = constants.%int_18446744073709551615.e81] -// CHECK:STDOUT: %.loc25_32.1: %i128 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25 [concrete = constants.%int_18446744073709551615.e81] -// CHECK:STDOUT: %.loc25_32.2: %i128 = converted %int_18446744073709551615, %.loc25_32.1 [concrete = constants.%int_18446744073709551615.e81] -// CHECK:STDOUT: %impl.elem0.loc25_32.2: %.803 = impl_witness_access constants.%Copy.impl_witness.ede, element0 [concrete = constants.%Int.as.Copy.impl.Op.26e] -// CHECK:STDOUT: %bound_method.loc25_32.3: = bound_method %.loc25_32.2, %impl.elem0.loc25_32.2 [concrete = constants.%Int.as.Copy.impl.Op.bound.e7d] +// CHECK:STDOUT: %impl.elem0.loc25_32.1: %.2ea = impl_witness_access constants.%ImplicitAs.impl_witness.2c8, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.c6b] +// CHECK:STDOUT: %bound_method.loc25_32.1: = bound_method %int_18446744073709551615, %impl.elem0.loc25_32.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8ee] +// CHECK:STDOUT: %specific_fn.loc25_32.1: = specific_function %impl.elem0.loc25_32.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_128) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.be8] +// CHECK:STDOUT: %bound_method.loc25_32.2: = bound_method %int_18446744073709551615, %specific_fn.loc25_32.1 [concrete = constants.%bound_method.5ac] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25: init %i128 = call %bound_method.loc25_32.2(%int_18446744073709551615) [concrete = constants.%int_18446744073709551615.278] +// CHECK:STDOUT: %.loc25_32.1: %i128 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25 [concrete = constants.%int_18446744073709551615.278] +// CHECK:STDOUT: %.loc25_32.2: %i128 = converted %int_18446744073709551615, %.loc25_32.1 [concrete = constants.%int_18446744073709551615.278] +// CHECK:STDOUT: %impl.elem0.loc25_32.2: %.858 = impl_witness_access constants.%Copy.impl_witness.952, element0 [concrete = constants.%Int.as.Copy.impl.Op.4fd] +// CHECK:STDOUT: %bound_method.loc25_32.3: = bound_method %.loc25_32.2, %impl.elem0.loc25_32.2 [concrete = constants.%Int.as.Copy.impl.Op.bound.4e4] // CHECK:STDOUT: %specific_fn.loc25_32.2: = specific_function %impl.elem0.loc25_32.2, @Int.as.Copy.impl.Op(constants.%int_128) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc25_32.4: = bound_method %.loc25_32.2, %specific_fn.loc25_32.2 [concrete = constants.%bound_method.32f] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc25: init %i128 = call %bound_method.loc25_32.4(%.loc25_32.2) [concrete = constants.%int_18446744073709551615.e81] +// CHECK:STDOUT: %bound_method.loc25_32.4: = bound_method %.loc25_32.2, %specific_fn.loc25_32.2 [concrete = constants.%bound_method.181] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc25: init %i128 = call %bound_method.loc25_32.4(%.loc25_32.2) [concrete = constants.%int_18446744073709551615.278] // CHECK:STDOUT: %.loc25_32.3: ref %i128 = temporary_storage -// CHECK:STDOUT: %.loc25_32.4: ref %i128 = temporary %.loc25_32.3, %Int.as.Copy.impl.Op.call.loc25 [concrete = constants.%.22a] -// CHECK:STDOUT: %addr.loc25_52.1: %ptr.201 = addr_of %.loc25_32.4 [concrete = constants.%addr.ad8] +// CHECK:STDOUT: %.loc25_32.4: ref %i128 = temporary %.loc25_32.3, %Int.as.Copy.impl.Op.call.loc25 [concrete = constants.%.6dc] +// CHECK:STDOUT: %addr.loc25_52.1: %ptr.19c = addr_of %.loc25_32.4 [concrete = constants.%addr.fb9] // CHECK:STDOUT: %.loc25_52.1: ref %i128 = temporary_storage -// CHECK:STDOUT: %addr.loc25_52.2: %ptr.201 = addr_of %.loc25_52.1 +// CHECK:STDOUT: %addr.loc25_52.2: %ptr.19c = addr_of %.loc25_52.1 // CHECK:STDOUT: %foo__carbon_thunk.call.loc25: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc25_52.1, %addr.loc25_52.2) // CHECK:STDOUT: %.loc25_52.2: init %i128 to %.loc25_52.1 = mark_in_place_init %foo__carbon_thunk.call.loc25 // CHECK:STDOUT: %i128.loc25: type = type_literal constants.%i128 [concrete = constants.%i128] @@ -1706,28 +1706,28 @@ fn F() { // CHECK:STDOUT: %.loc25_52.4: %i128 = acquire_value %.loc25_52.3 // CHECK:STDOUT: %e: %i128 = value_binding e, %.loc25_52.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %f.patt: %pattern_type.292 = value_binding_pattern f [concrete] +// CHECK:STDOUT: %f.patt: %pattern_type.97f = value_binding_pattern f [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc28: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref.loc28: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_18446744073709551616: Core.IntLiteral = int_value 18446744073709551616 [concrete = constants.%int_18446744073709551616.1ee] -// CHECK:STDOUT: %impl.elem0.loc28_32.1: %.3b9 = impl_witness_access constants.%ImplicitAs.impl_witness.de9, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.c2a] -// CHECK:STDOUT: %bound_method.loc28_32.1: = bound_method %int_18446744073709551616, %impl.elem0.loc28_32.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d2] -// CHECK:STDOUT: %specific_fn.loc28_32.1: = specific_function %impl.elem0.loc28_32.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_128) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.0b5] -// CHECK:STDOUT: %bound_method.loc28_32.2: = bound_method %int_18446744073709551616, %specific_fn.loc28_32.1 [concrete = constants.%bound_method.d66] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc28: init %i128 = call %bound_method.loc28_32.2(%int_18446744073709551616) [concrete = constants.%int_18446744073709551616.a31] -// CHECK:STDOUT: %.loc28_32.1: %i128 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc28 [concrete = constants.%int_18446744073709551616.a31] -// CHECK:STDOUT: %.loc28_32.2: %i128 = converted %int_18446744073709551616, %.loc28_32.1 [concrete = constants.%int_18446744073709551616.a31] -// CHECK:STDOUT: %impl.elem0.loc28_32.2: %.803 = impl_witness_access constants.%Copy.impl_witness.ede, element0 [concrete = constants.%Int.as.Copy.impl.Op.26e] -// CHECK:STDOUT: %bound_method.loc28_32.3: = bound_method %.loc28_32.2, %impl.elem0.loc28_32.2 [concrete = constants.%Int.as.Copy.impl.Op.bound.f2a] +// CHECK:STDOUT: %impl.elem0.loc28_32.1: %.2ea = impl_witness_access constants.%ImplicitAs.impl_witness.2c8, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.c6b] +// CHECK:STDOUT: %bound_method.loc28_32.1: = bound_method %int_18446744073709551616, %impl.elem0.loc28_32.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f7c] +// CHECK:STDOUT: %specific_fn.loc28_32.1: = specific_function %impl.elem0.loc28_32.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_128) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.be8] +// CHECK:STDOUT: %bound_method.loc28_32.2: = bound_method %int_18446744073709551616, %specific_fn.loc28_32.1 [concrete = constants.%bound_method.e5e] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc28: init %i128 = call %bound_method.loc28_32.2(%int_18446744073709551616) [concrete = constants.%int_18446744073709551616.9ff] +// CHECK:STDOUT: %.loc28_32.1: %i128 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc28 [concrete = constants.%int_18446744073709551616.9ff] +// CHECK:STDOUT: %.loc28_32.2: %i128 = converted %int_18446744073709551616, %.loc28_32.1 [concrete = constants.%int_18446744073709551616.9ff] +// CHECK:STDOUT: %impl.elem0.loc28_32.2: %.858 = impl_witness_access constants.%Copy.impl_witness.952, element0 [concrete = constants.%Int.as.Copy.impl.Op.4fd] +// CHECK:STDOUT: %bound_method.loc28_32.3: = bound_method %.loc28_32.2, %impl.elem0.loc28_32.2 [concrete = constants.%Int.as.Copy.impl.Op.bound.776] // CHECK:STDOUT: %specific_fn.loc28_32.2: = specific_function %impl.elem0.loc28_32.2, @Int.as.Copy.impl.Op(constants.%int_128) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc28_32.4: = bound_method %.loc28_32.2, %specific_fn.loc28_32.2 [concrete = constants.%bound_method.162] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc28: init %i128 = call %bound_method.loc28_32.4(%.loc28_32.2) [concrete = constants.%int_18446744073709551616.a31] +// CHECK:STDOUT: %bound_method.loc28_32.4: = bound_method %.loc28_32.2, %specific_fn.loc28_32.2 [concrete = constants.%bound_method.b9e] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc28: init %i128 = call %bound_method.loc28_32.4(%.loc28_32.2) [concrete = constants.%int_18446744073709551616.9ff] // CHECK:STDOUT: %.loc28_32.3: ref %i128 = temporary_storage -// CHECK:STDOUT: %.loc28_32.4: ref %i128 = temporary %.loc28_32.3, %Int.as.Copy.impl.Op.call.loc28 [concrete = constants.%.ae4] -// CHECK:STDOUT: %addr.loc28_52.1: %ptr.201 = addr_of %.loc28_32.4 [concrete = constants.%addr.eaa] +// CHECK:STDOUT: %.loc28_32.4: ref %i128 = temporary %.loc28_32.3, %Int.as.Copy.impl.Op.call.loc28 [concrete = constants.%.579] +// CHECK:STDOUT: %addr.loc28_52.1: %ptr.19c = addr_of %.loc28_32.4 [concrete = constants.%addr.cbf] // CHECK:STDOUT: %.loc28_52.1: ref %i128 = temporary_storage -// CHECK:STDOUT: %addr.loc28_52.2: %ptr.201 = addr_of %.loc28_52.1 +// CHECK:STDOUT: %addr.loc28_52.2: %ptr.19c = addr_of %.loc28_52.1 // CHECK:STDOUT: %foo__carbon_thunk.call.loc28: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc28_52.1, %addr.loc28_52.2) // CHECK:STDOUT: %.loc28_52.2: init %i128 to %.loc28_52.1 = mark_in_place_init %foo__carbon_thunk.call.loc28 // CHECK:STDOUT: %i128.loc28: type = type_literal constants.%i128 [concrete = constants.%i128] @@ -1735,46 +1735,46 @@ fn F() { // CHECK:STDOUT: %.loc28_52.4: %i128 = acquire_value %.loc28_52.3 // CHECK:STDOUT: %f: %i128 = value_binding f, %.loc28_52.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %g.patt: %pattern_type.292 = value_binding_pattern g [concrete] +// CHECK:STDOUT: %g.patt: %pattern_type.97f = value_binding_pattern g [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc31: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref.loc31: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_170141183460469231731687303715884105727: Core.IntLiteral = int_value 170141183460469231731687303715884105727 [concrete = constants.%int_170141183460469231731687303715884105727.fea] -// CHECK:STDOUT: %impl.elem0.loc31_32.1: %.3b9 = impl_witness_access constants.%ImplicitAs.impl_witness.de9, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.c2a] -// CHECK:STDOUT: %bound_method.loc31_32.1: = bound_method %int_170141183460469231731687303715884105727, %impl.elem0.loc31_32.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.132] -// CHECK:STDOUT: %specific_fn.loc31_32.1: = specific_function %impl.elem0.loc31_32.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_128) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.0b5] -// CHECK:STDOUT: %bound_method.loc31_32.2: = bound_method %int_170141183460469231731687303715884105727, %specific_fn.loc31_32.1 [concrete = constants.%bound_method.3d4] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31: init %i128 = call %bound_method.loc31_32.2(%int_170141183460469231731687303715884105727) [concrete = constants.%int_170141183460469231731687303715884105727.276] -// CHECK:STDOUT: %.loc31_32.1: %i128 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31 [concrete = constants.%int_170141183460469231731687303715884105727.276] -// CHECK:STDOUT: %.loc31_32.2: %i128 = converted %int_170141183460469231731687303715884105727, %.loc31_32.1 [concrete = constants.%int_170141183460469231731687303715884105727.276] -// CHECK:STDOUT: %impl.elem0.loc31_32.2: %.803 = impl_witness_access constants.%Copy.impl_witness.ede, element0 [concrete = constants.%Int.as.Copy.impl.Op.26e] -// CHECK:STDOUT: %bound_method.loc31_32.3: = bound_method %.loc31_32.2, %impl.elem0.loc31_32.2 [concrete = constants.%Int.as.Copy.impl.Op.bound.86f] +// CHECK:STDOUT: %impl.elem0.loc31_32.1: %.2ea = impl_witness_access constants.%ImplicitAs.impl_witness.2c8, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.c6b] +// CHECK:STDOUT: %bound_method.loc31_32.1: = bound_method %int_170141183460469231731687303715884105727, %impl.elem0.loc31_32.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.6a6] +// CHECK:STDOUT: %specific_fn.loc31_32.1: = specific_function %impl.elem0.loc31_32.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_128) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn.be8] +// CHECK:STDOUT: %bound_method.loc31_32.2: = bound_method %int_170141183460469231731687303715884105727, %specific_fn.loc31_32.1 [concrete = constants.%bound_method.537] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31: init %i128 = call %bound_method.loc31_32.2(%int_170141183460469231731687303715884105727) [concrete = constants.%int_170141183460469231731687303715884105727.a76] +// CHECK:STDOUT: %.loc31_32.1: %i128 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31 [concrete = constants.%int_170141183460469231731687303715884105727.a76] +// CHECK:STDOUT: %.loc31_32.2: %i128 = converted %int_170141183460469231731687303715884105727, %.loc31_32.1 [concrete = constants.%int_170141183460469231731687303715884105727.a76] +// CHECK:STDOUT: %impl.elem0.loc31_32.2: %.858 = impl_witness_access constants.%Copy.impl_witness.952, element0 [concrete = constants.%Int.as.Copy.impl.Op.4fd] +// CHECK:STDOUT: %bound_method.loc31_32.3: = bound_method %.loc31_32.2, %impl.elem0.loc31_32.2 [concrete = constants.%Int.as.Copy.impl.Op.bound.61b] // CHECK:STDOUT: %specific_fn.loc31_32.2: = specific_function %impl.elem0.loc31_32.2, @Int.as.Copy.impl.Op(constants.%int_128) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc31_32.4: = bound_method %.loc31_32.2, %specific_fn.loc31_32.2 [concrete = constants.%bound_method.30d] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc31: init %i128 = call %bound_method.loc31_32.4(%.loc31_32.2) [concrete = constants.%int_170141183460469231731687303715884105727.276] +// CHECK:STDOUT: %bound_method.loc31_32.4: = bound_method %.loc31_32.2, %specific_fn.loc31_32.2 [concrete = constants.%bound_method.5a5] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc31: init %i128 = call %bound_method.loc31_32.4(%.loc31_32.2) [concrete = constants.%int_170141183460469231731687303715884105727.a76] // CHECK:STDOUT: %.loc31_32.3: ref %i128 = temporary_storage -// CHECK:STDOUT: %.loc31_32.4: ref %i128 = temporary %.loc31_32.3, %Int.as.Copy.impl.Op.call.loc31 [concrete = constants.%.f1a] -// CHECK:STDOUT: %addr.loc31_71.1: %ptr.201 = addr_of %.loc31_32.4 [concrete = constants.%addr.dc2] +// CHECK:STDOUT: %.loc31_32.4: ref %i128 = temporary %.loc31_32.3, %Int.as.Copy.impl.Op.call.loc31 [concrete = constants.%.dc9] +// CHECK:STDOUT: %addr.loc31_71.1: %ptr.19c = addr_of %.loc31_32.4 [concrete = constants.%addr.882] // CHECK:STDOUT: %.loc31_71.1: ref %i128 = temporary_storage -// CHECK:STDOUT: %addr.loc31_71.2: %ptr.201 = addr_of %.loc31_71.1 +// CHECK:STDOUT: %addr.loc31_71.2: %ptr.19c = addr_of %.loc31_71.1 // CHECK:STDOUT: %foo__carbon_thunk.call.loc31: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc31_71.1, %addr.loc31_71.2) // CHECK:STDOUT: %.loc31_71.2: init %i128 to %.loc31_71.1 = mark_in_place_init %foo__carbon_thunk.call.loc31 // CHECK:STDOUT: %i128.loc31: type = type_literal constants.%i128 [concrete = constants.%i128] // CHECK:STDOUT: %.loc31_71.3: ref %i128 = temporary %.loc31_71.1, %.loc31_71.2 // CHECK:STDOUT: %.loc31_71.4: %i128 = acquire_value %.loc31_71.3 // CHECK:STDOUT: %g: %i128 = value_binding g, %.loc31_71.4 -// CHECK:STDOUT: %Destroy.Op.bound.loc31: = bound_method %.loc31_71.3, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc31: = bound_method %.loc31_71.3, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc31_71: init %empty_tuple.type = call %Destroy.Op.bound.loc31(%.loc31_71.3) -// CHECK:STDOUT: %Destroy.Op.call.loc31_32: init %empty_tuple.type = call constants.%Destroy.Op.bound.186(constants.%.f1a) -// CHECK:STDOUT: %Destroy.Op.bound.loc28: = bound_method %.loc28_52.3, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.call.loc31_32: init %empty_tuple.type = call constants.%Destroy.Op.bound.741(constants.%.dc9) +// CHECK:STDOUT: %Destroy.Op.bound.loc28: = bound_method %.loc28_52.3, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc28_52: init %empty_tuple.type = call %Destroy.Op.bound.loc28(%.loc28_52.3) -// CHECK:STDOUT: %Destroy.Op.call.loc28_32: init %empty_tuple.type = call constants.%Destroy.Op.bound.eec(constants.%.ae4) -// CHECK:STDOUT: %Destroy.Op.bound.loc25: = bound_method %.loc25_52.3, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.call.loc28_32: init %empty_tuple.type = call constants.%Destroy.Op.bound.bb1(constants.%.579) +// CHECK:STDOUT: %Destroy.Op.bound.loc25: = bound_method %.loc25_52.3, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc25_52: init %empty_tuple.type = call %Destroy.Op.bound.loc25(%.loc25_52.3) -// CHECK:STDOUT: %Destroy.Op.call.loc25_32: init %empty_tuple.type = call constants.%Destroy.Op.bound.673(constants.%.22a) -// CHECK:STDOUT: %Destroy.Op.bound.loc22: = bound_method %.loc22_51.3, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.call.loc25_32: init %empty_tuple.type = call constants.%Destroy.Op.bound.958(constants.%.6dc) +// CHECK:STDOUT: %Destroy.Op.bound.loc22: = bound_method %.loc22_51.3, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc22_51: init %empty_tuple.type = call %Destroy.Op.bound.loc22(%.loc22_51.3) -// CHECK:STDOUT: %Destroy.Op.call.loc22_32: init %empty_tuple.type = call constants.%Destroy.Op.bound.838(constants.%.4f2) +// CHECK:STDOUT: %Destroy.Op.call.loc22_32: init %empty_tuple.type = call constants.%Destroy.Op.bound.eaa(constants.%.e05) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1784,7 +1784,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: fn @foo.3(%a.param: %i128) -> out %return.param: %i128; // CHECK:STDOUT: -// CHECK:STDOUT: fn @foo__carbon_thunk(%a.param: %ptr.201, %return.param: %ptr.201); +// CHECK:STDOUT: fn @foo__carbon_thunk(%a.param: %ptr.19c, %return.param: %ptr.19c); // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.Op.loc31_71.1(%self.param: ref %i128.builtin) = "no_op"; // CHECK:STDOUT: @@ -1802,7 +1802,7 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i128: type = class_type @Int, @Int(%int_128) [concrete] -// CHECK:STDOUT: %pattern_type.292: type = pattern_type %i128 [concrete] +// CHECK:STDOUT: %pattern_type.97f: type = pattern_type %i128 [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %int_170141183460469231731687303715884105728: Core.IntLiteral = int_value 170141183460469231731687303715884105728 [concrete] @@ -1838,7 +1838,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %h.patt: %pattern_type.292 = value_binding_pattern h [concrete] +// CHECK:STDOUT: %h.patt: %pattern_type.97f = value_binding_pattern h [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] @@ -1860,8 +1860,8 @@ fn F() { // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] // CHECK:STDOUT: %Negate.impl_witness: = impl_witness imports.%Negate.impl_witness_table [concrete] // CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, (%Negate.impl_witness) [concrete] -// CHECK:STDOUT: %Negate.WithSelf.Op.type.309: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] -// CHECK:STDOUT: %.f38: type = fn_type_with_self_type %Negate.WithSelf.Op.type.309, %Negate.facet [concrete] +// CHECK:STDOUT: %Negate.WithSelf.Op.type.802: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] +// CHECK:STDOUT: %.765: type = fn_type_with_self_type %Negate.WithSelf.Op.type.802, %Negate.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.type: type = fn_type @Core.IntLiteral.as.Negate.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op: %Core.IntLiteral.as.Negate.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.bound: = bound_method %int_1, %Core.IntLiteral.as.Negate.impl.Op [concrete] @@ -1870,25 +1870,25 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_-1.638, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_-1.638, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_-1.638, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_-1.aa3: %i32 = int_value -1 [concrete] +// CHECK:STDOUT: %int_-1.4ef: %i32 = int_value -1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1906,12 +1906,12 @@ fn F() { // 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.Negate: type = import_ref Core//prelude/parts/int_literal, Negate, loaded [concrete = constants.%Negate.type] // CHECK:STDOUT: %Core.import_ref.abd = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63: %Core.IntLiteral.as.Negate.impl.Op.type = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] -// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.f63), @Core.IntLiteral.as.Negate.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Core.IntLiteral.as.Negate.impl.Op.type = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] +// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.9c3), @Core.IntLiteral.as.Negate.impl [concrete] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -1921,9 +1921,9 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: %i32 = value_binding a, %a.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1944,18 +1944,18 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] -// CHECK:STDOUT: %impl.elem1: %.f38 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.765 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op.bound] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.call: init Core.IntLiteral = call %bound_method.loc8_11.1(%int_1) [concrete = constants.%int_-1.638] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %Core.IntLiteral.as.Negate.impl.Op.call, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.3: = bound_method %Core.IntLiteral.as.Negate.impl.Op.call, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %.loc8_11.1: Core.IntLiteral = value_of_initializer %Core.IntLiteral.as.Negate.impl.Op.call [concrete = constants.%int_-1.638] // CHECK:STDOUT: %.loc8_11.2: Core.IntLiteral = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc8_11.1 [concrete = constants.%int_-1.638] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.3(%.loc8_11.2) [concrete = constants.%int_-1.aa3] -// CHECK:STDOUT: %.loc8_11.3: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_-1.aa3] -// CHECK:STDOUT: %.loc8_11.4: %i32 = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc8_11.3 [concrete = constants.%int_-1.aa3] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.3(%.loc8_11.2) [concrete = constants.%int_-1.4ef] +// CHECK:STDOUT: %.loc8_11.3: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_-1.4ef] +// CHECK:STDOUT: %.loc8_11.4: %i32 = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc8_11.3 [concrete = constants.%int_-1.4ef] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc8_11.4) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1974,8 +1974,8 @@ fn F() { // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] // CHECK:STDOUT: %Negate.impl_witness: = impl_witness imports.%Negate.impl_witness_table [concrete] // CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, (%Negate.impl_witness) [concrete] -// CHECK:STDOUT: %Negate.WithSelf.Op.type.309: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] -// CHECK:STDOUT: %.f38: type = fn_type_with_self_type %Negate.WithSelf.Op.type.309, %Negate.facet [concrete] +// CHECK:STDOUT: %Negate.WithSelf.Op.type.802: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] +// CHECK:STDOUT: %.765: type = fn_type_with_self_type %Negate.WithSelf.Op.type.802, %Negate.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.type: type = fn_type @Core.IntLiteral.as.Negate.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op: %Core.IntLiteral.as.Negate.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.bound: = bound_method %int_1, %Core.IntLiteral.as.Negate.impl.Op [concrete] @@ -1984,25 +1984,25 @@ fn F() { // 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] -// CHECK:STDOUT: %pattern_type.126: type = pattern_type %u32 [concrete] +// CHECK:STDOUT: %pattern_type.668: type = pattern_type %u32 [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.b0a: type = facet_type <@ImplicitAs, @ImplicitAs(%u32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.efe: type = facet_type <@ImplicitAs, @ImplicitAs(%u32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.498: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.040: = impl_witness imports.%ImplicitAs.impl_witness_table.0c6, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.34d: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.09f: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.34d = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.b0a = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.040) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.9e6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%u32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.955: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.9e6, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_-1.638, %Core.IntLiteral.as.ImplicitAs.impl.Convert.09f [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.09f, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.170: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.0a1: = impl_witness imports.%ImplicitAs.impl_witness_table.42f, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.957: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.9db: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.957 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.efe = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.0a1) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b71: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%u32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.22b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b71, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_-1.638, %Core.IntLiteral.as.ImplicitAs.impl.Convert.9db [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.9db, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_-1.638, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_-1.35f: %u32 = int_value 18446744073709551615 [concrete] +// CHECK:STDOUT: %int_-1.002: %u32 = int_value 18446744073709551615 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2020,12 +2020,12 @@ fn F() { // 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.Negate: type = import_ref Core//prelude/parts/int_literal, Negate, loaded [concrete = constants.%Negate.type] // CHECK:STDOUT: %Core.import_ref.abd = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63: %Core.IntLiteral.as.Negate.impl.Op.type = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] -// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.f63), @Core.IntLiteral.as.Negate.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Core.IntLiteral.as.Negate.impl.Op.type = import_ref Core//prelude/parts/int_literal, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] +// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.abd, %Core.import_ref.9c3), @Core.IntLiteral.as.Negate.impl [concrete] // CHECK:STDOUT: %Core.UInt: %UInt.type = import_ref Core//prelude/parts/uint, UInt, loaded [concrete = constants.%UInt.generic] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.126 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.126 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.668 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.668 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %u32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %u32.2 [concrete = constants.%u32] { @@ -2035,9 +2035,9 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: %u32 = value_binding a, %a.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.e9f: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6) = import_ref Core//prelude/parts/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.498)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0c6 = impl_witness_table (%Core.import_ref.e9f), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.aa5: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199) = import_ref Core//prelude/parts/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.170)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.42f = impl_witness_table (%Core.import_ref.aa5), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -2058,18 +2058,18 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] -// CHECK:STDOUT: %impl.elem1: %.f38 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.765 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op] // CHECK:STDOUT: %bound_method.loc15_11.1: = bound_method %int_1, %impl.elem1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op.bound] // CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.call: init Core.IntLiteral = call %bound_method.loc15_11.1(%int_1) [concrete = constants.%int_-1.638] -// CHECK:STDOUT: %impl.elem0: %.955 = impl_witness_access constants.%ImplicitAs.impl_witness.040, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.09f] +// CHECK:STDOUT: %impl.elem0: %.22b = impl_witness_access constants.%ImplicitAs.impl_witness.0a1, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.9db] // CHECK:STDOUT: %bound_method.loc15_11.2: = bound_method %Core.IntLiteral.as.Negate.impl.Op.call, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_11.3: = bound_method %Core.IntLiteral.as.Negate.impl.Op.call, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %.loc15_11.1: Core.IntLiteral = value_of_initializer %Core.IntLiteral.as.Negate.impl.Op.call [concrete = constants.%int_-1.638] // CHECK:STDOUT: %.loc15_11.2: Core.IntLiteral = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc15_11.1 [concrete = constants.%int_-1.638] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %u32 = call %bound_method.loc15_11.3(%.loc15_11.2) [concrete = constants.%int_-1.35f] -// CHECK:STDOUT: %.loc15_11.3: %u32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_-1.35f] -// CHECK:STDOUT: %.loc15_11.4: %u32 = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc15_11.3 [concrete = constants.%int_-1.35f] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %u32 = call %bound_method.loc15_11.3(%.loc15_11.2) [concrete = constants.%int_-1.002] +// CHECK:STDOUT: %.loc15_11.3: %u32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_-1.002] +// CHECK:STDOUT: %.loc15_11.4: %u32 = converted %Core.IntLiteral.as.Negate.impl.Op.call, %.loc15_11.3 [concrete = constants.%int_-1.002] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc15_11.4) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2086,50 +2086,50 @@ fn F() { // CHECK:STDOUT: %Float.type: type = generic_class_type @Float [concrete] // CHECK:STDOUT: %Float.generic: %Float.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %f64.794: type = float_type %int_64, f64 [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [concrete] +// CHECK:STDOUT: %pattern_type.fb7: type = pattern_type %f64.dc1 [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %ptr.f8a: type = ptr_type %f64.b55 [concrete] -// CHECK:STDOUT: %pattern_type.0df: type = pattern_type %ptr.f8a [concrete] +// CHECK:STDOUT: %ptr.749: type = ptr_type %f64.dc1 [concrete] +// CHECK:STDOUT: %pattern_type.a3b: type = pattern_type %ptr.749 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.857: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.b55)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.91e: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.dc1)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.83f: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.857 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.83f) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.096: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.b55, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.119: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.096, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.c5a: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.642: %f64.b55 = float_value 1 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.43c: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.91e = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.43c) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6c5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.dc1, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.2d7: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6c5, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.143: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %float.3b9: %f64.dc1 = float_value 1 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.125: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bfc: %Float.as.Copy.impl.Op.type.125 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.811: = impl_witness imports.%Copy.impl_witness_table.384, @Float.as.Copy.impl(%int_64) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.7a5: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_64) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bcc: %Float.as.Copy.impl.Op.type.7a5 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f64.b55, (%Copy.impl_witness.811) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.286: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.c7d: type = fn_type_with_self_type %Copy.WithSelf.Op.type.286, %Copy.facet [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.642, %Float.as.Copy.impl.Op.bcc [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.bcc, @Float.as.Copy.impl.Op(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.2e9: = bound_method %float.642, %Float.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %.a2a: ref %f64.b55 = temporary invalid, %float.642 [concrete] -// CHECK:STDOUT: %addr: %ptr.f8a = addr_of %.a2a [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.ff3: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N) [symbolic] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.d93: %Float.as.Copy.impl.Op.type.ff3 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.873: = impl_witness imports.%Copy.impl_witness_table.4e8, @Float.as.Copy.impl(%int_64) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.7aa: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_64) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.9c2: %Float.as.Copy.impl.Op.type.7aa = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f64.dc1, (%Copy.impl_witness.873) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.2ca: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.557: type = fn_type_with_self_type %Copy.WithSelf.Op.type.2ca, %Copy.facet [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.3b9, %Float.as.Copy.impl.Op.9c2 [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.9c2, @Float.as.Copy.impl.Op(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.7f2: = bound_method %float.3b9, %Float.as.Copy.impl.Op.specific_fn [concrete] +// CHECK:STDOUT: %.011: ref %f64.dc1 = temporary invalid, %float.3b9 [concrete] +// CHECK:STDOUT: %addr: %ptr.749 = addr_of %.011 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc7_34.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.a2a, %Destroy.Op.2dd605.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc7_34.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.011, %Destroy.Op.1a2547.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2148,32 +2148,32 @@ fn F() { // CHECK:STDOUT: %Core.Float: %Float.type = import_ref Core//prelude/parts/float, Float, loaded [concrete = constants.%Float.generic] // 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: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.0df = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.0df = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0df = value_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0df = at_binding_pattern r#return, %return.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.a3b = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.a3b = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.a3b = value_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.a3b = at_binding_pattern r#return, %return.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %a.param: %ptr.f8a = value_param call_param0 -// CHECK:STDOUT: %.1: type = splice_block constants.%ptr.f8a [concrete = constants.%ptr.f8a] { +// CHECK:STDOUT: %a.param: %ptr.749 = value_param call_param0 +// CHECK:STDOUT: %.1: type = splice_block constants.%ptr.749 [concrete = constants.%ptr.749] { // CHECK:STDOUT: %int_64.2: Core.IntLiteral = int_value 64 [concrete = constants.%int_64] -// CHECK:STDOUT: %f64.3: type = class_type @Float, @Float(constants.%int_64) [concrete = constants.%f64.b55] -// CHECK:STDOUT: %f64.4: type = type_literal %f64.3 [concrete = constants.%f64.b55] +// CHECK:STDOUT: %f64.3: type = class_type @Float, @Float(constants.%int_64) [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %f64.4: type = type_literal %f64.3 [concrete = constants.%f64.dc1] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.f8a = value_binding a, %a.param -// CHECK:STDOUT: %return.param: %ptr.f8a = value_param call_param1 -// CHECK:STDOUT: %.2: type = splice_block constants.%ptr.f8a [concrete = constants.%ptr.f8a] { +// CHECK:STDOUT: %a: %ptr.749 = value_binding a, %a.param +// CHECK:STDOUT: %return.param: %ptr.749 = value_param call_param1 +// CHECK:STDOUT: %.2: type = splice_block constants.%ptr.749 [concrete = constants.%ptr.749] { // CHECK:STDOUT: %int_64.1: Core.IntLiteral = int_value 64 [concrete = constants.%int_64] -// CHECK:STDOUT: %f64.1: type = class_type @Float, @Float(constants.%int_64) [concrete = constants.%f64.b55] -// CHECK:STDOUT: %f64.2: type = type_literal %f64.1 [concrete = constants.%f64.b55] +// CHECK:STDOUT: %f64.1: type = class_type @Float, @Float(constants.%int_64) [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %f64.2: type = type_literal %f64.1 [concrete = constants.%f64.dc1] // CHECK:STDOUT: } -// CHECK:STDOUT: %return: %ptr.f8a = value_binding r#return, %return.param +// CHECK:STDOUT: %return: %ptr.749 = value_binding r#return, %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.63c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.63c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.461: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.125) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.bfc)] -// CHECK:STDOUT: %Copy.impl_witness_table.384 = impl_witness_table (%Core.import_ref.461), @Float.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e69: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.ff3) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.d93)] +// CHECK:STDOUT: %Copy.impl_witness_table.4e8 = impl_witness_table (%Core.import_ref.e69), @Float.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2193,47 +2193,47 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.f3c = value_binding_pattern d [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.fb7 = value_binding_pattern d [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] -// CHECK:STDOUT: %impl.elem0.loc7_31.1: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] +// CHECK:STDOUT: %impl.elem0.loc7_31.1: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] // CHECK:STDOUT: %bound_method.loc7_31.1: = bound_method %float, %impl.elem0.loc7_31.1 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc7_31.1: = specific_function %impl.elem0.loc7_31.1, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_31.2: = bound_method %float, %specific_fn.loc7_31.1 [concrete = constants.%bound_method.c5a] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.b55 = call %bound_method.loc7_31.2(%float) [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc7_31.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc7_31.2: %f64.b55 = converted %float, %.loc7_31.1 [concrete = constants.%float.642] -// CHECK:STDOUT: %impl.elem0.loc7_31.2: %.c7d = impl_witness_access constants.%Copy.impl_witness.811, element0 [concrete = constants.%Float.as.Copy.impl.Op.bcc] +// CHECK:STDOUT: %bound_method.loc7_31.2: = bound_method %float, %specific_fn.loc7_31.1 [concrete = constants.%bound_method.143] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.dc1 = call %bound_method.loc7_31.2(%float) [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc7_31.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc7_31.2: %f64.dc1 = converted %float, %.loc7_31.1 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %impl.elem0.loc7_31.2: %.557 = impl_witness_access constants.%Copy.impl_witness.873, element0 [concrete = constants.%Float.as.Copy.impl.Op.9c2] // CHECK:STDOUT: %bound_method.loc7_31.3: = bound_method %.loc7_31.2, %impl.elem0.loc7_31.2 [concrete = constants.%Float.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc7_31.2: = specific_function %impl.elem0.loc7_31.2, @Float.as.Copy.impl.Op(constants.%int_64) [concrete = constants.%Float.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_31.4: = bound_method %.loc7_31.2, %specific_fn.loc7_31.2 [concrete = constants.%bound_method.2e9] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.call: init %f64.b55 = call %bound_method.loc7_31.4(%.loc7_31.2) [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc7_31.3: ref %f64.b55 = temporary_storage -// CHECK:STDOUT: %.loc7_31.4: ref %f64.b55 = temporary %.loc7_31.3, %Float.as.Copy.impl.Op.call [concrete = constants.%.a2a] -// CHECK:STDOUT: %addr.loc7_34.1: %ptr.f8a = addr_of %.loc7_31.4 [concrete = constants.%addr] -// CHECK:STDOUT: %.loc7_34.1: ref %f64.b55 = temporary_storage -// CHECK:STDOUT: %addr.loc7_34.2: %ptr.f8a = addr_of %.loc7_34.1 +// CHECK:STDOUT: %bound_method.loc7_31.4: = bound_method %.loc7_31.2, %specific_fn.loc7_31.2 [concrete = constants.%bound_method.7f2] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.call: init %f64.dc1 = call %bound_method.loc7_31.4(%.loc7_31.2) [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc7_31.3: ref %f64.dc1 = temporary_storage +// CHECK:STDOUT: %.loc7_31.4: ref %f64.dc1 = temporary %.loc7_31.3, %Float.as.Copy.impl.Op.call [concrete = constants.%.011] +// CHECK:STDOUT: %addr.loc7_34.1: %ptr.749 = addr_of %.loc7_31.4 [concrete = constants.%addr] +// CHECK:STDOUT: %.loc7_34.1: ref %f64.dc1 = temporary_storage +// CHECK:STDOUT: %addr.loc7_34.2: %ptr.749 = addr_of %.loc7_34.1 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc7_34.1, %addr.loc7_34.2) -// CHECK:STDOUT: %.loc7_34.2: init %f64.b55 to %.loc7_34.1 = mark_in_place_init %foo__carbon_thunk.call -// CHECK:STDOUT: %f64: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc7_34.3: ref %f64.b55 = temporary %.loc7_34.1, %.loc7_34.2 -// CHECK:STDOUT: %.loc7_34.4: %f64.b55 = acquire_value %.loc7_34.3 -// CHECK:STDOUT: %d: %f64.b55 = value_binding d, %.loc7_34.4 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc7_34.3, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %.loc7_34.2: init %f64.dc1 to %.loc7_34.1 = mark_in_place_init %foo__carbon_thunk.call +// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc7_34.3: ref %f64.dc1 = temporary %.loc7_34.1, %.loc7_34.2 +// CHECK:STDOUT: %.loc7_34.4: %f64.dc1 = acquire_value %.loc7_34.3 +// CHECK:STDOUT: %d: %f64.dc1 = value_binding d, %.loc7_34.4 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc7_34.3, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc7_34: init %empty_tuple.type = call %Destroy.Op.bound(%.loc7_34.3) -// CHECK:STDOUT: %Destroy.Op.call.loc7_31: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.a2a) +// CHECK:STDOUT: %Destroy.Op.call.loc7_31: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.011) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @foo(%a.param: %f64.b55) -> out %return.param: %f64.b55; +// CHECK:STDOUT: fn @foo(%a.param: %f64.dc1) -> out %return.param: %f64.dc1; // CHECK:STDOUT: -// CHECK:STDOUT: fn @foo__carbon_thunk(%a.param: %ptr.f8a, %return.param: %ptr.f8a); +// CHECK:STDOUT: fn @foo__carbon_thunk(%a.param: %ptr.749, %return.param: %ptr.749); // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.Op.loc7_34.1(%self.param: ref %f64.794) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_34.2(%self.param: ref %f64.b55) { +// CHECK:STDOUT: fn @Destroy.Op.loc7_34.2(%self.param: ref %f64.dc1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2251,40 +2251,40 @@ fn F() { // CHECK:STDOUT: %Float.type: type = generic_class_type @Float [concrete] // CHECK:STDOUT: %Float.generic: %Float.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %ptr.f8a: type = ptr_type %f64.b55 [concrete] -// CHECK:STDOUT: %pattern_type.0df: type = pattern_type %ptr.f8a [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %ptr.749: type = ptr_type %f64.dc1 [concrete] +// CHECK:STDOUT: %pattern_type.a3b: type = pattern_type %ptr.749 [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %f64.794: type = float_type %int_64, f64 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.857: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.b55)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.91e: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.dc1)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.83f: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.857 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.83f) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.096: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.b55, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.119: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.096, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.43c: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.91e = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.43c) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6c5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.dc1, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.2d7: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6c5, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.125: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bfc: %Float.as.Copy.impl.Op.type.125 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.811: = impl_witness imports.%Copy.impl_witness_table.384, @Float.as.Copy.impl(%int_64) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.7a5: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_64) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bcc: %Float.as.Copy.impl.Op.type.7a5 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f64.b55, (%Copy.impl_witness.811) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.286: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.c7d: type = fn_type_with_self_type %Copy.WithSelf.Op.type.286, %Copy.facet [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.bcc, @Float.as.Copy.impl.Op(%int_64) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.ff3: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N) [symbolic] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.d93: %Float.as.Copy.impl.Op.type.ff3 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.873: = impl_witness imports.%Copy.impl_witness_table.4e8, @Float.as.Copy.impl(%int_64) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.7aa: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_64) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.9c2: %Float.as.Copy.impl.Op.type.7aa = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f64.dc1, (%Copy.impl_witness.873) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.2ca: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.557: type = fn_type_with_self_type %Copy.WithSelf.Op.type.2ca, %Copy.facet [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.9c2, @Float.as.Copy.impl.Op(%int_64) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc15_19.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2303,32 +2303,32 @@ fn F() { // 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.Float: %Float.type = import_ref Core//prelude/parts/float, Float, loaded [concrete = constants.%Float.generic] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.0df = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.0df = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0df = value_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0df = at_binding_pattern r#return, %return.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.a3b = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.a3b = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.a3b = value_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.a3b = at_binding_pattern r#return, %return.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %a.param: %ptr.f8a = value_param call_param0 -// CHECK:STDOUT: %.1: type = splice_block constants.%ptr.f8a [concrete = constants.%ptr.f8a] { +// CHECK:STDOUT: %a.param: %ptr.749 = value_param call_param0 +// CHECK:STDOUT: %.1: type = splice_block constants.%ptr.749 [concrete = constants.%ptr.749] { // CHECK:STDOUT: %int_64.2: Core.IntLiteral = int_value 64 [concrete = constants.%int_64] -// CHECK:STDOUT: %f64.3: type = class_type @Float, @Float(constants.%int_64) [concrete = constants.%f64.b55] -// CHECK:STDOUT: %f64.4: type = type_literal %f64.3 [concrete = constants.%f64.b55] +// CHECK:STDOUT: %f64.3: type = class_type @Float, @Float(constants.%int_64) [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %f64.4: type = type_literal %f64.3 [concrete = constants.%f64.dc1] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.f8a = value_binding a, %a.param -// CHECK:STDOUT: %return.param: %ptr.f8a = value_param call_param1 -// CHECK:STDOUT: %.2: type = splice_block constants.%ptr.f8a [concrete = constants.%ptr.f8a] { +// CHECK:STDOUT: %a: %ptr.749 = value_binding a, %a.param +// CHECK:STDOUT: %return.param: %ptr.749 = value_param call_param1 +// CHECK:STDOUT: %.2: type = splice_block constants.%ptr.749 [concrete = constants.%ptr.749] { // CHECK:STDOUT: %int_64.1: Core.IntLiteral = int_value 64 [concrete = constants.%int_64] -// CHECK:STDOUT: %f64.1: type = class_type @Float, @Float(constants.%int_64) [concrete = constants.%f64.b55] -// CHECK:STDOUT: %f64.2: type = type_literal %f64.1 [concrete = constants.%f64.b55] +// CHECK:STDOUT: %f64.1: type = class_type @Float, @Float(constants.%int_64) [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %f64.2: type = type_literal %f64.1 [concrete = constants.%f64.dc1] // CHECK:STDOUT: } -// CHECK:STDOUT: %return: %ptr.f8a = value_binding r#return, %return.param +// CHECK:STDOUT: %return: %ptr.749 = value_binding r#return, %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.63c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.63c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.461: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.125) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.bfc)] -// CHECK:STDOUT: %Copy.impl_witness_table.384 = impl_witness_table (%Core.import_ref.461), @Float.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e69: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.ff3) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.d93)] +// CHECK:STDOUT: %Copy.impl_witness_table.4e8 = impl_witness_table (%Core.import_ref.e69), @Float.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2350,38 +2350,38 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 18e307 [concrete = constants.%float] -// CHECK:STDOUT: %impl.elem0.loc15_11.1: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] +// CHECK:STDOUT: %impl.elem0.loc15_11.1: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] // CHECK:STDOUT: %bound_method.loc15_11.1: = bound_method %float, %impl.elem0.loc15_11.1 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc15_11.1: = specific_function %impl.elem0.loc15_11.1, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_11.2: = bound_method %float, %specific_fn.loc15_11.1 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.b55 = call %bound_method.loc15_11.2(%float) [concrete = ] -// CHECK:STDOUT: %.loc15_11.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = ] -// CHECK:STDOUT: %.loc15_11.2: %f64.b55 = converted %float, %.loc15_11.1 [concrete = ] -// CHECK:STDOUT: %impl.elem0.loc15_11.2: %.c7d = impl_witness_access constants.%Copy.impl_witness.811, element0 [concrete = constants.%Float.as.Copy.impl.Op.bcc] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.dc1 = call %bound_method.loc15_11.2(%float) [concrete = ] +// CHECK:STDOUT: %.loc15_11.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = ] +// CHECK:STDOUT: %.loc15_11.2: %f64.dc1 = converted %float, %.loc15_11.1 [concrete = ] +// CHECK:STDOUT: %impl.elem0.loc15_11.2: %.557 = impl_witness_access constants.%Copy.impl_witness.873, element0 [concrete = constants.%Float.as.Copy.impl.Op.9c2] // CHECK:STDOUT: %bound_method.loc15_11.3: = bound_method %.loc15_11.2, %impl.elem0.loc15_11.2 [concrete = ] // CHECK:STDOUT: %specific_fn.loc15_11.2: = specific_function %impl.elem0.loc15_11.2, @Float.as.Copy.impl.Op(constants.%int_64) [concrete = constants.%Float.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc15_11.4: = bound_method %.loc15_11.2, %specific_fn.loc15_11.2 [concrete = ] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.call: init %f64.b55 = call %bound_method.loc15_11.4(%.loc15_11.2) [concrete = ] -// CHECK:STDOUT: %.loc15_11.3: ref %f64.b55 = temporary_storage -// CHECK:STDOUT: %.loc15_11.4: ref %f64.b55 = temporary %.loc15_11.3, %Float.as.Copy.impl.Op.call [concrete = ] -// CHECK:STDOUT: %addr.loc15_19.1: %ptr.f8a = addr_of %.loc15_11.4 [concrete = ] -// CHECK:STDOUT: %.loc15_19.1: ref %f64.b55 = temporary_storage -// CHECK:STDOUT: %addr.loc15_19.2: %ptr.f8a = addr_of %.loc15_19.1 +// CHECK:STDOUT: %Float.as.Copy.impl.Op.call: init %f64.dc1 = call %bound_method.loc15_11.4(%.loc15_11.2) [concrete = ] +// CHECK:STDOUT: %.loc15_11.3: ref %f64.dc1 = temporary_storage +// CHECK:STDOUT: %.loc15_11.4: ref %f64.dc1 = temporary %.loc15_11.3, %Float.as.Copy.impl.Op.call [concrete = ] +// CHECK:STDOUT: %addr.loc15_19.1: %ptr.749 = addr_of %.loc15_11.4 [concrete = ] +// CHECK:STDOUT: %.loc15_19.1: ref %f64.dc1 = temporary_storage +// CHECK:STDOUT: %addr.loc15_19.2: %ptr.749 = addr_of %.loc15_19.1 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc15_19.1, %addr.loc15_19.2) -// CHECK:STDOUT: %.loc15_19.2: init %f64.b55 to %.loc15_19.1 = mark_in_place_init %foo__carbon_thunk.call -// CHECK:STDOUT: %.loc15_19.3: ref %f64.b55 = temporary %.loc15_19.1, %.loc15_19.2 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc15_19.3, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %.loc15_19.2: init %f64.dc1 to %.loc15_19.1 = mark_in_place_init %foo__carbon_thunk.call +// CHECK:STDOUT: %.loc15_19.3: ref %f64.dc1 = temporary %.loc15_19.1, %.loc15_19.2 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc15_19.3, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc15_19.3) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @foo(%a.param: %f64.b55) -> out %return.param: %f64.b55; +// CHECK:STDOUT: fn @foo(%a.param: %f64.dc1) -> out %return.param: %f64.dc1; // CHECK:STDOUT: -// CHECK:STDOUT: fn @foo__carbon_thunk(%a.param: %ptr.f8a, %return.param: %ptr.f8a); +// CHECK:STDOUT: fn @foo__carbon_thunk(%a.param: %ptr.749, %return.param: %ptr.749); // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.Op.loc15_19.1(%self.param: ref %f64.794) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc15_19.2(%self.param: ref %f64.b55) { +// CHECK:STDOUT: fn @Destroy.Op.loc15_19.2(%self.param: ref %f64.dc1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -2401,13 +2401,13 @@ fn F() { // CHECK:STDOUT: %PassNoFields.cpp_overload_set.type: type = cpp_overload_set_type @PassNoFields.cpp_overload_set [concrete] // CHECK:STDOUT: %PassNoFields.cpp_overload_set.value: %PassNoFields.cpp_overload_set.type = cpp_overload_set_value @PassNoFields.cpp_overload_set [concrete] // CHECK:STDOUT: %NoFields: type = class_type @NoFields [concrete] -// CHECK:STDOUT: %ptr.e71: type = ptr_type %NoFields [concrete] -// CHECK:STDOUT: %pattern_type.730: type = pattern_type %ptr.e71 [concrete] +// CHECK:STDOUT: %ptr.027: type = ptr_type %NoFields [concrete] +// CHECK:STDOUT: %pattern_type.80e: type = pattern_type %ptr.027 [concrete] // CHECK:STDOUT: %PassNoFields__carbon_thunk.type: type = fn_type @PassNoFields__carbon_thunk [concrete] // CHECK:STDOUT: %PassNoFields__carbon_thunk: %PassNoFields__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %NoFields.val: %NoFields = struct_value () [concrete] -// CHECK:STDOUT: %.759: ref %NoFields = temporary invalid, %NoFields.val [concrete] +// CHECK:STDOUT: %.c7e: ref %NoFields = temporary invalid, %NoFields.val [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] @@ -2425,11 +2425,11 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %PassNoFields.cpp_overload_set.value: %PassNoFields.cpp_overload_set.type = cpp_overload_set_value @PassNoFields.cpp_overload_set [concrete = constants.%PassNoFields.cpp_overload_set.value] // CHECK:STDOUT: %PassNoFields__carbon_thunk.decl: %PassNoFields__carbon_thunk.type = fn_decl @PassNoFields__carbon_thunk [concrete = constants.%PassNoFields__carbon_thunk] { -// CHECK:STDOUT: %s.param_patt: %pattern_type.730 = value_param_pattern [concrete] -// CHECK:STDOUT: %s.patt: %pattern_type.730 = at_binding_pattern s, %s.param_patt [concrete] +// CHECK:STDOUT: %s.param_patt: %pattern_type.80e = value_param_pattern [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.80e = at_binding_pattern s, %s.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %s.param: %ptr.e71 = value_param call_param0 -// CHECK:STDOUT: %s: %ptr.e71 = value_binding s, %s.param +// CHECK:STDOUT: %s.param: %ptr.027 = value_param call_param0 +// CHECK:STDOUT: %s: %ptr.027 = value_binding s, %s.param // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } @@ -2495,10 +2495,10 @@ fn F() { // CHECK:STDOUT: %.loc9_21.2: ref %NoFields = temporary_storage // CHECK:STDOUT: %.loc9_21.3: init %NoFields to %.loc9_21.2 = class_init () [concrete = constants.%NoFields.val] // CHECK:STDOUT: %.loc9_21.4: init %NoFields = converted %.loc9_21.1, %.loc9_21.3 [concrete = constants.%NoFields.val] -// CHECK:STDOUT: %.loc9_21.5: ref %NoFields = temporary %.loc9_21.2, %.loc9_21.4 [concrete = constants.%.759] +// CHECK:STDOUT: %.loc9_21.5: ref %NoFields = temporary %.loc9_21.2, %.loc9_21.4 [concrete = constants.%.c7e] // CHECK:STDOUT: %.loc9_21.6: %NoFields = acquire_value %.loc9_21.5 [concrete = constants.%NoFields.val] // CHECK:STDOUT: %.loc9_21.7: ref %NoFields = value_as_ref %.loc9_21.6 -// CHECK:STDOUT: %addr.loc9: %ptr.e71 = addr_of %.loc9_21.7 +// CHECK:STDOUT: %addr.loc9: %ptr.027 = addr_of %.loc9_21.7 // CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassNoFields.ref.loc11: %PassNoFields.cpp_overload_set.type = name_ref PassNoFields, imports.%PassNoFields.cpp_overload_set.value [concrete = constants.%PassNoFields.cpp_overload_set.value] @@ -2506,10 +2506,10 @@ fn F() { // CHECK:STDOUT: %.loc11_20.1: ref %NoFields = temporary_storage // CHECK:STDOUT: %.loc11_20.2: init %NoFields to %.loc11_20.1 = class_init () [concrete = constants.%NoFields.val] // CHECK:STDOUT: %.loc11_20.3: init %NoFields = converted %value.ref, %.loc11_20.2 [concrete = constants.%NoFields.val] -// CHECK:STDOUT: %.loc11_20.4: ref %NoFields = temporary %.loc11_20.1, %.loc11_20.3 [concrete = constants.%.759] +// CHECK:STDOUT: %.loc11_20.4: ref %NoFields = temporary %.loc11_20.1, %.loc11_20.3 [concrete = constants.%.c7e] // CHECK:STDOUT: %.loc11_20.5: %NoFields = acquire_value %.loc11_20.4 [concrete = constants.%NoFields.val] // CHECK:STDOUT: %.loc11_20.6: ref %NoFields = value_as_ref %.loc11_20.5 -// CHECK:STDOUT: %addr.loc11: %ptr.e71 = addr_of %.loc11_20.6 +// CHECK:STDOUT: %addr.loc11: %ptr.027 = addr_of %.loc11_20.6 // CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc11: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc11) // CHECK:STDOUT: %Cpp.ref.loc13: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassNoFields.ref.loc13: %PassNoFields.cpp_overload_set.type = name_ref PassNoFields, imports.%PassNoFields.cpp_overload_set.value [concrete = constants.%PassNoFields.cpp_overload_set.value] @@ -2517,10 +2517,10 @@ fn F() { // CHECK:STDOUT: %.loc13_20.1: ref %NoFields = temporary_storage // CHECK:STDOUT: %.loc13_20.2: init %NoFields to %.loc13_20.1 = class_init () [concrete = constants.%NoFields.val] // CHECK:STDOUT: %.loc13_20.3: init %NoFields = converted %reference.ref, %.loc13_20.2 [concrete = constants.%NoFields.val] -// CHECK:STDOUT: %.loc13_20.4: ref %NoFields = temporary %.loc13_20.1, %.loc13_20.3 [concrete = constants.%.759] +// CHECK:STDOUT: %.loc13_20.4: ref %NoFields = temporary %.loc13_20.1, %.loc13_20.3 [concrete = constants.%.c7e] // CHECK:STDOUT: %.loc13_20.5: %NoFields = acquire_value %.loc13_20.4 [concrete = constants.%NoFields.val] // CHECK:STDOUT: %.loc13_20.6: ref %NoFields = value_as_ref %.loc13_20.5 -// CHECK:STDOUT: %addr.loc13: %ptr.e71 = addr_of %.loc13_20.6 +// CHECK:STDOUT: %addr.loc13: %ptr.027 = addr_of %.loc13_20.6 // CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc13: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc13) // CHECK:STDOUT: %Cpp.ref.loc15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassNoFields.ref.loc15: %PassNoFields.cpp_overload_set.type = name_ref PassNoFields, imports.%PassNoFields.cpp_overload_set.value [concrete = constants.%PassNoFields.cpp_overload_set.value] @@ -2531,10 +2531,10 @@ fn F() { // CHECK:STDOUT: %.loc15_30.3: ref %NoFields = temporary_storage // CHECK:STDOUT: %.loc15_30.4: init %NoFields to %.loc15_30.3 = class_init () [concrete = constants.%NoFields.val] // CHECK:STDOUT: %.loc15_30.5: init %NoFields = converted %MakeEmpty.call, %.loc15_30.4 [concrete = constants.%NoFields.val] -// CHECK:STDOUT: %.loc15_30.6: ref %NoFields = temporary %.loc15_30.3, %.loc15_30.5 [concrete = constants.%.759] +// CHECK:STDOUT: %.loc15_30.6: ref %NoFields = temporary %.loc15_30.3, %.loc15_30.5 [concrete = constants.%.c7e] // CHECK:STDOUT: %.loc15_30.7: %NoFields = acquire_value %.loc15_30.6 [concrete = constants.%NoFields.val] // CHECK:STDOUT: %.loc15_30.8: ref %NoFields = value_as_ref %.loc15_30.7 -// CHECK:STDOUT: %addr.loc15: %ptr.e71 = addr_of %.loc15_30.8 +// CHECK:STDOUT: %addr.loc15: %ptr.027 = addr_of %.loc15_30.8 // CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc15: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc15) // CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc15_30.2, constants.%Destroy.Op // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc15_30.2) @@ -2543,7 +2543,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: fn @PassNoFields(%s.param: %NoFields); // CHECK:STDOUT: -// CHECK:STDOUT: fn @PassNoFields__carbon_thunk(%s.param: %ptr.e71); +// CHECK:STDOUT: fn @PassNoFields__carbon_thunk(%s.param: %ptr.027); // CHECK:STDOUT: // CHECK:STDOUT: fn @NoFields.cpp_destructor(%self.param: ref %NoFields) = "no_op"; // CHECK:STDOUT: @@ -2557,13 +2557,13 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %struct_type.a.b.c.632: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [concrete] -// CHECK:STDOUT: %.416: Core.Form = init_form %struct_type.a.b.c.632 [concrete] -// CHECK:STDOUT: %pattern_type.5d6: type = pattern_type %struct_type.a.b.c.632 [concrete] +// CHECK:STDOUT: %struct_type.a.b.c.fde: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [concrete] +// CHECK:STDOUT: %.5b5: Core.Form = init_form %struct_type.a.b.c.fde [concrete] +// CHECK:STDOUT: %pattern_type.9c3: type = pattern_type %struct_type.a.b.c.fde [concrete] // CHECK:STDOUT: %MakeThreeFields.type: type = fn_type @MakeThreeFields [concrete] // CHECK:STDOUT: %MakeThreeFields: %MakeThreeFields.type = struct_value () [concrete] // CHECK:STDOUT: %ThreeFields.type: type = fn_type @ThreeFields.loc8 [concrete] -// CHECK:STDOUT: %ThreeFields.cb3: %ThreeFields.type = struct_value () [concrete] +// CHECK:STDOUT: %ThreeFields.16d: %ThreeFields.type = struct_value () [concrete] // CHECK:STDOUT: %PassThreeFields.cpp_overload_set.type: type = cpp_overload_set_type @PassThreeFields.cpp_overload_set [concrete] // CHECK:STDOUT: %PassThreeFields.cpp_overload_set.value: %PassThreeFields.cpp_overload_set.type = cpp_overload_set_value @PassThreeFields.cpp_overload_set [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] @@ -2571,16 +2571,16 @@ fn F() { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %struct_type.a.b.c.90d: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral, .c: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.ec0: %struct_type.a.b.c.90d = struct_value (%int_1, %int_2, %int_3) [concrete] -// CHECK:STDOUT: %ThreeFields.559: type = class_type @ThreeFields.1 [concrete] -// CHECK:STDOUT: %ptr.f54: type = ptr_type %ThreeFields.559 [concrete] -// CHECK:STDOUT: %pattern_type.905: type = pattern_type %ptr.f54 [concrete] +// CHECK:STDOUT: %ThreeFields.1b4: type = class_type @ThreeFields.1 [concrete] +// CHECK:STDOUT: %ptr.6c3: type = ptr_type %ThreeFields.1b4 [concrete] +// CHECK:STDOUT: %pattern_type.ecf: type = pattern_type %ptr.6c3 [concrete] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.type: type = fn_type @PassThreeFields__carbon_thunk [concrete] // CHECK:STDOUT: %PassThreeFields__carbon_thunk: %PassThreeFields__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ThreeFields.elem: type = unbound_element_type %ThreeFields.559, %i32 [concrete] -// CHECK:STDOUT: %.92f: type = custom_layout_type {size=12, align=4, .a@0: %i32, .b@4: %i32, .c@8: %i32} [concrete] -// CHECK:STDOUT: %complete_type.20a: = complete_type_witness %.92f [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ThreeFields.elem: type = unbound_element_type %ThreeFields.1b4, %i32 [concrete] +// CHECK:STDOUT: %.8e5: type = custom_layout_type {size=12, align=4, .a@0: %i32, .b@4: %i32, .c@8: %i32} [concrete] +// CHECK:STDOUT: %complete_type.7b4: = complete_type_witness %.8e5 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %struct_type.b.c.a: type = struct_type {.b: Core.IntLiteral, .c: Core.IntLiteral, .a: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.d34: %struct_type.b.c.a = struct_value (%int_1, %int_2, %int_3) [concrete] // CHECK:STDOUT: } @@ -2599,13 +2599,13 @@ fn F() { // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %PassThreeFields.cpp_overload_set.value: %PassThreeFields.cpp_overload_set.type = cpp_overload_set_value @PassThreeFields.cpp_overload_set [concrete = constants.%PassThreeFields.cpp_overload_set.value] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.decl: %PassThreeFields__carbon_thunk.type = fn_decl @PassThreeFields__carbon_thunk [concrete = constants.%PassThreeFields__carbon_thunk] { -// CHECK:STDOUT: %t.param_patt: %pattern_type.905 = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: %pattern_type.905 = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: %pattern_type.ecf = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.ecf = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %t.param: %ptr.f54 = value_param call_param0 -// CHECK:STDOUT: %t: %ptr.f54 = value_binding t, %t.param +// CHECK:STDOUT: %t.param: %ptr.6c3 = value_param call_param0 +// CHECK:STDOUT: %t: %ptr.6c3 = value_binding t, %t.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -2620,39 +2620,39 @@ fn F() { // CHECK:STDOUT: import Cpp "struct_init.h" // CHECK:STDOUT: } // CHECK:STDOUT: %MakeThreeFields.decl: %MakeThreeFields.type = fn_decl @MakeThreeFields [concrete = constants.%MakeThreeFields] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.5d6 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.5d6 = return_slot_pattern %return.param_patt, %struct_type.a.b.c [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.9c3 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.9c3 = return_slot_pattern %return.param_patt, %struct_type.a.b.c [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc6_30: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc6_39: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc6_48: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b.c: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [concrete = constants.%struct_type.a.b.c.632] -// CHECK:STDOUT: %.loc6: Core.Form = init_form %struct_type.a.b.c [concrete = constants.%.416] -// CHECK:STDOUT: %return.param: ref %struct_type.a.b.c.632 = out_param call_param0 -// CHECK:STDOUT: %return: ref %struct_type.a.b.c.632 = return_slot %return.param +// CHECK:STDOUT: %struct_type.a.b.c: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [concrete = constants.%struct_type.a.b.c.fde] +// CHECK:STDOUT: %.loc6: Core.Form = init_form %struct_type.a.b.c [concrete = constants.%.5b5] +// CHECK:STDOUT: %return.param: ref %struct_type.a.b.c.fde = out_param call_param0 +// CHECK:STDOUT: %return: ref %struct_type.a.b.c.fde = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %ThreeFields.decl: %ThreeFields.type = fn_decl @ThreeFields.loc8 [concrete = constants.%ThreeFields.cb3] { -// CHECK:STDOUT: %value.param_patt: %pattern_type.5d6 = value_param_pattern [concrete] -// CHECK:STDOUT: %value.patt: %pattern_type.5d6 = at_binding_pattern value, %value.param_patt [concrete] -// CHECK:STDOUT: %reference.param_patt: %pattern_type.5d6 = ref_param_pattern [concrete] -// CHECK:STDOUT: %reference.patt: %pattern_type.5d6 = at_binding_pattern reference, %reference.param_patt [concrete] +// CHECK:STDOUT: %ThreeFields.decl: %ThreeFields.type = fn_decl @ThreeFields.loc8 [concrete = constants.%ThreeFields.16d] { +// CHECK:STDOUT: %value.param_patt: %pattern_type.9c3 = value_param_pattern [concrete] +// CHECK:STDOUT: %value.patt: %pattern_type.9c3 = at_binding_pattern value, %value.param_patt [concrete] +// CHECK:STDOUT: %reference.param_patt: %pattern_type.9c3 = ref_param_pattern [concrete] +// CHECK:STDOUT: %reference.patt: %pattern_type.9c3 = at_binding_pattern reference, %reference.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %value.param: %struct_type.a.b.c.632 = value_param call_param0 -// CHECK:STDOUT: %.loc8_49: type = splice_block %struct_type.a.b.c.loc8_49 [concrete = constants.%struct_type.a.b.c.632] { +// CHECK:STDOUT: %value.param: %struct_type.a.b.c.fde = value_param call_param0 +// CHECK:STDOUT: %.loc8_49: type = splice_block %struct_type.a.b.c.loc8_49 [concrete = constants.%struct_type.a.b.c.fde] { // CHECK:STDOUT: %i32.loc8_28: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc8_37: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc8_46: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b.c.loc8_49: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [concrete = constants.%struct_type.a.b.c.632] +// CHECK:STDOUT: %struct_type.a.b.c.loc8_49: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [concrete = constants.%struct_type.a.b.c.fde] // CHECK:STDOUT: } -// CHECK:STDOUT: %value: %struct_type.a.b.c.632 = value_binding value, %value.param -// CHECK:STDOUT: %reference.param: ref %struct_type.a.b.c.632 = ref_param call_param1 -// CHECK:STDOUT: %.loc8_93: type = splice_block %struct_type.a.b.c.loc8_93 [concrete = constants.%struct_type.a.b.c.632] { +// CHECK:STDOUT: %value: %struct_type.a.b.c.fde = value_binding value, %value.param +// CHECK:STDOUT: %reference.param: ref %struct_type.a.b.c.fde = ref_param call_param1 +// CHECK:STDOUT: %.loc8_93: type = splice_block %struct_type.a.b.c.loc8_93 [concrete = constants.%struct_type.a.b.c.fde] { // CHECK:STDOUT: %i32.loc8_72: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc8_81: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc8_90: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b.c.loc8_93: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [concrete = constants.%struct_type.a.b.c.632] +// CHECK:STDOUT: %struct_type.a.b.c.loc8_93: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [concrete = constants.%struct_type.a.b.c.fde] // CHECK:STDOUT: } -// CHECK:STDOUT: %reference: ref %struct_type.a.b.c.632 = ref_binding reference, %reference.param +// CHECK:STDOUT: %reference: ref %struct_type.a.b.c.fde = ref_binding reference, %reference.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2669,17 +2669,17 @@ fn F() { // CHECK:STDOUT: %i32.5: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %i32.6: type = type_literal %i32.5 [concrete = constants.%i32] // CHECK:STDOUT: %.3: %ThreeFields.elem = field_decl c, element2 [concrete] -// CHECK:STDOUT: %.4: type = custom_layout_type {size=12, align=4, .a@0: %i32, .b@4: %i32, .c@8: %i32} [concrete = constants.%.92f] -// CHECK:STDOUT: %complete_type: = complete_type_witness %.4 [concrete = constants.%complete_type.20a] +// CHECK:STDOUT: %.4: type = custom_layout_type {size=12, align=4, .a@0: %i32, .b@4: %i32, .c@8: %i32} [concrete = constants.%.8e5] +// CHECK:STDOUT: %complete_type: = complete_type_witness %.4 [concrete = constants.%complete_type.7b4] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @MakeThreeFields() -> out %return.param: %struct_type.a.b.c.632; +// CHECK:STDOUT: fn @MakeThreeFields() -> out %return.param: %struct_type.a.b.c.fde; // CHECK:STDOUT: -// CHECK:STDOUT: fn @ThreeFields.loc8(%value.param: %struct_type.a.b.c.632, %reference.param: ref %struct_type.a.b.c.632) { +// CHECK:STDOUT: fn @ThreeFields.loc8(%value.param: %struct_type.a.b.c.fde, %reference.param: ref %struct_type.a.b.c.fde) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Cpp.ref.loc20: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassThreeFields.ref.loc20: %PassThreeFields.cpp_overload_set.type = name_ref PassThreeFields, imports.%PassThreeFields.cpp_overload_set.value [concrete = constants.%PassThreeFields.cpp_overload_set.value] @@ -2687,28 +2687,28 @@ fn F() { // CHECK:STDOUT: %int_2.loc20: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] // CHECK:STDOUT: %int_3.loc20: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] // CHECK:STDOUT: %.loc20_46.1: %struct_type.a.b.c.90d = struct_literal (%int_1.loc20, %int_2.loc20, %int_3.loc20) [concrete = constants.%struct.ec0] -// CHECK:STDOUT: %.loc20_46.2: %ThreeFields.559 = converted %.loc20_46.1, [concrete = ] -// CHECK:STDOUT: %addr.loc20: %ptr.f54 = addr_of [concrete = ] +// CHECK:STDOUT: %.loc20_46.2: %ThreeFields.1b4 = converted %.loc20_46.1, [concrete = ] +// CHECK:STDOUT: %addr.loc20: %ptr.6c3 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc20: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc20) // CHECK:STDOUT: %Cpp.ref.loc33: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassThreeFields.ref.loc33: %PassThreeFields.cpp_overload_set.type = name_ref PassThreeFields, imports.%PassThreeFields.cpp_overload_set.value [concrete = constants.%PassThreeFields.cpp_overload_set.value] -// CHECK:STDOUT: %value.ref: %struct_type.a.b.c.632 = name_ref value, %value -// CHECK:STDOUT: %.loc33: %ThreeFields.559 = converted %value.ref, [concrete = ] -// CHECK:STDOUT: %addr.loc33: %ptr.f54 = addr_of [concrete = ] +// CHECK:STDOUT: %value.ref: %struct_type.a.b.c.fde = name_ref value, %value +// CHECK:STDOUT: %.loc33: %ThreeFields.1b4 = converted %value.ref, [concrete = ] +// CHECK:STDOUT: %addr.loc33: %ptr.6c3 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc33: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc33) // CHECK:STDOUT: %Cpp.ref.loc46: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassThreeFields.ref.loc46: %PassThreeFields.cpp_overload_set.type = name_ref PassThreeFields, imports.%PassThreeFields.cpp_overload_set.value [concrete = constants.%PassThreeFields.cpp_overload_set.value] -// CHECK:STDOUT: %reference.ref: ref %struct_type.a.b.c.632 = name_ref reference, %reference -// CHECK:STDOUT: %.loc46: %ThreeFields.559 = converted %reference.ref, [concrete = ] -// CHECK:STDOUT: %addr.loc46: %ptr.f54 = addr_of [concrete = ] +// CHECK:STDOUT: %reference.ref: ref %struct_type.a.b.c.fde = name_ref reference, %reference +// CHECK:STDOUT: %.loc46: %ThreeFields.1b4 = converted %reference.ref, [concrete = ] +// CHECK:STDOUT: %addr.loc46: %ptr.6c3 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc46: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc46) // CHECK:STDOUT: %Cpp.ref.loc59: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassThreeFields.ref.loc59: %PassThreeFields.cpp_overload_set.type = name_ref PassThreeFields, imports.%PassThreeFields.cpp_overload_set.value [concrete = constants.%PassThreeFields.cpp_overload_set.value] // CHECK:STDOUT: %MakeThreeFields.ref: %MakeThreeFields.type = name_ref MakeThreeFields, file.%MakeThreeFields.decl [concrete = constants.%MakeThreeFields] -// CHECK:STDOUT: %.loc59_39.1: ref %struct_type.a.b.c.632 = temporary_storage -// CHECK:STDOUT: %MakeThreeFields.call: init %struct_type.a.b.c.632 to %.loc59_39.1 = call %MakeThreeFields.ref() -// CHECK:STDOUT: %.loc59_39.2: %ThreeFields.559 = converted %MakeThreeFields.call, [concrete = ] -// CHECK:STDOUT: %addr.loc59: %ptr.f54 = addr_of [concrete = ] +// CHECK:STDOUT: %.loc59_39.1: ref %struct_type.a.b.c.fde = temporary_storage +// CHECK:STDOUT: %MakeThreeFields.call: init %struct_type.a.b.c.fde to %.loc59_39.1 = call %MakeThreeFields.ref() +// CHECK:STDOUT: %.loc59_39.2: %ThreeFields.1b4 = converted %MakeThreeFields.call, [concrete = ] +// CHECK:STDOUT: %addr.loc59: %ptr.6c3 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc59: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc59) // CHECK:STDOUT: %Cpp.ref.loc72: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassThreeFields.ref.loc72: %PassThreeFields.cpp_overload_set.type = name_ref PassThreeFields, imports.%PassThreeFields.cpp_overload_set.value [concrete = constants.%PassThreeFields.cpp_overload_set.value] @@ -2716,15 +2716,15 @@ fn F() { // CHECK:STDOUT: %int_2.loc72: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] // CHECK:STDOUT: %int_3.loc72: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] // CHECK:STDOUT: %.loc72_46.1: %struct_type.b.c.a = struct_literal (%int_1.loc72, %int_2.loc72, %int_3.loc72) [concrete = constants.%struct.d34] -// CHECK:STDOUT: %.loc72_46.2: %ThreeFields.559 = converted %.loc72_46.1, [concrete = ] -// CHECK:STDOUT: %addr.loc72: %ptr.f54 = addr_of [concrete = ] +// CHECK:STDOUT: %.loc72_46.2: %ThreeFields.1b4 = converted %.loc72_46.1, [concrete = ] +// CHECK:STDOUT: %addr.loc72: %ptr.6c3 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc72: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc72) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @PassThreeFields(%t.param: %ThreeFields.559); +// CHECK:STDOUT: fn @PassThreeFields(%t.param: %ThreeFields.1b4); // CHECK:STDOUT: -// CHECK:STDOUT: fn @PassThreeFields__carbon_thunk(%t.param: %ptr.f54); +// CHECK:STDOUT: fn @PassThreeFields__carbon_thunk(%t.param: %ptr.6c3); // CHECK:STDOUT: // CHECK:STDOUT: --- fail_struct_init_field_mismatch.carbon // CHECK:STDOUT: @@ -2846,27 +2846,27 @@ fn F() { // CHECK:STDOUT: %PassNoFields.cpp_overload_set.type: type = cpp_overload_set_type @PassNoFields.cpp_overload_set [concrete] // CHECK:STDOUT: %PassNoFields.cpp_overload_set.value: %PassNoFields.cpp_overload_set.type = cpp_overload_set_value @PassNoFields.cpp_overload_set [concrete] // CHECK:STDOUT: %NoFields: type = class_type @NoFields [concrete] -// CHECK:STDOUT: %ptr.e71: type = ptr_type %NoFields [concrete] -// CHECK:STDOUT: %pattern_type.730: type = pattern_type %ptr.e71 [concrete] +// CHECK:STDOUT: %ptr.027: type = ptr_type %NoFields [concrete] +// CHECK:STDOUT: %pattern_type.80e: type = pattern_type %ptr.027 [concrete] // CHECK:STDOUT: %PassNoFields__carbon_thunk.type: type = fn_type @PassNoFields__carbon_thunk [concrete] // CHECK:STDOUT: %PassNoFields__carbon_thunk: %PassNoFields__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.ff9: type = tuple_type (type, type, type) [concrete] -// CHECK:STDOUT: %tuple.27c: %tuple.type.ff9 = tuple_value (%i32, %i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.05f: type = tuple_type (%i32, %i32, %i32) [concrete] -// CHECK:STDOUT: %.fd3: Core.Form = init_form %tuple.type.05f [concrete] -// CHECK:STDOUT: %pattern_type.776: type = pattern_type %tuple.type.05f [concrete] +// CHECK:STDOUT: %tuple.04d: %tuple.type.ff9 = tuple_value (%i32, %i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.555: type = tuple_type (%i32, %i32, %i32) [concrete] +// CHECK:STDOUT: %.718: Core.Form = init_form %tuple.type.555 [concrete] +// CHECK:STDOUT: %pattern_type.777: type = pattern_type %tuple.type.555 [concrete] // CHECK:STDOUT: %MakeThreeFields.type: type = fn_type @MakeThreeFields [concrete] // CHECK:STDOUT: %MakeThreeFields: %MakeThreeFields.type = struct_value () [concrete] // CHECK:STDOUT: %ThreeFields.type: type = fn_type @ThreeFields.loc67 [concrete] -// CHECK:STDOUT: %ThreeFields.cb3: %ThreeFields.type = struct_value () [concrete] +// CHECK:STDOUT: %ThreeFields.16d: %ThreeFields.type = struct_value () [concrete] // CHECK:STDOUT: %PassThreeFields.cpp_overload_set.type: type = cpp_overload_set_type @PassThreeFields.cpp_overload_set [concrete] // CHECK:STDOUT: %PassThreeFields.cpp_overload_set.value: %PassThreeFields.cpp_overload_set.type = cpp_overload_set_value @PassThreeFields.cpp_overload_set [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] @@ -2874,14 +2874,14 @@ fn F() { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %tuple.type.37f: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.2d5: %tuple.type.37f = tuple_value (%int_1, %int_2, %int_3) [concrete] -// CHECK:STDOUT: %ThreeFields.559: type = class_type @ThreeFields.1 [concrete] -// CHECK:STDOUT: %ptr.f54: type = ptr_type %ThreeFields.559 [concrete] -// CHECK:STDOUT: %pattern_type.905: type = pattern_type %ptr.f54 [concrete] +// CHECK:STDOUT: %ThreeFields.1b4: type = class_type @ThreeFields.1 [concrete] +// CHECK:STDOUT: %ptr.6c3: type = ptr_type %ThreeFields.1b4 [concrete] +// CHECK:STDOUT: %pattern_type.ecf: type = pattern_type %ptr.6c3 [concrete] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.type: type = fn_type @PassThreeFields__carbon_thunk [concrete] // CHECK:STDOUT: %PassThreeFields__carbon_thunk: %PassThreeFields__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ThreeFields.elem: type = unbound_element_type %ThreeFields.559, %i32 [concrete] -// CHECK:STDOUT: %.92f: type = custom_layout_type {size=12, align=4, .a@0: %i32, .b@4: %i32, .c@8: %i32} [concrete] -// CHECK:STDOUT: %complete_type.20a: = complete_type_witness %.92f [concrete] +// CHECK:STDOUT: %ThreeFields.elem: type = unbound_element_type %ThreeFields.1b4, %i32 [concrete] +// CHECK:STDOUT: %.8e5: type = custom_layout_type {size=12, align=4, .a@0: %i32, .b@4: %i32, .c@8: %i32} [concrete] +// CHECK:STDOUT: %complete_type.7b4: = complete_type_witness %.8e5 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2898,21 +2898,21 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %PassNoFields.cpp_overload_set.value: %PassNoFields.cpp_overload_set.type = cpp_overload_set_value @PassNoFields.cpp_overload_set [concrete = constants.%PassNoFields.cpp_overload_set.value] // CHECK:STDOUT: %PassNoFields__carbon_thunk.decl: %PassNoFields__carbon_thunk.type = fn_decl @PassNoFields__carbon_thunk [concrete = constants.%PassNoFields__carbon_thunk] { -// CHECK:STDOUT: %s.param_patt: %pattern_type.730 = value_param_pattern [concrete] -// CHECK:STDOUT: %s.patt: %pattern_type.730 = at_binding_pattern s, %s.param_patt [concrete] +// CHECK:STDOUT: %s.param_patt: %pattern_type.80e = value_param_pattern [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.80e = at_binding_pattern s, %s.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %s.param: %ptr.e71 = value_param call_param0 -// CHECK:STDOUT: %s: %ptr.e71 = value_binding s, %s.param +// CHECK:STDOUT: %s.param: %ptr.027 = value_param call_param0 +// CHECK:STDOUT: %s: %ptr.027 = value_binding s, %s.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %PassThreeFields.cpp_overload_set.value: %PassThreeFields.cpp_overload_set.type = cpp_overload_set_value @PassThreeFields.cpp_overload_set [concrete = constants.%PassThreeFields.cpp_overload_set.value] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.decl: %PassThreeFields__carbon_thunk.type = fn_decl @PassThreeFields__carbon_thunk [concrete = constants.%PassThreeFields__carbon_thunk] { -// CHECK:STDOUT: %t.param_patt: %pattern_type.905 = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: %pattern_type.905 = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: %pattern_type.ecf = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.ecf = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %t.param: %ptr.f54 = value_param call_param0 -// CHECK:STDOUT: %t: %ptr.f54 = value_binding t, %t.param +// CHECK:STDOUT: %t.param: %ptr.6c3 = value_param call_param0 +// CHECK:STDOUT: %t: %ptr.6c3 = value_binding t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2959,42 +2959,42 @@ fn F() { // CHECK:STDOUT: %reference: ref %empty_tuple.type = ref_binding reference, %reference.param // CHECK:STDOUT: } // CHECK:STDOUT: %MakeThreeFields.decl: %MakeThreeFields.type = fn_decl @MakeThreeFields [concrete = constants.%MakeThreeFields] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.776 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.776 = return_slot_pattern %return.param_patt, %.loc65_39.2 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.777 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.777 = return_slot_pattern %return.param_patt, %.loc65_39.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc65_26: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc65_31: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc65_36: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc65_39.1: %tuple.type.ff9 = tuple_literal (%i32.loc65_26, %i32.loc65_31, %i32.loc65_36) [concrete = constants.%tuple.27c] -// CHECK:STDOUT: %.loc65_39.2: type = converted %.loc65_39.1, constants.%tuple.type.05f [concrete = constants.%tuple.type.05f] -// CHECK:STDOUT: %.loc65_39.3: Core.Form = init_form %.loc65_39.2 [concrete = constants.%.fd3] -// CHECK:STDOUT: %return.param: ref %tuple.type.05f = out_param call_param0 -// CHECK:STDOUT: %return: ref %tuple.type.05f = return_slot %return.param +// CHECK:STDOUT: %.loc65_39.1: %tuple.type.ff9 = tuple_literal (%i32.loc65_26, %i32.loc65_31, %i32.loc65_36) [concrete = constants.%tuple.04d] +// CHECK:STDOUT: %.loc65_39.2: type = converted %.loc65_39.1, constants.%tuple.type.555 [concrete = constants.%tuple.type.555] +// CHECK:STDOUT: %.loc65_39.3: Core.Form = init_form %.loc65_39.2 [concrete = constants.%.718] +// CHECK:STDOUT: %return.param: ref %tuple.type.555 = out_param call_param0 +// CHECK:STDOUT: %return: ref %tuple.type.555 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %ThreeFields.decl: %ThreeFields.type = fn_decl @ThreeFields.loc67 [concrete = constants.%ThreeFields.cb3] { -// CHECK:STDOUT: %value.param_patt: %pattern_type.776 = value_param_pattern [concrete] -// CHECK:STDOUT: %value.patt: %pattern_type.776 = at_binding_pattern value, %value.param_patt [concrete] -// CHECK:STDOUT: %reference.param_patt: %pattern_type.776 = ref_param_pattern [concrete] -// CHECK:STDOUT: %reference.patt: %pattern_type.776 = at_binding_pattern reference, %reference.param_patt [concrete] +// CHECK:STDOUT: %ThreeFields.decl: %ThreeFields.type = fn_decl @ThreeFields.loc67 [concrete = constants.%ThreeFields.16d] { +// CHECK:STDOUT: %value.param_patt: %pattern_type.777 = value_param_pattern [concrete] +// CHECK:STDOUT: %value.patt: %pattern_type.777 = at_binding_pattern value, %value.param_patt [concrete] +// CHECK:STDOUT: %reference.param_patt: %pattern_type.777 = ref_param_pattern [concrete] +// CHECK:STDOUT: %reference.patt: %pattern_type.777 = at_binding_pattern reference, %reference.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %value.param: %tuple.type.05f = value_param call_param0 -// CHECK:STDOUT: %.loc67_37.1: type = splice_block %.loc67_37.3 [concrete = constants.%tuple.type.05f] { +// CHECK:STDOUT: %value.param: %tuple.type.555 = value_param call_param0 +// CHECK:STDOUT: %.loc67_37.1: type = splice_block %.loc67_37.3 [concrete = constants.%tuple.type.555] { // CHECK:STDOUT: %i32.loc67_24: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc67_29: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc67_34: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc67_37.2: %tuple.type.ff9 = tuple_literal (%i32.loc67_24, %i32.loc67_29, %i32.loc67_34) [concrete = constants.%tuple.27c] -// CHECK:STDOUT: %.loc67_37.3: type = converted %.loc67_37.2, constants.%tuple.type.05f [concrete = constants.%tuple.type.05f] +// CHECK:STDOUT: %.loc67_37.2: %tuple.type.ff9 = tuple_literal (%i32.loc67_24, %i32.loc67_29, %i32.loc67_34) [concrete = constants.%tuple.04d] +// CHECK:STDOUT: %.loc67_37.3: type = converted %.loc67_37.2, constants.%tuple.type.555 [concrete = constants.%tuple.type.555] // CHECK:STDOUT: } -// CHECK:STDOUT: %value: %tuple.type.05f = value_binding value, %value.param -// CHECK:STDOUT: %reference.param: ref %tuple.type.05f = ref_param call_param1 -// CHECK:STDOUT: %.loc67_69.1: type = splice_block %.loc67_69.3 [concrete = constants.%tuple.type.05f] { +// CHECK:STDOUT: %value: %tuple.type.555 = value_binding value, %value.param +// CHECK:STDOUT: %reference.param: ref %tuple.type.555 = ref_param call_param1 +// CHECK:STDOUT: %.loc67_69.1: type = splice_block %.loc67_69.3 [concrete = constants.%tuple.type.555] { // CHECK:STDOUT: %i32.loc67_56: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc67_61: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc67_66: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc67_69.2: %tuple.type.ff9 = tuple_literal (%i32.loc67_56, %i32.loc67_61, %i32.loc67_66) [concrete = constants.%tuple.27c] -// CHECK:STDOUT: %.loc67_69.3: type = converted %.loc67_69.2, constants.%tuple.type.05f [concrete = constants.%tuple.type.05f] +// CHECK:STDOUT: %.loc67_69.2: %tuple.type.ff9 = tuple_literal (%i32.loc67_56, %i32.loc67_61, %i32.loc67_66) [concrete = constants.%tuple.04d] +// CHECK:STDOUT: %.loc67_69.3: type = converted %.loc67_69.2, constants.%tuple.type.555 [concrete = constants.%tuple.type.555] // CHECK:STDOUT: } -// CHECK:STDOUT: %reference: ref %tuple.type.05f = ref_binding reference, %reference.param +// CHECK:STDOUT: %reference: ref %tuple.type.555 = ref_binding reference, %reference.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3020,8 +3020,8 @@ fn F() { // CHECK:STDOUT: %i32.5: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %i32.6: type = type_literal %i32.5 [concrete = constants.%i32] // CHECK:STDOUT: %.3: %ThreeFields.elem = field_decl c, element2 [concrete] -// CHECK:STDOUT: %.4: type = custom_layout_type {size=12, align=4, .a@0: %i32, .b@4: %i32, .c@8: %i32} [concrete = constants.%.92f] -// CHECK:STDOUT: %complete_type: = complete_type_witness %.4 [concrete = constants.%complete_type.20a] +// CHECK:STDOUT: %.4: type = custom_layout_type {size=12, align=4, .a@0: %i32, .b@4: %i32, .c@8: %i32} [concrete = constants.%.8e5] +// CHECK:STDOUT: %complete_type: = complete_type_witness %.4 [concrete = constants.%complete_type.7b4] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -3036,37 +3036,37 @@ fn F() { // CHECK:STDOUT: %PassNoFields.ref.loc23: %PassNoFields.cpp_overload_set.type = name_ref PassNoFields, imports.%PassNoFields.cpp_overload_set.value [concrete = constants.%PassNoFields.cpp_overload_set.value] // CHECK:STDOUT: %.loc23_21.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc23_21.2: %NoFields = converted %.loc23_21.1, [concrete = ] -// CHECK:STDOUT: %addr.loc23: %ptr.e71 = addr_of [concrete = ] +// CHECK:STDOUT: %addr.loc23: %ptr.027 = addr_of [concrete = ] // CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc23: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc23) // CHECK:STDOUT: %Cpp.ref.loc36: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassNoFields.ref.loc36: %PassNoFields.cpp_overload_set.type = name_ref PassNoFields, imports.%PassNoFields.cpp_overload_set.value [concrete = constants.%PassNoFields.cpp_overload_set.value] // CHECK:STDOUT: %value.ref: %empty_tuple.type = name_ref value, %value // CHECK:STDOUT: %.loc36: %NoFields = converted %value.ref, [concrete = ] -// CHECK:STDOUT: %addr.loc36: %ptr.e71 = addr_of [concrete = ] +// CHECK:STDOUT: %addr.loc36: %ptr.027 = addr_of [concrete = ] // CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc36: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc36) // CHECK:STDOUT: %Cpp.ref.loc49: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassNoFields.ref.loc49: %PassNoFields.cpp_overload_set.type = name_ref PassNoFields, imports.%PassNoFields.cpp_overload_set.value [concrete = constants.%PassNoFields.cpp_overload_set.value] // CHECK:STDOUT: %reference.ref: ref %empty_tuple.type = name_ref reference, %reference // CHECK:STDOUT: %.loc49: %NoFields = converted %reference.ref, [concrete = ] -// CHECK:STDOUT: %addr.loc49: %ptr.e71 = addr_of [concrete = ] +// CHECK:STDOUT: %addr.loc49: %ptr.027 = addr_of [concrete = ] // CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc49: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc49) // CHECK:STDOUT: %Cpp.ref.loc62: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassNoFields.ref.loc62: %PassNoFields.cpp_overload_set.type = name_ref PassNoFields, imports.%PassNoFields.cpp_overload_set.value [concrete = constants.%PassNoFields.cpp_overload_set.value] // CHECK:STDOUT: %MakeEmpty.ref: %MakeEmpty.type = name_ref MakeEmpty, file.%MakeEmpty.decl [concrete = constants.%MakeEmpty] // CHECK:STDOUT: %MakeEmpty.call: init %empty_tuple.type = call %MakeEmpty.ref() // CHECK:STDOUT: %.loc62: %NoFields = converted %MakeEmpty.call, [concrete = ] -// CHECK:STDOUT: %addr.loc62: %ptr.e71 = addr_of [concrete = ] +// CHECK:STDOUT: %addr.loc62: %ptr.027 = addr_of [concrete = ] // CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc62: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc62) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @PassNoFields(%s.param: %NoFields); // CHECK:STDOUT: -// CHECK:STDOUT: fn @PassNoFields__carbon_thunk(%s.param: %ptr.e71); +// CHECK:STDOUT: fn @PassNoFields__carbon_thunk(%s.param: %ptr.027); // CHECK:STDOUT: -// CHECK:STDOUT: fn @MakeThreeFields() -> out %return.param: %tuple.type.05f; +// CHECK:STDOUT: fn @MakeThreeFields() -> out %return.param: %tuple.type.555; // CHECK:STDOUT: -// CHECK:STDOUT: fn @ThreeFields.loc67(%value.param: %tuple.type.05f, %reference.param: ref %tuple.type.05f) { +// CHECK:STDOUT: fn @ThreeFields.loc67(%value.param: %tuple.type.555, %reference.param: ref %tuple.type.555) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Cpp.ref.loc79: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassThreeFields.ref.loc79: %PassThreeFields.cpp_overload_set.type = name_ref PassThreeFields, imports.%PassThreeFields.cpp_overload_set.value [concrete = constants.%PassThreeFields.cpp_overload_set.value] @@ -3074,35 +3074,35 @@ fn F() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] // CHECK:STDOUT: %.loc79_31.1: %tuple.type.37f = tuple_literal (%int_1, %int_2, %int_3) [concrete = constants.%tuple.2d5] -// CHECK:STDOUT: %.loc79_31.2: %ThreeFields.559 = converted %.loc79_31.1, [concrete = ] -// CHECK:STDOUT: %addr.loc79: %ptr.f54 = addr_of [concrete = ] +// CHECK:STDOUT: %.loc79_31.2: %ThreeFields.1b4 = converted %.loc79_31.1, [concrete = ] +// CHECK:STDOUT: %addr.loc79: %ptr.6c3 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc79: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc79) // CHECK:STDOUT: %Cpp.ref.loc92: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassThreeFields.ref.loc92: %PassThreeFields.cpp_overload_set.type = name_ref PassThreeFields, imports.%PassThreeFields.cpp_overload_set.value [concrete = constants.%PassThreeFields.cpp_overload_set.value] -// CHECK:STDOUT: %value.ref: %tuple.type.05f = name_ref value, %value -// CHECK:STDOUT: %.loc92: %ThreeFields.559 = converted %value.ref, [concrete = ] -// CHECK:STDOUT: %addr.loc92: %ptr.f54 = addr_of [concrete = ] +// CHECK:STDOUT: %value.ref: %tuple.type.555 = name_ref value, %value +// CHECK:STDOUT: %.loc92: %ThreeFields.1b4 = converted %value.ref, [concrete = ] +// CHECK:STDOUT: %addr.loc92: %ptr.6c3 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc92: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc92) // CHECK:STDOUT: %Cpp.ref.loc105: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassThreeFields.ref.loc105: %PassThreeFields.cpp_overload_set.type = name_ref PassThreeFields, imports.%PassThreeFields.cpp_overload_set.value [concrete = constants.%PassThreeFields.cpp_overload_set.value] -// CHECK:STDOUT: %reference.ref: ref %tuple.type.05f = name_ref reference, %reference -// CHECK:STDOUT: %.loc105: %ThreeFields.559 = converted %reference.ref, [concrete = ] -// CHECK:STDOUT: %addr.loc105: %ptr.f54 = addr_of [concrete = ] +// CHECK:STDOUT: %reference.ref: ref %tuple.type.555 = name_ref reference, %reference +// CHECK:STDOUT: %.loc105: %ThreeFields.1b4 = converted %reference.ref, [concrete = ] +// CHECK:STDOUT: %addr.loc105: %ptr.6c3 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc105: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc105) // CHECK:STDOUT: %Cpp.ref.loc118: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassThreeFields.ref.loc118: %PassThreeFields.cpp_overload_set.type = name_ref PassThreeFields, imports.%PassThreeFields.cpp_overload_set.value [concrete = constants.%PassThreeFields.cpp_overload_set.value] // CHECK:STDOUT: %MakeThreeFields.ref: %MakeThreeFields.type = name_ref MakeThreeFields, file.%MakeThreeFields.decl [concrete = constants.%MakeThreeFields] -// CHECK:STDOUT: %.loc118_39.1: ref %tuple.type.05f = temporary_storage -// CHECK:STDOUT: %MakeThreeFields.call: init %tuple.type.05f to %.loc118_39.1 = call %MakeThreeFields.ref() -// CHECK:STDOUT: %.loc118_39.2: %ThreeFields.559 = converted %MakeThreeFields.call, [concrete = ] -// CHECK:STDOUT: %addr.loc118: %ptr.f54 = addr_of [concrete = ] +// CHECK:STDOUT: %.loc118_39.1: ref %tuple.type.555 = temporary_storage +// CHECK:STDOUT: %MakeThreeFields.call: init %tuple.type.555 to %.loc118_39.1 = call %MakeThreeFields.ref() +// CHECK:STDOUT: %.loc118_39.2: %ThreeFields.1b4 = converted %MakeThreeFields.call, [concrete = ] +// CHECK:STDOUT: %addr.loc118: %ptr.6c3 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc118: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc118) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @PassThreeFields(%t.param: %ThreeFields.559); +// CHECK:STDOUT: fn @PassThreeFields(%t.param: %ThreeFields.1b4); // CHECK:STDOUT: -// CHECK:STDOUT: fn @PassThreeFields__carbon_thunk(%t.param: %ptr.f54); +// CHECK:STDOUT: fn @PassThreeFields__carbon_thunk(%t.param: %ptr.6c3); // CHECK:STDOUT: // CHECK:STDOUT: --- fail_int_from_struct.carbon // CHECK:STDOUT: @@ -3118,11 +3118,11 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %PassInt.type: type = fn_type @PassInt [concrete] // CHECK:STDOUT: %PassInt: %PassInt.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3140,8 +3140,8 @@ fn F() { // CHECK:STDOUT: %PassInt.cpp_overload_set.value: %PassInt.cpp_overload_set.type = cpp_overload_set_value @PassInt.cpp_overload_set [concrete = constants.%PassInt.cpp_overload_set.value] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %PassInt.decl: %PassInt.type = fn_decl @PassInt [concrete = constants.%PassInt] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -3151,7 +3151,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -3198,11 +3198,11 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %PassOverloaded.type: type = fn_type @PassOverloaded [concrete] // CHECK:STDOUT: %PassOverloaded: %PassOverloaded.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3220,8 +3220,8 @@ fn F() { // CHECK:STDOUT: %PassOverloaded.cpp_overload_set.value: %PassOverloaded.cpp_overload_set.type = cpp_overload_set_value @PassOverloaded.cpp_overload_set [concrete = constants.%PassOverloaded.cpp_overload_set.value] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %PassOverloaded.decl: %PassOverloaded.type = fn_decl @PassOverloaded [concrete = constants.%PassOverloaded] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -3231,7 +3231,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -3333,24 +3333,24 @@ fn F() { // CHECK:STDOUT: %struct_type.a.n.988: type = struct_type {.a: %struct_type.x.y, .n: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.516: %struct_type.a.n.988 = struct_value (%struct.004, %int_3) [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] -// CHECK:STDOUT: %ptr.fab: type = ptr_type %B [concrete] -// CHECK:STDOUT: %pattern_type.857: type = pattern_type %ptr.fab [concrete] +// CHECK:STDOUT: %ptr.dc0: type = ptr_type %B [concrete] +// CHECK:STDOUT: %pattern_type.733: type = pattern_type %ptr.dc0 [concrete] // CHECK:STDOUT: %TakeB__carbon_thunk.type: type = fn_type @TakeB__carbon_thunk [concrete] // CHECK:STDOUT: %TakeB__carbon_thunk: %TakeB__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %A: type = class_type @A [concrete] -// CHECK:STDOUT: %B.elem.8d0: type = unbound_element_type %B, %A [concrete] +// CHECK:STDOUT: %B.elem.75f: type = unbound_element_type %B, %A [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %B.elem.27c: type = unbound_element_type %B, %i32 [concrete] -// CHECK:STDOUT: %.0bd: type = custom_layout_type {size=12, align=4, .a@0: %A, .n@8: %i32} [concrete] -// CHECK:STDOUT: %complete_type.f66: = complete_type_witness %.0bd [concrete] +// CHECK:STDOUT: %B.elem.f76: type = unbound_element_type %B, %i32 [concrete] +// CHECK:STDOUT: %.89b: type = custom_layout_type {size=12, align=4, .a@0: %A, .n@8: %i32} [concrete] +// CHECK:STDOUT: %complete_type.73f: = complete_type_witness %.89b [concrete] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %i32 [concrete] -// CHECK:STDOUT: %.bfb: type = custom_layout_type {size=8, align=4, .x@0: %i32, .y@4: %i32} [concrete] -// CHECK:STDOUT: %complete_type.2a6: = complete_type_witness %.bfb [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %.850: type = custom_layout_type {size=8, align=4, .x@0: %i32, .y@4: %i32} [concrete] +// CHECK:STDOUT: %complete_type.32d: = complete_type_witness %.850 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3366,14 +3366,14 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %TakeB.cpp_overload_set.value: %TakeB.cpp_overload_set.type = cpp_overload_set_value @TakeB.cpp_overload_set [concrete = constants.%TakeB.cpp_overload_set.value] // CHECK:STDOUT: %TakeB__carbon_thunk.decl: %TakeB__carbon_thunk.type = fn_decl @TakeB__carbon_thunk [concrete = constants.%TakeB__carbon_thunk] { -// CHECK:STDOUT: %_.param_patt: %pattern_type.857 = value_param_pattern [concrete] -// CHECK:STDOUT: %_.patt: %pattern_type.857 = at_binding_pattern _, %_.param_patt [concrete] +// CHECK:STDOUT: %_.param_patt: %pattern_type.733 = value_param_pattern [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.733 = at_binding_pattern _, %_.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %_.param: %ptr.fab = value_param call_param0 -// CHECK:STDOUT: %_: %ptr.fab = value_binding _, %_.param +// CHECK:STDOUT: %_.param: %ptr.dc0 = value_param call_param0 +// CHECK:STDOUT: %_: %ptr.dc0 = value_binding _, %_.param // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -3390,13 +3390,13 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { -// CHECK:STDOUT: %.1: %B.elem.8d0 = field_decl a, element0 [concrete] +// CHECK:STDOUT: %.1: %B.elem.75f = field_decl a, element0 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.1: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %i32.2: type = type_literal %i32.1 [concrete = constants.%i32] -// CHECK:STDOUT: %.2: %B.elem.27c = field_decl n, element1 [concrete] -// CHECK:STDOUT: %.3: type = custom_layout_type {size=12, align=4, .a@0: %A, .n@8: %i32} [concrete = constants.%.0bd] -// CHECK:STDOUT: %complete_type: = complete_type_witness %.3 [concrete = constants.%complete_type.f66] +// CHECK:STDOUT: %.2: %B.elem.f76 = field_decl n, element1 [concrete] +// CHECK:STDOUT: %.3: type = custom_layout_type {size=12, align=4, .a@0: %A, .n@8: %i32} [concrete = constants.%.89b] +// CHECK:STDOUT: %complete_type: = complete_type_witness %.3 [concrete = constants.%complete_type.73f] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -3412,8 +3412,8 @@ fn F() { // CHECK:STDOUT: %i32.3: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %i32.4: type = type_literal %i32.3 [concrete = constants.%i32] // CHECK:STDOUT: %.2: %A.elem = field_decl y, element1 [concrete] -// CHECK:STDOUT: %.3: type = custom_layout_type {size=8, align=4, .x@0: %i32, .y@4: %i32} [concrete = constants.%.bfb] -// CHECK:STDOUT: %complete_type: = complete_type_witness %.3 [concrete = constants.%complete_type.2a6] +// CHECK:STDOUT: %.3: type = custom_layout_type {size=8, align=4, .x@0: %i32, .y@4: %i32} [concrete = constants.%.850] +// CHECK:STDOUT: %complete_type: = complete_type_witness %.3 [concrete = constants.%complete_type.32d] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -3430,14 +3430,14 @@ fn F() { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] // CHECK:STDOUT: %.loc18_43.1: %struct_type.a.n.988 = struct_literal (%.loc18_34, %int_3) [concrete = constants.%struct.516] // CHECK:STDOUT: %.loc18_43.2: %B = converted %.loc18_43.1, [concrete = ] -// CHECK:STDOUT: %addr: %ptr.fab = addr_of [concrete = ] +// CHECK:STDOUT: %addr: %ptr.dc0 = addr_of [concrete = ] // CHECK:STDOUT: %TakeB__carbon_thunk.call: init %empty_tuple.type = call imports.%TakeB__carbon_thunk.decl(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TakeB(%_.param: %B); // CHECK:STDOUT: -// CHECK:STDOUT: fn @TakeB__carbon_thunk(%_.param: %ptr.fab); +// CHECK:STDOUT: fn @TakeB__carbon_thunk(%_.param: %ptr.dc0); // CHECK:STDOUT: // CHECK:STDOUT: --- fail_import_upsizing_rejected.carbon // CHECK:STDOUT: @@ -3452,29 +3452,29 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.fff: type = facet_type <@As, @As(%i16)> [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.6f1: type = facet_type <@As, @As(%i16)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.16a: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.ced: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.0b6: %Core.IntLiteral.as.As.impl.Convert.type.ced = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fff = facet_value Core.IntLiteral, (%As.impl_witness.16a) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.28f: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] -// CHECK:STDOUT: %.696: type = fn_type_with_self_type %As.WithSelf.Convert.type.28f, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.0b6 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.0b6, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.820: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.4b7: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.70c: %Core.IntLiteral.as.As.impl.Convert.type.4b7 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.6f1 = facet_value Core.IntLiteral, (%As.impl_witness.820) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.d73: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet) [concrete] +// CHECK:STDOUT: %.6b5: type = fn_type_with_self_type %As.WithSelf.Convert.type.d73, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.70c [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.70c, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.792: %i16 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.d17: %i16 = int_value 1 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3491,12 +3491,12 @@ fn F() { // 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.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { @@ -3506,7 +3506,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: %i32 = value_binding a, %a.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -3528,13 +3528,13 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i16: type = type_literal constants.%i16 [concrete = constants.%i16] -// CHECK:STDOUT: %impl.elem0: %.696 = impl_witness_access constants.%As.impl_witness.16a, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.0b6] +// CHECK:STDOUT: %impl.elem0: %.6b5 = impl_witness_access constants.%As.impl_witness.820, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.70c] // CHECK:STDOUT: %bound_method.loc18_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.As.impl.Convert(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc18_13.2(%int_1) [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc18_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc18_13.2: %i16 = converted %int_1, %.loc18_13.1 [concrete = constants.%int_1.792] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i16 = call %bound_method.loc18_13.2(%int_1) [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc18_13.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc18_13.2: %i16 = converted %int_1, %.loc18_13.1 [concrete = constants.%int_1.d17] // CHECK:STDOUT: %.loc18_13.3: %i32 = converted %.loc18_13.2, [concrete = ] // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl() // CHECK:STDOUT: return @@ -3555,30 +3555,30 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.c00: type = facet_type <@As, @As(%i32)> [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.155: type = facet_type <@As, @As(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.54d: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.421: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.978: %Core.IntLiteral.as.As.impl.Convert.type.421 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.c00 = facet_value Core.IntLiteral, (%As.impl_witness.54d) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.f0c: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] -// CHECK:STDOUT: %.c18: type = fn_type_with_self_type %As.WithSelf.Convert.type.f0c, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.978 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.978, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.03e: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.e79: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.8a4: %Core.IntLiteral.as.As.impl.Convert.type.e79 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.155 = facet_value Core.IntLiteral, (%As.impl_witness.03e) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.8ea: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] +// CHECK:STDOUT: %.fbc: type = fn_type_with_self_type %As.WithSelf.Convert.type.8ea, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.8a4 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.8a4, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %i16 [concrete] -// CHECK:STDOUT: %pattern_type.497: type = pattern_type %ptr [concrete] +// CHECK:STDOUT: %pattern_type.f71: type = pattern_type %ptr [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3595,12 +3595,12 @@ fn F() { // 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.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %foo__carbon_thunk.decl: %foo__carbon_thunk.type = fn_decl @foo__carbon_thunk [concrete = constants.%foo__carbon_thunk] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.497 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.497 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.f71 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.f71 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block constants.%ptr [concrete = constants.%ptr] { @@ -3610,7 +3610,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: %ptr = value_binding a, %a.param // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -3632,13 +3632,13 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.c18 = impl_witness_access constants.%As.impl_witness.54d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.978] +// CHECK:STDOUT: %impl.elem0: %.fbc = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.8a4] // CHECK:STDOUT: %bound_method.loc18_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc18_13.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_13.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_13.2: %i32 = converted %int_1, %.loc18_13.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc18_13.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_13.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_13.2: %i32 = converted %int_1, %.loc18_13.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc18_13.3: %i16 = converted %.loc18_13.2, [concrete = ] // CHECK:STDOUT: %addr: %ptr = addr_of [concrete = ] // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) @@ -3661,22 +3661,22 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.b69: type = facet_type <@As, @As(%i64)> [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.998: type = facet_type <@As, @As(%i64)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.0e9: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.8db: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.fb1: %Core.IntLiteral.as.As.impl.Convert.type.8db = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.b69 = facet_value Core.IntLiteral, (%As.impl_witness.0e9) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.553: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i64, %As.facet) [concrete] -// CHECK:STDOUT: %.9b9: type = fn_type_with_self_type %As.WithSelf.Convert.type.553, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.fb1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.fb1, @Core.IntLiteral.as.As.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.2e1: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.1a1: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.3d9: %Core.IntLiteral.as.As.impl.Convert.type.1a1 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.998 = facet_value Core.IntLiteral, (%As.impl_witness.2e1) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.2b4: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i64, %As.facet) [concrete] +// CHECK:STDOUT: %.01b: type = fn_type_with_self_type %As.WithSelf.Convert.type.2b4, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.3d9 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.3d9, @Core.IntLiteral.as.As.impl.Convert(%int_64) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.0f3: %i64 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.d98: %i64 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3692,9 +3692,9 @@ fn F() { // 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.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -3716,13 +3716,13 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i64: type = type_literal constants.%i64 [concrete = constants.%i64] -// CHECK:STDOUT: %impl.elem0: %.9b9 = impl_witness_access constants.%As.impl_witness.0e9, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.fb1] +// CHECK:STDOUT: %impl.elem0: %.01b = impl_witness_access constants.%As.impl_witness.2e1, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.3d9] // CHECK:STDOUT: %bound_method.loc15_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.As.impl.Convert(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i64 = call %bound_method.loc15_13.2(%int_1) [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %.loc15_13.1: %i64 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %.loc15_13.2: %i64 = converted %int_1, %.loc15_13.1 [concrete = constants.%int_1.0f3] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i64 = call %bound_method.loc15_13.2(%int_1) [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc15_13.1: %i64 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc15_13.2: %i64 = converted %int_1, %.loc15_13.1 [concrete = constants.%int_1.d98] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3738,22 +3738,22 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.b69: type = facet_type <@As, @As(%i64)> [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.998: type = facet_type <@As, @As(%i64)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.0e9: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.8db: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.fb1: %Core.IntLiteral.as.As.impl.Convert.type.8db = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.b69 = facet_value Core.IntLiteral, (%As.impl_witness.0e9) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.553: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i64, %As.facet) [concrete] -// CHECK:STDOUT: %.9b9: type = fn_type_with_self_type %As.WithSelf.Convert.type.553, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.fb1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.fb1, @Core.IntLiteral.as.As.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.2e1: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.1a1: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.3d9: %Core.IntLiteral.as.As.impl.Convert.type.1a1 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.998 = facet_value Core.IntLiteral, (%As.impl_witness.2e1) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.2b4: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i64, %As.facet) [concrete] +// CHECK:STDOUT: %.01b: type = fn_type_with_self_type %As.WithSelf.Convert.type.2b4, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.3d9 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.3d9, @Core.IntLiteral.as.As.impl.Convert(%int_64) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.0f3: %i64 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.d98: %i64 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3769,9 +3769,9 @@ fn F() { // 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.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -3793,13 +3793,13 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i64: type = type_literal constants.%i64 [concrete = constants.%i64] -// CHECK:STDOUT: %impl.elem0: %.9b9 = impl_witness_access constants.%As.impl_witness.0e9, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.fb1] +// CHECK:STDOUT: %impl.elem0: %.01b = impl_witness_access constants.%As.impl_witness.2e1, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.3d9] // CHECK:STDOUT: %bound_method.loc19_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.As.impl.Convert(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i64 = call %bound_method.loc19_13.2(%int_1) [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %.loc19_13.1: %i64 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %.loc19_13.2: %i64 = converted %int_1, %.loc19_13.1 [concrete = constants.%int_1.0f3] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i64 = call %bound_method.loc19_13.2(%int_1) [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc19_13.1: %i64 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc19_13.2: %i64 = converted %int_1, %.loc19_13.1 [concrete = constants.%int_1.d98] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3815,22 +3815,22 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.c00: type = facet_type <@As, @As(%i32)> [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.155: type = facet_type <@As, @As(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.54d: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.421: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.978: %Core.IntLiteral.as.As.impl.Convert.type.421 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.c00 = facet_value Core.IntLiteral, (%As.impl_witness.54d) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.f0c: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] -// CHECK:STDOUT: %.c18: type = fn_type_with_self_type %As.WithSelf.Convert.type.f0c, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.978 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.978, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.03e: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.e79: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.8a4: %Core.IntLiteral.as.As.impl.Convert.type.e79 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.155 = facet_value Core.IntLiteral, (%As.impl_witness.03e) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.8ea: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] +// CHECK:STDOUT: %.fbc: type = fn_type_with_self_type %As.WithSelf.Convert.type.8ea, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.8a4 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.8a4, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3846,9 +3846,9 @@ fn F() { // 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.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -3870,13 +3870,13 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.c18 = impl_witness_access constants.%As.impl_witness.54d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.978] +// CHECK:STDOUT: %impl.elem0: %.fbc = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.8a4] // CHECK:STDOUT: %bound_method.loc19_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc19_13.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc19_13.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc19_13.2: %i32 = converted %int_1, %.loc19_13.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc19_13.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc19_13.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc19_13.2: %i32 = converted %int_1, %.loc19_13.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3887,10 +3887,10 @@ fn F() { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.998: type = pattern_type %I.type [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %ValueT: %I.type = symbolic_binding ValueT, 0 [symbolic] // CHECK:STDOUT: %ValueT.as_type: type = facet_access_type %ValueT [symbolic] -// CHECK:STDOUT: %pattern_type.3df: type = pattern_type %ValueT.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %ValueT.as_type [symbolic] // CHECK:STDOUT: %value: %ValueT.as_type = symbolic_binding value, 1 [symbolic] // CHECK:STDOUT: %EchoValue.type: type = fn_type @EchoValue [concrete] // CHECK:STDOUT: %EchoValue: %EchoValue.type = struct_value () [concrete] @@ -3926,8 +3926,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %EchoValue.decl: %EchoValue.type = fn_decl @EchoValue [concrete = constants.%EchoValue] { -// CHECK:STDOUT: %ValueT.patt: %pattern_type.998 = symbolic_binding_pattern ValueT, 0 [concrete] -// CHECK:STDOUT: %value.patt: @EchoValue.%pattern_type (%pattern_type.3df) = symbolic_binding_pattern value, 1 [concrete] +// CHECK:STDOUT: %ValueT.patt: %pattern_type.6cb = symbolic_binding_pattern ValueT, 0 [concrete] +// CHECK:STDOUT: %value.patt: @EchoValue.%pattern_type (%pattern_type.b3a) = symbolic_binding_pattern value, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10_23: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self.loc10_20: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -3960,7 +3960,7 @@ fn F() { // CHECK:STDOUT: %ValueT.loc10_20.1: %I.type = symbolic_binding ValueT, 0 [symbolic = %ValueT.loc10_20.1 (constants.%ValueT)] // CHECK:STDOUT: %ValueT.as_type.loc10_41.1: type = facet_access_type %ValueT.loc10_20.1 [symbolic = %ValueT.as_type.loc10_41.1 (constants.%ValueT.as_type)] // CHECK:STDOUT: %value.loc10_38.1: @EchoValue.%ValueT.as_type.loc10_41.1 (%ValueT.as_type) = symbolic_binding value, 1 [symbolic = %value.loc10_38.1 (constants.%value)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ValueT.as_type.loc10_41.1 [symbolic = %pattern_type (constants.%pattern_type.3df)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ValueT.as_type.loc10_41.1 [symbolic = %pattern_type (constants.%pattern_type.b3a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -3986,6 +3986,6 @@ fn F() { // CHECK:STDOUT: %ValueT.loc10_20.1 => constants.%ValueT // CHECK:STDOUT: %ValueT.as_type.loc10_41.1 => constants.%ValueT.as_type // CHECK:STDOUT: %value.loc10_38.1 => constants.%value -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3df +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b3a // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/import/pointer.carbon b/toolchain/check/testdata/interop/cpp/function/import/pointer.carbon index b93828c8903e..23c977ab82d0 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/pointer.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/pointer.carbon @@ -433,12 +433,12 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.0f5: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] @@ -463,8 +463,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.0f5 = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.0f5 = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -479,7 +479,7 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s -// CHECK:STDOUT: %addr: %ptr.055 = addr_of %s.ref +// CHECK:STDOUT: %addr: %ptr.037 = addr_of %s.ref // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%addr) // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor // CHECK:STDOUT: %S.cpp_destructor.call: init %empty_tuple.type = call %S.cpp_destructor.bound(%s.var) @@ -492,7 +492,7 @@ fn F() { // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %S [concrete] // CHECK:STDOUT: %const: type = const_type %ptr [concrete] -// CHECK:STDOUT: %pattern_type.252: type = pattern_type %const [concrete] +// CHECK:STDOUT: %pattern_type.282: type = pattern_type %const [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] @@ -500,8 +500,8 @@ fn F() { // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc10_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -522,8 +522,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.252 = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.252 = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.282 = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.282 = var_pattern %p.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %p.var: ref %const = var %p.var_patt // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] @@ -543,7 +543,7 @@ fn F() { // CHECK:STDOUT: %.loc11_11.2: ref %ptr = converted %p.ref, %.loc11_11.1 // CHECK:STDOUT: %.loc11_11.3: %ptr = acquire_value %.loc11_11.2 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc11_11.3) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %p.var, constants.%Destroy.Op.2dd605.2 +// 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: // CHECK:STDOUT: } @@ -561,25 +561,25 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.0f5: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] -// CHECK:STDOUT: %pattern_type.f1e: type = pattern_type %ptr.055 [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] +// CHECK:STDOUT: %pattern_type.de6: type = pattern_type %ptr.037 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.177: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%S) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.806: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%S) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.1bd: %ptr.as.Copy.impl.Op.type.806 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.055, (%Copy.impl_witness.177) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.d5d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.8df: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d5d, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.1bd, @ptr.as.Copy.impl.Op(%S) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.478: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%S) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.048: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%S) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.def: %ptr.as.Copy.impl.Op.type.048 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.037, (%Copy.impl_witness.478) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.eff: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.166: type = fn_type_with_self_type %Copy.WithSelf.Op.type.eff, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.def, @ptr.as.Copy.impl.Op(%S) [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.ce4: type = ptr_type %ptr.055 [concrete] +// CHECK:STDOUT: %ptr.65c: type = ptr_type %ptr.037 [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] @@ -595,8 +595,8 @@ fn F() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // 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: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { // CHECK:STDOUT: @@ -608,8 +608,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.0f5 = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.0f5 = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -622,28 +622,28 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %s: ref %S = ref_binding s, %s.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.f1e = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.f1e = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.de6 = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.de6 = var_pattern %p.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %p.var: ref %ptr.055 = var %p.var_patt +// CHECK:STDOUT: %p.var: ref %ptr.037 = var %p.var_patt // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s -// CHECK:STDOUT: %addr.loc9: %ptr.055 = addr_of %s.ref -// CHECK:STDOUT: %impl.elem0: %.8df = impl_witness_access constants.%Copy.impl_witness.177, element0 [concrete = constants.%ptr.as.Copy.impl.Op.1bd] +// CHECK:STDOUT: %addr.loc9: %ptr.037 = addr_of %s.ref +// CHECK:STDOUT: %impl.elem0: %.166 = impl_witness_access constants.%Copy.impl_witness.478, element0 [concrete = constants.%ptr.as.Copy.impl.Op.def] // CHECK:STDOUT: %bound_method.loc9_19.1: = bound_method %addr.loc9, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%S) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9_19.2: = bound_method %addr.loc9, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.055 = call %bound_method.loc9_19.2(%addr.loc9) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.037 = call %bound_method.loc9_19.2(%addr.loc9) // CHECK:STDOUT: assign %p.var, %ptr.as.Copy.impl.Op.call -// CHECK:STDOUT: %.loc9: type = splice_block %ptr [concrete = constants.%ptr.055] { +// CHECK:STDOUT: %.loc9: type = splice_block %ptr [concrete = constants.%ptr.037] { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc9: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr: type = ptr_type %S.ref.loc9 [concrete = constants.%ptr.055] +// CHECK:STDOUT: %ptr: type = ptr_type %S.ref.loc9 [concrete = constants.%ptr.037] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: ref %ptr.055 = ref_binding p, %p.var +// CHECK:STDOUT: %p: ref %ptr.037 = ref_binding p, %p.var // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] -// CHECK:STDOUT: %p.ref: ref %ptr.055 = name_ref p, %p -// CHECK:STDOUT: %addr.loc10: %ptr.ce4 = addr_of %p.ref +// CHECK:STDOUT: %p.ref: ref %ptr.037 = name_ref p, %p +// CHECK:STDOUT: %addr.loc10: %ptr.65c = addr_of %p.ref // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%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) @@ -652,20 +652,20 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr.055) = "no_op"; +// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr.037) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- import_non_nullable_pointer_to_const_param_using_const.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %const: type = const_type %S [concrete] -// CHECK:STDOUT: %pattern_type.f43: type = pattern_type %const [concrete] +// CHECK:STDOUT: %pattern_type.914: type = pattern_type %const [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.26e: type = ptr_type %const [concrete] +// CHECK:STDOUT: %ptr.711: type = ptr_type %const [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] @@ -690,8 +690,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.f43 = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.f43 = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.914 = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.914 = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %const = var %s.var_patt // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] @@ -707,7 +707,7 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %const = name_ref s, %s -// CHECK:STDOUT: %addr: %ptr.26e = addr_of %s.ref +// CHECK:STDOUT: %addr: %ptr.711 = addr_of %s.ref // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%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) @@ -723,15 +723,15 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.0f5: type = pattern_type %S [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %const: type = const_type %S [concrete] -// CHECK:STDOUT: %ptr.26e: type = ptr_type %const [concrete] +// CHECK:STDOUT: %ptr.711: type = ptr_type %const [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] @@ -756,8 +756,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.0f5 = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.0f5 = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] @@ -772,9 +772,9 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s -// CHECK:STDOUT: %addr: %ptr.055 = addr_of %s.ref -// CHECK:STDOUT: %.loc9_11.1: %ptr.26e = as_compatible %addr -// CHECK:STDOUT: %.loc9_11.2: %ptr.26e = converted %addr, %.loc9_11.1 +// CHECK:STDOUT: %addr: %ptr.037 = addr_of %s.ref +// CHECK:STDOUT: %.loc9_11.1: %ptr.711 = as_compatible %addr +// CHECK:STDOUT: %.loc9_11.2: %ptr.711 = converted %addr, %.loc9_11.1 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc9_11.2) // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor // CHECK:STDOUT: %S.cpp_destructor.call: init %empty_tuple.type = call %S.cpp_destructor.bound(%s.var) @@ -787,7 +787,7 @@ fn F() { // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %S [concrete] // CHECK:STDOUT: %const: type = const_type %ptr [concrete] -// CHECK:STDOUT: %pattern_type.252: type = pattern_type %const [concrete] +// CHECK:STDOUT: %pattern_type.282: type = pattern_type %const [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] @@ -795,8 +795,8 @@ fn F() { // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc10_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -817,8 +817,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.252 = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.252 = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.282 = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.282 = var_pattern %p.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %p.var: ref %const = var %p.var_patt // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] @@ -838,7 +838,7 @@ fn F() { // CHECK:STDOUT: %.loc11_11.2: ref %ptr = converted %p.ref, %.loc11_11.1 // CHECK:STDOUT: %.loc11_11.3: %ptr = acquire_value %.loc11_11.2 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc11_11.3) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %p.var, constants.%Destroy.Op.2dd605.2 +// 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: // CHECK:STDOUT: } @@ -855,7 +855,7 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %S [concrete] -// CHECK:STDOUT: %pattern_type.f1e: type = pattern_type %ptr [concrete] +// CHECK:STDOUT: %pattern_type.de6: type = pattern_type %ptr [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] @@ -885,8 +885,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.f1e = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.f1e = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.de6 = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.de6 = var_pattern %p.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %p.var: ref %ptr = var %p.var_patt // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] @@ -914,61 +914,61 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] -// CHECK:STDOUT: %const.acb: type = const_type %ptr.055 [concrete] -// CHECK:STDOUT: %pattern_type.252: type = pattern_type %const.acb [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] +// CHECK:STDOUT: %const.f96: type = const_type %ptr.037 [concrete] +// CHECK:STDOUT: %pattern_type.282: type = pattern_type %const.f96 [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.21f: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.3b3: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.21f) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.d10: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.3b3) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.type.7a7: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.d46: %ptr.as.OptionalStorage.impl.Some.type.7a7 = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.1: = custom_witness (%Destroy.Op.2dd605.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.4d1: %Destroy.type = facet_value %ptr.055, (%custom_witness.e20f1f.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.3a1: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.4d1) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.230: = impl_witness imports.%OptionalStorage.impl_witness_table.404, @ptr.as.OptionalStorage.impl(%S) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.508: %OptionalStorage.type = facet_value %ptr.055, (%OptionalStorage.impl_witness.230) [concrete] -// CHECK:STDOUT: %Optional.f85: type = class_type @Optional, @Optional(%OptionalStorage.facet.508) [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: %ptr.as.OptionalStorage.impl.Some.type.d38: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.191: %ptr.as.OptionalStorage.impl.Some.type.d38 = 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.5b4: %Destroy.type = facet_value %ptr.037, (%custom_witness.df9cc1.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.9f2: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.5b4) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.582: = impl_witness imports.%OptionalStorage.impl_witness_table.7bc, @ptr.as.OptionalStorage.impl(%S) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.0ce: %OptionalStorage.type = facet_value %ptr.037, (%OptionalStorage.impl_witness.582) [concrete] +// CHECK:STDOUT: %Optional.659: type = class_type @Optional, @Optional(%OptionalStorage.facet.0ce) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.c37: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.f85)> [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6e610f.2: type = facet_type <@ImplicitAs, @ImplicitAs(%T.67d)> [symbolic] -// CHECK:STDOUT: %U.b7e: %ImplicitAs.type.6e610f.2 = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.type.557: type = fn_type @const.as.ImplicitAs.impl.Convert, @const.as.ImplicitAs.impl(%T.67d, %U.b7e) [symbolic] -// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.c54: %const.as.ImplicitAs.impl.Convert.type.557 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.type.c01: type = facet_type <@OptionalAs, @OptionalAs(%T.4e7)> [symbolic] -// CHECK:STDOUT: %U.847: %OptionalAs.type.c01 = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.d99: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1e6(%T.4e7, %U.847) [symbolic] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.401: %U.as_type.as.ImplicitAs.impl.Convert.type.d99 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.type.97d: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.508)> [concrete] -// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.b97: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.4e7) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.a9b: %T.as_type.as.OptionalAs.impl.Convert.type.b97 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.0a3: = impl_witness imports.%OptionalAs.impl_witness_table.973, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.508) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.97d = facet_value %ptr.055, (%OptionalAs.impl_witness.0a3) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.f5c: = impl_witness imports.%ImplicitAs.impl_witness_table.5f2, @U.as_type.as.ImplicitAs.impl.1e6(%OptionalStorage.facet.508, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.f8e: %ImplicitAs.type.c37 = facet_value %ptr.055, (%ImplicitAs.impl_witness.f5c) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.f5f: = impl_witness imports.%ImplicitAs.impl_witness_table.9b5, @const.as.ImplicitAs.impl(%Optional.f85, %ImplicitAs.facet.f8e) [concrete] -// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.type.d29: type = fn_type @const.as.ImplicitAs.impl.Convert, @const.as.ImplicitAs.impl(%Optional.f85, %ImplicitAs.facet.f8e) [concrete] -// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.ebf: %const.as.ImplicitAs.impl.Convert.type.d29 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.7b8: %ImplicitAs.type.c37 = facet_value %const.acb, (%ImplicitAs.impl_witness.f5f) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.802: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.f85, %ImplicitAs.facet.7b8) [concrete] -// CHECK:STDOUT: %.2e2: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.802, %ImplicitAs.facet.7b8 [concrete] -// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %const.as.ImplicitAs.impl.Convert.ebf, @const.as.ImplicitAs.impl.Convert(%Optional.f85, %ImplicitAs.facet.f8e) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc11_11.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc10 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.1c1: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.659)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.3aa489.2: type = facet_type <@ImplicitAs, @ImplicitAs(%T.67d)> [symbolic] +// CHECK:STDOUT: %U.294: %ImplicitAs.type.3aa489.2 = symbolic_binding U, 1 [symbolic] +// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.type.f7e: type = fn_type @const.as.ImplicitAs.impl.Convert, @const.as.ImplicitAs.impl(%T.67d, %U.294) [symbolic] +// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.2f7: %const.as.ImplicitAs.impl.Convert.type.f7e = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.type.3b8: type = facet_type <@OptionalAs, @OptionalAs(%T.220)> [symbolic] +// CHECK:STDOUT: %U.042: %OptionalAs.type.3b8 = symbolic_binding U, 1 [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.ad5: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.167(%T.220, %U.042) [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.331: %U.as_type.as.ImplicitAs.impl.Convert.type.ad5 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.type.561: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.0ce)> [concrete] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.774: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.220) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.5f9: %T.as_type.as.OptionalAs.impl.Convert.type.774 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.impl_witness.72e: = impl_witness imports.%OptionalAs.impl_witness_table.efa, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.0ce) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.561 = facet_value %ptr.037, (%OptionalAs.impl_witness.72e) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.d0f: = impl_witness imports.%ImplicitAs.impl_witness_table.cf7, @U.as_type.as.ImplicitAs.impl.167(%OptionalStorage.facet.0ce, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.21e: %ImplicitAs.type.1c1 = facet_value %ptr.037, (%ImplicitAs.impl_witness.d0f) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.326: = impl_witness imports.%ImplicitAs.impl_witness_table.b0d, @const.as.ImplicitAs.impl(%Optional.659, %ImplicitAs.facet.21e) [concrete] +// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.type.9f5: type = fn_type @const.as.ImplicitAs.impl.Convert, @const.as.ImplicitAs.impl(%Optional.659, %ImplicitAs.facet.21e) [concrete] +// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.1e5: %const.as.ImplicitAs.impl.Convert.type.9f5 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.9d6: %ImplicitAs.type.1c1 = facet_value %const.f96, (%ImplicitAs.impl_witness.326) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.9f9: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.659, %ImplicitAs.facet.9d6) [concrete] +// CHECK:STDOUT: %.ba9: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.9f9, %ImplicitAs.facet.9d6 [concrete] +// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %const.as.ImplicitAs.impl.Convert.1e5, @const.as.ImplicitAs.impl.Convert(%Optional.659, %ImplicitAs.facet.21e) [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc11_11.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.loc10 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -979,81 +979,81 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} // 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.c1a: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.d10)] -// CHECK:STDOUT: %Core.import_ref.31a = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.ed3: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some.type (%ptr.as.OptionalStorage.impl.Some.type.7a7) = 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.d46)] -// CHECK:STDOUT: %Core.import_ref.b33 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.d18 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.4ad4 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.404 = impl_witness_table (%Core.import_ref.c1a, %Core.import_ref.31a, %Core.import_ref.ed3, %Core.import_ref.b33, %Core.import_ref.d18, %Core.import_ref.4ad4), @ptr.as.OptionalStorage.impl [concrete] +// 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.26e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.d86: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some.type (%ptr.as.OptionalStorage.impl.Some.type.d38) = 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.191)] +// CHECK:STDOUT: %Core.import_ref.274 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.358 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.db3 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.7bc = impl_witness_table (%Core.import_ref.509, %Core.import_ref.26e, %Core.import_ref.d86, %Core.import_ref.274, %Core.import_ref.358, %Core.import_ref.db3), @ptr.as.OptionalStorage.impl [concrete] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc11_12.1: type = splice_block %Optional [concrete = constants.%Optional.f85] { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.230) [concrete = constants.%OptionalStorage.facet.508] -// CHECK:STDOUT: %.loc11_12.2: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.508] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.508) [concrete = constants.%Optional.f85] +// CHECK:STDOUT: %.loc11_12.1: type = splice_block %Optional [concrete = constants.%Optional.659] { +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.037, (constants.%OptionalStorage.impl_witness.582) [concrete = constants.%OptionalStorage.facet.0ce] +// CHECK:STDOUT: %.loc11_12.2: %OptionalStorage.type = converted constants.%ptr.037, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.0ce] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.0ce) [concrete = constants.%Optional.659] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.354: @const.as.ImplicitAs.impl.%const.as.ImplicitAs.impl.Convert.type (%const.as.ImplicitAs.impl.Convert.type.557) = import_ref Core//prelude/types/optional, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @const.as.ImplicitAs.impl.%const.as.ImplicitAs.impl.Convert (constants.%const.as.ImplicitAs.impl.Convert.c54)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.9b5 = impl_witness_table (%Core.import_ref.354), @const.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.ce3: @U.as_type.as.ImplicitAs.impl.1e6.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.d99) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.1e6.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.401)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.5f2 = impl_witness_table (%Core.import_ref.ce3), @U.as_type.as.ImplicitAs.impl.1e6 [concrete] -// CHECK:STDOUT: %Core.import_ref.cb8: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.b97) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.a9b)] -// CHECK:STDOUT: %OptionalAs.impl_witness_table.973 = impl_witness_table (%Core.import_ref.cb8), @T.as_type.as.OptionalAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.a74: @const.as.ImplicitAs.impl.%const.as.ImplicitAs.impl.Convert.type (%const.as.ImplicitAs.impl.Convert.type.f7e) = import_ref Core//prelude/types/optional, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @const.as.ImplicitAs.impl.%const.as.ImplicitAs.impl.Convert (constants.%const.as.ImplicitAs.impl.Convert.2f7)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b0d = impl_witness_table (%Core.import_ref.a74), @const.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.eb9: @U.as_type.as.ImplicitAs.impl.167.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.ad5) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.167.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.331)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.cf7 = impl_witness_table (%Core.import_ref.eb9), @U.as_type.as.ImplicitAs.impl.167 [concrete] +// CHECK:STDOUT: %Core.import_ref.017: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.774) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.5f9)] +// CHECK:STDOUT: %OptionalAs.impl_witness_table.efa = impl_witness_table (%Core.import_ref.017), @T.as_type.as.OptionalAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.252 = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.252 = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.282 = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.282 = var_pattern %p.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %p.var: ref %const.acb = var %p.var_patt +// CHECK:STDOUT: %p.var: ref %const.f96 = var %p.var_patt // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] -// CHECK:STDOUT: %G.call: init %const.acb = call %G.ref() +// CHECK:STDOUT: %G.call: init %const.f96 = call %G.ref() // CHECK:STDOUT: assign %p.var, %G.call -// CHECK:STDOUT: %.loc10: type = splice_block %const [concrete = constants.%const.acb] { +// CHECK:STDOUT: %.loc10: type = splice_block %const [concrete = constants.%const.f96] { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr: type = ptr_type %S.ref [concrete = constants.%ptr.055] -// CHECK:STDOUT: %const: type = const_type %ptr [concrete = constants.%const.acb] +// CHECK:STDOUT: %ptr: type = ptr_type %S.ref [concrete = constants.%ptr.037] +// CHECK:STDOUT: %const: type = const_type %ptr [concrete = constants.%const.f96] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: ref %const.acb = ref_binding p, %p.var +// CHECK:STDOUT: %p: ref %const.f96 = ref_binding p, %p.var // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] -// CHECK:STDOUT: %p.ref: ref %const.acb = name_ref p, %p -// CHECK:STDOUT: %impl.elem0: %.2e2 = impl_witness_access constants.%ImplicitAs.impl_witness.f5f, element0 [concrete = constants.%const.as.ImplicitAs.impl.Convert.ebf] +// CHECK:STDOUT: %p.ref: ref %const.f96 = name_ref p, %p +// CHECK:STDOUT: %impl.elem0: %.ba9 = impl_witness_access constants.%ImplicitAs.impl_witness.326, element0 [concrete = constants.%const.as.ImplicitAs.impl.Convert.1e5] // CHECK:STDOUT: %bound_method.loc11_11.1: = bound_method %p.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @const.as.ImplicitAs.impl.Convert(constants.%Optional.f85, constants.%ImplicitAs.facet.f8e) [concrete = constants.%const.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @const.as.ImplicitAs.impl.Convert(constants.%Optional.659, constants.%ImplicitAs.facet.21e) [concrete = constants.%const.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_11.2: = bound_method %p.ref, %specific_fn -// CHECK:STDOUT: %.loc11_11.1: %const.acb = acquire_value %p.ref -// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.call: init %Optional.f85 = call %bound_method.loc11_11.2(%.loc11_11.1) -// CHECK:STDOUT: %.loc11_11.2: init %Optional.f85 = converted %p.ref, %const.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %.loc11_11.3: ref %Optional.f85 = temporary_storage -// CHECK:STDOUT: %.loc11_11.4: ref %Optional.f85 = temporary %.loc11_11.3, %.loc11_11.2 -// CHECK:STDOUT: %.loc11_11.5: %Optional.f85 = acquire_value %.loc11_11.4 +// CHECK:STDOUT: %.loc11_11.1: %const.f96 = acquire_value %p.ref +// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.call: init %Optional.659 = call %bound_method.loc11_11.2(%.loc11_11.1) +// CHECK:STDOUT: %.loc11_11.2: init %Optional.659 = converted %p.ref, %const.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %.loc11_11.3: ref %Optional.659 = temporary_storage +// CHECK:STDOUT: %.loc11_11.4: ref %Optional.659 = temporary %.loc11_11.3, %.loc11_11.2 +// CHECK:STDOUT: %.loc11_11.5: %Optional.659 = acquire_value %.loc11_11.4 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc11_11.5) -// CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %.loc11_11.4, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %.loc11_11.4, constants.%Destroy.Op.1a2547.3 // CHECK:STDOUT: %Destroy.Op.call.loc11: init %empty_tuple.type = call %Destroy.Op.bound.loc11(%.loc11_11.4) -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %p.var, constants.%Destroy.Op.2dd605.4 +// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %p.var, constants.%Destroy.Op.1a2547.4 // CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%p.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_11.1(%self.param: ref %MaybeUnformed.3a1) { +// CHECK:STDOUT: fn @Destroy.Op.loc11_11.1(%self.param: ref %MaybeUnformed.9f2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_11.2(%self.param: ref %Optional.f85) { +// CHECK:STDOUT: fn @Destroy.Op.loc11_11.2(%self.param: ref %Optional.659) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10(%self.param: ref %const.acb) { +// CHECK:STDOUT: fn @Destroy.Op.loc10(%self.param: ref %const.f96) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1062,52 +1062,52 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] -// CHECK:STDOUT: %pattern_type.f1e: type = pattern_type %ptr.055 [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] +// CHECK:STDOUT: %pattern_type.de6: type = pattern_type %ptr.037 [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.21f: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.3b3: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.21f) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.d10: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.3b3) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.type.7a7: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.d46: %ptr.as.OptionalStorage.impl.Some.type.7a7 = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.1: = custom_witness (%Destroy.Op.2dd605.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.4d1: %Destroy.type = facet_value %ptr.055, (%custom_witness.e20f1f.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.3a1: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.4d1) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.230: = impl_witness imports.%OptionalStorage.impl_witness_table.404, @ptr.as.OptionalStorage.impl(%S) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.508: %OptionalStorage.type = facet_value %ptr.055, (%OptionalStorage.impl_witness.230) [concrete] -// CHECK:STDOUT: %Optional.f85: type = class_type @Optional, @Optional(%OptionalStorage.facet.508) [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: %ptr.as.OptionalStorage.impl.Some.type.d38: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.191: %ptr.as.OptionalStorage.impl.Some.type.d38 = 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.5b4: %Destroy.type = facet_value %ptr.037, (%custom_witness.df9cc1.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.9f2: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.5b4) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.582: = impl_witness imports.%OptionalStorage.impl_witness_table.7bc, @ptr.as.OptionalStorage.impl(%S) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.0ce: %OptionalStorage.type = facet_value %ptr.037, (%OptionalStorage.impl_witness.582) [concrete] +// CHECK:STDOUT: %Optional.659: type = class_type @Optional, @Optional(%OptionalStorage.facet.0ce) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.c37: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.f85)> [concrete] -// CHECK:STDOUT: %OptionalAs.type.c01: type = facet_type <@OptionalAs, @OptionalAs(%T.4e7)> [symbolic] -// CHECK:STDOUT: %U.847: %OptionalAs.type.c01 = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.d99: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1e6(%T.4e7, %U.847) [symbolic] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.401: %U.as_type.as.ImplicitAs.impl.Convert.type.d99 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.type.97d: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.508)> [concrete] -// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.b97: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.4e7) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.a9b: %T.as_type.as.OptionalAs.impl.Convert.type.b97 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.0a3: = impl_witness imports.%OptionalAs.impl_witness_table.973, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.508) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.97d = facet_value %ptr.055, (%OptionalAs.impl_witness.0a3) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.f5c: = impl_witness imports.%ImplicitAs.impl_witness_table.5f2, @U.as_type.as.ImplicitAs.impl.1e6(%OptionalStorage.facet.508, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.842: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1e6(%OptionalStorage.facet.508, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.f7c: %U.as_type.as.ImplicitAs.impl.Convert.type.842 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.f8e: %ImplicitAs.type.c37 = facet_value %ptr.055, (%ImplicitAs.impl_witness.f5c) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.4b0: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.f85, %ImplicitAs.facet.f8e) [concrete] -// CHECK:STDOUT: %.960: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.4b0, %ImplicitAs.facet.f8e [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.f7c, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.508, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc11_11.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.1c1: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.659)> [concrete] +// CHECK:STDOUT: %OptionalAs.type.3b8: type = facet_type <@OptionalAs, @OptionalAs(%T.220)> [symbolic] +// CHECK:STDOUT: %U.042: %OptionalAs.type.3b8 = symbolic_binding U, 1 [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.ad5: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.167(%T.220, %U.042) [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.331: %U.as_type.as.ImplicitAs.impl.Convert.type.ad5 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.type.561: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.0ce)> [concrete] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.774: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.220) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.5f9: %T.as_type.as.OptionalAs.impl.Convert.type.774 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.impl_witness.72e: = impl_witness imports.%OptionalAs.impl_witness_table.efa, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.0ce) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.561 = facet_value %ptr.037, (%OptionalAs.impl_witness.72e) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.d0f: = impl_witness imports.%ImplicitAs.impl_witness_table.cf7, @U.as_type.as.ImplicitAs.impl.167(%OptionalStorage.facet.0ce, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.cfa: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.167(%OptionalStorage.facet.0ce, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.8f4: %U.as_type.as.ImplicitAs.impl.Convert.type.cfa = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.21e: %ImplicitAs.type.1c1 = facet_value %ptr.037, (%ImplicitAs.impl_witness.d0f) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c92: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.659, %ImplicitAs.facet.21e) [concrete] +// CHECK:STDOUT: %.c09: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c92, %ImplicitAs.facet.21e [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.8f4, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.0ce, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc11_11.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1118,73 +1118,73 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} // 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.c1a: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.d10)] -// CHECK:STDOUT: %Core.import_ref.31a = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.ed3: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some.type (%ptr.as.OptionalStorage.impl.Some.type.7a7) = 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.d46)] -// CHECK:STDOUT: %Core.import_ref.b33 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.d18 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.4ad4 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.404 = impl_witness_table (%Core.import_ref.c1a, %Core.import_ref.31a, %Core.import_ref.ed3, %Core.import_ref.b33, %Core.import_ref.d18, %Core.import_ref.4ad4), @ptr.as.OptionalStorage.impl [concrete] +// 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.26e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.d86: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some.type (%ptr.as.OptionalStorage.impl.Some.type.d38) = 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.191)] +// CHECK:STDOUT: %Core.import_ref.274 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.358 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.db3 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.7bc = impl_witness_table (%Core.import_ref.509, %Core.import_ref.26e, %Core.import_ref.d86, %Core.import_ref.274, %Core.import_ref.358, %Core.import_ref.db3), @ptr.as.OptionalStorage.impl [concrete] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc11_12.1: type = splice_block %Optional [concrete = constants.%Optional.f85] { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.230) [concrete = constants.%OptionalStorage.facet.508] -// CHECK:STDOUT: %.loc11_12.2: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.508] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.508) [concrete = constants.%Optional.f85] +// CHECK:STDOUT: %.loc11_12.1: type = splice_block %Optional [concrete = constants.%Optional.659] { +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.037, (constants.%OptionalStorage.impl_witness.582) [concrete = constants.%OptionalStorage.facet.0ce] +// CHECK:STDOUT: %.loc11_12.2: %OptionalStorage.type = converted constants.%ptr.037, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.0ce] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.0ce) [concrete = constants.%Optional.659] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ce3: @U.as_type.as.ImplicitAs.impl.1e6.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.d99) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.1e6.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.401)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.5f2 = impl_witness_table (%Core.import_ref.ce3), @U.as_type.as.ImplicitAs.impl.1e6 [concrete] -// CHECK:STDOUT: %Core.import_ref.cb8: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.b97) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.a9b)] -// CHECK:STDOUT: %OptionalAs.impl_witness_table.973 = impl_witness_table (%Core.import_ref.cb8), @T.as_type.as.OptionalAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.eb9: @U.as_type.as.ImplicitAs.impl.167.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.ad5) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.167.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.331)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.cf7 = impl_witness_table (%Core.import_ref.eb9), @U.as_type.as.ImplicitAs.impl.167 [concrete] +// CHECK:STDOUT: %Core.import_ref.017: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.774) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.5f9)] +// CHECK:STDOUT: %OptionalAs.impl_witness_table.efa = impl_witness_table (%Core.import_ref.017), @T.as_type.as.OptionalAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.f1e = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.f1e = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.de6 = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.de6 = var_pattern %p.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %p.var: ref %ptr.055 = var %p.var_patt +// CHECK:STDOUT: %p.var: ref %ptr.037 = var %p.var_patt // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] -// CHECK:STDOUT: %G.call: init %ptr.055 = call %G.ref() +// CHECK:STDOUT: %G.call: init %ptr.037 = call %G.ref() // CHECK:STDOUT: assign %p.var, %G.call -// CHECK:STDOUT: %.loc10: type = splice_block %ptr [concrete = constants.%ptr.055] { +// CHECK:STDOUT: %.loc10: type = splice_block %ptr [concrete = constants.%ptr.037] { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr: type = ptr_type %S.ref [concrete = constants.%ptr.055] +// CHECK:STDOUT: %ptr: type = ptr_type %S.ref [concrete = constants.%ptr.037] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: ref %ptr.055 = ref_binding p, %p.var +// CHECK:STDOUT: %p: ref %ptr.037 = ref_binding p, %p.var // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] -// CHECK:STDOUT: %p.ref: ref %ptr.055 = name_ref p, %p -// CHECK:STDOUT: %impl.elem0: %.960 = impl_witness_access constants.%ImplicitAs.impl_witness.f5c, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.f7c] +// CHECK:STDOUT: %p.ref: ref %ptr.037 = name_ref p, %p +// CHECK:STDOUT: %impl.elem0: %.c09 = impl_witness_access constants.%ImplicitAs.impl_witness.d0f, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.8f4] // CHECK:STDOUT: %bound_method.loc11_11.1: = bound_method %p.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.508, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.0ce, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_11.2: = bound_method %p.ref, %specific_fn -// CHECK:STDOUT: %.loc11_11.1: %ptr.055 = acquire_value %p.ref -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.f85 = call %bound_method.loc11_11.2(%.loc11_11.1) -// CHECK:STDOUT: %.loc11_11.2: init %Optional.f85 = converted %p.ref, %U.as_type.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %.loc11_11.3: ref %Optional.f85 = temporary_storage -// CHECK:STDOUT: %.loc11_11.4: ref %Optional.f85 = temporary %.loc11_11.3, %.loc11_11.2 -// CHECK:STDOUT: %.loc11_11.5: %Optional.f85 = acquire_value %.loc11_11.4 +// CHECK:STDOUT: %.loc11_11.1: %ptr.037 = acquire_value %p.ref +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.659 = call %bound_method.loc11_11.2(%.loc11_11.1) +// CHECK:STDOUT: %.loc11_11.2: init %Optional.659 = converted %p.ref, %U.as_type.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %.loc11_11.3: ref %Optional.659 = temporary_storage +// CHECK:STDOUT: %.loc11_11.4: ref %Optional.659 = temporary %.loc11_11.3, %.loc11_11.2 +// CHECK:STDOUT: %.loc11_11.5: %Optional.659 = acquire_value %.loc11_11.4 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc11_11.5) -// CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %.loc11_11.4, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %.loc11_11.4, constants.%Destroy.Op.1a2547.3 // CHECK:STDOUT: %Destroy.Op.call.loc11: init %empty_tuple.type = call %Destroy.Op.bound.loc11(%.loc11_11.4) -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %p.var, constants.%Destroy.Op.2dd605.1 +// 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: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_11.1(%self.param: ref %MaybeUnformed.3a1) { +// CHECK:STDOUT: fn @Destroy.Op.loc11_11.1(%self.param: ref %MaybeUnformed.9f2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_11.2(%self.param: ref %Optional.f85) { +// CHECK:STDOUT: fn @Destroy.Op.loc11_11.2(%self.param: ref %Optional.659) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1237,8 +1237,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] -// CHECK:STDOUT: %ptr.ce4: type = ptr_type %ptr.055 [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.65c: type = ptr_type %ptr.037 [concrete] // CHECK:STDOUT: %IngestDoublePointer.type: type = fn_type @IngestDoublePointer [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %IngestDoublePointer: %IngestDoublePointer.type = struct_value () [concrete] @@ -1268,13 +1268,13 @@ fn F() { // CHECK:STDOUT: %IngestDoublePointer.ref: %IngestDoublePointer.type = name_ref IngestDoublePointer, file.%IngestDoublePointer.decl [concrete = constants.%IngestDoublePointer] // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref.loc10: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] -// CHECK:STDOUT: %foo.call.loc10: init %ptr.ce4 = call imports.%foo.decl() -// CHECK:STDOUT: %.loc10_31.1: %ptr.ce4 = value_of_initializer %foo.call.loc10 -// CHECK:STDOUT: %.loc10_31.2: %ptr.ce4 = converted %foo.call.loc10, %.loc10_31.1 +// CHECK:STDOUT: %foo.call.loc10: init %ptr.65c = call imports.%foo.decl() +// CHECK:STDOUT: %.loc10_31.1: %ptr.65c = value_of_initializer %foo.call.loc10 +// CHECK:STDOUT: %.loc10_31.2: %ptr.65c = converted %foo.call.loc10, %.loc10_31.1 // CHECK:STDOUT: %IngestDoublePointer.call: init %empty_tuple.type = call %IngestDoublePointer.ref(%.loc10_31.2) // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref.loc11: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] -// CHECK:STDOUT: %foo.call.loc11: init %ptr.ce4 = call imports.%foo.decl() +// CHECK:STDOUT: %foo.call.loc11: init %ptr.65c = call imports.%foo.decl() // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1329,51 +1329,51 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.0f5: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.21f: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.3b3: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.21f) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.d10: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.3b3) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.type.7a7: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.d46: %ptr.as.OptionalStorage.impl.Some.type.7a7 = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.1: = custom_witness (%Destroy.Op.2dd605.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.4d1: %Destroy.type = facet_value %ptr.055, (%custom_witness.e20f1f.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.3a1: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.4d1) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.230: = impl_witness imports.%OptionalStorage.impl_witness_table.404, @ptr.as.OptionalStorage.impl(%S) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.508: %OptionalStorage.type = facet_value %ptr.055, (%OptionalStorage.impl_witness.230) [concrete] -// CHECK:STDOUT: %Optional.f85: type = class_type @Optional, @Optional(%OptionalStorage.facet.508) [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: %ptr.as.OptionalStorage.impl.Some.type.d38: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.191: %ptr.as.OptionalStorage.impl.Some.type.d38 = 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.5b4: %Destroy.type = facet_value %ptr.037, (%custom_witness.df9cc1.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.9f2: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.5b4) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.582: = impl_witness imports.%OptionalStorage.impl_witness_table.7bc, @ptr.as.OptionalStorage.impl(%S) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.0ce: %OptionalStorage.type = facet_value %ptr.037, (%OptionalStorage.impl_witness.582) [concrete] +// CHECK:STDOUT: %Optional.659: type = class_type @Optional, @Optional(%OptionalStorage.facet.0ce) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.c37: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.f85)> [concrete] -// CHECK:STDOUT: %OptionalAs.type.c01: type = facet_type <@OptionalAs, @OptionalAs(%T.4e7)> [symbolic] -// CHECK:STDOUT: %U.847: %OptionalAs.type.c01 = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.d99: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1e6(%T.4e7, %U.847) [symbolic] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.401: %U.as_type.as.ImplicitAs.impl.Convert.type.d99 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.type.97d: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.508)> [concrete] -// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.b97: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.4e7) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.a9b: %T.as_type.as.OptionalAs.impl.Convert.type.b97 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.0a3: = impl_witness imports.%OptionalAs.impl_witness_table.973, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.508) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.97d = facet_value %ptr.055, (%OptionalAs.impl_witness.0a3) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.f5c: = impl_witness imports.%ImplicitAs.impl_witness_table.5f2, @U.as_type.as.ImplicitAs.impl.1e6(%OptionalStorage.facet.508, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.842: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1e6(%OptionalStorage.facet.508, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.f7c: %U.as_type.as.ImplicitAs.impl.Convert.type.842 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.f8e: %ImplicitAs.type.c37 = facet_value %ptr.055, (%ImplicitAs.impl_witness.f5c) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.4b0: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.f85, %ImplicitAs.facet.f8e) [concrete] -// CHECK:STDOUT: %.960: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.4b0, %ImplicitAs.facet.f8e [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.f7c, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.508, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc9_11.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.1c1: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.659)> [concrete] +// CHECK:STDOUT: %OptionalAs.type.3b8: type = facet_type <@OptionalAs, @OptionalAs(%T.220)> [symbolic] +// CHECK:STDOUT: %U.042: %OptionalAs.type.3b8 = symbolic_binding U, 1 [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.ad5: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.167(%T.220, %U.042) [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.331: %U.as_type.as.ImplicitAs.impl.Convert.type.ad5 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.type.561: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.0ce)> [concrete] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.774: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.220) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.5f9: %T.as_type.as.OptionalAs.impl.Convert.type.774 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.impl_witness.72e: = impl_witness imports.%OptionalAs.impl_witness_table.efa, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.0ce) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.561 = facet_value %ptr.037, (%OptionalAs.impl_witness.72e) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.d0f: = impl_witness imports.%ImplicitAs.impl_witness_table.cf7, @U.as_type.as.ImplicitAs.impl.167(%OptionalStorage.facet.0ce, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.cfa: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.167(%OptionalStorage.facet.0ce, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.8f4: %U.as_type.as.ImplicitAs.impl.Convert.type.cfa = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.21e: %ImplicitAs.type.1c1 = facet_value %ptr.037, (%ImplicitAs.impl_witness.d0f) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c92: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.659, %ImplicitAs.facet.21e) [concrete] +// CHECK:STDOUT: %.c09: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c92, %ImplicitAs.facet.21e [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.8f4, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.0ce, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_11.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] // CHECK:STDOUT: %S.cpp_destructor: %S.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -1386,35 +1386,35 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} // 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.c1a: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.d10)] -// CHECK:STDOUT: %Core.import_ref.31a = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.ed3: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some.type (%ptr.as.OptionalStorage.impl.Some.type.7a7) = 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.d46)] -// CHECK:STDOUT: %Core.import_ref.b33 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.d18 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.4ad4 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.404 = impl_witness_table (%Core.import_ref.c1a, %Core.import_ref.31a, %Core.import_ref.ed3, %Core.import_ref.b33, %Core.import_ref.d18, %Core.import_ref.4ad4), @ptr.as.OptionalStorage.impl [concrete] +// 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.26e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.d86: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some.type (%ptr.as.OptionalStorage.impl.Some.type.d38) = 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.191)] +// CHECK:STDOUT: %Core.import_ref.274 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.358 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.db3 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.7bc = impl_witness_table (%Core.import_ref.509, %Core.import_ref.26e, %Core.import_ref.d86, %Core.import_ref.274, %Core.import_ref.358, %Core.import_ref.db3), @ptr.as.OptionalStorage.impl [concrete] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc9_13.1: type = splice_block %Optional [concrete = constants.%Optional.f85] { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.230) [concrete = constants.%OptionalStorage.facet.508] -// CHECK:STDOUT: %.loc9_13.2: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.508] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.508) [concrete = constants.%Optional.f85] +// CHECK:STDOUT: %.loc9_13.1: type = splice_block %Optional [concrete = constants.%Optional.659] { +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.037, (constants.%OptionalStorage.impl_witness.582) [concrete = constants.%OptionalStorage.facet.0ce] +// CHECK:STDOUT: %.loc9_13.2: %OptionalStorage.type = converted constants.%ptr.037, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.0ce] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.0ce) [concrete = constants.%Optional.659] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ce3: @U.as_type.as.ImplicitAs.impl.1e6.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.d99) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.1e6.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.401)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.5f2 = impl_witness_table (%Core.import_ref.ce3), @U.as_type.as.ImplicitAs.impl.1e6 [concrete] -// CHECK:STDOUT: %Core.import_ref.cb8: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.b97) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.a9b)] -// CHECK:STDOUT: %OptionalAs.impl_witness_table.973 = impl_witness_table (%Core.import_ref.cb8), @T.as_type.as.OptionalAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.eb9: @U.as_type.as.ImplicitAs.impl.167.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.ad5) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.167.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.331)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.cf7 = impl_witness_table (%Core.import_ref.eb9), @U.as_type.as.ImplicitAs.impl.167 [concrete] +// CHECK:STDOUT: %Core.import_ref.017: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.774) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.5f9)] +// CHECK:STDOUT: %OptionalAs.impl_witness_table.efa = impl_witness_table (%Core.import_ref.017), @T.as_type.as.OptionalAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.0f5 = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.0f5 = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -1429,30 +1429,30 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s -// CHECK:STDOUT: %addr: %ptr.055 = addr_of %s.ref -// CHECK:STDOUT: %impl.elem0: %.960 = impl_witness_access constants.%ImplicitAs.impl_witness.f5c, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.f7c] +// CHECK:STDOUT: %addr: %ptr.037 = addr_of %s.ref +// CHECK:STDOUT: %impl.elem0: %.c09 = impl_witness_access constants.%ImplicitAs.impl_witness.d0f, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.8f4] // CHECK:STDOUT: %bound_method.loc9_11.1: = bound_method %addr, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.508, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.0ce, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_11.2: = bound_method %addr, %specific_fn -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.f85 = call %bound_method.loc9_11.2(%addr) -// CHECK:STDOUT: %.loc9_11.1: init %Optional.f85 = converted %addr, %U.as_type.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %.loc9_11.2: ref %Optional.f85 = temporary_storage -// CHECK:STDOUT: %.loc9_11.3: ref %Optional.f85 = temporary %.loc9_11.2, %.loc9_11.1 -// CHECK:STDOUT: %.loc9_11.4: %Optional.f85 = acquire_value %.loc9_11.3 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.659 = call %bound_method.loc9_11.2(%addr) +// CHECK:STDOUT: %.loc9_11.1: init %Optional.659 = converted %addr, %U.as_type.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %.loc9_11.2: ref %Optional.659 = temporary_storage +// CHECK:STDOUT: %.loc9_11.3: ref %Optional.659 = temporary %.loc9_11.2, %.loc9_11.1 +// CHECK:STDOUT: %.loc9_11.4: %Optional.659 = acquire_value %.loc9_11.3 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc9_11.4) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc9_11.3, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc9_11.3, constants.%Destroy.Op.1a2547.3 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc9_11.3) // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor // CHECK:STDOUT: %S.cpp_destructor.call: init %empty_tuple.type = call %S.cpp_destructor.bound(%s.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_11.1(%self.param: ref %MaybeUnformed.3a1) { +// CHECK:STDOUT: fn @Destroy.Op.loc9_11.1(%self.param: ref %MaybeUnformed.9f2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_11.2(%self.param: ref %Optional.f85) { +// CHECK:STDOUT: fn @Destroy.Op.loc9_11.2(%self.param: ref %Optional.659) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1466,34 +1466,34 @@ fn F() { // CHECK:STDOUT: %Optional.type: type = generic_class_type @Optional [concrete] // CHECK:STDOUT: %Optional.generic: %Optional.type = struct_value () [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Optional.None.type.bf3: type = fn_type @Optional.None, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.None.216: %Optional.None.type.bf3 = struct_value () [symbolic] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Optional.None.type.bdc: type = fn_type @Optional.None, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.None.01e: %Optional.None.type.bdc = struct_value () [symbolic] // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.21f: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.3b3: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.21f) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.d10: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.3b3) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.type.da2: type = fn_type @ptr.as.OptionalStorage.impl.None, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.41b: %ptr.as.OptionalStorage.impl.None.type.da2 = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.1: = custom_witness (%Destroy.Op.2dd605.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.4d1: %Destroy.type = facet_value %ptr.055, (%custom_witness.e20f1f.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.3a1: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.4d1) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.dc1: = impl_witness imports.%OptionalStorage.impl_witness_table.885, @ptr.as.OptionalStorage.impl(%S) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.055, (%OptionalStorage.impl_witness.dc1) [concrete] -// CHECK:STDOUT: %Optional.11c: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %Optional.None.type.8c9: type = fn_type @Optional.None, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %Optional.None.71d: %Optional.None.type.8c9 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %Optional.None.71d, @Optional.None(%OptionalStorage.facet) [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: %ptr.as.OptionalStorage.impl.None.type.703: type = fn_type @ptr.as.OptionalStorage.impl.None, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.467: %ptr.as.OptionalStorage.impl.None.type.703 = 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.5b4: %Destroy.type = facet_value %ptr.037, (%custom_witness.df9cc1.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.9f2: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.5b4) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.725: = impl_witness imports.%OptionalStorage.impl_witness_table.aa4, @ptr.as.OptionalStorage.impl(%S) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.037, (%OptionalStorage.impl_witness.725) [concrete] +// CHECK:STDOUT: %Optional.db1: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Optional.None.type.fc8: type = fn_type @Optional.None, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Optional.None.9d4: %Optional.None.type.fc8 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %Optional.None.9d4, @Optional.None(%OptionalStorage.facet) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc8_38.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_38.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1510,23 +1510,23 @@ fn F() { // 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.Optional: %Optional.type = import_ref Core//prelude/types/optional, Optional, loaded [concrete = constants.%Optional.generic] -// CHECK:STDOUT: %Core.import_ref.c2b: @Optional.%Optional.None.type (%Optional.None.type.bf3) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @Optional.%Optional.None (constants.%Optional.None.216)] +// CHECK:STDOUT: %Core.import_ref.e9f: @Optional.%Optional.None.type (%Optional.None.type.bdc) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @Optional.%Optional.None (constants.%Optional.None.01e)] // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} -// CHECK:STDOUT: %Core.import_ref.c1a: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.d10)] -// CHECK:STDOUT: %Core.import_ref.d20: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.None.type (%ptr.as.OptionalStorage.impl.None.type.da2) = 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.41b)] -// CHECK:STDOUT: %Core.import_ref.97e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.b33 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.d18 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.4ad = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.885 = impl_witness_table (%Core.import_ref.c1a, %Core.import_ref.d20, %Core.import_ref.97e, %Core.import_ref.b33, %Core.import_ref.d18, %Core.import_ref.4ad), @ptr.as.OptionalStorage.impl [concrete] +// 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.df2: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.None.type (%ptr.as.OptionalStorage.impl.None.type.703) = 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.467)] +// CHECK:STDOUT: %Core.import_ref.a6e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.274 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.358 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.db3 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.aa4 = impl_witness_table (%Core.import_ref.509, %Core.import_ref.df2, %Core.import_ref.a6e, %Core.import_ref.274, %Core.import_ref.358, %Core.import_ref.db3), @ptr.as.OptionalStorage.impl [concrete] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc8_39.1: type = splice_block %Optional [concrete = constants.%Optional.11c] { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.dc1) [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %.loc8_39.2: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.11c] +// CHECK:STDOUT: %.loc8_39.1: type = splice_block %Optional [concrete = constants.%Optional.db1] { +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.037, (constants.%OptionalStorage.impl_witness.725) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %.loc8_39.2: %OptionalStorage.type = converted constants.%ptr.037, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.db1] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1541,29 +1541,29 @@ fn F() { // CHECK:STDOUT: %Optional.ref: %Optional.type = name_ref Optional, imports.%Core.Optional [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Cpp.ref.loc8_25: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr: type = ptr_type %S.ref [concrete = constants.%ptr.055] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.dc1) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %ptr: type = ptr_type %S.ref [concrete = constants.%ptr.037] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.725) [concrete = constants.%OptionalStorage.facet] // CHECK:STDOUT: %.loc8_31: %OptionalStorage.type = converted %ptr, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.11c] -// CHECK:STDOUT: %.loc8_32: %Optional.None.type.8c9 = specific_constant imports.%Core.import_ref.c2b, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.None.71d] -// CHECK:STDOUT: %None.ref: %Optional.None.type.8c9 = name_ref None, %.loc8_32 [concrete = constants.%Optional.None.71d] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.db1] +// CHECK:STDOUT: %.loc8_32: %Optional.None.type.fc8 = specific_constant imports.%Core.import_ref.e9f, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.None.9d4] +// CHECK:STDOUT: %None.ref: %Optional.None.type.fc8 = name_ref None, %.loc8_32 [concrete = constants.%Optional.None.9d4] // CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %None.ref, @Optional.None(constants.%OptionalStorage.facet) [concrete = constants.%Optional.None.specific_fn] -// CHECK:STDOUT: %Optional.None.call: init %Optional.11c = call %Optional.None.specific_fn() -// CHECK:STDOUT: %.loc8_38.1: ref %Optional.11c = temporary_storage -// CHECK:STDOUT: %.loc8_38.2: ref %Optional.11c = temporary %.loc8_38.1, %Optional.None.call -// CHECK:STDOUT: %.loc8_38.3: %Optional.11c = acquire_value %.loc8_38.2 +// CHECK:STDOUT: %Optional.None.call: init %Optional.db1 = call %Optional.None.specific_fn() +// CHECK:STDOUT: %.loc8_38.1: ref %Optional.db1 = temporary_storage +// CHECK:STDOUT: %.loc8_38.2: ref %Optional.db1 = temporary %.loc8_38.1, %Optional.None.call +// CHECK:STDOUT: %.loc8_38.3: %Optional.db1 = acquire_value %.loc8_38.2 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc8_38.3) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc8_38.2, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc8_38.2, constants.%Destroy.Op.1a2547.3 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc8_38.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_38.1(%self.param: ref %MaybeUnformed.3a1) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_38.1(%self.param: ref %MaybeUnformed.9f2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_38.2(%self.param: ref %Optional.11c) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_38.2(%self.param: ref %Optional.db1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1574,7 +1574,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.0f5: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] @@ -1582,33 +1582,33 @@ fn F() { // CHECK:STDOUT: %Optional.type: type = generic_class_type @Optional [concrete] // CHECK:STDOUT: %Optional.generic: %Optional.type = struct_value () [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Optional.Some.type.b88: type = fn_type @Optional.Some, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.Some.e32: %Optional.Some.type.b88 = struct_value () [symbolic] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Optional.Some.type.304: type = fn_type @Optional.Some, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.Some.2a0: %Optional.Some.type.304 = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.21f: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.3b3: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.21f) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.d10: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.3b3) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.type.7a7: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.d46: %ptr.as.OptionalStorage.impl.Some.type.7a7 = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.1: = custom_witness (%Destroy.Op.2dd605.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.4d1: %Destroy.type = facet_value %ptr.055, (%custom_witness.e20f1f.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.3a1: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.4d1) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.230: = impl_witness imports.%OptionalStorage.impl_witness_table.404, @ptr.as.OptionalStorage.impl(%S) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.055, (%OptionalStorage.impl_witness.230) [concrete] -// CHECK:STDOUT: %Optional.f85: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %Optional.Some.type.d65: type = fn_type @Optional.Some, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %Optional.Some.b60: %Optional.Some.type.d65 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Some.specific_fn: = specific_function %Optional.Some.b60, @Optional.Some(%OptionalStorage.facet) [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: %ptr.as.OptionalStorage.impl.Some.type.d38: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.191: %ptr.as.OptionalStorage.impl.Some.type.d38 = 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.5b4: %Destroy.type = facet_value %ptr.037, (%custom_witness.df9cc1.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.9f2: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.5b4) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.582: = impl_witness imports.%OptionalStorage.impl_witness_table.7bc, @ptr.as.OptionalStorage.impl(%S) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.037, (%OptionalStorage.impl_witness.582) [concrete] +// CHECK:STDOUT: %Optional.659: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Optional.Some.type.004: type = fn_type @Optional.Some, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Optional.Some.9ba: %Optional.Some.type.004 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Some.specific_fn: = specific_function %Optional.Some.9ba, @Optional.Some(%OptionalStorage.facet) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc9_40.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_40.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] // CHECK:STDOUT: %S.cpp_destructor: %S.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -1628,22 +1628,22 @@ fn F() { // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} // 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.Optional: %Optional.type = import_ref Core//prelude/types/optional, Optional, loaded [concrete = constants.%Optional.generic] -// CHECK:STDOUT: %Core.import_ref.072: @Optional.%Optional.Some.type (%Optional.Some.type.b88) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @Optional.%Optional.Some (constants.%Optional.Some.e32)] -// CHECK:STDOUT: %Core.import_ref.c1a: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.d10)] -// CHECK:STDOUT: %Core.import_ref.31a = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.ed3: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some.type (%ptr.as.OptionalStorage.impl.Some.type.7a7) = 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.d46)] -// CHECK:STDOUT: %Core.import_ref.b33 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.d18 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.4ad = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.404 = impl_witness_table (%Core.import_ref.c1a, %Core.import_ref.31a, %Core.import_ref.ed3, %Core.import_ref.b33, %Core.import_ref.d18, %Core.import_ref.4ad), @ptr.as.OptionalStorage.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.48e: @Optional.%Optional.Some.type (%Optional.Some.type.304) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @Optional.%Optional.Some (constants.%Optional.Some.2a0)] +// 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.26e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.d86: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some.type (%ptr.as.OptionalStorage.impl.Some.type.d38) = 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.191)] +// CHECK:STDOUT: %Core.import_ref.274 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.358 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.db3 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.7bc = impl_witness_table (%Core.import_ref.509, %Core.import_ref.26e, %Core.import_ref.d86, %Core.import_ref.274, %Core.import_ref.358, %Core.import_ref.db3), @ptr.as.OptionalStorage.impl [concrete] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc9_41.1: type = splice_block %Optional [concrete = constants.%Optional.f85] { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.230) [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %.loc9_41.2: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.f85] +// CHECK:STDOUT: %.loc9_41.1: type = splice_block %Optional [concrete = constants.%Optional.659] { +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.037, (constants.%OptionalStorage.impl_witness.582) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %.loc9_41.2: %OptionalStorage.type = converted constants.%ptr.037, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.659] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1653,8 +1653,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.0f5 = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.0f5 = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -1672,35 +1672,35 @@ fn F() { // CHECK:STDOUT: %Optional.ref: %Optional.type = name_ref Optional, imports.%Core.Optional [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Cpp.ref.loc9_25: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc9: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr: type = ptr_type %S.ref.loc9 [concrete = constants.%ptr.055] -// CHECK:STDOUT: %OptionalStorage.facet.loc9_31: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.230) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %ptr: type = ptr_type %S.ref.loc9 [concrete = constants.%ptr.037] +// CHECK:STDOUT: %OptionalStorage.facet.loc9_31: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.582) [concrete = constants.%OptionalStorage.facet] // CHECK:STDOUT: %.loc9_31: %OptionalStorage.type = converted %ptr, %OptionalStorage.facet.loc9_31 [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.f85] -// CHECK:STDOUT: %.loc9_32: %Optional.Some.type.d65 = specific_constant imports.%Core.import_ref.072, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.Some.b60] -// CHECK:STDOUT: %Some.ref: %Optional.Some.type.d65 = name_ref Some, %.loc9_32 [concrete = constants.%Optional.Some.b60] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.659] +// CHECK:STDOUT: %.loc9_32: %Optional.Some.type.004 = specific_constant imports.%Core.import_ref.48e, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.Some.9ba] +// CHECK:STDOUT: %Some.ref: %Optional.Some.type.004 = name_ref Some, %.loc9_32 [concrete = constants.%Optional.Some.9ba] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s -// CHECK:STDOUT: %addr: %ptr.055 = addr_of %s.ref -// CHECK:STDOUT: %OptionalStorage.facet.loc9_40: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.230) [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %.loc9_40.1: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet.loc9_40 [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %addr: %ptr.037 = addr_of %s.ref +// CHECK:STDOUT: %OptionalStorage.facet.loc9_40: %OptionalStorage.type = facet_value constants.%ptr.037, (constants.%OptionalStorage.impl_witness.582) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %.loc9_40.1: %OptionalStorage.type = converted constants.%ptr.037, %OptionalStorage.facet.loc9_40 [concrete = constants.%OptionalStorage.facet] // CHECK:STDOUT: %Optional.Some.specific_fn: = specific_function %Some.ref, @Optional.Some(constants.%OptionalStorage.facet) [concrete = constants.%Optional.Some.specific_fn] -// CHECK:STDOUT: %Optional.Some.call: init %Optional.f85 = call %Optional.Some.specific_fn(%addr) -// CHECK:STDOUT: %.loc9_40.2: ref %Optional.f85 = temporary_storage -// CHECK:STDOUT: %.loc9_40.3: ref %Optional.f85 = temporary %.loc9_40.2, %Optional.Some.call -// CHECK:STDOUT: %.loc9_40.4: %Optional.f85 = acquire_value %.loc9_40.3 +// CHECK:STDOUT: %Optional.Some.call: init %Optional.659 = call %Optional.Some.specific_fn(%addr) +// CHECK:STDOUT: %.loc9_40.2: ref %Optional.659 = temporary_storage +// CHECK:STDOUT: %.loc9_40.3: ref %Optional.659 = temporary %.loc9_40.2, %Optional.Some.call +// CHECK:STDOUT: %.loc9_40.4: %Optional.659 = acquire_value %.loc9_40.3 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc9_40.4) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc9_40.3, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc9_40.3, constants.%Destroy.Op.1a2547.3 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc9_40.3) // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor // CHECK:STDOUT: %S.cpp_destructor.call: init %empty_tuple.type = call %S.cpp_destructor.bound(%s.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_40.1(%self.param: ref %MaybeUnformed.3a1) { +// CHECK:STDOUT: fn @Destroy.Op.loc9_40.1(%self.param: ref %MaybeUnformed.9f2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_40.2(%self.param: ref %Optional.f85) { +// CHECK:STDOUT: fn @Destroy.Op.loc9_40.2(%self.param: ref %Optional.659) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1714,28 +1714,28 @@ fn F() { // CHECK:STDOUT: %get.cpp_overload_set.type: type = cpp_overload_set_type @get.cpp_overload_set [concrete] // CHECK:STDOUT: %get.cpp_overload_set.value: %get.cpp_overload_set.type = cpp_overload_set_value @get.cpp_overload_set [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.21f: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.3b3: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.21f) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.d10: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.3b3) [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.1: = custom_witness (%Destroy.Op.2dd605.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.4d1: %Destroy.type = facet_value %ptr.055, (%custom_witness.e20f1f.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.3a1: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.4d1) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.a28: = impl_witness imports.%OptionalStorage.impl_witness_table.cee, @ptr.as.OptionalStorage.impl(%S) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.055, (%OptionalStorage.impl_witness.a28) [concrete] -// CHECK:STDOUT: %Optional.3a5: type = class_type @Optional, @Optional(%OptionalStorage.facet) [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: %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.5b4: %Destroy.type = facet_value %ptr.037, (%custom_witness.df9cc1.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.9f2: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.5b4) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.392: = impl_witness imports.%OptionalStorage.impl_witness_table.76e, @ptr.as.OptionalStorage.impl(%S) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.037, (%OptionalStorage.impl_witness.392) [concrete] +// CHECK:STDOUT: %Optional.19d: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] // CHECK:STDOUT: %get.type: type = fn_type @get [concrete] // CHECK:STDOUT: %get: %get.type = struct_value () [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc8_19.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc8_19.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1746,29 +1746,29 @@ fn F() { // 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: %get.cpp_overload_set.value: %get.cpp_overload_set.type = cpp_overload_set_value @get.cpp_overload_set [concrete = constants.%get.cpp_overload_set.value] -// CHECK:STDOUT: %Core.import_ref.c1a: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.d10)] -// CHECK:STDOUT: %Core.import_ref.31a = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.97e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.b33 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.d18 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.4ad = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.cee = impl_witness_table (%Core.import_ref.c1a, %Core.import_ref.31a, %Core.import_ref.97e, %Core.import_ref.b33, %Core.import_ref.d18, %Core.import_ref.4ad), @ptr.as.OptionalStorage.impl [concrete] +// 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.26e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.a6e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.274 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.358 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.db3 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.76e = impl_witness_table (%Core.import_ref.509, %Core.import_ref.26e, %Core.import_ref.a6e, %Core.import_ref.274, %Core.import_ref.358, %Core.import_ref.db3), @ptr.as.OptionalStorage.impl [concrete] // CHECK:STDOUT: %get.decl: %get.type = fn_decl @get [concrete = constants.%get] { // CHECK:STDOUT: // CHECK:STDOUT: } { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.a28) [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %.loc8: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.3a5] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.037, (constants.%OptionalStorage.impl_witness.392) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %.loc8: %OptionalStorage.type = converted constants.%ptr.037, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.19d] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc8_20.1: type = splice_block %Optional [concrete = constants.%Optional.3a5] { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.a28) [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %.loc8_20.2: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.3a5] +// CHECK:STDOUT: %.loc8_20.1: type = splice_block %Optional [concrete = constants.%Optional.19d] { +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.037, (constants.%OptionalStorage.impl_witness.392) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %.loc8_20.2: %OptionalStorage.type = converted constants.%ptr.037, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.19d] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1780,22 +1780,22 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %Cpp.ref.loc8_11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %get.ref: %get.cpp_overload_set.type = name_ref get, imports.%get.cpp_overload_set.value [concrete = constants.%get.cpp_overload_set.value] -// CHECK:STDOUT: %get.call: init %Optional.3a5 = call imports.%get.decl() -// CHECK:STDOUT: %.loc8_19.1: ref %Optional.3a5 = temporary_storage -// CHECK:STDOUT: %.loc8_19.2: ref %Optional.3a5 = temporary %.loc8_19.1, %get.call -// CHECK:STDOUT: %.loc8_19.3: %Optional.3a5 = acquire_value %.loc8_19.2 +// CHECK:STDOUT: %get.call: init %Optional.19d = call imports.%get.decl() +// CHECK:STDOUT: %.loc8_19.1: ref %Optional.19d = temporary_storage +// CHECK:STDOUT: %.loc8_19.2: ref %Optional.19d = temporary %.loc8_19.1, %get.call +// CHECK:STDOUT: %.loc8_19.3: %Optional.19d = acquire_value %.loc8_19.2 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc8_19.3) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc8_19.2, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc8_19.2, constants.%Destroy.Op.1a2547.3 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc8_19.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_19.1(%self.param: ref %MaybeUnformed.3a1) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_19.1(%self.param: ref %MaybeUnformed.9f2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_19.2(%self.param: ref %Optional.3a5) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_19.2(%self.param: ref %Optional.19d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1806,11 +1806,11 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.0f5: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] -// CHECK:STDOUT: %pattern_type.f1e: type = pattern_type %ptr.055 [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] +// CHECK:STDOUT: %pattern_type.de6: type = pattern_type %ptr.037 [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] @@ -1837,8 +1837,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.0f5 = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.0f5 = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -1851,21 +1851,21 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %s: ref %S = ref_binding s, %s.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.f1e = value_binding_pattern p [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.de6 = value_binding_pattern p [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc13_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s -// CHECK:STDOUT: %addr: %ptr.055 = addr_of %s.ref -// CHECK:STDOUT: %foo.call: init %ptr.055 = call imports.%foo.decl(%addr) -// CHECK:STDOUT: %.loc13_22: type = splice_block %ptr [concrete = constants.%ptr.055] { +// CHECK:STDOUT: %addr: %ptr.037 = addr_of %s.ref +// CHECK:STDOUT: %foo.call: init %ptr.037 = call imports.%foo.decl(%addr) +// CHECK:STDOUT: %.loc13_22: type = splice_block %ptr [concrete = constants.%ptr.037] { // CHECK:STDOUT: %Cpp.ref.loc13_17: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc13: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr: type = ptr_type %S.ref.loc13 [concrete = constants.%ptr.055] +// CHECK:STDOUT: %ptr: type = ptr_type %S.ref.loc13 [concrete = constants.%ptr.037] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc13_36.1: %ptr.055 = value_of_initializer %foo.call -// CHECK:STDOUT: %.loc13_36.2: %ptr.055 = converted %foo.call, %.loc13_36.1 -// CHECK:STDOUT: %p: %ptr.055 = value_binding p, %.loc13_36.2 +// CHECK:STDOUT: %.loc13_36.1: %ptr.037 = value_of_initializer %foo.call +// CHECK:STDOUT: %.loc13_36.2: %ptr.037 = converted %foo.call, %.loc13_36.1 +// CHECK:STDOUT: %p: %ptr.037 = value_binding p, %.loc13_36.2 // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor // CHECK:STDOUT: %S.cpp_destructor.call: init %empty_tuple.type = call %S.cpp_destructor.bound(%s.var) // CHECK:STDOUT: @@ -1877,61 +1877,61 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.0f5: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %Direct.cpp_overload_set.type: type = cpp_overload_set_type @Direct.cpp_overload_set [concrete] // CHECK:STDOUT: %Direct.cpp_overload_set.value: %Direct.cpp_overload_set.type = cpp_overload_set_value @Direct.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %Optional.type: type = generic_class_type @Optional [concrete] // CHECK:STDOUT: %Optional.generic: %Optional.type = struct_value () [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.21f: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.3b3: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.21f) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.d10: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.3b3) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.type.7a7: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.d46: %ptr.as.OptionalStorage.impl.Some.type.7a7 = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.1: = custom_witness (%Destroy.Op.2dd605.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.4d1: %Destroy.type = facet_value %ptr.055, (%custom_witness.e20f1f.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.3a1: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.4d1) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.230: = impl_witness imports.%OptionalStorage.impl_witness_table.404, @ptr.as.OptionalStorage.impl(%S) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.508: %OptionalStorage.type = facet_value %ptr.055, (%OptionalStorage.impl_witness.230) [concrete] -// CHECK:STDOUT: %Optional.f85: type = class_type @Optional, @Optional(%OptionalStorage.facet.508) [concrete] -// CHECK:STDOUT: %pattern_type.1b2: type = pattern_type %Optional.f85 [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: %ptr.as.OptionalStorage.impl.Some.type.d38: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.191: %ptr.as.OptionalStorage.impl.Some.type.d38 = 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.5b4: %Destroy.type = facet_value %ptr.037, (%custom_witness.df9cc1.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.9f2: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.5b4) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.582: = impl_witness imports.%OptionalStorage.impl_witness_table.7bc, @ptr.as.OptionalStorage.impl(%S) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.0ce: %OptionalStorage.type = facet_value %ptr.037, (%OptionalStorage.impl_witness.582) [concrete] +// CHECK:STDOUT: %Optional.659: type = class_type @Optional, @Optional(%OptionalStorage.facet.0ce) [concrete] +// CHECK:STDOUT: %pattern_type.9f4: type = pattern_type %Optional.659 [concrete] // CHECK:STDOUT: %Direct.type: type = fn_type @Direct [concrete] // CHECK:STDOUT: %Direct: %Direct.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.c37: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.f85)> [concrete] -// CHECK:STDOUT: %OptionalAs.type.c01: type = facet_type <@OptionalAs, @OptionalAs(%T.4e7)> [symbolic] -// CHECK:STDOUT: %U.847: %OptionalAs.type.c01 = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.d99: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1e6(%T.4e7, %U.847) [symbolic] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.401: %U.as_type.as.ImplicitAs.impl.Convert.type.d99 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.type.97d: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.508)> [concrete] -// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.b97: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.4e7) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.a9b: %T.as_type.as.OptionalAs.impl.Convert.type.b97 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.0a3: = impl_witness imports.%OptionalAs.impl_witness_table.973, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.508) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.97d = facet_value %ptr.055, (%OptionalAs.impl_witness.0a3) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.f5c: = impl_witness imports.%ImplicitAs.impl_witness_table.5f2, @U.as_type.as.ImplicitAs.impl.1e6(%OptionalStorage.facet.508, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.842: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1e6(%OptionalStorage.facet.508, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.f7c: %U.as_type.as.ImplicitAs.impl.Convert.type.842 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.f8e: %ImplicitAs.type.c37 = facet_value %ptr.055, (%ImplicitAs.impl_witness.f5c) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.4b0: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.f85, %ImplicitAs.facet.f8e) [concrete] -// CHECK:STDOUT: %.960: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.4b0, %ImplicitAs.facet.f8e [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.f7c, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.508, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.1c1: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.659)> [concrete] +// CHECK:STDOUT: %OptionalAs.type.3b8: type = facet_type <@OptionalAs, @OptionalAs(%T.220)> [symbolic] +// CHECK:STDOUT: %U.042: %OptionalAs.type.3b8 = symbolic_binding U, 1 [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.ad5: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.167(%T.220, %U.042) [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.331: %U.as_type.as.ImplicitAs.impl.Convert.type.ad5 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.type.561: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.0ce)> [concrete] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.774: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.220) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.5f9: %T.as_type.as.OptionalAs.impl.Convert.type.774 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.impl_witness.72e: = impl_witness imports.%OptionalAs.impl_witness_table.efa, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.0ce) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.561 = facet_value %ptr.037, (%OptionalAs.impl_witness.72e) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.d0f: = impl_witness imports.%ImplicitAs.impl_witness_table.cf7, @U.as_type.as.ImplicitAs.impl.167(%OptionalStorage.facet.0ce, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.cfa: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.167(%OptionalStorage.facet.0ce, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.8f4: %U.as_type.as.ImplicitAs.impl.Convert.type.cfa = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.21e: %ImplicitAs.type.1c1 = facet_value %ptr.037, (%ImplicitAs.impl_witness.d0f) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c92: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.659, %ImplicitAs.facet.21e) [concrete] +// CHECK:STDOUT: %.c09: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c92, %ImplicitAs.facet.21e [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.8f4, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.0ce, %OptionalAs.facet) [concrete] // CHECK:STDOUT: %Indirect.cpp_overload_set.type: type = cpp_overload_set_type @Indirect.cpp_overload_set [concrete] // CHECK:STDOUT: %Indirect.cpp_overload_set.value: %Indirect.cpp_overload_set.type = cpp_overload_set_value @Indirect.cpp_overload_set [concrete] // CHECK:STDOUT: %Indirect__carbon_thunk.type: type = fn_type @Indirect__carbon_thunk [concrete] // CHECK:STDOUT: %Indirect__carbon_thunk: %Indirect__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %.f11: ref %S = temporary invalid, %S.val [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc13_65.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %.a94: ref %S = temporary invalid, %S.val [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc13_65.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] // CHECK:STDOUT: %S.cpp_destructor: %S.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -1953,39 +1953,39 @@ fn F() { // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} // CHECK:STDOUT: %Direct.cpp_overload_set.value: %Direct.cpp_overload_set.type = cpp_overload_set_value @Direct.cpp_overload_set [concrete = constants.%Direct.cpp_overload_set.value] // CHECK:STDOUT: %Core.Optional: %Optional.type = import_ref Core//prelude/types/optional, Optional, loaded [concrete = constants.%Optional.generic] -// CHECK:STDOUT: %Core.import_ref.c1a: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.d10)] -// CHECK:STDOUT: %Core.import_ref.31a = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.ed3: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some.type (%ptr.as.OptionalStorage.impl.Some.type.7a7) = 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.d46)] -// CHECK:STDOUT: %Core.import_ref.b33 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.d18 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.4ad4 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.404 = impl_witness_table (%Core.import_ref.c1a, %Core.import_ref.31a, %Core.import_ref.ed3, %Core.import_ref.b33, %Core.import_ref.d18, %Core.import_ref.4ad4), @ptr.as.OptionalStorage.impl [concrete] +// 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.26e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.d86: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some.type (%ptr.as.OptionalStorage.impl.Some.type.d38) = 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.191)] +// CHECK:STDOUT: %Core.import_ref.274 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.358 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.db3 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.7bc = impl_witness_table (%Core.import_ref.509, %Core.import_ref.26e, %Core.import_ref.d86, %Core.import_ref.274, %Core.import_ref.358, %Core.import_ref.db3), @ptr.as.OptionalStorage.impl [concrete] // CHECK:STDOUT: %Direct.decl: %Direct.type = fn_decl @Direct [concrete = constants.%Direct] { // CHECK:STDOUT: // CHECK:STDOUT: } { -// CHECK:STDOUT: %OptionalStorage.facet.loc11_16.1: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.230) [concrete = constants.%OptionalStorage.facet.508] -// CHECK:STDOUT: %.loc11_16.1: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet.loc11_16.1 [concrete = constants.%OptionalStorage.facet.508] -// CHECK:STDOUT: %Optional.loc11_16.1: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.508) [concrete = constants.%Optional.f85] +// CHECK:STDOUT: %OptionalStorage.facet.loc11_16.1: %OptionalStorage.type = facet_value constants.%ptr.037, (constants.%OptionalStorage.impl_witness.582) [concrete = constants.%OptionalStorage.facet.0ce] +// CHECK:STDOUT: %.loc11_16.1: %OptionalStorage.type = converted constants.%ptr.037, %OptionalStorage.facet.loc11_16.1 [concrete = constants.%OptionalStorage.facet.0ce] +// CHECK:STDOUT: %Optional.loc11_16.1: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.0ce) [concrete = constants.%Optional.659] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc11_16.2: type = splice_block %Optional.loc11_16.2 [concrete = constants.%Optional.f85] { -// CHECK:STDOUT: %OptionalStorage.facet.loc11_16.2: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.230) [concrete = constants.%OptionalStorage.facet.508] -// CHECK:STDOUT: %.loc11_16.3: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet.loc11_16.2 [concrete = constants.%OptionalStorage.facet.508] -// CHECK:STDOUT: %Optional.loc11_16.2: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.508) [concrete = constants.%Optional.f85] +// CHECK:STDOUT: %.loc11_16.2: type = splice_block %Optional.loc11_16.2 [concrete = constants.%Optional.659] { +// CHECK:STDOUT: %OptionalStorage.facet.loc11_16.2: %OptionalStorage.type = facet_value constants.%ptr.037, (constants.%OptionalStorage.impl_witness.582) [concrete = constants.%OptionalStorage.facet.0ce] +// CHECK:STDOUT: %.loc11_16.3: %OptionalStorage.type = converted constants.%ptr.037, %OptionalStorage.facet.loc11_16.2 [concrete = constants.%OptionalStorage.facet.0ce] +// CHECK:STDOUT: %Optional.loc11_16.2: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.0ce) [concrete = constants.%Optional.659] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.ce3: @U.as_type.as.ImplicitAs.impl.1e6.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.d99) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.1e6.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.401)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.5f2 = impl_witness_table (%Core.import_ref.ce3), @U.as_type.as.ImplicitAs.impl.1e6 [concrete] -// CHECK:STDOUT: %Core.import_ref.cb8: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.b97) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.a9b)] -// CHECK:STDOUT: %OptionalAs.impl_witness_table.973 = impl_witness_table (%Core.import_ref.cb8), @T.as_type.as.OptionalAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.eb9: @U.as_type.as.ImplicitAs.impl.167.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.ad5) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.167.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.331)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.cf7 = impl_witness_table (%Core.import_ref.eb9), @U.as_type.as.ImplicitAs.impl.167 [concrete] +// CHECK:STDOUT: %Core.import_ref.017: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.774) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.5f9)] +// CHECK:STDOUT: %OptionalAs.impl_witness_table.efa = impl_witness_table (%Core.import_ref.017), @T.as_type.as.OptionalAs.impl [concrete] // CHECK:STDOUT: %Indirect.cpp_overload_set.value: %Indirect.cpp_overload_set.type = cpp_overload_set_value @Indirect.cpp_overload_set [concrete = constants.%Indirect.cpp_overload_set.value] // CHECK:STDOUT: %Indirect__carbon_thunk.decl: %Indirect__carbon_thunk.type = fn_decl @Indirect__carbon_thunk [concrete = constants.%Indirect__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.230) [concrete = constants.%OptionalStorage.facet.508] -// CHECK:STDOUT: %.loc13: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.508] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.508) [concrete = constants.%Optional.f85] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.037, (constants.%OptionalStorage.impl_witness.582) [concrete = constants.%OptionalStorage.facet.0ce] +// CHECK:STDOUT: %.loc13: %OptionalStorage.type = converted constants.%ptr.037, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.0ce] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.0ce) [concrete = constants.%Optional.659] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] @@ -1994,8 +1994,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.0f5 = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.0f5 = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc10_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -2010,19 +2010,19 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Direct.ref: %Direct.cpp_overload_set.type = name_ref Direct, imports.%Direct.cpp_overload_set.value [concrete = constants.%Direct.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s -// CHECK:STDOUT: %addr.loc11: %ptr.055 = addr_of %s.ref -// CHECK:STDOUT: %impl.elem0: %.960 = impl_witness_access constants.%ImplicitAs.impl_witness.f5c, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.f7c] +// CHECK:STDOUT: %addr.loc11: %ptr.037 = addr_of %s.ref +// CHECK:STDOUT: %impl.elem0: %.c09 = impl_witness_access constants.%ImplicitAs.impl_witness.d0f, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.8f4] // CHECK:STDOUT: %bound_method.loc11_14.1: = bound_method %addr.loc11, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.508, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.0ce, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_14.2: = bound_method %addr.loc11, %specific_fn -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.f85 = call %bound_method.loc11_14.2(%addr.loc11) -// CHECK:STDOUT: %.loc11_14.1: init %Optional.f85 = converted %addr.loc11, %U.as_type.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %.loc11_14.2: ref %Optional.f85 = temporary_storage -// CHECK:STDOUT: %.loc11_14.3: ref %Optional.f85 = temporary %.loc11_14.2, %.loc11_14.1 -// CHECK:STDOUT: %.loc11_14.4: %Optional.f85 = acquire_value %.loc11_14.3 -// CHECK:STDOUT: %Direct.call: init %Optional.f85 = call imports.%Direct.decl(%.loc11_14.4) +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.659 = call %bound_method.loc11_14.2(%addr.loc11) +// CHECK:STDOUT: %.loc11_14.1: init %Optional.659 = converted %addr.loc11, %U.as_type.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %.loc11_14.2: ref %Optional.659 = temporary_storage +// CHECK:STDOUT: %.loc11_14.3: ref %Optional.659 = temporary %.loc11_14.2, %.loc11_14.1 +// CHECK:STDOUT: %.loc11_14.4: %Optional.659 = acquire_value %.loc11_14.3 +// CHECK:STDOUT: %Direct.call: init %Optional.659 = call imports.%Direct.decl(%.loc11_14.4) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.1b2 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9f4 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc13_41: = 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] @@ -2032,40 +2032,40 @@ fn F() { // CHECK:STDOUT: %.loc13_55.2: ref %S = temporary_storage // CHECK:STDOUT: %.loc13_55.3: init %S to %.loc13_55.2 = class_init () [concrete = constants.%S.val] // CHECK:STDOUT: %.loc13_57.1: init %S = converted %.loc13_55.1, %.loc13_55.3 [concrete = constants.%S.val] -// CHECK:STDOUT: %.loc13_57.2: ref %S = temporary %.loc13_55.2, %.loc13_57.1 [concrete = constants.%.f11] +// CHECK:STDOUT: %.loc13_57.2: ref %S = temporary %.loc13_55.2, %.loc13_57.1 [concrete = constants.%.a94] // CHECK:STDOUT: %.loc13_57.3: %S = acquire_value %.loc13_57.2 [concrete = constants.%S.val] // CHECK:STDOUT: %.loc13_57.4: ref %S = value_as_ref %.loc13_57.3 -// CHECK:STDOUT: %addr.loc13: %ptr.055 = addr_of %.loc13_57.4 -// CHECK:STDOUT: %Indirect__carbon_thunk.call: init %Optional.f85 = call imports.%Indirect__carbon_thunk.decl(%addr.loc13) -// CHECK:STDOUT: %.loc13_37.1: type = splice_block %Optional [concrete = constants.%Optional.f85] { +// CHECK:STDOUT: %addr.loc13: %ptr.037 = addr_of %.loc13_57.4 +// CHECK:STDOUT: %Indirect__carbon_thunk.call: init %Optional.659 = call imports.%Indirect__carbon_thunk.decl(%addr.loc13) +// CHECK:STDOUT: %.loc13_37.1: type = splice_block %Optional [concrete = constants.%Optional.659] { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Optional.ref: %Optional.type = name_ref Optional, imports.%Core.Optional [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Cpp.ref.loc13_31: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc13_34: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr: type = ptr_type %S.ref.loc13_34 [concrete = constants.%ptr.055] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.230) [concrete = constants.%OptionalStorage.facet.508] -// CHECK:STDOUT: %.loc13_37.2: %OptionalStorage.type = converted %ptr, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.508] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.508) [concrete = constants.%Optional.f85] +// CHECK:STDOUT: %ptr: type = ptr_type %S.ref.loc13_34 [concrete = constants.%ptr.037] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.582) [concrete = constants.%OptionalStorage.facet.0ce] +// CHECK:STDOUT: %.loc13_37.2: %OptionalStorage.type = converted %ptr, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.0ce] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.0ce) [concrete = constants.%Optional.659] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc13_65.1: ref %Optional.f85 = temporary_storage -// CHECK:STDOUT: %.loc13_65.2: ref %Optional.f85 = temporary %.loc13_65.1, %Indirect__carbon_thunk.call -// CHECK:STDOUT: %.loc13_65.3: %Optional.f85 = acquire_value %.loc13_65.2 -// CHECK:STDOUT: %a: %Optional.f85 = value_binding a, %.loc13_65.3 -// CHECK:STDOUT: %Destroy.Op.bound.loc13: = bound_method %.loc13_65.2, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %.loc13_65.1: ref %Optional.659 = temporary_storage +// CHECK:STDOUT: %.loc13_65.2: ref %Optional.659 = temporary %.loc13_65.1, %Indirect__carbon_thunk.call +// CHECK:STDOUT: %.loc13_65.3: %Optional.659 = acquire_value %.loc13_65.2 +// CHECK:STDOUT: %a: %Optional.659 = value_binding a, %.loc13_65.3 +// CHECK:STDOUT: %Destroy.Op.bound.loc13: = bound_method %.loc13_65.2, constants.%Destroy.Op.1a2547.3 // CHECK:STDOUT: %Destroy.Op.call.loc13: init %empty_tuple.type = call %Destroy.Op.bound.loc13(%.loc13_65.2) -// CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %.loc11_14.3, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %.loc11_14.3, constants.%Destroy.Op.1a2547.3 // CHECK:STDOUT: %Destroy.Op.call.loc11: init %empty_tuple.type = call %Destroy.Op.bound.loc11(%.loc11_14.3) // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor // CHECK:STDOUT: %S.cpp_destructor.call: init %empty_tuple.type = call %S.cpp_destructor.bound(%s.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_65.1(%self.param: ref %MaybeUnformed.3a1) { +// CHECK:STDOUT: fn @Destroy.Op.loc13_65.1(%self.param: ref %MaybeUnformed.9f2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_65.2(%self.param: ref %Optional.f85) { +// CHECK:STDOUT: fn @Destroy.Op.loc13_65.2(%self.param: ref %Optional.659) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/function/import/qualified_param.carbon b/toolchain/check/testdata/interop/cpp/function/import/qualified_param.carbon index 66a21533d840..fbc04a6763e3 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/qualified_param.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/qualified_param.carbon @@ -44,32 +44,32 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %TakesConstInt.type: type = fn_type @TakesConstInt [concrete] // CHECK:STDOUT: %TakesConstInt: %TakesConstInt.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_42.daa: %i32 = int_value 42 [concrete] +// CHECK:STDOUT: %int_42.ac4: %i32 = int_value 42 [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.0f5: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %TakesConstS.cpp_overload_set.type: type = cpp_overload_set_type @TakesConstS.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesConstS.cpp_overload_set.value: %TakesConstS.cpp_overload_set.type = cpp_overload_set_value @TakesConstS.cpp_overload_set [concrete] // CHECK:STDOUT: %const: type = const_type %S [concrete] -// CHECK:STDOUT: %ptr.26e: type = ptr_type %const [concrete] +// CHECK:STDOUT: %ptr.711: type = ptr_type %const [concrete] // CHECK:STDOUT: %TakesConstS__carbon_thunk.type: type = fn_type @TakesConstS__carbon_thunk [concrete] // CHECK:STDOUT: %TakesConstS__carbon_thunk: %TakesConstS__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] // CHECK:STDOUT: %S.cpp_destructor: %S.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -87,8 +87,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} // CHECK:STDOUT: %TakesConstS.cpp_overload_set.value: %TakesConstS.cpp_overload_set.type = cpp_overload_set_value @TakesConstS.cpp_overload_set [concrete = constants.%TakesConstS.cpp_overload_set.value] // CHECK:STDOUT: %TakesConstS__carbon_thunk.decl: %TakesConstS__carbon_thunk.type = fn_decl @TakesConstS__carbon_thunk [concrete = constants.%TakesConstS__carbon_thunk] { @@ -103,17 +103,17 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesConstInt.ref: %TakesConstInt.cpp_overload_set.type = name_ref TakesConstInt, imports.%TakesConstInt.cpp_overload_set.value [concrete = constants.%TakesConstInt.cpp_overload_set.value] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_21.1: = bound_method %int_42, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_21.2: = bound_method %int_42, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_21.2(%int_42) [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %.loc8_21.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %.loc8_21.2: %i32 = converted %int_42, %.loc8_21.1 [concrete = constants.%int_42.daa] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_21.2(%int_42) [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %.loc8_21.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %.loc8_21.2: %i32 = converted %int_42, %.loc8_21.1 [concrete = constants.%int_42.ac4] // CHECK:STDOUT: %TakesConstInt.call: init %empty_tuple.type = call imports.%TakesConstInt.decl(%.loc8_21.2) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.0f5 = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.0f5 = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc10_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -130,9 +130,9 @@ fn F() { // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s // CHECK:STDOUT: %.loc11_19.1: %S = acquire_value %s.ref // CHECK:STDOUT: %.loc11_19.2: ref %S = value_as_ref %.loc11_19.1 -// CHECK:STDOUT: %addr: %ptr.055 = addr_of %.loc11_19.2 -// CHECK:STDOUT: %.loc11_20.1: %ptr.26e = as_compatible %addr -// CHECK:STDOUT: %.loc11_20.2: %ptr.26e = converted %addr, %.loc11_20.1 +// CHECK:STDOUT: %addr: %ptr.037 = addr_of %.loc11_19.2 +// CHECK:STDOUT: %.loc11_20.1: %ptr.711 = as_compatible %addr +// CHECK:STDOUT: %.loc11_20.2: %ptr.711 = converted %addr, %.loc11_20.1 // CHECK:STDOUT: %TakesConstS__carbon_thunk.call: init %empty_tuple.type = call imports.%TakesConstS__carbon_thunk.decl(%.loc11_20.2) // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor // CHECK:STDOUT: %S.cpp_destructor.call: init %empty_tuple.type = call %S.cpp_destructor.bound(%s.var) diff --git a/toolchain/check/testdata/interop/cpp/function/import/reference.carbon b/toolchain/check/testdata/interop/cpp/function/import/reference.carbon index dd093b8e9b6c..ae7b835c0be9 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/reference.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/reference.carbon @@ -488,7 +488,7 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.0f5: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %TakesLValue.cpp_overload_set.type: type = cpp_overload_set_type @TakesLValue.cpp_overload_set [concrete] @@ -517,8 +517,8 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.0f5 = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.0f5 = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -545,29 +545,29 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.0f5: type = pattern_type %S [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] -// CHECK:STDOUT: %T.e5a: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.e5a) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.eab: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d = struct_value () [symbolic] +// CHECK:STDOUT: %T.b09: %Default.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.b09) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.cfe: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9 = struct_value () [symbolic] // CHECK:STDOUT: %S.Op.type: type = fn_type @S.Op [concrete] // CHECK:STDOUT: %S.Op: %S.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26fff.1: = custom_witness (%S.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.229: %Default.type = facet_value %S, (%custom_witness.b26fff.1) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.f99: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.229) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.9ab: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.f99) [concrete] +// CHECK:STDOUT: %custom_witness.9b40fb.1: = custom_witness (%S.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.f3a: %Default.type = facet_value %S, (%custom_witness.9b40fb.1) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.eff: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.f3a) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.176: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.eff) [concrete] // CHECK:STDOUT: %TakesLValue.cpp_overload_set.type: type = cpp_overload_set_type @TakesLValue.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesLValue.cpp_overload_set.value: %TakesLValue.cpp_overload_set.type = cpp_overload_set_value @TakesLValue.cpp_overload_set [concrete] // CHECK:STDOUT: %const: type = const_type %S [concrete] -// CHECK:STDOUT: %T.3b5: type = class_type @T [concrete] -// CHECK:STDOUT: %pattern_type.471: type = pattern_type %T.3b5 [concrete] +// CHECK:STDOUT: %T.ed0: type = class_type @T [concrete] +// CHECK:STDOUT: %pattern_type.5f6: type = pattern_type %T.ed0 [concrete] // CHECK:STDOUT: %T.Op.type: type = fn_type @T.Op [concrete] // CHECK:STDOUT: %T.Op: %T.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26fff.2: = custom_witness (%T.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.dcd: %Default.type = facet_value %T.3b5, (%custom_witness.b26fff.2) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.dca: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.dcd) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.fe5: %DefaultOrUnformed.type = facet_value %T.3b5, (%DefaultOrUnformed.impl_witness.dca) [concrete] +// CHECK:STDOUT: %custom_witness.9b40fb.2: = custom_witness (%T.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.d67: %Default.type = facet_value %T.ed0, (%custom_witness.9b40fb.2) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.537: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.d67) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.e0e: %DefaultOrUnformed.type = facet_value %T.ed0, (%DefaultOrUnformed.impl_witness.537) [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] // CHECK:STDOUT: %S.cpp_destructor: %S.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %T.cpp_destructor.type: type = fn_type @T.cpp_destructor [concrete] @@ -582,21 +582,21 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} -// CHECK:STDOUT: %Core.import_ref.a03: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.38d) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.eab)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.48a = impl_witness_table (%Core.import_ref.a03), @T.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c2f: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.cfe)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.670 = impl_witness_table (%Core.import_ref.c2f), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %TakesLValue.cpp_overload_set.value: %TakesLValue.cpp_overload_set.type = cpp_overload_set_value @TakesLValue.cpp_overload_set [concrete = constants.%TakesLValue.cpp_overload_set.value] -// CHECK:STDOUT: %T.decl: type = class_decl @T [concrete = constants.%T.3b5] {} {} +// CHECK:STDOUT: %T.decl: type = class_decl @T [concrete = constants.%T.ed0] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.b2d = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.b2d = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.0f5 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.0f5 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %S = var %v.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.f99) [concrete = constants.%DefaultOrUnformed.facet.9ab] -// CHECK:STDOUT: %.loc8_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.9ab] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.eff) [concrete = constants.%DefaultOrUnformed.facet.176] +// CHECK:STDOUT: %.loc8_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.176] // CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_15.1 [concrete = constants.%S] // CHECK:STDOUT: %.loc8_15.2: type = converted %.loc8_15.1, %as_type.loc8 [concrete = constants.%S] // CHECK:STDOUT: @@ -609,7 +609,7 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref %S = ref_binding v, %v.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.b2d = value_binding_pattern s [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.0f5 = value_binding_pattern s [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.ref: ref %S = name_ref v, %v // CHECK:STDOUT: %.loc9_13: type = splice_block %S.ref.loc9 [concrete = constants.%S] { @@ -630,33 +630,33 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %.loc28_21.1: %const = as_compatible %s.ref.loc28 // CHECK:STDOUT: %.loc28_21.2: %const = converted %s.ref.loc28, %.loc28_21.1 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %t.patt: %pattern_type.471 = ref_binding_pattern t [concrete] -// CHECK:STDOUT: %t.var_patt: %pattern_type.471 = var_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.5f6 = ref_binding_pattern t [concrete] +// CHECK:STDOUT: %t.var_patt: %pattern_type.5f6 = var_pattern %t.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %t.var: ref %T.3b5 = var %t.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc30: %DefaultOrUnformed.type = facet_value constants.%T.3b5, (constants.%DefaultOrUnformed.impl_witness.dca) [concrete = constants.%DefaultOrUnformed.facet.fe5] -// CHECK:STDOUT: %.loc30_15.1: %DefaultOrUnformed.type = converted constants.%T.3b5, %DefaultOrUnformed.facet.loc30 [concrete = constants.%DefaultOrUnformed.facet.fe5] -// CHECK:STDOUT: %as_type.loc30: type = facet_access_type %.loc30_15.1 [concrete = constants.%T.3b5] -// CHECK:STDOUT: %.loc30_15.2: type = converted %.loc30_15.1, %as_type.loc30 [concrete = constants.%T.3b5] +// CHECK:STDOUT: %t.var: ref %T.ed0 = var %t.var_patt +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc30: %DefaultOrUnformed.type = facet_value constants.%T.ed0, (constants.%DefaultOrUnformed.impl_witness.537) [concrete = constants.%DefaultOrUnformed.facet.e0e] +// CHECK:STDOUT: %.loc30_15.1: %DefaultOrUnformed.type = converted constants.%T.ed0, %DefaultOrUnformed.facet.loc30 [concrete = constants.%DefaultOrUnformed.facet.e0e] +// CHECK:STDOUT: %as_type.loc30: type = facet_access_type %.loc30_15.1 [concrete = constants.%T.ed0] +// CHECK:STDOUT: %.loc30_15.2: type = converted %.loc30_15.1, %as_type.loc30 [concrete = constants.%T.ed0] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc30_3: ref %T.3b5 = splice_block %t.var {} -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc30: init %T.3b5 to %.loc30_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() +// CHECK:STDOUT: %.loc30_3: ref %T.ed0 = splice_block %t.var {} +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc30: init %T.ed0 to %.loc30_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() // CHECK:STDOUT: assign %t.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc30 -// CHECK:STDOUT: %.loc30_13: type = splice_block %T.ref [concrete = constants.%T.3b5] { +// CHECK:STDOUT: %.loc30_13: type = splice_block %T.ref [concrete = constants.%T.ed0] { // CHECK:STDOUT: %Cpp.ref.loc30: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %T.ref: type = name_ref T, imports.%T.decl [concrete = constants.%T.3b5] +// CHECK:STDOUT: %T.ref: type = name_ref T, imports.%T.decl [concrete = constants.%T.ed0] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: ref %T.3b5 = ref_binding t, %t.var +// CHECK:STDOUT: %t: ref %T.ed0 = ref_binding t, %t.var // CHECK:STDOUT: %Cpp.ref.loc39: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesLValue.ref.loc39: %TakesLValue.cpp_overload_set.type = name_ref TakesLValue, imports.%TakesLValue.cpp_overload_set.value [concrete = constants.%TakesLValue.cpp_overload_set.value] -// CHECK:STDOUT: %t.ref: ref %T.3b5 = name_ref t, %t +// CHECK:STDOUT: %t.ref: ref %T.ed0 = name_ref t, %t // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %u.patt: %pattern_type.b2d = ref_binding_pattern u [concrete] -// CHECK:STDOUT: %u.var_patt: %pattern_type.b2d = var_pattern %u.patt [concrete] +// CHECK:STDOUT: %u.patt: %pattern_type.0f5 = ref_binding_pattern u [concrete] +// CHECK:STDOUT: %u.var_patt: %pattern_type.0f5 = var_pattern %u.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %u.var: ref %S = var %u.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc41: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.f99) [concrete = constants.%DefaultOrUnformed.facet.9ab] -// CHECK:STDOUT: %.loc41_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc41 [concrete = constants.%DefaultOrUnformed.facet.9ab] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc41: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.eff) [concrete = constants.%DefaultOrUnformed.facet.176] +// CHECK:STDOUT: %.loc41_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc41 [concrete = constants.%DefaultOrUnformed.facet.176] // CHECK:STDOUT: %as_type.loc41: type = facet_access_type %.loc41_15.1 [concrete = constants.%S] // CHECK:STDOUT: %.loc41_15.2: type = converted %.loc41_15.1, %as_type.loc41 [concrete = constants.%S] // CHECK:STDOUT: @@ -695,7 +695,7 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %TakesRValue__carbon_thunk.type: type = fn_type @TakesRValue__carbon_thunk [concrete] // CHECK:STDOUT: %TakesRValue__carbon_thunk: %TakesRValue__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -726,7 +726,7 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %.loc8_20.2: init %S to %_.var = class_init () [concrete = constants.%S.val] // CHECK:STDOUT: %.loc8_22: init %S = converted %.loc8_20.1, %.loc8_20.2 [concrete = constants.%S.val] // CHECK:STDOUT: -// CHECK:STDOUT: %addr: %ptr.055 = addr_of %_.var +// CHECK:STDOUT: %addr: %ptr.037 = addr_of %_.var // CHECK:STDOUT: %TakesRValue__carbon_thunk.call: init %empty_tuple.type = call imports.%TakesRValue__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -737,32 +737,32 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.0f5: type = pattern_type %S [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] -// CHECK:STDOUT: %T.e5a: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.e5a) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.eab: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d = struct_value () [symbolic] +// CHECK:STDOUT: %T.b09: %Default.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.b09) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.cfe: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9 = struct_value () [symbolic] // CHECK:STDOUT: %S.Op.type: type = fn_type @S.Op [concrete] // CHECK:STDOUT: %S.Op: %S.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26fff.1: = custom_witness (%S.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.229: %Default.type = facet_value %S, (%custom_witness.b26fff.1) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.f99: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.229) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.9ab: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.f99) [concrete] +// CHECK:STDOUT: %custom_witness.9b40fb.1: = custom_witness (%S.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.f3a: %Default.type = facet_value %S, (%custom_witness.9b40fb.1) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.eff: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.f3a) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.176: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.eff) [concrete] // CHECK:STDOUT: %TakesRValue.cpp_overload_set.type: type = cpp_overload_set_type @TakesRValue.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesRValue.cpp_overload_set.value: %TakesRValue.cpp_overload_set.type = cpp_overload_set_value @TakesRValue.cpp_overload_set [concrete] -// CHECK:STDOUT: %T.3b5: type = class_type @T [concrete] -// CHECK:STDOUT: %pattern_type.471: type = pattern_type %T.3b5 [concrete] +// CHECK:STDOUT: %T.ed0: type = class_type @T [concrete] +// CHECK:STDOUT: %pattern_type.5f6: type = pattern_type %T.ed0 [concrete] // CHECK:STDOUT: %T.Op.type: type = fn_type @T.Op [concrete] // CHECK:STDOUT: %T.Op: %T.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26fff.2: = custom_witness (%T.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.dcd: %Default.type = facet_value %T.3b5, (%custom_witness.b26fff.2) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.dca: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.dcd) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.fe5: %DefaultOrUnformed.type = facet_value %T.3b5, (%DefaultOrUnformed.impl_witness.dca) [concrete] +// CHECK:STDOUT: %custom_witness.9b40fb.2: = custom_witness (%T.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.d67: %Default.type = facet_value %T.ed0, (%custom_witness.9b40fb.2) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.537: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.d67) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.e0e: %DefaultOrUnformed.type = facet_value %T.ed0, (%DefaultOrUnformed.impl_witness.537) [concrete] // CHECK:STDOUT: %empty_struct.a40: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %const: type = const_type %S [concrete] -// CHECK:STDOUT: %empty_struct.418: %const = struct_value () [concrete] +// CHECK:STDOUT: %empty_struct.674: %const = struct_value () [concrete] // CHECK:STDOUT: %T.cpp_destructor.type: type = fn_type @T.cpp_destructor [concrete] // CHECK:STDOUT: %T.cpp_destructor: %T.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] @@ -777,21 +777,21 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} -// CHECK:STDOUT: %Core.import_ref.a03: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.38d) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.eab)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.48a = impl_witness_table (%Core.import_ref.a03), @T.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c2f: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.cfe)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.670 = impl_witness_table (%Core.import_ref.c2f), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %TakesRValue.cpp_overload_set.value: %TakesRValue.cpp_overload_set.type = cpp_overload_set_value @TakesRValue.cpp_overload_set [concrete = constants.%TakesRValue.cpp_overload_set.value] -// CHECK:STDOUT: %T.decl: type = class_decl @T [concrete = constants.%T.3b5] {} {} +// CHECK:STDOUT: %T.decl: type = class_decl @T [concrete = constants.%T.ed0] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.0f5 = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.0f5 = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.f99) [concrete = constants.%DefaultOrUnformed.facet.9ab] -// CHECK:STDOUT: %.loc8_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.9ab] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.eff) [concrete = constants.%DefaultOrUnformed.facet.176] +// CHECK:STDOUT: %.loc8_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.176] // CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_15.1 [concrete = constants.%S] // CHECK:STDOUT: %.loc8_15.2: type = converted %.loc8_15.1, %as_type.loc8 [concrete = constants.%S] // CHECK:STDOUT: @@ -807,26 +807,26 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %TakesRValue.ref.loc17: %TakesRValue.cpp_overload_set.type = name_ref TakesRValue, imports.%TakesRValue.cpp_overload_set.value [concrete = constants.%TakesRValue.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %t.patt: %pattern_type.471 = ref_binding_pattern t [concrete] -// CHECK:STDOUT: %t.var_patt: %pattern_type.471 = var_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.5f6 = ref_binding_pattern t [concrete] +// CHECK:STDOUT: %t.var_patt: %pattern_type.5f6 = var_pattern %t.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %t.var: ref %T.3b5 = var %t.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc19: %DefaultOrUnformed.type = facet_value constants.%T.3b5, (constants.%DefaultOrUnformed.impl_witness.dca) [concrete = constants.%DefaultOrUnformed.facet.fe5] -// CHECK:STDOUT: %.loc19_15.1: %DefaultOrUnformed.type = converted constants.%T.3b5, %DefaultOrUnformed.facet.loc19 [concrete = constants.%DefaultOrUnformed.facet.fe5] -// CHECK:STDOUT: %as_type.loc19: type = facet_access_type %.loc19_15.1 [concrete = constants.%T.3b5] -// CHECK:STDOUT: %.loc19_15.2: type = converted %.loc19_15.1, %as_type.loc19 [concrete = constants.%T.3b5] +// CHECK:STDOUT: %t.var: ref %T.ed0 = var %t.var_patt +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc19: %DefaultOrUnformed.type = facet_value constants.%T.ed0, (constants.%DefaultOrUnformed.impl_witness.537) [concrete = constants.%DefaultOrUnformed.facet.e0e] +// CHECK:STDOUT: %.loc19_15.1: %DefaultOrUnformed.type = converted constants.%T.ed0, %DefaultOrUnformed.facet.loc19 [concrete = constants.%DefaultOrUnformed.facet.e0e] +// CHECK:STDOUT: %as_type.loc19: type = facet_access_type %.loc19_15.1 [concrete = constants.%T.ed0] +// CHECK:STDOUT: %.loc19_15.2: type = converted %.loc19_15.1, %as_type.loc19 [concrete = constants.%T.ed0] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc19_3: ref %T.3b5 = splice_block %t.var {} -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc19: init %T.3b5 to %.loc19_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() +// CHECK:STDOUT: %.loc19_3: ref %T.ed0 = splice_block %t.var {} +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc19: init %T.ed0 to %.loc19_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() // CHECK:STDOUT: assign %t.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc19 -// CHECK:STDOUT: %.loc19_13: type = splice_block %T.ref [concrete = constants.%T.3b5] { +// CHECK:STDOUT: %.loc19_13: type = splice_block %T.ref [concrete = constants.%T.ed0] { // CHECK:STDOUT: %Cpp.ref.loc19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %T.ref: type = name_ref T, imports.%T.decl [concrete = constants.%T.3b5] +// CHECK:STDOUT: %T.ref: type = name_ref T, imports.%T.decl [concrete = constants.%T.ed0] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: ref %T.3b5 = ref_binding t, %t.var +// CHECK:STDOUT: %t: ref %T.ed0 = ref_binding t, %t.var // CHECK:STDOUT: %Cpp.ref.loc28: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesRValue.ref.loc28: %TakesRValue.cpp_overload_set.type = name_ref TakesRValue, imports.%TakesRValue.cpp_overload_set.value [concrete = constants.%TakesRValue.cpp_overload_set.value] -// CHECK:STDOUT: %t.ref: ref %T.3b5 = name_ref t, %t +// CHECK:STDOUT: %t.ref: ref %T.ed0 = name_ref t, %t // CHECK:STDOUT: %Cpp.ref.loc38_3: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesRValue.ref.loc38: %TakesRValue.cpp_overload_set.type = name_ref TakesRValue, imports.%TakesRValue.cpp_overload_set.value [concrete = constants.%TakesRValue.cpp_overload_set.value] // CHECK:STDOUT: %.loc38_21.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct.a40] @@ -838,8 +838,8 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %Cpp.ref.loc38_42: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc38_45: type = name_ref S, imports.%S.decl [concrete = constants.%S] // CHECK:STDOUT: %const: type = const_type %S.ref.loc38_45 [concrete = constants.%const] -// CHECK:STDOUT: %.loc38_33.1: init %const = as_compatible %.loc38_23 [concrete = constants.%empty_struct.418] -// CHECK:STDOUT: %.loc38_33.2: init %const = converted %.loc38_23, %.loc38_33.1 [concrete = constants.%empty_struct.418] +// CHECK:STDOUT: %.loc38_33.1: init %const = as_compatible %.loc38_23 [concrete = constants.%empty_struct.674] +// CHECK:STDOUT: %.loc38_33.2: init %const = converted %.loc38_23, %.loc38_33.1 [concrete = constants.%empty_struct.674] // CHECK:STDOUT: %T.cpp_destructor.bound: = bound_method %t.var, constants.%T.cpp_destructor // CHECK:STDOUT: %T.cpp_destructor.call: init %empty_tuple.type = call %T.cpp_destructor.bound(%t.var) // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor @@ -853,16 +853,16 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.0f5: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %TakesConstLValue.cpp_overload_set.type: type = cpp_overload_set_type @TakesConstLValue.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesConstLValue.cpp_overload_set.value: %TakesConstLValue.cpp_overload_set.type = cpp_overload_set_value @TakesConstLValue.cpp_overload_set [concrete] // CHECK:STDOUT: %const: type = const_type %S [concrete] -// CHECK:STDOUT: %ptr.26e: type = ptr_type %const [concrete] +// CHECK:STDOUT: %ptr.711: type = ptr_type %const [concrete] // CHECK:STDOUT: %TakesConstLValue__carbon_thunk.type: type = fn_type @TakesConstLValue__carbon_thunk [concrete] // CHECK:STDOUT: %TakesConstLValue__carbon_thunk: %TakesConstLValue__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] // CHECK:STDOUT: %S.cpp_destructor: %S.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -885,8 +885,8 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.0f5 = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.0f5 = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -910,18 +910,18 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %.loc9_26.4: ref %S = converted %.loc9_26.2, %.loc9_26.3 // CHECK:STDOUT: %.loc9_26.5: %S = acquire_value %.loc9_26.4 // CHECK:STDOUT: %.loc9_26.6: ref %S = value_as_ref %.loc9_26.5 -// CHECK:STDOUT: %addr.loc9: %ptr.055 = addr_of %.loc9_26.6 -// CHECK:STDOUT: %.loc9_40.1: %ptr.26e = as_compatible %addr.loc9 -// CHECK:STDOUT: %.loc9_40.2: %ptr.26e = converted %addr.loc9, %.loc9_40.1 +// CHECK:STDOUT: %addr.loc9: %ptr.037 = addr_of %.loc9_26.6 +// CHECK:STDOUT: %.loc9_40.1: %ptr.711 = as_compatible %addr.loc9 +// CHECK:STDOUT: %.loc9_40.2: %ptr.711 = converted %addr.loc9, %.loc9_40.1 // CHECK:STDOUT: %TakesConstLValue__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%TakesConstLValue__carbon_thunk.decl(%.loc9_40.2) // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesConstLValue.ref.loc11: %TakesConstLValue.cpp_overload_set.type = name_ref TakesConstLValue, imports.%TakesConstLValue.cpp_overload_set.value [concrete = constants.%TakesConstLValue.cpp_overload_set.value] // CHECK:STDOUT: %s.ref.loc11: ref %S = name_ref s, %s // CHECK:STDOUT: %.loc11_24.1: %S = acquire_value %s.ref.loc11 // CHECK:STDOUT: %.loc11_24.2: ref %S = value_as_ref %.loc11_24.1 -// CHECK:STDOUT: %addr.loc11: %ptr.055 = addr_of %.loc11_24.2 -// CHECK:STDOUT: %.loc11_25.1: %ptr.26e = as_compatible %addr.loc11 -// CHECK:STDOUT: %.loc11_25.2: %ptr.26e = converted %addr.loc11, %.loc11_25.1 +// CHECK:STDOUT: %addr.loc11: %ptr.037 = addr_of %.loc11_24.2 +// CHECK:STDOUT: %.loc11_25.1: %ptr.711 = as_compatible %addr.loc11 +// CHECK:STDOUT: %.loc11_25.2: %ptr.711 = converted %addr.loc11, %.loc11_25.1 // CHECK:STDOUT: %TakesConstLValue__carbon_thunk.call.loc11: init %empty_tuple.type = call imports.%TakesConstLValue__carbon_thunk.decl(%.loc11_25.2) // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor // CHECK:STDOUT: %S.cpp_destructor.call: init %empty_tuple.type = call %S.cpp_destructor.bound(%s.var) @@ -934,17 +934,17 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.0f5: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] -// CHECK:STDOUT: %.f11: ref %S = temporary invalid, %S.val [concrete] +// CHECK:STDOUT: %.a94: ref %S = temporary invalid, %S.val [concrete] // CHECK:STDOUT: %TakesConstLValue.cpp_overload_set.type: type = cpp_overload_set_type @TakesConstLValue.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesConstLValue.cpp_overload_set.value: %TakesConstLValue.cpp_overload_set.type = cpp_overload_set_value @TakesConstLValue.cpp_overload_set [concrete] // CHECK:STDOUT: %const: type = const_type %S [concrete] -// CHECK:STDOUT: %ptr.26e: type = ptr_type %const [concrete] +// CHECK:STDOUT: %ptr.711: type = ptr_type %const [concrete] // CHECK:STDOUT: %TakesConstLValue__carbon_thunk.type: type = fn_type @TakesConstLValue__carbon_thunk [concrete] // CHECK:STDOUT: %TakesConstLValue__carbon_thunk: %TakesConstLValue__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -965,7 +965,7 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.b2d = value_binding_pattern s [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.0f5 = value_binding_pattern s [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc8_13: type = splice_block %S.ref.loc8 [concrete = constants.%S] { @@ -975,16 +975,16 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %.loc8_19.2: ref %S = temporary_storage // CHECK:STDOUT: %.loc8_19.3: init %S to %.loc8_19.2 = class_init () [concrete = constants.%S.val] // CHECK:STDOUT: %.loc8_19.4: init %S = converted %.loc8_19.1, %.loc8_19.3 [concrete = constants.%S.val] -// CHECK:STDOUT: %.loc8_19.5: ref %S = temporary %.loc8_19.2, %.loc8_19.4 [concrete = constants.%.f11] +// CHECK:STDOUT: %.loc8_19.5: ref %S = temporary %.loc8_19.2, %.loc8_19.4 [concrete = constants.%.a94] // CHECK:STDOUT: %.loc8_19.6: %S = acquire_value %.loc8_19.5 [concrete = constants.%S.val] // CHECK:STDOUT: %s: %S = value_binding s, %.loc8_19.6 // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesConstLValue.ref.loc9: %TakesConstLValue.cpp_overload_set.type = name_ref TakesConstLValue, imports.%TakesConstLValue.cpp_overload_set.value [concrete = constants.%TakesConstLValue.cpp_overload_set.value] // CHECK:STDOUT: %s.ref.loc9: %S = name_ref s, %s // CHECK:STDOUT: %.loc9_24: ref %S = value_as_ref %s.ref.loc9 -// CHECK:STDOUT: %addr.loc9: %ptr.055 = addr_of %.loc9_24 -// CHECK:STDOUT: %.loc9_25.1: %ptr.26e = as_compatible %addr.loc9 -// CHECK:STDOUT: %.loc9_25.2: %ptr.26e = converted %addr.loc9, %.loc9_25.1 +// CHECK:STDOUT: %addr.loc9: %ptr.037 = addr_of %.loc9_24 +// CHECK:STDOUT: %.loc9_25.1: %ptr.711 = as_compatible %addr.loc9 +// CHECK:STDOUT: %.loc9_25.2: %ptr.711 = converted %addr.loc9, %.loc9_25.1 // CHECK:STDOUT: %TakesConstLValue__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%TakesConstLValue__carbon_thunk.decl(%.loc9_25.2) // CHECK:STDOUT: %Cpp.ref.loc11_3: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesConstLValue.ref.loc11: %TakesConstLValue.cpp_overload_set.type = name_ref TakesConstLValue, imports.%TakesConstLValue.cpp_overload_set.value [concrete = constants.%TakesConstLValue.cpp_overload_set.value] @@ -997,9 +997,9 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %.loc11_26.3: %S = as_compatible %.loc11_26.2 // CHECK:STDOUT: %.loc11_26.4: %S = converted %.loc11_26.2, %.loc11_26.3 // CHECK:STDOUT: %.loc11_26.5: ref %S = value_as_ref %.loc11_26.4 -// CHECK:STDOUT: %addr.loc11: %ptr.055 = addr_of %.loc11_26.5 -// CHECK:STDOUT: %.loc11_40.1: %ptr.26e = as_compatible %addr.loc11 -// CHECK:STDOUT: %.loc11_40.2: %ptr.26e = converted %addr.loc11, %.loc11_40.1 +// CHECK:STDOUT: %addr.loc11: %ptr.037 = addr_of %.loc11_26.5 +// CHECK:STDOUT: %.loc11_40.1: %ptr.711 = as_compatible %addr.loc11 +// CHECK:STDOUT: %.loc11_40.2: %ptr.711 = converted %addr.loc11, %.loc11_40.1 // CHECK:STDOUT: %TakesConstLValue__carbon_thunk.call.loc11: init %empty_tuple.type = call imports.%TakesConstLValue__carbon_thunk.decl(%.loc11_40.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1012,10 +1012,10 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %TakesConstRValue.cpp_overload_set.type: type = cpp_overload_set_type @TakesConstRValue.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesConstRValue.cpp_overload_set.value: %TakesConstRValue.cpp_overload_set.type = cpp_overload_set_value @TakesConstRValue.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.26e: type = ptr_type %const [concrete] +// CHECK:STDOUT: %ptr.711: type = ptr_type %const [concrete] // CHECK:STDOUT: %TakesConstRValue__carbon_thunk.type: type = fn_type @TakesConstRValue__carbon_thunk [concrete] // CHECK:STDOUT: %TakesConstRValue__carbon_thunk: %TakesConstRValue__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1039,9 +1039,9 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %TakesConstRValue.ref.loc8: %TakesConstRValue.cpp_overload_set.type = name_ref TakesConstRValue, imports.%TakesConstRValue.cpp_overload_set.value [concrete = constants.%TakesConstRValue.cpp_overload_set.value] // CHECK:STDOUT: %v.ref: %S = name_ref v, %v // CHECK:STDOUT: %.loc8_24: ref %S = value_as_ref %v.ref -// CHECK:STDOUT: %addr.loc8: %ptr.055 = addr_of %.loc8_24 -// CHECK:STDOUT: %.loc8_25.1: %ptr.26e = as_compatible %addr.loc8 -// CHECK:STDOUT: %.loc8_25.2: %ptr.26e = converted %addr.loc8, %.loc8_25.1 +// CHECK:STDOUT: %addr.loc8: %ptr.037 = addr_of %.loc8_24 +// CHECK:STDOUT: %.loc8_25.1: %ptr.711 = as_compatible %addr.loc8 +// CHECK:STDOUT: %.loc8_25.2: %ptr.711 = converted %addr.loc8, %.loc8_25.1 // CHECK:STDOUT: %TakesConstRValue__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%TakesConstRValue__carbon_thunk.decl(%.loc8_25.2) // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesConstRValue.ref.loc9: %TakesConstRValue.cpp_overload_set.type = name_ref TakesConstRValue, imports.%TakesConstRValue.cpp_overload_set.value [concrete = constants.%TakesConstRValue.cpp_overload_set.value] @@ -1049,9 +1049,9 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %.loc9_24.1: %S = as_compatible %cv.ref // CHECK:STDOUT: %.loc9_24.2: %S = converted %cv.ref, %.loc9_24.1 // CHECK:STDOUT: %.loc9_24.3: ref %S = value_as_ref %.loc9_24.2 -// CHECK:STDOUT: %addr.loc9: %ptr.055 = addr_of %.loc9_24.3 -// CHECK:STDOUT: %.loc9_26.1: %ptr.26e = as_compatible %addr.loc9 -// CHECK:STDOUT: %.loc9_26.2: %ptr.26e = converted %addr.loc9, %.loc9_26.1 +// CHECK:STDOUT: %addr.loc9: %ptr.037 = addr_of %.loc9_24.3 +// CHECK:STDOUT: %.loc9_26.1: %ptr.711 = as_compatible %addr.loc9 +// CHECK:STDOUT: %.loc9_26.2: %ptr.711 = converted %addr.loc9, %.loc9_26.1 // CHECK:STDOUT: %TakesConstRValue__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%TakesConstRValue__carbon_thunk.decl(%.loc9_26.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1061,28 +1061,28 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.0f5: type = pattern_type %S [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] -// CHECK:STDOUT: %T.e5a: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.e5a) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.eab: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d = struct_value () [symbolic] +// CHECK:STDOUT: %T.b09: %Default.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.b09) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.cfe: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9 = struct_value () [symbolic] // CHECK:STDOUT: %S.Op.type: type = fn_type @S.Op [concrete] // CHECK:STDOUT: %S.Op: %S.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26fff.1: = custom_witness (%S.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.229: %Default.type = facet_value %S, (%custom_witness.b26fff.1) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.f99: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.229) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.9ab: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.f99) [concrete] +// CHECK:STDOUT: %custom_witness.9b40fb.1: = custom_witness (%S.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.f3a: %Default.type = facet_value %S, (%custom_witness.9b40fb.1) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.eff: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.f3a) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.176: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.eff) [concrete] // CHECK:STDOUT: %TakesConstRValue.cpp_overload_set.type: type = cpp_overload_set_type @TakesConstRValue.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesConstRValue.cpp_overload_set.value: %TakesConstRValue.cpp_overload_set.type = cpp_overload_set_value @TakesConstRValue.cpp_overload_set [concrete] -// CHECK:STDOUT: %T.3b5: type = class_type @T [concrete] -// CHECK:STDOUT: %pattern_type.471: type = pattern_type %T.3b5 [concrete] +// CHECK:STDOUT: %T.ed0: type = class_type @T [concrete] +// CHECK:STDOUT: %pattern_type.5f6: type = pattern_type %T.ed0 [concrete] // CHECK:STDOUT: %T.Op.type: type = fn_type @T.Op [concrete] // CHECK:STDOUT: %T.Op: %T.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26fff.2: = custom_witness (%T.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.dcd: %Default.type = facet_value %T.3b5, (%custom_witness.b26fff.2) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.dca: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.dcd) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.fe5: %DefaultOrUnformed.type = facet_value %T.3b5, (%DefaultOrUnformed.impl_witness.dca) [concrete] +// CHECK:STDOUT: %custom_witness.9b40fb.2: = custom_witness (%T.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.d67: %Default.type = facet_value %T.ed0, (%custom_witness.9b40fb.2) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.537: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.d67) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.e0e: %DefaultOrUnformed.type = facet_value %T.ed0, (%DefaultOrUnformed.impl_witness.537) [concrete] // CHECK:STDOUT: %T.cpp_destructor.type: type = fn_type @T.cpp_destructor [concrete] // CHECK:STDOUT: %T.cpp_destructor: %T.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] @@ -1097,21 +1097,21 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} -// CHECK:STDOUT: %Core.import_ref.a03: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.38d) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.eab)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.48a = impl_witness_table (%Core.import_ref.a03), @T.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c2f: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.cfe)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.670 = impl_witness_table (%Core.import_ref.c2f), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %TakesConstRValue.cpp_overload_set.value: %TakesConstRValue.cpp_overload_set.type = cpp_overload_set_value @TakesConstRValue.cpp_overload_set [concrete = constants.%TakesConstRValue.cpp_overload_set.value] -// CHECK:STDOUT: %T.decl: type = class_decl @T [concrete = constants.%T.3b5] {} {} +// CHECK:STDOUT: %T.decl: type = class_decl @T [concrete = constants.%T.ed0] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.0f5 = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.0f5 = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.f99) [concrete = constants.%DefaultOrUnformed.facet.9ab] -// CHECK:STDOUT: %.loc8_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.9ab] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.eff) [concrete = constants.%DefaultOrUnformed.facet.176] +// CHECK:STDOUT: %.loc8_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.176] // CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_15.1 [concrete = constants.%S] // CHECK:STDOUT: %.loc8_15.2: type = converted %.loc8_15.1, %as_type.loc8 [concrete = constants.%S] // CHECK:STDOUT: @@ -1127,26 +1127,26 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %TakesConstRValue.ref.loc17: %TakesConstRValue.cpp_overload_set.type = name_ref TakesConstRValue, imports.%TakesConstRValue.cpp_overload_set.value [concrete = constants.%TakesConstRValue.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %t.patt: %pattern_type.471 = ref_binding_pattern t [concrete] -// CHECK:STDOUT: %t.var_patt: %pattern_type.471 = var_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.5f6 = ref_binding_pattern t [concrete] +// CHECK:STDOUT: %t.var_patt: %pattern_type.5f6 = var_pattern %t.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %t.var: ref %T.3b5 = var %t.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc19: %DefaultOrUnformed.type = facet_value constants.%T.3b5, (constants.%DefaultOrUnformed.impl_witness.dca) [concrete = constants.%DefaultOrUnformed.facet.fe5] -// CHECK:STDOUT: %.loc19_15.1: %DefaultOrUnformed.type = converted constants.%T.3b5, %DefaultOrUnformed.facet.loc19 [concrete = constants.%DefaultOrUnformed.facet.fe5] -// CHECK:STDOUT: %as_type.loc19: type = facet_access_type %.loc19_15.1 [concrete = constants.%T.3b5] -// CHECK:STDOUT: %.loc19_15.2: type = converted %.loc19_15.1, %as_type.loc19 [concrete = constants.%T.3b5] +// CHECK:STDOUT: %t.var: ref %T.ed0 = var %t.var_patt +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc19: %DefaultOrUnformed.type = facet_value constants.%T.ed0, (constants.%DefaultOrUnformed.impl_witness.537) [concrete = constants.%DefaultOrUnformed.facet.e0e] +// CHECK:STDOUT: %.loc19_15.1: %DefaultOrUnformed.type = converted constants.%T.ed0, %DefaultOrUnformed.facet.loc19 [concrete = constants.%DefaultOrUnformed.facet.e0e] +// CHECK:STDOUT: %as_type.loc19: type = facet_access_type %.loc19_15.1 [concrete = constants.%T.ed0] +// CHECK:STDOUT: %.loc19_15.2: type = converted %.loc19_15.1, %as_type.loc19 [concrete = constants.%T.ed0] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc19_3: ref %T.3b5 = splice_block %t.var {} -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc19: init %T.3b5 to %.loc19_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() +// CHECK:STDOUT: %.loc19_3: ref %T.ed0 = splice_block %t.var {} +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc19: init %T.ed0 to %.loc19_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() // CHECK:STDOUT: assign %t.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc19 -// CHECK:STDOUT: %.loc19_13: type = splice_block %T.ref [concrete = constants.%T.3b5] { +// CHECK:STDOUT: %.loc19_13: type = splice_block %T.ref [concrete = constants.%T.ed0] { // CHECK:STDOUT: %Cpp.ref.loc19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %T.ref: type = name_ref T, imports.%T.decl [concrete = constants.%T.3b5] +// CHECK:STDOUT: %T.ref: type = name_ref T, imports.%T.decl [concrete = constants.%T.ed0] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: ref %T.3b5 = ref_binding t, %t.var +// CHECK:STDOUT: %t: ref %T.ed0 = ref_binding t, %t.var // CHECK:STDOUT: %Cpp.ref.loc28: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesConstRValue.ref.loc28: %TakesConstRValue.cpp_overload_set.type = name_ref TakesConstRValue, imports.%TakesConstRValue.cpp_overload_set.value [concrete = constants.%TakesConstRValue.cpp_overload_set.value] -// CHECK:STDOUT: %t.ref: ref %T.3b5 = name_ref t, %t +// CHECK:STDOUT: %t.ref: ref %T.ed0 = name_ref t, %t // CHECK:STDOUT: %T.cpp_destructor.bound: = bound_method %t.var, constants.%T.cpp_destructor // CHECK:STDOUT: %T.cpp_destructor.call: init %empty_tuple.type = call %T.cpp_destructor.bound(%t.var) // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor @@ -1280,10 +1280,10 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %TakeAnything_ExpectConstRRef.cpp_overload_set.type: type = cpp_overload_set_type @TakeAnything_ExpectConstRRef.cpp_overload_set [concrete] // CHECK:STDOUT: %TakeAnything_ExpectConstRRef.cpp_overload_set.value: %TakeAnything_ExpectConstRRef.cpp_overload_set.type = cpp_overload_set_value @TakeAnything_ExpectConstRRef.cpp_overload_set [concrete] // CHECK:STDOUT: %const: type = const_type %X [concrete] -// CHECK:STDOUT: %ptr.2c7: type = ptr_type %const [concrete] +// CHECK:STDOUT: %ptr.faf: type = ptr_type %const [concrete] // CHECK:STDOUT: %TakeAnything_ExpectConstRRef__carbon_thunk.type: type = fn_type @TakeAnything_ExpectConstRRef__carbon_thunk [concrete] // CHECK:STDOUT: %TakeAnything_ExpectConstRRef__carbon_thunk: %TakeAnything_ExpectConstRRef__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.324: type = ptr_type %X [concrete] +// CHECK:STDOUT: %ptr.db8: type = ptr_type %X [concrete] // CHECK:STDOUT: %TakeAnything_ExpectLRef.cpp_overload_set.type: type = cpp_overload_set_type @TakeAnything_ExpectLRef.cpp_overload_set [concrete] // CHECK:STDOUT: %TakeAnything_ExpectLRef.cpp_overload_set.value: %TakeAnything_ExpectLRef.cpp_overload_set.type = cpp_overload_set_value @TakeAnything_ExpectLRef.cpp_overload_set [concrete] // CHECK:STDOUT: %TakeAnything_ExpectLRef.type: type = fn_type @TakeAnything_ExpectLRef [concrete] @@ -1338,9 +1338,9 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %TakeAnything_ExpectConstRRef.ref: %TakeAnything_ExpectConstRRef.cpp_overload_set.type = name_ref TakeAnything_ExpectConstRRef, imports.%TakeAnything_ExpectConstRRef.cpp_overload_set.value [concrete = constants.%TakeAnything_ExpectConstRRef.cpp_overload_set.value] // CHECK:STDOUT: %x.ref: %X = name_ref x, %x // CHECK:STDOUT: %.loc28_36: ref %X = value_as_ref %x.ref -// CHECK:STDOUT: %addr: %ptr.324 = addr_of %.loc28_36 -// CHECK:STDOUT: %.loc28_37.1: %ptr.2c7 = as_compatible %addr -// CHECK:STDOUT: %.loc28_37.2: %ptr.2c7 = converted %addr, %.loc28_37.1 +// CHECK:STDOUT: %addr: %ptr.db8 = addr_of %.loc28_36 +// CHECK:STDOUT: %.loc28_37.1: %ptr.faf = as_compatible %addr +// CHECK:STDOUT: %.loc28_37.2: %ptr.faf = converted %addr, %.loc28_37.1 // CHECK:STDOUT: %TakeAnything_ExpectConstRRef__carbon_thunk.call: init %empty_tuple.type = call imports.%TakeAnything_ExpectConstRRef__carbon_thunk.decl(%.loc28_37.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1364,9 +1364,9 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %.loc40_36.2: ref %X = converted %x.ref, %.loc40_36.1 // CHECK:STDOUT: %.loc40_36.3: %X = acquire_value %.loc40_36.2 // CHECK:STDOUT: %.loc40_36.4: ref %X = value_as_ref %.loc40_36.3 -// CHECK:STDOUT: %addr: %ptr.324 = addr_of %.loc40_36.4 -// CHECK:STDOUT: %.loc40_37.1: %ptr.2c7 = as_compatible %addr -// CHECK:STDOUT: %.loc40_37.2: %ptr.2c7 = converted %addr, %.loc40_37.1 +// CHECK:STDOUT: %addr: %ptr.db8 = addr_of %.loc40_36.4 +// CHECK:STDOUT: %.loc40_37.1: %ptr.faf = as_compatible %addr +// CHECK:STDOUT: %.loc40_37.2: %ptr.faf = converted %addr, %.loc40_37.1 // CHECK:STDOUT: %TakeAnything_ExpectConstLRef__carbon_thunk.call: init %empty_tuple.type = call imports.%TakeAnything_ExpectConstLRef__carbon_thunk.decl(%.loc40_37.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1379,7 +1379,7 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: // CHECK:STDOUT: %Make.call: init %X to %_.var = call %Make.ref() // CHECK:STDOUT: -// CHECK:STDOUT: %addr: %ptr.324 = addr_of %_.var +// CHECK:STDOUT: %addr: %ptr.db8 = addr_of %_.var // CHECK:STDOUT: %TakeAnything_ExpectRRef__carbon_thunk.call: init %empty_tuple.type = call imports.%TakeAnything_ExpectRRef__carbon_thunk.decl(%addr) // CHECK:STDOUT: // 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 a3485c873493..a8b924dd03b6 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/return.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/return.carbon @@ -126,8 +126,8 @@ fn Var() { // 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] // CHECK:STDOUT: %foo2: %foo2.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc11_22.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -169,7 +169,7 @@ fn Var() { // CHECK:STDOUT: %.loc12_22.1: %i32 = value_of_initializer %foo2.call // CHECK:STDOUT: %.loc12_22.2: %i32 = converted %foo2.call, %.loc12_22.1 // CHECK:STDOUT: %IngestI32.call: init %empty_tuple.type = call %IngestI32.ref(%.loc12_22.2) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc11_22.3, constants.%Destroy.Op.2dd605.2 +// 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: // CHECK:STDOUT: } @@ -187,15 +187,15 @@ fn Var() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Cpp.nullptr_t: type = class_type @NullptrT [concrete] // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] -// CHECK:STDOUT: %ptr.2d0: type = ptr_type %Cpp.void [concrete] -// CHECK:STDOUT: %pattern_type.ff2: type = pattern_type %Cpp.nullptr_t [concrete] +// CHECK:STDOUT: %ptr.00a: type = ptr_type %Cpp.void [concrete] +// CHECK:STDOUT: %pattern_type.af6: type = pattern_type %Cpp.nullptr_t [concrete] // CHECK:STDOUT: %ReturnNullPtr.cpp_overload_set.type: type = cpp_overload_set_type @ReturnNullPtr.cpp_overload_set [concrete] // CHECK:STDOUT: %ReturnNullPtr.cpp_overload_set.value: %ReturnNullPtr.cpp_overload_set.type = cpp_overload_set_value @ReturnNullPtr.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.b49: type = ptr_type %Cpp.nullptr_t [concrete] +// 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.790b3b.3: type = fn_type @Destroy.Op.loc11_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc11_3.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -215,14 +215,14 @@ fn Var() { // CHECK:STDOUT: fn @InitializeFromReturn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.ff2 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.ff2 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.af6 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.af6 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %Cpp.nullptr_t = var %c.var_patt // CHECK:STDOUT: %Cpp.ref.loc11_33: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %ReturnNullPtr.ref: %ReturnNullPtr.cpp_overload_set.type = name_ref ReturnNullPtr, imports.%ReturnNullPtr.cpp_overload_set.value [concrete = constants.%ReturnNullPtr.cpp_overload_set.value] // CHECK:STDOUT: %.loc11_3: ref %Cpp.nullptr_t = splice_block %c.var {} -// CHECK:STDOUT: %addr: %ptr.b49 = addr_of %.loc11_3 +// CHECK:STDOUT: %addr: %ptr.ab6 = addr_of %.loc11_3 // CHECK:STDOUT: %ReturnNullPtr__carbon_thunk.call: init %empty_tuple.type = call imports.%ReturnNullPtr__carbon_thunk.decl(%addr) // CHECK:STDOUT: %.loc11_51: init %Cpp.nullptr_t to %.loc11_3 = mark_in_place_init %ReturnNullPtr__carbon_thunk.call // CHECK:STDOUT: assign %c.var, %.loc11_51 @@ -231,12 +231,12 @@ fn Var() { // CHECK:STDOUT: %nullptr_t.ref: type = name_ref nullptr_t, constants.%Cpp.nullptr_t [concrete = constants.%Cpp.nullptr_t] // CHECK:STDOUT: } // CHECK:STDOUT: %c: ref %Cpp.nullptr_t = ref_binding c, %c.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %c.var, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %c.var, constants.%Destroy.Op.1a2547.3 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%c.var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_3.1(%self.param: ref %ptr.2d0) = "no_op"; +// 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 %Cpp.nullptr_t) { // CHECK:STDOUT: !entry: @@ -251,14 +251,14 @@ fn Var() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %UInt.generic: %UInt.type = struct_value () [concrete] // CHECK:STDOUT: %u8: type = class_type @UInt, @UInt(%int_8) [concrete] -// CHECK:STDOUT: %.0ff: Core.Form = init_form %u8 [concrete] -// CHECK:STDOUT: %pattern_type.753: type = pattern_type %u8 [concrete] +// CHECK:STDOUT: %.1e3: Core.Form = init_form %u8 [concrete] +// CHECK:STDOUT: %pattern_type.186: type = pattern_type %u8 [concrete] // CHECK:STDOUT: %GetU8.type: type = fn_type @GetU8 [concrete] // CHECK:STDOUT: %GetU8: %GetU8.type = struct_value () [concrete] // CHECK:STDOUT: %ReturnU8.cpp_overload_set.type: type = cpp_overload_set_type @ReturnU8.cpp_overload_set [concrete] // CHECK:STDOUT: %ReturnU8.cpp_overload_set.value: %ReturnU8.cpp_overload_set.type = cpp_overload_set_value @ReturnU8.cpp_overload_set [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %u8 [concrete] -// CHECK:STDOUT: %pattern_type.93a: type = pattern_type %ptr [concrete] +// CHECK:STDOUT: %pattern_type.015: type = pattern_type %ptr [concrete] // CHECK:STDOUT: %ReturnU8__carbon_thunk.type: type = fn_type @ReturnU8__carbon_thunk [concrete] // CHECK:STDOUT: %ReturnU8__carbon_thunk: %ReturnU8__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -276,8 +276,8 @@ fn Var() { // CHECK:STDOUT: %Core.UInt: %UInt.type = import_ref Core//prelude/types/uint, UInt, loaded [concrete = constants.%UInt.generic] // CHECK:STDOUT: %ReturnU8.cpp_overload_set.value: %ReturnU8.cpp_overload_set.type = cpp_overload_set_value @ReturnU8.cpp_overload_set [concrete = constants.%ReturnU8.cpp_overload_set.value] // CHECK:STDOUT: %ReturnU8__carbon_thunk.decl: %ReturnU8__carbon_thunk.type = fn_decl @ReturnU8__carbon_thunk [concrete = constants.%ReturnU8__carbon_thunk] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.93a = value_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.93a = at_binding_pattern r#return, %return.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.015 = value_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.015 = at_binding_pattern r#return, %return.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %return.param: %ptr = value_param call_param0 // CHECK:STDOUT: %.1: type = splice_block constants.%ptr [concrete = constants.%ptr] { @@ -300,11 +300,11 @@ fn Var() { // CHECK:STDOUT: import Cpp inline // CHECK:STDOUT: } // CHECK:STDOUT: %GetU8.decl: %GetU8.type = fn_decl @GetU8 [concrete = constants.%GetU8] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.753 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.753 = return_slot_pattern %return.param_patt, %u8 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.186 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.186 = return_slot_pattern %return.param_patt, %u8 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %u8: type = type_literal constants.%u8 [concrete = constants.%u8] -// CHECK:STDOUT: %.loc8_15: Core.Form = init_form %u8 [concrete = constants.%.0ff] +// CHECK:STDOUT: %.loc8_15: Core.Form = init_form %u8 [concrete = constants.%.1e3] // CHECK:STDOUT: %return.param: ref %u8 = out_param call_param0 // CHECK:STDOUT: %return: ref %u8 = return_slot %return.param // CHECK:STDOUT: } @@ -336,14 +336,14 @@ fn Var() { // CHECK:STDOUT: %UInt.generic: %UInt.type = struct_value () [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] // CHECK:STDOUT: %u32.builtin: type = int_type unsigned, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.126: type = pattern_type %u32 [concrete] +// CHECK:STDOUT: %pattern_type.668: type = pattern_type %u32 [concrete] // CHECK:STDOUT: %ReturnU32.cpp_overload_set.type: type = cpp_overload_set_type @ReturnU32.cpp_overload_set [concrete] // CHECK:STDOUT: %ReturnU32.cpp_overload_set.value: %ReturnU32.cpp_overload_set.type = cpp_overload_set_value @ReturnU32.cpp_overload_set [concrete] // 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.790b3b.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -360,8 +360,8 @@ fn Var() { // CHECK:STDOUT: %Core.UInt: %UInt.type = import_ref Core//prelude/types/uint, UInt, loaded [concrete = constants.%UInt.generic] // CHECK:STDOUT: %ReturnU32.cpp_overload_set.value: %ReturnU32.cpp_overload_set.type = cpp_overload_set_value @ReturnU32.cpp_overload_set [concrete = constants.%ReturnU32.cpp_overload_set.value] // CHECK:STDOUT: %ReturnU32.decl: %ReturnU32.type = fn_decl @ReturnU32 [concrete = constants.%ReturnU32] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.126 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.126 = return_slot_pattern %return.param_patt, %u32.2 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.668 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.668 = return_slot_pattern %return.param_patt, %u32.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %u32.1: type = class_type @UInt, @UInt(constants.%int_32) [concrete = constants.%u32] @@ -388,8 +388,8 @@ fn Var() { // CHECK:STDOUT: fn @Var() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %my_u32.patt: %pattern_type.126 = ref_binding_pattern my_u32 [concrete] -// CHECK:STDOUT: %my_u32.var_patt: %pattern_type.126 = var_pattern %my_u32.patt [concrete] +// CHECK:STDOUT: %my_u32.patt: %pattern_type.668 = ref_binding_pattern my_u32 [concrete] +// CHECK:STDOUT: %my_u32.var_patt: %pattern_type.668 = var_pattern %my_u32.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %my_u32.var: ref %u32 = var %my_u32.var_patt // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -398,7 +398,7 @@ fn Var() { // CHECK:STDOUT: assign %my_u32.var, %ReturnU32.call // CHECK:STDOUT: %u32: type = type_literal constants.%u32 [concrete = constants.%u32] // CHECK:STDOUT: %my_u32: ref %u32 = ref_binding my_u32, %my_u32.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %my_u32.var, constants.%Destroy.Op.2dd605.2 +// 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: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/function/import/struct.carbon b/toolchain/check/testdata/interop/cpp/function/import/struct.carbon index 3156f1e1edd2..3498187214c8 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/struct.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/struct.carbon @@ -498,7 +498,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -524,7 +524,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %.loc8: ref %S = value_as_ref %s.ref -// CHECK:STDOUT: %addr: %ptr.055 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.037 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -571,7 +571,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -597,7 +597,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %.loc8: ref %S = value_as_ref %s.ref -// CHECK:STDOUT: %addr: %ptr.055 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.037 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -609,7 +609,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -635,7 +635,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %.loc8: ref %S = value_as_ref %s.ref -// CHECK:STDOUT: %addr: %ptr.055 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.037 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -644,24 +644,24 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %pattern_type.158: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.bc1: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.da2: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.237: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] -// CHECK:STDOUT: %T.e5a: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.e5a) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.eab: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d = struct_value () [symbolic] +// CHECK:STDOUT: %T.b09: %Default.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.b09) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.cfe: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9 = struct_value () [symbolic] // CHECK:STDOUT: %S.Op.type: type = fn_type @S.Op [concrete] // CHECK:STDOUT: %S.Op: %S.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.53f: = custom_witness (%S.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.b33: %Default.type = facet_value %S, (%custom_witness.53f) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.66c: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.b33) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.66c) [concrete] +// CHECK:STDOUT: %custom_witness.85f: = custom_witness (%S.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.fc7: %Default.type = facet_value %S, (%custom_witness.85f) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.a26: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.fc7) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.a26) [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] // CHECK:STDOUT: %S.cpp_destructor: %S.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -683,8 +683,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.a03: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.38d) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.eab)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.48a = impl_witness_table (%Core.import_ref.a03), @T.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c2f: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.cfe)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.670 = impl_witness_table (%Core.import_ref.c2f), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%s.param: %S) { @@ -693,14 +693,14 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %.loc8: ref %S = value_as_ref %s.ref -// CHECK:STDOUT: %addr: %ptr.da2 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.237 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.158 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.158 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.bc1 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.bc1 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %S = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.66c) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.a26) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc10_24.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc10_24.1 [concrete = constants.%S] // CHECK:STDOUT: %.loc10_24.2: type = converted %.loc10_24.1, %as_type [concrete = constants.%S] @@ -726,7 +726,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.da6: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.b0f: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -761,7 +761,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %.loc8: ref %S = value_as_ref %s.ref -// CHECK:STDOUT: %addr: %ptr.da6 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.b0f = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -774,21 +774,21 @@ fn F() { // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.8f4: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.ad4: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.554: type = pattern_type %O [concrete] +// CHECK:STDOUT: %pattern_type.6eb: type = pattern_type %O [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] -// CHECK:STDOUT: %T.e5a: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.e5a) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.eab: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d = struct_value () [symbolic] +// CHECK:STDOUT: %T.b09: %Default.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.b09) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.cfe: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9 = struct_value () [symbolic] // CHECK:STDOUT: %O.Op.type: type = fn_type @O.Op [concrete] // CHECK:STDOUT: %O.Op: %O.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26: = custom_witness (%O.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.160: %Default.type = facet_value %O, (%custom_witness.b26) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.793: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.160) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.793) [concrete] +// CHECK:STDOUT: %custom_witness.9b4: = custom_witness (%O.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.240: %Default.type = facet_value %O, (%custom_witness.9b4) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.3bc: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.240) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.3bc) [concrete] // CHECK:STDOUT: %O.cpp_destructor.type: type = fn_type @O.cpp_destructor [concrete] // CHECK:STDOUT: %O.cpp_destructor: %O.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -806,8 +806,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.a03: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.38d) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.eab)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.48a = impl_witness_table (%Core.import_ref.a03), @T.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c2f: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.cfe)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.670 = impl_witness_table (%Core.import_ref.c2f), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%s.param: %S) { @@ -816,14 +816,14 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %.loc8: ref %S = value_as_ref %s.ref -// CHECK:STDOUT: %addr: %ptr.8f4 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.ad4 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.554 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.554 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6eb = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.6eb = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %O = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.793) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.3bc) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc9_22.1: %DefaultOrUnformed.type = converted constants.%O, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc9_22.1 [concrete = constants.%O] // CHECK:STDOUT: %.loc9_22.2: type = converted %.loc9_22.1, %as_type [concrete = constants.%O] @@ -852,7 +852,7 @@ fn F() { // CHECK:STDOUT: %S.bar: %S.bar.type = struct_value () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -884,7 +884,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %.loc9: ref %S = value_as_ref %s.ref -// CHECK:STDOUT: %addr: %ptr.055 = addr_of %.loc9 +// CHECK:STDOUT: %addr: %ptr.037 = addr_of %.loc9 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -896,7 +896,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %S.bar.cpp_overload_set.type: type = cpp_overload_set_type @S.bar.cpp_overload_set [concrete] @@ -928,7 +928,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %.loc8: ref %S = value_as_ref %s.ref -// CHECK:STDOUT: %addr: %ptr.055 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.037 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc9: type = name_ref S, imports.%S.decl [concrete = constants.%S] @@ -1016,7 +1016,7 @@ fn F() { // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] @@ -1041,7 +1041,7 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_11.1: ref %S = temporary_storage -// CHECK:STDOUT: %addr: %ptr.055 = addr_of %.loc8_11.1 +// CHECK:STDOUT: %addr: %ptr.037 = addr_of %.loc8_11.1 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: %.loc8_11.2: init %S to %.loc8_11.1 = mark_in_place_init %foo__carbon_thunk.call // CHECK:STDOUT: %.loc8_11.3: ref %S = temporary %.loc8_11.1, %.loc8_11.2 diff --git a/toolchain/check/testdata/interop/cpp/function/import/union.carbon b/toolchain/check/testdata/interop/cpp/function/import/union.carbon index 1e93430c205e..c912ab07c5a1 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/union.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/union.carbon @@ -458,7 +458,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.b3b: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.2fe: type = ptr_type %U [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -484,7 +484,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %u.ref: %U = name_ref u, %u // CHECK:STDOUT: %.loc8: ref %U = value_as_ref %u.ref -// CHECK:STDOUT: %addr: %ptr.b3b = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.2fe = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -496,7 +496,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.b3b: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.2fe: type = ptr_type %U [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -522,7 +522,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %u.ref: %U = name_ref u, %u // CHECK:STDOUT: %.loc8: ref %U = value_as_ref %u.ref -// CHECK:STDOUT: %addr: %ptr.b3b = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.2fe = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -534,7 +534,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.b3b: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.2fe: type = ptr_type %U [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -560,7 +560,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %u.ref: %U = name_ref u, %u // CHECK:STDOUT: %.loc8: ref %U = value_as_ref %u.ref -// CHECK:STDOUT: %addr: %ptr.b3b = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.2fe = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -569,24 +569,24 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %U: type = class_type @U [concrete] -// CHECK:STDOUT: %pattern_type.769: type = pattern_type %U [concrete] +// CHECK:STDOUT: %pattern_type.04d: type = pattern_type %U [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.987: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.d0c: type = ptr_type %U [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] -// CHECK:STDOUT: %T.e5a: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.e5a) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.eab: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d = struct_value () [symbolic] +// CHECK:STDOUT: %T.b09: %Default.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.b09) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.cfe: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9 = struct_value () [symbolic] // CHECK:STDOUT: %U.Op.type: type = fn_type @U.Op [concrete] // CHECK:STDOUT: %U.Op: %U.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.53f: = custom_witness (%U.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.5f5: %Default.type = facet_value %U, (%custom_witness.53f) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.5b2: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.5f5) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %U, (%DefaultOrUnformed.impl_witness.5b2) [concrete] +// CHECK:STDOUT: %custom_witness.85f: = custom_witness (%U.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.fb3: %Default.type = facet_value %U, (%custom_witness.85f) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.147: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.fb3) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %U, (%DefaultOrUnformed.impl_witness.147) [concrete] // CHECK:STDOUT: %U.cpp_destructor.type: type = fn_type @U.cpp_destructor [concrete] // CHECK:STDOUT: %U.cpp_destructor: %U.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -608,8 +608,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.a03: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.38d) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.eab)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.48a = impl_witness_table (%Core.import_ref.a03), @T.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c2f: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.cfe)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.670 = impl_witness_table (%Core.import_ref.c2f), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%u.param: %U) { @@ -618,14 +618,14 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %u.ref: %U = name_ref u, %u // CHECK:STDOUT: %.loc8: ref %U = value_as_ref %u.ref -// CHECK:STDOUT: %addr: %ptr.987 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.d0c = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.769 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.769 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.04d = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.04d = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %U = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%U, (constants.%DefaultOrUnformed.impl_witness.5b2) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%U, (constants.%DefaultOrUnformed.impl_witness.147) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc10_24.1: %DefaultOrUnformed.type = converted constants.%U, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc10_24.1 [concrete = constants.%U] // CHECK:STDOUT: %.loc10_24.2: type = converted %.loc10_24.1, %as_type [concrete = constants.%U] @@ -651,7 +651,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.ff3: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.6d9: type = ptr_type %U [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -686,7 +686,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %u.ref: %U = name_ref u, %u // CHECK:STDOUT: %.loc8: ref %U = value_as_ref %u.ref -// CHECK:STDOUT: %addr: %ptr.ff3 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.6d9 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -699,21 +699,21 @@ fn F() { // CHECK:STDOUT: %U: type = class_type @U [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.5aa: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.fea: type = ptr_type %U [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.554: type = pattern_type %O [concrete] +// CHECK:STDOUT: %pattern_type.6eb: type = pattern_type %O [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] -// CHECK:STDOUT: %T.e5a: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.e5a) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.eab: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d = struct_value () [symbolic] +// CHECK:STDOUT: %T.b09: %Default.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.b09) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.cfe: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9 = struct_value () [symbolic] // CHECK:STDOUT: %O.Op.type: type = fn_type @O.Op [concrete] // CHECK:STDOUT: %O.Op: %O.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26: = custom_witness (%O.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.160: %Default.type = facet_value %O, (%custom_witness.b26) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.793: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.160) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.793) [concrete] +// CHECK:STDOUT: %custom_witness.9b4: = custom_witness (%O.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.240: %Default.type = facet_value %O, (%custom_witness.9b4) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.3bc: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.240) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.3bc) [concrete] // CHECK:STDOUT: %O.cpp_destructor.type: type = fn_type @O.cpp_destructor [concrete] // CHECK:STDOUT: %O.cpp_destructor: %O.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -731,8 +731,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.a03: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.38d) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.eab)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.48a = impl_witness_table (%Core.import_ref.a03), @T.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c2f: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.cfe)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.670 = impl_witness_table (%Core.import_ref.c2f), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%u.param: %U) { @@ -741,14 +741,14 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %u.ref: %U = name_ref u, %u // CHECK:STDOUT: %.loc8: ref %U = value_as_ref %u.ref -// CHECK:STDOUT: %addr: %ptr.5aa = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.fea = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.554 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.554 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6eb = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.6eb = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %O = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.793) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.3bc) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc9_22.1: %DefaultOrUnformed.type = converted constants.%O, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc9_22.1 [concrete = constants.%O] // CHECK:STDOUT: %.loc9_22.2: type = converted %.loc9_22.1, %as_type [concrete = constants.%O] @@ -777,7 +777,7 @@ fn F() { // CHECK:STDOUT: %U.bar: %U.bar.type = struct_value () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.b3b: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.2fe: type = ptr_type %U [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -809,7 +809,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %u.ref: %U = name_ref u, %u // CHECK:STDOUT: %.loc9: ref %U = value_as_ref %u.ref -// CHECK:STDOUT: %addr: %ptr.b3b = addr_of %.loc9 +// CHECK:STDOUT: %addr: %ptr.2fe = addr_of %.loc9 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -821,7 +821,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.b3b: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.2fe: type = ptr_type %U [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %U.bar.cpp_overload_set.type: type = cpp_overload_set_type @U.bar.cpp_overload_set [concrete] @@ -853,7 +853,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %u.ref: %U = name_ref u, %u // CHECK:STDOUT: %.loc8: ref %U = value_as_ref %u.ref -// CHECK:STDOUT: %addr: %ptr.b3b = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.2fe = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %U.ref.loc9: type = name_ref U, imports.%U.decl [concrete = constants.%U] @@ -941,7 +941,7 @@ fn F() { // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %U: type = class_type @U [concrete] -// CHECK:STDOUT: %ptr.b3b: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.2fe: type = ptr_type %U [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %U.cpp_destructor.type: type = fn_type @U.cpp_destructor [concrete] @@ -966,7 +966,7 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_11.1: ref %U = temporary_storage -// CHECK:STDOUT: %addr: %ptr.b3b = addr_of %.loc8_11.1 +// CHECK:STDOUT: %addr: %ptr.2fe = addr_of %.loc8_11.1 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: %.loc8_11.2: init %U to %.loc8_11.1 = mark_in_place_init %foo__carbon_thunk.call // CHECK:STDOUT: %.loc8_11.3: ref %U = temporary %.loc8_11.1, %.loc8_11.2 diff --git a/toolchain/check/testdata/interop/cpp/function/import/variadic.carbon b/toolchain/check/testdata/interop/cpp/function/import/variadic.carbon index 14d6e57dd1a4..479ddc7987f7 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/variadic.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/variadic.carbon @@ -48,34 +48,34 @@ fn Call3() { // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %foo.type.95b203.1: type = fn_type @foo.1 [concrete] -// CHECK:STDOUT: %foo.f55227.1: %foo.type.95b203.1 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %foo.type.6d9caa.1: type = fn_type @foo.1 [concrete] +// CHECK:STDOUT: %foo.627376.1: %foo.type.6d9caa.1 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %foo.type.95b203.2: type = fn_type @foo.2 [concrete] -// CHECK:STDOUT: %foo.f55227.2: %foo.type.95b203.2 = struct_value () [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %foo.type.6d9caa.2: type = fn_type @foo.2 [concrete] +// CHECK:STDOUT: %foo.627376.2: %foo.type.6d9caa.2 = struct_value () [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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %foo.type.95b203.3: type = fn_type @foo.3 [concrete] -// CHECK:STDOUT: %foo.f55227.3: %foo.type.95b203.3 = struct_value () [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] +// CHECK:STDOUT: %foo.type.6d9caa.3: type = fn_type @foo.3 [concrete] +// CHECK:STDOUT: %foo.627376.3: %foo.type.6d9caa.3 = struct_value () [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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -84,19 +84,19 @@ fn Call3() { // 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: %foo.decl.993533.1: %foo.type.95b203.1 = fn_decl @foo.1 [concrete = constants.%foo.f55227.1] { +// CHECK:STDOUT: %foo.decl.6431a3.1: %foo.type.6d9caa.1 = fn_decl @foo.1 [concrete = constants.%foo.627376.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %foo.decl.993533.2: %foo.type.95b203.2 = fn_decl @foo.2 [concrete = constants.%foo.f55227.2] { +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %foo.decl.6431a3.2: %foo.type.6d9caa.2 = fn_decl @foo.2 [concrete = constants.%foo.627376.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %foo.decl.993533.3: %foo.type.95b203.3 = fn_decl @foo.3 [concrete = constants.%foo.f55227.3] { +// CHECK:STDOUT: %foo.decl.6431a3.3: %foo.type.6d9caa.3 = fn_decl @foo.3 [concrete = constants.%foo.627376.3] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -108,14 +108,14 @@ fn Call3() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl.993533.1(%.loc8_11.2) +// CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl.6431a3.1(%.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -125,21 +125,21 @@ fn Call3() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc14_11: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc14_11.1: = bound_method %int_1, %impl.elem0.loc14_11 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc14_11: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc14_11.1: = bound_method %int_1, %impl.elem0.loc14_11 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc14_11: = specific_function %impl.elem0.loc14_11, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc14_11.2: = bound_method %int_1, %specific_fn.loc14_11 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_11: init %i32 = call %bound_method.loc14_11.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc14_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_11 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc14_11.2: %i32 = converted %int_1, %.loc14_11.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc14_14: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc14_14.1: = bound_method %int_2, %impl.elem0.loc14_14 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc14_11.2: = bound_method %int_1, %specific_fn.loc14_11 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_11: init %i32 = call %bound_method.loc14_11.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc14_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_11 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc14_11.2: %i32 = converted %int_1, %.loc14_11.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc14_14: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc14_14.1: = bound_method %int_2, %impl.elem0.loc14_14 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc14_14: = specific_function %impl.elem0.loc14_14, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc14_14.2: = bound_method %int_2, %specific_fn.loc14_14 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_14: init %i32 = call %bound_method.loc14_14.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc14_14.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_14 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc14_14.2: %i32 = converted %int_2, %.loc14_14.1 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl.993533.2(%.loc14_11.2, %.loc14_14.2) +// CHECK:STDOUT: %bound_method.loc14_14.2: = bound_method %int_2, %specific_fn.loc14_14 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_14: init %i32 = call %bound_method.loc14_14.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc14_14.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14_14 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc14_14.2: %i32 = converted %int_2, %.loc14_14.1 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl.6431a3.2(%.loc14_11.2, %.loc14_14.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -150,28 +150,28 @@ fn Call3() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc20_11: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc20_11.1: = bound_method %int_1, %impl.elem0.loc20_11 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc20_11: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc20_11.1: = bound_method %int_1, %impl.elem0.loc20_11 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc20_11: = specific_function %impl.elem0.loc20_11, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc20_11.2: = bound_method %int_1, %specific_fn.loc20_11 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_11: init %i32 = call %bound_method.loc20_11.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc20_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_11 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc20_11.2: %i32 = converted %int_1, %.loc20_11.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc20_14: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc20_14.1: = bound_method %int_2, %impl.elem0.loc20_14 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc20_11.2: = bound_method %int_1, %specific_fn.loc20_11 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_11: init %i32 = call %bound_method.loc20_11.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc20_11.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_11 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc20_11.2: %i32 = converted %int_1, %.loc20_11.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc20_14: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc20_14.1: = bound_method %int_2, %impl.elem0.loc20_14 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc20_14: = specific_function %impl.elem0.loc20_14, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc20_14.2: = bound_method %int_2, %specific_fn.loc20_14 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_14: init %i32 = call %bound_method.loc20_14.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc20_14.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_14 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc20_14.2: %i32 = converted %int_2, %.loc20_14.1 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %impl.elem0.loc20_17: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc20_17.1: = bound_method %int_3, %impl.elem0.loc20_17 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %bound_method.loc20_14.2: = bound_method %int_2, %specific_fn.loc20_14 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_14: init %i32 = call %bound_method.loc20_14.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc20_14.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_14 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc20_14.2: %i32 = converted %int_2, %.loc20_14.1 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %impl.elem0.loc20_17: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc20_17.1: = bound_method %int_3, %impl.elem0.loc20_17 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc20_17: = specific_function %impl.elem0.loc20_17, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc20_17.2: = bound_method %int_3, %specific_fn.loc20_17 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_17: init %i32 = call %bound_method.loc20_17.2(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc20_17.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_17 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc20_17.2: %i32 = converted %int_3, %.loc20_17.1 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl.993533.3(%.loc20_11.2, %.loc20_14.2, %.loc20_17.2) +// CHECK:STDOUT: %bound_method.loc20_17.2: = bound_method %int_3, %specific_fn.loc20_17 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_17: init %i32 = call %bound_method.loc20_17.2(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc20_17.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_17 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc20_17.2: %i32 = converted %int_3, %.loc20_17.1 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl.6431a3.3(%.loc20_11.2, %.loc20_14.2, %.loc20_17.2) // CHECK:STDOUT: // CHECK:STDOUT: } // 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 c045ccdcbe18..d22e401cfc87 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/void_pointer.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/void_pointer.carbon @@ -197,48 +197,48 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ptr.2d0: type = ptr_type %Cpp.void [concrete] +// CHECK:STDOUT: %ptr.00a: type = ptr_type %Cpp.void [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.21f: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.3b3: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.21f) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.d10: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.3b3) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.type.7a7: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.d46: %ptr.as.OptionalStorage.impl.Some.type.7a7 = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.1: = custom_witness (%Destroy.Op.2dd605.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.7ee: %Destroy.type = facet_value %ptr.2d0, (%custom_witness.e20f1f.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.7a1: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.7ee) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.066: = impl_witness imports.%OptionalStorage.impl_witness_table.404, @ptr.as.OptionalStorage.impl(%Cpp.void) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.a1e: %OptionalStorage.type = facet_value %ptr.2d0, (%OptionalStorage.impl_witness.066) [concrete] -// CHECK:STDOUT: %Optional.43b: type = class_type @Optional, @Optional(%OptionalStorage.facet.a1e) [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: %ptr.as.OptionalStorage.impl.Some.type.d38: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.191: %ptr.as.OptionalStorage.impl.Some.type.d38 = 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: %OptionalStorage.impl_witness.cc5: = impl_witness imports.%OptionalStorage.impl_witness_table.7bc, @ptr.as.OptionalStorage.impl(%Cpp.void) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.f19: %OptionalStorage.type = facet_value %ptr.00a, (%OptionalStorage.impl_witness.cc5) [concrete] +// CHECK:STDOUT: %Optional.c11: type = class_type @Optional, @Optional(%OptionalStorage.facet.f19) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.157: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.43b)> [concrete] -// CHECK:STDOUT: %OptionalAs.type.c01: type = facet_type <@OptionalAs, @OptionalAs(%T.4e7)> [symbolic] -// CHECK:STDOUT: %U.847: %OptionalAs.type.c01 = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.d99: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1e6(%T.4e7, %U.847) [symbolic] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.401: %U.as_type.as.ImplicitAs.impl.Convert.type.d99 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.type.539: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.a1e)> [concrete] -// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.b97: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.4e7) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.a9b: %T.as_type.as.OptionalAs.impl.Convert.type.b97 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.6a7: = impl_witness imports.%OptionalAs.impl_witness_table.973, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.a1e) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.539 = facet_value %ptr.2d0, (%OptionalAs.impl_witness.6a7) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.77a: = impl_witness imports.%ImplicitAs.impl_witness_table.5f2, @U.as_type.as.ImplicitAs.impl.1e6(%OptionalStorage.facet.a1e, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.710: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1e6(%OptionalStorage.facet.a1e, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.48d: %U.as_type.as.ImplicitAs.impl.Convert.type.710 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.59e: %ImplicitAs.type.157 = facet_value %ptr.2d0, (%ImplicitAs.impl_witness.77a) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.783: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.43b, %ImplicitAs.facet.59e) [concrete] -// CHECK:STDOUT: %.ac1: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.783, %ImplicitAs.facet.59e [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.48d, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.a1e, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc10_11.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.37e: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.c11)> [concrete] +// CHECK:STDOUT: %OptionalAs.type.3b8: type = facet_type <@OptionalAs, @OptionalAs(%T.220)> [symbolic] +// CHECK:STDOUT: %U.042: %OptionalAs.type.3b8 = symbolic_binding U, 1 [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.ad5: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.167(%T.220, %U.042) [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.331: %U.as_type.as.ImplicitAs.impl.Convert.type.ad5 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.type.cfc: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.f19)> [concrete] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.774: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.220) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.5f9: %T.as_type.as.OptionalAs.impl.Convert.type.774 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.impl_witness.d9b: = impl_witness imports.%OptionalAs.impl_witness_table.efa, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.f19) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.cfc = facet_value %ptr.00a, (%OptionalAs.impl_witness.d9b) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.5aa: = impl_witness imports.%ImplicitAs.impl_witness_table.cf7, @U.as_type.as.ImplicitAs.impl.167(%OptionalStorage.facet.f19, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.3de: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.167(%OptionalStorage.facet.f19, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.504: %U.as_type.as.ImplicitAs.impl.Convert.type.3de = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.d85: %ImplicitAs.type.37e = facet_value %ptr.00a, (%ImplicitAs.impl_witness.5aa) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.bdd: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.c11, %ImplicitAs.facet.d85) [concrete] +// CHECK:STDOUT: %.c7c: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.bdd, %ImplicitAs.facet.d85 [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.504, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.f19, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc10_11.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -248,56 +248,56 @@ fn F() { // 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.c1a: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.d10)] -// CHECK:STDOUT: %Core.import_ref.31a = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.ed3: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some.type (%ptr.as.OptionalStorage.impl.Some.type.7a7) = 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.d46)] -// CHECK:STDOUT: %Core.import_ref.b33 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.d18 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.4ad4 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.404 = impl_witness_table (%Core.import_ref.c1a, %Core.import_ref.31a, %Core.import_ref.ed3, %Core.import_ref.b33, %Core.import_ref.d18, %Core.import_ref.4ad4), @ptr.as.OptionalStorage.impl [concrete] +// 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.26e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.d86: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.Some.type (%ptr.as.OptionalStorage.impl.Some.type.d38) = 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.191)] +// CHECK:STDOUT: %Core.import_ref.274 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.358 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.db3 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.7bc = impl_witness_table (%Core.import_ref.509, %Core.import_ref.26e, %Core.import_ref.d86, %Core.import_ref.274, %Core.import_ref.358, %Core.import_ref.db3), @ptr.as.OptionalStorage.impl [concrete] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc10_16.1: type = splice_block %Optional [concrete = constants.%Optional.43b] { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.2d0, (constants.%OptionalStorage.impl_witness.066) [concrete = constants.%OptionalStorage.facet.a1e] -// CHECK:STDOUT: %.loc10_16.2: %OptionalStorage.type = converted constants.%ptr.2d0, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.a1e] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.a1e) [concrete = constants.%Optional.43b] +// CHECK:STDOUT: %.loc10_16.1: type = splice_block %Optional [concrete = constants.%Optional.c11] { +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.00a, (constants.%OptionalStorage.impl_witness.cc5) [concrete = constants.%OptionalStorage.facet.f19] +// CHECK:STDOUT: %.loc10_16.2: %OptionalStorage.type = converted constants.%ptr.00a, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.f19] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.f19) [concrete = constants.%Optional.c11] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ce3: @U.as_type.as.ImplicitAs.impl.1e6.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.d99) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.1e6.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.401)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.5f2 = impl_witness_table (%Core.import_ref.ce3), @U.as_type.as.ImplicitAs.impl.1e6 [concrete] -// CHECK:STDOUT: %Core.import_ref.cb8: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.b97) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.a9b)] -// CHECK:STDOUT: %OptionalAs.impl_witness_table.973 = impl_witness_table (%Core.import_ref.cb8), @T.as_type.as.OptionalAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.eb9: @U.as_type.as.ImplicitAs.impl.167.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.ad5) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.167.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.331)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.cf7 = impl_witness_table (%Core.import_ref.eb9), @U.as_type.as.ImplicitAs.impl.167 [concrete] +// CHECK:STDOUT: %Core.import_ref.017: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.774) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.5f9)] +// CHECK:STDOUT: %OptionalAs.impl_witness_table.efa = impl_witness_table (%Core.import_ref.017), @T.as_type.as.OptionalAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%input.param: %ptr.2d0) { +// CHECK:STDOUT: fn @F(%input.param: %ptr.00a) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] -// CHECK:STDOUT: %input.ref: %ptr.2d0 = name_ref input, %input -// CHECK:STDOUT: %impl.elem0: %.ac1 = impl_witness_access constants.%ImplicitAs.impl_witness.77a, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.48d] +// CHECK:STDOUT: %input.ref: %ptr.00a = name_ref input, %input +// CHECK:STDOUT: %impl.elem0: %.c7c = impl_witness_access constants.%ImplicitAs.impl_witness.5aa, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.504] // CHECK:STDOUT: %bound_method.loc10_11.1: = bound_method %input.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.a1e, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.f19, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_11.2: = bound_method %input.ref, %specific_fn -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.43b = call %bound_method.loc10_11.2(%input.ref) -// CHECK:STDOUT: %.loc10_11.1: init %Optional.43b = converted %input.ref, %U.as_type.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %.loc10_11.2: ref %Optional.43b = temporary_storage -// CHECK:STDOUT: %.loc10_11.3: ref %Optional.43b = temporary %.loc10_11.2, %.loc10_11.1 -// CHECK:STDOUT: %.loc10_11.4: %Optional.43b = acquire_value %.loc10_11.3 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.c11 = call %bound_method.loc10_11.2(%input.ref) +// CHECK:STDOUT: %.loc10_11.1: init %Optional.c11 = converted %input.ref, %U.as_type.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %.loc10_11.2: ref %Optional.c11 = temporary_storage +// CHECK:STDOUT: %.loc10_11.3: ref %Optional.c11 = temporary %.loc10_11.2, %.loc10_11.1 +// CHECK:STDOUT: %.loc10_11.4: %Optional.c11 = acquire_value %.loc10_11.3 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc10_11.4) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc10_11.3, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc10_11.3, constants.%Destroy.Op.1a2547.3 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc10_11.3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_11.1(%self.param: ref %MaybeUnformed.7a1) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_11.1(%self.param: ref %MaybeUnformed.399) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_11.2(%self.param: ref %Optional.43b) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_11.2(%self.param: ref %Optional.c11) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -311,40 +311,40 @@ fn F() { // CHECK:STDOUT: %Optional.type: type = generic_class_type @Optional [concrete] // CHECK:STDOUT: %Optional.generic: %Optional.type = struct_value () [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Optional.None.type.bf3: type = fn_type @Optional.None, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.None.216: %Optional.None.type.bf3 = struct_value () [symbolic] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Optional.None.type.bdc: type = fn_type @Optional.None, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.None.01e: %Optional.None.type.bdc = struct_value () [symbolic] // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] -// CHECK:STDOUT: %ptr.2d0: type = ptr_type %Cpp.void [concrete] +// CHECK:STDOUT: %ptr.00a: type = ptr_type %Cpp.void [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.21f: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.3b3: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.21f) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.d10: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.3b3) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.type.da2: type = fn_type @ptr.as.OptionalStorage.impl.None, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.41b: %ptr.as.OptionalStorage.impl.None.type.da2 = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.1: = custom_witness (%Destroy.Op.2dd605.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.7ee: %Destroy.type = facet_value %ptr.2d0, (%custom_witness.e20f1f.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.7a1: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.7ee) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.dcf: = impl_witness imports.%OptionalStorage.impl_witness_table.885, @ptr.as.OptionalStorage.impl(%Cpp.void) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.2d0, (%OptionalStorage.impl_witness.dcf) [concrete] -// CHECK:STDOUT: %Optional.921: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %Optional.None.type.0c0: type = fn_type @Optional.None, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %Optional.None.e84: %Optional.None.type.0c0 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %Optional.None.e84, @Optional.None(%OptionalStorage.facet) [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: %ptr.as.OptionalStorage.impl.None.type.703: type = fn_type @ptr.as.OptionalStorage.impl.None, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.467: %ptr.as.OptionalStorage.impl.None.type.703 = 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: %OptionalStorage.impl_witness.ae9: = impl_witness imports.%OptionalStorage.impl_witness_table.aa4, @ptr.as.OptionalStorage.impl(%Cpp.void) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.00a, (%OptionalStorage.impl_witness.ae9) [concrete] +// CHECK:STDOUT: %Optional.d90: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Optional.None.type.c50: type = fn_type @Optional.None, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Optional.None.5c6: %Optional.None.type.c50 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %Optional.None.5c6, @Optional.None(%OptionalStorage.facet) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc10_41.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc10_41.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .Optional = %Core.Optional -// CHECK:STDOUT: .CppCompat = %CppCompat.463205.1 +// CHECK:STDOUT: .CppCompat = %CppCompat.f0dbf9.1 // CHECK:STDOUT: .Destroy = %Core.Destroy // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -356,29 +356,29 @@ fn F() { // 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.Optional: %Optional.type = import_ref Core//prelude/types/optional, Optional, loaded [concrete = constants.%Optional.generic] -// CHECK:STDOUT: %Core.import_ref.c2b: @Optional.%Optional.None.type (%Optional.None.type.bf3) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @Optional.%Optional.None (constants.%Optional.None.216)] +// CHECK:STDOUT: %Core.import_ref.e9f: @Optional.%Optional.None.type (%Optional.None.type.bdc) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @Optional.%Optional.None (constants.%Optional.None.01e)] // CHECK:STDOUT: %Core.CppCompat: = import_ref Core//prelude, CppCompat, loaded -// CHECK:STDOUT: %CppCompat.463205.1: = namespace %Core.CppCompat, [concrete] { +// CHECK:STDOUT: %CppCompat.f0dbf9.1: = namespace %Core.CppCompat, [concrete] { // CHECK:STDOUT: .VoidBase = %Core.VoidBase // CHECK:STDOUT: import Core//prelude // 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.c1a: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.d10)] -// CHECK:STDOUT: %Core.import_ref.d20: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.None.type (%ptr.as.OptionalStorage.impl.None.type.da2) = 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.41b)] -// CHECK:STDOUT: %Core.import_ref.97e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.b33 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.d18 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.4ad = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.885 = impl_witness_table (%Core.import_ref.c1a, %Core.import_ref.d20, %Core.import_ref.97e, %Core.import_ref.b33, %Core.import_ref.d18, %Core.import_ref.4ad), @ptr.as.OptionalStorage.impl [concrete] +// 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.df2: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.None.type (%ptr.as.OptionalStorage.impl.None.type.703) = 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.467)] +// CHECK:STDOUT: %Core.import_ref.a6e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.274 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.358 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.db3 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.aa4 = impl_witness_table (%Core.import_ref.509, %Core.import_ref.df2, %Core.import_ref.a6e, %Core.import_ref.274, %Core.import_ref.358, %Core.import_ref.db3), @ptr.as.OptionalStorage.impl [concrete] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc10_42.1: type = splice_block %Optional [concrete = constants.%Optional.921] { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.2d0, (constants.%OptionalStorage.impl_witness.dcf) [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %.loc10_42.2: %OptionalStorage.type = converted constants.%ptr.2d0, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.921] +// CHECK:STDOUT: %.loc10_42.1: type = splice_block %Optional [concrete = constants.%Optional.d90] { +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.00a, (constants.%OptionalStorage.impl_witness.ae9) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %.loc10_42.2: %OptionalStorage.type = converted constants.%ptr.00a, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.d90] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } @@ -393,29 +393,29 @@ fn F() { // CHECK:STDOUT: %Optional.ref: %Optional.type = name_ref Optional, imports.%Core.Optional [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Cpp.ref.loc10_25: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %void.ref: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] -// CHECK:STDOUT: %ptr: type = ptr_type %void.ref [concrete = constants.%ptr.2d0] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.dcf) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %ptr: type = ptr_type %void.ref [concrete = constants.%ptr.00a] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.ae9) [concrete = constants.%OptionalStorage.facet] // CHECK:STDOUT: %.loc10_34: %OptionalStorage.type = converted %ptr, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.921] -// CHECK:STDOUT: %.loc10_35: %Optional.None.type.0c0 = specific_constant imports.%Core.import_ref.c2b, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.None.e84] -// CHECK:STDOUT: %None.ref: %Optional.None.type.0c0 = name_ref None, %.loc10_35 [concrete = constants.%Optional.None.e84] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.d90] +// CHECK:STDOUT: %.loc10_35: %Optional.None.type.c50 = specific_constant imports.%Core.import_ref.e9f, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.None.5c6] +// CHECK:STDOUT: %None.ref: %Optional.None.type.c50 = name_ref None, %.loc10_35 [concrete = constants.%Optional.None.5c6] // CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %None.ref, @Optional.None(constants.%OptionalStorage.facet) [concrete = constants.%Optional.None.specific_fn] -// CHECK:STDOUT: %Optional.None.call: init %Optional.921 = call %Optional.None.specific_fn() -// CHECK:STDOUT: %.loc10_41.1: ref %Optional.921 = temporary_storage -// CHECK:STDOUT: %.loc10_41.2: ref %Optional.921 = temporary %.loc10_41.1, %Optional.None.call -// CHECK:STDOUT: %.loc10_41.3: %Optional.921 = acquire_value %.loc10_41.2 +// CHECK:STDOUT: %Optional.None.call: init %Optional.d90 = call %Optional.None.specific_fn() +// CHECK:STDOUT: %.loc10_41.1: ref %Optional.d90 = temporary_storage +// CHECK:STDOUT: %.loc10_41.2: ref %Optional.d90 = temporary %.loc10_41.1, %Optional.None.call +// CHECK:STDOUT: %.loc10_41.3: %Optional.d90 = acquire_value %.loc10_41.2 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc10_41.3) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc10_41.2, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc10_41.2, constants.%Destroy.Op.1a2547.3 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc10_41.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_41.1(%self.param: ref %MaybeUnformed.7a1) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_41.1(%self.param: ref %MaybeUnformed.399) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_41.2(%self.param: ref %Optional.921) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_41.2(%self.param: ref %Optional.d90) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -428,34 +428,34 @@ fn F() { // CHECK:STDOUT: %Optional.generic: %Optional.type = struct_value () [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] -// CHECK:STDOUT: %ptr.2d0: type = ptr_type %Cpp.void [concrete] +// CHECK:STDOUT: %ptr.00a: type = ptr_type %Cpp.void [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.21f: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.3b3: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.21f) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.d10: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.3b3) [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.1: = custom_witness (%Destroy.Op.2dd605.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.7ee: %Destroy.type = facet_value %ptr.2d0, (%custom_witness.e20f1f.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.7a1: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.7ee) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.ab6: = impl_witness imports.%OptionalStorage.impl_witness_table.cee, @ptr.as.OptionalStorage.impl(%Cpp.void) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.2d0, (%OptionalStorage.impl_witness.ab6) [concrete] -// CHECK:STDOUT: %Optional.8b3: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %pattern_type.3e3: type = pattern_type %Optional.8b3 [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: %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: %OptionalStorage.impl_witness.570: = impl_witness imports.%OptionalStorage.impl_witness_table.76e, @ptr.as.OptionalStorage.impl(%Cpp.void) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.00a, (%OptionalStorage.impl_witness.570) [concrete] +// CHECK:STDOUT: %Optional.752: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %pattern_type.d62: type = pattern_type %Optional.752 [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc10_57.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc10_57.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .Optional = %Core.Optional -// CHECK:STDOUT: .CppCompat = %CppCompat.463205.1 +// CHECK:STDOUT: .CppCompat = %CppCompat.f0dbf9.1 // CHECK:STDOUT: .Destroy = %Core.Destroy // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... @@ -467,26 +467,26 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Optional: %Optional.type = import_ref Core//prelude/types/optional, Optional, loaded [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Core.CppCompat: = import_ref Core//prelude, CppCompat, loaded -// CHECK:STDOUT: %CppCompat.463205.1: = namespace %Core.CppCompat, [concrete] { +// CHECK:STDOUT: %CppCompat.f0dbf9.1: = namespace %Core.CppCompat, [concrete] { // CHECK:STDOUT: .VoidBase = %Core.VoidBase // CHECK:STDOUT: import Core//prelude // 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.c1a: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.d10)] -// CHECK:STDOUT: %Core.import_ref.31a = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.97e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.b33 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.d18 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.4ad = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.cee = impl_witness_table (%Core.import_ref.c1a, %Core.import_ref.31a, %Core.import_ref.97e, %Core.import_ref.b33, %Core.import_ref.d18, %Core.import_ref.4ad), @ptr.as.OptionalStorage.impl [concrete] +// 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.26e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.a6e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.274 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.358 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.db3 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.76e = impl_witness_table (%Core.import_ref.509, %Core.import_ref.26e, %Core.import_ref.a6e, %Core.import_ref.274, %Core.import_ref.358, %Core.import_ref.db3), @ptr.as.OptionalStorage.impl [concrete] // 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: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { // CHECK:STDOUT: // CHECK:STDOUT: } { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.2d0, (constants.%OptionalStorage.impl_witness.ab6) [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %.loc10: %OptionalStorage.type = converted constants.%ptr.2d0, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.8b3] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.00a, (constants.%OptionalStorage.impl_witness.570) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %.loc10: %OptionalStorage.type = converted constants.%ptr.00a, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.752] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] @@ -495,36 +495,36 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %output.patt: %pattern_type.3e3 = value_binding_pattern output [concrete] +// CHECK:STDOUT: %output.patt: %pattern_type.d62 = value_binding_pattern output [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc10_49: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] -// CHECK:STDOUT: %foo.call: init %Optional.8b3 = call imports.%foo.decl() -// CHECK:STDOUT: %.loc10_45.1: type = splice_block %Optional [concrete = constants.%Optional.8b3] { +// CHECK:STDOUT: %foo.call: init %Optional.752 = call imports.%foo.decl() +// CHECK:STDOUT: %.loc10_45.1: type = splice_block %Optional [concrete = constants.%Optional.752] { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Optional.ref: %Optional.type = name_ref Optional, imports.%Core.Optional [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Cpp.ref.loc10_36: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %void.ref: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] -// CHECK:STDOUT: %ptr: type = ptr_type %void.ref [concrete = constants.%ptr.2d0] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.ab6) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %ptr: type = ptr_type %void.ref [concrete = constants.%ptr.00a] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.570) [concrete = constants.%OptionalStorage.facet] // CHECK:STDOUT: %.loc10_45.2: %OptionalStorage.type = converted %ptr, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.8b3] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.752] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc10_57.1: ref %Optional.8b3 = temporary_storage -// CHECK:STDOUT: %.loc10_57.2: ref %Optional.8b3 = temporary %.loc10_57.1, %foo.call -// CHECK:STDOUT: %.loc10_57.3: %Optional.8b3 = acquire_value %.loc10_57.2 -// CHECK:STDOUT: %output: %Optional.8b3 = value_binding output, %.loc10_57.3 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc10_57.2, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %.loc10_57.1: ref %Optional.752 = temporary_storage +// CHECK:STDOUT: %.loc10_57.2: ref %Optional.752 = temporary %.loc10_57.1, %foo.call +// CHECK:STDOUT: %.loc10_57.3: %Optional.752 = acquire_value %.loc10_57.2 +// CHECK:STDOUT: %output: %Optional.752 = value_binding output, %.loc10_57.3 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc10_57.2, constants.%Destroy.Op.1a2547.3 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc10_57.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_57.1(%self.param: ref %MaybeUnformed.7a1) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_57.1(%self.param: ref %MaybeUnformed.399) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_57.2(%self.param: ref %Optional.8b3) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_57.2(%self.param: ref %Optional.752) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -534,9 +534,9 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] -// CHECK:STDOUT: %ptr.2d0: type = ptr_type %Cpp.void [concrete] -// CHECK:STDOUT: %ptr.817: type = ptr_type %ptr.2d0 [concrete] -// CHECK:STDOUT: %pattern_type.00e: type = pattern_type %ptr.817 [concrete] +// CHECK:STDOUT: %ptr.00a: type = ptr_type %Cpp.void [concrete] +// CHECK:STDOUT: %ptr.6f9: type = ptr_type %ptr.00a [concrete] +// CHECK:STDOUT: %pattern_type.c1e: type = pattern_type %ptr.6f9 [concrete] // CHECK:STDOUT: %Return.cpp_overload_set.type: type = cpp_overload_set_type @Return.cpp_overload_set [concrete] // CHECK:STDOUT: %Return.cpp_overload_set.value: %Return.cpp_overload_set.type = cpp_overload_set_value @Return.cpp_overload_set [concrete] // CHECK:STDOUT: %Return.type: type = fn_type @Return [concrete] @@ -573,32 +573,32 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %non_nullable_pointer.patt: %pattern_type.00e = ref_binding_pattern non_nullable_pointer [concrete] -// CHECK:STDOUT: %non_nullable_pointer.var_patt: %pattern_type.00e = var_pattern %non_nullable_pointer.patt [concrete] +// CHECK:STDOUT: %non_nullable_pointer.patt: %pattern_type.c1e = ref_binding_pattern non_nullable_pointer [concrete] +// CHECK:STDOUT: %non_nullable_pointer.var_patt: %pattern_type.c1e = var_pattern %non_nullable_pointer.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %non_nullable_pointer.var: ref %ptr.817 = var %non_nullable_pointer.var_patt +// CHECK:STDOUT: %non_nullable_pointer.var: ref %ptr.6f9 = var %non_nullable_pointer.var_patt // CHECK:STDOUT: %Cpp.ref.loc11_42: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Return.ref: %Return.cpp_overload_set.type = name_ref Return, imports.%Return.cpp_overload_set.value [concrete = constants.%Return.cpp_overload_set.value] -// CHECK:STDOUT: %Return.call: init %ptr.817 = call imports.%Return.decl() +// CHECK:STDOUT: %Return.call: init %ptr.6f9 = call imports.%Return.decl() // CHECK:STDOUT: assign %non_nullable_pointer.var, %Return.call -// CHECK:STDOUT: %.loc11: type = splice_block %ptr.loc11_38 [concrete = constants.%ptr.817] { +// CHECK:STDOUT: %.loc11: type = splice_block %ptr.loc11_38 [concrete = constants.%ptr.6f9] { // CHECK:STDOUT: %Cpp.ref.loc11_29: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %void.ref: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] -// CHECK:STDOUT: %ptr.loc11_37: type = ptr_type %void.ref [concrete = constants.%ptr.2d0] -// CHECK:STDOUT: %ptr.loc11_38: type = ptr_type %ptr.loc11_37 [concrete = constants.%ptr.817] +// CHECK:STDOUT: %ptr.loc11_37: type = ptr_type %void.ref [concrete = constants.%ptr.00a] +// CHECK:STDOUT: %ptr.loc11_38: type = ptr_type %ptr.loc11_37 [concrete = constants.%ptr.6f9] // CHECK:STDOUT: } -// CHECK:STDOUT: %non_nullable_pointer: ref %ptr.817 = ref_binding non_nullable_pointer, %non_nullable_pointer.var +// CHECK:STDOUT: %non_nullable_pointer: ref %ptr.6f9 = ref_binding non_nullable_pointer, %non_nullable_pointer.var // CHECK:STDOUT: %Cpp.ref.loc12: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Invoke.ref: %Invoke.cpp_overload_set.type = name_ref Invoke, imports.%Invoke.cpp_overload_set.value [concrete = constants.%Invoke.cpp_overload_set.value] -// CHECK:STDOUT: %non_nullable_pointer.ref: ref %ptr.817 = name_ref non_nullable_pointer, %non_nullable_pointer -// CHECK:STDOUT: %.loc12: %ptr.817 = acquire_value %non_nullable_pointer.ref +// 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.call: init %empty_tuple.type = call imports.%Invoke.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: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr.817) = "no_op"; +// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr.6f9) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- non_nullable_const.carbon // CHECK:STDOUT: @@ -607,7 +607,7 @@ fn F() { // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] // CHECK:STDOUT: %const: type = const_type %Cpp.void [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %const [concrete] -// CHECK:STDOUT: %pattern_type.511: type = pattern_type %ptr [concrete] +// CHECK:STDOUT: %pattern_type.c83: type = pattern_type %ptr [concrete] // CHECK:STDOUT: %Return.cpp_overload_set.type: type = cpp_overload_set_type @Return.cpp_overload_set [concrete] // CHECK:STDOUT: %Return.cpp_overload_set.value: %Return.cpp_overload_set.type = cpp_overload_set_value @Return.cpp_overload_set [concrete] // CHECK:STDOUT: %Return.type: type = fn_type @Return [concrete] @@ -644,8 +644,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %const_void_pointer.patt: %pattern_type.511 = ref_binding_pattern const_void_pointer [concrete] -// CHECK:STDOUT: %const_void_pointer.var_patt: %pattern_type.511 = var_pattern %const_void_pointer.patt [concrete] +// CHECK:STDOUT: %const_void_pointer.patt: %pattern_type.c83 = ref_binding_pattern const_void_pointer [concrete] +// CHECK:STDOUT: %const_void_pointer.var_patt: %pattern_type.c83 = var_pattern %const_void_pointer.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %const_void_pointer.var: ref %ptr = var %const_void_pointer.var_patt // CHECK:STDOUT: %Cpp.ref.loc11_45: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] diff --git a/toolchain/check/testdata/interop/cpp/impls/as.carbon b/toolchain/check/testdata/interop/cpp/impls/as.carbon index 76db8e23245b..cbd7d4c113f2 100644 --- a/toolchain/check/testdata/interop/cpp/impls/as.carbon +++ b/toolchain/check/testdata/interop/cpp/impls/as.carbon @@ -137,17 +137,17 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %Dest: type = class_type @Dest [concrete] // CHECK:STDOUT: %Source.cpp_operator.type: type = fn_type @Source.cpp_operator [concrete] // CHECK:STDOUT: %Source.cpp_operator: %Source.cpp_operator.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.246: type = ptr_type %Dest [concrete] -// CHECK:STDOUT: %Dest__carbon_thunk.type.2ffc11.1: type = fn_type @Dest__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %Dest__carbon_thunk.61ac37.1: %Dest__carbon_thunk.type.2ffc11.1 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.ca8: type = ptr_type %Dest [concrete] +// CHECK:STDOUT: %Dest__carbon_thunk.type.eb4c5e.1: type = fn_type @Dest__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %Dest__carbon_thunk.c8e433.1: %Dest__carbon_thunk.type.eb4c5e.1 = struct_value () [concrete] // CHECK:STDOUT: %Dest.cpp_destructor.type: type = fn_type @Dest.cpp_destructor [concrete] // CHECK:STDOUT: %Dest.cpp_destructor: %Dest.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %Dest.Op.type: type = fn_type @Dest.Op [concrete] // CHECK:STDOUT: %Dest.Op: %Dest.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Source2: type = class_type @Source2 [concrete] // CHECK:STDOUT: %Dest2: type = class_type @Dest2 [concrete] -// CHECK:STDOUT: %ptr.692: type = ptr_type %Source2 [concrete] -// CHECK:STDOUT: %ptr.a5d: type = ptr_type %Dest2 [concrete] +// CHECK:STDOUT: %ptr.0db: type = ptr_type %Source2 [concrete] +// CHECK:STDOUT: %ptr.802: type = ptr_type %Dest2 [concrete] // CHECK:STDOUT: %Dest2__carbon_thunk.type: type = fn_type @Dest2__carbon_thunk [concrete] // CHECK:STDOUT: %Dest2__carbon_thunk: %Dest2__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Dest2.cpp_destructor.type: type = fn_type @Dest2.cpp_destructor [concrete] @@ -155,8 +155,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %Dest2.Op.type: type = fn_type @Dest2.Op [concrete] // CHECK:STDOUT: %Dest2.Op: %Dest2.Op.type = struct_value () [concrete] // CHECK:STDOUT: %ExplicitConstructor: type = class_type @ExplicitConstructor [concrete] -// CHECK:STDOUT: %ptr.71b: type = ptr_type %Source [concrete] -// CHECK:STDOUT: %ptr.207: type = ptr_type %ExplicitConstructor [concrete] +// CHECK:STDOUT: %ptr.5f6: type = ptr_type %Source [concrete] +// CHECK:STDOUT: %ptr.44f: type = ptr_type %ExplicitConstructor [concrete] // CHECK:STDOUT: %ExplicitConstructor__carbon_thunk.type: type = fn_type @ExplicitConstructor__carbon_thunk [concrete] // CHECK:STDOUT: %ExplicitConstructor__carbon_thunk: %ExplicitConstructor__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %ExplicitConstructor.cpp_destructor.type: type = fn_type @ExplicitConstructor.cpp_destructor [concrete] @@ -166,8 +166,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %ExplicitConversion: type = class_type @ExplicitConversion [concrete] // CHECK:STDOUT: %ExplicitConversion.cpp_operator.type: type = fn_type @ExplicitConversion.cpp_operator [concrete] // CHECK:STDOUT: %ExplicitConversion.cpp_operator: %ExplicitConversion.cpp_operator.type = struct_value () [concrete] -// CHECK:STDOUT: %Dest__carbon_thunk.type.2ffc11.2: type = fn_type @Dest__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %Dest__carbon_thunk.61ac37.2: %Dest__carbon_thunk.type.2ffc11.2 = struct_value () [concrete] +// CHECK:STDOUT: %Dest__carbon_thunk.type.eb4c5e.2: type = fn_type @Dest__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %Dest__carbon_thunk.c8e433.2: %Dest__carbon_thunk.type.eb4c5e.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -187,7 +187,7 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Dest__carbon_thunk.decl.74d7b8.1: %Dest__carbon_thunk.type.2ffc11.1 = fn_decl @Dest__carbon_thunk.1 [concrete = constants.%Dest__carbon_thunk.61ac37.1] { +// CHECK:STDOUT: %Dest__carbon_thunk.decl.a8fbc1.1: %Dest__carbon_thunk.type.eb4c5e.1 = fn_decl @Dest__carbon_thunk.1 [concrete = constants.%Dest__carbon_thunk.c8e433.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -226,7 +226,7 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Dest__carbon_thunk.decl.74d7b8.2: %Dest__carbon_thunk.type.2ffc11.2 = fn_decl @Dest__carbon_thunk.2 [concrete = constants.%Dest__carbon_thunk.61ac37.2] { +// CHECK:STDOUT: %Dest__carbon_thunk.decl.a8fbc1.2: %Dest__carbon_thunk.type.eb4c5e.2 = fn_decl @Dest__carbon_thunk.2 [concrete = constants.%Dest__carbon_thunk.c8e433.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -240,8 +240,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest] // CHECK:STDOUT: %Source.cpp_operator.bound: = bound_method %s.ref, imports.%Source.cpp_operator.decl // CHECK:STDOUT: %.loc8_5.1: ref %Dest = temporary_storage -// CHECK:STDOUT: %addr: %ptr.246 = addr_of %.loc8_5.1 -// CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl.74d7b8.1(%s.ref, %addr) +// CHECK:STDOUT: %addr: %ptr.ca8 = addr_of %.loc8_5.1 +// CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl.a8fbc1.1(%s.ref, %addr) // CHECK:STDOUT: %.loc8_5.2: init %Dest to %.loc8_5.1 = mark_in_place_init %Dest__carbon_thunk.call // CHECK:STDOUT: %.loc8_5.3: init %Dest = converted %s.ref, %.loc8_5.2 // CHECK:STDOUT: %.loc8_5.4: ref %Dest = temporary %.loc8_5.1, %.loc8_5.3 @@ -260,8 +260,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %Dest2.ref: type = name_ref Dest2, imports.%Dest2.decl [concrete = constants.%Dest2] // CHECK:STDOUT: %.loc14_5.1: ref %Dest2 = temporary_storage // CHECK:STDOUT: %.loc14_3: ref %Source2 = value_as_ref %s.ref -// CHECK:STDOUT: %addr.loc14_5.1: %ptr.692 = addr_of %.loc14_3 -// CHECK:STDOUT: %addr.loc14_5.2: %ptr.a5d = addr_of %.loc14_5.1 +// CHECK:STDOUT: %addr.loc14_5.1: %ptr.0db = addr_of %.loc14_3 +// CHECK:STDOUT: %addr.loc14_5.2: %ptr.802 = addr_of %.loc14_5.1 // CHECK:STDOUT: %Dest2__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest2__carbon_thunk.decl(%addr.loc14_5.1, %addr.loc14_5.2) // CHECK:STDOUT: %.loc14_5.2: init %Dest2 to %.loc14_5.1 = mark_in_place_init %Dest2__carbon_thunk.call // CHECK:STDOUT: %.loc14_5.3: init %Dest2 = converted %s.ref, %.loc14_5.2 @@ -281,8 +281,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %ExplicitConstructor.ref: type = name_ref ExplicitConstructor, imports.%ExplicitConstructor.decl [concrete = constants.%ExplicitConstructor] // CHECK:STDOUT: %.loc20_5.1: ref %ExplicitConstructor = temporary_storage // CHECK:STDOUT: %.loc20_3: ref %Source = value_as_ref %s.ref -// CHECK:STDOUT: %addr.loc20_5.1: %ptr.71b = addr_of %.loc20_3 -// CHECK:STDOUT: %addr.loc20_5.2: %ptr.207 = addr_of %.loc20_5.1 +// CHECK:STDOUT: %addr.loc20_5.1: %ptr.5f6 = addr_of %.loc20_3 +// CHECK:STDOUT: %addr.loc20_5.2: %ptr.44f = addr_of %.loc20_5.1 // CHECK:STDOUT: %ExplicitConstructor__carbon_thunk.call: init %empty_tuple.type = call imports.%ExplicitConstructor__carbon_thunk.decl(%addr.loc20_5.1, %addr.loc20_5.2) // CHECK:STDOUT: %.loc20_5.2: init %ExplicitConstructor to %.loc20_5.1 = mark_in_place_init %ExplicitConstructor__carbon_thunk.call // CHECK:STDOUT: %.loc20_5.3: init %ExplicitConstructor = converted %s.ref, %.loc20_5.2 @@ -302,8 +302,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest] // CHECK:STDOUT: %ExplicitConversion.cpp_operator.bound: = bound_method %s.ref, imports.%ExplicitConversion.cpp_operator.decl // CHECK:STDOUT: %.loc26_5.1: ref %Dest = temporary_storage -// CHECK:STDOUT: %addr: %ptr.246 = addr_of %.loc26_5.1 -// CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl.74d7b8.2(%s.ref, %addr) +// CHECK:STDOUT: %addr: %ptr.ca8 = addr_of %.loc26_5.1 +// CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl.a8fbc1.2(%s.ref, %addr) // CHECK:STDOUT: %.loc26_5.2: init %Dest to %.loc26_5.1 = mark_in_place_init %Dest__carbon_thunk.call // CHECK:STDOUT: %.loc26_5.3: init %Dest = converted %s.ref, %.loc26_5.2 // CHECK:STDOUT: %.loc26_5.4: ref %Dest = temporary %.loc26_5.1, %.loc26_5.3 @@ -319,29 +319,29 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Source: type = class_type @Source [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ConditionallyExplicit.d2a: type = class_type @ConditionallyExplicit.1 [concrete] -// CHECK:STDOUT: %pattern_type.e92: type = pattern_type %ConditionallyExplicit.d2a [concrete] -// CHECK:STDOUT: %ptr.71b: type = ptr_type %Source [concrete] -// CHECK:STDOUT: %ptr.c11: type = ptr_type %ConditionallyExplicit.d2a [concrete] -// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.type.c43f84.1: type = fn_type @ConditionallyExplicit__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.379b04.1: %ConditionallyExplicit__carbon_thunk.type.c43f84.1 = struct_value () [concrete] -// CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.type.6ce8c4.1: type = fn_type @ConditionallyExplicit.cpp_destructor.1 [concrete] -// CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.1ad69a.1: %ConditionallyExplicit.cpp_destructor.type.6ce8c4.1 = struct_value () [concrete] -// CHECK:STDOUT: %ConditionallyExplicit.Op.type.43d658.1: type = fn_type @ConditionallyExplicit.Op.1 [concrete] -// CHECK:STDOUT: %ConditionallyExplicit.Op.cc70d5.1: %ConditionallyExplicit.Op.type.43d658.1 = struct_value () [concrete] -// CHECK:STDOUT: %ConditionallyExplicit.717: type = class_type @ConditionallyExplicit.2 [concrete] -// CHECK:STDOUT: %ptr.6d5: type = ptr_type %ConditionallyExplicit.717 [concrete] -// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.type.c43f84.2: type = fn_type @ConditionallyExplicit__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.379b04.2: %ConditionallyExplicit__carbon_thunk.type.c43f84.2 = struct_value () [concrete] -// CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.type.6ce8c4.2: type = fn_type @ConditionallyExplicit.cpp_destructor.2 [concrete] -// CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.1ad69a.2: %ConditionallyExplicit.cpp_destructor.type.6ce8c4.2 = struct_value () [concrete] -// CHECK:STDOUT: %ConditionallyExplicit.Op.type.43d658.2: type = fn_type @ConditionallyExplicit.Op.2 [concrete] -// CHECK:STDOUT: %ConditionallyExplicit.Op.cc70d5.2: %ConditionallyExplicit.Op.type.43d658.2 = struct_value () [concrete] +// CHECK:STDOUT: %ConditionallyExplicit.3cd: type = class_type @ConditionallyExplicit.1 [concrete] +// CHECK:STDOUT: %pattern_type.be2: type = pattern_type %ConditionallyExplicit.3cd [concrete] +// CHECK:STDOUT: %ptr.5f6: type = ptr_type %Source [concrete] +// CHECK:STDOUT: %ptr.bb5: type = ptr_type %ConditionallyExplicit.3cd [concrete] +// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.type.c9ab94.1: type = fn_type @ConditionallyExplicit__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.924633.1: %ConditionallyExplicit__carbon_thunk.type.c9ab94.1 = struct_value () [concrete] +// CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.type.634098.1: type = fn_type @ConditionallyExplicit.cpp_destructor.1 [concrete] +// CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.5dc792.1: %ConditionallyExplicit.cpp_destructor.type.634098.1 = struct_value () [concrete] +// CHECK:STDOUT: %ConditionallyExplicit.Op.type.83af6e.1: type = fn_type @ConditionallyExplicit.Op.1 [concrete] +// CHECK:STDOUT: %ConditionallyExplicit.Op.4dca31.1: %ConditionallyExplicit.Op.type.83af6e.1 = struct_value () [concrete] +// CHECK:STDOUT: %ConditionallyExplicit.9d4: type = class_type @ConditionallyExplicit.2 [concrete] +// CHECK:STDOUT: %ptr.4c0: type = ptr_type %ConditionallyExplicit.9d4 [concrete] +// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.type.c9ab94.2: type = fn_type @ConditionallyExplicit__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.924633.2: %ConditionallyExplicit__carbon_thunk.type.c9ab94.2 = struct_value () [concrete] +// CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.type.634098.2: type = fn_type @ConditionallyExplicit.cpp_destructor.2 [concrete] +// CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.5dc792.2: %ConditionallyExplicit.cpp_destructor.type.634098.2 = struct_value () [concrete] +// CHECK:STDOUT: %ConditionallyExplicit.Op.type.83af6e.2: type = fn_type @ConditionallyExplicit.Op.2 [concrete] +// CHECK:STDOUT: %ConditionallyExplicit.Op.4dca31.2: %ConditionallyExplicit.Op.type.83af6e.2 = struct_value () [concrete] // CHECK:STDOUT: %Dest: type = class_type @Dest [concrete] -// CHECK:STDOUT: %pattern_type.56d: type = pattern_type %Dest [concrete] +// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Dest [concrete] // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator.type: type = fn_type @ConditionallyExplicit.cpp_operator [concrete] // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator: %ConditionallyExplicit.cpp_operator.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.246: type = ptr_type %Dest [concrete] +// CHECK:STDOUT: %ptr.ca8: type = ptr_type %Dest [concrete] // CHECK:STDOUT: %Dest__carbon_thunk.type: type = fn_type @Dest__carbon_thunk [concrete] // CHECK:STDOUT: %Dest__carbon_thunk: %Dest__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Dest.cpp_destructor.type: type = fn_type @Dest.cpp_destructor [concrete] @@ -353,30 +353,30 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { // CHECK:STDOUT: .Source = %Source.decl -// CHECK:STDOUT: .ConditionallyExplicitFalse = %ConditionallyExplicit.decl.6be -// CHECK:STDOUT: .ConditionallyExplicitTrue = %ConditionallyExplicit.decl.80b +// CHECK:STDOUT: .ConditionallyExplicitFalse = %ConditionallyExplicit.decl.996 +// CHECK:STDOUT: .ConditionallyExplicitTrue = %ConditionallyExplicit.decl.6ab // CHECK:STDOUT: .Dest = %Dest.decl // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %Source.decl: type = class_decl @Source [concrete = constants.%Source] {} {} -// CHECK:STDOUT: %ConditionallyExplicit.decl.6be: type = class_decl @ConditionallyExplicit.1 [concrete = constants.%ConditionallyExplicit.d2a] {} {} -// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.decl.3d8900.1: %ConditionallyExplicit__carbon_thunk.type.c43f84.1 = fn_decl @ConditionallyExplicit__carbon_thunk.1 [concrete = constants.%ConditionallyExplicit__carbon_thunk.379b04.1] { +// CHECK:STDOUT: %ConditionallyExplicit.decl.996: type = class_decl @ConditionallyExplicit.1 [concrete = constants.%ConditionallyExplicit.3cd] {} {} +// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.decl.761528.1: %ConditionallyExplicit__carbon_thunk.type.c9ab94.1 = fn_decl @ConditionallyExplicit__carbon_thunk.1 [concrete = constants.%ConditionallyExplicit__carbon_thunk.924633.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.decl.6e607d.1: %ConditionallyExplicit.cpp_destructor.type.6ce8c4.1 = fn_decl @ConditionallyExplicit.cpp_destructor.1 [concrete = constants.%ConditionallyExplicit.cpp_destructor.1ad69a.1] { +// CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.decl.a7962a.1: %ConditionallyExplicit.cpp_destructor.type.634098.1 = fn_decl @ConditionallyExplicit.cpp_destructor.1 [concrete = constants.%ConditionallyExplicit.cpp_destructor.5dc792.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %ConditionallyExplicit.decl.80b: type = class_decl @ConditionallyExplicit.2 [concrete = constants.%ConditionallyExplicit.717] {} {} -// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.decl.3d8900.2: %ConditionallyExplicit__carbon_thunk.type.c43f84.2 = fn_decl @ConditionallyExplicit__carbon_thunk.2 [concrete = constants.%ConditionallyExplicit__carbon_thunk.379b04.2] { +// CHECK:STDOUT: %ConditionallyExplicit.decl.6ab: type = class_decl @ConditionallyExplicit.2 [concrete = constants.%ConditionallyExplicit.9d4] {} {} +// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.decl.761528.2: %ConditionallyExplicit__carbon_thunk.type.c9ab94.2 = fn_decl @ConditionallyExplicit__carbon_thunk.2 [concrete = constants.%ConditionallyExplicit__carbon_thunk.924633.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.decl.6e607d.2: %ConditionallyExplicit.cpp_destructor.type.6ce8c4.2 = fn_decl @ConditionallyExplicit.cpp_destructor.2 [concrete = constants.%ConditionallyExplicit.cpp_destructor.1ad69a.2] { +// CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.decl.a7962a.2: %ConditionallyExplicit.cpp_destructor.type.634098.2 = fn_decl @ConditionallyExplicit.cpp_destructor.2 [concrete = constants.%ConditionallyExplicit.cpp_destructor.5dc792.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -402,41 +402,41 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: fn @ConstructorNotExplicit(%s.param: %Source) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.e92 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.be2 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref.loc8: %Source = name_ref s, %s -// CHECK:STDOUT: %.loc8_13: type = splice_block %ConditionallyExplicitFalse.ref.loc8 [concrete = constants.%ConditionallyExplicit.d2a] { +// CHECK:STDOUT: %.loc8_13: type = splice_block %ConditionallyExplicitFalse.ref.loc8 [concrete = constants.%ConditionallyExplicit.3cd] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %ConditionallyExplicitFalse.ref.loc8: type = name_ref ConditionallyExplicitFalse, imports.%ConditionallyExplicit.decl.6be [concrete = constants.%ConditionallyExplicit.d2a] +// CHECK:STDOUT: %ConditionallyExplicitFalse.ref.loc8: type = name_ref ConditionallyExplicitFalse, imports.%ConditionallyExplicit.decl.996 [concrete = constants.%ConditionallyExplicit.3cd] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8_43.1: ref %ConditionallyExplicit.d2a = temporary_storage +// CHECK:STDOUT: %.loc8_43.1: ref %ConditionallyExplicit.3cd = temporary_storage // CHECK:STDOUT: %.loc8_43.2: ref %Source = value_as_ref %s.ref.loc8 -// CHECK:STDOUT: %addr.loc8_43.1: %ptr.71b = addr_of %.loc8_43.2 -// CHECK:STDOUT: %addr.loc8_43.2: %ptr.c11 = addr_of %.loc8_43.1 -// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%ConditionallyExplicit__carbon_thunk.decl.3d8900.1(%addr.loc8_43.1, %addr.loc8_43.2) -// CHECK:STDOUT: %.loc8_43.3: init %ConditionallyExplicit.d2a to %.loc8_43.1 = mark_in_place_init %ConditionallyExplicit__carbon_thunk.call.loc8 -// CHECK:STDOUT: %.loc8_43.4: init %ConditionallyExplicit.d2a = converted %s.ref.loc8, %.loc8_43.3 -// CHECK:STDOUT: %.loc8_43.5: ref %ConditionallyExplicit.d2a = temporary %.loc8_43.1, %.loc8_43.4 -// CHECK:STDOUT: %.loc8_43.6: %ConditionallyExplicit.d2a = acquire_value %.loc8_43.5 -// CHECK:STDOUT: %_: %ConditionallyExplicit.d2a = value_binding _, %.loc8_43.6 +// CHECK:STDOUT: %addr.loc8_43.1: %ptr.5f6 = addr_of %.loc8_43.2 +// CHECK:STDOUT: %addr.loc8_43.2: %ptr.bb5 = addr_of %.loc8_43.1 +// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%ConditionallyExplicit__carbon_thunk.decl.761528.1(%addr.loc8_43.1, %addr.loc8_43.2) +// CHECK:STDOUT: %.loc8_43.3: init %ConditionallyExplicit.3cd to %.loc8_43.1 = mark_in_place_init %ConditionallyExplicit__carbon_thunk.call.loc8 +// CHECK:STDOUT: %.loc8_43.4: init %ConditionallyExplicit.3cd = converted %s.ref.loc8, %.loc8_43.3 +// CHECK:STDOUT: %.loc8_43.5: ref %ConditionallyExplicit.3cd = temporary %.loc8_43.1, %.loc8_43.4 +// CHECK:STDOUT: %.loc8_43.6: %ConditionallyExplicit.3cd = acquire_value %.loc8_43.5 +// CHECK:STDOUT: %_: %ConditionallyExplicit.3cd = value_binding _, %.loc8_43.6 // CHECK:STDOUT: %s.ref.loc9: %Source = name_ref s, %s // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %ConditionallyExplicitFalse.ref.loc9: type = name_ref ConditionallyExplicitFalse, imports.%ConditionallyExplicit.decl.6be [concrete = constants.%ConditionallyExplicit.d2a] -// CHECK:STDOUT: %.loc9_5.1: ref %ConditionallyExplicit.d2a = temporary_storage +// CHECK:STDOUT: %ConditionallyExplicitFalse.ref.loc9: type = name_ref ConditionallyExplicitFalse, imports.%ConditionallyExplicit.decl.996 [concrete = constants.%ConditionallyExplicit.3cd] +// CHECK:STDOUT: %.loc9_5.1: ref %ConditionallyExplicit.3cd = temporary_storage // CHECK:STDOUT: %.loc9_3: ref %Source = value_as_ref %s.ref.loc9 -// CHECK:STDOUT: %addr.loc9_5.1: %ptr.71b = addr_of %.loc9_3 -// CHECK:STDOUT: %addr.loc9_5.2: %ptr.c11 = addr_of %.loc9_5.1 -// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%ConditionallyExplicit__carbon_thunk.decl.3d8900.1(%addr.loc9_5.1, %addr.loc9_5.2) -// CHECK:STDOUT: %.loc9_5.2: init %ConditionallyExplicit.d2a to %.loc9_5.1 = mark_in_place_init %ConditionallyExplicit__carbon_thunk.call.loc9 -// CHECK:STDOUT: %.loc9_5.3: init %ConditionallyExplicit.d2a = converted %s.ref.loc9, %.loc9_5.2 -// CHECK:STDOUT: %.loc9_5.4: ref %ConditionallyExplicit.d2a = temporary %.loc9_5.1, %.loc9_5.3 +// CHECK:STDOUT: %addr.loc9_5.1: %ptr.5f6 = addr_of %.loc9_3 +// CHECK:STDOUT: %addr.loc9_5.2: %ptr.bb5 = addr_of %.loc9_5.1 +// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%ConditionallyExplicit__carbon_thunk.decl.761528.1(%addr.loc9_5.1, %addr.loc9_5.2) +// CHECK:STDOUT: %.loc9_5.2: init %ConditionallyExplicit.3cd to %.loc9_5.1 = mark_in_place_init %ConditionallyExplicit__carbon_thunk.call.loc9 +// CHECK:STDOUT: %.loc9_5.3: init %ConditionallyExplicit.3cd = converted %s.ref.loc9, %.loc9_5.2 +// CHECK:STDOUT: %.loc9_5.4: ref %ConditionallyExplicit.3cd = temporary %.loc9_5.1, %.loc9_5.3 // CHECK:STDOUT: -// CHECK:STDOUT: %ConditionallyExplicit.Op.bound.loc9: = bound_method %.loc9_5.4, constants.%ConditionallyExplicit.Op.cc70d5.1 -// CHECK:STDOUT: %Op.ref.loc9: %ConditionallyExplicit.cpp_destructor.type.6ce8c4.1 = name_ref Op, imports.%ConditionallyExplicit.cpp_destructor.decl.6e607d.1 [concrete = constants.%ConditionallyExplicit.cpp_destructor.1ad69a.1] +// CHECK:STDOUT: %ConditionallyExplicit.Op.bound.loc9: = bound_method %.loc9_5.4, constants.%ConditionallyExplicit.Op.4dca31.1 +// CHECK:STDOUT: %Op.ref.loc9: %ConditionallyExplicit.cpp_destructor.type.634098.1 = name_ref Op, imports.%ConditionallyExplicit.cpp_destructor.decl.a7962a.1 [concrete = constants.%ConditionallyExplicit.cpp_destructor.5dc792.1] // CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.bound.loc9: = bound_method %.loc9_5.4, %Op.ref.loc9 // CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.call.loc9: init %empty_tuple.type = call %ConditionallyExplicit.cpp_destructor.bound.loc9(%.loc9_5.4) -// CHECK:STDOUT: %ConditionallyExplicit.Op.bound.loc8: = bound_method %.loc8_43.5, constants.%ConditionallyExplicit.Op.cc70d5.1 -// CHECK:STDOUT: %Op.ref.loc8: %ConditionallyExplicit.cpp_destructor.type.6ce8c4.1 = name_ref Op, imports.%ConditionallyExplicit.cpp_destructor.decl.6e607d.1 [concrete = constants.%ConditionallyExplicit.cpp_destructor.1ad69a.1] +// CHECK:STDOUT: %ConditionallyExplicit.Op.bound.loc8: = bound_method %.loc8_43.5, constants.%ConditionallyExplicit.Op.4dca31.1 +// CHECK:STDOUT: %Op.ref.loc8: %ConditionallyExplicit.cpp_destructor.type.634098.1 = name_ref Op, imports.%ConditionallyExplicit.cpp_destructor.decl.a7962a.1 [concrete = constants.%ConditionallyExplicit.cpp_destructor.5dc792.1] // CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.bound.loc8: = bound_method %.loc8_43.5, %Op.ref.loc8 // CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.call.loc8: init %empty_tuple.type = call %ConditionallyExplicit.cpp_destructor.bound.loc8(%.loc8_43.5) // CHECK:STDOUT: @@ -446,48 +446,48 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %s.ref: %Source = name_ref s, %s // CHECK:STDOUT: %Cpp.ref.loc15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %ConditionallyExplicitTrue.ref: type = name_ref ConditionallyExplicitTrue, imports.%ConditionallyExplicit.decl.80b [concrete = constants.%ConditionallyExplicit.717] -// CHECK:STDOUT: %.loc15_5.1: ref %ConditionallyExplicit.717 = temporary_storage +// CHECK:STDOUT: %ConditionallyExplicitTrue.ref: type = name_ref ConditionallyExplicitTrue, imports.%ConditionallyExplicit.decl.6ab [concrete = constants.%ConditionallyExplicit.9d4] +// CHECK:STDOUT: %.loc15_5.1: ref %ConditionallyExplicit.9d4 = temporary_storage // CHECK:STDOUT: %.loc15_3: ref %Source = value_as_ref %s.ref -// CHECK:STDOUT: %addr.loc15_5.1: %ptr.71b = addr_of %.loc15_3 -// CHECK:STDOUT: %addr.loc15_5.2: %ptr.6d5 = addr_of %.loc15_5.1 -// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.call: init %empty_tuple.type = call imports.%ConditionallyExplicit__carbon_thunk.decl.3d8900.2(%addr.loc15_5.1, %addr.loc15_5.2) -// CHECK:STDOUT: %.loc15_5.2: init %ConditionallyExplicit.717 to %.loc15_5.1 = mark_in_place_init %ConditionallyExplicit__carbon_thunk.call -// CHECK:STDOUT: %.loc15_5.3: init %ConditionallyExplicit.717 = converted %s.ref, %.loc15_5.2 -// CHECK:STDOUT: %.loc15_5.4: ref %ConditionallyExplicit.717 = temporary %.loc15_5.1, %.loc15_5.3 +// CHECK:STDOUT: %addr.loc15_5.1: %ptr.5f6 = addr_of %.loc15_3 +// CHECK:STDOUT: %addr.loc15_5.2: %ptr.4c0 = addr_of %.loc15_5.1 +// CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.call: init %empty_tuple.type = call imports.%ConditionallyExplicit__carbon_thunk.decl.761528.2(%addr.loc15_5.1, %addr.loc15_5.2) +// CHECK:STDOUT: %.loc15_5.2: init %ConditionallyExplicit.9d4 to %.loc15_5.1 = mark_in_place_init %ConditionallyExplicit__carbon_thunk.call +// CHECK:STDOUT: %.loc15_5.3: init %ConditionallyExplicit.9d4 = converted %s.ref, %.loc15_5.2 +// CHECK:STDOUT: %.loc15_5.4: ref %ConditionallyExplicit.9d4 = temporary %.loc15_5.1, %.loc15_5.3 // CHECK:STDOUT: -// CHECK:STDOUT: %ConditionallyExplicit.Op.bound: = bound_method %.loc15_5.4, constants.%ConditionallyExplicit.Op.cc70d5.2 -// CHECK:STDOUT: %Op.ref: %ConditionallyExplicit.cpp_destructor.type.6ce8c4.2 = name_ref Op, imports.%ConditionallyExplicit.cpp_destructor.decl.6e607d.2 [concrete = constants.%ConditionallyExplicit.cpp_destructor.1ad69a.2] +// CHECK:STDOUT: %ConditionallyExplicit.Op.bound: = bound_method %.loc15_5.4, constants.%ConditionallyExplicit.Op.4dca31.2 +// CHECK:STDOUT: %Op.ref: %ConditionallyExplicit.cpp_destructor.type.634098.2 = name_ref Op, imports.%ConditionallyExplicit.cpp_destructor.decl.a7962a.2 [concrete = constants.%ConditionallyExplicit.cpp_destructor.5dc792.2] // CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.bound: = bound_method %.loc15_5.4, %Op.ref // CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.call: init %empty_tuple.type = call %ConditionallyExplicit.cpp_destructor.bound(%.loc15_5.4) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConversionNotExplicit(%s.param: %ConditionallyExplicit.d2a) { +// CHECK:STDOUT: fn @ConversionNotExplicit(%s.param: %ConditionallyExplicit.3cd) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.56d = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.b72 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %s.ref.loc21: %ConditionallyExplicit.d2a = name_ref s, %s +// CHECK:STDOUT: %s.ref.loc21: %ConditionallyExplicit.3cd = name_ref s, %s // CHECK:STDOUT: %.loc21_13: type = splice_block %Dest.ref.loc21 [concrete = constants.%Dest] { // CHECK:STDOUT: %Cpp.ref.loc21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Dest.ref.loc21: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest] // CHECK:STDOUT: } // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator.bound.loc21: = bound_method %s.ref.loc21, imports.%ConditionallyExplicit.cpp_operator.decl // CHECK:STDOUT: %.loc21_21.1: ref %Dest = temporary_storage -// CHECK:STDOUT: %addr.loc21: %ptr.246 = addr_of %.loc21_21.1 +// CHECK:STDOUT: %addr.loc21: %ptr.ca8 = addr_of %.loc21_21.1 // CHECK:STDOUT: %Dest__carbon_thunk.call.loc21: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl(%s.ref.loc21, %addr.loc21) // CHECK:STDOUT: %.loc21_21.2: init %Dest to %.loc21_21.1 = mark_in_place_init %Dest__carbon_thunk.call.loc21 // CHECK:STDOUT: %.loc21_21.3: init %Dest = converted %s.ref.loc21, %.loc21_21.2 // CHECK:STDOUT: %.loc21_21.4: ref %Dest = temporary %.loc21_21.1, %.loc21_21.3 // CHECK:STDOUT: %.loc21_21.5: %Dest = acquire_value %.loc21_21.4 // CHECK:STDOUT: %_: %Dest = value_binding _, %.loc21_21.5 -// CHECK:STDOUT: %s.ref.loc22: %ConditionallyExplicit.d2a = name_ref s, %s +// CHECK:STDOUT: %s.ref.loc22: %ConditionallyExplicit.3cd = name_ref s, %s // CHECK:STDOUT: %Cpp.ref.loc22: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Dest.ref.loc22: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest] // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator.bound.loc22: = bound_method %s.ref.loc22, imports.%ConditionallyExplicit.cpp_operator.decl // CHECK:STDOUT: %.loc22_5.1: ref %Dest = temporary_storage -// CHECK:STDOUT: %addr.loc22: %ptr.246 = addr_of %.loc22_5.1 +// CHECK:STDOUT: %addr.loc22: %ptr.ca8 = addr_of %.loc22_5.1 // CHECK:STDOUT: %Dest__carbon_thunk.call.loc22: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl(%s.ref.loc22, %addr.loc22) // CHECK:STDOUT: %.loc22_5.2: init %Dest to %.loc22_5.1 = mark_in_place_init %Dest__carbon_thunk.call.loc22 // CHECK:STDOUT: %.loc22_5.3: init %Dest = converted %s.ref.loc22, %.loc22_5.2 @@ -504,14 +504,14 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConversionExplicit(%s.param: %ConditionallyExplicit.d2a) { +// CHECK:STDOUT: fn @ConversionExplicit(%s.param: %ConditionallyExplicit.3cd) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %s.ref: %ConditionallyExplicit.d2a = name_ref s, %s +// CHECK:STDOUT: %s.ref: %ConditionallyExplicit.3cd = name_ref s, %s // CHECK:STDOUT: %Cpp.ref.loc28: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest] // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator.bound: = bound_method %s.ref, imports.%ConditionallyExplicit.cpp_operator.decl // CHECK:STDOUT: %.loc28_5.1: ref %Dest = temporary_storage -// CHECK:STDOUT: %addr: %ptr.246 = addr_of %.loc28_5.1 +// CHECK:STDOUT: %addr: %ptr.ca8 = addr_of %.loc28_5.1 // CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl(%s.ref, %addr) // CHECK:STDOUT: %.loc28_5.2: init %Dest to %.loc28_5.1 = mark_in_place_init %Dest__carbon_thunk.call // CHECK:STDOUT: %.loc28_5.3: init %Dest = converted %s.ref, %.loc28_5.2 @@ -528,14 +528,14 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Source: type = class_type @Source [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ConditionallyExplicit.717: type = class_type @ConditionallyExplicit.1 [concrete] -// CHECK:STDOUT: %pattern_type.e0f: type = pattern_type %ConditionallyExplicit.717 [concrete] -// CHECK:STDOUT: %ConditionallyExplicit.d2a: type = class_type @ConditionallyExplicit.2 [concrete] -// CHECK:STDOUT: %Dest.b15: type = class_type @Dest [concrete] -// CHECK:STDOUT: %pattern_type.56d: type = pattern_type %Dest.b15 [concrete] +// CHECK:STDOUT: %ConditionallyExplicit.9d4: type = class_type @ConditionallyExplicit.1 [concrete] +// CHECK:STDOUT: %pattern_type.04c: type = pattern_type %ConditionallyExplicit.9d4 [concrete] +// CHECK:STDOUT: %ConditionallyExplicit.3cd: type = class_type @ConditionallyExplicit.2 [concrete] +// CHECK:STDOUT: %Dest.980: type = class_type @Dest [concrete] +// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Dest.980 [concrete] // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator.type: type = fn_type @ConditionallyExplicit.cpp_operator [concrete] // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator: %ConditionallyExplicit.cpp_operator.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.246: type = ptr_type %Dest.b15 [concrete] +// CHECK:STDOUT: %ptr.ca8: type = ptr_type %Dest.980 [concrete] // CHECK:STDOUT: %Dest__carbon_thunk.type: type = fn_type @Dest__carbon_thunk [concrete] // CHECK:STDOUT: %Dest__carbon_thunk: %Dest__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Dest.cpp_destructor.type: type = fn_type @Dest.cpp_destructor [concrete] @@ -547,15 +547,15 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { // CHECK:STDOUT: .Source = %Source.decl -// CHECK:STDOUT: .ConditionallyExplicitTrue = %ConditionallyExplicit.decl.80b -// CHECK:STDOUT: .ConditionallyExplicitFalse = %ConditionallyExplicit.decl.6be +// CHECK:STDOUT: .ConditionallyExplicitTrue = %ConditionallyExplicit.decl.6ab +// CHECK:STDOUT: .ConditionallyExplicitFalse = %ConditionallyExplicit.decl.996 // CHECK:STDOUT: .Dest = %Dest.decl // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %Source.decl: type = class_decl @Source [concrete = constants.%Source] {} {} -// CHECK:STDOUT: %ConditionallyExplicit.decl.80b: type = class_decl @ConditionallyExplicit.1 [concrete = constants.%ConditionallyExplicit.717] {} {} -// CHECK:STDOUT: %ConditionallyExplicit.decl.6be: type = class_decl @ConditionallyExplicit.2 [concrete = constants.%ConditionallyExplicit.d2a] {} {} -// CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.b15] {} {} +// CHECK:STDOUT: %ConditionallyExplicit.decl.6ab: type = class_decl @ConditionallyExplicit.1 [concrete = constants.%ConditionallyExplicit.9d4] {} {} +// CHECK:STDOUT: %ConditionallyExplicit.decl.996: type = class_decl @ConditionallyExplicit.2 [concrete = constants.%ConditionallyExplicit.3cd] {} {} +// CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.980] {} {} // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator.decl: %ConditionallyExplicit.cpp_operator.type = fn_decl @ConditionallyExplicit.cpp_operator [concrete = constants.%ConditionallyExplicit.cpp_operator] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -576,37 +576,37 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: fn @ConstructorExplicit(%s.param: %Source) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.e0f = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.04c = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %Source = name_ref s, %s -// CHECK:STDOUT: %.loc15_13: type = splice_block %ConditionallyExplicitTrue.ref [concrete = constants.%ConditionallyExplicit.717] { +// CHECK:STDOUT: %.loc15_13: type = splice_block %ConditionallyExplicitTrue.ref [concrete = constants.%ConditionallyExplicit.9d4] { // CHECK:STDOUT: %Cpp.ref.loc15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %ConditionallyExplicitTrue.ref: type = name_ref ConditionallyExplicitTrue, imports.%ConditionallyExplicit.decl.80b [concrete = constants.%ConditionallyExplicit.717] +// CHECK:STDOUT: %ConditionallyExplicitTrue.ref: type = name_ref ConditionallyExplicitTrue, imports.%ConditionallyExplicit.decl.6ab [concrete = constants.%ConditionallyExplicit.9d4] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc15_42: %ConditionallyExplicit.717 = converted %s.ref, [concrete = ] -// CHECK:STDOUT: %_: %ConditionallyExplicit.717 = value_binding _, [concrete = ] +// CHECK:STDOUT: %.loc15_42: %ConditionallyExplicit.9d4 = converted %s.ref, [concrete = ] +// CHECK:STDOUT: %_: %ConditionallyExplicit.9d4 = value_binding _, [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConversionExplicit(%s.param: %ConditionallyExplicit.d2a) { +// CHECK:STDOUT: fn @ConversionExplicit(%s.param: %ConditionallyExplicit.3cd) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.56d = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.b72 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %s.ref: %ConditionallyExplicit.d2a = name_ref s, %s -// CHECK:STDOUT: %.loc21_13: type = splice_block %Dest.ref [concrete = constants.%Dest.b15] { +// CHECK:STDOUT: %s.ref: %ConditionallyExplicit.3cd = name_ref s, %s +// CHECK:STDOUT: %.loc21_13: type = splice_block %Dest.ref [concrete = constants.%Dest.980] { // CHECK:STDOUT: %Cpp.ref.loc21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest.b15] +// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest.980] // CHECK:STDOUT: } // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator.bound: = bound_method %s.ref, imports.%ConditionallyExplicit.cpp_operator.decl -// CHECK:STDOUT: %.loc21_21.1: ref %Dest.b15 = temporary_storage -// CHECK:STDOUT: %addr: %ptr.246 = addr_of %.loc21_21.1 +// CHECK:STDOUT: %.loc21_21.1: ref %Dest.980 = temporary_storage +// CHECK:STDOUT: %addr: %ptr.ca8 = addr_of %.loc21_21.1 // CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl(%s.ref, %addr) -// CHECK:STDOUT: %.loc21_21.2: init %Dest.b15 to %.loc21_21.1 = mark_in_place_init %Dest__carbon_thunk.call -// CHECK:STDOUT: %.loc21_21.3: init %Dest.b15 = converted %s.ref, %.loc21_21.2 -// CHECK:STDOUT: %.loc21_21.4: ref %Dest.b15 = temporary %.loc21_21.1, %.loc21_21.3 -// CHECK:STDOUT: %.loc21_21.5: %Dest.b15 = acquire_value %.loc21_21.4 -// CHECK:STDOUT: %_: %Dest.b15 = value_binding _, %.loc21_21.5 +// CHECK:STDOUT: %.loc21_21.2: init %Dest.980 to %.loc21_21.1 = mark_in_place_init %Dest__carbon_thunk.call +// CHECK:STDOUT: %.loc21_21.3: init %Dest.980 = converted %s.ref, %.loc21_21.2 +// CHECK:STDOUT: %.loc21_21.4: ref %Dest.980 = temporary %.loc21_21.1, %.loc21_21.3 +// CHECK:STDOUT: %.loc21_21.5: %Dest.980 = acquire_value %.loc21_21.4 +// CHECK:STDOUT: %_: %Dest.980 = value_binding _, %.loc21_21.5 // CHECK:STDOUT: // CHECK:STDOUT: %Dest.Op.bound: = bound_method %.loc21_21.4, constants.%Dest.Op // CHECK:STDOUT: %Op.ref: %Dest.cpp_destructor.type = name_ref Op, imports.%Dest.cpp_destructor.decl [concrete = constants.%Dest.cpp_destructor] diff --git a/toolchain/check/testdata/interop/cpp/impls/copy.carbon b/toolchain/check/testdata/interop/cpp/impls/copy.carbon index 509d321c5856..0754eb499c8f 100644 --- a/toolchain/check/testdata/interop/cpp/impls/copy.carbon +++ b/toolchain/check/testdata/interop/cpp/impls/copy.carbon @@ -200,31 +200,31 @@ fn EqualWitnesses(p: Wrap(Cpp.Copyable)*) -> Wrap(Cpp.Copyable)* { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copyable.Copyable.type: type = fn_type @Copyable.Copyable [concrete] // CHECK:STDOUT: %Copyable.Copyable: %Copyable.Copyable.type = struct_value () [concrete] -// CHECK:STDOUT: %const.151: type = const_type %Copyable [concrete] -// CHECK:STDOUT: %ptr.765: type = ptr_type %const.151 [concrete] -// CHECK:STDOUT: %ptr.fc9: type = ptr_type %Copyable [concrete] +// CHECK:STDOUT: %const.d6a: type = const_type %Copyable [concrete] +// CHECK:STDOUT: %ptr.f70: type = ptr_type %const.d6a [concrete] +// CHECK:STDOUT: %ptr.6cb: type = ptr_type %Copyable [concrete] // CHECK:STDOUT: %Copyable__carbon_thunk.type: type = fn_type @Copyable__carbon_thunk [concrete] // CHECK:STDOUT: %Copyable__carbon_thunk: %Copyable__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copyable.Op.type: type = fn_type @Copyable.Op [concrete] // CHECK:STDOUT: %Copyable.Op: %Copyable.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b0507b.1: = custom_witness (%Copyable.Op), @Copy [concrete] -// CHECK:STDOUT: %Copy.facet.7a9: %Copy.type = facet_value %Copyable, (%custom_witness.b0507b.1) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.87b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.7a9) [concrete] -// CHECK:STDOUT: %.7c5: type = fn_type_with_self_type %Copy.WithSelf.Op.type.87b, %Copy.facet.7a9 [concrete] +// CHECK:STDOUT: %custom_witness.d0da43.1: = custom_witness (%Copyable.Op), @Copy [concrete] +// CHECK:STDOUT: %Copy.facet.07e: %Copy.type = facet_value %Copyable, (%custom_witness.d0da43.1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.1d7: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.07e) [concrete] +// CHECK:STDOUT: %.e4c: type = fn_type_with_self_type %Copy.WithSelf.Op.type.1d7, %Copy.facet.07e [concrete] // CHECK:STDOUT: %ExplicitCopy: type = class_type @ExplicitCopy [concrete] // CHECK:STDOUT: %ExplicitCopy.ExplicitCopy.type: type = fn_type @ExplicitCopy.ExplicitCopy [concrete] // CHECK:STDOUT: %ExplicitCopy.ExplicitCopy: %ExplicitCopy.ExplicitCopy.type = struct_value () [concrete] -// CHECK:STDOUT: %const.869: type = const_type %ExplicitCopy [concrete] -// CHECK:STDOUT: %ptr.39a: type = ptr_type %const.869 [concrete] -// CHECK:STDOUT: %ptr.82f: type = ptr_type %ExplicitCopy [concrete] +// CHECK:STDOUT: %const.af8: type = const_type %ExplicitCopy [concrete] +// CHECK:STDOUT: %ptr.613: type = ptr_type %const.af8 [concrete] +// CHECK:STDOUT: %ptr.12a: type = ptr_type %ExplicitCopy [concrete] // CHECK:STDOUT: %ExplicitCopy__carbon_thunk.type: type = fn_type @ExplicitCopy__carbon_thunk [concrete] // CHECK:STDOUT: %ExplicitCopy__carbon_thunk: %ExplicitCopy__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %ExplicitCopy.Op.type: type = fn_type @ExplicitCopy.Op [concrete] // CHECK:STDOUT: %ExplicitCopy.Op: %ExplicitCopy.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b0507b.2: = custom_witness (%ExplicitCopy.Op), @Copy [concrete] -// CHECK:STDOUT: %Copy.facet.b6e: %Copy.type = facet_value %ExplicitCopy, (%custom_witness.b0507b.2) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.92c: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.b6e) [concrete] -// CHECK:STDOUT: %.a33: type = fn_type_with_self_type %Copy.WithSelf.Op.type.92c, %Copy.facet.b6e [concrete] +// CHECK:STDOUT: %custom_witness.d0da43.2: = custom_witness (%ExplicitCopy.Op), @Copy [concrete] +// CHECK:STDOUT: %Copy.facet.932: %Copy.type = facet_value %ExplicitCopy, (%custom_witness.d0da43.2) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c5b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.932) [concrete] +// CHECK:STDOUT: %.682: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c5b, %Copy.facet.932 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -254,16 +254,16 @@ fn EqualWitnesses(p: Wrap(Cpp.Copyable)*) -> Wrap(Cpp.Copyable)* { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %c.ref: %Copyable = name_ref c, %c // CHECK:STDOUT: -// CHECK:STDOUT: %impl.elem0: %.7c5 = impl_witness_access constants.%custom_witness.b0507b.1, element0 [concrete = constants.%Copyable.Op] +// CHECK:STDOUT: %impl.elem0: %.e4c = impl_witness_access constants.%custom_witness.d0da43.1, element0 [concrete = constants.%Copyable.Op] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %.loc8_10.1: ref %Copyable = temporary_storage // CHECK:STDOUT: %Op.ref: %Copyable.Copyable.type = name_ref Op, imports.%Copyable.Copyable.decl [concrete = constants.%Copyable.Copyable] // CHECK:STDOUT: // CHECK:STDOUT: %.loc8_10.2: ref %Copyable = value_as_ref %c.ref -// CHECK:STDOUT: %addr.loc8_10.1: %ptr.fc9 = addr_of %.loc8_10.2 -// CHECK:STDOUT: %.loc8_10.3: %ptr.765 = as_compatible %addr.loc8_10.1 -// CHECK:STDOUT: %.loc8_10.4: %ptr.765 = converted %addr.loc8_10.1, %.loc8_10.3 -// CHECK:STDOUT: %addr.loc8_10.2: %ptr.fc9 = addr_of %.loc6_40.1 +// CHECK:STDOUT: %addr.loc8_10.1: %ptr.6cb = addr_of %.loc8_10.2 +// CHECK:STDOUT: %.loc8_10.3: %ptr.f70 = as_compatible %addr.loc8_10.1 +// CHECK:STDOUT: %.loc8_10.4: %ptr.f70 = converted %addr.loc8_10.1, %.loc8_10.3 +// CHECK:STDOUT: %addr.loc8_10.2: %ptr.6cb = addr_of %.loc6_40.1 // CHECK:STDOUT: %Copyable__carbon_thunk.call: init %empty_tuple.type = call imports.%Copyable__carbon_thunk.decl(%.loc8_10.4, %addr.loc8_10.2) // CHECK:STDOUT: %.loc8_10.5: init %Copyable to %.loc6_40.1 = mark_in_place_init %Copyable__carbon_thunk.call // CHECK:STDOUT: return %.loc8_10.5 to %return.param @@ -273,16 +273,16 @@ fn EqualWitnesses(p: Wrap(Cpp.Copyable)*) -> Wrap(Cpp.Copyable)* { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %c.ref: %ExplicitCopy = name_ref c, %c // CHECK:STDOUT: -// CHECK:STDOUT: %impl.elem0: %.a33 = impl_witness_access constants.%custom_witness.b0507b.2, element0 [concrete = constants.%ExplicitCopy.Op] +// CHECK:STDOUT: %impl.elem0: %.682 = impl_witness_access constants.%custom_witness.d0da43.2, element0 [concrete = constants.%ExplicitCopy.Op] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %.loc14_10.1: ref %ExplicitCopy = temporary_storage // CHECK:STDOUT: %Op.ref: %ExplicitCopy.ExplicitCopy.type = name_ref Op, imports.%ExplicitCopy.ExplicitCopy.decl [concrete = constants.%ExplicitCopy.ExplicitCopy] // CHECK:STDOUT: // CHECK:STDOUT: %.loc14_10.2: ref %ExplicitCopy = value_as_ref %c.ref -// CHECK:STDOUT: %addr.loc14_10.1: %ptr.82f = addr_of %.loc14_10.2 -// CHECK:STDOUT: %.loc14_10.3: %ptr.39a = as_compatible %addr.loc14_10.1 -// CHECK:STDOUT: %.loc14_10.4: %ptr.39a = converted %addr.loc14_10.1, %.loc14_10.3 -// CHECK:STDOUT: %addr.loc14_10.2: %ptr.82f = addr_of %.loc12_48.1 +// CHECK:STDOUT: %addr.loc14_10.1: %ptr.12a = addr_of %.loc14_10.2 +// CHECK:STDOUT: %.loc14_10.3: %ptr.613 = as_compatible %addr.loc14_10.1 +// CHECK:STDOUT: %.loc14_10.4: %ptr.613 = converted %addr.loc14_10.1, %.loc14_10.3 +// CHECK:STDOUT: %addr.loc14_10.2: %ptr.12a = addr_of %.loc12_48.1 // CHECK:STDOUT: %ExplicitCopy__carbon_thunk.call: init %empty_tuple.type = call imports.%ExplicitCopy__carbon_thunk.decl(%.loc14_10.4, %addr.loc14_10.2) // CHECK:STDOUT: %.loc14_10.5: init %ExplicitCopy to %.loc12_48.1 = mark_in_place_init %ExplicitCopy__carbon_thunk.call // CHECK:STDOUT: return %.loc14_10.5 to %return.param @@ -291,55 +291,55 @@ fn EqualWitnesses(p: Wrap(Cpp.Copyable)*) -> Wrap(Cpp.Copyable)* { // CHECK:STDOUT: --- copy_generically.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %Copy.type.9c4: type = facet_type <@Copy.1> [concrete] -// CHECK:STDOUT: %Copy.type.fde: type = fn_type @Copy.loc6 [concrete] -// CHECK:STDOUT: %Copy: %Copy.type.fde = struct_value () [concrete] +// CHECK:STDOUT: %Copy.type.bd0: type = facet_type <@Copy.1> [concrete] +// CHECK:STDOUT: %Copy.type.705: type = fn_type @Copy.loc6 [concrete] +// CHECK:STDOUT: %Copy: %Copy.type.705 = struct_value () [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] // CHECK:STDOUT: %Copyable: type = class_type @Copyable [concrete] // CHECK:STDOUT: %Copyable.Op.type: type = fn_type @Copyable.Op [concrete] // CHECK:STDOUT: %Copyable.Op: %Copyable.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b05: = custom_witness (%Copyable.Op), @Copy.1 [concrete] -// CHECK:STDOUT: %Copy.facet.7a9: %Copy.type.9c4 = facet_value %Copyable, (%custom_witness.b05) [concrete] -// CHECK:STDOUT: %Copy.specific_fn: = specific_function %Copy, @Copy.loc6(%Copy.facet.7a9) [concrete] -// CHECK:STDOUT: %Wrap.f39: type = class_type @Wrap, @Wrap(%Copy.facet.7a9) [concrete] -// CHECK:STDOUT: %ptr.d53: type = ptr_type %Wrap.f39 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.647: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%Wrap.f39) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.9ac: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Wrap.f39) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.291: %ptr.as.Copy.impl.Op.type.9ac = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.10e: %Copy.type.9c4 = facet_value %ptr.d53, (%Copy.impl_witness.647) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.24f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.10e) [concrete] -// CHECK:STDOUT: %.8e0: type = fn_type_with_self_type %Copy.WithSelf.Op.type.24f, %Copy.facet.10e [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.291, @ptr.as.Copy.impl.Op(%Wrap.f39) [concrete] +// CHECK:STDOUT: %custom_witness.d0d: = custom_witness (%Copyable.Op), @Copy.1 [concrete] +// CHECK:STDOUT: %Copy.facet.07e: %Copy.type.bd0 = facet_value %Copyable, (%custom_witness.d0d) [concrete] +// CHECK:STDOUT: %Copy.specific_fn: = specific_function %Copy, @Copy.loc6(%Copy.facet.07e) [concrete] +// CHECK:STDOUT: %Wrap.993: type = class_type @Wrap, @Wrap(%Copy.facet.07e) [concrete] +// CHECK:STDOUT: %ptr.fa1: type = ptr_type %Wrap.993 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.73a: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%Wrap.993) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.085: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Wrap.993) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.a0b: %ptr.as.Copy.impl.Op.type.085 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.ba8: %Copy.type.bd0 = facet_value %ptr.fa1, (%Copy.impl_witness.73a) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.b3b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.ba8) [concrete] +// CHECK:STDOUT: %.a0e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.b3b, %Copy.facet.ba8 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.a0b, @ptr.as.Copy.impl.Op(%Wrap.993) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @DoCopy(%c.param: %Copyable) -> out %return.param: %Copyable { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %Copy.ref: %Copy.type.fde = name_ref Copy, file.%Copy.decl [concrete = constants.%Copy] +// CHECK:STDOUT: %Copy.ref: %Copy.type.705 = name_ref Copy, file.%Copy.decl [concrete = constants.%Copy] // CHECK:STDOUT: %c.ref: %Copyable = name_ref c, %c // CHECK:STDOUT: -// CHECK:STDOUT: %Copy.facet: %Copy.type.9c4 = facet_value constants.%Copyable, (constants.%custom_witness.b05) [concrete = constants.%Copy.facet.7a9] -// CHECK:STDOUT: %.loc12: %Copy.type.9c4 = converted constants.%Copyable, %Copy.facet [concrete = constants.%Copy.facet.7a9] -// CHECK:STDOUT: %Copy.specific_fn: = specific_function %Copy.ref, @Copy.loc6(constants.%Copy.facet.7a9) [concrete = constants.%Copy.specific_fn] +// CHECK:STDOUT: %Copy.facet: %Copy.type.bd0 = facet_value constants.%Copyable, (constants.%custom_witness.d0d) [concrete = constants.%Copy.facet.07e] +// CHECK:STDOUT: %.loc12: %Copy.type.bd0 = converted constants.%Copyable, %Copy.facet [concrete = constants.%Copy.facet.07e] +// CHECK:STDOUT: %Copy.specific_fn: = specific_function %Copy.ref, @Copy.loc6(constants.%Copy.facet.07e) [concrete = constants.%Copy.specific_fn] // CHECK:STDOUT: // CHECK:STDOUT: %Copy.call: init %Copyable to %.loc10_34.1 = call %Copy.specific_fn(%c.ref) // CHECK:STDOUT: return %Copy.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @EqualWitnesses(%p.param: %ptr.d53) -> out %return.param: %ptr.d53 { +// CHECK:STDOUT: fn @EqualWitnesses(%p.param: %ptr.fa1) -> out %return.param: %ptr.fa1 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.d53 = name_ref p, %p -// CHECK:STDOUT: %impl.elem0: %.8e0 = impl_witness_access constants.%Copy.impl_witness.647, element0 [concrete = constants.%ptr.as.Copy.impl.Op.291] +// CHECK:STDOUT: %p.ref: %ptr.fa1 = name_ref p, %p +// CHECK:STDOUT: %impl.elem0: %.a0e = impl_witness_access constants.%Copy.impl_witness.73a, element0 [concrete = constants.%ptr.as.Copy.impl.Op.a0b] // CHECK:STDOUT: %bound_method.loc20_10.1: = bound_method %p.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%Wrap.f39) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%Wrap.993) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc20_10.2: = bound_method %p.ref, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d53 = call %bound_method.loc20_10.2(%p.ref) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.fa1 = call %bound_method.loc20_10.2(%p.ref) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/impls/destroy.carbon b/toolchain/check/testdata/interop/cpp/impls/destroy.carbon index 1ddd4add91ad..8c948d1541e4 100644 --- a/toolchain/check/testdata/interop/cpp/impls/destroy.carbon +++ b/toolchain/check/testdata/interop/cpp/impls/destroy.carbon @@ -209,24 +209,24 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: %PublicDestructor: type = class_type @PublicDestructor [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.c53: type = pattern_type %PublicDestructor [concrete] +// CHECK:STDOUT: %pattern_type.bdc: type = pattern_type %PublicDestructor [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %PublicDestructor.val: %PublicDestructor = struct_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.630: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.821: %Destroy.WithSelf.Op.type.630 = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.42b: %Destroy.WithSelf.Op.type.d3e = struct_value () [symbolic] // CHECK:STDOUT: %PublicDestructor.cpp_destructor.type: type = fn_type @PublicDestructor.cpp_destructor [concrete] // CHECK:STDOUT: %PublicDestructor.cpp_destructor: %PublicDestructor.cpp_destructor.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.d0a: = custom_witness (), @Destroy [concrete] +// CHECK:STDOUT: %custom_witness.c5a: = custom_witness (), @Destroy [concrete] // CHECK:STDOUT: %TrivialDestroy.type: type = fn_type @TrivialDestroy [concrete] // CHECK:STDOUT: %TrivialDestroy: %TrivialDestroy.type = struct_value () [concrete] // CHECK:STDOUT: %TrivialDestructor: type = class_type @TrivialDestructor [concrete] -// CHECK:STDOUT: %pattern_type.322: type = pattern_type %TrivialDestructor [concrete] +// CHECK:STDOUT: %pattern_type.a12: type = pattern_type %TrivialDestructor [concrete] // CHECK:STDOUT: %TrivialDestructor.val: %TrivialDestructor = struct_value () [concrete] // CHECK:STDOUT: %TrivialDestructor.cpp_destructor.type: type = fn_type @TrivialDestructor.cpp_destructor [concrete] // CHECK:STDOUT: %TrivialDestructor.cpp_destructor: %TrivialDestructor.cpp_destructor.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.facet.15f: %Destroy.type = facet_value %TrivialDestructor, (%custom_witness.d0a) [concrete] +// CHECK:STDOUT: %Destroy.facet.c09: %Destroy.type = facet_value %TrivialDestructor, (%custom_witness.c5a) [concrete] // CHECK:STDOUT: %TrivialDestructor.Op.type: type = fn_type @TrivialDestructor.Op [concrete] // CHECK:STDOUT: %TrivialDestructor.Op: %TrivialDestructor.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -244,11 +244,11 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: } // CHECK:STDOUT: %PublicDestructor.decl: type = class_decl @PublicDestructor [concrete = constants.%PublicDestructor] {} {} // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Destroy.WithSelf.Op.decl: %Destroy.WithSelf.Op.type.630 = fn_decl @Destroy.WithSelf.Op [symbolic = @Destroy.WithSelf.%Destroy.WithSelf.Op (constants.%Destroy.WithSelf.Op.821)] {} {} +// CHECK:STDOUT: %Destroy.WithSelf.Op.decl: %Destroy.WithSelf.Op.type.d3e = fn_decl @Destroy.WithSelf.Op [symbolic = @Destroy.WithSelf.%Destroy.WithSelf.Op (constants.%Destroy.WithSelf.Op.42b)] {} {} // CHECK:STDOUT: %TrivialDestructor.decl: type = class_decl @TrivialDestructor [concrete = constants.%TrivialDestructor] {} {} // CHECK:STDOUT: %TrivialDestructor.cpp_destructor.decl: %TrivialDestructor.cpp_destructor.type = fn_decl @TrivialDestructor.cpp_destructor [concrete = constants.%TrivialDestructor.cpp_destructor] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.322 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.322 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.a12 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.a12 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %TrivialDestructor = ref_param call_param0 // CHECK:STDOUT: %self: ref %TrivialDestructor = ref_binding self, %self.param @@ -291,8 +291,8 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: fn @PublicDestroy() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.c53 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.c53 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.bdc = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.bdc = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %PublicDestructor = var %a.var_patt // CHECK:STDOUT: %.loc11_41.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -314,8 +314,8 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: fn @TrivialDestroy() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.322 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.322 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.a12 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.a12 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %TrivialDestructor = var %a.var_patt // CHECK:STDOUT: %.loc15_42.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -328,8 +328,8 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %TrivialDestructor = ref_binding a, %a.var // CHECK:STDOUT: %TrivialDestructor.Op.decl: %TrivialDestructor.Op.type = fn_decl @TrivialDestructor.Op [concrete = constants.%TrivialDestructor.Op] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.322 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.322 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.a12 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.a12 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %TrivialDestructor = ref_param call_param0 // CHECK:STDOUT: %self: ref %TrivialDestructor = ref_binding self, %self.param @@ -343,7 +343,7 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: // CHECK:STDOUT: fn @TrivialDestructor.cpp_destructor(%self.param: ref %TrivialDestructor) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @TrivialDestructor.Op(%self.param: ref %TrivialDestructor) [thunk imports.%TrivialDestructor.cpp_destructor.decl for imports.%Destroy.WithSelf.Op.decl, @Destroy.WithSelf.Op(constants.%Destroy.facet.15f)] { +// CHECK:STDOUT: fn @TrivialDestructor.Op(%self.param: ref %TrivialDestructor) [thunk imports.%TrivialDestructor.cpp_destructor.decl for imports.%Destroy.WithSelf.Op.decl, @Destroy.WithSelf.Op(constants.%Destroy.facet.c09)] { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Op.ref: %TrivialDestructor.cpp_destructor.type = name_ref Op, imports.%TrivialDestructor.cpp_destructor.decl [concrete = constants.%TrivialDestructor.cpp_destructor] // CHECK:STDOUT: %TrivialDestructor.cpp_destructor.bound: = bound_method %self.param, %Op.ref @@ -358,43 +358,43 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: %ProtectedDestructor: type = class_type @ProtectedDestructor [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %struct_type.base.233: type = struct_type {.base: %ProtectedDestructor} [concrete] -// CHECK:STDOUT: %pattern_type.cd3: type = pattern_type %Derived [concrete] +// CHECK:STDOUT: %struct_type.base.454: type = struct_type {.base: %ProtectedDestructor} [concrete] +// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete] // CHECK:STDOUT: %empty_struct.a40: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.base.f5e: type = struct_type {.base: %empty_struct_type} [concrete] // CHECK:STDOUT: %struct: %struct_type.base.f5e = struct_value (%empty_struct.a40) [concrete] -// CHECK:STDOUT: %.1d0: type = partial_type %ProtectedDestructor [concrete] -// CHECK:STDOUT: %empty_struct.724: %.1d0 = struct_value () [concrete] +// CHECK:STDOUT: %.a6c: type = partial_type %ProtectedDestructor [concrete] +// 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.790b3b.2: type = fn_type @Destroy.Op.loc20_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @DestroyClassWithProtectedBaseDestructor() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.cd3 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.cd3 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.746 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.746 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Derived = var %a.var_patt // CHECK:STDOUT: %.loc20_37.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct.a40] // CHECK:STDOUT: %.loc20_38.1: %struct_type.base.f5e = struct_literal (%.loc20_37.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc20_38.2: ref %.1d0 = class_element_access %a.var, element0 -// CHECK:STDOUT: %.loc20_37.2: init %.1d0 to %.loc20_38.2 = class_init () [concrete = constants.%empty_struct.724] -// CHECK:STDOUT: %.loc20_38.3: init %.1d0 = converted %.loc20_37.1, %.loc20_37.2 [concrete = constants.%empty_struct.724] +// CHECK:STDOUT: %.loc20_38.2: ref %.a6c = class_element_access %a.var, element0 +// CHECK:STDOUT: %.loc20_37.2: init %.a6c to %.loc20_38.2 = class_init () [concrete = constants.%empty_struct.ec1] +// CHECK:STDOUT: %.loc20_38.3: init %.a6c = converted %.loc20_37.1, %.loc20_37.2 [concrete = constants.%empty_struct.ec1] // CHECK:STDOUT: %.loc20_38.4: init %ProtectedDestructor = as_compatible %.loc20_38.3 [concrete = constants.%ProtectedDestructor.val] // CHECK:STDOUT: %.loc20_38.5: init %Derived to %a.var = class_init (%.loc20_38.4) [concrete = constants.%Derived.val] // CHECK:STDOUT: %.loc20_3: init %Derived = converted %.loc20_38.1, %.loc20_38.5 [concrete = constants.%Derived.val] // CHECK:STDOUT: assign %a.var, %.loc20_3 // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] // CHECK:STDOUT: %a: ref %Derived = ref_binding a, %a.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.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: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_3.1(%self.param: ref %struct_type.base.233) { +// CHECK:STDOUT: fn @Destroy.Op.loc20_3.1(%self.param: ref %struct_type.base.454) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -411,43 +411,43 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: %PrivateDestructor: type = class_type @PrivateDestructor [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %struct_type.base.dea: type = struct_type {.base: %PrivateDestructor} [concrete] -// CHECK:STDOUT: %pattern_type.cd3: type = pattern_type %Derived [concrete] +// CHECK:STDOUT: %struct_type.base.9aa: type = struct_type {.base: %PrivateDestructor} [concrete] +// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete] // CHECK:STDOUT: %empty_struct.a40: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.base.f5e: type = struct_type {.base: %empty_struct_type} [concrete] // CHECK:STDOUT: %struct: %struct_type.base.f5e = struct_value (%empty_struct.a40) [concrete] -// CHECK:STDOUT: %.ddb: type = partial_type %PrivateDestructor [concrete] -// CHECK:STDOUT: %empty_struct.0b0: %.ddb = struct_value () [concrete] +// CHECK:STDOUT: %.c73: type = partial_type %PrivateDestructor [concrete] +// 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.790b3b.2: type = fn_type @Destroy.Op.loc21_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @DestroyClassWithPrivateBaseDestructor() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.cd3 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.cd3 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.746 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.746 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Derived = var %a.var_patt // CHECK:STDOUT: %.loc21_37.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct.a40] // CHECK:STDOUT: %.loc21_38.1: %struct_type.base.f5e = struct_literal (%.loc21_37.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc21_38.2: ref %.ddb = class_element_access %a.var, element0 -// CHECK:STDOUT: %.loc21_37.2: init %.ddb to %.loc21_38.2 = class_init () [concrete = constants.%empty_struct.0b0] -// CHECK:STDOUT: %.loc21_38.3: init %.ddb = converted %.loc21_37.1, %.loc21_37.2 [concrete = constants.%empty_struct.0b0] +// CHECK:STDOUT: %.loc21_38.2: ref %.c73 = class_element_access %a.var, element0 +// CHECK:STDOUT: %.loc21_37.2: init %.c73 to %.loc21_38.2 = class_init () [concrete = constants.%empty_struct.d8b] +// CHECK:STDOUT: %.loc21_38.3: init %.c73 = converted %.loc21_37.1, %.loc21_37.2 [concrete = constants.%empty_struct.d8b] // CHECK:STDOUT: %.loc21_38.4: init %PrivateDestructor = as_compatible %.loc21_38.3 [concrete = constants.%PrivateDestructor.val] // CHECK:STDOUT: %.loc21_38.5: init %Derived to %a.var = class_init (%.loc21_38.4) [concrete = constants.%Derived.val] // CHECK:STDOUT: %.loc21_3: init %Derived = converted %.loc21_38.1, %.loc21_38.5 [concrete = constants.%Derived.val] // CHECK:STDOUT: assign %a.var, %.loc21_3 // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] // CHECK:STDOUT: %a: ref %Derived = ref_binding a, %a.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.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: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc21_3.1(%self.param: ref %struct_type.base.dea) { +// CHECK:STDOUT: fn @Destroy.Op.loc21_3.1(%self.param: ref %struct_type.base.9aa) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/impls/implicit_as.carbon b/toolchain/check/testdata/interop/cpp/impls/implicit_as.carbon index 4e0183f5980e..5e58c80c0bc3 100644 --- a/toolchain/check/testdata/interop/cpp/impls/implicit_as.carbon +++ b/toolchain/check/testdata/interop/cpp/impls/implicit_as.carbon @@ -417,26 +417,26 @@ fn InitFromStruct() { // CHECK:STDOUT: %Source: type = class_type @Source [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Dest: type = class_type @Dest [concrete] -// CHECK:STDOUT: %pattern_type.56d: type = pattern_type %Dest [concrete] +// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Dest [concrete] // CHECK:STDOUT: %Source.cpp_operator.type: type = fn_type @Source.cpp_operator [concrete] // CHECK:STDOUT: %Source.cpp_operator: %Source.cpp_operator.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.246: type = ptr_type %Dest [concrete] -// CHECK:STDOUT: %Dest__carbon_thunk.type.2ffc11.1: type = fn_type @Dest__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %Dest__carbon_thunk.61ac37.1: %Dest__carbon_thunk.type.2ffc11.1 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.ca8: type = ptr_type %Dest [concrete] +// CHECK:STDOUT: %Dest__carbon_thunk.type.eb4c5e.1: type = fn_type @Dest__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %Dest__carbon_thunk.c8e433.1: %Dest__carbon_thunk.type.eb4c5e.1 = struct_value () [concrete] // CHECK:STDOUT: %Dest.cpp_destructor.type: type = fn_type @Dest.cpp_destructor [concrete] // CHECK:STDOUT: %Dest.cpp_destructor: %Dest.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %Dest.Op.type: type = fn_type @Dest.Op [concrete] // CHECK:STDOUT: %Dest.Op: %Dest.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %NonConstConversion.2f9: type = class_type @NonConstConversion.1 [concrete] +// CHECK:STDOUT: %NonConstConversion.689: type = class_type @NonConstConversion.1 [concrete] // CHECK:STDOUT: %NonConstConversion.cpp_operator.type: type = fn_type @NonConstConversion.cpp_operator [concrete] // CHECK:STDOUT: %NonConstConversion.cpp_operator: %NonConstConversion.cpp_operator.type = struct_value () [concrete] -// CHECK:STDOUT: %Dest__carbon_thunk.type.2ffc11.2: type = fn_type @Dest__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %Dest__carbon_thunk.61ac37.2: %Dest__carbon_thunk.type.2ffc11.2 = struct_value () [concrete] +// CHECK:STDOUT: %Dest__carbon_thunk.type.eb4c5e.2: type = fn_type @Dest__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %Dest__carbon_thunk.c8e433.2: %Dest__carbon_thunk.type.eb4c5e.2 = struct_value () [concrete] // CHECK:STDOUT: %Source2: type = class_type @Source2 [concrete] // CHECK:STDOUT: %Dest2: type = class_type @Dest2 [concrete] -// CHECK:STDOUT: %pattern_type.ca0: type = pattern_type %Dest2 [concrete] -// CHECK:STDOUT: %ptr.692: type = ptr_type %Source2 [concrete] -// CHECK:STDOUT: %ptr.a5d: type = ptr_type %Dest2 [concrete] +// CHECK:STDOUT: %pattern_type.a68: type = pattern_type %Dest2 [concrete] +// CHECK:STDOUT: %ptr.0db: type = ptr_type %Source2 [concrete] +// CHECK:STDOUT: %ptr.802: type = ptr_type %Dest2 [concrete] // CHECK:STDOUT: %Dest2__carbon_thunk.type: type = fn_type @Dest2__carbon_thunk [concrete] // CHECK:STDOUT: %Dest2__carbon_thunk: %Dest2__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Dest2.cpp_destructor.type: type = fn_type @Dest2.cpp_destructor [concrete] @@ -461,7 +461,7 @@ fn InitFromStruct() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Dest__carbon_thunk.decl.74d7b8.1: %Dest__carbon_thunk.type.2ffc11.1 = fn_decl @Dest__carbon_thunk.1 [concrete = constants.%Dest__carbon_thunk.61ac37.1] { +// CHECK:STDOUT: %Dest__carbon_thunk.decl.a8fbc1.1: %Dest__carbon_thunk.type.eb4c5e.1 = fn_decl @Dest__carbon_thunk.1 [concrete = constants.%Dest__carbon_thunk.c8e433.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -471,13 +471,13 @@ fn InitFromStruct() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %NonConstConversion.decl: type = class_decl @NonConstConversion.1 [concrete = constants.%NonConstConversion.2f9] {} {} +// CHECK:STDOUT: %NonConstConversion.decl: type = class_decl @NonConstConversion.1 [concrete = constants.%NonConstConversion.689] {} {} // CHECK:STDOUT: %NonConstConversion.cpp_operator.decl: %NonConstConversion.cpp_operator.type = fn_decl @NonConstConversion.cpp_operator [concrete = constants.%NonConstConversion.cpp_operator] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Dest__carbon_thunk.decl.74d7b8.2: %Dest__carbon_thunk.type.2ffc11.2 = fn_decl @Dest__carbon_thunk.2 [concrete = constants.%Dest__carbon_thunk.61ac37.2] { +// CHECK:STDOUT: %Dest__carbon_thunk.decl.a8fbc1.2: %Dest__carbon_thunk.type.eb4c5e.2 = fn_decl @Dest__carbon_thunk.2 [concrete = constants.%Dest__carbon_thunk.c8e433.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -499,7 +499,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @UserConversion(%s.param: %Source) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.56d = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.b72 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %Source = name_ref s, %s // CHECK:STDOUT: %.loc8_13: type = splice_block %Dest.ref [concrete = constants.%Dest] { @@ -508,8 +508,8 @@ fn InitFromStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: %Source.cpp_operator.bound: = bound_method %s.ref, imports.%Source.cpp_operator.decl // CHECK:STDOUT: %.loc8_21.1: ref %Dest = temporary_storage -// CHECK:STDOUT: %addr: %ptr.246 = addr_of %.loc8_21.1 -// CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl.74d7b8.1(%s.ref, %addr) +// CHECK:STDOUT: %addr: %ptr.ca8 = addr_of %.loc8_21.1 +// CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl.a8fbc1.1(%s.ref, %addr) // CHECK:STDOUT: %.loc8_21.2: init %Dest to %.loc8_21.1 = mark_in_place_init %Dest__carbon_thunk.call // CHECK:STDOUT: %.loc8_21.3: init %Dest = converted %s.ref, %.loc8_21.2 // CHECK:STDOUT: %.loc8_21.4: ref %Dest = temporary %.loc8_21.1, %.loc8_21.3 @@ -523,20 +523,20 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @NonConstConversion.loc12(%s.param: ref %NonConstConversion.2f9) { +// CHECK:STDOUT: fn @NonConstConversion.loc12(%s.param: ref %NonConstConversion.689) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.56d = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.b72 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %s.ref: ref %NonConstConversion.2f9 = name_ref s, %s +// CHECK:STDOUT: %s.ref: ref %NonConstConversion.689 = name_ref s, %s // CHECK:STDOUT: %.loc14_13: type = splice_block %Dest.ref [concrete = constants.%Dest] { // CHECK:STDOUT: %Cpp.ref.loc14: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest] // CHECK:STDOUT: } // CHECK:STDOUT: %NonConstConversion.cpp_operator.bound: = bound_method %s.ref, imports.%NonConstConversion.cpp_operator.decl // CHECK:STDOUT: %.loc14_21.1: ref %Dest = temporary_storage -// CHECK:STDOUT: %addr: %ptr.246 = addr_of %.loc14_21.1 -// CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl.74d7b8.2(%s.ref, %addr) +// CHECK:STDOUT: %addr: %ptr.ca8 = addr_of %.loc14_21.1 +// CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl.a8fbc1.2(%s.ref, %addr) // CHECK:STDOUT: %.loc14_21.2: init %Dest to %.loc14_21.1 = mark_in_place_init %Dest__carbon_thunk.call // CHECK:STDOUT: %.loc14_21.3: init %Dest = converted %s.ref, %.loc14_21.2 // CHECK:STDOUT: %.loc14_21.4: ref %Dest = temporary %.loc14_21.1, %.loc14_21.3 @@ -552,7 +552,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @ConstructorConversion(%s.param: %Source2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.ca0 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.a68 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %Source2 = name_ref s, %s // CHECK:STDOUT: %.loc20_13: type = splice_block %Dest2.ref [concrete = constants.%Dest2] { @@ -561,8 +561,8 @@ fn InitFromStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: %.loc20_22.1: ref %Dest2 = temporary_storage // CHECK:STDOUT: %.loc20_22.2: ref %Source2 = value_as_ref %s.ref -// CHECK:STDOUT: %addr.loc20_22.1: %ptr.692 = addr_of %.loc20_22.2 -// CHECK:STDOUT: %addr.loc20_22.2: %ptr.a5d = addr_of %.loc20_22.1 +// CHECK:STDOUT: %addr.loc20_22.1: %ptr.0db = addr_of %.loc20_22.2 +// CHECK:STDOUT: %addr.loc20_22.2: %ptr.802 = addr_of %.loc20_22.1 // CHECK:STDOUT: %Dest2__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest2__carbon_thunk.decl(%addr.loc20_22.1, %addr.loc20_22.2) // CHECK:STDOUT: %.loc20_22.3: init %Dest2 to %.loc20_22.1 = mark_in_place_init %Dest2__carbon_thunk.call // CHECK:STDOUT: %.loc20_22.4: init %Dest2 = converted %s.ref, %.loc20_22.3 @@ -581,8 +581,8 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %NonConstConversion: type = class_type @NonConstConversion [concrete] -// CHECK:STDOUT: %Dest.b15: type = class_type @Dest [concrete] -// CHECK:STDOUT: %pattern_type.56d: type = pattern_type %Dest.b15 [concrete] +// CHECK:STDOUT: %Dest.980: type = class_type @Dest [concrete] +// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Dest.980 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -592,21 +592,21 @@ fn InitFromStruct() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %NonConstConversion.decl: type = class_decl @NonConstConversion [concrete = constants.%NonConstConversion] {} {} -// CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.b15] {} {} +// CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.980] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @NonConstConversionTest(%s.param: %NonConstConversion) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.56d = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.b72 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %NonConstConversion = name_ref s, %s -// CHECK:STDOUT: %.loc15_13: type = splice_block %Dest.ref [concrete = constants.%Dest.b15] { +// CHECK:STDOUT: %.loc15_13: type = splice_block %Dest.ref [concrete = constants.%Dest.980] { // CHECK:STDOUT: %Cpp.ref.loc15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest.b15] +// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest.980] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc15_21: %Dest.b15 = converted %s.ref, [concrete = ] -// CHECK:STDOUT: %_: %Dest.b15 = value_binding _, [concrete = ] +// CHECK:STDOUT: %.loc15_21: %Dest.980 = converted %s.ref, [concrete = ] +// CHECK:STDOUT: %_: %Dest.980 = value_binding _, [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -616,9 +616,9 @@ fn InitFromStruct() { // CHECK:STDOUT: %Source: type = class_type @Source [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %InaccessibleConstructor: type = class_type @InaccessibleConstructor [concrete] -// CHECK:STDOUT: %pattern_type.f5d: type = pattern_type %InaccessibleConstructor [concrete] -// CHECK:STDOUT: %ptr.71b: type = ptr_type %Source [concrete] -// CHECK:STDOUT: %ptr.16a: type = ptr_type %InaccessibleConstructor [concrete] +// CHECK:STDOUT: %pattern_type.824: type = pattern_type %InaccessibleConstructor [concrete] +// CHECK:STDOUT: %ptr.5f6: type = ptr_type %Source [concrete] +// CHECK:STDOUT: %ptr.859: type = ptr_type %InaccessibleConstructor [concrete] // CHECK:STDOUT: %InaccessibleConstructor__carbon_thunk.type: type = fn_type @InaccessibleConstructor__carbon_thunk [concrete] // CHECK:STDOUT: %InaccessibleConstructor__carbon_thunk: %InaccessibleConstructor__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %InaccessibleConstructor.cpp_destructor.type: type = fn_type @InaccessibleConstructor.cpp_destructor [concrete] @@ -627,10 +627,10 @@ fn InitFromStruct() { // CHECK:STDOUT: %InaccessibleConstructor.Op: %InaccessibleConstructor.Op.type = struct_value () [concrete] // CHECK:STDOUT: %InaccessibleConversion: type = class_type @InaccessibleConversion [concrete] // CHECK:STDOUT: %Dest: type = class_type @Dest [concrete] -// CHECK:STDOUT: %pattern_type.56d: type = pattern_type %Dest [concrete] +// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Dest [concrete] // CHECK:STDOUT: %InaccessibleConversion.cpp_operator.type: type = fn_type @InaccessibleConversion.cpp_operator [concrete] // CHECK:STDOUT: %InaccessibleConversion.cpp_operator: %InaccessibleConversion.cpp_operator.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.246: type = ptr_type %Dest [concrete] +// CHECK:STDOUT: %ptr.ca8: type = ptr_type %Dest [concrete] // CHECK:STDOUT: %Dest__carbon_thunk.type: type = fn_type @Dest__carbon_thunk [concrete] // CHECK:STDOUT: %Dest__carbon_thunk: %Dest__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Dest.cpp_destructor.type: type = fn_type @Dest.cpp_destructor [concrete] @@ -681,7 +681,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @InaccessibleConstructorTest(%s.param: %Source) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.f5d = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.824 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %Source = name_ref s, %s // CHECK:STDOUT: %.loc16_13: type = splice_block %InaccessibleConstructor.ref [concrete = constants.%InaccessibleConstructor] { @@ -690,8 +690,8 @@ fn InitFromStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: %.loc16_40.1: ref %InaccessibleConstructor = temporary_storage // CHECK:STDOUT: %.loc16_40.2: ref %Source = value_as_ref %s.ref -// CHECK:STDOUT: %addr.loc16_40.1: %ptr.71b = addr_of %.loc16_40.2 -// CHECK:STDOUT: %addr.loc16_40.2: %ptr.16a = addr_of %.loc16_40.1 +// CHECK:STDOUT: %addr.loc16_40.1: %ptr.5f6 = addr_of %.loc16_40.2 +// CHECK:STDOUT: %addr.loc16_40.2: %ptr.859 = addr_of %.loc16_40.1 // CHECK:STDOUT: %InaccessibleConstructor__carbon_thunk.call: init %empty_tuple.type = call imports.%InaccessibleConstructor__carbon_thunk.decl(%addr.loc16_40.1, %addr.loc16_40.2) // CHECK:STDOUT: %.loc16_40.3: init %InaccessibleConstructor to %.loc16_40.1 = mark_in_place_init %InaccessibleConstructor__carbon_thunk.call // CHECK:STDOUT: %.loc16_40.4: init %InaccessibleConstructor = converted %s.ref, %.loc16_40.3 @@ -709,7 +709,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @InaccessibleConversionTest(%s.param: %InaccessibleConversion) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.56d = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.b72 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %InaccessibleConversion = name_ref s, %s // CHECK:STDOUT: %.loc30_13: type = splice_block %Dest.ref [concrete = constants.%Dest] { @@ -718,7 +718,7 @@ fn InitFromStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: %InaccessibleConversion.cpp_operator.bound: = bound_method %s.ref, imports.%InaccessibleConversion.cpp_operator.decl // CHECK:STDOUT: %.loc30_21.1: ref %Dest = temporary_storage -// CHECK:STDOUT: %addr: %ptr.246 = addr_of %.loc30_21.1 +// CHECK:STDOUT: %addr: %ptr.ca8 = addr_of %.loc30_21.1 // CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl(%s.ref, %addr) // CHECK:STDOUT: %.loc30_21.2: init %Dest to %.loc30_21.1 = mark_in_place_init %Dest__carbon_thunk.call // CHECK:STDOUT: %.loc30_21.3: init %Dest = converted %s.ref, %.loc30_21.2 @@ -738,10 +738,10 @@ fn InitFromStruct() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Source: type = class_type @Source [concrete] // CHECK:STDOUT: %DeletedConstructor: type = class_type @DeletedConstructor [concrete] -// CHECK:STDOUT: %pattern_type.216: type = pattern_type %DeletedConstructor [concrete] +// CHECK:STDOUT: %pattern_type.937: type = pattern_type %DeletedConstructor [concrete] // CHECK:STDOUT: %DeletedConversion: type = class_type @DeletedConversion [concrete] -// CHECK:STDOUT: %Dest.b15: type = class_type @Dest [concrete] -// CHECK:STDOUT: %pattern_type.56d: type = pattern_type %Dest.b15 [concrete] +// CHECK:STDOUT: %Dest.980: type = class_type @Dest [concrete] +// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Dest.980 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -755,13 +755,13 @@ fn InitFromStruct() { // CHECK:STDOUT: %Source.decl: type = class_decl @Source [concrete = constants.%Source] {} {} // CHECK:STDOUT: %DeletedConstructor.decl: type = class_decl @DeletedConstructor [concrete = constants.%DeletedConstructor] {} {} // CHECK:STDOUT: %DeletedConversion.decl: type = class_decl @DeletedConversion [concrete = constants.%DeletedConversion] {} {} -// CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.b15] {} {} +// CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.980] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @DeletedConstructorTest(%s.param: %Source) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.216 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.937 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %Source = name_ref s, %s // CHECK:STDOUT: %.loc15_13: type = splice_block %DeletedConstructor.ref [concrete = constants.%DeletedConstructor] { @@ -776,15 +776,15 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @DeletedConversionTest(%s.param: %DeletedConversion) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.56d = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.b72 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %DeletedConversion = name_ref s, %s -// CHECK:STDOUT: %.loc28_13: type = splice_block %Dest.ref [concrete = constants.%Dest.b15] { +// CHECK:STDOUT: %.loc28_13: type = splice_block %Dest.ref [concrete = constants.%Dest.980] { // CHECK:STDOUT: %Cpp.ref.loc28: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest.b15] +// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest.980] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc28_21: %Dest.b15 = converted %s.ref, [concrete = ] -// CHECK:STDOUT: %_: %Dest.b15 = value_binding _, [concrete = ] +// CHECK:STDOUT: %.loc28_21: %Dest.980 = converted %s.ref, [concrete = ] +// CHECK:STDOUT: %_: %Dest.980 = value_binding _, [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -793,10 +793,10 @@ fn InitFromStruct() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Source: type = class_type @Source [concrete] // CHECK:STDOUT: %ExplicitConstructor: type = class_type @ExplicitConstructor [concrete] -// CHECK:STDOUT: %pattern_type.8d6: type = pattern_type %ExplicitConstructor [concrete] +// CHECK:STDOUT: %pattern_type.eae: type = pattern_type %ExplicitConstructor [concrete] // CHECK:STDOUT: %ExplicitConversion: type = class_type @ExplicitConversion [concrete] -// CHECK:STDOUT: %Dest.b15: type = class_type @Dest [concrete] -// CHECK:STDOUT: %pattern_type.56d: type = pattern_type %Dest.b15 [concrete] +// CHECK:STDOUT: %Dest.980: type = class_type @Dest [concrete] +// CHECK:STDOUT: %pattern_type.b72: type = pattern_type %Dest.980 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -810,13 +810,13 @@ fn InitFromStruct() { // CHECK:STDOUT: %Source.decl: type = class_decl @Source [concrete = constants.%Source] {} {} // CHECK:STDOUT: %ExplicitConstructor.decl: type = class_decl @ExplicitConstructor [concrete = constants.%ExplicitConstructor] {} {} // CHECK:STDOUT: %ExplicitConversion.decl: type = class_decl @ExplicitConversion [concrete = constants.%ExplicitConversion] {} {} -// CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.b15] {} {} +// CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.980] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ExplicitConstructorTest(%s.param: %Source) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.8d6 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.eae = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %Source = name_ref s, %s // CHECK:STDOUT: %.loc15_13: type = splice_block %ExplicitConstructor.ref [concrete = constants.%ExplicitConstructor] { @@ -831,15 +831,15 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @ExplicitConversionTest(%s.param: %ExplicitConversion) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.56d = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.b72 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %ExplicitConversion = name_ref s, %s -// CHECK:STDOUT: %.loc28_13: type = splice_block %Dest.ref [concrete = constants.%Dest.b15] { +// CHECK:STDOUT: %.loc28_13: type = splice_block %Dest.ref [concrete = constants.%Dest.980] { // CHECK:STDOUT: %Cpp.ref.loc28: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest.b15] +// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest.980] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc28_21: %Dest.b15 = converted %s.ref, [concrete = ] -// CHECK:STDOUT: %_: %Dest.b15 = value_binding _, [concrete = ] +// CHECK:STDOUT: %.loc28_21: %Dest.980 = converted %s.ref, [concrete = ] +// CHECK:STDOUT: %_: %Dest.980 = value_binding _, [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -849,9 +849,9 @@ fn InitFromStruct() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %IntConstructor.14f: type = class_type @IntConstructor.1 [concrete] -// CHECK:STDOUT: %pattern_type.599: type = pattern_type %IntConstructor.14f [concrete] -// CHECK:STDOUT: %ptr.380: type = ptr_type %IntConstructor.14f [concrete] +// CHECK:STDOUT: %IntConstructor.372: type = class_type @IntConstructor.1 [concrete] +// CHECK:STDOUT: %pattern_type.c4e: type = pattern_type %IntConstructor.372 [concrete] +// CHECK:STDOUT: %ptr.100: type = ptr_type %IntConstructor.372 [concrete] // CHECK:STDOUT: %IntConstructor__carbon_thunk.type: type = fn_type @IntConstructor__carbon_thunk [concrete] // CHECK:STDOUT: %IntConstructor__carbon_thunk: %IntConstructor__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %IntConstructor.cpp_destructor.type: type = fn_type @IntConstructor.cpp_destructor [concrete] @@ -865,7 +865,7 @@ fn InitFromStruct() { // CHECK:STDOUT: .IntConstructor = %IntConstructor.decl // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %IntConstructor.decl: type = class_decl @IntConstructor.1 [concrete = constants.%IntConstructor.14f] {} {} +// CHECK:STDOUT: %IntConstructor.decl: type = class_decl @IntConstructor.1 [concrete = constants.%IntConstructor.372] {} {} // CHECK:STDOUT: %IntConstructor__carbon_thunk.decl: %IntConstructor__carbon_thunk.type = fn_decl @IntConstructor__carbon_thunk [concrete = constants.%IntConstructor__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -881,21 +881,21 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @IntConstructor.loc6(%i.param: %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.599 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.c4e = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i.ref: %i32 = name_ref i, %i -// CHECK:STDOUT: %.loc8_13: type = splice_block %IntConstructor.ref [concrete = constants.%IntConstructor.14f] { +// CHECK:STDOUT: %.loc8_13: type = splice_block %IntConstructor.ref [concrete = constants.%IntConstructor.372] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %IntConstructor.ref: type = name_ref IntConstructor, imports.%IntConstructor.decl [concrete = constants.%IntConstructor.14f] +// CHECK:STDOUT: %IntConstructor.ref: type = name_ref IntConstructor, imports.%IntConstructor.decl [concrete = constants.%IntConstructor.372] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8_31.1: ref %IntConstructor.14f = temporary_storage -// CHECK:STDOUT: %addr: %ptr.380 = addr_of %.loc8_31.1 +// CHECK:STDOUT: %.loc8_31.1: ref %IntConstructor.372 = temporary_storage +// CHECK:STDOUT: %addr: %ptr.100 = addr_of %.loc8_31.1 // CHECK:STDOUT: %IntConstructor__carbon_thunk.call: init %empty_tuple.type = call imports.%IntConstructor__carbon_thunk.decl(%i.ref, %addr) -// CHECK:STDOUT: %.loc8_31.2: init %IntConstructor.14f to %.loc8_31.1 = mark_in_place_init %IntConstructor__carbon_thunk.call -// CHECK:STDOUT: %.loc8_31.3: init %IntConstructor.14f = converted %i.ref, %.loc8_31.2 -// CHECK:STDOUT: %.loc8_31.4: ref %IntConstructor.14f = temporary %.loc8_31.1, %.loc8_31.3 -// CHECK:STDOUT: %.loc8_31.5: %IntConstructor.14f = acquire_value %.loc8_31.4 -// CHECK:STDOUT: %_: %IntConstructor.14f = value_binding _, %.loc8_31.5 +// CHECK:STDOUT: %.loc8_31.2: init %IntConstructor.372 to %.loc8_31.1 = mark_in_place_init %IntConstructor__carbon_thunk.call +// CHECK:STDOUT: %.loc8_31.3: init %IntConstructor.372 = converted %i.ref, %.loc8_31.2 +// CHECK:STDOUT: %.loc8_31.4: ref %IntConstructor.372 = temporary %.loc8_31.1, %.loc8_31.3 +// CHECK:STDOUT: %.loc8_31.5: %IntConstructor.372 = acquire_value %.loc8_31.4 +// CHECK:STDOUT: %_: %IntConstructor.372 = value_binding _, %.loc8_31.5 // CHECK:STDOUT: // CHECK:STDOUT: %IntConstructor.Op.bound: = bound_method %.loc8_31.4, constants.%IntConstructor.Op // CHECK:STDOUT: %Op.ref: %IntConstructor.cpp_destructor.type = name_ref Op, imports.%IntConstructor.cpp_destructor.decl [concrete = constants.%IntConstructor.cpp_destructor] @@ -911,9 +911,9 @@ fn InitFromStruct() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] // CHECK:STDOUT: %IntConstructor: type = class_type @IntConstructor [concrete] -// CHECK:STDOUT: %pattern_type.599: type = pattern_type %IntConstructor [concrete] +// CHECK:STDOUT: %pattern_type.c4e: type = pattern_type %IntConstructor [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.380: type = ptr_type %IntConstructor [concrete] +// CHECK:STDOUT: %ptr.100: type = ptr_type %IntConstructor [concrete] // CHECK:STDOUT: %IntConstructor__carbon_thunk.type: type = fn_type @IntConstructor__carbon_thunk [concrete] // CHECK:STDOUT: %IntConstructor__carbon_thunk: %IntConstructor__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %IntConstructor.cpp_destructor.type: type = fn_type @IntConstructor.cpp_destructor [concrete] @@ -943,7 +943,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @IntConstructorTest(%u.param: %u32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.599 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.c4e = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %u.ref: %u32 = name_ref u, %u // CHECK:STDOUT: %.loc19_13: type = splice_block %IntConstructor.ref [concrete = constants.%IntConstructor] { @@ -952,7 +952,7 @@ fn InitFromStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: %.loc19_31.1: ref %IntConstructor = temporary_storage // CHECK:STDOUT: %.loc19_31.2: %i32 = converted %u.ref, [concrete = ] -// CHECK:STDOUT: %addr: %ptr.380 = addr_of %.loc19_31.1 +// CHECK:STDOUT: %addr: %ptr.100 = addr_of %.loc19_31.1 // CHECK:STDOUT: %IntConstructor__carbon_thunk.call: init %empty_tuple.type = call imports.%IntConstructor__carbon_thunk.decl(, %addr) // CHECK:STDOUT: %.loc19_31.3: init %IntConstructor to %.loc19_31.1 = mark_in_place_init %IntConstructor__carbon_thunk.call // CHECK:STDOUT: %.loc19_31.4: init %IntConstructor = converted %u.ref, %.loc19_31.3 @@ -972,9 +972,9 @@ fn InitFromStruct() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %DefaultConstructor: type = class_type @DefaultConstructor [concrete] -// CHECK:STDOUT: %pattern_type.7fa: type = pattern_type %DefaultConstructor [concrete] +// CHECK:STDOUT: %pattern_type.be4: type = pattern_type %DefaultConstructor [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %ptr.b3c: type = ptr_type %DefaultConstructor [concrete] +// CHECK:STDOUT: %ptr.c09: type = ptr_type %DefaultConstructor [concrete] // CHECK:STDOUT: %DefaultConstructor__carbon_thunk.type: type = fn_type @DefaultConstructor__carbon_thunk [concrete] // CHECK:STDOUT: %DefaultConstructor__carbon_thunk: %DefaultConstructor__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %DefaultConstructor.cpp_destructor.type: type = fn_type @DefaultConstructor.cpp_destructor [concrete] @@ -1004,7 +1004,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @DefaultConstructorTest() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.7fa = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.be4 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc9_36.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc9_13: type = splice_block %DefaultConstructor.ref [concrete = constants.%DefaultConstructor] { @@ -1012,7 +1012,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %DefaultConstructor.ref: type = name_ref DefaultConstructor, imports.%DefaultConstructor.decl [concrete = constants.%DefaultConstructor] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc9_36.2: ref %DefaultConstructor = temporary_storage -// CHECK:STDOUT: %addr: %ptr.b3c = addr_of %.loc9_36.2 +// CHECK:STDOUT: %addr: %ptr.c09 = addr_of %.loc9_36.2 // CHECK:STDOUT: %DefaultConstructor__carbon_thunk.call: init %empty_tuple.type = call imports.%DefaultConstructor__carbon_thunk.decl(%addr) // CHECK:STDOUT: %.loc9_36.3: init %DefaultConstructor to %.loc9_36.2 = mark_in_place_init %DefaultConstructor__carbon_thunk.call // CHECK:STDOUT: %.loc9_36.4: init %DefaultConstructor = converted %.loc9_36.1, %.loc9_36.3 @@ -1032,46 +1032,46 @@ fn InitFromStruct() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Two: type = class_type @Two [concrete] -// CHECK:STDOUT: %pattern_type.034: type = pattern_type %Two [concrete] +// CHECK:STDOUT: %pattern_type.586: type = pattern_type %Two [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [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: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.5a9: type = ptr_type %Two [concrete] +// CHECK:STDOUT: %ptr.2ff: type = ptr_type %Two [concrete] // CHECK:STDOUT: %Two__carbon_thunk.type: type = fn_type @Two__carbon_thunk [concrete] // CHECK:STDOUT: %Two__carbon_thunk: %Two__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %ThreeWithDefault: type = class_type @ThreeWithDefault [concrete] -// CHECK:STDOUT: %pattern_type.830: type = pattern_type %ThreeWithDefault [concrete] -// CHECK:STDOUT: %ptr.da2: type = ptr_type %ThreeWithDefault [concrete] -// CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.type.b324b0.1: type = fn_type @ThreeWithDefault__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.8592b9.1: %ThreeWithDefault__carbon_thunk.type.b324b0.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.248: type = pattern_type %ThreeWithDefault [concrete] +// CHECK:STDOUT: %ptr.3ae: type = ptr_type %ThreeWithDefault [concrete] +// CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.type.0fdb2f.1: type = fn_type @ThreeWithDefault__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.d9686c.1: %ThreeWithDefault__carbon_thunk.type.0fdb2f.1 = struct_value () [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %tuple.type.37f: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.2d5: %tuple.type.37f = tuple_value (%int_1.5b8, %int_2.ecc, %int_3.1ba) [concrete] -// CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.type.b324b0.2: type = fn_type @ThreeWithDefault__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.8592b9.2: %ThreeWithDefault__carbon_thunk.type.b324b0.2 = struct_value () [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] +// CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.type.0fdb2f.2: type = fn_type @ThreeWithDefault__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.d9686c.2: %ThreeWithDefault__carbon_thunk.type.0fdb2f.2 = struct_value () [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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %ThreeWithDefault.cpp_destructor.type: type = fn_type @ThreeWithDefault.cpp_destructor [concrete] // CHECK:STDOUT: %ThreeWithDefault.cpp_destructor: %ThreeWithDefault.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %ThreeWithDefault.Op.type: type = fn_type @ThreeWithDefault.Op [concrete] @@ -1094,15 +1094,15 @@ fn InitFromStruct() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %ThreeWithDefault.decl: type = class_decl @ThreeWithDefault [concrete = constants.%ThreeWithDefault] {} {} -// CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.decl.be9bad.1: %ThreeWithDefault__carbon_thunk.type.b324b0.1 = fn_decl @ThreeWithDefault__carbon_thunk.1 [concrete = constants.%ThreeWithDefault__carbon_thunk.8592b9.1] { +// CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.decl.3a914c.1: %ThreeWithDefault__carbon_thunk.type.0fdb2f.1 = fn_decl @ThreeWithDefault__carbon_thunk.1 [concrete = constants.%ThreeWithDefault__carbon_thunk.d9686c.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.decl.be9bad.2: %ThreeWithDefault__carbon_thunk.type.b324b0.2 = fn_decl @ThreeWithDefault__carbon_thunk.2 [concrete = constants.%ThreeWithDefault__carbon_thunk.8592b9.2] { +// CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.decl.3a914c.2: %ThreeWithDefault__carbon_thunk.type.0fdb2f.2 = fn_decl @ThreeWithDefault__carbon_thunk.2 [concrete = constants.%ThreeWithDefault__carbon_thunk.d9686c.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -1122,7 +1122,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @ImplicitConvert() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc8: %pattern_type.034 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc8: %pattern_type.586 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc8: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] @@ -1132,21 +1132,21 @@ fn InitFromStruct() { // CHECK:STDOUT: %Two.ref: type = name_ref Two, imports.%Two.decl [concrete = constants.%Two] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc8_25.2: ref %Two = temporary_storage -// CHECK:STDOUT: %impl.elem0.loc8_21: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_21.1: = bound_method %int_1.loc8, %impl.elem0.loc8_21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc8_21: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_21.1: = bound_method %int_1.loc8, %impl.elem0.loc8_21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc8_21: = specific_function %impl.elem0.loc8_21, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_21.2: = bound_method %int_1.loc8, %specific_fn.loc8_21 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_21: init %i32 = call %bound_method.loc8_21.2(%int_1.loc8) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_21.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_21 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_21.2: %i32 = converted %int_1.loc8, %.loc8_21.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc8_24: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_24.1: = bound_method %int_2.loc8, %impl.elem0.loc8_24 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc8_21.2: = bound_method %int_1.loc8, %specific_fn.loc8_21 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_21: init %i32 = call %bound_method.loc8_21.2(%int_1.loc8) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_21.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_21 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_21.2: %i32 = converted %int_1.loc8, %.loc8_21.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc8_24: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_24.1: = bound_method %int_2.loc8, %impl.elem0.loc8_24 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc8_24: = specific_function %impl.elem0.loc8_24, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_24.2: = bound_method %int_2.loc8, %specific_fn.loc8_24 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_24: init %i32 = call %bound_method.loc8_24.2(%int_2.loc8) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc8_24.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_24 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc8_24.2: %i32 = converted %int_2.loc8, %.loc8_24.1 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %addr.loc8: %ptr.5a9 = addr_of %.loc8_25.2 +// CHECK:STDOUT: %bound_method.loc8_24.2: = bound_method %int_2.loc8, %specific_fn.loc8_24 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_24: init %i32 = call %bound_method.loc8_24.2(%int_2.loc8) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc8_24.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_24 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc8_24.2: %i32 = converted %int_2.loc8, %.loc8_24.1 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %addr.loc8: %ptr.2ff = addr_of %.loc8_25.2 // CHECK:STDOUT: %Two__carbon_thunk.call: init %empty_tuple.type = call imports.%Two__carbon_thunk.decl(%.loc8_21.2, %.loc8_24.2, %addr.loc8) // CHECK:STDOUT: %.loc8_25.3: init %Two to %.loc8_25.2 = mark_in_place_init %Two__carbon_thunk.call // CHECK:STDOUT: %.loc8_25.4: init %Two = converted %.loc8_25.1, %.loc8_25.3 @@ -1154,7 +1154,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc8_25.6: %Two = acquire_value %.loc8_25.5 // CHECK:STDOUT: %_.loc8: %Two = value_binding _, %.loc8_25.6 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc10: %pattern_type.830 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc10: %pattern_type.248 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc10: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc10: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] @@ -1164,29 +1164,29 @@ fn InitFromStruct() { // CHECK:STDOUT: %ThreeWithDefault.ref.loc10: type = name_ref ThreeWithDefault, imports.%ThreeWithDefault.decl [concrete = constants.%ThreeWithDefault] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc10_38.2: ref %ThreeWithDefault = temporary_storage -// CHECK:STDOUT: %impl.elem0.loc10_34: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_34.1: = bound_method %int_1.loc10, %impl.elem0.loc10_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc10_34: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_34.1: = bound_method %int_1.loc10, %impl.elem0.loc10_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc10_34: = specific_function %impl.elem0.loc10_34, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_34.2: = bound_method %int_1.loc10, %specific_fn.loc10_34 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_34: init %i32 = call %bound_method.loc10_34.2(%int_1.loc10) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc10_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_34 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc10_34.2: %i32 = converted %int_1.loc10, %.loc10_34.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc10_37: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_37.1: = bound_method %int_2.loc10, %impl.elem0.loc10_37 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc10_34.2: = bound_method %int_1.loc10, %specific_fn.loc10_34 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_34: init %i32 = call %bound_method.loc10_34.2(%int_1.loc10) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc10_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_34 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc10_34.2: %i32 = converted %int_1.loc10, %.loc10_34.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc10_37: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_37.1: = bound_method %int_2.loc10, %impl.elem0.loc10_37 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc10_37: = specific_function %impl.elem0.loc10_37, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_37.2: = bound_method %int_2.loc10, %specific_fn.loc10_37 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_37: init %i32 = call %bound_method.loc10_37.2(%int_2.loc10) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc10_37.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_37 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc10_37.2: %i32 = converted %int_2.loc10, %.loc10_37.1 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %addr.loc10: %ptr.da2 = addr_of %.loc10_38.2 -// CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%ThreeWithDefault__carbon_thunk.decl.be9bad.1(%.loc10_34.2, %.loc10_37.2, %addr.loc10) +// CHECK:STDOUT: %bound_method.loc10_37.2: = bound_method %int_2.loc10, %specific_fn.loc10_37 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_37: init %i32 = call %bound_method.loc10_37.2(%int_2.loc10) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc10_37.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_37 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc10_37.2: %i32 = converted %int_2.loc10, %.loc10_37.1 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %addr.loc10: %ptr.3ae = addr_of %.loc10_38.2 +// CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%ThreeWithDefault__carbon_thunk.decl.3a914c.1(%.loc10_34.2, %.loc10_37.2, %addr.loc10) // CHECK:STDOUT: %.loc10_38.3: init %ThreeWithDefault to %.loc10_38.2 = mark_in_place_init %ThreeWithDefault__carbon_thunk.call.loc10 // CHECK:STDOUT: %.loc10_38.4: init %ThreeWithDefault = converted %.loc10_38.1, %.loc10_38.3 // CHECK:STDOUT: %.loc10_38.5: ref %ThreeWithDefault = temporary %.loc10_38.2, %.loc10_38.4 // CHECK:STDOUT: %.loc10_38.6: %ThreeWithDefault = acquire_value %.loc10_38.5 // CHECK:STDOUT: %_.loc10: %ThreeWithDefault = value_binding _, %.loc10_38.6 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc12: %pattern_type.830 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc12: %pattern_type.248 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc12: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc12: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] @@ -1197,29 +1197,29 @@ fn InitFromStruct() { // CHECK:STDOUT: %ThreeWithDefault.ref.loc12: type = name_ref ThreeWithDefault, imports.%ThreeWithDefault.decl [concrete = constants.%ThreeWithDefault] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc12_41.2: ref %ThreeWithDefault = temporary_storage -// CHECK:STDOUT: %impl.elem0.loc12_34: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc12_34.1: = bound_method %int_1.loc12, %impl.elem0.loc12_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc12_34: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc12_34.1: = bound_method %int_1.loc12, %impl.elem0.loc12_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc12_34: = specific_function %impl.elem0.loc12_34, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc12_34.2: = bound_method %int_1.loc12, %specific_fn.loc12_34 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_34: init %i32 = call %bound_method.loc12_34.2(%int_1.loc12) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc12_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_34 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc12_34.2: %i32 = converted %int_1.loc12, %.loc12_34.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc12_37: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc12_37.1: = bound_method %int_2.loc12, %impl.elem0.loc12_37 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc12_34.2: = bound_method %int_1.loc12, %specific_fn.loc12_34 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_34: init %i32 = call %bound_method.loc12_34.2(%int_1.loc12) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc12_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_34 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc12_34.2: %i32 = converted %int_1.loc12, %.loc12_34.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc12_37: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc12_37.1: = bound_method %int_2.loc12, %impl.elem0.loc12_37 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc12_37: = specific_function %impl.elem0.loc12_37, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc12_37.2: = bound_method %int_2.loc12, %specific_fn.loc12_37 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_37: init %i32 = call %bound_method.loc12_37.2(%int_2.loc12) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc12_37.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_37 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc12_37.2: %i32 = converted %int_2.loc12, %.loc12_37.1 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %impl.elem0.loc12_40: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc12_40.1: = bound_method %int_3, %impl.elem0.loc12_40 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %bound_method.loc12_37.2: = bound_method %int_2.loc12, %specific_fn.loc12_37 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_37: init %i32 = call %bound_method.loc12_37.2(%int_2.loc12) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc12_37.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_37 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc12_37.2: %i32 = converted %int_2.loc12, %.loc12_37.1 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %impl.elem0.loc12_40: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc12_40.1: = bound_method %int_3, %impl.elem0.loc12_40 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc12_40: = specific_function %impl.elem0.loc12_40, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc12_40.2: = bound_method %int_3, %specific_fn.loc12_40 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_40: init %i32 = call %bound_method.loc12_40.2(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc12_40.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_40 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc12_40.2: %i32 = converted %int_3, %.loc12_40.1 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %addr.loc12: %ptr.da2 = addr_of %.loc12_41.2 -// CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.call.loc12: init %empty_tuple.type = call imports.%ThreeWithDefault__carbon_thunk.decl.be9bad.2(%.loc12_34.2, %.loc12_37.2, %.loc12_40.2, %addr.loc12) +// CHECK:STDOUT: %bound_method.loc12_40.2: = bound_method %int_3, %specific_fn.loc12_40 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_40: init %i32 = call %bound_method.loc12_40.2(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc12_40.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_40 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc12_40.2: %i32 = converted %int_3, %.loc12_40.1 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %addr.loc12: %ptr.3ae = addr_of %.loc12_41.2 +// CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.call.loc12: init %empty_tuple.type = call imports.%ThreeWithDefault__carbon_thunk.decl.3a914c.2(%.loc12_34.2, %.loc12_37.2, %.loc12_40.2, %addr.loc12) // CHECK:STDOUT: %.loc12_41.3: init %ThreeWithDefault to %.loc12_41.2 = mark_in_place_init %ThreeWithDefault__carbon_thunk.call.loc12 // CHECK:STDOUT: %.loc12_41.4: init %ThreeWithDefault = converted %.loc12_41.1, %.loc12_41.3 // CHECK:STDOUT: %.loc12_41.5: ref %ThreeWithDefault = temporary %.loc12_41.2, %.loc12_41.4 @@ -1247,7 +1247,7 @@ fn InitFromStruct() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Aggregate: type = class_type @Aggregate [concrete] -// CHECK:STDOUT: %pattern_type.f0b: type = pattern_type %Aggregate [concrete] +// CHECK:STDOUT: %pattern_type.5dc: type = pattern_type %Aggregate [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] @@ -1268,7 +1268,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @InitFromTuple() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc15: %pattern_type.f0b = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc15: %pattern_type.5dc = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc15_27.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc15_13: type = splice_block %Aggregate.ref.loc15 [concrete = constants.%Aggregate] { @@ -1278,7 +1278,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc15_27.2: %Aggregate = converted %.loc15_27.1, [concrete = ] // CHECK:STDOUT: %_.loc15: %Aggregate = value_binding _, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc23: %pattern_type.f0b = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc23: %pattern_type.5dc = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc23: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %.loc23_29.1: %tuple.type.985 = tuple_literal (%int_1.loc23) [concrete = constants.%tuple.378] @@ -1289,7 +1289,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc23_29.2: %Aggregate = converted %.loc23_29.1, [concrete = ] // CHECK:STDOUT: %_.loc23: %Aggregate = value_binding _, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc31: %pattern_type.f0b = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc31: %pattern_type.5dc = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc31: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] @@ -1307,7 +1307,7 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Aggregate: type = class_type @Aggregate [concrete] -// CHECK:STDOUT: %pattern_type.f0b: type = pattern_type %Aggregate [concrete] +// CHECK:STDOUT: %pattern_type.5dc: type = pattern_type %Aggregate [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] @@ -1329,7 +1329,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @InitFromStruct() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc15: %pattern_type.f0b = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc15: %pattern_type.5dc = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc15_27.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc15_13: type = splice_block %Aggregate.ref.loc15 [concrete = constants.%Aggregate] { @@ -1339,7 +1339,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc15_27.2: %Aggregate = converted %.loc15_27.1, [concrete = ] // CHECK:STDOUT: %_.loc15: %Aggregate = value_binding _, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc23: %pattern_type.f0b = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc23: %pattern_type.5dc = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc23: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %.loc23_33.1: %struct_type.x = struct_literal (%int_1.loc23) [concrete = constants.%struct.147] @@ -1350,7 +1350,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc23_33.2: %Aggregate = converted %.loc23_33.1, [concrete = ] // CHECK:STDOUT: %_.loc23: %Aggregate = value_binding _, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc31: %pattern_type.f0b = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc31: %pattern_type.5dc = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc31: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] @@ -1369,40 +1369,40 @@ fn InitFromStruct() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %NonAggregate: type = class_type @NonAggregate [concrete] -// CHECK:STDOUT: %pattern_type.d5f: type = pattern_type %NonAggregate [concrete] +// CHECK:STDOUT: %pattern_type.273: type = pattern_type %NonAggregate [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %ptr.9fe: type = ptr_type %NonAggregate [concrete] -// CHECK:STDOUT: %NonAggregate__carbon_thunk.type.67cd37.1: type = fn_type @NonAggregate__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %NonAggregate__carbon_thunk.30ebf5.1: %NonAggregate__carbon_thunk.type.67cd37.1 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.f81: type = ptr_type %NonAggregate [concrete] +// CHECK:STDOUT: %NonAggregate__carbon_thunk.type.841a40.1: type = fn_type @NonAggregate__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %NonAggregate__carbon_thunk.24a208.1: %NonAggregate__carbon_thunk.type.841a40.1 = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.378: %tuple.type.985 = tuple_value (%int_1.5b8) [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %NonAggregate__carbon_thunk.type.67cd37.2: type = fn_type @NonAggregate__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %NonAggregate__carbon_thunk.30ebf5.2: %NonAggregate__carbon_thunk.type.67cd37.2 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %NonAggregate__carbon_thunk.type.841a40.2: type = fn_type @NonAggregate__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %NonAggregate__carbon_thunk.24a208.2: %NonAggregate__carbon_thunk.type.841a40.2 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %int_2.ecc: Core.IntLiteral = int_value 2 [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: %NonAggregate__carbon_thunk.type.67cd37.3: type = fn_type @NonAggregate__carbon_thunk.3 [concrete] -// CHECK:STDOUT: %NonAggregate__carbon_thunk.30ebf5.3: %NonAggregate__carbon_thunk.type.67cd37.3 = struct_value () [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %NonAggregate__carbon_thunk.type.841a40.3: type = fn_type @NonAggregate__carbon_thunk.3 [concrete] +// CHECK:STDOUT: %NonAggregate__carbon_thunk.24a208.3: %NonAggregate__carbon_thunk.type.841a40.3 = struct_value () [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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %NonAggregate.cpp_destructor.type: type = fn_type @NonAggregate.cpp_destructor [concrete] // CHECK:STDOUT: %NonAggregate.cpp_destructor: %NonAggregate.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %NonAggregate.Op.type: type = fn_type @NonAggregate.Op [concrete] @@ -1415,19 +1415,19 @@ fn InitFromStruct() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %NonAggregate.decl: type = class_decl @NonAggregate [concrete = constants.%NonAggregate] {} {} -// CHECK:STDOUT: %NonAggregate__carbon_thunk.decl.2d9ba4.1: %NonAggregate__carbon_thunk.type.67cd37.1 = fn_decl @NonAggregate__carbon_thunk.1 [concrete = constants.%NonAggregate__carbon_thunk.30ebf5.1] { +// CHECK:STDOUT: %NonAggregate__carbon_thunk.decl.356ec9.1: %NonAggregate__carbon_thunk.type.841a40.1 = fn_decl @NonAggregate__carbon_thunk.1 [concrete = constants.%NonAggregate__carbon_thunk.24a208.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %NonAggregate__carbon_thunk.decl.2d9ba4.2: %NonAggregate__carbon_thunk.type.67cd37.2 = fn_decl @NonAggregate__carbon_thunk.2 [concrete = constants.%NonAggregate__carbon_thunk.30ebf5.2] { +// CHECK:STDOUT: %NonAggregate__carbon_thunk.decl.356ec9.2: %NonAggregate__carbon_thunk.type.841a40.2 = fn_decl @NonAggregate__carbon_thunk.2 [concrete = constants.%NonAggregate__carbon_thunk.24a208.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %NonAggregate__carbon_thunk.decl.2d9ba4.3: %NonAggregate__carbon_thunk.type.67cd37.3 = fn_decl @NonAggregate__carbon_thunk.3 [concrete = constants.%NonAggregate__carbon_thunk.30ebf5.3] { +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %NonAggregate__carbon_thunk.decl.356ec9.3: %NonAggregate__carbon_thunk.type.841a40.3 = fn_decl @NonAggregate__carbon_thunk.3 [concrete = constants.%NonAggregate__carbon_thunk.24a208.3] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -1442,7 +1442,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @InitFromStruct() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc8: %pattern_type.d5f = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc8: %pattern_type.273 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc8_30.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_13: type = splice_block %NonAggregate.ref.loc8 [concrete = constants.%NonAggregate] { @@ -1450,15 +1450,15 @@ fn InitFromStruct() { // CHECK:STDOUT: %NonAggregate.ref.loc8: type = name_ref NonAggregate, imports.%NonAggregate.decl [concrete = constants.%NonAggregate] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc8_30.2: ref %NonAggregate = temporary_storage -// CHECK:STDOUT: %addr.loc8: %ptr.9fe = addr_of %.loc8_30.2 -// CHECK:STDOUT: %NonAggregate__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%NonAggregate__carbon_thunk.decl.2d9ba4.1(%addr.loc8) +// CHECK:STDOUT: %addr.loc8: %ptr.f81 = addr_of %.loc8_30.2 +// CHECK:STDOUT: %NonAggregate__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%NonAggregate__carbon_thunk.decl.356ec9.1(%addr.loc8) // CHECK:STDOUT: %.loc8_30.3: init %NonAggregate to %.loc8_30.2 = mark_in_place_init %NonAggregate__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_30.4: init %NonAggregate = converted %.loc8_30.1, %.loc8_30.3 // CHECK:STDOUT: %.loc8_30.5: ref %NonAggregate = temporary %.loc8_30.2, %.loc8_30.4 // CHECK:STDOUT: %.loc8_30.6: %NonAggregate = acquire_value %.loc8_30.5 // CHECK:STDOUT: %_.loc8: %NonAggregate = value_binding _, %.loc8_30.6 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc9: %pattern_type.d5f = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc9: %pattern_type.273 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_32.1: %tuple.type.985 = tuple_literal (%int_1.loc9) [concrete = constants.%tuple.378] @@ -1467,22 +1467,22 @@ fn InitFromStruct() { // CHECK:STDOUT: %NonAggregate.ref.loc9: type = name_ref NonAggregate, imports.%NonAggregate.decl [concrete = constants.%NonAggregate] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc9_32.2: ref %NonAggregate = temporary_storage -// CHECK:STDOUT: %impl.elem0.loc9: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_30.1: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc9: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_30.1: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_30.2: = bound_method %int_1.loc9, %specific_fn.loc9 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_30.2(%int_1.loc9) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc9_30.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc9_30.2: %i32 = converted %int_1.loc9, %.loc9_30.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %addr.loc9: %ptr.9fe = addr_of %.loc9_32.2 -// CHECK:STDOUT: %NonAggregate__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%NonAggregate__carbon_thunk.decl.2d9ba4.2(%.loc9_30.2, %addr.loc9) +// CHECK:STDOUT: %bound_method.loc9_30.2: = bound_method %int_1.loc9, %specific_fn.loc9 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_30.2(%int_1.loc9) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_30.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_30.2: %i32 = converted %int_1.loc9, %.loc9_30.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %addr.loc9: %ptr.f81 = addr_of %.loc9_32.2 +// CHECK:STDOUT: %NonAggregate__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%NonAggregate__carbon_thunk.decl.356ec9.2(%.loc9_30.2, %addr.loc9) // CHECK:STDOUT: %.loc9_32.3: init %NonAggregate to %.loc9_32.2 = mark_in_place_init %NonAggregate__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_32.4: init %NonAggregate = converted %.loc9_32.1, %.loc9_32.3 // CHECK:STDOUT: %.loc9_32.5: ref %NonAggregate = temporary %.loc9_32.2, %.loc9_32.4 // CHECK:STDOUT: %.loc9_32.6: %NonAggregate = acquire_value %.loc9_32.5 // CHECK:STDOUT: %_.loc9: %NonAggregate = value_binding _, %.loc9_32.6 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc10: %pattern_type.d5f = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc10: %pattern_type.273 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc10: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] @@ -1492,22 +1492,22 @@ fn InitFromStruct() { // CHECK:STDOUT: %NonAggregate.ref.loc10: type = name_ref NonAggregate, imports.%NonAggregate.decl [concrete = constants.%NonAggregate] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc10_34.2: ref %NonAggregate = temporary_storage -// CHECK:STDOUT: %impl.elem0.loc10_30: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_30.1: = bound_method %int_1.loc10, %impl.elem0.loc10_30 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc10_30: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_30.1: = bound_method %int_1.loc10, %impl.elem0.loc10_30 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc10_30: = specific_function %impl.elem0.loc10_30, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_30.2: = bound_method %int_1.loc10, %specific_fn.loc10_30 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_30: init %i32 = call %bound_method.loc10_30.2(%int_1.loc10) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc10_30.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_30 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc10_30.2: %i32 = converted %int_1.loc10, %.loc10_30.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc10_33: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_33.1: = bound_method %int_2, %impl.elem0.loc10_33 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc10_30.2: = bound_method %int_1.loc10, %specific_fn.loc10_30 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_30: init %i32 = call %bound_method.loc10_30.2(%int_1.loc10) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc10_30.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_30 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc10_30.2: %i32 = converted %int_1.loc10, %.loc10_30.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc10_33: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_33.1: = bound_method %int_2, %impl.elem0.loc10_33 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc10_33: = specific_function %impl.elem0.loc10_33, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_33.2: = bound_method %int_2, %specific_fn.loc10_33 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_33: init %i32 = call %bound_method.loc10_33.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc10_33.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_33 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc10_33.2: %i32 = converted %int_2, %.loc10_33.1 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %addr.loc10: %ptr.9fe = addr_of %.loc10_34.2 -// CHECK:STDOUT: %NonAggregate__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%NonAggregate__carbon_thunk.decl.2d9ba4.3(%.loc10_30.2, %.loc10_33.2, %addr.loc10) +// CHECK:STDOUT: %bound_method.loc10_33.2: = bound_method %int_2, %specific_fn.loc10_33 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_33: init %i32 = call %bound_method.loc10_33.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc10_33.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_33 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc10_33.2: %i32 = converted %int_2, %.loc10_33.1 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %addr.loc10: %ptr.f81 = addr_of %.loc10_34.2 +// CHECK:STDOUT: %NonAggregate__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%NonAggregate__carbon_thunk.decl.356ec9.3(%.loc10_30.2, %.loc10_33.2, %addr.loc10) // CHECK:STDOUT: %.loc10_34.3: init %NonAggregate to %.loc10_34.2 = mark_in_place_init %NonAggregate__carbon_thunk.call.loc10 // CHECK:STDOUT: %.loc10_34.4: init %NonAggregate = converted %.loc10_34.1, %.loc10_34.3 // CHECK:STDOUT: %.loc10_34.5: ref %NonAggregate = temporary %.loc10_34.2, %.loc10_34.4 @@ -1533,7 +1533,7 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %NonAggregate: type = class_type @NonAggregate [concrete] -// CHECK:STDOUT: %pattern_type.d5f: type = pattern_type %NonAggregate [concrete] +// CHECK:STDOUT: %pattern_type.273: type = pattern_type %NonAggregate [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] @@ -1555,7 +1555,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @InitFromStruct() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc15: %pattern_type.d5f = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc15: %pattern_type.273 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc15_30.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc15_13: type = splice_block %NonAggregate.ref.loc15 [concrete = constants.%NonAggregate] { @@ -1565,7 +1565,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc15_30.2: %NonAggregate = converted %.loc15_30.1, [concrete = ] // CHECK:STDOUT: %_.loc15: %NonAggregate = value_binding _, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc23: %pattern_type.d5f = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc23: %pattern_type.273 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc23: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %.loc23_36.1: %struct_type.x = struct_literal (%int_1.loc23) [concrete = constants.%struct.147] @@ -1576,7 +1576,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc23_36.2: %NonAggregate = converted %.loc23_36.1, [concrete = ] // CHECK:STDOUT: %_.loc23: %NonAggregate = value_binding _, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc31: %pattern_type.d5f = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc31: %pattern_type.273 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc31: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] diff --git a/toolchain/check/testdata/interop/cpp/macros/macros.carbon b/toolchain/check/testdata/interop/cpp/macros/macros.carbon index 19aa51f30408..4e06d4c69ae7 100644 --- a/toolchain/check/testdata/interop/cpp/macros/macros.carbon +++ b/toolchain/check/testdata/interop/cpp/macros/macros.carbon @@ -976,15 +976,15 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %int_42.daa: %i32 = int_value 42 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %int_42.ac4: %i32 = int_value 42 [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.fdd: type = pattern_type %i64 [concrete] -// CHECK:STDOUT: %int_42.20d: %i64 = int_value 42 [concrete] +// CHECK:STDOUT: %pattern_type.f57: type = pattern_type %i64 [concrete] +// CHECK:STDOUT: %int_42.b15: %i64 = int_value 42 [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.126: type = pattern_type %u32 [concrete] -// CHECK:STDOUT: %int_42.9fe: %u32 = int_value 42 [concrete] +// CHECK:STDOUT: %pattern_type.668: type = pattern_type %u32 [concrete] +// CHECK:STDOUT: %int_42.869: %u32 = int_value 42 [concrete] // CHECK:STDOUT: %int_255: %i32 = int_value 255 [concrete] // CHECK:STDOUT: %int_8: %i32 = int_value 8 [concrete] // CHECK:STDOUT: %int_5: %i32 = int_value 5 [concrete] @@ -992,9 +992,9 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { -// CHECK:STDOUT: .CONFIG_VALUE = constants.%int_42.daa -// CHECK:STDOUT: .CONFIG_VALUE_LONG = constants.%int_42.20d -// CHECK:STDOUT: .CONFIG_VALUE_UNSIGNED = constants.%int_42.9fe +// CHECK:STDOUT: .CONFIG_VALUE = constants.%int_42.ac4 +// CHECK:STDOUT: .CONFIG_VALUE_LONG = constants.%int_42.b15 +// CHECK:STDOUT: .CONFIG_VALUE_UNSIGNED = constants.%int_42.869 // CHECK:STDOUT: .CONFIG_VALUE_HEXA = constants.%int_255 // CHECK:STDOUT: .CONFIG_VALUE_OCTAL = constants.%int_8 // CHECK:STDOUT: .CONFIG_VALUE_BINARY = constants.%int_5 @@ -1005,31 +1005,31 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %CONFIG_VALUE.ref: %i32 = name_ref CONFIG_VALUE, constants.%int_42.daa [concrete = constants.%int_42.daa] +// CHECK:STDOUT: %CONFIG_VALUE.ref: %i32 = name_ref CONFIG_VALUE, constants.%int_42.ac4 [concrete = constants.%int_42.ac4] // CHECK:STDOUT: %i32.loc8: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: %i32 = value_binding a, %CONFIG_VALUE.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.fdd = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.f57 = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %CONFIG_VALUE_LONG.ref: %i64 = name_ref CONFIG_VALUE_LONG, constants.%int_42.20d [concrete = constants.%int_42.20d] +// CHECK:STDOUT: %CONFIG_VALUE_LONG.ref: %i64 = name_ref CONFIG_VALUE_LONG, constants.%int_42.b15 [concrete = constants.%int_42.b15] // CHECK:STDOUT: %i64.loc9: type = type_literal constants.%i64 [concrete = constants.%i64] // CHECK:STDOUT: %b: %i64 = value_binding b, %CONFIG_VALUE_LONG.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.126 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.668 = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %CONFIG_VALUE_UNSIGNED.ref: %u32 = name_ref CONFIG_VALUE_UNSIGNED, constants.%int_42.9fe [concrete = constants.%int_42.9fe] +// CHECK:STDOUT: %CONFIG_VALUE_UNSIGNED.ref: %u32 = name_ref CONFIG_VALUE_UNSIGNED, constants.%int_42.869 [concrete = constants.%int_42.869] // CHECK:STDOUT: %u32.loc10: type = type_literal constants.%u32 [concrete = constants.%u32] // CHECK:STDOUT: %c: %u32 = value_binding c, %CONFIG_VALUE_UNSIGNED.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.104 = value_binding_pattern d [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.6b6 = value_binding_pattern d [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1037,7 +1037,7 @@ fn F() { // CHECK:STDOUT: %i32.loc11: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %d: %i32 = value_binding d, %CONFIG_VALUE_HEXA.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %e.patt: %pattern_type.104 = value_binding_pattern e [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.6b6 = value_binding_pattern e [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc12: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1045,7 +1045,7 @@ fn F() { // CHECK:STDOUT: %i32.loc12: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %e: %i32 = value_binding e, %CONFIG_VALUE_OCTAL.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %f.patt: %pattern_type.104 = value_binding_pattern f [concrete] +// CHECK:STDOUT: %f.patt: %pattern_type.6b6 = value_binding_pattern f [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc13: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1061,98 +1061,98 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %From.fe9: Core.IntLiteral = symbolic_binding From, 0 [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.f73: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From.fe9) [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.34b: %Int.as.ImplicitAs.impl.Convert.type.f73 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.062: = impl_witness imports.%ImplicitAs.impl_witness_table.eac, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.337: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.64e: %Int.as.ImplicitAs.impl.Convert.type.337 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.89e: %ImplicitAs.type.ace = facet_value %i32, (%ImplicitAs.impl_witness.062) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b68: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.89e) [concrete] -// CHECK:STDOUT: %.7a9: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b68, %ImplicitAs.facet.89e [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.d9c, %Int.as.ImplicitAs.impl.Convert.64e [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.64e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.682: = bound_method %int_1.d9c, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.48d: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From.fe9) [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.0f9: %Int.as.ImplicitAs.impl.Convert.type.48d = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.416: = impl_witness imports.%ImplicitAs.impl_witness_table.b8b, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.683: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.69e: %Int.as.ImplicitAs.impl.Convert.type.683 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.657: %ImplicitAs.type.7cb = facet_value %i32, (%ImplicitAs.impl_witness.416) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.dc6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.657) [concrete] +// CHECK:STDOUT: %.b08: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.dc6, %ImplicitAs.facet.657 [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.0c6, %Int.as.ImplicitAs.impl.Convert.69e [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.69e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.f53: = bound_method %int_1.0c6, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.a26 [concrete] +// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.c73 [concrete] // CHECK:STDOUT: %f32.9b3: type = float_type %int_32, f32 [concrete] -// CHECK:STDOUT: %pattern_type.aab: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.18b: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.FloatLiteral) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%float.6da) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.d0d: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.a26)> [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.65d: = impl_witness imports.%ImplicitAs.impl_witness_table.234, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.82a: %ImplicitAs.type.d0d = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.65d) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c87: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.a26, %ImplicitAs.facet.82a) [concrete] -// CHECK:STDOUT: %.3a8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c87, %ImplicitAs.facet.82a [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %pattern_type.f3b: type = pattern_type %f32.a26 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.aaa: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%float.2ec) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc10_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.ed3: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.c73)> [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.303: = impl_witness imports.%ImplicitAs.impl_witness_table.393, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.65e: %ImplicitAs.type.ed3 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.303) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2e4: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.c73, %ImplicitAs.facet.65e) [concrete] +// CHECK:STDOUT: %.17b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2e4, %ImplicitAs.facet.65e [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %pattern_type.240: type = pattern_type %f32.c73 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// 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.loc10_3.3 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.3: %Destroy.Op.type.1d8f74.3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { -// CHECK:STDOUT: .n = constants.%int_1.d9c +// CHECK:STDOUT: .n = constants.%int_1.0c6 // CHECK:STDOUT: .X = %X // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.835: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.f73) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.34b)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.eac = impl_witness_table (%Core.import_ref.835), @Int.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.63cb: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.234 = impl_witness_table (%Core.import_ref.63cb), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.32e: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.48d) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.0f9)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b8b = impl_witness_table (%Core.import_ref.32e), @Int.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.393 = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %X: = namespace [concrete] { // CHECK:STDOUT: .n = %n.var // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %n.patt: %pattern_type.f3b = ref_binding_pattern n [concrete] -// CHECK:STDOUT: %n.var_patt: %pattern_type.f3b = var_pattern %n.patt [concrete] -// CHECK:STDOUT: %n.var: ref %f32.a26 = var %n.var_patt [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: %n.var: ref %f32.c73 = var %n.var_patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.aab = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.aab = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %array_type = var %a.var_patt // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] // CHECK:STDOUT: %.loc10_42.1: %tuple.type = tuple_literal (%float) [concrete = constants.%tuple] -// CHECK:STDOUT: %impl.elem0.loc10_42: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] +// CHECK:STDOUT: %impl.elem0.loc10_42: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] // CHECK:STDOUT: %bound_method.loc10_42.1: = bound_method %float, %impl.elem0.loc10_42 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc10_42: = specific_function %impl.elem0.loc10_42, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_42.2: = bound_method %float, %specific_fn.loc10_42 [concrete = constants.%bound_method.aaa] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.a26 = call %bound_method.loc10_42.2(%float) [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc10_42.2: init %f32.a26 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.2ec] +// CHECK:STDOUT: %bound_method.loc10_42.2: = bound_method %float, %specific_fn.loc10_42 [concrete = constants.%bound_method.3e4] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.c73 = call %bound_method.loc10_42.2(%float) [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc10_42.2: init %f32.c73 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.943] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %.loc10_42.3: ref %f32.a26 = array_index %a.var, %int_0 -// CHECK:STDOUT: %.loc10_42.4: init %f32.a26 to %.loc10_42.3 = in_place_init %.loc10_42.2 [concrete = constants.%float.2ec] +// CHECK:STDOUT: %.loc10_42.3: ref %f32.c73 = array_index %a.var, %int_0 +// CHECK:STDOUT: %.loc10_42.4: init %f32.c73 to %.loc10_42.3 = in_place_init %.loc10_42.2 [concrete = constants.%float.943] // CHECK:STDOUT: %.loc10_42.5: init %array_type to %a.var = array_init (%.loc10_42.4) [concrete = constants.%array] // CHECK:STDOUT: %.loc10_3: init %array_type = converted %.loc10_42.1, %.loc10_42.5 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc10_3 // CHECK:STDOUT: %.loc10_33: type = splice_block %array_type [concrete = constants.%array_type] { -// CHECK:STDOUT: %f32.loc10: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] +// CHECK:STDOUT: %f32.loc10: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %n.ref.loc10: %i32 = name_ref n, constants.%int_1.d9c [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc10_31: %.7a9 = impl_witness_access constants.%ImplicitAs.impl_witness.062, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.64e] +// CHECK:STDOUT: %n.ref.loc10: %i32 = name_ref n, constants.%int_1.0c6 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc10_31: %.b08 = impl_witness_access constants.%ImplicitAs.impl_witness.416, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.69e] // CHECK:STDOUT: %bound_method.loc10_31.1: = bound_method %n.ref.loc10, %impl.elem0.loc10_31 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc10_31: = specific_function %impl.elem0.loc10_31, @Int.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Int.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_31.2: = bound_method %n.ref.loc10, %specific_fn.loc10_31 [concrete = constants.%bound_method.682] +// CHECK:STDOUT: %bound_method.loc10_31.2: = bound_method %n.ref.loc10, %specific_fn.loc10_31 [concrete = constants.%bound_method.f53] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.loc10_31.2(%n.ref.loc10) [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc10_31.1: Core.IntLiteral = value_of_initializer %Int.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc10_31.2: Core.IntLiteral = converted %n.ref.loc10, %.loc10_31.1 [concrete = constants.%int_1.5b8] @@ -1160,23 +1160,23 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %array_type = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f3b = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.240 = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc12: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %X.ref: = name_ref X, imports.%X [concrete = imports.%X] // CHECK:STDOUT: -// CHECK:STDOUT: %n.ref.loc12: ref %f32.a26 = name_ref n, imports.%n.var [concrete = imports.%n.var] -// CHECK:STDOUT: %f32.loc12: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc12: %f32.a26 = acquire_value %n.ref.loc12 -// CHECK:STDOUT: %b: %f32.a26 = value_binding b, %.loc12 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.3 +// CHECK:STDOUT: %n.ref.loc12: ref %f32.c73 = name_ref n, imports.%n.var [concrete = imports.%n.var] +// CHECK:STDOUT: %f32.loc12: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc12: %f32.c73 = acquire_value %n.ref.loc12 +// CHECK:STDOUT: %b: %f32.c73 = value_binding b, %.loc12 +// 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: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.a26) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1191,7 +1191,7 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_-1: %i32 = int_value -1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1205,7 +1205,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1220,7 +1220,7 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_3: %i32 = int_value 3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1234,7 +1234,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1249,21 +1249,21 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.126: type = pattern_type %u32 [concrete] -// CHECK:STDOUT: %int_1.ce2: %u32 = int_value 1 [concrete] +// CHECK:STDOUT: %pattern_type.668: type = pattern_type %u32 [concrete] +// CHECK:STDOUT: %int_1.92d: %u32 = int_value 1 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_100: %i32 = int_value 100 [concrete] // CHECK:STDOUT: %int_99: %i32 = int_value 99 [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { -// CHECK:STDOUT: .CAST_UNSIGNED = constants.%int_1.ce2 +// CHECK:STDOUT: .CAST_UNSIGNED = constants.%int_1.92d // CHECK:STDOUT: .CAST_STATIC = constants.%int_100 // CHECK:STDOUT: .CAST_FUNCTIONAL = constants.%int_99 -// CHECK:STDOUT: .CAST_BOOL_TO_INT = constants.%int_1.d9c +// CHECK:STDOUT: .CAST_BOOL_TO_INT = constants.%int_1.0c6 // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1271,15 +1271,15 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.126 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.668 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %CAST_UNSIGNED.ref: %u32 = name_ref CAST_UNSIGNED, constants.%int_1.ce2 [concrete = constants.%int_1.ce2] +// CHECK:STDOUT: %CAST_UNSIGNED.ref: %u32 = name_ref CAST_UNSIGNED, constants.%int_1.92d [concrete = constants.%int_1.92d] // CHECK:STDOUT: %u32.loc8: type = type_literal constants.%u32 [concrete = constants.%u32] // CHECK:STDOUT: %a: %u32 = value_binding a, %CAST_UNSIGNED.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1287,7 +1287,7 @@ fn F() { // CHECK:STDOUT: %i32.loc9: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: %i32 = value_binding b, %CAST_STATIC.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.104 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.6b6 = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1295,11 +1295,11 @@ fn F() { // CHECK:STDOUT: %i32.loc10: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %c: %i32 = value_binding c, %CAST_FUNCTIONAL.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.104 = value_binding_pattern d [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.6b6 = value_binding_pattern d [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %CAST_BOOL_TO_INT.ref: %i32 = name_ref CAST_BOOL_TO_INT, constants.%int_1.d9c [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %CAST_BOOL_TO_INT.ref: %i32 = name_ref CAST_BOOL_TO_INT, constants.%int_1.0c6 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %i32.loc11: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %d: %i32 = value_binding d, %CAST_BOOL_TO_INT.ref // CHECK:STDOUT: @@ -1310,7 +1310,7 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_1: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1324,7 +1324,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1337,31 +1337,31 @@ fn F() { // CHECK:STDOUT: --- import_string_literal_object_like_macro.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %str.abf: type = class_type @String [concrete] +// CHECK:STDOUT: %str.3d4: type = class_type @String [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %u64: type = class_type @UInt, @UInt(%int_64) [concrete] // CHECK:STDOUT: %char: type = class_type @Char [concrete] -// CHECK:STDOUT: %ptr.d63: type = ptr_type %char [concrete] -// CHECK:STDOUT: %pattern_type.3d7: type = pattern_type %str.abf [concrete] -// CHECK:STDOUT: %str.f96: %ptr.d63 = string_literal "abc" [concrete] +// CHECK:STDOUT: %ptr.b46: type = ptr_type %char [concrete] +// CHECK:STDOUT: %pattern_type.adf: type = pattern_type %str.3d4 [concrete] +// CHECK:STDOUT: %str.d76: %ptr.b46 = string_literal "abc" [concrete] // CHECK:STDOUT: %int_3: %u64 = int_value 3 [concrete] -// CHECK:STDOUT: %String.val.2ac: %str.abf = struct_value (%str.f96, %int_3) [concrete] -// CHECK:STDOUT: %str.590: %ptr.d63 = string_literal "" [concrete] +// CHECK:STDOUT: %String.val.6e1: %str.3d4 = struct_value (%str.d76, %int_3) [concrete] +// CHECK:STDOUT: %str.3d5: %ptr.b46 = string_literal "" [concrete] // CHECK:STDOUT: %int_0: %u64 = int_value 0 [concrete] -// CHECK:STDOUT: %String.val.cbc: %str.abf = struct_value (%str.590, %int_0) [concrete] -// CHECK:STDOUT: %str.603: %ptr.d63 = string_literal " \t " [concrete] -// CHECK:STDOUT: %String.val.f90: %str.abf = struct_value (%str.603, %int_3) [concrete] -// CHECK:STDOUT: %str.05f: %ptr.d63 = string_literal "ab" [concrete] +// CHECK:STDOUT: %String.val.9fd: %str.3d4 = struct_value (%str.3d5, %int_0) [concrete] +// CHECK:STDOUT: %str.4fa: %ptr.b46 = string_literal " \t " [concrete] +// CHECK:STDOUT: %String.val.86a: %str.3d4 = struct_value (%str.4fa, %int_3) [concrete] +// CHECK:STDOUT: %str.475: %ptr.b46 = string_literal "ab" [concrete] // CHECK:STDOUT: %int_2: %u64 = int_value 2 [concrete] -// CHECK:STDOUT: %String.val.ee6: %str.abf = struct_value (%str.05f, %int_2) [concrete] -// CHECK:STDOUT: %str.c2f: %ptr.d63 = string_literal " foo: \"bar\" { 123 } " [concrete] +// CHECK:STDOUT: %String.val.efd: %str.3d4 = struct_value (%str.475, %int_2) [concrete] +// CHECK:STDOUT: %str.434: %ptr.b46 = string_literal " foo: \"bar\" { 123 } " [concrete] // CHECK:STDOUT: %int_20: %u64 = int_value 20 [concrete] -// CHECK:STDOUT: %String.val.f03: %str.abf = struct_value (%str.c2f, %int_20) [concrete] -// CHECK:STDOUT: %str.d36: %ptr.d63 = string_literal "\xD0\xB0\xD0\xB1\xD0\xB2" [concrete] +// CHECK:STDOUT: %String.val.70a: %str.3d4 = struct_value (%str.434, %int_20) [concrete] +// CHECK:STDOUT: %str.fa3: %ptr.b46 = string_literal "\xD0\xB0\xD0\xB1\xD0\xB2" [concrete] // CHECK:STDOUT: %int_6: %u64 = int_value 6 [concrete] -// CHECK:STDOUT: %String.val.07e: %str.abf = struct_value (%str.d36, %int_6) [concrete] -// CHECK:STDOUT: %str.6f1: %ptr.d63 = string_literal "xy" [concrete] -// CHECK:STDOUT: %String.val.a10: %str.abf = struct_value (%str.6f1, %int_2) [concrete] +// CHECK:STDOUT: %String.val.711: %str.3d4 = struct_value (%str.fa3, %int_6) [concrete] +// CHECK:STDOUT: %str.618: %ptr.b46 = string_literal "xy" [concrete] +// CHECK:STDOUT: %String.val.fce: %str.3d4 = struct_value (%str.618, %int_2) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1380,61 +1380,61 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.3d7 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.adf = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %SimpleString.ref: %str.abf = name_ref SimpleString, %String.val.1 [concrete = constants.%String.val.2ac] -// CHECK:STDOUT: %str.loc8: type = type_literal constants.%str.abf [concrete = constants.%str.abf] -// CHECK:STDOUT: %a: %str.abf = value_binding a, %SimpleString.ref +// CHECK:STDOUT: %SimpleString.ref: %str.3d4 = name_ref SimpleString, %String.val.1 [concrete = constants.%String.val.6e1] +// CHECK:STDOUT: %str.loc8: type = type_literal constants.%str.3d4 [concrete = constants.%str.3d4] +// CHECK:STDOUT: %a: %str.3d4 = value_binding a, %SimpleString.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.3d7 = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.adf = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %EmptyString.ref: %str.abf = name_ref EmptyString, %String.val.2 [concrete = constants.%String.val.cbc] -// CHECK:STDOUT: %str.loc9: type = type_literal constants.%str.abf [concrete = constants.%str.abf] -// CHECK:STDOUT: %b: %str.abf = value_binding b, %EmptyString.ref +// CHECK:STDOUT: %EmptyString.ref: %str.3d4 = name_ref EmptyString, %String.val.2 [concrete = constants.%String.val.9fd] +// CHECK:STDOUT: %str.loc9: type = type_literal constants.%str.3d4 [concrete = constants.%str.3d4] +// CHECK:STDOUT: %b: %str.3d4 = value_binding b, %EmptyString.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.3d7 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.adf = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %EscapeCharacter.ref: %str.abf = name_ref EscapeCharacter, %String.val.3 [concrete = constants.%String.val.f90] -// CHECK:STDOUT: %str.loc10: type = type_literal constants.%str.abf [concrete = constants.%str.abf] -// CHECK:STDOUT: %c: %str.abf = value_binding c, %EscapeCharacter.ref +// CHECK:STDOUT: %EscapeCharacter.ref: %str.3d4 = name_ref EscapeCharacter, %String.val.3 [concrete = constants.%String.val.86a] +// CHECK:STDOUT: %str.loc10: type = type_literal constants.%str.3d4 [concrete = constants.%str.3d4] +// CHECK:STDOUT: %c: %str.3d4 = value_binding c, %EscapeCharacter.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.3d7 = value_binding_pattern d [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.adf = value_binding_pattern d [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %Concatenated.ref: %str.abf = name_ref Concatenated, %String.val.4 [concrete = constants.%String.val.ee6] -// CHECK:STDOUT: %str.loc11: type = type_literal constants.%str.abf [concrete = constants.%str.abf] -// CHECK:STDOUT: %d: %str.abf = value_binding d, %Concatenated.ref +// CHECK:STDOUT: %Concatenated.ref: %str.3d4 = name_ref Concatenated, %String.val.4 [concrete = constants.%String.val.efd] +// CHECK:STDOUT: %str.loc11: type = type_literal constants.%str.3d4 [concrete = constants.%str.3d4] +// CHECK:STDOUT: %d: %str.3d4 = value_binding d, %Concatenated.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %e.patt: %pattern_type.3d7 = value_binding_pattern e [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.adf = value_binding_pattern e [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc12: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %RawString.ref: %str.abf = name_ref RawString, %String.val.5 [concrete = constants.%String.val.f03] -// CHECK:STDOUT: %str.loc12: type = type_literal constants.%str.abf [concrete = constants.%str.abf] -// CHECK:STDOUT: %e: %str.abf = value_binding e, %RawString.ref +// CHECK:STDOUT: %RawString.ref: %str.3d4 = name_ref RawString, %String.val.5 [concrete = constants.%String.val.70a] +// CHECK:STDOUT: %str.loc12: type = type_literal constants.%str.3d4 [concrete = constants.%str.3d4] +// CHECK:STDOUT: %e: %str.3d4 = value_binding e, %RawString.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %f.patt: %pattern_type.3d7 = value_binding_pattern f [concrete] +// CHECK:STDOUT: %f.patt: %pattern_type.adf = value_binding_pattern f [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc13: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %Utf8String.ref: %str.abf = name_ref Utf8String, %String.val.6 [concrete = constants.%String.val.07e] -// CHECK:STDOUT: %str.loc13: type = type_literal constants.%str.abf [concrete = constants.%str.abf] -// CHECK:STDOUT: %f: %str.abf = value_binding f, %Utf8String.ref +// CHECK:STDOUT: %Utf8String.ref: %str.3d4 = name_ref Utf8String, %String.val.6 [concrete = constants.%String.val.711] +// CHECK:STDOUT: %str.loc13: type = type_literal constants.%str.3d4 [concrete = constants.%str.3d4] +// CHECK:STDOUT: %f: %str.3d4 = value_binding f, %Utf8String.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %g.patt: %pattern_type.3d7 = value_binding_pattern g [concrete] +// CHECK:STDOUT: %g.patt: %pattern_type.adf = value_binding_pattern g [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc14: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %Indirect.ref: %str.abf = name_ref Indirect, %String.val.7 [concrete = constants.%String.val.a10] -// CHECK:STDOUT: %str.loc14: type = type_literal constants.%str.abf [concrete = constants.%str.abf] -// CHECK:STDOUT: %g: %str.abf = value_binding g, %Indirect.ref +// CHECK:STDOUT: %Indirect.ref: %str.3d4 = name_ref Indirect, %String.val.7 [concrete = constants.%String.val.fce] +// CHECK:STDOUT: %str.loc14: type = type_literal constants.%str.3d4 [concrete = constants.%str.3d4] +// CHECK:STDOUT: %g: %str.3d4 = value_binding g, %Indirect.ref // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1442,21 +1442,21 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [concrete] -// CHECK:STDOUT: %float.642: %f64.b55 = float_value 1 [concrete] -// CHECK:STDOUT: %float.4a9: %f64.b55 = float_value 100 [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: %float.3b9: %f64.dc1 = float_value 1 [concrete] +// CHECK:STDOUT: %float.17a: %f64.dc1 = float_value 100 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.f3b: type = pattern_type %f32.a26 [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %pattern_type.240: type = pattern_type %f32.c73 [concrete] +// CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { -// CHECK:STDOUT: .MyDouble = constants.%float.642 -// CHECK:STDOUT: .MyDoubleE = constants.%float.4a9 -// CHECK:STDOUT: .MyFloat = constants.%float.2ec +// CHECK:STDOUT: .MyDouble = constants.%float.3b9 +// CHECK:STDOUT: .MyDoubleE = constants.%float.17a +// CHECK:STDOUT: .MyFloat = constants.%float.943 // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1464,29 +1464,29 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.f3c = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %MyDouble.ref: %f64.b55 = name_ref MyDouble, constants.%float.642 [concrete = constants.%float.642] -// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %a: %f64.b55 = value_binding a, %MyDouble.ref +// CHECK:STDOUT: %MyDouble.ref: %f64.dc1 = name_ref MyDouble, constants.%float.3b9 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %f64.loc8: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %a: %f64.dc1 = value_binding a, %MyDouble.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.f3c = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.fb7 = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %MyDoubleE.ref: %f64.b55 = name_ref MyDoubleE, constants.%float.4a9 [concrete = constants.%float.4a9] -// CHECK:STDOUT: %f64.loc9: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %b: %f64.b55 = value_binding b, %MyDoubleE.ref +// CHECK:STDOUT: %MyDoubleE.ref: %f64.dc1 = name_ref MyDoubleE, constants.%float.17a [concrete = constants.%float.17a] +// CHECK:STDOUT: %f64.loc9: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %b: %f64.dc1 = value_binding b, %MyDoubleE.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.f3b = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.240 = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %MyFloat.ref: %f32.a26 = name_ref MyFloat, constants.%float.2ec [concrete = constants.%float.2ec] -// CHECK:STDOUT: %f32.loc10: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %c: %f32.a26 = value_binding c, %MyFloat.ref +// CHECK:STDOUT: %MyFloat.ref: %f32.c73 = name_ref MyFloat, constants.%float.943 [concrete = constants.%float.943] +// CHECK:STDOUT: %f32.loc10: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %c: %f32.c73 = value_binding c, %MyFloat.ref // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1494,7 +1494,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %char: type = class_type @Char [concrete] -// CHECK:STDOUT: %pattern_type.63d: type = pattern_type %char [concrete] +// CHECK:STDOUT: %pattern_type.2ff: type = pattern_type %char [concrete] // CHECK:STDOUT: %int_97: %char = int_value 97 [concrete] // CHECK:STDOUT: %int_65: %char = int_value 65 [concrete] // CHECK:STDOUT: %int_49: %char = int_value 49 [concrete] @@ -1518,7 +1518,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.63d = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.2ff = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1526,7 +1526,7 @@ fn F() { // CHECK:STDOUT: %char.loc8: type = type_literal constants.%char [concrete = constants.%char] // CHECK:STDOUT: %a: %char = value_binding a, %M_LOWERCASE.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.63d = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.2ff = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1534,7 +1534,7 @@ fn F() { // CHECK:STDOUT: %char.loc9: type = type_literal constants.%char [concrete = constants.%char] // CHECK:STDOUT: %b: %char = value_binding b, %M_UPPERCASE.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.63d = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.2ff = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1542,7 +1542,7 @@ fn F() { // CHECK:STDOUT: %char.loc10: type = type_literal constants.%char [concrete = constants.%char] // CHECK:STDOUT: %c: %char = value_binding c, %M_DIGIT.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.63d = value_binding_pattern d [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.2ff = value_binding_pattern d [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1550,7 +1550,7 @@ fn F() { // CHECK:STDOUT: %char.loc11: type = type_literal constants.%char [concrete = constants.%char] // CHECK:STDOUT: %d: %char = value_binding d, %M_SPACE.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %e.patt: %pattern_type.63d = value_binding_pattern e [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.2ff = value_binding_pattern e [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc12: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1558,7 +1558,7 @@ fn F() { // CHECK:STDOUT: %char.loc12: type = type_literal constants.%char [concrete = constants.%char] // CHECK:STDOUT: %e: %char = value_binding e, %M_TAB.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %f.patt: %pattern_type.63d = value_binding_pattern f [concrete] +// CHECK:STDOUT: %f.patt: %pattern_type.2ff = value_binding_pattern f [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc13: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1572,11 +1572,11 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %char: type = class_type @Char [concrete] -// CHECK:STDOUT: %pattern_type.63d: type = pattern_type %char [concrete] +// CHECK:STDOUT: %pattern_type.2ff: type = pattern_type %char [concrete] // CHECK:STDOUT: %int_97: %char = int_value 97 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_98: %i32 = int_value 98 [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] @@ -1594,7 +1594,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.63d = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.2ff = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1602,7 +1602,7 @@ fn F() { // CHECK:STDOUT: %char.loc8: type = type_literal constants.%char [concrete = constants.%char] // CHECK:STDOUT: %a: %char = value_binding a, %M_CONDITIONAL.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1627,7 +1627,7 @@ fn F() { // CHECK:STDOUT: %false: bool = bool_literal false [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_1: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %int_0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } @@ -1715,7 +1715,7 @@ fn F() { // CHECK:STDOUT: %.loc16: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %i: bool = value_binding i, %M_COMPLEX.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %j.patt: %pattern_type.104 = value_binding_pattern j [concrete] +// CHECK:STDOUT: %j.patt: %pattern_type.6b6 = value_binding_pattern j [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc18: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1723,7 +1723,7 @@ fn F() { // CHECK:STDOUT: %i32.loc18: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %j: %i32 = value_binding j, %M_ONE.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %k.patt: %pattern_type.104 = value_binding_pattern k [concrete] +// CHECK:STDOUT: %k.patt: %pattern_type.6b6 = value_binding_pattern k [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1744,39 +1744,39 @@ fn F() { // CHECK:STDOUT: %uninit: %Cpp.nullptr_t = uninitialized_value [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.21f: = lookup_impl_witness %ptr.e8f, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.3b3: %Destroy.type = facet_value %ptr.e8f, (%Destroy.lookup_impl_witness.21f) [symbolic] -// CHECK:STDOUT: %MaybeUnformed.d10: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.3b3) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.type.da2: type = fn_type @ptr.as.OptionalStorage.impl.None, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.41b: %ptr.as.OptionalStorage.impl.None.type.da2 = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.2: = custom_witness (%Destroy.Op.2dd605.2), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.2a8: %Destroy.type = facet_value %ptr.847, (%custom_witness.e20f1f.2) [concrete] -// CHECK:STDOUT: %MaybeUnformed.088: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.2a8) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.9f1: = impl_witness imports.%OptionalStorage.impl_witness_table.885, @ptr.as.OptionalStorage.impl(%i32) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.af7: %OptionalStorage.type = facet_value %ptr.847, (%OptionalStorage.impl_witness.9f1) [concrete] -// CHECK:STDOUT: %Optional.411: type = class_type @Optional, @Optional(%OptionalStorage.facet.af7) [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: %ptr.as.OptionalStorage.impl.None.type.703: type = fn_type @ptr.as.OptionalStorage.impl.None, @ptr.as.OptionalStorage.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.467: %ptr.as.OptionalStorage.impl.None.type.703 = 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: %OptionalStorage.impl_witness.734: = impl_witness imports.%OptionalStorage.impl_witness_table.aa4, @ptr.as.OptionalStorage.impl(%i32) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.194: %OptionalStorage.type = facet_value %ptr.d08, (%OptionalStorage.impl_witness.734) [concrete] +// CHECK:STDOUT: %Optional.a18: type = class_type @Optional, @Optional(%OptionalStorage.facet.194) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.878: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.411)> [concrete] -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.f00: type = fn_type @Cpp.nullptr_t.as.ImplicitAs.impl.Convert, @Cpp.nullptr_t.as.ImplicitAs.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.b8c: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.f00 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.696: = impl_witness imports.%ImplicitAs.impl_witness_table.441, @Cpp.nullptr_t.as.ImplicitAs.impl(%i32) [concrete] -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.cc1: type = fn_type @Cpp.nullptr_t.as.ImplicitAs.impl.Convert, @Cpp.nullptr_t.as.ImplicitAs.impl(%i32) [concrete] -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.9b7: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.cc1 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.878 = facet_value %Cpp.nullptr_t, (%ImplicitAs.impl_witness.696) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.4c9: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.411, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.f0e: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.4c9, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.bound: = bound_method %uninit, %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.9b7 [concrete] -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.9b7, @Cpp.nullptr_t.as.ImplicitAs.impl.Convert(%i32) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.afa: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.a18)> [concrete] +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.a15: type = fn_type @Cpp.nullptr_t.as.ImplicitAs.impl.Convert, @Cpp.nullptr_t.as.ImplicitAs.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.240: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.a15 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.278: = impl_witness imports.%ImplicitAs.impl_witness_table.840, @Cpp.nullptr_t.as.ImplicitAs.impl(%i32) [concrete] +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.c54: type = fn_type @Cpp.nullptr_t.as.ImplicitAs.impl.Convert, @Cpp.nullptr_t.as.ImplicitAs.impl(%i32) [concrete] +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.41f: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.c54 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.afa = facet_value %Cpp.nullptr_t, (%ImplicitAs.impl_witness.278) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.636: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.a18, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.992: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.636, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.bound: = bound_method %uninit, %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.41f [concrete] +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.41f, @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.790b3b.4: type = fn_type @Destroy.Op.loc11_14.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc11_14.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1786,27 +1786,27 @@ fn F() { // 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.c1a: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.d10)] -// CHECK:STDOUT: %Core.import_ref.d20: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.None.type (%ptr.as.OptionalStorage.impl.None.type.da2) = 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.41b)] -// CHECK:STDOUT: %Core.import_ref.97e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.b33 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.d18 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.4ad = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.885 = impl_witness_table (%Core.import_ref.c1a, %Core.import_ref.d20, %Core.import_ref.97e, %Core.import_ref.b33, %Core.import_ref.d18, %Core.import_ref.4ad), @ptr.as.OptionalStorage.impl [concrete] +// 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.df2: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.None.type (%ptr.as.OptionalStorage.impl.None.type.703) = 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.467)] +// CHECK:STDOUT: %Core.import_ref.a6e = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.274 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.358 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.db3 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.aa4 = impl_witness_table (%Core.import_ref.509, %Core.import_ref.df2, %Core.import_ref.a6e, %Core.import_ref.274, %Core.import_ref.358, %Core.import_ref.db3), @ptr.as.OptionalStorage.impl [concrete] // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc11_24.1: type = splice_block %Optional [concrete = constants.%Optional.411] { +// CHECK:STDOUT: %.loc11_24.1: type = splice_block %Optional [concrete = constants.%Optional.a18] { // CHECK:STDOUT: -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.847, (constants.%OptionalStorage.impl_witness.9f1) [concrete = constants.%OptionalStorage.facet.af7] -// CHECK:STDOUT: %.loc11_24.2: %OptionalStorage.type = converted constants.%ptr.847, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.af7] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.af7) [concrete = constants.%Optional.411] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.d08, (constants.%OptionalStorage.impl_witness.734) [concrete = constants.%OptionalStorage.facet.194] +// CHECK:STDOUT: %.loc11_24.2: %OptionalStorage.type = converted constants.%ptr.d08, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.194] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.194) [concrete = constants.%Optional.a18] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.3fc: @Cpp.nullptr_t.as.ImplicitAs.impl.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type (%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.f00) = import_ref Core//prelude/types/cpp/nullptr, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.nullptr_t.as.ImplicitAs.impl.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert (constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.b8c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.441 = impl_witness_table (%Core.import_ref.3fc), @Cpp.nullptr_t.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.0ca: @Cpp.nullptr_t.as.ImplicitAs.impl.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type (%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.a15) = import_ref Core//prelude/types/cpp/nullptr, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.nullptr_t.as.ImplicitAs.impl.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert (constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.240)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.840 = impl_witness_table (%Core.import_ref.0ca), @Cpp.nullptr_t.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -1816,27 +1816,27 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc11_11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: // CHECK:STDOUT: %MyNullPtr.ref: %Cpp.nullptr_t = name_ref MyNullPtr, %uninit [concrete = constants.%uninit] -// CHECK:STDOUT: %impl.elem0: %.f0e = impl_witness_access constants.%ImplicitAs.impl_witness.696, element0 [concrete = constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.9b7] +// CHECK:STDOUT: %impl.elem0: %.992 = impl_witness_access constants.%ImplicitAs.impl_witness.278, element0 [concrete = constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.41f] // CHECK:STDOUT: %bound_method.loc11_14.1: = bound_method %MyNullPtr.ref, %impl.elem0 [concrete = constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Cpp.nullptr_t.as.ImplicitAs.impl.Convert(constants.%i32) [concrete = constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_14.2: = bound_method %MyNullPtr.ref, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call: init %Optional.411 = call %bound_method.loc11_14.2(%MyNullPtr.ref) -// CHECK:STDOUT: %.loc11_14.1: init %Optional.411 = converted %MyNullPtr.ref, %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %.loc11_14.2: ref %Optional.411 = temporary_storage -// CHECK:STDOUT: %.loc11_14.3: ref %Optional.411 = temporary %.loc11_14.2, %.loc11_14.1 -// CHECK:STDOUT: %.loc11_14.4: %Optional.411 = acquire_value %.loc11_14.3 +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call: init %Optional.a18 = call %bound_method.loc11_14.2(%MyNullPtr.ref) +// CHECK:STDOUT: %.loc11_14.1: init %Optional.a18 = converted %MyNullPtr.ref, %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %.loc11_14.2: ref %Optional.a18 = temporary_storage +// CHECK:STDOUT: %.loc11_14.3: ref %Optional.a18 = temporary %.loc11_14.2, %.loc11_14.1 +// CHECK:STDOUT: %.loc11_14.4: %Optional.a18 = 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.2dd605.4 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc11_14.3, constants.%Destroy.Op.1a2547.4 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc11_14.3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_14.1(%self.param: ref %MaybeUnformed.088) { +// CHECK:STDOUT: fn @Destroy.Op.loc11_14.1(%self.param: ref %MaybeUnformed.b84) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_14.2(%self.param: ref %Optional.411) { +// CHECK:STDOUT: fn @Destroy.Op.loc11_14.2(%self.param: ref %Optional.a18) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1878,9 +1878,9 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %const: type = const_type %i32 [concrete] -// CHECK:STDOUT: %pattern_type.68c: type = pattern_type %const [concrete] +// CHECK:STDOUT: %pattern_type.ed1: type = pattern_type %const [concrete] // CHECK:STDOUT: %a.var: ref %i32 = var imports.%a.var_patt [concrete] // CHECK:STDOUT: %int_1: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -1890,15 +1890,15 @@ fn F() { // CHECK:STDOUT: .M_CONSTEXPR_INT = %a.var // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %a.patt: %pattern_type.68c = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.68c = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.ed1 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.ed1 = var_pattern %a.patt [concrete] // CHECK:STDOUT: %a.var: ref %const = var %a.var_patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1919,8 +1919,8 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %const: type = const_type %i32 [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %const [concrete] -// CHECK:STDOUT: %pattern_type.9ec: type = pattern_type %ptr [concrete] -// CHECK:STDOUT: %pattern_type.68c: type = pattern_type %const [concrete] +// CHECK:STDOUT: %pattern_type.8c1: type = pattern_type %ptr [concrete] +// CHECK:STDOUT: %pattern_type.ed1: type = pattern_type %const [concrete] // CHECK:STDOUT: %addr: %ptr = addr_of imports.%n.var [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1929,14 +1929,14 @@ fn F() { // CHECK:STDOUT: .N = %n.var // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %n.patt: %pattern_type.68c = ref_binding_pattern n [concrete] -// CHECK:STDOUT: %n.var_patt: %pattern_type.68c = var_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.ed1 = ref_binding_pattern n [concrete] +// CHECK:STDOUT: %n.var_patt: %pattern_type.ed1 = var_pattern %n.patt [concrete] // CHECK:STDOUT: %n.var: ref %const = var %n.var_patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.9ec = value_binding_pattern p [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.8c1 = value_binding_pattern p [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc10: type = splice_block %ptr [concrete = constants.%ptr] { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -1960,7 +1960,7 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_7: %i32 = int_value 7 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1974,7 +1974,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.104 = value_binding_pattern i [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.6b6 = value_binding_pattern i [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -1989,7 +1989,7 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_2: %i32 = int_value 2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2003,7 +2003,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -2018,7 +2018,7 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_2: %i32 = int_value 2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2032,7 +2032,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -2047,22 +2047,22 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2070,11 +2070,11 @@ fn F() { // CHECK:STDOUT: .m = %v.var // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %v.patt: %pattern_type.104 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.104 = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.6b6 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.6b6 = var_pattern %v.patt [concrete] // CHECK:STDOUT: %v.var: ref %i32 = var %v.var_patt [concrete] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -2083,12 +2083,12 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: %m.ref: ref %i32 = name_ref m, imports.%v.var [concrete = imports.%v.var] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc10_9.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_9.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc10_9.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc10: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.228] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc10_9.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc10: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.295] // CHECK:STDOUT: assign %m.ref, %.loc10 // CHECK:STDOUT: // CHECK:STDOUT: } @@ -2099,39 +2099,39 @@ fn F() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %A: type = class_type @A [concrete] -// CHECK:STDOUT: %pattern_type.aa6: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.3fa: type = pattern_type %A [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %B [concrete] // CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %i32 [concrete] -// CHECK:STDOUT: %.e8d: ref %B = class_element_access imports.%a.var, element0 [concrete] -// CHECK:STDOUT: %.ed7: ref %i32 = class_element_access %.e8d, element0 [concrete] +// CHECK:STDOUT: %.135: ref %B = class_element_access imports.%a.var, element0 [concrete] +// CHECK:STDOUT: %.47b: ref %i32 = class_element_access %.135, element0 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { -// CHECK:STDOUT: .m = constants.%.ed7 +// CHECK:STDOUT: .m = constants.%.47b // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %a.patt: %pattern_type.aa6 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.aa6 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.3fa = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.3fa = var_pattern %a.patt [concrete] // CHECK:STDOUT: %a.var: ref %A = var %a.var_patt [concrete] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -2139,17 +2139,17 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: // CHECK:STDOUT: %b.ref: %A.elem = name_ref b, @A.%.1 [concrete = @A.%.1] -// CHECK:STDOUT: %.loc17_6.1: ref %B = class_element_access imports.%a.var, element0 [concrete = constants.%.e8d] +// CHECK:STDOUT: %.loc17_6.1: ref %B = class_element_access imports.%a.var, element0 [concrete = constants.%.135] // CHECK:STDOUT: %c.ref: %B.elem = name_ref c, @B.%.1 [concrete = @B.%.1] -// CHECK:STDOUT: %.loc17_6.2: ref %i32 = class_element_access %.loc17_6.1, element0 [concrete = constants.%.ed7] -// CHECK:STDOUT: %m.ref: ref %i32 = name_ref m, constants.%.ed7 [concrete = constants.%.ed7] +// CHECK:STDOUT: %.loc17_6.2: ref %i32 = class_element_access %.loc17_6.1, element0 [concrete = constants.%.47b] +// CHECK:STDOUT: %m.ref: ref %i32 = name_ref m, constants.%.47b [concrete = constants.%.47b] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc17_9.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_9.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc17_9.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc17_9: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.228] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc17_9.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc17_9: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.295] // CHECK:STDOUT: assign %m.ref, %.loc17_9 // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/namespace/import.carbon b/toolchain/check/testdata/interop/cpp/namespace/import.carbon index 488ab749db78..6b1820b6233d 100644 --- a/toolchain/check/testdata/interop/cpp/namespace/import.carbon +++ b/toolchain/check/testdata/interop/cpp/namespace/import.carbon @@ -501,7 +501,7 @@ fn F() { // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %X: type = class_type @X [concrete] -// CHECK:STDOUT: %ptr.603: type = ptr_type %X [concrete] +// CHECK:STDOUT: %ptr.614: type = ptr_type %X [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %X.cpp_destructor.type: type = fn_type @X.cpp_destructor [concrete] @@ -526,7 +526,7 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_11.1: ref %X = temporary_storage -// CHECK:STDOUT: %addr: %ptr.603 = addr_of %.loc8_11.1 +// CHECK:STDOUT: %addr: %ptr.614 = addr_of %.loc8_11.1 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: %.loc8_11.2: init %X to %.loc8_11.1 = mark_in_place_init %foo__carbon_thunk.call // CHECK:STDOUT: %.loc8_11.3: ref %X = temporary %.loc8_11.1, %.loc8_11.2 diff --git a/toolchain/check/testdata/interop/cpp/operators/arithmetic_operators.carbon b/toolchain/check/testdata/interop/cpp/operators/arithmetic_operators.carbon index 71aa110c2e00..53d1fc235b2a 100644 --- a/toolchain/check/testdata/interop/cpp/operators/arithmetic_operators.carbon +++ b/toolchain/check/testdata/interop/cpp/operators/arithmetic_operators.carbon @@ -310,1418 +310,1418 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Result: %Destroy.type = symbolic_binding Result, 0 [symbolic] -// CHECK:STDOUT: %U.99e: %Destroy.type = symbolic_binding U, 1 [symbolic] +// CHECK:STDOUT: %U.f40: %Destroy.type = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Other: type = symbolic_binding Other, 0 [symbolic] -// CHECK:STDOUT: %AddWith.type.893: type = facet_type <@AddWith.1, @AddWith.1(%Other)> [symbolic] -// CHECK:STDOUT: %Self.66b: %AddWith.type.893 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %AddWith.assoc_type.5da: type = assoc_entity_type @AddWith.1, @AddWith.1(%Other) [symbolic] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.c45: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Other, %Self.66b) [symbolic] -// CHECK:STDOUT: %AddWith.WithSelf.Op.2f3: %AddWith.WithSelf.Op.type.c45 = struct_value () [symbolic] -// CHECK:STDOUT: %U.as_type.f7f: type = facet_access_type %U.99e [symbolic] -// CHECK:STDOUT: %AddWith.type.ad2: type = facet_type <@AddWith.1, @AddWith.1(%U.as_type.f7f)> [symbolic] -// CHECK:STDOUT: %facet_type.4ec: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%U.as_type.f7f)> [symbolic] -// CHECK:STDOUT: %.Self.53a: %facet_type.4ec = symbolic_binding .Self [symbolic] -// CHECK:STDOUT: %AddWith.assoc_type.c6c: type = assoc_entity_type @AddWith.1, @AddWith.1(%U.as_type.f7f) [symbolic] -// CHECK:STDOUT: %assoc0.35c: %AddWith.assoc_type.c6c = assoc_entity element0, imports.%Core.import_ref.1dd [symbolic] -// CHECK:STDOUT: %assoc1.d93: %AddWith.assoc_type.c6c = assoc_entity element1, imports.%Core.import_ref.29ff [symbolic] -// CHECK:STDOUT: %require_complete.3ac: = require_complete_type %facet_type.4ec [symbolic] -// CHECK:STDOUT: %.Self.as_type.626: type = facet_access_type %.Self.53a [symbolic] -// CHECK:STDOUT: %AddWith.lookup_impl_witness.46e: = lookup_impl_witness %.Self.53a, @AddWith.1, @AddWith.1(%U.as_type.f7f) [symbolic] -// CHECK:STDOUT: %impl.elem0.851: type = impl_witness_access %AddWith.lookup_impl_witness.46e, element0 [symbolic] +// CHECK:STDOUT: %AddWith.type.7e9: type = facet_type <@AddWith.1, @AddWith.1(%Other)> [symbolic] +// CHECK:STDOUT: %Self.96a: %AddWith.type.7e9 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %AddWith.assoc_type.588: type = assoc_entity_type @AddWith.1, @AddWith.1(%Other) [symbolic] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.28e: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Other, %Self.96a) [symbolic] +// CHECK:STDOUT: %AddWith.WithSelf.Op.eab: %AddWith.WithSelf.Op.type.28e = struct_value () [symbolic] +// CHECK:STDOUT: %U.as_type.b61: type = facet_access_type %U.f40 [symbolic] +// CHECK:STDOUT: %AddWith.type.9da: type = facet_type <@AddWith.1, @AddWith.1(%U.as_type.b61)> [symbolic] +// CHECK:STDOUT: %facet_type.b1e: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%U.as_type.b61)> [symbolic] +// CHECK:STDOUT: %.Self.d6f: %facet_type.b1e = symbolic_binding .Self [symbolic] +// CHECK:STDOUT: %AddWith.assoc_type.bc8: type = assoc_entity_type @AddWith.1, @AddWith.1(%U.as_type.b61) [symbolic] +// CHECK:STDOUT: %assoc0.21f: %AddWith.assoc_type.bc8 = assoc_entity element0, imports.%Core.import_ref.91f8 [symbolic] +// CHECK:STDOUT: %assoc1.13e: %AddWith.assoc_type.bc8 = assoc_entity element1, imports.%Core.import_ref.3cf [symbolic] +// CHECK:STDOUT: %require_complete.c7d: = require_complete_type %facet_type.b1e [symbolic] +// CHECK:STDOUT: %.Self.as_type.38e: type = facet_access_type %.Self.d6f [symbolic] +// CHECK:STDOUT: %AddWith.lookup_impl_witness.29f: = lookup_impl_witness %.Self.d6f, @AddWith.1, @AddWith.1(%U.as_type.b61) [symbolic] +// CHECK:STDOUT: %impl.elem0.8bb: type = impl_witness_access %AddWith.lookup_impl_witness.29f, element0 [symbolic] // CHECK:STDOUT: %Result.as_type: type = facet_access_type %Result [symbolic] -// CHECK:STDOUT: %facet_type.cac: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%U.as_type.f7f) where %impl.elem0.851 = %Result.as_type> [symbolic] -// CHECK:STDOUT: %pattern_type.bcc: type = pattern_type %facet_type.cac [symbolic] -// CHECK:STDOUT: %T.23b: %facet_type.cac = symbolic_binding T, 2 [symbolic] -// CHECK:STDOUT: %pattern_type.227a41.2: type = pattern_type %Result.as_type [symbolic] -// CHECK:STDOUT: %T.as_type.46a: type = facet_access_type %T.23b [symbolic] -// CHECK:STDOUT: %pattern_type.d37: type = pattern_type %T.as_type.46a [symbolic] -// CHECK:STDOUT: %pattern_type.87c: type = pattern_type %U.as_type.f7f [symbolic] -// CHECK:STDOUT: %require_complete.3dc: = require_complete_type %AddWith.type.ad2 [symbolic] -// CHECK:STDOUT: %assoc1.fdf: %AddWith.assoc_type.5da = assoc_entity element1, imports.%Core.import_ref.a1e [symbolic] -// CHECK:STDOUT: %AddWith.lookup_impl_witness.e7e: = lookup_impl_witness %T.23b, @AddWith.1, @AddWith.1(%U.as_type.f7f) [symbolic] -// CHECK:STDOUT: %AddWith.facet.c8e: %AddWith.type.ad2 = facet_value %T.as_type.46a, (%AddWith.lookup_impl_witness.e7e) [symbolic] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.12d: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%U.as_type.f7f, %AddWith.facet.c8e) [symbolic] -// CHECK:STDOUT: %.ac7: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.12d, %AddWith.facet.c8e [symbolic] -// CHECK:STDOUT: %impl.elem1.f9d: %.ac7 = impl_witness_access %AddWith.lookup_impl_witness.e7e, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.8f2: = specific_impl_function %impl.elem1.f9d, @AddWith.WithSelf.Op(%U.as_type.f7f, %AddWith.facet.c8e) [symbolic] +// CHECK:STDOUT: %facet_type.096: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%U.as_type.b61) where %impl.elem0.8bb = %Result.as_type> [symbolic] +// CHECK:STDOUT: %pattern_type.3fb: type = pattern_type %facet_type.096 [symbolic] +// CHECK:STDOUT: %T.200: %facet_type.096 = symbolic_binding T, 2 [symbolic] +// CHECK:STDOUT: %pattern_type.f4e485.2: type = pattern_type %Result.as_type [symbolic] +// CHECK:STDOUT: %T.as_type.606: type = facet_access_type %T.200 [symbolic] +// CHECK:STDOUT: %pattern_type.82c: type = pattern_type %T.as_type.606 [symbolic] +// CHECK:STDOUT: %pattern_type.753: type = pattern_type %U.as_type.b61 [symbolic] +// CHECK:STDOUT: %require_complete.15e: = require_complete_type %AddWith.type.9da [symbolic] +// CHECK:STDOUT: %assoc1.57d: %AddWith.assoc_type.588 = assoc_entity element1, imports.%Core.import_ref.9768 [symbolic] +// CHECK:STDOUT: %AddWith.lookup_impl_witness.8b3: = lookup_impl_witness %T.200, @AddWith.1, @AddWith.1(%U.as_type.b61) [symbolic] +// CHECK:STDOUT: %AddWith.facet.fc9: %AddWith.type.9da = facet_value %T.as_type.606, (%AddWith.lookup_impl_witness.8b3) [symbolic] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.eb7: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%U.as_type.b61, %AddWith.facet.fc9) [symbolic] +// CHECK:STDOUT: %.012e: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.eb7, %AddWith.facet.fc9 [symbolic] +// CHECK:STDOUT: %impl.elem1.0c1: %.012e = impl_witness_access %AddWith.lookup_impl_witness.8b3, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.95a: = specific_impl_function %impl.elem1.0c1, @AddWith.WithSelf.Op(%U.as_type.b61, %AddWith.facet.fc9) [symbolic] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Result, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.6304ea.2: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Result) [symbolic] -// CHECK:STDOUT: %.543: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.6304ea.2, %Result [symbolic] -// CHECK:STDOUT: %impl.elem0.531: %.543 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.010: = specific_impl_function %impl.elem0.531, @Destroy.WithSelf.Op(%Result) [symbolic] -// CHECK:STDOUT: %SubWith.type.92e: type = facet_type <@SubWith.1, @SubWith.1(%Other)> [symbolic] -// CHECK:STDOUT: %Self.cc1: %SubWith.type.92e = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %SubWith.assoc_type.72b: type = assoc_entity_type @SubWith.1, @SubWith.1(%Other) [symbolic] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.7da: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Other, %Self.cc1) [symbolic] -// CHECK:STDOUT: %SubWith.WithSelf.Op.bd5: %SubWith.WithSelf.Op.type.7da = struct_value () [symbolic] -// CHECK:STDOUT: %SubWith.type.394: type = facet_type <@SubWith.1, @SubWith.1(%U.as_type.f7f)> [symbolic] -// CHECK:STDOUT: %facet_type.c40: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%U.as_type.f7f)> [symbolic] -// CHECK:STDOUT: %.Self.f02: %facet_type.c40 = symbolic_binding .Self [symbolic] -// CHECK:STDOUT: %SubWith.assoc_type.767: type = assoc_entity_type @SubWith.1, @SubWith.1(%U.as_type.f7f) [symbolic] -// CHECK:STDOUT: %assoc0.705: %SubWith.assoc_type.767 = assoc_entity element0, imports.%Core.import_ref.391 [symbolic] -// CHECK:STDOUT: %assoc1.edb: %SubWith.assoc_type.767 = assoc_entity element1, imports.%Core.import_ref.940 [symbolic] -// CHECK:STDOUT: %require_complete.f69: = require_complete_type %facet_type.c40 [symbolic] -// CHECK:STDOUT: %.Self.as_type.dc7: type = facet_access_type %.Self.f02 [symbolic] -// CHECK:STDOUT: %SubWith.lookup_impl_witness.54d: = lookup_impl_witness %.Self.f02, @SubWith.1, @SubWith.1(%U.as_type.f7f) [symbolic] -// CHECK:STDOUT: %impl.elem0.67e: type = impl_witness_access %SubWith.lookup_impl_witness.54d, element0 [symbolic] -// CHECK:STDOUT: %facet_type.98a: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%U.as_type.f7f) where %impl.elem0.67e = %Result.as_type> [symbolic] -// CHECK:STDOUT: %pattern_type.054: type = pattern_type %facet_type.98a [symbolic] -// CHECK:STDOUT: %T.4a2: %facet_type.98a = symbolic_binding T, 2 [symbolic] -// CHECK:STDOUT: %T.as_type.330: type = facet_access_type %T.4a2 [symbolic] -// CHECK:STDOUT: %pattern_type.2b7: type = pattern_type %T.as_type.330 [symbolic] -// CHECK:STDOUT: %require_complete.30c: = require_complete_type %SubWith.type.394 [symbolic] -// CHECK:STDOUT: %assoc1.e6a: %SubWith.assoc_type.72b = assoc_entity element1, imports.%Core.import_ref.e2a [symbolic] -// CHECK:STDOUT: %SubWith.lookup_impl_witness.031: = lookup_impl_witness %T.4a2, @SubWith.1, @SubWith.1(%U.as_type.f7f) [symbolic] -// CHECK:STDOUT: %SubWith.facet.2d1: %SubWith.type.394 = facet_value %T.as_type.330, (%SubWith.lookup_impl_witness.031) [symbolic] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.496: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%U.as_type.f7f, %SubWith.facet.2d1) [symbolic] -// CHECK:STDOUT: %.754: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.496, %SubWith.facet.2d1 [symbolic] -// CHECK:STDOUT: %impl.elem1.a03: %.754 = impl_witness_access %SubWith.lookup_impl_witness.031, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.069: = specific_impl_function %impl.elem1.a03, @SubWith.WithSelf.Op(%U.as_type.f7f, %SubWith.facet.2d1) [symbolic] -// CHECK:STDOUT: %MulWith.type.98b: type = facet_type <@MulWith.1, @MulWith.1(%Other)> [symbolic] -// CHECK:STDOUT: %Self.0e2: %MulWith.type.98b = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %MulWith.assoc_type.634: type = assoc_entity_type @MulWith.1, @MulWith.1(%Other) [symbolic] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.309: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Other, %Self.0e2) [symbolic] -// CHECK:STDOUT: %MulWith.WithSelf.Op.56c: %MulWith.WithSelf.Op.type.309 = struct_value () [symbolic] -// CHECK:STDOUT: %MulWith.type.195: type = facet_type <@MulWith.1, @MulWith.1(%U.as_type.f7f)> [symbolic] -// CHECK:STDOUT: %facet_type.e45: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%U.as_type.f7f)> [symbolic] -// CHECK:STDOUT: %.Self.117: %facet_type.e45 = symbolic_binding .Self [symbolic] -// CHECK:STDOUT: %MulWith.assoc_type.fff: type = assoc_entity_type @MulWith.1, @MulWith.1(%U.as_type.f7f) [symbolic] -// CHECK:STDOUT: %assoc0.dfc: %MulWith.assoc_type.fff = assoc_entity element0, imports.%Core.import_ref.41e [symbolic] -// CHECK:STDOUT: %assoc1.bde: %MulWith.assoc_type.fff = assoc_entity element1, imports.%Core.import_ref.d23 [symbolic] -// CHECK:STDOUT: %require_complete.aad: = require_complete_type %facet_type.e45 [symbolic] -// CHECK:STDOUT: %.Self.as_type.91e: type = facet_access_type %.Self.117 [symbolic] -// CHECK:STDOUT: %MulWith.lookup_impl_witness.bd7: = lookup_impl_witness %.Self.117, @MulWith.1, @MulWith.1(%U.as_type.f7f) [symbolic] -// CHECK:STDOUT: %impl.elem0.e5b: type = impl_witness_access %MulWith.lookup_impl_witness.bd7, element0 [symbolic] -// CHECK:STDOUT: %facet_type.a59: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%U.as_type.f7f) where %impl.elem0.e5b = %Result.as_type> [symbolic] -// CHECK:STDOUT: %pattern_type.4b6: type = pattern_type %facet_type.a59 [symbolic] -// CHECK:STDOUT: %T.2c2: %facet_type.a59 = symbolic_binding T, 2 [symbolic] -// CHECK:STDOUT: %T.as_type.198: type = facet_access_type %T.2c2 [symbolic] -// CHECK:STDOUT: %pattern_type.2a1: type = pattern_type %T.as_type.198 [symbolic] -// CHECK:STDOUT: %require_complete.01c: = require_complete_type %MulWith.type.195 [symbolic] -// CHECK:STDOUT: %assoc1.14f: %MulWith.assoc_type.634 = assoc_entity element1, imports.%Core.import_ref.087 [symbolic] -// CHECK:STDOUT: %MulWith.lookup_impl_witness.e5c: = lookup_impl_witness %T.2c2, @MulWith.1, @MulWith.1(%U.as_type.f7f) [symbolic] -// CHECK:STDOUT: %MulWith.facet.eb2: %MulWith.type.195 = facet_value %T.as_type.198, (%MulWith.lookup_impl_witness.e5c) [symbolic] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.288: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%U.as_type.f7f, %MulWith.facet.eb2) [symbolic] -// CHECK:STDOUT: %.a85: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.288, %MulWith.facet.eb2 [symbolic] -// CHECK:STDOUT: %impl.elem1.447: %.a85 = impl_witness_access %MulWith.lookup_impl_witness.e5c, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.32c: = specific_impl_function %impl.elem1.447, @MulWith.WithSelf.Op(%U.as_type.f7f, %MulWith.facet.eb2) [symbolic] -// CHECK:STDOUT: %DivWith.type.177: type = facet_type <@DivWith.1, @DivWith.1(%Other)> [symbolic] -// CHECK:STDOUT: %Self.7db: %DivWith.type.177 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %DivWith.assoc_type.5b4: type = assoc_entity_type @DivWith.1, @DivWith.1(%Other) [symbolic] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.e6f: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Other, %Self.7db) [symbolic] -// CHECK:STDOUT: %DivWith.WithSelf.Op.908: %DivWith.WithSelf.Op.type.e6f = struct_value () [symbolic] -// CHECK:STDOUT: %DivWith.type.63d: type = facet_type <@DivWith.1, @DivWith.1(%U.as_type.f7f)> [symbolic] -// CHECK:STDOUT: %facet_type.511: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%U.as_type.f7f)> [symbolic] -// CHECK:STDOUT: %.Self.10f: %facet_type.511 = symbolic_binding .Self [symbolic] -// CHECK:STDOUT: %DivWith.assoc_type.e27: type = assoc_entity_type @DivWith.1, @DivWith.1(%U.as_type.f7f) [symbolic] -// CHECK:STDOUT: %assoc0.46e: %DivWith.assoc_type.e27 = assoc_entity element0, imports.%Core.import_ref.e71d [symbolic] -// CHECK:STDOUT: %assoc1.7f9: %DivWith.assoc_type.e27 = assoc_entity element1, imports.%Core.import_ref.e712 [symbolic] -// CHECK:STDOUT: %require_complete.8fe: = require_complete_type %facet_type.511 [symbolic] -// CHECK:STDOUT: %.Self.as_type.151: type = facet_access_type %.Self.10f [symbolic] -// CHECK:STDOUT: %DivWith.lookup_impl_witness.0c0: = lookup_impl_witness %.Self.10f, @DivWith.1, @DivWith.1(%U.as_type.f7f) [symbolic] -// CHECK:STDOUT: %impl.elem0.2d7: type = impl_witness_access %DivWith.lookup_impl_witness.0c0, element0 [symbolic] -// CHECK:STDOUT: %facet_type.5cc: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%U.as_type.f7f) where %impl.elem0.2d7 = %Result.as_type> [symbolic] -// CHECK:STDOUT: %pattern_type.fb6: type = pattern_type %facet_type.5cc [symbolic] -// CHECK:STDOUT: %T.2b9: %facet_type.5cc = symbolic_binding T, 2 [symbolic] -// CHECK:STDOUT: %T.as_type.e49: type = facet_access_type %T.2b9 [symbolic] -// CHECK:STDOUT: %pattern_type.673: type = pattern_type %T.as_type.e49 [symbolic] -// CHECK:STDOUT: %require_complete.be3: = require_complete_type %DivWith.type.63d [symbolic] -// CHECK:STDOUT: %assoc1.9374: %DivWith.assoc_type.5b4 = assoc_entity element1, imports.%Core.import_ref.993 [symbolic] -// CHECK:STDOUT: %DivWith.lookup_impl_witness.2e1: = lookup_impl_witness %T.2b9, @DivWith.1, @DivWith.1(%U.as_type.f7f) [symbolic] -// CHECK:STDOUT: %DivWith.facet.b8f: %DivWith.type.63d = facet_value %T.as_type.e49, (%DivWith.lookup_impl_witness.2e1) [symbolic] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.be6: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%U.as_type.f7f, %DivWith.facet.b8f) [symbolic] -// CHECK:STDOUT: %.42b: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.be6, %DivWith.facet.b8f [symbolic] -// CHECK:STDOUT: %impl.elem1.6f6: %.42b = impl_witness_access %DivWith.lookup_impl_witness.2e1, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.263: = specific_impl_function %impl.elem1.6f6, @DivWith.WithSelf.Op(%U.as_type.f7f, %DivWith.facet.b8f) [symbolic] -// CHECK:STDOUT: %ModWith.type.8cc: type = facet_type <@ModWith.1, @ModWith.1(%Other)> [symbolic] -// CHECK:STDOUT: %Self.310: %ModWith.type.8cc = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ModWith.assoc_type.4a7: type = assoc_entity_type @ModWith.1, @ModWith.1(%Other) [symbolic] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.f6b: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Other, %Self.310) [symbolic] -// CHECK:STDOUT: %ModWith.WithSelf.Op.397: %ModWith.WithSelf.Op.type.f6b = struct_value () [symbolic] -// CHECK:STDOUT: %ModWith.type.125: type = facet_type <@ModWith.1, @ModWith.1(%U.as_type.f7f)> [symbolic] -// CHECK:STDOUT: %facet_type.978: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%U.as_type.f7f)> [symbolic] -// CHECK:STDOUT: %.Self.0e2: %facet_type.978 = symbolic_binding .Self [symbolic] -// CHECK:STDOUT: %ModWith.assoc_type.3d0: type = assoc_entity_type @ModWith.1, @ModWith.1(%U.as_type.f7f) [symbolic] -// CHECK:STDOUT: %assoc0.649: %ModWith.assoc_type.3d0 = assoc_entity element0, imports.%Core.import_ref.327 [symbolic] -// CHECK:STDOUT: %assoc1.3aa: %ModWith.assoc_type.3d0 = assoc_entity element1, imports.%Core.import_ref.104 [symbolic] -// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %facet_type.978 [symbolic] -// CHECK:STDOUT: %.Self.as_type.d0f: type = facet_access_type %.Self.0e2 [symbolic] -// CHECK:STDOUT: %ModWith.lookup_impl_witness.ac5: = lookup_impl_witness %.Self.0e2, @ModWith.1, @ModWith.1(%U.as_type.f7f) [symbolic] -// CHECK:STDOUT: %impl.elem0.50a: type = impl_witness_access %ModWith.lookup_impl_witness.ac5, element0 [symbolic] -// CHECK:STDOUT: %facet_type.c32: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%U.as_type.f7f) where %impl.elem0.50a = %Result.as_type> [symbolic] -// CHECK:STDOUT: %pattern_type.cc0: type = pattern_type %facet_type.c32 [symbolic] -// CHECK:STDOUT: %T.173: %facet_type.c32 = symbolic_binding T, 2 [symbolic] -// CHECK:STDOUT: %T.as_type.105: type = facet_access_type %T.173 [symbolic] -// CHECK:STDOUT: %pattern_type.9c5: type = pattern_type %T.as_type.105 [symbolic] -// CHECK:STDOUT: %require_complete.a64: = require_complete_type %ModWith.type.125 [symbolic] -// CHECK:STDOUT: %assoc1.232: %ModWith.assoc_type.4a7 = assoc_entity element1, imports.%Core.import_ref.bbd [symbolic] -// CHECK:STDOUT: %ModWith.lookup_impl_witness.35d: = lookup_impl_witness %T.173, @ModWith.1, @ModWith.1(%U.as_type.f7f) [symbolic] -// CHECK:STDOUT: %ModWith.facet.132: %ModWith.type.125 = facet_value %T.as_type.105, (%ModWith.lookup_impl_witness.35d) [symbolic] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.942: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%U.as_type.f7f, %ModWith.facet.132) [symbolic] -// CHECK:STDOUT: %.1a3: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.942, %ModWith.facet.132 [symbolic] -// CHECK:STDOUT: %impl.elem1.4de: %.1a3 = impl_witness_access %ModWith.lookup_impl_witness.35d, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.5d3: = specific_impl_function %impl.elem1.4de, @ModWith.WithSelf.Op(%U.as_type.f7f, %ModWith.facet.132) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3ece9.2: type = fn_type @Destroy.WithSelf.Op, @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: %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] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.68d: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Other, %Self.d6b) [symbolic] +// CHECK:STDOUT: %SubWith.WithSelf.Op.97a: %SubWith.WithSelf.Op.type.68d = struct_value () [symbolic] +// CHECK:STDOUT: %SubWith.type.b5d: type = facet_type <@SubWith.1, @SubWith.1(%U.as_type.b61)> [symbolic] +// CHECK:STDOUT: %facet_type.d46: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%U.as_type.b61)> [symbolic] +// CHECK:STDOUT: %.Self.642: %facet_type.d46 = symbolic_binding .Self [symbolic] +// CHECK:STDOUT: %SubWith.assoc_type.3a1: type = assoc_entity_type @SubWith.1, @SubWith.1(%U.as_type.b61) [symbolic] +// CHECK:STDOUT: %assoc0.729: %SubWith.assoc_type.3a1 = assoc_entity element0, imports.%Core.import_ref.190e [symbolic] +// CHECK:STDOUT: %assoc1.8fd: %SubWith.assoc_type.3a1 = assoc_entity element1, imports.%Core.import_ref.3a4 [symbolic] +// CHECK:STDOUT: %require_complete.cda: = require_complete_type %facet_type.d46 [symbolic] +// CHECK:STDOUT: %.Self.as_type.715: type = facet_access_type %.Self.642 [symbolic] +// CHECK:STDOUT: %SubWith.lookup_impl_witness.ce5: = lookup_impl_witness %.Self.642, @SubWith.1, @SubWith.1(%U.as_type.b61) [symbolic] +// CHECK:STDOUT: %impl.elem0.0fb: type = impl_witness_access %SubWith.lookup_impl_witness.ce5, element0 [symbolic] +// CHECK:STDOUT: %facet_type.5a5: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%U.as_type.b61) where %impl.elem0.0fb = %Result.as_type> [symbolic] +// CHECK:STDOUT: %pattern_type.156: type = pattern_type %facet_type.5a5 [symbolic] +// CHECK:STDOUT: %T.967: %facet_type.5a5 = symbolic_binding T, 2 [symbolic] +// CHECK:STDOUT: %T.as_type.b22: type = facet_access_type %T.967 [symbolic] +// CHECK:STDOUT: %pattern_type.000: type = pattern_type %T.as_type.b22 [symbolic] +// CHECK:STDOUT: %require_complete.6ff: = require_complete_type %SubWith.type.b5d [symbolic] +// CHECK:STDOUT: %assoc1.178: %SubWith.assoc_type.b0b = assoc_entity element1, imports.%Core.import_ref.b59 [symbolic] +// CHECK:STDOUT: %SubWith.lookup_impl_witness.07c: = lookup_impl_witness %T.967, @SubWith.1, @SubWith.1(%U.as_type.b61) [symbolic] +// CHECK:STDOUT: %SubWith.facet.44a: %SubWith.type.b5d = facet_value %T.as_type.b22, (%SubWith.lookup_impl_witness.07c) [symbolic] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.1fe: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%U.as_type.b61, %SubWith.facet.44a) [symbolic] +// CHECK:STDOUT: %.fa2: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.1fe, %SubWith.facet.44a [symbolic] +// CHECK:STDOUT: %impl.elem1.fc7: %.fa2 = impl_witness_access %SubWith.lookup_impl_witness.07c, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.3fc: = specific_impl_function %impl.elem1.fc7, @SubWith.WithSelf.Op(%U.as_type.b61, %SubWith.facet.44a) [symbolic] +// CHECK:STDOUT: %MulWith.type.f84: type = facet_type <@MulWith.1, @MulWith.1(%Other)> [symbolic] +// CHECK:STDOUT: %Self.941: %MulWith.type.f84 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %MulWith.assoc_type.7b2: type = assoc_entity_type @MulWith.1, @MulWith.1(%Other) [symbolic] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.176: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Other, %Self.941) [symbolic] +// CHECK:STDOUT: %MulWith.WithSelf.Op.a75: %MulWith.WithSelf.Op.type.176 = struct_value () [symbolic] +// CHECK:STDOUT: %MulWith.type.f02: type = facet_type <@MulWith.1, @MulWith.1(%U.as_type.b61)> [symbolic] +// CHECK:STDOUT: %facet_type.f87: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%U.as_type.b61)> [symbolic] +// CHECK:STDOUT: %.Self.b68: %facet_type.f87 = symbolic_binding .Self [symbolic] +// CHECK:STDOUT: %MulWith.assoc_type.a12: type = assoc_entity_type @MulWith.1, @MulWith.1(%U.as_type.b61) [symbolic] +// CHECK:STDOUT: %assoc0.116: %MulWith.assoc_type.a12 = assoc_entity element0, imports.%Core.import_ref.59c [symbolic] +// CHECK:STDOUT: %assoc1.a0f: %MulWith.assoc_type.a12 = assoc_entity element1, imports.%Core.import_ref.5a0 [symbolic] +// CHECK:STDOUT: %require_complete.0a3: = require_complete_type %facet_type.f87 [symbolic] +// CHECK:STDOUT: %.Self.as_type.d1e: type = facet_access_type %.Self.b68 [symbolic] +// CHECK:STDOUT: %MulWith.lookup_impl_witness.0d7: = lookup_impl_witness %.Self.b68, @MulWith.1, @MulWith.1(%U.as_type.b61) [symbolic] +// CHECK:STDOUT: %impl.elem0.10f: type = impl_witness_access %MulWith.lookup_impl_witness.0d7, element0 [symbolic] +// CHECK:STDOUT: %facet_type.c32: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%U.as_type.b61) where %impl.elem0.10f = %Result.as_type> [symbolic] +// CHECK:STDOUT: %pattern_type.d38: type = pattern_type %facet_type.c32 [symbolic] +// CHECK:STDOUT: %T.546: %facet_type.c32 = symbolic_binding T, 2 [symbolic] +// CHECK:STDOUT: %T.as_type.427: type = facet_access_type %T.546 [symbolic] +// CHECK:STDOUT: %pattern_type.d10: type = pattern_type %T.as_type.427 [symbolic] +// CHECK:STDOUT: %require_complete.861: = require_complete_type %MulWith.type.f02 [symbolic] +// CHECK:STDOUT: %assoc1.8f7: %MulWith.assoc_type.7b2 = assoc_entity element1, imports.%Core.import_ref.955 [symbolic] +// CHECK:STDOUT: %MulWith.lookup_impl_witness.a55: = lookup_impl_witness %T.546, @MulWith.1, @MulWith.1(%U.as_type.b61) [symbolic] +// CHECK:STDOUT: %MulWith.facet.5c8: %MulWith.type.f02 = facet_value %T.as_type.427, (%MulWith.lookup_impl_witness.a55) [symbolic] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.7b0: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%U.as_type.b61, %MulWith.facet.5c8) [symbolic] +// CHECK:STDOUT: %.476: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.7b0, %MulWith.facet.5c8 [symbolic] +// CHECK:STDOUT: %impl.elem1.7c4: %.476 = impl_witness_access %MulWith.lookup_impl_witness.a55, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.57f: = specific_impl_function %impl.elem1.7c4, @MulWith.WithSelf.Op(%U.as_type.b61, %MulWith.facet.5c8) [symbolic] +// CHECK:STDOUT: %DivWith.type.13f: type = facet_type <@DivWith.1, @DivWith.1(%Other)> [symbolic] +// CHECK:STDOUT: %Self.16a: %DivWith.type.13f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %DivWith.assoc_type.d8b: type = assoc_entity_type @DivWith.1, @DivWith.1(%Other) [symbolic] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.0f0: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Other, %Self.16a) [symbolic] +// CHECK:STDOUT: %DivWith.WithSelf.Op.51e: %DivWith.WithSelf.Op.type.0f0 = struct_value () [symbolic] +// CHECK:STDOUT: %DivWith.type.523: type = facet_type <@DivWith.1, @DivWith.1(%U.as_type.b61)> [symbolic] +// CHECK:STDOUT: %facet_type.86cd: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%U.as_type.b61)> [symbolic] +// CHECK:STDOUT: %.Self.10e: %facet_type.86cd = symbolic_binding .Self [symbolic] +// CHECK:STDOUT: %DivWith.assoc_type.cf4: type = assoc_entity_type @DivWith.1, @DivWith.1(%U.as_type.b61) [symbolic] +// CHECK:STDOUT: %assoc0.c57: %DivWith.assoc_type.cf4 = assoc_entity element0, imports.%Core.import_ref.dee [symbolic] +// CHECK:STDOUT: %assoc1.4eb: %DivWith.assoc_type.cf4 = assoc_entity element1, imports.%Core.import_ref.7845 [symbolic] +// CHECK:STDOUT: %require_complete.4d7: = require_complete_type %facet_type.86cd [symbolic] +// CHECK:STDOUT: %.Self.as_type.c52: type = facet_access_type %.Self.10e [symbolic] +// CHECK:STDOUT: %DivWith.lookup_impl_witness.d63: = lookup_impl_witness %.Self.10e, @DivWith.1, @DivWith.1(%U.as_type.b61) [symbolic] +// CHECK:STDOUT: %impl.elem0.df8: type = impl_witness_access %DivWith.lookup_impl_witness.d63, element0 [symbolic] +// CHECK:STDOUT: %facet_type.2f8: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%U.as_type.b61) where %impl.elem0.df8 = %Result.as_type> [symbolic] +// CHECK:STDOUT: %pattern_type.297: type = pattern_type %facet_type.2f8 [symbolic] +// CHECK:STDOUT: %T.040: %facet_type.2f8 = symbolic_binding T, 2 [symbolic] +// CHECK:STDOUT: %T.as_type.a31: type = facet_access_type %T.040 [symbolic] +// CHECK:STDOUT: %pattern_type.126: type = pattern_type %T.as_type.a31 [symbolic] +// CHECK:STDOUT: %require_complete.026: = require_complete_type %DivWith.type.523 [symbolic] +// CHECK:STDOUT: %assoc1.7b1: %DivWith.assoc_type.d8b = assoc_entity element1, imports.%Core.import_ref.8b6 [symbolic] +// CHECK:STDOUT: %DivWith.lookup_impl_witness.df2: = lookup_impl_witness %T.040, @DivWith.1, @DivWith.1(%U.as_type.b61) [symbolic] +// CHECK:STDOUT: %DivWith.facet.ac1: %DivWith.type.523 = facet_value %T.as_type.a31, (%DivWith.lookup_impl_witness.df2) [symbolic] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.cb2: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%U.as_type.b61, %DivWith.facet.ac1) [symbolic] +// CHECK:STDOUT: %.2d3: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.cb2, %DivWith.facet.ac1 [symbolic] +// CHECK:STDOUT: %impl.elem1.254: %.2d3 = impl_witness_access %DivWith.lookup_impl_witness.df2, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.518: = specific_impl_function %impl.elem1.254, @DivWith.WithSelf.Op(%U.as_type.b61, %DivWith.facet.ac1) [symbolic] +// CHECK:STDOUT: %ModWith.type.2e8: type = facet_type <@ModWith.1, @ModWith.1(%Other)> [symbolic] +// CHECK:STDOUT: %Self.0ef: %ModWith.type.2e8 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ModWith.assoc_type.316: type = assoc_entity_type @ModWith.1, @ModWith.1(%Other) [symbolic] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.d14: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Other, %Self.0ef) [symbolic] +// CHECK:STDOUT: %ModWith.WithSelf.Op.9e4: %ModWith.WithSelf.Op.type.d14 = struct_value () [symbolic] +// CHECK:STDOUT: %ModWith.type.937: type = facet_type <@ModWith.1, @ModWith.1(%U.as_type.b61)> [symbolic] +// CHECK:STDOUT: %facet_type.b18: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%U.as_type.b61)> [symbolic] +// CHECK:STDOUT: %.Self.0f7: %facet_type.b18 = symbolic_binding .Self [symbolic] +// CHECK:STDOUT: %ModWith.assoc_type.626: type = assoc_entity_type @ModWith.1, @ModWith.1(%U.as_type.b61) [symbolic] +// CHECK:STDOUT: %assoc0.56e: %ModWith.assoc_type.626 = assoc_entity element0, imports.%Core.import_ref.61a [symbolic] +// CHECK:STDOUT: %assoc1.6d1: %ModWith.assoc_type.626 = assoc_entity element1, imports.%Core.import_ref.b56 [symbolic] +// CHECK:STDOUT: %require_complete.708: = require_complete_type %facet_type.b18 [symbolic] +// CHECK:STDOUT: %.Self.as_type.f55: type = facet_access_type %.Self.0f7 [symbolic] +// CHECK:STDOUT: %ModWith.lookup_impl_witness.4a2: = lookup_impl_witness %.Self.0f7, @ModWith.1, @ModWith.1(%U.as_type.b61) [symbolic] +// CHECK:STDOUT: %impl.elem0.36b: type = impl_witness_access %ModWith.lookup_impl_witness.4a2, element0 [symbolic] +// CHECK:STDOUT: %facet_type.9a0: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%U.as_type.b61) where %impl.elem0.36b = %Result.as_type> [symbolic] +// CHECK:STDOUT: %pattern_type.82f: type = pattern_type %facet_type.9a0 [symbolic] +// CHECK:STDOUT: %T.095: %facet_type.9a0 = symbolic_binding T, 2 [symbolic] +// CHECK:STDOUT: %T.as_type.fcd: type = facet_access_type %T.095 [symbolic] +// CHECK:STDOUT: %pattern_type.2e7: type = pattern_type %T.as_type.fcd [symbolic] +// CHECK:STDOUT: %require_complete.a4a: = require_complete_type %ModWith.type.937 [symbolic] +// CHECK:STDOUT: %assoc1.132: %ModWith.assoc_type.316 = assoc_entity element1, imports.%Core.import_ref.33c [symbolic] +// CHECK:STDOUT: %ModWith.lookup_impl_witness.054: = lookup_impl_witness %T.095, @ModWith.1, @ModWith.1(%U.as_type.b61) [symbolic] +// CHECK:STDOUT: %ModWith.facet.555: %ModWith.type.937 = facet_value %T.as_type.fcd, (%ModWith.lookup_impl_witness.054) [symbolic] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.cfa: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%U.as_type.b61, %ModWith.facet.555) [symbolic] +// CHECK:STDOUT: %.973: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.cfa, %ModWith.facet.555 [symbolic] +// CHECK:STDOUT: %impl.elem1.f20: %.973 = impl_witness_access %ModWith.lookup_impl_witness.054, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.37e: = specific_impl_function %impl.elem1.f20, @ModWith.WithSelf.Op(%U.as_type.b61, %ModWith.facet.555) [symbolic] // CHECK:STDOUT: %Int16: type = class_type @Int16 [concrete] -// CHECK:STDOUT: %pattern_type.802: type = pattern_type %Int16 [concrete] +// CHECK:STDOUT: %pattern_type.785: type = pattern_type %Int16 [concrete] // CHECK:STDOUT: %Int32: type = class_type @Int32 [concrete] -// CHECK:STDOUT: %pattern_type.e9d: type = pattern_type %Int32 [concrete] +// CHECK:STDOUT: %pattern_type.8b4: type = pattern_type %Int32 [concrete] // CHECK:STDOUT: %Int64: type = class_type @Int64 [concrete] -// CHECK:STDOUT: %pattern_type.7b1: type = pattern_type %Int64 [concrete] +// CHECK:STDOUT: %pattern_type.4aa: type = pattern_type %Int64 [concrete] // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] -// CHECK:STDOUT: %pattern_type.e1b: type = pattern_type %i16 [concrete] +// CHECK:STDOUT: %pattern_type.203: type = pattern_type %i16 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %i16.builtin: type = int_type signed, %int_16 [concrete] // CHECK:STDOUT: %complete_type.2da: = complete_type_witness %i16.builtin [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.1: type = fn_type @Int16.Op.1 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.1: %Int16.Op.type.43d658.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.a98c63.1: = custom_witness (%Int16.Op.cc70d5.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.1b8: %Destroy.type = facet_value %Int16, (%custom_witness.a98c63.1) [concrete] -// CHECK:STDOUT: %facet_type.f17: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %.Self.863: %facet_type.f17 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %AddWith.lookup_impl_witness.896: = lookup_impl_witness %.Self.863, @AddWith.1, @AddWith.1(%Int16) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.2d1: type = impl_witness_access %AddWith.lookup_impl_witness.896, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.753: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int16) where %impl.elem0.2d1 = %Int16> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc176_34.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.2: = custom_witness (%Destroy.Op.2dd605.2), @Destroy [concrete] -// CHECK:STDOUT: %AddWith.type.6f4: type = facet_type <@AddWith.1, @AddWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %AddWith.assoc_type.e37: type = assoc_entity_type @AddWith.1, @AddWith.1(%Int16) [concrete] -// CHECK:STDOUT: %assoc0.4ec: %AddWith.assoc_type.e37 = assoc_entity element0, imports.%Core.import_ref.1dd [concrete] -// CHECK:STDOUT: %assoc1.c66: %AddWith.assoc_type.e37 = assoc_entity element1, imports.%Core.import_ref.29ff [concrete] -// CHECK:STDOUT: %Op.type.0b8387.1: type = fn_type @Op.1 [concrete] -// CHECK:STDOUT: %Op.b9c47d.1: %Op.type.0b8387.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.facet.181: %Destroy.type = facet_value %i16, (%custom_witness.e20f1f.2) [concrete] -// CHECK:STDOUT: %custom_witness.604: = custom_witness (%Int16, %Op.b9c47d.1), @AddWith.1, @AddWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.fdd: %facet_type.753 = facet_value %i16, (%custom_witness.e20f1f.2, %custom_witness.604) [concrete] -// CHECK:STDOUT: %complete_type.211: = complete_type_witness %facet_type.f17 [concrete] -// CHECK:STDOUT: %.Self.as_type.db9: type = facet_access_type %.Self.863 [symbolic_self] -// CHECK:STDOUT: %pattern_type.bc4: type = pattern_type %facet_type.753 [concrete] -// CHECK:STDOUT: %facet_type.c80: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %.Self.700: %facet_type.c80 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %SubWith.lookup_impl_witness.e8f: = lookup_impl_witness %.Self.700, @SubWith.1, @SubWith.1(%Int16) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.0b0: type = impl_witness_access %SubWith.lookup_impl_witness.e8f, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.5f5: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int16) where %impl.elem0.0b0 = %Int16> [concrete] -// CHECK:STDOUT: %SubWith.type.8bd: type = facet_type <@SubWith.1, @SubWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.1: type = fn_type @Int16.Op.1 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.1: %Int16.Op.type.83af6e.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.e7a31c.1: = custom_witness (%Int16.Op.4dca31.1), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.2cc: %Destroy.type = facet_value %Int16, (%custom_witness.e7a31c.1) [concrete] +// CHECK:STDOUT: %facet_type.297: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %.Self.120: %facet_type.297 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %AddWith.lookup_impl_witness.560: = lookup_impl_witness %.Self.120, @AddWith.1, @AddWith.1(%Int16) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.7e0: type = impl_witness_access %AddWith.lookup_impl_witness.560, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.376: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int16) where %impl.elem0.7e0 = %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: %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: %custom_witness.248: = custom_witness (%Int16, %Op.72717c.1), @AddWith.1, @AddWith.1(%Int16) [concrete] +// CHECK:STDOUT: %facet_value.b750: %facet_type.376 = facet_value %i16, (%custom_witness.df9cc1.2, %custom_witness.248) [concrete] +// CHECK:STDOUT: %complete_type.a82: = complete_type_witness %facet_type.297 [concrete] +// CHECK:STDOUT: %.Self.as_type.9c7: type = facet_access_type %.Self.120 [symbolic_self] +// CHECK:STDOUT: %pattern_type.48e: type = pattern_type %facet_type.376 [concrete] +// CHECK:STDOUT: %facet_type.b15: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %.Self.4e4: %facet_type.b15 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %SubWith.lookup_impl_witness.780: = lookup_impl_witness %.Self.4e4, @SubWith.1, @SubWith.1(%Int16) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.104: type = impl_witness_access %SubWith.lookup_impl_witness.780, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.2e5: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int16) where %impl.elem0.104 = %Int16> [concrete] +// CHECK:STDOUT: %SubWith.type.b12: type = facet_type <@SubWith.1, @SubWith.1(%Int16)> [concrete] // CHECK:STDOUT: %SubWith.assoc_type.eb8: type = assoc_entity_type @SubWith.1, @SubWith.1(%Int16) [concrete] -// CHECK:STDOUT: %assoc0.8a1: %SubWith.assoc_type.eb8 = assoc_entity element0, imports.%Core.import_ref.391 [concrete] -// CHECK:STDOUT: %assoc1.937f: %SubWith.assoc_type.eb8 = assoc_entity element1, imports.%Core.import_ref.940 [concrete] -// CHECK:STDOUT: %Op.type.0b8387.2: type = fn_type @Op.2 [concrete] -// CHECK:STDOUT: %Op.b9c47d.2: %Op.type.0b8387.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.4c1: = custom_witness (%Int16, %Op.b9c47d.2), @SubWith.1, @SubWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.578: %facet_type.5f5 = facet_value %i16, (%custom_witness.e20f1f.2, %custom_witness.4c1) [concrete] -// CHECK:STDOUT: %complete_type.a74: = complete_type_witness %facet_type.c80 [concrete] -// CHECK:STDOUT: %.Self.as_type.c4d: type = facet_access_type %.Self.700 [symbolic_self] -// CHECK:STDOUT: %pattern_type.4d6: type = pattern_type %facet_type.5f5 [concrete] -// CHECK:STDOUT: %facet_type.d27: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %.Self.e39: %facet_type.d27 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %MulWith.lookup_impl_witness.5e1: = lookup_impl_witness %.Self.e39, @MulWith.1, @MulWith.1(%Int16) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.e54: type = impl_witness_access %MulWith.lookup_impl_witness.5e1, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.9da: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int16) where %impl.elem0.e54 = %Int16> [concrete] -// CHECK:STDOUT: %MulWith.type.c25: type = facet_type <@MulWith.1, @MulWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %MulWith.assoc_type.543: type = assoc_entity_type @MulWith.1, @MulWith.1(%Int16) [concrete] -// CHECK:STDOUT: %assoc0.81e: %MulWith.assoc_type.543 = assoc_entity element0, imports.%Core.import_ref.41e [concrete] -// CHECK:STDOUT: %assoc1.911: %MulWith.assoc_type.543 = assoc_entity element1, imports.%Core.import_ref.d23 [concrete] -// CHECK:STDOUT: %Op.type.0b8387.3: type = fn_type @Op.3 [concrete] -// CHECK:STDOUT: %Op.b9c47d.3: %Op.type.0b8387.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.72a: = custom_witness (%Int16, %Op.b9c47d.3), @MulWith.1, @MulWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.1ee: %facet_type.9da = facet_value %i16, (%custom_witness.e20f1f.2, %custom_witness.72a) [concrete] -// CHECK:STDOUT: %complete_type.aa7: = complete_type_witness %facet_type.d27 [concrete] -// CHECK:STDOUT: %.Self.as_type.87e: type = facet_access_type %.Self.e39 [symbolic_self] -// CHECK:STDOUT: %pattern_type.d31: type = pattern_type %facet_type.9da [concrete] -// CHECK:STDOUT: %facet_type.8eb: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %.Self.467: %facet_type.8eb = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %DivWith.lookup_impl_witness.9bc: = lookup_impl_witness %.Self.467, @DivWith.1, @DivWith.1(%Int16) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.5c6: type = impl_witness_access %DivWith.lookup_impl_witness.9bc, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.7f5: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int16) where %impl.elem0.5c6 = %Int16> [concrete] -// CHECK:STDOUT: %DivWith.type.053: type = facet_type <@DivWith.1, @DivWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %DivWith.assoc_type.73e: type = assoc_entity_type @DivWith.1, @DivWith.1(%Int16) [concrete] -// CHECK:STDOUT: %assoc0.e96: %DivWith.assoc_type.73e = assoc_entity element0, imports.%Core.import_ref.e71d [concrete] -// CHECK:STDOUT: %assoc1.10b: %DivWith.assoc_type.73e = assoc_entity element1, imports.%Core.import_ref.e712 [concrete] -// CHECK:STDOUT: %Op.type.0b8387.4: type = fn_type @Op.4 [concrete] -// CHECK:STDOUT: %Op.b9c47d.4: %Op.type.0b8387.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.6ea: = custom_witness (%Int16, %Op.b9c47d.4), @DivWith.1, @DivWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.6b2: %facet_type.7f5 = facet_value %i16, (%custom_witness.e20f1f.2, %custom_witness.6ea) [concrete] -// CHECK:STDOUT: %complete_type.d563: = complete_type_witness %facet_type.8eb [concrete] -// CHECK:STDOUT: %.Self.as_type.3cd: type = facet_access_type %.Self.467 [symbolic_self] -// CHECK:STDOUT: %pattern_type.2be: type = pattern_type %facet_type.7f5 [concrete] -// CHECK:STDOUT: %facet_type.dc7: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %.Self.703: %facet_type.dc7 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %ModWith.lookup_impl_witness.c7a: = lookup_impl_witness %.Self.703, @ModWith.1, @ModWith.1(%Int16) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.094: type = impl_witness_access %ModWith.lookup_impl_witness.c7a, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.fde: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int16) where %impl.elem0.094 = %Int16> [concrete] -// CHECK:STDOUT: %ModWith.type.a83: type = facet_type <@ModWith.1, @ModWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %ModWith.assoc_type.55b: type = assoc_entity_type @ModWith.1, @ModWith.1(%Int16) [concrete] -// CHECK:STDOUT: %assoc0.8a3: %ModWith.assoc_type.55b = assoc_entity element0, imports.%Core.import_ref.327 [concrete] -// CHECK:STDOUT: %assoc1.7d4: %ModWith.assoc_type.55b = assoc_entity element1, imports.%Core.import_ref.104 [concrete] -// CHECK:STDOUT: %Op.type.0b8387.5: type = fn_type @Op.5 [concrete] -// CHECK:STDOUT: %Op.b9c47d.5: %Op.type.0b8387.5 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b81: = custom_witness (%Int16, %Op.b9c47d.5), @ModWith.1, @ModWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.07d: %facet_type.fde = facet_value %i16, (%custom_witness.e20f1f.2, %custom_witness.b81) [concrete] -// CHECK:STDOUT: %complete_type.65d: = complete_type_witness %facet_type.dc7 [concrete] -// CHECK:STDOUT: %.Self.as_type.c72: type = facet_access_type %.Self.703 [symbolic_self] -// CHECK:STDOUT: %pattern_type.268: type = pattern_type %facet_type.fde [concrete] -// CHECK:STDOUT: %facet_type.bf5: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%i16)> [concrete] -// CHECK:STDOUT: %.Self.b0b: %facet_type.bf5 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %AddWith.lookup_impl_witness.2ab: = lookup_impl_witness %.Self.b0b, @AddWith.1, @AddWith.1(%i16) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.b1c: type = impl_witness_access %AddWith.lookup_impl_witness.2ab, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.c90: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%i16) where %impl.elem0.b1c = %Int16> [concrete] -// CHECK:STDOUT: %AddWith.type.63e: type = facet_type <@AddWith.1, @AddWith.1(%i16)> [concrete] -// CHECK:STDOUT: %AddWith.assoc_type.fdd: type = assoc_entity_type @AddWith.1, @AddWith.1(%i16) [concrete] -// CHECK:STDOUT: %assoc0.c67: %AddWith.assoc_type.fdd = assoc_entity element0, imports.%Core.import_ref.1dd [concrete] -// CHECK:STDOUT: %assoc1.0e4: %AddWith.assoc_type.fdd = assoc_entity element1, imports.%Core.import_ref.29ff [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.3: type = fn_type @Int16.Op.3 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.3: %Int16.Op.type.43d658.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.9f2: = custom_witness (%Int16, %Int16.Op.cc70d5.3), @AddWith.1, @AddWith.1(%i16) [concrete] -// CHECK:STDOUT: %facet_value.b21: %facet_type.c90 = facet_value %Int16, (%custom_witness.a98c63.1, %custom_witness.9f2) [concrete] -// CHECK:STDOUT: %complete_type.b92: = complete_type_witness %facet_type.bf5 [concrete] -// CHECK:STDOUT: %.Self.as_type.ed9: type = facet_access_type %.Self.b0b [symbolic_self] -// CHECK:STDOUT: %pattern_type.a15: type = pattern_type %facet_type.c90 [concrete] -// CHECK:STDOUT: %facet_type.5e7: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%i16)> [concrete] -// CHECK:STDOUT: %.Self.bea: %facet_type.5e7 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %SubWith.lookup_impl_witness.7b4: = lookup_impl_witness %.Self.bea, @SubWith.1, @SubWith.1(%i16) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.61d: type = impl_witness_access %SubWith.lookup_impl_witness.7b4, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.80f: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%i16) where %impl.elem0.61d = %Int16> [concrete] -// CHECK:STDOUT: %SubWith.type.1db: type = facet_type <@SubWith.1, @SubWith.1(%i16)> [concrete] -// CHECK:STDOUT: %SubWith.assoc_type.5df: type = assoc_entity_type @SubWith.1, @SubWith.1(%i16) [concrete] -// CHECK:STDOUT: %assoc0.870: %SubWith.assoc_type.5df = assoc_entity element0, imports.%Core.import_ref.391 [concrete] -// CHECK:STDOUT: %assoc1.b6b: %SubWith.assoc_type.5df = assoc_entity element1, imports.%Core.import_ref.940 [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.4: type = fn_type @Int16.Op.4 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.4: %Int16.Op.type.43d658.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.6a5: = custom_witness (%Int16, %Int16.Op.cc70d5.4), @SubWith.1, @SubWith.1(%i16) [concrete] -// CHECK:STDOUT: %facet_value.2b4: %facet_type.80f = facet_value %Int16, (%custom_witness.a98c63.1, %custom_witness.6a5) [concrete] -// CHECK:STDOUT: %complete_type.9fc: = complete_type_witness %facet_type.5e7 [concrete] -// CHECK:STDOUT: %.Self.as_type.b77: type = facet_access_type %.Self.bea [symbolic_self] -// CHECK:STDOUT: %pattern_type.7a0: type = pattern_type %facet_type.80f [concrete] -// CHECK:STDOUT: %facet_type.183: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%i16)> [concrete] -// CHECK:STDOUT: %.Self.0ef: %facet_type.183 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %MulWith.lookup_impl_witness.b3c: = lookup_impl_witness %.Self.0ef, @MulWith.1, @MulWith.1(%i16) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.4a2: type = impl_witness_access %MulWith.lookup_impl_witness.b3c, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.6bb: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%i16) where %impl.elem0.4a2 = %Int16> [concrete] -// CHECK:STDOUT: %MulWith.type.c35: type = facet_type <@MulWith.1, @MulWith.1(%i16)> [concrete] -// CHECK:STDOUT: %MulWith.assoc_type.378: type = assoc_entity_type @MulWith.1, @MulWith.1(%i16) [concrete] -// CHECK:STDOUT: %assoc0.7cb: %MulWith.assoc_type.378 = assoc_entity element0, imports.%Core.import_ref.41e [concrete] -// CHECK:STDOUT: %assoc1.9b3: %MulWith.assoc_type.378 = assoc_entity element1, imports.%Core.import_ref.d23 [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.5: type = fn_type @Int16.Op.5 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.5: %Int16.Op.type.43d658.5 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.35c: = custom_witness (%Int16, %Int16.Op.cc70d5.5), @MulWith.1, @MulWith.1(%i16) [concrete] -// CHECK:STDOUT: %facet_value.88a: %facet_type.6bb = facet_value %Int16, (%custom_witness.a98c63.1, %custom_witness.35c) [concrete] -// CHECK:STDOUT: %complete_type.309: = complete_type_witness %facet_type.183 [concrete] -// CHECK:STDOUT: %.Self.as_type.751: type = facet_access_type %.Self.0ef [symbolic_self] -// CHECK:STDOUT: %pattern_type.fff: type = pattern_type %facet_type.6bb [concrete] -// CHECK:STDOUT: %facet_type.ab4: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%i16)> [concrete] -// CHECK:STDOUT: %.Self.627: %facet_type.ab4 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %DivWith.lookup_impl_witness.3d7: = lookup_impl_witness %.Self.627, @DivWith.1, @DivWith.1(%i16) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.ce6: type = impl_witness_access %DivWith.lookup_impl_witness.3d7, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.6b1: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%i16) where %impl.elem0.ce6 = %Int16> [concrete] -// CHECK:STDOUT: %DivWith.type.086: type = facet_type <@DivWith.1, @DivWith.1(%i16)> [concrete] -// CHECK:STDOUT: %DivWith.assoc_type.d3a: type = assoc_entity_type @DivWith.1, @DivWith.1(%i16) [concrete] -// CHECK:STDOUT: %assoc0.8b8: %DivWith.assoc_type.d3a = assoc_entity element0, imports.%Core.import_ref.e71d [concrete] -// CHECK:STDOUT: %assoc1.acb: %DivWith.assoc_type.d3a = assoc_entity element1, imports.%Core.import_ref.e712 [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.6: type = fn_type @Int16.Op.6 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.6: %Int16.Op.type.43d658.6 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.52d: = custom_witness (%Int16, %Int16.Op.cc70d5.6), @DivWith.1, @DivWith.1(%i16) [concrete] -// CHECK:STDOUT: %facet_value.473: %facet_type.6b1 = facet_value %Int16, (%custom_witness.a98c63.1, %custom_witness.52d) [concrete] -// CHECK:STDOUT: %complete_type.d56e: = complete_type_witness %facet_type.ab4 [concrete] -// CHECK:STDOUT: %.Self.as_type.4c8: type = facet_access_type %.Self.627 [symbolic_self] -// CHECK:STDOUT: %pattern_type.92a: type = pattern_type %facet_type.6b1 [concrete] -// CHECK:STDOUT: %facet_type.4ac: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%i16)> [concrete] -// CHECK:STDOUT: %.Self.b05: %facet_type.4ac = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %ModWith.lookup_impl_witness.ae1: = lookup_impl_witness %.Self.b05, @ModWith.1, @ModWith.1(%i16) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.9ea: type = impl_witness_access %ModWith.lookup_impl_witness.ae1, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.b54: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%i16) where %impl.elem0.9ea = %Int16> [concrete] -// CHECK:STDOUT: %ModWith.type.59b: type = facet_type <@ModWith.1, @ModWith.1(%i16)> [concrete] -// CHECK:STDOUT: %ModWith.assoc_type.95c: type = assoc_entity_type @ModWith.1, @ModWith.1(%i16) [concrete] -// CHECK:STDOUT: %assoc0.954: %ModWith.assoc_type.95c = assoc_entity element0, imports.%Core.import_ref.327 [concrete] -// CHECK:STDOUT: %assoc1.503: %ModWith.assoc_type.95c = assoc_entity element1, imports.%Core.import_ref.104 [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.7: type = fn_type @Int16.Op.7 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.7: %Int16.Op.type.43d658.7 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.887: = custom_witness (%Int16, %Int16.Op.cc70d5.7), @ModWith.1, @ModWith.1(%i16) [concrete] -// CHECK:STDOUT: %facet_value.c3b: %facet_type.b54 = facet_value %Int16, (%custom_witness.a98c63.1, %custom_witness.887) [concrete] -// CHECK:STDOUT: %complete_type.602: = complete_type_witness %facet_type.4ac [concrete] -// CHECK:STDOUT: %.Self.as_type.c10: type = facet_access_type %.Self.b05 [symbolic_self] -// CHECK:STDOUT: %pattern_type.87b: type = pattern_type %facet_type.b54 [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.1: type = fn_type @Int32.Op.1 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.1: %Int32.Op.type.43d658.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.a98c63.2: = custom_witness (%Int32.Op.cc70d5.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.d87: %Destroy.type = facet_value %Int32, (%custom_witness.a98c63.2) [concrete] -// CHECK:STDOUT: %facet_type.9c9: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %.Self.495: %facet_type.9c9 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %AddWith.lookup_impl_witness.4d9: = lookup_impl_witness %.Self.495, @AddWith.1, @AddWith.1(%Int32) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.53a: type = impl_witness_access %AddWith.lookup_impl_witness.4d9, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.8fd: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int32) where %impl.elem0.53a = %Int32> [concrete] -// CHECK:STDOUT: %AddWith.type.78c: type = facet_type <@AddWith.1, @AddWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %AddWith.assoc_type.882: type = assoc_entity_type @AddWith.1, @AddWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.5b9: %AddWith.assoc_type.882 = assoc_entity element0, imports.%Core.import_ref.1dd [concrete] -// CHECK:STDOUT: %assoc1.892: %AddWith.assoc_type.882 = assoc_entity element1, imports.%Core.import_ref.29ff [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.8: type = fn_type @Int16.Op.8 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.8: %Int16.Op.type.43d658.8 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e46c75.1: = custom_witness (%Int32, %Int16.Op.cc70d5.8), @AddWith.1, @AddWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.464: %facet_type.8fd = facet_value %Int16, (%custom_witness.a98c63.1, %custom_witness.e46c75.1) [concrete] -// CHECK:STDOUT: %complete_type.f26: = complete_type_witness %facet_type.9c9 [concrete] -// CHECK:STDOUT: %.Self.as_type.154: type = facet_access_type %.Self.495 [symbolic_self] -// CHECK:STDOUT: %pattern_type.15c: type = pattern_type %facet_type.8fd [concrete] -// CHECK:STDOUT: %facet_type.6c8: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %.Self.cbb: %facet_type.6c8 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %SubWith.lookup_impl_witness.733: = lookup_impl_witness %.Self.cbb, @SubWith.1, @SubWith.1(%Int32) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.e47: type = impl_witness_access %SubWith.lookup_impl_witness.733, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.02a: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int32) where %impl.elem0.e47 = %Int32> [concrete] -// CHECK:STDOUT: %SubWith.type.629: type = facet_type <@SubWith.1, @SubWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %SubWith.assoc_type.a03: type = assoc_entity_type @SubWith.1, @SubWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.199: %SubWith.assoc_type.a03 = assoc_entity element0, imports.%Core.import_ref.391 [concrete] -// CHECK:STDOUT: %assoc1.bff: %SubWith.assoc_type.a03 = assoc_entity element1, imports.%Core.import_ref.940 [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.9: type = fn_type @Int16.Op.9 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.9: %Int16.Op.type.43d658.9 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.7ffeb1.1: = custom_witness (%Int32, %Int16.Op.cc70d5.9), @SubWith.1, @SubWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.197: %facet_type.02a = facet_value %Int16, (%custom_witness.a98c63.1, %custom_witness.7ffeb1.1) [concrete] -// CHECK:STDOUT: %complete_type.dae: = complete_type_witness %facet_type.6c8 [concrete] -// CHECK:STDOUT: %.Self.as_type.11e: type = facet_access_type %.Self.cbb [symbolic_self] -// CHECK:STDOUT: %pattern_type.553: type = pattern_type %facet_type.02a [concrete] -// CHECK:STDOUT: %facet_type.299: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %.Self.1c7: %facet_type.299 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %MulWith.lookup_impl_witness.5ca: = lookup_impl_witness %.Self.1c7, @MulWith.1, @MulWith.1(%Int32) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.cab: type = impl_witness_access %MulWith.lookup_impl_witness.5ca, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.a5c: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int32) where %impl.elem0.cab = %Int32> [concrete] -// CHECK:STDOUT: %MulWith.type.3ee: type = facet_type <@MulWith.1, @MulWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %MulWith.assoc_type.564: type = assoc_entity_type @MulWith.1, @MulWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.6fa: %MulWith.assoc_type.564 = assoc_entity element0, imports.%Core.import_ref.41e [concrete] -// CHECK:STDOUT: %assoc1.00d: %MulWith.assoc_type.564 = assoc_entity element1, imports.%Core.import_ref.d23 [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.10: type = fn_type @Int16.Op.10 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.10: %Int16.Op.type.43d658.10 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.68a6cf.1: = custom_witness (%Int32, %Int16.Op.cc70d5.10), @MulWith.1, @MulWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.5b3: %facet_type.a5c = facet_value %Int16, (%custom_witness.a98c63.1, %custom_witness.68a6cf.1) [concrete] -// CHECK:STDOUT: %complete_type.0cf: = complete_type_witness %facet_type.299 [concrete] -// CHECK:STDOUT: %.Self.as_type.ba5: type = facet_access_type %.Self.1c7 [symbolic_self] -// CHECK:STDOUT: %pattern_type.11c: type = pattern_type %facet_type.a5c [concrete] -// CHECK:STDOUT: %facet_type.c6e: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %.Self.988: %facet_type.c6e = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %DivWith.lookup_impl_witness.c00: = lookup_impl_witness %.Self.988, @DivWith.1, @DivWith.1(%Int32) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.7a0: type = impl_witness_access %DivWith.lookup_impl_witness.c00, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.b40: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int32) where %impl.elem0.7a0 = %Int32> [concrete] -// CHECK:STDOUT: %DivWith.type.09b: type = facet_type <@DivWith.1, @DivWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %DivWith.assoc_type.a72: type = assoc_entity_type @DivWith.1, @DivWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.d0a: %DivWith.assoc_type.a72 = assoc_entity element0, imports.%Core.import_ref.e71d [concrete] -// CHECK:STDOUT: %assoc1.489: %DivWith.assoc_type.a72 = assoc_entity element1, imports.%Core.import_ref.e712 [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.11: type = fn_type @Int16.Op.11 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.11: %Int16.Op.type.43d658.11 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.2ccbdb.1: = custom_witness (%Int32, %Int16.Op.cc70d5.11), @DivWith.1, @DivWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.6fd: %facet_type.b40 = facet_value %Int16, (%custom_witness.a98c63.1, %custom_witness.2ccbdb.1) [concrete] -// CHECK:STDOUT: %complete_type.36c: = complete_type_witness %facet_type.c6e [concrete] -// CHECK:STDOUT: %.Self.as_type.f38: type = facet_access_type %.Self.988 [symbolic_self] -// CHECK:STDOUT: %pattern_type.6b3: type = pattern_type %facet_type.b40 [concrete] -// CHECK:STDOUT: %facet_type.22f: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %.Self.572: %facet_type.22f = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %ModWith.lookup_impl_witness.18e: = lookup_impl_witness %.Self.572, @ModWith.1, @ModWith.1(%Int32) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.288: type = impl_witness_access %ModWith.lookup_impl_witness.18e, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.88b: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int32) where %impl.elem0.288 = %Int32> [concrete] -// CHECK:STDOUT: %ModWith.type.6f6: type = facet_type <@ModWith.1, @ModWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %ModWith.assoc_type.d09: type = assoc_entity_type @ModWith.1, @ModWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.fb6: %ModWith.assoc_type.d09 = assoc_entity element0, imports.%Core.import_ref.327 [concrete] -// CHECK:STDOUT: %assoc1.56e: %ModWith.assoc_type.d09 = assoc_entity element1, imports.%Core.import_ref.104 [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.12: type = fn_type @Int16.Op.12 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.12: %Int16.Op.type.43d658.12 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.596ded.1: = custom_witness (%Int32, %Int16.Op.cc70d5.12), @ModWith.1, @ModWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.592: %facet_type.88b = facet_value %Int16, (%custom_witness.a98c63.1, %custom_witness.596ded.1) [concrete] -// CHECK:STDOUT: %complete_type.e22: = complete_type_witness %facet_type.22f [concrete] -// CHECK:STDOUT: %.Self.as_type.aac: type = facet_access_type %.Self.572 [symbolic_self] -// CHECK:STDOUT: %pattern_type.dda: type = pattern_type %facet_type.88b [concrete] -// CHECK:STDOUT: %facet_type.558: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int16) where %impl.elem0.2d1 = %Int32> [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.2: type = fn_type @Int32.Op.2 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.2: %Int32.Op.type.43d658.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e32: = custom_witness (%Int32, %Int32.Op.cc70d5.2), @AddWith.1, @AddWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.f2b: %facet_type.558 = facet_value %Int32, (%custom_witness.a98c63.2, %custom_witness.e32) [concrete] -// CHECK:STDOUT: %pattern_type.715: type = pattern_type %facet_type.558 [concrete] -// CHECK:STDOUT: %facet_type.064: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int16) where %impl.elem0.0b0 = %Int32> [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.3: type = fn_type @Int32.Op.3 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.3: %Int32.Op.type.43d658.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.395: = custom_witness (%Int32, %Int32.Op.cc70d5.3), @SubWith.1, @SubWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.dc0: %facet_type.064 = facet_value %Int32, (%custom_witness.a98c63.2, %custom_witness.395) [concrete] -// CHECK:STDOUT: %pattern_type.b06: type = pattern_type %facet_type.064 [concrete] -// CHECK:STDOUT: %facet_type.d97: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int16) where %impl.elem0.e54 = %Int32> [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.4: type = fn_type @Int32.Op.4 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.4: %Int32.Op.type.43d658.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.678: = custom_witness (%Int32, %Int32.Op.cc70d5.4), @MulWith.1, @MulWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.ff0: %facet_type.d97 = facet_value %Int32, (%custom_witness.a98c63.2, %custom_witness.678) [concrete] -// CHECK:STDOUT: %pattern_type.3ec: type = pattern_type %facet_type.d97 [concrete] -// CHECK:STDOUT: %facet_type.aa6: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int16) where %impl.elem0.5c6 = %Int32> [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.5: type = fn_type @Int32.Op.5 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.5: %Int32.Op.type.43d658.5 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.8ad: = custom_witness (%Int32, %Int32.Op.cc70d5.5), @DivWith.1, @DivWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.42a: %facet_type.aa6 = facet_value %Int32, (%custom_witness.a98c63.2, %custom_witness.8ad) [concrete] -// CHECK:STDOUT: %pattern_type.814: type = pattern_type %facet_type.aa6 [concrete] -// CHECK:STDOUT: %facet_type.b16: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int16) where %impl.elem0.094 = %Int32> [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.6: type = fn_type @Int32.Op.6 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.6: %Int32.Op.type.43d658.6 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.f63: = custom_witness (%Int32, %Int32.Op.cc70d5.6), @ModWith.1, @ModWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.7ad: %facet_type.b16 = facet_value %Int32, (%custom_witness.a98c63.2, %custom_witness.f63) [concrete] -// CHECK:STDOUT: %pattern_type.7fa: type = pattern_type %facet_type.b16 [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.7: type = fn_type @Int32.Op.7 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.7: %Int32.Op.type.43d658.7 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e46c75.2: = custom_witness (%Int32, %Int32.Op.cc70d5.7), @AddWith.1, @AddWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.f56: %facet_type.8fd = facet_value %Int32, (%custom_witness.a98c63.2, %custom_witness.e46c75.2) [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.8: type = fn_type @Int32.Op.8 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.8: %Int32.Op.type.43d658.8 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.7ffeb1.2: = custom_witness (%Int32, %Int32.Op.cc70d5.8), @SubWith.1, @SubWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.8a6: %facet_type.02a = facet_value %Int32, (%custom_witness.a98c63.2, %custom_witness.7ffeb1.2) [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.9: type = fn_type @Int32.Op.9 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.9: %Int32.Op.type.43d658.9 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.68a6cf.2: = custom_witness (%Int32, %Int32.Op.cc70d5.9), @MulWith.1, @MulWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.e09: %facet_type.a5c = facet_value %Int32, (%custom_witness.a98c63.2, %custom_witness.68a6cf.2) [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.10: type = fn_type @Int32.Op.10 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.10: %Int32.Op.type.43d658.10 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.2ccbdb.2: = custom_witness (%Int32, %Int32.Op.cc70d5.10), @DivWith.1, @DivWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.a3b: %facet_type.b40 = facet_value %Int32, (%custom_witness.a98c63.2, %custom_witness.2ccbdb.2) [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.11: type = fn_type @Int32.Op.11 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.11: %Int32.Op.type.43d658.11 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.596ded.2: = custom_witness (%Int32, %Int32.Op.cc70d5.11), @ModWith.1, @ModWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.40c: %facet_type.88b = facet_value %Int32, (%custom_witness.a98c63.2, %custom_witness.596ded.2) [concrete] -// CHECK:STDOUT: %Int64.Op.type.43d658.1: type = fn_type @Int64.Op.1 [concrete] -// CHECK:STDOUT: %Int64.Op.cc70d5.1: %Int64.Op.type.43d658.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.a98c63.3: = custom_witness (%Int64.Op.cc70d5.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.3de: %Destroy.type = facet_value %Int64, (%custom_witness.a98c63.3) [concrete] -// CHECK:STDOUT: %facet_type.fb6: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %.Self.d3e: %facet_type.fb6 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %AddWith.lookup_impl_witness.708: = lookup_impl_witness %.Self.d3e, @AddWith.1, @AddWith.1(%Int64) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.86a: type = impl_witness_access %AddWith.lookup_impl_witness.708, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.376: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int64) where %impl.elem0.86a = %Int64> [concrete] -// CHECK:STDOUT: %AddWith.type.01b: type = facet_type <@AddWith.1, @AddWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %AddWith.assoc_type.7c5: type = assoc_entity_type @AddWith.1, @AddWith.1(%Int64) [concrete] -// CHECK:STDOUT: %assoc0.f19: %AddWith.assoc_type.7c5 = assoc_entity element0, imports.%Core.import_ref.1dd [concrete] -// CHECK:STDOUT: %assoc1.3e0: %AddWith.assoc_type.7c5 = assoc_entity element1, imports.%Core.import_ref.29ff [concrete] -// CHECK:STDOUT: %Op.type.0b8387.6: type = fn_type @Op.6 [concrete] -// CHECK:STDOUT: %Op.b9c47d.6: %Op.type.0b8387.6 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e1e: = custom_witness (%Int64, %Op.b9c47d.6), @AddWith.1, @AddWith.1(%Int64) [concrete] -// CHECK:STDOUT: %facet_value.5d2: %facet_type.376 = facet_value %Int32, (%custom_witness.a98c63.2, %custom_witness.e1e) [concrete] -// CHECK:STDOUT: %complete_type.900: = complete_type_witness %facet_type.fb6 [concrete] -// CHECK:STDOUT: %.Self.as_type.1db: type = facet_access_type %.Self.d3e [symbolic_self] -// CHECK:STDOUT: %pattern_type.e29: type = pattern_type %facet_type.376 [concrete] -// CHECK:STDOUT: %facet_type.038: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %.Self.869: %facet_type.038 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %SubWith.lookup_impl_witness.c9f: = lookup_impl_witness %.Self.869, @SubWith.1, @SubWith.1(%Int64) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.6f7: type = impl_witness_access %SubWith.lookup_impl_witness.c9f, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.4a1: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int64) where %impl.elem0.6f7 = %Int64> [concrete] -// CHECK:STDOUT: %SubWith.type.82c: type = facet_type <@SubWith.1, @SubWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %SubWith.assoc_type.f62: type = assoc_entity_type @SubWith.1, @SubWith.1(%Int64) [concrete] -// CHECK:STDOUT: %assoc0.018: %SubWith.assoc_type.f62 = assoc_entity element0, imports.%Core.import_ref.391 [concrete] -// CHECK:STDOUT: %assoc1.1cf: %SubWith.assoc_type.f62 = assoc_entity element1, imports.%Core.import_ref.940 [concrete] -// CHECK:STDOUT: %Op.type.0b8387.7: type = fn_type @Op.7 [concrete] -// CHECK:STDOUT: %Op.b9c47d.7: %Op.type.0b8387.7 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.053: = custom_witness (%Int64, %Op.b9c47d.7), @SubWith.1, @SubWith.1(%Int64) [concrete] -// CHECK:STDOUT: %facet_value.916: %facet_type.4a1 = facet_value %Int32, (%custom_witness.a98c63.2, %custom_witness.053) [concrete] -// CHECK:STDOUT: %complete_type.e31: = complete_type_witness %facet_type.038 [concrete] -// CHECK:STDOUT: %.Self.as_type.824: type = facet_access_type %.Self.869 [symbolic_self] -// CHECK:STDOUT: %pattern_type.58c: type = pattern_type %facet_type.4a1 [concrete] -// CHECK:STDOUT: %facet_type.e03: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %.Self.d17: %facet_type.e03 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %MulWith.lookup_impl_witness.13a: = lookup_impl_witness %.Self.d17, @MulWith.1, @MulWith.1(%Int64) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.7f7: type = impl_witness_access %MulWith.lookup_impl_witness.13a, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.88c: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int64) where %impl.elem0.7f7 = %Int64> [concrete] -// CHECK:STDOUT: %MulWith.type.9ed: type = facet_type <@MulWith.1, @MulWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %MulWith.assoc_type.8d1: type = assoc_entity_type @MulWith.1, @MulWith.1(%Int64) [concrete] -// CHECK:STDOUT: %assoc0.c01: %MulWith.assoc_type.8d1 = assoc_entity element0, imports.%Core.import_ref.41e [concrete] -// CHECK:STDOUT: %assoc1.eef: %MulWith.assoc_type.8d1 = assoc_entity element1, imports.%Core.import_ref.d23 [concrete] -// CHECK:STDOUT: %Op.type.0b8387.8: type = fn_type @Op.8 [concrete] -// CHECK:STDOUT: %Op.b9c47d.8: %Op.type.0b8387.8 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.f29: = custom_witness (%Int64, %Op.b9c47d.8), @MulWith.1, @MulWith.1(%Int64) [concrete] -// CHECK:STDOUT: %facet_value.7ba: %facet_type.88c = facet_value %Int32, (%custom_witness.a98c63.2, %custom_witness.f29) [concrete] -// CHECK:STDOUT: %complete_type.25d: = complete_type_witness %facet_type.e03 [concrete] -// CHECK:STDOUT: %.Self.as_type.a7c: type = facet_access_type %.Self.d17 [symbolic_self] -// CHECK:STDOUT: %pattern_type.c54: type = pattern_type %facet_type.88c [concrete] -// CHECK:STDOUT: %facet_type.d41: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %.Self.73b: %facet_type.d41 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %DivWith.lookup_impl_witness.12e: = lookup_impl_witness %.Self.73b, @DivWith.1, @DivWith.1(%Int64) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.2db: type = impl_witness_access %DivWith.lookup_impl_witness.12e, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.604: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int64) where %impl.elem0.2db = %Int64> [concrete] -// CHECK:STDOUT: %DivWith.type.7ac: type = facet_type <@DivWith.1, @DivWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %DivWith.assoc_type.bfe: type = assoc_entity_type @DivWith.1, @DivWith.1(%Int64) [concrete] -// CHECK:STDOUT: %assoc0.578: %DivWith.assoc_type.bfe = assoc_entity element0, imports.%Core.import_ref.e71d [concrete] -// CHECK:STDOUT: %assoc1.c32: %DivWith.assoc_type.bfe = assoc_entity element1, imports.%Core.import_ref.e712 [concrete] -// CHECK:STDOUT: %Op.type.0b8387.9: type = fn_type @Op.9 [concrete] -// CHECK:STDOUT: %Op.b9c47d.9: %Op.type.0b8387.9 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.863: = custom_witness (%Int64, %Op.b9c47d.9), @DivWith.1, @DivWith.1(%Int64) [concrete] -// CHECK:STDOUT: %facet_value.969: %facet_type.604 = facet_value %Int32, (%custom_witness.a98c63.2, %custom_witness.863) [concrete] -// CHECK:STDOUT: %complete_type.67e: = complete_type_witness %facet_type.d41 [concrete] -// CHECK:STDOUT: %.Self.as_type.e27: type = facet_access_type %.Self.73b [symbolic_self] -// CHECK:STDOUT: %pattern_type.171: type = pattern_type %facet_type.604 [concrete] -// CHECK:STDOUT: %facet_type.dfd: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %.Self.5bc: %facet_type.dfd = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %ModWith.lookup_impl_witness.45e: = lookup_impl_witness %.Self.5bc, @ModWith.1, @ModWith.1(%Int64) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.f40: type = impl_witness_access %ModWith.lookup_impl_witness.45e, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.d93: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int64) where %impl.elem0.f40 = %Int64> [concrete] -// CHECK:STDOUT: %ModWith.type.6b0: type = facet_type <@ModWith.1, @ModWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %ModWith.assoc_type.eb7: type = assoc_entity_type @ModWith.1, @ModWith.1(%Int64) [concrete] -// CHECK:STDOUT: %assoc0.8a2: %ModWith.assoc_type.eb7 = assoc_entity element0, imports.%Core.import_ref.327 [concrete] -// CHECK:STDOUT: %assoc1.fa5: %ModWith.assoc_type.eb7 = assoc_entity element1, imports.%Core.import_ref.104 [concrete] -// CHECK:STDOUT: %Op.type.0b8387.10: type = fn_type @Op.10 [concrete] -// CHECK:STDOUT: %Op.b9c47d.10: %Op.type.0b8387.10 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.eb8: = custom_witness (%Int64, %Op.b9c47d.10), @ModWith.1, @ModWith.1(%Int64) [concrete] -// CHECK:STDOUT: %facet_value.0ea: %facet_type.d93 = facet_value %Int32, (%custom_witness.a98c63.2, %custom_witness.eb8) [concrete] -// CHECK:STDOUT: %complete_type.76b: = complete_type_witness %facet_type.dfd [concrete] -// CHECK:STDOUT: %.Self.as_type.97b: type = facet_access_type %.Self.5bc [symbolic_self] -// CHECK:STDOUT: %pattern_type.5a9: type = pattern_type %facet_type.d93 [concrete] -// CHECK:STDOUT: %facet_type.002: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int32) where %impl.elem0.53a = %Int64> [concrete] -// CHECK:STDOUT: %Op.type.0b8387.11: type = fn_type @Op.11 [concrete] -// CHECK:STDOUT: %Op.b9c47d.11: %Op.type.0b8387.11 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.483: = custom_witness (%Int64, %Op.b9c47d.11), @AddWith.1, @AddWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.706: %facet_type.002 = facet_value %Int64, (%custom_witness.a98c63.3, %custom_witness.483) [concrete] -// CHECK:STDOUT: %pattern_type.429: type = pattern_type %facet_type.002 [concrete] -// CHECK:STDOUT: %facet_type.a40: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int32) where %impl.elem0.e47 = %Int64> [concrete] -// CHECK:STDOUT: %Op.type.0b8387.12: type = fn_type @Op.12 [concrete] -// CHECK:STDOUT: %Op.b9c47d.12: %Op.type.0b8387.12 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.095: = custom_witness (%Int64, %Op.b9c47d.12), @SubWith.1, @SubWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.1d6: %facet_type.a40 = facet_value %Int64, (%custom_witness.a98c63.3, %custom_witness.095) [concrete] -// CHECK:STDOUT: %pattern_type.59c: type = pattern_type %facet_type.a40 [concrete] -// CHECK:STDOUT: %facet_type.ac8: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int32) where %impl.elem0.cab = %Int64> [concrete] -// CHECK:STDOUT: %Op.type.0b8387.13: type = fn_type @Op.13 [concrete] -// CHECK:STDOUT: %Op.b9c47d.13: %Op.type.0b8387.13 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.f6e: = custom_witness (%Int64, %Op.b9c47d.13), @MulWith.1, @MulWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.3ed: %facet_type.ac8 = facet_value %Int64, (%custom_witness.a98c63.3, %custom_witness.f6e) [concrete] -// CHECK:STDOUT: %pattern_type.5de: type = pattern_type %facet_type.ac8 [concrete] -// CHECK:STDOUT: %facet_type.b8e: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int32) where %impl.elem0.7a0 = %Int64> [concrete] -// CHECK:STDOUT: %Op.type.0b8387.14: type = fn_type @Op.14 [concrete] -// CHECK:STDOUT: %Op.b9c47d.14: %Op.type.0b8387.14 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.4e5: = custom_witness (%Int64, %Op.b9c47d.14), @DivWith.1, @DivWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.4d6: %facet_type.b8e = facet_value %Int64, (%custom_witness.a98c63.3, %custom_witness.4e5) [concrete] -// CHECK:STDOUT: %pattern_type.435: type = pattern_type %facet_type.b8e [concrete] -// CHECK:STDOUT: %facet_type.dbb: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int32) where %impl.elem0.288 = %Int64> [concrete] -// CHECK:STDOUT: %Op.type.0b8387.15: type = fn_type @Op.15 [concrete] -// CHECK:STDOUT: %Op.b9c47d.15: %Op.type.0b8387.15 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.99b: = custom_witness (%Int64, %Op.b9c47d.15), @ModWith.1, @ModWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.8fa: %facet_type.dbb = facet_value %Int64, (%custom_witness.a98c63.3, %custom_witness.99b) [concrete] -// CHECK:STDOUT: %pattern_type.4c3: type = pattern_type %facet_type.dbb [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.2bb: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.3de) [concrete] -// CHECK:STDOUT: %.dda: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.2bb, %Destroy.facet.3de [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.a62: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.d87) [concrete] -// CHECK:STDOUT: %.e4f: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.a62, %Destroy.facet.d87 [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.e80: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.1b8) [concrete] -// CHECK:STDOUT: %.154: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.e80, %Destroy.facet.1b8 [concrete] +// CHECK:STDOUT: %assoc0.a90: %SubWith.assoc_type.eb8 = assoc_entity element0, imports.%Core.import_ref.190e [concrete] +// CHECK:STDOUT: %assoc1.2cf: %SubWith.assoc_type.eb8 = assoc_entity element1, imports.%Core.import_ref.3a4 [concrete] +// 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.9fa: %facet_type.2e5 = facet_value %i16, (%custom_witness.df9cc1.2, %custom_witness.f14) [concrete] +// CHECK:STDOUT: %complete_type.647: = complete_type_witness %facet_type.b15 [concrete] +// CHECK:STDOUT: %.Self.as_type.bcf: type = facet_access_type %.Self.4e4 [symbolic_self] +// CHECK:STDOUT: %pattern_type.943: type = pattern_type %facet_type.2e5 [concrete] +// CHECK:STDOUT: %facet_type.a64: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %.Self.c25: %facet_type.a64 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %MulWith.lookup_impl_witness.e32: = lookup_impl_witness %.Self.c25, @MulWith.1, @MulWith.1(%Int16) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.472: type = impl_witness_access %MulWith.lookup_impl_witness.e32, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.e71: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int16) where %impl.elem0.472 = %Int16> [concrete] +// CHECK:STDOUT: %MulWith.type.c18: type = facet_type <@MulWith.1, @MulWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %MulWith.assoc_type.f15: type = assoc_entity_type @MulWith.1, @MulWith.1(%Int16) [concrete] +// CHECK:STDOUT: %assoc0.f8b: %MulWith.assoc_type.f15 = assoc_entity element0, imports.%Core.import_ref.59c [concrete] +// CHECK:STDOUT: %assoc1.eb5: %MulWith.assoc_type.f15 = assoc_entity element1, imports.%Core.import_ref.5a0 [concrete] +// 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.074: %facet_type.e71 = facet_value %i16, (%custom_witness.df9cc1.2, %custom_witness.6bd) [concrete] +// CHECK:STDOUT: %complete_type.4d3: = complete_type_witness %facet_type.a64 [concrete] +// CHECK:STDOUT: %.Self.as_type.354: type = facet_access_type %.Self.c25 [symbolic_self] +// CHECK:STDOUT: %pattern_type.b79: type = pattern_type %facet_type.e71 [concrete] +// CHECK:STDOUT: %facet_type.0b4: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %.Self.927: %facet_type.0b4 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %DivWith.lookup_impl_witness.ac4: = lookup_impl_witness %.Self.927, @DivWith.1, @DivWith.1(%Int16) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.6aa: type = impl_witness_access %DivWith.lookup_impl_witness.ac4, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.84f: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int16) where %impl.elem0.6aa = %Int16> [concrete] +// CHECK:STDOUT: %DivWith.type.6f9: type = facet_type <@DivWith.1, @DivWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %DivWith.assoc_type.333: type = assoc_entity_type @DivWith.1, @DivWith.1(%Int16) [concrete] +// CHECK:STDOUT: %assoc0.962: %DivWith.assoc_type.333 = assoc_entity element0, imports.%Core.import_ref.dee [concrete] +// CHECK:STDOUT: %assoc1.8b5: %DivWith.assoc_type.333 = assoc_entity element1, imports.%Core.import_ref.7845 [concrete] +// 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.c41: %facet_type.84f = facet_value %i16, (%custom_witness.df9cc1.2, %custom_witness.22c) [concrete] +// CHECK:STDOUT: %complete_type.acc: = complete_type_witness %facet_type.0b4 [concrete] +// CHECK:STDOUT: %.Self.as_type.87a: type = facet_access_type %.Self.927 [symbolic_self] +// CHECK:STDOUT: %pattern_type.abe: type = pattern_type %facet_type.84f [concrete] +// CHECK:STDOUT: %facet_type.ee8: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %.Self.a1e: %facet_type.ee8 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %ModWith.lookup_impl_witness.c0b: = lookup_impl_witness %.Self.a1e, @ModWith.1, @ModWith.1(%Int16) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.dae: type = impl_witness_access %ModWith.lookup_impl_witness.c0b, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.1b7: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int16) where %impl.elem0.dae = %Int16> [concrete] +// CHECK:STDOUT: %ModWith.type.763: type = facet_type <@ModWith.1, @ModWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %ModWith.assoc_type.e6a: type = assoc_entity_type @ModWith.1, @ModWith.1(%Int16) [concrete] +// CHECK:STDOUT: %assoc0.2cc: %ModWith.assoc_type.e6a = assoc_entity element0, imports.%Core.import_ref.61a [concrete] +// CHECK:STDOUT: %assoc1.3dd: %ModWith.assoc_type.e6a = assoc_entity element1, imports.%Core.import_ref.b56 [concrete] +// 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.849: %facet_type.1b7 = facet_value %i16, (%custom_witness.df9cc1.2, %custom_witness.9e6) [concrete] +// CHECK:STDOUT: %complete_type.8fc: = complete_type_witness %facet_type.ee8 [concrete] +// CHECK:STDOUT: %.Self.as_type.1da: type = facet_access_type %.Self.a1e [symbolic_self] +// CHECK:STDOUT: %pattern_type.45b: type = pattern_type %facet_type.1b7 [concrete] +// CHECK:STDOUT: %facet_type.1cc: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%i16)> [concrete] +// CHECK:STDOUT: %.Self.b3b: %facet_type.1cc = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %AddWith.lookup_impl_witness.fc6: = lookup_impl_witness %.Self.b3b, @AddWith.1, @AddWith.1(%i16) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.46e: type = impl_witness_access %AddWith.lookup_impl_witness.fc6, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.3ae: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%i16) where %impl.elem0.46e = %Int16> [concrete] +// CHECK:STDOUT: %AddWith.type.a36: type = facet_type <@AddWith.1, @AddWith.1(%i16)> [concrete] +// CHECK:STDOUT: %AddWith.assoc_type.6bf: type = assoc_entity_type @AddWith.1, @AddWith.1(%i16) [concrete] +// CHECK:STDOUT: %assoc0.e6b: %AddWith.assoc_type.6bf = assoc_entity element0, imports.%Core.import_ref.91f8 [concrete] +// CHECK:STDOUT: %assoc1.80e: %AddWith.assoc_type.6bf = assoc_entity element1, imports.%Core.import_ref.3cf [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.3: type = fn_type @Int16.Op.3 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.3: %Int16.Op.type.83af6e.3 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.b17: = custom_witness (%Int16, %Int16.Op.4dca31.3), @AddWith.1, @AddWith.1(%i16) [concrete] +// CHECK:STDOUT: %facet_value.dbc: %facet_type.3ae = facet_value %Int16, (%custom_witness.e7a31c.1, %custom_witness.b17) [concrete] +// CHECK:STDOUT: %complete_type.5a6: = complete_type_witness %facet_type.1cc [concrete] +// CHECK:STDOUT: %.Self.as_type.552: type = facet_access_type %.Self.b3b [symbolic_self] +// CHECK:STDOUT: %pattern_type.9c1: type = pattern_type %facet_type.3ae [concrete] +// CHECK:STDOUT: %facet_type.cb2: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%i16)> [concrete] +// CHECK:STDOUT: %.Self.408: %facet_type.cb2 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %SubWith.lookup_impl_witness.8c9: = lookup_impl_witness %.Self.408, @SubWith.1, @SubWith.1(%i16) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.727: type = impl_witness_access %SubWith.lookup_impl_witness.8c9, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.a54: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%i16) where %impl.elem0.727 = %Int16> [concrete] +// CHECK:STDOUT: %SubWith.type.08b: type = facet_type <@SubWith.1, @SubWith.1(%i16)> [concrete] +// CHECK:STDOUT: %SubWith.assoc_type.077: type = assoc_entity_type @SubWith.1, @SubWith.1(%i16) [concrete] +// CHECK:STDOUT: %assoc0.465: %SubWith.assoc_type.077 = assoc_entity element0, imports.%Core.import_ref.190e [concrete] +// CHECK:STDOUT: %assoc1.9f7: %SubWith.assoc_type.077 = assoc_entity element1, imports.%Core.import_ref.3a4 [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.4: type = fn_type @Int16.Op.4 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.4: %Int16.Op.type.83af6e.4 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.b07: = custom_witness (%Int16, %Int16.Op.4dca31.4), @SubWith.1, @SubWith.1(%i16) [concrete] +// CHECK:STDOUT: %facet_value.5c8: %facet_type.a54 = facet_value %Int16, (%custom_witness.e7a31c.1, %custom_witness.b07) [concrete] +// CHECK:STDOUT: %complete_type.090: = complete_type_witness %facet_type.cb2 [concrete] +// CHECK:STDOUT: %.Self.as_type.d2a: type = facet_access_type %.Self.408 [symbolic_self] +// CHECK:STDOUT: %pattern_type.612: type = pattern_type %facet_type.a54 [concrete] +// CHECK:STDOUT: %facet_type.67c: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%i16)> [concrete] +// CHECK:STDOUT: %.Self.3be: %facet_type.67c = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %MulWith.lookup_impl_witness.446: = lookup_impl_witness %.Self.3be, @MulWith.1, @MulWith.1(%i16) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.192: type = impl_witness_access %MulWith.lookup_impl_witness.446, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.d1d: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%i16) where %impl.elem0.192 = %Int16> [concrete] +// CHECK:STDOUT: %MulWith.type.55d: type = facet_type <@MulWith.1, @MulWith.1(%i16)> [concrete] +// CHECK:STDOUT: %MulWith.assoc_type.212: type = assoc_entity_type @MulWith.1, @MulWith.1(%i16) [concrete] +// CHECK:STDOUT: %assoc0.455: %MulWith.assoc_type.212 = assoc_entity element0, imports.%Core.import_ref.59c [concrete] +// CHECK:STDOUT: %assoc1.2d0: %MulWith.assoc_type.212 = assoc_entity element1, imports.%Core.import_ref.5a0 [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.5: type = fn_type @Int16.Op.5 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.5: %Int16.Op.type.83af6e.5 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.8bd: = custom_witness (%Int16, %Int16.Op.4dca31.5), @MulWith.1, @MulWith.1(%i16) [concrete] +// CHECK:STDOUT: %facet_value.158: %facet_type.d1d = facet_value %Int16, (%custom_witness.e7a31c.1, %custom_witness.8bd) [concrete] +// CHECK:STDOUT: %complete_type.a8b: = complete_type_witness %facet_type.67c [concrete] +// CHECK:STDOUT: %.Self.as_type.523: type = facet_access_type %.Self.3be [symbolic_self] +// CHECK:STDOUT: %pattern_type.fc4: type = pattern_type %facet_type.d1d [concrete] +// CHECK:STDOUT: %facet_type.86c8: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%i16)> [concrete] +// CHECK:STDOUT: %.Self.2ad: %facet_type.86c8 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %DivWith.lookup_impl_witness.2b4: = lookup_impl_witness %.Self.2ad, @DivWith.1, @DivWith.1(%i16) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.7e7: type = impl_witness_access %DivWith.lookup_impl_witness.2b4, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.bdc: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%i16) where %impl.elem0.7e7 = %Int16> [concrete] +// CHECK:STDOUT: %DivWith.type.ab0: type = facet_type <@DivWith.1, @DivWith.1(%i16)> [concrete] +// CHECK:STDOUT: %DivWith.assoc_type.1f2: type = assoc_entity_type @DivWith.1, @DivWith.1(%i16) [concrete] +// CHECK:STDOUT: %assoc0.be2: %DivWith.assoc_type.1f2 = assoc_entity element0, imports.%Core.import_ref.dee [concrete] +// CHECK:STDOUT: %assoc1.885: %DivWith.assoc_type.1f2 = assoc_entity element1, imports.%Core.import_ref.7845 [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.6: type = fn_type @Int16.Op.6 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.6: %Int16.Op.type.83af6e.6 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.963: = custom_witness (%Int16, %Int16.Op.4dca31.6), @DivWith.1, @DivWith.1(%i16) [concrete] +// CHECK:STDOUT: %facet_value.8dc: %facet_type.bdc = facet_value %Int16, (%custom_witness.e7a31c.1, %custom_witness.963) [concrete] +// CHECK:STDOUT: %complete_type.1cb: = complete_type_witness %facet_type.86c8 [concrete] +// CHECK:STDOUT: %.Self.as_type.445: type = facet_access_type %.Self.2ad [symbolic_self] +// CHECK:STDOUT: %pattern_type.b62: type = pattern_type %facet_type.bdc [concrete] +// CHECK:STDOUT: %facet_type.afdb: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%i16)> [concrete] +// CHECK:STDOUT: %.Self.ceb: %facet_type.afdb = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %ModWith.lookup_impl_witness.af5: = lookup_impl_witness %.Self.ceb, @ModWith.1, @ModWith.1(%i16) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.4a6: type = impl_witness_access %ModWith.lookup_impl_witness.af5, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.dde: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%i16) where %impl.elem0.4a6 = %Int16> [concrete] +// CHECK:STDOUT: %ModWith.type.0b2: type = facet_type <@ModWith.1, @ModWith.1(%i16)> [concrete] +// CHECK:STDOUT: %ModWith.assoc_type.e06: type = assoc_entity_type @ModWith.1, @ModWith.1(%i16) [concrete] +// CHECK:STDOUT: %assoc0.b5a: %ModWith.assoc_type.e06 = assoc_entity element0, imports.%Core.import_ref.61a [concrete] +// CHECK:STDOUT: %assoc1.972: %ModWith.assoc_type.e06 = assoc_entity element1, imports.%Core.import_ref.b56 [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.7: type = fn_type @Int16.Op.7 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.7: %Int16.Op.type.83af6e.7 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.8f4: = custom_witness (%Int16, %Int16.Op.4dca31.7), @ModWith.1, @ModWith.1(%i16) [concrete] +// CHECK:STDOUT: %facet_value.8657: %facet_type.dde = facet_value %Int16, (%custom_witness.e7a31c.1, %custom_witness.8f4) [concrete] +// CHECK:STDOUT: %complete_type.1f9: = complete_type_witness %facet_type.afdb [concrete] +// CHECK:STDOUT: %.Self.as_type.1c1: type = facet_access_type %.Self.ceb [symbolic_self] +// CHECK:STDOUT: %pattern_type.9c7: type = pattern_type %facet_type.dde [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.1: type = fn_type @Int32.Op.1 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.1: %Int32.Op.type.83af6e.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.e7a31c.2: = custom_witness (%Int32.Op.4dca31.1), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.099: %Destroy.type = facet_value %Int32, (%custom_witness.e7a31c.2) [concrete] +// CHECK:STDOUT: %facet_type.698: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %.Self.1bc: %facet_type.698 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %AddWith.lookup_impl_witness.d80: = lookup_impl_witness %.Self.1bc, @AddWith.1, @AddWith.1(%Int32) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.899: type = impl_witness_access %AddWith.lookup_impl_witness.d80, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.cf0: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int32) where %impl.elem0.899 = %Int32> [concrete] +// CHECK:STDOUT: %AddWith.type.c71: type = facet_type <@AddWith.1, @AddWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %AddWith.assoc_type.72d: type = assoc_entity_type @AddWith.1, @AddWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.c2b: %AddWith.assoc_type.72d = assoc_entity element0, imports.%Core.import_ref.91f8 [concrete] +// CHECK:STDOUT: %assoc1.0fc: %AddWith.assoc_type.72d = assoc_entity element1, imports.%Core.import_ref.3cf [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.8: type = fn_type @Int16.Op.8 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.8: %Int16.Op.type.83af6e.8 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.e02e0c.1: = custom_witness (%Int32, %Int16.Op.4dca31.8), @AddWith.1, @AddWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.5c0: %facet_type.cf0 = facet_value %Int16, (%custom_witness.e7a31c.1, %custom_witness.e02e0c.1) [concrete] +// CHECK:STDOUT: %complete_type.224: = complete_type_witness %facet_type.698 [concrete] +// CHECK:STDOUT: %.Self.as_type.cbd: type = facet_access_type %.Self.1bc [symbolic_self] +// CHECK:STDOUT: %pattern_type.44d: type = pattern_type %facet_type.cf0 [concrete] +// CHECK:STDOUT: %facet_type.44e: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %.Self.4d7: %facet_type.44e = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %SubWith.lookup_impl_witness.566: = lookup_impl_witness %.Self.4d7, @SubWith.1, @SubWith.1(%Int32) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.ee1: type = impl_witness_access %SubWith.lookup_impl_witness.566, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.0f8: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int32) where %impl.elem0.ee1 = %Int32> [concrete] +// CHECK:STDOUT: %SubWith.type.c81: type = facet_type <@SubWith.1, @SubWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %SubWith.assoc_type.68f: type = assoc_entity_type @SubWith.1, @SubWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.f11: %SubWith.assoc_type.68f = assoc_entity element0, imports.%Core.import_ref.190e [concrete] +// CHECK:STDOUT: %assoc1.799: %SubWith.assoc_type.68f = assoc_entity element1, imports.%Core.import_ref.3a4 [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.9: type = fn_type @Int16.Op.9 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.9: %Int16.Op.type.83af6e.9 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.4dea15.1: = custom_witness (%Int32, %Int16.Op.4dca31.9), @SubWith.1, @SubWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.a20: %facet_type.0f8 = facet_value %Int16, (%custom_witness.e7a31c.1, %custom_witness.4dea15.1) [concrete] +// CHECK:STDOUT: %complete_type.63f: = complete_type_witness %facet_type.44e [concrete] +// CHECK:STDOUT: %.Self.as_type.07c: type = facet_access_type %.Self.4d7 [symbolic_self] +// CHECK:STDOUT: %pattern_type.9624: type = pattern_type %facet_type.0f8 [concrete] +// CHECK:STDOUT: %facet_type.ff6: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %.Self.a5b: %facet_type.ff6 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %MulWith.lookup_impl_witness.a28: = lookup_impl_witness %.Self.a5b, @MulWith.1, @MulWith.1(%Int32) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.d19: type = impl_witness_access %MulWith.lookup_impl_witness.a28, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.cf6: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int32) where %impl.elem0.d19 = %Int32> [concrete] +// CHECK:STDOUT: %MulWith.type.eeb: type = facet_type <@MulWith.1, @MulWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %MulWith.assoc_type.083: type = assoc_entity_type @MulWith.1, @MulWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.fc0: %MulWith.assoc_type.083 = assoc_entity element0, imports.%Core.import_ref.59c [concrete] +// CHECK:STDOUT: %assoc1.019: %MulWith.assoc_type.083 = assoc_entity element1, imports.%Core.import_ref.5a0 [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.10: type = fn_type @Int16.Op.10 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.10: %Int16.Op.type.83af6e.10 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.337c88.1: = custom_witness (%Int32, %Int16.Op.4dca31.10), @MulWith.1, @MulWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.f68: %facet_type.cf6 = facet_value %Int16, (%custom_witness.e7a31c.1, %custom_witness.337c88.1) [concrete] +// CHECK:STDOUT: %complete_type.3fe: = complete_type_witness %facet_type.ff6 [concrete] +// CHECK:STDOUT: %.Self.as_type.646: type = facet_access_type %.Self.a5b [symbolic_self] +// CHECK:STDOUT: %pattern_type.08b: type = pattern_type %facet_type.cf6 [concrete] +// CHECK:STDOUT: %facet_type.d41: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %.Self.d8c: %facet_type.d41 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %DivWith.lookup_impl_witness.d3c: = lookup_impl_witness %.Self.d8c, @DivWith.1, @DivWith.1(%Int32) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.282: type = impl_witness_access %DivWith.lookup_impl_witness.d3c, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.639: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int32) where %impl.elem0.282 = %Int32> [concrete] +// CHECK:STDOUT: %DivWith.type.fb1: type = facet_type <@DivWith.1, @DivWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %DivWith.assoc_type.725: type = assoc_entity_type @DivWith.1, @DivWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.2da: %DivWith.assoc_type.725 = assoc_entity element0, imports.%Core.import_ref.dee [concrete] +// CHECK:STDOUT: %assoc1.580: %DivWith.assoc_type.725 = assoc_entity element1, imports.%Core.import_ref.7845 [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.11: type = fn_type @Int16.Op.11 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.11: %Int16.Op.type.83af6e.11 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.3eb227.1: = custom_witness (%Int32, %Int16.Op.4dca31.11), @DivWith.1, @DivWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.6d0: %facet_type.639 = facet_value %Int16, (%custom_witness.e7a31c.1, %custom_witness.3eb227.1) [concrete] +// CHECK:STDOUT: %complete_type.11b: = complete_type_witness %facet_type.d41 [concrete] +// CHECK:STDOUT: %.Self.as_type.30d: type = facet_access_type %.Self.d8c [symbolic_self] +// CHECK:STDOUT: %pattern_type.379: type = pattern_type %facet_type.639 [concrete] +// CHECK:STDOUT: %facet_type.ea8: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %.Self.46e: %facet_type.ea8 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %ModWith.lookup_impl_witness.b37: = lookup_impl_witness %.Self.46e, @ModWith.1, @ModWith.1(%Int32) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.32c: type = impl_witness_access %ModWith.lookup_impl_witness.b37, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.cac: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int32) where %impl.elem0.32c = %Int32> [concrete] +// CHECK:STDOUT: %ModWith.type.253: type = facet_type <@ModWith.1, @ModWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %ModWith.assoc_type.47d: type = assoc_entity_type @ModWith.1, @ModWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.45c: %ModWith.assoc_type.47d = assoc_entity element0, imports.%Core.import_ref.61a [concrete] +// CHECK:STDOUT: %assoc1.878: %ModWith.assoc_type.47d = assoc_entity element1, imports.%Core.import_ref.b56 [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.12: type = fn_type @Int16.Op.12 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.12: %Int16.Op.type.83af6e.12 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.501c6d.1: = custom_witness (%Int32, %Int16.Op.4dca31.12), @ModWith.1, @ModWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.72f: %facet_type.cac = facet_value %Int16, (%custom_witness.e7a31c.1, %custom_witness.501c6d.1) [concrete] +// CHECK:STDOUT: %complete_type.2aa: = complete_type_witness %facet_type.ea8 [concrete] +// CHECK:STDOUT: %.Self.as_type.7e4: type = facet_access_type %.Self.46e [symbolic_self] +// CHECK:STDOUT: %pattern_type.e4f: type = pattern_type %facet_type.cac [concrete] +// CHECK:STDOUT: %facet_type.2c6: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int16) where %impl.elem0.7e0 = %Int32> [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.2: type = fn_type @Int32.Op.2 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.2: %Int32.Op.type.83af6e.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.15f: = custom_witness (%Int32, %Int32.Op.4dca31.2), @AddWith.1, @AddWith.1(%Int16) [concrete] +// CHECK:STDOUT: %facet_value.aa2: %facet_type.2c6 = facet_value %Int32, (%custom_witness.e7a31c.2, %custom_witness.15f) [concrete] +// CHECK:STDOUT: %pattern_type.96f: type = pattern_type %facet_type.2c6 [concrete] +// CHECK:STDOUT: %facet_type.076: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int16) where %impl.elem0.104 = %Int32> [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.3: type = fn_type @Int32.Op.3 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.3: %Int32.Op.type.83af6e.3 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.bb4: = custom_witness (%Int32, %Int32.Op.4dca31.3), @SubWith.1, @SubWith.1(%Int16) [concrete] +// CHECK:STDOUT: %facet_value.577: %facet_type.076 = facet_value %Int32, (%custom_witness.e7a31c.2, %custom_witness.bb4) [concrete] +// CHECK:STDOUT: %pattern_type.05c: type = pattern_type %facet_type.076 [concrete] +// CHECK:STDOUT: %facet_type.163: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int16) where %impl.elem0.472 = %Int32> [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.4: type = fn_type @Int32.Op.4 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.4: %Int32.Op.type.83af6e.4 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.0ab: = custom_witness (%Int32, %Int32.Op.4dca31.4), @MulWith.1, @MulWith.1(%Int16) [concrete] +// CHECK:STDOUT: %facet_value.0f9: %facet_type.163 = facet_value %Int32, (%custom_witness.e7a31c.2, %custom_witness.0ab) [concrete] +// CHECK:STDOUT: %pattern_type.59d: type = pattern_type %facet_type.163 [concrete] +// CHECK:STDOUT: %facet_type.f1f: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int16) where %impl.elem0.6aa = %Int32> [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.5: type = fn_type @Int32.Op.5 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.5: %Int32.Op.type.83af6e.5 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.3ec: = custom_witness (%Int32, %Int32.Op.4dca31.5), @DivWith.1, @DivWith.1(%Int16) [concrete] +// CHECK:STDOUT: %facet_value.53b: %facet_type.f1f = facet_value %Int32, (%custom_witness.e7a31c.2, %custom_witness.3ec) [concrete] +// CHECK:STDOUT: %pattern_type.c6c: type = pattern_type %facet_type.f1f [concrete] +// CHECK:STDOUT: %facet_type.3eb: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int16) where %impl.elem0.dae = %Int32> [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.6: type = fn_type @Int32.Op.6 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.6: %Int32.Op.type.83af6e.6 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.de0: = custom_witness (%Int32, %Int32.Op.4dca31.6), @ModWith.1, @ModWith.1(%Int16) [concrete] +// CHECK:STDOUT: %facet_value.b75a: %facet_type.3eb = facet_value %Int32, (%custom_witness.e7a31c.2, %custom_witness.de0) [concrete] +// CHECK:STDOUT: %pattern_type.205: type = pattern_type %facet_type.3eb [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.7: type = fn_type @Int32.Op.7 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.7: %Int32.Op.type.83af6e.7 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.e02e0c.2: = custom_witness (%Int32, %Int32.Op.4dca31.7), @AddWith.1, @AddWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.8ac: %facet_type.cf0 = facet_value %Int32, (%custom_witness.e7a31c.2, %custom_witness.e02e0c.2) [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.8: type = fn_type @Int32.Op.8 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.8: %Int32.Op.type.83af6e.8 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.4dea15.2: = custom_witness (%Int32, %Int32.Op.4dca31.8), @SubWith.1, @SubWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.e83: %facet_type.0f8 = facet_value %Int32, (%custom_witness.e7a31c.2, %custom_witness.4dea15.2) [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.9: type = fn_type @Int32.Op.9 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.9: %Int32.Op.type.83af6e.9 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.337c88.2: = custom_witness (%Int32, %Int32.Op.4dca31.9), @MulWith.1, @MulWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.4a1: %facet_type.cf6 = facet_value %Int32, (%custom_witness.e7a31c.2, %custom_witness.337c88.2) [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.10: type = fn_type @Int32.Op.10 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.10: %Int32.Op.type.83af6e.10 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.3eb227.2: = custom_witness (%Int32, %Int32.Op.4dca31.10), @DivWith.1, @DivWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.0bb: %facet_type.639 = facet_value %Int32, (%custom_witness.e7a31c.2, %custom_witness.3eb227.2) [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.11: type = fn_type @Int32.Op.11 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.11: %Int32.Op.type.83af6e.11 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.501c6d.2: = custom_witness (%Int32, %Int32.Op.4dca31.11), @ModWith.1, @ModWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.081: %facet_type.cac = facet_value %Int32, (%custom_witness.e7a31c.2, %custom_witness.501c6d.2) [concrete] +// CHECK:STDOUT: %Int64.Op.type.83af6e.1: type = fn_type @Int64.Op.1 [concrete] +// CHECK:STDOUT: %Int64.Op.4dca31.1: %Int64.Op.type.83af6e.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.e7a31c.3: = custom_witness (%Int64.Op.4dca31.1), @Destroy [concrete] +// CHECK:STDOUT: %Destroy.facet.191: %Destroy.type = facet_value %Int64, (%custom_witness.e7a31c.3) [concrete] +// CHECK:STDOUT: %facet_type.afd1: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %.Self.52f: %facet_type.afd1 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %AddWith.lookup_impl_witness.dd9: = lookup_impl_witness %.Self.52f, @AddWith.1, @AddWith.1(%Int64) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.325: type = impl_witness_access %AddWith.lookup_impl_witness.dd9, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.466: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int64) where %impl.elem0.325 = %Int64> [concrete] +// CHECK:STDOUT: %AddWith.type.b5b: type = facet_type <@AddWith.1, @AddWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %AddWith.assoc_type.0c5: type = assoc_entity_type @AddWith.1, @AddWith.1(%Int64) [concrete] +// CHECK:STDOUT: %assoc0.947: %AddWith.assoc_type.0c5 = assoc_entity element0, imports.%Core.import_ref.91f8 [concrete] +// CHECK:STDOUT: %assoc1.18c: %AddWith.assoc_type.0c5 = assoc_entity element1, imports.%Core.import_ref.3cf [concrete] +// CHECK:STDOUT: %Op.type.442b68.6: type = fn_type @Op.6 [concrete] +// CHECK:STDOUT: %Op.72717c.6: %Op.type.442b68.6 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.68d: = custom_witness (%Int64, %Op.72717c.6), @AddWith.1, @AddWith.1(%Int64) [concrete] +// CHECK:STDOUT: %facet_value.aa8: %facet_type.466 = facet_value %Int32, (%custom_witness.e7a31c.2, %custom_witness.68d) [concrete] +// CHECK:STDOUT: %complete_type.412: = complete_type_witness %facet_type.afd1 [concrete] +// CHECK:STDOUT: %.Self.as_type.7a8: type = facet_access_type %.Self.52f [symbolic_self] +// CHECK:STDOUT: %pattern_type.a1a: type = pattern_type %facet_type.466 [concrete] +// CHECK:STDOUT: %facet_type.502: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %.Self.26a: %facet_type.502 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %SubWith.lookup_impl_witness.61b: = lookup_impl_witness %.Self.26a, @SubWith.1, @SubWith.1(%Int64) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.80a: type = impl_witness_access %SubWith.lookup_impl_witness.61b, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.b42: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int64) where %impl.elem0.80a = %Int64> [concrete] +// CHECK:STDOUT: %SubWith.type.a46: type = facet_type <@SubWith.1, @SubWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %SubWith.assoc_type.e16: type = assoc_entity_type @SubWith.1, @SubWith.1(%Int64) [concrete] +// CHECK:STDOUT: %assoc0.88a: %SubWith.assoc_type.e16 = assoc_entity element0, imports.%Core.import_ref.190e [concrete] +// CHECK:STDOUT: %assoc1.3b1: %SubWith.assoc_type.e16 = assoc_entity element1, imports.%Core.import_ref.3a4 [concrete] +// CHECK:STDOUT: %Op.type.442b68.7: type = fn_type @Op.7 [concrete] +// CHECK:STDOUT: %Op.72717c.7: %Op.type.442b68.7 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.1fa: = custom_witness (%Int64, %Op.72717c.7), @SubWith.1, @SubWith.1(%Int64) [concrete] +// CHECK:STDOUT: %facet_value.f7c: %facet_type.b42 = facet_value %Int32, (%custom_witness.e7a31c.2, %custom_witness.1fa) [concrete] +// CHECK:STDOUT: %complete_type.181: = complete_type_witness %facet_type.502 [concrete] +// CHECK:STDOUT: %.Self.as_type.5b8: type = facet_access_type %.Self.26a [symbolic_self] +// CHECK:STDOUT: %pattern_type.84a: type = pattern_type %facet_type.b42 [concrete] +// CHECK:STDOUT: %facet_type.770: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %.Self.700: %facet_type.770 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %MulWith.lookup_impl_witness.6cf: = lookup_impl_witness %.Self.700, @MulWith.1, @MulWith.1(%Int64) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.aad: type = impl_witness_access %MulWith.lookup_impl_witness.6cf, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.5ef: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int64) where %impl.elem0.aad = %Int64> [concrete] +// CHECK:STDOUT: %MulWith.type.76f: type = facet_type <@MulWith.1, @MulWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %MulWith.assoc_type.a37: type = assoc_entity_type @MulWith.1, @MulWith.1(%Int64) [concrete] +// CHECK:STDOUT: %assoc0.210: %MulWith.assoc_type.a37 = assoc_entity element0, imports.%Core.import_ref.59c [concrete] +// CHECK:STDOUT: %assoc1.cd1: %MulWith.assoc_type.a37 = assoc_entity element1, imports.%Core.import_ref.5a0 [concrete] +// CHECK:STDOUT: %Op.type.442b68.8: type = fn_type @Op.8 [concrete] +// CHECK:STDOUT: %Op.72717c.8: %Op.type.442b68.8 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.99d: = custom_witness (%Int64, %Op.72717c.8), @MulWith.1, @MulWith.1(%Int64) [concrete] +// CHECK:STDOUT: %facet_value.4d0: %facet_type.5ef = facet_value %Int32, (%custom_witness.e7a31c.2, %custom_witness.99d) [concrete] +// CHECK:STDOUT: %complete_type.16e: = complete_type_witness %facet_type.770 [concrete] +// CHECK:STDOUT: %.Self.as_type.356: type = facet_access_type %.Self.700 [symbolic_self] +// CHECK:STDOUT: %pattern_type.1fe: type = pattern_type %facet_type.5ef [concrete] +// CHECK:STDOUT: %facet_type.c98: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %.Self.837: %facet_type.c98 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %DivWith.lookup_impl_witness.7a8: = lookup_impl_witness %.Self.837, @DivWith.1, @DivWith.1(%Int64) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.a9d: type = impl_witness_access %DivWith.lookup_impl_witness.7a8, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.be3: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int64) where %impl.elem0.a9d = %Int64> [concrete] +// CHECK:STDOUT: %DivWith.type.095: type = facet_type <@DivWith.1, @DivWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %DivWith.assoc_type.8a4: type = assoc_entity_type @DivWith.1, @DivWith.1(%Int64) [concrete] +// CHECK:STDOUT: %assoc0.982: %DivWith.assoc_type.8a4 = assoc_entity element0, imports.%Core.import_ref.dee [concrete] +// CHECK:STDOUT: %assoc1.c76: %DivWith.assoc_type.8a4 = assoc_entity element1, imports.%Core.import_ref.7845 [concrete] +// CHECK:STDOUT: %Op.type.442b68.9: type = fn_type @Op.9 [concrete] +// CHECK:STDOUT: %Op.72717c.9: %Op.type.442b68.9 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.a8f: = custom_witness (%Int64, %Op.72717c.9), @DivWith.1, @DivWith.1(%Int64) [concrete] +// CHECK:STDOUT: %facet_value.7d4: %facet_type.be3 = facet_value %Int32, (%custom_witness.e7a31c.2, %custom_witness.a8f) [concrete] +// CHECK:STDOUT: %complete_type.621: = complete_type_witness %facet_type.c98 [concrete] +// CHECK:STDOUT: %.Self.as_type.6a2: type = facet_access_type %.Self.837 [symbolic_self] +// CHECK:STDOUT: %pattern_type.2d9: type = pattern_type %facet_type.be3 [concrete] +// CHECK:STDOUT: %facet_type.f26: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %.Self.767: %facet_type.f26 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %ModWith.lookup_impl_witness.e0f: = lookup_impl_witness %.Self.767, @ModWith.1, @ModWith.1(%Int64) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.5f0: type = impl_witness_access %ModWith.lookup_impl_witness.e0f, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.74d: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int64) where %impl.elem0.5f0 = %Int64> [concrete] +// CHECK:STDOUT: %ModWith.type.204: type = facet_type <@ModWith.1, @ModWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %ModWith.assoc_type.1f7: type = assoc_entity_type @ModWith.1, @ModWith.1(%Int64) [concrete] +// CHECK:STDOUT: %assoc0.0a6: %ModWith.assoc_type.1f7 = assoc_entity element0, imports.%Core.import_ref.61a [concrete] +// CHECK:STDOUT: %assoc1.ee5: %ModWith.assoc_type.1f7 = assoc_entity element1, imports.%Core.import_ref.b56 [concrete] +// CHECK:STDOUT: %Op.type.442b68.10: type = fn_type @Op.10 [concrete] +// CHECK:STDOUT: %Op.72717c.10: %Op.type.442b68.10 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.972: = custom_witness (%Int64, %Op.72717c.10), @ModWith.1, @ModWith.1(%Int64) [concrete] +// CHECK:STDOUT: %facet_value.774: %facet_type.74d = facet_value %Int32, (%custom_witness.e7a31c.2, %custom_witness.972) [concrete] +// CHECK:STDOUT: %complete_type.359: = complete_type_witness %facet_type.f26 [concrete] +// CHECK:STDOUT: %.Self.as_type.1a7: type = facet_access_type %.Self.767 [symbolic_self] +// CHECK:STDOUT: %pattern_type.41c: type = pattern_type %facet_type.74d [concrete] +// CHECK:STDOUT: %facet_type.fdd: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int32) where %impl.elem0.899 = %Int64> [concrete] +// CHECK:STDOUT: %Op.type.442b68.11: type = fn_type @Op.11 [concrete] +// CHECK:STDOUT: %Op.72717c.11: %Op.type.442b68.11 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.98f: = custom_witness (%Int64, %Op.72717c.11), @AddWith.1, @AddWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.7d0: %facet_type.fdd = facet_value %Int64, (%custom_witness.e7a31c.3, %custom_witness.98f) [concrete] +// CHECK:STDOUT: %pattern_type.5b4: type = pattern_type %facet_type.fdd [concrete] +// CHECK:STDOUT: %facet_type.2c4: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int32) where %impl.elem0.ee1 = %Int64> [concrete] +// CHECK:STDOUT: %Op.type.442b68.12: type = fn_type @Op.12 [concrete] +// CHECK:STDOUT: %Op.72717c.12: %Op.type.442b68.12 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.5c3: = custom_witness (%Int64, %Op.72717c.12), @SubWith.1, @SubWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.51b: %facet_type.2c4 = facet_value %Int64, (%custom_witness.e7a31c.3, %custom_witness.5c3) [concrete] +// CHECK:STDOUT: %pattern_type.515: type = pattern_type %facet_type.2c4 [concrete] +// CHECK:STDOUT: %facet_type.99c: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int32) where %impl.elem0.d19 = %Int64> [concrete] +// CHECK:STDOUT: %Op.type.442b68.13: type = fn_type @Op.13 [concrete] +// CHECK:STDOUT: %Op.72717c.13: %Op.type.442b68.13 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.ac0: = custom_witness (%Int64, %Op.72717c.13), @MulWith.1, @MulWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.738: %facet_type.99c = facet_value %Int64, (%custom_witness.e7a31c.3, %custom_witness.ac0) [concrete] +// CHECK:STDOUT: %pattern_type.bb6: type = pattern_type %facet_type.99c [concrete] +// CHECK:STDOUT: %facet_type.7ce: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int32) where %impl.elem0.282 = %Int64> [concrete] +// CHECK:STDOUT: %Op.type.442b68.14: type = fn_type @Op.14 [concrete] +// CHECK:STDOUT: %Op.72717c.14: %Op.type.442b68.14 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.c98: = custom_witness (%Int64, %Op.72717c.14), @DivWith.1, @DivWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.c2b: %facet_type.7ce = facet_value %Int64, (%custom_witness.e7a31c.3, %custom_witness.c98) [concrete] +// CHECK:STDOUT: %pattern_type.59a: type = pattern_type %facet_type.7ce [concrete] +// CHECK:STDOUT: %facet_type.c2e: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int32) where %impl.elem0.32c = %Int64> [concrete] +// CHECK:STDOUT: %Op.type.442b68.15: type = fn_type @Op.15 [concrete] +// CHECK:STDOUT: %Op.72717c.15: %Op.type.442b68.15 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.e66: = custom_witness (%Int64, %Op.72717c.15), @ModWith.1, @ModWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.606: %facet_type.c2e = facet_value %Int64, (%custom_witness.e7a31c.3, %custom_witness.e66) [concrete] +// CHECK:STDOUT: %pattern_type.af40: type = pattern_type %facet_type.c2e [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.c2c: type = fn_type @Destroy.WithSelf.Op, @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: %Destroy.WithSelf.Op.type.b76: type = fn_type @Destroy.WithSelf.Op, @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: %Destroy.WithSelf.Op.type.9d5: type = fn_type @Destroy.WithSelf.Op, @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: %U.67d: type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %AddAssignWith.type.f7e94b.1: type = facet_type <@AddAssignWith.1, @AddAssignWith.1(%Other)> [symbolic] -// CHECK:STDOUT: %Self.c9ea37.1: %AddAssignWith.type.f7e94b.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %AddAssignWith.assoc_type.d9654f.1: type = assoc_entity_type @AddAssignWith.1, @AddAssignWith.1(%Other) [symbolic] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.86ac33.1: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Other, %Self.c9ea37.1) [symbolic] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.31f15f.1: %AddAssignWith.WithSelf.Op.type.86ac33.1 = struct_value () [symbolic] -// CHECK:STDOUT: %AddAssignWith.type.f7e94b.2: type = facet_type <@AddAssignWith.1, @AddAssignWith.1(%U.67d)> [symbolic] -// CHECK:STDOUT: %pattern_type.323: type = pattern_type %AddAssignWith.type.f7e94b.2 [symbolic] -// CHECK:STDOUT: %T.c9e: %AddAssignWith.type.f7e94b.2 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %AddAssignWith.assoc_type.d9654f.2: type = assoc_entity_type @AddAssignWith.1, @AddAssignWith.1(%U.67d) [symbolic] -// CHECK:STDOUT: %assoc0.beca96.2: %AddAssignWith.assoc_type.d9654f.2 = assoc_entity element0, imports.%Core.import_ref.62c [symbolic] -// CHECK:STDOUT: %T.as_type.82b: type = facet_access_type %T.c9e [symbolic] -// CHECK:STDOUT: %pattern_type.d713dc.2: type = pattern_type %T.as_type.82b [symbolic] +// CHECK:STDOUT: %AddAssignWith.type.2c8890.1: type = facet_type <@AddAssignWith.1, @AddAssignWith.1(%Other)> [symbolic] +// CHECK:STDOUT: %Self.792732.1: %AddAssignWith.type.2c8890.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %AddAssignWith.assoc_type.8ddaf4.1: type = assoc_entity_type @AddAssignWith.1, @AddAssignWith.1(%Other) [symbolic] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.cd574e.1: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Other, %Self.792732.1) [symbolic] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.106889.1: %AddAssignWith.WithSelf.Op.type.cd574e.1 = struct_value () [symbolic] +// CHECK:STDOUT: %AddAssignWith.type.2c8890.2: type = facet_type <@AddAssignWith.1, @AddAssignWith.1(%U.67d)> [symbolic] +// CHECK:STDOUT: %pattern_type.82d: type = pattern_type %AddAssignWith.type.2c8890.2 [symbolic] +// CHECK:STDOUT: %T.792: %AddAssignWith.type.2c8890.2 = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %AddAssignWith.assoc_type.8ddaf4.2: type = assoc_entity_type @AddAssignWith.1, @AddAssignWith.1(%U.67d) [symbolic] +// CHECK:STDOUT: %assoc0.8c5739.2: %AddAssignWith.assoc_type.8ddaf4.2 = assoc_entity element0, imports.%Core.import_ref.3b2 [symbolic] +// CHECK:STDOUT: %T.as_type.50c: type = facet_access_type %T.792 [symbolic] +// CHECK:STDOUT: %pattern_type.643306.2: type = pattern_type %T.as_type.50c [symbolic] // CHECK:STDOUT: %pattern_type.51d1c4.4: type = pattern_type %U.67d [symbolic] -// CHECK:STDOUT: %require_complete.e50: = require_complete_type %AddAssignWith.type.f7e94b.2 [symbolic] -// CHECK:STDOUT: %assoc0.1e6: %AddAssignWith.assoc_type.d9654f.1 = assoc_entity element0, imports.%Core.import_ref.970 [symbolic] -// CHECK:STDOUT: %AddAssignWith.lookup_impl_witness: = lookup_impl_witness %T.c9e, @AddAssignWith.1, @AddAssignWith.1(%U.67d) [symbolic] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.86ac33.3: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%U.67d, %T.c9e) [symbolic] -// CHECK:STDOUT: %.1da: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.86ac33.3, %T.c9e [symbolic] -// CHECK:STDOUT: %impl.elem0.28f: %.1da = impl_witness_access %AddAssignWith.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.c19: = specific_impl_function %impl.elem0.28f, @AddAssignWith.WithSelf.Op(%U.67d, %T.c9e) [symbolic] -// CHECK:STDOUT: %SubAssignWith.type.591a5f.1: type = facet_type <@SubAssignWith.1, @SubAssignWith.1(%Other)> [symbolic] -// CHECK:STDOUT: %Self.a96693.1: %SubAssignWith.type.591a5f.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %SubAssignWith.assoc_type.efddf3.1: type = assoc_entity_type @SubAssignWith.1, @SubAssignWith.1(%Other) [symbolic] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.839113.1: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Other, %Self.a96693.1) [symbolic] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.2286e8.1: %SubAssignWith.WithSelf.Op.type.839113.1 = struct_value () [symbolic] -// CHECK:STDOUT: %SubAssignWith.type.591a5f.2: type = facet_type <@SubAssignWith.1, @SubAssignWith.1(%U.67d)> [symbolic] -// CHECK:STDOUT: %pattern_type.46c: type = pattern_type %SubAssignWith.type.591a5f.2 [symbolic] -// CHECK:STDOUT: %T.a96: %SubAssignWith.type.591a5f.2 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %SubAssignWith.assoc_type.efddf3.2: type = assoc_entity_type @SubAssignWith.1, @SubAssignWith.1(%U.67d) [symbolic] -// CHECK:STDOUT: %assoc0.382bd4.2: %SubAssignWith.assoc_type.efddf3.2 = assoc_entity element0, imports.%Core.import_ref.e50 [symbolic] -// CHECK:STDOUT: %T.as_type.765: type = facet_access_type %T.a96 [symbolic] -// CHECK:STDOUT: %pattern_type.f40fa3.2: type = pattern_type %T.as_type.765 [symbolic] -// CHECK:STDOUT: %require_complete.b28: = require_complete_type %SubAssignWith.type.591a5f.2 [symbolic] -// CHECK:STDOUT: %assoc0.936: %SubAssignWith.assoc_type.efddf3.1 = assoc_entity element0, imports.%Core.import_ref.7b0 [symbolic] -// CHECK:STDOUT: %SubAssignWith.lookup_impl_witness: = lookup_impl_witness %T.a96, @SubAssignWith.1, @SubAssignWith.1(%U.67d) [symbolic] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.839113.3: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%U.67d, %T.a96) [symbolic] -// CHECK:STDOUT: %.3df: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.839113.3, %T.a96 [symbolic] -// CHECK:STDOUT: %impl.elem0.dac: %.3df = impl_witness_access %SubAssignWith.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.2f2: = specific_impl_function %impl.elem0.dac, @SubAssignWith.WithSelf.Op(%U.67d, %T.a96) [symbolic] -// CHECK:STDOUT: %MulAssignWith.type.b9aa5c.1: type = facet_type <@MulAssignWith.1, @MulAssignWith.1(%Other)> [symbolic] -// CHECK:STDOUT: %Self.1ab5ec.1: %MulAssignWith.type.b9aa5c.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %MulAssignWith.assoc_type.153441.1: type = assoc_entity_type @MulAssignWith.1, @MulAssignWith.1(%Other) [symbolic] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.44adac.1: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Other, %Self.1ab5ec.1) [symbolic] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.f87570.1: %MulAssignWith.WithSelf.Op.type.44adac.1 = struct_value () [symbolic] -// CHECK:STDOUT: %MulAssignWith.type.b9aa5c.2: type = facet_type <@MulAssignWith.1, @MulAssignWith.1(%U.67d)> [symbolic] -// CHECK:STDOUT: %pattern_type.a30: type = pattern_type %MulAssignWith.type.b9aa5c.2 [symbolic] -// CHECK:STDOUT: %T.1ab: %MulAssignWith.type.b9aa5c.2 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %MulAssignWith.assoc_type.153441.2: type = assoc_entity_type @MulAssignWith.1, @MulAssignWith.1(%U.67d) [symbolic] -// CHECK:STDOUT: %assoc0.54a880.2: %MulAssignWith.assoc_type.153441.2 = assoc_entity element0, imports.%Core.import_ref.763 [symbolic] -// CHECK:STDOUT: %T.as_type.e75: type = facet_access_type %T.1ab [symbolic] -// CHECK:STDOUT: %pattern_type.07a4e0.2: type = pattern_type %T.as_type.e75 [symbolic] -// CHECK:STDOUT: %require_complete.ea2: = require_complete_type %MulAssignWith.type.b9aa5c.2 [symbolic] -// CHECK:STDOUT: %assoc0.862: %MulAssignWith.assoc_type.153441.1 = assoc_entity element0, imports.%Core.import_ref.634 [symbolic] -// CHECK:STDOUT: %MulAssignWith.lookup_impl_witness: = lookup_impl_witness %T.1ab, @MulAssignWith.1, @MulAssignWith.1(%U.67d) [symbolic] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.44adac.3: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%U.67d, %T.1ab) [symbolic] -// CHECK:STDOUT: %.42e: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.44adac.3, %T.1ab [symbolic] -// CHECK:STDOUT: %impl.elem0.822: %.42e = impl_witness_access %MulAssignWith.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.cf3: = specific_impl_function %impl.elem0.822, @MulAssignWith.WithSelf.Op(%U.67d, %T.1ab) [symbolic] -// CHECK:STDOUT: %DivAssignWith.type.c97ac9.1: type = facet_type <@DivAssignWith.1, @DivAssignWith.1(%Other)> [symbolic] -// CHECK:STDOUT: %Self.43908b.1: %DivAssignWith.type.c97ac9.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %DivAssignWith.assoc_type.c30cb0.1: type = assoc_entity_type @DivAssignWith.1, @DivAssignWith.1(%Other) [symbolic] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.8e0740.1: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Other, %Self.43908b.1) [symbolic] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.0bd7e1.1: %DivAssignWith.WithSelf.Op.type.8e0740.1 = struct_value () [symbolic] -// CHECK:STDOUT: %DivAssignWith.type.c97ac9.2: type = facet_type <@DivAssignWith.1, @DivAssignWith.1(%U.67d)> [symbolic] -// CHECK:STDOUT: %pattern_type.fa6: type = pattern_type %DivAssignWith.type.c97ac9.2 [symbolic] -// CHECK:STDOUT: %T.439: %DivAssignWith.type.c97ac9.2 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %DivAssignWith.assoc_type.c30cb0.2: type = assoc_entity_type @DivAssignWith.1, @DivAssignWith.1(%U.67d) [symbolic] -// CHECK:STDOUT: %assoc0.bd6a2d.2: %DivAssignWith.assoc_type.c30cb0.2 = assoc_entity element0, imports.%Core.import_ref.d8a [symbolic] -// CHECK:STDOUT: %T.as_type.5d7: type = facet_access_type %T.439 [symbolic] -// CHECK:STDOUT: %pattern_type.12d907.2: type = pattern_type %T.as_type.5d7 [symbolic] -// CHECK:STDOUT: %require_complete.3f4: = require_complete_type %DivAssignWith.type.c97ac9.2 [symbolic] -// CHECK:STDOUT: %assoc0.086: %DivAssignWith.assoc_type.c30cb0.1 = assoc_entity element0, imports.%Core.import_ref.b97 [symbolic] -// CHECK:STDOUT: %DivAssignWith.lookup_impl_witness: = lookup_impl_witness %T.439, @DivAssignWith.1, @DivAssignWith.1(%U.67d) [symbolic] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.8e0740.3: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%U.67d, %T.439) [symbolic] -// CHECK:STDOUT: %.28f: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.8e0740.3, %T.439 [symbolic] -// CHECK:STDOUT: %impl.elem0.f6e: %.28f = impl_witness_access %DivAssignWith.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.5bc: = specific_impl_function %impl.elem0.f6e, @DivAssignWith.WithSelf.Op(%U.67d, %T.439) [symbolic] -// CHECK:STDOUT: %ModAssignWith.type.8faa47.1: type = facet_type <@ModAssignWith.1, @ModAssignWith.1(%Other)> [symbolic] -// CHECK:STDOUT: %Self.da03f6.1: %ModAssignWith.type.8faa47.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ModAssignWith.assoc_type.0ff0e5.1: type = assoc_entity_type @ModAssignWith.1, @ModAssignWith.1(%Other) [symbolic] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.292942.1: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Other, %Self.da03f6.1) [symbolic] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.84faf3.1: %ModAssignWith.WithSelf.Op.type.292942.1 = struct_value () [symbolic] -// CHECK:STDOUT: %ModAssignWith.type.8faa47.2: type = facet_type <@ModAssignWith.1, @ModAssignWith.1(%U.67d)> [symbolic] -// CHECK:STDOUT: %pattern_type.383: type = pattern_type %ModAssignWith.type.8faa47.2 [symbolic] -// CHECK:STDOUT: %T.da0: %ModAssignWith.type.8faa47.2 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %ModAssignWith.assoc_type.0ff0e5.2: type = assoc_entity_type @ModAssignWith.1, @ModAssignWith.1(%U.67d) [symbolic] -// CHECK:STDOUT: %assoc0.3824c9.2: %ModAssignWith.assoc_type.0ff0e5.2 = assoc_entity element0, imports.%Core.import_ref.aee3 [symbolic] -// CHECK:STDOUT: %T.as_type.4cb: type = facet_access_type %T.da0 [symbolic] -// CHECK:STDOUT: %pattern_type.7b701e.2: type = pattern_type %T.as_type.4cb [symbolic] -// CHECK:STDOUT: %require_complete.9bf: = require_complete_type %ModAssignWith.type.8faa47.2 [symbolic] -// CHECK:STDOUT: %assoc0.715: %ModAssignWith.assoc_type.0ff0e5.1 = assoc_entity element0, imports.%Core.import_ref.248 [symbolic] -// CHECK:STDOUT: %ModAssignWith.lookup_impl_witness: = lookup_impl_witness %T.da0, @ModAssignWith.1, @ModAssignWith.1(%U.67d) [symbolic] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.292942.3: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%U.67d, %T.da0) [symbolic] -// CHECK:STDOUT: %.acb: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.292942.3, %T.da0 [symbolic] -// CHECK:STDOUT: %impl.elem0.f9d: %.acb = impl_witness_access %ModAssignWith.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.802: = specific_impl_function %impl.elem0.f9d, @ModAssignWith.WithSelf.Op(%U.67d, %T.da0) [symbolic] -// CHECK:STDOUT: %AddAssignWith.type.35f: type = facet_type <@AddAssignWith.1, @AddAssignWith.1(%i16)> [concrete] -// CHECK:STDOUT: %AddAssignWith.assoc_type.3c9: type = assoc_entity_type @AddAssignWith.1, @AddAssignWith.1(%i16) [concrete] -// CHECK:STDOUT: %assoc0.d69: %AddAssignWith.assoc_type.3c9 = assoc_entity element0, imports.%Core.import_ref.62c [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.13: type = fn_type @Int16.Op.13 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.13: %Int16.Op.type.43d658.13 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.364: = custom_witness (%Int16.Op.cc70d5.13), @AddAssignWith.1, @AddAssignWith.1(%i16) [concrete] -// CHECK:STDOUT: %AddAssignWith.facet.1b3: %AddAssignWith.type.35f = facet_value %Int16, (%custom_witness.364) [concrete] -// CHECK:STDOUT: %pattern_type.25b: type = pattern_type %AddAssignWith.type.35f [concrete] -// CHECK:STDOUT: %SubAssignWith.type.121: type = facet_type <@SubAssignWith.1, @SubAssignWith.1(%i16)> [concrete] -// CHECK:STDOUT: %SubAssignWith.assoc_type.5f8: type = assoc_entity_type @SubAssignWith.1, @SubAssignWith.1(%i16) [concrete] -// CHECK:STDOUT: %assoc0.ce1: %SubAssignWith.assoc_type.5f8 = assoc_entity element0, imports.%Core.import_ref.e50 [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.14: type = fn_type @Int16.Op.14 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.14: %Int16.Op.type.43d658.14 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.4e8: = custom_witness (%Int16.Op.cc70d5.14), @SubAssignWith.1, @SubAssignWith.1(%i16) [concrete] -// CHECK:STDOUT: %SubAssignWith.facet.45a: %SubAssignWith.type.121 = facet_value %Int16, (%custom_witness.4e8) [concrete] -// CHECK:STDOUT: %pattern_type.1c3: type = pattern_type %SubAssignWith.type.121 [concrete] -// CHECK:STDOUT: %MulAssignWith.type.b7e: type = facet_type <@MulAssignWith.1, @MulAssignWith.1(%i16)> [concrete] -// CHECK:STDOUT: %MulAssignWith.assoc_type.551: type = assoc_entity_type @MulAssignWith.1, @MulAssignWith.1(%i16) [concrete] -// CHECK:STDOUT: %assoc0.75e: %MulAssignWith.assoc_type.551 = assoc_entity element0, imports.%Core.import_ref.763 [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.15: type = fn_type @Int16.Op.15 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.15: %Int16.Op.type.43d658.15 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b74: = custom_witness (%Int16.Op.cc70d5.15), @MulAssignWith.1, @MulAssignWith.1(%i16) [concrete] -// CHECK:STDOUT: %MulAssignWith.facet.805: %MulAssignWith.type.b7e = facet_value %Int16, (%custom_witness.b74) [concrete] -// CHECK:STDOUT: %pattern_type.ebd: type = pattern_type %MulAssignWith.type.b7e [concrete] -// CHECK:STDOUT: %DivAssignWith.type.0d6: type = facet_type <@DivAssignWith.1, @DivAssignWith.1(%i16)> [concrete] -// CHECK:STDOUT: %DivAssignWith.assoc_type.01d: type = assoc_entity_type @DivAssignWith.1, @DivAssignWith.1(%i16) [concrete] -// CHECK:STDOUT: %assoc0.f56: %DivAssignWith.assoc_type.01d = assoc_entity element0, imports.%Core.import_ref.d8a [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.16: type = fn_type @Int16.Op.16 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.16: %Int16.Op.type.43d658.16 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.8b6: = custom_witness (%Int16.Op.cc70d5.16), @DivAssignWith.1, @DivAssignWith.1(%i16) [concrete] -// CHECK:STDOUT: %DivAssignWith.facet.ac9: %DivAssignWith.type.0d6 = facet_value %Int16, (%custom_witness.8b6) [concrete] -// CHECK:STDOUT: %pattern_type.1f58: type = pattern_type %DivAssignWith.type.0d6 [concrete] -// CHECK:STDOUT: %ModAssignWith.type.d0f: type = facet_type <@ModAssignWith.1, @ModAssignWith.1(%i16)> [concrete] -// CHECK:STDOUT: %ModAssignWith.assoc_type.9c3: type = assoc_entity_type @ModAssignWith.1, @ModAssignWith.1(%i16) [concrete] -// CHECK:STDOUT: %assoc0.e07: %ModAssignWith.assoc_type.9c3 = assoc_entity element0, imports.%Core.import_ref.aee3 [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.17: type = fn_type @Int16.Op.17 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.17: %Int16.Op.type.43d658.17 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e6d: = custom_witness (%Int16.Op.cc70d5.17), @ModAssignWith.1, @ModAssignWith.1(%i16) [concrete] -// CHECK:STDOUT: %ModAssignWith.facet.350: %ModAssignWith.type.d0f = facet_value %Int16, (%custom_witness.e6d) [concrete] -// CHECK:STDOUT: %pattern_type.e7a: type = pattern_type %ModAssignWith.type.d0f [concrete] -// CHECK:STDOUT: %AddAssignWith.type.3e8: type = facet_type <@AddAssignWith.1, @AddAssignWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %AddAssignWith.assoc_type.115: type = assoc_entity_type @AddAssignWith.1, @AddAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.8b4: %AddAssignWith.assoc_type.115 = assoc_entity element0, imports.%Core.import_ref.62c [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.12: type = fn_type @Int32.Op.12 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.12: %Int32.Op.type.43d658.12 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.ec4e63.1: = custom_witness (%Int32.Op.cc70d5.12), @AddAssignWith.1, @AddAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %AddAssignWith.facet.610: %AddAssignWith.type.3e8 = facet_value %Int32, (%custom_witness.ec4e63.1) [concrete] -// CHECK:STDOUT: %pattern_type.ae6: type = pattern_type %AddAssignWith.type.3e8 [concrete] -// CHECK:STDOUT: %SubAssignWith.type.678: type = facet_type <@SubAssignWith.1, @SubAssignWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %SubAssignWith.assoc_type.53a: type = assoc_entity_type @SubAssignWith.1, @SubAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.60e: %SubAssignWith.assoc_type.53a = assoc_entity element0, imports.%Core.import_ref.e50 [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.14: type = fn_type @Int32.Op.14 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.14: %Int32.Op.type.43d658.14 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.75ca2a.1: = custom_witness (%Int32.Op.cc70d5.14), @SubAssignWith.1, @SubAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %SubAssignWith.facet.fb2: %SubAssignWith.type.678 = facet_value %Int32, (%custom_witness.75ca2a.1) [concrete] -// CHECK:STDOUT: %pattern_type.470: type = pattern_type %SubAssignWith.type.678 [concrete] -// CHECK:STDOUT: %MulAssignWith.type.011: type = facet_type <@MulAssignWith.1, @MulAssignWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %MulAssignWith.assoc_type.f6b: type = assoc_entity_type @MulAssignWith.1, @MulAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.1a2: %MulAssignWith.assoc_type.f6b = assoc_entity element0, imports.%Core.import_ref.763 [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.15: type = fn_type @Int32.Op.15 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.15: %Int32.Op.type.43d658.15 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.7d92f3.1: = custom_witness (%Int32.Op.cc70d5.15), @MulAssignWith.1, @MulAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %MulAssignWith.facet.8f5: %MulAssignWith.type.011 = facet_value %Int32, (%custom_witness.7d92f3.1) [concrete] -// CHECK:STDOUT: %pattern_type.c27: type = pattern_type %MulAssignWith.type.011 [concrete] -// CHECK:STDOUT: %DivAssignWith.type.487: type = facet_type <@DivAssignWith.1, @DivAssignWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %DivAssignWith.assoc_type.047: type = assoc_entity_type @DivAssignWith.1, @DivAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.cd7: %DivAssignWith.assoc_type.047 = assoc_entity element0, imports.%Core.import_ref.d8a [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.16: type = fn_type @Int32.Op.16 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.16: %Int32.Op.type.43d658.16 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.cdc44b.1: = custom_witness (%Int32.Op.cc70d5.16), @DivAssignWith.1, @DivAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %DivAssignWith.facet.3bc: %DivAssignWith.type.487 = facet_value %Int32, (%custom_witness.cdc44b.1) [concrete] -// CHECK:STDOUT: %pattern_type.492: type = pattern_type %DivAssignWith.type.487 [concrete] -// CHECK:STDOUT: %ModAssignWith.type.499: type = facet_type <@ModAssignWith.1, @ModAssignWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %ModAssignWith.assoc_type.e0e: type = assoc_entity_type @ModAssignWith.1, @ModAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.928: %ModAssignWith.assoc_type.e0e = assoc_entity element0, imports.%Core.import_ref.aee3 [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.17: type = fn_type @Int32.Op.17 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.17: %Int32.Op.type.43d658.17 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.ec99b7.1: = custom_witness (%Int32.Op.cc70d5.17), @ModAssignWith.1, @ModAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %ModAssignWith.facet.b73: %ModAssignWith.type.499 = facet_value %Int32, (%custom_witness.ec99b7.1) [concrete] -// CHECK:STDOUT: %pattern_type.f79: type = pattern_type %ModAssignWith.type.499 [concrete] -// CHECK:STDOUT: %Int64.Op.type.43d658.2: type = fn_type @Int64.Op.2 [concrete] -// CHECK:STDOUT: %Int64.Op.cc70d5.2: %Int64.Op.type.43d658.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.ec4e63.2: = custom_witness (%Int64.Op.cc70d5.2), @AddAssignWith.1, @AddAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %AddAssignWith.facet.080: %AddAssignWith.type.3e8 = facet_value %Int64, (%custom_witness.ec4e63.2) [concrete] -// CHECK:STDOUT: %Int64.Op.type.43d658.4: type = fn_type @Int64.Op.4 [concrete] -// CHECK:STDOUT: %Int64.Op.cc70d5.4: %Int64.Op.type.43d658.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.75ca2a.2: = custom_witness (%Int64.Op.cc70d5.4), @SubAssignWith.1, @SubAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %SubAssignWith.facet.8bc: %SubAssignWith.type.678 = facet_value %Int64, (%custom_witness.75ca2a.2) [concrete] -// CHECK:STDOUT: %Int64.Op.type.43d658.5: type = fn_type @Int64.Op.5 [concrete] -// CHECK:STDOUT: %Int64.Op.cc70d5.5: %Int64.Op.type.43d658.5 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.7d92f3.2: = custom_witness (%Int64.Op.cc70d5.5), @MulAssignWith.1, @MulAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %MulAssignWith.facet.990: %MulAssignWith.type.011 = facet_value %Int64, (%custom_witness.7d92f3.2) [concrete] -// CHECK:STDOUT: %Int64.Op.type.43d658.6: type = fn_type @Int64.Op.6 [concrete] -// CHECK:STDOUT: %Int64.Op.cc70d5.6: %Int64.Op.type.43d658.6 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.cdc44b.2: = custom_witness (%Int64.Op.cc70d5.6), @DivAssignWith.1, @DivAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %DivAssignWith.facet.3eb: %DivAssignWith.type.487 = facet_value %Int64, (%custom_witness.cdc44b.2) [concrete] -// CHECK:STDOUT: %Int64.Op.type.43d658.7: type = fn_type @Int64.Op.7 [concrete] -// CHECK:STDOUT: %Int64.Op.cc70d5.7: %Int64.Op.type.43d658.7 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.ec99b7.2: = custom_witness (%Int64.Op.cc70d5.7), @ModAssignWith.1, @ModAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %ModAssignWith.facet.2d7: %ModAssignWith.type.499 = facet_value %Int64, (%custom_witness.ec99b7.2) [concrete] +// CHECK:STDOUT: %require_complete.2a8: = require_complete_type %AddAssignWith.type.2c8890.2 [symbolic] +// CHECK:STDOUT: %assoc0.86d: %AddAssignWith.assoc_type.8ddaf4.1 = assoc_entity element0, imports.%Core.import_ref.87e [symbolic] +// CHECK:STDOUT: %AddAssignWith.lookup_impl_witness: = lookup_impl_witness %T.792, @AddAssignWith.1, @AddAssignWith.1(%U.67d) [symbolic] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.cd574e.3: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%U.67d, %T.792) [symbolic] +// CHECK:STDOUT: %.9b1: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.cd574e.3, %T.792 [symbolic] +// CHECK:STDOUT: %impl.elem0.985: %.9b1 = impl_witness_access %AddAssignWith.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.d36: = specific_impl_function %impl.elem0.985, @AddAssignWith.WithSelf.Op(%U.67d, %T.792) [symbolic] +// CHECK:STDOUT: %SubAssignWith.type.7e53cf.1: type = facet_type <@SubAssignWith.1, @SubAssignWith.1(%Other)> [symbolic] +// CHECK:STDOUT: %Self.f6c9aa.1: %SubAssignWith.type.7e53cf.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %SubAssignWith.assoc_type.6e3877.1: type = assoc_entity_type @SubAssignWith.1, @SubAssignWith.1(%Other) [symbolic] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.42f7cc.1: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Other, %Self.f6c9aa.1) [symbolic] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.25af21.1: %SubAssignWith.WithSelf.Op.type.42f7cc.1 = struct_value () [symbolic] +// CHECK:STDOUT: %SubAssignWith.type.7e53cf.2: type = facet_type <@SubAssignWith.1, @SubAssignWith.1(%U.67d)> [symbolic] +// CHECK:STDOUT: %pattern_type.260: type = pattern_type %SubAssignWith.type.7e53cf.2 [symbolic] +// CHECK:STDOUT: %T.f6c: %SubAssignWith.type.7e53cf.2 = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %SubAssignWith.assoc_type.6e3877.2: type = assoc_entity_type @SubAssignWith.1, @SubAssignWith.1(%U.67d) [symbolic] +// CHECK:STDOUT: %assoc0.701e5f.2: %SubAssignWith.assoc_type.6e3877.2 = assoc_entity element0, imports.%Core.import_ref.8f2 [symbolic] +// CHECK:STDOUT: %T.as_type.3ff: type = facet_access_type %T.f6c [symbolic] +// CHECK:STDOUT: %pattern_type.f08ed5.2: type = pattern_type %T.as_type.3ff [symbolic] +// CHECK:STDOUT: %require_complete.862: = require_complete_type %SubAssignWith.type.7e53cf.2 [symbolic] +// CHECK:STDOUT: %assoc0.b8e: %SubAssignWith.assoc_type.6e3877.1 = assoc_entity element0, imports.%Core.import_ref.e7f [symbolic] +// CHECK:STDOUT: %SubAssignWith.lookup_impl_witness: = lookup_impl_witness %T.f6c, @SubAssignWith.1, @SubAssignWith.1(%U.67d) [symbolic] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.42f7cc.3: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%U.67d, %T.f6c) [symbolic] +// CHECK:STDOUT: %.e56: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.42f7cc.3, %T.f6c [symbolic] +// CHECK:STDOUT: %impl.elem0.dd3: %.e56 = impl_witness_access %SubAssignWith.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.5da: = specific_impl_function %impl.elem0.dd3, @SubAssignWith.WithSelf.Op(%U.67d, %T.f6c) [symbolic] +// CHECK:STDOUT: %MulAssignWith.type.3a0e4d.1: type = facet_type <@MulAssignWith.1, @MulAssignWith.1(%Other)> [symbolic] +// CHECK:STDOUT: %Self.64dcb0.1: %MulAssignWith.type.3a0e4d.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %MulAssignWith.assoc_type.9aa18f.1: type = assoc_entity_type @MulAssignWith.1, @MulAssignWith.1(%Other) [symbolic] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.5df5bd.1: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Other, %Self.64dcb0.1) [symbolic] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.ee0eda.1: %MulAssignWith.WithSelf.Op.type.5df5bd.1 = struct_value () [symbolic] +// CHECK:STDOUT: %MulAssignWith.type.3a0e4d.2: type = facet_type <@MulAssignWith.1, @MulAssignWith.1(%U.67d)> [symbolic] +// CHECK:STDOUT: %pattern_type.8c2: type = pattern_type %MulAssignWith.type.3a0e4d.2 [symbolic] +// CHECK:STDOUT: %T.64d: %MulAssignWith.type.3a0e4d.2 = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %MulAssignWith.assoc_type.9aa18f.2: type = assoc_entity_type @MulAssignWith.1, @MulAssignWith.1(%U.67d) [symbolic] +// CHECK:STDOUT: %assoc0.22264a.2: %MulAssignWith.assoc_type.9aa18f.2 = assoc_entity element0, imports.%Core.import_ref.ba3 [symbolic] +// CHECK:STDOUT: %T.as_type.1de: type = facet_access_type %T.64d [symbolic] +// CHECK:STDOUT: %pattern_type.8bf366.2: type = pattern_type %T.as_type.1de [symbolic] +// CHECK:STDOUT: %require_complete.6b1: = require_complete_type %MulAssignWith.type.3a0e4d.2 [symbolic] +// CHECK:STDOUT: %assoc0.2ec: %MulAssignWith.assoc_type.9aa18f.1 = assoc_entity element0, imports.%Core.import_ref.408 [symbolic] +// CHECK:STDOUT: %MulAssignWith.lookup_impl_witness: = lookup_impl_witness %T.64d, @MulAssignWith.1, @MulAssignWith.1(%U.67d) [symbolic] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.5df5bd.3: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%U.67d, %T.64d) [symbolic] +// CHECK:STDOUT: %.2db: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.5df5bd.3, %T.64d [symbolic] +// CHECK:STDOUT: %impl.elem0.c0f: %.2db = impl_witness_access %MulAssignWith.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.54d: = specific_impl_function %impl.elem0.c0f, @MulAssignWith.WithSelf.Op(%U.67d, %T.64d) [symbolic] +// CHECK:STDOUT: %DivAssignWith.type.7e58ca.1: type = facet_type <@DivAssignWith.1, @DivAssignWith.1(%Other)> [symbolic] +// CHECK:STDOUT: %Self.c33c81.1: %DivAssignWith.type.7e58ca.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %DivAssignWith.assoc_type.bb68ec.1: type = assoc_entity_type @DivAssignWith.1, @DivAssignWith.1(%Other) [symbolic] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.ff5775.1: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Other, %Self.c33c81.1) [symbolic] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.91e0ff.1: %DivAssignWith.WithSelf.Op.type.ff5775.1 = struct_value () [symbolic] +// CHECK:STDOUT: %DivAssignWith.type.7e58ca.2: type = facet_type <@DivAssignWith.1, @DivAssignWith.1(%U.67d)> [symbolic] +// CHECK:STDOUT: %pattern_type.f74: type = pattern_type %DivAssignWith.type.7e58ca.2 [symbolic] +// CHECK:STDOUT: %T.c33: %DivAssignWith.type.7e58ca.2 = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %DivAssignWith.assoc_type.bb68ec.2: type = assoc_entity_type @DivAssignWith.1, @DivAssignWith.1(%U.67d) [symbolic] +// CHECK:STDOUT: %assoc0.32f100.2: %DivAssignWith.assoc_type.bb68ec.2 = assoc_entity element0, imports.%Core.import_ref.a5d [symbolic] +// CHECK:STDOUT: %T.as_type.e57: type = facet_access_type %T.c33 [symbolic] +// CHECK:STDOUT: %pattern_type.da303b.2: type = pattern_type %T.as_type.e57 [symbolic] +// CHECK:STDOUT: %require_complete.c5c: = require_complete_type %DivAssignWith.type.7e58ca.2 [symbolic] +// CHECK:STDOUT: %assoc0.de1: %DivAssignWith.assoc_type.bb68ec.1 = assoc_entity element0, imports.%Core.import_ref.df2 [symbolic] +// CHECK:STDOUT: %DivAssignWith.lookup_impl_witness: = lookup_impl_witness %T.c33, @DivAssignWith.1, @DivAssignWith.1(%U.67d) [symbolic] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.ff5775.3: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%U.67d, %T.c33) [symbolic] +// CHECK:STDOUT: %.754: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.ff5775.3, %T.c33 [symbolic] +// CHECK:STDOUT: %impl.elem0.0c4: %.754 = impl_witness_access %DivAssignWith.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.011: = specific_impl_function %impl.elem0.0c4, @DivAssignWith.WithSelf.Op(%U.67d, %T.c33) [symbolic] +// CHECK:STDOUT: %ModAssignWith.type.778d68.1: type = facet_type <@ModAssignWith.1, @ModAssignWith.1(%Other)> [symbolic] +// CHECK:STDOUT: %Self.bca00b.1: %ModAssignWith.type.778d68.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ModAssignWith.assoc_type.bc79ec.1: type = assoc_entity_type @ModAssignWith.1, @ModAssignWith.1(%Other) [symbolic] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.ec4109.1: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Other, %Self.bca00b.1) [symbolic] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.ac45fc.1: %ModAssignWith.WithSelf.Op.type.ec4109.1 = struct_value () [symbolic] +// CHECK:STDOUT: %ModAssignWith.type.778d68.2: type = facet_type <@ModAssignWith.1, @ModAssignWith.1(%U.67d)> [symbolic] +// CHECK:STDOUT: %pattern_type.fb8: type = pattern_type %ModAssignWith.type.778d68.2 [symbolic] +// CHECK:STDOUT: %T.bca: %ModAssignWith.type.778d68.2 = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %ModAssignWith.assoc_type.bc79ec.2: type = assoc_entity_type @ModAssignWith.1, @ModAssignWith.1(%U.67d) [symbolic] +// CHECK:STDOUT: %assoc0.8c0719.2: %ModAssignWith.assoc_type.bc79ec.2 = assoc_entity element0, imports.%Core.import_ref.cf6 [symbolic] +// CHECK:STDOUT: %T.as_type.ce6: type = facet_access_type %T.bca [symbolic] +// CHECK:STDOUT: %pattern_type.1d5f30.2: type = pattern_type %T.as_type.ce6 [symbolic] +// CHECK:STDOUT: %require_complete.680: = require_complete_type %ModAssignWith.type.778d68.2 [symbolic] +// CHECK:STDOUT: %assoc0.0f3: %ModAssignWith.assoc_type.bc79ec.1 = assoc_entity element0, imports.%Core.import_ref.d29 [symbolic] +// CHECK:STDOUT: %ModAssignWith.lookup_impl_witness: = lookup_impl_witness %T.bca, @ModAssignWith.1, @ModAssignWith.1(%U.67d) [symbolic] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.ec4109.3: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%U.67d, %T.bca) [symbolic] +// CHECK:STDOUT: %.965: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.ec4109.3, %T.bca [symbolic] +// CHECK:STDOUT: %impl.elem0.ec7: %.965 = impl_witness_access %ModAssignWith.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.cf7: = specific_impl_function %impl.elem0.ec7, @ModAssignWith.WithSelf.Op(%U.67d, %T.bca) [symbolic] +// CHECK:STDOUT: %AddAssignWith.type.2a0: type = facet_type <@AddAssignWith.1, @AddAssignWith.1(%i16)> [concrete] +// CHECK:STDOUT: %AddAssignWith.assoc_type.1bb: type = assoc_entity_type @AddAssignWith.1, @AddAssignWith.1(%i16) [concrete] +// CHECK:STDOUT: %assoc0.24b: %AddAssignWith.assoc_type.1bb = assoc_entity element0, imports.%Core.import_ref.3b2 [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.13: type = fn_type @Int16.Op.13 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.13: %Int16.Op.type.83af6e.13 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6a0: = custom_witness (%Int16.Op.4dca31.13), @AddAssignWith.1, @AddAssignWith.1(%i16) [concrete] +// CHECK:STDOUT: %AddAssignWith.facet.e34: %AddAssignWith.type.2a0 = facet_value %Int16, (%custom_witness.6a0) [concrete] +// CHECK:STDOUT: %pattern_type.b256: type = pattern_type %AddAssignWith.type.2a0 [concrete] +// CHECK:STDOUT: %SubAssignWith.type.e8b: type = facet_type <@SubAssignWith.1, @SubAssignWith.1(%i16)> [concrete] +// CHECK:STDOUT: %SubAssignWith.assoc_type.e13: type = assoc_entity_type @SubAssignWith.1, @SubAssignWith.1(%i16) [concrete] +// CHECK:STDOUT: %assoc0.47c: %SubAssignWith.assoc_type.e13 = assoc_entity element0, imports.%Core.import_ref.8f2 [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.14: type = fn_type @Int16.Op.14 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.14: %Int16.Op.type.83af6e.14 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.722: = custom_witness (%Int16.Op.4dca31.14), @SubAssignWith.1, @SubAssignWith.1(%i16) [concrete] +// CHECK:STDOUT: %SubAssignWith.facet.a52: %SubAssignWith.type.e8b = facet_value %Int16, (%custom_witness.722) [concrete] +// CHECK:STDOUT: %pattern_type.c22: type = pattern_type %SubAssignWith.type.e8b [concrete] +// CHECK:STDOUT: %MulAssignWith.type.7d4: type = facet_type <@MulAssignWith.1, @MulAssignWith.1(%i16)> [concrete] +// CHECK:STDOUT: %MulAssignWith.assoc_type.aa8: type = assoc_entity_type @MulAssignWith.1, @MulAssignWith.1(%i16) [concrete] +// CHECK:STDOUT: %assoc0.137: %MulAssignWith.assoc_type.aa8 = assoc_entity element0, imports.%Core.import_ref.ba3 [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.15: type = fn_type @Int16.Op.15 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.15: %Int16.Op.type.83af6e.15 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.c67: = custom_witness (%Int16.Op.4dca31.15), @MulAssignWith.1, @MulAssignWith.1(%i16) [concrete] +// CHECK:STDOUT: %MulAssignWith.facet.201: %MulAssignWith.type.7d4 = facet_value %Int16, (%custom_witness.c67) [concrete] +// CHECK:STDOUT: %pattern_type.a24: type = pattern_type %MulAssignWith.type.7d4 [concrete] +// CHECK:STDOUT: %DivAssignWith.type.081: type = facet_type <@DivAssignWith.1, @DivAssignWith.1(%i16)> [concrete] +// CHECK:STDOUT: %DivAssignWith.assoc_type.791: type = assoc_entity_type @DivAssignWith.1, @DivAssignWith.1(%i16) [concrete] +// CHECK:STDOUT: %assoc0.a3b: %DivAssignWith.assoc_type.791 = assoc_entity element0, imports.%Core.import_ref.a5d [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.16: type = fn_type @Int16.Op.16 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.16: %Int16.Op.type.83af6e.16 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.91d: = custom_witness (%Int16.Op.4dca31.16), @DivAssignWith.1, @DivAssignWith.1(%i16) [concrete] +// CHECK:STDOUT: %DivAssignWith.facet.a72: %DivAssignWith.type.081 = facet_value %Int16, (%custom_witness.91d) [concrete] +// CHECK:STDOUT: %pattern_type.c97: type = pattern_type %DivAssignWith.type.081 [concrete] +// CHECK:STDOUT: %ModAssignWith.type.1ea: type = facet_type <@ModAssignWith.1, @ModAssignWith.1(%i16)> [concrete] +// CHECK:STDOUT: %ModAssignWith.assoc_type.91d: type = assoc_entity_type @ModAssignWith.1, @ModAssignWith.1(%i16) [concrete] +// CHECK:STDOUT: %assoc0.b7f: %ModAssignWith.assoc_type.91d = assoc_entity element0, imports.%Core.import_ref.cf6 [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.17: type = fn_type @Int16.Op.17 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.17: %Int16.Op.type.83af6e.17 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.17b: = custom_witness (%Int16.Op.4dca31.17), @ModAssignWith.1, @ModAssignWith.1(%i16) [concrete] +// CHECK:STDOUT: %ModAssignWith.facet.4a2: %ModAssignWith.type.1ea = facet_value %Int16, (%custom_witness.17b) [concrete] +// CHECK:STDOUT: %pattern_type.6ef: type = pattern_type %ModAssignWith.type.1ea [concrete] +// CHECK:STDOUT: %AddAssignWith.type.23a: type = facet_type <@AddAssignWith.1, @AddAssignWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %AddAssignWith.assoc_type.4c7: type = assoc_entity_type @AddAssignWith.1, @AddAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.114: %AddAssignWith.assoc_type.4c7 = assoc_entity element0, imports.%Core.import_ref.3b2 [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.12: type = fn_type @Int32.Op.12 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.12: %Int32.Op.type.83af6e.12 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.ebf67a.1: = custom_witness (%Int32.Op.4dca31.12), @AddAssignWith.1, @AddAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %AddAssignWith.facet.348: %AddAssignWith.type.23a = facet_value %Int32, (%custom_witness.ebf67a.1) [concrete] +// CHECK:STDOUT: %pattern_type.5ad: type = pattern_type %AddAssignWith.type.23a [concrete] +// CHECK:STDOUT: %SubAssignWith.type.4fc: type = facet_type <@SubAssignWith.1, @SubAssignWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %SubAssignWith.assoc_type.ac6: type = assoc_entity_type @SubAssignWith.1, @SubAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.c2a: %SubAssignWith.assoc_type.ac6 = assoc_entity element0, imports.%Core.import_ref.8f2 [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.14: type = fn_type @Int32.Op.14 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.14: %Int32.Op.type.83af6e.14 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.c2b241.1: = custom_witness (%Int32.Op.4dca31.14), @SubAssignWith.1, @SubAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %SubAssignWith.facet.e0e: %SubAssignWith.type.4fc = facet_value %Int32, (%custom_witness.c2b241.1) [concrete] +// CHECK:STDOUT: %pattern_type.190: type = pattern_type %SubAssignWith.type.4fc [concrete] +// CHECK:STDOUT: %MulAssignWith.type.5fb: type = facet_type <@MulAssignWith.1, @MulAssignWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %MulAssignWith.assoc_type.c04: type = assoc_entity_type @MulAssignWith.1, @MulAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.2db: %MulAssignWith.assoc_type.c04 = assoc_entity element0, imports.%Core.import_ref.ba3 [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.15: type = fn_type @Int32.Op.15 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.15: %Int32.Op.type.83af6e.15 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.ec9760.1: = custom_witness (%Int32.Op.4dca31.15), @MulAssignWith.1, @MulAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %MulAssignWith.facet.13c: %MulAssignWith.type.5fb = facet_value %Int32, (%custom_witness.ec9760.1) [concrete] +// CHECK:STDOUT: %pattern_type.f3b: type = pattern_type %MulAssignWith.type.5fb [concrete] +// CHECK:STDOUT: %DivAssignWith.type.3ea: type = facet_type <@DivAssignWith.1, @DivAssignWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %DivAssignWith.assoc_type.ccd: type = assoc_entity_type @DivAssignWith.1, @DivAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.d23: %DivAssignWith.assoc_type.ccd = assoc_entity element0, imports.%Core.import_ref.a5d [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.16: type = fn_type @Int32.Op.16 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.16: %Int32.Op.type.83af6e.16 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.9697f7.1: = custom_witness (%Int32.Op.4dca31.16), @DivAssignWith.1, @DivAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %DivAssignWith.facet.e59: %DivAssignWith.type.3ea = facet_value %Int32, (%custom_witness.9697f7.1) [concrete] +// CHECK:STDOUT: %pattern_type.8f3: type = pattern_type %DivAssignWith.type.3ea [concrete] +// CHECK:STDOUT: %ModAssignWith.type.567: type = facet_type <@ModAssignWith.1, @ModAssignWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %ModAssignWith.assoc_type.fc5: type = assoc_entity_type @ModAssignWith.1, @ModAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.1c63: %ModAssignWith.assoc_type.fc5 = assoc_entity element0, imports.%Core.import_ref.cf6 [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.17: type = fn_type @Int32.Op.17 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.17: %Int32.Op.type.83af6e.17 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.df8f2f.1: = custom_witness (%Int32.Op.4dca31.17), @ModAssignWith.1, @ModAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %ModAssignWith.facet.dac: %ModAssignWith.type.567 = facet_value %Int32, (%custom_witness.df8f2f.1) [concrete] +// CHECK:STDOUT: %pattern_type.9ff: type = pattern_type %ModAssignWith.type.567 [concrete] +// CHECK:STDOUT: %Int64.Op.type.83af6e.2: type = fn_type @Int64.Op.2 [concrete] +// CHECK:STDOUT: %Int64.Op.4dca31.2: %Int64.Op.type.83af6e.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.ebf67a.2: = custom_witness (%Int64.Op.4dca31.2), @AddAssignWith.1, @AddAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %AddAssignWith.facet.144: %AddAssignWith.type.23a = facet_value %Int64, (%custom_witness.ebf67a.2) [concrete] +// CHECK:STDOUT: %Int64.Op.type.83af6e.4: type = fn_type @Int64.Op.4 [concrete] +// CHECK:STDOUT: %Int64.Op.4dca31.4: %Int64.Op.type.83af6e.4 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.c2b241.2: = custom_witness (%Int64.Op.4dca31.4), @SubAssignWith.1, @SubAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %SubAssignWith.facet.a7e: %SubAssignWith.type.4fc = facet_value %Int64, (%custom_witness.c2b241.2) [concrete] +// CHECK:STDOUT: %Int64.Op.type.83af6e.5: type = fn_type @Int64.Op.5 [concrete] +// CHECK:STDOUT: %Int64.Op.4dca31.5: %Int64.Op.type.83af6e.5 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.ec9760.2: = custom_witness (%Int64.Op.4dca31.5), @MulAssignWith.1, @MulAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %MulAssignWith.facet.b35: %MulAssignWith.type.5fb = facet_value %Int64, (%custom_witness.ec9760.2) [concrete] +// CHECK:STDOUT: %Int64.Op.type.83af6e.6: type = fn_type @Int64.Op.6 [concrete] +// CHECK:STDOUT: %Int64.Op.4dca31.6: %Int64.Op.type.83af6e.6 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.9697f7.2: = custom_witness (%Int64.Op.4dca31.6), @DivAssignWith.1, @DivAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %DivAssignWith.facet.b1e: %DivAssignWith.type.3ea = facet_value %Int64, (%custom_witness.9697f7.2) [concrete] +// CHECK:STDOUT: %Int64.Op.type.83af6e.7: type = fn_type @Int64.Op.7 [concrete] +// CHECK:STDOUT: %Int64.Op.4dca31.7: %Int64.Op.type.83af6e.7 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.df8f2f.2: = custom_witness (%Int64.Op.4dca31.7), @ModAssignWith.1, @ModAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %ModAssignWith.facet.342: %ModAssignWith.type.567 = facet_value %Int64, (%custom_witness.df8f2f.2) [concrete] // CHECK:STDOUT: %Inc.type: type = facet_type <@Inc> [concrete] -// CHECK:STDOUT: %T.c06: %Inc.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.4cc: type = facet_access_type %T.c06 [symbolic] -// CHECK:STDOUT: %pattern_type.55fce5.2: type = pattern_type %T.as_type.4cc [symbolic] -// CHECK:STDOUT: %Inc.lookup_impl_witness: = lookup_impl_witness %T.c06, @Inc [symbolic] -// CHECK:STDOUT: %Inc.WithSelf.Op.type.1a5b76.2: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%T.c06) [symbolic] -// CHECK:STDOUT: %.bdc: type = fn_type_with_self_type %Inc.WithSelf.Op.type.1a5b76.2, %T.c06 [symbolic] -// CHECK:STDOUT: %impl.elem0.a96: %.bdc = impl_witness_access %Inc.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.d8c: = specific_impl_function %impl.elem0.a96, @Inc.WithSelf.Op(%T.c06) [symbolic] +// CHECK:STDOUT: %T.8f3: %Inc.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.232: type = facet_access_type %T.8f3 [symbolic] +// CHECK:STDOUT: %pattern_type.427bfc.2: type = pattern_type %T.as_type.232 [symbolic] +// CHECK:STDOUT: %Inc.lookup_impl_witness: = lookup_impl_witness %T.8f3, @Inc [symbolic] +// CHECK:STDOUT: %Inc.WithSelf.Op.type.e10ef6.2: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%T.8f3) [symbolic] +// CHECK:STDOUT: %.a08: type = fn_type_with_self_type %Inc.WithSelf.Op.type.e10ef6.2, %T.8f3 [symbolic] +// CHECK:STDOUT: %impl.elem0.b92: %.a08 = impl_witness_access %Inc.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.855: = specific_impl_function %impl.elem0.b92, @Inc.WithSelf.Op(%T.8f3) [symbolic] // CHECK:STDOUT: %Dec.type: type = facet_type <@Dec> [concrete] -// CHECK:STDOUT: %T.d9e: %Dec.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.915: type = facet_access_type %T.d9e [symbolic] -// CHECK:STDOUT: %pattern_type.317946.2: type = pattern_type %T.as_type.915 [symbolic] -// CHECK:STDOUT: %Dec.lookup_impl_witness: = lookup_impl_witness %T.d9e, @Dec [symbolic] -// CHECK:STDOUT: %Dec.WithSelf.Op.type.c8aa8e.2: type = fn_type @Dec.WithSelf.Op, @Dec.WithSelf(%T.d9e) [symbolic] -// CHECK:STDOUT: %.842: type = fn_type_with_self_type %Dec.WithSelf.Op.type.c8aa8e.2, %T.d9e [symbolic] -// CHECK:STDOUT: %impl.elem0.e17: %.842 = impl_witness_access %Dec.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.56c: = specific_impl_function %impl.elem0.e17, @Dec.WithSelf.Op(%T.d9e) [symbolic] +// CHECK:STDOUT: %T.e8e: %Dec.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.c32: type = facet_access_type %T.e8e [symbolic] +// CHECK:STDOUT: %pattern_type.2754f0.2: type = pattern_type %T.as_type.c32 [symbolic] +// CHECK:STDOUT: %Dec.lookup_impl_witness: = lookup_impl_witness %T.e8e, @Dec [symbolic] +// CHECK:STDOUT: %Dec.WithSelf.Op.type.bfa830.2: type = fn_type @Dec.WithSelf.Op, @Dec.WithSelf(%T.e8e) [symbolic] +// CHECK:STDOUT: %.aae: type = fn_type_with_self_type %Dec.WithSelf.Op.type.bfa830.2, %T.e8e [symbolic] +// CHECK:STDOUT: %impl.elem0.950: %.aae = impl_witness_access %Dec.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.539: = specific_impl_function %impl.elem0.950, @Dec.WithSelf.Op(%T.e8e) [symbolic] // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] -// CHECK:STDOUT: %facet_type.d7a: type = facet_type <@Destroy & @Negate> [concrete] -// CHECK:STDOUT: %.Self.d26: %facet_type.d7a = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Negate.lookup_impl_witness.53f: = lookup_impl_witness %.Self.d26, @Negate [symbolic_self] -// CHECK:STDOUT: %impl.elem0.b2f: type = impl_witness_access %Negate.lookup_impl_witness.53f, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.fb9: type = facet_type <@Destroy & @Negate where %impl.elem0.b2f = %Result.as_type> [symbolic] -// CHECK:STDOUT: %pattern_type.301: type = pattern_type %facet_type.fb9 [symbolic] -// CHECK:STDOUT: %T.0e9: %facet_type.fb9 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %T.as_type.b01: type = facet_access_type %T.0e9 [symbolic] -// CHECK:STDOUT: %pattern_type.5e6: type = pattern_type %T.as_type.b01 [symbolic] -// CHECK:STDOUT: %Negate.lookup_impl_witness.5d0: = lookup_impl_witness %T.0e9, @Negate [symbolic] -// CHECK:STDOUT: %Negate.facet.7e7: %Negate.type = facet_value %T.as_type.b01, (%Negate.lookup_impl_witness.5d0) [symbolic] -// CHECK:STDOUT: %Negate.WithSelf.Op.type.26a: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet.7e7) [symbolic] -// CHECK:STDOUT: %.0fd: type = fn_type_with_self_type %Negate.WithSelf.Op.type.26a, %Negate.facet.7e7 [symbolic] -// CHECK:STDOUT: %impl.elem1.b4a: %.0fd = impl_witness_access %Negate.lookup_impl_witness.5d0, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.037: = specific_impl_function %impl.elem1.b4a, @Negate.WithSelf.Op(%Negate.facet.7e7) [symbolic] -// CHECK:STDOUT: %Int32.Op.type.43d658.18: type = fn_type @Int32.Op.18 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.18: %Int32.Op.type.43d658.18 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.ef4: = custom_witness (%Int32.Op.cc70d5.18), @Inc [concrete] -// CHECK:STDOUT: %Inc.facet.ace: %Inc.type = facet_value %Int32, (%custom_witness.ef4) [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.19: type = fn_type @Int32.Op.19 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.19: %Int32.Op.type.43d658.19 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.7c5: = custom_witness (%Int32.Op.cc70d5.19), @Dec [concrete] -// CHECK:STDOUT: %Dec.facet.be4: %Dec.type = facet_value %Int32, (%custom_witness.7c5) [concrete] -// CHECK:STDOUT: %facet_type.999: type = facet_type <@Destroy & @Negate where %impl.elem0.b2f = %Int64> [concrete] -// CHECK:STDOUT: %Int16.Op.type.43d658.18: type = fn_type @Int16.Op.18 [concrete] -// CHECK:STDOUT: %Int16.Op.cc70d5.18: %Int16.Op.type.43d658.18 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.71b: = custom_witness (%Int64, %Int16.Op.cc70d5.18), @Negate [concrete] -// CHECK:STDOUT: %facet_value.e43: %facet_type.999 = facet_value %Int16, (%custom_witness.a98c63.1, %custom_witness.71b) [concrete] -// CHECK:STDOUT: %pattern_type.04d: type = pattern_type %facet_type.999 [concrete] -// CHECK:STDOUT: %facet_type.363: type = facet_type <@Destroy & @Negate where %impl.elem0.b2f = %Int32> [concrete] -// CHECK:STDOUT: %Int32.Op.type.43d658.20: type = fn_type @Int32.Op.20 [concrete] -// CHECK:STDOUT: %Int32.Op.cc70d5.20: %Int32.Op.type.43d658.20 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.45a: = custom_witness (%Int32, %Int32.Op.cc70d5.20), @Negate [concrete] -// CHECK:STDOUT: %facet_value.b3a: %facet_type.363 = facet_value %Int32, (%custom_witness.a98c63.2, %custom_witness.45a) [concrete] -// CHECK:STDOUT: %pattern_type.4d0: type = pattern_type %facet_type.363 [concrete] -// CHECK:STDOUT: %complete_type.386: = complete_type_witness %AddWith.type.6f4 [concrete] -// CHECK:STDOUT: %AddWith.facet.85f: %AddWith.type.6f4 = facet_value %i16, (%custom_witness.604) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.09b: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int16, %AddWith.facet.85f) [concrete] -// CHECK:STDOUT: %.b5b: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.09b, %AddWith.facet.85f [concrete] -// CHECK:STDOUT: %complete_type.41c: = complete_type_witness %SubWith.type.8bd [concrete] -// CHECK:STDOUT: %SubWith.facet.1de: %SubWith.type.8bd = facet_value %i16, (%custom_witness.4c1) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.fc2: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int16, %SubWith.facet.1de) [concrete] -// CHECK:STDOUT: %.ec9: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.fc2, %SubWith.facet.1de [concrete] -// CHECK:STDOUT: %complete_type.b16: = complete_type_witness %MulWith.type.c25 [concrete] -// CHECK:STDOUT: %MulWith.facet.d75: %MulWith.type.c25 = facet_value %i16, (%custom_witness.72a) [concrete] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.53a: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int16, %MulWith.facet.d75) [concrete] -// CHECK:STDOUT: %.f80: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.53a, %MulWith.facet.d75 [concrete] -// CHECK:STDOUT: %complete_type.7c5: = complete_type_witness %DivWith.type.053 [concrete] -// CHECK:STDOUT: %DivWith.facet.2be: %DivWith.type.053 = facet_value %i16, (%custom_witness.6ea) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.88f: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int16, %DivWith.facet.2be) [concrete] -// CHECK:STDOUT: %.a93: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.88f, %DivWith.facet.2be [concrete] -// CHECK:STDOUT: %complete_type.2f8: = complete_type_witness %ModWith.type.a83 [concrete] -// CHECK:STDOUT: %ModWith.facet.ea4: %ModWith.type.a83 = facet_value %i16, (%custom_witness.b81) [concrete] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.6fc: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int16, %ModWith.facet.ea4) [concrete] -// CHECK:STDOUT: %.3cd: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.6fc, %ModWith.facet.ea4 [concrete] -// CHECK:STDOUT: %complete_type.b45: = complete_type_witness %AddWith.type.63e [concrete] -// CHECK:STDOUT: %AddWith.facet.cea: %AddWith.type.63e = facet_value %Int16, (%custom_witness.9f2) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.18e: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%i16, %AddWith.facet.cea) [concrete] -// CHECK:STDOUT: %.1c0: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.18e, %AddWith.facet.cea [concrete] -// CHECK:STDOUT: %complete_type.edc: = complete_type_witness %SubWith.type.1db [concrete] -// CHECK:STDOUT: %SubWith.facet.3dd: %SubWith.type.1db = facet_value %Int16, (%custom_witness.6a5) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.1ca: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%i16, %SubWith.facet.3dd) [concrete] -// CHECK:STDOUT: %.f6d: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.1ca, %SubWith.facet.3dd [concrete] -// CHECK:STDOUT: %complete_type.355: = complete_type_witness %MulWith.type.c35 [concrete] -// CHECK:STDOUT: %MulWith.facet.3b5: %MulWith.type.c35 = facet_value %Int16, (%custom_witness.35c) [concrete] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.896: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%i16, %MulWith.facet.3b5) [concrete] -// CHECK:STDOUT: %.ca0: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.896, %MulWith.facet.3b5 [concrete] -// CHECK:STDOUT: %complete_type.db2: = complete_type_witness %DivWith.type.086 [concrete] -// CHECK:STDOUT: %DivWith.facet.8d2: %DivWith.type.086 = facet_value %Int16, (%custom_witness.52d) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.2d4: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%i16, %DivWith.facet.8d2) [concrete] -// CHECK:STDOUT: %.cb6e: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.2d4, %DivWith.facet.8d2 [concrete] -// CHECK:STDOUT: %complete_type.b14: = complete_type_witness %ModWith.type.59b [concrete] -// CHECK:STDOUT: %ModWith.facet.8ae: %ModWith.type.59b = facet_value %Int16, (%custom_witness.887) [concrete] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.5f0: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%i16, %ModWith.facet.8ae) [concrete] -// CHECK:STDOUT: %.851: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.5f0, %ModWith.facet.8ae [concrete] -// CHECK:STDOUT: %complete_type.c57: = complete_type_witness %AddWith.type.78c [concrete] -// CHECK:STDOUT: %AddWith.facet.b3b: %AddWith.type.78c = facet_value %Int16, (%custom_witness.e46c75.1) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.675: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int32, %AddWith.facet.b3b) [concrete] -// CHECK:STDOUT: %.615: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.675, %AddWith.facet.b3b [concrete] -// CHECK:STDOUT: %complete_type.48a: = complete_type_witness %SubWith.type.629 [concrete] -// CHECK:STDOUT: %SubWith.facet.da1: %SubWith.type.629 = facet_value %Int16, (%custom_witness.7ffeb1.1) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.a0e: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int32, %SubWith.facet.da1) [concrete] -// CHECK:STDOUT: %.1a2: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.a0e, %SubWith.facet.da1 [concrete] -// CHECK:STDOUT: %complete_type.6e9: = complete_type_witness %MulWith.type.3ee [concrete] -// CHECK:STDOUT: %MulWith.facet.c1a: %MulWith.type.3ee = facet_value %Int16, (%custom_witness.68a6cf.1) [concrete] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.b9a: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int32, %MulWith.facet.c1a) [concrete] -// CHECK:STDOUT: %.f10: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.b9a, %MulWith.facet.c1a [concrete] -// CHECK:STDOUT: %complete_type.627: = complete_type_witness %DivWith.type.09b [concrete] -// CHECK:STDOUT: %DivWith.facet.b53: %DivWith.type.09b = facet_value %Int16, (%custom_witness.2ccbdb.1) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.214: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int32, %DivWith.facet.b53) [concrete] -// CHECK:STDOUT: %.eff: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.214, %DivWith.facet.b53 [concrete] -// CHECK:STDOUT: %complete_type.1cf: = complete_type_witness %ModWith.type.6f6 [concrete] -// CHECK:STDOUT: %ModWith.facet.142: %ModWith.type.6f6 = facet_value %Int16, (%custom_witness.596ded.1) [concrete] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.513: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int32, %ModWith.facet.142) [concrete] -// CHECK:STDOUT: %.699: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.513, %ModWith.facet.142 [concrete] -// CHECK:STDOUT: %AddWith.facet.aef: %AddWith.type.6f4 = facet_value %Int32, (%custom_witness.e32) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.0aa: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int16, %AddWith.facet.aef) [concrete] -// CHECK:STDOUT: %.211: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.0aa, %AddWith.facet.aef [concrete] -// CHECK:STDOUT: %SubWith.facet.9f2: %SubWith.type.8bd = facet_value %Int32, (%custom_witness.395) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.bba: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int16, %SubWith.facet.9f2) [concrete] -// CHECK:STDOUT: %.2b2: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.bba, %SubWith.facet.9f2 [concrete] -// CHECK:STDOUT: %MulWith.facet.9cb: %MulWith.type.c25 = facet_value %Int32, (%custom_witness.678) [concrete] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.15f: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int16, %MulWith.facet.9cb) [concrete] -// CHECK:STDOUT: %.dd6: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.15f, %MulWith.facet.9cb [concrete] -// CHECK:STDOUT: %DivWith.facet.53f: %DivWith.type.053 = facet_value %Int32, (%custom_witness.8ad) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.ba3: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int16, %DivWith.facet.53f) [concrete] -// CHECK:STDOUT: %.540: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.ba3, %DivWith.facet.53f [concrete] -// CHECK:STDOUT: %ModWith.facet.0ea: %ModWith.type.a83 = facet_value %Int32, (%custom_witness.f63) [concrete] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.aeb: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int16, %ModWith.facet.0ea) [concrete] -// CHECK:STDOUT: %.b1a: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.aeb, %ModWith.facet.0ea [concrete] -// CHECK:STDOUT: %AddWith.facet.616: %AddWith.type.78c = facet_value %Int32, (%custom_witness.e46c75.2) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.9e3: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int32, %AddWith.facet.616) [concrete] -// CHECK:STDOUT: %.d9d: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.9e3, %AddWith.facet.616 [concrete] -// CHECK:STDOUT: %SubWith.facet.36d: %SubWith.type.629 = facet_value %Int32, (%custom_witness.7ffeb1.2) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.1db: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int32, %SubWith.facet.36d) [concrete] -// CHECK:STDOUT: %.613: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.1db, %SubWith.facet.36d [concrete] -// CHECK:STDOUT: %MulWith.facet.dd3: %MulWith.type.3ee = facet_value %Int32, (%custom_witness.68a6cf.2) [concrete] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.854: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int32, %MulWith.facet.dd3) [concrete] -// CHECK:STDOUT: %.ec7: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.854, %MulWith.facet.dd3 [concrete] -// CHECK:STDOUT: %DivWith.facet.c86: %DivWith.type.09b = facet_value %Int32, (%custom_witness.2ccbdb.2) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.e4e: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int32, %DivWith.facet.c86) [concrete] -// CHECK:STDOUT: %.865: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.e4e, %DivWith.facet.c86 [concrete] -// CHECK:STDOUT: %ModWith.facet.c80: %ModWith.type.6f6 = facet_value %Int32, (%custom_witness.596ded.2) [concrete] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.e0b: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int32, %ModWith.facet.c80) [concrete] -// CHECK:STDOUT: %.d2e: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.e0b, %ModWith.facet.c80 [concrete] -// CHECK:STDOUT: %complete_type.495: = complete_type_witness %AddWith.type.01b [concrete] -// CHECK:STDOUT: %AddWith.facet.31a: %AddWith.type.01b = facet_value %Int32, (%custom_witness.e1e) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.c0a: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int64, %AddWith.facet.31a) [concrete] -// CHECK:STDOUT: %.2ba: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.c0a, %AddWith.facet.31a [concrete] -// CHECK:STDOUT: %complete_type.cc7: = complete_type_witness %SubWith.type.82c [concrete] -// CHECK:STDOUT: %SubWith.facet.9cc: %SubWith.type.82c = facet_value %Int32, (%custom_witness.053) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.a06: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int64, %SubWith.facet.9cc) [concrete] -// CHECK:STDOUT: %.086: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.a06, %SubWith.facet.9cc [concrete] -// CHECK:STDOUT: %complete_type.da6: = complete_type_witness %MulWith.type.9ed [concrete] -// CHECK:STDOUT: %MulWith.facet.83a: %MulWith.type.9ed = facet_value %Int32, (%custom_witness.f29) [concrete] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.bc6: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int64, %MulWith.facet.83a) [concrete] -// CHECK:STDOUT: %.ca6: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.bc6, %MulWith.facet.83a [concrete] -// CHECK:STDOUT: %complete_type.dba: = complete_type_witness %DivWith.type.7ac [concrete] -// CHECK:STDOUT: %DivWith.facet.62d: %DivWith.type.7ac = facet_value %Int32, (%custom_witness.863) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.90b: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int64, %DivWith.facet.62d) [concrete] -// CHECK:STDOUT: %.cb62: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.90b, %DivWith.facet.62d [concrete] -// CHECK:STDOUT: %complete_type.f9c: = complete_type_witness %ModWith.type.6b0 [concrete] -// CHECK:STDOUT: %ModWith.facet.02b: %ModWith.type.6b0 = facet_value %Int32, (%custom_witness.eb8) [concrete] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.17d: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int64, %ModWith.facet.02b) [concrete] -// CHECK:STDOUT: %.0ca: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.17d, %ModWith.facet.02b [concrete] -// CHECK:STDOUT: %AddWith.facet.6a1: %AddWith.type.78c = facet_value %Int64, (%custom_witness.483) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.5ee: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int32, %AddWith.facet.6a1) [concrete] -// CHECK:STDOUT: %.11a: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.5ee, %AddWith.facet.6a1 [concrete] -// CHECK:STDOUT: %SubWith.facet.8cb: %SubWith.type.629 = facet_value %Int64, (%custom_witness.095) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.1b8: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int32, %SubWith.facet.8cb) [concrete] -// CHECK:STDOUT: %.51b: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.1b8, %SubWith.facet.8cb [concrete] -// CHECK:STDOUT: %MulWith.facet.e61: %MulWith.type.3ee = facet_value %Int64, (%custom_witness.f6e) [concrete] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.d31: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int32, %MulWith.facet.e61) [concrete] -// CHECK:STDOUT: %.2e4: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.d31, %MulWith.facet.e61 [concrete] -// CHECK:STDOUT: %DivWith.facet.b24: %DivWith.type.09b = facet_value %Int64, (%custom_witness.4e5) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.58d: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int32, %DivWith.facet.b24) [concrete] -// CHECK:STDOUT: %.f2d: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.58d, %DivWith.facet.b24 [concrete] -// CHECK:STDOUT: %ModWith.facet.4c1: %ModWith.type.6f6 = facet_value %Int64, (%custom_witness.99b) [concrete] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.fb3: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int32, %ModWith.facet.4c1) [concrete] -// CHECK:STDOUT: %.7b9: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.fb3, %ModWith.facet.4c1 [concrete] -// CHECK:STDOUT: %complete_type.f45: = complete_type_witness %AddAssignWith.type.35f [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.f5d: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i16, %AddAssignWith.facet.1b3) [concrete] -// CHECK:STDOUT: %.c71: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.f5d, %AddAssignWith.facet.1b3 [concrete] -// CHECK:STDOUT: %complete_type.c74: = complete_type_witness %SubAssignWith.type.121 [concrete] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.224: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%i16, %SubAssignWith.facet.45a) [concrete] -// CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.224, %SubAssignWith.facet.45a [concrete] -// CHECK:STDOUT: %complete_type.f93: = complete_type_witness %MulAssignWith.type.b7e [concrete] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.354: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%i16, %MulAssignWith.facet.805) [concrete] -// CHECK:STDOUT: %.cbb: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.354, %MulAssignWith.facet.805 [concrete] -// CHECK:STDOUT: %complete_type.913: = complete_type_witness %DivAssignWith.type.0d6 [concrete] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.510: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%i16, %DivAssignWith.facet.ac9) [concrete] -// CHECK:STDOUT: %.b82: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.510, %DivAssignWith.facet.ac9 [concrete] -// CHECK:STDOUT: %complete_type.597: = complete_type_witness %ModAssignWith.type.d0f [concrete] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.ad4: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%i16, %ModAssignWith.facet.350) [concrete] -// CHECK:STDOUT: %.003: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.ad4, %ModAssignWith.facet.350 [concrete] -// CHECK:STDOUT: %complete_type.d4d: = complete_type_witness %AddAssignWith.type.3e8 [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.b28: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Int32, %AddAssignWith.facet.610) [concrete] -// CHECK:STDOUT: %.05e: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.b28, %AddAssignWith.facet.610 [concrete] -// CHECK:STDOUT: %complete_type.838: = complete_type_witness %SubAssignWith.type.678 [concrete] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.7bd: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Int32, %SubAssignWith.facet.fb2) [concrete] -// CHECK:STDOUT: %.cd8: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.7bd, %SubAssignWith.facet.fb2 [concrete] -// CHECK:STDOUT: %complete_type.908: = complete_type_witness %MulAssignWith.type.011 [concrete] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.9a6: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Int32, %MulAssignWith.facet.8f5) [concrete] -// CHECK:STDOUT: %.300: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.9a6, %MulAssignWith.facet.8f5 [concrete] -// CHECK:STDOUT: %complete_type.054: = complete_type_witness %DivAssignWith.type.487 [concrete] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.1ec: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Int32, %DivAssignWith.facet.3bc) [concrete] -// CHECK:STDOUT: %.d63: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.1ec, %DivAssignWith.facet.3bc [concrete] -// CHECK:STDOUT: %complete_type.022: = complete_type_witness %ModAssignWith.type.499 [concrete] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.1a7: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Int32, %ModAssignWith.facet.b73) [concrete] -// CHECK:STDOUT: %.029: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.1a7, %ModAssignWith.facet.b73 [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.272: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Int32, %AddAssignWith.facet.080) [concrete] -// CHECK:STDOUT: %.257: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.272, %AddAssignWith.facet.080 [concrete] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.461: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Int32, %SubAssignWith.facet.8bc) [concrete] -// CHECK:STDOUT: %.e92: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.461, %SubAssignWith.facet.8bc [concrete] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.152: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Int32, %MulAssignWith.facet.990) [concrete] -// CHECK:STDOUT: %.694: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.152, %MulAssignWith.facet.990 [concrete] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.53f: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Int32, %DivAssignWith.facet.3eb) [concrete] -// CHECK:STDOUT: %.09f: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.53f, %DivAssignWith.facet.3eb [concrete] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.30a: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Int32, %ModAssignWith.facet.2d7) [concrete] -// CHECK:STDOUT: %.e8b: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.30a, %ModAssignWith.facet.2d7 [concrete] -// CHECK:STDOUT: %Inc.WithSelf.Op.type.f8b: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%Inc.facet.ace) [concrete] -// CHECK:STDOUT: %.b6c: type = fn_type_with_self_type %Inc.WithSelf.Op.type.f8b, %Inc.facet.ace [concrete] -// CHECK:STDOUT: %Dec.WithSelf.Op.type.479: type = fn_type @Dec.WithSelf.Op, @Dec.WithSelf(%Dec.facet.be4) [concrete] -// CHECK:STDOUT: %.a3b: type = fn_type_with_self_type %Dec.WithSelf.Op.type.479, %Dec.facet.be4 [concrete] -// CHECK:STDOUT: %Negate.facet.070: %Negate.type = facet_value %Int16, (%custom_witness.71b) [concrete] -// CHECK:STDOUT: %Negate.WithSelf.Op.type.cde: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet.070) [concrete] -// CHECK:STDOUT: %.e93: type = fn_type_with_self_type %Negate.WithSelf.Op.type.cde, %Negate.facet.070 [concrete] -// CHECK:STDOUT: %Negate.facet.670: %Negate.type = facet_value %Int32, (%custom_witness.45a) [concrete] -// CHECK:STDOUT: %Negate.WithSelf.Op.type.20b: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet.670) [concrete] -// CHECK:STDOUT: %.76e: type = fn_type_with_self_type %Negate.WithSelf.Op.type.20b, %Negate.facet.670 [concrete] +// CHECK:STDOUT: %facet_type.68f: type = facet_type <@Destroy & @Negate> [concrete] +// CHECK:STDOUT: %.Self.69b: %facet_type.68f = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Negate.lookup_impl_witness.159: = lookup_impl_witness %.Self.69b, @Negate [symbolic_self] +// CHECK:STDOUT: %impl.elem0.f9d: type = impl_witness_access %Negate.lookup_impl_witness.159, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.b1d: type = facet_type <@Destroy & @Negate where %impl.elem0.f9d = %Result.as_type> [symbolic] +// CHECK:STDOUT: %pattern_type.540: type = pattern_type %facet_type.b1d [symbolic] +// CHECK:STDOUT: %T.a9d: %facet_type.b1d = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %T.as_type.a98: type = facet_access_type %T.a9d [symbolic] +// CHECK:STDOUT: %pattern_type.962a: type = pattern_type %T.as_type.a98 [symbolic] +// CHECK:STDOUT: %Negate.lookup_impl_witness.48a: = lookup_impl_witness %T.a9d, @Negate [symbolic] +// CHECK:STDOUT: %Negate.facet.f2f: %Negate.type = facet_value %T.as_type.a98, (%Negate.lookup_impl_witness.48a) [symbolic] +// CHECK:STDOUT: %Negate.WithSelf.Op.type.803: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet.f2f) [symbolic] +// CHECK:STDOUT: %.c6c: type = fn_type_with_self_type %Negate.WithSelf.Op.type.803, %Negate.facet.f2f [symbolic] +// CHECK:STDOUT: %impl.elem1.9a8: %.c6c = impl_witness_access %Negate.lookup_impl_witness.48a, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.c5a: = specific_impl_function %impl.elem1.9a8, @Negate.WithSelf.Op(%Negate.facet.f2f) [symbolic] +// CHECK:STDOUT: %Int32.Op.type.83af6e.18: type = fn_type @Int32.Op.18 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.18: %Int32.Op.type.83af6e.18 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.f3f: = custom_witness (%Int32.Op.4dca31.18), @Inc [concrete] +// CHECK:STDOUT: %Inc.facet.dd2: %Inc.type = facet_value %Int32, (%custom_witness.f3f) [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.19: type = fn_type @Int32.Op.19 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.19: %Int32.Op.type.83af6e.19 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.b24: = custom_witness (%Int32.Op.4dca31.19), @Dec [concrete] +// CHECK:STDOUT: %Dec.facet.e1b: %Dec.type = facet_value %Int32, (%custom_witness.b24) [concrete] +// CHECK:STDOUT: %facet_type.76b: type = facet_type <@Destroy & @Negate where %impl.elem0.f9d = %Int64> [concrete] +// CHECK:STDOUT: %Int16.Op.type.83af6e.18: type = fn_type @Int16.Op.18 [concrete] +// CHECK:STDOUT: %Int16.Op.4dca31.18: %Int16.Op.type.83af6e.18 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.100: = custom_witness (%Int64, %Int16.Op.4dca31.18), @Negate [concrete] +// CHECK:STDOUT: %facet_value.750: %facet_type.76b = facet_value %Int16, (%custom_witness.e7a31c.1, %custom_witness.100) [concrete] +// CHECK:STDOUT: %pattern_type.61c: type = pattern_type %facet_type.76b [concrete] +// CHECK:STDOUT: %facet_type.49d: type = facet_type <@Destroy & @Negate where %impl.elem0.f9d = %Int32> [concrete] +// CHECK:STDOUT: %Int32.Op.type.83af6e.20: type = fn_type @Int32.Op.20 [concrete] +// CHECK:STDOUT: %Int32.Op.4dca31.20: %Int32.Op.type.83af6e.20 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.a85: = custom_witness (%Int32, %Int32.Op.4dca31.20), @Negate [concrete] +// CHECK:STDOUT: %facet_value.42d: %facet_type.49d = facet_value %Int32, (%custom_witness.e7a31c.2, %custom_witness.a85) [concrete] +// CHECK:STDOUT: %pattern_type.57c: type = pattern_type %facet_type.49d [concrete] +// CHECK:STDOUT: %complete_type.7a6: = complete_type_witness %AddWith.type.b62 [concrete] +// CHECK:STDOUT: %AddWith.facet.ff0: %AddWith.type.b62 = facet_value %i16, (%custom_witness.248) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.e1f: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int16, %AddWith.facet.ff0) [concrete] +// CHECK:STDOUT: %.2c3: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.e1f, %AddWith.facet.ff0 [concrete] +// CHECK:STDOUT: %complete_type.b9a: = complete_type_witness %SubWith.type.b12 [concrete] +// CHECK:STDOUT: %SubWith.facet.49f: %SubWith.type.b12 = facet_value %i16, (%custom_witness.f14) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.843: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int16, %SubWith.facet.49f) [concrete] +// CHECK:STDOUT: %.00a: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.843, %SubWith.facet.49f [concrete] +// CHECK:STDOUT: %complete_type.433: = complete_type_witness %MulWith.type.c18 [concrete] +// CHECK:STDOUT: %MulWith.facet.d6e: %MulWith.type.c18 = facet_value %i16, (%custom_witness.6bd) [concrete] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.f9f: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int16, %MulWith.facet.d6e) [concrete] +// CHECK:STDOUT: %.0ed: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.f9f, %MulWith.facet.d6e [concrete] +// CHECK:STDOUT: %complete_type.64f: = complete_type_witness %DivWith.type.6f9 [concrete] +// CHECK:STDOUT: %DivWith.facet.437: %DivWith.type.6f9 = facet_value %i16, (%custom_witness.22c) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.51a: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int16, %DivWith.facet.437) [concrete] +// CHECK:STDOUT: %.316: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.51a, %DivWith.facet.437 [concrete] +// CHECK:STDOUT: %complete_type.dea: = complete_type_witness %ModWith.type.763 [concrete] +// CHECK:STDOUT: %ModWith.facet.251: %ModWith.type.763 = facet_value %i16, (%custom_witness.9e6) [concrete] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.62d: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int16, %ModWith.facet.251) [concrete] +// CHECK:STDOUT: %.9b3: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.62d, %ModWith.facet.251 [concrete] +// CHECK:STDOUT: %complete_type.a53: = complete_type_witness %AddWith.type.a36 [concrete] +// CHECK:STDOUT: %AddWith.facet.b59: %AddWith.type.a36 = facet_value %Int16, (%custom_witness.b17) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.de7: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%i16, %AddWith.facet.b59) [concrete] +// CHECK:STDOUT: %.c9e: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.de7, %AddWith.facet.b59 [concrete] +// CHECK:STDOUT: %complete_type.fc0: = complete_type_witness %SubWith.type.08b [concrete] +// CHECK:STDOUT: %SubWith.facet.ef4: %SubWith.type.08b = facet_value %Int16, (%custom_witness.b07) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.723: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%i16, %SubWith.facet.ef4) [concrete] +// CHECK:STDOUT: %.6f3: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.723, %SubWith.facet.ef4 [concrete] +// CHECK:STDOUT: %complete_type.850: = complete_type_witness %MulWith.type.55d [concrete] +// CHECK:STDOUT: %MulWith.facet.19a: %MulWith.type.55d = facet_value %Int16, (%custom_witness.8bd) [concrete] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.7b1: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%i16, %MulWith.facet.19a) [concrete] +// CHECK:STDOUT: %.d82: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.7b1, %MulWith.facet.19a [concrete] +// CHECK:STDOUT: %complete_type.8a2: = complete_type_witness %DivWith.type.ab0 [concrete] +// CHECK:STDOUT: %DivWith.facet.115: %DivWith.type.ab0 = facet_value %Int16, (%custom_witness.963) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.a49: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%i16, %DivWith.facet.115) [concrete] +// CHECK:STDOUT: %.251: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.a49, %DivWith.facet.115 [concrete] +// CHECK:STDOUT: %complete_type.385: = complete_type_witness %ModWith.type.0b2 [concrete] +// CHECK:STDOUT: %ModWith.facet.925: %ModWith.type.0b2 = facet_value %Int16, (%custom_witness.8f4) [concrete] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.519: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%i16, %ModWith.facet.925) [concrete] +// CHECK:STDOUT: %.66e2: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.519, %ModWith.facet.925 [concrete] +// CHECK:STDOUT: %complete_type.2cc: = complete_type_witness %AddWith.type.c71 [concrete] +// CHECK:STDOUT: %AddWith.facet.007: %AddWith.type.c71 = facet_value %Int16, (%custom_witness.e02e0c.1) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.dc4: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int32, %AddWith.facet.007) [concrete] +// CHECK:STDOUT: %.dbb: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.dc4, %AddWith.facet.007 [concrete] +// CHECK:STDOUT: %complete_type.cf9: = complete_type_witness %SubWith.type.c81 [concrete] +// CHECK:STDOUT: %SubWith.facet.703: %SubWith.type.c81 = facet_value %Int16, (%custom_witness.4dea15.1) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.6eb: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int32, %SubWith.facet.703) [concrete] +// CHECK:STDOUT: %.114: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.6eb, %SubWith.facet.703 [concrete] +// CHECK:STDOUT: %complete_type.e76: = complete_type_witness %MulWith.type.eeb [concrete] +// CHECK:STDOUT: %MulWith.facet.fcd: %MulWith.type.eeb = facet_value %Int16, (%custom_witness.337c88.1) [concrete] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.99f: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int32, %MulWith.facet.fcd) [concrete] +// CHECK:STDOUT: %.c1c: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.99f, %MulWith.facet.fcd [concrete] +// CHECK:STDOUT: %complete_type.595: = complete_type_witness %DivWith.type.fb1 [concrete] +// CHECK:STDOUT: %DivWith.facet.3bd: %DivWith.type.fb1 = facet_value %Int16, (%custom_witness.3eb227.1) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.500: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int32, %DivWith.facet.3bd) [concrete] +// CHECK:STDOUT: %.ebc: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.500, %DivWith.facet.3bd [concrete] +// CHECK:STDOUT: %complete_type.80f: = complete_type_witness %ModWith.type.253 [concrete] +// CHECK:STDOUT: %ModWith.facet.a29: %ModWith.type.253 = facet_value %Int16, (%custom_witness.501c6d.1) [concrete] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.d03: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int32, %ModWith.facet.a29) [concrete] +// CHECK:STDOUT: %.839: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.d03, %ModWith.facet.a29 [concrete] +// CHECK:STDOUT: %AddWith.facet.35b: %AddWith.type.b62 = facet_value %Int32, (%custom_witness.15f) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.29e: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int16, %AddWith.facet.35b) [concrete] +// CHECK:STDOUT: %.45e: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.29e, %AddWith.facet.35b [concrete] +// CHECK:STDOUT: %SubWith.facet.8da: %SubWith.type.b12 = facet_value %Int32, (%custom_witness.bb4) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.85b: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int16, %SubWith.facet.8da) [concrete] +// CHECK:STDOUT: %.db9: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.85b, %SubWith.facet.8da [concrete] +// CHECK:STDOUT: %MulWith.facet.920: %MulWith.type.c18 = facet_value %Int32, (%custom_witness.0ab) [concrete] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.545: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int16, %MulWith.facet.920) [concrete] +// CHECK:STDOUT: %.c5e: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.545, %MulWith.facet.920 [concrete] +// CHECK:STDOUT: %DivWith.facet.c79: %DivWith.type.6f9 = facet_value %Int32, (%custom_witness.3ec) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.a6b: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int16, %DivWith.facet.c79) [concrete] +// CHECK:STDOUT: %.558: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.a6b, %DivWith.facet.c79 [concrete] +// CHECK:STDOUT: %ModWith.facet.bef: %ModWith.type.763 = facet_value %Int32, (%custom_witness.de0) [concrete] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.d54: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int16, %ModWith.facet.bef) [concrete] +// CHECK:STDOUT: %.8c0: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.d54, %ModWith.facet.bef [concrete] +// CHECK:STDOUT: %AddWith.facet.ee1: %AddWith.type.c71 = facet_value %Int32, (%custom_witness.e02e0c.2) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.5a5: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int32, %AddWith.facet.ee1) [concrete] +// CHECK:STDOUT: %.dcb: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.5a5, %AddWith.facet.ee1 [concrete] +// CHECK:STDOUT: %SubWith.facet.3dd: %SubWith.type.c81 = facet_value %Int32, (%custom_witness.4dea15.2) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.ccc: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int32, %SubWith.facet.3dd) [concrete] +// CHECK:STDOUT: %.237: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.ccc, %SubWith.facet.3dd [concrete] +// CHECK:STDOUT: %MulWith.facet.4d3: %MulWith.type.eeb = facet_value %Int32, (%custom_witness.337c88.2) [concrete] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.843: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int32, %MulWith.facet.4d3) [concrete] +// CHECK:STDOUT: %.8c9: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.843, %MulWith.facet.4d3 [concrete] +// CHECK:STDOUT: %DivWith.facet.4fe: %DivWith.type.fb1 = facet_value %Int32, (%custom_witness.3eb227.2) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.24e: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int32, %DivWith.facet.4fe) [concrete] +// CHECK:STDOUT: %.450: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.24e, %DivWith.facet.4fe [concrete] +// CHECK:STDOUT: %ModWith.facet.60c: %ModWith.type.253 = facet_value %Int32, (%custom_witness.501c6d.2) [concrete] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.bed: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int32, %ModWith.facet.60c) [concrete] +// CHECK:STDOUT: %.382: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.bed, %ModWith.facet.60c [concrete] +// CHECK:STDOUT: %complete_type.d6f: = complete_type_witness %AddWith.type.b5b [concrete] +// CHECK:STDOUT: %AddWith.facet.45c: %AddWith.type.b5b = facet_value %Int32, (%custom_witness.68d) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.6ad: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int64, %AddWith.facet.45c) [concrete] +// CHECK:STDOUT: %.b22: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.6ad, %AddWith.facet.45c [concrete] +// CHECK:STDOUT: %complete_type.b50: = complete_type_witness %SubWith.type.a46 [concrete] +// CHECK:STDOUT: %SubWith.facet.3c0: %SubWith.type.a46 = facet_value %Int32, (%custom_witness.1fa) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.bdd: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int64, %SubWith.facet.3c0) [concrete] +// CHECK:STDOUT: %.c3d: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.bdd, %SubWith.facet.3c0 [concrete] +// CHECK:STDOUT: %complete_type.77d: = complete_type_witness %MulWith.type.76f [concrete] +// CHECK:STDOUT: %MulWith.facet.dbd: %MulWith.type.76f = facet_value %Int32, (%custom_witness.99d) [concrete] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.cc8: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int64, %MulWith.facet.dbd) [concrete] +// CHECK:STDOUT: %.921: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.cc8, %MulWith.facet.dbd [concrete] +// CHECK:STDOUT: %complete_type.f76: = complete_type_witness %DivWith.type.095 [concrete] +// CHECK:STDOUT: %DivWith.facet.91e: %DivWith.type.095 = facet_value %Int32, (%custom_witness.a8f) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.dd6: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int64, %DivWith.facet.91e) [concrete] +// CHECK:STDOUT: %.26f: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.dd6, %DivWith.facet.91e [concrete] +// CHECK:STDOUT: %complete_type.9d2: = complete_type_witness %ModWith.type.204 [concrete] +// CHECK:STDOUT: %ModWith.facet.c38: %ModWith.type.204 = facet_value %Int32, (%custom_witness.972) [concrete] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.663: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int64, %ModWith.facet.c38) [concrete] +// CHECK:STDOUT: %.ed0: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.663, %ModWith.facet.c38 [concrete] +// CHECK:STDOUT: %AddWith.facet.3de: %AddWith.type.c71 = facet_value %Int64, (%custom_witness.98f) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.1c0: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int32, %AddWith.facet.3de) [concrete] +// CHECK:STDOUT: %.df7: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.1c0, %AddWith.facet.3de [concrete] +// CHECK:STDOUT: %SubWith.facet.320: %SubWith.type.c81 = facet_value %Int64, (%custom_witness.5c3) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.8fd: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int32, %SubWith.facet.320) [concrete] +// CHECK:STDOUT: %.ad9: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.8fd, %SubWith.facet.320 [concrete] +// CHECK:STDOUT: %MulWith.facet.d72: %MulWith.type.eeb = facet_value %Int64, (%custom_witness.ac0) [concrete] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.10e: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int32, %MulWith.facet.d72) [concrete] +// CHECK:STDOUT: %.be6: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.10e, %MulWith.facet.d72 [concrete] +// CHECK:STDOUT: %DivWith.facet.4d9: %DivWith.type.fb1 = facet_value %Int64, (%custom_witness.c98) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.354: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int32, %DivWith.facet.4d9) [concrete] +// CHECK:STDOUT: %.436: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.354, %DivWith.facet.4d9 [concrete] +// CHECK:STDOUT: %ModWith.facet.ca3: %ModWith.type.253 = facet_value %Int64, (%custom_witness.e66) [concrete] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.dcc: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int32, %ModWith.facet.ca3) [concrete] +// CHECK:STDOUT: %.66e6: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.dcc, %ModWith.facet.ca3 [concrete] +// CHECK:STDOUT: %complete_type.a21: = complete_type_witness %AddAssignWith.type.2a0 [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.eb5: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i16, %AddAssignWith.facet.e34) [concrete] +// CHECK:STDOUT: %.063: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.eb5, %AddAssignWith.facet.e34 [concrete] +// CHECK:STDOUT: %complete_type.002: = complete_type_witness %SubAssignWith.type.e8b [concrete] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.163: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%i16, %SubAssignWith.facet.a52) [concrete] +// CHECK:STDOUT: %.dc4: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.163, %SubAssignWith.facet.a52 [concrete] +// CHECK:STDOUT: %complete_type.60a: = complete_type_witness %MulAssignWith.type.7d4 [concrete] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.170: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%i16, %MulAssignWith.facet.201) [concrete] +// CHECK:STDOUT: %.69d: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.170, %MulAssignWith.facet.201 [concrete] +// CHECK:STDOUT: %complete_type.531: = complete_type_witness %DivAssignWith.type.081 [concrete] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.d5b: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%i16, %DivAssignWith.facet.a72) [concrete] +// CHECK:STDOUT: %.8d8: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.d5b, %DivAssignWith.facet.a72 [concrete] +// CHECK:STDOUT: %complete_type.450: = complete_type_witness %ModAssignWith.type.1ea [concrete] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.374: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%i16, %ModAssignWith.facet.4a2) [concrete] +// CHECK:STDOUT: %.eca: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.374, %ModAssignWith.facet.4a2 [concrete] +// CHECK:STDOUT: %complete_type.e1b: = complete_type_witness %AddAssignWith.type.23a [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.96d: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Int32, %AddAssignWith.facet.348) [concrete] +// CHECK:STDOUT: %.65c: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.96d, %AddAssignWith.facet.348 [concrete] +// CHECK:STDOUT: %complete_type.1eb: = complete_type_witness %SubAssignWith.type.4fc [concrete] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.6ac: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Int32, %SubAssignWith.facet.e0e) [concrete] +// CHECK:STDOUT: %.740: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.6ac, %SubAssignWith.facet.e0e [concrete] +// CHECK:STDOUT: %complete_type.ef7: = complete_type_witness %MulAssignWith.type.5fb [concrete] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.73c: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Int32, %MulAssignWith.facet.13c) [concrete] +// CHECK:STDOUT: %.a28: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.73c, %MulAssignWith.facet.13c [concrete] +// CHECK:STDOUT: %complete_type.502: = complete_type_witness %DivAssignWith.type.3ea [concrete] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.b74: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Int32, %DivAssignWith.facet.e59) [concrete] +// CHECK:STDOUT: %.204: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.b74, %DivAssignWith.facet.e59 [concrete] +// CHECK:STDOUT: %complete_type.446: = complete_type_witness %ModAssignWith.type.567 [concrete] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.16f: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Int32, %ModAssignWith.facet.dac) [concrete] +// CHECK:STDOUT: %.c84: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.16f, %ModAssignWith.facet.dac [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.cf5: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Int32, %AddAssignWith.facet.144) [concrete] +// CHECK:STDOUT: %.6e0: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.cf5, %AddAssignWith.facet.144 [concrete] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.a31: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Int32, %SubAssignWith.facet.a7e) [concrete] +// CHECK:STDOUT: %.70d: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.a31, %SubAssignWith.facet.a7e [concrete] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.606: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Int32, %MulAssignWith.facet.b35) [concrete] +// CHECK:STDOUT: %.375: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.606, %MulAssignWith.facet.b35 [concrete] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.d14: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Int32, %DivAssignWith.facet.b1e) [concrete] +// CHECK:STDOUT: %.f69: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.d14, %DivAssignWith.facet.b1e [concrete] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.690: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Int32, %ModAssignWith.facet.342) [concrete] +// CHECK:STDOUT: %.af4: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.690, %ModAssignWith.facet.342 [concrete] +// CHECK:STDOUT: %Inc.WithSelf.Op.type.d1d: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%Inc.facet.dd2) [concrete] +// CHECK:STDOUT: %.176: type = fn_type_with_self_type %Inc.WithSelf.Op.type.d1d, %Inc.facet.dd2 [concrete] +// CHECK:STDOUT: %Dec.WithSelf.Op.type.e55: type = fn_type @Dec.WithSelf.Op, @Dec.WithSelf(%Dec.facet.e1b) [concrete] +// CHECK:STDOUT: %.d09: type = fn_type_with_self_type %Dec.WithSelf.Op.type.e55, %Dec.facet.e1b [concrete] +// CHECK:STDOUT: %Negate.facet.8f4: %Negate.type = facet_value %Int16, (%custom_witness.100) [concrete] +// CHECK:STDOUT: %Negate.WithSelf.Op.type.181: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet.8f4) [concrete] +// CHECK:STDOUT: %.66a: type = fn_type_with_self_type %Negate.WithSelf.Op.type.181, %Negate.facet.8f4 [concrete] +// CHECK:STDOUT: %Negate.facet.aa9: %Negate.type = facet_value %Int32, (%custom_witness.a85) [concrete] +// CHECK:STDOUT: %Negate.WithSelf.Op.type.050: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet.aa9) [concrete] +// CHECK:STDOUT: %.668: type = fn_type_with_self_type %Negate.WithSelf.Op.type.050, %Negate.facet.aa9 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.ada: @AddWith.WithSelf.%AddWith.assoc_type (%AddWith.assoc_type.5da) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @AddWith.WithSelf.%assoc1 (constants.%assoc1.fdf)] -// CHECK:STDOUT: %Core.import_ref.29ff: @AddWith.WithSelf.%AddWith.WithSelf.Op.type (%AddWith.WithSelf.Op.type.c45) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @AddWith.WithSelf.%AddWith.WithSelf.Op (constants.%AddWith.WithSelf.Op.2f3)] -// CHECK:STDOUT: %Core.import_ref.1dd: type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = %Result.a0e] -// CHECK:STDOUT: %Result.a0e: type = assoc_const_decl @Result.1 [concrete] {} -// CHECK:STDOUT: %Core.import_ref.a1e = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.cd2: @SubWith.WithSelf.%SubWith.assoc_type (%SubWith.assoc_type.72b) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @SubWith.WithSelf.%assoc1 (constants.%assoc1.e6a)] -// CHECK:STDOUT: %Core.import_ref.940: @SubWith.WithSelf.%SubWith.WithSelf.Op.type (%SubWith.WithSelf.Op.type.7da) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @SubWith.WithSelf.%SubWith.WithSelf.Op (constants.%SubWith.WithSelf.Op.bd5)] -// CHECK:STDOUT: %Core.import_ref.391: type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = %Result.982] -// CHECK:STDOUT: %Result.982: type = assoc_const_decl @Result.2 [concrete] {} -// CHECK:STDOUT: %Core.import_ref.e2a = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.537: @MulWith.WithSelf.%MulWith.assoc_type (%MulWith.assoc_type.634) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @MulWith.WithSelf.%assoc1 (constants.%assoc1.14f)] -// CHECK:STDOUT: %Core.import_ref.d23: @MulWith.WithSelf.%MulWith.WithSelf.Op.type (%MulWith.WithSelf.Op.type.309) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @MulWith.WithSelf.%MulWith.WithSelf.Op (constants.%MulWith.WithSelf.Op.56c)] -// CHECK:STDOUT: %Core.import_ref.41e: type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = %Result.518] -// CHECK:STDOUT: %Result.518: type = assoc_const_decl @Result.3 [concrete] {} -// CHECK:STDOUT: %Core.import_ref.087 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.973: @DivWith.WithSelf.%DivWith.assoc_type (%DivWith.assoc_type.5b4) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @DivWith.WithSelf.%assoc1 (constants.%assoc1.9374)] -// CHECK:STDOUT: %Core.import_ref.e712: @DivWith.WithSelf.%DivWith.WithSelf.Op.type (%DivWith.WithSelf.Op.type.e6f) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @DivWith.WithSelf.%DivWith.WithSelf.Op (constants.%DivWith.WithSelf.Op.908)] -// CHECK:STDOUT: %Core.import_ref.e71d: type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = %Result.397] -// CHECK:STDOUT: %Result.397: type = assoc_const_decl @Result.4 [concrete] {} -// CHECK:STDOUT: %Core.import_ref.993 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.fc2: @ModWith.WithSelf.%ModWith.assoc_type (%ModWith.assoc_type.4a7) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @ModWith.WithSelf.%assoc1 (constants.%assoc1.232)] -// CHECK:STDOUT: %Core.import_ref.104: @ModWith.WithSelf.%ModWith.WithSelf.Op.type (%ModWith.WithSelf.Op.type.f6b) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @ModWith.WithSelf.%ModWith.WithSelf.Op (constants.%ModWith.WithSelf.Op.397)] -// CHECK:STDOUT: %Core.import_ref.327: type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = %Result.22a] -// CHECK:STDOUT: %Result.22a: type = assoc_const_decl @Result.5 [concrete] {} -// CHECK:STDOUT: %Core.import_ref.bbd = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.3bc: @AddAssignWith.WithSelf.%AddAssignWith.assoc_type (%AddAssignWith.assoc_type.d9654f.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @AddAssignWith.WithSelf.%assoc0 (constants.%assoc0.1e6)] -// CHECK:STDOUT: %Core.import_ref.62c: @AddAssignWith.WithSelf.%AddAssignWith.WithSelf.Op.type (%AddAssignWith.WithSelf.Op.type.86ac33.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @AddAssignWith.WithSelf.%AddAssignWith.WithSelf.Op (constants.%AddAssignWith.WithSelf.Op.31f15f.1)] -// CHECK:STDOUT: %Core.import_ref.970 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.639: @SubAssignWith.WithSelf.%SubAssignWith.assoc_type (%SubAssignWith.assoc_type.efddf3.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @SubAssignWith.WithSelf.%assoc0 (constants.%assoc0.936)] -// CHECK:STDOUT: %Core.import_ref.e50: @SubAssignWith.WithSelf.%SubAssignWith.WithSelf.Op.type (%SubAssignWith.WithSelf.Op.type.839113.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @SubAssignWith.WithSelf.%SubAssignWith.WithSelf.Op (constants.%SubAssignWith.WithSelf.Op.2286e8.1)] -// CHECK:STDOUT: %Core.import_ref.7b0 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.5c1: @MulAssignWith.WithSelf.%MulAssignWith.assoc_type (%MulAssignWith.assoc_type.153441.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @MulAssignWith.WithSelf.%assoc0 (constants.%assoc0.862)] -// CHECK:STDOUT: %Core.import_ref.763: @MulAssignWith.WithSelf.%MulAssignWith.WithSelf.Op.type (%MulAssignWith.WithSelf.Op.type.44adac.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @MulAssignWith.WithSelf.%MulAssignWith.WithSelf.Op (constants.%MulAssignWith.WithSelf.Op.f87570.1)] -// CHECK:STDOUT: %Core.import_ref.634 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.cbe: @DivAssignWith.WithSelf.%DivAssignWith.assoc_type (%DivAssignWith.assoc_type.c30cb0.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @DivAssignWith.WithSelf.%assoc0 (constants.%assoc0.086)] -// CHECK:STDOUT: %Core.import_ref.d8a: @DivAssignWith.WithSelf.%DivAssignWith.WithSelf.Op.type (%DivAssignWith.WithSelf.Op.type.8e0740.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @DivAssignWith.WithSelf.%DivAssignWith.WithSelf.Op (constants.%DivAssignWith.WithSelf.Op.0bd7e1.1)] -// CHECK:STDOUT: %Core.import_ref.b97 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.447: @ModAssignWith.WithSelf.%ModAssignWith.assoc_type (%ModAssignWith.assoc_type.0ff0e5.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @ModAssignWith.WithSelf.%assoc0 (constants.%assoc0.715)] -// CHECK:STDOUT: %Core.import_ref.aee3: @ModAssignWith.WithSelf.%ModAssignWith.WithSelf.Op.type (%ModAssignWith.WithSelf.Op.type.292942.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @ModAssignWith.WithSelf.%ModAssignWith.WithSelf.Op (constants.%ModAssignWith.WithSelf.Op.84faf3.1)] -// CHECK:STDOUT: %Core.import_ref.248 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.5a1: @AddWith.WithSelf.%AddWith.assoc_type (%AddWith.assoc_type.588) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @AddWith.WithSelf.%assoc1 (constants.%assoc1.57d)] +// CHECK:STDOUT: %Core.import_ref.3cf: @AddWith.WithSelf.%AddWith.WithSelf.Op.type (%AddWith.WithSelf.Op.type.28e) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @AddWith.WithSelf.%AddWith.WithSelf.Op (constants.%AddWith.WithSelf.Op.eab)] +// CHECK:STDOUT: %Core.import_ref.91f8: type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = %Result.9a4] +// CHECK:STDOUT: %Result.9a4: type = assoc_const_decl @Result.1 [concrete] {} +// CHECK:STDOUT: %Core.import_ref.9768 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.0f3: @SubWith.WithSelf.%SubWith.assoc_type (%SubWith.assoc_type.b0b) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @SubWith.WithSelf.%assoc1 (constants.%assoc1.178)] +// CHECK:STDOUT: %Core.import_ref.3a4: @SubWith.WithSelf.%SubWith.WithSelf.Op.type (%SubWith.WithSelf.Op.type.68d) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @SubWith.WithSelf.%SubWith.WithSelf.Op (constants.%SubWith.WithSelf.Op.97a)] +// CHECK:STDOUT: %Core.import_ref.190e: type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = %Result.7bd] +// CHECK:STDOUT: %Result.7bd: type = assoc_const_decl @Result.2 [concrete] {} +// CHECK:STDOUT: %Core.import_ref.b59 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.8c1: @MulWith.WithSelf.%MulWith.assoc_type (%MulWith.assoc_type.7b2) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @MulWith.WithSelf.%assoc1 (constants.%assoc1.8f7)] +// CHECK:STDOUT: %Core.import_ref.5a0: @MulWith.WithSelf.%MulWith.WithSelf.Op.type (%MulWith.WithSelf.Op.type.176) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @MulWith.WithSelf.%MulWith.WithSelf.Op (constants.%MulWith.WithSelf.Op.a75)] +// CHECK:STDOUT: %Core.import_ref.59c: type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = %Result.a64] +// CHECK:STDOUT: %Result.a64: type = assoc_const_decl @Result.3 [concrete] {} +// CHECK:STDOUT: %Core.import_ref.955 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.ca2: @DivWith.WithSelf.%DivWith.assoc_type (%DivWith.assoc_type.d8b) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @DivWith.WithSelf.%assoc1 (constants.%assoc1.7b1)] +// CHECK:STDOUT: %Core.import_ref.7845: @DivWith.WithSelf.%DivWith.WithSelf.Op.type (%DivWith.WithSelf.Op.type.0f0) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @DivWith.WithSelf.%DivWith.WithSelf.Op (constants.%DivWith.WithSelf.Op.51e)] +// CHECK:STDOUT: %Core.import_ref.dee: type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = %Result.cb0] +// CHECK:STDOUT: %Result.cb0: type = assoc_const_decl @Result.4 [concrete] {} +// CHECK:STDOUT: %Core.import_ref.8b6 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.ffe: @ModWith.WithSelf.%ModWith.assoc_type (%ModWith.assoc_type.316) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @ModWith.WithSelf.%assoc1 (constants.%assoc1.132)] +// CHECK:STDOUT: %Core.import_ref.b56: @ModWith.WithSelf.%ModWith.WithSelf.Op.type (%ModWith.WithSelf.Op.type.d14) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @ModWith.WithSelf.%ModWith.WithSelf.Op (constants.%ModWith.WithSelf.Op.9e4)] +// CHECK:STDOUT: %Core.import_ref.61a: type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = %Result.803] +// CHECK:STDOUT: %Result.803: type = assoc_const_decl @Result.5 [concrete] {} +// CHECK:STDOUT: %Core.import_ref.33c = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.bdd: @AddAssignWith.WithSelf.%AddAssignWith.assoc_type (%AddAssignWith.assoc_type.8ddaf4.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @AddAssignWith.WithSelf.%assoc0 (constants.%assoc0.86d)] +// CHECK:STDOUT: %Core.import_ref.3b2: @AddAssignWith.WithSelf.%AddAssignWith.WithSelf.Op.type (%AddAssignWith.WithSelf.Op.type.cd574e.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @AddAssignWith.WithSelf.%AddAssignWith.WithSelf.Op (constants.%AddAssignWith.WithSelf.Op.106889.1)] +// CHECK:STDOUT: %Core.import_ref.87e = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.509: @SubAssignWith.WithSelf.%SubAssignWith.assoc_type (%SubAssignWith.assoc_type.6e3877.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @SubAssignWith.WithSelf.%assoc0 (constants.%assoc0.b8e)] +// CHECK:STDOUT: %Core.import_ref.8f2: @SubAssignWith.WithSelf.%SubAssignWith.WithSelf.Op.type (%SubAssignWith.WithSelf.Op.type.42f7cc.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @SubAssignWith.WithSelf.%SubAssignWith.WithSelf.Op (constants.%SubAssignWith.WithSelf.Op.25af21.1)] +// CHECK:STDOUT: %Core.import_ref.e7f = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.b6e: @MulAssignWith.WithSelf.%MulAssignWith.assoc_type (%MulAssignWith.assoc_type.9aa18f.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @MulAssignWith.WithSelf.%assoc0 (constants.%assoc0.2ec)] +// CHECK:STDOUT: %Core.import_ref.ba3: @MulAssignWith.WithSelf.%MulAssignWith.WithSelf.Op.type (%MulAssignWith.WithSelf.Op.type.5df5bd.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @MulAssignWith.WithSelf.%MulAssignWith.WithSelf.Op (constants.%MulAssignWith.WithSelf.Op.ee0eda.1)] +// CHECK:STDOUT: %Core.import_ref.408 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.988: @DivAssignWith.WithSelf.%DivAssignWith.assoc_type (%DivAssignWith.assoc_type.bb68ec.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @DivAssignWith.WithSelf.%assoc0 (constants.%assoc0.de1)] +// CHECK:STDOUT: %Core.import_ref.a5d: @DivAssignWith.WithSelf.%DivAssignWith.WithSelf.Op.type (%DivAssignWith.WithSelf.Op.type.ff5775.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @DivAssignWith.WithSelf.%DivAssignWith.WithSelf.Op (constants.%DivAssignWith.WithSelf.Op.91e0ff.1)] +// CHECK:STDOUT: %Core.import_ref.df2 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.3ff: @ModAssignWith.WithSelf.%ModAssignWith.assoc_type (%ModAssignWith.assoc_type.bc79ec.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @ModAssignWith.WithSelf.%assoc0 (constants.%assoc0.0f3)] +// CHECK:STDOUT: %Core.import_ref.cf6: @ModAssignWith.WithSelf.%ModAssignWith.WithSelf.Op.type (%ModAssignWith.WithSelf.Op.type.ec4109.1) = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [symbolic = @ModAssignWith.WithSelf.%ModAssignWith.WithSelf.Op (constants.%ModAssignWith.WithSelf.Op.ac45fc.1)] +// CHECK:STDOUT: %Core.import_ref.d29 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AddWith.loc124(%Result.loc121_9.2: %Destroy.type, %U.loc122_4.2: %Destroy.type, %T.loc123_4.2: @AddWith.loc124.%facet_type.loc123_38 (%facet_type.cac)) { +// CHECK:STDOUT: generic fn @AddWith.loc124(%Result.loc121_9.2: %Destroy.type, %U.loc122_4.2: %Destroy.type, %T.loc123_4.2: @AddWith.loc124.%facet_type.loc123_38 (%facet_type.096)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc126: = require_complete_type %AddWith.type.loc123_36.1 [symbolic = %require_complete.loc126 (constants.%require_complete.3dc)] -// CHECK:STDOUT: %assoc1: @AddWith.loc124.%AddWith.assoc_type (%AddWith.assoc_type.c6c) = assoc_entity element1, imports.%Core.import_ref.29ff [symbolic = %assoc1 (constants.%assoc1.d93)] -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126: = lookup_impl_witness %T.loc123_4.1, @AddWith.1, @AddWith.1(%U.as_type.loc123_36.1) [symbolic = %AddWith.lookup_impl_witness.loc126 (constants.%AddWith.lookup_impl_witness.e7e)] -// CHECK:STDOUT: %AddWith.facet: @AddWith.loc124.%AddWith.type.loc123_36.1 (%AddWith.type.ad2) = facet_value %T.as_type.loc124_29.1, (%AddWith.lookup_impl_witness.loc126) [symbolic = %AddWith.facet (constants.%AddWith.facet.c8e)] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%U.as_type.loc123_36.1, %AddWith.facet) [symbolic = %AddWith.WithSelf.Op.type (constants.%AddWith.WithSelf.Op.type.12d)] -// CHECK:STDOUT: %.loc126_5.4: type = fn_type_with_self_type %AddWith.WithSelf.Op.type, %AddWith.facet [symbolic = %.loc126_5.4 (constants.%.ac7)] -// CHECK:STDOUT: %impl.elem1.loc126_5.2: @AddWith.loc124.%.loc126_5.4 (%.ac7) = impl_witness_access %AddWith.lookup_impl_witness.loc126, element1 [symbolic = %impl.elem1.loc126_5.2 (constants.%impl.elem1.f9d)] -// CHECK:STDOUT: %specific_impl_fn.loc126_5.3: = specific_impl_function %impl.elem1.loc126_5.2, @AddWith.WithSelf.Op(%U.as_type.loc123_36.1, %AddWith.facet) [symbolic = %specific_impl_fn.loc126_5.3 (constants.%specific_impl_fn.8f2)] -// 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.6304ea.2)] -// CHECK:STDOUT: %.loc126_5.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc121_9.1 [symbolic = %.loc126_5.5 (constants.%.543)] +// CHECK:STDOUT: %require_complete.loc126: = require_complete_type %AddWith.type.loc123_36.1 [symbolic = %require_complete.loc126 (constants.%require_complete.15e)] +// CHECK:STDOUT: %assoc1: @AddWith.loc124.%AddWith.assoc_type (%AddWith.assoc_type.bc8) = assoc_entity element1, imports.%Core.import_ref.3cf [symbolic = %assoc1 (constants.%assoc1.13e)] +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126: = lookup_impl_witness %T.loc123_4.1, @AddWith.1, @AddWith.1(%U.as_type.loc123_36.1) [symbolic = %AddWith.lookup_impl_witness.loc126 (constants.%AddWith.lookup_impl_witness.8b3)] +// CHECK:STDOUT: %AddWith.facet: @AddWith.loc124.%AddWith.type.loc123_36.1 (%AddWith.type.9da) = facet_value %T.as_type.loc124_29.1, (%AddWith.lookup_impl_witness.loc126) [symbolic = %AddWith.facet (constants.%AddWith.facet.fc9)] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%U.as_type.loc123_36.1, %AddWith.facet) [symbolic = %AddWith.WithSelf.Op.type (constants.%AddWith.WithSelf.Op.type.eb7)] +// CHECK:STDOUT: %.loc126_5.4: type = fn_type_with_self_type %AddWith.WithSelf.Op.type, %AddWith.facet [symbolic = %.loc126_5.4 (constants.%.012e)] +// CHECK:STDOUT: %impl.elem1.loc126_5.2: @AddWith.loc124.%.loc126_5.4 (%.012e) = impl_witness_access %AddWith.lookup_impl_witness.loc126, element1 [symbolic = %impl.elem1.loc126_5.2 (constants.%impl.elem1.0c1)] +// CHECK:STDOUT: %specific_impl_fn.loc126_5.3: = specific_impl_function %impl.elem1.loc126_5.2, @AddWith.WithSelf.Op(%U.as_type.loc123_36.1, %AddWith.facet) [symbolic = %specific_impl_fn.loc126_5.3 (constants.%specific_impl_fn.95a)] +// 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: %.loc126_5.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc121_9.1 [symbolic = %.loc126_5.5 (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.5 (%.543) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc126_5.2 (constants.%impl.elem0.531)] -// 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.010)] +// CHECK:STDOUT: %impl.elem0.loc126_5.2: @AddWith.loc124.%.loc126_5.5 (%.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: -// CHECK:STDOUT: fn(%result.param: @AddWith.loc124.%Result.as_type.loc123_54.1 (%Result.as_type), %x.param: @AddWith.loc124.%T.as_type.loc124_29.1 (%T.as_type.46a), %y.param: @AddWith.loc124.%U.as_type.loc123_36.1 (%U.as_type.f7f)) { +// CHECK:STDOUT: fn(%result.param: @AddWith.loc124.%Result.as_type.loc123_54.1 (%Result.as_type), %x.param: @AddWith.loc124.%T.as_type.loc124_29.1 (%T.as_type.606), %y.param: @AddWith.loc124.%U.as_type.loc123_36.1 (%U.as_type.b61)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @AddWith.loc124.%T.as_type.loc124_29.1 (%T.as_type.46a) = name_ref x, %x -// CHECK:STDOUT: %y.ref: @AddWith.loc124.%U.as_type.loc123_36.1 (%U.as_type.f7f) = name_ref y, %y -// CHECK:STDOUT: %AddWith.type.loc126: type = facet_type <@AddWith.1, @AddWith.1(constants.%U.as_type.f7f)> [symbolic = %AddWith.type.loc123_36.1 (constants.%AddWith.type.ad2)] -// CHECK:STDOUT: %.loc126_5.1: @AddWith.loc124.%AddWith.assoc_type (%AddWith.assoc_type.c6c) = specific_constant imports.%Core.import_ref.ada, @AddWith.WithSelf(constants.%U.as_type.f7f, constants.%Self.66b) [symbolic = %assoc1 (constants.%assoc1.d93)] -// CHECK:STDOUT: %Op.ref: @AddWith.loc124.%AddWith.assoc_type (%AddWith.assoc_type.c6c) = name_ref Op, %.loc126_5.1 [symbolic = %assoc1 (constants.%assoc1.d93)] -// CHECK:STDOUT: %impl.elem1.loc126_5.1: @AddWith.loc124.%.loc126_5.4 (%.ac7) = impl_witness_access constants.%AddWith.lookup_impl_witness.e7e, element1 [symbolic = %impl.elem1.loc126_5.2 (constants.%impl.elem1.f9d)] +// CHECK:STDOUT: %x.ref: @AddWith.loc124.%T.as_type.loc124_29.1 (%T.as_type.606) = name_ref x, %x +// CHECK:STDOUT: %y.ref: @AddWith.loc124.%U.as_type.loc123_36.1 (%U.as_type.b61) = name_ref y, %y +// CHECK:STDOUT: %AddWith.type.loc126: type = facet_type <@AddWith.1, @AddWith.1(constants.%U.as_type.b61)> [symbolic = %AddWith.type.loc123_36.1 (constants.%AddWith.type.9da)] +// CHECK:STDOUT: %.loc126_5.1: @AddWith.loc124.%AddWith.assoc_type (%AddWith.assoc_type.bc8) = specific_constant imports.%Core.import_ref.5a1, @AddWith.WithSelf(constants.%U.as_type.b61, constants.%Self.96a) [symbolic = %assoc1 (constants.%assoc1.13e)] +// CHECK:STDOUT: %Op.ref: @AddWith.loc124.%AddWith.assoc_type (%AddWith.assoc_type.bc8) = name_ref Op, %.loc126_5.1 [symbolic = %assoc1 (constants.%assoc1.13e)] +// CHECK:STDOUT: %impl.elem1.loc126_5.1: @AddWith.loc124.%.loc126_5.4 (%.012e) = impl_witness_access constants.%AddWith.lookup_impl_witness.8b3, element1 [symbolic = %impl.elem1.loc126_5.2 (constants.%impl.elem1.0c1)] // CHECK:STDOUT: %bound_method.loc126_5.1: = bound_method %x.ref, %impl.elem1.loc126_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc126_5.1: = specific_impl_function %impl.elem1.loc126_5.1, @AddWith.WithSelf.Op(constants.%U.as_type.f7f, constants.%AddWith.facet.c8e) [symbolic = %specific_impl_fn.loc126_5.3 (constants.%specific_impl_fn.8f2)] +// CHECK:STDOUT: %specific_impl_fn.loc126_5.1: = specific_impl_function %impl.elem1.loc126_5.1, @AddWith.WithSelf.Op(constants.%U.as_type.b61, constants.%AddWith.facet.fc9) [symbolic = %specific_impl_fn.loc126_5.3 (constants.%specific_impl_fn.95a)] // CHECK:STDOUT: %bound_method.loc126_5.2: = bound_method %x.ref, %specific_impl_fn.loc126_5.1 // CHECK:STDOUT: %.loc126_5.2: ref @AddWith.loc124.%Result.as_type.loc123_54.1 (%Result.as_type) = temporary_storage // CHECK:STDOUT: %AddWith.WithSelf.Op.call: init @AddWith.loc124.%Result.as_type.loc123_54.1 (%Result.as_type) to %.loc126_5.2 = call %bound_method.loc126_5.2(%x.ref, %y.ref) // CHECK:STDOUT: %.loc126_5.3: ref @AddWith.loc124.%Result.as_type.loc123_54.1 (%Result.as_type) = temporary %.loc126_5.2, %AddWith.WithSelf.Op.call -// CHECK:STDOUT: %impl.elem0.loc126_5.1: @AddWith.loc124.%.loc126_5.5 (%.543) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc126_5.2 (constants.%impl.elem0.531)] +// CHECK:STDOUT: %impl.elem0.loc126_5.1: @AddWith.loc124.%.loc126_5.5 (%.53a) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc126_5.2 (constants.%impl.elem0.0f9)] // CHECK:STDOUT: %bound_method.loc126_5.3: = bound_method %.loc126_5.3, %impl.elem0.loc126_5.1 -// 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.010)] +// 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: %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: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @SubWith.loc135(%Result.loc132_9.2: %Destroy.type, %U.loc133_4.2: %Destroy.type, %T.loc134_4.2: @SubWith.loc135.%facet_type.loc134_38 (%facet_type.98a)) { +// CHECK:STDOUT: generic fn @SubWith.loc135(%Result.loc132_9.2: %Destroy.type, %U.loc133_4.2: %Destroy.type, %T.loc134_4.2: @SubWith.loc135.%facet_type.loc134_38 (%facet_type.5a5)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc137: = require_complete_type %SubWith.type.loc134_36.1 [symbolic = %require_complete.loc137 (constants.%require_complete.30c)] -// CHECK:STDOUT: %assoc1: @SubWith.loc135.%SubWith.assoc_type (%SubWith.assoc_type.767) = assoc_entity element1, imports.%Core.import_ref.940 [symbolic = %assoc1 (constants.%assoc1.edb)] -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137: = lookup_impl_witness %T.loc134_4.1, @SubWith.1, @SubWith.1(%U.as_type.loc134_36.1) [symbolic = %SubWith.lookup_impl_witness.loc137 (constants.%SubWith.lookup_impl_witness.031)] -// CHECK:STDOUT: %SubWith.facet: @SubWith.loc135.%SubWith.type.loc134_36.1 (%SubWith.type.394) = facet_value %T.as_type.loc135_29.1, (%SubWith.lookup_impl_witness.loc137) [symbolic = %SubWith.facet (constants.%SubWith.facet.2d1)] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%U.as_type.loc134_36.1, %SubWith.facet) [symbolic = %SubWith.WithSelf.Op.type (constants.%SubWith.WithSelf.Op.type.496)] -// CHECK:STDOUT: %.loc137_5.4: type = fn_type_with_self_type %SubWith.WithSelf.Op.type, %SubWith.facet [symbolic = %.loc137_5.4 (constants.%.754)] -// CHECK:STDOUT: %impl.elem1.loc137_5.2: @SubWith.loc135.%.loc137_5.4 (%.754) = impl_witness_access %SubWith.lookup_impl_witness.loc137, element1 [symbolic = %impl.elem1.loc137_5.2 (constants.%impl.elem1.a03)] -// CHECK:STDOUT: %specific_impl_fn.loc137_5.3: = specific_impl_function %impl.elem1.loc137_5.2, @SubWith.WithSelf.Op(%U.as_type.loc134_36.1, %SubWith.facet) [symbolic = %specific_impl_fn.loc137_5.3 (constants.%specific_impl_fn.069)] -// 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.6304ea.2)] -// CHECK:STDOUT: %.loc137_5.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc132_9.1 [symbolic = %.loc137_5.5 (constants.%.543)] +// CHECK:STDOUT: %require_complete.loc137: = require_complete_type %SubWith.type.loc134_36.1 [symbolic = %require_complete.loc137 (constants.%require_complete.6ff)] +// CHECK:STDOUT: %assoc1: @SubWith.loc135.%SubWith.assoc_type (%SubWith.assoc_type.3a1) = assoc_entity element1, imports.%Core.import_ref.3a4 [symbolic = %assoc1 (constants.%assoc1.8fd)] +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137: = lookup_impl_witness %T.loc134_4.1, @SubWith.1, @SubWith.1(%U.as_type.loc134_36.1) [symbolic = %SubWith.lookup_impl_witness.loc137 (constants.%SubWith.lookup_impl_witness.07c)] +// CHECK:STDOUT: %SubWith.facet: @SubWith.loc135.%SubWith.type.loc134_36.1 (%SubWith.type.b5d) = facet_value %T.as_type.loc135_29.1, (%SubWith.lookup_impl_witness.loc137) [symbolic = %SubWith.facet (constants.%SubWith.facet.44a)] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%U.as_type.loc134_36.1, %SubWith.facet) [symbolic = %SubWith.WithSelf.Op.type (constants.%SubWith.WithSelf.Op.type.1fe)] +// CHECK:STDOUT: %.loc137_5.4: type = fn_type_with_self_type %SubWith.WithSelf.Op.type, %SubWith.facet [symbolic = %.loc137_5.4 (constants.%.fa2)] +// CHECK:STDOUT: %impl.elem1.loc137_5.2: @SubWith.loc135.%.loc137_5.4 (%.fa2) = impl_witness_access %SubWith.lookup_impl_witness.loc137, element1 [symbolic = %impl.elem1.loc137_5.2 (constants.%impl.elem1.fc7)] +// CHECK:STDOUT: %specific_impl_fn.loc137_5.3: = specific_impl_function %impl.elem1.loc137_5.2, @SubWith.WithSelf.Op(%U.as_type.loc134_36.1, %SubWith.facet) [symbolic = %specific_impl_fn.loc137_5.3 (constants.%specific_impl_fn.3fc)] +// 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: %.loc137_5.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc132_9.1 [symbolic = %.loc137_5.5 (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.5 (%.543) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc137_5.2 (constants.%impl.elem0.531)] -// 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.010)] +// CHECK:STDOUT: %impl.elem0.loc137_5.2: @SubWith.loc135.%.loc137_5.5 (%.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: -// CHECK:STDOUT: fn(%result.param: @SubWith.loc135.%Result.as_type.loc134_54.1 (%Result.as_type), %x.param: @SubWith.loc135.%T.as_type.loc135_29.1 (%T.as_type.330), %y.param: @SubWith.loc135.%U.as_type.loc134_36.1 (%U.as_type.f7f)) { +// CHECK:STDOUT: fn(%result.param: @SubWith.loc135.%Result.as_type.loc134_54.1 (%Result.as_type), %x.param: @SubWith.loc135.%T.as_type.loc135_29.1 (%T.as_type.b22), %y.param: @SubWith.loc135.%U.as_type.loc134_36.1 (%U.as_type.b61)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @SubWith.loc135.%T.as_type.loc135_29.1 (%T.as_type.330) = name_ref x, %x -// CHECK:STDOUT: %y.ref: @SubWith.loc135.%U.as_type.loc134_36.1 (%U.as_type.f7f) = name_ref y, %y -// CHECK:STDOUT: %SubWith.type.loc137: type = facet_type <@SubWith.1, @SubWith.1(constants.%U.as_type.f7f)> [symbolic = %SubWith.type.loc134_36.1 (constants.%SubWith.type.394)] -// CHECK:STDOUT: %.loc137_5.1: @SubWith.loc135.%SubWith.assoc_type (%SubWith.assoc_type.767) = specific_constant imports.%Core.import_ref.cd2, @SubWith.WithSelf(constants.%U.as_type.f7f, constants.%Self.cc1) [symbolic = %assoc1 (constants.%assoc1.edb)] -// CHECK:STDOUT: %Op.ref: @SubWith.loc135.%SubWith.assoc_type (%SubWith.assoc_type.767) = name_ref Op, %.loc137_5.1 [symbolic = %assoc1 (constants.%assoc1.edb)] -// CHECK:STDOUT: %impl.elem1.loc137_5.1: @SubWith.loc135.%.loc137_5.4 (%.754) = impl_witness_access constants.%SubWith.lookup_impl_witness.031, element1 [symbolic = %impl.elem1.loc137_5.2 (constants.%impl.elem1.a03)] +// CHECK:STDOUT: %x.ref: @SubWith.loc135.%T.as_type.loc135_29.1 (%T.as_type.b22) = name_ref x, %x +// CHECK:STDOUT: %y.ref: @SubWith.loc135.%U.as_type.loc134_36.1 (%U.as_type.b61) = name_ref y, %y +// CHECK:STDOUT: %SubWith.type.loc137: type = facet_type <@SubWith.1, @SubWith.1(constants.%U.as_type.b61)> [symbolic = %SubWith.type.loc134_36.1 (constants.%SubWith.type.b5d)] +// CHECK:STDOUT: %.loc137_5.1: @SubWith.loc135.%SubWith.assoc_type (%SubWith.assoc_type.3a1) = specific_constant imports.%Core.import_ref.0f3, @SubWith.WithSelf(constants.%U.as_type.b61, constants.%Self.d6b) [symbolic = %assoc1 (constants.%assoc1.8fd)] +// CHECK:STDOUT: %Op.ref: @SubWith.loc135.%SubWith.assoc_type (%SubWith.assoc_type.3a1) = name_ref Op, %.loc137_5.1 [symbolic = %assoc1 (constants.%assoc1.8fd)] +// CHECK:STDOUT: %impl.elem1.loc137_5.1: @SubWith.loc135.%.loc137_5.4 (%.fa2) = impl_witness_access constants.%SubWith.lookup_impl_witness.07c, element1 [symbolic = %impl.elem1.loc137_5.2 (constants.%impl.elem1.fc7)] // CHECK:STDOUT: %bound_method.loc137_5.1: = bound_method %x.ref, %impl.elem1.loc137_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc137_5.1: = specific_impl_function %impl.elem1.loc137_5.1, @SubWith.WithSelf.Op(constants.%U.as_type.f7f, constants.%SubWith.facet.2d1) [symbolic = %specific_impl_fn.loc137_5.3 (constants.%specific_impl_fn.069)] +// CHECK:STDOUT: %specific_impl_fn.loc137_5.1: = specific_impl_function %impl.elem1.loc137_5.1, @SubWith.WithSelf.Op(constants.%U.as_type.b61, constants.%SubWith.facet.44a) [symbolic = %specific_impl_fn.loc137_5.3 (constants.%specific_impl_fn.3fc)] // CHECK:STDOUT: %bound_method.loc137_5.2: = bound_method %x.ref, %specific_impl_fn.loc137_5.1 // CHECK:STDOUT: %.loc137_5.2: ref @SubWith.loc135.%Result.as_type.loc134_54.1 (%Result.as_type) = temporary_storage // CHECK:STDOUT: %SubWith.WithSelf.Op.call: init @SubWith.loc135.%Result.as_type.loc134_54.1 (%Result.as_type) to %.loc137_5.2 = call %bound_method.loc137_5.2(%x.ref, %y.ref) // CHECK:STDOUT: %.loc137_5.3: ref @SubWith.loc135.%Result.as_type.loc134_54.1 (%Result.as_type) = temporary %.loc137_5.2, %SubWith.WithSelf.Op.call -// CHECK:STDOUT: %impl.elem0.loc137_5.1: @SubWith.loc135.%.loc137_5.5 (%.543) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc137_5.2 (constants.%impl.elem0.531)] +// CHECK:STDOUT: %impl.elem0.loc137_5.1: @SubWith.loc135.%.loc137_5.5 (%.53a) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc137_5.2 (constants.%impl.elem0.0f9)] // CHECK:STDOUT: %bound_method.loc137_5.3: = bound_method %.loc137_5.3, %impl.elem0.loc137_5.1 -// 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.010)] +// 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: %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: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @MulWith.loc146(%Result.loc143_9.2: %Destroy.type, %U.loc144_4.2: %Destroy.type, %T.loc145_4.2: @MulWith.loc146.%facet_type.loc145_38 (%facet_type.a59)) { +// CHECK:STDOUT: generic fn @MulWith.loc146(%Result.loc143_9.2: %Destroy.type, %U.loc144_4.2: %Destroy.type, %T.loc145_4.2: @MulWith.loc146.%facet_type.loc145_38 (%facet_type.c32)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc148: = require_complete_type %MulWith.type.loc145_36.1 [symbolic = %require_complete.loc148 (constants.%require_complete.01c)] -// CHECK:STDOUT: %assoc1: @MulWith.loc146.%MulWith.assoc_type (%MulWith.assoc_type.fff) = assoc_entity element1, imports.%Core.import_ref.d23 [symbolic = %assoc1 (constants.%assoc1.bde)] -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148: = lookup_impl_witness %T.loc145_4.1, @MulWith.1, @MulWith.1(%U.as_type.loc145_36.1) [symbolic = %MulWith.lookup_impl_witness.loc148 (constants.%MulWith.lookup_impl_witness.e5c)] -// CHECK:STDOUT: %MulWith.facet: @MulWith.loc146.%MulWith.type.loc145_36.1 (%MulWith.type.195) = facet_value %T.as_type.loc146_29.1, (%MulWith.lookup_impl_witness.loc148) [symbolic = %MulWith.facet (constants.%MulWith.facet.eb2)] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%U.as_type.loc145_36.1, %MulWith.facet) [symbolic = %MulWith.WithSelf.Op.type (constants.%MulWith.WithSelf.Op.type.288)] -// CHECK:STDOUT: %.loc148_5.4: type = fn_type_with_self_type %MulWith.WithSelf.Op.type, %MulWith.facet [symbolic = %.loc148_5.4 (constants.%.a85)] -// CHECK:STDOUT: %impl.elem1.loc148_5.2: @MulWith.loc146.%.loc148_5.4 (%.a85) = impl_witness_access %MulWith.lookup_impl_witness.loc148, element1 [symbolic = %impl.elem1.loc148_5.2 (constants.%impl.elem1.447)] -// CHECK:STDOUT: %specific_impl_fn.loc148_5.3: = specific_impl_function %impl.elem1.loc148_5.2, @MulWith.WithSelf.Op(%U.as_type.loc145_36.1, %MulWith.facet) [symbolic = %specific_impl_fn.loc148_5.3 (constants.%specific_impl_fn.32c)] -// 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.6304ea.2)] -// CHECK:STDOUT: %.loc148_5.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc143_9.1 [symbolic = %.loc148_5.5 (constants.%.543)] +// CHECK:STDOUT: %require_complete.loc148: = require_complete_type %MulWith.type.loc145_36.1 [symbolic = %require_complete.loc148 (constants.%require_complete.861)] +// CHECK:STDOUT: %assoc1: @MulWith.loc146.%MulWith.assoc_type (%MulWith.assoc_type.a12) = assoc_entity element1, imports.%Core.import_ref.5a0 [symbolic = %assoc1 (constants.%assoc1.a0f)] +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148: = lookup_impl_witness %T.loc145_4.1, @MulWith.1, @MulWith.1(%U.as_type.loc145_36.1) [symbolic = %MulWith.lookup_impl_witness.loc148 (constants.%MulWith.lookup_impl_witness.a55)] +// CHECK:STDOUT: %MulWith.facet: @MulWith.loc146.%MulWith.type.loc145_36.1 (%MulWith.type.f02) = facet_value %T.as_type.loc146_29.1, (%MulWith.lookup_impl_witness.loc148) [symbolic = %MulWith.facet (constants.%MulWith.facet.5c8)] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%U.as_type.loc145_36.1, %MulWith.facet) [symbolic = %MulWith.WithSelf.Op.type (constants.%MulWith.WithSelf.Op.type.7b0)] +// CHECK:STDOUT: %.loc148_5.4: type = fn_type_with_self_type %MulWith.WithSelf.Op.type, %MulWith.facet [symbolic = %.loc148_5.4 (constants.%.476)] +// CHECK:STDOUT: %impl.elem1.loc148_5.2: @MulWith.loc146.%.loc148_5.4 (%.476) = impl_witness_access %MulWith.lookup_impl_witness.loc148, element1 [symbolic = %impl.elem1.loc148_5.2 (constants.%impl.elem1.7c4)] +// CHECK:STDOUT: %specific_impl_fn.loc148_5.3: = specific_impl_function %impl.elem1.loc148_5.2, @MulWith.WithSelf.Op(%U.as_type.loc145_36.1, %MulWith.facet) [symbolic = %specific_impl_fn.loc148_5.3 (constants.%specific_impl_fn.57f)] +// 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: %.loc148_5.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc143_9.1 [symbolic = %.loc148_5.5 (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.5 (%.543) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc148_5.2 (constants.%impl.elem0.531)] -// 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.010)] +// CHECK:STDOUT: %impl.elem0.loc148_5.2: @MulWith.loc146.%.loc148_5.5 (%.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: -// CHECK:STDOUT: fn(%result.param: @MulWith.loc146.%Result.as_type.loc145_54.1 (%Result.as_type), %x.param: @MulWith.loc146.%T.as_type.loc146_29.1 (%T.as_type.198), %y.param: @MulWith.loc146.%U.as_type.loc145_36.1 (%U.as_type.f7f)) { +// CHECK:STDOUT: fn(%result.param: @MulWith.loc146.%Result.as_type.loc145_54.1 (%Result.as_type), %x.param: @MulWith.loc146.%T.as_type.loc146_29.1 (%T.as_type.427), %y.param: @MulWith.loc146.%U.as_type.loc145_36.1 (%U.as_type.b61)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @MulWith.loc146.%T.as_type.loc146_29.1 (%T.as_type.198) = name_ref x, %x -// CHECK:STDOUT: %y.ref: @MulWith.loc146.%U.as_type.loc145_36.1 (%U.as_type.f7f) = name_ref y, %y -// CHECK:STDOUT: %MulWith.type.loc148: type = facet_type <@MulWith.1, @MulWith.1(constants.%U.as_type.f7f)> [symbolic = %MulWith.type.loc145_36.1 (constants.%MulWith.type.195)] -// CHECK:STDOUT: %.loc148_5.1: @MulWith.loc146.%MulWith.assoc_type (%MulWith.assoc_type.fff) = specific_constant imports.%Core.import_ref.537, @MulWith.WithSelf(constants.%U.as_type.f7f, constants.%Self.0e2) [symbolic = %assoc1 (constants.%assoc1.bde)] -// CHECK:STDOUT: %Op.ref: @MulWith.loc146.%MulWith.assoc_type (%MulWith.assoc_type.fff) = name_ref Op, %.loc148_5.1 [symbolic = %assoc1 (constants.%assoc1.bde)] -// CHECK:STDOUT: %impl.elem1.loc148_5.1: @MulWith.loc146.%.loc148_5.4 (%.a85) = impl_witness_access constants.%MulWith.lookup_impl_witness.e5c, element1 [symbolic = %impl.elem1.loc148_5.2 (constants.%impl.elem1.447)] +// CHECK:STDOUT: %x.ref: @MulWith.loc146.%T.as_type.loc146_29.1 (%T.as_type.427) = name_ref x, %x +// CHECK:STDOUT: %y.ref: @MulWith.loc146.%U.as_type.loc145_36.1 (%U.as_type.b61) = name_ref y, %y +// CHECK:STDOUT: %MulWith.type.loc148: type = facet_type <@MulWith.1, @MulWith.1(constants.%U.as_type.b61)> [symbolic = %MulWith.type.loc145_36.1 (constants.%MulWith.type.f02)] +// CHECK:STDOUT: %.loc148_5.1: @MulWith.loc146.%MulWith.assoc_type (%MulWith.assoc_type.a12) = specific_constant imports.%Core.import_ref.8c1, @MulWith.WithSelf(constants.%U.as_type.b61, constants.%Self.941) [symbolic = %assoc1 (constants.%assoc1.a0f)] +// CHECK:STDOUT: %Op.ref: @MulWith.loc146.%MulWith.assoc_type (%MulWith.assoc_type.a12) = name_ref Op, %.loc148_5.1 [symbolic = %assoc1 (constants.%assoc1.a0f)] +// CHECK:STDOUT: %impl.elem1.loc148_5.1: @MulWith.loc146.%.loc148_5.4 (%.476) = impl_witness_access constants.%MulWith.lookup_impl_witness.a55, element1 [symbolic = %impl.elem1.loc148_5.2 (constants.%impl.elem1.7c4)] // CHECK:STDOUT: %bound_method.loc148_5.1: = bound_method %x.ref, %impl.elem1.loc148_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc148_5.1: = specific_impl_function %impl.elem1.loc148_5.1, @MulWith.WithSelf.Op(constants.%U.as_type.f7f, constants.%MulWith.facet.eb2) [symbolic = %specific_impl_fn.loc148_5.3 (constants.%specific_impl_fn.32c)] +// CHECK:STDOUT: %specific_impl_fn.loc148_5.1: = specific_impl_function %impl.elem1.loc148_5.1, @MulWith.WithSelf.Op(constants.%U.as_type.b61, constants.%MulWith.facet.5c8) [symbolic = %specific_impl_fn.loc148_5.3 (constants.%specific_impl_fn.57f)] // CHECK:STDOUT: %bound_method.loc148_5.2: = bound_method %x.ref, %specific_impl_fn.loc148_5.1 // CHECK:STDOUT: %.loc148_5.2: ref @MulWith.loc146.%Result.as_type.loc145_54.1 (%Result.as_type) = temporary_storage // CHECK:STDOUT: %MulWith.WithSelf.Op.call: init @MulWith.loc146.%Result.as_type.loc145_54.1 (%Result.as_type) to %.loc148_5.2 = call %bound_method.loc148_5.2(%x.ref, %y.ref) // CHECK:STDOUT: %.loc148_5.3: ref @MulWith.loc146.%Result.as_type.loc145_54.1 (%Result.as_type) = temporary %.loc148_5.2, %MulWith.WithSelf.Op.call -// CHECK:STDOUT: %impl.elem0.loc148_5.1: @MulWith.loc146.%.loc148_5.5 (%.543) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc148_5.2 (constants.%impl.elem0.531)] +// CHECK:STDOUT: %impl.elem0.loc148_5.1: @MulWith.loc146.%.loc148_5.5 (%.53a) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc148_5.2 (constants.%impl.elem0.0f9)] // CHECK:STDOUT: %bound_method.loc148_5.3: = bound_method %.loc148_5.3, %impl.elem0.loc148_5.1 -// 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.010)] +// 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: %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: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @DivWith.loc157(%Result.loc154_9.2: %Destroy.type, %U.loc155_4.2: %Destroy.type, %T.loc156_4.2: @DivWith.loc157.%facet_type.loc156_38 (%facet_type.5cc)) { +// CHECK:STDOUT: generic fn @DivWith.loc157(%Result.loc154_9.2: %Destroy.type, %U.loc155_4.2: %Destroy.type, %T.loc156_4.2: @DivWith.loc157.%facet_type.loc156_38 (%facet_type.2f8)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc159: = require_complete_type %DivWith.type.loc156_36.1 [symbolic = %require_complete.loc159 (constants.%require_complete.be3)] -// CHECK:STDOUT: %assoc1: @DivWith.loc157.%DivWith.assoc_type (%DivWith.assoc_type.e27) = assoc_entity element1, imports.%Core.import_ref.e712 [symbolic = %assoc1 (constants.%assoc1.7f9)] -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159: = lookup_impl_witness %T.loc156_4.1, @DivWith.1, @DivWith.1(%U.as_type.loc156_36.1) [symbolic = %DivWith.lookup_impl_witness.loc159 (constants.%DivWith.lookup_impl_witness.2e1)] -// CHECK:STDOUT: %DivWith.facet: @DivWith.loc157.%DivWith.type.loc156_36.1 (%DivWith.type.63d) = facet_value %T.as_type.loc157_29.1, (%DivWith.lookup_impl_witness.loc159) [symbolic = %DivWith.facet (constants.%DivWith.facet.b8f)] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%U.as_type.loc156_36.1, %DivWith.facet) [symbolic = %DivWith.WithSelf.Op.type (constants.%DivWith.WithSelf.Op.type.be6)] -// CHECK:STDOUT: %.loc159_5.4: type = fn_type_with_self_type %DivWith.WithSelf.Op.type, %DivWith.facet [symbolic = %.loc159_5.4 (constants.%.42b)] -// CHECK:STDOUT: %impl.elem1.loc159_5.2: @DivWith.loc157.%.loc159_5.4 (%.42b) = impl_witness_access %DivWith.lookup_impl_witness.loc159, element1 [symbolic = %impl.elem1.loc159_5.2 (constants.%impl.elem1.6f6)] -// CHECK:STDOUT: %specific_impl_fn.loc159_5.3: = specific_impl_function %impl.elem1.loc159_5.2, @DivWith.WithSelf.Op(%U.as_type.loc156_36.1, %DivWith.facet) [symbolic = %specific_impl_fn.loc159_5.3 (constants.%specific_impl_fn.263)] -// 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.6304ea.2)] -// CHECK:STDOUT: %.loc159_5.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc154_9.1 [symbolic = %.loc159_5.5 (constants.%.543)] +// CHECK:STDOUT: %require_complete.loc159: = require_complete_type %DivWith.type.loc156_36.1 [symbolic = %require_complete.loc159 (constants.%require_complete.026)] +// CHECK:STDOUT: %assoc1: @DivWith.loc157.%DivWith.assoc_type (%DivWith.assoc_type.cf4) = assoc_entity element1, imports.%Core.import_ref.7845 [symbolic = %assoc1 (constants.%assoc1.4eb)] +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159: = lookup_impl_witness %T.loc156_4.1, @DivWith.1, @DivWith.1(%U.as_type.loc156_36.1) [symbolic = %DivWith.lookup_impl_witness.loc159 (constants.%DivWith.lookup_impl_witness.df2)] +// CHECK:STDOUT: %DivWith.facet: @DivWith.loc157.%DivWith.type.loc156_36.1 (%DivWith.type.523) = facet_value %T.as_type.loc157_29.1, (%DivWith.lookup_impl_witness.loc159) [symbolic = %DivWith.facet (constants.%DivWith.facet.ac1)] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%U.as_type.loc156_36.1, %DivWith.facet) [symbolic = %DivWith.WithSelf.Op.type (constants.%DivWith.WithSelf.Op.type.cb2)] +// CHECK:STDOUT: %.loc159_5.4: type = fn_type_with_self_type %DivWith.WithSelf.Op.type, %DivWith.facet [symbolic = %.loc159_5.4 (constants.%.2d3)] +// CHECK:STDOUT: %impl.elem1.loc159_5.2: @DivWith.loc157.%.loc159_5.4 (%.2d3) = impl_witness_access %DivWith.lookup_impl_witness.loc159, element1 [symbolic = %impl.elem1.loc159_5.2 (constants.%impl.elem1.254)] +// CHECK:STDOUT: %specific_impl_fn.loc159_5.3: = specific_impl_function %impl.elem1.loc159_5.2, @DivWith.WithSelf.Op(%U.as_type.loc156_36.1, %DivWith.facet) [symbolic = %specific_impl_fn.loc159_5.3 (constants.%specific_impl_fn.518)] +// 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: %.loc159_5.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc154_9.1 [symbolic = %.loc159_5.5 (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.5 (%.543) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc159_5.2 (constants.%impl.elem0.531)] -// 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.010)] +// CHECK:STDOUT: %impl.elem0.loc159_5.2: @DivWith.loc157.%.loc159_5.5 (%.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: -// CHECK:STDOUT: fn(%result.param: @DivWith.loc157.%Result.as_type.loc156_54.1 (%Result.as_type), %x.param: @DivWith.loc157.%T.as_type.loc157_29.1 (%T.as_type.e49), %y.param: @DivWith.loc157.%U.as_type.loc156_36.1 (%U.as_type.f7f)) { +// CHECK:STDOUT: fn(%result.param: @DivWith.loc157.%Result.as_type.loc156_54.1 (%Result.as_type), %x.param: @DivWith.loc157.%T.as_type.loc157_29.1 (%T.as_type.a31), %y.param: @DivWith.loc157.%U.as_type.loc156_36.1 (%U.as_type.b61)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @DivWith.loc157.%T.as_type.loc157_29.1 (%T.as_type.e49) = name_ref x, %x -// CHECK:STDOUT: %y.ref: @DivWith.loc157.%U.as_type.loc156_36.1 (%U.as_type.f7f) = name_ref y, %y -// CHECK:STDOUT: %DivWith.type.loc159: type = facet_type <@DivWith.1, @DivWith.1(constants.%U.as_type.f7f)> [symbolic = %DivWith.type.loc156_36.1 (constants.%DivWith.type.63d)] -// CHECK:STDOUT: %.loc159_5.1: @DivWith.loc157.%DivWith.assoc_type (%DivWith.assoc_type.e27) = specific_constant imports.%Core.import_ref.973, @DivWith.WithSelf(constants.%U.as_type.f7f, constants.%Self.7db) [symbolic = %assoc1 (constants.%assoc1.7f9)] -// CHECK:STDOUT: %Op.ref: @DivWith.loc157.%DivWith.assoc_type (%DivWith.assoc_type.e27) = name_ref Op, %.loc159_5.1 [symbolic = %assoc1 (constants.%assoc1.7f9)] -// CHECK:STDOUT: %impl.elem1.loc159_5.1: @DivWith.loc157.%.loc159_5.4 (%.42b) = impl_witness_access constants.%DivWith.lookup_impl_witness.2e1, element1 [symbolic = %impl.elem1.loc159_5.2 (constants.%impl.elem1.6f6)] +// CHECK:STDOUT: %x.ref: @DivWith.loc157.%T.as_type.loc157_29.1 (%T.as_type.a31) = name_ref x, %x +// CHECK:STDOUT: %y.ref: @DivWith.loc157.%U.as_type.loc156_36.1 (%U.as_type.b61) = name_ref y, %y +// CHECK:STDOUT: %DivWith.type.loc159: type = facet_type <@DivWith.1, @DivWith.1(constants.%U.as_type.b61)> [symbolic = %DivWith.type.loc156_36.1 (constants.%DivWith.type.523)] +// CHECK:STDOUT: %.loc159_5.1: @DivWith.loc157.%DivWith.assoc_type (%DivWith.assoc_type.cf4) = specific_constant imports.%Core.import_ref.ca2, @DivWith.WithSelf(constants.%U.as_type.b61, constants.%Self.16a) [symbolic = %assoc1 (constants.%assoc1.4eb)] +// CHECK:STDOUT: %Op.ref: @DivWith.loc157.%DivWith.assoc_type (%DivWith.assoc_type.cf4) = name_ref Op, %.loc159_5.1 [symbolic = %assoc1 (constants.%assoc1.4eb)] +// CHECK:STDOUT: %impl.elem1.loc159_5.1: @DivWith.loc157.%.loc159_5.4 (%.2d3) = impl_witness_access constants.%DivWith.lookup_impl_witness.df2, element1 [symbolic = %impl.elem1.loc159_5.2 (constants.%impl.elem1.254)] // CHECK:STDOUT: %bound_method.loc159_5.1: = bound_method %x.ref, %impl.elem1.loc159_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc159_5.1: = specific_impl_function %impl.elem1.loc159_5.1, @DivWith.WithSelf.Op(constants.%U.as_type.f7f, constants.%DivWith.facet.b8f) [symbolic = %specific_impl_fn.loc159_5.3 (constants.%specific_impl_fn.263)] +// CHECK:STDOUT: %specific_impl_fn.loc159_5.1: = specific_impl_function %impl.elem1.loc159_5.1, @DivWith.WithSelf.Op(constants.%U.as_type.b61, constants.%DivWith.facet.ac1) [symbolic = %specific_impl_fn.loc159_5.3 (constants.%specific_impl_fn.518)] // CHECK:STDOUT: %bound_method.loc159_5.2: = bound_method %x.ref, %specific_impl_fn.loc159_5.1 // CHECK:STDOUT: %.loc159_5.2: ref @DivWith.loc157.%Result.as_type.loc156_54.1 (%Result.as_type) = temporary_storage // CHECK:STDOUT: %DivWith.WithSelf.Op.call: init @DivWith.loc157.%Result.as_type.loc156_54.1 (%Result.as_type) to %.loc159_5.2 = call %bound_method.loc159_5.2(%x.ref, %y.ref) // CHECK:STDOUT: %.loc159_5.3: ref @DivWith.loc157.%Result.as_type.loc156_54.1 (%Result.as_type) = temporary %.loc159_5.2, %DivWith.WithSelf.Op.call -// CHECK:STDOUT: %impl.elem0.loc159_5.1: @DivWith.loc157.%.loc159_5.5 (%.543) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc159_5.2 (constants.%impl.elem0.531)] +// CHECK:STDOUT: %impl.elem0.loc159_5.1: @DivWith.loc157.%.loc159_5.5 (%.53a) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc159_5.2 (constants.%impl.elem0.0f9)] // CHECK:STDOUT: %bound_method.loc159_5.3: = bound_method %.loc159_5.3, %impl.elem0.loc159_5.1 -// 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.010)] +// 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: %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: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ModWith.loc168(%Result.loc165_9.2: %Destroy.type, %U.loc166_4.2: %Destroy.type, %T.loc167_4.2: @ModWith.loc168.%facet_type.loc167_38 (%facet_type.c32)) { +// CHECK:STDOUT: generic fn @ModWith.loc168(%Result.loc165_9.2: %Destroy.type, %U.loc166_4.2: %Destroy.type, %T.loc167_4.2: @ModWith.loc168.%facet_type.loc167_38 (%facet_type.9a0)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc170: = require_complete_type %ModWith.type.loc167_36.1 [symbolic = %require_complete.loc170 (constants.%require_complete.a64)] -// CHECK:STDOUT: %assoc1: @ModWith.loc168.%ModWith.assoc_type (%ModWith.assoc_type.3d0) = assoc_entity element1, imports.%Core.import_ref.104 [symbolic = %assoc1 (constants.%assoc1.3aa)] -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170: = lookup_impl_witness %T.loc167_4.1, @ModWith.1, @ModWith.1(%U.as_type.loc167_36.1) [symbolic = %ModWith.lookup_impl_witness.loc170 (constants.%ModWith.lookup_impl_witness.35d)] -// CHECK:STDOUT: %ModWith.facet: @ModWith.loc168.%ModWith.type.loc167_36.1 (%ModWith.type.125) = facet_value %T.as_type.loc168_29.1, (%ModWith.lookup_impl_witness.loc170) [symbolic = %ModWith.facet (constants.%ModWith.facet.132)] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%U.as_type.loc167_36.1, %ModWith.facet) [symbolic = %ModWith.WithSelf.Op.type (constants.%ModWith.WithSelf.Op.type.942)] -// CHECK:STDOUT: %.loc170_5.4: type = fn_type_with_self_type %ModWith.WithSelf.Op.type, %ModWith.facet [symbolic = %.loc170_5.4 (constants.%.1a3)] -// CHECK:STDOUT: %impl.elem1.loc170_5.2: @ModWith.loc168.%.loc170_5.4 (%.1a3) = impl_witness_access %ModWith.lookup_impl_witness.loc170, element1 [symbolic = %impl.elem1.loc170_5.2 (constants.%impl.elem1.4de)] -// CHECK:STDOUT: %specific_impl_fn.loc170_5.3: = specific_impl_function %impl.elem1.loc170_5.2, @ModWith.WithSelf.Op(%U.as_type.loc167_36.1, %ModWith.facet) [symbolic = %specific_impl_fn.loc170_5.3 (constants.%specific_impl_fn.5d3)] -// 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.6304ea.2)] -// CHECK:STDOUT: %.loc170_5.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc165_9.1 [symbolic = %.loc170_5.5 (constants.%.543)] +// CHECK:STDOUT: %require_complete.loc170: = require_complete_type %ModWith.type.loc167_36.1 [symbolic = %require_complete.loc170 (constants.%require_complete.a4a)] +// CHECK:STDOUT: %assoc1: @ModWith.loc168.%ModWith.assoc_type (%ModWith.assoc_type.626) = assoc_entity element1, imports.%Core.import_ref.b56 [symbolic = %assoc1 (constants.%assoc1.6d1)] +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170: = lookup_impl_witness %T.loc167_4.1, @ModWith.1, @ModWith.1(%U.as_type.loc167_36.1) [symbolic = %ModWith.lookup_impl_witness.loc170 (constants.%ModWith.lookup_impl_witness.054)] +// CHECK:STDOUT: %ModWith.facet: @ModWith.loc168.%ModWith.type.loc167_36.1 (%ModWith.type.937) = facet_value %T.as_type.loc168_29.1, (%ModWith.lookup_impl_witness.loc170) [symbolic = %ModWith.facet (constants.%ModWith.facet.555)] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%U.as_type.loc167_36.1, %ModWith.facet) [symbolic = %ModWith.WithSelf.Op.type (constants.%ModWith.WithSelf.Op.type.cfa)] +// CHECK:STDOUT: %.loc170_5.4: type = fn_type_with_self_type %ModWith.WithSelf.Op.type, %ModWith.facet [symbolic = %.loc170_5.4 (constants.%.973)] +// CHECK:STDOUT: %impl.elem1.loc170_5.2: @ModWith.loc168.%.loc170_5.4 (%.973) = impl_witness_access %ModWith.lookup_impl_witness.loc170, element1 [symbolic = %impl.elem1.loc170_5.2 (constants.%impl.elem1.f20)] +// CHECK:STDOUT: %specific_impl_fn.loc170_5.3: = specific_impl_function %impl.elem1.loc170_5.2, @ModWith.WithSelf.Op(%U.as_type.loc167_36.1, %ModWith.facet) [symbolic = %specific_impl_fn.loc170_5.3 (constants.%specific_impl_fn.37e)] +// 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: %.loc170_5.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc165_9.1 [symbolic = %.loc170_5.5 (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.5 (%.543) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc170_5.2 (constants.%impl.elem0.531)] -// 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.010)] +// CHECK:STDOUT: %impl.elem0.loc170_5.2: @ModWith.loc168.%.loc170_5.5 (%.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: -// CHECK:STDOUT: fn(%result.param: @ModWith.loc168.%Result.as_type.loc167_54.1 (%Result.as_type), %x.param: @ModWith.loc168.%T.as_type.loc168_29.1 (%T.as_type.105), %y.param: @ModWith.loc168.%U.as_type.loc167_36.1 (%U.as_type.f7f)) { +// CHECK:STDOUT: fn(%result.param: @ModWith.loc168.%Result.as_type.loc167_54.1 (%Result.as_type), %x.param: @ModWith.loc168.%T.as_type.loc168_29.1 (%T.as_type.fcd), %y.param: @ModWith.loc168.%U.as_type.loc167_36.1 (%U.as_type.b61)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @ModWith.loc168.%T.as_type.loc168_29.1 (%T.as_type.105) = name_ref x, %x -// CHECK:STDOUT: %y.ref: @ModWith.loc168.%U.as_type.loc167_36.1 (%U.as_type.f7f) = name_ref y, %y -// CHECK:STDOUT: %ModWith.type.loc170: type = facet_type <@ModWith.1, @ModWith.1(constants.%U.as_type.f7f)> [symbolic = %ModWith.type.loc167_36.1 (constants.%ModWith.type.125)] -// CHECK:STDOUT: %.loc170_5.1: @ModWith.loc168.%ModWith.assoc_type (%ModWith.assoc_type.3d0) = specific_constant imports.%Core.import_ref.fc2, @ModWith.WithSelf(constants.%U.as_type.f7f, constants.%Self.310) [symbolic = %assoc1 (constants.%assoc1.3aa)] -// CHECK:STDOUT: %Op.ref: @ModWith.loc168.%ModWith.assoc_type (%ModWith.assoc_type.3d0) = name_ref Op, %.loc170_5.1 [symbolic = %assoc1 (constants.%assoc1.3aa)] -// CHECK:STDOUT: %impl.elem1.loc170_5.1: @ModWith.loc168.%.loc170_5.4 (%.1a3) = impl_witness_access constants.%ModWith.lookup_impl_witness.35d, element1 [symbolic = %impl.elem1.loc170_5.2 (constants.%impl.elem1.4de)] +// CHECK:STDOUT: %x.ref: @ModWith.loc168.%T.as_type.loc168_29.1 (%T.as_type.fcd) = name_ref x, %x +// CHECK:STDOUT: %y.ref: @ModWith.loc168.%U.as_type.loc167_36.1 (%U.as_type.b61) = name_ref y, %y +// CHECK:STDOUT: %ModWith.type.loc170: type = facet_type <@ModWith.1, @ModWith.1(constants.%U.as_type.b61)> [symbolic = %ModWith.type.loc167_36.1 (constants.%ModWith.type.937)] +// CHECK:STDOUT: %.loc170_5.1: @ModWith.loc168.%ModWith.assoc_type (%ModWith.assoc_type.626) = specific_constant imports.%Core.import_ref.ffe, @ModWith.WithSelf(constants.%U.as_type.b61, constants.%Self.0ef) [symbolic = %assoc1 (constants.%assoc1.6d1)] +// CHECK:STDOUT: %Op.ref: @ModWith.loc168.%ModWith.assoc_type (%ModWith.assoc_type.626) = name_ref Op, %.loc170_5.1 [symbolic = %assoc1 (constants.%assoc1.6d1)] +// CHECK:STDOUT: %impl.elem1.loc170_5.1: @ModWith.loc168.%.loc170_5.4 (%.973) = impl_witness_access constants.%ModWith.lookup_impl_witness.054, element1 [symbolic = %impl.elem1.loc170_5.2 (constants.%impl.elem1.f20)] // CHECK:STDOUT: %bound_method.loc170_5.1: = bound_method %x.ref, %impl.elem1.loc170_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc170_5.1: = specific_impl_function %impl.elem1.loc170_5.1, @ModWith.WithSelf.Op(constants.%U.as_type.f7f, constants.%ModWith.facet.132) [symbolic = %specific_impl_fn.loc170_5.3 (constants.%specific_impl_fn.5d3)] +// CHECK:STDOUT: %specific_impl_fn.loc170_5.1: = specific_impl_function %impl.elem1.loc170_5.1, @ModWith.WithSelf.Op(constants.%U.as_type.b61, constants.%ModWith.facet.555) [symbolic = %specific_impl_fn.loc170_5.3 (constants.%specific_impl_fn.37e)] // CHECK:STDOUT: %bound_method.loc170_5.2: = bound_method %x.ref, %specific_impl_fn.loc170_5.1 // CHECK:STDOUT: %.loc170_5.2: ref @ModWith.loc168.%Result.as_type.loc167_54.1 (%Result.as_type) = temporary_storage // CHECK:STDOUT: %ModWith.WithSelf.Op.call: init @ModWith.loc168.%Result.as_type.loc167_54.1 (%Result.as_type) to %.loc170_5.2 = call %bound_method.loc170_5.2(%x.ref, %y.ref) // CHECK:STDOUT: %.loc170_5.3: ref @ModWith.loc168.%Result.as_type.loc167_54.1 (%Result.as_type) = temporary %.loc170_5.2, %ModWith.WithSelf.Op.call -// CHECK:STDOUT: %impl.elem0.loc170_5.1: @ModWith.loc168.%.loc170_5.5 (%.543) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc170_5.2 (constants.%impl.elem0.531)] +// CHECK:STDOUT: %impl.elem0.loc170_5.1: @ModWith.loc168.%.loc170_5.5 (%.53a) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc170_5.2 (constants.%impl.elem0.0f9)] // CHECK:STDOUT: %bound_method.loc170_5.3: = bound_method %.loc170_5.3, %impl.elem0.loc170_5.1 -// 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.010)] +// 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: %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: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AddAssignWith.loc225(%U.loc225_19.2: type, %T.loc225_29.2: @AddAssignWith.loc225.%AddAssignWith.type.loc225_52.1 (%AddAssignWith.type.f7e94b.2)) { +// CHECK:STDOUT: generic fn @AddAssignWith.loc225(%U.loc225_19.2: type, %T.loc225_29.2: @AddAssignWith.loc225.%AddAssignWith.type.loc225_52.1 (%AddAssignWith.type.2c8890.2)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc227: = require_complete_type %AddAssignWith.type.loc225_52.1 [symbolic = %require_complete.loc227 (constants.%require_complete.e50)] -// CHECK:STDOUT: %AddAssignWith.assoc_type: type = assoc_entity_type @AddAssignWith.1, @AddAssignWith.1(%U.loc225_19.1) [symbolic = %AddAssignWith.assoc_type (constants.%AddAssignWith.assoc_type.d9654f.2)] -// CHECK:STDOUT: %assoc0: @AddAssignWith.loc225.%AddAssignWith.assoc_type (%AddAssignWith.assoc_type.d9654f.2) = assoc_entity element0, imports.%Core.import_ref.62c [symbolic = %assoc0 (constants.%assoc0.beca96.2)] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%U.loc225_19.1, %T.loc225_29.1) [symbolic = %AddAssignWith.WithSelf.Op.type (constants.%AddAssignWith.WithSelf.Op.type.86ac33.3)] -// CHECK:STDOUT: %.loc227_5.2: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type, %T.loc225_29.1 [symbolic = %.loc227_5.2 (constants.%.1da)] +// CHECK:STDOUT: %require_complete.loc227: = require_complete_type %AddAssignWith.type.loc225_52.1 [symbolic = %require_complete.loc227 (constants.%require_complete.2a8)] +// CHECK:STDOUT: %AddAssignWith.assoc_type: type = assoc_entity_type @AddAssignWith.1, @AddAssignWith.1(%U.loc225_19.1) [symbolic = %AddAssignWith.assoc_type (constants.%AddAssignWith.assoc_type.8ddaf4.2)] +// CHECK:STDOUT: %assoc0: @AddAssignWith.loc225.%AddAssignWith.assoc_type (%AddAssignWith.assoc_type.8ddaf4.2) = assoc_entity element0, imports.%Core.import_ref.3b2 [symbolic = %assoc0 (constants.%assoc0.8c5739.2)] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%U.loc225_19.1, %T.loc225_29.1) [symbolic = %AddAssignWith.WithSelf.Op.type (constants.%AddAssignWith.WithSelf.Op.type.cd574e.3)] +// CHECK:STDOUT: %.loc227_5.2: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type, %T.loc225_29.1 [symbolic = %.loc227_5.2 (constants.%.9b1)] // CHECK:STDOUT: %AddAssignWith.lookup_impl_witness: = lookup_impl_witness %T.loc225_29.1, @AddAssignWith.1, @AddAssignWith.1(%U.loc225_19.1) [symbolic = %AddAssignWith.lookup_impl_witness (constants.%AddAssignWith.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc227_5.2: @AddAssignWith.loc225.%.loc227_5.2 (%.1da) = impl_witness_access %AddAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc227_5.2 (constants.%impl.elem0.28f)] -// CHECK:STDOUT: %specific_impl_fn.loc227_5.2: = specific_impl_function %impl.elem0.loc227_5.2, @AddAssignWith.WithSelf.Op(%U.loc225_19.1, %T.loc225_29.1) [symbolic = %specific_impl_fn.loc227_5.2 (constants.%specific_impl_fn.c19)] +// CHECK:STDOUT: %impl.elem0.loc227_5.2: @AddAssignWith.loc225.%.loc227_5.2 (%.9b1) = impl_witness_access %AddAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc227_5.2 (constants.%impl.elem0.985)] +// CHECK:STDOUT: %specific_impl_fn.loc227_5.2: = specific_impl_function %impl.elem0.loc227_5.2, @AddAssignWith.WithSelf.Op(%U.loc225_19.1, %T.loc225_29.1) [symbolic = %specific_impl_fn.loc227_5.2 (constants.%specific_impl_fn.d36)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: ref @AddAssignWith.loc225.%T.as_type.loc225_62.1 (%T.as_type.82b), %y.param: @AddAssignWith.loc225.%U.loc225_19.1 (%U.67d)) { +// CHECK:STDOUT: fn(%x.param: ref @AddAssignWith.loc225.%T.as_type.loc225_62.1 (%T.as_type.50c), %y.param: @AddAssignWith.loc225.%U.loc225_19.1 (%U.67d)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: ref @AddAssignWith.loc225.%T.as_type.loc225_62.1 (%T.as_type.82b) = name_ref x, %x +// CHECK:STDOUT: %x.ref: ref @AddAssignWith.loc225.%T.as_type.loc225_62.1 (%T.as_type.50c) = name_ref x, %x // CHECK:STDOUT: %y.ref: @AddAssignWith.loc225.%U.loc225_19.1 (%U.67d) = name_ref y, %y -// CHECK:STDOUT: %AddAssignWith.type.loc227: type = facet_type <@AddAssignWith.1, @AddAssignWith.1(constants.%U.67d)> [symbolic = %AddAssignWith.type.loc225_52.1 (constants.%AddAssignWith.type.f7e94b.2)] -// CHECK:STDOUT: %.loc227_5.1: @AddAssignWith.loc225.%AddAssignWith.assoc_type (%AddAssignWith.assoc_type.d9654f.2) = specific_constant imports.%Core.import_ref.3bc, @AddAssignWith.WithSelf(constants.%U.67d, constants.%Self.c9ea37.1) [symbolic = %assoc0 (constants.%assoc0.beca96.2)] -// CHECK:STDOUT: %Op.ref: @AddAssignWith.loc225.%AddAssignWith.assoc_type (%AddAssignWith.assoc_type.d9654f.2) = name_ref Op, %.loc227_5.1 [symbolic = %assoc0 (constants.%assoc0.beca96.2)] -// CHECK:STDOUT: %impl.elem0.loc227_5.1: @AddAssignWith.loc225.%.loc227_5.2 (%.1da) = impl_witness_access constants.%AddAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc227_5.2 (constants.%impl.elem0.28f)] +// CHECK:STDOUT: %AddAssignWith.type.loc227: type = facet_type <@AddAssignWith.1, @AddAssignWith.1(constants.%U.67d)> [symbolic = %AddAssignWith.type.loc225_52.1 (constants.%AddAssignWith.type.2c8890.2)] +// CHECK:STDOUT: %.loc227_5.1: @AddAssignWith.loc225.%AddAssignWith.assoc_type (%AddAssignWith.assoc_type.8ddaf4.2) = specific_constant imports.%Core.import_ref.bdd, @AddAssignWith.WithSelf(constants.%U.67d, constants.%Self.792732.1) [symbolic = %assoc0 (constants.%assoc0.8c5739.2)] +// CHECK:STDOUT: %Op.ref: @AddAssignWith.loc225.%AddAssignWith.assoc_type (%AddAssignWith.assoc_type.8ddaf4.2) = name_ref Op, %.loc227_5.1 [symbolic = %assoc0 (constants.%assoc0.8c5739.2)] +// CHECK:STDOUT: %impl.elem0.loc227_5.1: @AddAssignWith.loc225.%.loc227_5.2 (%.9b1) = impl_witness_access constants.%AddAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc227_5.2 (constants.%impl.elem0.985)] // CHECK:STDOUT: %bound_method.loc227_5.1: = bound_method %x.ref, %impl.elem0.loc227_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc227_5.1: = specific_impl_function %impl.elem0.loc227_5.1, @AddAssignWith.WithSelf.Op(constants.%U.67d, constants.%T.c9e) [symbolic = %specific_impl_fn.loc227_5.2 (constants.%specific_impl_fn.c19)] +// CHECK:STDOUT: %specific_impl_fn.loc227_5.1: = specific_impl_function %impl.elem0.loc227_5.1, @AddAssignWith.WithSelf.Op(constants.%U.67d, constants.%T.792) [symbolic = %specific_impl_fn.loc227_5.2 (constants.%specific_impl_fn.d36)] // CHECK:STDOUT: %bound_method.loc227_5.2: = bound_method %x.ref, %specific_impl_fn.loc227_5.1 // CHECK:STDOUT: %AddAssignWith.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc227_5.2(%x.ref, %y.ref) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @SubAssignWith.loc231(%U.loc231_19.2: type, %T.loc231_29.2: @SubAssignWith.loc231.%SubAssignWith.type.loc231_52.1 (%SubAssignWith.type.591a5f.2)) { +// CHECK:STDOUT: generic fn @SubAssignWith.loc231(%U.loc231_19.2: type, %T.loc231_29.2: @SubAssignWith.loc231.%SubAssignWith.type.loc231_52.1 (%SubAssignWith.type.7e53cf.2)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc233: = require_complete_type %SubAssignWith.type.loc231_52.1 [symbolic = %require_complete.loc233 (constants.%require_complete.b28)] -// CHECK:STDOUT: %SubAssignWith.assoc_type: type = assoc_entity_type @SubAssignWith.1, @SubAssignWith.1(%U.loc231_19.1) [symbolic = %SubAssignWith.assoc_type (constants.%SubAssignWith.assoc_type.efddf3.2)] -// CHECK:STDOUT: %assoc0: @SubAssignWith.loc231.%SubAssignWith.assoc_type (%SubAssignWith.assoc_type.efddf3.2) = assoc_entity element0, imports.%Core.import_ref.e50 [symbolic = %assoc0 (constants.%assoc0.382bd4.2)] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%U.loc231_19.1, %T.loc231_29.1) [symbolic = %SubAssignWith.WithSelf.Op.type (constants.%SubAssignWith.WithSelf.Op.type.839113.3)] -// CHECK:STDOUT: %.loc233_5.2: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type, %T.loc231_29.1 [symbolic = %.loc233_5.2 (constants.%.3df)] +// CHECK:STDOUT: %require_complete.loc233: = require_complete_type %SubAssignWith.type.loc231_52.1 [symbolic = %require_complete.loc233 (constants.%require_complete.862)] +// CHECK:STDOUT: %SubAssignWith.assoc_type: type = assoc_entity_type @SubAssignWith.1, @SubAssignWith.1(%U.loc231_19.1) [symbolic = %SubAssignWith.assoc_type (constants.%SubAssignWith.assoc_type.6e3877.2)] +// CHECK:STDOUT: %assoc0: @SubAssignWith.loc231.%SubAssignWith.assoc_type (%SubAssignWith.assoc_type.6e3877.2) = assoc_entity element0, imports.%Core.import_ref.8f2 [symbolic = %assoc0 (constants.%assoc0.701e5f.2)] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%U.loc231_19.1, %T.loc231_29.1) [symbolic = %SubAssignWith.WithSelf.Op.type (constants.%SubAssignWith.WithSelf.Op.type.42f7cc.3)] +// CHECK:STDOUT: %.loc233_5.2: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type, %T.loc231_29.1 [symbolic = %.loc233_5.2 (constants.%.e56)] // CHECK:STDOUT: %SubAssignWith.lookup_impl_witness: = lookup_impl_witness %T.loc231_29.1, @SubAssignWith.1, @SubAssignWith.1(%U.loc231_19.1) [symbolic = %SubAssignWith.lookup_impl_witness (constants.%SubAssignWith.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc233_5.2: @SubAssignWith.loc231.%.loc233_5.2 (%.3df) = impl_witness_access %SubAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc233_5.2 (constants.%impl.elem0.dac)] -// CHECK:STDOUT: %specific_impl_fn.loc233_5.2: = specific_impl_function %impl.elem0.loc233_5.2, @SubAssignWith.WithSelf.Op(%U.loc231_19.1, %T.loc231_29.1) [symbolic = %specific_impl_fn.loc233_5.2 (constants.%specific_impl_fn.2f2)] +// CHECK:STDOUT: %impl.elem0.loc233_5.2: @SubAssignWith.loc231.%.loc233_5.2 (%.e56) = impl_witness_access %SubAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc233_5.2 (constants.%impl.elem0.dd3)] +// CHECK:STDOUT: %specific_impl_fn.loc233_5.2: = specific_impl_function %impl.elem0.loc233_5.2, @SubAssignWith.WithSelf.Op(%U.loc231_19.1, %T.loc231_29.1) [symbolic = %specific_impl_fn.loc233_5.2 (constants.%specific_impl_fn.5da)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: ref @SubAssignWith.loc231.%T.as_type.loc231_62.1 (%T.as_type.765), %y.param: @SubAssignWith.loc231.%U.loc231_19.1 (%U.67d)) { +// CHECK:STDOUT: fn(%x.param: ref @SubAssignWith.loc231.%T.as_type.loc231_62.1 (%T.as_type.3ff), %y.param: @SubAssignWith.loc231.%U.loc231_19.1 (%U.67d)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: ref @SubAssignWith.loc231.%T.as_type.loc231_62.1 (%T.as_type.765) = name_ref x, %x +// CHECK:STDOUT: %x.ref: ref @SubAssignWith.loc231.%T.as_type.loc231_62.1 (%T.as_type.3ff) = name_ref x, %x // CHECK:STDOUT: %y.ref: @SubAssignWith.loc231.%U.loc231_19.1 (%U.67d) = name_ref y, %y -// CHECK:STDOUT: %SubAssignWith.type.loc233: type = facet_type <@SubAssignWith.1, @SubAssignWith.1(constants.%U.67d)> [symbolic = %SubAssignWith.type.loc231_52.1 (constants.%SubAssignWith.type.591a5f.2)] -// CHECK:STDOUT: %.loc233_5.1: @SubAssignWith.loc231.%SubAssignWith.assoc_type (%SubAssignWith.assoc_type.efddf3.2) = specific_constant imports.%Core.import_ref.639, @SubAssignWith.WithSelf(constants.%U.67d, constants.%Self.a96693.1) [symbolic = %assoc0 (constants.%assoc0.382bd4.2)] -// CHECK:STDOUT: %Op.ref: @SubAssignWith.loc231.%SubAssignWith.assoc_type (%SubAssignWith.assoc_type.efddf3.2) = name_ref Op, %.loc233_5.1 [symbolic = %assoc0 (constants.%assoc0.382bd4.2)] -// CHECK:STDOUT: %impl.elem0.loc233_5.1: @SubAssignWith.loc231.%.loc233_5.2 (%.3df) = impl_witness_access constants.%SubAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc233_5.2 (constants.%impl.elem0.dac)] +// CHECK:STDOUT: %SubAssignWith.type.loc233: type = facet_type <@SubAssignWith.1, @SubAssignWith.1(constants.%U.67d)> [symbolic = %SubAssignWith.type.loc231_52.1 (constants.%SubAssignWith.type.7e53cf.2)] +// CHECK:STDOUT: %.loc233_5.1: @SubAssignWith.loc231.%SubAssignWith.assoc_type (%SubAssignWith.assoc_type.6e3877.2) = specific_constant imports.%Core.import_ref.509, @SubAssignWith.WithSelf(constants.%U.67d, constants.%Self.f6c9aa.1) [symbolic = %assoc0 (constants.%assoc0.701e5f.2)] +// CHECK:STDOUT: %Op.ref: @SubAssignWith.loc231.%SubAssignWith.assoc_type (%SubAssignWith.assoc_type.6e3877.2) = name_ref Op, %.loc233_5.1 [symbolic = %assoc0 (constants.%assoc0.701e5f.2)] +// CHECK:STDOUT: %impl.elem0.loc233_5.1: @SubAssignWith.loc231.%.loc233_5.2 (%.e56) = impl_witness_access constants.%SubAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc233_5.2 (constants.%impl.elem0.dd3)] // CHECK:STDOUT: %bound_method.loc233_5.1: = bound_method %x.ref, %impl.elem0.loc233_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc233_5.1: = specific_impl_function %impl.elem0.loc233_5.1, @SubAssignWith.WithSelf.Op(constants.%U.67d, constants.%T.a96) [symbolic = %specific_impl_fn.loc233_5.2 (constants.%specific_impl_fn.2f2)] +// CHECK:STDOUT: %specific_impl_fn.loc233_5.1: = specific_impl_function %impl.elem0.loc233_5.1, @SubAssignWith.WithSelf.Op(constants.%U.67d, constants.%T.f6c) [symbolic = %specific_impl_fn.loc233_5.2 (constants.%specific_impl_fn.5da)] // CHECK:STDOUT: %bound_method.loc233_5.2: = bound_method %x.ref, %specific_impl_fn.loc233_5.1 // CHECK:STDOUT: %SubAssignWith.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc233_5.2(%x.ref, %y.ref) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @MulAssignWith.loc237(%U.loc237_19.2: type, %T.loc237_29.2: @MulAssignWith.loc237.%MulAssignWith.type.loc237_52.1 (%MulAssignWith.type.b9aa5c.2)) { +// CHECK:STDOUT: generic fn @MulAssignWith.loc237(%U.loc237_19.2: type, %T.loc237_29.2: @MulAssignWith.loc237.%MulAssignWith.type.loc237_52.1 (%MulAssignWith.type.3a0e4d.2)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc239: = require_complete_type %MulAssignWith.type.loc237_52.1 [symbolic = %require_complete.loc239 (constants.%require_complete.ea2)] -// CHECK:STDOUT: %MulAssignWith.assoc_type: type = assoc_entity_type @MulAssignWith.1, @MulAssignWith.1(%U.loc237_19.1) [symbolic = %MulAssignWith.assoc_type (constants.%MulAssignWith.assoc_type.153441.2)] -// CHECK:STDOUT: %assoc0: @MulAssignWith.loc237.%MulAssignWith.assoc_type (%MulAssignWith.assoc_type.153441.2) = assoc_entity element0, imports.%Core.import_ref.763 [symbolic = %assoc0 (constants.%assoc0.54a880.2)] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%U.loc237_19.1, %T.loc237_29.1) [symbolic = %MulAssignWith.WithSelf.Op.type (constants.%MulAssignWith.WithSelf.Op.type.44adac.3)] -// CHECK:STDOUT: %.loc239_5.2: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type, %T.loc237_29.1 [symbolic = %.loc239_5.2 (constants.%.42e)] +// CHECK:STDOUT: %require_complete.loc239: = require_complete_type %MulAssignWith.type.loc237_52.1 [symbolic = %require_complete.loc239 (constants.%require_complete.6b1)] +// CHECK:STDOUT: %MulAssignWith.assoc_type: type = assoc_entity_type @MulAssignWith.1, @MulAssignWith.1(%U.loc237_19.1) [symbolic = %MulAssignWith.assoc_type (constants.%MulAssignWith.assoc_type.9aa18f.2)] +// CHECK:STDOUT: %assoc0: @MulAssignWith.loc237.%MulAssignWith.assoc_type (%MulAssignWith.assoc_type.9aa18f.2) = assoc_entity element0, imports.%Core.import_ref.ba3 [symbolic = %assoc0 (constants.%assoc0.22264a.2)] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%U.loc237_19.1, %T.loc237_29.1) [symbolic = %MulAssignWith.WithSelf.Op.type (constants.%MulAssignWith.WithSelf.Op.type.5df5bd.3)] +// CHECK:STDOUT: %.loc239_5.2: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type, %T.loc237_29.1 [symbolic = %.loc239_5.2 (constants.%.2db)] // CHECK:STDOUT: %MulAssignWith.lookup_impl_witness: = lookup_impl_witness %T.loc237_29.1, @MulAssignWith.1, @MulAssignWith.1(%U.loc237_19.1) [symbolic = %MulAssignWith.lookup_impl_witness (constants.%MulAssignWith.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc239_5.2: @MulAssignWith.loc237.%.loc239_5.2 (%.42e) = impl_witness_access %MulAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc239_5.2 (constants.%impl.elem0.822)] -// CHECK:STDOUT: %specific_impl_fn.loc239_5.2: = specific_impl_function %impl.elem0.loc239_5.2, @MulAssignWith.WithSelf.Op(%U.loc237_19.1, %T.loc237_29.1) [symbolic = %specific_impl_fn.loc239_5.2 (constants.%specific_impl_fn.cf3)] +// CHECK:STDOUT: %impl.elem0.loc239_5.2: @MulAssignWith.loc237.%.loc239_5.2 (%.2db) = impl_witness_access %MulAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc239_5.2 (constants.%impl.elem0.c0f)] +// CHECK:STDOUT: %specific_impl_fn.loc239_5.2: = specific_impl_function %impl.elem0.loc239_5.2, @MulAssignWith.WithSelf.Op(%U.loc237_19.1, %T.loc237_29.1) [symbolic = %specific_impl_fn.loc239_5.2 (constants.%specific_impl_fn.54d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: ref @MulAssignWith.loc237.%T.as_type.loc237_62.1 (%T.as_type.e75), %y.param: @MulAssignWith.loc237.%U.loc237_19.1 (%U.67d)) { +// CHECK:STDOUT: fn(%x.param: ref @MulAssignWith.loc237.%T.as_type.loc237_62.1 (%T.as_type.1de), %y.param: @MulAssignWith.loc237.%U.loc237_19.1 (%U.67d)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: ref @MulAssignWith.loc237.%T.as_type.loc237_62.1 (%T.as_type.e75) = name_ref x, %x +// CHECK:STDOUT: %x.ref: ref @MulAssignWith.loc237.%T.as_type.loc237_62.1 (%T.as_type.1de) = name_ref x, %x // CHECK:STDOUT: %y.ref: @MulAssignWith.loc237.%U.loc237_19.1 (%U.67d) = name_ref y, %y -// CHECK:STDOUT: %MulAssignWith.type.loc239: type = facet_type <@MulAssignWith.1, @MulAssignWith.1(constants.%U.67d)> [symbolic = %MulAssignWith.type.loc237_52.1 (constants.%MulAssignWith.type.b9aa5c.2)] -// CHECK:STDOUT: %.loc239_5.1: @MulAssignWith.loc237.%MulAssignWith.assoc_type (%MulAssignWith.assoc_type.153441.2) = specific_constant imports.%Core.import_ref.5c1, @MulAssignWith.WithSelf(constants.%U.67d, constants.%Self.1ab5ec.1) [symbolic = %assoc0 (constants.%assoc0.54a880.2)] -// CHECK:STDOUT: %Op.ref: @MulAssignWith.loc237.%MulAssignWith.assoc_type (%MulAssignWith.assoc_type.153441.2) = name_ref Op, %.loc239_5.1 [symbolic = %assoc0 (constants.%assoc0.54a880.2)] -// CHECK:STDOUT: %impl.elem0.loc239_5.1: @MulAssignWith.loc237.%.loc239_5.2 (%.42e) = impl_witness_access constants.%MulAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc239_5.2 (constants.%impl.elem0.822)] +// CHECK:STDOUT: %MulAssignWith.type.loc239: type = facet_type <@MulAssignWith.1, @MulAssignWith.1(constants.%U.67d)> [symbolic = %MulAssignWith.type.loc237_52.1 (constants.%MulAssignWith.type.3a0e4d.2)] +// CHECK:STDOUT: %.loc239_5.1: @MulAssignWith.loc237.%MulAssignWith.assoc_type (%MulAssignWith.assoc_type.9aa18f.2) = specific_constant imports.%Core.import_ref.b6e, @MulAssignWith.WithSelf(constants.%U.67d, constants.%Self.64dcb0.1) [symbolic = %assoc0 (constants.%assoc0.22264a.2)] +// CHECK:STDOUT: %Op.ref: @MulAssignWith.loc237.%MulAssignWith.assoc_type (%MulAssignWith.assoc_type.9aa18f.2) = name_ref Op, %.loc239_5.1 [symbolic = %assoc0 (constants.%assoc0.22264a.2)] +// CHECK:STDOUT: %impl.elem0.loc239_5.1: @MulAssignWith.loc237.%.loc239_5.2 (%.2db) = impl_witness_access constants.%MulAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc239_5.2 (constants.%impl.elem0.c0f)] // CHECK:STDOUT: %bound_method.loc239_5.1: = bound_method %x.ref, %impl.elem0.loc239_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc239_5.1: = specific_impl_function %impl.elem0.loc239_5.1, @MulAssignWith.WithSelf.Op(constants.%U.67d, constants.%T.1ab) [symbolic = %specific_impl_fn.loc239_5.2 (constants.%specific_impl_fn.cf3)] +// CHECK:STDOUT: %specific_impl_fn.loc239_5.1: = specific_impl_function %impl.elem0.loc239_5.1, @MulAssignWith.WithSelf.Op(constants.%U.67d, constants.%T.64d) [symbolic = %specific_impl_fn.loc239_5.2 (constants.%specific_impl_fn.54d)] // CHECK:STDOUT: %bound_method.loc239_5.2: = bound_method %x.ref, %specific_impl_fn.loc239_5.1 // CHECK:STDOUT: %MulAssignWith.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc239_5.2(%x.ref, %y.ref) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @DivAssignWith.loc243(%U.loc243_19.2: type, %T.loc243_29.2: @DivAssignWith.loc243.%DivAssignWith.type.loc243_52.1 (%DivAssignWith.type.c97ac9.2)) { +// CHECK:STDOUT: generic fn @DivAssignWith.loc243(%U.loc243_19.2: type, %T.loc243_29.2: @DivAssignWith.loc243.%DivAssignWith.type.loc243_52.1 (%DivAssignWith.type.7e58ca.2)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc245: = require_complete_type %DivAssignWith.type.loc243_52.1 [symbolic = %require_complete.loc245 (constants.%require_complete.3f4)] -// CHECK:STDOUT: %DivAssignWith.assoc_type: type = assoc_entity_type @DivAssignWith.1, @DivAssignWith.1(%U.loc243_19.1) [symbolic = %DivAssignWith.assoc_type (constants.%DivAssignWith.assoc_type.c30cb0.2)] -// CHECK:STDOUT: %assoc0: @DivAssignWith.loc243.%DivAssignWith.assoc_type (%DivAssignWith.assoc_type.c30cb0.2) = assoc_entity element0, imports.%Core.import_ref.d8a [symbolic = %assoc0 (constants.%assoc0.bd6a2d.2)] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%U.loc243_19.1, %T.loc243_29.1) [symbolic = %DivAssignWith.WithSelf.Op.type (constants.%DivAssignWith.WithSelf.Op.type.8e0740.3)] -// CHECK:STDOUT: %.loc245_5.2: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type, %T.loc243_29.1 [symbolic = %.loc245_5.2 (constants.%.28f)] +// CHECK:STDOUT: %require_complete.loc245: = require_complete_type %DivAssignWith.type.loc243_52.1 [symbolic = %require_complete.loc245 (constants.%require_complete.c5c)] +// CHECK:STDOUT: %DivAssignWith.assoc_type: type = assoc_entity_type @DivAssignWith.1, @DivAssignWith.1(%U.loc243_19.1) [symbolic = %DivAssignWith.assoc_type (constants.%DivAssignWith.assoc_type.bb68ec.2)] +// CHECK:STDOUT: %assoc0: @DivAssignWith.loc243.%DivAssignWith.assoc_type (%DivAssignWith.assoc_type.bb68ec.2) = assoc_entity element0, imports.%Core.import_ref.a5d [symbolic = %assoc0 (constants.%assoc0.32f100.2)] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%U.loc243_19.1, %T.loc243_29.1) [symbolic = %DivAssignWith.WithSelf.Op.type (constants.%DivAssignWith.WithSelf.Op.type.ff5775.3)] +// CHECK:STDOUT: %.loc245_5.2: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type, %T.loc243_29.1 [symbolic = %.loc245_5.2 (constants.%.754)] // CHECK:STDOUT: %DivAssignWith.lookup_impl_witness: = lookup_impl_witness %T.loc243_29.1, @DivAssignWith.1, @DivAssignWith.1(%U.loc243_19.1) [symbolic = %DivAssignWith.lookup_impl_witness (constants.%DivAssignWith.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc245_5.2: @DivAssignWith.loc243.%.loc245_5.2 (%.28f) = impl_witness_access %DivAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc245_5.2 (constants.%impl.elem0.f6e)] -// CHECK:STDOUT: %specific_impl_fn.loc245_5.2: = specific_impl_function %impl.elem0.loc245_5.2, @DivAssignWith.WithSelf.Op(%U.loc243_19.1, %T.loc243_29.1) [symbolic = %specific_impl_fn.loc245_5.2 (constants.%specific_impl_fn.5bc)] +// CHECK:STDOUT: %impl.elem0.loc245_5.2: @DivAssignWith.loc243.%.loc245_5.2 (%.754) = impl_witness_access %DivAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc245_5.2 (constants.%impl.elem0.0c4)] +// CHECK:STDOUT: %specific_impl_fn.loc245_5.2: = specific_impl_function %impl.elem0.loc245_5.2, @DivAssignWith.WithSelf.Op(%U.loc243_19.1, %T.loc243_29.1) [symbolic = %specific_impl_fn.loc245_5.2 (constants.%specific_impl_fn.011)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: ref @DivAssignWith.loc243.%T.as_type.loc243_62.1 (%T.as_type.5d7), %y.param: @DivAssignWith.loc243.%U.loc243_19.1 (%U.67d)) { +// CHECK:STDOUT: fn(%x.param: ref @DivAssignWith.loc243.%T.as_type.loc243_62.1 (%T.as_type.e57), %y.param: @DivAssignWith.loc243.%U.loc243_19.1 (%U.67d)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: ref @DivAssignWith.loc243.%T.as_type.loc243_62.1 (%T.as_type.5d7) = name_ref x, %x +// CHECK:STDOUT: %x.ref: ref @DivAssignWith.loc243.%T.as_type.loc243_62.1 (%T.as_type.e57) = name_ref x, %x // CHECK:STDOUT: %y.ref: @DivAssignWith.loc243.%U.loc243_19.1 (%U.67d) = name_ref y, %y -// CHECK:STDOUT: %DivAssignWith.type.loc245: type = facet_type <@DivAssignWith.1, @DivAssignWith.1(constants.%U.67d)> [symbolic = %DivAssignWith.type.loc243_52.1 (constants.%DivAssignWith.type.c97ac9.2)] -// CHECK:STDOUT: %.loc245_5.1: @DivAssignWith.loc243.%DivAssignWith.assoc_type (%DivAssignWith.assoc_type.c30cb0.2) = specific_constant imports.%Core.import_ref.cbe, @DivAssignWith.WithSelf(constants.%U.67d, constants.%Self.43908b.1) [symbolic = %assoc0 (constants.%assoc0.bd6a2d.2)] -// CHECK:STDOUT: %Op.ref: @DivAssignWith.loc243.%DivAssignWith.assoc_type (%DivAssignWith.assoc_type.c30cb0.2) = name_ref Op, %.loc245_5.1 [symbolic = %assoc0 (constants.%assoc0.bd6a2d.2)] -// CHECK:STDOUT: %impl.elem0.loc245_5.1: @DivAssignWith.loc243.%.loc245_5.2 (%.28f) = impl_witness_access constants.%DivAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc245_5.2 (constants.%impl.elem0.f6e)] +// CHECK:STDOUT: %DivAssignWith.type.loc245: type = facet_type <@DivAssignWith.1, @DivAssignWith.1(constants.%U.67d)> [symbolic = %DivAssignWith.type.loc243_52.1 (constants.%DivAssignWith.type.7e58ca.2)] +// CHECK:STDOUT: %.loc245_5.1: @DivAssignWith.loc243.%DivAssignWith.assoc_type (%DivAssignWith.assoc_type.bb68ec.2) = specific_constant imports.%Core.import_ref.988, @DivAssignWith.WithSelf(constants.%U.67d, constants.%Self.c33c81.1) [symbolic = %assoc0 (constants.%assoc0.32f100.2)] +// CHECK:STDOUT: %Op.ref: @DivAssignWith.loc243.%DivAssignWith.assoc_type (%DivAssignWith.assoc_type.bb68ec.2) = name_ref Op, %.loc245_5.1 [symbolic = %assoc0 (constants.%assoc0.32f100.2)] +// CHECK:STDOUT: %impl.elem0.loc245_5.1: @DivAssignWith.loc243.%.loc245_5.2 (%.754) = impl_witness_access constants.%DivAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc245_5.2 (constants.%impl.elem0.0c4)] // CHECK:STDOUT: %bound_method.loc245_5.1: = bound_method %x.ref, %impl.elem0.loc245_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc245_5.1: = specific_impl_function %impl.elem0.loc245_5.1, @DivAssignWith.WithSelf.Op(constants.%U.67d, constants.%T.439) [symbolic = %specific_impl_fn.loc245_5.2 (constants.%specific_impl_fn.5bc)] +// CHECK:STDOUT: %specific_impl_fn.loc245_5.1: = specific_impl_function %impl.elem0.loc245_5.1, @DivAssignWith.WithSelf.Op(constants.%U.67d, constants.%T.c33) [symbolic = %specific_impl_fn.loc245_5.2 (constants.%specific_impl_fn.011)] // CHECK:STDOUT: %bound_method.loc245_5.2: = bound_method %x.ref, %specific_impl_fn.loc245_5.1 // CHECK:STDOUT: %DivAssignWith.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc245_5.2(%x.ref, %y.ref) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ModAssignWith.loc249(%U.loc249_19.2: type, %T.loc249_29.2: @ModAssignWith.loc249.%ModAssignWith.type.loc249_52.1 (%ModAssignWith.type.8faa47.2)) { +// CHECK:STDOUT: generic fn @ModAssignWith.loc249(%U.loc249_19.2: type, %T.loc249_29.2: @ModAssignWith.loc249.%ModAssignWith.type.loc249_52.1 (%ModAssignWith.type.778d68.2)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc251: = require_complete_type %ModAssignWith.type.loc249_52.1 [symbolic = %require_complete.loc251 (constants.%require_complete.9bf)] -// CHECK:STDOUT: %ModAssignWith.assoc_type: type = assoc_entity_type @ModAssignWith.1, @ModAssignWith.1(%U.loc249_19.1) [symbolic = %ModAssignWith.assoc_type (constants.%ModAssignWith.assoc_type.0ff0e5.2)] -// CHECK:STDOUT: %assoc0: @ModAssignWith.loc249.%ModAssignWith.assoc_type (%ModAssignWith.assoc_type.0ff0e5.2) = assoc_entity element0, imports.%Core.import_ref.aee3 [symbolic = %assoc0 (constants.%assoc0.3824c9.2)] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%U.loc249_19.1, %T.loc249_29.1) [symbolic = %ModAssignWith.WithSelf.Op.type (constants.%ModAssignWith.WithSelf.Op.type.292942.3)] -// CHECK:STDOUT: %.loc251_5.2: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type, %T.loc249_29.1 [symbolic = %.loc251_5.2 (constants.%.acb)] +// CHECK:STDOUT: %require_complete.loc251: = require_complete_type %ModAssignWith.type.loc249_52.1 [symbolic = %require_complete.loc251 (constants.%require_complete.680)] +// CHECK:STDOUT: %ModAssignWith.assoc_type: type = assoc_entity_type @ModAssignWith.1, @ModAssignWith.1(%U.loc249_19.1) [symbolic = %ModAssignWith.assoc_type (constants.%ModAssignWith.assoc_type.bc79ec.2)] +// CHECK:STDOUT: %assoc0: @ModAssignWith.loc249.%ModAssignWith.assoc_type (%ModAssignWith.assoc_type.bc79ec.2) = assoc_entity element0, imports.%Core.import_ref.cf6 [symbolic = %assoc0 (constants.%assoc0.8c0719.2)] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%U.loc249_19.1, %T.loc249_29.1) [symbolic = %ModAssignWith.WithSelf.Op.type (constants.%ModAssignWith.WithSelf.Op.type.ec4109.3)] +// CHECK:STDOUT: %.loc251_5.2: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type, %T.loc249_29.1 [symbolic = %.loc251_5.2 (constants.%.965)] // CHECK:STDOUT: %ModAssignWith.lookup_impl_witness: = lookup_impl_witness %T.loc249_29.1, @ModAssignWith.1, @ModAssignWith.1(%U.loc249_19.1) [symbolic = %ModAssignWith.lookup_impl_witness (constants.%ModAssignWith.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc251_5.2: @ModAssignWith.loc249.%.loc251_5.2 (%.acb) = impl_witness_access %ModAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc251_5.2 (constants.%impl.elem0.f9d)] -// CHECK:STDOUT: %specific_impl_fn.loc251_5.2: = specific_impl_function %impl.elem0.loc251_5.2, @ModAssignWith.WithSelf.Op(%U.loc249_19.1, %T.loc249_29.1) [symbolic = %specific_impl_fn.loc251_5.2 (constants.%specific_impl_fn.802)] +// CHECK:STDOUT: %impl.elem0.loc251_5.2: @ModAssignWith.loc249.%.loc251_5.2 (%.965) = impl_witness_access %ModAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc251_5.2 (constants.%impl.elem0.ec7)] +// CHECK:STDOUT: %specific_impl_fn.loc251_5.2: = specific_impl_function %impl.elem0.loc251_5.2, @ModAssignWith.WithSelf.Op(%U.loc249_19.1, %T.loc249_29.1) [symbolic = %specific_impl_fn.loc251_5.2 (constants.%specific_impl_fn.cf7)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: ref @ModAssignWith.loc249.%T.as_type.loc249_62.1 (%T.as_type.4cb), %y.param: @ModAssignWith.loc249.%U.loc249_19.1 (%U.67d)) { +// CHECK:STDOUT: fn(%x.param: ref @ModAssignWith.loc249.%T.as_type.loc249_62.1 (%T.as_type.ce6), %y.param: @ModAssignWith.loc249.%U.loc249_19.1 (%U.67d)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: ref @ModAssignWith.loc249.%T.as_type.loc249_62.1 (%T.as_type.4cb) = name_ref x, %x +// CHECK:STDOUT: %x.ref: ref @ModAssignWith.loc249.%T.as_type.loc249_62.1 (%T.as_type.ce6) = name_ref x, %x // CHECK:STDOUT: %y.ref: @ModAssignWith.loc249.%U.loc249_19.1 (%U.67d) = name_ref y, %y -// CHECK:STDOUT: %ModAssignWith.type.loc251: type = facet_type <@ModAssignWith.1, @ModAssignWith.1(constants.%U.67d)> [symbolic = %ModAssignWith.type.loc249_52.1 (constants.%ModAssignWith.type.8faa47.2)] -// CHECK:STDOUT: %.loc251_5.1: @ModAssignWith.loc249.%ModAssignWith.assoc_type (%ModAssignWith.assoc_type.0ff0e5.2) = specific_constant imports.%Core.import_ref.447, @ModAssignWith.WithSelf(constants.%U.67d, constants.%Self.da03f6.1) [symbolic = %assoc0 (constants.%assoc0.3824c9.2)] -// CHECK:STDOUT: %Op.ref: @ModAssignWith.loc249.%ModAssignWith.assoc_type (%ModAssignWith.assoc_type.0ff0e5.2) = name_ref Op, %.loc251_5.1 [symbolic = %assoc0 (constants.%assoc0.3824c9.2)] -// CHECK:STDOUT: %impl.elem0.loc251_5.1: @ModAssignWith.loc249.%.loc251_5.2 (%.acb) = impl_witness_access constants.%ModAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc251_5.2 (constants.%impl.elem0.f9d)] +// CHECK:STDOUT: %ModAssignWith.type.loc251: type = facet_type <@ModAssignWith.1, @ModAssignWith.1(constants.%U.67d)> [symbolic = %ModAssignWith.type.loc249_52.1 (constants.%ModAssignWith.type.778d68.2)] +// CHECK:STDOUT: %.loc251_5.1: @ModAssignWith.loc249.%ModAssignWith.assoc_type (%ModAssignWith.assoc_type.bc79ec.2) = specific_constant imports.%Core.import_ref.3ff, @ModAssignWith.WithSelf(constants.%U.67d, constants.%Self.bca00b.1) [symbolic = %assoc0 (constants.%assoc0.8c0719.2)] +// CHECK:STDOUT: %Op.ref: @ModAssignWith.loc249.%ModAssignWith.assoc_type (%ModAssignWith.assoc_type.bc79ec.2) = name_ref Op, %.loc251_5.1 [symbolic = %assoc0 (constants.%assoc0.8c0719.2)] +// CHECK:STDOUT: %impl.elem0.loc251_5.1: @ModAssignWith.loc249.%.loc251_5.2 (%.965) = impl_witness_access constants.%ModAssignWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc251_5.2 (constants.%impl.elem0.ec7)] // CHECK:STDOUT: %bound_method.loc251_5.1: = bound_method %x.ref, %impl.elem0.loc251_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc251_5.1: = specific_impl_function %impl.elem0.loc251_5.1, @ModAssignWith.WithSelf.Op(constants.%U.67d, constants.%T.da0) [symbolic = %specific_impl_fn.loc251_5.2 (constants.%specific_impl_fn.802)] +// CHECK:STDOUT: %specific_impl_fn.loc251_5.1: = specific_impl_function %impl.elem0.loc251_5.1, @ModAssignWith.WithSelf.Op(constants.%U.67d, constants.%T.bca) [symbolic = %specific_impl_fn.loc251_5.2 (constants.%specific_impl_fn.cf7)] // CHECK:STDOUT: %bound_method.loc251_5.2: = bound_method %x.ref, %specific_impl_fn.loc251_5.1 // CHECK:STDOUT: %ModAssignWith.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc251_5.2(%x.ref, %y.ref) // CHECK:STDOUT: @@ -1733,18 +1733,18 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Inc.WithSelf.Op.type: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%T.loc278_13.1) [symbolic = %Inc.WithSelf.Op.type (constants.%Inc.WithSelf.Op.type.1a5b76.2)] -// CHECK:STDOUT: %.loc280: type = fn_type_with_self_type %Inc.WithSelf.Op.type, %T.loc278_13.1 [symbolic = %.loc280 (constants.%.bdc)] +// CHECK:STDOUT: %Inc.WithSelf.Op.type: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%T.loc278_13.1) [symbolic = %Inc.WithSelf.Op.type (constants.%Inc.WithSelf.Op.type.e10ef6.2)] +// CHECK:STDOUT: %.loc280: type = fn_type_with_self_type %Inc.WithSelf.Op.type, %T.loc278_13.1 [symbolic = %.loc280 (constants.%.a08)] // CHECK:STDOUT: %Inc.lookup_impl_witness: = lookup_impl_witness %T.loc278_13.1, @Inc [symbolic = %Inc.lookup_impl_witness (constants.%Inc.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc280_3.2: @TestInc.%.loc280 (%.bdc) = impl_witness_access %Inc.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc280_3.2 (constants.%impl.elem0.a96)] -// CHECK:STDOUT: %specific_impl_fn.loc280_3.2: = specific_impl_function %impl.elem0.loc280_3.2, @Inc.WithSelf.Op(%T.loc278_13.1) [symbolic = %specific_impl_fn.loc280_3.2 (constants.%specific_impl_fn.d8c)] +// CHECK:STDOUT: %impl.elem0.loc280_3.2: @TestInc.%.loc280 (%.a08) = impl_witness_access %Inc.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc280_3.2 (constants.%impl.elem0.b92)] +// CHECK:STDOUT: %specific_impl_fn.loc280_3.2: = specific_impl_function %impl.elem0.loc280_3.2, @Inc.WithSelf.Op(%T.loc278_13.1) [symbolic = %specific_impl_fn.loc280_3.2 (constants.%specific_impl_fn.855)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: ref @TestInc.%T.as_type.loc278_33.1 (%T.as_type.4cc)) { +// CHECK:STDOUT: fn(%x.param: ref @TestInc.%T.as_type.loc278_33.1 (%T.as_type.232)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: ref @TestInc.%T.as_type.loc278_33.1 (%T.as_type.4cc) = name_ref x, %x -// CHECK:STDOUT: %impl.elem0.loc280_3.1: @TestInc.%.loc280 (%.bdc) = impl_witness_access constants.%Inc.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc280_3.2 (constants.%impl.elem0.a96)] +// CHECK:STDOUT: %x.ref: ref @TestInc.%T.as_type.loc278_33.1 (%T.as_type.232) = name_ref x, %x +// CHECK:STDOUT: %impl.elem0.loc280_3.1: @TestInc.%.loc280 (%.a08) = impl_witness_access constants.%Inc.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc280_3.2 (constants.%impl.elem0.b92)] // CHECK:STDOUT: %bound_method.loc280_3.1: = bound_method %x.ref, %impl.elem0.loc280_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc280_3.1: = specific_impl_function %impl.elem0.loc280_3.1, @Inc.WithSelf.Op(constants.%T.c06) [symbolic = %specific_impl_fn.loc280_3.2 (constants.%specific_impl_fn.d8c)] +// CHECK:STDOUT: %specific_impl_fn.loc280_3.1: = specific_impl_function %impl.elem0.loc280_3.1, @Inc.WithSelf.Op(constants.%T.8f3) [symbolic = %specific_impl_fn.loc280_3.2 (constants.%specific_impl_fn.855)] // CHECK:STDOUT: %bound_method.loc280_3.2: = bound_method %x.ref, %specific_impl_fn.loc280_3.1 // CHECK:STDOUT: %Inc.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc280_3.2(%x.ref) // CHECK:STDOUT: @@ -1756,2090 +1756,2090 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Dec.WithSelf.Op.type: type = fn_type @Dec.WithSelf.Op, @Dec.WithSelf(%T.loc284_13.1) [symbolic = %Dec.WithSelf.Op.type (constants.%Dec.WithSelf.Op.type.c8aa8e.2)] -// CHECK:STDOUT: %.loc286: type = fn_type_with_self_type %Dec.WithSelf.Op.type, %T.loc284_13.1 [symbolic = %.loc286 (constants.%.842)] +// CHECK:STDOUT: %Dec.WithSelf.Op.type: type = fn_type @Dec.WithSelf.Op, @Dec.WithSelf(%T.loc284_13.1) [symbolic = %Dec.WithSelf.Op.type (constants.%Dec.WithSelf.Op.type.bfa830.2)] +// CHECK:STDOUT: %.loc286: type = fn_type_with_self_type %Dec.WithSelf.Op.type, %T.loc284_13.1 [symbolic = %.loc286 (constants.%.aae)] // CHECK:STDOUT: %Dec.lookup_impl_witness: = lookup_impl_witness %T.loc284_13.1, @Dec [symbolic = %Dec.lookup_impl_witness (constants.%Dec.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc286_3.2: @TestDec.%.loc286 (%.842) = impl_witness_access %Dec.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc286_3.2 (constants.%impl.elem0.e17)] -// CHECK:STDOUT: %specific_impl_fn.loc286_3.2: = specific_impl_function %impl.elem0.loc286_3.2, @Dec.WithSelf.Op(%T.loc284_13.1) [symbolic = %specific_impl_fn.loc286_3.2 (constants.%specific_impl_fn.56c)] +// CHECK:STDOUT: %impl.elem0.loc286_3.2: @TestDec.%.loc286 (%.aae) = impl_witness_access %Dec.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc286_3.2 (constants.%impl.elem0.950)] +// CHECK:STDOUT: %specific_impl_fn.loc286_3.2: = specific_impl_function %impl.elem0.loc286_3.2, @Dec.WithSelf.Op(%T.loc284_13.1) [symbolic = %specific_impl_fn.loc286_3.2 (constants.%specific_impl_fn.539)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: ref @TestDec.%T.as_type.loc284_33.1 (%T.as_type.915)) { +// CHECK:STDOUT: fn(%x.param: ref @TestDec.%T.as_type.loc284_33.1 (%T.as_type.c32)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: ref @TestDec.%T.as_type.loc284_33.1 (%T.as_type.915) = name_ref x, %x -// CHECK:STDOUT: %impl.elem0.loc286_3.1: @TestDec.%.loc286 (%.842) = impl_witness_access constants.%Dec.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc286_3.2 (constants.%impl.elem0.e17)] +// CHECK:STDOUT: %x.ref: ref @TestDec.%T.as_type.loc284_33.1 (%T.as_type.c32) = name_ref x, %x +// CHECK:STDOUT: %impl.elem0.loc286_3.1: @TestDec.%.loc286 (%.aae) = impl_witness_access constants.%Dec.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc286_3.2 (constants.%impl.elem0.950)] // CHECK:STDOUT: %bound_method.loc286_3.1: = bound_method %x.ref, %impl.elem0.loc286_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc286_3.1: = specific_impl_function %impl.elem0.loc286_3.1, @Dec.WithSelf.Op(constants.%T.d9e) [symbolic = %specific_impl_fn.loc286_3.2 (constants.%specific_impl_fn.56c)] +// CHECK:STDOUT: %specific_impl_fn.loc286_3.1: = specific_impl_function %impl.elem0.loc286_3.1, @Dec.WithSelf.Op(constants.%T.e8e) [symbolic = %specific_impl_fn.loc286_3.2 (constants.%specific_impl_fn.539)] // CHECK:STDOUT: %bound_method.loc286_3.2: = bound_method %x.ref, %specific_impl_fn.loc286_3.1 // CHECK:STDOUT: %Dec.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc286_3.2(%x.ref) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TestNegate(%Result.loc292_9.2: %Destroy.type, %T.loc293_4.2: @TestNegate.%facet_type (%facet_type.fb9)) { +// CHECK:STDOUT: generic fn @TestNegate(%Result.loc292_9.2: %Destroy.type, %T.loc293_4.2: @TestNegate.%facet_type (%facet_type.b1d)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Negate.lookup_impl_witness: = lookup_impl_witness %T.loc293_4.1, @Negate [symbolic = %Negate.lookup_impl_witness (constants.%Negate.lookup_impl_witness.5d0)] -// CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value %T.as_type.loc294_24.1, (%Negate.lookup_impl_witness) [symbolic = %Negate.facet (constants.%Negate.facet.7e7)] -// CHECK:STDOUT: %Negate.WithSelf.Op.type: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [symbolic = %Negate.WithSelf.Op.type (constants.%Negate.WithSelf.Op.type.26a)] -// CHECK:STDOUT: %.loc296_3.3: type = fn_type_with_self_type %Negate.WithSelf.Op.type, %Negate.facet [symbolic = %.loc296_3.3 (constants.%.0fd)] -// CHECK:STDOUT: %impl.elem1.loc296_3.2: @TestNegate.%.loc296_3.3 (%.0fd) = impl_witness_access %Negate.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc296_3.2 (constants.%impl.elem1.b4a)] -// CHECK:STDOUT: %specific_impl_fn.loc296_3.3: = specific_impl_function %impl.elem1.loc296_3.2, @Negate.WithSelf.Op(%Negate.facet) [symbolic = %specific_impl_fn.loc296_3.3 (constants.%specific_impl_fn.037)] -// 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.6304ea.2)] -// CHECK:STDOUT: %.loc296_3.4: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc292_9.1 [symbolic = %.loc296_3.4 (constants.%.543)] +// CHECK:STDOUT: %Negate.lookup_impl_witness: = lookup_impl_witness %T.loc293_4.1, @Negate [symbolic = %Negate.lookup_impl_witness (constants.%Negate.lookup_impl_witness.48a)] +// CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value %T.as_type.loc294_24.1, (%Negate.lookup_impl_witness) [symbolic = %Negate.facet (constants.%Negate.facet.f2f)] +// CHECK:STDOUT: %Negate.WithSelf.Op.type: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [symbolic = %Negate.WithSelf.Op.type (constants.%Negate.WithSelf.Op.type.803)] +// CHECK:STDOUT: %.loc296_3.3: type = fn_type_with_self_type %Negate.WithSelf.Op.type, %Negate.facet [symbolic = %.loc296_3.3 (constants.%.c6c)] +// CHECK:STDOUT: %impl.elem1.loc296_3.2: @TestNegate.%.loc296_3.3 (%.c6c) = impl_witness_access %Negate.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc296_3.2 (constants.%impl.elem1.9a8)] +// CHECK:STDOUT: %specific_impl_fn.loc296_3.3: = specific_impl_function %impl.elem1.loc296_3.2, @Negate.WithSelf.Op(%Negate.facet) [symbolic = %specific_impl_fn.loc296_3.3 (constants.%specific_impl_fn.c5a)] +// 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: %.loc296_3.4: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc292_9.1 [symbolic = %.loc296_3.4 (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.4 (%.543) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc296_3.2 (constants.%impl.elem0.531)] -// 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.010)] +// CHECK:STDOUT: %impl.elem0.loc296_3.2: @TestNegate.%.loc296_3.4 (%.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: -// CHECK:STDOUT: fn(%y.param: @TestNegate.%Result.as_type.loc293_50.1 (%Result.as_type), %x.param: @TestNegate.%T.as_type.loc294_24.1 (%T.as_type.b01)) { +// CHECK:STDOUT: fn(%y.param: @TestNegate.%Result.as_type.loc293_50.1 (%Result.as_type), %x.param: @TestNegate.%T.as_type.loc294_24.1 (%T.as_type.a98)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @TestNegate.%T.as_type.loc294_24.1 (%T.as_type.b01) = name_ref x, %x -// CHECK:STDOUT: %impl.elem1.loc296_3.1: @TestNegate.%.loc296_3.3 (%.0fd) = impl_witness_access constants.%Negate.lookup_impl_witness.5d0, element1 [symbolic = %impl.elem1.loc296_3.2 (constants.%impl.elem1.b4a)] +// CHECK:STDOUT: %x.ref: @TestNegate.%T.as_type.loc294_24.1 (%T.as_type.a98) = name_ref x, %x +// CHECK:STDOUT: %impl.elem1.loc296_3.1: @TestNegate.%.loc296_3.3 (%.c6c) = impl_witness_access constants.%Negate.lookup_impl_witness.48a, element1 [symbolic = %impl.elem1.loc296_3.2 (constants.%impl.elem1.9a8)] // CHECK:STDOUT: %bound_method.loc296_3.1: = bound_method %x.ref, %impl.elem1.loc296_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc296_3.1: = specific_impl_function %impl.elem1.loc296_3.1, @Negate.WithSelf.Op(constants.%Negate.facet.7e7) [symbolic = %specific_impl_fn.loc296_3.3 (constants.%specific_impl_fn.037)] +// CHECK:STDOUT: %specific_impl_fn.loc296_3.1: = specific_impl_function %impl.elem1.loc296_3.1, @Negate.WithSelf.Op(constants.%Negate.facet.f2f) [symbolic = %specific_impl_fn.loc296_3.3 (constants.%specific_impl_fn.c5a)] // CHECK:STDOUT: %bound_method.loc296_3.2: = bound_method %x.ref, %specific_impl_fn.loc296_3.1 // CHECK:STDOUT: %.loc296_3.1: ref @TestNegate.%Result.as_type.loc293_50.1 (%Result.as_type) = temporary_storage // CHECK:STDOUT: %Negate.WithSelf.Op.call: init @TestNegate.%Result.as_type.loc293_50.1 (%Result.as_type) to %.loc296_3.1 = call %bound_method.loc296_3.2(%x.ref) // CHECK:STDOUT: %.loc296_3.2: ref @TestNegate.%Result.as_type.loc293_50.1 (%Result.as_type) = temporary %.loc296_3.1, %Negate.WithSelf.Op.call -// CHECK:STDOUT: %impl.elem0.loc296_3.1: @TestNegate.%.loc296_3.4 (%.543) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc296_3.2 (constants.%impl.elem0.531)] +// CHECK:STDOUT: %impl.elem0.loc296_3.1: @TestNegate.%.loc296_3.4 (%.53a) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc296_3.2 (constants.%impl.elem0.0f9)] // CHECK:STDOUT: %bound_method.loc296_3.3: = bound_method %.loc296_3.2, %impl.elem0.loc296_3.1 -// 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.010)] +// 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: %bound_method.loc296_3.4: = bound_method %.loc296_3.2, %specific_impl_fn.loc296_3.2 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc296_3.4(%.loc296_3.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.loc124(constants.%Result, constants.%U.99e, constants.%T.23b) { +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Result, constants.%U.f40, constants.%T.200) { // CHECK:STDOUT: %Result.loc121_9.1 => constants.%Result -// CHECK:STDOUT: %U.loc122_4.1 => constants.%U.99e -// CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%U.as_type.f7f -// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.ad2 -// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.4ec -// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.53a -// CHECK:STDOUT: %require_complete.loc123 => constants.%require_complete.3ac -// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.626 -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.c6c -// CHECK:STDOUT: %assoc0 => constants.%assoc0.35c -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.46e -// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.851 +// CHECK:STDOUT: %U.loc122_4.1 => constants.%U.f40 +// CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%U.as_type.b61 +// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.9da +// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.b1e +// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.d6f +// CHECK:STDOUT: %require_complete.loc123 => constants.%require_complete.c7d +// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.38e +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.bc8 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.21f +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.29f +// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.8bb // CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Result.as_type -// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.cac -// CHECK:STDOUT: %T.loc123_4.1 => constants.%T.23b -// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.bcc -// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.227a41.2 -// CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%T.as_type.46a -// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.d37 -// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.87c +// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.096 +// CHECK:STDOUT: %T.loc123_4.1 => constants.%T.200 +// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.3fb +// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.f4e485.2 +// CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%T.as_type.606 +// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.82c +// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.753 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubWith.loc135(constants.%Result, constants.%U.99e, constants.%T.4a2) { +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Result, constants.%U.f40, constants.%T.967) { // CHECK:STDOUT: %Result.loc132_9.1 => constants.%Result -// CHECK:STDOUT: %U.loc133_4.1 => constants.%U.99e -// CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%U.as_type.f7f -// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.394 -// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.c40 -// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.f02 -// CHECK:STDOUT: %require_complete.loc134 => constants.%require_complete.f69 -// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.dc7 -// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.767 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.705 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.54d -// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.67e +// CHECK:STDOUT: %U.loc133_4.1 => constants.%U.f40 +// CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%U.as_type.b61 +// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.b5d +// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.d46 +// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.642 +// CHECK:STDOUT: %require_complete.loc134 => constants.%require_complete.cda +// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.715 +// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.3a1 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.729 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.ce5 +// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.0fb // CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Result.as_type -// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.98a -// CHECK:STDOUT: %T.loc134_4.1 => constants.%T.4a2 -// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.054 -// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.227a41.2 -// CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%T.as_type.330 -// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.2b7 -// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.87c +// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.5a5 +// CHECK:STDOUT: %T.loc134_4.1 => constants.%T.967 +// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.156 +// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.f4e485.2 +// CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%T.as_type.b22 +// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.000 +// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.753 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulWith.loc146(constants.%Result, constants.%U.99e, constants.%T.2c2) { +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Result, constants.%U.f40, constants.%T.546) { // CHECK:STDOUT: %Result.loc143_9.1 => constants.%Result -// CHECK:STDOUT: %U.loc144_4.1 => constants.%U.99e -// CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%U.as_type.f7f -// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.195 -// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.e45 -// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.117 -// CHECK:STDOUT: %require_complete.loc145 => constants.%require_complete.aad -// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.91e -// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.fff -// CHECK:STDOUT: %assoc0 => constants.%assoc0.dfc -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.bd7 -// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.e5b +// CHECK:STDOUT: %U.loc144_4.1 => constants.%U.f40 +// CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%U.as_type.b61 +// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.f02 +// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.f87 +// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.b68 +// CHECK:STDOUT: %require_complete.loc145 => constants.%require_complete.0a3 +// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.d1e +// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.a12 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.116 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.0d7 +// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.10f // CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Result.as_type -// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.a59 -// CHECK:STDOUT: %T.loc145_4.1 => constants.%T.2c2 -// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.4b6 -// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.227a41.2 -// CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%T.as_type.198 -// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.2a1 -// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.87c +// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.c32 +// CHECK:STDOUT: %T.loc145_4.1 => constants.%T.546 +// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.d38 +// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.f4e485.2 +// CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%T.as_type.427 +// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.d10 +// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.753 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivWith.loc157(constants.%Result, constants.%U.99e, constants.%T.2b9) { +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Result, constants.%U.f40, constants.%T.040) { // CHECK:STDOUT: %Result.loc154_9.1 => constants.%Result -// CHECK:STDOUT: %U.loc155_4.1 => constants.%U.99e -// CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%U.as_type.f7f -// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.63d -// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.511 -// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.10f -// CHECK:STDOUT: %require_complete.loc156 => constants.%require_complete.8fe -// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.151 -// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.e27 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.46e -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.0c0 -// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.2d7 +// CHECK:STDOUT: %U.loc155_4.1 => constants.%U.f40 +// CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%U.as_type.b61 +// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.523 +// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.86cd +// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.10e +// CHECK:STDOUT: %require_complete.loc156 => constants.%require_complete.4d7 +// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.c52 +// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.cf4 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c57 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.d63 +// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.df8 // CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Result.as_type -// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.5cc -// CHECK:STDOUT: %T.loc156_4.1 => constants.%T.2b9 -// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.fb6 -// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.227a41.2 -// CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%T.as_type.e49 -// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.673 -// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.87c +// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.2f8 +// CHECK:STDOUT: %T.loc156_4.1 => constants.%T.040 +// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.297 +// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.f4e485.2 +// CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%T.as_type.a31 +// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.126 +// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.753 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModWith.loc168(constants.%Result, constants.%U.99e, constants.%T.173) { +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Result, constants.%U.f40, constants.%T.095) { // CHECK:STDOUT: %Result.loc165_9.1 => constants.%Result -// CHECK:STDOUT: %U.loc166_4.1 => constants.%U.99e -// CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%U.as_type.f7f -// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.125 -// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.978 -// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.0e2 -// CHECK:STDOUT: %require_complete.loc167 => constants.%require_complete.4ae -// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.d0f -// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.3d0 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.649 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.ac5 -// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.50a +// CHECK:STDOUT: %U.loc166_4.1 => constants.%U.f40 +// CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%U.as_type.b61 +// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.937 +// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.b18 +// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.0f7 +// CHECK:STDOUT: %require_complete.loc167 => constants.%require_complete.708 +// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.f55 +// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.626 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.56e +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.4a2 +// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.36b // CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Result.as_type -// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.c32 -// CHECK:STDOUT: %T.loc167_4.1 => constants.%T.173 -// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.cc0 -// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.227a41.2 -// CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%T.as_type.105 -// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.9c5 -// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.87c +// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.9a0 +// CHECK:STDOUT: %T.loc167_4.1 => constants.%T.095 +// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.82f +// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.f4e485.2 +// CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%T.as_type.fcd +// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.2e7 +// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.753 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.1b8, constants.%Destroy.facet.1b8, constants.%facet_value.fdd) { -// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.1b8 -// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.1b8 +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.2cc, constants.%Destroy.facet.2cc, constants.%facet_value.b750) { +// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.2cc +// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.2cc // CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%Int16 -// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.6f4 -// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.f17 -// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.863 -// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.211 -// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.db9 -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.e37 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.4ec -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.896 -// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.2d1 +// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.b62 +// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.297 +// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.120 +// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.a82 +// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.9c7 +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.c72 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.261 +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.560 +// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.7e0 // CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.753 -// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.fdd -// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.bc4 -// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.802 +// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.376 +// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.b750 +// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.48e +// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.785 // CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%i16 -// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.e1b -// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.802 +// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.203 +// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.785 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc124_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_27 => constants.%complete_type.2da // CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.386 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.c66 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.604 -// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.85f -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.09b -// CHECK:STDOUT: %.loc126_5.4 => constants.%.b5b -// CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Op.b9c47d.1 -// CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Op.b9c47d.1 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e80 -// CHECK:STDOUT: %.loc126_5.5 => constants.%.154 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.1 -// CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int16.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int16.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.7a6 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.006 +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.248 +// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.ff0 +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.e1f +// CHECK:STDOUT: %.loc126_5.4 => constants.%.2c3 +// CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Op.72717c.1 +// CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Op.72717c.1 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.9d5 +// CHECK:STDOUT: %.loc126_5.5 => constants.%.6da +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.1 +// CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int16.Op.4dca31.1 +// 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.1b8, constants.%Destroy.facet.1b8, constants.%facet_value.578) { -// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.1b8 -// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.1b8 +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.2cc, constants.%Destroy.facet.2cc, constants.%facet_value.9fa) { +// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.2cc +// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.2cc // CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%Int16 -// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.8bd -// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.c80 -// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.700 -// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.a74 -// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.c4d +// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.b12 +// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.b15 +// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.4e4 +// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.647 +// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.bcf // CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.eb8 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.8a1 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.e8f -// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.0b0 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.a90 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.780 +// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.104 // CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.5f5 -// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.578 -// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.4d6 -// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.802 +// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.2e5 +// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.9fa +// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.943 +// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.785 // CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%i16 -// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.e1b -// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.802 +// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.203 +// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.785 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc135_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_27 => constants.%complete_type.2da // CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.41c -// CHECK:STDOUT: %assoc1 => constants.%assoc1.937f -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.4c1 -// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.1de -// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.fc2 -// CHECK:STDOUT: %.loc137_5.4 => constants.%.ec9 -// CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Op.b9c47d.2 -// CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Op.b9c47d.2 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e80 -// CHECK:STDOUT: %.loc137_5.5 => constants.%.154 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.1 -// CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int16.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int16.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.b9a +// CHECK:STDOUT: %assoc1 => constants.%assoc1.2cf +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.f14 +// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.49f +// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.843 +// CHECK:STDOUT: %.loc137_5.4 => constants.%.00a +// CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Op.72717c.2 +// CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Op.72717c.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.9d5 +// CHECK:STDOUT: %.loc137_5.5 => constants.%.6da +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.1 +// CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int16.Op.4dca31.1 +// 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.1b8, constants.%Destroy.facet.1b8, constants.%facet_value.1ee) { -// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.1b8 -// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.1b8 +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.2cc, constants.%Destroy.facet.2cc, constants.%facet_value.074) { +// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.2cc +// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.2cc // CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%Int16 -// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.c25 -// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.d27 -// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.e39 -// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.aa7 -// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.87e -// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.543 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.81e -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.5e1 -// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.e54 +// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.c18 +// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.a64 +// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.c25 +// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.4d3 +// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.354 +// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.f15 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.f8b +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.e32 +// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.472 // CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.9da -// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.1ee -// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.d31 -// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.802 +// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.e71 +// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.074 +// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.b79 +// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.785 // CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%i16 -// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.e1b -// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.802 +// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.203 +// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.785 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc146_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_27 => constants.%complete_type.2da // CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.b16 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.911 -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.72a -// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.d75 -// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.53a -// CHECK:STDOUT: %.loc148_5.4 => constants.%.f80 -// CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Op.b9c47d.3 -// CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Op.b9c47d.3 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e80 -// CHECK:STDOUT: %.loc148_5.5 => constants.%.154 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.1 -// CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int16.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int16.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.433 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.eb5 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.6bd +// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.d6e +// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.f9f +// CHECK:STDOUT: %.loc148_5.4 => constants.%.0ed +// CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Op.72717c.3 +// CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Op.72717c.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.9d5 +// CHECK:STDOUT: %.loc148_5.5 => constants.%.6da +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.1 +// CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int16.Op.4dca31.1 +// 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.1b8, constants.%Destroy.facet.1b8, constants.%facet_value.6b2) { -// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.1b8 -// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.1b8 +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.2cc, constants.%Destroy.facet.2cc, constants.%facet_value.c41) { +// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.2cc +// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.2cc // CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%Int16 -// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.053 -// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.8eb -// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.467 -// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.d563 -// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.3cd -// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.73e -// CHECK:STDOUT: %assoc0 => constants.%assoc0.e96 -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.9bc -// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.5c6 +// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.6f9 +// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.0b4 +// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.927 +// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.acc +// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.87a +// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.333 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.962 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.ac4 +// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.6aa // CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.7f5 -// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.6b2 -// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.2be -// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.802 +// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.84f +// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.c41 +// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.abe +// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.785 // CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%i16 -// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.e1b -// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.802 +// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.203 +// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.785 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc157_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_27 => constants.%complete_type.2da // CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.7c5 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.10b -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.6ea -// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.2be -// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.88f -// CHECK:STDOUT: %.loc159_5.4 => constants.%.a93 -// CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Op.b9c47d.4 -// CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Op.b9c47d.4 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e80 -// CHECK:STDOUT: %.loc159_5.5 => constants.%.154 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.1 -// CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int16.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int16.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.64f +// CHECK:STDOUT: %assoc1 => constants.%assoc1.8b5 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.22c +// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.437 +// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.51a +// CHECK:STDOUT: %.loc159_5.4 => constants.%.316 +// CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Op.72717c.4 +// CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Op.72717c.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.9d5 +// CHECK:STDOUT: %.loc159_5.5 => constants.%.6da +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.1 +// CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int16.Op.4dca31.1 +// 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.1b8, constants.%Destroy.facet.1b8, constants.%facet_value.07d) { -// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.1b8 -// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.1b8 +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.2cc, constants.%Destroy.facet.2cc, constants.%facet_value.849) { +// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.2cc +// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.2cc // CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int16 -// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.a83 -// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.dc7 -// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.703 -// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.65d -// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.c72 -// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.55b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.8a3 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.c7a -// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.094 +// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.763 +// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.ee8 +// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.a1e +// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.8fc +// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.1da +// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.e6a +// CHECK:STDOUT: %assoc0 => constants.%assoc0.2cc +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.c0b +// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.dae // CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.fde -// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.07d -// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.268 -// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.802 +// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.1b7 +// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.849 +// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.45b +// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.785 // CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%i16 -// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.e1b -// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.802 +// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.203 +// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.785 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc168_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_27 => constants.%complete_type.2da // CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.2f8 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.7d4 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.b81 -// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.ea4 -// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.6fc -// CHECK:STDOUT: %.loc170_5.4 => constants.%.3cd -// CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Op.b9c47d.5 -// CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Op.b9c47d.5 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e80 -// CHECK:STDOUT: %.loc170_5.5 => constants.%.154 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.1 -// CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int16.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int16.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.dea +// CHECK:STDOUT: %assoc1 => constants.%assoc1.3dd +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.9e6 +// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.251 +// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.62d +// CHECK:STDOUT: %.loc170_5.4 => constants.%.9b3 +// CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Op.72717c.5 +// CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Op.72717c.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.9d5 +// CHECK:STDOUT: %.loc170_5.5 => constants.%.6da +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.1 +// CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int16.Op.4dca31.1 +// 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.1b8, constants.%Destroy.facet.181, constants.%facet_value.b21) { -// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.1b8 -// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.181 +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.2cc, constants.%Destroy.facet.e5c, constants.%facet_value.dbc) { +// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.2cc +// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.e5c // CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%i16 -// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.63e -// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.bf5 -// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.b0b -// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.b92 -// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.ed9 -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.fdd -// CHECK:STDOUT: %assoc0 => constants.%assoc0.c67 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.2ab -// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.b1c +// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.a36 +// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.1cc +// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.b3b +// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.5a6 +// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.552 +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.6bf +// CHECK:STDOUT: %assoc0 => constants.%assoc0.e6b +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.fc6 +// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.46e // CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.c90 -// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.b21 -// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.a15 -// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.802 +// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.3ae +// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.dbc +// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.9c1 +// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.785 // CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.802 -// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.e1b +// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.785 +// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.203 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc124_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.2da -// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.b45 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.0e4 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.9f2 -// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.cea -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.18e -// CHECK:STDOUT: %.loc126_5.4 => constants.%.1c0 -// CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Int16.Op.cc70d5.3 -// CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Int16.Op.cc70d5.3 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e80 -// CHECK:STDOUT: %.loc126_5.5 => constants.%.154 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.1 -// CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int16.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int16.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.a53 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.80e +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.b17 +// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.b59 +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.de7 +// CHECK:STDOUT: %.loc126_5.4 => constants.%.c9e +// CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Int16.Op.4dca31.3 +// CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Int16.Op.4dca31.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.9d5 +// CHECK:STDOUT: %.loc126_5.5 => constants.%.6da +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.1 +// CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int16.Op.4dca31.1 +// 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.1b8, constants.%Destroy.facet.181, constants.%facet_value.2b4) { -// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.1b8 -// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.181 +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.2cc, constants.%Destroy.facet.e5c, constants.%facet_value.5c8) { +// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.2cc +// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.e5c // CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%i16 -// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.1db -// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.5e7 -// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.bea -// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.9fc -// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.b77 -// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.5df -// CHECK:STDOUT: %assoc0 => constants.%assoc0.870 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.7b4 -// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.61d +// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.08b +// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.cb2 +// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.408 +// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.090 +// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.d2a +// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.077 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.465 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.8c9 +// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.727 // CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.80f -// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.2b4 -// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.7a0 -// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.802 +// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.a54 +// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.5c8 +// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.612 +// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.785 // CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.802 -// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.e1b +// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.785 +// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.203 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc135_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.2da -// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.edc -// CHECK:STDOUT: %assoc1 => constants.%assoc1.b6b -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.6a5 -// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.3dd -// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.1ca -// CHECK:STDOUT: %.loc137_5.4 => constants.%.f6d -// CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Int16.Op.cc70d5.4 -// CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Int16.Op.cc70d5.4 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e80 -// CHECK:STDOUT: %.loc137_5.5 => constants.%.154 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.1 -// CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int16.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int16.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.fc0 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.9f7 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.b07 +// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.ef4 +// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.723 +// CHECK:STDOUT: %.loc137_5.4 => constants.%.6f3 +// CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Int16.Op.4dca31.4 +// CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Int16.Op.4dca31.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.9d5 +// CHECK:STDOUT: %.loc137_5.5 => constants.%.6da +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.1 +// CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int16.Op.4dca31.1 +// 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.1b8, constants.%Destroy.facet.181, constants.%facet_value.88a) { -// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.1b8 -// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.181 +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.2cc, constants.%Destroy.facet.e5c, constants.%facet_value.158) { +// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.2cc +// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.e5c // CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%i16 -// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.c35 -// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.183 -// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.0ef -// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.309 -// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.751 -// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.378 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.7cb -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.b3c -// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.4a2 +// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.55d +// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.67c +// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.3be +// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.a8b +// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.523 +// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.212 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.455 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.446 +// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.192 // CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.6bb -// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.88a -// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.fff -// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.802 +// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.d1d +// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.158 +// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.fc4 +// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.785 // CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.802 -// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.e1b +// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.785 +// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.203 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc146_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.2da -// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.355 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.9b3 -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.35c -// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.3b5 -// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.896 -// CHECK:STDOUT: %.loc148_5.4 => constants.%.ca0 -// CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Int16.Op.cc70d5.5 -// CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Int16.Op.cc70d5.5 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e80 -// CHECK:STDOUT: %.loc148_5.5 => constants.%.154 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.1 -// CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int16.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int16.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.850 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.2d0 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.8bd +// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.19a +// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.7b1 +// CHECK:STDOUT: %.loc148_5.4 => constants.%.d82 +// CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Int16.Op.4dca31.5 +// CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Int16.Op.4dca31.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.9d5 +// CHECK:STDOUT: %.loc148_5.5 => constants.%.6da +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.1 +// CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int16.Op.4dca31.1 +// 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.1b8, constants.%Destroy.facet.181, constants.%facet_value.473) { -// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.1b8 -// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.181 +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.2cc, constants.%Destroy.facet.e5c, constants.%facet_value.8dc) { +// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.2cc +// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.e5c // CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%i16 -// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.086 -// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.ab4 -// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.627 -// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.d56e -// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.4c8 -// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.d3a -// CHECK:STDOUT: %assoc0 => constants.%assoc0.8b8 -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.3d7 -// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.ce6 +// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.ab0 +// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.86c8 +// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.2ad +// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.1cb +// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.445 +// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.1f2 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.be2 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.2b4 +// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.7e7 // CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.6b1 -// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.473 -// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.92a -// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.802 +// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.bdc +// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.8dc +// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.b62 +// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.785 // CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.802 -// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.e1b +// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.785 +// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.203 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc157_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.2da -// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.db2 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.acb -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.52d -// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.8d2 -// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.2d4 -// CHECK:STDOUT: %.loc159_5.4 => constants.%.cb6e -// CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Int16.Op.cc70d5.6 -// CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Int16.Op.cc70d5.6 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e80 -// CHECK:STDOUT: %.loc159_5.5 => constants.%.154 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.1 -// CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int16.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int16.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.8a2 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.885 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.963 +// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.115 +// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.a49 +// CHECK:STDOUT: %.loc159_5.4 => constants.%.251 +// CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Int16.Op.4dca31.6 +// CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Int16.Op.4dca31.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.9d5 +// CHECK:STDOUT: %.loc159_5.5 => constants.%.6da +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.1 +// CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int16.Op.4dca31.1 +// 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.1b8, constants.%Destroy.facet.181, constants.%facet_value.c3b) { -// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.1b8 -// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.181 +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.2cc, constants.%Destroy.facet.e5c, constants.%facet_value.8657) { +// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.2cc +// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.e5c // CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%i16 -// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.59b -// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.4ac -// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.b05 -// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.602 -// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.c10 -// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.95c -// CHECK:STDOUT: %assoc0 => constants.%assoc0.954 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.ae1 -// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.9ea +// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.0b2 +// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.afdb +// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.ceb +// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.1f9 +// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.1c1 +// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.e06 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.b5a +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.af5 +// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.4a6 // CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.b54 -// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.c3b -// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.87b -// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.802 +// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.dde +// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.8657 +// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.9c7 +// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.785 // CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.802 -// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.e1b +// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.785 +// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.203 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc168_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.2da -// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.b14 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.503 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.887 -// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.8ae -// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.5f0 -// CHECK:STDOUT: %.loc170_5.4 => constants.%.851 -// CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Int16.Op.cc70d5.7 -// CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Int16.Op.cc70d5.7 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e80 -// CHECK:STDOUT: %.loc170_5.5 => constants.%.154 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.1 -// CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int16.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int16.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.385 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.972 +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.8f4 +// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.925 +// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.519 +// CHECK:STDOUT: %.loc170_5.4 => constants.%.66e2 +// CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Int16.Op.4dca31.7 +// CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Int16.Op.4dca31.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.9d5 +// CHECK:STDOUT: %.loc170_5.5 => constants.%.6da +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.1 +// CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int16.Op.4dca31.1 +// 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.d87, constants.%Destroy.facet.d87, constants.%facet_value.464) { -// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.d87 +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.099, constants.%Destroy.facet.099, constants.%facet_value.5c0) { +// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.099 // CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%Int32 -// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.78c -// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.9c9 -// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.495 -// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.f26 -// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.154 -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.882 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.5b9 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.4d9 -// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.53a +// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.c71 +// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.698 +// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.1bc +// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.224 +// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.cbd +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.72d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c2b +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.d80 +// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.899 // CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.8fd -// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.464 -// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.15c -// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.e9d +// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.cf0 +// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.5c0 +// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.44d +// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.8b4 // CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.802 -// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.785 +// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc124_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.c57 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.892 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.e46c75.1 -// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.b3b -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.675 -// CHECK:STDOUT: %.loc126_5.4 => constants.%.615 -// CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Int16.Op.cc70d5.8 -// CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Int16.Op.cc70d5.8 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a62 -// CHECK:STDOUT: %.loc126_5.5 => constants.%.e4f -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.2 -// CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int32.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.2cc +// CHECK:STDOUT: %assoc1 => constants.%assoc1.0fc +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.e02e0c.1 +// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.007 +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.dc4 +// CHECK:STDOUT: %.loc126_5.4 => constants.%.dbb +// CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Int16.Op.4dca31.8 +// CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Int16.Op.4dca31.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b76 +// CHECK:STDOUT: %.loc126_5.5 => constants.%.043 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.2 +// CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int32.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.d87, constants.%Destroy.facet.d87, constants.%facet_value.197) { -// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.d87 +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.099, constants.%Destroy.facet.099, constants.%facet_value.a20) { +// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.099 // CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%Int32 -// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.629 -// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.6c8 -// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.cbb -// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.dae -// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.11e -// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.a03 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.199 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.733 -// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.e47 +// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.c81 +// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.44e +// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.4d7 +// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.63f +// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.07c +// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.68f +// CHECK:STDOUT: %assoc0 => constants.%assoc0.f11 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.566 +// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.ee1 // CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.02a -// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.197 -// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.553 -// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.e9d +// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.0f8 +// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.a20 +// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.9624 +// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.8b4 // CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.802 -// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.785 +// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc135_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.48a -// CHECK:STDOUT: %assoc1 => constants.%assoc1.bff -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.7ffeb1.1 -// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.da1 -// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.a0e -// CHECK:STDOUT: %.loc137_5.4 => constants.%.1a2 -// CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Int16.Op.cc70d5.9 -// CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Int16.Op.cc70d5.9 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a62 -// CHECK:STDOUT: %.loc137_5.5 => constants.%.e4f -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.2 -// CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int32.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.cf9 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.799 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.4dea15.1 +// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.703 +// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.6eb +// CHECK:STDOUT: %.loc137_5.4 => constants.%.114 +// CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Int16.Op.4dca31.9 +// CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Int16.Op.4dca31.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b76 +// CHECK:STDOUT: %.loc137_5.5 => constants.%.043 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.2 +// CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int32.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.d87, constants.%Destroy.facet.d87, constants.%facet_value.5b3) { -// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.d87 +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.099, constants.%Destroy.facet.099, constants.%facet_value.f68) { +// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.099 // CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%Int32 -// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.3ee -// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.299 -// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.1c7 -// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.0cf -// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.ba5 -// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.564 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.6fa -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.5ca -// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.cab +// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.eeb +// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.ff6 +// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.a5b +// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.3fe +// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.646 +// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.083 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.fc0 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.a28 +// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.d19 // CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.a5c -// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.5b3 -// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.11c -// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.e9d +// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.cf6 +// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.f68 +// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.08b +// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.8b4 // CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.802 -// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.785 +// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc146_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.6e9 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.00d -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.68a6cf.1 -// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.c1a -// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.b9a -// CHECK:STDOUT: %.loc148_5.4 => constants.%.f10 -// CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Int16.Op.cc70d5.10 -// CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Int16.Op.cc70d5.10 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a62 -// CHECK:STDOUT: %.loc148_5.5 => constants.%.e4f -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.2 -// CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int32.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.e76 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.019 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.337c88.1 +// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.fcd +// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.99f +// CHECK:STDOUT: %.loc148_5.4 => constants.%.c1c +// CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Int16.Op.4dca31.10 +// CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Int16.Op.4dca31.10 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b76 +// CHECK:STDOUT: %.loc148_5.5 => constants.%.043 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.2 +// CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int32.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.d87, constants.%Destroy.facet.d87, constants.%facet_value.6fd) { -// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.d87 +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.099, constants.%Destroy.facet.099, constants.%facet_value.6d0) { +// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.099 // CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%Int32 -// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.09b -// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.c6e -// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.988 -// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.36c -// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.f38 -// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.a72 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.d0a -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.c00 -// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.7a0 -// CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.b40 -// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.6fd -// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.6b3 -// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.e9d -// CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.802 -// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.e9d -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc157_16 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc157_27 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.627 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.489 -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.2ccbdb.1 -// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.b53 -// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.214 -// CHECK:STDOUT: %.loc159_5.4 => constants.%.eff -// CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Int16.Op.cc70d5.11 -// CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Int16.Op.cc70d5.11 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a62 -// CHECK:STDOUT: %.loc159_5.5 => constants.%.e4f -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.2 -// CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.d87, constants.%Destroy.facet.d87, constants.%facet_value.592) { -// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int32 -// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.6f6 -// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.22f -// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.572 -// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.e22 -// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.aac -// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.d09 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.fb6 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.18e -// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.288 -// CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.88b -// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.592 -// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.dda -// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.e9d -// CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.802 -// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.e9d -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc168_16 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc168_27 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.1cf -// CHECK:STDOUT: %assoc1 => constants.%assoc1.56e -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.596ded.1 -// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.142 -// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.513 -// CHECK:STDOUT: %.loc170_5.4 => constants.%.699 -// CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Int16.Op.cc70d5.12 -// CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Int16.Op.cc70d5.12 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a62 -// CHECK:STDOUT: %.loc170_5.5 => constants.%.e4f -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.2 -// CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.d87, constants.%Destroy.facet.1b8, constants.%facet_value.f2b) { -// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.1b8 -// CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%Int16 -// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.6f4 -// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.f17 -// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.863 -// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.211 -// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.db9 -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.e37 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.4ec -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.896 -// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.2d1 -// CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.558 -// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.f2b -// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.715 -// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.e9d -// CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.802 -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc124_16 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc124_27 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.386 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.c66 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.e32 -// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.aef -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.0aa -// CHECK:STDOUT: %.loc126_5.4 => constants.%.211 -// CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Int32.Op.cc70d5.2 -// CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Int32.Op.cc70d5.2 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a62 -// CHECK:STDOUT: %.loc126_5.5 => constants.%.e4f -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.2 -// CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.d87, constants.%Destroy.facet.1b8, constants.%facet_value.dc0) { -// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.1b8 -// CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%Int16 -// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.8bd -// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.c80 -// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.700 -// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.a74 -// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.c4d -// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.eb8 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.8a1 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.e8f -// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.0b0 -// CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.064 -// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.dc0 -// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.b06 -// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.e9d -// CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.802 -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc135_16 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc135_27 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.41c -// CHECK:STDOUT: %assoc1 => constants.%assoc1.937f -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.395 -// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.9f2 -// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.bba -// CHECK:STDOUT: %.loc137_5.4 => constants.%.2b2 -// CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Int32.Op.cc70d5.3 -// CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Int32.Op.cc70d5.3 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a62 -// CHECK:STDOUT: %.loc137_5.5 => constants.%.e4f -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.2 -// CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.d87, constants.%Destroy.facet.1b8, constants.%facet_value.ff0) { -// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.1b8 -// CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%Int16 -// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.c25 -// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.d27 -// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.e39 -// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.aa7 -// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.87e -// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.543 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.81e -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.5e1 -// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.e54 -// CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.d97 -// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.ff0 -// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.3ec -// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.e9d -// CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.802 -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc146_16 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc146_27 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.b16 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.911 -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.678 -// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.9cb -// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.15f -// CHECK:STDOUT: %.loc148_5.4 => constants.%.dd6 -// CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Int32.Op.cc70d5.4 -// CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Int32.Op.cc70d5.4 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a62 -// CHECK:STDOUT: %.loc148_5.5 => constants.%.e4f -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.2 -// CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.d87, constants.%Destroy.facet.1b8, constants.%facet_value.42a) { -// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.1b8 -// CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%Int16 -// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.053 -// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.8eb -// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.467 -// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.d563 -// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.3cd -// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.73e -// CHECK:STDOUT: %assoc0 => constants.%assoc0.e96 -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.9bc -// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.5c6 -// CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.aa6 -// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.42a -// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.814 -// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.e9d -// CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.802 -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc157_16 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc157_27 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.7c5 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.10b -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.8ad -// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.53f -// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.ba3 -// CHECK:STDOUT: %.loc159_5.4 => constants.%.540 -// CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Int32.Op.cc70d5.5 -// CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Int32.Op.cc70d5.5 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a62 -// CHECK:STDOUT: %.loc159_5.5 => constants.%.e4f -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.2 -// CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.d87, constants.%Destroy.facet.1b8, constants.%facet_value.7ad) { -// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.1b8 -// CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int16 -// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.a83 -// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.dc7 -// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.703 -// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.65d -// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.c72 -// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.55b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.8a3 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.c7a -// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.094 -// CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.b16 -// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.7ad -// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.7fa -// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.e9d -// CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.802 -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc168_16 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc168_27 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.2f8 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.7d4 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.f63 -// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.0ea -// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.aeb -// CHECK:STDOUT: %.loc170_5.4 => constants.%.b1a -// CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Int32.Op.cc70d5.6 -// CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Int32.Op.cc70d5.6 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a62 -// CHECK:STDOUT: %.loc170_5.5 => constants.%.e4f -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.2 -// CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.d87, constants.%Destroy.facet.d87, constants.%facet_value.f56) { -// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%Int32 -// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.78c -// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.9c9 -// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.495 -// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.f26 -// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.154 -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.882 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.5b9 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.4d9 -// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.53a -// CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.8fd -// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.f56 -// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.15c -// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.e9d -// CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.e9d -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc124_16 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc124_27 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.c57 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.892 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.e46c75.2 -// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.616 -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.9e3 -// CHECK:STDOUT: %.loc126_5.4 => constants.%.d9d -// CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Int32.Op.cc70d5.7 -// CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Int32.Op.cc70d5.7 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a62 -// CHECK:STDOUT: %.loc126_5.5 => constants.%.e4f -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.2 -// CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.d87, constants.%Destroy.facet.d87, constants.%facet_value.8a6) { -// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%Int32 -// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.629 -// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.6c8 -// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.cbb -// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.dae -// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.11e -// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.a03 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.199 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.733 -// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.e47 -// CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.02a -// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.8a6 -// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.553 -// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.e9d -// CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.e9d -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc135_16 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc135_27 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.48a -// CHECK:STDOUT: %assoc1 => constants.%assoc1.bff -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.7ffeb1.2 -// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.36d -// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.1db -// CHECK:STDOUT: %.loc137_5.4 => constants.%.613 -// CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Int32.Op.cc70d5.8 -// CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Int32.Op.cc70d5.8 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a62 -// CHECK:STDOUT: %.loc137_5.5 => constants.%.e4f -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.2 -// CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.d87, constants.%Destroy.facet.d87, constants.%facet_value.e09) { -// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%Int32 -// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.3ee -// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.299 -// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.1c7 -// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.0cf -// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.ba5 -// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.564 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.6fa -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.5ca -// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.cab -// CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.a5c -// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.e09 -// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.11c -// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.e9d -// CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.e9d -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc146_16 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc146_27 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.6e9 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.00d -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.68a6cf.2 -// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.dd3 -// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.854 -// CHECK:STDOUT: %.loc148_5.4 => constants.%.ec7 -// CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Int32.Op.cc70d5.9 -// CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Int32.Op.cc70d5.9 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a62 -// CHECK:STDOUT: %.loc148_5.5 => constants.%.e4f -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.2 -// CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.d87, constants.%Destroy.facet.d87, constants.%facet_value.a3b) { -// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%Int32 -// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.09b -// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.c6e -// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.988 -// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.36c -// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.f38 -// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.a72 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.d0a -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.c00 -// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.7a0 -// CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.b40 -// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.a3b -// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.6b3 -// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.e9d -// CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.e9d -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc157_16 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc157_27 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.627 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.489 -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.2ccbdb.2 -// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.c86 -// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.e4e -// CHECK:STDOUT: %.loc159_5.4 => constants.%.865 -// CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Int32.Op.cc70d5.10 -// CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Int32.Op.cc70d5.10 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a62 -// CHECK:STDOUT: %.loc159_5.5 => constants.%.e4f -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.2 -// CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.d87, constants.%Destroy.facet.d87, constants.%facet_value.40c) { -// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int32 -// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.6f6 -// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.22f -// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.572 -// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.e22 -// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.aac -// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.d09 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.fb6 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.18e -// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.288 -// CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.88b -// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.40c -// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.dda -// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.e9d -// CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.e9d -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc168_16 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc168_27 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.1cf -// CHECK:STDOUT: %assoc1 => constants.%assoc1.56e -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.596ded.2 -// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.c80 -// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.e0b -// CHECK:STDOUT: %.loc170_5.4 => constants.%.d2e -// CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Int32.Op.cc70d5.11 -// CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Int32.Op.cc70d5.11 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a62 -// CHECK:STDOUT: %.loc170_5.5 => constants.%.e4f -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.2 -// CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.3de, constants.%Destroy.facet.3de, constants.%facet_value.5d2) { -// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.3de -// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.3de -// CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%Int64 -// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.01b -// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.fb6 -// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.d3e -// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.900 -// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.1db -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.7c5 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.f19 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.708 -// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.86a -// CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.376 -// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.5d2 -// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.e29 -// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.7b1 -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc124_16 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc124_27 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.495 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.3e0 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.e1e -// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.31a -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.c0a -// CHECK:STDOUT: %.loc126_5.4 => constants.%.2ba -// CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Op.b9c47d.6 -// CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Op.b9c47d.6 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.2bb -// CHECK:STDOUT: %.loc126_5.5 => constants.%.dda -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.3 -// CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int64.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int64.Op.cc70d5.1 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.3de, constants.%Destroy.facet.3de, constants.%facet_value.916) { -// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.3de -// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.3de -// CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%Int64 -// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.82c -// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.038 -// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.869 -// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.e31 -// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.824 -// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.f62 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.018 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.c9f -// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.6f7 -// CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.4a1 -// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.916 -// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.58c -// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.7b1 -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc135_16 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc135_27 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.cc7 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.1cf -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.053 -// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.9cc -// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.a06 -// CHECK:STDOUT: %.loc137_5.4 => constants.%.086 -// CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Op.b9c47d.7 -// CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Op.b9c47d.7 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.2bb -// CHECK:STDOUT: %.loc137_5.5 => constants.%.dda -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.3 -// CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int64.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int64.Op.cc70d5.1 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.3de, constants.%Destroy.facet.3de, constants.%facet_value.7ba) { -// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.3de -// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.3de -// CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%Int64 -// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.9ed -// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.e03 -// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.d17 -// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.25d -// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.a7c -// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.8d1 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.c01 -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.13a -// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.7f7 -// CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.88c -// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.7ba -// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.c54 -// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.7b1 -// CHECK:STDOUT: -// CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc146_16 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc146_27 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.da6 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.eef -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.f29 -// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.83a -// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.bc6 -// CHECK:STDOUT: %.loc148_5.4 => constants.%.ca6 -// CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Op.b9c47d.8 -// CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Op.b9c47d.8 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.2bb -// CHECK:STDOUT: %.loc148_5.5 => constants.%.dda -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.3 -// CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int64.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int64.Op.cc70d5.1 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.3de, constants.%Destroy.facet.3de, constants.%facet_value.969) { -// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.3de -// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.3de -// CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%Int64 -// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.7ac +// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.fb1 // CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.d41 -// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.73b -// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.67e -// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.e27 -// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.bfe -// CHECK:STDOUT: %assoc0 => constants.%assoc0.578 -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.12e -// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.2db -// CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.604 -// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.969 -// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.171 -// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.7b1 +// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.d8c +// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.11b +// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.30d +// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.725 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.2da +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.d3c +// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.282 +// CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int32 +// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.639 +// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.6d0 +// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.379 +// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int16 +// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.785 +// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc157_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.dba -// CHECK:STDOUT: %assoc1 => constants.%assoc1.c32 -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.863 -// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.62d -// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.90b -// CHECK:STDOUT: %.loc159_5.4 => constants.%.cb62 -// CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Op.b9c47d.9 -// CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Op.b9c47d.9 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.2bb -// CHECK:STDOUT: %.loc159_5.5 => constants.%.dda -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.3 -// CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int64.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int64.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.595 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.580 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.3eb227.1 +// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.3bd +// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.500 +// CHECK:STDOUT: %.loc159_5.4 => constants.%.ebc +// CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Int16.Op.4dca31.11 +// CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Int16.Op.4dca31.11 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b76 +// CHECK:STDOUT: %.loc159_5.5 => constants.%.043 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.2 +// CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int32.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.3de, constants.%Destroy.facet.3de, constants.%facet_value.0ea) { -// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.3de -// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.3de -// CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int64 -// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.6b0 -// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.dfd -// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.5bc -// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.76b -// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.97b -// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.eb7 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.8a2 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.45e -// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.f40 -// CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.d93 -// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.0ea -// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.5a9 -// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.7b1 +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.099, constants.%Destroy.facet.099, constants.%facet_value.72f) { +// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int32 +// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.253 +// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.ea8 +// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.46e +// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.2aa +// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.7e4 +// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.47d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.45c +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.b37 +// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.32c +// CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int32 +// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.cac +// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.72f +// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.e4f +// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int16 +// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.785 +// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc168_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.f9c -// CHECK:STDOUT: %assoc1 => constants.%assoc1.fa5 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.eb8 -// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.02b -// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.17d -// CHECK:STDOUT: %.loc170_5.4 => constants.%.0ca -// CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Op.b9c47d.10 -// CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Op.b9c47d.10 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.2bb -// CHECK:STDOUT: %.loc170_5.5 => constants.%.dda -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.3 -// CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int64.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int64.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.80f +// CHECK:STDOUT: %assoc1 => constants.%assoc1.878 +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.501c6d.1 +// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.a29 +// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.d03 +// CHECK:STDOUT: %.loc170_5.4 => constants.%.839 +// CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Int16.Op.4dca31.12 +// CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Int16.Op.4dca31.12 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b76 +// CHECK:STDOUT: %.loc170_5.5 => constants.%.043 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.2 +// CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int32.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.3de, constants.%Destroy.facet.d87, constants.%facet_value.706) { -// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.3de -// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%Int32 -// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.78c -// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.9c9 -// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.495 -// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.f26 -// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.154 -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.882 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.5b9 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.4d9 -// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.53a -// CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.002 -// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.706 -// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.429 -// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.e9d +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.099, constants.%Destroy.facet.2cc, constants.%facet_value.aa2) { +// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.2cc +// CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%Int16 +// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.b62 +// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.297 +// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.120 +// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.a82 +// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.9c7 +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.c72 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.261 +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.560 +// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.7e0 +// CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int32 +// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.2c6 +// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.aa2 +// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.96f +// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%Int32 +// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.785 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc124_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.c57 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.892 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.483 -// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.6a1 -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.5ee -// CHECK:STDOUT: %.loc126_5.4 => constants.%.11a -// CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Op.b9c47d.11 -// CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Op.b9c47d.11 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.2bb -// CHECK:STDOUT: %.loc126_5.5 => constants.%.dda -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.3 -// CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int64.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int64.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.7a6 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.006 +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.15f +// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.35b +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.29e +// CHECK:STDOUT: %.loc126_5.4 => constants.%.45e +// CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Int32.Op.4dca31.2 +// CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Int32.Op.4dca31.2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b76 +// CHECK:STDOUT: %.loc126_5.5 => constants.%.043 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.2 +// CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int32.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.3de, constants.%Destroy.facet.d87, constants.%facet_value.1d6) { -// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.3de -// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%Int32 -// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.629 -// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.6c8 -// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.cbb -// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.dae -// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.11e -// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.a03 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.199 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.733 -// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.e47 -// CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.a40 -// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.1d6 -// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.59c -// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.e9d +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.099, constants.%Destroy.facet.2cc, constants.%facet_value.577) { +// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.2cc +// CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%Int16 +// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.b12 +// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.b15 +// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.4e4 +// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.647 +// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.bcf +// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.eb8 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.a90 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.780 +// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.104 +// CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int32 +// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.076 +// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.577 +// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.05c +// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%Int32 +// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.785 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc135_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.48a -// CHECK:STDOUT: %assoc1 => constants.%assoc1.bff -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.095 -// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.8cb -// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.1b8 -// CHECK:STDOUT: %.loc137_5.4 => constants.%.51b -// CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Op.b9c47d.12 -// CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Op.b9c47d.12 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.2bb -// CHECK:STDOUT: %.loc137_5.5 => constants.%.dda -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.3 -// CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int64.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int64.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.b9a +// CHECK:STDOUT: %assoc1 => constants.%assoc1.2cf +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.bb4 +// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.8da +// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.85b +// CHECK:STDOUT: %.loc137_5.4 => constants.%.db9 +// CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Int32.Op.4dca31.3 +// CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Int32.Op.4dca31.3 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b76 +// CHECK:STDOUT: %.loc137_5.5 => constants.%.043 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.2 +// CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int32.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.3de, constants.%Destroy.facet.d87, constants.%facet_value.3ed) { -// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.3de -// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%Int32 -// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.3ee -// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.299 -// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.1c7 -// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.0cf -// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.ba5 -// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.564 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.6fa -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.5ca -// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.cab -// CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.ac8 -// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.3ed -// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.5de -// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.e9d +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.099, constants.%Destroy.facet.2cc, constants.%facet_value.0f9) { +// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.2cc +// CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%Int16 +// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.c18 +// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.a64 +// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.c25 +// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.4d3 +// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.354 +// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.f15 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.f8b +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.e32 +// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.472 +// CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int32 +// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.163 +// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.0f9 +// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.59d +// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%Int32 +// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.785 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc146_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.6e9 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.00d -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.f6e -// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.e61 -// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.d31 -// CHECK:STDOUT: %.loc148_5.4 => constants.%.2e4 -// CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Op.b9c47d.13 -// CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Op.b9c47d.13 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.2bb -// CHECK:STDOUT: %.loc148_5.5 => constants.%.dda -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.3 -// CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int64.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int64.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.433 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.eb5 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.0ab +// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.920 +// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.545 +// CHECK:STDOUT: %.loc148_5.4 => constants.%.c5e +// CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Int32.Op.4dca31.4 +// CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Int32.Op.4dca31.4 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b76 +// CHECK:STDOUT: %.loc148_5.5 => constants.%.043 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.2 +// CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int32.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.3de, constants.%Destroy.facet.d87, constants.%facet_value.4d6) { -// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.3de -// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%Int32 -// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.09b -// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.c6e -// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.988 -// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.36c -// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.f38 -// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.a72 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.d0a -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.c00 -// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.7a0 -// CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.b8e -// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.4d6 -// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.435 -// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.e9d +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.099, constants.%Destroy.facet.2cc, constants.%facet_value.53b) { +// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.2cc +// CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%Int16 +// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.6f9 +// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.0b4 +// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.927 +// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.acc +// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.87a +// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.333 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.962 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.ac4 +// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.6aa +// CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int32 +// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.f1f +// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.53b +// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.c6c +// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int32 +// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.785 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc157_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.627 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.489 -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.4e5 -// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.b24 -// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.58d -// CHECK:STDOUT: %.loc159_5.4 => constants.%.f2d -// CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Op.b9c47d.14 -// CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Op.b9c47d.14 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.2bb -// CHECK:STDOUT: %.loc159_5.5 => constants.%.dda -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.3 -// CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int64.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int64.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.64f +// CHECK:STDOUT: %assoc1 => constants.%assoc1.8b5 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.3ec +// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.c79 +// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.a6b +// CHECK:STDOUT: %.loc159_5.4 => constants.%.558 +// CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Int32.Op.4dca31.5 +// CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Int32.Op.4dca31.5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b76 +// CHECK:STDOUT: %.loc159_5.5 => constants.%.043 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.2 +// CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int32.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.3de, constants.%Destroy.facet.d87, constants.%facet_value.8fa) { -// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.3de -// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.d87 -// CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int32 -// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.6f6 -// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.22f -// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.572 -// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.e22 -// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.aac -// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.d09 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.fb6 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.18e -// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.288 -// CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.dbb -// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.8fa -// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.4c3 -// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.e9d +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.099, constants.%Destroy.facet.2cc, constants.%facet_value.b75a) { +// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.2cc +// CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int16 +// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.763 +// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.ee8 +// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.a1e +// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.8fc +// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.1da +// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.e6a +// CHECK:STDOUT: %assoc0 => constants.%assoc0.2cc +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.c0b +// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.dae +// CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int32 +// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.3eb +// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.b75a +// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.205 +// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int32 +// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.785 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc168_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.1cf -// CHECK:STDOUT: %assoc1 => constants.%assoc1.56e -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.99b -// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.4c1 -// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.fb3 -// CHECK:STDOUT: %.loc170_5.4 => constants.%.7b9 -// CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Op.b9c47d.15 -// CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Op.b9c47d.15 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.2bb -// CHECK:STDOUT: %.loc170_5.5 => constants.%.dda -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.3 -// CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int64.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int64.Op.cc70d5.1 +// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.dea +// CHECK:STDOUT: %assoc1 => constants.%assoc1.3dd +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.de0 +// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.bef +// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.d54 +// CHECK:STDOUT: %.loc170_5.4 => constants.%.8c0 +// CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Int32.Op.4dca31.6 +// CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Int32.Op.4dca31.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b76 +// CHECK:STDOUT: %.loc170_5.5 => constants.%.043 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.2 +// CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int32.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddAssignWith.loc225(constants.%U.67d, constants.%T.c9e) { +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.099, constants.%Destroy.facet.099, constants.%facet_value.8ac) { +// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%Int32 +// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.c71 +// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.698 +// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.1bc +// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.224 +// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.cbd +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.72d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c2b +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.d80 +// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.899 +// CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int32 +// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.cf0 +// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.8ac +// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.44d +// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%Int32 +// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.8b4 +// CHECK:STDOUT: +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: %require_complete.loc124_16 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc124_27 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.2cc +// CHECK:STDOUT: %assoc1 => constants.%assoc1.0fc +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.e02e0c.2 +// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.ee1 +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.5a5 +// CHECK:STDOUT: %.loc126_5.4 => constants.%.dcb +// CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Int32.Op.4dca31.7 +// CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Int32.Op.4dca31.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b76 +// CHECK:STDOUT: %.loc126_5.5 => constants.%.043 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.2 +// CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.099, constants.%Destroy.facet.099, constants.%facet_value.e83) { +// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%Int32 +// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.c81 +// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.44e +// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.4d7 +// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.63f +// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.07c +// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.68f +// CHECK:STDOUT: %assoc0 => constants.%assoc0.f11 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.566 +// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.ee1 +// CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int32 +// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.0f8 +// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.e83 +// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.9624 +// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%Int32 +// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.8b4 +// CHECK:STDOUT: +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: %require_complete.loc135_16 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc135_27 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.cf9 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.799 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.4dea15.2 +// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.3dd +// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.ccc +// CHECK:STDOUT: %.loc137_5.4 => constants.%.237 +// CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Int32.Op.4dca31.8 +// CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Int32.Op.4dca31.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b76 +// CHECK:STDOUT: %.loc137_5.5 => constants.%.043 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.2 +// CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.099, constants.%Destroy.facet.099, constants.%facet_value.4a1) { +// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%Int32 +// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.eeb +// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.ff6 +// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.a5b +// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.3fe +// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.646 +// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.083 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.fc0 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.a28 +// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.d19 +// CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int32 +// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.cf6 +// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.4a1 +// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.08b +// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%Int32 +// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.8b4 +// CHECK:STDOUT: +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: %require_complete.loc146_16 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc146_27 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.e76 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.019 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.337c88.2 +// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.4d3 +// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.843 +// CHECK:STDOUT: %.loc148_5.4 => constants.%.8c9 +// CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Int32.Op.4dca31.9 +// CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Int32.Op.4dca31.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b76 +// CHECK:STDOUT: %.loc148_5.5 => constants.%.043 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.2 +// CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.099, constants.%Destroy.facet.099, constants.%facet_value.0bb) { +// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%Int32 +// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.fb1 +// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.d41 +// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.d8c +// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.11b +// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.30d +// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.725 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.2da +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.d3c +// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.282 +// CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int32 +// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.639 +// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.0bb +// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.379 +// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int32 +// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.8b4 +// CHECK:STDOUT: +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: %require_complete.loc157_16 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc157_27 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.595 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.580 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.3eb227.2 +// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.4fe +// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.24e +// CHECK:STDOUT: %.loc159_5.4 => constants.%.450 +// CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Int32.Op.4dca31.10 +// CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Int32.Op.4dca31.10 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b76 +// CHECK:STDOUT: %.loc159_5.5 => constants.%.043 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.2 +// CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.099, constants.%Destroy.facet.099, constants.%facet_value.081) { +// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int32 +// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.253 +// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.ea8 +// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.46e +// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.2aa +// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.7e4 +// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.47d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.45c +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.b37 +// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.32c +// CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int32 +// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.cac +// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.081 +// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.e4f +// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int32 +// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.8b4 +// CHECK:STDOUT: +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: %require_complete.loc168_16 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc168_27 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.80f +// CHECK:STDOUT: %assoc1 => constants.%assoc1.878 +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.501c6d.2 +// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.60c +// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.bed +// CHECK:STDOUT: %.loc170_5.4 => constants.%.382 +// CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Int32.Op.4dca31.11 +// CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Int32.Op.4dca31.11 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b76 +// CHECK:STDOUT: %.loc170_5.5 => constants.%.043 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.2 +// CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.191, constants.%Destroy.facet.191, constants.%facet_value.aa8) { +// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.191 +// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.191 +// CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%Int64 +// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.b5b +// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.afd1 +// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.52f +// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.412 +// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.7a8 +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.0c5 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.947 +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.dd9 +// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.325 +// CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int64 +// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.466 +// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.aa8 +// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.a1a +// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.4aa +// CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%Int32 +// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.4aa +// CHECK:STDOUT: +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: %require_complete.loc124_16 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc124_27 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.d6f +// CHECK:STDOUT: %assoc1 => constants.%assoc1.18c +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.68d +// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.45c +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.6ad +// CHECK:STDOUT: %.loc126_5.4 => constants.%.b22 +// CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Op.72717c.6 +// CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Op.72717c.6 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.c2c +// CHECK:STDOUT: %.loc126_5.5 => constants.%.c2e +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.3 +// CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.191, constants.%Destroy.facet.191, constants.%facet_value.f7c) { +// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.191 +// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.191 +// CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%Int64 +// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.a46 +// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.502 +// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.26a +// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.181 +// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.5b8 +// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.e16 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.88a +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.61b +// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.80a +// CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int64 +// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.b42 +// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.f7c +// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.84a +// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.4aa +// CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%Int32 +// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.4aa +// CHECK:STDOUT: +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: %require_complete.loc135_16 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc135_27 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.b50 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.3b1 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.1fa +// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.3c0 +// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.bdd +// CHECK:STDOUT: %.loc137_5.4 => constants.%.c3d +// CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Op.72717c.7 +// CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Op.72717c.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.c2c +// CHECK:STDOUT: %.loc137_5.5 => constants.%.c2e +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.3 +// CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.191, constants.%Destroy.facet.191, constants.%facet_value.4d0) { +// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.191 +// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.191 +// CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%Int64 +// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.76f +// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.770 +// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.700 +// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.16e +// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.356 +// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.a37 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.210 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.6cf +// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.aad +// CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int64 +// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.5ef +// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.4d0 +// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.1fe +// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.4aa +// CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%Int32 +// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.4aa +// CHECK:STDOUT: +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: %require_complete.loc146_16 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc146_27 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.77d +// CHECK:STDOUT: %assoc1 => constants.%assoc1.cd1 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.99d +// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.dbd +// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.cc8 +// CHECK:STDOUT: %.loc148_5.4 => constants.%.921 +// CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Op.72717c.8 +// CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Op.72717c.8 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.c2c +// CHECK:STDOUT: %.loc148_5.5 => constants.%.c2e +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.3 +// CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.191, constants.%Destroy.facet.191, constants.%facet_value.7d4) { +// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.191 +// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.191 +// CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%Int64 +// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.095 +// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.c98 +// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.837 +// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.621 +// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.6a2 +// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.8a4 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.982 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.7a8 +// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.a9d +// CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int64 +// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.be3 +// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.7d4 +// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.2d9 +// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.4aa +// CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int32 +// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.4aa +// CHECK:STDOUT: +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: %require_complete.loc157_16 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc157_27 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.f76 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.c76 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.a8f +// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.91e +// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.dd6 +// CHECK:STDOUT: %.loc159_5.4 => constants.%.26f +// CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Op.72717c.9 +// CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Op.72717c.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.c2c +// CHECK:STDOUT: %.loc159_5.5 => constants.%.c2e +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.3 +// CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.191, constants.%Destroy.facet.191, constants.%facet_value.774) { +// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.191 +// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.191 +// CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int64 +// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.204 +// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.f26 +// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.767 +// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.359 +// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.1a7 +// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.1f7 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.0a6 +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.e0f +// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.5f0 +// CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int64 +// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.74d +// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.774 +// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.41c +// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.4aa +// CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int32 +// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.4aa +// CHECK:STDOUT: +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: %require_complete.loc168_16 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc168_27 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.9d2 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.ee5 +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.972 +// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.c38 +// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.663 +// CHECK:STDOUT: %.loc170_5.4 => constants.%.ed0 +// CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Op.72717c.10 +// CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Op.72717c.10 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.c2c +// CHECK:STDOUT: %.loc170_5.5 => constants.%.c2e +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.3 +// CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.191, constants.%Destroy.facet.099, constants.%facet_value.7d0) { +// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.191 +// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%Int32 +// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.c71 +// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.698 +// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.1bc +// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.224 +// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.cbd +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.72d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c2b +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.d80 +// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.899 +// CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int64 +// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.fdd +// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.7d0 +// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.5b4 +// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.4aa +// CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%Int64 +// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.4aa +// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.8b4 +// CHECK:STDOUT: +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: %require_complete.loc124_16 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc124_27 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.2cc +// CHECK:STDOUT: %assoc1 => constants.%assoc1.0fc +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.98f +// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.3de +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.1c0 +// CHECK:STDOUT: %.loc126_5.4 => constants.%.df7 +// CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Op.72717c.11 +// CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Op.72717c.11 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.c2c +// CHECK:STDOUT: %.loc126_5.5 => constants.%.c2e +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.3 +// CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.191, constants.%Destroy.facet.099, constants.%facet_value.51b) { +// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.191 +// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%Int32 +// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.c81 +// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.44e +// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.4d7 +// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.63f +// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.07c +// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.68f +// CHECK:STDOUT: %assoc0 => constants.%assoc0.f11 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.566 +// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.ee1 +// CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int64 +// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.2c4 +// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.51b +// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.515 +// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.4aa +// CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%Int64 +// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.4aa +// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.8b4 +// CHECK:STDOUT: +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: %require_complete.loc135_16 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc135_27 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.cf9 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.799 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.5c3 +// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.320 +// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.8fd +// CHECK:STDOUT: %.loc137_5.4 => constants.%.ad9 +// CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Op.72717c.12 +// CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Op.72717c.12 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.c2c +// CHECK:STDOUT: %.loc137_5.5 => constants.%.c2e +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.3 +// CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.191, constants.%Destroy.facet.099, constants.%facet_value.738) { +// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.191 +// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%Int32 +// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.eeb +// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.ff6 +// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.a5b +// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.3fe +// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.646 +// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.083 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.fc0 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.a28 +// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.d19 +// CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int64 +// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.99c +// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.738 +// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.bb6 +// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.4aa +// CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%Int64 +// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.4aa +// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.8b4 +// CHECK:STDOUT: +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: %require_complete.loc146_16 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc146_27 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.e76 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.019 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.ac0 +// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.d72 +// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.10e +// CHECK:STDOUT: %.loc148_5.4 => constants.%.be6 +// CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Op.72717c.13 +// CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Op.72717c.13 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.c2c +// CHECK:STDOUT: %.loc148_5.5 => constants.%.c2e +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.3 +// CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.191, constants.%Destroy.facet.099, constants.%facet_value.c2b) { +// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.191 +// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%Int32 +// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.fb1 +// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.d41 +// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.d8c +// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.11b +// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.30d +// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.725 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.2da +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.d3c +// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.282 +// CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int64 +// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.7ce +// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.c2b +// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.59a +// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.4aa +// CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int64 +// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.4aa +// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.8b4 +// CHECK:STDOUT: +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: %require_complete.loc157_16 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc157_27 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.595 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.580 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.c98 +// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.4d9 +// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.354 +// CHECK:STDOUT: %.loc159_5.4 => constants.%.436 +// CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Op.72717c.14 +// CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Op.72717c.14 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.c2c +// CHECK:STDOUT: %.loc159_5.5 => constants.%.c2e +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.3 +// CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.191, constants.%Destroy.facet.099, constants.%facet_value.606) { +// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.191 +// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.099 +// CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int32 +// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.253 +// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.ea8 +// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.46e +// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.2aa +// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.7e4 +// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.47d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.45c +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.b37 +// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.32c +// CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int64 +// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.c2e +// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.606 +// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.af40 +// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.4aa +// CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int64 +// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.4aa +// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.8b4 +// CHECK:STDOUT: +// CHECK:STDOUT: !definition: +// CHECK:STDOUT: %require_complete.loc168_16 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc168_27 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.80f +// CHECK:STDOUT: %assoc1 => constants.%assoc1.878 +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.e66 +// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.ca3 +// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.dcc +// CHECK:STDOUT: %.loc170_5.4 => constants.%.66e6 +// CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Op.72717c.15 +// CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Op.72717c.15 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.c2c +// CHECK:STDOUT: %.loc170_5.5 => constants.%.c2e +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.3 +// CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: specific @AddAssignWith.loc225(constants.%U.67d, constants.%T.792) { // CHECK:STDOUT: %U.loc225_19.1 => constants.%U.67d -// CHECK:STDOUT: %AddAssignWith.type.loc225_52.1 => constants.%AddAssignWith.type.f7e94b.2 -// CHECK:STDOUT: %T.loc225_29.1 => constants.%T.c9e -// CHECK:STDOUT: %pattern_type.loc225_29 => constants.%pattern_type.323 -// CHECK:STDOUT: %T.as_type.loc225_62.1 => constants.%T.as_type.82b -// CHECK:STDOUT: %pattern_type.loc225_60 => constants.%pattern_type.d713dc.2 +// CHECK:STDOUT: %AddAssignWith.type.loc225_52.1 => constants.%AddAssignWith.type.2c8890.2 +// CHECK:STDOUT: %T.loc225_29.1 => constants.%T.792 +// CHECK:STDOUT: %pattern_type.loc225_29 => constants.%pattern_type.82d +// CHECK:STDOUT: %T.as_type.loc225_62.1 => constants.%T.as_type.50c +// CHECK:STDOUT: %pattern_type.loc225_60 => constants.%pattern_type.643306.2 // CHECK:STDOUT: %pattern_type.loc225_66 => constants.%pattern_type.51d1c4.4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubAssignWith.loc231(constants.%U.67d, constants.%T.a96) { +// CHECK:STDOUT: specific @SubAssignWith.loc231(constants.%U.67d, constants.%T.f6c) { // CHECK:STDOUT: %U.loc231_19.1 => constants.%U.67d -// CHECK:STDOUT: %SubAssignWith.type.loc231_52.1 => constants.%SubAssignWith.type.591a5f.2 -// CHECK:STDOUT: %T.loc231_29.1 => constants.%T.a96 -// CHECK:STDOUT: %pattern_type.loc231_29 => constants.%pattern_type.46c -// CHECK:STDOUT: %T.as_type.loc231_62.1 => constants.%T.as_type.765 -// CHECK:STDOUT: %pattern_type.loc231_60 => constants.%pattern_type.f40fa3.2 +// CHECK:STDOUT: %SubAssignWith.type.loc231_52.1 => constants.%SubAssignWith.type.7e53cf.2 +// CHECK:STDOUT: %T.loc231_29.1 => constants.%T.f6c +// CHECK:STDOUT: %pattern_type.loc231_29 => constants.%pattern_type.260 +// CHECK:STDOUT: %T.as_type.loc231_62.1 => constants.%T.as_type.3ff +// CHECK:STDOUT: %pattern_type.loc231_60 => constants.%pattern_type.f08ed5.2 // CHECK:STDOUT: %pattern_type.loc231_66 => constants.%pattern_type.51d1c4.4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulAssignWith.loc237(constants.%U.67d, constants.%T.1ab) { +// CHECK:STDOUT: specific @MulAssignWith.loc237(constants.%U.67d, constants.%T.64d) { // CHECK:STDOUT: %U.loc237_19.1 => constants.%U.67d -// CHECK:STDOUT: %MulAssignWith.type.loc237_52.1 => constants.%MulAssignWith.type.b9aa5c.2 -// CHECK:STDOUT: %T.loc237_29.1 => constants.%T.1ab -// CHECK:STDOUT: %pattern_type.loc237_29 => constants.%pattern_type.a30 -// CHECK:STDOUT: %T.as_type.loc237_62.1 => constants.%T.as_type.e75 -// CHECK:STDOUT: %pattern_type.loc237_60 => constants.%pattern_type.07a4e0.2 +// CHECK:STDOUT: %MulAssignWith.type.loc237_52.1 => constants.%MulAssignWith.type.3a0e4d.2 +// CHECK:STDOUT: %T.loc237_29.1 => constants.%T.64d +// CHECK:STDOUT: %pattern_type.loc237_29 => constants.%pattern_type.8c2 +// CHECK:STDOUT: %T.as_type.loc237_62.1 => constants.%T.as_type.1de +// CHECK:STDOUT: %pattern_type.loc237_60 => constants.%pattern_type.8bf366.2 // CHECK:STDOUT: %pattern_type.loc237_66 => constants.%pattern_type.51d1c4.4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivAssignWith.loc243(constants.%U.67d, constants.%T.439) { +// CHECK:STDOUT: specific @DivAssignWith.loc243(constants.%U.67d, constants.%T.c33) { // CHECK:STDOUT: %U.loc243_19.1 => constants.%U.67d -// CHECK:STDOUT: %DivAssignWith.type.loc243_52.1 => constants.%DivAssignWith.type.c97ac9.2 -// CHECK:STDOUT: %T.loc243_29.1 => constants.%T.439 -// CHECK:STDOUT: %pattern_type.loc243_29 => constants.%pattern_type.fa6 -// CHECK:STDOUT: %T.as_type.loc243_62.1 => constants.%T.as_type.5d7 -// CHECK:STDOUT: %pattern_type.loc243_60 => constants.%pattern_type.12d907.2 +// CHECK:STDOUT: %DivAssignWith.type.loc243_52.1 => constants.%DivAssignWith.type.7e58ca.2 +// CHECK:STDOUT: %T.loc243_29.1 => constants.%T.c33 +// CHECK:STDOUT: %pattern_type.loc243_29 => constants.%pattern_type.f74 +// CHECK:STDOUT: %T.as_type.loc243_62.1 => constants.%T.as_type.e57 +// CHECK:STDOUT: %pattern_type.loc243_60 => constants.%pattern_type.da303b.2 // CHECK:STDOUT: %pattern_type.loc243_66 => constants.%pattern_type.51d1c4.4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModAssignWith.loc249(constants.%U.67d, constants.%T.da0) { +// CHECK:STDOUT: specific @ModAssignWith.loc249(constants.%U.67d, constants.%T.bca) { // CHECK:STDOUT: %U.loc249_19.1 => constants.%U.67d -// CHECK:STDOUT: %ModAssignWith.type.loc249_52.1 => constants.%ModAssignWith.type.8faa47.2 -// CHECK:STDOUT: %T.loc249_29.1 => constants.%T.da0 -// CHECK:STDOUT: %pattern_type.loc249_29 => constants.%pattern_type.383 -// CHECK:STDOUT: %T.as_type.loc249_62.1 => constants.%T.as_type.4cb -// CHECK:STDOUT: %pattern_type.loc249_60 => constants.%pattern_type.7b701e.2 +// CHECK:STDOUT: %ModAssignWith.type.loc249_52.1 => constants.%ModAssignWith.type.778d68.2 +// CHECK:STDOUT: %T.loc249_29.1 => constants.%T.bca +// CHECK:STDOUT: %pattern_type.loc249_29 => constants.%pattern_type.fb8 +// CHECK:STDOUT: %T.as_type.loc249_62.1 => constants.%T.as_type.ce6 +// CHECK:STDOUT: %pattern_type.loc249_60 => constants.%pattern_type.1d5f30.2 // CHECK:STDOUT: %pattern_type.loc249_66 => constants.%pattern_type.51d1c4.4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddAssignWith.loc225(constants.%i16, constants.%AddAssignWith.facet.1b3) { +// CHECK:STDOUT: specific @AddAssignWith.loc225(constants.%i16, constants.%AddAssignWith.facet.e34) { // CHECK:STDOUT: %U.loc225_19.1 => constants.%i16 -// CHECK:STDOUT: %AddAssignWith.type.loc225_52.1 => constants.%AddAssignWith.type.35f -// CHECK:STDOUT: %T.loc225_29.1 => constants.%AddAssignWith.facet.1b3 -// CHECK:STDOUT: %pattern_type.loc225_29 => constants.%pattern_type.25b +// CHECK:STDOUT: %AddAssignWith.type.loc225_52.1 => constants.%AddAssignWith.type.2a0 +// CHECK:STDOUT: %T.loc225_29.1 => constants.%AddAssignWith.facet.e34 +// CHECK:STDOUT: %pattern_type.loc225_29 => constants.%pattern_type.b256 // CHECK:STDOUT: %T.as_type.loc225_62.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc225_60 => constants.%pattern_type.802 -// CHECK:STDOUT: %pattern_type.loc225_66 => constants.%pattern_type.e1b +// CHECK:STDOUT: %pattern_type.loc225_60 => constants.%pattern_type.785 +// CHECK:STDOUT: %pattern_type.loc225_66 => constants.%pattern_type.203 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc225_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc225_66 => constants.%complete_type.2da -// CHECK:STDOUT: %require_complete.loc227 => constants.%complete_type.f45 -// CHECK:STDOUT: %AddAssignWith.assoc_type => constants.%AddAssignWith.assoc_type.3c9 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.d69 -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type => constants.%AddAssignWith.WithSelf.Op.type.f5d -// CHECK:STDOUT: %.loc227_5.2 => constants.%.c71 -// CHECK:STDOUT: %AddAssignWith.lookup_impl_witness => constants.%custom_witness.364 -// CHECK:STDOUT: %impl.elem0.loc227_5.2 => constants.%Int16.Op.cc70d5.13 -// CHECK:STDOUT: %specific_impl_fn.loc227_5.2 => constants.%Int16.Op.cc70d5.13 +// CHECK:STDOUT: %require_complete.loc227 => constants.%complete_type.a21 +// CHECK:STDOUT: %AddAssignWith.assoc_type => constants.%AddAssignWith.assoc_type.1bb +// CHECK:STDOUT: %assoc0 => constants.%assoc0.24b +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type => constants.%AddAssignWith.WithSelf.Op.type.eb5 +// CHECK:STDOUT: %.loc227_5.2 => constants.%.063 +// CHECK:STDOUT: %AddAssignWith.lookup_impl_witness => constants.%custom_witness.6a0 +// CHECK:STDOUT: %impl.elem0.loc227_5.2 => constants.%Int16.Op.4dca31.13 +// CHECK:STDOUT: %specific_impl_fn.loc227_5.2 => constants.%Int16.Op.4dca31.13 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubAssignWith.loc231(constants.%i16, constants.%SubAssignWith.facet.45a) { +// CHECK:STDOUT: specific @SubAssignWith.loc231(constants.%i16, constants.%SubAssignWith.facet.a52) { // CHECK:STDOUT: %U.loc231_19.1 => constants.%i16 -// CHECK:STDOUT: %SubAssignWith.type.loc231_52.1 => constants.%SubAssignWith.type.121 -// CHECK:STDOUT: %T.loc231_29.1 => constants.%SubAssignWith.facet.45a -// CHECK:STDOUT: %pattern_type.loc231_29 => constants.%pattern_type.1c3 +// CHECK:STDOUT: %SubAssignWith.type.loc231_52.1 => constants.%SubAssignWith.type.e8b +// CHECK:STDOUT: %T.loc231_29.1 => constants.%SubAssignWith.facet.a52 +// CHECK:STDOUT: %pattern_type.loc231_29 => constants.%pattern_type.c22 // CHECK:STDOUT: %T.as_type.loc231_62.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc231_60 => constants.%pattern_type.802 -// CHECK:STDOUT: %pattern_type.loc231_66 => constants.%pattern_type.e1b +// CHECK:STDOUT: %pattern_type.loc231_60 => constants.%pattern_type.785 +// CHECK:STDOUT: %pattern_type.loc231_66 => constants.%pattern_type.203 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc231_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc231_66 => constants.%complete_type.2da -// CHECK:STDOUT: %require_complete.loc233 => constants.%complete_type.c74 -// CHECK:STDOUT: %SubAssignWith.assoc_type => constants.%SubAssignWith.assoc_type.5f8 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.ce1 -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type => constants.%SubAssignWith.WithSelf.Op.type.224 -// CHECK:STDOUT: %.loc233_5.2 => constants.%.9c3 -// CHECK:STDOUT: %SubAssignWith.lookup_impl_witness => constants.%custom_witness.4e8 -// CHECK:STDOUT: %impl.elem0.loc233_5.2 => constants.%Int16.Op.cc70d5.14 -// CHECK:STDOUT: %specific_impl_fn.loc233_5.2 => constants.%Int16.Op.cc70d5.14 +// CHECK:STDOUT: %require_complete.loc233 => constants.%complete_type.002 +// CHECK:STDOUT: %SubAssignWith.assoc_type => constants.%SubAssignWith.assoc_type.e13 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.47c +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type => constants.%SubAssignWith.WithSelf.Op.type.163 +// CHECK:STDOUT: %.loc233_5.2 => constants.%.dc4 +// CHECK:STDOUT: %SubAssignWith.lookup_impl_witness => constants.%custom_witness.722 +// CHECK:STDOUT: %impl.elem0.loc233_5.2 => constants.%Int16.Op.4dca31.14 +// CHECK:STDOUT: %specific_impl_fn.loc233_5.2 => constants.%Int16.Op.4dca31.14 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulAssignWith.loc237(constants.%i16, constants.%MulAssignWith.facet.805) { +// CHECK:STDOUT: specific @MulAssignWith.loc237(constants.%i16, constants.%MulAssignWith.facet.201) { // CHECK:STDOUT: %U.loc237_19.1 => constants.%i16 -// CHECK:STDOUT: %MulAssignWith.type.loc237_52.1 => constants.%MulAssignWith.type.b7e -// CHECK:STDOUT: %T.loc237_29.1 => constants.%MulAssignWith.facet.805 -// CHECK:STDOUT: %pattern_type.loc237_29 => constants.%pattern_type.ebd +// CHECK:STDOUT: %MulAssignWith.type.loc237_52.1 => constants.%MulAssignWith.type.7d4 +// CHECK:STDOUT: %T.loc237_29.1 => constants.%MulAssignWith.facet.201 +// CHECK:STDOUT: %pattern_type.loc237_29 => constants.%pattern_type.a24 // CHECK:STDOUT: %T.as_type.loc237_62.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc237_60 => constants.%pattern_type.802 -// CHECK:STDOUT: %pattern_type.loc237_66 => constants.%pattern_type.e1b +// CHECK:STDOUT: %pattern_type.loc237_60 => constants.%pattern_type.785 +// CHECK:STDOUT: %pattern_type.loc237_66 => constants.%pattern_type.203 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc237_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc237_66 => constants.%complete_type.2da -// CHECK:STDOUT: %require_complete.loc239 => constants.%complete_type.f93 -// CHECK:STDOUT: %MulAssignWith.assoc_type => constants.%MulAssignWith.assoc_type.551 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.75e -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type => constants.%MulAssignWith.WithSelf.Op.type.354 -// CHECK:STDOUT: %.loc239_5.2 => constants.%.cbb -// CHECK:STDOUT: %MulAssignWith.lookup_impl_witness => constants.%custom_witness.b74 -// CHECK:STDOUT: %impl.elem0.loc239_5.2 => constants.%Int16.Op.cc70d5.15 -// CHECK:STDOUT: %specific_impl_fn.loc239_5.2 => constants.%Int16.Op.cc70d5.15 +// CHECK:STDOUT: %require_complete.loc239 => constants.%complete_type.60a +// CHECK:STDOUT: %MulAssignWith.assoc_type => constants.%MulAssignWith.assoc_type.aa8 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.137 +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type => constants.%MulAssignWith.WithSelf.Op.type.170 +// CHECK:STDOUT: %.loc239_5.2 => constants.%.69d +// CHECK:STDOUT: %MulAssignWith.lookup_impl_witness => constants.%custom_witness.c67 +// CHECK:STDOUT: %impl.elem0.loc239_5.2 => constants.%Int16.Op.4dca31.15 +// CHECK:STDOUT: %specific_impl_fn.loc239_5.2 => constants.%Int16.Op.4dca31.15 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivAssignWith.loc243(constants.%i16, constants.%DivAssignWith.facet.ac9) { +// CHECK:STDOUT: specific @DivAssignWith.loc243(constants.%i16, constants.%DivAssignWith.facet.a72) { // CHECK:STDOUT: %U.loc243_19.1 => constants.%i16 -// CHECK:STDOUT: %DivAssignWith.type.loc243_52.1 => constants.%DivAssignWith.type.0d6 -// CHECK:STDOUT: %T.loc243_29.1 => constants.%DivAssignWith.facet.ac9 -// CHECK:STDOUT: %pattern_type.loc243_29 => constants.%pattern_type.1f58 +// CHECK:STDOUT: %DivAssignWith.type.loc243_52.1 => constants.%DivAssignWith.type.081 +// CHECK:STDOUT: %T.loc243_29.1 => constants.%DivAssignWith.facet.a72 +// CHECK:STDOUT: %pattern_type.loc243_29 => constants.%pattern_type.c97 // CHECK:STDOUT: %T.as_type.loc243_62.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc243_60 => constants.%pattern_type.802 -// CHECK:STDOUT: %pattern_type.loc243_66 => constants.%pattern_type.e1b +// CHECK:STDOUT: %pattern_type.loc243_60 => constants.%pattern_type.785 +// CHECK:STDOUT: %pattern_type.loc243_66 => constants.%pattern_type.203 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc243_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc243_66 => constants.%complete_type.2da -// CHECK:STDOUT: %require_complete.loc245 => constants.%complete_type.913 -// CHECK:STDOUT: %DivAssignWith.assoc_type => constants.%DivAssignWith.assoc_type.01d -// CHECK:STDOUT: %assoc0 => constants.%assoc0.f56 -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type => constants.%DivAssignWith.WithSelf.Op.type.510 -// CHECK:STDOUT: %.loc245_5.2 => constants.%.b82 -// CHECK:STDOUT: %DivAssignWith.lookup_impl_witness => constants.%custom_witness.8b6 -// CHECK:STDOUT: %impl.elem0.loc245_5.2 => constants.%Int16.Op.cc70d5.16 -// CHECK:STDOUT: %specific_impl_fn.loc245_5.2 => constants.%Int16.Op.cc70d5.16 +// CHECK:STDOUT: %require_complete.loc245 => constants.%complete_type.531 +// CHECK:STDOUT: %DivAssignWith.assoc_type => constants.%DivAssignWith.assoc_type.791 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.a3b +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type => constants.%DivAssignWith.WithSelf.Op.type.d5b +// CHECK:STDOUT: %.loc245_5.2 => constants.%.8d8 +// CHECK:STDOUT: %DivAssignWith.lookup_impl_witness => constants.%custom_witness.91d +// CHECK:STDOUT: %impl.elem0.loc245_5.2 => constants.%Int16.Op.4dca31.16 +// CHECK:STDOUT: %specific_impl_fn.loc245_5.2 => constants.%Int16.Op.4dca31.16 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModAssignWith.loc249(constants.%i16, constants.%ModAssignWith.facet.350) { +// CHECK:STDOUT: specific @ModAssignWith.loc249(constants.%i16, constants.%ModAssignWith.facet.4a2) { // CHECK:STDOUT: %U.loc249_19.1 => constants.%i16 -// CHECK:STDOUT: %ModAssignWith.type.loc249_52.1 => constants.%ModAssignWith.type.d0f -// CHECK:STDOUT: %T.loc249_29.1 => constants.%ModAssignWith.facet.350 -// CHECK:STDOUT: %pattern_type.loc249_29 => constants.%pattern_type.e7a +// CHECK:STDOUT: %ModAssignWith.type.loc249_52.1 => constants.%ModAssignWith.type.1ea +// CHECK:STDOUT: %T.loc249_29.1 => constants.%ModAssignWith.facet.4a2 +// CHECK:STDOUT: %pattern_type.loc249_29 => constants.%pattern_type.6ef // CHECK:STDOUT: %T.as_type.loc249_62.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc249_60 => constants.%pattern_type.802 -// CHECK:STDOUT: %pattern_type.loc249_66 => constants.%pattern_type.e1b +// CHECK:STDOUT: %pattern_type.loc249_60 => constants.%pattern_type.785 +// CHECK:STDOUT: %pattern_type.loc249_66 => constants.%pattern_type.203 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc249_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc249_66 => constants.%complete_type.2da -// CHECK:STDOUT: %require_complete.loc251 => constants.%complete_type.597 -// CHECK:STDOUT: %ModAssignWith.assoc_type => constants.%ModAssignWith.assoc_type.9c3 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.e07 -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type => constants.%ModAssignWith.WithSelf.Op.type.ad4 -// CHECK:STDOUT: %.loc251_5.2 => constants.%.003 -// CHECK:STDOUT: %ModAssignWith.lookup_impl_witness => constants.%custom_witness.e6d -// CHECK:STDOUT: %impl.elem0.loc251_5.2 => constants.%Int16.Op.cc70d5.17 -// CHECK:STDOUT: %specific_impl_fn.loc251_5.2 => constants.%Int16.Op.cc70d5.17 +// CHECK:STDOUT: %require_complete.loc251 => constants.%complete_type.450 +// CHECK:STDOUT: %ModAssignWith.assoc_type => constants.%ModAssignWith.assoc_type.91d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.b7f +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type => constants.%ModAssignWith.WithSelf.Op.type.374 +// CHECK:STDOUT: %.loc251_5.2 => constants.%.eca +// CHECK:STDOUT: %ModAssignWith.lookup_impl_witness => constants.%custom_witness.17b +// CHECK:STDOUT: %impl.elem0.loc251_5.2 => constants.%Int16.Op.4dca31.17 +// CHECK:STDOUT: %specific_impl_fn.loc251_5.2 => constants.%Int16.Op.4dca31.17 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddAssignWith.loc225(constants.%Int32, constants.%AddAssignWith.facet.610) { +// CHECK:STDOUT: specific @AddAssignWith.loc225(constants.%Int32, constants.%AddAssignWith.facet.348) { // CHECK:STDOUT: %U.loc225_19.1 => constants.%Int32 -// CHECK:STDOUT: %AddAssignWith.type.loc225_52.1 => constants.%AddAssignWith.type.3e8 -// CHECK:STDOUT: %T.loc225_29.1 => constants.%AddAssignWith.facet.610 -// CHECK:STDOUT: %pattern_type.loc225_29 => constants.%pattern_type.ae6 +// CHECK:STDOUT: %AddAssignWith.type.loc225_52.1 => constants.%AddAssignWith.type.23a +// CHECK:STDOUT: %T.loc225_29.1 => constants.%AddAssignWith.facet.348 +// CHECK:STDOUT: %pattern_type.loc225_29 => constants.%pattern_type.5ad // CHECK:STDOUT: %T.as_type.loc225_62.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc225_60 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc225_66 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc225_60 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc225_66 => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc225_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc225_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc227 => constants.%complete_type.d4d -// CHECK:STDOUT: %AddAssignWith.assoc_type => constants.%AddAssignWith.assoc_type.115 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.8b4 -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type => constants.%AddAssignWith.WithSelf.Op.type.b28 -// CHECK:STDOUT: %.loc227_5.2 => constants.%.05e -// CHECK:STDOUT: %AddAssignWith.lookup_impl_witness => constants.%custom_witness.ec4e63.1 -// CHECK:STDOUT: %impl.elem0.loc227_5.2 => constants.%Int32.Op.cc70d5.12 -// CHECK:STDOUT: %specific_impl_fn.loc227_5.2 => constants.%Int32.Op.cc70d5.12 +// CHECK:STDOUT: %require_complete.loc227 => constants.%complete_type.e1b +// CHECK:STDOUT: %AddAssignWith.assoc_type => constants.%AddAssignWith.assoc_type.4c7 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.114 +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type => constants.%AddAssignWith.WithSelf.Op.type.96d +// CHECK:STDOUT: %.loc227_5.2 => constants.%.65c +// CHECK:STDOUT: %AddAssignWith.lookup_impl_witness => constants.%custom_witness.ebf67a.1 +// CHECK:STDOUT: %impl.elem0.loc227_5.2 => constants.%Int32.Op.4dca31.12 +// CHECK:STDOUT: %specific_impl_fn.loc227_5.2 => constants.%Int32.Op.4dca31.12 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubAssignWith.loc231(constants.%Int32, constants.%SubAssignWith.facet.fb2) { +// CHECK:STDOUT: specific @SubAssignWith.loc231(constants.%Int32, constants.%SubAssignWith.facet.e0e) { // CHECK:STDOUT: %U.loc231_19.1 => constants.%Int32 -// CHECK:STDOUT: %SubAssignWith.type.loc231_52.1 => constants.%SubAssignWith.type.678 -// CHECK:STDOUT: %T.loc231_29.1 => constants.%SubAssignWith.facet.fb2 -// CHECK:STDOUT: %pattern_type.loc231_29 => constants.%pattern_type.470 +// CHECK:STDOUT: %SubAssignWith.type.loc231_52.1 => constants.%SubAssignWith.type.4fc +// CHECK:STDOUT: %T.loc231_29.1 => constants.%SubAssignWith.facet.e0e +// CHECK:STDOUT: %pattern_type.loc231_29 => constants.%pattern_type.190 // CHECK:STDOUT: %T.as_type.loc231_62.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc231_60 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc231_66 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc231_60 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc231_66 => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc231_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc231_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc233 => constants.%complete_type.838 -// CHECK:STDOUT: %SubAssignWith.assoc_type => constants.%SubAssignWith.assoc_type.53a -// CHECK:STDOUT: %assoc0 => constants.%assoc0.60e -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type => constants.%SubAssignWith.WithSelf.Op.type.7bd -// CHECK:STDOUT: %.loc233_5.2 => constants.%.cd8 -// CHECK:STDOUT: %SubAssignWith.lookup_impl_witness => constants.%custom_witness.75ca2a.1 -// CHECK:STDOUT: %impl.elem0.loc233_5.2 => constants.%Int32.Op.cc70d5.14 -// CHECK:STDOUT: %specific_impl_fn.loc233_5.2 => constants.%Int32.Op.cc70d5.14 +// CHECK:STDOUT: %require_complete.loc233 => constants.%complete_type.1eb +// CHECK:STDOUT: %SubAssignWith.assoc_type => constants.%SubAssignWith.assoc_type.ac6 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c2a +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type => constants.%SubAssignWith.WithSelf.Op.type.6ac +// CHECK:STDOUT: %.loc233_5.2 => constants.%.740 +// CHECK:STDOUT: %SubAssignWith.lookup_impl_witness => constants.%custom_witness.c2b241.1 +// CHECK:STDOUT: %impl.elem0.loc233_5.2 => constants.%Int32.Op.4dca31.14 +// CHECK:STDOUT: %specific_impl_fn.loc233_5.2 => constants.%Int32.Op.4dca31.14 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulAssignWith.loc237(constants.%Int32, constants.%MulAssignWith.facet.8f5) { +// CHECK:STDOUT: specific @MulAssignWith.loc237(constants.%Int32, constants.%MulAssignWith.facet.13c) { // CHECK:STDOUT: %U.loc237_19.1 => constants.%Int32 -// CHECK:STDOUT: %MulAssignWith.type.loc237_52.1 => constants.%MulAssignWith.type.011 -// CHECK:STDOUT: %T.loc237_29.1 => constants.%MulAssignWith.facet.8f5 -// CHECK:STDOUT: %pattern_type.loc237_29 => constants.%pattern_type.c27 +// CHECK:STDOUT: %MulAssignWith.type.loc237_52.1 => constants.%MulAssignWith.type.5fb +// CHECK:STDOUT: %T.loc237_29.1 => constants.%MulAssignWith.facet.13c +// CHECK:STDOUT: %pattern_type.loc237_29 => constants.%pattern_type.f3b // CHECK:STDOUT: %T.as_type.loc237_62.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc237_60 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc237_66 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc237_60 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc237_66 => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc237_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc237_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc239 => constants.%complete_type.908 -// CHECK:STDOUT: %MulAssignWith.assoc_type => constants.%MulAssignWith.assoc_type.f6b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.1a2 -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type => constants.%MulAssignWith.WithSelf.Op.type.9a6 -// CHECK:STDOUT: %.loc239_5.2 => constants.%.300 -// CHECK:STDOUT: %MulAssignWith.lookup_impl_witness => constants.%custom_witness.7d92f3.1 -// CHECK:STDOUT: %impl.elem0.loc239_5.2 => constants.%Int32.Op.cc70d5.15 -// CHECK:STDOUT: %specific_impl_fn.loc239_5.2 => constants.%Int32.Op.cc70d5.15 +// CHECK:STDOUT: %require_complete.loc239 => constants.%complete_type.ef7 +// CHECK:STDOUT: %MulAssignWith.assoc_type => constants.%MulAssignWith.assoc_type.c04 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.2db +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type => constants.%MulAssignWith.WithSelf.Op.type.73c +// CHECK:STDOUT: %.loc239_5.2 => constants.%.a28 +// CHECK:STDOUT: %MulAssignWith.lookup_impl_witness => constants.%custom_witness.ec9760.1 +// CHECK:STDOUT: %impl.elem0.loc239_5.2 => constants.%Int32.Op.4dca31.15 +// CHECK:STDOUT: %specific_impl_fn.loc239_5.2 => constants.%Int32.Op.4dca31.15 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivAssignWith.loc243(constants.%Int32, constants.%DivAssignWith.facet.3bc) { +// CHECK:STDOUT: specific @DivAssignWith.loc243(constants.%Int32, constants.%DivAssignWith.facet.e59) { // CHECK:STDOUT: %U.loc243_19.1 => constants.%Int32 -// CHECK:STDOUT: %DivAssignWith.type.loc243_52.1 => constants.%DivAssignWith.type.487 -// CHECK:STDOUT: %T.loc243_29.1 => constants.%DivAssignWith.facet.3bc -// CHECK:STDOUT: %pattern_type.loc243_29 => constants.%pattern_type.492 +// CHECK:STDOUT: %DivAssignWith.type.loc243_52.1 => constants.%DivAssignWith.type.3ea +// CHECK:STDOUT: %T.loc243_29.1 => constants.%DivAssignWith.facet.e59 +// CHECK:STDOUT: %pattern_type.loc243_29 => constants.%pattern_type.8f3 // CHECK:STDOUT: %T.as_type.loc243_62.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc243_60 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc243_66 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc243_60 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc243_66 => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc243_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc243_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc245 => constants.%complete_type.054 -// CHECK:STDOUT: %DivAssignWith.assoc_type => constants.%DivAssignWith.assoc_type.047 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.cd7 -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type => constants.%DivAssignWith.WithSelf.Op.type.1ec -// CHECK:STDOUT: %.loc245_5.2 => constants.%.d63 -// CHECK:STDOUT: %DivAssignWith.lookup_impl_witness => constants.%custom_witness.cdc44b.1 -// CHECK:STDOUT: %impl.elem0.loc245_5.2 => constants.%Int32.Op.cc70d5.16 -// CHECK:STDOUT: %specific_impl_fn.loc245_5.2 => constants.%Int32.Op.cc70d5.16 +// CHECK:STDOUT: %require_complete.loc245 => constants.%complete_type.502 +// CHECK:STDOUT: %DivAssignWith.assoc_type => constants.%DivAssignWith.assoc_type.ccd +// CHECK:STDOUT: %assoc0 => constants.%assoc0.d23 +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type => constants.%DivAssignWith.WithSelf.Op.type.b74 +// CHECK:STDOUT: %.loc245_5.2 => constants.%.204 +// CHECK:STDOUT: %DivAssignWith.lookup_impl_witness => constants.%custom_witness.9697f7.1 +// CHECK:STDOUT: %impl.elem0.loc245_5.2 => constants.%Int32.Op.4dca31.16 +// CHECK:STDOUT: %specific_impl_fn.loc245_5.2 => constants.%Int32.Op.4dca31.16 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModAssignWith.loc249(constants.%Int32, constants.%ModAssignWith.facet.b73) { +// CHECK:STDOUT: specific @ModAssignWith.loc249(constants.%Int32, constants.%ModAssignWith.facet.dac) { // CHECK:STDOUT: %U.loc249_19.1 => constants.%Int32 -// CHECK:STDOUT: %ModAssignWith.type.loc249_52.1 => constants.%ModAssignWith.type.499 -// CHECK:STDOUT: %T.loc249_29.1 => constants.%ModAssignWith.facet.b73 -// CHECK:STDOUT: %pattern_type.loc249_29 => constants.%pattern_type.f79 +// CHECK:STDOUT: %ModAssignWith.type.loc249_52.1 => constants.%ModAssignWith.type.567 +// CHECK:STDOUT: %T.loc249_29.1 => constants.%ModAssignWith.facet.dac +// CHECK:STDOUT: %pattern_type.loc249_29 => constants.%pattern_type.9ff // CHECK:STDOUT: %T.as_type.loc249_62.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc249_60 => constants.%pattern_type.e9d -// CHECK:STDOUT: %pattern_type.loc249_66 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc249_60 => constants.%pattern_type.8b4 +// CHECK:STDOUT: %pattern_type.loc249_66 => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc249_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc249_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc251 => constants.%complete_type.022 -// CHECK:STDOUT: %ModAssignWith.assoc_type => constants.%ModAssignWith.assoc_type.e0e -// CHECK:STDOUT: %assoc0 => constants.%assoc0.928 -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type => constants.%ModAssignWith.WithSelf.Op.type.1a7 -// CHECK:STDOUT: %.loc251_5.2 => constants.%.029 -// CHECK:STDOUT: %ModAssignWith.lookup_impl_witness => constants.%custom_witness.ec99b7.1 -// CHECK:STDOUT: %impl.elem0.loc251_5.2 => constants.%Int32.Op.cc70d5.17 -// CHECK:STDOUT: %specific_impl_fn.loc251_5.2 => constants.%Int32.Op.cc70d5.17 +// CHECK:STDOUT: %require_complete.loc251 => constants.%complete_type.446 +// CHECK:STDOUT: %ModAssignWith.assoc_type => constants.%ModAssignWith.assoc_type.fc5 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.1c63 +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type => constants.%ModAssignWith.WithSelf.Op.type.16f +// CHECK:STDOUT: %.loc251_5.2 => constants.%.c84 +// CHECK:STDOUT: %ModAssignWith.lookup_impl_witness => constants.%custom_witness.df8f2f.1 +// CHECK:STDOUT: %impl.elem0.loc251_5.2 => constants.%Int32.Op.4dca31.17 +// CHECK:STDOUT: %specific_impl_fn.loc251_5.2 => constants.%Int32.Op.4dca31.17 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddAssignWith.loc225(constants.%Int32, constants.%AddAssignWith.facet.080) { +// CHECK:STDOUT: specific @AddAssignWith.loc225(constants.%Int32, constants.%AddAssignWith.facet.144) { // CHECK:STDOUT: %U.loc225_19.1 => constants.%Int32 -// CHECK:STDOUT: %AddAssignWith.type.loc225_52.1 => constants.%AddAssignWith.type.3e8 -// CHECK:STDOUT: %T.loc225_29.1 => constants.%AddAssignWith.facet.080 -// CHECK:STDOUT: %pattern_type.loc225_29 => constants.%pattern_type.ae6 +// CHECK:STDOUT: %AddAssignWith.type.loc225_52.1 => constants.%AddAssignWith.type.23a +// CHECK:STDOUT: %T.loc225_29.1 => constants.%AddAssignWith.facet.144 +// CHECK:STDOUT: %pattern_type.loc225_29 => constants.%pattern_type.5ad // CHECK:STDOUT: %T.as_type.loc225_62.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc225_60 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %pattern_type.loc225_66 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc225_60 => constants.%pattern_type.4aa +// CHECK:STDOUT: %pattern_type.loc225_66 => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc225_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc225_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc227 => constants.%complete_type.d4d -// CHECK:STDOUT: %AddAssignWith.assoc_type => constants.%AddAssignWith.assoc_type.115 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.8b4 -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type => constants.%AddAssignWith.WithSelf.Op.type.272 -// CHECK:STDOUT: %.loc227_5.2 => constants.%.257 -// CHECK:STDOUT: %AddAssignWith.lookup_impl_witness => constants.%custom_witness.ec4e63.2 -// CHECK:STDOUT: %impl.elem0.loc227_5.2 => constants.%Int64.Op.cc70d5.2 -// CHECK:STDOUT: %specific_impl_fn.loc227_5.2 => constants.%Int64.Op.cc70d5.2 +// CHECK:STDOUT: %require_complete.loc227 => constants.%complete_type.e1b +// CHECK:STDOUT: %AddAssignWith.assoc_type => constants.%AddAssignWith.assoc_type.4c7 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.114 +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type => constants.%AddAssignWith.WithSelf.Op.type.cf5 +// CHECK:STDOUT: %.loc227_5.2 => constants.%.6e0 +// CHECK:STDOUT: %AddAssignWith.lookup_impl_witness => constants.%custom_witness.ebf67a.2 +// CHECK:STDOUT: %impl.elem0.loc227_5.2 => constants.%Int64.Op.4dca31.2 +// CHECK:STDOUT: %specific_impl_fn.loc227_5.2 => constants.%Int64.Op.4dca31.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubAssignWith.loc231(constants.%Int32, constants.%SubAssignWith.facet.8bc) { +// CHECK:STDOUT: specific @SubAssignWith.loc231(constants.%Int32, constants.%SubAssignWith.facet.a7e) { // CHECK:STDOUT: %U.loc231_19.1 => constants.%Int32 -// CHECK:STDOUT: %SubAssignWith.type.loc231_52.1 => constants.%SubAssignWith.type.678 -// CHECK:STDOUT: %T.loc231_29.1 => constants.%SubAssignWith.facet.8bc -// CHECK:STDOUT: %pattern_type.loc231_29 => constants.%pattern_type.470 +// CHECK:STDOUT: %SubAssignWith.type.loc231_52.1 => constants.%SubAssignWith.type.4fc +// CHECK:STDOUT: %T.loc231_29.1 => constants.%SubAssignWith.facet.a7e +// CHECK:STDOUT: %pattern_type.loc231_29 => constants.%pattern_type.190 // CHECK:STDOUT: %T.as_type.loc231_62.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc231_60 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %pattern_type.loc231_66 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc231_60 => constants.%pattern_type.4aa +// CHECK:STDOUT: %pattern_type.loc231_66 => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc231_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc231_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc233 => constants.%complete_type.838 -// CHECK:STDOUT: %SubAssignWith.assoc_type => constants.%SubAssignWith.assoc_type.53a -// CHECK:STDOUT: %assoc0 => constants.%assoc0.60e -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type => constants.%SubAssignWith.WithSelf.Op.type.461 -// CHECK:STDOUT: %.loc233_5.2 => constants.%.e92 -// CHECK:STDOUT: %SubAssignWith.lookup_impl_witness => constants.%custom_witness.75ca2a.2 -// CHECK:STDOUT: %impl.elem0.loc233_5.2 => constants.%Int64.Op.cc70d5.4 -// CHECK:STDOUT: %specific_impl_fn.loc233_5.2 => constants.%Int64.Op.cc70d5.4 +// CHECK:STDOUT: %require_complete.loc233 => constants.%complete_type.1eb +// CHECK:STDOUT: %SubAssignWith.assoc_type => constants.%SubAssignWith.assoc_type.ac6 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c2a +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type => constants.%SubAssignWith.WithSelf.Op.type.a31 +// CHECK:STDOUT: %.loc233_5.2 => constants.%.70d +// CHECK:STDOUT: %SubAssignWith.lookup_impl_witness => constants.%custom_witness.c2b241.2 +// CHECK:STDOUT: %impl.elem0.loc233_5.2 => constants.%Int64.Op.4dca31.4 +// CHECK:STDOUT: %specific_impl_fn.loc233_5.2 => constants.%Int64.Op.4dca31.4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulAssignWith.loc237(constants.%Int32, constants.%MulAssignWith.facet.990) { +// CHECK:STDOUT: specific @MulAssignWith.loc237(constants.%Int32, constants.%MulAssignWith.facet.b35) { // CHECK:STDOUT: %U.loc237_19.1 => constants.%Int32 -// CHECK:STDOUT: %MulAssignWith.type.loc237_52.1 => constants.%MulAssignWith.type.011 -// CHECK:STDOUT: %T.loc237_29.1 => constants.%MulAssignWith.facet.990 -// CHECK:STDOUT: %pattern_type.loc237_29 => constants.%pattern_type.c27 +// CHECK:STDOUT: %MulAssignWith.type.loc237_52.1 => constants.%MulAssignWith.type.5fb +// CHECK:STDOUT: %T.loc237_29.1 => constants.%MulAssignWith.facet.b35 +// CHECK:STDOUT: %pattern_type.loc237_29 => constants.%pattern_type.f3b // CHECK:STDOUT: %T.as_type.loc237_62.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc237_60 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %pattern_type.loc237_66 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc237_60 => constants.%pattern_type.4aa +// CHECK:STDOUT: %pattern_type.loc237_66 => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc237_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc237_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc239 => constants.%complete_type.908 -// CHECK:STDOUT: %MulAssignWith.assoc_type => constants.%MulAssignWith.assoc_type.f6b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.1a2 -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type => constants.%MulAssignWith.WithSelf.Op.type.152 -// CHECK:STDOUT: %.loc239_5.2 => constants.%.694 -// CHECK:STDOUT: %MulAssignWith.lookup_impl_witness => constants.%custom_witness.7d92f3.2 -// CHECK:STDOUT: %impl.elem0.loc239_5.2 => constants.%Int64.Op.cc70d5.5 -// CHECK:STDOUT: %specific_impl_fn.loc239_5.2 => constants.%Int64.Op.cc70d5.5 +// CHECK:STDOUT: %require_complete.loc239 => constants.%complete_type.ef7 +// CHECK:STDOUT: %MulAssignWith.assoc_type => constants.%MulAssignWith.assoc_type.c04 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.2db +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type => constants.%MulAssignWith.WithSelf.Op.type.606 +// CHECK:STDOUT: %.loc239_5.2 => constants.%.375 +// CHECK:STDOUT: %MulAssignWith.lookup_impl_witness => constants.%custom_witness.ec9760.2 +// CHECK:STDOUT: %impl.elem0.loc239_5.2 => constants.%Int64.Op.4dca31.5 +// CHECK:STDOUT: %specific_impl_fn.loc239_5.2 => constants.%Int64.Op.4dca31.5 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivAssignWith.loc243(constants.%Int32, constants.%DivAssignWith.facet.3eb) { +// CHECK:STDOUT: specific @DivAssignWith.loc243(constants.%Int32, constants.%DivAssignWith.facet.b1e) { // CHECK:STDOUT: %U.loc243_19.1 => constants.%Int32 -// CHECK:STDOUT: %DivAssignWith.type.loc243_52.1 => constants.%DivAssignWith.type.487 -// CHECK:STDOUT: %T.loc243_29.1 => constants.%DivAssignWith.facet.3eb -// CHECK:STDOUT: %pattern_type.loc243_29 => constants.%pattern_type.492 +// CHECK:STDOUT: %DivAssignWith.type.loc243_52.1 => constants.%DivAssignWith.type.3ea +// CHECK:STDOUT: %T.loc243_29.1 => constants.%DivAssignWith.facet.b1e +// CHECK:STDOUT: %pattern_type.loc243_29 => constants.%pattern_type.8f3 // CHECK:STDOUT: %T.as_type.loc243_62.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc243_60 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %pattern_type.loc243_66 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc243_60 => constants.%pattern_type.4aa +// CHECK:STDOUT: %pattern_type.loc243_66 => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc243_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc243_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc245 => constants.%complete_type.054 -// CHECK:STDOUT: %DivAssignWith.assoc_type => constants.%DivAssignWith.assoc_type.047 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.cd7 -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type => constants.%DivAssignWith.WithSelf.Op.type.53f -// CHECK:STDOUT: %.loc245_5.2 => constants.%.09f -// CHECK:STDOUT: %DivAssignWith.lookup_impl_witness => constants.%custom_witness.cdc44b.2 -// CHECK:STDOUT: %impl.elem0.loc245_5.2 => constants.%Int64.Op.cc70d5.6 -// CHECK:STDOUT: %specific_impl_fn.loc245_5.2 => constants.%Int64.Op.cc70d5.6 +// CHECK:STDOUT: %require_complete.loc245 => constants.%complete_type.502 +// CHECK:STDOUT: %DivAssignWith.assoc_type => constants.%DivAssignWith.assoc_type.ccd +// CHECK:STDOUT: %assoc0 => constants.%assoc0.d23 +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type => constants.%DivAssignWith.WithSelf.Op.type.d14 +// CHECK:STDOUT: %.loc245_5.2 => constants.%.f69 +// CHECK:STDOUT: %DivAssignWith.lookup_impl_witness => constants.%custom_witness.9697f7.2 +// CHECK:STDOUT: %impl.elem0.loc245_5.2 => constants.%Int64.Op.4dca31.6 +// CHECK:STDOUT: %specific_impl_fn.loc245_5.2 => constants.%Int64.Op.4dca31.6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModAssignWith.loc249(constants.%Int32, constants.%ModAssignWith.facet.2d7) { +// CHECK:STDOUT: specific @ModAssignWith.loc249(constants.%Int32, constants.%ModAssignWith.facet.342) { // CHECK:STDOUT: %U.loc249_19.1 => constants.%Int32 -// CHECK:STDOUT: %ModAssignWith.type.loc249_52.1 => constants.%ModAssignWith.type.499 -// CHECK:STDOUT: %T.loc249_29.1 => constants.%ModAssignWith.facet.2d7 -// CHECK:STDOUT: %pattern_type.loc249_29 => constants.%pattern_type.f79 +// CHECK:STDOUT: %ModAssignWith.type.loc249_52.1 => constants.%ModAssignWith.type.567 +// CHECK:STDOUT: %T.loc249_29.1 => constants.%ModAssignWith.facet.342 +// CHECK:STDOUT: %pattern_type.loc249_29 => constants.%pattern_type.9ff // CHECK:STDOUT: %T.as_type.loc249_62.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc249_60 => constants.%pattern_type.7b1 -// CHECK:STDOUT: %pattern_type.loc249_66 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc249_60 => constants.%pattern_type.4aa +// CHECK:STDOUT: %pattern_type.loc249_66 => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc249_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc249_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc251 => constants.%complete_type.022 -// CHECK:STDOUT: %ModAssignWith.assoc_type => constants.%ModAssignWith.assoc_type.e0e -// CHECK:STDOUT: %assoc0 => constants.%assoc0.928 -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type => constants.%ModAssignWith.WithSelf.Op.type.30a -// CHECK:STDOUT: %.loc251_5.2 => constants.%.e8b -// CHECK:STDOUT: %ModAssignWith.lookup_impl_witness => constants.%custom_witness.ec99b7.2 -// CHECK:STDOUT: %impl.elem0.loc251_5.2 => constants.%Int64.Op.cc70d5.7 -// CHECK:STDOUT: %specific_impl_fn.loc251_5.2 => constants.%Int64.Op.cc70d5.7 +// CHECK:STDOUT: %require_complete.loc251 => constants.%complete_type.446 +// CHECK:STDOUT: %ModAssignWith.assoc_type => constants.%ModAssignWith.assoc_type.fc5 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.1c63 +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type => constants.%ModAssignWith.WithSelf.Op.type.690 +// CHECK:STDOUT: %.loc251_5.2 => constants.%.af4 +// CHECK:STDOUT: %ModAssignWith.lookup_impl_witness => constants.%custom_witness.df8f2f.2 +// CHECK:STDOUT: %impl.elem0.loc251_5.2 => constants.%Int64.Op.4dca31.7 +// CHECK:STDOUT: %specific_impl_fn.loc251_5.2 => constants.%Int64.Op.4dca31.7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TestInc(constants.%T.c06) { -// CHECK:STDOUT: %T.loc278_13.1 => constants.%T.c06 -// CHECK:STDOUT: %T.as_type.loc278_33.1 => constants.%T.as_type.4cc -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.55fce5.2 +// CHECK:STDOUT: specific @TestInc(constants.%T.8f3) { +// CHECK:STDOUT: %T.loc278_13.1 => constants.%T.8f3 +// CHECK:STDOUT: %T.as_type.loc278_33.1 => constants.%T.as_type.232 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.427bfc.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TestDec(constants.%T.d9e) { -// CHECK:STDOUT: %T.loc284_13.1 => constants.%T.d9e -// CHECK:STDOUT: %T.as_type.loc284_33.1 => constants.%T.as_type.915 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.317946.2 +// CHECK:STDOUT: specific @TestDec(constants.%T.e8e) { +// CHECK:STDOUT: %T.loc284_13.1 => constants.%T.e8e +// CHECK:STDOUT: %T.as_type.loc284_33.1 => constants.%T.as_type.c32 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2754f0.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TestNegate(constants.%Result, constants.%T.0e9) { +// CHECK:STDOUT: specific @TestNegate(constants.%Result, constants.%T.a9d) { // CHECK:STDOUT: %Result.loc292_9.1 => constants.%Result // CHECK:STDOUT: %Result.as_type.loc293_50.1 => constants.%Result.as_type -// CHECK:STDOUT: %facet_type => constants.%facet_type.fb9 -// CHECK:STDOUT: %T.loc293_4.1 => constants.%T.0e9 -// CHECK:STDOUT: %pattern_type.loc293 => constants.%pattern_type.301 -// CHECK:STDOUT: %pattern_type.loc294_11 => constants.%pattern_type.227a41.2 -// CHECK:STDOUT: %T.as_type.loc294_24.1 => constants.%T.as_type.b01 -// CHECK:STDOUT: %pattern_type.loc294_22 => constants.%pattern_type.5e6 +// CHECK:STDOUT: %facet_type => constants.%facet_type.b1d +// CHECK:STDOUT: %T.loc293_4.1 => constants.%T.a9d +// CHECK:STDOUT: %pattern_type.loc293 => constants.%pattern_type.540 +// CHECK:STDOUT: %pattern_type.loc294_11 => constants.%pattern_type.f4e485.2 +// CHECK:STDOUT: %T.as_type.loc294_24.1 => constants.%T.as_type.a98 +// CHECK:STDOUT: %pattern_type.loc294_22 => constants.%pattern_type.962a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TestInc(constants.%Inc.facet.ace) { -// CHECK:STDOUT: %T.loc278_13.1 => constants.%Inc.facet.ace +// CHECK:STDOUT: specific @TestInc(constants.%Inc.facet.dd2) { +// CHECK:STDOUT: %T.loc278_13.1 => constants.%Inc.facet.dd2 // CHECK:STDOUT: %T.as_type.loc278_33.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.357 -// CHECK:STDOUT: %Inc.WithSelf.Op.type => constants.%Inc.WithSelf.Op.type.f8b -// CHECK:STDOUT: %.loc280 => constants.%.b6c -// CHECK:STDOUT: %Inc.lookup_impl_witness => constants.%custom_witness.ef4 -// CHECK:STDOUT: %impl.elem0.loc280_3.2 => constants.%Int32.Op.cc70d5.18 -// CHECK:STDOUT: %specific_impl_fn.loc280_3.2 => constants.%Int32.Op.cc70d5.18 +// CHECK:STDOUT: %Inc.WithSelf.Op.type => constants.%Inc.WithSelf.Op.type.d1d +// CHECK:STDOUT: %.loc280 => constants.%.176 +// CHECK:STDOUT: %Inc.lookup_impl_witness => constants.%custom_witness.f3f +// CHECK:STDOUT: %impl.elem0.loc280_3.2 => constants.%Int32.Op.4dca31.18 +// CHECK:STDOUT: %specific_impl_fn.loc280_3.2 => constants.%Int32.Op.4dca31.18 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TestDec(constants.%Dec.facet.be4) { -// CHECK:STDOUT: %T.loc284_13.1 => constants.%Dec.facet.be4 +// CHECK:STDOUT: specific @TestDec(constants.%Dec.facet.e1b) { +// CHECK:STDOUT: %T.loc284_13.1 => constants.%Dec.facet.e1b // CHECK:STDOUT: %T.as_type.loc284_33.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.357 -// CHECK:STDOUT: %Dec.WithSelf.Op.type => constants.%Dec.WithSelf.Op.type.479 -// CHECK:STDOUT: %.loc286 => constants.%.a3b -// CHECK:STDOUT: %Dec.lookup_impl_witness => constants.%custom_witness.7c5 -// CHECK:STDOUT: %impl.elem0.loc286_3.2 => constants.%Int32.Op.cc70d5.19 -// CHECK:STDOUT: %specific_impl_fn.loc286_3.2 => constants.%Int32.Op.cc70d5.19 +// CHECK:STDOUT: %Dec.WithSelf.Op.type => constants.%Dec.WithSelf.Op.type.e55 +// CHECK:STDOUT: %.loc286 => constants.%.d09 +// CHECK:STDOUT: %Dec.lookup_impl_witness => constants.%custom_witness.b24 +// CHECK:STDOUT: %impl.elem0.loc286_3.2 => constants.%Int32.Op.4dca31.19 +// CHECK:STDOUT: %specific_impl_fn.loc286_3.2 => constants.%Int32.Op.4dca31.19 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TestNegate(constants.%Destroy.facet.3de, constants.%facet_value.e43) { -// CHECK:STDOUT: %Result.loc292_9.1 => constants.%Destroy.facet.3de +// CHECK:STDOUT: specific @TestNegate(constants.%Destroy.facet.191, constants.%facet_value.750) { +// CHECK:STDOUT: %Result.loc292_9.1 => constants.%Destroy.facet.191 // CHECK:STDOUT: %Result.as_type.loc293_50.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type => constants.%facet_type.999 -// CHECK:STDOUT: %T.loc293_4.1 => constants.%facet_value.e43 -// CHECK:STDOUT: %pattern_type.loc293 => constants.%pattern_type.04d -// CHECK:STDOUT: %pattern_type.loc294_11 => constants.%pattern_type.7b1 +// CHECK:STDOUT: %facet_type => constants.%facet_type.76b +// CHECK:STDOUT: %T.loc293_4.1 => constants.%facet_value.750 +// CHECK:STDOUT: %pattern_type.loc293 => constants.%pattern_type.61c +// CHECK:STDOUT: %pattern_type.loc294_11 => constants.%pattern_type.4aa // CHECK:STDOUT: %T.as_type.loc294_24.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc294_22 => constants.%pattern_type.802 +// CHECK:STDOUT: %pattern_type.loc294_22 => constants.%pattern_type.785 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc294_11 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc294_22 => constants.%complete_type.357 -// CHECK:STDOUT: %Negate.lookup_impl_witness => constants.%custom_witness.71b -// CHECK:STDOUT: %Negate.facet => constants.%Negate.facet.070 -// CHECK:STDOUT: %Negate.WithSelf.Op.type => constants.%Negate.WithSelf.Op.type.cde -// CHECK:STDOUT: %.loc296_3.3 => constants.%.e93 -// CHECK:STDOUT: %impl.elem1.loc296_3.2 => constants.%Int16.Op.cc70d5.18 -// CHECK:STDOUT: %specific_impl_fn.loc296_3.3 => constants.%Int16.Op.cc70d5.18 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.2bb -// CHECK:STDOUT: %.loc296_3.4 => constants.%.dda -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.3 -// CHECK:STDOUT: %impl.elem0.loc296_3.2 => constants.%Int64.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc296_3.4 => constants.%Int64.Op.cc70d5.1 +// CHECK:STDOUT: %Negate.lookup_impl_witness => constants.%custom_witness.100 +// CHECK:STDOUT: %Negate.facet => constants.%Negate.facet.8f4 +// CHECK:STDOUT: %Negate.WithSelf.Op.type => constants.%Negate.WithSelf.Op.type.181 +// CHECK:STDOUT: %.loc296_3.3 => constants.%.66a +// CHECK:STDOUT: %impl.elem1.loc296_3.2 => constants.%Int16.Op.4dca31.18 +// CHECK:STDOUT: %specific_impl_fn.loc296_3.3 => constants.%Int16.Op.4dca31.18 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.c2c +// CHECK:STDOUT: %.loc296_3.4 => constants.%.c2e +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.3 +// CHECK:STDOUT: %impl.elem0.loc296_3.2 => constants.%Int64.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc296_3.4 => constants.%Int64.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TestNegate(constants.%Destroy.facet.d87, constants.%facet_value.b3a) { -// CHECK:STDOUT: %Result.loc292_9.1 => constants.%Destroy.facet.d87 +// CHECK:STDOUT: specific @TestNegate(constants.%Destroy.facet.099, constants.%facet_value.42d) { +// CHECK:STDOUT: %Result.loc292_9.1 => constants.%Destroy.facet.099 // CHECK:STDOUT: %Result.as_type.loc293_50.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type => constants.%facet_type.363 -// CHECK:STDOUT: %T.loc293_4.1 => constants.%facet_value.b3a -// CHECK:STDOUT: %pattern_type.loc293 => constants.%pattern_type.4d0 -// CHECK:STDOUT: %pattern_type.loc294_11 => constants.%pattern_type.e9d +// CHECK:STDOUT: %facet_type => constants.%facet_type.49d +// CHECK:STDOUT: %T.loc293_4.1 => constants.%facet_value.42d +// CHECK:STDOUT: %pattern_type.loc293 => constants.%pattern_type.57c +// CHECK:STDOUT: %pattern_type.loc294_11 => constants.%pattern_type.8b4 // CHECK:STDOUT: %T.as_type.loc294_24.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc294_22 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc294_22 => constants.%pattern_type.8b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc294_11 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc294_22 => constants.%complete_type.357 -// CHECK:STDOUT: %Negate.lookup_impl_witness => constants.%custom_witness.45a -// CHECK:STDOUT: %Negate.facet => constants.%Negate.facet.670 -// CHECK:STDOUT: %Negate.WithSelf.Op.type => constants.%Negate.WithSelf.Op.type.20b -// CHECK:STDOUT: %.loc296_3.3 => constants.%.76e -// CHECK:STDOUT: %impl.elem1.loc296_3.2 => constants.%Int32.Op.cc70d5.20 -// CHECK:STDOUT: %specific_impl_fn.loc296_3.3 => constants.%Int32.Op.cc70d5.20 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.a62 -// CHECK:STDOUT: %.loc296_3.4 => constants.%.e4f -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.a98c63.2 -// CHECK:STDOUT: %impl.elem0.loc296_3.2 => constants.%Int32.Op.cc70d5.1 -// CHECK:STDOUT: %specific_impl_fn.loc296_3.4 => constants.%Int32.Op.cc70d5.1 +// CHECK:STDOUT: %Negate.lookup_impl_witness => constants.%custom_witness.a85 +// CHECK:STDOUT: %Negate.facet => constants.%Negate.facet.aa9 +// CHECK:STDOUT: %Negate.WithSelf.Op.type => constants.%Negate.WithSelf.Op.type.050 +// CHECK:STDOUT: %.loc296_3.3 => constants.%.668 +// CHECK:STDOUT: %impl.elem1.loc296_3.2 => constants.%Int32.Op.4dca31.20 +// CHECK:STDOUT: %specific_impl_fn.loc296_3.3 => constants.%Int32.Op.4dca31.20 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b76 +// CHECK:STDOUT: %.loc296_3.4 => constants.%.043 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e7a31c.2 +// CHECK:STDOUT: %impl.elem0.loc296_3.2 => constants.%Int32.Op.4dca31.1 +// CHECK:STDOUT: %specific_impl_fn.loc296_3.4 => constants.%Int32.Op.4dca31.1 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/operators/deref.carbon b/toolchain/check/testdata/interop/cpp/operators/deref.carbon index 974aad32221f..d6a95f3453e1 100644 --- a/toolchain/check/testdata/interop/cpp/operators/deref.carbon +++ b/toolchain/check/testdata/interop/cpp/operators/deref.carbon @@ -123,11 +123,11 @@ fn TestDerefFail(not_ptr: Cpp.NotAPtr) { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %CppUnsafeDeref.type: type = facet_type <@CppUnsafeDeref> [concrete] -// CHECK:STDOUT: %Self.a61: %CppUnsafeDeref.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %CppUnsafeDeref.WithSelf.Op.type.393: type = fn_type @CppUnsafeDeref.WithSelf.Op, @CppUnsafeDeref.WithSelf(%Self.a61) [symbolic] -// CHECK:STDOUT: %CppUnsafeDeref.WithSelf.Op.0fa: %CppUnsafeDeref.WithSelf.Op.type.393 = struct_value () [symbolic] +// CHECK:STDOUT: %Self.d49: %CppUnsafeDeref.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %CppUnsafeDeref.WithSelf.Op.type.463: type = fn_type @CppUnsafeDeref.WithSelf.Op, @CppUnsafeDeref.WithSelf(%Self.d49) [symbolic] +// CHECK:STDOUT: %CppUnsafeDeref.WithSelf.Op.a01: %CppUnsafeDeref.WithSelf.Op.type.463 = struct_value () [symbolic] // CHECK:STDOUT: %CppUnsafeDeref.assoc_type: type = assoc_entity_type @CppUnsafeDeref [concrete] -// CHECK:STDOUT: %assoc1: %CppUnsafeDeref.assoc_type = assoc_entity element1, imports.%Core.import_ref.a48 [concrete] +// CHECK:STDOUT: %assoc1: %CppUnsafeDeref.assoc_type = assoc_entity element1, imports.%Core.import_ref.ef0 [concrete] // CHECK:STDOUT: %ConstDeref.cpp_operator.type: type = fn_type @ConstDeref.cpp_operator [concrete] // CHECK:STDOUT: %ConstDeref.cpp_operator: %ConstDeref.cpp_operator.type = struct_value () [concrete] // CHECK:STDOUT: %operator_Star__carbon_thunk.type: type = fn_type @operator_Star__carbon_thunk [concrete] @@ -135,10 +135,10 @@ fn TestDerefFail(not_ptr: Cpp.NotAPtr) { // CHECK:STDOUT: %ConstDeref.Op.type: type = fn_type @ConstDeref.Op [concrete] // CHECK:STDOUT: %ConstDeref.Op: %ConstDeref.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %custom_witness.000: = custom_witness (%i32, %ConstDeref.Op), @CppUnsafeDeref [concrete] -// CHECK:STDOUT: %CppUnsafeDeref.facet.909: %CppUnsafeDeref.type = facet_value %ConstDeref, (%custom_witness.000) [concrete] -// CHECK:STDOUT: %CppUnsafeDeref.WithSelf.Op.type.6a5: type = fn_type @CppUnsafeDeref.WithSelf.Op, @CppUnsafeDeref.WithSelf(%CppUnsafeDeref.facet.909) [concrete] -// CHECK:STDOUT: %.b71: type = fn_type_with_self_type %CppUnsafeDeref.WithSelf.Op.type.6a5, %CppUnsafeDeref.facet.909 [concrete] +// CHECK:STDOUT: %custom_witness.9fe: = custom_witness (%i32, %ConstDeref.Op), @CppUnsafeDeref [concrete] +// CHECK:STDOUT: %CppUnsafeDeref.facet.7c1: %CppUnsafeDeref.type = facet_value %ConstDeref, (%custom_witness.9fe) [concrete] +// CHECK:STDOUT: %CppUnsafeDeref.WithSelf.Op.type.edc: type = fn_type @CppUnsafeDeref.WithSelf.Op, @CppUnsafeDeref.WithSelf(%CppUnsafeDeref.facet.7c1) [concrete] +// CHECK:STDOUT: %.e2e: type = fn_type_with_self_type %CppUnsafeDeref.WithSelf.Op.type.edc, %CppUnsafeDeref.facet.7c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -151,8 +151,8 @@ fn TestDerefFail(not_ptr: Cpp.NotAPtr) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.CppUnsafeDeref: type = import_ref Core//prelude/operators/deref, CppUnsafeDeref, loaded [concrete = constants.%CppUnsafeDeref.type] -// CHECK:STDOUT: %Core.import_ref.05c: %CppUnsafeDeref.assoc_type = import_ref Core//prelude/operators/deref, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc1] -// CHECK:STDOUT: %Core.import_ref.a48: @CppUnsafeDeref.WithSelf.%CppUnsafeDeref.WithSelf.Op.type (%CppUnsafeDeref.WithSelf.Op.type.393) = import_ref Core//prelude/operators/deref, loc{{\d+_\d+}}, loaded [symbolic = @CppUnsafeDeref.WithSelf.%CppUnsafeDeref.WithSelf.Op (constants.%CppUnsafeDeref.WithSelf.Op.0fa)] +// CHECK:STDOUT: %Core.import_ref.4bf: %CppUnsafeDeref.assoc_type = import_ref Core//prelude/operators/deref, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc1] +// CHECK:STDOUT: %Core.import_ref.ef0: @CppUnsafeDeref.WithSelf.%CppUnsafeDeref.WithSelf.Op.type (%CppUnsafeDeref.WithSelf.Op.type.463) = import_ref Core//prelude/operators/deref, loc{{\d+_\d+}}, loaded [symbolic = @CppUnsafeDeref.WithSelf.%CppUnsafeDeref.WithSelf.Op (constants.%CppUnsafeDeref.WithSelf.Op.a01)] // CHECK:STDOUT: %ConstDeref.cpp_operator.decl: %ConstDeref.cpp_operator.type = fn_decl @ConstDeref.cpp_operator [concrete = constants.%ConstDeref.cpp_operator] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -171,10 +171,10 @@ fn TestDerefFail(not_ptr: Cpp.NotAPtr) { // CHECK:STDOUT: %int_ptr.ref: ref %ConstDeref = name_ref int_ptr, %int_ptr // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %CppUnsafeDeref.ref: type = name_ref CppUnsafeDeref, imports.%Core.CppUnsafeDeref [concrete = constants.%CppUnsafeDeref.type] -// CHECK:STDOUT: %Op.ref.loc13_38: %CppUnsafeDeref.assoc_type = name_ref Op, imports.%Core.import_ref.05c [concrete = constants.%assoc1] +// CHECK:STDOUT: %Op.ref.loc13_38: %CppUnsafeDeref.assoc_type = name_ref Op, imports.%Core.import_ref.4bf [concrete = constants.%assoc1] // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: -// CHECK:STDOUT: %impl.elem1: %.b71 = impl_witness_access constants.%custom_witness.000, element1 [concrete = constants.%ConstDeref.Op] +// CHECK:STDOUT: %impl.elem1: %.e2e = impl_witness_access constants.%custom_witness.9fe, element1 [concrete = constants.%ConstDeref.Op] // CHECK:STDOUT: %bound_method: = bound_method %int_ptr.ref, %impl.elem1 // CHECK:STDOUT: %.loc13: %ConstDeref = acquire_value %int_ptr.ref // CHECK:STDOUT: %Op.ref.loc13_43: %ConstDeref.cpp_operator.type = name_ref Op, imports.%ConstDeref.cpp_operator.decl [concrete = constants.%ConstDeref.cpp_operator] @@ -193,16 +193,16 @@ fn TestDerefFail(not_ptr: Cpp.NotAPtr) { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %CppUnsafeDeref.type: type = facet_type <@CppUnsafeDeref> [concrete] // CHECK:STDOUT: %Self: %CppUnsafeDeref.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %CppUnsafeDeref.WithSelf.Op.type.393: type = fn_type @CppUnsafeDeref.WithSelf.Op, @CppUnsafeDeref.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %CppUnsafeDeref.WithSelf.Op.0fa: %CppUnsafeDeref.WithSelf.Op.type.393 = struct_value () [symbolic] +// CHECK:STDOUT: %CppUnsafeDeref.WithSelf.Op.type.463: type = fn_type @CppUnsafeDeref.WithSelf.Op, @CppUnsafeDeref.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %CppUnsafeDeref.WithSelf.Op.a01: %CppUnsafeDeref.WithSelf.Op.type.463 = struct_value () [symbolic] // CHECK:STDOUT: %CppUnsafeDeref.assoc_type: type = assoc_entity_type @CppUnsafeDeref [concrete] -// CHECK:STDOUT: %assoc1: %CppUnsafeDeref.assoc_type = assoc_entity element1, imports.%Core.import_ref.a48 [concrete] +// CHECK:STDOUT: %assoc1: %CppUnsafeDeref.assoc_type = assoc_entity element1, imports.%Core.import_ref.ef0 [concrete] // CHECK:STDOUT: %MutableDeref.cpp_operator.type: type = fn_type @MutableDeref.cpp_operator [concrete] // CHECK:STDOUT: %MutableDeref.cpp_operator: %MutableDeref.cpp_operator.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.91c: = custom_witness (%i32, %MutableDeref.cpp_operator), @CppUnsafeDeref [concrete] -// CHECK:STDOUT: %CppUnsafeDeref.facet.62a: %CppUnsafeDeref.type = facet_value %MutableDeref, (%custom_witness.91c) [concrete] -// CHECK:STDOUT: %CppUnsafeDeref.WithSelf.Op.type.1b7: type = fn_type @CppUnsafeDeref.WithSelf.Op, @CppUnsafeDeref.WithSelf(%CppUnsafeDeref.facet.62a) [concrete] -// CHECK:STDOUT: %.a97: type = fn_type_with_self_type %CppUnsafeDeref.WithSelf.Op.type.1b7, %CppUnsafeDeref.facet.62a [concrete] +// CHECK:STDOUT: %custom_witness.a86: = custom_witness (%i32, %MutableDeref.cpp_operator), @CppUnsafeDeref [concrete] +// CHECK:STDOUT: %CppUnsafeDeref.facet.ea0: %CppUnsafeDeref.type = facet_value %MutableDeref, (%custom_witness.a86) [concrete] +// CHECK:STDOUT: %CppUnsafeDeref.WithSelf.Op.type.fdc: type = fn_type @CppUnsafeDeref.WithSelf.Op, @CppUnsafeDeref.WithSelf(%CppUnsafeDeref.facet.ea0) [concrete] +// CHECK:STDOUT: %.e52: type = fn_type_with_self_type %CppUnsafeDeref.WithSelf.Op.type.fdc, %CppUnsafeDeref.facet.ea0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -214,8 +214,8 @@ fn TestDerefFail(not_ptr: Cpp.NotAPtr) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.CppUnsafeDeref: type = import_ref Core//prelude/operators/deref, CppUnsafeDeref, loaded [concrete = constants.%CppUnsafeDeref.type] -// CHECK:STDOUT: %Core.import_ref.05c: %CppUnsafeDeref.assoc_type = import_ref Core//prelude/operators/deref, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc1] -// CHECK:STDOUT: %Core.import_ref.a48: @CppUnsafeDeref.WithSelf.%CppUnsafeDeref.WithSelf.Op.type (%CppUnsafeDeref.WithSelf.Op.type.393) = import_ref Core//prelude/operators/deref, loc{{\d+_\d+}}, loaded [symbolic = @CppUnsafeDeref.WithSelf.%CppUnsafeDeref.WithSelf.Op (constants.%CppUnsafeDeref.WithSelf.Op.0fa)] +// CHECK:STDOUT: %Core.import_ref.4bf: %CppUnsafeDeref.assoc_type = import_ref Core//prelude/operators/deref, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc1] +// CHECK:STDOUT: %Core.import_ref.ef0: @CppUnsafeDeref.WithSelf.%CppUnsafeDeref.WithSelf.Op.type (%CppUnsafeDeref.WithSelf.Op.type.463) = import_ref Core//prelude/operators/deref, loc{{\d+_\d+}}, loaded [symbolic = @CppUnsafeDeref.WithSelf.%CppUnsafeDeref.WithSelf.Op (constants.%CppUnsafeDeref.WithSelf.Op.a01)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestDerefPass(%int_ptr.param: ref %MutableDeref) -> ref %i32 { @@ -223,9 +223,9 @@ fn TestDerefFail(not_ptr: Cpp.NotAPtr) { // CHECK:STDOUT: %int_ptr.ref: ref %MutableDeref = name_ref int_ptr, %int_ptr // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %CppUnsafeDeref.ref: type = name_ref CppUnsafeDeref, imports.%Core.CppUnsafeDeref [concrete = constants.%CppUnsafeDeref.type] -// CHECK:STDOUT: %Op.ref: %CppUnsafeDeref.assoc_type = name_ref Op, imports.%Core.import_ref.05c [concrete = constants.%assoc1] +// CHECK:STDOUT: %Op.ref: %CppUnsafeDeref.assoc_type = name_ref Op, imports.%Core.import_ref.4bf [concrete = constants.%assoc1] // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem1: %.a97 = impl_witness_access constants.%custom_witness.91c, element1 [concrete = constants.%MutableDeref.cpp_operator] +// CHECK:STDOUT: %impl.elem1: %.e52 = impl_witness_access constants.%custom_witness.a86, element1 [concrete = constants.%MutableDeref.cpp_operator] // CHECK:STDOUT: %bound_method: = bound_method %int_ptr.ref, %impl.elem1 // CHECK:STDOUT: %.loc13: %MutableDeref = acquire_value %int_ptr.ref // CHECK:STDOUT: %MutableDeref.cpp_operator.call: ref %i32 = call %bound_method(%.loc13) diff --git a/toolchain/check/testdata/interop/cpp/operators/eq_with.carbon b/toolchain/check/testdata/interop/cpp/operators/eq_with.carbon index 52aa66faa816..eeea29032959 100644 --- a/toolchain/check/testdata/interop/cpp/operators/eq_with.carbon +++ b/toolchain/check/testdata/interop/cpp/operators/eq_with.carbon @@ -362,104 +362,104 @@ fn Test(only_neq: Cpp.OnlyNeq, // CHECK:STDOUT: constants { // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %Other: type = symbolic_binding Other, 0 [symbolic] -// CHECK:STDOUT: %EqWith.type.e412df.1: type = facet_type <@EqWith.1, @EqWith.1(%Other)> [symbolic] -// CHECK:STDOUT: %Self.1e4d80.1: %EqWith.type.e412df.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %EqWith.assoc_type.27e9f5.1: type = assoc_entity_type @EqWith.1, @EqWith.1(%Other) [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.a34bef.1: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Other, %Self.1e4d80.1) [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.34d150.1: %EqWith.WithSelf.NotEqual.type.a34bef.1 = struct_value () [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.28b02d.1: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Other, %Self.1e4d80.1) [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.6ee1cd.1: %EqWith.WithSelf.Equal.type.28b02d.1 = struct_value () [symbolic] -// CHECK:STDOUT: %EqWith.type.e412df.2: type = facet_type <@EqWith.1, @EqWith.1(%U)> [symbolic] -// CHECK:STDOUT: %pattern_type.243: type = pattern_type %EqWith.type.e412df.2 [symbolic] -// CHECK:STDOUT: %T: %EqWith.type.e412df.2 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %EqWith.assoc_type.27e9f5.2: type = assoc_entity_type @EqWith.1, @EqWith.1(%U) [symbolic] -// CHECK:STDOUT: %assoc0.04df8c.2: %EqWith.assoc_type.27e9f5.2 = assoc_entity element0, imports.%Core.import_ref.eea [symbolic] -// CHECK:STDOUT: %assoc1.47b841.2: %EqWith.assoc_type.27e9f5.2 = assoc_entity element1, imports.%Core.import_ref.228 [symbolic] +// CHECK:STDOUT: %EqWith.type.98ea86.1: type = facet_type <@EqWith.1, @EqWith.1(%Other)> [symbolic] +// CHECK:STDOUT: %Self.d94ae0.1: %EqWith.type.98ea86.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %EqWith.assoc_type.85b122.1: type = assoc_entity_type @EqWith.1, @EqWith.1(%Other) [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.c5b45a.1: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Other, %Self.d94ae0.1) [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.b4230d.1: %EqWith.WithSelf.NotEqual.type.c5b45a.1 = struct_value () [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.b82ec7.1: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Other, %Self.d94ae0.1) [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.ae3c3e.1: %EqWith.WithSelf.Equal.type.b82ec7.1 = struct_value () [symbolic] +// CHECK:STDOUT: %EqWith.type.98ea86.2: type = facet_type <@EqWith.1, @EqWith.1(%U)> [symbolic] +// CHECK:STDOUT: %pattern_type.3d4: type = pattern_type %EqWith.type.98ea86.2 [symbolic] +// CHECK:STDOUT: %T: %EqWith.type.98ea86.2 = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %EqWith.assoc_type.85b122.2: type = assoc_entity_type @EqWith.1, @EqWith.1(%U) [symbolic] +// CHECK:STDOUT: %assoc0.eee873.2: %EqWith.assoc_type.85b122.2 = assoc_entity element0, imports.%Core.import_ref.5ba [symbolic] +// CHECK:STDOUT: %assoc1.0ffc88.2: %EqWith.assoc_type.85b122.2 = assoc_entity element1, imports.%Core.import_ref.03f [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.479039.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.e6374a.2: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %pattern_type.51d1c4.2: type = pattern_type %U [symbolic] -// CHECK:STDOUT: %require_complete.1c9: = require_complete_type %EqWith.type.e412df.2 [symbolic] -// CHECK:STDOUT: %assoc0.5b6: %EqWith.assoc_type.27e9f5.1 = assoc_entity element0, imports.%Core.import_ref.c77 [symbolic] +// CHECK:STDOUT: %require_complete.fb5: = require_complete_type %EqWith.type.98ea86.2 [symbolic] +// CHECK:STDOUT: %assoc0.d00: %EqWith.assoc_type.85b122.1 = assoc_entity element0, imports.%Core.import_ref.2e5 [symbolic] // CHECK:STDOUT: %EqWith.lookup_impl_witness: = lookup_impl_witness %T, @EqWith.1, @EqWith.1(%U) [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.28b02d.3: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%U, %T) [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.a34bef.3: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%U, %T) [symbolic] -// CHECK:STDOUT: %.e7e: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.28b02d.3, %T [symbolic] -// CHECK:STDOUT: %impl.elem0: %.e7e = impl_witness_access %EqWith.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.ba9: = specific_impl_function %impl.elem0, @EqWith.WithSelf.Equal(%U, %T) [symbolic] -// CHECK:STDOUT: %assoc1.491: %EqWith.assoc_type.27e9f5.1 = assoc_entity element1, imports.%Core.import_ref.c36 [symbolic] -// CHECK:STDOUT: %.a13: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.a34bef.3, %T [symbolic] -// CHECK:STDOUT: %impl.elem1: %.a13 = impl_witness_access %EqWith.lookup_impl_witness, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a6f: = specific_impl_function %impl.elem1, @EqWith.WithSelf.NotEqual(%U, %T) [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.b82ec7.3: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%U, %T) [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.c5b45a.3: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%U, %T) [symbolic] +// CHECK:STDOUT: %.74c: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.b82ec7.3, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.74c = impl_witness_access %EqWith.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.67a: = specific_impl_function %impl.elem0, @EqWith.WithSelf.Equal(%U, %T) [symbolic] +// CHECK:STDOUT: %assoc1.d80: %EqWith.assoc_type.85b122.1 = assoc_entity element1, imports.%Core.import_ref.b78 [symbolic] +// CHECK:STDOUT: %.8ed: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.c5b45a.3, %T [symbolic] +// CHECK:STDOUT: %impl.elem1: %.8ed = impl_witness_access %EqWith.lookup_impl_witness, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.81f: = specific_impl_function %impl.elem1, @EqWith.WithSelf.NotEqual(%U, %T) [symbolic] // CHECK:STDOUT: %EqualityComparable: type = class_type @EqualityComparable [concrete] -// CHECK:STDOUT: %pattern_type.51b: type = pattern_type %EqualityComparable [concrete] +// CHECK:STDOUT: %pattern_type.73b: type = pattern_type %EqualityComparable [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %EqWith.type.dae: type = facet_type <@EqWith.1, @EqWith.1(%EqualityComparable)> [concrete] -// CHECK:STDOUT: %EqWith.assoc_type.fa0: type = assoc_entity_type @EqWith.1, @EqWith.1(%EqualityComparable) [concrete] -// CHECK:STDOUT: %assoc0.5f5: %EqWith.assoc_type.fa0 = assoc_entity element0, imports.%Core.import_ref.eea [concrete] -// CHECK:STDOUT: %assoc1.8e8: %EqWith.assoc_type.fa0 = assoc_entity element1, imports.%Core.import_ref.228 [concrete] +// CHECK:STDOUT: %EqWith.type.6a7: type = facet_type <@EqWith.1, @EqWith.1(%EqualityComparable)> [concrete] +// CHECK:STDOUT: %EqWith.assoc_type.ecd: type = assoc_entity_type @EqWith.1, @EqWith.1(%EqualityComparable) [concrete] +// CHECK:STDOUT: %assoc0.fab: %EqWith.assoc_type.ecd = assoc_entity element0, imports.%Core.import_ref.5ba [concrete] +// CHECK:STDOUT: %assoc1.c5e: %EqWith.assoc_type.ecd = assoc_entity element1, imports.%Core.import_ref.03f [concrete] // CHECK:STDOUT: %EqualityComparable.Equal.type: type = fn_type @EqualityComparable.Equal [concrete] // CHECK:STDOUT: %EqualityComparable.Equal: %EqualityComparable.Equal.type = struct_value () [concrete] // CHECK:STDOUT: %EqualityComparable.NotEqual.type: type = fn_type @EqualityComparable.NotEqual [concrete] // CHECK:STDOUT: %EqualityComparable.NotEqual: %EqualityComparable.NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.c57: = custom_witness (%EqualityComparable.Equal, %EqualityComparable.NotEqual), @EqWith.1, @EqWith.1(%EqualityComparable) [concrete] -// CHECK:STDOUT: %EqWith.facet.081: %EqWith.type.dae = facet_value %EqualityComparable, (%custom_witness.c57) [concrete] -// CHECK:STDOUT: %pattern_type.495: type = pattern_type %EqWith.type.dae [concrete] -// CHECK:STDOUT: %complete_type.c58: = complete_type_witness %EqWith.type.dae [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.c97: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%EqualityComparable, %EqWith.facet.081) [concrete] -// CHECK:STDOUT: %.a66: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.c97, %EqWith.facet.081 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.ecf: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%EqualityComparable, %EqWith.facet.081) [concrete] -// CHECK:STDOUT: %.87a: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.ecf, %EqWith.facet.081 [concrete] +// CHECK:STDOUT: %custom_witness.505: = custom_witness (%EqualityComparable.Equal, %EqualityComparable.NotEqual), @EqWith.1, @EqWith.1(%EqualityComparable) [concrete] +// CHECK:STDOUT: %EqWith.facet.b15: %EqWith.type.6a7 = facet_value %EqualityComparable, (%custom_witness.505) [concrete] +// CHECK:STDOUT: %pattern_type.876: type = pattern_type %EqWith.type.6a7 [concrete] +// CHECK:STDOUT: %complete_type.c86: = complete_type_witness %EqWith.type.6a7 [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.6ae: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%EqualityComparable, %EqWith.facet.b15) [concrete] +// CHECK:STDOUT: %.96d: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.6ae, %EqWith.facet.b15 [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.92a: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%EqualityComparable, %EqWith.facet.b15) [concrete] +// CHECK:STDOUT: %.a35: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.92a, %EqWith.facet.b15 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.0a8: @EqWith.WithSelf.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%assoc0 (constants.%assoc0.5b6)] -// CHECK:STDOUT: %Core.import_ref.33b: @EqWith.WithSelf.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%assoc1 (constants.%assoc1.491)] -// CHECK:STDOUT: %Core.import_ref.228: @EqWith.WithSelf.%EqWith.WithSelf.NotEqual.type (%EqWith.WithSelf.NotEqual.type.a34bef.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%EqWith.WithSelf.NotEqual (constants.%EqWith.WithSelf.NotEqual.34d150.1)] -// CHECK:STDOUT: %Core.import_ref.eea: @EqWith.WithSelf.%EqWith.WithSelf.Equal.type (%EqWith.WithSelf.Equal.type.28b02d.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%EqWith.WithSelf.Equal (constants.%EqWith.WithSelf.Equal.6ee1cd.1)] -// CHECK:STDOUT: %Core.import_ref.c77 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.c36 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.725: @EqWith.WithSelf.%EqWith.assoc_type (%EqWith.assoc_type.85b122.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%assoc0 (constants.%assoc0.d00)] +// CHECK:STDOUT: %Core.import_ref.8d7: @EqWith.WithSelf.%EqWith.assoc_type (%EqWith.assoc_type.85b122.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%assoc1 (constants.%assoc1.d80)] +// CHECK:STDOUT: %Core.import_ref.03f: @EqWith.WithSelf.%EqWith.WithSelf.NotEqual.type (%EqWith.WithSelf.NotEqual.type.c5b45a.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%EqWith.WithSelf.NotEqual (constants.%EqWith.WithSelf.NotEqual.b4230d.1)] +// CHECK:STDOUT: %Core.import_ref.5ba: @EqWith.WithSelf.%EqWith.WithSelf.Equal.type (%EqWith.WithSelf.Equal.type.b82ec7.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%EqWith.WithSelf.Equal (constants.%EqWith.WithSelf.Equal.ae3c3e.1)] +// CHECK:STDOUT: %Core.import_ref.2e5 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.b78 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @EqWith.loc11(%U.loc11_12.2: type, %T.loc11_22.2: @EqWith.loc11.%EqWith.type.loc11_38.1 (%EqWith.type.e412df.2)) { +// CHECK:STDOUT: generic fn @EqWith.loc11(%U.loc11_12.2: type, %T.loc11_22.2: @EqWith.loc11.%EqWith.type.loc11_38.1 (%EqWith.type.98ea86.2)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc13: = require_complete_type %EqWith.type.loc11_38.1 [symbolic = %require_complete.loc13 (constants.%require_complete.1c9)] -// CHECK:STDOUT: %EqWith.assoc_type: type = assoc_entity_type @EqWith.1, @EqWith.1(%U.loc11_12.1) [symbolic = %EqWith.assoc_type (constants.%EqWith.assoc_type.27e9f5.2)] -// CHECK:STDOUT: %assoc0: @EqWith.loc11.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = assoc_entity element0, imports.%Core.import_ref.eea [symbolic = %assoc0 (constants.%assoc0.04df8c.2)] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%U.loc11_12.1, %T.loc11_22.1) [symbolic = %EqWith.WithSelf.Equal.type (constants.%EqWith.WithSelf.Equal.type.28b02d.3)] -// CHECK:STDOUT: %.loc13_5.2: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type, %T.loc11_22.1 [symbolic = %.loc13_5.2 (constants.%.e7e)] +// CHECK:STDOUT: %require_complete.loc13: = require_complete_type %EqWith.type.loc11_38.1 [symbolic = %require_complete.loc13 (constants.%require_complete.fb5)] +// CHECK:STDOUT: %EqWith.assoc_type: type = assoc_entity_type @EqWith.1, @EqWith.1(%U.loc11_12.1) [symbolic = %EqWith.assoc_type (constants.%EqWith.assoc_type.85b122.2)] +// CHECK:STDOUT: %assoc0: @EqWith.loc11.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = assoc_entity element0, imports.%Core.import_ref.5ba [symbolic = %assoc0 (constants.%assoc0.eee873.2)] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%U.loc11_12.1, %T.loc11_22.1) [symbolic = %EqWith.WithSelf.Equal.type (constants.%EqWith.WithSelf.Equal.type.b82ec7.3)] +// CHECK:STDOUT: %.loc13_5.2: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type, %T.loc11_22.1 [symbolic = %.loc13_5.2 (constants.%.74c)] // CHECK:STDOUT: %EqWith.lookup_impl_witness: = lookup_impl_witness %T.loc11_22.1, @EqWith.1, @EqWith.1(%U.loc11_12.1) [symbolic = %EqWith.lookup_impl_witness (constants.%EqWith.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc13_5.2: @EqWith.loc11.%.loc13_5.2 (%.e7e) = impl_witness_access %EqWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_5.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc13_5.2: = specific_impl_function %impl.elem0.loc13_5.2, @EqWith.WithSelf.Equal(%U.loc11_12.1, %T.loc11_22.1) [symbolic = %specific_impl_fn.loc13_5.2 (constants.%specific_impl_fn.ba9)] -// CHECK:STDOUT: %assoc1: @EqWith.loc11.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = assoc_entity element1, imports.%Core.import_ref.228 [symbolic = %assoc1 (constants.%assoc1.47b841.2)] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%U.loc11_12.1, %T.loc11_22.1) [symbolic = %EqWith.WithSelf.NotEqual.type (constants.%EqWith.WithSelf.NotEqual.type.a34bef.3)] -// CHECK:STDOUT: %.loc14_5.2: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type, %T.loc11_22.1 [symbolic = %.loc14_5.2 (constants.%.a13)] -// CHECK:STDOUT: %impl.elem1.loc14_5.2: @EqWith.loc11.%.loc14_5.2 (%.a13) = impl_witness_access %EqWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc14_5.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %specific_impl_fn.loc14_5.2: = specific_impl_function %impl.elem1.loc14_5.2, @EqWith.WithSelf.NotEqual(%U.loc11_12.1, %T.loc11_22.1) [symbolic = %specific_impl_fn.loc14_5.2 (constants.%specific_impl_fn.a6f)] +// CHECK:STDOUT: %impl.elem0.loc13_5.2: @EqWith.loc11.%.loc13_5.2 (%.74c) = impl_witness_access %EqWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_5.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc13_5.2: = specific_impl_function %impl.elem0.loc13_5.2, @EqWith.WithSelf.Equal(%U.loc11_12.1, %T.loc11_22.1) [symbolic = %specific_impl_fn.loc13_5.2 (constants.%specific_impl_fn.67a)] +// CHECK:STDOUT: %assoc1: @EqWith.loc11.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = assoc_entity element1, imports.%Core.import_ref.03f [symbolic = %assoc1 (constants.%assoc1.0ffc88.2)] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%U.loc11_12.1, %T.loc11_22.1) [symbolic = %EqWith.WithSelf.NotEqual.type (constants.%EqWith.WithSelf.NotEqual.type.c5b45a.3)] +// CHECK:STDOUT: %.loc14_5.2: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type, %T.loc11_22.1 [symbolic = %.loc14_5.2 (constants.%.8ed)] +// CHECK:STDOUT: %impl.elem1.loc14_5.2: @EqWith.loc11.%.loc14_5.2 (%.8ed) = impl_witness_access %EqWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc14_5.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %specific_impl_fn.loc14_5.2: = specific_impl_function %impl.elem1.loc14_5.2, @EqWith.WithSelf.NotEqual(%U.loc11_12.1, %T.loc11_22.1) [symbolic = %specific_impl_fn.loc14_5.2 (constants.%specific_impl_fn.81f)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @EqWith.loc11.%T.as_type.loc11_44.1 (%T.as_type), %y.param: @EqWith.loc11.%U.loc11_12.1 (%U)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref.loc13: @EqWith.loc11.%T.as_type.loc11_44.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc13: @EqWith.loc11.%U.loc11_12.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %EqWith.type.loc13: type = facet_type <@EqWith.1, @EqWith.1(constants.%U)> [symbolic = %EqWith.type.loc11_38.1 (constants.%EqWith.type.e412df.2)] -// CHECK:STDOUT: %.loc13_5.1: @EqWith.loc11.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = specific_constant imports.%Core.import_ref.0a8, @EqWith.WithSelf(constants.%U, constants.%Self.1e4d80.1) [symbolic = %assoc0 (constants.%assoc0.04df8c.2)] -// CHECK:STDOUT: %Equal.ref: @EqWith.loc11.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = name_ref Equal, %.loc13_5.1 [symbolic = %assoc0 (constants.%assoc0.04df8c.2)] -// CHECK:STDOUT: %impl.elem0.loc13_5.1: @EqWith.loc11.%.loc13_5.2 (%.e7e) = impl_witness_access constants.%EqWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_5.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %EqWith.type.loc13: type = facet_type <@EqWith.1, @EqWith.1(constants.%U)> [symbolic = %EqWith.type.loc11_38.1 (constants.%EqWith.type.98ea86.2)] +// CHECK:STDOUT: %.loc13_5.1: @EqWith.loc11.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = specific_constant imports.%Core.import_ref.725, @EqWith.WithSelf(constants.%U, constants.%Self.d94ae0.1) [symbolic = %assoc0 (constants.%assoc0.eee873.2)] +// CHECK:STDOUT: %Equal.ref: @EqWith.loc11.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = name_ref Equal, %.loc13_5.1 [symbolic = %assoc0 (constants.%assoc0.eee873.2)] +// CHECK:STDOUT: %impl.elem0.loc13_5.1: @EqWith.loc11.%.loc13_5.2 (%.74c) = impl_witness_access constants.%EqWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_5.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %x.ref.loc13, %impl.elem0.loc13_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc13_5.1: = specific_impl_function %impl.elem0.loc13_5.1, @EqWith.WithSelf.Equal(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc13_5.2 (constants.%specific_impl_fn.ba9)] +// CHECK:STDOUT: %specific_impl_fn.loc13_5.1: = specific_impl_function %impl.elem0.loc13_5.1, @EqWith.WithSelf.Equal(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc13_5.2 (constants.%specific_impl_fn.67a)] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %x.ref.loc13, %specific_impl_fn.loc13_5.1 // CHECK:STDOUT: %EqWith.WithSelf.Equal.call: init bool = call %bound_method.loc13_5.2(%x.ref.loc13, %y.ref.loc13) // CHECK:STDOUT: %x.ref.loc14: @EqWith.loc11.%T.as_type.loc11_44.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc14: @EqWith.loc11.%U.loc11_12.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %EqWith.type.loc14: type = facet_type <@EqWith.1, @EqWith.1(constants.%U)> [symbolic = %EqWith.type.loc11_38.1 (constants.%EqWith.type.e412df.2)] -// CHECK:STDOUT: %.loc14_5.1: @EqWith.loc11.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = specific_constant imports.%Core.import_ref.33b, @EqWith.WithSelf(constants.%U, constants.%Self.1e4d80.1) [symbolic = %assoc1 (constants.%assoc1.47b841.2)] -// CHECK:STDOUT: %NotEqual.ref: @EqWith.loc11.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = name_ref NotEqual, %.loc14_5.1 [symbolic = %assoc1 (constants.%assoc1.47b841.2)] -// CHECK:STDOUT: %impl.elem1.loc14_5.1: @EqWith.loc11.%.loc14_5.2 (%.a13) = impl_witness_access constants.%EqWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc14_5.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %EqWith.type.loc14: type = facet_type <@EqWith.1, @EqWith.1(constants.%U)> [symbolic = %EqWith.type.loc11_38.1 (constants.%EqWith.type.98ea86.2)] +// CHECK:STDOUT: %.loc14_5.1: @EqWith.loc11.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = specific_constant imports.%Core.import_ref.8d7, @EqWith.WithSelf(constants.%U, constants.%Self.d94ae0.1) [symbolic = %assoc1 (constants.%assoc1.0ffc88.2)] +// CHECK:STDOUT: %NotEqual.ref: @EqWith.loc11.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = name_ref NotEqual, %.loc14_5.1 [symbolic = %assoc1 (constants.%assoc1.0ffc88.2)] +// CHECK:STDOUT: %impl.elem1.loc14_5.1: @EqWith.loc11.%.loc14_5.2 (%.8ed) = impl_witness_access constants.%EqWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc14_5.2 (constants.%impl.elem1)] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %x.ref.loc14, %impl.elem1.loc14_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc14_5.1: = specific_impl_function %impl.elem1.loc14_5.1, @EqWith.WithSelf.NotEqual(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc14_5.2 (constants.%specific_impl_fn.a6f)] +// CHECK:STDOUT: %specific_impl_fn.loc14_5.1: = specific_impl_function %impl.elem1.loc14_5.1, @EqWith.WithSelf.NotEqual(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc14_5.2 (constants.%specific_impl_fn.81f)] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %x.ref.loc14, %specific_impl_fn.loc14_5.1 // CHECK:STDOUT: %EqWith.WithSelf.NotEqual.call: init bool = call %bound_method.loc14_5.2(%x.ref.loc14, %y.ref.loc14) // CHECK:STDOUT: @@ -468,37 +468,37 @@ fn Test(only_neq: Cpp.OnlyNeq, // CHECK:STDOUT: // CHECK:STDOUT: specific @EqWith.loc11(constants.%U, constants.%T) { // CHECK:STDOUT: %U.loc11_12.1 => constants.%U -// CHECK:STDOUT: %EqWith.type.loc11_38.1 => constants.%EqWith.type.e412df.2 +// CHECK:STDOUT: %EqWith.type.loc11_38.1 => constants.%EqWith.type.98ea86.2 // CHECK:STDOUT: %T.loc11_22.1 => constants.%T -// CHECK:STDOUT: %pattern_type.loc11_22 => constants.%pattern_type.243 +// CHECK:STDOUT: %pattern_type.loc11_22 => constants.%pattern_type.3d4 // CHECK:STDOUT: %T.as_type.loc11_44.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc11_42 => constants.%pattern_type.479039.2 +// CHECK:STDOUT: %pattern_type.loc11_42 => constants.%pattern_type.e6374a.2 // CHECK:STDOUT: %pattern_type.loc11_48 => constants.%pattern_type.51d1c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @EqWith.loc11(constants.%EqualityComparable, constants.%EqWith.facet.081) { +// CHECK:STDOUT: specific @EqWith.loc11(constants.%EqualityComparable, constants.%EqWith.facet.b15) { // CHECK:STDOUT: %U.loc11_12.1 => constants.%EqualityComparable -// CHECK:STDOUT: %EqWith.type.loc11_38.1 => constants.%EqWith.type.dae -// CHECK:STDOUT: %T.loc11_22.1 => constants.%EqWith.facet.081 -// CHECK:STDOUT: %pattern_type.loc11_22 => constants.%pattern_type.495 +// CHECK:STDOUT: %EqWith.type.loc11_38.1 => constants.%EqWith.type.6a7 +// CHECK:STDOUT: %T.loc11_22.1 => constants.%EqWith.facet.b15 +// CHECK:STDOUT: %pattern_type.loc11_22 => constants.%pattern_type.876 // CHECK:STDOUT: %T.as_type.loc11_44.1 => constants.%EqualityComparable -// CHECK:STDOUT: %pattern_type.loc11_42 => constants.%pattern_type.51b -// CHECK:STDOUT: %pattern_type.loc11_48 => constants.%pattern_type.51b +// CHECK:STDOUT: %pattern_type.loc11_42 => constants.%pattern_type.73b +// CHECK:STDOUT: %pattern_type.loc11_48 => constants.%pattern_type.73b // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc11_42 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc11_48 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc13 => constants.%complete_type.c58 -// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.fa0 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.5f5 -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.c97 -// CHECK:STDOUT: %.loc13_5.2 => constants.%.a66 -// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.c57 +// CHECK:STDOUT: %require_complete.loc13 => constants.%complete_type.c86 +// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.ecd +// CHECK:STDOUT: %assoc0 => constants.%assoc0.fab +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.6ae +// CHECK:STDOUT: %.loc13_5.2 => constants.%.96d +// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.505 // CHECK:STDOUT: %impl.elem0.loc13_5.2 => constants.%EqualityComparable.Equal // CHECK:STDOUT: %specific_impl_fn.loc13_5.2 => constants.%EqualityComparable.Equal -// CHECK:STDOUT: %assoc1 => constants.%assoc1.8e8 -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.ecf -// CHECK:STDOUT: %.loc14_5.2 => constants.%.87a +// CHECK:STDOUT: %assoc1 => constants.%assoc1.c5e +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.92a +// CHECK:STDOUT: %.loc14_5.2 => constants.%.a35 // CHECK:STDOUT: %impl.elem1.loc14_5.2 => constants.%EqualityComparable.NotEqual // CHECK:STDOUT: %specific_impl_fn.loc14_5.2 => constants.%EqualityComparable.NotEqual // CHECK:STDOUT: } @@ -508,178 +508,178 @@ fn Test(only_neq: Cpp.OnlyNeq, // CHECK:STDOUT: constants { // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %Other: type = symbolic_binding Other, 0 [symbolic] -// CHECK:STDOUT: %EqWith.type.e412df.1: type = facet_type <@EqWith.1, @EqWith.1(%Other)> [symbolic] -// CHECK:STDOUT: %Self.1e4d80.1: %EqWith.type.e412df.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %EqWith.assoc_type.27e9f5.1: type = assoc_entity_type @EqWith.1, @EqWith.1(%Other) [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.a34bef.1: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Other, %Self.1e4d80.1) [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.34d150.1: %EqWith.WithSelf.NotEqual.type.a34bef.1 = struct_value () [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.28b02d.1: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Other, %Self.1e4d80.1) [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.6ee1cd.1: %EqWith.WithSelf.Equal.type.28b02d.1 = struct_value () [symbolic] -// CHECK:STDOUT: %EqWith.type.e412df.2: type = facet_type <@EqWith.1, @EqWith.1(%U)> [symbolic] -// CHECK:STDOUT: %pattern_type.243: type = pattern_type %EqWith.type.e412df.2 [symbolic] -// CHECK:STDOUT: %T: %EqWith.type.e412df.2 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %EqWith.assoc_type.27e9f5.2: type = assoc_entity_type @EqWith.1, @EqWith.1(%U) [symbolic] -// CHECK:STDOUT: %assoc0.04df8c.2: %EqWith.assoc_type.27e9f5.2 = assoc_entity element0, imports.%Core.import_ref.eea [symbolic] -// CHECK:STDOUT: %assoc1.47b841.2: %EqWith.assoc_type.27e9f5.2 = assoc_entity element1, imports.%Core.import_ref.228 [symbolic] +// CHECK:STDOUT: %EqWith.type.98ea86.1: type = facet_type <@EqWith.1, @EqWith.1(%Other)> [symbolic] +// CHECK:STDOUT: %Self.d94ae0.1: %EqWith.type.98ea86.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %EqWith.assoc_type.85b122.1: type = assoc_entity_type @EqWith.1, @EqWith.1(%Other) [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.c5b45a.1: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Other, %Self.d94ae0.1) [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.b4230d.1: %EqWith.WithSelf.NotEqual.type.c5b45a.1 = struct_value () [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.b82ec7.1: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Other, %Self.d94ae0.1) [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.ae3c3e.1: %EqWith.WithSelf.Equal.type.b82ec7.1 = struct_value () [symbolic] +// CHECK:STDOUT: %EqWith.type.98ea86.2: type = facet_type <@EqWith.1, @EqWith.1(%U)> [symbolic] +// CHECK:STDOUT: %pattern_type.3d4: type = pattern_type %EqWith.type.98ea86.2 [symbolic] +// CHECK:STDOUT: %T: %EqWith.type.98ea86.2 = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %EqWith.assoc_type.85b122.2: type = assoc_entity_type @EqWith.1, @EqWith.1(%U) [symbolic] +// CHECK:STDOUT: %assoc0.eee873.2: %EqWith.assoc_type.85b122.2 = assoc_entity element0, imports.%Core.import_ref.5ba [symbolic] +// CHECK:STDOUT: %assoc1.0ffc88.2: %EqWith.assoc_type.85b122.2 = assoc_entity element1, imports.%Core.import_ref.03f [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.479039.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.e6374a.2: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %pattern_type.51d1c4.2: type = pattern_type %U [symbolic] -// CHECK:STDOUT: %require_complete.1c9: = require_complete_type %EqWith.type.e412df.2 [symbolic] -// CHECK:STDOUT: %assoc0.5b6: %EqWith.assoc_type.27e9f5.1 = assoc_entity element0, imports.%Core.import_ref.c77 [symbolic] +// CHECK:STDOUT: %require_complete.fb5: = require_complete_type %EqWith.type.98ea86.2 [symbolic] +// CHECK:STDOUT: %assoc0.d00: %EqWith.assoc_type.85b122.1 = assoc_entity element0, imports.%Core.import_ref.2e5 [symbolic] // CHECK:STDOUT: %EqWith.lookup_impl_witness: = lookup_impl_witness %T, @EqWith.1, @EqWith.1(%U) [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.28b02d.3: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%U, %T) [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.a34bef.3: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%U, %T) [symbolic] -// CHECK:STDOUT: %.e7e: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.28b02d.3, %T [symbolic] -// CHECK:STDOUT: %impl.elem0: %.e7e = impl_witness_access %EqWith.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.ba9: = specific_impl_function %impl.elem0, @EqWith.WithSelf.Equal(%U, %T) [symbolic] -// CHECK:STDOUT: %assoc1.491: %EqWith.assoc_type.27e9f5.1 = assoc_entity element1, imports.%Core.import_ref.c36 [symbolic] -// CHECK:STDOUT: %.a13: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.a34bef.3, %T [symbolic] -// CHECK:STDOUT: %impl.elem1: %.a13 = impl_witness_access %EqWith.lookup_impl_witness, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a6f: = specific_impl_function %impl.elem1, @EqWith.WithSelf.NotEqual(%U, %T) [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.b82ec7.3: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%U, %T) [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.c5b45a.3: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%U, %T) [symbolic] +// CHECK:STDOUT: %.74c: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.b82ec7.3, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.74c = impl_witness_access %EqWith.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.67a: = specific_impl_function %impl.elem0, @EqWith.WithSelf.Equal(%U, %T) [symbolic] +// CHECK:STDOUT: %assoc1.d80: %EqWith.assoc_type.85b122.1 = assoc_entity element1, imports.%Core.import_ref.b78 [symbolic] +// CHECK:STDOUT: %.8ed: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.c5b45a.3, %T [symbolic] +// CHECK:STDOUT: %impl.elem1: %.8ed = impl_witness_access %EqWith.lookup_impl_witness, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.81f: = specific_impl_function %impl.elem1, @EqWith.WithSelf.NotEqual(%U, %T) [symbolic] // CHECK:STDOUT: %A1: type = class_type @A1 [concrete] -// CHECK:STDOUT: %pattern_type.c8a: type = pattern_type %A1 [concrete] +// CHECK:STDOUT: %pattern_type.3b4: type = pattern_type %A1 [concrete] // CHECK:STDOUT: %B1: type = class_type @B1 [concrete] -// CHECK:STDOUT: %pattern_type.e62: type = pattern_type %B1 [concrete] +// CHECK:STDOUT: %pattern_type.5b2: type = pattern_type %B1 [concrete] // CHECK:STDOUT: %A2: type = class_type @A2 [concrete] -// CHECK:STDOUT: %pattern_type.1e3: type = pattern_type %A2 [concrete] +// CHECK:STDOUT: %pattern_type.9f0: type = pattern_type %A2 [concrete] // CHECK:STDOUT: %B2: type = class_type @B2 [concrete] -// CHECK:STDOUT: %pattern_type.fab: type = pattern_type %B2 [concrete] +// CHECK:STDOUT: %pattern_type.d1e: type = pattern_type %B2 [concrete] // CHECK:STDOUT: %A3: type = class_type @A3 [concrete] -// CHECK:STDOUT: %pattern_type.ada: type = pattern_type %A3 [concrete] +// CHECK:STDOUT: %pattern_type.7fe: type = pattern_type %A3 [concrete] // CHECK:STDOUT: %B3: type = class_type @B3 [concrete] -// CHECK:STDOUT: %pattern_type.a20: type = pattern_type %B3 [concrete] +// CHECK:STDOUT: %pattern_type.2dd: type = pattern_type %B3 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %EqWith.type.073: type = facet_type <@EqWith.1, @EqWith.1(%B1)> [concrete] -// CHECK:STDOUT: %EqWith.assoc_type.1ba: type = assoc_entity_type @EqWith.1, @EqWith.1(%B1) [concrete] -// CHECK:STDOUT: %assoc0.f24: %EqWith.assoc_type.1ba = assoc_entity element0, imports.%Core.import_ref.eea [concrete] -// CHECK:STDOUT: %assoc1.449: %EqWith.assoc_type.1ba = assoc_entity element1, imports.%Core.import_ref.228 [concrete] +// CHECK:STDOUT: %EqWith.type.6ed: type = facet_type <@EqWith.1, @EqWith.1(%B1)> [concrete] +// CHECK:STDOUT: %EqWith.assoc_type.b38: type = assoc_entity_type @EqWith.1, @EqWith.1(%B1) [concrete] +// CHECK:STDOUT: %assoc0.a48: %EqWith.assoc_type.b38 = assoc_entity element0, imports.%Core.import_ref.5ba [concrete] +// CHECK:STDOUT: %assoc1.2d4: %EqWith.assoc_type.b38 = assoc_entity element1, imports.%Core.import_ref.03f [concrete] // CHECK:STDOUT: %A1.Equal.type: type = fn_type @A1.Equal [concrete] // CHECK:STDOUT: %A1.Equal: %A1.Equal.type = struct_value () [concrete] // CHECK:STDOUT: %A1.NotEqual.type: type = fn_type @A1.NotEqual [concrete] // CHECK:STDOUT: %A1.NotEqual: %A1.NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.8a4: = custom_witness (%A1.Equal, %A1.NotEqual), @EqWith.1, @EqWith.1(%B1) [concrete] -// CHECK:STDOUT: %EqWith.facet.716: %EqWith.type.073 = facet_value %A1, (%custom_witness.8a4) [concrete] -// CHECK:STDOUT: %pattern_type.3f8: type = pattern_type %EqWith.type.073 [concrete] -// CHECK:STDOUT: %EqWith.type.48c: type = facet_type <@EqWith.1, @EqWith.1(%A1)> [concrete] -// CHECK:STDOUT: %EqWith.assoc_type.22c: type = assoc_entity_type @EqWith.1, @EqWith.1(%A1) [concrete] -// CHECK:STDOUT: %assoc0.265: %EqWith.assoc_type.22c = assoc_entity element0, imports.%Core.import_ref.eea [concrete] -// CHECK:STDOUT: %assoc1.8b1: %EqWith.assoc_type.22c = assoc_entity element1, imports.%Core.import_ref.228 [concrete] +// CHECK:STDOUT: %custom_witness.087: = custom_witness (%A1.Equal, %A1.NotEqual), @EqWith.1, @EqWith.1(%B1) [concrete] +// CHECK:STDOUT: %EqWith.facet.2d3: %EqWith.type.6ed = facet_value %A1, (%custom_witness.087) [concrete] +// CHECK:STDOUT: %pattern_type.e16: type = pattern_type %EqWith.type.6ed [concrete] +// CHECK:STDOUT: %EqWith.type.dda: type = facet_type <@EqWith.1, @EqWith.1(%A1)> [concrete] +// CHECK:STDOUT: %EqWith.assoc_type.5ce: type = assoc_entity_type @EqWith.1, @EqWith.1(%A1) [concrete] +// CHECK:STDOUT: %assoc0.7c8: %EqWith.assoc_type.5ce = assoc_entity element0, imports.%Core.import_ref.5ba [concrete] +// CHECK:STDOUT: %assoc1.651: %EqWith.assoc_type.5ce = assoc_entity element1, imports.%Core.import_ref.03f [concrete] // CHECK:STDOUT: %B1.Equal.type: type = fn_type @B1.Equal [concrete] // CHECK:STDOUT: %B1.Equal: %B1.Equal.type = struct_value () [concrete] // CHECK:STDOUT: %B1.NotEqual.type: type = fn_type @B1.NotEqual [concrete] // CHECK:STDOUT: %B1.NotEqual: %B1.NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.3b6: = custom_witness (%B1.Equal, %B1.NotEqual), @EqWith.1, @EqWith.1(%A1) [concrete] -// CHECK:STDOUT: %EqWith.facet.5f4: %EqWith.type.48c = facet_value %B1, (%custom_witness.3b6) [concrete] -// CHECK:STDOUT: %pattern_type.fe1: type = pattern_type %EqWith.type.48c [concrete] -// CHECK:STDOUT: %EqWith.type.d12: type = facet_type <@EqWith.1, @EqWith.1(%A2)> [concrete] -// CHECK:STDOUT: %EqWith.assoc_type.1d4: type = assoc_entity_type @EqWith.1, @EqWith.1(%A2) [concrete] -// CHECK:STDOUT: %assoc0.00f: %EqWith.assoc_type.1d4 = assoc_entity element0, imports.%Core.import_ref.eea [concrete] -// CHECK:STDOUT: %assoc1.09d: %EqWith.assoc_type.1d4 = assoc_entity element1, imports.%Core.import_ref.228 [concrete] +// CHECK:STDOUT: %custom_witness.123: = custom_witness (%B1.Equal, %B1.NotEqual), @EqWith.1, @EqWith.1(%A1) [concrete] +// CHECK:STDOUT: %EqWith.facet.b94: %EqWith.type.dda = facet_value %B1, (%custom_witness.123) [concrete] +// CHECK:STDOUT: %pattern_type.a95: type = pattern_type %EqWith.type.dda [concrete] +// CHECK:STDOUT: %EqWith.type.c63: type = facet_type <@EqWith.1, @EqWith.1(%A2)> [concrete] +// CHECK:STDOUT: %EqWith.assoc_type.2ca: type = assoc_entity_type @EqWith.1, @EqWith.1(%A2) [concrete] +// CHECK:STDOUT: %assoc0.878: %EqWith.assoc_type.2ca = assoc_entity element0, imports.%Core.import_ref.5ba [concrete] +// CHECK:STDOUT: %assoc1.7a2: %EqWith.assoc_type.2ca = assoc_entity element1, imports.%Core.import_ref.03f [concrete] // CHECK:STDOUT: %B2.Equal.type: type = fn_type @B2.Equal [concrete] // CHECK:STDOUT: %B2.Equal: %B2.Equal.type = struct_value () [concrete] // CHECK:STDOUT: %B2.NotEqual.type: type = fn_type @B2.NotEqual [concrete] // CHECK:STDOUT: %B2.NotEqual: %B2.NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.778: = custom_witness (%B2.Equal, %B2.NotEqual), @EqWith.1, @EqWith.1(%A2) [concrete] -// CHECK:STDOUT: %EqWith.facet.5f1: %EqWith.type.d12 = facet_value %B2, (%custom_witness.778) [concrete] -// CHECK:STDOUT: %pattern_type.481: type = pattern_type %EqWith.type.d12 [concrete] -// CHECK:STDOUT: %EqWith.type.663: type = facet_type <@EqWith.1, @EqWith.1(%B3)> [concrete] -// CHECK:STDOUT: %EqWith.assoc_type.a6b: type = assoc_entity_type @EqWith.1, @EqWith.1(%B3) [concrete] -// CHECK:STDOUT: %assoc0.dc0: %EqWith.assoc_type.a6b = assoc_entity element0, imports.%Core.import_ref.eea [concrete] -// CHECK:STDOUT: %assoc1.877: %EqWith.assoc_type.a6b = assoc_entity element1, imports.%Core.import_ref.228 [concrete] +// CHECK:STDOUT: %custom_witness.640: = custom_witness (%B2.Equal, %B2.NotEqual), @EqWith.1, @EqWith.1(%A2) [concrete] +// CHECK:STDOUT: %EqWith.facet.fe0: %EqWith.type.c63 = facet_value %B2, (%custom_witness.640) [concrete] +// CHECK:STDOUT: %pattern_type.cbd: type = pattern_type %EqWith.type.c63 [concrete] +// CHECK:STDOUT: %EqWith.type.2e6: type = facet_type <@EqWith.1, @EqWith.1(%B3)> [concrete] +// CHECK:STDOUT: %EqWith.assoc_type.eda: type = assoc_entity_type @EqWith.1, @EqWith.1(%B3) [concrete] +// CHECK:STDOUT: %assoc0.34f: %EqWith.assoc_type.eda = assoc_entity element0, imports.%Core.import_ref.5ba [concrete] +// CHECK:STDOUT: %assoc1.c2b: %EqWith.assoc_type.eda = assoc_entity element1, imports.%Core.import_ref.03f [concrete] // CHECK:STDOUT: %A3.Equal.type: type = fn_type @A3.Equal [concrete] // CHECK:STDOUT: %A3.Equal: %A3.Equal.type = struct_value () [concrete] // CHECK:STDOUT: %NotEqual.type: type = fn_type @NotEqual [concrete] // CHECK:STDOUT: %NotEqual: %NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.002: = custom_witness (%A3.Equal, %NotEqual), @EqWith.1, @EqWith.1(%B3) [concrete] -// CHECK:STDOUT: %EqWith.facet.615: %EqWith.type.663 = facet_value %A3, (%custom_witness.002) [concrete] -// CHECK:STDOUT: %pattern_type.1cc: type = pattern_type %EqWith.type.663 [concrete] -// CHECK:STDOUT: %EqWith.type.819: type = facet_type <@EqWith.1, @EqWith.1(%A3)> [concrete] -// CHECK:STDOUT: %EqWith.assoc_type.735: type = assoc_entity_type @EqWith.1, @EqWith.1(%A3) [concrete] -// CHECK:STDOUT: %assoc0.af9: %EqWith.assoc_type.735 = assoc_entity element0, imports.%Core.import_ref.eea [concrete] -// CHECK:STDOUT: %assoc1.1f3: %EqWith.assoc_type.735 = assoc_entity element1, imports.%Core.import_ref.228 [concrete] +// CHECK:STDOUT: %custom_witness.528: = custom_witness (%A3.Equal, %NotEqual), @EqWith.1, @EqWith.1(%B3) [concrete] +// CHECK:STDOUT: %EqWith.facet.34d: %EqWith.type.2e6 = facet_value %A3, (%custom_witness.528) [concrete] +// CHECK:STDOUT: %pattern_type.2b2: type = pattern_type %EqWith.type.2e6 [concrete] +// CHECK:STDOUT: %EqWith.type.831: type = facet_type <@EqWith.1, @EqWith.1(%A3)> [concrete] +// CHECK:STDOUT: %EqWith.assoc_type.d85: type = assoc_entity_type @EqWith.1, @EqWith.1(%A3) [concrete] +// CHECK:STDOUT: %assoc0.b7b: %EqWith.assoc_type.d85 = assoc_entity element0, imports.%Core.import_ref.5ba [concrete] +// CHECK:STDOUT: %assoc1.a3b: %EqWith.assoc_type.d85 = assoc_entity element1, imports.%Core.import_ref.03f [concrete] // CHECK:STDOUT: %Equal.type: type = fn_type @Equal [concrete] // CHECK:STDOUT: %Equal: %Equal.type = struct_value () [concrete] // CHECK:STDOUT: %B3.NotEqual.type: type = fn_type @B3.NotEqual [concrete] // CHECK:STDOUT: %B3.NotEqual: %B3.NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.abb: = custom_witness (%Equal, %B3.NotEqual), @EqWith.1, @EqWith.1(%A3) [concrete] -// CHECK:STDOUT: %EqWith.facet.59d: %EqWith.type.819 = facet_value %B3, (%custom_witness.abb) [concrete] -// CHECK:STDOUT: %pattern_type.c1c: type = pattern_type %EqWith.type.819 [concrete] -// CHECK:STDOUT: %complete_type.ff3: = complete_type_witness %EqWith.type.073 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.13e: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%B1, %EqWith.facet.716) [concrete] -// CHECK:STDOUT: %.1c2: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.13e, %EqWith.facet.716 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.216: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%B1, %EqWith.facet.716) [concrete] -// CHECK:STDOUT: %.0d2: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.216, %EqWith.facet.716 [concrete] -// CHECK:STDOUT: %complete_type.ea8: = complete_type_witness %EqWith.type.48c [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.d3f: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%A1, %EqWith.facet.5f4) [concrete] -// CHECK:STDOUT: %.1aa: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.d3f, %EqWith.facet.5f4 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.2be: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%A1, %EqWith.facet.5f4) [concrete] -// CHECK:STDOUT: %.891: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.2be, %EqWith.facet.5f4 [concrete] -// CHECK:STDOUT: %complete_type.75a: = complete_type_witness %EqWith.type.d12 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.80a: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%A2, %EqWith.facet.5f1) [concrete] -// CHECK:STDOUT: %.cd2: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.80a, %EqWith.facet.5f1 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.fca: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%A2, %EqWith.facet.5f1) [concrete] -// CHECK:STDOUT: %.0d7: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.fca, %EqWith.facet.5f1 [concrete] -// CHECK:STDOUT: %complete_type.4da: = complete_type_witness %EqWith.type.663 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.e85: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%B3, %EqWith.facet.615) [concrete] -// CHECK:STDOUT: %.a39: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.e85, %EqWith.facet.615 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.2cb: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%B3, %EqWith.facet.615) [concrete] -// CHECK:STDOUT: %.fe4: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.2cb, %EqWith.facet.615 [concrete] -// CHECK:STDOUT: %complete_type.526: = complete_type_witness %EqWith.type.819 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.6b2: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%A3, %EqWith.facet.59d) [concrete] -// CHECK:STDOUT: %.58b: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.6b2, %EqWith.facet.59d [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.353: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%A3, %EqWith.facet.59d) [concrete] -// CHECK:STDOUT: %.b5c: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.353, %EqWith.facet.59d [concrete] +// CHECK:STDOUT: %custom_witness.0ff: = custom_witness (%Equal, %B3.NotEqual), @EqWith.1, @EqWith.1(%A3) [concrete] +// CHECK:STDOUT: %EqWith.facet.2a4: %EqWith.type.831 = facet_value %B3, (%custom_witness.0ff) [concrete] +// CHECK:STDOUT: %pattern_type.9c8: type = pattern_type %EqWith.type.831 [concrete] +// CHECK:STDOUT: %complete_type.1d5: = complete_type_witness %EqWith.type.6ed [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.b99: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%B1, %EqWith.facet.2d3) [concrete] +// CHECK:STDOUT: %.bad: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.b99, %EqWith.facet.2d3 [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.b2d: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%B1, %EqWith.facet.2d3) [concrete] +// CHECK:STDOUT: %.1c3: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.b2d, %EqWith.facet.2d3 [concrete] +// CHECK:STDOUT: %complete_type.f84: = complete_type_witness %EqWith.type.dda [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.97e: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%A1, %EqWith.facet.b94) [concrete] +// CHECK:STDOUT: %.f78: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.97e, %EqWith.facet.b94 [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.a75: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%A1, %EqWith.facet.b94) [concrete] +// CHECK:STDOUT: %.eec: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.a75, %EqWith.facet.b94 [concrete] +// CHECK:STDOUT: %complete_type.f0c: = complete_type_witness %EqWith.type.c63 [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.e2e: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%A2, %EqWith.facet.fe0) [concrete] +// CHECK:STDOUT: %.ffe: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.e2e, %EqWith.facet.fe0 [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.902: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%A2, %EqWith.facet.fe0) [concrete] +// CHECK:STDOUT: %.609: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.902, %EqWith.facet.fe0 [concrete] +// CHECK:STDOUT: %complete_type.777: = complete_type_witness %EqWith.type.2e6 [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.a57: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%B3, %EqWith.facet.34d) [concrete] +// CHECK:STDOUT: %.fc2: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.a57, %EqWith.facet.34d [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.9c3: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%B3, %EqWith.facet.34d) [concrete] +// CHECK:STDOUT: %.b37: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.9c3, %EqWith.facet.34d [concrete] +// CHECK:STDOUT: %complete_type.94e: = complete_type_witness %EqWith.type.831 [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.351: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%A3, %EqWith.facet.2a4) [concrete] +// CHECK:STDOUT: %.06c: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.351, %EqWith.facet.2a4 [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.682: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%A3, %EqWith.facet.2a4) [concrete] +// CHECK:STDOUT: %.3ea: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.682, %EqWith.facet.2a4 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.0a8: @EqWith.WithSelf.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%assoc0 (constants.%assoc0.5b6)] -// CHECK:STDOUT: %Core.import_ref.33b: @EqWith.WithSelf.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%assoc1 (constants.%assoc1.491)] -// CHECK:STDOUT: %Core.import_ref.228: @EqWith.WithSelf.%EqWith.WithSelf.NotEqual.type (%EqWith.WithSelf.NotEqual.type.a34bef.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%EqWith.WithSelf.NotEqual (constants.%EqWith.WithSelf.NotEqual.34d150.1)] -// CHECK:STDOUT: %Core.import_ref.eea: @EqWith.WithSelf.%EqWith.WithSelf.Equal.type (%EqWith.WithSelf.Equal.type.28b02d.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%EqWith.WithSelf.Equal (constants.%EqWith.WithSelf.Equal.6ee1cd.1)] -// CHECK:STDOUT: %Core.import_ref.c77 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.c36 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.725: @EqWith.WithSelf.%EqWith.assoc_type (%EqWith.assoc_type.85b122.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%assoc0 (constants.%assoc0.d00)] +// CHECK:STDOUT: %Core.import_ref.8d7: @EqWith.WithSelf.%EqWith.assoc_type (%EqWith.assoc_type.85b122.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%assoc1 (constants.%assoc1.d80)] +// CHECK:STDOUT: %Core.import_ref.03f: @EqWith.WithSelf.%EqWith.WithSelf.NotEqual.type (%EqWith.WithSelf.NotEqual.type.c5b45a.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%EqWith.WithSelf.NotEqual (constants.%EqWith.WithSelf.NotEqual.b4230d.1)] +// CHECK:STDOUT: %Core.import_ref.5ba: @EqWith.WithSelf.%EqWith.WithSelf.Equal.type (%EqWith.WithSelf.Equal.type.b82ec7.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%EqWith.WithSelf.Equal (constants.%EqWith.WithSelf.Equal.ae3c3e.1)] +// CHECK:STDOUT: %Core.import_ref.2e5 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.b78 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @EqWith.loc34(%U.loc34_12.2: type, %T.loc34_22.2: @EqWith.loc34.%EqWith.type.loc34_38.1 (%EqWith.type.e412df.2)) { +// CHECK:STDOUT: generic fn @EqWith.loc34(%U.loc34_12.2: type, %T.loc34_22.2: @EqWith.loc34.%EqWith.type.loc34_38.1 (%EqWith.type.98ea86.2)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc36: = require_complete_type %EqWith.type.loc34_38.1 [symbolic = %require_complete.loc36 (constants.%require_complete.1c9)] -// CHECK:STDOUT: %EqWith.assoc_type: type = assoc_entity_type @EqWith.1, @EqWith.1(%U.loc34_12.1) [symbolic = %EqWith.assoc_type (constants.%EqWith.assoc_type.27e9f5.2)] -// CHECK:STDOUT: %assoc0: @EqWith.loc34.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = assoc_entity element0, imports.%Core.import_ref.eea [symbolic = %assoc0 (constants.%assoc0.04df8c.2)] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%U.loc34_12.1, %T.loc34_22.1) [symbolic = %EqWith.WithSelf.Equal.type (constants.%EqWith.WithSelf.Equal.type.28b02d.3)] -// CHECK:STDOUT: %.loc36_5.2: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type, %T.loc34_22.1 [symbolic = %.loc36_5.2 (constants.%.e7e)] +// CHECK:STDOUT: %require_complete.loc36: = require_complete_type %EqWith.type.loc34_38.1 [symbolic = %require_complete.loc36 (constants.%require_complete.fb5)] +// CHECK:STDOUT: %EqWith.assoc_type: type = assoc_entity_type @EqWith.1, @EqWith.1(%U.loc34_12.1) [symbolic = %EqWith.assoc_type (constants.%EqWith.assoc_type.85b122.2)] +// CHECK:STDOUT: %assoc0: @EqWith.loc34.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = assoc_entity element0, imports.%Core.import_ref.5ba [symbolic = %assoc0 (constants.%assoc0.eee873.2)] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%U.loc34_12.1, %T.loc34_22.1) [symbolic = %EqWith.WithSelf.Equal.type (constants.%EqWith.WithSelf.Equal.type.b82ec7.3)] +// CHECK:STDOUT: %.loc36_5.2: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type, %T.loc34_22.1 [symbolic = %.loc36_5.2 (constants.%.74c)] // CHECK:STDOUT: %EqWith.lookup_impl_witness: = lookup_impl_witness %T.loc34_22.1, @EqWith.1, @EqWith.1(%U.loc34_12.1) [symbolic = %EqWith.lookup_impl_witness (constants.%EqWith.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc36_5.2: @EqWith.loc34.%.loc36_5.2 (%.e7e) = impl_witness_access %EqWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc36_5.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc36_5.2: = specific_impl_function %impl.elem0.loc36_5.2, @EqWith.WithSelf.Equal(%U.loc34_12.1, %T.loc34_22.1) [symbolic = %specific_impl_fn.loc36_5.2 (constants.%specific_impl_fn.ba9)] -// CHECK:STDOUT: %assoc1: @EqWith.loc34.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = assoc_entity element1, imports.%Core.import_ref.228 [symbolic = %assoc1 (constants.%assoc1.47b841.2)] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%U.loc34_12.1, %T.loc34_22.1) [symbolic = %EqWith.WithSelf.NotEqual.type (constants.%EqWith.WithSelf.NotEqual.type.a34bef.3)] -// CHECK:STDOUT: %.loc37_5.2: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type, %T.loc34_22.1 [symbolic = %.loc37_5.2 (constants.%.a13)] -// CHECK:STDOUT: %impl.elem1.loc37_5.2: @EqWith.loc34.%.loc37_5.2 (%.a13) = impl_witness_access %EqWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc37_5.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %specific_impl_fn.loc37_5.2: = specific_impl_function %impl.elem1.loc37_5.2, @EqWith.WithSelf.NotEqual(%U.loc34_12.1, %T.loc34_22.1) [symbolic = %specific_impl_fn.loc37_5.2 (constants.%specific_impl_fn.a6f)] +// CHECK:STDOUT: %impl.elem0.loc36_5.2: @EqWith.loc34.%.loc36_5.2 (%.74c) = impl_witness_access %EqWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc36_5.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc36_5.2: = specific_impl_function %impl.elem0.loc36_5.2, @EqWith.WithSelf.Equal(%U.loc34_12.1, %T.loc34_22.1) [symbolic = %specific_impl_fn.loc36_5.2 (constants.%specific_impl_fn.67a)] +// CHECK:STDOUT: %assoc1: @EqWith.loc34.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = assoc_entity element1, imports.%Core.import_ref.03f [symbolic = %assoc1 (constants.%assoc1.0ffc88.2)] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%U.loc34_12.1, %T.loc34_22.1) [symbolic = %EqWith.WithSelf.NotEqual.type (constants.%EqWith.WithSelf.NotEqual.type.c5b45a.3)] +// CHECK:STDOUT: %.loc37_5.2: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type, %T.loc34_22.1 [symbolic = %.loc37_5.2 (constants.%.8ed)] +// CHECK:STDOUT: %impl.elem1.loc37_5.2: @EqWith.loc34.%.loc37_5.2 (%.8ed) = impl_witness_access %EqWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc37_5.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %specific_impl_fn.loc37_5.2: = specific_impl_function %impl.elem1.loc37_5.2, @EqWith.WithSelf.NotEqual(%U.loc34_12.1, %T.loc34_22.1) [symbolic = %specific_impl_fn.loc37_5.2 (constants.%specific_impl_fn.81f)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @EqWith.loc34.%T.as_type.loc34_44.1 (%T.as_type), %y.param: @EqWith.loc34.%U.loc34_12.1 (%U)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref.loc36: @EqWith.loc34.%T.as_type.loc34_44.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc36: @EqWith.loc34.%U.loc34_12.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %EqWith.type.loc36: type = facet_type <@EqWith.1, @EqWith.1(constants.%U)> [symbolic = %EqWith.type.loc34_38.1 (constants.%EqWith.type.e412df.2)] -// CHECK:STDOUT: %.loc36_5.1: @EqWith.loc34.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = specific_constant imports.%Core.import_ref.0a8, @EqWith.WithSelf(constants.%U, constants.%Self.1e4d80.1) [symbolic = %assoc0 (constants.%assoc0.04df8c.2)] -// CHECK:STDOUT: %Equal.ref: @EqWith.loc34.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = name_ref Equal, %.loc36_5.1 [symbolic = %assoc0 (constants.%assoc0.04df8c.2)] -// CHECK:STDOUT: %impl.elem0.loc36_5.1: @EqWith.loc34.%.loc36_5.2 (%.e7e) = impl_witness_access constants.%EqWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc36_5.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %EqWith.type.loc36: type = facet_type <@EqWith.1, @EqWith.1(constants.%U)> [symbolic = %EqWith.type.loc34_38.1 (constants.%EqWith.type.98ea86.2)] +// CHECK:STDOUT: %.loc36_5.1: @EqWith.loc34.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = specific_constant imports.%Core.import_ref.725, @EqWith.WithSelf(constants.%U, constants.%Self.d94ae0.1) [symbolic = %assoc0 (constants.%assoc0.eee873.2)] +// CHECK:STDOUT: %Equal.ref: @EqWith.loc34.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = name_ref Equal, %.loc36_5.1 [symbolic = %assoc0 (constants.%assoc0.eee873.2)] +// CHECK:STDOUT: %impl.elem0.loc36_5.1: @EqWith.loc34.%.loc36_5.2 (%.74c) = impl_witness_access constants.%EqWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc36_5.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc36_5.1: = bound_method %x.ref.loc36, %impl.elem0.loc36_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc36_5.1: = specific_impl_function %impl.elem0.loc36_5.1, @EqWith.WithSelf.Equal(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc36_5.2 (constants.%specific_impl_fn.ba9)] +// CHECK:STDOUT: %specific_impl_fn.loc36_5.1: = specific_impl_function %impl.elem0.loc36_5.1, @EqWith.WithSelf.Equal(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc36_5.2 (constants.%specific_impl_fn.67a)] // CHECK:STDOUT: %bound_method.loc36_5.2: = bound_method %x.ref.loc36, %specific_impl_fn.loc36_5.1 // CHECK:STDOUT: %EqWith.WithSelf.Equal.call: init bool = call %bound_method.loc36_5.2(%x.ref.loc36, %y.ref.loc36) // CHECK:STDOUT: %x.ref.loc37: @EqWith.loc34.%T.as_type.loc34_44.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc37: @EqWith.loc34.%U.loc34_12.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %EqWith.type.loc37: type = facet_type <@EqWith.1, @EqWith.1(constants.%U)> [symbolic = %EqWith.type.loc34_38.1 (constants.%EqWith.type.e412df.2)] -// CHECK:STDOUT: %.loc37_5.1: @EqWith.loc34.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = specific_constant imports.%Core.import_ref.33b, @EqWith.WithSelf(constants.%U, constants.%Self.1e4d80.1) [symbolic = %assoc1 (constants.%assoc1.47b841.2)] -// CHECK:STDOUT: %NotEqual.ref: @EqWith.loc34.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = name_ref NotEqual, %.loc37_5.1 [symbolic = %assoc1 (constants.%assoc1.47b841.2)] -// CHECK:STDOUT: %impl.elem1.loc37_5.1: @EqWith.loc34.%.loc37_5.2 (%.a13) = impl_witness_access constants.%EqWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc37_5.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %EqWith.type.loc37: type = facet_type <@EqWith.1, @EqWith.1(constants.%U)> [symbolic = %EqWith.type.loc34_38.1 (constants.%EqWith.type.98ea86.2)] +// CHECK:STDOUT: %.loc37_5.1: @EqWith.loc34.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = specific_constant imports.%Core.import_ref.8d7, @EqWith.WithSelf(constants.%U, constants.%Self.d94ae0.1) [symbolic = %assoc1 (constants.%assoc1.0ffc88.2)] +// CHECK:STDOUT: %NotEqual.ref: @EqWith.loc34.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = name_ref NotEqual, %.loc37_5.1 [symbolic = %assoc1 (constants.%assoc1.0ffc88.2)] +// CHECK:STDOUT: %impl.elem1.loc37_5.1: @EqWith.loc34.%.loc37_5.2 (%.8ed) = impl_witness_access constants.%EqWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc37_5.2 (constants.%impl.elem1)] // CHECK:STDOUT: %bound_method.loc37_5.1: = bound_method %x.ref.loc37, %impl.elem1.loc37_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc37_5.1: = specific_impl_function %impl.elem1.loc37_5.1, @EqWith.WithSelf.NotEqual(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc37_5.2 (constants.%specific_impl_fn.a6f)] +// CHECK:STDOUT: %specific_impl_fn.loc37_5.1: = specific_impl_function %impl.elem1.loc37_5.1, @EqWith.WithSelf.NotEqual(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc37_5.2 (constants.%specific_impl_fn.81f)] // CHECK:STDOUT: %bound_method.loc37_5.2: = bound_method %x.ref.loc37, %specific_impl_fn.loc37_5.1 // CHECK:STDOUT: %EqWith.WithSelf.NotEqual.call: init bool = call %bound_method.loc37_5.2(%x.ref.loc37, %y.ref.loc37) // CHECK:STDOUT: @@ -688,145 +688,145 @@ fn Test(only_neq: Cpp.OnlyNeq, // CHECK:STDOUT: // CHECK:STDOUT: specific @EqWith.loc34(constants.%U, constants.%T) { // CHECK:STDOUT: %U.loc34_12.1 => constants.%U -// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.e412df.2 +// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.98ea86.2 // CHECK:STDOUT: %T.loc34_22.1 => constants.%T -// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.243 +// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.3d4 // CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.479039.2 +// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.e6374a.2 // CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.51d1c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @EqWith.loc34(constants.%B1, constants.%EqWith.facet.716) { +// CHECK:STDOUT: specific @EqWith.loc34(constants.%B1, constants.%EqWith.facet.2d3) { // CHECK:STDOUT: %U.loc34_12.1 => constants.%B1 -// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.073 -// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.716 -// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.3f8 +// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.6ed +// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.2d3 +// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.e16 // CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%A1 -// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.c8a -// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.e62 +// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.3b4 +// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.5b2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc34_42 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc34_48 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.ff3 -// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.1ba -// CHECK:STDOUT: %assoc0 => constants.%assoc0.f24 -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.13e -// CHECK:STDOUT: %.loc36_5.2 => constants.%.1c2 -// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.8a4 +// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.1d5 +// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.b38 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.a48 +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.b99 +// CHECK:STDOUT: %.loc36_5.2 => constants.%.bad +// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.087 // CHECK:STDOUT: %impl.elem0.loc36_5.2 => constants.%A1.Equal // CHECK:STDOUT: %specific_impl_fn.loc36_5.2 => constants.%A1.Equal -// CHECK:STDOUT: %assoc1 => constants.%assoc1.449 -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.216 -// CHECK:STDOUT: %.loc37_5.2 => constants.%.0d2 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.2d4 +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.b2d +// CHECK:STDOUT: %.loc37_5.2 => constants.%.1c3 // CHECK:STDOUT: %impl.elem1.loc37_5.2 => constants.%A1.NotEqual // CHECK:STDOUT: %specific_impl_fn.loc37_5.2 => constants.%A1.NotEqual // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @EqWith.loc34(constants.%A1, constants.%EqWith.facet.5f4) { +// CHECK:STDOUT: specific @EqWith.loc34(constants.%A1, constants.%EqWith.facet.b94) { // CHECK:STDOUT: %U.loc34_12.1 => constants.%A1 -// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.48c -// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.5f4 -// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.fe1 +// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.dda +// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.b94 +// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.a95 // CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%B1 -// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.e62 -// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.c8a +// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.5b2 +// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.3b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc34_42 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc34_48 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.ea8 -// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.22c -// CHECK:STDOUT: %assoc0 => constants.%assoc0.265 -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.d3f -// CHECK:STDOUT: %.loc36_5.2 => constants.%.1aa -// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.3b6 +// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.f84 +// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.5ce +// CHECK:STDOUT: %assoc0 => constants.%assoc0.7c8 +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.97e +// CHECK:STDOUT: %.loc36_5.2 => constants.%.f78 +// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.123 // CHECK:STDOUT: %impl.elem0.loc36_5.2 => constants.%B1.Equal // CHECK:STDOUT: %specific_impl_fn.loc36_5.2 => constants.%B1.Equal -// CHECK:STDOUT: %assoc1 => constants.%assoc1.8b1 -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.2be -// CHECK:STDOUT: %.loc37_5.2 => constants.%.891 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.651 +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.a75 +// CHECK:STDOUT: %.loc37_5.2 => constants.%.eec // CHECK:STDOUT: %impl.elem1.loc37_5.2 => constants.%B1.NotEqual // CHECK:STDOUT: %specific_impl_fn.loc37_5.2 => constants.%B1.NotEqual // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @EqWith.loc34(constants.%A2, constants.%EqWith.facet.5f1) { +// CHECK:STDOUT: specific @EqWith.loc34(constants.%A2, constants.%EqWith.facet.fe0) { // CHECK:STDOUT: %U.loc34_12.1 => constants.%A2 -// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.d12 -// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.5f1 -// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.481 +// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.c63 +// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.fe0 +// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.cbd // CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%B2 -// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.fab -// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.1e3 +// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.d1e +// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.9f0 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc34_42 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc34_48 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.75a -// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.1d4 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.00f -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.80a -// CHECK:STDOUT: %.loc36_5.2 => constants.%.cd2 -// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.778 +// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.f0c +// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.2ca +// CHECK:STDOUT: %assoc0 => constants.%assoc0.878 +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.e2e +// CHECK:STDOUT: %.loc36_5.2 => constants.%.ffe +// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.640 // CHECK:STDOUT: %impl.elem0.loc36_5.2 => constants.%B2.Equal // CHECK:STDOUT: %specific_impl_fn.loc36_5.2 => constants.%B2.Equal -// CHECK:STDOUT: %assoc1 => constants.%assoc1.09d -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.fca -// CHECK:STDOUT: %.loc37_5.2 => constants.%.0d7 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.7a2 +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.902 +// CHECK:STDOUT: %.loc37_5.2 => constants.%.609 // CHECK:STDOUT: %impl.elem1.loc37_5.2 => constants.%B2.NotEqual // CHECK:STDOUT: %specific_impl_fn.loc37_5.2 => constants.%B2.NotEqual // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @EqWith.loc34(constants.%B3, constants.%EqWith.facet.615) { +// CHECK:STDOUT: specific @EqWith.loc34(constants.%B3, constants.%EqWith.facet.34d) { // CHECK:STDOUT: %U.loc34_12.1 => constants.%B3 -// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.663 -// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.615 -// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.1cc +// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.2e6 +// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.34d +// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.2b2 // CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%A3 -// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.ada -// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.a20 +// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.7fe +// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.2dd // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc34_42 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc34_48 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.4da -// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.a6b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.dc0 -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.e85 -// CHECK:STDOUT: %.loc36_5.2 => constants.%.a39 -// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.002 +// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.777 +// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.eda +// CHECK:STDOUT: %assoc0 => constants.%assoc0.34f +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.a57 +// CHECK:STDOUT: %.loc36_5.2 => constants.%.fc2 +// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.528 // CHECK:STDOUT: %impl.elem0.loc36_5.2 => constants.%A3.Equal // CHECK:STDOUT: %specific_impl_fn.loc36_5.2 => constants.%A3.Equal -// CHECK:STDOUT: %assoc1 => constants.%assoc1.877 -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.2cb -// CHECK:STDOUT: %.loc37_5.2 => constants.%.fe4 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.c2b +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.9c3 +// CHECK:STDOUT: %.loc37_5.2 => constants.%.b37 // CHECK:STDOUT: %impl.elem1.loc37_5.2 => constants.%NotEqual // CHECK:STDOUT: %specific_impl_fn.loc37_5.2 => constants.%NotEqual // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @EqWith.loc34(constants.%A3, constants.%EqWith.facet.59d) { +// CHECK:STDOUT: specific @EqWith.loc34(constants.%A3, constants.%EqWith.facet.2a4) { // CHECK:STDOUT: %U.loc34_12.1 => constants.%A3 -// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.819 -// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.59d -// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.c1c +// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.831 +// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.2a4 +// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.9c8 // CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%B3 -// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.a20 -// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.ada +// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.2dd +// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.7fe // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc34_42 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc34_48 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.526 -// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.735 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.af9 -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.6b2 -// CHECK:STDOUT: %.loc36_5.2 => constants.%.58b -// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.abb +// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.94e +// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.d85 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.b7b +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.351 +// CHECK:STDOUT: %.loc36_5.2 => constants.%.06c +// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.0ff // CHECK:STDOUT: %impl.elem0.loc36_5.2 => constants.%Equal // CHECK:STDOUT: %specific_impl_fn.loc36_5.2 => constants.%Equal -// CHECK:STDOUT: %assoc1 => constants.%assoc1.1f3 -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.353 -// CHECK:STDOUT: %.loc37_5.2 => constants.%.b5c +// CHECK:STDOUT: %assoc1 => constants.%assoc1.a3b +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.682 +// CHECK:STDOUT: %.loc37_5.2 => constants.%.3ea // CHECK:STDOUT: %impl.elem1.loc37_5.2 => constants.%B3.NotEqual // CHECK:STDOUT: %specific_impl_fn.loc37_5.2 => constants.%B3.NotEqual // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/operators/operators.carbon b/toolchain/check/testdata/interop/cpp/operators/operators.carbon index e7486ee0a564..48d4251f702f 100644 --- a/toolchain/check/testdata/interop/cpp/operators/operators.carbon +++ b/toolchain/check/testdata/interop/cpp/operators/operators.carbon @@ -1024,16 +1024,16 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.bbc: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %cpp_operator.type.c0fb5e.1: type = fn_type @cpp_operator.1 [concrete] -// CHECK:STDOUT: %cpp_operator.5dc3ba.1: %cpp_operator.type.c0fb5e.1 = struct_value () [concrete] -// CHECK:STDOUT: %cpp_operator.type.c0fb5e.2: type = fn_type @cpp_operator.2 [concrete] -// CHECK:STDOUT: %cpp_operator.5dc3ba.2: %cpp_operator.type.c0fb5e.2 = struct_value () [concrete] +// CHECK:STDOUT: %cpp_operator.type.da53e5.1: type = fn_type @cpp_operator.1 [concrete] +// CHECK:STDOUT: %cpp_operator.3fb16d.1: %cpp_operator.type.da53e5.1 = struct_value () [concrete] +// CHECK:STDOUT: %cpp_operator.type.da53e5.2: type = fn_type @cpp_operator.2 [concrete] +// CHECK:STDOUT: %cpp_operator.3fb16d.2: %cpp_operator.type.da53e5.2 = struct_value () [concrete] // CHECK:STDOUT: %operator_Minus__carbon_thunk.type: type = fn_type @operator_Minus__carbon_thunk [concrete] // CHECK:STDOUT: %operator_Minus__carbon_thunk: %operator_Minus__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator_Tilde__carbon_thunk.type: type = fn_type @operator_Tilde__carbon_thunk [concrete] @@ -1056,12 +1056,12 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %cpp_operator.decl.4046da.1: %cpp_operator.type.c0fb5e.1 = fn_decl @cpp_operator.1 [concrete = constants.%cpp_operator.5dc3ba.1] { +// CHECK:STDOUT: %cpp_operator.decl.5ce91d.1: %cpp_operator.type.da53e5.1 = fn_decl @cpp_operator.1 [concrete = constants.%cpp_operator.3fb16d.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %cpp_operator.decl.4046da.2: %cpp_operator.type.c0fb5e.2 = fn_decl @cpp_operator.2 [concrete = constants.%cpp_operator.5dc3ba.2] { +// CHECK:STDOUT: %cpp_operator.decl.5ce91d.2: %cpp_operator.type.da53e5.2 = fn_decl @cpp_operator.2 [concrete = constants.%cpp_operator.3fb16d.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -1086,15 +1086,15 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.479 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.479 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.bbc = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.bbc = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt // CHECK:STDOUT: %Cpp.ref.loc8_18: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_21: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_23: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_3: ref %C = splice_block %c.var {} -// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_3 +// CHECK:STDOUT: %addr.loc8: %ptr.0a2 = addr_of %.loc8_3 // CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_26: init %C to %.loc8_3 = mark_in_place_init %C__carbon_thunk.call // CHECK:STDOUT: assign %c.var, %.loc8_26 @@ -1104,18 +1104,18 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var // CHECK:STDOUT: %c.ref.loc11: ref %C = name_ref c, %c -// CHECK:STDOUT: %cpp_operator.call.loc11: ref %C = call imports.%cpp_operator.decl.4046da.1(%c.ref.loc11) +// CHECK:STDOUT: %cpp_operator.call.loc11: ref %C = call imports.%cpp_operator.decl.5ce91d.1(%c.ref.loc11) // CHECK:STDOUT: %c.ref.loc12: ref %C = name_ref c, %c -// CHECK:STDOUT: %cpp_operator.call.loc12: ref %C = call imports.%cpp_operator.decl.4046da.2(%c.ref.loc12) +// CHECK:STDOUT: %cpp_operator.call.loc12: ref %C = call imports.%cpp_operator.decl.5ce91d.2(%c.ref.loc12) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %minus.patt: %pattern_type.479 = value_binding_pattern minus [concrete] +// CHECK:STDOUT: %minus.patt: %pattern_type.bbc = value_binding_pattern minus [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.ref.loc15: ref %C = name_ref c, %c // CHECK:STDOUT: %.loc15_29.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc15_30.1: %C = acquire_value %c.ref.loc15 // CHECK:STDOUT: %.loc15_30.2: ref %C = value_as_ref %.loc15_30.1 -// CHECK:STDOUT: %addr.loc15_29.1: %ptr.3a8 = addr_of %.loc15_30.2 -// CHECK:STDOUT: %addr.loc15_29.2: %ptr.3a8 = addr_of %.loc15_29.1 +// CHECK:STDOUT: %addr.loc15_29.1: %ptr.0a2 = addr_of %.loc15_30.2 +// CHECK:STDOUT: %addr.loc15_29.2: %ptr.0a2 = addr_of %.loc15_29.1 // CHECK:STDOUT: %operator_Minus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Minus__carbon_thunk.decl(%addr.loc15_29.1, %addr.loc15_29.2) // CHECK:STDOUT: %.loc15_29.2: init %C to %.loc15_29.1 = mark_in_place_init %operator_Minus__carbon_thunk.call // CHECK:STDOUT: %.loc15_24: type = splice_block %C.ref.loc15 [concrete = constants.%C] { @@ -1126,14 +1126,14 @@ fn F() { // CHECK:STDOUT: %.loc15_29.4: %C = acquire_value %.loc15_29.3 // CHECK:STDOUT: %minus: %C = value_binding minus, %.loc15_29.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %complement.patt: %pattern_type.479 = value_binding_pattern complement [concrete] +// CHECK:STDOUT: %complement.patt: %pattern_type.bbc = value_binding_pattern complement [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.ref.loc18: ref %C = name_ref c, %c // CHECK:STDOUT: %.loc18_34.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc18_35.1: %C = acquire_value %c.ref.loc18 // CHECK:STDOUT: %.loc18_35.2: ref %C = value_as_ref %.loc18_35.1 -// CHECK:STDOUT: %addr.loc18_34.1: %ptr.3a8 = addr_of %.loc18_35.2 -// CHECK:STDOUT: %addr.loc18_34.2: %ptr.3a8 = addr_of %.loc18_34.1 +// CHECK:STDOUT: %addr.loc18_34.1: %ptr.0a2 = addr_of %.loc18_35.2 +// CHECK:STDOUT: %addr.loc18_34.2: %ptr.0a2 = addr_of %.loc18_34.1 // CHECK:STDOUT: %operator_Tilde__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Tilde__carbon_thunk.decl(%addr.loc18_34.1, %addr.loc18_34.2) // CHECK:STDOUT: %.loc18_34.2: init %C to %.loc18_34.1 = mark_in_place_init %operator_Tilde__carbon_thunk.call // CHECK:STDOUT: %.loc18_29: type = splice_block %C.ref.loc18 [concrete = constants.%C] { @@ -1164,10 +1164,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.bbc: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] @@ -1189,29 +1189,29 @@ fn F() { // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %operator_LessLess__carbon_thunk.type: type = fn_type @operator_LessLess__carbon_thunk [concrete] // CHECK:STDOUT: %operator_LessLess__carbon_thunk: %operator_LessLess__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.763: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] // CHECK:STDOUT: %operator_GreaterGreater__carbon_thunk.type: type = fn_type @operator_GreaterGreater__carbon_thunk [concrete] // CHECK:STDOUT: %operator_GreaterGreater__carbon_thunk: %operator_GreaterGreater__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e3e: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_5.354: %i32 = 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] +// CHECK:STDOUT: %int_5.eef: %i32 = int_value 5 [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: %operator_MinusEqual__carbon_thunk.type: type = fn_type @operator_MinusEqual__carbon_thunk [concrete] @@ -1228,10 +1228,10 @@ fn F() { // CHECK:STDOUT: %operator_PipeEqual__carbon_thunk: %operator_PipeEqual__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator_CaretEqual__carbon_thunk.type: type = fn_type @operator_CaretEqual__carbon_thunk [concrete] // CHECK:STDOUT: %operator_CaretEqual__carbon_thunk: %operator_CaretEqual__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %cpp_operator.type.c0fb5e.19: type = fn_type @cpp_operator.19 [concrete] -// CHECK:STDOUT: %cpp_operator.5dc3ba.19: %cpp_operator.type.c0fb5e.19 = struct_value () [concrete] -// CHECK:STDOUT: %cpp_operator.type.c0fb5e.20: type = fn_type @cpp_operator.20 [concrete] -// CHECK:STDOUT: %cpp_operator.5dc3ba.20: %cpp_operator.type.c0fb5e.20 = struct_value () [concrete] +// CHECK:STDOUT: %cpp_operator.type.da53e5.19: type = fn_type @cpp_operator.19 [concrete] +// CHECK:STDOUT: %cpp_operator.3fb16d.19: %cpp_operator.type.da53e5.19 = struct_value () [concrete] +// CHECK:STDOUT: %cpp_operator.type.da53e5.20: type = fn_type @cpp_operator.20 [concrete] +// CHECK:STDOUT: %cpp_operator.3fb16d.20: %cpp_operator.type.da53e5.20 = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] // CHECK:STDOUT: %ptr.bb2: type = ptr_type bool [concrete] // CHECK:STDOUT: %operator_EqualEqual__carbon_thunk.type: type = fn_type @operator_EqualEqual__carbon_thunk [concrete] @@ -1249,9 +1249,9 @@ fn F() { // CHECK:STDOUT: %int_42.20e: Core.IntLiteral = int_value 42 [concrete] // CHECK:STDOUT: %C.cpp_operator.type: type = fn_type @C.cpp_operator [concrete] // CHECK:STDOUT: %C.cpp_operator: %C.cpp_operator.type = struct_value () [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.21e: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.98e: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_42.daa: %i32 = int_value 42 [concrete] +// 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: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] @@ -1317,8 +1317,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] // CHECK:STDOUT: %operator_GreaterGreater__carbon_thunk.decl: %operator_GreaterGreater__carbon_thunk.type = fn_decl @operator_GreaterGreater__carbon_thunk [concrete = constants.%operator_GreaterGreater__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -1364,12 +1364,12 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %cpp_operator.decl.4046da.19: %cpp_operator.type.c0fb5e.19 = fn_decl @cpp_operator.19 [concrete = constants.%cpp_operator.5dc3ba.19] { +// CHECK:STDOUT: %cpp_operator.decl.5ce91d.19: %cpp_operator.type.da53e5.19 = fn_decl @cpp_operator.19 [concrete = constants.%cpp_operator.3fb16d.19] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %cpp_operator.decl.4046da.20: %cpp_operator.type.c0fb5e.20 = fn_decl @cpp_operator.20 [concrete = constants.%cpp_operator.5dc3ba.20] { +// CHECK:STDOUT: %cpp_operator.decl.5ce91d.20: %cpp_operator.type.da53e5.20 = fn_decl @cpp_operator.20 [concrete = constants.%cpp_operator.3fb16d.20] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -1419,15 +1419,15 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.479 = ref_binding_pattern c1 [concrete] -// CHECK:STDOUT: %c1.var_patt: %pattern_type.479 = var_pattern %c1.patt [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.bbc = ref_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.var_patt: %pattern_type.bbc = var_pattern %c1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.var: ref %C = var %c1.var_patt // CHECK:STDOUT: %Cpp.ref.loc8_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_3: ref %C = splice_block %c1.var {} -// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_3 +// CHECK:STDOUT: %addr.loc8: %ptr.0a2 = addr_of %.loc8_3 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_27: init %C to %.loc8_3 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: assign %c1.var, %.loc8_27 @@ -1437,15 +1437,15 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c1: ref %C = ref_binding c1, %c1.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.479 = ref_binding_pattern c2 [concrete] -// CHECK:STDOUT: %c2.var_patt: %pattern_type.479 = var_pattern %c2.patt [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.bbc = ref_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.var_patt: %pattern_type.bbc = var_pattern %c2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c2.var: ref %C = var %c2.var_patt // CHECK:STDOUT: %Cpp.ref.loc9_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc9_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc9_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_3: ref %C = splice_block %c2.var {} -// CHECK:STDOUT: %addr.loc9: %ptr.3a8 = addr_of %.loc9_3 +// CHECK:STDOUT: %addr.loc9: %ptr.0a2 = addr_of %.loc9_3 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %.loc9_27: init %C to %.loc9_3 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: assign %c2.var, %.loc9_27 @@ -1455,7 +1455,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c2: ref %C = ref_binding c2, %c2.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %addition.patt: %pattern_type.479 = value_binding_pattern addition [concrete] +// CHECK:STDOUT: %addition.patt: %pattern_type.bbc = value_binding_pattern addition [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc12: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc12: ref %C = name_ref c2, %c2 @@ -1463,10 +1463,10 @@ fn F() { // CHECK:STDOUT: %.loc12_32.1: %C = acquire_value %c1.ref.loc12 // CHECK:STDOUT: %.loc12_37.1: %C = acquire_value %c2.ref.loc12 // CHECK:STDOUT: %.loc12_32.2: ref %C = value_as_ref %.loc12_32.1 -// CHECK:STDOUT: %addr.loc12_35.1: %ptr.3a8 = addr_of %.loc12_32.2 +// CHECK:STDOUT: %addr.loc12_35.1: %ptr.0a2 = addr_of %.loc12_32.2 // CHECK:STDOUT: %.loc12_37.2: ref %C = value_as_ref %.loc12_37.1 -// CHECK:STDOUT: %addr.loc12_35.2: %ptr.3a8 = addr_of %.loc12_37.2 -// CHECK:STDOUT: %addr.loc12_35.3: %ptr.3a8 = addr_of %.loc12_35.1 +// CHECK:STDOUT: %addr.loc12_35.2: %ptr.0a2 = addr_of %.loc12_37.2 +// CHECK:STDOUT: %addr.loc12_35.3: %ptr.0a2 = addr_of %.loc12_35.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc12_35.1, %addr.loc12_35.2, %addr.loc12_35.3) // CHECK:STDOUT: %.loc12_35.2: init %C to %.loc12_35.1 = mark_in_place_init %operator_Plus__carbon_thunk.call // CHECK:STDOUT: %.loc12_27: type = splice_block %C.ref.loc12 [concrete = constants.%C] { @@ -1477,7 +1477,7 @@ fn F() { // CHECK:STDOUT: %.loc12_35.4: %C = acquire_value %.loc12_35.3 // CHECK:STDOUT: %addition: %C = value_binding addition, %.loc12_35.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %subtraction.patt: %pattern_type.479 = value_binding_pattern subtraction [concrete] +// CHECK:STDOUT: %subtraction.patt: %pattern_type.bbc = value_binding_pattern subtraction [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc13: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc13: ref %C = name_ref c2, %c2 @@ -1485,10 +1485,10 @@ fn F() { // CHECK:STDOUT: %.loc13_35.1: %C = acquire_value %c1.ref.loc13 // CHECK:STDOUT: %.loc13_40.1: %C = acquire_value %c2.ref.loc13 // CHECK:STDOUT: %.loc13_35.2: ref %C = value_as_ref %.loc13_35.1 -// CHECK:STDOUT: %addr.loc13_38.1: %ptr.3a8 = addr_of %.loc13_35.2 +// CHECK:STDOUT: %addr.loc13_38.1: %ptr.0a2 = addr_of %.loc13_35.2 // CHECK:STDOUT: %.loc13_40.2: ref %C = value_as_ref %.loc13_40.1 -// CHECK:STDOUT: %addr.loc13_38.2: %ptr.3a8 = addr_of %.loc13_40.2 -// CHECK:STDOUT: %addr.loc13_38.3: %ptr.3a8 = addr_of %.loc13_38.1 +// CHECK:STDOUT: %addr.loc13_38.2: %ptr.0a2 = addr_of %.loc13_40.2 +// CHECK:STDOUT: %addr.loc13_38.3: %ptr.0a2 = addr_of %.loc13_38.1 // CHECK:STDOUT: %operator_Minus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Minus__carbon_thunk.decl(%addr.loc13_38.1, %addr.loc13_38.2, %addr.loc13_38.3) // CHECK:STDOUT: %.loc13_38.2: init %C to %.loc13_38.1 = mark_in_place_init %operator_Minus__carbon_thunk.call // CHECK:STDOUT: %.loc13_30: type = splice_block %C.ref.loc13 [concrete = constants.%C] { @@ -1499,7 +1499,7 @@ fn F() { // CHECK:STDOUT: %.loc13_38.4: %C = acquire_value %.loc13_38.3 // CHECK:STDOUT: %subtraction: %C = value_binding subtraction, %.loc13_38.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %multiplication.patt: %pattern_type.479 = value_binding_pattern multiplication [concrete] +// CHECK:STDOUT: %multiplication.patt: %pattern_type.bbc = value_binding_pattern multiplication [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc14: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc14: ref %C = name_ref c2, %c2 @@ -1507,10 +1507,10 @@ fn F() { // CHECK:STDOUT: %.loc14_38.1: %C = acquire_value %c1.ref.loc14 // CHECK:STDOUT: %.loc14_43.1: %C = acquire_value %c2.ref.loc14 // CHECK:STDOUT: %.loc14_38.2: ref %C = value_as_ref %.loc14_38.1 -// CHECK:STDOUT: %addr.loc14_41.1: %ptr.3a8 = addr_of %.loc14_38.2 +// CHECK:STDOUT: %addr.loc14_41.1: %ptr.0a2 = addr_of %.loc14_38.2 // CHECK:STDOUT: %.loc14_43.2: ref %C = value_as_ref %.loc14_43.1 -// CHECK:STDOUT: %addr.loc14_41.2: %ptr.3a8 = addr_of %.loc14_43.2 -// CHECK:STDOUT: %addr.loc14_41.3: %ptr.3a8 = addr_of %.loc14_41.1 +// CHECK:STDOUT: %addr.loc14_41.2: %ptr.0a2 = addr_of %.loc14_43.2 +// CHECK:STDOUT: %addr.loc14_41.3: %ptr.0a2 = addr_of %.loc14_41.1 // CHECK:STDOUT: %operator_Star__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Star__carbon_thunk.decl(%addr.loc14_41.1, %addr.loc14_41.2, %addr.loc14_41.3) // CHECK:STDOUT: %.loc14_41.2: init %C to %.loc14_41.1 = mark_in_place_init %operator_Star__carbon_thunk.call // CHECK:STDOUT: %.loc14_33: type = splice_block %C.ref.loc14 [concrete = constants.%C] { @@ -1521,7 +1521,7 @@ fn F() { // CHECK:STDOUT: %.loc14_41.4: %C = acquire_value %.loc14_41.3 // CHECK:STDOUT: %multiplication: %C = value_binding multiplication, %.loc14_41.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %division.patt: %pattern_type.479 = value_binding_pattern division [concrete] +// CHECK:STDOUT: %division.patt: %pattern_type.bbc = value_binding_pattern division [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc15: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc15: ref %C = name_ref c2, %c2 @@ -1529,10 +1529,10 @@ fn F() { // CHECK:STDOUT: %.loc15_32.1: %C = acquire_value %c1.ref.loc15 // CHECK:STDOUT: %.loc15_37.1: %C = acquire_value %c2.ref.loc15 // CHECK:STDOUT: %.loc15_32.2: ref %C = value_as_ref %.loc15_32.1 -// CHECK:STDOUT: %addr.loc15_35.1: %ptr.3a8 = addr_of %.loc15_32.2 +// CHECK:STDOUT: %addr.loc15_35.1: %ptr.0a2 = addr_of %.loc15_32.2 // CHECK:STDOUT: %.loc15_37.2: ref %C = value_as_ref %.loc15_37.1 -// CHECK:STDOUT: %addr.loc15_35.2: %ptr.3a8 = addr_of %.loc15_37.2 -// CHECK:STDOUT: %addr.loc15_35.3: %ptr.3a8 = addr_of %.loc15_35.1 +// CHECK:STDOUT: %addr.loc15_35.2: %ptr.0a2 = addr_of %.loc15_37.2 +// CHECK:STDOUT: %addr.loc15_35.3: %ptr.0a2 = addr_of %.loc15_35.1 // CHECK:STDOUT: %operator_Slash__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Slash__carbon_thunk.decl(%addr.loc15_35.1, %addr.loc15_35.2, %addr.loc15_35.3) // CHECK:STDOUT: %.loc15_35.2: init %C to %.loc15_35.1 = mark_in_place_init %operator_Slash__carbon_thunk.call // CHECK:STDOUT: %.loc15_27: type = splice_block %C.ref.loc15 [concrete = constants.%C] { @@ -1543,7 +1543,7 @@ fn F() { // CHECK:STDOUT: %.loc15_35.4: %C = acquire_value %.loc15_35.3 // CHECK:STDOUT: %division: %C = value_binding division, %.loc15_35.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %modulo.patt: %pattern_type.479 = value_binding_pattern modulo [concrete] +// CHECK:STDOUT: %modulo.patt: %pattern_type.bbc = value_binding_pattern modulo [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc16: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc16: ref %C = name_ref c2, %c2 @@ -1551,10 +1551,10 @@ fn F() { // CHECK:STDOUT: %.loc16_30.1: %C = acquire_value %c1.ref.loc16 // CHECK:STDOUT: %.loc16_35.1: %C = acquire_value %c2.ref.loc16 // CHECK:STDOUT: %.loc16_30.2: ref %C = value_as_ref %.loc16_30.1 -// CHECK:STDOUT: %addr.loc16_33.1: %ptr.3a8 = addr_of %.loc16_30.2 +// CHECK:STDOUT: %addr.loc16_33.1: %ptr.0a2 = addr_of %.loc16_30.2 // CHECK:STDOUT: %.loc16_35.2: ref %C = value_as_ref %.loc16_35.1 -// CHECK:STDOUT: %addr.loc16_33.2: %ptr.3a8 = addr_of %.loc16_35.2 -// CHECK:STDOUT: %addr.loc16_33.3: %ptr.3a8 = addr_of %.loc16_33.1 +// CHECK:STDOUT: %addr.loc16_33.2: %ptr.0a2 = addr_of %.loc16_35.2 +// CHECK:STDOUT: %addr.loc16_33.3: %ptr.0a2 = addr_of %.loc16_33.1 // CHECK:STDOUT: %operator_Percent__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Percent__carbon_thunk.decl(%addr.loc16_33.1, %addr.loc16_33.2, %addr.loc16_33.3) // CHECK:STDOUT: %.loc16_33.2: init %C to %.loc16_33.1 = mark_in_place_init %operator_Percent__carbon_thunk.call // CHECK:STDOUT: %.loc16_25: type = splice_block %C.ref.loc16 [concrete = constants.%C] { @@ -1565,7 +1565,7 @@ fn F() { // CHECK:STDOUT: %.loc16_33.4: %C = acquire_value %.loc16_33.3 // CHECK:STDOUT: %modulo: %C = value_binding modulo, %.loc16_33.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %bitwise_and.patt: %pattern_type.479 = value_binding_pattern bitwise_and [concrete] +// CHECK:STDOUT: %bitwise_and.patt: %pattern_type.bbc = value_binding_pattern bitwise_and [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc19: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc19: ref %C = name_ref c2, %c2 @@ -1573,10 +1573,10 @@ fn F() { // CHECK:STDOUT: %.loc19_35.1: %C = acquire_value %c1.ref.loc19 // CHECK:STDOUT: %.loc19_40.1: %C = acquire_value %c2.ref.loc19 // CHECK:STDOUT: %.loc19_35.2: ref %C = value_as_ref %.loc19_35.1 -// CHECK:STDOUT: %addr.loc19_38.1: %ptr.3a8 = addr_of %.loc19_35.2 +// CHECK:STDOUT: %addr.loc19_38.1: %ptr.0a2 = addr_of %.loc19_35.2 // CHECK:STDOUT: %.loc19_40.2: ref %C = value_as_ref %.loc19_40.1 -// CHECK:STDOUT: %addr.loc19_38.2: %ptr.3a8 = addr_of %.loc19_40.2 -// CHECK:STDOUT: %addr.loc19_38.3: %ptr.3a8 = addr_of %.loc19_38.1 +// CHECK:STDOUT: %addr.loc19_38.2: %ptr.0a2 = addr_of %.loc19_40.2 +// CHECK:STDOUT: %addr.loc19_38.3: %ptr.0a2 = addr_of %.loc19_38.1 // CHECK:STDOUT: %operator_Amp__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Amp__carbon_thunk.decl(%addr.loc19_38.1, %addr.loc19_38.2, %addr.loc19_38.3) // CHECK:STDOUT: %.loc19_38.2: init %C to %.loc19_38.1 = mark_in_place_init %operator_Amp__carbon_thunk.call // CHECK:STDOUT: %.loc19_30: type = splice_block %C.ref.loc19 [concrete = constants.%C] { @@ -1587,7 +1587,7 @@ fn F() { // CHECK:STDOUT: %.loc19_38.4: %C = acquire_value %.loc19_38.3 // CHECK:STDOUT: %bitwise_and: %C = value_binding bitwise_and, %.loc19_38.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %bitwise_or.patt: %pattern_type.479 = value_binding_pattern bitwise_or [concrete] +// CHECK:STDOUT: %bitwise_or.patt: %pattern_type.bbc = value_binding_pattern bitwise_or [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc20: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc20: ref %C = name_ref c2, %c2 @@ -1595,10 +1595,10 @@ fn F() { // CHECK:STDOUT: %.loc20_34.1: %C = acquire_value %c1.ref.loc20 // CHECK:STDOUT: %.loc20_39.1: %C = acquire_value %c2.ref.loc20 // CHECK:STDOUT: %.loc20_34.2: ref %C = value_as_ref %.loc20_34.1 -// CHECK:STDOUT: %addr.loc20_37.1: %ptr.3a8 = addr_of %.loc20_34.2 +// CHECK:STDOUT: %addr.loc20_37.1: %ptr.0a2 = addr_of %.loc20_34.2 // CHECK:STDOUT: %.loc20_39.2: ref %C = value_as_ref %.loc20_39.1 -// CHECK:STDOUT: %addr.loc20_37.2: %ptr.3a8 = addr_of %.loc20_39.2 -// CHECK:STDOUT: %addr.loc20_37.3: %ptr.3a8 = addr_of %.loc20_37.1 +// CHECK:STDOUT: %addr.loc20_37.2: %ptr.0a2 = addr_of %.loc20_39.2 +// CHECK:STDOUT: %addr.loc20_37.3: %ptr.0a2 = addr_of %.loc20_37.1 // CHECK:STDOUT: %operator_Pipe__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Pipe__carbon_thunk.decl(%addr.loc20_37.1, %addr.loc20_37.2, %addr.loc20_37.3) // CHECK:STDOUT: %.loc20_37.2: init %C to %.loc20_37.1 = mark_in_place_init %operator_Pipe__carbon_thunk.call // CHECK:STDOUT: %.loc20_29: type = splice_block %C.ref.loc20 [concrete = constants.%C] { @@ -1609,7 +1609,7 @@ fn F() { // CHECK:STDOUT: %.loc20_37.4: %C = acquire_value %.loc20_37.3 // CHECK:STDOUT: %bitwise_or: %C = value_binding bitwise_or, %.loc20_37.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %bitwise_xor.patt: %pattern_type.479 = value_binding_pattern bitwise_xor [concrete] +// CHECK:STDOUT: %bitwise_xor.patt: %pattern_type.bbc = value_binding_pattern bitwise_xor [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc21: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc21: ref %C = name_ref c2, %c2 @@ -1617,10 +1617,10 @@ fn F() { // CHECK:STDOUT: %.loc21_35.1: %C = acquire_value %c1.ref.loc21 // CHECK:STDOUT: %.loc21_40.1: %C = acquire_value %c2.ref.loc21 // CHECK:STDOUT: %.loc21_35.2: ref %C = value_as_ref %.loc21_35.1 -// CHECK:STDOUT: %addr.loc21_38.1: %ptr.3a8 = addr_of %.loc21_35.2 +// CHECK:STDOUT: %addr.loc21_38.1: %ptr.0a2 = addr_of %.loc21_35.2 // CHECK:STDOUT: %.loc21_40.2: ref %C = value_as_ref %.loc21_40.1 -// CHECK:STDOUT: %addr.loc21_38.2: %ptr.3a8 = addr_of %.loc21_40.2 -// CHECK:STDOUT: %addr.loc21_38.3: %ptr.3a8 = addr_of %.loc21_38.1 +// CHECK:STDOUT: %addr.loc21_38.2: %ptr.0a2 = addr_of %.loc21_40.2 +// CHECK:STDOUT: %addr.loc21_38.3: %ptr.0a2 = addr_of %.loc21_38.1 // CHECK:STDOUT: %operator_Caret__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Caret__carbon_thunk.decl(%addr.loc21_38.1, %addr.loc21_38.2, %addr.loc21_38.3) // CHECK:STDOUT: %.loc21_38.2: init %C to %.loc21_38.1 = mark_in_place_init %operator_Caret__carbon_thunk.call // CHECK:STDOUT: %.loc21_30: type = splice_block %C.ref.loc21 [concrete = constants.%C] { @@ -1631,22 +1631,22 @@ fn F() { // CHECK:STDOUT: %.loc21_38.4: %C = acquire_value %.loc21_38.3 // CHECK:STDOUT: %bitwise_xor: %C = value_binding bitwise_xor, %.loc21_38.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %left_shift.patt: %pattern_type.479 = value_binding_pattern left_shift [concrete] +// CHECK:STDOUT: %left_shift.patt: %pattern_type.bbc = value_binding_pattern left_shift [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc22: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %int_3.loc22: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc22_37.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc22_34.1: %C = acquire_value %c1.ref.loc22 -// CHECK:STDOUT: %impl.elem0.loc22: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc22_40.1: = bound_method %int_3.loc22, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %impl.elem0.loc22: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc22_40.1: = bound_method %int_3.loc22, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem0.loc22, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc22_40.2: = bound_method %int_3.loc22, %specific_fn.loc22 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %i32 = call %bound_method.loc22_40.2(%int_3.loc22) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc22_40.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc22_40.2: %i32 = converted %int_3.loc22, %.loc22_40.1 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc22_40.2: = bound_method %int_3.loc22, %specific_fn.loc22 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %i32 = call %bound_method.loc22_40.2(%int_3.loc22) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc22_40.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc22_40.2: %i32 = converted %int_3.loc22, %.loc22_40.1 [concrete = constants.%int_3.410] // CHECK:STDOUT: %.loc22_34.2: ref %C = value_as_ref %.loc22_34.1 -// CHECK:STDOUT: %addr.loc22_37.1: %ptr.3a8 = addr_of %.loc22_34.2 -// CHECK:STDOUT: %addr.loc22_37.2: %ptr.3a8 = addr_of %.loc22_37.1 +// CHECK:STDOUT: %addr.loc22_37.1: %ptr.0a2 = addr_of %.loc22_34.2 +// CHECK:STDOUT: %addr.loc22_37.2: %ptr.0a2 = addr_of %.loc22_37.1 // CHECK:STDOUT: %operator_LessLess__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_LessLess__carbon_thunk.decl(%addr.loc22_37.1, %.loc22_40.2, %addr.loc22_37.2) // CHECK:STDOUT: %.loc22_37.2: init %C to %.loc22_37.1 = mark_in_place_init %operator_LessLess__carbon_thunk.call // CHECK:STDOUT: %.loc22_29: type = splice_block %C.ref.loc22 [concrete = constants.%C] { @@ -1657,22 +1657,22 @@ fn F() { // CHECK:STDOUT: %.loc22_37.4: %C = acquire_value %.loc22_37.3 // CHECK:STDOUT: %left_shift: %C = value_binding left_shift, %.loc22_37.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %right_shift.patt: %pattern_type.479 = value_binding_pattern right_shift [concrete] +// CHECK:STDOUT: %right_shift.patt: %pattern_type.bbc = value_binding_pattern right_shift [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc23: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %int_5.loc23: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %.loc23_38.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc23_35.1: %C = acquire_value %c1.ref.loc23 -// CHECK:STDOUT: %impl.elem0.loc23: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc23_41.1: = bound_method %int_5.loc23, %impl.elem0.loc23 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c] +// CHECK:STDOUT: %impl.elem0.loc23: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc23_41.1: = bound_method %int_5.loc23, %impl.elem0.loc23 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f6c] // CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc23_41.2: = bound_method %int_5.loc23, %specific_fn.loc23 [concrete = constants.%bound_method.e3e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23: init %i32 = call %bound_method.loc23_41.2(%int_5.loc23) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc23_41.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc23_41.2: %i32 = converted %int_5.loc23, %.loc23_41.1 [concrete = constants.%int_5.354] +// CHECK:STDOUT: %bound_method.loc23_41.2: = bound_method %int_5.loc23, %specific_fn.loc23 [concrete = constants.%bound_method.c9d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23: init %i32 = call %bound_method.loc23_41.2(%int_5.loc23) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc23_41.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc23_41.2: %i32 = converted %int_5.loc23, %.loc23_41.1 [concrete = constants.%int_5.eef] // CHECK:STDOUT: %.loc23_35.2: ref %C = value_as_ref %.loc23_35.1 -// CHECK:STDOUT: %addr.loc23_38.1: %ptr.3a8 = addr_of %.loc23_35.2 -// CHECK:STDOUT: %addr.loc23_38.2: %ptr.3a8 = addr_of %.loc23_38.1 +// CHECK:STDOUT: %addr.loc23_38.1: %ptr.0a2 = addr_of %.loc23_35.2 +// CHECK:STDOUT: %addr.loc23_38.2: %ptr.0a2 = addr_of %.loc23_38.1 // CHECK:STDOUT: %operator_GreaterGreater__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_GreaterGreater__carbon_thunk.decl(%addr.loc23_38.1, %.loc23_41.2, %addr.loc23_38.2) // CHECK:STDOUT: %.loc23_38.2: init %C to %.loc23_38.1 = mark_in_place_init %operator_GreaterGreater__carbon_thunk.call // CHECK:STDOUT: %.loc23_30: type = splice_block %C.ref.loc23 [concrete = constants.%C] { @@ -1686,70 +1686,70 @@ fn F() { // CHECK:STDOUT: %c2.ref.loc26: ref %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc26_9.1: %C = acquire_value %c2.ref.loc26 // CHECK:STDOUT: %.loc26_9.2: ref %C = value_as_ref %.loc26_9.1 -// CHECK:STDOUT: %addr.loc26: %ptr.3a8 = addr_of %.loc26_9.2 +// CHECK:STDOUT: %addr.loc26: %ptr.0a2 = addr_of %.loc26_9.2 // CHECK:STDOUT: %operator_PlusEqual__carbon_thunk.call: ref %C = call imports.%operator_PlusEqual__carbon_thunk.decl(%c1.ref.loc26, %addr.loc26) // CHECK:STDOUT: %c1.ref.loc27: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc27: ref %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc27_9.1: %C = acquire_value %c2.ref.loc27 // CHECK:STDOUT: %.loc27_9.2: ref %C = value_as_ref %.loc27_9.1 -// CHECK:STDOUT: %addr.loc27: %ptr.3a8 = addr_of %.loc27_9.2 +// CHECK:STDOUT: %addr.loc27: %ptr.0a2 = addr_of %.loc27_9.2 // CHECK:STDOUT: %operator_MinusEqual__carbon_thunk.call: ref %C = call imports.%operator_MinusEqual__carbon_thunk.decl(%c1.ref.loc27, %addr.loc27) // CHECK:STDOUT: %c1.ref.loc28: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc28: ref %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc28_9.1: %C = acquire_value %c2.ref.loc28 // CHECK:STDOUT: %.loc28_9.2: ref %C = value_as_ref %.loc28_9.1 -// CHECK:STDOUT: %addr.loc28: %ptr.3a8 = addr_of %.loc28_9.2 +// CHECK:STDOUT: %addr.loc28: %ptr.0a2 = addr_of %.loc28_9.2 // CHECK:STDOUT: %operator_StarEqual__carbon_thunk.call: ref %C = call imports.%operator_StarEqual__carbon_thunk.decl(%c1.ref.loc28, %addr.loc28) // CHECK:STDOUT: %c1.ref.loc29: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc29: ref %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc29_9.1: %C = acquire_value %c2.ref.loc29 // CHECK:STDOUT: %.loc29_9.2: ref %C = value_as_ref %.loc29_9.1 -// CHECK:STDOUT: %addr.loc29: %ptr.3a8 = addr_of %.loc29_9.2 +// CHECK:STDOUT: %addr.loc29: %ptr.0a2 = addr_of %.loc29_9.2 // CHECK:STDOUT: %operator_SlashEqual__carbon_thunk.call: ref %C = call imports.%operator_SlashEqual__carbon_thunk.decl(%c1.ref.loc29, %addr.loc29) // CHECK:STDOUT: %c1.ref.loc30: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc30: ref %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc30_9.1: %C = acquire_value %c2.ref.loc30 // CHECK:STDOUT: %.loc30_9.2: ref %C = value_as_ref %.loc30_9.1 -// CHECK:STDOUT: %addr.loc30: %ptr.3a8 = addr_of %.loc30_9.2 +// CHECK:STDOUT: %addr.loc30: %ptr.0a2 = addr_of %.loc30_9.2 // CHECK:STDOUT: %operator_PercentEqual__carbon_thunk.call: ref %C = call imports.%operator_PercentEqual__carbon_thunk.decl(%c1.ref.loc30, %addr.loc30) // CHECK:STDOUT: %c1.ref.loc33: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc33: ref %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc33_9.1: %C = acquire_value %c2.ref.loc33 // CHECK:STDOUT: %.loc33_9.2: ref %C = value_as_ref %.loc33_9.1 -// CHECK:STDOUT: %addr.loc33: %ptr.3a8 = addr_of %.loc33_9.2 +// CHECK:STDOUT: %addr.loc33: %ptr.0a2 = addr_of %.loc33_9.2 // CHECK:STDOUT: %operator_AmpEqual__carbon_thunk.call: ref %C = call imports.%operator_AmpEqual__carbon_thunk.decl(%c1.ref.loc33, %addr.loc33) // CHECK:STDOUT: %c1.ref.loc34: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc34: ref %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc34_9.1: %C = acquire_value %c2.ref.loc34 // CHECK:STDOUT: %.loc34_9.2: ref %C = value_as_ref %.loc34_9.1 -// CHECK:STDOUT: %addr.loc34: %ptr.3a8 = addr_of %.loc34_9.2 +// CHECK:STDOUT: %addr.loc34: %ptr.0a2 = addr_of %.loc34_9.2 // CHECK:STDOUT: %operator_PipeEqual__carbon_thunk.call: ref %C = call imports.%operator_PipeEqual__carbon_thunk.decl(%c1.ref.loc34, %addr.loc34) // CHECK:STDOUT: %c1.ref.loc35: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc35: ref %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc35_9.1: %C = acquire_value %c2.ref.loc35 // CHECK:STDOUT: %.loc35_9.2: ref %C = value_as_ref %.loc35_9.1 -// CHECK:STDOUT: %addr.loc35: %ptr.3a8 = addr_of %.loc35_9.2 +// CHECK:STDOUT: %addr.loc35: %ptr.0a2 = addr_of %.loc35_9.2 // CHECK:STDOUT: %operator_CaretEqual__carbon_thunk.call: ref %C = call imports.%operator_CaretEqual__carbon_thunk.decl(%c1.ref.loc35, %addr.loc35) // CHECK:STDOUT: %c1.ref.loc36: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %int_3.loc36: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc36: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc36_10.1: = bound_method %int_3.loc36, %impl.elem0.loc36 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %impl.elem0.loc36: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc36_10.1: = bound_method %int_3.loc36, %impl.elem0.loc36 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc36: = specific_function %impl.elem0.loc36, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc36_10.2: = bound_method %int_3.loc36, %specific_fn.loc36 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc36: init %i32 = call %bound_method.loc36_10.2(%int_3.loc36) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc36_10.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc36 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc36_10.2: %i32 = converted %int_3.loc36, %.loc36_10.1 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %cpp_operator.call.loc36: ref %C = call imports.%cpp_operator.decl.4046da.19(%c1.ref.loc36, %.loc36_10.2) +// CHECK:STDOUT: %bound_method.loc36_10.2: = bound_method %int_3.loc36, %specific_fn.loc36 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc36: init %i32 = call %bound_method.loc36_10.2(%int_3.loc36) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc36_10.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc36 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc36_10.2: %i32 = converted %int_3.loc36, %.loc36_10.1 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %cpp_operator.call.loc36: ref %C = call imports.%cpp_operator.decl.5ce91d.19(%c1.ref.loc36, %.loc36_10.2) // CHECK:STDOUT: %c1.ref.loc37: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %int_5.loc37: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0.loc37: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc37_10.1: = bound_method %int_5.loc37, %impl.elem0.loc37 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c] +// CHECK:STDOUT: %impl.elem0.loc37: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc37_10.1: = bound_method %int_5.loc37, %impl.elem0.loc37 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f6c] // CHECK:STDOUT: %specific_fn.loc37: = specific_function %impl.elem0.loc37, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc37_10.2: = bound_method %int_5.loc37, %specific_fn.loc37 [concrete = constants.%bound_method.e3e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc37: init %i32 = call %bound_method.loc37_10.2(%int_5.loc37) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc37_10.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc37 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc37_10.2: %i32 = converted %int_5.loc37, %.loc37_10.1 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %cpp_operator.call.loc37: ref %C = call imports.%cpp_operator.decl.4046da.20(%c1.ref.loc37, %.loc37_10.2) +// CHECK:STDOUT: %bound_method.loc37_10.2: = bound_method %int_5.loc37, %specific_fn.loc37 [concrete = constants.%bound_method.c9d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc37: init %i32 = call %bound_method.loc37_10.2(%int_5.loc37) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc37_10.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc37 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc37_10.2: %i32 = converted %int_5.loc37, %.loc37_10.1 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %cpp_operator.call.loc37: ref %C = call imports.%cpp_operator.decl.5ce91d.20(%c1.ref.loc37, %.loc37_10.2) // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %equal.patt: %pattern_type.831 = value_binding_pattern equal [concrete] // CHECK:STDOUT: } @@ -1758,9 +1758,9 @@ fn F() { // CHECK:STDOUT: %.loc40_28.1: %C = acquire_value %c1.ref.loc40 // CHECK:STDOUT: %.loc40_34.1: %C = acquire_value %c2.ref.loc40 // CHECK:STDOUT: %.loc40_28.2: ref %C = value_as_ref %.loc40_28.1 -// CHECK:STDOUT: %addr.loc40_31.1: %ptr.3a8 = addr_of %.loc40_28.2 +// CHECK:STDOUT: %addr.loc40_31.1: %ptr.0a2 = addr_of %.loc40_28.2 // CHECK:STDOUT: %.loc40_34.2: ref %C = value_as_ref %.loc40_34.1 -// CHECK:STDOUT: %addr.loc40_31.2: %ptr.3a8 = addr_of %.loc40_34.2 +// CHECK:STDOUT: %addr.loc40_31.2: %ptr.0a2 = addr_of %.loc40_34.2 // CHECK:STDOUT: %.loc40_31.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc40_31.3: %ptr.bb2 = addr_of %.loc40_31.1 // CHECK:STDOUT: %operator_EqualEqual__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_EqualEqual__carbon_thunk.decl(%addr.loc40_31.1, %addr.loc40_31.2, %addr.loc40_31.3) @@ -1777,9 +1777,9 @@ fn F() { // CHECK:STDOUT: %.loc41_32.1: %C = acquire_value %c1.ref.loc41 // CHECK:STDOUT: %.loc41_38.1: %C = acquire_value %c2.ref.loc41 // CHECK:STDOUT: %.loc41_32.2: ref %C = value_as_ref %.loc41_32.1 -// CHECK:STDOUT: %addr.loc41_35.1: %ptr.3a8 = addr_of %.loc41_32.2 +// CHECK:STDOUT: %addr.loc41_35.1: %ptr.0a2 = addr_of %.loc41_32.2 // CHECK:STDOUT: %.loc41_38.2: ref %C = value_as_ref %.loc41_38.1 -// CHECK:STDOUT: %addr.loc41_35.2: %ptr.3a8 = addr_of %.loc41_38.2 +// CHECK:STDOUT: %addr.loc41_35.2: %ptr.0a2 = addr_of %.loc41_38.2 // CHECK:STDOUT: %.loc41_35.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc41_35.3: %ptr.bb2 = addr_of %.loc41_35.1 // CHECK:STDOUT: %operator_ExclaimEqual__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_ExclaimEqual__carbon_thunk.decl(%addr.loc41_35.1, %addr.loc41_35.2, %addr.loc41_35.3) @@ -1796,9 +1796,9 @@ fn F() { // CHECK:STDOUT: %.loc42_35.1: %C = acquire_value %c1.ref.loc42 // CHECK:STDOUT: %.loc42_40.1: %C = acquire_value %c2.ref.loc42 // CHECK:STDOUT: %.loc42_35.2: ref %C = value_as_ref %.loc42_35.1 -// CHECK:STDOUT: %addr.loc42_38.1: %ptr.3a8 = addr_of %.loc42_35.2 +// CHECK:STDOUT: %addr.loc42_38.1: %ptr.0a2 = addr_of %.loc42_35.2 // CHECK:STDOUT: %.loc42_40.2: ref %C = value_as_ref %.loc42_40.1 -// CHECK:STDOUT: %addr.loc42_38.2: %ptr.3a8 = addr_of %.loc42_40.2 +// CHECK:STDOUT: %addr.loc42_38.2: %ptr.0a2 = addr_of %.loc42_40.2 // CHECK:STDOUT: %.loc42_38.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc42_38.3: %ptr.bb2 = addr_of %.loc42_38.1 // CHECK:STDOUT: %operator_Greater__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Greater__carbon_thunk.decl(%addr.loc42_38.1, %addr.loc42_38.2, %addr.loc42_38.3) @@ -1815,9 +1815,9 @@ fn F() { // CHECK:STDOUT: %.loc43_32.1: %C = acquire_value %c1.ref.loc43 // CHECK:STDOUT: %.loc43_37.1: %C = acquire_value %c2.ref.loc43 // CHECK:STDOUT: %.loc43_32.2: ref %C = value_as_ref %.loc43_32.1 -// CHECK:STDOUT: %addr.loc43_35.1: %ptr.3a8 = addr_of %.loc43_32.2 +// CHECK:STDOUT: %addr.loc43_35.1: %ptr.0a2 = addr_of %.loc43_32.2 // CHECK:STDOUT: %.loc43_37.2: ref %C = value_as_ref %.loc43_37.1 -// CHECK:STDOUT: %addr.loc43_35.2: %ptr.3a8 = addr_of %.loc43_37.2 +// CHECK:STDOUT: %addr.loc43_35.2: %ptr.0a2 = addr_of %.loc43_37.2 // CHECK:STDOUT: %.loc43_35.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc43_35.3: %ptr.bb2 = addr_of %.loc43_35.1 // CHECK:STDOUT: %operator_Less__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Less__carbon_thunk.decl(%addr.loc43_35.1, %addr.loc43_35.2, %addr.loc43_35.3) @@ -1834,9 +1834,9 @@ fn F() { // CHECK:STDOUT: %.loc44_44.1: %C = acquire_value %c1.ref.loc44 // CHECK:STDOUT: %.loc44_50.1: %C = acquire_value %c2.ref.loc44 // CHECK:STDOUT: %.loc44_44.2: ref %C = value_as_ref %.loc44_44.1 -// CHECK:STDOUT: %addr.loc44_47.1: %ptr.3a8 = addr_of %.loc44_44.2 +// CHECK:STDOUT: %addr.loc44_47.1: %ptr.0a2 = addr_of %.loc44_44.2 // CHECK:STDOUT: %.loc44_50.2: ref %C = value_as_ref %.loc44_50.1 -// CHECK:STDOUT: %addr.loc44_47.2: %ptr.3a8 = addr_of %.loc44_50.2 +// CHECK:STDOUT: %addr.loc44_47.2: %ptr.0a2 = addr_of %.loc44_50.2 // CHECK:STDOUT: %.loc44_47.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc44_47.3: %ptr.bb2 = addr_of %.loc44_47.1 // CHECK:STDOUT: %operator_GreaterEqual__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_GreaterEqual__carbon_thunk.decl(%addr.loc44_47.1, %addr.loc44_47.2, %addr.loc44_47.3) @@ -1853,9 +1853,9 @@ fn F() { // CHECK:STDOUT: %.loc45_41.1: %C = acquire_value %c1.ref.loc45 // CHECK:STDOUT: %.loc45_47.1: %C = acquire_value %c2.ref.loc45 // CHECK:STDOUT: %.loc45_41.2: ref %C = value_as_ref %.loc45_41.1 -// CHECK:STDOUT: %addr.loc45_44.1: %ptr.3a8 = addr_of %.loc45_41.2 +// CHECK:STDOUT: %addr.loc45_44.1: %ptr.0a2 = addr_of %.loc45_41.2 // CHECK:STDOUT: %.loc45_47.2: ref %C = value_as_ref %.loc45_47.1 -// CHECK:STDOUT: %addr.loc45_44.2: %ptr.3a8 = addr_of %.loc45_47.2 +// CHECK:STDOUT: %addr.loc45_44.2: %ptr.0a2 = addr_of %.loc45_47.2 // CHECK:STDOUT: %.loc45_44.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc45_44.3: %ptr.bb2 = addr_of %.loc45_44.1 // CHECK:STDOUT: %operator_LessEqual__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_LessEqual__carbon_thunk.decl(%addr.loc45_44.1, %addr.loc45_44.2, %addr.loc45_44.3) @@ -1865,18 +1865,18 @@ fn F() { // CHECK:STDOUT: %.loc45_44.4: bool = acquire_value %.loc45_44.3 // CHECK:STDOUT: %less_than_or_equal: bool = value_binding less_than_or_equal, %.loc45_44.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %index.patt: %pattern_type.104 = value_binding_pattern index [concrete] +// CHECK:STDOUT: %index.patt: %pattern_type.6b6 = value_binding_pattern index [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc48: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] // CHECK:STDOUT: %C.cpp_operator.bound: = bound_method %c1.ref.loc48, imports.%C.cpp_operator.decl -// CHECK:STDOUT: %impl.elem0.loc48: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc48_30.1: = bound_method %int_42, %impl.elem0.loc48 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.21e] +// CHECK:STDOUT: %impl.elem0.loc48: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc48_30.1: = bound_method %int_42, %impl.elem0.loc48 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf3] // CHECK:STDOUT: %specific_fn.loc48: = specific_function %impl.elem0.loc48, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc48_30.2: = bound_method %int_42, %specific_fn.loc48 [concrete = constants.%bound_method.98e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc48: init %i32 = call %bound_method.loc48_30.2(%int_42) [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %.loc48_30.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc48 [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %.loc48_30.2: %i32 = converted %int_42, %.loc48_30.1 [concrete = constants.%int_42.daa] +// CHECK:STDOUT: %bound_method.loc48_30.2: = bound_method %int_42, %specific_fn.loc48 [concrete = constants.%bound_method.098] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc48: init %i32 = call %bound_method.loc48_30.2(%int_42) [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %.loc48_30.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc48 [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %.loc48_30.2: %i32 = converted %int_42, %.loc48_30.1 [concrete = constants.%int_42.ac4] // CHECK:STDOUT: %C.cpp_operator.call: init %i32 = call %C.cpp_operator.bound(%c1.ref.loc48, %.loc48_30.2) // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc48_32.1: %i32 = value_of_initializer %C.cpp_operator.call @@ -1953,10 +1953,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.bbc: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] @@ -1994,13 +1994,13 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.479 = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.bbc = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_27.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_27.1 +// CHECK:STDOUT: %addr.loc8: %ptr.0a2 = addr_of %.loc8_27.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_27.2: init %C to %.loc8_27.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_14: type = splice_block %C.ref.loc8_14 [concrete = constants.%C] { @@ -2011,13 +2011,13 @@ fn F() { // CHECK:STDOUT: %.loc8_27.4: %C = acquire_value %.loc8_27.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_27.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.479 = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.bbc = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc9_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc9_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_27.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc9: %ptr.3a8 = addr_of %.loc9_27.1 +// CHECK:STDOUT: %addr.loc9: %ptr.0a2 = addr_of %.loc9_27.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %.loc9_27.2: init %C to %.loc9_27.1 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_14: type = splice_block %C.ref.loc9_14 [concrete = constants.%C] { @@ -2028,16 +2028,16 @@ fn F() { // CHECK:STDOUT: %.loc9_27.4: %C = acquire_value %.loc9_27.3 // CHECK:STDOUT: %c2: %C = value_binding c2, %.loc9_27.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.479 = value_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.bbc = value_binding_pattern c3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc10: %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref: %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc10_22.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc10_19: ref %C = value_as_ref %c1.ref.loc10 -// CHECK:STDOUT: %addr.loc10_22.1: %ptr.3a8 = addr_of %.loc10_19 +// CHECK:STDOUT: %addr.loc10_22.1: %ptr.0a2 = addr_of %.loc10_19 // CHECK:STDOUT: %.loc10_24: ref %C = value_as_ref %c2.ref -// CHECK:STDOUT: %addr.loc10_22.2: %ptr.3a8 = addr_of %.loc10_24 -// CHECK:STDOUT: %addr.loc10_22.3: %ptr.3a8 = addr_of %.loc10_22.1 +// CHECK:STDOUT: %addr.loc10_22.2: %ptr.0a2 = addr_of %.loc10_24 +// CHECK:STDOUT: %addr.loc10_22.3: %ptr.0a2 = addr_of %.loc10_22.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc10_22.1, %addr.loc10_22.2, %addr.loc10_22.3) // CHECK:STDOUT: %.loc10_22.2: init %C to %.loc10_22.1 = mark_in_place_init %operator_Plus__carbon_thunk.call.loc10 // CHECK:STDOUT: %.loc10_14: type = splice_block %C.ref.loc10 [concrete = constants.%C] { @@ -2048,16 +2048,16 @@ fn F() { // CHECK:STDOUT: %.loc10_22.4: %C = acquire_value %.loc10_22.3 // CHECK:STDOUT: %c3: %C = value_binding c3, %.loc10_22.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c4.patt: %pattern_type.479 = value_binding_pattern c4 [concrete] +// CHECK:STDOUT: %c4.patt: %pattern_type.bbc = value_binding_pattern c4 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc11: %C = name_ref c1, %c1 // CHECK:STDOUT: %c3.ref.loc11: %C = name_ref c3, %c3 // CHECK:STDOUT: %.loc11_22.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc11_19: ref %C = value_as_ref %c1.ref.loc11 -// CHECK:STDOUT: %addr.loc11_22.1: %ptr.3a8 = addr_of %.loc11_19 +// CHECK:STDOUT: %addr.loc11_22.1: %ptr.0a2 = addr_of %.loc11_19 // CHECK:STDOUT: %.loc11_24: ref %C = value_as_ref %c3.ref.loc11 -// CHECK:STDOUT: %addr.loc11_22.2: %ptr.3a8 = addr_of %.loc11_24 -// CHECK:STDOUT: %addr.loc11_22.3: %ptr.3a8 = addr_of %.loc11_22.1 +// CHECK:STDOUT: %addr.loc11_22.2: %ptr.0a2 = addr_of %.loc11_24 +// CHECK:STDOUT: %addr.loc11_22.3: %ptr.0a2 = addr_of %.loc11_22.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call.loc11: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc11_22.1, %addr.loc11_22.2, %addr.loc11_22.3) // CHECK:STDOUT: %.loc11_22.2: init %C to %.loc11_22.1 = mark_in_place_init %operator_Plus__carbon_thunk.call.loc11 // CHECK:STDOUT: %.loc11_14: type = splice_block %C.ref.loc11 [concrete = constants.%C] { @@ -2068,16 +2068,16 @@ fn F() { // CHECK:STDOUT: %.loc11_22.4: %C = acquire_value %.loc11_22.3 // CHECK:STDOUT: %c4: %C = value_binding c4, %.loc11_22.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c5.patt: %pattern_type.479 = value_binding_pattern c5 [concrete] +// CHECK:STDOUT: %c5.patt: %pattern_type.bbc = value_binding_pattern c5 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c4.ref: %C = name_ref c4, %c4 // CHECK:STDOUT: %c3.ref.loc12: %C = name_ref c3, %c3 // CHECK:STDOUT: %.loc12_29.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc12_26: ref %C = value_as_ref %c4.ref -// CHECK:STDOUT: %addr.loc12_29.1: %ptr.3a8 = addr_of %.loc12_26 +// CHECK:STDOUT: %addr.loc12_29.1: %ptr.0a2 = addr_of %.loc12_26 // CHECK:STDOUT: %.loc12_31: ref %C = value_as_ref %c3.ref.loc12 -// CHECK:STDOUT: %addr.loc12_29.2: %ptr.3a8 = addr_of %.loc12_31 -// CHECK:STDOUT: %addr.loc12_29.3: %ptr.3a8 = addr_of %.loc12_29.1 +// CHECK:STDOUT: %addr.loc12_29.2: %ptr.0a2 = addr_of %.loc12_31 +// CHECK:STDOUT: %addr.loc12_29.3: %ptr.0a2 = addr_of %.loc12_29.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call.loc12: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc12_29.1, %addr.loc12_29.2, %addr.loc12_29.3) // CHECK:STDOUT: %.loc12_29.2: init %C to %.loc12_29.1 = mark_in_place_init %operator_Plus__carbon_thunk.call.loc12 // CHECK:STDOUT: %.loc12_21: type = splice_block %C.ref.loc12 [concrete = constants.%C] { @@ -2116,10 +2116,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.bbc: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] @@ -2168,15 +2168,15 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.479 = ref_binding_pattern c1 [concrete] -// CHECK:STDOUT: %c1.var_patt: %pattern_type.479 = var_pattern %c1.patt [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.bbc = ref_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.var_patt: %pattern_type.bbc = var_pattern %c1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.var: ref %C = var %c1.var_patt // CHECK:STDOUT: %Cpp.ref.loc15_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc15_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc15_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc15_3: ref %C = splice_block %c1.var {} -// CHECK:STDOUT: %addr.loc15: %ptr.3a8 = addr_of %.loc15_3 +// CHECK:STDOUT: %addr.loc15: %ptr.0a2 = addr_of %.loc15_3 // CHECK:STDOUT: %C__carbon_thunk.call.loc15: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc15) // CHECK:STDOUT: %.loc15_27: init %C to %.loc15_3 = mark_in_place_init %C__carbon_thunk.call.loc15 // CHECK:STDOUT: assign %c1.var, %.loc15_27 @@ -2186,15 +2186,15 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c1: ref %C = ref_binding c1, %c1.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.479 = ref_binding_pattern c2 [concrete] -// CHECK:STDOUT: %c2.var_patt: %pattern_type.479 = var_pattern %c2.patt [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.bbc = ref_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.var_patt: %pattern_type.bbc = var_pattern %c2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c2.var: ref %C = var %c2.var_patt // CHECK:STDOUT: %Cpp.ref.loc16_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc16_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc16_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc16_3: ref %C = splice_block %c2.var {} -// CHECK:STDOUT: %addr.loc16: %ptr.3a8 = addr_of %.loc16_3 +// CHECK:STDOUT: %addr.loc16: %ptr.0a2 = addr_of %.loc16_3 // CHECK:STDOUT: %C__carbon_thunk.call.loc16: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc16) // CHECK:STDOUT: %.loc16_27: init %C to %.loc16_3 = mark_in_place_init %C__carbon_thunk.call.loc16 // CHECK:STDOUT: assign %c2.var, %.loc16_27 @@ -2211,9 +2211,9 @@ fn F() { // CHECK:STDOUT: %.loc19_35.1: %C = acquire_value %c1.ref.loc19 // CHECK:STDOUT: %.loc19_40.1: %C = acquire_value %c2.ref.loc19 // CHECK:STDOUT: %.loc19_35.2: ref %C = value_as_ref %.loc19_35.1 -// CHECK:STDOUT: %addr.loc19_38.1: %ptr.3a8 = addr_of %.loc19_35.2 +// CHECK:STDOUT: %addr.loc19_38.1: %ptr.0a2 = addr_of %.loc19_35.2 // CHECK:STDOUT: %.loc19_40.2: ref %C = value_as_ref %.loc19_40.1 -// CHECK:STDOUT: %addr.loc19_38.2: %ptr.3a8 = addr_of %.loc19_40.2 +// CHECK:STDOUT: %addr.loc19_38.2: %ptr.0a2 = addr_of %.loc19_40.2 // CHECK:STDOUT: %.loc19_38.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc19_38.3: %ptr.bb2 = addr_of %.loc19_38.1 // CHECK:STDOUT: %operator_Greater__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Greater__carbon_thunk.decl(%addr.loc19_38.1, %addr.loc19_38.2, %addr.loc19_38.3) @@ -2244,9 +2244,9 @@ fn F() { // CHECK:STDOUT: %.loc36_41.1: %C = acquire_value %c1.ref.loc36 // CHECK:STDOUT: %.loc36_47.1: %C = acquire_value %c2.ref.loc36 // CHECK:STDOUT: %.loc36_41.2: ref %C = value_as_ref %.loc36_41.1 -// CHECK:STDOUT: %addr.loc36_44.1: %ptr.3a8 = addr_of %.loc36_41.2 +// CHECK:STDOUT: %addr.loc36_44.1: %ptr.0a2 = addr_of %.loc36_41.2 // CHECK:STDOUT: %.loc36_47.2: ref %C = value_as_ref %.loc36_47.1 -// CHECK:STDOUT: %addr.loc36_44.2: %ptr.3a8 = addr_of %.loc36_47.2 +// CHECK:STDOUT: %addr.loc36_44.2: %ptr.0a2 = addr_of %.loc36_47.2 // CHECK:STDOUT: %.loc36_44.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc36_44.3: %ptr.bb2 = addr_of %.loc36_44.1 // CHECK:STDOUT: %operator_LessEqual__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_LessEqual__carbon_thunk.decl(%addr.loc36_44.1, %addr.loc36_44.2, %addr.loc36_44.3) @@ -2278,10 +2278,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.bbc: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] @@ -2323,15 +2323,15 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.479 = ref_binding_pattern c1 [concrete] -// CHECK:STDOUT: %c1.var_patt: %pattern_type.479 = var_pattern %c1.patt [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.bbc = ref_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.var_patt: %pattern_type.bbc = var_pattern %c1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.var: ref %C = var %c1.var_patt // CHECK:STDOUT: %Cpp.ref.loc12_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc12_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc12_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc12_3: ref %C = splice_block %c1.var {} -// CHECK:STDOUT: %addr.loc12: %ptr.3a8 = addr_of %.loc12_3 +// CHECK:STDOUT: %addr.loc12: %ptr.0a2 = addr_of %.loc12_3 // CHECK:STDOUT: %C__carbon_thunk.call.loc12: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc12) // CHECK:STDOUT: %.loc12_27: init %C to %.loc12_3 = mark_in_place_init %C__carbon_thunk.call.loc12 // CHECK:STDOUT: assign %c1.var, %.loc12_27 @@ -2341,15 +2341,15 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c1: ref %C = ref_binding c1, %c1.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.479 = ref_binding_pattern c2 [concrete] -// CHECK:STDOUT: %c2.var_patt: %pattern_type.479 = var_pattern %c2.patt [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.bbc = ref_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.var_patt: %pattern_type.bbc = var_pattern %c2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c2.var: ref %C = var %c2.var_patt // CHECK:STDOUT: %Cpp.ref.loc13_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc13_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc13_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc13_3: ref %C = splice_block %c2.var {} -// CHECK:STDOUT: %addr.loc13: %ptr.3a8 = addr_of %.loc13_3 +// CHECK:STDOUT: %addr.loc13: %ptr.0a2 = addr_of %.loc13_3 // CHECK:STDOUT: %C__carbon_thunk.call.loc13: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc13) // CHECK:STDOUT: %.loc13_27: init %C to %.loc13_3 = mark_in_place_init %C__carbon_thunk.call.loc13 // CHECK:STDOUT: assign %c2.var, %.loc13_27 @@ -2366,9 +2366,9 @@ fn F() { // CHECK:STDOUT: %.loc16_28.1: %C = acquire_value %c1.ref.loc16 // CHECK:STDOUT: %.loc16_34.1: %C = acquire_value %c2.ref.loc16 // CHECK:STDOUT: %.loc16_28.2: ref %C = value_as_ref %.loc16_28.1 -// CHECK:STDOUT: %addr.loc16_31.1: %ptr.3a8 = addr_of %.loc16_28.2 +// CHECK:STDOUT: %addr.loc16_31.1: %ptr.0a2 = addr_of %.loc16_28.2 // CHECK:STDOUT: %.loc16_34.2: ref %C = value_as_ref %.loc16_34.1 -// CHECK:STDOUT: %addr.loc16_31.2: %ptr.3a8 = addr_of %.loc16_34.2 +// CHECK:STDOUT: %addr.loc16_31.2: %ptr.0a2 = addr_of %.loc16_34.2 // CHECK:STDOUT: %.loc16_31.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc16_31.3: %ptr.bb2 = addr_of %.loc16_31.1 // CHECK:STDOUT: %operator_EqualEqual__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_EqualEqual__carbon_thunk.decl(%addr.loc16_31.1, %addr.loc16_31.2, %addr.loc16_31.3) @@ -2405,10 +2405,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.908: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.7cb: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.58d: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.f8b: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] @@ -2450,14 +2450,14 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.908 = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.7cb = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N.ref.loc8_24: = name_ref N, imports.%N [concrete = imports.%N] // CHECK:STDOUT: %C.ref.loc8_26: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_28: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_31.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc8: %ptr.58d = addr_of %.loc8_31.1 +// CHECK:STDOUT: %addr.loc8: %ptr.f8b = addr_of %.loc8_31.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_31.2: init %C to %.loc8_31.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_16: type = splice_block %C.ref.loc8_16 [concrete = constants.%C] { @@ -2469,14 +2469,14 @@ fn F() { // CHECK:STDOUT: %.loc8_31.4: %C = acquire_value %.loc8_31.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_31.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.908 = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.7cb = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N.ref.loc9_24: = name_ref N, imports.%N [concrete = imports.%N] // CHECK:STDOUT: %C.ref.loc9_26: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc9_28: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_31.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc9: %ptr.58d = addr_of %.loc9_31.1 +// CHECK:STDOUT: %addr.loc9: %ptr.f8b = addr_of %.loc9_31.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %.loc9_31.2: init %C to %.loc9_31.1 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_16: type = splice_block %C.ref.loc9_16 [concrete = constants.%C] { @@ -2488,16 +2488,16 @@ fn F() { // CHECK:STDOUT: %.loc9_31.4: %C = acquire_value %.loc9_31.3 // CHECK:STDOUT: %c2: %C = value_binding c2, %.loc9_31.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.908 = value_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.7cb = value_binding_pattern c3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref: %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref: %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc10_31.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc10_28: ref %C = value_as_ref %c1.ref -// CHECK:STDOUT: %addr.loc10_31.1: %ptr.58d = addr_of %.loc10_28 +// CHECK:STDOUT: %addr.loc10_31.1: %ptr.f8b = addr_of %.loc10_28 // CHECK:STDOUT: %.loc10_33: ref %C = value_as_ref %c2.ref -// CHECK:STDOUT: %addr.loc10_31.2: %ptr.58d = addr_of %.loc10_33 -// CHECK:STDOUT: %addr.loc10_31.3: %ptr.58d = addr_of %.loc10_31.1 +// CHECK:STDOUT: %addr.loc10_31.2: %ptr.f8b = addr_of %.loc10_33 +// CHECK:STDOUT: %addr.loc10_31.3: %ptr.f8b = addr_of %.loc10_31.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc10_31.1, %addr.loc10_31.2, %addr.loc10_31.3) // CHECK:STDOUT: %.loc10_31.2: init %C to %.loc10_31.1 = mark_in_place_init %operator_Plus__carbon_thunk.call // CHECK:STDOUT: %.loc10_23: type = splice_block %C.ref.loc10 [concrete = constants.%C] { @@ -2529,17 +2529,17 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C1: type = class_type @C1 [concrete] -// CHECK:STDOUT: %pattern_type.c99: type = pattern_type %C1 [concrete] +// CHECK:STDOUT: %pattern_type.da8: type = pattern_type %C1 [concrete] // CHECK:STDOUT: %C1.C1.cpp_overload_set.type: type = cpp_overload_set_type @C1.C1.cpp_overload_set [concrete] // CHECK:STDOUT: %C1.C1.cpp_overload_set.value: %C1.C1.cpp_overload_set.type = cpp_overload_set_value @C1.C1.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.4ba: type = ptr_type %C1 [concrete] +// CHECK:STDOUT: %ptr.876: type = ptr_type %C1 [concrete] // CHECK:STDOUT: %C1__carbon_thunk.type: type = fn_type @C1__carbon_thunk [concrete] // CHECK:STDOUT: %C1__carbon_thunk: %C1__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %C2: type = class_type @C2 [concrete] -// CHECK:STDOUT: %pattern_type.04f: type = pattern_type %C2 [concrete] +// CHECK:STDOUT: %pattern_type.00d: type = pattern_type %C2 [concrete] // CHECK:STDOUT: %C2.C2.cpp_overload_set.type: type = cpp_overload_set_type @C2.C2.cpp_overload_set [concrete] // CHECK:STDOUT: %C2.C2.cpp_overload_set.value: %C2.C2.cpp_overload_set.type = cpp_overload_set_value @C2.C2.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.1df: type = ptr_type %C2 [concrete] +// CHECK:STDOUT: %ptr.b22: type = ptr_type %C2 [concrete] // CHECK:STDOUT: %C2__carbon_thunk.type: type = fn_type @C2__carbon_thunk [concrete] // CHECK:STDOUT: %C2__carbon_thunk: %C2__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] @@ -2609,14 +2609,14 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.c99 = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.da8 = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_23: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N1.ref.loc8_26: = name_ref N1, imports.%N1 [concrete = imports.%N1] // CHECK:STDOUT: %C1.ref.loc8_29: type = name_ref C1, imports.%C1.decl [concrete = constants.%C1] // CHECK:STDOUT: %C1.ref.loc8_32: %C1.C1.cpp_overload_set.type = name_ref C1, imports.%C1.C1.cpp_overload_set.value [concrete = constants.%C1.C1.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_36.1: ref %C1 = temporary_storage -// CHECK:STDOUT: %addr.loc8: %ptr.4ba = addr_of %.loc8_36.1 +// CHECK:STDOUT: %addr.loc8: %ptr.876 = addr_of %.loc8_36.1 // CHECK:STDOUT: %C1__carbon_thunk.call: init %empty_tuple.type = call imports.%C1__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_36.2: init %C1 to %.loc8_36.1 = mark_in_place_init %C1__carbon_thunk.call // CHECK:STDOUT: %.loc8_17: type = splice_block %C1.ref.loc8_17 [concrete = constants.%C1] { @@ -2628,14 +2628,14 @@ fn F() { // CHECK:STDOUT: %.loc8_36.4: %C1 = acquire_value %.loc8_36.3 // CHECK:STDOUT: %c1: %C1 = value_binding c1, %.loc8_36.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.04f = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.00d = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_23: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N2.ref.loc9_26: = name_ref N2, imports.%N2 [concrete = imports.%N2] // CHECK:STDOUT: %C2.ref.loc9_29: type = name_ref C2, imports.%C2.decl [concrete = constants.%C2] // CHECK:STDOUT: %C2.ref.loc9_32: %C2.C2.cpp_overload_set.type = name_ref C2, imports.%C2.C2.cpp_overload_set.value [concrete = constants.%C2.C2.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_36.1: ref %C2 = temporary_storage -// CHECK:STDOUT: %addr.loc9: %ptr.1df = addr_of %.loc9_36.1 +// CHECK:STDOUT: %addr.loc9: %ptr.b22 = addr_of %.loc9_36.1 // CHECK:STDOUT: %C2__carbon_thunk.call: init %empty_tuple.type = call imports.%C2__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %.loc9_36.2: init %C2 to %.loc9_36.1 = mark_in_place_init %C2__carbon_thunk.call // CHECK:STDOUT: %.loc9_17: type = splice_block %C2.ref.loc9_17 [concrete = constants.%C2] { @@ -2647,16 +2647,16 @@ fn F() { // CHECK:STDOUT: %.loc9_36.4: %C2 = acquire_value %.loc9_36.3 // CHECK:STDOUT: %c2: %C2 = value_binding c2, %.loc9_36.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.04f = value_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.00d = value_binding_pattern c3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc10: %C1 = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc10: %C2 = name_ref c2, %c2 // CHECK:STDOUT: %.loc10_33.1: ref %C2 = temporary_storage // CHECK:STDOUT: %.loc10_30: ref %C1 = value_as_ref %c1.ref.loc10 -// CHECK:STDOUT: %addr.loc10_33.1: %ptr.4ba = addr_of %.loc10_30 +// CHECK:STDOUT: %addr.loc10_33.1: %ptr.876 = addr_of %.loc10_30 // CHECK:STDOUT: %.loc10_35: ref %C2 = value_as_ref %c2.ref.loc10 -// CHECK:STDOUT: %addr.loc10_33.2: %ptr.1df = addr_of %.loc10_35 -// CHECK:STDOUT: %addr.loc10_33.3: %ptr.1df = addr_of %.loc10_33.1 +// CHECK:STDOUT: %addr.loc10_33.2: %ptr.b22 = addr_of %.loc10_35 +// CHECK:STDOUT: %addr.loc10_33.3: %ptr.b22 = addr_of %.loc10_33.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc10_33.1, %addr.loc10_33.2, %addr.loc10_33.3) // CHECK:STDOUT: %.loc10_33.2: init %C2 to %.loc10_33.1 = mark_in_place_init %operator_Plus__carbon_thunk.call // CHECK:STDOUT: %.loc10_24: type = splice_block %C2.ref.loc10 [concrete = constants.%C2] { @@ -2668,16 +2668,16 @@ fn F() { // CHECK:STDOUT: %.loc10_33.4: %C2 = acquire_value %.loc10_33.3 // CHECK:STDOUT: %c3: %C2 = value_binding c3, %.loc10_33.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c4.patt: %pattern_type.04f = value_binding_pattern c4 [concrete] +// CHECK:STDOUT: %c4.patt: %pattern_type.00d = value_binding_pattern c4 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c2.ref.loc11: %C2 = name_ref c2, %c2 // CHECK:STDOUT: %c1.ref.loc11: %C1 = name_ref c1, %c1 // CHECK:STDOUT: %.loc11_33.1: ref %C2 = temporary_storage // CHECK:STDOUT: %.loc11_30: ref %C2 = value_as_ref %c2.ref.loc11 -// CHECK:STDOUT: %addr.loc11_33.1: %ptr.1df = addr_of %.loc11_30 +// CHECK:STDOUT: %addr.loc11_33.1: %ptr.b22 = addr_of %.loc11_30 // CHECK:STDOUT: %.loc11_35: ref %C1 = value_as_ref %c1.ref.loc11 -// CHECK:STDOUT: %addr.loc11_33.2: %ptr.4ba = addr_of %.loc11_35 -// CHECK:STDOUT: %addr.loc11_33.3: %ptr.1df = addr_of %.loc11_33.1 +// CHECK:STDOUT: %addr.loc11_33.2: %ptr.876 = addr_of %.loc11_35 +// CHECK:STDOUT: %addr.loc11_33.3: %ptr.b22 = addr_of %.loc11_33.1 // CHECK:STDOUT: %operator_Minus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Minus__carbon_thunk.decl(%addr.loc11_33.1, %addr.loc11_33.2, %addr.loc11_33.3) // CHECK:STDOUT: %.loc11_33.2: init %C2 to %.loc11_33.1 = mark_in_place_init %operator_Minus__carbon_thunk.call // CHECK:STDOUT: %.loc11_24: type = splice_block %C2.ref.loc11 [concrete = constants.%C2] { @@ -2714,10 +2714,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.908: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.7cb: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.58d: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.f8b: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] @@ -2752,14 +2752,14 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.908 = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.7cb = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N.ref.loc8_24: = name_ref N, imports.%N [concrete = imports.%N] // CHECK:STDOUT: %C.ref.loc8_26: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_28: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_31.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc8: %ptr.58d = addr_of %.loc8_31.1 +// CHECK:STDOUT: %addr.loc8: %ptr.f8b = addr_of %.loc8_31.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_31.2: init %C to %.loc8_31.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_16: type = splice_block %C.ref.loc8_16 [concrete = constants.%C] { @@ -2771,14 +2771,14 @@ fn F() { // CHECK:STDOUT: %.loc8_31.4: %C = acquire_value %.loc8_31.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_31.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.908 = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.7cb = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N.ref.loc9_24: = name_ref N, imports.%N [concrete = imports.%N] // CHECK:STDOUT: %C.ref.loc9_26: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc9_28: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_31.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc9: %ptr.58d = addr_of %.loc9_31.1 +// CHECK:STDOUT: %addr.loc9: %ptr.f8b = addr_of %.loc9_31.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %.loc9_31.2: init %C to %.loc9_31.1 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_16: type = splice_block %C.ref.loc9_16 [concrete = constants.%C] { @@ -2790,7 +2790,7 @@ fn F() { // CHECK:STDOUT: %.loc9_31.4: %C = acquire_value %.loc9_31.3 // CHECK:STDOUT: %c2: %C = value_binding c2, %.loc9_31.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.908 = value_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.7cb = value_binding_pattern c3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref: %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref: %C = name_ref c2, %c2 @@ -2818,10 +2818,10 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %O: type = class_type @O [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.cc2: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.aac: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.010: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.39f: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] @@ -2860,14 +2860,14 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.cc2 = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.aac = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %O.ref.loc8_24: type = name_ref O, imports.%O.decl [concrete = constants.%O] // CHECK:STDOUT: %C.ref.loc8_26: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_28: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_31.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc8: %ptr.010 = addr_of %.loc8_31.1 +// CHECK:STDOUT: %addr.loc8: %ptr.39f = addr_of %.loc8_31.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_31.2: init %C to %.loc8_31.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_16: type = splice_block %C.ref.loc8_16 [concrete = constants.%C] { @@ -2879,14 +2879,14 @@ fn F() { // CHECK:STDOUT: %.loc8_31.4: %C = acquire_value %.loc8_31.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_31.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.cc2 = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.aac = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %O.ref.loc9_24: type = name_ref O, imports.%O.decl [concrete = constants.%O] // CHECK:STDOUT: %C.ref.loc9_26: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc9_28: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_31.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc9: %ptr.010 = addr_of %.loc9_31.1 +// CHECK:STDOUT: %addr.loc9: %ptr.39f = addr_of %.loc9_31.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %.loc9_31.2: init %C to %.loc9_31.1 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_16: type = splice_block %C.ref.loc9_16 [concrete = constants.%C] { @@ -2898,16 +2898,16 @@ fn F() { // CHECK:STDOUT: %.loc9_31.4: %C = acquire_value %.loc9_31.3 // CHECK:STDOUT: %c2: %C = value_binding c2, %.loc9_31.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.cc2 = value_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.aac = value_binding_pattern c3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref: %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref: %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc10_31.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc10_28: ref %C = value_as_ref %c1.ref -// CHECK:STDOUT: %addr.loc10_31.1: %ptr.010 = addr_of %.loc10_28 +// CHECK:STDOUT: %addr.loc10_31.1: %ptr.39f = addr_of %.loc10_28 // CHECK:STDOUT: %.loc10_33: ref %C = value_as_ref %c2.ref -// CHECK:STDOUT: %addr.loc10_31.2: %ptr.010 = addr_of %.loc10_33 -// CHECK:STDOUT: %addr.loc10_31.3: %ptr.010 = addr_of %.loc10_31.1 +// CHECK:STDOUT: %addr.loc10_31.2: %ptr.39f = addr_of %.loc10_33 +// CHECK:STDOUT: %addr.loc10_31.3: %ptr.39f = addr_of %.loc10_31.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc10_31.1, %addr.loc10_31.2, %addr.loc10_31.3) // CHECK:STDOUT: %.loc10_31.2: init %C to %.loc10_31.1 = mark_in_place_init %operator_Plus__carbon_thunk.call // CHECK:STDOUT: %.loc10_23: type = splice_block %C.ref.loc10 [concrete = constants.%C] { @@ -2940,10 +2940,10 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %O: type = class_type @O [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.221: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.f6e: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.403: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.7c7: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] @@ -2986,7 +2986,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.221 = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.f6e = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_23: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N.ref.loc8_26: = name_ref N, imports.%N [concrete = imports.%N] @@ -2994,7 +2994,7 @@ fn F() { // CHECK:STDOUT: %C.ref.loc8_30: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_32: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_35.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc8: %ptr.403 = addr_of %.loc8_35.1 +// CHECK:STDOUT: %addr.loc8: %ptr.7c7 = addr_of %.loc8_35.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_35.2: init %C to %.loc8_35.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_18: type = splice_block %C.ref.loc8_18 [concrete = constants.%C] { @@ -3007,7 +3007,7 @@ fn F() { // CHECK:STDOUT: %.loc8_35.4: %C = acquire_value %.loc8_35.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_35.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.221 = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.f6e = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_23: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N.ref.loc9_26: = name_ref N, imports.%N [concrete = imports.%N] @@ -3015,7 +3015,7 @@ fn F() { // CHECK:STDOUT: %C.ref.loc9_30: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc9_32: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_35.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc9: %ptr.403 = addr_of %.loc9_35.1 +// CHECK:STDOUT: %addr.loc9: %ptr.7c7 = addr_of %.loc9_35.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %.loc9_35.2: init %C to %.loc9_35.1 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_18: type = splice_block %C.ref.loc9_18 [concrete = constants.%C] { @@ -3028,16 +3028,16 @@ fn F() { // CHECK:STDOUT: %.loc9_35.4: %C = acquire_value %.loc9_35.3 // CHECK:STDOUT: %c2: %C = value_binding c2, %.loc9_35.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.221 = value_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.f6e = value_binding_pattern c3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref: %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref: %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc10_33.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc10_30: ref %C = value_as_ref %c1.ref -// CHECK:STDOUT: %addr.loc10_33.1: %ptr.403 = addr_of %.loc10_30 +// CHECK:STDOUT: %addr.loc10_33.1: %ptr.7c7 = addr_of %.loc10_30 // CHECK:STDOUT: %.loc10_35: ref %C = value_as_ref %c2.ref -// CHECK:STDOUT: %addr.loc10_33.2: %ptr.403 = addr_of %.loc10_35 -// CHECK:STDOUT: %addr.loc10_33.3: %ptr.403 = addr_of %.loc10_33.1 +// CHECK:STDOUT: %addr.loc10_33.2: %ptr.7c7 = addr_of %.loc10_35 +// CHECK:STDOUT: %addr.loc10_33.3: %ptr.7c7 = addr_of %.loc10_33.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc10_33.1, %addr.loc10_33.2, %addr.loc10_33.3) // CHECK:STDOUT: %.loc10_33.2: init %C to %.loc10_33.1 = mark_in_place_init %operator_Plus__carbon_thunk.call // CHECK:STDOUT: %.loc10_25: type = splice_block %C.ref.loc10 [concrete = constants.%C] { @@ -3070,18 +3070,18 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.bbc: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %C.cpp_operator.type.8beb8d.1: type = fn_type @C.cpp_operator.1 [concrete] -// CHECK:STDOUT: %C.cpp_operator.8514a7.1: %C.cpp_operator.type.8beb8d.1 = struct_value () [concrete] +// CHECK:STDOUT: %C.cpp_operator.type.c4928b.1: type = fn_type @C.cpp_operator.1 [concrete] +// CHECK:STDOUT: %C.cpp_operator.fb6eba.1: %C.cpp_operator.type.c4928b.1 = struct_value () [concrete] // CHECK:STDOUT: %operator_Minus__carbon_thunk.type: type = fn_type @operator_Minus__carbon_thunk [concrete] // CHECK:STDOUT: %operator_Minus__carbon_thunk: %operator_Minus__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %C.cpp_operator.type.8beb8d.2: type = fn_type @C.cpp_operator.2 [concrete] -// CHECK:STDOUT: %C.cpp_operator.8514a7.2: %C.cpp_operator.type.8beb8d.2 = struct_value () [concrete] +// CHECK:STDOUT: %C.cpp_operator.type.c4928b.2: type = fn_type @C.cpp_operator.2 [concrete] +// CHECK:STDOUT: %C.cpp_operator.fb6eba.2: %C.cpp_operator.type.c4928b.2 = struct_value () [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk: %operator_Plus__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] @@ -3102,7 +3102,7 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %C.cpp_operator.decl.092f40.1: %C.cpp_operator.type.8beb8d.1 = fn_decl @C.cpp_operator.1 [concrete = constants.%C.cpp_operator.8514a7.1] { +// CHECK:STDOUT: %C.cpp_operator.decl.25fc23.1: %C.cpp_operator.type.c4928b.1 = fn_decl @C.cpp_operator.1 [concrete = constants.%C.cpp_operator.fb6eba.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -3112,7 +3112,7 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %C.cpp_operator.decl.092f40.2: %C.cpp_operator.type.8beb8d.2 = fn_decl @C.cpp_operator.2 [concrete = constants.%C.cpp_operator.8514a7.2] { +// CHECK:STDOUT: %C.cpp_operator.decl.25fc23.2: %C.cpp_operator.type.c4928b.2 = fn_decl @C.cpp_operator.2 [concrete = constants.%C.cpp_operator.fb6eba.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: @@ -3132,15 +3132,15 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.479 = ref_binding_pattern c1 [concrete] -// CHECK:STDOUT: %c1.var_patt: %pattern_type.479 = var_pattern %c1.patt [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.bbc = ref_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.var_patt: %pattern_type.bbc = var_pattern %c1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.var: ref %C = var %c1.var_patt // CHECK:STDOUT: %Cpp.ref.loc8_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_3: ref %C = splice_block %c1.var {} -// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_3 +// CHECK:STDOUT: %addr.loc8: %ptr.0a2 = addr_of %.loc8_3 // CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_27: init %C to %.loc8_3 = mark_in_place_init %C__carbon_thunk.call // CHECK:STDOUT: assign %c1.var, %.loc8_27 @@ -3150,14 +3150,14 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c1: ref %C = ref_binding c1, %c1.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.479 = ref_binding_pattern c2 [concrete] -// CHECK:STDOUT: %c2.var_patt: %pattern_type.479 = var_pattern %c2.patt [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.bbc = ref_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.var_patt: %pattern_type.bbc = var_pattern %c2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c2.var: ref %C = var %c2.var_patt // CHECK:STDOUT: %c1.ref.loc9: ref %C = name_ref c1, %c1 -// CHECK:STDOUT: %C.cpp_operator.bound.loc9: = bound_method %c1.ref.loc9, imports.%C.cpp_operator.decl.092f40.1 +// CHECK:STDOUT: %C.cpp_operator.bound.loc9: = bound_method %c1.ref.loc9, imports.%C.cpp_operator.decl.25fc23.1 // CHECK:STDOUT: %.loc9_3: ref %C = splice_block %c2.var {} -// CHECK:STDOUT: %addr.loc9: %ptr.3a8 = addr_of %.loc9_3 +// CHECK:STDOUT: %addr.loc9: %ptr.0a2 = addr_of %.loc9_3 // CHECK:STDOUT: %operator_Minus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Minus__carbon_thunk.decl(%c1.ref.loc9, %addr.loc9) // CHECK:STDOUT: %.loc9_19: init %C to %.loc9_3 = mark_in_place_init %operator_Minus__carbon_thunk.call // CHECK:STDOUT: assign %c2.var, %.loc9_19 @@ -3167,18 +3167,18 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c2: ref %C = ref_binding c2, %c2.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.479 = ref_binding_pattern c3 [concrete] -// CHECK:STDOUT: %c3.var_patt: %pattern_type.479 = var_pattern %c3.patt [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.bbc = ref_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.var_patt: %pattern_type.bbc = var_pattern %c3.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c3.var: ref %C = var %c3.var_patt // CHECK:STDOUT: %c1.ref.loc10: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref: ref %C = name_ref c2, %c2 -// CHECK:STDOUT: %C.cpp_operator.bound.loc10: = bound_method %c1.ref.loc10, imports.%C.cpp_operator.decl.092f40.2 +// CHECK:STDOUT: %C.cpp_operator.bound.loc10: = bound_method %c1.ref.loc10, imports.%C.cpp_operator.decl.25fc23.2 // CHECK:STDOUT: %.loc10_3: ref %C = splice_block %c3.var {} // CHECK:STDOUT: %.loc10_31.1: %C = acquire_value %c2.ref // CHECK:STDOUT: %.loc10_31.2: ref %C = value_as_ref %.loc10_31.1 -// CHECK:STDOUT: %addr.loc10_29.1: %ptr.3a8 = addr_of %.loc10_31.2 -// CHECK:STDOUT: %addr.loc10_29.2: %ptr.3a8 = addr_of %.loc10_3 +// CHECK:STDOUT: %addr.loc10_29.1: %ptr.0a2 = addr_of %.loc10_31.2 +// CHECK:STDOUT: %addr.loc10_29.2: %ptr.0a2 = addr_of %.loc10_3 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%c1.ref.loc10, %addr.loc10_29.1, %addr.loc10_29.2) // CHECK:STDOUT: %.loc10_29: init %C to %.loc10_3 = mark_in_place_init %operator_Plus__carbon_thunk.call // CHECK:STDOUT: assign %c3.var, %.loc10_29 @@ -3209,7 +3209,7 @@ fn F() { // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.d5c: type = ptr_type %B [concrete] +// CHECK:STDOUT: %ptr.307: type = ptr_type %B [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk: %operator_Plus__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -3227,9 +3227,9 @@ fn F() { // CHECK:STDOUT: %x.ref.loc14_10: %B = name_ref x, %x // CHECK:STDOUT: %x.ref.loc14_14: %B = name_ref x, %x // CHECK:STDOUT: %.loc14_10: ref %B = value_as_ref %x.ref.loc14_10 -// CHECK:STDOUT: %addr.loc14_12.1: %ptr.d5c = addr_of %.loc14_10 +// CHECK:STDOUT: %addr.loc14_12.1: %ptr.307 = addr_of %.loc14_10 // CHECK:STDOUT: %.loc14_14: ref %B = value_as_ref %x.ref.loc14_14 -// CHECK:STDOUT: %addr.loc14_12.2: %ptr.d5c = addr_of %.loc14_14 +// CHECK:STDOUT: %addr.loc14_12.2: %ptr.307 = addr_of %.loc14_14 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %i32 = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc14_12.1, %addr.loc14_12.2) // CHECK:STDOUT: return %operator_Plus__carbon_thunk.call // CHECK:STDOUT: } @@ -3239,8 +3239,8 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.bbc: type = pattern_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk: %operator_Plus__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] @@ -3271,16 +3271,16 @@ fn F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.479 = value_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.bbc = value_binding_pattern c3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref: %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref: %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc10_29.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc10_26: ref %C = value_as_ref %c1.ref -// CHECK:STDOUT: %addr.loc10_29.1: %ptr.3a8 = addr_of %.loc10_26 +// CHECK:STDOUT: %addr.loc10_29.1: %ptr.0a2 = addr_of %.loc10_26 // CHECK:STDOUT: %.loc10_31: ref %C = value_as_ref %c2.ref -// CHECK:STDOUT: %addr.loc10_29.2: %ptr.3a8 = addr_of %.loc10_31 -// CHECK:STDOUT: %addr.loc10_29.3: %ptr.3a8 = addr_of %.loc10_29.1 +// CHECK:STDOUT: %addr.loc10_29.2: %ptr.0a2 = addr_of %.loc10_31 +// CHECK:STDOUT: %addr.loc10_29.3: %ptr.0a2 = addr_of %.loc10_29.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc10_29.1, %addr.loc10_29.2, %addr.loc10_29.3) // CHECK:STDOUT: %.loc10_29.2: init %C to %.loc10_29.1 = mark_in_place_init %operator_Plus__carbon_thunk.call // CHECK:STDOUT: %.loc10_21: type = splice_block %C.ref.loc10 [concrete = constants.%C] { diff --git a/toolchain/check/testdata/interop/cpp/operators/ordered_with.carbon b/toolchain/check/testdata/interop/cpp/operators/ordered_with.carbon index a47fc71ab6f9..21a19e89ad7c 100644 --- a/toolchain/check/testdata/interop/cpp/operators/ordered_with.carbon +++ b/toolchain/check/testdata/interop/cpp/operators/ordered_with.carbon @@ -394,60 +394,60 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: constants { // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %Other: type = symbolic_binding Other, 0 [symbolic] -// CHECK:STDOUT: %OrderedWith.type.73dab8.1: type = facet_type <@OrderedWith.1, @OrderedWith.1(%Other)> [symbolic] -// CHECK:STDOUT: %Self.d014af.1: %OrderedWith.type.73dab8.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %OrderedWith.assoc_type.2fabd7.1: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%Other) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.1: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Other, %Self.d014af.1) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.38d1a4.1: %OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.1 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.9defd1.1: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Other, %Self.d014af.1) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.984598.1: %OrderedWith.WithSelf.Greater.type.9defd1.1 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.1: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Other, %Self.d014af.1) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.c2ac22.1: %OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.1 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.687390.1: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Other, %Self.d014af.1) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.4a995a.1: %OrderedWith.WithSelf.Less.type.687390.1 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.type.73dab8.2: type = facet_type <@OrderedWith.1, @OrderedWith.1(%U)> [symbolic] -// CHECK:STDOUT: %pattern_type.10d: type = pattern_type %OrderedWith.type.73dab8.2 [symbolic] -// CHECK:STDOUT: %T: %OrderedWith.type.73dab8.2 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %OrderedWith.assoc_type.2fabd7.2: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%U) [symbolic] -// CHECK:STDOUT: %assoc0.7dbd55.2: %OrderedWith.assoc_type.2fabd7.2 = assoc_entity element0, imports.%Core.import_ref.5cd [symbolic] -// CHECK:STDOUT: %assoc1.54de85.2: %OrderedWith.assoc_type.2fabd7.2 = assoc_entity element1, imports.%Core.import_ref.fb6 [symbolic] -// CHECK:STDOUT: %assoc2.3caaa9.2: %OrderedWith.assoc_type.2fabd7.2 = assoc_entity element2, imports.%Core.import_ref.32f [symbolic] -// CHECK:STDOUT: %assoc3.4eb879.2: %OrderedWith.assoc_type.2fabd7.2 = assoc_entity element3, imports.%Core.import_ref.2d8 [symbolic] +// CHECK:STDOUT: %OrderedWith.type.32ae87.1: type = facet_type <@OrderedWith.1, @OrderedWith.1(%Other)> [symbolic] +// CHECK:STDOUT: %Self.7df555.1: %OrderedWith.type.32ae87.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %OrderedWith.assoc_type.1d2e6f.1: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%Other) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.1: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Other, %Self.7df555.1) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.937fbb.1: %OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.1 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.9ce25c.1: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Other, %Self.7df555.1) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.c0b4fa.1: %OrderedWith.WithSelf.Greater.type.9ce25c.1 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.13d375.1: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Other, %Self.7df555.1) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.e31723.1: %OrderedWith.WithSelf.LessOrEquivalent.type.13d375.1 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.b87f4b.1: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Other, %Self.7df555.1) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.9e1f56.1: %OrderedWith.WithSelf.Less.type.b87f4b.1 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.type.32ae87.2: type = facet_type <@OrderedWith.1, @OrderedWith.1(%U)> [symbolic] +// CHECK:STDOUT: %pattern_type.ebc: type = pattern_type %OrderedWith.type.32ae87.2 [symbolic] +// CHECK:STDOUT: %T: %OrderedWith.type.32ae87.2 = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %OrderedWith.assoc_type.1d2e6f.2: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%U) [symbolic] +// CHECK:STDOUT: %assoc0.c0023b.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element0, imports.%Core.import_ref.e7a [symbolic] +// CHECK:STDOUT: %assoc1.3efd77.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element1, imports.%Core.import_ref.3f7 [symbolic] +// CHECK:STDOUT: %assoc2.48eff0.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element2, imports.%Core.import_ref.385 [symbolic] +// CHECK:STDOUT: %assoc3.5d53f7.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element3, imports.%Core.import_ref.39b [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.05039a.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.f6ec4f.2: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %pattern_type.51d1c4.2: type = pattern_type %U [symbolic] -// CHECK:STDOUT: %require_complete.a45: = require_complete_type %OrderedWith.type.73dab8.2 [symbolic] -// CHECK:STDOUT: %assoc0.3ff: %OrderedWith.assoc_type.2fabd7.1 = assoc_entity element0, imports.%Core.import_ref.c33 [symbolic] +// CHECK:STDOUT: %require_complete.3c0: = require_complete_type %OrderedWith.type.32ae87.2 [symbolic] +// CHECK:STDOUT: %assoc0.13c: %OrderedWith.assoc_type.1d2e6f.1 = assoc_entity element0, imports.%Core.import_ref.447 [symbolic] // CHECK:STDOUT: %OrderedWith.lookup_impl_witness: = lookup_impl_witness %T, @OrderedWith.1, @OrderedWith.1(%U) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.687390.3: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%U, %T) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.3: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%U, %T) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.9defd1.3: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%U, %T) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.3: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%U, %T) [symbolic] -// CHECK:STDOUT: %.cb4: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.687390.3, %T [symbolic] -// CHECK:STDOUT: %impl.elem0: %.cb4 = impl_witness_access %OrderedWith.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.c89: = specific_impl_function %impl.elem0, @OrderedWith.WithSelf.Less(%U, %T) [symbolic] -// CHECK:STDOUT: %assoc1.760: %OrderedWith.assoc_type.2fabd7.1 = assoc_entity element1, imports.%Core.import_ref.79a [symbolic] -// CHECK:STDOUT: %.ac4: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.3, %T [symbolic] -// CHECK:STDOUT: %impl.elem1: %.ac4 = impl_witness_access %OrderedWith.lookup_impl_witness, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.65b: = specific_impl_function %impl.elem1, @OrderedWith.WithSelf.LessOrEquivalent(%U, %T) [symbolic] -// CHECK:STDOUT: %assoc2.897: %OrderedWith.assoc_type.2fabd7.1 = assoc_entity element2, imports.%Core.import_ref.ea2 [symbolic] -// CHECK:STDOUT: %.994: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.9defd1.3, %T [symbolic] -// CHECK:STDOUT: %impl.elem2: %.994 = impl_witness_access %OrderedWith.lookup_impl_witness, element2 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.6dc: = specific_impl_function %impl.elem2, @OrderedWith.WithSelf.Greater(%U, %T) [symbolic] -// CHECK:STDOUT: %assoc3.8bc: %OrderedWith.assoc_type.2fabd7.1 = assoc_entity element3, imports.%Core.import_ref.b4f [symbolic] -// CHECK:STDOUT: %.eca: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.3, %T [symbolic] -// CHECK:STDOUT: %impl.elem3: %.eca = impl_witness_access %OrderedWith.lookup_impl_witness, element3 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.f67: = specific_impl_function %impl.elem3, @OrderedWith.WithSelf.GreaterOrEquivalent(%U, %T) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.b87f4b.3: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%U, %T) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.13d375.3: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%U, %T) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.9ce25c.3: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%U, %T) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.3: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%U, %T) [symbolic] +// CHECK:STDOUT: %.6ec: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.b87f4b.3, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.6ec = impl_witness_access %OrderedWith.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.527: = specific_impl_function %impl.elem0, @OrderedWith.WithSelf.Less(%U, %T) [symbolic] +// CHECK:STDOUT: %assoc1.ee7: %OrderedWith.assoc_type.1d2e6f.1 = assoc_entity element1, imports.%Core.import_ref.efc [symbolic] +// CHECK:STDOUT: %.02d: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.13d375.3, %T [symbolic] +// CHECK:STDOUT: %impl.elem1: %.02d = impl_witness_access %OrderedWith.lookup_impl_witness, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.001: = specific_impl_function %impl.elem1, @OrderedWith.WithSelf.LessOrEquivalent(%U, %T) [symbolic] +// CHECK:STDOUT: %assoc2.131: %OrderedWith.assoc_type.1d2e6f.1 = assoc_entity element2, imports.%Core.import_ref.e60 [symbolic] +// CHECK:STDOUT: %.666: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.9ce25c.3, %T [symbolic] +// CHECK:STDOUT: %impl.elem2: %.666 = impl_witness_access %OrderedWith.lookup_impl_witness, element2 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.735: = specific_impl_function %impl.elem2, @OrderedWith.WithSelf.Greater(%U, %T) [symbolic] +// CHECK:STDOUT: %assoc3.18a: %OrderedWith.assoc_type.1d2e6f.1 = assoc_entity element3, imports.%Core.import_ref.6c6 [symbolic] +// CHECK:STDOUT: %.73b: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.3, %T [symbolic] +// CHECK:STDOUT: %impl.elem3: %.73b = impl_witness_access %OrderedWith.lookup_impl_witness, element3 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.418: = specific_impl_function %impl.elem3, @OrderedWith.WithSelf.GreaterOrEquivalent(%U, %T) [symbolic] // CHECK:STDOUT: %Ordered: type = class_type @Ordered [concrete] -// CHECK:STDOUT: %pattern_type.56a: type = pattern_type %Ordered [concrete] +// CHECK:STDOUT: %pattern_type.e66: type = pattern_type %Ordered [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %OrderedWith.type.240: type = facet_type <@OrderedWith.1, @OrderedWith.1(%Ordered)> [concrete] -// CHECK:STDOUT: %OrderedWith.assoc_type.88a: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%Ordered) [concrete] -// CHECK:STDOUT: %assoc0.345: %OrderedWith.assoc_type.88a = assoc_entity element0, imports.%Core.import_ref.5cd [concrete] -// CHECK:STDOUT: %assoc1.a81: %OrderedWith.assoc_type.88a = assoc_entity element1, imports.%Core.import_ref.fb6 [concrete] -// CHECK:STDOUT: %assoc2.be8: %OrderedWith.assoc_type.88a = assoc_entity element2, imports.%Core.import_ref.32f [concrete] -// CHECK:STDOUT: %assoc3.35d: %OrderedWith.assoc_type.88a = assoc_entity element3, imports.%Core.import_ref.2d8 [concrete] +// CHECK:STDOUT: %OrderedWith.type.39d: type = facet_type <@OrderedWith.1, @OrderedWith.1(%Ordered)> [concrete] +// CHECK:STDOUT: %OrderedWith.assoc_type.e83: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%Ordered) [concrete] +// CHECK:STDOUT: %assoc0.621: %OrderedWith.assoc_type.e83 = assoc_entity element0, imports.%Core.import_ref.e7a [concrete] +// CHECK:STDOUT: %assoc1.a28: %OrderedWith.assoc_type.e83 = assoc_entity element1, imports.%Core.import_ref.3f7 [concrete] +// CHECK:STDOUT: %assoc2.0b5: %OrderedWith.assoc_type.e83 = assoc_entity element2, imports.%Core.import_ref.385 [concrete] +// CHECK:STDOUT: %assoc3.5e2: %OrderedWith.assoc_type.e83 = assoc_entity element3, imports.%Core.import_ref.39b [concrete] // CHECK:STDOUT: %Ordered.Less.type: type = fn_type @Ordered.Less [concrete] // CHECK:STDOUT: %Ordered.Less: %Ordered.Less.type = struct_value () [concrete] // CHECK:STDOUT: %Ordered.LessOrEquivalent.type: type = fn_type @Ordered.LessOrEquivalent [concrete] @@ -456,104 +456,104 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: %Ordered.Greater: %Ordered.Greater.type = struct_value () [concrete] // CHECK:STDOUT: %Ordered.GreaterOrEquivalent.type: type = fn_type @Ordered.GreaterOrEquivalent [concrete] // CHECK:STDOUT: %Ordered.GreaterOrEquivalent: %Ordered.GreaterOrEquivalent.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.de2: = custom_witness (%Ordered.Less, %Ordered.LessOrEquivalent, %Ordered.Greater, %Ordered.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%Ordered) [concrete] -// CHECK:STDOUT: %OrderedWith.facet.f5e: %OrderedWith.type.240 = facet_value %Ordered, (%custom_witness.de2) [concrete] -// CHECK:STDOUT: %pattern_type.04e: type = pattern_type %OrderedWith.type.240 [concrete] -// CHECK:STDOUT: %complete_type.3b2: = complete_type_witness %OrderedWith.type.240 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.90a: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.f5e) [concrete] -// CHECK:STDOUT: %.71b: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.90a, %OrderedWith.facet.f5e [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.31f: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.f5e) [concrete] -// CHECK:STDOUT: %.1f0: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.31f, %OrderedWith.facet.f5e [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.622: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.f5e) [concrete] -// CHECK:STDOUT: %.34e: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.622, %OrderedWith.facet.f5e [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.2a6: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.f5e) [concrete] -// CHECK:STDOUT: %.eb8: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.2a6, %OrderedWith.facet.f5e [concrete] +// CHECK:STDOUT: %custom_witness.593: = custom_witness (%Ordered.Less, %Ordered.LessOrEquivalent, %Ordered.Greater, %Ordered.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%Ordered) [concrete] +// CHECK:STDOUT: %OrderedWith.facet.517: %OrderedWith.type.39d = facet_value %Ordered, (%custom_witness.593) [concrete] +// CHECK:STDOUT: %pattern_type.d57: type = pattern_type %OrderedWith.type.39d [concrete] +// CHECK:STDOUT: %complete_type.e48: = complete_type_witness %OrderedWith.type.39d [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.652: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.517) [concrete] +// CHECK:STDOUT: %.92e: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.652, %OrderedWith.facet.517 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.b03: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.517) [concrete] +// CHECK:STDOUT: %.765: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.b03, %OrderedWith.facet.517 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.2bc: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.517) [concrete] +// CHECK:STDOUT: %.5ad: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.2bc, %OrderedWith.facet.517 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.7fe: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.517) [concrete] +// CHECK:STDOUT: %.6c0: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.7fe, %OrderedWith.facet.517 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.eb4: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc0 (constants.%assoc0.3ff)] -// CHECK:STDOUT: %Core.import_ref.84c: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc1 (constants.%assoc1.760)] -// CHECK:STDOUT: %Core.import_ref.01d: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc2 (constants.%assoc2.897)] -// CHECK:STDOUT: %Core.import_ref.569: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc3 (constants.%assoc3.8bc)] -// CHECK:STDOUT: %Core.import_ref.2d8: @OrderedWith.WithSelf.%OrderedWith.WithSelf.GreaterOrEquivalent.type (%OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.GreaterOrEquivalent (constants.%OrderedWith.WithSelf.GreaterOrEquivalent.38d1a4.1)] -// CHECK:STDOUT: %Core.import_ref.32f: @OrderedWith.WithSelf.%OrderedWith.WithSelf.Greater.type (%OrderedWith.WithSelf.Greater.type.9defd1.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.Greater (constants.%OrderedWith.WithSelf.Greater.984598.1)] -// CHECK:STDOUT: %Core.import_ref.fb6: @OrderedWith.WithSelf.%OrderedWith.WithSelf.LessOrEquivalent.type (%OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.LessOrEquivalent (constants.%OrderedWith.WithSelf.LessOrEquivalent.c2ac22.1)] -// CHECK:STDOUT: %Core.import_ref.5cd: @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less.type (%OrderedWith.WithSelf.Less.type.687390.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less (constants.%OrderedWith.WithSelf.Less.4a995a.1)] -// CHECK:STDOUT: %Core.import_ref.c33 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.79a = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.ea2 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.b4f = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.ef7: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc0 (constants.%assoc0.13c)] +// CHECK:STDOUT: %Core.import_ref.878: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc1 (constants.%assoc1.ee7)] +// CHECK:STDOUT: %Core.import_ref.d4f: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc2 (constants.%assoc2.131)] +// CHECK:STDOUT: %Core.import_ref.b87: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc3 (constants.%assoc3.18a)] +// CHECK:STDOUT: %Core.import_ref.39b: @OrderedWith.WithSelf.%OrderedWith.WithSelf.GreaterOrEquivalent.type (%OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.GreaterOrEquivalent (constants.%OrderedWith.WithSelf.GreaterOrEquivalent.937fbb.1)] +// CHECK:STDOUT: %Core.import_ref.385: @OrderedWith.WithSelf.%OrderedWith.WithSelf.Greater.type (%OrderedWith.WithSelf.Greater.type.9ce25c.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.Greater (constants.%OrderedWith.WithSelf.Greater.c0b4fa.1)] +// CHECK:STDOUT: %Core.import_ref.3f7: @OrderedWith.WithSelf.%OrderedWith.WithSelf.LessOrEquivalent.type (%OrderedWith.WithSelf.LessOrEquivalent.type.13d375.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.LessOrEquivalent (constants.%OrderedWith.WithSelf.LessOrEquivalent.e31723.1)] +// CHECK:STDOUT: %Core.import_ref.e7a: @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less.type (%OrderedWith.WithSelf.Less.type.b87f4b.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less (constants.%OrderedWith.WithSelf.Less.9e1f56.1)] +// CHECK:STDOUT: %Core.import_ref.447 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.efc = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.e60 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.6c6 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @OrderedWith.loc13(%U.loc13_17.2: type, %T.loc13_27.2: @OrderedWith.loc13.%OrderedWith.type.loc13_48.1 (%OrderedWith.type.73dab8.2)) { +// CHECK:STDOUT: generic fn @OrderedWith.loc13(%U.loc13_17.2: type, %T.loc13_27.2: @OrderedWith.loc13.%OrderedWith.type.loc13_48.1 (%OrderedWith.type.32ae87.2)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc15: = require_complete_type %OrderedWith.type.loc13_48.1 [symbolic = %require_complete.loc15 (constants.%require_complete.a45)] -// CHECK:STDOUT: %OrderedWith.assoc_type: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%U.loc13_17.1) [symbolic = %OrderedWith.assoc_type (constants.%OrderedWith.assoc_type.2fabd7.2)] -// CHECK:STDOUT: %assoc0: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = assoc_entity element0, imports.%Core.import_ref.5cd [symbolic = %assoc0 (constants.%assoc0.7dbd55.2)] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%U.loc13_17.1, %T.loc13_27.1) [symbolic = %OrderedWith.WithSelf.Less.type (constants.%OrderedWith.WithSelf.Less.type.687390.3)] -// CHECK:STDOUT: %.loc15_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type, %T.loc13_27.1 [symbolic = %.loc15_5.2 (constants.%.cb4)] +// CHECK:STDOUT: %require_complete.loc15: = require_complete_type %OrderedWith.type.loc13_48.1 [symbolic = %require_complete.loc15 (constants.%require_complete.3c0)] +// CHECK:STDOUT: %OrderedWith.assoc_type: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%U.loc13_17.1) [symbolic = %OrderedWith.assoc_type (constants.%OrderedWith.assoc_type.1d2e6f.2)] +// CHECK:STDOUT: %assoc0: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = assoc_entity element0, imports.%Core.import_ref.e7a [symbolic = %assoc0 (constants.%assoc0.c0023b.2)] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%U.loc13_17.1, %T.loc13_27.1) [symbolic = %OrderedWith.WithSelf.Less.type (constants.%OrderedWith.WithSelf.Less.type.b87f4b.3)] +// CHECK:STDOUT: %.loc15_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type, %T.loc13_27.1 [symbolic = %.loc15_5.2 (constants.%.6ec)] // CHECK:STDOUT: %OrderedWith.lookup_impl_witness: = lookup_impl_witness %T.loc13_27.1, @OrderedWith.1, @OrderedWith.1(%U.loc13_17.1) [symbolic = %OrderedWith.lookup_impl_witness (constants.%OrderedWith.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc15_5.2: @OrderedWith.loc13.%.loc15_5.2 (%.cb4) = impl_witness_access %OrderedWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_5.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc15_5.2: = specific_impl_function %impl.elem0.loc15_5.2, @OrderedWith.WithSelf.Less(%U.loc13_17.1, %T.loc13_27.1) [symbolic = %specific_impl_fn.loc15_5.2 (constants.%specific_impl_fn.c89)] -// CHECK:STDOUT: %assoc1: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = assoc_entity element1, imports.%Core.import_ref.fb6 [symbolic = %assoc1 (constants.%assoc1.54de85.2)] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%U.loc13_17.1, %T.loc13_27.1) [symbolic = %OrderedWith.WithSelf.LessOrEquivalent.type (constants.%OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.3)] -// CHECK:STDOUT: %.loc16_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type, %T.loc13_27.1 [symbolic = %.loc16_5.2 (constants.%.ac4)] -// CHECK:STDOUT: %impl.elem1.loc16_5.2: @OrderedWith.loc13.%.loc16_5.2 (%.ac4) = impl_witness_access %OrderedWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc16_5.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %specific_impl_fn.loc16_5.2: = specific_impl_function %impl.elem1.loc16_5.2, @OrderedWith.WithSelf.LessOrEquivalent(%U.loc13_17.1, %T.loc13_27.1) [symbolic = %specific_impl_fn.loc16_5.2 (constants.%specific_impl_fn.65b)] -// CHECK:STDOUT: %assoc2: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = assoc_entity element2, imports.%Core.import_ref.32f [symbolic = %assoc2 (constants.%assoc2.3caaa9.2)] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%U.loc13_17.1, %T.loc13_27.1) [symbolic = %OrderedWith.WithSelf.Greater.type (constants.%OrderedWith.WithSelf.Greater.type.9defd1.3)] -// CHECK:STDOUT: %.loc17_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type, %T.loc13_27.1 [symbolic = %.loc17_5.2 (constants.%.994)] -// CHECK:STDOUT: %impl.elem2.loc17_5.2: @OrderedWith.loc13.%.loc17_5.2 (%.994) = impl_witness_access %OrderedWith.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc17_5.2 (constants.%impl.elem2)] -// CHECK:STDOUT: %specific_impl_fn.loc17_5.2: = specific_impl_function %impl.elem2.loc17_5.2, @OrderedWith.WithSelf.Greater(%U.loc13_17.1, %T.loc13_27.1) [symbolic = %specific_impl_fn.loc17_5.2 (constants.%specific_impl_fn.6dc)] -// CHECK:STDOUT: %assoc3: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = assoc_entity element3, imports.%Core.import_ref.2d8 [symbolic = %assoc3 (constants.%assoc3.4eb879.2)] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%U.loc13_17.1, %T.loc13_27.1) [symbolic = %OrderedWith.WithSelf.GreaterOrEquivalent.type (constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.3)] -// CHECK:STDOUT: %.loc18_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type, %T.loc13_27.1 [symbolic = %.loc18_5.2 (constants.%.eca)] -// CHECK:STDOUT: %impl.elem3.loc18_5.2: @OrderedWith.loc13.%.loc18_5.2 (%.eca) = impl_witness_access %OrderedWith.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc18_5.2 (constants.%impl.elem3)] -// CHECK:STDOUT: %specific_impl_fn.loc18_5.2: = specific_impl_function %impl.elem3.loc18_5.2, @OrderedWith.WithSelf.GreaterOrEquivalent(%U.loc13_17.1, %T.loc13_27.1) [symbolic = %specific_impl_fn.loc18_5.2 (constants.%specific_impl_fn.f67)] +// CHECK:STDOUT: %impl.elem0.loc15_5.2: @OrderedWith.loc13.%.loc15_5.2 (%.6ec) = impl_witness_access %OrderedWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_5.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc15_5.2: = specific_impl_function %impl.elem0.loc15_5.2, @OrderedWith.WithSelf.Less(%U.loc13_17.1, %T.loc13_27.1) [symbolic = %specific_impl_fn.loc15_5.2 (constants.%specific_impl_fn.527)] +// CHECK:STDOUT: %assoc1: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = assoc_entity element1, imports.%Core.import_ref.3f7 [symbolic = %assoc1 (constants.%assoc1.3efd77.2)] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%U.loc13_17.1, %T.loc13_27.1) [symbolic = %OrderedWith.WithSelf.LessOrEquivalent.type (constants.%OrderedWith.WithSelf.LessOrEquivalent.type.13d375.3)] +// CHECK:STDOUT: %.loc16_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type, %T.loc13_27.1 [symbolic = %.loc16_5.2 (constants.%.02d)] +// CHECK:STDOUT: %impl.elem1.loc16_5.2: @OrderedWith.loc13.%.loc16_5.2 (%.02d) = impl_witness_access %OrderedWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc16_5.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %specific_impl_fn.loc16_5.2: = specific_impl_function %impl.elem1.loc16_5.2, @OrderedWith.WithSelf.LessOrEquivalent(%U.loc13_17.1, %T.loc13_27.1) [symbolic = %specific_impl_fn.loc16_5.2 (constants.%specific_impl_fn.001)] +// CHECK:STDOUT: %assoc2: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = assoc_entity element2, imports.%Core.import_ref.385 [symbolic = %assoc2 (constants.%assoc2.48eff0.2)] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%U.loc13_17.1, %T.loc13_27.1) [symbolic = %OrderedWith.WithSelf.Greater.type (constants.%OrderedWith.WithSelf.Greater.type.9ce25c.3)] +// CHECK:STDOUT: %.loc17_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type, %T.loc13_27.1 [symbolic = %.loc17_5.2 (constants.%.666)] +// CHECK:STDOUT: %impl.elem2.loc17_5.2: @OrderedWith.loc13.%.loc17_5.2 (%.666) = impl_witness_access %OrderedWith.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc17_5.2 (constants.%impl.elem2)] +// CHECK:STDOUT: %specific_impl_fn.loc17_5.2: = specific_impl_function %impl.elem2.loc17_5.2, @OrderedWith.WithSelf.Greater(%U.loc13_17.1, %T.loc13_27.1) [symbolic = %specific_impl_fn.loc17_5.2 (constants.%specific_impl_fn.735)] +// CHECK:STDOUT: %assoc3: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = assoc_entity element3, imports.%Core.import_ref.39b [symbolic = %assoc3 (constants.%assoc3.5d53f7.2)] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%U.loc13_17.1, %T.loc13_27.1) [symbolic = %OrderedWith.WithSelf.GreaterOrEquivalent.type (constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.3)] +// CHECK:STDOUT: %.loc18_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type, %T.loc13_27.1 [symbolic = %.loc18_5.2 (constants.%.73b)] +// CHECK:STDOUT: %impl.elem3.loc18_5.2: @OrderedWith.loc13.%.loc18_5.2 (%.73b) = impl_witness_access %OrderedWith.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc18_5.2 (constants.%impl.elem3)] +// CHECK:STDOUT: %specific_impl_fn.loc18_5.2: = specific_impl_function %impl.elem3.loc18_5.2, @OrderedWith.WithSelf.GreaterOrEquivalent(%U.loc13_17.1, %T.loc13_27.1) [symbolic = %specific_impl_fn.loc18_5.2 (constants.%specific_impl_fn.418)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @OrderedWith.loc13.%T.as_type.loc13_54.1 (%T.as_type), %y.param: @OrderedWith.loc13.%U.loc13_17.1 (%U)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref.loc15: @OrderedWith.loc13.%T.as_type.loc13_54.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc15: @OrderedWith.loc13.%U.loc13_17.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %OrderedWith.type.loc15: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc13_48.1 (constants.%OrderedWith.type.73dab8.2)] -// CHECK:STDOUT: %.loc15_5.1: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = specific_constant imports.%Core.import_ref.eb4, @OrderedWith.WithSelf(constants.%U, constants.%Self.d014af.1) [symbolic = %assoc0 (constants.%assoc0.7dbd55.2)] -// CHECK:STDOUT: %Less.ref: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = name_ref Less, %.loc15_5.1 [symbolic = %assoc0 (constants.%assoc0.7dbd55.2)] -// CHECK:STDOUT: %impl.elem0.loc15_5.1: @OrderedWith.loc13.%.loc15_5.2 (%.cb4) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_5.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %OrderedWith.type.loc15: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc13_48.1 (constants.%OrderedWith.type.32ae87.2)] +// CHECK:STDOUT: %.loc15_5.1: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = specific_constant imports.%Core.import_ref.ef7, @OrderedWith.WithSelf(constants.%U, constants.%Self.7df555.1) [symbolic = %assoc0 (constants.%assoc0.c0023b.2)] +// CHECK:STDOUT: %Less.ref: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = name_ref Less, %.loc15_5.1 [symbolic = %assoc0 (constants.%assoc0.c0023b.2)] +// CHECK:STDOUT: %impl.elem0.loc15_5.1: @OrderedWith.loc13.%.loc15_5.2 (%.6ec) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_5.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc15_5.1: = bound_method %x.ref.loc15, %impl.elem0.loc15_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc15_5.1: = specific_impl_function %impl.elem0.loc15_5.1, @OrderedWith.WithSelf.Less(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc15_5.2 (constants.%specific_impl_fn.c89)] +// CHECK:STDOUT: %specific_impl_fn.loc15_5.1: = specific_impl_function %impl.elem0.loc15_5.1, @OrderedWith.WithSelf.Less(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc15_5.2 (constants.%specific_impl_fn.527)] // CHECK:STDOUT: %bound_method.loc15_5.2: = bound_method %x.ref.loc15, %specific_impl_fn.loc15_5.1 // CHECK:STDOUT: %OrderedWith.WithSelf.Less.call: init bool = call %bound_method.loc15_5.2(%x.ref.loc15, %y.ref.loc15) // CHECK:STDOUT: %x.ref.loc16: @OrderedWith.loc13.%T.as_type.loc13_54.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc16: @OrderedWith.loc13.%U.loc13_17.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %OrderedWith.type.loc16: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc13_48.1 (constants.%OrderedWith.type.73dab8.2)] -// CHECK:STDOUT: %.loc16_5.1: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = specific_constant imports.%Core.import_ref.84c, @OrderedWith.WithSelf(constants.%U, constants.%Self.d014af.1) [symbolic = %assoc1 (constants.%assoc1.54de85.2)] -// CHECK:STDOUT: %LessOrEquivalent.ref: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = name_ref LessOrEquivalent, %.loc16_5.1 [symbolic = %assoc1 (constants.%assoc1.54de85.2)] -// CHECK:STDOUT: %impl.elem1.loc16_5.1: @OrderedWith.loc13.%.loc16_5.2 (%.ac4) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc16_5.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %OrderedWith.type.loc16: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc13_48.1 (constants.%OrderedWith.type.32ae87.2)] +// CHECK:STDOUT: %.loc16_5.1: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = specific_constant imports.%Core.import_ref.878, @OrderedWith.WithSelf(constants.%U, constants.%Self.7df555.1) [symbolic = %assoc1 (constants.%assoc1.3efd77.2)] +// CHECK:STDOUT: %LessOrEquivalent.ref: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = name_ref LessOrEquivalent, %.loc16_5.1 [symbolic = %assoc1 (constants.%assoc1.3efd77.2)] +// CHECK:STDOUT: %impl.elem1.loc16_5.1: @OrderedWith.loc13.%.loc16_5.2 (%.02d) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc16_5.2 (constants.%impl.elem1)] // CHECK:STDOUT: %bound_method.loc16_5.1: = bound_method %x.ref.loc16, %impl.elem1.loc16_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc16_5.1: = specific_impl_function %impl.elem1.loc16_5.1, @OrderedWith.WithSelf.LessOrEquivalent(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc16_5.2 (constants.%specific_impl_fn.65b)] +// CHECK:STDOUT: %specific_impl_fn.loc16_5.1: = specific_impl_function %impl.elem1.loc16_5.1, @OrderedWith.WithSelf.LessOrEquivalent(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc16_5.2 (constants.%specific_impl_fn.001)] // CHECK:STDOUT: %bound_method.loc16_5.2: = bound_method %x.ref.loc16, %specific_impl_fn.loc16_5.1 // CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.call: init bool = call %bound_method.loc16_5.2(%x.ref.loc16, %y.ref.loc16) // CHECK:STDOUT: %x.ref.loc17: @OrderedWith.loc13.%T.as_type.loc13_54.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc17: @OrderedWith.loc13.%U.loc13_17.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %OrderedWith.type.loc17: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc13_48.1 (constants.%OrderedWith.type.73dab8.2)] -// CHECK:STDOUT: %.loc17_5.1: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = specific_constant imports.%Core.import_ref.01d, @OrderedWith.WithSelf(constants.%U, constants.%Self.d014af.1) [symbolic = %assoc2 (constants.%assoc2.3caaa9.2)] -// CHECK:STDOUT: %Greater.ref: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = name_ref Greater, %.loc17_5.1 [symbolic = %assoc2 (constants.%assoc2.3caaa9.2)] -// CHECK:STDOUT: %impl.elem2.loc17_5.1: @OrderedWith.loc13.%.loc17_5.2 (%.994) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc17_5.2 (constants.%impl.elem2)] +// CHECK:STDOUT: %OrderedWith.type.loc17: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc13_48.1 (constants.%OrderedWith.type.32ae87.2)] +// CHECK:STDOUT: %.loc17_5.1: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = specific_constant imports.%Core.import_ref.d4f, @OrderedWith.WithSelf(constants.%U, constants.%Self.7df555.1) [symbolic = %assoc2 (constants.%assoc2.48eff0.2)] +// CHECK:STDOUT: %Greater.ref: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = name_ref Greater, %.loc17_5.1 [symbolic = %assoc2 (constants.%assoc2.48eff0.2)] +// CHECK:STDOUT: %impl.elem2.loc17_5.1: @OrderedWith.loc13.%.loc17_5.2 (%.666) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc17_5.2 (constants.%impl.elem2)] // CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %x.ref.loc17, %impl.elem2.loc17_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc17_5.1: = specific_impl_function %impl.elem2.loc17_5.1, @OrderedWith.WithSelf.Greater(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc17_5.2 (constants.%specific_impl_fn.6dc)] +// CHECK:STDOUT: %specific_impl_fn.loc17_5.1: = specific_impl_function %impl.elem2.loc17_5.1, @OrderedWith.WithSelf.Greater(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc17_5.2 (constants.%specific_impl_fn.735)] // CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %x.ref.loc17, %specific_impl_fn.loc17_5.1 // CHECK:STDOUT: %OrderedWith.WithSelf.Greater.call: init bool = call %bound_method.loc17_5.2(%x.ref.loc17, %y.ref.loc17) // CHECK:STDOUT: %x.ref.loc18: @OrderedWith.loc13.%T.as_type.loc13_54.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc18: @OrderedWith.loc13.%U.loc13_17.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %OrderedWith.type.loc18: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc13_48.1 (constants.%OrderedWith.type.73dab8.2)] -// CHECK:STDOUT: %.loc18_5.1: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = specific_constant imports.%Core.import_ref.569, @OrderedWith.WithSelf(constants.%U, constants.%Self.d014af.1) [symbolic = %assoc3 (constants.%assoc3.4eb879.2)] -// CHECK:STDOUT: %GreaterOrEquivalent.ref: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = name_ref GreaterOrEquivalent, %.loc18_5.1 [symbolic = %assoc3 (constants.%assoc3.4eb879.2)] -// CHECK:STDOUT: %impl.elem3.loc18_5.1: @OrderedWith.loc13.%.loc18_5.2 (%.eca) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc18_5.2 (constants.%impl.elem3)] +// CHECK:STDOUT: %OrderedWith.type.loc18: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc13_48.1 (constants.%OrderedWith.type.32ae87.2)] +// CHECK:STDOUT: %.loc18_5.1: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = specific_constant imports.%Core.import_ref.b87, @OrderedWith.WithSelf(constants.%U, constants.%Self.7df555.1) [symbolic = %assoc3 (constants.%assoc3.5d53f7.2)] +// CHECK:STDOUT: %GreaterOrEquivalent.ref: @OrderedWith.loc13.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = name_ref GreaterOrEquivalent, %.loc18_5.1 [symbolic = %assoc3 (constants.%assoc3.5d53f7.2)] +// CHECK:STDOUT: %impl.elem3.loc18_5.1: @OrderedWith.loc13.%.loc18_5.2 (%.73b) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc18_5.2 (constants.%impl.elem3)] // CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %x.ref.loc18, %impl.elem3.loc18_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc18_5.1: = specific_impl_function %impl.elem3.loc18_5.1, @OrderedWith.WithSelf.GreaterOrEquivalent(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc18_5.2 (constants.%specific_impl_fn.f67)] +// CHECK:STDOUT: %specific_impl_fn.loc18_5.1: = specific_impl_function %impl.elem3.loc18_5.1, @OrderedWith.WithSelf.GreaterOrEquivalent(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc18_5.2 (constants.%specific_impl_fn.418)] // CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %x.ref.loc18, %specific_impl_fn.loc18_5.1 // CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.call: init bool = call %bound_method.loc18_5.2(%x.ref.loc18, %y.ref.loc18) // CHECK:STDOUT: @@ -562,47 +562,47 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: // CHECK:STDOUT: specific @OrderedWith.loc13(constants.%U, constants.%T) { // CHECK:STDOUT: %U.loc13_17.1 => constants.%U -// CHECK:STDOUT: %OrderedWith.type.loc13_48.1 => constants.%OrderedWith.type.73dab8.2 +// CHECK:STDOUT: %OrderedWith.type.loc13_48.1 => constants.%OrderedWith.type.32ae87.2 // CHECK:STDOUT: %T.loc13_27.1 => constants.%T -// CHECK:STDOUT: %pattern_type.loc13_27 => constants.%pattern_type.10d +// CHECK:STDOUT: %pattern_type.loc13_27 => constants.%pattern_type.ebc // CHECK:STDOUT: %T.as_type.loc13_54.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc13_52 => constants.%pattern_type.05039a.2 +// CHECK:STDOUT: %pattern_type.loc13_52 => constants.%pattern_type.f6ec4f.2 // CHECK:STDOUT: %pattern_type.loc13_58 => constants.%pattern_type.51d1c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @OrderedWith.loc13(constants.%Ordered, constants.%OrderedWith.facet.f5e) { +// CHECK:STDOUT: specific @OrderedWith.loc13(constants.%Ordered, constants.%OrderedWith.facet.517) { // CHECK:STDOUT: %U.loc13_17.1 => constants.%Ordered -// CHECK:STDOUT: %OrderedWith.type.loc13_48.1 => constants.%OrderedWith.type.240 -// CHECK:STDOUT: %T.loc13_27.1 => constants.%OrderedWith.facet.f5e -// CHECK:STDOUT: %pattern_type.loc13_27 => constants.%pattern_type.04e +// CHECK:STDOUT: %OrderedWith.type.loc13_48.1 => constants.%OrderedWith.type.39d +// CHECK:STDOUT: %T.loc13_27.1 => constants.%OrderedWith.facet.517 +// CHECK:STDOUT: %pattern_type.loc13_27 => constants.%pattern_type.d57 // CHECK:STDOUT: %T.as_type.loc13_54.1 => constants.%Ordered -// CHECK:STDOUT: %pattern_type.loc13_52 => constants.%pattern_type.56a -// CHECK:STDOUT: %pattern_type.loc13_58 => constants.%pattern_type.56a +// CHECK:STDOUT: %pattern_type.loc13_52 => constants.%pattern_type.e66 +// CHECK:STDOUT: %pattern_type.loc13_58 => constants.%pattern_type.e66 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc13_52 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc13_58 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc15 => constants.%complete_type.3b2 -// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.88a -// CHECK:STDOUT: %assoc0 => constants.%assoc0.345 -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.90a -// CHECK:STDOUT: %.loc15_5.2 => constants.%.71b -// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.de2 +// CHECK:STDOUT: %require_complete.loc15 => constants.%complete_type.e48 +// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.e83 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.621 +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.652 +// CHECK:STDOUT: %.loc15_5.2 => constants.%.92e +// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.593 // CHECK:STDOUT: %impl.elem0.loc15_5.2 => constants.%Ordered.Less // CHECK:STDOUT: %specific_impl_fn.loc15_5.2 => constants.%Ordered.Less -// CHECK:STDOUT: %assoc1 => constants.%assoc1.a81 -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.31f -// CHECK:STDOUT: %.loc16_5.2 => constants.%.1f0 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.a28 +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.b03 +// CHECK:STDOUT: %.loc16_5.2 => constants.%.765 // CHECK:STDOUT: %impl.elem1.loc16_5.2 => constants.%Ordered.LessOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc16_5.2 => constants.%Ordered.LessOrEquivalent -// CHECK:STDOUT: %assoc2 => constants.%assoc2.be8 -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.622 -// CHECK:STDOUT: %.loc17_5.2 => constants.%.34e +// CHECK:STDOUT: %assoc2 => constants.%assoc2.0b5 +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.2bc +// CHECK:STDOUT: %.loc17_5.2 => constants.%.5ad // CHECK:STDOUT: %impl.elem2.loc17_5.2 => constants.%Ordered.Greater // CHECK:STDOUT: %specific_impl_fn.loc17_5.2 => constants.%Ordered.Greater -// CHECK:STDOUT: %assoc3 => constants.%assoc3.35d -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.2a6 -// CHECK:STDOUT: %.loc18_5.2 => constants.%.eb8 +// CHECK:STDOUT: %assoc3 => constants.%assoc3.5e2 +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.7fe +// CHECK:STDOUT: %.loc18_5.2 => constants.%.6c0 // CHECK:STDOUT: %impl.elem3.loc18_5.2 => constants.%Ordered.GreaterOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc18_5.2 => constants.%Ordered.GreaterOrEquivalent // CHECK:STDOUT: } @@ -612,70 +612,70 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: constants { // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %Other: type = symbolic_binding Other, 0 [symbolic] -// CHECK:STDOUT: %OrderedWith.type.73dab8.1: type = facet_type <@OrderedWith.1, @OrderedWith.1(%Other)> [symbolic] -// CHECK:STDOUT: %Self.d014af.1: %OrderedWith.type.73dab8.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %OrderedWith.assoc_type.2fabd7.1: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%Other) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.1: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Other, %Self.d014af.1) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.38d1a4.1: %OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.1 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.9defd1.1: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Other, %Self.d014af.1) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.984598.1: %OrderedWith.WithSelf.Greater.type.9defd1.1 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.1: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Other, %Self.d014af.1) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.c2ac22.1: %OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.1 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.687390.1: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Other, %Self.d014af.1) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.4a995a.1: %OrderedWith.WithSelf.Less.type.687390.1 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.type.73dab8.2: type = facet_type <@OrderedWith.1, @OrderedWith.1(%U)> [symbolic] -// CHECK:STDOUT: %pattern_type.10d: type = pattern_type %OrderedWith.type.73dab8.2 [symbolic] -// CHECK:STDOUT: %T: %OrderedWith.type.73dab8.2 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %OrderedWith.assoc_type.2fabd7.2: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%U) [symbolic] -// CHECK:STDOUT: %assoc0.7dbd55.2: %OrderedWith.assoc_type.2fabd7.2 = assoc_entity element0, imports.%Core.import_ref.5cd [symbolic] -// CHECK:STDOUT: %assoc1.54de85.2: %OrderedWith.assoc_type.2fabd7.2 = assoc_entity element1, imports.%Core.import_ref.fb6 [symbolic] -// CHECK:STDOUT: %assoc2.3caaa9.2: %OrderedWith.assoc_type.2fabd7.2 = assoc_entity element2, imports.%Core.import_ref.32f [symbolic] -// CHECK:STDOUT: %assoc3.4eb879.2: %OrderedWith.assoc_type.2fabd7.2 = assoc_entity element3, imports.%Core.import_ref.2d8 [symbolic] +// CHECK:STDOUT: %OrderedWith.type.32ae87.1: type = facet_type <@OrderedWith.1, @OrderedWith.1(%Other)> [symbolic] +// CHECK:STDOUT: %Self.7df555.1: %OrderedWith.type.32ae87.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %OrderedWith.assoc_type.1d2e6f.1: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%Other) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.1: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Other, %Self.7df555.1) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.937fbb.1: %OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.1 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.9ce25c.1: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Other, %Self.7df555.1) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.c0b4fa.1: %OrderedWith.WithSelf.Greater.type.9ce25c.1 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.13d375.1: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Other, %Self.7df555.1) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.e31723.1: %OrderedWith.WithSelf.LessOrEquivalent.type.13d375.1 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.b87f4b.1: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Other, %Self.7df555.1) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.9e1f56.1: %OrderedWith.WithSelf.Less.type.b87f4b.1 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.type.32ae87.2: type = facet_type <@OrderedWith.1, @OrderedWith.1(%U)> [symbolic] +// CHECK:STDOUT: %pattern_type.ebc: type = pattern_type %OrderedWith.type.32ae87.2 [symbolic] +// CHECK:STDOUT: %T: %OrderedWith.type.32ae87.2 = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %OrderedWith.assoc_type.1d2e6f.2: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%U) [symbolic] +// CHECK:STDOUT: %assoc0.c0023b.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element0, imports.%Core.import_ref.e7a [symbolic] +// CHECK:STDOUT: %assoc1.3efd77.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element1, imports.%Core.import_ref.3f7 [symbolic] +// CHECK:STDOUT: %assoc2.48eff0.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element2, imports.%Core.import_ref.385 [symbolic] +// CHECK:STDOUT: %assoc3.5d53f7.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element3, imports.%Core.import_ref.39b [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.05039a.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.f6ec4f.2: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %pattern_type.51d1c4.2: type = pattern_type %U [symbolic] -// CHECK:STDOUT: %require_complete.a45: = require_complete_type %OrderedWith.type.73dab8.2 [symbolic] -// CHECK:STDOUT: %assoc0.3ff: %OrderedWith.assoc_type.2fabd7.1 = assoc_entity element0, imports.%Core.import_ref.c33 [symbolic] +// CHECK:STDOUT: %require_complete.3c0: = require_complete_type %OrderedWith.type.32ae87.2 [symbolic] +// CHECK:STDOUT: %assoc0.13c: %OrderedWith.assoc_type.1d2e6f.1 = assoc_entity element0, imports.%Core.import_ref.447 [symbolic] // CHECK:STDOUT: %OrderedWith.lookup_impl_witness: = lookup_impl_witness %T, @OrderedWith.1, @OrderedWith.1(%U) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.687390.3: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%U, %T) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.3: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%U, %T) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.9defd1.3: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%U, %T) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.3: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%U, %T) [symbolic] -// CHECK:STDOUT: %.cb4: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.687390.3, %T [symbolic] -// CHECK:STDOUT: %impl.elem0: %.cb4 = impl_witness_access %OrderedWith.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.c89: = specific_impl_function %impl.elem0, @OrderedWith.WithSelf.Less(%U, %T) [symbolic] -// CHECK:STDOUT: %assoc1.760: %OrderedWith.assoc_type.2fabd7.1 = assoc_entity element1, imports.%Core.import_ref.79a [symbolic] -// CHECK:STDOUT: %.ac4: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.3, %T [symbolic] -// CHECK:STDOUT: %impl.elem1: %.ac4 = impl_witness_access %OrderedWith.lookup_impl_witness, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.65b: = specific_impl_function %impl.elem1, @OrderedWith.WithSelf.LessOrEquivalent(%U, %T) [symbolic] -// CHECK:STDOUT: %assoc2.897: %OrderedWith.assoc_type.2fabd7.1 = assoc_entity element2, imports.%Core.import_ref.ea2 [symbolic] -// CHECK:STDOUT: %.994: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.9defd1.3, %T [symbolic] -// CHECK:STDOUT: %impl.elem2: %.994 = impl_witness_access %OrderedWith.lookup_impl_witness, element2 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.6dc: = specific_impl_function %impl.elem2, @OrderedWith.WithSelf.Greater(%U, %T) [symbolic] -// CHECK:STDOUT: %assoc3.8bc: %OrderedWith.assoc_type.2fabd7.1 = assoc_entity element3, imports.%Core.import_ref.b4f [symbolic] -// CHECK:STDOUT: %.eca: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.3, %T [symbolic] -// CHECK:STDOUT: %impl.elem3: %.eca = impl_witness_access %OrderedWith.lookup_impl_witness, element3 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.f67: = specific_impl_function %impl.elem3, @OrderedWith.WithSelf.GreaterOrEquivalent(%U, %T) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.b87f4b.3: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%U, %T) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.13d375.3: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%U, %T) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.9ce25c.3: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%U, %T) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.3: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%U, %T) [symbolic] +// CHECK:STDOUT: %.6ec: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.b87f4b.3, %T [symbolic] +// CHECK:STDOUT: %impl.elem0: %.6ec = impl_witness_access %OrderedWith.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.527: = specific_impl_function %impl.elem0, @OrderedWith.WithSelf.Less(%U, %T) [symbolic] +// CHECK:STDOUT: %assoc1.ee7: %OrderedWith.assoc_type.1d2e6f.1 = assoc_entity element1, imports.%Core.import_ref.efc [symbolic] +// CHECK:STDOUT: %.02db: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.13d375.3, %T [symbolic] +// CHECK:STDOUT: %impl.elem1: %.02db = impl_witness_access %OrderedWith.lookup_impl_witness, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.001: = specific_impl_function %impl.elem1, @OrderedWith.WithSelf.LessOrEquivalent(%U, %T) [symbolic] +// CHECK:STDOUT: %assoc2.131: %OrderedWith.assoc_type.1d2e6f.1 = assoc_entity element2, imports.%Core.import_ref.e60 [symbolic] +// CHECK:STDOUT: %.666: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.9ce25c.3, %T [symbolic] +// CHECK:STDOUT: %impl.elem2: %.666 = impl_witness_access %OrderedWith.lookup_impl_witness, element2 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.735: = specific_impl_function %impl.elem2, @OrderedWith.WithSelf.Greater(%U, %T) [symbolic] +// CHECK:STDOUT: %assoc3.18a: %OrderedWith.assoc_type.1d2e6f.1 = assoc_entity element3, imports.%Core.import_ref.6c6 [symbolic] +// CHECK:STDOUT: %.73b: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.3, %T [symbolic] +// CHECK:STDOUT: %impl.elem3: %.73b = impl_witness_access %OrderedWith.lookup_impl_witness, element3 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.418: = specific_impl_function %impl.elem3, @OrderedWith.WithSelf.GreaterOrEquivalent(%U, %T) [symbolic] // CHECK:STDOUT: %A1: type = class_type @A1 [concrete] -// CHECK:STDOUT: %pattern_type.c8a: type = pattern_type %A1 [concrete] +// CHECK:STDOUT: %pattern_type.3b4: type = pattern_type %A1 [concrete] // CHECK:STDOUT: %B1: type = class_type @B1 [concrete] -// CHECK:STDOUT: %pattern_type.e62: type = pattern_type %B1 [concrete] +// CHECK:STDOUT: %pattern_type.5b2: type = pattern_type %B1 [concrete] // CHECK:STDOUT: %A2: type = class_type @A2 [concrete] -// CHECK:STDOUT: %pattern_type.1e3: type = pattern_type %A2 [concrete] +// CHECK:STDOUT: %pattern_type.9f0: type = pattern_type %A2 [concrete] // CHECK:STDOUT: %B2: type = class_type @B2 [concrete] -// CHECK:STDOUT: %pattern_type.fab: type = pattern_type %B2 [concrete] +// CHECK:STDOUT: %pattern_type.d1e: type = pattern_type %B2 [concrete] // CHECK:STDOUT: %A3: type = class_type @A3 [concrete] -// CHECK:STDOUT: %pattern_type.ada: type = pattern_type %A3 [concrete] +// CHECK:STDOUT: %pattern_type.7fe: type = pattern_type %A3 [concrete] // CHECK:STDOUT: %B3: type = class_type @B3 [concrete] -// CHECK:STDOUT: %pattern_type.a20: type = pattern_type %B3 [concrete] +// CHECK:STDOUT: %pattern_type.2dd: type = pattern_type %B3 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %OrderedWith.type.843: type = facet_type <@OrderedWith.1, @OrderedWith.1(%B1)> [concrete] -// CHECK:STDOUT: %OrderedWith.assoc_type.d9f: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%B1) [concrete] -// CHECK:STDOUT: %assoc0.f28: %OrderedWith.assoc_type.d9f = assoc_entity element0, imports.%Core.import_ref.5cd [concrete] -// CHECK:STDOUT: %assoc1.b17: %OrderedWith.assoc_type.d9f = assoc_entity element1, imports.%Core.import_ref.fb6 [concrete] -// CHECK:STDOUT: %assoc2.9ca: %OrderedWith.assoc_type.d9f = assoc_entity element2, imports.%Core.import_ref.32f [concrete] -// CHECK:STDOUT: %assoc3.ac2: %OrderedWith.assoc_type.d9f = assoc_entity element3, imports.%Core.import_ref.2d8 [concrete] +// CHECK:STDOUT: %OrderedWith.type.4d9: type = facet_type <@OrderedWith.1, @OrderedWith.1(%B1)> [concrete] +// CHECK:STDOUT: %OrderedWith.assoc_type.993: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%B1) [concrete] +// CHECK:STDOUT: %assoc0.9a4: %OrderedWith.assoc_type.993 = assoc_entity element0, imports.%Core.import_ref.e7a [concrete] +// CHECK:STDOUT: %assoc1.bc4: %OrderedWith.assoc_type.993 = assoc_entity element1, imports.%Core.import_ref.3f7 [concrete] +// CHECK:STDOUT: %assoc2.da5: %OrderedWith.assoc_type.993 = assoc_entity element2, imports.%Core.import_ref.385 [concrete] +// CHECK:STDOUT: %assoc3.17b: %OrderedWith.assoc_type.993 = assoc_entity element3, imports.%Core.import_ref.39b [concrete] // CHECK:STDOUT: %A1.Less.type: type = fn_type @A1.Less [concrete] // CHECK:STDOUT: %A1.Less: %A1.Less.type = struct_value () [concrete] // CHECK:STDOUT: %A1.LessOrEquivalent.type: type = fn_type @A1.LessOrEquivalent [concrete] @@ -684,15 +684,15 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: %A1.Greater: %A1.Greater.type = struct_value () [concrete] // CHECK:STDOUT: %A1.GreaterOrEquivalent.type: type = fn_type @A1.GreaterOrEquivalent [concrete] // CHECK:STDOUT: %A1.GreaterOrEquivalent: %A1.GreaterOrEquivalent.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.6de: = custom_witness (%A1.Less, %A1.LessOrEquivalent, %A1.Greater, %A1.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%B1) [concrete] -// CHECK:STDOUT: %OrderedWith.facet.bb0: %OrderedWith.type.843 = facet_value %A1, (%custom_witness.6de) [concrete] -// CHECK:STDOUT: %pattern_type.52e: type = pattern_type %OrderedWith.type.843 [concrete] -// CHECK:STDOUT: %OrderedWith.type.35b: type = facet_type <@OrderedWith.1, @OrderedWith.1(%A1)> [concrete] -// CHECK:STDOUT: %OrderedWith.assoc_type.555: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%A1) [concrete] -// CHECK:STDOUT: %assoc0.15b: %OrderedWith.assoc_type.555 = assoc_entity element0, imports.%Core.import_ref.5cd [concrete] -// CHECK:STDOUT: %assoc1.ce2: %OrderedWith.assoc_type.555 = assoc_entity element1, imports.%Core.import_ref.fb6 [concrete] -// CHECK:STDOUT: %assoc2.092: %OrderedWith.assoc_type.555 = assoc_entity element2, imports.%Core.import_ref.32f [concrete] -// CHECK:STDOUT: %assoc3.fc9: %OrderedWith.assoc_type.555 = assoc_entity element3, imports.%Core.import_ref.2d8 [concrete] +// CHECK:STDOUT: %custom_witness.1d9: = custom_witness (%A1.Less, %A1.LessOrEquivalent, %A1.Greater, %A1.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%B1) [concrete] +// CHECK:STDOUT: %OrderedWith.facet.370: %OrderedWith.type.4d9 = facet_value %A1, (%custom_witness.1d9) [concrete] +// CHECK:STDOUT: %pattern_type.53b: type = pattern_type %OrderedWith.type.4d9 [concrete] +// CHECK:STDOUT: %OrderedWith.type.fe8: type = facet_type <@OrderedWith.1, @OrderedWith.1(%A1)> [concrete] +// CHECK:STDOUT: %OrderedWith.assoc_type.31d: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%A1) [concrete] +// CHECK:STDOUT: %assoc0.a34: %OrderedWith.assoc_type.31d = assoc_entity element0, imports.%Core.import_ref.e7a [concrete] +// CHECK:STDOUT: %assoc1.27b: %OrderedWith.assoc_type.31d = assoc_entity element1, imports.%Core.import_ref.3f7 [concrete] +// CHECK:STDOUT: %assoc2.b68: %OrderedWith.assoc_type.31d = assoc_entity element2, imports.%Core.import_ref.385 [concrete] +// CHECK:STDOUT: %assoc3.833: %OrderedWith.assoc_type.31d = assoc_entity element3, imports.%Core.import_ref.39b [concrete] // CHECK:STDOUT: %B1.Less.type: type = fn_type @B1.Less [concrete] // CHECK:STDOUT: %B1.Less: %B1.Less.type = struct_value () [concrete] // CHECK:STDOUT: %B1.LessOrEquivalent.type: type = fn_type @B1.LessOrEquivalent [concrete] @@ -701,15 +701,15 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: %B1.Greater: %B1.Greater.type = struct_value () [concrete] // CHECK:STDOUT: %B1.GreaterOrEquivalent.type: type = fn_type @B1.GreaterOrEquivalent [concrete] // CHECK:STDOUT: %B1.GreaterOrEquivalent: %B1.GreaterOrEquivalent.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.ffd: = custom_witness (%B1.Less, %B1.LessOrEquivalent, %B1.Greater, %B1.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%A1) [concrete] -// CHECK:STDOUT: %OrderedWith.facet.15d: %OrderedWith.type.35b = facet_value %B1, (%custom_witness.ffd) [concrete] -// CHECK:STDOUT: %pattern_type.604: type = pattern_type %OrderedWith.type.35b [concrete] -// CHECK:STDOUT: %OrderedWith.type.58a: type = facet_type <@OrderedWith.1, @OrderedWith.1(%A2)> [concrete] -// CHECK:STDOUT: %OrderedWith.assoc_type.2cf: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%A2) [concrete] -// CHECK:STDOUT: %assoc0.d7b: %OrderedWith.assoc_type.2cf = assoc_entity element0, imports.%Core.import_ref.5cd [concrete] -// CHECK:STDOUT: %assoc1.c2a: %OrderedWith.assoc_type.2cf = assoc_entity element1, imports.%Core.import_ref.fb6 [concrete] -// CHECK:STDOUT: %assoc2.20c: %OrderedWith.assoc_type.2cf = assoc_entity element2, imports.%Core.import_ref.32f [concrete] -// CHECK:STDOUT: %assoc3.c0a: %OrderedWith.assoc_type.2cf = assoc_entity element3, imports.%Core.import_ref.2d8 [concrete] +// CHECK:STDOUT: %custom_witness.d3a: = custom_witness (%B1.Less, %B1.LessOrEquivalent, %B1.Greater, %B1.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%A1) [concrete] +// CHECK:STDOUT: %OrderedWith.facet.288: %OrderedWith.type.fe8 = facet_value %B1, (%custom_witness.d3a) [concrete] +// CHECK:STDOUT: %pattern_type.280: type = pattern_type %OrderedWith.type.fe8 [concrete] +// CHECK:STDOUT: %OrderedWith.type.9ee: type = facet_type <@OrderedWith.1, @OrderedWith.1(%A2)> [concrete] +// CHECK:STDOUT: %OrderedWith.assoc_type.941: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%A2) [concrete] +// CHECK:STDOUT: %assoc0.73a: %OrderedWith.assoc_type.941 = assoc_entity element0, imports.%Core.import_ref.e7a [concrete] +// CHECK:STDOUT: %assoc1.f9c: %OrderedWith.assoc_type.941 = assoc_entity element1, imports.%Core.import_ref.3f7 [concrete] +// CHECK:STDOUT: %assoc2.f6a: %OrderedWith.assoc_type.941 = assoc_entity element2, imports.%Core.import_ref.385 [concrete] +// CHECK:STDOUT: %assoc3.210: %OrderedWith.assoc_type.941 = assoc_entity element3, imports.%Core.import_ref.39b [concrete] // CHECK:STDOUT: %B2.Less.type: type = fn_type @B2.Less [concrete] // CHECK:STDOUT: %B2.Less: %B2.Less.type = struct_value () [concrete] // CHECK:STDOUT: %B2.LessOrEquivalent.type: type = fn_type @B2.LessOrEquivalent [concrete] @@ -718,15 +718,15 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: %B2.Greater: %B2.Greater.type = struct_value () [concrete] // CHECK:STDOUT: %B2.GreaterOrEquivalent.type: type = fn_type @B2.GreaterOrEquivalent [concrete] // CHECK:STDOUT: %B2.GreaterOrEquivalent: %B2.GreaterOrEquivalent.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.248: = custom_witness (%B2.Less, %B2.LessOrEquivalent, %B2.Greater, %B2.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%A2) [concrete] -// CHECK:STDOUT: %OrderedWith.facet.dfe: %OrderedWith.type.58a = facet_value %B2, (%custom_witness.248) [concrete] -// CHECK:STDOUT: %pattern_type.2c4: type = pattern_type %OrderedWith.type.58a [concrete] -// CHECK:STDOUT: %OrderedWith.type.d37: type = facet_type <@OrderedWith.1, @OrderedWith.1(%B3)> [concrete] -// CHECK:STDOUT: %OrderedWith.assoc_type.3d5: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%B3) [concrete] -// CHECK:STDOUT: %assoc0.7d9: %OrderedWith.assoc_type.3d5 = assoc_entity element0, imports.%Core.import_ref.5cd [concrete] -// CHECK:STDOUT: %assoc1.f64: %OrderedWith.assoc_type.3d5 = assoc_entity element1, imports.%Core.import_ref.fb6 [concrete] -// CHECK:STDOUT: %assoc2.060: %OrderedWith.assoc_type.3d5 = assoc_entity element2, imports.%Core.import_ref.32f [concrete] -// CHECK:STDOUT: %assoc3.3e3: %OrderedWith.assoc_type.3d5 = assoc_entity element3, imports.%Core.import_ref.2d8 [concrete] +// CHECK:STDOUT: %custom_witness.bbd: = custom_witness (%B2.Less, %B2.LessOrEquivalent, %B2.Greater, %B2.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%A2) [concrete] +// CHECK:STDOUT: %OrderedWith.facet.2ea: %OrderedWith.type.9ee = facet_value %B2, (%custom_witness.bbd) [concrete] +// CHECK:STDOUT: %pattern_type.a96: type = pattern_type %OrderedWith.type.9ee [concrete] +// CHECK:STDOUT: %OrderedWith.type.cc8: type = facet_type <@OrderedWith.1, @OrderedWith.1(%B3)> [concrete] +// CHECK:STDOUT: %OrderedWith.assoc_type.45f: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%B3) [concrete] +// CHECK:STDOUT: %assoc0.2c4: %OrderedWith.assoc_type.45f = assoc_entity element0, imports.%Core.import_ref.e7a [concrete] +// CHECK:STDOUT: %assoc1.219: %OrderedWith.assoc_type.45f = assoc_entity element1, imports.%Core.import_ref.3f7 [concrete] +// CHECK:STDOUT: %assoc2.731: %OrderedWith.assoc_type.45f = assoc_entity element2, imports.%Core.import_ref.385 [concrete] +// CHECK:STDOUT: %assoc3.6c4: %OrderedWith.assoc_type.45f = assoc_entity element3, imports.%Core.import_ref.39b [concrete] // CHECK:STDOUT: %A3.Less.type: type = fn_type @A3.Less [concrete] // CHECK:STDOUT: %A3.Less: %A3.Less.type = struct_value () [concrete] // CHECK:STDOUT: %LessOrEquivalent.type: type = fn_type @LessOrEquivalent [concrete] @@ -735,15 +735,15 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: %A3.Greater: %A3.Greater.type = struct_value () [concrete] // CHECK:STDOUT: %GreaterOrEquivalent.type: type = fn_type @GreaterOrEquivalent [concrete] // CHECK:STDOUT: %GreaterOrEquivalent: %GreaterOrEquivalent.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.eb5: = custom_witness (%A3.Less, %LessOrEquivalent, %A3.Greater, %GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%B3) [concrete] -// CHECK:STDOUT: %OrderedWith.facet.647: %OrderedWith.type.d37 = facet_value %A3, (%custom_witness.eb5) [concrete] -// CHECK:STDOUT: %pattern_type.f72: type = pattern_type %OrderedWith.type.d37 [concrete] -// CHECK:STDOUT: %OrderedWith.type.895: type = facet_type <@OrderedWith.1, @OrderedWith.1(%A3)> [concrete] -// CHECK:STDOUT: %OrderedWith.assoc_type.1bb: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%A3) [concrete] -// CHECK:STDOUT: %assoc0.19a: %OrderedWith.assoc_type.1bb = assoc_entity element0, imports.%Core.import_ref.5cd [concrete] -// CHECK:STDOUT: %assoc1.573: %OrderedWith.assoc_type.1bb = assoc_entity element1, imports.%Core.import_ref.fb6 [concrete] -// CHECK:STDOUT: %assoc2.a29: %OrderedWith.assoc_type.1bb = assoc_entity element2, imports.%Core.import_ref.32f [concrete] -// CHECK:STDOUT: %assoc3.c40: %OrderedWith.assoc_type.1bb = assoc_entity element3, imports.%Core.import_ref.2d8 [concrete] +// CHECK:STDOUT: %custom_witness.773: = custom_witness (%A3.Less, %LessOrEquivalent, %A3.Greater, %GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%B3) [concrete] +// CHECK:STDOUT: %OrderedWith.facet.d6b: %OrderedWith.type.cc8 = facet_value %A3, (%custom_witness.773) [concrete] +// CHECK:STDOUT: %pattern_type.edf: type = pattern_type %OrderedWith.type.cc8 [concrete] +// CHECK:STDOUT: %OrderedWith.type.30a: type = facet_type <@OrderedWith.1, @OrderedWith.1(%A3)> [concrete] +// CHECK:STDOUT: %OrderedWith.assoc_type.18e: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%A3) [concrete] +// CHECK:STDOUT: %assoc0.d97: %OrderedWith.assoc_type.18e = assoc_entity element0, imports.%Core.import_ref.e7a [concrete] +// CHECK:STDOUT: %assoc1.835: %OrderedWith.assoc_type.18e = assoc_entity element1, imports.%Core.import_ref.3f7 [concrete] +// CHECK:STDOUT: %assoc2.27d: %OrderedWith.assoc_type.18e = assoc_entity element2, imports.%Core.import_ref.385 [concrete] +// CHECK:STDOUT: %assoc3.6a9: %OrderedWith.assoc_type.18e = assoc_entity element3, imports.%Core.import_ref.39b [concrete] // CHECK:STDOUT: %Less.type: type = fn_type @Less [concrete] // CHECK:STDOUT: %Less: %Less.type = struct_value () [concrete] // CHECK:STDOUT: %B3.LessOrEquivalent.type: type = fn_type @B3.LessOrEquivalent [concrete] @@ -752,140 +752,140 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: %Greater: %Greater.type = struct_value () [concrete] // CHECK:STDOUT: %B3.GreaterOrEquivalent.type: type = fn_type @B3.GreaterOrEquivalent [concrete] // CHECK:STDOUT: %B3.GreaterOrEquivalent: %B3.GreaterOrEquivalent.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.63b: = custom_witness (%Less, %B3.LessOrEquivalent, %Greater, %B3.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%A3) [concrete] -// CHECK:STDOUT: %OrderedWith.facet.79f: %OrderedWith.type.895 = facet_value %B3, (%custom_witness.63b) [concrete] -// CHECK:STDOUT: %pattern_type.970: type = pattern_type %OrderedWith.type.895 [concrete] -// CHECK:STDOUT: %complete_type.c30: = complete_type_witness %OrderedWith.type.843 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.066: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.bb0) [concrete] -// CHECK:STDOUT: %.dba: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.066, %OrderedWith.facet.bb0 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.a39: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.bb0) [concrete] -// CHECK:STDOUT: %.0ef: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.a39, %OrderedWith.facet.bb0 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.d68: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.bb0) [concrete] -// CHECK:STDOUT: %.063: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.d68, %OrderedWith.facet.bb0 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.90d: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.bb0) [concrete] -// CHECK:STDOUT: %.3a8: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.90d, %OrderedWith.facet.bb0 [concrete] -// CHECK:STDOUT: %complete_type.833: = complete_type_witness %OrderedWith.type.35b [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.bac: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%A1, %OrderedWith.facet.15d) [concrete] -// CHECK:STDOUT: %.7b9: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.bac, %OrderedWith.facet.15d [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.263: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%A1, %OrderedWith.facet.15d) [concrete] -// CHECK:STDOUT: %.107: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.263, %OrderedWith.facet.15d [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.341: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%A1, %OrderedWith.facet.15d) [concrete] -// CHECK:STDOUT: %.a86: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.341, %OrderedWith.facet.15d [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.9dd: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%A1, %OrderedWith.facet.15d) [concrete] -// CHECK:STDOUT: %.e0e: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.9dd, %OrderedWith.facet.15d [concrete] -// CHECK:STDOUT: %complete_type.b32: = complete_type_witness %OrderedWith.type.58a [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.242: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%A2, %OrderedWith.facet.dfe) [concrete] -// CHECK:STDOUT: %.819: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.242, %OrderedWith.facet.dfe [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.bb1: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%A2, %OrderedWith.facet.dfe) [concrete] -// CHECK:STDOUT: %.984: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.bb1, %OrderedWith.facet.dfe [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.051: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%A2, %OrderedWith.facet.dfe) [concrete] -// CHECK:STDOUT: %.bc8: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.051, %OrderedWith.facet.dfe [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.232: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%A2, %OrderedWith.facet.dfe) [concrete] -// CHECK:STDOUT: %.9b5: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.232, %OrderedWith.facet.dfe [concrete] -// CHECK:STDOUT: %complete_type.b8b: = complete_type_witness %OrderedWith.type.d37 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.ab2: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%B3, %OrderedWith.facet.647) [concrete] -// CHECK:STDOUT: %.06f: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.ab2, %OrderedWith.facet.647 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.750: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%B3, %OrderedWith.facet.647) [concrete] -// CHECK:STDOUT: %.914: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.750, %OrderedWith.facet.647 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.111: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%B3, %OrderedWith.facet.647) [concrete] -// CHECK:STDOUT: %.a18: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.111, %OrderedWith.facet.647 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.a5d: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%B3, %OrderedWith.facet.647) [concrete] -// CHECK:STDOUT: %.92d: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.a5d, %OrderedWith.facet.647 [concrete] -// CHECK:STDOUT: %complete_type.b69: = complete_type_witness %OrderedWith.type.895 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.e74: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%A3, %OrderedWith.facet.79f) [concrete] -// CHECK:STDOUT: %.4be: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.e74, %OrderedWith.facet.79f [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.2de: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%A3, %OrderedWith.facet.79f) [concrete] -// CHECK:STDOUT: %.79c: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.2de, %OrderedWith.facet.79f [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.6fd: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%A3, %OrderedWith.facet.79f) [concrete] -// CHECK:STDOUT: %.d57: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.6fd, %OrderedWith.facet.79f [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.88b: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%A3, %OrderedWith.facet.79f) [concrete] -// CHECK:STDOUT: %.cd5: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.88b, %OrderedWith.facet.79f [concrete] +// CHECK:STDOUT: %custom_witness.870: = custom_witness (%Less, %B3.LessOrEquivalent, %Greater, %B3.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%A3) [concrete] +// CHECK:STDOUT: %OrderedWith.facet.52f: %OrderedWith.type.30a = facet_value %B3, (%custom_witness.870) [concrete] +// CHECK:STDOUT: %pattern_type.5db: type = pattern_type %OrderedWith.type.30a [concrete] +// CHECK:STDOUT: %complete_type.f5b: = complete_type_witness %OrderedWith.type.4d9 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.bf4: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.370) [concrete] +// CHECK:STDOUT: %.e3b: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.bf4, %OrderedWith.facet.370 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.8d0: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.370) [concrete] +// CHECK:STDOUT: %.736: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.8d0, %OrderedWith.facet.370 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.130: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.370) [concrete] +// CHECK:STDOUT: %.b93: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.130, %OrderedWith.facet.370 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.1e3: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.370) [concrete] +// CHECK:STDOUT: %.ccd: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.1e3, %OrderedWith.facet.370 [concrete] +// CHECK:STDOUT: %complete_type.9ae: = complete_type_witness %OrderedWith.type.fe8 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.d52: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%A1, %OrderedWith.facet.288) [concrete] +// CHECK:STDOUT: %.367: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.d52, %OrderedWith.facet.288 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.f69: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%A1, %OrderedWith.facet.288) [concrete] +// CHECK:STDOUT: %.0f8: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.f69, %OrderedWith.facet.288 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.f1e: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%A1, %OrderedWith.facet.288) [concrete] +// CHECK:STDOUT: %.2f6: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.f1e, %OrderedWith.facet.288 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.f75: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%A1, %OrderedWith.facet.288) [concrete] +// CHECK:STDOUT: %.3fa: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.f75, %OrderedWith.facet.288 [concrete] +// CHECK:STDOUT: %complete_type.674: = complete_type_witness %OrderedWith.type.9ee [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.b7e: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%A2, %OrderedWith.facet.2ea) [concrete] +// CHECK:STDOUT: %.02d8: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.b7e, %OrderedWith.facet.2ea [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.1dc: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%A2, %OrderedWith.facet.2ea) [concrete] +// CHECK:STDOUT: %.fd7: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.1dc, %OrderedWith.facet.2ea [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.693: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%A2, %OrderedWith.facet.2ea) [concrete] +// CHECK:STDOUT: %.380: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.693, %OrderedWith.facet.2ea [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.906: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%A2, %OrderedWith.facet.2ea) [concrete] +// CHECK:STDOUT: %.b8f: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.906, %OrderedWith.facet.2ea [concrete] +// CHECK:STDOUT: %complete_type.672: = complete_type_witness %OrderedWith.type.cc8 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.c08: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%B3, %OrderedWith.facet.d6b) [concrete] +// CHECK:STDOUT: %.a95: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.c08, %OrderedWith.facet.d6b [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.f02: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%B3, %OrderedWith.facet.d6b) [concrete] +// CHECK:STDOUT: %.fda: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.f02, %OrderedWith.facet.d6b [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.d28: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%B3, %OrderedWith.facet.d6b) [concrete] +// CHECK:STDOUT: %.24d: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.d28, %OrderedWith.facet.d6b [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.5ab: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%B3, %OrderedWith.facet.d6b) [concrete] +// CHECK:STDOUT: %.898: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.5ab, %OrderedWith.facet.d6b [concrete] +// CHECK:STDOUT: %complete_type.04a: = complete_type_witness %OrderedWith.type.30a [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.9d3: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%A3, %OrderedWith.facet.52f) [concrete] +// CHECK:STDOUT: %.fb6: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.9d3, %OrderedWith.facet.52f [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.ff1: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%A3, %OrderedWith.facet.52f) [concrete] +// CHECK:STDOUT: %.bb5: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.ff1, %OrderedWith.facet.52f [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.d71: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%A3, %OrderedWith.facet.52f) [concrete] +// CHECK:STDOUT: %.51d: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.d71, %OrderedWith.facet.52f [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.ec1: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%A3, %OrderedWith.facet.52f) [concrete] +// CHECK:STDOUT: %.4c7: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.ec1, %OrderedWith.facet.52f [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.eb4: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc0 (constants.%assoc0.3ff)] -// CHECK:STDOUT: %Core.import_ref.84c: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc1 (constants.%assoc1.760)] -// CHECK:STDOUT: %Core.import_ref.01d: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc2 (constants.%assoc2.897)] -// CHECK:STDOUT: %Core.import_ref.569: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc3 (constants.%assoc3.8bc)] -// CHECK:STDOUT: %Core.import_ref.2d8: @OrderedWith.WithSelf.%OrderedWith.WithSelf.GreaterOrEquivalent.type (%OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.GreaterOrEquivalent (constants.%OrderedWith.WithSelf.GreaterOrEquivalent.38d1a4.1)] -// CHECK:STDOUT: %Core.import_ref.32f: @OrderedWith.WithSelf.%OrderedWith.WithSelf.Greater.type (%OrderedWith.WithSelf.Greater.type.9defd1.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.Greater (constants.%OrderedWith.WithSelf.Greater.984598.1)] -// CHECK:STDOUT: %Core.import_ref.fb6: @OrderedWith.WithSelf.%OrderedWith.WithSelf.LessOrEquivalent.type (%OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.LessOrEquivalent (constants.%OrderedWith.WithSelf.LessOrEquivalent.c2ac22.1)] -// CHECK:STDOUT: %Core.import_ref.5cd: @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less.type (%OrderedWith.WithSelf.Less.type.687390.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less (constants.%OrderedWith.WithSelf.Less.4a995a.1)] -// CHECK:STDOUT: %Core.import_ref.c33 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.79a = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.ea2 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.b4f = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.ef7: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc0 (constants.%assoc0.13c)] +// CHECK:STDOUT: %Core.import_ref.878: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc1 (constants.%assoc1.ee7)] +// CHECK:STDOUT: %Core.import_ref.d4f: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc2 (constants.%assoc2.131)] +// CHECK:STDOUT: %Core.import_ref.b87: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc3 (constants.%assoc3.18a)] +// CHECK:STDOUT: %Core.import_ref.39b: @OrderedWith.WithSelf.%OrderedWith.WithSelf.GreaterOrEquivalent.type (%OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.GreaterOrEquivalent (constants.%OrderedWith.WithSelf.GreaterOrEquivalent.937fbb.1)] +// CHECK:STDOUT: %Core.import_ref.385: @OrderedWith.WithSelf.%OrderedWith.WithSelf.Greater.type (%OrderedWith.WithSelf.Greater.type.9ce25c.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.Greater (constants.%OrderedWith.WithSelf.Greater.c0b4fa.1)] +// CHECK:STDOUT: %Core.import_ref.3f7: @OrderedWith.WithSelf.%OrderedWith.WithSelf.LessOrEquivalent.type (%OrderedWith.WithSelf.LessOrEquivalent.type.13d375.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.LessOrEquivalent (constants.%OrderedWith.WithSelf.LessOrEquivalent.e31723.1)] +// CHECK:STDOUT: %Core.import_ref.e7a: @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less.type (%OrderedWith.WithSelf.Less.type.b87f4b.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less (constants.%OrderedWith.WithSelf.Less.9e1f56.1)] +// CHECK:STDOUT: %Core.import_ref.447 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.efc = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.e60 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.6c6 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @OrderedWith.loc54(%U.loc54_17.2: type, %T.loc54_27.2: @OrderedWith.loc54.%OrderedWith.type.loc54_48.1 (%OrderedWith.type.73dab8.2)) { +// CHECK:STDOUT: generic fn @OrderedWith.loc54(%U.loc54_17.2: type, %T.loc54_27.2: @OrderedWith.loc54.%OrderedWith.type.loc54_48.1 (%OrderedWith.type.32ae87.2)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc56: = require_complete_type %OrderedWith.type.loc54_48.1 [symbolic = %require_complete.loc56 (constants.%require_complete.a45)] -// CHECK:STDOUT: %OrderedWith.assoc_type: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%U.loc54_17.1) [symbolic = %OrderedWith.assoc_type (constants.%OrderedWith.assoc_type.2fabd7.2)] -// CHECK:STDOUT: %assoc0: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = assoc_entity element0, imports.%Core.import_ref.5cd [symbolic = %assoc0 (constants.%assoc0.7dbd55.2)] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%U.loc54_17.1, %T.loc54_27.1) [symbolic = %OrderedWith.WithSelf.Less.type (constants.%OrderedWith.WithSelf.Less.type.687390.3)] -// CHECK:STDOUT: %.loc56_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type, %T.loc54_27.1 [symbolic = %.loc56_5.2 (constants.%.cb4)] +// CHECK:STDOUT: %require_complete.loc56: = require_complete_type %OrderedWith.type.loc54_48.1 [symbolic = %require_complete.loc56 (constants.%require_complete.3c0)] +// CHECK:STDOUT: %OrderedWith.assoc_type: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%U.loc54_17.1) [symbolic = %OrderedWith.assoc_type (constants.%OrderedWith.assoc_type.1d2e6f.2)] +// CHECK:STDOUT: %assoc0: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = assoc_entity element0, imports.%Core.import_ref.e7a [symbolic = %assoc0 (constants.%assoc0.c0023b.2)] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%U.loc54_17.1, %T.loc54_27.1) [symbolic = %OrderedWith.WithSelf.Less.type (constants.%OrderedWith.WithSelf.Less.type.b87f4b.3)] +// CHECK:STDOUT: %.loc56_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type, %T.loc54_27.1 [symbolic = %.loc56_5.2 (constants.%.6ec)] // CHECK:STDOUT: %OrderedWith.lookup_impl_witness: = lookup_impl_witness %T.loc54_27.1, @OrderedWith.1, @OrderedWith.1(%U.loc54_17.1) [symbolic = %OrderedWith.lookup_impl_witness (constants.%OrderedWith.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc56_5.2: @OrderedWith.loc54.%.loc56_5.2 (%.cb4) = impl_witness_access %OrderedWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc56_5.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc56_5.2: = specific_impl_function %impl.elem0.loc56_5.2, @OrderedWith.WithSelf.Less(%U.loc54_17.1, %T.loc54_27.1) [symbolic = %specific_impl_fn.loc56_5.2 (constants.%specific_impl_fn.c89)] -// CHECK:STDOUT: %assoc1: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = assoc_entity element1, imports.%Core.import_ref.fb6 [symbolic = %assoc1 (constants.%assoc1.54de85.2)] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%U.loc54_17.1, %T.loc54_27.1) [symbolic = %OrderedWith.WithSelf.LessOrEquivalent.type (constants.%OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.3)] -// CHECK:STDOUT: %.loc57_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type, %T.loc54_27.1 [symbolic = %.loc57_5.2 (constants.%.ac4)] -// CHECK:STDOUT: %impl.elem1.loc57_5.2: @OrderedWith.loc54.%.loc57_5.2 (%.ac4) = impl_witness_access %OrderedWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc57_5.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %specific_impl_fn.loc57_5.2: = specific_impl_function %impl.elem1.loc57_5.2, @OrderedWith.WithSelf.LessOrEquivalent(%U.loc54_17.1, %T.loc54_27.1) [symbolic = %specific_impl_fn.loc57_5.2 (constants.%specific_impl_fn.65b)] -// CHECK:STDOUT: %assoc2: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = assoc_entity element2, imports.%Core.import_ref.32f [symbolic = %assoc2 (constants.%assoc2.3caaa9.2)] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%U.loc54_17.1, %T.loc54_27.1) [symbolic = %OrderedWith.WithSelf.Greater.type (constants.%OrderedWith.WithSelf.Greater.type.9defd1.3)] -// CHECK:STDOUT: %.loc58_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type, %T.loc54_27.1 [symbolic = %.loc58_5.2 (constants.%.994)] -// CHECK:STDOUT: %impl.elem2.loc58_5.2: @OrderedWith.loc54.%.loc58_5.2 (%.994) = impl_witness_access %OrderedWith.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc58_5.2 (constants.%impl.elem2)] -// CHECK:STDOUT: %specific_impl_fn.loc58_5.2: = specific_impl_function %impl.elem2.loc58_5.2, @OrderedWith.WithSelf.Greater(%U.loc54_17.1, %T.loc54_27.1) [symbolic = %specific_impl_fn.loc58_5.2 (constants.%specific_impl_fn.6dc)] -// CHECK:STDOUT: %assoc3: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = assoc_entity element3, imports.%Core.import_ref.2d8 [symbolic = %assoc3 (constants.%assoc3.4eb879.2)] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%U.loc54_17.1, %T.loc54_27.1) [symbolic = %OrderedWith.WithSelf.GreaterOrEquivalent.type (constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.3)] -// CHECK:STDOUT: %.loc59_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type, %T.loc54_27.1 [symbolic = %.loc59_5.2 (constants.%.eca)] -// CHECK:STDOUT: %impl.elem3.loc59_5.2: @OrderedWith.loc54.%.loc59_5.2 (%.eca) = impl_witness_access %OrderedWith.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc59_5.2 (constants.%impl.elem3)] -// CHECK:STDOUT: %specific_impl_fn.loc59_5.2: = specific_impl_function %impl.elem3.loc59_5.2, @OrderedWith.WithSelf.GreaterOrEquivalent(%U.loc54_17.1, %T.loc54_27.1) [symbolic = %specific_impl_fn.loc59_5.2 (constants.%specific_impl_fn.f67)] +// CHECK:STDOUT: %impl.elem0.loc56_5.2: @OrderedWith.loc54.%.loc56_5.2 (%.6ec) = impl_witness_access %OrderedWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc56_5.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc56_5.2: = specific_impl_function %impl.elem0.loc56_5.2, @OrderedWith.WithSelf.Less(%U.loc54_17.1, %T.loc54_27.1) [symbolic = %specific_impl_fn.loc56_5.2 (constants.%specific_impl_fn.527)] +// CHECK:STDOUT: %assoc1: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = assoc_entity element1, imports.%Core.import_ref.3f7 [symbolic = %assoc1 (constants.%assoc1.3efd77.2)] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%U.loc54_17.1, %T.loc54_27.1) [symbolic = %OrderedWith.WithSelf.LessOrEquivalent.type (constants.%OrderedWith.WithSelf.LessOrEquivalent.type.13d375.3)] +// CHECK:STDOUT: %.loc57_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type, %T.loc54_27.1 [symbolic = %.loc57_5.2 (constants.%.02db)] +// CHECK:STDOUT: %impl.elem1.loc57_5.2: @OrderedWith.loc54.%.loc57_5.2 (%.02db) = impl_witness_access %OrderedWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc57_5.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %specific_impl_fn.loc57_5.2: = specific_impl_function %impl.elem1.loc57_5.2, @OrderedWith.WithSelf.LessOrEquivalent(%U.loc54_17.1, %T.loc54_27.1) [symbolic = %specific_impl_fn.loc57_5.2 (constants.%specific_impl_fn.001)] +// CHECK:STDOUT: %assoc2: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = assoc_entity element2, imports.%Core.import_ref.385 [symbolic = %assoc2 (constants.%assoc2.48eff0.2)] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%U.loc54_17.1, %T.loc54_27.1) [symbolic = %OrderedWith.WithSelf.Greater.type (constants.%OrderedWith.WithSelf.Greater.type.9ce25c.3)] +// CHECK:STDOUT: %.loc58_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type, %T.loc54_27.1 [symbolic = %.loc58_5.2 (constants.%.666)] +// CHECK:STDOUT: %impl.elem2.loc58_5.2: @OrderedWith.loc54.%.loc58_5.2 (%.666) = impl_witness_access %OrderedWith.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc58_5.2 (constants.%impl.elem2)] +// CHECK:STDOUT: %specific_impl_fn.loc58_5.2: = specific_impl_function %impl.elem2.loc58_5.2, @OrderedWith.WithSelf.Greater(%U.loc54_17.1, %T.loc54_27.1) [symbolic = %specific_impl_fn.loc58_5.2 (constants.%specific_impl_fn.735)] +// CHECK:STDOUT: %assoc3: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = assoc_entity element3, imports.%Core.import_ref.39b [symbolic = %assoc3 (constants.%assoc3.5d53f7.2)] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%U.loc54_17.1, %T.loc54_27.1) [symbolic = %OrderedWith.WithSelf.GreaterOrEquivalent.type (constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.3)] +// CHECK:STDOUT: %.loc59_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type, %T.loc54_27.1 [symbolic = %.loc59_5.2 (constants.%.73b)] +// CHECK:STDOUT: %impl.elem3.loc59_5.2: @OrderedWith.loc54.%.loc59_5.2 (%.73b) = impl_witness_access %OrderedWith.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc59_5.2 (constants.%impl.elem3)] +// CHECK:STDOUT: %specific_impl_fn.loc59_5.2: = specific_impl_function %impl.elem3.loc59_5.2, @OrderedWith.WithSelf.GreaterOrEquivalent(%U.loc54_17.1, %T.loc54_27.1) [symbolic = %specific_impl_fn.loc59_5.2 (constants.%specific_impl_fn.418)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @OrderedWith.loc54.%T.as_type.loc54_54.1 (%T.as_type), %y.param: @OrderedWith.loc54.%U.loc54_17.1 (%U)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref.loc56: @OrderedWith.loc54.%T.as_type.loc54_54.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc56: @OrderedWith.loc54.%U.loc54_17.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %OrderedWith.type.loc56: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc54_48.1 (constants.%OrderedWith.type.73dab8.2)] -// CHECK:STDOUT: %.loc56_5.1: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = specific_constant imports.%Core.import_ref.eb4, @OrderedWith.WithSelf(constants.%U, constants.%Self.d014af.1) [symbolic = %assoc0 (constants.%assoc0.7dbd55.2)] -// CHECK:STDOUT: %Less.ref: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = name_ref Less, %.loc56_5.1 [symbolic = %assoc0 (constants.%assoc0.7dbd55.2)] -// CHECK:STDOUT: %impl.elem0.loc56_5.1: @OrderedWith.loc54.%.loc56_5.2 (%.cb4) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc56_5.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %OrderedWith.type.loc56: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc54_48.1 (constants.%OrderedWith.type.32ae87.2)] +// CHECK:STDOUT: %.loc56_5.1: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = specific_constant imports.%Core.import_ref.ef7, @OrderedWith.WithSelf(constants.%U, constants.%Self.7df555.1) [symbolic = %assoc0 (constants.%assoc0.c0023b.2)] +// CHECK:STDOUT: %Less.ref: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = name_ref Less, %.loc56_5.1 [symbolic = %assoc0 (constants.%assoc0.c0023b.2)] +// CHECK:STDOUT: %impl.elem0.loc56_5.1: @OrderedWith.loc54.%.loc56_5.2 (%.6ec) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc56_5.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc56_5.1: = bound_method %x.ref.loc56, %impl.elem0.loc56_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc56_5.1: = specific_impl_function %impl.elem0.loc56_5.1, @OrderedWith.WithSelf.Less(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc56_5.2 (constants.%specific_impl_fn.c89)] +// CHECK:STDOUT: %specific_impl_fn.loc56_5.1: = specific_impl_function %impl.elem0.loc56_5.1, @OrderedWith.WithSelf.Less(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc56_5.2 (constants.%specific_impl_fn.527)] // CHECK:STDOUT: %bound_method.loc56_5.2: = bound_method %x.ref.loc56, %specific_impl_fn.loc56_5.1 // CHECK:STDOUT: %OrderedWith.WithSelf.Less.call: init bool = call %bound_method.loc56_5.2(%x.ref.loc56, %y.ref.loc56) // CHECK:STDOUT: %x.ref.loc57: @OrderedWith.loc54.%T.as_type.loc54_54.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc57: @OrderedWith.loc54.%U.loc54_17.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %OrderedWith.type.loc57: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc54_48.1 (constants.%OrderedWith.type.73dab8.2)] -// CHECK:STDOUT: %.loc57_5.1: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = specific_constant imports.%Core.import_ref.84c, @OrderedWith.WithSelf(constants.%U, constants.%Self.d014af.1) [symbolic = %assoc1 (constants.%assoc1.54de85.2)] -// CHECK:STDOUT: %LessOrEquivalent.ref: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = name_ref LessOrEquivalent, %.loc57_5.1 [symbolic = %assoc1 (constants.%assoc1.54de85.2)] -// CHECK:STDOUT: %impl.elem1.loc57_5.1: @OrderedWith.loc54.%.loc57_5.2 (%.ac4) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc57_5.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %OrderedWith.type.loc57: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc54_48.1 (constants.%OrderedWith.type.32ae87.2)] +// CHECK:STDOUT: %.loc57_5.1: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = specific_constant imports.%Core.import_ref.878, @OrderedWith.WithSelf(constants.%U, constants.%Self.7df555.1) [symbolic = %assoc1 (constants.%assoc1.3efd77.2)] +// CHECK:STDOUT: %LessOrEquivalent.ref: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = name_ref LessOrEquivalent, %.loc57_5.1 [symbolic = %assoc1 (constants.%assoc1.3efd77.2)] +// CHECK:STDOUT: %impl.elem1.loc57_5.1: @OrderedWith.loc54.%.loc57_5.2 (%.02db) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc57_5.2 (constants.%impl.elem1)] // CHECK:STDOUT: %bound_method.loc57_5.1: = bound_method %x.ref.loc57, %impl.elem1.loc57_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc57_5.1: = specific_impl_function %impl.elem1.loc57_5.1, @OrderedWith.WithSelf.LessOrEquivalent(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc57_5.2 (constants.%specific_impl_fn.65b)] +// CHECK:STDOUT: %specific_impl_fn.loc57_5.1: = specific_impl_function %impl.elem1.loc57_5.1, @OrderedWith.WithSelf.LessOrEquivalent(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc57_5.2 (constants.%specific_impl_fn.001)] // CHECK:STDOUT: %bound_method.loc57_5.2: = bound_method %x.ref.loc57, %specific_impl_fn.loc57_5.1 // CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.call: init bool = call %bound_method.loc57_5.2(%x.ref.loc57, %y.ref.loc57) // CHECK:STDOUT: %x.ref.loc58: @OrderedWith.loc54.%T.as_type.loc54_54.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc58: @OrderedWith.loc54.%U.loc54_17.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %OrderedWith.type.loc58: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc54_48.1 (constants.%OrderedWith.type.73dab8.2)] -// CHECK:STDOUT: %.loc58_5.1: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = specific_constant imports.%Core.import_ref.01d, @OrderedWith.WithSelf(constants.%U, constants.%Self.d014af.1) [symbolic = %assoc2 (constants.%assoc2.3caaa9.2)] -// CHECK:STDOUT: %Greater.ref: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = name_ref Greater, %.loc58_5.1 [symbolic = %assoc2 (constants.%assoc2.3caaa9.2)] -// CHECK:STDOUT: %impl.elem2.loc58_5.1: @OrderedWith.loc54.%.loc58_5.2 (%.994) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc58_5.2 (constants.%impl.elem2)] +// CHECK:STDOUT: %OrderedWith.type.loc58: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc54_48.1 (constants.%OrderedWith.type.32ae87.2)] +// CHECK:STDOUT: %.loc58_5.1: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = specific_constant imports.%Core.import_ref.d4f, @OrderedWith.WithSelf(constants.%U, constants.%Self.7df555.1) [symbolic = %assoc2 (constants.%assoc2.48eff0.2)] +// CHECK:STDOUT: %Greater.ref: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = name_ref Greater, %.loc58_5.1 [symbolic = %assoc2 (constants.%assoc2.48eff0.2)] +// CHECK:STDOUT: %impl.elem2.loc58_5.1: @OrderedWith.loc54.%.loc58_5.2 (%.666) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc58_5.2 (constants.%impl.elem2)] // CHECK:STDOUT: %bound_method.loc58_5.1: = bound_method %x.ref.loc58, %impl.elem2.loc58_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc58_5.1: = specific_impl_function %impl.elem2.loc58_5.1, @OrderedWith.WithSelf.Greater(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc58_5.2 (constants.%specific_impl_fn.6dc)] +// CHECK:STDOUT: %specific_impl_fn.loc58_5.1: = specific_impl_function %impl.elem2.loc58_5.1, @OrderedWith.WithSelf.Greater(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc58_5.2 (constants.%specific_impl_fn.735)] // CHECK:STDOUT: %bound_method.loc58_5.2: = bound_method %x.ref.loc58, %specific_impl_fn.loc58_5.1 // CHECK:STDOUT: %OrderedWith.WithSelf.Greater.call: init bool = call %bound_method.loc58_5.2(%x.ref.loc58, %y.ref.loc58) // CHECK:STDOUT: %x.ref.loc59: @OrderedWith.loc54.%T.as_type.loc54_54.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc59: @OrderedWith.loc54.%U.loc54_17.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %OrderedWith.type.loc59: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc54_48.1 (constants.%OrderedWith.type.73dab8.2)] -// CHECK:STDOUT: %.loc59_5.1: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = specific_constant imports.%Core.import_ref.569, @OrderedWith.WithSelf(constants.%U, constants.%Self.d014af.1) [symbolic = %assoc3 (constants.%assoc3.4eb879.2)] -// CHECK:STDOUT: %GreaterOrEquivalent.ref: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = name_ref GreaterOrEquivalent, %.loc59_5.1 [symbolic = %assoc3 (constants.%assoc3.4eb879.2)] -// CHECK:STDOUT: %impl.elem3.loc59_5.1: @OrderedWith.loc54.%.loc59_5.2 (%.eca) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc59_5.2 (constants.%impl.elem3)] +// CHECK:STDOUT: %OrderedWith.type.loc59: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc54_48.1 (constants.%OrderedWith.type.32ae87.2)] +// CHECK:STDOUT: %.loc59_5.1: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = specific_constant imports.%Core.import_ref.b87, @OrderedWith.WithSelf(constants.%U, constants.%Self.7df555.1) [symbolic = %assoc3 (constants.%assoc3.5d53f7.2)] +// CHECK:STDOUT: %GreaterOrEquivalent.ref: @OrderedWith.loc54.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = name_ref GreaterOrEquivalent, %.loc59_5.1 [symbolic = %assoc3 (constants.%assoc3.5d53f7.2)] +// CHECK:STDOUT: %impl.elem3.loc59_5.1: @OrderedWith.loc54.%.loc59_5.2 (%.73b) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc59_5.2 (constants.%impl.elem3)] // CHECK:STDOUT: %bound_method.loc59_5.1: = bound_method %x.ref.loc59, %impl.elem3.loc59_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc59_5.1: = specific_impl_function %impl.elem3.loc59_5.1, @OrderedWith.WithSelf.GreaterOrEquivalent(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc59_5.2 (constants.%specific_impl_fn.f67)] +// CHECK:STDOUT: %specific_impl_fn.loc59_5.1: = specific_impl_function %impl.elem3.loc59_5.1, @OrderedWith.WithSelf.GreaterOrEquivalent(constants.%U, constants.%T) [symbolic = %specific_impl_fn.loc59_5.2 (constants.%specific_impl_fn.418)] // CHECK:STDOUT: %bound_method.loc59_5.2: = bound_method %x.ref.loc59, %specific_impl_fn.loc59_5.1 // CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.call: init bool = call %bound_method.loc59_5.2(%x.ref.loc59, %y.ref.loc59) // CHECK:STDOUT: @@ -894,195 +894,195 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: // CHECK:STDOUT: specific @OrderedWith.loc54(constants.%U, constants.%T) { // CHECK:STDOUT: %U.loc54_17.1 => constants.%U -// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.73dab8.2 +// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.32ae87.2 // CHECK:STDOUT: %T.loc54_27.1 => constants.%T -// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.10d +// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.ebc // CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.05039a.2 +// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.f6ec4f.2 // CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.51d1c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%B1, constants.%OrderedWith.facet.bb0) { +// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%B1, constants.%OrderedWith.facet.370) { // CHECK:STDOUT: %U.loc54_17.1 => constants.%B1 -// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.843 -// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.bb0 -// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.52e +// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.4d9 +// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.370 +// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.53b // CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%A1 -// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.c8a -// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.e62 +// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.3b4 +// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.5b2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc54_52 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc54_58 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.c30 -// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.d9f -// CHECK:STDOUT: %assoc0 => constants.%assoc0.f28 -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.066 -// CHECK:STDOUT: %.loc56_5.2 => constants.%.dba -// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.6de +// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.f5b +// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.993 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.9a4 +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.bf4 +// CHECK:STDOUT: %.loc56_5.2 => constants.%.e3b +// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.1d9 // CHECK:STDOUT: %impl.elem0.loc56_5.2 => constants.%A1.Less // CHECK:STDOUT: %specific_impl_fn.loc56_5.2 => constants.%A1.Less -// CHECK:STDOUT: %assoc1 => constants.%assoc1.b17 -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.a39 -// CHECK:STDOUT: %.loc57_5.2 => constants.%.0ef +// CHECK:STDOUT: %assoc1 => constants.%assoc1.bc4 +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.8d0 +// CHECK:STDOUT: %.loc57_5.2 => constants.%.736 // CHECK:STDOUT: %impl.elem1.loc57_5.2 => constants.%A1.LessOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc57_5.2 => constants.%A1.LessOrEquivalent -// CHECK:STDOUT: %assoc2 => constants.%assoc2.9ca -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.d68 -// CHECK:STDOUT: %.loc58_5.2 => constants.%.063 +// CHECK:STDOUT: %assoc2 => constants.%assoc2.da5 +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.130 +// CHECK:STDOUT: %.loc58_5.2 => constants.%.b93 // CHECK:STDOUT: %impl.elem2.loc58_5.2 => constants.%A1.Greater // CHECK:STDOUT: %specific_impl_fn.loc58_5.2 => constants.%A1.Greater -// CHECK:STDOUT: %assoc3 => constants.%assoc3.ac2 -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.90d -// CHECK:STDOUT: %.loc59_5.2 => constants.%.3a8 +// CHECK:STDOUT: %assoc3 => constants.%assoc3.17b +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.1e3 +// CHECK:STDOUT: %.loc59_5.2 => constants.%.ccd // CHECK:STDOUT: %impl.elem3.loc59_5.2 => constants.%A1.GreaterOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc59_5.2 => constants.%A1.GreaterOrEquivalent // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%A1, constants.%OrderedWith.facet.15d) { +// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%A1, constants.%OrderedWith.facet.288) { // CHECK:STDOUT: %U.loc54_17.1 => constants.%A1 -// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.35b -// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.15d -// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.604 +// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.fe8 +// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.288 +// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.280 // CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%B1 -// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.e62 -// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.c8a +// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.5b2 +// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.3b4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc54_52 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc54_58 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.833 -// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.555 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.15b -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.bac -// CHECK:STDOUT: %.loc56_5.2 => constants.%.7b9 -// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.ffd +// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.9ae +// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.31d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.a34 +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.d52 +// CHECK:STDOUT: %.loc56_5.2 => constants.%.367 +// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.d3a // CHECK:STDOUT: %impl.elem0.loc56_5.2 => constants.%B1.Less // CHECK:STDOUT: %specific_impl_fn.loc56_5.2 => constants.%B1.Less -// CHECK:STDOUT: %assoc1 => constants.%assoc1.ce2 -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.263 -// CHECK:STDOUT: %.loc57_5.2 => constants.%.107 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.27b +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.f69 +// CHECK:STDOUT: %.loc57_5.2 => constants.%.0f8 // CHECK:STDOUT: %impl.elem1.loc57_5.2 => constants.%B1.LessOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc57_5.2 => constants.%B1.LessOrEquivalent -// CHECK:STDOUT: %assoc2 => constants.%assoc2.092 -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.341 -// CHECK:STDOUT: %.loc58_5.2 => constants.%.a86 +// CHECK:STDOUT: %assoc2 => constants.%assoc2.b68 +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.f1e +// CHECK:STDOUT: %.loc58_5.2 => constants.%.2f6 // CHECK:STDOUT: %impl.elem2.loc58_5.2 => constants.%B1.Greater // CHECK:STDOUT: %specific_impl_fn.loc58_5.2 => constants.%B1.Greater -// CHECK:STDOUT: %assoc3 => constants.%assoc3.fc9 -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.9dd -// CHECK:STDOUT: %.loc59_5.2 => constants.%.e0e +// CHECK:STDOUT: %assoc3 => constants.%assoc3.833 +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.f75 +// CHECK:STDOUT: %.loc59_5.2 => constants.%.3fa // CHECK:STDOUT: %impl.elem3.loc59_5.2 => constants.%B1.GreaterOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc59_5.2 => constants.%B1.GreaterOrEquivalent // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%A2, constants.%OrderedWith.facet.dfe) { +// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%A2, constants.%OrderedWith.facet.2ea) { // CHECK:STDOUT: %U.loc54_17.1 => constants.%A2 -// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.58a -// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.dfe -// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.2c4 +// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.9ee +// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.2ea +// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.a96 // CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%B2 -// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.fab -// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.1e3 +// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.d1e +// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.9f0 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc54_52 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc54_58 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.b32 -// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.2cf -// CHECK:STDOUT: %assoc0 => constants.%assoc0.d7b -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.242 -// CHECK:STDOUT: %.loc56_5.2 => constants.%.819 -// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.248 +// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.674 +// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.941 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.73a +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.b7e +// CHECK:STDOUT: %.loc56_5.2 => constants.%.02d8 +// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.bbd // CHECK:STDOUT: %impl.elem0.loc56_5.2 => constants.%B2.Less // CHECK:STDOUT: %specific_impl_fn.loc56_5.2 => constants.%B2.Less -// CHECK:STDOUT: %assoc1 => constants.%assoc1.c2a -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.bb1 -// CHECK:STDOUT: %.loc57_5.2 => constants.%.984 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.f9c +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.1dc +// CHECK:STDOUT: %.loc57_5.2 => constants.%.fd7 // CHECK:STDOUT: %impl.elem1.loc57_5.2 => constants.%B2.LessOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc57_5.2 => constants.%B2.LessOrEquivalent -// CHECK:STDOUT: %assoc2 => constants.%assoc2.20c -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.051 -// CHECK:STDOUT: %.loc58_5.2 => constants.%.bc8 +// CHECK:STDOUT: %assoc2 => constants.%assoc2.f6a +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.693 +// CHECK:STDOUT: %.loc58_5.2 => constants.%.380 // CHECK:STDOUT: %impl.elem2.loc58_5.2 => constants.%B2.Greater // CHECK:STDOUT: %specific_impl_fn.loc58_5.2 => constants.%B2.Greater -// CHECK:STDOUT: %assoc3 => constants.%assoc3.c0a -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.232 -// CHECK:STDOUT: %.loc59_5.2 => constants.%.9b5 +// CHECK:STDOUT: %assoc3 => constants.%assoc3.210 +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.906 +// CHECK:STDOUT: %.loc59_5.2 => constants.%.b8f // CHECK:STDOUT: %impl.elem3.loc59_5.2 => constants.%B2.GreaterOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc59_5.2 => constants.%B2.GreaterOrEquivalent // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%B3, constants.%OrderedWith.facet.647) { +// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%B3, constants.%OrderedWith.facet.d6b) { // CHECK:STDOUT: %U.loc54_17.1 => constants.%B3 -// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.d37 -// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.647 -// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.f72 +// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.cc8 +// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.d6b +// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.edf // CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%A3 -// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.ada -// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.a20 +// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.7fe +// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.2dd // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc54_52 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc54_58 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.b8b -// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.3d5 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.7d9 -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.ab2 -// CHECK:STDOUT: %.loc56_5.2 => constants.%.06f -// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.eb5 +// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.672 +// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.45f +// CHECK:STDOUT: %assoc0 => constants.%assoc0.2c4 +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.c08 +// CHECK:STDOUT: %.loc56_5.2 => constants.%.a95 +// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.773 // CHECK:STDOUT: %impl.elem0.loc56_5.2 => constants.%A3.Less // CHECK:STDOUT: %specific_impl_fn.loc56_5.2 => constants.%A3.Less -// CHECK:STDOUT: %assoc1 => constants.%assoc1.f64 -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.750 -// CHECK:STDOUT: %.loc57_5.2 => constants.%.914 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.219 +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.f02 +// CHECK:STDOUT: %.loc57_5.2 => constants.%.fda // CHECK:STDOUT: %impl.elem1.loc57_5.2 => constants.%LessOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc57_5.2 => constants.%LessOrEquivalent -// CHECK:STDOUT: %assoc2 => constants.%assoc2.060 -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.111 -// CHECK:STDOUT: %.loc58_5.2 => constants.%.a18 +// CHECK:STDOUT: %assoc2 => constants.%assoc2.731 +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.d28 +// CHECK:STDOUT: %.loc58_5.2 => constants.%.24d // CHECK:STDOUT: %impl.elem2.loc58_5.2 => constants.%A3.Greater // CHECK:STDOUT: %specific_impl_fn.loc58_5.2 => constants.%A3.Greater -// CHECK:STDOUT: %assoc3 => constants.%assoc3.3e3 -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.a5d -// CHECK:STDOUT: %.loc59_5.2 => constants.%.92d +// CHECK:STDOUT: %assoc3 => constants.%assoc3.6c4 +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.5ab +// CHECK:STDOUT: %.loc59_5.2 => constants.%.898 // CHECK:STDOUT: %impl.elem3.loc59_5.2 => constants.%GreaterOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc59_5.2 => constants.%GreaterOrEquivalent // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%A3, constants.%OrderedWith.facet.79f) { +// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%A3, constants.%OrderedWith.facet.52f) { // CHECK:STDOUT: %U.loc54_17.1 => constants.%A3 -// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.895 -// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.79f -// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.970 +// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.30a +// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.52f +// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.5db // CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%B3 -// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.a20 -// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.ada +// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.2dd +// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.7fe // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc54_52 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc54_58 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.b69 -// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.1bb -// CHECK:STDOUT: %assoc0 => constants.%assoc0.19a -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.e74 -// CHECK:STDOUT: %.loc56_5.2 => constants.%.4be -// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.63b +// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.04a +// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.18e +// CHECK:STDOUT: %assoc0 => constants.%assoc0.d97 +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.9d3 +// CHECK:STDOUT: %.loc56_5.2 => constants.%.fb6 +// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.870 // CHECK:STDOUT: %impl.elem0.loc56_5.2 => constants.%Less // CHECK:STDOUT: %specific_impl_fn.loc56_5.2 => constants.%Less -// CHECK:STDOUT: %assoc1 => constants.%assoc1.573 -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.2de -// CHECK:STDOUT: %.loc57_5.2 => constants.%.79c +// CHECK:STDOUT: %assoc1 => constants.%assoc1.835 +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.ff1 +// CHECK:STDOUT: %.loc57_5.2 => constants.%.bb5 // CHECK:STDOUT: %impl.elem1.loc57_5.2 => constants.%B3.LessOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc57_5.2 => constants.%B3.LessOrEquivalent -// CHECK:STDOUT: %assoc2 => constants.%assoc2.a29 -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.6fd -// CHECK:STDOUT: %.loc58_5.2 => constants.%.d57 +// CHECK:STDOUT: %assoc2 => constants.%assoc2.27d +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.d71 +// CHECK:STDOUT: %.loc58_5.2 => constants.%.51d // CHECK:STDOUT: %impl.elem2.loc58_5.2 => constants.%Greater // CHECK:STDOUT: %specific_impl_fn.loc58_5.2 => constants.%Greater -// CHECK:STDOUT: %assoc3 => constants.%assoc3.c40 -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.88b -// CHECK:STDOUT: %.loc59_5.2 => constants.%.cd5 +// CHECK:STDOUT: %assoc3 => constants.%assoc3.6a9 +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.ec1 +// CHECK:STDOUT: %.loc59_5.2 => constants.%.4c7 // CHECK:STDOUT: %impl.elem3.loc59_5.2 => constants.%B3.GreaterOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc59_5.2 => constants.%B3.GreaterOrEquivalent // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/operators/spaceship.carbon b/toolchain/check/testdata/interop/cpp/operators/spaceship.carbon index 5c3270bac00e..79da4c897051 100644 --- a/toolchain/check/testdata/interop/cpp/operators/spaceship.carbon +++ b/toolchain/check/testdata/interop/cpp/operators/spaceship.carbon @@ -231,319 +231,319 @@ fn Test(returns_strong_ordering: Cpp.ReturnsStrongOrdering) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %Other: type = symbolic_binding Other, 0 [symbolic] -// CHECK:STDOUT: %EqWith.type.e412df.1: type = facet_type <@EqWith.1, @EqWith.1(%Other)> [symbolic] -// CHECK:STDOUT: %Self.1e4d80.1: %EqWith.type.e412df.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %EqWith.assoc_type.27e9f5.1: type = assoc_entity_type @EqWith.1, @EqWith.1(%Other) [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.a34bef.1: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Other, %Self.1e4d80.1) [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.34d150.1: %EqWith.WithSelf.NotEqual.type.a34bef.1 = struct_value () [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.28b02d.1: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Other, %Self.1e4d80.1) [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.6ee1cd.1: %EqWith.WithSelf.Equal.type.28b02d.1 = struct_value () [symbolic] -// CHECK:STDOUT: %EqWith.type.e412df.2: type = facet_type <@EqWith.1, @EqWith.1(%U)> [symbolic] -// CHECK:STDOUT: %pattern_type.243: type = pattern_type %EqWith.type.e412df.2 [symbolic] -// CHECK:STDOUT: %T.1e4: %EqWith.type.e412df.2 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %EqWith.assoc_type.27e9f5.2: type = assoc_entity_type @EqWith.1, @EqWith.1(%U) [symbolic] -// CHECK:STDOUT: %assoc0.04df8c.2: %EqWith.assoc_type.27e9f5.2 = assoc_entity element0, imports.%Core.import_ref.eea [symbolic] -// CHECK:STDOUT: %assoc1.47b841.2: %EqWith.assoc_type.27e9f5.2 = assoc_entity element1, imports.%Core.import_ref.228 [symbolic] -// CHECK:STDOUT: %T.as_type.cf2: type = facet_access_type %T.1e4 [symbolic] -// CHECK:STDOUT: %pattern_type.479039.2: type = pattern_type %T.as_type.cf2 [symbolic] +// CHECK:STDOUT: %EqWith.type.98ea86.1: type = facet_type <@EqWith.1, @EqWith.1(%Other)> [symbolic] +// CHECK:STDOUT: %Self.d94ae0.1: %EqWith.type.98ea86.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %EqWith.assoc_type.85b122.1: type = assoc_entity_type @EqWith.1, @EqWith.1(%Other) [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.c5b45a.1: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Other, %Self.d94ae0.1) [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.b4230d.1: %EqWith.WithSelf.NotEqual.type.c5b45a.1 = struct_value () [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.b82ec7.1: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Other, %Self.d94ae0.1) [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.ae3c3e.1: %EqWith.WithSelf.Equal.type.b82ec7.1 = struct_value () [symbolic] +// CHECK:STDOUT: %EqWith.type.98ea86.2: type = facet_type <@EqWith.1, @EqWith.1(%U)> [symbolic] +// CHECK:STDOUT: %pattern_type.3d4: type = pattern_type %EqWith.type.98ea86.2 [symbolic] +// CHECK:STDOUT: %T.d94: %EqWith.type.98ea86.2 = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %EqWith.assoc_type.85b122.2: type = assoc_entity_type @EqWith.1, @EqWith.1(%U) [symbolic] +// CHECK:STDOUT: %assoc0.eee873.2: %EqWith.assoc_type.85b122.2 = assoc_entity element0, imports.%Core.import_ref.5ba [symbolic] +// CHECK:STDOUT: %assoc1.0ffc88.2: %EqWith.assoc_type.85b122.2 = assoc_entity element1, imports.%Core.import_ref.03f [symbolic] +// CHECK:STDOUT: %T.as_type.93d: type = facet_access_type %T.d94 [symbolic] +// CHECK:STDOUT: %pattern_type.e6374a.2: type = pattern_type %T.as_type.93d [symbolic] // CHECK:STDOUT: %pattern_type.51d1c4.2: type = pattern_type %U [symbolic] -// CHECK:STDOUT: %require_complete.1c9: = require_complete_type %EqWith.type.e412df.2 [symbolic] -// CHECK:STDOUT: %assoc0.5b6: %EqWith.assoc_type.27e9f5.1 = assoc_entity element0, imports.%Core.import_ref.c77 [symbolic] -// CHECK:STDOUT: %EqWith.lookup_impl_witness: = lookup_impl_witness %T.1e4, @EqWith.1, @EqWith.1(%U) [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.28b02d.3: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%U, %T.1e4) [symbolic] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.a34bef.3: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%U, %T.1e4) [symbolic] -// CHECK:STDOUT: %.e7e: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.28b02d.3, %T.1e4 [symbolic] -// CHECK:STDOUT: %impl.elem0.c07: %.e7e = impl_witness_access %EqWith.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.ba9: = specific_impl_function %impl.elem0.c07, @EqWith.WithSelf.Equal(%U, %T.1e4) [symbolic] -// CHECK:STDOUT: %assoc1.491: %EqWith.assoc_type.27e9f5.1 = assoc_entity element1, imports.%Core.import_ref.c36 [symbolic] -// CHECK:STDOUT: %.a13: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.a34bef.3, %T.1e4 [symbolic] -// CHECK:STDOUT: %impl.elem1.ec1: %.a13 = impl_witness_access %EqWith.lookup_impl_witness, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a6f: = specific_impl_function %impl.elem1.ec1, @EqWith.WithSelf.NotEqual(%U, %T.1e4) [symbolic] -// CHECK:STDOUT: %OrderedWith.type.73dab8.1: type = facet_type <@OrderedWith.1, @OrderedWith.1(%Other)> [symbolic] -// CHECK:STDOUT: %Self.d014af.1: %OrderedWith.type.73dab8.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %OrderedWith.assoc_type.2fabd7.1: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%Other) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.1: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Other, %Self.d014af.1) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.38d1a4.1: %OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.1 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.9defd1.1: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Other, %Self.d014af.1) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.984598.1: %OrderedWith.WithSelf.Greater.type.9defd1.1 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.1: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Other, %Self.d014af.1) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.c2ac22.1: %OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.1 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.687390.1: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Other, %Self.d014af.1) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.4a995a.1: %OrderedWith.WithSelf.Less.type.687390.1 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.type.73dab8.2: type = facet_type <@OrderedWith.1, @OrderedWith.1(%U)> [symbolic] -// CHECK:STDOUT: %pattern_type.10d: type = pattern_type %OrderedWith.type.73dab8.2 [symbolic] -// CHECK:STDOUT: %T.d01: %OrderedWith.type.73dab8.2 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %OrderedWith.assoc_type.2fabd7.2: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%U) [symbolic] -// CHECK:STDOUT: %assoc0.7dbd55.2: %OrderedWith.assoc_type.2fabd7.2 = assoc_entity element0, imports.%Core.import_ref.5cd [symbolic] -// CHECK:STDOUT: %assoc1.54de85.2: %OrderedWith.assoc_type.2fabd7.2 = assoc_entity element1, imports.%Core.import_ref.fb6 [symbolic] -// CHECK:STDOUT: %assoc2.3caaa9.2: %OrderedWith.assoc_type.2fabd7.2 = assoc_entity element2, imports.%Core.import_ref.32f [symbolic] -// CHECK:STDOUT: %assoc3.4eb879.2: %OrderedWith.assoc_type.2fabd7.2 = assoc_entity element3, imports.%Core.import_ref.2d8 [symbolic] -// CHECK:STDOUT: %T.as_type.1cd: type = facet_access_type %T.d01 [symbolic] -// CHECK:STDOUT: %pattern_type.05039a.2: type = pattern_type %T.as_type.1cd [symbolic] -// CHECK:STDOUT: %require_complete.a45: = require_complete_type %OrderedWith.type.73dab8.2 [symbolic] -// CHECK:STDOUT: %assoc0.3ff: %OrderedWith.assoc_type.2fabd7.1 = assoc_entity element0, imports.%Core.import_ref.c33 [symbolic] -// CHECK:STDOUT: %OrderedWith.lookup_impl_witness: = lookup_impl_witness %T.d01, @OrderedWith.1, @OrderedWith.1(%U) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.687390.3: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%U, %T.d01) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.3: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%U, %T.d01) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.9defd1.3: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%U, %T.d01) [symbolic] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.3: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%U, %T.d01) [symbolic] -// CHECK:STDOUT: %.cb4: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.687390.3, %T.d01 [symbolic] -// CHECK:STDOUT: %impl.elem0.b31: %.cb4 = impl_witness_access %OrderedWith.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.c89: = specific_impl_function %impl.elem0.b31, @OrderedWith.WithSelf.Less(%U, %T.d01) [symbolic] -// CHECK:STDOUT: %assoc1.760: %OrderedWith.assoc_type.2fabd7.1 = assoc_entity element1, imports.%Core.import_ref.79a [symbolic] -// CHECK:STDOUT: %.ac4: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.3, %T.d01 [symbolic] -// CHECK:STDOUT: %impl.elem1.939: %.ac4 = impl_witness_access %OrderedWith.lookup_impl_witness, element1 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.65b: = specific_impl_function %impl.elem1.939, @OrderedWith.WithSelf.LessOrEquivalent(%U, %T.d01) [symbolic] -// CHECK:STDOUT: %assoc2.897: %OrderedWith.assoc_type.2fabd7.1 = assoc_entity element2, imports.%Core.import_ref.ea2 [symbolic] -// CHECK:STDOUT: %.994: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.9defd1.3, %T.d01 [symbolic] -// CHECK:STDOUT: %impl.elem2: %.994 = impl_witness_access %OrderedWith.lookup_impl_witness, element2 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.6dc: = specific_impl_function %impl.elem2, @OrderedWith.WithSelf.Greater(%U, %T.d01) [symbolic] -// CHECK:STDOUT: %assoc3.8bc: %OrderedWith.assoc_type.2fabd7.1 = assoc_entity element3, imports.%Core.import_ref.b4f [symbolic] -// CHECK:STDOUT: %.eca: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.3, %T.d01 [symbolic] -// CHECK:STDOUT: %impl.elem3: %.eca = impl_witness_access %OrderedWith.lookup_impl_witness, element3 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.f67: = specific_impl_function %impl.elem3, @OrderedWith.WithSelf.GreaterOrEquivalent(%U, %T.d01) [symbolic] +// CHECK:STDOUT: %require_complete.fb5: = require_complete_type %EqWith.type.98ea86.2 [symbolic] +// CHECK:STDOUT: %assoc0.d00: %EqWith.assoc_type.85b122.1 = assoc_entity element0, imports.%Core.import_ref.2e5 [symbolic] +// CHECK:STDOUT: %EqWith.lookup_impl_witness: = lookup_impl_witness %T.d94, @EqWith.1, @EqWith.1(%U) [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.b82ec7.3: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%U, %T.d94) [symbolic] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.c5b45a.3: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%U, %T.d94) [symbolic] +// CHECK:STDOUT: %.74c: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.b82ec7.3, %T.d94 [symbolic] +// CHECK:STDOUT: %impl.elem0.cab: %.74c = impl_witness_access %EqWith.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.67a: = specific_impl_function %impl.elem0.cab, @EqWith.WithSelf.Equal(%U, %T.d94) [symbolic] +// CHECK:STDOUT: %assoc1.d80: %EqWith.assoc_type.85b122.1 = assoc_entity element1, imports.%Core.import_ref.b78 [symbolic] +// CHECK:STDOUT: %.8ed: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.c5b45a.3, %T.d94 [symbolic] +// CHECK:STDOUT: %impl.elem1.dab: %.8ed = impl_witness_access %EqWith.lookup_impl_witness, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.81f: = specific_impl_function %impl.elem1.dab, @EqWith.WithSelf.NotEqual(%U, %T.d94) [symbolic] +// CHECK:STDOUT: %OrderedWith.type.32ae87.1: type = facet_type <@OrderedWith.1, @OrderedWith.1(%Other)> [symbolic] +// CHECK:STDOUT: %Self.7df555.1: %OrderedWith.type.32ae87.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %OrderedWith.assoc_type.1d2e6f.1: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%Other) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.1: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Other, %Self.7df555.1) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.937fbb.1: %OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.1 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.9ce25c.1: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Other, %Self.7df555.1) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.c0b4fa.1: %OrderedWith.WithSelf.Greater.type.9ce25c.1 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.13d375.1: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Other, %Self.7df555.1) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.e31723.1: %OrderedWith.WithSelf.LessOrEquivalent.type.13d375.1 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.b87f4b.1: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Other, %Self.7df555.1) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.9e1f56.1: %OrderedWith.WithSelf.Less.type.b87f4b.1 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.type.32ae87.2: type = facet_type <@OrderedWith.1, @OrderedWith.1(%U)> [symbolic] +// CHECK:STDOUT: %pattern_type.ebc: type = pattern_type %OrderedWith.type.32ae87.2 [symbolic] +// CHECK:STDOUT: %T.7df: %OrderedWith.type.32ae87.2 = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %OrderedWith.assoc_type.1d2e6f.2: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%U) [symbolic] +// CHECK:STDOUT: %assoc0.c0023b.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element0, imports.%Core.import_ref.e7a [symbolic] +// CHECK:STDOUT: %assoc1.3efd77.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element1, imports.%Core.import_ref.3f7 [symbolic] +// CHECK:STDOUT: %assoc2.48eff0.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element2, imports.%Core.import_ref.385 [symbolic] +// CHECK:STDOUT: %assoc3.5d53f7.2: %OrderedWith.assoc_type.1d2e6f.2 = assoc_entity element3, imports.%Core.import_ref.39b [symbolic] +// CHECK:STDOUT: %T.as_type.262: type = facet_access_type %T.7df [symbolic] +// CHECK:STDOUT: %pattern_type.f6ec4f.2: type = pattern_type %T.as_type.262 [symbolic] +// CHECK:STDOUT: %require_complete.3c0: = require_complete_type %OrderedWith.type.32ae87.2 [symbolic] +// CHECK:STDOUT: %assoc0.13c: %OrderedWith.assoc_type.1d2e6f.1 = assoc_entity element0, imports.%Core.import_ref.447 [symbolic] +// CHECK:STDOUT: %OrderedWith.lookup_impl_witness: = lookup_impl_witness %T.7df, @OrderedWith.1, @OrderedWith.1(%U) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.b87f4b.3: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%U, %T.7df) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.13d375.3: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%U, %T.7df) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.9ce25c.3: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%U, %T.7df) [symbolic] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.3: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%U, %T.7df) [symbolic] +// CHECK:STDOUT: %.6ec: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.b87f4b.3, %T.7df [symbolic] +// CHECK:STDOUT: %impl.elem0.6b1: %.6ec = impl_witness_access %OrderedWith.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.527: = specific_impl_function %impl.elem0.6b1, @OrderedWith.WithSelf.Less(%U, %T.7df) [symbolic] +// CHECK:STDOUT: %assoc1.ee7: %OrderedWith.assoc_type.1d2e6f.1 = assoc_entity element1, imports.%Core.import_ref.efc [symbolic] +// CHECK:STDOUT: %.02d: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.13d375.3, %T.7df [symbolic] +// CHECK:STDOUT: %impl.elem1.ff9: %.02d = impl_witness_access %OrderedWith.lookup_impl_witness, element1 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.001: = specific_impl_function %impl.elem1.ff9, @OrderedWith.WithSelf.LessOrEquivalent(%U, %T.7df) [symbolic] +// CHECK:STDOUT: %assoc2.131: %OrderedWith.assoc_type.1d2e6f.1 = assoc_entity element2, imports.%Core.import_ref.e60 [symbolic] +// CHECK:STDOUT: %.666: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.9ce25c.3, %T.7df [symbolic] +// CHECK:STDOUT: %impl.elem2: %.666 = impl_witness_access %OrderedWith.lookup_impl_witness, element2 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.735: = specific_impl_function %impl.elem2, @OrderedWith.WithSelf.Greater(%U, %T.7df) [symbolic] +// CHECK:STDOUT: %assoc3.18a: %OrderedWith.assoc_type.1d2e6f.1 = assoc_entity element3, imports.%Core.import_ref.6c6 [symbolic] +// CHECK:STDOUT: %.73b: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.3, %T.7df [symbolic] +// CHECK:STDOUT: %impl.elem3: %.73b = impl_witness_access %OrderedWith.lookup_impl_witness, element3 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.418: = specific_impl_function %impl.elem3, @OrderedWith.WithSelf.GreaterOrEquivalent(%U, %T.7df) [symbolic] // CHECK:STDOUT: %DefaultSpaceshipOnly: type = class_type @DefaultSpaceshipOnly [concrete] -// CHECK:STDOUT: %pattern_type.cce: type = pattern_type %DefaultSpaceshipOnly [concrete] +// CHECK:STDOUT: %pattern_type.80f: type = pattern_type %DefaultSpaceshipOnly [concrete] // CHECK:STDOUT: %ReturnsStrongOrdering: type = class_type @ReturnsStrongOrdering [concrete] -// CHECK:STDOUT: %pattern_type.a93: type = pattern_type %ReturnsStrongOrdering [concrete] +// CHECK:STDOUT: %pattern_type.37f: type = pattern_type %ReturnsStrongOrdering [concrete] // CHECK:STDOUT: %ReturnsPartialOrdering: type = class_type @ReturnsPartialOrdering [concrete] -// CHECK:STDOUT: %pattern_type.dbf: type = pattern_type %ReturnsPartialOrdering [concrete] +// CHECK:STDOUT: %pattern_type.9ae: type = pattern_type %ReturnsPartialOrdering [concrete] // CHECK:STDOUT: %CrossTypeLhs: type = class_type @CrossTypeLhs [concrete] -// CHECK:STDOUT: %pattern_type.f3d: type = pattern_type %CrossTypeLhs [concrete] +// CHECK:STDOUT: %pattern_type.eb5: type = pattern_type %CrossTypeLhs [concrete] // CHECK:STDOUT: %CrossTypeRhs: type = class_type @CrossTypeRhs [concrete] -// CHECK:STDOUT: %pattern_type.bd1: type = pattern_type %CrossTypeRhs [concrete] -// CHECK:STDOUT: %EqWith.type.f5d: type = facet_type <@EqWith.1, @EqWith.1(%DefaultSpaceshipOnly)> [concrete] -// CHECK:STDOUT: %pattern_type.2b5: type = pattern_type %EqWith.type.f5d [concrete] -// CHECK:STDOUT: %OrderedWith.type.9ef: type = facet_type <@OrderedWith.1, @OrderedWith.1(%DefaultSpaceshipOnly)> [concrete] -// CHECK:STDOUT: %pattern_type.520: type = pattern_type %OrderedWith.type.9ef [concrete] -// CHECK:STDOUT: %OrderedWith.type.f1a: type = facet_type <@OrderedWith.1, @OrderedWith.1(%ReturnsStrongOrdering)> [concrete] -// CHECK:STDOUT: %pattern_type.8f0: type = pattern_type %OrderedWith.type.f1a [concrete] -// CHECK:STDOUT: %OrderedWith.type.30a: type = facet_type <@OrderedWith.1, @OrderedWith.1(%ReturnsPartialOrdering)> [concrete] -// CHECK:STDOUT: %pattern_type.86c: type = pattern_type %OrderedWith.type.30a [concrete] -// CHECK:STDOUT: %OrderedWith.type.ca0: type = facet_type <@OrderedWith.1, @OrderedWith.1(%CrossTypeRhs)> [concrete] -// CHECK:STDOUT: %pattern_type.189: type = pattern_type %OrderedWith.type.ca0 [concrete] -// CHECK:STDOUT: %OrderedWith.type.e89: type = facet_type <@OrderedWith.1, @OrderedWith.1(%CrossTypeLhs)> [concrete] -// CHECK:STDOUT: %pattern_type.307: type = pattern_type %OrderedWith.type.e89 [concrete] +// CHECK:STDOUT: %pattern_type.aac: type = pattern_type %CrossTypeRhs [concrete] +// CHECK:STDOUT: %EqWith.type.bf2: type = facet_type <@EqWith.1, @EqWith.1(%DefaultSpaceshipOnly)> [concrete] +// CHECK:STDOUT: %pattern_type.062: type = pattern_type %EqWith.type.bf2 [concrete] +// CHECK:STDOUT: %OrderedWith.type.33f: type = facet_type <@OrderedWith.1, @OrderedWith.1(%DefaultSpaceshipOnly)> [concrete] +// CHECK:STDOUT: %pattern_type.7f2: type = pattern_type %OrderedWith.type.33f [concrete] +// CHECK:STDOUT: %OrderedWith.type.0fb: type = facet_type <@OrderedWith.1, @OrderedWith.1(%ReturnsStrongOrdering)> [concrete] +// CHECK:STDOUT: %pattern_type.623: type = pattern_type %OrderedWith.type.0fb [concrete] +// CHECK:STDOUT: %OrderedWith.type.5f1: type = facet_type <@OrderedWith.1, @OrderedWith.1(%ReturnsPartialOrdering)> [concrete] +// CHECK:STDOUT: %pattern_type.53d: type = pattern_type %OrderedWith.type.5f1 [concrete] +// CHECK:STDOUT: %OrderedWith.type.8cb: type = facet_type <@OrderedWith.1, @OrderedWith.1(%CrossTypeRhs)> [concrete] +// CHECK:STDOUT: %pattern_type.935: type = pattern_type %OrderedWith.type.8cb [concrete] +// CHECK:STDOUT: %OrderedWith.type.c6c: type = facet_type <@OrderedWith.1, @OrderedWith.1(%CrossTypeLhs)> [concrete] +// CHECK:STDOUT: %pattern_type.b4e: type = pattern_type %OrderedWith.type.c6c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.0a8: @EqWith.WithSelf.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%assoc0 (constants.%assoc0.5b6)] -// CHECK:STDOUT: %Core.import_ref.33b: @EqWith.WithSelf.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%assoc1 (constants.%assoc1.491)] -// CHECK:STDOUT: %Core.import_ref.228: @EqWith.WithSelf.%EqWith.WithSelf.NotEqual.type (%EqWith.WithSelf.NotEqual.type.a34bef.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%EqWith.WithSelf.NotEqual (constants.%EqWith.WithSelf.NotEqual.34d150.1)] -// CHECK:STDOUT: %Core.import_ref.eea: @EqWith.WithSelf.%EqWith.WithSelf.Equal.type (%EqWith.WithSelf.Equal.type.28b02d.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%EqWith.WithSelf.Equal (constants.%EqWith.WithSelf.Equal.6ee1cd.1)] -// CHECK:STDOUT: %Core.import_ref.c77 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.c36 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.eb4: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc0 (constants.%assoc0.3ff)] -// CHECK:STDOUT: %Core.import_ref.84c: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc1 (constants.%assoc1.760)] -// CHECK:STDOUT: %Core.import_ref.01d: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc2 (constants.%assoc2.897)] -// CHECK:STDOUT: %Core.import_ref.569: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc3 (constants.%assoc3.8bc)] -// CHECK:STDOUT: %Core.import_ref.2d8: @OrderedWith.WithSelf.%OrderedWith.WithSelf.GreaterOrEquivalent.type (%OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.GreaterOrEquivalent (constants.%OrderedWith.WithSelf.GreaterOrEquivalent.38d1a4.1)] -// CHECK:STDOUT: %Core.import_ref.32f: @OrderedWith.WithSelf.%OrderedWith.WithSelf.Greater.type (%OrderedWith.WithSelf.Greater.type.9defd1.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.Greater (constants.%OrderedWith.WithSelf.Greater.984598.1)] -// CHECK:STDOUT: %Core.import_ref.fb6: @OrderedWith.WithSelf.%OrderedWith.WithSelf.LessOrEquivalent.type (%OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.LessOrEquivalent (constants.%OrderedWith.WithSelf.LessOrEquivalent.c2ac22.1)] -// CHECK:STDOUT: %Core.import_ref.5cd: @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less.type (%OrderedWith.WithSelf.Less.type.687390.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less (constants.%OrderedWith.WithSelf.Less.4a995a.1)] -// CHECK:STDOUT: %Core.import_ref.c33 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.79a = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.ea2 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.b4f = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.725: @EqWith.WithSelf.%EqWith.assoc_type (%EqWith.assoc_type.85b122.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%assoc0 (constants.%assoc0.d00)] +// CHECK:STDOUT: %Core.import_ref.8d7: @EqWith.WithSelf.%EqWith.assoc_type (%EqWith.assoc_type.85b122.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%assoc1 (constants.%assoc1.d80)] +// CHECK:STDOUT: %Core.import_ref.03f: @EqWith.WithSelf.%EqWith.WithSelf.NotEqual.type (%EqWith.WithSelf.NotEqual.type.c5b45a.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%EqWith.WithSelf.NotEqual (constants.%EqWith.WithSelf.NotEqual.b4230d.1)] +// CHECK:STDOUT: %Core.import_ref.5ba: @EqWith.WithSelf.%EqWith.WithSelf.Equal.type (%EqWith.WithSelf.Equal.type.b82ec7.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @EqWith.WithSelf.%EqWith.WithSelf.Equal (constants.%EqWith.WithSelf.Equal.ae3c3e.1)] +// CHECK:STDOUT: %Core.import_ref.2e5 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.b78 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.ef7: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc0 (constants.%assoc0.13c)] +// CHECK:STDOUT: %Core.import_ref.878: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc1 (constants.%assoc1.ee7)] +// CHECK:STDOUT: %Core.import_ref.d4f: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc2 (constants.%assoc2.131)] +// CHECK:STDOUT: %Core.import_ref.b87: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc3 (constants.%assoc3.18a)] +// CHECK:STDOUT: %Core.import_ref.39b: @OrderedWith.WithSelf.%OrderedWith.WithSelf.GreaterOrEquivalent.type (%OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.GreaterOrEquivalent (constants.%OrderedWith.WithSelf.GreaterOrEquivalent.937fbb.1)] +// CHECK:STDOUT: %Core.import_ref.385: @OrderedWith.WithSelf.%OrderedWith.WithSelf.Greater.type (%OrderedWith.WithSelf.Greater.type.9ce25c.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.Greater (constants.%OrderedWith.WithSelf.Greater.c0b4fa.1)] +// CHECK:STDOUT: %Core.import_ref.3f7: @OrderedWith.WithSelf.%OrderedWith.WithSelf.LessOrEquivalent.type (%OrderedWith.WithSelf.LessOrEquivalent.type.13d375.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.LessOrEquivalent (constants.%OrderedWith.WithSelf.LessOrEquivalent.e31723.1)] +// CHECK:STDOUT: %Core.import_ref.e7a: @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less.type (%OrderedWith.WithSelf.Less.type.b87f4b.1) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less (constants.%OrderedWith.WithSelf.Less.9e1f56.1)] +// CHECK:STDOUT: %Core.import_ref.447 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.efc = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.e60 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.6c6 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @EqWith.loc4(%U.loc4_12.2: type, %T.loc4_22.2: @EqWith.loc4.%EqWith.type.loc4_38.1 (%EqWith.type.e412df.2)) { +// CHECK:STDOUT: generic fn @EqWith.loc4(%U.loc4_12.2: type, %T.loc4_22.2: @EqWith.loc4.%EqWith.type.loc4_38.1 (%EqWith.type.98ea86.2)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc6: = require_complete_type %EqWith.type.loc4_38.1 [symbolic = %require_complete.loc6 (constants.%require_complete.1c9)] -// CHECK:STDOUT: %EqWith.assoc_type: type = assoc_entity_type @EqWith.1, @EqWith.1(%U.loc4_12.1) [symbolic = %EqWith.assoc_type (constants.%EqWith.assoc_type.27e9f5.2)] -// CHECK:STDOUT: %assoc0: @EqWith.loc4.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = assoc_entity element0, imports.%Core.import_ref.eea [symbolic = %assoc0 (constants.%assoc0.04df8c.2)] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%U.loc4_12.1, %T.loc4_22.1) [symbolic = %EqWith.WithSelf.Equal.type (constants.%EqWith.WithSelf.Equal.type.28b02d.3)] -// CHECK:STDOUT: %.loc6_5.2: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type, %T.loc4_22.1 [symbolic = %.loc6_5.2 (constants.%.e7e)] +// CHECK:STDOUT: %require_complete.loc6: = require_complete_type %EqWith.type.loc4_38.1 [symbolic = %require_complete.loc6 (constants.%require_complete.fb5)] +// CHECK:STDOUT: %EqWith.assoc_type: type = assoc_entity_type @EqWith.1, @EqWith.1(%U.loc4_12.1) [symbolic = %EqWith.assoc_type (constants.%EqWith.assoc_type.85b122.2)] +// CHECK:STDOUT: %assoc0: @EqWith.loc4.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = assoc_entity element0, imports.%Core.import_ref.5ba [symbolic = %assoc0 (constants.%assoc0.eee873.2)] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%U.loc4_12.1, %T.loc4_22.1) [symbolic = %EqWith.WithSelf.Equal.type (constants.%EqWith.WithSelf.Equal.type.b82ec7.3)] +// CHECK:STDOUT: %.loc6_5.2: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type, %T.loc4_22.1 [symbolic = %.loc6_5.2 (constants.%.74c)] // CHECK:STDOUT: %EqWith.lookup_impl_witness: = lookup_impl_witness %T.loc4_22.1, @EqWith.1, @EqWith.1(%U.loc4_12.1) [symbolic = %EqWith.lookup_impl_witness (constants.%EqWith.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc6_5.2: @EqWith.loc4.%.loc6_5.2 (%.e7e) = impl_witness_access %EqWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_5.2 (constants.%impl.elem0.c07)] -// CHECK:STDOUT: %specific_impl_fn.loc6_5.2: = specific_impl_function %impl.elem0.loc6_5.2, @EqWith.WithSelf.Equal(%U.loc4_12.1, %T.loc4_22.1) [symbolic = %specific_impl_fn.loc6_5.2 (constants.%specific_impl_fn.ba9)] -// CHECK:STDOUT: %assoc1: @EqWith.loc4.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = assoc_entity element1, imports.%Core.import_ref.228 [symbolic = %assoc1 (constants.%assoc1.47b841.2)] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%U.loc4_12.1, %T.loc4_22.1) [symbolic = %EqWith.WithSelf.NotEqual.type (constants.%EqWith.WithSelf.NotEqual.type.a34bef.3)] -// CHECK:STDOUT: %.loc7_5.2: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type, %T.loc4_22.1 [symbolic = %.loc7_5.2 (constants.%.a13)] -// CHECK:STDOUT: %impl.elem1.loc7_5.2: @EqWith.loc4.%.loc7_5.2 (%.a13) = impl_witness_access %EqWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc7_5.2 (constants.%impl.elem1.ec1)] -// CHECK:STDOUT: %specific_impl_fn.loc7_5.2: = specific_impl_function %impl.elem1.loc7_5.2, @EqWith.WithSelf.NotEqual(%U.loc4_12.1, %T.loc4_22.1) [symbolic = %specific_impl_fn.loc7_5.2 (constants.%specific_impl_fn.a6f)] +// CHECK:STDOUT: %impl.elem0.loc6_5.2: @EqWith.loc4.%.loc6_5.2 (%.74c) = impl_witness_access %EqWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_5.2 (constants.%impl.elem0.cab)] +// CHECK:STDOUT: %specific_impl_fn.loc6_5.2: = specific_impl_function %impl.elem0.loc6_5.2, @EqWith.WithSelf.Equal(%U.loc4_12.1, %T.loc4_22.1) [symbolic = %specific_impl_fn.loc6_5.2 (constants.%specific_impl_fn.67a)] +// CHECK:STDOUT: %assoc1: @EqWith.loc4.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = assoc_entity element1, imports.%Core.import_ref.03f [symbolic = %assoc1 (constants.%assoc1.0ffc88.2)] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%U.loc4_12.1, %T.loc4_22.1) [symbolic = %EqWith.WithSelf.NotEqual.type (constants.%EqWith.WithSelf.NotEqual.type.c5b45a.3)] +// CHECK:STDOUT: %.loc7_5.2: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type, %T.loc4_22.1 [symbolic = %.loc7_5.2 (constants.%.8ed)] +// CHECK:STDOUT: %impl.elem1.loc7_5.2: @EqWith.loc4.%.loc7_5.2 (%.8ed) = impl_witness_access %EqWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc7_5.2 (constants.%impl.elem1.dab)] +// CHECK:STDOUT: %specific_impl_fn.loc7_5.2: = specific_impl_function %impl.elem1.loc7_5.2, @EqWith.WithSelf.NotEqual(%U.loc4_12.1, %T.loc4_22.1) [symbolic = %specific_impl_fn.loc7_5.2 (constants.%specific_impl_fn.81f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @EqWith.loc4.%T.as_type.loc4_44.1 (%T.as_type.cf2), %y.param: @EqWith.loc4.%U.loc4_12.1 (%U)) { +// CHECK:STDOUT: fn(%x.param: @EqWith.loc4.%T.as_type.loc4_44.1 (%T.as_type.93d), %y.param: @EqWith.loc4.%U.loc4_12.1 (%U)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref.loc6: @EqWith.loc4.%T.as_type.loc4_44.1 (%T.as_type.cf2) = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc6: @EqWith.loc4.%T.as_type.loc4_44.1 (%T.as_type.93d) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc6: @EqWith.loc4.%U.loc4_12.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %EqWith.type.loc6: type = facet_type <@EqWith.1, @EqWith.1(constants.%U)> [symbolic = %EqWith.type.loc4_38.1 (constants.%EqWith.type.e412df.2)] -// CHECK:STDOUT: %.loc6_5.1: @EqWith.loc4.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = specific_constant imports.%Core.import_ref.0a8, @EqWith.WithSelf(constants.%U, constants.%Self.1e4d80.1) [symbolic = %assoc0 (constants.%assoc0.04df8c.2)] -// CHECK:STDOUT: %Equal.ref: @EqWith.loc4.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = name_ref Equal, %.loc6_5.1 [symbolic = %assoc0 (constants.%assoc0.04df8c.2)] -// CHECK:STDOUT: %impl.elem0.loc6_5.1: @EqWith.loc4.%.loc6_5.2 (%.e7e) = impl_witness_access constants.%EqWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_5.2 (constants.%impl.elem0.c07)] +// CHECK:STDOUT: %EqWith.type.loc6: type = facet_type <@EqWith.1, @EqWith.1(constants.%U)> [symbolic = %EqWith.type.loc4_38.1 (constants.%EqWith.type.98ea86.2)] +// CHECK:STDOUT: %.loc6_5.1: @EqWith.loc4.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = specific_constant imports.%Core.import_ref.725, @EqWith.WithSelf(constants.%U, constants.%Self.d94ae0.1) [symbolic = %assoc0 (constants.%assoc0.eee873.2)] +// CHECK:STDOUT: %Equal.ref: @EqWith.loc4.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = name_ref Equal, %.loc6_5.1 [symbolic = %assoc0 (constants.%assoc0.eee873.2)] +// CHECK:STDOUT: %impl.elem0.loc6_5.1: @EqWith.loc4.%.loc6_5.2 (%.74c) = impl_witness_access constants.%EqWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_5.2 (constants.%impl.elem0.cab)] // CHECK:STDOUT: %bound_method.loc6_5.1: = bound_method %x.ref.loc6, %impl.elem0.loc6_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc6_5.1: = specific_impl_function %impl.elem0.loc6_5.1, @EqWith.WithSelf.Equal(constants.%U, constants.%T.1e4) [symbolic = %specific_impl_fn.loc6_5.2 (constants.%specific_impl_fn.ba9)] +// CHECK:STDOUT: %specific_impl_fn.loc6_5.1: = specific_impl_function %impl.elem0.loc6_5.1, @EqWith.WithSelf.Equal(constants.%U, constants.%T.d94) [symbolic = %specific_impl_fn.loc6_5.2 (constants.%specific_impl_fn.67a)] // CHECK:STDOUT: %bound_method.loc6_5.2: = bound_method %x.ref.loc6, %specific_impl_fn.loc6_5.1 // CHECK:STDOUT: %EqWith.WithSelf.Equal.call: init bool = call %bound_method.loc6_5.2(%x.ref.loc6, %y.ref.loc6) -// CHECK:STDOUT: %x.ref.loc7: @EqWith.loc4.%T.as_type.loc4_44.1 (%T.as_type.cf2) = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc7: @EqWith.loc4.%T.as_type.loc4_44.1 (%T.as_type.93d) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc7: @EqWith.loc4.%U.loc4_12.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %EqWith.type.loc7: type = facet_type <@EqWith.1, @EqWith.1(constants.%U)> [symbolic = %EqWith.type.loc4_38.1 (constants.%EqWith.type.e412df.2)] -// CHECK:STDOUT: %.loc7_5.1: @EqWith.loc4.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = specific_constant imports.%Core.import_ref.33b, @EqWith.WithSelf(constants.%U, constants.%Self.1e4d80.1) [symbolic = %assoc1 (constants.%assoc1.47b841.2)] -// CHECK:STDOUT: %NotEqual.ref: @EqWith.loc4.%EqWith.assoc_type (%EqWith.assoc_type.27e9f5.2) = name_ref NotEqual, %.loc7_5.1 [symbolic = %assoc1 (constants.%assoc1.47b841.2)] -// CHECK:STDOUT: %impl.elem1.loc7_5.1: @EqWith.loc4.%.loc7_5.2 (%.a13) = impl_witness_access constants.%EqWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc7_5.2 (constants.%impl.elem1.ec1)] +// CHECK:STDOUT: %EqWith.type.loc7: type = facet_type <@EqWith.1, @EqWith.1(constants.%U)> [symbolic = %EqWith.type.loc4_38.1 (constants.%EqWith.type.98ea86.2)] +// CHECK:STDOUT: %.loc7_5.1: @EqWith.loc4.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = specific_constant imports.%Core.import_ref.8d7, @EqWith.WithSelf(constants.%U, constants.%Self.d94ae0.1) [symbolic = %assoc1 (constants.%assoc1.0ffc88.2)] +// CHECK:STDOUT: %NotEqual.ref: @EqWith.loc4.%EqWith.assoc_type (%EqWith.assoc_type.85b122.2) = name_ref NotEqual, %.loc7_5.1 [symbolic = %assoc1 (constants.%assoc1.0ffc88.2)] +// CHECK:STDOUT: %impl.elem1.loc7_5.1: @EqWith.loc4.%.loc7_5.2 (%.8ed) = impl_witness_access constants.%EqWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc7_5.2 (constants.%impl.elem1.dab)] // CHECK:STDOUT: %bound_method.loc7_5.1: = bound_method %x.ref.loc7, %impl.elem1.loc7_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc7_5.1: = specific_impl_function %impl.elem1.loc7_5.1, @EqWith.WithSelf.NotEqual(constants.%U, constants.%T.1e4) [symbolic = %specific_impl_fn.loc7_5.2 (constants.%specific_impl_fn.a6f)] +// CHECK:STDOUT: %specific_impl_fn.loc7_5.1: = specific_impl_function %impl.elem1.loc7_5.1, @EqWith.WithSelf.NotEqual(constants.%U, constants.%T.d94) [symbolic = %specific_impl_fn.loc7_5.2 (constants.%specific_impl_fn.81f)] // CHECK:STDOUT: %bound_method.loc7_5.2: = bound_method %x.ref.loc7, %specific_impl_fn.loc7_5.1 // CHECK:STDOUT: %EqWith.WithSelf.NotEqual.call: init bool = call %bound_method.loc7_5.2(%x.ref.loc7, %y.ref.loc7) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @OrderedWith.loc11(%U.loc11_17.2: type, %T.loc11_27.2: @OrderedWith.loc11.%OrderedWith.type.loc11_48.1 (%OrderedWith.type.73dab8.2)) { +// CHECK:STDOUT: generic fn @OrderedWith.loc11(%U.loc11_17.2: type, %T.loc11_27.2: @OrderedWith.loc11.%OrderedWith.type.loc11_48.1 (%OrderedWith.type.32ae87.2)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc13: = require_complete_type %OrderedWith.type.loc11_48.1 [symbolic = %require_complete.loc13 (constants.%require_complete.a45)] -// CHECK:STDOUT: %OrderedWith.assoc_type: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%U.loc11_17.1) [symbolic = %OrderedWith.assoc_type (constants.%OrderedWith.assoc_type.2fabd7.2)] -// CHECK:STDOUT: %assoc0: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = assoc_entity element0, imports.%Core.import_ref.5cd [symbolic = %assoc0 (constants.%assoc0.7dbd55.2)] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%U.loc11_17.1, %T.loc11_27.1) [symbolic = %OrderedWith.WithSelf.Less.type (constants.%OrderedWith.WithSelf.Less.type.687390.3)] -// CHECK:STDOUT: %.loc13_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type, %T.loc11_27.1 [symbolic = %.loc13_5.2 (constants.%.cb4)] +// CHECK:STDOUT: %require_complete.loc13: = require_complete_type %OrderedWith.type.loc11_48.1 [symbolic = %require_complete.loc13 (constants.%require_complete.3c0)] +// CHECK:STDOUT: %OrderedWith.assoc_type: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%U.loc11_17.1) [symbolic = %OrderedWith.assoc_type (constants.%OrderedWith.assoc_type.1d2e6f.2)] +// CHECK:STDOUT: %assoc0: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = assoc_entity element0, imports.%Core.import_ref.e7a [symbolic = %assoc0 (constants.%assoc0.c0023b.2)] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%U.loc11_17.1, %T.loc11_27.1) [symbolic = %OrderedWith.WithSelf.Less.type (constants.%OrderedWith.WithSelf.Less.type.b87f4b.3)] +// CHECK:STDOUT: %.loc13_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type, %T.loc11_27.1 [symbolic = %.loc13_5.2 (constants.%.6ec)] // CHECK:STDOUT: %OrderedWith.lookup_impl_witness: = lookup_impl_witness %T.loc11_27.1, @OrderedWith.1, @OrderedWith.1(%U.loc11_17.1) [symbolic = %OrderedWith.lookup_impl_witness (constants.%OrderedWith.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc13_5.2: @OrderedWith.loc11.%.loc13_5.2 (%.cb4) = impl_witness_access %OrderedWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_5.2 (constants.%impl.elem0.b31)] -// CHECK:STDOUT: %specific_impl_fn.loc13_5.2: = specific_impl_function %impl.elem0.loc13_5.2, @OrderedWith.WithSelf.Less(%U.loc11_17.1, %T.loc11_27.1) [symbolic = %specific_impl_fn.loc13_5.2 (constants.%specific_impl_fn.c89)] -// CHECK:STDOUT: %assoc1: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = assoc_entity element1, imports.%Core.import_ref.fb6 [symbolic = %assoc1 (constants.%assoc1.54de85.2)] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%U.loc11_17.1, %T.loc11_27.1) [symbolic = %OrderedWith.WithSelf.LessOrEquivalent.type (constants.%OrderedWith.WithSelf.LessOrEquivalent.type.8e175f.3)] -// CHECK:STDOUT: %.loc14_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type, %T.loc11_27.1 [symbolic = %.loc14_5.2 (constants.%.ac4)] -// CHECK:STDOUT: %impl.elem1.loc14_5.2: @OrderedWith.loc11.%.loc14_5.2 (%.ac4) = impl_witness_access %OrderedWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc14_5.2 (constants.%impl.elem1.939)] -// CHECK:STDOUT: %specific_impl_fn.loc14_5.2: = specific_impl_function %impl.elem1.loc14_5.2, @OrderedWith.WithSelf.LessOrEquivalent(%U.loc11_17.1, %T.loc11_27.1) [symbolic = %specific_impl_fn.loc14_5.2 (constants.%specific_impl_fn.65b)] -// CHECK:STDOUT: %assoc2: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = assoc_entity element2, imports.%Core.import_ref.32f [symbolic = %assoc2 (constants.%assoc2.3caaa9.2)] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%U.loc11_17.1, %T.loc11_27.1) [symbolic = %OrderedWith.WithSelf.Greater.type (constants.%OrderedWith.WithSelf.Greater.type.9defd1.3)] -// CHECK:STDOUT: %.loc15_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type, %T.loc11_27.1 [symbolic = %.loc15_5.2 (constants.%.994)] -// CHECK:STDOUT: %impl.elem2.loc15_5.2: @OrderedWith.loc11.%.loc15_5.2 (%.994) = impl_witness_access %OrderedWith.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc15_5.2 (constants.%impl.elem2)] -// CHECK:STDOUT: %specific_impl_fn.loc15_5.2: = specific_impl_function %impl.elem2.loc15_5.2, @OrderedWith.WithSelf.Greater(%U.loc11_17.1, %T.loc11_27.1) [symbolic = %specific_impl_fn.loc15_5.2 (constants.%specific_impl_fn.6dc)] -// CHECK:STDOUT: %assoc3: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = assoc_entity element3, imports.%Core.import_ref.2d8 [symbolic = %assoc3 (constants.%assoc3.4eb879.2)] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%U.loc11_17.1, %T.loc11_27.1) [symbolic = %OrderedWith.WithSelf.GreaterOrEquivalent.type (constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.a03cd9.3)] -// CHECK:STDOUT: %.loc16_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type, %T.loc11_27.1 [symbolic = %.loc16_5.2 (constants.%.eca)] -// CHECK:STDOUT: %impl.elem3.loc16_5.2: @OrderedWith.loc11.%.loc16_5.2 (%.eca) = impl_witness_access %OrderedWith.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc16_5.2 (constants.%impl.elem3)] -// CHECK:STDOUT: %specific_impl_fn.loc16_5.2: = specific_impl_function %impl.elem3.loc16_5.2, @OrderedWith.WithSelf.GreaterOrEquivalent(%U.loc11_17.1, %T.loc11_27.1) [symbolic = %specific_impl_fn.loc16_5.2 (constants.%specific_impl_fn.f67)] +// CHECK:STDOUT: %impl.elem0.loc13_5.2: @OrderedWith.loc11.%.loc13_5.2 (%.6ec) = impl_witness_access %OrderedWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_5.2 (constants.%impl.elem0.6b1)] +// CHECK:STDOUT: %specific_impl_fn.loc13_5.2: = specific_impl_function %impl.elem0.loc13_5.2, @OrderedWith.WithSelf.Less(%U.loc11_17.1, %T.loc11_27.1) [symbolic = %specific_impl_fn.loc13_5.2 (constants.%specific_impl_fn.527)] +// CHECK:STDOUT: %assoc1: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = assoc_entity element1, imports.%Core.import_ref.3f7 [symbolic = %assoc1 (constants.%assoc1.3efd77.2)] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%U.loc11_17.1, %T.loc11_27.1) [symbolic = %OrderedWith.WithSelf.LessOrEquivalent.type (constants.%OrderedWith.WithSelf.LessOrEquivalent.type.13d375.3)] +// CHECK:STDOUT: %.loc14_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type, %T.loc11_27.1 [symbolic = %.loc14_5.2 (constants.%.02d)] +// CHECK:STDOUT: %impl.elem1.loc14_5.2: @OrderedWith.loc11.%.loc14_5.2 (%.02d) = impl_witness_access %OrderedWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc14_5.2 (constants.%impl.elem1.ff9)] +// CHECK:STDOUT: %specific_impl_fn.loc14_5.2: = specific_impl_function %impl.elem1.loc14_5.2, @OrderedWith.WithSelf.LessOrEquivalent(%U.loc11_17.1, %T.loc11_27.1) [symbolic = %specific_impl_fn.loc14_5.2 (constants.%specific_impl_fn.001)] +// CHECK:STDOUT: %assoc2: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = assoc_entity element2, imports.%Core.import_ref.385 [symbolic = %assoc2 (constants.%assoc2.48eff0.2)] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%U.loc11_17.1, %T.loc11_27.1) [symbolic = %OrderedWith.WithSelf.Greater.type (constants.%OrderedWith.WithSelf.Greater.type.9ce25c.3)] +// CHECK:STDOUT: %.loc15_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type, %T.loc11_27.1 [symbolic = %.loc15_5.2 (constants.%.666)] +// CHECK:STDOUT: %impl.elem2.loc15_5.2: @OrderedWith.loc11.%.loc15_5.2 (%.666) = impl_witness_access %OrderedWith.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc15_5.2 (constants.%impl.elem2)] +// CHECK:STDOUT: %specific_impl_fn.loc15_5.2: = specific_impl_function %impl.elem2.loc15_5.2, @OrderedWith.WithSelf.Greater(%U.loc11_17.1, %T.loc11_27.1) [symbolic = %specific_impl_fn.loc15_5.2 (constants.%specific_impl_fn.735)] +// CHECK:STDOUT: %assoc3: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = assoc_entity element3, imports.%Core.import_ref.39b [symbolic = %assoc3 (constants.%assoc3.5d53f7.2)] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%U.loc11_17.1, %T.loc11_27.1) [symbolic = %OrderedWith.WithSelf.GreaterOrEquivalent.type (constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.7dedb2.3)] +// CHECK:STDOUT: %.loc16_5.2: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type, %T.loc11_27.1 [symbolic = %.loc16_5.2 (constants.%.73b)] +// CHECK:STDOUT: %impl.elem3.loc16_5.2: @OrderedWith.loc11.%.loc16_5.2 (%.73b) = impl_witness_access %OrderedWith.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc16_5.2 (constants.%impl.elem3)] +// CHECK:STDOUT: %specific_impl_fn.loc16_5.2: = specific_impl_function %impl.elem3.loc16_5.2, @OrderedWith.WithSelf.GreaterOrEquivalent(%U.loc11_17.1, %T.loc11_27.1) [symbolic = %specific_impl_fn.loc16_5.2 (constants.%specific_impl_fn.418)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @OrderedWith.loc11.%T.as_type.loc11_54.1 (%T.as_type.1cd), %y.param: @OrderedWith.loc11.%U.loc11_17.1 (%U)) { +// CHECK:STDOUT: fn(%x.param: @OrderedWith.loc11.%T.as_type.loc11_54.1 (%T.as_type.262), %y.param: @OrderedWith.loc11.%U.loc11_17.1 (%U)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref.loc13: @OrderedWith.loc11.%T.as_type.loc11_54.1 (%T.as_type.1cd) = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc13: @OrderedWith.loc11.%T.as_type.loc11_54.1 (%T.as_type.262) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc13: @OrderedWith.loc11.%U.loc11_17.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %OrderedWith.type.loc13: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc11_48.1 (constants.%OrderedWith.type.73dab8.2)] -// CHECK:STDOUT: %.loc13_5.1: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = specific_constant imports.%Core.import_ref.eb4, @OrderedWith.WithSelf(constants.%U, constants.%Self.d014af.1) [symbolic = %assoc0 (constants.%assoc0.7dbd55.2)] -// CHECK:STDOUT: %Less.ref: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = name_ref Less, %.loc13_5.1 [symbolic = %assoc0 (constants.%assoc0.7dbd55.2)] -// CHECK:STDOUT: %impl.elem0.loc13_5.1: @OrderedWith.loc11.%.loc13_5.2 (%.cb4) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_5.2 (constants.%impl.elem0.b31)] +// CHECK:STDOUT: %OrderedWith.type.loc13: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc11_48.1 (constants.%OrderedWith.type.32ae87.2)] +// CHECK:STDOUT: %.loc13_5.1: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = specific_constant imports.%Core.import_ref.ef7, @OrderedWith.WithSelf(constants.%U, constants.%Self.7df555.1) [symbolic = %assoc0 (constants.%assoc0.c0023b.2)] +// CHECK:STDOUT: %Less.ref: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = name_ref Less, %.loc13_5.1 [symbolic = %assoc0 (constants.%assoc0.c0023b.2)] +// CHECK:STDOUT: %impl.elem0.loc13_5.1: @OrderedWith.loc11.%.loc13_5.2 (%.6ec) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_5.2 (constants.%impl.elem0.6b1)] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %x.ref.loc13, %impl.elem0.loc13_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc13_5.1: = specific_impl_function %impl.elem0.loc13_5.1, @OrderedWith.WithSelf.Less(constants.%U, constants.%T.d01) [symbolic = %specific_impl_fn.loc13_5.2 (constants.%specific_impl_fn.c89)] +// CHECK:STDOUT: %specific_impl_fn.loc13_5.1: = specific_impl_function %impl.elem0.loc13_5.1, @OrderedWith.WithSelf.Less(constants.%U, constants.%T.7df) [symbolic = %specific_impl_fn.loc13_5.2 (constants.%specific_impl_fn.527)] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %x.ref.loc13, %specific_impl_fn.loc13_5.1 // CHECK:STDOUT: %OrderedWith.WithSelf.Less.call: init bool = call %bound_method.loc13_5.2(%x.ref.loc13, %y.ref.loc13) -// CHECK:STDOUT: %x.ref.loc14: @OrderedWith.loc11.%T.as_type.loc11_54.1 (%T.as_type.1cd) = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc14: @OrderedWith.loc11.%T.as_type.loc11_54.1 (%T.as_type.262) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc14: @OrderedWith.loc11.%U.loc11_17.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %OrderedWith.type.loc14: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc11_48.1 (constants.%OrderedWith.type.73dab8.2)] -// CHECK:STDOUT: %.loc14_5.1: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = specific_constant imports.%Core.import_ref.84c, @OrderedWith.WithSelf(constants.%U, constants.%Self.d014af.1) [symbolic = %assoc1 (constants.%assoc1.54de85.2)] -// CHECK:STDOUT: %LessOrEquivalent.ref: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = name_ref LessOrEquivalent, %.loc14_5.1 [symbolic = %assoc1 (constants.%assoc1.54de85.2)] -// CHECK:STDOUT: %impl.elem1.loc14_5.1: @OrderedWith.loc11.%.loc14_5.2 (%.ac4) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc14_5.2 (constants.%impl.elem1.939)] +// CHECK:STDOUT: %OrderedWith.type.loc14: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc11_48.1 (constants.%OrderedWith.type.32ae87.2)] +// CHECK:STDOUT: %.loc14_5.1: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = specific_constant imports.%Core.import_ref.878, @OrderedWith.WithSelf(constants.%U, constants.%Self.7df555.1) [symbolic = %assoc1 (constants.%assoc1.3efd77.2)] +// CHECK:STDOUT: %LessOrEquivalent.ref: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = name_ref LessOrEquivalent, %.loc14_5.1 [symbolic = %assoc1 (constants.%assoc1.3efd77.2)] +// CHECK:STDOUT: %impl.elem1.loc14_5.1: @OrderedWith.loc11.%.loc14_5.2 (%.02d) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc14_5.2 (constants.%impl.elem1.ff9)] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %x.ref.loc14, %impl.elem1.loc14_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc14_5.1: = specific_impl_function %impl.elem1.loc14_5.1, @OrderedWith.WithSelf.LessOrEquivalent(constants.%U, constants.%T.d01) [symbolic = %specific_impl_fn.loc14_5.2 (constants.%specific_impl_fn.65b)] +// CHECK:STDOUT: %specific_impl_fn.loc14_5.1: = specific_impl_function %impl.elem1.loc14_5.1, @OrderedWith.WithSelf.LessOrEquivalent(constants.%U, constants.%T.7df) [symbolic = %specific_impl_fn.loc14_5.2 (constants.%specific_impl_fn.001)] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %x.ref.loc14, %specific_impl_fn.loc14_5.1 // CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.call: init bool = call %bound_method.loc14_5.2(%x.ref.loc14, %y.ref.loc14) -// CHECK:STDOUT: %x.ref.loc15: @OrderedWith.loc11.%T.as_type.loc11_54.1 (%T.as_type.1cd) = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc15: @OrderedWith.loc11.%T.as_type.loc11_54.1 (%T.as_type.262) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc15: @OrderedWith.loc11.%U.loc11_17.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %OrderedWith.type.loc15: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc11_48.1 (constants.%OrderedWith.type.73dab8.2)] -// CHECK:STDOUT: %.loc15_5.1: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = specific_constant imports.%Core.import_ref.01d, @OrderedWith.WithSelf(constants.%U, constants.%Self.d014af.1) [symbolic = %assoc2 (constants.%assoc2.3caaa9.2)] -// CHECK:STDOUT: %Greater.ref: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = name_ref Greater, %.loc15_5.1 [symbolic = %assoc2 (constants.%assoc2.3caaa9.2)] -// CHECK:STDOUT: %impl.elem2.loc15_5.1: @OrderedWith.loc11.%.loc15_5.2 (%.994) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc15_5.2 (constants.%impl.elem2)] +// CHECK:STDOUT: %OrderedWith.type.loc15: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc11_48.1 (constants.%OrderedWith.type.32ae87.2)] +// CHECK:STDOUT: %.loc15_5.1: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = specific_constant imports.%Core.import_ref.d4f, @OrderedWith.WithSelf(constants.%U, constants.%Self.7df555.1) [symbolic = %assoc2 (constants.%assoc2.48eff0.2)] +// CHECK:STDOUT: %Greater.ref: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = name_ref Greater, %.loc15_5.1 [symbolic = %assoc2 (constants.%assoc2.48eff0.2)] +// CHECK:STDOUT: %impl.elem2.loc15_5.1: @OrderedWith.loc11.%.loc15_5.2 (%.666) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc15_5.2 (constants.%impl.elem2)] // CHECK:STDOUT: %bound_method.loc15_5.1: = bound_method %x.ref.loc15, %impl.elem2.loc15_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc15_5.1: = specific_impl_function %impl.elem2.loc15_5.1, @OrderedWith.WithSelf.Greater(constants.%U, constants.%T.d01) [symbolic = %specific_impl_fn.loc15_5.2 (constants.%specific_impl_fn.6dc)] +// CHECK:STDOUT: %specific_impl_fn.loc15_5.1: = specific_impl_function %impl.elem2.loc15_5.1, @OrderedWith.WithSelf.Greater(constants.%U, constants.%T.7df) [symbolic = %specific_impl_fn.loc15_5.2 (constants.%specific_impl_fn.735)] // CHECK:STDOUT: %bound_method.loc15_5.2: = bound_method %x.ref.loc15, %specific_impl_fn.loc15_5.1 // CHECK:STDOUT: %OrderedWith.WithSelf.Greater.call: init bool = call %bound_method.loc15_5.2(%x.ref.loc15, %y.ref.loc15) -// CHECK:STDOUT: %x.ref.loc16: @OrderedWith.loc11.%T.as_type.loc11_54.1 (%T.as_type.1cd) = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc16: @OrderedWith.loc11.%T.as_type.loc11_54.1 (%T.as_type.262) = name_ref x, %x // CHECK:STDOUT: %y.ref.loc16: @OrderedWith.loc11.%U.loc11_17.1 (%U) = name_ref y, %y -// CHECK:STDOUT: %OrderedWith.type.loc16: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc11_48.1 (constants.%OrderedWith.type.73dab8.2)] -// CHECK:STDOUT: %.loc16_5.1: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = specific_constant imports.%Core.import_ref.569, @OrderedWith.WithSelf(constants.%U, constants.%Self.d014af.1) [symbolic = %assoc3 (constants.%assoc3.4eb879.2)] -// CHECK:STDOUT: %GreaterOrEquivalent.ref: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.2fabd7.2) = name_ref GreaterOrEquivalent, %.loc16_5.1 [symbolic = %assoc3 (constants.%assoc3.4eb879.2)] -// CHECK:STDOUT: %impl.elem3.loc16_5.1: @OrderedWith.loc11.%.loc16_5.2 (%.eca) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc16_5.2 (constants.%impl.elem3)] +// CHECK:STDOUT: %OrderedWith.type.loc16: type = facet_type <@OrderedWith.1, @OrderedWith.1(constants.%U)> [symbolic = %OrderedWith.type.loc11_48.1 (constants.%OrderedWith.type.32ae87.2)] +// CHECK:STDOUT: %.loc16_5.1: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = specific_constant imports.%Core.import_ref.b87, @OrderedWith.WithSelf(constants.%U, constants.%Self.7df555.1) [symbolic = %assoc3 (constants.%assoc3.5d53f7.2)] +// CHECK:STDOUT: %GreaterOrEquivalent.ref: @OrderedWith.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2e6f.2) = name_ref GreaterOrEquivalent, %.loc16_5.1 [symbolic = %assoc3 (constants.%assoc3.5d53f7.2)] +// CHECK:STDOUT: %impl.elem3.loc16_5.1: @OrderedWith.loc11.%.loc16_5.2 (%.73b) = impl_witness_access constants.%OrderedWith.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc16_5.2 (constants.%impl.elem3)] // CHECK:STDOUT: %bound_method.loc16_5.1: = bound_method %x.ref.loc16, %impl.elem3.loc16_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc16_5.1: = specific_impl_function %impl.elem3.loc16_5.1, @OrderedWith.WithSelf.GreaterOrEquivalent(constants.%U, constants.%T.d01) [symbolic = %specific_impl_fn.loc16_5.2 (constants.%specific_impl_fn.f67)] +// CHECK:STDOUT: %specific_impl_fn.loc16_5.1: = specific_impl_function %impl.elem3.loc16_5.1, @OrderedWith.WithSelf.GreaterOrEquivalent(constants.%U, constants.%T.7df) [symbolic = %specific_impl_fn.loc16_5.2 (constants.%specific_impl_fn.418)] // CHECK:STDOUT: %bound_method.loc16_5.2: = bound_method %x.ref.loc16, %specific_impl_fn.loc16_5.1 // CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.call: init bool = call %bound_method.loc16_5.2(%x.ref.loc16, %y.ref.loc16) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @EqWith.loc4(constants.%U, constants.%T.1e4) { +// CHECK:STDOUT: specific @EqWith.loc4(constants.%U, constants.%T.d94) { // CHECK:STDOUT: %U.loc4_12.1 => constants.%U -// CHECK:STDOUT: %EqWith.type.loc4_38.1 => constants.%EqWith.type.e412df.2 -// CHECK:STDOUT: %T.loc4_22.1 => constants.%T.1e4 -// CHECK:STDOUT: %pattern_type.loc4_22 => constants.%pattern_type.243 -// CHECK:STDOUT: %T.as_type.loc4_44.1 => constants.%T.as_type.cf2 -// CHECK:STDOUT: %pattern_type.loc4_42 => constants.%pattern_type.479039.2 +// CHECK:STDOUT: %EqWith.type.loc4_38.1 => constants.%EqWith.type.98ea86.2 +// CHECK:STDOUT: %T.loc4_22.1 => constants.%T.d94 +// CHECK:STDOUT: %pattern_type.loc4_22 => constants.%pattern_type.3d4 +// CHECK:STDOUT: %T.as_type.loc4_44.1 => constants.%T.as_type.93d +// CHECK:STDOUT: %pattern_type.loc4_42 => constants.%pattern_type.e6374a.2 // CHECK:STDOUT: %pattern_type.loc4_48 => constants.%pattern_type.51d1c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @OrderedWith.loc11(constants.%U, constants.%T.d01) { +// CHECK:STDOUT: specific @OrderedWith.loc11(constants.%U, constants.%T.7df) { // CHECK:STDOUT: %U.loc11_17.1 => constants.%U -// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.73dab8.2 -// CHECK:STDOUT: %T.loc11_27.1 => constants.%T.d01 -// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.10d -// CHECK:STDOUT: %T.as_type.loc11_54.1 => constants.%T.as_type.1cd -// CHECK:STDOUT: %pattern_type.loc11_52 => constants.%pattern_type.05039a.2 +// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.32ae87.2 +// CHECK:STDOUT: %T.loc11_27.1 => constants.%T.7df +// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.ebc +// CHECK:STDOUT: %T.as_type.loc11_54.1 => constants.%T.as_type.262 +// CHECK:STDOUT: %pattern_type.loc11_52 => constants.%pattern_type.f6ec4f.2 // CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.51d1c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @EqWith.loc4(constants.%DefaultSpaceshipOnly, ) { // CHECK:STDOUT: %U.loc4_12.1 => constants.%DefaultSpaceshipOnly -// CHECK:STDOUT: %EqWith.type.loc4_38.1 => constants.%EqWith.type.f5d +// CHECK:STDOUT: %EqWith.type.loc4_38.1 => constants.%EqWith.type.bf2 // CHECK:STDOUT: %T.loc4_22.1 => -// CHECK:STDOUT: %pattern_type.loc4_22 => constants.%pattern_type.2b5 +// CHECK:STDOUT: %pattern_type.loc4_22 => constants.%pattern_type.062 // CHECK:STDOUT: %T.as_type.loc4_44.1 => // CHECK:STDOUT: %pattern_type.loc4_42 => -// CHECK:STDOUT: %pattern_type.loc4_48 => constants.%pattern_type.cce +// CHECK:STDOUT: %pattern_type.loc4_48 => constants.%pattern_type.80f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @OrderedWith.loc11(constants.%DefaultSpaceshipOnly, ) { // CHECK:STDOUT: %U.loc11_17.1 => constants.%DefaultSpaceshipOnly -// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.9ef +// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.33f // CHECK:STDOUT: %T.loc11_27.1 => -// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.520 +// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.7f2 // CHECK:STDOUT: %T.as_type.loc11_54.1 => // CHECK:STDOUT: %pattern_type.loc11_52 => -// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.cce +// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.80f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @OrderedWith.loc11(constants.%ReturnsStrongOrdering, ) { // CHECK:STDOUT: %U.loc11_17.1 => constants.%ReturnsStrongOrdering -// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.f1a +// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.0fb // CHECK:STDOUT: %T.loc11_27.1 => -// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.8f0 +// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.623 // CHECK:STDOUT: %T.as_type.loc11_54.1 => // CHECK:STDOUT: %pattern_type.loc11_52 => -// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.a93 +// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.37f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @OrderedWith.loc11(constants.%ReturnsPartialOrdering, ) { // CHECK:STDOUT: %U.loc11_17.1 => constants.%ReturnsPartialOrdering -// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.30a +// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.5f1 // CHECK:STDOUT: %T.loc11_27.1 => -// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.86c +// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.53d // CHECK:STDOUT: %T.as_type.loc11_54.1 => // CHECK:STDOUT: %pattern_type.loc11_52 => -// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.dbf +// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.9ae // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @OrderedWith.loc11(constants.%CrossTypeRhs, ) { // CHECK:STDOUT: %U.loc11_17.1 => constants.%CrossTypeRhs -// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.ca0 +// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.8cb // CHECK:STDOUT: %T.loc11_27.1 => -// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.189 +// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.935 // CHECK:STDOUT: %T.as_type.loc11_54.1 => // CHECK:STDOUT: %pattern_type.loc11_52 => -// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.bd1 +// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.aac // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @OrderedWith.loc11(constants.%CrossTypeLhs, ) { // CHECK:STDOUT: %U.loc11_17.1 => constants.%CrossTypeLhs -// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.e89 +// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.c6c // CHECK:STDOUT: %T.loc11_27.1 => -// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.307 +// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.b4e // CHECK:STDOUT: %T.as_type.loc11_54.1 => // CHECK:STDOUT: %pattern_type.loc11_52 => -// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.f3d +// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.eb5 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/primitive_types/arithmetic.carbon b/toolchain/check/testdata/interop/cpp/primitive_types/arithmetic.carbon index 0ac8202114fa..1cb61a9eebe0 100644 --- a/toolchain/check/testdata/interop/cpp/primitive_types/arithmetic.carbon +++ b/toolchain/check/testdata/interop/cpp/primitive_types/arithmetic.carbon @@ -116,122 +116,122 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_8: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %i8: type = class_type @Int, @Int(%int_8) [concrete] -// CHECK:STDOUT: %pattern_type.6f2: type = pattern_type %i8 [concrete] +// CHECK:STDOUT: %pattern_type.0cf: type = pattern_type %i8 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %As.type.3d3: type = facet_type <@As, @As(%i8)> [concrete] +// CHECK:STDOUT: %As.type.daf: type = facet_type <@As, @As(%i8)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert.1, @Core.IntLiteral.as.As.impl.8f3(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.815: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl.8f3(%int_8) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.384: type = fn_type @Core.IntLiteral.as.As.impl.Convert.1, @Core.IntLiteral.as.As.impl.8f3(%int_8) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.b7e: %Core.IntLiteral.as.As.impl.Convert.type.384 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet.0df: %As.type.3d3 = facet_value Core.IntLiteral, (%As.impl_witness.815) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.782: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i8, %As.facet.0df) [concrete] -// CHECK:STDOUT: %.b16: type = fn_type_with_self_type %As.WithSelf.Convert.type.782, %As.facet.0df [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.7cb: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.b7e [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn.95c: = specific_function %Core.IntLiteral.as.As.impl.Convert.b7e, @Core.IntLiteral.as.As.impl.Convert.1(%int_8) [concrete] -// CHECK:STDOUT: %bound_method.9c1: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn.95c [concrete] -// CHECK:STDOUT: %int_1.b30: %i8 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert.1, @Core.IntLiteral.as.As.impl.f25(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.148: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl.f25(%int_8) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.42c: type = fn_type @Core.IntLiteral.as.As.impl.Convert.1, @Core.IntLiteral.as.As.impl.f25(%int_8) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.870: %Core.IntLiteral.as.As.impl.Convert.type.42c = struct_value () [concrete] +// CHECK:STDOUT: %As.facet.679: %As.type.daf = facet_value Core.IntLiteral, (%As.impl_witness.148) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.d60: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i8, %As.facet.679) [concrete] +// CHECK:STDOUT: %.35a: type = fn_type_with_self_type %As.WithSelf.Convert.type.d60, %As.facet.679 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.555: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.870 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn.cf0: = specific_function %Core.IntLiteral.as.As.impl.Convert.870, @Core.IntLiteral.as.As.impl.Convert.1(%int_8) [concrete] +// CHECK:STDOUT: %bound_method.a39: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn.cf0 [concrete] +// CHECK:STDOUT: %int_1.f1e: %i8 = int_value 1 [concrete] // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] -// CHECK:STDOUT: %pattern_type.e1b: type = pattern_type %i16 [concrete] -// CHECK:STDOUT: %As.type.fff: type = facet_type <@As, @As(%i16)> [concrete] -// CHECK:STDOUT: %As.impl_witness.16a: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl.8f3(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.ced: type = fn_type @Core.IntLiteral.as.As.impl.Convert.1, @Core.IntLiteral.as.As.impl.8f3(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.0b6: %Core.IntLiteral.as.As.impl.Convert.type.ced = struct_value () [concrete] -// CHECK:STDOUT: %As.facet.af0: %As.type.fff = facet_value Core.IntLiteral, (%As.impl_witness.16a) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.28f: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet.af0) [concrete] -// CHECK:STDOUT: %.696: type = fn_type_with_self_type %As.WithSelf.Convert.type.28f, %As.facet.af0 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.6e7: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.0b6 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn.7ae: = specific_function %Core.IntLiteral.as.As.impl.Convert.0b6, @Core.IntLiteral.as.As.impl.Convert.1(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.7f7: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn.7ae [concrete] -// CHECK:STDOUT: %int_1.792: %i16 = int_value 1 [concrete] +// CHECK:STDOUT: %pattern_type.203: type = pattern_type %i16 [concrete] +// CHECK:STDOUT: %As.type.6f1: type = facet_type <@As, @As(%i16)> [concrete] +// CHECK:STDOUT: %As.impl_witness.820: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl.f25(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.4b7: type = fn_type @Core.IntLiteral.as.As.impl.Convert.1, @Core.IntLiteral.as.As.impl.f25(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.70c: %Core.IntLiteral.as.As.impl.Convert.type.4b7 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet.bdf: %As.type.6f1 = facet_value Core.IntLiteral, (%As.impl_witness.820) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.d73: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i16, %As.facet.bdf) [concrete] +// CHECK:STDOUT: %.6b5: type = fn_type_with_self_type %As.WithSelf.Convert.type.d73, %As.facet.bdf [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.544: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.70c [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn.07a: = specific_function %Core.IntLiteral.as.As.impl.Convert.70c, @Core.IntLiteral.as.As.impl.Convert.1(%int_16) [concrete] +// CHECK:STDOUT: %bound_method.a0f: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn.07a [concrete] +// CHECK:STDOUT: %int_1.d17: %i16 = int_value 1 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %As.type.c00: type = facet_type <@As, @As(%i32)> [concrete] -// CHECK:STDOUT: %As.impl_witness.54d: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl.8f3(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.421: type = fn_type @Core.IntLiteral.as.As.impl.Convert.1, @Core.IntLiteral.as.As.impl.8f3(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.978: %Core.IntLiteral.as.As.impl.Convert.type.421 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet.394: %As.type.c00 = facet_value Core.IntLiteral, (%As.impl_witness.54d) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.f0c: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet.394) [concrete] -// CHECK:STDOUT: %.c18: type = fn_type_with_self_type %As.WithSelf.Convert.type.f0c, %As.facet.394 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.62b: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.978 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn.75d: = specific_function %Core.IntLiteral.as.As.impl.Convert.978, @Core.IntLiteral.as.As.impl.Convert.1(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.38f: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn.75d [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %As.type.155: type = facet_type <@As, @As(%i32)> [concrete] +// CHECK:STDOUT: %As.impl_witness.03e: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl.f25(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.e79: type = fn_type @Core.IntLiteral.as.As.impl.Convert.1, @Core.IntLiteral.as.As.impl.f25(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.8a4: %Core.IntLiteral.as.As.impl.Convert.type.e79 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet.f96: %As.type.155 = facet_value Core.IntLiteral, (%As.impl_witness.03e) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.8ea: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet.f96) [concrete] +// CHECK:STDOUT: %.fbc: type = fn_type_with_self_type %As.WithSelf.Convert.type.8ea, %As.facet.f96 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.3a0: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.8a4 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn.923: = specific_function %Core.IntLiteral.as.As.impl.Convert.8a4, @Core.IntLiteral.as.As.impl.Convert.1(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.18b: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn.923 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %u8: type = class_type @UInt, @UInt(%int_8) [concrete] -// CHECK:STDOUT: %pattern_type.753: type = pattern_type %u8 [concrete] -// CHECK:STDOUT: %As.type.ca5: type = facet_type <@As, @As(%u8)> [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.150: type = fn_type @Core.IntLiteral.as.As.impl.Convert.2, @Core.IntLiteral.as.As.impl.e75(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.b6a: %Core.IntLiteral.as.As.impl.Convert.type.150 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.d5d: = impl_witness imports.%As.impl_witness_table.613, @Core.IntLiteral.as.As.impl.e75(%int_8) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.e37: type = fn_type @Core.IntLiteral.as.As.impl.Convert.2, @Core.IntLiteral.as.As.impl.e75(%int_8) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.351: %Core.IntLiteral.as.As.impl.Convert.type.e37 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet.f5d: %As.type.ca5 = facet_value Core.IntLiteral, (%As.impl_witness.d5d) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.fb4: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%u8, %As.facet.f5d) [concrete] -// CHECK:STDOUT: %.96b: type = fn_type_with_self_type %As.WithSelf.Convert.type.fb4, %As.facet.f5d [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.07b: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.351 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn.4ad: = specific_function %Core.IntLiteral.as.As.impl.Convert.351, @Core.IntLiteral.as.As.impl.Convert.2(%int_8) [concrete] -// CHECK:STDOUT: %bound_method.579: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn.4ad [concrete] -// CHECK:STDOUT: %int_1.96a: %u8 = int_value 1 [concrete] +// CHECK:STDOUT: %pattern_type.186: type = pattern_type %u8 [concrete] +// CHECK:STDOUT: %As.type.97b: type = facet_type <@As, @As(%u8)> [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.fb3: type = fn_type @Core.IntLiteral.as.As.impl.Convert.2, @Core.IntLiteral.as.As.impl.e51(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.f86: %Core.IntLiteral.as.As.impl.Convert.type.fb3 = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.119: = impl_witness imports.%As.impl_witness_table.8fa, @Core.IntLiteral.as.As.impl.e51(%int_8) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.73c: type = fn_type @Core.IntLiteral.as.As.impl.Convert.2, @Core.IntLiteral.as.As.impl.e51(%int_8) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.2f0: %Core.IntLiteral.as.As.impl.Convert.type.73c = struct_value () [concrete] +// CHECK:STDOUT: %As.facet.95f: %As.type.97b = facet_value Core.IntLiteral, (%As.impl_witness.119) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.841: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%u8, %As.facet.95f) [concrete] +// CHECK:STDOUT: %.ec5: type = fn_type_with_self_type %As.WithSelf.Convert.type.841, %As.facet.95f [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.7d9: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.2f0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn.cbf: = specific_function %Core.IntLiteral.as.As.impl.Convert.2f0, @Core.IntLiteral.as.As.impl.Convert.2(%int_8) [concrete] +// CHECK:STDOUT: %bound_method.43e: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn.cbf [concrete] +// CHECK:STDOUT: %int_1.067: %u8 = int_value 1 [concrete] // CHECK:STDOUT: %u16: type = class_type @UInt, @UInt(%int_16) [concrete] -// CHECK:STDOUT: %pattern_type.4d0: type = pattern_type %u16 [concrete] -// CHECK:STDOUT: %As.type.d4e: type = facet_type <@As, @As(%u16)> [concrete] -// CHECK:STDOUT: %As.impl_witness.d7c: = impl_witness imports.%As.impl_witness_table.613, @Core.IntLiteral.as.As.impl.e75(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.2e9: type = fn_type @Core.IntLiteral.as.As.impl.Convert.2, @Core.IntLiteral.as.As.impl.e75(%int_16) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.1df: %Core.IntLiteral.as.As.impl.Convert.type.2e9 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet.a28: %As.type.d4e = facet_value Core.IntLiteral, (%As.impl_witness.d7c) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.f25: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%u16, %As.facet.a28) [concrete] -// CHECK:STDOUT: %.011: type = fn_type_with_self_type %As.WithSelf.Convert.type.f25, %As.facet.a28 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.5c7: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.1df [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn.888: = specific_function %Core.IntLiteral.as.As.impl.Convert.1df, @Core.IntLiteral.as.As.impl.Convert.2(%int_16) [concrete] -// CHECK:STDOUT: %bound_method.937: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn.888 [concrete] -// CHECK:STDOUT: %int_1.d36: %u16 = int_value 1 [concrete] +// CHECK:STDOUT: %pattern_type.17c: type = pattern_type %u16 [concrete] +// CHECK:STDOUT: %As.type.ac3: type = facet_type <@As, @As(%u16)> [concrete] +// CHECK:STDOUT: %As.impl_witness.542: = impl_witness imports.%As.impl_witness_table.8fa, @Core.IntLiteral.as.As.impl.e51(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.fe7: type = fn_type @Core.IntLiteral.as.As.impl.Convert.2, @Core.IntLiteral.as.As.impl.e51(%int_16) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.210: %Core.IntLiteral.as.As.impl.Convert.type.fe7 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet.1a0: %As.type.ac3 = facet_value Core.IntLiteral, (%As.impl_witness.542) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.2d8: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%u16, %As.facet.1a0) [concrete] +// CHECK:STDOUT: %.477: type = fn_type_with_self_type %As.WithSelf.Convert.type.2d8, %As.facet.1a0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.4c1: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.210 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn.7a1: = specific_function %Core.IntLiteral.as.As.impl.Convert.210, @Core.IntLiteral.as.As.impl.Convert.2(%int_16) [concrete] +// CHECK:STDOUT: %bound_method.afc: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn.7a1 [concrete] +// CHECK:STDOUT: %int_1.071: %u16 = int_value 1 [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.126: type = pattern_type %u32 [concrete] -// CHECK:STDOUT: %As.type.1f3: type = facet_type <@As, @As(%u32)> [concrete] -// CHECK:STDOUT: %As.impl_witness.e23: = impl_witness imports.%As.impl_witness_table.613, @Core.IntLiteral.as.As.impl.e75(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.ad9: type = fn_type @Core.IntLiteral.as.As.impl.Convert.2, @Core.IntLiteral.as.As.impl.e75(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.046: %Core.IntLiteral.as.As.impl.Convert.type.ad9 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet.0eb: %As.type.1f3 = facet_value Core.IntLiteral, (%As.impl_witness.e23) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.027: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%u32, %As.facet.0eb) [concrete] -// CHECK:STDOUT: %.da2: type = fn_type_with_self_type %As.WithSelf.Convert.type.027, %As.facet.0eb [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.809: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.046 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn.98e: = specific_function %Core.IntLiteral.as.As.impl.Convert.046, @Core.IntLiteral.as.As.impl.Convert.2(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.51d: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn.98e [concrete] -// CHECK:STDOUT: %int_1.ce2: %u32 = int_value 1 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.f3b: type = pattern_type %f32.a26 [concrete] +// CHECK:STDOUT: %pattern_type.668: type = pattern_type %u32 [concrete] +// CHECK:STDOUT: %As.type.8bf: type = facet_type <@As, @As(%u32)> [concrete] +// CHECK:STDOUT: %As.impl_witness.384: = impl_witness imports.%As.impl_witness_table.8fa, @Core.IntLiteral.as.As.impl.e51(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.afd: type = fn_type @Core.IntLiteral.as.As.impl.Convert.2, @Core.IntLiteral.as.As.impl.e51(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.776: %Core.IntLiteral.as.As.impl.Convert.type.afd = struct_value () [concrete] +// CHECK:STDOUT: %As.facet.b9a: %As.type.8bf = facet_value Core.IntLiteral, (%As.impl_witness.384) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.adb: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%u32, %As.facet.b9a) [concrete] +// CHECK:STDOUT: %.74e: type = fn_type_with_self_type %As.WithSelf.Convert.type.adb, %As.facet.b9a [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.344: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.776 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn.cb8: = specific_function %Core.IntLiteral.as.As.impl.Convert.776, @Core.IntLiteral.as.As.impl.Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.6e7: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn.cb8 [concrete] +// CHECK:STDOUT: %int_1.92d: %u32 = int_value 1 [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %pattern_type.240: type = pattern_type %f32.c73 [concrete] // CHECK:STDOUT: %float.6daae3.1: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %As.type.533: type = facet_type <@As, @As(%f32.a26)> [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.bad: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.df8: %Core.FloatLiteral.as.As.impl.Convert.type.bad = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.7d6: = impl_witness imports.%As.impl_witness_table.302, @Core.FloatLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.459: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.c4a: %Core.FloatLiteral.as.As.impl.Convert.type.459 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet.c37: %As.type.533 = facet_value Core.FloatLiteral, (%As.impl_witness.7d6) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.823: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%f32.a26, %As.facet.c37) [concrete] -// CHECK:STDOUT: %.2d2: type = fn_type_with_self_type %As.WithSelf.Convert.type.823, %As.facet.c37 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bound.d5b: = bound_method %float.6daae3.1, %Core.FloatLiteral.as.As.impl.Convert.c4a [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.specific_fn.76a: = specific_function %Core.FloatLiteral.as.As.impl.Convert.c4a, @Core.FloatLiteral.as.As.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.53c: = bound_method %float.6daae3.1, %Core.FloatLiteral.as.As.impl.Convert.specific_fn.76a [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] +// CHECK:STDOUT: %As.type.093: type = facet_type <@As, @As(%f32.c73)> [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.69a: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.829: %Core.FloatLiteral.as.As.impl.Convert.type.69a = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.406: = impl_witness imports.%As.impl_witness_table.aa3, @Core.FloatLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.230: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.49e: %Core.FloatLiteral.as.As.impl.Convert.type.230 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet.161: %As.type.093 = facet_value Core.FloatLiteral, (%As.impl_witness.406) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.0fd: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%f32.c73, %As.facet.161) [concrete] +// CHECK:STDOUT: %.b4a: type = fn_type_with_self_type %As.WithSelf.Convert.type.0fd, %As.facet.161 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bound.004: = bound_method %float.6daae3.1, %Core.FloatLiteral.as.As.impl.Convert.49e [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.specific_fn.569: = specific_function %Core.FloatLiteral.as.As.impl.Convert.49e, @Core.FloatLiteral.as.As.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.f72: = bound_method %float.6daae3.1, %Core.FloatLiteral.as.As.impl.Convert.specific_fn.569 [concrete] +// CHECK:STDOUT: %float.943: %f32.c73 = float_value 1 [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [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: %float.6daae3.2: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %As.type.e53: type = facet_type <@As, @As(%f64.b55)> [concrete] -// CHECK:STDOUT: %As.impl_witness.cf2: = impl_witness imports.%As.impl_witness_table.302, @Core.FloatLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.8de: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bcc: %Core.FloatLiteral.as.As.impl.Convert.type.8de = struct_value () [concrete] -// CHECK:STDOUT: %As.facet.de6: %As.type.e53 = facet_value Core.FloatLiteral, (%As.impl_witness.cf2) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.d43: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%f64.b55, %As.facet.de6) [concrete] -// CHECK:STDOUT: %.f88: type = fn_type_with_self_type %As.WithSelf.Convert.type.d43, %As.facet.de6 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bound.fbd: = bound_method %float.6daae3.2, %Core.FloatLiteral.as.As.impl.Convert.bcc [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.specific_fn.083: = specific_function %Core.FloatLiteral.as.As.impl.Convert.bcc, @Core.FloatLiteral.as.As.impl.Convert(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.32f: = bound_method %float.6daae3.2, %Core.FloatLiteral.as.As.impl.Convert.specific_fn.083 [concrete] -// CHECK:STDOUT: %float.642: %f64.b55 = float_value 1 [concrete] +// CHECK:STDOUT: %As.type.0e0: type = facet_type <@As, @As(%f64.dc1)> [concrete] +// CHECK:STDOUT: %As.impl_witness.115: = impl_witness imports.%As.impl_witness_table.aa3, @Core.FloatLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.0cf: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.20d: %Core.FloatLiteral.as.As.impl.Convert.type.0cf = struct_value () [concrete] +// CHECK:STDOUT: %As.facet.24e: %As.type.0e0 = facet_value Core.FloatLiteral, (%As.impl_witness.115) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.4d9: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%f64.dc1, %As.facet.24e) [concrete] +// CHECK:STDOUT: %.e52: type = fn_type_with_self_type %As.WithSelf.Convert.type.4d9, %As.facet.24e [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bound.197: = bound_method %float.6daae3.2, %Core.FloatLiteral.as.As.impl.Convert.20d [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.specific_fn.417: = specific_function %Core.FloatLiteral.as.As.impl.Convert.20d, @Core.FloatLiteral.as.As.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.08b: = bound_method %float.6daae3.2, %Core.FloatLiteral.as.As.impl.Convert.specific_fn.417 [concrete] +// CHECK:STDOUT: %float.3b9: %f64.dc1 = float_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -246,28 +246,28 @@ fn F() { // CHECK:STDOUT: .double = @F.%f64.2 // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.8f3.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.8f3.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl.8f3 [concrete] -// CHECK:STDOUT: %Core.import_ref.8db: @Core.IntLiteral.as.As.impl.e75.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.150) = import_ref Core//prelude/parts/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.e75.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.b6a)] -// CHECK:STDOUT: %As.impl_witness_table.613 = impl_witness_table (%Core.import_ref.8db), @Core.IntLiteral.as.As.impl.e75 [concrete] -// CHECK:STDOUT: %Core.import_ref.81f: @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert.type (%Core.FloatLiteral.as.As.impl.Convert.type.bad) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert (constants.%Core.FloatLiteral.as.As.impl.Convert.df8)] -// CHECK:STDOUT: %As.impl_witness_table.302 = impl_witness_table (%Core.import_ref.81f), @Core.FloatLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.f25.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.f25.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl.f25 [concrete] +// CHECK:STDOUT: %Core.import_ref.59a: @Core.IntLiteral.as.As.impl.e51.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.fb3) = import_ref Core//prelude/parts/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.e51.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.f86)] +// CHECK:STDOUT: %As.impl_witness_table.8fa = impl_witness_table (%Core.import_ref.59a), @Core.IntLiteral.as.As.impl.e51 [concrete] +// CHECK:STDOUT: %Core.import_ref.c06: @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert.type (%Core.FloatLiteral.as.As.impl.Convert.type.69a) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert (constants.%Core.FloatLiteral.as.As.impl.Convert.829)] +// CHECK:STDOUT: %As.impl_witness_table.aa3 = impl_witness_table (%Core.import_ref.c06), @Core.FloatLiteral.as.As.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_signed_char.patt: %pattern_type.6f2 = value_binding_pattern cpp_signed_char [concrete] +// CHECK:STDOUT: %cpp_signed_char.patt: %pattern_type.0cf = value_binding_pattern cpp_signed_char [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i8.loc8: type = type_literal constants.%i8 [concrete = constants.%i8] -// CHECK:STDOUT: %impl.elem0.loc8: %.b16 = impl_witness_access constants.%As.impl_witness.815, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.b7e] -// CHECK:STDOUT: %bound_method.loc8_45.1: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.7cb] -// CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.As.impl.Convert.1(constants.%int_8) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn.95c] -// CHECK:STDOUT: %bound_method.loc8_45.2: = bound_method %int_1.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.9c1] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc8: init %i8 = call %bound_method.loc8_45.2(%int_1.loc8) [concrete = constants.%int_1.b30] -// CHECK:STDOUT: %.loc8_45.1: %i8 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc8 [concrete = constants.%int_1.b30] -// CHECK:STDOUT: %.loc8_45.2: %i8 = converted %int_1.loc8, %.loc8_45.1 [concrete = constants.%int_1.b30] +// CHECK:STDOUT: %impl.elem0.loc8: %.35a = impl_witness_access constants.%As.impl_witness.148, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.870] +// CHECK:STDOUT: %bound_method.loc8_45.1: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.555] +// CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.As.impl.Convert.1(constants.%int_8) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn.cf0] +// CHECK:STDOUT: %bound_method.loc8_45.2: = bound_method %int_1.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.a39] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc8: init %i8 = call %bound_method.loc8_45.2(%int_1.loc8) [concrete = constants.%int_1.f1e] +// CHECK:STDOUT: %.loc8_45.1: %i8 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc8 [concrete = constants.%int_1.f1e] +// CHECK:STDOUT: %.loc8_45.2: %i8 = converted %int_1.loc8, %.loc8_45.1 [concrete = constants.%int_1.f1e] // CHECK:STDOUT: %.loc8_28: type = splice_block %signed_char.ref [concrete = constants.%i8] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -275,23 +275,23 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_signed_char: %i8 = value_binding cpp_signed_char, %.loc8_45.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_signed_char.patt: %pattern_type.6f2 = value_binding_pattern carbon_signed_char [concrete] +// CHECK:STDOUT: %carbon_signed_char.patt: %pattern_type.0cf = value_binding_pattern carbon_signed_char [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_signed_char.ref: %i8 = name_ref cpp_signed_char, %cpp_signed_char // CHECK:STDOUT: %i8.loc9: type = type_literal constants.%i8 [concrete = constants.%i8] // CHECK:STDOUT: %carbon_signed_char: %i8 = value_binding carbon_signed_char, %cpp_signed_char.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_short.patt: %pattern_type.e1b = value_binding_pattern cpp_short [concrete] +// CHECK:STDOUT: %cpp_short.patt: %pattern_type.203 = value_binding_pattern cpp_short [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc11: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i16.loc11: type = type_literal constants.%i16 [concrete = constants.%i16] -// CHECK:STDOUT: %impl.elem0.loc11: %.696 = impl_witness_access constants.%As.impl_witness.16a, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.0b6] -// CHECK:STDOUT: %bound_method.loc11_33.1: = bound_method %int_1.loc11, %impl.elem0.loc11 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.6e7] -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11, @Core.IntLiteral.as.As.impl.Convert.1(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn.7ae] -// CHECK:STDOUT: %bound_method.loc11_33.2: = bound_method %int_1.loc11, %specific_fn.loc11 [concrete = constants.%bound_method.7f7] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc11: init %i16 = call %bound_method.loc11_33.2(%int_1.loc11) [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc11_33.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc11 [concrete = constants.%int_1.792] -// CHECK:STDOUT: %.loc11_33.2: %i16 = converted %int_1.loc11, %.loc11_33.1 [concrete = constants.%int_1.792] +// CHECK:STDOUT: %impl.elem0.loc11: %.6b5 = impl_witness_access constants.%As.impl_witness.820, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.70c] +// CHECK:STDOUT: %bound_method.loc11_33.1: = bound_method %int_1.loc11, %impl.elem0.loc11 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.544] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11, @Core.IntLiteral.as.As.impl.Convert.1(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn.07a] +// CHECK:STDOUT: %bound_method.loc11_33.2: = bound_method %int_1.loc11, %specific_fn.loc11 [concrete = constants.%bound_method.a0f] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc11: init %i16 = call %bound_method.loc11_33.2(%int_1.loc11) [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc11_33.1: %i16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc11 [concrete = constants.%int_1.d17] +// CHECK:STDOUT: %.loc11_33.2: %i16 = converted %int_1.loc11, %.loc11_33.1 [concrete = constants.%int_1.d17] // CHECK:STDOUT: %.loc11_22: type = splice_block %short.ref [concrete = constants.%i16] { // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -299,23 +299,23 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_short: %i16 = value_binding cpp_short, %.loc11_33.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_short.patt: %pattern_type.e1b = value_binding_pattern carbon_short [concrete] +// CHECK:STDOUT: %carbon_short.patt: %pattern_type.203 = value_binding_pattern carbon_short [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_short.ref: %i16 = name_ref cpp_short, %cpp_short // CHECK:STDOUT: %i16.loc12: type = type_literal constants.%i16 [concrete = constants.%i16] // CHECK:STDOUT: %carbon_short: %i16 = value_binding carbon_short, %cpp_short.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_int.patt: %pattern_type.104 = value_binding_pattern cpp_int [concrete] +// CHECK:STDOUT: %cpp_int.patt: %pattern_type.6b6 = value_binding_pattern cpp_int [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc14: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i32.loc14: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc14: %.c18 = impl_witness_access constants.%As.impl_witness.54d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.978] -// CHECK:STDOUT: %bound_method.loc14_29.1: = bound_method %int_1.loc14, %impl.elem0.loc14 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.62b] -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Core.IntLiteral.as.As.impl.Convert.1(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn.75d] -// CHECK:STDOUT: %bound_method.loc14_29.2: = bound_method %int_1.loc14, %specific_fn.loc14 [concrete = constants.%bound_method.38f] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc14: init %i32 = call %bound_method.loc14_29.2(%int_1.loc14) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc14_29.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc14 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc14_29.2: %i32 = converted %int_1.loc14, %.loc14_29.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %impl.elem0.loc14: %.fbc = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.8a4] +// CHECK:STDOUT: %bound_method.loc14_29.1: = bound_method %int_1.loc14, %impl.elem0.loc14 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.3a0] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Core.IntLiteral.as.As.impl.Convert.1(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn.923] +// CHECK:STDOUT: %bound_method.loc14_29.2: = bound_method %int_1.loc14, %specific_fn.loc14 [concrete = constants.%bound_method.18b] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc14: init %i32 = call %bound_method.loc14_29.2(%int_1.loc14) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc14_29.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc14 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc14_29.2: %i32 = converted %int_1.loc14, %.loc14_29.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc14_20: type = splice_block %int.ref [concrete = constants.%i32] { // CHECK:STDOUT: %Cpp.ref.loc14: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -323,23 +323,23 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_int: %i32 = value_binding cpp_int, %.loc14_29.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_int.patt: %pattern_type.104 = value_binding_pattern carbon_int [concrete] +// CHECK:STDOUT: %carbon_int.patt: %pattern_type.6b6 = value_binding_pattern carbon_int [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_int.ref: %i32 = name_ref cpp_int, %cpp_int // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %carbon_int: %i32 = value_binding carbon_int, %cpp_int.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_unsigned_char.patt: %pattern_type.753 = value_binding_pattern cpp_unsigned_char [concrete] +// CHECK:STDOUT: %cpp_unsigned_char.patt: %pattern_type.186 = value_binding_pattern cpp_unsigned_char [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc17: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %u8.loc17: type = type_literal constants.%u8 [concrete = constants.%u8] -// CHECK:STDOUT: %impl.elem0.loc17: %.96b = impl_witness_access constants.%As.impl_witness.d5d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.351] -// CHECK:STDOUT: %bound_method.loc17_49.1: = bound_method %int_1.loc17, %impl.elem0.loc17 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.07b] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Core.IntLiteral.as.As.impl.Convert.2(constants.%int_8) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn.4ad] -// CHECK:STDOUT: %bound_method.loc17_49.2: = bound_method %int_1.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.579] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc17: init %u8 = call %bound_method.loc17_49.2(%int_1.loc17) [concrete = constants.%int_1.96a] -// CHECK:STDOUT: %.loc17_49.1: %u8 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc17 [concrete = constants.%int_1.96a] -// CHECK:STDOUT: %.loc17_49.2: %u8 = converted %int_1.loc17, %.loc17_49.1 [concrete = constants.%int_1.96a] +// CHECK:STDOUT: %impl.elem0.loc17: %.ec5 = impl_witness_access constants.%As.impl_witness.119, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.2f0] +// CHECK:STDOUT: %bound_method.loc17_49.1: = bound_method %int_1.loc17, %impl.elem0.loc17 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.7d9] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Core.IntLiteral.as.As.impl.Convert.2(constants.%int_8) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn.cbf] +// CHECK:STDOUT: %bound_method.loc17_49.2: = bound_method %int_1.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.43e] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc17: init %u8 = call %bound_method.loc17_49.2(%int_1.loc17) [concrete = constants.%int_1.067] +// CHECK:STDOUT: %.loc17_49.1: %u8 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc17 [concrete = constants.%int_1.067] +// CHECK:STDOUT: %.loc17_49.2: %u8 = converted %int_1.loc17, %.loc17_49.1 [concrete = constants.%int_1.067] // CHECK:STDOUT: %.loc17_30: type = splice_block %unsigned_char.ref [concrete = constants.%u8] { // CHECK:STDOUT: %Cpp.ref.loc17: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -347,23 +347,23 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_unsigned_char: %u8 = value_binding cpp_unsigned_char, %.loc17_49.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_unsigned_char.patt: %pattern_type.753 = value_binding_pattern carbon_unsigned_char [concrete] +// CHECK:STDOUT: %carbon_unsigned_char.patt: %pattern_type.186 = value_binding_pattern carbon_unsigned_char [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_unsigned_char.ref: %u8 = name_ref cpp_unsigned_char, %cpp_unsigned_char // CHECK:STDOUT: %u8.loc18: type = type_literal constants.%u8 [concrete = constants.%u8] // CHECK:STDOUT: %carbon_unsigned_char: %u8 = value_binding carbon_unsigned_char, %cpp_unsigned_char.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_unsigned_short.patt: %pattern_type.4d0 = value_binding_pattern cpp_unsigned_short [concrete] +// CHECK:STDOUT: %cpp_unsigned_short.patt: %pattern_type.17c = value_binding_pattern cpp_unsigned_short [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc20: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %u16.loc20: type = type_literal constants.%u16 [concrete = constants.%u16] -// CHECK:STDOUT: %impl.elem0.loc20: %.011 = impl_witness_access constants.%As.impl_witness.d7c, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.1df] -// CHECK:STDOUT: %bound_method.loc20_51.1: = bound_method %int_1.loc20, %impl.elem0.loc20 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.5c7] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Core.IntLiteral.as.As.impl.Convert.2(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn.888] -// CHECK:STDOUT: %bound_method.loc20_51.2: = bound_method %int_1.loc20, %specific_fn.loc20 [concrete = constants.%bound_method.937] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc20: init %u16 = call %bound_method.loc20_51.2(%int_1.loc20) [concrete = constants.%int_1.d36] -// CHECK:STDOUT: %.loc20_51.1: %u16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc20 [concrete = constants.%int_1.d36] -// CHECK:STDOUT: %.loc20_51.2: %u16 = converted %int_1.loc20, %.loc20_51.1 [concrete = constants.%int_1.d36] +// CHECK:STDOUT: %impl.elem0.loc20: %.477 = impl_witness_access constants.%As.impl_witness.542, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.210] +// CHECK:STDOUT: %bound_method.loc20_51.1: = bound_method %int_1.loc20, %impl.elem0.loc20 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.4c1] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Core.IntLiteral.as.As.impl.Convert.2(constants.%int_16) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn.7a1] +// CHECK:STDOUT: %bound_method.loc20_51.2: = bound_method %int_1.loc20, %specific_fn.loc20 [concrete = constants.%bound_method.afc] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc20: init %u16 = call %bound_method.loc20_51.2(%int_1.loc20) [concrete = constants.%int_1.071] +// CHECK:STDOUT: %.loc20_51.1: %u16 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc20 [concrete = constants.%int_1.071] +// CHECK:STDOUT: %.loc20_51.2: %u16 = converted %int_1.loc20, %.loc20_51.1 [concrete = constants.%int_1.071] // CHECK:STDOUT: %.loc20_31: type = splice_block %unsigned_short.ref [concrete = constants.%u16] { // CHECK:STDOUT: %Cpp.ref.loc20: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -371,23 +371,23 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_unsigned_short: %u16 = value_binding cpp_unsigned_short, %.loc20_51.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_unsigned_short.patt: %pattern_type.4d0 = value_binding_pattern carbon_unsigned_short [concrete] +// CHECK:STDOUT: %carbon_unsigned_short.patt: %pattern_type.17c = value_binding_pattern carbon_unsigned_short [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_unsigned_short.ref: %u16 = name_ref cpp_unsigned_short, %cpp_unsigned_short // CHECK:STDOUT: %u16.loc21: type = type_literal constants.%u16 [concrete = constants.%u16] // CHECK:STDOUT: %carbon_unsigned_short: %u16 = value_binding carbon_unsigned_short, %cpp_unsigned_short.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_unsigned_int.patt: %pattern_type.126 = value_binding_pattern cpp_unsigned_int [concrete] +// CHECK:STDOUT: %cpp_unsigned_int.patt: %pattern_type.668 = value_binding_pattern cpp_unsigned_int [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc23: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %u32.loc23: type = type_literal constants.%u32 [concrete = constants.%u32] -// CHECK:STDOUT: %impl.elem0.loc23: %.da2 = impl_witness_access constants.%As.impl_witness.e23, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.046] -// CHECK:STDOUT: %bound_method.loc23_47.1: = bound_method %int_1.loc23, %impl.elem0.loc23 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.809] -// CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Core.IntLiteral.as.As.impl.Convert.2(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn.98e] -// CHECK:STDOUT: %bound_method.loc23_47.2: = bound_method %int_1.loc23, %specific_fn.loc23 [concrete = constants.%bound_method.51d] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc23: init %u32 = call %bound_method.loc23_47.2(%int_1.loc23) [concrete = constants.%int_1.ce2] -// CHECK:STDOUT: %.loc23_47.1: %u32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc23 [concrete = constants.%int_1.ce2] -// CHECK:STDOUT: %.loc23_47.2: %u32 = converted %int_1.loc23, %.loc23_47.1 [concrete = constants.%int_1.ce2] +// CHECK:STDOUT: %impl.elem0.loc23: %.74e = impl_witness_access constants.%As.impl_witness.384, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.776] +// CHECK:STDOUT: %bound_method.loc23_47.1: = bound_method %int_1.loc23, %impl.elem0.loc23 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.344] +// CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Core.IntLiteral.as.As.impl.Convert.2(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn.cb8] +// CHECK:STDOUT: %bound_method.loc23_47.2: = bound_method %int_1.loc23, %specific_fn.loc23 [concrete = constants.%bound_method.6e7] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc23: init %u32 = call %bound_method.loc23_47.2(%int_1.loc23) [concrete = constants.%int_1.92d] +// CHECK:STDOUT: %.loc23_47.1: %u32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc23 [concrete = constants.%int_1.92d] +// CHECK:STDOUT: %.loc23_47.2: %u32 = converted %int_1.loc23, %.loc23_47.1 [concrete = constants.%int_1.92d] // CHECK:STDOUT: %.loc23_29: type = splice_block %unsigned_int.ref [concrete = constants.%u32] { // CHECK:STDOUT: %Cpp.ref.loc23: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: @@ -395,59 +395,59 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_unsigned_int: %u32 = value_binding cpp_unsigned_int, %.loc23_47.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_unsigned_int.patt: %pattern_type.126 = value_binding_pattern carbon_unsigned_int [concrete] +// CHECK:STDOUT: %carbon_unsigned_int.patt: %pattern_type.668 = value_binding_pattern carbon_unsigned_int [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_unsigned_int.ref: %u32 = name_ref cpp_unsigned_int, %cpp_unsigned_int // CHECK:STDOUT: %u32.loc24: type = type_literal constants.%u32 [concrete = constants.%u32] // CHECK:STDOUT: %carbon_unsigned_int: %u32 = value_binding carbon_unsigned_int, %cpp_unsigned_int.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_float.patt: %pattern_type.f3b = value_binding_pattern cpp_float [concrete] +// CHECK:STDOUT: %cpp_float.patt: %pattern_type.240 = value_binding_pattern cpp_float [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %float.loc26: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6daae3.1] -// CHECK:STDOUT: %f32.loc26: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %impl.elem0.loc26: %.2d2 = impl_witness_access constants.%As.impl_witness.7d6, element0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.c4a] -// CHECK:STDOUT: %bound_method.loc26_35.1: = bound_method %float.loc26, %impl.elem0.loc26 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.bound.d5b] -// CHECK:STDOUT: %specific_fn.loc26: = specific_function %impl.elem0.loc26, @Core.FloatLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.specific_fn.76a] -// CHECK:STDOUT: %bound_method.loc26_35.2: = bound_method %float.loc26, %specific_fn.loc26 [concrete = constants.%bound_method.53c] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.call.loc26: init %f32.a26 = call %bound_method.loc26_35.2(%float.loc26) [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc26_35.1: %f32.a26 = value_of_initializer %Core.FloatLiteral.as.As.impl.Convert.call.loc26 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc26_35.2: %f32.a26 = converted %float.loc26, %.loc26_35.1 [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc26_22: type = splice_block %float.ref [concrete = constants.%f32.a26] { +// CHECK:STDOUT: %f32.loc26: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %impl.elem0.loc26: %.b4a = impl_witness_access constants.%As.impl_witness.406, element0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.49e] +// CHECK:STDOUT: %bound_method.loc26_35.1: = bound_method %float.loc26, %impl.elem0.loc26 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.bound.004] +// CHECK:STDOUT: %specific_fn.loc26: = specific_function %impl.elem0.loc26, @Core.FloatLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.specific_fn.569] +// CHECK:STDOUT: %bound_method.loc26_35.2: = bound_method %float.loc26, %specific_fn.loc26 [concrete = constants.%bound_method.f72] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.call.loc26: init %f32.c73 = call %bound_method.loc26_35.2(%float.loc26) [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc26_35.1: %f32.c73 = value_of_initializer %Core.FloatLiteral.as.As.impl.Convert.call.loc26 [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc26_35.2: %f32.c73 = converted %float.loc26, %.loc26_35.1 [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc26_22: type = splice_block %float.ref [concrete = constants.%f32.c73] { // CHECK:STDOUT: %Cpp.ref.loc26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %float.ref: type = name_ref float, %f32.2 [concrete = constants.%f32.a26] +// CHECK:STDOUT: %float.ref: type = name_ref float, %f32.2 [concrete = constants.%f32.c73] // CHECK:STDOUT: } -// CHECK:STDOUT: %cpp_float: %f32.a26 = value_binding cpp_float, %.loc26_35.2 +// CHECK:STDOUT: %cpp_float: %f32.c73 = value_binding cpp_float, %.loc26_35.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_float.patt: %pattern_type.f3b = value_binding_pattern carbon_float [concrete] +// CHECK:STDOUT: %carbon_float.patt: %pattern_type.240 = value_binding_pattern carbon_float [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %cpp_float.ref: %f32.a26 = name_ref cpp_float, %cpp_float -// CHECK:STDOUT: %f32.loc27: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %carbon_float: %f32.a26 = value_binding carbon_float, %cpp_float.ref +// CHECK:STDOUT: %cpp_float.ref: %f32.c73 = name_ref cpp_float, %cpp_float +// CHECK:STDOUT: %f32.loc27: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %carbon_float: %f32.c73 = value_binding carbon_float, %cpp_float.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_double.patt: %pattern_type.f3c = value_binding_pattern cpp_double [concrete] +// CHECK:STDOUT: %cpp_double.patt: %pattern_type.fb7 = value_binding_pattern cpp_double [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %float.loc29: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6daae3.2] -// CHECK:STDOUT: %f64.loc29: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %impl.elem0.loc29: %.f88 = impl_witness_access constants.%As.impl_witness.cf2, element0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.bcc] -// CHECK:STDOUT: %bound_method.loc29_37.1: = bound_method %float.loc29, %impl.elem0.loc29 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.bound.fbd] -// CHECK:STDOUT: %specific_fn.loc29: = specific_function %impl.elem0.loc29, @Core.FloatLiteral.as.As.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.specific_fn.083] -// CHECK:STDOUT: %bound_method.loc29_37.2: = bound_method %float.loc29, %specific_fn.loc29 [concrete = constants.%bound_method.32f] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.call.loc29: init %f64.b55 = call %bound_method.loc29_37.2(%float.loc29) [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc29_37.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.As.impl.Convert.call.loc29 [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc29_37.2: %f64.b55 = converted %float.loc29, %.loc29_37.1 [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc29_23: type = splice_block %double.ref [concrete = constants.%f64.b55] { +// CHECK:STDOUT: %f64.loc29: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %impl.elem0.loc29: %.e52 = impl_witness_access constants.%As.impl_witness.115, element0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.20d] +// CHECK:STDOUT: %bound_method.loc29_37.1: = bound_method %float.loc29, %impl.elem0.loc29 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.bound.197] +// CHECK:STDOUT: %specific_fn.loc29: = specific_function %impl.elem0.loc29, @Core.FloatLiteral.as.As.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.specific_fn.417] +// CHECK:STDOUT: %bound_method.loc29_37.2: = bound_method %float.loc29, %specific_fn.loc29 [concrete = constants.%bound_method.08b] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.call.loc29: init %f64.dc1 = call %bound_method.loc29_37.2(%float.loc29) [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc29_37.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.As.impl.Convert.call.loc29 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc29_37.2: %f64.dc1 = converted %float.loc29, %.loc29_37.1 [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc29_23: type = splice_block %double.ref [concrete = constants.%f64.dc1] { // CHECK:STDOUT: %Cpp.ref.loc29: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: -// CHECK:STDOUT: %double.ref: type = name_ref double, %f64.2 [concrete = constants.%f64.b55] +// CHECK:STDOUT: %double.ref: type = name_ref double, %f64.2 [concrete = constants.%f64.dc1] // CHECK:STDOUT: } -// CHECK:STDOUT: %cpp_double: %f64.b55 = value_binding cpp_double, %.loc29_37.2 +// CHECK:STDOUT: %cpp_double: %f64.dc1 = value_binding cpp_double, %.loc29_37.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_double.patt: %pattern_type.f3c = value_binding_pattern carbon_double [concrete] +// CHECK:STDOUT: %carbon_double.patt: %pattern_type.fb7 = value_binding_pattern carbon_double [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %cpp_double.ref: %f64.b55 = name_ref cpp_double, %cpp_double -// CHECK:STDOUT: %f64.loc30: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %carbon_double: %f64.b55 = value_binding carbon_double, %cpp_double.ref +// CHECK:STDOUT: %cpp_double.ref: %f64.dc1 = name_ref cpp_double, %cpp_double +// CHECK:STDOUT: %f64.loc30: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %carbon_double: %f64.dc1 = value_binding carbon_double, %cpp_double.ref // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -456,27 +456,27 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %As.type.e53: type = facet_type <@As, @As(%f64.b55)> [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %As.type.0e0: type = facet_type <@As, @As(%f64.dc1)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.bad: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.df8: %Core.FloatLiteral.as.As.impl.Convert.type.bad = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.cf2: = impl_witness imports.%As.impl_witness_table, @Core.FloatLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.8de: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bcc: %Core.FloatLiteral.as.As.impl.Convert.type.8de = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.e53 = facet_value Core.FloatLiteral, (%As.impl_witness.cf2) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.d43: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%f64.b55, %As.facet) [concrete] -// CHECK:STDOUT: %.f88: type = fn_type_with_self_type %As.WithSelf.Convert.type.d43, %As.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.As.impl.Convert.bcc [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.As.impl.Convert.bcc, @Core.FloatLiteral.as.As.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.69a: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.829: %Core.FloatLiteral.as.As.impl.Convert.type.69a = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.115: = impl_witness imports.%As.impl_witness_table, @Core.FloatLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.type.0cf: type = fn_type @Core.FloatLiteral.as.As.impl.Convert, @Core.FloatLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.20d: %Core.FloatLiteral.as.As.impl.Convert.type.0cf = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.0e0 = facet_value Core.FloatLiteral, (%As.impl_witness.115) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.4d9: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%f64.dc1, %As.facet) [concrete] +// CHECK:STDOUT: %.e52: type = fn_type_with_self_type %As.WithSelf.Convert.type.4d9, %As.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.As.impl.Convert.20d [concrete] +// CHECK:STDOUT: %pattern_type.fb7: type = pattern_type %f64.dc1 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.As.impl.Convert.20d, @Core.FloatLiteral.as.As.impl.Convert(%int_64) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %float.6da, %Core.FloatLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.642: %f64.b55 = float_value 1 [concrete] +// CHECK:STDOUT: %float.3b9: %f64.dc1 = float_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.81f: @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert.type (%Core.FloatLiteral.as.As.impl.Convert.type.bad) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert (constants.%Core.FloatLiteral.as.As.impl.Convert.df8)] -// CHECK:STDOUT: %As.impl_witness_table = impl_witness_table (%Core.import_ref.81f), @Core.FloatLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c06: @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert.type (%Core.FloatLiteral.as.As.impl.Convert.type.69a) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.As.impl.%Core.FloatLiteral.as.As.impl.Convert (constants.%Core.FloatLiteral.as.As.impl.Convert.829)] +// CHECK:STDOUT: %As.impl_witness_table = impl_witness_table (%Core.import_ref.c06), @Core.FloatLiteral.as.As.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -485,22 +485,22 @@ fn F() { // CHECK:STDOUT: %cpp_long_double.patt: = value_binding_pattern cpp_long_double [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] -// CHECK:STDOUT: %f64.loc15: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %impl.elem0: %.f88 = impl_witness_access constants.%As.impl_witness.cf2, element0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.bcc] +// CHECK:STDOUT: %f64.loc15: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %impl.elem0: %.e52 = impl_witness_access constants.%As.impl_witness.115, element0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.20d] // CHECK:STDOUT: %bound_method.loc15_47.1: = bound_method %float, %impl.elem0 [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.FloatLiteral.as.As.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_47.2: = bound_method %float, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.call: init %f64.b55 = call %bound_method.loc15_47.2(%float) [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc15_47.1: %f64.b55 = value_of_initializer %Core.FloatLiteral.as.As.impl.Convert.call [concrete = constants.%float.642] -// CHECK:STDOUT: %.loc15_47.2: %f64.b55 = converted %float, %.loc15_47.1 [concrete = constants.%float.642] +// CHECK:STDOUT: %Core.FloatLiteral.as.As.impl.Convert.call: init %f64.dc1 = call %bound_method.loc15_47.2(%float) [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc15_47.1: %f64.dc1 = value_of_initializer %Core.FloatLiteral.as.As.impl.Convert.call [concrete = constants.%float.3b9] +// CHECK:STDOUT: %.loc15_47.2: %f64.dc1 = converted %float, %.loc15_47.1 [concrete = constants.%float.3b9] // CHECK:STDOUT: // CHECK:STDOUT: %cpp_long_double: = value_binding cpp_long_double, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_long_double.patt: %pattern_type.f3c = value_binding_pattern carbon_long_double [concrete] +// CHECK:STDOUT: %carbon_long_double.patt: %pattern_type.fb7 = value_binding_pattern carbon_long_double [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_long_double.ref: = name_ref cpp_long_double, %cpp_long_double [concrete = ] -// CHECK:STDOUT: %f64.loc16: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %carbon_long_double: %f64.b55 = value_binding carbon_long_double, [concrete = ] +// CHECK:STDOUT: %f64.loc16: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %carbon_long_double: %f64.dc1 = value_binding carbon_long_double, [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -509,21 +509,21 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %unsigned_int: type = class_type @unsigned_int [concrete] -// CHECK:STDOUT: %pattern_type.9ac: type = pattern_type %unsigned_int [concrete] +// CHECK:STDOUT: %pattern_type.990: type = pattern_type %unsigned_int [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] -// CHECK:STDOUT: %T.e5a: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.e5a) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.eab: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d = struct_value () [symbolic] +// CHECK:STDOUT: %T.b09: %Default.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.b09) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.cfe: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9 = struct_value () [symbolic] // CHECK:STDOUT: %unsigned_int.Op.type: type = fn_type @unsigned_int.Op [concrete] // CHECK:STDOUT: %unsigned_int.Op: %unsigned_int.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26: = custom_witness (%unsigned_int.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.6ce: %Default.type = facet_value %unsigned_int, (%custom_witness.b26) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.7d5: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.6ce) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %unsigned_int, (%DefaultOrUnformed.impl_witness.7d5) [concrete] +// CHECK:STDOUT: %custom_witness.9b4: = custom_witness (%unsigned_int.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.d96: %Default.type = facet_value %unsigned_int, (%custom_witness.9b4) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.a47: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.d96) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %unsigned_int, (%DefaultOrUnformed.impl_witness.a47) [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.126: type = pattern_type %u32 [concrete] +// CHECK:STDOUT: %pattern_type.668: type = pattern_type %u32 [concrete] // CHECK:STDOUT: %unsigned_int.foo.cpp_overload_set.type: type = cpp_overload_set_type @unsigned_int.foo.cpp_overload_set [concrete] // CHECK:STDOUT: %unsigned_int.foo.cpp_overload_set.value: %unsigned_int.foo.cpp_overload_set.type = cpp_overload_set_value @unsigned_int.foo.cpp_overload_set [concrete] // CHECK:STDOUT: %unsigned_int.foo.type: type = fn_type @unsigned_int.foo [concrete] @@ -538,8 +538,8 @@ fn F() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %unsigned_int.decl: type = class_decl @unsigned_int [concrete = constants.%unsigned_int] {} {} -// CHECK:STDOUT: %Core.import_ref.a03: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.38d) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.eab)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.48a = impl_witness_table (%Core.import_ref.a03), @T.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c2f: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.cfe)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.670 = impl_witness_table (%Core.import_ref.c2f), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %unsigned_int.foo.cpp_overload_set.value: %unsigned_int.foo.cpp_overload_set.type = cpp_overload_set_value @unsigned_int.foo.cpp_overload_set [concrete = constants.%unsigned_int.foo.cpp_overload_set.value] // CHECK:STDOUT: %unsigned_int.foo.decl: %unsigned_int.foo.type = fn_decl @unsigned_int.foo [concrete = constants.%unsigned_int.foo] { // CHECK:STDOUT: @@ -551,11 +551,11 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %unsigned_int.patt: %pattern_type.9ac = ref_binding_pattern unsigned_int [concrete] -// CHECK:STDOUT: %unsigned_int.var_patt: %pattern_type.9ac = var_pattern %unsigned_int.patt [concrete] +// CHECK:STDOUT: %unsigned_int.patt: %pattern_type.990 = ref_binding_pattern unsigned_int [concrete] +// CHECK:STDOUT: %unsigned_int.var_patt: %pattern_type.990 = var_pattern %unsigned_int.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %unsigned_int.var: ref %unsigned_int = var %unsigned_int.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%unsigned_int, (constants.%DefaultOrUnformed.impl_witness.7d5) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%unsigned_int, (constants.%DefaultOrUnformed.impl_witness.a47) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc12_38.1: %DefaultOrUnformed.type = converted constants.%unsigned_int, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc12_38.1 [concrete = constants.%unsigned_int] // CHECK:STDOUT: %.loc12_38.2: type = converted %.loc12_38.1, %as_type [concrete = constants.%unsigned_int] @@ -569,7 +569,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %unsigned_int: ref %unsigned_int = ref_binding unsigned_int, %unsigned_int.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.126 = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.668 = value_binding_pattern x [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %unsigned_int.ref.loc13: ref %unsigned_int = name_ref unsigned_int, %unsigned_int // CHECK:STDOUT: %foo.ref: %unsigned_int.foo.cpp_overload_set.type = name_ref foo, imports.%unsigned_int.foo.cpp_overload_set.value [concrete = constants.%unsigned_int.foo.cpp_overload_set.value] 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 a8a43713fc76..098d2390237d 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 @@ -690,72 +690,72 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.fdd: type = pattern_type %i64 [concrete] +// CHECK:STDOUT: %pattern_type.f57: type = pattern_type %i64 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.08a: type = facet_type <@ImplicitAs, @ImplicitAs(%i64)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.221: type = facet_type <@ImplicitAs, @ImplicitAs(%i64)> [concrete] // CHECK:STDOUT: %To.fe9: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %From.fe9: Core.IntLiteral = symbolic_binding From, 0 [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.f73: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From.fe9) [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.34b: %Int.as.ImplicitAs.impl.Convert.type.f73 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.35c: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.fc2: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.fc2 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.8a1: %ImplicitAs.type.08a = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.35c) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.744: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i64, %ImplicitAs.facet.8a1) [concrete] -// CHECK:STDOUT: %.d4c: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.744, %ImplicitAs.facet.8a1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5, @Core.IntLiteral.as.ImplicitAs.impl.Convert.1(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.072: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.0f3: %i64 = int_value 1 [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.48d: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From.fe9) [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.0f9: %Int.as.ImplicitAs.impl.Convert.type.48d = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.091: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.55a: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.55a = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.6e8: %ImplicitAs.type.221 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.091) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.a04: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i64, %ImplicitAs.facet.6e8) [concrete] +// CHECK:STDOUT: %.f34: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.a04, %ImplicitAs.facet.6e8 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b, @Core.IntLiteral.as.ImplicitAs.impl.Convert.1(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.c5e: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.d98: %i64 = int_value 1 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %As.type.b69: type = facet_type <@As, @As(%i64)> [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.0e9: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.8db: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.fb1: %Core.IntLiteral.as.As.impl.Convert.type.8db = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.b69 = facet_value Core.IntLiteral, (%As.impl_witness.0e9) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.553: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i64, %As.facet) [concrete] -// CHECK:STDOUT: %.9b9: type = fn_type_with_self_type %As.WithSelf.Convert.type.553, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.fb1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.fb1, @Core.IntLiteral.as.As.impl.Convert(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.b27: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.4e4: = impl_witness imports.%ImplicitAs.impl_witness_table.eac, @Int.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.382: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.63c: %Int.as.ImplicitAs.impl.Convert.type.382 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.643: %ImplicitAs.type.ace = facet_value %i64, (%ImplicitAs.impl_witness.4e4) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.aac: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.643) [concrete] -// CHECK:STDOUT: %.737: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.aac, %ImplicitAs.facet.643 [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.0f3, %Int.as.ImplicitAs.impl.Convert.63c [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.63c, @Int.as.ImplicitAs.impl.Convert(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.e78: = bound_method %int_1.0f3, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.a26 [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %As.type.998: type = facet_type <@As, @As(%i64)> [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.2e1: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.1a1: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.3d9: %Core.IntLiteral.as.As.impl.Convert.type.1a1 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.998 = facet_value Core.IntLiteral, (%As.impl_witness.2e1) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.2b4: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i64, %As.facet) [concrete] +// CHECK:STDOUT: %.01b: type = fn_type_with_self_type %As.WithSelf.Convert.type.2b4, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.3d9 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.3d9, @Core.IntLiteral.as.As.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.991: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a75: = impl_witness imports.%ImplicitAs.impl_witness_table.b8b, @Int.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.ad9: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.be5: %Int.as.ImplicitAs.impl.Convert.type.ad9 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.cee: %ImplicitAs.type.7cb = facet_value %i64, (%ImplicitAs.impl_witness.a75) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.004: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.cee) [concrete] +// CHECK:STDOUT: %.779: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.004, %ImplicitAs.facet.cee [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.d98, %Int.as.ImplicitAs.impl.Convert.be5 [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.be5, @Int.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.e21: = bound_method %int_1.d98, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.c73 [concrete] // CHECK:STDOUT: %f32.9b3: type = float_type %int_32, f32 [concrete] -// CHECK:STDOUT: %pattern_type.aab: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.18b: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.FloatLiteral) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%float.6da) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.d0d: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.a26)> [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.65d: = impl_witness imports.%ImplicitAs.impl_witness_table.234, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.82a: %ImplicitAs.type.d0d = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.65d) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c87: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.a26, %ImplicitAs.facet.82a) [concrete] -// CHECK:STDOUT: %.3a8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c87, %ImplicitAs.facet.82a [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.aaa: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%float.2ec) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc11_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.ed3: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.c73)> [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.303: = impl_witness imports.%ImplicitAs.impl_witness_table.393, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.65e: %ImplicitAs.type.ed3 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.303) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2e4: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.c73, %ImplicitAs.facet.65e) [concrete] +// CHECK:STDOUT: %.17b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2e4, %ImplicitAs.facet.65e [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -763,20 +763,20 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: .long_long = @F.%i64.2 // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] -// CHECK:STDOUT: %Core.import_ref.835: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.f73) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.34b)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.eac = impl_witness_table (%Core.import_ref.835), @Int.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.63cb: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.234 = impl_witness_table (%Core.import_ref.63cb), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] +// CHECK:STDOUT: %Core.import_ref.32e: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.48d) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.0f9)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b8b = impl_witness_table (%Core.import_ref.32e), @Int.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.393 = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_long_long.patt: %pattern_type.fdd = value_binding_pattern cpp_long_long [concrete] +// CHECK:STDOUT: %cpp_long_long.patt: %pattern_type.f57 = value_binding_pattern cpp_long_long [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc8_25: type = splice_block %long_long.ref.loc8 [concrete = constants.%i64] { @@ -784,69 +784,69 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: // CHECK:STDOUT: %long_long.ref.loc8: type = name_ref long_long, %i64.2 [concrete = constants.%i64] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc8: %.d4c = impl_witness_access constants.%ImplicitAs.impl_witness.35c, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5] +// CHECK:STDOUT: %impl.elem0.loc8: %.f34 = impl_witness_access constants.%ImplicitAs.impl_witness.091, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b] // CHECK:STDOUT: %bound_method.loc8_38.1: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.ImplicitAs.impl.Convert.1(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_38.2: = bound_method %int_1.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.072] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i64 = call %bound_method.loc8_38.2(%int_1.loc8) [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %.loc8_38.1: %i64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %.loc8_38.2: %i64 = converted %int_1.loc8, %.loc8_38.1 [concrete = constants.%int_1.0f3] +// CHECK:STDOUT: %bound_method.loc8_38.2: = bound_method %int_1.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.c5e] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i64 = call %bound_method.loc8_38.2(%int_1.loc8) [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc8_38.1: %i64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc8_38.2: %i64 = converted %int_1.loc8, %.loc8_38.1 [concrete = constants.%int_1.d98] // CHECK:STDOUT: %cpp_long_long: %i64 = value_binding cpp_long_long, %.loc8_38.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_long_long.patt: %pattern_type.fdd = value_binding_pattern carbon_long_long [concrete] +// CHECK:STDOUT: %carbon_long_long.patt: %pattern_type.f57 = value_binding_pattern carbon_long_long [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_long_long.ref: %i64 = name_ref cpp_long_long, %cpp_long_long // CHECK:STDOUT: %i64.loc9: type = type_literal constants.%i64 [concrete = constants.%i64] // CHECK:STDOUT: %carbon_long_long: %i64 = value_binding carbon_long_long, %cpp_long_long.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.aab = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.aab = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %array_type = var %a.var_patt // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] // CHECK:STDOUT: %.loc11_55.1: %tuple.type = tuple_literal (%float) [concrete = constants.%tuple] -// CHECK:STDOUT: %impl.elem0.loc11_55: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] +// CHECK:STDOUT: %impl.elem0.loc11_55: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] // CHECK:STDOUT: %bound_method.loc11_55.1: = bound_method %float, %impl.elem0.loc11_55 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc11_55: = specific_function %impl.elem0.loc11_55, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_55.2: = bound_method %float, %specific_fn.loc11_55 [concrete = constants.%bound_method.aaa] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.a26 = call %bound_method.loc11_55.2(%float) [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc11_55.2: init %f32.a26 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.2ec] +// CHECK:STDOUT: %bound_method.loc11_55.2: = bound_method %float, %specific_fn.loc11_55 [concrete = constants.%bound_method.3e4] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.c73 = call %bound_method.loc11_55.2(%float) [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc11_55.2: init %f32.c73 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.943] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %.loc11_55.3: ref %f32.a26 = array_index %a.var, %int_0 -// CHECK:STDOUT: %.loc11_55.4: init %f32.a26 to %.loc11_55.3 = in_place_init %.loc11_55.2 [concrete = constants.%float.2ec] +// CHECK:STDOUT: %.loc11_55.3: ref %f32.c73 = array_index %a.var, %int_0 +// CHECK:STDOUT: %.loc11_55.4: init %f32.c73 to %.loc11_55.3 = in_place_init %.loc11_55.2 [concrete = constants.%float.943] // CHECK:STDOUT: %.loc11_55.5: init %array_type to %a.var = array_init (%.loc11_55.4) [concrete = constants.%array] // CHECK:STDOUT: %.loc11_3: init %array_type = converted %.loc11_55.1, %.loc11_55.5 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc11_3 // CHECK:STDOUT: %.loc11_46: type = splice_block %array_type [concrete = constants.%array_type] { -// CHECK:STDOUT: %f32: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] +// CHECK:STDOUT: %f32: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] // CHECK:STDOUT: %int_1.loc11: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %long_long.ref.loc11: type = name_ref long_long, %i64.2 [concrete = constants.%i64] -// CHECK:STDOUT: %impl.elem0.loc11_30.1: %.9b9 = impl_witness_access constants.%As.impl_witness.0e9, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.fb1] +// CHECK:STDOUT: %impl.elem0.loc11_30.1: %.01b = impl_witness_access constants.%As.impl_witness.2e1, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.3d9] // CHECK:STDOUT: %bound_method.loc11_30.1: = bound_method %int_1.loc11, %impl.elem0.loc11_30.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc11_30.1: = specific_function %impl.elem0.loc11_30.1, @Core.IntLiteral.as.As.impl.Convert(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_30.2: = bound_method %int_1.loc11, %specific_fn.loc11_30.1 [concrete = constants.%bound_method.b27] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i64 = call %bound_method.loc11_30.2(%int_1.loc11) [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %.loc11_30.1: %i64 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %.loc11_30.2: %i64 = converted %int_1.loc11, %.loc11_30.1 [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %impl.elem0.loc11_30.2: %.737 = impl_witness_access constants.%ImplicitAs.impl_witness.4e4, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.63c] +// CHECK:STDOUT: %bound_method.loc11_30.2: = bound_method %int_1.loc11, %specific_fn.loc11_30.1 [concrete = constants.%bound_method.991] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i64 = call %bound_method.loc11_30.2(%int_1.loc11) [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc11_30.1: %i64 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc11_30.2: %i64 = converted %int_1.loc11, %.loc11_30.1 [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %impl.elem0.loc11_30.2: %.779 = impl_witness_access constants.%ImplicitAs.impl_witness.a75, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.be5] // CHECK:STDOUT: %bound_method.loc11_30.3: = bound_method %.loc11_30.2, %impl.elem0.loc11_30.2 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc11_30.2: = specific_function %impl.elem0.loc11_30.2, @Int.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Int.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_30.4: = bound_method %.loc11_30.2, %specific_fn.loc11_30.2 [concrete = constants.%bound_method.e78] +// CHECK:STDOUT: %bound_method.loc11_30.4: = bound_method %.loc11_30.2, %specific_fn.loc11_30.2 [concrete = constants.%bound_method.e21] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.loc11_30.4(%.loc11_30.2) [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_30.3: Core.IntLiteral = value_of_initializer %Int.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_30.4: Core.IntLiteral = converted %.loc11_30.2, %.loc11_30.3 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %array_type: type = array_type %.loc11_30.4, %f32 [concrete = constants.%array_type] // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %array_type = ref_binding a, %a.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.3 +// 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: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.a26) { +// CHECK:STDOUT: fn @Destroy.Op.loc11_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -863,72 +863,72 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %u64: type = class_type @UInt, @UInt(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.597: type = pattern_type %u64 [concrete] +// CHECK:STDOUT: %pattern_type.b35: type = pattern_type %u64 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.9b6: type = facet_type <@ImplicitAs, @ImplicitAs(%u64)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.14f: type = facet_type <@ImplicitAs, @ImplicitAs(%u64)> [concrete] // CHECK:STDOUT: %To.fe9: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1, @Core.IntLiteral.as.ImplicitAs.impl.501(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.498: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1, @Core.IntLiteral.as.ImplicitAs.impl.b68(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.170: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %From.fe9: Core.IntLiteral = symbolic_binding From, 0 [symbolic] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.type.594: type = fn_type @UInt.as.ImplicitAs.impl.Convert.1, @UInt.as.ImplicitAs.impl.791(%From.fe9) [symbolic] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.141: %UInt.as.ImplicitAs.impl.Convert.type.594 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.248: = impl_witness imports.%ImplicitAs.impl_witness_table.0c6, @Core.IntLiteral.as.ImplicitAs.impl.501(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.dbe: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1, @Core.IntLiteral.as.ImplicitAs.impl.501(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.b79: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.dbe = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.b50: %ImplicitAs.type.9b6 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.248) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.a9d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%u64, %ImplicitAs.facet.b50) [concrete] -// CHECK:STDOUT: %.200: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.a9d, %ImplicitAs.facet.b50 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.b79 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.b79, @Core.IntLiteral.as.ImplicitAs.impl.Convert.1(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.231: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.8a8: %u64 = int_value 1 [concrete] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.type.3ec: type = fn_type @UInt.as.ImplicitAs.impl.Convert.1, @UInt.as.ImplicitAs.impl.3d3(%From.fe9) [symbolic] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.06e: %UInt.as.ImplicitAs.impl.Convert.type.3ec = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.9c4: = impl_witness imports.%ImplicitAs.impl_witness_table.42f, @Core.IntLiteral.as.ImplicitAs.impl.b68(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.b18: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1, @Core.IntLiteral.as.ImplicitAs.impl.b68(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.633: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.b18 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.d29: %ImplicitAs.type.14f = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.9c4) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.8cc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%u64, %ImplicitAs.facet.d29) [concrete] +// CHECK:STDOUT: %.93e: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.8cc, %ImplicitAs.facet.d29 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.633 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.633, @Core.IntLiteral.as.ImplicitAs.impl.Convert.1(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.7e7: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.01f: %u64 = int_value 1 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %As.type.8af: type = facet_type <@As, @As(%u64)> [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.150: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.b6a: %Core.IntLiteral.as.As.impl.Convert.type.150 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.042: = impl_witness imports.%As.impl_witness_table.613, @Core.IntLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.72b: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.113: %Core.IntLiteral.as.As.impl.Convert.type.72b = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.8af = facet_value Core.IntLiteral, (%As.impl_witness.042) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.ed7: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%u64, %As.facet) [concrete] -// CHECK:STDOUT: %.528: type = fn_type_with_self_type %As.WithSelf.Convert.type.ed7, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.113 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.113, @Core.IntLiteral.as.As.impl.Convert(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.e13: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.569: = impl_witness imports.%ImplicitAs.impl_witness_table.1b2, @UInt.as.ImplicitAs.impl.791(%int_64) [concrete] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.type.fea: type = fn_type @UInt.as.ImplicitAs.impl.Convert.1, @UInt.as.ImplicitAs.impl.791(%int_64) [concrete] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.7f4: %UInt.as.ImplicitAs.impl.Convert.type.fea = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.f07: %ImplicitAs.type.ace = facet_value %u64, (%ImplicitAs.impl_witness.569) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.85c: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.f07) [concrete] -// CHECK:STDOUT: %.71b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.85c, %ImplicitAs.facet.f07 [concrete] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.8a8, %UInt.as.ImplicitAs.impl.Convert.7f4 [concrete] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %UInt.as.ImplicitAs.impl.Convert.7f4, @UInt.as.ImplicitAs.impl.Convert.1(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.fb5: = bound_method %int_1.8a8, %UInt.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.a26 [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %As.type.72f: type = facet_type <@As, @As(%u64)> [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.fb3: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.f86: %Core.IntLiteral.as.As.impl.Convert.type.fb3 = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.8fb: = impl_witness imports.%As.impl_witness_table.8fa, @Core.IntLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.49f: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.990: %Core.IntLiteral.as.As.impl.Convert.type.49f = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.72f = facet_value Core.IntLiteral, (%As.impl_witness.8fb) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.8dd: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%u64, %As.facet) [concrete] +// CHECK:STDOUT: %.04a: type = fn_type_with_self_type %As.WithSelf.Convert.type.8dd, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.990 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.990, @Core.IntLiteral.as.As.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.318: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.b02: = impl_witness imports.%ImplicitAs.impl_witness_table.a83, @UInt.as.ImplicitAs.impl.3d3(%int_64) [concrete] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.type.cd8: type = fn_type @UInt.as.ImplicitAs.impl.Convert.1, @UInt.as.ImplicitAs.impl.3d3(%int_64) [concrete] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.7d0: %UInt.as.ImplicitAs.impl.Convert.type.cd8 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.e41: %ImplicitAs.type.7cb = facet_value %u64, (%ImplicitAs.impl_witness.b02) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da8: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.e41) [concrete] +// CHECK:STDOUT: %.637: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da8, %ImplicitAs.facet.e41 [concrete] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.01f, %UInt.as.ImplicitAs.impl.Convert.7d0 [concrete] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %UInt.as.ImplicitAs.impl.Convert.7d0, @UInt.as.ImplicitAs.impl.Convert.1(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.b37: = bound_method %int_1.01f, %UInt.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.c73 [concrete] // CHECK:STDOUT: %f32.9b3: type = float_type %int_32, f32 [concrete] -// CHECK:STDOUT: %pattern_type.aab: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.18b: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.FloatLiteral) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%float.6da) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.d0d: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.a26)> [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.65d: = impl_witness imports.%ImplicitAs.impl_witness_table.234, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.82a: %ImplicitAs.type.d0d = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.65d) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c87: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.a26, %ImplicitAs.facet.82a) [concrete] -// CHECK:STDOUT: %.3a8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c87, %ImplicitAs.facet.82a [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.aaa: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%float.2ec) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc11_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.ed3: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.c73)> [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.303: = impl_witness imports.%ImplicitAs.impl_witness_table.393, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.65e: %ImplicitAs.type.ed3 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.303) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2e4: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.c73, %ImplicitAs.facet.65e) [concrete] +// CHECK:STDOUT: %.17b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2e4, %ImplicitAs.facet.65e [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -936,20 +936,20 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: .unsigned_long_long = @F.%u64.2 // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.e9f: @Core.IntLiteral.as.ImplicitAs.impl.501.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.501.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.498)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0c6 = impl_witness_table (%Core.import_ref.e9f), @Core.IntLiteral.as.ImplicitAs.impl.501 [concrete] -// CHECK:STDOUT: %Core.import_ref.96b: @UInt.as.ImplicitAs.impl.791.%UInt.as.ImplicitAs.impl.Convert.type (%UInt.as.ImplicitAs.impl.Convert.type.594) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @UInt.as.ImplicitAs.impl.791.%UInt.as.ImplicitAs.impl.Convert (constants.%UInt.as.ImplicitAs.impl.Convert.141)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.1b2 = impl_witness_table (%Core.import_ref.96b), @UInt.as.ImplicitAs.impl.791 [concrete] -// CHECK:STDOUT: %Core.import_ref.8db: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.150) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.b6a)] -// CHECK:STDOUT: %As.impl_witness_table.613 = impl_witness_table (%Core.import_ref.8db), @Core.IntLiteral.as.As.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.63cb: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.234 = impl_witness_table (%Core.import_ref.63cb), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.aa5: @Core.IntLiteral.as.ImplicitAs.impl.b68.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.b68.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.170)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.42f = impl_witness_table (%Core.import_ref.aa5), @Core.IntLiteral.as.ImplicitAs.impl.b68 [concrete] +// CHECK:STDOUT: %Core.import_ref.baa: @UInt.as.ImplicitAs.impl.3d3.%UInt.as.ImplicitAs.impl.Convert.type (%UInt.as.ImplicitAs.impl.Convert.type.3ec) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @UInt.as.ImplicitAs.impl.3d3.%UInt.as.ImplicitAs.impl.Convert (constants.%UInt.as.ImplicitAs.impl.Convert.06e)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a83 = impl_witness_table (%Core.import_ref.baa), @UInt.as.ImplicitAs.impl.3d3 [concrete] +// CHECK:STDOUT: %Core.import_ref.59a: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.fb3) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.f86)] +// CHECK:STDOUT: %As.impl_witness_table.8fa = impl_witness_table (%Core.import_ref.59a), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.393 = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_unsigned_long_long.patt: %pattern_type.597 = value_binding_pattern cpp_unsigned_long_long [concrete] +// CHECK:STDOUT: %cpp_unsigned_long_long.patt: %pattern_type.b35 = value_binding_pattern cpp_unsigned_long_long [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc8_34: type = splice_block %unsigned_long_long.ref.loc8 [concrete = constants.%u64] { @@ -957,69 +957,69 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: // CHECK:STDOUT: %unsigned_long_long.ref.loc8: type = name_ref unsigned_long_long, %u64.2 [concrete = constants.%u64] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc8: %.200 = impl_witness_access constants.%ImplicitAs.impl_witness.248, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.b79] +// CHECK:STDOUT: %impl.elem0.loc8: %.93e = impl_witness_access constants.%ImplicitAs.impl_witness.9c4, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.633] // CHECK:STDOUT: %bound_method.loc8_56.1: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.ImplicitAs.impl.Convert.1(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_56.2: = bound_method %int_1.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.231] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %u64 = call %bound_method.loc8_56.2(%int_1.loc8) [concrete = constants.%int_1.8a8] -// CHECK:STDOUT: %.loc8_56.1: %u64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.8a8] -// CHECK:STDOUT: %.loc8_56.2: %u64 = converted %int_1.loc8, %.loc8_56.1 [concrete = constants.%int_1.8a8] +// CHECK:STDOUT: %bound_method.loc8_56.2: = bound_method %int_1.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.7e7] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %u64 = call %bound_method.loc8_56.2(%int_1.loc8) [concrete = constants.%int_1.01f] +// CHECK:STDOUT: %.loc8_56.1: %u64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.01f] +// CHECK:STDOUT: %.loc8_56.2: %u64 = converted %int_1.loc8, %.loc8_56.1 [concrete = constants.%int_1.01f] // CHECK:STDOUT: %cpp_unsigned_long_long: %u64 = value_binding cpp_unsigned_long_long, %.loc8_56.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_unsigned_long_long.patt: %pattern_type.597 = value_binding_pattern carbon_unsigned_long_long [concrete] +// CHECK:STDOUT: %carbon_unsigned_long_long.patt: %pattern_type.b35 = value_binding_pattern carbon_unsigned_long_long [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_unsigned_long_long.ref: %u64 = name_ref cpp_unsigned_long_long, %cpp_unsigned_long_long // CHECK:STDOUT: %u64.loc9: type = type_literal constants.%u64 [concrete = constants.%u64] // CHECK:STDOUT: %carbon_unsigned_long_long: %u64 = value_binding carbon_unsigned_long_long, %cpp_unsigned_long_long.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.aab = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.aab = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %array_type = var %a.var_patt // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] // CHECK:STDOUT: %.loc11_64.1: %tuple.type = tuple_literal (%float) [concrete = constants.%tuple] -// CHECK:STDOUT: %impl.elem0.loc11_64: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] +// CHECK:STDOUT: %impl.elem0.loc11_64: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] // CHECK:STDOUT: %bound_method.loc11_64.1: = bound_method %float, %impl.elem0.loc11_64 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc11_64: = specific_function %impl.elem0.loc11_64, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_64.2: = bound_method %float, %specific_fn.loc11_64 [concrete = constants.%bound_method.aaa] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.a26 = call %bound_method.loc11_64.2(%float) [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc11_64.2: init %f32.a26 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.2ec] +// CHECK:STDOUT: %bound_method.loc11_64.2: = bound_method %float, %specific_fn.loc11_64 [concrete = constants.%bound_method.3e4] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.c73 = call %bound_method.loc11_64.2(%float) [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc11_64.2: init %f32.c73 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.943] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %.loc11_64.3: ref %f32.a26 = array_index %a.var, %int_0 -// CHECK:STDOUT: %.loc11_64.4: init %f32.a26 to %.loc11_64.3 = in_place_init %.loc11_64.2 [concrete = constants.%float.2ec] +// CHECK:STDOUT: %.loc11_64.3: ref %f32.c73 = array_index %a.var, %int_0 +// CHECK:STDOUT: %.loc11_64.4: init %f32.c73 to %.loc11_64.3 = in_place_init %.loc11_64.2 [concrete = constants.%float.943] // CHECK:STDOUT: %.loc11_64.5: init %array_type to %a.var = array_init (%.loc11_64.4) [concrete = constants.%array] // CHECK:STDOUT: %.loc11_3: init %array_type = converted %.loc11_64.1, %.loc11_64.5 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc11_3 // CHECK:STDOUT: %.loc11_55: type = splice_block %array_type [concrete = constants.%array_type] { -// CHECK:STDOUT: %f32: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] +// CHECK:STDOUT: %f32: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] // CHECK:STDOUT: %int_1.loc11: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %unsigned_long_long.ref.loc11: type = name_ref unsigned_long_long, %u64.2 [concrete = constants.%u64] -// CHECK:STDOUT: %impl.elem0.loc11_30.1: %.528 = impl_witness_access constants.%As.impl_witness.042, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.113] +// CHECK:STDOUT: %impl.elem0.loc11_30.1: %.04a = impl_witness_access constants.%As.impl_witness.8fb, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.990] // CHECK:STDOUT: %bound_method.loc11_30.1: = bound_method %int_1.loc11, %impl.elem0.loc11_30.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc11_30.1: = specific_function %impl.elem0.loc11_30.1, @Core.IntLiteral.as.As.impl.Convert(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_30.2: = bound_method %int_1.loc11, %specific_fn.loc11_30.1 [concrete = constants.%bound_method.e13] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %u64 = call %bound_method.loc11_30.2(%int_1.loc11) [concrete = constants.%int_1.8a8] -// CHECK:STDOUT: %.loc11_30.1: %u64 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.8a8] -// CHECK:STDOUT: %.loc11_30.2: %u64 = converted %int_1.loc11, %.loc11_30.1 [concrete = constants.%int_1.8a8] -// CHECK:STDOUT: %impl.elem0.loc11_30.2: %.71b = impl_witness_access constants.%ImplicitAs.impl_witness.569, element0 [concrete = constants.%UInt.as.ImplicitAs.impl.Convert.7f4] +// CHECK:STDOUT: %bound_method.loc11_30.2: = bound_method %int_1.loc11, %specific_fn.loc11_30.1 [concrete = constants.%bound_method.318] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %u64 = call %bound_method.loc11_30.2(%int_1.loc11) [concrete = constants.%int_1.01f] +// CHECK:STDOUT: %.loc11_30.1: %u64 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.01f] +// CHECK:STDOUT: %.loc11_30.2: %u64 = converted %int_1.loc11, %.loc11_30.1 [concrete = constants.%int_1.01f] +// CHECK:STDOUT: %impl.elem0.loc11_30.2: %.637 = impl_witness_access constants.%ImplicitAs.impl_witness.b02, element0 [concrete = constants.%UInt.as.ImplicitAs.impl.Convert.7d0] // CHECK:STDOUT: %bound_method.loc11_30.3: = bound_method %.loc11_30.2, %impl.elem0.loc11_30.2 [concrete = constants.%UInt.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc11_30.2: = specific_function %impl.elem0.loc11_30.2, @UInt.as.ImplicitAs.impl.Convert.1(constants.%int_64) [concrete = constants.%UInt.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_30.4: = bound_method %.loc11_30.2, %specific_fn.loc11_30.2 [concrete = constants.%bound_method.fb5] +// CHECK:STDOUT: %bound_method.loc11_30.4: = bound_method %.loc11_30.2, %specific_fn.loc11_30.2 [concrete = constants.%bound_method.b37] // CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.loc11_30.4(%.loc11_30.2) [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_30.3: Core.IntLiteral = value_of_initializer %UInt.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_30.4: Core.IntLiteral = converted %.loc11_30.2, %.loc11_30.3 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %array_type: type = array_type %.loc11_30.4, %f32 [concrete = constants.%array_type] // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %array_type = ref_binding a, %a.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.3 +// 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: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.a26) { +// CHECK:STDOUT: fn @Destroy.Op.loc11_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1039,87 +1039,87 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.83e: type = pattern_type %Cpp.long [concrete] +// CHECK:STDOUT: %pattern_type.25e: type = pattern_type %Cpp.long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6fa: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7eb: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.08a: type = facet_type <@ImplicitAs, @ImplicitAs(%i64)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e41: = impl_witness imports.%ImplicitAs.impl_witness_table.293 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.c09: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e41) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.93b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %.f84: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.93b, %ImplicitAs.facet.c09 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.221: type = facet_type <@ImplicitAs, @ImplicitAs(%i64)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.e27: = impl_witness imports.%ImplicitAs.impl_witness_table.635 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.b30: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e27) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.7dc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %.b13: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.7dc, %ImplicitAs.facet.b30 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce [concrete] -// CHECK:STDOUT: %int_1.3d0: %Cpp.long = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.9ce: %Cpp.long = int_value 1 [concrete] // CHECK:STDOUT: %LongResult: type = class_type @LongResult [concrete] -// CHECK:STDOUT: %pattern_type.676: type = pattern_type %LongResult [concrete] +// CHECK:STDOUT: %pattern_type.142c0: type = pattern_type %LongResult [concrete] // CHECK:STDOUT: %PassLong.cpp_overload_set.type: type = cpp_overload_set_type @PassLong.cpp_overload_set [concrete] // CHECK:STDOUT: %PassLong.cpp_overload_set.value: %PassLong.cpp_overload_set.type = cpp_overload_set_value @PassLong.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.c5a: type = ptr_type %LongResult [concrete] -// CHECK:STDOUT: %PassLong__carbon_thunk.type.972681.1: type = fn_type @PassLong__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %PassLong__carbon_thunk.b57a85.1: %PassLong__carbon_thunk.type.972681.1 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %ptr.817: type = ptr_type %LongResult [concrete] +// CHECK:STDOUT: %PassLong__carbon_thunk.type.ac66cb.1: type = fn_type @PassLong__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %PassLong__carbon_thunk.806a90.1: %PassLong__carbon_thunk.type.ac66cb.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %IntResult: type = class_type @IntResult [concrete] -// CHECK:STDOUT: %pattern_type.47e: type = pattern_type %IntResult [concrete] -// CHECK:STDOUT: %ptr.ff0: type = ptr_type %IntResult [concrete] -// CHECK:STDOUT: %PassLong__carbon_thunk.type.972681.2: type = fn_type @PassLong__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %PassLong__carbon_thunk.b57a85.2: %PassLong__carbon_thunk.type.972681.2 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.fdd: type = pattern_type %i64 [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e25: = impl_witness imports.%ImplicitAs.impl_witness_table.0d0 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.07b: %ImplicitAs.type.08a = facet_value %Cpp.long, (%ImplicitAs.impl_witness.e25) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.bbd: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i64, %ImplicitAs.facet.07b) [concrete] -// CHECK:STDOUT: %.ed6: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.bbd, %ImplicitAs.facet.07b [concrete] +// CHECK:STDOUT: %pattern_type.596: type = pattern_type %IntResult [concrete] +// CHECK:STDOUT: %ptr.fc9: type = ptr_type %IntResult [concrete] +// CHECK:STDOUT: %PassLong__carbon_thunk.type.ac66cb.2: type = fn_type @PassLong__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %PassLong__carbon_thunk.806a90.2: %PassLong__carbon_thunk.type.ac66cb.2 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.f57: type = pattern_type %i64 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.cfa: = impl_witness imports.%ImplicitAs.impl_witness_table.035 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.a99: %ImplicitAs.type.221 = facet_value %Cpp.long, (%ImplicitAs.impl_witness.cfa) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.629: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i64, %ImplicitAs.facet.a99) [concrete] +// CHECK:STDOUT: %.bd1: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.629, %ImplicitAs.facet.a99 [concrete] // CHECK:STDOUT: %Cpp.long.as.ImplicitAs.impl.Convert.type.ae6f4c.1: type = fn_type @Cpp.long.as.ImplicitAs.impl.Convert.1 [concrete] // CHECK:STDOUT: %Cpp.long.as.ImplicitAs.impl.Convert.3cefb0.1: %Cpp.long.as.ImplicitAs.impl.Convert.type.ae6f4c.1 = struct_value () [concrete] // CHECK:STDOUT: %Float.type: type = generic_class_type @Float [concrete] // CHECK:STDOUT: %Float.generic: %Float.type = struct_value () [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.4f6: type = facet_type <@As, @As(%Cpp.long)> [concrete] -// CHECK:STDOUT: %As.impl_witness.f62: = impl_witness imports.%As.impl_witness_table.737 [concrete] -// CHECK:STDOUT: %As.facet: %As.type.4f6 = facet_value Core.IntLiteral, (%As.impl_witness.f62) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.fe0: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%Cpp.long, %As.facet) [concrete] -// CHECK:STDOUT: %.2c9: type = fn_type_with_self_type %As.WithSelf.Convert.type.fe0, %As.facet [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.cbc: type = facet_type <@As, @As(%Cpp.long)> [concrete] +// CHECK:STDOUT: %As.impl_witness.d97: = impl_witness imports.%As.impl_witness_table.a2e [concrete] +// CHECK:STDOUT: %As.facet: %As.type.cbc = facet_value Core.IntLiteral, (%As.impl_witness.d97) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.d45: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%Cpp.long, %As.facet) [concrete] +// CHECK:STDOUT: %.d2f: type = fn_type_with_self_type %As.WithSelf.Convert.type.d45, %As.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type: type = fn_type @Core.IntLiteral.as.As.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert: %Core.IntLiteral.as.As.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.bc1: = impl_witness imports.%ImplicitAs.impl_witness_table.b4e [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.d05: %ImplicitAs.type.ace = facet_value %Cpp.long, (%ImplicitAs.impl_witness.bc1) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6fa: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.d05) [concrete] -// CHECK:STDOUT: %.d01: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6fa, %ImplicitAs.facet.d05 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.402: = impl_witness imports.%ImplicitAs.impl_witness_table.a80 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.6c6: %ImplicitAs.type.7cb = facet_value %Cpp.long, (%ImplicitAs.impl_witness.402) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.a2a: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.6c6) [concrete] +// CHECK:STDOUT: %.49e: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.a2a, %ImplicitAs.facet.6c6 [concrete] // CHECK:STDOUT: %Cpp.long.as.ImplicitAs.impl.Convert.type.ae6f4c.2: type = fn_type @Cpp.long.as.ImplicitAs.impl.Convert.2 [concrete] // CHECK:STDOUT: %Cpp.long.as.ImplicitAs.impl.Convert.3cefb0.2: %Cpp.long.as.ImplicitAs.impl.Convert.type.ae6f4c.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.3d0, %Cpp.long.as.ImplicitAs.impl.Convert.3cefb0.2 [concrete] -// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.a26 [concrete] +// CHECK:STDOUT: %Cpp.long.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.9ce, %Cpp.long.as.ImplicitAs.impl.Convert.3cefb0.2 [concrete] +// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.c73 [concrete] // CHECK:STDOUT: %f32.9b3: type = float_type %int_32, f32 [concrete] -// CHECK:STDOUT: %pattern_type.aab: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.18b: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.FloatLiteral) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%float.6da) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.d0d: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.a26)> [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.65d: = impl_witness imports.%ImplicitAs.impl_witness_table.234, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.82a: %ImplicitAs.type.d0d = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.65d) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c87: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.a26, %ImplicitAs.facet.82a) [concrete] -// CHECK:STDOUT: %.3a8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c87, %ImplicitAs.facet.82a [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.ed3: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.c73)> [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.303: = impl_witness imports.%ImplicitAs.impl_witness_table.393, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.65e: %ImplicitAs.type.ed3 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.303) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2e4: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.c73, %ImplicitAs.facet.65e) [concrete] +// CHECK:STDOUT: %.17b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2e4, %ImplicitAs.facet.65e [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%float.2ec) [concrete] +// 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.790b3b.3: type = fn_type @Destroy.Op.loc26_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [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: %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] @@ -1128,7 +1128,7 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { -// CHECK:STDOUT: .CppCompat = %CppCompat.463205.1 +// CHECK:STDOUT: .CppCompat = %CppCompat.f0dbf9.1 // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: .Int = %Core.Int // CHECK:STDOUT: .Float = %Core.Float @@ -1145,67 +1145,67 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.CppCompat: = import_ref Core//prelude, CppCompat, loaded -// CHECK:STDOUT: %CppCompat.463205.1: = namespace %Core.CppCompat, [concrete] { +// CHECK:STDOUT: %CppCompat.f0dbf9.1: = namespace %Core.CppCompat, [concrete] { // CHECK:STDOUT: .Long32 = %Core.Long32 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Long32: type = import_ref Core//prelude/types/cpp/int, Long32, loaded [concrete = constants.%Cpp.long] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.adef5f.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.293 = impl_witness_table (%Core.import_ref.adef5f.1), @Core.IntLiteral.as.ImplicitAs.impl.ec9 [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.06c923.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.635 = impl_witness_table (%Core.import_ref.06c923.1), @Core.IntLiteral.as.ImplicitAs.impl.94b [concrete] // CHECK:STDOUT: %LongResult.decl: type = class_decl @LongResult [concrete = constants.%LongResult] {} {} // CHECK:STDOUT: %PassLong.cpp_overload_set.value: %PassLong.cpp_overload_set.type = cpp_overload_set_value @PassLong.cpp_overload_set [concrete = constants.%PassLong.cpp_overload_set.value] -// CHECK:STDOUT: %PassLong__carbon_thunk.decl.f47c99.1: %PassLong__carbon_thunk.type.972681.1 = fn_decl @PassLong__carbon_thunk.1 [concrete = constants.%PassLong__carbon_thunk.b57a85.1] { +// CHECK:STDOUT: %PassLong__carbon_thunk.decl.13dd4e.1: %PassLong__carbon_thunk.type.ac66cb.1 = fn_decl @PassLong__carbon_thunk.1 [concrete = constants.%PassLong__carbon_thunk.806a90.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %IntResult.decl: type = class_decl @IntResult [concrete = constants.%IntResult] {} {} -// CHECK:STDOUT: %PassLong__carbon_thunk.decl.f47c99.2: %PassLong__carbon_thunk.type.972681.2 = fn_decl @PassLong__carbon_thunk.2 [concrete = constants.%PassLong__carbon_thunk.b57a85.2] { +// CHECK:STDOUT: %PassLong__carbon_thunk.decl.13dd4e.2: %PassLong__carbon_thunk.type.ac66cb.2 = fn_decl @PassLong__carbon_thunk.2 [concrete = constants.%PassLong__carbon_thunk.806a90.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.adef5f.2: %Cpp.long.as.ImplicitAs.impl.Convert.type.ae6f4c.1 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.ImplicitAs.impl.Convert.3cefb0.1] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0d0 = impl_witness_table (%Core.import_ref.adef5f.2), @Cpp.long.as.ImplicitAs.impl.6e3 [concrete] +// CHECK:STDOUT: %Core.import_ref.06c923.2: %Cpp.long.as.ImplicitAs.impl.Convert.type.ae6f4c.1 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.ImplicitAs.impl.Convert.3cefb0.1] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.035 = impl_witness_table (%Core.import_ref.06c923.2), @Cpp.long.as.ImplicitAs.impl.5a3 [concrete] // CHECK:STDOUT: %Core.Float: %Float.type = import_ref Core//prelude/types/float, Float, loaded [concrete = constants.%Float.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/operators/as, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.adef5f.3: %Core.IntLiteral.as.As.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] -// CHECK:STDOUT: %As.impl_witness_table.737 = impl_witness_table (%Core.import_ref.adef5f.3), @Core.IntLiteral.as.As.impl.846 [concrete] -// CHECK:STDOUT: %Core.import_ref.adef5f.4: %Cpp.long.as.ImplicitAs.impl.Convert.type.ae6f4c.2 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.ImplicitAs.impl.Convert.3cefb0.2] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b4e = impl_witness_table (%Core.import_ref.adef5f.4), @Cpp.long.as.ImplicitAs.impl.6b0 [concrete] -// CHECK:STDOUT: %Core.import_ref.63cb: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.234 = impl_witness_table (%Core.import_ref.63cb), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/operators/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.06c923.3: %Core.IntLiteral.as.As.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] +// CHECK:STDOUT: %As.impl_witness_table.a2e = impl_witness_table (%Core.import_ref.06c923.3), @Core.IntLiteral.as.As.impl.f1e [concrete] +// CHECK:STDOUT: %Core.import_ref.06c923.4: %Cpp.long.as.ImplicitAs.impl.Convert.type.ae6f4c.2 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.ImplicitAs.impl.Convert.3cefb0.2] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a80 = impl_witness_table (%Core.import_ref.06c923.4), @Cpp.long.as.ImplicitAs.impl.886 [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.393 = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_long.patt: %pattern_type.83e = value_binding_pattern cpp_long [concrete] +// CHECK:STDOUT: %cpp_long.patt: %pattern_type.25e = value_binding_pattern cpp_long [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc15: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc15_20: type = splice_block %long.ref.loc15 [concrete = constants.%Cpp.long] { // CHECK:STDOUT: %Cpp.ref.loc15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %long.ref.loc15: type = name_ref long, constants.%Cpp.long [concrete = constants.%Cpp.long] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc15: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc15: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc15: = bound_method %int_1.loc15, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.long = call %bound_method.loc15(%int_1.loc15) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc15_28.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc15_28.2: %Cpp.long = converted %int_1.loc15, %.loc15_28.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.long = call %bound_method.loc15(%int_1.loc15) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc15_28.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc15_28.2: %Cpp.long = converted %int_1.loc15, %.loc15_28.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %cpp_long: %Cpp.long = value_binding cpp_long, %.loc15_28.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_long_result.patt: %pattern_type.676 = value_binding_pattern cpp_long_result [concrete] +// CHECK:STDOUT: %cpp_long_result.patt: %pattern_type.142c0 = value_binding_pattern cpp_long_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc16_48: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassLong.ref.loc16: %PassLong.cpp_overload_set.type = name_ref PassLong, imports.%PassLong.cpp_overload_set.value [concrete = constants.%PassLong.cpp_overload_set.value] // CHECK:STDOUT: %cpp_long.ref.loc16: %Cpp.long = name_ref cpp_long, %cpp_long // CHECK:STDOUT: %.loc16_69.1: ref %LongResult = temporary_storage -// CHECK:STDOUT: %addr.loc16: %ptr.c5a = addr_of %.loc16_69.1 -// CHECK:STDOUT: %PassLong__carbon_thunk.call.loc16: init %empty_tuple.type = call imports.%PassLong__carbon_thunk.decl.f47c99.1(%cpp_long.ref.loc16, %addr.loc16) +// CHECK:STDOUT: %addr.loc16: %ptr.817 = addr_of %.loc16_69.1 +// CHECK:STDOUT: %PassLong__carbon_thunk.call.loc16: init %empty_tuple.type = call imports.%PassLong__carbon_thunk.decl.13dd4e.1(%cpp_long.ref.loc16, %addr.loc16) // CHECK:STDOUT: %.loc16_69.2: init %LongResult to %.loc16_69.1 = mark_in_place_init %PassLong__carbon_thunk.call.loc16 // CHECK:STDOUT: %.loc16_34: type = splice_block %LongResult.ref.loc16 [concrete = constants.%LongResult] { // CHECK:STDOUT: %Cpp.ref.loc16_31: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -1215,24 +1215,24 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc16_69.4: %LongResult = acquire_value %.loc16_69.3 // CHECK:STDOUT: %cpp_long_result: %LongResult = value_binding cpp_long_result, %.loc16_69.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_compat_long.patt: %pattern_type.83e = value_binding_pattern cpp_compat_long [concrete] +// CHECK:STDOUT: %cpp_compat_long.patt: %pattern_type.25e = value_binding_pattern cpp_compat_long [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_long.ref.loc18: %Cpp.long = name_ref cpp_long, %cpp_long // CHECK:STDOUT: %.loc18: type = splice_block %Long32.ref [concrete = constants.%Cpp.long] { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %CppCompat.ref: = name_ref CppCompat, imports.%CppCompat.463205.1 [concrete = imports.%CppCompat.463205.1] +// CHECK:STDOUT: %CppCompat.ref: = name_ref CppCompat, imports.%CppCompat.f0dbf9.1 [concrete = imports.%CppCompat.f0dbf9.1] // CHECK:STDOUT: %Long32.ref: type = name_ref Long32, imports.%Core.Long32 [concrete = constants.%Cpp.long] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_compat_long: %Cpp.long = value_binding cpp_compat_long, %cpp_long.ref.loc18 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_compat_long_result.patt: %pattern_type.676 = value_binding_pattern cpp_compat_long_result [concrete] +// CHECK:STDOUT: %cpp_compat_long_result.patt: %pattern_type.142c0 = value_binding_pattern cpp_compat_long_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc19_55: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassLong.ref.loc19: %PassLong.cpp_overload_set.type = name_ref PassLong, imports.%PassLong.cpp_overload_set.value [concrete = constants.%PassLong.cpp_overload_set.value] // CHECK:STDOUT: %cpp_compat_long.ref: %Cpp.long = name_ref cpp_compat_long, %cpp_compat_long // CHECK:STDOUT: %.loc19_83.1: ref %LongResult = temporary_storage -// CHECK:STDOUT: %addr.loc19: %ptr.c5a = addr_of %.loc19_83.1 -// CHECK:STDOUT: %PassLong__carbon_thunk.call.loc19: init %empty_tuple.type = call imports.%PassLong__carbon_thunk.decl.f47c99.1(%cpp_compat_long.ref, %addr.loc19) +// CHECK:STDOUT: %addr.loc19: %ptr.817 = addr_of %.loc19_83.1 +// CHECK:STDOUT: %PassLong__carbon_thunk.call.loc19: init %empty_tuple.type = call imports.%PassLong__carbon_thunk.decl.13dd4e.1(%cpp_compat_long.ref, %addr.loc19) // CHECK:STDOUT: %.loc19_83.2: init %LongResult to %.loc19_83.1 = mark_in_place_init %PassLong__carbon_thunk.call.loc19 // CHECK:STDOUT: %.loc19_41: type = splice_block %LongResult.ref.loc19 [concrete = constants.%LongResult] { // CHECK:STDOUT: %Cpp.ref.loc19_38: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -1242,7 +1242,7 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc19_83.4: %LongResult = acquire_value %.loc19_83.3 // CHECK:STDOUT: %cpp_compat_long_result: %LongResult = value_binding cpp_compat_long_result, %.loc19_83.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_i32.patt: %pattern_type.104 = value_binding_pattern carbon_i32 [concrete] +// CHECK:STDOUT: %carbon_i32.patt: %pattern_type.6b6 = value_binding_pattern carbon_i32 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_long.ref.loc21: %Cpp.long = name_ref cpp_long, %cpp_long // CHECK:STDOUT: %i32.loc21_37: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -1251,14 +1251,14 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %i32.loc21_19: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %carbon_i32: %i32 = value_binding carbon_i32, %.loc21_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_i32_result.patt: %pattern_type.47e = value_binding_pattern carbon_i32_result [concrete] +// CHECK:STDOUT: %carbon_i32_result.patt: %pattern_type.596 = value_binding_pattern carbon_i32_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc22_49: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassLong.ref.loc22: %PassLong.cpp_overload_set.type = name_ref PassLong, imports.%PassLong.cpp_overload_set.value [concrete = constants.%PassLong.cpp_overload_set.value] // CHECK:STDOUT: %carbon_i32.ref: %i32 = name_ref carbon_i32, %carbon_i32 // CHECK:STDOUT: %.loc22_72.1: ref %IntResult = temporary_storage -// CHECK:STDOUT: %addr.loc22: %ptr.ff0 = addr_of %.loc22_72.1 -// CHECK:STDOUT: %PassLong__carbon_thunk.call.loc22: init %empty_tuple.type = call imports.%PassLong__carbon_thunk.decl.f47c99.2(%carbon_i32.ref, %addr.loc22) +// CHECK:STDOUT: %addr.loc22: %ptr.fc9 = addr_of %.loc22_72.1 +// CHECK:STDOUT: %PassLong__carbon_thunk.call.loc22: init %empty_tuple.type = call imports.%PassLong__carbon_thunk.decl.13dd4e.2(%carbon_i32.ref, %addr.loc22) // CHECK:STDOUT: %.loc22_72.2: init %IntResult to %.loc22_72.1 = mark_in_place_init %PassLong__carbon_thunk.call.loc22 // CHECK:STDOUT: %.loc22_36: type = splice_block %IntResult.ref [concrete = constants.%IntResult] { // CHECK:STDOUT: %Cpp.ref.loc22_33: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -1268,46 +1268,46 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc22_72.4: %IntResult = acquire_value %.loc22_72.3 // CHECK:STDOUT: %carbon_i32_result: %IntResult = value_binding carbon_i32_result, %.loc22_72.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_i64.patt: %pattern_type.fdd = value_binding_pattern carbon_i64 [concrete] +// CHECK:STDOUT: %carbon_i64.patt: %pattern_type.f57 = value_binding_pattern carbon_i64 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_long.ref.loc24: %Cpp.long = name_ref cpp_long, %cpp_long // CHECK:STDOUT: %i64: type = type_literal constants.%i64 [concrete = constants.%i64] -// CHECK:STDOUT: %impl.elem0.loc24: %.ed6 = impl_witness_access constants.%ImplicitAs.impl_witness.e25, element0 [concrete = constants.%Cpp.long.as.ImplicitAs.impl.Convert.3cefb0.1] +// CHECK:STDOUT: %impl.elem0.loc24: %.bd1 = impl_witness_access constants.%ImplicitAs.impl_witness.cfa, element0 [concrete = constants.%Cpp.long.as.ImplicitAs.impl.Convert.3cefb0.1] // CHECK:STDOUT: %bound_method.loc24: = bound_method %cpp_long.ref.loc24, %impl.elem0.loc24 // CHECK:STDOUT: %Cpp.long.as.ImplicitAs.impl.Convert.call.loc24: init %i64 = call %bound_method.loc24(%cpp_long.ref.loc24) // CHECK:STDOUT: %.loc24_32.1: %i64 = value_of_initializer %Cpp.long.as.ImplicitAs.impl.Convert.call.loc24 // CHECK:STDOUT: %.loc24_32.2: %i64 = converted %cpp_long.ref.loc24, %.loc24_32.1 // CHECK:STDOUT: %carbon_i64: %i64 = value_binding carbon_i64, %.loc24_32.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.aab = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.aab = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %array_type = var %a.var_patt // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] // CHECK:STDOUT: %.loc26_50.1: %tuple.type = tuple_literal (%float) [concrete = constants.%tuple] -// CHECK:STDOUT: %impl.elem0.loc26_50: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] +// CHECK:STDOUT: %impl.elem0.loc26_50: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] // CHECK:STDOUT: %bound_method.loc26_50.1: = bound_method %float, %impl.elem0.loc26_50 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc26_50, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc26_50.2: = bound_method %float, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.a26 = call %bound_method.loc26_50.2(%float) [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc26_50.2: init %f32.a26 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.2ec] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.c73 = call %bound_method.loc26_50.2(%float) [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc26_50.2: init %f32.c73 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.943] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %.loc26_50.3: ref %f32.a26 = array_index %a.var, %int_0 -// CHECK:STDOUT: %.loc26_50.4: init %f32.a26 to %.loc26_50.3 = in_place_init %.loc26_50.2 [concrete = constants.%float.2ec] +// CHECK:STDOUT: %.loc26_50.3: ref %f32.c73 = array_index %a.var, %int_0 +// CHECK:STDOUT: %.loc26_50.4: init %f32.c73 to %.loc26_50.3 = in_place_init %.loc26_50.2 [concrete = constants.%float.943] // CHECK:STDOUT: %.loc26_50.5: init %array_type to %a.var = array_init (%.loc26_50.4) [concrete = constants.%array] // CHECK:STDOUT: %.loc26_3: init %array_type = converted %.loc26_50.1, %.loc26_50.5 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc26_3 // CHECK:STDOUT: %.loc26_41: type = splice_block %array_type [concrete = constants.%array_type] { -// CHECK:STDOUT: %f32: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] +// CHECK:STDOUT: %f32: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] // CHECK:STDOUT: %int_1.loc26: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %Cpp.ref.loc26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %long.ref.loc26: type = name_ref long, constants.%Cpp.long [concrete = constants.%Cpp.long] -// CHECK:STDOUT: %impl.elem0.loc26_30.1: %.2c9 = impl_witness_access constants.%As.impl_witness.f62, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc26_30.1: %.d2f = impl_witness_access constants.%As.impl_witness.d97, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] // CHECK:STDOUT: %bound_method.loc26_30.1: = bound_method %int_1.loc26, %impl.elem0.loc26_30.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %Cpp.long = call %bound_method.loc26_30.1(%int_1.loc26) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc26_30.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc26_30.2: %Cpp.long = converted %int_1.loc26, %.loc26_30.1 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %impl.elem0.loc26_30.2: %.d01 = impl_witness_access constants.%ImplicitAs.impl_witness.bc1, element0 [concrete = constants.%Cpp.long.as.ImplicitAs.impl.Convert.3cefb0.2] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %Cpp.long = call %bound_method.loc26_30.1(%int_1.loc26) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc26_30.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc26_30.2: %Cpp.long = converted %int_1.loc26, %.loc26_30.1 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %impl.elem0.loc26_30.2: %.49e = impl_witness_access constants.%ImplicitAs.impl_witness.402, element0 [concrete = constants.%Cpp.long.as.ImplicitAs.impl.Convert.3cefb0.2] // CHECK:STDOUT: %bound_method.loc26_30.2: = bound_method %.loc26_30.2, %impl.elem0.loc26_30.2 [concrete = constants.%Cpp.long.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %Cpp.long.as.ImplicitAs.impl.Convert.call.loc26: init Core.IntLiteral = call %bound_method.loc26_30.2(%.loc26_30.2) [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc26_30.3: Core.IntLiteral = value_of_initializer %Cpp.long.as.ImplicitAs.impl.Convert.call.loc26 [concrete = constants.%int_1.5b8] @@ -1315,7 +1315,7 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %array_type: type = array_type %.loc26_30.4, %f32 [concrete = constants.%array_type] // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %array_type = ref_binding a, %a.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.3 +// 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: %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) @@ -1328,7 +1328,7 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.a26) { +// CHECK:STDOUT: fn @Destroy.Op.loc26_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1345,26 +1345,26 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long: type = class_type @Long32 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.83e: type = pattern_type %Cpp.long [concrete] +// CHECK:STDOUT: %pattern_type.25e: type = pattern_type %Cpp.long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6fa: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7eb: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e41: = impl_witness imports.%ImplicitAs.impl_witness_table.293 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e41) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.93b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.f84: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.93b, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.e27: = impl_witness imports.%ImplicitAs.impl_witness_table.635 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e27) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.7dc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.b13: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.7dc, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %int_1.3d0: %Cpp.long = int_value 1 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.553: = impl_witness imports.%Copy.impl_witness_table.256 [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Cpp.long, (%Copy.impl_witness.553) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.b77: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.253: type = fn_type_with_self_type %Copy.WithSelf.Op.type.b77, %Copy.facet [concrete] +// CHECK:STDOUT: %int_1.9ce: %Cpp.long = int_value 1 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.fc57: = impl_witness imports.%Copy.impl_witness_table.210 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Cpp.long, (%Copy.impl_witness.fc57) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8db: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.3dd: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8db, %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.790b3b.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1372,24 +1372,24 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: .long = constants.%Cpp.long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ade: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.293 = impl_witness_table (%Core.import_ref.ade), @Core.IntLiteral.as.ImplicitAs.impl.ec9 [concrete] -// CHECK:STDOUT: %Core.import_ref.f63: %Cpp.long.as.Copy.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.256 = impl_witness_table (%Core.import_ref.f63), @Cpp.long.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.06c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.635 = impl_witness_table (%Core.import_ref.06c), @Core.IntLiteral.as.ImplicitAs.impl.94b [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Cpp.long.as.Copy.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.210 = impl_witness_table (%Core.import_ref.9c3), @Cpp.long.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CopyLong() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.83e = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.83e = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.25e = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.25e = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Cpp.long = var %a.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc8: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc8: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc8: = bound_method %int_1, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.long = call %bound_method.loc8(%int_1) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc8_3: init %Cpp.long = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.long = call %bound_method.loc8(%int_1) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc8_3: init %Cpp.long = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.9ce] // CHECK:STDOUT: assign %a.var, %.loc8_3 // CHECK:STDOUT: %.loc8_13: type = splice_block %long.ref.loc8 [concrete = constants.%Cpp.long] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -1397,13 +1397,13 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %Cpp.long = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.83e = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.83e = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.25e = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.25e = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %Cpp.long = var %b.var_patt // CHECK:STDOUT: %a.ref: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %.loc9_28: %Cpp.long = acquire_value %a.ref -// CHECK:STDOUT: %impl.elem0.loc9: %.253 = impl_witness_access constants.%Copy.impl_witness.553, element0 [concrete = constants.%Cpp.long.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc9: %.3dd = impl_witness_access constants.%Copy.impl_witness.fc57, element0 [concrete = constants.%Cpp.long.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_28, %impl.elem0.loc9 // CHECK:STDOUT: %Cpp.long.as.Copy.impl.Op.call: init %Cpp.long = call %bound_method.loc9(%.loc9_28) // CHECK:STDOUT: assign %b.var, %Cpp.long.as.Copy.impl.Op.call @@ -1412,9 +1412,9 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %long.ref.loc9: type = name_ref long, constants.%Cpp.long [concrete = constants.%Cpp.long] // CHECK:STDOUT: } // CHECK:STDOUT: %b: ref %Cpp.long = ref_binding b, %b.var -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 // 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.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1430,45 +1430,45 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Cpp.long: type = class_type @Long32 [concrete] -// CHECK:STDOUT: %pattern_type.83e: type = pattern_type %Cpp.long [concrete] +// CHECK:STDOUT: %pattern_type.25e: type = pattern_type %Cpp.long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6fa: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e41: = impl_witness imports.%ImplicitAs.impl_witness_table.293 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e41) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.93b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.f84: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.93b, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7eb: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.e27: = impl_witness imports.%ImplicitAs.impl_witness_table.635 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e27) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.7dc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.b13: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.7dc, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %int_1.3d0: %Cpp.long = int_value 1 [concrete] -// CHECK:STDOUT: %EqWith.type.0be: type = facet_type <@EqWith, @EqWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.455: = impl_witness imports.%EqWith.impl_witness_table.d73 [concrete] -// CHECK:STDOUT: %EqWith.facet.2bd: %EqWith.type.0be = facet_value %Cpp.long, (%EqWith.impl_witness.455) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.f74: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.2bd) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.c21: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.2bd) [concrete] -// CHECK:STDOUT: %.fa7: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.f74, %EqWith.facet.2bd [concrete] +// CHECK:STDOUT: %int_1.9ce: %Cpp.long = int_value 1 [concrete] +// CHECK:STDOUT: %EqWith.type.54a: type = facet_type <@EqWith, @EqWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.cd4: = impl_witness imports.%EqWith.impl_witness_table.48e [concrete] +// CHECK:STDOUT: %EqWith.facet.362: %EqWith.type.54a = facet_value %Cpp.long, (%EqWith.impl_witness.cd4) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.23e: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.362) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.cc5: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.362) [concrete] +// CHECK:STDOUT: %.b25: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.23e, %EqWith.facet.362 [concrete] // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.78c: type = fn_type @Cpp.long.as.EqWith.impl.Equal.3 [concrete] // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.1ca: %Cpp.long.as.EqWith.impl.Equal.type.78c = struct_value () [concrete] -// CHECK:STDOUT: %.d35: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.c21, %EqWith.facet.2bd [concrete] +// CHECK:STDOUT: %.8fe: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.cc5, %EqWith.facet.362 [concrete] // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.8e5: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.3 [concrete] // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.a6a: %Cpp.long.as.EqWith.impl.NotEqual.type.8e5 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.type.f75: type = facet_type <@OrderedWith, @OrderedWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %OrderedWith.impl_witness.f4f: = impl_witness imports.%OrderedWith.impl_witness_table.497 [concrete] -// CHECK:STDOUT: %OrderedWith.facet.410: %OrderedWith.type.f75 = facet_value %Cpp.long, (%OrderedWith.impl_witness.f4f) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.4c6: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.410) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.6a3: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.410) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.607: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.410) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.7f3: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.410) [concrete] -// CHECK:STDOUT: %.fd6: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.607, %OrderedWith.facet.410 [concrete] +// CHECK:STDOUT: %OrderedWith.type.a48: type = facet_type <@OrderedWith, @OrderedWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %OrderedWith.impl_witness.c47: = impl_witness imports.%OrderedWith.impl_witness_table.5d0 [concrete] +// CHECK:STDOUT: %OrderedWith.facet.f99: %OrderedWith.type.a48 = facet_value %Cpp.long, (%OrderedWith.impl_witness.c47) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.e6d: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.f99) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.601: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.f99) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.d3f: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.f99) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.2d8: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.f99) [concrete] +// CHECK:STDOUT: %.693: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.d3f, %OrderedWith.facet.f99 [concrete] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.725: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.3 [concrete] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.7c8: %Cpp.long.as.OrderedWith.impl.Greater.type.725 = struct_value () [concrete] -// CHECK:STDOUT: %.fd0: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.4c6, %OrderedWith.facet.410 [concrete] +// CHECK:STDOUT: %.c3c: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.e6d, %OrderedWith.facet.f99 [concrete] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.335: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.3 [concrete] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.606: %Cpp.long.as.OrderedWith.impl.Less.type.335 = struct_value () [concrete] -// CHECK:STDOUT: %.3e2: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.7f3, %OrderedWith.facet.410 [concrete] +// CHECK:STDOUT: %.9bc: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.2d8, %OrderedWith.facet.f99 [concrete] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.2d9: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.3 [concrete] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.a09: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.2d9 = struct_value () [concrete] -// CHECK:STDOUT: %.cc3: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.6a3, %OrderedWith.facet.410 [concrete] +// CHECK:STDOUT: %.df7: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.601, %OrderedWith.facet.f99 [concrete] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.42c: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.3 [concrete] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.0c8: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.42c = struct_value () [concrete] // CHECK:STDOUT: } @@ -1478,76 +1478,76 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: .long = constants.%Cpp.long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ade: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.293 = impl_witness_table (%Core.import_ref.ade), @Core.IntLiteral.as.ImplicitAs.impl.ec9 [concrete] -// CHECK:STDOUT: %Core.import_ref.b5b: %Cpp.long.as.EqWith.impl.Equal.type.78c = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.1ca] -// CHECK:STDOUT: %Core.import_ref.3bc: %Cpp.long.as.EqWith.impl.NotEqual.type.8e5 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.a6a] -// CHECK:STDOUT: %EqWith.impl_witness_table.d73 = impl_witness_table (%Core.import_ref.b5b, %Core.import_ref.3bc), @Cpp.long.as.EqWith.impl.554 [concrete] -// CHECK:STDOUT: %Core.import_ref.746: %Cpp.long.as.OrderedWith.impl.Less.type.335 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.606] -// CHECK:STDOUT: %Core.import_ref.202: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.42c = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.0c8] -// CHECK:STDOUT: %Core.import_ref.cc2: %Cpp.long.as.OrderedWith.impl.Greater.type.725 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.7c8] -// CHECK:STDOUT: %Core.import_ref.4c7: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.2d9 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.a09] -// CHECK:STDOUT: %OrderedWith.impl_witness_table.497 = impl_witness_table (%Core.import_ref.746, %Core.import_ref.202, %Core.import_ref.cc2, %Core.import_ref.4c7), @Cpp.long.as.OrderedWith.impl.439 [concrete] +// CHECK:STDOUT: %Core.import_ref.06c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.635 = impl_witness_table (%Core.import_ref.06c), @Core.IntLiteral.as.ImplicitAs.impl.94b [concrete] +// CHECK:STDOUT: %Core.import_ref.a87: %Cpp.long.as.EqWith.impl.Equal.type.78c = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.1ca] +// CHECK:STDOUT: %Core.import_ref.adc9: %Cpp.long.as.EqWith.impl.NotEqual.type.8e5 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.a6a] +// CHECK:STDOUT: %EqWith.impl_witness_table.48e = impl_witness_table (%Core.import_ref.a87, %Core.import_ref.adc9), @Cpp.long.as.EqWith.impl.96d [concrete] +// CHECK:STDOUT: %Core.import_ref.0e8: %Cpp.long.as.OrderedWith.impl.Less.type.335 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.606] +// CHECK:STDOUT: %Core.import_ref.757: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.42c = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.0c8] +// CHECK:STDOUT: %Core.import_ref.c32c: %Cpp.long.as.OrderedWith.impl.Greater.type.725 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.7c8] +// CHECK:STDOUT: %Core.import_ref.381: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.2d9 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.a09] +// CHECK:STDOUT: %OrderedWith.impl_witness_table.5d0 = impl_witness_table (%Core.import_ref.0e8, %Core.import_ref.757, %Core.import_ref.c32c, %Core.import_ref.381), @Cpp.long.as.OrderedWith.impl.894 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ComparisonsHomogeneousLong() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.83e = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.25e = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc8_13: type = splice_block %long.ref.loc8 [concrete = constants.%Cpp.long] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %long.ref.loc8: type = name_ref long, constants.%Cpp.long [concrete = constants.%Cpp.long] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc8: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc8: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc8: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc8_21.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc8_21.2: %Cpp.long = converted %int_1.loc8, %.loc8_21.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc8_21.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc8_21.2: %Cpp.long = converted %int_1.loc8, %.loc8_21.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %a: %Cpp.long = value_binding a, %.loc8_21.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.83e = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.25e = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_13: type = splice_block %long.ref.loc9 [concrete = constants.%Cpp.long] { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %long.ref.loc9: type = name_ref long, constants.%Cpp.long [concrete = constants.%Cpp.long] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc9: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc9: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc9: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc9_21.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc9_21.2: %Cpp.long = converted %int_1.loc9, %.loc9_21.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc9_21.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc9_21.2: %Cpp.long = converted %int_1.loc9, %.loc9_21.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %b: %Cpp.long = value_binding b, %.loc9_21.2 // CHECK:STDOUT: %a.ref.loc10: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc10: %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc10: %.fa7 = impl_witness_access constants.%EqWith.impl_witness.455, element0 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.1ca] +// CHECK:STDOUT: %impl.elem0.loc10: %.b25 = impl_witness_access constants.%EqWith.impl_witness.cd4, element0 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.1ca] // CHECK:STDOUT: %bound_method.loc10: = bound_method %a.ref.loc10, %impl.elem0.loc10 // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.call: init bool = call %bound_method.loc10(%a.ref.loc10, %b.ref.loc10) // CHECK:STDOUT: %a.ref.loc11: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc11: %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem1.loc11: %.d35 = impl_witness_access constants.%EqWith.impl_witness.455, element1 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.a6a] +// CHECK:STDOUT: %impl.elem1.loc11: %.8fe = impl_witness_access constants.%EqWith.impl_witness.cd4, element1 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.a6a] // CHECK:STDOUT: %bound_method.loc11: = bound_method %a.ref.loc11, %impl.elem1.loc11 // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.call: init bool = call %bound_method.loc11(%a.ref.loc11, %b.ref.loc11) // CHECK:STDOUT: %a.ref.loc12: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc12: %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem2: %.fd6 = impl_witness_access constants.%OrderedWith.impl_witness.f4f, element2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.7c8] +// CHECK:STDOUT: %impl.elem2: %.693 = impl_witness_access constants.%OrderedWith.impl_witness.c47, element2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.7c8] // CHECK:STDOUT: %bound_method.loc12: = bound_method %a.ref.loc12, %impl.elem2 // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.call: init bool = call %bound_method.loc12(%a.ref.loc12, %b.ref.loc12) // CHECK:STDOUT: %a.ref.loc13: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc13: %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc13: %.fd0 = impl_witness_access constants.%OrderedWith.impl_witness.f4f, element0 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.606] +// CHECK:STDOUT: %impl.elem0.loc13: %.c3c = impl_witness_access constants.%OrderedWith.impl_witness.c47, element0 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.606] // CHECK:STDOUT: %bound_method.loc13: = bound_method %a.ref.loc13, %impl.elem0.loc13 // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.call: init bool = call %bound_method.loc13(%a.ref.loc13, %b.ref.loc13) // CHECK:STDOUT: %a.ref.loc14: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc14: %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem3: %.3e2 = impl_witness_access constants.%OrderedWith.impl_witness.f4f, element3 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.a09] +// CHECK:STDOUT: %impl.elem3: %.9bc = impl_witness_access constants.%OrderedWith.impl_witness.c47, element3 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.a09] // CHECK:STDOUT: %bound_method.loc14: = bound_method %a.ref.loc14, %impl.elem3 // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.call: init bool = call %bound_method.loc14(%a.ref.loc14, %b.ref.loc14) // CHECK:STDOUT: %a.ref.loc15: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc15: %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem1.loc15: %.cc3 = impl_witness_access constants.%OrderedWith.impl_witness.f4f, element1 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.0c8] +// CHECK:STDOUT: %impl.elem1.loc15: %.df7 = impl_witness_access constants.%OrderedWith.impl_witness.c47, element1 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.0c8] // CHECK:STDOUT: %bound_method.loc15: = bound_method %a.ref.loc15, %impl.elem1.loc15 // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.call: init bool = call %bound_method.loc15(%a.ref.loc15, %b.ref.loc15) // CHECK:STDOUT: @@ -1560,155 +1560,155 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Cpp.long: type = class_type @Long32 [concrete] -// CHECK:STDOUT: %pattern_type.83e: type = pattern_type %Cpp.long [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6fa: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e41: = impl_witness imports.%ImplicitAs.impl_witness_table.293 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.c09: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e41) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.93b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %.f84: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.93b, %ImplicitAs.facet.c09 [concrete] +// CHECK:STDOUT: %pattern_type.25e: type = pattern_type %Cpp.long [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7eb: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.e27: = impl_witness imports.%ImplicitAs.impl_witness_table.635 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.b30: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e27) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.7dc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %.b13: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.7dc, %ImplicitAs.facet.b30 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce [concrete] -// CHECK:STDOUT: %int_1.3d0: %Cpp.long = int_value 1 [concrete] -// CHECK:STDOUT: %EqWith.type.536: type = facet_type <@EqWith, @EqWith(%i32)> [concrete] -// CHECK:STDOUT: %T.887: %ImplicitAs.type.6fa = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.9e873c.1: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.1, @Cpp.long.as.EqWith.impl.e2f(%T.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.fc9fc1.1: %Cpp.long.as.EqWith.impl.NotEqual.type.9e873c.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.9e873c.2: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.2, @Cpp.long.as.EqWith.impl.e2f(%T.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.fc9fc1.2: %Cpp.long.as.EqWith.impl.NotEqual.type.9e873c.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.d45cab.1: type = fn_type @Cpp.long.as.EqWith.impl.Equal.1, @Cpp.long.as.EqWith.impl.e2f(%T.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.c9f6e2.1: %Cpp.long.as.EqWith.impl.Equal.type.d45cab.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.d45cab.2: type = fn_type @Cpp.long.as.EqWith.impl.Equal.2, @Cpp.long.as.EqWith.impl.e2f(%T.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.c9f6e2.2: %Cpp.long.as.EqWith.impl.Equal.type.d45cab.2 = struct_value () [symbolic] -// CHECK:STDOUT: %EqWith.type.70b: type = facet_type <@EqWith, @EqWith(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.72d: = impl_witness imports.%ImplicitAs.impl_witness_table.29c [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.0fb: %ImplicitAs.type.6fa = facet_value %i32, (%ImplicitAs.impl_witness.72d) [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.23c: = impl_witness imports.%EqWith.impl_witness_table.f94, @Cpp.long.as.EqWith.impl.e2f(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.17afc6.1: type = fn_type @Cpp.long.as.EqWith.impl.Equal.2, @Cpp.long.as.EqWith.impl.e2f(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.e1af36.1: %Cpp.long.as.EqWith.impl.Equal.type.17afc6.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.5255ce.1: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.2, @Cpp.long.as.EqWith.impl.e2f(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.ab5731.1: %Cpp.long.as.EqWith.impl.NotEqual.type.5255ce.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.17afc6.2: type = fn_type @Cpp.long.as.EqWith.impl.Equal.1, @Cpp.long.as.EqWith.impl.e2f(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.e1af36.2: %Cpp.long.as.EqWith.impl.Equal.type.17afc6.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.5255ce.2: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.1, @Cpp.long.as.EqWith.impl.e2f(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.ab5731.2: %Cpp.long.as.EqWith.impl.NotEqual.type.5255ce.2 = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet.757: %EqWith.type.536 = facet_value %Cpp.long, (%EqWith.impl_witness.23c) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.3d6: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%i32, %EqWith.facet.757) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.966: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%i32, %EqWith.facet.757) [concrete] -// CHECK:STDOUT: %.c27: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.3d6, %EqWith.facet.757 [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.fa6f78.1: = specific_function %Cpp.long.as.EqWith.impl.Equal.e1af36.2, @Cpp.long.as.EqWith.impl.Equal.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.fa6f78.2: = specific_function %Cpp.long.as.EqWith.impl.Equal.e1af36.1, @Cpp.long.as.EqWith.impl.Equal.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.db6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %.9d6: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.db6, %ImplicitAs.facet.0fb [concrete] +// CHECK:STDOUT: %int_1.9ce: %Cpp.long = int_value 1 [concrete] +// CHECK:STDOUT: %EqWith.type.8ee: type = facet_type <@EqWith, @EqWith(%i32)> [concrete] +// CHECK:STDOUT: %T.315: %ImplicitAs.type.7eb = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.21e369.1: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.1, @Cpp.long.as.EqWith.impl.5b1(%T.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.385432.1: %Cpp.long.as.EqWith.impl.NotEqual.type.21e369.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.21e369.2: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.2, @Cpp.long.as.EqWith.impl.5b1(%T.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.385432.2: %Cpp.long.as.EqWith.impl.NotEqual.type.21e369.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.814973.1: type = fn_type @Cpp.long.as.EqWith.impl.Equal.1, @Cpp.long.as.EqWith.impl.5b1(%T.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.4a8971.1: %Cpp.long.as.EqWith.impl.Equal.type.814973.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.814973.2: type = fn_type @Cpp.long.as.EqWith.impl.Equal.2, @Cpp.long.as.EqWith.impl.5b1(%T.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.4a8971.2: %Cpp.long.as.EqWith.impl.Equal.type.814973.2 = struct_value () [symbolic] +// CHECK:STDOUT: %EqWith.type.aee: type = facet_type <@EqWith, @EqWith(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.f82: = impl_witness imports.%ImplicitAs.impl_witness_table.a75 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.ce4: %ImplicitAs.type.7eb = facet_value %i32, (%ImplicitAs.impl_witness.f82) [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.f8a: = impl_witness imports.%EqWith.impl_witness_table.fc9, @Cpp.long.as.EqWith.impl.5b1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.91d370.1: type = fn_type @Cpp.long.as.EqWith.impl.Equal.2, @Cpp.long.as.EqWith.impl.5b1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.1a881e.1: %Cpp.long.as.EqWith.impl.Equal.type.91d370.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.0ae55e.1: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.2, @Cpp.long.as.EqWith.impl.5b1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.7bb2f2.1: %Cpp.long.as.EqWith.impl.NotEqual.type.0ae55e.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.91d370.2: type = fn_type @Cpp.long.as.EqWith.impl.Equal.1, @Cpp.long.as.EqWith.impl.5b1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.1a881e.2: %Cpp.long.as.EqWith.impl.Equal.type.91d370.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.0ae55e.2: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.1, @Cpp.long.as.EqWith.impl.5b1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.7bb2f2.2: %Cpp.long.as.EqWith.impl.NotEqual.type.0ae55e.2 = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.facet.1af: %EqWith.type.8ee = facet_value %Cpp.long, (%EqWith.impl_witness.f8a) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.59f: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%i32, %EqWith.facet.1af) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.92e: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%i32, %EqWith.facet.1af) [concrete] +// CHECK:STDOUT: %.ad3: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.59f, %EqWith.facet.1af [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.6692a8.1: = specific_function %Cpp.long.as.EqWith.impl.Equal.1a881e.2, @Cpp.long.as.EqWith.impl.Equal.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.6692a8.2: = specific_function %Cpp.long.as.EqWith.impl.Equal.1a881e.1, @Cpp.long.as.EqWith.impl.Equal.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.59b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %.9c4: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.59b, %ImplicitAs.facet.ce4 [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: %.475: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.966, %EqWith.facet.757 [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.3a486e.1: = specific_function %Cpp.long.as.EqWith.impl.NotEqual.ab5731.2, @Cpp.long.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.3a486e.2: = specific_function %Cpp.long.as.EqWith.impl.NotEqual.ab5731.1, @Cpp.long.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %OrderedWith.type.58a: type = facet_type <@OrderedWith, @OrderedWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.0ba330.1: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.786(%T.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.d190f3.1: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.0ba330.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.0ba330.2: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.786(%T.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.d190f3.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.0ba330.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.a01d2b.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.1, @Cpp.long.as.OrderedWith.impl.786(%T.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.1365fc.1: %Cpp.long.as.OrderedWith.impl.Greater.type.a01d2b.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.a01d2b.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.2, @Cpp.long.as.OrderedWith.impl.786(%T.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.1365fc.2: %Cpp.long.as.OrderedWith.impl.Greater.type.a01d2b.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.8f5c1d.1: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.786(%T.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.b8ff7f.1: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.8f5c1d.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.8f5c1d.2: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.786(%T.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.b8ff7f.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.8f5c1d.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.77ead7.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.1, @Cpp.long.as.OrderedWith.impl.786(%T.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.912b7a.1: %Cpp.long.as.OrderedWith.impl.Less.type.77ead7.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.77ead7.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.2, @Cpp.long.as.OrderedWith.impl.786(%T.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.912b7a.2: %Cpp.long.as.OrderedWith.impl.Less.type.77ead7.2 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.type.0e2: type = facet_type <@OrderedWith, @OrderedWith(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %OrderedWith.impl_witness.da4: = impl_witness imports.%OrderedWith.impl_witness_table.e4e, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.a2f55b.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.2, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.335d62.1: %Cpp.long.as.OrderedWith.impl.Less.type.a2f55b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.8589a2.1: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1dbdf6.1: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.8589a2.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.375c4b.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.2, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.d25f2f.1: %Cpp.long.as.OrderedWith.impl.Greater.type.375c4b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.549ba3.1: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.f6b944.1: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.549ba3.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.a2f55b.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.1, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.335d62.2: %Cpp.long.as.OrderedWith.impl.Less.type.a2f55b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.8589a2.2: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1dbdf6.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.8589a2.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.375c4b.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.1, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.d25f2f.2: %Cpp.long.as.OrderedWith.impl.Greater.type.375c4b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.549ba3.2: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.f6b944.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.549ba3.2 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet.35f: %OrderedWith.type.58a = facet_value %Cpp.long, (%OrderedWith.impl_witness.da4) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.c2b: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%i32, %OrderedWith.facet.35f) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.728: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%i32, %OrderedWith.facet.35f) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.62f: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%i32, %OrderedWith.facet.35f) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.9e0: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%i32, %OrderedWith.facet.35f) [concrete] -// CHECK:STDOUT: %.1dc: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.62f, %OrderedWith.facet.35f [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.624957.1: = specific_function %Cpp.long.as.OrderedWith.impl.Greater.d25f2f.2, @Cpp.long.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.624957.2: = specific_function %Cpp.long.as.OrderedWith.impl.Greater.d25f2f.1, @Cpp.long.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %.e70: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.c2b, %OrderedWith.facet.35f [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.87c251.1: = specific_function %Cpp.long.as.OrderedWith.impl.Less.335d62.2, @Cpp.long.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.87c251.2: = specific_function %Cpp.long.as.OrderedWith.impl.Less.335d62.1, @Cpp.long.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %.fa8: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.9e0, %OrderedWith.facet.35f [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.e9f17d.1: = specific_function %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.f6b944.2, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.e9f17d.2: = specific_function %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.f6b944.1, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %.7b7: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.728, %OrderedWith.facet.35f [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.1318bc.1: = specific_function %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1dbdf6.2, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.1318bc.2: = specific_function %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1dbdf6.1, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.475: = impl_witness imports.%EqWith.impl_witness_table.f94, @Cpp.long.as.EqWith.impl.e2f(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.46b9a6.1: type = fn_type @Cpp.long.as.EqWith.impl.Equal.2, @Cpp.long.as.EqWith.impl.e2f(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.7dbd0a.1: %Cpp.long.as.EqWith.impl.Equal.type.46b9a6.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.f0dc65.1: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.2, @Cpp.long.as.EqWith.impl.e2f(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.dd0676.1: %Cpp.long.as.EqWith.impl.NotEqual.type.f0dc65.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.46b9a6.2: type = fn_type @Cpp.long.as.EqWith.impl.Equal.1, @Cpp.long.as.EqWith.impl.e2f(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.7dbd0a.2: %Cpp.long.as.EqWith.impl.Equal.type.46b9a6.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.f0dc65.2: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.1, @Cpp.long.as.EqWith.impl.e2f(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.dd0676.2: %Cpp.long.as.EqWith.impl.NotEqual.type.f0dc65.2 = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet.4c4: %EqWith.type.70b = facet_value %Cpp.long, (%EqWith.impl_witness.475) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.b4c: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(Core.IntLiteral, %EqWith.facet.4c4) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.f25: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(Core.IntLiteral, %EqWith.facet.4c4) [concrete] -// CHECK:STDOUT: %.f43: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.b4c, %EqWith.facet.4c4 [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.5752dd.1: = specific_function %Cpp.long.as.EqWith.impl.Equal.7dbd0a.2, @Cpp.long.as.EqWith.impl.Equal.1(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.5752dd.2: = specific_function %Cpp.long.as.EqWith.impl.Equal.7dbd0a.1, @Cpp.long.as.EqWith.impl.Equal.2(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %.e6b: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.f25, %EqWith.facet.4c4 [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.e03a04.1: = specific_function %Cpp.long.as.EqWith.impl.NotEqual.dd0676.2, @Cpp.long.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.e03a04.2: = specific_function %Cpp.long.as.EqWith.impl.NotEqual.dd0676.1, @Cpp.long.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %OrderedWith.impl_witness.70e: = impl_witness imports.%OrderedWith.impl_witness_table.e4e, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.cc8d23.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.2, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.bc9b37.1: %Cpp.long.as.OrderedWith.impl.Less.type.cc8d23.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.4875b2.1: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.26f675.1: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.4875b2.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.4d8ecd.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.2, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.5b50d7.1: %Cpp.long.as.OrderedWith.impl.Greater.type.4d8ecd.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.5183ad.1: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.3fc9f4.1: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.5183ad.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.cc8d23.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.1, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.bc9b37.2: %Cpp.long.as.OrderedWith.impl.Less.type.cc8d23.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.4875b2.2: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.26f675.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.4875b2.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.4d8ecd.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.1, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.5b50d7.2: %Cpp.long.as.OrderedWith.impl.Greater.type.4d8ecd.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.5183ad.2: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.786(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.3fc9f4.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.5183ad.2 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet.58d: %OrderedWith.type.0e2 = facet_value %Cpp.long, (%OrderedWith.impl_witness.70e) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.f3a: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.58d) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.dc4: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.58d) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.bb8: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.58d) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.b7d: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.58d) [concrete] -// CHECK:STDOUT: %.384: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.bb8, %OrderedWith.facet.58d [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.ea58ad.1: = specific_function %Cpp.long.as.OrderedWith.impl.Greater.5b50d7.2, @Cpp.long.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.ea58ad.2: = specific_function %Cpp.long.as.OrderedWith.impl.Greater.5b50d7.1, @Cpp.long.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %.28e: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.f3a, %OrderedWith.facet.58d [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.b7bcad.1: = specific_function %Cpp.long.as.OrderedWith.impl.Less.bc9b37.2, @Cpp.long.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.b7bcad.2: = specific_function %Cpp.long.as.OrderedWith.impl.Less.bc9b37.1, @Cpp.long.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %.532: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.b7d, %OrderedWith.facet.58d [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.660f9a.1: = specific_function %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.3fc9f4.2, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.660f9a.2: = specific_function %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.3fc9f4.1, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %.484: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.dc4, %OrderedWith.facet.58d [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.813265.1: = specific_function %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.26f675.2, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.813265.2: = specific_function %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.26f675.1, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.c09) [concrete] +// CHECK:STDOUT: %.e94: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.92e, %EqWith.facet.1af [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.7605b8.1: = specific_function %Cpp.long.as.EqWith.impl.NotEqual.7bb2f2.2, @Cpp.long.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.7605b8.2: = specific_function %Cpp.long.as.EqWith.impl.NotEqual.7bb2f2.1, @Cpp.long.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %OrderedWith.type.7dc: type = facet_type <@OrderedWith, @OrderedWith(%i32)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.154997.1: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.e4afa3.1: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.154997.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.154997.2: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.e4afa3.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.154997.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.e2eef7.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.1, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.37f70d.1: %Cpp.long.as.OrderedWith.impl.Greater.type.e2eef7.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.e2eef7.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.2, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.37f70d.2: %Cpp.long.as.OrderedWith.impl.Greater.type.e2eef7.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.35cecb.1: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.351d50.1: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.35cecb.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.35cecb.2: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.351d50.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.35cecb.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.3ff9ca.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.1, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.76c9f3.1: %Cpp.long.as.OrderedWith.impl.Less.type.3ff9ca.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.3ff9ca.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.2, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.76c9f3.2: %Cpp.long.as.OrderedWith.impl.Less.type.3ff9ca.2 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.type.975: type = facet_type <@OrderedWith, @OrderedWith(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %OrderedWith.impl_witness.512: = impl_witness imports.%OrderedWith.impl_witness_table.41e, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.cc154a.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.2, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.c497ef.1: %Cpp.long.as.OrderedWith.impl.Less.type.cc154a.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.ae2ba0.1: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.998aeb.1: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.ae2ba0.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.1eeaf7.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.2, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.ea4cc4.1: %Cpp.long.as.OrderedWith.impl.Greater.type.1eeaf7.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.a93f64.1: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.b64dd2.1: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.a93f64.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.cc154a.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.1, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.c497ef.2: %Cpp.long.as.OrderedWith.impl.Less.type.cc154a.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.ae2ba0.2: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.998aeb.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.ae2ba0.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.1eeaf7.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.1, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.ea4cc4.2: %Cpp.long.as.OrderedWith.impl.Greater.type.1eeaf7.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.a93f64.2: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.b64dd2.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.a93f64.2 = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.facet.ed3: %OrderedWith.type.7dc = facet_value %Cpp.long, (%OrderedWith.impl_witness.512) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.07d: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%i32, %OrderedWith.facet.ed3) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.8a7: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%i32, %OrderedWith.facet.ed3) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.a25: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%i32, %OrderedWith.facet.ed3) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.ee5: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%i32, %OrderedWith.facet.ed3) [concrete] +// CHECK:STDOUT: %.30b: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.a25, %OrderedWith.facet.ed3 [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.cc0b83.1: = specific_function %Cpp.long.as.OrderedWith.impl.Greater.ea4cc4.2, @Cpp.long.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.cc0b83.2: = specific_function %Cpp.long.as.OrderedWith.impl.Greater.ea4cc4.1, @Cpp.long.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %.d9d: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.07d, %OrderedWith.facet.ed3 [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.06a809.1: = specific_function %Cpp.long.as.OrderedWith.impl.Less.c497ef.2, @Cpp.long.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.06a809.2: = specific_function %Cpp.long.as.OrderedWith.impl.Less.c497ef.1, @Cpp.long.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %.c8e: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.ee5, %OrderedWith.facet.ed3 [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.a6b8b7.1: = specific_function %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.b64dd2.2, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.a6b8b7.2: = specific_function %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.b64dd2.1, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %.3fe: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.8a7, %OrderedWith.facet.ed3 [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.9913d3.1: = specific_function %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.998aeb.2, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.9913d3.2: = specific_function %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.998aeb.1, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.357: = impl_witness imports.%EqWith.impl_witness_table.fc9, @Cpp.long.as.EqWith.impl.5b1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.10d936.1: type = fn_type @Cpp.long.as.EqWith.impl.Equal.2, @Cpp.long.as.EqWith.impl.5b1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.c5b9b0.1: %Cpp.long.as.EqWith.impl.Equal.type.10d936.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.d8ead4.1: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.2, @Cpp.long.as.EqWith.impl.5b1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.0931ca.1: %Cpp.long.as.EqWith.impl.NotEqual.type.d8ead4.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.10d936.2: type = fn_type @Cpp.long.as.EqWith.impl.Equal.1, @Cpp.long.as.EqWith.impl.5b1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.c5b9b0.2: %Cpp.long.as.EqWith.impl.Equal.type.10d936.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.d8ead4.2: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.1, @Cpp.long.as.EqWith.impl.5b1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.0931ca.2: %Cpp.long.as.EqWith.impl.NotEqual.type.d8ead4.2 = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.facet.0bf: %EqWith.type.aee = facet_value %Cpp.long, (%EqWith.impl_witness.357) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.f2f: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(Core.IntLiteral, %EqWith.facet.0bf) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.621: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(Core.IntLiteral, %EqWith.facet.0bf) [concrete] +// CHECK:STDOUT: %.da0: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.f2f, %EqWith.facet.0bf [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.e188b3.1: = specific_function %Cpp.long.as.EqWith.impl.Equal.c5b9b0.2, @Cpp.long.as.EqWith.impl.Equal.1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.e188b3.2: = specific_function %Cpp.long.as.EqWith.impl.Equal.c5b9b0.1, @Cpp.long.as.EqWith.impl.Equal.2(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %.b1b: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.621, %EqWith.facet.0bf [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.652cb3.1: = specific_function %Cpp.long.as.EqWith.impl.NotEqual.0931ca.2, @Cpp.long.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.652cb3.2: = specific_function %Cpp.long.as.EqWith.impl.NotEqual.0931ca.1, @Cpp.long.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %OrderedWith.impl_witness.f04: = impl_witness imports.%OrderedWith.impl_witness_table.41e, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.544cda.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.2, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.819a43.1: %Cpp.long.as.OrderedWith.impl.Less.type.544cda.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.03c549.1: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.3e29ec.1: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.03c549.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.75fc02.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.2, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.f83821.1: %Cpp.long.as.OrderedWith.impl.Greater.type.75fc02.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.f7405b.1: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.76c962.1: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.f7405b.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.544cda.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.1, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.819a43.2: %Cpp.long.as.OrderedWith.impl.Less.type.544cda.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.03c549.2: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.3e29ec.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.03c549.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.75fc02.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.1, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.f83821.2: %Cpp.long.as.OrderedWith.impl.Greater.type.75fc02.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.f7405b.2: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.3fc(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.76c962.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.f7405b.2 = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.facet.52b: %OrderedWith.type.975 = facet_value %Cpp.long, (%OrderedWith.impl_witness.f04) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.d3b: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.52b) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.488: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.52b) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.d03: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.52b) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.190: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.52b) [concrete] +// CHECK:STDOUT: %.d77: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.d03, %OrderedWith.facet.52b [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.faeadc.1: = specific_function %Cpp.long.as.OrderedWith.impl.Greater.f83821.2, @Cpp.long.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.faeadc.2: = specific_function %Cpp.long.as.OrderedWith.impl.Greater.f83821.1, @Cpp.long.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %.124: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.d3b, %OrderedWith.facet.52b [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.f8760d.1: = specific_function %Cpp.long.as.OrderedWith.impl.Less.819a43.2, @Cpp.long.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.f8760d.2: = specific_function %Cpp.long.as.OrderedWith.impl.Less.819a43.1, @Cpp.long.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %.3eb: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.190, %OrderedWith.facet.52b [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ee8dd4.1: = specific_function %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.76c962.2, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ee8dd4.2: = specific_function %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.76c962.1, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %.e14: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.488, %OrderedWith.facet.52b [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.42a4b8.1: = specific_function %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.3e29ec.2, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.42a4b8.2: = specific_function %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.3e29ec.1, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.b30) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1716,57 +1716,57 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: .long = constants.%Cpp.long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.adef5f.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.293 = impl_witness_table (%Core.import_ref.adef5f.1), @Core.IntLiteral.as.ImplicitAs.impl.ec9 [concrete] -// CHECK:STDOUT: %Core.import_ref.42d: @Cpp.long.as.EqWith.impl.e2f.%Cpp.long.as.EqWith.impl.Equal.type.2 (%Cpp.long.as.EqWith.impl.Equal.type.d45cab.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.EqWith.impl.e2f.%Cpp.long.as.EqWith.impl.Equal.2 (constants.%Cpp.long.as.EqWith.impl.Equal.c9f6e2.1)] -// CHECK:STDOUT: %Core.import_ref.fd8: @Cpp.long.as.EqWith.impl.e2f.%Cpp.long.as.EqWith.impl.NotEqual.type.2 (%Cpp.long.as.EqWith.impl.NotEqual.type.9e873c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.EqWith.impl.e2f.%Cpp.long.as.EqWith.impl.NotEqual.2 (constants.%Cpp.long.as.EqWith.impl.NotEqual.fc9fc1.1)] -// CHECK:STDOUT: %EqWith.impl_witness_table.f94 = impl_witness_table (%Core.import_ref.42d, %Core.import_ref.fd8), @Cpp.long.as.EqWith.impl.e2f [concrete] -// CHECK:STDOUT: %Core.NotEqual.3e4: @Cpp.long.as.EqWith.impl.e2f.%Cpp.long.as.EqWith.impl.NotEqual.type.1 (%Cpp.long.as.EqWith.impl.NotEqual.type.9e873c.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @Cpp.long.as.EqWith.impl.e2f.%Cpp.long.as.EqWith.impl.NotEqual.1 (constants.%Cpp.long.as.EqWith.impl.NotEqual.fc9fc1.2)] -// CHECK:STDOUT: %Core.Equal.de5: @Cpp.long.as.EqWith.impl.e2f.%Cpp.long.as.EqWith.impl.Equal.type.1 (%Cpp.long.as.EqWith.impl.Equal.type.d45cab.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @Cpp.long.as.EqWith.impl.e2f.%Cpp.long.as.EqWith.impl.Equal.1 (constants.%Cpp.long.as.EqWith.impl.Equal.c9f6e2.2)] -// CHECK:STDOUT: %Core.import_ref.adef5f.2: %i32.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.29c = impl_witness_table (%Core.import_ref.adef5f.2), @i32.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.de7: @Cpp.long.as.OrderedWith.impl.786.%Cpp.long.as.OrderedWith.impl.Less.type.2 (%Cpp.long.as.OrderedWith.impl.Less.type.77ead7.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.786.%Cpp.long.as.OrderedWith.impl.Less.2 (constants.%Cpp.long.as.OrderedWith.impl.Less.912b7a.1)] -// CHECK:STDOUT: %Core.import_ref.caf: @Cpp.long.as.OrderedWith.impl.786.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.2 (%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.8f5c1d.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.786.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.b8ff7f.1)] -// CHECK:STDOUT: %Core.import_ref.f56: @Cpp.long.as.OrderedWith.impl.786.%Cpp.long.as.OrderedWith.impl.Greater.type.2 (%Cpp.long.as.OrderedWith.impl.Greater.type.a01d2b.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.786.%Cpp.long.as.OrderedWith.impl.Greater.2 (constants.%Cpp.long.as.OrderedWith.impl.Greater.1365fc.1)] -// CHECK:STDOUT: %Core.import_ref.60f: @Cpp.long.as.OrderedWith.impl.786.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.0ba330.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.786.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.d190f3.1)] -// CHECK:STDOUT: %OrderedWith.impl_witness_table.e4e = impl_witness_table (%Core.import_ref.de7, %Core.import_ref.caf, %Core.import_ref.f56, %Core.import_ref.60f), @Cpp.long.as.OrderedWith.impl.786 [concrete] -// CHECK:STDOUT: %Core.GreaterOrEquivalent.6a2: @Cpp.long.as.OrderedWith.impl.786.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.0ba330.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.786.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.d190f3.2)] -// CHECK:STDOUT: %Core.Greater.421: @Cpp.long.as.OrderedWith.impl.786.%Cpp.long.as.OrderedWith.impl.Greater.type.1 (%Cpp.long.as.OrderedWith.impl.Greater.type.a01d2b.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.786.%Cpp.long.as.OrderedWith.impl.Greater.1 (constants.%Cpp.long.as.OrderedWith.impl.Greater.1365fc.2)] -// CHECK:STDOUT: %Core.LessOrEquivalent.b05: @Cpp.long.as.OrderedWith.impl.786.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.1 (%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.8f5c1d.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.786.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.b8ff7f.2)] -// CHECK:STDOUT: %Core.Less.158: @Cpp.long.as.OrderedWith.impl.786.%Cpp.long.as.OrderedWith.impl.Less.type.1 (%Cpp.long.as.OrderedWith.impl.Less.type.77ead7.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.786.%Cpp.long.as.OrderedWith.impl.Less.1 (constants.%Cpp.long.as.OrderedWith.impl.Less.912b7a.2)] +// CHECK:STDOUT: %Core.import_ref.06c923.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.635 = impl_witness_table (%Core.import_ref.06c923.1), @Core.IntLiteral.as.ImplicitAs.impl.94b [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Cpp.long.as.EqWith.impl.5b1.%Cpp.long.as.EqWith.impl.Equal.type.2 (%Cpp.long.as.EqWith.impl.Equal.type.814973.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.EqWith.impl.5b1.%Cpp.long.as.EqWith.impl.Equal.2 (constants.%Cpp.long.as.EqWith.impl.Equal.4a8971.1)] +// CHECK:STDOUT: %Core.import_ref.40e: @Cpp.long.as.EqWith.impl.5b1.%Cpp.long.as.EqWith.impl.NotEqual.type.2 (%Cpp.long.as.EqWith.impl.NotEqual.type.21e369.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.EqWith.impl.5b1.%Cpp.long.as.EqWith.impl.NotEqual.2 (constants.%Cpp.long.as.EqWith.impl.NotEqual.385432.1)] +// CHECK:STDOUT: %EqWith.impl_witness_table.fc9 = impl_witness_table (%Core.import_ref.cd6, %Core.import_ref.40e), @Cpp.long.as.EqWith.impl.5b1 [concrete] +// CHECK:STDOUT: %Core.NotEqual.db5: @Cpp.long.as.EqWith.impl.5b1.%Cpp.long.as.EqWith.impl.NotEqual.type.1 (%Cpp.long.as.EqWith.impl.NotEqual.type.21e369.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @Cpp.long.as.EqWith.impl.5b1.%Cpp.long.as.EqWith.impl.NotEqual.1 (constants.%Cpp.long.as.EqWith.impl.NotEqual.385432.2)] +// CHECK:STDOUT: %Core.Equal.025: @Cpp.long.as.EqWith.impl.5b1.%Cpp.long.as.EqWith.impl.Equal.type.1 (%Cpp.long.as.EqWith.impl.Equal.type.814973.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @Cpp.long.as.EqWith.impl.5b1.%Cpp.long.as.EqWith.impl.Equal.1 (constants.%Cpp.long.as.EqWith.impl.Equal.4a8971.2)] +// CHECK:STDOUT: %Core.import_ref.06c923.2: %i32.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a75 = impl_witness_table (%Core.import_ref.06c923.2), @i32.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.d32: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Less.type.2 (%Cpp.long.as.OrderedWith.impl.Less.type.3ff9ca.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Less.2 (constants.%Cpp.long.as.OrderedWith.impl.Less.76c9f3.1)] +// CHECK:STDOUT: %Core.import_ref.4be: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.2 (%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.35cecb.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.351d50.1)] +// CHECK:STDOUT: %Core.import_ref.b5f: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Greater.type.2 (%Cpp.long.as.OrderedWith.impl.Greater.type.e2eef7.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Greater.2 (constants.%Cpp.long.as.OrderedWith.impl.Greater.37f70d.1)] +// CHECK:STDOUT: %Core.import_ref.a8b: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.154997.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.e4afa3.1)] +// CHECK:STDOUT: %OrderedWith.impl_witness_table.41e = impl_witness_table (%Core.import_ref.d32, %Core.import_ref.4be, %Core.import_ref.b5f, %Core.import_ref.a8b), @Cpp.long.as.OrderedWith.impl.3fc [concrete] +// CHECK:STDOUT: %Core.GreaterOrEquivalent.839: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.154997.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.e4afa3.2)] +// CHECK:STDOUT: %Core.Greater.ac9: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Greater.type.1 (%Cpp.long.as.OrderedWith.impl.Greater.type.e2eef7.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Greater.1 (constants.%Cpp.long.as.OrderedWith.impl.Greater.37f70d.2)] +// CHECK:STDOUT: %Core.LessOrEquivalent.a62: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.1 (%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.35cecb.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.351d50.2)] +// CHECK:STDOUT: %Core.Less.a91: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Less.type.1 (%Cpp.long.as.OrderedWith.impl.Less.type.3ff9ca.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Less.1 (constants.%Cpp.long.as.OrderedWith.impl.Less.76c9f3.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ComparisonsHeterogeneousLongLeftSide() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.83e = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.25e = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_13: type = splice_block %long.ref [concrete = constants.%Cpp.long] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %long.ref: type = name_ref long, constants.%Cpp.long [concrete = constants.%Cpp.long] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc9: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc9: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc9: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc9_21.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc9_21.2: %Cpp.long = converted %int_1.loc9, %.loc9_21.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc9_21.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc9_21.2: %Cpp.long = converted %int_1.loc9, %.loc9_21.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %a: %Cpp.long = value_binding a, %.loc9_21.2 // CHECK:STDOUT: %a.ref.loc10: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc10: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc10_5: %.c27 = impl_witness_access constants.%EqWith.impl_witness.23c, element0 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.e1af36.2] +// CHECK:STDOUT: %impl.elem0.loc10_5: %.ad3 = impl_witness_access constants.%EqWith.impl_witness.f8a, element0 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.1a881e.2] // CHECK:STDOUT: %bound_method.loc10_5.1: = bound_method %a.ref.loc10, %impl.elem0.loc10_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc10: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet.loc10 [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @Cpp.long.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.specific_fn.fa6f78.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc10: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet.loc10 [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @Cpp.long.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.specific_fn.6692a8.1] // CHECK:STDOUT: %bound_method.loc10_5.2: = bound_method %a.ref.loc10, %specific_fn.loc10 -// CHECK:STDOUT: %.loc10_5.2: %Cpp.long.as.EqWith.impl.Equal.type.17afc6.1 = specific_constant imports.%Core.Equal.de5, @Cpp.long.as.EqWith.impl.e2f(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.e1af36.1] -// CHECK:STDOUT: %Equal.ref.loc10: %Cpp.long.as.EqWith.impl.Equal.type.17afc6.1 = name_ref Equal, %.loc10_5.2 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.e1af36.1] +// CHECK:STDOUT: %.loc10_5.2: %Cpp.long.as.EqWith.impl.Equal.type.91d370.1 = specific_constant imports.%Core.Equal.025, @Cpp.long.as.EqWith.impl.5b1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.1a881e.1] +// CHECK:STDOUT: %Equal.ref.loc10: %Cpp.long.as.EqWith.impl.Equal.type.91d370.1 = name_ref Equal, %.loc10_5.2 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.1a881e.1] // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.bound.loc10: = bound_method %a.ref.loc10, %Equal.ref.loc10 -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.loc10: = specific_function %Equal.ref.loc10, @Cpp.long.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.specific_fn.fa6f78.2] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.loc10: = specific_function %Equal.ref.loc10, @Cpp.long.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.specific_fn.6692a8.2] // CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %a.ref.loc10, %Cpp.long.as.EqWith.impl.Equal.specific_fn.loc10 -// CHECK:STDOUT: %impl.elem0.loc10_8: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc10_8: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_8: = bound_method %b.ref.loc10, %impl.elem0.loc10_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc10: init %Cpp.long = call %bound_method.loc10_8(%b.ref.loc10) // CHECK:STDOUT: %.loc10_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc10 @@ -1774,18 +1774,18 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.call.loc10: init bool = call %bound_method.loc10_5.3(%a.ref.loc10, %.loc10_8.2) // CHECK:STDOUT: %a.ref.loc11: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc11: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem1.loc11: %.475 = impl_witness_access constants.%EqWith.impl_witness.23c, element1 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.ab5731.2] +// CHECK:STDOUT: %impl.elem1.loc11: %.e94 = impl_witness_access constants.%EqWith.impl_witness.f8a, element1 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.7bb2f2.2] // CHECK:STDOUT: %bound_method.loc11_5.1: = bound_method %a.ref.loc11, %impl.elem1.loc11 -// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem1.loc11, @Cpp.long.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.specific_fn.3a486e.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem1.loc11, @Cpp.long.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.specific_fn.7605b8.1] // CHECK:STDOUT: %bound_method.loc11_5.2: = bound_method %a.ref.loc11, %specific_fn.loc11 -// CHECK:STDOUT: %.loc11_5.2: %Cpp.long.as.EqWith.impl.NotEqual.type.5255ce.1 = specific_constant imports.%Core.NotEqual.3e4, @Cpp.long.as.EqWith.impl.e2f(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.ab5731.1] -// CHECK:STDOUT: %NotEqual.ref.loc11: %Cpp.long.as.EqWith.impl.NotEqual.type.5255ce.1 = name_ref NotEqual, %.loc11_5.2 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.ab5731.1] +// CHECK:STDOUT: %.loc11_5.2: %Cpp.long.as.EqWith.impl.NotEqual.type.0ae55e.1 = specific_constant imports.%Core.NotEqual.db5, @Cpp.long.as.EqWith.impl.5b1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.7bb2f2.1] +// CHECK:STDOUT: %NotEqual.ref.loc11: %Cpp.long.as.EqWith.impl.NotEqual.type.0ae55e.1 = name_ref NotEqual, %.loc11_5.2 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.7bb2f2.1] // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.bound.loc11: = bound_method %a.ref.loc11, %NotEqual.ref.loc11 -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.loc11: = specific_function %NotEqual.ref.loc11, @Cpp.long.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.specific_fn.3a486e.2] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.loc11: = specific_function %NotEqual.ref.loc11, @Cpp.long.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.specific_fn.7605b8.2] // CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %a.ref.loc11, %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.loc11 -// CHECK:STDOUT: %impl.elem0.loc11: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc11: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc11_8: = bound_method %b.ref.loc11, %impl.elem0.loc11 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc11: init %Cpp.long = call %bound_method.loc11_8(%b.ref.loc11) // CHECK:STDOUT: %.loc11_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc11 @@ -1793,18 +1793,18 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.call.loc11: init bool = call %bound_method.loc11_5.3(%a.ref.loc11, %.loc11_8.2) // CHECK:STDOUT: %a.ref.loc12: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc12: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem2.loc12: %.1dc = impl_witness_access constants.%OrderedWith.impl_witness.da4, element2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.d25f2f.2] +// CHECK:STDOUT: %impl.elem2.loc12: %.30b = impl_witness_access constants.%OrderedWith.impl_witness.512, element2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.ea4cc4.2] // CHECK:STDOUT: %bound_method.loc12_5.1: = bound_method %a.ref.loc12, %impl.elem2.loc12 -// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem2.loc12, @Cpp.long.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.specific_fn.624957.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem2.loc12, @Cpp.long.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.specific_fn.cc0b83.1] // CHECK:STDOUT: %bound_method.loc12_5.2: = bound_method %a.ref.loc12, %specific_fn.loc12 -// CHECK:STDOUT: %.loc12_5.2: %Cpp.long.as.OrderedWith.impl.Greater.type.375c4b.1 = specific_constant imports.%Core.Greater.421, @Cpp.long.as.OrderedWith.impl.786(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.d25f2f.1] -// CHECK:STDOUT: %Greater.ref.loc12: %Cpp.long.as.OrderedWith.impl.Greater.type.375c4b.1 = name_ref Greater, %.loc12_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.d25f2f.1] +// CHECK:STDOUT: %.loc12_5.2: %Cpp.long.as.OrderedWith.impl.Greater.type.1eeaf7.1 = specific_constant imports.%Core.Greater.ac9, @Cpp.long.as.OrderedWith.impl.3fc(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.ea4cc4.1] +// CHECK:STDOUT: %Greater.ref.loc12: %Cpp.long.as.OrderedWith.impl.Greater.type.1eeaf7.1 = name_ref Greater, %.loc12_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.ea4cc4.1] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.bound.loc12: = bound_method %a.ref.loc12, %Greater.ref.loc12 -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.loc12: = specific_function %Greater.ref.loc12, @Cpp.long.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.specific_fn.624957.2] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.loc12: = specific_function %Greater.ref.loc12, @Cpp.long.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.specific_fn.cc0b83.2] // CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %a.ref.loc12, %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.loc12 -// CHECK:STDOUT: %impl.elem0.loc12: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc12: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc12_7: = bound_method %b.ref.loc12, %impl.elem0.loc12 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc12: init %Cpp.long = call %bound_method.loc12_7(%b.ref.loc12) // CHECK:STDOUT: %.loc12_7.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc12 @@ -1812,18 +1812,18 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.call.loc12: init bool = call %bound_method.loc12_5.3(%a.ref.loc12, %.loc12_7.2) // CHECK:STDOUT: %a.ref.loc13: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc13: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc13_5: %.e70 = impl_witness_access constants.%OrderedWith.impl_witness.da4, element0 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.335d62.2] +// CHECK:STDOUT: %impl.elem0.loc13_5: %.d9d = impl_witness_access constants.%OrderedWith.impl_witness.512, element0 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.c497ef.2] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %a.ref.loc13, %impl.elem0.loc13_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5, @Cpp.long.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.specific_fn.87c251.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5, @Cpp.long.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.specific_fn.06a809.1] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %a.ref.loc13, %specific_fn.loc13 -// CHECK:STDOUT: %.loc13_5.2: %Cpp.long.as.OrderedWith.impl.Less.type.a2f55b.1 = specific_constant imports.%Core.Less.158, @Cpp.long.as.OrderedWith.impl.786(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.335d62.1] -// CHECK:STDOUT: %Less.ref.loc13: %Cpp.long.as.OrderedWith.impl.Less.type.a2f55b.1 = name_ref Less, %.loc13_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.335d62.1] +// CHECK:STDOUT: %.loc13_5.2: %Cpp.long.as.OrderedWith.impl.Less.type.cc154a.1 = specific_constant imports.%Core.Less.a91, @Cpp.long.as.OrderedWith.impl.3fc(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.c497ef.1] +// CHECK:STDOUT: %Less.ref.loc13: %Cpp.long.as.OrderedWith.impl.Less.type.cc154a.1 = name_ref Less, %.loc13_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.c497ef.1] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.bound.loc13: = bound_method %a.ref.loc13, %Less.ref.loc13 -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.loc13: = specific_function %Less.ref.loc13, @Cpp.long.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.specific_fn.87c251.2] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.loc13: = specific_function %Less.ref.loc13, @Cpp.long.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.specific_fn.06a809.2] // CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %a.ref.loc13, %Cpp.long.as.OrderedWith.impl.Less.specific_fn.loc13 -// CHECK:STDOUT: %impl.elem0.loc13_7: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc13_7: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc13_7: = bound_method %b.ref.loc13, %impl.elem0.loc13_7 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc13: init %Cpp.long = call %bound_method.loc13_7(%b.ref.loc13) // CHECK:STDOUT: %.loc13_7.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc13 @@ -1831,18 +1831,18 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.call.loc13: init bool = call %bound_method.loc13_5.3(%a.ref.loc13, %.loc13_7.2) // CHECK:STDOUT: %a.ref.loc14: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc14: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem3.loc14: %.fa8 = impl_witness_access constants.%OrderedWith.impl_witness.da4, element3 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.f6b944.2] +// CHECK:STDOUT: %impl.elem3.loc14: %.c8e = impl_witness_access constants.%OrderedWith.impl_witness.512, element3 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.b64dd2.2] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %a.ref.loc14, %impl.elem3.loc14 -// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem3.loc14, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.e9f17d.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem3.loc14, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.a6b8b7.1] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %a.ref.loc14, %specific_fn.loc14 -// CHECK:STDOUT: %.loc14_5.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.549ba3.1 = specific_constant imports.%Core.GreaterOrEquivalent.6a2, @Cpp.long.as.OrderedWith.impl.786(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.f6b944.1] -// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.549ba3.1 = name_ref GreaterOrEquivalent, %.loc14_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.f6b944.1] +// CHECK:STDOUT: %.loc14_5.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.a93f64.1 = specific_constant imports.%Core.GreaterOrEquivalent.839, @Cpp.long.as.OrderedWith.impl.3fc(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.b64dd2.1] +// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.a93f64.1 = name_ref GreaterOrEquivalent, %.loc14_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.b64dd2.1] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc14: = bound_method %a.ref.loc14, %GreaterOrEquivalent.ref.loc14 -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: = specific_function %GreaterOrEquivalent.ref.loc14, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.e9f17d.2] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: = specific_function %GreaterOrEquivalent.ref.loc14, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.a6b8b7.2] // CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %a.ref.loc14, %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14 -// CHECK:STDOUT: %impl.elem0.loc14: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc14: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc14_8: = bound_method %b.ref.loc14, %impl.elem0.loc14 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc14: init %Cpp.long = call %bound_method.loc14_8(%b.ref.loc14) // CHECK:STDOUT: %.loc14_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc14 @@ -1850,18 +1850,18 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.call.loc14: init bool = call %bound_method.loc14_5.3(%a.ref.loc14, %.loc14_8.2) // CHECK:STDOUT: %a.ref.loc15: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc15: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem1.loc15: %.7b7 = impl_witness_access constants.%OrderedWith.impl_witness.da4, element1 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1dbdf6.2] +// CHECK:STDOUT: %impl.elem1.loc15: %.3fe = impl_witness_access constants.%OrderedWith.impl_witness.512, element1 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.998aeb.2] // CHECK:STDOUT: %bound_method.loc15_5.1: = bound_method %a.ref.loc15, %impl.elem1.loc15 -// CHECK:STDOUT: %ImplicitAs.facet.loc15: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc15_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet.loc15 [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem1.loc15, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.1318bc.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc15: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc15_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet.loc15 [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem1.loc15, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.9913d3.1] // CHECK:STDOUT: %bound_method.loc15_5.2: = bound_method %a.ref.loc15, %specific_fn.loc15 -// CHECK:STDOUT: %.loc15_5.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.8589a2.1 = specific_constant imports.%Core.LessOrEquivalent.b05, @Cpp.long.as.OrderedWith.impl.786(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1dbdf6.1] -// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.8589a2.1 = name_ref LessOrEquivalent, %.loc15_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1dbdf6.1] +// CHECK:STDOUT: %.loc15_5.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.ae2ba0.1 = specific_constant imports.%Core.LessOrEquivalent.a62, @Cpp.long.as.OrderedWith.impl.3fc(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.998aeb.1] +// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.ae2ba0.1 = name_ref LessOrEquivalent, %.loc15_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.998aeb.1] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.bound.loc15: = bound_method %a.ref.loc15, %LessOrEquivalent.ref.loc15 -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: = specific_function %LessOrEquivalent.ref.loc15, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.1318bc.2] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: = specific_function %LessOrEquivalent.ref.loc15, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.9913d3.2] // CHECK:STDOUT: %bound_method.loc15_5.3: = bound_method %a.ref.loc15, %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15 -// CHECK:STDOUT: %impl.elem0.loc15: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc15: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc15_8: = bound_method %b.ref.loc15, %impl.elem0.loc15 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc15: init %Cpp.long = call %bound_method.loc15_8(%b.ref.loc15) // CHECK:STDOUT: %.loc15_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc15 @@ -1869,117 +1869,117 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.call.loc15: init bool = call %bound_method.loc15_5.3(%a.ref.loc15, %.loc15_8.2) // CHECK:STDOUT: %a.ref.loc17: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %int_1.loc17: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc17_5: %.f43 = impl_witness_access constants.%EqWith.impl_witness.475, element0 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.7dbd0a.2] +// CHECK:STDOUT: %impl.elem0.loc17_5: %.da0 = impl_witness_access constants.%EqWith.impl_witness.357, element0 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.c5b9b0.2] // CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %a.ref.loc17, %impl.elem0.loc17_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.e41) [concrete = constants.%ImplicitAs.facet.c09] -// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.6fa = converted Core.IntLiteral, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.c09] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5, @Cpp.long.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.specific_fn.5752dd.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.e27) [concrete = constants.%ImplicitAs.facet.b30] +// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.7eb = converted Core.IntLiteral, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.b30] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5, @Cpp.long.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.specific_fn.e188b3.1] // CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %a.ref.loc17, %specific_fn.loc17 -// CHECK:STDOUT: %.loc17_5.2: %Cpp.long.as.EqWith.impl.Equal.type.46b9a6.1 = specific_constant imports.%Core.Equal.de5, @Cpp.long.as.EqWith.impl.e2f(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.7dbd0a.1] -// CHECK:STDOUT: %Equal.ref.loc17: %Cpp.long.as.EqWith.impl.Equal.type.46b9a6.1 = name_ref Equal, %.loc17_5.2 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.7dbd0a.1] +// CHECK:STDOUT: %.loc17_5.2: %Cpp.long.as.EqWith.impl.Equal.type.10d936.1 = specific_constant imports.%Core.Equal.025, @Cpp.long.as.EqWith.impl.5b1(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.c5b9b0.1] +// CHECK:STDOUT: %Equal.ref.loc17: %Cpp.long.as.EqWith.impl.Equal.type.10d936.1 = name_ref Equal, %.loc17_5.2 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.c5b9b0.1] // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.bound.loc17: = bound_method %a.ref.loc17, %Equal.ref.loc17 -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.loc17: = specific_function %Equal.ref.loc17, @Cpp.long.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.specific_fn.5752dd.2] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.loc17: = specific_function %Equal.ref.loc17, @Cpp.long.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.specific_fn.e188b3.2] // CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %a.ref.loc17, %Cpp.long.as.EqWith.impl.Equal.specific_fn.loc17 -// CHECK:STDOUT: %impl.elem0.loc17_8: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc17_8: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc17_8: = bound_method %int_1.loc17, %impl.elem0.loc17_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %Cpp.long = call %bound_method.loc17_8(%int_1.loc17) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc17_8.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc17_8.2: %Cpp.long = converted %int_1.loc17, %.loc17_8.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %Cpp.long = call %bound_method.loc17_8(%int_1.loc17) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc17_8.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc17_8.2: %Cpp.long = converted %int_1.loc17, %.loc17_8.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.call.loc17: init bool = call %bound_method.loc17_5.3(%a.ref.loc17, %.loc17_8.2) // CHECK:STDOUT: %a.ref.loc18: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %int_1.loc18: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem1.loc18: %.e6b = impl_witness_access constants.%EqWith.impl_witness.475, element1 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.dd0676.2] +// CHECK:STDOUT: %impl.elem1.loc18: %.b1b = impl_witness_access constants.%EqWith.impl_witness.357, element1 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.0931ca.2] // CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %a.ref.loc18, %impl.elem1.loc18 -// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.e41) [concrete = constants.%ImplicitAs.facet.c09] -// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.6fa = converted Core.IntLiteral, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.c09] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem1.loc18, @Cpp.long.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.specific_fn.e03a04.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.e27) [concrete = constants.%ImplicitAs.facet.b30] +// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.7eb = converted Core.IntLiteral, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.b30] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem1.loc18, @Cpp.long.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.specific_fn.652cb3.1] // CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %a.ref.loc18, %specific_fn.loc18 -// CHECK:STDOUT: %.loc18_5.2: %Cpp.long.as.EqWith.impl.NotEqual.type.f0dc65.1 = specific_constant imports.%Core.NotEqual.3e4, @Cpp.long.as.EqWith.impl.e2f(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.dd0676.1] -// CHECK:STDOUT: %NotEqual.ref.loc18: %Cpp.long.as.EqWith.impl.NotEqual.type.f0dc65.1 = name_ref NotEqual, %.loc18_5.2 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.dd0676.1] +// CHECK:STDOUT: %.loc18_5.2: %Cpp.long.as.EqWith.impl.NotEqual.type.d8ead4.1 = specific_constant imports.%Core.NotEqual.db5, @Cpp.long.as.EqWith.impl.5b1(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.0931ca.1] +// CHECK:STDOUT: %NotEqual.ref.loc18: %Cpp.long.as.EqWith.impl.NotEqual.type.d8ead4.1 = name_ref NotEqual, %.loc18_5.2 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.0931ca.1] // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.bound.loc18: = bound_method %a.ref.loc18, %NotEqual.ref.loc18 -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.loc18: = specific_function %NotEqual.ref.loc18, @Cpp.long.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.specific_fn.e03a04.2] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.loc18: = specific_function %NotEqual.ref.loc18, @Cpp.long.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.specific_fn.652cb3.2] // CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %a.ref.loc18, %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.loc18 -// CHECK:STDOUT: %impl.elem0.loc18: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc18: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc18_8: = bound_method %int_1.loc18, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %Cpp.long = call %bound_method.loc18_8(%int_1.loc18) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc18_8.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc18_8.2: %Cpp.long = converted %int_1.loc18, %.loc18_8.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %Cpp.long = call %bound_method.loc18_8(%int_1.loc18) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc18_8.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc18_8.2: %Cpp.long = converted %int_1.loc18, %.loc18_8.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.call.loc18: init bool = call %bound_method.loc18_5.3(%a.ref.loc18, %.loc18_8.2) // CHECK:STDOUT: %a.ref.loc19: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %int_1.loc19: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem2.loc19: %.384 = impl_witness_access constants.%OrderedWith.impl_witness.70e, element2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.5b50d7.2] +// CHECK:STDOUT: %impl.elem2.loc19: %.d77 = impl_witness_access constants.%OrderedWith.impl_witness.f04, element2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.f83821.2] // CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %a.ref.loc19, %impl.elem2.loc19 -// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.e41) [concrete = constants.%ImplicitAs.facet.c09] -// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.6fa = converted Core.IntLiteral, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.c09] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem2.loc19, @Cpp.long.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.specific_fn.ea58ad.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.e27) [concrete = constants.%ImplicitAs.facet.b30] +// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.7eb = converted Core.IntLiteral, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.b30] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem2.loc19, @Cpp.long.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.specific_fn.faeadc.1] // CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %a.ref.loc19, %specific_fn.loc19 -// CHECK:STDOUT: %.loc19_5.2: %Cpp.long.as.OrderedWith.impl.Greater.type.4d8ecd.1 = specific_constant imports.%Core.Greater.421, @Cpp.long.as.OrderedWith.impl.786(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.5b50d7.1] -// CHECK:STDOUT: %Greater.ref.loc19: %Cpp.long.as.OrderedWith.impl.Greater.type.4d8ecd.1 = name_ref Greater, %.loc19_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.5b50d7.1] +// CHECK:STDOUT: %.loc19_5.2: %Cpp.long.as.OrderedWith.impl.Greater.type.75fc02.1 = specific_constant imports.%Core.Greater.ac9, @Cpp.long.as.OrderedWith.impl.3fc(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.f83821.1] +// CHECK:STDOUT: %Greater.ref.loc19: %Cpp.long.as.OrderedWith.impl.Greater.type.75fc02.1 = name_ref Greater, %.loc19_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.f83821.1] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.bound.loc19: = bound_method %a.ref.loc19, %Greater.ref.loc19 -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.loc19: = specific_function %Greater.ref.loc19, @Cpp.long.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.specific_fn.ea58ad.2] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.loc19: = specific_function %Greater.ref.loc19, @Cpp.long.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.specific_fn.faeadc.2] // CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %a.ref.loc19, %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.loc19 -// CHECK:STDOUT: %impl.elem0.loc19: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc19: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc19_7: = bound_method %int_1.loc19, %impl.elem0.loc19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %Cpp.long = call %bound_method.loc19_7(%int_1.loc19) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc19_7.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc19_7.2: %Cpp.long = converted %int_1.loc19, %.loc19_7.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %Cpp.long = call %bound_method.loc19_7(%int_1.loc19) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc19_7.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc19_7.2: %Cpp.long = converted %int_1.loc19, %.loc19_7.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.call.loc19: init bool = call %bound_method.loc19_5.3(%a.ref.loc19, %.loc19_7.2) // CHECK:STDOUT: %a.ref.loc20: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %int_1.loc20: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc20_5: %.28e = impl_witness_access constants.%OrderedWith.impl_witness.70e, element0 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.bc9b37.2] +// CHECK:STDOUT: %impl.elem0.loc20_5: %.124 = impl_witness_access constants.%OrderedWith.impl_witness.f04, element0 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.819a43.2] // CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %a.ref.loc20, %impl.elem0.loc20_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.e41) [concrete = constants.%ImplicitAs.facet.c09] -// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.6fa = converted Core.IntLiteral, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.c09] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5, @Cpp.long.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.specific_fn.b7bcad.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.e27) [concrete = constants.%ImplicitAs.facet.b30] +// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.7eb = converted Core.IntLiteral, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.b30] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5, @Cpp.long.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.specific_fn.f8760d.1] // CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %a.ref.loc20, %specific_fn.loc20 -// CHECK:STDOUT: %.loc20_5.2: %Cpp.long.as.OrderedWith.impl.Less.type.cc8d23.1 = specific_constant imports.%Core.Less.158, @Cpp.long.as.OrderedWith.impl.786(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.bc9b37.1] -// CHECK:STDOUT: %Less.ref.loc20: %Cpp.long.as.OrderedWith.impl.Less.type.cc8d23.1 = name_ref Less, %.loc20_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.bc9b37.1] +// CHECK:STDOUT: %.loc20_5.2: %Cpp.long.as.OrderedWith.impl.Less.type.544cda.1 = specific_constant imports.%Core.Less.a91, @Cpp.long.as.OrderedWith.impl.3fc(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.819a43.1] +// CHECK:STDOUT: %Less.ref.loc20: %Cpp.long.as.OrderedWith.impl.Less.type.544cda.1 = name_ref Less, %.loc20_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.819a43.1] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.bound.loc20: = bound_method %a.ref.loc20, %Less.ref.loc20 -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.loc20: = specific_function %Less.ref.loc20, @Cpp.long.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.specific_fn.b7bcad.2] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.loc20: = specific_function %Less.ref.loc20, @Cpp.long.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.specific_fn.f8760d.2] // CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %a.ref.loc20, %Cpp.long.as.OrderedWith.impl.Less.specific_fn.loc20 -// CHECK:STDOUT: %impl.elem0.loc20_7: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc20_7: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc20_7: = bound_method %int_1.loc20, %impl.elem0.loc20_7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %Cpp.long = call %bound_method.loc20_7(%int_1.loc20) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc20_7.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc20_7.2: %Cpp.long = converted %int_1.loc20, %.loc20_7.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %Cpp.long = call %bound_method.loc20_7(%int_1.loc20) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc20_7.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc20_7.2: %Cpp.long = converted %int_1.loc20, %.loc20_7.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.call.loc20: init bool = call %bound_method.loc20_5.3(%a.ref.loc20, %.loc20_7.2) // CHECK:STDOUT: %a.ref.loc21: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %int_1.loc21: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem3.loc21: %.532 = impl_witness_access constants.%OrderedWith.impl_witness.70e, element3 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.3fc9f4.2] +// CHECK:STDOUT: %impl.elem3.loc21: %.3eb = impl_witness_access constants.%OrderedWith.impl_witness.f04, element3 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.76c962.2] // CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %a.ref.loc21, %impl.elem3.loc21 -// CHECK:STDOUT: %ImplicitAs.facet.loc21: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.e41) [concrete = constants.%ImplicitAs.facet.c09] -// CHECK:STDOUT: %.loc21_5.1: %ImplicitAs.type.6fa = converted Core.IntLiteral, %ImplicitAs.facet.loc21 [concrete = constants.%ImplicitAs.facet.c09] -// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem3.loc21, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.660f9a.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc21: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.e27) [concrete = constants.%ImplicitAs.facet.b30] +// CHECK:STDOUT: %.loc21_5.1: %ImplicitAs.type.7eb = converted Core.IntLiteral, %ImplicitAs.facet.loc21 [concrete = constants.%ImplicitAs.facet.b30] +// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem3.loc21, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ee8dd4.1] // CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %a.ref.loc21, %specific_fn.loc21 -// CHECK:STDOUT: %.loc21_5.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.5183ad.1 = specific_constant imports.%Core.GreaterOrEquivalent.6a2, @Cpp.long.as.OrderedWith.impl.786(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.3fc9f4.1] -// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.5183ad.1 = name_ref GreaterOrEquivalent, %.loc21_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.3fc9f4.1] +// CHECK:STDOUT: %.loc21_5.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.f7405b.1 = specific_constant imports.%Core.GreaterOrEquivalent.839, @Cpp.long.as.OrderedWith.impl.3fc(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.76c962.1] +// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.f7405b.1 = name_ref GreaterOrEquivalent, %.loc21_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.76c962.1] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc21: = bound_method %a.ref.loc21, %GreaterOrEquivalent.ref.loc21 -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: = specific_function %GreaterOrEquivalent.ref.loc21, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.660f9a.2] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: = specific_function %GreaterOrEquivalent.ref.loc21, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ee8dd4.2] // CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %a.ref.loc21, %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21 -// CHECK:STDOUT: %impl.elem0.loc21: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc21: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc21_8: = bound_method %int_1.loc21, %impl.elem0.loc21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %Cpp.long = call %bound_method.loc21_8(%int_1.loc21) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc21_8.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc21_8.2: %Cpp.long = converted %int_1.loc21, %.loc21_8.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %Cpp.long = call %bound_method.loc21_8(%int_1.loc21) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc21_8.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc21_8.2: %Cpp.long = converted %int_1.loc21, %.loc21_8.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.call.loc21: init bool = call %bound_method.loc21_5.3(%a.ref.loc21, %.loc21_8.2) // CHECK:STDOUT: %a.ref.loc22: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %int_1.loc22: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem1.loc22: %.484 = impl_witness_access constants.%OrderedWith.impl_witness.70e, element1 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.26f675.2] +// CHECK:STDOUT: %impl.elem1.loc22: %.e14 = impl_witness_access constants.%OrderedWith.impl_witness.f04, element1 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.3e29ec.2] // CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %a.ref.loc22, %impl.elem1.loc22 -// CHECK:STDOUT: %ImplicitAs.facet.loc22: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.e41) [concrete = constants.%ImplicitAs.facet.c09] -// CHECK:STDOUT: %.loc22_5.1: %ImplicitAs.type.6fa = converted Core.IntLiteral, %ImplicitAs.facet.loc22 [concrete = constants.%ImplicitAs.facet.c09] -// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem1.loc22, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.813265.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc22: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.e27) [concrete = constants.%ImplicitAs.facet.b30] +// CHECK:STDOUT: %.loc22_5.1: %ImplicitAs.type.7eb = converted Core.IntLiteral, %ImplicitAs.facet.loc22 [concrete = constants.%ImplicitAs.facet.b30] +// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem1.loc22, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.42a4b8.1] // CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %a.ref.loc22, %specific_fn.loc22 -// CHECK:STDOUT: %.loc22_5.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.4875b2.1 = specific_constant imports.%Core.LessOrEquivalent.b05, @Cpp.long.as.OrderedWith.impl.786(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.26f675.1] -// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.4875b2.1 = name_ref LessOrEquivalent, %.loc22_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.26f675.1] +// CHECK:STDOUT: %.loc22_5.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.03c549.1 = specific_constant imports.%Core.LessOrEquivalent.a62, @Cpp.long.as.OrderedWith.impl.3fc(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.3e29ec.1] +// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.03c549.1 = name_ref LessOrEquivalent, %.loc22_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.3e29ec.1] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.bound.loc22: = bound_method %a.ref.loc22, %LessOrEquivalent.ref.loc22 -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: = specific_function %LessOrEquivalent.ref.loc22, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.c09) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.813265.2] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: = specific_function %LessOrEquivalent.ref.loc22, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.b30) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.42a4b8.2] // CHECK:STDOUT: %bound_method.loc22_5.3: = bound_method %a.ref.loc22, %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22 -// CHECK:STDOUT: %impl.elem0.loc22: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc22: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc22_8: = bound_method %int_1.loc22, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %Cpp.long = call %bound_method.loc22_8(%int_1.loc22) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc22_8.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc22_8.2: %Cpp.long = converted %int_1.loc22, %.loc22_8.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %Cpp.long = call %bound_method.loc22_8(%int_1.loc22) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc22_8.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc22_8.2: %Cpp.long = converted %int_1.loc22, %.loc22_8.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.call.loc22: init bool = call %bound_method.loc22_5.3(%a.ref.loc22, %.loc22_8.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1991,177 +1991,177 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Cpp.long: type = class_type @Long32 [concrete] -// CHECK:STDOUT: %pattern_type.83e: type = pattern_type %Cpp.long [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6fa: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e41: = impl_witness imports.%ImplicitAs.impl_witness_table.293 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.c09: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e41) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.93b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %.f84: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.93b, %ImplicitAs.facet.c09 [concrete] +// CHECK:STDOUT: %pattern_type.25e: type = pattern_type %Cpp.long [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7eb: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.e27: = impl_witness imports.%ImplicitAs.impl_witness_table.635 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.b30: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e27) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.7dc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %.b13: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.7dc, %ImplicitAs.facet.b30 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce [concrete] -// CHECK:STDOUT: %int_1.3d0: %Cpp.long = int_value 1 [concrete] -// CHECK:STDOUT: %EqWith.type.0be: type = facet_type <@EqWith, @EqWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %T.887: %ImplicitAs.type.6fa = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.182979.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.1, @T.as_type.as.EqWith.impl.1a3(%T.887) [symbolic] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.ac4f99.1: %T.as_type.as.EqWith.impl.NotEqual.type.182979.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.182979.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.2, @T.as_type.as.EqWith.impl.1a3(%T.887) [symbolic] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.ac4f99.2: %T.as_type.as.EqWith.impl.NotEqual.type.182979.2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.0e80bf.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.1, @T.as_type.as.EqWith.impl.1a3(%T.887) [symbolic] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.a11a61.1: %T.as_type.as.EqWith.impl.Equal.type.0e80bf.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.0e80bf.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.2, @T.as_type.as.EqWith.impl.1a3(%T.887) [symbolic] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.a11a61.2: %T.as_type.as.EqWith.impl.Equal.type.0e80bf.2 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.72d: = impl_witness imports.%ImplicitAs.impl_witness_table.29c [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.0fb: %ImplicitAs.type.6fa = facet_value %i32, (%ImplicitAs.impl_witness.72d) [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.37d: = impl_witness imports.%EqWith.impl_witness_table.360, @T.as_type.as.EqWith.impl.1a3(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.50eb4b.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.2, @T.as_type.as.EqWith.impl.1a3(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.33d0bf.1: %T.as_type.as.EqWith.impl.Equal.type.50eb4b.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.989cc9.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.2, @T.as_type.as.EqWith.impl.1a3(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.30ef12.1: %T.as_type.as.EqWith.impl.NotEqual.type.989cc9.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.50eb4b.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.1, @T.as_type.as.EqWith.impl.1a3(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.33d0bf.2: %T.as_type.as.EqWith.impl.Equal.type.50eb4b.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.989cc9.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.1, @T.as_type.as.EqWith.impl.1a3(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.30ef12.2: %T.as_type.as.EqWith.impl.NotEqual.type.989cc9.2 = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet.32b: %EqWith.type.0be = facet_value %i32, (%EqWith.impl_witness.37d) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.3ac: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.32b) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.2b7: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.32b) [concrete] -// CHECK:STDOUT: %.367: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.3ac, %EqWith.facet.32b [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.c2fb87.1: = specific_function %T.as_type.as.EqWith.impl.Equal.33d0bf.2, @T.as_type.as.EqWith.impl.Equal.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.c2fb87.2: = specific_function %T.as_type.as.EqWith.impl.Equal.33d0bf.1, @T.as_type.as.EqWith.impl.Equal.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.db6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %.9d6: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.db6, %ImplicitAs.facet.0fb [concrete] +// CHECK:STDOUT: %int_1.9ce: %Cpp.long = int_value 1 [concrete] +// CHECK:STDOUT: %EqWith.type.54a: type = facet_type <@EqWith, @EqWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %T.315: %ImplicitAs.type.7eb = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.92df03.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.1, @T.as_type.as.EqWith.impl.673(%T.315) [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.a7a615.1: %T.as_type.as.EqWith.impl.NotEqual.type.92df03.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.92df03.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.2, @T.as_type.as.EqWith.impl.673(%T.315) [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.a7a615.2: %T.as_type.as.EqWith.impl.NotEqual.type.92df03.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.94a46e.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.1, @T.as_type.as.EqWith.impl.673(%T.315) [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.3fb574.1: %T.as_type.as.EqWith.impl.Equal.type.94a46e.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.94a46e.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.2, @T.as_type.as.EqWith.impl.673(%T.315) [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.3fb574.2: %T.as_type.as.EqWith.impl.Equal.type.94a46e.2 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.f82: = impl_witness imports.%ImplicitAs.impl_witness_table.a75 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.ce4: %ImplicitAs.type.7eb = facet_value %i32, (%ImplicitAs.impl_witness.f82) [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.95d: = impl_witness imports.%EqWith.impl_witness_table.9cc, @T.as_type.as.EqWith.impl.673(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.e779ca.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.2, @T.as_type.as.EqWith.impl.673(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.f0911b.1: %T.as_type.as.EqWith.impl.Equal.type.e779ca.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.3aca6f.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.2, @T.as_type.as.EqWith.impl.673(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.3d3117.1: %T.as_type.as.EqWith.impl.NotEqual.type.3aca6f.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.e779ca.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.1, @T.as_type.as.EqWith.impl.673(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.f0911b.2: %T.as_type.as.EqWith.impl.Equal.type.e779ca.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.3aca6f.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.1, @T.as_type.as.EqWith.impl.673(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.3d3117.2: %T.as_type.as.EqWith.impl.NotEqual.type.3aca6f.2 = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.facet.253: %EqWith.type.54a = facet_value %i32, (%EqWith.impl_witness.95d) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.2f9: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.253) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.411: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.253) [concrete] +// CHECK:STDOUT: %.a04: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.2f9, %EqWith.facet.253 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.873bd0.1: = specific_function %T.as_type.as.EqWith.impl.Equal.f0911b.2, @T.as_type.as.EqWith.impl.Equal.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.873bd0.2: = specific_function %T.as_type.as.EqWith.impl.Equal.f0911b.1, @T.as_type.as.EqWith.impl.Equal.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.59b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %.9c4: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.59b, %ImplicitAs.facet.ce4 [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: %.50c: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.2b7, %EqWith.facet.32b [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.ed888b.1: = specific_function %T.as_type.as.EqWith.impl.NotEqual.30ef12.2, @T.as_type.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.ed888b.2: = specific_function %T.as_type.as.EqWith.impl.NotEqual.30ef12.1, @T.as_type.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %OrderedWith.type.f75: type = facet_type <@OrderedWith, @OrderedWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.42dbc4.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1, @T.as_type.as.OrderedWith.impl.d3b(%T.887) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.112484.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.42dbc4.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.42dbc4.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2, @T.as_type.as.OrderedWith.impl.d3b(%T.887) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.112484.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.42dbc4.2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.d820b7.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.1, @T.as_type.as.OrderedWith.impl.d3b(%T.887) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.803b09.1: %T.as_type.as.OrderedWith.impl.Greater.type.d820b7.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.d820b7.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.2, @T.as_type.as.OrderedWith.impl.d3b(%T.887) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.803b09.2: %T.as_type.as.OrderedWith.impl.Greater.type.d820b7.2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.f0b1d3.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1, @T.as_type.as.OrderedWith.impl.d3b(%T.887) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.1f6607.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.f0b1d3.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.f0b1d3.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2, @T.as_type.as.OrderedWith.impl.d3b(%T.887) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.1f6607.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.f0b1d3.2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.8e479f.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.1, @T.as_type.as.OrderedWith.impl.d3b(%T.887) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.6822d0.1: %T.as_type.as.OrderedWith.impl.Less.type.8e479f.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.8e479f.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.2, @T.as_type.as.OrderedWith.impl.d3b(%T.887) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.6822d0.2: %T.as_type.as.OrderedWith.impl.Less.type.8e479f.2 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.impl_witness.f27: = impl_witness imports.%OrderedWith.impl_witness_table.dda, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.a0db57.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.2, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.3482c5.1: %T.as_type.as.OrderedWith.impl.Less.type.a0db57.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.82d2f0.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.510b4c.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.82d2f0.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.d192c2.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.2, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.b157e1.1: %T.as_type.as.OrderedWith.impl.Greater.type.d192c2.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.288fa6.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.8e9946.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.288fa6.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.a0db57.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.1, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.3482c5.2: %T.as_type.as.OrderedWith.impl.Less.type.a0db57.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.82d2f0.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.510b4c.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.82d2f0.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.d192c2.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.1, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.b157e1.2: %T.as_type.as.OrderedWith.impl.Greater.type.d192c2.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.288fa6.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.8e9946.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.288fa6.2 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet.99a: %OrderedWith.type.f75 = facet_value %i32, (%OrderedWith.impl_witness.f27) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.ce0: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.99a) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.edb: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.99a) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.a8e: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.99a) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.d2b: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.99a) [concrete] -// CHECK:STDOUT: %.685: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.a8e, %OrderedWith.facet.99a [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.df8542.1: = specific_function %T.as_type.as.OrderedWith.impl.Greater.b157e1.2, @T.as_type.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.df8542.2: = specific_function %T.as_type.as.OrderedWith.impl.Greater.b157e1.1, @T.as_type.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %.f18: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.ce0, %OrderedWith.facet.99a [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.33d5cc.1: = specific_function %T.as_type.as.OrderedWith.impl.Less.3482c5.2, @T.as_type.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.33d5cc.2: = specific_function %T.as_type.as.OrderedWith.impl.Less.3482c5.1, @T.as_type.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %.de3: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.d2b, %OrderedWith.facet.99a [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ed31ba.1: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.8e9946.2, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ed31ba.2: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.8e9946.1, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %.8e2: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.edb, %OrderedWith.facet.99a [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.71880f.1: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.510b4c.2, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.71880f.2: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.510b4c.1, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.95f: = impl_witness imports.%EqWith.impl_witness_table.360, @T.as_type.as.EqWith.impl.1a3(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.4eea73.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.2, @T.as_type.as.EqWith.impl.1a3(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.e65d61.1: %T.as_type.as.EqWith.impl.Equal.type.4eea73.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.728f73.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.2, @T.as_type.as.EqWith.impl.1a3(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.a73f2e.1: %T.as_type.as.EqWith.impl.NotEqual.type.728f73.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.4eea73.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.1, @T.as_type.as.EqWith.impl.1a3(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.e65d61.2: %T.as_type.as.EqWith.impl.Equal.type.4eea73.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.728f73.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.1, @T.as_type.as.EqWith.impl.1a3(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.a73f2e.2: %T.as_type.as.EqWith.impl.NotEqual.type.728f73.2 = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet.f3d: %EqWith.type.0be = facet_value Core.IntLiteral, (%EqWith.impl_witness.95f) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.027: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.f3d) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.4c3: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.f3d) [concrete] -// CHECK:STDOUT: %.2c2: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.027, %EqWith.facet.f3d [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.c5052e.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.e65d61.2 [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.2c5f20.1: = specific_function %T.as_type.as.EqWith.impl.Equal.e65d61.2, @T.as_type.as.EqWith.impl.Equal.1(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %bound_method.bcadad.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.specific_fn.2c5f20.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.c5052e.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.e65d61.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.2c5f20.2: = specific_function %T.as_type.as.EqWith.impl.Equal.e65d61.1, @T.as_type.as.EqWith.impl.Equal.2(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %bound_method.bcadad.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.specific_fn.2c5f20.2 [concrete] -// CHECK:STDOUT: %.cdc: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.4c3, %EqWith.facet.f3d [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.77ff22.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.a73f2e.2 [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.4dc8f8.1: = specific_function %T.as_type.as.EqWith.impl.NotEqual.a73f2e.2, @T.as_type.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %bound_method.a142d4.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.4dc8f8.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.77ff22.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.a73f2e.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.4dc8f8.2: = specific_function %T.as_type.as.EqWith.impl.NotEqual.a73f2e.1, @T.as_type.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %bound_method.a142d4.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.4dc8f8.2 [concrete] -// CHECK:STDOUT: %OrderedWith.impl_witness.eca: = impl_witness imports.%OrderedWith.impl_witness_table.dda, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.1b517c.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.2, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.2d3dbd.1: %T.as_type.as.OrderedWith.impl.Less.type.1b517c.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.b1c747.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.a60f6a.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.b1c747.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.4df4af.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.2, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.892f9f.1: %T.as_type.as.OrderedWith.impl.Greater.type.4df4af.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.10b2de.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2af6e8.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.10b2de.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.1b517c.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.1, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.2d3dbd.2: %T.as_type.as.OrderedWith.impl.Less.type.1b517c.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.b1c747.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.a60f6a.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.b1c747.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.4df4af.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.1, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.892f9f.2: %T.as_type.as.OrderedWith.impl.Greater.type.4df4af.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.10b2de.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1, @T.as_type.as.OrderedWith.impl.d3b(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2af6e8.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.10b2de.2 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet.b8e: %OrderedWith.type.f75 = facet_value Core.IntLiteral, (%OrderedWith.impl_witness.eca) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.170: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.b8e) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.df6: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.b8e) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.24c: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.b8e) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.310: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.b8e) [concrete] -// CHECK:STDOUT: %.356: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.24c, %OrderedWith.facet.b8e [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.0cb14b.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.892f9f.2 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.793e8a.1: = specific_function %T.as_type.as.OrderedWith.impl.Greater.892f9f.2, @T.as_type.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %bound_method.1e56b3.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.793e8a.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.0cb14b.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.892f9f.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.793e8a.2: = specific_function %T.as_type.as.OrderedWith.impl.Greater.892f9f.1, @T.as_type.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %bound_method.1e56b3.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.793e8a.2 [concrete] -// CHECK:STDOUT: %.b2a: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.170, %OrderedWith.facet.b8e [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.ea8939.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.2d3dbd.2 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.de2542.1: = specific_function %T.as_type.as.OrderedWith.impl.Less.2d3dbd.2, @T.as_type.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %bound_method.a1115a.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.specific_fn.de2542.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.ea8939.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.2d3dbd.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.de2542.2: = specific_function %T.as_type.as.OrderedWith.impl.Less.2d3dbd.1, @T.as_type.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %bound_method.a1115a.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.specific_fn.de2542.2 [concrete] -// CHECK:STDOUT: %.e96: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.310, %OrderedWith.facet.b8e [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.46e31a.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2af6e8.2 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.17bde9.1: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2af6e8.2, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %bound_method.ff8bc5.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.17bde9.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.46e31a.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2af6e8.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.17bde9.2: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2af6e8.1, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %bound_method.ff8bc5.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.17bde9.2 [concrete] -// CHECK:STDOUT: %.93c: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.df6, %OrderedWith.facet.b8e [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.bd23ae.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.a60f6a.2 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.36fde0.1: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.a60f6a.2, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %bound_method.fbe496.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.36fde0.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.bd23ae.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.a60f6a.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.36fde0.2: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.a60f6a.1, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %bound_method.fbe496.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.36fde0.2 [concrete] +// CHECK:STDOUT: %.4a6: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.411, %EqWith.facet.253 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.fae6fc.1: = specific_function %T.as_type.as.EqWith.impl.NotEqual.3d3117.2, @T.as_type.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.fae6fc.2: = specific_function %T.as_type.as.EqWith.impl.NotEqual.3d3117.1, @T.as_type.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %OrderedWith.type.a48: type = facet_type <@OrderedWith, @OrderedWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2225a2.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.56ba82.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2225a2.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2225a2.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.56ba82.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2225a2.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.4af657.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.1, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.00ebff.1: %T.as_type.as.OrderedWith.impl.Greater.type.4af657.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.4af657.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.2, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.00ebff.2: %T.as_type.as.OrderedWith.impl.Greater.type.4af657.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.accc59.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e8206a.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.accc59.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.accc59.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e8206a.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.accc59.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.62945a.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.1, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.2ef721.1: %T.as_type.as.OrderedWith.impl.Less.type.62945a.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.62945a.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.2, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.2ef721.2: %T.as_type.as.OrderedWith.impl.Less.type.62945a.2 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.impl_witness.029: = impl_witness imports.%OrderedWith.impl_witness_table.969, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.e5a0d6.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.2, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.3e6ac0.1: %T.as_type.as.OrderedWith.impl.Less.type.e5a0d6.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.be0eb0.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b51928.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.be0eb0.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.5d146f.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.2, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.dcaa48.1: %T.as_type.as.OrderedWith.impl.Greater.type.5d146f.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.e46d69.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.e6f558.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.e46d69.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.e5a0d6.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.1, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.3e6ac0.2: %T.as_type.as.OrderedWith.impl.Less.type.e5a0d6.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.be0eb0.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b51928.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.be0eb0.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.5d146f.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.1, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.dcaa48.2: %T.as_type.as.OrderedWith.impl.Greater.type.5d146f.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.e46d69.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.e6f558.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.e46d69.2 = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.facet.b2e7: %OrderedWith.type.a48 = facet_value %i32, (%OrderedWith.impl_witness.029) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.a16: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.b2e7) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.68c: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.b2e7) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.544: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.b2e7) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.dc3: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.b2e7) [concrete] +// CHECK:STDOUT: %.871: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.544, %OrderedWith.facet.b2e7 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.052d08.1: = specific_function %T.as_type.as.OrderedWith.impl.Greater.dcaa48.2, @T.as_type.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.052d08.2: = specific_function %T.as_type.as.OrderedWith.impl.Greater.dcaa48.1, @T.as_type.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %.68c: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.a16, %OrderedWith.facet.b2e7 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.d4058b.1: = specific_function %T.as_type.as.OrderedWith.impl.Less.3e6ac0.2, @T.as_type.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.d4058b.2: = specific_function %T.as_type.as.OrderedWith.impl.Less.3e6ac0.1, @T.as_type.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %.7c0: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.dc3, %OrderedWith.facet.b2e7 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.a37dff.1: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.e6f558.2, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.a37dff.2: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.e6f558.1, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %.a3d: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.68c, %OrderedWith.facet.b2e7 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ad853c.1: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b51928.2, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ad853c.2: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b51928.1, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.772: = impl_witness imports.%EqWith.impl_witness_table.9cc, @T.as_type.as.EqWith.impl.673(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.f5ab79.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.2, @T.as_type.as.EqWith.impl.673(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.4e32c9.1: %T.as_type.as.EqWith.impl.Equal.type.f5ab79.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.f0c8ea.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.2, @T.as_type.as.EqWith.impl.673(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.7e38ae.1: %T.as_type.as.EqWith.impl.NotEqual.type.f0c8ea.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.f5ab79.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.1, @T.as_type.as.EqWith.impl.673(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.4e32c9.2: %T.as_type.as.EqWith.impl.Equal.type.f5ab79.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.f0c8ea.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.1, @T.as_type.as.EqWith.impl.673(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.7e38ae.2: %T.as_type.as.EqWith.impl.NotEqual.type.f0c8ea.2 = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.facet.b6a: %EqWith.type.54a = facet_value Core.IntLiteral, (%EqWith.impl_witness.772) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.6a9: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.b6a) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.601: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.b6a) [concrete] +// CHECK:STDOUT: %.651: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.6a9, %EqWith.facet.b6a [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.1038cb.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.4e32c9.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.2002e1.1: = specific_function %T.as_type.as.EqWith.impl.Equal.4e32c9.2, @T.as_type.as.EqWith.impl.Equal.1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %bound_method.5ea17a.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.specific_fn.2002e1.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.1038cb.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.4e32c9.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.2002e1.2: = specific_function %T.as_type.as.EqWith.impl.Equal.4e32c9.1, @T.as_type.as.EqWith.impl.Equal.2(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %bound_method.5ea17a.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.specific_fn.2002e1.2 [concrete] +// CHECK:STDOUT: %.830: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.601, %EqWith.facet.b6a [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.750155.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.7e38ae.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.cb3ce7.1: = specific_function %T.as_type.as.EqWith.impl.NotEqual.7e38ae.2, @T.as_type.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %bound_method.c6610c.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.cb3ce7.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.750155.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.7e38ae.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.cb3ce7.2: = specific_function %T.as_type.as.EqWith.impl.NotEqual.7e38ae.1, @T.as_type.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %bound_method.c6610c.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.cb3ce7.2 [concrete] +// CHECK:STDOUT: %OrderedWith.impl_witness.8ce: = impl_witness imports.%OrderedWith.impl_witness_table.969, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.ea162e.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.2, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.0804e2.1: %T.as_type.as.OrderedWith.impl.Less.type.ea162e.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.b869b8.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.6b9921.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.b869b8.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.dc545b.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.2, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.3f6fcf.1: %T.as_type.as.OrderedWith.impl.Greater.type.dc545b.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1ebc13.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.d37e1c.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1ebc13.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.ea162e.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.1, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.0804e2.2: %T.as_type.as.OrderedWith.impl.Less.type.ea162e.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.b869b8.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.6b9921.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.b869b8.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.dc545b.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.1, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.3f6fcf.2: %T.as_type.as.OrderedWith.impl.Greater.type.dc545b.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1ebc13.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.d37e1c.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1ebc13.2 = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.facet.09c: %OrderedWith.type.a48 = facet_value Core.IntLiteral, (%OrderedWith.impl_witness.8ce) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.068: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.09c) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.1df: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.09c) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.547: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.09c) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.936: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.09c) [concrete] +// CHECK:STDOUT: %.48e: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.547, %OrderedWith.facet.09c [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.b05e6b.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.3f6fcf.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.b46b59.1: = specific_function %T.as_type.as.OrderedWith.impl.Greater.3f6fcf.2, @T.as_type.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %bound_method.84b063.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.b46b59.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.b05e6b.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.3f6fcf.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.b46b59.2: = specific_function %T.as_type.as.OrderedWith.impl.Greater.3f6fcf.1, @T.as_type.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %bound_method.84b063.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.b46b59.2 [concrete] +// CHECK:STDOUT: %.138: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.068, %OrderedWith.facet.09c [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.c0d522.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.0804e2.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.6ba13f.1: = specific_function %T.as_type.as.OrderedWith.impl.Less.0804e2.2, @T.as_type.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %bound_method.a4c927.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.specific_fn.6ba13f.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.c0d522.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.0804e2.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.6ba13f.2: = specific_function %T.as_type.as.OrderedWith.impl.Less.0804e2.1, @T.as_type.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %bound_method.a4c927.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.specific_fn.6ba13f.2 [concrete] +// CHECK:STDOUT: %.5fe: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.936, %OrderedWith.facet.09c [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.af5bde.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.d37e1c.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8d07ea.1: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.d37e1c.2, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %bound_method.d2ea71.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8d07ea.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.af5bde.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.d37e1c.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8d07ea.2: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.d37e1c.1, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %bound_method.d2ea71.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8d07ea.2 [concrete] +// CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.1df, %OrderedWith.facet.09c [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.1f479f.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.6b9921.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.9ed43e.1: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.6b9921.2, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %bound_method.ce4a7e.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.9ed43e.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.1f479f.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.6b9921.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.9ed43e.2: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.6b9921.1, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %bound_method.ce4a7e.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.9ed43e.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2169,55 +2169,55 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: .long = constants.%Cpp.long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.adef5f.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.293 = impl_witness_table (%Core.import_ref.adef5f.1), @Core.IntLiteral.as.ImplicitAs.impl.ec9 [concrete] -// CHECK:STDOUT: %Core.import_ref.566: @T.as_type.as.EqWith.impl.1a3.%T.as_type.as.EqWith.impl.Equal.type.2 (%T.as_type.as.EqWith.impl.Equal.type.0e80bf.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.EqWith.impl.1a3.%T.as_type.as.EqWith.impl.Equal.2 (constants.%T.as_type.as.EqWith.impl.Equal.a11a61.1)] -// CHECK:STDOUT: %Core.import_ref.b57: @T.as_type.as.EqWith.impl.1a3.%T.as_type.as.EqWith.impl.NotEqual.type.2 (%T.as_type.as.EqWith.impl.NotEqual.type.182979.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.EqWith.impl.1a3.%T.as_type.as.EqWith.impl.NotEqual.2 (constants.%T.as_type.as.EqWith.impl.NotEqual.ac4f99.1)] -// CHECK:STDOUT: %EqWith.impl_witness_table.360 = impl_witness_table (%Core.import_ref.566, %Core.import_ref.b57), @T.as_type.as.EqWith.impl.1a3 [concrete] -// CHECK:STDOUT: %Core.NotEqual.b04: @T.as_type.as.EqWith.impl.1a3.%T.as_type.as.EqWith.impl.NotEqual.type.1 (%T.as_type.as.EqWith.impl.NotEqual.type.182979.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @T.as_type.as.EqWith.impl.1a3.%T.as_type.as.EqWith.impl.NotEqual.1 (constants.%T.as_type.as.EqWith.impl.NotEqual.ac4f99.2)] -// CHECK:STDOUT: %Core.Equal.883: @T.as_type.as.EqWith.impl.1a3.%T.as_type.as.EqWith.impl.Equal.type.1 (%T.as_type.as.EqWith.impl.Equal.type.0e80bf.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @T.as_type.as.EqWith.impl.1a3.%T.as_type.as.EqWith.impl.Equal.1 (constants.%T.as_type.as.EqWith.impl.Equal.a11a61.2)] -// CHECK:STDOUT: %Core.import_ref.adef5f.2: %i32.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.29c = impl_witness_table (%Core.import_ref.adef5f.2), @i32.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.ae9: @T.as_type.as.OrderedWith.impl.d3b.%T.as_type.as.OrderedWith.impl.Less.type.2 (%T.as_type.as.OrderedWith.impl.Less.type.8e479f.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.d3b.%T.as_type.as.OrderedWith.impl.Less.2 (constants.%T.as_type.as.OrderedWith.impl.Less.6822d0.1)] -// CHECK:STDOUT: %Core.import_ref.069: @T.as_type.as.OrderedWith.impl.d3b.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.2 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.f0b1d3.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.d3b.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.1f6607.1)] -// CHECK:STDOUT: %Core.import_ref.0b2: @T.as_type.as.OrderedWith.impl.d3b.%T.as_type.as.OrderedWith.impl.Greater.type.2 (%T.as_type.as.OrderedWith.impl.Greater.type.d820b7.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.d3b.%T.as_type.as.OrderedWith.impl.Greater.2 (constants.%T.as_type.as.OrderedWith.impl.Greater.803b09.1)] -// CHECK:STDOUT: %Core.import_ref.d11: @T.as_type.as.OrderedWith.impl.d3b.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.42dbc4.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.d3b.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.112484.1)] -// CHECK:STDOUT: %OrderedWith.impl_witness_table.dda = impl_witness_table (%Core.import_ref.ae9, %Core.import_ref.069, %Core.import_ref.0b2, %Core.import_ref.d11), @T.as_type.as.OrderedWith.impl.d3b [concrete] -// CHECK:STDOUT: %Core.GreaterOrEquivalent.e59: @T.as_type.as.OrderedWith.impl.d3b.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.42dbc4.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.d3b.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.112484.2)] -// CHECK:STDOUT: %Core.Greater.0f9: @T.as_type.as.OrderedWith.impl.d3b.%T.as_type.as.OrderedWith.impl.Greater.type.1 (%T.as_type.as.OrderedWith.impl.Greater.type.d820b7.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @T.as_type.as.OrderedWith.impl.d3b.%T.as_type.as.OrderedWith.impl.Greater.1 (constants.%T.as_type.as.OrderedWith.impl.Greater.803b09.2)] -// CHECK:STDOUT: %Core.LessOrEquivalent.fc1: @T.as_type.as.OrderedWith.impl.d3b.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.f0b1d3.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.d3b.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.1f6607.2)] -// CHECK:STDOUT: %Core.Less.add: @T.as_type.as.OrderedWith.impl.d3b.%T.as_type.as.OrderedWith.impl.Less.type.1 (%T.as_type.as.OrderedWith.impl.Less.type.8e479f.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @T.as_type.as.OrderedWith.impl.d3b.%T.as_type.as.OrderedWith.impl.Less.1 (constants.%T.as_type.as.OrderedWith.impl.Less.6822d0.2)] +// CHECK:STDOUT: %Core.import_ref.06c923.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.635 = impl_witness_table (%Core.import_ref.06c923.1), @Core.IntLiteral.as.ImplicitAs.impl.94b [concrete] +// CHECK:STDOUT: %Core.import_ref.a8d8: @T.as_type.as.EqWith.impl.673.%T.as_type.as.EqWith.impl.Equal.type.2 (%T.as_type.as.EqWith.impl.Equal.type.94a46e.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.EqWith.impl.673.%T.as_type.as.EqWith.impl.Equal.2 (constants.%T.as_type.as.EqWith.impl.Equal.3fb574.1)] +// CHECK:STDOUT: %Core.import_ref.81b: @T.as_type.as.EqWith.impl.673.%T.as_type.as.EqWith.impl.NotEqual.type.2 (%T.as_type.as.EqWith.impl.NotEqual.type.92df03.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.EqWith.impl.673.%T.as_type.as.EqWith.impl.NotEqual.2 (constants.%T.as_type.as.EqWith.impl.NotEqual.a7a615.1)] +// CHECK:STDOUT: %EqWith.impl_witness_table.9cc = impl_witness_table (%Core.import_ref.a8d8, %Core.import_ref.81b), @T.as_type.as.EqWith.impl.673 [concrete] +// CHECK:STDOUT: %Core.NotEqual.d11: @T.as_type.as.EqWith.impl.673.%T.as_type.as.EqWith.impl.NotEqual.type.1 (%T.as_type.as.EqWith.impl.NotEqual.type.92df03.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @T.as_type.as.EqWith.impl.673.%T.as_type.as.EqWith.impl.NotEqual.1 (constants.%T.as_type.as.EqWith.impl.NotEqual.a7a615.2)] +// CHECK:STDOUT: %Core.Equal.d4c: @T.as_type.as.EqWith.impl.673.%T.as_type.as.EqWith.impl.Equal.type.1 (%T.as_type.as.EqWith.impl.Equal.type.94a46e.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @T.as_type.as.EqWith.impl.673.%T.as_type.as.EqWith.impl.Equal.1 (constants.%T.as_type.as.EqWith.impl.Equal.3fb574.2)] +// CHECK:STDOUT: %Core.import_ref.06c923.2: %i32.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a75 = impl_witness_table (%Core.import_ref.06c923.2), @i32.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.0c1: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Less.type.2 (%T.as_type.as.OrderedWith.impl.Less.type.62945a.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Less.2 (constants.%T.as_type.as.OrderedWith.impl.Less.2ef721.1)] +// CHECK:STDOUT: %Core.import_ref.f03: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.2 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.accc59.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.e8206a.1)] +// CHECK:STDOUT: %Core.import_ref.dc8: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Greater.type.2 (%T.as_type.as.OrderedWith.impl.Greater.type.4af657.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Greater.2 (constants.%T.as_type.as.OrderedWith.impl.Greater.00ebff.1)] +// CHECK:STDOUT: %Core.import_ref.fbe: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2225a2.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.56ba82.1)] +// CHECK:STDOUT: %OrderedWith.impl_witness_table.969 = impl_witness_table (%Core.import_ref.0c1, %Core.import_ref.f03, %Core.import_ref.dc8, %Core.import_ref.fbe), @T.as_type.as.OrderedWith.impl.821 [concrete] +// CHECK:STDOUT: %Core.GreaterOrEquivalent.e06: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2225a2.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.56ba82.2)] +// CHECK:STDOUT: %Core.Greater.0b3: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Greater.type.1 (%T.as_type.as.OrderedWith.impl.Greater.type.4af657.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Greater.1 (constants.%T.as_type.as.OrderedWith.impl.Greater.00ebff.2)] +// CHECK:STDOUT: %Core.LessOrEquivalent.27e: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.accc59.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.e8206a.2)] +// CHECK:STDOUT: %Core.Less.2f9: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Less.type.1 (%T.as_type.as.OrderedWith.impl.Less.type.62945a.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Less.1 (constants.%T.as_type.as.OrderedWith.impl.Less.2ef721.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ComparisonsHeterogeneousLongRightSide() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.83e = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.25e = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_13: type = splice_block %long.ref [concrete = constants.%Cpp.long] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %long.ref: type = name_ref long, constants.%Cpp.long [concrete = constants.%Cpp.long] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc9: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc9: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc9: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc9_21.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc9_21.2: %Cpp.long = converted %int_1.loc9, %.loc9_21.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc9_21.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc9_21.2: %Cpp.long = converted %int_1.loc9, %.loc9_21.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %a: %Cpp.long = value_binding a, %.loc9_21.2 // CHECK:STDOUT: %b.ref.loc10: %i32 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc10: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc10_5: %.367 = impl_witness_access constants.%EqWith.impl_witness.37d, element0 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.33d0bf.2] +// CHECK:STDOUT: %impl.elem0.loc10_5: %.a04 = impl_witness_access constants.%EqWith.impl_witness.95d, element0 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.f0911b.2] // CHECK:STDOUT: %bound_method.loc10_5.1: = bound_method %b.ref.loc10, %impl.elem0.loc10_5 -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @T.as_type.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.c2fb87.1] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @T.as_type.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.873bd0.1] // CHECK:STDOUT: %bound_method.loc10_5.2: = bound_method %b.ref.loc10, %specific_fn.loc10 -// CHECK:STDOUT: %.loc10_5: %T.as_type.as.EqWith.impl.Equal.type.50eb4b.1 = specific_constant imports.%Core.Equal.883, @T.as_type.as.EqWith.impl.1a3(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.33d0bf.1] -// CHECK:STDOUT: %Equal.ref.loc10: %T.as_type.as.EqWith.impl.Equal.type.50eb4b.1 = name_ref Equal, %.loc10_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.33d0bf.1] +// CHECK:STDOUT: %.loc10_5: %T.as_type.as.EqWith.impl.Equal.type.e779ca.1 = specific_constant imports.%Core.Equal.d4c, @T.as_type.as.EqWith.impl.673(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.f0911b.1] +// CHECK:STDOUT: %Equal.ref.loc10: %T.as_type.as.EqWith.impl.Equal.type.e779ca.1 = name_ref Equal, %.loc10_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.f0911b.1] // CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.loc10: = bound_method %b.ref.loc10, %Equal.ref.loc10 -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.loc10: = specific_function %Equal.ref.loc10, @T.as_type.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.c2fb87.2] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.loc10: = specific_function %Equal.ref.loc10, @T.as_type.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.873bd0.2] // CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %b.ref.loc10, %T.as_type.as.EqWith.impl.Equal.specific_fn.loc10 -// CHECK:STDOUT: %impl.elem0.loc10_3: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc10_3: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_3: = bound_method %b.ref.loc10, %impl.elem0.loc10_3 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc10: init %Cpp.long = call %bound_method.loc10_3(%b.ref.loc10) // CHECK:STDOUT: %.loc10_3.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc10 @@ -2225,16 +2225,16 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.call.loc10: init bool = call %bound_method.loc10_5.3(%.loc10_3.2, %a.ref.loc10) // CHECK:STDOUT: %b.ref.loc11: %i32 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc11: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem1.loc11: %.50c = impl_witness_access constants.%EqWith.impl_witness.37d, element1 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.30ef12.2] +// CHECK:STDOUT: %impl.elem1.loc11: %.4a6 = impl_witness_access constants.%EqWith.impl_witness.95d, element1 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.3d3117.2] // CHECK:STDOUT: %bound_method.loc11_5.1: = bound_method %b.ref.loc11, %impl.elem1.loc11 -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem1.loc11, @T.as_type.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.ed888b.1] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem1.loc11, @T.as_type.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.fae6fc.1] // CHECK:STDOUT: %bound_method.loc11_5.2: = bound_method %b.ref.loc11, %specific_fn.loc11 -// CHECK:STDOUT: %.loc11_5: %T.as_type.as.EqWith.impl.NotEqual.type.989cc9.1 = specific_constant imports.%Core.NotEqual.b04, @T.as_type.as.EqWith.impl.1a3(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.30ef12.1] -// CHECK:STDOUT: %NotEqual.ref.loc11: %T.as_type.as.EqWith.impl.NotEqual.type.989cc9.1 = name_ref NotEqual, %.loc11_5 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.30ef12.1] +// CHECK:STDOUT: %.loc11_5: %T.as_type.as.EqWith.impl.NotEqual.type.3aca6f.1 = specific_constant imports.%Core.NotEqual.d11, @T.as_type.as.EqWith.impl.673(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.3d3117.1] +// CHECK:STDOUT: %NotEqual.ref.loc11: %T.as_type.as.EqWith.impl.NotEqual.type.3aca6f.1 = name_ref NotEqual, %.loc11_5 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.3d3117.1] // CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.loc11: = bound_method %b.ref.loc11, %NotEqual.ref.loc11 -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11: = specific_function %NotEqual.ref.loc11, @T.as_type.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.ed888b.2] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11: = specific_function %NotEqual.ref.loc11, @T.as_type.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.fae6fc.2] // CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %b.ref.loc11, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11 -// CHECK:STDOUT: %impl.elem0.loc11: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc11: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc11_3: = bound_method %b.ref.loc11, %impl.elem0.loc11 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc11: init %Cpp.long = call %bound_method.loc11_3(%b.ref.loc11) // CHECK:STDOUT: %.loc11_3.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc11 @@ -2242,16 +2242,16 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.call.loc11: init bool = call %bound_method.loc11_5.3(%.loc11_3.2, %a.ref.loc11) // CHECK:STDOUT: %b.ref.loc12: %i32 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc12: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem2.loc12: %.685 = impl_witness_access constants.%OrderedWith.impl_witness.f27, element2 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.b157e1.2] +// CHECK:STDOUT: %impl.elem2.loc12: %.871 = impl_witness_access constants.%OrderedWith.impl_witness.029, element2 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.dcaa48.2] // CHECK:STDOUT: %bound_method.loc12_5.1: = bound_method %b.ref.loc12, %impl.elem2.loc12 -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem2.loc12, @T.as_type.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.df8542.1] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem2.loc12, @T.as_type.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.052d08.1] // CHECK:STDOUT: %bound_method.loc12_5.2: = bound_method %b.ref.loc12, %specific_fn.loc12 -// CHECK:STDOUT: %.loc12_5: %T.as_type.as.OrderedWith.impl.Greater.type.d192c2.1 = specific_constant imports.%Core.Greater.0f9, @T.as_type.as.OrderedWith.impl.d3b(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.b157e1.1] -// CHECK:STDOUT: %Greater.ref.loc12: %T.as_type.as.OrderedWith.impl.Greater.type.d192c2.1 = name_ref Greater, %.loc12_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.b157e1.1] +// CHECK:STDOUT: %.loc12_5: %T.as_type.as.OrderedWith.impl.Greater.type.5d146f.1 = specific_constant imports.%Core.Greater.0b3, @T.as_type.as.OrderedWith.impl.821(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.dcaa48.1] +// CHECK:STDOUT: %Greater.ref.loc12: %T.as_type.as.OrderedWith.impl.Greater.type.5d146f.1 = name_ref Greater, %.loc12_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.dcaa48.1] // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.loc12: = bound_method %b.ref.loc12, %Greater.ref.loc12 -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12: = specific_function %Greater.ref.loc12, @T.as_type.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.df8542.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12: = specific_function %Greater.ref.loc12, @T.as_type.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.052d08.2] // CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %b.ref.loc12, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12 -// CHECK:STDOUT: %impl.elem0.loc12: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc12: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc12_3: = bound_method %b.ref.loc12, %impl.elem0.loc12 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc12: init %Cpp.long = call %bound_method.loc12_3(%b.ref.loc12) // CHECK:STDOUT: %.loc12_3.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc12 @@ -2259,16 +2259,16 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.call.loc12: init bool = call %bound_method.loc12_5.3(%.loc12_3.2, %a.ref.loc12) // CHECK:STDOUT: %b.ref.loc13: %i32 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc13: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc13_5: %.f18 = impl_witness_access constants.%OrderedWith.impl_witness.f27, element0 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.3482c5.2] +// CHECK:STDOUT: %impl.elem0.loc13_5: %.68c = impl_witness_access constants.%OrderedWith.impl_witness.029, element0 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.3e6ac0.2] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %b.ref.loc13, %impl.elem0.loc13_5 -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5, @T.as_type.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.33d5cc.1] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5, @T.as_type.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.d4058b.1] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %b.ref.loc13, %specific_fn.loc13 -// CHECK:STDOUT: %.loc13_5: %T.as_type.as.OrderedWith.impl.Less.type.a0db57.1 = specific_constant imports.%Core.Less.add, @T.as_type.as.OrderedWith.impl.d3b(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.3482c5.1] -// CHECK:STDOUT: %Less.ref.loc13: %T.as_type.as.OrderedWith.impl.Less.type.a0db57.1 = name_ref Less, %.loc13_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.3482c5.1] +// CHECK:STDOUT: %.loc13_5: %T.as_type.as.OrderedWith.impl.Less.type.e5a0d6.1 = specific_constant imports.%Core.Less.2f9, @T.as_type.as.OrderedWith.impl.821(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.3e6ac0.1] +// CHECK:STDOUT: %Less.ref.loc13: %T.as_type.as.OrderedWith.impl.Less.type.e5a0d6.1 = name_ref Less, %.loc13_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.3e6ac0.1] // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.loc13: = bound_method %b.ref.loc13, %Less.ref.loc13 -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc13: = specific_function %Less.ref.loc13, @T.as_type.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.33d5cc.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc13: = specific_function %Less.ref.loc13, @T.as_type.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.d4058b.2] // CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %b.ref.loc13, %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc13 -// CHECK:STDOUT: %impl.elem0.loc13_3: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc13_3: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc13_3: = bound_method %b.ref.loc13, %impl.elem0.loc13_3 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc13: init %Cpp.long = call %bound_method.loc13_3(%b.ref.loc13) // CHECK:STDOUT: %.loc13_3.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc13 @@ -2276,16 +2276,16 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.call.loc13: init bool = call %bound_method.loc13_5.3(%.loc13_3.2, %a.ref.loc13) // CHECK:STDOUT: %b.ref.loc14: %i32 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc14: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem3.loc14: %.de3 = impl_witness_access constants.%OrderedWith.impl_witness.f27, element3 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.8e9946.2] +// CHECK:STDOUT: %impl.elem3.loc14: %.7c0 = impl_witness_access constants.%OrderedWith.impl_witness.029, element3 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.e6f558.2] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %b.ref.loc14, %impl.elem3.loc14 -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem3.loc14, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ed31ba.1] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem3.loc14, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.a37dff.1] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %b.ref.loc14, %specific_fn.loc14 -// CHECK:STDOUT: %.loc14_5: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.288fa6.1 = specific_constant imports.%Core.GreaterOrEquivalent.e59, @T.as_type.as.OrderedWith.impl.d3b(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.8e9946.1] -// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.288fa6.1 = name_ref GreaterOrEquivalent, %.loc14_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.8e9946.1] +// CHECK:STDOUT: %.loc14_5: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.e46d69.1 = specific_constant imports.%Core.GreaterOrEquivalent.e06, @T.as_type.as.OrderedWith.impl.821(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.e6f558.1] +// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.e46d69.1 = name_ref GreaterOrEquivalent, %.loc14_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.e6f558.1] // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc14: = bound_method %b.ref.loc14, %GreaterOrEquivalent.ref.loc14 -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: = specific_function %GreaterOrEquivalent.ref.loc14, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ed31ba.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: = specific_function %GreaterOrEquivalent.ref.loc14, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.a37dff.2] // CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %b.ref.loc14, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14 -// CHECK:STDOUT: %impl.elem0.loc14: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc14: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc14_3: = bound_method %b.ref.loc14, %impl.elem0.loc14 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc14: init %Cpp.long = call %bound_method.loc14_3(%b.ref.loc14) // CHECK:STDOUT: %.loc14_3.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc14 @@ -2293,16 +2293,16 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call.loc14: init bool = call %bound_method.loc14_5.3(%.loc14_3.2, %a.ref.loc14) // CHECK:STDOUT: %b.ref.loc15: %i32 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc15: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem1.loc15: %.8e2 = impl_witness_access constants.%OrderedWith.impl_witness.f27, element1 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.510b4c.2] +// CHECK:STDOUT: %impl.elem1.loc15: %.a3d = impl_witness_access constants.%OrderedWith.impl_witness.029, element1 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.b51928.2] // CHECK:STDOUT: %bound_method.loc15_5.1: = bound_method %b.ref.loc15, %impl.elem1.loc15 -// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem1.loc15, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.71880f.1] +// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem1.loc15, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ad853c.1] // CHECK:STDOUT: %bound_method.loc15_5.2: = bound_method %b.ref.loc15, %specific_fn.loc15 -// CHECK:STDOUT: %.loc15_5: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.82d2f0.1 = specific_constant imports.%Core.LessOrEquivalent.fc1, @T.as_type.as.OrderedWith.impl.d3b(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.510b4c.1] -// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.82d2f0.1 = name_ref LessOrEquivalent, %.loc15_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.510b4c.1] +// CHECK:STDOUT: %.loc15_5: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.be0eb0.1 = specific_constant imports.%Core.LessOrEquivalent.27e, @T.as_type.as.OrderedWith.impl.821(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.b51928.1] +// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.be0eb0.1 = name_ref LessOrEquivalent, %.loc15_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.b51928.1] // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.loc15: = bound_method %b.ref.loc15, %LessOrEquivalent.ref.loc15 -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: = specific_function %LessOrEquivalent.ref.loc15, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.71880f.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: = specific_function %LessOrEquivalent.ref.loc15, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ad853c.2] // CHECK:STDOUT: %bound_method.loc15_5.3: = bound_method %b.ref.loc15, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15 -// CHECK:STDOUT: %impl.elem0.loc15: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc15: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc15_3: = bound_method %b.ref.loc15, %impl.elem0.loc15 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc15: init %Cpp.long = call %bound_method.loc15_3(%b.ref.loc15) // CHECK:STDOUT: %.loc15_3.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc15 @@ -2310,105 +2310,105 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call.loc15: init bool = call %bound_method.loc15_5.3(%.loc15_3.2, %a.ref.loc15) // CHECK:STDOUT: %int_1.loc17: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc17: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc17_5: %.2c2 = impl_witness_access constants.%EqWith.impl_witness.95f, element0 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.e65d61.2] -// CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %int_1.loc17, %impl.elem0.loc17_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.bound.c5052e.1] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5, @T.as_type.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.2c5f20.1] -// CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %int_1.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.bcadad.1] -// CHECK:STDOUT: %.loc17_5: %T.as_type.as.EqWith.impl.Equal.type.4eea73.1 = specific_constant imports.%Core.Equal.883, @T.as_type.as.EqWith.impl.1a3(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.e65d61.1] -// CHECK:STDOUT: %Equal.ref.loc17: %T.as_type.as.EqWith.impl.Equal.type.4eea73.1 = name_ref Equal, %.loc17_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.e65d61.1] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.loc17: = bound_method %int_1.loc17, %Equal.ref.loc17 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.bound.c5052e.2] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.loc17: = specific_function %Equal.ref.loc17, @T.as_type.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.2c5f20.2] -// CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %int_1.loc17, %T.as_type.as.EqWith.impl.Equal.specific_fn.loc17 [concrete = constants.%bound_method.bcadad.2] -// CHECK:STDOUT: %impl.elem0.loc17_3: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc17_5: %.651 = impl_witness_access constants.%EqWith.impl_witness.772, element0 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.4e32c9.2] +// CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %int_1.loc17, %impl.elem0.loc17_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.bound.1038cb.1] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5, @T.as_type.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.2002e1.1] +// CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %int_1.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.5ea17a.1] +// CHECK:STDOUT: %.loc17_5: %T.as_type.as.EqWith.impl.Equal.type.f5ab79.1 = specific_constant imports.%Core.Equal.d4c, @T.as_type.as.EqWith.impl.673(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.4e32c9.1] +// CHECK:STDOUT: %Equal.ref.loc17: %T.as_type.as.EqWith.impl.Equal.type.f5ab79.1 = name_ref Equal, %.loc17_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.4e32c9.1] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.loc17: = bound_method %int_1.loc17, %Equal.ref.loc17 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.bound.1038cb.2] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.loc17: = specific_function %Equal.ref.loc17, @T.as_type.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.2002e1.2] +// CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %int_1.loc17, %T.as_type.as.EqWith.impl.Equal.specific_fn.loc17 [concrete = constants.%bound_method.5ea17a.2] +// CHECK:STDOUT: %impl.elem0.loc17_3: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc17_3: = bound_method %int_1.loc17, %impl.elem0.loc17_3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %Cpp.long = call %bound_method.loc17_3(%int_1.loc17) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc17_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc17_3.2: %Cpp.long = converted %int_1.loc17, %.loc17_3.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %Cpp.long = call %bound_method.loc17_3(%int_1.loc17) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc17_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc17_3.2: %Cpp.long = converted %int_1.loc17, %.loc17_3.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.call.loc17: init bool = call %bound_method.loc17_5.3(%.loc17_3.2, %a.ref.loc17) // CHECK:STDOUT: %int_1.loc18: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc18: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem1.loc18: %.cdc = impl_witness_access constants.%EqWith.impl_witness.95f, element1 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.a73f2e.2] -// CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %int_1.loc18, %impl.elem1.loc18 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.bound.77ff22.1] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem1.loc18, @T.as_type.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.4dc8f8.1] -// CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %int_1.loc18, %specific_fn.loc18 [concrete = constants.%bound_method.a142d4.1] -// CHECK:STDOUT: %.loc18_5: %T.as_type.as.EqWith.impl.NotEqual.type.728f73.1 = specific_constant imports.%Core.NotEqual.b04, @T.as_type.as.EqWith.impl.1a3(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.a73f2e.1] -// CHECK:STDOUT: %NotEqual.ref.loc18: %T.as_type.as.EqWith.impl.NotEqual.type.728f73.1 = name_ref NotEqual, %.loc18_5 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.a73f2e.1] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.loc18: = bound_method %int_1.loc18, %NotEqual.ref.loc18 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.bound.77ff22.2] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18: = specific_function %NotEqual.ref.loc18, @T.as_type.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.4dc8f8.2] -// CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %int_1.loc18, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18 [concrete = constants.%bound_method.a142d4.2] -// CHECK:STDOUT: %impl.elem0.loc18: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem1.loc18: %.830 = impl_witness_access constants.%EqWith.impl_witness.772, element1 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.7e38ae.2] +// CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %int_1.loc18, %impl.elem1.loc18 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.bound.750155.1] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem1.loc18, @T.as_type.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.cb3ce7.1] +// CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %int_1.loc18, %specific_fn.loc18 [concrete = constants.%bound_method.c6610c.1] +// CHECK:STDOUT: %.loc18_5: %T.as_type.as.EqWith.impl.NotEqual.type.f0c8ea.1 = specific_constant imports.%Core.NotEqual.d11, @T.as_type.as.EqWith.impl.673(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.7e38ae.1] +// CHECK:STDOUT: %NotEqual.ref.loc18: %T.as_type.as.EqWith.impl.NotEqual.type.f0c8ea.1 = name_ref NotEqual, %.loc18_5 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.7e38ae.1] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.loc18: = bound_method %int_1.loc18, %NotEqual.ref.loc18 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.bound.750155.2] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18: = specific_function %NotEqual.ref.loc18, @T.as_type.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.cb3ce7.2] +// CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %int_1.loc18, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18 [concrete = constants.%bound_method.c6610c.2] +// CHECK:STDOUT: %impl.elem0.loc18: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc18_3: = bound_method %int_1.loc18, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %Cpp.long = call %bound_method.loc18_3(%int_1.loc18) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc18_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc18_3.2: %Cpp.long = converted %int_1.loc18, %.loc18_3.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %Cpp.long = call %bound_method.loc18_3(%int_1.loc18) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc18_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc18_3.2: %Cpp.long = converted %int_1.loc18, %.loc18_3.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.call.loc18: init bool = call %bound_method.loc18_5.3(%.loc18_3.2, %a.ref.loc18) // CHECK:STDOUT: %int_1.loc19: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc19: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem2.loc19: %.356 = impl_witness_access constants.%OrderedWith.impl_witness.eca, element2 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.892f9f.2] -// CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %int_1.loc19, %impl.elem2.loc19 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.bound.0cb14b.1] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem2.loc19, @T.as_type.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.793e8a.1] -// CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %int_1.loc19, %specific_fn.loc19 [concrete = constants.%bound_method.1e56b3.1] -// CHECK:STDOUT: %.loc19_5: %T.as_type.as.OrderedWith.impl.Greater.type.4df4af.1 = specific_constant imports.%Core.Greater.0f9, @T.as_type.as.OrderedWith.impl.d3b(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.892f9f.1] -// CHECK:STDOUT: %Greater.ref.loc19: %T.as_type.as.OrderedWith.impl.Greater.type.4df4af.1 = name_ref Greater, %.loc19_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.892f9f.1] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.loc19: = bound_method %int_1.loc19, %Greater.ref.loc19 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.bound.0cb14b.2] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19: = specific_function %Greater.ref.loc19, @T.as_type.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.793e8a.2] -// CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %int_1.loc19, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19 [concrete = constants.%bound_method.1e56b3.2] -// CHECK:STDOUT: %impl.elem0.loc19: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem2.loc19: %.48e = impl_witness_access constants.%OrderedWith.impl_witness.8ce, element2 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.3f6fcf.2] +// CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %int_1.loc19, %impl.elem2.loc19 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.bound.b05e6b.1] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem2.loc19, @T.as_type.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.b46b59.1] +// CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %int_1.loc19, %specific_fn.loc19 [concrete = constants.%bound_method.84b063.1] +// CHECK:STDOUT: %.loc19_5: %T.as_type.as.OrderedWith.impl.Greater.type.dc545b.1 = specific_constant imports.%Core.Greater.0b3, @T.as_type.as.OrderedWith.impl.821(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.3f6fcf.1] +// CHECK:STDOUT: %Greater.ref.loc19: %T.as_type.as.OrderedWith.impl.Greater.type.dc545b.1 = name_ref Greater, %.loc19_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.3f6fcf.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.loc19: = bound_method %int_1.loc19, %Greater.ref.loc19 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.bound.b05e6b.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19: = specific_function %Greater.ref.loc19, @T.as_type.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.b46b59.2] +// CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %int_1.loc19, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19 [concrete = constants.%bound_method.84b063.2] +// CHECK:STDOUT: %impl.elem0.loc19: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc19_3: = bound_method %int_1.loc19, %impl.elem0.loc19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %Cpp.long = call %bound_method.loc19_3(%int_1.loc19) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc19_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc19_3.2: %Cpp.long = converted %int_1.loc19, %.loc19_3.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %Cpp.long = call %bound_method.loc19_3(%int_1.loc19) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc19_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc19_3.2: %Cpp.long = converted %int_1.loc19, %.loc19_3.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.call.loc19: init bool = call %bound_method.loc19_5.3(%.loc19_3.2, %a.ref.loc19) // CHECK:STDOUT: %int_1.loc20: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc20: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc20_5: %.b2a = impl_witness_access constants.%OrderedWith.impl_witness.eca, element0 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.2d3dbd.2] -// CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %int_1.loc20, %impl.elem0.loc20_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.bound.ea8939.1] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5, @T.as_type.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.de2542.1] -// CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %int_1.loc20, %specific_fn.loc20 [concrete = constants.%bound_method.a1115a.1] -// CHECK:STDOUT: %.loc20_5: %T.as_type.as.OrderedWith.impl.Less.type.1b517c.1 = specific_constant imports.%Core.Less.add, @T.as_type.as.OrderedWith.impl.d3b(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.2d3dbd.1] -// CHECK:STDOUT: %Less.ref.loc20: %T.as_type.as.OrderedWith.impl.Less.type.1b517c.1 = name_ref Less, %.loc20_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.2d3dbd.1] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.loc20: = bound_method %int_1.loc20, %Less.ref.loc20 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.bound.ea8939.2] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc20: = specific_function %Less.ref.loc20, @T.as_type.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.de2542.2] -// CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %int_1.loc20, %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc20 [concrete = constants.%bound_method.a1115a.2] -// CHECK:STDOUT: %impl.elem0.loc20_3: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc20_5: %.138 = impl_witness_access constants.%OrderedWith.impl_witness.8ce, element0 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.0804e2.2] +// CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %int_1.loc20, %impl.elem0.loc20_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.bound.c0d522.1] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5, @T.as_type.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.6ba13f.1] +// CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %int_1.loc20, %specific_fn.loc20 [concrete = constants.%bound_method.a4c927.1] +// CHECK:STDOUT: %.loc20_5: %T.as_type.as.OrderedWith.impl.Less.type.ea162e.1 = specific_constant imports.%Core.Less.2f9, @T.as_type.as.OrderedWith.impl.821(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.0804e2.1] +// CHECK:STDOUT: %Less.ref.loc20: %T.as_type.as.OrderedWith.impl.Less.type.ea162e.1 = name_ref Less, %.loc20_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.0804e2.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.loc20: = bound_method %int_1.loc20, %Less.ref.loc20 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.bound.c0d522.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc20: = specific_function %Less.ref.loc20, @T.as_type.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.6ba13f.2] +// CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %int_1.loc20, %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc20 [concrete = constants.%bound_method.a4c927.2] +// CHECK:STDOUT: %impl.elem0.loc20_3: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc20_3: = bound_method %int_1.loc20, %impl.elem0.loc20_3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %Cpp.long = call %bound_method.loc20_3(%int_1.loc20) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc20_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc20_3.2: %Cpp.long = converted %int_1.loc20, %.loc20_3.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %Cpp.long = call %bound_method.loc20_3(%int_1.loc20) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc20_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc20_3.2: %Cpp.long = converted %int_1.loc20, %.loc20_3.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.call.loc20: init bool = call %bound_method.loc20_5.3(%.loc20_3.2, %a.ref.loc20) // CHECK:STDOUT: %int_1.loc21: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc21: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem3.loc21: %.e96 = impl_witness_access constants.%OrderedWith.impl_witness.eca, element3 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2af6e8.2] -// CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %int_1.loc21, %impl.elem3.loc21 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.46e31a.1] -// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem3.loc21, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.17bde9.1] -// CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %int_1.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.ff8bc5.1] -// CHECK:STDOUT: %.loc21_5: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.10b2de.1 = specific_constant imports.%Core.GreaterOrEquivalent.e59, @T.as_type.as.OrderedWith.impl.d3b(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2af6e8.1] -// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.10b2de.1 = name_ref GreaterOrEquivalent, %.loc21_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2af6e8.1] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc21: = bound_method %int_1.loc21, %GreaterOrEquivalent.ref.loc21 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.46e31a.2] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: = specific_function %GreaterOrEquivalent.ref.loc21, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.17bde9.2] -// CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %int_1.loc21, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21 [concrete = constants.%bound_method.ff8bc5.2] -// CHECK:STDOUT: %impl.elem0.loc21: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem3.loc21: %.5fe = impl_witness_access constants.%OrderedWith.impl_witness.8ce, element3 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.d37e1c.2] +// CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %int_1.loc21, %impl.elem3.loc21 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.af5bde.1] +// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem3.loc21, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8d07ea.1] +// CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %int_1.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.d2ea71.1] +// CHECK:STDOUT: %.loc21_5: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1ebc13.1 = specific_constant imports.%Core.GreaterOrEquivalent.e06, @T.as_type.as.OrderedWith.impl.821(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.d37e1c.1] +// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1ebc13.1 = name_ref GreaterOrEquivalent, %.loc21_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.d37e1c.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc21: = bound_method %int_1.loc21, %GreaterOrEquivalent.ref.loc21 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.af5bde.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: = specific_function %GreaterOrEquivalent.ref.loc21, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8d07ea.2] +// CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %int_1.loc21, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21 [concrete = constants.%bound_method.d2ea71.2] +// CHECK:STDOUT: %impl.elem0.loc21: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc21_3: = bound_method %int_1.loc21, %impl.elem0.loc21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %Cpp.long = call %bound_method.loc21_3(%int_1.loc21) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc21_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc21_3.2: %Cpp.long = converted %int_1.loc21, %.loc21_3.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %Cpp.long = call %bound_method.loc21_3(%int_1.loc21) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc21_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc21_3.2: %Cpp.long = converted %int_1.loc21, %.loc21_3.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call.loc21: init bool = call %bound_method.loc21_5.3(%.loc21_3.2, %a.ref.loc21) // CHECK:STDOUT: %int_1.loc22: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc22: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem1.loc22: %.93c = impl_witness_access constants.%OrderedWith.impl_witness.eca, element1 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.a60f6a.2] -// CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %int_1.loc22, %impl.elem1.loc22 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.bd23ae.1] -// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem1.loc22, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.36fde0.1] -// CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %int_1.loc22, %specific_fn.loc22 [concrete = constants.%bound_method.fbe496.1] -// CHECK:STDOUT: %.loc22_5: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.b1c747.1 = specific_constant imports.%Core.LessOrEquivalent.fc1, @T.as_type.as.OrderedWith.impl.d3b(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.a60f6a.1] -// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.b1c747.1 = name_ref LessOrEquivalent, %.loc22_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.a60f6a.1] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.loc22: = bound_method %int_1.loc22, %LessOrEquivalent.ref.loc22 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.bd23ae.2] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: = specific_function %LessOrEquivalent.ref.loc22, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.c09) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.36fde0.2] -// CHECK:STDOUT: %bound_method.loc22_5.3: = bound_method %int_1.loc22, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22 [concrete = constants.%bound_method.fbe496.2] -// CHECK:STDOUT: %impl.elem0.loc22: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem1.loc22: %.9c3 = impl_witness_access constants.%OrderedWith.impl_witness.8ce, element1 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.6b9921.2] +// CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %int_1.loc22, %impl.elem1.loc22 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.1f479f.1] +// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem1.loc22, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.9ed43e.1] +// CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %int_1.loc22, %specific_fn.loc22 [concrete = constants.%bound_method.ce4a7e.1] +// CHECK:STDOUT: %.loc22_5: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.b869b8.1 = specific_constant imports.%Core.LessOrEquivalent.27e, @T.as_type.as.OrderedWith.impl.821(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.6b9921.1] +// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.b869b8.1 = name_ref LessOrEquivalent, %.loc22_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.6b9921.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.loc22: = bound_method %int_1.loc22, %LessOrEquivalent.ref.loc22 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.1f479f.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: = specific_function %LessOrEquivalent.ref.loc22, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.b30) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.9ed43e.2] +// CHECK:STDOUT: %bound_method.loc22_5.3: = bound_method %int_1.loc22, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22 [concrete = constants.%bound_method.ce4a7e.2] +// CHECK:STDOUT: %impl.elem0.loc22: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc22_3: = bound_method %int_1.loc22, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %Cpp.long = call %bound_method.loc22_3(%int_1.loc22) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc22_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc22_3.2: %Cpp.long = converted %int_1.loc22, %.loc22_3.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %Cpp.long = call %bound_method.loc22_3(%int_1.loc22) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc22_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc22_3.2: %Cpp.long = converted %int_1.loc22, %.loc22_3.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call.loc22: init bool = call %bound_method.loc22_5.3(%.loc22_3.2, %a.ref.loc22) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -2417,57 +2417,57 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Cpp.long: type = class_type @Long32 [concrete] -// CHECK:STDOUT: %pattern_type.83e: type = pattern_type %Cpp.long [concrete] +// CHECK:STDOUT: %pattern_type.25e: type = pattern_type %Cpp.long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6fa: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e41: = impl_witness imports.%ImplicitAs.impl_witness_table.293 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e41) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.93b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.f84: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.93b, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7eb: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.e27: = impl_witness imports.%ImplicitAs.impl_witness_table.635 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e27) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.7dc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.b13: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.7dc, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %int_1.3d0: %Cpp.long = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.9ce: %Cpp.long = int_value 1 [concrete] // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] // CHECK:STDOUT: %Negate.impl_witness: = impl_witness imports.%Negate.impl_witness_table [concrete] // CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value %Cpp.long, (%Negate.impl_witness) [concrete] -// CHECK:STDOUT: %Negate.WithSelf.Op.type.5e8: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] -// CHECK:STDOUT: %.597: type = fn_type_with_self_type %Negate.WithSelf.Op.type.5e8, %Negate.facet [concrete] +// CHECK:STDOUT: %Negate.WithSelf.Op.type.361: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] +// CHECK:STDOUT: %.96f: type = fn_type_with_self_type %Negate.WithSelf.Op.type.361, %Negate.facet [concrete] // CHECK:STDOUT: %Cpp.long.as.Negate.impl.Op.type: type = fn_type @Cpp.long.as.Negate.impl.Op [concrete] // CHECK:STDOUT: %Cpp.long.as.Negate.impl.Op: %Cpp.long.as.Negate.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %AddWith.type.a0e: type = facet_type <@AddWith, @AddWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %AddWith.impl_witness.4d0: = impl_witness imports.%AddWith.impl_witness_table.56c [concrete] -// CHECK:STDOUT: %AddWith.facet.714: %AddWith.type.a0e = facet_value %Cpp.long, (%AddWith.impl_witness.4d0) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.1fc: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Cpp.long, %AddWith.facet.714) [concrete] -// CHECK:STDOUT: %.ffe: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.1fc, %AddWith.facet.714 [concrete] +// CHECK:STDOUT: %AddWith.type.5d0: type = facet_type <@AddWith, @AddWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %AddWith.impl_witness.7cd: = impl_witness imports.%AddWith.impl_witness_table.1a4 [concrete] +// CHECK:STDOUT: %AddWith.facet.a52: %AddWith.type.5d0 = facet_value %Cpp.long, (%AddWith.impl_witness.7cd) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.9c7: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Cpp.long, %AddWith.facet.a52) [concrete] +// CHECK:STDOUT: %.b1d: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.9c7, %AddWith.facet.a52 [concrete] // CHECK:STDOUT: %Cpp.long.as.AddWith.impl.Op.type.43d: type = fn_type @Cpp.long.as.AddWith.impl.Op.3 [concrete] // CHECK:STDOUT: %Cpp.long.as.AddWith.impl.Op.cc7: %Cpp.long.as.AddWith.impl.Op.type.43d = struct_value () [concrete] -// CHECK:STDOUT: %SubWith.type.9eb: type = facet_type <@SubWith, @SubWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %SubWith.impl_witness.a6a: = impl_witness imports.%SubWith.impl_witness_table.c71 [concrete] -// CHECK:STDOUT: %SubWith.facet.629: %SubWith.type.9eb = facet_value %Cpp.long, (%SubWith.impl_witness.a6a) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.af8: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Cpp.long, %SubWith.facet.629) [concrete] -// CHECK:STDOUT: %.942: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.af8, %SubWith.facet.629 [concrete] +// CHECK:STDOUT: %SubWith.type.238: type = facet_type <@SubWith, @SubWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %SubWith.impl_witness.cb8: = impl_witness imports.%SubWith.impl_witness_table.2b1 [concrete] +// CHECK:STDOUT: %SubWith.facet.061: %SubWith.type.238 = facet_value %Cpp.long, (%SubWith.impl_witness.cb8) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.6c7: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Cpp.long, %SubWith.facet.061) [concrete] +// CHECK:STDOUT: %.19a: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.6c7, %SubWith.facet.061 [concrete] // CHECK:STDOUT: %Cpp.long.as.SubWith.impl.Op.type.43d: type = fn_type @Cpp.long.as.SubWith.impl.Op.3 [concrete] // CHECK:STDOUT: %Cpp.long.as.SubWith.impl.Op.cc7: %Cpp.long.as.SubWith.impl.Op.type.43d = struct_value () [concrete] -// CHECK:STDOUT: %MulWith.type.4b2: type = facet_type <@MulWith, @MulWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %MulWith.impl_witness.6fd: = impl_witness imports.%MulWith.impl_witness_table.2cc [concrete] -// CHECK:STDOUT: %MulWith.facet.1d5: %MulWith.type.4b2 = facet_value %Cpp.long, (%MulWith.impl_witness.6fd) [concrete] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.5fb: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Cpp.long, %MulWith.facet.1d5) [concrete] -// CHECK:STDOUT: %.46b: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.5fb, %MulWith.facet.1d5 [concrete] +// CHECK:STDOUT: %MulWith.type.567: type = facet_type <@MulWith, @MulWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %MulWith.impl_witness.cca: = impl_witness imports.%MulWith.impl_witness_table.59d [concrete] +// CHECK:STDOUT: %MulWith.facet.f1b: %MulWith.type.567 = facet_value %Cpp.long, (%MulWith.impl_witness.cca) [concrete] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.762: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Cpp.long, %MulWith.facet.f1b) [concrete] +// CHECK:STDOUT: %.efd: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.762, %MulWith.facet.f1b [concrete] // CHECK:STDOUT: %Cpp.long.as.MulWith.impl.Op.type.43d: type = fn_type @Cpp.long.as.MulWith.impl.Op.3 [concrete] // CHECK:STDOUT: %Cpp.long.as.MulWith.impl.Op.cc7: %Cpp.long.as.MulWith.impl.Op.type.43d = struct_value () [concrete] -// CHECK:STDOUT: %DivWith.type.8f6: type = facet_type <@DivWith, @DivWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %DivWith.impl_witness.49c: = impl_witness imports.%DivWith.impl_witness_table.de3 [concrete] -// CHECK:STDOUT: %DivWith.facet.453: %DivWith.type.8f6 = facet_value %Cpp.long, (%DivWith.impl_witness.49c) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.fd4: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Cpp.long, %DivWith.facet.453) [concrete] -// CHECK:STDOUT: %.8d5: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.fd4, %DivWith.facet.453 [concrete] +// CHECK:STDOUT: %DivWith.type.204: type = facet_type <@DivWith, @DivWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %DivWith.impl_witness.454: = impl_witness imports.%DivWith.impl_witness_table.830 [concrete] +// CHECK:STDOUT: %DivWith.facet.fc1: %DivWith.type.204 = facet_value %Cpp.long, (%DivWith.impl_witness.454) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.08f: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Cpp.long, %DivWith.facet.fc1) [concrete] +// CHECK:STDOUT: %.002: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.08f, %DivWith.facet.fc1 [concrete] // CHECK:STDOUT: %Cpp.long.as.DivWith.impl.Op.type.43d: type = fn_type @Cpp.long.as.DivWith.impl.Op.3 [concrete] // CHECK:STDOUT: %Cpp.long.as.DivWith.impl.Op.cc7: %Cpp.long.as.DivWith.impl.Op.type.43d = struct_value () [concrete] -// CHECK:STDOUT: %ModWith.type.35c: type = facet_type <@ModWith, @ModWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %ModWith.impl_witness.d7f: = impl_witness imports.%ModWith.impl_witness_table.5be [concrete] -// CHECK:STDOUT: %ModWith.facet.a96: %ModWith.type.35c = facet_value %Cpp.long, (%ModWith.impl_witness.d7f) [concrete] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.49d: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Cpp.long, %ModWith.facet.a96) [concrete] -// CHECK:STDOUT: %.d7b: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.49d, %ModWith.facet.a96 [concrete] +// CHECK:STDOUT: %ModWith.type.d81: type = facet_type <@ModWith, @ModWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %ModWith.impl_witness.4d4: = impl_witness imports.%ModWith.impl_witness_table.316 [concrete] +// CHECK:STDOUT: %ModWith.facet.91d: %ModWith.type.d81 = facet_value %Cpp.long, (%ModWith.impl_witness.4d4) [concrete] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.50e: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Cpp.long, %ModWith.facet.91d) [concrete] +// CHECK:STDOUT: %.83d: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.50e, %ModWith.facet.91d [concrete] // CHECK:STDOUT: %Cpp.long.as.ModWith.impl.Op.type.43d: type = fn_type @Cpp.long.as.ModWith.impl.Op.3 [concrete] // CHECK:STDOUT: %Cpp.long.as.ModWith.impl.Op.cc7: %Cpp.long.as.ModWith.impl.Op.type.43d = struct_value () [concrete] // CHECK:STDOUT: } @@ -2477,63 +2477,63 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: .long = constants.%Cpp.long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ade: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.293 = impl_witness_table (%Core.import_ref.ade), @Core.IntLiteral.as.ImplicitAs.impl.ec9 [concrete] -// CHECK:STDOUT: %Core.import_ref.11dd96.1 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63b02.1: %Cpp.long.as.Negate.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.Negate.impl.Op] -// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.11dd96.1, %Core.import_ref.f63b02.1), @Cpp.long.as.Negate.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.11dd96.4 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63b02.2: %Cpp.long.as.AddWith.impl.Op.type.43d = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.AddWith.impl.Op.cc7] -// CHECK:STDOUT: %AddWith.impl_witness_table.56c = impl_witness_table (%Core.import_ref.11dd96.4, %Core.import_ref.f63b02.2), @Cpp.long.as.AddWith.impl.a94 [concrete] -// CHECK:STDOUT: %Core.import_ref.11dd96.7 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63b02.3: %Cpp.long.as.SubWith.impl.Op.type.43d = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.SubWith.impl.Op.cc7] -// CHECK:STDOUT: %SubWith.impl_witness_table.c71 = impl_witness_table (%Core.import_ref.11dd96.7, %Core.import_ref.f63b02.3), @Cpp.long.as.SubWith.impl.35e [concrete] -// CHECK:STDOUT: %Core.import_ref.11dd96.10 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63b02.4: %Cpp.long.as.MulWith.impl.Op.type.43d = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.MulWith.impl.Op.cc7] -// CHECK:STDOUT: %MulWith.impl_witness_table.2cc = impl_witness_table (%Core.import_ref.11dd96.10, %Core.import_ref.f63b02.4), @Cpp.long.as.MulWith.impl.6fa [concrete] -// CHECK:STDOUT: %Core.import_ref.11dd96.13 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63b02.5: %Cpp.long.as.DivWith.impl.Op.type.43d = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.DivWith.impl.Op.cc7] -// CHECK:STDOUT: %DivWith.impl_witness_table.de3 = impl_witness_table (%Core.import_ref.11dd96.13, %Core.import_ref.f63b02.5), @Cpp.long.as.DivWith.impl.42b [concrete] -// CHECK:STDOUT: %Core.import_ref.11dd96.16 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.f63b02.6: %Cpp.long.as.ModWith.impl.Op.type.43d = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.ModWith.impl.Op.cc7] -// CHECK:STDOUT: %ModWith.impl_witness_table.5be = impl_witness_table (%Core.import_ref.11dd96.16, %Core.import_ref.f63b02.6), @Cpp.long.as.ModWith.impl.d0a [concrete] +// CHECK:STDOUT: %Core.import_ref.06c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.635 = impl_witness_table (%Core.import_ref.06c), @Core.IntLiteral.as.ImplicitAs.impl.94b [concrete] +// CHECK:STDOUT: %Core.import_ref.099f8c.1 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.9c3475.1: %Cpp.long.as.Negate.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.Negate.impl.Op] +// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.099f8c.1, %Core.import_ref.9c3475.1), @Cpp.long.as.Negate.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.099f8c.4 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.9c3475.2: %Cpp.long.as.AddWith.impl.Op.type.43d = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.AddWith.impl.Op.cc7] +// CHECK:STDOUT: %AddWith.impl_witness_table.1a4 = impl_witness_table (%Core.import_ref.099f8c.4, %Core.import_ref.9c3475.2), @Cpp.long.as.AddWith.impl.458 [concrete] +// CHECK:STDOUT: %Core.import_ref.099f8c.7 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.9c3475.3: %Cpp.long.as.SubWith.impl.Op.type.43d = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.SubWith.impl.Op.cc7] +// CHECK:STDOUT: %SubWith.impl_witness_table.2b1 = impl_witness_table (%Core.import_ref.099f8c.7, %Core.import_ref.9c3475.3), @Cpp.long.as.SubWith.impl.22e [concrete] +// CHECK:STDOUT: %Core.import_ref.099f8c.10 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.9c3475.4: %Cpp.long.as.MulWith.impl.Op.type.43d = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.MulWith.impl.Op.cc7] +// CHECK:STDOUT: %MulWith.impl_witness_table.59d = impl_witness_table (%Core.import_ref.099f8c.10, %Core.import_ref.9c3475.4), @Cpp.long.as.MulWith.impl.620 [concrete] +// CHECK:STDOUT: %Core.import_ref.099f8c.13 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.9c3475.5: %Cpp.long.as.DivWith.impl.Op.type.43d = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.DivWith.impl.Op.cc7] +// CHECK:STDOUT: %DivWith.impl_witness_table.830 = impl_witness_table (%Core.import_ref.099f8c.13, %Core.import_ref.9c3475.5), @Cpp.long.as.DivWith.impl.a64 [concrete] +// CHECK:STDOUT: %Core.import_ref.099f8c.16 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.9c3475.6: %Cpp.long.as.ModWith.impl.Op.type.43d = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.ModWith.impl.Op.cc7] +// CHECK:STDOUT: %ModWith.impl_witness_table.316 = impl_witness_table (%Core.import_ref.099f8c.16, %Core.import_ref.9c3475.6), @Cpp.long.as.ModWith.impl.c53 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ArithmeticHomogeneousLong() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.83e = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.25e = value_binding_pattern x [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc8_13: type = splice_block %long.ref.loc8 [concrete = constants.%Cpp.long] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %long.ref.loc8: type = name_ref long, constants.%Cpp.long [concrete = constants.%Cpp.long] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc8: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc8: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc8: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc8_21.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc8_21.2: %Cpp.long = converted %int_1.loc8, %.loc8_21.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc8_21.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc8_21.2: %Cpp.long = converted %int_1.loc8, %.loc8_21.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %x: %Cpp.long = value_binding x, %.loc8_21.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.83e = value_binding_pattern y [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.25e = value_binding_pattern y [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_13: type = splice_block %long.ref.loc9 [concrete = constants.%Cpp.long] { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %long.ref.loc9: type = name_ref long, constants.%Cpp.long [concrete = constants.%Cpp.long] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc9: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc9: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc9: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc9_21.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc9_21.2: %Cpp.long = converted %int_1.loc9, %.loc9_21.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc9_21.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc9_21.2: %Cpp.long = converted %int_1.loc9, %.loc9_21.1 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: %y: %Cpp.long = value_binding y, %.loc9_21.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.83e = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.25e = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.ref.loc11: %Cpp.long = name_ref x, %x -// CHECK:STDOUT: %impl.elem1.loc11: %.597 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Cpp.long.as.Negate.impl.Op] +// CHECK:STDOUT: %impl.elem1.loc11: %.96f = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Cpp.long.as.Negate.impl.Op] // CHECK:STDOUT: %bound_method.loc11: = bound_method %x.ref.loc11, %impl.elem1.loc11 // CHECK:STDOUT: %Cpp.long.as.Negate.impl.Op.call: init %Cpp.long = call %bound_method.loc11(%x.ref.loc11) // CHECK:STDOUT: %.loc11_20: type = splice_block %long.ref.loc11 [concrete = constants.%Cpp.long] { @@ -2544,11 +2544,11 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc11_28.2: %Cpp.long = converted %Cpp.long.as.Negate.impl.Op.call, %.loc11_28.1 // CHECK:STDOUT: %a: %Cpp.long = value_binding a, %.loc11_28.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.83e = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.25e = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.ref.loc12: %Cpp.long = name_ref x, %x // CHECK:STDOUT: %y.ref.loc12: %Cpp.long = name_ref y, %y -// CHECK:STDOUT: %impl.elem1.loc12: %.ffe = impl_witness_access constants.%AddWith.impl_witness.4d0, element1 [concrete = constants.%Cpp.long.as.AddWith.impl.Op.cc7] +// CHECK:STDOUT: %impl.elem1.loc12: %.b1d = impl_witness_access constants.%AddWith.impl_witness.7cd, element1 [concrete = constants.%Cpp.long.as.AddWith.impl.Op.cc7] // CHECK:STDOUT: %bound_method.loc12: = bound_method %x.ref.loc12, %impl.elem1.loc12 // CHECK:STDOUT: %Cpp.long.as.AddWith.impl.Op.call: init %Cpp.long = call %bound_method.loc12(%x.ref.loc12, %y.ref.loc12) // CHECK:STDOUT: %.loc12_20: type = splice_block %long.ref.loc12 [concrete = constants.%Cpp.long] { @@ -2559,11 +2559,11 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc12_30.2: %Cpp.long = converted %Cpp.long.as.AddWith.impl.Op.call, %.loc12_30.1 // CHECK:STDOUT: %b: %Cpp.long = value_binding b, %.loc12_30.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.83e = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.25e = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.ref.loc13: %Cpp.long = name_ref x, %x // CHECK:STDOUT: %y.ref.loc13: %Cpp.long = name_ref y, %y -// CHECK:STDOUT: %impl.elem1.loc13: %.942 = impl_witness_access constants.%SubWith.impl_witness.a6a, element1 [concrete = constants.%Cpp.long.as.SubWith.impl.Op.cc7] +// CHECK:STDOUT: %impl.elem1.loc13: %.19a = impl_witness_access constants.%SubWith.impl_witness.cb8, element1 [concrete = constants.%Cpp.long.as.SubWith.impl.Op.cc7] // CHECK:STDOUT: %bound_method.loc13: = bound_method %x.ref.loc13, %impl.elem1.loc13 // CHECK:STDOUT: %Cpp.long.as.SubWith.impl.Op.call: init %Cpp.long = call %bound_method.loc13(%x.ref.loc13, %y.ref.loc13) // CHECK:STDOUT: %.loc13_20: type = splice_block %long.ref.loc13 [concrete = constants.%Cpp.long] { @@ -2574,11 +2574,11 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc13_30.2: %Cpp.long = converted %Cpp.long.as.SubWith.impl.Op.call, %.loc13_30.1 // CHECK:STDOUT: %c: %Cpp.long = value_binding c, %.loc13_30.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.83e = value_binding_pattern d [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.25e = value_binding_pattern d [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.ref.loc14: %Cpp.long = name_ref x, %x // CHECK:STDOUT: %y.ref.loc14: %Cpp.long = name_ref y, %y -// CHECK:STDOUT: %impl.elem1.loc14: %.46b = impl_witness_access constants.%MulWith.impl_witness.6fd, element1 [concrete = constants.%Cpp.long.as.MulWith.impl.Op.cc7] +// CHECK:STDOUT: %impl.elem1.loc14: %.efd = impl_witness_access constants.%MulWith.impl_witness.cca, element1 [concrete = constants.%Cpp.long.as.MulWith.impl.Op.cc7] // CHECK:STDOUT: %bound_method.loc14: = bound_method %x.ref.loc14, %impl.elem1.loc14 // CHECK:STDOUT: %Cpp.long.as.MulWith.impl.Op.call: init %Cpp.long = call %bound_method.loc14(%x.ref.loc14, %y.ref.loc14) // CHECK:STDOUT: %.loc14_20: type = splice_block %long.ref.loc14 [concrete = constants.%Cpp.long] { @@ -2589,11 +2589,11 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc14_30.2: %Cpp.long = converted %Cpp.long.as.MulWith.impl.Op.call, %.loc14_30.1 // CHECK:STDOUT: %d: %Cpp.long = value_binding d, %.loc14_30.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %e.patt: %pattern_type.83e = value_binding_pattern e [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.25e = value_binding_pattern e [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.ref.loc15: %Cpp.long = name_ref x, %x // CHECK:STDOUT: %y.ref.loc15: %Cpp.long = name_ref y, %y -// CHECK:STDOUT: %impl.elem1.loc15: %.8d5 = impl_witness_access constants.%DivWith.impl_witness.49c, element1 [concrete = constants.%Cpp.long.as.DivWith.impl.Op.cc7] +// CHECK:STDOUT: %impl.elem1.loc15: %.002 = impl_witness_access constants.%DivWith.impl_witness.454, element1 [concrete = constants.%Cpp.long.as.DivWith.impl.Op.cc7] // CHECK:STDOUT: %bound_method.loc15: = bound_method %x.ref.loc15, %impl.elem1.loc15 // CHECK:STDOUT: %Cpp.long.as.DivWith.impl.Op.call: init %Cpp.long = call %bound_method.loc15(%x.ref.loc15, %y.ref.loc15) // CHECK:STDOUT: %.loc15_20: type = splice_block %long.ref.loc15 [concrete = constants.%Cpp.long] { @@ -2604,11 +2604,11 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc15_30.2: %Cpp.long = converted %Cpp.long.as.DivWith.impl.Op.call, %.loc15_30.1 // CHECK:STDOUT: %e: %Cpp.long = value_binding e, %.loc15_30.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %f.patt: %pattern_type.83e = value_binding_pattern f [concrete] +// CHECK:STDOUT: %f.patt: %pattern_type.25e = value_binding_pattern f [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.ref.loc16: %Cpp.long = name_ref x, %x // CHECK:STDOUT: %y.ref.loc16: %Cpp.long = name_ref y, %y -// CHECK:STDOUT: %impl.elem1.loc16: %.d7b = impl_witness_access constants.%ModWith.impl_witness.d7f, element1 [concrete = constants.%Cpp.long.as.ModWith.impl.Op.cc7] +// CHECK:STDOUT: %impl.elem1.loc16: %.83d = impl_witness_access constants.%ModWith.impl_witness.4d4, element1 [concrete = constants.%Cpp.long.as.ModWith.impl.Op.cc7] // CHECK:STDOUT: %bound_method.loc16: = bound_method %x.ref.loc16, %impl.elem1.loc16 // CHECK:STDOUT: %Cpp.long.as.ModWith.impl.Op.call: init %Cpp.long = call %bound_method.loc16(%x.ref.loc16, %y.ref.loc16) // CHECK:STDOUT: %.loc16_20: type = splice_block %long.ref.loc16 [concrete = constants.%Cpp.long] { @@ -2628,178 +2628,178 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long: type = class_type @Long32 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.83e: type = pattern_type %Cpp.long [concrete] +// CHECK:STDOUT: %pattern_type.25e: type = pattern_type %Cpp.long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6fa: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7eb: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %T.f49: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.ImplicitAs.impl.Convert.type.5ec: type = fn_type @T.as_type.as.ImplicitAs.impl.Convert, @T.as_type.as.ImplicitAs.impl(%T.f49) [symbolic] -// CHECK:STDOUT: %T.as_type.as.ImplicitAs.impl.Convert.921: %T.as_type.as.ImplicitAs.impl.Convert.type.5ec = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e41: = impl_witness imports.%ImplicitAs.impl_witness_table.293 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.c09: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e41) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.93b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %.f84: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.93b, %ImplicitAs.facet.c09 [concrete] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.ImplicitAs.impl.Convert.type.6c4: type = fn_type @T.as_type.as.ImplicitAs.impl.Convert, @T.as_type.as.ImplicitAs.impl(%T.f84) [symbolic] +// CHECK:STDOUT: %T.as_type.as.ImplicitAs.impl.Convert.61d: %T.as_type.as.ImplicitAs.impl.Convert.type.6c4 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.e27: = impl_witness imports.%ImplicitAs.impl_witness_table.635 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.b30: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e27) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.7dc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %.b13: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.7dc, %ImplicitAs.facet.b30 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %int_1.3d0: %Cpp.long = int_value 1 [concrete] -// CHECK:STDOUT: %AddAssignWith.type.ecc: type = facet_type <@AddAssignWith, @AddAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %U.887: %ImplicitAs.type.6fa = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.c37e49.1: %Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.c37e49.2: %Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.553: = impl_witness imports.%Copy.impl_witness_table.256 [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Cpp.long, (%Copy.impl_witness.553) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.998: = impl_witness imports.%ImplicitAs.impl_witness_table.c42, @T.as_type.as.ImplicitAs.impl(%Copy.facet) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.3e9: %ImplicitAs.type.6fa = facet_value %Cpp.long, (%ImplicitAs.impl_witness.998) [concrete] -// CHECK:STDOUT: %AddAssignWith.impl_witness.830: = impl_witness imports.%AddAssignWith.impl_witness_table.d4d, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.ba770b.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.ce7855.1: %Cpp.long.as.AddAssignWith.impl.Op.type.ba770b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.ba770b.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.ce7855.2: %Cpp.long.as.AddAssignWith.impl.Op.type.ba770b.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet.fc6: %AddAssignWith.type.ecc = facet_value %Cpp.long, (%AddAssignWith.impl_witness.830) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.874: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Cpp.long, %AddAssignWith.facet.fc6) [concrete] -// CHECK:STDOUT: %.5f0: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.874, %AddAssignWith.facet.fc6 [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.544ffe.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.ce7855.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.544ffe.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.ce7855.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %SubAssignWith.type.b0c: type = facet_type <@SubAssignWith, @SubAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.e6fddb.1: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.1, @Cpp.long.as.SubAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.d98f7d.1: %Cpp.long.as.SubAssignWith.impl.Op.type.e6fddb.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.e6fddb.2: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.2, @Cpp.long.as.SubAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.d98f7d.2: %Cpp.long.as.SubAssignWith.impl.Op.type.e6fddb.2 = struct_value () [symbolic] -// CHECK:STDOUT: %SubAssignWith.impl_witness.d79: = impl_witness imports.%SubAssignWith.impl_witness_table.c70, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.19fb65.1: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.2, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.498a54.1: %Cpp.long.as.SubAssignWith.impl.Op.type.19fb65.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.19fb65.2: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.1, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.498a54.2: %Cpp.long.as.SubAssignWith.impl.Op.type.19fb65.2 = struct_value () [concrete] -// CHECK:STDOUT: %SubAssignWith.facet.d27: %SubAssignWith.type.b0c = facet_value %Cpp.long, (%SubAssignWith.impl_witness.d79) [concrete] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.ebd: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Cpp.long, %SubAssignWith.facet.d27) [concrete] -// CHECK:STDOUT: %.700: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.ebd, %SubAssignWith.facet.d27 [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn.e00b17.1: = specific_function %Cpp.long.as.SubAssignWith.impl.Op.498a54.2, @Cpp.long.as.SubAssignWith.impl.Op.1(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn.e00b17.2: = specific_function %Cpp.long.as.SubAssignWith.impl.Op.498a54.1, @Cpp.long.as.SubAssignWith.impl.Op.2(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %MulAssignWith.type.6f5: type = facet_type <@MulAssignWith, @MulAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.9be123.1: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.1, @Cpp.long.as.MulAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.4d4f44.1: %Cpp.long.as.MulAssignWith.impl.Op.type.9be123.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.9be123.2: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.2, @Cpp.long.as.MulAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.4d4f44.2: %Cpp.long.as.MulAssignWith.impl.Op.type.9be123.2 = struct_value () [symbolic] -// CHECK:STDOUT: %MulAssignWith.impl_witness.e21: = impl_witness imports.%MulAssignWith.impl_witness_table.511, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.23c32e.1: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.2, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.9be979.1: %Cpp.long.as.MulAssignWith.impl.Op.type.23c32e.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.23c32e.2: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.1, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.9be979.2: %Cpp.long.as.MulAssignWith.impl.Op.type.23c32e.2 = struct_value () [concrete] -// CHECK:STDOUT: %MulAssignWith.facet.457: %MulAssignWith.type.6f5 = facet_value %Cpp.long, (%MulAssignWith.impl_witness.e21) [concrete] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.c2c: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Cpp.long, %MulAssignWith.facet.457) [concrete] -// CHECK:STDOUT: %.756: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.c2c, %MulAssignWith.facet.457 [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn.6c2d47.1: = specific_function %Cpp.long.as.MulAssignWith.impl.Op.9be979.2, @Cpp.long.as.MulAssignWith.impl.Op.1(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn.6c2d47.2: = specific_function %Cpp.long.as.MulAssignWith.impl.Op.9be979.1, @Cpp.long.as.MulAssignWith.impl.Op.2(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %DivAssignWith.type.9e4: type = facet_type <@DivAssignWith, @DivAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.109ac5.1: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.1, @Cpp.long.as.DivAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.b4447c.1: %Cpp.long.as.DivAssignWith.impl.Op.type.109ac5.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.109ac5.2: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.2, @Cpp.long.as.DivAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.b4447c.2: %Cpp.long.as.DivAssignWith.impl.Op.type.109ac5.2 = struct_value () [symbolic] -// CHECK:STDOUT: %DivAssignWith.impl_witness.9e8: = impl_witness imports.%DivAssignWith.impl_witness_table.b74, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.a9acbb.1: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.2, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.60ccc0.1: %Cpp.long.as.DivAssignWith.impl.Op.type.a9acbb.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.a9acbb.2: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.1, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.60ccc0.2: %Cpp.long.as.DivAssignWith.impl.Op.type.a9acbb.2 = struct_value () [concrete] -// CHECK:STDOUT: %DivAssignWith.facet.810: %DivAssignWith.type.9e4 = facet_value %Cpp.long, (%DivAssignWith.impl_witness.9e8) [concrete] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.53b: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Cpp.long, %DivAssignWith.facet.810) [concrete] -// CHECK:STDOUT: %.b84: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.53b, %DivAssignWith.facet.810 [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn.04e150.1: = specific_function %Cpp.long.as.DivAssignWith.impl.Op.60ccc0.2, @Cpp.long.as.DivAssignWith.impl.Op.1(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn.04e150.2: = specific_function %Cpp.long.as.DivAssignWith.impl.Op.60ccc0.1, @Cpp.long.as.DivAssignWith.impl.Op.2(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %ModAssignWith.type.20c: type = facet_type <@ModAssignWith, @ModAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.e961bf.1: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.1, @Cpp.long.as.ModAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.ff452e.1: %Cpp.long.as.ModAssignWith.impl.Op.type.e961bf.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.e961bf.2: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.2, @Cpp.long.as.ModAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.ff452e.2: %Cpp.long.as.ModAssignWith.impl.Op.type.e961bf.2 = struct_value () [symbolic] -// CHECK:STDOUT: %ModAssignWith.impl_witness.574: = impl_witness imports.%ModAssignWith.impl_witness_table.fb8, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.837c3c.1: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.2, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.401e7e.1: %Cpp.long.as.ModAssignWith.impl.Op.type.837c3c.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.837c3c.2: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.1, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.401e7e.2: %Cpp.long.as.ModAssignWith.impl.Op.type.837c3c.2 = struct_value () [concrete] -// CHECK:STDOUT: %ModAssignWith.facet.d6b: %ModAssignWith.type.20c = facet_value %Cpp.long, (%ModAssignWith.impl_witness.574) [concrete] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.948: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Cpp.long, %ModAssignWith.facet.d6b) [concrete] -// CHECK:STDOUT: %.e3a: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.948, %ModAssignWith.facet.d6b [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn.cb024b.1: = specific_function %Cpp.long.as.ModAssignWith.impl.Op.401e7e.2, @Cpp.long.as.ModAssignWith.impl.Op.1(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn.cb024b.2: = specific_function %Cpp.long.as.ModAssignWith.impl.Op.401e7e.1, @Cpp.long.as.ModAssignWith.impl.Op.2(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %BitAndAssignWith.type.0cc: type = facet_type <@BitAndAssignWith, @BitAndAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.f954e6.1: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.1, @Cpp.long.as.BitAndAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.b72f56.1: %Cpp.long.as.BitAndAssignWith.impl.Op.type.f954e6.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.f954e6.2: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.2, @Cpp.long.as.BitAndAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.b72f56.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.f954e6.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitAndAssignWith.impl_witness.32b: = impl_witness imports.%BitAndAssignWith.impl_witness_table.38e, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.f1429d.1: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.2, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.efe73c.1: %Cpp.long.as.BitAndAssignWith.impl.Op.type.f1429d.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.f1429d.2: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.1, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.efe73c.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.f1429d.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndAssignWith.facet.c27: %BitAndAssignWith.type.0cc = facet_value %Cpp.long, (%BitAndAssignWith.impl_witness.32b) [concrete] -// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.3d7: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%Cpp.long, %BitAndAssignWith.facet.c27) [concrete] -// CHECK:STDOUT: %.521: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.3d7, %BitAndAssignWith.facet.c27 [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.bd1e6a.1: = specific_function %Cpp.long.as.BitAndAssignWith.impl.Op.efe73c.2, @Cpp.long.as.BitAndAssignWith.impl.Op.1(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.bd1e6a.2: = specific_function %Cpp.long.as.BitAndAssignWith.impl.Op.efe73c.1, @Cpp.long.as.BitAndAssignWith.impl.Op.2(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %BitOrAssignWith.type.d61: type = facet_type <@BitOrAssignWith, @BitOrAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.186a1d.1: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.1, @Cpp.long.as.BitOrAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.169685.1: %Cpp.long.as.BitOrAssignWith.impl.Op.type.186a1d.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.186a1d.2: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.2, @Cpp.long.as.BitOrAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.169685.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.186a1d.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitOrAssignWith.impl_witness.a4d: = impl_witness imports.%BitOrAssignWith.impl_witness_table.033, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.fbf7ed.1: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.2, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.732095.1: %Cpp.long.as.BitOrAssignWith.impl.Op.type.fbf7ed.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.fbf7ed.2: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.1, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.732095.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.fbf7ed.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitOrAssignWith.facet.03e: %BitOrAssignWith.type.d61 = facet_value %Cpp.long, (%BitOrAssignWith.impl_witness.a4d) [concrete] -// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.964: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%Cpp.long, %BitOrAssignWith.facet.03e) [concrete] -// CHECK:STDOUT: %.7dc: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.964, %BitOrAssignWith.facet.03e [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.67bf91.1: = specific_function %Cpp.long.as.BitOrAssignWith.impl.Op.732095.2, @Cpp.long.as.BitOrAssignWith.impl.Op.1(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.67bf91.2: = specific_function %Cpp.long.as.BitOrAssignWith.impl.Op.732095.1, @Cpp.long.as.BitOrAssignWith.impl.Op.2(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %BitXorAssignWith.type.f85: type = facet_type <@BitXorAssignWith, @BitXorAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.cdf2c9.1: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.1, @Cpp.long.as.BitXorAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.583c20.1: %Cpp.long.as.BitXorAssignWith.impl.Op.type.cdf2c9.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.cdf2c9.2: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.2, @Cpp.long.as.BitXorAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.583c20.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.cdf2c9.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitXorAssignWith.impl_witness.07c: = impl_witness imports.%BitXorAssignWith.impl_witness_table.443, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6a0f8a.1: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.2, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.9bad15.1: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6a0f8a.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6a0f8a.2: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.1, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.9bad15.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6a0f8a.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitXorAssignWith.facet.b38: %BitXorAssignWith.type.f85 = facet_value %Cpp.long, (%BitXorAssignWith.impl_witness.07c) [concrete] -// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.959: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%Cpp.long, %BitXorAssignWith.facet.b38) [concrete] -// CHECK:STDOUT: %.9c9: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.959, %BitXorAssignWith.facet.b38 [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.db7227.1: = specific_function %Cpp.long.as.BitXorAssignWith.impl.Op.9bad15.2, @Cpp.long.as.BitXorAssignWith.impl.Op.1(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.db7227.2: = specific_function %Cpp.long.as.BitXorAssignWith.impl.Op.9bad15.1, @Cpp.long.as.BitXorAssignWith.impl.Op.2(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.type.cb1: type = facet_type <@LeftShiftAssignWith, @LeftShiftAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.50a853.1: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long.as.LeftShiftAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.2764b8.1: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.50a853.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.50a853.2: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long.as.LeftShiftAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.2764b8.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.50a853.2 = struct_value () [symbolic] -// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness.695: = impl_witness imports.%LeftShiftAssignWith.impl_witness_table.89e, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.809b36.1: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.e1af3f.1: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.809b36.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.809b36.2: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.e1af3f.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.809b36.2 = struct_value () [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.facet.2ff: %LeftShiftAssignWith.type.cb1 = facet_value %Cpp.long, (%LeftShiftAssignWith.impl_witness.695) [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.ccd: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%Cpp.long, %LeftShiftAssignWith.facet.2ff) [concrete] -// CHECK:STDOUT: %.55f: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.ccd, %LeftShiftAssignWith.facet.2ff [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.176c12.1: = specific_function %Cpp.long.as.LeftShiftAssignWith.impl.Op.e1af3f.2, @Cpp.long.as.LeftShiftAssignWith.impl.Op.1(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.176c12.2: = specific_function %Cpp.long.as.LeftShiftAssignWith.impl.Op.e1af3f.1, @Cpp.long.as.LeftShiftAssignWith.impl.Op.2(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.type.eeb: type = facet_type <@RightShiftAssignWith, @RightShiftAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.053d7a.1: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long.as.RightShiftAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.723f9d.1: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.053d7a.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.053d7a.2: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long.as.RightShiftAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.723f9d.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.053d7a.2 = struct_value () [symbolic] -// CHECK:STDOUT: %RightShiftAssignWith.impl_witness.52b: = impl_witness imports.%RightShiftAssignWith.impl_witness_table.eba, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.7abe8a.1: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.d21be7.1: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.7abe8a.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.7abe8a.2: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.d21be7.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.7abe8a.2 = struct_value () [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.facet.a7c: %RightShiftAssignWith.type.eeb = facet_value %Cpp.long, (%RightShiftAssignWith.impl_witness.52b) [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.de5: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%Cpp.long, %RightShiftAssignWith.facet.a7c) [concrete] -// CHECK:STDOUT: %.9cb: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.de5, %RightShiftAssignWith.facet.a7c [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.576b1b.1: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.d21be7.2, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.576b1b.2: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.d21be7.1, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.3e9) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] +// CHECK:STDOUT: %int_1.9ce: %Cpp.long = int_value 1 [concrete] +// CHECK:STDOUT: %AddAssignWith.type.a46: type = facet_type <@AddAssignWith, @AddAssignWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %U.315: %ImplicitAs.type.7eb = symbolic_binding U, 0 [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.d1bf47.1: %Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.d1bf47.2: %Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.fc57: = impl_witness imports.%Copy.impl_witness_table.210 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Cpp.long, (%Copy.impl_witness.fc57) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a9b: = impl_witness imports.%ImplicitAs.impl_witness_table.5b9, @T.as_type.as.ImplicitAs.impl(%Copy.facet) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.7ac: %ImplicitAs.type.7eb = facet_value %Cpp.long, (%ImplicitAs.impl_witness.a9b) [concrete] +// CHECK:STDOUT: %AddAssignWith.impl_witness.515: = impl_witness imports.%AddAssignWith.impl_witness_table.864, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.3f3409.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.3976e1.1: %Cpp.long.as.AddAssignWith.impl.Op.type.3f3409.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.3f3409.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.3976e1.2: %Cpp.long.as.AddAssignWith.impl.Op.type.3f3409.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet.8c2: %AddAssignWith.type.a46 = facet_value %Cpp.long, (%AddAssignWith.impl_witness.515) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.900: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Cpp.long, %AddAssignWith.facet.8c2) [concrete] +// CHECK:STDOUT: %.705: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.900, %AddAssignWith.facet.8c2 [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.42c8d0.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.3976e1.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.42c8d0.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.3976e1.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %SubAssignWith.type.1e0: type = facet_type <@SubAssignWith, @SubAssignWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.f4b2d1.1: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.1, @Cpp.long.as.SubAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.5a5f49.1: %Cpp.long.as.SubAssignWith.impl.Op.type.f4b2d1.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.f4b2d1.2: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.2, @Cpp.long.as.SubAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.5a5f49.2: %Cpp.long.as.SubAssignWith.impl.Op.type.f4b2d1.2 = struct_value () [symbolic] +// CHECK:STDOUT: %SubAssignWith.impl_witness.6fd: = impl_witness imports.%SubAssignWith.impl_witness_table.b60, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.2438e2.1: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.2, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.b9d526.1: %Cpp.long.as.SubAssignWith.impl.Op.type.2438e2.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.2438e2.2: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.1, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.b9d526.2: %Cpp.long.as.SubAssignWith.impl.Op.type.2438e2.2 = struct_value () [concrete] +// CHECK:STDOUT: %SubAssignWith.facet.390: %SubAssignWith.type.1e0 = facet_value %Cpp.long, (%SubAssignWith.impl_witness.6fd) [concrete] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.1b6: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Cpp.long, %SubAssignWith.facet.390) [concrete] +// CHECK:STDOUT: %.0c3: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.1b6, %SubAssignWith.facet.390 [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn.cf7f25.1: = specific_function %Cpp.long.as.SubAssignWith.impl.Op.b9d526.2, @Cpp.long.as.SubAssignWith.impl.Op.1(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn.cf7f25.2: = specific_function %Cpp.long.as.SubAssignWith.impl.Op.b9d526.1, @Cpp.long.as.SubAssignWith.impl.Op.2(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %MulAssignWith.type.59a: type = facet_type <@MulAssignWith, @MulAssignWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.b2e99c.1: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.1, @Cpp.long.as.MulAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.ad1d2e.1: %Cpp.long.as.MulAssignWith.impl.Op.type.b2e99c.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.b2e99c.2: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.2, @Cpp.long.as.MulAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.ad1d2e.2: %Cpp.long.as.MulAssignWith.impl.Op.type.b2e99c.2 = struct_value () [symbolic] +// CHECK:STDOUT: %MulAssignWith.impl_witness.a8e: = impl_witness imports.%MulAssignWith.impl_witness_table.9fc, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.58dc2b.1: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.2, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.e55b21.1: %Cpp.long.as.MulAssignWith.impl.Op.type.58dc2b.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.58dc2b.2: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.1, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.e55b21.2: %Cpp.long.as.MulAssignWith.impl.Op.type.58dc2b.2 = struct_value () [concrete] +// CHECK:STDOUT: %MulAssignWith.facet.d55: %MulAssignWith.type.59a = facet_value %Cpp.long, (%MulAssignWith.impl_witness.a8e) [concrete] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.b00: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Cpp.long, %MulAssignWith.facet.d55) [concrete] +// CHECK:STDOUT: %.dcc: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.b00, %MulAssignWith.facet.d55 [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn.4bcff6.1: = specific_function %Cpp.long.as.MulAssignWith.impl.Op.e55b21.2, @Cpp.long.as.MulAssignWith.impl.Op.1(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn.4bcff6.2: = specific_function %Cpp.long.as.MulAssignWith.impl.Op.e55b21.1, @Cpp.long.as.MulAssignWith.impl.Op.2(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %DivAssignWith.type.27a: type = facet_type <@DivAssignWith, @DivAssignWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.79510c.1: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.1, @Cpp.long.as.DivAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.f795df.1: %Cpp.long.as.DivAssignWith.impl.Op.type.79510c.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.79510c.2: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.2, @Cpp.long.as.DivAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.f795df.2: %Cpp.long.as.DivAssignWith.impl.Op.type.79510c.2 = struct_value () [symbolic] +// CHECK:STDOUT: %DivAssignWith.impl_witness.27b: = impl_witness imports.%DivAssignWith.impl_witness_table.cf6, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.d65fb4.1: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.2, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.e2cc58.1: %Cpp.long.as.DivAssignWith.impl.Op.type.d65fb4.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.d65fb4.2: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.1, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.e2cc58.2: %Cpp.long.as.DivAssignWith.impl.Op.type.d65fb4.2 = struct_value () [concrete] +// CHECK:STDOUT: %DivAssignWith.facet.959: %DivAssignWith.type.27a = facet_value %Cpp.long, (%DivAssignWith.impl_witness.27b) [concrete] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.890: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Cpp.long, %DivAssignWith.facet.959) [concrete] +// CHECK:STDOUT: %.85d: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.890, %DivAssignWith.facet.959 [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn.3d06eb.1: = specific_function %Cpp.long.as.DivAssignWith.impl.Op.e2cc58.2, @Cpp.long.as.DivAssignWith.impl.Op.1(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn.3d06eb.2: = specific_function %Cpp.long.as.DivAssignWith.impl.Op.e2cc58.1, @Cpp.long.as.DivAssignWith.impl.Op.2(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %ModAssignWith.type.f01: type = facet_type <@ModAssignWith, @ModAssignWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.d0560a.1: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.1, @Cpp.long.as.ModAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.598f91.1: %Cpp.long.as.ModAssignWith.impl.Op.type.d0560a.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.d0560a.2: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.2, @Cpp.long.as.ModAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.598f91.2: %Cpp.long.as.ModAssignWith.impl.Op.type.d0560a.2 = struct_value () [symbolic] +// CHECK:STDOUT: %ModAssignWith.impl_witness.e1a: = impl_witness imports.%ModAssignWith.impl_witness_table.241, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.cd191a.1: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.2, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.11d0fb.1: %Cpp.long.as.ModAssignWith.impl.Op.type.cd191a.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.cd191a.2: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.1, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.11d0fb.2: %Cpp.long.as.ModAssignWith.impl.Op.type.cd191a.2 = struct_value () [concrete] +// CHECK:STDOUT: %ModAssignWith.facet.398: %ModAssignWith.type.f01 = facet_value %Cpp.long, (%ModAssignWith.impl_witness.e1a) [concrete] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.101: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Cpp.long, %ModAssignWith.facet.398) [concrete] +// CHECK:STDOUT: %.923: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.101, %ModAssignWith.facet.398 [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn.55dd89.1: = specific_function %Cpp.long.as.ModAssignWith.impl.Op.11d0fb.2, @Cpp.long.as.ModAssignWith.impl.Op.1(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn.55dd89.2: = specific_function %Cpp.long.as.ModAssignWith.impl.Op.11d0fb.1, @Cpp.long.as.ModAssignWith.impl.Op.2(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %BitAndAssignWith.type.648: type = facet_type <@BitAndAssignWith, @BitAndAssignWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.b5ab33.1: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.1, @Cpp.long.as.BitAndAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.3e6759.1: %Cpp.long.as.BitAndAssignWith.impl.Op.type.b5ab33.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.b5ab33.2: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.2, @Cpp.long.as.BitAndAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.3e6759.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.b5ab33.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitAndAssignWith.impl_witness.906: = impl_witness imports.%BitAndAssignWith.impl_witness_table.cc2, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.e0e6c3.1: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.2, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.86fa41.1: %Cpp.long.as.BitAndAssignWith.impl.Op.type.e0e6c3.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.e0e6c3.2: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.1, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.86fa41.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.e0e6c3.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitAndAssignWith.facet.159: %BitAndAssignWith.type.648 = facet_value %Cpp.long, (%BitAndAssignWith.impl_witness.906) [concrete] +// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.0f8: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%Cpp.long, %BitAndAssignWith.facet.159) [concrete] +// CHECK:STDOUT: %.a45: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.0f8, %BitAndAssignWith.facet.159 [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.022b9e.1: = specific_function %Cpp.long.as.BitAndAssignWith.impl.Op.86fa41.2, @Cpp.long.as.BitAndAssignWith.impl.Op.1(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.022b9e.2: = specific_function %Cpp.long.as.BitAndAssignWith.impl.Op.86fa41.1, @Cpp.long.as.BitAndAssignWith.impl.Op.2(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %BitOrAssignWith.type.8a5: type = facet_type <@BitOrAssignWith, @BitOrAssignWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.570e47.1: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.1, @Cpp.long.as.BitOrAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.fdf3e1.1: %Cpp.long.as.BitOrAssignWith.impl.Op.type.570e47.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.570e47.2: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.2, @Cpp.long.as.BitOrAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.fdf3e1.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.570e47.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitOrAssignWith.impl_witness.ecb: = impl_witness imports.%BitOrAssignWith.impl_witness_table.29c, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.70ac7f.1: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.2, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.737b02.1: %Cpp.long.as.BitOrAssignWith.impl.Op.type.70ac7f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.70ac7f.2: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.1, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.737b02.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.70ac7f.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitOrAssignWith.facet.735: %BitOrAssignWith.type.8a5 = facet_value %Cpp.long, (%BitOrAssignWith.impl_witness.ecb) [concrete] +// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.ce3: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%Cpp.long, %BitOrAssignWith.facet.735) [concrete] +// CHECK:STDOUT: %.871: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.ce3, %BitOrAssignWith.facet.735 [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.6acabf.1: = specific_function %Cpp.long.as.BitOrAssignWith.impl.Op.737b02.2, @Cpp.long.as.BitOrAssignWith.impl.Op.1(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.6acabf.2: = specific_function %Cpp.long.as.BitOrAssignWith.impl.Op.737b02.1, @Cpp.long.as.BitOrAssignWith.impl.Op.2(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %BitXorAssignWith.type.efe: type = facet_type <@BitXorAssignWith, @BitXorAssignWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.af9891.1: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.1, @Cpp.long.as.BitXorAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.b5d70a.1: %Cpp.long.as.BitXorAssignWith.impl.Op.type.af9891.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.af9891.2: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.2, @Cpp.long.as.BitXorAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.b5d70a.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.af9891.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitXorAssignWith.impl_witness.360: = impl_witness imports.%BitXorAssignWith.impl_witness_table.910, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.902397.1: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.2, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.067369.1: %Cpp.long.as.BitXorAssignWith.impl.Op.type.902397.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.902397.2: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.1, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.067369.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.902397.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitXorAssignWith.facet.8ae: %BitXorAssignWith.type.efe = facet_value %Cpp.long, (%BitXorAssignWith.impl_witness.360) [concrete] +// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.375: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%Cpp.long, %BitXorAssignWith.facet.8ae) [concrete] +// CHECK:STDOUT: %.939: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.375, %BitXorAssignWith.facet.8ae [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.4fedc8.1: = specific_function %Cpp.long.as.BitXorAssignWith.impl.Op.067369.2, @Cpp.long.as.BitXorAssignWith.impl.Op.1(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.4fedc8.2: = specific_function %Cpp.long.as.BitXorAssignWith.impl.Op.067369.1, @Cpp.long.as.BitXorAssignWith.impl.Op.2(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.type.428: type = facet_type <@LeftShiftAssignWith, @LeftShiftAssignWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.075dc9.1: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long.as.LeftShiftAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.4b382e.1: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.075dc9.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.075dc9.2: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long.as.LeftShiftAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.4b382e.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.075dc9.2 = struct_value () [symbolic] +// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness.153: = impl_witness imports.%LeftShiftAssignWith.impl_witness_table.003, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.71c508.1: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.ec443b.1: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.71c508.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.71c508.2: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.ec443b.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.71c508.2 = struct_value () [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.facet.b88: %LeftShiftAssignWith.type.428 = facet_value %Cpp.long, (%LeftShiftAssignWith.impl_witness.153) [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.e39: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%Cpp.long, %LeftShiftAssignWith.facet.b88) [concrete] +// CHECK:STDOUT: %.1be: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.e39, %LeftShiftAssignWith.facet.b88 [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.9c9ee2.1: = specific_function %Cpp.long.as.LeftShiftAssignWith.impl.Op.ec443b.2, @Cpp.long.as.LeftShiftAssignWith.impl.Op.1(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.9c9ee2.2: = specific_function %Cpp.long.as.LeftShiftAssignWith.impl.Op.ec443b.1, @Cpp.long.as.LeftShiftAssignWith.impl.Op.2(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.type.6ac: type = facet_type <@RightShiftAssignWith, @RightShiftAssignWith(%Cpp.long)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.e450db.1: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long.as.RightShiftAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.27a493.1: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.e450db.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.e450db.2: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long.as.RightShiftAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.27a493.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.e450db.2 = struct_value () [symbolic] +// CHECK:STDOUT: %RightShiftAssignWith.impl_witness.531: = impl_witness imports.%RightShiftAssignWith.impl_witness_table.546, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.253402.1: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.108e17.1: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.253402.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.253402.2: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.108e17.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.253402.2 = struct_value () [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.facet.c66: %RightShiftAssignWith.type.6ac = facet_value %Cpp.long, (%RightShiftAssignWith.impl_witness.531) [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.75e: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%Cpp.long, %RightShiftAssignWith.facet.c66) [concrete] +// CHECK:STDOUT: %.7cc: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.75e, %RightShiftAssignWith.facet.c66 [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.5a2726.1: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.108e17.2, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.7ac) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.5a2726.2: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.108e17.1, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.7ac) [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: %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: } @@ -2809,56 +2809,56 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: .long = constants.%Cpp.long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.3b1: @T.as_type.as.ImplicitAs.impl.%T.as_type.as.ImplicitAs.impl.Convert.type (%T.as_type.as.ImplicitAs.impl.Convert.type.5ec) = import_ref Core//prelude/types/cpp/int, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.ImplicitAs.impl.%T.as_type.as.ImplicitAs.impl.Convert (constants.%T.as_type.as.ImplicitAs.impl.Convert.921)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.c42 = impl_witness_table (%Core.import_ref.3b1), @T.as_type.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.ade: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.293 = impl_witness_table (%Core.import_ref.ade), @Core.IntLiteral.as.ImplicitAs.impl.ec9 [concrete] -// CHECK:STDOUT: %Core.import_ref.1d2: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long.as.AddAssignWith.impl.Op.c37e49.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table.d4d = impl_witness_table (%Core.import_ref.1d2), @Cpp.long.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.e4e: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.c37e49.2)] -// CHECK:STDOUT: %Core.import_ref.f63: %Cpp.long.as.Copy.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.256 = impl_witness_table (%Core.import_ref.f63), @Cpp.long.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.1bc: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long.as.SubAssignWith.impl.Op.type.e6fddb.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long.as.SubAssignWith.impl.Op.d98f7d.1)] -// CHECK:STDOUT: %SubAssignWith.impl_witness_table.c70 = impl_witness_table (%Core.import_ref.1bc), @Cpp.long.as.SubAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.792: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long.as.SubAssignWith.impl.Op.type.e6fddb.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long.as.SubAssignWith.impl.Op.d98f7d.2)] -// CHECK:STDOUT: %Core.import_ref.ae2: @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.type.2 (%Cpp.long.as.MulAssignWith.impl.Op.type.9be123.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.2 (constants.%Cpp.long.as.MulAssignWith.impl.Op.4d4f44.1)] -// CHECK:STDOUT: %MulAssignWith.impl_witness_table.511 = impl_witness_table (%Core.import_ref.ae2), @Cpp.long.as.MulAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.b40: @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.type.1 (%Cpp.long.as.MulAssignWith.impl.Op.type.9be123.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.1 (constants.%Cpp.long.as.MulAssignWith.impl.Op.4d4f44.2)] -// CHECK:STDOUT: %Core.import_ref.49d: @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.type.2 (%Cpp.long.as.DivAssignWith.impl.Op.type.109ac5.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.2 (constants.%Cpp.long.as.DivAssignWith.impl.Op.b4447c.1)] -// CHECK:STDOUT: %DivAssignWith.impl_witness_table.b74 = impl_witness_table (%Core.import_ref.49d), @Cpp.long.as.DivAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.6ac: @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.type.1 (%Cpp.long.as.DivAssignWith.impl.Op.type.109ac5.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.1 (constants.%Cpp.long.as.DivAssignWith.impl.Op.b4447c.2)] -// CHECK:STDOUT: %Core.import_ref.faa: @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.type.2 (%Cpp.long.as.ModAssignWith.impl.Op.type.e961bf.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.2 (constants.%Cpp.long.as.ModAssignWith.impl.Op.ff452e.1)] -// CHECK:STDOUT: %ModAssignWith.impl_witness_table.fb8 = impl_witness_table (%Core.import_ref.faa), @Cpp.long.as.ModAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.264: @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.type.1 (%Cpp.long.as.ModAssignWith.impl.Op.type.e961bf.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.1 (constants.%Cpp.long.as.ModAssignWith.impl.Op.ff452e.2)] -// CHECK:STDOUT: %Core.import_ref.df6: @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.type.2 (%Cpp.long.as.BitAndAssignWith.impl.Op.type.f954e6.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitAndAssignWith.impl.Op.b72f56.1)] -// CHECK:STDOUT: %BitAndAssignWith.impl_witness_table.38e = impl_witness_table (%Core.import_ref.df6), @Cpp.long.as.BitAndAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.27c: @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.type.1 (%Cpp.long.as.BitAndAssignWith.impl.Op.type.f954e6.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitAndAssignWith.impl.Op.b72f56.2)] -// CHECK:STDOUT: %Core.import_ref.c64: @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.type.2 (%Cpp.long.as.BitOrAssignWith.impl.Op.type.186a1d.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitOrAssignWith.impl.Op.169685.1)] -// CHECK:STDOUT: %BitOrAssignWith.impl_witness_table.033 = impl_witness_table (%Core.import_ref.c64), @Cpp.long.as.BitOrAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.dda: @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.type.1 (%Cpp.long.as.BitOrAssignWith.impl.Op.type.186a1d.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitOrAssignWith.impl.Op.169685.2)] -// CHECK:STDOUT: %Core.import_ref.ac7: @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.type.2 (%Cpp.long.as.BitXorAssignWith.impl.Op.type.cdf2c9.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitXorAssignWith.impl.Op.583c20.1)] -// CHECK:STDOUT: %BitXorAssignWith.impl_witness_table.443 = impl_witness_table (%Core.import_ref.ac7), @Cpp.long.as.BitXorAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.c2e: @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.type.1 (%Cpp.long.as.BitXorAssignWith.impl.Op.type.cdf2c9.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitXorAssignWith.impl.Op.583c20.2)] -// CHECK:STDOUT: %Core.import_ref.0b9: @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.2 (%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.50a853.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.2 (constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.2764b8.1)] -// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness_table.89e = impl_witness_table (%Core.import_ref.0b9), @Cpp.long.as.LeftShiftAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.e49: @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.1 (%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.50a853.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.1 (constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.2764b8.2)] -// CHECK:STDOUT: %Core.import_ref.8a6: @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.type.2 (%Cpp.long.as.RightShiftAssignWith.impl.Op.type.053d7a.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.2 (constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.723f9d.1)] -// CHECK:STDOUT: %RightShiftAssignWith.impl_witness_table.eba = impl_witness_table (%Core.import_ref.8a6), @Cpp.long.as.RightShiftAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.d53: @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.type.1 (%Cpp.long.as.RightShiftAssignWith.impl.Op.type.053d7a.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.1 (constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.723f9d.2)] +// CHECK:STDOUT: %Core.import_ref.051: @T.as_type.as.ImplicitAs.impl.%T.as_type.as.ImplicitAs.impl.Convert.type (%T.as_type.as.ImplicitAs.impl.Convert.type.6c4) = import_ref Core//prelude/types/cpp/int, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.ImplicitAs.impl.%T.as_type.as.ImplicitAs.impl.Convert (constants.%T.as_type.as.ImplicitAs.impl.Convert.61d)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.5b9 = impl_witness_table (%Core.import_ref.051), @T.as_type.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.06c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.635 = impl_witness_table (%Core.import_ref.06c), @Core.IntLiteral.as.ImplicitAs.impl.94b [concrete] +// CHECK:STDOUT: %Core.import_ref.3ce: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long.as.AddAssignWith.impl.Op.d1bf47.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table.864 = impl_witness_table (%Core.import_ref.3ce), @Cpp.long.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.7fd: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.d1bf47.2)] +// CHECK:STDOUT: %Core.import_ref.9c3: %Cpp.long.as.Copy.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.210 = impl_witness_table (%Core.import_ref.9c3), @Cpp.long.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.720e: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long.as.SubAssignWith.impl.Op.type.f4b2d1.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long.as.SubAssignWith.impl.Op.5a5f49.1)] +// CHECK:STDOUT: %SubAssignWith.impl_witness_table.b60 = impl_witness_table (%Core.import_ref.720e), @Cpp.long.as.SubAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.3ae: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long.as.SubAssignWith.impl.Op.type.f4b2d1.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long.as.SubAssignWith.impl.Op.5a5f49.2)] +// CHECK:STDOUT: %Core.import_ref.c1e: @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.type.2 (%Cpp.long.as.MulAssignWith.impl.Op.type.b2e99c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.2 (constants.%Cpp.long.as.MulAssignWith.impl.Op.ad1d2e.1)] +// CHECK:STDOUT: %MulAssignWith.impl_witness_table.9fc = impl_witness_table (%Core.import_ref.c1e), @Cpp.long.as.MulAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.a7f: @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.type.1 (%Cpp.long.as.MulAssignWith.impl.Op.type.b2e99c.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.1 (constants.%Cpp.long.as.MulAssignWith.impl.Op.ad1d2e.2)] +// CHECK:STDOUT: %Core.import_ref.c2c: @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.type.2 (%Cpp.long.as.DivAssignWith.impl.Op.type.79510c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.2 (constants.%Cpp.long.as.DivAssignWith.impl.Op.f795df.1)] +// CHECK:STDOUT: %DivAssignWith.impl_witness_table.cf6 = impl_witness_table (%Core.import_ref.c2c), @Cpp.long.as.DivAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.8c3: @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.type.1 (%Cpp.long.as.DivAssignWith.impl.Op.type.79510c.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.1 (constants.%Cpp.long.as.DivAssignWith.impl.Op.f795df.2)] +// CHECK:STDOUT: %Core.import_ref.db0: @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.type.2 (%Cpp.long.as.ModAssignWith.impl.Op.type.d0560a.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.2 (constants.%Cpp.long.as.ModAssignWith.impl.Op.598f91.1)] +// CHECK:STDOUT: %ModAssignWith.impl_witness_table.241 = impl_witness_table (%Core.import_ref.db0), @Cpp.long.as.ModAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.da3: @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.type.1 (%Cpp.long.as.ModAssignWith.impl.Op.type.d0560a.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.1 (constants.%Cpp.long.as.ModAssignWith.impl.Op.598f91.2)] +// CHECK:STDOUT: %Core.import_ref.8ce: @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.type.2 (%Cpp.long.as.BitAndAssignWith.impl.Op.type.b5ab33.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitAndAssignWith.impl.Op.3e6759.1)] +// CHECK:STDOUT: %BitAndAssignWith.impl_witness_table.cc2 = impl_witness_table (%Core.import_ref.8ce), @Cpp.long.as.BitAndAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.c9e: @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.type.1 (%Cpp.long.as.BitAndAssignWith.impl.Op.type.b5ab33.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitAndAssignWith.impl.Op.3e6759.2)] +// CHECK:STDOUT: %Core.import_ref.fb9: @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.type.2 (%Cpp.long.as.BitOrAssignWith.impl.Op.type.570e47.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitOrAssignWith.impl.Op.fdf3e1.1)] +// CHECK:STDOUT: %BitOrAssignWith.impl_witness_table.29c = impl_witness_table (%Core.import_ref.fb9), @Cpp.long.as.BitOrAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.add: @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.type.1 (%Cpp.long.as.BitOrAssignWith.impl.Op.type.570e47.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitOrAssignWith.impl.Op.fdf3e1.2)] +// CHECK:STDOUT: %Core.import_ref.fbf: @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.type.2 (%Cpp.long.as.BitXorAssignWith.impl.Op.type.af9891.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitXorAssignWith.impl.Op.b5d70a.1)] +// CHECK:STDOUT: %BitXorAssignWith.impl_witness_table.910 = impl_witness_table (%Core.import_ref.fbf), @Cpp.long.as.BitXorAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.a72: @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.type.1 (%Cpp.long.as.BitXorAssignWith.impl.Op.type.af9891.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitXorAssignWith.impl.Op.b5d70a.2)] +// CHECK:STDOUT: %Core.import_ref.282: @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.2 (%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.075dc9.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.2 (constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.4b382e.1)] +// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness_table.003 = impl_witness_table (%Core.import_ref.282), @Cpp.long.as.LeftShiftAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.e4d: @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.1 (%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.075dc9.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.1 (constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.4b382e.2)] +// CHECK:STDOUT: %Core.import_ref.769: @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.type.2 (%Cpp.long.as.RightShiftAssignWith.impl.Op.type.e450db.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.2 (constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.27a493.1)] +// CHECK:STDOUT: %RightShiftAssignWith.impl_witness_table.546 = impl_witness_table (%Core.import_ref.769), @Cpp.long.as.RightShiftAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.127: @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.type.1 (%Cpp.long.as.RightShiftAssignWith.impl.Op.type.e450db.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.1 (constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.27a493.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CompoundAssignmentHomogeneousLong() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.83e = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.83e = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.25e = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.25e = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Cpp.long = var %a.var_patt // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc8: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc8: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc8: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc8_3: init %Cpp.long = converted %int_1.loc8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc8_3: init %Cpp.long = converted %int_1.loc8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: assign %a.var, %.loc8_3 // CHECK:STDOUT: %.loc8_13: type = splice_block %long.ref.loc8 [concrete = constants.%Cpp.long] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -2866,15 +2866,15 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %Cpp.long = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.83e = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.83e = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.25e = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.25e = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %Cpp.long = var %b.var_patt // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc9: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc9: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc9: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc9_3: init %Cpp.long = converted %int_1.loc9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc9_3: init %Cpp.long = converted %int_1.loc9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: assign %b.var, %.loc9_3 // CHECK:STDOUT: %.loc9_13: type = splice_block %long.ref.loc9 [concrete = constants.%Cpp.long] { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -2883,157 +2883,157 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %b: ref %Cpp.long = ref_binding b, %b.var // CHECK:STDOUT: %a.ref.loc11: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc11: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc11: %.5f0 = impl_witness_access constants.%AddAssignWith.impl_witness.830, element0 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.ce7855.2] +// CHECK:STDOUT: %impl.elem0.loc11: %.705 = impl_witness_access constants.%AddAssignWith.impl_witness.515, element0 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.3976e1.2] // CHECK:STDOUT: %bound_method.loc11_5.1: = bound_method %a.ref.loc11, %impl.elem0.loc11 -// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.6fa = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.998) [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.6fa = converted constants.%Cpp.long, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11, @Cpp.long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.544ffe.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.7eb = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.a9b) [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.7eb = converted constants.%Cpp.long, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11, @Cpp.long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.42c8d0.1] // CHECK:STDOUT: %bound_method.loc11_5.2: = bound_method %a.ref.loc11, %specific_fn.loc11 // CHECK:STDOUT: %.loc11_8: %Cpp.long = acquire_value %b.ref.loc11 -// CHECK:STDOUT: %.loc11_5.2: %Cpp.long.as.AddAssignWith.impl.Op.type.ba770b.1 = specific_constant imports.%Core.Op.e4e, @Cpp.long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.ce7855.1] -// CHECK:STDOUT: %Op.ref.loc11: %Cpp.long.as.AddAssignWith.impl.Op.type.ba770b.1 = name_ref Op, %.loc11_5.2 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.ce7855.1] +// CHECK:STDOUT: %.loc11_5.2: %Cpp.long.as.AddAssignWith.impl.Op.type.3f3409.1 = specific_constant imports.%Core.Op.7fd, @Cpp.long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.3976e1.1] +// CHECK:STDOUT: %Op.ref.loc11: %Cpp.long.as.AddAssignWith.impl.Op.type.3f3409.1 = name_ref Op, %.loc11_5.2 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.3976e1.1] // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.bound: = bound_method %a.ref.loc11, %Op.ref.loc11 -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc11, @Cpp.long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.544ffe.2] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc11, @Cpp.long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.42c8d0.2] // CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %a.ref.loc11, %Cpp.long.as.AddAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc11_5.3(%a.ref.loc11, %.loc11_8) // CHECK:STDOUT: %a.ref.loc12: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc12: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc12: %.700 = impl_witness_access constants.%SubAssignWith.impl_witness.d79, element0 [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.498a54.2] +// CHECK:STDOUT: %impl.elem0.loc12: %.0c3 = impl_witness_access constants.%SubAssignWith.impl_witness.6fd, element0 [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.b9d526.2] // CHECK:STDOUT: %bound_method.loc12_5.1: = bound_method %a.ref.loc12, %impl.elem0.loc12 -// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.6fa = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.998) [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.6fa = converted constants.%Cpp.long, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Cpp.long.as.SubAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.specific_fn.e00b17.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.7eb = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.a9b) [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.7eb = converted constants.%Cpp.long, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Cpp.long.as.SubAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.specific_fn.cf7f25.1] // CHECK:STDOUT: %bound_method.loc12_5.2: = bound_method %a.ref.loc12, %specific_fn.loc12 // CHECK:STDOUT: %.loc12_8: %Cpp.long = acquire_value %b.ref.loc12 -// CHECK:STDOUT: %.loc12_5.2: %Cpp.long.as.SubAssignWith.impl.Op.type.19fb65.1 = specific_constant imports.%Core.Op.792, @Cpp.long.as.SubAssignWith.impl(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.498a54.1] -// CHECK:STDOUT: %Op.ref.loc12: %Cpp.long.as.SubAssignWith.impl.Op.type.19fb65.1 = name_ref Op, %.loc12_5.2 [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.498a54.1] +// CHECK:STDOUT: %.loc12_5.2: %Cpp.long.as.SubAssignWith.impl.Op.type.2438e2.1 = specific_constant imports.%Core.Op.3ae, @Cpp.long.as.SubAssignWith.impl(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.b9d526.1] +// CHECK:STDOUT: %Op.ref.loc12: %Cpp.long.as.SubAssignWith.impl.Op.type.2438e2.1 = name_ref Op, %.loc12_5.2 [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.b9d526.1] // CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.bound: = bound_method %a.ref.loc12, %Op.ref.loc12 -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc12, @Cpp.long.as.SubAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.specific_fn.e00b17.2] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc12, @Cpp.long.as.SubAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.specific_fn.cf7f25.2] // CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %a.ref.loc12, %Cpp.long.as.SubAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc12_5.3(%a.ref.loc12, %.loc12_8) // CHECK:STDOUT: %a.ref.loc13: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc13: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc13: %.756 = impl_witness_access constants.%MulAssignWith.impl_witness.e21, element0 [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.9be979.2] +// CHECK:STDOUT: %impl.elem0.loc13: %.dcc = impl_witness_access constants.%MulAssignWith.impl_witness.a8e, element0 [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.e55b21.2] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %a.ref.loc13, %impl.elem0.loc13 -// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.6fa = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.998) [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.6fa = converted constants.%Cpp.long, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Cpp.long.as.MulAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.specific_fn.6c2d47.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.7eb = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.a9b) [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.7eb = converted constants.%Cpp.long, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Cpp.long.as.MulAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.specific_fn.4bcff6.1] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %a.ref.loc13, %specific_fn.loc13 // CHECK:STDOUT: %.loc13_8: %Cpp.long = acquire_value %b.ref.loc13 -// CHECK:STDOUT: %.loc13_5.2: %Cpp.long.as.MulAssignWith.impl.Op.type.23c32e.1 = specific_constant imports.%Core.Op.b40, @Cpp.long.as.MulAssignWith.impl(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.9be979.1] -// CHECK:STDOUT: %Op.ref.loc13: %Cpp.long.as.MulAssignWith.impl.Op.type.23c32e.1 = name_ref Op, %.loc13_5.2 [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.9be979.1] +// CHECK:STDOUT: %.loc13_5.2: %Cpp.long.as.MulAssignWith.impl.Op.type.58dc2b.1 = specific_constant imports.%Core.Op.a7f, @Cpp.long.as.MulAssignWith.impl(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.e55b21.1] +// CHECK:STDOUT: %Op.ref.loc13: %Cpp.long.as.MulAssignWith.impl.Op.type.58dc2b.1 = name_ref Op, %.loc13_5.2 [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.e55b21.1] // CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.bound: = bound_method %a.ref.loc13, %Op.ref.loc13 -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc13, @Cpp.long.as.MulAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.specific_fn.6c2d47.2] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc13, @Cpp.long.as.MulAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.specific_fn.4bcff6.2] // CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %a.ref.loc13, %Cpp.long.as.MulAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13_5.3(%a.ref.loc13, %.loc13_8) // CHECK:STDOUT: %a.ref.loc14: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc14: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc14: %.b84 = impl_witness_access constants.%DivAssignWith.impl_witness.9e8, element0 [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.60ccc0.2] +// CHECK:STDOUT: %impl.elem0.loc14: %.85d = impl_witness_access constants.%DivAssignWith.impl_witness.27b, element0 [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.e2cc58.2] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %a.ref.loc14, %impl.elem0.loc14 -// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.6fa = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.998) [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.6fa = converted constants.%Cpp.long, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Cpp.long.as.DivAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.specific_fn.04e150.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.7eb = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.a9b) [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.7eb = converted constants.%Cpp.long, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Cpp.long.as.DivAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.specific_fn.3d06eb.1] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %a.ref.loc14, %specific_fn.loc14 // CHECK:STDOUT: %.loc14_8: %Cpp.long = acquire_value %b.ref.loc14 -// CHECK:STDOUT: %.loc14_5.2: %Cpp.long.as.DivAssignWith.impl.Op.type.a9acbb.1 = specific_constant imports.%Core.Op.6ac, @Cpp.long.as.DivAssignWith.impl(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.60ccc0.1] -// CHECK:STDOUT: %Op.ref.loc14: %Cpp.long.as.DivAssignWith.impl.Op.type.a9acbb.1 = name_ref Op, %.loc14_5.2 [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.60ccc0.1] +// CHECK:STDOUT: %.loc14_5.2: %Cpp.long.as.DivAssignWith.impl.Op.type.d65fb4.1 = specific_constant imports.%Core.Op.8c3, @Cpp.long.as.DivAssignWith.impl(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.e2cc58.1] +// CHECK:STDOUT: %Op.ref.loc14: %Cpp.long.as.DivAssignWith.impl.Op.type.d65fb4.1 = name_ref Op, %.loc14_5.2 [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.e2cc58.1] // CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.bound: = bound_method %a.ref.loc14, %Op.ref.loc14 -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc14, @Cpp.long.as.DivAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.specific_fn.04e150.2] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc14, @Cpp.long.as.DivAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.specific_fn.3d06eb.2] // CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %a.ref.loc14, %Cpp.long.as.DivAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_5.3(%a.ref.loc14, %.loc14_8) // CHECK:STDOUT: %a.ref.loc15: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc15: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc15: %.e3a = impl_witness_access constants.%ModAssignWith.impl_witness.574, element0 [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.401e7e.2] +// CHECK:STDOUT: %impl.elem0.loc15: %.923 = impl_witness_access constants.%ModAssignWith.impl_witness.e1a, element0 [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.11d0fb.2] // CHECK:STDOUT: %bound_method.loc15_5.1: = bound_method %a.ref.loc15, %impl.elem0.loc15 -// CHECK:STDOUT: %ImplicitAs.facet.loc15: %ImplicitAs.type.6fa = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.998) [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %.loc15_5.1: %ImplicitAs.type.6fa = converted constants.%Cpp.long, %ImplicitAs.facet.loc15 [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Cpp.long.as.ModAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.specific_fn.cb024b.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc15: %ImplicitAs.type.7eb = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.a9b) [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %.loc15_5.1: %ImplicitAs.type.7eb = converted constants.%Cpp.long, %ImplicitAs.facet.loc15 [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Cpp.long.as.ModAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.specific_fn.55dd89.1] // CHECK:STDOUT: %bound_method.loc15_5.2: = bound_method %a.ref.loc15, %specific_fn.loc15 // CHECK:STDOUT: %.loc15_8: %Cpp.long = acquire_value %b.ref.loc15 -// CHECK:STDOUT: %.loc15_5.2: %Cpp.long.as.ModAssignWith.impl.Op.type.837c3c.1 = specific_constant imports.%Core.Op.264, @Cpp.long.as.ModAssignWith.impl(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.401e7e.1] -// CHECK:STDOUT: %Op.ref.loc15: %Cpp.long.as.ModAssignWith.impl.Op.type.837c3c.1 = name_ref Op, %.loc15_5.2 [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.401e7e.1] +// CHECK:STDOUT: %.loc15_5.2: %Cpp.long.as.ModAssignWith.impl.Op.type.cd191a.1 = specific_constant imports.%Core.Op.da3, @Cpp.long.as.ModAssignWith.impl(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.11d0fb.1] +// CHECK:STDOUT: %Op.ref.loc15: %Cpp.long.as.ModAssignWith.impl.Op.type.cd191a.1 = name_ref Op, %.loc15_5.2 [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.11d0fb.1] // CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.bound: = bound_method %a.ref.loc15, %Op.ref.loc15 -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc15, @Cpp.long.as.ModAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.specific_fn.cb024b.2] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc15, @Cpp.long.as.ModAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.specific_fn.55dd89.2] // CHECK:STDOUT: %bound_method.loc15_5.3: = bound_method %a.ref.loc15, %Cpp.long.as.ModAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc15_5.3(%a.ref.loc15, %.loc15_8) // CHECK:STDOUT: %a.ref.loc17: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc17: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc17: %.521 = impl_witness_access constants.%BitAndAssignWith.impl_witness.32b, element0 [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.efe73c.2] +// CHECK:STDOUT: %impl.elem0.loc17: %.a45 = impl_witness_access constants.%BitAndAssignWith.impl_witness.906, element0 [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.86fa41.2] // CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %a.ref.loc17, %impl.elem0.loc17 -// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.6fa = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.998) [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.6fa = converted constants.%Cpp.long, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Cpp.long.as.BitAndAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.bd1e6a.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.7eb = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.a9b) [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.7eb = converted constants.%Cpp.long, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Cpp.long.as.BitAndAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.022b9e.1] // CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %a.ref.loc17, %specific_fn.loc17 // CHECK:STDOUT: %.loc17_8: %Cpp.long = acquire_value %b.ref.loc17 -// CHECK:STDOUT: %.loc17_5.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.f1429d.1 = specific_constant imports.%Core.Op.27c, @Cpp.long.as.BitAndAssignWith.impl(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.efe73c.1] -// CHECK:STDOUT: %Op.ref.loc17: %Cpp.long.as.BitAndAssignWith.impl.Op.type.f1429d.1 = name_ref Op, %.loc17_5.2 [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.efe73c.1] +// CHECK:STDOUT: %.loc17_5.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.e0e6c3.1 = specific_constant imports.%Core.Op.c9e, @Cpp.long.as.BitAndAssignWith.impl(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.86fa41.1] +// CHECK:STDOUT: %Op.ref.loc17: %Cpp.long.as.BitAndAssignWith.impl.Op.type.e0e6c3.1 = name_ref Op, %.loc17_5.2 [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.86fa41.1] // CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.bound: = bound_method %a.ref.loc17, %Op.ref.loc17 -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc17, @Cpp.long.as.BitAndAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.bd1e6a.2] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc17, @Cpp.long.as.BitAndAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.022b9e.2] // CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %a.ref.loc17, %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc17_5.3(%a.ref.loc17, %.loc17_8) // CHECK:STDOUT: %a.ref.loc18: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc18: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc18: %.7dc = impl_witness_access constants.%BitOrAssignWith.impl_witness.a4d, element0 [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.732095.2] +// CHECK:STDOUT: %impl.elem0.loc18: %.871 = impl_witness_access constants.%BitOrAssignWith.impl_witness.ecb, element0 [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.737b02.2] // CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %a.ref.loc18, %impl.elem0.loc18 -// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.6fa = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.998) [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.6fa = converted constants.%Cpp.long, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Cpp.long.as.BitOrAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.67bf91.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.7eb = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.a9b) [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.7eb = converted constants.%Cpp.long, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Cpp.long.as.BitOrAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.6acabf.1] // CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %a.ref.loc18, %specific_fn.loc18 // CHECK:STDOUT: %.loc18_8: %Cpp.long = acquire_value %b.ref.loc18 -// CHECK:STDOUT: %.loc18_5.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.fbf7ed.1 = specific_constant imports.%Core.Op.dda, @Cpp.long.as.BitOrAssignWith.impl(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.732095.1] -// CHECK:STDOUT: %Op.ref.loc18: %Cpp.long.as.BitOrAssignWith.impl.Op.type.fbf7ed.1 = name_ref Op, %.loc18_5.2 [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.732095.1] +// CHECK:STDOUT: %.loc18_5.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.70ac7f.1 = specific_constant imports.%Core.Op.add, @Cpp.long.as.BitOrAssignWith.impl(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.737b02.1] +// CHECK:STDOUT: %Op.ref.loc18: %Cpp.long.as.BitOrAssignWith.impl.Op.type.70ac7f.1 = name_ref Op, %.loc18_5.2 [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.737b02.1] // CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.bound: = bound_method %a.ref.loc18, %Op.ref.loc18 -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @Cpp.long.as.BitOrAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.67bf91.2] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @Cpp.long.as.BitOrAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.6acabf.2] // CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %a.ref.loc18, %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_5.3(%a.ref.loc18, %.loc18_8) // CHECK:STDOUT: %a.ref.loc19: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc19: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc19: %.9c9 = impl_witness_access constants.%BitXorAssignWith.impl_witness.07c, element0 [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.9bad15.2] +// CHECK:STDOUT: %impl.elem0.loc19: %.939 = impl_witness_access constants.%BitXorAssignWith.impl_witness.360, element0 [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.067369.2] // CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %a.ref.loc19, %impl.elem0.loc19 -// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.6fa = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.998) [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.6fa = converted constants.%Cpp.long, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Cpp.long.as.BitXorAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.db7227.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.7eb = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.a9b) [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.7eb = converted constants.%Cpp.long, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Cpp.long.as.BitXorAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.4fedc8.1] // CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %a.ref.loc19, %specific_fn.loc19 // CHECK:STDOUT: %.loc19_8: %Cpp.long = acquire_value %b.ref.loc19 -// CHECK:STDOUT: %.loc19_5.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6a0f8a.1 = specific_constant imports.%Core.Op.c2e, @Cpp.long.as.BitXorAssignWith.impl(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.9bad15.1] -// CHECK:STDOUT: %Op.ref.loc19: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6a0f8a.1 = name_ref Op, %.loc19_5.2 [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.9bad15.1] +// CHECK:STDOUT: %.loc19_5.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.902397.1 = specific_constant imports.%Core.Op.a72, @Cpp.long.as.BitXorAssignWith.impl(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.067369.1] +// CHECK:STDOUT: %Op.ref.loc19: %Cpp.long.as.BitXorAssignWith.impl.Op.type.902397.1 = name_ref Op, %.loc19_5.2 [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.067369.1] // CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.bound: = bound_method %a.ref.loc19, %Op.ref.loc19 -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc19, @Cpp.long.as.BitXorAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.db7227.2] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc19, @Cpp.long.as.BitXorAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.4fedc8.2] // CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %a.ref.loc19, %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc19_5.3(%a.ref.loc19, %.loc19_8) // CHECK:STDOUT: %a.ref.loc20: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc20: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc20: %.55f = impl_witness_access constants.%LeftShiftAssignWith.impl_witness.695, element0 [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.e1af3f.2] +// CHECK:STDOUT: %impl.elem0.loc20: %.1be = impl_witness_access constants.%LeftShiftAssignWith.impl_witness.153, element0 [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.ec443b.2] // CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %a.ref.loc20, %impl.elem0.loc20 -// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.6fa = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.998) [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.6fa = converted constants.%Cpp.long, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Cpp.long.as.LeftShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.176c12.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.7eb = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.a9b) [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.7eb = converted constants.%Cpp.long, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Cpp.long.as.LeftShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.9c9ee2.1] // CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %a.ref.loc20, %specific_fn.loc20 // CHECK:STDOUT: %.loc20_9: %Cpp.long = acquire_value %b.ref.loc20 -// CHECK:STDOUT: %.loc20_5.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.809b36.1 = specific_constant imports.%Core.Op.e49, @Cpp.long.as.LeftShiftAssignWith.impl(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.e1af3f.1] -// CHECK:STDOUT: %Op.ref.loc20: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.809b36.1 = name_ref Op, %.loc20_5.2 [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.e1af3f.1] +// CHECK:STDOUT: %.loc20_5.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.71c508.1 = specific_constant imports.%Core.Op.e4d, @Cpp.long.as.LeftShiftAssignWith.impl(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.ec443b.1] +// CHECK:STDOUT: %Op.ref.loc20: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.71c508.1 = name_ref Op, %.loc20_5.2 [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.ec443b.1] // CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.bound: = bound_method %a.ref.loc20, %Op.ref.loc20 -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc20, @Cpp.long.as.LeftShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.176c12.2] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc20, @Cpp.long.as.LeftShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.9c9ee2.2] // CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %a.ref.loc20, %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc20_5.3(%a.ref.loc20, %.loc20_9) // CHECK:STDOUT: %a.ref.loc21: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc21: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc21: %.9cb = impl_witness_access constants.%RightShiftAssignWith.impl_witness.52b, element0 [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.d21be7.2] +// CHECK:STDOUT: %impl.elem0.loc21: %.7cc = impl_witness_access constants.%RightShiftAssignWith.impl_witness.531, element0 [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.108e17.2] // CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %a.ref.loc21, %impl.elem0.loc21 -// CHECK:STDOUT: %ImplicitAs.facet.loc21: %ImplicitAs.type.6fa = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.998) [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %.loc21_5.1: %ImplicitAs.type.6fa = converted constants.%Cpp.long, %ImplicitAs.facet.loc21 [concrete = constants.%ImplicitAs.facet.3e9] -// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.576b1b.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc21: %ImplicitAs.type.7eb = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.a9b) [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %.loc21_5.1: %ImplicitAs.type.7eb = converted constants.%Cpp.long, %ImplicitAs.facet.loc21 [concrete = constants.%ImplicitAs.facet.7ac] +// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.5a2726.1] // CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %a.ref.loc21, %specific_fn.loc21 // CHECK:STDOUT: %.loc21_9: %Cpp.long = acquire_value %b.ref.loc21 -// CHECK:STDOUT: %.loc21_5.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.7abe8a.1 = specific_constant imports.%Core.Op.d53, @Cpp.long.as.RightShiftAssignWith.impl(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.d21be7.1] -// CHECK:STDOUT: %Op.ref.loc21: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.7abe8a.1 = name_ref Op, %.loc21_5.2 [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.d21be7.1] +// CHECK:STDOUT: %.loc21_5.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.253402.1 = specific_constant imports.%Core.Op.127, @Cpp.long.as.RightShiftAssignWith.impl(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.108e17.1] +// CHECK:STDOUT: %Op.ref.loc21: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.253402.1 = name_ref Op, %.loc21_5.2 [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.108e17.1] // CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.bound: = bound_method %a.ref.loc21, %Op.ref.loc21 -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc21, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3e9) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.576b1b.2] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc21, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7ac) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.5a2726.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.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 // 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.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -3054,175 +3054,175 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Cpp.long: type = class_type @Long32 [concrete] -// CHECK:STDOUT: %pattern_type.83e: type = pattern_type %Cpp.long [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6fa: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e41: = impl_witness imports.%ImplicitAs.impl_witness_table.293 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.c09: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e41) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.93b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %.f84: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.93b, %ImplicitAs.facet.c09 [concrete] +// CHECK:STDOUT: %pattern_type.25e: type = pattern_type %Cpp.long [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7eb: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.e27: = impl_witness imports.%ImplicitAs.impl_witness_table.635 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.b30: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e27) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.7dc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %.b13: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.7dc, %ImplicitAs.facet.b30 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce [concrete] -// CHECK:STDOUT: %int_1.3d0: %Cpp.long = int_value 1 [concrete] -// CHECK:STDOUT: %AddAssignWith.type.e37: type = facet_type <@AddAssignWith, @AddAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %U.887: %ImplicitAs.type.6fa = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.c37e49.1: %Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.c37e49.2: %Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.2 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.72d: = impl_witness imports.%ImplicitAs.impl_witness_table.29c [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.0fb: %ImplicitAs.type.6fa = facet_value %i32, (%ImplicitAs.impl_witness.72d) [concrete] -// CHECK:STDOUT: %AddAssignWith.impl_witness.129: = impl_witness imports.%AddAssignWith.impl_witness_table.d4d, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.69179c.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.4ab9dd.1: %Cpp.long.as.AddAssignWith.impl.Op.type.69179c.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.69179c.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.4ab9dd.2: %Cpp.long.as.AddAssignWith.impl.Op.type.69179c.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet.627: %AddAssignWith.type.e37 = facet_value %Cpp.long, (%AddAssignWith.impl_witness.129) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.839: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i32, %AddAssignWith.facet.627) [concrete] -// CHECK:STDOUT: %.72d: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.839, %AddAssignWith.facet.627 [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.548e6a.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.4ab9dd.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.548e6a.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.4ab9dd.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.db6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %.9d6: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.db6, %ImplicitAs.facet.0fb [concrete] +// CHECK:STDOUT: %int_1.9ce: %Cpp.long = int_value 1 [concrete] +// CHECK:STDOUT: %AddAssignWith.type.941: type = facet_type <@AddAssignWith, @AddAssignWith(%i32)> [concrete] +// CHECK:STDOUT: %U.315: %ImplicitAs.type.7eb = symbolic_binding U, 0 [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.d1bf47.1: %Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.d1bf47.2: %Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.2 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.f82: = impl_witness imports.%ImplicitAs.impl_witness_table.a75 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.ce4: %ImplicitAs.type.7eb = facet_value %i32, (%ImplicitAs.impl_witness.f82) [concrete] +// CHECK:STDOUT: %AddAssignWith.impl_witness.b48: = impl_witness imports.%AddAssignWith.impl_witness_table.864, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.0c4994.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.d3c936.1: %Cpp.long.as.AddAssignWith.impl.Op.type.0c4994.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.0c4994.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.d3c936.2: %Cpp.long.as.AddAssignWith.impl.Op.type.0c4994.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet.58f: %AddAssignWith.type.941 = facet_value %Cpp.long, (%AddAssignWith.impl_witness.b48) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.e0e: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i32, %AddAssignWith.facet.58f) [concrete] +// CHECK:STDOUT: %.68d: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.e0e, %AddAssignWith.facet.58f [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.d4d8c8.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.d3c936.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.d4d8c8.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.d3c936.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.59b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %.9c4: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.59b, %ImplicitAs.facet.ce4 [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: %SubAssignWith.type.227: type = facet_type <@SubAssignWith, @SubAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.e6fddb.1: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.1, @Cpp.long.as.SubAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.d98f7d.1: %Cpp.long.as.SubAssignWith.impl.Op.type.e6fddb.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.e6fddb.2: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.2, @Cpp.long.as.SubAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.d98f7d.2: %Cpp.long.as.SubAssignWith.impl.Op.type.e6fddb.2 = struct_value () [symbolic] -// CHECK:STDOUT: %SubAssignWith.impl_witness.f18: = impl_witness imports.%SubAssignWith.impl_witness_table.c70, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.df5f14.1: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.2, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.0d59b4.1: %Cpp.long.as.SubAssignWith.impl.Op.type.df5f14.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.df5f14.2: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.1, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.0d59b4.2: %Cpp.long.as.SubAssignWith.impl.Op.type.df5f14.2 = struct_value () [concrete] -// CHECK:STDOUT: %SubAssignWith.facet.a58: %SubAssignWith.type.227 = facet_value %Cpp.long, (%SubAssignWith.impl_witness.f18) [concrete] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.5bc: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%i32, %SubAssignWith.facet.a58) [concrete] -// CHECK:STDOUT: %.1e1: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.5bc, %SubAssignWith.facet.a58 [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn.de7e80.1: = specific_function %Cpp.long.as.SubAssignWith.impl.Op.0d59b4.2, @Cpp.long.as.SubAssignWith.impl.Op.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn.de7e80.2: = specific_function %Cpp.long.as.SubAssignWith.impl.Op.0d59b4.1, @Cpp.long.as.SubAssignWith.impl.Op.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %MulAssignWith.type.e08: type = facet_type <@MulAssignWith, @MulAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.9be123.1: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.1, @Cpp.long.as.MulAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.4d4f44.1: %Cpp.long.as.MulAssignWith.impl.Op.type.9be123.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.9be123.2: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.2, @Cpp.long.as.MulAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.4d4f44.2: %Cpp.long.as.MulAssignWith.impl.Op.type.9be123.2 = struct_value () [symbolic] -// CHECK:STDOUT: %MulAssignWith.impl_witness.19a: = impl_witness imports.%MulAssignWith.impl_witness_table.511, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.779f22.1: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.2, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.5c5e76.1: %Cpp.long.as.MulAssignWith.impl.Op.type.779f22.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.779f22.2: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.1, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.5c5e76.2: %Cpp.long.as.MulAssignWith.impl.Op.type.779f22.2 = struct_value () [concrete] -// CHECK:STDOUT: %MulAssignWith.facet.b4d: %MulAssignWith.type.e08 = facet_value %Cpp.long, (%MulAssignWith.impl_witness.19a) [concrete] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.5e3: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%i32, %MulAssignWith.facet.b4d) [concrete] -// CHECK:STDOUT: %.cc6: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.5e3, %MulAssignWith.facet.b4d [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn.d36f7a.1: = specific_function %Cpp.long.as.MulAssignWith.impl.Op.5c5e76.2, @Cpp.long.as.MulAssignWith.impl.Op.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn.d36f7a.2: = specific_function %Cpp.long.as.MulAssignWith.impl.Op.5c5e76.1, @Cpp.long.as.MulAssignWith.impl.Op.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %DivAssignWith.type.1e4: type = facet_type <@DivAssignWith, @DivAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.109ac5.1: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.1, @Cpp.long.as.DivAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.b4447c.1: %Cpp.long.as.DivAssignWith.impl.Op.type.109ac5.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.109ac5.2: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.2, @Cpp.long.as.DivAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.b4447c.2: %Cpp.long.as.DivAssignWith.impl.Op.type.109ac5.2 = struct_value () [symbolic] -// CHECK:STDOUT: %DivAssignWith.impl_witness.5ea: = impl_witness imports.%DivAssignWith.impl_witness_table.b74, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.a25461.1: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.2, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.898613.1: %Cpp.long.as.DivAssignWith.impl.Op.type.a25461.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.a25461.2: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.1, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.898613.2: %Cpp.long.as.DivAssignWith.impl.Op.type.a25461.2 = struct_value () [concrete] -// CHECK:STDOUT: %DivAssignWith.facet.7f9: %DivAssignWith.type.1e4 = facet_value %Cpp.long, (%DivAssignWith.impl_witness.5ea) [concrete] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.597: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%i32, %DivAssignWith.facet.7f9) [concrete] -// CHECK:STDOUT: %.880: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.597, %DivAssignWith.facet.7f9 [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn.bac757.1: = specific_function %Cpp.long.as.DivAssignWith.impl.Op.898613.2, @Cpp.long.as.DivAssignWith.impl.Op.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn.bac757.2: = specific_function %Cpp.long.as.DivAssignWith.impl.Op.898613.1, @Cpp.long.as.DivAssignWith.impl.Op.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %ModAssignWith.type.4f9: type = facet_type <@ModAssignWith, @ModAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.e961bf.1: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.1, @Cpp.long.as.ModAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.ff452e.1: %Cpp.long.as.ModAssignWith.impl.Op.type.e961bf.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.e961bf.2: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.2, @Cpp.long.as.ModAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.ff452e.2: %Cpp.long.as.ModAssignWith.impl.Op.type.e961bf.2 = struct_value () [symbolic] -// CHECK:STDOUT: %ModAssignWith.impl_witness.866: = impl_witness imports.%ModAssignWith.impl_witness_table.fb8, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.fbd100.1: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.2, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.970296.1: %Cpp.long.as.ModAssignWith.impl.Op.type.fbd100.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.fbd100.2: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.1, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.970296.2: %Cpp.long.as.ModAssignWith.impl.Op.type.fbd100.2 = struct_value () [concrete] -// CHECK:STDOUT: %ModAssignWith.facet.159: %ModAssignWith.type.4f9 = facet_value %Cpp.long, (%ModAssignWith.impl_witness.866) [concrete] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.031: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%i32, %ModAssignWith.facet.159) [concrete] -// CHECK:STDOUT: %.3ec: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.031, %ModAssignWith.facet.159 [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn.acff4e.1: = specific_function %Cpp.long.as.ModAssignWith.impl.Op.970296.2, @Cpp.long.as.ModAssignWith.impl.Op.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn.acff4e.2: = specific_function %Cpp.long.as.ModAssignWith.impl.Op.970296.1, @Cpp.long.as.ModAssignWith.impl.Op.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %BitAndAssignWith.type.e52: type = facet_type <@BitAndAssignWith, @BitAndAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.f954e6.1: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.1, @Cpp.long.as.BitAndAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.b72f56.1: %Cpp.long.as.BitAndAssignWith.impl.Op.type.f954e6.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.f954e6.2: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.2, @Cpp.long.as.BitAndAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.b72f56.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.f954e6.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitAndAssignWith.impl_witness.a7a: = impl_witness imports.%BitAndAssignWith.impl_witness_table.38e, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.cbeec5.1: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.2, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.116220.1: %Cpp.long.as.BitAndAssignWith.impl.Op.type.cbeec5.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.cbeec5.2: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.1, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.116220.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.cbeec5.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndAssignWith.facet.241: %BitAndAssignWith.type.e52 = facet_value %Cpp.long, (%BitAndAssignWith.impl_witness.a7a) [concrete] -// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.45a: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%i32, %BitAndAssignWith.facet.241) [concrete] -// CHECK:STDOUT: %.345: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.45a, %BitAndAssignWith.facet.241 [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.324142.1: = specific_function %Cpp.long.as.BitAndAssignWith.impl.Op.116220.2, @Cpp.long.as.BitAndAssignWith.impl.Op.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.324142.2: = specific_function %Cpp.long.as.BitAndAssignWith.impl.Op.116220.1, @Cpp.long.as.BitAndAssignWith.impl.Op.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %BitOrAssignWith.type.db1: type = facet_type <@BitOrAssignWith, @BitOrAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.186a1d.1: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.1, @Cpp.long.as.BitOrAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.169685.1: %Cpp.long.as.BitOrAssignWith.impl.Op.type.186a1d.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.186a1d.2: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.2, @Cpp.long.as.BitOrAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.169685.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.186a1d.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitOrAssignWith.impl_witness.4c0: = impl_witness imports.%BitOrAssignWith.impl_witness_table.033, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.1d56d4.1: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.2, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.9f5cee.1: %Cpp.long.as.BitOrAssignWith.impl.Op.type.1d56d4.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.1d56d4.2: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.1, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.9f5cee.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.1d56d4.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitOrAssignWith.facet.a3f: %BitOrAssignWith.type.db1 = facet_value %Cpp.long, (%BitOrAssignWith.impl_witness.4c0) [concrete] -// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.02c: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%i32, %BitOrAssignWith.facet.a3f) [concrete] -// CHECK:STDOUT: %.490: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.02c, %BitOrAssignWith.facet.a3f [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.e27b36.1: = specific_function %Cpp.long.as.BitOrAssignWith.impl.Op.9f5cee.2, @Cpp.long.as.BitOrAssignWith.impl.Op.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.e27b36.2: = specific_function %Cpp.long.as.BitOrAssignWith.impl.Op.9f5cee.1, @Cpp.long.as.BitOrAssignWith.impl.Op.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %BitXorAssignWith.type.fae: type = facet_type <@BitXorAssignWith, @BitXorAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.cdf2c9.1: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.1, @Cpp.long.as.BitXorAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.583c20.1: %Cpp.long.as.BitXorAssignWith.impl.Op.type.cdf2c9.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.cdf2c9.2: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.2, @Cpp.long.as.BitXorAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.583c20.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.cdf2c9.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitXorAssignWith.impl_witness.f5d: = impl_witness imports.%BitXorAssignWith.impl_witness_table.443, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.ef9e9f.1: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.2, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.fb73fa.1: %Cpp.long.as.BitXorAssignWith.impl.Op.type.ef9e9f.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.ef9e9f.2: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.1, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.fb73fa.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.ef9e9f.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitXorAssignWith.facet.947: %BitXorAssignWith.type.fae = facet_value %Cpp.long, (%BitXorAssignWith.impl_witness.f5d) [concrete] -// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.14b: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%i32, %BitXorAssignWith.facet.947) [concrete] -// CHECK:STDOUT: %.87e: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.14b, %BitXorAssignWith.facet.947 [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.6900f6.1: = specific_function %Cpp.long.as.BitXorAssignWith.impl.Op.fb73fa.2, @Cpp.long.as.BitXorAssignWith.impl.Op.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.6900f6.2: = specific_function %Cpp.long.as.BitXorAssignWith.impl.Op.fb73fa.1, @Cpp.long.as.BitXorAssignWith.impl.Op.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.type.8b2: type = facet_type <@LeftShiftAssignWith, @LeftShiftAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.50a853.1: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long.as.LeftShiftAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.2764b8.1: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.50a853.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.50a853.2: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long.as.LeftShiftAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.2764b8.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.50a853.2 = struct_value () [symbolic] -// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness.aae: = impl_witness imports.%LeftShiftAssignWith.impl_witness_table.89e, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bed071.1: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.a3f1fe.1: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bed071.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bed071.2: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.a3f1fe.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bed071.2 = struct_value () [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.facet.518: %LeftShiftAssignWith.type.8b2 = facet_value %Cpp.long, (%LeftShiftAssignWith.impl_witness.aae) [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.386: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%i32, %LeftShiftAssignWith.facet.518) [concrete] -// CHECK:STDOUT: %.2ae: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.386, %LeftShiftAssignWith.facet.518 [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.207d23.1: = specific_function %Cpp.long.as.LeftShiftAssignWith.impl.Op.a3f1fe.2, @Cpp.long.as.LeftShiftAssignWith.impl.Op.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.207d23.2: = specific_function %Cpp.long.as.LeftShiftAssignWith.impl.Op.a3f1fe.1, @Cpp.long.as.LeftShiftAssignWith.impl.Op.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.type.62d: type = facet_type <@RightShiftAssignWith, @RightShiftAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.053d7a.1: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long.as.RightShiftAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.723f9d.1: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.053d7a.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.053d7a.2: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long.as.RightShiftAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.723f9d.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.053d7a.2 = struct_value () [symbolic] -// CHECK:STDOUT: %RightShiftAssignWith.impl_witness.20f: = impl_witness imports.%RightShiftAssignWith.impl_witness_table.eba, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.40d73d.1: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.07491d.1: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.40d73d.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.40d73d.2: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.07491d.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.40d73d.2 = struct_value () [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.facet.a755: %RightShiftAssignWith.type.62d = facet_value %Cpp.long, (%RightShiftAssignWith.impl_witness.20f) [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.318: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%i32, %RightShiftAssignWith.facet.a755) [concrete] -// CHECK:STDOUT: %.585: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.318, %RightShiftAssignWith.facet.a755 [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.d8b850.1: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.07491d.2, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.d8b850.2: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.07491d.1, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] +// CHECK:STDOUT: %SubAssignWith.type.9c3: type = facet_type <@SubAssignWith, @SubAssignWith(%i32)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.f4b2d1.1: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.1, @Cpp.long.as.SubAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.5a5f49.1: %Cpp.long.as.SubAssignWith.impl.Op.type.f4b2d1.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.f4b2d1.2: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.2, @Cpp.long.as.SubAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.5a5f49.2: %Cpp.long.as.SubAssignWith.impl.Op.type.f4b2d1.2 = struct_value () [symbolic] +// CHECK:STDOUT: %SubAssignWith.impl_witness.9be: = impl_witness imports.%SubAssignWith.impl_witness_table.b60, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.b59bc8.1: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.2, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.e73c53.1: %Cpp.long.as.SubAssignWith.impl.Op.type.b59bc8.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.b59bc8.2: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.1, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.e73c53.2: %Cpp.long.as.SubAssignWith.impl.Op.type.b59bc8.2 = struct_value () [concrete] +// CHECK:STDOUT: %SubAssignWith.facet.6fa: %SubAssignWith.type.9c3 = facet_value %Cpp.long, (%SubAssignWith.impl_witness.9be) [concrete] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.18e: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%i32, %SubAssignWith.facet.6fa) [concrete] +// CHECK:STDOUT: %.8cc: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.18e, %SubAssignWith.facet.6fa [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn.ed33cb.1: = specific_function %Cpp.long.as.SubAssignWith.impl.Op.e73c53.2, @Cpp.long.as.SubAssignWith.impl.Op.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn.ed33cb.2: = specific_function %Cpp.long.as.SubAssignWith.impl.Op.e73c53.1, @Cpp.long.as.SubAssignWith.impl.Op.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %MulAssignWith.type.d34: type = facet_type <@MulAssignWith, @MulAssignWith(%i32)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.b2e99c.1: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.1, @Cpp.long.as.MulAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.ad1d2e.1: %Cpp.long.as.MulAssignWith.impl.Op.type.b2e99c.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.b2e99c.2: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.2, @Cpp.long.as.MulAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.ad1d2e.2: %Cpp.long.as.MulAssignWith.impl.Op.type.b2e99c.2 = struct_value () [symbolic] +// CHECK:STDOUT: %MulAssignWith.impl_witness.fb1: = impl_witness imports.%MulAssignWith.impl_witness_table.9fc, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.6461a2.1: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.2, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.6fa29e.1: %Cpp.long.as.MulAssignWith.impl.Op.type.6461a2.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.6461a2.2: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.1, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.6fa29e.2: %Cpp.long.as.MulAssignWith.impl.Op.type.6461a2.2 = struct_value () [concrete] +// CHECK:STDOUT: %MulAssignWith.facet.a69: %MulAssignWith.type.d34 = facet_value %Cpp.long, (%MulAssignWith.impl_witness.fb1) [concrete] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.dde: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%i32, %MulAssignWith.facet.a69) [concrete] +// CHECK:STDOUT: %.e51: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.dde, %MulAssignWith.facet.a69 [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn.674e38.1: = specific_function %Cpp.long.as.MulAssignWith.impl.Op.6fa29e.2, @Cpp.long.as.MulAssignWith.impl.Op.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn.674e38.2: = specific_function %Cpp.long.as.MulAssignWith.impl.Op.6fa29e.1, @Cpp.long.as.MulAssignWith.impl.Op.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %DivAssignWith.type.57c: type = facet_type <@DivAssignWith, @DivAssignWith(%i32)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.79510c.1: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.1, @Cpp.long.as.DivAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.f795df.1: %Cpp.long.as.DivAssignWith.impl.Op.type.79510c.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.79510c.2: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.2, @Cpp.long.as.DivAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.f795df.2: %Cpp.long.as.DivAssignWith.impl.Op.type.79510c.2 = struct_value () [symbolic] +// CHECK:STDOUT: %DivAssignWith.impl_witness.1c3: = impl_witness imports.%DivAssignWith.impl_witness_table.cf6, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.5edb2e.1: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.2, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.aa5aae.1: %Cpp.long.as.DivAssignWith.impl.Op.type.5edb2e.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.5edb2e.2: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.1, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.aa5aae.2: %Cpp.long.as.DivAssignWith.impl.Op.type.5edb2e.2 = struct_value () [concrete] +// CHECK:STDOUT: %DivAssignWith.facet.062: %DivAssignWith.type.57c = facet_value %Cpp.long, (%DivAssignWith.impl_witness.1c3) [concrete] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.370: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%i32, %DivAssignWith.facet.062) [concrete] +// CHECK:STDOUT: %.182: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.370, %DivAssignWith.facet.062 [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn.53323c.1: = specific_function %Cpp.long.as.DivAssignWith.impl.Op.aa5aae.2, @Cpp.long.as.DivAssignWith.impl.Op.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn.53323c.2: = specific_function %Cpp.long.as.DivAssignWith.impl.Op.aa5aae.1, @Cpp.long.as.DivAssignWith.impl.Op.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %ModAssignWith.type.87b: type = facet_type <@ModAssignWith, @ModAssignWith(%i32)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.d0560a.1: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.1, @Cpp.long.as.ModAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.598f91.1: %Cpp.long.as.ModAssignWith.impl.Op.type.d0560a.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.d0560a.2: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.2, @Cpp.long.as.ModAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.598f91.2: %Cpp.long.as.ModAssignWith.impl.Op.type.d0560a.2 = struct_value () [symbolic] +// CHECK:STDOUT: %ModAssignWith.impl_witness.535: = impl_witness imports.%ModAssignWith.impl_witness_table.241, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.0bedac.1: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.2, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.be932a.1: %Cpp.long.as.ModAssignWith.impl.Op.type.0bedac.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.0bedac.2: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.1, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.be932a.2: %Cpp.long.as.ModAssignWith.impl.Op.type.0bedac.2 = struct_value () [concrete] +// CHECK:STDOUT: %ModAssignWith.facet.4bd: %ModAssignWith.type.87b = facet_value %Cpp.long, (%ModAssignWith.impl_witness.535) [concrete] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.5a9: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%i32, %ModAssignWith.facet.4bd) [concrete] +// CHECK:STDOUT: %.3cd: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.5a9, %ModAssignWith.facet.4bd [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn.922dd8.1: = specific_function %Cpp.long.as.ModAssignWith.impl.Op.be932a.2, @Cpp.long.as.ModAssignWith.impl.Op.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn.922dd8.2: = specific_function %Cpp.long.as.ModAssignWith.impl.Op.be932a.1, @Cpp.long.as.ModAssignWith.impl.Op.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %BitAndAssignWith.type.9b1: type = facet_type <@BitAndAssignWith, @BitAndAssignWith(%i32)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.b5ab33.1: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.1, @Cpp.long.as.BitAndAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.3e6759.1: %Cpp.long.as.BitAndAssignWith.impl.Op.type.b5ab33.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.b5ab33.2: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.2, @Cpp.long.as.BitAndAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.3e6759.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.b5ab33.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitAndAssignWith.impl_witness.ca3: = impl_witness imports.%BitAndAssignWith.impl_witness_table.cc2, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.4ea5c7.1: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.2, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.c55c9d.1: %Cpp.long.as.BitAndAssignWith.impl.Op.type.4ea5c7.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.4ea5c7.2: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.1, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.c55c9d.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.4ea5c7.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitAndAssignWith.facet.241: %BitAndAssignWith.type.9b1 = facet_value %Cpp.long, (%BitAndAssignWith.impl_witness.ca3) [concrete] +// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.99b: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%i32, %BitAndAssignWith.facet.241) [concrete] +// CHECK:STDOUT: %.d84: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.99b, %BitAndAssignWith.facet.241 [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.b2e276.1: = specific_function %Cpp.long.as.BitAndAssignWith.impl.Op.c55c9d.2, @Cpp.long.as.BitAndAssignWith.impl.Op.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.b2e276.2: = specific_function %Cpp.long.as.BitAndAssignWith.impl.Op.c55c9d.1, @Cpp.long.as.BitAndAssignWith.impl.Op.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %BitOrAssignWith.type.f2b: type = facet_type <@BitOrAssignWith, @BitOrAssignWith(%i32)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.570e47.1: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.1, @Cpp.long.as.BitOrAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.fdf3e1.1: %Cpp.long.as.BitOrAssignWith.impl.Op.type.570e47.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.570e47.2: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.2, @Cpp.long.as.BitOrAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.fdf3e1.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.570e47.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitOrAssignWith.impl_witness.936: = impl_witness imports.%BitOrAssignWith.impl_witness_table.29c, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.1bf7d5.1: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.2, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.f127f0.1: %Cpp.long.as.BitOrAssignWith.impl.Op.type.1bf7d5.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.1bf7d5.2: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.1, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.f127f0.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.1bf7d5.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitOrAssignWith.facet.5a5: %BitOrAssignWith.type.f2b = facet_value %Cpp.long, (%BitOrAssignWith.impl_witness.936) [concrete] +// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.615: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%i32, %BitOrAssignWith.facet.5a5) [concrete] +// CHECK:STDOUT: %.0f7: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.615, %BitOrAssignWith.facet.5a5 [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.1bd8b4.1: = specific_function %Cpp.long.as.BitOrAssignWith.impl.Op.f127f0.2, @Cpp.long.as.BitOrAssignWith.impl.Op.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.1bd8b4.2: = specific_function %Cpp.long.as.BitOrAssignWith.impl.Op.f127f0.1, @Cpp.long.as.BitOrAssignWith.impl.Op.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %BitXorAssignWith.type.112: type = facet_type <@BitXorAssignWith, @BitXorAssignWith(%i32)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.af9891.1: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.1, @Cpp.long.as.BitXorAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.b5d70a.1: %Cpp.long.as.BitXorAssignWith.impl.Op.type.af9891.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.af9891.2: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.2, @Cpp.long.as.BitXorAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.b5d70a.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.af9891.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitXorAssignWith.impl_witness.7a9: = impl_witness imports.%BitXorAssignWith.impl_witness_table.910, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.d0da74.1: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.2, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.99c425.1: %Cpp.long.as.BitXorAssignWith.impl.Op.type.d0da74.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.d0da74.2: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.1, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.99c425.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.d0da74.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitXorAssignWith.facet.9d3: %BitXorAssignWith.type.112 = facet_value %Cpp.long, (%BitXorAssignWith.impl_witness.7a9) [concrete] +// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.089: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%i32, %BitXorAssignWith.facet.9d3) [concrete] +// CHECK:STDOUT: %.580: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.089, %BitXorAssignWith.facet.9d3 [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.503a1b.1: = specific_function %Cpp.long.as.BitXorAssignWith.impl.Op.99c425.2, @Cpp.long.as.BitXorAssignWith.impl.Op.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.503a1b.2: = specific_function %Cpp.long.as.BitXorAssignWith.impl.Op.99c425.1, @Cpp.long.as.BitXorAssignWith.impl.Op.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.type.fae: type = facet_type <@LeftShiftAssignWith, @LeftShiftAssignWith(%i32)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.075dc9.1: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long.as.LeftShiftAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.4b382e.1: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.075dc9.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.075dc9.2: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long.as.LeftShiftAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.4b382e.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.075dc9.2 = struct_value () [symbolic] +// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness.4c7: = impl_witness imports.%LeftShiftAssignWith.impl_witness_table.003, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.8878df.1: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.80597f.1: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.8878df.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.8878df.2: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.80597f.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.8878df.2 = struct_value () [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.facet.a0f: %LeftShiftAssignWith.type.fae = facet_value %Cpp.long, (%LeftShiftAssignWith.impl_witness.4c7) [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.fbb: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%i32, %LeftShiftAssignWith.facet.a0f) [concrete] +// CHECK:STDOUT: %.683: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.fbb, %LeftShiftAssignWith.facet.a0f [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.df2fa0.1: = specific_function %Cpp.long.as.LeftShiftAssignWith.impl.Op.80597f.2, @Cpp.long.as.LeftShiftAssignWith.impl.Op.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.df2fa0.2: = specific_function %Cpp.long.as.LeftShiftAssignWith.impl.Op.80597f.1, @Cpp.long.as.LeftShiftAssignWith.impl.Op.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.type.af5: type = facet_type <@RightShiftAssignWith, @RightShiftAssignWith(%i32)> [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.e450db.1: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long.as.RightShiftAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.27a493.1: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.e450db.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.e450db.2: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long.as.RightShiftAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.27a493.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.e450db.2 = struct_value () [symbolic] +// CHECK:STDOUT: %RightShiftAssignWith.impl_witness.348: = impl_witness imports.%RightShiftAssignWith.impl_witness_table.546, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.3aa338.1: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.76ada1.1: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.3aa338.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.3aa338.2: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.76ada1.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.3aa338.2 = struct_value () [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.facet.4cd: %RightShiftAssignWith.type.af5 = facet_value %Cpp.long, (%RightShiftAssignWith.impl_witness.348) [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.caf: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%i32, %RightShiftAssignWith.facet.4cd) [concrete] +// CHECK:STDOUT: %.17e: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.caf, %RightShiftAssignWith.facet.4cd [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.708585.1: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.76ada1.2, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.708585.2: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.76ada1.1, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.ce4) [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3230,55 +3230,55 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: .long = constants.%Cpp.long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.adef5f.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.293 = impl_witness_table (%Core.import_ref.adef5f.1), @Core.IntLiteral.as.ImplicitAs.impl.ec9 [concrete] -// CHECK:STDOUT: %Core.import_ref.1d2: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long.as.AddAssignWith.impl.Op.c37e49.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table.d4d = impl_witness_table (%Core.import_ref.1d2), @Cpp.long.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.e4e: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.c37e49.2)] -// CHECK:STDOUT: %Core.import_ref.adef5f.2: %i32.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.29c = impl_witness_table (%Core.import_ref.adef5f.2), @i32.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.1bc: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long.as.SubAssignWith.impl.Op.type.e6fddb.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long.as.SubAssignWith.impl.Op.d98f7d.1)] -// CHECK:STDOUT: %SubAssignWith.impl_witness_table.c70 = impl_witness_table (%Core.import_ref.1bc), @Cpp.long.as.SubAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.792: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long.as.SubAssignWith.impl.Op.type.e6fddb.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long.as.SubAssignWith.impl.Op.d98f7d.2)] -// CHECK:STDOUT: %Core.import_ref.ae2: @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.type.2 (%Cpp.long.as.MulAssignWith.impl.Op.type.9be123.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.2 (constants.%Cpp.long.as.MulAssignWith.impl.Op.4d4f44.1)] -// CHECK:STDOUT: %MulAssignWith.impl_witness_table.511 = impl_witness_table (%Core.import_ref.ae2), @Cpp.long.as.MulAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.b40: @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.type.1 (%Cpp.long.as.MulAssignWith.impl.Op.type.9be123.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.1 (constants.%Cpp.long.as.MulAssignWith.impl.Op.4d4f44.2)] -// CHECK:STDOUT: %Core.import_ref.49d: @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.type.2 (%Cpp.long.as.DivAssignWith.impl.Op.type.109ac5.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.2 (constants.%Cpp.long.as.DivAssignWith.impl.Op.b4447c.1)] -// CHECK:STDOUT: %DivAssignWith.impl_witness_table.b74 = impl_witness_table (%Core.import_ref.49d), @Cpp.long.as.DivAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.6ac: @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.type.1 (%Cpp.long.as.DivAssignWith.impl.Op.type.109ac5.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.1 (constants.%Cpp.long.as.DivAssignWith.impl.Op.b4447c.2)] -// CHECK:STDOUT: %Core.import_ref.faa: @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.type.2 (%Cpp.long.as.ModAssignWith.impl.Op.type.e961bf.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.2 (constants.%Cpp.long.as.ModAssignWith.impl.Op.ff452e.1)] -// CHECK:STDOUT: %ModAssignWith.impl_witness_table.fb8 = impl_witness_table (%Core.import_ref.faa), @Cpp.long.as.ModAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.264: @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.type.1 (%Cpp.long.as.ModAssignWith.impl.Op.type.e961bf.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.1 (constants.%Cpp.long.as.ModAssignWith.impl.Op.ff452e.2)] -// CHECK:STDOUT: %Core.import_ref.df6: @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.type.2 (%Cpp.long.as.BitAndAssignWith.impl.Op.type.f954e6.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitAndAssignWith.impl.Op.b72f56.1)] -// CHECK:STDOUT: %BitAndAssignWith.impl_witness_table.38e = impl_witness_table (%Core.import_ref.df6), @Cpp.long.as.BitAndAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.27c: @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.type.1 (%Cpp.long.as.BitAndAssignWith.impl.Op.type.f954e6.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitAndAssignWith.impl.Op.b72f56.2)] -// CHECK:STDOUT: %Core.import_ref.c64: @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.type.2 (%Cpp.long.as.BitOrAssignWith.impl.Op.type.186a1d.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitOrAssignWith.impl.Op.169685.1)] -// CHECK:STDOUT: %BitOrAssignWith.impl_witness_table.033 = impl_witness_table (%Core.import_ref.c64), @Cpp.long.as.BitOrAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.dda: @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.type.1 (%Cpp.long.as.BitOrAssignWith.impl.Op.type.186a1d.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitOrAssignWith.impl.Op.169685.2)] -// CHECK:STDOUT: %Core.import_ref.ac7: @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.type.2 (%Cpp.long.as.BitXorAssignWith.impl.Op.type.cdf2c9.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitXorAssignWith.impl.Op.583c20.1)] -// CHECK:STDOUT: %BitXorAssignWith.impl_witness_table.443 = impl_witness_table (%Core.import_ref.ac7), @Cpp.long.as.BitXorAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.c2e: @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.type.1 (%Cpp.long.as.BitXorAssignWith.impl.Op.type.cdf2c9.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitXorAssignWith.impl.Op.583c20.2)] -// CHECK:STDOUT: %Core.import_ref.0b9: @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.2 (%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.50a853.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.2 (constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.2764b8.1)] -// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness_table.89e = impl_witness_table (%Core.import_ref.0b9), @Cpp.long.as.LeftShiftAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.e49: @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.1 (%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.50a853.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.1 (constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.2764b8.2)] -// CHECK:STDOUT: %Core.import_ref.8a6: @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.type.2 (%Cpp.long.as.RightShiftAssignWith.impl.Op.type.053d7a.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.2 (constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.723f9d.1)] -// CHECK:STDOUT: %RightShiftAssignWith.impl_witness_table.eba = impl_witness_table (%Core.import_ref.8a6), @Cpp.long.as.RightShiftAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.d53: @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.type.1 (%Cpp.long.as.RightShiftAssignWith.impl.Op.type.053d7a.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.1 (constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.723f9d.2)] +// CHECK:STDOUT: %Core.import_ref.06c923.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.635 = impl_witness_table (%Core.import_ref.06c923.1), @Core.IntLiteral.as.ImplicitAs.impl.94b [concrete] +// CHECK:STDOUT: %Core.import_ref.3ce: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long.as.AddAssignWith.impl.Op.d1bf47.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table.864 = impl_witness_table (%Core.import_ref.3ce), @Cpp.long.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.7fd: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.d1bf47.2)] +// CHECK:STDOUT: %Core.import_ref.06c923.2: %i32.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a75 = impl_witness_table (%Core.import_ref.06c923.2), @i32.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.720: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long.as.SubAssignWith.impl.Op.type.f4b2d1.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long.as.SubAssignWith.impl.Op.5a5f49.1)] +// CHECK:STDOUT: %SubAssignWith.impl_witness_table.b60 = impl_witness_table (%Core.import_ref.720), @Cpp.long.as.SubAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.3ae: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long.as.SubAssignWith.impl.Op.type.f4b2d1.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long.as.SubAssignWith.impl.Op.5a5f49.2)] +// CHECK:STDOUT: %Core.import_ref.c1e: @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.type.2 (%Cpp.long.as.MulAssignWith.impl.Op.type.b2e99c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.2 (constants.%Cpp.long.as.MulAssignWith.impl.Op.ad1d2e.1)] +// CHECK:STDOUT: %MulAssignWith.impl_witness_table.9fc = impl_witness_table (%Core.import_ref.c1e), @Cpp.long.as.MulAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.a7f: @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.type.1 (%Cpp.long.as.MulAssignWith.impl.Op.type.b2e99c.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.1 (constants.%Cpp.long.as.MulAssignWith.impl.Op.ad1d2e.2)] +// CHECK:STDOUT: %Core.import_ref.c2c: @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.type.2 (%Cpp.long.as.DivAssignWith.impl.Op.type.79510c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.2 (constants.%Cpp.long.as.DivAssignWith.impl.Op.f795df.1)] +// CHECK:STDOUT: %DivAssignWith.impl_witness_table.cf6 = impl_witness_table (%Core.import_ref.c2c), @Cpp.long.as.DivAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.8c3: @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.type.1 (%Cpp.long.as.DivAssignWith.impl.Op.type.79510c.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.1 (constants.%Cpp.long.as.DivAssignWith.impl.Op.f795df.2)] +// CHECK:STDOUT: %Core.import_ref.db0: @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.type.2 (%Cpp.long.as.ModAssignWith.impl.Op.type.d0560a.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.2 (constants.%Cpp.long.as.ModAssignWith.impl.Op.598f91.1)] +// CHECK:STDOUT: %ModAssignWith.impl_witness_table.241 = impl_witness_table (%Core.import_ref.db0), @Cpp.long.as.ModAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.da3: @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.type.1 (%Cpp.long.as.ModAssignWith.impl.Op.type.d0560a.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.1 (constants.%Cpp.long.as.ModAssignWith.impl.Op.598f91.2)] +// CHECK:STDOUT: %Core.import_ref.8ce: @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.type.2 (%Cpp.long.as.BitAndAssignWith.impl.Op.type.b5ab33.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitAndAssignWith.impl.Op.3e6759.1)] +// CHECK:STDOUT: %BitAndAssignWith.impl_witness_table.cc2 = impl_witness_table (%Core.import_ref.8ce), @Cpp.long.as.BitAndAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.c9e: @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.type.1 (%Cpp.long.as.BitAndAssignWith.impl.Op.type.b5ab33.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitAndAssignWith.impl.Op.3e6759.2)] +// CHECK:STDOUT: %Core.import_ref.fb9: @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.type.2 (%Cpp.long.as.BitOrAssignWith.impl.Op.type.570e47.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitOrAssignWith.impl.Op.fdf3e1.1)] +// CHECK:STDOUT: %BitOrAssignWith.impl_witness_table.29c = impl_witness_table (%Core.import_ref.fb9), @Cpp.long.as.BitOrAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.add: @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.type.1 (%Cpp.long.as.BitOrAssignWith.impl.Op.type.570e47.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitOrAssignWith.impl.Op.fdf3e1.2)] +// CHECK:STDOUT: %Core.import_ref.fbf: @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.type.2 (%Cpp.long.as.BitXorAssignWith.impl.Op.type.af9891.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitXorAssignWith.impl.Op.b5d70a.1)] +// CHECK:STDOUT: %BitXorAssignWith.impl_witness_table.910 = impl_witness_table (%Core.import_ref.fbf), @Cpp.long.as.BitXorAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.a72: @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.type.1 (%Cpp.long.as.BitXorAssignWith.impl.Op.type.af9891.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitXorAssignWith.impl.Op.b5d70a.2)] +// CHECK:STDOUT: %Core.import_ref.282: @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.2 (%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.075dc9.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.2 (constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.4b382e.1)] +// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness_table.003 = impl_witness_table (%Core.import_ref.282), @Cpp.long.as.LeftShiftAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.e4d: @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.1 (%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.075dc9.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.1 (constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.4b382e.2)] +// CHECK:STDOUT: %Core.import_ref.769: @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.type.2 (%Cpp.long.as.RightShiftAssignWith.impl.Op.type.e450db.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.2 (constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.27a493.1)] +// CHECK:STDOUT: %RightShiftAssignWith.impl_witness_table.546 = impl_witness_table (%Core.import_ref.769), @Cpp.long.as.RightShiftAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.127: @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.type.1 (%Cpp.long.as.RightShiftAssignWith.impl.Op.type.e450db.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.1 (constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.27a493.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CompoundAssignmentLongAndI32() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.83e = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.83e = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.25e = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.25e = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Cpp.long = var %a.var_patt // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc9: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc9: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc9: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc9_3: init %Cpp.long = converted %int_1.loc9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc9_3: init %Cpp.long = converted %int_1.loc9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: assign %a.var, %.loc9_3 // CHECK:STDOUT: %.loc9_13: type = splice_block %long.ref [concrete = constants.%Cpp.long] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -3287,18 +3287,18 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %a: ref %Cpp.long = ref_binding a, %a.var // CHECK:STDOUT: %a.ref.loc10: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc10: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc10_5: %.72d = impl_witness_access constants.%AddAssignWith.impl_witness.129, element0 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.4ab9dd.2] +// CHECK:STDOUT: %impl.elem0.loc10_5: %.68d = impl_witness_access constants.%AddAssignWith.impl_witness.b48, element0 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.d3c936.2] // CHECK:STDOUT: %bound_method.loc10_5.1: = bound_method %a.ref.loc10, %impl.elem0.loc10_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc10: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet.loc10 [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @Cpp.long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.548e6a.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc10: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet.loc10 [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @Cpp.long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.d4d8c8.1] // CHECK:STDOUT: %bound_method.loc10_5.2: = bound_method %a.ref.loc10, %specific_fn.loc10 -// CHECK:STDOUT: %.loc10_5.2: %Cpp.long.as.AddAssignWith.impl.Op.type.69179c.1 = specific_constant imports.%Core.Op.e4e, @Cpp.long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.4ab9dd.1] -// CHECK:STDOUT: %Op.ref.loc10: %Cpp.long.as.AddAssignWith.impl.Op.type.69179c.1 = name_ref Op, %.loc10_5.2 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.4ab9dd.1] +// CHECK:STDOUT: %.loc10_5.2: %Cpp.long.as.AddAssignWith.impl.Op.type.0c4994.1 = specific_constant imports.%Core.Op.7fd, @Cpp.long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.d3c936.1] +// CHECK:STDOUT: %Op.ref.loc10: %Cpp.long.as.AddAssignWith.impl.Op.type.0c4994.1 = name_ref Op, %.loc10_5.2 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.d3c936.1] // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.bound: = bound_method %a.ref.loc10, %Op.ref.loc10 -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc10, @Cpp.long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.548e6a.2] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc10, @Cpp.long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.d4d8c8.2] // CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %a.ref.loc10, %Cpp.long.as.AddAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc10_8: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc10_8: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_8: = bound_method %b.ref.loc10, %impl.elem0.loc10_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc10: init %Cpp.long = call %bound_method.loc10_8(%b.ref.loc10) // CHECK:STDOUT: %.loc10_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc10 @@ -3306,18 +3306,18 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10_5.3(%a.ref.loc10, %.loc10_8.2) // CHECK:STDOUT: %a.ref.loc11: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc11: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc11_5: %.1e1 = impl_witness_access constants.%SubAssignWith.impl_witness.f18, element0 [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.0d59b4.2] +// CHECK:STDOUT: %impl.elem0.loc11_5: %.8cc = impl_witness_access constants.%SubAssignWith.impl_witness.9be, element0 [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.e73c53.2] // CHECK:STDOUT: %bound_method.loc11_5.1: = bound_method %a.ref.loc11, %impl.elem0.loc11_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11_5, @Cpp.long.as.SubAssignWith.impl.Op.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.specific_fn.de7e80.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11_5, @Cpp.long.as.SubAssignWith.impl.Op.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.specific_fn.ed33cb.1] // CHECK:STDOUT: %bound_method.loc11_5.2: = bound_method %a.ref.loc11, %specific_fn.loc11 -// CHECK:STDOUT: %.loc11_5.2: %Cpp.long.as.SubAssignWith.impl.Op.type.df5f14.1 = specific_constant imports.%Core.Op.792, @Cpp.long.as.SubAssignWith.impl(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.0d59b4.1] -// CHECK:STDOUT: %Op.ref.loc11: %Cpp.long.as.SubAssignWith.impl.Op.type.df5f14.1 = name_ref Op, %.loc11_5.2 [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.0d59b4.1] +// CHECK:STDOUT: %.loc11_5.2: %Cpp.long.as.SubAssignWith.impl.Op.type.b59bc8.1 = specific_constant imports.%Core.Op.3ae, @Cpp.long.as.SubAssignWith.impl(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.e73c53.1] +// CHECK:STDOUT: %Op.ref.loc11: %Cpp.long.as.SubAssignWith.impl.Op.type.b59bc8.1 = name_ref Op, %.loc11_5.2 [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.e73c53.1] // CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.bound: = bound_method %a.ref.loc11, %Op.ref.loc11 -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc11, @Cpp.long.as.SubAssignWith.impl.Op.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.specific_fn.de7e80.2] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc11, @Cpp.long.as.SubAssignWith.impl.Op.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.specific_fn.ed33cb.2] // CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %a.ref.loc11, %Cpp.long.as.SubAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc11_8: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc11_8: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc11_8: = bound_method %b.ref.loc11, %impl.elem0.loc11_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc11: init %Cpp.long = call %bound_method.loc11_8(%b.ref.loc11) // CHECK:STDOUT: %.loc11_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc11 @@ -3325,18 +3325,18 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc11_5.3(%a.ref.loc11, %.loc11_8.2) // CHECK:STDOUT: %a.ref.loc12: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc12: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc12_5: %.cc6 = impl_witness_access constants.%MulAssignWith.impl_witness.19a, element0 [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.5c5e76.2] +// CHECK:STDOUT: %impl.elem0.loc12_5: %.e51 = impl_witness_access constants.%MulAssignWith.impl_witness.fb1, element0 [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.6fa29e.2] // CHECK:STDOUT: %bound_method.loc12_5.1: = bound_method %a.ref.loc12, %impl.elem0.loc12_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12_5, @Cpp.long.as.MulAssignWith.impl.Op.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.specific_fn.d36f7a.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12_5, @Cpp.long.as.MulAssignWith.impl.Op.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.specific_fn.674e38.1] // CHECK:STDOUT: %bound_method.loc12_5.2: = bound_method %a.ref.loc12, %specific_fn.loc12 -// CHECK:STDOUT: %.loc12_5.2: %Cpp.long.as.MulAssignWith.impl.Op.type.779f22.1 = specific_constant imports.%Core.Op.b40, @Cpp.long.as.MulAssignWith.impl(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.5c5e76.1] -// CHECK:STDOUT: %Op.ref.loc12: %Cpp.long.as.MulAssignWith.impl.Op.type.779f22.1 = name_ref Op, %.loc12_5.2 [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.5c5e76.1] +// CHECK:STDOUT: %.loc12_5.2: %Cpp.long.as.MulAssignWith.impl.Op.type.6461a2.1 = specific_constant imports.%Core.Op.a7f, @Cpp.long.as.MulAssignWith.impl(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.6fa29e.1] +// CHECK:STDOUT: %Op.ref.loc12: %Cpp.long.as.MulAssignWith.impl.Op.type.6461a2.1 = name_ref Op, %.loc12_5.2 [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.6fa29e.1] // CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.bound: = bound_method %a.ref.loc12, %Op.ref.loc12 -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc12, @Cpp.long.as.MulAssignWith.impl.Op.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.specific_fn.d36f7a.2] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc12, @Cpp.long.as.MulAssignWith.impl.Op.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.specific_fn.674e38.2] // CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %a.ref.loc12, %Cpp.long.as.MulAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc12_8: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc12_8: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc12_8: = bound_method %b.ref.loc12, %impl.elem0.loc12_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc12: init %Cpp.long = call %bound_method.loc12_8(%b.ref.loc12) // CHECK:STDOUT: %.loc12_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc12 @@ -3344,18 +3344,18 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc12_5.3(%a.ref.loc12, %.loc12_8.2) // CHECK:STDOUT: %a.ref.loc13: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc13: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc13_5: %.880 = impl_witness_access constants.%DivAssignWith.impl_witness.5ea, element0 [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.898613.2] +// CHECK:STDOUT: %impl.elem0.loc13_5: %.182 = impl_witness_access constants.%DivAssignWith.impl_witness.1c3, element0 [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.aa5aae.2] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %a.ref.loc13, %impl.elem0.loc13_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5, @Cpp.long.as.DivAssignWith.impl.Op.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.specific_fn.bac757.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5, @Cpp.long.as.DivAssignWith.impl.Op.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.specific_fn.53323c.1] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %a.ref.loc13, %specific_fn.loc13 -// CHECK:STDOUT: %.loc13_5.2: %Cpp.long.as.DivAssignWith.impl.Op.type.a25461.1 = specific_constant imports.%Core.Op.6ac, @Cpp.long.as.DivAssignWith.impl(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.898613.1] -// CHECK:STDOUT: %Op.ref.loc13: %Cpp.long.as.DivAssignWith.impl.Op.type.a25461.1 = name_ref Op, %.loc13_5.2 [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.898613.1] +// CHECK:STDOUT: %.loc13_5.2: %Cpp.long.as.DivAssignWith.impl.Op.type.5edb2e.1 = specific_constant imports.%Core.Op.8c3, @Cpp.long.as.DivAssignWith.impl(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.aa5aae.1] +// CHECK:STDOUT: %Op.ref.loc13: %Cpp.long.as.DivAssignWith.impl.Op.type.5edb2e.1 = name_ref Op, %.loc13_5.2 [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.aa5aae.1] // CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.bound: = bound_method %a.ref.loc13, %Op.ref.loc13 -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc13, @Cpp.long.as.DivAssignWith.impl.Op.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.specific_fn.bac757.2] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc13, @Cpp.long.as.DivAssignWith.impl.Op.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.specific_fn.53323c.2] // CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %a.ref.loc13, %Cpp.long.as.DivAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc13_8: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc13_8: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc13_8: = bound_method %b.ref.loc13, %impl.elem0.loc13_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc13: init %Cpp.long = call %bound_method.loc13_8(%b.ref.loc13) // CHECK:STDOUT: %.loc13_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc13 @@ -3363,18 +3363,18 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13_5.3(%a.ref.loc13, %.loc13_8.2) // CHECK:STDOUT: %a.ref.loc14: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc14: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc14_5: %.3ec = impl_witness_access constants.%ModAssignWith.impl_witness.866, element0 [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.970296.2] +// CHECK:STDOUT: %impl.elem0.loc14_5: %.3cd = impl_witness_access constants.%ModAssignWith.impl_witness.535, element0 [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.be932a.2] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %a.ref.loc14, %impl.elem0.loc14_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14_5, @Cpp.long.as.ModAssignWith.impl.Op.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.specific_fn.acff4e.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14_5, @Cpp.long.as.ModAssignWith.impl.Op.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.specific_fn.922dd8.1] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %a.ref.loc14, %specific_fn.loc14 -// CHECK:STDOUT: %.loc14_5.2: %Cpp.long.as.ModAssignWith.impl.Op.type.fbd100.1 = specific_constant imports.%Core.Op.264, @Cpp.long.as.ModAssignWith.impl(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.970296.1] -// CHECK:STDOUT: %Op.ref.loc14: %Cpp.long.as.ModAssignWith.impl.Op.type.fbd100.1 = name_ref Op, %.loc14_5.2 [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.970296.1] +// CHECK:STDOUT: %.loc14_5.2: %Cpp.long.as.ModAssignWith.impl.Op.type.0bedac.1 = specific_constant imports.%Core.Op.da3, @Cpp.long.as.ModAssignWith.impl(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.be932a.1] +// CHECK:STDOUT: %Op.ref.loc14: %Cpp.long.as.ModAssignWith.impl.Op.type.0bedac.1 = name_ref Op, %.loc14_5.2 [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.be932a.1] // CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.bound: = bound_method %a.ref.loc14, %Op.ref.loc14 -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc14, @Cpp.long.as.ModAssignWith.impl.Op.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.specific_fn.acff4e.2] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc14, @Cpp.long.as.ModAssignWith.impl.Op.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.specific_fn.922dd8.2] // CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %a.ref.loc14, %Cpp.long.as.ModAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc14_8: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc14_8: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc14_8: = bound_method %b.ref.loc14, %impl.elem0.loc14_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc14: init %Cpp.long = call %bound_method.loc14_8(%b.ref.loc14) // CHECK:STDOUT: %.loc14_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc14 @@ -3382,18 +3382,18 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_5.3(%a.ref.loc14, %.loc14_8.2) // CHECK:STDOUT: %a.ref.loc16: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc16: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc16_5: %.345 = impl_witness_access constants.%BitAndAssignWith.impl_witness.a7a, element0 [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.116220.2] +// CHECK:STDOUT: %impl.elem0.loc16_5: %.d84 = impl_witness_access constants.%BitAndAssignWith.impl_witness.ca3, element0 [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.c55c9d.2] // CHECK:STDOUT: %bound_method.loc16_5.1: = bound_method %a.ref.loc16, %impl.elem0.loc16_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc16: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc16_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet.loc16 [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16_5, @Cpp.long.as.BitAndAssignWith.impl.Op.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.324142.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc16: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc16_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet.loc16 [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16_5, @Cpp.long.as.BitAndAssignWith.impl.Op.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.b2e276.1] // CHECK:STDOUT: %bound_method.loc16_5.2: = bound_method %a.ref.loc16, %specific_fn.loc16 -// CHECK:STDOUT: %.loc16_5.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.cbeec5.1 = specific_constant imports.%Core.Op.27c, @Cpp.long.as.BitAndAssignWith.impl(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.116220.1] -// CHECK:STDOUT: %Op.ref.loc16: %Cpp.long.as.BitAndAssignWith.impl.Op.type.cbeec5.1 = name_ref Op, %.loc16_5.2 [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.116220.1] +// CHECK:STDOUT: %.loc16_5.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.4ea5c7.1 = specific_constant imports.%Core.Op.c9e, @Cpp.long.as.BitAndAssignWith.impl(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.c55c9d.1] +// CHECK:STDOUT: %Op.ref.loc16: %Cpp.long.as.BitAndAssignWith.impl.Op.type.4ea5c7.1 = name_ref Op, %.loc16_5.2 [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.c55c9d.1] // CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.bound: = bound_method %a.ref.loc16, %Op.ref.loc16 -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc16, @Cpp.long.as.BitAndAssignWith.impl.Op.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.324142.2] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc16, @Cpp.long.as.BitAndAssignWith.impl.Op.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.b2e276.2] // CHECK:STDOUT: %bound_method.loc16_5.3: = bound_method %a.ref.loc16, %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc16_8: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc16_8: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc16_8: = bound_method %b.ref.loc16, %impl.elem0.loc16_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc16: init %Cpp.long = call %bound_method.loc16_8(%b.ref.loc16) // CHECK:STDOUT: %.loc16_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc16 @@ -3401,18 +3401,18 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_5.3(%a.ref.loc16, %.loc16_8.2) // CHECK:STDOUT: %a.ref.loc17: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc17: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc17_5: %.490 = impl_witness_access constants.%BitOrAssignWith.impl_witness.4c0, element0 [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.9f5cee.2] +// CHECK:STDOUT: %impl.elem0.loc17_5: %.0f7 = impl_witness_access constants.%BitOrAssignWith.impl_witness.936, element0 [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.f127f0.2] // CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %a.ref.loc17, %impl.elem0.loc17_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5, @Cpp.long.as.BitOrAssignWith.impl.Op.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.e27b36.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5, @Cpp.long.as.BitOrAssignWith.impl.Op.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.1bd8b4.1] // CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %a.ref.loc17, %specific_fn.loc17 -// CHECK:STDOUT: %.loc17_5.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.1d56d4.1 = specific_constant imports.%Core.Op.dda, @Cpp.long.as.BitOrAssignWith.impl(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.9f5cee.1] -// CHECK:STDOUT: %Op.ref.loc17: %Cpp.long.as.BitOrAssignWith.impl.Op.type.1d56d4.1 = name_ref Op, %.loc17_5.2 [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.9f5cee.1] +// CHECK:STDOUT: %.loc17_5.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.1bf7d5.1 = specific_constant imports.%Core.Op.add, @Cpp.long.as.BitOrAssignWith.impl(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.f127f0.1] +// CHECK:STDOUT: %Op.ref.loc17: %Cpp.long.as.BitOrAssignWith.impl.Op.type.1bf7d5.1 = name_ref Op, %.loc17_5.2 [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.f127f0.1] // CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.bound: = bound_method %a.ref.loc17, %Op.ref.loc17 -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc17, @Cpp.long.as.BitOrAssignWith.impl.Op.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.e27b36.2] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc17, @Cpp.long.as.BitOrAssignWith.impl.Op.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.1bd8b4.2] // CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %a.ref.loc17, %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc17_8: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc17_8: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc17_8: = bound_method %b.ref.loc17, %impl.elem0.loc17_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc17: init %Cpp.long = call %bound_method.loc17_8(%b.ref.loc17) // CHECK:STDOUT: %.loc17_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc17 @@ -3420,18 +3420,18 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc17_5.3(%a.ref.loc17, %.loc17_8.2) // CHECK:STDOUT: %a.ref.loc18: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc18: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc18_5: %.87e = impl_witness_access constants.%BitXorAssignWith.impl_witness.f5d, element0 [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.fb73fa.2] +// CHECK:STDOUT: %impl.elem0.loc18_5: %.580 = impl_witness_access constants.%BitXorAssignWith.impl_witness.7a9, element0 [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.99c425.2] // CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %a.ref.loc18, %impl.elem0.loc18_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18_5, @Cpp.long.as.BitXorAssignWith.impl.Op.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.6900f6.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18_5, @Cpp.long.as.BitXorAssignWith.impl.Op.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.503a1b.1] // CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %a.ref.loc18, %specific_fn.loc18 -// CHECK:STDOUT: %.loc18_5.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.ef9e9f.1 = specific_constant imports.%Core.Op.c2e, @Cpp.long.as.BitXorAssignWith.impl(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.fb73fa.1] -// CHECK:STDOUT: %Op.ref.loc18: %Cpp.long.as.BitXorAssignWith.impl.Op.type.ef9e9f.1 = name_ref Op, %.loc18_5.2 [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.fb73fa.1] +// CHECK:STDOUT: %.loc18_5.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.d0da74.1 = specific_constant imports.%Core.Op.a72, @Cpp.long.as.BitXorAssignWith.impl(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.99c425.1] +// CHECK:STDOUT: %Op.ref.loc18: %Cpp.long.as.BitXorAssignWith.impl.Op.type.d0da74.1 = name_ref Op, %.loc18_5.2 [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.99c425.1] // CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.bound: = bound_method %a.ref.loc18, %Op.ref.loc18 -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @Cpp.long.as.BitXorAssignWith.impl.Op.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.6900f6.2] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @Cpp.long.as.BitXorAssignWith.impl.Op.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.503a1b.2] // CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %a.ref.loc18, %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc18_8: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc18_8: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc18_8: = bound_method %b.ref.loc18, %impl.elem0.loc18_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc18: init %Cpp.long = call %bound_method.loc18_8(%b.ref.loc18) // CHECK:STDOUT: %.loc18_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc18 @@ -3439,18 +3439,18 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_5.3(%a.ref.loc18, %.loc18_8.2) // CHECK:STDOUT: %a.ref.loc19: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc19: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc19_5: %.2ae = impl_witness_access constants.%LeftShiftAssignWith.impl_witness.aae, element0 [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.a3f1fe.2] +// CHECK:STDOUT: %impl.elem0.loc19_5: %.683 = impl_witness_access constants.%LeftShiftAssignWith.impl_witness.4c7, element0 [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.80597f.2] // CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %a.ref.loc19, %impl.elem0.loc19_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19_5, @Cpp.long.as.LeftShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.207d23.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19_5, @Cpp.long.as.LeftShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.df2fa0.1] // CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %a.ref.loc19, %specific_fn.loc19 -// CHECK:STDOUT: %.loc19_5.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bed071.1 = specific_constant imports.%Core.Op.e49, @Cpp.long.as.LeftShiftAssignWith.impl(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.a3f1fe.1] -// CHECK:STDOUT: %Op.ref.loc19: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bed071.1 = name_ref Op, %.loc19_5.2 [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.a3f1fe.1] +// CHECK:STDOUT: %.loc19_5.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.8878df.1 = specific_constant imports.%Core.Op.e4d, @Cpp.long.as.LeftShiftAssignWith.impl(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.80597f.1] +// CHECK:STDOUT: %Op.ref.loc19: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.8878df.1 = name_ref Op, %.loc19_5.2 [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.80597f.1] // CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.bound: = bound_method %a.ref.loc19, %Op.ref.loc19 -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc19, @Cpp.long.as.LeftShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.207d23.2] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc19, @Cpp.long.as.LeftShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.df2fa0.2] // CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %a.ref.loc19, %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc19_9: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc19_9: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc19_9: = bound_method %b.ref.loc19, %impl.elem0.loc19_9 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc19: init %Cpp.long = call %bound_method.loc19_9(%b.ref.loc19) // CHECK:STDOUT: %.loc19_9.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc19 @@ -3458,24 +3458,24 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc19_5.3(%a.ref.loc19, %.loc19_9.2) // CHECK:STDOUT: %a.ref.loc20: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc20: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc20_5: %.585 = impl_witness_access constants.%RightShiftAssignWith.impl_witness.20f, element0 [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.07491d.2] +// CHECK:STDOUT: %impl.elem0.loc20_5: %.17e = impl_witness_access constants.%RightShiftAssignWith.impl_witness.348, element0 [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.76ada1.2] // CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %a.ref.loc20, %impl.elem0.loc20_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.d8b850.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.708585.1] // CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %a.ref.loc20, %specific_fn.loc20 -// CHECK:STDOUT: %.loc20_5.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.40d73d.1 = specific_constant imports.%Core.Op.d53, @Cpp.long.as.RightShiftAssignWith.impl(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.07491d.1] -// CHECK:STDOUT: %Op.ref.loc20: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.40d73d.1 = name_ref Op, %.loc20_5.2 [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.07491d.1] +// CHECK:STDOUT: %.loc20_5.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.3aa338.1 = specific_constant imports.%Core.Op.127, @Cpp.long.as.RightShiftAssignWith.impl(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.76ada1.1] +// CHECK:STDOUT: %Op.ref.loc20: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.3aa338.1 = name_ref Op, %.loc20_5.2 [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.76ada1.1] // CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.bound: = bound_method %a.ref.loc20, %Op.ref.loc20 -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc20, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.d8b850.2] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc20, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.708585.2] // CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %a.ref.loc20, %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc20_9: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc20_9: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc20_9: = bound_method %b.ref.loc20, %impl.elem0.loc20_9 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc20: init %Cpp.long = call %bound_method.loc20_9(%b.ref.loc20) // CHECK:STDOUT: %.loc20_9.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc20 // 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.2dd605.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: // CHECK:STDOUT: } @@ -3494,35 +3494,35 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long: type = class_type @Long32 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.83e: type = pattern_type %Cpp.long [concrete] +// CHECK:STDOUT: %pattern_type.25e: type = pattern_type %Cpp.long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6fa: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e41: = impl_witness imports.%ImplicitAs.impl_witness_table.293 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e41) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.93b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.f84: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.93b, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7eb: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.e27: = impl_witness imports.%ImplicitAs.impl_witness_table.635 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e27) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.7dc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.b13: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.7dc, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %int_1.3d0: %Cpp.long = int_value 1 [concrete] -// CHECK:STDOUT: %AddAssignWith.type.d09: type = facet_type <@AddAssignWith, @AddAssignWith(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %U.887: %ImplicitAs.type.6fa = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.c37e49.1: %Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.c37e49.2: %Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.2 = struct_value () [symbolic] -// CHECK:STDOUT: %AddAssignWith.impl_witness.378: = impl_witness imports.%AddAssignWith.impl_witness_table.d4d, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.e519c0.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.043422.1: %Cpp.long.as.AddAssignWith.impl.Op.type.e519c0.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.e519c0.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.043422.2: %Cpp.long.as.AddAssignWith.impl.Op.type.e519c0.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet.b24: %AddAssignWith.type.d09 = facet_value %Cpp.long, (%AddAssignWith.impl_witness.378) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.697: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(Core.IntLiteral, %AddAssignWith.facet.b24) [concrete] -// CHECK:STDOUT: %.f6c: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.697, %AddAssignWith.facet.b24 [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.c44639.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.043422.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.c44639.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.043422.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] +// CHECK:STDOUT: %int_1.9ce: %Cpp.long = int_value 1 [concrete] +// CHECK:STDOUT: %AddAssignWith.type.5ab: type = facet_type <@AddAssignWith, @AddAssignWith(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %U.315: %ImplicitAs.type.7eb = symbolic_binding U, 0 [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.d1bf47.1: %Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.d1bf47.2: %Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.2 = struct_value () [symbolic] +// CHECK:STDOUT: %AddAssignWith.impl_witness.e58: = impl_witness imports.%AddAssignWith.impl_witness_table.864, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.59ea6c.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.2303e0.1: %Cpp.long.as.AddAssignWith.impl.Op.type.59ea6c.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.59ea6c.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.2303e0.2: %Cpp.long.as.AddAssignWith.impl.Op.type.59ea6c.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet.c43: %AddAssignWith.type.5ab = facet_value %Cpp.long, (%AddAssignWith.impl_witness.e58) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.a65: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(Core.IntLiteral, %AddAssignWith.facet.c43) [concrete] +// CHECK:STDOUT: %.f86: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.a65, %AddAssignWith.facet.c43 [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.ffe0b1.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.2303e0.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.ffe0b1.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.2303e0.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet) [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3530,25 +3530,25 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: .long = constants.%Cpp.long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ade: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.293 = impl_witness_table (%Core.import_ref.ade), @Core.IntLiteral.as.ImplicitAs.impl.ec9 [concrete] -// CHECK:STDOUT: %Core.import_ref.1d2: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long.as.AddAssignWith.impl.Op.c37e49.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table.d4d = impl_witness_table (%Core.import_ref.1d2), @Cpp.long.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.e4e: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.c37e49.2)] +// CHECK:STDOUT: %Core.import_ref.06c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.635 = impl_witness_table (%Core.import_ref.06c), @Core.IntLiteral.as.ImplicitAs.impl.94b [concrete] +// CHECK:STDOUT: %Core.import_ref.3ce: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long.as.AddAssignWith.impl.Op.d1bf47.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table.864 = impl_witness_table (%Core.import_ref.3ce), @Cpp.long.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.7fd: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.d1bf47.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CompoundAssignmentLongAndIntLiteral() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.83e = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.83e = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.25e = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.25e = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Cpp.long = var %a.var_patt // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc8: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc8: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc8: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc8_3: init %Cpp.long = converted %int_1.loc8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc8_3: init %Cpp.long = converted %int_1.loc8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: assign %a.var, %.loc8_3 // CHECK:STDOUT: %.loc8_13: type = splice_block %long.ref [concrete = constants.%Cpp.long] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -3557,24 +3557,24 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %a: ref %Cpp.long = ref_binding a, %a.var // CHECK:STDOUT: %a.ref: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc9_5: %.f6c = impl_witness_access constants.%AddAssignWith.impl_witness.378, element0 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.043422.2] +// CHECK:STDOUT: %impl.elem0.loc9_5: %.f86 = impl_witness_access constants.%AddAssignWith.impl_witness.e58, element0 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.2303e0.2] // CHECK:STDOUT: %bound_method.loc9_5.1: = bound_method %a.ref, %impl.elem0.loc9_5 -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.e41) [concrete = constants.%ImplicitAs.facet] -// CHECK:STDOUT: %.loc9_5.1: %ImplicitAs.type.6fa = converted Core.IntLiteral, %ImplicitAs.facet [concrete = constants.%ImplicitAs.facet] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc9_5, @Cpp.long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.c44639.1] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.e27) [concrete = constants.%ImplicitAs.facet] +// CHECK:STDOUT: %.loc9_5.1: %ImplicitAs.type.7eb = converted Core.IntLiteral, %ImplicitAs.facet [concrete = constants.%ImplicitAs.facet] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc9_5, @Cpp.long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.ffe0b1.1] // CHECK:STDOUT: %bound_method.loc9_5.2: = bound_method %a.ref, %specific_fn -// CHECK:STDOUT: %.loc9_5.2: %Cpp.long.as.AddAssignWith.impl.Op.type.e519c0.1 = specific_constant imports.%Core.Op.e4e, @Cpp.long.as.AddAssignWith.impl(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.043422.1] -// CHECK:STDOUT: %Op.ref: %Cpp.long.as.AddAssignWith.impl.Op.type.e519c0.1 = name_ref Op, %.loc9_5.2 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.043422.1] +// CHECK:STDOUT: %.loc9_5.2: %Cpp.long.as.AddAssignWith.impl.Op.type.59ea6c.1 = specific_constant imports.%Core.Op.7fd, @Cpp.long.as.AddAssignWith.impl(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.2303e0.1] +// CHECK:STDOUT: %Op.ref: %Cpp.long.as.AddAssignWith.impl.Op.type.59ea6c.1 = name_ref Op, %.loc9_5.2 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.2303e0.1] // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.bound: = bound_method %a.ref, %Op.ref -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Cpp.long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.c44639.2] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Cpp.long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.ffe0b1.2] // CHECK:STDOUT: %bound_method.loc9_5.3: = bound_method %a.ref, %Cpp.long.as.AddAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc9_8: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc9_8: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc9_8: = bound_method %int_1.loc9, %impl.elem0.loc9_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long = call %bound_method.loc9_8(%int_1.loc9) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc9_8.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc9_8.2: %Cpp.long = converted %int_1.loc9, %.loc9_8.1 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long = call %bound_method.loc9_8(%int_1.loc9) [concrete = constants.%int_1.9ce] +// 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.2dd605.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: // CHECK:STDOUT: } @@ -3594,56 +3594,56 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.83e: type = pattern_type %Cpp.long [concrete] +// CHECK:STDOUT: %pattern_type.25e: type = pattern_type %Cpp.long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6fa: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e41: = impl_witness imports.%ImplicitAs.impl_witness_table.293 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.c09: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e41) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.93b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.c09) [concrete] -// CHECK:STDOUT: %.f84: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.93b, %ImplicitAs.facet.c09 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7eb: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.e27: = impl_witness imports.%ImplicitAs.impl_witness_table.635 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.b30: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e27) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.7dc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.b30) [concrete] +// CHECK:STDOUT: %.b13: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.7dc, %ImplicitAs.facet.b30 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce [concrete] -// CHECK:STDOUT: %int_1.3d0: %Cpp.long = int_value 1 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %int_1.9ce: %Cpp.long = int_value 1 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.840: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.840) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet.840 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.9f1: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.9f1) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet.9f1 [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: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39, @Core.IntLiteral.as.ImplicitAs.impl.Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %AddAssignWith.type.e37: type = facet_type <@AddAssignWith, @AddAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %U.887: %ImplicitAs.type.6fa = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.c37e49.1: %Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%U.887) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.c37e49.2: %Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.2 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.72d: = impl_witness imports.%ImplicitAs.impl_witness_table.29c [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.0fb: %ImplicitAs.type.6fa = facet_value %i32, (%ImplicitAs.impl_witness.72d) [concrete] -// CHECK:STDOUT: %AddAssignWith.impl_witness.129: = impl_witness imports.%AddAssignWith.impl_witness_table.d4d, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.69179c.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.4ab9dd.1: %Cpp.long.as.AddAssignWith.impl.Op.type.69179c.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.69179c.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.4ab9dd.2: %Cpp.long.as.AddAssignWith.impl.Op.type.69179c.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet.627: %AddAssignWith.type.e37 = facet_value %Cpp.long, (%AddAssignWith.impl_witness.129) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.839: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i32, %AddAssignWith.facet.627) [concrete] -// CHECK:STDOUT: %.72d: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.839, %AddAssignWith.facet.627 [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.548e6a.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.4ab9dd.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.548e6a.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.4ab9dd.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.db6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.0fb) [concrete] -// CHECK:STDOUT: %.9d6: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.db6, %ImplicitAs.facet.0fb [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %AddAssignWith.type.941: type = facet_type <@AddAssignWith, @AddAssignWith(%i32)> [concrete] +// CHECK:STDOUT: %U.315: %ImplicitAs.type.7eb = symbolic_binding U, 0 [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.d1bf47.1: %Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%U.315) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.d1bf47.2: %Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.2 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.f82: = impl_witness imports.%ImplicitAs.impl_witness_table.a75 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.ce4: %ImplicitAs.type.7eb = facet_value %i32, (%ImplicitAs.impl_witness.f82) [concrete] +// CHECK:STDOUT: %AddAssignWith.impl_witness.b48: = impl_witness imports.%AddAssignWith.impl_witness_table.864, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.0c4994.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.d3c936.1: %Cpp.long.as.AddAssignWith.impl.Op.type.0c4994.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.0c4994.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.d3c936.2: %Cpp.long.as.AddAssignWith.impl.Op.type.0c4994.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet.58f: %AddAssignWith.type.941 = facet_value %Cpp.long, (%AddAssignWith.impl_witness.b48) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.e0e: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i32, %AddAssignWith.facet.58f) [concrete] +// CHECK:STDOUT: %.68d: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.e0e, %AddAssignWith.facet.58f [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.d4d8c8.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.d3c936.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.d4d8c8.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.d3c936.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.59b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.ce4) [concrete] +// CHECK:STDOUT: %.9c4: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.59b, %ImplicitAs.facet.ce4 [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.790b3b.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3651,29 +3651,29 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: .long = constants.%Cpp.long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.adef5f.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.293 = impl_witness_table (%Core.import_ref.adef5f.1), @Core.IntLiteral.as.ImplicitAs.impl.ec9 [concrete] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] -// CHECK:STDOUT: %Core.import_ref.1d2: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long.as.AddAssignWith.impl.Op.c37e49.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table.d4d = impl_witness_table (%Core.import_ref.1d2), @Cpp.long.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.e4e: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.ee98fc.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.c37e49.2)] -// CHECK:STDOUT: %Core.import_ref.adef5f.2: %i32.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.29c = impl_witness_table (%Core.import_ref.adef5f.2), @i32.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.06c923.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.635 = impl_witness_table (%Core.import_ref.06c923.1), @Core.IntLiteral.as.ImplicitAs.impl.94b [concrete] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] +// CHECK:STDOUT: %Core.import_ref.3ce: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long.as.AddAssignWith.impl.Op.d1bf47.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table.864 = impl_witness_table (%Core.import_ref.3ce), @Cpp.long.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.7fd: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.d1bf47.2)] +// CHECK:STDOUT: %Core.import_ref.06c923.2: %i32.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a75 = impl_witness_table (%Core.import_ref.06c923.2), @i32.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CompoundAssignmentLongAndRuntimeI32() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.83e = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.83e = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.25e = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.25e = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Cpp.long = var %a.var_patt // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc8: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc8: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc8: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc8_3: init %Cpp.long = converted %int_1.loc8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc8_3: init %Cpp.long = converted %int_1.loc8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.9ce] // CHECK:STDOUT: assign %a.var, %.loc8_3 // CHECK:STDOUT: %.loc8_13: type = splice_block %long.ref [concrete = constants.%Cpp.long] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -3681,38 +3681,38 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %Cpp.long = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc9: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_16.1: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc9: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_16.1: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Core.IntLiteral.as.ImplicitAs.impl.Convert.2(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_16.2: = bound_method %int_1.loc9, %specific_fn.loc9 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_16.2(%int_1.loc9) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc9_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc9_16.2: %i32 = converted %int_1.loc9, %.loc9_16.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_16.2(%int_1.loc9) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_16.2: %i32 = converted %int_1.loc9, %.loc9_16.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %b: %i32 = value_binding b, %.loc9_16.2 // CHECK:STDOUT: %a.ref: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc10_5: %.72d = impl_witness_access constants.%AddAssignWith.impl_witness.129, element0 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.4ab9dd.2] +// CHECK:STDOUT: %impl.elem0.loc10_5: %.68d = impl_witness_access constants.%AddAssignWith.impl_witness.b48, element0 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.d3c936.2] // CHECK:STDOUT: %bound_method.loc10_5.1: = bound_method %a.ref, %impl.elem0.loc10_5 -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.6fa = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.72d) [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.6fa = converted constants.%i32, %ImplicitAs.facet [concrete = constants.%ImplicitAs.facet.0fb] -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @Cpp.long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.548e6a.1] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.7eb = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.f82) [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.7eb = converted constants.%i32, %ImplicitAs.facet [concrete = constants.%ImplicitAs.facet.ce4] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @Cpp.long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.d4d8c8.1] // CHECK:STDOUT: %bound_method.loc10_5.2: = bound_method %a.ref, %specific_fn.loc10 -// CHECK:STDOUT: %.loc10_5.2: %Cpp.long.as.AddAssignWith.impl.Op.type.69179c.1 = specific_constant imports.%Core.Op.e4e, @Cpp.long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.4ab9dd.1] -// CHECK:STDOUT: %Op.ref: %Cpp.long.as.AddAssignWith.impl.Op.type.69179c.1 = name_ref Op, %.loc10_5.2 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.4ab9dd.1] +// CHECK:STDOUT: %.loc10_5.2: %Cpp.long.as.AddAssignWith.impl.Op.type.0c4994.1 = specific_constant imports.%Core.Op.7fd, @Cpp.long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.d3c936.1] +// CHECK:STDOUT: %Op.ref: %Cpp.long.as.AddAssignWith.impl.Op.type.0c4994.1 = name_ref Op, %.loc10_5.2 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.d3c936.1] // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.bound: = bound_method %a.ref, %Op.ref -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Cpp.long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.0fb) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.548e6a.2] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Cpp.long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.ce4) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.d4d8c8.2] // CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %a.ref, %Cpp.long.as.AddAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc10_8: %.9d6 = impl_witness_access constants.%ImplicitAs.impl_witness.72d, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc10_8: %.9c4 = impl_witness_access constants.%ImplicitAs.impl_witness.f82, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_8: = bound_method %b.ref, %impl.elem0.loc10_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call: init %Cpp.long = call %bound_method.loc10_8(%b.ref) // 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.2dd605.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: // CHECK:STDOUT: } @@ -3731,33 +3731,33 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long: type = class_type @Long32 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.83e: type = pattern_type %Cpp.long [concrete] +// CHECK:STDOUT: %pattern_type.25e: type = pattern_type %Cpp.long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6fa: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e41: = impl_witness imports.%ImplicitAs.impl_witness_table.293 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.6fa = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e41) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.93b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.f84: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.93b, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7eb: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.e27: = impl_witness imports.%ImplicitAs.impl_witness_table.635 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.7eb = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e27) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.7dc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.b13: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.7dc, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %int_1.3d0: %Cpp.long = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.9ce: %Cpp.long = int_value 1 [concrete] // CHECK:STDOUT: %Inc.type: type = facet_type <@Inc> [concrete] // CHECK:STDOUT: %Inc.impl_witness: = impl_witness imports.%Inc.impl_witness_table [concrete] // CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %Cpp.long, (%Inc.impl_witness) [concrete] -// CHECK:STDOUT: %Inc.WithSelf.Op.type.c20: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%Inc.facet) [concrete] -// CHECK:STDOUT: %.b8b: type = fn_type_with_self_type %Inc.WithSelf.Op.type.c20, %Inc.facet [concrete] +// CHECK:STDOUT: %Inc.WithSelf.Op.type.329: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%Inc.facet) [concrete] +// CHECK:STDOUT: %.466: type = fn_type_with_self_type %Inc.WithSelf.Op.type.329, %Inc.facet [concrete] // CHECK:STDOUT: %Cpp.long.as.Inc.impl.Op.type: type = fn_type @Cpp.long.as.Inc.impl.Op [concrete] // CHECK:STDOUT: %Cpp.long.as.Inc.impl.Op: %Cpp.long.as.Inc.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Dec.type: type = facet_type <@Dec> [concrete] // CHECK:STDOUT: %Dec.impl_witness: = impl_witness imports.%Dec.impl_witness_table [concrete] // CHECK:STDOUT: %Dec.facet: %Dec.type = facet_value %Cpp.long, (%Dec.impl_witness) [concrete] -// CHECK:STDOUT: %Dec.WithSelf.Op.type.de7: type = fn_type @Dec.WithSelf.Op, @Dec.WithSelf(%Dec.facet) [concrete] -// CHECK:STDOUT: %.f14: type = fn_type_with_self_type %Dec.WithSelf.Op.type.de7, %Dec.facet [concrete] +// CHECK:STDOUT: %Dec.WithSelf.Op.type.cb3: type = fn_type @Dec.WithSelf.Op, @Dec.WithSelf(%Dec.facet) [concrete] +// CHECK:STDOUT: %.9e8: type = fn_type_with_self_type %Dec.WithSelf.Op.type.cb3, %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.790b3b.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3765,26 +3765,26 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: .long = constants.%Cpp.long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ade: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.293 = impl_witness_table (%Core.import_ref.ade), @Core.IntLiteral.as.ImplicitAs.impl.ec9 [concrete] -// CHECK:STDOUT: %Core.import_ref.f63b02.1: %Cpp.long.as.Inc.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.Inc.impl.Op] -// CHECK:STDOUT: %Inc.impl_witness_table = impl_witness_table (%Core.import_ref.f63b02.1), @Cpp.long.as.Inc.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.f63b02.2: %Cpp.long.as.Dec.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.Dec.impl.Op] -// CHECK:STDOUT: %Dec.impl_witness_table = impl_witness_table (%Core.import_ref.f63b02.2), @Cpp.long.as.Dec.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.06c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.635 = impl_witness_table (%Core.import_ref.06c), @Core.IntLiteral.as.ImplicitAs.impl.94b [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3475.1: %Cpp.long.as.Inc.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.Inc.impl.Op] +// CHECK:STDOUT: %Inc.impl_witness_table = impl_witness_table (%Core.import_ref.9c3475.1), @Cpp.long.as.Inc.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3475.2: %Cpp.long.as.Dec.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.Dec.impl.Op] +// CHECK:STDOUT: %Dec.impl_witness_table = impl_witness_table (%Core.import_ref.9c3475.2), @Cpp.long.as.Dec.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @IncrementDecrementLong() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.83e = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.83e = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.25e = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.25e = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Cpp.long = var %a.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc8: %.f84 = impl_witness_access constants.%ImplicitAs.impl_witness.e41, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc8: %.b13 = impl_witness_access constants.%ImplicitAs.impl_witness.e27, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc8: = bound_method %int_1, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.long = call %bound_method.loc8(%int_1) [concrete = constants.%int_1.3d0] -// CHECK:STDOUT: %.loc8_3: init %Cpp.long = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.3d0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.long = call %bound_method.loc8(%int_1) [concrete = constants.%int_1.9ce] +// CHECK:STDOUT: %.loc8_3: init %Cpp.long = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.9ce] // CHECK:STDOUT: assign %a.var, %.loc8_3 // CHECK:STDOUT: %.loc8_13: type = splice_block %long.ref [concrete = constants.%Cpp.long] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -3792,14 +3792,14 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %Cpp.long = ref_binding a, %a.var // CHECK:STDOUT: %a.ref.loc9: ref %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc9: %.b8b = impl_witness_access constants.%Inc.impl_witness, element0 [concrete = constants.%Cpp.long.as.Inc.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc9: %.466 = impl_witness_access constants.%Inc.impl_witness, element0 [concrete = constants.%Cpp.long.as.Inc.impl.Op] // CHECK:STDOUT: %bound_method.loc9: = bound_method %a.ref.loc9, %impl.elem0.loc9 // CHECK:STDOUT: %Cpp.long.as.Inc.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9(%a.ref.loc9) // CHECK:STDOUT: %a.ref.loc10: ref %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc10: %.f14 = impl_witness_access constants.%Dec.impl_witness, element0 [concrete = constants.%Cpp.long.as.Dec.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc10: %.9e8 = 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.2dd605.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: // CHECK:STDOUT: } @@ -3821,91 +3821,91 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %UInt.generic: %UInt.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.9f4: type = pattern_type %Cpp.unsigned_long [concrete] +// CHECK:STDOUT: %pattern_type.1a0: type = pattern_type %Cpp.unsigned_long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.ae2: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.unsigned_long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.1e5: = impl_witness imports.%ImplicitAs.impl_witness_table.a9a [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.5ba: %ImplicitAs.type.ae2 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.1e5) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.57e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.unsigned_long, %ImplicitAs.facet.5ba) [concrete] -// CHECK:STDOUT: %.c47: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.57e, %ImplicitAs.facet.5ba [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.b0c: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.unsigned_long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.2d1: = impl_witness imports.%ImplicitAs.impl_witness_table.643 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.23e: %ImplicitAs.type.b0c = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.2d1) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.bc5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.unsigned_long, %ImplicitAs.facet.23e) [concrete] +// CHECK:STDOUT: %.cce: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.bc5, %ImplicitAs.facet.23e [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce [concrete] -// CHECK:STDOUT: %int_1.3ef: %Cpp.unsigned_long = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0e4: %Cpp.unsigned_long = int_value 1 [concrete] // CHECK:STDOUT: %ULongResult: type = class_type @ULongResult [concrete] -// CHECK:STDOUT: %pattern_type.38e: type = pattern_type %ULongResult [concrete] +// CHECK:STDOUT: %pattern_type.f8a: type = pattern_type %ULongResult [concrete] // CHECK:STDOUT: %PassULong.cpp_overload_set.type: type = cpp_overload_set_type @PassULong.cpp_overload_set [concrete] // CHECK:STDOUT: %PassULong.cpp_overload_set.value: %PassULong.cpp_overload_set.type = cpp_overload_set_value @PassULong.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.54a: type = ptr_type %ULongResult [concrete] -// CHECK:STDOUT: %PassULong__carbon_thunk.type.f4cf84.1: type = fn_type @PassULong__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %PassULong__carbon_thunk.8dc497.1: %PassULong__carbon_thunk.type.f4cf84.1 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.126: type = pattern_type %u32 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.b0a: type = facet_type <@ImplicitAs, @ImplicitAs(%u32)> [concrete] +// CHECK:STDOUT: %ptr.eca: type = ptr_type %ULongResult [concrete] +// CHECK:STDOUT: %PassULong__carbon_thunk.type.c65dc2.1: type = fn_type @PassULong__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %PassULong__carbon_thunk.65c133.1: %PassULong__carbon_thunk.type.c65dc2.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.668: type = pattern_type %u32 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.efe: type = facet_type <@ImplicitAs, @ImplicitAs(%u32)> [concrete] // CHECK:STDOUT: %To.fe9: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2, @Core.IntLiteral.as.ImplicitAs.impl.501(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.498: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.040: = impl_witness imports.%ImplicitAs.impl_witness_table.0c6, @Core.IntLiteral.as.ImplicitAs.impl.501(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.34d: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2, @Core.IntLiteral.as.ImplicitAs.impl.501(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.09f: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.34d = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.1fc: %ImplicitAs.type.b0a = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.040) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.9e6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%u32, %ImplicitAs.facet.1fc) [concrete] -// CHECK:STDOUT: %.955: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.9e6, %ImplicitAs.facet.1fc [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.be4: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.09f [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.09f, @Core.IntLiteral.as.ImplicitAs.impl.Convert.2(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.591: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.ce2: %u32 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2, @Core.IntLiteral.as.ImplicitAs.impl.b68(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.170: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.0a1: = impl_witness imports.%ImplicitAs.impl_witness_table.42f, @Core.IntLiteral.as.ImplicitAs.impl.b68(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.957: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2, @Core.IntLiteral.as.ImplicitAs.impl.b68(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.9db: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.957 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.134: %ImplicitAs.type.efe = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.0a1) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b71: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%u32, %ImplicitAs.facet.134) [concrete] +// CHECK:STDOUT: %.22b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b71, %ImplicitAs.facet.134 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.9db [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.9db, @Core.IntLiteral.as.ImplicitAs.impl.Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.c6d: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.92d: %u32 = int_value 1 [concrete] // CHECK:STDOUT: %UIntResult: type = class_type @UIntResult [concrete] -// CHECK:STDOUT: %pattern_type.5a5: type = pattern_type %UIntResult [concrete] -// CHECK:STDOUT: %ptr.c09: type = ptr_type %UIntResult [concrete] -// CHECK:STDOUT: %PassULong__carbon_thunk.type.f4cf84.2: type = fn_type @PassULong__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %PassULong__carbon_thunk.8dc497.2: %PassULong__carbon_thunk.type.f4cf84.2 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.116: type = pattern_type %UIntResult [concrete] +// CHECK:STDOUT: %ptr.cc8: type = ptr_type %UIntResult [concrete] +// CHECK:STDOUT: %PassULong__carbon_thunk.type.c65dc2.2: type = fn_type @PassULong__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %PassULong__carbon_thunk.65c133.2: %PassULong__carbon_thunk.type.c65dc2.2 = struct_value () [concrete] // CHECK:STDOUT: %Float.type: type = generic_class_type @Float [concrete] // CHECK:STDOUT: %Float.generic: %Float.type = struct_value () [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.6d7: type = facet_type <@As, @As(%Cpp.unsigned_long)> [concrete] -// CHECK:STDOUT: %As.impl_witness.314: = impl_witness imports.%As.impl_witness_table.e82 [concrete] -// CHECK:STDOUT: %As.facet: %As.type.6d7 = facet_value Core.IntLiteral, (%As.impl_witness.314) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.981: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%Cpp.unsigned_long, %As.facet) [concrete] -// CHECK:STDOUT: %.f45: type = fn_type_with_self_type %As.WithSelf.Convert.type.981, %As.facet [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.dce: type = facet_type <@As, @As(%Cpp.unsigned_long)> [concrete] +// CHECK:STDOUT: %As.impl_witness.82b: = impl_witness imports.%As.impl_witness_table.309 [concrete] +// CHECK:STDOUT: %As.facet: %As.type.dce = facet_value Core.IntLiteral, (%As.impl_witness.82b) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.894: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%Cpp.unsigned_long, %As.facet) [concrete] +// CHECK:STDOUT: %.dfb: type = fn_type_with_self_type %As.WithSelf.Convert.type.894, %As.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type: type = fn_type @Core.IntLiteral.as.As.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert: %Core.IntLiteral.as.As.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.6d1: = impl_witness imports.%ImplicitAs.impl_witness_table.245 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.677: %ImplicitAs.type.ace = facet_value %Cpp.unsigned_long, (%ImplicitAs.impl_witness.6d1) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.a12: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.677) [concrete] -// CHECK:STDOUT: %.165: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.a12, %ImplicitAs.facet.677 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.e5c: = impl_witness imports.%ImplicitAs.impl_witness_table.12c [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.089: %ImplicitAs.type.7cb = facet_value %Cpp.unsigned_long, (%ImplicitAs.impl_witness.e5c) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.e92: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.089) [concrete] +// CHECK:STDOUT: %.d9d: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.e92, %ImplicitAs.facet.089 [concrete] // CHECK:STDOUT: %Cpp.unsigned_long.as.ImplicitAs.impl.Convert.type: type = fn_type @Cpp.unsigned_long.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Cpp.unsigned_long.as.ImplicitAs.impl.Convert: %Cpp.unsigned_long.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.unsigned_long.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.3ef, %Cpp.unsigned_long.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.a26 [concrete] +// CHECK:STDOUT: %Cpp.unsigned_long.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.0e4, %Cpp.unsigned_long.as.ImplicitAs.impl.Convert [concrete] +// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.c73 [concrete] // CHECK:STDOUT: %f32.9b3: type = float_type %int_32, f32 [concrete] -// CHECK:STDOUT: %pattern_type.aab: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.18b: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.FloatLiteral) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%float.6da) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.d0d: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.a26)> [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.65d: = impl_witness imports.%ImplicitAs.impl_witness_table.234, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.82a: %ImplicitAs.type.d0d = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.65d) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c87: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.a26, %ImplicitAs.facet.82a) [concrete] -// CHECK:STDOUT: %.3a8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c87, %ImplicitAs.facet.82a [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.aaa: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%float.2ec) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.ed3: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.c73)> [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.303: = impl_witness imports.%ImplicitAs.impl_witness_table.393, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.65e: %ImplicitAs.type.ed3 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.303) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2e4: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.c73, %ImplicitAs.facet.65e) [concrete] +// CHECK:STDOUT: %.17b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2e4, %ImplicitAs.facet.65e [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// 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.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc24_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [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: %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] @@ -3914,7 +3914,7 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { -// CHECK:STDOUT: .CppCompat = %CppCompat.463205.1 +// CHECK:STDOUT: .CppCompat = %CppCompat.f0dbf9.1 // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: .UInt = %Core.UInt // CHECK:STDOUT: .Float = %Core.Float @@ -3931,67 +3931,67 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.CppCompat: = import_ref Core//prelude, CppCompat, loaded -// CHECK:STDOUT: %CppCompat.463205.1: = namespace %Core.CppCompat, [concrete] { +// CHECK:STDOUT: %CppCompat.f0dbf9.1: = namespace %Core.CppCompat, [concrete] { // CHECK:STDOUT: .ULong32 = %Core.ULong32 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.ULong32: type = import_ref Core//prelude/types/cpp/int, ULong32, loaded [concrete = constants.%Cpp.unsigned_long] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.adef5f.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a9a = impl_witness_table (%Core.import_ref.adef5f.1), @Core.IntLiteral.as.ImplicitAs.impl.160 [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.06c923.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.643 = impl_witness_table (%Core.import_ref.06c923.1), @Core.IntLiteral.as.ImplicitAs.impl.4a4 [concrete] // CHECK:STDOUT: %ULongResult.decl: type = class_decl @ULongResult [concrete = constants.%ULongResult] {} {} // CHECK:STDOUT: %PassULong.cpp_overload_set.value: %PassULong.cpp_overload_set.type = cpp_overload_set_value @PassULong.cpp_overload_set [concrete = constants.%PassULong.cpp_overload_set.value] -// CHECK:STDOUT: %PassULong__carbon_thunk.decl.43aa98.1: %PassULong__carbon_thunk.type.f4cf84.1 = fn_decl @PassULong__carbon_thunk.1 [concrete = constants.%PassULong__carbon_thunk.8dc497.1] { +// CHECK:STDOUT: %PassULong__carbon_thunk.decl.5da2e0.1: %PassULong__carbon_thunk.type.c65dc2.1 = fn_decl @PassULong__carbon_thunk.1 [concrete = constants.%PassULong__carbon_thunk.65c133.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Core.UInt: %UInt.type = import_ref Core//prelude/types/uint, UInt, loaded [concrete = constants.%UInt.generic] -// CHECK:STDOUT: %Core.import_ref.e9f: @Core.IntLiteral.as.ImplicitAs.impl.501.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.501.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.498)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0c6 = impl_witness_table (%Core.import_ref.e9f), @Core.IntLiteral.as.ImplicitAs.impl.501 [concrete] +// CHECK:STDOUT: %Core.import_ref.aa5: @Core.IntLiteral.as.ImplicitAs.impl.b68.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.b68.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.170)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.42f = impl_witness_table (%Core.import_ref.aa5), @Core.IntLiteral.as.ImplicitAs.impl.b68 [concrete] // CHECK:STDOUT: %UIntResult.decl: type = class_decl @UIntResult [concrete = constants.%UIntResult] {} {} -// CHECK:STDOUT: %PassULong__carbon_thunk.decl.43aa98.2: %PassULong__carbon_thunk.type.f4cf84.2 = fn_decl @PassULong__carbon_thunk.2 [concrete = constants.%PassULong__carbon_thunk.8dc497.2] { +// CHECK:STDOUT: %PassULong__carbon_thunk.decl.5da2e0.2: %PassULong__carbon_thunk.type.c65dc2.2 = fn_decl @PassULong__carbon_thunk.2 [concrete = constants.%PassULong__carbon_thunk.65c133.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Float: %Float.type = import_ref Core//prelude/types/float, Float, loaded [concrete = constants.%Float.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/operators/as, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.adef5f.2: %Core.IntLiteral.as.As.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] -// CHECK:STDOUT: %As.impl_witness_table.e82 = impl_witness_table (%Core.import_ref.adef5f.2), @Core.IntLiteral.as.As.impl.51f [concrete] -// CHECK:STDOUT: %Core.import_ref.adef5f.3: %Cpp.unsigned_long.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.unsigned_long.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.245 = impl_witness_table (%Core.import_ref.adef5f.3), @Cpp.unsigned_long.as.ImplicitAs.impl.b42 [concrete] -// CHECK:STDOUT: %Core.import_ref.63cb: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.234 = impl_witness_table (%Core.import_ref.63cb), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/operators/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.06c923.2: %Core.IntLiteral.as.As.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] +// CHECK:STDOUT: %As.impl_witness_table.309 = impl_witness_table (%Core.import_ref.06c923.2), @Core.IntLiteral.as.As.impl.4bc [concrete] +// CHECK:STDOUT: %Core.import_ref.06c923.3: %Cpp.unsigned_long.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.unsigned_long.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.12c = impl_witness_table (%Core.import_ref.06c923.3), @Cpp.unsigned_long.as.ImplicitAs.impl.b57 [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.393 = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_unsigned_long.patt: %pattern_type.9f4 = value_binding_pattern cpp_unsigned_long [concrete] +// CHECK:STDOUT: %cpp_unsigned_long.patt: %pattern_type.1a0 = value_binding_pattern cpp_unsigned_long [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc15: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc15_29: type = splice_block %unsigned_long.ref.loc15 [concrete = constants.%Cpp.unsigned_long] { // CHECK:STDOUT: %Cpp.ref.loc15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %unsigned_long.ref.loc15: type = name_ref unsigned_long, constants.%Cpp.unsigned_long [concrete = constants.%Cpp.unsigned_long] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc15: %.c47 = impl_witness_access constants.%ImplicitAs.impl_witness.1e5, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc15: %.cce = impl_witness_access constants.%ImplicitAs.impl_witness.2d1, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc15: = bound_method %int_1.loc15, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %Cpp.unsigned_long = call %bound_method.loc15(%int_1.loc15) [concrete = constants.%int_1.3ef] -// CHECK:STDOUT: %.loc15_46.1: %Cpp.unsigned_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%int_1.3ef] -// CHECK:STDOUT: %.loc15_46.2: %Cpp.unsigned_long = converted %int_1.loc15, %.loc15_46.1 [concrete = constants.%int_1.3ef] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %Cpp.unsigned_long = call %bound_method.loc15(%int_1.loc15) [concrete = constants.%int_1.0e4] +// CHECK:STDOUT: %.loc15_46.1: %Cpp.unsigned_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%int_1.0e4] +// CHECK:STDOUT: %.loc15_46.2: %Cpp.unsigned_long = converted %int_1.loc15, %.loc15_46.1 [concrete = constants.%int_1.0e4] // CHECK:STDOUT: %cpp_unsigned_long: %Cpp.unsigned_long = value_binding cpp_unsigned_long, %.loc15_46.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_unsigned_long_result.patt: %pattern_type.38e = value_binding_pattern cpp_unsigned_long_result [concrete] +// CHECK:STDOUT: %cpp_unsigned_long_result.patt: %pattern_type.f8a = value_binding_pattern cpp_unsigned_long_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc16_58: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassULong.ref.loc16: %PassULong.cpp_overload_set.type = name_ref PassULong, imports.%PassULong.cpp_overload_set.value [concrete = constants.%PassULong.cpp_overload_set.value] // CHECK:STDOUT: %cpp_unsigned_long.ref.loc16: %Cpp.unsigned_long = name_ref cpp_unsigned_long, %cpp_unsigned_long // CHECK:STDOUT: %.loc16_89.1: ref %ULongResult = temporary_storage -// CHECK:STDOUT: %addr.loc16: %ptr.54a = addr_of %.loc16_89.1 -// CHECK:STDOUT: %PassULong__carbon_thunk.call.loc16: init %empty_tuple.type = call imports.%PassULong__carbon_thunk.decl.43aa98.1(%cpp_unsigned_long.ref.loc16, %addr.loc16) +// CHECK:STDOUT: %addr.loc16: %ptr.eca = addr_of %.loc16_89.1 +// CHECK:STDOUT: %PassULong__carbon_thunk.call.loc16: init %empty_tuple.type = call imports.%PassULong__carbon_thunk.decl.5da2e0.1(%cpp_unsigned_long.ref.loc16, %addr.loc16) // CHECK:STDOUT: %.loc16_89.2: init %ULongResult to %.loc16_89.1 = mark_in_place_init %PassULong__carbon_thunk.call.loc16 // CHECK:STDOUT: %.loc16_43: type = splice_block %ULongResult.ref.loc16 [concrete = constants.%ULongResult] { // CHECK:STDOUT: %Cpp.ref.loc16_40: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -4001,24 +4001,24 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc16_89.4: %ULongResult = acquire_value %.loc16_89.3 // CHECK:STDOUT: %cpp_unsigned_long_result: %ULongResult = value_binding cpp_unsigned_long_result, %.loc16_89.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_compat_ulong.patt: %pattern_type.9f4 = value_binding_pattern cpp_compat_ulong [concrete] +// CHECK:STDOUT: %cpp_compat_ulong.patt: %pattern_type.1a0 = value_binding_pattern cpp_compat_ulong [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_unsigned_long.ref.loc18: %Cpp.unsigned_long = name_ref cpp_unsigned_long, %cpp_unsigned_long // CHECK:STDOUT: %.loc18: type = splice_block %ULong32.ref [concrete = constants.%Cpp.unsigned_long] { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %CppCompat.ref: = name_ref CppCompat, imports.%CppCompat.463205.1 [concrete = imports.%CppCompat.463205.1] +// CHECK:STDOUT: %CppCompat.ref: = name_ref CppCompat, imports.%CppCompat.f0dbf9.1 [concrete = imports.%CppCompat.f0dbf9.1] // CHECK:STDOUT: %ULong32.ref: type = name_ref ULong32, imports.%Core.ULong32 [concrete = constants.%Cpp.unsigned_long] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_compat_ulong: %Cpp.unsigned_long = value_binding cpp_compat_ulong, %cpp_unsigned_long.ref.loc18 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_compat_ulong_result.patt: %pattern_type.38e = value_binding_pattern cpp_compat_ulong_result [concrete] +// CHECK:STDOUT: %cpp_compat_ulong_result.patt: %pattern_type.f8a = value_binding_pattern cpp_compat_ulong_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc19_57: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassULong.ref.loc19: %PassULong.cpp_overload_set.type = name_ref PassULong, imports.%PassULong.cpp_overload_set.value [concrete = constants.%PassULong.cpp_overload_set.value] // CHECK:STDOUT: %cpp_compat_ulong.ref: %Cpp.unsigned_long = name_ref cpp_compat_ulong, %cpp_compat_ulong // CHECK:STDOUT: %.loc19_87.1: ref %ULongResult = temporary_storage -// CHECK:STDOUT: %addr.loc19: %ptr.54a = addr_of %.loc19_87.1 -// CHECK:STDOUT: %PassULong__carbon_thunk.call.loc19: init %empty_tuple.type = call imports.%PassULong__carbon_thunk.decl.43aa98.1(%cpp_compat_ulong.ref, %addr.loc19) +// CHECK:STDOUT: %addr.loc19: %ptr.eca = addr_of %.loc19_87.1 +// CHECK:STDOUT: %PassULong__carbon_thunk.call.loc19: init %empty_tuple.type = call imports.%PassULong__carbon_thunk.decl.5da2e0.1(%cpp_compat_ulong.ref, %addr.loc19) // CHECK:STDOUT: %.loc19_87.2: init %ULongResult to %.loc19_87.1 = mark_in_place_init %PassULong__carbon_thunk.call.loc19 // CHECK:STDOUT: %.loc19_42: type = splice_block %ULongResult.ref.loc19 [concrete = constants.%ULongResult] { // CHECK:STDOUT: %Cpp.ref.loc19_39: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -4028,27 +4028,27 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc19_87.4: %ULongResult = acquire_value %.loc19_87.3 // CHECK:STDOUT: %cpp_compat_ulong_result: %ULongResult = value_binding cpp_compat_ulong_result, %.loc19_87.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_u32.patt: %pattern_type.126 = value_binding_pattern carbon_u32 [concrete] +// CHECK:STDOUT: %carbon_u32.patt: %pattern_type.668 = value_binding_pattern carbon_u32 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc21: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %u32: type = type_literal constants.%u32 [concrete = constants.%u32] -// CHECK:STDOUT: %impl.elem0.loc21: %.955 = impl_witness_access constants.%ImplicitAs.impl_witness.040, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.09f] -// CHECK:STDOUT: %bound_method.loc21_25.1: = bound_method %int_1.loc21, %impl.elem0.loc21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.be4] +// CHECK:STDOUT: %impl.elem0.loc21: %.22b = impl_witness_access constants.%ImplicitAs.impl_witness.0a1, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.9db] +// CHECK:STDOUT: %bound_method.loc21_25.1: = bound_method %int_1.loc21, %impl.elem0.loc21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] // CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Core.IntLiteral.as.ImplicitAs.impl.Convert.2(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc21_25.2: = bound_method %int_1.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.591] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %u32 = call %bound_method.loc21_25.2(%int_1.loc21) [concrete = constants.%int_1.ce2] -// CHECK:STDOUT: %.loc21_25.1: %u32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_1.ce2] -// CHECK:STDOUT: %.loc21_25.2: %u32 = converted %int_1.loc21, %.loc21_25.1 [concrete = constants.%int_1.ce2] +// CHECK:STDOUT: %bound_method.loc21_25.2: = bound_method %int_1.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.c6d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %u32 = call %bound_method.loc21_25.2(%int_1.loc21) [concrete = constants.%int_1.92d] +// CHECK:STDOUT: %.loc21_25.1: %u32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_1.92d] +// CHECK:STDOUT: %.loc21_25.2: %u32 = converted %int_1.loc21, %.loc21_25.1 [concrete = constants.%int_1.92d] // CHECK:STDOUT: %carbon_u32: %u32 = value_binding carbon_u32, %.loc21_25.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_u32_result.patt: %pattern_type.5a5 = value_binding_pattern carbon_u32_result [concrete] +// CHECK:STDOUT: %carbon_u32_result.patt: %pattern_type.116 = value_binding_pattern carbon_u32_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc22_50: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassULong.ref.loc22: %PassULong.cpp_overload_set.type = name_ref PassULong, imports.%PassULong.cpp_overload_set.value [concrete = constants.%PassULong.cpp_overload_set.value] // CHECK:STDOUT: %carbon_u32.ref: %u32 = name_ref carbon_u32, %carbon_u32 // CHECK:STDOUT: %.loc22_74.1: ref %UIntResult = temporary_storage -// CHECK:STDOUT: %addr.loc22: %ptr.c09 = addr_of %.loc22_74.1 -// CHECK:STDOUT: %PassULong__carbon_thunk.call.loc22: init %empty_tuple.type = call imports.%PassULong__carbon_thunk.decl.43aa98.2(%carbon_u32.ref, %addr.loc22) +// CHECK:STDOUT: %addr.loc22: %ptr.cc8 = addr_of %.loc22_74.1 +// CHECK:STDOUT: %PassULong__carbon_thunk.call.loc22: init %empty_tuple.type = call imports.%PassULong__carbon_thunk.decl.5da2e0.2(%carbon_u32.ref, %addr.loc22) // CHECK:STDOUT: %.loc22_74.2: init %UIntResult to %.loc22_74.1 = mark_in_place_init %PassULong__carbon_thunk.call.loc22 // CHECK:STDOUT: %.loc22_36: type = splice_block %UIntResult.ref [concrete = constants.%UIntResult] { // CHECK:STDOUT: %Cpp.ref.loc22_33: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -4058,35 +4058,35 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc22_74.4: %UIntResult = acquire_value %.loc22_74.3 // CHECK:STDOUT: %carbon_u32_result: %UIntResult = value_binding carbon_u32_result, %.loc22_74.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.aab = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.aab = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %array_type = var %a.var_patt // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] // CHECK:STDOUT: %.loc24_59.1: %tuple.type = tuple_literal (%float) [concrete = constants.%tuple] -// CHECK:STDOUT: %impl.elem0.loc24_59: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] +// CHECK:STDOUT: %impl.elem0.loc24_59: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] // CHECK:STDOUT: %bound_method.loc24_59.1: = bound_method %float, %impl.elem0.loc24_59 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc24: = specific_function %impl.elem0.loc24_59, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc24_59.2: = bound_method %float, %specific_fn.loc24 [concrete = constants.%bound_method.aaa] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.a26 = call %bound_method.loc24_59.2(%float) [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc24_59.2: init %f32.a26 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.2ec] +// CHECK:STDOUT: %bound_method.loc24_59.2: = bound_method %float, %specific_fn.loc24 [concrete = constants.%bound_method.3e4] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.c73 = call %bound_method.loc24_59.2(%float) [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc24_59.2: init %f32.c73 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.943] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %.loc24_59.3: ref %f32.a26 = array_index %a.var, %int_0 -// CHECK:STDOUT: %.loc24_59.4: init %f32.a26 to %.loc24_59.3 = in_place_init %.loc24_59.2 [concrete = constants.%float.2ec] +// CHECK:STDOUT: %.loc24_59.3: ref %f32.c73 = array_index %a.var, %int_0 +// CHECK:STDOUT: %.loc24_59.4: init %f32.c73 to %.loc24_59.3 = in_place_init %.loc24_59.2 [concrete = constants.%float.943] // CHECK:STDOUT: %.loc24_59.5: init %array_type to %a.var = array_init (%.loc24_59.4) [concrete = constants.%array] // CHECK:STDOUT: %.loc24_3: init %array_type = converted %.loc24_59.1, %.loc24_59.5 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc24_3 // CHECK:STDOUT: %.loc24_50: type = splice_block %array_type [concrete = constants.%array_type] { -// CHECK:STDOUT: %f32: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] +// CHECK:STDOUT: %f32: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] // CHECK:STDOUT: %int_1.loc24: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %Cpp.ref.loc24: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %unsigned_long.ref.loc24: type = name_ref unsigned_long, constants.%Cpp.unsigned_long [concrete = constants.%Cpp.unsigned_long] -// CHECK:STDOUT: %impl.elem0.loc24_30.1: %.f45 = impl_witness_access constants.%As.impl_witness.314, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc24_30.1: %.dfb = impl_witness_access constants.%As.impl_witness.82b, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] // CHECK:STDOUT: %bound_method.loc24_30.1: = bound_method %int_1.loc24, %impl.elem0.loc24_30.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %Cpp.unsigned_long = call %bound_method.loc24_30.1(%int_1.loc24) [concrete = constants.%int_1.3ef] -// CHECK:STDOUT: %.loc24_30.1: %Cpp.unsigned_long = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.3ef] -// CHECK:STDOUT: %.loc24_30.2: %Cpp.unsigned_long = converted %int_1.loc24, %.loc24_30.1 [concrete = constants.%int_1.3ef] -// CHECK:STDOUT: %impl.elem0.loc24_30.2: %.165 = impl_witness_access constants.%ImplicitAs.impl_witness.6d1, element0 [concrete = constants.%Cpp.unsigned_long.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %Cpp.unsigned_long = call %bound_method.loc24_30.1(%int_1.loc24) [concrete = constants.%int_1.0e4] +// CHECK:STDOUT: %.loc24_30.1: %Cpp.unsigned_long = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.0e4] +// CHECK:STDOUT: %.loc24_30.2: %Cpp.unsigned_long = converted %int_1.loc24, %.loc24_30.1 [concrete = constants.%int_1.0e4] +// CHECK:STDOUT: %impl.elem0.loc24_30.2: %.d9d = impl_witness_access constants.%ImplicitAs.impl_witness.e5c, element0 [concrete = constants.%Cpp.unsigned_long.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc24_30.2: = bound_method %.loc24_30.2, %impl.elem0.loc24_30.2 [concrete = constants.%Cpp.unsigned_long.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %Cpp.unsigned_long.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.loc24_30.2(%.loc24_30.2) [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc24_30.3: Core.IntLiteral = value_of_initializer %Cpp.unsigned_long.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.5b8] @@ -4094,7 +4094,7 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %array_type: type = array_type %.loc24_30.4, %f32 [concrete = constants.%array_type] // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %array_type = ref_binding a, %a.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.3 +// 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: %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) @@ -4107,7 +4107,7 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.a26) { +// CHECK:STDOUT: fn @Destroy.Op.loc24_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -4124,26 +4124,26 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.unsigned_long: type = class_type @ULong32 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %u32.builtin: type = int_type unsigned, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.9f4: type = pattern_type %Cpp.unsigned_long [concrete] +// CHECK:STDOUT: %pattern_type.1a0: type = pattern_type %Cpp.unsigned_long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.ae2: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.unsigned_long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.b0c: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.unsigned_long)> [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.1e5: = impl_witness imports.%ImplicitAs.impl_witness_table.a9a [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.ae2 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.1e5) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.57e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.unsigned_long, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.c47: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.57e, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.2d1: = impl_witness imports.%ImplicitAs.impl_witness_table.643 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.b0c = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.2d1) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.bc5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.unsigned_long, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.cce: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.bc5, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %int_1.3ef: %Cpp.unsigned_long = int_value 1 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.d5d: = impl_witness imports.%Copy.impl_witness_table.916 [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Cpp.unsigned_long, (%Copy.impl_witness.d5d) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.9f4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.f33: type = fn_type_with_self_type %Copy.WithSelf.Op.type.9f4, %Copy.facet [concrete] +// CHECK:STDOUT: %int_1.0e4: %Cpp.unsigned_long = int_value 1 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.845: = impl_witness imports.%Copy.impl_witness_table.304 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Cpp.unsigned_long, (%Copy.impl_witness.845) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.2ea: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.a6d: type = fn_type_with_self_type %Copy.WithSelf.Op.type.2ea, %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.790b3b.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -4151,24 +4151,24 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: .unsigned_long = constants.%Cpp.unsigned_long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ade: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a9a = impl_witness_table (%Core.import_ref.ade), @Core.IntLiteral.as.ImplicitAs.impl.160 [concrete] -// CHECK:STDOUT: %Core.import_ref.f63: %Cpp.unsigned_long.as.Copy.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.unsigned_long.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.916 = impl_witness_table (%Core.import_ref.f63), @Cpp.unsigned_long.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.06c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.643 = impl_witness_table (%Core.import_ref.06c), @Core.IntLiteral.as.ImplicitAs.impl.4a4 [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Cpp.unsigned_long.as.Copy.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.unsigned_long.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.304 = impl_witness_table (%Core.import_ref.9c3), @Cpp.unsigned_long.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CopyUnsignedLong() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.9f4 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.9f4 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.1a0 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.1a0 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Cpp.unsigned_long = var %a.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc8: %.c47 = impl_witness_access constants.%ImplicitAs.impl_witness.1e5, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc8: %.cce = impl_witness_access constants.%ImplicitAs.impl_witness.2d1, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc8: = bound_method %int_1, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.unsigned_long = call %bound_method.loc8(%int_1) [concrete = constants.%int_1.3ef] -// CHECK:STDOUT: %.loc8_3: init %Cpp.unsigned_long = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.3ef] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.unsigned_long = call %bound_method.loc8(%int_1) [concrete = constants.%int_1.0e4] +// CHECK:STDOUT: %.loc8_3: init %Cpp.unsigned_long = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0e4] // CHECK:STDOUT: assign %a.var, %.loc8_3 // CHECK:STDOUT: %.loc8_13: type = splice_block %unsigned_long.ref.loc8 [concrete = constants.%Cpp.unsigned_long] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -4176,13 +4176,13 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %Cpp.unsigned_long = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.9f4 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.9f4 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.1a0 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.1a0 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %Cpp.unsigned_long = var %b.var_patt // CHECK:STDOUT: %a.ref: ref %Cpp.unsigned_long = name_ref a, %a // CHECK:STDOUT: %.loc9_37: %Cpp.unsigned_long = acquire_value %a.ref -// CHECK:STDOUT: %impl.elem0.loc9: %.f33 = impl_witness_access constants.%Copy.impl_witness.d5d, element0 [concrete = constants.%Cpp.unsigned_long.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc9: %.a6d = impl_witness_access constants.%Copy.impl_witness.845, element0 [concrete = constants.%Cpp.unsigned_long.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_37, %impl.elem0.loc9 // CHECK:STDOUT: %Cpp.unsigned_long.as.Copy.impl.Op.call: init %Cpp.unsigned_long = call %bound_method.loc9(%.loc9_37) // CHECK:STDOUT: assign %b.var, %Cpp.unsigned_long.as.Copy.impl.Op.call @@ -4191,9 +4191,9 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %unsigned_long.ref.loc9: type = name_ref unsigned_long, constants.%Cpp.unsigned_long [concrete = constants.%Cpp.unsigned_long] // CHECK:STDOUT: } // CHECK:STDOUT: %b: ref %Cpp.unsigned_long = ref_binding b, %b.var -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 // 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.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%a.var) // CHECK:STDOUT: // 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 e34790d88d64..4d0eda2d562b 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 @@ -638,72 +638,72 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.fdd: type = pattern_type %i64 [concrete] +// CHECK:STDOUT: %pattern_type.f57: type = pattern_type %i64 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.08a: type = facet_type <@ImplicitAs, @ImplicitAs(%i64)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.221: type = facet_type <@ImplicitAs, @ImplicitAs(%i64)> [concrete] // CHECK:STDOUT: %To.fe9: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %From.fe9: Core.IntLiteral = symbolic_binding From, 0 [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.f73: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From.fe9) [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.34b: %Int.as.ImplicitAs.impl.Convert.type.f73 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.35c: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.fc2: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.fc2 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.8a1: %ImplicitAs.type.08a = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.35c) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.744: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i64, %ImplicitAs.facet.8a1) [concrete] -// CHECK:STDOUT: %.d4c: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.744, %ImplicitAs.facet.8a1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5, @Core.IntLiteral.as.ImplicitAs.impl.Convert.1(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.072: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.0f3: %i64 = int_value 1 [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.48d: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From.fe9) [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.0f9: %Int.as.ImplicitAs.impl.Convert.type.48d = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.091: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.55a: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.55a = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.6e8: %ImplicitAs.type.221 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.091) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.a04: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i64, %ImplicitAs.facet.6e8) [concrete] +// CHECK:STDOUT: %.f34: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.a04, %ImplicitAs.facet.6e8 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b, @Core.IntLiteral.as.ImplicitAs.impl.Convert.1(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.c5e: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.d98: %i64 = int_value 1 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %As.type.b69: type = facet_type <@As, @As(%i64)> [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.0e9: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.8db: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.fb1: %Core.IntLiteral.as.As.impl.Convert.type.8db = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.b69 = facet_value Core.IntLiteral, (%As.impl_witness.0e9) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.553: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i64, %As.facet) [concrete] -// CHECK:STDOUT: %.9b9: type = fn_type_with_self_type %As.WithSelf.Convert.type.553, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.fb1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.fb1, @Core.IntLiteral.as.As.impl.Convert(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.b27: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.4e4: = impl_witness imports.%ImplicitAs.impl_witness_table.eac, @Int.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.382: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.63c: %Int.as.ImplicitAs.impl.Convert.type.382 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.643: %ImplicitAs.type.ace = facet_value %i64, (%ImplicitAs.impl_witness.4e4) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.aac: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.643) [concrete] -// CHECK:STDOUT: %.737: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.aac, %ImplicitAs.facet.643 [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.0f3, %Int.as.ImplicitAs.impl.Convert.63c [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.63c, @Int.as.ImplicitAs.impl.Convert(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.e78: = bound_method %int_1.0f3, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.a26 [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %As.type.998: type = facet_type <@As, @As(%i64)> [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.2e1: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.1a1: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.3d9: %Core.IntLiteral.as.As.impl.Convert.type.1a1 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.998 = facet_value Core.IntLiteral, (%As.impl_witness.2e1) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.2b4: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i64, %As.facet) [concrete] +// CHECK:STDOUT: %.01b: type = fn_type_with_self_type %As.WithSelf.Convert.type.2b4, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.3d9 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.3d9, @Core.IntLiteral.as.As.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.991: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a75: = impl_witness imports.%ImplicitAs.impl_witness_table.b8b, @Int.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.ad9: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.be5: %Int.as.ImplicitAs.impl.Convert.type.ad9 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.cee: %ImplicitAs.type.7cb = facet_value %i64, (%ImplicitAs.impl_witness.a75) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.004: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.cee) [concrete] +// CHECK:STDOUT: %.779: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.004, %ImplicitAs.facet.cee [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.d98, %Int.as.ImplicitAs.impl.Convert.be5 [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.be5, @Int.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.e21: = bound_method %int_1.d98, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.c73 [concrete] // CHECK:STDOUT: %f32.9b3: type = float_type %int_32, f32 [concrete] -// CHECK:STDOUT: %pattern_type.aab: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.18b: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.FloatLiteral) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%float.6da) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.d0d: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.a26)> [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.65d: = impl_witness imports.%ImplicitAs.impl_witness_table.234, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.82a: %ImplicitAs.type.d0d = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.65d) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c87: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.a26, %ImplicitAs.facet.82a) [concrete] -// CHECK:STDOUT: %.3a8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c87, %ImplicitAs.facet.82a [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.aaa: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%float.2ec) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc11_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.ed3: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.c73)> [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.303: = impl_witness imports.%ImplicitAs.impl_witness_table.393, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.65e: %ImplicitAs.type.ed3 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.303) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2e4: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.c73, %ImplicitAs.facet.65e) [concrete] +// CHECK:STDOUT: %.17b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2e4, %ImplicitAs.facet.65e [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -711,20 +711,20 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: .long = @F.%i64.2 // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] -// CHECK:STDOUT: %Core.import_ref.835: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.f73) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.34b)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.eac = impl_witness_table (%Core.import_ref.835), @Int.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.63cb: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.234 = impl_witness_table (%Core.import_ref.63cb), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] +// CHECK:STDOUT: %Core.import_ref.32e: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.48d) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.0f9)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b8b = impl_witness_table (%Core.import_ref.32e), @Int.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.393 = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_long.patt: %pattern_type.fdd = value_binding_pattern cpp_long [concrete] +// CHECK:STDOUT: %cpp_long.patt: %pattern_type.f57 = value_binding_pattern cpp_long [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc8_20: type = splice_block %long.ref.loc8 [concrete = constants.%i64] { @@ -732,69 +732,69 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: // CHECK:STDOUT: %long.ref.loc8: type = name_ref long, %i64.2 [concrete = constants.%i64] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc8: %.d4c = impl_witness_access constants.%ImplicitAs.impl_witness.35c, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5] +// CHECK:STDOUT: %impl.elem0.loc8: %.f34 = impl_witness_access constants.%ImplicitAs.impl_witness.091, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b] // CHECK:STDOUT: %bound_method.loc8_28.1: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.ImplicitAs.impl.Convert.1(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_28.2: = bound_method %int_1.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.072] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i64 = call %bound_method.loc8_28.2(%int_1.loc8) [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %.loc8_28.1: %i64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %.loc8_28.2: %i64 = converted %int_1.loc8, %.loc8_28.1 [concrete = constants.%int_1.0f3] +// CHECK:STDOUT: %bound_method.loc8_28.2: = bound_method %int_1.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.c5e] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i64 = call %bound_method.loc8_28.2(%int_1.loc8) [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc8_28.1: %i64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc8_28.2: %i64 = converted %int_1.loc8, %.loc8_28.1 [concrete = constants.%int_1.d98] // CHECK:STDOUT: %cpp_long: %i64 = value_binding cpp_long, %.loc8_28.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_long.patt: %pattern_type.fdd = value_binding_pattern carbon_long [concrete] +// CHECK:STDOUT: %carbon_long.patt: %pattern_type.f57 = value_binding_pattern carbon_long [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_long.ref: %i64 = name_ref cpp_long, %cpp_long // CHECK:STDOUT: %i64.loc9: type = type_literal constants.%i64 [concrete = constants.%i64] // CHECK:STDOUT: %carbon_long: %i64 = value_binding carbon_long, %cpp_long.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.aab = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.aab = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %array_type = var %a.var_patt // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] // CHECK:STDOUT: %.loc11_50.1: %tuple.type = tuple_literal (%float) [concrete = constants.%tuple] -// CHECK:STDOUT: %impl.elem0.loc11_50: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] +// CHECK:STDOUT: %impl.elem0.loc11_50: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] // CHECK:STDOUT: %bound_method.loc11_50.1: = bound_method %float, %impl.elem0.loc11_50 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc11_50: = specific_function %impl.elem0.loc11_50, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_50.2: = bound_method %float, %specific_fn.loc11_50 [concrete = constants.%bound_method.aaa] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.a26 = call %bound_method.loc11_50.2(%float) [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc11_50.2: init %f32.a26 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.2ec] +// CHECK:STDOUT: %bound_method.loc11_50.2: = bound_method %float, %specific_fn.loc11_50 [concrete = constants.%bound_method.3e4] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.c73 = call %bound_method.loc11_50.2(%float) [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc11_50.2: init %f32.c73 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.943] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %.loc11_50.3: ref %f32.a26 = array_index %a.var, %int_0 -// CHECK:STDOUT: %.loc11_50.4: init %f32.a26 to %.loc11_50.3 = in_place_init %.loc11_50.2 [concrete = constants.%float.2ec] +// CHECK:STDOUT: %.loc11_50.3: ref %f32.c73 = array_index %a.var, %int_0 +// CHECK:STDOUT: %.loc11_50.4: init %f32.c73 to %.loc11_50.3 = in_place_init %.loc11_50.2 [concrete = constants.%float.943] // CHECK:STDOUT: %.loc11_50.5: init %array_type to %a.var = array_init (%.loc11_50.4) [concrete = constants.%array] // CHECK:STDOUT: %.loc11_3: init %array_type = converted %.loc11_50.1, %.loc11_50.5 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc11_3 // CHECK:STDOUT: %.loc11_41: type = splice_block %array_type [concrete = constants.%array_type] { -// CHECK:STDOUT: %f32: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] +// CHECK:STDOUT: %f32: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] // CHECK:STDOUT: %int_1.loc11: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %long.ref.loc11: type = name_ref long, %i64.2 [concrete = constants.%i64] -// CHECK:STDOUT: %impl.elem0.loc11_30.1: %.9b9 = impl_witness_access constants.%As.impl_witness.0e9, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.fb1] +// CHECK:STDOUT: %impl.elem0.loc11_30.1: %.01b = impl_witness_access constants.%As.impl_witness.2e1, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.3d9] // CHECK:STDOUT: %bound_method.loc11_30.1: = bound_method %int_1.loc11, %impl.elem0.loc11_30.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc11_30.1: = specific_function %impl.elem0.loc11_30.1, @Core.IntLiteral.as.As.impl.Convert(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_30.2: = bound_method %int_1.loc11, %specific_fn.loc11_30.1 [concrete = constants.%bound_method.b27] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i64 = call %bound_method.loc11_30.2(%int_1.loc11) [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %.loc11_30.1: %i64 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %.loc11_30.2: %i64 = converted %int_1.loc11, %.loc11_30.1 [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %impl.elem0.loc11_30.2: %.737 = impl_witness_access constants.%ImplicitAs.impl_witness.4e4, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.63c] +// CHECK:STDOUT: %bound_method.loc11_30.2: = bound_method %int_1.loc11, %specific_fn.loc11_30.1 [concrete = constants.%bound_method.991] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i64 = call %bound_method.loc11_30.2(%int_1.loc11) [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc11_30.1: %i64 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc11_30.2: %i64 = converted %int_1.loc11, %.loc11_30.1 [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %impl.elem0.loc11_30.2: %.779 = impl_witness_access constants.%ImplicitAs.impl_witness.a75, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.be5] // CHECK:STDOUT: %bound_method.loc11_30.3: = bound_method %.loc11_30.2, %impl.elem0.loc11_30.2 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc11_30.2: = specific_function %impl.elem0.loc11_30.2, @Int.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Int.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_30.4: = bound_method %.loc11_30.2, %specific_fn.loc11_30.2 [concrete = constants.%bound_method.e78] +// CHECK:STDOUT: %bound_method.loc11_30.4: = bound_method %.loc11_30.2, %specific_fn.loc11_30.2 [concrete = constants.%bound_method.e21] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.loc11_30.4(%.loc11_30.2) [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_30.3: Core.IntLiteral = value_of_initializer %Int.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_30.4: Core.IntLiteral = converted %.loc11_30.2, %.loc11_30.3 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %array_type: type = array_type %.loc11_30.4, %f32 [concrete = constants.%array_type] // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %array_type = ref_binding a, %a.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.3 +// 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: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.a26) { +// CHECK:STDOUT: fn @Destroy.Op.loc11_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -811,72 +811,72 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %u64: type = class_type @UInt, @UInt(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.597: type = pattern_type %u64 [concrete] +// CHECK:STDOUT: %pattern_type.b35: type = pattern_type %u64 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.9b6: type = facet_type <@ImplicitAs, @ImplicitAs(%u64)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.14f: type = facet_type <@ImplicitAs, @ImplicitAs(%u64)> [concrete] // CHECK:STDOUT: %To.fe9: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1, @Core.IntLiteral.as.ImplicitAs.impl.501(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.498: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1, @Core.IntLiteral.as.ImplicitAs.impl.b68(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.170: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %From.fe9: Core.IntLiteral = symbolic_binding From, 0 [symbolic] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.type.594: type = fn_type @UInt.as.ImplicitAs.impl.Convert.1, @UInt.as.ImplicitAs.impl.791(%From.fe9) [symbolic] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.141: %UInt.as.ImplicitAs.impl.Convert.type.594 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.248: = impl_witness imports.%ImplicitAs.impl_witness_table.0c6, @Core.IntLiteral.as.ImplicitAs.impl.501(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.dbe: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1, @Core.IntLiteral.as.ImplicitAs.impl.501(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.b79: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.dbe = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.b50: %ImplicitAs.type.9b6 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.248) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.a9d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%u64, %ImplicitAs.facet.b50) [concrete] -// CHECK:STDOUT: %.200: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.a9d, %ImplicitAs.facet.b50 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.b79 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.b79, @Core.IntLiteral.as.ImplicitAs.impl.Convert.1(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.231: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.8a8: %u64 = int_value 1 [concrete] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.type.3ec: type = fn_type @UInt.as.ImplicitAs.impl.Convert.1, @UInt.as.ImplicitAs.impl.3d3(%From.fe9) [symbolic] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.06e: %UInt.as.ImplicitAs.impl.Convert.type.3ec = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.9c4: = impl_witness imports.%ImplicitAs.impl_witness_table.42f, @Core.IntLiteral.as.ImplicitAs.impl.b68(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.b18: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1, @Core.IntLiteral.as.ImplicitAs.impl.b68(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.633: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.b18 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.d29: %ImplicitAs.type.14f = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.9c4) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.8cc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%u64, %ImplicitAs.facet.d29) [concrete] +// CHECK:STDOUT: %.93e: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.8cc, %ImplicitAs.facet.d29 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.633 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.633, @Core.IntLiteral.as.ImplicitAs.impl.Convert.1(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.7e7: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.01f: %u64 = int_value 1 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %As.type.8af: type = facet_type <@As, @As(%u64)> [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.150: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.b6a: %Core.IntLiteral.as.As.impl.Convert.type.150 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.042: = impl_witness imports.%As.impl_witness_table.613, @Core.IntLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.72b: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.113: %Core.IntLiteral.as.As.impl.Convert.type.72b = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.8af = facet_value Core.IntLiteral, (%As.impl_witness.042) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.ed7: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%u64, %As.facet) [concrete] -// CHECK:STDOUT: %.528: type = fn_type_with_self_type %As.WithSelf.Convert.type.ed7, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.113 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.113, @Core.IntLiteral.as.As.impl.Convert(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.e13: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.569: = impl_witness imports.%ImplicitAs.impl_witness_table.1b2, @UInt.as.ImplicitAs.impl.791(%int_64) [concrete] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.type.fea: type = fn_type @UInt.as.ImplicitAs.impl.Convert.1, @UInt.as.ImplicitAs.impl.791(%int_64) [concrete] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.7f4: %UInt.as.ImplicitAs.impl.Convert.type.fea = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.f07: %ImplicitAs.type.ace = facet_value %u64, (%ImplicitAs.impl_witness.569) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.85c: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.f07) [concrete] -// CHECK:STDOUT: %.71b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.85c, %ImplicitAs.facet.f07 [concrete] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.8a8, %UInt.as.ImplicitAs.impl.Convert.7f4 [concrete] -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %UInt.as.ImplicitAs.impl.Convert.7f4, @UInt.as.ImplicitAs.impl.Convert.1(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.fb5: = bound_method %int_1.8a8, %UInt.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.a26 [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %As.type.72f: type = facet_type <@As, @As(%u64)> [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.fb3: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.f86: %Core.IntLiteral.as.As.impl.Convert.type.fb3 = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.8fb: = impl_witness imports.%As.impl_witness_table.8fa, @Core.IntLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.49f: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.990: %Core.IntLiteral.as.As.impl.Convert.type.49f = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.72f = facet_value Core.IntLiteral, (%As.impl_witness.8fb) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.8dd: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%u64, %As.facet) [concrete] +// CHECK:STDOUT: %.04a: type = fn_type_with_self_type %As.WithSelf.Convert.type.8dd, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.990 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.990, @Core.IntLiteral.as.As.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.318: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.b02: = impl_witness imports.%ImplicitAs.impl_witness_table.a83, @UInt.as.ImplicitAs.impl.3d3(%int_64) [concrete] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.type.cd8: type = fn_type @UInt.as.ImplicitAs.impl.Convert.1, @UInt.as.ImplicitAs.impl.3d3(%int_64) [concrete] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.7d0: %UInt.as.ImplicitAs.impl.Convert.type.cd8 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.e41: %ImplicitAs.type.7cb = facet_value %u64, (%ImplicitAs.impl_witness.b02) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da8: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.e41) [concrete] +// CHECK:STDOUT: %.637: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da8, %ImplicitAs.facet.e41 [concrete] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.01f, %UInt.as.ImplicitAs.impl.Convert.7d0 [concrete] +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %UInt.as.ImplicitAs.impl.Convert.7d0, @UInt.as.ImplicitAs.impl.Convert.1(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.b37: = bound_method %int_1.01f, %UInt.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.c73 [concrete] // CHECK:STDOUT: %f32.9b3: type = float_type %int_32, f32 [concrete] -// CHECK:STDOUT: %pattern_type.aab: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.18b: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.FloatLiteral) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%float.6da) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.d0d: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.a26)> [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.65d: = impl_witness imports.%ImplicitAs.impl_witness_table.234, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.82a: %ImplicitAs.type.d0d = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.65d) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c87: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.a26, %ImplicitAs.facet.82a) [concrete] -// CHECK:STDOUT: %.3a8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c87, %ImplicitAs.facet.82a [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.aaa: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%float.2ec) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc11_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.ed3: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.c73)> [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.303: = impl_witness imports.%ImplicitAs.impl_witness_table.393, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.65e: %ImplicitAs.type.ed3 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.303) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2e4: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.c73, %ImplicitAs.facet.65e) [concrete] +// CHECK:STDOUT: %.17b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2e4, %ImplicitAs.facet.65e [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -884,20 +884,20 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: .unsigned_long = @F.%u64.2 // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.e9f: @Core.IntLiteral.as.ImplicitAs.impl.501.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.501.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.498)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0c6 = impl_witness_table (%Core.import_ref.e9f), @Core.IntLiteral.as.ImplicitAs.impl.501 [concrete] -// CHECK:STDOUT: %Core.import_ref.96b: @UInt.as.ImplicitAs.impl.791.%UInt.as.ImplicitAs.impl.Convert.type (%UInt.as.ImplicitAs.impl.Convert.type.594) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @UInt.as.ImplicitAs.impl.791.%UInt.as.ImplicitAs.impl.Convert (constants.%UInt.as.ImplicitAs.impl.Convert.141)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.1b2 = impl_witness_table (%Core.import_ref.96b), @UInt.as.ImplicitAs.impl.791 [concrete] -// CHECK:STDOUT: %Core.import_ref.8db: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.150) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.b6a)] -// CHECK:STDOUT: %As.impl_witness_table.613 = impl_witness_table (%Core.import_ref.8db), @Core.IntLiteral.as.As.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.63cb: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.234 = impl_witness_table (%Core.import_ref.63cb), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.aa5: @Core.IntLiteral.as.ImplicitAs.impl.b68.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.b68.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.170)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.42f = impl_witness_table (%Core.import_ref.aa5), @Core.IntLiteral.as.ImplicitAs.impl.b68 [concrete] +// CHECK:STDOUT: %Core.import_ref.baa: @UInt.as.ImplicitAs.impl.3d3.%UInt.as.ImplicitAs.impl.Convert.type (%UInt.as.ImplicitAs.impl.Convert.type.3ec) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @UInt.as.ImplicitAs.impl.3d3.%UInt.as.ImplicitAs.impl.Convert (constants.%UInt.as.ImplicitAs.impl.Convert.06e)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a83 = impl_witness_table (%Core.import_ref.baa), @UInt.as.ImplicitAs.impl.3d3 [concrete] +// CHECK:STDOUT: %Core.import_ref.59a: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.fb3) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.f86)] +// CHECK:STDOUT: %As.impl_witness_table.8fa = impl_witness_table (%Core.import_ref.59a), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.393 = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_unsigned_long.patt: %pattern_type.597 = value_binding_pattern cpp_unsigned_long [concrete] +// CHECK:STDOUT: %cpp_unsigned_long.patt: %pattern_type.b35 = value_binding_pattern cpp_unsigned_long [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc8_29: type = splice_block %unsigned_long.ref.loc8 [concrete = constants.%u64] { @@ -905,69 +905,69 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: // CHECK:STDOUT: %unsigned_long.ref.loc8: type = name_ref unsigned_long, %u64.2 [concrete = constants.%u64] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc8: %.200 = impl_witness_access constants.%ImplicitAs.impl_witness.248, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.b79] +// CHECK:STDOUT: %impl.elem0.loc8: %.93e = impl_witness_access constants.%ImplicitAs.impl_witness.9c4, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.633] // CHECK:STDOUT: %bound_method.loc8_46.1: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.ImplicitAs.impl.Convert.1(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_46.2: = bound_method %int_1.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.231] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %u64 = call %bound_method.loc8_46.2(%int_1.loc8) [concrete = constants.%int_1.8a8] -// CHECK:STDOUT: %.loc8_46.1: %u64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.8a8] -// CHECK:STDOUT: %.loc8_46.2: %u64 = converted %int_1.loc8, %.loc8_46.1 [concrete = constants.%int_1.8a8] +// CHECK:STDOUT: %bound_method.loc8_46.2: = bound_method %int_1.loc8, %specific_fn.loc8 [concrete = constants.%bound_method.7e7] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %u64 = call %bound_method.loc8_46.2(%int_1.loc8) [concrete = constants.%int_1.01f] +// CHECK:STDOUT: %.loc8_46.1: %u64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.01f] +// CHECK:STDOUT: %.loc8_46.2: %u64 = converted %int_1.loc8, %.loc8_46.1 [concrete = constants.%int_1.01f] // CHECK:STDOUT: %cpp_unsigned_long: %u64 = value_binding cpp_unsigned_long, %.loc8_46.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_unsigned_long.patt: %pattern_type.597 = value_binding_pattern carbon_unsigned_long [concrete] +// CHECK:STDOUT: %carbon_unsigned_long.patt: %pattern_type.b35 = value_binding_pattern carbon_unsigned_long [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_unsigned_long.ref: %u64 = name_ref cpp_unsigned_long, %cpp_unsigned_long // CHECK:STDOUT: %u64.loc9: type = type_literal constants.%u64 [concrete = constants.%u64] // CHECK:STDOUT: %carbon_unsigned_long: %u64 = value_binding carbon_unsigned_long, %cpp_unsigned_long.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.aab = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.aab = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %array_type = var %a.var_patt // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] // CHECK:STDOUT: %.loc11_59.1: %tuple.type = tuple_literal (%float) [concrete = constants.%tuple] -// CHECK:STDOUT: %impl.elem0.loc11_59: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] +// CHECK:STDOUT: %impl.elem0.loc11_59: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] // CHECK:STDOUT: %bound_method.loc11_59.1: = bound_method %float, %impl.elem0.loc11_59 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc11_59: = specific_function %impl.elem0.loc11_59, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_59.2: = bound_method %float, %specific_fn.loc11_59 [concrete = constants.%bound_method.aaa] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.a26 = call %bound_method.loc11_59.2(%float) [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc11_59.2: init %f32.a26 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.2ec] +// CHECK:STDOUT: %bound_method.loc11_59.2: = bound_method %float, %specific_fn.loc11_59 [concrete = constants.%bound_method.3e4] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.c73 = call %bound_method.loc11_59.2(%float) [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc11_59.2: init %f32.c73 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.943] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %.loc11_59.3: ref %f32.a26 = array_index %a.var, %int_0 -// CHECK:STDOUT: %.loc11_59.4: init %f32.a26 to %.loc11_59.3 = in_place_init %.loc11_59.2 [concrete = constants.%float.2ec] +// CHECK:STDOUT: %.loc11_59.3: ref %f32.c73 = array_index %a.var, %int_0 +// CHECK:STDOUT: %.loc11_59.4: init %f32.c73 to %.loc11_59.3 = in_place_init %.loc11_59.2 [concrete = constants.%float.943] // CHECK:STDOUT: %.loc11_59.5: init %array_type to %a.var = array_init (%.loc11_59.4) [concrete = constants.%array] // CHECK:STDOUT: %.loc11_3: init %array_type = converted %.loc11_59.1, %.loc11_59.5 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc11_3 // CHECK:STDOUT: %.loc11_50: type = splice_block %array_type [concrete = constants.%array_type] { -// CHECK:STDOUT: %f32: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] +// CHECK:STDOUT: %f32: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] // CHECK:STDOUT: %int_1.loc11: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %unsigned_long.ref.loc11: type = name_ref unsigned_long, %u64.2 [concrete = constants.%u64] -// CHECK:STDOUT: %impl.elem0.loc11_30.1: %.528 = impl_witness_access constants.%As.impl_witness.042, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.113] +// CHECK:STDOUT: %impl.elem0.loc11_30.1: %.04a = impl_witness_access constants.%As.impl_witness.8fb, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.990] // CHECK:STDOUT: %bound_method.loc11_30.1: = bound_method %int_1.loc11, %impl.elem0.loc11_30.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc11_30.1: = specific_function %impl.elem0.loc11_30.1, @Core.IntLiteral.as.As.impl.Convert(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_30.2: = bound_method %int_1.loc11, %specific_fn.loc11_30.1 [concrete = constants.%bound_method.e13] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %u64 = call %bound_method.loc11_30.2(%int_1.loc11) [concrete = constants.%int_1.8a8] -// CHECK:STDOUT: %.loc11_30.1: %u64 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.8a8] -// CHECK:STDOUT: %.loc11_30.2: %u64 = converted %int_1.loc11, %.loc11_30.1 [concrete = constants.%int_1.8a8] -// CHECK:STDOUT: %impl.elem0.loc11_30.2: %.71b = impl_witness_access constants.%ImplicitAs.impl_witness.569, element0 [concrete = constants.%UInt.as.ImplicitAs.impl.Convert.7f4] +// CHECK:STDOUT: %bound_method.loc11_30.2: = bound_method %int_1.loc11, %specific_fn.loc11_30.1 [concrete = constants.%bound_method.318] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %u64 = call %bound_method.loc11_30.2(%int_1.loc11) [concrete = constants.%int_1.01f] +// CHECK:STDOUT: %.loc11_30.1: %u64 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.01f] +// CHECK:STDOUT: %.loc11_30.2: %u64 = converted %int_1.loc11, %.loc11_30.1 [concrete = constants.%int_1.01f] +// CHECK:STDOUT: %impl.elem0.loc11_30.2: %.637 = impl_witness_access constants.%ImplicitAs.impl_witness.b02, element0 [concrete = constants.%UInt.as.ImplicitAs.impl.Convert.7d0] // CHECK:STDOUT: %bound_method.loc11_30.3: = bound_method %.loc11_30.2, %impl.elem0.loc11_30.2 [concrete = constants.%UInt.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc11_30.2: = specific_function %impl.elem0.loc11_30.2, @UInt.as.ImplicitAs.impl.Convert.1(constants.%int_64) [concrete = constants.%UInt.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_30.4: = bound_method %.loc11_30.2, %specific_fn.loc11_30.2 [concrete = constants.%bound_method.fb5] +// CHECK:STDOUT: %bound_method.loc11_30.4: = bound_method %.loc11_30.2, %specific_fn.loc11_30.2 [concrete = constants.%bound_method.b37] // CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.loc11_30.4(%.loc11_30.2) [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_30.3: Core.IntLiteral = value_of_initializer %UInt.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_30.4: Core.IntLiteral = converted %.loc11_30.2, %.loc11_30.3 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %array_type: type = array_type %.loc11_30.4, %f32 [concrete = constants.%array_type] // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %array_type = ref_binding a, %a.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.3 +// 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: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.a26) { +// CHECK:STDOUT: fn @Destroy.Op.loc11_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -987,78 +987,78 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.003: type = pattern_type %Cpp.long_long [concrete] +// CHECK:STDOUT: %pattern_type.d58: type = pattern_type %Cpp.long_long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.fb7: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ec: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.59e: = impl_witness imports.%ImplicitAs.impl_witness_table.337 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.532: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.59e) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f1d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %.424: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.f1d, %ImplicitAs.facet.532 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.660: = impl_witness imports.%ImplicitAs.impl_witness_table.d6d [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2ed: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.660) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.062: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %.ca2: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.062, %ImplicitAs.facet.2ed [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce [concrete] -// CHECK:STDOUT: %int_1.8b4: %Cpp.long_long = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.b19: %Cpp.long_long = int_value 1 [concrete] // CHECK:STDOUT: %LongLongResult: type = class_type @LongLongResult [concrete] -// CHECK:STDOUT: %pattern_type.f75: type = pattern_type %LongLongResult [concrete] +// CHECK:STDOUT: %pattern_type.357: type = pattern_type %LongLongResult [concrete] // CHECK:STDOUT: %PassLongLong.cpp_overload_set.type: type = cpp_overload_set_type @PassLongLong.cpp_overload_set [concrete] // CHECK:STDOUT: %PassLongLong.cpp_overload_set.value: %PassLongLong.cpp_overload_set.type = cpp_overload_set_value @PassLongLong.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.d67: type = ptr_type %LongLongResult [concrete] -// CHECK:STDOUT: %PassLongLong__carbon_thunk.type.322742.1: type = fn_type @PassLongLong__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %PassLongLong__carbon_thunk.ad287c.1: %PassLongLong__carbon_thunk.type.322742.1 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.fdd: type = pattern_type %i64 [concrete] +// CHECK:STDOUT: %ptr.662: type = ptr_type %LongLongResult [concrete] +// CHECK:STDOUT: %PassLongLong__carbon_thunk.type.4c6a2a.1: type = fn_type @PassLongLong__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %PassLongLong__carbon_thunk.8eb04c.1: %PassLongLong__carbon_thunk.type.4c6a2a.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.f57: type = pattern_type %i64 [concrete] // CHECK:STDOUT: %LongResult: type = class_type @LongResult [concrete] -// CHECK:STDOUT: %pattern_type.32c: type = pattern_type %LongResult [concrete] -// CHECK:STDOUT: %ptr.70a: type = ptr_type %LongResult [concrete] -// CHECK:STDOUT: %PassLongLong__carbon_thunk.type.322742.2: type = fn_type @PassLongLong__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %PassLongLong__carbon_thunk.ad287c.2: %PassLongLong__carbon_thunk.type.322742.2 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.ae7: type = pattern_type %LongResult [concrete] +// CHECK:STDOUT: %ptr.aec: type = ptr_type %LongResult [concrete] +// CHECK:STDOUT: %PassLongLong__carbon_thunk.type.4c6a2a.2: type = fn_type @PassLongLong__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %PassLongLong__carbon_thunk.8eb04c.2: %PassLongLong__carbon_thunk.type.4c6a2a.2 = struct_value () [concrete] // CHECK:STDOUT: %Float.type: type = generic_class_type @Float [concrete] // CHECK:STDOUT: %Float.generic: %Float.type = struct_value () [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.570: type = facet_type <@As, @As(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %As.impl_witness.814: = impl_witness imports.%As.impl_witness_table.603 [concrete] -// CHECK:STDOUT: %As.facet: %As.type.570 = facet_value Core.IntLiteral, (%As.impl_witness.814) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.691: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%Cpp.long_long, %As.facet) [concrete] -// CHECK:STDOUT: %.2be: type = fn_type_with_self_type %As.WithSelf.Convert.type.691, %As.facet [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.d39: type = facet_type <@As, @As(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %As.impl_witness.cc2: = impl_witness imports.%As.impl_witness_table.742 [concrete] +// CHECK:STDOUT: %As.facet: %As.type.d39 = facet_value Core.IntLiteral, (%As.impl_witness.cc2) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.ee9: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%Cpp.long_long, %As.facet) [concrete] +// CHECK:STDOUT: %.8af: type = fn_type_with_self_type %As.WithSelf.Convert.type.ee9, %As.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type: type = fn_type @Core.IntLiteral.as.As.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert: %Core.IntLiteral.as.As.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.a88: = impl_witness imports.%ImplicitAs.impl_witness_table.45f [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.2fd: %ImplicitAs.type.ace = facet_value %Cpp.long_long, (%ImplicitAs.impl_witness.a88) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.54d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.2fd) [concrete] -// CHECK:STDOUT: %.517: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.54d, %ImplicitAs.facet.2fd [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.f86: = impl_witness imports.%ImplicitAs.impl_witness_table.da7 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.474: %ImplicitAs.type.7cb = facet_value %Cpp.long_long, (%ImplicitAs.impl_witness.f86) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.aef: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.474) [concrete] +// CHECK:STDOUT: %.c52: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.aef, %ImplicitAs.facet.474 [concrete] // CHECK:STDOUT: %Cpp.long_long.as.ImplicitAs.impl.Convert.type: type = fn_type @Cpp.long_long.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Cpp.long_long.as.ImplicitAs.impl.Convert: %Cpp.long_long.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.8b4, %Cpp.long_long.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.a26 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.b19, %Cpp.long_long.as.ImplicitAs.impl.Convert [concrete] +// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.c73 [concrete] // CHECK:STDOUT: %f32.9b3: type = float_type %int_32, f32 [concrete] -// CHECK:STDOUT: %pattern_type.aab: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.18b: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.FloatLiteral) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%float.6da) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.d0d: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.a26)> [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.65d: = impl_witness imports.%ImplicitAs.impl_witness_table.234, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.82a: %ImplicitAs.type.d0d = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.65d) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c87: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.a26, %ImplicitAs.facet.82a) [concrete] -// CHECK:STDOUT: %.3a8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c87, %ImplicitAs.facet.82a [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.ed3: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.c73)> [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.303: = impl_witness imports.%ImplicitAs.impl_witness_table.393, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.65e: %ImplicitAs.type.ed3 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.303) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2e4: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.c73, %ImplicitAs.facet.65e) [concrete] +// CHECK:STDOUT: %.17b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2e4, %ImplicitAs.facet.65e [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%float.2ec) [concrete] +// 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.790b3b.3: type = fn_type @Destroy.Op.loc24_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [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: %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] @@ -1067,7 +1067,7 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { -// CHECK:STDOUT: .CppCompat = %CppCompat.463205.1 +// CHECK:STDOUT: .CppCompat = %CppCompat.f0dbf9.1 // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: .Int = %Core.Int // CHECK:STDOUT: .Float = %Core.Float @@ -1084,65 +1084,65 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.CppCompat: = import_ref Core//prelude, CppCompat, loaded -// CHECK:STDOUT: %CppCompat.463205.1: = namespace %Core.CppCompat, [concrete] { +// CHECK:STDOUT: %CppCompat.f0dbf9.1: = namespace %Core.CppCompat, [concrete] { // CHECK:STDOUT: .LongLong64 = %Core.LongLong64 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.LongLong64: type = import_ref Core//prelude/types/cpp/int, LongLong64, loaded [concrete = constants.%Cpp.long_long] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.adef5f.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.337 = impl_witness_table (%Core.import_ref.adef5f.1), @Core.IntLiteral.as.ImplicitAs.impl.74b [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.06c923.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.d6d = impl_witness_table (%Core.import_ref.06c923.1), @Core.IntLiteral.as.ImplicitAs.impl.e33 [concrete] // CHECK:STDOUT: %LongLongResult.decl: type = class_decl @LongLongResult [concrete = constants.%LongLongResult] {} {} // CHECK:STDOUT: %PassLongLong.cpp_overload_set.value: %PassLongLong.cpp_overload_set.type = cpp_overload_set_value @PassLongLong.cpp_overload_set [concrete = constants.%PassLongLong.cpp_overload_set.value] -// CHECK:STDOUT: %PassLongLong__carbon_thunk.decl.c1f2e9.1: %PassLongLong__carbon_thunk.type.322742.1 = fn_decl @PassLongLong__carbon_thunk.1 [concrete = constants.%PassLongLong__carbon_thunk.ad287c.1] { +// CHECK:STDOUT: %PassLongLong__carbon_thunk.decl.204cd1.1: %PassLongLong__carbon_thunk.type.4c6a2a.1 = fn_decl @PassLongLong__carbon_thunk.1 [concrete = constants.%PassLongLong__carbon_thunk.8eb04c.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %LongResult.decl: type = class_decl @LongResult [concrete = constants.%LongResult] {} {} -// CHECK:STDOUT: %PassLongLong__carbon_thunk.decl.c1f2e9.2: %PassLongLong__carbon_thunk.type.322742.2 = fn_decl @PassLongLong__carbon_thunk.2 [concrete = constants.%PassLongLong__carbon_thunk.ad287c.2] { +// CHECK:STDOUT: %PassLongLong__carbon_thunk.decl.204cd1.2: %PassLongLong__carbon_thunk.type.4c6a2a.2 = fn_decl @PassLongLong__carbon_thunk.2 [concrete = constants.%PassLongLong__carbon_thunk.8eb04c.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Float: %Float.type = import_ref Core//prelude/types/float, Float, loaded [concrete = constants.%Float.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/operators/as, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.adef5f.2: %Core.IntLiteral.as.As.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] -// CHECK:STDOUT: %As.impl_witness_table.603 = impl_witness_table (%Core.import_ref.adef5f.2), @Core.IntLiteral.as.As.impl.fab [concrete] -// CHECK:STDOUT: %Core.import_ref.adef5f.3: %Cpp.long_long.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.45f = impl_witness_table (%Core.import_ref.adef5f.3), @Cpp.long_long.as.ImplicitAs.impl.e5f [concrete] -// CHECK:STDOUT: %Core.import_ref.63cb: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.234 = impl_witness_table (%Core.import_ref.63cb), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/operators/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.06c923.2: %Core.IntLiteral.as.As.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] +// CHECK:STDOUT: %As.impl_witness_table.742 = impl_witness_table (%Core.import_ref.06c923.2), @Core.IntLiteral.as.As.impl.084 [concrete] +// CHECK:STDOUT: %Core.import_ref.06c923.3: %Cpp.long_long.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.da7 = impl_witness_table (%Core.import_ref.06c923.3), @Cpp.long_long.as.ImplicitAs.impl.c90 [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.393 = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_long_long.patt: %pattern_type.003 = value_binding_pattern cpp_long_long [concrete] +// CHECK:STDOUT: %cpp_long_long.patt: %pattern_type.d58 = value_binding_pattern cpp_long_long [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc15: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc15_25: type = splice_block %long_long.ref.loc15 [concrete = constants.%Cpp.long_long] { // CHECK:STDOUT: %Cpp.ref.loc15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %long_long.ref.loc15: type = name_ref long_long, constants.%Cpp.long_long [concrete = constants.%Cpp.long_long] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc15: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc15: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc15: = bound_method %int_1.loc15, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.long_long = call %bound_method.loc15(%int_1.loc15) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc15_38.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc15_38.2: %Cpp.long_long = converted %int_1.loc15, %.loc15_38.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.long_long = call %bound_method.loc15(%int_1.loc15) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc15_38.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc15_38.2: %Cpp.long_long = converted %int_1.loc15, %.loc15_38.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %cpp_long_long: %Cpp.long_long = value_binding cpp_long_long, %.loc15_38.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_long_long_result.patt: %pattern_type.f75 = value_binding_pattern cpp_long_long_result [concrete] +// CHECK:STDOUT: %cpp_long_long_result.patt: %pattern_type.357 = value_binding_pattern cpp_long_long_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc16_57: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassLongLong.ref.loc16: %PassLongLong.cpp_overload_set.type = name_ref PassLongLong, imports.%PassLongLong.cpp_overload_set.value [concrete = constants.%PassLongLong.cpp_overload_set.value] // CHECK:STDOUT: %cpp_long_long.ref.loc16: %Cpp.long_long = name_ref cpp_long_long, %cpp_long_long // CHECK:STDOUT: %.loc16_87.1: ref %LongLongResult = temporary_storage -// CHECK:STDOUT: %addr.loc16: %ptr.d67 = addr_of %.loc16_87.1 -// CHECK:STDOUT: %PassLongLong__carbon_thunk.call.loc16: init %empty_tuple.type = call imports.%PassLongLong__carbon_thunk.decl.c1f2e9.1(%cpp_long_long.ref.loc16, %addr.loc16) +// CHECK:STDOUT: %addr.loc16: %ptr.662 = addr_of %.loc16_87.1 +// CHECK:STDOUT: %PassLongLong__carbon_thunk.call.loc16: init %empty_tuple.type = call imports.%PassLongLong__carbon_thunk.decl.204cd1.1(%cpp_long_long.ref.loc16, %addr.loc16) // CHECK:STDOUT: %.loc16_87.2: init %LongLongResult to %.loc16_87.1 = mark_in_place_init %PassLongLong__carbon_thunk.call.loc16 // CHECK:STDOUT: %.loc16_39: type = splice_block %LongLongResult.ref.loc16 [concrete = constants.%LongLongResult] { // CHECK:STDOUT: %Cpp.ref.loc16_36: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -1152,24 +1152,24 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.loc16_87.4: %LongLongResult = acquire_value %.loc16_87.3 // CHECK:STDOUT: %cpp_long_long_result: %LongLongResult = value_binding cpp_long_long_result, %.loc16_87.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_compat_long_long.patt: %pattern_type.003 = value_binding_pattern cpp_compat_long_long [concrete] +// CHECK:STDOUT: %cpp_compat_long_long.patt: %pattern_type.d58 = value_binding_pattern cpp_compat_long_long [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_long_long.ref.loc18: %Cpp.long_long = name_ref cpp_long_long, %cpp_long_long // CHECK:STDOUT: %.loc18: type = splice_block %LongLong64.ref [concrete = constants.%Cpp.long_long] { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %CppCompat.ref: = name_ref CppCompat, imports.%CppCompat.463205.1 [concrete = imports.%CppCompat.463205.1] +// CHECK:STDOUT: %CppCompat.ref: = name_ref CppCompat, imports.%CppCompat.f0dbf9.1 [concrete = imports.%CppCompat.f0dbf9.1] // CHECK:STDOUT: %LongLong64.ref: type = name_ref LongLong64, imports.%Core.LongLong64 [concrete = constants.%Cpp.long_long] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_compat_long_long: %Cpp.long_long = value_binding cpp_compat_long_long, %cpp_long_long.ref.loc18 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_compat_long_long_result.patt: %pattern_type.f75 = value_binding_pattern cpp_compat_long_long_result [concrete] +// CHECK:STDOUT: %cpp_compat_long_long_result.patt: %pattern_type.357 = value_binding_pattern cpp_compat_long_long_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc19_64: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassLongLong.ref.loc19: %PassLongLong.cpp_overload_set.type = name_ref PassLongLong, imports.%PassLongLong.cpp_overload_set.value [concrete = constants.%PassLongLong.cpp_overload_set.value] // CHECK:STDOUT: %cpp_compat_long_long.ref: %Cpp.long_long = name_ref cpp_compat_long_long, %cpp_compat_long_long // CHECK:STDOUT: %.loc19_101.1: ref %LongLongResult = temporary_storage -// CHECK:STDOUT: %addr.loc19: %ptr.d67 = addr_of %.loc19_101.1 -// CHECK:STDOUT: %PassLongLong__carbon_thunk.call.loc19: init %empty_tuple.type = call imports.%PassLongLong__carbon_thunk.decl.c1f2e9.1(%cpp_compat_long_long.ref, %addr.loc19) +// CHECK:STDOUT: %addr.loc19: %ptr.662 = addr_of %.loc19_101.1 +// CHECK:STDOUT: %PassLongLong__carbon_thunk.call.loc19: init %empty_tuple.type = call imports.%PassLongLong__carbon_thunk.decl.204cd1.1(%cpp_compat_long_long.ref, %addr.loc19) // CHECK:STDOUT: %.loc19_101.2: init %LongLongResult to %.loc19_101.1 = mark_in_place_init %PassLongLong__carbon_thunk.call.loc19 // CHECK:STDOUT: %.loc19_46: type = splice_block %LongLongResult.ref.loc19 [concrete = constants.%LongLongResult] { // CHECK:STDOUT: %Cpp.ref.loc19_43: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -1179,7 +1179,7 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.loc19_101.4: %LongLongResult = acquire_value %.loc19_101.3 // CHECK:STDOUT: %cpp_compat_long_long_result: %LongLongResult = value_binding cpp_compat_long_long_result, %.loc19_101.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_i64.patt: %pattern_type.fdd = value_binding_pattern carbon_i64 [concrete] +// CHECK:STDOUT: %carbon_i64.patt: %pattern_type.f57 = value_binding_pattern carbon_i64 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_long_long.ref.loc21: %Cpp.long_long = name_ref cpp_long_long, %cpp_long_long // CHECK:STDOUT: %i64.loc21_42: type = type_literal constants.%i64 [concrete = constants.%i64] @@ -1188,14 +1188,14 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %i64.loc21_19: type = type_literal constants.%i64 [concrete = constants.%i64] // CHECK:STDOUT: %carbon_i64: %i64 = value_binding carbon_i64, %.loc21_39.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_i64_result.patt: %pattern_type.32c = value_binding_pattern carbon_i64_result [concrete] +// CHECK:STDOUT: %carbon_i64_result.patt: %pattern_type.ae7 = value_binding_pattern carbon_i64_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc22_50: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassLongLong.ref.loc22: %PassLongLong.cpp_overload_set.type = name_ref PassLongLong, imports.%PassLongLong.cpp_overload_set.value [concrete = constants.%PassLongLong.cpp_overload_set.value] // CHECK:STDOUT: %carbon_i64.ref: %i64 = name_ref carbon_i64, %carbon_i64 // CHECK:STDOUT: %.loc22_77.1: ref %LongResult = temporary_storage -// CHECK:STDOUT: %addr.loc22: %ptr.70a = addr_of %.loc22_77.1 -// CHECK:STDOUT: %PassLongLong__carbon_thunk.call.loc22: init %empty_tuple.type = call imports.%PassLongLong__carbon_thunk.decl.c1f2e9.2(%carbon_i64.ref, %addr.loc22) +// CHECK:STDOUT: %addr.loc22: %ptr.aec = addr_of %.loc22_77.1 +// CHECK:STDOUT: %PassLongLong__carbon_thunk.call.loc22: init %empty_tuple.type = call imports.%PassLongLong__carbon_thunk.decl.204cd1.2(%carbon_i64.ref, %addr.loc22) // CHECK:STDOUT: %.loc22_77.2: init %LongResult to %.loc22_77.1 = mark_in_place_init %PassLongLong__carbon_thunk.call.loc22 // CHECK:STDOUT: %.loc22_36: type = splice_block %LongResult.ref [concrete = constants.%LongResult] { // CHECK:STDOUT: %Cpp.ref.loc22_33: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -1205,35 +1205,35 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.loc22_77.4: %LongResult = acquire_value %.loc22_77.3 // CHECK:STDOUT: %carbon_i64_result: %LongResult = value_binding carbon_i64_result, %.loc22_77.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.aab = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.aab = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %array_type = var %a.var_patt // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] // CHECK:STDOUT: %.loc24_55.1: %tuple.type = tuple_literal (%float) [concrete = constants.%tuple] -// CHECK:STDOUT: %impl.elem0.loc24_55: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] +// CHECK:STDOUT: %impl.elem0.loc24_55: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] // CHECK:STDOUT: %bound_method.loc24_55.1: = bound_method %float, %impl.elem0.loc24_55 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc24_55, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc24_55.2: = bound_method %float, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.a26 = call %bound_method.loc24_55.2(%float) [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc24_55.2: init %f32.a26 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.2ec] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.c73 = call %bound_method.loc24_55.2(%float) [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc24_55.2: init %f32.c73 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.943] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %.loc24_55.3: ref %f32.a26 = array_index %a.var, %int_0 -// CHECK:STDOUT: %.loc24_55.4: init %f32.a26 to %.loc24_55.3 = in_place_init %.loc24_55.2 [concrete = constants.%float.2ec] +// CHECK:STDOUT: %.loc24_55.3: ref %f32.c73 = array_index %a.var, %int_0 +// CHECK:STDOUT: %.loc24_55.4: init %f32.c73 to %.loc24_55.3 = in_place_init %.loc24_55.2 [concrete = constants.%float.943] // CHECK:STDOUT: %.loc24_55.5: init %array_type to %a.var = array_init (%.loc24_55.4) [concrete = constants.%array] // CHECK:STDOUT: %.loc24_3: init %array_type = converted %.loc24_55.1, %.loc24_55.5 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc24_3 // CHECK:STDOUT: %.loc24_46: type = splice_block %array_type [concrete = constants.%array_type] { -// CHECK:STDOUT: %f32: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] +// CHECK:STDOUT: %f32: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] // CHECK:STDOUT: %int_1.loc24: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %Cpp.ref.loc24: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %long_long.ref.loc24: type = name_ref long_long, constants.%Cpp.long_long [concrete = constants.%Cpp.long_long] -// CHECK:STDOUT: %impl.elem0.loc24_30.1: %.2be = impl_witness_access constants.%As.impl_witness.814, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc24_30.1: %.8af = impl_witness_access constants.%As.impl_witness.cc2, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] // CHECK:STDOUT: %bound_method.loc24_30.1: = bound_method %int_1.loc24, %impl.elem0.loc24_30.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %Cpp.long_long = call %bound_method.loc24_30.1(%int_1.loc24) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc24_30.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc24_30.2: %Cpp.long_long = converted %int_1.loc24, %.loc24_30.1 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %impl.elem0.loc24_30.2: %.517 = impl_witness_access constants.%ImplicitAs.impl_witness.a88, element0 [concrete = constants.%Cpp.long_long.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %Cpp.long_long = call %bound_method.loc24_30.1(%int_1.loc24) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc24_30.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc24_30.2: %Cpp.long_long = converted %int_1.loc24, %.loc24_30.1 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %impl.elem0.loc24_30.2: %.c52 = impl_witness_access constants.%ImplicitAs.impl_witness.f86, element0 [concrete = constants.%Cpp.long_long.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc24_30.2: = bound_method %.loc24_30.2, %impl.elem0.loc24_30.2 [concrete = constants.%Cpp.long_long.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %Cpp.long_long.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.loc24_30.2(%.loc24_30.2) [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc24_30.3: Core.IntLiteral = value_of_initializer %Cpp.long_long.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.5b8] @@ -1241,7 +1241,7 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %array_type: type = array_type %.loc24_30.4, %f32 [concrete = constants.%array_type] // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %array_type = ref_binding a, %a.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.3 +// 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: %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) @@ -1254,7 +1254,7 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.a26) { +// CHECK:STDOUT: fn @Destroy.Op.loc24_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1271,26 +1271,26 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long: type = class_type @LongLong64 [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %i64.builtin: type = int_type signed, %int_64 [concrete] -// CHECK:STDOUT: %pattern_type.003: type = pattern_type %Cpp.long_long [concrete] +// CHECK:STDOUT: %pattern_type.d58: type = pattern_type %Cpp.long_long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.fb7: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ec: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.59e: = impl_witness imports.%ImplicitAs.impl_witness_table.337 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.59e) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f1d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.424: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.f1d, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.660: = impl_witness imports.%ImplicitAs.impl_witness_table.d6d [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.660) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.062: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.ca2: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.062, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %int_1.8b4: %Cpp.long_long = int_value 1 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.fca: = impl_witness imports.%Copy.impl_witness_table.f0d [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Cpp.long_long, (%Copy.impl_witness.fca) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.71d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.77d: type = fn_type_with_self_type %Copy.WithSelf.Op.type.71d, %Copy.facet [concrete] +// CHECK:STDOUT: %int_1.b19: %Cpp.long_long = int_value 1 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.5c7: = impl_witness imports.%Copy.impl_witness_table.a14 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Cpp.long_long, (%Copy.impl_witness.5c7) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.4bd: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.3c3: type = fn_type_with_self_type %Copy.WithSelf.Op.type.4bd, %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.790b3b.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1298,24 +1298,24 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: .long_long = constants.%Cpp.long_long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ade: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.337 = impl_witness_table (%Core.import_ref.ade), @Core.IntLiteral.as.ImplicitAs.impl.74b [concrete] -// CHECK:STDOUT: %Core.import_ref.f63: %Cpp.long_long.as.Copy.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.f0d = impl_witness_table (%Core.import_ref.f63), @Cpp.long_long.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.06c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.d6d = impl_witness_table (%Core.import_ref.06c), @Core.IntLiteral.as.ImplicitAs.impl.e33 [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Cpp.long_long.as.Copy.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.a14 = impl_witness_table (%Core.import_ref.9c3), @Cpp.long_long.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CopyLongLong() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.003 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.003 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.d58 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.d58 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Cpp.long_long = var %a.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc8: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc8: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc8: = bound_method %int_1, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.long_long = call %bound_method.loc8(%int_1) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc8_3: init %Cpp.long_long = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.long_long = call %bound_method.loc8(%int_1) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc8_3: init %Cpp.long_long = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.b19] // CHECK:STDOUT: assign %a.var, %.loc8_3 // CHECK:STDOUT: %.loc8_13: type = splice_block %long_long.ref.loc8 [concrete = constants.%Cpp.long_long] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -1323,13 +1323,13 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %Cpp.long_long = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.003 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.003 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.d58 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.d58 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %Cpp.long_long = var %b.var_patt // CHECK:STDOUT: %a.ref: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %.loc9_33: %Cpp.long_long = acquire_value %a.ref -// CHECK:STDOUT: %impl.elem0.loc9: %.77d = impl_witness_access constants.%Copy.impl_witness.fca, element0 [concrete = constants.%Cpp.long_long.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc9: %.3c3 = impl_witness_access constants.%Copy.impl_witness.5c7, element0 [concrete = constants.%Cpp.long_long.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_33, %impl.elem0.loc9 // CHECK:STDOUT: %Cpp.long_long.as.Copy.impl.Op.call: init %Cpp.long_long = call %bound_method.loc9(%.loc9_33) // CHECK:STDOUT: assign %b.var, %Cpp.long_long.as.Copy.impl.Op.call @@ -1338,9 +1338,9 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %long_long.ref.loc9: type = name_ref long_long, constants.%Cpp.long_long [concrete = constants.%Cpp.long_long] // CHECK:STDOUT: } // CHECK:STDOUT: %b: ref %Cpp.long_long = ref_binding b, %b.var -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 // 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.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1356,45 +1356,45 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Cpp.long_long: type = class_type @LongLong64 [concrete] -// CHECK:STDOUT: %pattern_type.003: type = pattern_type %Cpp.long_long [concrete] +// CHECK:STDOUT: %pattern_type.d58: type = pattern_type %Cpp.long_long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.fb7: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.59e: = impl_witness imports.%ImplicitAs.impl_witness_table.337 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.59e) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f1d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.424: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.f1d, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ec: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.660: = impl_witness imports.%ImplicitAs.impl_witness_table.d6d [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.660) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.062: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.ca2: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.062, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %int_1.8b4: %Cpp.long_long = int_value 1 [concrete] -// CHECK:STDOUT: %EqWith.type.c04: type = facet_type <@EqWith, @EqWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.622: = impl_witness imports.%EqWith.impl_witness_table.64f [concrete] -// CHECK:STDOUT: %EqWith.facet.248: %EqWith.type.c04 = facet_value %Cpp.long_long, (%EqWith.impl_witness.622) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.37d: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.248) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.241: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.248) [concrete] -// CHECK:STDOUT: %.530: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.37d, %EqWith.facet.248 [concrete] +// CHECK:STDOUT: %int_1.b19: %Cpp.long_long = int_value 1 [concrete] +// CHECK:STDOUT: %EqWith.type.9fc: type = facet_type <@EqWith, @EqWith(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.77a: = impl_witness imports.%EqWith.impl_witness_table.ed1 [concrete] +// CHECK:STDOUT: %EqWith.facet.757: %EqWith.type.9fc = facet_value %Cpp.long_long, (%EqWith.impl_witness.77a) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.140: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.757) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.eb1: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.757) [concrete] +// CHECK:STDOUT: %.ac4: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.140, %EqWith.facet.757 [concrete] // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.78c: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.3 [concrete] // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.1ca: %Cpp.long_long.as.EqWith.impl.Equal.type.78c = struct_value () [concrete] -// CHECK:STDOUT: %.646: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.241, %EqWith.facet.248 [concrete] +// CHECK:STDOUT: %.e72: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.eb1, %EqWith.facet.757 [concrete] // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.8e5: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.3 [concrete] // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.a6a: %Cpp.long_long.as.EqWith.impl.NotEqual.type.8e5 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.type.aaf: type = facet_type <@OrderedWith, @OrderedWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %OrderedWith.impl_witness.2a7: = impl_witness imports.%OrderedWith.impl_witness_table.870 [concrete] -// CHECK:STDOUT: %OrderedWith.facet.0af: %OrderedWith.type.aaf = facet_value %Cpp.long_long, (%OrderedWith.impl_witness.2a7) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.df9: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.0af) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.18a: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.0af) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.dc0: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.0af) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.363: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.0af) [concrete] -// CHECK:STDOUT: %.3fb: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.dc0, %OrderedWith.facet.0af [concrete] +// CHECK:STDOUT: %OrderedWith.type.456: type = facet_type <@OrderedWith, @OrderedWith(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %OrderedWith.impl_witness.4b7: = impl_witness imports.%OrderedWith.impl_witness_table.cc0 [concrete] +// CHECK:STDOUT: %OrderedWith.facet.cd7: %OrderedWith.type.456 = facet_value %Cpp.long_long, (%OrderedWith.impl_witness.4b7) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.ddc: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.cd7) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.d85: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.cd7) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.232: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.cd7) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.1ff: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.cd7) [concrete] +// CHECK:STDOUT: %.4cd: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.232, %OrderedWith.facet.cd7 [concrete] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.725: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.3 [concrete] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.7c8: %Cpp.long_long.as.OrderedWith.impl.Greater.type.725 = struct_value () [concrete] -// CHECK:STDOUT: %.d0d: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.df9, %OrderedWith.facet.0af [concrete] +// CHECK:STDOUT: %.c03: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.ddc, %OrderedWith.facet.cd7 [concrete] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.335: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.3 [concrete] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.606: %Cpp.long_long.as.OrderedWith.impl.Less.type.335 = struct_value () [concrete] -// CHECK:STDOUT: %.d44: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.363, %OrderedWith.facet.0af [concrete] +// CHECK:STDOUT: %.ce5: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.1ff, %OrderedWith.facet.cd7 [concrete] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.2d9: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.3 [concrete] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.a09: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.2d9 = struct_value () [concrete] -// CHECK:STDOUT: %.8b7: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.18a, %OrderedWith.facet.0af [concrete] +// CHECK:STDOUT: %.663: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.d85, %OrderedWith.facet.cd7 [concrete] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.42c: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.3 [concrete] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.0c8: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.42c = struct_value () [concrete] // CHECK:STDOUT: } @@ -1404,76 +1404,76 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: .long_long = constants.%Cpp.long_long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ade: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.337 = impl_witness_table (%Core.import_ref.ade), @Core.IntLiteral.as.ImplicitAs.impl.74b [concrete] -// CHECK:STDOUT: %Core.import_ref.b5b: %Cpp.long_long.as.EqWith.impl.Equal.type.78c = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.1ca] -// CHECK:STDOUT: %Core.import_ref.3bc: %Cpp.long_long.as.EqWith.impl.NotEqual.type.8e5 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.a6a] -// CHECK:STDOUT: %EqWith.impl_witness_table.64f = impl_witness_table (%Core.import_ref.b5b, %Core.import_ref.3bc), @Cpp.long_long.as.EqWith.impl.f0c [concrete] -// CHECK:STDOUT: %Core.import_ref.746: %Cpp.long_long.as.OrderedWith.impl.Less.type.335 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.606] -// CHECK:STDOUT: %Core.import_ref.202: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.42c = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.0c8] -// CHECK:STDOUT: %Core.import_ref.cc2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.725 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.7c8] -// CHECK:STDOUT: %Core.import_ref.4c7: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.2d9 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.a09] -// CHECK:STDOUT: %OrderedWith.impl_witness_table.870 = impl_witness_table (%Core.import_ref.746, %Core.import_ref.202, %Core.import_ref.cc2, %Core.import_ref.4c7), @Cpp.long_long.as.OrderedWith.impl.941 [concrete] +// CHECK:STDOUT: %Core.import_ref.06c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.d6d = impl_witness_table (%Core.import_ref.06c), @Core.IntLiteral.as.ImplicitAs.impl.e33 [concrete] +// CHECK:STDOUT: %Core.import_ref.a87: %Cpp.long_long.as.EqWith.impl.Equal.type.78c = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.1ca] +// CHECK:STDOUT: %Core.import_ref.adc9: %Cpp.long_long.as.EqWith.impl.NotEqual.type.8e5 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.a6a] +// CHECK:STDOUT: %EqWith.impl_witness_table.ed1 = impl_witness_table (%Core.import_ref.a87, %Core.import_ref.adc9), @Cpp.long_long.as.EqWith.impl.eaa [concrete] +// CHECK:STDOUT: %Core.import_ref.0e8: %Cpp.long_long.as.OrderedWith.impl.Less.type.335 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.606] +// CHECK:STDOUT: %Core.import_ref.757: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.42c = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.0c8] +// CHECK:STDOUT: %Core.import_ref.c32c: %Cpp.long_long.as.OrderedWith.impl.Greater.type.725 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.7c8] +// CHECK:STDOUT: %Core.import_ref.381: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.2d9 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.a09] +// CHECK:STDOUT: %OrderedWith.impl_witness_table.cc0 = impl_witness_table (%Core.import_ref.0e8, %Core.import_ref.757, %Core.import_ref.c32c, %Core.import_ref.381), @Cpp.long_long.as.OrderedWith.impl.278 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ComparisonsHomogeneousLongLong() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.003 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.d58 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc8_13: type = splice_block %long_long.ref.loc8 [concrete = constants.%Cpp.long_long] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %long_long.ref.loc8: type = name_ref long_long, constants.%Cpp.long_long [concrete = constants.%Cpp.long_long] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc8: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc8: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc8: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long_long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc8_26.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc8_26.2: %Cpp.long_long = converted %int_1.loc8, %.loc8_26.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long_long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc8_26.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc8_26.2: %Cpp.long_long = converted %int_1.loc8, %.loc8_26.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %a: %Cpp.long_long = value_binding a, %.loc8_26.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.003 = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.d58 = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_13: type = splice_block %long_long.ref.loc9 [concrete = constants.%Cpp.long_long] { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %long_long.ref.loc9: type = name_ref long_long, constants.%Cpp.long_long [concrete = constants.%Cpp.long_long] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc9: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc9: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc9: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long_long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc9_26.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc9_26.2: %Cpp.long_long = converted %int_1.loc9, %.loc9_26.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long_long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc9_26.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc9_26.2: %Cpp.long_long = converted %int_1.loc9, %.loc9_26.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %b: %Cpp.long_long = value_binding b, %.loc9_26.2 // CHECK:STDOUT: %a.ref.loc10: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc10: %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc10: %.530 = impl_witness_access constants.%EqWith.impl_witness.622, element0 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.1ca] +// CHECK:STDOUT: %impl.elem0.loc10: %.ac4 = impl_witness_access constants.%EqWith.impl_witness.77a, element0 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.1ca] // CHECK:STDOUT: %bound_method.loc10: = bound_method %a.ref.loc10, %impl.elem0.loc10 // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.call: init bool = call %bound_method.loc10(%a.ref.loc10, %b.ref.loc10) // CHECK:STDOUT: %a.ref.loc11: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc11: %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem1.loc11: %.646 = impl_witness_access constants.%EqWith.impl_witness.622, element1 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.a6a] +// CHECK:STDOUT: %impl.elem1.loc11: %.e72 = impl_witness_access constants.%EqWith.impl_witness.77a, element1 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.a6a] // CHECK:STDOUT: %bound_method.loc11: = bound_method %a.ref.loc11, %impl.elem1.loc11 // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.call: init bool = call %bound_method.loc11(%a.ref.loc11, %b.ref.loc11) // CHECK:STDOUT: %a.ref.loc12: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc12: %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem2: %.3fb = impl_witness_access constants.%OrderedWith.impl_witness.2a7, element2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.7c8] +// CHECK:STDOUT: %impl.elem2: %.4cd = impl_witness_access constants.%OrderedWith.impl_witness.4b7, element2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.7c8] // CHECK:STDOUT: %bound_method.loc12: = bound_method %a.ref.loc12, %impl.elem2 // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.call: init bool = call %bound_method.loc12(%a.ref.loc12, %b.ref.loc12) // CHECK:STDOUT: %a.ref.loc13: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc13: %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc13: %.d0d = impl_witness_access constants.%OrderedWith.impl_witness.2a7, element0 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.606] +// CHECK:STDOUT: %impl.elem0.loc13: %.c03 = impl_witness_access constants.%OrderedWith.impl_witness.4b7, element0 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.606] // CHECK:STDOUT: %bound_method.loc13: = bound_method %a.ref.loc13, %impl.elem0.loc13 // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.call: init bool = call %bound_method.loc13(%a.ref.loc13, %b.ref.loc13) // CHECK:STDOUT: %a.ref.loc14: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc14: %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem3: %.d44 = impl_witness_access constants.%OrderedWith.impl_witness.2a7, element3 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.a09] +// CHECK:STDOUT: %impl.elem3: %.ce5 = impl_witness_access constants.%OrderedWith.impl_witness.4b7, element3 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.a09] // CHECK:STDOUT: %bound_method.loc14: = bound_method %a.ref.loc14, %impl.elem3 // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.call: init bool = call %bound_method.loc14(%a.ref.loc14, %b.ref.loc14) // CHECK:STDOUT: %a.ref.loc15: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc15: %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem1.loc15: %.8b7 = impl_witness_access constants.%OrderedWith.impl_witness.2a7, element1 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.0c8] +// CHECK:STDOUT: %impl.elem1.loc15: %.663 = impl_witness_access constants.%OrderedWith.impl_witness.4b7, element1 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.0c8] // CHECK:STDOUT: %bound_method.loc15: = bound_method %a.ref.loc15, %impl.elem1.loc15 // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.call: init bool = call %bound_method.loc15(%a.ref.loc15, %b.ref.loc15) // CHECK:STDOUT: @@ -1486,155 +1486,155 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Cpp.long_long: type = class_type @LongLong64 [concrete] -// CHECK:STDOUT: %pattern_type.003: type = pattern_type %Cpp.long_long [concrete] -// CHECK:STDOUT: %ImplicitAs.type.fb7: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.59e: = impl_witness imports.%ImplicitAs.impl_witness_table.337 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.532: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.59e) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f1d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %.424: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.f1d, %ImplicitAs.facet.532 [concrete] +// CHECK:STDOUT: %pattern_type.d58: type = pattern_type %Cpp.long_long [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ec: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.660: = impl_witness imports.%ImplicitAs.impl_witness_table.d6d [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2ed: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.660) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.062: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %.ca2: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.062, %ImplicitAs.facet.2ed [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce [concrete] -// CHECK:STDOUT: %int_1.8b4: %Cpp.long_long = int_value 1 [concrete] -// CHECK:STDOUT: %EqWith.type.7e7: type = facet_type <@EqWith, @EqWith(%i64)> [concrete] -// CHECK:STDOUT: %T.ec6: %ImplicitAs.type.fb7 = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.7b9cca.1: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.1, @Cpp.long_long.as.EqWith.impl.17e(%T.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.f31283.1: %Cpp.long_long.as.EqWith.impl.NotEqual.type.7b9cca.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.7b9cca.2: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.2, @Cpp.long_long.as.EqWith.impl.17e(%T.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.f31283.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.7b9cca.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.3b5f14.1: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.1, @Cpp.long_long.as.EqWith.impl.17e(%T.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.b8b42d.1: %Cpp.long_long.as.EqWith.impl.Equal.type.3b5f14.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.3b5f14.2: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.2, @Cpp.long_long.as.EqWith.impl.17e(%T.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.b8b42d.2: %Cpp.long_long.as.EqWith.impl.Equal.type.3b5f14.2 = struct_value () [symbolic] -// CHECK:STDOUT: %EqWith.type.70b: type = facet_type <@EqWith, @EqWith(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.811: = impl_witness imports.%ImplicitAs.impl_witness_table.7ed [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.a8b: %ImplicitAs.type.fb7 = facet_value %i64, (%ImplicitAs.impl_witness.811) [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.fc3: = impl_witness imports.%EqWith.impl_witness_table.0d8, @Cpp.long_long.as.EqWith.impl.17e(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.977cca.1: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.2, @Cpp.long_long.as.EqWith.impl.17e(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.e19c13.1: %Cpp.long_long.as.EqWith.impl.Equal.type.977cca.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.a472a9.1: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.2, @Cpp.long_long.as.EqWith.impl.17e(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.60a432.1: %Cpp.long_long.as.EqWith.impl.NotEqual.type.a472a9.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.977cca.2: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.1, @Cpp.long_long.as.EqWith.impl.17e(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.e19c13.2: %Cpp.long_long.as.EqWith.impl.Equal.type.977cca.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.a472a9.2: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.1, @Cpp.long_long.as.EqWith.impl.17e(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.60a432.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.a472a9.2 = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet.a9f: %EqWith.type.7e7 = facet_value %Cpp.long_long, (%EqWith.impl_witness.fc3) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.5a5: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%i64, %EqWith.facet.a9f) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.42f: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%i64, %EqWith.facet.a9f) [concrete] -// CHECK:STDOUT: %.ca4: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.5a5, %EqWith.facet.a9f [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.baba25.1: = specific_function %Cpp.long_long.as.EqWith.impl.Equal.e19c13.2, @Cpp.long_long.as.EqWith.impl.Equal.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.baba25.2: = specific_function %Cpp.long_long.as.EqWith.impl.Equal.e19c13.1, @Cpp.long_long.as.EqWith.impl.Equal.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.442: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %.77c: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.442, %ImplicitAs.facet.a8b [concrete] +// CHECK:STDOUT: %int_1.b19: %Cpp.long_long = int_value 1 [concrete] +// CHECK:STDOUT: %EqWith.type.d67: type = facet_type <@EqWith, @EqWith(%i64)> [concrete] +// CHECK:STDOUT: %T.bf2: %ImplicitAs.type.0ec = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.b639b1.1: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.1, @Cpp.long_long.as.EqWith.impl.600(%T.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.4b5f60.1: %Cpp.long_long.as.EqWith.impl.NotEqual.type.b639b1.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.b639b1.2: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.2, @Cpp.long_long.as.EqWith.impl.600(%T.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.4b5f60.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.b639b1.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.f2c091.1: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.1, @Cpp.long_long.as.EqWith.impl.600(%T.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.ec6d64.1: %Cpp.long_long.as.EqWith.impl.Equal.type.f2c091.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.f2c091.2: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.2, @Cpp.long_long.as.EqWith.impl.600(%T.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.ec6d64.2: %Cpp.long_long.as.EqWith.impl.Equal.type.f2c091.2 = struct_value () [symbolic] +// CHECK:STDOUT: %EqWith.type.aee: type = facet_type <@EqWith, @EqWith(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.305: = impl_witness imports.%ImplicitAs.impl_witness_table.a87 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.7a4: %ImplicitAs.type.0ec = facet_value %i64, (%ImplicitAs.impl_witness.305) [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.621: = impl_witness imports.%EqWith.impl_witness_table.efb, @Cpp.long_long.as.EqWith.impl.600(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.73aeb2.1: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.2, @Cpp.long_long.as.EqWith.impl.600(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.01ccf4.1: %Cpp.long_long.as.EqWith.impl.Equal.type.73aeb2.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.7f7ea7.1: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.2, @Cpp.long_long.as.EqWith.impl.600(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.ac575d.1: %Cpp.long_long.as.EqWith.impl.NotEqual.type.7f7ea7.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.73aeb2.2: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.1, @Cpp.long_long.as.EqWith.impl.600(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.01ccf4.2: %Cpp.long_long.as.EqWith.impl.Equal.type.73aeb2.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.7f7ea7.2: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.1, @Cpp.long_long.as.EqWith.impl.600(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.ac575d.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.7f7ea7.2 = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.facet.016: %EqWith.type.d67 = facet_value %Cpp.long_long, (%EqWith.impl_witness.621) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.e1d: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%i64, %EqWith.facet.016) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.0d6: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%i64, %EqWith.facet.016) [concrete] +// CHECK:STDOUT: %.5d2: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.e1d, %EqWith.facet.016 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.2dd31b.1: = specific_function %Cpp.long_long.as.EqWith.impl.Equal.01ccf4.2, @Cpp.long_long.as.EqWith.impl.Equal.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.2dd31b.2: = specific_function %Cpp.long_long.as.EqWith.impl.Equal.01ccf4.1, @Cpp.long_long.as.EqWith.impl.Equal.2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.3ae: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %.25e: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.3ae, %ImplicitAs.facet.7a4 [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: %.ee9: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.42f, %EqWith.facet.a9f [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.98b1ce.1: = specific_function %Cpp.long_long.as.EqWith.impl.NotEqual.60a432.2, @Cpp.long_long.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.98b1ce.2: = specific_function %Cpp.long_long.as.EqWith.impl.NotEqual.60a432.1, @Cpp.long_long.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %OrderedWith.type.176: type = facet_type <@OrderedWith, @OrderedWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.f75384.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.d12(%T.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.8863f7.1: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.f75384.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.f75384.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.d12(%T.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.8863f7.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.f75384.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.d80854.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.1, @Cpp.long_long.as.OrderedWith.impl.d12(%T.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.c12661.1: %Cpp.long_long.as.OrderedWith.impl.Greater.type.d80854.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.d80854.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.2, @Cpp.long_long.as.OrderedWith.impl.d12(%T.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.c12661.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.d80854.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.4bff13.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.d12(%T.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.5642ad.1: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.4bff13.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.4bff13.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.d12(%T.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.5642ad.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.4bff13.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.a6b355.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.1, @Cpp.long_long.as.OrderedWith.impl.d12(%T.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.e7ab5c.1: %Cpp.long_long.as.OrderedWith.impl.Less.type.a6b355.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.a6b355.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.2, @Cpp.long_long.as.OrderedWith.impl.d12(%T.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.e7ab5c.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.a6b355.2 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.type.0e2: type = facet_type <@OrderedWith, @OrderedWith(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %OrderedWith.impl_witness.f65: = impl_witness imports.%OrderedWith.impl_witness_table.db9, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.87c979.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.2, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.0705fe.1: %Cpp.long_long.as.OrderedWith.impl.Less.type.87c979.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.07a4be.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.31e7c4.1: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.07a4be.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.1064c4.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.2, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.7da7b9.1: %Cpp.long_long.as.OrderedWith.impl.Greater.type.1064c4.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.4a408d.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.573728.1: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.4a408d.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.87c979.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.1, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.0705fe.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.87c979.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.07a4be.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.31e7c4.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.07a4be.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.1064c4.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.1, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.7da7b9.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.1064c4.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.4a408d.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.573728.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.4a408d.2 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet.a43: %OrderedWith.type.176 = facet_value %Cpp.long_long, (%OrderedWith.impl_witness.f65) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.b5e: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%i64, %OrderedWith.facet.a43) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.34d: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%i64, %OrderedWith.facet.a43) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.746: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%i64, %OrderedWith.facet.a43) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.88c: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%i64, %OrderedWith.facet.a43) [concrete] -// CHECK:STDOUT: %.376: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.746, %OrderedWith.facet.a43 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.88bb72.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.Greater.7da7b9.2, @Cpp.long_long.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.88bb72.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.Greater.7da7b9.1, @Cpp.long_long.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %.7cc: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.b5e, %OrderedWith.facet.a43 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.48b538.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.Less.0705fe.2, @Cpp.long_long.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.48b538.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.Less.0705fe.1, @Cpp.long_long.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %.5ee: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.88c, %OrderedWith.facet.a43 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.db44c2.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.573728.2, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.db44c2.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.573728.1, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %.6c6: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.34d, %OrderedWith.facet.a43 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ec8a24.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.31e7c4.2, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ec8a24.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.31e7c4.1, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.52a: = impl_witness imports.%EqWith.impl_witness_table.0d8, @Cpp.long_long.as.EqWith.impl.17e(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.1a61b8.1: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.2, @Cpp.long_long.as.EqWith.impl.17e(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.7910c3.1: %Cpp.long_long.as.EqWith.impl.Equal.type.1a61b8.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.eb70e8.1: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.2, @Cpp.long_long.as.EqWith.impl.17e(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.c04b44.1: %Cpp.long_long.as.EqWith.impl.NotEqual.type.eb70e8.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.1a61b8.2: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.1, @Cpp.long_long.as.EqWith.impl.17e(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.7910c3.2: %Cpp.long_long.as.EqWith.impl.Equal.type.1a61b8.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.eb70e8.2: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.1, @Cpp.long_long.as.EqWith.impl.17e(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.c04b44.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.eb70e8.2 = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet.b0a: %EqWith.type.70b = facet_value %Cpp.long_long, (%EqWith.impl_witness.52a) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.b3f: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(Core.IntLiteral, %EqWith.facet.b0a) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.640: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(Core.IntLiteral, %EqWith.facet.b0a) [concrete] -// CHECK:STDOUT: %.f32: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.b3f, %EqWith.facet.b0a [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.0033e7.1: = specific_function %Cpp.long_long.as.EqWith.impl.Equal.7910c3.2, @Cpp.long_long.as.EqWith.impl.Equal.1(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.0033e7.2: = specific_function %Cpp.long_long.as.EqWith.impl.Equal.7910c3.1, @Cpp.long_long.as.EqWith.impl.Equal.2(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %.a0d: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.640, %EqWith.facet.b0a [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.2732d7.1: = specific_function %Cpp.long_long.as.EqWith.impl.NotEqual.c04b44.2, @Cpp.long_long.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.2732d7.2: = specific_function %Cpp.long_long.as.EqWith.impl.NotEqual.c04b44.1, @Cpp.long_long.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %OrderedWith.impl_witness.726: = impl_witness imports.%OrderedWith.impl_witness_table.db9, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.eaeb9f.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.2, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.a102cb.1: %Cpp.long_long.as.OrderedWith.impl.Less.type.eaeb9f.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.49d3d6.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.ccf1fa.1: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.49d3d6.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.eb4a22.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.2, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.8a24a6.1: %Cpp.long_long.as.OrderedWith.impl.Greater.type.eb4a22.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.24e8d9.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.6f3e4c.1: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.24e8d9.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.eaeb9f.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.1, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.a102cb.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.eaeb9f.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.49d3d6.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.ccf1fa.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.49d3d6.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.eb4a22.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.1, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.8a24a6.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.eb4a22.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.24e8d9.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.d12(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.6f3e4c.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.24e8d9.2 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet.cdc: %OrderedWith.type.0e2 = facet_value %Cpp.long_long, (%OrderedWith.impl_witness.726) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.fb2: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.cdc) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.980: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.cdc) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.d4d: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.cdc) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.51d: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.cdc) [concrete] -// CHECK:STDOUT: %.09e: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.d4d, %OrderedWith.facet.cdc [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.995882.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.Greater.8a24a6.2, @Cpp.long_long.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.995882.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.Greater.8a24a6.1, @Cpp.long_long.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %.32c: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.fb2, %OrderedWith.facet.cdc [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.7fdd63.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.Less.a102cb.2, @Cpp.long_long.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.7fdd63.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.Less.a102cb.1, @Cpp.long_long.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %.035: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.51d, %OrderedWith.facet.cdc [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.c2dd9b.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.6f3e4c.2, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.c2dd9b.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.6f3e4c.1, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %.41b: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.980, %OrderedWith.facet.cdc [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.fb4ce2.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.ccf1fa.2, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.fb4ce2.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.ccf1fa.1, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.532) [concrete] +// CHECK:STDOUT: %.c98: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.0d6, %EqWith.facet.016 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.38af67.1: = specific_function %Cpp.long_long.as.EqWith.impl.NotEqual.ac575d.2, @Cpp.long_long.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.38af67.2: = specific_function %Cpp.long_long.as.EqWith.impl.NotEqual.ac575d.1, @Cpp.long_long.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %OrderedWith.type.af1: type = facet_type <@OrderedWith, @OrderedWith(%i64)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.362d6d.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c812d5.1: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.362d6d.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.362d6d.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c812d5.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.362d6d.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.9c33c6.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.1, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.692f01.1: %Cpp.long_long.as.OrderedWith.impl.Greater.type.9c33c6.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.9c33c6.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.2, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.692f01.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.9c33c6.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.7ff5fb.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.33bdbc.1: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.7ff5fb.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.7ff5fb.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.33bdbc.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.7ff5fb.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.a2518e.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.1, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.0057df.1: %Cpp.long_long.as.OrderedWith.impl.Less.type.a2518e.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.a2518e.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.2, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.0057df.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.a2518e.2 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.type.975: type = facet_type <@OrderedWith, @OrderedWith(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %OrderedWith.impl_witness.d8f: = impl_witness imports.%OrderedWith.impl_witness_table.cdc, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.c8dbf2.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.2, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.844627.1: %Cpp.long_long.as.OrderedWith.impl.Less.type.c8dbf2.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.128dfd.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.ba53b2.1: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.128dfd.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.88b872.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.2, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.b57b33.1: %Cpp.long_long.as.OrderedWith.impl.Greater.type.88b872.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.78fc74.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.4798a8.1: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.78fc74.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.c8dbf2.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.1, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.844627.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.c8dbf2.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.128dfd.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.ba53b2.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.128dfd.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.88b872.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.1, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.b57b33.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.88b872.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.78fc74.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.4798a8.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.78fc74.2 = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.facet.519: %OrderedWith.type.af1 = facet_value %Cpp.long_long, (%OrderedWith.impl_witness.d8f) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.f1a: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%i64, %OrderedWith.facet.519) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.e05: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%i64, %OrderedWith.facet.519) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.005: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%i64, %OrderedWith.facet.519) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.86e: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%i64, %OrderedWith.facet.519) [concrete] +// CHECK:STDOUT: %.105: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.005, %OrderedWith.facet.519 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.625b09.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.Greater.b57b33.2, @Cpp.long_long.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.625b09.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.Greater.b57b33.1, @Cpp.long_long.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %.054: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.f1a, %OrderedWith.facet.519 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.53698d.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.Less.844627.2, @Cpp.long_long.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.53698d.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.Less.844627.1, @Cpp.long_long.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %.bb8: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.86e, %OrderedWith.facet.519 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.1115b0.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.4798a8.2, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.1115b0.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.4798a8.1, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %.6e5: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.e05, %OrderedWith.facet.519 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.3cc3f1.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.ba53b2.2, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.3cc3f1.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.ba53b2.1, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.fa6: = impl_witness imports.%EqWith.impl_witness_table.efb, @Cpp.long_long.as.EqWith.impl.600(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.520dd9.1: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.2, @Cpp.long_long.as.EqWith.impl.600(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.f6cc6a.1: %Cpp.long_long.as.EqWith.impl.Equal.type.520dd9.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.dc208e.1: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.2, @Cpp.long_long.as.EqWith.impl.600(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.06262e.1: %Cpp.long_long.as.EqWith.impl.NotEqual.type.dc208e.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.520dd9.2: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.1, @Cpp.long_long.as.EqWith.impl.600(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.f6cc6a.2: %Cpp.long_long.as.EqWith.impl.Equal.type.520dd9.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.dc208e.2: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.1, @Cpp.long_long.as.EqWith.impl.600(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.06262e.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.dc208e.2 = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.facet.0eb: %EqWith.type.aee = facet_value %Cpp.long_long, (%EqWith.impl_witness.fa6) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.97a: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(Core.IntLiteral, %EqWith.facet.0eb) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.f3e: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(Core.IntLiteral, %EqWith.facet.0eb) [concrete] +// CHECK:STDOUT: %.590: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.97a, %EqWith.facet.0eb [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.3ab10a.1: = specific_function %Cpp.long_long.as.EqWith.impl.Equal.f6cc6a.2, @Cpp.long_long.as.EqWith.impl.Equal.1(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.3ab10a.2: = specific_function %Cpp.long_long.as.EqWith.impl.Equal.f6cc6a.1, @Cpp.long_long.as.EqWith.impl.Equal.2(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %.97f: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.f3e, %EqWith.facet.0eb [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.8d8af1.1: = specific_function %Cpp.long_long.as.EqWith.impl.NotEqual.06262e.2, @Cpp.long_long.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.8d8af1.2: = specific_function %Cpp.long_long.as.EqWith.impl.NotEqual.06262e.1, @Cpp.long_long.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %OrderedWith.impl_witness.784: = impl_witness imports.%OrderedWith.impl_witness_table.cdc, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.29a8c5.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.2, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.7bb755.1: %Cpp.long_long.as.OrderedWith.impl.Less.type.29a8c5.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.c460d8.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.0b5eb3.1: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.c460d8.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.f8fc10.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.2, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.a43ce7.1: %Cpp.long_long.as.OrderedWith.impl.Greater.type.f8fc10.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.6f3433.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2b5b9d.1: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.6f3433.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.29a8c5.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.1, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.7bb755.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.29a8c5.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.c460d8.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.0b5eb3.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.c460d8.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.f8fc10.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.1, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.a43ce7.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.f8fc10.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.6f3433.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.deb(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2b5b9d.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.6f3433.2 = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.facet.84c: %OrderedWith.type.975 = facet_value %Cpp.long_long, (%OrderedWith.impl_witness.784) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.05e: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.84c) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.437: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.84c) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.ce0: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.84c) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.b92: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.84c) [concrete] +// CHECK:STDOUT: %.671: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.ce0, %OrderedWith.facet.84c [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.50a98d.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.Greater.a43ce7.2, @Cpp.long_long.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.50a98d.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.Greater.a43ce7.1, @Cpp.long_long.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %.168: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.05e, %OrderedWith.facet.84c [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.ac6947.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.Less.7bb755.2, @Cpp.long_long.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.ac6947.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.Less.7bb755.1, @Cpp.long_long.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %.db2: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.b92, %OrderedWith.facet.84c [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.32ac6e.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2b5b9d.2, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.32ac6e.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2b5b9d.1, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %.ada: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.437, %OrderedWith.facet.84c [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.640035.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.0b5eb3.2, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.640035.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.0b5eb3.1, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.2ed) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1642,57 +1642,57 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: .long_long = constants.%Cpp.long_long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.adef5f.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.337 = impl_witness_table (%Core.import_ref.adef5f.1), @Core.IntLiteral.as.ImplicitAs.impl.74b [concrete] -// CHECK:STDOUT: %Core.import_ref.2ed: @Cpp.long_long.as.EqWith.impl.17e.%Cpp.long_long.as.EqWith.impl.Equal.type.2 (%Cpp.long_long.as.EqWith.impl.Equal.type.3b5f14.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.17e.%Cpp.long_long.as.EqWith.impl.Equal.2 (constants.%Cpp.long_long.as.EqWith.impl.Equal.b8b42d.1)] -// CHECK:STDOUT: %Core.import_ref.843: @Cpp.long_long.as.EqWith.impl.17e.%Cpp.long_long.as.EqWith.impl.NotEqual.type.2 (%Cpp.long_long.as.EqWith.impl.NotEqual.type.7b9cca.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.17e.%Cpp.long_long.as.EqWith.impl.NotEqual.2 (constants.%Cpp.long_long.as.EqWith.impl.NotEqual.f31283.1)] -// CHECK:STDOUT: %EqWith.impl_witness_table.0d8 = impl_witness_table (%Core.import_ref.2ed, %Core.import_ref.843), @Cpp.long_long.as.EqWith.impl.17e [concrete] -// CHECK:STDOUT: %Core.NotEqual.ff3: @Cpp.long_long.as.EqWith.impl.17e.%Cpp.long_long.as.EqWith.impl.NotEqual.type.1 (%Cpp.long_long.as.EqWith.impl.NotEqual.type.7b9cca.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.17e.%Cpp.long_long.as.EqWith.impl.NotEqual.1 (constants.%Cpp.long_long.as.EqWith.impl.NotEqual.f31283.2)] -// CHECK:STDOUT: %Core.Equal.13c: @Cpp.long_long.as.EqWith.impl.17e.%Cpp.long_long.as.EqWith.impl.Equal.type.1 (%Cpp.long_long.as.EqWith.impl.Equal.type.3b5f14.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.17e.%Cpp.long_long.as.EqWith.impl.Equal.1 (constants.%Cpp.long_long.as.EqWith.impl.Equal.b8b42d.2)] -// CHECK:STDOUT: %Core.import_ref.adef5f.2: %i64.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i64.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.7ed = impl_witness_table (%Core.import_ref.adef5f.2), @i64.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.a97: @Cpp.long_long.as.OrderedWith.impl.d12.%Cpp.long_long.as.OrderedWith.impl.Less.type.2 (%Cpp.long_long.as.OrderedWith.impl.Less.type.a6b355.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.d12.%Cpp.long_long.as.OrderedWith.impl.Less.2 (constants.%Cpp.long_long.as.OrderedWith.impl.Less.e7ab5c.1)] -// CHECK:STDOUT: %Core.import_ref.864: @Cpp.long_long.as.OrderedWith.impl.d12.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.2 (%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.4bff13.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.d12.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.5642ad.1)] -// CHECK:STDOUT: %Core.import_ref.67a: @Cpp.long_long.as.OrderedWith.impl.d12.%Cpp.long_long.as.OrderedWith.impl.Greater.type.2 (%Cpp.long_long.as.OrderedWith.impl.Greater.type.d80854.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.d12.%Cpp.long_long.as.OrderedWith.impl.Greater.2 (constants.%Cpp.long_long.as.OrderedWith.impl.Greater.c12661.1)] -// CHECK:STDOUT: %Core.import_ref.231: @Cpp.long_long.as.OrderedWith.impl.d12.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.f75384.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.d12.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.8863f7.1)] -// CHECK:STDOUT: %OrderedWith.impl_witness_table.db9 = impl_witness_table (%Core.import_ref.a97, %Core.import_ref.864, %Core.import_ref.67a, %Core.import_ref.231), @Cpp.long_long.as.OrderedWith.impl.d12 [concrete] -// CHECK:STDOUT: %Core.GreaterOrEquivalent.a6d: @Cpp.long_long.as.OrderedWith.impl.d12.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.f75384.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.d12.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.8863f7.2)] -// CHECK:STDOUT: %Core.Greater.380: @Cpp.long_long.as.OrderedWith.impl.d12.%Cpp.long_long.as.OrderedWith.impl.Greater.type.1 (%Cpp.long_long.as.OrderedWith.impl.Greater.type.d80854.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.d12.%Cpp.long_long.as.OrderedWith.impl.Greater.1 (constants.%Cpp.long_long.as.OrderedWith.impl.Greater.c12661.2)] -// CHECK:STDOUT: %Core.LessOrEquivalent.f16: @Cpp.long_long.as.OrderedWith.impl.d12.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.1 (%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.4bff13.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.d12.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.5642ad.2)] -// CHECK:STDOUT: %Core.Less.c42: @Cpp.long_long.as.OrderedWith.impl.d12.%Cpp.long_long.as.OrderedWith.impl.Less.type.1 (%Cpp.long_long.as.OrderedWith.impl.Less.type.a6b355.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.d12.%Cpp.long_long.as.OrderedWith.impl.Less.1 (constants.%Cpp.long_long.as.OrderedWith.impl.Less.e7ab5c.2)] +// CHECK:STDOUT: %Core.import_ref.06c923.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.d6d = impl_witness_table (%Core.import_ref.06c923.1), @Core.IntLiteral.as.ImplicitAs.impl.e33 [concrete] +// CHECK:STDOUT: %Core.import_ref.7e1: @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.Equal.type.2 (%Cpp.long_long.as.EqWith.impl.Equal.type.f2c091.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.Equal.2 (constants.%Cpp.long_long.as.EqWith.impl.Equal.ec6d64.1)] +// CHECK:STDOUT: %Core.import_ref.ba2: @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.NotEqual.type.2 (%Cpp.long_long.as.EqWith.impl.NotEqual.type.b639b1.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.NotEqual.2 (constants.%Cpp.long_long.as.EqWith.impl.NotEqual.4b5f60.1)] +// CHECK:STDOUT: %EqWith.impl_witness_table.efb = impl_witness_table (%Core.import_ref.7e1, %Core.import_ref.ba2), @Cpp.long_long.as.EqWith.impl.600 [concrete] +// CHECK:STDOUT: %Core.NotEqual.422: @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.NotEqual.type.1 (%Cpp.long_long.as.EqWith.impl.NotEqual.type.b639b1.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.NotEqual.1 (constants.%Cpp.long_long.as.EqWith.impl.NotEqual.4b5f60.2)] +// CHECK:STDOUT: %Core.Equal.cce: @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.Equal.type.1 (%Cpp.long_long.as.EqWith.impl.Equal.type.f2c091.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.Equal.1 (constants.%Cpp.long_long.as.EqWith.impl.Equal.ec6d64.2)] +// CHECK:STDOUT: %Core.import_ref.06c923.2: %i64.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a87 = impl_witness_table (%Core.import_ref.06c923.2), @i64.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.020: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Less.type.2 (%Cpp.long_long.as.OrderedWith.impl.Less.type.a2518e.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Less.2 (constants.%Cpp.long_long.as.OrderedWith.impl.Less.0057df.1)] +// CHECK:STDOUT: %Core.import_ref.152: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.2 (%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.7ff5fb.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.33bdbc.1)] +// CHECK:STDOUT: %Core.import_ref.ba3: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Greater.type.2 (%Cpp.long_long.as.OrderedWith.impl.Greater.type.9c33c6.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Greater.2 (constants.%Cpp.long_long.as.OrderedWith.impl.Greater.692f01.1)] +// CHECK:STDOUT: %Core.import_ref.cea: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.362d6d.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c812d5.1)] +// CHECK:STDOUT: %OrderedWith.impl_witness_table.cdc = impl_witness_table (%Core.import_ref.020, %Core.import_ref.152, %Core.import_ref.ba3, %Core.import_ref.cea), @Cpp.long_long.as.OrderedWith.impl.deb [concrete] +// CHECK:STDOUT: %Core.GreaterOrEquivalent.7ba: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.362d6d.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c812d5.2)] +// CHECK:STDOUT: %Core.Greater.91c: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Greater.type.1 (%Cpp.long_long.as.OrderedWith.impl.Greater.type.9c33c6.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Greater.1 (constants.%Cpp.long_long.as.OrderedWith.impl.Greater.692f01.2)] +// CHECK:STDOUT: %Core.LessOrEquivalent.211: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.1 (%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.7ff5fb.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.33bdbc.2)] +// CHECK:STDOUT: %Core.Less.868: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Less.type.1 (%Cpp.long_long.as.OrderedWith.impl.Less.type.a2518e.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Less.1 (constants.%Cpp.long_long.as.OrderedWith.impl.Less.0057df.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ComparisonsHeterogeneousLongLongLeftSide() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.003 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.d58 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_13: type = splice_block %long_long.ref [concrete = constants.%Cpp.long_long] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %long_long.ref: type = name_ref long_long, constants.%Cpp.long_long [concrete = constants.%Cpp.long_long] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc9: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc9: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc9: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long_long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc9_26.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc9_26.2: %Cpp.long_long = converted %int_1.loc9, %.loc9_26.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long_long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc9_26.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc9_26.2: %Cpp.long_long = converted %int_1.loc9, %.loc9_26.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %a: %Cpp.long_long = value_binding a, %.loc9_26.2 // CHECK:STDOUT: %a.ref.loc10: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc10: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc10_5: %.ca4 = impl_witness_access constants.%EqWith.impl_witness.fc3, element0 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.e19c13.2] +// CHECK:STDOUT: %impl.elem0.loc10_5: %.5d2 = impl_witness_access constants.%EqWith.impl_witness.621, element0 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.01ccf4.2] // CHECK:STDOUT: %bound_method.loc10_5.1: = bound_method %a.ref.loc10, %impl.elem0.loc10_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc10: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet.loc10 [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @Cpp.long_long.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.specific_fn.baba25.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc10: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc10 [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @Cpp.long_long.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.specific_fn.2dd31b.1] // CHECK:STDOUT: %bound_method.loc10_5.2: = bound_method %a.ref.loc10, %specific_fn.loc10 -// CHECK:STDOUT: %.loc10_5.2: %Cpp.long_long.as.EqWith.impl.Equal.type.977cca.1 = specific_constant imports.%Core.Equal.13c, @Cpp.long_long.as.EqWith.impl.17e(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.e19c13.1] -// CHECK:STDOUT: %Equal.ref.loc10: %Cpp.long_long.as.EqWith.impl.Equal.type.977cca.1 = name_ref Equal, %.loc10_5.2 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.e19c13.1] +// CHECK:STDOUT: %.loc10_5.2: %Cpp.long_long.as.EqWith.impl.Equal.type.73aeb2.1 = specific_constant imports.%Core.Equal.cce, @Cpp.long_long.as.EqWith.impl.600(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.01ccf4.1] +// CHECK:STDOUT: %Equal.ref.loc10: %Cpp.long_long.as.EqWith.impl.Equal.type.73aeb2.1 = name_ref Equal, %.loc10_5.2 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.01ccf4.1] // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.bound.loc10: = bound_method %a.ref.loc10, %Equal.ref.loc10 -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.loc10: = specific_function %Equal.ref.loc10, @Cpp.long_long.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.specific_fn.baba25.2] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.loc10: = specific_function %Equal.ref.loc10, @Cpp.long_long.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.specific_fn.2dd31b.2] // CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %a.ref.loc10, %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.loc10 -// CHECK:STDOUT: %impl.elem0.loc10_8: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc10_8: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_8: = bound_method %b.ref.loc10, %impl.elem0.loc10_8 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc10: init %Cpp.long_long = call %bound_method.loc10_8(%b.ref.loc10) // CHECK:STDOUT: %.loc10_8.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc10 @@ -1700,18 +1700,18 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.call.loc10: init bool = call %bound_method.loc10_5.3(%a.ref.loc10, %.loc10_8.2) // CHECK:STDOUT: %a.ref.loc11: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc11: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem1.loc11: %.ee9 = impl_witness_access constants.%EqWith.impl_witness.fc3, element1 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.60a432.2] +// CHECK:STDOUT: %impl.elem1.loc11: %.c98 = impl_witness_access constants.%EqWith.impl_witness.621, element1 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.ac575d.2] // CHECK:STDOUT: %bound_method.loc11_5.1: = bound_method %a.ref.loc11, %impl.elem1.loc11 -// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem1.loc11, @Cpp.long_long.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.98b1ce.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem1.loc11, @Cpp.long_long.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.38af67.1] // CHECK:STDOUT: %bound_method.loc11_5.2: = bound_method %a.ref.loc11, %specific_fn.loc11 -// CHECK:STDOUT: %.loc11_5.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.a472a9.1 = specific_constant imports.%Core.NotEqual.ff3, @Cpp.long_long.as.EqWith.impl.17e(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.60a432.1] -// CHECK:STDOUT: %NotEqual.ref.loc11: %Cpp.long_long.as.EqWith.impl.NotEqual.type.a472a9.1 = name_ref NotEqual, %.loc11_5.2 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.60a432.1] +// CHECK:STDOUT: %.loc11_5.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.7f7ea7.1 = specific_constant imports.%Core.NotEqual.422, @Cpp.long_long.as.EqWith.impl.600(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.ac575d.1] +// CHECK:STDOUT: %NotEqual.ref.loc11: %Cpp.long_long.as.EqWith.impl.NotEqual.type.7f7ea7.1 = name_ref NotEqual, %.loc11_5.2 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.ac575d.1] // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.bound.loc11: = bound_method %a.ref.loc11, %NotEqual.ref.loc11 -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.loc11: = specific_function %NotEqual.ref.loc11, @Cpp.long_long.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.98b1ce.2] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.loc11: = specific_function %NotEqual.ref.loc11, @Cpp.long_long.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.38af67.2] // CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %a.ref.loc11, %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.loc11 -// CHECK:STDOUT: %impl.elem0.loc11: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc11: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc11_8: = bound_method %b.ref.loc11, %impl.elem0.loc11 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc11: init %Cpp.long_long = call %bound_method.loc11_8(%b.ref.loc11) // CHECK:STDOUT: %.loc11_8.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc11 @@ -1719,18 +1719,18 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.call.loc11: init bool = call %bound_method.loc11_5.3(%a.ref.loc11, %.loc11_8.2) // CHECK:STDOUT: %a.ref.loc12: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc12: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem2.loc12: %.376 = impl_witness_access constants.%OrderedWith.impl_witness.f65, element2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.7da7b9.2] +// CHECK:STDOUT: %impl.elem2.loc12: %.105 = impl_witness_access constants.%OrderedWith.impl_witness.d8f, element2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.b57b33.2] // CHECK:STDOUT: %bound_method.loc12_5.1: = bound_method %a.ref.loc12, %impl.elem2.loc12 -// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem2.loc12, @Cpp.long_long.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.88bb72.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem2.loc12, @Cpp.long_long.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.625b09.1] // CHECK:STDOUT: %bound_method.loc12_5.2: = bound_method %a.ref.loc12, %specific_fn.loc12 -// CHECK:STDOUT: %.loc12_5.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.1064c4.1 = specific_constant imports.%Core.Greater.380, @Cpp.long_long.as.OrderedWith.impl.d12(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.7da7b9.1] -// CHECK:STDOUT: %Greater.ref.loc12: %Cpp.long_long.as.OrderedWith.impl.Greater.type.1064c4.1 = name_ref Greater, %.loc12_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.7da7b9.1] +// CHECK:STDOUT: %.loc12_5.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.88b872.1 = specific_constant imports.%Core.Greater.91c, @Cpp.long_long.as.OrderedWith.impl.deb(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.b57b33.1] +// CHECK:STDOUT: %Greater.ref.loc12: %Cpp.long_long.as.OrderedWith.impl.Greater.type.88b872.1 = name_ref Greater, %.loc12_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.b57b33.1] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.bound.loc12: = bound_method %a.ref.loc12, %Greater.ref.loc12 -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.loc12: = specific_function %Greater.ref.loc12, @Cpp.long_long.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.88bb72.2] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.loc12: = specific_function %Greater.ref.loc12, @Cpp.long_long.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.625b09.2] // CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %a.ref.loc12, %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.loc12 -// CHECK:STDOUT: %impl.elem0.loc12: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc12: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc12_7: = bound_method %b.ref.loc12, %impl.elem0.loc12 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc12: init %Cpp.long_long = call %bound_method.loc12_7(%b.ref.loc12) // CHECK:STDOUT: %.loc12_7.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc12 @@ -1738,18 +1738,18 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.call.loc12: init bool = call %bound_method.loc12_5.3(%a.ref.loc12, %.loc12_7.2) // CHECK:STDOUT: %a.ref.loc13: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc13: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc13_5: %.7cc = impl_witness_access constants.%OrderedWith.impl_witness.f65, element0 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.0705fe.2] +// CHECK:STDOUT: %impl.elem0.loc13_5: %.054 = impl_witness_access constants.%OrderedWith.impl_witness.d8f, element0 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.844627.2] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %a.ref.loc13, %impl.elem0.loc13_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5, @Cpp.long_long.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.48b538.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5, @Cpp.long_long.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.53698d.1] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %a.ref.loc13, %specific_fn.loc13 -// CHECK:STDOUT: %.loc13_5.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.87c979.1 = specific_constant imports.%Core.Less.c42, @Cpp.long_long.as.OrderedWith.impl.d12(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.0705fe.1] -// CHECK:STDOUT: %Less.ref.loc13: %Cpp.long_long.as.OrderedWith.impl.Less.type.87c979.1 = name_ref Less, %.loc13_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.0705fe.1] +// CHECK:STDOUT: %.loc13_5.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.c8dbf2.1 = specific_constant imports.%Core.Less.868, @Cpp.long_long.as.OrderedWith.impl.deb(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.844627.1] +// CHECK:STDOUT: %Less.ref.loc13: %Cpp.long_long.as.OrderedWith.impl.Less.type.c8dbf2.1 = name_ref Less, %.loc13_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.844627.1] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.bound.loc13: = bound_method %a.ref.loc13, %Less.ref.loc13 -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.loc13: = specific_function %Less.ref.loc13, @Cpp.long_long.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.48b538.2] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.loc13: = specific_function %Less.ref.loc13, @Cpp.long_long.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.53698d.2] // CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %a.ref.loc13, %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.loc13 -// CHECK:STDOUT: %impl.elem0.loc13_7: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc13_7: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc13_7: = bound_method %b.ref.loc13, %impl.elem0.loc13_7 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc13: init %Cpp.long_long = call %bound_method.loc13_7(%b.ref.loc13) // CHECK:STDOUT: %.loc13_7.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc13 @@ -1757,18 +1757,18 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.call.loc13: init bool = call %bound_method.loc13_5.3(%a.ref.loc13, %.loc13_7.2) // CHECK:STDOUT: %a.ref.loc14: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc14: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem3.loc14: %.5ee = impl_witness_access constants.%OrderedWith.impl_witness.f65, element3 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.573728.2] +// CHECK:STDOUT: %impl.elem3.loc14: %.bb8 = impl_witness_access constants.%OrderedWith.impl_witness.d8f, element3 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.4798a8.2] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %a.ref.loc14, %impl.elem3.loc14 -// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem3.loc14, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.db44c2.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem3.loc14, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.1115b0.1] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %a.ref.loc14, %specific_fn.loc14 -// CHECK:STDOUT: %.loc14_5.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.4a408d.1 = specific_constant imports.%Core.GreaterOrEquivalent.a6d, @Cpp.long_long.as.OrderedWith.impl.d12(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.573728.1] -// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.4a408d.1 = name_ref GreaterOrEquivalent, %.loc14_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.573728.1] +// CHECK:STDOUT: %.loc14_5.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.78fc74.1 = specific_constant imports.%Core.GreaterOrEquivalent.7ba, @Cpp.long_long.as.OrderedWith.impl.deb(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.4798a8.1] +// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.78fc74.1 = name_ref GreaterOrEquivalent, %.loc14_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.4798a8.1] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc14: = bound_method %a.ref.loc14, %GreaterOrEquivalent.ref.loc14 -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: = specific_function %GreaterOrEquivalent.ref.loc14, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.db44c2.2] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: = specific_function %GreaterOrEquivalent.ref.loc14, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.1115b0.2] // CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %a.ref.loc14, %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14 -// CHECK:STDOUT: %impl.elem0.loc14: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc14: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc14_8: = bound_method %b.ref.loc14, %impl.elem0.loc14 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc14: init %Cpp.long_long = call %bound_method.loc14_8(%b.ref.loc14) // CHECK:STDOUT: %.loc14_8.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc14 @@ -1776,18 +1776,18 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.call.loc14: init bool = call %bound_method.loc14_5.3(%a.ref.loc14, %.loc14_8.2) // CHECK:STDOUT: %a.ref.loc15: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc15: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem1.loc15: %.6c6 = impl_witness_access constants.%OrderedWith.impl_witness.f65, element1 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.31e7c4.2] +// CHECK:STDOUT: %impl.elem1.loc15: %.6e5 = impl_witness_access constants.%OrderedWith.impl_witness.d8f, element1 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.ba53b2.2] // CHECK:STDOUT: %bound_method.loc15_5.1: = bound_method %a.ref.loc15, %impl.elem1.loc15 -// CHECK:STDOUT: %ImplicitAs.facet.loc15: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc15_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet.loc15 [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem1.loc15, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ec8a24.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc15: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc15_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc15 [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem1.loc15, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.3cc3f1.1] // CHECK:STDOUT: %bound_method.loc15_5.2: = bound_method %a.ref.loc15, %specific_fn.loc15 -// CHECK:STDOUT: %.loc15_5.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.07a4be.1 = specific_constant imports.%Core.LessOrEquivalent.f16, @Cpp.long_long.as.OrderedWith.impl.d12(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.31e7c4.1] -// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.07a4be.1 = name_ref LessOrEquivalent, %.loc15_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.31e7c4.1] +// CHECK:STDOUT: %.loc15_5.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.128dfd.1 = specific_constant imports.%Core.LessOrEquivalent.211, @Cpp.long_long.as.OrderedWith.impl.deb(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.ba53b2.1] +// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.128dfd.1 = name_ref LessOrEquivalent, %.loc15_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.ba53b2.1] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.bound.loc15: = bound_method %a.ref.loc15, %LessOrEquivalent.ref.loc15 -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: = specific_function %LessOrEquivalent.ref.loc15, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ec8a24.2] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: = specific_function %LessOrEquivalent.ref.loc15, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.3cc3f1.2] // CHECK:STDOUT: %bound_method.loc15_5.3: = bound_method %a.ref.loc15, %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15 -// CHECK:STDOUT: %impl.elem0.loc15: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc15: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc15_8: = bound_method %b.ref.loc15, %impl.elem0.loc15 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc15: init %Cpp.long_long = call %bound_method.loc15_8(%b.ref.loc15) // CHECK:STDOUT: %.loc15_8.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc15 @@ -1795,117 +1795,117 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.call.loc15: init bool = call %bound_method.loc15_5.3(%a.ref.loc15, %.loc15_8.2) // CHECK:STDOUT: %a.ref.loc17: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %int_1.loc17: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc17_5: %.f32 = impl_witness_access constants.%EqWith.impl_witness.52a, element0 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.7910c3.2] +// CHECK:STDOUT: %impl.elem0.loc17_5: %.590 = impl_witness_access constants.%EqWith.impl_witness.fa6, element0 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.f6cc6a.2] // CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %a.ref.loc17, %impl.elem0.loc17_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.59e) [concrete = constants.%ImplicitAs.facet.532] -// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.fb7 = converted Core.IntLiteral, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.532] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5, @Cpp.long_long.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.specific_fn.0033e7.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.660) [concrete = constants.%ImplicitAs.facet.2ed] +// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.2ed] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5, @Cpp.long_long.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.specific_fn.3ab10a.1] // CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %a.ref.loc17, %specific_fn.loc17 -// CHECK:STDOUT: %.loc17_5.2: %Cpp.long_long.as.EqWith.impl.Equal.type.1a61b8.1 = specific_constant imports.%Core.Equal.13c, @Cpp.long_long.as.EqWith.impl.17e(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.7910c3.1] -// CHECK:STDOUT: %Equal.ref.loc17: %Cpp.long_long.as.EqWith.impl.Equal.type.1a61b8.1 = name_ref Equal, %.loc17_5.2 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.7910c3.1] +// CHECK:STDOUT: %.loc17_5.2: %Cpp.long_long.as.EqWith.impl.Equal.type.520dd9.1 = specific_constant imports.%Core.Equal.cce, @Cpp.long_long.as.EqWith.impl.600(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.f6cc6a.1] +// CHECK:STDOUT: %Equal.ref.loc17: %Cpp.long_long.as.EqWith.impl.Equal.type.520dd9.1 = name_ref Equal, %.loc17_5.2 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.f6cc6a.1] // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.bound.loc17: = bound_method %a.ref.loc17, %Equal.ref.loc17 -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.loc17: = specific_function %Equal.ref.loc17, @Cpp.long_long.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.specific_fn.0033e7.2] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.loc17: = specific_function %Equal.ref.loc17, @Cpp.long_long.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.specific_fn.3ab10a.2] // CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %a.ref.loc17, %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.loc17 -// CHECK:STDOUT: %impl.elem0.loc17_8: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc17_8: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc17_8: = bound_method %int_1.loc17, %impl.elem0.loc17_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %Cpp.long_long = call %bound_method.loc17_8(%int_1.loc17) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc17_8.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc17_8.2: %Cpp.long_long = converted %int_1.loc17, %.loc17_8.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %Cpp.long_long = call %bound_method.loc17_8(%int_1.loc17) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc17_8.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc17_8.2: %Cpp.long_long = converted %int_1.loc17, %.loc17_8.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.call.loc17: init bool = call %bound_method.loc17_5.3(%a.ref.loc17, %.loc17_8.2) // CHECK:STDOUT: %a.ref.loc18: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %int_1.loc18: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem1.loc18: %.a0d = impl_witness_access constants.%EqWith.impl_witness.52a, element1 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.c04b44.2] +// CHECK:STDOUT: %impl.elem1.loc18: %.97f = impl_witness_access constants.%EqWith.impl_witness.fa6, element1 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.06262e.2] // CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %a.ref.loc18, %impl.elem1.loc18 -// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.59e) [concrete = constants.%ImplicitAs.facet.532] -// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.fb7 = converted Core.IntLiteral, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.532] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem1.loc18, @Cpp.long_long.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.2732d7.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.660) [concrete = constants.%ImplicitAs.facet.2ed] +// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.2ed] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem1.loc18, @Cpp.long_long.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.8d8af1.1] // CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %a.ref.loc18, %specific_fn.loc18 -// CHECK:STDOUT: %.loc18_5.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.eb70e8.1 = specific_constant imports.%Core.NotEqual.ff3, @Cpp.long_long.as.EqWith.impl.17e(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.c04b44.1] -// CHECK:STDOUT: %NotEqual.ref.loc18: %Cpp.long_long.as.EqWith.impl.NotEqual.type.eb70e8.1 = name_ref NotEqual, %.loc18_5.2 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.c04b44.1] +// CHECK:STDOUT: %.loc18_5.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.dc208e.1 = specific_constant imports.%Core.NotEqual.422, @Cpp.long_long.as.EqWith.impl.600(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.06262e.1] +// CHECK:STDOUT: %NotEqual.ref.loc18: %Cpp.long_long.as.EqWith.impl.NotEqual.type.dc208e.1 = name_ref NotEqual, %.loc18_5.2 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.06262e.1] // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.bound.loc18: = bound_method %a.ref.loc18, %NotEqual.ref.loc18 -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.loc18: = specific_function %NotEqual.ref.loc18, @Cpp.long_long.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.2732d7.2] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.loc18: = specific_function %NotEqual.ref.loc18, @Cpp.long_long.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.8d8af1.2] // CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %a.ref.loc18, %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.loc18 -// CHECK:STDOUT: %impl.elem0.loc18: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc18: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc18_8: = bound_method %int_1.loc18, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %Cpp.long_long = call %bound_method.loc18_8(%int_1.loc18) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc18_8.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc18_8.2: %Cpp.long_long = converted %int_1.loc18, %.loc18_8.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %Cpp.long_long = call %bound_method.loc18_8(%int_1.loc18) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc18_8.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc18_8.2: %Cpp.long_long = converted %int_1.loc18, %.loc18_8.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.call.loc18: init bool = call %bound_method.loc18_5.3(%a.ref.loc18, %.loc18_8.2) // CHECK:STDOUT: %a.ref.loc19: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %int_1.loc19: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem2.loc19: %.09e = impl_witness_access constants.%OrderedWith.impl_witness.726, element2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.8a24a6.2] +// CHECK:STDOUT: %impl.elem2.loc19: %.671 = impl_witness_access constants.%OrderedWith.impl_witness.784, element2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.a43ce7.2] // CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %a.ref.loc19, %impl.elem2.loc19 -// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.59e) [concrete = constants.%ImplicitAs.facet.532] -// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.fb7 = converted Core.IntLiteral, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.532] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem2.loc19, @Cpp.long_long.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.995882.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.660) [concrete = constants.%ImplicitAs.facet.2ed] +// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.2ed] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem2.loc19, @Cpp.long_long.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.50a98d.1] // CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %a.ref.loc19, %specific_fn.loc19 -// CHECK:STDOUT: %.loc19_5.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.eb4a22.1 = specific_constant imports.%Core.Greater.380, @Cpp.long_long.as.OrderedWith.impl.d12(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.8a24a6.1] -// CHECK:STDOUT: %Greater.ref.loc19: %Cpp.long_long.as.OrderedWith.impl.Greater.type.eb4a22.1 = name_ref Greater, %.loc19_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.8a24a6.1] +// CHECK:STDOUT: %.loc19_5.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.f8fc10.1 = specific_constant imports.%Core.Greater.91c, @Cpp.long_long.as.OrderedWith.impl.deb(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.a43ce7.1] +// CHECK:STDOUT: %Greater.ref.loc19: %Cpp.long_long.as.OrderedWith.impl.Greater.type.f8fc10.1 = name_ref Greater, %.loc19_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.a43ce7.1] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.bound.loc19: = bound_method %a.ref.loc19, %Greater.ref.loc19 -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.loc19: = specific_function %Greater.ref.loc19, @Cpp.long_long.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.995882.2] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.loc19: = specific_function %Greater.ref.loc19, @Cpp.long_long.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.50a98d.2] // CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %a.ref.loc19, %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.loc19 -// CHECK:STDOUT: %impl.elem0.loc19: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc19: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc19_7: = bound_method %int_1.loc19, %impl.elem0.loc19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %Cpp.long_long = call %bound_method.loc19_7(%int_1.loc19) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc19_7.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc19_7.2: %Cpp.long_long = converted %int_1.loc19, %.loc19_7.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %Cpp.long_long = call %bound_method.loc19_7(%int_1.loc19) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc19_7.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc19_7.2: %Cpp.long_long = converted %int_1.loc19, %.loc19_7.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.call.loc19: init bool = call %bound_method.loc19_5.3(%a.ref.loc19, %.loc19_7.2) // CHECK:STDOUT: %a.ref.loc20: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %int_1.loc20: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc20_5: %.32c = impl_witness_access constants.%OrderedWith.impl_witness.726, element0 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.a102cb.2] +// CHECK:STDOUT: %impl.elem0.loc20_5: %.168 = impl_witness_access constants.%OrderedWith.impl_witness.784, element0 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.7bb755.2] // CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %a.ref.loc20, %impl.elem0.loc20_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.59e) [concrete = constants.%ImplicitAs.facet.532] -// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.fb7 = converted Core.IntLiteral, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.532] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5, @Cpp.long_long.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.7fdd63.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.660) [concrete = constants.%ImplicitAs.facet.2ed] +// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.2ed] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5, @Cpp.long_long.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.ac6947.1] // CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %a.ref.loc20, %specific_fn.loc20 -// CHECK:STDOUT: %.loc20_5.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.eaeb9f.1 = specific_constant imports.%Core.Less.c42, @Cpp.long_long.as.OrderedWith.impl.d12(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.a102cb.1] -// CHECK:STDOUT: %Less.ref.loc20: %Cpp.long_long.as.OrderedWith.impl.Less.type.eaeb9f.1 = name_ref Less, %.loc20_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.a102cb.1] +// CHECK:STDOUT: %.loc20_5.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.29a8c5.1 = specific_constant imports.%Core.Less.868, @Cpp.long_long.as.OrderedWith.impl.deb(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.7bb755.1] +// CHECK:STDOUT: %Less.ref.loc20: %Cpp.long_long.as.OrderedWith.impl.Less.type.29a8c5.1 = name_ref Less, %.loc20_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.7bb755.1] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.bound.loc20: = bound_method %a.ref.loc20, %Less.ref.loc20 -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.loc20: = specific_function %Less.ref.loc20, @Cpp.long_long.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.7fdd63.2] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.loc20: = specific_function %Less.ref.loc20, @Cpp.long_long.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.ac6947.2] // CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %a.ref.loc20, %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.loc20 -// CHECK:STDOUT: %impl.elem0.loc20_7: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc20_7: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc20_7: = bound_method %int_1.loc20, %impl.elem0.loc20_7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %Cpp.long_long = call %bound_method.loc20_7(%int_1.loc20) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc20_7.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc20_7.2: %Cpp.long_long = converted %int_1.loc20, %.loc20_7.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %Cpp.long_long = call %bound_method.loc20_7(%int_1.loc20) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc20_7.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc20_7.2: %Cpp.long_long = converted %int_1.loc20, %.loc20_7.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.call.loc20: init bool = call %bound_method.loc20_5.3(%a.ref.loc20, %.loc20_7.2) // CHECK:STDOUT: %a.ref.loc21: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %int_1.loc21: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem3.loc21: %.035 = impl_witness_access constants.%OrderedWith.impl_witness.726, element3 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.6f3e4c.2] +// CHECK:STDOUT: %impl.elem3.loc21: %.db2 = impl_witness_access constants.%OrderedWith.impl_witness.784, element3 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2b5b9d.2] // CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %a.ref.loc21, %impl.elem3.loc21 -// CHECK:STDOUT: %ImplicitAs.facet.loc21: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.59e) [concrete = constants.%ImplicitAs.facet.532] -// CHECK:STDOUT: %.loc21_5.1: %ImplicitAs.type.fb7 = converted Core.IntLiteral, %ImplicitAs.facet.loc21 [concrete = constants.%ImplicitAs.facet.532] -// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem3.loc21, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.c2dd9b.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc21: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.660) [concrete = constants.%ImplicitAs.facet.2ed] +// CHECK:STDOUT: %.loc21_5.1: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc21 [concrete = constants.%ImplicitAs.facet.2ed] +// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem3.loc21, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.32ac6e.1] // CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %a.ref.loc21, %specific_fn.loc21 -// CHECK:STDOUT: %.loc21_5.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.24e8d9.1 = specific_constant imports.%Core.GreaterOrEquivalent.a6d, @Cpp.long_long.as.OrderedWith.impl.d12(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.6f3e4c.1] -// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.24e8d9.1 = name_ref GreaterOrEquivalent, %.loc21_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.6f3e4c.1] +// CHECK:STDOUT: %.loc21_5.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.6f3433.1 = specific_constant imports.%Core.GreaterOrEquivalent.7ba, @Cpp.long_long.as.OrderedWith.impl.deb(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2b5b9d.1] +// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.6f3433.1 = name_ref GreaterOrEquivalent, %.loc21_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2b5b9d.1] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc21: = bound_method %a.ref.loc21, %GreaterOrEquivalent.ref.loc21 -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: = specific_function %GreaterOrEquivalent.ref.loc21, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.c2dd9b.2] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: = specific_function %GreaterOrEquivalent.ref.loc21, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.32ac6e.2] // CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %a.ref.loc21, %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21 -// CHECK:STDOUT: %impl.elem0.loc21: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc21: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc21_8: = bound_method %int_1.loc21, %impl.elem0.loc21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %Cpp.long_long = call %bound_method.loc21_8(%int_1.loc21) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc21_8.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc21_8.2: %Cpp.long_long = converted %int_1.loc21, %.loc21_8.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %Cpp.long_long = call %bound_method.loc21_8(%int_1.loc21) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc21_8.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc21_8.2: %Cpp.long_long = converted %int_1.loc21, %.loc21_8.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.call.loc21: init bool = call %bound_method.loc21_5.3(%a.ref.loc21, %.loc21_8.2) // CHECK:STDOUT: %a.ref.loc22: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %int_1.loc22: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem1.loc22: %.41b = impl_witness_access constants.%OrderedWith.impl_witness.726, element1 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.ccf1fa.2] +// CHECK:STDOUT: %impl.elem1.loc22: %.ada = impl_witness_access constants.%OrderedWith.impl_witness.784, element1 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.0b5eb3.2] // CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %a.ref.loc22, %impl.elem1.loc22 -// CHECK:STDOUT: %ImplicitAs.facet.loc22: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.59e) [concrete = constants.%ImplicitAs.facet.532] -// CHECK:STDOUT: %.loc22_5.1: %ImplicitAs.type.fb7 = converted Core.IntLiteral, %ImplicitAs.facet.loc22 [concrete = constants.%ImplicitAs.facet.532] -// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem1.loc22, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.fb4ce2.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc22: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.660) [concrete = constants.%ImplicitAs.facet.2ed] +// CHECK:STDOUT: %.loc22_5.1: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc22 [concrete = constants.%ImplicitAs.facet.2ed] +// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem1.loc22, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.640035.1] // CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %a.ref.loc22, %specific_fn.loc22 -// CHECK:STDOUT: %.loc22_5.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.49d3d6.1 = specific_constant imports.%Core.LessOrEquivalent.f16, @Cpp.long_long.as.OrderedWith.impl.d12(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.ccf1fa.1] -// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.49d3d6.1 = name_ref LessOrEquivalent, %.loc22_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.ccf1fa.1] +// CHECK:STDOUT: %.loc22_5.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.c460d8.1 = specific_constant imports.%Core.LessOrEquivalent.211, @Cpp.long_long.as.OrderedWith.impl.deb(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.0b5eb3.1] +// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.c460d8.1 = name_ref LessOrEquivalent, %.loc22_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.0b5eb3.1] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.bound.loc22: = bound_method %a.ref.loc22, %LessOrEquivalent.ref.loc22 -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: = specific_function %LessOrEquivalent.ref.loc22, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.532) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.fb4ce2.2] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: = specific_function %LessOrEquivalent.ref.loc22, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.2ed) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.640035.2] // CHECK:STDOUT: %bound_method.loc22_5.3: = bound_method %a.ref.loc22, %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22 -// CHECK:STDOUT: %impl.elem0.loc22: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc22: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc22_8: = bound_method %int_1.loc22, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %Cpp.long_long = call %bound_method.loc22_8(%int_1.loc22) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc22_8.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc22_8.2: %Cpp.long_long = converted %int_1.loc22, %.loc22_8.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %Cpp.long_long = call %bound_method.loc22_8(%int_1.loc22) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc22_8.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc22_8.2: %Cpp.long_long = converted %int_1.loc22, %.loc22_8.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.call.loc22: init bool = call %bound_method.loc22_5.3(%a.ref.loc22, %.loc22_8.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1917,177 +1917,177 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Cpp.long_long: type = class_type @LongLong64 [concrete] -// CHECK:STDOUT: %pattern_type.003: type = pattern_type %Cpp.long_long [concrete] -// CHECK:STDOUT: %ImplicitAs.type.fb7: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.59e: = impl_witness imports.%ImplicitAs.impl_witness_table.337 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.532: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.59e) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f1d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %.424: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.f1d, %ImplicitAs.facet.532 [concrete] +// CHECK:STDOUT: %pattern_type.d58: type = pattern_type %Cpp.long_long [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ec: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.660: = impl_witness imports.%ImplicitAs.impl_witness_table.d6d [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2ed: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.660) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.062: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %.ca2: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.062, %ImplicitAs.facet.2ed [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce [concrete] -// CHECK:STDOUT: %int_1.8b4: %Cpp.long_long = int_value 1 [concrete] -// CHECK:STDOUT: %EqWith.type.c04: type = facet_type <@EqWith, @EqWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %T.ec6: %ImplicitAs.type.fb7 = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.5b08fc.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.3, @T.as_type.as.EqWith.impl.ea5(%T.ec6) [symbolic] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.f70f26.1: %T.as_type.as.EqWith.impl.NotEqual.type.5b08fc.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.5b08fc.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.4, @T.as_type.as.EqWith.impl.ea5(%T.ec6) [symbolic] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.f70f26.2: %T.as_type.as.EqWith.impl.NotEqual.type.5b08fc.2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.e1e2e3.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.3, @T.as_type.as.EqWith.impl.ea5(%T.ec6) [symbolic] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.c99f72.1: %T.as_type.as.EqWith.impl.Equal.type.e1e2e3.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.e1e2e3.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.4, @T.as_type.as.EqWith.impl.ea5(%T.ec6) [symbolic] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.c99f72.2: %T.as_type.as.EqWith.impl.Equal.type.e1e2e3.2 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.811: = impl_witness imports.%ImplicitAs.impl_witness_table.7ed [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.a8b: %ImplicitAs.type.fb7 = facet_value %i64, (%ImplicitAs.impl_witness.811) [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.c96: = impl_witness imports.%EqWith.impl_witness_table.168, @T.as_type.as.EqWith.impl.ea5(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.7fc917.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.4, @T.as_type.as.EqWith.impl.ea5(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.ea742a.1: %T.as_type.as.EqWith.impl.Equal.type.7fc917.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.31bb99.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.4, @T.as_type.as.EqWith.impl.ea5(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.873f6e.1: %T.as_type.as.EqWith.impl.NotEqual.type.31bb99.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.7fc917.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.3, @T.as_type.as.EqWith.impl.ea5(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.ea742a.2: %T.as_type.as.EqWith.impl.Equal.type.7fc917.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.31bb99.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.3, @T.as_type.as.EqWith.impl.ea5(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.873f6e.2: %T.as_type.as.EqWith.impl.NotEqual.type.31bb99.2 = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet.502: %EqWith.type.c04 = facet_value %i64, (%EqWith.impl_witness.c96) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.fb3: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.502) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.bc8: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.502) [concrete] -// CHECK:STDOUT: %.6b1: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.fb3, %EqWith.facet.502 [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.b38df1.1: = specific_function %T.as_type.as.EqWith.impl.Equal.ea742a.2, @T.as_type.as.EqWith.impl.Equal.3(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.b38df1.2: = specific_function %T.as_type.as.EqWith.impl.Equal.ea742a.1, @T.as_type.as.EqWith.impl.Equal.4(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.442: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %.77c: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.442, %ImplicitAs.facet.a8b [concrete] +// CHECK:STDOUT: %int_1.b19: %Cpp.long_long = int_value 1 [concrete] +// CHECK:STDOUT: %EqWith.type.9fc: type = facet_type <@EqWith, @EqWith(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %T.bf2: %ImplicitAs.type.0ec = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.925fdb.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.3, @T.as_type.as.EqWith.impl.6d3(%T.bf2) [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.b16a99.1: %T.as_type.as.EqWith.impl.NotEqual.type.925fdb.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.925fdb.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.4, @T.as_type.as.EqWith.impl.6d3(%T.bf2) [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.b16a99.2: %T.as_type.as.EqWith.impl.NotEqual.type.925fdb.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.3cb0e1.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.3, @T.as_type.as.EqWith.impl.6d3(%T.bf2) [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.a1333e.1: %T.as_type.as.EqWith.impl.Equal.type.3cb0e1.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.3cb0e1.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.4, @T.as_type.as.EqWith.impl.6d3(%T.bf2) [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.a1333e.2: %T.as_type.as.EqWith.impl.Equal.type.3cb0e1.2 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.305: = impl_witness imports.%ImplicitAs.impl_witness_table.a87 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.7a4: %ImplicitAs.type.0ec = facet_value %i64, (%ImplicitAs.impl_witness.305) [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.084: = impl_witness imports.%EqWith.impl_witness_table.db1, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.6d33d6.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.4, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.817082.1: %T.as_type.as.EqWith.impl.Equal.type.6d33d6.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.2c42f8.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.4, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.de7c60.1: %T.as_type.as.EqWith.impl.NotEqual.type.2c42f8.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.6d33d6.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.3, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.817082.2: %T.as_type.as.EqWith.impl.Equal.type.6d33d6.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.2c42f8.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.3, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.de7c60.2: %T.as_type.as.EqWith.impl.NotEqual.type.2c42f8.2 = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.facet.306: %EqWith.type.9fc = facet_value %i64, (%EqWith.impl_witness.084) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.5b2: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.306) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.86d: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.306) [concrete] +// CHECK:STDOUT: %.183: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.5b2, %EqWith.facet.306 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.044d32.1: = specific_function %T.as_type.as.EqWith.impl.Equal.817082.2, @T.as_type.as.EqWith.impl.Equal.3(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.044d32.2: = specific_function %T.as_type.as.EqWith.impl.Equal.817082.1, @T.as_type.as.EqWith.impl.Equal.4(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.3ae: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %.25e: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.3ae, %ImplicitAs.facet.7a4 [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: %.cb1: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.bc8, %EqWith.facet.502 [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.558ec3.1: = specific_function %T.as_type.as.EqWith.impl.NotEqual.873f6e.2, @T.as_type.as.EqWith.impl.NotEqual.3(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.558ec3.2: = specific_function %T.as_type.as.EqWith.impl.NotEqual.873f6e.1, @T.as_type.as.EqWith.impl.NotEqual.4(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %OrderedWith.type.aaf: type = facet_type <@OrderedWith, @OrderedWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.20abe7.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3, @T.as_type.as.OrderedWith.impl.500(%T.ec6) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.279040.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.20abe7.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.20abe7.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4, @T.as_type.as.OrderedWith.impl.500(%T.ec6) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.279040.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.20abe7.2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.e67987.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.3, @T.as_type.as.OrderedWith.impl.500(%T.ec6) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.808915.1: %T.as_type.as.OrderedWith.impl.Greater.type.e67987.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.e67987.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.4, @T.as_type.as.OrderedWith.impl.500(%T.ec6) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.808915.2: %T.as_type.as.OrderedWith.impl.Greater.type.e67987.2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.a4322b.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3, @T.as_type.as.OrderedWith.impl.500(%T.ec6) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.0d7756.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.a4322b.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.a4322b.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4, @T.as_type.as.OrderedWith.impl.500(%T.ec6) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.0d7756.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.a4322b.2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.c8455c.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.3, @T.as_type.as.OrderedWith.impl.500(%T.ec6) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bb1211.1: %T.as_type.as.OrderedWith.impl.Less.type.c8455c.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.c8455c.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.4, @T.as_type.as.OrderedWith.impl.500(%T.ec6) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bb1211.2: %T.as_type.as.OrderedWith.impl.Less.type.c8455c.2 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.impl_witness.634: = impl_witness imports.%OrderedWith.impl_witness_table.e93, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.a2fbe5.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.4, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.c49a88.1: %T.as_type.as.OrderedWith.impl.Less.type.a2fbe5.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.5c61ed.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.2f1998.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.5c61ed.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.ea3f4a.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.4, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.12cc91.1: %T.as_type.as.OrderedWith.impl.Greater.type.ea3f4a.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.96093f.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bc6b0e.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.96093f.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.a2fbe5.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.3, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.c49a88.2: %T.as_type.as.OrderedWith.impl.Less.type.a2fbe5.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.5c61ed.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.2f1998.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.5c61ed.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.ea3f4a.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.3, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.12cc91.2: %T.as_type.as.OrderedWith.impl.Greater.type.ea3f4a.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.96093f.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bc6b0e.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.96093f.2 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet.21c: %OrderedWith.type.aaf = facet_value %i64, (%OrderedWith.impl_witness.634) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.aca: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.21c) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.539: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.21c) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.8f8: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.21c) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.997: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.21c) [concrete] -// CHECK:STDOUT: %.e9d: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.8f8, %OrderedWith.facet.21c [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.5eebb5.1: = specific_function %T.as_type.as.OrderedWith.impl.Greater.12cc91.2, @T.as_type.as.OrderedWith.impl.Greater.3(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.5eebb5.2: = specific_function %T.as_type.as.OrderedWith.impl.Greater.12cc91.1, @T.as_type.as.OrderedWith.impl.Greater.4(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %.57a: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.aca, %OrderedWith.facet.21c [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.ae50e5.1: = specific_function %T.as_type.as.OrderedWith.impl.Less.c49a88.2, @T.as_type.as.OrderedWith.impl.Less.3(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.ae50e5.2: = specific_function %T.as_type.as.OrderedWith.impl.Less.c49a88.1, @T.as_type.as.OrderedWith.impl.Less.4(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %.3c6: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.997, %OrderedWith.facet.21c [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ecaa0d.1: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bc6b0e.2, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ecaa0d.2: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bc6b0e.1, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %.084: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.539, %OrderedWith.facet.21c [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.d600bb.1: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.2f1998.2, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.d600bb.2: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.2f1998.1, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.f84: = impl_witness imports.%EqWith.impl_witness_table.168, @T.as_type.as.EqWith.impl.ea5(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.943e53.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.4, @T.as_type.as.EqWith.impl.ea5(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.755cc0.1: %T.as_type.as.EqWith.impl.Equal.type.943e53.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.56a43f.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.4, @T.as_type.as.EqWith.impl.ea5(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.ee659d.1: %T.as_type.as.EqWith.impl.NotEqual.type.56a43f.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.943e53.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.3, @T.as_type.as.EqWith.impl.ea5(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.755cc0.2: %T.as_type.as.EqWith.impl.Equal.type.943e53.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.56a43f.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.3, @T.as_type.as.EqWith.impl.ea5(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.ee659d.2: %T.as_type.as.EqWith.impl.NotEqual.type.56a43f.2 = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet.180: %EqWith.type.c04 = facet_value Core.IntLiteral, (%EqWith.impl_witness.f84) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.da5: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.180) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.155: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.180) [concrete] -// CHECK:STDOUT: %.826: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.da5, %EqWith.facet.180 [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.bf9480.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.755cc0.2 [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.e309f5.1: = specific_function %T.as_type.as.EqWith.impl.Equal.755cc0.2, @T.as_type.as.EqWith.impl.Equal.3(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %bound_method.1a4db7.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.specific_fn.e309f5.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.bf9480.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.755cc0.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.e309f5.2: = specific_function %T.as_type.as.EqWith.impl.Equal.755cc0.1, @T.as_type.as.EqWith.impl.Equal.4(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %bound_method.1a4db7.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.specific_fn.e309f5.2 [concrete] -// CHECK:STDOUT: %.33a: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.155, %EqWith.facet.180 [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.fbd5c3.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.ee659d.2 [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.b5f9c9.1: = specific_function %T.as_type.as.EqWith.impl.NotEqual.ee659d.2, @T.as_type.as.EqWith.impl.NotEqual.3(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %bound_method.48161a.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.b5f9c9.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.fbd5c3.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.ee659d.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.b5f9c9.2: = specific_function %T.as_type.as.EqWith.impl.NotEqual.ee659d.1, @T.as_type.as.EqWith.impl.NotEqual.4(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %bound_method.48161a.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.b5f9c9.2 [concrete] -// CHECK:STDOUT: %OrderedWith.impl_witness.575: = impl_witness imports.%OrderedWith.impl_witness_table.e93, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.d5a1ab.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.4, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.7a0579.1: %T.as_type.as.OrderedWith.impl.Less.type.d5a1ab.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.5b1bfe.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.db3985.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.5b1bfe.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.33b2b7.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.4, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.b41d18.1: %T.as_type.as.OrderedWith.impl.Greater.type.33b2b7.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.f746ee.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.e33eba.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.f746ee.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.d5a1ab.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.3, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.7a0579.2: %T.as_type.as.OrderedWith.impl.Less.type.d5a1ab.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.5b1bfe.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.db3985.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.5b1bfe.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.33b2b7.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.3, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.b41d18.2: %T.as_type.as.OrderedWith.impl.Greater.type.33b2b7.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.f746ee.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3, @T.as_type.as.OrderedWith.impl.500(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.e33eba.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.f746ee.2 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet.2e9: %OrderedWith.type.aaf = facet_value Core.IntLiteral, (%OrderedWith.impl_witness.575) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.5d1: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.2e9) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.079: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.2e9) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.7c5: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.2e9) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.79b: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.2e9) [concrete] -// CHECK:STDOUT: %.3a5: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.7c5, %OrderedWith.facet.2e9 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.e3a99b.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.b41d18.2 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.bb0c5f.1: = specific_function %T.as_type.as.OrderedWith.impl.Greater.b41d18.2, @T.as_type.as.OrderedWith.impl.Greater.3(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %bound_method.d7f650.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.bb0c5f.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.e3a99b.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.b41d18.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.bb0c5f.2: = specific_function %T.as_type.as.OrderedWith.impl.Greater.b41d18.1, @T.as_type.as.OrderedWith.impl.Greater.4(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %bound_method.d7f650.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.bb0c5f.2 [concrete] -// CHECK:STDOUT: %.24f: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.5d1, %OrderedWith.facet.2e9 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.85182d.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.7a0579.2 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.9b5b7e.1: = specific_function %T.as_type.as.OrderedWith.impl.Less.7a0579.2, @T.as_type.as.OrderedWith.impl.Less.3(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %bound_method.f042d3.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.specific_fn.9b5b7e.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.85182d.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.7a0579.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.9b5b7e.2: = specific_function %T.as_type.as.OrderedWith.impl.Less.7a0579.1, @T.as_type.as.OrderedWith.impl.Less.4(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %bound_method.f042d3.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.specific_fn.9b5b7e.2 [concrete] -// CHECK:STDOUT: %.50e: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.79b, %OrderedWith.facet.2e9 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.28d040.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.e33eba.2 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.93e889.1: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.e33eba.2, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %bound_method.278950.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.93e889.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.28d040.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.e33eba.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.93e889.2: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.e33eba.1, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %bound_method.278950.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.93e889.2 [concrete] -// CHECK:STDOUT: %.4fa: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.079, %OrderedWith.facet.2e9 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.7d81f1.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.db3985.2 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.f2ccbd.1: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.db3985.2, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %bound_method.39be86.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.f2ccbd.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.7d81f1.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.db3985.1 [concrete] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.f2ccbd.2: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.db3985.1, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4(%ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %bound_method.39be86.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.f2ccbd.2 [concrete] +// CHECK:STDOUT: %.eca: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.86d, %EqWith.facet.306 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.b44c79.1: = specific_function %T.as_type.as.EqWith.impl.NotEqual.de7c60.2, @T.as_type.as.EqWith.impl.NotEqual.3(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.b44c79.2: = specific_function %T.as_type.as.EqWith.impl.NotEqual.de7c60.1, @T.as_type.as.EqWith.impl.NotEqual.4(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %OrderedWith.type.456: type = facet_type <@OrderedWith, @OrderedWith(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.d6724c.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.df5290.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.d6724c.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.d6724c.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.df5290.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.d6724c.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.4fb98a.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.3, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.878ae3.1: %T.as_type.as.OrderedWith.impl.Greater.type.4fb98a.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.4fb98a.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.4, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.878ae3.2: %T.as_type.as.OrderedWith.impl.Greater.type.4fb98a.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.3d985f.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.2cb445.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.3d985f.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.3d985f.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.2cb445.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.3d985f.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.2daa9a.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.3, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.c37ef5.1: %T.as_type.as.OrderedWith.impl.Less.type.2daa9a.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.2daa9a.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.4, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.c37ef5.2: %T.as_type.as.OrderedWith.impl.Less.type.2daa9a.2 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.impl_witness.7e3: = impl_witness imports.%OrderedWith.impl_witness_table.8b4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.7b405f.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.c5f236.1: %T.as_type.as.OrderedWith.impl.Less.type.7b405f.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.577251.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e5cfba.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.577251.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.085dd9.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.749015.1: %T.as_type.as.OrderedWith.impl.Greater.type.085dd9.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.0f0b65.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.f86b3e.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.0f0b65.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.7b405f.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.3, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.c5f236.2: %T.as_type.as.OrderedWith.impl.Less.type.7b405f.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.577251.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e5cfba.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.577251.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.085dd9.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.3, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.749015.2: %T.as_type.as.OrderedWith.impl.Greater.type.085dd9.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.0f0b65.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.f86b3e.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.0f0b65.2 = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.facet.72a: %OrderedWith.type.456 = facet_value %i64, (%OrderedWith.impl_witness.7e3) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.606: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.72a) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.2a1: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.72a) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.f32: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.72a) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.15d: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.72a) [concrete] +// CHECK:STDOUT: %.af0: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.f32, %OrderedWith.facet.72a [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.cbc6c2.1: = specific_function %T.as_type.as.OrderedWith.impl.Greater.749015.2, @T.as_type.as.OrderedWith.impl.Greater.3(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.cbc6c2.2: = specific_function %T.as_type.as.OrderedWith.impl.Greater.749015.1, @T.as_type.as.OrderedWith.impl.Greater.4(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %.901: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.606, %OrderedWith.facet.72a [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.a8a2ad.1: = specific_function %T.as_type.as.OrderedWith.impl.Less.c5f236.2, @T.as_type.as.OrderedWith.impl.Less.3(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.a8a2ad.2: = specific_function %T.as_type.as.OrderedWith.impl.Less.c5f236.1, @T.as_type.as.OrderedWith.impl.Less.4(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %.96b: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.15d, %OrderedWith.facet.72a [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8a93e9.1: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.f86b3e.2, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8a93e9.2: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.f86b3e.1, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %.829: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.2a1, %OrderedWith.facet.72a [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ab9ff7.1: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e5cfba.2, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ab9ff7.2: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e5cfba.1, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.cb6: = impl_witness imports.%EqWith.impl_witness_table.db1, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.8e6244.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.4, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.66756b.1: %T.as_type.as.EqWith.impl.Equal.type.8e6244.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.fb7a86.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.4, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.672038.1: %T.as_type.as.EqWith.impl.NotEqual.type.fb7a86.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.8e6244.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.3, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.66756b.2: %T.as_type.as.EqWith.impl.Equal.type.8e6244.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.fb7a86.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.3, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.672038.2: %T.as_type.as.EqWith.impl.NotEqual.type.fb7a86.2 = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.facet.83c: %EqWith.type.9fc = facet_value Core.IntLiteral, (%EqWith.impl_witness.cb6) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.5b1: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.83c) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.a9f: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.83c) [concrete] +// CHECK:STDOUT: %.658: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.5b1, %EqWith.facet.83c [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.2fcdd5.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.66756b.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.7834c5.1: = specific_function %T.as_type.as.EqWith.impl.Equal.66756b.2, @T.as_type.as.EqWith.impl.Equal.3(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %bound_method.7c9d36.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.specific_fn.7834c5.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.2fcdd5.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.66756b.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.7834c5.2: = specific_function %T.as_type.as.EqWith.impl.Equal.66756b.1, @T.as_type.as.EqWith.impl.Equal.4(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %bound_method.7c9d36.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.specific_fn.7834c5.2 [concrete] +// CHECK:STDOUT: %.1f9: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.a9f, %EqWith.facet.83c [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.a9911b.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.672038.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.598adf.1: = specific_function %T.as_type.as.EqWith.impl.NotEqual.672038.2, @T.as_type.as.EqWith.impl.NotEqual.3(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %bound_method.1f073e.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.598adf.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.a9911b.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.672038.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.598adf.2: = specific_function %T.as_type.as.EqWith.impl.NotEqual.672038.1, @T.as_type.as.EqWith.impl.NotEqual.4(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %bound_method.1f073e.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.598adf.2 [concrete] +// CHECK:STDOUT: %OrderedWith.impl_witness.ccd: = impl_witness imports.%OrderedWith.impl_witness_table.8b4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.28a50f.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.09733d.1: %T.as_type.as.OrderedWith.impl.Less.type.28a50f.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1522a4.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1522a4.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.e2356e.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.a80774.1: %T.as_type.as.OrderedWith.impl.Greater.type.e2356e.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.09194f.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.09194f.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.28a50f.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.3, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.09733d.2: %T.as_type.as.OrderedWith.impl.Less.type.28a50f.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1522a4.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1522a4.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.e2356e.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.3, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.a80774.2: %T.as_type.as.OrderedWith.impl.Greater.type.e2356e.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.09194f.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.09194f.2 = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.facet.54d: %OrderedWith.type.456 = facet_value Core.IntLiteral, (%OrderedWith.impl_witness.ccd) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.a56: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.54d) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.21f: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.54d) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.22c: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.54d) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.6ad: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.54d) [concrete] +// CHECK:STDOUT: %.1e0: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.22c, %OrderedWith.facet.54d [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.ba4552.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.a80774.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.3eccd1.1: = specific_function %T.as_type.as.OrderedWith.impl.Greater.a80774.2, @T.as_type.as.OrderedWith.impl.Greater.3(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %bound_method.560bca.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.3eccd1.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.ba4552.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.a80774.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.3eccd1.2: = specific_function %T.as_type.as.OrderedWith.impl.Greater.a80774.1, @T.as_type.as.OrderedWith.impl.Greater.4(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %bound_method.560bca.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.3eccd1.2 [concrete] +// CHECK:STDOUT: %.4c9: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.a56, %OrderedWith.facet.54d [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.069497.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.09733d.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.0beaf8.1: = specific_function %T.as_type.as.OrderedWith.impl.Less.09733d.2, @T.as_type.as.OrderedWith.impl.Less.3(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %bound_method.103f49.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.specific_fn.0beaf8.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.069497.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.09733d.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.0beaf8.2: = specific_function %T.as_type.as.OrderedWith.impl.Less.09733d.1, @T.as_type.as.OrderedWith.impl.Less.4(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %bound_method.103f49.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.specific_fn.0beaf8.2 [concrete] +// CHECK:STDOUT: %.b09: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.6ad, %OrderedWith.facet.54d [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.22317d.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.371f57.1: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.2, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %bound_method.ffa540.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.371f57.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.22317d.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.371f57.2: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.1, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %bound_method.ffa540.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.371f57.2 [concrete] +// CHECK:STDOUT: %.cab: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.21f, %OrderedWith.facet.54d [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.2eaa72.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.05fce2.1: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.2, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %bound_method.83e687.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.05fce2.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.2eaa72.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.05fce2.2: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.1, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4(%ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %bound_method.83e687.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.05fce2.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2095,55 +2095,55 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: .long_long = constants.%Cpp.long_long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.adef5f.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.337 = impl_witness_table (%Core.import_ref.adef5f.1), @Core.IntLiteral.as.ImplicitAs.impl.74b [concrete] -// CHECK:STDOUT: %Core.import_ref.80d: @T.as_type.as.EqWith.impl.ea5.%T.as_type.as.EqWith.impl.Equal.type.2 (%T.as_type.as.EqWith.impl.Equal.type.e1e2e3.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.EqWith.impl.ea5.%T.as_type.as.EqWith.impl.Equal.2 (constants.%T.as_type.as.EqWith.impl.Equal.c99f72.1)] -// CHECK:STDOUT: %Core.import_ref.fe3b: @T.as_type.as.EqWith.impl.ea5.%T.as_type.as.EqWith.impl.NotEqual.type.2 (%T.as_type.as.EqWith.impl.NotEqual.type.5b08fc.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.EqWith.impl.ea5.%T.as_type.as.EqWith.impl.NotEqual.2 (constants.%T.as_type.as.EqWith.impl.NotEqual.f70f26.1)] -// CHECK:STDOUT: %EqWith.impl_witness_table.168 = impl_witness_table (%Core.import_ref.80d, %Core.import_ref.fe3b), @T.as_type.as.EqWith.impl.ea5 [concrete] -// CHECK:STDOUT: %Core.NotEqual.365: @T.as_type.as.EqWith.impl.ea5.%T.as_type.as.EqWith.impl.NotEqual.type.1 (%T.as_type.as.EqWith.impl.NotEqual.type.5b08fc.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @T.as_type.as.EqWith.impl.ea5.%T.as_type.as.EqWith.impl.NotEqual.1 (constants.%T.as_type.as.EqWith.impl.NotEqual.f70f26.2)] -// CHECK:STDOUT: %Core.Equal.17b: @T.as_type.as.EqWith.impl.ea5.%T.as_type.as.EqWith.impl.Equal.type.1 (%T.as_type.as.EqWith.impl.Equal.type.e1e2e3.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @T.as_type.as.EqWith.impl.ea5.%T.as_type.as.EqWith.impl.Equal.1 (constants.%T.as_type.as.EqWith.impl.Equal.c99f72.2)] -// CHECK:STDOUT: %Core.import_ref.adef5f.2: %i64.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i64.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.7ed = impl_witness_table (%Core.import_ref.adef5f.2), @i64.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.b6a: @T.as_type.as.OrderedWith.impl.500.%T.as_type.as.OrderedWith.impl.Less.type.2 (%T.as_type.as.OrderedWith.impl.Less.type.c8455c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.500.%T.as_type.as.OrderedWith.impl.Less.2 (constants.%T.as_type.as.OrderedWith.impl.Less.bb1211.1)] -// CHECK:STDOUT: %Core.import_ref.2a6: @T.as_type.as.OrderedWith.impl.500.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.2 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.a4322b.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.500.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.0d7756.1)] -// CHECK:STDOUT: %Core.import_ref.64d: @T.as_type.as.OrderedWith.impl.500.%T.as_type.as.OrderedWith.impl.Greater.type.2 (%T.as_type.as.OrderedWith.impl.Greater.type.e67987.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.500.%T.as_type.as.OrderedWith.impl.Greater.2 (constants.%T.as_type.as.OrderedWith.impl.Greater.808915.1)] -// CHECK:STDOUT: %Core.import_ref.e8f: @T.as_type.as.OrderedWith.impl.500.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.20abe7.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.500.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.279040.1)] -// CHECK:STDOUT: %OrderedWith.impl_witness_table.e93 = impl_witness_table (%Core.import_ref.b6a, %Core.import_ref.2a6, %Core.import_ref.64d, %Core.import_ref.e8f), @T.as_type.as.OrderedWith.impl.500 [concrete] -// CHECK:STDOUT: %Core.GreaterOrEquivalent.c4a: @T.as_type.as.OrderedWith.impl.500.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.20abe7.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.500.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.279040.2)] -// CHECK:STDOUT: %Core.Greater.75d: @T.as_type.as.OrderedWith.impl.500.%T.as_type.as.OrderedWith.impl.Greater.type.1 (%T.as_type.as.OrderedWith.impl.Greater.type.e67987.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @T.as_type.as.OrderedWith.impl.500.%T.as_type.as.OrderedWith.impl.Greater.1 (constants.%T.as_type.as.OrderedWith.impl.Greater.808915.2)] -// CHECK:STDOUT: %Core.LessOrEquivalent.c4e: @T.as_type.as.OrderedWith.impl.500.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.a4322b.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.500.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.0d7756.2)] -// CHECK:STDOUT: %Core.Less.79a: @T.as_type.as.OrderedWith.impl.500.%T.as_type.as.OrderedWith.impl.Less.type.1 (%T.as_type.as.OrderedWith.impl.Less.type.c8455c.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @T.as_type.as.OrderedWith.impl.500.%T.as_type.as.OrderedWith.impl.Less.1 (constants.%T.as_type.as.OrderedWith.impl.Less.bb1211.2)] +// CHECK:STDOUT: %Core.import_ref.06c923.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.d6d = impl_witness_table (%Core.import_ref.06c923.1), @Core.IntLiteral.as.ImplicitAs.impl.e33 [concrete] +// CHECK:STDOUT: %Core.import_ref.c48: @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.Equal.type.2 (%T.as_type.as.EqWith.impl.Equal.type.3cb0e1.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.Equal.2 (constants.%T.as_type.as.EqWith.impl.Equal.a1333e.1)] +// CHECK:STDOUT: %Core.import_ref.98d: @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.NotEqual.type.2 (%T.as_type.as.EqWith.impl.NotEqual.type.925fdb.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.NotEqual.2 (constants.%T.as_type.as.EqWith.impl.NotEqual.b16a99.1)] +// CHECK:STDOUT: %EqWith.impl_witness_table.db1 = impl_witness_table (%Core.import_ref.c48, %Core.import_ref.98d), @T.as_type.as.EqWith.impl.6d3 [concrete] +// CHECK:STDOUT: %Core.NotEqual.0b2: @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.NotEqual.type.1 (%T.as_type.as.EqWith.impl.NotEqual.type.925fdb.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.NotEqual.1 (constants.%T.as_type.as.EqWith.impl.NotEqual.b16a99.2)] +// CHECK:STDOUT: %Core.Equal.4f5: @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.Equal.type.1 (%T.as_type.as.EqWith.impl.Equal.type.3cb0e1.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.Equal.1 (constants.%T.as_type.as.EqWith.impl.Equal.a1333e.2)] +// CHECK:STDOUT: %Core.import_ref.06c923.2: %i64.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a87 = impl_witness_table (%Core.import_ref.06c923.2), @i64.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.97f: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Less.type.2 (%T.as_type.as.OrderedWith.impl.Less.type.2daa9a.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Less.2 (constants.%T.as_type.as.OrderedWith.impl.Less.c37ef5.1)] +// CHECK:STDOUT: %Core.import_ref.409: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.2 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.3d985f.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.2cb445.1)] +// CHECK:STDOUT: %Core.import_ref.56a: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Greater.type.2 (%T.as_type.as.OrderedWith.impl.Greater.type.4fb98a.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Greater.2 (constants.%T.as_type.as.OrderedWith.impl.Greater.878ae3.1)] +// CHECK:STDOUT: %Core.import_ref.b00: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.d6724c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.df5290.1)] +// CHECK:STDOUT: %OrderedWith.impl_witness_table.8b4 = impl_witness_table (%Core.import_ref.97f, %Core.import_ref.409, %Core.import_ref.56a, %Core.import_ref.b00), @T.as_type.as.OrderedWith.impl.df2 [concrete] +// CHECK:STDOUT: %Core.GreaterOrEquivalent.8e2: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.d6724c.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.df5290.2)] +// CHECK:STDOUT: %Core.Greater.c24: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Greater.type.1 (%T.as_type.as.OrderedWith.impl.Greater.type.4fb98a.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Greater.1 (constants.%T.as_type.as.OrderedWith.impl.Greater.878ae3.2)] +// CHECK:STDOUT: %Core.LessOrEquivalent.d90: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.3d985f.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.2cb445.2)] +// CHECK:STDOUT: %Core.Less.2d9: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Less.type.1 (%T.as_type.as.OrderedWith.impl.Less.type.2daa9a.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Less.1 (constants.%T.as_type.as.OrderedWith.impl.Less.c37ef5.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ComparisonsHeterogeneousLongLongRightSide() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.003 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.d58 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_13: type = splice_block %long_long.ref [concrete = constants.%Cpp.long_long] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %long_long.ref: type = name_ref long_long, constants.%Cpp.long_long [concrete = constants.%Cpp.long_long] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc9: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc9: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc9: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long_long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc9_26.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc9_26.2: %Cpp.long_long = converted %int_1.loc9, %.loc9_26.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long_long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc9_26.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc9_26.2: %Cpp.long_long = converted %int_1.loc9, %.loc9_26.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %a: %Cpp.long_long = value_binding a, %.loc9_26.2 // CHECK:STDOUT: %b.ref.loc10: %i64 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc10: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc10_5: %.6b1 = impl_witness_access constants.%EqWith.impl_witness.c96, element0 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.ea742a.2] +// CHECK:STDOUT: %impl.elem0.loc10_5: %.183 = impl_witness_access constants.%EqWith.impl_witness.084, element0 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.817082.2] // CHECK:STDOUT: %bound_method.loc10_5.1: = bound_method %b.ref.loc10, %impl.elem0.loc10_5 -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @T.as_type.as.EqWith.impl.Equal.3(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.b38df1.1] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @T.as_type.as.EqWith.impl.Equal.3(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.044d32.1] // CHECK:STDOUT: %bound_method.loc10_5.2: = bound_method %b.ref.loc10, %specific_fn.loc10 -// CHECK:STDOUT: %.loc10_5: %T.as_type.as.EqWith.impl.Equal.type.7fc917.1 = specific_constant imports.%Core.Equal.17b, @T.as_type.as.EqWith.impl.ea5(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.ea742a.1] -// CHECK:STDOUT: %Equal.ref.loc10: %T.as_type.as.EqWith.impl.Equal.type.7fc917.1 = name_ref Equal, %.loc10_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.ea742a.1] +// CHECK:STDOUT: %.loc10_5: %T.as_type.as.EqWith.impl.Equal.type.6d33d6.1 = specific_constant imports.%Core.Equal.4f5, @T.as_type.as.EqWith.impl.6d3(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.817082.1] +// CHECK:STDOUT: %Equal.ref.loc10: %T.as_type.as.EqWith.impl.Equal.type.6d33d6.1 = name_ref Equal, %.loc10_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.817082.1] // CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.loc10: = bound_method %b.ref.loc10, %Equal.ref.loc10 -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.loc10: = specific_function %Equal.ref.loc10, @T.as_type.as.EqWith.impl.Equal.4(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.b38df1.2] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.loc10: = specific_function %Equal.ref.loc10, @T.as_type.as.EqWith.impl.Equal.4(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.044d32.2] // CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %b.ref.loc10, %T.as_type.as.EqWith.impl.Equal.specific_fn.loc10 -// CHECK:STDOUT: %impl.elem0.loc10_3: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc10_3: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_3: = bound_method %b.ref.loc10, %impl.elem0.loc10_3 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc10: init %Cpp.long_long = call %bound_method.loc10_3(%b.ref.loc10) // CHECK:STDOUT: %.loc10_3.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc10 @@ -2151,16 +2151,16 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.call.loc10: init bool = call %bound_method.loc10_5.3(%.loc10_3.2, %a.ref.loc10) // CHECK:STDOUT: %b.ref.loc11: %i64 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc11: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem1.loc11: %.cb1 = impl_witness_access constants.%EqWith.impl_witness.c96, element1 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.873f6e.2] +// CHECK:STDOUT: %impl.elem1.loc11: %.eca = impl_witness_access constants.%EqWith.impl_witness.084, element1 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.de7c60.2] // CHECK:STDOUT: %bound_method.loc11_5.1: = bound_method %b.ref.loc11, %impl.elem1.loc11 -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem1.loc11, @T.as_type.as.EqWith.impl.NotEqual.3(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.558ec3.1] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem1.loc11, @T.as_type.as.EqWith.impl.NotEqual.3(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.b44c79.1] // CHECK:STDOUT: %bound_method.loc11_5.2: = bound_method %b.ref.loc11, %specific_fn.loc11 -// CHECK:STDOUT: %.loc11_5: %T.as_type.as.EqWith.impl.NotEqual.type.31bb99.1 = specific_constant imports.%Core.NotEqual.365, @T.as_type.as.EqWith.impl.ea5(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.873f6e.1] -// CHECK:STDOUT: %NotEqual.ref.loc11: %T.as_type.as.EqWith.impl.NotEqual.type.31bb99.1 = name_ref NotEqual, %.loc11_5 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.873f6e.1] +// CHECK:STDOUT: %.loc11_5: %T.as_type.as.EqWith.impl.NotEqual.type.2c42f8.1 = specific_constant imports.%Core.NotEqual.0b2, @T.as_type.as.EqWith.impl.6d3(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.de7c60.1] +// CHECK:STDOUT: %NotEqual.ref.loc11: %T.as_type.as.EqWith.impl.NotEqual.type.2c42f8.1 = name_ref NotEqual, %.loc11_5 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.de7c60.1] // CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.loc11: = bound_method %b.ref.loc11, %NotEqual.ref.loc11 -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11: = specific_function %NotEqual.ref.loc11, @T.as_type.as.EqWith.impl.NotEqual.4(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.558ec3.2] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11: = specific_function %NotEqual.ref.loc11, @T.as_type.as.EqWith.impl.NotEqual.4(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.b44c79.2] // CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %b.ref.loc11, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11 -// CHECK:STDOUT: %impl.elem0.loc11: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc11: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc11_3: = bound_method %b.ref.loc11, %impl.elem0.loc11 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc11: init %Cpp.long_long = call %bound_method.loc11_3(%b.ref.loc11) // CHECK:STDOUT: %.loc11_3.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc11 @@ -2168,16 +2168,16 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.call.loc11: init bool = call %bound_method.loc11_5.3(%.loc11_3.2, %a.ref.loc11) // CHECK:STDOUT: %b.ref.loc12: %i64 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc12: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem2.loc12: %.e9d = impl_witness_access constants.%OrderedWith.impl_witness.634, element2 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.12cc91.2] +// CHECK:STDOUT: %impl.elem2.loc12: %.af0 = impl_witness_access constants.%OrderedWith.impl_witness.7e3, element2 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.749015.2] // CHECK:STDOUT: %bound_method.loc12_5.1: = bound_method %b.ref.loc12, %impl.elem2.loc12 -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem2.loc12, @T.as_type.as.OrderedWith.impl.Greater.3(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.5eebb5.1] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem2.loc12, @T.as_type.as.OrderedWith.impl.Greater.3(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.cbc6c2.1] // CHECK:STDOUT: %bound_method.loc12_5.2: = bound_method %b.ref.loc12, %specific_fn.loc12 -// CHECK:STDOUT: %.loc12_5: %T.as_type.as.OrderedWith.impl.Greater.type.ea3f4a.1 = specific_constant imports.%Core.Greater.75d, @T.as_type.as.OrderedWith.impl.500(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.12cc91.1] -// CHECK:STDOUT: %Greater.ref.loc12: %T.as_type.as.OrderedWith.impl.Greater.type.ea3f4a.1 = name_ref Greater, %.loc12_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.12cc91.1] +// CHECK:STDOUT: %.loc12_5: %T.as_type.as.OrderedWith.impl.Greater.type.085dd9.1 = specific_constant imports.%Core.Greater.c24, @T.as_type.as.OrderedWith.impl.df2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.749015.1] +// CHECK:STDOUT: %Greater.ref.loc12: %T.as_type.as.OrderedWith.impl.Greater.type.085dd9.1 = name_ref Greater, %.loc12_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.749015.1] // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.loc12: = bound_method %b.ref.loc12, %Greater.ref.loc12 -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12: = specific_function %Greater.ref.loc12, @T.as_type.as.OrderedWith.impl.Greater.4(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.5eebb5.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12: = specific_function %Greater.ref.loc12, @T.as_type.as.OrderedWith.impl.Greater.4(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.cbc6c2.2] // CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %b.ref.loc12, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12 -// CHECK:STDOUT: %impl.elem0.loc12: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc12: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc12_3: = bound_method %b.ref.loc12, %impl.elem0.loc12 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc12: init %Cpp.long_long = call %bound_method.loc12_3(%b.ref.loc12) // CHECK:STDOUT: %.loc12_3.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc12 @@ -2185,16 +2185,16 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.call.loc12: init bool = call %bound_method.loc12_5.3(%.loc12_3.2, %a.ref.loc12) // CHECK:STDOUT: %b.ref.loc13: %i64 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc13: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc13_5: %.57a = impl_witness_access constants.%OrderedWith.impl_witness.634, element0 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.c49a88.2] +// CHECK:STDOUT: %impl.elem0.loc13_5: %.901 = impl_witness_access constants.%OrderedWith.impl_witness.7e3, element0 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.c5f236.2] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %b.ref.loc13, %impl.elem0.loc13_5 -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5, @T.as_type.as.OrderedWith.impl.Less.3(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.ae50e5.1] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5, @T.as_type.as.OrderedWith.impl.Less.3(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.a8a2ad.1] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %b.ref.loc13, %specific_fn.loc13 -// CHECK:STDOUT: %.loc13_5: %T.as_type.as.OrderedWith.impl.Less.type.a2fbe5.1 = specific_constant imports.%Core.Less.79a, @T.as_type.as.OrderedWith.impl.500(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.c49a88.1] -// CHECK:STDOUT: %Less.ref.loc13: %T.as_type.as.OrderedWith.impl.Less.type.a2fbe5.1 = name_ref Less, %.loc13_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.c49a88.1] +// CHECK:STDOUT: %.loc13_5: %T.as_type.as.OrderedWith.impl.Less.type.7b405f.1 = specific_constant imports.%Core.Less.2d9, @T.as_type.as.OrderedWith.impl.df2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.c5f236.1] +// CHECK:STDOUT: %Less.ref.loc13: %T.as_type.as.OrderedWith.impl.Less.type.7b405f.1 = name_ref Less, %.loc13_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.c5f236.1] // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.loc13: = bound_method %b.ref.loc13, %Less.ref.loc13 -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc13: = specific_function %Less.ref.loc13, @T.as_type.as.OrderedWith.impl.Less.4(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.ae50e5.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc13: = specific_function %Less.ref.loc13, @T.as_type.as.OrderedWith.impl.Less.4(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.a8a2ad.2] // CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %b.ref.loc13, %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc13 -// CHECK:STDOUT: %impl.elem0.loc13_3: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc13_3: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc13_3: = bound_method %b.ref.loc13, %impl.elem0.loc13_3 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc13: init %Cpp.long_long = call %bound_method.loc13_3(%b.ref.loc13) // CHECK:STDOUT: %.loc13_3.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc13 @@ -2202,16 +2202,16 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.call.loc13: init bool = call %bound_method.loc13_5.3(%.loc13_3.2, %a.ref.loc13) // CHECK:STDOUT: %b.ref.loc14: %i64 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc14: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem3.loc14: %.3c6 = impl_witness_access constants.%OrderedWith.impl_witness.634, element3 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bc6b0e.2] +// CHECK:STDOUT: %impl.elem3.loc14: %.96b = impl_witness_access constants.%OrderedWith.impl_witness.7e3, element3 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.f86b3e.2] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %b.ref.loc14, %impl.elem3.loc14 -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem3.loc14, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ecaa0d.1] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem3.loc14, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8a93e9.1] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %b.ref.loc14, %specific_fn.loc14 -// CHECK:STDOUT: %.loc14_5: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.96093f.1 = specific_constant imports.%Core.GreaterOrEquivalent.c4a, @T.as_type.as.OrderedWith.impl.500(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bc6b0e.1] -// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.96093f.1 = name_ref GreaterOrEquivalent, %.loc14_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bc6b0e.1] +// CHECK:STDOUT: %.loc14_5: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.0f0b65.1 = specific_constant imports.%Core.GreaterOrEquivalent.8e2, @T.as_type.as.OrderedWith.impl.df2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.f86b3e.1] +// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.0f0b65.1 = name_ref GreaterOrEquivalent, %.loc14_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.f86b3e.1] // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc14: = bound_method %b.ref.loc14, %GreaterOrEquivalent.ref.loc14 -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: = specific_function %GreaterOrEquivalent.ref.loc14, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ecaa0d.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: = specific_function %GreaterOrEquivalent.ref.loc14, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8a93e9.2] // CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %b.ref.loc14, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14 -// CHECK:STDOUT: %impl.elem0.loc14: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc14: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc14_3: = bound_method %b.ref.loc14, %impl.elem0.loc14 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc14: init %Cpp.long_long = call %bound_method.loc14_3(%b.ref.loc14) // CHECK:STDOUT: %.loc14_3.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc14 @@ -2219,16 +2219,16 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call.loc14: init bool = call %bound_method.loc14_5.3(%.loc14_3.2, %a.ref.loc14) // CHECK:STDOUT: %b.ref.loc15: %i64 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc15: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem1.loc15: %.084 = impl_witness_access constants.%OrderedWith.impl_witness.634, element1 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.2f1998.2] +// CHECK:STDOUT: %impl.elem1.loc15: %.829 = impl_witness_access constants.%OrderedWith.impl_witness.7e3, element1 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.e5cfba.2] // CHECK:STDOUT: %bound_method.loc15_5.1: = bound_method %b.ref.loc15, %impl.elem1.loc15 -// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem1.loc15, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.d600bb.1] +// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem1.loc15, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ab9ff7.1] // CHECK:STDOUT: %bound_method.loc15_5.2: = bound_method %b.ref.loc15, %specific_fn.loc15 -// CHECK:STDOUT: %.loc15_5: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.5c61ed.1 = specific_constant imports.%Core.LessOrEquivalent.c4e, @T.as_type.as.OrderedWith.impl.500(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.2f1998.1] -// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.5c61ed.1 = name_ref LessOrEquivalent, %.loc15_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.2f1998.1] +// CHECK:STDOUT: %.loc15_5: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.577251.1 = specific_constant imports.%Core.LessOrEquivalent.d90, @T.as_type.as.OrderedWith.impl.df2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.e5cfba.1] +// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.577251.1 = name_ref LessOrEquivalent, %.loc15_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.e5cfba.1] // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.loc15: = bound_method %b.ref.loc15, %LessOrEquivalent.ref.loc15 -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: = specific_function %LessOrEquivalent.ref.loc15, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4(constants.%ImplicitAs.facet.a8b) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.d600bb.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: = specific_function %LessOrEquivalent.ref.loc15, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ab9ff7.2] // CHECK:STDOUT: %bound_method.loc15_5.3: = bound_method %b.ref.loc15, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15 -// CHECK:STDOUT: %impl.elem0.loc15: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc15: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc15_3: = bound_method %b.ref.loc15, %impl.elem0.loc15 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc15: init %Cpp.long_long = call %bound_method.loc15_3(%b.ref.loc15) // CHECK:STDOUT: %.loc15_3.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc15 @@ -2236,105 +2236,105 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call.loc15: init bool = call %bound_method.loc15_5.3(%.loc15_3.2, %a.ref.loc15) // CHECK:STDOUT: %int_1.loc17: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc17: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc17_5: %.826 = impl_witness_access constants.%EqWith.impl_witness.f84, element0 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.755cc0.2] -// CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %int_1.loc17, %impl.elem0.loc17_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.bound.bf9480.1] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5, @T.as_type.as.EqWith.impl.Equal.3(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.e309f5.1] -// CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %int_1.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.1a4db7.1] -// CHECK:STDOUT: %.loc17_5: %T.as_type.as.EqWith.impl.Equal.type.943e53.1 = specific_constant imports.%Core.Equal.17b, @T.as_type.as.EqWith.impl.ea5(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.755cc0.1] -// CHECK:STDOUT: %Equal.ref.loc17: %T.as_type.as.EqWith.impl.Equal.type.943e53.1 = name_ref Equal, %.loc17_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.755cc0.1] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.loc17: = bound_method %int_1.loc17, %Equal.ref.loc17 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.bound.bf9480.2] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.loc17: = specific_function %Equal.ref.loc17, @T.as_type.as.EqWith.impl.Equal.4(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.e309f5.2] -// CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %int_1.loc17, %T.as_type.as.EqWith.impl.Equal.specific_fn.loc17 [concrete = constants.%bound_method.1a4db7.2] -// CHECK:STDOUT: %impl.elem0.loc17_3: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc17_5: %.658 = impl_witness_access constants.%EqWith.impl_witness.cb6, element0 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.66756b.2] +// CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %int_1.loc17, %impl.elem0.loc17_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.bound.2fcdd5.1] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5, @T.as_type.as.EqWith.impl.Equal.3(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.7834c5.1] +// CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %int_1.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.7c9d36.1] +// CHECK:STDOUT: %.loc17_5: %T.as_type.as.EqWith.impl.Equal.type.8e6244.1 = specific_constant imports.%Core.Equal.4f5, @T.as_type.as.EqWith.impl.6d3(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.66756b.1] +// CHECK:STDOUT: %Equal.ref.loc17: %T.as_type.as.EqWith.impl.Equal.type.8e6244.1 = name_ref Equal, %.loc17_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.66756b.1] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.loc17: = bound_method %int_1.loc17, %Equal.ref.loc17 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.bound.2fcdd5.2] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.loc17: = specific_function %Equal.ref.loc17, @T.as_type.as.EqWith.impl.Equal.4(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.7834c5.2] +// CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %int_1.loc17, %T.as_type.as.EqWith.impl.Equal.specific_fn.loc17 [concrete = constants.%bound_method.7c9d36.2] +// CHECK:STDOUT: %impl.elem0.loc17_3: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc17_3: = bound_method %int_1.loc17, %impl.elem0.loc17_3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %Cpp.long_long = call %bound_method.loc17_3(%int_1.loc17) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc17_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc17_3.2: %Cpp.long_long = converted %int_1.loc17, %.loc17_3.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %Cpp.long_long = call %bound_method.loc17_3(%int_1.loc17) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc17_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc17_3.2: %Cpp.long_long = converted %int_1.loc17, %.loc17_3.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.call.loc17: init bool = call %bound_method.loc17_5.3(%.loc17_3.2, %a.ref.loc17) // CHECK:STDOUT: %int_1.loc18: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc18: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem1.loc18: %.33a = impl_witness_access constants.%EqWith.impl_witness.f84, element1 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.ee659d.2] -// CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %int_1.loc18, %impl.elem1.loc18 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.bound.fbd5c3.1] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem1.loc18, @T.as_type.as.EqWith.impl.NotEqual.3(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.b5f9c9.1] -// CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %int_1.loc18, %specific_fn.loc18 [concrete = constants.%bound_method.48161a.1] -// CHECK:STDOUT: %.loc18_5: %T.as_type.as.EqWith.impl.NotEqual.type.56a43f.1 = specific_constant imports.%Core.NotEqual.365, @T.as_type.as.EqWith.impl.ea5(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.ee659d.1] -// CHECK:STDOUT: %NotEqual.ref.loc18: %T.as_type.as.EqWith.impl.NotEqual.type.56a43f.1 = name_ref NotEqual, %.loc18_5 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.ee659d.1] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.loc18: = bound_method %int_1.loc18, %NotEqual.ref.loc18 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.bound.fbd5c3.2] -// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18: = specific_function %NotEqual.ref.loc18, @T.as_type.as.EqWith.impl.NotEqual.4(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.b5f9c9.2] -// CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %int_1.loc18, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18 [concrete = constants.%bound_method.48161a.2] -// CHECK:STDOUT: %impl.elem0.loc18: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem1.loc18: %.1f9 = impl_witness_access constants.%EqWith.impl_witness.cb6, element1 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.672038.2] +// CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %int_1.loc18, %impl.elem1.loc18 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.bound.a9911b.1] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem1.loc18, @T.as_type.as.EqWith.impl.NotEqual.3(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.598adf.1] +// CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %int_1.loc18, %specific_fn.loc18 [concrete = constants.%bound_method.1f073e.1] +// CHECK:STDOUT: %.loc18_5: %T.as_type.as.EqWith.impl.NotEqual.type.fb7a86.1 = specific_constant imports.%Core.NotEqual.0b2, @T.as_type.as.EqWith.impl.6d3(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.672038.1] +// CHECK:STDOUT: %NotEqual.ref.loc18: %T.as_type.as.EqWith.impl.NotEqual.type.fb7a86.1 = name_ref NotEqual, %.loc18_5 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.672038.1] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.loc18: = bound_method %int_1.loc18, %NotEqual.ref.loc18 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.bound.a9911b.2] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18: = specific_function %NotEqual.ref.loc18, @T.as_type.as.EqWith.impl.NotEqual.4(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.598adf.2] +// CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %int_1.loc18, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18 [concrete = constants.%bound_method.1f073e.2] +// CHECK:STDOUT: %impl.elem0.loc18: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc18_3: = bound_method %int_1.loc18, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %Cpp.long_long = call %bound_method.loc18_3(%int_1.loc18) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc18_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc18_3.2: %Cpp.long_long = converted %int_1.loc18, %.loc18_3.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %Cpp.long_long = call %bound_method.loc18_3(%int_1.loc18) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc18_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc18_3.2: %Cpp.long_long = converted %int_1.loc18, %.loc18_3.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.call.loc18: init bool = call %bound_method.loc18_5.3(%.loc18_3.2, %a.ref.loc18) // CHECK:STDOUT: %int_1.loc19: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc19: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem2.loc19: %.3a5 = impl_witness_access constants.%OrderedWith.impl_witness.575, element2 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.b41d18.2] -// CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %int_1.loc19, %impl.elem2.loc19 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.bound.e3a99b.1] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem2.loc19, @T.as_type.as.OrderedWith.impl.Greater.3(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.bb0c5f.1] -// CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %int_1.loc19, %specific_fn.loc19 [concrete = constants.%bound_method.d7f650.1] -// CHECK:STDOUT: %.loc19_5: %T.as_type.as.OrderedWith.impl.Greater.type.33b2b7.1 = specific_constant imports.%Core.Greater.75d, @T.as_type.as.OrderedWith.impl.500(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.b41d18.1] -// CHECK:STDOUT: %Greater.ref.loc19: %T.as_type.as.OrderedWith.impl.Greater.type.33b2b7.1 = name_ref Greater, %.loc19_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.b41d18.1] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.loc19: = bound_method %int_1.loc19, %Greater.ref.loc19 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.bound.e3a99b.2] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19: = specific_function %Greater.ref.loc19, @T.as_type.as.OrderedWith.impl.Greater.4(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.bb0c5f.2] -// CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %int_1.loc19, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19 [concrete = constants.%bound_method.d7f650.2] -// CHECK:STDOUT: %impl.elem0.loc19: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem2.loc19: %.1e0 = impl_witness_access constants.%OrderedWith.impl_witness.ccd, element2 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.a80774.2] +// CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %int_1.loc19, %impl.elem2.loc19 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.bound.ba4552.1] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem2.loc19, @T.as_type.as.OrderedWith.impl.Greater.3(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.3eccd1.1] +// CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %int_1.loc19, %specific_fn.loc19 [concrete = constants.%bound_method.560bca.1] +// CHECK:STDOUT: %.loc19_5: %T.as_type.as.OrderedWith.impl.Greater.type.e2356e.1 = specific_constant imports.%Core.Greater.c24, @T.as_type.as.OrderedWith.impl.df2(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.a80774.1] +// CHECK:STDOUT: %Greater.ref.loc19: %T.as_type.as.OrderedWith.impl.Greater.type.e2356e.1 = name_ref Greater, %.loc19_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.a80774.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.loc19: = bound_method %int_1.loc19, %Greater.ref.loc19 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.bound.ba4552.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19: = specific_function %Greater.ref.loc19, @T.as_type.as.OrderedWith.impl.Greater.4(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.3eccd1.2] +// CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %int_1.loc19, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19 [concrete = constants.%bound_method.560bca.2] +// CHECK:STDOUT: %impl.elem0.loc19: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc19_3: = bound_method %int_1.loc19, %impl.elem0.loc19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %Cpp.long_long = call %bound_method.loc19_3(%int_1.loc19) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc19_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc19_3.2: %Cpp.long_long = converted %int_1.loc19, %.loc19_3.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %Cpp.long_long = call %bound_method.loc19_3(%int_1.loc19) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc19_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc19_3.2: %Cpp.long_long = converted %int_1.loc19, %.loc19_3.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.call.loc19: init bool = call %bound_method.loc19_5.3(%.loc19_3.2, %a.ref.loc19) // CHECK:STDOUT: %int_1.loc20: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc20: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc20_5: %.24f = impl_witness_access constants.%OrderedWith.impl_witness.575, element0 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.7a0579.2] -// CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %int_1.loc20, %impl.elem0.loc20_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.bound.85182d.1] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5, @T.as_type.as.OrderedWith.impl.Less.3(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.9b5b7e.1] -// CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %int_1.loc20, %specific_fn.loc20 [concrete = constants.%bound_method.f042d3.1] -// CHECK:STDOUT: %.loc20_5: %T.as_type.as.OrderedWith.impl.Less.type.d5a1ab.1 = specific_constant imports.%Core.Less.79a, @T.as_type.as.OrderedWith.impl.500(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.7a0579.1] -// CHECK:STDOUT: %Less.ref.loc20: %T.as_type.as.OrderedWith.impl.Less.type.d5a1ab.1 = name_ref Less, %.loc20_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.7a0579.1] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.loc20: = bound_method %int_1.loc20, %Less.ref.loc20 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.bound.85182d.2] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc20: = specific_function %Less.ref.loc20, @T.as_type.as.OrderedWith.impl.Less.4(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.9b5b7e.2] -// CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %int_1.loc20, %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc20 [concrete = constants.%bound_method.f042d3.2] -// CHECK:STDOUT: %impl.elem0.loc20_3: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc20_5: %.4c9 = impl_witness_access constants.%OrderedWith.impl_witness.ccd, element0 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.09733d.2] +// CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %int_1.loc20, %impl.elem0.loc20_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.bound.069497.1] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5, @T.as_type.as.OrderedWith.impl.Less.3(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.0beaf8.1] +// CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %int_1.loc20, %specific_fn.loc20 [concrete = constants.%bound_method.103f49.1] +// CHECK:STDOUT: %.loc20_5: %T.as_type.as.OrderedWith.impl.Less.type.28a50f.1 = specific_constant imports.%Core.Less.2d9, @T.as_type.as.OrderedWith.impl.df2(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.09733d.1] +// CHECK:STDOUT: %Less.ref.loc20: %T.as_type.as.OrderedWith.impl.Less.type.28a50f.1 = name_ref Less, %.loc20_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.09733d.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.loc20: = bound_method %int_1.loc20, %Less.ref.loc20 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.bound.069497.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc20: = specific_function %Less.ref.loc20, @T.as_type.as.OrderedWith.impl.Less.4(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.0beaf8.2] +// CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %int_1.loc20, %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc20 [concrete = constants.%bound_method.103f49.2] +// CHECK:STDOUT: %impl.elem0.loc20_3: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc20_3: = bound_method %int_1.loc20, %impl.elem0.loc20_3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %Cpp.long_long = call %bound_method.loc20_3(%int_1.loc20) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc20_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc20_3.2: %Cpp.long_long = converted %int_1.loc20, %.loc20_3.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %Cpp.long_long = call %bound_method.loc20_3(%int_1.loc20) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc20_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc20_3.2: %Cpp.long_long = converted %int_1.loc20, %.loc20_3.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.call.loc20: init bool = call %bound_method.loc20_5.3(%.loc20_3.2, %a.ref.loc20) // CHECK:STDOUT: %int_1.loc21: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc21: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem3.loc21: %.50e = impl_witness_access constants.%OrderedWith.impl_witness.575, element3 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.e33eba.2] -// CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %int_1.loc21, %impl.elem3.loc21 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.28d040.1] -// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem3.loc21, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.93e889.1] -// CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %int_1.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.278950.1] -// CHECK:STDOUT: %.loc21_5: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.f746ee.1 = specific_constant imports.%Core.GreaterOrEquivalent.c4a, @T.as_type.as.OrderedWith.impl.500(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.e33eba.1] -// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.f746ee.1 = name_ref GreaterOrEquivalent, %.loc21_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.e33eba.1] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc21: = bound_method %int_1.loc21, %GreaterOrEquivalent.ref.loc21 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.28d040.2] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: = specific_function %GreaterOrEquivalent.ref.loc21, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.93e889.2] -// CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %int_1.loc21, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21 [concrete = constants.%bound_method.278950.2] -// CHECK:STDOUT: %impl.elem0.loc21: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem3.loc21: %.b09 = impl_witness_access constants.%OrderedWith.impl_witness.ccd, element3 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.2] +// CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %int_1.loc21, %impl.elem3.loc21 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.22317d.1] +// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem3.loc21, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.371f57.1] +// CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %int_1.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.ffa540.1] +// CHECK:STDOUT: %.loc21_5: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.09194f.1 = specific_constant imports.%Core.GreaterOrEquivalent.8e2, @T.as_type.as.OrderedWith.impl.df2(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.1] +// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.09194f.1 = name_ref GreaterOrEquivalent, %.loc21_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc21: = bound_method %int_1.loc21, %GreaterOrEquivalent.ref.loc21 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.22317d.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: = specific_function %GreaterOrEquivalent.ref.loc21, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.371f57.2] +// CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %int_1.loc21, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21 [concrete = constants.%bound_method.ffa540.2] +// CHECK:STDOUT: %impl.elem0.loc21: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc21_3: = bound_method %int_1.loc21, %impl.elem0.loc21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %Cpp.long_long = call %bound_method.loc21_3(%int_1.loc21) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc21_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc21_3.2: %Cpp.long_long = converted %int_1.loc21, %.loc21_3.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %Cpp.long_long = call %bound_method.loc21_3(%int_1.loc21) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc21_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc21_3.2: %Cpp.long_long = converted %int_1.loc21, %.loc21_3.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call.loc21: init bool = call %bound_method.loc21_5.3(%.loc21_3.2, %a.ref.loc21) // CHECK:STDOUT: %int_1.loc22: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc22: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem1.loc22: %.4fa = impl_witness_access constants.%OrderedWith.impl_witness.575, element1 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.db3985.2] -// CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %int_1.loc22, %impl.elem1.loc22 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.7d81f1.1] -// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem1.loc22, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.f2ccbd.1] -// CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %int_1.loc22, %specific_fn.loc22 [concrete = constants.%bound_method.39be86.1] -// CHECK:STDOUT: %.loc22_5: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.5b1bfe.1 = specific_constant imports.%Core.LessOrEquivalent.c4e, @T.as_type.as.OrderedWith.impl.500(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.db3985.1] -// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.5b1bfe.1 = name_ref LessOrEquivalent, %.loc22_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.db3985.1] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.loc22: = bound_method %int_1.loc22, %LessOrEquivalent.ref.loc22 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.7d81f1.2] -// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: = specific_function %LessOrEquivalent.ref.loc22, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4(constants.%ImplicitAs.facet.532) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.f2ccbd.2] -// CHECK:STDOUT: %bound_method.loc22_5.3: = bound_method %int_1.loc22, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22 [concrete = constants.%bound_method.39be86.2] -// CHECK:STDOUT: %impl.elem0.loc22: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem1.loc22: %.cab = impl_witness_access constants.%OrderedWith.impl_witness.ccd, element1 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.2] +// CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %int_1.loc22, %impl.elem1.loc22 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.2eaa72.1] +// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem1.loc22, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.05fce2.1] +// CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %int_1.loc22, %specific_fn.loc22 [concrete = constants.%bound_method.83e687.1] +// CHECK:STDOUT: %.loc22_5: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1522a4.1 = specific_constant imports.%Core.LessOrEquivalent.d90, @T.as_type.as.OrderedWith.impl.df2(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.1] +// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1522a4.1 = name_ref LessOrEquivalent, %.loc22_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.loc22: = bound_method %int_1.loc22, %LessOrEquivalent.ref.loc22 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.2eaa72.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: = specific_function %LessOrEquivalent.ref.loc22, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.05fce2.2] +// CHECK:STDOUT: %bound_method.loc22_5.3: = bound_method %int_1.loc22, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22 [concrete = constants.%bound_method.83e687.2] +// CHECK:STDOUT: %impl.elem0.loc22: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc22_3: = bound_method %int_1.loc22, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %Cpp.long_long = call %bound_method.loc22_3(%int_1.loc22) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc22_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc22_3.2: %Cpp.long_long = converted %int_1.loc22, %.loc22_3.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %Cpp.long_long = call %bound_method.loc22_3(%int_1.loc22) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc22_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc22_3.2: %Cpp.long_long = converted %int_1.loc22, %.loc22_3.1 [concrete = constants.%int_1.b19] // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call.loc22: init bool = call %bound_method.loc22_5.3(%.loc22_3.2, %a.ref.loc22) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -2346,178 +2346,178 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long: type = class_type @LongLong64 [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %i64.builtin: type = int_type signed, %int_64 [concrete] -// CHECK:STDOUT: %pattern_type.003: type = pattern_type %Cpp.long_long [concrete] +// CHECK:STDOUT: %pattern_type.d58: type = pattern_type %Cpp.long_long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.fb7: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ec: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %T.f49: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.ImplicitAs.impl.Convert.type.5ec: type = fn_type @T.as_type.as.ImplicitAs.impl.Convert, @T.as_type.as.ImplicitAs.impl(%T.f49) [symbolic] -// CHECK:STDOUT: %T.as_type.as.ImplicitAs.impl.Convert.921: %T.as_type.as.ImplicitAs.impl.Convert.type.5ec = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.59e: = impl_witness imports.%ImplicitAs.impl_witness_table.337 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.532: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.59e) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f1d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %.424: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.f1d, %ImplicitAs.facet.532 [concrete] +// CHECK:STDOUT: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.ImplicitAs.impl.Convert.type.6c4: type = fn_type @T.as_type.as.ImplicitAs.impl.Convert, @T.as_type.as.ImplicitAs.impl(%T.f84) [symbolic] +// CHECK:STDOUT: %T.as_type.as.ImplicitAs.impl.Convert.61d: %T.as_type.as.ImplicitAs.impl.Convert.type.6c4 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.660: = impl_witness imports.%ImplicitAs.impl_witness_table.d6d [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2ed: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.660) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.062: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %.ca2: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.062, %ImplicitAs.facet.2ed [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %int_1.8b4: %Cpp.long_long = int_value 1 [concrete] -// CHECK:STDOUT: %AddAssignWith.type.538: type = facet_type <@AddAssignWith, @AddAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %U.ec6: %ImplicitAs.type.fb7 = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.e0ed43.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.e0ed43.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.fca: = impl_witness imports.%Copy.impl_witness_table.f0d [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Cpp.long_long, (%Copy.impl_witness.fca) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.a55: = impl_witness imports.%ImplicitAs.impl_witness_table.c42, @T.as_type.as.ImplicitAs.impl(%Copy.facet) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.57b: %ImplicitAs.type.fb7 = facet_value %Cpp.long_long, (%ImplicitAs.impl_witness.a55) [concrete] -// CHECK:STDOUT: %AddAssignWith.impl_witness.46d: = impl_witness imports.%AddAssignWith.impl_witness_table.c98, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.31aa71.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.cca0ca.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.31aa71.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.31aa71.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.cca0ca.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.31aa71.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet.227: %AddAssignWith.type.538 = facet_value %Cpp.long_long, (%AddAssignWith.impl_witness.46d) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.e65: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Cpp.long_long, %AddAssignWith.facet.227) [concrete] -// CHECK:STDOUT: %.6c8: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.e65, %AddAssignWith.facet.227 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.f66500.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.cca0ca.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.f66500.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.cca0ca.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %SubAssignWith.type.fcc: type = facet_type <@SubAssignWith, @SubAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.b4d617.1: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.1, @Cpp.long_long.as.SubAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.30926f.1: %Cpp.long_long.as.SubAssignWith.impl.Op.type.b4d617.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.b4d617.2: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.2, @Cpp.long_long.as.SubAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.30926f.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.b4d617.2 = struct_value () [symbolic] -// CHECK:STDOUT: %SubAssignWith.impl_witness.043: = impl_witness imports.%SubAssignWith.impl_witness_table.173, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.7e9fad.1: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.2, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.a22eaf.1: %Cpp.long_long.as.SubAssignWith.impl.Op.type.7e9fad.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.7e9fad.2: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.1, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.a22eaf.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.7e9fad.2 = struct_value () [concrete] -// CHECK:STDOUT: %SubAssignWith.facet.18a: %SubAssignWith.type.fcc = facet_value %Cpp.long_long, (%SubAssignWith.impl_witness.043) [concrete] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.e7b: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Cpp.long_long, %SubAssignWith.facet.18a) [concrete] -// CHECK:STDOUT: %.88a: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.e7b, %SubAssignWith.facet.18a [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.e1ae1b.1: = specific_function %Cpp.long_long.as.SubAssignWith.impl.Op.a22eaf.2, @Cpp.long_long.as.SubAssignWith.impl.Op.1(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.e1ae1b.2: = specific_function %Cpp.long_long.as.SubAssignWith.impl.Op.a22eaf.1, @Cpp.long_long.as.SubAssignWith.impl.Op.2(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %MulAssignWith.type.cd0: type = facet_type <@MulAssignWith, @MulAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.ae87af.1: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.1, @Cpp.long_long.as.MulAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.51366a.1: %Cpp.long_long.as.MulAssignWith.impl.Op.type.ae87af.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.ae87af.2: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.2, @Cpp.long_long.as.MulAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.51366a.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.ae87af.2 = struct_value () [symbolic] -// CHECK:STDOUT: %MulAssignWith.impl_witness.bbd: = impl_witness imports.%MulAssignWith.impl_witness_table.8f1, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.ec1e42.1: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.2, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.be4a1c.1: %Cpp.long_long.as.MulAssignWith.impl.Op.type.ec1e42.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.ec1e42.2: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.1, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.be4a1c.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.ec1e42.2 = struct_value () [concrete] -// CHECK:STDOUT: %MulAssignWith.facet.e08: %MulAssignWith.type.cd0 = facet_value %Cpp.long_long, (%MulAssignWith.impl_witness.bbd) [concrete] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.e84: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Cpp.long_long, %MulAssignWith.facet.e08) [concrete] -// CHECK:STDOUT: %.7f3: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.e84, %MulAssignWith.facet.e08 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.62a27c.1: = specific_function %Cpp.long_long.as.MulAssignWith.impl.Op.be4a1c.2, @Cpp.long_long.as.MulAssignWith.impl.Op.1(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.62a27c.2: = specific_function %Cpp.long_long.as.MulAssignWith.impl.Op.be4a1c.1, @Cpp.long_long.as.MulAssignWith.impl.Op.2(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %DivAssignWith.type.1b9: type = facet_type <@DivAssignWith, @DivAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.d84717.1: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.1, @Cpp.long_long.as.DivAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.efd5d8.1: %Cpp.long_long.as.DivAssignWith.impl.Op.type.d84717.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.d84717.2: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.2, @Cpp.long_long.as.DivAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.efd5d8.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.d84717.2 = struct_value () [symbolic] -// CHECK:STDOUT: %DivAssignWith.impl_witness.cff: = impl_witness imports.%DivAssignWith.impl_witness_table.5e5, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.ffd750.1: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.2, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.b863ee.1: %Cpp.long_long.as.DivAssignWith.impl.Op.type.ffd750.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.ffd750.2: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.1, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.b863ee.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.ffd750.2 = struct_value () [concrete] -// CHECK:STDOUT: %DivAssignWith.facet.ffa: %DivAssignWith.type.1b9 = facet_value %Cpp.long_long, (%DivAssignWith.impl_witness.cff) [concrete] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.5d1: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Cpp.long_long, %DivAssignWith.facet.ffa) [concrete] -// CHECK:STDOUT: %.05b: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.5d1, %DivAssignWith.facet.ffa [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.c32503.1: = specific_function %Cpp.long_long.as.DivAssignWith.impl.Op.b863ee.2, @Cpp.long_long.as.DivAssignWith.impl.Op.1(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.c32503.2: = specific_function %Cpp.long_long.as.DivAssignWith.impl.Op.b863ee.1, @Cpp.long_long.as.DivAssignWith.impl.Op.2(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %ModAssignWith.type.cc2: type = facet_type <@ModAssignWith, @ModAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.043ac2.1: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.1, @Cpp.long_long.as.ModAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.6f8dfc.1: %Cpp.long_long.as.ModAssignWith.impl.Op.type.043ac2.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.043ac2.2: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.2, @Cpp.long_long.as.ModAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.6f8dfc.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.043ac2.2 = struct_value () [symbolic] -// CHECK:STDOUT: %ModAssignWith.impl_witness.64e: = impl_witness imports.%ModAssignWith.impl_witness_table.0c2, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.a269d9.1: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.2, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.5beb8b.1: %Cpp.long_long.as.ModAssignWith.impl.Op.type.a269d9.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.a269d9.2: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.1, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.5beb8b.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.a269d9.2 = struct_value () [concrete] -// CHECK:STDOUT: %ModAssignWith.facet.adb: %ModAssignWith.type.cc2 = facet_value %Cpp.long_long, (%ModAssignWith.impl_witness.64e) [concrete] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.396: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Cpp.long_long, %ModAssignWith.facet.adb) [concrete] -// CHECK:STDOUT: %.3b8: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.396, %ModAssignWith.facet.adb [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.384e82.1: = specific_function %Cpp.long_long.as.ModAssignWith.impl.Op.5beb8b.2, @Cpp.long_long.as.ModAssignWith.impl.Op.1(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.384e82.2: = specific_function %Cpp.long_long.as.ModAssignWith.impl.Op.5beb8b.1, @Cpp.long_long.as.ModAssignWith.impl.Op.2(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %BitAndAssignWith.type.016: type = facet_type <@BitAndAssignWith, @BitAndAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.285489.1: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.1, @Cpp.long_long.as.BitAndAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.c0b96d.1: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.285489.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.285489.2: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.2, @Cpp.long_long.as.BitAndAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.c0b96d.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.285489.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitAndAssignWith.impl_witness.8de: = impl_witness imports.%BitAndAssignWith.impl_witness_table.acf, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.2754ec.1: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.2, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.bdd3c9.1: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.2754ec.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.2754ec.2: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.1, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.bdd3c9.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.2754ec.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndAssignWith.facet.114: %BitAndAssignWith.type.016 = facet_value %Cpp.long_long, (%BitAndAssignWith.impl_witness.8de) [concrete] -// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.ebf: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%Cpp.long_long, %BitAndAssignWith.facet.114) [concrete] -// CHECK:STDOUT: %.75f: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.ebf, %BitAndAssignWith.facet.114 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.12a41b.1: = specific_function %Cpp.long_long.as.BitAndAssignWith.impl.Op.bdd3c9.2, @Cpp.long_long.as.BitAndAssignWith.impl.Op.1(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.12a41b.2: = specific_function %Cpp.long_long.as.BitAndAssignWith.impl.Op.bdd3c9.1, @Cpp.long_long.as.BitAndAssignWith.impl.Op.2(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %BitOrAssignWith.type.4ad: type = facet_type <@BitOrAssignWith, @BitOrAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.ca203c.1: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.1, @Cpp.long_long.as.BitOrAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.622301.1: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.ca203c.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.ca203c.2: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.2, @Cpp.long_long.as.BitOrAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.622301.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.ca203c.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitOrAssignWith.impl_witness.952: = impl_witness imports.%BitOrAssignWith.impl_witness_table.20e, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.d8cf54.1: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.2, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.0ee16e.1: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.d8cf54.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.d8cf54.2: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.1, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.0ee16e.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.d8cf54.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitOrAssignWith.facet.d07: %BitOrAssignWith.type.4ad = facet_value %Cpp.long_long, (%BitOrAssignWith.impl_witness.952) [concrete] -// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.374: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%Cpp.long_long, %BitOrAssignWith.facet.d07) [concrete] -// CHECK:STDOUT: %.3e0: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.374, %BitOrAssignWith.facet.d07 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.990496.1: = specific_function %Cpp.long_long.as.BitOrAssignWith.impl.Op.0ee16e.2, @Cpp.long_long.as.BitOrAssignWith.impl.Op.1(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.990496.2: = specific_function %Cpp.long_long.as.BitOrAssignWith.impl.Op.0ee16e.1, @Cpp.long_long.as.BitOrAssignWith.impl.Op.2(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %BitXorAssignWith.type.ad0: type = facet_type <@BitXorAssignWith, @BitXorAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2d154f.1: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.1, @Cpp.long_long.as.BitXorAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.4ac15f.1: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2d154f.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2d154f.2: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.2, @Cpp.long_long.as.BitXorAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.4ac15f.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2d154f.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitXorAssignWith.impl_witness.7ca: = impl_witness imports.%BitXorAssignWith.impl_witness_table.674, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.83c391.1: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.2, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.5554ab.1: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.83c391.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.83c391.2: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.1, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.5554ab.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.83c391.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitXorAssignWith.facet.0a9: %BitXorAssignWith.type.ad0 = facet_value %Cpp.long_long, (%BitXorAssignWith.impl_witness.7ca) [concrete] -// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.a77: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%Cpp.long_long, %BitXorAssignWith.facet.0a9) [concrete] -// CHECK:STDOUT: %.320: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.a77, %BitXorAssignWith.facet.0a9 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.dce943.1: = specific_function %Cpp.long_long.as.BitXorAssignWith.impl.Op.5554ab.2, @Cpp.long_long.as.BitXorAssignWith.impl.Op.1(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.dce943.2: = specific_function %Cpp.long_long.as.BitXorAssignWith.impl.Op.5554ab.1, @Cpp.long_long.as.BitXorAssignWith.impl.Op.2(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.type.cd4: type = facet_type <@LeftShiftAssignWith, @LeftShiftAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.915db5.1: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long_long.as.LeftShiftAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.fefa92.1: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.915db5.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.915db5.2: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long_long.as.LeftShiftAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.fefa92.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.915db5.2 = struct_value () [symbolic] -// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness.d46: = impl_witness imports.%LeftShiftAssignWith.impl_witness_table.166, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.28213d.1: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.10da82.1: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.28213d.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.28213d.2: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.10da82.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.28213d.2 = struct_value () [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.facet.075: %LeftShiftAssignWith.type.cd4 = facet_value %Cpp.long_long, (%LeftShiftAssignWith.impl_witness.d46) [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.8b1: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%Cpp.long_long, %LeftShiftAssignWith.facet.075) [concrete] -// CHECK:STDOUT: %.b63: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.8b1, %LeftShiftAssignWith.facet.075 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.6146a6.1: = specific_function %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.10da82.2, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.6146a6.2: = specific_function %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.10da82.1, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.type.013: type = facet_type <@RightShiftAssignWith, @RightShiftAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.de9a00.1: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long_long.as.RightShiftAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.058a64.1: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.de9a00.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.de9a00.2: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long_long.as.RightShiftAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.058a64.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.de9a00.2 = struct_value () [symbolic] -// CHECK:STDOUT: %RightShiftAssignWith.impl_witness.ea3: = impl_witness imports.%RightShiftAssignWith.impl_witness_table.e2b, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.9e943d.1: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.259fbc.1: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.9e943d.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.9e943d.2: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.259fbc.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.9e943d.2 = struct_value () [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.facet.e27: %RightShiftAssignWith.type.013 = facet_value %Cpp.long_long, (%RightShiftAssignWith.impl_witness.ea3) [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.213: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%Cpp.long_long, %RightShiftAssignWith.facet.e27) [concrete] -// CHECK:STDOUT: %.119: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.213, %RightShiftAssignWith.facet.e27 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.83f48a.1: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.259fbc.2, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.83f48a.2: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.259fbc.1, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.57b) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] +// CHECK:STDOUT: %int_1.b19: %Cpp.long_long = int_value 1 [concrete] +// CHECK:STDOUT: %AddAssignWith.type.166: type = facet_type <@AddAssignWith, @AddAssignWith(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %U.bf2: %ImplicitAs.type.0ec = symbolic_binding U, 0 [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.8f0746.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.8f0746.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.5c7: = impl_witness imports.%Copy.impl_witness_table.a14 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Cpp.long_long, (%Copy.impl_witness.5c7) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.3f3: = impl_witness imports.%ImplicitAs.impl_witness_table.5b9, @T.as_type.as.ImplicitAs.impl(%Copy.facet) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.7bc: %ImplicitAs.type.0ec = facet_value %Cpp.long_long, (%ImplicitAs.impl_witness.3f3) [concrete] +// CHECK:STDOUT: %AddAssignWith.impl_witness.82d: = impl_witness imports.%AddAssignWith.impl_witness_table.442, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.7da4ae.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.57b7c2.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.7da4ae.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.7da4ae.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.57b7c2.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.7da4ae.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet.af3: %AddAssignWith.type.166 = facet_value %Cpp.long_long, (%AddAssignWith.impl_witness.82d) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.aa9: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Cpp.long_long, %AddAssignWith.facet.af3) [concrete] +// CHECK:STDOUT: %.a99: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.aa9, %AddAssignWith.facet.af3 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.51a919.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.57b7c2.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.51a919.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.57b7c2.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %SubAssignWith.type.81c: type = facet_type <@SubAssignWith, @SubAssignWith(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.aafcc5.1: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.1, @Cpp.long_long.as.SubAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.67476b.1: %Cpp.long_long.as.SubAssignWith.impl.Op.type.aafcc5.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.aafcc5.2: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.2, @Cpp.long_long.as.SubAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.67476b.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.aafcc5.2 = struct_value () [symbolic] +// CHECK:STDOUT: %SubAssignWith.impl_witness.d2c: = impl_witness imports.%SubAssignWith.impl_witness_table.425, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.c6ad2e.1: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.2, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.2d41e3.1: %Cpp.long_long.as.SubAssignWith.impl.Op.type.c6ad2e.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.c6ad2e.2: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.1, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.2d41e3.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.c6ad2e.2 = struct_value () [concrete] +// CHECK:STDOUT: %SubAssignWith.facet.3d7: %SubAssignWith.type.81c = facet_value %Cpp.long_long, (%SubAssignWith.impl_witness.d2c) [concrete] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.5cd: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Cpp.long_long, %SubAssignWith.facet.3d7) [concrete] +// CHECK:STDOUT: %.17f: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.5cd, %SubAssignWith.facet.3d7 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.6e9b6c.1: = specific_function %Cpp.long_long.as.SubAssignWith.impl.Op.2d41e3.2, @Cpp.long_long.as.SubAssignWith.impl.Op.1(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.6e9b6c.2: = specific_function %Cpp.long_long.as.SubAssignWith.impl.Op.2d41e3.1, @Cpp.long_long.as.SubAssignWith.impl.Op.2(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %MulAssignWith.type.65c: type = facet_type <@MulAssignWith, @MulAssignWith(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.987caa.1: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.1, @Cpp.long_long.as.MulAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.59c70e.1: %Cpp.long_long.as.MulAssignWith.impl.Op.type.987caa.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.987caa.2: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.2, @Cpp.long_long.as.MulAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.59c70e.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.987caa.2 = struct_value () [symbolic] +// CHECK:STDOUT: %MulAssignWith.impl_witness.96f: = impl_witness imports.%MulAssignWith.impl_witness_table.769, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.892850.1: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.2, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.46f6d9.1: %Cpp.long_long.as.MulAssignWith.impl.Op.type.892850.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.892850.2: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.1, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.46f6d9.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.892850.2 = struct_value () [concrete] +// CHECK:STDOUT: %MulAssignWith.facet.1c1: %MulAssignWith.type.65c = facet_value %Cpp.long_long, (%MulAssignWith.impl_witness.96f) [concrete] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.433: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Cpp.long_long, %MulAssignWith.facet.1c1) [concrete] +// CHECK:STDOUT: %.50e: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.433, %MulAssignWith.facet.1c1 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.762651.1: = specific_function %Cpp.long_long.as.MulAssignWith.impl.Op.46f6d9.2, @Cpp.long_long.as.MulAssignWith.impl.Op.1(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.762651.2: = specific_function %Cpp.long_long.as.MulAssignWith.impl.Op.46f6d9.1, @Cpp.long_long.as.MulAssignWith.impl.Op.2(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %DivAssignWith.type.d82: type = facet_type <@DivAssignWith, @DivAssignWith(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.7d9a4f.1: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.1, @Cpp.long_long.as.DivAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.053c65.1: %Cpp.long_long.as.DivAssignWith.impl.Op.type.7d9a4f.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.7d9a4f.2: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.2, @Cpp.long_long.as.DivAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.053c65.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.7d9a4f.2 = struct_value () [symbolic] +// CHECK:STDOUT: %DivAssignWith.impl_witness.0c4: = impl_witness imports.%DivAssignWith.impl_witness_table.538, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.90284d.1: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.2, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.1dcb1e.1: %Cpp.long_long.as.DivAssignWith.impl.Op.type.90284d.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.90284d.2: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.1, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.1dcb1e.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.90284d.2 = struct_value () [concrete] +// CHECK:STDOUT: %DivAssignWith.facet.653: %DivAssignWith.type.d82 = facet_value %Cpp.long_long, (%DivAssignWith.impl_witness.0c4) [concrete] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.6ce: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Cpp.long_long, %DivAssignWith.facet.653) [concrete] +// CHECK:STDOUT: %.1d3: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.6ce, %DivAssignWith.facet.653 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.20bed4.1: = specific_function %Cpp.long_long.as.DivAssignWith.impl.Op.1dcb1e.2, @Cpp.long_long.as.DivAssignWith.impl.Op.1(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.20bed4.2: = specific_function %Cpp.long_long.as.DivAssignWith.impl.Op.1dcb1e.1, @Cpp.long_long.as.DivAssignWith.impl.Op.2(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %ModAssignWith.type.3e2: type = facet_type <@ModAssignWith, @ModAssignWith(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.aee511.1: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.1, @Cpp.long_long.as.ModAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.0a710f.1: %Cpp.long_long.as.ModAssignWith.impl.Op.type.aee511.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.aee511.2: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.2, @Cpp.long_long.as.ModAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.0a710f.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.aee511.2 = struct_value () [symbolic] +// CHECK:STDOUT: %ModAssignWith.impl_witness.ed9: = impl_witness imports.%ModAssignWith.impl_witness_table.cdc, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.030e50.1: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.2, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.1c5c20.1: %Cpp.long_long.as.ModAssignWith.impl.Op.type.030e50.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.030e50.2: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.1, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.1c5c20.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.030e50.2 = struct_value () [concrete] +// CHECK:STDOUT: %ModAssignWith.facet.761: %ModAssignWith.type.3e2 = facet_value %Cpp.long_long, (%ModAssignWith.impl_witness.ed9) [concrete] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.3f1: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Cpp.long_long, %ModAssignWith.facet.761) [concrete] +// CHECK:STDOUT: %.e86: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.3f1, %ModAssignWith.facet.761 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.0d98f1.1: = specific_function %Cpp.long_long.as.ModAssignWith.impl.Op.1c5c20.2, @Cpp.long_long.as.ModAssignWith.impl.Op.1(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.0d98f1.2: = specific_function %Cpp.long_long.as.ModAssignWith.impl.Op.1c5c20.1, @Cpp.long_long.as.ModAssignWith.impl.Op.2(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %BitAndAssignWith.type.2f8: type = facet_type <@BitAndAssignWith, @BitAndAssignWith(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cd65f6.1: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.1, @Cpp.long_long.as.BitAndAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.3a2cbb.1: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cd65f6.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cd65f6.2: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.2, @Cpp.long_long.as.BitAndAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.3a2cbb.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cd65f6.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitAndAssignWith.impl_witness.8e7: = impl_witness imports.%BitAndAssignWith.impl_witness_table.d41, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.f75b5c.1: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.2, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.da411d.1: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.f75b5c.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.f75b5c.2: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.1, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.da411d.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.f75b5c.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitAndAssignWith.facet.6e7: %BitAndAssignWith.type.2f8 = facet_value %Cpp.long_long, (%BitAndAssignWith.impl_witness.8e7) [concrete] +// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.f7e: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%Cpp.long_long, %BitAndAssignWith.facet.6e7) [concrete] +// CHECK:STDOUT: %.922: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.f7e, %BitAndAssignWith.facet.6e7 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.dc94b5.1: = specific_function %Cpp.long_long.as.BitAndAssignWith.impl.Op.da411d.2, @Cpp.long_long.as.BitAndAssignWith.impl.Op.1(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.dc94b5.2: = specific_function %Cpp.long_long.as.BitAndAssignWith.impl.Op.da411d.1, @Cpp.long_long.as.BitAndAssignWith.impl.Op.2(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %BitOrAssignWith.type.eac: type = facet_type <@BitOrAssignWith, @BitOrAssignWith(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.a360c5.1: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.1, @Cpp.long_long.as.BitOrAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.65c84e.1: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.a360c5.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.a360c5.2: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.2, @Cpp.long_long.as.BitOrAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.65c84e.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.a360c5.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitOrAssignWith.impl_witness.d84: = impl_witness imports.%BitOrAssignWith.impl_witness_table.446, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.503598.1: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.2, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.1137bd.1: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.503598.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.503598.2: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.1, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.1137bd.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.503598.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitOrAssignWith.facet.bf3: %BitOrAssignWith.type.eac = facet_value %Cpp.long_long, (%BitOrAssignWith.impl_witness.d84) [concrete] +// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.5b1: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%Cpp.long_long, %BitOrAssignWith.facet.bf3) [concrete] +// CHECK:STDOUT: %.cc3: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.5b1, %BitOrAssignWith.facet.bf3 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.9908b9.1: = specific_function %Cpp.long_long.as.BitOrAssignWith.impl.Op.1137bd.2, @Cpp.long_long.as.BitOrAssignWith.impl.Op.1(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.9908b9.2: = specific_function %Cpp.long_long.as.BitOrAssignWith.impl.Op.1137bd.1, @Cpp.long_long.as.BitOrAssignWith.impl.Op.2(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %BitXorAssignWith.type.434: type = facet_type <@BitXorAssignWith, @BitXorAssignWith(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c7963a.1: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.1, @Cpp.long_long.as.BitXorAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.3b70cd.1: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c7963a.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c7963a.2: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.2, @Cpp.long_long.as.BitXorAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.3b70cd.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c7963a.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitXorAssignWith.impl_witness.462: = impl_witness imports.%BitXorAssignWith.impl_witness_table.8e4, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.3d8271.1: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.2, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.84559f.1: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.3d8271.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.3d8271.2: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.1, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.84559f.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.3d8271.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitXorAssignWith.facet.562: %BitXorAssignWith.type.434 = facet_value %Cpp.long_long, (%BitXorAssignWith.impl_witness.462) [concrete] +// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.0f1: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%Cpp.long_long, %BitXorAssignWith.facet.562) [concrete] +// CHECK:STDOUT: %.cae: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.0f1, %BitXorAssignWith.facet.562 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.1bb816.1: = specific_function %Cpp.long_long.as.BitXorAssignWith.impl.Op.84559f.2, @Cpp.long_long.as.BitXorAssignWith.impl.Op.1(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.1bb816.2: = specific_function %Cpp.long_long.as.BitXorAssignWith.impl.Op.84559f.1, @Cpp.long_long.as.BitXorAssignWith.impl.Op.2(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.type.509: type = facet_type <@LeftShiftAssignWith, @LeftShiftAssignWith(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.d78f49.1: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long_long.as.LeftShiftAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.688a59.1: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.d78f49.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.d78f49.2: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long_long.as.LeftShiftAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.688a59.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.d78f49.2 = struct_value () [symbolic] +// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness.812: = impl_witness imports.%LeftShiftAssignWith.impl_witness_table.dd0, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.25e1dd.1: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.4e964c.1: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.25e1dd.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.25e1dd.2: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.4e964c.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.25e1dd.2 = struct_value () [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.facet.033: %LeftShiftAssignWith.type.509 = facet_value %Cpp.long_long, (%LeftShiftAssignWith.impl_witness.812) [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.5dd: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%Cpp.long_long, %LeftShiftAssignWith.facet.033) [concrete] +// CHECK:STDOUT: %.c95: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.5dd, %LeftShiftAssignWith.facet.033 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.ebef73.1: = specific_function %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.4e964c.2, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.ebef73.2: = specific_function %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.4e964c.1, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.type.a59: type = facet_type <@RightShiftAssignWith, @RightShiftAssignWith(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2a7c37.1: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long_long.as.RightShiftAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.9744e0.1: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2a7c37.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2a7c37.2: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long_long.as.RightShiftAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.9744e0.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2a7c37.2 = struct_value () [symbolic] +// CHECK:STDOUT: %RightShiftAssignWith.impl_witness.dab: = impl_witness imports.%RightShiftAssignWith.impl_witness_table.00b, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.5579b8.1: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.02ad61.1: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.5579b8.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.5579b8.2: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.02ad61.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.5579b8.2 = struct_value () [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.facet.347: %RightShiftAssignWith.type.a59 = facet_value %Cpp.long_long, (%RightShiftAssignWith.impl_witness.dab) [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.82e: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%Cpp.long_long, %RightShiftAssignWith.facet.347) [concrete] +// CHECK:STDOUT: %.888: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.82e, %RightShiftAssignWith.facet.347 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.fa67f5.1: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.02ad61.2, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.7bc) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.fa67f5.2: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.02ad61.1, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.7bc) [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: %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: } @@ -2527,56 +2527,56 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: .long_long = constants.%Cpp.long_long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.3b1: @T.as_type.as.ImplicitAs.impl.%T.as_type.as.ImplicitAs.impl.Convert.type (%T.as_type.as.ImplicitAs.impl.Convert.type.5ec) = import_ref Core//prelude/types/cpp/int, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.ImplicitAs.impl.%T.as_type.as.ImplicitAs.impl.Convert (constants.%T.as_type.as.ImplicitAs.impl.Convert.921)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.c42 = impl_witness_table (%Core.import_ref.3b1), @T.as_type.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.ade: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.337 = impl_witness_table (%Core.import_ref.ade), @Core.IntLiteral.as.ImplicitAs.impl.74b [concrete] -// CHECK:STDOUT: %Core.import_ref.8bf: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.e0ed43.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table.c98 = impl_witness_table (%Core.import_ref.8bf), @Cpp.long_long.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.e51: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.e0ed43.2)] -// CHECK:STDOUT: %Core.import_ref.f63: %Cpp.long_long.as.Copy.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.f0d = impl_witness_table (%Core.import_ref.f63), @Cpp.long_long.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.176: @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long_long.as.SubAssignWith.impl.Op.type.b4d617.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.SubAssignWith.impl.Op.30926f.1)] -// CHECK:STDOUT: %SubAssignWith.impl_witness_table.173 = impl_witness_table (%Core.import_ref.176), @Cpp.long_long.as.SubAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.458: @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long_long.as.SubAssignWith.impl.Op.type.b4d617.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.SubAssignWith.impl.Op.30926f.2)] -// CHECK:STDOUT: %Core.import_ref.06d: @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.type.2 (%Cpp.long_long.as.MulAssignWith.impl.Op.type.ae87af.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.MulAssignWith.impl.Op.51366a.1)] -// CHECK:STDOUT: %MulAssignWith.impl_witness_table.8f1 = impl_witness_table (%Core.import_ref.06d), @Cpp.long_long.as.MulAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.3cc: @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.type.1 (%Cpp.long_long.as.MulAssignWith.impl.Op.type.ae87af.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.MulAssignWith.impl.Op.51366a.2)] -// CHECK:STDOUT: %Core.import_ref.6f1: @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.type.2 (%Cpp.long_long.as.DivAssignWith.impl.Op.type.d84717.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.DivAssignWith.impl.Op.efd5d8.1)] -// CHECK:STDOUT: %DivAssignWith.impl_witness_table.5e5 = impl_witness_table (%Core.import_ref.6f1), @Cpp.long_long.as.DivAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.262: @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.type.1 (%Cpp.long_long.as.DivAssignWith.impl.Op.type.d84717.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.DivAssignWith.impl.Op.efd5d8.2)] -// CHECK:STDOUT: %Core.import_ref.3a0: @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.type.2 (%Cpp.long_long.as.ModAssignWith.impl.Op.type.043ac2.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.ModAssignWith.impl.Op.6f8dfc.1)] -// CHECK:STDOUT: %ModAssignWith.impl_witness_table.0c2 = impl_witness_table (%Core.import_ref.3a0), @Cpp.long_long.as.ModAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.eb3: @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.type.1 (%Cpp.long_long.as.ModAssignWith.impl.Op.type.043ac2.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.ModAssignWith.impl.Op.6f8dfc.2)] -// CHECK:STDOUT: %Core.import_ref.9536: @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.285489.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.c0b96d.1)] -// CHECK:STDOUT: %BitAndAssignWith.impl_witness_table.acf = impl_witness_table (%Core.import_ref.9536), @Cpp.long_long.as.BitAndAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.e7c: @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.285489.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.c0b96d.2)] -// CHECK:STDOUT: %Core.import_ref.f3a: @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.ca203c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.622301.1)] -// CHECK:STDOUT: %BitOrAssignWith.impl_witness_table.20e = impl_witness_table (%Core.import_ref.f3a), @Cpp.long_long.as.BitOrAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.db2: @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.ca203c.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.622301.2)] -// CHECK:STDOUT: %Core.import_ref.076: @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2d154f.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.4ac15f.1)] -// CHECK:STDOUT: %BitXorAssignWith.impl_witness_table.674 = impl_witness_table (%Core.import_ref.076), @Cpp.long_long.as.BitXorAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.2d3: @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2d154f.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.4ac15f.2)] -// CHECK:STDOUT: %Core.import_ref.b82: @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.2 (%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.915db5.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.fefa92.1)] -// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness_table.166 = impl_witness_table (%Core.import_ref.b82), @Cpp.long_long.as.LeftShiftAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.73c: @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.1 (%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.915db5.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.fefa92.2)] -// CHECK:STDOUT: %Core.import_ref.596: @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2 (%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.de9a00.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.058a64.1)] -// CHECK:STDOUT: %RightShiftAssignWith.impl_witness_table.e2b = impl_witness_table (%Core.import_ref.596), @Cpp.long_long.as.RightShiftAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.62d: @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.1 (%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.de9a00.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.058a64.2)] +// CHECK:STDOUT: %Core.import_ref.051: @T.as_type.as.ImplicitAs.impl.%T.as_type.as.ImplicitAs.impl.Convert.type (%T.as_type.as.ImplicitAs.impl.Convert.type.6c4) = import_ref Core//prelude/types/cpp/int, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.ImplicitAs.impl.%T.as_type.as.ImplicitAs.impl.Convert (constants.%T.as_type.as.ImplicitAs.impl.Convert.61d)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.5b9 = impl_witness_table (%Core.import_ref.051), @T.as_type.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.06c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.d6d = impl_witness_table (%Core.import_ref.06c), @Core.IntLiteral.as.ImplicitAs.impl.e33 [concrete] +// CHECK:STDOUT: %Core.import_ref.634: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.8f0746.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table.442 = impl_witness_table (%Core.import_ref.634), @Cpp.long_long.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.c11: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.8f0746.2)] +// CHECK:STDOUT: %Core.import_ref.9c3: %Cpp.long_long.as.Copy.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.a14 = impl_witness_table (%Core.import_ref.9c3), @Cpp.long_long.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.14b: @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long_long.as.SubAssignWith.impl.Op.type.aafcc5.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.SubAssignWith.impl.Op.67476b.1)] +// CHECK:STDOUT: %SubAssignWith.impl_witness_table.425 = impl_witness_table (%Core.import_ref.14b), @Cpp.long_long.as.SubAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.3dd: @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long_long.as.SubAssignWith.impl.Op.type.aafcc5.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.SubAssignWith.impl.Op.67476b.2)] +// CHECK:STDOUT: %Core.import_ref.1e7: @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.type.2 (%Cpp.long_long.as.MulAssignWith.impl.Op.type.987caa.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.MulAssignWith.impl.Op.59c70e.1)] +// CHECK:STDOUT: %MulAssignWith.impl_witness_table.769 = impl_witness_table (%Core.import_ref.1e7), @Cpp.long_long.as.MulAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.1a0: @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.type.1 (%Cpp.long_long.as.MulAssignWith.impl.Op.type.987caa.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.MulAssignWith.impl.Op.59c70e.2)] +// CHECK:STDOUT: %Core.import_ref.90c: @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.type.2 (%Cpp.long_long.as.DivAssignWith.impl.Op.type.7d9a4f.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.DivAssignWith.impl.Op.053c65.1)] +// CHECK:STDOUT: %DivAssignWith.impl_witness_table.538 = impl_witness_table (%Core.import_ref.90c), @Cpp.long_long.as.DivAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.4db: @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.type.1 (%Cpp.long_long.as.DivAssignWith.impl.Op.type.7d9a4f.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.DivAssignWith.impl.Op.053c65.2)] +// CHECK:STDOUT: %Core.import_ref.620: @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.type.2 (%Cpp.long_long.as.ModAssignWith.impl.Op.type.aee511.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.ModAssignWith.impl.Op.0a710f.1)] +// CHECK:STDOUT: %ModAssignWith.impl_witness_table.cdc = impl_witness_table (%Core.import_ref.620), @Cpp.long_long.as.ModAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.978: @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.type.1 (%Cpp.long_long.as.ModAssignWith.impl.Op.type.aee511.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.ModAssignWith.impl.Op.0a710f.2)] +// CHECK:STDOUT: %Core.import_ref.f6c: @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cd65f6.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.3a2cbb.1)] +// CHECK:STDOUT: %BitAndAssignWith.impl_witness_table.d41 = impl_witness_table (%Core.import_ref.f6c), @Cpp.long_long.as.BitAndAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.96f: @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cd65f6.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.3a2cbb.2)] +// CHECK:STDOUT: %Core.import_ref.4fa: @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.a360c5.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.65c84e.1)] +// CHECK:STDOUT: %BitOrAssignWith.impl_witness_table.446 = impl_witness_table (%Core.import_ref.4fa), @Cpp.long_long.as.BitOrAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.152: @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.a360c5.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.65c84e.2)] +// CHECK:STDOUT: %Core.import_ref.0a0: @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c7963a.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.3b70cd.1)] +// CHECK:STDOUT: %BitXorAssignWith.impl_witness_table.8e4 = impl_witness_table (%Core.import_ref.0a0), @Cpp.long_long.as.BitXorAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.993: @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c7963a.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.3b70cd.2)] +// CHECK:STDOUT: %Core.import_ref.463: @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.2 (%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.d78f49.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.688a59.1)] +// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness_table.dd0 = impl_witness_table (%Core.import_ref.463), @Cpp.long_long.as.LeftShiftAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.3c4: @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.1 (%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.d78f49.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.688a59.2)] +// CHECK:STDOUT: %Core.import_ref.6d5: @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2 (%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2a7c37.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.9744e0.1)] +// CHECK:STDOUT: %RightShiftAssignWith.impl_witness_table.00b = impl_witness_table (%Core.import_ref.6d5), @Cpp.long_long.as.RightShiftAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.77b: @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.1 (%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2a7c37.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.9744e0.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CompoundAssignmentHomogeneousLongLong() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.003 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.003 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.d58 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.d58 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Cpp.long_long = var %a.var_patt // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc8: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc8: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc8: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long_long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc8_3: init %Cpp.long_long = converted %int_1.loc8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long_long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc8_3: init %Cpp.long_long = converted %int_1.loc8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.b19] // CHECK:STDOUT: assign %a.var, %.loc8_3 // CHECK:STDOUT: %.loc8_13: type = splice_block %long_long.ref.loc8 [concrete = constants.%Cpp.long_long] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -2584,15 +2584,15 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %Cpp.long_long = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.003 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.003 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.d58 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.d58 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %Cpp.long_long = var %b.var_patt // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc9: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc9: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc9: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long_long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc9_3: init %Cpp.long_long = converted %int_1.loc9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long_long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc9_3: init %Cpp.long_long = converted %int_1.loc9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.b19] // CHECK:STDOUT: assign %b.var, %.loc9_3 // CHECK:STDOUT: %.loc9_13: type = splice_block %long_long.ref.loc9 [concrete = constants.%Cpp.long_long] { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -2601,157 +2601,157 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %b: ref %Cpp.long_long = ref_binding b, %b.var // CHECK:STDOUT: %a.ref.loc11: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc11: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc11: %.6c8 = impl_witness_access constants.%AddAssignWith.impl_witness.46d, element0 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.cca0ca.2] +// CHECK:STDOUT: %impl.elem0.loc11: %.a99 = impl_witness_access constants.%AddAssignWith.impl_witness.82d, element0 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.57b7c2.2] // CHECK:STDOUT: %bound_method.loc11_5.1: = bound_method %a.ref.loc11, %impl.elem0.loc11 -// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.fb7 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.a55) [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.fb7 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11, @Cpp.long_long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.f66500.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.0ec = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.3f3) [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.0ec = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11, @Cpp.long_long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.51a919.1] // CHECK:STDOUT: %bound_method.loc11_5.2: = bound_method %a.ref.loc11, %specific_fn.loc11 // CHECK:STDOUT: %.loc11_8: %Cpp.long_long = acquire_value %b.ref.loc11 -// CHECK:STDOUT: %.loc11_5.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.31aa71.1 = specific_constant imports.%Core.Op.e51, @Cpp.long_long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.cca0ca.1] -// CHECK:STDOUT: %Op.ref.loc11: %Cpp.long_long.as.AddAssignWith.impl.Op.type.31aa71.1 = name_ref Op, %.loc11_5.2 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.cca0ca.1] +// CHECK:STDOUT: %.loc11_5.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.7da4ae.1 = specific_constant imports.%Core.Op.c11, @Cpp.long_long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.57b7c2.1] +// CHECK:STDOUT: %Op.ref.loc11: %Cpp.long_long.as.AddAssignWith.impl.Op.type.7da4ae.1 = name_ref Op, %.loc11_5.2 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.57b7c2.1] // CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.bound: = bound_method %a.ref.loc11, %Op.ref.loc11 -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc11, @Cpp.long_long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.f66500.2] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc11, @Cpp.long_long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.51a919.2] // CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %a.ref.loc11, %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc11_5.3(%a.ref.loc11, %.loc11_8) // CHECK:STDOUT: %a.ref.loc12: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc12: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc12: %.88a = impl_witness_access constants.%SubAssignWith.impl_witness.043, element0 [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.a22eaf.2] +// CHECK:STDOUT: %impl.elem0.loc12: %.17f = impl_witness_access constants.%SubAssignWith.impl_witness.d2c, element0 [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.2d41e3.2] // CHECK:STDOUT: %bound_method.loc12_5.1: = bound_method %a.ref.loc12, %impl.elem0.loc12 -// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.fb7 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.a55) [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.fb7 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Cpp.long_long.as.SubAssignWith.impl.Op.1(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.e1ae1b.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.0ec = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.3f3) [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.0ec = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Cpp.long_long.as.SubAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.6e9b6c.1] // CHECK:STDOUT: %bound_method.loc12_5.2: = bound_method %a.ref.loc12, %specific_fn.loc12 // CHECK:STDOUT: %.loc12_8: %Cpp.long_long = acquire_value %b.ref.loc12 -// CHECK:STDOUT: %.loc12_5.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.7e9fad.1 = specific_constant imports.%Core.Op.458, @Cpp.long_long.as.SubAssignWith.impl(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.a22eaf.1] -// CHECK:STDOUT: %Op.ref.loc12: %Cpp.long_long.as.SubAssignWith.impl.Op.type.7e9fad.1 = name_ref Op, %.loc12_5.2 [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.a22eaf.1] +// CHECK:STDOUT: %.loc12_5.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.c6ad2e.1 = specific_constant imports.%Core.Op.3dd, @Cpp.long_long.as.SubAssignWith.impl(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.2d41e3.1] +// CHECK:STDOUT: %Op.ref.loc12: %Cpp.long_long.as.SubAssignWith.impl.Op.type.c6ad2e.1 = name_ref Op, %.loc12_5.2 [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.2d41e3.1] // CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.bound: = bound_method %a.ref.loc12, %Op.ref.loc12 -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc12, @Cpp.long_long.as.SubAssignWith.impl.Op.2(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.e1ae1b.2] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc12, @Cpp.long_long.as.SubAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.6e9b6c.2] // CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %a.ref.loc12, %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc12_5.3(%a.ref.loc12, %.loc12_8) // CHECK:STDOUT: %a.ref.loc13: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc13: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc13: %.7f3 = impl_witness_access constants.%MulAssignWith.impl_witness.bbd, element0 [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.be4a1c.2] +// CHECK:STDOUT: %impl.elem0.loc13: %.50e = impl_witness_access constants.%MulAssignWith.impl_witness.96f, element0 [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.46f6d9.2] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %a.ref.loc13, %impl.elem0.loc13 -// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.fb7 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.a55) [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.fb7 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Cpp.long_long.as.MulAssignWith.impl.Op.1(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.62a27c.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.0ec = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.3f3) [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.0ec = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Cpp.long_long.as.MulAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.762651.1] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %a.ref.loc13, %specific_fn.loc13 // CHECK:STDOUT: %.loc13_8: %Cpp.long_long = acquire_value %b.ref.loc13 -// CHECK:STDOUT: %.loc13_5.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.ec1e42.1 = specific_constant imports.%Core.Op.3cc, @Cpp.long_long.as.MulAssignWith.impl(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.be4a1c.1] -// CHECK:STDOUT: %Op.ref.loc13: %Cpp.long_long.as.MulAssignWith.impl.Op.type.ec1e42.1 = name_ref Op, %.loc13_5.2 [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.be4a1c.1] +// CHECK:STDOUT: %.loc13_5.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.892850.1 = specific_constant imports.%Core.Op.1a0, @Cpp.long_long.as.MulAssignWith.impl(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.46f6d9.1] +// CHECK:STDOUT: %Op.ref.loc13: %Cpp.long_long.as.MulAssignWith.impl.Op.type.892850.1 = name_ref Op, %.loc13_5.2 [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.46f6d9.1] // CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.bound: = bound_method %a.ref.loc13, %Op.ref.loc13 -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc13, @Cpp.long_long.as.MulAssignWith.impl.Op.2(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.62a27c.2] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc13, @Cpp.long_long.as.MulAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.762651.2] // CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %a.ref.loc13, %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13_5.3(%a.ref.loc13, %.loc13_8) // CHECK:STDOUT: %a.ref.loc14: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc14: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc14: %.05b = impl_witness_access constants.%DivAssignWith.impl_witness.cff, element0 [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.b863ee.2] +// CHECK:STDOUT: %impl.elem0.loc14: %.1d3 = impl_witness_access constants.%DivAssignWith.impl_witness.0c4, element0 [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.1dcb1e.2] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %a.ref.loc14, %impl.elem0.loc14 -// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.fb7 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.a55) [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.fb7 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Cpp.long_long.as.DivAssignWith.impl.Op.1(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.c32503.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.0ec = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.3f3) [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.0ec = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Cpp.long_long.as.DivAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.20bed4.1] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %a.ref.loc14, %specific_fn.loc14 // CHECK:STDOUT: %.loc14_8: %Cpp.long_long = acquire_value %b.ref.loc14 -// CHECK:STDOUT: %.loc14_5.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.ffd750.1 = specific_constant imports.%Core.Op.262, @Cpp.long_long.as.DivAssignWith.impl(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.b863ee.1] -// CHECK:STDOUT: %Op.ref.loc14: %Cpp.long_long.as.DivAssignWith.impl.Op.type.ffd750.1 = name_ref Op, %.loc14_5.2 [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.b863ee.1] +// CHECK:STDOUT: %.loc14_5.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.90284d.1 = specific_constant imports.%Core.Op.4db, @Cpp.long_long.as.DivAssignWith.impl(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.1dcb1e.1] +// CHECK:STDOUT: %Op.ref.loc14: %Cpp.long_long.as.DivAssignWith.impl.Op.type.90284d.1 = name_ref Op, %.loc14_5.2 [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.1dcb1e.1] // CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.bound: = bound_method %a.ref.loc14, %Op.ref.loc14 -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc14, @Cpp.long_long.as.DivAssignWith.impl.Op.2(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.c32503.2] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc14, @Cpp.long_long.as.DivAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.20bed4.2] // CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %a.ref.loc14, %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_5.3(%a.ref.loc14, %.loc14_8) // CHECK:STDOUT: %a.ref.loc15: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc15: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc15: %.3b8 = impl_witness_access constants.%ModAssignWith.impl_witness.64e, element0 [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.5beb8b.2] +// CHECK:STDOUT: %impl.elem0.loc15: %.e86 = impl_witness_access constants.%ModAssignWith.impl_witness.ed9, element0 [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.1c5c20.2] // CHECK:STDOUT: %bound_method.loc15_5.1: = bound_method %a.ref.loc15, %impl.elem0.loc15 -// CHECK:STDOUT: %ImplicitAs.facet.loc15: %ImplicitAs.type.fb7 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.a55) [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %.loc15_5.1: %ImplicitAs.type.fb7 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc15 [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Cpp.long_long.as.ModAssignWith.impl.Op.1(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.384e82.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc15: %ImplicitAs.type.0ec = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.3f3) [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %.loc15_5.1: %ImplicitAs.type.0ec = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc15 [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Cpp.long_long.as.ModAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.0d98f1.1] // CHECK:STDOUT: %bound_method.loc15_5.2: = bound_method %a.ref.loc15, %specific_fn.loc15 // CHECK:STDOUT: %.loc15_8: %Cpp.long_long = acquire_value %b.ref.loc15 -// CHECK:STDOUT: %.loc15_5.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.a269d9.1 = specific_constant imports.%Core.Op.eb3, @Cpp.long_long.as.ModAssignWith.impl(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.5beb8b.1] -// CHECK:STDOUT: %Op.ref.loc15: %Cpp.long_long.as.ModAssignWith.impl.Op.type.a269d9.1 = name_ref Op, %.loc15_5.2 [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.5beb8b.1] +// CHECK:STDOUT: %.loc15_5.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.030e50.1 = specific_constant imports.%Core.Op.978, @Cpp.long_long.as.ModAssignWith.impl(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.1c5c20.1] +// CHECK:STDOUT: %Op.ref.loc15: %Cpp.long_long.as.ModAssignWith.impl.Op.type.030e50.1 = name_ref Op, %.loc15_5.2 [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.1c5c20.1] // CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.bound: = bound_method %a.ref.loc15, %Op.ref.loc15 -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc15, @Cpp.long_long.as.ModAssignWith.impl.Op.2(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.384e82.2] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc15, @Cpp.long_long.as.ModAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.0d98f1.2] // CHECK:STDOUT: %bound_method.loc15_5.3: = bound_method %a.ref.loc15, %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc15_5.3(%a.ref.loc15, %.loc15_8) // CHECK:STDOUT: %a.ref.loc17: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc17: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc17: %.75f = impl_witness_access constants.%BitAndAssignWith.impl_witness.8de, element0 [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.bdd3c9.2] +// CHECK:STDOUT: %impl.elem0.loc17: %.922 = impl_witness_access constants.%BitAndAssignWith.impl_witness.8e7, element0 [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.da411d.2] // CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %a.ref.loc17, %impl.elem0.loc17 -// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.fb7 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.a55) [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.fb7 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Cpp.long_long.as.BitAndAssignWith.impl.Op.1(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.12a41b.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.0ec = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.3f3) [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.0ec = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Cpp.long_long.as.BitAndAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.dc94b5.1] // CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %a.ref.loc17, %specific_fn.loc17 // CHECK:STDOUT: %.loc17_8: %Cpp.long_long = acquire_value %b.ref.loc17 -// CHECK:STDOUT: %.loc17_5.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.2754ec.1 = specific_constant imports.%Core.Op.e7c, @Cpp.long_long.as.BitAndAssignWith.impl(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.bdd3c9.1] -// CHECK:STDOUT: %Op.ref.loc17: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.2754ec.1 = name_ref Op, %.loc17_5.2 [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.bdd3c9.1] +// CHECK:STDOUT: %.loc17_5.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.f75b5c.1 = specific_constant imports.%Core.Op.96f, @Cpp.long_long.as.BitAndAssignWith.impl(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.da411d.1] +// CHECK:STDOUT: %Op.ref.loc17: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.f75b5c.1 = name_ref Op, %.loc17_5.2 [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.da411d.1] // CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.bound: = bound_method %a.ref.loc17, %Op.ref.loc17 -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc17, @Cpp.long_long.as.BitAndAssignWith.impl.Op.2(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.12a41b.2] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc17, @Cpp.long_long.as.BitAndAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.dc94b5.2] // CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %a.ref.loc17, %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc17_5.3(%a.ref.loc17, %.loc17_8) // CHECK:STDOUT: %a.ref.loc18: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc18: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc18: %.3e0 = impl_witness_access constants.%BitOrAssignWith.impl_witness.952, element0 [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.0ee16e.2] +// CHECK:STDOUT: %impl.elem0.loc18: %.cc3 = impl_witness_access constants.%BitOrAssignWith.impl_witness.d84, element0 [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.1137bd.2] // CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %a.ref.loc18, %impl.elem0.loc18 -// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.fb7 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.a55) [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.fb7 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Cpp.long_long.as.BitOrAssignWith.impl.Op.1(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.990496.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.0ec = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.3f3) [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.0ec = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Cpp.long_long.as.BitOrAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.9908b9.1] // CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %a.ref.loc18, %specific_fn.loc18 // CHECK:STDOUT: %.loc18_8: %Cpp.long_long = acquire_value %b.ref.loc18 -// CHECK:STDOUT: %.loc18_5.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.d8cf54.1 = specific_constant imports.%Core.Op.db2, @Cpp.long_long.as.BitOrAssignWith.impl(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.0ee16e.1] -// CHECK:STDOUT: %Op.ref.loc18: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.d8cf54.1 = name_ref Op, %.loc18_5.2 [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.0ee16e.1] +// CHECK:STDOUT: %.loc18_5.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.503598.1 = specific_constant imports.%Core.Op.152, @Cpp.long_long.as.BitOrAssignWith.impl(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.1137bd.1] +// CHECK:STDOUT: %Op.ref.loc18: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.503598.1 = name_ref Op, %.loc18_5.2 [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.1137bd.1] // CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.bound: = bound_method %a.ref.loc18, %Op.ref.loc18 -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @Cpp.long_long.as.BitOrAssignWith.impl.Op.2(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.990496.2] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @Cpp.long_long.as.BitOrAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.9908b9.2] // CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %a.ref.loc18, %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_5.3(%a.ref.loc18, %.loc18_8) // CHECK:STDOUT: %a.ref.loc19: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc19: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc19: %.320 = impl_witness_access constants.%BitXorAssignWith.impl_witness.7ca, element0 [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.5554ab.2] +// CHECK:STDOUT: %impl.elem0.loc19: %.cae = impl_witness_access constants.%BitXorAssignWith.impl_witness.462, element0 [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.84559f.2] // CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %a.ref.loc19, %impl.elem0.loc19 -// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.fb7 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.a55) [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.fb7 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Cpp.long_long.as.BitXorAssignWith.impl.Op.1(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.dce943.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.0ec = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.3f3) [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.0ec = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Cpp.long_long.as.BitXorAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.1bb816.1] // CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %a.ref.loc19, %specific_fn.loc19 // CHECK:STDOUT: %.loc19_8: %Cpp.long_long = acquire_value %b.ref.loc19 -// CHECK:STDOUT: %.loc19_5.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.83c391.1 = specific_constant imports.%Core.Op.2d3, @Cpp.long_long.as.BitXorAssignWith.impl(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.5554ab.1] -// CHECK:STDOUT: %Op.ref.loc19: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.83c391.1 = name_ref Op, %.loc19_5.2 [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.5554ab.1] +// CHECK:STDOUT: %.loc19_5.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.3d8271.1 = specific_constant imports.%Core.Op.993, @Cpp.long_long.as.BitXorAssignWith.impl(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.84559f.1] +// CHECK:STDOUT: %Op.ref.loc19: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.3d8271.1 = name_ref Op, %.loc19_5.2 [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.84559f.1] // CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.bound: = bound_method %a.ref.loc19, %Op.ref.loc19 -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc19, @Cpp.long_long.as.BitXorAssignWith.impl.Op.2(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.dce943.2] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc19, @Cpp.long_long.as.BitXorAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.1bb816.2] // CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %a.ref.loc19, %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc19_5.3(%a.ref.loc19, %.loc19_8) // CHECK:STDOUT: %a.ref.loc20: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc20: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc20: %.b63 = impl_witness_access constants.%LeftShiftAssignWith.impl_witness.d46, element0 [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.10da82.2] +// CHECK:STDOUT: %impl.elem0.loc20: %.c95 = impl_witness_access constants.%LeftShiftAssignWith.impl_witness.812, element0 [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.4e964c.2] // CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %a.ref.loc20, %impl.elem0.loc20 -// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.fb7 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.a55) [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.fb7 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.6146a6.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.0ec = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.3f3) [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.0ec = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.ebef73.1] // CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %a.ref.loc20, %specific_fn.loc20 // CHECK:STDOUT: %.loc20_9: %Cpp.long_long = acquire_value %b.ref.loc20 -// CHECK:STDOUT: %.loc20_5.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.28213d.1 = specific_constant imports.%Core.Op.73c, @Cpp.long_long.as.LeftShiftAssignWith.impl(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.10da82.1] -// CHECK:STDOUT: %Op.ref.loc20: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.28213d.1 = name_ref Op, %.loc20_5.2 [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.10da82.1] +// CHECK:STDOUT: %.loc20_5.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.25e1dd.1 = specific_constant imports.%Core.Op.3c4, @Cpp.long_long.as.LeftShiftAssignWith.impl(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.4e964c.1] +// CHECK:STDOUT: %Op.ref.loc20: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.25e1dd.1 = name_ref Op, %.loc20_5.2 [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.4e964c.1] // CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.bound: = bound_method %a.ref.loc20, %Op.ref.loc20 -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc20, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.6146a6.2] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc20, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.ebef73.2] // CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %a.ref.loc20, %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc20_5.3(%a.ref.loc20, %.loc20_9) // CHECK:STDOUT: %a.ref.loc21: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc21: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc21: %.119 = impl_witness_access constants.%RightShiftAssignWith.impl_witness.ea3, element0 [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.259fbc.2] +// CHECK:STDOUT: %impl.elem0.loc21: %.888 = impl_witness_access constants.%RightShiftAssignWith.impl_witness.dab, element0 [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.02ad61.2] // CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %a.ref.loc21, %impl.elem0.loc21 -// CHECK:STDOUT: %ImplicitAs.facet.loc21: %ImplicitAs.type.fb7 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.a55) [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %.loc21_5.1: %ImplicitAs.type.fb7 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc21 [concrete = constants.%ImplicitAs.facet.57b] -// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.83f48a.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc21: %ImplicitAs.type.0ec = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.3f3) [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %.loc21_5.1: %ImplicitAs.type.0ec = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc21 [concrete = constants.%ImplicitAs.facet.7bc] +// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.fa67f5.1] // CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %a.ref.loc21, %specific_fn.loc21 // CHECK:STDOUT: %.loc21_9: %Cpp.long_long = acquire_value %b.ref.loc21 -// CHECK:STDOUT: %.loc21_5.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.9e943d.1 = specific_constant imports.%Core.Op.62d, @Cpp.long_long.as.RightShiftAssignWith.impl(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.259fbc.1] -// CHECK:STDOUT: %Op.ref.loc21: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.9e943d.1 = name_ref Op, %.loc21_5.2 [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.259fbc.1] +// CHECK:STDOUT: %.loc21_5.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.5579b8.1 = specific_constant imports.%Core.Op.77b, @Cpp.long_long.as.RightShiftAssignWith.impl(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.02ad61.1] +// CHECK:STDOUT: %Op.ref.loc21: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.5579b8.1 = name_ref Op, %.loc21_5.2 [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.02ad61.1] // CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.bound: = bound_method %a.ref.loc21, %Op.ref.loc21 -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc21, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.57b) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.83f48a.2] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc21, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7bc) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.fa67f5.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.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 // 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.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -2772,175 +2772,175 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %i64.builtin: type = int_type signed, %int_64 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Cpp.long_long: type = class_type @LongLong64 [concrete] -// CHECK:STDOUT: %pattern_type.003: type = pattern_type %Cpp.long_long [concrete] -// CHECK:STDOUT: %ImplicitAs.type.fb7: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.59e: = impl_witness imports.%ImplicitAs.impl_witness_table.337 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.532: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.59e) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f1d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %.424: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.f1d, %ImplicitAs.facet.532 [concrete] +// CHECK:STDOUT: %pattern_type.d58: type = pattern_type %Cpp.long_long [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ec: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.660: = impl_witness imports.%ImplicitAs.impl_witness_table.d6d [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2ed: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.660) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.062: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %.ca2: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.062, %ImplicitAs.facet.2ed [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce [concrete] -// CHECK:STDOUT: %int_1.8b4: %Cpp.long_long = int_value 1 [concrete] -// CHECK:STDOUT: %AddAssignWith.type.823: type = facet_type <@AddAssignWith, @AddAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %U.ec6: %ImplicitAs.type.fb7 = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.e0ed43.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.e0ed43.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.2 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.811: = impl_witness imports.%ImplicitAs.impl_witness_table.7ed [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.a8b: %ImplicitAs.type.fb7 = facet_value %i64, (%ImplicitAs.impl_witness.811) [concrete] -// CHECK:STDOUT: %AddAssignWith.impl_witness.144: = impl_witness imports.%AddAssignWith.impl_witness_table.c98, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.07766d.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.80979a.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.07766d.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.07766d.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.80979a.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.07766d.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet.e1d: %AddAssignWith.type.823 = facet_value %Cpp.long_long, (%AddAssignWith.impl_witness.144) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.f25: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i64, %AddAssignWith.facet.e1d) [concrete] -// CHECK:STDOUT: %.47e: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.f25, %AddAssignWith.facet.e1d [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.34f4c5.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.80979a.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.34f4c5.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.80979a.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.442: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %.77c: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.442, %ImplicitAs.facet.a8b [concrete] +// CHECK:STDOUT: %int_1.b19: %Cpp.long_long = int_value 1 [concrete] +// CHECK:STDOUT: %AddAssignWith.type.d51: type = facet_type <@AddAssignWith, @AddAssignWith(%i64)> [concrete] +// CHECK:STDOUT: %U.bf2: %ImplicitAs.type.0ec = symbolic_binding U, 0 [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.8f0746.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.8f0746.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.2 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.305: = impl_witness imports.%ImplicitAs.impl_witness_table.a87 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.7a4: %ImplicitAs.type.0ec = facet_value %i64, (%ImplicitAs.impl_witness.305) [concrete] +// CHECK:STDOUT: %AddAssignWith.impl_witness.610: = impl_witness imports.%AddAssignWith.impl_witness_table.442, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.6f7c53.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.0167bf.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.6f7c53.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.6f7c53.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.0167bf.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.6f7c53.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet.3d0: %AddAssignWith.type.d51 = facet_value %Cpp.long_long, (%AddAssignWith.impl_witness.610) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.55a: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i64, %AddAssignWith.facet.3d0) [concrete] +// CHECK:STDOUT: %.4c9: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.55a, %AddAssignWith.facet.3d0 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.57a765.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.0167bf.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.57a765.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.0167bf.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.3ae: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %.25e: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.3ae, %ImplicitAs.facet.7a4 [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: %SubAssignWith.type.68c: type = facet_type <@SubAssignWith, @SubAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.b4d617.1: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.1, @Cpp.long_long.as.SubAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.30926f.1: %Cpp.long_long.as.SubAssignWith.impl.Op.type.b4d617.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.b4d617.2: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.2, @Cpp.long_long.as.SubAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.30926f.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.b4d617.2 = struct_value () [symbolic] -// CHECK:STDOUT: %SubAssignWith.impl_witness.5e5: = impl_witness imports.%SubAssignWith.impl_witness_table.173, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.11da79.1: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.2, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.127ee6.1: %Cpp.long_long.as.SubAssignWith.impl.Op.type.11da79.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.11da79.2: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.1, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.127ee6.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.11da79.2 = struct_value () [concrete] -// CHECK:STDOUT: %SubAssignWith.facet.53b: %SubAssignWith.type.68c = facet_value %Cpp.long_long, (%SubAssignWith.impl_witness.5e5) [concrete] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.406: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%i64, %SubAssignWith.facet.53b) [concrete] -// CHECK:STDOUT: %.f2c: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.406, %SubAssignWith.facet.53b [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.bf2b06.1: = specific_function %Cpp.long_long.as.SubAssignWith.impl.Op.127ee6.2, @Cpp.long_long.as.SubAssignWith.impl.Op.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.bf2b06.2: = specific_function %Cpp.long_long.as.SubAssignWith.impl.Op.127ee6.1, @Cpp.long_long.as.SubAssignWith.impl.Op.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %MulAssignWith.type.af1: type = facet_type <@MulAssignWith, @MulAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.ae87af.1: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.1, @Cpp.long_long.as.MulAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.51366a.1: %Cpp.long_long.as.MulAssignWith.impl.Op.type.ae87af.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.ae87af.2: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.2, @Cpp.long_long.as.MulAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.51366a.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.ae87af.2 = struct_value () [symbolic] -// CHECK:STDOUT: %MulAssignWith.impl_witness.8c6: = impl_witness imports.%MulAssignWith.impl_witness_table.8f1, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.fd2ec8.1: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.2, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.700303.1: %Cpp.long_long.as.MulAssignWith.impl.Op.type.fd2ec8.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.fd2ec8.2: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.1, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.700303.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.fd2ec8.2 = struct_value () [concrete] -// CHECK:STDOUT: %MulAssignWith.facet.c51: %MulAssignWith.type.af1 = facet_value %Cpp.long_long, (%MulAssignWith.impl_witness.8c6) [concrete] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.86c: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%i64, %MulAssignWith.facet.c51) [concrete] -// CHECK:STDOUT: %.75d: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.86c, %MulAssignWith.facet.c51 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.e33828.1: = specific_function %Cpp.long_long.as.MulAssignWith.impl.Op.700303.2, @Cpp.long_long.as.MulAssignWith.impl.Op.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.e33828.2: = specific_function %Cpp.long_long.as.MulAssignWith.impl.Op.700303.1, @Cpp.long_long.as.MulAssignWith.impl.Op.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %DivAssignWith.type.794: type = facet_type <@DivAssignWith, @DivAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.d84717.1: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.1, @Cpp.long_long.as.DivAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.efd5d8.1: %Cpp.long_long.as.DivAssignWith.impl.Op.type.d84717.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.d84717.2: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.2, @Cpp.long_long.as.DivAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.efd5d8.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.d84717.2 = struct_value () [symbolic] -// CHECK:STDOUT: %DivAssignWith.impl_witness.505: = impl_witness imports.%DivAssignWith.impl_witness_table.5e5, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.84030a.1: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.2, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.166ffe.1: %Cpp.long_long.as.DivAssignWith.impl.Op.type.84030a.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.84030a.2: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.1, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.166ffe.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.84030a.2 = struct_value () [concrete] -// CHECK:STDOUT: %DivAssignWith.facet.7de: %DivAssignWith.type.794 = facet_value %Cpp.long_long, (%DivAssignWith.impl_witness.505) [concrete] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.db8: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%i64, %DivAssignWith.facet.7de) [concrete] -// CHECK:STDOUT: %.706: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.db8, %DivAssignWith.facet.7de [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.f6bb38.1: = specific_function %Cpp.long_long.as.DivAssignWith.impl.Op.166ffe.2, @Cpp.long_long.as.DivAssignWith.impl.Op.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.f6bb38.2: = specific_function %Cpp.long_long.as.DivAssignWith.impl.Op.166ffe.1, @Cpp.long_long.as.DivAssignWith.impl.Op.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %ModAssignWith.type.896: type = facet_type <@ModAssignWith, @ModAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.043ac2.1: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.1, @Cpp.long_long.as.ModAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.6f8dfc.1: %Cpp.long_long.as.ModAssignWith.impl.Op.type.043ac2.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.043ac2.2: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.2, @Cpp.long_long.as.ModAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.6f8dfc.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.043ac2.2 = struct_value () [symbolic] -// CHECK:STDOUT: %ModAssignWith.impl_witness.88d: = impl_witness imports.%ModAssignWith.impl_witness_table.0c2, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.2f65fa.1: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.2, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.9c8823.1: %Cpp.long_long.as.ModAssignWith.impl.Op.type.2f65fa.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.2f65fa.2: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.1, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.9c8823.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.2f65fa.2 = struct_value () [concrete] -// CHECK:STDOUT: %ModAssignWith.facet.dd3: %ModAssignWith.type.896 = facet_value %Cpp.long_long, (%ModAssignWith.impl_witness.88d) [concrete] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.f86: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%i64, %ModAssignWith.facet.dd3) [concrete] -// CHECK:STDOUT: %.7d6: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.f86, %ModAssignWith.facet.dd3 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.424ffe.1: = specific_function %Cpp.long_long.as.ModAssignWith.impl.Op.9c8823.2, @Cpp.long_long.as.ModAssignWith.impl.Op.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.424ffe.2: = specific_function %Cpp.long_long.as.ModAssignWith.impl.Op.9c8823.1, @Cpp.long_long.as.ModAssignWith.impl.Op.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %BitAndAssignWith.type.af0: type = facet_type <@BitAndAssignWith, @BitAndAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.285489.1: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.1, @Cpp.long_long.as.BitAndAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.c0b96d.1: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.285489.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.285489.2: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.2, @Cpp.long_long.as.BitAndAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.c0b96d.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.285489.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitAndAssignWith.impl_witness.7e8: = impl_witness imports.%BitAndAssignWith.impl_witness_table.acf, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.529d3e.1: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.2, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.f89dbb.1: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.529d3e.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.529d3e.2: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.1, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.f89dbb.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.529d3e.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndAssignWith.facet.120: %BitAndAssignWith.type.af0 = facet_value %Cpp.long_long, (%BitAndAssignWith.impl_witness.7e8) [concrete] -// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.23d: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%i64, %BitAndAssignWith.facet.120) [concrete] -// CHECK:STDOUT: %.f35: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.23d, %BitAndAssignWith.facet.120 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.cffeb7.1: = specific_function %Cpp.long_long.as.BitAndAssignWith.impl.Op.f89dbb.2, @Cpp.long_long.as.BitAndAssignWith.impl.Op.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.cffeb7.2: = specific_function %Cpp.long_long.as.BitAndAssignWith.impl.Op.f89dbb.1, @Cpp.long_long.as.BitAndAssignWith.impl.Op.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %BitOrAssignWith.type.c80: type = facet_type <@BitOrAssignWith, @BitOrAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.ca203c.1: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.1, @Cpp.long_long.as.BitOrAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.622301.1: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.ca203c.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.ca203c.2: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.2, @Cpp.long_long.as.BitOrAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.622301.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.ca203c.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitOrAssignWith.impl_witness.33a: = impl_witness imports.%BitOrAssignWith.impl_witness_table.20e, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.36d3b4.1: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.2, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.426672.1: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.36d3b4.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.36d3b4.2: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.1, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.426672.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.36d3b4.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitOrAssignWith.facet.fc9: %BitOrAssignWith.type.c80 = facet_value %Cpp.long_long, (%BitOrAssignWith.impl_witness.33a) [concrete] -// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.bbd: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%i64, %BitOrAssignWith.facet.fc9) [concrete] -// CHECK:STDOUT: %.f17: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.bbd, %BitOrAssignWith.facet.fc9 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.3dd119.1: = specific_function %Cpp.long_long.as.BitOrAssignWith.impl.Op.426672.2, @Cpp.long_long.as.BitOrAssignWith.impl.Op.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.3dd119.2: = specific_function %Cpp.long_long.as.BitOrAssignWith.impl.Op.426672.1, @Cpp.long_long.as.BitOrAssignWith.impl.Op.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %BitXorAssignWith.type.767: type = facet_type <@BitXorAssignWith, @BitXorAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2d154f.1: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.1, @Cpp.long_long.as.BitXorAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.4ac15f.1: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2d154f.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2d154f.2: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.2, @Cpp.long_long.as.BitXorAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.4ac15f.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2d154f.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitXorAssignWith.impl_witness.f75: = impl_witness imports.%BitXorAssignWith.impl_witness_table.674, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.ed79ec.1: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.2, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.9fbabe.1: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.ed79ec.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.ed79ec.2: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.1, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.9fbabe.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.ed79ec.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitXorAssignWith.facet.f8b: %BitXorAssignWith.type.767 = facet_value %Cpp.long_long, (%BitXorAssignWith.impl_witness.f75) [concrete] -// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.ea8: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%i64, %BitXorAssignWith.facet.f8b) [concrete] -// CHECK:STDOUT: %.936: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.ea8, %BitXorAssignWith.facet.f8b [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.b8cbe3.1: = specific_function %Cpp.long_long.as.BitXorAssignWith.impl.Op.9fbabe.2, @Cpp.long_long.as.BitXorAssignWith.impl.Op.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.b8cbe3.2: = specific_function %Cpp.long_long.as.BitXorAssignWith.impl.Op.9fbabe.1, @Cpp.long_long.as.BitXorAssignWith.impl.Op.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.type.6c3: type = facet_type <@LeftShiftAssignWith, @LeftShiftAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.915db5.1: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long_long.as.LeftShiftAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.fefa92.1: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.915db5.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.915db5.2: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long_long.as.LeftShiftAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.fefa92.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.915db5.2 = struct_value () [symbolic] -// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness.204: = impl_witness imports.%LeftShiftAssignWith.impl_witness_table.166, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.4f94b6.1: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.698534.1: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.4f94b6.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.4f94b6.2: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.698534.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.4f94b6.2 = struct_value () [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.facet.1f8: %LeftShiftAssignWith.type.6c3 = facet_value %Cpp.long_long, (%LeftShiftAssignWith.impl_witness.204) [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.3a4: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%i64, %LeftShiftAssignWith.facet.1f8) [concrete] -// CHECK:STDOUT: %.764: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.3a4, %LeftShiftAssignWith.facet.1f8 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.3250c6.1: = specific_function %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.698534.2, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.3250c6.2: = specific_function %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.698534.1, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.type.b19: type = facet_type <@RightShiftAssignWith, @RightShiftAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.de9a00.1: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long_long.as.RightShiftAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.058a64.1: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.de9a00.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.de9a00.2: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long_long.as.RightShiftAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.058a64.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.de9a00.2 = struct_value () [symbolic] -// CHECK:STDOUT: %RightShiftAssignWith.impl_witness.14f: = impl_witness imports.%RightShiftAssignWith.impl_witness_table.e2b, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.aa8066.1: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.f7b41f.1: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.aa8066.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.aa8066.2: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.f7b41f.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.aa8066.2 = struct_value () [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.facet.53a: %RightShiftAssignWith.type.b19 = facet_value %Cpp.long_long, (%RightShiftAssignWith.impl_witness.14f) [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.833: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%i64, %RightShiftAssignWith.facet.53a) [concrete] -// CHECK:STDOUT: %.b25: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.833, %RightShiftAssignWith.facet.53a [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.e93705.1: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.f7b41f.2, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.e93705.2: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.f7b41f.1, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] +// CHECK:STDOUT: %SubAssignWith.type.01e: type = facet_type <@SubAssignWith, @SubAssignWith(%i64)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.aafcc5.1: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.1, @Cpp.long_long.as.SubAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.67476b.1: %Cpp.long_long.as.SubAssignWith.impl.Op.type.aafcc5.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.aafcc5.2: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.2, @Cpp.long_long.as.SubAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.67476b.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.aafcc5.2 = struct_value () [symbolic] +// CHECK:STDOUT: %SubAssignWith.impl_witness.2a8: = impl_witness imports.%SubAssignWith.impl_witness_table.425, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.798be9.1: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.2, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.1509c5.1: %Cpp.long_long.as.SubAssignWith.impl.Op.type.798be9.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.798be9.2: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.1, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.1509c5.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.798be9.2 = struct_value () [concrete] +// CHECK:STDOUT: %SubAssignWith.facet.b78: %SubAssignWith.type.01e = facet_value %Cpp.long_long, (%SubAssignWith.impl_witness.2a8) [concrete] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.926: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%i64, %SubAssignWith.facet.b78) [concrete] +// CHECK:STDOUT: %.aed: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.926, %SubAssignWith.facet.b78 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.7824e6.1: = specific_function %Cpp.long_long.as.SubAssignWith.impl.Op.1509c5.2, @Cpp.long_long.as.SubAssignWith.impl.Op.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.7824e6.2: = specific_function %Cpp.long_long.as.SubAssignWith.impl.Op.1509c5.1, @Cpp.long_long.as.SubAssignWith.impl.Op.2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %MulAssignWith.type.813: type = facet_type <@MulAssignWith, @MulAssignWith(%i64)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.987caa.1: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.1, @Cpp.long_long.as.MulAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.59c70e.1: %Cpp.long_long.as.MulAssignWith.impl.Op.type.987caa.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.987caa.2: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.2, @Cpp.long_long.as.MulAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.59c70e.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.987caa.2 = struct_value () [symbolic] +// CHECK:STDOUT: %MulAssignWith.impl_witness.3bc: = impl_witness imports.%MulAssignWith.impl_witness_table.769, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.26ce70.1: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.2, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.5d705c.1: %Cpp.long_long.as.MulAssignWith.impl.Op.type.26ce70.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.26ce70.2: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.1, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.5d705c.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.26ce70.2 = struct_value () [concrete] +// CHECK:STDOUT: %MulAssignWith.facet.f52: %MulAssignWith.type.813 = facet_value %Cpp.long_long, (%MulAssignWith.impl_witness.3bc) [concrete] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.221: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%i64, %MulAssignWith.facet.f52) [concrete] +// CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.221, %MulAssignWith.facet.f52 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.89951d.1: = specific_function %Cpp.long_long.as.MulAssignWith.impl.Op.5d705c.2, @Cpp.long_long.as.MulAssignWith.impl.Op.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.89951d.2: = specific_function %Cpp.long_long.as.MulAssignWith.impl.Op.5d705c.1, @Cpp.long_long.as.MulAssignWith.impl.Op.2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %DivAssignWith.type.4ac: type = facet_type <@DivAssignWith, @DivAssignWith(%i64)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.7d9a4f.1: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.1, @Cpp.long_long.as.DivAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.053c65.1: %Cpp.long_long.as.DivAssignWith.impl.Op.type.7d9a4f.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.7d9a4f.2: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.2, @Cpp.long_long.as.DivAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.053c65.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.7d9a4f.2 = struct_value () [symbolic] +// CHECK:STDOUT: %DivAssignWith.impl_witness.f1b: = impl_witness imports.%DivAssignWith.impl_witness_table.538, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.5f499c.1: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.2, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.98d348.1: %Cpp.long_long.as.DivAssignWith.impl.Op.type.5f499c.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.5f499c.2: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.1, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.98d348.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.5f499c.2 = struct_value () [concrete] +// CHECK:STDOUT: %DivAssignWith.facet.5d0: %DivAssignWith.type.4ac = facet_value %Cpp.long_long, (%DivAssignWith.impl_witness.f1b) [concrete] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.ec0: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%i64, %DivAssignWith.facet.5d0) [concrete] +// CHECK:STDOUT: %.2a8: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.ec0, %DivAssignWith.facet.5d0 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.2d709b.1: = specific_function %Cpp.long_long.as.DivAssignWith.impl.Op.98d348.2, @Cpp.long_long.as.DivAssignWith.impl.Op.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.2d709b.2: = specific_function %Cpp.long_long.as.DivAssignWith.impl.Op.98d348.1, @Cpp.long_long.as.DivAssignWith.impl.Op.2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %ModAssignWith.type.6a8: type = facet_type <@ModAssignWith, @ModAssignWith(%i64)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.aee511.1: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.1, @Cpp.long_long.as.ModAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.0a710f.1: %Cpp.long_long.as.ModAssignWith.impl.Op.type.aee511.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.aee511.2: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.2, @Cpp.long_long.as.ModAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.0a710f.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.aee511.2 = struct_value () [symbolic] +// CHECK:STDOUT: %ModAssignWith.impl_witness.563: = impl_witness imports.%ModAssignWith.impl_witness_table.cdc, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.89fbed.1: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.2, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.6bf2ce.1: %Cpp.long_long.as.ModAssignWith.impl.Op.type.89fbed.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.89fbed.2: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.1, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.6bf2ce.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.89fbed.2 = struct_value () [concrete] +// CHECK:STDOUT: %ModAssignWith.facet.0e4: %ModAssignWith.type.6a8 = facet_value %Cpp.long_long, (%ModAssignWith.impl_witness.563) [concrete] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.a6d: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%i64, %ModAssignWith.facet.0e4) [concrete] +// CHECK:STDOUT: %.7bd: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.a6d, %ModAssignWith.facet.0e4 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.b20423.1: = specific_function %Cpp.long_long.as.ModAssignWith.impl.Op.6bf2ce.2, @Cpp.long_long.as.ModAssignWith.impl.Op.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.b20423.2: = specific_function %Cpp.long_long.as.ModAssignWith.impl.Op.6bf2ce.1, @Cpp.long_long.as.ModAssignWith.impl.Op.2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %BitAndAssignWith.type.817: type = facet_type <@BitAndAssignWith, @BitAndAssignWith(%i64)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cd65f6.1: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.1, @Cpp.long_long.as.BitAndAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.3a2cbb.1: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cd65f6.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cd65f6.2: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.2, @Cpp.long_long.as.BitAndAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.3a2cbb.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cd65f6.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitAndAssignWith.impl_witness.7e3: = impl_witness imports.%BitAndAssignWith.impl_witness_table.d41, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.212afa.1: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.2, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.678907.1: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.212afa.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.212afa.2: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.1, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.678907.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.212afa.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitAndAssignWith.facet.8ef: %BitAndAssignWith.type.817 = facet_value %Cpp.long_long, (%BitAndAssignWith.impl_witness.7e3) [concrete] +// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.89a: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%i64, %BitAndAssignWith.facet.8ef) [concrete] +// CHECK:STDOUT: %.920: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.89a, %BitAndAssignWith.facet.8ef [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.4fc9be.1: = specific_function %Cpp.long_long.as.BitAndAssignWith.impl.Op.678907.2, @Cpp.long_long.as.BitAndAssignWith.impl.Op.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.4fc9be.2: = specific_function %Cpp.long_long.as.BitAndAssignWith.impl.Op.678907.1, @Cpp.long_long.as.BitAndAssignWith.impl.Op.2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %BitOrAssignWith.type.9cc: type = facet_type <@BitOrAssignWith, @BitOrAssignWith(%i64)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.a360c5.1: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.1, @Cpp.long_long.as.BitOrAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.65c84e.1: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.a360c5.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.a360c5.2: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.2, @Cpp.long_long.as.BitOrAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.65c84e.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.a360c5.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitOrAssignWith.impl_witness.0f6: = impl_witness imports.%BitOrAssignWith.impl_witness_table.446, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.2aebbe.1: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.2, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.bbf3fb.1: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.2aebbe.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.2aebbe.2: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.1, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.bbf3fb.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.2aebbe.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitOrAssignWith.facet.b74: %BitOrAssignWith.type.9cc = facet_value %Cpp.long_long, (%BitOrAssignWith.impl_witness.0f6) [concrete] +// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.db9: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%i64, %BitOrAssignWith.facet.b74) [concrete] +// CHECK:STDOUT: %.ab1: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.db9, %BitOrAssignWith.facet.b74 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.80ce92.1: = specific_function %Cpp.long_long.as.BitOrAssignWith.impl.Op.bbf3fb.2, @Cpp.long_long.as.BitOrAssignWith.impl.Op.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.80ce92.2: = specific_function %Cpp.long_long.as.BitOrAssignWith.impl.Op.bbf3fb.1, @Cpp.long_long.as.BitOrAssignWith.impl.Op.2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %BitXorAssignWith.type.801: type = facet_type <@BitXorAssignWith, @BitXorAssignWith(%i64)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c7963a.1: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.1, @Cpp.long_long.as.BitXorAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.3b70cd.1: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c7963a.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c7963a.2: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.2, @Cpp.long_long.as.BitXorAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.3b70cd.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c7963a.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitXorAssignWith.impl_witness.400: = impl_witness imports.%BitXorAssignWith.impl_witness_table.8e4, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c459c7.1: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.2, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.9c6ff1.1: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c459c7.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c459c7.2: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.1, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.9c6ff1.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c459c7.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitXorAssignWith.facet.f31: %BitXorAssignWith.type.801 = facet_value %Cpp.long_long, (%BitXorAssignWith.impl_witness.400) [concrete] +// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.559: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%i64, %BitXorAssignWith.facet.f31) [concrete] +// CHECK:STDOUT: %.931: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.559, %BitXorAssignWith.facet.f31 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.c20ea8.1: = specific_function %Cpp.long_long.as.BitXorAssignWith.impl.Op.9c6ff1.2, @Cpp.long_long.as.BitXorAssignWith.impl.Op.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.c20ea8.2: = specific_function %Cpp.long_long.as.BitXorAssignWith.impl.Op.9c6ff1.1, @Cpp.long_long.as.BitXorAssignWith.impl.Op.2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.type.d52: type = facet_type <@LeftShiftAssignWith, @LeftShiftAssignWith(%i64)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.d78f49.1: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long_long.as.LeftShiftAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.688a59.1: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.d78f49.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.d78f49.2: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long_long.as.LeftShiftAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.688a59.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.d78f49.2 = struct_value () [symbolic] +// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness.afc: = impl_witness imports.%LeftShiftAssignWith.impl_witness_table.dd0, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.8c1aba.1: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.4e7679.1: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.8c1aba.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.8c1aba.2: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.4e7679.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.8c1aba.2 = struct_value () [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.facet.41f: %LeftShiftAssignWith.type.d52 = facet_value %Cpp.long_long, (%LeftShiftAssignWith.impl_witness.afc) [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.8f0: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%i64, %LeftShiftAssignWith.facet.41f) [concrete] +// CHECK:STDOUT: %.7e2: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.8f0, %LeftShiftAssignWith.facet.41f [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.b21942.1: = specific_function %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.4e7679.2, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.b21942.2: = specific_function %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.4e7679.1, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.type.7d8: type = facet_type <@RightShiftAssignWith, @RightShiftAssignWith(%i64)> [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2a7c37.1: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long_long.as.RightShiftAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.9744e0.1: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2a7c37.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2a7c37.2: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long_long.as.RightShiftAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.9744e0.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2a7c37.2 = struct_value () [symbolic] +// CHECK:STDOUT: %RightShiftAssignWith.impl_witness.68a: = impl_witness imports.%RightShiftAssignWith.impl_witness_table.00b, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.959149.1: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.f75d42.1: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.959149.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.959149.2: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.f75d42.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.959149.2 = struct_value () [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.facet.e02: %RightShiftAssignWith.type.7d8 = facet_value %Cpp.long_long, (%RightShiftAssignWith.impl_witness.68a) [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.263: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%i64, %RightShiftAssignWith.facet.e02) [concrete] +// CHECK:STDOUT: %.128: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.263, %RightShiftAssignWith.facet.e02 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.eff961.1: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.f75d42.2, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.eff961.2: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.f75d42.1, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.7a4) [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2948,55 +2948,55 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: .long_long = constants.%Cpp.long_long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.adef5f.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.337 = impl_witness_table (%Core.import_ref.adef5f.1), @Core.IntLiteral.as.ImplicitAs.impl.74b [concrete] -// CHECK:STDOUT: %Core.import_ref.8bf: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.e0ed43.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table.c98 = impl_witness_table (%Core.import_ref.8bf), @Cpp.long_long.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.e51: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.e0ed43.2)] -// CHECK:STDOUT: %Core.import_ref.adef5f.2: %i64.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i64.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.7ed = impl_witness_table (%Core.import_ref.adef5f.2), @i64.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.176: @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long_long.as.SubAssignWith.impl.Op.type.b4d617.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.SubAssignWith.impl.Op.30926f.1)] -// CHECK:STDOUT: %SubAssignWith.impl_witness_table.173 = impl_witness_table (%Core.import_ref.176), @Cpp.long_long.as.SubAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.458: @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long_long.as.SubAssignWith.impl.Op.type.b4d617.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.SubAssignWith.impl.Op.30926f.2)] -// CHECK:STDOUT: %Core.import_ref.06d: @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.type.2 (%Cpp.long_long.as.MulAssignWith.impl.Op.type.ae87af.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.MulAssignWith.impl.Op.51366a.1)] -// CHECK:STDOUT: %MulAssignWith.impl_witness_table.8f1 = impl_witness_table (%Core.import_ref.06d), @Cpp.long_long.as.MulAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.3cc: @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.type.1 (%Cpp.long_long.as.MulAssignWith.impl.Op.type.ae87af.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.MulAssignWith.impl.Op.51366a.2)] -// CHECK:STDOUT: %Core.import_ref.6f1: @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.type.2 (%Cpp.long_long.as.DivAssignWith.impl.Op.type.d84717.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.DivAssignWith.impl.Op.efd5d8.1)] -// CHECK:STDOUT: %DivAssignWith.impl_witness_table.5e5 = impl_witness_table (%Core.import_ref.6f1), @Cpp.long_long.as.DivAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.262: @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.type.1 (%Cpp.long_long.as.DivAssignWith.impl.Op.type.d84717.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.DivAssignWith.impl.Op.efd5d8.2)] -// CHECK:STDOUT: %Core.import_ref.3a0: @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.type.2 (%Cpp.long_long.as.ModAssignWith.impl.Op.type.043ac2.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.ModAssignWith.impl.Op.6f8dfc.1)] -// CHECK:STDOUT: %ModAssignWith.impl_witness_table.0c2 = impl_witness_table (%Core.import_ref.3a0), @Cpp.long_long.as.ModAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.eb3: @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.type.1 (%Cpp.long_long.as.ModAssignWith.impl.Op.type.043ac2.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.ModAssignWith.impl.Op.6f8dfc.2)] -// CHECK:STDOUT: %Core.import_ref.9536: @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.285489.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.c0b96d.1)] -// CHECK:STDOUT: %BitAndAssignWith.impl_witness_table.acf = impl_witness_table (%Core.import_ref.9536), @Cpp.long_long.as.BitAndAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.e7c: @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.285489.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.c0b96d.2)] -// CHECK:STDOUT: %Core.import_ref.f3a: @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.ca203c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.622301.1)] -// CHECK:STDOUT: %BitOrAssignWith.impl_witness_table.20e = impl_witness_table (%Core.import_ref.f3a), @Cpp.long_long.as.BitOrAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.db2: @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.ca203c.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.622301.2)] -// CHECK:STDOUT: %Core.import_ref.076: @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2d154f.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.4ac15f.1)] -// CHECK:STDOUT: %BitXorAssignWith.impl_witness_table.674 = impl_witness_table (%Core.import_ref.076), @Cpp.long_long.as.BitXorAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.2d3: @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2d154f.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.4ac15f.2)] -// CHECK:STDOUT: %Core.import_ref.b82: @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.2 (%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.915db5.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.fefa92.1)] -// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness_table.166 = impl_witness_table (%Core.import_ref.b82), @Cpp.long_long.as.LeftShiftAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.73c: @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.1 (%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.915db5.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.fefa92.2)] -// CHECK:STDOUT: %Core.import_ref.596: @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2 (%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.de9a00.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.058a64.1)] -// CHECK:STDOUT: %RightShiftAssignWith.impl_witness_table.e2b = impl_witness_table (%Core.import_ref.596), @Cpp.long_long.as.RightShiftAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.62d: @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.1 (%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.de9a00.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.058a64.2)] +// CHECK:STDOUT: %Core.import_ref.06c923.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.d6d = impl_witness_table (%Core.import_ref.06c923.1), @Core.IntLiteral.as.ImplicitAs.impl.e33 [concrete] +// CHECK:STDOUT: %Core.import_ref.634: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.8f0746.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table.442 = impl_witness_table (%Core.import_ref.634), @Cpp.long_long.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.c11: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.8f0746.2)] +// CHECK:STDOUT: %Core.import_ref.06c923.2: %i64.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a87 = impl_witness_table (%Core.import_ref.06c923.2), @i64.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.14b: @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long_long.as.SubAssignWith.impl.Op.type.aafcc5.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.SubAssignWith.impl.Op.67476b.1)] +// CHECK:STDOUT: %SubAssignWith.impl_witness_table.425 = impl_witness_table (%Core.import_ref.14b), @Cpp.long_long.as.SubAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.3dd: @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long_long.as.SubAssignWith.impl.Op.type.aafcc5.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.SubAssignWith.impl.Op.67476b.2)] +// CHECK:STDOUT: %Core.import_ref.1e7: @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.type.2 (%Cpp.long_long.as.MulAssignWith.impl.Op.type.987caa.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.MulAssignWith.impl.Op.59c70e.1)] +// CHECK:STDOUT: %MulAssignWith.impl_witness_table.769 = impl_witness_table (%Core.import_ref.1e7), @Cpp.long_long.as.MulAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.1a0: @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.type.1 (%Cpp.long_long.as.MulAssignWith.impl.Op.type.987caa.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.MulAssignWith.impl.Op.59c70e.2)] +// CHECK:STDOUT: %Core.import_ref.90c: @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.type.2 (%Cpp.long_long.as.DivAssignWith.impl.Op.type.7d9a4f.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.DivAssignWith.impl.Op.053c65.1)] +// CHECK:STDOUT: %DivAssignWith.impl_witness_table.538 = impl_witness_table (%Core.import_ref.90c), @Cpp.long_long.as.DivAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.4db: @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.type.1 (%Cpp.long_long.as.DivAssignWith.impl.Op.type.7d9a4f.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.DivAssignWith.impl.Op.053c65.2)] +// CHECK:STDOUT: %Core.import_ref.620: @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.type.2 (%Cpp.long_long.as.ModAssignWith.impl.Op.type.aee511.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.ModAssignWith.impl.Op.0a710f.1)] +// CHECK:STDOUT: %ModAssignWith.impl_witness_table.cdc = impl_witness_table (%Core.import_ref.620), @Cpp.long_long.as.ModAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.978: @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.type.1 (%Cpp.long_long.as.ModAssignWith.impl.Op.type.aee511.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.ModAssignWith.impl.Op.0a710f.2)] +// CHECK:STDOUT: %Core.import_ref.f6c: @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cd65f6.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.3a2cbb.1)] +// CHECK:STDOUT: %BitAndAssignWith.impl_witness_table.d41 = impl_witness_table (%Core.import_ref.f6c), @Cpp.long_long.as.BitAndAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.96f: @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cd65f6.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.3a2cbb.2)] +// CHECK:STDOUT: %Core.import_ref.4fa: @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.a360c5.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.65c84e.1)] +// CHECK:STDOUT: %BitOrAssignWith.impl_witness_table.446 = impl_witness_table (%Core.import_ref.4fa), @Cpp.long_long.as.BitOrAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.152: @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.a360c5.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.65c84e.2)] +// CHECK:STDOUT: %Core.import_ref.0a0: @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c7963a.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.3b70cd.1)] +// CHECK:STDOUT: %BitXorAssignWith.impl_witness_table.8e4 = impl_witness_table (%Core.import_ref.0a0), @Cpp.long_long.as.BitXorAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.993: @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c7963a.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.3b70cd.2)] +// CHECK:STDOUT: %Core.import_ref.463: @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.2 (%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.d78f49.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.688a59.1)] +// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness_table.dd0 = impl_witness_table (%Core.import_ref.463), @Cpp.long_long.as.LeftShiftAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.3c4: @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.1 (%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.d78f49.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.688a59.2)] +// CHECK:STDOUT: %Core.import_ref.6d5: @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2 (%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2a7c37.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.9744e0.1)] +// CHECK:STDOUT: %RightShiftAssignWith.impl_witness_table.00b = impl_witness_table (%Core.import_ref.6d5), @Cpp.long_long.as.RightShiftAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.77b: @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.1 (%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2a7c37.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.9744e0.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CompoundAssignmentLongLongAndI64() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.003 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.003 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.d58 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.d58 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Cpp.long_long = var %a.var_patt // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc9: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc9: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc9: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long_long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc9_3: init %Cpp.long_long = converted %int_1.loc9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long_long = call %bound_method.loc9(%int_1.loc9) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc9_3: init %Cpp.long_long = converted %int_1.loc9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.b19] // CHECK:STDOUT: assign %a.var, %.loc9_3 // CHECK:STDOUT: %.loc9_13: type = splice_block %long_long.ref [concrete = constants.%Cpp.long_long] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -3005,18 +3005,18 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %a: ref %Cpp.long_long = ref_binding a, %a.var // CHECK:STDOUT: %a.ref.loc10: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc10: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc10_5: %.47e = impl_witness_access constants.%AddAssignWith.impl_witness.144, element0 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.80979a.2] +// CHECK:STDOUT: %impl.elem0.loc10_5: %.4c9 = impl_witness_access constants.%AddAssignWith.impl_witness.610, element0 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.0167bf.2] // CHECK:STDOUT: %bound_method.loc10_5.1: = bound_method %a.ref.loc10, %impl.elem0.loc10_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc10: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet.loc10 [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @Cpp.long_long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.34f4c5.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc10: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc10 [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @Cpp.long_long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.57a765.1] // CHECK:STDOUT: %bound_method.loc10_5.2: = bound_method %a.ref.loc10, %specific_fn.loc10 -// CHECK:STDOUT: %.loc10_5.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.07766d.1 = specific_constant imports.%Core.Op.e51, @Cpp.long_long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.80979a.1] -// CHECK:STDOUT: %Op.ref.loc10: %Cpp.long_long.as.AddAssignWith.impl.Op.type.07766d.1 = name_ref Op, %.loc10_5.2 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.80979a.1] +// CHECK:STDOUT: %.loc10_5.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.6f7c53.1 = specific_constant imports.%Core.Op.c11, @Cpp.long_long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.0167bf.1] +// CHECK:STDOUT: %Op.ref.loc10: %Cpp.long_long.as.AddAssignWith.impl.Op.type.6f7c53.1 = name_ref Op, %.loc10_5.2 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.0167bf.1] // CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.bound: = bound_method %a.ref.loc10, %Op.ref.loc10 -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc10, @Cpp.long_long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.34f4c5.2] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc10, @Cpp.long_long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.57a765.2] // CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %a.ref.loc10, %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc10_8: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc10_8: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_8: = bound_method %b.ref.loc10, %impl.elem0.loc10_8 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc10: init %Cpp.long_long = call %bound_method.loc10_8(%b.ref.loc10) // CHECK:STDOUT: %.loc10_8.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc10 @@ -3024,18 +3024,18 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10_5.3(%a.ref.loc10, %.loc10_8.2) // CHECK:STDOUT: %a.ref.loc11: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc11: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc11_5: %.f2c = impl_witness_access constants.%SubAssignWith.impl_witness.5e5, element0 [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.127ee6.2] +// CHECK:STDOUT: %impl.elem0.loc11_5: %.aed = impl_witness_access constants.%SubAssignWith.impl_witness.2a8, element0 [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.1509c5.2] // CHECK:STDOUT: %bound_method.loc11_5.1: = bound_method %a.ref.loc11, %impl.elem0.loc11_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11_5, @Cpp.long_long.as.SubAssignWith.impl.Op.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.bf2b06.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11_5, @Cpp.long_long.as.SubAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.7824e6.1] // CHECK:STDOUT: %bound_method.loc11_5.2: = bound_method %a.ref.loc11, %specific_fn.loc11 -// CHECK:STDOUT: %.loc11_5.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.11da79.1 = specific_constant imports.%Core.Op.458, @Cpp.long_long.as.SubAssignWith.impl(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.127ee6.1] -// CHECK:STDOUT: %Op.ref.loc11: %Cpp.long_long.as.SubAssignWith.impl.Op.type.11da79.1 = name_ref Op, %.loc11_5.2 [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.127ee6.1] +// CHECK:STDOUT: %.loc11_5.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.798be9.1 = specific_constant imports.%Core.Op.3dd, @Cpp.long_long.as.SubAssignWith.impl(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.1509c5.1] +// CHECK:STDOUT: %Op.ref.loc11: %Cpp.long_long.as.SubAssignWith.impl.Op.type.798be9.1 = name_ref Op, %.loc11_5.2 [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.1509c5.1] // CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.bound: = bound_method %a.ref.loc11, %Op.ref.loc11 -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc11, @Cpp.long_long.as.SubAssignWith.impl.Op.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.bf2b06.2] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc11, @Cpp.long_long.as.SubAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.7824e6.2] // CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %a.ref.loc11, %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc11_8: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc11_8: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc11_8: = bound_method %b.ref.loc11, %impl.elem0.loc11_8 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc11: init %Cpp.long_long = call %bound_method.loc11_8(%b.ref.loc11) // CHECK:STDOUT: %.loc11_8.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc11 @@ -3043,18 +3043,18 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc11_5.3(%a.ref.loc11, %.loc11_8.2) // CHECK:STDOUT: %a.ref.loc12: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc12: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc12_5: %.75d = impl_witness_access constants.%MulAssignWith.impl_witness.8c6, element0 [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.700303.2] +// CHECK:STDOUT: %impl.elem0.loc12_5: %.9c3 = impl_witness_access constants.%MulAssignWith.impl_witness.3bc, element0 [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.5d705c.2] // CHECK:STDOUT: %bound_method.loc12_5.1: = bound_method %a.ref.loc12, %impl.elem0.loc12_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12_5, @Cpp.long_long.as.MulAssignWith.impl.Op.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.e33828.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12_5, @Cpp.long_long.as.MulAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.89951d.1] // CHECK:STDOUT: %bound_method.loc12_5.2: = bound_method %a.ref.loc12, %specific_fn.loc12 -// CHECK:STDOUT: %.loc12_5.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.fd2ec8.1 = specific_constant imports.%Core.Op.3cc, @Cpp.long_long.as.MulAssignWith.impl(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.700303.1] -// CHECK:STDOUT: %Op.ref.loc12: %Cpp.long_long.as.MulAssignWith.impl.Op.type.fd2ec8.1 = name_ref Op, %.loc12_5.2 [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.700303.1] +// CHECK:STDOUT: %.loc12_5.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.26ce70.1 = specific_constant imports.%Core.Op.1a0, @Cpp.long_long.as.MulAssignWith.impl(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.5d705c.1] +// CHECK:STDOUT: %Op.ref.loc12: %Cpp.long_long.as.MulAssignWith.impl.Op.type.26ce70.1 = name_ref Op, %.loc12_5.2 [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.5d705c.1] // CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.bound: = bound_method %a.ref.loc12, %Op.ref.loc12 -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc12, @Cpp.long_long.as.MulAssignWith.impl.Op.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.e33828.2] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc12, @Cpp.long_long.as.MulAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.89951d.2] // CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %a.ref.loc12, %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc12_8: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc12_8: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc12_8: = bound_method %b.ref.loc12, %impl.elem0.loc12_8 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc12: init %Cpp.long_long = call %bound_method.loc12_8(%b.ref.loc12) // CHECK:STDOUT: %.loc12_8.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc12 @@ -3062,18 +3062,18 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc12_5.3(%a.ref.loc12, %.loc12_8.2) // CHECK:STDOUT: %a.ref.loc13: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc13: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc13_5: %.706 = impl_witness_access constants.%DivAssignWith.impl_witness.505, element0 [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.166ffe.2] +// CHECK:STDOUT: %impl.elem0.loc13_5: %.2a8 = impl_witness_access constants.%DivAssignWith.impl_witness.f1b, element0 [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.98d348.2] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %a.ref.loc13, %impl.elem0.loc13_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5, @Cpp.long_long.as.DivAssignWith.impl.Op.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.f6bb38.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5, @Cpp.long_long.as.DivAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.2d709b.1] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %a.ref.loc13, %specific_fn.loc13 -// CHECK:STDOUT: %.loc13_5.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.84030a.1 = specific_constant imports.%Core.Op.262, @Cpp.long_long.as.DivAssignWith.impl(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.166ffe.1] -// CHECK:STDOUT: %Op.ref.loc13: %Cpp.long_long.as.DivAssignWith.impl.Op.type.84030a.1 = name_ref Op, %.loc13_5.2 [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.166ffe.1] +// CHECK:STDOUT: %.loc13_5.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.5f499c.1 = specific_constant imports.%Core.Op.4db, @Cpp.long_long.as.DivAssignWith.impl(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.98d348.1] +// CHECK:STDOUT: %Op.ref.loc13: %Cpp.long_long.as.DivAssignWith.impl.Op.type.5f499c.1 = name_ref Op, %.loc13_5.2 [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.98d348.1] // CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.bound: = bound_method %a.ref.loc13, %Op.ref.loc13 -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc13, @Cpp.long_long.as.DivAssignWith.impl.Op.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.f6bb38.2] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc13, @Cpp.long_long.as.DivAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.2d709b.2] // CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %a.ref.loc13, %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc13_8: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc13_8: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc13_8: = bound_method %b.ref.loc13, %impl.elem0.loc13_8 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc13: init %Cpp.long_long = call %bound_method.loc13_8(%b.ref.loc13) // CHECK:STDOUT: %.loc13_8.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc13 @@ -3081,18 +3081,18 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13_5.3(%a.ref.loc13, %.loc13_8.2) // CHECK:STDOUT: %a.ref.loc14: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc14: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc14_5: %.7d6 = impl_witness_access constants.%ModAssignWith.impl_witness.88d, element0 [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.9c8823.2] +// CHECK:STDOUT: %impl.elem0.loc14_5: %.7bd = impl_witness_access constants.%ModAssignWith.impl_witness.563, element0 [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.6bf2ce.2] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %a.ref.loc14, %impl.elem0.loc14_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14_5, @Cpp.long_long.as.ModAssignWith.impl.Op.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.424ffe.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14_5, @Cpp.long_long.as.ModAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.b20423.1] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %a.ref.loc14, %specific_fn.loc14 -// CHECK:STDOUT: %.loc14_5.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.2f65fa.1 = specific_constant imports.%Core.Op.eb3, @Cpp.long_long.as.ModAssignWith.impl(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.9c8823.1] -// CHECK:STDOUT: %Op.ref.loc14: %Cpp.long_long.as.ModAssignWith.impl.Op.type.2f65fa.1 = name_ref Op, %.loc14_5.2 [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.9c8823.1] +// CHECK:STDOUT: %.loc14_5.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.89fbed.1 = specific_constant imports.%Core.Op.978, @Cpp.long_long.as.ModAssignWith.impl(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.6bf2ce.1] +// CHECK:STDOUT: %Op.ref.loc14: %Cpp.long_long.as.ModAssignWith.impl.Op.type.89fbed.1 = name_ref Op, %.loc14_5.2 [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.6bf2ce.1] // CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.bound: = bound_method %a.ref.loc14, %Op.ref.loc14 -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc14, @Cpp.long_long.as.ModAssignWith.impl.Op.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.424ffe.2] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc14, @Cpp.long_long.as.ModAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.b20423.2] // CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %a.ref.loc14, %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc14_8: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc14_8: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc14_8: = bound_method %b.ref.loc14, %impl.elem0.loc14_8 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc14: init %Cpp.long_long = call %bound_method.loc14_8(%b.ref.loc14) // CHECK:STDOUT: %.loc14_8.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc14 @@ -3100,18 +3100,18 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_5.3(%a.ref.loc14, %.loc14_8.2) // CHECK:STDOUT: %a.ref.loc16: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc16: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc16_5: %.f35 = impl_witness_access constants.%BitAndAssignWith.impl_witness.7e8, element0 [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.f89dbb.2] +// CHECK:STDOUT: %impl.elem0.loc16_5: %.920 = impl_witness_access constants.%BitAndAssignWith.impl_witness.7e3, element0 [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.678907.2] // CHECK:STDOUT: %bound_method.loc16_5.1: = bound_method %a.ref.loc16, %impl.elem0.loc16_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc16: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc16_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet.loc16 [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16_5, @Cpp.long_long.as.BitAndAssignWith.impl.Op.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.cffeb7.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc16: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc16_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc16 [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16_5, @Cpp.long_long.as.BitAndAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.4fc9be.1] // CHECK:STDOUT: %bound_method.loc16_5.2: = bound_method %a.ref.loc16, %specific_fn.loc16 -// CHECK:STDOUT: %.loc16_5.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.529d3e.1 = specific_constant imports.%Core.Op.e7c, @Cpp.long_long.as.BitAndAssignWith.impl(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.f89dbb.1] -// CHECK:STDOUT: %Op.ref.loc16: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.529d3e.1 = name_ref Op, %.loc16_5.2 [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.f89dbb.1] +// CHECK:STDOUT: %.loc16_5.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.212afa.1 = specific_constant imports.%Core.Op.96f, @Cpp.long_long.as.BitAndAssignWith.impl(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.678907.1] +// CHECK:STDOUT: %Op.ref.loc16: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.212afa.1 = name_ref Op, %.loc16_5.2 [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.678907.1] // CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.bound: = bound_method %a.ref.loc16, %Op.ref.loc16 -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc16, @Cpp.long_long.as.BitAndAssignWith.impl.Op.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.cffeb7.2] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc16, @Cpp.long_long.as.BitAndAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.4fc9be.2] // CHECK:STDOUT: %bound_method.loc16_5.3: = bound_method %a.ref.loc16, %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc16_8: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc16_8: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc16_8: = bound_method %b.ref.loc16, %impl.elem0.loc16_8 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc16: init %Cpp.long_long = call %bound_method.loc16_8(%b.ref.loc16) // CHECK:STDOUT: %.loc16_8.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc16 @@ -3119,18 +3119,18 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_5.3(%a.ref.loc16, %.loc16_8.2) // CHECK:STDOUT: %a.ref.loc17: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc17: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc17_5: %.f17 = impl_witness_access constants.%BitOrAssignWith.impl_witness.33a, element0 [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.426672.2] +// CHECK:STDOUT: %impl.elem0.loc17_5: %.ab1 = impl_witness_access constants.%BitOrAssignWith.impl_witness.0f6, element0 [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.bbf3fb.2] // CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %a.ref.loc17, %impl.elem0.loc17_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5, @Cpp.long_long.as.BitOrAssignWith.impl.Op.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.3dd119.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5, @Cpp.long_long.as.BitOrAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.80ce92.1] // CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %a.ref.loc17, %specific_fn.loc17 -// CHECK:STDOUT: %.loc17_5.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.36d3b4.1 = specific_constant imports.%Core.Op.db2, @Cpp.long_long.as.BitOrAssignWith.impl(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.426672.1] -// CHECK:STDOUT: %Op.ref.loc17: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.36d3b4.1 = name_ref Op, %.loc17_5.2 [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.426672.1] +// CHECK:STDOUT: %.loc17_5.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.2aebbe.1 = specific_constant imports.%Core.Op.152, @Cpp.long_long.as.BitOrAssignWith.impl(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.bbf3fb.1] +// CHECK:STDOUT: %Op.ref.loc17: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.2aebbe.1 = name_ref Op, %.loc17_5.2 [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.bbf3fb.1] // CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.bound: = bound_method %a.ref.loc17, %Op.ref.loc17 -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc17, @Cpp.long_long.as.BitOrAssignWith.impl.Op.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.3dd119.2] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc17, @Cpp.long_long.as.BitOrAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.80ce92.2] // CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %a.ref.loc17, %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc17_8: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc17_8: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc17_8: = bound_method %b.ref.loc17, %impl.elem0.loc17_8 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc17: init %Cpp.long_long = call %bound_method.loc17_8(%b.ref.loc17) // CHECK:STDOUT: %.loc17_8.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc17 @@ -3138,18 +3138,18 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc17_5.3(%a.ref.loc17, %.loc17_8.2) // CHECK:STDOUT: %a.ref.loc18: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc18: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc18_5: %.936 = impl_witness_access constants.%BitXorAssignWith.impl_witness.f75, element0 [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.9fbabe.2] +// CHECK:STDOUT: %impl.elem0.loc18_5: %.931 = impl_witness_access constants.%BitXorAssignWith.impl_witness.400, element0 [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.9c6ff1.2] // CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %a.ref.loc18, %impl.elem0.loc18_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18_5, @Cpp.long_long.as.BitXorAssignWith.impl.Op.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.b8cbe3.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18_5, @Cpp.long_long.as.BitXorAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.c20ea8.1] // CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %a.ref.loc18, %specific_fn.loc18 -// CHECK:STDOUT: %.loc18_5.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.ed79ec.1 = specific_constant imports.%Core.Op.2d3, @Cpp.long_long.as.BitXorAssignWith.impl(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.9fbabe.1] -// CHECK:STDOUT: %Op.ref.loc18: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.ed79ec.1 = name_ref Op, %.loc18_5.2 [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.9fbabe.1] +// CHECK:STDOUT: %.loc18_5.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c459c7.1 = specific_constant imports.%Core.Op.993, @Cpp.long_long.as.BitXorAssignWith.impl(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.9c6ff1.1] +// CHECK:STDOUT: %Op.ref.loc18: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.c459c7.1 = name_ref Op, %.loc18_5.2 [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.9c6ff1.1] // CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.bound: = bound_method %a.ref.loc18, %Op.ref.loc18 -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @Cpp.long_long.as.BitXorAssignWith.impl.Op.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.b8cbe3.2] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @Cpp.long_long.as.BitXorAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.c20ea8.2] // CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %a.ref.loc18, %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc18_8: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc18_8: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc18_8: = bound_method %b.ref.loc18, %impl.elem0.loc18_8 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc18: init %Cpp.long_long = call %bound_method.loc18_8(%b.ref.loc18) // CHECK:STDOUT: %.loc18_8.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc18 @@ -3157,18 +3157,18 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_5.3(%a.ref.loc18, %.loc18_8.2) // CHECK:STDOUT: %a.ref.loc19: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc19: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc19_5: %.764 = impl_witness_access constants.%LeftShiftAssignWith.impl_witness.204, element0 [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.698534.2] +// CHECK:STDOUT: %impl.elem0.loc19_5: %.7e2 = impl_witness_access constants.%LeftShiftAssignWith.impl_witness.afc, element0 [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.4e7679.2] // CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %a.ref.loc19, %impl.elem0.loc19_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19_5, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.3250c6.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19_5, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.b21942.1] // CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %a.ref.loc19, %specific_fn.loc19 -// CHECK:STDOUT: %.loc19_5.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.4f94b6.1 = specific_constant imports.%Core.Op.73c, @Cpp.long_long.as.LeftShiftAssignWith.impl(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.698534.1] -// CHECK:STDOUT: %Op.ref.loc19: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.4f94b6.1 = name_ref Op, %.loc19_5.2 [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.698534.1] +// CHECK:STDOUT: %.loc19_5.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.8c1aba.1 = specific_constant imports.%Core.Op.3c4, @Cpp.long_long.as.LeftShiftAssignWith.impl(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.4e7679.1] +// CHECK:STDOUT: %Op.ref.loc19: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.8c1aba.1 = name_ref Op, %.loc19_5.2 [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.4e7679.1] // CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.bound: = bound_method %a.ref.loc19, %Op.ref.loc19 -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc19, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.3250c6.2] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc19, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.b21942.2] // CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %a.ref.loc19, %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc19_9: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc19_9: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc19_9: = bound_method %b.ref.loc19, %impl.elem0.loc19_9 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc19: init %Cpp.long_long = call %bound_method.loc19_9(%b.ref.loc19) // CHECK:STDOUT: %.loc19_9.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc19 @@ -3176,24 +3176,24 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc19_5.3(%a.ref.loc19, %.loc19_9.2) // CHECK:STDOUT: %a.ref.loc20: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc20: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc20_5: %.b25 = impl_witness_access constants.%RightShiftAssignWith.impl_witness.14f, element0 [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.f7b41f.2] +// CHECK:STDOUT: %impl.elem0.loc20_5: %.128 = impl_witness_access constants.%RightShiftAssignWith.impl_witness.68a, element0 [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.f75d42.2] // CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %a.ref.loc20, %impl.elem0.loc20_5 -// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.e93705.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.eff961.1] // CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %a.ref.loc20, %specific_fn.loc20 -// CHECK:STDOUT: %.loc20_5.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.aa8066.1 = specific_constant imports.%Core.Op.62d, @Cpp.long_long.as.RightShiftAssignWith.impl(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.f7b41f.1] -// CHECK:STDOUT: %Op.ref.loc20: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.aa8066.1 = name_ref Op, %.loc20_5.2 [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.f7b41f.1] +// CHECK:STDOUT: %.loc20_5.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.959149.1 = specific_constant imports.%Core.Op.77b, @Cpp.long_long.as.RightShiftAssignWith.impl(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.f75d42.1] +// CHECK:STDOUT: %Op.ref.loc20: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.959149.1 = name_ref Op, %.loc20_5.2 [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.f75d42.1] // CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.bound: = bound_method %a.ref.loc20, %Op.ref.loc20 -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc20, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.e93705.2] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc20, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.eff961.2] // CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %a.ref.loc20, %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc20_9: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc20_9: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc20_9: = bound_method %b.ref.loc20, %impl.elem0.loc20_9 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc20: init %Cpp.long_long = call %bound_method.loc20_9(%b.ref.loc20) // 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.2dd605.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: // CHECK:STDOUT: } @@ -3212,35 +3212,35 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long: type = class_type @LongLong64 [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %i64.builtin: type = int_type signed, %int_64 [concrete] -// CHECK:STDOUT: %pattern_type.003: type = pattern_type %Cpp.long_long [concrete] +// CHECK:STDOUT: %pattern_type.d58: type = pattern_type %Cpp.long_long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.fb7: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.59e: = impl_witness imports.%ImplicitAs.impl_witness_table.337 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.59e) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f1d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.424: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.f1d, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ec: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.660: = impl_witness imports.%ImplicitAs.impl_witness_table.d6d [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.660) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.062: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.ca2: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.062, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %int_1.8b4: %Cpp.long_long = int_value 1 [concrete] -// CHECK:STDOUT: %AddAssignWith.type.d09: type = facet_type <@AddAssignWith, @AddAssignWith(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %U.ec6: %ImplicitAs.type.fb7 = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.e0ed43.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.e0ed43.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.2 = struct_value () [symbolic] -// CHECK:STDOUT: %AddAssignWith.impl_witness.35e: = impl_witness imports.%AddAssignWith.impl_witness_table.c98, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.591f8a.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.2e5ecf.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.591f8a.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.591f8a.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.2e5ecf.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.591f8a.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet.839: %AddAssignWith.type.d09 = facet_value %Cpp.long_long, (%AddAssignWith.impl_witness.35e) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.42f: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(Core.IntLiteral, %AddAssignWith.facet.839) [concrete] -// CHECK:STDOUT: %.359: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.42f, %AddAssignWith.facet.839 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.53d41c.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.2e5ecf.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.53d41c.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.2e5ecf.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] +// CHECK:STDOUT: %int_1.b19: %Cpp.long_long = int_value 1 [concrete] +// CHECK:STDOUT: %AddAssignWith.type.5ab: type = facet_type <@AddAssignWith, @AddAssignWith(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %U.bf2: %ImplicitAs.type.0ec = symbolic_binding U, 0 [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.8f0746.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.8f0746.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.2 = struct_value () [symbolic] +// CHECK:STDOUT: %AddAssignWith.impl_witness.b05: = impl_witness imports.%AddAssignWith.impl_witness_table.442, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3d164b.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.7e3843.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3d164b.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3d164b.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.7e3843.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3d164b.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet.6b7: %AddAssignWith.type.5ab = facet_value %Cpp.long_long, (%AddAssignWith.impl_witness.b05) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.ca5: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(Core.IntLiteral, %AddAssignWith.facet.6b7) [concrete] +// CHECK:STDOUT: %.eab: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.ca5, %AddAssignWith.facet.6b7 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.d7abb9.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.7e3843.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.d7abb9.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.7e3843.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet) [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3248,25 +3248,25 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: .long_long = constants.%Cpp.long_long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ade: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.337 = impl_witness_table (%Core.import_ref.ade), @Core.IntLiteral.as.ImplicitAs.impl.74b [concrete] -// CHECK:STDOUT: %Core.import_ref.8bf: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.e0ed43.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table.c98 = impl_witness_table (%Core.import_ref.8bf), @Cpp.long_long.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.e51: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.e0ed43.2)] +// CHECK:STDOUT: %Core.import_ref.06c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.d6d = impl_witness_table (%Core.import_ref.06c), @Core.IntLiteral.as.ImplicitAs.impl.e33 [concrete] +// CHECK:STDOUT: %Core.import_ref.634: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.8f0746.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table.442 = impl_witness_table (%Core.import_ref.634), @Cpp.long_long.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.c11: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.8f0746.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CompoundAssignmentLongLongAndIntLiteral() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.003 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.003 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.d58 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.d58 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Cpp.long_long = var %a.var_patt // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc8: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc8: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc8: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long_long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc8_3: init %Cpp.long_long = converted %int_1.loc8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long_long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc8_3: init %Cpp.long_long = converted %int_1.loc8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.b19] // CHECK:STDOUT: assign %a.var, %.loc8_3 // CHECK:STDOUT: %.loc8_13: type = splice_block %long_long.ref [concrete = constants.%Cpp.long_long] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -3275,24 +3275,24 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %a: ref %Cpp.long_long = ref_binding a, %a.var // CHECK:STDOUT: %a.ref: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc9_5: %.359 = impl_witness_access constants.%AddAssignWith.impl_witness.35e, element0 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.2e5ecf.2] +// CHECK:STDOUT: %impl.elem0.loc9_5: %.eab = impl_witness_access constants.%AddAssignWith.impl_witness.b05, element0 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.7e3843.2] // CHECK:STDOUT: %bound_method.loc9_5.1: = bound_method %a.ref, %impl.elem0.loc9_5 -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.59e) [concrete = constants.%ImplicitAs.facet] -// CHECK:STDOUT: %.loc9_5.1: %ImplicitAs.type.fb7 = converted Core.IntLiteral, %ImplicitAs.facet [concrete = constants.%ImplicitAs.facet] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc9_5, @Cpp.long_long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.53d41c.1] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.660) [concrete = constants.%ImplicitAs.facet] +// CHECK:STDOUT: %.loc9_5.1: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet [concrete = constants.%ImplicitAs.facet] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc9_5, @Cpp.long_long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.d7abb9.1] // CHECK:STDOUT: %bound_method.loc9_5.2: = bound_method %a.ref, %specific_fn -// CHECK:STDOUT: %.loc9_5.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.591f8a.1 = specific_constant imports.%Core.Op.e51, @Cpp.long_long.as.AddAssignWith.impl(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.2e5ecf.1] -// CHECK:STDOUT: %Op.ref: %Cpp.long_long.as.AddAssignWith.impl.Op.type.591f8a.1 = name_ref Op, %.loc9_5.2 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.2e5ecf.1] +// CHECK:STDOUT: %.loc9_5.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3d164b.1 = specific_constant imports.%Core.Op.c11, @Cpp.long_long.as.AddAssignWith.impl(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.7e3843.1] +// CHECK:STDOUT: %Op.ref: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3d164b.1 = name_ref Op, %.loc9_5.2 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.7e3843.1] // CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.bound: = bound_method %a.ref, %Op.ref -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Cpp.long_long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.53d41c.2] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Cpp.long_long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.d7abb9.2] // CHECK:STDOUT: %bound_method.loc9_5.3: = bound_method %a.ref, %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc9_8: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc9_8: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc9_8: = bound_method %int_1.loc9, %impl.elem0.loc9_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long_long = call %bound_method.loc9_8(%int_1.loc9) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc9_8.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc9_8.2: %Cpp.long_long = converted %int_1.loc9, %.loc9_8.1 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %Cpp.long_long = call %bound_method.loc9_8(%int_1.loc9) [concrete = constants.%int_1.b19] +// 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.2dd605.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: // CHECK:STDOUT: } @@ -3312,56 +3312,56 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] // CHECK:STDOUT: %i64.builtin: type = int_type signed, %int_64 [concrete] -// CHECK:STDOUT: %pattern_type.003: type = pattern_type %Cpp.long_long [concrete] +// CHECK:STDOUT: %pattern_type.d58: type = pattern_type %Cpp.long_long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.fb7: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.type.08a: type = facet_type <@ImplicitAs, @ImplicitAs(%i64)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.59e: = impl_witness imports.%ImplicitAs.impl_witness_table.337 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.532: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.59e) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f1d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.532) [concrete] -// CHECK:STDOUT: %.424: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.f1d, %ImplicitAs.facet.532 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ec: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.221: type = facet_type <@ImplicitAs, @ImplicitAs(%i64)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.660: = impl_witness imports.%ImplicitAs.impl_witness_table.d6d [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2ed: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.660) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.062: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.2ed) [concrete] +// CHECK:STDOUT: %.ca2: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.062, %ImplicitAs.facet.2ed [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce [concrete] -// CHECK:STDOUT: %int_1.8b4: %Cpp.long_long = int_value 1 [concrete] -// CHECK:STDOUT: %pattern_type.fdd: type = pattern_type %i64 [concrete] +// CHECK:STDOUT: %int_1.b19: %Cpp.long_long = int_value 1 [concrete] +// CHECK:STDOUT: %pattern_type.f57: type = pattern_type %i64 [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.35c: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.fc2: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.fc2 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.8a1: %ImplicitAs.type.08a = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.35c) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.744: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i64, %ImplicitAs.facet.8a1) [concrete] -// CHECK:STDOUT: %.d4c: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.744, %ImplicitAs.facet.8a1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.37e: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5, @Core.IntLiteral.as.ImplicitAs.impl.Convert.2(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.091: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.55a: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.55a = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.6e8: %ImplicitAs.type.221 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.091) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.a04: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i64, %ImplicitAs.facet.6e8) [concrete] +// CHECK:STDOUT: %.f34: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.a04, %ImplicitAs.facet.6e8 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.89f: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b, @Core.IntLiteral.as.ImplicitAs.impl.Convert.2(%int_64) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.0f3: %i64 = int_value 1 [concrete] -// CHECK:STDOUT: %AddAssignWith.type.823: type = facet_type <@AddAssignWith, @AddAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %U.ec6: %ImplicitAs.type.fb7 = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.e0ed43.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%U.ec6) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.e0ed43.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.2 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.811: = impl_witness imports.%ImplicitAs.impl_witness_table.7ed [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.a8b: %ImplicitAs.type.fb7 = facet_value %i64, (%ImplicitAs.impl_witness.811) [concrete] -// CHECK:STDOUT: %AddAssignWith.impl_witness.144: = impl_witness imports.%AddAssignWith.impl_witness_table.c98, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.07766d.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.80979a.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.07766d.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.07766d.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.80979a.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.07766d.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet.e1d: %AddAssignWith.type.823 = facet_value %Cpp.long_long, (%AddAssignWith.impl_witness.144) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.f25: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i64, %AddAssignWith.facet.e1d) [concrete] -// CHECK:STDOUT: %.47e: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.f25, %AddAssignWith.facet.e1d [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.34f4c5.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.80979a.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.34f4c5.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.80979a.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.442: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.a8b) [concrete] -// CHECK:STDOUT: %.77c: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.442, %ImplicitAs.facet.a8b [concrete] +// CHECK:STDOUT: %int_1.d98: %i64 = int_value 1 [concrete] +// CHECK:STDOUT: %AddAssignWith.type.d51: type = facet_type <@AddAssignWith, @AddAssignWith(%i64)> [concrete] +// CHECK:STDOUT: %U.bf2: %ImplicitAs.type.0ec = symbolic_binding U, 0 [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.8f0746.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%U.bf2) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.8f0746.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.2 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.305: = impl_witness imports.%ImplicitAs.impl_witness_table.a87 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.7a4: %ImplicitAs.type.0ec = facet_value %i64, (%ImplicitAs.impl_witness.305) [concrete] +// CHECK:STDOUT: %AddAssignWith.impl_witness.610: = impl_witness imports.%AddAssignWith.impl_witness_table.442, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.6f7c53.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.0167bf.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.6f7c53.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.6f7c53.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.0167bf.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.6f7c53.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet.3d0: %AddAssignWith.type.d51 = facet_value %Cpp.long_long, (%AddAssignWith.impl_witness.610) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.55a: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i64, %AddAssignWith.facet.3d0) [concrete] +// CHECK:STDOUT: %.4c9: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.55a, %AddAssignWith.facet.3d0 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.57a765.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.0167bf.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.57a765.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.0167bf.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.3ae: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %.25e: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.3ae, %ImplicitAs.facet.7a4 [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.790b3b.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3369,29 +3369,29 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: .long_long = constants.%Cpp.long_long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.adef5f.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.337 = impl_witness_table (%Core.import_ref.adef5f.1), @Core.IntLiteral.as.ImplicitAs.impl.74b [concrete] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] -// CHECK:STDOUT: %Core.import_ref.8bf: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.e0ed43.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table.c98 = impl_witness_table (%Core.import_ref.8bf), @Cpp.long_long.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.e51: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.b43934.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.e0ed43.2)] -// CHECK:STDOUT: %Core.import_ref.adef5f.2: %i64.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i64.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.7ed = impl_witness_table (%Core.import_ref.adef5f.2), @i64.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.06c923.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.d6d = impl_witness_table (%Core.import_ref.06c923.1), @Core.IntLiteral.as.ImplicitAs.impl.e33 [concrete] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] +// CHECK:STDOUT: %Core.import_ref.634: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.8f0746.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table.442 = impl_witness_table (%Core.import_ref.634), @Cpp.long_long.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.c11: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.524923.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.8f0746.2)] +// CHECK:STDOUT: %Core.import_ref.06c923.2: %i64.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a87 = impl_witness_table (%Core.import_ref.06c923.2), @i64.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CompoundAssignmentLongLongAndRuntimeI64() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.003 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.003 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.d58 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.d58 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Cpp.long_long = var %a.var_patt // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc8: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc8: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc8: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long_long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc8_3: init %Cpp.long_long = converted %int_1.loc8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %Cpp.long_long = call %bound_method.loc8(%int_1.loc8) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc8_3: init %Cpp.long_long = converted %int_1.loc8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.b19] // CHECK:STDOUT: assign %a.var, %.loc8_3 // CHECK:STDOUT: %.loc8_13: type = splice_block %long_long.ref [concrete = constants.%Cpp.long_long] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -3399,38 +3399,38 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %Cpp.long_long = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.fdd = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.f57 = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i64: type = type_literal constants.%i64 [concrete = constants.%i64] -// CHECK:STDOUT: %impl.elem0.loc9: %.d4c = impl_witness_access constants.%ImplicitAs.impl_witness.35c, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.fc5] -// CHECK:STDOUT: %bound_method.loc9_16.1: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.37e] +// CHECK:STDOUT: %impl.elem0.loc9: %.f34 = impl_witness_access constants.%ImplicitAs.impl_witness.091, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a1b] +// CHECK:STDOUT: %bound_method.loc9_16.1: = bound_method %int_1.loc9, %impl.elem0.loc9 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.89f] // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Core.IntLiteral.as.ImplicitAs.impl.Convert.2(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_16.2: = bound_method %int_1.loc9, %specific_fn.loc9 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i64 = call %bound_method.loc9_16.2(%int_1.loc9) [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %.loc9_16.1: %i64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.0f3] -// CHECK:STDOUT: %.loc9_16.2: %i64 = converted %int_1.loc9, %.loc9_16.1 [concrete = constants.%int_1.0f3] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i64 = call %bound_method.loc9_16.2(%int_1.loc9) [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc9_16.1: %i64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.d98] +// CHECK:STDOUT: %.loc9_16.2: %i64 = converted %int_1.loc9, %.loc9_16.1 [concrete = constants.%int_1.d98] // CHECK:STDOUT: %b: %i64 = value_binding b, %.loc9_16.2 // CHECK:STDOUT: %a.ref: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc10_5: %.47e = impl_witness_access constants.%AddAssignWith.impl_witness.144, element0 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.80979a.2] +// CHECK:STDOUT: %impl.elem0.loc10_5: %.4c9 = impl_witness_access constants.%AddAssignWith.impl_witness.610, element0 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.0167bf.2] // CHECK:STDOUT: %bound_method.loc10_5.1: = bound_method %a.ref, %impl.elem0.loc10_5 -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.fb7 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.811) [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.fb7 = converted constants.%i64, %ImplicitAs.facet [concrete = constants.%ImplicitAs.facet.a8b] -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @Cpp.long_long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.34f4c5.1] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet [concrete = constants.%ImplicitAs.facet.7a4] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @Cpp.long_long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.57a765.1] // CHECK:STDOUT: %bound_method.loc10_5.2: = bound_method %a.ref, %specific_fn.loc10 -// CHECK:STDOUT: %.loc10_5.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.07766d.1 = specific_constant imports.%Core.Op.e51, @Cpp.long_long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.80979a.1] -// CHECK:STDOUT: %Op.ref: %Cpp.long_long.as.AddAssignWith.impl.Op.type.07766d.1 = name_ref Op, %.loc10_5.2 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.80979a.1] +// CHECK:STDOUT: %.loc10_5.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.6f7c53.1 = specific_constant imports.%Core.Op.c11, @Cpp.long_long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.0167bf.1] +// CHECK:STDOUT: %Op.ref: %Cpp.long_long.as.AddAssignWith.impl.Op.type.6f7c53.1 = name_ref Op, %.loc10_5.2 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.0167bf.1] // CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.bound: = bound_method %a.ref, %Op.ref -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Cpp.long_long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.a8b) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.34f4c5.2] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Cpp.long_long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.57a765.2] // CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %a.ref, %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc10_8: %.77c = impl_witness_access constants.%ImplicitAs.impl_witness.811, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc10_8: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_8: = bound_method %b.ref, %impl.elem0.loc10_8 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call: init %Cpp.long_long = call %bound_method.loc10_8(%b.ref) // 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.2dd605.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: // CHECK:STDOUT: } @@ -3449,33 +3449,33 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long: type = class_type @LongLong64 [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %i64.builtin: type = int_type signed, %int_64 [concrete] -// CHECK:STDOUT: %pattern_type.003: type = pattern_type %Cpp.long_long [concrete] +// CHECK:STDOUT: %pattern_type.d58: type = pattern_type %Cpp.long_long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.fb7: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.59e: = impl_witness imports.%ImplicitAs.impl_witness_table.337 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.fb7 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.59e) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f1d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.424: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.f1d, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ec: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.660: = impl_witness imports.%ImplicitAs.impl_witness_table.d6d [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.660) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.062: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.ca2: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.062, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %int_1.8b4: %Cpp.long_long = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.b19: %Cpp.long_long = int_value 1 [concrete] // CHECK:STDOUT: %Inc.type: type = facet_type <@Inc> [concrete] // CHECK:STDOUT: %Inc.impl_witness: = impl_witness imports.%Inc.impl_witness_table [concrete] // CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %Cpp.long_long, (%Inc.impl_witness) [concrete] -// CHECK:STDOUT: %Inc.WithSelf.Op.type.865: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%Inc.facet) [concrete] -// CHECK:STDOUT: %.bfd: type = fn_type_with_self_type %Inc.WithSelf.Op.type.865, %Inc.facet [concrete] +// CHECK:STDOUT: %Inc.WithSelf.Op.type.929: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%Inc.facet) [concrete] +// CHECK:STDOUT: %.ac5: type = fn_type_with_self_type %Inc.WithSelf.Op.type.929, %Inc.facet [concrete] // CHECK:STDOUT: %Cpp.long_long.as.Inc.impl.Op.type: type = fn_type @Cpp.long_long.as.Inc.impl.Op [concrete] // CHECK:STDOUT: %Cpp.long_long.as.Inc.impl.Op: %Cpp.long_long.as.Inc.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Dec.type: type = facet_type <@Dec> [concrete] // CHECK:STDOUT: %Dec.impl_witness: = impl_witness imports.%Dec.impl_witness_table [concrete] // CHECK:STDOUT: %Dec.facet: %Dec.type = facet_value %Cpp.long_long, (%Dec.impl_witness) [concrete] -// CHECK:STDOUT: %Dec.WithSelf.Op.type.39f: type = fn_type @Dec.WithSelf.Op, @Dec.WithSelf(%Dec.facet) [concrete] -// CHECK:STDOUT: %.1ca: type = fn_type_with_self_type %Dec.WithSelf.Op.type.39f, %Dec.facet [concrete] +// CHECK:STDOUT: %Dec.WithSelf.Op.type.2cb: type = fn_type @Dec.WithSelf.Op, @Dec.WithSelf(%Dec.facet) [concrete] +// CHECK:STDOUT: %.a4b: type = fn_type_with_self_type %Dec.WithSelf.Op.type.2cb, %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.790b3b.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3483,26 +3483,26 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: .long_long = constants.%Cpp.long_long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ade: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.337 = impl_witness_table (%Core.import_ref.ade), @Core.IntLiteral.as.ImplicitAs.impl.74b [concrete] -// CHECK:STDOUT: %Core.import_ref.f63b02.1: %Cpp.long_long.as.Inc.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.Inc.impl.Op] -// CHECK:STDOUT: %Inc.impl_witness_table = impl_witness_table (%Core.import_ref.f63b02.1), @Cpp.long_long.as.Inc.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.f63b02.2: %Cpp.long_long.as.Dec.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.Dec.impl.Op] -// CHECK:STDOUT: %Dec.impl_witness_table = impl_witness_table (%Core.import_ref.f63b02.2), @Cpp.long_long.as.Dec.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.06c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.d6d = impl_witness_table (%Core.import_ref.06c), @Core.IntLiteral.as.ImplicitAs.impl.e33 [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3475.1: %Cpp.long_long.as.Inc.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.Inc.impl.Op] +// CHECK:STDOUT: %Inc.impl_witness_table = impl_witness_table (%Core.import_ref.9c3475.1), @Cpp.long_long.as.Inc.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3475.2: %Cpp.long_long.as.Dec.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.Dec.impl.Op] +// CHECK:STDOUT: %Dec.impl_witness_table = impl_witness_table (%Core.import_ref.9c3475.2), @Cpp.long_long.as.Dec.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @IncrementDecrementLongLong() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.003 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.003 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.d58 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.d58 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Cpp.long_long = var %a.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc8: %.424 = impl_witness_access constants.%ImplicitAs.impl_witness.59e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc8: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc8: = bound_method %int_1, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.long_long = call %bound_method.loc8(%int_1) [concrete = constants.%int_1.8b4] -// CHECK:STDOUT: %.loc8_3: init %Cpp.long_long = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.8b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.long_long = call %bound_method.loc8(%int_1) [concrete = constants.%int_1.b19] +// CHECK:STDOUT: %.loc8_3: init %Cpp.long_long = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.b19] // CHECK:STDOUT: assign %a.var, %.loc8_3 // CHECK:STDOUT: %.loc8_13: type = splice_block %long_long.ref [concrete = constants.%Cpp.long_long] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -3510,14 +3510,14 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %Cpp.long_long = ref_binding a, %a.var // CHECK:STDOUT: %a.ref.loc9: ref %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc9: %.bfd = impl_witness_access constants.%Inc.impl_witness, element0 [concrete = constants.%Cpp.long_long.as.Inc.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc9: %.ac5 = impl_witness_access constants.%Inc.impl_witness, element0 [concrete = constants.%Cpp.long_long.as.Inc.impl.Op] // CHECK:STDOUT: %bound_method.loc9: = bound_method %a.ref.loc9, %impl.elem0.loc9 // CHECK:STDOUT: %Cpp.long_long.as.Inc.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9(%a.ref.loc9) // CHECK:STDOUT: %a.ref.loc10: ref %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc10: %.1ca = impl_witness_access constants.%Dec.impl_witness, element0 [concrete = constants.%Cpp.long_long.as.Dec.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc10: %.a4b = 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.2dd605.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: // CHECK:STDOUT: } @@ -3539,92 +3539,92 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %UInt.generic: %UInt.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %u64: type = class_type @UInt, @UInt(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.fae: type = pattern_type %Cpp.unsigned_long_long [concrete] +// CHECK:STDOUT: %pattern_type.4cd: type = pattern_type %Cpp.unsigned_long_long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.377: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.unsigned_long_long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.1c8: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.unsigned_long_long)> [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %ImplicitAs.type.9b6: type = facet_type <@ImplicitAs, @ImplicitAs(%u64)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.b25: = impl_witness imports.%ImplicitAs.impl_witness_table.142 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.8ec: %ImplicitAs.type.377 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.b25) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.3b4: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.unsigned_long_long, %ImplicitAs.facet.8ec) [concrete] -// CHECK:STDOUT: %.88e: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.3b4, %ImplicitAs.facet.8ec [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.14f: type = facet_type <@ImplicitAs, @ImplicitAs(%u64)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.fa4: = impl_witness imports.%ImplicitAs.impl_witness_table.bd1 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.e8c: %ImplicitAs.type.1c8 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.fa4) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6e2: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.unsigned_long_long, %ImplicitAs.facet.e8c) [concrete] +// CHECK:STDOUT: %.ee9: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6e2, %ImplicitAs.facet.e8c [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce [concrete] -// CHECK:STDOUT: %int_1.7f2: %Cpp.unsigned_long_long = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.877: %Cpp.unsigned_long_long = int_value 1 [concrete] // CHECK:STDOUT: %ULongLongResult: type = class_type @ULongLongResult [concrete] -// CHECK:STDOUT: %pattern_type.b26: type = pattern_type %ULongLongResult [concrete] +// CHECK:STDOUT: %pattern_type.97e: type = pattern_type %ULongLongResult [concrete] // CHECK:STDOUT: %PassULongLong.cpp_overload_set.type: type = cpp_overload_set_type @PassULongLong.cpp_overload_set [concrete] // CHECK:STDOUT: %PassULongLong.cpp_overload_set.value: %PassULongLong.cpp_overload_set.type = cpp_overload_set_value @PassULongLong.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.040: type = ptr_type %ULongLongResult [concrete] -// CHECK:STDOUT: %PassULongLong__carbon_thunk.type.5cbe77.1: type = fn_type @PassULongLong__carbon_thunk.1 [concrete] -// CHECK:STDOUT: %PassULongLong__carbon_thunk.fb9213.1: %PassULongLong__carbon_thunk.type.5cbe77.1 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.597: type = pattern_type %u64 [concrete] +// CHECK:STDOUT: %ptr.130: type = ptr_type %ULongLongResult [concrete] +// CHECK:STDOUT: %PassULongLong__carbon_thunk.type.76ef5b.1: type = fn_type @PassULongLong__carbon_thunk.1 [concrete] +// CHECK:STDOUT: %PassULongLong__carbon_thunk.030145.1: %PassULongLong__carbon_thunk.type.76ef5b.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.b35: type = pattern_type %u64 [concrete] // CHECK:STDOUT: %To.fe9: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2, @Core.IntLiteral.as.ImplicitAs.impl.501(%To.fe9) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.498: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.248: = impl_witness imports.%ImplicitAs.impl_witness_table.0c6, @Core.IntLiteral.as.ImplicitAs.impl.501(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.dbe: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2, @Core.IntLiteral.as.ImplicitAs.impl.501(%int_64) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.b79: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.dbe = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.b50: %ImplicitAs.type.9b6 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.248) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.a9d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%u64, %ImplicitAs.facet.b50) [concrete] -// CHECK:STDOUT: %.200: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.a9d, %ImplicitAs.facet.b50 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.74b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.b79 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.b79, @Core.IntLiteral.as.ImplicitAs.impl.Convert.2(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.231: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.8a8: %u64 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2, @Core.IntLiteral.as.ImplicitAs.impl.b68(%To.fe9) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.170: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.9c4: = impl_witness imports.%ImplicitAs.impl_witness_table.42f, @Core.IntLiteral.as.ImplicitAs.impl.b68(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.b18: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.2, @Core.IntLiteral.as.ImplicitAs.impl.b68(%int_64) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.633: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.b18 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.d29: %ImplicitAs.type.14f = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.9c4) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.8cc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%u64, %ImplicitAs.facet.d29) [concrete] +// CHECK:STDOUT: %.93e: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.8cc, %ImplicitAs.facet.d29 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.eb0: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.633 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.633, @Core.IntLiteral.as.ImplicitAs.impl.Convert.2(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.7e7: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.01f: %u64 = int_value 1 [concrete] // CHECK:STDOUT: %ULongResult: type = class_type @ULongResult [concrete] -// CHECK:STDOUT: %pattern_type.66d: type = pattern_type %ULongResult [concrete] -// CHECK:STDOUT: %ptr.175: type = ptr_type %ULongResult [concrete] -// CHECK:STDOUT: %PassULongLong__carbon_thunk.type.5cbe77.2: type = fn_type @PassULongLong__carbon_thunk.2 [concrete] -// CHECK:STDOUT: %PassULongLong__carbon_thunk.fb9213.2: %PassULongLong__carbon_thunk.type.5cbe77.2 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.97f: type = pattern_type %ULongResult [concrete] +// CHECK:STDOUT: %ptr.e40: type = ptr_type %ULongResult [concrete] +// CHECK:STDOUT: %PassULongLong__carbon_thunk.type.76ef5b.2: type = fn_type @PassULongLong__carbon_thunk.2 [concrete] +// CHECK:STDOUT: %PassULongLong__carbon_thunk.030145.2: %PassULongLong__carbon_thunk.type.76ef5b.2 = struct_value () [concrete] // CHECK:STDOUT: %Float.type: type = generic_class_type @Float [concrete] // CHECK:STDOUT: %Float.generic: %Float.type = struct_value () [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.ca1: type = facet_type <@As, @As(%Cpp.unsigned_long_long)> [concrete] -// CHECK:STDOUT: %As.impl_witness.6fb: = impl_witness imports.%As.impl_witness_table.846 [concrete] -// CHECK:STDOUT: %As.facet: %As.type.ca1 = facet_value Core.IntLiteral, (%As.impl_witness.6fb) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.6ac: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%Cpp.unsigned_long_long, %As.facet) [concrete] -// CHECK:STDOUT: %.7b2: type = fn_type_with_self_type %As.WithSelf.Convert.type.6ac, %As.facet [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.7f6: type = facet_type <@As, @As(%Cpp.unsigned_long_long)> [concrete] +// CHECK:STDOUT: %As.impl_witness.f99: = impl_witness imports.%As.impl_witness_table.14e [concrete] +// CHECK:STDOUT: %As.facet: %As.type.7f6 = facet_value Core.IntLiteral, (%As.impl_witness.f99) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.a98: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%Cpp.unsigned_long_long, %As.facet) [concrete] +// CHECK:STDOUT: %.912: type = fn_type_with_self_type %As.WithSelf.Convert.type.a98, %As.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type: type = fn_type @Core.IntLiteral.as.As.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert: %Core.IntLiteral.as.As.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.f7e: = impl_witness imports.%ImplicitAs.impl_witness_table.1a4 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.d2a: %ImplicitAs.type.ace = facet_value %Cpp.unsigned_long_long, (%ImplicitAs.impl_witness.f7e) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.bdf: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.d2a) [concrete] -// CHECK:STDOUT: %.ed4: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.bdf, %ImplicitAs.facet.d2a [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.83c: = impl_witness imports.%ImplicitAs.impl_witness_table.2bc [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.fdc: %ImplicitAs.type.7cb = facet_value %Cpp.unsigned_long_long, (%ImplicitAs.impl_witness.83c) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.a28: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.fdc) [concrete] +// CHECK:STDOUT: %.27b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.a28, %ImplicitAs.facet.fdc [concrete] // CHECK:STDOUT: %Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert.type: type = fn_type @Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert: %Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.7f2, %Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.a26 [concrete] +// CHECK:STDOUT: %Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.877, %Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert [concrete] +// CHECK:STDOUT: %array_type: type = array_type %int_1.5b8, %f32.c73 [concrete] // CHECK:STDOUT: %f32.9b3: type = float_type %int_32, f32 [concrete] -// CHECK:STDOUT: %pattern_type.aab: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.18b: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %float.6da: Core.FloatLiteral = float_literal_value 10e-1 [concrete] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.FloatLiteral) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%float.6da) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.d0d: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.a26)> [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.65d: = impl_witness imports.%ImplicitAs.impl_witness_table.234, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.f03 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.82a: %ImplicitAs.type.d0d = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.65d) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c87: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.a26, %ImplicitAs.facet.82a) [concrete] -// CHECK:STDOUT: %.3a8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c87, %ImplicitAs.facet.82a [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.aaa: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.2ec: %f32.a26 = float_value 1 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%float.2ec) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.ed3: type = facet_type <@ImplicitAs, @ImplicitAs(%f32.c73)> [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%N) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.303: = impl_witness imports.%ImplicitAs.impl_witness_table.393, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.a62 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.65e: %ImplicitAs.type.ed3 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.303) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2e4: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f32.c73, %ImplicitAs.facet.65e) [concrete] +// CHECK:STDOUT: %.17b: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2e4, %ImplicitAs.facet.65e [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.6da, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// 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.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc24_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [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: %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] @@ -3633,7 +3633,7 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { -// CHECK:STDOUT: .CppCompat = %CppCompat.463205.1 +// CHECK:STDOUT: .CppCompat = %CppCompat.f0dbf9.1 // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: .UInt = %Core.UInt // CHECK:STDOUT: .Float = %Core.Float @@ -3650,67 +3650,67 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.CppCompat: = import_ref Core//prelude, CppCompat, loaded -// CHECK:STDOUT: %CppCompat.463205.1: = namespace %Core.CppCompat, [concrete] { +// CHECK:STDOUT: %CppCompat.f0dbf9.1: = namespace %Core.CppCompat, [concrete] { // CHECK:STDOUT: .ULongLong64 = %Core.ULongLong64 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.ULongLong64: type = import_ref Core//prelude/types/cpp/int, ULongLong64, loaded [concrete = constants.%Cpp.unsigned_long_long] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.adef5f.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.142 = impl_witness_table (%Core.import_ref.adef5f.1), @Core.IntLiteral.as.ImplicitAs.impl.194 [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.06c923.1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.ae6 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.bd1 = impl_witness_table (%Core.import_ref.06c923.1), @Core.IntLiteral.as.ImplicitAs.impl.f5b [concrete] // CHECK:STDOUT: %ULongLongResult.decl: type = class_decl @ULongLongResult [concrete = constants.%ULongLongResult] {} {} // CHECK:STDOUT: %PassULongLong.cpp_overload_set.value: %PassULongLong.cpp_overload_set.type = cpp_overload_set_value @PassULongLong.cpp_overload_set [concrete = constants.%PassULongLong.cpp_overload_set.value] -// CHECK:STDOUT: %PassULongLong__carbon_thunk.decl.1b9bd8.1: %PassULongLong__carbon_thunk.type.5cbe77.1 = fn_decl @PassULongLong__carbon_thunk.1 [concrete = constants.%PassULongLong__carbon_thunk.fb9213.1] { +// CHECK:STDOUT: %PassULongLong__carbon_thunk.decl.3ca866.1: %PassULongLong__carbon_thunk.type.76ef5b.1 = fn_decl @PassULongLong__carbon_thunk.1 [concrete = constants.%PassULongLong__carbon_thunk.030145.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Core.UInt: %UInt.type = import_ref Core//prelude/types/uint, UInt, loaded [concrete = constants.%UInt.generic] -// CHECK:STDOUT: %Core.import_ref.e9f: @Core.IntLiteral.as.ImplicitAs.impl.501.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.eb6) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.501.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.498)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0c6 = impl_witness_table (%Core.import_ref.e9f), @Core.IntLiteral.as.ImplicitAs.impl.501 [concrete] +// CHECK:STDOUT: %Core.import_ref.aa5: @Core.IntLiteral.as.ImplicitAs.impl.b68.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.199) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.b68.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.170)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.42f = impl_witness_table (%Core.import_ref.aa5), @Core.IntLiteral.as.ImplicitAs.impl.b68 [concrete] // CHECK:STDOUT: %ULongResult.decl: type = class_decl @ULongResult [concrete = constants.%ULongResult] {} {} -// CHECK:STDOUT: %PassULongLong__carbon_thunk.decl.1b9bd8.2: %PassULongLong__carbon_thunk.type.5cbe77.2 = fn_decl @PassULongLong__carbon_thunk.2 [concrete = constants.%PassULongLong__carbon_thunk.fb9213.2] { +// CHECK:STDOUT: %PassULongLong__carbon_thunk.decl.3ca866.2: %PassULongLong__carbon_thunk.type.76ef5b.2 = fn_decl @PassULongLong__carbon_thunk.2 [concrete = constants.%PassULongLong__carbon_thunk.030145.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Float: %Float.type = import_ref Core//prelude/types/float, Float, loaded [concrete = constants.%Float.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/operators/as, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.adef5f.2: %Core.IntLiteral.as.As.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] -// CHECK:STDOUT: %As.impl_witness_table.846 = impl_witness_table (%Core.import_ref.adef5f.2), @Core.IntLiteral.as.As.impl.0c0 [concrete] -// CHECK:STDOUT: %Core.import_ref.adef5f.3: %Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.1a4 = impl_witness_table (%Core.import_ref.adef5f.3), @Cpp.unsigned_long_long.as.ImplicitAs.impl.3d6 [concrete] -// CHECK:STDOUT: %Core.import_ref.63cb: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.234 = impl_witness_table (%Core.import_ref.63cb), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/operators/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.06c923.2: %Core.IntLiteral.as.As.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] +// CHECK:STDOUT: %As.impl_witness_table.14e = impl_witness_table (%Core.import_ref.06c923.2), @Core.IntLiteral.as.As.impl.f3d [concrete] +// CHECK:STDOUT: %Core.import_ref.06c923.3: %Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.2bc = impl_witness_table (%Core.import_ref.06c923.3), @Cpp.unsigned_long_long.as.ImplicitAs.impl.437 [concrete] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.393 = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_unsigned_long_long.patt: %pattern_type.fae = value_binding_pattern cpp_unsigned_long_long [concrete] +// CHECK:STDOUT: %cpp_unsigned_long_long.patt: %pattern_type.4cd = value_binding_pattern cpp_unsigned_long_long [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc15: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc15_34: type = splice_block %unsigned_long_long.ref.loc15 [concrete = constants.%Cpp.unsigned_long_long] { // CHECK:STDOUT: %Cpp.ref.loc15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %unsigned_long_long.ref.loc15: type = name_ref unsigned_long_long, constants.%Cpp.unsigned_long_long [concrete = constants.%Cpp.unsigned_long_long] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc15: %.88e = impl_witness_access constants.%ImplicitAs.impl_witness.b25, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] +// CHECK:STDOUT: %impl.elem0.loc15: %.ee9 = impl_witness_access constants.%ImplicitAs.impl_witness.fa4, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce] // CHECK:STDOUT: %bound_method.loc15: = bound_method %int_1.loc15, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %Cpp.unsigned_long_long = call %bound_method.loc15(%int_1.loc15) [concrete = constants.%int_1.7f2] -// CHECK:STDOUT: %.loc15_56.1: %Cpp.unsigned_long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%int_1.7f2] -// CHECK:STDOUT: %.loc15_56.2: %Cpp.unsigned_long_long = converted %int_1.loc15, %.loc15_56.1 [concrete = constants.%int_1.7f2] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %Cpp.unsigned_long_long = call %bound_method.loc15(%int_1.loc15) [concrete = constants.%int_1.877] +// CHECK:STDOUT: %.loc15_56.1: %Cpp.unsigned_long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%int_1.877] +// CHECK:STDOUT: %.loc15_56.2: %Cpp.unsigned_long_long = converted %int_1.loc15, %.loc15_56.1 [concrete = constants.%int_1.877] // CHECK:STDOUT: %cpp_unsigned_long_long: %Cpp.unsigned_long_long = value_binding cpp_unsigned_long_long, %.loc15_56.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_unsigned_long_long_result.patt: %pattern_type.b26 = value_binding_pattern cpp_unsigned_long_long_result [concrete] +// CHECK:STDOUT: %cpp_unsigned_long_long_result.patt: %pattern_type.97e = value_binding_pattern cpp_unsigned_long_long_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc16_67: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassULongLong.ref.loc16: %PassULongLong.cpp_overload_set.type = name_ref PassULongLong, imports.%PassULongLong.cpp_overload_set.value [concrete = constants.%PassULongLong.cpp_overload_set.value] // CHECK:STDOUT: %cpp_unsigned_long_long.ref.loc16: %Cpp.unsigned_long_long = name_ref cpp_unsigned_long_long, %cpp_unsigned_long_long // CHECK:STDOUT: %.loc16_107.1: ref %ULongLongResult = temporary_storage -// CHECK:STDOUT: %addr.loc16: %ptr.040 = addr_of %.loc16_107.1 -// CHECK:STDOUT: %PassULongLong__carbon_thunk.call.loc16: init %empty_tuple.type = call imports.%PassULongLong__carbon_thunk.decl.1b9bd8.1(%cpp_unsigned_long_long.ref.loc16, %addr.loc16) +// CHECK:STDOUT: %addr.loc16: %ptr.130 = addr_of %.loc16_107.1 +// CHECK:STDOUT: %PassULongLong__carbon_thunk.call.loc16: init %empty_tuple.type = call imports.%PassULongLong__carbon_thunk.decl.3ca866.1(%cpp_unsigned_long_long.ref.loc16, %addr.loc16) // CHECK:STDOUT: %.loc16_107.2: init %ULongLongResult to %.loc16_107.1 = mark_in_place_init %PassULongLong__carbon_thunk.call.loc16 // CHECK:STDOUT: %.loc16_48: type = splice_block %ULongLongResult.ref.loc16 [concrete = constants.%ULongLongResult] { // CHECK:STDOUT: %Cpp.ref.loc16_45: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -3720,24 +3720,24 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.loc16_107.4: %ULongLongResult = acquire_value %.loc16_107.3 // CHECK:STDOUT: %cpp_unsigned_long_long_result: %ULongLongResult = value_binding cpp_unsigned_long_long_result, %.loc16_107.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_compat_ulong_long.patt: %pattern_type.fae = value_binding_pattern cpp_compat_ulong_long [concrete] +// CHECK:STDOUT: %cpp_compat_ulong_long.patt: %pattern_type.4cd = value_binding_pattern cpp_compat_ulong_long [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_unsigned_long_long.ref.loc18: %Cpp.unsigned_long_long = name_ref cpp_unsigned_long_long, %cpp_unsigned_long_long // CHECK:STDOUT: %.loc18: type = splice_block %ULongLong64.ref [concrete = constants.%Cpp.unsigned_long_long] { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %CppCompat.ref: = name_ref CppCompat, imports.%CppCompat.463205.1 [concrete = imports.%CppCompat.463205.1] +// CHECK:STDOUT: %CppCompat.ref: = name_ref CppCompat, imports.%CppCompat.f0dbf9.1 [concrete = imports.%CppCompat.f0dbf9.1] // CHECK:STDOUT: %ULongLong64.ref: type = name_ref ULongLong64, imports.%Core.ULongLong64 [concrete = constants.%Cpp.unsigned_long_long] // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_compat_ulong_long: %Cpp.unsigned_long_long = value_binding cpp_compat_ulong_long, %cpp_unsigned_long_long.ref.loc18 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_compat_ulong_long_result.patt: %pattern_type.b26 = value_binding_pattern cpp_compat_ulong_long_result [concrete] +// CHECK:STDOUT: %cpp_compat_ulong_long_result.patt: %pattern_type.97e = value_binding_pattern cpp_compat_ulong_long_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc19_66: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassULongLong.ref.loc19: %PassULongLong.cpp_overload_set.type = name_ref PassULongLong, imports.%PassULongLong.cpp_overload_set.value [concrete = constants.%PassULongLong.cpp_overload_set.value] // CHECK:STDOUT: %cpp_compat_ulong_long.ref: %Cpp.unsigned_long_long = name_ref cpp_compat_ulong_long, %cpp_compat_ulong_long // CHECK:STDOUT: %.loc19_105.1: ref %ULongLongResult = temporary_storage -// CHECK:STDOUT: %addr.loc19: %ptr.040 = addr_of %.loc19_105.1 -// CHECK:STDOUT: %PassULongLong__carbon_thunk.call.loc19: init %empty_tuple.type = call imports.%PassULongLong__carbon_thunk.decl.1b9bd8.1(%cpp_compat_ulong_long.ref, %addr.loc19) +// CHECK:STDOUT: %addr.loc19: %ptr.130 = addr_of %.loc19_105.1 +// CHECK:STDOUT: %PassULongLong__carbon_thunk.call.loc19: init %empty_tuple.type = call imports.%PassULongLong__carbon_thunk.decl.3ca866.1(%cpp_compat_ulong_long.ref, %addr.loc19) // CHECK:STDOUT: %.loc19_105.2: init %ULongLongResult to %.loc19_105.1 = mark_in_place_init %PassULongLong__carbon_thunk.call.loc19 // CHECK:STDOUT: %.loc19_47: type = splice_block %ULongLongResult.ref.loc19 [concrete = constants.%ULongLongResult] { // CHECK:STDOUT: %Cpp.ref.loc19_44: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -3747,27 +3747,27 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.loc19_105.4: %ULongLongResult = acquire_value %.loc19_105.3 // CHECK:STDOUT: %cpp_compat_ulong_long_result: %ULongLongResult = value_binding cpp_compat_ulong_long_result, %.loc19_105.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_u64.patt: %pattern_type.597 = value_binding_pattern carbon_u64 [concrete] +// CHECK:STDOUT: %carbon_u64.patt: %pattern_type.b35 = value_binding_pattern carbon_u64 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc21: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %u64: type = type_literal constants.%u64 [concrete = constants.%u64] -// CHECK:STDOUT: %impl.elem0.loc21: %.200 = impl_witness_access constants.%ImplicitAs.impl_witness.248, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.b79] -// CHECK:STDOUT: %bound_method.loc21_25.1: = bound_method %int_1.loc21, %impl.elem0.loc21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.74b] +// CHECK:STDOUT: %impl.elem0.loc21: %.93e = impl_witness_access constants.%ImplicitAs.impl_witness.9c4, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.633] +// CHECK:STDOUT: %bound_method.loc21_25.1: = bound_method %int_1.loc21, %impl.elem0.loc21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.eb0] // CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Core.IntLiteral.as.ImplicitAs.impl.Convert.2(constants.%int_64) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc21_25.2: = bound_method %int_1.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.231] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %u64 = call %bound_method.loc21_25.2(%int_1.loc21) [concrete = constants.%int_1.8a8] -// CHECK:STDOUT: %.loc21_25.1: %u64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_1.8a8] -// CHECK:STDOUT: %.loc21_25.2: %u64 = converted %int_1.loc21, %.loc21_25.1 [concrete = constants.%int_1.8a8] +// CHECK:STDOUT: %bound_method.loc21_25.2: = bound_method %int_1.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.7e7] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %u64 = call %bound_method.loc21_25.2(%int_1.loc21) [concrete = constants.%int_1.01f] +// CHECK:STDOUT: %.loc21_25.1: %u64 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_1.01f] +// CHECK:STDOUT: %.loc21_25.2: %u64 = converted %int_1.loc21, %.loc21_25.1 [concrete = constants.%int_1.01f] // CHECK:STDOUT: %carbon_u64: %u64 = value_binding carbon_u64, %.loc21_25.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_u64_result.patt: %pattern_type.66d = value_binding_pattern carbon_u64_result [concrete] +// CHECK:STDOUT: %carbon_u64_result.patt: %pattern_type.97f = value_binding_pattern carbon_u64_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc22_51: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassULongLong.ref.loc22: %PassULongLong.cpp_overload_set.type = name_ref PassULongLong, imports.%PassULongLong.cpp_overload_set.value [concrete = constants.%PassULongLong.cpp_overload_set.value] // CHECK:STDOUT: %carbon_u64.ref: %u64 = name_ref carbon_u64, %carbon_u64 // CHECK:STDOUT: %.loc22_79.1: ref %ULongResult = temporary_storage -// CHECK:STDOUT: %addr.loc22: %ptr.175 = addr_of %.loc22_79.1 -// CHECK:STDOUT: %PassULongLong__carbon_thunk.call.loc22: init %empty_tuple.type = call imports.%PassULongLong__carbon_thunk.decl.1b9bd8.2(%carbon_u64.ref, %addr.loc22) +// CHECK:STDOUT: %addr.loc22: %ptr.e40 = addr_of %.loc22_79.1 +// CHECK:STDOUT: %PassULongLong__carbon_thunk.call.loc22: init %empty_tuple.type = call imports.%PassULongLong__carbon_thunk.decl.3ca866.2(%carbon_u64.ref, %addr.loc22) // CHECK:STDOUT: %.loc22_79.2: init %ULongResult to %.loc22_79.1 = mark_in_place_init %PassULongLong__carbon_thunk.call.loc22 // CHECK:STDOUT: %.loc22_36: type = splice_block %ULongResult.ref [concrete = constants.%ULongResult] { // CHECK:STDOUT: %Cpp.ref.loc22_33: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -3777,35 +3777,35 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.loc22_79.4: %ULongResult = acquire_value %.loc22_79.3 // CHECK:STDOUT: %carbon_u64_result: %ULongResult = value_binding carbon_u64_result, %.loc22_79.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.aab = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.aab = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.18b = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.18b = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %array_type = var %a.var_patt // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 10e-1 [concrete = constants.%float.6da] // CHECK:STDOUT: %.loc24_64.1: %tuple.type = tuple_literal (%float) [concrete = constants.%tuple] -// CHECK:STDOUT: %impl.elem0.loc24_64: %.3a8 = impl_witness_access constants.%ImplicitAs.impl_witness.65d, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.2cd] +// CHECK:STDOUT: %impl.elem0.loc24_64: %.17b = impl_witness_access constants.%ImplicitAs.impl_witness.303, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.b37] // CHECK:STDOUT: %bound_method.loc24_64.1: = bound_method %float, %impl.elem0.loc24_64 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc24: = specific_function %impl.elem0.loc24_64, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc24_64.2: = bound_method %float, %specific_fn.loc24 [concrete = constants.%bound_method.aaa] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.a26 = call %bound_method.loc24_64.2(%float) [concrete = constants.%float.2ec] -// CHECK:STDOUT: %.loc24_64.2: init %f32.a26 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.2ec] +// CHECK:STDOUT: %bound_method.loc24_64.2: = bound_method %float, %specific_fn.loc24 [concrete = constants.%bound_method.3e4] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f32.c73 = call %bound_method.loc24_64.2(%float) [concrete = constants.%float.943] +// CHECK:STDOUT: %.loc24_64.2: init %f32.c73 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.943] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %.loc24_64.3: ref %f32.a26 = array_index %a.var, %int_0 -// CHECK:STDOUT: %.loc24_64.4: init %f32.a26 to %.loc24_64.3 = in_place_init %.loc24_64.2 [concrete = constants.%float.2ec] +// CHECK:STDOUT: %.loc24_64.3: ref %f32.c73 = array_index %a.var, %int_0 +// CHECK:STDOUT: %.loc24_64.4: init %f32.c73 to %.loc24_64.3 = in_place_init %.loc24_64.2 [concrete = constants.%float.943] // CHECK:STDOUT: %.loc24_64.5: init %array_type to %a.var = array_init (%.loc24_64.4) [concrete = constants.%array] // CHECK:STDOUT: %.loc24_3: init %array_type = converted %.loc24_64.1, %.loc24_64.5 [concrete = constants.%array] // CHECK:STDOUT: assign %a.var, %.loc24_3 // CHECK:STDOUT: %.loc24_55: type = splice_block %array_type [concrete = constants.%array_type] { -// CHECK:STDOUT: %f32: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] +// CHECK:STDOUT: %f32: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] // CHECK:STDOUT: %int_1.loc24: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %Cpp.ref.loc24: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %unsigned_long_long.ref.loc24: type = name_ref unsigned_long_long, constants.%Cpp.unsigned_long_long [concrete = constants.%Cpp.unsigned_long_long] -// CHECK:STDOUT: %impl.elem0.loc24_30.1: %.7b2 = impl_witness_access constants.%As.impl_witness.6fb, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc24_30.1: %.912 = impl_witness_access constants.%As.impl_witness.f99, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] // CHECK:STDOUT: %bound_method.loc24_30.1: = bound_method %int_1.loc24, %impl.elem0.loc24_30.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %Cpp.unsigned_long_long = call %bound_method.loc24_30.1(%int_1.loc24) [concrete = constants.%int_1.7f2] -// CHECK:STDOUT: %.loc24_30.1: %Cpp.unsigned_long_long = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.7f2] -// CHECK:STDOUT: %.loc24_30.2: %Cpp.unsigned_long_long = converted %int_1.loc24, %.loc24_30.1 [concrete = constants.%int_1.7f2] -// CHECK:STDOUT: %impl.elem0.loc24_30.2: %.ed4 = impl_witness_access constants.%ImplicitAs.impl_witness.f7e, element0 [concrete = constants.%Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %Cpp.unsigned_long_long = call %bound_method.loc24_30.1(%int_1.loc24) [concrete = constants.%int_1.877] +// CHECK:STDOUT: %.loc24_30.1: %Cpp.unsigned_long_long = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.877] +// CHECK:STDOUT: %.loc24_30.2: %Cpp.unsigned_long_long = converted %int_1.loc24, %.loc24_30.1 [concrete = constants.%int_1.877] +// CHECK:STDOUT: %impl.elem0.loc24_30.2: %.27b = impl_witness_access constants.%ImplicitAs.impl_witness.83c, element0 [concrete = constants.%Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc24_30.2: = bound_method %.loc24_30.2, %impl.elem0.loc24_30.2 [concrete = constants.%Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.loc24_30.2(%.loc24_30.2) [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc24_30.3: Core.IntLiteral = value_of_initializer %Cpp.unsigned_long_long.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.5b8] @@ -3813,7 +3813,7 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %array_type: type = array_type %.loc24_30.4, %f32 [concrete = constants.%array_type] // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %array_type = ref_binding a, %a.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.3 +// 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: %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) @@ -3826,7 +3826,7 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.a26) { +// CHECK:STDOUT: fn @Destroy.Op.loc24_3.2(%self.param: ref %f32.c73) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3843,26 +3843,26 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.unsigned_long_long: type = class_type @ULongLong64 [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %u64.builtin: type = int_type unsigned, %int_64 [concrete] -// CHECK:STDOUT: %pattern_type.fae: type = pattern_type %Cpp.unsigned_long_long [concrete] +// CHECK:STDOUT: %pattern_type.4cd: type = pattern_type %Cpp.unsigned_long_long [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.377: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.unsigned_long_long)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.1c8: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.unsigned_long_long)> [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.b25: = impl_witness imports.%ImplicitAs.impl_witness_table.142 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.377 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.b25) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.3b4: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.unsigned_long_long, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.88e: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.3b4, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.fa4: = impl_witness imports.%ImplicitAs.impl_witness_table.bd1 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.1c8 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.fa4) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6e2: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.unsigned_long_long, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.ee9: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6e2, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] -// CHECK:STDOUT: %int_1.7f2: %Cpp.unsigned_long_long = int_value 1 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.35e: = impl_witness imports.%Copy.impl_witness_table.427 [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Cpp.unsigned_long_long, (%Copy.impl_witness.35e) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.a38: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.689: type = fn_type_with_self_type %Copy.WithSelf.Op.type.a38, %Copy.facet [concrete] +// CHECK:STDOUT: %int_1.877: %Cpp.unsigned_long_long = int_value 1 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.15f: = impl_witness imports.%Copy.impl_witness_table.217 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Cpp.unsigned_long_long, (%Copy.impl_witness.15f) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.a3f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.294: type = fn_type_with_self_type %Copy.WithSelf.Op.type.a3f, %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.790b3b.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3870,24 +3870,24 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: .unsigned_long_long = constants.%Cpp.unsigned_long_long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ade: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.142 = impl_witness_table (%Core.import_ref.ade), @Core.IntLiteral.as.ImplicitAs.impl.194 [concrete] -// CHECK:STDOUT: %Core.import_ref.f63: %Cpp.unsigned_long_long.as.Copy.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.unsigned_long_long.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.427 = impl_witness_table (%Core.import_ref.f63), @Cpp.unsigned_long_long.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.06c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.bd1 = impl_witness_table (%Core.import_ref.06c), @Core.IntLiteral.as.ImplicitAs.impl.f5b [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Cpp.unsigned_long_long.as.Copy.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.unsigned_long_long.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.217 = impl_witness_table (%Core.import_ref.9c3), @Cpp.unsigned_long_long.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CopyUnsignedLongLong() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.fae = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.fae = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.4cd = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.4cd = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Cpp.unsigned_long_long = var %a.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc8: %.88e = impl_witness_access constants.%ImplicitAs.impl_witness.b25, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc8: %.ee9 = impl_witness_access constants.%ImplicitAs.impl_witness.fa4, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc8: = bound_method %int_1, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.unsigned_long_long = call %bound_method.loc8(%int_1) [concrete = constants.%int_1.7f2] -// CHECK:STDOUT: %.loc8_3: init %Cpp.unsigned_long_long = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.7f2] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.unsigned_long_long = call %bound_method.loc8(%int_1) [concrete = constants.%int_1.877] +// CHECK:STDOUT: %.loc8_3: init %Cpp.unsigned_long_long = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.877] // CHECK:STDOUT: assign %a.var, %.loc8_3 // CHECK:STDOUT: %.loc8_13: type = splice_block %unsigned_long_long.ref.loc8 [concrete = constants.%Cpp.unsigned_long_long] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -3895,13 +3895,13 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %Cpp.unsigned_long_long = ref_binding a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.fae = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.fae = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.4cd = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.4cd = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %Cpp.unsigned_long_long = var %b.var_patt // CHECK:STDOUT: %a.ref: ref %Cpp.unsigned_long_long = name_ref a, %a // CHECK:STDOUT: %.loc9_42: %Cpp.unsigned_long_long = acquire_value %a.ref -// CHECK:STDOUT: %impl.elem0.loc9: %.689 = impl_witness_access constants.%Copy.impl_witness.35e, element0 [concrete = constants.%Cpp.unsigned_long_long.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc9: %.294 = impl_witness_access constants.%Copy.impl_witness.15f, element0 [concrete = constants.%Cpp.unsigned_long_long.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_42, %impl.elem0.loc9 // CHECK:STDOUT: %Cpp.unsigned_long_long.as.Copy.impl.Op.call: init %Cpp.unsigned_long_long = call %bound_method.loc9(%.loc9_42) // CHECK:STDOUT: assign %b.var, %Cpp.unsigned_long_long.as.Copy.impl.Op.call @@ -3910,9 +3910,9 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %unsigned_long_long.ref.loc9: type = name_ref unsigned_long_long, constants.%Cpp.unsigned_long_long [concrete = constants.%Cpp.unsigned_long_long] // CHECK:STDOUT: } // CHECK:STDOUT: %b: ref %Cpp.unsigned_long_long = ref_binding b, %b.var -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.1a2547.2 // 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.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %a.var, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call %Destroy.Op.bound.loc8(%a.var) // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/primitive_types/void_pointer.carbon b/toolchain/check/testdata/interop/cpp/primitive_types/void_pointer.carbon index 2c2c1c6fec0a..77f7675671ea 100644 --- a/toolchain/check/testdata/interop/cpp/primitive_types/void_pointer.carbon +++ b/toolchain/check/testdata/interop/cpp/primitive_types/void_pointer.carbon @@ -140,21 +140,21 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] -// CHECK:STDOUT: %ptr.2d0: type = ptr_type %Cpp.void [concrete] -// CHECK:STDOUT: %pattern_type.2c3: type = pattern_type %ptr.2d0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.00e: type = facet_type <@ImplicitAs, @ImplicitAs(%ptr.2d0)> [concrete] +// CHECK:STDOUT: %ptr.00a: type = ptr_type %Cpp.void [concrete] +// CHECK:STDOUT: %pattern_type.712: type = pattern_type %ptr.00a [concrete] +// CHECK:STDOUT: %ImplicitAs.type.c59: type = facet_type <@ImplicitAs, @ImplicitAs(%ptr.00a)> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.77b: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.703(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.fc8: %ptr.as.ImplicitAs.impl.Convert.type.77b = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.5d0: = impl_witness imports.%ImplicitAs.impl_witness_table.5be, @ptr.as.ImplicitAs.impl.703(%S) [concrete] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.809: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.703(%S) [concrete] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.bb0: %ptr.as.ImplicitAs.impl.Convert.type.809 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.fdc: %ImplicitAs.type.00e = facet_value %ptr.055, (%ImplicitAs.impl_witness.5d0) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.a2f: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%ptr.2d0, %ImplicitAs.facet.fdc) [concrete] -// CHECK:STDOUT: %.939: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.a2f, %ImplicitAs.facet.fdc [concrete] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.specific_fn.d09: = specific_function %ptr.as.ImplicitAs.impl.Convert.bb0, @ptr.as.ImplicitAs.impl.Convert.1(%S) [concrete] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.8e0: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.992(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.a18: %ptr.as.ImplicitAs.impl.Convert.type.8e0 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.36b: = impl_witness imports.%ImplicitAs.impl_witness_table.01c, @ptr.as.ImplicitAs.impl.992(%S) [concrete] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.b93: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.992(%S) [concrete] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.313: %ptr.as.ImplicitAs.impl.Convert.type.b93 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.31f: %ImplicitAs.type.c59 = facet_value %ptr.037, (%ImplicitAs.impl_witness.36b) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.881: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%ptr.00a, %ImplicitAs.facet.31f) [concrete] +// CHECK:STDOUT: %.fec: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.881, %ImplicitAs.facet.31f [concrete] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.specific_fn.642: = specific_function %ptr.as.ImplicitAs.impl.Convert.313, @ptr.as.ImplicitAs.impl.Convert.1(%S) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -164,29 +164,29 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} -// CHECK:STDOUT: %Core.import_ref.3fd: @ptr.as.ImplicitAs.impl.703.%ptr.as.ImplicitAs.impl.Convert.type (%ptr.as.ImplicitAs.impl.Convert.type.77b) = import_ref Core//prelude/types/cpp/void, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.ImplicitAs.impl.703.%ptr.as.ImplicitAs.impl.Convert (constants.%ptr.as.ImplicitAs.impl.Convert.fc8)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.5be = impl_witness_table (%Core.import_ref.3fd), @ptr.as.ImplicitAs.impl.703 [concrete] +// CHECK:STDOUT: %Core.import_ref.47d: @ptr.as.ImplicitAs.impl.992.%ptr.as.ImplicitAs.impl.Convert.type (%ptr.as.ImplicitAs.impl.Convert.type.8e0) = import_ref Core//prelude/types/cpp/void, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.ImplicitAs.impl.992.%ptr.as.ImplicitAs.impl.Convert (constants.%ptr.as.ImplicitAs.impl.Convert.a18)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.01c = impl_witness_table (%Core.import_ref.47d), @ptr.as.ImplicitAs.impl.992 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%input.param: %ptr.055) { +// CHECK:STDOUT: fn @F(%input.param: %ptr.037) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.2c3 = value_binding_pattern p [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.712 = value_binding_pattern p [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %input.ref: %ptr.055 = name_ref input, %input -// CHECK:STDOUT: %.loc10_25: type = splice_block %ptr.loc10 [concrete = constants.%ptr.2d0] { +// CHECK:STDOUT: %input.ref: %ptr.037 = name_ref input, %input +// CHECK:STDOUT: %.loc10_25: type = splice_block %ptr.loc10 [concrete = constants.%ptr.00a] { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %void.ref: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] -// CHECK:STDOUT: %ptr.loc10: type = ptr_type %void.ref [concrete = constants.%ptr.2d0] +// CHECK:STDOUT: %ptr.loc10: type = ptr_type %void.ref [concrete = constants.%ptr.00a] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0: %.939 = impl_witness_access constants.%ImplicitAs.impl_witness.5d0, element0 [concrete = constants.%ptr.as.ImplicitAs.impl.Convert.bb0] +// CHECK:STDOUT: %impl.elem0: %.fec = impl_witness_access constants.%ImplicitAs.impl_witness.36b, element0 [concrete = constants.%ptr.as.ImplicitAs.impl.Convert.313] // CHECK:STDOUT: %bound_method.loc10_29.1: = bound_method %input.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.ImplicitAs.impl.Convert.1(constants.%S) [concrete = constants.%ptr.as.ImplicitAs.impl.Convert.specific_fn.d09] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.ImplicitAs.impl.Convert.1(constants.%S) [concrete = constants.%ptr.as.ImplicitAs.impl.Convert.specific_fn.642] // CHECK:STDOUT: %bound_method.loc10_29.2: = bound_method %input.ref, %specific_fn -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.call: init %ptr.2d0 = call %bound_method.loc10_29.2(%input.ref) -// CHECK:STDOUT: %.loc10_29.1: %ptr.2d0 = value_of_initializer %ptr.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %.loc10_29.2: %ptr.2d0 = converted %input.ref, %.loc10_29.1 -// CHECK:STDOUT: %p: %ptr.2d0 = value_binding p, %.loc10_29.2 +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.call: init %ptr.00a = call %bound_method.loc10_29.2(%input.ref) +// CHECK:STDOUT: %.loc10_29.1: %ptr.00a = value_of_initializer %ptr.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %.loc10_29.2: %ptr.00a = converted %input.ref, %.loc10_29.1 +// CHECK:STDOUT: %p: %ptr.00a = value_binding p, %.loc10_29.2 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -194,21 +194,21 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] -// CHECK:STDOUT: %ptr.2d0: type = ptr_type %Cpp.void [concrete] -// CHECK:STDOUT: %pattern_type.2c3: type = pattern_type %ptr.2d0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.00e: type = facet_type <@ImplicitAs, @ImplicitAs(%ptr.2d0)> [concrete] +// CHECK:STDOUT: %ptr.00a: type = ptr_type %Cpp.void [concrete] +// CHECK:STDOUT: %pattern_type.712: type = pattern_type %ptr.00a [concrete] +// CHECK:STDOUT: %ImplicitAs.type.c59: type = facet_type <@ImplicitAs, @ImplicitAs(%ptr.00a)> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.77b: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.703(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.fc8: %ptr.as.ImplicitAs.impl.Convert.type.77b = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.7ba: = impl_witness imports.%ImplicitAs.impl_witness_table.5be, @ptr.as.ImplicitAs.impl.703(%C) [concrete] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.b34: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.703(%C) [concrete] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.513: %ptr.as.ImplicitAs.impl.Convert.type.b34 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.e61: %ImplicitAs.type.00e = facet_value %ptr.6be, (%ImplicitAs.impl_witness.7ba) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.ebe: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%ptr.2d0, %ImplicitAs.facet.e61) [concrete] -// CHECK:STDOUT: %.a6f: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.ebe, %ImplicitAs.facet.e61 [concrete] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.specific_fn.794: = specific_function %ptr.as.ImplicitAs.impl.Convert.513, @ptr.as.ImplicitAs.impl.Convert.1(%C) [concrete] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.8e0: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.992(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.a18: %ptr.as.ImplicitAs.impl.Convert.type.8e0 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.184: = impl_witness imports.%ImplicitAs.impl_witness_table.01c, @ptr.as.ImplicitAs.impl.992(%C) [concrete] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.c38: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.992(%C) [concrete] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.458: %ptr.as.ImplicitAs.impl.Convert.type.c38 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.54b: %ImplicitAs.type.c59 = facet_value %ptr.6b6, (%ImplicitAs.impl_witness.184) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.a7e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%ptr.00a, %ImplicitAs.facet.54b) [concrete] +// CHECK:STDOUT: %.4f2: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.a7e, %ImplicitAs.facet.54b [concrete] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.specific_fn.aae: = specific_function %ptr.as.ImplicitAs.impl.Convert.458, @ptr.as.ImplicitAs.impl.Convert.1(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -216,29 +216,29 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: .void = constants.%Cpp.void // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.3fd: @ptr.as.ImplicitAs.impl.703.%ptr.as.ImplicitAs.impl.Convert.type (%ptr.as.ImplicitAs.impl.Convert.type.77b) = import_ref Core//prelude/types/cpp/void, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.ImplicitAs.impl.703.%ptr.as.ImplicitAs.impl.Convert (constants.%ptr.as.ImplicitAs.impl.Convert.fc8)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.5be = impl_witness_table (%Core.import_ref.3fd), @ptr.as.ImplicitAs.impl.703 [concrete] +// CHECK:STDOUT: %Core.import_ref.47d: @ptr.as.ImplicitAs.impl.992.%ptr.as.ImplicitAs.impl.Convert.type (%ptr.as.ImplicitAs.impl.Convert.type.8e0) = import_ref Core//prelude/types/cpp/void, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.ImplicitAs.impl.992.%ptr.as.ImplicitAs.impl.Convert (constants.%ptr.as.ImplicitAs.impl.Convert.a18)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.01c = impl_witness_table (%Core.import_ref.47d), @ptr.as.ImplicitAs.impl.992 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%input.param: %ptr.6be) { +// CHECK:STDOUT: fn @F(%input.param: %ptr.6b6) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.2c3 = value_binding_pattern p [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.712 = value_binding_pattern p [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %input.ref: %ptr.6be = name_ref input, %input -// CHECK:STDOUT: %.loc10_25: type = splice_block %ptr.loc10 [concrete = constants.%ptr.2d0] { +// CHECK:STDOUT: %input.ref: %ptr.6b6 = name_ref input, %input +// CHECK:STDOUT: %.loc10_25: type = splice_block %ptr.loc10 [concrete = constants.%ptr.00a] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %void.ref: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] -// CHECK:STDOUT: %ptr.loc10: type = ptr_type %void.ref [concrete = constants.%ptr.2d0] +// CHECK:STDOUT: %ptr.loc10: type = ptr_type %void.ref [concrete = constants.%ptr.00a] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0: %.a6f = impl_witness_access constants.%ImplicitAs.impl_witness.7ba, element0 [concrete = constants.%ptr.as.ImplicitAs.impl.Convert.513] +// CHECK:STDOUT: %impl.elem0: %.4f2 = impl_witness_access constants.%ImplicitAs.impl_witness.184, element0 [concrete = constants.%ptr.as.ImplicitAs.impl.Convert.458] // CHECK:STDOUT: %bound_method.loc10_29.1: = bound_method %input.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.ImplicitAs.impl.Convert.1(constants.%C) [concrete = constants.%ptr.as.ImplicitAs.impl.Convert.specific_fn.794] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.ImplicitAs.impl.Convert.1(constants.%C) [concrete = constants.%ptr.as.ImplicitAs.impl.Convert.specific_fn.aae] // CHECK:STDOUT: %bound_method.loc10_29.2: = bound_method %input.ref, %specific_fn -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.call: init %ptr.2d0 = call %bound_method.loc10_29.2(%input.ref) -// CHECK:STDOUT: %.loc10_29.1: %ptr.2d0 = value_of_initializer %ptr.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %.loc10_29.2: %ptr.2d0 = converted %input.ref, %.loc10_29.1 -// CHECK:STDOUT: %p: %ptr.2d0 = value_binding p, %.loc10_29.2 +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.call: init %ptr.00a = call %bound_method.loc10_29.2(%input.ref) +// CHECK:STDOUT: %.loc10_29.1: %ptr.00a = value_of_initializer %ptr.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %.loc10_29.2: %ptr.00a = converted %input.ref, %.loc10_29.1 +// CHECK:STDOUT: %p: %ptr.00a = value_binding p, %.loc10_29.2 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -246,29 +246,29 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] -// CHECK:STDOUT: %ptr.2d0: type = ptr_type %Cpp.void [concrete] -// CHECK:STDOUT: %pattern_type.2c3: type = pattern_type %ptr.2d0 [concrete] -// CHECK:STDOUT: %As.type.e06: type = facet_type <@As, @As(%ptr.2d0)> [concrete] +// CHECK:STDOUT: %ptr.00a: type = ptr_type %Cpp.void [concrete] +// CHECK:STDOUT: %pattern_type.712: type = pattern_type %ptr.00a [concrete] +// CHECK:STDOUT: %As.type.ffb: type = facet_type <@As, @As(%ptr.00a)> [concrete] // CHECK:STDOUT: %U.67d: type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.6e610f.2: type = facet_type <@ImplicitAs, @ImplicitAs(%U.67d)> [symbolic] -// CHECK:STDOUT: %T.b7e: %ImplicitAs.type.6e610f.2 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.type.783: type = fn_type @T.as_type.as.As.impl.Convert, @T.as_type.as.As.impl(%U.67d, %T.b7e) [symbolic] -// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.4ea: %T.as_type.as.As.impl.Convert.type.783 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.3aa489.2: type = facet_type <@ImplicitAs, @ImplicitAs(%U.67d)> [symbolic] +// CHECK:STDOUT: %T.294: %ImplicitAs.type.3aa489.2 = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.type.1a4: type = fn_type @T.as_type.as.As.impl.Convert, @T.as_type.as.As.impl(%U.67d, %T.294) [symbolic] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.0c3: %T.as_type.as.As.impl.Convert.type.1a4 = struct_value () [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.00e: type = facet_type <@ImplicitAs, @ImplicitAs(%ptr.2d0)> [concrete] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.77b: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.703(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.fc8: %ptr.as.ImplicitAs.impl.Convert.type.77b = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.5d0: = impl_witness imports.%ImplicitAs.impl_witness_table.5be, @ptr.as.ImplicitAs.impl.703(%S) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.fdc: %ImplicitAs.type.00e = facet_value %ptr.055, (%ImplicitAs.impl_witness.5d0) [concrete] -// CHECK:STDOUT: %As.impl_witness.47c: = impl_witness imports.%As.impl_witness_table.f5a, @T.as_type.as.As.impl(%ptr.2d0, %ImplicitAs.facet.fdc) [concrete] -// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.type.a0b: type = fn_type @T.as_type.as.As.impl.Convert, @T.as_type.as.As.impl(%ptr.2d0, %ImplicitAs.facet.fdc) [concrete] -// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.3b1: %T.as_type.as.As.impl.Convert.type.a0b = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.e06 = facet_value %ptr.055, (%As.impl_witness.47c) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.446: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%ptr.2d0, %As.facet) [concrete] -// CHECK:STDOUT: %.6c9: type = fn_type_with_self_type %As.WithSelf.Convert.type.446, %As.facet [concrete] -// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.specific_fn: = specific_function %T.as_type.as.As.impl.Convert.3b1, @T.as_type.as.As.impl.Convert(%ptr.2d0, %ImplicitAs.facet.fdc) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.c59: type = facet_type <@ImplicitAs, @ImplicitAs(%ptr.00a)> [concrete] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.8e0: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.992(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.a18: %ptr.as.ImplicitAs.impl.Convert.type.8e0 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.36b: = impl_witness imports.%ImplicitAs.impl_witness_table.01c, @ptr.as.ImplicitAs.impl.992(%S) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.31f: %ImplicitAs.type.c59 = facet_value %ptr.037, (%ImplicitAs.impl_witness.36b) [concrete] +// CHECK:STDOUT: %As.impl_witness.28e: = impl_witness imports.%As.impl_witness_table.aa3, @T.as_type.as.As.impl(%ptr.00a, %ImplicitAs.facet.31f) [concrete] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.type.6d1: type = fn_type @T.as_type.as.As.impl.Convert, @T.as_type.as.As.impl(%ptr.00a, %ImplicitAs.facet.31f) [concrete] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.ed3: %T.as_type.as.As.impl.Convert.type.6d1 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.ffb = facet_value %ptr.037, (%As.impl_witness.28e) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.99f: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%ptr.00a, %As.facet) [concrete] +// CHECK:STDOUT: %.629: type = fn_type_with_self_type %As.WithSelf.Convert.type.99f, %As.facet [concrete] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.specific_fn: = specific_function %T.as_type.as.As.impl.Convert.ed3, @T.as_type.as.As.impl.Convert(%ptr.00a, %ImplicitAs.facet.31f) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -278,34 +278,34 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} -// CHECK:STDOUT: %Core.import_ref.bd1: @T.as_type.as.As.impl.%T.as_type.as.As.impl.Convert.type (%T.as_type.as.As.impl.Convert.type.783) = import_ref Core//prelude/operators/as, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.As.impl.%T.as_type.as.As.impl.Convert (constants.%T.as_type.as.As.impl.Convert.4ea)] -// CHECK:STDOUT: %As.impl_witness_table.f5a = impl_witness_table (%Core.import_ref.bd1), @T.as_type.as.As.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.3fd: @ptr.as.ImplicitAs.impl.703.%ptr.as.ImplicitAs.impl.Convert.type (%ptr.as.ImplicitAs.impl.Convert.type.77b) = import_ref Core//prelude/types/cpp/void, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.ImplicitAs.impl.703.%ptr.as.ImplicitAs.impl.Convert (constants.%ptr.as.ImplicitAs.impl.Convert.fc8)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.5be = impl_witness_table (%Core.import_ref.3fd), @ptr.as.ImplicitAs.impl.703 [concrete] +// CHECK:STDOUT: %Core.import_ref.a07: @T.as_type.as.As.impl.%T.as_type.as.As.impl.Convert.type (%T.as_type.as.As.impl.Convert.type.1a4) = import_ref Core//prelude/operators/as, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.As.impl.%T.as_type.as.As.impl.Convert (constants.%T.as_type.as.As.impl.Convert.0c3)] +// CHECK:STDOUT: %As.impl_witness_table.aa3 = impl_witness_table (%Core.import_ref.a07), @T.as_type.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.47d: @ptr.as.ImplicitAs.impl.992.%ptr.as.ImplicitAs.impl.Convert.type (%ptr.as.ImplicitAs.impl.Convert.type.8e0) = import_ref Core//prelude/types/cpp/void, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.ImplicitAs.impl.992.%ptr.as.ImplicitAs.impl.Convert (constants.%ptr.as.ImplicitAs.impl.Convert.a18)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.01c = impl_witness_table (%Core.import_ref.47d), @ptr.as.ImplicitAs.impl.992 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%input.param: %ptr.055) { +// CHECK:STDOUT: fn @F(%input.param: %ptr.037) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.2c3 = value_binding_pattern p [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.712 = value_binding_pattern p [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %input.ref: %ptr.055 = name_ref input, %input +// CHECK:STDOUT: %input.ref: %ptr.037 = name_ref input, %input // CHECK:STDOUT: %Cpp.ref.loc10_38: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %void.ref.loc10_41: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] -// CHECK:STDOUT: %ptr.loc10_46: type = ptr_type %void.ref.loc10_41 [concrete = constants.%ptr.2d0] -// CHECK:STDOUT: %impl.elem0: %.6c9 = impl_witness_access constants.%As.impl_witness.47c, element0 [concrete = constants.%T.as_type.as.As.impl.Convert.3b1] +// CHECK:STDOUT: %ptr.loc10_46: type = ptr_type %void.ref.loc10_41 [concrete = constants.%ptr.00a] +// CHECK:STDOUT: %impl.elem0: %.629 = impl_witness_access constants.%As.impl_witness.28e, element0 [concrete = constants.%T.as_type.as.As.impl.Convert.ed3] // CHECK:STDOUT: %bound_method.loc10_35.1: = bound_method %input.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @T.as_type.as.As.impl.Convert(constants.%ptr.2d0, constants.%ImplicitAs.facet.fdc) [concrete = constants.%T.as_type.as.As.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @T.as_type.as.As.impl.Convert(constants.%ptr.00a, constants.%ImplicitAs.facet.31f) [concrete = constants.%T.as_type.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_35.2: = bound_method %input.ref, %specific_fn -// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.call: init %ptr.2d0 = call %bound_method.loc10_35.2(%input.ref) -// CHECK:STDOUT: %.loc10_35.1: %ptr.2d0 = value_of_initializer %T.as_type.as.As.impl.Convert.call -// CHECK:STDOUT: %.loc10_35.2: %ptr.2d0 = converted %input.ref, %.loc10_35.1 -// CHECK:STDOUT: %.loc10_25: type = splice_block %ptr.loc10_25 [concrete = constants.%ptr.2d0] { +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.call: init %ptr.00a = call %bound_method.loc10_35.2(%input.ref) +// CHECK:STDOUT: %.loc10_35.1: %ptr.00a = value_of_initializer %T.as_type.as.As.impl.Convert.call +// CHECK:STDOUT: %.loc10_35.2: %ptr.00a = converted %input.ref, %.loc10_35.1 +// CHECK:STDOUT: %.loc10_25: type = splice_block %ptr.loc10_25 [concrete = constants.%ptr.00a] { // CHECK:STDOUT: %Cpp.ref.loc10_17: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %void.ref.loc10_20: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] -// CHECK:STDOUT: %ptr.loc10_25: type = ptr_type %void.ref.loc10_20 [concrete = constants.%ptr.2d0] +// CHECK:STDOUT: %ptr.loc10_25: type = ptr_type %void.ref.loc10_20 [concrete = constants.%ptr.00a] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.2d0 = value_binding p, %.loc10_35.2 +// CHECK:STDOUT: %p: %ptr.00a = value_binding p, %.loc10_35.2 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -313,29 +313,29 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] -// CHECK:STDOUT: %ptr.2d0: type = ptr_type %Cpp.void [concrete] -// CHECK:STDOUT: %pattern_type.2c3: type = pattern_type %ptr.2d0 [concrete] -// CHECK:STDOUT: %As.type.e06: type = facet_type <@As, @As(%ptr.2d0)> [concrete] +// CHECK:STDOUT: %ptr.00a: type = ptr_type %Cpp.void [concrete] +// CHECK:STDOUT: %pattern_type.712: type = pattern_type %ptr.00a [concrete] +// CHECK:STDOUT: %As.type.ffb: type = facet_type <@As, @As(%ptr.00a)> [concrete] // CHECK:STDOUT: %U.67d: type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.6e610f.2: type = facet_type <@ImplicitAs, @ImplicitAs(%U.67d)> [symbolic] -// CHECK:STDOUT: %T.b7e: %ImplicitAs.type.6e610f.2 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.type.783: type = fn_type @T.as_type.as.As.impl.Convert, @T.as_type.as.As.impl(%U.67d, %T.b7e) [symbolic] -// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.4ea: %T.as_type.as.As.impl.Convert.type.783 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.3aa489.2: type = facet_type <@ImplicitAs, @ImplicitAs(%U.67d)> [symbolic] +// CHECK:STDOUT: %T.294: %ImplicitAs.type.3aa489.2 = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.type.1a4: type = fn_type @T.as_type.as.As.impl.Convert, @T.as_type.as.As.impl(%U.67d, %T.294) [symbolic] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.0c3: %T.as_type.as.As.impl.Convert.type.1a4 = struct_value () [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.00e: type = facet_type <@ImplicitAs, @ImplicitAs(%ptr.2d0)> [concrete] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.77b: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.703(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.fc8: %ptr.as.ImplicitAs.impl.Convert.type.77b = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.7ba: = impl_witness imports.%ImplicitAs.impl_witness_table.5be, @ptr.as.ImplicitAs.impl.703(%C) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.e61: %ImplicitAs.type.00e = facet_value %ptr.6be, (%ImplicitAs.impl_witness.7ba) [concrete] -// CHECK:STDOUT: %As.impl_witness.03e: = impl_witness imports.%As.impl_witness_table.f5a, @T.as_type.as.As.impl(%ptr.2d0, %ImplicitAs.facet.e61) [concrete] -// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.type.13a: type = fn_type @T.as_type.as.As.impl.Convert, @T.as_type.as.As.impl(%ptr.2d0, %ImplicitAs.facet.e61) [concrete] -// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.e2b: %T.as_type.as.As.impl.Convert.type.13a = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.e06 = facet_value %ptr.6be, (%As.impl_witness.03e) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.a05: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%ptr.2d0, %As.facet) [concrete] -// CHECK:STDOUT: %.a73: type = fn_type_with_self_type %As.WithSelf.Convert.type.a05, %As.facet [concrete] -// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.specific_fn: = specific_function %T.as_type.as.As.impl.Convert.e2b, @T.as_type.as.As.impl.Convert(%ptr.2d0, %ImplicitAs.facet.e61) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.c59: type = facet_type <@ImplicitAs, @ImplicitAs(%ptr.00a)> [concrete] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.8e0: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.992(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.a18: %ptr.as.ImplicitAs.impl.Convert.type.8e0 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.184: = impl_witness imports.%ImplicitAs.impl_witness_table.01c, @ptr.as.ImplicitAs.impl.992(%C) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.54b: %ImplicitAs.type.c59 = facet_value %ptr.6b6, (%ImplicitAs.impl_witness.184) [concrete] +// CHECK:STDOUT: %As.impl_witness.6bc: = impl_witness imports.%As.impl_witness_table.aa3, @T.as_type.as.As.impl(%ptr.00a, %ImplicitAs.facet.54b) [concrete] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.type.68f: type = fn_type @T.as_type.as.As.impl.Convert, @T.as_type.as.As.impl(%ptr.00a, %ImplicitAs.facet.54b) [concrete] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.e3d: %T.as_type.as.As.impl.Convert.type.68f = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.ffb = facet_value %ptr.6b6, (%As.impl_witness.6bc) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.3fa: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%ptr.00a, %As.facet) [concrete] +// CHECK:STDOUT: %.efd: type = fn_type_with_self_type %As.WithSelf.Convert.type.3fa, %As.facet [concrete] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.specific_fn: = specific_function %T.as_type.as.As.impl.Convert.e3d, @T.as_type.as.As.impl.Convert(%ptr.00a, %ImplicitAs.facet.54b) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -343,34 +343,34 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: .void = constants.%Cpp.void // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.bd1: @T.as_type.as.As.impl.%T.as_type.as.As.impl.Convert.type (%T.as_type.as.As.impl.Convert.type.783) = import_ref Core//prelude/operators/as, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.As.impl.%T.as_type.as.As.impl.Convert (constants.%T.as_type.as.As.impl.Convert.4ea)] -// CHECK:STDOUT: %As.impl_witness_table.f5a = impl_witness_table (%Core.import_ref.bd1), @T.as_type.as.As.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.3fd: @ptr.as.ImplicitAs.impl.703.%ptr.as.ImplicitAs.impl.Convert.type (%ptr.as.ImplicitAs.impl.Convert.type.77b) = import_ref Core//prelude/types/cpp/void, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.ImplicitAs.impl.703.%ptr.as.ImplicitAs.impl.Convert (constants.%ptr.as.ImplicitAs.impl.Convert.fc8)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.5be = impl_witness_table (%Core.import_ref.3fd), @ptr.as.ImplicitAs.impl.703 [concrete] +// CHECK:STDOUT: %Core.import_ref.a07: @T.as_type.as.As.impl.%T.as_type.as.As.impl.Convert.type (%T.as_type.as.As.impl.Convert.type.1a4) = import_ref Core//prelude/operators/as, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.As.impl.%T.as_type.as.As.impl.Convert (constants.%T.as_type.as.As.impl.Convert.0c3)] +// CHECK:STDOUT: %As.impl_witness_table.aa3 = impl_witness_table (%Core.import_ref.a07), @T.as_type.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.47d: @ptr.as.ImplicitAs.impl.992.%ptr.as.ImplicitAs.impl.Convert.type (%ptr.as.ImplicitAs.impl.Convert.type.8e0) = import_ref Core//prelude/types/cpp/void, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.ImplicitAs.impl.992.%ptr.as.ImplicitAs.impl.Convert (constants.%ptr.as.ImplicitAs.impl.Convert.a18)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.01c = impl_witness_table (%Core.import_ref.47d), @ptr.as.ImplicitAs.impl.992 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%input.param: %ptr.6be) { +// CHECK:STDOUT: fn @F(%input.param: %ptr.6b6) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.2c3 = value_binding_pattern p [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.712 = value_binding_pattern p [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %input.ref: %ptr.6be = name_ref input, %input +// CHECK:STDOUT: %input.ref: %ptr.6b6 = name_ref input, %input // CHECK:STDOUT: %Cpp.ref.loc10_38: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %void.ref.loc10_41: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] -// CHECK:STDOUT: %ptr.loc10_46: type = ptr_type %void.ref.loc10_41 [concrete = constants.%ptr.2d0] -// CHECK:STDOUT: %impl.elem0: %.a73 = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%T.as_type.as.As.impl.Convert.e2b] +// CHECK:STDOUT: %ptr.loc10_46: type = ptr_type %void.ref.loc10_41 [concrete = constants.%ptr.00a] +// CHECK:STDOUT: %impl.elem0: %.efd = impl_witness_access constants.%As.impl_witness.6bc, element0 [concrete = constants.%T.as_type.as.As.impl.Convert.e3d] // CHECK:STDOUT: %bound_method.loc10_35.1: = bound_method %input.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @T.as_type.as.As.impl.Convert(constants.%ptr.2d0, constants.%ImplicitAs.facet.e61) [concrete = constants.%T.as_type.as.As.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @T.as_type.as.As.impl.Convert(constants.%ptr.00a, constants.%ImplicitAs.facet.54b) [concrete = constants.%T.as_type.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_35.2: = bound_method %input.ref, %specific_fn -// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.call: init %ptr.2d0 = call %bound_method.loc10_35.2(%input.ref) -// CHECK:STDOUT: %.loc10_35.1: %ptr.2d0 = value_of_initializer %T.as_type.as.As.impl.Convert.call -// CHECK:STDOUT: %.loc10_35.2: %ptr.2d0 = converted %input.ref, %.loc10_35.1 -// CHECK:STDOUT: %.loc10_25: type = splice_block %ptr.loc10_25 [concrete = constants.%ptr.2d0] { +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.call: init %ptr.00a = call %bound_method.loc10_35.2(%input.ref) +// CHECK:STDOUT: %.loc10_35.1: %ptr.00a = value_of_initializer %T.as_type.as.As.impl.Convert.call +// CHECK:STDOUT: %.loc10_35.2: %ptr.00a = converted %input.ref, %.loc10_35.1 +// CHECK:STDOUT: %.loc10_25: type = splice_block %ptr.loc10_25 [concrete = constants.%ptr.00a] { // CHECK:STDOUT: %Cpp.ref.loc10_17: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %void.ref.loc10_20: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] -// CHECK:STDOUT: %ptr.loc10_25: type = ptr_type %void.ref.loc10_20 [concrete = constants.%ptr.2d0] +// CHECK:STDOUT: %ptr.loc10_25: type = ptr_type %void.ref.loc10_20 [concrete = constants.%ptr.00a] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.2d0 = value_binding p, %.loc10_35.2 +// CHECK:STDOUT: %p: %ptr.00a = value_binding p, %.loc10_35.2 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -378,10 +378,10 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] -// CHECK:STDOUT: %ptr.2d0: type = ptr_type %Cpp.void [concrete] +// CHECK:STDOUT: %ptr.00a: type = ptr_type %Cpp.void [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] -// CHECK:STDOUT: %pattern_type.f1e: type = pattern_type %ptr.055 [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] +// CHECK:STDOUT: %pattern_type.de6: type = pattern_type %ptr.037 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -393,22 +393,22 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%input.param: %ptr.2d0) { +// CHECK:STDOUT: fn @F(%input.param: %ptr.00a) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.f1e = value_binding_pattern p [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.de6 = value_binding_pattern p [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %input.ref: %ptr.2d0 = name_ref input, %input +// CHECK:STDOUT: %input.ref: %ptr.00a = name_ref input, %input // CHECK:STDOUT: %Cpp.ref.loc17_35: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc17_38: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr.loc17_40: type = ptr_type %S.ref.loc17_38 [concrete = constants.%ptr.055] -// CHECK:STDOUT: %.loc17_32: %ptr.055 = converted %input.ref, [concrete = ] -// CHECK:STDOUT: %.loc17_22: type = splice_block %ptr.loc17_22 [concrete = constants.%ptr.055] { +// CHECK:STDOUT: %ptr.loc17_40: type = ptr_type %S.ref.loc17_38 [concrete = constants.%ptr.037] +// CHECK:STDOUT: %.loc17_32: %ptr.037 = converted %input.ref, [concrete = ] +// CHECK:STDOUT: %.loc17_22: type = splice_block %ptr.loc17_22 [concrete = constants.%ptr.037] { // CHECK:STDOUT: %Cpp.ref.loc17_17: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc17_20: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr.loc17_22: type = ptr_type %S.ref.loc17_20 [concrete = constants.%ptr.055] +// CHECK:STDOUT: %ptr.loc17_22: type = ptr_type %S.ref.loc17_20 [concrete = constants.%ptr.037] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.055 = value_binding p, [concrete = ] +// CHECK:STDOUT: %p: %ptr.037 = value_binding p, [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -417,25 +417,25 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] -// CHECK:STDOUT: %ptr.2d0: type = ptr_type %Cpp.void [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] +// CHECK:STDOUT: %ptr.00a: type = ptr_type %Cpp.void [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%input.param: %ptr.2d0) { +// CHECK:STDOUT: fn @F(%input.param: %ptr.00a) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.1c8 = value_binding_pattern p [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.fcb = value_binding_pattern p [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %input.ref: %ptr.2d0 = name_ref input, %input +// CHECK:STDOUT: %input.ref: %ptr.00a = name_ref input, %input // CHECK:STDOUT: %C.ref.loc17_31: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc17_32: type = ptr_type %C.ref.loc17_31 [concrete = constants.%ptr.6be] -// CHECK:STDOUT: %.loc17_28: %ptr.6be = converted %input.ref, [concrete = ] -// CHECK:STDOUT: %.loc17_18: type = splice_block %ptr.loc17_18 [concrete = constants.%ptr.6be] { +// CHECK:STDOUT: %ptr.loc17_32: type = ptr_type %C.ref.loc17_31 [concrete = constants.%ptr.6b6] +// CHECK:STDOUT: %.loc17_28: %ptr.6b6 = converted %input.ref, [concrete = ] +// CHECK:STDOUT: %.loc17_18: type = splice_block %ptr.loc17_18 [concrete = constants.%ptr.6b6] { // CHECK:STDOUT: %C.ref.loc17_17: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc17_18: type = ptr_type %C.ref.loc17_17 [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr.loc17_18: type = ptr_type %C.ref.loc17_17 [concrete = constants.%ptr.6b6] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.6be = value_binding p, [concrete = ] +// CHECK:STDOUT: %p: %ptr.6b6 = value_binding p, [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -443,22 +443,22 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] -// CHECK:STDOUT: %ptr.2d0: type = ptr_type %Cpp.void [concrete] +// CHECK:STDOUT: %ptr.00a: type = ptr_type %Cpp.void [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] -// CHECK:STDOUT: %pattern_type.f1e: type = pattern_type %ptr.055 [concrete] -// CHECK:STDOUT: %UnsafeAs.type.93d: type = facet_type <@UnsafeAs, @UnsafeAs(%ptr.055)> [concrete] +// CHECK:STDOUT: %ptr.037: type = ptr_type %S [concrete] +// CHECK:STDOUT: %pattern_type.de6: type = pattern_type %ptr.037 [concrete] +// CHECK:STDOUT: %UnsafeAs.type.ae7: type = facet_type <@UnsafeAs, @UnsafeAs(%ptr.037)> [concrete] // CHECK:STDOUT: %U.091: type = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.type.ed9: type = fn_type @ptr.as.UnsafeAs.impl.Convert, @ptr.as.UnsafeAs.impl(%T.67d, %U.091) [symbolic] -// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.83c: %ptr.as.UnsafeAs.impl.Convert.type.ed9 = struct_value () [symbolic] -// CHECK:STDOUT: %UnsafeAs.impl_witness.887: = impl_witness imports.%UnsafeAs.impl_witness_table.ec8, @ptr.as.UnsafeAs.impl(%Cpp.void, %S) [concrete] -// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.type.faf: type = fn_type @ptr.as.UnsafeAs.impl.Convert, @ptr.as.UnsafeAs.impl(%Cpp.void, %S) [concrete] -// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.931: %ptr.as.UnsafeAs.impl.Convert.type.faf = struct_value () [concrete] -// CHECK:STDOUT: %UnsafeAs.facet: %UnsafeAs.type.93d = facet_value %ptr.2d0, (%UnsafeAs.impl_witness.887) [concrete] -// CHECK:STDOUT: %UnsafeAs.WithSelf.Convert.type.ac8: type = fn_type @UnsafeAs.WithSelf.Convert, @UnsafeAs.WithSelf(%ptr.055, %UnsafeAs.facet) [concrete] -// CHECK:STDOUT: %.187: type = fn_type_with_self_type %UnsafeAs.WithSelf.Convert.type.ac8, %UnsafeAs.facet [concrete] -// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.specific_fn: = specific_function %ptr.as.UnsafeAs.impl.Convert.931, @ptr.as.UnsafeAs.impl.Convert(%Cpp.void, %S) [concrete] +// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.type.232: type = fn_type @ptr.as.UnsafeAs.impl.Convert, @ptr.as.UnsafeAs.impl(%T.67d, %U.091) [symbolic] +// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.691: %ptr.as.UnsafeAs.impl.Convert.type.232 = struct_value () [symbolic] +// CHECK:STDOUT: %UnsafeAs.impl_witness.293: = impl_witness imports.%UnsafeAs.impl_witness_table.4b1, @ptr.as.UnsafeAs.impl(%Cpp.void, %S) [concrete] +// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.type.664: type = fn_type @ptr.as.UnsafeAs.impl.Convert, @ptr.as.UnsafeAs.impl(%Cpp.void, %S) [concrete] +// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.cba: %ptr.as.UnsafeAs.impl.Convert.type.664 = struct_value () [concrete] +// CHECK:STDOUT: %UnsafeAs.facet: %UnsafeAs.type.ae7 = facet_value %ptr.00a, (%UnsafeAs.impl_witness.293) [concrete] +// CHECK:STDOUT: %UnsafeAs.WithSelf.Convert.type.de8: type = fn_type @UnsafeAs.WithSelf.Convert, @UnsafeAs.WithSelf(%ptr.037, %UnsafeAs.facet) [concrete] +// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %UnsafeAs.WithSelf.Convert.type.de8, %UnsafeAs.facet [concrete] +// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.specific_fn: = specific_function %ptr.as.UnsafeAs.impl.Convert.cba, @ptr.as.UnsafeAs.impl.Convert(%Cpp.void, %S) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -468,32 +468,32 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} -// CHECK:STDOUT: %Core.import_ref.9c8: @ptr.as.UnsafeAs.impl.%ptr.as.UnsafeAs.impl.Convert.type (%ptr.as.UnsafeAs.impl.Convert.type.ed9) = import_ref Core//prelude/operators/as, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.UnsafeAs.impl.%ptr.as.UnsafeAs.impl.Convert (constants.%ptr.as.UnsafeAs.impl.Convert.83c)] -// CHECK:STDOUT: %UnsafeAs.impl_witness_table.ec8 = impl_witness_table (%Core.import_ref.9c8), @ptr.as.UnsafeAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.822: @ptr.as.UnsafeAs.impl.%ptr.as.UnsafeAs.impl.Convert.type (%ptr.as.UnsafeAs.impl.Convert.type.232) = import_ref Core//prelude/operators/as, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.UnsafeAs.impl.%ptr.as.UnsafeAs.impl.Convert (constants.%ptr.as.UnsafeAs.impl.Convert.691)] +// CHECK:STDOUT: %UnsafeAs.impl_witness_table.4b1 = impl_witness_table (%Core.import_ref.822), @ptr.as.UnsafeAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%input.param: %ptr.2d0) { +// CHECK:STDOUT: fn @F(%input.param: %ptr.00a) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.f1e = value_binding_pattern p [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.de6 = value_binding_pattern p [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %input.ref: %ptr.2d0 = name_ref input, %input +// CHECK:STDOUT: %input.ref: %ptr.00a = name_ref input, %input // CHECK:STDOUT: %Cpp.ref.loc10_42: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc10_45: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr.loc10_47: type = ptr_type %S.ref.loc10_45 [concrete = constants.%ptr.055] -// CHECK:STDOUT: %impl.elem0: %.187 = impl_witness_access constants.%UnsafeAs.impl_witness.887, element0 [concrete = constants.%ptr.as.UnsafeAs.impl.Convert.931] +// CHECK:STDOUT: %ptr.loc10_47: type = ptr_type %S.ref.loc10_45 [concrete = constants.%ptr.037] +// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%UnsafeAs.impl_witness.293, element0 [concrete = constants.%ptr.as.UnsafeAs.impl.Convert.cba] // CHECK:STDOUT: %bound_method.loc10_39.1: = bound_method %input.ref, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.UnsafeAs.impl.Convert(constants.%Cpp.void, constants.%S) [concrete = constants.%ptr.as.UnsafeAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_39.2: = bound_method %input.ref, %specific_fn -// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.call: init %ptr.055 = call %bound_method.loc10_39.2(%input.ref) -// CHECK:STDOUT: %.loc10_39.1: %ptr.055 = value_of_initializer %ptr.as.UnsafeAs.impl.Convert.call -// CHECK:STDOUT: %.loc10_39.2: %ptr.055 = converted %input.ref, %.loc10_39.1 -// CHECK:STDOUT: %.loc10_22: type = splice_block %ptr.loc10_22 [concrete = constants.%ptr.055] { +// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.call: init %ptr.037 = call %bound_method.loc10_39.2(%input.ref) +// CHECK:STDOUT: %.loc10_39.1: %ptr.037 = value_of_initializer %ptr.as.UnsafeAs.impl.Convert.call +// CHECK:STDOUT: %.loc10_39.2: %ptr.037 = converted %input.ref, %.loc10_39.1 +// CHECK:STDOUT: %.loc10_22: type = splice_block %ptr.loc10_22 [concrete = constants.%ptr.037] { // CHECK:STDOUT: %Cpp.ref.loc10_17: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc10_20: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr.loc10_22: type = ptr_type %S.ref.loc10_20 [concrete = constants.%ptr.055] +// CHECK:STDOUT: %ptr.loc10_22: type = ptr_type %S.ref.loc10_20 [concrete = constants.%ptr.037] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.055 = value_binding p, %.loc10_39.2 +// CHECK:STDOUT: %p: %ptr.037 = value_binding p, %.loc10_39.2 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -502,48 +502,48 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] -// CHECK:STDOUT: %ptr.2d0: type = ptr_type %Cpp.void [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %UnsafeAs.type.556: type = facet_type <@UnsafeAs, @UnsafeAs(%ptr.6be)> [concrete] +// CHECK:STDOUT: %ptr.00a: type = ptr_type %Cpp.void [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %UnsafeAs.type.1d9: type = facet_type <@UnsafeAs, @UnsafeAs(%ptr.6b6)> [concrete] // CHECK:STDOUT: %U.091: type = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.type.ed9: type = fn_type @ptr.as.UnsafeAs.impl.Convert, @ptr.as.UnsafeAs.impl(%T.67d, %U.091) [symbolic] -// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.83c: %ptr.as.UnsafeAs.impl.Convert.type.ed9 = struct_value () [symbolic] -// CHECK:STDOUT: %UnsafeAs.impl_witness.cea: = impl_witness imports.%UnsafeAs.impl_witness_table.ec8, @ptr.as.UnsafeAs.impl(%Cpp.void, %C) [concrete] -// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.type.810: type = fn_type @ptr.as.UnsafeAs.impl.Convert, @ptr.as.UnsafeAs.impl(%Cpp.void, %C) [concrete] -// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.eea: %ptr.as.UnsafeAs.impl.Convert.type.810 = struct_value () [concrete] -// CHECK:STDOUT: %UnsafeAs.facet: %UnsafeAs.type.556 = facet_value %ptr.2d0, (%UnsafeAs.impl_witness.cea) [concrete] -// CHECK:STDOUT: %UnsafeAs.WithSelf.Convert.type.d97: type = fn_type @UnsafeAs.WithSelf.Convert, @UnsafeAs.WithSelf(%ptr.6be, %UnsafeAs.facet) [concrete] -// CHECK:STDOUT: %.adf: type = fn_type_with_self_type %UnsafeAs.WithSelf.Convert.type.d97, %UnsafeAs.facet [concrete] -// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.specific_fn: = specific_function %ptr.as.UnsafeAs.impl.Convert.eea, @ptr.as.UnsafeAs.impl.Convert(%Cpp.void, %C) [concrete] +// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.type.232: type = fn_type @ptr.as.UnsafeAs.impl.Convert, @ptr.as.UnsafeAs.impl(%T.67d, %U.091) [symbolic] +// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.691: %ptr.as.UnsafeAs.impl.Convert.type.232 = struct_value () [symbolic] +// CHECK:STDOUT: %UnsafeAs.impl_witness.78a: = impl_witness imports.%UnsafeAs.impl_witness_table.4b1, @ptr.as.UnsafeAs.impl(%Cpp.void, %C) [concrete] +// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.type.bab: type = fn_type @ptr.as.UnsafeAs.impl.Convert, @ptr.as.UnsafeAs.impl(%Cpp.void, %C) [concrete] +// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.ec2: %ptr.as.UnsafeAs.impl.Convert.type.bab = struct_value () [concrete] +// CHECK:STDOUT: %UnsafeAs.facet: %UnsafeAs.type.1d9 = facet_value %ptr.00a, (%UnsafeAs.impl_witness.78a) [concrete] +// CHECK:STDOUT: %UnsafeAs.WithSelf.Convert.type.e61: type = fn_type @UnsafeAs.WithSelf.Convert, @UnsafeAs.WithSelf(%ptr.6b6, %UnsafeAs.facet) [concrete] +// CHECK:STDOUT: %.fc7: type = fn_type_with_self_type %UnsafeAs.WithSelf.Convert.type.e61, %UnsafeAs.facet [concrete] +// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.specific_fn: = specific_function %ptr.as.UnsafeAs.impl.Convert.ec2, @ptr.as.UnsafeAs.impl.Convert(%Cpp.void, %C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.9c8: @ptr.as.UnsafeAs.impl.%ptr.as.UnsafeAs.impl.Convert.type (%ptr.as.UnsafeAs.impl.Convert.type.ed9) = import_ref Core//prelude/operators/as, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.UnsafeAs.impl.%ptr.as.UnsafeAs.impl.Convert (constants.%ptr.as.UnsafeAs.impl.Convert.83c)] -// CHECK:STDOUT: %UnsafeAs.impl_witness_table.ec8 = impl_witness_table (%Core.import_ref.9c8), @ptr.as.UnsafeAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.822: @ptr.as.UnsafeAs.impl.%ptr.as.UnsafeAs.impl.Convert.type (%ptr.as.UnsafeAs.impl.Convert.type.232) = import_ref Core//prelude/operators/as, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.UnsafeAs.impl.%ptr.as.UnsafeAs.impl.Convert (constants.%ptr.as.UnsafeAs.impl.Convert.691)] +// CHECK:STDOUT: %UnsafeAs.impl_witness_table.4b1 = impl_witness_table (%Core.import_ref.822), @ptr.as.UnsafeAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%input.param: %ptr.2d0) { +// CHECK:STDOUT: fn @F(%input.param: %ptr.00a) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.1c8 = value_binding_pattern p [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.fcb = value_binding_pattern p [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %input.ref: %ptr.2d0 = name_ref input, %input +// CHECK:STDOUT: %input.ref: %ptr.00a = name_ref input, %input // CHECK:STDOUT: %C.ref.loc10_38: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc10_39: type = ptr_type %C.ref.loc10_38 [concrete = constants.%ptr.6be] -// CHECK:STDOUT: %impl.elem0: %.adf = impl_witness_access constants.%UnsafeAs.impl_witness.cea, element0 [concrete = constants.%ptr.as.UnsafeAs.impl.Convert.eea] +// CHECK:STDOUT: %ptr.loc10_39: type = ptr_type %C.ref.loc10_38 [concrete = constants.%ptr.6b6] +// CHECK:STDOUT: %impl.elem0: %.fc7 = impl_witness_access constants.%UnsafeAs.impl_witness.78a, element0 [concrete = constants.%ptr.as.UnsafeAs.impl.Convert.ec2] // CHECK:STDOUT: %bound_method.loc10_35.1: = bound_method %input.ref, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.UnsafeAs.impl.Convert(constants.%Cpp.void, constants.%C) [concrete = constants.%ptr.as.UnsafeAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_35.2: = bound_method %input.ref, %specific_fn -// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.call: init %ptr.6be = call %bound_method.loc10_35.2(%input.ref) -// CHECK:STDOUT: %.loc10_35.1: %ptr.6be = value_of_initializer %ptr.as.UnsafeAs.impl.Convert.call -// CHECK:STDOUT: %.loc10_35.2: %ptr.6be = converted %input.ref, %.loc10_35.1 -// CHECK:STDOUT: %.loc10_18: type = splice_block %ptr.loc10_18 [concrete = constants.%ptr.6be] { +// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.call: init %ptr.6b6 = call %bound_method.loc10_35.2(%input.ref) +// CHECK:STDOUT: %.loc10_35.1: %ptr.6b6 = value_of_initializer %ptr.as.UnsafeAs.impl.Convert.call +// CHECK:STDOUT: %.loc10_35.2: %ptr.6b6 = converted %input.ref, %.loc10_35.1 +// CHECK:STDOUT: %.loc10_18: type = splice_block %ptr.loc10_18 [concrete = constants.%ptr.6b6] { // CHECK:STDOUT: %C.ref.loc10_17: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc10_18: type = ptr_type %C.ref.loc10_17 [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr.loc10_18: type = ptr_type %C.ref.loc10_17 [concrete = constants.%ptr.6b6] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.6be = value_binding p, %.loc10_35.2 +// CHECK:STDOUT: %p: %ptr.6b6 = value_binding p, %.loc10_35.2 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/range_for.carbon b/toolchain/check/testdata/interop/cpp/range_for.carbon index 209e96e827dd..5f5267049746 100644 --- a/toolchain/check/testdata/interop/cpp/range_for.carbon +++ b/toolchain/check/testdata/interop/cpp/range_for.carbon @@ -642,325 +642,325 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %facet_type.b7c: type = facet_type <@Destroy & @Copy> [concrete] +// CHECK:STDOUT: %facet_type.f48: type = facet_type <@Destroy & @Copy> [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Optional.Get.type.d22: type = fn_type @Optional.Get, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.Get.6fc: %Optional.Get.type.d22 = struct_value () [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.498: type = fn_type @Optional.HasValue, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.bf8: %Optional.HasValue.type.498 = struct_value () [symbolic] -// CHECK:STDOUT: %T.cb0: %facet_type.b7c = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.f8b: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.type.46f: type = fn_type @T.as_type.as.OptionalStorage.impl.Get, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.8c2: %T.as_type.as.OptionalStorage.impl.Get.type.46f = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.type.0ae: type = fn_type @T.as_type.as.OptionalStorage.impl.Has, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.e0f: %T.as_type.as.OptionalStorage.impl.Has.type.0ae = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.type.87a: type = fn_type @T.as_type.as.OptionalStorage.impl.Some, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.898: %T.as_type.as.OptionalStorage.impl.Some.type.87a = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.type.ceb: type = fn_type @T.as_type.as.OptionalStorage.impl.None, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.9dd: %T.as_type.as.OptionalStorage.impl.None.type.ceb = struct_value () [symbolic] -// CHECK:STDOUT: %.Self.e31: %Iterate.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.732: = lookup_impl_witness %.Self.e31, @Iterate [symbolic_self] -// CHECK:STDOUT: %impl.elem0.03d: %facet_type.b7c = impl_witness_access %Iterate.lookup_impl_witness.732, element0 [symbolic_self] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Optional.Get.type.bb9: type = fn_type @Optional.Get, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.Get.fa1: %Optional.Get.type.bb9 = struct_value () [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.e9e: type = fn_type @Optional.HasValue, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.6cd: %Optional.HasValue.type.e9e = struct_value () [symbolic] +// CHECK:STDOUT: %T.283: %facet_type.f48 = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.d50: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.type.029: type = fn_type @T.as_type.as.OptionalStorage.impl.Get, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.cb5: %T.as_type.as.OptionalStorage.impl.Get.type.029 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.type.4bc: type = fn_type @T.as_type.as.OptionalStorage.impl.Has, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.dc2: %T.as_type.as.OptionalStorage.impl.Has.type.4bc = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.type.800: type = fn_type @T.as_type.as.OptionalStorage.impl.Some, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.e83: %T.as_type.as.OptionalStorage.impl.Some.type.800 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.type.300: type = fn_type @T.as_type.as.OptionalStorage.impl.None, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.f54: %T.as_type.as.OptionalStorage.impl.None.type.300 = struct_value () [symbolic] +// CHECK:STDOUT: %.Self.35d: %Iterate.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.b37: = lookup_impl_witness %.Self.35d, @Iterate [symbolic_self] +// CHECK:STDOUT: %impl.elem0.903: %facet_type.f48 = impl_witness_access %Iterate.lookup_impl_witness.b37, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N.fe9: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %Int.2cc5f1.1: type = class_type @Int, @Int(%N.fe9) [symbolic] +// 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.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc30_47.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.2: = custom_witness (%Destroy.Op.2dd605.2), @Destroy [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N.fe9) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %facet_value.6cc: %facet_type.b7c = facet_value %i32, (%custom_witness.e20f1f.2, %Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Iterate_where.type.6aa: type = facet_type <@Iterate where %impl.elem0.03d = %facet_value.6cc> [concrete] -// CHECK:STDOUT: %R.5de: %Iterate_where.type.6aa = symbolic_binding R, 0 [symbolic] -// CHECK:STDOUT: %R.as_type.549: type = facet_access_type %R.5de [symbolic] -// CHECK:STDOUT: %pattern_type.8bb: type = pattern_type %R.as_type.549 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc30_47.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: %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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %facet_value.ba2: %facet_type.f48 = facet_value %i32, (%custom_witness.df9cc1.2, %Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Iterate_where.type.8bc: type = facet_type <@Iterate where %impl.elem0.903 = %facet_value.ba2> [concrete] +// CHECK:STDOUT: %R.891: %Iterate_where.type.8bc = symbolic_binding R, 0 [symbolic] +// CHECK:STDOUT: %R.as_type.67d: type = facet_access_type %R.891 [symbolic] +// CHECK:STDOUT: %pattern_type.e21: type = pattern_type %R.as_type.67d [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Int.2cc5f1.2: type = class_type @Int, @Int(%To) [symbolic] -// CHECK:STDOUT: %facet_type.049: type = facet_type <@IntFitsIn, @IntFitsIn(%Int.2cc5f1.2) & @AnyInt> [symbolic] -// CHECK:STDOUT: %From.094: %facet_type.049 = symbolic_binding From, 1 [symbolic] -// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.type.5e2: type = fn_type @From.as_type.as.ImplicitAs.impl.Convert, @From.as_type.as.ImplicitAs.impl(%To, %From.094) [symbolic] -// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.58d: %From.as_type.as.ImplicitAs.impl.Convert.type.5e2 = struct_value () [symbolic] +// CHECK:STDOUT: %Int.67af24.2: type = class_type @Int, @Int(%To) [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: %CppRangeForIterate.type: type = facet_type <@CppRangeForIterate> [concrete] -// CHECK:STDOUT: %.Self.10b: %CppRangeForIterate.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.5bf: = lookup_impl_witness %.Self.10b, @CppRangeForIterate [symbolic_self] -// CHECK:STDOUT: %impl.elem0.d47: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.5bf, element0 [symbolic_self] -// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.bce: = lookup_impl_witness %impl.elem0.d47, @CppUnsafeDeref [symbolic_self] -// CHECK:STDOUT: %impl.elem0.c87: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.bce, element0 [symbolic_self] -// CHECK:STDOUT: %impl.elem1.846: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.5bf, element1 [symbolic_self] -// CHECK:STDOUT: %CppRangeForIterate_where.type: type = facet_type <@CppRangeForIterate where %impl.elem0.d47 impls @Destroy and %impl.elem0.d47 impls @Copy and %impl.elem0.d47 impls @CppUnsafeDeref and %impl.elem0.d47 impls @EqWith, @EqWith(%impl.elem1.846) and %impl.elem0.d47 impls @Inc and %impl.elem0.c87 impls @Destroy and %impl.elem0.c87 impls @Copy and %impl.elem1.846 impls @Destroy and %impl.elem1.846 impls @Copy> [concrete] -// CHECK:STDOUT: %R.6c6: %CppRangeForIterate_where.type = symbolic_binding R, 0 [symbolic] -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.edd1fe.2: = lookup_impl_witness %R.6c6, @CppRangeForIterate [symbolic] -// CHECK:STDOUT: %impl.elem1.bdcd2d.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.edd1fe.2, element1 [symbolic] -// CHECK:STDOUT: %impl.elem0.d5966e.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.edd1fe.2, element0 [symbolic] -// CHECK:STDOUT: %tuple.type.384: type = tuple_type (%impl.elem0.d5966e.2, %impl.elem1.bdcd2d.2) [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.0ba: = lookup_impl_witness %tuple.type.384, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.2fe: %Destroy.type = facet_value %tuple.type.384, (%Destroy.lookup_impl_witness.0ba) [symbolic] -// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.ca4: = lookup_impl_witness %impl.elem0.d5966e.2, @CppUnsafeDeref [symbolic] -// CHECK:STDOUT: %impl.elem0.b10: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.ca4, element0 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.3d8: = lookup_impl_witness %impl.elem0.b10, @Destroy [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.bff: = lookup_impl_witness %impl.elem0.b10, @Copy [symbolic] -// CHECK:STDOUT: %facet_value.a30: %facet_type.b7c = facet_value %impl.elem0.b10, (%Destroy.lookup_impl_witness.3d8, %Copy.lookup_impl_witness.bff) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.5b5: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%R.6c6) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.cd2: %R.as_type.as.Iterate.impl.Next.type.5b5 = struct_value () [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.9b6: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%R.6c6) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.b29: %R.as_type.as.Iterate.impl.NewCursor.type.9b6 = struct_value () [symbolic] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.ccf: = lookup_impl_witness %R.5de, @Iterate [symbolic] -// CHECK:STDOUT: %Iterate.facet.6f6: %Iterate.type = facet_value %R.as_type.549, (%Iterate.lookup_impl_witness.ccf) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.4ee: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.6f6) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.652: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.6f6) [symbolic] -// CHECK:STDOUT: %.75c: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.4ee, %Iterate.facet.6f6 [symbolic] -// CHECK:STDOUT: %impl.elem2.d4c: %.75c = impl_witness_access %Iterate.lookup_impl_witness.ccf, element2 [symbolic] -// CHECK:STDOUT: %impl.elem1.ad9: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.ccf, element1 [symbolic] -// CHECK:STDOUT: %as_type.cf9: type = facet_access_type %impl.elem1.ad9 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.314: = specific_impl_function %impl.elem2.d4c, @Iterate.WithSelf.NewCursor(%Iterate.facet.6f6) [symbolic] -// CHECK:STDOUT: %ptr.233: type = ptr_type %as_type.cf9 [symbolic] -// CHECK:STDOUT: %.58a: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.652, %Iterate.facet.6f6 [symbolic] -// CHECK:STDOUT: %impl.elem3.25e: %.58a = impl_witness_access %Iterate.lookup_impl_witness.ccf, element3 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.388: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.6cc) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.80d: = impl_witness imports.%OptionalStorage.impl_witness_table.6f7, @T.as_type.as.OptionalStorage.impl(%facet_value.6cc) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.26b: %OptionalStorage.type = facet_value %i32, (%OptionalStorage.impl_witness.80d) [concrete] -// CHECK:STDOUT: %Optional.af5: type = class_type @Optional, @Optional(%OptionalStorage.facet.26b) [concrete] -// CHECK:STDOUT: %specific_impl_fn.85b: = specific_impl_function %impl.elem3.25e, @Iterate.WithSelf.Next(%Iterate.facet.6f6) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.4a8: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.26b) [concrete] -// CHECK:STDOUT: %Optional.HasValue.3cd: %Optional.HasValue.type.4a8 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.f91: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.26b) [concrete] -// CHECK:STDOUT: %Optional.Get.4e5: %Optional.Get.type.f91 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.facet.95dcf3.2: %Destroy.type = facet_value %i32, (%custom_witness.e20f1f.2) [concrete] -// CHECK:STDOUT: %MaybeUnformed.30b: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.95dcf3.2) [concrete] -// CHECK:STDOUT: %struct_type.value.has_value.f8d: type = struct_type {.value: %MaybeUnformed.30b, .has_value: bool} [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.3cd, @Optional.HasValue(%OptionalStorage.facet.26b) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.4e5, @Optional.Get(%OptionalStorage.facet.26b) [concrete] -// CHECK:STDOUT: %AddAssignWith.type.e37: type = facet_type <@AddAssignWith, @AddAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %ImplicitAs.type.594be1.2: type = facet_type <@ImplicitAs, @ImplicitAs(%Int.2cc5f1.1)> [symbolic] -// CHECK:STDOUT: %U.3d0: %ImplicitAs.type.594be1.2 = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.type.484532.1: type = fn_type @Int.as.AddAssignWith.impl.Op.1, @Int.as.AddAssignWith.impl(%N.fe9, %U.3d0) [symbolic] -// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.eec262.1: %Int.as.AddAssignWith.impl.Op.type.484532.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.type.484532.2: type = fn_type @Int.as.AddAssignWith.impl.Op.2, @Int.as.AddAssignWith.impl(%N.fe9, %U.3d0) [symbolic] -// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.eec262.2: %Int.as.AddAssignWith.impl.Op.type.484532.2 = struct_value () [symbolic] -// CHECK:STDOUT: %facet_type.e6c: type = facet_type <@IntFitsIn, @IntFitsIn(%i32) & @AnyInt> [concrete] -// CHECK:STDOUT: %custom_witness.218: = custom_witness (), @IntFitsIn, @IntFitsIn(%i32) [concrete] -// CHECK:STDOUT: %Int.as.AnyInt.impl.AsInt.type.5c3: type = fn_type @Int.as.AnyInt.impl.AsInt, @Int.as.AnyInt.impl(%N.fe9) [symbolic] -// CHECK:STDOUT: %Int.as.AnyInt.impl.AsInt.164: %Int.as.AnyInt.impl.AsInt.type.5c3 = struct_value () [symbolic] -// CHECK:STDOUT: %AnyInt.impl_witness.a35: = impl_witness imports.%AnyInt.impl_witness_table, @Int.as.AnyInt.impl(%int_32) [concrete] -// CHECK:STDOUT: %facet_value.1bd: %facet_type.e6c = facet_value %i32, (%custom_witness.218, %AnyInt.impl_witness.a35) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.eb2: = impl_witness imports.%ImplicitAs.impl_witness_table.f15, @From.as_type.as.ImplicitAs.impl(%int_32, %facet_value.1bd) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.9ea: %ImplicitAs.type.360 = facet_value %i32, (%ImplicitAs.impl_witness.eb2) [concrete] -// CHECK:STDOUT: %AddAssignWith.impl_witness.a8e: = impl_witness imports.%AddAssignWith.impl_witness_table, @Int.as.AddAssignWith.impl(%int_32, %ImplicitAs.facet.9ea) [concrete] -// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.type.b09202.1: type = fn_type @Int.as.AddAssignWith.impl.Op.2, @Int.as.AddAssignWith.impl(%int_32, %ImplicitAs.facet.9ea) [concrete] -// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.bbd220.1: %Int.as.AddAssignWith.impl.Op.type.b09202.1 = struct_value () [concrete] -// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.type.b09202.2: type = fn_type @Int.as.AddAssignWith.impl.Op.1, @Int.as.AddAssignWith.impl(%int_32, %ImplicitAs.facet.9ea) [concrete] -// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.bbd220.2: %Int.as.AddAssignWith.impl.Op.type.b09202.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet.c0a: %AddAssignWith.type.e37 = facet_value %i32, (%AddAssignWith.impl_witness.a8e) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.94b: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i32, %AddAssignWith.facet.c0a) [concrete] -// CHECK:STDOUT: %.35b: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.94b, %AddAssignWith.facet.c0a [concrete] -// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.specific_fn.f3f3f7.1: = specific_function %Int.as.AddAssignWith.impl.Op.bbd220.2, @Int.as.AddAssignWith.impl.Op.1(%int_32, %ImplicitAs.facet.9ea) [concrete] -// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.specific_fn.f3f3f7.2: = specific_function %Int.as.AddAssignWith.impl.Op.bbd220.1, @Int.as.AddAssignWith.impl.Op.2(%int_32, %ImplicitAs.facet.9ea) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.8: type = fn_type @Destroy.Op.loc34_19.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.8: %Destroy.Op.type.790b3b.8 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.730: = lookup_impl_witness %impl.elem1.ad9, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.183: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.ad9) [symbolic] -// CHECK:STDOUT: %.179: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.183, %impl.elem1.ad9 [symbolic] -// CHECK:STDOUT: %impl.elem0.636: %.179 = impl_witness_access %Destroy.lookup_impl_witness.730, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.56c: = specific_impl_function %impl.elem0.636, @Destroy.WithSelf.Op(%impl.elem1.ad9) [symbolic] +// CHECK:STDOUT: %.Self.6bd: %CppRangeForIterate.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.143: = lookup_impl_witness %.Self.6bd, @CppRangeForIterate [symbolic_self] +// CHECK:STDOUT: %impl.elem0.109: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.143, element0 [symbolic_self] +// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.712: = lookup_impl_witness %impl.elem0.109, @CppUnsafeDeref [symbolic_self] +// CHECK:STDOUT: %impl.elem0.56a: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.712, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem1.222: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.143, element1 [symbolic_self] +// CHECK:STDOUT: %CppRangeForIterate_where.type: type = facet_type <@CppRangeForIterate where %impl.elem0.109 impls @Destroy and %impl.elem0.109 impls @Copy and %impl.elem0.109 impls @CppUnsafeDeref and %impl.elem0.109 impls @EqWith, @EqWith(%impl.elem1.222) and %impl.elem0.109 impls @Inc and %impl.elem0.56a impls @Destroy and %impl.elem0.56a impls @Copy and %impl.elem1.222 impls @Destroy and %impl.elem1.222 impls @Copy> [concrete] +// CHECK:STDOUT: %R.39b: %CppRangeForIterate_where.type = symbolic_binding R, 0 [symbolic] +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.7e2712.2: = lookup_impl_witness %R.39b, @CppRangeForIterate [symbolic] +// CHECK:STDOUT: %impl.elem1.7a0bff.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.7e2712.2, element1 [symbolic] +// CHECK:STDOUT: %impl.elem0.73eb7f.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.7e2712.2, element0 [symbolic] +// CHECK:STDOUT: %tuple.type.3cf: type = tuple_type (%impl.elem0.73eb7f.2, %impl.elem1.7a0bff.2) [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.69f: = lookup_impl_witness %tuple.type.3cf, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.593: %Destroy.type = facet_value %tuple.type.3cf, (%Destroy.lookup_impl_witness.69f) [symbolic] +// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.aa7: = lookup_impl_witness %impl.elem0.73eb7f.2, @CppUnsafeDeref [symbolic] +// CHECK:STDOUT: %impl.elem0.af7: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.aa7, element0 [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.ec3: = lookup_impl_witness %impl.elem0.af7, @Destroy [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.a7a: = lookup_impl_witness %impl.elem0.af7, @Copy [symbolic] +// CHECK:STDOUT: %facet_value.194: %facet_type.f48 = facet_value %impl.elem0.af7, (%Destroy.lookup_impl_witness.ec3, %Copy.lookup_impl_witness.a7a) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.1f7: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%R.39b) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.0d6: %R.as_type.as.Iterate.impl.Next.type.1f7 = struct_value () [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.36f: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%R.39b) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.29b: %R.as_type.as.Iterate.impl.NewCursor.type.36f = struct_value () [symbolic] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.c86: = lookup_impl_witness %R.891, @Iterate [symbolic] +// CHECK:STDOUT: %Iterate.facet.bbb: %Iterate.type = facet_value %R.as_type.67d, (%Iterate.lookup_impl_witness.c86) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.d2b: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.bbb) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.28b: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.bbb) [symbolic] +// CHECK:STDOUT: %.3e2: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.d2b, %Iterate.facet.bbb [symbolic] +// CHECK:STDOUT: %impl.elem2.f53: %.3e2 = impl_witness_access %Iterate.lookup_impl_witness.c86, element2 [symbolic] +// CHECK:STDOUT: %impl.elem1.d31: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.c86, element1 [symbolic] +// CHECK:STDOUT: %as_type.ca2: type = facet_access_type %impl.elem1.d31 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.87a: = specific_impl_function %impl.elem2.f53, @Iterate.WithSelf.NewCursor(%Iterate.facet.bbb) [symbolic] +// CHECK:STDOUT: %ptr.3b4: type = ptr_type %as_type.ca2 [symbolic] +// CHECK:STDOUT: %.a8b: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.28b, %Iterate.facet.bbb [symbolic] +// CHECK:STDOUT: %impl.elem3.9c3: %.a8b = impl_witness_access %Iterate.lookup_impl_witness.c86, element3 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.970: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.ba2) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.a49: = impl_witness imports.%OptionalStorage.impl_witness_table.655, @T.as_type.as.OptionalStorage.impl(%facet_value.ba2) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.172: %OptionalStorage.type = facet_value %i32, (%OptionalStorage.impl_witness.a49) [concrete] +// CHECK:STDOUT: %Optional.e28: type = class_type @Optional, @Optional(%OptionalStorage.facet.172) [concrete] +// CHECK:STDOUT: %specific_impl_fn.ab2: = specific_impl_function %impl.elem3.9c3, @Iterate.WithSelf.Next(%Iterate.facet.bbb) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.c6d: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.172) [concrete] +// CHECK:STDOUT: %Optional.HasValue.89b: %Optional.HasValue.type.c6d = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.7e6: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.172) [concrete] +// CHECK:STDOUT: %Optional.Get.722: %Optional.Get.type.7e6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.facet.d07318.2: %Destroy.type = facet_value %i32, (%custom_witness.df9cc1.2) [concrete] +// CHECK:STDOUT: %MaybeUnformed.023: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.d07318.2) [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: = specific_function %Optional.HasValue.89b, @Optional.HasValue(%OptionalStorage.facet.172) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.722, @Optional.Get(%OptionalStorage.facet.172) [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] +// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.type.a58fbe.1: type = fn_type @Int.as.AddAssignWith.impl.Op.1, @Int.as.AddAssignWith.impl(%N.fe9, %U.4e6) [symbolic] +// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.45b360.1: %Int.as.AddAssignWith.impl.Op.type.a58fbe.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.type.a58fbe.2: type = fn_type @Int.as.AddAssignWith.impl.Op.2, @Int.as.AddAssignWith.impl(%N.fe9, %U.4e6) [symbolic] +// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.45b360.2: %Int.as.AddAssignWith.impl.Op.type.a58fbe.2 = struct_value () [symbolic] +// CHECK:STDOUT: %facet_type.138: type = facet_type <@IntFitsIn, @IntFitsIn(%i32) & @AnyInt> [concrete] +// CHECK:STDOUT: %custom_witness.36a: = custom_witness (), @IntFitsIn, @IntFitsIn(%i32) [concrete] +// CHECK:STDOUT: %Int.as.AnyInt.impl.AsInt.type.324: type = fn_type @Int.as.AnyInt.impl.AsInt, @Int.as.AnyInt.impl(%N.fe9) [symbolic] +// CHECK:STDOUT: %Int.as.AnyInt.impl.AsInt.ec6: %Int.as.AnyInt.impl.AsInt.type.324 = struct_value () [symbolic] +// CHECK:STDOUT: %AnyInt.impl_witness.b8b: = impl_witness imports.%AnyInt.impl_witness_table, @Int.as.AnyInt.impl(%int_32) [concrete] +// CHECK:STDOUT: %facet_value.0ec: %facet_type.138 = facet_value %i32, (%custom_witness.36a, %AnyInt.impl_witness.b8b) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.577: = impl_witness imports.%ImplicitAs.impl_witness_table.3b9, @From.as_type.as.ImplicitAs.impl(%int_32, %facet_value.0ec) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.eaa: %ImplicitAs.type.914 = facet_value %i32, (%ImplicitAs.impl_witness.577) [concrete] +// CHECK:STDOUT: %AddAssignWith.impl_witness.22e: = impl_witness imports.%AddAssignWith.impl_witness_table, @Int.as.AddAssignWith.impl(%int_32, %ImplicitAs.facet.eaa) [concrete] +// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.type.73460a.1: type = fn_type @Int.as.AddAssignWith.impl.Op.2, @Int.as.AddAssignWith.impl(%int_32, %ImplicitAs.facet.eaa) [concrete] +// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.00e760.1: %Int.as.AddAssignWith.impl.Op.type.73460a.1 = struct_value () [concrete] +// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.type.73460a.2: type = fn_type @Int.as.AddAssignWith.impl.Op.1, @Int.as.AddAssignWith.impl(%int_32, %ImplicitAs.facet.eaa) [concrete] +// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.00e760.2: %Int.as.AddAssignWith.impl.Op.type.73460a.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet.d42: %AddAssignWith.type.941 = facet_value %i32, (%AddAssignWith.impl_witness.22e) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.f66: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i32, %AddAssignWith.facet.d42) [concrete] +// CHECK:STDOUT: %.b28: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.f66, %AddAssignWith.facet.d42 [concrete] +// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.specific_fn.b14d9d.1: = specific_function %Int.as.AddAssignWith.impl.Op.00e760.2, @Int.as.AddAssignWith.impl.Op.1(%int_32, %ImplicitAs.facet.eaa) [concrete] +// CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.specific_fn.b14d9d.2: = specific_function %Int.as.AddAssignWith.impl.Op.00e760.1, @Int.as.AddAssignWith.impl.Op.2(%int_32, %ImplicitAs.facet.eaa) [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.8: type = fn_type @Destroy.Op.loc34_19.5 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.8: %Destroy.Op.type.1d8f74.8 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.5d5: = lookup_impl_witness %impl.elem1.d31, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.515: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.d31) [symbolic] +// CHECK:STDOUT: %.94f: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.515, %impl.elem1.d31 [symbolic] +// CHECK:STDOUT: %impl.elem0.e52: %.94f = impl_witness_access %Destroy.lookup_impl_witness.5d5, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.12e: = specific_impl_function %impl.elem0.e52, @Destroy.WithSelf.Op(%impl.elem1.d31) [symbolic] // CHECK:STDOUT: %MutableRange: type = class_type @MutableRange [concrete] -// CHECK:STDOUT: %pattern_type.b76: type = pattern_type %MutableRange [concrete] +// CHECK:STDOUT: %pattern_type.e635: type = pattern_type %MutableRange [concrete] // CHECK:STDOUT: %ConstRange: type = class_type @ConstRange [concrete] -// CHECK:STDOUT: %pattern_type.631: type = pattern_type %ConstRange [concrete] +// CHECK:STDOUT: %pattern_type.0ba: type = pattern_type %ConstRange [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %Iterator.826: type = class_type @Iterator.1 [concrete] +// CHECK:STDOUT: %Iterator.3ee: type = class_type @Iterator.1 [concrete] // CHECK:STDOUT: %MutableRange.Begin.type: type = fn_type @MutableRange.Begin [concrete] // CHECK:STDOUT: %MutableRange.Begin: %MutableRange.Begin.type = struct_value () [concrete] // CHECK:STDOUT: %MutableRange.End.type: type = fn_type @MutableRange.End [concrete] // CHECK:STDOUT: %MutableRange.End: %MutableRange.End.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.544: = custom_witness (%Iterator.826, %Iterator.826, %MutableRange.Begin, %MutableRange.End), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %Iterator.Op.type.134d4f.1: type = fn_type @Iterator.Op.1 [concrete] -// CHECK:STDOUT: %Iterator.Op.f056ae.1: %Iterator.Op.type.134d4f.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b4c: = custom_witness (%i32, %Iterator.Op.f056ae.1), @CppUnsafeDeref [concrete] -// CHECK:STDOUT: %Iterator.Op.type.134d4f.2: type = fn_type @Iterator.Op.2 [concrete] -// CHECK:STDOUT: %Iterator.Op.f056ae.2: %Iterator.Op.type.134d4f.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.ef9: = custom_witness (%Iterator.Op.f056ae.2), @Destroy [concrete] -// CHECK:STDOUT: %Iterator.Op.type.134d4f.3: type = fn_type @Iterator.Op.3 [concrete] -// CHECK:STDOUT: %Iterator.Op.f056ae.3: %Iterator.Op.type.134d4f.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.3a5: = custom_witness (%Iterator.Op.f056ae.3), @Copy [concrete] -// CHECK:STDOUT: %Equal.type.eace26.1: type = fn_type @Equal.1 [concrete] -// CHECK:STDOUT: %Equal.8c4faf.1: %Equal.type.eace26.1 = struct_value () [concrete] -// CHECK:STDOUT: %NotEqual.type.ca4b73.1: type = fn_type @NotEqual.1 [concrete] -// CHECK:STDOUT: %NotEqual.6eaf3e.1: %NotEqual.type.ca4b73.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.baa: = custom_witness (%Equal.8c4faf.1, %NotEqual.6eaf3e.1), @EqWith, @EqWith(%Iterator.826) [concrete] -// CHECK:STDOUT: %Iterator.Op.type.134d4f.4: type = fn_type @Iterator.Op.4 [concrete] -// CHECK:STDOUT: %Iterator.Op.f056ae.4: %Iterator.Op.type.134d4f.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.f9b: = custom_witness (%Iterator.Op.f056ae.4), @Inc [concrete] -// CHECK:STDOUT: %facet_value.31b: %CppRangeForIterate_where.type = facet_value %MutableRange, (%custom_witness.e20f1f.2, %Copy.impl_witness.1a4, %custom_witness.544, %custom_witness.ef9, %custom_witness.3a5, %custom_witness.b4c, %custom_witness.baa, %custom_witness.f9b) [concrete] -// CHECK:STDOUT: %tuple.type.17d: type = tuple_type (%Iterator.826, %Iterator.826) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.9: type = fn_type @Destroy.Op.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.9: %Destroy.Op.type.790b3b.9 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.9: = custom_witness (%Destroy.Op.2dd605.9), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.0ec: %Destroy.type = facet_value %tuple.type.17d, (%custom_witness.e20f1f.9) [concrete] -// CHECK:STDOUT: %Iterate.impl_witness.a27: = impl_witness imports.%Iterate.impl_witness_table.9f0, @R.as_type.as.Iterate.impl(%facet_value.31b) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.872: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%facet_value.31b) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.b35: %R.as_type.as.Iterate.impl.NewCursor.type.872 = struct_value () [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.4d0: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%facet_value.31b) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.dbe: %R.as_type.as.Iterate.impl.Next.type.4d0 = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet.989: %Iterate.type = facet_value %MutableRange, (%Iterate.impl_witness.a27) [concrete] -// CHECK:STDOUT: %facet_value.b9f: %Iterate_where.type.6aa = facet_value %MutableRange, (%Iterate.impl_witness.a27) [concrete] -// CHECK:STDOUT: %Iterator.4f0: type = class_type @Iterator.2 [concrete] +// CHECK:STDOUT: %custom_witness.ed3: = custom_witness (%Iterator.3ee, %Iterator.3ee, %MutableRange.Begin, %MutableRange.End), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %Iterator.Op.type.0aed5d.1: type = fn_type @Iterator.Op.1 [concrete] +// CHECK:STDOUT: %Iterator.Op.a2a866.1: %Iterator.Op.type.0aed5d.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.ef8: = custom_witness (%i32, %Iterator.Op.a2a866.1), @CppUnsafeDeref [concrete] +// CHECK:STDOUT: %Iterator.Op.type.0aed5d.2: type = fn_type @Iterator.Op.2 [concrete] +// CHECK:STDOUT: %Iterator.Op.a2a866.2: %Iterator.Op.type.0aed5d.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.955: = custom_witness (%Iterator.Op.a2a866.2), @Destroy [concrete] +// CHECK:STDOUT: %Iterator.Op.type.0aed5d.3: type = fn_type @Iterator.Op.3 [concrete] +// CHECK:STDOUT: %Iterator.Op.a2a866.3: %Iterator.Op.type.0aed5d.3 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.1f5: = custom_witness (%Iterator.Op.a2a866.3), @Copy [concrete] +// CHECK:STDOUT: %Equal.type.ca8475.1: type = fn_type @Equal.1 [concrete] +// CHECK:STDOUT: %Equal.285b15.1: %Equal.type.ca8475.1 = struct_value () [concrete] +// 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: %Iterator.Op.type.0aed5d.4: type = fn_type @Iterator.Op.4 [concrete] +// CHECK:STDOUT: %Iterator.Op.a2a866.4: %Iterator.Op.type.0aed5d.4 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.444: = custom_witness (%Iterator.Op.a2a866.4), @Inc [concrete] +// CHECK:STDOUT: %facet_value.cd6: %CppRangeForIterate_where.type = facet_value %MutableRange, (%custom_witness.df9cc1.2, %Copy.impl_witness.0e0, %custom_witness.ed3, %custom_witness.955, %custom_witness.1f5, %custom_witness.ef8, %custom_witness.981, %custom_witness.444) [concrete] +// CHECK:STDOUT: %tuple.type.508: type = tuple_type (%Iterator.3ee, %Iterator.3ee) [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.9: type = fn_type @Destroy.Op.2 [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.30f: %Destroy.type = facet_value %tuple.type.508, (%custom_witness.df9cc1.9) [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.cea: = impl_witness imports.%Iterate.impl_witness_table.344, @R.as_type.as.Iterate.impl(%facet_value.cd6) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.f1f: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%facet_value.cd6) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.8d2: %R.as_type.as.Iterate.impl.NewCursor.type.f1f = struct_value () [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.dba: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%facet_value.cd6) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.34d: %R.as_type.as.Iterate.impl.Next.type.dba = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet.ffb: %Iterate.type = facet_value %MutableRange, (%Iterate.impl_witness.cea) [concrete] +// CHECK:STDOUT: %facet_value.879: %Iterate_where.type.8bc = facet_value %MutableRange, (%Iterate.impl_witness.cea) [concrete] +// CHECK:STDOUT: %Iterator.260: type = class_type @Iterator.2 [concrete] // CHECK:STDOUT: %ConstRange.Begin.type: type = fn_type @ConstRange.Begin [concrete] // CHECK:STDOUT: %ConstRange.Begin: %ConstRange.Begin.type = struct_value () [concrete] // CHECK:STDOUT: %ConstRange.End.type: type = fn_type @ConstRange.End [concrete] // CHECK:STDOUT: %ConstRange.End: %ConstRange.End.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.83f: = custom_witness (%Iterator.4f0, %Iterator.4f0, %ConstRange.Begin, %ConstRange.End), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %Iterator.Op.type.9f2350.1: type = fn_type @Iterator.Op.5 [concrete] -// CHECK:STDOUT: %Iterator.Op.7b7347.1: %Iterator.Op.type.9f2350.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.852: = custom_witness (%i32, %Iterator.Op.7b7347.1), @CppUnsafeDeref [concrete] -// CHECK:STDOUT: %Iterator.Op.type.9f2350.2: type = fn_type @Iterator.Op.6 [concrete] -// CHECK:STDOUT: %Iterator.Op.7b7347.2: %Iterator.Op.type.9f2350.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df0: = custom_witness (%Iterator.Op.7b7347.2), @Destroy [concrete] -// CHECK:STDOUT: %Iterator.Op.type.9f2350.3: type = fn_type @Iterator.Op.7 [concrete] -// CHECK:STDOUT: %Iterator.Op.7b7347.3: %Iterator.Op.type.9f2350.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.f14: = custom_witness (%Iterator.Op.7b7347.3), @Copy [concrete] -// CHECK:STDOUT: %Equal.type.eace26.2: type = fn_type @Equal.2 [concrete] -// CHECK:STDOUT: %Equal.8c4faf.2: %Equal.type.eace26.2 = struct_value () [concrete] -// CHECK:STDOUT: %NotEqual.type.ca4b73.2: type = fn_type @NotEqual.2 [concrete] -// CHECK:STDOUT: %NotEqual.6eaf3e.2: %NotEqual.type.ca4b73.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.f7c: = custom_witness (%Equal.8c4faf.2, %NotEqual.6eaf3e.2), @EqWith, @EqWith(%Iterator.4f0) [concrete] -// CHECK:STDOUT: %Iterator.Op.type.9f2350.4: type = fn_type @Iterator.Op.8 [concrete] -// CHECK:STDOUT: %Iterator.Op.7b7347.4: %Iterator.Op.type.9f2350.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.c18: = custom_witness (%Iterator.Op.7b7347.4), @Inc [concrete] -// CHECK:STDOUT: %facet_value.c7f: %CppRangeForIterate_where.type = facet_value %ConstRange, (%custom_witness.e20f1f.2, %Copy.impl_witness.1a4, %custom_witness.83f, %custom_witness.df0, %custom_witness.f14, %custom_witness.852, %custom_witness.f7c, %custom_witness.c18) [concrete] -// CHECK:STDOUT: %tuple.type.d1a: type = tuple_type (%Iterator.4f0, %Iterator.4f0) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.10: type = fn_type @Destroy.Op.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.10: %Destroy.Op.type.790b3b.10 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.10: = custom_witness (%Destroy.Op.2dd605.10), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.72a: %Destroy.type = facet_value %tuple.type.d1a, (%custom_witness.e20f1f.10) [concrete] -// CHECK:STDOUT: %Iterate.impl_witness.7a3: = impl_witness imports.%Iterate.impl_witness_table.9f0, @R.as_type.as.Iterate.impl(%facet_value.c7f) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.8bf: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%facet_value.c7f) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.130: %R.as_type.as.Iterate.impl.NewCursor.type.8bf = struct_value () [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.77d: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%facet_value.c7f) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.fb6: %R.as_type.as.Iterate.impl.Next.type.77d = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet.bdf: %Iterate.type = facet_value %ConstRange, (%Iterate.impl_witness.7a3) [concrete] -// CHECK:STDOUT: %facet_value.bbe: %Iterate_where.type.6aa = facet_value %ConstRange, (%Iterate.impl_witness.7a3) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.5d1: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.989) [concrete] -// CHECK:STDOUT: %.34e: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.5d1, %Iterate.facet.989 [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.specific_fn.827: = specific_function %R.as_type.as.Iterate.impl.NewCursor.b35, @R.as_type.as.Iterate.impl.NewCursor(%facet_value.31b) [concrete] -// CHECK:STDOUT: %complete_type.3ec: = complete_type_witness %tuple.type.17d [concrete] -// CHECK:STDOUT: %ptr.f42: type = ptr_type %tuple.type.17d [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.68f: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.989) [concrete] -// CHECK:STDOUT: %.42b: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.68f, %Iterate.facet.989 [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.specific_fn.712: = specific_function %R.as_type.as.Iterate.impl.Next.dbe, @R.as_type.as.Iterate.impl.Next(%facet_value.31b) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.511: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.0ec) [concrete] -// CHECK:STDOUT: %.824: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.511, %Destroy.facet.0ec [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.bf8: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.bdf) [concrete] -// CHECK:STDOUT: %.3d0: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.bf8, %Iterate.facet.bdf [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.specific_fn.625: = specific_function %R.as_type.as.Iterate.impl.NewCursor.130, @R.as_type.as.Iterate.impl.NewCursor(%facet_value.c7f) [concrete] -// CHECK:STDOUT: %complete_type.f2c: = complete_type_witness %tuple.type.d1a [concrete] -// CHECK:STDOUT: %ptr.11b: type = ptr_type %tuple.type.d1a [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.3bc: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.bdf) [concrete] -// CHECK:STDOUT: %.da0: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.3bc, %Iterate.facet.bdf [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.specific_fn.272: = specific_function %R.as_type.as.Iterate.impl.Next.fb6, @R.as_type.as.Iterate.impl.Next(%facet_value.c7f) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.fa3: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.72a) [concrete] -// CHECK:STDOUT: %.b6b: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.fa3, %Destroy.facet.72a [concrete] +// CHECK:STDOUT: %custom_witness.23e: = custom_witness (%Iterator.260, %Iterator.260, %ConstRange.Begin, %ConstRange.End), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %Iterator.Op.type.0f34b8.1: type = fn_type @Iterator.Op.5 [concrete] +// CHECK:STDOUT: %Iterator.Op.1c3e4a.1: %Iterator.Op.type.0f34b8.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.adb: = custom_witness (%i32, %Iterator.Op.1c3e4a.1), @CppUnsafeDeref [concrete] +// CHECK:STDOUT: %Iterator.Op.type.0f34b8.2: type = fn_type @Iterator.Op.6 [concrete] +// CHECK:STDOUT: %Iterator.Op.1c3e4a.2: %Iterator.Op.type.0f34b8.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6e8: = custom_witness (%Iterator.Op.1c3e4a.2), @Destroy [concrete] +// CHECK:STDOUT: %Iterator.Op.type.0f34b8.3: type = fn_type @Iterator.Op.7 [concrete] +// CHECK:STDOUT: %Iterator.Op.1c3e4a.3: %Iterator.Op.type.0f34b8.3 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.150: = custom_witness (%Iterator.Op.1c3e4a.3), @Copy [concrete] +// CHECK:STDOUT: %Equal.type.ca8475.2: type = fn_type @Equal.2 [concrete] +// CHECK:STDOUT: %Equal.285b15.2: %Equal.type.ca8475.2 = struct_value () [concrete] +// 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: %Iterator.Op.type.0f34b8.4: type = fn_type @Iterator.Op.8 [concrete] +// CHECK:STDOUT: %Iterator.Op.1c3e4a.4: %Iterator.Op.type.0f34b8.4 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.746: = custom_witness (%Iterator.Op.1c3e4a.4), @Inc [concrete] +// CHECK:STDOUT: %facet_value.e88: %CppRangeForIterate_where.type = facet_value %ConstRange, (%custom_witness.df9cc1.2, %Copy.impl_witness.0e0, %custom_witness.23e, %custom_witness.6e8, %custom_witness.150, %custom_witness.adb, %custom_witness.941, %custom_witness.746) [concrete] +// CHECK:STDOUT: %tuple.type.69f: type = tuple_type (%Iterator.260, %Iterator.260) [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.10: type = fn_type @Destroy.Op.3 [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.e4c: %Destroy.type = facet_value %tuple.type.69f, (%custom_witness.df9cc1.10) [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.12a: = impl_witness imports.%Iterate.impl_witness_table.344, @R.as_type.as.Iterate.impl(%facet_value.e88) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.fe1: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%facet_value.e88) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.2f6: %R.as_type.as.Iterate.impl.NewCursor.type.fe1 = struct_value () [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.f9d: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%facet_value.e88) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.393: %R.as_type.as.Iterate.impl.Next.type.f9d = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet.5eb: %Iterate.type = facet_value %ConstRange, (%Iterate.impl_witness.12a) [concrete] +// CHECK:STDOUT: %facet_value.740: %Iterate_where.type.8bc = facet_value %ConstRange, (%Iterate.impl_witness.12a) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.dcb: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.ffb) [concrete] +// CHECK:STDOUT: %.d6a: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.dcb, %Iterate.facet.ffb [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.specific_fn.bf1: = specific_function %R.as_type.as.Iterate.impl.NewCursor.8d2, @R.as_type.as.Iterate.impl.NewCursor(%facet_value.cd6) [concrete] +// CHECK:STDOUT: %complete_type.c28: = complete_type_witness %tuple.type.508 [concrete] +// CHECK:STDOUT: %ptr.45c: type = ptr_type %tuple.type.508 [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.30e: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.ffb) [concrete] +// CHECK:STDOUT: %.d23: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.30e, %Iterate.facet.ffb [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.specific_fn.dd5: = specific_function %R.as_type.as.Iterate.impl.Next.34d, @R.as_type.as.Iterate.impl.Next(%facet_value.cd6) [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.ab5: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.5eb) [concrete] +// CHECK:STDOUT: %.744: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.ab5, %Iterate.facet.5eb [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.specific_fn.a05: = specific_function %R.as_type.as.Iterate.impl.NewCursor.2f6, @R.as_type.as.Iterate.impl.NewCursor(%facet_value.e88) [concrete] +// CHECK:STDOUT: %complete_type.8d5: = complete_type_witness %tuple.type.69f [concrete] +// CHECK:STDOUT: %ptr.c5c: type = ptr_type %tuple.type.69f [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.e25: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.5eb) [concrete] +// CHECK:STDOUT: %.03b: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.e25, %Iterate.facet.5eb [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.specific_fn.4cc: = specific_function %R.as_type.as.Iterate.impl.Next.393, @R.as_type.as.Iterate.impl.Next(%facet_value.e88) [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.0b9: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.498) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.bf8)] -// CHECK:STDOUT: %Core.import_ref.61f: @Optional.%Optional.Get.type (%Optional.Get.type.d22) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.6fc)] -// CHECK:STDOUT: %Core.import_ref.2b5: type = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%DefaultOptionalStorage (constants.%DefaultOptionalStorage.f8b)] -// CHECK:STDOUT: %Core.import_ref.b0a: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None.type (%T.as_type.as.OptionalStorage.impl.None.type.ceb) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None (constants.%T.as_type.as.OptionalStorage.impl.None.9dd)] -// CHECK:STDOUT: %Core.import_ref.3fc: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some.type (%T.as_type.as.OptionalStorage.impl.Some.type.87a) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some (constants.%T.as_type.as.OptionalStorage.impl.Some.898)] -// CHECK:STDOUT: %Core.import_ref.986: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has.type (%T.as_type.as.OptionalStorage.impl.Has.type.0ae) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has (constants.%T.as_type.as.OptionalStorage.impl.Has.e0f)] -// CHECK:STDOUT: %Core.import_ref.557: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get.type (%T.as_type.as.OptionalStorage.impl.Get.type.46f) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get (constants.%T.as_type.as.OptionalStorage.impl.Get.8c2)] -// CHECK:STDOUT: %Core.import_ref.999 = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.6f7 = impl_witness_table (%Core.import_ref.2b5, %Core.import_ref.b0a, %Core.import_ref.3fc, %Core.import_ref.986, %Core.import_ref.557, %Core.import_ref.999), @T.as_type.as.OptionalStorage.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.3b9: @From.as_type.as.ImplicitAs.impl.%From.as_type.as.ImplicitAs.impl.Convert.type (%From.as_type.as.ImplicitAs.impl.Convert.type.5e2) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @From.as_type.as.ImplicitAs.impl.%From.as_type.as.ImplicitAs.impl.Convert (constants.%From.as_type.as.ImplicitAs.impl.Convert.58d)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.f15 = impl_witness_table (%Core.import_ref.3b9), @From.as_type.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.89a: %facet_type.b7c = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%facet_value (constants.%facet_value.a30)] -// CHECK:STDOUT: %Core.import_ref.9ea: %Destroy.type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%Destroy.facet (constants.%Destroy.facet.2fe)] -// CHECK:STDOUT: %Core.import_ref.a6c: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor.type (%R.as_type.as.Iterate.impl.NewCursor.type.9b6) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor (constants.%R.as_type.as.Iterate.impl.NewCursor.b29)] -// CHECK:STDOUT: %Core.import_ref.a02: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next.type (%R.as_type.as.Iterate.impl.Next.type.5b5) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next (constants.%R.as_type.as.Iterate.impl.Next.cd2)] -// CHECK:STDOUT: %Iterate.impl_witness_table.9f0 = impl_witness_table (%Core.import_ref.89a, %Core.import_ref.9ea, %Core.import_ref.a6c, %Core.import_ref.a02), @R.as_type.as.Iterate.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.328: @Int.as.AddAssignWith.impl.%Int.as.AddAssignWith.impl.Op.type.2 (%Int.as.AddAssignWith.impl.Op.type.484532.1) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.AddAssignWith.impl.%Int.as.AddAssignWith.impl.Op.2 (constants.%Int.as.AddAssignWith.impl.Op.eec262.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table = impl_witness_table (%Core.import_ref.328), @Int.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.d27: @Int.as.AddAssignWith.impl.%Int.as.AddAssignWith.impl.Op.type.1 (%Int.as.AddAssignWith.impl.Op.type.484532.2) = import_ref Core//prelude/types/int, Op, loaded [symbolic = @Int.as.AddAssignWith.impl.%Int.as.AddAssignWith.impl.Op.1 (constants.%Int.as.AddAssignWith.impl.Op.eec262.2)] +// CHECK:STDOUT: %Core.import_ref.bb6: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.e9e) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.6cd)] +// CHECK:STDOUT: %Core.import_ref.daba: @Optional.%Optional.Get.type (%Optional.Get.type.bb9) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.fa1)] +// CHECK:STDOUT: %Core.import_ref.0c6: type = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%DefaultOptionalStorage (constants.%DefaultOptionalStorage.d50)] +// CHECK:STDOUT: %Core.import_ref.f4f: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None.type (%T.as_type.as.OptionalStorage.impl.None.type.300) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None (constants.%T.as_type.as.OptionalStorage.impl.None.f54)] +// CHECK:STDOUT: %Core.import_ref.18f: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some.type (%T.as_type.as.OptionalStorage.impl.Some.type.800) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some (constants.%T.as_type.as.OptionalStorage.impl.Some.e83)] +// CHECK:STDOUT: %Core.import_ref.c68: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has.type (%T.as_type.as.OptionalStorage.impl.Has.type.4bc) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has (constants.%T.as_type.as.OptionalStorage.impl.Has.dc2)] +// CHECK:STDOUT: %Core.import_ref.a83: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get.type (%T.as_type.as.OptionalStorage.impl.Get.type.029) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get (constants.%T.as_type.as.OptionalStorage.impl.Get.cb5)] +// CHECK:STDOUT: %Core.import_ref.aaa = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.655 = impl_witness_table (%Core.import_ref.0c6, %Core.import_ref.f4f, %Core.import_ref.18f, %Core.import_ref.c68, %Core.import_ref.a83, %Core.import_ref.aaa), @T.as_type.as.OptionalStorage.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.2a4: @From.as_type.as.ImplicitAs.impl.%From.as_type.as.ImplicitAs.impl.Convert.type (%From.as_type.as.ImplicitAs.impl.Convert.type.7fa) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @From.as_type.as.ImplicitAs.impl.%From.as_type.as.ImplicitAs.impl.Convert (constants.%From.as_type.as.ImplicitAs.impl.Convert.643)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.3b9 = impl_witness_table (%Core.import_ref.2a4), @From.as_type.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.301: %facet_type.f48 = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%facet_value (constants.%facet_value.194)] +// CHECK:STDOUT: %Core.import_ref.89f: %Destroy.type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%Destroy.facet (constants.%Destroy.facet.593)] +// CHECK:STDOUT: %Core.import_ref.3e6: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor.type (%R.as_type.as.Iterate.impl.NewCursor.type.36f) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor (constants.%R.as_type.as.Iterate.impl.NewCursor.29b)] +// CHECK:STDOUT: %Core.import_ref.85d: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next.type (%R.as_type.as.Iterate.impl.Next.type.1f7) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next (constants.%R.as_type.as.Iterate.impl.Next.0d6)] +// CHECK:STDOUT: %Iterate.impl_witness_table.344 = impl_witness_table (%Core.import_ref.301, %Core.import_ref.89f, %Core.import_ref.3e6, %Core.import_ref.85d), @R.as_type.as.Iterate.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.098: @Int.as.AddAssignWith.impl.%Int.as.AddAssignWith.impl.Op.type.2 (%Int.as.AddAssignWith.impl.Op.type.a58fbe.1) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.AddAssignWith.impl.%Int.as.AddAssignWith.impl.Op.2 (constants.%Int.as.AddAssignWith.impl.Op.45b360.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table = impl_witness_table (%Core.import_ref.098), @Int.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.1b1: @Int.as.AddAssignWith.impl.%Int.as.AddAssignWith.impl.Op.type.1 (%Int.as.AddAssignWith.impl.Op.type.a58fbe.2) = import_ref Core//prelude/types/int, Op, loaded [symbolic = @Int.as.AddAssignWith.impl.%Int.as.AddAssignWith.impl.Op.1 (constants.%Int.as.AddAssignWith.impl.Op.45b360.2)] // CHECK:STDOUT: %Core.import_ref.47b: Core.IntLiteral = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.AnyInt.impl.%N (constants.%N.fe9)] -// CHECK:STDOUT: %Core.import_ref.d13: @Int.as.AnyInt.impl.%Int.as.AnyInt.impl.AsInt.type (%Int.as.AnyInt.impl.AsInt.type.5c3) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.AnyInt.impl.%Int.as.AnyInt.impl.AsInt (constants.%Int.as.AnyInt.impl.AsInt.164)] -// CHECK:STDOUT: %AnyInt.impl_witness_table = impl_witness_table (%Core.import_ref.47b, %Core.import_ref.d13), @Int.as.AnyInt.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.a64: @Int.as.AnyInt.impl.%Int.as.AnyInt.impl.AsInt.type (%Int.as.AnyInt.impl.AsInt.type.324) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.AnyInt.impl.%Int.as.AnyInt.impl.AsInt (constants.%Int.as.AnyInt.impl.AsInt.ec6)] +// CHECK:STDOUT: %AnyInt.impl_witness_table = impl_witness_table (%Core.import_ref.47b, %Core.import_ref.a64), @Int.as.AnyInt.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Test(%R.loc30_10.2: %Iterate_where.type.6aa) { +// CHECK:STDOUT: generic fn @Test(%R.loc30_10.2: %Iterate_where.type.8bc) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc30_10.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.ccf)] -// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %R.as_type.loc30_55.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet (constants.%Iterate.facet.6f6)] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.4ee)] -// CHECK:STDOUT: %.loc34_19.12: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet [symbolic = %.loc34_19.12 (constants.%.75c)] -// CHECK:STDOUT: %impl.elem2.loc34_19.2: @Test.%.loc34_19.12 (%.75c) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc34_19.2 (constants.%impl.elem2.d4c)] -// CHECK:STDOUT: %specific_impl_fn.loc34_19.4: = specific_impl_function %impl.elem2.loc34_19.2, @Iterate.WithSelf.NewCursor(%Iterate.facet) [symbolic = %specific_impl_fn.loc34_19.4 (constants.%specific_impl_fn.314)] +// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc30_10.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.c86)] +// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %R.as_type.loc30_55.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet (constants.%Iterate.facet.bbb)] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.d2b)] +// CHECK:STDOUT: %.loc34_19.12: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet [symbolic = %.loc34_19.12 (constants.%.3e2)] +// CHECK:STDOUT: %impl.elem2.loc34_19.2: @Test.%.loc34_19.12 (%.3e2) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc34_19.2 (constants.%impl.elem2.f53)] +// CHECK:STDOUT: %specific_impl_fn.loc34_19.4: = specific_impl_function %impl.elem2.loc34_19.2, @Iterate.WithSelf.NewCursor(%Iterate.facet) [symbolic = %specific_impl_fn.loc34_19.4 (constants.%specific_impl_fn.87a)] // CHECK:STDOUT: -// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.233)] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.652)] -// CHECK:STDOUT: %.loc34_19.13: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet [symbolic = %.loc34_19.13 (constants.%.58a)] -// CHECK:STDOUT: %impl.elem3.loc34_19.2: @Test.%.loc34_19.13 (%.58a) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc34_19.2 (constants.%impl.elem3.25e)] -// CHECK:STDOUT: %specific_impl_fn.loc34_19.5: = specific_impl_function %impl.elem3.loc34_19.2, @Iterate.WithSelf.Next(%Iterate.facet) [symbolic = %specific_impl_fn.loc34_19.5 (constants.%specific_impl_fn.85b)] -// 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.183)] -// CHECK:STDOUT: %.loc34_19.14: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc34_19.14 (constants.%.179)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.730)] -// CHECK:STDOUT: %impl.elem0.loc34_19.2: @Test.%.loc34_19.14 (%.179) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_19.2 (constants.%impl.elem0.636)] -// 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.56c)] +// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.3b4)] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.28b)] +// CHECK:STDOUT: %.loc34_19.13: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet [symbolic = %.loc34_19.13 (constants.%.a8b)] +// CHECK:STDOUT: %impl.elem3.loc34_19.2: @Test.%.loc34_19.13 (%.a8b) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc34_19.2 (constants.%impl.elem3.9c3)] +// CHECK:STDOUT: %specific_impl_fn.loc34_19.5: = specific_impl_function %impl.elem3.loc34_19.2, @Iterate.WithSelf.Next(%Iterate.facet) [symbolic = %specific_impl_fn.loc34_19.5 (constants.%specific_impl_fn.ab2)] +// 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.515)] +// CHECK:STDOUT: %.loc34_19.14: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc34_19.14 (constants.%.94f)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.5d5)] +// CHECK:STDOUT: %impl.elem0.loc34_19.2: @Test.%.loc34_19.14 (%.94f) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_19.2 (constants.%impl.elem0.e52)] +// 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.12e)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%r.param: @Test.%R.as_type.loc30_55.1 (%R.as_type.549)) { +// CHECK:STDOUT: fn(%r.param: @Test.%R.as_type.loc30_55.1 (%R.as_type.67d)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.104 = value_binding_pattern i [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.6b6 = value_binding_pattern i [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %r.ref: @Test.%R.as_type.loc30_55.1 (%R.as_type.549) = name_ref r, %r -// CHECK:STDOUT: %impl.elem2.loc34_19.1: @Test.%.loc34_19.12 (%.75c) = impl_witness_access constants.%Iterate.lookup_impl_witness.ccf, element2 [symbolic = %impl.elem2.loc34_19.2 (constants.%impl.elem2.d4c)] +// CHECK:STDOUT: %r.ref: @Test.%R.as_type.loc30_55.1 (%R.as_type.67d) = name_ref r, %r +// CHECK:STDOUT: %impl.elem2.loc34_19.1: @Test.%.loc34_19.12 (%.3e2) = impl_witness_access constants.%Iterate.lookup_impl_witness.c86, element2 [symbolic = %impl.elem2.loc34_19.2 (constants.%impl.elem2.f53)] // CHECK:STDOUT: %bound_method.loc34_19.1: = bound_method %r.ref, %impl.elem2.loc34_19.1 -// CHECK:STDOUT: %specific_impl_fn.loc34_19.1: = specific_impl_function %impl.elem2.loc34_19.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.6f6) [symbolic = %specific_impl_fn.loc34_19.4 (constants.%specific_impl_fn.314)] +// CHECK:STDOUT: %specific_impl_fn.loc34_19.1: = specific_impl_function %impl.elem2.loc34_19.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.bbb) [symbolic = %specific_impl_fn.loc34_19.4 (constants.%specific_impl_fn.87a)] // CHECK:STDOUT: %bound_method.loc34_19.2: = bound_method %r.ref, %specific_impl_fn.loc34_19.1 -// CHECK:STDOUT: %var: ref @Test.%as_type (%as_type.cf9) = var invalid -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @Test.%as_type (%as_type.cf9) to %var = call %bound_method.loc34_19.2(%r.ref) +// CHECK:STDOUT: %var: ref @Test.%as_type (%as_type.ca2) = var invalid +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @Test.%as_type (%as_type.ca2) 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: @Test.%ptr (%ptr.233) = addr_of %var -// CHECK:STDOUT: %impl.elem3.loc34_19.1: @Test.%.loc34_19.13 (%.58a) = impl_witness_access constants.%Iterate.lookup_impl_witness.ccf, element3 [symbolic = %impl.elem3.loc34_19.2 (constants.%impl.elem3.25e)] +// CHECK:STDOUT: %addr: @Test.%ptr (%ptr.3b4) = addr_of %var +// CHECK:STDOUT: %impl.elem3.loc34_19.1: @Test.%.loc34_19.13 (%.a8b) = impl_witness_access constants.%Iterate.lookup_impl_witness.c86, element3 [symbolic = %impl.elem3.loc34_19.2 (constants.%impl.elem3.9c3)] // CHECK:STDOUT: %bound_method.loc34_19.3: = bound_method %r.ref, %impl.elem3.loc34_19.1 -// CHECK:STDOUT: %.loc34_19.1: %Destroy.type = converted constants.%as_type.cf9, constants.%impl.elem1.ad9 [symbolic = %impl.elem1 (constants.%impl.elem1.ad9)] -// CHECK:STDOUT: %specific_impl_fn.loc34_19.2: = specific_impl_function %impl.elem3.loc34_19.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.6f6) [symbolic = %specific_impl_fn.loc34_19.5 (constants.%specific_impl_fn.85b)] +// CHECK:STDOUT: %.loc34_19.1: %Destroy.type = converted constants.%as_type.ca2, constants.%impl.elem1.d31 [symbolic = %impl.elem1 (constants.%impl.elem1.d31)] +// CHECK:STDOUT: %specific_impl_fn.loc34_19.2: = specific_impl_function %impl.elem3.loc34_19.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.bbb) [symbolic = %specific_impl_fn.loc34_19.5 (constants.%specific_impl_fn.ab2)] // CHECK:STDOUT: %bound_method.loc34_19.4: = bound_method %r.ref, %specific_impl_fn.loc34_19.2 -// CHECK:STDOUT: %.loc34_19.2: ref %Optional.af5 = temporary_storage -// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.af5 to %.loc34_19.2 = call %bound_method.loc34_19.4(%r.ref, %addr) -// CHECK:STDOUT: %.loc34_19.3: ref %Optional.af5 = temporary %.loc34_19.2, %Iterate.WithSelf.Next.call -// CHECK:STDOUT: %.loc34_19.4: %Optional.HasValue.type.4a8 = specific_constant imports.%Core.import_ref.0b9, @Optional(constants.%OptionalStorage.facet.26b) [concrete = constants.%Optional.HasValue.3cd] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.4a8 = name_ref HasValue, %.loc34_19.4 [concrete = constants.%Optional.HasValue.3cd] +// CHECK:STDOUT: %.loc34_19.2: ref %Optional.e28 = temporary_storage +// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.e28 to %.loc34_19.2 = call %bound_method.loc34_19.4(%r.ref, %addr) +// CHECK:STDOUT: %.loc34_19.3: ref %Optional.e28 = temporary %.loc34_19.2, %Iterate.WithSelf.Next.call +// CHECK:STDOUT: %.loc34_19.4: %Optional.HasValue.type.c6d = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.172) [concrete = constants.%Optional.HasValue.89b] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.c6d = name_ref HasValue, %.loc34_19.4 [concrete = constants.%Optional.HasValue.89b] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc34_19.3, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.26b) [concrete = constants.%Optional.HasValue.specific_fn] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.172) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc34_19.5: = bound_method %.loc34_19.3, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc34_19.5: %Optional.af5 = acquire_value %.loc34_19.3 +// CHECK:STDOUT: %.loc34_19.5: %Optional.e28 = acquire_value %.loc34_19.3 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc34_19.5(%.loc34_19.5) // CHECK:STDOUT: %.loc34_19.6: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc34_19.7: bool = converted %Optional.HasValue.call, %.loc34_19.6 // CHECK:STDOUT: if %.loc34_19.7 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc34_19.8: %Optional.Get.type.f91 = specific_constant imports.%Core.import_ref.61f, @Optional(constants.%OptionalStorage.facet.26b) [concrete = constants.%Optional.Get.4e5] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.f91 = name_ref Get, %.loc34_19.8 [concrete = constants.%Optional.Get.4e5] +// CHECK:STDOUT: %.loc34_19.8: %Optional.Get.type.7e6 = specific_constant imports.%Core.import_ref.daba, @Optional(constants.%OptionalStorage.facet.172) [concrete = constants.%Optional.Get.722] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.7e6 = name_ref Get, %.loc34_19.8 [concrete = constants.%Optional.Get.722] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc34_19.3, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.26b) [concrete = constants.%Optional.Get.specific_fn] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.172) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc34_19.6: = bound_method %.loc34_19.3, %Optional.Get.specific_fn -// CHECK:STDOUT: %.loc34_19.9: %Optional.af5 = acquire_value %.loc34_19.3 +// CHECK:STDOUT: %.loc34_19.9: %Optional.e28 = acquire_value %.loc34_19.3 // CHECK:STDOUT: %Optional.Get.call: init %i32 = call %bound_method.loc34_19.6(%.loc34_19.9) // CHECK:STDOUT: %i32.loc34: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc34_19.10: %i32 = value_of_initializer %Optional.Get.call @@ -968,112 +968,112 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %i: %i32 = value_binding i, %.loc34_19.11 // CHECK:STDOUT: %sum.ref: ref %i32 = name_ref sum, %sum // CHECK:STDOUT: %i.ref: %i32 = name_ref i, %i -// CHECK:STDOUT: %impl.elem0.loc35: %.35b = impl_witness_access constants.%AddAssignWith.impl_witness.a8e, element0 [concrete = constants.%Int.as.AddAssignWith.impl.Op.bbd220.2] +// CHECK:STDOUT: %impl.elem0.loc35: %.b28 = impl_witness_access constants.%AddAssignWith.impl_witness.22e, element0 [concrete = constants.%Int.as.AddAssignWith.impl.Op.00e760.2] // CHECK:STDOUT: %bound_method.loc35_9.1: = bound_method %sum.ref, %impl.elem0.loc35 -// CHECK:STDOUT: %specific_fn.loc35: = specific_function %impl.elem0.loc35, @Int.as.AddAssignWith.impl.Op.1(constants.%int_32, constants.%ImplicitAs.facet.9ea) [concrete = constants.%Int.as.AddAssignWith.impl.Op.specific_fn.f3f3f7.1] +// CHECK:STDOUT: %specific_fn.loc35: = specific_function %impl.elem0.loc35, @Int.as.AddAssignWith.impl.Op.1(constants.%int_32, constants.%ImplicitAs.facet.eaa) [concrete = constants.%Int.as.AddAssignWith.impl.Op.specific_fn.b14d9d.1] // CHECK:STDOUT: %bound_method.loc35_9.2: = bound_method %sum.ref, %specific_fn.loc35 -// CHECK:STDOUT: %.loc35: %Int.as.AddAssignWith.impl.Op.type.b09202.1 = specific_constant imports.%Core.Op.d27, @Int.as.AddAssignWith.impl(constants.%int_32, constants.%ImplicitAs.facet.9ea) [concrete = constants.%Int.as.AddAssignWith.impl.Op.bbd220.1] -// CHECK:STDOUT: %Op.ref: %Int.as.AddAssignWith.impl.Op.type.b09202.1 = name_ref Op, %.loc35 [concrete = constants.%Int.as.AddAssignWith.impl.Op.bbd220.1] +// CHECK:STDOUT: %.loc35: %Int.as.AddAssignWith.impl.Op.type.73460a.1 = specific_constant imports.%Core.Op.1b1, @Int.as.AddAssignWith.impl(constants.%int_32, constants.%ImplicitAs.facet.eaa) [concrete = constants.%Int.as.AddAssignWith.impl.Op.00e760.1] +// CHECK:STDOUT: %Op.ref: %Int.as.AddAssignWith.impl.Op.type.73460a.1 = name_ref Op, %.loc35 [concrete = constants.%Int.as.AddAssignWith.impl.Op.00e760.1] // CHECK:STDOUT: %Int.as.AddAssignWith.impl.Op.bound: = bound_method %sum.ref, %Op.ref -// 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.9ea) [concrete = constants.%Int.as.AddAssignWith.impl.Op.specific_fn.f3f3f7.2] +// 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.eaa) [concrete = constants.%Int.as.AddAssignWith.impl.Op.specific_fn.b14d9d.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: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc34: = bound_method %.loc34_19.3, constants.%Destroy.Op.2dd605.8 +// CHECK:STDOUT: %Destroy.Op.bound.loc34: = bound_method %.loc34_19.3, constants.%Destroy.Op.1a2547.8 // CHECK:STDOUT: %Destroy.Op.call.loc34: init %empty_tuple.type = call %Destroy.Op.bound.loc34(%.loc34_19.3) -// CHECK:STDOUT: %impl.elem0.loc34_19.1: @Test.%.loc34_19.14 (%.179) = impl_witness_access constants.%Destroy.lookup_impl_witness.730, element0 [symbolic = %impl.elem0.loc34_19.2 (constants.%impl.elem0.636)] +// CHECK:STDOUT: %impl.elem0.loc34_19.1: @Test.%.loc34_19.14 (%.94f) = impl_witness_access constants.%Destroy.lookup_impl_witness.5d5, element0 [symbolic = %impl.elem0.loc34_19.2 (constants.%impl.elem0.e52)] // CHECK:STDOUT: %bound_method.loc34_19.7: = bound_method %var, %impl.elem0.loc34_19.1 -// CHECK:STDOUT: %specific_impl_fn.loc34_19.3: = specific_impl_function %impl.elem0.loc34_19.1, @Destroy.WithSelf.Op(constants.%impl.elem1.ad9) [symbolic = %specific_impl_fn.loc34_19.6 (constants.%specific_impl_fn.56c)] +// CHECK:STDOUT: %specific_impl_fn.loc34_19.3: = specific_impl_function %impl.elem0.loc34_19.1, @Destroy.WithSelf.Op(constants.%impl.elem1.d31) [symbolic = %specific_impl_fn.loc34_19.6 (constants.%specific_impl_fn.12e)] // 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: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_19.1(%self.param: ref %MaybeUnformed.30b) { +// CHECK:STDOUT: fn @Destroy.Op.loc34_19.1(%self.param: ref %MaybeUnformed.023) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.Op.loc34_19.2(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_19.3(%self.param: ref %struct_type.value.has_value.f8d) { +// CHECK:STDOUT: fn @Destroy.Op.loc34_19.3(%self.param: ref %struct_type.value.has_value.ad0) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_19.4(%self.param: ref %DefaultOptionalStorage.388) { +// CHECK:STDOUT: fn @Destroy.Op.loc34_19.4(%self.param: ref %DefaultOptionalStorage.970) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc34_19.5(%self.param: ref %Optional.af5) { +// CHECK:STDOUT: fn @Destroy.Op.loc34_19.5(%self.param: ref %Optional.e28) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%R.5de) { -// CHECK:STDOUT: %R.loc30_10.1 => constants.%R.5de -// CHECK:STDOUT: %R.as_type.loc30_55.1 => constants.%R.as_type.549 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.8bb +// CHECK:STDOUT: specific @Test(constants.%R.891) { +// CHECK:STDOUT: %R.loc30_10.1 => constants.%R.891 +// CHECK:STDOUT: %R.as_type.loc30_55.1 => constants.%R.as_type.67d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e21 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%facet_value.b9f) { -// CHECK:STDOUT: %R.loc30_10.1 => constants.%facet_value.b9f +// CHECK:STDOUT: specific @Test(constants.%facet_value.879) { +// CHECK:STDOUT: %R.loc30_10.1 => constants.%facet_value.879 // CHECK:STDOUT: %R.as_type.loc30_55.1 => constants.%MutableRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b76 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e635 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc30 => constants.%complete_type.357 -// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.a27 -// CHECK:STDOUT: %Iterate.facet => constants.%Iterate.facet.989 -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.5d1 -// CHECK:STDOUT: %.loc34_19.12 => constants.%.34e -// CHECK:STDOUT: %impl.elem2.loc34_19.2 => constants.%R.as_type.as.Iterate.impl.NewCursor.b35 -// CHECK:STDOUT: %specific_impl_fn.loc34_19.4 => constants.%R.as_type.as.Iterate.impl.NewCursor.specific_fn.827 -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.0ec -// CHECK:STDOUT: %as_type => constants.%tuple.type.17d -// CHECK:STDOUT: %require_complete.1 => constants.%complete_type.3ec -// CHECK:STDOUT: %ptr => constants.%ptr.f42 -// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.68f -// CHECK:STDOUT: %.loc34_19.13 => constants.%.42b -// CHECK:STDOUT: %impl.elem3.loc34_19.2 => constants.%R.as_type.as.Iterate.impl.Next.dbe -// CHECK:STDOUT: %specific_impl_fn.loc34_19.5 => constants.%R.as_type.as.Iterate.impl.Next.specific_fn.712 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.511 -// CHECK:STDOUT: %.loc34_19.14 => constants.%.824 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e20f1f.9 -// CHECK:STDOUT: %impl.elem0.loc34_19.2 => constants.%Destroy.Op.2dd605.9 -// CHECK:STDOUT: %specific_impl_fn.loc34_19.6 => constants.%Destroy.Op.2dd605.9 +// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.cea +// CHECK:STDOUT: %Iterate.facet => constants.%Iterate.facet.ffb +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.dcb +// CHECK:STDOUT: %.loc34_19.12 => constants.%.d6a +// CHECK:STDOUT: %impl.elem2.loc34_19.2 => constants.%R.as_type.as.Iterate.impl.NewCursor.8d2 +// CHECK:STDOUT: %specific_impl_fn.loc34_19.4 => constants.%R.as_type.as.Iterate.impl.NewCursor.specific_fn.bf1 +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.30f +// 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.30e +// CHECK:STDOUT: %.loc34_19.13 => constants.%.d23 +// CHECK:STDOUT: %impl.elem3.loc34_19.2 => constants.%R.as_type.as.Iterate.impl.Next.34d +// CHECK:STDOUT: %specific_impl_fn.loc34_19.5 => constants.%R.as_type.as.Iterate.impl.Next.specific_fn.dd5 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.c6c +// CHECK:STDOUT: %.loc34_19.14 => constants.%.0a4 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.9 +// CHECK:STDOUT: %impl.elem0.loc34_19.2 => constants.%Destroy.Op.1a2547.9 +// CHECK:STDOUT: %specific_impl_fn.loc34_19.6 => constants.%Destroy.Op.1a2547.9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%facet_value.bbe) { -// CHECK:STDOUT: %R.loc30_10.1 => constants.%facet_value.bbe +// CHECK:STDOUT: specific @Test(constants.%facet_value.740) { +// CHECK:STDOUT: %R.loc30_10.1 => constants.%facet_value.740 // CHECK:STDOUT: %R.as_type.loc30_55.1 => constants.%ConstRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.631 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0ba // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc30 => constants.%complete_type.357 -// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.7a3 -// CHECK:STDOUT: %Iterate.facet => constants.%Iterate.facet.bdf -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.bf8 -// CHECK:STDOUT: %.loc34_19.12 => constants.%.3d0 -// CHECK:STDOUT: %impl.elem2.loc34_19.2 => constants.%R.as_type.as.Iterate.impl.NewCursor.130 -// CHECK:STDOUT: %specific_impl_fn.loc34_19.4 => constants.%R.as_type.as.Iterate.impl.NewCursor.specific_fn.625 -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.72a -// CHECK:STDOUT: %as_type => constants.%tuple.type.d1a -// CHECK:STDOUT: %require_complete.1 => constants.%complete_type.f2c -// CHECK:STDOUT: %ptr => constants.%ptr.11b -// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.3bc -// CHECK:STDOUT: %.loc34_19.13 => constants.%.da0 -// CHECK:STDOUT: %impl.elem3.loc34_19.2 => constants.%R.as_type.as.Iterate.impl.Next.fb6 -// CHECK:STDOUT: %specific_impl_fn.loc34_19.5 => constants.%R.as_type.as.Iterate.impl.Next.specific_fn.272 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.fa3 -// CHECK:STDOUT: %.loc34_19.14 => constants.%.b6b -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e20f1f.10 -// CHECK:STDOUT: %impl.elem0.loc34_19.2 => constants.%Destroy.Op.2dd605.10 -// CHECK:STDOUT: %specific_impl_fn.loc34_19.6 => constants.%Destroy.Op.2dd605.10 +// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.12a +// CHECK:STDOUT: %Iterate.facet => constants.%Iterate.facet.5eb +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.ab5 +// CHECK:STDOUT: %.loc34_19.12 => constants.%.744 +// CHECK:STDOUT: %impl.elem2.loc34_19.2 => constants.%R.as_type.as.Iterate.impl.NewCursor.2f6 +// CHECK:STDOUT: %specific_impl_fn.loc34_19.4 => constants.%R.as_type.as.Iterate.impl.NewCursor.specific_fn.a05 +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.e4c +// 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.e25 +// CHECK:STDOUT: %.loc34_19.13 => constants.%.03b +// CHECK:STDOUT: %impl.elem3.loc34_19.2 => constants.%R.as_type.as.Iterate.impl.Next.393 +// CHECK:STDOUT: %specific_impl_fn.loc34_19.5 => constants.%R.as_type.as.Iterate.impl.Next.specific_fn.4cc +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.7ec +// CHECK:STDOUT: %.loc34_19.14 => constants.%.0e7 +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: --- methods_return_different_types.carbon @@ -1084,215 +1084,215 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %facet_type: type = facet_type <@Destroy & @Copy> [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Optional.Get.type.d22: type = fn_type @Optional.Get, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.Get.6fc: %Optional.Get.type.d22 = struct_value () [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.498: type = fn_type @Optional.HasValue, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.bf8: %Optional.HasValue.type.498 = struct_value () [symbolic] -// CHECK:STDOUT: %T.cb0: %facet_type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.f8b: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.type.46f: type = fn_type @T.as_type.as.OptionalStorage.impl.Get, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.8c2: %T.as_type.as.OptionalStorage.impl.Get.type.46f = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.type.0ae: type = fn_type @T.as_type.as.OptionalStorage.impl.Has, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.e0f: %T.as_type.as.OptionalStorage.impl.Has.type.0ae = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.type.87a: type = fn_type @T.as_type.as.OptionalStorage.impl.Some, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.898: %T.as_type.as.OptionalStorage.impl.Some.type.87a = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.type.ceb: type = fn_type @T.as_type.as.OptionalStorage.impl.None, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.9dd: %T.as_type.as.OptionalStorage.impl.None.type.ceb = struct_value () [symbolic] -// CHECK:STDOUT: %.Self.e31: %Iterate.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.732: = lookup_impl_witness %.Self.e31, @Iterate [symbolic_self] -// CHECK:STDOUT: %impl.elem0.03d: %facet_type = impl_witness_access %Iterate.lookup_impl_witness.732, element0 [symbolic_self] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Optional.Get.type.bb9: type = fn_type @Optional.Get, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.Get.fa1: %Optional.Get.type.bb9 = struct_value () [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.e9e: type = fn_type @Optional.HasValue, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.6cd: %Optional.HasValue.type.e9e = struct_value () [symbolic] +// CHECK:STDOUT: %T.283: %facet_type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.d50: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.type.029: type = fn_type @T.as_type.as.OptionalStorage.impl.Get, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.cb5: %T.as_type.as.OptionalStorage.impl.Get.type.029 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.type.4bc: type = fn_type @T.as_type.as.OptionalStorage.impl.Has, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.dc2: %T.as_type.as.OptionalStorage.impl.Has.type.4bc = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.type.800: type = fn_type @T.as_type.as.OptionalStorage.impl.Some, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.e83: %T.as_type.as.OptionalStorage.impl.Some.type.800 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.type.300: type = fn_type @T.as_type.as.OptionalStorage.impl.None, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.f54: %T.as_type.as.OptionalStorage.impl.None.type.300 = struct_value () [symbolic] +// CHECK:STDOUT: %.Self.35d: %Iterate.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.b37: = lookup_impl_witness %.Self.35d, @Iterate [symbolic_self] +// CHECK:STDOUT: %impl.elem0.903: %facet_type = impl_witness_access %Iterate.lookup_impl_witness.b37, element0 [symbolic_self] // CHECK:STDOUT: %ValueType: type = class_type @ValueType [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.bef: type = pattern_type %ValueType [concrete] +// CHECK:STDOUT: %pattern_type.e9f: type = pattern_type %ValueType [concrete] // CHECK:STDOUT: %ValueType.cpp_destructor.type: type = fn_type @ValueType.cpp_destructor [concrete] // CHECK:STDOUT: %ValueType.cpp_destructor: %ValueType.cpp_destructor.type = struct_value () [concrete] -// CHECK:STDOUT: %ValueType.Op.type.43d658.1: type = fn_type @ValueType.Op.1 [concrete] -// CHECK:STDOUT: %ValueType.Op.cc70d5.1: %ValueType.Op.type.43d658.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.a98c63.1: = custom_witness (%ValueType.Op.cc70d5.1), @Destroy [concrete] -// CHECK:STDOUT: %const.3fd: type = const_type %ValueType [concrete] -// CHECK:STDOUT: %ptr.e0a: type = ptr_type %const.3fd [concrete] -// CHECK:STDOUT: %ptr.6db: type = ptr_type %ValueType [concrete] -// CHECK:STDOUT: %ValueType.Op.type.43d658.2: type = fn_type @ValueType.Op.2 [concrete] -// CHECK:STDOUT: %ValueType.Op.cc70d5.2: %ValueType.Op.type.43d658.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b0507b.1: = custom_witness (%ValueType.Op.cc70d5.2), @Copy [concrete] -// CHECK:STDOUT: %facet_value.ea2: %facet_type = facet_value %ValueType, (%custom_witness.a98c63.1, %custom_witness.b0507b.1) [concrete] -// CHECK:STDOUT: %Iterate_where.type.630: type = facet_type <@Iterate where %impl.elem0.03d = %facet_value.ea2> [concrete] -// CHECK:STDOUT: %R.2da: %Iterate_where.type.630 = symbolic_binding R, 0 [symbolic] -// CHECK:STDOUT: %R.as_type.339: type = facet_access_type %R.2da [symbolic] -// CHECK:STDOUT: %pattern_type.df0: type = pattern_type %R.as_type.339 [symbolic] +// CHECK:STDOUT: %ValueType.Op.type.83af6e.1: type = fn_type @ValueType.Op.1 [concrete] +// CHECK:STDOUT: %ValueType.Op.4dca31.1: %ValueType.Op.type.83af6e.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.e7a31c.1: = custom_witness (%ValueType.Op.4dca31.1), @Destroy [concrete] +// CHECK:STDOUT: %const.243: type = const_type %ValueType [concrete] +// CHECK:STDOUT: %ptr.6bf: type = ptr_type %const.243 [concrete] +// CHECK:STDOUT: %ptr.a3d: type = ptr_type %ValueType [concrete] +// CHECK:STDOUT: %ValueType.Op.type.83af6e.2: type = fn_type @ValueType.Op.2 [concrete] +// CHECK:STDOUT: %ValueType.Op.4dca31.2: %ValueType.Op.type.83af6e.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.d0da43.1: = custom_witness (%ValueType.Op.4dca31.2), @Copy [concrete] +// CHECK:STDOUT: %facet_value.bf1: %facet_type = facet_value %ValueType, (%custom_witness.e7a31c.1, %custom_witness.d0da43.1) [concrete] +// CHECK:STDOUT: %Iterate_where.type.dfc: type = facet_type <@Iterate where %impl.elem0.903 = %facet_value.bf1> [concrete] +// CHECK:STDOUT: %R.de1: %Iterate_where.type.dfc = symbolic_binding R, 0 [symbolic] +// CHECK:STDOUT: %R.as_type.f62: type = facet_access_type %R.de1 [symbolic] +// CHECK:STDOUT: %pattern_type.669: type = pattern_type %R.as_type.f62 [symbolic] // CHECK:STDOUT: %CppRangeForIterate.type: type = facet_type <@CppRangeForIterate> [concrete] -// CHECK:STDOUT: %.Self.10b: %CppRangeForIterate.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.5bf: = lookup_impl_witness %.Self.10b, @CppRangeForIterate [symbolic_self] -// CHECK:STDOUT: %impl.elem0.d47: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.5bf, element0 [symbolic_self] -// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.bce: = lookup_impl_witness %impl.elem0.d47, @CppUnsafeDeref [symbolic_self] -// CHECK:STDOUT: %impl.elem0.c87: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.bce, element0 [symbolic_self] -// CHECK:STDOUT: %impl.elem1.846: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.5bf, element1 [symbolic_self] -// CHECK:STDOUT: %CppRangeForIterate_where.type: type = facet_type <@CppRangeForIterate where %impl.elem0.d47 impls @Destroy and %impl.elem0.d47 impls @Copy and %impl.elem0.d47 impls @CppUnsafeDeref and %impl.elem0.d47 impls @EqWith, @EqWith(%impl.elem1.846) and %impl.elem0.d47 impls @Inc and %impl.elem0.c87 impls @Destroy and %impl.elem0.c87 impls @Copy and %impl.elem1.846 impls @Destroy and %impl.elem1.846 impls @Copy> [concrete] -// CHECK:STDOUT: %R.6c6: %CppRangeForIterate_where.type = symbolic_binding R, 0 [symbolic] -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.edd1fe.2: = lookup_impl_witness %R.6c6, @CppRangeForIterate [symbolic] -// CHECK:STDOUT: %impl.elem1.bdcd2d.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.edd1fe.2, element1 [symbolic] -// CHECK:STDOUT: %impl.elem0.d5966e.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.edd1fe.2, element0 [symbolic] -// CHECK:STDOUT: %tuple.type.384: type = tuple_type (%impl.elem0.d5966e.2, %impl.elem1.bdcd2d.2) [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.0ba: = lookup_impl_witness %tuple.type.384, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.2fe: %Destroy.type = facet_value %tuple.type.384, (%Destroy.lookup_impl_witness.0ba) [symbolic] -// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.ca4: = lookup_impl_witness %impl.elem0.d5966e.2, @CppUnsafeDeref [symbolic] -// CHECK:STDOUT: %impl.elem0.b10: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.ca4, element0 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.3d8: = lookup_impl_witness %impl.elem0.b10, @Destroy [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.bff: = lookup_impl_witness %impl.elem0.b10, @Copy [symbolic] -// CHECK:STDOUT: %facet_value.a30: %facet_type = facet_value %impl.elem0.b10, (%Destroy.lookup_impl_witness.3d8, %Copy.lookup_impl_witness.bff) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.5b5: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%R.6c6) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.cd2: %R.as_type.as.Iterate.impl.Next.type.5b5 = struct_value () [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.9b6: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%R.6c6) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.b29: %R.as_type.as.Iterate.impl.NewCursor.type.9b6 = struct_value () [symbolic] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.695: = lookup_impl_witness %R.2da, @Iterate [symbolic] -// CHECK:STDOUT: %Iterate.facet.8c4: %Iterate.type = facet_value %R.as_type.339, (%Iterate.lookup_impl_witness.695) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.210: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.8c4) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.ad2: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.8c4) [symbolic] -// CHECK:STDOUT: %.9b8: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.210, %Iterate.facet.8c4 [symbolic] -// CHECK:STDOUT: %impl.elem2.377: %.9b8 = impl_witness_access %Iterate.lookup_impl_witness.695, element2 [symbolic] -// CHECK:STDOUT: %impl.elem1.bdd: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.695, element1 [symbolic] -// CHECK:STDOUT: %as_type.254: type = facet_access_type %impl.elem1.bdd [symbolic] -// CHECK:STDOUT: %specific_impl_fn.ed7: = specific_impl_function %impl.elem2.377, @Iterate.WithSelf.NewCursor(%Iterate.facet.8c4) [symbolic] -// CHECK:STDOUT: %ptr.864: type = ptr_type %as_type.254 [symbolic] -// CHECK:STDOUT: %.a74: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.ad2, %Iterate.facet.8c4 [symbolic] -// CHECK:STDOUT: %impl.elem3.5d8: %.a74 = impl_witness_access %Iterate.lookup_impl_witness.695, element3 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.448: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.ea2) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.444: = impl_witness imports.%OptionalStorage.impl_witness_table.6f7, @T.as_type.as.OptionalStorage.impl(%facet_value.ea2) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.7c3: %OptionalStorage.type = facet_value %ValueType, (%OptionalStorage.impl_witness.444) [concrete] -// CHECK:STDOUT: %Optional.4fe: type = class_type @Optional, @Optional(%OptionalStorage.facet.7c3) [concrete] -// CHECK:STDOUT: %specific_impl_fn.327: = specific_impl_function %impl.elem3.5d8, @Iterate.WithSelf.Next(%Iterate.facet.8c4) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.fdd: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.7c3) [concrete] -// CHECK:STDOUT: %Optional.HasValue.fe2: %Optional.HasValue.type.fdd = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.43b: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.7c3) [concrete] -// CHECK:STDOUT: %Optional.Get.4c3: %Optional.Get.type.43b = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.facet.3cd: %Destroy.type = facet_value %ValueType, (%custom_witness.a98c63.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.5ea: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.3cd) [concrete] -// CHECK:STDOUT: %struct_type.value.has_value.40c: type = struct_type {.value: %MaybeUnformed.5ea, .has_value: bool} [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.fe2, @Optional.HasValue(%OptionalStorage.facet.7c3) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.4c3, @Optional.Get(%OptionalStorage.facet.7c3) [concrete] +// CHECK:STDOUT: %.Self.6bd: %CppRangeForIterate.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.143: = lookup_impl_witness %.Self.6bd, @CppRangeForIterate [symbolic_self] +// CHECK:STDOUT: %impl.elem0.109: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.143, element0 [symbolic_self] +// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.712: = lookup_impl_witness %impl.elem0.109, @CppUnsafeDeref [symbolic_self] +// CHECK:STDOUT: %impl.elem0.56a: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.712, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem1.222: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.143, element1 [symbolic_self] +// CHECK:STDOUT: %CppRangeForIterate_where.type: type = facet_type <@CppRangeForIterate where %impl.elem0.109 impls @Destroy and %impl.elem0.109 impls @Copy and %impl.elem0.109 impls @CppUnsafeDeref and %impl.elem0.109 impls @EqWith, @EqWith(%impl.elem1.222) and %impl.elem0.109 impls @Inc and %impl.elem0.56a impls @Destroy and %impl.elem0.56a impls @Copy and %impl.elem1.222 impls @Destroy and %impl.elem1.222 impls @Copy> [concrete] +// CHECK:STDOUT: %R.39b: %CppRangeForIterate_where.type = symbolic_binding R, 0 [symbolic] +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.7e2712.2: = lookup_impl_witness %R.39b, @CppRangeForIterate [symbolic] +// CHECK:STDOUT: %impl.elem1.7a0bff.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.7e2712.2, element1 [symbolic] +// CHECK:STDOUT: %impl.elem0.73eb7f.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.7e2712.2, element0 [symbolic] +// CHECK:STDOUT: %tuple.type.3cf: type = tuple_type (%impl.elem0.73eb7f.2, %impl.elem1.7a0bff.2) [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.69f: = lookup_impl_witness %tuple.type.3cf, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.593: %Destroy.type = facet_value %tuple.type.3cf, (%Destroy.lookup_impl_witness.69f) [symbolic] +// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.aa7: = lookup_impl_witness %impl.elem0.73eb7f.2, @CppUnsafeDeref [symbolic] +// CHECK:STDOUT: %impl.elem0.af7: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.aa7, element0 [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.ec3: = lookup_impl_witness %impl.elem0.af7, @Destroy [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.a7a: = lookup_impl_witness %impl.elem0.af7, @Copy [symbolic] +// CHECK:STDOUT: %facet_value.194: %facet_type = facet_value %impl.elem0.af7, (%Destroy.lookup_impl_witness.ec3, %Copy.lookup_impl_witness.a7a) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.1f7: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%R.39b) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.0d6: %R.as_type.as.Iterate.impl.Next.type.1f7 = struct_value () [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.36f: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%R.39b) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.29b: %R.as_type.as.Iterate.impl.NewCursor.type.36f = struct_value () [symbolic] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.acc: = lookup_impl_witness %R.de1, @Iterate [symbolic] +// CHECK:STDOUT: %Iterate.facet.b95: %Iterate.type = facet_value %R.as_type.f62, (%Iterate.lookup_impl_witness.acc) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.d69: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.b95) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.d6f: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.b95) [symbolic] +// CHECK:STDOUT: %.f8a: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.d69, %Iterate.facet.b95 [symbolic] +// CHECK:STDOUT: %impl.elem2.398: %.f8a = impl_witness_access %Iterate.lookup_impl_witness.acc, element2 [symbolic] +// CHECK:STDOUT: %impl.elem1.411: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.acc, element1 [symbolic] +// CHECK:STDOUT: %as_type.bc6: type = facet_access_type %impl.elem1.411 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.544: = specific_impl_function %impl.elem2.398, @Iterate.WithSelf.NewCursor(%Iterate.facet.b95) [symbolic] +// CHECK:STDOUT: %ptr.bdd: type = ptr_type %as_type.bc6 [symbolic] +// CHECK:STDOUT: %.52a: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.d6f, %Iterate.facet.b95 [symbolic] +// CHECK:STDOUT: %impl.elem3.510: %.52a = impl_witness_access %Iterate.lookup_impl_witness.acc, element3 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.84c: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.bf1) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.af1: = impl_witness imports.%OptionalStorage.impl_witness_table.655, @T.as_type.as.OptionalStorage.impl(%facet_value.bf1) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.705: %OptionalStorage.type = facet_value %ValueType, (%OptionalStorage.impl_witness.af1) [concrete] +// CHECK:STDOUT: %Optional.95f: type = class_type @Optional, @Optional(%OptionalStorage.facet.705) [concrete] +// CHECK:STDOUT: %specific_impl_fn.a00: = specific_impl_function %impl.elem3.510, @Iterate.WithSelf.Next(%Iterate.facet.b95) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.006: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.705) [concrete] +// CHECK:STDOUT: %Optional.HasValue.988: %Optional.HasValue.type.006 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.30f: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.705) [concrete] +// CHECK:STDOUT: %Optional.Get.59c: %Optional.Get.type.30f = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.facet.4e5: %Destroy.type = facet_value %ValueType, (%custom_witness.e7a31c.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.02e: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.4e5) [concrete] +// CHECK:STDOUT: %struct_type.value.has_value.761: type = struct_type {.value: %MaybeUnformed.02e, .has_value: bool} [concrete] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.988, @Optional.HasValue(%OptionalStorage.facet.705) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.59c, @Optional.Get(%OptionalStorage.facet.705) [concrete] // CHECK:STDOUT: %ValueType.cpp_operator.type: type = fn_type @ValueType.cpp_operator [concrete] // CHECK:STDOUT: %ValueType.cpp_operator: %ValueType.cpp_operator.type = struct_value () [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.790b3b.6: type = fn_type @Destroy.Op.loc44_29.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.185: = lookup_impl_witness %impl.elem1.bdd, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.a36: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.bdd) [symbolic] -// CHECK:STDOUT: %.490: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.a36, %impl.elem1.bdd [symbolic] -// CHECK:STDOUT: %impl.elem0.d3e: %.490 = impl_witness_access %Destroy.lookup_impl_witness.185, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.e07: = specific_impl_function %impl.elem0.d3e, @Destroy.WithSelf.Op(%impl.elem1.bdd) [symbolic] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc44_29.5 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.ff8: = lookup_impl_witness %impl.elem1.411, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d67: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.411) [symbolic] +// CHECK:STDOUT: %.4b9: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.d67, %impl.elem1.411 [symbolic] +// CHECK:STDOUT: %impl.elem0.fbe: %.4b9 = impl_witness_access %Destroy.lookup_impl_witness.ff8, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.517: = specific_impl_function %impl.elem0.fbe, @Destroy.WithSelf.Op(%impl.elem1.411) [symbolic] // CHECK:STDOUT: %MutableRange: type = class_type @MutableRange [concrete] -// CHECK:STDOUT: %pattern_type.b76: type = pattern_type %MutableRange [concrete] +// CHECK:STDOUT: %pattern_type.e635: type = pattern_type %MutableRange [concrete] // CHECK:STDOUT: %ConstRange: type = class_type @ConstRange [concrete] -// CHECK:STDOUT: %pattern_type.631: type = pattern_type %ConstRange [concrete] -// CHECK:STDOUT: %Iterator.826: type = class_type @Iterator.1 [concrete] -// CHECK:STDOUT: %Sentinel.6eb: type = class_type @Sentinel.1 [concrete] +// CHECK:STDOUT: %pattern_type.0ba: type = pattern_type %ConstRange [concrete] +// CHECK:STDOUT: %Iterator.3ee: type = class_type @Iterator.1 [concrete] +// CHECK:STDOUT: %Sentinel.9b2: type = class_type @Sentinel.1 [concrete] // CHECK:STDOUT: %MutableRange.Begin.type: type = fn_type @MutableRange.Begin [concrete] // CHECK:STDOUT: %MutableRange.Begin: %MutableRange.Begin.type = struct_value () [concrete] // CHECK:STDOUT: %MutableRange.End.type: type = fn_type @MutableRange.End [concrete] // CHECK:STDOUT: %MutableRange.End: %MutableRange.End.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.292: = custom_witness (%Iterator.826, %Sentinel.6eb, %MutableRange.Begin, %MutableRange.End), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %Iterator.Op.type.134d4f.1: type = fn_type @Iterator.Op.1 [concrete] -// CHECK:STDOUT: %Iterator.Op.f056ae.1: %Iterator.Op.type.134d4f.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.675: = custom_witness (%ValueType, %Iterator.Op.f056ae.1), @CppUnsafeDeref [concrete] -// CHECK:STDOUT: %Iterator.Op.type.134d4f.2: type = fn_type @Iterator.Op.2 [concrete] -// CHECK:STDOUT: %Iterator.Op.f056ae.2: %Iterator.Op.type.134d4f.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.ef99ee.1: = custom_witness (%Iterator.Op.f056ae.2), @Destroy [concrete] -// CHECK:STDOUT: %Iterator.Op.type.134d4f.3: type = fn_type @Iterator.Op.3 [concrete] -// CHECK:STDOUT: %Iterator.Op.f056ae.3: %Iterator.Op.type.134d4f.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.3a5b7b.1: = custom_witness (%Iterator.Op.f056ae.3), @Copy [concrete] -// CHECK:STDOUT: %Equal.type.eace26.1: type = fn_type @Equal.1 [concrete] -// CHECK:STDOUT: %Equal.8c4faf.1: %Equal.type.eace26.1 = struct_value () [concrete] -// CHECK:STDOUT: %NotEqual.type.ca4b73.1: type = fn_type @NotEqual.1 [concrete] -// CHECK:STDOUT: %NotEqual.6eaf3e.1: %NotEqual.type.ca4b73.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e77: = custom_witness (%Equal.8c4faf.1, %NotEqual.6eaf3e.1), @EqWith, @EqWith(%Sentinel.6eb) [concrete] -// CHECK:STDOUT: %Iterator.Op.type.134d4f.4: type = fn_type @Iterator.Op.4 [concrete] -// CHECK:STDOUT: %Iterator.Op.f056ae.4: %Iterator.Op.type.134d4f.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.f9b: = custom_witness (%Iterator.Op.f056ae.4), @Inc [concrete] -// CHECK:STDOUT: %Sentinel.Op.type.134d4f.1: type = fn_type @Sentinel.Op.1 [concrete] -// CHECK:STDOUT: %Sentinel.Op.f056ae.1: %Sentinel.Op.type.134d4f.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.ef99ee.2: = custom_witness (%Sentinel.Op.f056ae.1), @Destroy [concrete] -// CHECK:STDOUT: %Sentinel.Op.type.134d4f.2: type = fn_type @Sentinel.Op.2 [concrete] -// CHECK:STDOUT: %Sentinel.Op.f056ae.2: %Sentinel.Op.type.134d4f.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.3a5b7b.2: = custom_witness (%Sentinel.Op.f056ae.2), @Copy [concrete] -// CHECK:STDOUT: %facet_value.4eb: %CppRangeForIterate_where.type = facet_value %MutableRange, (%custom_witness.a98c63.1, %custom_witness.b0507b.1, %custom_witness.292, %custom_witness.ef99ee.1, %custom_witness.3a5b7b.1, %custom_witness.675, %custom_witness.e77, %custom_witness.f9b, %custom_witness.ef99ee.2, %custom_witness.3a5b7b.2) [concrete] -// CHECK:STDOUT: %tuple.type.c00: type = tuple_type (%Iterator.826, %Sentinel.6eb) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.7: type = fn_type @Destroy.Op.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.7: %Destroy.Op.type.790b3b.7 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.7: = custom_witness (%Destroy.Op.2dd605.7), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.0cd: %Destroy.type = facet_value %tuple.type.c00, (%custom_witness.e20f1f.7) [concrete] -// CHECK:STDOUT: %Iterate.impl_witness.5a3: = impl_witness imports.%Iterate.impl_witness_table.9f0, @R.as_type.as.Iterate.impl(%facet_value.4eb) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.1df: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%facet_value.4eb) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.dcd: %R.as_type.as.Iterate.impl.NewCursor.type.1df = struct_value () [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.390: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%facet_value.4eb) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.2f5: %R.as_type.as.Iterate.impl.Next.type.390 = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet.269: %Iterate.type = facet_value %MutableRange, (%Iterate.impl_witness.5a3) [concrete] -// CHECK:STDOUT: %facet_value.035: %Iterate_where.type.630 = facet_value %MutableRange, (%Iterate.impl_witness.5a3) [concrete] -// CHECK:STDOUT: %Iterator.4f0: type = class_type @Iterator.2 [concrete] -// CHECK:STDOUT: %Sentinel.45e: type = class_type @Sentinel.2 [concrete] +// CHECK:STDOUT: %custom_witness.6b6: = custom_witness (%Iterator.3ee, %Sentinel.9b2, %MutableRange.Begin, %MutableRange.End), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %Iterator.Op.type.0aed5d.1: type = fn_type @Iterator.Op.1 [concrete] +// CHECK:STDOUT: %Iterator.Op.a2a866.1: %Iterator.Op.type.0aed5d.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.90a: = custom_witness (%ValueType, %Iterator.Op.a2a866.1), @CppUnsafeDeref [concrete] +// CHECK:STDOUT: %Iterator.Op.type.0aed5d.2: type = fn_type @Iterator.Op.2 [concrete] +// CHECK:STDOUT: %Iterator.Op.a2a866.2: %Iterator.Op.type.0aed5d.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.95581e.1: = custom_witness (%Iterator.Op.a2a866.2), @Destroy [concrete] +// CHECK:STDOUT: %Iterator.Op.type.0aed5d.3: type = fn_type @Iterator.Op.3 [concrete] +// CHECK:STDOUT: %Iterator.Op.a2a866.3: %Iterator.Op.type.0aed5d.3 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.1f52e9.1: = custom_witness (%Iterator.Op.a2a866.3), @Copy [concrete] +// CHECK:STDOUT: %Equal.type.ca8475.1: type = fn_type @Equal.1 [concrete] +// CHECK:STDOUT: %Equal.285b15.1: %Equal.type.ca8475.1 = struct_value () [concrete] +// 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.3e8: = custom_witness (%Equal.285b15.1, %NotEqual.119263.1), @EqWith, @EqWith(%Sentinel.9b2) [concrete] +// CHECK:STDOUT: %Iterator.Op.type.0aed5d.4: type = fn_type @Iterator.Op.4 [concrete] +// CHECK:STDOUT: %Iterator.Op.a2a866.4: %Iterator.Op.type.0aed5d.4 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.444: = custom_witness (%Iterator.Op.a2a866.4), @Inc [concrete] +// CHECK:STDOUT: %Sentinel.Op.type.0aed5d.1: type = fn_type @Sentinel.Op.1 [concrete] +// CHECK:STDOUT: %Sentinel.Op.a2a866.1: %Sentinel.Op.type.0aed5d.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.95581e.2: = custom_witness (%Sentinel.Op.a2a866.1), @Destroy [concrete] +// CHECK:STDOUT: %Sentinel.Op.type.0aed5d.2: type = fn_type @Sentinel.Op.2 [concrete] +// CHECK:STDOUT: %Sentinel.Op.a2a866.2: %Sentinel.Op.type.0aed5d.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.1f52e9.2: = custom_witness (%Sentinel.Op.a2a866.2), @Copy [concrete] +// CHECK:STDOUT: %facet_value.55a: %CppRangeForIterate_where.type = facet_value %MutableRange, (%custom_witness.e7a31c.1, %custom_witness.d0da43.1, %custom_witness.6b6, %custom_witness.95581e.1, %custom_witness.1f52e9.1, %custom_witness.90a, %custom_witness.3e8, %custom_witness.444, %custom_witness.95581e.2, %custom_witness.1f52e9.2) [concrete] +// CHECK:STDOUT: %tuple.type.829: type = tuple_type (%Iterator.3ee, %Sentinel.9b2) [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.7: type = fn_type @Destroy.Op.2 [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.305: %Destroy.type = facet_value %tuple.type.829, (%custom_witness.df9cc1.7) [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.096: = impl_witness imports.%Iterate.impl_witness_table.344, @R.as_type.as.Iterate.impl(%facet_value.55a) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.c00: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%facet_value.55a) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.498: %R.as_type.as.Iterate.impl.NewCursor.type.c00 = struct_value () [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.d64: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%facet_value.55a) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.055: %R.as_type.as.Iterate.impl.Next.type.d64 = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet.723: %Iterate.type = facet_value %MutableRange, (%Iterate.impl_witness.096) [concrete] +// CHECK:STDOUT: %facet_value.150: %Iterate_where.type.dfc = facet_value %MutableRange, (%Iterate.impl_witness.096) [concrete] +// CHECK:STDOUT: %Iterator.260: type = class_type @Iterator.2 [concrete] +// CHECK:STDOUT: %Sentinel.4c4: type = class_type @Sentinel.2 [concrete] // CHECK:STDOUT: %ConstRange.Begin.type: type = fn_type @ConstRange.Begin [concrete] // CHECK:STDOUT: %ConstRange.Begin: %ConstRange.Begin.type = struct_value () [concrete] // CHECK:STDOUT: %ConstRange.End.type: type = fn_type @ConstRange.End [concrete] // CHECK:STDOUT: %ConstRange.End: %ConstRange.End.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.8cb: = custom_witness (%Iterator.4f0, %Sentinel.45e, %ConstRange.Begin, %ConstRange.End), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %Iterator.Op.type.9f2350.1: type = fn_type @Iterator.Op.5 [concrete] -// CHECK:STDOUT: %Iterator.Op.7b7347.1: %Iterator.Op.type.9f2350.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.762: = custom_witness (%ValueType, %Iterator.Op.7b7347.1), @CppUnsafeDeref [concrete] -// CHECK:STDOUT: %Iterator.Op.type.9f2350.2: type = fn_type @Iterator.Op.6 [concrete] -// CHECK:STDOUT: %Iterator.Op.7b7347.2: %Iterator.Op.type.9f2350.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df0c4f.1: = custom_witness (%Iterator.Op.7b7347.2), @Destroy [concrete] -// CHECK:STDOUT: %Iterator.Op.type.9f2350.3: type = fn_type @Iterator.Op.7 [concrete] -// CHECK:STDOUT: %Iterator.Op.7b7347.3: %Iterator.Op.type.9f2350.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.f14c15.1: = custom_witness (%Iterator.Op.7b7347.3), @Copy [concrete] -// CHECK:STDOUT: %Equal.type.eace26.2: type = fn_type @Equal.2 [concrete] -// CHECK:STDOUT: %Equal.8c4faf.2: %Equal.type.eace26.2 = struct_value () [concrete] -// CHECK:STDOUT: %NotEqual.type.ca4b73.2: type = fn_type @NotEqual.2 [concrete] -// CHECK:STDOUT: %NotEqual.6eaf3e.2: %NotEqual.type.ca4b73.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.d24: = custom_witness (%Equal.8c4faf.2, %NotEqual.6eaf3e.2), @EqWith, @EqWith(%Sentinel.45e) [concrete] -// CHECK:STDOUT: %Iterator.Op.type.9f2350.4: type = fn_type @Iterator.Op.8 [concrete] -// CHECK:STDOUT: %Iterator.Op.7b7347.4: %Iterator.Op.type.9f2350.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.c18: = custom_witness (%Iterator.Op.7b7347.4), @Inc [concrete] -// CHECK:STDOUT: %Sentinel.Op.type.9f2350.1: type = fn_type @Sentinel.Op.3 [concrete] -// CHECK:STDOUT: %Sentinel.Op.7b7347.1: %Sentinel.Op.type.9f2350.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.df0c4f.2: = custom_witness (%Sentinel.Op.7b7347.1), @Destroy [concrete] -// CHECK:STDOUT: %Sentinel.Op.type.9f2350.2: type = fn_type @Sentinel.Op.4 [concrete] -// CHECK:STDOUT: %Sentinel.Op.7b7347.2: %Sentinel.Op.type.9f2350.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.f14c15.2: = custom_witness (%Sentinel.Op.7b7347.2), @Copy [concrete] -// CHECK:STDOUT: %facet_value.089: %CppRangeForIterate_where.type = facet_value %ConstRange, (%custom_witness.a98c63.1, %custom_witness.b0507b.1, %custom_witness.8cb, %custom_witness.df0c4f.1, %custom_witness.f14c15.1, %custom_witness.762, %custom_witness.d24, %custom_witness.c18, %custom_witness.df0c4f.2, %custom_witness.f14c15.2) [concrete] -// CHECK:STDOUT: %tuple.type.6b1: type = tuple_type (%Iterator.4f0, %Sentinel.45e) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.8: type = fn_type @Destroy.Op.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.8: %Destroy.Op.type.790b3b.8 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.8: = custom_witness (%Destroy.Op.2dd605.8), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.018: %Destroy.type = facet_value %tuple.type.6b1, (%custom_witness.e20f1f.8) [concrete] -// CHECK:STDOUT: %Iterate.impl_witness.c99: = impl_witness imports.%Iterate.impl_witness_table.9f0, @R.as_type.as.Iterate.impl(%facet_value.089) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.d53: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%facet_value.089) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.017: %R.as_type.as.Iterate.impl.NewCursor.type.d53 = struct_value () [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.4b3: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%facet_value.089) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.c8f: %R.as_type.as.Iterate.impl.Next.type.4b3 = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet.780: %Iterate.type = facet_value %ConstRange, (%Iterate.impl_witness.c99) [concrete] -// CHECK:STDOUT: %facet_value.2f3: %Iterate_where.type.630 = facet_value %ConstRange, (%Iterate.impl_witness.c99) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.635: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.269) [concrete] -// CHECK:STDOUT: %.3fa: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.635, %Iterate.facet.269 [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.specific_fn.55e: = specific_function %R.as_type.as.Iterate.impl.NewCursor.dcd, @R.as_type.as.Iterate.impl.NewCursor(%facet_value.4eb) [concrete] -// CHECK:STDOUT: %complete_type.dee: = complete_type_witness %tuple.type.c00 [concrete] -// CHECK:STDOUT: %ptr.993: type = ptr_type %tuple.type.c00 [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.ba6: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.269) [concrete] -// CHECK:STDOUT: %.dcc: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.ba6, %Iterate.facet.269 [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.specific_fn.370: = specific_function %R.as_type.as.Iterate.impl.Next.2f5, @R.as_type.as.Iterate.impl.Next(%facet_value.4eb) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.6fd: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.0cd) [concrete] -// CHECK:STDOUT: %.ad7: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.6fd, %Destroy.facet.0cd [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.b98: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.780) [concrete] -// CHECK:STDOUT: %.25f: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.b98, %Iterate.facet.780 [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.specific_fn.26d: = specific_function %R.as_type.as.Iterate.impl.NewCursor.017, @R.as_type.as.Iterate.impl.NewCursor(%facet_value.089) [concrete] -// CHECK:STDOUT: %complete_type.74d: = complete_type_witness %tuple.type.6b1 [concrete] -// CHECK:STDOUT: %ptr.f19: type = ptr_type %tuple.type.6b1 [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.8d9: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.780) [concrete] -// CHECK:STDOUT: %.99c: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.8d9, %Iterate.facet.780 [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.specific_fn.ffd: = specific_function %R.as_type.as.Iterate.impl.Next.c8f, @R.as_type.as.Iterate.impl.Next(%facet_value.089) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.fe4: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.018) [concrete] -// CHECK:STDOUT: %.57d: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.fe4, %Destroy.facet.018 [concrete] +// CHECK:STDOUT: %custom_witness.a03: = custom_witness (%Iterator.260, %Sentinel.4c4, %ConstRange.Begin, %ConstRange.End), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %Iterator.Op.type.0f34b8.1: type = fn_type @Iterator.Op.5 [concrete] +// CHECK:STDOUT: %Iterator.Op.1c3e4a.1: %Iterator.Op.type.0f34b8.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.78b: = custom_witness (%ValueType, %Iterator.Op.1c3e4a.1), @CppUnsafeDeref [concrete] +// CHECK:STDOUT: %Iterator.Op.type.0f34b8.2: type = fn_type @Iterator.Op.6 [concrete] +// CHECK:STDOUT: %Iterator.Op.1c3e4a.2: %Iterator.Op.type.0f34b8.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6e8a2e.1: = custom_witness (%Iterator.Op.1c3e4a.2), @Destroy [concrete] +// CHECK:STDOUT: %Iterator.Op.type.0f34b8.3: type = fn_type @Iterator.Op.7 [concrete] +// CHECK:STDOUT: %Iterator.Op.1c3e4a.3: %Iterator.Op.type.0f34b8.3 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.15091a.1: = custom_witness (%Iterator.Op.1c3e4a.3), @Copy [concrete] +// CHECK:STDOUT: %Equal.type.ca8475.2: type = fn_type @Equal.2 [concrete] +// CHECK:STDOUT: %Equal.285b15.2: %Equal.type.ca8475.2 = struct_value () [concrete] +// 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.c55: = custom_witness (%Equal.285b15.2, %NotEqual.119263.2), @EqWith, @EqWith(%Sentinel.4c4) [concrete] +// CHECK:STDOUT: %Iterator.Op.type.0f34b8.4: type = fn_type @Iterator.Op.8 [concrete] +// CHECK:STDOUT: %Iterator.Op.1c3e4a.4: %Iterator.Op.type.0f34b8.4 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.746: = custom_witness (%Iterator.Op.1c3e4a.4), @Inc [concrete] +// CHECK:STDOUT: %Sentinel.Op.type.0f34b8.1: type = fn_type @Sentinel.Op.3 [concrete] +// CHECK:STDOUT: %Sentinel.Op.1c3e4a.1: %Sentinel.Op.type.0f34b8.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.6e8a2e.2: = custom_witness (%Sentinel.Op.1c3e4a.1), @Destroy [concrete] +// CHECK:STDOUT: %Sentinel.Op.type.0f34b8.2: type = fn_type @Sentinel.Op.4 [concrete] +// CHECK:STDOUT: %Sentinel.Op.1c3e4a.2: %Sentinel.Op.type.0f34b8.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.15091a.2: = custom_witness (%Sentinel.Op.1c3e4a.2), @Copy [concrete] +// CHECK:STDOUT: %facet_value.445: %CppRangeForIterate_where.type = facet_value %ConstRange, (%custom_witness.e7a31c.1, %custom_witness.d0da43.1, %custom_witness.a03, %custom_witness.6e8a2e.1, %custom_witness.15091a.1, %custom_witness.78b, %custom_witness.c55, %custom_witness.746, %custom_witness.6e8a2e.2, %custom_witness.15091a.2) [concrete] +// CHECK:STDOUT: %tuple.type.99f: type = tuple_type (%Iterator.260, %Sentinel.4c4) [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.8: type = fn_type @Destroy.Op.3 [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.e08: %Destroy.type = facet_value %tuple.type.99f, (%custom_witness.df9cc1.8) [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.40c: = impl_witness imports.%Iterate.impl_witness_table.344, @R.as_type.as.Iterate.impl(%facet_value.445) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.8c3: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%facet_value.445) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.bd2: %R.as_type.as.Iterate.impl.NewCursor.type.8c3 = struct_value () [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.b0c: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%facet_value.445) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.c50: %R.as_type.as.Iterate.impl.Next.type.b0c = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet.c46: %Iterate.type = facet_value %ConstRange, (%Iterate.impl_witness.40c) [concrete] +// CHECK:STDOUT: %facet_value.e78: %Iterate_where.type.dfc = facet_value %ConstRange, (%Iterate.impl_witness.40c) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.47d: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.723) [concrete] +// CHECK:STDOUT: %.47d: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.47d, %Iterate.facet.723 [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.specific_fn.532: = specific_function %R.as_type.as.Iterate.impl.NewCursor.498, @R.as_type.as.Iterate.impl.NewCursor(%facet_value.55a) [concrete] +// CHECK:STDOUT: %complete_type.94f: = complete_type_witness %tuple.type.829 [concrete] +// CHECK:STDOUT: %ptr.d6b: type = ptr_type %tuple.type.829 [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.6f1: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.723) [concrete] +// CHECK:STDOUT: %.fd2: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.6f1, %Iterate.facet.723 [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.specific_fn.5cb: = specific_function %R.as_type.as.Iterate.impl.Next.055, @R.as_type.as.Iterate.impl.Next(%facet_value.55a) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.c89: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.305) [concrete] +// CHECK:STDOUT: %.e8a: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.c89, %Destroy.facet.305 [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.cd5: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.c46) [concrete] +// CHECK:STDOUT: %.763: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.cd5, %Iterate.facet.c46 [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.specific_fn.7c7: = specific_function %R.as_type.as.Iterate.impl.NewCursor.bd2, @R.as_type.as.Iterate.impl.NewCursor(%facet_value.445) [concrete] +// CHECK:STDOUT: %complete_type.dea: = complete_type_witness %tuple.type.99f [concrete] +// CHECK:STDOUT: %ptr.2f7: type = ptr_type %tuple.type.99f [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.285: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.c46) [concrete] +// CHECK:STDOUT: %.bca: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.285, %Iterate.facet.c46 [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.specific_fn.a9a: = specific_function %R.as_type.as.Iterate.impl.Next.c50, @R.as_type.as.Iterate.impl.Next(%facet_value.445) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.e30: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.e08) [concrete] +// CHECK:STDOUT: %.987: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.e30, %Destroy.facet.e08 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1302,26 +1302,26 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: .ConstRange = %ConstRange.decl // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.0b9: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.498) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.bf8)] -// CHECK:STDOUT: %Core.import_ref.61f: @Optional.%Optional.Get.type (%Optional.Get.type.d22) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.6fc)] -// CHECK:STDOUT: %Core.import_ref.2b5: type = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%DefaultOptionalStorage (constants.%DefaultOptionalStorage.f8b)] -// CHECK:STDOUT: %Core.import_ref.b0a: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None.type (%T.as_type.as.OptionalStorage.impl.None.type.ceb) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None (constants.%T.as_type.as.OptionalStorage.impl.None.9dd)] -// CHECK:STDOUT: %Core.import_ref.3fc: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some.type (%T.as_type.as.OptionalStorage.impl.Some.type.87a) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some (constants.%T.as_type.as.OptionalStorage.impl.Some.898)] -// CHECK:STDOUT: %Core.import_ref.986: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has.type (%T.as_type.as.OptionalStorage.impl.Has.type.0ae) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has (constants.%T.as_type.as.OptionalStorage.impl.Has.e0f)] -// CHECK:STDOUT: %Core.import_ref.557: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get.type (%T.as_type.as.OptionalStorage.impl.Get.type.46f) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get (constants.%T.as_type.as.OptionalStorage.impl.Get.8c2)] -// CHECK:STDOUT: %Core.import_ref.999 = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.6f7 = impl_witness_table (%Core.import_ref.2b5, %Core.import_ref.b0a, %Core.import_ref.3fc, %Core.import_ref.986, %Core.import_ref.557, %Core.import_ref.999), @T.as_type.as.OptionalStorage.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.bb6: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.e9e) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.6cd)] +// CHECK:STDOUT: %Core.import_ref.daba: @Optional.%Optional.Get.type (%Optional.Get.type.bb9) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.fa1)] +// CHECK:STDOUT: %Core.import_ref.0c6: type = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%DefaultOptionalStorage (constants.%DefaultOptionalStorage.d50)] +// CHECK:STDOUT: %Core.import_ref.f4f: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None.type (%T.as_type.as.OptionalStorage.impl.None.type.300) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None (constants.%T.as_type.as.OptionalStorage.impl.None.f54)] +// CHECK:STDOUT: %Core.import_ref.18f: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some.type (%T.as_type.as.OptionalStorage.impl.Some.type.800) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some (constants.%T.as_type.as.OptionalStorage.impl.Some.e83)] +// CHECK:STDOUT: %Core.import_ref.c68: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has.type (%T.as_type.as.OptionalStorage.impl.Has.type.4bc) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has (constants.%T.as_type.as.OptionalStorage.impl.Has.dc2)] +// CHECK:STDOUT: %Core.import_ref.a83: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get.type (%T.as_type.as.OptionalStorage.impl.Get.type.029) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get (constants.%T.as_type.as.OptionalStorage.impl.Get.cb5)] +// CHECK:STDOUT: %Core.import_ref.aaa = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.655 = impl_witness_table (%Core.import_ref.0c6, %Core.import_ref.f4f, %Core.import_ref.18f, %Core.import_ref.c68, %Core.import_ref.a83, %Core.import_ref.aaa), @T.as_type.as.OptionalStorage.impl [concrete] // CHECK:STDOUT: %ValueType.decl: type = class_decl @ValueType [concrete = constants.%ValueType] {} {} // CHECK:STDOUT: %ValueType.cpp_destructor.decl: %ValueType.cpp_destructor.type = fn_decl @ValueType.cpp_destructor [concrete = constants.%ValueType.cpp_destructor] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.89a: %facet_type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%facet_value (constants.%facet_value.a30)] -// CHECK:STDOUT: %Core.import_ref.9ea: %Destroy.type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%Destroy.facet (constants.%Destroy.facet.2fe)] -// CHECK:STDOUT: %Core.import_ref.a6c: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor.type (%R.as_type.as.Iterate.impl.NewCursor.type.9b6) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor (constants.%R.as_type.as.Iterate.impl.NewCursor.b29)] -// CHECK:STDOUT: %Core.import_ref.a02: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next.type (%R.as_type.as.Iterate.impl.Next.type.5b5) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next (constants.%R.as_type.as.Iterate.impl.Next.cd2)] -// CHECK:STDOUT: %Iterate.impl_witness_table.9f0 = impl_witness_table (%Core.import_ref.89a, %Core.import_ref.9ea, %Core.import_ref.a6c, %Core.import_ref.a02), @R.as_type.as.Iterate.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.301: %facet_type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%facet_value (constants.%facet_value.194)] +// CHECK:STDOUT: %Core.import_ref.89f: %Destroy.type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%Destroy.facet (constants.%Destroy.facet.593)] +// CHECK:STDOUT: %Core.import_ref.3e6: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor.type (%R.as_type.as.Iterate.impl.NewCursor.type.36f) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor (constants.%R.as_type.as.Iterate.impl.NewCursor.29b)] +// CHECK:STDOUT: %Core.import_ref.85d: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next.type (%R.as_type.as.Iterate.impl.Next.type.1f7) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next (constants.%R.as_type.as.Iterate.impl.Next.0d6)] +// CHECK:STDOUT: %Iterate.impl_witness_table.344 = impl_witness_table (%Core.import_ref.301, %Core.import_ref.89f, %Core.import_ref.3e6, %Core.import_ref.85d), @R.as_type.as.Iterate.impl [concrete] // CHECK:STDOUT: %ValueType.cpp_operator.decl: %ValueType.cpp_operator.type = fn_decl @ValueType.cpp_operator [concrete = constants.%ValueType.cpp_operator] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -1336,76 +1336,76 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %ConstRange.decl: type = class_decl @ConstRange [concrete = constants.%ConstRange] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Test(%R.loc40_10.2: %Iterate_where.type.630) { +// CHECK:STDOUT: generic fn @Test(%R.loc40_10.2: %Iterate_where.type.dfc) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc40_10.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.695)] -// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %R.as_type.loc40_69.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet (constants.%Iterate.facet.8c4)] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.210)] -// CHECK:STDOUT: %.loc44_29.13: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet [symbolic = %.loc44_29.13 (constants.%.9b8)] -// CHECK:STDOUT: %impl.elem2.loc44_29.2: @Test.%.loc44_29.13 (%.9b8) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc44_29.2 (constants.%impl.elem2.377)] -// CHECK:STDOUT: %specific_impl_fn.loc44_29.4: = specific_impl_function %impl.elem2.loc44_29.2, @Iterate.WithSelf.NewCursor(%Iterate.facet) [symbolic = %specific_impl_fn.loc44_29.4 (constants.%specific_impl_fn.ed7)] +// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc40_10.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.acc)] +// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %R.as_type.loc40_69.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet (constants.%Iterate.facet.b95)] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.d69)] +// CHECK:STDOUT: %.loc44_29.13: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet [symbolic = %.loc44_29.13 (constants.%.f8a)] +// CHECK:STDOUT: %impl.elem2.loc44_29.2: @Test.%.loc44_29.13 (%.f8a) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc44_29.2 (constants.%impl.elem2.398)] +// CHECK:STDOUT: %specific_impl_fn.loc44_29.4: = specific_impl_function %impl.elem2.loc44_29.2, @Iterate.WithSelf.NewCursor(%Iterate.facet) [symbolic = %specific_impl_fn.loc44_29.4 (constants.%specific_impl_fn.544)] // CHECK:STDOUT: -// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.864)] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.ad2)] -// CHECK:STDOUT: %.loc44_29.14: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet [symbolic = %.loc44_29.14 (constants.%.a74)] -// CHECK:STDOUT: %impl.elem3.loc44_29.2: @Test.%.loc44_29.14 (%.a74) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc44_29.2 (constants.%impl.elem3.5d8)] -// CHECK:STDOUT: %specific_impl_fn.loc44_29.5: = specific_impl_function %impl.elem3.loc44_29.2, @Iterate.WithSelf.Next(%Iterate.facet) [symbolic = %specific_impl_fn.loc44_29.5 (constants.%specific_impl_fn.327)] -// 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.a36)] -// CHECK:STDOUT: %.loc44_29.15: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc44_29.15 (constants.%.490)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.185)] -// CHECK:STDOUT: %impl.elem0.loc44_29.2: @Test.%.loc44_29.15 (%.490) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc44_29.2 (constants.%impl.elem0.d3e)] -// CHECK:STDOUT: %specific_impl_fn.loc44_29.6: = specific_impl_function %impl.elem0.loc44_29.2, @Destroy.WithSelf.Op(%impl.elem1) [symbolic = %specific_impl_fn.loc44_29.6 (constants.%specific_impl_fn.e07)] +// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.bdd)] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.d6f)] +// CHECK:STDOUT: %.loc44_29.14: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet [symbolic = %.loc44_29.14 (constants.%.52a)] +// CHECK:STDOUT: %impl.elem3.loc44_29.2: @Test.%.loc44_29.14 (%.52a) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc44_29.2 (constants.%impl.elem3.510)] +// CHECK:STDOUT: %specific_impl_fn.loc44_29.5: = specific_impl_function %impl.elem3.loc44_29.2, @Iterate.WithSelf.Next(%Iterate.facet) [symbolic = %specific_impl_fn.loc44_29.5 (constants.%specific_impl_fn.a00)] +// 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.d67)] +// CHECK:STDOUT: %.loc44_29.15: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc44_29.15 (constants.%.4b9)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.ff8)] +// CHECK:STDOUT: %impl.elem0.loc44_29.2: @Test.%.loc44_29.15 (%.4b9) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc44_29.2 (constants.%impl.elem0.fbe)] +// CHECK:STDOUT: %specific_impl_fn.loc44_29.6: = specific_impl_function %impl.elem0.loc44_29.2, @Destroy.WithSelf.Op(%impl.elem1) [symbolic = %specific_impl_fn.loc44_29.6 (constants.%specific_impl_fn.517)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%r.param: ref @Test.%R.as_type.loc40_69.1 (%R.as_type.339)) { +// CHECK:STDOUT: fn(%r.param: ref @Test.%R.as_type.loc40_69.1 (%R.as_type.f62)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.bef = value_binding_pattern i [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.e9f = value_binding_pattern i [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %r.ref: ref @Test.%R.as_type.loc40_69.1 (%R.as_type.339) = name_ref r, %r -// CHECK:STDOUT: %impl.elem2.loc44_29.1: @Test.%.loc44_29.13 (%.9b8) = impl_witness_access constants.%Iterate.lookup_impl_witness.695, element2 [symbolic = %impl.elem2.loc44_29.2 (constants.%impl.elem2.377)] +// CHECK:STDOUT: %r.ref: ref @Test.%R.as_type.loc40_69.1 (%R.as_type.f62) = name_ref r, %r +// CHECK:STDOUT: %impl.elem2.loc44_29.1: @Test.%.loc44_29.13 (%.f8a) = impl_witness_access constants.%Iterate.lookup_impl_witness.acc, element2 [symbolic = %impl.elem2.loc44_29.2 (constants.%impl.elem2.398)] // CHECK:STDOUT: %bound_method.loc44_29.1: = bound_method %r.ref, %impl.elem2.loc44_29.1 -// CHECK:STDOUT: %specific_impl_fn.loc44_29.1: = specific_impl_function %impl.elem2.loc44_29.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.8c4) [symbolic = %specific_impl_fn.loc44_29.4 (constants.%specific_impl_fn.ed7)] +// CHECK:STDOUT: %specific_impl_fn.loc44_29.1: = specific_impl_function %impl.elem2.loc44_29.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.b95) [symbolic = %specific_impl_fn.loc44_29.4 (constants.%specific_impl_fn.544)] // CHECK:STDOUT: %bound_method.loc44_29.2: = bound_method %r.ref, %specific_impl_fn.loc44_29.1 -// CHECK:STDOUT: %var: ref @Test.%as_type (%as_type.254) = var invalid -// CHECK:STDOUT: %.loc44_28.1: @Test.%R.as_type.loc40_69.1 (%R.as_type.339) = acquire_value %r.ref -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @Test.%as_type (%as_type.254) to %var = call %bound_method.loc44_29.2(%.loc44_28.1) +// CHECK:STDOUT: %var: ref @Test.%as_type (%as_type.bc6) = var invalid +// CHECK:STDOUT: %.loc44_28.1: @Test.%R.as_type.loc40_69.1 (%R.as_type.f62) = acquire_value %r.ref +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @Test.%as_type (%as_type.bc6) to %var = call %bound_method.loc44_29.2(%.loc44_28.1) // CHECK:STDOUT: assign %var, %Iterate.WithSelf.NewCursor.call // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.next: -// CHECK:STDOUT: %addr.loc44: @Test.%ptr (%ptr.864) = addr_of %var -// CHECK:STDOUT: %impl.elem3.loc44_29.1: @Test.%.loc44_29.14 (%.a74) = impl_witness_access constants.%Iterate.lookup_impl_witness.695, element3 [symbolic = %impl.elem3.loc44_29.2 (constants.%impl.elem3.5d8)] +// CHECK:STDOUT: %addr.loc44: @Test.%ptr (%ptr.bdd) = addr_of %var +// CHECK:STDOUT: %impl.elem3.loc44_29.1: @Test.%.loc44_29.14 (%.52a) = impl_witness_access constants.%Iterate.lookup_impl_witness.acc, element3 [symbolic = %impl.elem3.loc44_29.2 (constants.%impl.elem3.510)] // CHECK:STDOUT: %bound_method.loc44_29.3: = bound_method %r.ref, %impl.elem3.loc44_29.1 -// CHECK:STDOUT: %.loc44_29.1: %Destroy.type = converted constants.%as_type.254, constants.%impl.elem1.bdd [symbolic = %impl.elem1 (constants.%impl.elem1.bdd)] -// CHECK:STDOUT: %specific_impl_fn.loc44_29.2: = specific_impl_function %impl.elem3.loc44_29.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.8c4) [symbolic = %specific_impl_fn.loc44_29.5 (constants.%specific_impl_fn.327)] +// CHECK:STDOUT: %.loc44_29.1: %Destroy.type = converted constants.%as_type.bc6, constants.%impl.elem1.411 [symbolic = %impl.elem1 (constants.%impl.elem1.411)] +// CHECK:STDOUT: %specific_impl_fn.loc44_29.2: = specific_impl_function %impl.elem3.loc44_29.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.b95) [symbolic = %specific_impl_fn.loc44_29.5 (constants.%specific_impl_fn.a00)] // CHECK:STDOUT: %bound_method.loc44_29.4: = bound_method %r.ref, %specific_impl_fn.loc44_29.2 -// CHECK:STDOUT: %.loc44_29.2: ref %Optional.4fe = temporary_storage -// CHECK:STDOUT: %.loc44_28.2: @Test.%R.as_type.loc40_69.1 (%R.as_type.339) = acquire_value %r.ref -// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.4fe to %.loc44_29.2 = call %bound_method.loc44_29.4(%.loc44_28.2, %addr.loc44) -// CHECK:STDOUT: %.loc44_29.3: ref %Optional.4fe = temporary %.loc44_29.2, %Iterate.WithSelf.Next.call -// CHECK:STDOUT: %.loc44_29.4: %Optional.HasValue.type.fdd = specific_constant imports.%Core.import_ref.0b9, @Optional(constants.%OptionalStorage.facet.7c3) [concrete = constants.%Optional.HasValue.fe2] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.fdd = name_ref HasValue, %.loc44_29.4 [concrete = constants.%Optional.HasValue.fe2] +// CHECK:STDOUT: %.loc44_29.2: ref %Optional.95f = temporary_storage +// CHECK:STDOUT: %.loc44_28.2: @Test.%R.as_type.loc40_69.1 (%R.as_type.f62) = acquire_value %r.ref +// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.95f to %.loc44_29.2 = call %bound_method.loc44_29.4(%.loc44_28.2, %addr.loc44) +// CHECK:STDOUT: %.loc44_29.3: ref %Optional.95f = temporary %.loc44_29.2, %Iterate.WithSelf.Next.call +// CHECK:STDOUT: %.loc44_29.4: %Optional.HasValue.type.006 = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.705) [concrete = constants.%Optional.HasValue.988] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.006 = name_ref HasValue, %.loc44_29.4 [concrete = constants.%Optional.HasValue.988] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc44_29.3, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.7c3) [concrete = constants.%Optional.HasValue.specific_fn] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.705) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc44_29.5: = bound_method %.loc44_29.3, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc44_29.5: %Optional.4fe = acquire_value %.loc44_29.3 +// CHECK:STDOUT: %.loc44_29.5: %Optional.95f = acquire_value %.loc44_29.3 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc44_29.5(%.loc44_29.5) // CHECK:STDOUT: %.loc44_29.6: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc44_29.7: bool = converted %Optional.HasValue.call, %.loc44_29.6 // CHECK:STDOUT: if %.loc44_29.7 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc44_29.8: %Optional.Get.type.43b = specific_constant imports.%Core.import_ref.61f, @Optional(constants.%OptionalStorage.facet.7c3) [concrete = constants.%Optional.Get.4c3] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.43b = name_ref Get, %.loc44_29.8 [concrete = constants.%Optional.Get.4c3] +// CHECK:STDOUT: %.loc44_29.8: %Optional.Get.type.30f = specific_constant imports.%Core.import_ref.daba, @Optional(constants.%OptionalStorage.facet.705) [concrete = constants.%Optional.Get.59c] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.30f = name_ref Get, %.loc44_29.8 [concrete = constants.%Optional.Get.59c] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc44_29.3, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.7c3) [concrete = constants.%Optional.Get.specific_fn] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.705) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc44_29.6: = bound_method %.loc44_29.3, %Optional.Get.specific_fn // CHECK:STDOUT: %.loc44_29.9: ref %ValueType = temporary_storage -// CHECK:STDOUT: %.loc44_29.10: %Optional.4fe = acquire_value %.loc44_29.3 +// CHECK:STDOUT: %.loc44_29.10: %Optional.95f = acquire_value %.loc44_29.3 // CHECK:STDOUT: %Optional.Get.call: init %ValueType to %.loc44_29.9 = call %bound_method.loc44_29.6(%.loc44_29.10) // CHECK:STDOUT: %.loc44_14: type = splice_block %ValueType.ref.loc44 [concrete = constants.%ValueType] { // CHECK:STDOUT: %Cpp.ref.loc44: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -1418,110 +1418,110 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %i.ref: %ValueType = name_ref i, %i // CHECK:STDOUT: %ValueType.cpp_operator.bound: = bound_method %sum.ref, imports.%ValueType.cpp_operator.decl // CHECK:STDOUT: %.loc45_12: ref %ValueType = value_as_ref %i.ref -// CHECK:STDOUT: %addr.loc45: %ptr.6db = addr_of %.loc45_12 -// CHECK:STDOUT: %.loc45_9.1: %ptr.e0a = as_compatible %addr.loc45 -// CHECK:STDOUT: %.loc45_9.2: %ptr.e0a = converted %addr.loc45, %.loc45_9.1 +// CHECK:STDOUT: %addr.loc45: %ptr.a3d = addr_of %.loc45_12 +// CHECK:STDOUT: %.loc45_9.1: %ptr.6bf = as_compatible %addr.loc45 +// CHECK:STDOUT: %.loc45_9.2: %ptr.6bf = converted %addr.loc45, %.loc45_9.1 // CHECK:STDOUT: %operator_PlusEqual__carbon_thunk.call: ref %ValueType = call imports.%operator_PlusEqual__carbon_thunk.decl(%sum.ref, %.loc45_9.2) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %ValueType.Op.bound.loc44: = bound_method %.loc44_29.11, constants.%ValueType.Op.cc70d5.1 +// CHECK:STDOUT: %ValueType.Op.bound.loc44: = bound_method %.loc44_29.11, constants.%ValueType.Op.4dca31.1 // CHECK:STDOUT: %Op.ref.loc44: %ValueType.cpp_destructor.type = name_ref Op, imports.%ValueType.cpp_destructor.decl [concrete = constants.%ValueType.cpp_destructor] // CHECK:STDOUT: %ValueType.cpp_destructor.bound.loc44: = bound_method %.loc44_29.11, %Op.ref.loc44 // CHECK:STDOUT: %ValueType.cpp_destructor.call.loc44: init %empty_tuple.type = call %ValueType.cpp_destructor.bound.loc44(%.loc44_29.11) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc44_29.3, constants.%Destroy.Op.2dd605.6 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc44_29.3, constants.%Destroy.Op.1a2547.6 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc44_29.3) -// CHECK:STDOUT: %impl.elem0.loc44_29.1: @Test.%.loc44_29.15 (%.490) = impl_witness_access constants.%Destroy.lookup_impl_witness.185, element0 [symbolic = %impl.elem0.loc44_29.2 (constants.%impl.elem0.d3e)] +// CHECK:STDOUT: %impl.elem0.loc44_29.1: @Test.%.loc44_29.15 (%.4b9) = impl_witness_access constants.%Destroy.lookup_impl_witness.ff8, element0 [symbolic = %impl.elem0.loc44_29.2 (constants.%impl.elem0.fbe)] // CHECK:STDOUT: %bound_method.loc44_29.7: = bound_method %var, %impl.elem0.loc44_29.1 -// CHECK:STDOUT: %specific_impl_fn.loc44_29.3: = specific_impl_function %impl.elem0.loc44_29.1, @Destroy.WithSelf.Op(constants.%impl.elem1.bdd) [symbolic = %specific_impl_fn.loc44_29.6 (constants.%specific_impl_fn.e07)] +// CHECK:STDOUT: %specific_impl_fn.loc44_29.3: = specific_impl_function %impl.elem0.loc44_29.1, @Destroy.WithSelf.Op(constants.%impl.elem1.411) [symbolic = %specific_impl_fn.loc44_29.6 (constants.%specific_impl_fn.517)] // CHECK:STDOUT: %bound_method.loc44_29.8: = bound_method %var, %specific_impl_fn.loc44_29.3 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc44_29.8(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc44_29.1(%self.param: ref %MaybeUnformed.5ea) { +// CHECK:STDOUT: fn @Destroy.Op.loc44_29.1(%self.param: ref %MaybeUnformed.02e) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.Op.loc44_29.2(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc44_29.3(%self.param: ref %struct_type.value.has_value.40c) { +// CHECK:STDOUT: fn @Destroy.Op.loc44_29.3(%self.param: ref %struct_type.value.has_value.761) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc44_29.4(%self.param: ref %DefaultOptionalStorage.448) { +// CHECK:STDOUT: fn @Destroy.Op.loc44_29.4(%self.param: ref %DefaultOptionalStorage.84c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc44_29.5(%self.param: ref %Optional.4fe) { +// CHECK:STDOUT: fn @Destroy.Op.loc44_29.5(%self.param: ref %Optional.95f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%R.2da) { -// CHECK:STDOUT: %R.loc40_10.1 => constants.%R.2da -// CHECK:STDOUT: %R.as_type.loc40_69.1 => constants.%R.as_type.339 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.df0 +// CHECK:STDOUT: specific @Test(constants.%R.de1) { +// CHECK:STDOUT: %R.loc40_10.1 => constants.%R.de1 +// CHECK:STDOUT: %R.as_type.loc40_69.1 => constants.%R.as_type.f62 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.669 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%facet_value.035) { -// CHECK:STDOUT: %R.loc40_10.1 => constants.%facet_value.035 +// CHECK:STDOUT: specific @Test(constants.%facet_value.150) { +// CHECK:STDOUT: %R.loc40_10.1 => constants.%facet_value.150 // CHECK:STDOUT: %R.as_type.loc40_69.1 => constants.%MutableRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b76 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e635 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc40 => constants.%complete_type.357 -// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.5a3 -// CHECK:STDOUT: %Iterate.facet => constants.%Iterate.facet.269 -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.635 -// CHECK:STDOUT: %.loc44_29.13 => constants.%.3fa -// CHECK:STDOUT: %impl.elem2.loc44_29.2 => constants.%R.as_type.as.Iterate.impl.NewCursor.dcd -// CHECK:STDOUT: %specific_impl_fn.loc44_29.4 => constants.%R.as_type.as.Iterate.impl.NewCursor.specific_fn.55e -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.0cd -// CHECK:STDOUT: %as_type => constants.%tuple.type.c00 -// CHECK:STDOUT: %require_complete.1 => constants.%complete_type.dee -// CHECK:STDOUT: %ptr => constants.%ptr.993 -// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.ba6 -// CHECK:STDOUT: %.loc44_29.14 => constants.%.dcc -// CHECK:STDOUT: %impl.elem3.loc44_29.2 => constants.%R.as_type.as.Iterate.impl.Next.2f5 -// CHECK:STDOUT: %specific_impl_fn.loc44_29.5 => constants.%R.as_type.as.Iterate.impl.Next.specific_fn.370 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.6fd -// CHECK:STDOUT: %.loc44_29.15 => constants.%.ad7 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e20f1f.7 -// CHECK:STDOUT: %impl.elem0.loc44_29.2 => constants.%Destroy.Op.2dd605.7 -// CHECK:STDOUT: %specific_impl_fn.loc44_29.6 => constants.%Destroy.Op.2dd605.7 +// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.096 +// CHECK:STDOUT: %Iterate.facet => constants.%Iterate.facet.723 +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.47d +// CHECK:STDOUT: %.loc44_29.13 => constants.%.47d +// CHECK:STDOUT: %impl.elem2.loc44_29.2 => constants.%R.as_type.as.Iterate.impl.NewCursor.498 +// CHECK:STDOUT: %specific_impl_fn.loc44_29.4 => constants.%R.as_type.as.Iterate.impl.NewCursor.specific_fn.532 +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.305 +// CHECK:STDOUT: %as_type => constants.%tuple.type.829 +// CHECK:STDOUT: %require_complete.1 => constants.%complete_type.94f +// CHECK:STDOUT: %ptr => constants.%ptr.d6b +// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.6f1 +// CHECK:STDOUT: %.loc44_29.14 => constants.%.fd2 +// CHECK:STDOUT: %impl.elem3.loc44_29.2 => constants.%R.as_type.as.Iterate.impl.Next.055 +// CHECK:STDOUT: %specific_impl_fn.loc44_29.5 => constants.%R.as_type.as.Iterate.impl.Next.specific_fn.5cb +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.c89 +// CHECK:STDOUT: %.loc44_29.15 => constants.%.e8a +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.7 +// CHECK:STDOUT: %impl.elem0.loc44_29.2 => constants.%Destroy.Op.1a2547.7 +// CHECK:STDOUT: %specific_impl_fn.loc44_29.6 => constants.%Destroy.Op.1a2547.7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%facet_value.2f3) { -// CHECK:STDOUT: %R.loc40_10.1 => constants.%facet_value.2f3 +// CHECK:STDOUT: specific @Test(constants.%facet_value.e78) { +// CHECK:STDOUT: %R.loc40_10.1 => constants.%facet_value.e78 // CHECK:STDOUT: %R.as_type.loc40_69.1 => constants.%ConstRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.631 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0ba // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc40 => constants.%complete_type.357 -// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.c99 -// CHECK:STDOUT: %Iterate.facet => constants.%Iterate.facet.780 -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.b98 -// CHECK:STDOUT: %.loc44_29.13 => constants.%.25f -// CHECK:STDOUT: %impl.elem2.loc44_29.2 => constants.%R.as_type.as.Iterate.impl.NewCursor.017 -// CHECK:STDOUT: %specific_impl_fn.loc44_29.4 => constants.%R.as_type.as.Iterate.impl.NewCursor.specific_fn.26d -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.018 -// CHECK:STDOUT: %as_type => constants.%tuple.type.6b1 -// CHECK:STDOUT: %require_complete.1 => constants.%complete_type.74d -// CHECK:STDOUT: %ptr => constants.%ptr.f19 -// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.8d9 -// CHECK:STDOUT: %.loc44_29.14 => constants.%.99c -// CHECK:STDOUT: %impl.elem3.loc44_29.2 => constants.%R.as_type.as.Iterate.impl.Next.c8f -// CHECK:STDOUT: %specific_impl_fn.loc44_29.5 => constants.%R.as_type.as.Iterate.impl.Next.specific_fn.ffd -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.fe4 -// CHECK:STDOUT: %.loc44_29.15 => constants.%.57d -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e20f1f.8 -// CHECK:STDOUT: %impl.elem0.loc44_29.2 => constants.%Destroy.Op.2dd605.8 -// CHECK:STDOUT: %specific_impl_fn.loc44_29.6 => constants.%Destroy.Op.2dd605.8 +// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.40c +// CHECK:STDOUT: %Iterate.facet => constants.%Iterate.facet.c46 +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.cd5 +// CHECK:STDOUT: %.loc44_29.13 => constants.%.763 +// CHECK:STDOUT: %impl.elem2.loc44_29.2 => constants.%R.as_type.as.Iterate.impl.NewCursor.bd2 +// CHECK:STDOUT: %specific_impl_fn.loc44_29.4 => constants.%R.as_type.as.Iterate.impl.NewCursor.specific_fn.7c7 +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.e08 +// CHECK:STDOUT: %as_type => constants.%tuple.type.99f +// CHECK:STDOUT: %require_complete.1 => constants.%complete_type.dea +// CHECK:STDOUT: %ptr => constants.%ptr.2f7 +// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.285 +// CHECK:STDOUT: %.loc44_29.14 => constants.%.bca +// CHECK:STDOUT: %impl.elem3.loc44_29.2 => constants.%R.as_type.as.Iterate.impl.Next.c50 +// CHECK:STDOUT: %specific_impl_fn.loc44_29.5 => constants.%R.as_type.as.Iterate.impl.Next.specific_fn.a9a +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e30 +// CHECK:STDOUT: %.loc44_29.15 => constants.%.987 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.8 +// CHECK:STDOUT: %impl.elem0.loc44_29.2 => constants.%Destroy.Op.1a2547.8 +// CHECK:STDOUT: %specific_impl_fn.loc44_29.6 => constants.%Destroy.Op.1a2547.8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- adl_return_same_types.carbon @@ -1532,108 +1532,108 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %facet_type: type = facet_type <@Destroy & @Copy> [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Optional.Get.type.d22: type = fn_type @Optional.Get, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.Get.6fc: %Optional.Get.type.d22 = struct_value () [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.498: type = fn_type @Optional.HasValue, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.bf8: %Optional.HasValue.type.498 = struct_value () [symbolic] -// CHECK:STDOUT: %T.cb0: %facet_type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.f8b: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.type.46f: type = fn_type @T.as_type.as.OptionalStorage.impl.Get, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.8c2: %T.as_type.as.OptionalStorage.impl.Get.type.46f = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.type.0ae: type = fn_type @T.as_type.as.OptionalStorage.impl.Has, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.e0f: %T.as_type.as.OptionalStorage.impl.Has.type.0ae = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.type.87a: type = fn_type @T.as_type.as.OptionalStorage.impl.Some, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.898: %T.as_type.as.OptionalStorage.impl.Some.type.87a = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.type.ceb: type = fn_type @T.as_type.as.OptionalStorage.impl.None, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.9dd: %T.as_type.as.OptionalStorage.impl.None.type.ceb = struct_value () [symbolic] -// CHECK:STDOUT: %.Self.e31: %Iterate.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.732: = lookup_impl_witness %.Self.e31, @Iterate [symbolic_self] -// CHECK:STDOUT: %impl.elem0.03d: %facet_type = impl_witness_access %Iterate.lookup_impl_witness.732, element0 [symbolic_self] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Optional.Get.type.bb9: type = fn_type @Optional.Get, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.Get.fa1: %Optional.Get.type.bb9 = struct_value () [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.e9e: type = fn_type @Optional.HasValue, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.6cd: %Optional.HasValue.type.e9e = struct_value () [symbolic] +// CHECK:STDOUT: %T.283: %facet_type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.d50: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.type.029: type = fn_type @T.as_type.as.OptionalStorage.impl.Get, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.cb5: %T.as_type.as.OptionalStorage.impl.Get.type.029 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.type.4bc: type = fn_type @T.as_type.as.OptionalStorage.impl.Has, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.dc2: %T.as_type.as.OptionalStorage.impl.Has.type.4bc = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.type.800: type = fn_type @T.as_type.as.OptionalStorage.impl.Some, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.e83: %T.as_type.as.OptionalStorage.impl.Some.type.800 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.type.300: type = fn_type @T.as_type.as.OptionalStorage.impl.None, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.f54: %T.as_type.as.OptionalStorage.impl.None.type.300 = struct_value () [symbolic] +// CHECK:STDOUT: %.Self.35d: %Iterate.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.b37: = lookup_impl_witness %.Self.35d, @Iterate [symbolic_self] +// CHECK:STDOUT: %impl.elem0.903: %facet_type = impl_witness_access %Iterate.lookup_impl_witness.b37, element0 [symbolic_self] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %N.fe9: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc20_47.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.2: = custom_witness (%Destroy.Op.2dd605.2), @Destroy [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.125: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N.fe9) [symbolic] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bfc: %Float.as.Copy.impl.Op.type.125 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.811: = impl_witness imports.%Copy.impl_witness_table.384, @Float.as.Copy.impl(%int_64) [concrete] -// CHECK:STDOUT: %facet_value.b35: %facet_type = facet_value %f64.b55, (%custom_witness.e20f1f.2, %Copy.impl_witness.811) [concrete] -// CHECK:STDOUT: %Iterate_where.type.fd5: type = facet_type <@Iterate where %impl.elem0.03d = %facet_value.b35> [concrete] -// CHECK:STDOUT: %R.706: %Iterate_where.type.fd5 = symbolic_binding R, 0 [symbolic] -// CHECK:STDOUT: %R.as_type.8de: type = facet_access_type %R.706 [symbolic] -// CHECK:STDOUT: %pattern_type.4d6: type = pattern_type %R.as_type.8de [symbolic] +// 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.2: type = fn_type @Destroy.Op.loc20_47.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: %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.873: = impl_witness imports.%Copy.impl_witness_table.4e8, @Float.as.Copy.impl(%int_64) [concrete] +// CHECK:STDOUT: %facet_value.209: %facet_type = facet_value %f64.dc1, (%custom_witness.df9cc1.2, %Copy.impl_witness.873) [concrete] +// CHECK:STDOUT: %Iterate_where.type.83b: type = facet_type <@Iterate where %impl.elem0.903 = %facet_value.209> [concrete] +// CHECK:STDOUT: %R.7b2: %Iterate_where.type.83b = symbolic_binding R, 0 [symbolic] +// CHECK:STDOUT: %R.as_type.657: type = facet_access_type %R.7b2 [symbolic] +// CHECK:STDOUT: %pattern_type.afe: type = pattern_type %R.as_type.657 [symbolic] // CHECK:STDOUT: %CppRangeForIterate.type: type = facet_type <@CppRangeForIterate> [concrete] -// CHECK:STDOUT: %.Self.10b: %CppRangeForIterate.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.5bf: = lookup_impl_witness %.Self.10b, @CppRangeForIterate [symbolic_self] -// CHECK:STDOUT: %impl.elem0.d47: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.5bf, element0 [symbolic_self] -// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.bce: = lookup_impl_witness %impl.elem0.d47, @CppUnsafeDeref [symbolic_self] -// CHECK:STDOUT: %impl.elem0.c87: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.bce, element0 [symbolic_self] -// CHECK:STDOUT: %impl.elem1.846: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.5bf, element1 [symbolic_self] -// CHECK:STDOUT: %CppRangeForIterate_where.type: type = facet_type <@CppRangeForIterate where %impl.elem0.d47 impls @Destroy and %impl.elem0.d47 impls @Copy and %impl.elem0.d47 impls @CppUnsafeDeref and %impl.elem0.d47 impls @EqWith, @EqWith(%impl.elem1.846) and %impl.elem0.d47 impls @Inc and %impl.elem0.c87 impls @Destroy and %impl.elem0.c87 impls @Copy and %impl.elem1.846 impls @Destroy and %impl.elem1.846 impls @Copy> [concrete] -// CHECK:STDOUT: %R.6c6: %CppRangeForIterate_where.type = symbolic_binding R, 0 [symbolic] -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.edd1fe.2: = lookup_impl_witness %R.6c6, @CppRangeForIterate [symbolic] -// CHECK:STDOUT: %impl.elem1.bdcd2d.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.edd1fe.2, element1 [symbolic] -// CHECK:STDOUT: %impl.elem0.d5966e.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.edd1fe.2, element0 [symbolic] -// CHECK:STDOUT: %tuple.type.384: type = tuple_type (%impl.elem0.d5966e.2, %impl.elem1.bdcd2d.2) [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.0ba: = lookup_impl_witness %tuple.type.384, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.2fe: %Destroy.type = facet_value %tuple.type.384, (%Destroy.lookup_impl_witness.0ba) [symbolic] -// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.ca4: = lookup_impl_witness %impl.elem0.d5966e.2, @CppUnsafeDeref [symbolic] -// CHECK:STDOUT: %impl.elem0.b10: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.ca4, element0 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.3d8: = lookup_impl_witness %impl.elem0.b10, @Destroy [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.bff: = lookup_impl_witness %impl.elem0.b10, @Copy [symbolic] -// CHECK:STDOUT: %facet_value.a30: %facet_type = facet_value %impl.elem0.b10, (%Destroy.lookup_impl_witness.3d8, %Copy.lookup_impl_witness.bff) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.5b5: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%R.6c6) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.cd2: %R.as_type.as.Iterate.impl.Next.type.5b5 = struct_value () [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.9b6: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%R.6c6) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.b29: %R.as_type.as.Iterate.impl.NewCursor.type.9b6 = struct_value () [symbolic] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.97c: = lookup_impl_witness %R.706, @Iterate [symbolic] -// CHECK:STDOUT: %Iterate.facet.564: %Iterate.type = facet_value %R.as_type.8de, (%Iterate.lookup_impl_witness.97c) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.95b: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.564) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.31d: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.564) [symbolic] -// CHECK:STDOUT: %.937: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.95b, %Iterate.facet.564 [symbolic] -// CHECK:STDOUT: %impl.elem2.fdc: %.937 = impl_witness_access %Iterate.lookup_impl_witness.97c, element2 [symbolic] -// CHECK:STDOUT: %impl.elem1.46d: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.97c, element1 [symbolic] -// CHECK:STDOUT: %as_type.e0d: type = facet_access_type %impl.elem1.46d [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a2c: = specific_impl_function %impl.elem2.fdc, @Iterate.WithSelf.NewCursor(%Iterate.facet.564) [symbolic] -// CHECK:STDOUT: %ptr.678: type = ptr_type %as_type.e0d [symbolic] -// CHECK:STDOUT: %.b70: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.31d, %Iterate.facet.564 [symbolic] -// CHECK:STDOUT: %impl.elem3.5cd: %.b70 = impl_witness_access %Iterate.lookup_impl_witness.97c, element3 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.d02: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.b35) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.4b5: = impl_witness imports.%OptionalStorage.impl_witness_table.6f7, @T.as_type.as.OptionalStorage.impl(%facet_value.b35) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.fd4: %OptionalStorage.type = facet_value %f64.b55, (%OptionalStorage.impl_witness.4b5) [concrete] -// CHECK:STDOUT: %Optional.249: type = class_type @Optional, @Optional(%OptionalStorage.facet.fd4) [concrete] -// CHECK:STDOUT: %specific_impl_fn.e20: = specific_impl_function %impl.elem3.5cd, @Iterate.WithSelf.Next(%Iterate.facet.564) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.e04: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.fd4) [concrete] -// CHECK:STDOUT: %Optional.HasValue.69e: %Optional.HasValue.type.e04 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.941: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.fd4) [concrete] -// CHECK:STDOUT: %Optional.Get.8ce: %Optional.Get.type.941 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.facet.169: %Destroy.type = facet_value %f64.b55, (%custom_witness.e20f1f.2) [concrete] -// CHECK:STDOUT: %MaybeUnformed.bf7: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.169) [concrete] -// CHECK:STDOUT: %struct_type.value.has_value.ec9: type = struct_type {.value: %MaybeUnformed.bf7, .has_value: bool} [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.69e, @Optional.HasValue(%OptionalStorage.facet.fd4) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.8ce, @Optional.Get(%OptionalStorage.facet.fd4) [concrete] -// CHECK:STDOUT: %AddAssignWith.type.f8a: type = facet_type <@AddAssignWith, @AddAssignWith(%f64.b55)> [concrete] -// CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.type.4cd: type = fn_type @Float.as.AddAssignWith.impl.Op, @Float.as.AddAssignWith.impl(%N.fe9) [symbolic] -// CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.ec5: %Float.as.AddAssignWith.impl.Op.type.4cd = struct_value () [symbolic] -// CHECK:STDOUT: %AddAssignWith.impl_witness.4c6: = impl_witness imports.%AddAssignWith.impl_witness_table, @Float.as.AddAssignWith.impl(%int_64) [concrete] -// CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.type.db3: type = fn_type @Float.as.AddAssignWith.impl.Op, @Float.as.AddAssignWith.impl(%int_64) [concrete] -// CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.ba4: %Float.as.AddAssignWith.impl.Op.type.db3 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.f8a = facet_value %f64.b55, (%AddAssignWith.impl_witness.4c6) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.aab: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%f64.b55, %AddAssignWith.facet) [concrete] -// CHECK:STDOUT: %.8cc: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.aab, %AddAssignWith.facet [concrete] -// CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Float.as.AddAssignWith.impl.Op.ba4, @Float.as.AddAssignWith.impl.Op(%int_64) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.8: type = fn_type @Destroy.Op.loc24_19.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.8: %Destroy.Op.type.790b3b.8 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.56d: = lookup_impl_witness %impl.elem1.46d, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.19e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.46d) [symbolic] -// CHECK:STDOUT: %.fb1: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.19e, %impl.elem1.46d [symbolic] -// CHECK:STDOUT: %impl.elem0.648: %.fb1 = impl_witness_access %Destroy.lookup_impl_witness.56d, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.05c: = specific_impl_function %impl.elem0.648, @Destroy.WithSelf.Op(%impl.elem1.46d) [symbolic] +// CHECK:STDOUT: %.Self.6bd: %CppRangeForIterate.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.143: = lookup_impl_witness %.Self.6bd, @CppRangeForIterate [symbolic_self] +// CHECK:STDOUT: %impl.elem0.109: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.143, element0 [symbolic_self] +// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.712: = lookup_impl_witness %impl.elem0.109, @CppUnsafeDeref [symbolic_self] +// CHECK:STDOUT: %impl.elem0.56a: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.712, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem1.222: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.143, element1 [symbolic_self] +// CHECK:STDOUT: %CppRangeForIterate_where.type: type = facet_type <@CppRangeForIterate where %impl.elem0.109 impls @Destroy and %impl.elem0.109 impls @Copy and %impl.elem0.109 impls @CppUnsafeDeref and %impl.elem0.109 impls @EqWith, @EqWith(%impl.elem1.222) and %impl.elem0.109 impls @Inc and %impl.elem0.56a impls @Destroy and %impl.elem0.56a impls @Copy and %impl.elem1.222 impls @Destroy and %impl.elem1.222 impls @Copy> [concrete] +// CHECK:STDOUT: %R.39b: %CppRangeForIterate_where.type = symbolic_binding R, 0 [symbolic] +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.7e2712.2: = lookup_impl_witness %R.39b, @CppRangeForIterate [symbolic] +// CHECK:STDOUT: %impl.elem1.7a0bff.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.7e2712.2, element1 [symbolic] +// CHECK:STDOUT: %impl.elem0.73eb7f.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.7e2712.2, element0 [symbolic] +// CHECK:STDOUT: %tuple.type.3cf: type = tuple_type (%impl.elem0.73eb7f.2, %impl.elem1.7a0bff.2) [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.69f: = lookup_impl_witness %tuple.type.3cf, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.593: %Destroy.type = facet_value %tuple.type.3cf, (%Destroy.lookup_impl_witness.69f) [symbolic] +// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.aa7: = lookup_impl_witness %impl.elem0.73eb7f.2, @CppUnsafeDeref [symbolic] +// CHECK:STDOUT: %impl.elem0.af7: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.aa7, element0 [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.ec3: = lookup_impl_witness %impl.elem0.af7, @Destroy [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.a7a: = lookup_impl_witness %impl.elem0.af7, @Copy [symbolic] +// CHECK:STDOUT: %facet_value.194: %facet_type = facet_value %impl.elem0.af7, (%Destroy.lookup_impl_witness.ec3, %Copy.lookup_impl_witness.a7a) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.1f7: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%R.39b) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.0d6: %R.as_type.as.Iterate.impl.Next.type.1f7 = struct_value () [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.36f: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%R.39b) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.29b: %R.as_type.as.Iterate.impl.NewCursor.type.36f = struct_value () [symbolic] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.171: = lookup_impl_witness %R.7b2, @Iterate [symbolic] +// CHECK:STDOUT: %Iterate.facet.523: %Iterate.type = facet_value %R.as_type.657, (%Iterate.lookup_impl_witness.171) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.51e: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.523) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.e1d: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.523) [symbolic] +// CHECK:STDOUT: %.250: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.51e, %Iterate.facet.523 [symbolic] +// CHECK:STDOUT: %impl.elem2.9ef: %.250 = impl_witness_access %Iterate.lookup_impl_witness.171, element2 [symbolic] +// CHECK:STDOUT: %impl.elem1.f12: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.171, element1 [symbolic] +// CHECK:STDOUT: %as_type.6f2: type = facet_access_type %impl.elem1.f12 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.5ff: = specific_impl_function %impl.elem2.9ef, @Iterate.WithSelf.NewCursor(%Iterate.facet.523) [symbolic] +// CHECK:STDOUT: %ptr.b94: type = ptr_type %as_type.6f2 [symbolic] +// CHECK:STDOUT: %.f81: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.e1d, %Iterate.facet.523 [symbolic] +// CHECK:STDOUT: %impl.elem3.04c: %.f81 = impl_witness_access %Iterate.lookup_impl_witness.171, element3 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.541: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.209) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.fd3: = impl_witness imports.%OptionalStorage.impl_witness_table.655, @T.as_type.as.OptionalStorage.impl(%facet_value.209) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.cc1: %OptionalStorage.type = facet_value %f64.dc1, (%OptionalStorage.impl_witness.fd3) [concrete] +// CHECK:STDOUT: %Optional.f48: type = class_type @Optional, @Optional(%OptionalStorage.facet.cc1) [concrete] +// CHECK:STDOUT: %specific_impl_fn.c5b: = specific_impl_function %impl.elem3.04c, @Iterate.WithSelf.Next(%Iterate.facet.523) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.d4e: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.cc1) [concrete] +// CHECK:STDOUT: %Optional.HasValue.e79: %Optional.HasValue.type.d4e = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.822: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.cc1) [concrete] +// CHECK:STDOUT: %Optional.Get.f05: %Optional.Get.type.822 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.facet.339: %Destroy.type = facet_value %f64.dc1, (%custom_witness.df9cc1.2) [concrete] +// CHECK:STDOUT: %MaybeUnformed.b7e: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.339) [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: = specific_function %Optional.HasValue.e79, @Optional.HasValue(%OptionalStorage.facet.cc1) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.f05, @Optional.Get(%OptionalStorage.facet.cc1) [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] +// CHECK:STDOUT: %AddAssignWith.impl_witness.e85: = impl_witness imports.%AddAssignWith.impl_witness_table, @Float.as.AddAssignWith.impl(%int_64) [concrete] +// CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.type.a92: type = fn_type @Float.as.AddAssignWith.impl.Op, @Float.as.AddAssignWith.impl(%int_64) [concrete] +// CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.ac1: %Float.as.AddAssignWith.impl.Op.type.a92 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.ff9 = facet_value %f64.dc1, (%AddAssignWith.impl_witness.e85) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.f8a: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%f64.dc1, %AddAssignWith.facet) [concrete] +// CHECK:STDOUT: %.746: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.f8a, %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.8: type = fn_type @Destroy.Op.loc24_19.5 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.8: %Destroy.Op.type.1d8f74.8 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.f8f: = lookup_impl_witness %impl.elem1.f12, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.b9c: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.f12) [symbolic] +// CHECK:STDOUT: %.75c: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.b9c, %impl.elem1.f12 [symbolic] +// CHECK:STDOUT: %impl.elem0.688: %.75c = impl_witness_access %Destroy.lookup_impl_witness.f8f, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.1e0: = specific_impl_function %impl.elem0.688, @Destroy.WithSelf.Op(%impl.elem1.f12) [symbolic] // CHECK:STDOUT: %ConstRange: type = class_type @ConstRange [concrete] -// CHECK:STDOUT: %pattern_type.88d: type = pattern_type %ConstRange [concrete] +// CHECK:STDOUT: %pattern_type.025: type = pattern_type %ConstRange [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Iterator: type = class_type @Iterator.1 [concrete] @@ -1641,145 +1641,145 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Begin: %Begin.type = struct_value () [concrete] // CHECK:STDOUT: %End.type: type = fn_type @End [concrete] // CHECK:STDOUT: %End: %End.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.4c3: = custom_witness (%Iterator, %Iterator, %Begin, %End), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %Iterator.Op.type.587642.1: type = fn_type @Iterator.Op.1 [concrete] -// CHECK:STDOUT: %Iterator.Op.dc644c.1: %Iterator.Op.type.587642.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e59: = custom_witness (%f64.b55, %Iterator.Op.dc644c.1), @CppUnsafeDeref [concrete] -// CHECK:STDOUT: %Iterator.Op.type.587642.2: type = fn_type @Iterator.Op.2 [concrete] -// CHECK:STDOUT: %Iterator.Op.dc644c.2: %Iterator.Op.type.587642.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.166: = custom_witness (%Iterator.Op.dc644c.2), @Destroy [concrete] -// CHECK:STDOUT: %Iterator.Op.type.587642.3: type = fn_type @Iterator.Op.3 [concrete] -// CHECK:STDOUT: %Iterator.Op.dc644c.3: %Iterator.Op.type.587642.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b36: = custom_witness (%Iterator.Op.dc644c.3), @Copy [concrete] +// CHECK:STDOUT: %custom_witness.5d5: = custom_witness (%Iterator, %Iterator, %Begin, %End), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %Iterator.Op.type.ac7e09.1: type = fn_type @Iterator.Op.1 [concrete] +// CHECK:STDOUT: %Iterator.Op.583fda.1: %Iterator.Op.type.ac7e09.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.994: = custom_witness (%f64.dc1, %Iterator.Op.583fda.1), @CppUnsafeDeref [concrete] +// CHECK:STDOUT: %Iterator.Op.type.ac7e09.2: type = fn_type @Iterator.Op.2 [concrete] +// CHECK:STDOUT: %Iterator.Op.583fda.2: %Iterator.Op.type.ac7e09.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.213: = custom_witness (%Iterator.Op.583fda.2), @Destroy [concrete] +// CHECK:STDOUT: %Iterator.Op.type.ac7e09.3: type = fn_type @Iterator.Op.3 [concrete] +// CHECK:STDOUT: %Iterator.Op.583fda.3: %Iterator.Op.type.ac7e09.3 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.a31: = custom_witness (%Iterator.Op.583fda.3), @Copy [concrete] // CHECK:STDOUT: %Equal.type: type = fn_type @Equal [concrete] // CHECK:STDOUT: %Equal: %Equal.type = struct_value () [concrete] // CHECK:STDOUT: %NotEqual.type: type = fn_type @NotEqual [concrete] // CHECK:STDOUT: %NotEqual: %NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.832: = custom_witness (%Equal, %NotEqual), @EqWith, @EqWith(%Iterator) [concrete] -// CHECK:STDOUT: %Iterator.Op.type.587642.4: type = fn_type @Iterator.Op.4 [concrete] -// CHECK:STDOUT: %Iterator.Op.dc644c.4: %Iterator.Op.type.587642.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.8ca: = custom_witness (%Iterator.Op.dc644c.4), @Inc [concrete] -// CHECK:STDOUT: %facet_value.17b: %CppRangeForIterate_where.type = facet_value %ConstRange, (%custom_witness.e20f1f.2, %Copy.impl_witness.811, %custom_witness.4c3, %custom_witness.166, %custom_witness.b36, %custom_witness.e59, %custom_witness.832, %custom_witness.8ca) [concrete] -// CHECK:STDOUT: %tuple.type.d7d: type = tuple_type (%Iterator, %Iterator) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.9: type = fn_type @Destroy.Op.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.9: %Destroy.Op.type.790b3b.9 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.9: = custom_witness (%Destroy.Op.2dd605.9), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.57a: %Destroy.type = facet_value %tuple.type.d7d, (%custom_witness.e20f1f.9) [concrete] -// CHECK:STDOUT: %Iterate.impl_witness.d7d: = impl_witness imports.%Iterate.impl_witness_table.9f0, @R.as_type.as.Iterate.impl(%facet_value.17b) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.26a: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%facet_value.17b) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.51f: %R.as_type.as.Iterate.impl.NewCursor.type.26a = struct_value () [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.d6c: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%facet_value.17b) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.753: %R.as_type.as.Iterate.impl.Next.type.d6c = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet.946: %Iterate.type = facet_value %ConstRange, (%Iterate.impl_witness.d7d) [concrete] -// CHECK:STDOUT: %facet_value.7f4: %Iterate_where.type.fd5 = facet_value %ConstRange, (%Iterate.impl_witness.d7d) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.aba: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.946) [concrete] -// CHECK:STDOUT: %.35d: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.aba, %Iterate.facet.946 [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.specific_fn: = specific_function %R.as_type.as.Iterate.impl.NewCursor.51f, @R.as_type.as.Iterate.impl.NewCursor(%facet_value.17b) [concrete] -// CHECK:STDOUT: %complete_type.a15: = complete_type_witness %tuple.type.d7d [concrete] -// CHECK:STDOUT: %ptr.365: type = ptr_type %tuple.type.d7d [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.eee: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.946) [concrete] -// CHECK:STDOUT: %.828: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.eee, %Iterate.facet.946 [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.specific_fn: = specific_function %R.as_type.as.Iterate.impl.Next.753, @R.as_type.as.Iterate.impl.Next(%facet_value.17b) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.286: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.57a) [concrete] -// CHECK:STDOUT: %.2ef: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.286, %Destroy.facet.57a [concrete] +// CHECK:STDOUT: %custom_witness.821: = custom_witness (%Equal, %NotEqual), @EqWith, @EqWith(%Iterator) [concrete] +// CHECK:STDOUT: %Iterator.Op.type.ac7e09.4: type = fn_type @Iterator.Op.4 [concrete] +// CHECK:STDOUT: %Iterator.Op.583fda.4: %Iterator.Op.type.ac7e09.4 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.393: = custom_witness (%Iterator.Op.583fda.4), @Inc [concrete] +// CHECK:STDOUT: %facet_value.c05: %CppRangeForIterate_where.type = facet_value %ConstRange, (%custom_witness.df9cc1.2, %Copy.impl_witness.873, %custom_witness.5d5, %custom_witness.213, %custom_witness.a31, %custom_witness.994, %custom_witness.821, %custom_witness.393) [concrete] +// CHECK:STDOUT: %tuple.type.005: type = tuple_type (%Iterator, %Iterator) [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.9: type = fn_type @Destroy.Op.2 [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.40b: %Destroy.type = facet_value %tuple.type.005, (%custom_witness.df9cc1.9) [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.1f0: = impl_witness imports.%Iterate.impl_witness_table.344, @R.as_type.as.Iterate.impl(%facet_value.c05) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.315: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%facet_value.c05) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.d2e: %R.as_type.as.Iterate.impl.NewCursor.type.315 = struct_value () [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.c69: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%facet_value.c05) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.0b7: %R.as_type.as.Iterate.impl.Next.type.c69 = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet.9f4: %Iterate.type = facet_value %ConstRange, (%Iterate.impl_witness.1f0) [concrete] +// CHECK:STDOUT: %facet_value.9d0: %Iterate_where.type.83b = facet_value %ConstRange, (%Iterate.impl_witness.1f0) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.d89: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.9f4) [concrete] +// CHECK:STDOUT: %.e0f: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.d89, %Iterate.facet.9f4 [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.specific_fn: = specific_function %R.as_type.as.Iterate.impl.NewCursor.d2e, @R.as_type.as.Iterate.impl.NewCursor(%facet_value.c05) [concrete] +// CHECK:STDOUT: %complete_type.320: = complete_type_witness %tuple.type.005 [concrete] +// CHECK:STDOUT: %ptr.d1a: type = ptr_type %tuple.type.005 [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.64f: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.9f4) [concrete] +// CHECK:STDOUT: %.50c: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.64f, %Iterate.facet.9f4 [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.specific_fn: = specific_function %R.as_type.as.Iterate.impl.Next.0b7, @R.as_type.as.Iterate.impl.Next(%facet_value.c05) [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.0b9: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.498) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.bf8)] -// CHECK:STDOUT: %Core.import_ref.61f: @Optional.%Optional.Get.type (%Optional.Get.type.d22) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.6fc)] -// CHECK:STDOUT: %Core.import_ref.2b5: type = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%DefaultOptionalStorage (constants.%DefaultOptionalStorage.f8b)] -// CHECK:STDOUT: %Core.import_ref.b0a: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None.type (%T.as_type.as.OptionalStorage.impl.None.type.ceb) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None (constants.%T.as_type.as.OptionalStorage.impl.None.9dd)] -// CHECK:STDOUT: %Core.import_ref.3fc: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some.type (%T.as_type.as.OptionalStorage.impl.Some.type.87a) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some (constants.%T.as_type.as.OptionalStorage.impl.Some.898)] -// CHECK:STDOUT: %Core.import_ref.986: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has.type (%T.as_type.as.OptionalStorage.impl.Has.type.0ae) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has (constants.%T.as_type.as.OptionalStorage.impl.Has.e0f)] -// CHECK:STDOUT: %Core.import_ref.557: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get.type (%T.as_type.as.OptionalStorage.impl.Get.type.46f) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get (constants.%T.as_type.as.OptionalStorage.impl.Get.8c2)] -// CHECK:STDOUT: %Core.import_ref.999 = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.6f7 = impl_witness_table (%Core.import_ref.2b5, %Core.import_ref.b0a, %Core.import_ref.3fc, %Core.import_ref.986, %Core.import_ref.557, %Core.import_ref.999), @T.as_type.as.OptionalStorage.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.461: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.125) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.bfc)] -// CHECK:STDOUT: %Copy.impl_witness_table.384 = impl_witness_table (%Core.import_ref.461), @Float.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.89a: %facet_type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%facet_value (constants.%facet_value.a30)] -// CHECK:STDOUT: %Core.import_ref.9ea: %Destroy.type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%Destroy.facet (constants.%Destroy.facet.2fe)] -// CHECK:STDOUT: %Core.import_ref.a6c: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor.type (%R.as_type.as.Iterate.impl.NewCursor.type.9b6) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor (constants.%R.as_type.as.Iterate.impl.NewCursor.b29)] -// CHECK:STDOUT: %Core.import_ref.a02: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next.type (%R.as_type.as.Iterate.impl.Next.type.5b5) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next (constants.%R.as_type.as.Iterate.impl.Next.cd2)] -// CHECK:STDOUT: %Iterate.impl_witness_table.9f0 = impl_witness_table (%Core.import_ref.89a, %Core.import_ref.9ea, %Core.import_ref.a6c, %Core.import_ref.a02), @R.as_type.as.Iterate.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.c81: @Float.as.AddAssignWith.impl.%Float.as.AddAssignWith.impl.Op.type (%Float.as.AddAssignWith.impl.Op.type.4cd) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.AddAssignWith.impl.%Float.as.AddAssignWith.impl.Op (constants.%Float.as.AddAssignWith.impl.Op.ec5)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table = impl_witness_table (%Core.import_ref.c81), @Float.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.bb6: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.e9e) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.6cd)] +// CHECK:STDOUT: %Core.import_ref.daba: @Optional.%Optional.Get.type (%Optional.Get.type.bb9) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.fa1)] +// CHECK:STDOUT: %Core.import_ref.0c6: type = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%DefaultOptionalStorage (constants.%DefaultOptionalStorage.d50)] +// CHECK:STDOUT: %Core.import_ref.f4f: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None.type (%T.as_type.as.OptionalStorage.impl.None.type.300) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None (constants.%T.as_type.as.OptionalStorage.impl.None.f54)] +// CHECK:STDOUT: %Core.import_ref.18f: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some.type (%T.as_type.as.OptionalStorage.impl.Some.type.800) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some (constants.%T.as_type.as.OptionalStorage.impl.Some.e83)] +// CHECK:STDOUT: %Core.import_ref.c68: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has.type (%T.as_type.as.OptionalStorage.impl.Has.type.4bc) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has (constants.%T.as_type.as.OptionalStorage.impl.Has.dc2)] +// CHECK:STDOUT: %Core.import_ref.a83: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get.type (%T.as_type.as.OptionalStorage.impl.Get.type.029) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get (constants.%T.as_type.as.OptionalStorage.impl.Get.cb5)] +// CHECK:STDOUT: %Core.import_ref.aaa = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.655 = impl_witness_table (%Core.import_ref.0c6, %Core.import_ref.f4f, %Core.import_ref.18f, %Core.import_ref.c68, %Core.import_ref.a83, %Core.import_ref.aaa), @T.as_type.as.OptionalStorage.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e69: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.ff3) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.d93)] +// CHECK:STDOUT: %Copy.impl_witness_table.4e8 = impl_witness_table (%Core.import_ref.e69), @Float.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.301: %facet_type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%facet_value (constants.%facet_value.194)] +// CHECK:STDOUT: %Core.import_ref.89f: %Destroy.type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%Destroy.facet (constants.%Destroy.facet.593)] +// CHECK:STDOUT: %Core.import_ref.3e6: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor.type (%R.as_type.as.Iterate.impl.NewCursor.type.36f) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor (constants.%R.as_type.as.Iterate.impl.NewCursor.29b)] +// CHECK:STDOUT: %Core.import_ref.85d: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next.type (%R.as_type.as.Iterate.impl.Next.type.1f7) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next (constants.%R.as_type.as.Iterate.impl.Next.0d6)] +// CHECK:STDOUT: %Iterate.impl_witness_table.344 = impl_witness_table (%Core.import_ref.301, %Core.import_ref.89f, %Core.import_ref.3e6, %Core.import_ref.85d), @R.as_type.as.Iterate.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cb3: @Float.as.AddAssignWith.impl.%Float.as.AddAssignWith.impl.Op.type (%Float.as.AddAssignWith.impl.Op.type.fdd) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.AddAssignWith.impl.%Float.as.AddAssignWith.impl.Op (constants.%Float.as.AddAssignWith.impl.Op.430)] +// 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 @Test(%R.loc20_10.2: %Iterate_where.type.fd5) { +// CHECK:STDOUT: generic fn @Test(%R.loc20_10.2: %Iterate_where.type.83b) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc20_10.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.97c)] -// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %R.as_type.loc20_55.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet (constants.%Iterate.facet.564)] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.95b)] -// CHECK:STDOUT: %.loc24_19.12: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet [symbolic = %.loc24_19.12 (constants.%.937)] -// CHECK:STDOUT: %impl.elem2.loc24_19.2: @Test.%.loc24_19.12 (%.937) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc24_19.2 (constants.%impl.elem2.fdc)] -// CHECK:STDOUT: %specific_impl_fn.loc24_19.4: = specific_impl_function %impl.elem2.loc24_19.2, @Iterate.WithSelf.NewCursor(%Iterate.facet) [symbolic = %specific_impl_fn.loc24_19.4 (constants.%specific_impl_fn.a2c)] +// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc20_10.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.171)] +// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %R.as_type.loc20_55.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet (constants.%Iterate.facet.523)] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.51e)] +// CHECK:STDOUT: %.loc24_19.12: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet [symbolic = %.loc24_19.12 (constants.%.250)] +// CHECK:STDOUT: %impl.elem2.loc24_19.2: @Test.%.loc24_19.12 (%.250) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc24_19.2 (constants.%impl.elem2.9ef)] +// CHECK:STDOUT: %specific_impl_fn.loc24_19.4: = specific_impl_function %impl.elem2.loc24_19.2, @Iterate.WithSelf.NewCursor(%Iterate.facet) [symbolic = %specific_impl_fn.loc24_19.4 (constants.%specific_impl_fn.5ff)] // CHECK:STDOUT: -// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.678)] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.31d)] -// CHECK:STDOUT: %.loc24_19.13: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet [symbolic = %.loc24_19.13 (constants.%.b70)] -// CHECK:STDOUT: %impl.elem3.loc24_19.2: @Test.%.loc24_19.13 (%.b70) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc24_19.2 (constants.%impl.elem3.5cd)] -// CHECK:STDOUT: %specific_impl_fn.loc24_19.5: = specific_impl_function %impl.elem3.loc24_19.2, @Iterate.WithSelf.Next(%Iterate.facet) [symbolic = %specific_impl_fn.loc24_19.5 (constants.%specific_impl_fn.e20)] -// 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.19e)] -// CHECK:STDOUT: %.loc24_19.14: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc24_19.14 (constants.%.fb1)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.56d)] -// CHECK:STDOUT: %impl.elem0.loc24_19.2: @Test.%.loc24_19.14 (%.fb1) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc24_19.2 (constants.%impl.elem0.648)] -// 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.05c)] +// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.b94)] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.e1d)] +// CHECK:STDOUT: %.loc24_19.13: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet [symbolic = %.loc24_19.13 (constants.%.f81)] +// CHECK:STDOUT: %impl.elem3.loc24_19.2: @Test.%.loc24_19.13 (%.f81) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc24_19.2 (constants.%impl.elem3.04c)] +// CHECK:STDOUT: %specific_impl_fn.loc24_19.5: = specific_impl_function %impl.elem3.loc24_19.2, @Iterate.WithSelf.Next(%Iterate.facet) [symbolic = %specific_impl_fn.loc24_19.5 (constants.%specific_impl_fn.c5b)] +// 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.b9c)] +// CHECK:STDOUT: %.loc24_19.14: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc24_19.14 (constants.%.75c)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.f8f)] +// CHECK:STDOUT: %impl.elem0.loc24_19.2: @Test.%.loc24_19.14 (%.75c) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc24_19.2 (constants.%impl.elem0.688)] +// 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.1e0)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%r.param: @Test.%R.as_type.loc20_55.1 (%R.as_type.8de)) { +// CHECK:STDOUT: fn(%r.param: @Test.%R.as_type.loc20_55.1 (%R.as_type.657)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.f3c = value_binding_pattern i [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.fb7 = value_binding_pattern i [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %r.ref: @Test.%R.as_type.loc20_55.1 (%R.as_type.8de) = name_ref r, %r -// CHECK:STDOUT: %impl.elem2.loc24_19.1: @Test.%.loc24_19.12 (%.937) = impl_witness_access constants.%Iterate.lookup_impl_witness.97c, element2 [symbolic = %impl.elem2.loc24_19.2 (constants.%impl.elem2.fdc)] +// CHECK:STDOUT: %r.ref: @Test.%R.as_type.loc20_55.1 (%R.as_type.657) = name_ref r, %r +// CHECK:STDOUT: %impl.elem2.loc24_19.1: @Test.%.loc24_19.12 (%.250) = impl_witness_access constants.%Iterate.lookup_impl_witness.171, element2 [symbolic = %impl.elem2.loc24_19.2 (constants.%impl.elem2.9ef)] // CHECK:STDOUT: %bound_method.loc24_19.1: = bound_method %r.ref, %impl.elem2.loc24_19.1 -// CHECK:STDOUT: %specific_impl_fn.loc24_19.1: = specific_impl_function %impl.elem2.loc24_19.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.564) [symbolic = %specific_impl_fn.loc24_19.4 (constants.%specific_impl_fn.a2c)] +// CHECK:STDOUT: %specific_impl_fn.loc24_19.1: = specific_impl_function %impl.elem2.loc24_19.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.523) [symbolic = %specific_impl_fn.loc24_19.4 (constants.%specific_impl_fn.5ff)] // CHECK:STDOUT: %bound_method.loc24_19.2: = bound_method %r.ref, %specific_impl_fn.loc24_19.1 -// CHECK:STDOUT: %var: ref @Test.%as_type (%as_type.e0d) = var invalid -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @Test.%as_type (%as_type.e0d) to %var = call %bound_method.loc24_19.2(%r.ref) +// CHECK:STDOUT: %var: ref @Test.%as_type (%as_type.6f2) = var invalid +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @Test.%as_type (%as_type.6f2) 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: @Test.%ptr (%ptr.678) = addr_of %var -// CHECK:STDOUT: %impl.elem3.loc24_19.1: @Test.%.loc24_19.13 (%.b70) = impl_witness_access constants.%Iterate.lookup_impl_witness.97c, element3 [symbolic = %impl.elem3.loc24_19.2 (constants.%impl.elem3.5cd)] +// CHECK:STDOUT: %addr: @Test.%ptr (%ptr.b94) = addr_of %var +// CHECK:STDOUT: %impl.elem3.loc24_19.1: @Test.%.loc24_19.13 (%.f81) = impl_witness_access constants.%Iterate.lookup_impl_witness.171, element3 [symbolic = %impl.elem3.loc24_19.2 (constants.%impl.elem3.04c)] // CHECK:STDOUT: %bound_method.loc24_19.3: = bound_method %r.ref, %impl.elem3.loc24_19.1 -// CHECK:STDOUT: %.loc24_19.1: %Destroy.type = converted constants.%as_type.e0d, constants.%impl.elem1.46d [symbolic = %impl.elem1 (constants.%impl.elem1.46d)] -// CHECK:STDOUT: %specific_impl_fn.loc24_19.2: = specific_impl_function %impl.elem3.loc24_19.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.564) [symbolic = %specific_impl_fn.loc24_19.5 (constants.%specific_impl_fn.e20)] +// CHECK:STDOUT: %.loc24_19.1: %Destroy.type = converted constants.%as_type.6f2, constants.%impl.elem1.f12 [symbolic = %impl.elem1 (constants.%impl.elem1.f12)] +// CHECK:STDOUT: %specific_impl_fn.loc24_19.2: = specific_impl_function %impl.elem3.loc24_19.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.523) [symbolic = %specific_impl_fn.loc24_19.5 (constants.%specific_impl_fn.c5b)] // CHECK:STDOUT: %bound_method.loc24_19.4: = bound_method %r.ref, %specific_impl_fn.loc24_19.2 -// CHECK:STDOUT: %.loc24_19.2: ref %Optional.249 = temporary_storage -// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.249 to %.loc24_19.2 = call %bound_method.loc24_19.4(%r.ref, %addr) -// CHECK:STDOUT: %.loc24_19.3: ref %Optional.249 = temporary %.loc24_19.2, %Iterate.WithSelf.Next.call -// CHECK:STDOUT: %.loc24_19.4: %Optional.HasValue.type.e04 = specific_constant imports.%Core.import_ref.0b9, @Optional(constants.%OptionalStorage.facet.fd4) [concrete = constants.%Optional.HasValue.69e] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.e04 = name_ref HasValue, %.loc24_19.4 [concrete = constants.%Optional.HasValue.69e] +// CHECK:STDOUT: %.loc24_19.2: ref %Optional.f48 = temporary_storage +// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.f48 to %.loc24_19.2 = call %bound_method.loc24_19.4(%r.ref, %addr) +// CHECK:STDOUT: %.loc24_19.3: ref %Optional.f48 = temporary %.loc24_19.2, %Iterate.WithSelf.Next.call +// CHECK:STDOUT: %.loc24_19.4: %Optional.HasValue.type.d4e = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.cc1) [concrete = constants.%Optional.HasValue.e79] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.d4e = name_ref HasValue, %.loc24_19.4 [concrete = constants.%Optional.HasValue.e79] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc24_19.3, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.fd4) [concrete = constants.%Optional.HasValue.specific_fn] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.cc1) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc24_19.5: = bound_method %.loc24_19.3, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc24_19.5: %Optional.249 = acquire_value %.loc24_19.3 +// CHECK:STDOUT: %.loc24_19.5: %Optional.f48 = acquire_value %.loc24_19.3 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc24_19.5(%.loc24_19.5) // CHECK:STDOUT: %.loc24_19.6: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc24_19.7: bool = converted %Optional.HasValue.call, %.loc24_19.6 // CHECK:STDOUT: if %.loc24_19.7 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc24_19.8: %Optional.Get.type.941 = specific_constant imports.%Core.import_ref.61f, @Optional(constants.%OptionalStorage.facet.fd4) [concrete = constants.%Optional.Get.8ce] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.941 = name_ref Get, %.loc24_19.8 [concrete = constants.%Optional.Get.8ce] +// CHECK:STDOUT: %.loc24_19.8: %Optional.Get.type.822 = specific_constant imports.%Core.import_ref.daba, @Optional(constants.%OptionalStorage.facet.cc1) [concrete = constants.%Optional.Get.f05] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.822 = name_ref Get, %.loc24_19.8 [concrete = constants.%Optional.Get.f05] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc24_19.3, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.fd4) [concrete = constants.%Optional.Get.specific_fn] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.cc1) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc24_19.6: = bound_method %.loc24_19.3, %Optional.Get.specific_fn -// CHECK:STDOUT: %.loc24_19.9: %Optional.249 = acquire_value %.loc24_19.3 -// CHECK:STDOUT: %Optional.Get.call: init %f64.b55 = call %bound_method.loc24_19.6(%.loc24_19.9) -// CHECK:STDOUT: %f64.loc24: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc24_19.10: %f64.b55 = value_of_initializer %Optional.Get.call -// CHECK:STDOUT: %.loc24_19.11: %f64.b55 = converted %Optional.Get.call, %.loc24_19.10 -// CHECK:STDOUT: %i: %f64.b55 = value_binding i, %.loc24_19.11 -// CHECK:STDOUT: %sum.ref: ref %f64.b55 = name_ref sum, %sum -// CHECK:STDOUT: %i.ref: %f64.b55 = name_ref i, %i -// CHECK:STDOUT: %impl.elem0.loc25: %.8cc = impl_witness_access constants.%AddAssignWith.impl_witness.4c6, element0 [concrete = constants.%Float.as.AddAssignWith.impl.Op.ba4] +// CHECK:STDOUT: %.loc24_19.9: %Optional.f48 = acquire_value %.loc24_19.3 +// CHECK:STDOUT: %Optional.Get.call: init %f64.dc1 = call %bound_method.loc24_19.6(%.loc24_19.9) +// CHECK:STDOUT: %f64.loc24: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc24_19.10: %f64.dc1 = value_of_initializer %Optional.Get.call +// CHECK:STDOUT: %.loc24_19.11: %f64.dc1 = converted %Optional.Get.call, %.loc24_19.10 +// CHECK:STDOUT: %i: %f64.dc1 = value_binding i, %.loc24_19.11 +// CHECK:STDOUT: %sum.ref: ref %f64.dc1 = name_ref sum, %sum +// CHECK:STDOUT: %i.ref: %f64.dc1 = name_ref i, %i +// CHECK:STDOUT: %impl.elem0.loc25: %.746 = impl_witness_access constants.%AddAssignWith.impl_witness.e85, element0 [concrete = constants.%Float.as.AddAssignWith.impl.Op.ac1] // CHECK:STDOUT: %bound_method.loc25_9.1: = bound_method %sum.ref, %impl.elem0.loc25 // 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 @@ -1787,71 +1787,71 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc24: = bound_method %.loc24_19.3, constants.%Destroy.Op.2dd605.8 +// CHECK:STDOUT: %Destroy.Op.bound.loc24: = bound_method %.loc24_19.3, constants.%Destroy.Op.1a2547.8 // CHECK:STDOUT: %Destroy.Op.call.loc24: init %empty_tuple.type = call %Destroy.Op.bound.loc24(%.loc24_19.3) -// CHECK:STDOUT: %impl.elem0.loc24_19.1: @Test.%.loc24_19.14 (%.fb1) = impl_witness_access constants.%Destroy.lookup_impl_witness.56d, element0 [symbolic = %impl.elem0.loc24_19.2 (constants.%impl.elem0.648)] +// CHECK:STDOUT: %impl.elem0.loc24_19.1: @Test.%.loc24_19.14 (%.75c) = impl_witness_access constants.%Destroy.lookup_impl_witness.f8f, element0 [symbolic = %impl.elem0.loc24_19.2 (constants.%impl.elem0.688)] // CHECK:STDOUT: %bound_method.loc24_19.7: = bound_method %var, %impl.elem0.loc24_19.1 -// CHECK:STDOUT: %specific_impl_fn.loc24_19.3: = specific_impl_function %impl.elem0.loc24_19.1, @Destroy.WithSelf.Op(constants.%impl.elem1.46d) [symbolic = %specific_impl_fn.loc24_19.6 (constants.%specific_impl_fn.05c)] +// CHECK:STDOUT: %specific_impl_fn.loc24_19.3: = specific_impl_function %impl.elem0.loc24_19.1, @Destroy.WithSelf.Op(constants.%impl.elem1.f12) [symbolic = %specific_impl_fn.loc24_19.6 (constants.%specific_impl_fn.1e0)] // 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: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_19.1(%self.param: ref %MaybeUnformed.bf7) { +// CHECK:STDOUT: fn @Destroy.Op.loc24_19.1(%self.param: ref %MaybeUnformed.b7e) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.Op.loc24_19.2(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_19.3(%self.param: ref %struct_type.value.has_value.ec9) { +// CHECK:STDOUT: fn @Destroy.Op.loc24_19.3(%self.param: ref %struct_type.value.has_value.ad9) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_19.4(%self.param: ref %DefaultOptionalStorage.d02) { +// CHECK:STDOUT: fn @Destroy.Op.loc24_19.4(%self.param: ref %DefaultOptionalStorage.541) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24_19.5(%self.param: ref %Optional.249) { +// CHECK:STDOUT: fn @Destroy.Op.loc24_19.5(%self.param: ref %Optional.f48) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%R.706) { -// CHECK:STDOUT: %R.loc20_10.1 => constants.%R.706 -// CHECK:STDOUT: %R.as_type.loc20_55.1 => constants.%R.as_type.8de -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4d6 +// CHECK:STDOUT: specific @Test(constants.%R.7b2) { +// CHECK:STDOUT: %R.loc20_10.1 => constants.%R.7b2 +// CHECK:STDOUT: %R.as_type.loc20_55.1 => constants.%R.as_type.657 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%facet_value.7f4) { -// CHECK:STDOUT: %R.loc20_10.1 => constants.%facet_value.7f4 +// CHECK:STDOUT: specific @Test(constants.%facet_value.9d0) { +// CHECK:STDOUT: %R.loc20_10.1 => constants.%facet_value.9d0 // CHECK:STDOUT: %R.as_type.loc20_55.1 => constants.%ConstRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.88d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.025 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc20 => constants.%complete_type.357 -// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.d7d -// CHECK:STDOUT: %Iterate.facet => constants.%Iterate.facet.946 -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.aba -// CHECK:STDOUT: %.loc24_19.12 => constants.%.35d -// CHECK:STDOUT: %impl.elem2.loc24_19.2 => constants.%R.as_type.as.Iterate.impl.NewCursor.51f +// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.1f0 +// CHECK:STDOUT: %Iterate.facet => constants.%Iterate.facet.9f4 +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.d89 +// CHECK:STDOUT: %.loc24_19.12 => constants.%.e0f +// CHECK:STDOUT: %impl.elem2.loc24_19.2 => constants.%R.as_type.as.Iterate.impl.NewCursor.d2e // CHECK:STDOUT: %specific_impl_fn.loc24_19.4 => constants.%R.as_type.as.Iterate.impl.NewCursor.specific_fn -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.57a -// CHECK:STDOUT: %as_type => constants.%tuple.type.d7d -// CHECK:STDOUT: %require_complete.1 => constants.%complete_type.a15 -// CHECK:STDOUT: %ptr => constants.%ptr.365 -// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.eee -// CHECK:STDOUT: %.loc24_19.13 => constants.%.828 -// CHECK:STDOUT: %impl.elem3.loc24_19.2 => constants.%R.as_type.as.Iterate.impl.Next.753 +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.40b +// 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.64f +// CHECK:STDOUT: %.loc24_19.13 => constants.%.50c +// CHECK:STDOUT: %impl.elem3.loc24_19.2 => constants.%R.as_type.as.Iterate.impl.Next.0b7 // CHECK:STDOUT: %specific_impl_fn.loc24_19.5 => constants.%R.as_type.as.Iterate.impl.Next.specific_fn -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.286 -// CHECK:STDOUT: %.loc24_19.14 => constants.%.2ef -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e20f1f.9 -// CHECK:STDOUT: %impl.elem0.loc24_19.2 => constants.%Destroy.Op.2dd605.9 -// CHECK:STDOUT: %specific_impl_fn.loc24_19.6 => constants.%Destroy.Op.2dd605.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.117 +// CHECK:STDOUT: %.loc24_19.14 => constants.%.5a4 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.9 +// CHECK:STDOUT: %impl.elem0.loc24_19.2 => constants.%Destroy.Op.1a2547.9 +// CHECK:STDOUT: %specific_impl_fn.loc24_19.6 => constants.%Destroy.Op.1a2547.9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_adl_returns_same_types_mutable.carbon @@ -1862,108 +1862,108 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %facet_type: type = facet_type <@Destroy & @Copy> [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Optional.Get.type.d22: type = fn_type @Optional.Get, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.Get.6fc: %Optional.Get.type.d22 = struct_value () [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.498: type = fn_type @Optional.HasValue, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.bf8: %Optional.HasValue.type.498 = struct_value () [symbolic] -// CHECK:STDOUT: %T.cb0: %facet_type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.f8b: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.type.46f: type = fn_type @T.as_type.as.OptionalStorage.impl.Get, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.8c2: %T.as_type.as.OptionalStorage.impl.Get.type.46f = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.type.0ae: type = fn_type @T.as_type.as.OptionalStorage.impl.Has, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.e0f: %T.as_type.as.OptionalStorage.impl.Has.type.0ae = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.type.87a: type = fn_type @T.as_type.as.OptionalStorage.impl.Some, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.898: %T.as_type.as.OptionalStorage.impl.Some.type.87a = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.type.ceb: type = fn_type @T.as_type.as.OptionalStorage.impl.None, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.9dd: %T.as_type.as.OptionalStorage.impl.None.type.ceb = struct_value () [symbolic] -// CHECK:STDOUT: %.Self.e31: %Iterate.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.732: = lookup_impl_witness %.Self.e31, @Iterate [symbolic_self] -// CHECK:STDOUT: %impl.elem0.03d: %facet_type = impl_witness_access %Iterate.lookup_impl_witness.732, element0 [symbolic_self] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Optional.Get.type.bb9: type = fn_type @Optional.Get, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.Get.fa1: %Optional.Get.type.bb9 = struct_value () [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.e9e: type = fn_type @Optional.HasValue, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.6cd: %Optional.HasValue.type.e9e = struct_value () [symbolic] +// CHECK:STDOUT: %T.283: %facet_type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.d50: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.type.029: type = fn_type @T.as_type.as.OptionalStorage.impl.Get, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.cb5: %T.as_type.as.OptionalStorage.impl.Get.type.029 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.type.4bc: type = fn_type @T.as_type.as.OptionalStorage.impl.Has, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.dc2: %T.as_type.as.OptionalStorage.impl.Has.type.4bc = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.type.800: type = fn_type @T.as_type.as.OptionalStorage.impl.Some, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.e83: %T.as_type.as.OptionalStorage.impl.Some.type.800 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.type.300: type = fn_type @T.as_type.as.OptionalStorage.impl.None, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.f54: %T.as_type.as.OptionalStorage.impl.None.type.300 = struct_value () [symbolic] +// CHECK:STDOUT: %.Self.35d: %Iterate.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.b37: = lookup_impl_witness %.Self.35d, @Iterate [symbolic_self] +// CHECK:STDOUT: %impl.elem0.903: %facet_type = impl_witness_access %Iterate.lookup_impl_witness.b37, element0 [symbolic_self] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %N.fe9: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc22_47.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.2: = custom_witness (%Destroy.Op.2dd605.2), @Destroy [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.125: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N.fe9) [symbolic] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bfc: %Float.as.Copy.impl.Op.type.125 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.811: = impl_witness imports.%Copy.impl_witness_table.384, @Float.as.Copy.impl(%int_64) [concrete] -// CHECK:STDOUT: %facet_value.b35: %facet_type = facet_value %f64.b55, (%custom_witness.e20f1f.2, %Copy.impl_witness.811) [concrete] -// CHECK:STDOUT: %Iterate_where.type.fd5: type = facet_type <@Iterate where %impl.elem0.03d = %facet_value.b35> [concrete] -// CHECK:STDOUT: %R.706: %Iterate_where.type.fd5 = symbolic_binding R, 0 [symbolic] -// CHECK:STDOUT: %R.as_type.8de: type = facet_access_type %R.706 [symbolic] -// CHECK:STDOUT: %pattern_type.4d6: type = pattern_type %R.as_type.8de [symbolic] +// 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.2: type = fn_type @Destroy.Op.loc22_47.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: %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.873: = impl_witness imports.%Copy.impl_witness_table.4e8, @Float.as.Copy.impl(%int_64) [concrete] +// CHECK:STDOUT: %facet_value.209: %facet_type = facet_value %f64.dc1, (%custom_witness.df9cc1.2, %Copy.impl_witness.873) [concrete] +// CHECK:STDOUT: %Iterate_where.type.83b: type = facet_type <@Iterate where %impl.elem0.903 = %facet_value.209> [concrete] +// CHECK:STDOUT: %R.7b2: %Iterate_where.type.83b = symbolic_binding R, 0 [symbolic] +// CHECK:STDOUT: %R.as_type.657: type = facet_access_type %R.7b2 [symbolic] +// CHECK:STDOUT: %pattern_type.afe: type = pattern_type %R.as_type.657 [symbolic] // CHECK:STDOUT: %CppRangeForIterate.type: type = facet_type <@CppRangeForIterate> [concrete] -// CHECK:STDOUT: %.Self.10b: %CppRangeForIterate.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.5bf: = lookup_impl_witness %.Self.10b, @CppRangeForIterate [symbolic_self] -// CHECK:STDOUT: %impl.elem0.d47: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.5bf, element0 [symbolic_self] -// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.bce: = lookup_impl_witness %impl.elem0.d47, @CppUnsafeDeref [symbolic_self] -// CHECK:STDOUT: %impl.elem0.c87: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.bce, element0 [symbolic_self] -// CHECK:STDOUT: %impl.elem1.846: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.5bf, element1 [symbolic_self] -// CHECK:STDOUT: %CppRangeForIterate_where.type: type = facet_type <@CppRangeForIterate where %impl.elem0.d47 impls @Destroy and %impl.elem0.d47 impls @Copy and %impl.elem0.d47 impls @CppUnsafeDeref and %impl.elem0.d47 impls @EqWith, @EqWith(%impl.elem1.846) and %impl.elem0.d47 impls @Inc and %impl.elem0.c87 impls @Destroy and %impl.elem0.c87 impls @Copy and %impl.elem1.846 impls @Destroy and %impl.elem1.846 impls @Copy> [concrete] -// CHECK:STDOUT: %R.6c6: %CppRangeForIterate_where.type = symbolic_binding R, 0 [symbolic] -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.edd1fe.2: = lookup_impl_witness %R.6c6, @CppRangeForIterate [symbolic] -// CHECK:STDOUT: %impl.elem1.bdcd2d.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.edd1fe.2, element1 [symbolic] -// CHECK:STDOUT: %impl.elem0.d5966e.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.edd1fe.2, element0 [symbolic] -// CHECK:STDOUT: %tuple.type.384: type = tuple_type (%impl.elem0.d5966e.2, %impl.elem1.bdcd2d.2) [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.0ba: = lookup_impl_witness %tuple.type.384, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.2fe: %Destroy.type = facet_value %tuple.type.384, (%Destroy.lookup_impl_witness.0ba) [symbolic] -// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.ca4: = lookup_impl_witness %impl.elem0.d5966e.2, @CppUnsafeDeref [symbolic] -// CHECK:STDOUT: %impl.elem0.b10: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.ca4, element0 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.3d8: = lookup_impl_witness %impl.elem0.b10, @Destroy [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.bff: = lookup_impl_witness %impl.elem0.b10, @Copy [symbolic] -// CHECK:STDOUT: %facet_value.a30: %facet_type = facet_value %impl.elem0.b10, (%Destroy.lookup_impl_witness.3d8, %Copy.lookup_impl_witness.bff) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.5b5: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%R.6c6) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.cd2: %R.as_type.as.Iterate.impl.Next.type.5b5 = struct_value () [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.9b6: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%R.6c6) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.b29: %R.as_type.as.Iterate.impl.NewCursor.type.9b6 = struct_value () [symbolic] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.97c: = lookup_impl_witness %R.706, @Iterate [symbolic] -// CHECK:STDOUT: %Iterate.facet.564: %Iterate.type = facet_value %R.as_type.8de, (%Iterate.lookup_impl_witness.97c) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.95b: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.564) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.31d: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.564) [symbolic] -// CHECK:STDOUT: %.937: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.95b, %Iterate.facet.564 [symbolic] -// CHECK:STDOUT: %impl.elem2.fdc: %.937 = impl_witness_access %Iterate.lookup_impl_witness.97c, element2 [symbolic] -// CHECK:STDOUT: %impl.elem1.46d: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.97c, element1 [symbolic] -// CHECK:STDOUT: %as_type.e0d: type = facet_access_type %impl.elem1.46d [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a2c: = specific_impl_function %impl.elem2.fdc, @Iterate.WithSelf.NewCursor(%Iterate.facet.564) [symbolic] -// CHECK:STDOUT: %ptr.678: type = ptr_type %as_type.e0d [symbolic] -// CHECK:STDOUT: %.b70: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.31d, %Iterate.facet.564 [symbolic] -// CHECK:STDOUT: %impl.elem3.5cd: %.b70 = impl_witness_access %Iterate.lookup_impl_witness.97c, element3 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.d02: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.b35) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.4b5: = impl_witness imports.%OptionalStorage.impl_witness_table.6f7, @T.as_type.as.OptionalStorage.impl(%facet_value.b35) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.fd4: %OptionalStorage.type = facet_value %f64.b55, (%OptionalStorage.impl_witness.4b5) [concrete] -// CHECK:STDOUT: %Optional.249: type = class_type @Optional, @Optional(%OptionalStorage.facet.fd4) [concrete] -// CHECK:STDOUT: %specific_impl_fn.e20: = specific_impl_function %impl.elem3.5cd, @Iterate.WithSelf.Next(%Iterate.facet.564) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.e04: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.fd4) [concrete] -// CHECK:STDOUT: %Optional.HasValue.69e: %Optional.HasValue.type.e04 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.941: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.fd4) [concrete] -// CHECK:STDOUT: %Optional.Get.8ce: %Optional.Get.type.941 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.facet.169: %Destroy.type = facet_value %f64.b55, (%custom_witness.e20f1f.2) [concrete] -// CHECK:STDOUT: %MaybeUnformed.bf7: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.169) [concrete] -// CHECK:STDOUT: %struct_type.value.has_value.ec9: type = struct_type {.value: %MaybeUnformed.bf7, .has_value: bool} [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.69e, @Optional.HasValue(%OptionalStorage.facet.fd4) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.8ce, @Optional.Get(%OptionalStorage.facet.fd4) [concrete] -// CHECK:STDOUT: %AddAssignWith.type.f8a: type = facet_type <@AddAssignWith, @AddAssignWith(%f64.b55)> [concrete] -// CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.type.4cd: type = fn_type @Float.as.AddAssignWith.impl.Op, @Float.as.AddAssignWith.impl(%N.fe9) [symbolic] -// CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.ec5: %Float.as.AddAssignWith.impl.Op.type.4cd = struct_value () [symbolic] -// CHECK:STDOUT: %AddAssignWith.impl_witness.4c6: = impl_witness imports.%AddAssignWith.impl_witness_table, @Float.as.AddAssignWith.impl(%int_64) [concrete] -// CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.type.db3: type = fn_type @Float.as.AddAssignWith.impl.Op, @Float.as.AddAssignWith.impl(%int_64) [concrete] -// CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.ba4: %Float.as.AddAssignWith.impl.Op.type.db3 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.f8a = facet_value %f64.b55, (%AddAssignWith.impl_witness.4c6) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.aab: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%f64.b55, %AddAssignWith.facet) [concrete] -// CHECK:STDOUT: %.8cc: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.aab, %AddAssignWith.facet [concrete] -// CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Float.as.AddAssignWith.impl.Op.ba4, @Float.as.AddAssignWith.impl.Op(%int_64) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.8: type = fn_type @Destroy.Op.loc26_19.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.8: %Destroy.Op.type.790b3b.8 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.56d: = lookup_impl_witness %impl.elem1.46d, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.19e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.46d) [symbolic] -// CHECK:STDOUT: %.fb1: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.19e, %impl.elem1.46d [symbolic] -// CHECK:STDOUT: %impl.elem0.648: %.fb1 = impl_witness_access %Destroy.lookup_impl_witness.56d, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.05c: = specific_impl_function %impl.elem0.648, @Destroy.WithSelf.Op(%impl.elem1.46d) [symbolic] +// CHECK:STDOUT: %.Self.6bd: %CppRangeForIterate.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.143: = lookup_impl_witness %.Self.6bd, @CppRangeForIterate [symbolic_self] +// CHECK:STDOUT: %impl.elem0.109: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.143, element0 [symbolic_self] +// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.712: = lookup_impl_witness %impl.elem0.109, @CppUnsafeDeref [symbolic_self] +// CHECK:STDOUT: %impl.elem0.56a: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.712, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem1.222: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.143, element1 [symbolic_self] +// CHECK:STDOUT: %CppRangeForIterate_where.type: type = facet_type <@CppRangeForIterate where %impl.elem0.109 impls @Destroy and %impl.elem0.109 impls @Copy and %impl.elem0.109 impls @CppUnsafeDeref and %impl.elem0.109 impls @EqWith, @EqWith(%impl.elem1.222) and %impl.elem0.109 impls @Inc and %impl.elem0.56a impls @Destroy and %impl.elem0.56a impls @Copy and %impl.elem1.222 impls @Destroy and %impl.elem1.222 impls @Copy> [concrete] +// CHECK:STDOUT: %R.39b: %CppRangeForIterate_where.type = symbolic_binding R, 0 [symbolic] +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.7e2712.2: = lookup_impl_witness %R.39b, @CppRangeForIterate [symbolic] +// CHECK:STDOUT: %impl.elem1.7a0bff.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.7e2712.2, element1 [symbolic] +// CHECK:STDOUT: %impl.elem0.73eb7f.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.7e2712.2, element0 [symbolic] +// CHECK:STDOUT: %tuple.type.3cf: type = tuple_type (%impl.elem0.73eb7f.2, %impl.elem1.7a0bff.2) [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.69f: = lookup_impl_witness %tuple.type.3cf, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.593: %Destroy.type = facet_value %tuple.type.3cf, (%Destroy.lookup_impl_witness.69f) [symbolic] +// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.aa7: = lookup_impl_witness %impl.elem0.73eb7f.2, @CppUnsafeDeref [symbolic] +// CHECK:STDOUT: %impl.elem0.af7: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.aa7, element0 [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.ec3: = lookup_impl_witness %impl.elem0.af7, @Destroy [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.a7a: = lookup_impl_witness %impl.elem0.af7, @Copy [symbolic] +// CHECK:STDOUT: %facet_value.194: %facet_type = facet_value %impl.elem0.af7, (%Destroy.lookup_impl_witness.ec3, %Copy.lookup_impl_witness.a7a) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.1f7: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%R.39b) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.0d6: %R.as_type.as.Iterate.impl.Next.type.1f7 = struct_value () [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.36f: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%R.39b) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.29b: %R.as_type.as.Iterate.impl.NewCursor.type.36f = struct_value () [symbolic] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.171: = lookup_impl_witness %R.7b2, @Iterate [symbolic] +// CHECK:STDOUT: %Iterate.facet.523: %Iterate.type = facet_value %R.as_type.657, (%Iterate.lookup_impl_witness.171) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.51e: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.523) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.e1d: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.523) [symbolic] +// CHECK:STDOUT: %.250: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.51e, %Iterate.facet.523 [symbolic] +// CHECK:STDOUT: %impl.elem2.9ef: %.250 = impl_witness_access %Iterate.lookup_impl_witness.171, element2 [symbolic] +// CHECK:STDOUT: %impl.elem1.f12: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.171, element1 [symbolic] +// CHECK:STDOUT: %as_type.6f2: type = facet_access_type %impl.elem1.f12 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.5ff: = specific_impl_function %impl.elem2.9ef, @Iterate.WithSelf.NewCursor(%Iterate.facet.523) [symbolic] +// CHECK:STDOUT: %ptr.b94: type = ptr_type %as_type.6f2 [symbolic] +// CHECK:STDOUT: %.f81: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.e1d, %Iterate.facet.523 [symbolic] +// CHECK:STDOUT: %impl.elem3.04c: %.f81 = impl_witness_access %Iterate.lookup_impl_witness.171, element3 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.541: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.209) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.fd3: = impl_witness imports.%OptionalStorage.impl_witness_table.655, @T.as_type.as.OptionalStorage.impl(%facet_value.209) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.cc1: %OptionalStorage.type = facet_value %f64.dc1, (%OptionalStorage.impl_witness.fd3) [concrete] +// CHECK:STDOUT: %Optional.f48: type = class_type @Optional, @Optional(%OptionalStorage.facet.cc1) [concrete] +// CHECK:STDOUT: %specific_impl_fn.c5b: = specific_impl_function %impl.elem3.04c, @Iterate.WithSelf.Next(%Iterate.facet.523) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.d4e: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.cc1) [concrete] +// CHECK:STDOUT: %Optional.HasValue.e79: %Optional.HasValue.type.d4e = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.822: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.cc1) [concrete] +// CHECK:STDOUT: %Optional.Get.f05: %Optional.Get.type.822 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.facet.339: %Destroy.type = facet_value %f64.dc1, (%custom_witness.df9cc1.2) [concrete] +// CHECK:STDOUT: %MaybeUnformed.b7e: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.339) [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: = specific_function %Optional.HasValue.e79, @Optional.HasValue(%OptionalStorage.facet.cc1) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.f05, @Optional.Get(%OptionalStorage.facet.cc1) [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] +// CHECK:STDOUT: %AddAssignWith.impl_witness.e85: = impl_witness imports.%AddAssignWith.impl_witness_table, @Float.as.AddAssignWith.impl(%int_64) [concrete] +// CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.type.a92: type = fn_type @Float.as.AddAssignWith.impl.Op, @Float.as.AddAssignWith.impl(%int_64) [concrete] +// CHECK:STDOUT: %Float.as.AddAssignWith.impl.Op.ac1: %Float.as.AddAssignWith.impl.Op.type.a92 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.ff9 = facet_value %f64.dc1, (%AddAssignWith.impl_witness.e85) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.f8a: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%f64.dc1, %AddAssignWith.facet) [concrete] +// CHECK:STDOUT: %.746: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.f8a, %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.8: type = fn_type @Destroy.Op.loc26_19.5 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.8: %Destroy.Op.type.1d8f74.8 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.f8f: = lookup_impl_witness %impl.elem1.f12, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.b9c: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.f12) [symbolic] +// CHECK:STDOUT: %.75c: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.b9c, %impl.elem1.f12 [symbolic] +// CHECK:STDOUT: %impl.elem0.688: %.75c = impl_witness_access %Destroy.lookup_impl_witness.f8f, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.1e0: = specific_impl_function %impl.elem0.688, @Destroy.WithSelf.Op(%impl.elem1.f12) [symbolic] // CHECK:STDOUT: %MutableRange: type = class_type @MutableRange [concrete] -// CHECK:STDOUT: %pattern_type.80f: type = pattern_type %MutableRange [concrete] +// CHECK:STDOUT: %pattern_type.992: type = pattern_type %MutableRange [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Iterator: type = class_type @Iterator.1 [concrete] @@ -1971,145 +1971,145 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Begin: %Begin.type = struct_value () [concrete] // CHECK:STDOUT: %End.type: type = fn_type @End [concrete] // CHECK:STDOUT: %End: %End.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.25d: = custom_witness (%Iterator, %Iterator, %Begin, %End), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %Iterator.Op.type.910736.1: type = fn_type @Iterator.Op.1 [concrete] -// CHECK:STDOUT: %Iterator.Op.cbb479.1: %Iterator.Op.type.910736.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.5e7: = custom_witness (%f64.b55, %Iterator.Op.cbb479.1), @CppUnsafeDeref [concrete] -// CHECK:STDOUT: %Iterator.Op.type.910736.2: type = fn_type @Iterator.Op.2 [concrete] -// CHECK:STDOUT: %Iterator.Op.cbb479.2: %Iterator.Op.type.910736.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.fe6: = custom_witness (%Iterator.Op.cbb479.2), @Destroy [concrete] -// CHECK:STDOUT: %Iterator.Op.type.910736.3: type = fn_type @Iterator.Op.3 [concrete] -// CHECK:STDOUT: %Iterator.Op.cbb479.3: %Iterator.Op.type.910736.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b9a: = custom_witness (%Iterator.Op.cbb479.3), @Copy [concrete] +// CHECK:STDOUT: %custom_witness.902: = custom_witness (%Iterator, %Iterator, %Begin, %End), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %Iterator.Op.type.b9731e.1: type = fn_type @Iterator.Op.1 [concrete] +// CHECK:STDOUT: %Iterator.Op.ac6aad.1: %Iterator.Op.type.b9731e.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.05b: = custom_witness (%f64.dc1, %Iterator.Op.ac6aad.1), @CppUnsafeDeref [concrete] +// CHECK:STDOUT: %Iterator.Op.type.b9731e.2: type = fn_type @Iterator.Op.2 [concrete] +// CHECK:STDOUT: %Iterator.Op.ac6aad.2: %Iterator.Op.type.b9731e.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.c08: = custom_witness (%Iterator.Op.ac6aad.2), @Destroy [concrete] +// CHECK:STDOUT: %Iterator.Op.type.b9731e.3: type = fn_type @Iterator.Op.3 [concrete] +// CHECK:STDOUT: %Iterator.Op.ac6aad.3: %Iterator.Op.type.b9731e.3 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.29f: = custom_witness (%Iterator.Op.ac6aad.3), @Copy [concrete] // CHECK:STDOUT: %Equal.type: type = fn_type @Equal [concrete] // CHECK:STDOUT: %Equal: %Equal.type = struct_value () [concrete] // CHECK:STDOUT: %NotEqual.type: type = fn_type @NotEqual [concrete] // CHECK:STDOUT: %NotEqual: %NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.ab9: = custom_witness (%Equal, %NotEqual), @EqWith, @EqWith(%Iterator) [concrete] -// CHECK:STDOUT: %Iterator.Op.type.910736.4: type = fn_type @Iterator.Op.4 [concrete] -// CHECK:STDOUT: %Iterator.Op.cbb479.4: %Iterator.Op.type.910736.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.88b: = custom_witness (%Iterator.Op.cbb479.4), @Inc [concrete] -// CHECK:STDOUT: %facet_value.fbd: %CppRangeForIterate_where.type = facet_value %MutableRange, (%custom_witness.e20f1f.2, %Copy.impl_witness.811, %custom_witness.25d, %custom_witness.fe6, %custom_witness.b9a, %custom_witness.5e7, %custom_witness.ab9, %custom_witness.88b) [concrete] -// CHECK:STDOUT: %tuple.type.e5c: type = tuple_type (%Iterator, %Iterator) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.9: type = fn_type @Destroy.Op.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.9: %Destroy.Op.type.790b3b.9 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.9: = custom_witness (%Destroy.Op.2dd605.9), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.a02: %Destroy.type = facet_value %tuple.type.e5c, (%custom_witness.e20f1f.9) [concrete] -// CHECK:STDOUT: %Iterate.impl_witness.b58: = impl_witness imports.%Iterate.impl_witness_table.9f0, @R.as_type.as.Iterate.impl(%facet_value.fbd) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.efa: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%facet_value.fbd) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.74e: %R.as_type.as.Iterate.impl.NewCursor.type.efa = struct_value () [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.ddb: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%facet_value.fbd) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.adb: %R.as_type.as.Iterate.impl.Next.type.ddb = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet.7ea: %Iterate.type = facet_value %MutableRange, (%Iterate.impl_witness.b58) [concrete] -// CHECK:STDOUT: %facet_value.459: %Iterate_where.type.fd5 = facet_value %MutableRange, (%Iterate.impl_witness.b58) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.7f2: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.7ea) [concrete] -// CHECK:STDOUT: %.b77: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.7f2, %Iterate.facet.7ea [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.specific_fn: = specific_function %R.as_type.as.Iterate.impl.NewCursor.74e, @R.as_type.as.Iterate.impl.NewCursor(%facet_value.fbd) [concrete] -// CHECK:STDOUT: %complete_type.0e3: = complete_type_witness %tuple.type.e5c [concrete] -// CHECK:STDOUT: %ptr.505: type = ptr_type %tuple.type.e5c [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.8ae: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.7ea) [concrete] -// CHECK:STDOUT: %.8c6: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.8ae, %Iterate.facet.7ea [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.specific_fn: = specific_function %R.as_type.as.Iterate.impl.Next.adb, @R.as_type.as.Iterate.impl.Next(%facet_value.fbd) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.fe8: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.a02) [concrete] -// CHECK:STDOUT: %.9af: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.fe8, %Destroy.facet.a02 [concrete] +// CHECK:STDOUT: %custom_witness.ed8: = custom_witness (%Equal, %NotEqual), @EqWith, @EqWith(%Iterator) [concrete] +// CHECK:STDOUT: %Iterator.Op.type.b9731e.4: type = fn_type @Iterator.Op.4 [concrete] +// CHECK:STDOUT: %Iterator.Op.ac6aad.4: %Iterator.Op.type.b9731e.4 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.491: = custom_witness (%Iterator.Op.ac6aad.4), @Inc [concrete] +// CHECK:STDOUT: %facet_value.85f: %CppRangeForIterate_where.type = facet_value %MutableRange, (%custom_witness.df9cc1.2, %Copy.impl_witness.873, %custom_witness.902, %custom_witness.c08, %custom_witness.29f, %custom_witness.05b, %custom_witness.ed8, %custom_witness.491) [concrete] +// CHECK:STDOUT: %tuple.type.dd0: type = tuple_type (%Iterator, %Iterator) [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.9: type = fn_type @Destroy.Op.2 [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.e1e: %Destroy.type = facet_value %tuple.type.dd0, (%custom_witness.df9cc1.9) [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.5f7: = impl_witness imports.%Iterate.impl_witness_table.344, @R.as_type.as.Iterate.impl(%facet_value.85f) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.a95: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%facet_value.85f) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.41a: %R.as_type.as.Iterate.impl.NewCursor.type.a95 = struct_value () [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.5c1: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%facet_value.85f) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.928: %R.as_type.as.Iterate.impl.Next.type.5c1 = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet.c9f: %Iterate.type = facet_value %MutableRange, (%Iterate.impl_witness.5f7) [concrete] +// CHECK:STDOUT: %facet_value.7dc: %Iterate_where.type.83b = facet_value %MutableRange, (%Iterate.impl_witness.5f7) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.bde: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.c9f) [concrete] +// CHECK:STDOUT: %.c29a: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.bde, %Iterate.facet.c9f [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.specific_fn: = specific_function %R.as_type.as.Iterate.impl.NewCursor.41a, @R.as_type.as.Iterate.impl.NewCursor(%facet_value.85f) [concrete] +// CHECK:STDOUT: %complete_type.843: = complete_type_witness %tuple.type.dd0 [concrete] +// CHECK:STDOUT: %ptr.a4f: type = ptr_type %tuple.type.dd0 [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.454: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.c9f) [concrete] +// CHECK:STDOUT: %.b4c: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.454, %Iterate.facet.c9f [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.specific_fn: = specific_function %R.as_type.as.Iterate.impl.Next.928, @R.as_type.as.Iterate.impl.Next(%facet_value.85f) [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.0b9: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.498) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.bf8)] -// CHECK:STDOUT: %Core.import_ref.61f: @Optional.%Optional.Get.type (%Optional.Get.type.d22) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.6fc)] -// CHECK:STDOUT: %Core.import_ref.2b5: type = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%DefaultOptionalStorage (constants.%DefaultOptionalStorage.f8b)] -// CHECK:STDOUT: %Core.import_ref.b0a: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None.type (%T.as_type.as.OptionalStorage.impl.None.type.ceb) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None (constants.%T.as_type.as.OptionalStorage.impl.None.9dd)] -// CHECK:STDOUT: %Core.import_ref.3fc: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some.type (%T.as_type.as.OptionalStorage.impl.Some.type.87a) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some (constants.%T.as_type.as.OptionalStorage.impl.Some.898)] -// CHECK:STDOUT: %Core.import_ref.986: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has.type (%T.as_type.as.OptionalStorage.impl.Has.type.0ae) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has (constants.%T.as_type.as.OptionalStorage.impl.Has.e0f)] -// CHECK:STDOUT: %Core.import_ref.557: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get.type (%T.as_type.as.OptionalStorage.impl.Get.type.46f) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get (constants.%T.as_type.as.OptionalStorage.impl.Get.8c2)] -// CHECK:STDOUT: %Core.import_ref.999 = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.6f7 = impl_witness_table (%Core.import_ref.2b5, %Core.import_ref.b0a, %Core.import_ref.3fc, %Core.import_ref.986, %Core.import_ref.557, %Core.import_ref.999), @T.as_type.as.OptionalStorage.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.461: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.125) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.bfc)] -// CHECK:STDOUT: %Copy.impl_witness_table.384 = impl_witness_table (%Core.import_ref.461), @Float.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.89a: %facet_type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%facet_value (constants.%facet_value.a30)] -// CHECK:STDOUT: %Core.import_ref.9ea: %Destroy.type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%Destroy.facet (constants.%Destroy.facet.2fe)] -// CHECK:STDOUT: %Core.import_ref.a6c: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor.type (%R.as_type.as.Iterate.impl.NewCursor.type.9b6) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor (constants.%R.as_type.as.Iterate.impl.NewCursor.b29)] -// CHECK:STDOUT: %Core.import_ref.a02: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next.type (%R.as_type.as.Iterate.impl.Next.type.5b5) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next (constants.%R.as_type.as.Iterate.impl.Next.cd2)] -// CHECK:STDOUT: %Iterate.impl_witness_table.9f0 = impl_witness_table (%Core.import_ref.89a, %Core.import_ref.9ea, %Core.import_ref.a6c, %Core.import_ref.a02), @R.as_type.as.Iterate.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.c81: @Float.as.AddAssignWith.impl.%Float.as.AddAssignWith.impl.Op.type (%Float.as.AddAssignWith.impl.Op.type.4cd) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.AddAssignWith.impl.%Float.as.AddAssignWith.impl.Op (constants.%Float.as.AddAssignWith.impl.Op.ec5)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table = impl_witness_table (%Core.import_ref.c81), @Float.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.bb6: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.e9e) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.6cd)] +// CHECK:STDOUT: %Core.import_ref.daba: @Optional.%Optional.Get.type (%Optional.Get.type.bb9) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.fa1)] +// CHECK:STDOUT: %Core.import_ref.0c6: type = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%DefaultOptionalStorage (constants.%DefaultOptionalStorage.d50)] +// CHECK:STDOUT: %Core.import_ref.f4f: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None.type (%T.as_type.as.OptionalStorage.impl.None.type.300) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None (constants.%T.as_type.as.OptionalStorage.impl.None.f54)] +// CHECK:STDOUT: %Core.import_ref.18f: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some.type (%T.as_type.as.OptionalStorage.impl.Some.type.800) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some (constants.%T.as_type.as.OptionalStorage.impl.Some.e83)] +// CHECK:STDOUT: %Core.import_ref.c68: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has.type (%T.as_type.as.OptionalStorage.impl.Has.type.4bc) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has (constants.%T.as_type.as.OptionalStorage.impl.Has.dc2)] +// CHECK:STDOUT: %Core.import_ref.a83: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get.type (%T.as_type.as.OptionalStorage.impl.Get.type.029) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get (constants.%T.as_type.as.OptionalStorage.impl.Get.cb5)] +// CHECK:STDOUT: %Core.import_ref.aaa = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.655 = impl_witness_table (%Core.import_ref.0c6, %Core.import_ref.f4f, %Core.import_ref.18f, %Core.import_ref.c68, %Core.import_ref.a83, %Core.import_ref.aaa), @T.as_type.as.OptionalStorage.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e69: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.ff3) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.d93)] +// CHECK:STDOUT: %Copy.impl_witness_table.4e8 = impl_witness_table (%Core.import_ref.e69), @Float.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.301: %facet_type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%facet_value (constants.%facet_value.194)] +// CHECK:STDOUT: %Core.import_ref.89f: %Destroy.type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%Destroy.facet (constants.%Destroy.facet.593)] +// CHECK:STDOUT: %Core.import_ref.3e6: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor.type (%R.as_type.as.Iterate.impl.NewCursor.type.36f) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor (constants.%R.as_type.as.Iterate.impl.NewCursor.29b)] +// CHECK:STDOUT: %Core.import_ref.85d: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next.type (%R.as_type.as.Iterate.impl.Next.type.1f7) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next (constants.%R.as_type.as.Iterate.impl.Next.0d6)] +// CHECK:STDOUT: %Iterate.impl_witness_table.344 = impl_witness_table (%Core.import_ref.301, %Core.import_ref.89f, %Core.import_ref.3e6, %Core.import_ref.85d), @R.as_type.as.Iterate.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cb3: @Float.as.AddAssignWith.impl.%Float.as.AddAssignWith.impl.Op.type (%Float.as.AddAssignWith.impl.Op.type.fdd) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.AddAssignWith.impl.%Float.as.AddAssignWith.impl.Op (constants.%Float.as.AddAssignWith.impl.Op.430)] +// 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 @Test(%R.loc22_10.2: %Iterate_where.type.fd5) { +// CHECK:STDOUT: generic fn @Test(%R.loc22_10.2: %Iterate_where.type.83b) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc22_10.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.97c)] -// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %R.as_type.loc22_55.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet (constants.%Iterate.facet.564)] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.95b)] -// CHECK:STDOUT: %.loc26_19.12: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet [symbolic = %.loc26_19.12 (constants.%.937)] -// CHECK:STDOUT: %impl.elem2.loc26_19.2: @Test.%.loc26_19.12 (%.937) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc26_19.2 (constants.%impl.elem2.fdc)] -// CHECK:STDOUT: %specific_impl_fn.loc26_19.4: = specific_impl_function %impl.elem2.loc26_19.2, @Iterate.WithSelf.NewCursor(%Iterate.facet) [symbolic = %specific_impl_fn.loc26_19.4 (constants.%specific_impl_fn.a2c)] +// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc22_10.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.171)] +// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %R.as_type.loc22_55.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet (constants.%Iterate.facet.523)] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.51e)] +// CHECK:STDOUT: %.loc26_19.12: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet [symbolic = %.loc26_19.12 (constants.%.250)] +// CHECK:STDOUT: %impl.elem2.loc26_19.2: @Test.%.loc26_19.12 (%.250) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc26_19.2 (constants.%impl.elem2.9ef)] +// CHECK:STDOUT: %specific_impl_fn.loc26_19.4: = specific_impl_function %impl.elem2.loc26_19.2, @Iterate.WithSelf.NewCursor(%Iterate.facet) [symbolic = %specific_impl_fn.loc26_19.4 (constants.%specific_impl_fn.5ff)] // CHECK:STDOUT: -// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.678)] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.31d)] -// CHECK:STDOUT: %.loc26_19.13: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet [symbolic = %.loc26_19.13 (constants.%.b70)] -// CHECK:STDOUT: %impl.elem3.loc26_19.2: @Test.%.loc26_19.13 (%.b70) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc26_19.2 (constants.%impl.elem3.5cd)] -// CHECK:STDOUT: %specific_impl_fn.loc26_19.5: = specific_impl_function %impl.elem3.loc26_19.2, @Iterate.WithSelf.Next(%Iterate.facet) [symbolic = %specific_impl_fn.loc26_19.5 (constants.%specific_impl_fn.e20)] -// 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.19e)] -// CHECK:STDOUT: %.loc26_19.14: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc26_19.14 (constants.%.fb1)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.56d)] -// CHECK:STDOUT: %impl.elem0.loc26_19.2: @Test.%.loc26_19.14 (%.fb1) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_19.2 (constants.%impl.elem0.648)] -// 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.05c)] +// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.b94)] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.e1d)] +// CHECK:STDOUT: %.loc26_19.13: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet [symbolic = %.loc26_19.13 (constants.%.f81)] +// CHECK:STDOUT: %impl.elem3.loc26_19.2: @Test.%.loc26_19.13 (%.f81) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc26_19.2 (constants.%impl.elem3.04c)] +// CHECK:STDOUT: %specific_impl_fn.loc26_19.5: = specific_impl_function %impl.elem3.loc26_19.2, @Iterate.WithSelf.Next(%Iterate.facet) [symbolic = %specific_impl_fn.loc26_19.5 (constants.%specific_impl_fn.c5b)] +// 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.b9c)] +// CHECK:STDOUT: %.loc26_19.14: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc26_19.14 (constants.%.75c)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.f8f)] +// CHECK:STDOUT: %impl.elem0.loc26_19.2: @Test.%.loc26_19.14 (%.75c) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_19.2 (constants.%impl.elem0.688)] +// 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.1e0)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%r.param: @Test.%R.as_type.loc22_55.1 (%R.as_type.8de)) { +// CHECK:STDOUT: fn(%r.param: @Test.%R.as_type.loc22_55.1 (%R.as_type.657)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.f3c = value_binding_pattern i [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.fb7 = value_binding_pattern i [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %r.ref: @Test.%R.as_type.loc22_55.1 (%R.as_type.8de) = name_ref r, %r -// CHECK:STDOUT: %impl.elem2.loc26_19.1: @Test.%.loc26_19.12 (%.937) = impl_witness_access constants.%Iterate.lookup_impl_witness.97c, element2 [symbolic = %impl.elem2.loc26_19.2 (constants.%impl.elem2.fdc)] +// CHECK:STDOUT: %r.ref: @Test.%R.as_type.loc22_55.1 (%R.as_type.657) = name_ref r, %r +// CHECK:STDOUT: %impl.elem2.loc26_19.1: @Test.%.loc26_19.12 (%.250) = impl_witness_access constants.%Iterate.lookup_impl_witness.171, element2 [symbolic = %impl.elem2.loc26_19.2 (constants.%impl.elem2.9ef)] // CHECK:STDOUT: %bound_method.loc26_19.1: = bound_method %r.ref, %impl.elem2.loc26_19.1 -// CHECK:STDOUT: %specific_impl_fn.loc26_19.1: = specific_impl_function %impl.elem2.loc26_19.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.564) [symbolic = %specific_impl_fn.loc26_19.4 (constants.%specific_impl_fn.a2c)] +// CHECK:STDOUT: %specific_impl_fn.loc26_19.1: = specific_impl_function %impl.elem2.loc26_19.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.523) [symbolic = %specific_impl_fn.loc26_19.4 (constants.%specific_impl_fn.5ff)] // CHECK:STDOUT: %bound_method.loc26_19.2: = bound_method %r.ref, %specific_impl_fn.loc26_19.1 -// CHECK:STDOUT: %var: ref @Test.%as_type (%as_type.e0d) = var invalid -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @Test.%as_type (%as_type.e0d) to %var = call %bound_method.loc26_19.2(%r.ref) +// CHECK:STDOUT: %var: ref @Test.%as_type (%as_type.6f2) = var invalid +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @Test.%as_type (%as_type.6f2) 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: @Test.%ptr (%ptr.678) = addr_of %var -// CHECK:STDOUT: %impl.elem3.loc26_19.1: @Test.%.loc26_19.13 (%.b70) = impl_witness_access constants.%Iterate.lookup_impl_witness.97c, element3 [symbolic = %impl.elem3.loc26_19.2 (constants.%impl.elem3.5cd)] +// CHECK:STDOUT: %addr: @Test.%ptr (%ptr.b94) = addr_of %var +// CHECK:STDOUT: %impl.elem3.loc26_19.1: @Test.%.loc26_19.13 (%.f81) = impl_witness_access constants.%Iterate.lookup_impl_witness.171, element3 [symbolic = %impl.elem3.loc26_19.2 (constants.%impl.elem3.04c)] // CHECK:STDOUT: %bound_method.loc26_19.3: = bound_method %r.ref, %impl.elem3.loc26_19.1 -// CHECK:STDOUT: %.loc26_19.1: %Destroy.type = converted constants.%as_type.e0d, constants.%impl.elem1.46d [symbolic = %impl.elem1 (constants.%impl.elem1.46d)] -// CHECK:STDOUT: %specific_impl_fn.loc26_19.2: = specific_impl_function %impl.elem3.loc26_19.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.564) [symbolic = %specific_impl_fn.loc26_19.5 (constants.%specific_impl_fn.e20)] +// CHECK:STDOUT: %.loc26_19.1: %Destroy.type = converted constants.%as_type.6f2, constants.%impl.elem1.f12 [symbolic = %impl.elem1 (constants.%impl.elem1.f12)] +// CHECK:STDOUT: %specific_impl_fn.loc26_19.2: = specific_impl_function %impl.elem3.loc26_19.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.523) [symbolic = %specific_impl_fn.loc26_19.5 (constants.%specific_impl_fn.c5b)] // CHECK:STDOUT: %bound_method.loc26_19.4: = bound_method %r.ref, %specific_impl_fn.loc26_19.2 -// CHECK:STDOUT: %.loc26_19.2: ref %Optional.249 = temporary_storage -// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.249 to %.loc26_19.2 = call %bound_method.loc26_19.4(%r.ref, %addr) -// CHECK:STDOUT: %.loc26_19.3: ref %Optional.249 = temporary %.loc26_19.2, %Iterate.WithSelf.Next.call -// CHECK:STDOUT: %.loc26_19.4: %Optional.HasValue.type.e04 = specific_constant imports.%Core.import_ref.0b9, @Optional(constants.%OptionalStorage.facet.fd4) [concrete = constants.%Optional.HasValue.69e] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.e04 = name_ref HasValue, %.loc26_19.4 [concrete = constants.%Optional.HasValue.69e] +// CHECK:STDOUT: %.loc26_19.2: ref %Optional.f48 = temporary_storage +// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.f48 to %.loc26_19.2 = call %bound_method.loc26_19.4(%r.ref, %addr) +// CHECK:STDOUT: %.loc26_19.3: ref %Optional.f48 = temporary %.loc26_19.2, %Iterate.WithSelf.Next.call +// CHECK:STDOUT: %.loc26_19.4: %Optional.HasValue.type.d4e = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.cc1) [concrete = constants.%Optional.HasValue.e79] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.d4e = name_ref HasValue, %.loc26_19.4 [concrete = constants.%Optional.HasValue.e79] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc26_19.3, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.fd4) [concrete = constants.%Optional.HasValue.specific_fn] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.cc1) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc26_19.5: = bound_method %.loc26_19.3, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc26_19.5: %Optional.249 = acquire_value %.loc26_19.3 +// CHECK:STDOUT: %.loc26_19.5: %Optional.f48 = acquire_value %.loc26_19.3 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc26_19.5(%.loc26_19.5) // CHECK:STDOUT: %.loc26_19.6: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc26_19.7: bool = converted %Optional.HasValue.call, %.loc26_19.6 // CHECK:STDOUT: if %.loc26_19.7 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc26_19.8: %Optional.Get.type.941 = specific_constant imports.%Core.import_ref.61f, @Optional(constants.%OptionalStorage.facet.fd4) [concrete = constants.%Optional.Get.8ce] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.941 = name_ref Get, %.loc26_19.8 [concrete = constants.%Optional.Get.8ce] +// CHECK:STDOUT: %.loc26_19.8: %Optional.Get.type.822 = specific_constant imports.%Core.import_ref.daba, @Optional(constants.%OptionalStorage.facet.cc1) [concrete = constants.%Optional.Get.f05] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.822 = name_ref Get, %.loc26_19.8 [concrete = constants.%Optional.Get.f05] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc26_19.3, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.fd4) [concrete = constants.%Optional.Get.specific_fn] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.cc1) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc26_19.6: = bound_method %.loc26_19.3, %Optional.Get.specific_fn -// CHECK:STDOUT: %.loc26_19.9: %Optional.249 = acquire_value %.loc26_19.3 -// CHECK:STDOUT: %Optional.Get.call: init %f64.b55 = call %bound_method.loc26_19.6(%.loc26_19.9) -// CHECK:STDOUT: %f64.loc26: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc26_19.10: %f64.b55 = value_of_initializer %Optional.Get.call -// CHECK:STDOUT: %.loc26_19.11: %f64.b55 = converted %Optional.Get.call, %.loc26_19.10 -// CHECK:STDOUT: %i: %f64.b55 = value_binding i, %.loc26_19.11 -// CHECK:STDOUT: %sum.ref: ref %f64.b55 = name_ref sum, %sum -// CHECK:STDOUT: %i.ref: %f64.b55 = name_ref i, %i -// CHECK:STDOUT: %impl.elem0.loc27: %.8cc = impl_witness_access constants.%AddAssignWith.impl_witness.4c6, element0 [concrete = constants.%Float.as.AddAssignWith.impl.Op.ba4] +// CHECK:STDOUT: %.loc26_19.9: %Optional.f48 = acquire_value %.loc26_19.3 +// CHECK:STDOUT: %Optional.Get.call: init %f64.dc1 = call %bound_method.loc26_19.6(%.loc26_19.9) +// CHECK:STDOUT: %f64.loc26: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc26_19.10: %f64.dc1 = value_of_initializer %Optional.Get.call +// CHECK:STDOUT: %.loc26_19.11: %f64.dc1 = converted %Optional.Get.call, %.loc26_19.10 +// CHECK:STDOUT: %i: %f64.dc1 = value_binding i, %.loc26_19.11 +// CHECK:STDOUT: %sum.ref: ref %f64.dc1 = name_ref sum, %sum +// CHECK:STDOUT: %i.ref: %f64.dc1 = name_ref i, %i +// CHECK:STDOUT: %impl.elem0.loc27: %.746 = impl_witness_access constants.%AddAssignWith.impl_witness.e85, element0 [concrete = constants.%Float.as.AddAssignWith.impl.Op.ac1] // CHECK:STDOUT: %bound_method.loc27_9.1: = bound_method %sum.ref, %impl.elem0.loc27 // 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 @@ -2117,71 +2117,71 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %Destroy.Op.bound.loc26: = bound_method %.loc26_19.3, constants.%Destroy.Op.2dd605.8 +// CHECK:STDOUT: %Destroy.Op.bound.loc26: = bound_method %.loc26_19.3, constants.%Destroy.Op.1a2547.8 // CHECK:STDOUT: %Destroy.Op.call.loc26: init %empty_tuple.type = call %Destroy.Op.bound.loc26(%.loc26_19.3) -// CHECK:STDOUT: %impl.elem0.loc26_19.1: @Test.%.loc26_19.14 (%.fb1) = impl_witness_access constants.%Destroy.lookup_impl_witness.56d, element0 [symbolic = %impl.elem0.loc26_19.2 (constants.%impl.elem0.648)] +// CHECK:STDOUT: %impl.elem0.loc26_19.1: @Test.%.loc26_19.14 (%.75c) = impl_witness_access constants.%Destroy.lookup_impl_witness.f8f, element0 [symbolic = %impl.elem0.loc26_19.2 (constants.%impl.elem0.688)] // CHECK:STDOUT: %bound_method.loc26_19.7: = bound_method %var, %impl.elem0.loc26_19.1 -// CHECK:STDOUT: %specific_impl_fn.loc26_19.3: = specific_impl_function %impl.elem0.loc26_19.1, @Destroy.WithSelf.Op(constants.%impl.elem1.46d) [symbolic = %specific_impl_fn.loc26_19.6 (constants.%specific_impl_fn.05c)] +// CHECK:STDOUT: %specific_impl_fn.loc26_19.3: = specific_impl_function %impl.elem0.loc26_19.1, @Destroy.WithSelf.Op(constants.%impl.elem1.f12) [symbolic = %specific_impl_fn.loc26_19.6 (constants.%specific_impl_fn.1e0)] // 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: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_19.1(%self.param: ref %MaybeUnformed.bf7) { +// CHECK:STDOUT: fn @Destroy.Op.loc26_19.1(%self.param: ref %MaybeUnformed.b7e) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.Op.loc26_19.2(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_19.3(%self.param: ref %struct_type.value.has_value.ec9) { +// CHECK:STDOUT: fn @Destroy.Op.loc26_19.3(%self.param: ref %struct_type.value.has_value.ad9) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_19.4(%self.param: ref %DefaultOptionalStorage.d02) { +// CHECK:STDOUT: fn @Destroy.Op.loc26_19.4(%self.param: ref %DefaultOptionalStorage.541) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc26_19.5(%self.param: ref %Optional.249) { +// CHECK:STDOUT: fn @Destroy.Op.loc26_19.5(%self.param: ref %Optional.f48) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%R.706) { -// CHECK:STDOUT: %R.loc22_10.1 => constants.%R.706 -// CHECK:STDOUT: %R.as_type.loc22_55.1 => constants.%R.as_type.8de -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4d6 +// CHECK:STDOUT: specific @Test(constants.%R.7b2) { +// CHECK:STDOUT: %R.loc22_10.1 => constants.%R.7b2 +// CHECK:STDOUT: %R.as_type.loc22_55.1 => constants.%R.as_type.657 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%facet_value.459) { -// CHECK:STDOUT: %R.loc22_10.1 => constants.%facet_value.459 +// CHECK:STDOUT: specific @Test(constants.%facet_value.7dc) { +// CHECK:STDOUT: %R.loc22_10.1 => constants.%facet_value.7dc // CHECK:STDOUT: %R.as_type.loc22_55.1 => constants.%MutableRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.80f +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.992 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc22 => constants.%complete_type.357 -// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.b58 -// CHECK:STDOUT: %Iterate.facet => constants.%Iterate.facet.7ea -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.7f2 -// CHECK:STDOUT: %.loc26_19.12 => constants.%.b77 -// CHECK:STDOUT: %impl.elem2.loc26_19.2 => constants.%R.as_type.as.Iterate.impl.NewCursor.74e +// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.5f7 +// CHECK:STDOUT: %Iterate.facet => constants.%Iterate.facet.c9f +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.bde +// CHECK:STDOUT: %.loc26_19.12 => constants.%.c29a +// CHECK:STDOUT: %impl.elem2.loc26_19.2 => constants.%R.as_type.as.Iterate.impl.NewCursor.41a // CHECK:STDOUT: %specific_impl_fn.loc26_19.4 => constants.%R.as_type.as.Iterate.impl.NewCursor.specific_fn -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.a02 -// CHECK:STDOUT: %as_type => constants.%tuple.type.e5c -// CHECK:STDOUT: %require_complete.1 => constants.%complete_type.0e3 -// CHECK:STDOUT: %ptr => constants.%ptr.505 -// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.8ae -// CHECK:STDOUT: %.loc26_19.13 => constants.%.8c6 -// CHECK:STDOUT: %impl.elem3.loc26_19.2 => constants.%R.as_type.as.Iterate.impl.Next.adb +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.e1e +// 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.454 +// CHECK:STDOUT: %.loc26_19.13 => constants.%.b4c +// CHECK:STDOUT: %impl.elem3.loc26_19.2 => constants.%R.as_type.as.Iterate.impl.Next.928 // CHECK:STDOUT: %specific_impl_fn.loc26_19.5 => constants.%R.as_type.as.Iterate.impl.Next.specific_fn -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.fe8 -// CHECK:STDOUT: %.loc26_19.14 => constants.%.9af -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e20f1f.9 -// CHECK:STDOUT: %impl.elem0.loc26_19.2 => constants.%Destroy.Op.2dd605.9 -// CHECK:STDOUT: %specific_impl_fn.loc26_19.6 => constants.%Destroy.Op.2dd605.9 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.452 +// CHECK:STDOUT: %.loc26_19.14 => constants.%.899 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.9 +// CHECK:STDOUT: %impl.elem0.loc26_19.2 => constants.%Destroy.Op.1a2547.9 +// CHECK:STDOUT: %specific_impl_fn.loc26_19.6 => constants.%Destroy.Op.1a2547.9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- adl_returns_different_types.carbon @@ -2192,160 +2192,160 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %facet_type: type = facet_type <@Destroy & @Copy> [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Optional.Get.type.d22: type = fn_type @Optional.Get, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.Get.6fc: %Optional.Get.type.d22 = struct_value () [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.498: type = fn_type @Optional.HasValue, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.bf8: %Optional.HasValue.type.498 = struct_value () [symbolic] -// CHECK:STDOUT: %T.cb0: %facet_type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.f8b: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.type.46f: type = fn_type @T.as_type.as.OptionalStorage.impl.Get, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.8c2: %T.as_type.as.OptionalStorage.impl.Get.type.46f = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.type.0ae: type = fn_type @T.as_type.as.OptionalStorage.impl.Has, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.e0f: %T.as_type.as.OptionalStorage.impl.Has.type.0ae = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.type.87a: type = fn_type @T.as_type.as.OptionalStorage.impl.Some, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.898: %T.as_type.as.OptionalStorage.impl.Some.type.87a = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.type.ceb: type = fn_type @T.as_type.as.OptionalStorage.impl.None, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.9dd: %T.as_type.as.OptionalStorage.impl.None.type.ceb = struct_value () [symbolic] -// CHECK:STDOUT: %.Self.e31: %Iterate.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.732: = lookup_impl_witness %.Self.e31, @Iterate [symbolic_self] -// CHECK:STDOUT: %impl.elem0.03d: %facet_type = impl_witness_access %Iterate.lookup_impl_witness.732, element0 [symbolic_self] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Optional.Get.type.bb9: type = fn_type @Optional.Get, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.Get.fa1: %Optional.Get.type.bb9 = struct_value () [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.e9e: type = fn_type @Optional.HasValue, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.6cd: %Optional.HasValue.type.e9e = struct_value () [symbolic] +// CHECK:STDOUT: %T.283: %facet_type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.d50: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.type.029: type = fn_type @T.as_type.as.OptionalStorage.impl.Get, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.cb5: %T.as_type.as.OptionalStorage.impl.Get.type.029 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.type.4bc: type = fn_type @T.as_type.as.OptionalStorage.impl.Has, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.dc2: %T.as_type.as.OptionalStorage.impl.Has.type.4bc = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.type.800: type = fn_type @T.as_type.as.OptionalStorage.impl.Some, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.e83: %T.as_type.as.OptionalStorage.impl.Some.type.800 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.type.300: type = fn_type @T.as_type.as.OptionalStorage.impl.None, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.f54: %T.as_type.as.OptionalStorage.impl.None.type.300 = struct_value () [symbolic] +// CHECK:STDOUT: %.Self.35d: %Iterate.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.b37: = lookup_impl_witness %.Self.35d, @Iterate [symbolic_self] +// CHECK:STDOUT: %impl.elem0.903: %facet_type = impl_witness_access %Iterate.lookup_impl_witness.b37, element0 [symbolic_self] // CHECK:STDOUT: %ValueType: type = class_type @ValueType [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.94b: type = pattern_type %ValueType [concrete] +// CHECK:STDOUT: %pattern_type.e41: type = pattern_type %ValueType [concrete] // CHECK:STDOUT: %ValueType.cpp_destructor.type: type = fn_type @ValueType.cpp_destructor [concrete] // CHECK:STDOUT: %ValueType.cpp_destructor: %ValueType.cpp_destructor.type = struct_value () [concrete] -// CHECK:STDOUT: %ValueType.Op.type.bd116f.1: type = fn_type @ValueType.Op.1 [concrete] -// CHECK:STDOUT: %ValueType.Op.1edc3c.1: %ValueType.Op.type.bd116f.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.031: = custom_witness (%ValueType.Op.1edc3c.1), @Destroy [concrete] -// CHECK:STDOUT: %const.e15: type = const_type %ValueType [concrete] -// CHECK:STDOUT: %ptr.140: type = ptr_type %const.e15 [concrete] -// CHECK:STDOUT: %ptr.fed: type = ptr_type %ValueType [concrete] -// CHECK:STDOUT: %ValueType.Op.type.bd116f.2: type = fn_type @ValueType.Op.2 [concrete] -// CHECK:STDOUT: %ValueType.Op.1edc3c.2: %ValueType.Op.type.bd116f.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.d86: = custom_witness (%ValueType.Op.1edc3c.2), @Copy [concrete] -// CHECK:STDOUT: %facet_value.95f: %facet_type = facet_value %ValueType, (%custom_witness.031, %custom_witness.d86) [concrete] -// CHECK:STDOUT: %Iterate_where.type.6d9: type = facet_type <@Iterate where %impl.elem0.03d = %facet_value.95f> [concrete] -// CHECK:STDOUT: %R.bd8: %Iterate_where.type.6d9 = symbolic_binding R, 0 [symbolic] -// CHECK:STDOUT: %R.as_type.e1d: type = facet_access_type %R.bd8 [symbolic] -// CHECK:STDOUT: %pattern_type.b93: type = pattern_type %R.as_type.e1d [symbolic] +// CHECK:STDOUT: %ValueType.Op.type.79266b.1: type = fn_type @ValueType.Op.1 [concrete] +// CHECK:STDOUT: %ValueType.Op.4c94b9.1: %ValueType.Op.type.79266b.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.fef: = custom_witness (%ValueType.Op.4c94b9.1), @Destroy [concrete] +// CHECK:STDOUT: %const.773: type = const_type %ValueType [concrete] +// CHECK:STDOUT: %ptr.32e: type = ptr_type %const.773 [concrete] +// CHECK:STDOUT: %ptr.9d3: type = ptr_type %ValueType [concrete] +// CHECK:STDOUT: %ValueType.Op.type.79266b.2: type = fn_type @ValueType.Op.2 [concrete] +// CHECK:STDOUT: %ValueType.Op.4c94b9.2: %ValueType.Op.type.79266b.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.c19: = custom_witness (%ValueType.Op.4c94b9.2), @Copy [concrete] +// CHECK:STDOUT: %facet_value.ccb: %facet_type = facet_value %ValueType, (%custom_witness.fef, %custom_witness.c19) [concrete] +// CHECK:STDOUT: %Iterate_where.type.99d: type = facet_type <@Iterate where %impl.elem0.903 = %facet_value.ccb> [concrete] +// CHECK:STDOUT: %R.623: %Iterate_where.type.99d = symbolic_binding R, 0 [symbolic] +// CHECK:STDOUT: %R.as_type.a62: type = facet_access_type %R.623 [symbolic] +// CHECK:STDOUT: %pattern_type.725: type = pattern_type %R.as_type.a62 [symbolic] // CHECK:STDOUT: %CppRangeForIterate.type: type = facet_type <@CppRangeForIterate> [concrete] -// CHECK:STDOUT: %.Self.10b: %CppRangeForIterate.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.5bf: = lookup_impl_witness %.Self.10b, @CppRangeForIterate [symbolic_self] -// CHECK:STDOUT: %impl.elem0.d47: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.5bf, element0 [symbolic_self] -// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.bce: = lookup_impl_witness %impl.elem0.d47, @CppUnsafeDeref [symbolic_self] -// CHECK:STDOUT: %impl.elem0.c87: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.bce, element0 [symbolic_self] -// CHECK:STDOUT: %impl.elem1.846: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.5bf, element1 [symbolic_self] -// CHECK:STDOUT: %CppRangeForIterate_where.type: type = facet_type <@CppRangeForIterate where %impl.elem0.d47 impls @Destroy and %impl.elem0.d47 impls @Copy and %impl.elem0.d47 impls @CppUnsafeDeref and %impl.elem0.d47 impls @EqWith, @EqWith(%impl.elem1.846) and %impl.elem0.d47 impls @Inc and %impl.elem0.c87 impls @Destroy and %impl.elem0.c87 impls @Copy and %impl.elem1.846 impls @Destroy and %impl.elem1.846 impls @Copy> [concrete] -// CHECK:STDOUT: %R.6c6: %CppRangeForIterate_where.type = symbolic_binding R, 0 [symbolic] -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.edd1fe.2: = lookup_impl_witness %R.6c6, @CppRangeForIterate [symbolic] -// CHECK:STDOUT: %impl.elem1.bdcd2d.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.edd1fe.2, element1 [symbolic] -// CHECK:STDOUT: %impl.elem0.d5966e.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.edd1fe.2, element0 [symbolic] -// CHECK:STDOUT: %tuple.type.384: type = tuple_type (%impl.elem0.d5966e.2, %impl.elem1.bdcd2d.2) [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.0ba: = lookup_impl_witness %tuple.type.384, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.2fe: %Destroy.type = facet_value %tuple.type.384, (%Destroy.lookup_impl_witness.0ba) [symbolic] -// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.ca4: = lookup_impl_witness %impl.elem0.d5966e.2, @CppUnsafeDeref [symbolic] -// CHECK:STDOUT: %impl.elem0.b10: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.ca4, element0 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.3d8: = lookup_impl_witness %impl.elem0.b10, @Destroy [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.bff: = lookup_impl_witness %impl.elem0.b10, @Copy [symbolic] -// CHECK:STDOUT: %facet_value.a30: %facet_type = facet_value %impl.elem0.b10, (%Destroy.lookup_impl_witness.3d8, %Copy.lookup_impl_witness.bff) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.5b5: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%R.6c6) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.cd2: %R.as_type.as.Iterate.impl.Next.type.5b5 = struct_value () [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.9b6: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%R.6c6) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.b29: %R.as_type.as.Iterate.impl.NewCursor.type.9b6 = struct_value () [symbolic] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.135: = lookup_impl_witness %R.bd8, @Iterate [symbolic] -// CHECK:STDOUT: %Iterate.facet.dca: %Iterate.type = facet_value %R.as_type.e1d, (%Iterate.lookup_impl_witness.135) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.842: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.dca) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.a4d: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.dca) [symbolic] -// CHECK:STDOUT: %.89c: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.842, %Iterate.facet.dca [symbolic] -// CHECK:STDOUT: %impl.elem2.488: %.89c = impl_witness_access %Iterate.lookup_impl_witness.135, element2 [symbolic] -// CHECK:STDOUT: %impl.elem1.b38: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.135, element1 [symbolic] -// CHECK:STDOUT: %as_type.470: type = facet_access_type %impl.elem1.b38 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.5a0: = specific_impl_function %impl.elem2.488, @Iterate.WithSelf.NewCursor(%Iterate.facet.dca) [symbolic] -// CHECK:STDOUT: %ptr.ce1: type = ptr_type %as_type.470 [symbolic] -// CHECK:STDOUT: %.503: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.a4d, %Iterate.facet.dca [symbolic] -// CHECK:STDOUT: %impl.elem3.3bc: %.503 = impl_witness_access %Iterate.lookup_impl_witness.135, element3 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.046: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.95f) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.1ee: = impl_witness imports.%OptionalStorage.impl_witness_table.6f7, @T.as_type.as.OptionalStorage.impl(%facet_value.95f) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.7ac: %OptionalStorage.type = facet_value %ValueType, (%OptionalStorage.impl_witness.1ee) [concrete] -// CHECK:STDOUT: %Optional.fb3: type = class_type @Optional, @Optional(%OptionalStorage.facet.7ac) [concrete] -// CHECK:STDOUT: %specific_impl_fn.7c6: = specific_impl_function %impl.elem3.3bc, @Iterate.WithSelf.Next(%Iterate.facet.dca) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.475: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.7ac) [concrete] -// CHECK:STDOUT: %Optional.HasValue.c00: %Optional.HasValue.type.475 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.dd5: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.7ac) [concrete] -// CHECK:STDOUT: %Optional.Get.335: %Optional.Get.type.dd5 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.facet.1a4: %Destroy.type = facet_value %ValueType, (%custom_witness.031) [concrete] -// CHECK:STDOUT: %MaybeUnformed.d14: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.1a4) [concrete] -// CHECK:STDOUT: %struct_type.value.has_value.330: type = struct_type {.value: %MaybeUnformed.d14, .has_value: bool} [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.c00, @Optional.HasValue(%OptionalStorage.facet.7ac) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.335, @Optional.Get(%OptionalStorage.facet.7ac) [concrete] +// CHECK:STDOUT: %.Self.6bd: %CppRangeForIterate.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.143: = lookup_impl_witness %.Self.6bd, @CppRangeForIterate [symbolic_self] +// CHECK:STDOUT: %impl.elem0.109: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.143, element0 [symbolic_self] +// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.712: = lookup_impl_witness %impl.elem0.109, @CppUnsafeDeref [symbolic_self] +// CHECK:STDOUT: %impl.elem0.56a: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.712, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem1.222: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.143, element1 [symbolic_self] +// CHECK:STDOUT: %CppRangeForIterate_where.type: type = facet_type <@CppRangeForIterate where %impl.elem0.109 impls @Destroy and %impl.elem0.109 impls @Copy and %impl.elem0.109 impls @CppUnsafeDeref and %impl.elem0.109 impls @EqWith, @EqWith(%impl.elem1.222) and %impl.elem0.109 impls @Inc and %impl.elem0.56a impls @Destroy and %impl.elem0.56a impls @Copy and %impl.elem1.222 impls @Destroy and %impl.elem1.222 impls @Copy> [concrete] +// CHECK:STDOUT: %R.39b: %CppRangeForIterate_where.type = symbolic_binding R, 0 [symbolic] +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.7e2712.2: = lookup_impl_witness %R.39b, @CppRangeForIterate [symbolic] +// CHECK:STDOUT: %impl.elem1.7a0bff.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.7e2712.2, element1 [symbolic] +// CHECK:STDOUT: %impl.elem0.73eb7f.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.7e2712.2, element0 [symbolic] +// CHECK:STDOUT: %tuple.type.3cf: type = tuple_type (%impl.elem0.73eb7f.2, %impl.elem1.7a0bff.2) [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.69f: = lookup_impl_witness %tuple.type.3cf, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.593: %Destroy.type = facet_value %tuple.type.3cf, (%Destroy.lookup_impl_witness.69f) [symbolic] +// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.aa7: = lookup_impl_witness %impl.elem0.73eb7f.2, @CppUnsafeDeref [symbolic] +// CHECK:STDOUT: %impl.elem0.af7: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.aa7, element0 [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.ec3: = lookup_impl_witness %impl.elem0.af7, @Destroy [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.a7a: = lookup_impl_witness %impl.elem0.af7, @Copy [symbolic] +// CHECK:STDOUT: %facet_value.194: %facet_type = facet_value %impl.elem0.af7, (%Destroy.lookup_impl_witness.ec3, %Copy.lookup_impl_witness.a7a) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.1f7: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%R.39b) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.0d6: %R.as_type.as.Iterate.impl.Next.type.1f7 = struct_value () [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.36f: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%R.39b) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.29b: %R.as_type.as.Iterate.impl.NewCursor.type.36f = struct_value () [symbolic] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.8b4: = lookup_impl_witness %R.623, @Iterate [symbolic] +// CHECK:STDOUT: %Iterate.facet.b19: %Iterate.type = facet_value %R.as_type.a62, (%Iterate.lookup_impl_witness.8b4) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.217: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.b19) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.10a: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.b19) [symbolic] +// CHECK:STDOUT: %.a27: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.217, %Iterate.facet.b19 [symbolic] +// CHECK:STDOUT: %impl.elem2.7c0: %.a27 = impl_witness_access %Iterate.lookup_impl_witness.8b4, element2 [symbolic] +// CHECK:STDOUT: %impl.elem1.46a: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.8b4, element1 [symbolic] +// CHECK:STDOUT: %as_type.862: type = facet_access_type %impl.elem1.46a [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e23: = specific_impl_function %impl.elem2.7c0, @Iterate.WithSelf.NewCursor(%Iterate.facet.b19) [symbolic] +// CHECK:STDOUT: %ptr.530: type = ptr_type %as_type.862 [symbolic] +// CHECK:STDOUT: %.df57: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.10a, %Iterate.facet.b19 [symbolic] +// CHECK:STDOUT: %impl.elem3.199: %.df57 = impl_witness_access %Iterate.lookup_impl_witness.8b4, element3 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.257: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.ccb) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.be5: = impl_witness imports.%OptionalStorage.impl_witness_table.655, @T.as_type.as.OptionalStorage.impl(%facet_value.ccb) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.7ce: %OptionalStorage.type = facet_value %ValueType, (%OptionalStorage.impl_witness.be5) [concrete] +// CHECK:STDOUT: %Optional.552: type = class_type @Optional, @Optional(%OptionalStorage.facet.7ce) [concrete] +// CHECK:STDOUT: %specific_impl_fn.169: = specific_impl_function %impl.elem3.199, @Iterate.WithSelf.Next(%Iterate.facet.b19) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.109: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.7ce) [concrete] +// CHECK:STDOUT: %Optional.HasValue.605: %Optional.HasValue.type.109 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.135: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.7ce) [concrete] +// CHECK:STDOUT: %Optional.Get.5aa: %Optional.Get.type.135 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.facet.306: %Destroy.type = facet_value %ValueType, (%custom_witness.fef) [concrete] +// CHECK:STDOUT: %MaybeUnformed.669: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.306) [concrete] +// CHECK:STDOUT: %struct_type.value.has_value.5a1: type = struct_type {.value: %MaybeUnformed.669, .has_value: bool} [concrete] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.605, @Optional.HasValue(%OptionalStorage.facet.7ce) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.5aa, @Optional.Get(%OptionalStorage.facet.7ce) [concrete] // CHECK:STDOUT: %ValueType.cpp_operator.type: type = fn_type @ValueType.cpp_operator [concrete] // CHECK:STDOUT: %ValueType.cpp_operator: %ValueType.cpp_operator.type = struct_value () [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.790b3b.6: type = fn_type @Destroy.Op.loc31_31.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.55f: = lookup_impl_witness %impl.elem1.b38, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.567: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.b38) [symbolic] -// CHECK:STDOUT: %.c3e: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.567, %impl.elem1.b38 [symbolic] -// CHECK:STDOUT: %impl.elem0.38e: %.c3e = impl_witness_access %Destroy.lookup_impl_witness.55f, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.3a8: = specific_impl_function %impl.elem0.38e, @Destroy.WithSelf.Op(%impl.elem1.b38) [symbolic] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc31_31.5 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.f37: = lookup_impl_witness %impl.elem1.46a, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.e7e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.46a) [symbolic] +// CHECK:STDOUT: %.bc1: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.e7e, %impl.elem1.46a [symbolic] +// CHECK:STDOUT: %impl.elem0.c7c: %.bc1 = impl_witness_access %Destroy.lookup_impl_witness.f37, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.cd3: = specific_impl_function %impl.elem0.c7c, @Destroy.WithSelf.Op(%impl.elem1.46a) [symbolic] // CHECK:STDOUT: %ConstRange: type = class_type @ConstRange [concrete] -// CHECK:STDOUT: %pattern_type.88d: type = pattern_type %ConstRange [concrete] +// CHECK:STDOUT: %pattern_type.025: type = pattern_type %ConstRange [concrete] // CHECK:STDOUT: %Iterator: type = class_type @Iterator.1 [concrete] // CHECK:STDOUT: %Sentinel: type = class_type @Sentinel.1 [concrete] // CHECK:STDOUT: %Begin.type: type = fn_type @Begin [concrete] // CHECK:STDOUT: %Begin: %Begin.type = struct_value () [concrete] // CHECK:STDOUT: %End.type: type = fn_type @End [concrete] // CHECK:STDOUT: %End: %End.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.2ff: = custom_witness (%Iterator, %Sentinel, %Begin, %End), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %Iterator.Op.type.587642.1: type = fn_type @Iterator.Op.1 [concrete] -// CHECK:STDOUT: %Iterator.Op.dc644c.1: %Iterator.Op.type.587642.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.23f: = custom_witness (%ValueType, %Iterator.Op.dc644c.1), @CppUnsafeDeref [concrete] -// CHECK:STDOUT: %Iterator.Op.type.587642.2: type = fn_type @Iterator.Op.2 [concrete] -// CHECK:STDOUT: %Iterator.Op.dc644c.2: %Iterator.Op.type.587642.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.166783.1: = custom_witness (%Iterator.Op.dc644c.2), @Destroy [concrete] -// CHECK:STDOUT: %Iterator.Op.type.587642.3: type = fn_type @Iterator.Op.3 [concrete] -// CHECK:STDOUT: %Iterator.Op.dc644c.3: %Iterator.Op.type.587642.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b36db2.1: = custom_witness (%Iterator.Op.dc644c.3), @Copy [concrete] +// CHECK:STDOUT: %custom_witness.c2f: = custom_witness (%Iterator, %Sentinel, %Begin, %End), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %Iterator.Op.type.ac7e09.1: type = fn_type @Iterator.Op.1 [concrete] +// CHECK:STDOUT: %Iterator.Op.583fda.1: %Iterator.Op.type.ac7e09.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.1d3: = custom_witness (%ValueType, %Iterator.Op.583fda.1), @CppUnsafeDeref [concrete] +// CHECK:STDOUT: %Iterator.Op.type.ac7e09.2: type = fn_type @Iterator.Op.2 [concrete] +// CHECK:STDOUT: %Iterator.Op.583fda.2: %Iterator.Op.type.ac7e09.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.21358e.1: = custom_witness (%Iterator.Op.583fda.2), @Destroy [concrete] +// CHECK:STDOUT: %Iterator.Op.type.ac7e09.3: type = fn_type @Iterator.Op.3 [concrete] +// CHECK:STDOUT: %Iterator.Op.583fda.3: %Iterator.Op.type.ac7e09.3 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.a3150e.1: = custom_witness (%Iterator.Op.583fda.3), @Copy [concrete] // CHECK:STDOUT: %Equal.type: type = fn_type @Equal [concrete] // CHECK:STDOUT: %Equal: %Equal.type = struct_value () [concrete] // CHECK:STDOUT: %NotEqual.type: type = fn_type @NotEqual [concrete] // CHECK:STDOUT: %NotEqual: %NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.2ed: = custom_witness (%Equal, %NotEqual), @EqWith, @EqWith(%Sentinel) [concrete] -// CHECK:STDOUT: %Iterator.Op.type.587642.4: type = fn_type @Iterator.Op.4 [concrete] -// CHECK:STDOUT: %Iterator.Op.dc644c.4: %Iterator.Op.type.587642.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.8ca: = custom_witness (%Iterator.Op.dc644c.4), @Inc [concrete] -// CHECK:STDOUT: %Sentinel.Op.type.587642.1: type = fn_type @Sentinel.Op.1 [concrete] -// CHECK:STDOUT: %Sentinel.Op.dc644c.1: %Sentinel.Op.type.587642.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.166783.2: = custom_witness (%Sentinel.Op.dc644c.1), @Destroy [concrete] -// CHECK:STDOUT: %Sentinel.Op.type.587642.2: type = fn_type @Sentinel.Op.2 [concrete] -// CHECK:STDOUT: %Sentinel.Op.dc644c.2: %Sentinel.Op.type.587642.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b36db2.2: = custom_witness (%Sentinel.Op.dc644c.2), @Copy [concrete] -// CHECK:STDOUT: %facet_value.166: %CppRangeForIterate_where.type = facet_value %ConstRange, (%custom_witness.031, %custom_witness.d86, %custom_witness.2ff, %custom_witness.166783.1, %custom_witness.b36db2.1, %custom_witness.23f, %custom_witness.2ed, %custom_witness.8ca, %custom_witness.166783.2, %custom_witness.b36db2.2) [concrete] -// CHECK:STDOUT: %tuple.type.a15: type = tuple_type (%Iterator, %Sentinel) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.7: type = fn_type @Destroy.Op.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.7: %Destroy.Op.type.790b3b.7 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.7: = custom_witness (%Destroy.Op.2dd605.7), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.c5c: %Destroy.type = facet_value %tuple.type.a15, (%custom_witness.e20f1f.7) [concrete] -// CHECK:STDOUT: %Iterate.impl_witness.5a2: = impl_witness imports.%Iterate.impl_witness_table.9f0, @R.as_type.as.Iterate.impl(%facet_value.166) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.49f: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%facet_value.166) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.1c2: %R.as_type.as.Iterate.impl.NewCursor.type.49f = struct_value () [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.fc8: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%facet_value.166) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.7bf: %R.as_type.as.Iterate.impl.Next.type.fc8 = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet.bdd: %Iterate.type = facet_value %ConstRange, (%Iterate.impl_witness.5a2) [concrete] -// CHECK:STDOUT: %facet_value.5f8: %Iterate_where.type.6d9 = facet_value %ConstRange, (%Iterate.impl_witness.5a2) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.e45: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.bdd) [concrete] -// CHECK:STDOUT: %.cc1: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.e45, %Iterate.facet.bdd [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.specific_fn: = specific_function %R.as_type.as.Iterate.impl.NewCursor.1c2, @R.as_type.as.Iterate.impl.NewCursor(%facet_value.166) [concrete] -// CHECK:STDOUT: %complete_type.443: = complete_type_witness %tuple.type.a15 [concrete] -// CHECK:STDOUT: %ptr.261: type = ptr_type %tuple.type.a15 [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.3db: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.bdd) [concrete] -// CHECK:STDOUT: %.c8f: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.3db, %Iterate.facet.bdd [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.specific_fn: = specific_function %R.as_type.as.Iterate.impl.Next.7bf, @R.as_type.as.Iterate.impl.Next(%facet_value.166) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.6c1: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.c5c) [concrete] -// CHECK:STDOUT: %.3f3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.6c1, %Destroy.facet.c5c [concrete] +// CHECK:STDOUT: %custom_witness.aa4: = custom_witness (%Equal, %NotEqual), @EqWith, @EqWith(%Sentinel) [concrete] +// CHECK:STDOUT: %Iterator.Op.type.ac7e09.4: type = fn_type @Iterator.Op.4 [concrete] +// CHECK:STDOUT: %Iterator.Op.583fda.4: %Iterator.Op.type.ac7e09.4 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.393: = custom_witness (%Iterator.Op.583fda.4), @Inc [concrete] +// CHECK:STDOUT: %Sentinel.Op.type.ac7e09.1: type = fn_type @Sentinel.Op.1 [concrete] +// CHECK:STDOUT: %Sentinel.Op.583fda.1: %Sentinel.Op.type.ac7e09.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.21358e.2: = custom_witness (%Sentinel.Op.583fda.1), @Destroy [concrete] +// CHECK:STDOUT: %Sentinel.Op.type.ac7e09.2: type = fn_type @Sentinel.Op.2 [concrete] +// CHECK:STDOUT: %Sentinel.Op.583fda.2: %Sentinel.Op.type.ac7e09.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.a3150e.2: = custom_witness (%Sentinel.Op.583fda.2), @Copy [concrete] +// CHECK:STDOUT: %facet_value.b1e: %CppRangeForIterate_where.type = facet_value %ConstRange, (%custom_witness.fef, %custom_witness.c19, %custom_witness.c2f, %custom_witness.21358e.1, %custom_witness.a3150e.1, %custom_witness.1d3, %custom_witness.aa4, %custom_witness.393, %custom_witness.21358e.2, %custom_witness.a3150e.2) [concrete] +// CHECK:STDOUT: %tuple.type.df8: type = tuple_type (%Iterator, %Sentinel) [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.7: type = fn_type @Destroy.Op.2 [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.777: %Destroy.type = facet_value %tuple.type.df8, (%custom_witness.df9cc1.7) [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.466: = impl_witness imports.%Iterate.impl_witness_table.344, @R.as_type.as.Iterate.impl(%facet_value.b1e) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.0b3: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%facet_value.b1e) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.a27: %R.as_type.as.Iterate.impl.NewCursor.type.0b3 = struct_value () [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.f2b: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%facet_value.b1e) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.bf3: %R.as_type.as.Iterate.impl.Next.type.f2b = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet.099: %Iterate.type = facet_value %ConstRange, (%Iterate.impl_witness.466) [concrete] +// CHECK:STDOUT: %facet_value.00d: %Iterate_where.type.99d = facet_value %ConstRange, (%Iterate.impl_witness.466) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.e43: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.099) [concrete] +// CHECK:STDOUT: %.da4e: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.e43, %Iterate.facet.099 [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.specific_fn: = specific_function %R.as_type.as.Iterate.impl.NewCursor.a27, @R.as_type.as.Iterate.impl.NewCursor(%facet_value.b1e) [concrete] +// CHECK:STDOUT: %complete_type.e35: = complete_type_witness %tuple.type.df8 [concrete] +// CHECK:STDOUT: %ptr.fc0: type = ptr_type %tuple.type.df8 [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.be4: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.099) [concrete] +// CHECK:STDOUT: %.4b8: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.be4, %Iterate.facet.099 [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.specific_fn: = specific_function %R.as_type.as.Iterate.impl.Next.bf3, @R.as_type.as.Iterate.impl.Next(%facet_value.b1e) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.589: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.777) [concrete] +// CHECK:STDOUT: %.4e1: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.589, %Destroy.facet.777 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2353,15 +2353,15 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: .N = %N // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.0b9: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.498) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.bf8)] -// CHECK:STDOUT: %Core.import_ref.61f: @Optional.%Optional.Get.type (%Optional.Get.type.d22) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.6fc)] -// CHECK:STDOUT: %Core.import_ref.2b5: type = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%DefaultOptionalStorage (constants.%DefaultOptionalStorage.f8b)] -// CHECK:STDOUT: %Core.import_ref.b0a: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None.type (%T.as_type.as.OptionalStorage.impl.None.type.ceb) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None (constants.%T.as_type.as.OptionalStorage.impl.None.9dd)] -// CHECK:STDOUT: %Core.import_ref.3fc: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some.type (%T.as_type.as.OptionalStorage.impl.Some.type.87a) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some (constants.%T.as_type.as.OptionalStorage.impl.Some.898)] -// CHECK:STDOUT: %Core.import_ref.986: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has.type (%T.as_type.as.OptionalStorage.impl.Has.type.0ae) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has (constants.%T.as_type.as.OptionalStorage.impl.Has.e0f)] -// CHECK:STDOUT: %Core.import_ref.557: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get.type (%T.as_type.as.OptionalStorage.impl.Get.type.46f) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get (constants.%T.as_type.as.OptionalStorage.impl.Get.8c2)] -// CHECK:STDOUT: %Core.import_ref.999 = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.6f7 = impl_witness_table (%Core.import_ref.2b5, %Core.import_ref.b0a, %Core.import_ref.3fc, %Core.import_ref.986, %Core.import_ref.557, %Core.import_ref.999), @T.as_type.as.OptionalStorage.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.bb6: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.e9e) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.6cd)] +// CHECK:STDOUT: %Core.import_ref.daba: @Optional.%Optional.Get.type (%Optional.Get.type.bb9) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.fa1)] +// CHECK:STDOUT: %Core.import_ref.0c6: type = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%DefaultOptionalStorage (constants.%DefaultOptionalStorage.d50)] +// CHECK:STDOUT: %Core.import_ref.f4f: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None.type (%T.as_type.as.OptionalStorage.impl.None.type.300) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None (constants.%T.as_type.as.OptionalStorage.impl.None.f54)] +// CHECK:STDOUT: %Core.import_ref.18f: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some.type (%T.as_type.as.OptionalStorage.impl.Some.type.800) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some (constants.%T.as_type.as.OptionalStorage.impl.Some.e83)] +// CHECK:STDOUT: %Core.import_ref.c68: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has.type (%T.as_type.as.OptionalStorage.impl.Has.type.4bc) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has (constants.%T.as_type.as.OptionalStorage.impl.Has.dc2)] +// CHECK:STDOUT: %Core.import_ref.a83: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get.type (%T.as_type.as.OptionalStorage.impl.Get.type.029) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get (constants.%T.as_type.as.OptionalStorage.impl.Get.cb5)] +// CHECK:STDOUT: %Core.import_ref.aaa = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.655 = impl_witness_table (%Core.import_ref.0c6, %Core.import_ref.f4f, %Core.import_ref.18f, %Core.import_ref.c68, %Core.import_ref.a83, %Core.import_ref.aaa), @T.as_type.as.OptionalStorage.impl [concrete] // CHECK:STDOUT: %N: = namespace [concrete] { // CHECK:STDOUT: .ValueType = %ValueType.decl // CHECK:STDOUT: .ConstRange = %ConstRange.decl @@ -2373,11 +2373,11 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.89a: %facet_type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%facet_value (constants.%facet_value.a30)] -// CHECK:STDOUT: %Core.import_ref.9ea: %Destroy.type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%Destroy.facet (constants.%Destroy.facet.2fe)] -// CHECK:STDOUT: %Core.import_ref.a6c: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor.type (%R.as_type.as.Iterate.impl.NewCursor.type.9b6) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor (constants.%R.as_type.as.Iterate.impl.NewCursor.b29)] -// CHECK:STDOUT: %Core.import_ref.a02: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next.type (%R.as_type.as.Iterate.impl.Next.type.5b5) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next (constants.%R.as_type.as.Iterate.impl.Next.cd2)] -// CHECK:STDOUT: %Iterate.impl_witness_table.9f0 = impl_witness_table (%Core.import_ref.89a, %Core.import_ref.9ea, %Core.import_ref.a6c, %Core.import_ref.a02), @R.as_type.as.Iterate.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.301: %facet_type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%facet_value (constants.%facet_value.194)] +// CHECK:STDOUT: %Core.import_ref.89f: %Destroy.type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%Destroy.facet (constants.%Destroy.facet.593)] +// CHECK:STDOUT: %Core.import_ref.3e6: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor.type (%R.as_type.as.Iterate.impl.NewCursor.type.36f) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor (constants.%R.as_type.as.Iterate.impl.NewCursor.29b)] +// CHECK:STDOUT: %Core.import_ref.85d: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next.type (%R.as_type.as.Iterate.impl.Next.type.1f7) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next (constants.%R.as_type.as.Iterate.impl.Next.0d6)] +// CHECK:STDOUT: %Iterate.impl_witness_table.344 = impl_witness_table (%Core.import_ref.301, %Core.import_ref.89f, %Core.import_ref.3e6, %Core.import_ref.85d), @R.as_type.as.Iterate.impl [concrete] // CHECK:STDOUT: %ValueType.cpp_operator.decl: %ValueType.cpp_operator.type = fn_decl @ValueType.cpp_operator [concrete = constants.%ValueType.cpp_operator] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -2391,74 +2391,74 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %ConstRange.decl: type = class_decl @ConstRange [concrete = constants.%ConstRange] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Test(%R.loc27_10.2: %Iterate_where.type.6d9) { +// CHECK:STDOUT: generic fn @Test(%R.loc27_10.2: %Iterate_where.type.99d) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc27_10.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.135)] -// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %R.as_type.loc27_67.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet (constants.%Iterate.facet.dca)] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.842)] -// CHECK:STDOUT: %.loc31_31.13: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet [symbolic = %.loc31_31.13 (constants.%.89c)] -// CHECK:STDOUT: %impl.elem2.loc31_31.2: @Test.%.loc31_31.13 (%.89c) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc31_31.2 (constants.%impl.elem2.488)] -// CHECK:STDOUT: %specific_impl_fn.loc31_31.4: = specific_impl_function %impl.elem2.loc31_31.2, @Iterate.WithSelf.NewCursor(%Iterate.facet) [symbolic = %specific_impl_fn.loc31_31.4 (constants.%specific_impl_fn.5a0)] +// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc27_10.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.8b4)] +// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %R.as_type.loc27_67.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet (constants.%Iterate.facet.b19)] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.217)] +// CHECK:STDOUT: %.loc31_31.13: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet [symbolic = %.loc31_31.13 (constants.%.a27)] +// CHECK:STDOUT: %impl.elem2.loc31_31.2: @Test.%.loc31_31.13 (%.a27) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc31_31.2 (constants.%impl.elem2.7c0)] +// CHECK:STDOUT: %specific_impl_fn.loc31_31.4: = specific_impl_function %impl.elem2.loc31_31.2, @Iterate.WithSelf.NewCursor(%Iterate.facet) [symbolic = %specific_impl_fn.loc31_31.4 (constants.%specific_impl_fn.e23)] // CHECK:STDOUT: -// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.ce1)] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.a4d)] -// CHECK:STDOUT: %.loc31_31.14: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet [symbolic = %.loc31_31.14 (constants.%.503)] -// CHECK:STDOUT: %impl.elem3.loc31_31.2: @Test.%.loc31_31.14 (%.503) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc31_31.2 (constants.%impl.elem3.3bc)] -// CHECK:STDOUT: %specific_impl_fn.loc31_31.5: = specific_impl_function %impl.elem3.loc31_31.2, @Iterate.WithSelf.Next(%Iterate.facet) [symbolic = %specific_impl_fn.loc31_31.5 (constants.%specific_impl_fn.7c6)] -// 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.567)] -// CHECK:STDOUT: %.loc31_31.15: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc31_31.15 (constants.%.c3e)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.55f)] -// CHECK:STDOUT: %impl.elem0.loc31_31.2: @Test.%.loc31_31.15 (%.c3e) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc31_31.2 (constants.%impl.elem0.38e)] -// CHECK:STDOUT: %specific_impl_fn.loc31_31.6: = specific_impl_function %impl.elem0.loc31_31.2, @Destroy.WithSelf.Op(%impl.elem1) [symbolic = %specific_impl_fn.loc31_31.6 (constants.%specific_impl_fn.3a8)] +// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.530)] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.10a)] +// CHECK:STDOUT: %.loc31_31.14: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet [symbolic = %.loc31_31.14 (constants.%.df57)] +// CHECK:STDOUT: %impl.elem3.loc31_31.2: @Test.%.loc31_31.14 (%.df57) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc31_31.2 (constants.%impl.elem3.199)] +// CHECK:STDOUT: %specific_impl_fn.loc31_31.5: = specific_impl_function %impl.elem3.loc31_31.2, @Iterate.WithSelf.Next(%Iterate.facet) [symbolic = %specific_impl_fn.loc31_31.5 (constants.%specific_impl_fn.169)] +// 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.e7e)] +// CHECK:STDOUT: %.loc31_31.15: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc31_31.15 (constants.%.bc1)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.f37)] +// CHECK:STDOUT: %impl.elem0.loc31_31.2: @Test.%.loc31_31.15 (%.bc1) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc31_31.2 (constants.%impl.elem0.c7c)] +// CHECK:STDOUT: %specific_impl_fn.loc31_31.6: = specific_impl_function %impl.elem0.loc31_31.2, @Destroy.WithSelf.Op(%impl.elem1) [symbolic = %specific_impl_fn.loc31_31.6 (constants.%specific_impl_fn.cd3)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%r.param: @Test.%R.as_type.loc27_67.1 (%R.as_type.e1d)) { +// CHECK:STDOUT: fn(%r.param: @Test.%R.as_type.loc27_67.1 (%R.as_type.a62)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.94b = value_binding_pattern i [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.e41 = value_binding_pattern i [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %r.ref: @Test.%R.as_type.loc27_67.1 (%R.as_type.e1d) = name_ref r, %r -// CHECK:STDOUT: %impl.elem2.loc31_31.1: @Test.%.loc31_31.13 (%.89c) = impl_witness_access constants.%Iterate.lookup_impl_witness.135, element2 [symbolic = %impl.elem2.loc31_31.2 (constants.%impl.elem2.488)] +// CHECK:STDOUT: %r.ref: @Test.%R.as_type.loc27_67.1 (%R.as_type.a62) = name_ref r, %r +// CHECK:STDOUT: %impl.elem2.loc31_31.1: @Test.%.loc31_31.13 (%.a27) = impl_witness_access constants.%Iterate.lookup_impl_witness.8b4, element2 [symbolic = %impl.elem2.loc31_31.2 (constants.%impl.elem2.7c0)] // CHECK:STDOUT: %bound_method.loc31_31.1: = bound_method %r.ref, %impl.elem2.loc31_31.1 -// CHECK:STDOUT: %specific_impl_fn.loc31_31.1: = specific_impl_function %impl.elem2.loc31_31.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.dca) [symbolic = %specific_impl_fn.loc31_31.4 (constants.%specific_impl_fn.5a0)] +// CHECK:STDOUT: %specific_impl_fn.loc31_31.1: = specific_impl_function %impl.elem2.loc31_31.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.b19) [symbolic = %specific_impl_fn.loc31_31.4 (constants.%specific_impl_fn.e23)] // CHECK:STDOUT: %bound_method.loc31_31.2: = bound_method %r.ref, %specific_impl_fn.loc31_31.1 -// CHECK:STDOUT: %var: ref @Test.%as_type (%as_type.470) = var invalid -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @Test.%as_type (%as_type.470) to %var = call %bound_method.loc31_31.2(%r.ref) +// CHECK:STDOUT: %var: ref @Test.%as_type (%as_type.862) = var invalid +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @Test.%as_type (%as_type.862) to %var = call %bound_method.loc31_31.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.loc31: @Test.%ptr (%ptr.ce1) = addr_of %var -// CHECK:STDOUT: %impl.elem3.loc31_31.1: @Test.%.loc31_31.14 (%.503) = impl_witness_access constants.%Iterate.lookup_impl_witness.135, element3 [symbolic = %impl.elem3.loc31_31.2 (constants.%impl.elem3.3bc)] +// CHECK:STDOUT: %addr.loc31: @Test.%ptr (%ptr.530) = addr_of %var +// CHECK:STDOUT: %impl.elem3.loc31_31.1: @Test.%.loc31_31.14 (%.df57) = impl_witness_access constants.%Iterate.lookup_impl_witness.8b4, element3 [symbolic = %impl.elem3.loc31_31.2 (constants.%impl.elem3.199)] // CHECK:STDOUT: %bound_method.loc31_31.3: = bound_method %r.ref, %impl.elem3.loc31_31.1 -// CHECK:STDOUT: %.loc31_31.1: %Destroy.type = converted constants.%as_type.470, constants.%impl.elem1.b38 [symbolic = %impl.elem1 (constants.%impl.elem1.b38)] -// CHECK:STDOUT: %specific_impl_fn.loc31_31.2: = specific_impl_function %impl.elem3.loc31_31.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.dca) [symbolic = %specific_impl_fn.loc31_31.5 (constants.%specific_impl_fn.7c6)] +// CHECK:STDOUT: %.loc31_31.1: %Destroy.type = converted constants.%as_type.862, constants.%impl.elem1.46a [symbolic = %impl.elem1 (constants.%impl.elem1.46a)] +// CHECK:STDOUT: %specific_impl_fn.loc31_31.2: = specific_impl_function %impl.elem3.loc31_31.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.b19) [symbolic = %specific_impl_fn.loc31_31.5 (constants.%specific_impl_fn.169)] // CHECK:STDOUT: %bound_method.loc31_31.4: = bound_method %r.ref, %specific_impl_fn.loc31_31.2 -// CHECK:STDOUT: %.loc31_31.2: ref %Optional.fb3 = temporary_storage -// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.fb3 to %.loc31_31.2 = call %bound_method.loc31_31.4(%r.ref, %addr.loc31) -// CHECK:STDOUT: %.loc31_31.3: ref %Optional.fb3 = temporary %.loc31_31.2, %Iterate.WithSelf.Next.call -// CHECK:STDOUT: %.loc31_31.4: %Optional.HasValue.type.475 = specific_constant imports.%Core.import_ref.0b9, @Optional(constants.%OptionalStorage.facet.7ac) [concrete = constants.%Optional.HasValue.c00] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.475 = name_ref HasValue, %.loc31_31.4 [concrete = constants.%Optional.HasValue.c00] +// CHECK:STDOUT: %.loc31_31.2: ref %Optional.552 = temporary_storage +// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.552 to %.loc31_31.2 = call %bound_method.loc31_31.4(%r.ref, %addr.loc31) +// CHECK:STDOUT: %.loc31_31.3: ref %Optional.552 = temporary %.loc31_31.2, %Iterate.WithSelf.Next.call +// CHECK:STDOUT: %.loc31_31.4: %Optional.HasValue.type.109 = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.7ce) [concrete = constants.%Optional.HasValue.605] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.109 = name_ref HasValue, %.loc31_31.4 [concrete = constants.%Optional.HasValue.605] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc31_31.3, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.7ac) [concrete = constants.%Optional.HasValue.specific_fn] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.7ce) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc31_31.5: = bound_method %.loc31_31.3, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc31_31.5: %Optional.fb3 = acquire_value %.loc31_31.3 +// CHECK:STDOUT: %.loc31_31.5: %Optional.552 = acquire_value %.loc31_31.3 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc31_31.5(%.loc31_31.5) // CHECK:STDOUT: %.loc31_31.6: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc31_31.7: bool = converted %Optional.HasValue.call, %.loc31_31.6 // CHECK:STDOUT: if %.loc31_31.7 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc31_31.8: %Optional.Get.type.dd5 = specific_constant imports.%Core.import_ref.61f, @Optional(constants.%OptionalStorage.facet.7ac) [concrete = constants.%Optional.Get.335] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.dd5 = name_ref Get, %.loc31_31.8 [concrete = constants.%Optional.Get.335] +// CHECK:STDOUT: %.loc31_31.8: %Optional.Get.type.135 = specific_constant imports.%Core.import_ref.daba, @Optional(constants.%OptionalStorage.facet.7ce) [concrete = constants.%Optional.Get.5aa] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.135 = name_ref Get, %.loc31_31.8 [concrete = constants.%Optional.Get.5aa] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc31_31.3, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.7ac) [concrete = constants.%Optional.Get.specific_fn] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.7ce) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc31_31.6: = bound_method %.loc31_31.3, %Optional.Get.specific_fn // CHECK:STDOUT: %.loc31_31.9: ref %ValueType = temporary_storage -// CHECK:STDOUT: %.loc31_31.10: %Optional.fb3 = acquire_value %.loc31_31.3 +// CHECK:STDOUT: %.loc31_31.10: %Optional.552 = acquire_value %.loc31_31.3 // CHECK:STDOUT: %Optional.Get.call: init %ValueType to %.loc31_31.9 = call %bound_method.loc31_31.6(%.loc31_31.10) // CHECK:STDOUT: %.loc31_16: type = splice_block %ValueType.ref.loc31 [concrete = constants.%ValueType] { // CHECK:STDOUT: %Cpp.ref.loc31: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -2472,82 +2472,82 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %i.ref: %ValueType = name_ref i, %i // CHECK:STDOUT: %ValueType.cpp_operator.bound: = bound_method %sum.ref, imports.%ValueType.cpp_operator.decl // CHECK:STDOUT: %.loc32_12: ref %ValueType = value_as_ref %i.ref -// CHECK:STDOUT: %addr.loc32: %ptr.fed = addr_of %.loc32_12 -// CHECK:STDOUT: %.loc32_9.1: %ptr.140 = as_compatible %addr.loc32 -// CHECK:STDOUT: %.loc32_9.2: %ptr.140 = converted %addr.loc32, %.loc32_9.1 +// CHECK:STDOUT: %addr.loc32: %ptr.9d3 = addr_of %.loc32_12 +// CHECK:STDOUT: %.loc32_9.1: %ptr.32e = as_compatible %addr.loc32 +// CHECK:STDOUT: %.loc32_9.2: %ptr.32e = converted %addr.loc32, %.loc32_9.1 // CHECK:STDOUT: %operator_PlusEqual__carbon_thunk.call: ref %ValueType = call imports.%operator_PlusEqual__carbon_thunk.decl(%sum.ref, %.loc32_9.2) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %ValueType.Op.bound.loc31: = bound_method %.loc31_31.11, constants.%ValueType.Op.1edc3c.1 +// CHECK:STDOUT: %ValueType.Op.bound.loc31: = bound_method %.loc31_31.11, constants.%ValueType.Op.4c94b9.1 // 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_31.11, %Op.ref.loc31 // CHECK:STDOUT: %ValueType.cpp_destructor.call.loc31: init %empty_tuple.type = call %ValueType.cpp_destructor.bound.loc31(%.loc31_31.11) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc31_31.3, constants.%Destroy.Op.2dd605.6 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc31_31.3, constants.%Destroy.Op.1a2547.6 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc31_31.3) -// CHECK:STDOUT: %impl.elem0.loc31_31.1: @Test.%.loc31_31.15 (%.c3e) = impl_witness_access constants.%Destroy.lookup_impl_witness.55f, element0 [symbolic = %impl.elem0.loc31_31.2 (constants.%impl.elem0.38e)] +// CHECK:STDOUT: %impl.elem0.loc31_31.1: @Test.%.loc31_31.15 (%.bc1) = impl_witness_access constants.%Destroy.lookup_impl_witness.f37, element0 [symbolic = %impl.elem0.loc31_31.2 (constants.%impl.elem0.c7c)] // CHECK:STDOUT: %bound_method.loc31_31.7: = bound_method %var, %impl.elem0.loc31_31.1 -// CHECK:STDOUT: %specific_impl_fn.loc31_31.3: = specific_impl_function %impl.elem0.loc31_31.1, @Destroy.WithSelf.Op(constants.%impl.elem1.b38) [symbolic = %specific_impl_fn.loc31_31.6 (constants.%specific_impl_fn.3a8)] +// CHECK:STDOUT: %specific_impl_fn.loc31_31.3: = specific_impl_function %impl.elem0.loc31_31.1, @Destroy.WithSelf.Op(constants.%impl.elem1.46a) [symbolic = %specific_impl_fn.loc31_31.6 (constants.%specific_impl_fn.cd3)] // CHECK:STDOUT: %bound_method.loc31_31.8: = bound_method %var, %specific_impl_fn.loc31_31.3 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc31_31.8(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_31.1(%self.param: ref %MaybeUnformed.d14) { +// CHECK:STDOUT: fn @Destroy.Op.loc31_31.1(%self.param: ref %MaybeUnformed.669) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.Op.loc31_31.2(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_31.3(%self.param: ref %struct_type.value.has_value.330) { +// CHECK:STDOUT: fn @Destroy.Op.loc31_31.3(%self.param: ref %struct_type.value.has_value.5a1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_31.4(%self.param: ref %DefaultOptionalStorage.046) { +// CHECK:STDOUT: fn @Destroy.Op.loc31_31.4(%self.param: ref %DefaultOptionalStorage.257) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc31_31.5(%self.param: ref %Optional.fb3) { +// CHECK:STDOUT: fn @Destroy.Op.loc31_31.5(%self.param: ref %Optional.552) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%R.bd8) { -// CHECK:STDOUT: %R.loc27_10.1 => constants.%R.bd8 -// CHECK:STDOUT: %R.as_type.loc27_67.1 => constants.%R.as_type.e1d -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b93 +// CHECK:STDOUT: specific @Test(constants.%R.623) { +// CHECK:STDOUT: %R.loc27_10.1 => constants.%R.623 +// CHECK:STDOUT: %R.as_type.loc27_67.1 => constants.%R.as_type.a62 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.725 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%facet_value.5f8) { -// CHECK:STDOUT: %R.loc27_10.1 => constants.%facet_value.5f8 +// CHECK:STDOUT: specific @Test(constants.%facet_value.00d) { +// CHECK:STDOUT: %R.loc27_10.1 => constants.%facet_value.00d // CHECK:STDOUT: %R.as_type.loc27_67.1 => constants.%ConstRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.88d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.025 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc27 => constants.%complete_type.357 -// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.5a2 -// CHECK:STDOUT: %Iterate.facet => constants.%Iterate.facet.bdd -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.e45 -// CHECK:STDOUT: %.loc31_31.13 => constants.%.cc1 -// CHECK:STDOUT: %impl.elem2.loc31_31.2 => constants.%R.as_type.as.Iterate.impl.NewCursor.1c2 +// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.466 +// CHECK:STDOUT: %Iterate.facet => constants.%Iterate.facet.099 +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.e43 +// CHECK:STDOUT: %.loc31_31.13 => constants.%.da4e +// CHECK:STDOUT: %impl.elem2.loc31_31.2 => constants.%R.as_type.as.Iterate.impl.NewCursor.a27 // CHECK:STDOUT: %specific_impl_fn.loc31_31.4 => constants.%R.as_type.as.Iterate.impl.NewCursor.specific_fn -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.c5c -// CHECK:STDOUT: %as_type => constants.%tuple.type.a15 -// CHECK:STDOUT: %require_complete.1 => constants.%complete_type.443 -// CHECK:STDOUT: %ptr => constants.%ptr.261 -// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.3db -// CHECK:STDOUT: %.loc31_31.14 => constants.%.c8f -// CHECK:STDOUT: %impl.elem3.loc31_31.2 => constants.%R.as_type.as.Iterate.impl.Next.7bf +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.777 +// CHECK:STDOUT: %as_type => constants.%tuple.type.df8 +// CHECK:STDOUT: %require_complete.1 => constants.%complete_type.e35 +// CHECK:STDOUT: %ptr => constants.%ptr.fc0 +// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.be4 +// CHECK:STDOUT: %.loc31_31.14 => constants.%.4b8 +// CHECK:STDOUT: %impl.elem3.loc31_31.2 => constants.%R.as_type.as.Iterate.impl.Next.bf3 // CHECK:STDOUT: %specific_impl_fn.loc31_31.5 => constants.%R.as_type.as.Iterate.impl.Next.specific_fn -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.6c1 -// CHECK:STDOUT: %.loc31_31.15 => constants.%.3f3 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e20f1f.7 -// CHECK:STDOUT: %impl.elem0.loc31_31.2 => constants.%Destroy.Op.2dd605.7 -// CHECK:STDOUT: %specific_impl_fn.loc31_31.6 => constants.%Destroy.Op.2dd605.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.589 +// CHECK:STDOUT: %.loc31_31.15 => constants.%.4e1 +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.7 +// CHECK:STDOUT: %impl.elem0.loc31_31.2 => constants.%Destroy.Op.1a2547.7 +// CHECK:STDOUT: %specific_impl_fn.loc31_31.6 => constants.%Destroy.Op.1a2547.7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_adl_returns_different_types_mutable.carbon @@ -2558,75 +2558,75 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %facet_type: type = facet_type <@Destroy & @Copy> [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Optional.Get.type.d22: type = fn_type @Optional.Get, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.Get.6fc: %Optional.Get.type.d22 = struct_value () [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.498: type = fn_type @Optional.HasValue, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.bf8: %Optional.HasValue.type.498 = struct_value () [symbolic] -// CHECK:STDOUT: %T.cb0: %facet_type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.f8b: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.type.46f: type = fn_type @T.as_type.as.OptionalStorage.impl.Get, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.8c2: %T.as_type.as.OptionalStorage.impl.Get.type.46f = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.type.0ae: type = fn_type @T.as_type.as.OptionalStorage.impl.Has, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.e0f: %T.as_type.as.OptionalStorage.impl.Has.type.0ae = struct_value () [symbolic] -// CHECK:STDOUT: %.Self.e31: %Iterate.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.732: = lookup_impl_witness %.Self.e31, @Iterate [symbolic_self] -// CHECK:STDOUT: %impl.elem0.03d: %facet_type = impl_witness_access %Iterate.lookup_impl_witness.732, element0 [symbolic_self] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Optional.Get.type.bb9: type = fn_type @Optional.Get, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.Get.fa1: %Optional.Get.type.bb9 = struct_value () [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.e9e: type = fn_type @Optional.HasValue, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.6cd: %Optional.HasValue.type.e9e = struct_value () [symbolic] +// CHECK:STDOUT: %T.283: %facet_type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.d50: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.type.029: type = fn_type @T.as_type.as.OptionalStorage.impl.Get, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.cb5: %T.as_type.as.OptionalStorage.impl.Get.type.029 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.type.4bc: type = fn_type @T.as_type.as.OptionalStorage.impl.Has, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.dc2: %T.as_type.as.OptionalStorage.impl.Has.type.4bc = struct_value () [symbolic] +// CHECK:STDOUT: %.Self.35d: %Iterate.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.b37: = lookup_impl_witness %.Self.35d, @Iterate [symbolic_self] +// CHECK:STDOUT: %impl.elem0.903: %facet_type = impl_witness_access %Iterate.lookup_impl_witness.b37, element0 [symbolic_self] // CHECK:STDOUT: %ValueType: type = class_type @ValueType [concrete] -// CHECK:STDOUT: %pattern_type.94b: type = pattern_type %ValueType [concrete] +// CHECK:STDOUT: %pattern_type.e41: type = pattern_type %ValueType [concrete] // CHECK:STDOUT: %ValueType.cpp_destructor.type: type = fn_type @ValueType.cpp_destructor [concrete] // CHECK:STDOUT: %ValueType.cpp_destructor: %ValueType.cpp_destructor.type = struct_value () [concrete] -// CHECK:STDOUT: %ValueType.Op.type.bd116f.1: type = fn_type @ValueType.Op.1 [concrete] -// CHECK:STDOUT: %ValueType.Op.1edc3c.1: %ValueType.Op.type.bd116f.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.031: = custom_witness (%ValueType.Op.1edc3c.1), @Destroy [concrete] -// CHECK:STDOUT: %const.e15: type = const_type %ValueType [concrete] -// CHECK:STDOUT: %ptr.140: type = ptr_type %const.e15 [concrete] -// CHECK:STDOUT: %ptr.fed: type = ptr_type %ValueType [concrete] -// CHECK:STDOUT: %ValueType.Op.type.bd116f.2: type = fn_type @ValueType.Op.2 [concrete] -// CHECK:STDOUT: %ValueType.Op.1edc3c.2: %ValueType.Op.type.bd116f.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.d86: = custom_witness (%ValueType.Op.1edc3c.2), @Copy [concrete] -// CHECK:STDOUT: %facet_value.95f: %facet_type = facet_value %ValueType, (%custom_witness.031, %custom_witness.d86) [concrete] -// CHECK:STDOUT: %Iterate_where.type.6d9: type = facet_type <@Iterate where %impl.elem0.03d = %facet_value.95f> [concrete] -// CHECK:STDOUT: %R.bd8: %Iterate_where.type.6d9 = symbolic_binding R, 0 [symbolic] -// CHECK:STDOUT: %R.as_type.e1d: type = facet_access_type %R.bd8 [symbolic] -// CHECK:STDOUT: %pattern_type.b93: type = pattern_type %R.as_type.e1d [symbolic] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.135: = lookup_impl_witness %R.bd8, @Iterate [symbolic] -// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %R.as_type.e1d, (%Iterate.lookup_impl_witness.135) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.842: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.a4d: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [symbolic] -// CHECK:STDOUT: %.89c: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.842, %Iterate.facet [symbolic] -// CHECK:STDOUT: %impl.elem2.488: %.89c = impl_witness_access %Iterate.lookup_impl_witness.135, element2 [symbolic] -// CHECK:STDOUT: %impl.elem1.b38: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.135, element1 [symbolic] -// CHECK:STDOUT: %as_type.470: type = facet_access_type %impl.elem1.b38 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.5a0: = specific_impl_function %impl.elem2.488, @Iterate.WithSelf.NewCursor(%Iterate.facet) [symbolic] -// CHECK:STDOUT: %ptr.ce1: type = ptr_type %as_type.470 [symbolic] -// CHECK:STDOUT: %.503: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.a4d, %Iterate.facet [symbolic] -// CHECK:STDOUT: %impl.elem3.3bc: %.503 = impl_witness_access %Iterate.lookup_impl_witness.135, element3 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.046: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.95f) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.342: = impl_witness imports.%OptionalStorage.impl_witness_table.041, @T.as_type.as.OptionalStorage.impl(%facet_value.95f) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.52a: %OptionalStorage.type = facet_value %ValueType, (%OptionalStorage.impl_witness.342) [concrete] -// CHECK:STDOUT: %Optional.68d: type = class_type @Optional, @Optional(%OptionalStorage.facet.52a) [concrete] -// CHECK:STDOUT: %specific_impl_fn.7c6: = specific_impl_function %impl.elem3.3bc, @Iterate.WithSelf.Next(%Iterate.facet) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.426: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.52a) [concrete] -// CHECK:STDOUT: %Optional.HasValue.9f3: %Optional.HasValue.type.426 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.1e2: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.52a) [concrete] -// CHECK:STDOUT: %Optional.Get.64e: %Optional.Get.type.1e2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.facet.1a4: %Destroy.type = facet_value %ValueType, (%custom_witness.031) [concrete] -// CHECK:STDOUT: %MaybeUnformed.d14: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.1a4) [concrete] -// CHECK:STDOUT: %struct_type.value.has_value.330: type = struct_type {.value: %MaybeUnformed.d14, .has_value: bool} [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.9f3, @Optional.HasValue(%OptionalStorage.facet.52a) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.64e, @Optional.Get(%OptionalStorage.facet.52a) [concrete] +// CHECK:STDOUT: %ValueType.Op.type.79266b.1: type = fn_type @ValueType.Op.1 [concrete] +// CHECK:STDOUT: %ValueType.Op.4c94b9.1: %ValueType.Op.type.79266b.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.fef: = custom_witness (%ValueType.Op.4c94b9.1), @Destroy [concrete] +// CHECK:STDOUT: %const.773: type = const_type %ValueType [concrete] +// CHECK:STDOUT: %ptr.32e: type = ptr_type %const.773 [concrete] +// CHECK:STDOUT: %ptr.9d3: type = ptr_type %ValueType [concrete] +// CHECK:STDOUT: %ValueType.Op.type.79266b.2: type = fn_type @ValueType.Op.2 [concrete] +// CHECK:STDOUT: %ValueType.Op.4c94b9.2: %ValueType.Op.type.79266b.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.c19: = custom_witness (%ValueType.Op.4c94b9.2), @Copy [concrete] +// CHECK:STDOUT: %facet_value.ccb: %facet_type = facet_value %ValueType, (%custom_witness.fef, %custom_witness.c19) [concrete] +// CHECK:STDOUT: %Iterate_where.type.99d: type = facet_type <@Iterate where %impl.elem0.903 = %facet_value.ccb> [concrete] +// CHECK:STDOUT: %R.623: %Iterate_where.type.99d = symbolic_binding R, 0 [symbolic] +// CHECK:STDOUT: %R.as_type.a62: type = facet_access_type %R.623 [symbolic] +// CHECK:STDOUT: %pattern_type.725: type = pattern_type %R.as_type.a62 [symbolic] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.8b4: = lookup_impl_witness %R.623, @Iterate [symbolic] +// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %R.as_type.a62, (%Iterate.lookup_impl_witness.8b4) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.217: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.10a: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [symbolic] +// CHECK:STDOUT: %.a27: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.217, %Iterate.facet [symbolic] +// CHECK:STDOUT: %impl.elem2.7c0: %.a27 = impl_witness_access %Iterate.lookup_impl_witness.8b4, element2 [symbolic] +// CHECK:STDOUT: %impl.elem1.46a: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.8b4, element1 [symbolic] +// CHECK:STDOUT: %as_type.862: type = facet_access_type %impl.elem1.46a [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e23: = specific_impl_function %impl.elem2.7c0, @Iterate.WithSelf.NewCursor(%Iterate.facet) [symbolic] +// CHECK:STDOUT: %ptr.530: type = ptr_type %as_type.862 [symbolic] +// CHECK:STDOUT: %.df57: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.10a, %Iterate.facet [symbolic] +// CHECK:STDOUT: %impl.elem3.199: %.df57 = impl_witness_access %Iterate.lookup_impl_witness.8b4, element3 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.257: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.ccb) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.3d3: = impl_witness imports.%OptionalStorage.impl_witness_table.6db, @T.as_type.as.OptionalStorage.impl(%facet_value.ccb) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.642: %OptionalStorage.type = facet_value %ValueType, (%OptionalStorage.impl_witness.3d3) [concrete] +// CHECK:STDOUT: %Optional.be6: type = class_type @Optional, @Optional(%OptionalStorage.facet.642) [concrete] +// CHECK:STDOUT: %specific_impl_fn.169: = specific_impl_function %impl.elem3.199, @Iterate.WithSelf.Next(%Iterate.facet) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.2bf: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.642) [concrete] +// CHECK:STDOUT: %Optional.HasValue.cdf: %Optional.HasValue.type.2bf = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.112: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.642) [concrete] +// CHECK:STDOUT: %Optional.Get.6bf: %Optional.Get.type.112 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.facet.306: %Destroy.type = facet_value %ValueType, (%custom_witness.fef) [concrete] +// CHECK:STDOUT: %MaybeUnformed.669: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.306) [concrete] +// CHECK:STDOUT: %struct_type.value.has_value.5a1: type = struct_type {.value: %MaybeUnformed.669, .has_value: bool} [concrete] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.cdf, @Optional.HasValue(%OptionalStorage.facet.642) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.6bf, @Optional.Get(%OptionalStorage.facet.642) [concrete] // CHECK:STDOUT: %ValueType.cpp_operator.type: type = fn_type @ValueType.cpp_operator [concrete] // CHECK:STDOUT: %ValueType.cpp_operator: %ValueType.cpp_operator.type = struct_value () [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.790b3b.6: type = fn_type @Destroy.Op.loc32_31.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.55f: = lookup_impl_witness %impl.elem1.b38, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.567: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.b38) [symbolic] -// CHECK:STDOUT: %.c3e: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.567, %impl.elem1.b38 [symbolic] -// CHECK:STDOUT: %impl.elem0.38e: %.c3e = impl_witness_access %Destroy.lookup_impl_witness.55f, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.3a8: = specific_impl_function %impl.elem0.38e, @Destroy.WithSelf.Op(%impl.elem1.b38) [symbolic] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc32_31.5 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.f37: = lookup_impl_witness %impl.elem1.46a, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.e7e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.46a) [symbolic] +// CHECK:STDOUT: %.bc1: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.e7e, %impl.elem1.46a [symbolic] +// CHECK:STDOUT: %impl.elem0.c7c: %.bc1 = impl_witness_access %Destroy.lookup_impl_witness.f37, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.cd3: = specific_impl_function %impl.elem0.c7c, @Destroy.WithSelf.Op(%impl.elem1.46a) [symbolic] // CHECK:STDOUT: %MutableRange: type = class_type @MutableRange [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2635,15 +2635,15 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: .N = %N // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.0b9: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.498) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.bf8)] -// CHECK:STDOUT: %Core.import_ref.61f: @Optional.%Optional.Get.type (%Optional.Get.type.d22) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.6fc)] -// CHECK:STDOUT: %Core.import_ref.2b5: type = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%DefaultOptionalStorage (constants.%DefaultOptionalStorage.f8b)] -// CHECK:STDOUT: %Core.import_ref.b5a = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Core.import_ref.977 = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Core.import_ref.986: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has.type (%T.as_type.as.OptionalStorage.impl.Has.type.0ae) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has (constants.%T.as_type.as.OptionalStorage.impl.Has.e0f)] -// CHECK:STDOUT: %Core.import_ref.557: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get.type (%T.as_type.as.OptionalStorage.impl.Get.type.46f) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get (constants.%T.as_type.as.OptionalStorage.impl.Get.8c2)] -// CHECK:STDOUT: %Core.import_ref.999 = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.041 = impl_witness_table (%Core.import_ref.2b5, %Core.import_ref.b5a, %Core.import_ref.977, %Core.import_ref.986, %Core.import_ref.557, %Core.import_ref.999), @T.as_type.as.OptionalStorage.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.bb6: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.e9e) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.6cd)] +// CHECK:STDOUT: %Core.import_ref.daba: @Optional.%Optional.Get.type (%Optional.Get.type.bb9) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.fa1)] +// CHECK:STDOUT: %Core.import_ref.0c6: type = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%DefaultOptionalStorage (constants.%DefaultOptionalStorage.d50)] +// CHECK:STDOUT: %Core.import_ref.c86 = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Core.import_ref.91a = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Core.import_ref.c68: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has.type (%T.as_type.as.OptionalStorage.impl.Has.type.4bc) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has (constants.%T.as_type.as.OptionalStorage.impl.Has.dc2)] +// CHECK:STDOUT: %Core.import_ref.a83: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get.type (%T.as_type.as.OptionalStorage.impl.Get.type.029) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get (constants.%T.as_type.as.OptionalStorage.impl.Get.cb5)] +// CHECK:STDOUT: %Core.import_ref.aaa = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.6db = impl_witness_table (%Core.import_ref.0c6, %Core.import_ref.c86, %Core.import_ref.91a, %Core.import_ref.c68, %Core.import_ref.a83, %Core.import_ref.aaa), @T.as_type.as.OptionalStorage.impl [concrete] // CHECK:STDOUT: %N: = namespace [concrete] { // CHECK:STDOUT: .ValueType = %ValueType.decl // CHECK:STDOUT: .MutableRange = %MutableRange.decl @@ -2668,74 +2668,74 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %MutableRange.decl: type = class_decl @MutableRange [concrete = constants.%MutableRange] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Test(%R.loc28_10.2: %Iterate_where.type.6d9) { +// CHECK:STDOUT: generic fn @Test(%R.loc28_10.2: %Iterate_where.type.99d) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc28_10.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.135)] +// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc28_10.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.8b4)] // CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %R.as_type.loc28_67.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet (constants.%Iterate.facet)] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.842)] -// CHECK:STDOUT: %.loc32_31.13: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet [symbolic = %.loc32_31.13 (constants.%.89c)] -// CHECK:STDOUT: %impl.elem2.loc32_31.2: @Test.%.loc32_31.13 (%.89c) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc32_31.2 (constants.%impl.elem2.488)] -// CHECK:STDOUT: %specific_impl_fn.loc32_31.4: = specific_impl_function %impl.elem2.loc32_31.2, @Iterate.WithSelf.NewCursor(%Iterate.facet) [symbolic = %specific_impl_fn.loc32_31.4 (constants.%specific_impl_fn.5a0)] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.217)] +// CHECK:STDOUT: %.loc32_31.13: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet [symbolic = %.loc32_31.13 (constants.%.a27)] +// CHECK:STDOUT: %impl.elem2.loc32_31.2: @Test.%.loc32_31.13 (%.a27) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc32_31.2 (constants.%impl.elem2.7c0)] +// CHECK:STDOUT: %specific_impl_fn.loc32_31.4: = specific_impl_function %impl.elem2.loc32_31.2, @Iterate.WithSelf.NewCursor(%Iterate.facet) [symbolic = %specific_impl_fn.loc32_31.4 (constants.%specific_impl_fn.e23)] // CHECK:STDOUT: -// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.ce1)] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.a4d)] -// CHECK:STDOUT: %.loc32_31.14: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet [symbolic = %.loc32_31.14 (constants.%.503)] -// CHECK:STDOUT: %impl.elem3.loc32_31.2: @Test.%.loc32_31.14 (%.503) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc32_31.2 (constants.%impl.elem3.3bc)] -// CHECK:STDOUT: %specific_impl_fn.loc32_31.5: = specific_impl_function %impl.elem3.loc32_31.2, @Iterate.WithSelf.Next(%Iterate.facet) [symbolic = %specific_impl_fn.loc32_31.5 (constants.%specific_impl_fn.7c6)] -// 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.567)] -// CHECK:STDOUT: %.loc32_31.15: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc32_31.15 (constants.%.c3e)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.55f)] -// CHECK:STDOUT: %impl.elem0.loc32_31.2: @Test.%.loc32_31.15 (%.c3e) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc32_31.2 (constants.%impl.elem0.38e)] -// CHECK:STDOUT: %specific_impl_fn.loc32_31.6: = specific_impl_function %impl.elem0.loc32_31.2, @Destroy.WithSelf.Op(%impl.elem1) [symbolic = %specific_impl_fn.loc32_31.6 (constants.%specific_impl_fn.3a8)] +// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.530)] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.10a)] +// CHECK:STDOUT: %.loc32_31.14: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet [symbolic = %.loc32_31.14 (constants.%.df57)] +// CHECK:STDOUT: %impl.elem3.loc32_31.2: @Test.%.loc32_31.14 (%.df57) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc32_31.2 (constants.%impl.elem3.199)] +// CHECK:STDOUT: %specific_impl_fn.loc32_31.5: = specific_impl_function %impl.elem3.loc32_31.2, @Iterate.WithSelf.Next(%Iterate.facet) [symbolic = %specific_impl_fn.loc32_31.5 (constants.%specific_impl_fn.169)] +// 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.e7e)] +// CHECK:STDOUT: %.loc32_31.15: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc32_31.15 (constants.%.bc1)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.f37)] +// CHECK:STDOUT: %impl.elem0.loc32_31.2: @Test.%.loc32_31.15 (%.bc1) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc32_31.2 (constants.%impl.elem0.c7c)] +// CHECK:STDOUT: %specific_impl_fn.loc32_31.6: = specific_impl_function %impl.elem0.loc32_31.2, @Destroy.WithSelf.Op(%impl.elem1) [symbolic = %specific_impl_fn.loc32_31.6 (constants.%specific_impl_fn.cd3)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%r.param: @Test.%R.as_type.loc28_67.1 (%R.as_type.e1d)) { +// CHECK:STDOUT: fn(%r.param: @Test.%R.as_type.loc28_67.1 (%R.as_type.a62)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.94b = value_binding_pattern i [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.e41 = value_binding_pattern i [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %r.ref: @Test.%R.as_type.loc28_67.1 (%R.as_type.e1d) = name_ref r, %r -// CHECK:STDOUT: %impl.elem2.loc32_31.1: @Test.%.loc32_31.13 (%.89c) = impl_witness_access constants.%Iterate.lookup_impl_witness.135, element2 [symbolic = %impl.elem2.loc32_31.2 (constants.%impl.elem2.488)] +// CHECK:STDOUT: %r.ref: @Test.%R.as_type.loc28_67.1 (%R.as_type.a62) = name_ref r, %r +// CHECK:STDOUT: %impl.elem2.loc32_31.1: @Test.%.loc32_31.13 (%.a27) = impl_witness_access constants.%Iterate.lookup_impl_witness.8b4, element2 [symbolic = %impl.elem2.loc32_31.2 (constants.%impl.elem2.7c0)] // CHECK:STDOUT: %bound_method.loc32_31.1: = bound_method %r.ref, %impl.elem2.loc32_31.1 -// CHECK:STDOUT: %specific_impl_fn.loc32_31.1: = specific_impl_function %impl.elem2.loc32_31.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet) [symbolic = %specific_impl_fn.loc32_31.4 (constants.%specific_impl_fn.5a0)] +// CHECK:STDOUT: %specific_impl_fn.loc32_31.1: = specific_impl_function %impl.elem2.loc32_31.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet) [symbolic = %specific_impl_fn.loc32_31.4 (constants.%specific_impl_fn.e23)] // CHECK:STDOUT: %bound_method.loc32_31.2: = bound_method %r.ref, %specific_impl_fn.loc32_31.1 -// CHECK:STDOUT: %var: ref @Test.%as_type (%as_type.470) = var invalid -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @Test.%as_type (%as_type.470) to %var = call %bound_method.loc32_31.2(%r.ref) +// CHECK:STDOUT: %var: ref @Test.%as_type (%as_type.862) = var invalid +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @Test.%as_type (%as_type.862) to %var = call %bound_method.loc32_31.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.loc32: @Test.%ptr (%ptr.ce1) = addr_of %var -// CHECK:STDOUT: %impl.elem3.loc32_31.1: @Test.%.loc32_31.14 (%.503) = impl_witness_access constants.%Iterate.lookup_impl_witness.135, element3 [symbolic = %impl.elem3.loc32_31.2 (constants.%impl.elem3.3bc)] +// CHECK:STDOUT: %addr.loc32: @Test.%ptr (%ptr.530) = addr_of %var +// CHECK:STDOUT: %impl.elem3.loc32_31.1: @Test.%.loc32_31.14 (%.df57) = impl_witness_access constants.%Iterate.lookup_impl_witness.8b4, element3 [symbolic = %impl.elem3.loc32_31.2 (constants.%impl.elem3.199)] // CHECK:STDOUT: %bound_method.loc32_31.3: = bound_method %r.ref, %impl.elem3.loc32_31.1 -// CHECK:STDOUT: %.loc32_31.1: %Destroy.type = converted constants.%as_type.470, constants.%impl.elem1.b38 [symbolic = %impl.elem1 (constants.%impl.elem1.b38)] -// CHECK:STDOUT: %specific_impl_fn.loc32_31.2: = specific_impl_function %impl.elem3.loc32_31.1, @Iterate.WithSelf.Next(constants.%Iterate.facet) [symbolic = %specific_impl_fn.loc32_31.5 (constants.%specific_impl_fn.7c6)] +// CHECK:STDOUT: %.loc32_31.1: %Destroy.type = converted constants.%as_type.862, constants.%impl.elem1.46a [symbolic = %impl.elem1 (constants.%impl.elem1.46a)] +// CHECK:STDOUT: %specific_impl_fn.loc32_31.2: = specific_impl_function %impl.elem3.loc32_31.1, @Iterate.WithSelf.Next(constants.%Iterate.facet) [symbolic = %specific_impl_fn.loc32_31.5 (constants.%specific_impl_fn.169)] // CHECK:STDOUT: %bound_method.loc32_31.4: = bound_method %r.ref, %specific_impl_fn.loc32_31.2 -// CHECK:STDOUT: %.loc32_31.2: ref %Optional.68d = temporary_storage -// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.68d to %.loc32_31.2 = call %bound_method.loc32_31.4(%r.ref, %addr.loc32) -// CHECK:STDOUT: %.loc32_31.3: ref %Optional.68d = temporary %.loc32_31.2, %Iterate.WithSelf.Next.call -// CHECK:STDOUT: %.loc32_31.4: %Optional.HasValue.type.426 = specific_constant imports.%Core.import_ref.0b9, @Optional(constants.%OptionalStorage.facet.52a) [concrete = constants.%Optional.HasValue.9f3] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.426 = name_ref HasValue, %.loc32_31.4 [concrete = constants.%Optional.HasValue.9f3] +// CHECK:STDOUT: %.loc32_31.2: ref %Optional.be6 = temporary_storage +// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.be6 to %.loc32_31.2 = call %bound_method.loc32_31.4(%r.ref, %addr.loc32) +// CHECK:STDOUT: %.loc32_31.3: ref %Optional.be6 = temporary %.loc32_31.2, %Iterate.WithSelf.Next.call +// CHECK:STDOUT: %.loc32_31.4: %Optional.HasValue.type.2bf = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.642) [concrete = constants.%Optional.HasValue.cdf] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.2bf = name_ref HasValue, %.loc32_31.4 [concrete = constants.%Optional.HasValue.cdf] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc32_31.3, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.52a) [concrete = constants.%Optional.HasValue.specific_fn] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.642) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc32_31.5: = bound_method %.loc32_31.3, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc32_31.5: %Optional.68d = acquire_value %.loc32_31.3 +// CHECK:STDOUT: %.loc32_31.5: %Optional.be6 = acquire_value %.loc32_31.3 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc32_31.5(%.loc32_31.5) // CHECK:STDOUT: %.loc32_31.6: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc32_31.7: bool = converted %Optional.HasValue.call, %.loc32_31.6 // CHECK:STDOUT: if %.loc32_31.7 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc32_31.8: %Optional.Get.type.1e2 = specific_constant imports.%Core.import_ref.61f, @Optional(constants.%OptionalStorage.facet.52a) [concrete = constants.%Optional.Get.64e] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.1e2 = name_ref Get, %.loc32_31.8 [concrete = constants.%Optional.Get.64e] +// CHECK:STDOUT: %.loc32_31.8: %Optional.Get.type.112 = specific_constant imports.%Core.import_ref.daba, @Optional(constants.%OptionalStorage.facet.642) [concrete = constants.%Optional.Get.6bf] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.112 = name_ref Get, %.loc32_31.8 [concrete = constants.%Optional.Get.6bf] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc32_31.3, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.52a) [concrete = constants.%Optional.Get.specific_fn] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.642) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc32_31.6: = bound_method %.loc32_31.3, %Optional.Get.specific_fn // CHECK:STDOUT: %.loc32_31.9: ref %ValueType = temporary_storage -// CHECK:STDOUT: %.loc32_31.10: %Optional.68d = acquire_value %.loc32_31.3 +// CHECK:STDOUT: %.loc32_31.10: %Optional.be6 = acquire_value %.loc32_31.3 // CHECK:STDOUT: %Optional.Get.call: init %ValueType to %.loc32_31.9 = call %bound_method.loc32_31.6(%.loc32_31.10) // CHECK:STDOUT: %.loc32_16: type = splice_block %ValueType.ref.loc32 [concrete = constants.%ValueType] { // CHECK:STDOUT: %Cpp.ref.loc32: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -2749,54 +2749,54 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %i.ref: %ValueType = name_ref i, %i // CHECK:STDOUT: %ValueType.cpp_operator.bound: = bound_method %sum.ref, imports.%ValueType.cpp_operator.decl // CHECK:STDOUT: %.loc33_12: ref %ValueType = value_as_ref %i.ref -// CHECK:STDOUT: %addr.loc33: %ptr.fed = addr_of %.loc33_12 -// CHECK:STDOUT: %.loc33_9.1: %ptr.140 = as_compatible %addr.loc33 -// CHECK:STDOUT: %.loc33_9.2: %ptr.140 = converted %addr.loc33, %.loc33_9.1 +// CHECK:STDOUT: %addr.loc33: %ptr.9d3 = addr_of %.loc33_12 +// CHECK:STDOUT: %.loc33_9.1: %ptr.32e = as_compatible %addr.loc33 +// CHECK:STDOUT: %.loc33_9.2: %ptr.32e = converted %addr.loc33, %.loc33_9.1 // CHECK:STDOUT: %operator_PlusEqual__carbon_thunk.call: ref %ValueType = call imports.%operator_PlusEqual__carbon_thunk.decl(%sum.ref, %.loc33_9.2) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %ValueType.Op.bound.loc32: = bound_method %.loc32_31.11, constants.%ValueType.Op.1edc3c.1 +// CHECK:STDOUT: %ValueType.Op.bound.loc32: = bound_method %.loc32_31.11, constants.%ValueType.Op.4c94b9.1 // CHECK:STDOUT: %Op.ref.loc32: %ValueType.cpp_destructor.type = name_ref Op, imports.%ValueType.cpp_destructor.decl [concrete = constants.%ValueType.cpp_destructor] // CHECK:STDOUT: %ValueType.cpp_destructor.bound.loc32: = bound_method %.loc32_31.11, %Op.ref.loc32 // CHECK:STDOUT: %ValueType.cpp_destructor.call.loc32: init %empty_tuple.type = call %ValueType.cpp_destructor.bound.loc32(%.loc32_31.11) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc32_31.3, constants.%Destroy.Op.2dd605.6 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc32_31.3, constants.%Destroy.Op.1a2547.6 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc32_31.3) -// CHECK:STDOUT: %impl.elem0.loc32_31.1: @Test.%.loc32_31.15 (%.c3e) = impl_witness_access constants.%Destroy.lookup_impl_witness.55f, element0 [symbolic = %impl.elem0.loc32_31.2 (constants.%impl.elem0.38e)] +// CHECK:STDOUT: %impl.elem0.loc32_31.1: @Test.%.loc32_31.15 (%.bc1) = impl_witness_access constants.%Destroy.lookup_impl_witness.f37, element0 [symbolic = %impl.elem0.loc32_31.2 (constants.%impl.elem0.c7c)] // CHECK:STDOUT: %bound_method.loc32_31.7: = bound_method %var, %impl.elem0.loc32_31.1 -// CHECK:STDOUT: %specific_impl_fn.loc32_31.3: = specific_impl_function %impl.elem0.loc32_31.1, @Destroy.WithSelf.Op(constants.%impl.elem1.b38) [symbolic = %specific_impl_fn.loc32_31.6 (constants.%specific_impl_fn.3a8)] +// CHECK:STDOUT: %specific_impl_fn.loc32_31.3: = specific_impl_function %impl.elem0.loc32_31.1, @Destroy.WithSelf.Op(constants.%impl.elem1.46a) [symbolic = %specific_impl_fn.loc32_31.6 (constants.%specific_impl_fn.cd3)] // CHECK:STDOUT: %bound_method.loc32_31.8: = bound_method %var, %specific_impl_fn.loc32_31.3 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc32_31.8(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc32_31.1(%self.param: ref %MaybeUnformed.d14) { +// CHECK:STDOUT: fn @Destroy.Op.loc32_31.1(%self.param: ref %MaybeUnformed.669) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.Op.loc32_31.2(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc32_31.3(%self.param: ref %struct_type.value.has_value.330) { +// CHECK:STDOUT: fn @Destroy.Op.loc32_31.3(%self.param: ref %struct_type.value.has_value.5a1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc32_31.4(%self.param: ref %DefaultOptionalStorage.046) { +// CHECK:STDOUT: fn @Destroy.Op.loc32_31.4(%self.param: ref %DefaultOptionalStorage.257) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc32_31.5(%self.param: ref %Optional.68d) { +// CHECK:STDOUT: fn @Destroy.Op.loc32_31.5(%self.param: ref %Optional.be6) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%R.bd8) { -// CHECK:STDOUT: %R.loc28_10.1 => constants.%R.bd8 -// CHECK:STDOUT: %R.as_type.loc28_67.1 => constants.%R.as_type.e1d -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b93 +// CHECK:STDOUT: specific @Test(constants.%R.623) { +// CHECK:STDOUT: %R.loc28_10.1 => constants.%R.623 +// CHECK:STDOUT: %R.as_type.loc28_67.1 => constants.%R.as_type.a62 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.725 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_adl_overloads.carbon @@ -2807,153 +2807,153 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %facet_type: type = facet_type <@Destroy & @Copy> [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %T.4e7: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Optional.Get.type.d22: type = fn_type @Optional.Get, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.Get.6fc: %Optional.Get.type.d22 = struct_value () [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.498: type = fn_type @Optional.HasValue, @Optional(%T.4e7) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.bf8: %Optional.HasValue.type.498 = struct_value () [symbolic] -// CHECK:STDOUT: %T.cb0: %facet_type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.f8b: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.type.46f: type = fn_type @T.as_type.as.OptionalStorage.impl.Get, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.8c2: %T.as_type.as.OptionalStorage.impl.Get.type.46f = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.type.0ae: type = fn_type @T.as_type.as.OptionalStorage.impl.Has, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.e0f: %T.as_type.as.OptionalStorage.impl.Has.type.0ae = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.type.87a: type = fn_type @T.as_type.as.OptionalStorage.impl.Some, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.898: %T.as_type.as.OptionalStorage.impl.Some.type.87a = struct_value () [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.type.ceb: type = fn_type @T.as_type.as.OptionalStorage.impl.None, @T.as_type.as.OptionalStorage.impl(%T.cb0) [symbolic] -// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.9dd: %T.as_type.as.OptionalStorage.impl.None.type.ceb = struct_value () [symbolic] -// CHECK:STDOUT: %.Self.e31: %Iterate.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.732: = lookup_impl_witness %.Self.e31, @Iterate [symbolic_self] -// CHECK:STDOUT: %impl.elem0.03d: %facet_type = impl_witness_access %Iterate.lookup_impl_witness.732, element0 [symbolic_self] +// CHECK:STDOUT: %T.220: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %Optional.Get.type.bb9: type = fn_type @Optional.Get, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.Get.fa1: %Optional.Get.type.bb9 = struct_value () [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.e9e: type = fn_type @Optional.HasValue, @Optional(%T.220) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.6cd: %Optional.HasValue.type.e9e = struct_value () [symbolic] +// CHECK:STDOUT: %T.283: %facet_type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.d50: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.type.029: type = fn_type @T.as_type.as.OptionalStorage.impl.Get, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Get.cb5: %T.as_type.as.OptionalStorage.impl.Get.type.029 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.type.4bc: type = fn_type @T.as_type.as.OptionalStorage.impl.Has, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Has.dc2: %T.as_type.as.OptionalStorage.impl.Has.type.4bc = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.type.800: type = fn_type @T.as_type.as.OptionalStorage.impl.Some, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.Some.e83: %T.as_type.as.OptionalStorage.impl.Some.type.800 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.type.300: type = fn_type @T.as_type.as.OptionalStorage.impl.None, @T.as_type.as.OptionalStorage.impl(%T.283) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalStorage.impl.None.f54: %T.as_type.as.OptionalStorage.impl.None.type.300 = struct_value () [symbolic] +// CHECK:STDOUT: %.Self.35d: %Iterate.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.b37: = lookup_impl_witness %.Self.35d, @Iterate [symbolic_self] +// CHECK:STDOUT: %impl.elem0.903: %facet_type = impl_witness_access %Iterate.lookup_impl_witness.b37, element0 [symbolic_self] // CHECK:STDOUT: %ValueType: type = class_type @ValueType [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.94b: type = pattern_type %ValueType [concrete] +// CHECK:STDOUT: %pattern_type.e41: type = pattern_type %ValueType [concrete] // CHECK:STDOUT: %ValueType.cpp_destructor.type: type = fn_type @ValueType.cpp_destructor [concrete] // CHECK:STDOUT: %ValueType.cpp_destructor: %ValueType.cpp_destructor.type = struct_value () [concrete] -// CHECK:STDOUT: %ValueType.Op.type.bd116f.1: type = fn_type @ValueType.Op.1 [concrete] -// CHECK:STDOUT: %ValueType.Op.1edc3c.1: %ValueType.Op.type.bd116f.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.031: = custom_witness (%ValueType.Op.1edc3c.1), @Destroy [concrete] -// CHECK:STDOUT: %const.e15: type = const_type %ValueType [concrete] -// CHECK:STDOUT: %ptr.140: type = ptr_type %const.e15 [concrete] -// CHECK:STDOUT: %ptr.fed: type = ptr_type %ValueType [concrete] -// CHECK:STDOUT: %ValueType.Op.type.bd116f.2: type = fn_type @ValueType.Op.2 [concrete] -// CHECK:STDOUT: %ValueType.Op.1edc3c.2: %ValueType.Op.type.bd116f.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.d86: = custom_witness (%ValueType.Op.1edc3c.2), @Copy [concrete] -// CHECK:STDOUT: %facet_value.95f: %facet_type = facet_value %ValueType, (%custom_witness.031, %custom_witness.d86) [concrete] -// CHECK:STDOUT: %Iterate_where.type.6d9: type = facet_type <@Iterate where %impl.elem0.03d = %facet_value.95f> [concrete] -// CHECK:STDOUT: %R.bd8: %Iterate_where.type.6d9 = symbolic_binding R, 0 [symbolic] -// CHECK:STDOUT: %R.as_type.e1d: type = facet_access_type %R.bd8 [symbolic] -// CHECK:STDOUT: %pattern_type.b93: type = pattern_type %R.as_type.e1d [symbolic] +// CHECK:STDOUT: %ValueType.Op.type.79266b.1: type = fn_type @ValueType.Op.1 [concrete] +// CHECK:STDOUT: %ValueType.Op.4c94b9.1: %ValueType.Op.type.79266b.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.fef: = custom_witness (%ValueType.Op.4c94b9.1), @Destroy [concrete] +// CHECK:STDOUT: %const.773: type = const_type %ValueType [concrete] +// CHECK:STDOUT: %ptr.32e: type = ptr_type %const.773 [concrete] +// CHECK:STDOUT: %ptr.9d3: type = ptr_type %ValueType [concrete] +// CHECK:STDOUT: %ValueType.Op.type.79266b.2: type = fn_type @ValueType.Op.2 [concrete] +// CHECK:STDOUT: %ValueType.Op.4c94b9.2: %ValueType.Op.type.79266b.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.c19: = custom_witness (%ValueType.Op.4c94b9.2), @Copy [concrete] +// CHECK:STDOUT: %facet_value.ccb: %facet_type = facet_value %ValueType, (%custom_witness.fef, %custom_witness.c19) [concrete] +// CHECK:STDOUT: %Iterate_where.type.99d: type = facet_type <@Iterate where %impl.elem0.903 = %facet_value.ccb> [concrete] +// CHECK:STDOUT: %R.623: %Iterate_where.type.99d = symbolic_binding R, 0 [symbolic] +// CHECK:STDOUT: %R.as_type.a62: type = facet_access_type %R.623 [symbolic] +// CHECK:STDOUT: %pattern_type.725: type = pattern_type %R.as_type.a62 [symbolic] // CHECK:STDOUT: %CppRangeForIterate.type: type = facet_type <@CppRangeForIterate> [concrete] -// CHECK:STDOUT: %.Self.10b: %CppRangeForIterate.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.5bf: = lookup_impl_witness %.Self.10b, @CppRangeForIterate [symbolic_self] -// CHECK:STDOUT: %impl.elem0.d47: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.5bf, element0 [symbolic_self] -// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.bce: = lookup_impl_witness %impl.elem0.d47, @CppUnsafeDeref [symbolic_self] -// CHECK:STDOUT: %impl.elem0.c87: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.bce, element0 [symbolic_self] -// CHECK:STDOUT: %impl.elem1.846: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.5bf, element1 [symbolic_self] -// CHECK:STDOUT: %CppRangeForIterate_where.type: type = facet_type <@CppRangeForIterate where %impl.elem0.d47 impls @Destroy and %impl.elem0.d47 impls @Copy and %impl.elem0.d47 impls @CppUnsafeDeref and %impl.elem0.d47 impls @EqWith, @EqWith(%impl.elem1.846) and %impl.elem0.d47 impls @Inc and %impl.elem0.c87 impls @Destroy and %impl.elem0.c87 impls @Copy and %impl.elem1.846 impls @Destroy and %impl.elem1.846 impls @Copy> [concrete] -// CHECK:STDOUT: %R.6c6: %CppRangeForIterate_where.type = symbolic_binding R, 0 [symbolic] -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.edd1fe.2: = lookup_impl_witness %R.6c6, @CppRangeForIterate [symbolic] -// CHECK:STDOUT: %impl.elem1.bdcd2d.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.edd1fe.2, element1 [symbolic] -// CHECK:STDOUT: %impl.elem0.d5966e.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.edd1fe.2, element0 [symbolic] -// CHECK:STDOUT: %tuple.type.384: type = tuple_type (%impl.elem0.d5966e.2, %impl.elem1.bdcd2d.2) [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.0ba: = lookup_impl_witness %tuple.type.384, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.2fe: %Destroy.type = facet_value %tuple.type.384, (%Destroy.lookup_impl_witness.0ba) [symbolic] -// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.ca4: = lookup_impl_witness %impl.elem0.d5966e.2, @CppUnsafeDeref [symbolic] -// CHECK:STDOUT: %impl.elem0.b10: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.ca4, element0 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.3d8: = lookup_impl_witness %impl.elem0.b10, @Destroy [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.bff: = lookup_impl_witness %impl.elem0.b10, @Copy [symbolic] -// CHECK:STDOUT: %facet_value.a30: %facet_type = facet_value %impl.elem0.b10, (%Destroy.lookup_impl_witness.3d8, %Copy.lookup_impl_witness.bff) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.5b5: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%R.6c6) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.cd2: %R.as_type.as.Iterate.impl.Next.type.5b5 = struct_value () [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.9b6: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%R.6c6) [symbolic] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.b29: %R.as_type.as.Iterate.impl.NewCursor.type.9b6 = struct_value () [symbolic] -// CHECK:STDOUT: %Iterate.lookup_impl_witness.135: = lookup_impl_witness %R.bd8, @Iterate [symbolic] -// CHECK:STDOUT: %Iterate.facet.dca: %Iterate.type = facet_value %R.as_type.e1d, (%Iterate.lookup_impl_witness.135) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.842: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.dca) [symbolic] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.a4d: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.dca) [symbolic] -// CHECK:STDOUT: %.89c: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.842, %Iterate.facet.dca [symbolic] -// CHECK:STDOUT: %impl.elem2.488: %.89c = impl_witness_access %Iterate.lookup_impl_witness.135, element2 [symbolic] -// CHECK:STDOUT: %impl.elem1.b38: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.135, element1 [symbolic] -// CHECK:STDOUT: %as_type.470: type = facet_access_type %impl.elem1.b38 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.5a0: = specific_impl_function %impl.elem2.488, @Iterate.WithSelf.NewCursor(%Iterate.facet.dca) [symbolic] -// CHECK:STDOUT: %ptr.ce1: type = ptr_type %as_type.470 [symbolic] -// CHECK:STDOUT: %.503: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.a4d, %Iterate.facet.dca [symbolic] -// CHECK:STDOUT: %impl.elem3.3bc: %.503 = impl_witness_access %Iterate.lookup_impl_witness.135, element3 [symbolic] -// CHECK:STDOUT: %DefaultOptionalStorage.046: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.95f) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.1ee: = impl_witness imports.%OptionalStorage.impl_witness_table.6f7, @T.as_type.as.OptionalStorage.impl(%facet_value.95f) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.7ac: %OptionalStorage.type = facet_value %ValueType, (%OptionalStorage.impl_witness.1ee) [concrete] -// CHECK:STDOUT: %Optional.fb3: type = class_type @Optional, @Optional(%OptionalStorage.facet.7ac) [concrete] -// CHECK:STDOUT: %specific_impl_fn.7c6: = specific_impl_function %impl.elem3.3bc, @Iterate.WithSelf.Next(%Iterate.facet.dca) [symbolic] -// CHECK:STDOUT: %Optional.HasValue.type.475: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.7ac) [concrete] -// CHECK:STDOUT: %Optional.HasValue.c00: %Optional.HasValue.type.475 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.dd5: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.7ac) [concrete] -// CHECK:STDOUT: %Optional.Get.335: %Optional.Get.type.dd5 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.facet.1a4: %Destroy.type = facet_value %ValueType, (%custom_witness.031) [concrete] -// CHECK:STDOUT: %MaybeUnformed.d14: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.1a4) [concrete] -// CHECK:STDOUT: %struct_type.value.has_value.330: type = struct_type {.value: %MaybeUnformed.d14, .has_value: bool} [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.c00, @Optional.HasValue(%OptionalStorage.facet.7ac) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.335, @Optional.Get(%OptionalStorage.facet.7ac) [concrete] +// CHECK:STDOUT: %.Self.6bd: %CppRangeForIterate.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.143: = lookup_impl_witness %.Self.6bd, @CppRangeForIterate [symbolic_self] +// CHECK:STDOUT: %impl.elem0.109: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.143, element0 [symbolic_self] +// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.712: = lookup_impl_witness %impl.elem0.109, @CppUnsafeDeref [symbolic_self] +// CHECK:STDOUT: %impl.elem0.56a: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.712, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem1.222: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.143, element1 [symbolic_self] +// CHECK:STDOUT: %CppRangeForIterate_where.type: type = facet_type <@CppRangeForIterate where %impl.elem0.109 impls @Destroy and %impl.elem0.109 impls @Copy and %impl.elem0.109 impls @CppUnsafeDeref and %impl.elem0.109 impls @EqWith, @EqWith(%impl.elem1.222) and %impl.elem0.109 impls @Inc and %impl.elem0.56a impls @Destroy and %impl.elem0.56a impls @Copy and %impl.elem1.222 impls @Destroy and %impl.elem1.222 impls @Copy> [concrete] +// CHECK:STDOUT: %R.39b: %CppRangeForIterate_where.type = symbolic_binding R, 0 [symbolic] +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness.7e2712.2: = lookup_impl_witness %R.39b, @CppRangeForIterate [symbolic] +// CHECK:STDOUT: %impl.elem1.7a0bff.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.7e2712.2, element1 [symbolic] +// CHECK:STDOUT: %impl.elem0.73eb7f.2: type = impl_witness_access %CppRangeForIterate.lookup_impl_witness.7e2712.2, element0 [symbolic] +// CHECK:STDOUT: %tuple.type.3cf: type = tuple_type (%impl.elem0.73eb7f.2, %impl.elem1.7a0bff.2) [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.69f: = lookup_impl_witness %tuple.type.3cf, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.593: %Destroy.type = facet_value %tuple.type.3cf, (%Destroy.lookup_impl_witness.69f) [symbolic] +// CHECK:STDOUT: %CppUnsafeDeref.lookup_impl_witness.aa7: = lookup_impl_witness %impl.elem0.73eb7f.2, @CppUnsafeDeref [symbolic] +// CHECK:STDOUT: %impl.elem0.af7: type = impl_witness_access %CppUnsafeDeref.lookup_impl_witness.aa7, element0 [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.ec3: = lookup_impl_witness %impl.elem0.af7, @Destroy [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.a7a: = lookup_impl_witness %impl.elem0.af7, @Copy [symbolic] +// CHECK:STDOUT: %facet_value.194: %facet_type = facet_value %impl.elem0.af7, (%Destroy.lookup_impl_witness.ec3, %Copy.lookup_impl_witness.a7a) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.1f7: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%R.39b) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.0d6: %R.as_type.as.Iterate.impl.Next.type.1f7 = struct_value () [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.36f: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%R.39b) [symbolic] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.29b: %R.as_type.as.Iterate.impl.NewCursor.type.36f = struct_value () [symbolic] +// CHECK:STDOUT: %Iterate.lookup_impl_witness.8b4: = lookup_impl_witness %R.623, @Iterate [symbolic] +// CHECK:STDOUT: %Iterate.facet.b19: %Iterate.type = facet_value %R.as_type.a62, (%Iterate.lookup_impl_witness.8b4) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.217: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.b19) [symbolic] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.10a: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.b19) [symbolic] +// CHECK:STDOUT: %.a27: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.217, %Iterate.facet.b19 [symbolic] +// CHECK:STDOUT: %impl.elem2.7c0: %.a27 = impl_witness_access %Iterate.lookup_impl_witness.8b4, element2 [symbolic] +// CHECK:STDOUT: %impl.elem1.46a: %Destroy.type = impl_witness_access %Iterate.lookup_impl_witness.8b4, element1 [symbolic] +// CHECK:STDOUT: %as_type.862: type = facet_access_type %impl.elem1.46a [symbolic] +// CHECK:STDOUT: %specific_impl_fn.e23: = specific_impl_function %impl.elem2.7c0, @Iterate.WithSelf.NewCursor(%Iterate.facet.b19) [symbolic] +// CHECK:STDOUT: %ptr.530: type = ptr_type %as_type.862 [symbolic] +// CHECK:STDOUT: %.df57: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.10a, %Iterate.facet.b19 [symbolic] +// CHECK:STDOUT: %impl.elem3.199: %.df57 = impl_witness_access %Iterate.lookup_impl_witness.8b4, element3 [symbolic] +// CHECK:STDOUT: %DefaultOptionalStorage.257: type = class_type @DefaultOptionalStorage, @DefaultOptionalStorage(%facet_value.ccb) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.be5: = impl_witness imports.%OptionalStorage.impl_witness_table.655, @T.as_type.as.OptionalStorage.impl(%facet_value.ccb) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.7ce: %OptionalStorage.type = facet_value %ValueType, (%OptionalStorage.impl_witness.be5) [concrete] +// CHECK:STDOUT: %Optional.552: type = class_type @Optional, @Optional(%OptionalStorage.facet.7ce) [concrete] +// CHECK:STDOUT: %specific_impl_fn.169: = specific_impl_function %impl.elem3.199, @Iterate.WithSelf.Next(%Iterate.facet.b19) [symbolic] +// CHECK:STDOUT: %Optional.HasValue.type.109: type = fn_type @Optional.HasValue, @Optional(%OptionalStorage.facet.7ce) [concrete] +// CHECK:STDOUT: %Optional.HasValue.605: %Optional.HasValue.type.109 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.135: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet.7ce) [concrete] +// CHECK:STDOUT: %Optional.Get.5aa: %Optional.Get.type.135 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.facet.306: %Destroy.type = facet_value %ValueType, (%custom_witness.fef) [concrete] +// CHECK:STDOUT: %MaybeUnformed.669: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.306) [concrete] +// CHECK:STDOUT: %struct_type.value.has_value.5a1: type = struct_type {.value: %MaybeUnformed.669, .has_value: bool} [concrete] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.605, @Optional.HasValue(%OptionalStorage.facet.7ce) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.5aa, @Optional.Get(%OptionalStorage.facet.7ce) [concrete] // CHECK:STDOUT: %ValueType.cpp_operator.type: type = fn_type @ValueType.cpp_operator [concrete] // CHECK:STDOUT: %ValueType.cpp_operator: %ValueType.cpp_operator.type = struct_value () [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.790b3b.6: type = fn_type @Destroy.Op.loc39_31.5 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.55f: = lookup_impl_witness %impl.elem1.b38, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.567: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.b38) [symbolic] -// CHECK:STDOUT: %.c3e: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.567, %impl.elem1.b38 [symbolic] -// CHECK:STDOUT: %impl.elem0.38e: %.c3e = impl_witness_access %Destroy.lookup_impl_witness.55f, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.3a8: = specific_impl_function %impl.elem0.38e, @Destroy.WithSelf.Op(%impl.elem1.b38) [symbolic] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.6: type = fn_type @Destroy.Op.loc39_31.5 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.6: %Destroy.Op.type.1d8f74.6 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.f37: = lookup_impl_witness %impl.elem1.46a, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.e7e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%impl.elem1.46a) [symbolic] +// CHECK:STDOUT: %.bc1: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.e7e, %impl.elem1.46a [symbolic] +// CHECK:STDOUT: %impl.elem0.c7c: %.bc1 = impl_witness_access %Destroy.lookup_impl_witness.f37, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.cd3: = specific_impl_function %impl.elem0.c7c, @Destroy.WithSelf.Op(%impl.elem1.46a) [symbolic] // CHECK:STDOUT: %MutableAndConstRange: type = class_type @MutableAndConstRange [concrete] -// CHECK:STDOUT: %pattern_type.e6c: type = pattern_type %MutableAndConstRange [concrete] +// CHECK:STDOUT: %pattern_type.394: type = pattern_type %MutableAndConstRange [concrete] // CHECK:STDOUT: %Iterator: type = class_type @Iterator.1 [concrete] // CHECK:STDOUT: %Begin.type: type = fn_type @Begin [concrete] // CHECK:STDOUT: %Begin: %Begin.type = struct_value () [concrete] // CHECK:STDOUT: %End.type: type = fn_type @End [concrete] // CHECK:STDOUT: %End: %End.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.af9: = custom_witness (%Iterator, %Iterator, %Begin, %End), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %Iterator.Op.type.152308.1: type = fn_type @Iterator.Op.1 [concrete] -// CHECK:STDOUT: %Iterator.Op.b8fe13.1: %Iterator.Op.type.152308.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.016: = custom_witness (%ValueType, %Iterator.Op.b8fe13.1), @CppUnsafeDeref [concrete] -// CHECK:STDOUT: %Iterator.Op.type.152308.2: type = fn_type @Iterator.Op.2 [concrete] -// CHECK:STDOUT: %Iterator.Op.b8fe13.2: %Iterator.Op.type.152308.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.481: = custom_witness (%Iterator.Op.b8fe13.2), @Destroy [concrete] -// CHECK:STDOUT: %Iterator.Op.type.152308.3: type = fn_type @Iterator.Op.3 [concrete] -// CHECK:STDOUT: %Iterator.Op.b8fe13.3: %Iterator.Op.type.152308.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.307: = custom_witness (%Iterator.Op.b8fe13.3), @Copy [concrete] +// CHECK:STDOUT: %custom_witness.a40: = custom_witness (%Iterator, %Iterator, %Begin, %End), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %Iterator.Op.type.fa7609.1: type = fn_type @Iterator.Op.1 [concrete] +// CHECK:STDOUT: %Iterator.Op.549055.1: %Iterator.Op.type.fa7609.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.dd5: = custom_witness (%ValueType, %Iterator.Op.549055.1), @CppUnsafeDeref [concrete] +// CHECK:STDOUT: %Iterator.Op.type.fa7609.2: type = fn_type @Iterator.Op.2 [concrete] +// CHECK:STDOUT: %Iterator.Op.549055.2: %Iterator.Op.type.fa7609.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.04a: = custom_witness (%Iterator.Op.549055.2), @Destroy [concrete] +// CHECK:STDOUT: %Iterator.Op.type.fa7609.3: type = fn_type @Iterator.Op.3 [concrete] +// CHECK:STDOUT: %Iterator.Op.549055.3: %Iterator.Op.type.fa7609.3 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.cfc: = custom_witness (%Iterator.Op.549055.3), @Copy [concrete] // CHECK:STDOUT: %Equal.type: type = fn_type @Equal [concrete] // CHECK:STDOUT: %Equal: %Equal.type = struct_value () [concrete] // CHECK:STDOUT: %NotEqual.type: type = fn_type @NotEqual [concrete] // CHECK:STDOUT: %NotEqual: %NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.571: = custom_witness (%Equal, %NotEqual), @EqWith, @EqWith(%Iterator) [concrete] -// CHECK:STDOUT: %Iterator.Op.type.152308.4: type = fn_type @Iterator.Op.4 [concrete] -// CHECK:STDOUT: %Iterator.Op.b8fe13.4: %Iterator.Op.type.152308.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.6de: = custom_witness (%Iterator.Op.b8fe13.4), @Inc [concrete] -// CHECK:STDOUT: %facet_value.7d8: %CppRangeForIterate_where.type = facet_value %MutableAndConstRange, (%custom_witness.031, %custom_witness.d86, %custom_witness.af9, %custom_witness.481, %custom_witness.307, %custom_witness.016, %custom_witness.571, %custom_witness.6de) [concrete] -// CHECK:STDOUT: %tuple.type.084: type = tuple_type (%Iterator, %Iterator) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.7: type = fn_type @Destroy.Op.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.7: %Destroy.Op.type.790b3b.7 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e20f1f.7: = custom_witness (%Destroy.Op.2dd605.7), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.da4: %Destroy.type = facet_value %tuple.type.084, (%custom_witness.e20f1f.7) [concrete] -// CHECK:STDOUT: %Iterate.impl_witness.902: = impl_witness imports.%Iterate.impl_witness_table.9f0, @R.as_type.as.Iterate.impl(%facet_value.7d8) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.377: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%facet_value.7d8) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.310: %R.as_type.as.Iterate.impl.NewCursor.type.377 = struct_value () [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.3d2: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%facet_value.7d8) [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.06d: %R.as_type.as.Iterate.impl.Next.type.3d2 = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet.227: %Iterate.type = facet_value %MutableAndConstRange, (%Iterate.impl_witness.902) [concrete] -// CHECK:STDOUT: %facet_value.8e0: %Iterate_where.type.6d9 = facet_value %MutableAndConstRange, (%Iterate.impl_witness.902) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.087: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.227) [concrete] -// CHECK:STDOUT: %.4d4: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.087, %Iterate.facet.227 [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.specific_fn: = specific_function %R.as_type.as.Iterate.impl.NewCursor.310, @R.as_type.as.Iterate.impl.NewCursor(%facet_value.7d8) [concrete] -// CHECK:STDOUT: %complete_type.7b5: = complete_type_witness %tuple.type.084 [concrete] -// CHECK:STDOUT: %ptr.877: type = ptr_type %tuple.type.084 [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.f81: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.227) [concrete] -// CHECK:STDOUT: %.728: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.f81, %Iterate.facet.227 [concrete] -// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.specific_fn: = specific_function %R.as_type.as.Iterate.impl.Next.06d, @R.as_type.as.Iterate.impl.Next(%facet_value.7d8) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.1ee: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.da4) [concrete] -// CHECK:STDOUT: %.e5c: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.1ee, %Destroy.facet.da4 [concrete] +// CHECK:STDOUT: %custom_witness.c66: = custom_witness (%Equal, %NotEqual), @EqWith, @EqWith(%Iterator) [concrete] +// CHECK:STDOUT: %Iterator.Op.type.fa7609.4: type = fn_type @Iterator.Op.4 [concrete] +// CHECK:STDOUT: %Iterator.Op.549055.4: %Iterator.Op.type.fa7609.4 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.01a: = custom_witness (%Iterator.Op.549055.4), @Inc [concrete] +// CHECK:STDOUT: %facet_value.88d: %CppRangeForIterate_where.type = facet_value %MutableAndConstRange, (%custom_witness.fef, %custom_witness.c19, %custom_witness.a40, %custom_witness.04a, %custom_witness.cfc, %custom_witness.dd5, %custom_witness.c66, %custom_witness.01a) [concrete] +// CHECK:STDOUT: %tuple.type.56e: type = tuple_type (%Iterator, %Iterator) [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.7: type = fn_type @Destroy.Op.2 [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.7aa: %Destroy.type = facet_value %tuple.type.56e, (%custom_witness.df9cc1.7) [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.a6e: = impl_witness imports.%Iterate.impl_witness_table.344, @R.as_type.as.Iterate.impl(%facet_value.88d) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.type.11b: type = fn_type @R.as_type.as.Iterate.impl.NewCursor, @R.as_type.as.Iterate.impl(%facet_value.88d) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.96c: %R.as_type.as.Iterate.impl.NewCursor.type.11b = struct_value () [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.type.b29: type = fn_type @R.as_type.as.Iterate.impl.Next, @R.as_type.as.Iterate.impl(%facet_value.88d) [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.683: %R.as_type.as.Iterate.impl.Next.type.b29 = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet.5cc: %Iterate.type = facet_value %MutableAndConstRange, (%Iterate.impl_witness.a6e) [concrete] +// CHECK:STDOUT: %facet_value.0ec: %Iterate_where.type.99d = facet_value %MutableAndConstRange, (%Iterate.impl_witness.a6e) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.875: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet.5cc) [concrete] +// CHECK:STDOUT: %.7e3: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.875, %Iterate.facet.5cc [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.NewCursor.specific_fn: = specific_function %R.as_type.as.Iterate.impl.NewCursor.96c, @R.as_type.as.Iterate.impl.NewCursor(%facet_value.88d) [concrete] +// CHECK:STDOUT: %complete_type.1b5: = complete_type_witness %tuple.type.56e [concrete] +// CHECK:STDOUT: %ptr.484: type = ptr_type %tuple.type.56e [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.b41: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet.5cc) [concrete] +// CHECK:STDOUT: %.fef: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.b41, %Iterate.facet.5cc [concrete] +// CHECK:STDOUT: %R.as_type.as.Iterate.impl.Next.specific_fn: = specific_function %R.as_type.as.Iterate.impl.Next.683, @R.as_type.as.Iterate.impl.Next(%facet_value.88d) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.b7b: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.7aa) [concrete] +// CHECK:STDOUT: %.1ad: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.b7b, %Destroy.facet.7aa [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2961,15 +2961,15 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: .N = %N // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.0b9: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.498) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.bf8)] -// CHECK:STDOUT: %Core.import_ref.61f: @Optional.%Optional.Get.type (%Optional.Get.type.d22) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.6fc)] -// CHECK:STDOUT: %Core.import_ref.2b5: type = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%DefaultOptionalStorage (constants.%DefaultOptionalStorage.f8b)] -// CHECK:STDOUT: %Core.import_ref.b0a: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None.type (%T.as_type.as.OptionalStorage.impl.None.type.ceb) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None (constants.%T.as_type.as.OptionalStorage.impl.None.9dd)] -// CHECK:STDOUT: %Core.import_ref.3fc: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some.type (%T.as_type.as.OptionalStorage.impl.Some.type.87a) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some (constants.%T.as_type.as.OptionalStorage.impl.Some.898)] -// CHECK:STDOUT: %Core.import_ref.986: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has.type (%T.as_type.as.OptionalStorage.impl.Has.type.0ae) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has (constants.%T.as_type.as.OptionalStorage.impl.Has.e0f)] -// CHECK:STDOUT: %Core.import_ref.557: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get.type (%T.as_type.as.OptionalStorage.impl.Get.type.46f) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get (constants.%T.as_type.as.OptionalStorage.impl.Get.8c2)] -// CHECK:STDOUT: %Core.import_ref.999 = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %OptionalStorage.impl_witness_table.6f7 = impl_witness_table (%Core.import_ref.2b5, %Core.import_ref.b0a, %Core.import_ref.3fc, %Core.import_ref.986, %Core.import_ref.557, %Core.import_ref.999), @T.as_type.as.OptionalStorage.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.bb6: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.e9e) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.6cd)] +// CHECK:STDOUT: %Core.import_ref.daba: @Optional.%Optional.Get.type (%Optional.Get.type.bb9) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Get (constants.%Optional.Get.fa1)] +// CHECK:STDOUT: %Core.import_ref.0c6: type = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%DefaultOptionalStorage (constants.%DefaultOptionalStorage.d50)] +// CHECK:STDOUT: %Core.import_ref.f4f: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None.type (%T.as_type.as.OptionalStorage.impl.None.type.300) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.None (constants.%T.as_type.as.OptionalStorage.impl.None.f54)] +// CHECK:STDOUT: %Core.import_ref.18f: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some.type (%T.as_type.as.OptionalStorage.impl.Some.type.800) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Some (constants.%T.as_type.as.OptionalStorage.impl.Some.e83)] +// CHECK:STDOUT: %Core.import_ref.c68: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has.type (%T.as_type.as.OptionalStorage.impl.Has.type.4bc) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Has (constants.%T.as_type.as.OptionalStorage.impl.Has.dc2)] +// CHECK:STDOUT: %Core.import_ref.a83: @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get.type (%T.as_type.as.OptionalStorage.impl.Get.type.029) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.OptionalStorage.impl.%T.as_type.as.OptionalStorage.impl.Get (constants.%T.as_type.as.OptionalStorage.impl.Get.cb5)] +// CHECK:STDOUT: %Core.import_ref.aaa = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %OptionalStorage.impl_witness_table.655 = impl_witness_table (%Core.import_ref.0c6, %Core.import_ref.f4f, %Core.import_ref.18f, %Core.import_ref.c68, %Core.import_ref.a83, %Core.import_ref.aaa), @T.as_type.as.OptionalStorage.impl [concrete] // CHECK:STDOUT: %N: = namespace [concrete] { // CHECK:STDOUT: .ValueType = %ValueType.decl // CHECK:STDOUT: .MutableAndConstRange = %MutableAndConstRange.decl @@ -2981,11 +2981,11 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.89a: %facet_type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%facet_value (constants.%facet_value.a30)] -// CHECK:STDOUT: %Core.import_ref.9ea: %Destroy.type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%Destroy.facet (constants.%Destroy.facet.2fe)] -// CHECK:STDOUT: %Core.import_ref.a6c: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor.type (%R.as_type.as.Iterate.impl.NewCursor.type.9b6) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor (constants.%R.as_type.as.Iterate.impl.NewCursor.b29)] -// CHECK:STDOUT: %Core.import_ref.a02: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next.type (%R.as_type.as.Iterate.impl.Next.type.5b5) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next (constants.%R.as_type.as.Iterate.impl.Next.cd2)] -// CHECK:STDOUT: %Iterate.impl_witness_table.9f0 = impl_witness_table (%Core.import_ref.89a, %Core.import_ref.9ea, %Core.import_ref.a6c, %Core.import_ref.a02), @R.as_type.as.Iterate.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.301: %facet_type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%facet_value (constants.%facet_value.194)] +// CHECK:STDOUT: %Core.import_ref.89f: %Destroy.type = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%Destroy.facet (constants.%Destroy.facet.593)] +// CHECK:STDOUT: %Core.import_ref.3e6: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor.type (%R.as_type.as.Iterate.impl.NewCursor.type.36f) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.NewCursor (constants.%R.as_type.as.Iterate.impl.NewCursor.29b)] +// CHECK:STDOUT: %Core.import_ref.85d: @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next.type (%R.as_type.as.Iterate.impl.Next.type.1f7) = import_ref Core//prelude/iterate, loc{{\d+_\d+}}, loaded [symbolic = @R.as_type.as.Iterate.impl.%R.as_type.as.Iterate.impl.Next (constants.%R.as_type.as.Iterate.impl.Next.0d6)] +// CHECK:STDOUT: %Iterate.impl_witness_table.344 = impl_witness_table (%Core.import_ref.301, %Core.import_ref.89f, %Core.import_ref.3e6, %Core.import_ref.85d), @R.as_type.as.Iterate.impl [concrete] // CHECK:STDOUT: %ValueType.cpp_operator.decl: %ValueType.cpp_operator.type = fn_decl @ValueType.cpp_operator [concrete = constants.%ValueType.cpp_operator] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -2999,74 +2999,74 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %MutableAndConstRange.decl: type = class_decl @MutableAndConstRange [concrete = constants.%MutableAndConstRange] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Test(%R.loc35_10.2: %Iterate_where.type.6d9) { +// CHECK:STDOUT: generic fn @Test(%R.loc35_10.2: %Iterate_where.type.99d) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc35_10.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.135)] -// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %R.as_type.loc35_67.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet (constants.%Iterate.facet.dca)] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.842)] -// CHECK:STDOUT: %.loc39_31.13: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet [symbolic = %.loc39_31.13 (constants.%.89c)] -// CHECK:STDOUT: %impl.elem2.loc39_31.2: @Test.%.loc39_31.13 (%.89c) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc39_31.2 (constants.%impl.elem2.488)] -// CHECK:STDOUT: %specific_impl_fn.loc39_31.4: = specific_impl_function %impl.elem2.loc39_31.2, @Iterate.WithSelf.NewCursor(%Iterate.facet) [symbolic = %specific_impl_fn.loc39_31.4 (constants.%specific_impl_fn.5a0)] +// CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %R.loc35_10.1, @Iterate [symbolic = %Iterate.lookup_impl_witness (constants.%Iterate.lookup_impl_witness.8b4)] +// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %R.as_type.loc35_67.1, (%Iterate.lookup_impl_witness) [symbolic = %Iterate.facet (constants.%Iterate.facet.b19)] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.NewCursor.type (constants.%Iterate.WithSelf.NewCursor.type.217)] +// CHECK:STDOUT: %.loc39_31.13: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type, %Iterate.facet [symbolic = %.loc39_31.13 (constants.%.a27)] +// CHECK:STDOUT: %impl.elem2.loc39_31.2: @Test.%.loc39_31.13 (%.a27) = impl_witness_access %Iterate.lookup_impl_witness, element2 [symbolic = %impl.elem2.loc39_31.2 (constants.%impl.elem2.7c0)] +// CHECK:STDOUT: %specific_impl_fn.loc39_31.4: = specific_impl_function %impl.elem2.loc39_31.2, @Iterate.WithSelf.NewCursor(%Iterate.facet) [symbolic = %specific_impl_fn.loc39_31.4 (constants.%specific_impl_fn.e23)] // CHECK:STDOUT: -// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.ce1)] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.a4d)] -// CHECK:STDOUT: %.loc39_31.14: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet [symbolic = %.loc39_31.14 (constants.%.503)] -// CHECK:STDOUT: %impl.elem3.loc39_31.2: @Test.%.loc39_31.14 (%.503) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc39_31.2 (constants.%impl.elem3.3bc)] -// CHECK:STDOUT: %specific_impl_fn.loc39_31.5: = specific_impl_function %impl.elem3.loc39_31.2, @Iterate.WithSelf.Next(%Iterate.facet) [symbolic = %specific_impl_fn.loc39_31.5 (constants.%specific_impl_fn.7c6)] -// 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.567)] -// CHECK:STDOUT: %.loc39_31.15: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc39_31.15 (constants.%.c3e)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.55f)] -// CHECK:STDOUT: %impl.elem0.loc39_31.2: @Test.%.loc39_31.15 (%.c3e) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc39_31.2 (constants.%impl.elem0.38e)] -// CHECK:STDOUT: %specific_impl_fn.loc39_31.6: = specific_impl_function %impl.elem0.loc39_31.2, @Destroy.WithSelf.Op(%impl.elem1) [symbolic = %specific_impl_fn.loc39_31.6 (constants.%specific_impl_fn.3a8)] +// CHECK:STDOUT: %ptr: type = ptr_type %as_type [symbolic = %ptr (constants.%ptr.530)] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [symbolic = %Iterate.WithSelf.Next.type (constants.%Iterate.WithSelf.Next.type.10a)] +// CHECK:STDOUT: %.loc39_31.14: type = fn_type_with_self_type %Iterate.WithSelf.Next.type, %Iterate.facet [symbolic = %.loc39_31.14 (constants.%.df57)] +// CHECK:STDOUT: %impl.elem3.loc39_31.2: @Test.%.loc39_31.14 (%.df57) = impl_witness_access %Iterate.lookup_impl_witness, element3 [symbolic = %impl.elem3.loc39_31.2 (constants.%impl.elem3.199)] +// CHECK:STDOUT: %specific_impl_fn.loc39_31.5: = specific_impl_function %impl.elem3.loc39_31.2, @Iterate.WithSelf.Next(%Iterate.facet) [symbolic = %specific_impl_fn.loc39_31.5 (constants.%specific_impl_fn.169)] +// 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.e7e)] +// CHECK:STDOUT: %.loc39_31.15: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %impl.elem1 [symbolic = %.loc39_31.15 (constants.%.bc1)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.f37)] +// CHECK:STDOUT: %impl.elem0.loc39_31.2: @Test.%.loc39_31.15 (%.bc1) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc39_31.2 (constants.%impl.elem0.c7c)] +// CHECK:STDOUT: %specific_impl_fn.loc39_31.6: = specific_impl_function %impl.elem0.loc39_31.2, @Destroy.WithSelf.Op(%impl.elem1) [symbolic = %specific_impl_fn.loc39_31.6 (constants.%specific_impl_fn.cd3)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%r.param: @Test.%R.as_type.loc35_67.1 (%R.as_type.e1d)) { +// CHECK:STDOUT: fn(%r.param: @Test.%R.as_type.loc35_67.1 (%R.as_type.a62)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.94b = value_binding_pattern i [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.e41 = value_binding_pattern i [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %r.ref: @Test.%R.as_type.loc35_67.1 (%R.as_type.e1d) = name_ref r, %r -// CHECK:STDOUT: %impl.elem2.loc39_31.1: @Test.%.loc39_31.13 (%.89c) = impl_witness_access constants.%Iterate.lookup_impl_witness.135, element2 [symbolic = %impl.elem2.loc39_31.2 (constants.%impl.elem2.488)] +// CHECK:STDOUT: %r.ref: @Test.%R.as_type.loc35_67.1 (%R.as_type.a62) = name_ref r, %r +// CHECK:STDOUT: %impl.elem2.loc39_31.1: @Test.%.loc39_31.13 (%.a27) = impl_witness_access constants.%Iterate.lookup_impl_witness.8b4, element2 [symbolic = %impl.elem2.loc39_31.2 (constants.%impl.elem2.7c0)] // CHECK:STDOUT: %bound_method.loc39_31.1: = bound_method %r.ref, %impl.elem2.loc39_31.1 -// CHECK:STDOUT: %specific_impl_fn.loc39_31.1: = specific_impl_function %impl.elem2.loc39_31.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.dca) [symbolic = %specific_impl_fn.loc39_31.4 (constants.%specific_impl_fn.5a0)] +// CHECK:STDOUT: %specific_impl_fn.loc39_31.1: = specific_impl_function %impl.elem2.loc39_31.1, @Iterate.WithSelf.NewCursor(constants.%Iterate.facet.b19) [symbolic = %specific_impl_fn.loc39_31.4 (constants.%specific_impl_fn.e23)] // CHECK:STDOUT: %bound_method.loc39_31.2: = bound_method %r.ref, %specific_impl_fn.loc39_31.1 -// CHECK:STDOUT: %var: ref @Test.%as_type (%as_type.470) = var invalid -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @Test.%as_type (%as_type.470) to %var = call %bound_method.loc39_31.2(%r.ref) +// CHECK:STDOUT: %var: ref @Test.%as_type (%as_type.862) = var invalid +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.call: init @Test.%as_type (%as_type.862) to %var = call %bound_method.loc39_31.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.loc39: @Test.%ptr (%ptr.ce1) = addr_of %var -// CHECK:STDOUT: %impl.elem3.loc39_31.1: @Test.%.loc39_31.14 (%.503) = impl_witness_access constants.%Iterate.lookup_impl_witness.135, element3 [symbolic = %impl.elem3.loc39_31.2 (constants.%impl.elem3.3bc)] +// CHECK:STDOUT: %addr.loc39: @Test.%ptr (%ptr.530) = addr_of %var +// CHECK:STDOUT: %impl.elem3.loc39_31.1: @Test.%.loc39_31.14 (%.df57) = impl_witness_access constants.%Iterate.lookup_impl_witness.8b4, element3 [symbolic = %impl.elem3.loc39_31.2 (constants.%impl.elem3.199)] // CHECK:STDOUT: %bound_method.loc39_31.3: = bound_method %r.ref, %impl.elem3.loc39_31.1 -// CHECK:STDOUT: %.loc39_31.1: %Destroy.type = converted constants.%as_type.470, constants.%impl.elem1.b38 [symbolic = %impl.elem1 (constants.%impl.elem1.b38)] -// CHECK:STDOUT: %specific_impl_fn.loc39_31.2: = specific_impl_function %impl.elem3.loc39_31.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.dca) [symbolic = %specific_impl_fn.loc39_31.5 (constants.%specific_impl_fn.7c6)] +// CHECK:STDOUT: %.loc39_31.1: %Destroy.type = converted constants.%as_type.862, constants.%impl.elem1.46a [symbolic = %impl.elem1 (constants.%impl.elem1.46a)] +// CHECK:STDOUT: %specific_impl_fn.loc39_31.2: = specific_impl_function %impl.elem3.loc39_31.1, @Iterate.WithSelf.Next(constants.%Iterate.facet.b19) [symbolic = %specific_impl_fn.loc39_31.5 (constants.%specific_impl_fn.169)] // CHECK:STDOUT: %bound_method.loc39_31.4: = bound_method %r.ref, %specific_impl_fn.loc39_31.2 -// CHECK:STDOUT: %.loc39_31.2: ref %Optional.fb3 = temporary_storage -// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.fb3 to %.loc39_31.2 = call %bound_method.loc39_31.4(%r.ref, %addr.loc39) -// CHECK:STDOUT: %.loc39_31.3: ref %Optional.fb3 = temporary %.loc39_31.2, %Iterate.WithSelf.Next.call -// CHECK:STDOUT: %.loc39_31.4: %Optional.HasValue.type.475 = specific_constant imports.%Core.import_ref.0b9, @Optional(constants.%OptionalStorage.facet.7ac) [concrete = constants.%Optional.HasValue.c00] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.475 = name_ref HasValue, %.loc39_31.4 [concrete = constants.%Optional.HasValue.c00] +// CHECK:STDOUT: %.loc39_31.2: ref %Optional.552 = temporary_storage +// CHECK:STDOUT: %Iterate.WithSelf.Next.call: init %Optional.552 to %.loc39_31.2 = call %bound_method.loc39_31.4(%r.ref, %addr.loc39) +// CHECK:STDOUT: %.loc39_31.3: ref %Optional.552 = temporary %.loc39_31.2, %Iterate.WithSelf.Next.call +// CHECK:STDOUT: %.loc39_31.4: %Optional.HasValue.type.109 = specific_constant imports.%Core.import_ref.bb6, @Optional(constants.%OptionalStorage.facet.7ce) [concrete = constants.%Optional.HasValue.605] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.109 = name_ref HasValue, %.loc39_31.4 [concrete = constants.%Optional.HasValue.605] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc39_31.3, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.7ac) [concrete = constants.%Optional.HasValue.specific_fn] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%OptionalStorage.facet.7ce) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc39_31.5: = bound_method %.loc39_31.3, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc39_31.5: %Optional.fb3 = acquire_value %.loc39_31.3 +// CHECK:STDOUT: %.loc39_31.5: %Optional.552 = acquire_value %.loc39_31.3 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc39_31.5(%.loc39_31.5) // CHECK:STDOUT: %.loc39_31.6: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc39_31.7: bool = converted %Optional.HasValue.call, %.loc39_31.6 // CHECK:STDOUT: if %.loc39_31.7 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc39_31.8: %Optional.Get.type.dd5 = specific_constant imports.%Core.import_ref.61f, @Optional(constants.%OptionalStorage.facet.7ac) [concrete = constants.%Optional.Get.335] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.dd5 = name_ref Get, %.loc39_31.8 [concrete = constants.%Optional.Get.335] +// CHECK:STDOUT: %.loc39_31.8: %Optional.Get.type.135 = specific_constant imports.%Core.import_ref.daba, @Optional(constants.%OptionalStorage.facet.7ce) [concrete = constants.%Optional.Get.5aa] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.135 = name_ref Get, %.loc39_31.8 [concrete = constants.%Optional.Get.5aa] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc39_31.3, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.7ac) [concrete = constants.%Optional.Get.specific_fn] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%OptionalStorage.facet.7ce) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc39_31.6: = bound_method %.loc39_31.3, %Optional.Get.specific_fn // CHECK:STDOUT: %.loc39_31.9: ref %ValueType = temporary_storage -// CHECK:STDOUT: %.loc39_31.10: %Optional.fb3 = acquire_value %.loc39_31.3 +// CHECK:STDOUT: %.loc39_31.10: %Optional.552 = acquire_value %.loc39_31.3 // CHECK:STDOUT: %Optional.Get.call: init %ValueType to %.loc39_31.9 = call %bound_method.loc39_31.6(%.loc39_31.10) // CHECK:STDOUT: %.loc39_16: type = splice_block %ValueType.ref.loc39 [concrete = constants.%ValueType] { // CHECK:STDOUT: %Cpp.ref.loc39: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -3080,81 +3080,81 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %i.ref: %ValueType = name_ref i, %i // CHECK:STDOUT: %ValueType.cpp_operator.bound: = bound_method %sum.ref, imports.%ValueType.cpp_operator.decl // CHECK:STDOUT: %.loc40_12: ref %ValueType = value_as_ref %i.ref -// CHECK:STDOUT: %addr.loc40: %ptr.fed = addr_of %.loc40_12 -// CHECK:STDOUT: %.loc40_9.1: %ptr.140 = as_compatible %addr.loc40 -// CHECK:STDOUT: %.loc40_9.2: %ptr.140 = converted %addr.loc40, %.loc40_9.1 +// CHECK:STDOUT: %addr.loc40: %ptr.9d3 = addr_of %.loc40_12 +// CHECK:STDOUT: %.loc40_9.1: %ptr.32e = as_compatible %addr.loc40 +// CHECK:STDOUT: %.loc40_9.2: %ptr.32e = converted %addr.loc40, %.loc40_9.1 // CHECK:STDOUT: %operator_PlusEqual__carbon_thunk.call: ref %ValueType = call imports.%operator_PlusEqual__carbon_thunk.decl(%sum.ref, %.loc40_9.2) // CHECK:STDOUT: br !for.next // CHECK:STDOUT: // CHECK:STDOUT: !for.done: -// CHECK:STDOUT: %ValueType.Op.bound.loc39: = bound_method %.loc39_31.11, constants.%ValueType.Op.1edc3c.1 +// CHECK:STDOUT: %ValueType.Op.bound.loc39: = bound_method %.loc39_31.11, constants.%ValueType.Op.4c94b9.1 // CHECK:STDOUT: %Op.ref.loc39: %ValueType.cpp_destructor.type = name_ref Op, imports.%ValueType.cpp_destructor.decl [concrete = constants.%ValueType.cpp_destructor] // CHECK:STDOUT: %ValueType.cpp_destructor.bound.loc39: = bound_method %.loc39_31.11, %Op.ref.loc39 // CHECK:STDOUT: %ValueType.cpp_destructor.call.loc39: init %empty_tuple.type = call %ValueType.cpp_destructor.bound.loc39(%.loc39_31.11) -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc39_31.3, constants.%Destroy.Op.2dd605.6 +// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc39_31.3, constants.%Destroy.Op.1a2547.6 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc39_31.3) -// CHECK:STDOUT: %impl.elem0.loc39_31.1: @Test.%.loc39_31.15 (%.c3e) = impl_witness_access constants.%Destroy.lookup_impl_witness.55f, element0 [symbolic = %impl.elem0.loc39_31.2 (constants.%impl.elem0.38e)] +// CHECK:STDOUT: %impl.elem0.loc39_31.1: @Test.%.loc39_31.15 (%.bc1) = impl_witness_access constants.%Destroy.lookup_impl_witness.f37, element0 [symbolic = %impl.elem0.loc39_31.2 (constants.%impl.elem0.c7c)] // CHECK:STDOUT: %bound_method.loc39_31.7: = bound_method %var, %impl.elem0.loc39_31.1 -// CHECK:STDOUT: %specific_impl_fn.loc39_31.3: = specific_impl_function %impl.elem0.loc39_31.1, @Destroy.WithSelf.Op(constants.%impl.elem1.b38) [symbolic = %specific_impl_fn.loc39_31.6 (constants.%specific_impl_fn.3a8)] +// CHECK:STDOUT: %specific_impl_fn.loc39_31.3: = specific_impl_function %impl.elem0.loc39_31.1, @Destroy.WithSelf.Op(constants.%impl.elem1.46a) [symbolic = %specific_impl_fn.loc39_31.6 (constants.%specific_impl_fn.cd3)] // CHECK:STDOUT: %bound_method.loc39_31.8: = bound_method %var, %specific_impl_fn.loc39_31.3 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc39_31.8(%var) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc39_31.1(%self.param: ref %MaybeUnformed.d14) { +// CHECK:STDOUT: fn @Destroy.Op.loc39_31.1(%self.param: ref %MaybeUnformed.669) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.Op.loc39_31.2(%self.param: ref bool) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc39_31.3(%self.param: ref %struct_type.value.has_value.330) { +// CHECK:STDOUT: fn @Destroy.Op.loc39_31.3(%self.param: ref %struct_type.value.has_value.5a1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc39_31.4(%self.param: ref %DefaultOptionalStorage.046) { +// CHECK:STDOUT: fn @Destroy.Op.loc39_31.4(%self.param: ref %DefaultOptionalStorage.257) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc39_31.5(%self.param: ref %Optional.fb3) { +// CHECK:STDOUT: fn @Destroy.Op.loc39_31.5(%self.param: ref %Optional.552) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%R.bd8) { -// CHECK:STDOUT: %R.loc35_10.1 => constants.%R.bd8 -// CHECK:STDOUT: %R.as_type.loc35_67.1 => constants.%R.as_type.e1d -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b93 +// CHECK:STDOUT: specific @Test(constants.%R.623) { +// CHECK:STDOUT: %R.loc35_10.1 => constants.%R.623 +// CHECK:STDOUT: %R.as_type.loc35_67.1 => constants.%R.as_type.a62 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.725 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%facet_value.8e0) { -// CHECK:STDOUT: %R.loc35_10.1 => constants.%facet_value.8e0 +// CHECK:STDOUT: specific @Test(constants.%facet_value.0ec) { +// CHECK:STDOUT: %R.loc35_10.1 => constants.%facet_value.0ec // CHECK:STDOUT: %R.as_type.loc35_67.1 => constants.%MutableAndConstRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e6c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.394 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc35 => constants.%complete_type.357 -// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.902 -// CHECK:STDOUT: %Iterate.facet => constants.%Iterate.facet.227 -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.087 -// CHECK:STDOUT: %.loc39_31.13 => constants.%.4d4 -// CHECK:STDOUT: %impl.elem2.loc39_31.2 => constants.%R.as_type.as.Iterate.impl.NewCursor.310 +// CHECK:STDOUT: %Iterate.lookup_impl_witness => constants.%Iterate.impl_witness.a6e +// CHECK:STDOUT: %Iterate.facet => constants.%Iterate.facet.5cc +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type => constants.%Iterate.WithSelf.NewCursor.type.875 +// CHECK:STDOUT: %.loc39_31.13 => constants.%.7e3 +// CHECK:STDOUT: %impl.elem2.loc39_31.2 => constants.%R.as_type.as.Iterate.impl.NewCursor.96c // CHECK:STDOUT: %specific_impl_fn.loc39_31.4 => constants.%R.as_type.as.Iterate.impl.NewCursor.specific_fn -// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.da4 -// CHECK:STDOUT: %as_type => constants.%tuple.type.084 -// CHECK:STDOUT: %require_complete.1 => constants.%complete_type.7b5 -// CHECK:STDOUT: %ptr => constants.%ptr.877 -// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.f81 -// CHECK:STDOUT: %.loc39_31.14 => constants.%.728 -// CHECK:STDOUT: %impl.elem3.loc39_31.2 => constants.%R.as_type.as.Iterate.impl.Next.06d +// CHECK:STDOUT: %impl.elem1 => constants.%Destroy.facet.7aa +// CHECK:STDOUT: %as_type => constants.%tuple.type.56e +// CHECK:STDOUT: %require_complete.1 => constants.%complete_type.1b5 +// CHECK:STDOUT: %ptr => constants.%ptr.484 +// CHECK:STDOUT: %Iterate.WithSelf.Next.type => constants.%Iterate.WithSelf.Next.type.b41 +// CHECK:STDOUT: %.loc39_31.14 => constants.%.fef +// CHECK:STDOUT: %impl.elem3.loc39_31.2 => constants.%R.as_type.as.Iterate.impl.Next.683 // CHECK:STDOUT: %specific_impl_fn.loc39_31.5 => constants.%R.as_type.as.Iterate.impl.Next.specific_fn -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.1ee -// CHECK:STDOUT: %.loc39_31.15 => constants.%.e5c -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.e20f1f.7 -// CHECK:STDOUT: %impl.elem0.loc39_31.2 => constants.%Destroy.Op.2dd605.7 -// CHECK:STDOUT: %specific_impl_fn.loc39_31.6 => constants.%Destroy.Op.2dd605.7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.b7b +// CHECK:STDOUT: %.loc39_31.15 => constants.%.1ad +// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.df9cc1.7 +// CHECK:STDOUT: %impl.elem0.loc39_31.2 => constants.%Destroy.Op.1a2547.7 +// CHECK:STDOUT: %specific_impl_fn.loc39_31.6 => constants.%Destroy.Op.1a2547.7 // 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 0db4c0c21170..0da549e0d7b2 100644 --- a/toolchain/check/testdata/interop/cpp/stdlib/initializer_list.carbon +++ b/toolchain/check/testdata/interop/cpp/stdlib/initializer_list.carbon @@ -62,61 +62,61 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %initializer_list: type = class_type @initializer_list [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.ef1: type = pattern_type %initializer_list [concrete] +// CHECK:STDOUT: %pattern_type.7fc: type = pattern_type %initializer_list [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%int_1.5b8, %int_2.ecc, %int_3.1ba) [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_3.1ba, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.bec: type = pattern_type %array_type [concrete] -// CHECK:STDOUT: %.689: Core.Form = init_form %initializer_list [concrete] -// CHECK:STDOUT: %initializer_list.initializer_list.type.b3aef3.1: type = fn_type @initializer_list.initializer_list.loc8 [concrete] -// CHECK:STDOUT: %initializer_list.initializer_list.ba6adf.1: %initializer_list.initializer_list.type.b3aef3.1 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.771: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %.0ee: Core.Form = init_form %initializer_list [concrete] +// CHECK:STDOUT: %initializer_list.initializer_list.type.0fbcd7.1: type = fn_type @initializer_list.initializer_list.loc8 [concrete] +// CHECK:STDOUT: %initializer_list.initializer_list.0db5f6.1: %initializer_list.initializer_list.type.0fbcd7.1 = struct_value () [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.d9c, %int_2.228, %int_3.6cc) [concrete] -// CHECK:STDOUT: %.2d4: ref %array_type = temporary invalid, %array [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %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] +// 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: %Consume.cpp_overload_set.type: type = cpp_overload_set_type @Consume.cpp_overload_set [concrete] // CHECK:STDOUT: %Consume.cpp_overload_set.value: %Consume.cpp_overload_set.type = cpp_overload_set_value @Consume.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.b24: type = ptr_type %initializer_list [concrete] +// CHECK:STDOUT: %ptr.fac: type = ptr_type %initializer_list [concrete] // CHECK:STDOUT: %Consume__carbon_thunk.type: type = fn_type @Consume__carbon_thunk [concrete] // CHECK:STDOUT: %Consume__carbon_thunk: %Consume__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %initializer_list.initializer_list.type.b3aef3.2: type = fn_type @initializer_list.initializer_list.loc10 [concrete] -// CHECK:STDOUT: %initializer_list.initializer_list.ba6adf.2: %initializer_list.initializer_list.type.b3aef3.2 = struct_value () [concrete] +// CHECK:STDOUT: %initializer_list.initializer_list.type.0fbcd7.2: type = fn_type @initializer_list.initializer_list.loc10 [concrete] +// CHECK:STDOUT: %initializer_list.initializer_list.0db5f6.2: %initializer_list.initializer_list.type.0fbcd7.2 = struct_value () [concrete] // CHECK:STDOUT: %InitListConstructor: type = class_type @InitListConstructor [concrete] -// CHECK:STDOUT: %pattern_type.a38: type = pattern_type %InitListConstructor [concrete] -// CHECK:STDOUT: %ptr.6ec: type = ptr_type %InitListConstructor [concrete] +// CHECK:STDOUT: %pattern_type.ed6: type = pattern_type %InitListConstructor [concrete] +// CHECK:STDOUT: %ptr.cbb: type = ptr_type %InitListConstructor [concrete] // CHECK:STDOUT: %InitListConstructor__carbon_thunk.type: type = fn_type @InitListConstructor__carbon_thunk [concrete] // CHECK:STDOUT: %InitListConstructor__carbon_thunk: %InitListConstructor__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %initializer_list.initializer_list.type.b3aef3.3: type = fn_type @initializer_list.initializer_list.loc12 [concrete] -// CHECK:STDOUT: %initializer_list.initializer_list.ba6adf.3: %initializer_list.initializer_list.type.b3aef3.3 = struct_value () [concrete] +// CHECK:STDOUT: %initializer_list.initializer_list.type.0fbcd7.3: type = fn_type @initializer_list.initializer_list.loc12 [concrete] +// CHECK:STDOUT: %initializer_list.initializer_list.0db5f6.3: %initializer_list.initializer_list.type.0fbcd7.3 = struct_value () [concrete] // CHECK:STDOUT: %InitListConstructor.cpp_destructor.type: type = fn_type @InitListConstructor.cpp_destructor [concrete] // CHECK:STDOUT: %InitListConstructor.cpp_destructor: %InitListConstructor.cpp_destructor.type = 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.790b3b.4: type = fn_type @Destroy.Op.loc12_44.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.2d4, %Destroy.Op.2dd605.4 [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc12_44.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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -131,8 +131,8 @@ fn F() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %initializer_list.template: %initializer_list.type = struct_value () [concrete = constants.%initializer_list.template] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.4e8.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] +// 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.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] // CHECK:STDOUT: %Consume.cpp_overload_set.value: %Consume.cpp_overload_set.type = cpp_overload_set_value @Consume.cpp_overload_set [concrete = constants.%Consume.cpp_overload_set.value] // CHECK:STDOUT: %Consume__carbon_thunk.decl: %Consume__carbon_thunk.type = fn_decl @Consume__carbon_thunk [concrete = constants.%Consume__carbon_thunk] { // CHECK:STDOUT: @@ -148,37 +148,37 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generated { -// CHECK:STDOUT: %initializer_list.initializer_list.decl.8e656c.1: %initializer_list.initializer_list.type.b3aef3.1 = fn_decl @initializer_list.initializer_list.loc8 [concrete = constants.%initializer_list.initializer_list.ba6adf.1] { -// CHECK:STDOUT: %_.param_patt: %pattern_type.bec = value_param_pattern [concrete] -// CHECK:STDOUT: %_.patt: %pattern_type.bec = at_binding_pattern _, %_.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.ef1 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.ef1 = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete] +// CHECK:STDOUT: %initializer_list.initializer_list.decl.f8e97d.1: %initializer_list.initializer_list.type.0fbcd7.1 = fn_decl @initializer_list.initializer_list.loc8 [concrete = constants.%initializer_list.initializer_list.0db5f6.1] { +// CHECK:STDOUT: %_.param_patt: %pattern_type.771 = value_param_pattern [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.771 = at_binding_pattern _, %_.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7fc = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7fc = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc8: Core.Form = init_form constants.%initializer_list [concrete = constants.%.689] +// CHECK:STDOUT: %.loc8: Core.Form = init_form constants.%initializer_list [concrete = constants.%.0ee] // CHECK:STDOUT: %_.param: %array_type = value_param call_param0 // CHECK:STDOUT: %_: %array_type = value_binding _, %_.param // CHECK:STDOUT: %return.param: ref %initializer_list = out_param call_param1 // CHECK:STDOUT: %return: ref %initializer_list = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %initializer_list.initializer_list.decl.8e656c.2: %initializer_list.initializer_list.type.b3aef3.2 = fn_decl @initializer_list.initializer_list.loc10 [concrete = constants.%initializer_list.initializer_list.ba6adf.2] { -// CHECK:STDOUT: %_.param_patt: %pattern_type.bec = value_param_pattern [concrete] -// CHECK:STDOUT: %_.patt: %pattern_type.bec = at_binding_pattern _, %_.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.ef1 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.ef1 = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete] +// CHECK:STDOUT: %initializer_list.initializer_list.decl.f8e97d.2: %initializer_list.initializer_list.type.0fbcd7.2 = fn_decl @initializer_list.initializer_list.loc10 [concrete = constants.%initializer_list.initializer_list.0db5f6.2] { +// CHECK:STDOUT: %_.param_patt: %pattern_type.771 = value_param_pattern [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.771 = at_binding_pattern _, %_.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7fc = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7fc = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc10: Core.Form = init_form constants.%initializer_list [concrete = constants.%.689] +// CHECK:STDOUT: %.loc10: Core.Form = init_form constants.%initializer_list [concrete = constants.%.0ee] // CHECK:STDOUT: %_.param: %array_type = value_param call_param0 // CHECK:STDOUT: %_: %array_type = value_binding _, %_.param // CHECK:STDOUT: %return.param: ref %initializer_list = out_param call_param1 // CHECK:STDOUT: %return: ref %initializer_list = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %initializer_list.initializer_list.decl.8e656c.3: %initializer_list.initializer_list.type.b3aef3.3 = fn_decl @initializer_list.initializer_list.loc12 [concrete = constants.%initializer_list.initializer_list.ba6adf.3] { -// CHECK:STDOUT: %_.param_patt: %pattern_type.bec = value_param_pattern [concrete] -// CHECK:STDOUT: %_.patt: %pattern_type.bec = at_binding_pattern _, %_.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.ef1 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.ef1 = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete] +// CHECK:STDOUT: %initializer_list.initializer_list.decl.f8e97d.3: %initializer_list.initializer_list.type.0fbcd7.3 = fn_decl @initializer_list.initializer_list.loc12 [concrete = constants.%initializer_list.initializer_list.0db5f6.3] { +// CHECK:STDOUT: %_.param_patt: %pattern_type.771 = value_param_pattern [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.771 = at_binding_pattern _, %_.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.7fc = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.7fc = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc12: Core.Form = init_form constants.%initializer_list [concrete = constants.%.689] +// CHECK:STDOUT: %.loc12: Core.Form = init_form constants.%initializer_list [concrete = constants.%.0ee] // CHECK:STDOUT: %_.param: %array_type = value_param call_param0 // CHECK:STDOUT: %_: %array_type = value_binding _, %_.param // CHECK:STDOUT: %return.param: ref %initializer_list = out_param call_param1 @@ -193,7 +193,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc8: %pattern_type.ef1 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc8: %pattern_type.7fc = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc8_43: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc8_46: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] @@ -203,39 +203,39 @@ fn F() { // CHECK:STDOUT: %int_3.loc8_50: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %array_type.loc8: type = array_type %int_3.loc8_50, %i32.2 [concrete = constants.%array_type] // CHECK:STDOUT: %.loc8_50.2: ref %initializer_list = temporary_storage -// CHECK:STDOUT: %impl.elem0.loc8_50.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_50.1: = bound_method %int_1.loc8_43, %impl.elem0.loc8_50.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc8_50.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_50.1: = bound_method %int_1.loc8_43, %impl.elem0.loc8_50.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc8_50.1: = specific_function %impl.elem0.loc8_50.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_50.2: = bound_method %int_1.loc8_43, %specific_fn.loc8_50.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_50.1: init %i32 = call %bound_method.loc8_50.2(%int_1.loc8_43) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_50.3: init %i32 = converted %int_1.loc8_43, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_50.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc8_50.2: = bound_method %int_1.loc8_43, %specific_fn.loc8_50.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_50.1: init %i32 = call %bound_method.loc8_50.2(%int_1.loc8_43) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_50.3: init %i32 = converted %int_1.loc8_43, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_50.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc8_50.4: ref %array_type = temporary_storage // CHECK:STDOUT: %int_0.loc8: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc8_50.5: ref %i32 = array_index %.loc8_50.4, %int_0.loc8 -// CHECK:STDOUT: %.loc8_50.6: init %i32 to %.loc8_50.5 = in_place_init %.loc8_50.3 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc8_50.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_50.3: = bound_method %int_2.loc8_46, %impl.elem0.loc8_50.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc8_50.6: init %i32 to %.loc8_50.5 = in_place_init %.loc8_50.3 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc8_50.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_50.3: = bound_method %int_2.loc8_46, %impl.elem0.loc8_50.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc8_50.2: = specific_function %impl.elem0.loc8_50.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_50.4: = bound_method %int_2.loc8_46, %specific_fn.loc8_50.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_50.2: init %i32 = call %bound_method.loc8_50.4(%int_2.loc8_46) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc8_50.7: init %i32 = converted %int_2.loc8_46, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_50.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc8_50.4: = bound_method %int_2.loc8_46, %specific_fn.loc8_50.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_50.2: init %i32 = call %bound_method.loc8_50.4(%int_2.loc8_46) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc8_50.7: init %i32 = converted %int_2.loc8_46, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_50.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %int_1.loc8_50: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc8_50.8: ref %i32 = array_index %.loc8_50.4, %int_1.loc8_50 -// CHECK:STDOUT: %.loc8_50.9: init %i32 to %.loc8_50.8 = in_place_init %.loc8_50.7 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %impl.elem0.loc8_50.3: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_50.5: = bound_method %int_3.loc8_49, %impl.elem0.loc8_50.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %.loc8_50.9: init %i32 to %.loc8_50.8 = in_place_init %.loc8_50.7 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %impl.elem0.loc8_50.3: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_50.5: = bound_method %int_3.loc8_49, %impl.elem0.loc8_50.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc8_50.3: = specific_function %impl.elem0.loc8_50.3, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_50.6: = bound_method %int_3.loc8_49, %specific_fn.loc8_50.3 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_50.3: init %i32 = call %bound_method.loc8_50.6(%int_3.loc8_49) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc8_50.10: init %i32 = converted %int_3.loc8_49, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_50.3 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc8_50.6: = bound_method %int_3.loc8_49, %specific_fn.loc8_50.3 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_50.3: init %i32 = call %bound_method.loc8_50.6(%int_3.loc8_49) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc8_50.10: init %i32 = converted %int_3.loc8_49, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_50.3 [concrete = constants.%int_3.410] // CHECK:STDOUT: %int_2.loc8_50: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc8_50.11: ref %i32 = array_index %.loc8_50.4, %int_2.loc8_50 -// CHECK:STDOUT: %.loc8_50.12: init %i32 to %.loc8_50.11 = in_place_init %.loc8_50.10 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %.loc8_50.12: init %i32 to %.loc8_50.11 = in_place_init %.loc8_50.10 [concrete = constants.%int_3.410] // CHECK:STDOUT: %.loc8_50.13: init %array_type to %.loc8_50.4 = array_init (%.loc8_50.6, %.loc8_50.9, %.loc8_50.12) [concrete = constants.%array] // CHECK:STDOUT: %.loc8_50.14: init %array_type = converted %.loc8_50.1, %.loc8_50.13 [concrete = constants.%array] -// CHECK:STDOUT: %.loc8_50.15: ref %array_type = temporary %.loc8_50.4, %.loc8_50.14 [concrete = constants.%.2d4] +// CHECK:STDOUT: %.loc8_50.15: ref %array_type = temporary %.loc8_50.4, %.loc8_50.14 [concrete = constants.%.981] // CHECK:STDOUT: %.loc8_50.16: %array_type = acquire_value %.loc8_50.15 [concrete = constants.%array] -// CHECK:STDOUT: %initializer_list.initializer_list.call.loc8: init %initializer_list to %.loc8_50.2 = call generated.%initializer_list.initializer_list.decl.8e656c.1(%.loc8_50.16) +// CHECK:STDOUT: %initializer_list.initializer_list.call.loc8: init %initializer_list to %.loc8_50.2 = call generated.%initializer_list.initializer_list.decl.f8e97d.1(%.loc8_50.16) // CHECK:STDOUT: %.loc8_50.17: init %initializer_list = converted %.loc8_50.1, %initializer_list.initializer_list.call.loc8 // CHECK:STDOUT: %.loc8_50.18: ref %initializer_list = temporary %.loc8_50.2, %.loc8_50.17 // CHECK:STDOUT: %.loc8_50.19: %initializer_list = acquire_value %.loc8_50.18 @@ -250,47 +250,47 @@ fn F() { // CHECK:STDOUT: %int_3.loc10_23: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %array_type.loc10: type = array_type %int_3.loc10_23, %i32.4 [concrete = constants.%array_type] // CHECK:STDOUT: %.loc10_23.2: ref %initializer_list = temporary_storage -// CHECK:STDOUT: %impl.elem0.loc10_23.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_23.1: = bound_method %int_1.loc10_16, %impl.elem0.loc10_23.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc10_23.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_23.1: = bound_method %int_1.loc10_16, %impl.elem0.loc10_23.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc10_23.1: = specific_function %impl.elem0.loc10_23.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_23.2: = bound_method %int_1.loc10_16, %specific_fn.loc10_23.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_23.1: init %i32 = call %bound_method.loc10_23.2(%int_1.loc10_16) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc10_23.3: init %i32 = converted %int_1.loc10_16, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_23.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc10_23.2: = bound_method %int_1.loc10_16, %specific_fn.loc10_23.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_23.1: init %i32 = call %bound_method.loc10_23.2(%int_1.loc10_16) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc10_23.3: init %i32 = converted %int_1.loc10_16, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_23.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc10_23.4: ref %array_type = temporary_storage // CHECK:STDOUT: %int_0.loc10: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc10_23.5: ref %i32 = array_index %.loc10_23.4, %int_0.loc10 -// CHECK:STDOUT: %.loc10_23.6: init %i32 to %.loc10_23.5 = in_place_init %.loc10_23.3 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc10_23.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_23.3: = bound_method %int_2.loc10_19, %impl.elem0.loc10_23.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc10_23.6: init %i32 to %.loc10_23.5 = in_place_init %.loc10_23.3 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc10_23.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_23.3: = bound_method %int_2.loc10_19, %impl.elem0.loc10_23.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc10_23.2: = specific_function %impl.elem0.loc10_23.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_23.4: = bound_method %int_2.loc10_19, %specific_fn.loc10_23.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_23.2: init %i32 = call %bound_method.loc10_23.4(%int_2.loc10_19) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc10_23.7: init %i32 = converted %int_2.loc10_19, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_23.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc10_23.4: = bound_method %int_2.loc10_19, %specific_fn.loc10_23.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_23.2: init %i32 = call %bound_method.loc10_23.4(%int_2.loc10_19) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc10_23.7: init %i32 = converted %int_2.loc10_19, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_23.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %int_1.loc10_23: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc10_23.8: ref %i32 = array_index %.loc10_23.4, %int_1.loc10_23 -// CHECK:STDOUT: %.loc10_23.9: init %i32 to %.loc10_23.8 = in_place_init %.loc10_23.7 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %impl.elem0.loc10_23.3: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_23.5: = bound_method %int_3.loc10_22, %impl.elem0.loc10_23.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %.loc10_23.9: init %i32 to %.loc10_23.8 = in_place_init %.loc10_23.7 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %impl.elem0.loc10_23.3: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_23.5: = bound_method %int_3.loc10_22, %impl.elem0.loc10_23.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc10_23.3: = specific_function %impl.elem0.loc10_23.3, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_23.6: = bound_method %int_3.loc10_22, %specific_fn.loc10_23.3 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_23.3: init %i32 = call %bound_method.loc10_23.6(%int_3.loc10_22) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc10_23.10: init %i32 = converted %int_3.loc10_22, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_23.3 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc10_23.6: = bound_method %int_3.loc10_22, %specific_fn.loc10_23.3 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_23.3: init %i32 = call %bound_method.loc10_23.6(%int_3.loc10_22) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc10_23.10: init %i32 = converted %int_3.loc10_22, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_23.3 [concrete = constants.%int_3.410] // CHECK:STDOUT: %int_2.loc10_23: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc10_23.11: ref %i32 = array_index %.loc10_23.4, %int_2.loc10_23 -// CHECK:STDOUT: %.loc10_23.12: init %i32 to %.loc10_23.11 = in_place_init %.loc10_23.10 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %.loc10_23.12: init %i32 to %.loc10_23.11 = in_place_init %.loc10_23.10 [concrete = constants.%int_3.410] // CHECK:STDOUT: %.loc10_23.13: init %array_type to %.loc10_23.4 = array_init (%.loc10_23.6, %.loc10_23.9, %.loc10_23.12) [concrete = constants.%array] // CHECK:STDOUT: %.loc10_23.14: init %array_type = converted %.loc10_23.1, %.loc10_23.13 [concrete = constants.%array] -// CHECK:STDOUT: %.loc10_23.15: ref %array_type = temporary %.loc10_23.4, %.loc10_23.14 [concrete = constants.%.2d4] +// CHECK:STDOUT: %.loc10_23.15: ref %array_type = temporary %.loc10_23.4, %.loc10_23.14 [concrete = constants.%.981] // CHECK:STDOUT: %.loc10_23.16: %array_type = acquire_value %.loc10_23.15 [concrete = constants.%array] -// CHECK:STDOUT: %initializer_list.initializer_list.call.loc10: init %initializer_list to %.loc10_23.2 = call generated.%initializer_list.initializer_list.decl.8e656c.2(%.loc10_23.16) +// CHECK:STDOUT: %initializer_list.initializer_list.call.loc10: init %initializer_list to %.loc10_23.2 = call generated.%initializer_list.initializer_list.decl.f8e97d.2(%.loc10_23.16) // CHECK:STDOUT: %.loc10_23.17: init %initializer_list = converted %.loc10_23.1, %initializer_list.initializer_list.call.loc10 // CHECK:STDOUT: %.loc10_23.18: ref %initializer_list = temporary %.loc10_23.2, %.loc10_23.17 // CHECK:STDOUT: %.loc10_23.19: %initializer_list = acquire_value %.loc10_23.18 // CHECK:STDOUT: %.loc10_23.20: ref %initializer_list = value_as_ref %.loc10_23.19 -// CHECK:STDOUT: %addr.loc10: %ptr.b24 = addr_of %.loc10_23.20 +// CHECK:STDOUT: %addr.loc10: %ptr.fac = addr_of %.loc10_23.20 // CHECK:STDOUT: %Consume__carbon_thunk.call: init %empty_tuple.type = call imports.%Consume__carbon_thunk.decl(%addr.loc10) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc12: %pattern_type.a38 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc12: %pattern_type.ed6 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // 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] @@ -305,45 +305,45 @@ fn F() { // CHECK:STDOUT: %int_3.loc12_44: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %array_type.loc12: type = array_type %int_3.loc12_44, %i32.6 [concrete = constants.%array_type] // CHECK:STDOUT: %.loc12_44.3: ref %initializer_list = temporary_storage -// CHECK:STDOUT: %impl.elem0.loc12_44.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc12_44.1: = bound_method %int_1.loc12_37, %impl.elem0.loc12_44.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc12_44.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc12_44.1: = bound_method %int_1.loc12_37, %impl.elem0.loc12_44.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc12_44.1: = specific_function %impl.elem0.loc12_44.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc12_44.2: = bound_method %int_1.loc12_37, %specific_fn.loc12_44.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_44.1: init %i32 = call %bound_method.loc12_44.2(%int_1.loc12_37) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc12_44.4: init %i32 = converted %int_1.loc12_37, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_44.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc12_44.2: = bound_method %int_1.loc12_37, %specific_fn.loc12_44.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_44.1: init %i32 = call %bound_method.loc12_44.2(%int_1.loc12_37) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc12_44.4: init %i32 = converted %int_1.loc12_37, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_44.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc12_44.5: ref %array_type = temporary_storage // CHECK:STDOUT: %int_0.loc12: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc12_44.6: ref %i32 = array_index %.loc12_44.5, %int_0.loc12 -// CHECK:STDOUT: %.loc12_44.7: init %i32 to %.loc12_44.6 = in_place_init %.loc12_44.4 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc12_44.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc12_44.3: = bound_method %int_2.loc12_40, %impl.elem0.loc12_44.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc12_44.7: init %i32 to %.loc12_44.6 = in_place_init %.loc12_44.4 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc12_44.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc12_44.3: = bound_method %int_2.loc12_40, %impl.elem0.loc12_44.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc12_44.2: = specific_function %impl.elem0.loc12_44.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc12_44.4: = bound_method %int_2.loc12_40, %specific_fn.loc12_44.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_44.2: init %i32 = call %bound_method.loc12_44.4(%int_2.loc12_40) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc12_44.8: init %i32 = converted %int_2.loc12_40, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_44.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc12_44.4: = bound_method %int_2.loc12_40, %specific_fn.loc12_44.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_44.2: init %i32 = call %bound_method.loc12_44.4(%int_2.loc12_40) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc12_44.8: init %i32 = converted %int_2.loc12_40, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_44.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %int_1.loc12_44: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc12_44.9: ref %i32 = array_index %.loc12_44.5, %int_1.loc12_44 -// CHECK:STDOUT: %.loc12_44.10: init %i32 to %.loc12_44.9 = in_place_init %.loc12_44.8 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %impl.elem0.loc12_44.3: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc12_44.5: = bound_method %int_3.loc12_43, %impl.elem0.loc12_44.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %.loc12_44.10: init %i32 to %.loc12_44.9 = in_place_init %.loc12_44.8 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %impl.elem0.loc12_44.3: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc12_44.5: = bound_method %int_3.loc12_43, %impl.elem0.loc12_44.3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc12_44.3: = specific_function %impl.elem0.loc12_44.3, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc12_44.6: = bound_method %int_3.loc12_43, %specific_fn.loc12_44.3 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_44.3: init %i32 = call %bound_method.loc12_44.6(%int_3.loc12_43) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc12_44.11: init %i32 = converted %int_3.loc12_43, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_44.3 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc12_44.6: = bound_method %int_3.loc12_43, %specific_fn.loc12_44.3 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_44.3: init %i32 = call %bound_method.loc12_44.6(%int_3.loc12_43) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc12_44.11: init %i32 = converted %int_3.loc12_43, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_44.3 [concrete = constants.%int_3.410] // CHECK:STDOUT: %int_2.loc12_44: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc12_44.12: ref %i32 = array_index %.loc12_44.5, %int_2.loc12_44 -// CHECK:STDOUT: %.loc12_44.13: init %i32 to %.loc12_44.12 = in_place_init %.loc12_44.11 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %.loc12_44.13: init %i32 to %.loc12_44.12 = in_place_init %.loc12_44.11 [concrete = constants.%int_3.410] // CHECK:STDOUT: %.loc12_44.14: init %array_type to %.loc12_44.5 = array_init (%.loc12_44.7, %.loc12_44.10, %.loc12_44.13) [concrete = constants.%array] // CHECK:STDOUT: %.loc12_44.15: init %array_type = converted %.loc12_44.1, %.loc12_44.14 [concrete = constants.%array] -// CHECK:STDOUT: %.loc12_44.16: ref %array_type = temporary %.loc12_44.5, %.loc12_44.15 [concrete = constants.%.2d4] +// CHECK:STDOUT: %.loc12_44.16: ref %array_type = temporary %.loc12_44.5, %.loc12_44.15 [concrete = constants.%.981] // CHECK:STDOUT: %.loc12_44.17: %array_type = acquire_value %.loc12_44.16 [concrete = constants.%array] -// CHECK:STDOUT: %initializer_list.initializer_list.call.loc12: init %initializer_list to %.loc12_44.3 = call generated.%initializer_list.initializer_list.decl.8e656c.3(%.loc12_44.17) +// CHECK:STDOUT: %initializer_list.initializer_list.call.loc12: init %initializer_list to %.loc12_44.3 = call generated.%initializer_list.initializer_list.decl.f8e97d.3(%.loc12_44.17) // CHECK:STDOUT: %.loc12_44.18: init %initializer_list = converted %.loc12_44.1, %initializer_list.initializer_list.call.loc12 // CHECK:STDOUT: %.loc12_44.19: ref %initializer_list = temporary %.loc12_44.3, %.loc12_44.18 // CHECK:STDOUT: %.loc12_44.20: %initializer_list = acquire_value %.loc12_44.19 // CHECK:STDOUT: %.loc12_44.21: ref %initializer_list = value_as_ref %.loc12_44.20 -// CHECK:STDOUT: %addr.loc12_44.1: %ptr.b24 = addr_of %.loc12_44.21 -// CHECK:STDOUT: %addr.loc12_44.2: %ptr.6ec = addr_of %.loc12_44.2 +// CHECK:STDOUT: %addr.loc12_44.1: %ptr.fac = addr_of %.loc12_44.21 +// CHECK:STDOUT: %addr.loc12_44.2: %ptr.cbb = addr_of %.loc12_44.2 // CHECK:STDOUT: %InitListConstructor__carbon_thunk.call: init %empty_tuple.type = call imports.%InitListConstructor__carbon_thunk.decl(%addr.loc12_44.1, %addr.loc12_44.2) // CHECK:STDOUT: %.loc12_44.22: init %InitListConstructor to %.loc12_44.2 = mark_in_place_init %InitListConstructor__carbon_thunk.call // CHECK:STDOUT: %.loc12_44.23: init %InitListConstructor = converted %.loc12_44.1, %.loc12_44.22 @@ -354,13 +354,13 @@ fn F() { // CHECK:STDOUT: %InitListConstructor.cpp_destructor.call: init %empty_tuple.type = call %InitListConstructor.cpp_destructor.bound(%.loc12_44.24) // CHECK:STDOUT: %initializer_list.cpp_destructor.bound.loc12: = bound_method %.loc12_44.19, 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.19) -// CHECK:STDOUT: %Destroy.Op.call.loc12: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.2d4) +// CHECK:STDOUT: %Destroy.Op.call.loc12: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.981) // CHECK:STDOUT: %initializer_list.cpp_destructor.bound.loc10: = bound_method %.loc10_23.18, 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.18) -// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.2d4) +// CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.981) // CHECK:STDOUT: %initializer_list.cpp_destructor.bound.loc8: = bound_method %.loc8_50.18, 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.18) -// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.2d4) +// CHECK:STDOUT: %Destroy.Op.call.loc8: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.981) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/stdlib/string_view.carbon b/toolchain/check/testdata/interop/cpp/stdlib/string_view.carbon index c9e534bf41ec..e3ff5c9319b3 100644 --- a/toolchain/check/testdata/interop/cpp/stdlib/string_view.carbon +++ b/toolchain/check/testdata/interop/cpp/stdlib/string_view.carbon @@ -80,20 +80,20 @@ fn StarstWith(a: str, b: str) -> bool { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Consume.cpp_overload_set.type: type = cpp_overload_set_type @Consume.cpp_overload_set [concrete] // CHECK:STDOUT: %Consume.cpp_overload_set.value: %Consume.cpp_overload_set.type = cpp_overload_set_value @Consume.cpp_overload_set [concrete] -// CHECK:STDOUT: %str.abf: type = class_type @String [concrete] +// CHECK:STDOUT: %str.3d4: type = class_type @String [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %u64: type = class_type @UInt, @UInt(%int_64) [concrete] // CHECK:STDOUT: %int_8: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %u8: type = class_type @UInt, @UInt(%int_8) [concrete] -// CHECK:STDOUT: %ptr.9b7: type = ptr_type %u8 [concrete] -// CHECK:STDOUT: %str.18a: %ptr.9b7 = string_literal "hello" [concrete] +// CHECK:STDOUT: %ptr.093: type = ptr_type %u8 [concrete] +// CHECK:STDOUT: %str.f81: %ptr.093 = string_literal "hello" [concrete] // CHECK:STDOUT: %int_5: %u64 = int_value 5 [concrete] -// CHECK:STDOUT: %String.val: %str.abf = struct_value (%str.18a, %int_5) [concrete] -// CHECK:STDOUT: %pattern_type.3d7: type = pattern_type %str.abf [concrete] -// CHECK:STDOUT: %ptr.a98: type = ptr_type %str.abf [concrete] +// CHECK:STDOUT: %String.val: %str.3d4 = struct_value (%str.f81, %int_5) [concrete] +// CHECK:STDOUT: %pattern_type.adf: type = pattern_type %str.3d4 [concrete] +// CHECK:STDOUT: %ptr.e6f: type = ptr_type %str.3d4 [concrete] // CHECK:STDOUT: %Consume__carbon_thunk.type: type = fn_type @Consume__carbon_thunk [concrete] // CHECK:STDOUT: %Consume__carbon_thunk: %Consume__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %.1fd: Core.Form = init_form %str.abf [concrete] +// CHECK:STDOUT: %.8e1: Core.Form = init_form %str.3d4 [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %Produce.cpp_overload_set.type: type = cpp_overload_set_type @Produce.cpp_overload_set [concrete] @@ -125,13 +125,13 @@ fn StarstWith(a: str, b: str) -> bool { // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.3d7 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.3d7 = return_slot_pattern %return.param_patt, %str [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.adf = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.adf = return_slot_pattern %return.param_patt, %str [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %str: type = type_literal constants.%str.abf [concrete = constants.%str.abf] -// CHECK:STDOUT: %.loc13_11.2: Core.Form = init_form %str [concrete = constants.%.1fd] -// CHECK:STDOUT: %return.param: ref %str.abf = out_param call_param0 -// CHECK:STDOUT: %return: ref %str.abf = return_slot %return.param +// CHECK:STDOUT: %str: type = type_literal constants.%str.3d4 [concrete = constants.%str.3d4] +// CHECK:STDOUT: %.loc13_11.2: Core.Form = init_form %str [concrete = constants.%.8e1] +// CHECK:STDOUT: %return.param: ref %str.3d4 = out_param call_param0 +// CHECK:STDOUT: %return: ref %str.3d4 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -139,23 +139,23 @@ fn StarstWith(a: str, b: str) -> bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Consume.ref: %Consume.cpp_overload_set.type = name_ref Consume, imports.%Consume.cpp_overload_set.value [concrete = constants.%Consume.cpp_overload_set.value] -// CHECK:STDOUT: %str: %ptr.9b7 = string_literal "hello" [concrete = constants.%str.18a] +// CHECK:STDOUT: %str: %ptr.093 = string_literal "hello" [concrete = constants.%str.f81] // CHECK:STDOUT: %int_5: %u64 = int_value 5 [concrete = constants.%int_5] -// CHECK:STDOUT: %String.val: %str.abf = struct_value (%str, %int_5) [concrete = constants.%String.val] -// CHECK:STDOUT: %.loc8: ref %str.abf = value_as_ref %String.val -// CHECK:STDOUT: %addr: %ptr.a98 = addr_of %.loc8 +// CHECK:STDOUT: %String.val: %str.3d4 = struct_value (%str, %int_5) [concrete = constants.%String.val] +// CHECK:STDOUT: %.loc8: ref %str.3d4 = value_as_ref %String.val +// CHECK:STDOUT: %addr: %ptr.e6f = addr_of %.loc8 // CHECK:STDOUT: %Consume__carbon_thunk.call: init %empty_tuple.type = call imports.%Consume__carbon_thunk.decl(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G() -> out %return.param: %str.abf { +// CHECK:STDOUT: fn @G() -> out %return.param: %str.3d4 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Produce.ref: %Produce.cpp_overload_set.type = name_ref Produce, imports.%Produce.cpp_overload_set.value [concrete = constants.%Produce.cpp_overload_set.value] -// CHECK:STDOUT: %.loc13_11.1: ref %str.abf = splice_block %return.param {} -// CHECK:STDOUT: %addr: %ptr.a98 = addr_of %.loc13_11.1 +// CHECK:STDOUT: %.loc13_11.1: ref %str.3d4 = splice_block %return.param {} +// CHECK:STDOUT: %addr: %ptr.e6f = addr_of %.loc13_11.1 // CHECK:STDOUT: %Produce__carbon_thunk.call: init %empty_tuple.type = call imports.%Produce__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %.loc14: init %str.abf to %.loc13_11.1 = mark_in_place_init %Produce__carbon_thunk.call +// CHECK:STDOUT: %.loc14: init %str.3d4 to %.loc13_11.1 = mark_in_place_init %Produce__carbon_thunk.call // CHECK:STDOUT: return %.loc14 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: @@ -164,7 +164,7 @@ fn StarstWith(a: str, b: str) -> bool { // CHECK:STDOUT: constants { // CHECK:STDOUT: %str: type = class_type @String [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %pattern_type.3d7: type = pattern_type %str [concrete] +// CHECK:STDOUT: %pattern_type.adf: type = pattern_type %str [concrete] // CHECK:STDOUT: %.f34: Core.Form = init_form bool [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] // CHECK:STDOUT: %StarstWith.type: type = fn_type @StarstWith [concrete] @@ -172,7 +172,7 @@ fn StarstWith(a: str, b: str) -> bool { // CHECK:STDOUT: %DerivedFromStringView: type = class_type @DerivedFromStringView [concrete] // CHECK:STDOUT: %DerivedFromStringView.starts_with.cpp_overload_set.type: type = cpp_overload_set_type @DerivedFromStringView.starts_with.cpp_overload_set [concrete] // CHECK:STDOUT: %DerivedFromStringView.starts_with.cpp_overload_set.value: %DerivedFromStringView.starts_with.cpp_overload_set.type = cpp_overload_set_value @DerivedFromStringView.starts_with.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.a98: type = ptr_type %str [concrete] +// CHECK:STDOUT: %ptr.e6f: type = ptr_type %str [concrete] // CHECK:STDOUT: %ptr.bb2: type = ptr_type bool [concrete] // CHECK:STDOUT: %starts_with__carbon_thunk.type: type = fn_type @starts_with__carbon_thunk [concrete] // CHECK:STDOUT: %starts_with__carbon_thunk: %starts_with__carbon_thunk.type = struct_value () [concrete] @@ -194,10 +194,10 @@ fn StarstWith(a: str, b: str) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %StarstWith.decl: %StarstWith.type = fn_decl @StarstWith [concrete = constants.%StarstWith] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.3d7 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.3d7 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.3d7 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.3d7 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.adf = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.adf = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.adf = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.adf = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc7_34.1 [concrete] // CHECK:STDOUT: } { @@ -223,7 +223,7 @@ fn StarstWith(a: str, b: str) -> bool { // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %starts_with.ref // CHECK:STDOUT: %b.ref: %str = name_ref b, %b // CHECK:STDOUT: %.loc8_52: ref %str = value_as_ref %b.ref -// CHECK:STDOUT: %addr.loc8_53.1: %ptr.a98 = addr_of %.loc8_52 +// CHECK:STDOUT: %addr.loc8_53.1: %ptr.e6f = addr_of %.loc8_52 // CHECK:STDOUT: %.loc8_53.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc8_53.2: %ptr.bb2 = addr_of %.loc8_53.1 // CHECK:STDOUT: %starts_with__carbon_thunk.call: init %empty_tuple.type = call imports.%starts_with__carbon_thunk.decl(%a.ref, %addr.loc8_53.1, %addr.loc8_53.2) diff --git a/toolchain/check/testdata/interop/cpp/template/alias_template.carbon b/toolchain/check/testdata/interop/cpp/template/alias_template.carbon index 28ba86206705..7871d70f4b38 100644 --- a/toolchain/check/testdata/interop/cpp/template/alias_template.carbon +++ b/toolchain/check/testdata/interop/cpp/template/alias_template.carbon @@ -39,16 +39,16 @@ var a2: Cpp.Second(Cpp.B, Cpp.A) = Cpp.A.A(); // CHECK:STDOUT: %First.template: %First.type = struct_value () [concrete] // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] -// CHECK:STDOUT: %pattern_type.aa6: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.3fa: type = pattern_type %A [concrete] // CHECK:STDOUT: %A.A.cpp_overload_set.type: type = cpp_overload_set_type @A.A.cpp_overload_set [concrete] // CHECK:STDOUT: %A.A.cpp_overload_set.value: %A.A.cpp_overload_set.type = cpp_overload_set_value @A.A.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.9f7: type = ptr_type %A [concrete] +// CHECK:STDOUT: %ptr.25f: type = ptr_type %A [concrete] // CHECK:STDOUT: %A__carbon_thunk.type: type = fn_type @A__carbon_thunk [concrete] // CHECK:STDOUT: %A__carbon_thunk: %A__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.bbe: type = pattern_type %B [concrete] +// CHECK:STDOUT: %pattern_type.65a: type = pattern_type %B [concrete] // CHECK:STDOUT: %B.B.cpp_overload_set.type: type = cpp_overload_set_type @B.B.cpp_overload_set [concrete] // CHECK:STDOUT: %B.B.cpp_overload_set.value: %B.B.cpp_overload_set.type = cpp_overload_set_value @B.B.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.fab: type = ptr_type %B [concrete] +// CHECK:STDOUT: %ptr.dc0: type = ptr_type %B [concrete] // CHECK:STDOUT: %B__carbon_thunk.type: type = fn_type @B__carbon_thunk [concrete] // CHECK:STDOUT: %B__carbon_thunk: %B__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Second.type: type = cpp_type_template_type Second [concrete] @@ -83,26 +83,26 @@ var a2: Cpp.Second(Cpp.B, Cpp.A) = Cpp.A.A(); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a1.patt: %pattern_type.aa6 = ref_binding_pattern a1 [concrete] -// CHECK:STDOUT: %a1.var_patt: %pattern_type.aa6 = var_pattern %a1.patt [concrete] +// CHECK:STDOUT: %a1.patt: %pattern_type.3fa = ref_binding_pattern a1 [concrete] +// CHECK:STDOUT: %a1.var_patt: %pattern_type.3fa = var_pattern %a1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a1.var: ref %A = var %a1.var_patt [concrete] // CHECK:STDOUT: %a1: ref %A = ref_binding a1, %a1.var [concrete = %a1.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b1.patt: %pattern_type.bbe = ref_binding_pattern b1 [concrete] -// CHECK:STDOUT: %b1.var_patt: %pattern_type.bbe = var_pattern %b1.patt [concrete] +// CHECK:STDOUT: %b1.patt: %pattern_type.65a = ref_binding_pattern b1 [concrete] +// CHECK:STDOUT: %b1.var_patt: %pattern_type.65a = var_pattern %b1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b1.var: ref %B = var %b1.var_patt [concrete] // CHECK:STDOUT: %b1: ref %B = ref_binding b1, %b1.var [concrete = %b1.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b2.patt: %pattern_type.bbe = ref_binding_pattern b2 [concrete] -// CHECK:STDOUT: %b2.var_patt: %pattern_type.bbe = var_pattern %b2.patt [concrete] +// CHECK:STDOUT: %b2.patt: %pattern_type.65a = ref_binding_pattern b2 [concrete] +// CHECK:STDOUT: %b2.var_patt: %pattern_type.65a = var_pattern %b2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b2.var: ref %B = var %b2.var_patt [concrete] // CHECK:STDOUT: %b2: ref %B = ref_binding b2, %b2.var [concrete = %b2.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a2.patt: %pattern_type.aa6 = ref_binding_pattern a2 [concrete] -// CHECK:STDOUT: %a2.var_patt: %pattern_type.aa6 = var_pattern %a2.patt [concrete] +// CHECK:STDOUT: %a2.patt: %pattern_type.3fa = ref_binding_pattern a2 [concrete] +// CHECK:STDOUT: %a2.var_patt: %pattern_type.3fa = var_pattern %a2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a2.var: ref %A = var %a2.var_patt [concrete] // CHECK:STDOUT: %a2: ref %A = ref_binding a2, %a2.var [concrete = %a2.var] @@ -114,7 +114,7 @@ var a2: Cpp.Second(Cpp.B, Cpp.A) = Cpp.A.A(); // CHECK:STDOUT: %A.ref.loc7_38: type = name_ref A, imports.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %A.ref.loc7_40: %A.A.cpp_overload_set.type = name_ref A, imports.%A.A.cpp_overload_set.value [concrete = constants.%A.A.cpp_overload_set.value] // CHECK:STDOUT: %.loc7_1: ref %A = splice_block file.%a1.var [concrete = file.%a1.var] {} -// CHECK:STDOUT: %addr.loc7: %ptr.9f7 = addr_of %.loc7_1 +// CHECK:STDOUT: %addr.loc7: %ptr.25f = addr_of %.loc7_1 // CHECK:STDOUT: %A__carbon_thunk.call.loc7: init %empty_tuple.type = call imports.%A__carbon_thunk.decl(%addr.loc7) // CHECK:STDOUT: %.loc7_43: init %A to %.loc7_1 = mark_in_place_init %A__carbon_thunk.call.loc7 // CHECK:STDOUT: assign file.%a1.var, %.loc7_43 @@ -122,7 +122,7 @@ var a2: Cpp.Second(Cpp.B, Cpp.A) = Cpp.A.A(); // CHECK:STDOUT: %B.ref.loc8_38: type = name_ref B, imports.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %B.ref.loc8_40: %B.B.cpp_overload_set.type = name_ref B, imports.%B.B.cpp_overload_set.value [concrete = constants.%B.B.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_1: ref %B = splice_block file.%b1.var [concrete = file.%b1.var] {} -// CHECK:STDOUT: %addr.loc8: %ptr.fab = addr_of %.loc8_1 +// CHECK:STDOUT: %addr.loc8: %ptr.dc0 = addr_of %.loc8_1 // CHECK:STDOUT: %B__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%B__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_43: init %B to %.loc8_1 = mark_in_place_init %B__carbon_thunk.call.loc8 // CHECK:STDOUT: assign file.%b1.var, %.loc8_43 @@ -130,7 +130,7 @@ var a2: Cpp.Second(Cpp.B, Cpp.A) = Cpp.A.A(); // CHECK:STDOUT: %B.ref.loc9_39: type = name_ref B, imports.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %B.ref.loc9_41: %B.B.cpp_overload_set.type = name_ref B, imports.%B.B.cpp_overload_set.value [concrete = constants.%B.B.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_1: ref %B = splice_block file.%b2.var [concrete = file.%b2.var] {} -// CHECK:STDOUT: %addr.loc9: %ptr.fab = addr_of %.loc9_1 +// CHECK:STDOUT: %addr.loc9: %ptr.dc0 = addr_of %.loc9_1 // CHECK:STDOUT: %B__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%B__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %.loc9_44: init %B to %.loc9_1 = mark_in_place_init %B__carbon_thunk.call.loc9 // CHECK:STDOUT: assign file.%b2.var, %.loc9_44 @@ -138,7 +138,7 @@ var a2: Cpp.Second(Cpp.B, Cpp.A) = Cpp.A.A(); // CHECK:STDOUT: %A.ref.loc10_39: type = name_ref A, imports.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %A.ref.loc10_41: %A.A.cpp_overload_set.type = name_ref A, imports.%A.A.cpp_overload_set.value [concrete = constants.%A.A.cpp_overload_set.value] // CHECK:STDOUT: %.loc10_1: ref %A = splice_block file.%a2.var [concrete = file.%a2.var] {} -// CHECK:STDOUT: %addr.loc10: %ptr.9f7 = addr_of %.loc10_1 +// CHECK:STDOUT: %addr.loc10: %ptr.25f = addr_of %.loc10_1 // CHECK:STDOUT: %A__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%A__carbon_thunk.decl(%addr.loc10) // CHECK:STDOUT: %.loc10_44: init %A to %.loc10_1 = mark_in_place_init %A__carbon_thunk.call.loc10 // CHECK:STDOUT: assign file.%a2.var, %.loc10_44 diff --git a/toolchain/check/testdata/interop/cpp/template/argument_count.carbon b/toolchain/check/testdata/interop/cpp/template/argument_count.carbon index b2326a485711..d0b8a88cbcf2 100644 --- a/toolchain/check/testdata/interop/cpp/template/argument_count.carbon +++ b/toolchain/check/testdata/interop/cpp/template/argument_count.carbon @@ -122,29 +122,29 @@ var too_many: Cpp.FixedSizePack(Cpp.A, Cpp.A).Inner(Cpp.B, Cpp.B, Cpp.B); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %TwoTypes: type = class_type @TwoTypes [concrete] -// CHECK:STDOUT: %pattern_type.bc0: type = pattern_type %TwoTypes [concrete] +// CHECK:STDOUT: %pattern_type.83a: type = pattern_type %TwoTypes [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] -// CHECK:STDOUT: %T.e5a: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.e5a) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.eab: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d = struct_value () [symbolic] +// CHECK:STDOUT: %T.b09: %Default.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.b09) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.cfe: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9 = struct_value () [symbolic] // CHECK:STDOUT: %TwoTypes.Op.type: type = fn_type @TwoTypes.Op [concrete] // CHECK:STDOUT: %TwoTypes.Op: %TwoTypes.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26: = custom_witness (%TwoTypes.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.3d9: %Default.type = facet_value %TwoTypes, (%custom_witness.b26) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.d7b: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.3d9) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.d7b) [concrete] +// CHECK:STDOUT: %custom_witness.9b4: = custom_witness (%TwoTypes.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.49c: %Default.type = facet_value %TwoTypes, (%custom_witness.9b4) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.07d: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.49c) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.07d) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.a03: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.38d) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.eab)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.48a = impl_witness_table (%Core.import_ref.a03), @T.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c2f: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.cfe)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.670 = impl_witness_table (%Core.import_ref.c2f), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.bc0 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.bc0 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.83a = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.83a = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %TwoTypes = var %x.var_patt [concrete] // CHECK:STDOUT: %x: ref %TwoTypes = ref_binding x, %x.var [concrete = %x.var] @@ -152,7 +152,7 @@ var too_many: Cpp.FixedSizePack(Cpp.A, Cpp.A).Inner(Cpp.B, Cpp.B, Cpp.B); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.d7b) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.07d) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc7_34.1: %DefaultOrUnformed.type = converted constants.%TwoTypes, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_34.1 [concrete = constants.%TwoTypes] // CHECK:STDOUT: %.loc7_34.2: type = converted %.loc7_34.1, %as_type [concrete = constants.%TwoTypes] @@ -166,110 +166,110 @@ var too_many: Cpp.FixedSizePack(Cpp.A, Cpp.A).Inner(Cpp.B, Cpp.B, Cpp.B); // CHECK:STDOUT: --- pack.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %TypePack.894: type = class_type @TypePack.1 [concrete] -// CHECK:STDOUT: %pattern_type.c42: type = pattern_type %TypePack.894 [concrete] +// CHECK:STDOUT: %TypePack.78f: type = class_type @TypePack.1 [concrete] +// CHECK:STDOUT: %pattern_type.a64: type = pattern_type %TypePack.78f [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] -// CHECK:STDOUT: %T.e5a: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.e5a) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.eab: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d = struct_value () [symbolic] -// CHECK:STDOUT: %TypePack.Op.type.43d658.1: type = fn_type @TypePack.Op.1 [concrete] -// CHECK:STDOUT: %TypePack.Op.cc70d5.1: %TypePack.Op.type.43d658.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26fff.1: = custom_witness (%TypePack.Op.cc70d5.1), @Default [concrete] -// CHECK:STDOUT: %Default.facet.e80: %Default.type = facet_value %TypePack.894, (%custom_witness.b26fff.1) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.7fb: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.e80) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.ebf: %DefaultOrUnformed.type = facet_value %TypePack.894, (%DefaultOrUnformed.impl_witness.7fb) [concrete] -// CHECK:STDOUT: %TypePack.5b2: type = class_type @TypePack.2 [concrete] -// CHECK:STDOUT: %pattern_type.891: type = pattern_type %TypePack.5b2 [concrete] -// CHECK:STDOUT: %TypePack.Op.type.43d658.2: type = fn_type @TypePack.Op.2 [concrete] -// CHECK:STDOUT: %TypePack.Op.cc70d5.2: %TypePack.Op.type.43d658.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26fff.2: = custom_witness (%TypePack.Op.cc70d5.2), @Default [concrete] -// CHECK:STDOUT: %Default.facet.3b2: %Default.type = facet_value %TypePack.5b2, (%custom_witness.b26fff.2) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.c72: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.3b2) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.dfa: %DefaultOrUnformed.type = facet_value %TypePack.5b2, (%DefaultOrUnformed.impl_witness.c72) [concrete] -// CHECK:STDOUT: %TypePack.93d: type = class_type @TypePack.3 [concrete] -// CHECK:STDOUT: %pattern_type.fce: type = pattern_type %TypePack.93d [concrete] -// CHECK:STDOUT: %TypePack.Op.type.43d658.3: type = fn_type @TypePack.Op.3 [concrete] -// CHECK:STDOUT: %TypePack.Op.cc70d5.3: %TypePack.Op.type.43d658.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26fff.3: = custom_witness (%TypePack.Op.cc70d5.3), @Default [concrete] -// CHECK:STDOUT: %Default.facet.c9d: %Default.type = facet_value %TypePack.93d, (%custom_witness.b26fff.3) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.199: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.c9d) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.1c7: %DefaultOrUnformed.type = facet_value %TypePack.93d, (%DefaultOrUnformed.impl_witness.199) [concrete] -// CHECK:STDOUT: %TypePack.51e: type = class_type @TypePack.4 [concrete] -// CHECK:STDOUT: %pattern_type.f1d: type = pattern_type %TypePack.51e [concrete] -// CHECK:STDOUT: %TypePack.Op.type.43d658.4: type = fn_type @TypePack.Op.4 [concrete] -// CHECK:STDOUT: %TypePack.Op.cc70d5.4: %TypePack.Op.type.43d658.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26fff.4: = custom_witness (%TypePack.Op.cc70d5.4), @Default [concrete] -// CHECK:STDOUT: %Default.facet.752: %Default.type = facet_value %TypePack.51e, (%custom_witness.b26fff.4) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.ba6: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.752) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.a74: %DefaultOrUnformed.type = facet_value %TypePack.51e, (%DefaultOrUnformed.impl_witness.ba6) [concrete] +// CHECK:STDOUT: %T.b09: %Default.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.b09) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.cfe: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9 = struct_value () [symbolic] +// CHECK:STDOUT: %TypePack.Op.type.83af6e.1: type = fn_type @TypePack.Op.1 [concrete] +// CHECK:STDOUT: %TypePack.Op.4dca31.1: %TypePack.Op.type.83af6e.1 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.9b40fb.1: = custom_witness (%TypePack.Op.4dca31.1), @Default [concrete] +// CHECK:STDOUT: %Default.facet.7a3: %Default.type = facet_value %TypePack.78f, (%custom_witness.9b40fb.1) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.6f4: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.7a3) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.be2: %DefaultOrUnformed.type = facet_value %TypePack.78f, (%DefaultOrUnformed.impl_witness.6f4) [concrete] +// CHECK:STDOUT: %TypePack.0bc: type = class_type @TypePack.2 [concrete] +// CHECK:STDOUT: %pattern_type.20e: type = pattern_type %TypePack.0bc [concrete] +// CHECK:STDOUT: %TypePack.Op.type.83af6e.2: type = fn_type @TypePack.Op.2 [concrete] +// CHECK:STDOUT: %TypePack.Op.4dca31.2: %TypePack.Op.type.83af6e.2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.9b40fb.2: = custom_witness (%TypePack.Op.4dca31.2), @Default [concrete] +// CHECK:STDOUT: %Default.facet.2dd: %Default.type = facet_value %TypePack.0bc, (%custom_witness.9b40fb.2) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.8e2: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.2dd) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.777: %DefaultOrUnformed.type = facet_value %TypePack.0bc, (%DefaultOrUnformed.impl_witness.8e2) [concrete] +// CHECK:STDOUT: %TypePack.0ec: type = class_type @TypePack.3 [concrete] +// CHECK:STDOUT: %pattern_type.c25: type = pattern_type %TypePack.0ec [concrete] +// CHECK:STDOUT: %TypePack.Op.type.83af6e.3: type = fn_type @TypePack.Op.3 [concrete] +// CHECK:STDOUT: %TypePack.Op.4dca31.3: %TypePack.Op.type.83af6e.3 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.9b40fb.3: = custom_witness (%TypePack.Op.4dca31.3), @Default [concrete] +// CHECK:STDOUT: %Default.facet.3ab: %Default.type = facet_value %TypePack.0ec, (%custom_witness.9b40fb.3) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.873: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.3ab) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.967: %DefaultOrUnformed.type = facet_value %TypePack.0ec, (%DefaultOrUnformed.impl_witness.873) [concrete] +// CHECK:STDOUT: %TypePack.186: type = class_type @TypePack.4 [concrete] +// CHECK:STDOUT: %pattern_type.678: type = pattern_type %TypePack.186 [concrete] +// CHECK:STDOUT: %TypePack.Op.type.83af6e.4: type = fn_type @TypePack.Op.4 [concrete] +// CHECK:STDOUT: %TypePack.Op.4dca31.4: %TypePack.Op.type.83af6e.4 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.9b40fb.4: = custom_witness (%TypePack.Op.4dca31.4), @Default [concrete] +// CHECK:STDOUT: %Default.facet.3c1: %Default.type = facet_value %TypePack.186, (%custom_witness.9b40fb.4) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.3f9: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.3c1) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.59c: %DefaultOrUnformed.type = facet_value %TypePack.186, (%DefaultOrUnformed.impl_witness.3f9) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.a03: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.38d) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.eab)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.48a = impl_witness_table (%Core.import_ref.a03), @T.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c2f: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.cfe)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.670 = impl_witness_table (%Core.import_ref.c2f), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a0.patt: %pattern_type.c42 = ref_binding_pattern a0 [concrete] -// CHECK:STDOUT: %a0.var_patt: %pattern_type.c42 = var_pattern %a0.patt [concrete] +// CHECK:STDOUT: %a0.patt: %pattern_type.a64 = ref_binding_pattern a0 [concrete] +// CHECK:STDOUT: %a0.var_patt: %pattern_type.a64 = var_pattern %a0.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a0.var: ref %TypePack.894 = var %a0.var_patt [concrete] -// CHECK:STDOUT: %a0: ref %TypePack.894 = ref_binding a0, %a0.var [concrete = %a0.var] +// CHECK:STDOUT: %a0.var: ref %TypePack.78f = var %a0.var_patt [concrete] +// CHECK:STDOUT: %a0: ref %TypePack.78f = ref_binding a0, %a0.var [concrete = %a0.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a1.patt: %pattern_type.891 = ref_binding_pattern a1 [concrete] -// CHECK:STDOUT: %a1.var_patt: %pattern_type.891 = var_pattern %a1.patt [concrete] +// CHECK:STDOUT: %a1.patt: %pattern_type.20e = ref_binding_pattern a1 [concrete] +// CHECK:STDOUT: %a1.var_patt: %pattern_type.20e = var_pattern %a1.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a1.var: ref %TypePack.5b2 = var %a1.var_patt [concrete] -// CHECK:STDOUT: %a1: ref %TypePack.5b2 = ref_binding a1, %a1.var [concrete = %a1.var] +// CHECK:STDOUT: %a1.var: ref %TypePack.0bc = var %a1.var_patt [concrete] +// CHECK:STDOUT: %a1: ref %TypePack.0bc = ref_binding a1, %a1.var [concrete = %a1.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a2.patt: %pattern_type.fce = ref_binding_pattern a2 [concrete] -// CHECK:STDOUT: %a2.var_patt: %pattern_type.fce = var_pattern %a2.patt [concrete] +// CHECK:STDOUT: %a2.patt: %pattern_type.c25 = ref_binding_pattern a2 [concrete] +// CHECK:STDOUT: %a2.var_patt: %pattern_type.c25 = var_pattern %a2.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a2.var: ref %TypePack.93d = var %a2.var_patt [concrete] -// CHECK:STDOUT: %a2: ref %TypePack.93d = ref_binding a2, %a2.var [concrete = %a2.var] +// CHECK:STDOUT: %a2.var: ref %TypePack.0ec = var %a2.var_patt [concrete] +// CHECK:STDOUT: %a2: ref %TypePack.0ec = ref_binding a2, %a2.var [concrete = %a2.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a3.patt: %pattern_type.f1d = ref_binding_pattern a3 [concrete] -// CHECK:STDOUT: %a3.var_patt: %pattern_type.f1d = var_pattern %a3.patt [concrete] +// CHECK:STDOUT: %a3.patt: %pattern_type.678 = ref_binding_pattern a3 [concrete] +// CHECK:STDOUT: %a3.var_patt: %pattern_type.678 = var_pattern %a3.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a3.var: ref %TypePack.51e = var %a3.var_patt [concrete] -// CHECK:STDOUT: %a3: ref %TypePack.51e = ref_binding a3, %a3.var [concrete = %a3.var] +// CHECK:STDOUT: %a3.var: ref %TypePack.186 = var %a3.var_patt [concrete] +// CHECK:STDOUT: %a3: ref %TypePack.186 = ref_binding a3, %a3.var [concrete = %a3.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7: %DefaultOrUnformed.type = facet_value constants.%TypePack.894, (constants.%DefaultOrUnformed.impl_witness.7fb) [concrete = constants.%DefaultOrUnformed.facet.ebf] -// CHECK:STDOUT: %.loc7_23.1: %DefaultOrUnformed.type = converted constants.%TypePack.894, %DefaultOrUnformed.facet.loc7 [concrete = constants.%DefaultOrUnformed.facet.ebf] -// CHECK:STDOUT: %as_type.loc7: type = facet_access_type %.loc7_23.1 [concrete = constants.%TypePack.894] -// CHECK:STDOUT: %.loc7_23.2: type = converted %.loc7_23.1, %as_type.loc7 [concrete = constants.%TypePack.894] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7: %DefaultOrUnformed.type = facet_value constants.%TypePack.78f, (constants.%DefaultOrUnformed.impl_witness.6f4) [concrete = constants.%DefaultOrUnformed.facet.be2] +// CHECK:STDOUT: %.loc7_23.1: %DefaultOrUnformed.type = converted constants.%TypePack.78f, %DefaultOrUnformed.facet.loc7 [concrete = constants.%DefaultOrUnformed.facet.be2] +// CHECK:STDOUT: %as_type.loc7: type = facet_access_type %.loc7_23.1 [concrete = constants.%TypePack.78f] +// CHECK:STDOUT: %.loc7_23.2: type = converted %.loc7_23.1, %as_type.loc7 [concrete = constants.%TypePack.78f] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc7_1: ref %TypePack.894 = splice_block file.%a0.var [concrete = file.%a0.var] {} -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc7: init %TypePack.894 to %.loc7_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.1() +// CHECK:STDOUT: %.loc7_1: ref %TypePack.78f = splice_block file.%a0.var [concrete = file.%a0.var] {} +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc7: init %TypePack.78f to %.loc7_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.1() // CHECK:STDOUT: assign file.%a0.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc7 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%TypePack.5b2, (constants.%DefaultOrUnformed.impl_witness.c72) [concrete = constants.%DefaultOrUnformed.facet.dfa] -// CHECK:STDOUT: %.loc8_28.1: %DefaultOrUnformed.type = converted constants.%TypePack.5b2, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.dfa] -// CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_28.1 [concrete = constants.%TypePack.5b2] -// CHECK:STDOUT: %.loc8_28.2: type = converted %.loc8_28.1, %as_type.loc8 [concrete = constants.%TypePack.5b2] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%TypePack.0bc, (constants.%DefaultOrUnformed.impl_witness.8e2) [concrete = constants.%DefaultOrUnformed.facet.777] +// CHECK:STDOUT: %.loc8_28.1: %DefaultOrUnformed.type = converted constants.%TypePack.0bc, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.777] +// CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_28.1 [concrete = constants.%TypePack.0bc] +// CHECK:STDOUT: %.loc8_28.2: type = converted %.loc8_28.1, %as_type.loc8 [concrete = constants.%TypePack.0bc] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc8_1: ref %TypePack.5b2 = splice_block file.%a1.var [concrete = file.%a1.var] {} -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc8: init %TypePack.5b2 to %.loc8_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() +// CHECK:STDOUT: %.loc8_1: ref %TypePack.0bc = splice_block file.%a1.var [concrete = file.%a1.var] {} +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc8: init %TypePack.0bc to %.loc8_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() // CHECK:STDOUT: assign file.%a1.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc8 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc9: %DefaultOrUnformed.type = facet_value constants.%TypePack.93d, (constants.%DefaultOrUnformed.impl_witness.199) [concrete = constants.%DefaultOrUnformed.facet.1c7] -// CHECK:STDOUT: %.loc9_35.1: %DefaultOrUnformed.type = converted constants.%TypePack.93d, %DefaultOrUnformed.facet.loc9 [concrete = constants.%DefaultOrUnformed.facet.1c7] -// CHECK:STDOUT: %as_type.loc9: type = facet_access_type %.loc9_35.1 [concrete = constants.%TypePack.93d] -// CHECK:STDOUT: %.loc9_35.2: type = converted %.loc9_35.1, %as_type.loc9 [concrete = constants.%TypePack.93d] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc9: %DefaultOrUnformed.type = facet_value constants.%TypePack.0ec, (constants.%DefaultOrUnformed.impl_witness.873) [concrete = constants.%DefaultOrUnformed.facet.967] +// CHECK:STDOUT: %.loc9_35.1: %DefaultOrUnformed.type = converted constants.%TypePack.0ec, %DefaultOrUnformed.facet.loc9 [concrete = constants.%DefaultOrUnformed.facet.967] +// CHECK:STDOUT: %as_type.loc9: type = facet_access_type %.loc9_35.1 [concrete = constants.%TypePack.0ec] +// CHECK:STDOUT: %.loc9_35.2: type = converted %.loc9_35.1, %as_type.loc9 [concrete = constants.%TypePack.0ec] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc9_1: ref %TypePack.93d = splice_block file.%a2.var [concrete = file.%a2.var] {} -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc9: init %TypePack.93d to %.loc9_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.3() +// CHECK:STDOUT: %.loc9_1: ref %TypePack.0ec = splice_block file.%a2.var [concrete = file.%a2.var] {} +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc9: init %TypePack.0ec to %.loc9_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.3() // CHECK:STDOUT: assign file.%a2.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc9 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc10: %DefaultOrUnformed.type = facet_value constants.%TypePack.51e, (constants.%DefaultOrUnformed.impl_witness.ba6) [concrete = constants.%DefaultOrUnformed.facet.a74] -// CHECK:STDOUT: %.loc10_42.1: %DefaultOrUnformed.type = converted constants.%TypePack.51e, %DefaultOrUnformed.facet.loc10 [concrete = constants.%DefaultOrUnformed.facet.a74] -// CHECK:STDOUT: %as_type.loc10: type = facet_access_type %.loc10_42.1 [concrete = constants.%TypePack.51e] -// CHECK:STDOUT: %.loc10_42.2: type = converted %.loc10_42.1, %as_type.loc10 [concrete = constants.%TypePack.51e] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc10: %DefaultOrUnformed.type = facet_value constants.%TypePack.186, (constants.%DefaultOrUnformed.impl_witness.3f9) [concrete = constants.%DefaultOrUnformed.facet.59c] +// CHECK:STDOUT: %.loc10_42.1: %DefaultOrUnformed.type = converted constants.%TypePack.186, %DefaultOrUnformed.facet.loc10 [concrete = constants.%DefaultOrUnformed.facet.59c] +// CHECK:STDOUT: %as_type.loc10: type = facet_access_type %.loc10_42.1 [concrete = constants.%TypePack.186] +// CHECK:STDOUT: %.loc10_42.2: type = converted %.loc10_42.1, %as_type.loc10 [concrete = constants.%TypePack.186] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc10_1: ref %TypePack.51e = splice_block file.%a3.var [concrete = file.%a3.var] {} -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc10: init %TypePack.51e to %.loc10_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.4() +// CHECK:STDOUT: %.loc10_1: ref %TypePack.186 = splice_block file.%a3.var [concrete = file.%a3.var] {} +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc10: init %TypePack.186 to %.loc10_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.4() // CHECK:STDOUT: assign file.%a3.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc10 // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/template/class_template.carbon b/toolchain/check/testdata/interop/cpp/template/class_template.carbon index 5934d03f324e..0d77ddadb4ea 100644 --- a/toolchain/check/testdata/interop/cpp/template/class_template.carbon +++ b/toolchain/check/testdata/interop/cpp/template/class_template.carbon @@ -36,7 +36,7 @@ var a: Cpp.A = Cpp.X(Cpp.A, Cpp.B).f({} as Cpp.B); // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %pattern_type.aa6: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.3fa: type = pattern_type %A [concrete] // CHECK:STDOUT: %X.type: type = cpp_type_template_type X [concrete] // CHECK:STDOUT: %X.template: %X.type = struct_value () [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] @@ -44,11 +44,11 @@ var a: Cpp.A = Cpp.X(Cpp.A, Cpp.B).f({} as Cpp.B); // CHECK:STDOUT: %X.f.cpp_overload_set.value: %X.f.cpp_overload_set.type = cpp_overload_set_value @X.f.cpp_overload_set [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %B.val: %B = struct_value () [concrete] -// CHECK:STDOUT: %ptr.fab: type = ptr_type %B [concrete] -// CHECK:STDOUT: %ptr.9f7: type = ptr_type %A [concrete] +// CHECK:STDOUT: %ptr.dc0: type = ptr_type %B [concrete] +// CHECK:STDOUT: %ptr.25f: type = ptr_type %A [concrete] // CHECK:STDOUT: %f__carbon_thunk.type: type = fn_type @f__carbon_thunk [concrete] // CHECK:STDOUT: %f__carbon_thunk: %f__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %.f11: ref %B = temporary invalid, %B.val [concrete] +// CHECK:STDOUT: %.cfb: ref %B = temporary invalid, %B.val [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -71,8 +71,8 @@ var a: Cpp.A = Cpp.X(Cpp.A, Cpp.B).f({} as Cpp.B); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.aa6 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.aa6 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.3fa = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.3fa = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %A = var %a.var_patt [concrete] // CHECK:STDOUT: %.loc7: type = splice_block %A.ref [concrete = constants.%A] { @@ -98,11 +98,11 @@ var a: Cpp.A = Cpp.X(Cpp.A, Cpp.B).f({} as Cpp.B); // CHECK:STDOUT: %.loc7_39.3: init %B to %.loc7_39.2 = class_init () [concrete = constants.%B.val] // CHECK:STDOUT: %.loc7_41.1: init %B = converted %.loc7_39.1, %.loc7_39.3 [concrete = constants.%B.val] // CHECK:STDOUT: %.loc7_1: ref %A = splice_block file.%a.var [concrete = file.%a.var] {} -// CHECK:STDOUT: %.loc7_41.2: ref %B = temporary %.loc7_39.2, %.loc7_41.1 [concrete = constants.%.f11] +// CHECK:STDOUT: %.loc7_41.2: ref %B = temporary %.loc7_39.2, %.loc7_41.1 [concrete = constants.%.cfb] // CHECK:STDOUT: %.loc7_41.3: %B = acquire_value %.loc7_41.2 [concrete = constants.%B.val] // CHECK:STDOUT: %.loc7_41.4: ref %B = value_as_ref %.loc7_41.3 -// CHECK:STDOUT: %addr.loc7_49.1: %ptr.fab = addr_of %.loc7_41.4 -// CHECK:STDOUT: %addr.loc7_49.2: %ptr.9f7 = addr_of %.loc7_1 +// CHECK:STDOUT: %addr.loc7_49.1: %ptr.dc0 = addr_of %.loc7_41.4 +// CHECK:STDOUT: %addr.loc7_49.2: %ptr.25f = addr_of %.loc7_1 // CHECK:STDOUT: %f__carbon_thunk.call: init %empty_tuple.type = call imports.%f__carbon_thunk.decl(%addr.loc7_49.1, %addr.loc7_49.2) // CHECK:STDOUT: %.loc7_49: init %A to %.loc7_1 = mark_in_place_init %f__carbon_thunk.call // CHECK:STDOUT: assign file.%a.var, %.loc7_49 diff --git a/toolchain/check/testdata/interop/cpp/template/concept.carbon b/toolchain/check/testdata/interop/cpp/template/concept.carbon index 2bce1a4aa54e..e32f61e9e592 100644 --- a/toolchain/check/testdata/interop/cpp/template/concept.carbon +++ b/toolchain/check/testdata/interop/cpp/template/concept.carbon @@ -42,18 +42,18 @@ var x2: X(Cpp.IsLarge(Cpp.Large)) = X(true).Make(); // CHECK:STDOUT: %IsLarge.template: %IsLarge.type = struct_value () [concrete] // CHECK:STDOUT: %Small: type = class_type @Small [concrete] // CHECK:STDOUT: %false: bool = bool_literal false [concrete] -// CHECK:STDOUT: %X.4e9: type = class_type @X, @X(%false) [concrete] -// CHECK:STDOUT: %X.Make.type.a09: type = fn_type @X.Make, @X(%false) [concrete] -// CHECK:STDOUT: %X.Make.e55: %X.Make.type.a09 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.316: type = pattern_type %X.4e9 [concrete] -// CHECK:STDOUT: %X.Make.specific_fn.80b: = specific_function %X.Make.e55, @X.Make(%false) [concrete] +// CHECK:STDOUT: %X.541: type = class_type @X, @X(%false) [concrete] +// CHECK:STDOUT: %X.Make.type.243: type = fn_type @X.Make, @X(%false) [concrete] +// CHECK:STDOUT: %X.Make.d05: %X.Make.type.243 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.26c: type = pattern_type %X.541 [concrete] +// CHECK:STDOUT: %X.Make.specific_fn.932: = specific_function %X.Make.d05, @X.Make(%false) [concrete] // CHECK:STDOUT: %Large: type = class_type @Large [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] -// CHECK:STDOUT: %X.e08: type = class_type @X, @X(%true) [concrete] -// CHECK:STDOUT: %X.Make.type.364: type = fn_type @X.Make, @X(%true) [concrete] -// CHECK:STDOUT: %X.Make.366: %X.Make.type.364 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.5e9: type = pattern_type %X.e08 [concrete] -// CHECK:STDOUT: %X.Make.specific_fn.c56: = specific_function %X.Make.366, @X.Make(%true) [concrete] +// CHECK:STDOUT: %X.7b4: type = class_type @X, @X(%true) [concrete] +// CHECK:STDOUT: %X.Make.type.4b0: type = fn_type @X.Make, @X(%true) [concrete] +// CHECK:STDOUT: %X.Make.42d: %X.Make.type.4b0 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.795: type = pattern_type %X.7b4 [concrete] +// CHECK:STDOUT: %X.Make.specific_fn.8a7: = specific_function %X.Make.42d, @X.Make(%true) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -70,56 +70,56 @@ var x2: X(Cpp.IsLarge(Cpp.Large)) = X(true).Make(); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x1.patt: %pattern_type.316 = ref_binding_pattern x1 [concrete] -// CHECK:STDOUT: %x1.var_patt: %pattern_type.316 = var_pattern %x1.patt [concrete] +// CHECK:STDOUT: %x1.patt: %pattern_type.26c = ref_binding_pattern x1 [concrete] +// CHECK:STDOUT: %x1.var_patt: %pattern_type.26c = var_pattern %x1.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %x1.var: ref %X.4e9 = var %x1.var_patt [concrete] -// CHECK:STDOUT: %.loc11: type = splice_block %X.loc11 [concrete = constants.%X.4e9] { +// CHECK:STDOUT: %x1.var: ref %X.541 = var %x1.var_patt [concrete] +// CHECK:STDOUT: %.loc11: type = splice_block %X.loc11 [concrete = constants.%X.541] { // CHECK:STDOUT: %X.ref.loc11: %X.type = name_ref X, %X.decl [concrete = constants.%X.generic] // CHECK:STDOUT: %Cpp.ref.loc11_11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %IsLarge.ref.loc11: %IsLarge.type = name_ref IsLarge, imports.%IsLarge.template [concrete = constants.%IsLarge.template] // CHECK:STDOUT: %Cpp.ref.loc11_23: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Small.ref: type = name_ref Small, imports.%Small.decl [concrete = constants.%Small] // CHECK:STDOUT: %false: bool = bool_literal false [concrete = constants.%false] -// CHECK:STDOUT: %X.loc11: type = class_type @X, @X(constants.%false) [concrete = constants.%X.4e9] +// CHECK:STDOUT: %X.loc11: type = class_type @X, @X(constants.%false) [concrete = constants.%X.541] // CHECK:STDOUT: } -// CHECK:STDOUT: %x1: ref %X.4e9 = ref_binding x1, %x1.var [concrete = %x1.var] +// CHECK:STDOUT: %x1: ref %X.541 = ref_binding x1, %x1.var [concrete = %x1.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x2.patt: %pattern_type.5e9 = ref_binding_pattern x2 [concrete] -// CHECK:STDOUT: %x2.var_patt: %pattern_type.5e9 = var_pattern %x2.patt [concrete] +// CHECK:STDOUT: %x2.patt: %pattern_type.795 = ref_binding_pattern x2 [concrete] +// CHECK:STDOUT: %x2.var_patt: %pattern_type.795 = var_pattern %x2.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %x2.var: ref %X.e08 = var %x2.var_patt [concrete] -// CHECK:STDOUT: %.loc12: type = splice_block %X.loc12 [concrete = constants.%X.e08] { +// CHECK:STDOUT: %x2.var: ref %X.7b4 = var %x2.var_patt [concrete] +// CHECK:STDOUT: %.loc12: type = splice_block %X.loc12 [concrete = constants.%X.7b4] { // CHECK:STDOUT: %X.ref.loc12: %X.type = name_ref X, %X.decl [concrete = constants.%X.generic] // CHECK:STDOUT: %Cpp.ref.loc12_11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %IsLarge.ref.loc12: %IsLarge.type = name_ref IsLarge, imports.%IsLarge.template [concrete = constants.%IsLarge.template] // CHECK:STDOUT: %Cpp.ref.loc12_23: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Large.ref: type = name_ref Large, imports.%Large.decl [concrete = constants.%Large] // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %X.loc12: type = class_type @X, @X(constants.%true) [concrete = constants.%X.e08] +// CHECK:STDOUT: %X.loc12: type = class_type @X, @X(constants.%true) [concrete = constants.%X.7b4] // CHECK:STDOUT: } -// CHECK:STDOUT: %x2: ref %X.e08 = ref_binding x2, %x2.var [concrete = %x2.var] +// CHECK:STDOUT: %x2: ref %X.7b4 = ref_binding x2, %x2.var [concrete = %x2.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %X.ref.loc11: %X.type = name_ref X, file.%X.decl [concrete = constants.%X.generic] // CHECK:STDOUT: %false: bool = bool_literal false [concrete = constants.%false] -// CHECK:STDOUT: %X.loc11: type = class_type @X, @X(constants.%false) [concrete = constants.%X.4e9] -// CHECK:STDOUT: %.loc11_45: %X.Make.type.a09 = specific_constant @X.%X.Make.decl, @X(constants.%false) [concrete = constants.%X.Make.e55] -// CHECK:STDOUT: %Make.ref.loc11: %X.Make.type.a09 = name_ref Make, %.loc11_45 [concrete = constants.%X.Make.e55] -// CHECK:STDOUT: %X.Make.specific_fn.loc11: = specific_function %Make.ref.loc11, @X.Make(constants.%false) [concrete = constants.%X.Make.specific_fn.80b] -// CHECK:STDOUT: %.loc11_1: ref %X.4e9 = splice_block file.%x1.var [concrete = file.%x1.var] {} -// CHECK:STDOUT: %X.Make.call.loc11: init %X.4e9 to %.loc11_1 = call %X.Make.specific_fn.loc11() +// CHECK:STDOUT: %X.loc11: type = class_type @X, @X(constants.%false) [concrete = constants.%X.541] +// CHECK:STDOUT: %.loc11_45: %X.Make.type.243 = specific_constant @X.%X.Make.decl, @X(constants.%false) [concrete = constants.%X.Make.d05] +// CHECK:STDOUT: %Make.ref.loc11: %X.Make.type.243 = name_ref Make, %.loc11_45 [concrete = constants.%X.Make.d05] +// CHECK:STDOUT: %X.Make.specific_fn.loc11: = specific_function %Make.ref.loc11, @X.Make(constants.%false) [concrete = constants.%X.Make.specific_fn.932] +// CHECK:STDOUT: %.loc11_1: ref %X.541 = splice_block file.%x1.var [concrete = file.%x1.var] {} +// CHECK:STDOUT: %X.Make.call.loc11: init %X.541 to %.loc11_1 = call %X.Make.specific_fn.loc11() // CHECK:STDOUT: assign file.%x1.var, %X.Make.call.loc11 // CHECK:STDOUT: %X.ref.loc12: %X.type = name_ref X, file.%X.decl [concrete = constants.%X.generic] // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %X.loc12: type = class_type @X, @X(constants.%true) [concrete = constants.%X.e08] -// CHECK:STDOUT: %.loc12_44: %X.Make.type.364 = specific_constant @X.%X.Make.decl, @X(constants.%true) [concrete = constants.%X.Make.366] -// CHECK:STDOUT: %Make.ref.loc12: %X.Make.type.364 = name_ref Make, %.loc12_44 [concrete = constants.%X.Make.366] -// CHECK:STDOUT: %X.Make.specific_fn.loc12: = specific_function %Make.ref.loc12, @X.Make(constants.%true) [concrete = constants.%X.Make.specific_fn.c56] -// CHECK:STDOUT: %.loc12_1: ref %X.e08 = splice_block file.%x2.var [concrete = file.%x2.var] {} -// CHECK:STDOUT: %X.Make.call.loc12: init %X.e08 to %.loc12_1 = call %X.Make.specific_fn.loc12() +// CHECK:STDOUT: %X.loc12: type = class_type @X, @X(constants.%true) [concrete = constants.%X.7b4] +// CHECK:STDOUT: %.loc12_44: %X.Make.type.4b0 = specific_constant @X.%X.Make.decl, @X(constants.%true) [concrete = constants.%X.Make.42d] +// CHECK:STDOUT: %Make.ref.loc12: %X.Make.type.4b0 = name_ref Make, %.loc12_44 [concrete = constants.%X.Make.42d] +// CHECK:STDOUT: %X.Make.specific_fn.loc12: = specific_function %Make.ref.loc12, @X.Make(constants.%true) [concrete = constants.%X.Make.specific_fn.8a7] +// CHECK:STDOUT: %.loc12_1: ref %X.7b4 = splice_block file.%x2.var [concrete = file.%x2.var] {} +// CHECK:STDOUT: %X.Make.call.loc12: init %X.7b4 to %.loc12_1 = call %X.Make.specific_fn.loc12() // CHECK:STDOUT: assign file.%x2.var, %X.Make.call.loc12 // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/template/non_type_param.carbon b/toolchain/check/testdata/interop/cpp/template/non_type_param.carbon index 28fb6ac583cc..7ca8f05bac09 100644 --- a/toolchain/check/testdata/interop/cpp/template/non_type_param.carbon +++ b/toolchain/check/testdata/interop/cpp/template/non_type_param.carbon @@ -183,15 +183,15 @@ fn G() -> i32 { // CHECK:STDOUT: constants { // CHECK:STDOUT: %TwoNonType: type = class_type @TwoNonType [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.69d: type = pattern_type %TwoNonType [concrete] +// CHECK:STDOUT: %pattern_type.2aa: type = pattern_type %TwoNonType [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %TwoNonType.val: %TwoNonType = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.69d = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.69d = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.2aa = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.2aa = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %TwoNonType = var %x.var_patt [concrete] // CHECK:STDOUT: %x: ref %TwoNonType = ref_binding x, %x.var [concrete = %x.var] @@ -214,19 +214,19 @@ fn G() -> i32 { // CHECK:STDOUT: %DependentNonType.template: %DependentNonType.type = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %DependentNonType.c38: type = class_type @DependentNonType.1 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %DependentNonType.43e: type = class_type @DependentNonType.1 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.b08: type = pattern_type %DependentNonType.c38 [concrete] +// CHECK:STDOUT: %pattern_type.eef: type = pattern_type %DependentNonType.43e [concrete] // CHECK:STDOUT: %MakeDependentNonType123.cpp_overload_set.type: type = cpp_overload_set_type @MakeDependentNonType123.cpp_overload_set [concrete] // CHECK:STDOUT: %MakeDependentNonType123.cpp_overload_set.value: %MakeDependentNonType123.cpp_overload_set.type = cpp_overload_set_value @MakeDependentNonType123.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.38c: type = ptr_type %DependentNonType.c38 [concrete] +// CHECK:STDOUT: %ptr.f0c: type = ptr_type %DependentNonType.43e [concrete] // CHECK:STDOUT: %MakeDependentNonType123__carbon_thunk.type: type = fn_type @MakeDependentNonType123__carbon_thunk [concrete] // CHECK:STDOUT: %MakeDependentNonType123__carbon_thunk: %MakeDependentNonType123__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %DependentNonType.930: type = class_type @DependentNonType.2 [concrete] -// CHECK:STDOUT: %pattern_type.544: type = pattern_type %DependentNonType.930 [concrete] +// CHECK:STDOUT: %DependentNonType.d43: type = class_type @DependentNonType.2 [concrete] +// CHECK:STDOUT: %pattern_type.70d: type = pattern_type %DependentNonType.d43 [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %DependentNonType.val: %DependentNonType.930 = struct_value () [concrete] +// CHECK:STDOUT: %DependentNonType.val: %DependentNonType.d43 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -243,38 +243,38 @@ fn G() -> i32 { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %StaticInt.patt: %pattern_type.104 = ref_binding_pattern StaticInt [concrete] -// CHECK:STDOUT: %StaticInt.var_patt: %pattern_type.104 = var_pattern %StaticInt.patt [concrete] +// CHECK:STDOUT: %StaticInt.patt: %pattern_type.6b6 = ref_binding_pattern StaticInt [concrete] +// CHECK:STDOUT: %StaticInt.var_patt: %pattern_type.6b6 = var_pattern %StaticInt.patt [concrete] // CHECK:STDOUT: %StaticInt.var: ref %i32 = var %StaticInt.var_patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.b08 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.b08 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.eef = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.eef = var_pattern %x.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %x.var: ref %DependentNonType.c38 = var %x.var_patt [concrete] -// CHECK:STDOUT: %x: ref %DependentNonType.c38 = ref_binding x, %x.var [concrete = %x.var] +// CHECK:STDOUT: %x.var: ref %DependentNonType.43e = var %x.var_patt [concrete] +// CHECK:STDOUT: %x: ref %DependentNonType.43e = ref_binding x, %x.var [concrete = %x.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.544 = ref_binding_pattern y [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type.544 = var_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.70d = ref_binding_pattern y [concrete] +// CHECK:STDOUT: %y.var_patt: %pattern_type.70d = var_pattern %y.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %y.var: ref %DependentNonType.930 = var %y.var_patt [concrete] -// CHECK:STDOUT: %y: ref %DependentNonType.930 = ref_binding y, %y.var [concrete = %y.var] +// CHECK:STDOUT: %y.var: ref %DependentNonType.d43 = var %y.var_patt [concrete] +// CHECK:STDOUT: %y: ref %DependentNonType.d43 = ref_binding y, %y.var [concrete = %y.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %MakeDependentNonType123.ref: %MakeDependentNonType123.cpp_overload_set.type = name_ref MakeDependentNonType123, imports.%MakeDependentNonType123.cpp_overload_set.value [concrete = constants.%MakeDependentNonType123.cpp_overload_set.value] -// CHECK:STDOUT: %.loc7_1: ref %DependentNonType.c38 = splice_block file.%x.var [concrete = file.%x.var] {} -// CHECK:STDOUT: %addr: %ptr.38c = addr_of %.loc7_1 +// CHECK:STDOUT: %.loc7_1: ref %DependentNonType.43e = splice_block file.%x.var [concrete = file.%x.var] {} +// CHECK:STDOUT: %addr: %ptr.f0c = addr_of %.loc7_1 // CHECK:STDOUT: %MakeDependentNonType123__carbon_thunk.call: init %empty_tuple.type = call imports.%MakeDependentNonType123__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %.loc7_69: init %DependentNonType.c38 to %.loc7_1 = mark_in_place_init %MakeDependentNonType123__carbon_thunk.call +// CHECK:STDOUT: %.loc7_69: init %DependentNonType.43e to %.loc7_1 = mark_in_place_init %MakeDependentNonType123__carbon_thunk.call // CHECK:STDOUT: assign file.%x.var, %.loc7_69 // CHECK:STDOUT: %.loc8_54.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc8_54.2: init %DependentNonType.930 to file.%y.var = class_init () [concrete = constants.%DependentNonType.val] -// CHECK:STDOUT: %.loc8_1: init %DependentNonType.930 = converted %.loc8_54.1, %.loc8_54.2 [concrete = constants.%DependentNonType.val] +// CHECK:STDOUT: %.loc8_54.2: init %DependentNonType.d43 to file.%y.var = class_init () [concrete = constants.%DependentNonType.val] +// CHECK:STDOUT: %.loc8_1: init %DependentNonType.d43 = converted %.loc8_54.1, %.loc8_54.2 [concrete = constants.%DependentNonType.val] // CHECK:STDOUT: assign file.%y.var, %.loc8_1 // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/template/template_template_param.carbon b/toolchain/check/testdata/interop/cpp/template/template_template_param.carbon index 22e1e4f8c5f7..b91c8f083bf9 100644 --- a/toolchain/check/testdata/interop/cpp/template/template_template_param.carbon +++ b/toolchain/check/testdata/interop/cpp/template/template_template_param.carbon @@ -84,29 +84,29 @@ var x: Cpp.TwoTemplates(Cpp.A, true); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %TwoTemplates: type = class_type @TwoTemplates [concrete] -// CHECK:STDOUT: %pattern_type.681: type = pattern_type %TwoTemplates [concrete] +// CHECK:STDOUT: %pattern_type.f5e: type = pattern_type %TwoTemplates [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] -// CHECK:STDOUT: %T.e5a: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.e5a) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.eab: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d = struct_value () [symbolic] +// CHECK:STDOUT: %T.b09: %Default.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.b09) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.cfe: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9 = struct_value () [symbolic] // CHECK:STDOUT: %TwoTemplates.Op.type: type = fn_type @TwoTemplates.Op [concrete] // CHECK:STDOUT: %TwoTemplates.Op: %TwoTemplates.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26: = custom_witness (%TwoTemplates.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.af8: %Default.type = facet_value %TwoTemplates, (%custom_witness.b26) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.af1: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.af8) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTemplates, (%DefaultOrUnformed.impl_witness.af1) [concrete] +// CHECK:STDOUT: %custom_witness.9b4: = custom_witness (%TwoTemplates.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.e75: %Default.type = facet_value %TwoTemplates, (%custom_witness.9b4) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.c67: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.e75) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTemplates, (%DefaultOrUnformed.impl_witness.c67) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.a03: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.38d) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.eab)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.48a = impl_witness_table (%Core.import_ref.a03), @T.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c2f: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.cfe)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.670 = impl_witness_table (%Core.import_ref.c2f), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.681 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.681 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.f5e = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.f5e = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %TwoTemplates = var %x.var_patt [concrete] // CHECK:STDOUT: %x: ref %TwoTemplates = ref_binding x, %x.var [concrete = %x.var] @@ -114,7 +114,7 @@ var x: Cpp.TwoTemplates(Cpp.A, true); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTemplates, (constants.%DefaultOrUnformed.impl_witness.af1) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTemplates, (constants.%DefaultOrUnformed.impl_witness.c67) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc7_38.1: %DefaultOrUnformed.type = converted constants.%TwoTemplates, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_38.1 [concrete = constants.%TwoTemplates] // CHECK:STDOUT: %.loc7_38.2: type = converted %.loc7_38.1, %as_type [concrete = constants.%TwoTemplates] diff --git a/toolchain/check/testdata/interop/cpp/template/type_param.carbon b/toolchain/check/testdata/interop/cpp/template/type_param.carbon index 4bcf6bb5158d..6a512f32a13e 100644 --- a/toolchain/check/testdata/interop/cpp/template/type_param.carbon +++ b/toolchain/check/testdata/interop/cpp/template/type_param.carbon @@ -68,29 +68,29 @@ var x: Cpp.TwoTypes(Cpp.A, {}); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %TwoTypes: type = class_type @TwoTypes [concrete] -// CHECK:STDOUT: %pattern_type.bc0: type = pattern_type %TwoTypes [concrete] +// CHECK:STDOUT: %pattern_type.83a: type = pattern_type %TwoTypes [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] -// CHECK:STDOUT: %T.e5a: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.e5a) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.eab: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d = struct_value () [symbolic] +// CHECK:STDOUT: %T.b09: %Default.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.b09) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.cfe: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9 = struct_value () [symbolic] // CHECK:STDOUT: %TwoTypes.Op.type: type = fn_type @TwoTypes.Op [concrete] // CHECK:STDOUT: %TwoTypes.Op: %TwoTypes.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26: = custom_witness (%TwoTypes.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.3d9: %Default.type = facet_value %TwoTypes, (%custom_witness.b26) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.d7b: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.3d9) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.d7b) [concrete] +// CHECK:STDOUT: %custom_witness.9b4: = custom_witness (%TwoTypes.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.49c: %Default.type = facet_value %TwoTypes, (%custom_witness.9b4) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.07d: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.49c) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.07d) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.a03: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.38d) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.eab)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.48a = impl_witness_table (%Core.import_ref.a03), @T.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c2f: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.cfe)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.670 = impl_witness_table (%Core.import_ref.c2f), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.bc0 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.bc0 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.83a = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.83a = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %TwoTypes = var %x.var_patt [concrete] // CHECK:STDOUT: %x: ref %TwoTypes = ref_binding x, %x.var [concrete = %x.var] @@ -98,7 +98,7 @@ var x: Cpp.TwoTypes(Cpp.A, {}); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.d7b) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.07d) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc7_34.1: %DefaultOrUnformed.type = converted constants.%TwoTypes, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_34.1 [concrete = constants.%TwoTypes] // CHECK:STDOUT: %.loc7_34.2: type = converted %.loc7_34.1, %as_type [concrete = constants.%TwoTypes] @@ -113,29 +113,29 @@ var x: Cpp.TwoTypes(Cpp.A, {}); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %TwoTypes: type = class_type @TwoTypes [concrete] -// CHECK:STDOUT: %pattern_type.6c8: type = pattern_type %TwoTypes [concrete] +// CHECK:STDOUT: %pattern_type.0c3: type = pattern_type %TwoTypes [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] -// CHECK:STDOUT: %T.e5a: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.e5a) [symbolic] -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.eab: %T.as_type.as.DefaultOrUnformed.impl.Op.type.38d = struct_value () [symbolic] +// CHECK:STDOUT: %T.b09: %Default.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.b09) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.cfe: %T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9 = struct_value () [symbolic] // CHECK:STDOUT: %TwoTypes.Op.type: type = fn_type @TwoTypes.Op [concrete] // CHECK:STDOUT: %TwoTypes.Op: %TwoTypes.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b26: = custom_witness (%TwoTypes.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.e79: %Default.type = facet_value %TwoTypes, (%custom_witness.b26) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.321: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.48a, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.e79) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.321) [concrete] +// CHECK:STDOUT: %custom_witness.9b4: = custom_witness (%TwoTypes.Op), @Default [concrete] +// CHECK:STDOUT: %Default.facet.651: %Default.type = facet_value %TwoTypes, (%custom_witness.9b4) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.d6f: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.670, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.651) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.d6f) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.a03: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.38d) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.eab)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.48a = impl_witness_table (%Core.import_ref.a03), @T.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.c2f: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.0c9) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.cfe)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.670 = impl_witness_table (%Core.import_ref.c2f), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.6c8 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.6c8 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.0c3 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.0c3 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %TwoTypes = var %x.var_patt [concrete] // CHECK:STDOUT: %x: ref %TwoTypes = ref_binding x, %x.var [concrete = %x.var] @@ -143,7 +143,7 @@ var x: Cpp.TwoTypes(Cpp.A, {}); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.321) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.d6f) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc7_32.1: %DefaultOrUnformed.type = converted constants.%TwoTypes, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_32.1 [concrete = constants.%TwoTypes] // CHECK:STDOUT: %.loc7_32.2: type = converted %.loc7_32.1, %as_type [concrete = constants.%TwoTypes] diff --git a/toolchain/check/testdata/interop/cpp/template/var_template.carbon b/toolchain/check/testdata/interop/cpp/template/var_template.carbon index 847ff2c4e914..6aeec0859af3 100644 --- a/toolchain/check/testdata/interop/cpp/template/var_template.carbon +++ b/toolchain/check/testdata/interop/cpp/template/var_template.carbon @@ -38,114 +38,114 @@ let pwb: Cpp.B* = &Cpp.Wrap.r#var(Cpp.B); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %A: type = class_type @A [concrete] -// CHECK:STDOUT: %ptr.9f7: type = ptr_type %A [concrete] -// CHECK:STDOUT: %pattern_type.008: type = pattern_type %ptr.9f7 [concrete] -// CHECK:STDOUT: %var.type.674: type = cpp_type_template_type r#var [concrete] -// CHECK:STDOUT: %var.template.164: %var.type.674 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.aa6: type = pattern_type %A [concrete] -// CHECK:STDOUT: %addr.b69: %ptr.9f7 = addr_of imports.%var.var.f74 [concrete] +// CHECK:STDOUT: %ptr.25f: type = ptr_type %A [concrete] +// CHECK:STDOUT: %pattern_type.1fa: type = pattern_type %ptr.25f [concrete] +// CHECK:STDOUT: %var.type.fce: type = cpp_type_template_type r#var [concrete] +// CHECK:STDOUT: %var.template.7db: %var.type.fce = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.3fa: type = pattern_type %A [concrete] +// CHECK:STDOUT: %addr.58e: %ptr.25f = addr_of imports.%var.var.64d [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] -// CHECK:STDOUT: %ptr.fab: type = ptr_type %B [concrete] -// CHECK:STDOUT: %pattern_type.857: type = pattern_type %ptr.fab [concrete] -// CHECK:STDOUT: %pattern_type.bbe: type = pattern_type %B [concrete] -// CHECK:STDOUT: %addr.e81: %ptr.fab = addr_of imports.%var.var.15d [concrete] +// CHECK:STDOUT: %ptr.dc0: type = ptr_type %B [concrete] +// CHECK:STDOUT: %pattern_type.733: type = pattern_type %ptr.dc0 [concrete] +// CHECK:STDOUT: %pattern_type.65a: type = pattern_type %B [concrete] +// CHECK:STDOUT: %addr.191: %ptr.dc0 = addr_of imports.%var.var.e6d [concrete] // CHECK:STDOUT: %Wrap: type = class_type @Wrap [concrete] -// CHECK:STDOUT: %var.type.726: type = cpp_type_template_type r#var [concrete] -// CHECK:STDOUT: %var.template.093: %var.type.726 = struct_value () [concrete] -// CHECK:STDOUT: %addr.4d5: %ptr.9f7 = addr_of imports.%var.var.e2c [concrete] -// CHECK:STDOUT: %addr.fa2: %ptr.fab = addr_of imports.%var.var.ded [concrete] +// CHECK:STDOUT: %var.type.30e: type = cpp_type_template_type r#var [concrete] +// CHECK:STDOUT: %var.template.28b: %var.type.30e = struct_value () [concrete] +// CHECK:STDOUT: %addr.7e0: %ptr.25f = addr_of imports.%var.var.6a9 [concrete] +// CHECK:STDOUT: %addr.e65: %ptr.dc0 = addr_of imports.%var.var.061 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { // CHECK:STDOUT: .A = %A.decl -// CHECK:STDOUT: .r#var = %var.template.164 +// CHECK:STDOUT: .r#var = %var.template.7db // CHECK:STDOUT: .B = %B.decl // CHECK:STDOUT: .Wrap = %Wrap.decl // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {} -// CHECK:STDOUT: %var.template.164: %var.type.674 = struct_value () [concrete = constants.%var.template.164] -// CHECK:STDOUT: %var.patt.17e: %pattern_type.aa6 = ref_binding_pattern r#var [concrete] -// CHECK:STDOUT: %var.var_patt.619: %pattern_type.aa6 = var_pattern %var.patt.17e [concrete] -// CHECK:STDOUT: %var.var.f74: ref %A = var %var.var_patt.619 [concrete] +// CHECK:STDOUT: %var.template.7db: %var.type.fce = struct_value () [concrete = constants.%var.template.7db] +// CHECK:STDOUT: %var.patt.c98: %pattern_type.3fa = ref_binding_pattern r#var [concrete] +// CHECK:STDOUT: %var.var_patt.e06: %pattern_type.3fa = var_pattern %var.patt.c98 [concrete] +// CHECK:STDOUT: %var.var.64d: ref %A = var %var.var_patt.e06 [concrete] // CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {} -// CHECK:STDOUT: %var.patt.ece: %pattern_type.bbe = ref_binding_pattern r#var [concrete] -// CHECK:STDOUT: %var.var_patt.891: %pattern_type.bbe = var_pattern %var.patt.ece [concrete] -// CHECK:STDOUT: %var.var.15d: ref %B = var %var.var_patt.891 [concrete] +// CHECK:STDOUT: %var.patt.de6: %pattern_type.65a = ref_binding_pattern r#var [concrete] +// CHECK:STDOUT: %var.var_patt.72d: %pattern_type.65a = var_pattern %var.patt.de6 [concrete] +// CHECK:STDOUT: %var.var.e6d: ref %B = var %var.var_patt.72d [concrete] // CHECK:STDOUT: %Wrap.decl: type = class_decl @Wrap [concrete = constants.%Wrap] {} {} -// CHECK:STDOUT: %var.template.093: %var.type.726 = struct_value () [concrete = constants.%var.template.093] -// CHECK:STDOUT: %var.patt.bf9: %pattern_type.aa6 = ref_binding_pattern r#var [concrete] -// CHECK:STDOUT: %var.var_patt.a11: %pattern_type.aa6 = var_pattern %var.patt.bf9 [concrete] -// CHECK:STDOUT: %var.var.e2c: ref %A = var %var.var_patt.a11 [concrete] -// CHECK:STDOUT: %var.patt.7c6: %pattern_type.bbe = ref_binding_pattern r#var [concrete] -// CHECK:STDOUT: %var.var_patt.005: %pattern_type.bbe = var_pattern %var.patt.7c6 [concrete] -// CHECK:STDOUT: %var.var.ded: ref %B = var %var.var_patt.005 [concrete] +// CHECK:STDOUT: %var.template.28b: %var.type.30e = struct_value () [concrete = constants.%var.template.28b] +// CHECK:STDOUT: %var.patt.4ff: %pattern_type.3fa = ref_binding_pattern r#var [concrete] +// CHECK:STDOUT: %var.var_patt.c1f: %pattern_type.3fa = var_pattern %var.patt.4ff [concrete] +// CHECK:STDOUT: %var.var.6a9: ref %A = var %var.var_patt.c1f [concrete] +// CHECK:STDOUT: %var.patt.96f: %pattern_type.65a = ref_binding_pattern r#var [concrete] +// CHECK:STDOUT: %var.var_patt.891: %pattern_type.65a = var_pattern %var.patt.96f [concrete] +// CHECK:STDOUT: %var.var.061: ref %B = var %var.var_patt.891 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pa.patt: %pattern_type.008 = value_binding_pattern pa [concrete] +// CHECK:STDOUT: %pa.patt: %pattern_type.1fa = value_binding_pattern pa [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.9f7] { +// CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.25f] { // CHECK:STDOUT: %Cpp.ref.loc7: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %A.ref.loc7: type = name_ref A, imports.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %ptr.loc7: type = ptr_type %A.ref.loc7 [concrete = constants.%ptr.9f7] +// CHECK:STDOUT: %ptr.loc7: type = ptr_type %A.ref.loc7 [concrete = constants.%ptr.25f] // CHECK:STDOUT: } -// CHECK:STDOUT: %pa: %ptr.9f7 = value_binding pa, @__global_init.%addr.loc7 +// CHECK:STDOUT: %pa: %ptr.25f = value_binding pa, @__global_init.%addr.loc7 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pb.patt: %pattern_type.857 = value_binding_pattern pb [concrete] +// CHECK:STDOUT: %pb.patt: %pattern_type.733 = value_binding_pattern pb [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8: type = splice_block %ptr.loc8 [concrete = constants.%ptr.fab] { +// CHECK:STDOUT: %.loc8: type = splice_block %ptr.loc8 [concrete = constants.%ptr.dc0] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %B.ref.loc8: type = name_ref B, imports.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %ptr.loc8: type = ptr_type %B.ref.loc8 [concrete = constants.%ptr.fab] +// CHECK:STDOUT: %ptr.loc8: type = ptr_type %B.ref.loc8 [concrete = constants.%ptr.dc0] // CHECK:STDOUT: } -// CHECK:STDOUT: %pb: %ptr.fab = value_binding pb, @__global_init.%addr.loc8 +// CHECK:STDOUT: %pb: %ptr.dc0 = value_binding pb, @__global_init.%addr.loc8 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pwa.patt: %pattern_type.008 = value_binding_pattern pwa [concrete] +// CHECK:STDOUT: %pwa.patt: %pattern_type.1fa = value_binding_pattern pwa [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc9: type = splice_block %ptr.loc9 [concrete = constants.%ptr.9f7] { +// CHECK:STDOUT: %.loc9: type = splice_block %ptr.loc9 [concrete = constants.%ptr.25f] { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %A.ref.loc9: type = name_ref A, imports.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %ptr.loc9: type = ptr_type %A.ref.loc9 [concrete = constants.%ptr.9f7] +// CHECK:STDOUT: %ptr.loc9: type = ptr_type %A.ref.loc9 [concrete = constants.%ptr.25f] // CHECK:STDOUT: } -// CHECK:STDOUT: %pwa: %ptr.9f7 = value_binding pwa, @__global_init.%addr.loc9 +// CHECK:STDOUT: %pwa: %ptr.25f = value_binding pwa, @__global_init.%addr.loc9 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pwb.patt: %pattern_type.857 = value_binding_pattern pwb [concrete] +// CHECK:STDOUT: %pwb.patt: %pattern_type.733 = value_binding_pattern pwb [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc10: type = splice_block %ptr.loc10 [concrete = constants.%ptr.fab] { +// CHECK:STDOUT: %.loc10: type = splice_block %ptr.loc10 [concrete = constants.%ptr.dc0] { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %B.ref.loc10: type = name_ref B, imports.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %ptr.loc10: type = ptr_type %B.ref.loc10 [concrete = constants.%ptr.fab] +// CHECK:STDOUT: %ptr.loc10: type = ptr_type %B.ref.loc10 [concrete = constants.%ptr.dc0] // CHECK:STDOUT: } -// CHECK:STDOUT: %pwb: %ptr.fab = value_binding pwb, @__global_init.%addr.loc10 +// CHECK:STDOUT: %pwb: %ptr.dc0 = value_binding pwb, @__global_init.%addr.loc10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Cpp.ref.loc7_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %var.ref.loc7: %var.type.674 = name_ref r#var, imports.%var.template.164 [concrete = constants.%var.template.164] +// CHECK:STDOUT: %var.ref.loc7: %var.type.fce = name_ref r#var, imports.%var.template.7db [concrete = constants.%var.template.7db] // CHECK:STDOUT: %Cpp.ref.loc7_29: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %A.ref.loc7: type = name_ref A, imports.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %addr.loc7: %ptr.9f7 = addr_of imports.%var.var.f74 [concrete = constants.%addr.b69] +// CHECK:STDOUT: %addr.loc7: %ptr.25f = addr_of imports.%var.var.64d [concrete = constants.%addr.58e] // CHECK:STDOUT: %Cpp.ref.loc8_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %var.ref.loc8: %var.type.674 = name_ref r#var, imports.%var.template.164 [concrete = constants.%var.template.164] +// CHECK:STDOUT: %var.ref.loc8: %var.type.fce = name_ref r#var, imports.%var.template.7db [concrete = constants.%var.template.7db] // CHECK:STDOUT: %Cpp.ref.loc8_29: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %B.ref.loc8: type = name_ref B, imports.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %addr.loc8: %ptr.fab = addr_of imports.%var.var.15d [concrete = constants.%addr.e81] +// CHECK:STDOUT: %addr.loc8: %ptr.dc0 = addr_of imports.%var.var.e6d [concrete = constants.%addr.191] // CHECK:STDOUT: %Cpp.ref.loc9_20: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Wrap.ref.loc9: type = name_ref Wrap, imports.%Wrap.decl [concrete = constants.%Wrap] -// CHECK:STDOUT: %var.ref.loc9: %var.type.726 = name_ref r#var, imports.%var.template.093 [concrete = constants.%var.template.093] +// CHECK:STDOUT: %var.ref.loc9: %var.type.30e = name_ref r#var, imports.%var.template.28b [concrete = constants.%var.template.28b] // CHECK:STDOUT: %Cpp.ref.loc9_35: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %A.ref.loc9: type = name_ref A, imports.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %addr.loc9: %ptr.9f7 = addr_of imports.%var.var.e2c [concrete = constants.%addr.4d5] +// CHECK:STDOUT: %addr.loc9: %ptr.25f = addr_of imports.%var.var.6a9 [concrete = constants.%addr.7e0] // CHECK:STDOUT: %Cpp.ref.loc10_20: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Wrap.ref.loc10: type = name_ref Wrap, imports.%Wrap.decl [concrete = constants.%Wrap] -// CHECK:STDOUT: %var.ref.loc10: %var.type.726 = name_ref r#var, imports.%var.template.093 [concrete = constants.%var.template.093] +// CHECK:STDOUT: %var.ref.loc10: %var.type.30e = name_ref r#var, imports.%var.template.28b [concrete = constants.%var.template.28b] // CHECK:STDOUT: %Cpp.ref.loc10_35: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %B.ref.loc10: type = name_ref B, imports.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %addr.loc10: %ptr.fab = addr_of imports.%var.var.ded [concrete = constants.%addr.fa2] +// CHECK:STDOUT: %addr.loc10: %ptr.dc0 = addr_of imports.%var.var.061 [concrete = constants.%addr.e65] // CHECK:STDOUT: // CHECK:STDOUT: } // 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 4340acd0cce8..49c95f48d26f 100644 --- a/toolchain/check/testdata/interop/cpp/type_alias/import.carbon +++ b/toolchain/check/testdata/interop/cpp/type_alias/import.carbon @@ -56,39 +56,39 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_42.20e: Core.IntLiteral = int_value 42 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_42.20e, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_42.daa: %i32 = int_value 42 [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr.847 [concrete] +// CHECK:STDOUT: %int_42.ac4: %i32 = int_value 42 [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.c37: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ae4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.6e4: %ptr.as.Copy.impl.Op.type.ae4 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.847, (%Copy.impl_witness.c37) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.165: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.cd7: type = fn_type_with_self_type %Copy.WithSelf.Op.type.165, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.6e4, @ptr.as.Copy.impl.Op(%i32) [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.loc10 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.ce1: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c1c: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.d1c: %ptr.as.Copy.impl.Op.type.c1c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.d08, (%Copy.impl_witness.ce1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.f9d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.ac9: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f9d, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -97,26 +97,26 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: .bar = @F.%i32.2 // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = ref_binding_pattern n [concrete] -// CHECK:STDOUT: %n.var_patt: %pattern_type.104 = var_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = ref_binding_pattern n [concrete] +// CHECK:STDOUT: %n.var_patt: %pattern_type.6b6 = var_pattern %n.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %n.var: ref %i32 = var %n.var_patt // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] -// CHECK:STDOUT: %impl.elem0.loc8: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc8: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc8_3.1: = bound_method %int_42, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_3.2: = bound_method %int_42, %specific_fn.loc8 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_3.2(%int_42) [concrete = constants.%int_42.daa] -// CHECK:STDOUT: %.loc8_3: init %i32 = converted %int_42, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_42.daa] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_3.2(%int_42) [concrete = constants.%int_42.ac4] +// CHECK:STDOUT: %.loc8_3: init %i32 = converted %int_42, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_42.ac4] // CHECK:STDOUT: assign %n.var, %.loc8_3 // CHECK:STDOUT: %.loc8_13: type = splice_block %foo.ref [concrete = constants.%i32] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -125,33 +125,33 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: } // CHECK:STDOUT: %n: ref %i32 = ref_binding n, %n.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.7b5 = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.7b5 = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.f00 = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.f00 = var_pattern %p.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %p.var: ref %ptr.847 = var %p.var_patt +// CHECK:STDOUT: %p.var: ref %ptr.d08 = var %p.var_patt // CHECK:STDOUT: %n.ref: ref %i32 = name_ref n, %n -// CHECK:STDOUT: %addr: %ptr.847 = addr_of %n.ref -// CHECK:STDOUT: %impl.elem0.loc10: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %addr: %ptr.d08 = addr_of %n.ref +// CHECK:STDOUT: %impl.elem0.loc10: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc10_28.1: = bound_method %addr, %impl.elem0.loc10 // CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc10_28.2: = bound_method %addr, %specific_fn.loc10 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.847 = call %bound_method.loc10_28.2(%addr) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d08 = call %bound_method.loc10_28.2(%addr) // CHECK:STDOUT: assign %p.var, %ptr.as.Copy.impl.Op.call -// CHECK:STDOUT: %.loc10: type = splice_block %ptr [concrete = constants.%ptr.847] { +// CHECK:STDOUT: %.loc10: type = splice_block %ptr [concrete = constants.%ptr.d08] { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: // CHECK:STDOUT: %bar.ref: type = name_ref bar, %i32.2 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %bar.ref [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr: type = ptr_type %bar.ref [concrete = constants.%ptr.d08] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: ref %ptr.847 = ref_binding p, %p.var -// CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %p.var, constants.%Destroy.Op.2dd605.1 +// CHECK:STDOUT: %p: ref %ptr.d08 = ref_binding p, %p.var +// 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.2dd605.3 +// 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: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10(%self.param: ref %ptr.847) = "no_op"; +// CHECK:STDOUT: fn @Destroy.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: @@ -165,19 +165,19 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.0d0: type = pattern_type %ptr.3a8 [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.8fa: type = pattern_type %ptr.0a2 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.954: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.65e: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.299: %ptr.as.Copy.impl.Op.type.65e = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.3a8, (%Copy.impl_witness.954) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.203: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.07e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.203, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.299, @ptr.as.Copy.impl.Op(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.00a: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.1e1: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.4ad: %ptr.as.Copy.impl.Op.type.1e1 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.0a2, (%Copy.impl_witness.00a) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.aaa: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.51b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.aaa, %Copy.facet [concrete] +// 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: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -189,50 +189,50 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @H(%c.param: ref %C, %d.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pd.patt: %pattern_type.0d0 = ref_binding_pattern pd [concrete] -// CHECK:STDOUT: %pd.var_patt: %pattern_type.0d0 = var_pattern %pd.patt [concrete] +// CHECK:STDOUT: %pd.patt: %pattern_type.8fa = ref_binding_pattern pd [concrete] +// CHECK:STDOUT: %pd.var_patt: %pattern_type.8fa = var_pattern %pd.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %pd.var: ref %ptr.3a8 = var %pd.var_patt +// CHECK:STDOUT: %pd.var: ref %ptr.0a2 = var %pd.var_patt // CHECK:STDOUT: %c.ref: ref %C = name_ref c, %c -// CHECK:STDOUT: %addr.loc9: %ptr.3a8 = addr_of %c.ref -// CHECK:STDOUT: %impl.elem0.loc9: %.07e = impl_witness_access constants.%Copy.impl_witness.954, element0 [concrete = constants.%ptr.as.Copy.impl.Op.299] +// CHECK:STDOUT: %addr.loc9: %ptr.0a2 = addr_of %c.ref +// CHECK:STDOUT: %impl.elem0.loc9: %.51b = impl_witness_access constants.%Copy.impl_witness.00a, element0 [concrete = constants.%ptr.as.Copy.impl.Op.4ad] // CHECK:STDOUT: %bound_method.loc9_27.1: = bound_method %addr.loc9, %impl.elem0.loc9 // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @ptr.as.Copy.impl.Op(constants.%C) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9_27.2: = bound_method %addr.loc9, %specific_fn.loc9 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc9: init %ptr.3a8 = call %bound_method.loc9_27.2(%addr.loc9) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc9: init %ptr.0a2 = call %bound_method.loc9_27.2(%addr.loc9) // CHECK:STDOUT: assign %pd.var, %ptr.as.Copy.impl.Op.call.loc9 -// CHECK:STDOUT: %.loc9: type = splice_block %ptr.loc9 [concrete = constants.%ptr.3a8] { +// CHECK:STDOUT: %.loc9: type = splice_block %ptr.loc9 [concrete = constants.%ptr.0a2] { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %D.ref.loc9: type = name_ref D, imports.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc9: type = ptr_type %D.ref.loc9 [concrete = constants.%ptr.3a8] +// CHECK:STDOUT: %ptr.loc9: type = ptr_type %D.ref.loc9 [concrete = constants.%ptr.0a2] // CHECK:STDOUT: } -// CHECK:STDOUT: %pd: ref %ptr.3a8 = ref_binding pd, %pd.var +// CHECK:STDOUT: %pd: ref %ptr.0a2 = ref_binding pd, %pd.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pc.patt: %pattern_type.0d0 = ref_binding_pattern pc [concrete] -// CHECK:STDOUT: %pc.var_patt: %pattern_type.0d0 = var_pattern %pc.patt [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: } -// CHECK:STDOUT: %pc.var: ref %ptr.3a8 = var %pc.var_patt +// CHECK:STDOUT: %pc.var: ref %ptr.0a2 = var %pc.var_patt // CHECK:STDOUT: %d.ref: ref %C = name_ref d, %d -// CHECK:STDOUT: %addr.loc10: %ptr.3a8 = addr_of %d.ref -// CHECK:STDOUT: %impl.elem0.loc10: %.07e = impl_witness_access constants.%Copy.impl_witness.954, element0 [concrete = constants.%ptr.as.Copy.impl.Op.299] +// CHECK:STDOUT: %addr.loc10: %ptr.0a2 = addr_of %d.ref +// CHECK:STDOUT: %impl.elem0.loc10: %.51b = impl_witness_access constants.%Copy.impl_witness.00a, element0 [concrete = constants.%ptr.as.Copy.impl.Op.4ad] // CHECK:STDOUT: %bound_method.loc10_27.1: = bound_method %addr.loc10, %impl.elem0.loc10 // CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10, @ptr.as.Copy.impl.Op(constants.%C) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc10_27.2: = bound_method %addr.loc10, %specific_fn.loc10 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc10: init %ptr.3a8 = call %bound_method.loc10_27.2(%addr.loc10) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc10: init %ptr.0a2 = call %bound_method.loc10_27.2(%addr.loc10) // CHECK:STDOUT: assign %pc.var, %ptr.as.Copy.impl.Op.call.loc10 -// CHECK:STDOUT: %.loc10: type = splice_block %ptr.loc10 [concrete = constants.%ptr.3a8] { +// CHECK:STDOUT: %.loc10: type = splice_block %ptr.loc10 [concrete = constants.%ptr.0a2] { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc10: type = name_ref C, imports.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc10: type = ptr_type %C.ref.loc10 [concrete = constants.%ptr.3a8] +// CHECK:STDOUT: %ptr.loc10: type = ptr_type %C.ref.loc10 [concrete = constants.%ptr.0a2] // CHECK:STDOUT: } -// CHECK:STDOUT: %pc: ref %ptr.3a8 = ref_binding pc, %pc.var +// CHECK:STDOUT: %pc: ref %ptr.0a2 = ref_binding pc, %pc.var // 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 @@ -240,5 +240,5 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr.3a8) = "no_op"; +// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr.0a2) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/var/import/global.carbon b/toolchain/check/testdata/interop/cpp/var/import/global.carbon index 79528388fc69..193e207958fb 100644 --- a/toolchain/check/testdata/interop/cpp/var/import/global.carbon +++ b/toolchain/check/testdata/interop/cpp/var/import/global.carbon @@ -77,13 +77,13 @@ fn MyF() { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] -// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.0d0: type = pattern_type %ptr.3a8 [concrete] -// CHECK:STDOUT: %const: type = const_type %ptr.3a8 [concrete] -// CHECK:STDOUT: %pattern_type.3f2: type = pattern_type %const [concrete] -// CHECK:STDOUT: %global_ref.var: ref %ptr.3a8 = var imports.%global_ref.var_patt [concrete] -// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of imports.%global.var [concrete] +// CHECK:STDOUT: %pattern_type.bbc: type = pattern_type %C [concrete] +// CHECK:STDOUT: %ptr.0a2: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.8fa: type = pattern_type %ptr.0a2 [concrete] +// CHECK:STDOUT: %const: type = const_type %ptr.0a2 [concrete] +// CHECK:STDOUT: %pattern_type.635: type = pattern_type %const [concrete] +// CHECK:STDOUT: %global_ref.var: ref %ptr.0a2 = var imports.%global_ref.var_patt [concrete] +// CHECK:STDOUT: %addr: %ptr.0a2 = addr_of imports.%global.var [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -99,14 +99,14 @@ fn MyF() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %global.patt: %pattern_type.479 = ref_binding_pattern global [concrete] -// CHECK:STDOUT: %global.var_patt: %pattern_type.479 = var_pattern %global.patt [concrete] +// CHECK:STDOUT: %global.patt: %pattern_type.bbc = ref_binding_pattern global [concrete] +// CHECK:STDOUT: %global.var_patt: %pattern_type.bbc = var_pattern %global.patt [concrete] // CHECK:STDOUT: %global.var: ref %C = var %global.var_patt [concrete] -// CHECK:STDOUT: %global_ptr.patt: %pattern_type.0d0 = ref_binding_pattern global_ptr [concrete] -// CHECK:STDOUT: %global_ptr.var_patt: %pattern_type.0d0 = var_pattern %global_ptr.patt [concrete] -// CHECK:STDOUT: %global_ptr.var: ref %ptr.3a8 = var %global_ptr.var_patt [concrete] -// CHECK:STDOUT: %global_ref.patt: %pattern_type.3f2 = ref_binding_pattern global_ref [concrete] -// CHECK:STDOUT: %global_ref.var_patt: %pattern_type.3f2 = var_pattern %global_ref.patt [concrete] +// CHECK:STDOUT: %global_ptr.patt: %pattern_type.8fa = ref_binding_pattern global_ptr [concrete] +// CHECK:STDOUT: %global_ptr.var_patt: %pattern_type.8fa = var_pattern %global_ptr.patt [concrete] +// CHECK:STDOUT: %global_ptr.var: ref %ptr.0a2 = var %global_ptr.var_patt [concrete] +// CHECK:STDOUT: %global_ref.patt: %pattern_type.635 = ref_binding_pattern global_ref [concrete] +// CHECK:STDOUT: %global_ref.var_patt: %pattern_type.635 = var_pattern %global_ref.patt [concrete] // CHECK:STDOUT: %global_ref.var: ref %const = var %global_ref.var_patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -135,7 +135,7 @@ fn MyF() { // CHECK:STDOUT: fn @MyF() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %local.patt: %pattern_type.479 = value_binding_pattern local [concrete] +// CHECK:STDOUT: %local.patt: %pattern_type.bbc = value_binding_pattern local [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc7_29: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %global.ref: ref %C = name_ref global, imports.%global.var [concrete = imports.%global.var] @@ -146,32 +146,32 @@ fn MyF() { // CHECK:STDOUT: %.loc7_32: %C = acquire_value %global.ref // CHECK:STDOUT: %local: %C = value_binding local, %.loc7_32 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %local_ptr.patt: %pattern_type.0d0 = value_binding_pattern local_ptr [concrete] +// CHECK:STDOUT: %local_ptr.patt: %pattern_type.8fa = value_binding_pattern local_ptr [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_34: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %global_ptr.ref: ref %ptr.3a8 = name_ref global_ptr, imports.%global_ptr.var [concrete = imports.%global_ptr.var] -// CHECK:STDOUT: %.loc8_30: type = splice_block %ptr.loc8 [concrete = constants.%ptr.3a8] { +// CHECK:STDOUT: %global_ptr.ref: ref %ptr.0a2 = name_ref global_ptr, imports.%global_ptr.var [concrete = imports.%global_ptr.var] +// CHECK:STDOUT: %.loc8_30: type = splice_block %ptr.loc8 [concrete = constants.%ptr.0a2] { // CHECK:STDOUT: %Cpp.ref.loc8_25: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, imports.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc8: type = ptr_type %C.ref.loc8 [concrete = constants.%ptr.3a8] +// CHECK:STDOUT: %ptr.loc8: type = ptr_type %C.ref.loc8 [concrete = constants.%ptr.0a2] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8_37: %ptr.3a8 = acquire_value %global_ptr.ref -// CHECK:STDOUT: %local_ptr: %ptr.3a8 = value_binding local_ptr, %.loc8_37 +// CHECK:STDOUT: %.loc8_37: %ptr.0a2 = acquire_value %global_ptr.ref +// CHECK:STDOUT: %local_ptr: %ptr.0a2 = value_binding local_ptr, %.loc8_37 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %local_ref.patt: %pattern_type.0d0 = value_binding_pattern local_ref [concrete] +// CHECK:STDOUT: %local_ref.patt: %pattern_type.8fa = value_binding_pattern local_ref [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_34: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %global_ref.ref: ref %const = name_ref global_ref, imports.%global_ref.var [concrete = imports.%global_ref.var] -// CHECK:STDOUT: %.loc9_30: type = splice_block %ptr.loc9 [concrete = constants.%ptr.3a8] { +// CHECK:STDOUT: %.loc9_30: type = splice_block %ptr.loc9 [concrete = constants.%ptr.0a2] { // CHECK:STDOUT: %Cpp.ref.loc9_25: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc9: type = name_ref C, imports.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc9: type = ptr_type %C.ref.loc9 [concrete = constants.%ptr.3a8] +// CHECK:STDOUT: %ptr.loc9: type = ptr_type %C.ref.loc9 [concrete = constants.%ptr.0a2] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc9_37.1: ref %ptr.3a8 = as_compatible %global_ref.ref [concrete = constants.%global_ref.var] -// CHECK:STDOUT: %.loc9_37.2: ref %ptr.3a8 = converted %global_ref.ref, %.loc9_37.1 [concrete = constants.%global_ref.var] -// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of imports.%global.var [concrete = constants.%addr] -// CHECK:STDOUT: %.loc9_37.3: %ptr.3a8 = acquire_value %.loc9_37.2 [concrete = constants.%addr] -// CHECK:STDOUT: %local_ref: %ptr.3a8 = value_binding local_ref, %.loc9_37.3 +// CHECK:STDOUT: %.loc9_37.1: ref %ptr.0a2 = as_compatible %global_ref.ref [concrete = constants.%global_ref.var] +// CHECK:STDOUT: %.loc9_37.2: ref %ptr.0a2 = converted %global_ref.ref, %.loc9_37.1 [concrete = constants.%global_ref.var] +// CHECK:STDOUT: %addr: %ptr.0a2 = addr_of imports.%global.var [concrete = constants.%addr] +// CHECK:STDOUT: %.loc9_37.3: %ptr.0a2 = acquire_value %.loc9_37.2 [concrete = constants.%addr] +// CHECK:STDOUT: %local_ref: %ptr.0a2 = value_binding local_ref, %.loc9_37.3 // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/let/compile_time_bindings.carbon b/toolchain/check/testdata/let/compile_time_bindings.carbon index 8d36a265fa9e..a49c08d5cb3b 100644 --- a/toolchain/check/testdata/let/compile_time_bindings.carbon +++ b/toolchain/check/testdata/let/compile_time_bindings.carbon @@ -502,8 +502,8 @@ impl i32 as Empty { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %Self, @I [symbolic] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %.572: Core.Form = init_form %impl.elem0 [symbolic] -// CHECK:STDOUT: %pattern_type.e20: type = pattern_type %impl.elem0 [symbolic] +// CHECK:STDOUT: %.157: Core.Form = init_form %impl.elem0 [symbolic] +// CHECK:STDOUT: %pattern_type.0a2: type = pattern_type %impl.elem0 [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %I.WithSelf.F: %I.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %assoc1: %I.assoc_type = assoc_entity element1, @I.WithSelf.%I.WithSelf.F.decl [concrete] @@ -537,12 +537,12 @@ impl i32 as Empty { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: } // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] { -// CHECK:STDOUT: %return.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.e20) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @I.WithSelf.F.%pattern_type (%pattern_type.e20) = return_slot_pattern %return.param_patt, %T.ref [concrete] +// CHECK:STDOUT: %return.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.0a2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @I.WithSelf.F.%pattern_type (%pattern_type.0a2) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %impl.elem0.loc6_13.2: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_13.1 (constants.%impl.elem0)] // CHECK:STDOUT: %T.ref: type = name_ref T, %impl.elem0.loc6_13.2 [symbolic = %impl.elem0.loc6_13.1 (constants.%impl.elem0)] -// CHECK:STDOUT: %.loc6_13.2: Core.Form = init_form %T.ref [symbolic = %.loc6_13.1 (constants.%.572)] +// CHECK:STDOUT: %.loc6_13.2: Core.Form = init_form %T.ref [symbolic = %.loc6_13.1 (constants.%.157)] // CHECK:STDOUT: %return.param: ref @I.WithSelf.F.%impl.elem0.loc6_13.1 (%impl.elem0) = out_param call_param0 // CHECK:STDOUT: %return: ref @I.WithSelf.F.%impl.elem0.loc6_13.1 (%impl.elem0) = return_slot %return.param // CHECK:STDOUT: } @@ -561,8 +561,8 @@ impl i32 as Empty { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %Self, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] // CHECK:STDOUT: %impl.elem0.loc6_13.1: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_13.1 (constants.%impl.elem0)] -// CHECK:STDOUT: %.loc6_13.1: Core.Form = init_form %impl.elem0.loc6_13.1 [symbolic = %.loc6_13.1 (constants.%.572)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc6_13.1 [symbolic = %pattern_type (constants.%pattern_type.e20)] +// CHECK:STDOUT: %.loc6_13.1: Core.Form = init_form %impl.elem0.loc6_13.1 [symbolic = %.loc6_13.1 (constants.%.157)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc6_13.1 [symbolic = %pattern_type (constants.%pattern_type.0a2)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: @I.WithSelf.F.%impl.elem0.loc6_13.1 (%impl.elem0); // CHECK:STDOUT: } @@ -573,8 +573,8 @@ impl i32 as Empty { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.lookup_impl_witness // CHECK:STDOUT: %impl.elem0.loc6_13.1 => constants.%impl.elem0 -// CHECK:STDOUT: %.loc6_13.1 => constants.%.572 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e20 +// CHECK:STDOUT: %.loc6_13.1 => constants.%.157 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0a2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_return_in_class.carbon @@ -697,7 +697,7 @@ impl i32 as Empty { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Empty.type: type = facet_type <@Empty> [concrete] -// CHECK:STDOUT: %Self.2f3: %Empty.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.d44: %Empty.type = symbolic_binding Self, 0 [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] @@ -705,24 +705,24 @@ impl i32 as Empty { // CHECK:STDOUT: %Empty.impl_witness: = impl_witness @i32.as.Empty.impl.%Empty.impl_witness_table [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %Empty.facet: %Empty.type = facet_value %i32, (%Empty.impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -734,9 +734,9 @@ impl i32 as Empty { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -753,7 +753,7 @@ impl i32 as Empty { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Empty { -// CHECK:STDOUT: %Self: %Empty.type = symbolic_binding Self, 0 [symbolic = constants.%Self.2f3] +// CHECK:STDOUT: %Self: %Empty.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d44] // CHECK:STDOUT: %Empty.WithSelf.decl = interface_with_self_decl @Empty [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -765,20 +765,20 @@ impl i32 as Empty { // CHECK:STDOUT: // CHECK:STDOUT: impl @i32.as.Empty.impl: %i32.loc6 as %Empty.ref { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %Zero.patt: %pattern_type.104 = value_binding_pattern Zero [concrete] +// CHECK:STDOUT: %Zero.patt: %pattern_type.6b6 = value_binding_pattern Zero [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc11_14: type = splice_block %i32.loc11 [concrete = constants.%i32] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %i32.loc11: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc11_20.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_20.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc11_20.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc11_20.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc11_20.2: %i32 = converted %int_0, %.loc11_20.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc11_20.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc11_20.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc11_20.2: %i32 = converted %int_0, %.loc11_20.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %Zero: %i32 = value_binding Zero, %.loc11_20.2 // CHECK:STDOUT: %Empty.impl_witness_table = impl_witness_table (), @i32.as.Empty.impl [concrete] // CHECK:STDOUT: %Empty.impl_witness: = impl_witness %Empty.impl_witness_table [concrete = constants.%Empty.impl_witness] @@ -789,7 +789,7 @@ impl i32 as Empty { // CHECK:STDOUT: witness = %Empty.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Empty.WithSelf(constants.%Self.2f3) { +// CHECK:STDOUT: specific @Empty.WithSelf(constants.%Self.d44) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/let/convert.carbon b/toolchain/check/testdata/let/convert.carbon index 2331221593b5..93352cda734d 100644 --- a/toolchain/check/testdata/let/convert.carbon +++ b/toolchain/check/testdata/let/convert.carbon @@ -50,24 +50,24 @@ fn G() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.ff9: type = tuple_type (type, type, type) [concrete] -// CHECK:STDOUT: %tuple.27c: %tuple.type.ff9 = tuple_value (%i32, %i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.05f: type = tuple_type (%i32, %i32, %i32) [concrete] -// CHECK:STDOUT: %pattern_type.776: type = pattern_type %tuple.type.05f [concrete] +// CHECK:STDOUT: %tuple.04d: %tuple.type.ff9 = tuple_value (%i32, %i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.555: type = tuple_type (%i32, %i32, %i32) [concrete] +// CHECK:STDOUT: %pattern_type.777: type = pattern_type %tuple.type.555 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %w.patt: %pattern_type.776 = value_binding_pattern w [concrete] +// CHECK:STDOUT: %w.patt: %pattern_type.777 = value_binding_pattern w [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.ref: ref %tuple.type.05f = name_ref v, %v -// CHECK:STDOUT: %.loc8_24.1: type = splice_block %.loc8_24.3 [concrete = constants.%tuple.type.05f] { +// CHECK:STDOUT: %v.ref: ref %tuple.type.555 = name_ref v, %v +// CHECK:STDOUT: %.loc8_24.1: type = splice_block %.loc8_24.3 [concrete = constants.%tuple.type.555] { // CHECK:STDOUT: %i32.loc8_11: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc8_16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc8_21: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc8_24.2: %tuple.type.ff9 = tuple_literal (%i32.loc8_11, %i32.loc8_16, %i32.loc8_21) [concrete = constants.%tuple.27c] -// CHECK:STDOUT: %.loc8_24.3: type = converted %.loc8_24.2, constants.%tuple.type.05f [concrete = constants.%tuple.type.05f] +// CHECK:STDOUT: %.loc8_24.2: %tuple.type.ff9 = tuple_literal (%i32.loc8_11, %i32.loc8_16, %i32.loc8_21) [concrete = constants.%tuple.04d] +// CHECK:STDOUT: %.loc8_24.3: type = converted %.loc8_24.2, constants.%tuple.type.555 [concrete = constants.%tuple.type.555] // CHECK:STDOUT: } // CHECK:STDOUT: %tuple.elem0.loc8: ref %i32 = tuple_access %v.ref, element0 // CHECK:STDOUT: %.loc8_28.1: %i32 = acquire_value %tuple.elem0.loc8 @@ -75,9 +75,9 @@ fn G() { // CHECK:STDOUT: %.loc8_28.2: %i32 = acquire_value %tuple.elem1.loc8 // CHECK:STDOUT: %tuple.elem2.loc8: ref %i32 = tuple_access %v.ref, element2 // CHECK:STDOUT: %.loc8_28.3: %i32 = acquire_value %tuple.elem2.loc8 -// CHECK:STDOUT: %tuple: %tuple.type.05f = tuple_value (%.loc8_28.1, %.loc8_28.2, %.loc8_28.3) -// CHECK:STDOUT: %.loc8_28.4: %tuple.type.05f = converted %v.ref, %tuple -// CHECK:STDOUT: %w: %tuple.type.05f = value_binding w, %.loc8_28.4 +// CHECK:STDOUT: %tuple: %tuple.type.555 = tuple_value (%.loc8_28.1, %.loc8_28.2, %.loc8_28.3) +// CHECK:STDOUT: %.loc8_28.4: %tuple.type.555 = converted %v.ref, %tuple +// CHECK:STDOUT: %w: %tuple.type.555 = value_binding w, %.loc8_28.4 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/let/fail_duplicate_decl.carbon b/toolchain/check/testdata/let/fail_duplicate_decl.carbon index 0ec5baa3614d..15ce1c784f55 100644 --- a/toolchain/check/testdata/let/fail_duplicate_decl.carbon +++ b/toolchain/check/testdata/let/fail_duplicate_decl.carbon @@ -33,28 +33,28 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = 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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -65,9 +65,9 @@ fn F() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -82,30 +82,30 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt.loc16: %pattern_type.104 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt.loc16: %pattern_type.6b6 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc16: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc16_23.1: = bound_method %int_1, %impl.elem0.loc16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc16: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc16_23.1: = bound_method %int_1, %impl.elem0.loc16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_23.2: = bound_method %int_1, %specific_fn.loc16 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16: init %i32 = call %bound_method.loc16_23.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc16_23.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc16_23.2: %i32 = converted %int_1, %.loc16_23.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc16_23.2: = bound_method %int_1, %specific_fn.loc16 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16: init %i32 = call %bound_method.loc16_23.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc16_23.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc16_23.2: %i32 = converted %int_1, %.loc16_23.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %a.loc16: %i32 = value_binding a, %.loc16_23.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt.loc24: %pattern_type.104 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt.loc24: %pattern_type.6b6 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %i32.loc24: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc24: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc24_23.1: = bound_method %int_2, %impl.elem0.loc24 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %impl.elem0.loc24: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc24_23.1: = bound_method %int_2, %impl.elem0.loc24 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc24: = specific_function %impl.elem0.loc24, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc24_23.2: = bound_method %int_2, %specific_fn.loc24 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc24: init %i32 = call %bound_method.loc24_23.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc24_23.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc24 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc24_23.2: %i32 = converted %int_2, %.loc24_23.1 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc24_23.2: = bound_method %int_2, %specific_fn.loc24 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc24: init %i32 = call %bound_method.loc24_23.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc24_23.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc24 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc24_23.2: %i32 = converted %int_2, %.loc24_23.1 [concrete = constants.%int_2.295] // CHECK:STDOUT: %a.loc24: %i32 = value_binding a, %.loc24_23.2 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/let/fail_missing_value.carbon b/toolchain/check/testdata/let/fail_missing_value.carbon index 2c80e8cc3c05..b24e9451d289 100644 --- a/toolchain/check/testdata/let/fail_missing_value.carbon +++ b/toolchain/check/testdata/let/fail_missing_value.carbon @@ -33,7 +33,7 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -55,7 +55,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = value_binding_pattern n [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = value_binding_pattern n [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } @@ -63,7 +63,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = value_binding_pattern n [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = value_binding_pattern n [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/let/fail_modifiers.carbon b/toolchain/check/testdata/let/fail_modifiers.carbon index c958577998ff..a2782eff05d9 100644 --- a/toolchain/check/testdata/let/fail_modifiers.carbon +++ b/toolchain/check/testdata/let/fail_modifiers.carbon @@ -95,24 +95,24 @@ protected protected let i: i32 = 1; // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -123,9 +123,9 @@ protected protected let i: i32 = 1; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -142,100 +142,100 @@ protected protected let i: i32 = 1; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc19: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc19: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc19: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc19_24.1: = bound_method @__global_init.%int_1.loc19, %impl.elem0.loc19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_24.2: = bound_method @__global_init.%int_1.loc19, %specific_fn.loc19 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %i32 = call %bound_method.loc19_24.2(@__global_init.%int_1.loc19) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc19_24.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc19_24.2: %i32 = converted @__global_init.%int_1.loc19, %.loc19_24.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %i32 = call %bound_method.loc19_24.2(@__global_init.%int_1.loc19) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc19_24.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc19_24.2: %i32 = converted @__global_init.%int_1.loc19, %.loc19_24.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %b: %i32 = value_binding b, %.loc19_24.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.104 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.6b6 = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc25: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc25: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc25: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc25_22.1: = bound_method @__global_init.%int_1.loc25, %impl.elem0.loc25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc25: = specific_function %impl.elem0.loc25, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc25_22.2: = bound_method @__global_init.%int_1.loc25, %specific_fn.loc25 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25: init %i32 = call %bound_method.loc25_22.2(@__global_init.%int_1.loc25) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc25_22.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc25_22.2: %i32 = converted @__global_init.%int_1.loc25, %.loc25_22.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25: init %i32 = call %bound_method.loc25_22.2(@__global_init.%int_1.loc25) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc25_22.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc25_22.2: %i32 = converted @__global_init.%int_1.loc25, %.loc25_22.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %c: %i32 = value_binding c, %.loc25_22.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.104 = value_binding_pattern d [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.6b6 = value_binding_pattern d [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc31: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc31: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc31: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc31_20.1: = bound_method @__global_init.%int_1.loc31, %impl.elem0.loc31 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc31: = specific_function %impl.elem0.loc31, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc31_20.2: = bound_method @__global_init.%int_1.loc31, %specific_fn.loc31 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31: init %i32 = call %bound_method.loc31_20.2(@__global_init.%int_1.loc31) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc31_20.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc31_20.2: %i32 = converted @__global_init.%int_1.loc31, %.loc31_20.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31: init %i32 = call %bound_method.loc31_20.2(@__global_init.%int_1.loc31) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc31_20.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc31_20.2: %i32 = converted @__global_init.%int_1.loc31, %.loc31_20.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %d: %i32 = value_binding d, %.loc31_20.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %e.patt: %pattern_type.104 = value_binding_pattern e [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.6b6 = value_binding_pattern e [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc37: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc37: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc37: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc37_22.1: = bound_method @__global_init.%int_1.loc37, %impl.elem0.loc37 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc37: = specific_function %impl.elem0.loc37, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc37_22.2: = bound_method @__global_init.%int_1.loc37, %specific_fn.loc37 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc37: init %i32 = call %bound_method.loc37_22.2(@__global_init.%int_1.loc37) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc37_22.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc37 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc37_22.2: %i32 = converted @__global_init.%int_1.loc37, %.loc37_22.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc37: init %i32 = call %bound_method.loc37_22.2(@__global_init.%int_1.loc37) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc37_22.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc37 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc37_22.2: %i32 = converted @__global_init.%int_1.loc37, %.loc37_22.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %e: %i32 = value_binding e, %.loc37_22.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %f.patt: %pattern_type.104 = value_binding_pattern f [concrete] +// CHECK:STDOUT: %f.patt: %pattern_type.6b6 = value_binding_pattern f [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc50: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc50: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc50: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc50_28.1: = bound_method @__global_init.%int_1.loc50, %impl.elem0.loc50 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc50: = specific_function %impl.elem0.loc50, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc50_28.2: = bound_method @__global_init.%int_1.loc50, %specific_fn.loc50 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc50: init %i32 = call %bound_method.loc50_28.2(@__global_init.%int_1.loc50) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc50_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc50 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc50_28.2: %i32 = converted @__global_init.%int_1.loc50, %.loc50_28.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc50: init %i32 = call %bound_method.loc50_28.2(@__global_init.%int_1.loc50) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc50_28.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc50 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc50_28.2: %i32 = converted @__global_init.%int_1.loc50, %.loc50_28.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %f: %i32 = value_binding f, %.loc50_28.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %g.patt: %pattern_type.104 = value_binding_pattern g [concrete] +// CHECK:STDOUT: %g.patt: %pattern_type.6b6 = value_binding_pattern g [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc63: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc63: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc63: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc63_30.1: = bound_method @__global_init.%int_1.loc63, %impl.elem0.loc63 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc63: = specific_function %impl.elem0.loc63, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc63_30.2: = bound_method @__global_init.%int_1.loc63, %specific_fn.loc63 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc63: init %i32 = call %bound_method.loc63_30.2(@__global_init.%int_1.loc63) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc63_30.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc63 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc63_30.2: %i32 = converted @__global_init.%int_1.loc63, %.loc63_30.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc63: init %i32 = call %bound_method.loc63_30.2(@__global_init.%int_1.loc63) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc63_30.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc63 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc63_30.2: %i32 = converted @__global_init.%int_1.loc63, %.loc63_30.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %g: %i32 = value_binding g, %.loc63_30.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %h.patt: %pattern_type.104 = value_binding_pattern h [concrete] +// CHECK:STDOUT: %h.patt: %pattern_type.6b6 = value_binding_pattern h [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc76: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc76: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc76: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc76_32.1: = bound_method @__global_init.%int_1.loc76, %impl.elem0.loc76 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc76: = specific_function %impl.elem0.loc76, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc76_32.2: = bound_method @__global_init.%int_1.loc76, %specific_fn.loc76 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc76: init %i32 = call %bound_method.loc76_32.2(@__global_init.%int_1.loc76) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc76_32.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc76 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc76_32.2: %i32 = converted @__global_init.%int_1.loc76, %.loc76_32.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc76: init %i32 = call %bound_method.loc76_32.2(@__global_init.%int_1.loc76) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc76_32.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc76 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc76_32.2: %i32 = converted @__global_init.%int_1.loc76, %.loc76_32.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %h: %i32 = value_binding h, %.loc76_32.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %i.patt: %pattern_type.104 = value_binding_pattern i [concrete] +// CHECK:STDOUT: %i.patt: %pattern_type.6b6 = value_binding_pattern i [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc89: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc89: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc89: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc89_34.1: = bound_method @__global_init.%int_1.loc89, %impl.elem0.loc89 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc89: = specific_function %impl.elem0.loc89, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc89_34.2: = bound_method @__global_init.%int_1.loc89, %specific_fn.loc89 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc89: init %i32 = call %bound_method.loc89_34.2(@__global_init.%int_1.loc89) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc89_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc89 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc89_34.2: %i32 = converted @__global_init.%int_1.loc89, %.loc89_34.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc89: init %i32 = call %bound_method.loc89_34.2(@__global_init.%int_1.loc89) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc89_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc89 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc89_34.2: %i32 = converted @__global_init.%int_1.loc89, %.loc89_34.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %i: %i32 = value_binding i, %.loc89_34.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/let/fail_use_in_init.carbon b/toolchain/check/testdata/let/fail_use_in_init.carbon index 23c4c2ec7375..7fc6a28b38b3 100644 --- a/toolchain/check/testdata/let/fail_use_in_init.carbon +++ b/toolchain/check/testdata/let/fail_use_in_init.carbon @@ -36,7 +36,7 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -60,7 +60,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.ref: = name_ref a, [concrete = ] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/let/global.carbon b/toolchain/check/testdata/let/global.carbon index de5653a7455f..a078d5827806 100644 --- a/toolchain/check/testdata/let/global.carbon +++ b/toolchain/check/testdata/let/global.carbon @@ -24,37 +24,37 @@ fn F() -> i32 { return n; } // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -66,12 +66,12 @@ fn F() -> i32 { return n; } // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -82,23 +82,23 @@ fn F() -> i32 { return n; } // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = value_binding_pattern n [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = value_binding_pattern n [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc15_14.1: = bound_method @__global_init.%int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_14.2: = bound_method @__global_init.%int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_14.2(@__global_init.%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc15_14.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc15_14.2: %i32 = converted @__global_init.%int_1, %.loc15_14.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_14.2(@__global_init.%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc15_14.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc15_14.2: %i32 = converted @__global_init.%int_1, %.loc15_14.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %n: %i32 = value_binding n, %.loc15_14.2 // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc17: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc17: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -107,7 +107,7 @@ fn F() -> i32 { return n; } // CHECK:STDOUT: fn @F() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: %i32 = name_ref n, file.%n -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc17_24.1: = bound_method %n.ref, %impl.elem0 // 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.loc17_24.2: = bound_method %n.ref, %specific_fn diff --git a/toolchain/check/testdata/let/local.carbon b/toolchain/check/testdata/let/local.carbon index acdc24e263a0..0b4291ee4eaf 100644 --- a/toolchain/check/testdata/let/local.carbon +++ b/toolchain/check/testdata/let/local.carbon @@ -44,34 +44,34 @@ fn CallF() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%a.param: %i32) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.ref: %i32 = name_ref a, %a // CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: %i32 = value_binding b, %a.ref // CHECK:STDOUT: %b.ref: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %b.ref, %impl.elem0 // 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_10.2: = bound_method %b.ref, %specific_fn diff --git a/toolchain/check/testdata/let/ref.carbon b/toolchain/check/testdata/let/ref.carbon index a3965d30846a..58fdfb6661e1 100644 --- a/toolchain/check/testdata/let/ref.carbon +++ b/toolchain/check/testdata/let/ref.carbon @@ -53,28 +53,28 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] -// CHECK:STDOUT: %pattern_type.7d6: type = pattern_type %tuple.type.e5a [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %pattern_type.394: type = pattern_type %tuple.type.e55 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%a.param: %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.104 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.6b6 = ref_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.ref.loc7: ref %i32 = name_ref b, %b // CHECK:STDOUT: %i32.loc7: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %c: ref %i32 = ref_binding c, %b.ref.loc7 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.104 = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %e.patt: %pattern_type.104 = ref_binding_pattern e [concrete] -// CHECK:STDOUT: %.loc8_44: %pattern_type.7d6 = tuple_pattern (%d.patt, %e.patt) [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.6b6 = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.6b6 = ref_binding_pattern e [concrete] +// CHECK:STDOUT: %.loc8_44: %pattern_type.394 = tuple_pattern (%d.patt, %e.patt) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.ref.loc8: ref %i32 = name_ref b, %b // CHECK:STDOUT: %c.ref: ref %i32 = name_ref c, %c -// CHECK:STDOUT: %.loc8_53: %tuple.type.e5a = tuple_literal (%b.ref.loc8, %c.ref) +// CHECK:STDOUT: %.loc8_53: %tuple.type.e55 = tuple_literal (%b.ref.loc8, %c.ref) // CHECK:STDOUT: %i32.loc8_22: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %d: ref %i32 = ref_binding d, %b.ref.loc8 // CHECK:STDOUT: %i32.loc8_41: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/let/shadowed_decl.carbon b/toolchain/check/testdata/let/shadowed_decl.carbon index b7777937a14a..d84229d0fcca 100644 --- a/toolchain/check/testdata/let/shadowed_decl.carbon +++ b/toolchain/check/testdata/let/shadowed_decl.carbon @@ -26,37 +26,37 @@ fn F(unused a: i32) -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -68,12 +68,12 @@ fn F(unused a: i32) -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -83,13 +83,13 @@ fn F(unused a: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt.loc15: %pattern_type.104 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc15_24 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt.loc15: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc15_24 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_24: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_24 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15_24 [concrete = constants.%.795] // CHECK:STDOUT: %a.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc15_16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a.loc15: %i32 = value_binding a, %a.param @@ -101,20 +101,20 @@ fn F(unused a: i32) -> i32 { // CHECK:STDOUT: fn @F(%a.param: %i32) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt.loc16: %pattern_type.104 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt.loc16: %pattern_type.6b6 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc16: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc16: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc16_16.1: = bound_method %int_1, %impl.elem0.loc16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_16.2: = bound_method %int_1, %specific_fn.loc16 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_16.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc16_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc16_16.2: %i32 = converted %int_1, %.loc16_16.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_16.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc16_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc16_16.2: %i32 = converted %int_1, %.loc16_16.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %a.loc16: %i32 = value_binding a, %.loc16_16.2 // CHECK:STDOUT: %a.ref: %i32 = name_ref a, %a.loc16 -// CHECK:STDOUT: %impl.elem0.loc18: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc18: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc18_10.1: = bound_method %a.ref, %impl.elem0.loc18 // CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc18_10.2: = bound_method %a.ref, %specific_fn.loc18 diff --git a/toolchain/check/testdata/main_run/no_return.carbon b/toolchain/check/testdata/main_run/no_return.carbon index 1cec3e241e90..f8894d458ef9 100644 --- a/toolchain/check/testdata/main_run/no_return.carbon +++ b/toolchain/check/testdata/main_run/no_return.carbon @@ -59,9 +59,9 @@ fn Run(unused argc: i32, unused argv: i32*) {} // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr [concrete] // CHECK:STDOUT: %Run.type: type = fn_type @Run [concrete] // CHECK:STDOUT: %Run: %Run.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -82,10 +82,10 @@ fn Run(unused argc: i32, unused argv: i32*) {} // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Run.decl: %Run.type = fn_decl @Run [concrete = constants.%Run] { -// CHECK:STDOUT: %argc.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %argc.patt: %pattern_type.104 = at_binding_pattern argc, %argc.param_patt [concrete] -// CHECK:STDOUT: %argv.param_patt: %pattern_type.7b5 = value_param_pattern [concrete] -// CHECK:STDOUT: %argv.patt: %pattern_type.7b5 = at_binding_pattern argv, %argv.param_patt [concrete] +// CHECK:STDOUT: %argc.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %argc.patt: %pattern_type.6b6 = at_binding_pattern argc, %argc.param_patt [concrete] +// CHECK:STDOUT: %argv.param_patt: %pattern_type.f00 = value_param_pattern [concrete] +// CHECK:STDOUT: %argv.patt: %pattern_type.f00 = at_binding_pattern argv, %argv.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %argc.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc5_21: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/main_run/return_i32.carbon b/toolchain/check/testdata/main_run/return_i32.carbon index d968eea4f02b..578c2c912b8f 100644 --- a/toolchain/check/testdata/main_run/return_i32.carbon +++ b/toolchain/check/testdata/main_run/return_i32.carbon @@ -31,27 +31,27 @@ fn Run(unused argc: i32, unused argv: i32*) -> i32 { return 0; } // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Run.type: type = fn_type @Run [concrete] // CHECK:STDOUT: %Run: %Run.type = struct_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -62,9 +62,9 @@ fn Run(unused argc: i32, unused argv: i32*) -> i32 { return 0; } // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -74,11 +74,11 @@ fn Run(unused argc: i32, unused argv: i32*) -> i32 { return 0; } // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Run.decl: %Run.type = fn_decl @Run [concrete = constants.%Run] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4_13: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc4_13: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -87,12 +87,12 @@ fn Run(unused argc: i32, unused argv: i32*) -> i32 { return 0; } // CHECK:STDOUT: fn @Run() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc4_27.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc4_27.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc4_27.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc4_27: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc4_27.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc4_27: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: return %.loc4_27 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -103,29 +103,29 @@ fn Run(unused argc: i32, unused argv: i32*) -> i32 { return 0; } // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %Run.type: type = fn_type @Run [concrete] // CHECK:STDOUT: %Run: %Run.type = struct_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -136,9 +136,9 @@ fn Run(unused argc: i32, unused argv: i32*) -> i32 { return 0; } // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -148,15 +148,15 @@ fn Run(unused argc: i32, unused argv: i32*) -> i32 { return 0; } // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Run.decl: %Run.type = fn_decl @Run [concrete = constants.%Run] { -// CHECK:STDOUT: %argc.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %argc.patt: %pattern_type.104 = at_binding_pattern argc, %argc.param_patt [concrete] -// CHECK:STDOUT: %argv.param_patt: %pattern_type.7b5 = value_param_pattern [concrete] -// CHECK:STDOUT: %argv.patt: %pattern_type.7b5 = at_binding_pattern argv, %argv.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc5_48 [concrete] +// CHECK:STDOUT: %argc.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %argc.patt: %pattern_type.6b6 = at_binding_pattern argc, %argc.param_patt [concrete] +// CHECK:STDOUT: %argv.param_patt: %pattern_type.f00 = value_param_pattern [concrete] +// CHECK:STDOUT: %argv.patt: %pattern_type.f00 = at_binding_pattern argv, %argv.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc5_48 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc5_48: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc5_48: Core.Form = init_form %i32.loc5_48 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc5_48: Core.Form = init_form %i32.loc5_48 [concrete = constants.%.795] // CHECK:STDOUT: %argc.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc5_21: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %argc: %i32 = value_binding argc, %argc.param @@ -174,12 +174,12 @@ fn Run(unused argc: i32, unused argv: i32*) -> i32 { return 0; } // CHECK:STDOUT: fn @Run(%argc.param: %i32, %argv.param: %ptr) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc5_62.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_62.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc5_62.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc5_62: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc5_62.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc5_62: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: return %.loc5_62 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/named_constraint/convert.carbon b/toolchain/check/testdata/named_constraint/convert.carbon index 2fa8fd151f79..b44bac410c66 100644 --- a/toolchain/check/testdata/named_constraint/convert.carbon +++ b/toolchain/check/testdata/named_constraint/convert.carbon @@ -69,11 +69,11 @@ fn G(T:! Z) { // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.type.2af: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete] +// CHECK:STDOUT: %BitAndWith.type.802: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.2af = facet_value type, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.5d1: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %.9ee: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.5d1, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %E.type, %type.as.BitAndWith.impl.Op [concrete] @@ -84,8 +84,8 @@ fn G(T:! Z) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] -// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @type.as.BitAndWith.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.BitAndWith.impl.Op.type = import_ref Core//prelude/parts/as, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %BitAndWith.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @type.as.BitAndWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -96,7 +96,7 @@ fn G(T:! Z) { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %E.ref.loc8_10: type = name_ref E, file.%E.decl [concrete = constants.%E.type] // CHECK:STDOUT: %E.ref.loc8_14: type = name_ref E, file.%E.decl [concrete = constants.%E.type] -// CHECK:STDOUT: %impl.elem0: %.9ee = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %E.ref.loc8_10, %impl.elem0 [concrete = constants.%type.as.BitAndWith.impl.Op.bound] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method(%E.ref.loc8_10, %E.ref.loc8_14) [concrete = constants.%E.type] // CHECK:STDOUT: %.loc8_12.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%E.type] diff --git a/toolchain/check/testdata/named_constraint/empty.carbon b/toolchain/check/testdata/named_constraint/empty.carbon index 5712373f60b3..c28bd33200c0 100644 --- a/toolchain/check/testdata/named_constraint/empty.carbon +++ b/toolchain/check/testdata/named_constraint/empty.carbon @@ -43,8 +43,8 @@ fn G(T:! Z, U:! type, V:! Empty) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %pattern_type.461: type = pattern_type %Z.type [concrete] -// CHECK:STDOUT: %T.aa0: %Z.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.5d7: type = pattern_type %Z.type [concrete] +// CHECK:STDOUT: %T.013: %Z.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %U: type = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %V: %Empty.type = symbolic_binding V, 2 [symbolic] @@ -53,15 +53,15 @@ fn G(T:! Z, U:! type, V:! Empty) { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %Empty.facet.76f: %Empty.type = facet_value %empty_struct_type, () [concrete] -// CHECK:STDOUT: %F.specific_fn.94d: = specific_function %F, @F(%Empty.facet.76f) [concrete] +// CHECK:STDOUT: %F.specific_fn.6c4: = specific_function %F, @F(%Empty.facet.76f) [concrete] // CHECK:STDOUT: %Empty.facet.2cb: %Empty.type = facet_value type, () [concrete] -// CHECK:STDOUT: %F.specific_fn.cbb: = specific_function %F, @F(%Empty.facet.2cb) [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.aa0 [symbolic] -// CHECK:STDOUT: %Empty.facet.0a5: %Empty.type = facet_value %T.as_type, () [symbolic] -// CHECK:STDOUT: %F.specific_fn.618: = specific_function %F, @F(%Empty.facet.0a5) [symbolic] +// CHECK:STDOUT: %F.specific_fn.3c6: = specific_function %F, @F(%Empty.facet.2cb) [concrete] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.013 [symbolic] +// CHECK:STDOUT: %Empty.facet.aa1: %Empty.type = facet_value %T.as_type, () [symbolic] +// CHECK:STDOUT: %F.specific_fn.40a: = specific_function %F, @F(%Empty.facet.aa1) [symbolic] // CHECK:STDOUT: %Empty.facet.380: %Empty.type = facet_value %U, () [symbolic] -// CHECK:STDOUT: %F.specific_fn.0ab: = specific_function %F, @F(%Empty.facet.380) [symbolic] -// CHECK:STDOUT: %F.specific_fn.36b: = specific_function %F, @F(%V) [symbolic] +// CHECK:STDOUT: %F.specific_fn.10e: = specific_function %F, @F(%Empty.facet.380) [symbolic] +// CHECK:STDOUT: %F.specific_fn.b7e: = specific_function %F, @F(%V) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -75,7 +75,7 @@ fn G(T:! Z, U:! type, V:! Empty) { // CHECK:STDOUT: %T.loc19_14.2: %Empty.type = symbolic_binding T, 0 [symbolic = %T.loc19_14.1 (constants.%T.f45)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %T.patt: %pattern_type.461 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.5d7 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: %V.patt: %pattern_type.9a5 = symbolic_binding_pattern V, 2 [concrete] // CHECK:STDOUT: } { @@ -83,7 +83,7 @@ fn G(T:! Z, U:! type, V:! Empty) { // CHECK:STDOUT: %.Self.loc25_7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc25_7.2: %Z.type = symbolic_binding T, 0 [symbolic = %T.loc25_7.1 (constants.%T.aa0)] +// CHECK:STDOUT: %T.loc25_7.2: %Z.type = symbolic_binding T, 0 [symbolic = %T.loc25_7.1 (constants.%T.013)] // CHECK:STDOUT: %.loc25_17.1: type = splice_block %.loc25_17.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc25_14: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc25_17.2: type = type_literal type [concrete = type] @@ -109,17 +109,17 @@ fn G(T:! Z, U:! type, V:! Empty) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%T.loc25_7.2: %Z.type, %U.loc25_14.2: type, %V.loc25_24.2: %Empty.type) { -// CHECK:STDOUT: %T.loc25_7.1: %Z.type = symbolic_binding T, 0 [symbolic = %T.loc25_7.1 (constants.%T.aa0)] +// CHECK:STDOUT: %T.loc25_7.1: %Z.type = symbolic_binding T, 0 [symbolic = %T.loc25_7.1 (constants.%T.013)] // CHECK:STDOUT: %U.loc25_14.1: type = symbolic_binding U, 1 [symbolic = %U.loc25_14.1 (constants.%U)] // CHECK:STDOUT: %V.loc25_24.1: %Empty.type = symbolic_binding V, 2 [symbolic = %V.loc25_24.1 (constants.%V)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc28_6.2: type = facet_access_type %T.loc25_7.1 [symbolic = %T.as_type.loc28_6.2 (constants.%T.as_type)] -// CHECK:STDOUT: %Empty.facet.loc28_6.2: %Empty.type = facet_value %T.as_type.loc28_6.2, () [symbolic = %Empty.facet.loc28_6.2 (constants.%Empty.facet.0a5)] -// CHECK:STDOUT: %F.specific_fn.loc28_3.2: = specific_function constants.%F, @F(%Empty.facet.loc28_6.2) [symbolic = %F.specific_fn.loc28_3.2 (constants.%F.specific_fn.618)] +// CHECK:STDOUT: %Empty.facet.loc28_6.2: %Empty.type = facet_value %T.as_type.loc28_6.2, () [symbolic = %Empty.facet.loc28_6.2 (constants.%Empty.facet.aa1)] +// CHECK:STDOUT: %F.specific_fn.loc28_3.2: = specific_function constants.%F, @F(%Empty.facet.loc28_6.2) [symbolic = %F.specific_fn.loc28_3.2 (constants.%F.specific_fn.40a)] // CHECK:STDOUT: %Empty.facet.loc29_6.2: %Empty.type = facet_value %U.loc25_14.1, () [symbolic = %Empty.facet.loc29_6.2 (constants.%Empty.facet.380)] -// CHECK:STDOUT: %F.specific_fn.loc29_3.2: = specific_function constants.%F, @F(%Empty.facet.loc29_6.2) [symbolic = %F.specific_fn.loc29_3.2 (constants.%F.specific_fn.0ab)] -// CHECK:STDOUT: %F.specific_fn.loc30_3.2: = specific_function constants.%F, @F(%V.loc25_24.1) [symbolic = %F.specific_fn.loc30_3.2 (constants.%F.specific_fn.36b)] +// CHECK:STDOUT: %F.specific_fn.loc29_3.2: = specific_function constants.%F, @F(%Empty.facet.loc29_6.2) [symbolic = %F.specific_fn.loc29_3.2 (constants.%F.specific_fn.10e)] +// CHECK:STDOUT: %F.specific_fn.loc30_3.2: = specific_function constants.%F, @F(%V.loc25_24.1) [symbolic = %F.specific_fn.loc30_3.2 (constants.%F.specific_fn.b7e)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -127,30 +127,30 @@ fn G(T:! Z, U:! type, V:! Empty) { // CHECK:STDOUT: %.loc26_6: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %Empty.facet.loc26: %Empty.type = facet_value constants.%empty_struct_type, () [concrete = constants.%Empty.facet.76f] // CHECK:STDOUT: %.loc26_7: %Empty.type = converted %.loc26_6, %Empty.facet.loc26 [concrete = constants.%Empty.facet.76f] -// CHECK:STDOUT: %F.specific_fn.loc26: = specific_function %F.ref.loc26, @F(constants.%Empty.facet.76f) [concrete = constants.%F.specific_fn.94d] +// CHECK:STDOUT: %F.specific_fn.loc26: = specific_function %F.ref.loc26, @F(constants.%Empty.facet.76f) [concrete = constants.%F.specific_fn.6c4] // CHECK:STDOUT: %F.call.loc26: init %empty_tuple.type = call %F.specific_fn.loc26() // CHECK:STDOUT: %F.ref.loc27: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %.loc27_5: type = type_literal type [concrete = type] // CHECK:STDOUT: %Empty.facet.loc27: %Empty.type = facet_value %.loc27_5, () [concrete = constants.%Empty.facet.2cb] // CHECK:STDOUT: %.loc27_9: %Empty.type = converted %.loc27_5, %Empty.facet.loc27 [concrete = constants.%Empty.facet.2cb] -// CHECK:STDOUT: %F.specific_fn.loc27: = specific_function %F.ref.loc27, @F(constants.%Empty.facet.2cb) [concrete = constants.%F.specific_fn.cbb] +// CHECK:STDOUT: %F.specific_fn.loc27: = specific_function %F.ref.loc27, @F(constants.%Empty.facet.2cb) [concrete = constants.%F.specific_fn.3c6] // CHECK:STDOUT: %F.call.loc27: init %empty_tuple.type = call %F.specific_fn.loc27() // CHECK:STDOUT: %F.ref.loc28: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %T.ref: %Z.type = name_ref T, %T.loc25_7.2 [symbolic = %T.loc25_7.1 (constants.%T.aa0)] +// CHECK:STDOUT: %T.ref: %Z.type = name_ref T, %T.loc25_7.2 [symbolic = %T.loc25_7.1 (constants.%T.013)] // CHECK:STDOUT: %T.as_type.loc28_6.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc28_6.2 (constants.%T.as_type)] -// CHECK:STDOUT: %Empty.facet.loc28_6.1: %Empty.type = facet_value %T.as_type.loc28_6.1, () [symbolic = %Empty.facet.loc28_6.2 (constants.%Empty.facet.0a5)] -// CHECK:STDOUT: %.loc28: %Empty.type = converted %T.ref, %Empty.facet.loc28_6.1 [symbolic = %Empty.facet.loc28_6.2 (constants.%Empty.facet.0a5)] -// CHECK:STDOUT: %F.specific_fn.loc28_3.1: = specific_function %F.ref.loc28, @F(constants.%Empty.facet.0a5) [symbolic = %F.specific_fn.loc28_3.2 (constants.%F.specific_fn.618)] +// CHECK:STDOUT: %Empty.facet.loc28_6.1: %Empty.type = facet_value %T.as_type.loc28_6.1, () [symbolic = %Empty.facet.loc28_6.2 (constants.%Empty.facet.aa1)] +// CHECK:STDOUT: %.loc28: %Empty.type = converted %T.ref, %Empty.facet.loc28_6.1 [symbolic = %Empty.facet.loc28_6.2 (constants.%Empty.facet.aa1)] +// CHECK:STDOUT: %F.specific_fn.loc28_3.1: = specific_function %F.ref.loc28, @F(constants.%Empty.facet.aa1) [symbolic = %F.specific_fn.loc28_3.2 (constants.%F.specific_fn.40a)] // CHECK:STDOUT: %F.call.loc28: init %empty_tuple.type = call %F.specific_fn.loc28_3.1() // CHECK:STDOUT: %F.ref.loc29: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc25_14.2 [symbolic = %U.loc25_14.1 (constants.%U)] // CHECK:STDOUT: %Empty.facet.loc29_6.1: %Empty.type = facet_value %U.ref, () [symbolic = %Empty.facet.loc29_6.2 (constants.%Empty.facet.380)] // CHECK:STDOUT: %.loc29: %Empty.type = converted %U.ref, %Empty.facet.loc29_6.1 [symbolic = %Empty.facet.loc29_6.2 (constants.%Empty.facet.380)] -// CHECK:STDOUT: %F.specific_fn.loc29_3.1: = specific_function %F.ref.loc29, @F(constants.%Empty.facet.380) [symbolic = %F.specific_fn.loc29_3.2 (constants.%F.specific_fn.0ab)] +// CHECK:STDOUT: %F.specific_fn.loc29_3.1: = specific_function %F.ref.loc29, @F(constants.%Empty.facet.380) [symbolic = %F.specific_fn.loc29_3.2 (constants.%F.specific_fn.10e)] // CHECK:STDOUT: %F.call.loc29: init %empty_tuple.type = call %F.specific_fn.loc29_3.1() // CHECK:STDOUT: %F.ref.loc30: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %V.ref: %Empty.type = name_ref V, %V.loc25_24.2 [symbolic = %V.loc25_24.1 (constants.%V)] -// CHECK:STDOUT: %F.specific_fn.loc30_3.1: = specific_function %F.ref.loc30, @F(constants.%V) [symbolic = %F.specific_fn.loc30_3.2 (constants.%F.specific_fn.36b)] +// CHECK:STDOUT: %F.specific_fn.loc30_3.1: = specific_function %F.ref.loc30, @F(constants.%V) [symbolic = %F.specific_fn.loc30_3.2 (constants.%F.specific_fn.b7e)] // CHECK:STDOUT: %F.call.loc30: init %empty_tuple.type = call %F.specific_fn.loc30_3.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -160,8 +160,8 @@ fn G(T:! Z, U:! type, V:! Empty) { // CHECK:STDOUT: %T.loc19_14.1 => constants.%T.f45 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G(constants.%T.aa0, constants.%U, constants.%V) { -// CHECK:STDOUT: %T.loc25_7.1 => constants.%T.aa0 +// CHECK:STDOUT: specific @G(constants.%T.013, constants.%U, constants.%V) { +// CHECK:STDOUT: %T.loc25_7.1 => constants.%T.013 // CHECK:STDOUT: %U.loc25_14.1 => constants.%U // CHECK:STDOUT: %V.loc25_24.1 => constants.%V // CHECK:STDOUT: } @@ -178,8 +178,8 @@ fn G(T:! Z, U:! type, V:! Empty) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%Empty.facet.0a5) { -// CHECK:STDOUT: %T.loc19_14.1 => constants.%Empty.facet.0a5 +// CHECK:STDOUT: specific @F(constants.%Empty.facet.aa1) { +// CHECK:STDOUT: %T.loc19_14.1 => constants.%Empty.facet.aa1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/named_constraint/empty_generic.carbon b/toolchain/check/testdata/named_constraint/empty_generic.carbon index 5af133776944..93d922e45e4e 100644 --- a/toolchain/check/testdata/named_constraint/empty_generic.carbon +++ b/toolchain/check/testdata/named_constraint/empty_generic.carbon @@ -34,18 +34,18 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Empty.type.61e: type = generic_named_constaint_type @Empty [concrete] +// CHECK:STDOUT: %Empty.type.f30: type = generic_named_constaint_type @Empty [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %empty_struct.3ee: %Empty.type.61e = struct_value () [concrete] +// CHECK:STDOUT: %empty_struct.26b: %Empty.type.f30 = struct_value () [concrete] // CHECK:STDOUT: %Empty.type.d682d6.1: type = facet_type <@Empty, @Empty(%T.67d)> [symbolic] -// CHECK:STDOUT: %Self.7f4dd1.1: %Empty.type.d682d6.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.22bbf7.1: %Empty.type.d682d6.1 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %pattern_type.9a587c.1: type = pattern_type %Empty.type.d682d6.1 [symbolic] // CHECK:STDOUT: %U.e1f642.1: %Empty.type.d682d6.1 = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.461: type = pattern_type %Z.type [concrete] -// CHECK:STDOUT: %T.aa0: %Z.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.aa0 [symbolic] +// CHECK:STDOUT: %pattern_type.5d7: type = pattern_type %Z.type [concrete] +// CHECK:STDOUT: %T.013: %Z.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.013 [symbolic] // CHECK:STDOUT: %Empty.type.d682d6.2: type = facet_type <@Empty, @Empty(%T.as_type)> [symbolic] // CHECK:STDOUT: %pattern_type.9a587c.2: type = pattern_type %Empty.type.d682d6.2 [symbolic] // CHECK:STDOUT: %U.e1f642.2: %Empty.type.d682d6.2 = symbolic_binding U, 1 [symbolic] @@ -56,21 +56,21 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: %empty_struct.a40: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct.type.facet: %type = facet_value %empty_struct_type, () [concrete] // CHECK:STDOUT: %Empty.facet.76f: %Empty.type.d682d6.2 = facet_value %empty_struct_type, () [symbolic] -// CHECK:STDOUT: %F.specific_fn.ecd: = specific_function %F, @F(%T.as_type, %Empty.facet.76f) [symbolic] +// CHECK:STDOUT: %F.specific_fn.eb3: = specific_function %F, @F(%T.as_type, %Empty.facet.76f) [symbolic] // CHECK:STDOUT: %facet_value.2cb: %type = facet_value type, () [concrete] // CHECK:STDOUT: %Empty.facet.2cb: %Empty.type.d682d6.2 = facet_value type, () [symbolic] -// CHECK:STDOUT: %F.specific_fn.aac: = specific_function %F, @F(%T.as_type, %Empty.facet.2cb) [symbolic] -// CHECK:STDOUT: %Empty.facet.0a5: %Empty.type.d682d6.2 = facet_value %T.as_type, () [symbolic] -// CHECK:STDOUT: %F.specific_fn.cf0: = specific_function %F, @F(%T.as_type, %Empty.facet.0a5) [symbolic] -// CHECK:STDOUT: %Self.7f4dd1.2: %Empty.type.d682d6.2 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %F.specific_fn.047: = specific_function %F, @F(%T.as_type, %U.e1f642.2) [symbolic] +// CHECK:STDOUT: %F.specific_fn.d75: = specific_function %F, @F(%T.as_type, %Empty.facet.2cb) [symbolic] +// CHECK:STDOUT: %Empty.facet.aa1: %Empty.type.d682d6.2 = facet_value %T.as_type, () [symbolic] +// CHECK:STDOUT: %F.specific_fn.7a2: = specific_function %F, @F(%T.as_type, %Empty.facet.aa1) [symbolic] +// CHECK:STDOUT: %Self.22bbf7.2: %Empty.type.d682d6.2 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %F.specific_fn.ff9: = specific_function %F, @F(%T.as_type, %U.e1f642.2) [symbolic] // CHECK:STDOUT: %facet_value.ed5: %type = facet_value %V, () [symbolic] // CHECK:STDOUT: %Empty.facet.ed5: %Empty.type.d682d6.2 = facet_value %V, () [symbolic] -// CHECK:STDOUT: %F.specific_fn.475: = specific_function %F, @F(%T.as_type, %Empty.facet.ed5) [symbolic] +// CHECK:STDOUT: %F.specific_fn.67d: = specific_function %F, @F(%T.as_type, %Empty.facet.ed5) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { -// CHECK:STDOUT: %Empty.decl: %Empty.type.61e = constraint_decl @Empty [concrete = constants.%empty_struct.3ee] { +// CHECK:STDOUT: %Empty.decl: %Empty.type.f30 = constraint_decl @Empty [concrete = constants.%empty_struct.26b] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc16_22.1: type = splice_block %.loc16_22.2 [concrete = type] { @@ -90,14 +90,14 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: %T.loc18_7.2: type = symbolic_binding T, 0 [symbolic = %T.loc18_7.1 (constants.%T.67d)] // CHECK:STDOUT: %.loc18_34: type = splice_block %Empty.type.loc18_34.2 [symbolic = %Empty.type.loc18_34.1 (constants.%Empty.type.d682d6.1)] { // CHECK:STDOUT: %.Self.loc18_24: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Empty.ref: %Empty.type.61e = name_ref Empty, file.%Empty.decl [concrete = constants.%empty_struct.3ee] +// CHECK:STDOUT: %Empty.ref: %Empty.type.f30 = name_ref Empty, file.%Empty.decl [concrete = constants.%empty_struct.26b] // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc18_7.2 [symbolic = %T.loc18_7.1 (constants.%T.67d)] // CHECK:STDOUT: %Empty.type.loc18_34.2: type = facet_type <@Empty, @Empty(constants.%T.67d)> [symbolic = %Empty.type.loc18_34.1 (constants.%Empty.type.d682d6.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc18_24.2: @F.%Empty.type.loc18_34.1 (%Empty.type.d682d6.1) = symbolic_binding U, 1 [symbolic = %U.loc18_24.1 (constants.%U.e1f642.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %T.patt: %pattern_type.461 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.5d7 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: @G.%pattern_type (%pattern_type.9a587c.2) = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: %V.patt: %pattern_type.98f = symbolic_binding_pattern V, 2 [concrete] // CHECK:STDOUT: } { @@ -105,11 +105,11 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: %.Self.loc20_7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc20_7.2: %Z.type = symbolic_binding T, 0 [symbolic = %T.loc20_7.1 (constants.%T.aa0)] +// CHECK:STDOUT: %T.loc20_7.2: %Z.type = symbolic_binding T, 0 [symbolic = %T.loc20_7.1 (constants.%T.013)] // CHECK:STDOUT: %.loc20_24.1: type = splice_block %Empty.type.loc20_24.2 [symbolic = %Empty.type.loc20_24.1 (constants.%Empty.type.d682d6.2)] { // CHECK:STDOUT: %.Self.loc20_14: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %Empty.ref: %Empty.type.61e = name_ref Empty, file.%Empty.decl [concrete = constants.%empty_struct.3ee] -// CHECK:STDOUT: %T.ref.loc20: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.aa0)] +// CHECK:STDOUT: %Empty.ref: %Empty.type.f30 = name_ref Empty, file.%Empty.decl [concrete = constants.%empty_struct.26b] +// CHECK:STDOUT: %T.ref.loc20: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.013)] // CHECK:STDOUT: %T.as_type.loc20_24.2: type = facet_access_type %T.ref.loc20 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc20_24.2: type = converted %T.ref.loc20, %T.as_type.loc20_24.2 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] // CHECK:STDOUT: %Empty.type.loc20_24.2: type = facet_type <@Empty, @Empty(constants.%T.as_type)> [symbolic = %Empty.type.loc20_24.1 (constants.%Empty.type.d682d6.2)] @@ -128,10 +128,10 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Empty.type: type = facet_type <@Empty, @Empty(%T.loc16_19.1)> [symbolic = %Empty.type (constants.%Empty.type.d682d6.1)] -// CHECK:STDOUT: %Self.loc16_28.2: @Empty.%Empty.type (%Empty.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self.loc16_28.2 (constants.%Self.7f4dd1.1)] +// CHECK:STDOUT: %Self.loc16_28.2: @Empty.%Empty.type (%Empty.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self.loc16_28.2 (constants.%Self.22bbf7.1)] // CHECK:STDOUT: // CHECK:STDOUT: constraint { -// CHECK:STDOUT: %Self.loc16_28.1: @Empty.%Empty.type (%Empty.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self.loc16_28.2 (constants.%Self.7f4dd1.1)] +// CHECK:STDOUT: %Self.loc16_28.1: @Empty.%Empty.type (%Empty.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self.loc16_28.2 (constants.%Self.22bbf7.1)] // CHECK:STDOUT: %Empty.WithSelf.decl = constraint_with_self_decl @Empty [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -156,7 +156,7 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%T.loc20_7.2: %Z.type, %U.loc20_14.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2), %V.loc20_28.2: type) { -// CHECK:STDOUT: %T.loc20_7.1: %Z.type = symbolic_binding T, 0 [symbolic = %T.loc20_7.1 (constants.%T.aa0)] +// CHECK:STDOUT: %T.loc20_7.1: %Z.type = symbolic_binding T, 0 [symbolic = %T.loc20_7.1 (constants.%T.013)] // CHECK:STDOUT: %T.as_type.loc20_24.1: type = facet_access_type %T.loc20_7.1 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] // CHECK:STDOUT: %Empty.type.loc20_24.1: type = facet_type <@Empty, @Empty(%T.as_type.loc20_24.1)> [symbolic = %Empty.type.loc20_24.1 (constants.%Empty.type.d682d6.2)] // CHECK:STDOUT: %U.loc20_14.1: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = symbolic_binding U, 1 [symbolic = %U.loc20_14.1 (constants.%U.e1f642.2)] @@ -165,19 +165,19 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Empty.facet.loc21_18.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value constants.%empty_struct_type, () [symbolic = %Empty.facet.loc21_18.2 (constants.%Empty.facet.76f)] -// CHECK:STDOUT: %F.specific_fn.loc21_3.2: = specific_function constants.%F, @F(%T.as_type.loc20_24.1, %Empty.facet.loc21_18.2) [symbolic = %F.specific_fn.loc21_3.2 (constants.%F.specific_fn.ecd)] +// CHECK:STDOUT: %F.specific_fn.loc21_3.2: = specific_function constants.%F, @F(%T.as_type.loc20_24.1, %Empty.facet.loc21_18.2) [symbolic = %F.specific_fn.loc21_3.2 (constants.%F.specific_fn.eb3)] // CHECK:STDOUT: %Empty.facet.loc22_12.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value type, () [symbolic = %Empty.facet.loc22_12.2 (constants.%Empty.facet.2cb)] -// CHECK:STDOUT: %F.specific_fn.loc22_3.2: = specific_function constants.%F, @F(%T.as_type.loc20_24.1, %Empty.facet.loc22_12.2) [symbolic = %F.specific_fn.loc22_3.2 (constants.%F.specific_fn.aac)] -// CHECK:STDOUT: %Empty.facet.loc23_9.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value %T.as_type.loc20_24.1, () [symbolic = %Empty.facet.loc23_9.2 (constants.%Empty.facet.0a5)] -// CHECK:STDOUT: %F.specific_fn.loc23_3.2: = specific_function constants.%F, @F(%T.as_type.loc20_24.1, %Empty.facet.loc23_9.2) [symbolic = %F.specific_fn.loc23_3.2 (constants.%F.specific_fn.cf0)] -// CHECK:STDOUT: %F.specific_fn.loc24_3.2: = specific_function constants.%F, @F(%T.as_type.loc20_24.1, %U.loc20_14.1) [symbolic = %F.specific_fn.loc24_3.2 (constants.%F.specific_fn.047)] +// CHECK:STDOUT: %F.specific_fn.loc22_3.2: = specific_function constants.%F, @F(%T.as_type.loc20_24.1, %Empty.facet.loc22_12.2) [symbolic = %F.specific_fn.loc22_3.2 (constants.%F.specific_fn.d75)] +// CHECK:STDOUT: %Empty.facet.loc23_9.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value %T.as_type.loc20_24.1, () [symbolic = %Empty.facet.loc23_9.2 (constants.%Empty.facet.aa1)] +// CHECK:STDOUT: %F.specific_fn.loc23_3.2: = specific_function constants.%F, @F(%T.as_type.loc20_24.1, %Empty.facet.loc23_9.2) [symbolic = %F.specific_fn.loc23_3.2 (constants.%F.specific_fn.7a2)] +// CHECK:STDOUT: %F.specific_fn.loc24_3.2: = specific_function constants.%F, @F(%T.as_type.loc20_24.1, %U.loc20_14.1) [symbolic = %F.specific_fn.loc24_3.2 (constants.%F.specific_fn.ff9)] // CHECK:STDOUT: %Empty.facet.loc25_9.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value %V.loc20_28.1, () [symbolic = %Empty.facet.loc25_9.2 (constants.%Empty.facet.ed5)] -// CHECK:STDOUT: %F.specific_fn.loc25_3.2: = specific_function constants.%F, @F(%T.as_type.loc20_24.1, %Empty.facet.loc25_9.2) [symbolic = %F.specific_fn.loc25_3.2 (constants.%F.specific_fn.475)] +// CHECK:STDOUT: %F.specific_fn.loc25_3.2: = specific_function constants.%F, @F(%T.as_type.loc20_24.1, %Empty.facet.loc25_9.2) [symbolic = %F.specific_fn.loc25_3.2 (constants.%F.specific_fn.67d)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref.loc21: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %T.ref.loc21: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.aa0)] +// CHECK:STDOUT: %T.ref.loc21: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.013)] // CHECK:STDOUT: %.loc21_9: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct.a40] // CHECK:STDOUT: %.loc21_14: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc21_11: type = converted %.loc21_9, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -185,42 +185,42 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: %.loc21_18.1: type = converted %T.ref.loc21, %T.as_type.loc21 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] // CHECK:STDOUT: %Empty.facet.loc21_18.1: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value constants.%empty_struct_type, () [symbolic = %Empty.facet.loc21_18.2 (constants.%Empty.facet.76f)] // CHECK:STDOUT: %.loc21_18.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = converted constants.%empty_struct_type, %Empty.facet.loc21_18.1 [symbolic = %Empty.facet.loc21_18.2 (constants.%Empty.facet.76f)] -// CHECK:STDOUT: %F.specific_fn.loc21_3.1: = specific_function %F.ref.loc21, @F(constants.%T.as_type, constants.%Empty.facet.76f) [symbolic = %F.specific_fn.loc21_3.2 (constants.%F.specific_fn.ecd)] +// CHECK:STDOUT: %F.specific_fn.loc21_3.1: = specific_function %F.ref.loc21, @F(constants.%T.as_type, constants.%Empty.facet.76f) [symbolic = %F.specific_fn.loc21_3.2 (constants.%F.specific_fn.eb3)] // CHECK:STDOUT: %F.call.loc21: init %empty_tuple.type = call %F.specific_fn.loc21_3.1() // CHECK:STDOUT: %F.ref.loc22: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %T.ref.loc22: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.aa0)] +// CHECK:STDOUT: %T.ref.loc22: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.013)] // CHECK:STDOUT: %.loc22_8: type = type_literal type [concrete = type] // CHECK:STDOUT: %T.as_type.loc22: type = facet_access_type %T.ref.loc22 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc22_12.1: type = converted %T.ref.loc22, %T.as_type.loc22 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] // CHECK:STDOUT: %Empty.facet.loc22_12.1: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value type, () [symbolic = %Empty.facet.loc22_12.2 (constants.%Empty.facet.2cb)] // CHECK:STDOUT: %.loc22_12.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = converted type, %Empty.facet.loc22_12.1 [symbolic = %Empty.facet.loc22_12.2 (constants.%Empty.facet.2cb)] -// CHECK:STDOUT: %F.specific_fn.loc22_3.1: = specific_function %F.ref.loc22, @F(constants.%T.as_type, constants.%Empty.facet.2cb) [symbolic = %F.specific_fn.loc22_3.2 (constants.%F.specific_fn.aac)] +// CHECK:STDOUT: %F.specific_fn.loc22_3.1: = specific_function %F.ref.loc22, @F(constants.%T.as_type, constants.%Empty.facet.2cb) [symbolic = %F.specific_fn.loc22_3.2 (constants.%F.specific_fn.d75)] // CHECK:STDOUT: %F.call.loc22: init %empty_tuple.type = call %F.specific_fn.loc22_3.1() // CHECK:STDOUT: %F.ref.loc23: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %T.ref.loc23_5: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.aa0)] -// CHECK:STDOUT: %T.ref.loc23_8: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.aa0)] +// CHECK:STDOUT: %T.ref.loc23_5: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.013)] +// CHECK:STDOUT: %T.ref.loc23_8: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.013)] // CHECK:STDOUT: %T.as_type.loc23_9.1: type = facet_access_type %T.ref.loc23_5 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc23_9.1: type = converted %T.ref.loc23_5, %T.as_type.loc23_9.1 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_type.loc23_9.2: type = facet_access_type constants.%T.aa0 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] -// CHECK:STDOUT: %Empty.facet.loc23_9.1: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value %T.as_type.loc23_9.2, () [symbolic = %Empty.facet.loc23_9.2 (constants.%Empty.facet.0a5)] -// CHECK:STDOUT: %.loc23_9.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = converted constants.%T.aa0, %Empty.facet.loc23_9.1 [symbolic = %Empty.facet.loc23_9.2 (constants.%Empty.facet.0a5)] -// CHECK:STDOUT: %F.specific_fn.loc23_3.1: = specific_function %F.ref.loc23, @F(constants.%T.as_type, constants.%Empty.facet.0a5) [symbolic = %F.specific_fn.loc23_3.2 (constants.%F.specific_fn.cf0)] +// CHECK:STDOUT: %T.as_type.loc23_9.2: type = facet_access_type constants.%T.013 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %Empty.facet.loc23_9.1: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value %T.as_type.loc23_9.2, () [symbolic = %Empty.facet.loc23_9.2 (constants.%Empty.facet.aa1)] +// CHECK:STDOUT: %.loc23_9.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = converted constants.%T.013, %Empty.facet.loc23_9.1 [symbolic = %Empty.facet.loc23_9.2 (constants.%Empty.facet.aa1)] +// CHECK:STDOUT: %F.specific_fn.loc23_3.1: = specific_function %F.ref.loc23, @F(constants.%T.as_type, constants.%Empty.facet.aa1) [symbolic = %F.specific_fn.loc23_3.2 (constants.%F.specific_fn.7a2)] // CHECK:STDOUT: %F.call.loc23: init %empty_tuple.type = call %F.specific_fn.loc23_3.1() // CHECK:STDOUT: %F.ref.loc24: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %T.ref.loc24: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.aa0)] +// CHECK:STDOUT: %T.ref.loc24: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.013)] // CHECK:STDOUT: %U.ref: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = name_ref U, %U.loc20_14.2 [symbolic = %U.loc20_14.1 (constants.%U.e1f642.2)] // CHECK:STDOUT: %T.as_type.loc24: type = facet_access_type %T.ref.loc24 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc24: type = converted %T.ref.loc24, %T.as_type.loc24 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] -// CHECK:STDOUT: %F.specific_fn.loc24_3.1: = specific_function %F.ref.loc24, @F(constants.%T.as_type, constants.%U.e1f642.2) [symbolic = %F.specific_fn.loc24_3.2 (constants.%F.specific_fn.047)] +// CHECK:STDOUT: %F.specific_fn.loc24_3.1: = specific_function %F.ref.loc24, @F(constants.%T.as_type, constants.%U.e1f642.2) [symbolic = %F.specific_fn.loc24_3.2 (constants.%F.specific_fn.ff9)] // CHECK:STDOUT: %F.call.loc24: init %empty_tuple.type = call %F.specific_fn.loc24_3.1() // CHECK:STDOUT: %F.ref.loc25: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %T.ref.loc25: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.aa0)] +// CHECK:STDOUT: %T.ref.loc25: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.013)] // CHECK:STDOUT: %V.ref: type = name_ref V, %V.loc20_28.2 [symbolic = %V.loc20_28.1 (constants.%V)] // CHECK:STDOUT: %T.as_type.loc25: type = facet_access_type %T.ref.loc25 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc25_9.1: type = converted %T.ref.loc25, %T.as_type.loc25 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] // CHECK:STDOUT: %Empty.facet.loc25_9.1: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value constants.%V, () [symbolic = %Empty.facet.loc25_9.2 (constants.%Empty.facet.ed5)] // CHECK:STDOUT: %.loc25_9.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = converted constants.%V, %Empty.facet.loc25_9.1 [symbolic = %Empty.facet.loc25_9.2 (constants.%Empty.facet.ed5)] -// CHECK:STDOUT: %F.specific_fn.loc25_3.1: = specific_function %F.ref.loc25, @F(constants.%T.as_type, constants.%Empty.facet.ed5) [symbolic = %F.specific_fn.loc25_3.2 (constants.%F.specific_fn.475)] +// CHECK:STDOUT: %F.specific_fn.loc25_3.1: = specific_function %F.ref.loc25, @F(constants.%T.as_type, constants.%Empty.facet.ed5) [symbolic = %F.specific_fn.loc25_3.2 (constants.%F.specific_fn.67d)] // CHECK:STDOUT: %F.call.loc25: init %empty_tuple.type = call %F.specific_fn.loc25_3.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -230,7 +230,7 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: %T.loc16_19.1 => constants.%T.67d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T.67d, constants.%Self.7f4dd1.1) {} +// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T.67d, constants.%Self.22bbf7.1) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.67d, constants.%U.e1f642.1) { // CHECK:STDOUT: %T.loc18_7.1 => constants.%T.67d @@ -244,11 +244,11 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Empty.type => constants.%Empty.type.d682d6.2 -// CHECK:STDOUT: %Self.loc16_28.2 => constants.%Self.7f4dd1.2 +// CHECK:STDOUT: %Self.loc16_28.2 => constants.%Self.22bbf7.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G(constants.%T.aa0, constants.%U.e1f642.2, constants.%V) { -// CHECK:STDOUT: %T.loc20_7.1 => constants.%T.aa0 +// CHECK:STDOUT: specific @G(constants.%T.013, constants.%U.e1f642.2, constants.%V) { +// CHECK:STDOUT: %T.loc20_7.1 => constants.%T.013 // CHECK:STDOUT: %T.as_type.loc20_24.1 => constants.%T.as_type // CHECK:STDOUT: %Empty.type.loc20_24.1 => constants.%Empty.type.d682d6.2 // CHECK:STDOUT: %U.loc20_14.1 => constants.%U.e1f642.2 @@ -282,20 +282,20 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T.as_type, constants.%T.aa0) { +// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T.as_type, constants.%T.013) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.as_type, constants.%Empty.facet.0a5) { +// CHECK:STDOUT: specific @F(constants.%T.as_type, constants.%Empty.facet.aa1) { // CHECK:STDOUT: %T.loc18_7.1 => constants.%T.as_type // CHECK:STDOUT: %Empty.type.loc18_34.1 => constants.%Empty.type.d682d6.2 -// CHECK:STDOUT: %U.loc18_24.1 => constants.%Empty.facet.0a5 +// CHECK:STDOUT: %U.loc18_24.1 => constants.%Empty.facet.aa1 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9a587c.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T.as_type, constants.%Self.7f4dd1.1) { +// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T.as_type, constants.%Self.22bbf7.1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/named_constraint/extend_name_lookup.carbon b/toolchain/check/testdata/named_constraint/extend_name_lookup.carbon index 6a957987b9be..4c509326f0f4 100644 --- a/toolchain/check/testdata/named_constraint/extend_name_lookup.carbon +++ b/toolchain/check/testdata/named_constraint/extend_name_lookup.carbon @@ -101,10 +101,10 @@ fn F(T:! type where .Self impls W) { // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z [concrete] -// CHECK:STDOUT: %assoc0.b95: %Z.assoc_type = assoc_entity element0, @Z.WithSelf.%Z.WithSelf.ZF.decl [concrete] +// CHECK:STDOUT: %assoc0.9c1: %Z.assoc_type = assoc_entity element0, @Z.WithSelf.%Z.WithSelf.ZF.decl [concrete] // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] -// CHECK:STDOUT: %assoc0.49b: %Y.assoc_type = assoc_entity element0, @Y.WithSelf.%Y.WithSelf.YF.decl [concrete] +// CHECK:STDOUT: %assoc0.359: %Y.assoc_type = assoc_entity element0, @Y.WithSelf.%Y.WithSelf.YF.decl [concrete] // CHECK:STDOUT: %W.type: type = facet_type <@W> [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] @@ -115,16 +115,16 @@ fn F(T:! type where .Self impls W) { // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T, @Z [symbolic] // CHECK:STDOUT: %Z.facet: %Z.type = facet_value %T.as_type, (%Z.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Z.WithSelf.ZF.type.ca6: type = fn_type @Z.WithSelf.ZF, @Z.WithSelf(%Z.facet) [symbolic] -// CHECK:STDOUT: %.16a: type = fn_type_with_self_type %Z.WithSelf.ZF.type.ca6, %Z.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.153: %.16a = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.bfe: = specific_impl_function %impl.elem0.153, @Z.WithSelf.ZF(%Z.facet) [symbolic] +// CHECK:STDOUT: %Z.WithSelf.ZF.type.560: type = fn_type @Z.WithSelf.ZF, @Z.WithSelf(%Z.facet) [symbolic] +// CHECK:STDOUT: %.891: type = fn_type_with_self_type %Z.WithSelf.ZF.type.560, %Z.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.39f: %.891 = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.301: = specific_impl_function %impl.elem0.39f, @Z.WithSelf.ZF(%Z.facet) [symbolic] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T, @Y [symbolic] // CHECK:STDOUT: %Y.facet: %Y.type = facet_value %T.as_type, (%Y.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Y.WithSelf.YF.type.da2: type = fn_type @Y.WithSelf.YF, @Y.WithSelf(%Y.facet) [symbolic] -// CHECK:STDOUT: %.118: type = fn_type_with_self_type %Y.WithSelf.YF.type.da2, %Y.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.f20: %.118 = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.6c3: = specific_impl_function %impl.elem0.f20, @Y.WithSelf.YF(%Y.facet) [symbolic] +// CHECK:STDOUT: %Y.WithSelf.YF.type.c42: type = fn_type @Y.WithSelf.YF, @Y.WithSelf(%Y.facet) [symbolic] +// CHECK:STDOUT: %.74b: type = fn_type_with_self_type %Y.WithSelf.YF.type.c42, %Y.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.c7d: %.74b = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.aad: = specific_impl_function %impl.elem0.c7d, @Y.WithSelf.YF(%Y.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -146,34 +146,34 @@ fn F(T:! type where .Self impls W) { // CHECK:STDOUT: %T.as_type.loc14_4.2: type = facet_access_type %T.loc12_7.1 [symbolic = %T.as_type.loc14_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T.loc12_7.1, @Z [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness)] // CHECK:STDOUT: %Z.facet: %Z.type = facet_value %T.as_type.loc14_4.2, (%Z.lookup_impl_witness) [symbolic = %Z.facet (constants.%Z.facet)] -// CHECK:STDOUT: %Z.WithSelf.ZF.type: type = fn_type @Z.WithSelf.ZF, @Z.WithSelf(%Z.facet) [symbolic = %Z.WithSelf.ZF.type (constants.%Z.WithSelf.ZF.type.ca6)] -// CHECK:STDOUT: %.loc14_4.2: type = fn_type_with_self_type %Z.WithSelf.ZF.type, %Z.facet [symbolic = %.loc14_4.2 (constants.%.16a)] -// CHECK:STDOUT: %impl.elem0.loc14_4.2: @F.%.loc14_4.2 (%.16a) = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.153)] -// CHECK:STDOUT: %specific_impl_fn.loc14_4.2: = specific_impl_function %impl.elem0.loc14_4.2, @Z.WithSelf.ZF(%Z.facet) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.bfe)] +// CHECK:STDOUT: %Z.WithSelf.ZF.type: type = fn_type @Z.WithSelf.ZF, @Z.WithSelf(%Z.facet) [symbolic = %Z.WithSelf.ZF.type (constants.%Z.WithSelf.ZF.type.560)] +// CHECK:STDOUT: %.loc14_4.2: type = fn_type_with_self_type %Z.WithSelf.ZF.type, %Z.facet [symbolic = %.loc14_4.2 (constants.%.891)] +// CHECK:STDOUT: %impl.elem0.loc14_4.2: @F.%.loc14_4.2 (%.891) = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.39f)] +// CHECK:STDOUT: %specific_impl_fn.loc14_4.2: = specific_impl_function %impl.elem0.loc14_4.2, @Z.WithSelf.ZF(%Z.facet) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.301)] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T.loc12_7.1, @Y [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness)] // CHECK:STDOUT: %Y.facet.loc16_4.2: %Y.type = facet_value %T.as_type.loc14_4.2, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc16_4.2 (constants.%Y.facet)] -// CHECK:STDOUT: %Y.WithSelf.YF.type: type = fn_type @Y.WithSelf.YF, @Y.WithSelf(%Y.facet.loc16_4.2) [symbolic = %Y.WithSelf.YF.type (constants.%Y.WithSelf.YF.type.da2)] -// CHECK:STDOUT: %.loc16_4.2: type = fn_type_with_self_type %Y.WithSelf.YF.type, %Y.facet.loc16_4.2 [symbolic = %.loc16_4.2 (constants.%.118)] -// CHECK:STDOUT: %impl.elem0.loc16_4.2: @F.%.loc16_4.2 (%.118) = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.f20)] -// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @Y.WithSelf.YF(%Y.facet.loc16_4.2) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.6c3)] +// CHECK:STDOUT: %Y.WithSelf.YF.type: type = fn_type @Y.WithSelf.YF, @Y.WithSelf(%Y.facet.loc16_4.2) [symbolic = %Y.WithSelf.YF.type (constants.%Y.WithSelf.YF.type.c42)] +// CHECK:STDOUT: %.loc16_4.2: type = fn_type_with_self_type %Y.WithSelf.YF.type, %Y.facet.loc16_4.2 [symbolic = %.loc16_4.2 (constants.%.74b)] +// CHECK:STDOUT: %impl.elem0.loc16_4.2: @F.%.loc16_4.2 (%.74b) = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.c7d)] +// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @Y.WithSelf.YF(%Y.facet.loc16_4.2) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.aad)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref.loc14: %W.type = name_ref T, %T.loc12_7.2 [symbolic = %T.loc12_7.1 (constants.%T)] // CHECK:STDOUT: %T.as_type.loc14_4.1: type = facet_access_type %T.ref.loc14 [symbolic = %T.as_type.loc14_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc14_4.1: type = converted %T.ref.loc14, %T.as_type.loc14_4.1 [symbolic = %T.as_type.loc14_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %ZF.ref: %Z.assoc_type = name_ref ZF, @Z.WithSelf.%assoc0 [concrete = constants.%assoc0.b95] -// CHECK:STDOUT: %impl.elem0.loc14_4.1: @F.%.loc14_4.2 (%.16a) = impl_witness_access constants.%Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.153)] -// CHECK:STDOUT: %specific_impl_fn.loc14_4.1: = specific_impl_function %impl.elem0.loc14_4.1, @Z.WithSelf.ZF(constants.%Z.facet) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.bfe)] +// CHECK:STDOUT: %ZF.ref: %Z.assoc_type = name_ref ZF, @Z.WithSelf.%assoc0 [concrete = constants.%assoc0.9c1] +// CHECK:STDOUT: %impl.elem0.loc14_4.1: @F.%.loc14_4.2 (%.891) = impl_witness_access constants.%Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.39f)] +// CHECK:STDOUT: %specific_impl_fn.loc14_4.1: = specific_impl_function %impl.elem0.loc14_4.1, @Z.WithSelf.ZF(constants.%Z.facet) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.301)] // CHECK:STDOUT: %Z.WithSelf.ZF.call: init %empty_tuple.type = call %specific_impl_fn.loc14_4.1() // CHECK:STDOUT: %T.ref.loc16: %W.type = name_ref T, %T.loc12_7.2 [symbolic = %T.loc12_7.1 (constants.%T)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] -// CHECK:STDOUT: %YF.ref: %Y.assoc_type = name_ref YF, @Y.WithSelf.%assoc0 [concrete = constants.%assoc0.49b] +// CHECK:STDOUT: %YF.ref: %Y.assoc_type = name_ref YF, @Y.WithSelf.%assoc0 [concrete = constants.%assoc0.359] // CHECK:STDOUT: %T.as_type.loc16: type = facet_access_type %T.ref.loc16 [symbolic = %T.as_type.loc14_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %Y.facet.loc16_4.1: %Y.type = facet_value %T.as_type.loc16, (constants.%Y.lookup_impl_witness) [symbolic = %Y.facet.loc16_4.2 (constants.%Y.facet)] // CHECK:STDOUT: %.loc16_4.1: %Y.type = converted %T.ref.loc16, %Y.facet.loc16_4.1 [symbolic = %Y.facet.loc16_4.2 (constants.%Y.facet)] -// CHECK:STDOUT: %impl.elem0.loc16_4.1: @F.%.loc16_4.2 (%.118) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.f20)] -// CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @Y.WithSelf.YF(constants.%Y.facet) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.6c3)] +// CHECK:STDOUT: %impl.elem0.loc16_4.1: @F.%.loc16_4.2 (%.74b) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.c7d)] +// CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @Y.WithSelf.YF(constants.%Y.facet) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.aad)] // CHECK:STDOUT: %Y.WithSelf.YF.call: init %empty_tuple.type = call %specific_impl_fn.loc16_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -189,10 +189,10 @@ fn F(T:! type where .Self impls W) { // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z [concrete] -// CHECK:STDOUT: %assoc0.b95: %Z.assoc_type = assoc_entity element0, @Z.WithSelf.%Z.WithSelf.ZF.decl [concrete] +// CHECK:STDOUT: %assoc0.9c1: %Z.assoc_type = assoc_entity element0, @Z.WithSelf.%Z.WithSelf.ZF.decl [concrete] // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] -// CHECK:STDOUT: %assoc0.49b: %Y.assoc_type = assoc_entity element0, @Y.WithSelf.%Y.WithSelf.YF.decl [concrete] +// CHECK:STDOUT: %assoc0.359: %Y.assoc_type = assoc_entity element0, @Y.WithSelf.%Y.WithSelf.YF.decl [concrete] // CHECK:STDOUT: %W.type: type = facet_type <@W> [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] @@ -205,16 +205,16 @@ fn F(T:! type where .Self impls W) { // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T, @Z [symbolic] // CHECK:STDOUT: %Z.facet: %Z.type = facet_value %T.as_type, (%Z.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Z.WithSelf.ZF.type.ca6: type = fn_type @Z.WithSelf.ZF, @Z.WithSelf(%Z.facet) [symbolic] -// CHECK:STDOUT: %.16a: type = fn_type_with_self_type %Z.WithSelf.ZF.type.ca6, %Z.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.153: %.16a = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.bfe: = specific_impl_function %impl.elem0.153, @Z.WithSelf.ZF(%Z.facet) [symbolic] +// CHECK:STDOUT: %Z.WithSelf.ZF.type.560: type = fn_type @Z.WithSelf.ZF, @Z.WithSelf(%Z.facet) [symbolic] +// CHECK:STDOUT: %.891: type = fn_type_with_self_type %Z.WithSelf.ZF.type.560, %Z.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.39f: %.891 = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.301: = specific_impl_function %impl.elem0.39f, @Z.WithSelf.ZF(%Z.facet) [symbolic] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T, @Y [symbolic] // CHECK:STDOUT: %Y.facet: %Y.type = facet_value %T.as_type, (%Y.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Y.WithSelf.YF.type.da2: type = fn_type @Y.WithSelf.YF, @Y.WithSelf(%Y.facet) [symbolic] -// CHECK:STDOUT: %.118: type = fn_type_with_self_type %Y.WithSelf.YF.type.da2, %Y.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.f20: %.118 = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.6c3: = specific_impl_function %impl.elem0.f20, @Y.WithSelf.YF(%Y.facet) [symbolic] +// CHECK:STDOUT: %Y.WithSelf.YF.type.c42: type = fn_type @Y.WithSelf.YF, @Y.WithSelf(%Y.facet) [symbolic] +// CHECK:STDOUT: %.74b: type = fn_type_with_self_type %Y.WithSelf.YF.type.c42, %Y.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.c7d: %.74b = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.aad: = specific_impl_function %impl.elem0.c7d, @Y.WithSelf.YF(%Y.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -245,36 +245,36 @@ fn F(T:! type where .Self impls W) { // CHECK:STDOUT: %T.as_type.loc14_4.2: type = facet_access_type %T.loc12_7.1 [symbolic = %T.as_type.loc14_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T.loc12_7.1, @Z [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness)] // CHECK:STDOUT: %Z.facet.loc14_4.2: %Z.type = facet_value %T.as_type.loc14_4.2, (%Z.lookup_impl_witness) [symbolic = %Z.facet.loc14_4.2 (constants.%Z.facet)] -// CHECK:STDOUT: %Z.WithSelf.ZF.type: type = fn_type @Z.WithSelf.ZF, @Z.WithSelf(%Z.facet.loc14_4.2) [symbolic = %Z.WithSelf.ZF.type (constants.%Z.WithSelf.ZF.type.ca6)] -// CHECK:STDOUT: %.loc14_4.2: type = fn_type_with_self_type %Z.WithSelf.ZF.type, %Z.facet.loc14_4.2 [symbolic = %.loc14_4.2 (constants.%.16a)] -// CHECK:STDOUT: %impl.elem0.loc14_4.2: @F.%.loc14_4.2 (%.16a) = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.153)] -// CHECK:STDOUT: %specific_impl_fn.loc14_4.2: = specific_impl_function %impl.elem0.loc14_4.2, @Z.WithSelf.ZF(%Z.facet.loc14_4.2) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.bfe)] +// CHECK:STDOUT: %Z.WithSelf.ZF.type: type = fn_type @Z.WithSelf.ZF, @Z.WithSelf(%Z.facet.loc14_4.2) [symbolic = %Z.WithSelf.ZF.type (constants.%Z.WithSelf.ZF.type.560)] +// CHECK:STDOUT: %.loc14_4.2: type = fn_type_with_self_type %Z.WithSelf.ZF.type, %Z.facet.loc14_4.2 [symbolic = %.loc14_4.2 (constants.%.891)] +// CHECK:STDOUT: %impl.elem0.loc14_4.2: @F.%.loc14_4.2 (%.891) = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.39f)] +// CHECK:STDOUT: %specific_impl_fn.loc14_4.2: = specific_impl_function %impl.elem0.loc14_4.2, @Z.WithSelf.ZF(%Z.facet.loc14_4.2) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.301)] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T.loc12_7.1, @Y [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness)] // CHECK:STDOUT: %Y.facet.loc16_4.2: %Y.type = facet_value %T.as_type.loc14_4.2, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc16_4.2 (constants.%Y.facet)] -// CHECK:STDOUT: %Y.WithSelf.YF.type: type = fn_type @Y.WithSelf.YF, @Y.WithSelf(%Y.facet.loc16_4.2) [symbolic = %Y.WithSelf.YF.type (constants.%Y.WithSelf.YF.type.da2)] -// CHECK:STDOUT: %.loc16_4.2: type = fn_type_with_self_type %Y.WithSelf.YF.type, %Y.facet.loc16_4.2 [symbolic = %.loc16_4.2 (constants.%.118)] -// CHECK:STDOUT: %impl.elem0.loc16_4.2: @F.%.loc16_4.2 (%.118) = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.f20)] -// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @Y.WithSelf.YF(%Y.facet.loc16_4.2) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.6c3)] +// CHECK:STDOUT: %Y.WithSelf.YF.type: type = fn_type @Y.WithSelf.YF, @Y.WithSelf(%Y.facet.loc16_4.2) [symbolic = %Y.WithSelf.YF.type (constants.%Y.WithSelf.YF.type.c42)] +// CHECK:STDOUT: %.loc16_4.2: type = fn_type_with_self_type %Y.WithSelf.YF.type, %Y.facet.loc16_4.2 [symbolic = %.loc16_4.2 (constants.%.74b)] +// CHECK:STDOUT: %impl.elem0.loc16_4.2: @F.%.loc16_4.2 (%.74b) = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.c7d)] +// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @Y.WithSelf.YF(%Y.facet.loc16_4.2) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.aad)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref.loc14: %type_where = name_ref T, %T.loc12_7.2 [symbolic = %T.loc12_7.1 (constants.%T)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] -// CHECK:STDOUT: %ZF.ref: %Z.assoc_type = name_ref ZF, @Z.WithSelf.%assoc0 [concrete = constants.%assoc0.b95] +// CHECK:STDOUT: %ZF.ref: %Z.assoc_type = name_ref ZF, @Z.WithSelf.%assoc0 [concrete = constants.%assoc0.9c1] // CHECK:STDOUT: %T.as_type.loc14_4.1: type = facet_access_type %T.ref.loc14 [symbolic = %T.as_type.loc14_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %Z.facet.loc14_4.1: %Z.type = facet_value %T.as_type.loc14_4.1, (constants.%Z.lookup_impl_witness) [symbolic = %Z.facet.loc14_4.2 (constants.%Z.facet)] // CHECK:STDOUT: %.loc14_4.1: %Z.type = converted %T.ref.loc14, %Z.facet.loc14_4.1 [symbolic = %Z.facet.loc14_4.2 (constants.%Z.facet)] -// CHECK:STDOUT: %impl.elem0.loc14_4.1: @F.%.loc14_4.2 (%.16a) = impl_witness_access constants.%Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.153)] -// CHECK:STDOUT: %specific_impl_fn.loc14_4.1: = specific_impl_function %impl.elem0.loc14_4.1, @Z.WithSelf.ZF(constants.%Z.facet) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.bfe)] +// CHECK:STDOUT: %impl.elem0.loc14_4.1: @F.%.loc14_4.2 (%.891) = impl_witness_access constants.%Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.39f)] +// CHECK:STDOUT: %specific_impl_fn.loc14_4.1: = specific_impl_function %impl.elem0.loc14_4.1, @Z.WithSelf.ZF(constants.%Z.facet) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.301)] // CHECK:STDOUT: %Z.WithSelf.ZF.call: init %empty_tuple.type = call %specific_impl_fn.loc14_4.1() // CHECK:STDOUT: %T.ref.loc16: %type_where = name_ref T, %T.loc12_7.2 [symbolic = %T.loc12_7.1 (constants.%T)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] -// CHECK:STDOUT: %YF.ref: %Y.assoc_type = name_ref YF, @Y.WithSelf.%assoc0 [concrete = constants.%assoc0.49b] +// CHECK:STDOUT: %YF.ref: %Y.assoc_type = name_ref YF, @Y.WithSelf.%assoc0 [concrete = constants.%assoc0.359] // CHECK:STDOUT: %T.as_type.loc16: type = facet_access_type %T.ref.loc16 [symbolic = %T.as_type.loc14_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %Y.facet.loc16_4.1: %Y.type = facet_value %T.as_type.loc16, (constants.%Y.lookup_impl_witness) [symbolic = %Y.facet.loc16_4.2 (constants.%Y.facet)] // CHECK:STDOUT: %.loc16_4.1: %Y.type = converted %T.ref.loc16, %Y.facet.loc16_4.1 [symbolic = %Y.facet.loc16_4.2 (constants.%Y.facet)] -// CHECK:STDOUT: %impl.elem0.loc16_4.1: @F.%.loc16_4.2 (%.118) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.f20)] -// CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @Y.WithSelf.YF(constants.%Y.facet) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.6c3)] +// CHECK:STDOUT: %impl.elem0.loc16_4.1: @F.%.loc16_4.2 (%.74b) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.c7d)] +// CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @Y.WithSelf.YF(constants.%Y.facet) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.aad)] // CHECK:STDOUT: %Y.WithSelf.YF.call: init %empty_tuple.type = call %specific_impl_fn.loc16_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/named_constraint/generic.carbon b/toolchain/check/testdata/named_constraint/generic.carbon index 8c7e90782299..3534481be789 100644 --- a/toolchain/check/testdata/named_constraint/generic.carbon +++ b/toolchain/check/testdata/named_constraint/generic.carbon @@ -82,22 +82,22 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %GenericType.type.2f1: type = generic_named_constaint_type @GenericType [concrete] -// CHECK:STDOUT: %empty_struct.e98: %GenericType.type.2f1 = struct_value () [concrete] +// CHECK:STDOUT: %GenericType.type.d1d: type = generic_named_constaint_type @GenericType [concrete] +// CHECK:STDOUT: %empty_struct.b7e: %GenericType.type.d1d = struct_value () [concrete] // CHECK:STDOUT: %GenericType.type.d68: type = facet_type <@GenericType, @GenericType(%T)> [symbolic] -// CHECK:STDOUT: %Self.7f4dd1.1: %GenericType.type.d68 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.22bbf7.1: %GenericType.type.d68 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.91f: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %pattern_type.461: type = pattern_type %Z.type [concrete] +// CHECK:STDOUT: %Self.cb6: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.5d7: type = pattern_type %Z.type [concrete] // CHECK:STDOUT: %U: %Z.type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %GenericZ.type.971: type = generic_named_constaint_type @GenericZ [concrete] -// CHECK:STDOUT: %empty_struct.809: %GenericZ.type.971 = struct_value () [concrete] +// CHECK:STDOUT: %GenericZ.type.c42: type = generic_named_constaint_type @GenericZ [concrete] +// CHECK:STDOUT: %empty_struct.a73: %GenericZ.type.c42 = struct_value () [concrete] // CHECK:STDOUT: %GenericZ.type.d68: type = facet_type <@GenericZ, @GenericZ(%U)> [symbolic] -// CHECK:STDOUT: %Self.7f4dd1.2: %GenericZ.type.d68 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ForwardDeclaredGeneric.type.bcf: type = generic_named_constaint_type @ForwardDeclaredGeneric [concrete] -// CHECK:STDOUT: %empty_struct.5bf: %ForwardDeclaredGeneric.type.bcf = struct_value () [concrete] +// CHECK:STDOUT: %Self.22bbf7.2: %GenericZ.type.d68 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ForwardDeclaredGeneric.type.650: type = generic_named_constaint_type @ForwardDeclaredGeneric [concrete] +// CHECK:STDOUT: %empty_struct.43d: %ForwardDeclaredGeneric.type.650 = struct_value () [concrete] // CHECK:STDOUT: %ForwardDeclaredGeneric.type.d68: type = facet_type <@ForwardDeclaredGeneric, @ForwardDeclaredGeneric(%T)> [symbolic] -// CHECK:STDOUT: %Self.7f4dd1.3: %ForwardDeclaredGeneric.type.d68 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.22bbf7.3: %ForwardDeclaredGeneric.type.d68 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -107,7 +107,7 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: .GenericZ = %GenericZ.decl // CHECK:STDOUT: .ForwardDeclaredGeneric = %ForwardDeclaredGeneric.decl.loc9 // CHECK:STDOUT: } -// CHECK:STDOUT: %GenericType.decl: %GenericType.type.2f1 = constraint_decl @GenericType [concrete = constants.%empty_struct.e98] { +// CHECK:STDOUT: %GenericType.decl: %GenericType.type.d1d = constraint_decl @GenericType [concrete = constants.%empty_struct.b7e] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_28.1: type = splice_block %.loc4_28.2 [concrete = type] { @@ -117,8 +117,8 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %T.loc4_25.2: type = symbolic_binding T, 0 [symbolic = %T.loc4_25.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Z.decl: type = interface_decl @Z [concrete = constants.%Z.type] {} {} -// CHECK:STDOUT: %GenericZ.decl: %GenericZ.type.971 = constraint_decl @GenericZ [concrete = constants.%empty_struct.809] { -// CHECK:STDOUT: %U.patt: %pattern_type.461 = symbolic_binding_pattern U, 0 [concrete] +// CHECK:STDOUT: %GenericZ.decl: %GenericZ.type.c42 = constraint_decl @GenericZ [concrete = constants.%empty_struct.a73] { +// CHECK:STDOUT: %U.patt: %pattern_type.5d7 = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7: type = splice_block %Z.ref [concrete = constants.%Z.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -126,7 +126,7 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc7_22.2: %Z.type = symbolic_binding U, 0 [symbolic = %U.loc7_22.1 (constants.%U)] // CHECK:STDOUT: } -// CHECK:STDOUT: %ForwardDeclaredGeneric.decl.loc9: %ForwardDeclaredGeneric.type.bcf = constraint_decl @ForwardDeclaredGeneric [concrete = constants.%empty_struct.5bf] { +// CHECK:STDOUT: %ForwardDeclaredGeneric.decl.loc9: %ForwardDeclaredGeneric.type.650 = constraint_decl @ForwardDeclaredGeneric [concrete = constants.%empty_struct.43d] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_39.1: type = splice_block %.loc9_39.2 [concrete = type] { @@ -135,7 +135,7 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc9_36.2: type = symbolic_binding T, 0 [symbolic = %T.loc9_36.1 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %ForwardDeclaredGeneric.decl.loc10: %ForwardDeclaredGeneric.type.bcf = constraint_decl @ForwardDeclaredGeneric [concrete = constants.%empty_struct.5bf] { +// CHECK:STDOUT: %ForwardDeclaredGeneric.decl.loc10: %ForwardDeclaredGeneric.type.650 = constraint_decl @ForwardDeclaredGeneric [concrete = constants.%empty_struct.43d] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10_39.1: type = splice_block %.loc10_39.2 [concrete = type] { @@ -147,7 +147,7 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.91f] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.cb6] // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -162,10 +162,10 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %GenericType.type: type = facet_type <@GenericType, @GenericType(%T.loc4_25.1)> [symbolic = %GenericType.type (constants.%GenericType.type.d68)] -// CHECK:STDOUT: %Self.loc4_34.2: @GenericType.%GenericType.type (%GenericType.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc4_34.2 (constants.%Self.7f4dd1.1)] +// CHECK:STDOUT: %Self.loc4_34.2: @GenericType.%GenericType.type (%GenericType.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc4_34.2 (constants.%Self.22bbf7.1)] // CHECK:STDOUT: // CHECK:STDOUT: constraint { -// CHECK:STDOUT: %Self.loc4_34.1: @GenericType.%GenericType.type (%GenericType.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc4_34.2 (constants.%Self.7f4dd1.1)] +// CHECK:STDOUT: %Self.loc4_34.1: @GenericType.%GenericType.type (%GenericType.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc4_34.2 (constants.%Self.22bbf7.1)] // CHECK:STDOUT: %GenericType.WithSelf.decl = constraint_with_self_decl @GenericType [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -180,10 +180,10 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %GenericZ.type: type = facet_type <@GenericZ, @GenericZ(%U.loc7_22.1)> [symbolic = %GenericZ.type (constants.%GenericZ.type.d68)] -// CHECK:STDOUT: %Self.loc7_28.2: @GenericZ.%GenericZ.type (%GenericZ.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc7_28.2 (constants.%Self.7f4dd1.2)] +// CHECK:STDOUT: %Self.loc7_28.2: @GenericZ.%GenericZ.type (%GenericZ.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc7_28.2 (constants.%Self.22bbf7.2)] // CHECK:STDOUT: // CHECK:STDOUT: constraint { -// CHECK:STDOUT: %Self.loc7_28.1: @GenericZ.%GenericZ.type (%GenericZ.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc7_28.2 (constants.%Self.7f4dd1.2)] +// CHECK:STDOUT: %Self.loc7_28.1: @GenericZ.%GenericZ.type (%GenericZ.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc7_28.2 (constants.%Self.22bbf7.2)] // CHECK:STDOUT: %GenericZ.WithSelf.decl = constraint_with_self_decl @GenericZ [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -198,10 +198,10 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %ForwardDeclaredGeneric.type: type = facet_type <@ForwardDeclaredGeneric, @ForwardDeclaredGeneric(%T.loc9_36.1)> [symbolic = %ForwardDeclaredGeneric.type (constants.%ForwardDeclaredGeneric.type.d68)] -// CHECK:STDOUT: %Self.loc10_45.2: @ForwardDeclaredGeneric.%ForwardDeclaredGeneric.type (%ForwardDeclaredGeneric.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc10_45.2 (constants.%Self.7f4dd1.3)] +// CHECK:STDOUT: %Self.loc10_45.2: @ForwardDeclaredGeneric.%ForwardDeclaredGeneric.type (%ForwardDeclaredGeneric.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc10_45.2 (constants.%Self.22bbf7.3)] // CHECK:STDOUT: // CHECK:STDOUT: constraint { -// CHECK:STDOUT: %Self.loc10_45.1: @ForwardDeclaredGeneric.%ForwardDeclaredGeneric.type (%ForwardDeclaredGeneric.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc10_45.2 (constants.%Self.7f4dd1.3)] +// CHECK:STDOUT: %Self.loc10_45.1: @ForwardDeclaredGeneric.%ForwardDeclaredGeneric.type (%ForwardDeclaredGeneric.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc10_45.2 (constants.%Self.22bbf7.3)] // CHECK:STDOUT: %ForwardDeclaredGeneric.WithSelf.decl = constraint_with_self_decl @ForwardDeclaredGeneric [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -215,19 +215,19 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %T.loc4_25.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericType.WithSelf(constants.%T, constants.%Self.7f4dd1.1) {} +// CHECK:STDOUT: specific @GenericType.WithSelf(constants.%T, constants.%Self.22bbf7.1) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.91f) {} +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.cb6) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericZ(constants.%U) { // CHECK:STDOUT: %U.loc7_22.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericZ.WithSelf(constants.%U, constants.%Self.7f4dd1.2) {} +// CHECK:STDOUT: specific @GenericZ.WithSelf(constants.%U, constants.%Self.22bbf7.2) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @ForwardDeclaredGeneric(constants.%T) { // CHECK:STDOUT: %T.loc9_36.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ForwardDeclaredGeneric.WithSelf(constants.%T, constants.%Self.7f4dd1.3) {} +// CHECK:STDOUT: specific @ForwardDeclaredGeneric.WithSelf(constants.%T, constants.%Self.22bbf7.3) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/named_constraint/import_constraint_decl.carbon b/toolchain/check/testdata/named_constraint/import_constraint_decl.carbon index 4815b455d469..f8cbcd0e96be 100644 --- a/toolchain/check/testdata/named_constraint/import_constraint_decl.carbon +++ b/toolchain/check/testdata/named_constraint/import_constraint_decl.carbon @@ -84,7 +84,7 @@ impl C as B {} // CHECK:STDOUT: %B.type: type = facet_type <@B> [concrete] // CHECK:STDOUT: %Self.f45: %B.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %Self.2e1: %I.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.dda: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.f45 [symbolic] // CHECK:STDOUT: %pattern_type: type = pattern_type %B.type [concrete] // CHECK:STDOUT: %T: %B.type = symbolic_binding T, 0 [symbolic] @@ -95,12 +95,12 @@ impl C as B {} // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I = import_ref Main//b, I, unloaded // CHECK:STDOUT: %Main.B: type = import_ref Main//b, B, loaded [concrete = constants.%B.type] -// CHECK:STDOUT: %Main.import_ref.06a = import_ref Main//b, loc5_25, unloaded -// CHECK:STDOUT: %Main.import_ref.396 = import_ref Main//b, loc3_13, unloaded -// CHECK:STDOUT: %Main.import_ref.c81: type = import_ref Main//b, loc5_18, loaded [symbolic = @B.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %Main.import_ref.98c: type = import_ref Main//b, loc5_24, loaded [concrete = constants.%I.type] -// CHECK:STDOUT: %Main.import_ref.8b80ca.2: %B.type = import_ref Main//b, loc4_14, loaded [symbolic = constants.%Self.f45] -// CHECK:STDOUT: %Main.import_ref.a22 = import_ref Main//b, loc4_14, unloaded +// CHECK:STDOUT: %Main.import_ref.da7 = import_ref Main//b, loc5_25, unloaded +// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//b, loc3_13, unloaded +// CHECK:STDOUT: %Main.import_ref.5f6: type = import_ref Main//b, loc5_18, loaded [symbolic = @B.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %Main.import_ref.c3f: type = import_ref Main//b, loc5_24, loaded [concrete = constants.%I.type] +// CHECK:STDOUT: %Main.import_ref.423e3a.2: %B.type = import_ref Main//b, loc4_14, loaded [symbolic = constants.%Self.f45] +// CHECK:STDOUT: %Main.import_ref.364 = import_ref Main//b, loc4_14, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -124,7 +124,7 @@ impl C as B {} // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.396 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.223 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -132,16 +132,16 @@ impl C as B {} // CHECK:STDOUT: // CHECK:STDOUT: constraint @B [from "b.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.a22 -// CHECK:STDOUT: extend imports.%Main.import_ref.06a +// CHECK:STDOUT: .Self = imports.%Main.import_ref.364 +// CHECK:STDOUT: extend imports.%Main.import_ref.da7 // CHECK:STDOUT: // CHECK:STDOUT: !requires: // CHECK:STDOUT: @B.WithSelf.Self.as_type.impls.I.type.require { -// CHECK:STDOUT: require imports.%Main.import_ref.c81 impls imports.%Main.import_ref.98c +// CHECK:STDOUT: require imports.%Main.import_ref.5f6 impls imports.%Main.import_ref.c3f // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @B.WithSelf.Self.as_type.impls.I.type.require(imports.%Main.import_ref.8b80ca.2: %B.type) [from "b.carbon"] { +// CHECK:STDOUT: generic require @B.WithSelf.Self.as_type.impls.I.type.require(imports.%Main.import_ref.423e3a.2: %B.type) [from "b.carbon"] { // CHECK:STDOUT: %Self: %B.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f45)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: } @@ -159,7 +159,7 @@ impl C as B {} // CHECK:STDOUT: // CHECK:STDOUT: specific @B.WithSelf(constants.%Self.f45) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.2e1) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%Self.dda) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/named_constraint/require.carbon b/toolchain/check/testdata/named_constraint/require.carbon index 2d2fb5203f4c..e42d65761dc9 100644 --- a/toolchain/check/testdata/named_constraint/require.carbon +++ b/toolchain/check/testdata/named_constraint/require.carbon @@ -747,16 +747,16 @@ constraint N { // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] // CHECK:STDOUT: %assoc0: %Y.assoc_type = assoc_entity element0, @Y.WithSelf.%Y.WithSelf.YY.decl [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.f49: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.f49 [symbolic] +// CHECK:STDOUT: %Self.d87: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.d87 [symbolic] // CHECK:STDOUT: %T: %Z.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %pattern_type.86a: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T, @Y [symbolic] // CHECK:STDOUT: %Y.facet: %Y.type = facet_value %T.as_type, (%Y.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Y.WithSelf.YY.type.99e: type = fn_type @Y.WithSelf.YY, @Y.WithSelf(%Y.facet) [symbolic] -// CHECK:STDOUT: %.217: type = fn_type_with_self_type %Y.WithSelf.YY.type.99e, %Y.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.217 = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %Y.WithSelf.YY.type.0e8: type = fn_type @Y.WithSelf.YY, @Y.WithSelf(%Y.facet) [symbolic] +// CHECK:STDOUT: %.43c: type = fn_type_with_self_type %Y.WithSelf.YY.type.0e8, %Y.facet [symbolic] +// CHECK:STDOUT: %impl.elem0: %.43c = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Y.WithSelf.YY(%Y.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -765,7 +765,7 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: constraint @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f49] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d87] // CHECK:STDOUT: %Z.WithSelf.decl = constraint_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -775,7 +775,7 @@ constraint N { // CHECK:STDOUT: %Self.as_type.loc9_18.1: type = facet_access_type @Z.%Self [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc9: type = specific_constant @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.ref, @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.f49) [concrete = constants.%Y.type] +// CHECK:STDOUT: %.loc9: type = specific_constant @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.ref, @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.d87) [concrete = constants.%Y.type] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -791,7 +791,7 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f49)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.d87)] // CHECK:STDOUT: %Self.as_type.loc9_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -802,9 +802,9 @@ constraint N { // CHECK:STDOUT: // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T.loc13_7.1, @Y [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness)] // CHECK:STDOUT: %Y.facet.loc15: %Y.type = facet_value %T.as_type.loc13_16.1, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc15 (constants.%Y.facet)] -// CHECK:STDOUT: %Y.WithSelf.YY.type: type = fn_type @Y.WithSelf.YY, @Y.WithSelf(%Y.facet.loc15) [symbolic = %Y.WithSelf.YY.type (constants.%Y.WithSelf.YY.type.99e)] -// CHECK:STDOUT: %.loc15_4.2: type = fn_type_with_self_type %Y.WithSelf.YY.type, %Y.facet.loc15 [symbolic = %.loc15_4.2 (constants.%.217)] -// CHECK:STDOUT: %impl.elem0.loc15_4.2: @F.%.loc15_4.2 (%.217) = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %Y.WithSelf.YY.type: type = fn_type @Y.WithSelf.YY, @Y.WithSelf(%Y.facet.loc15) [symbolic = %Y.WithSelf.YY.type (constants.%Y.WithSelf.YY.type.0e8)] +// CHECK:STDOUT: %.loc15_4.2: type = fn_type_with_self_type %Y.WithSelf.YY.type, %Y.facet.loc15 [symbolic = %.loc15_4.2 (constants.%.43c)] +// CHECK:STDOUT: %impl.elem0.loc15_4.2: @F.%.loc15_4.2 (%.43c) = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc15_4.2: = specific_impl_function %impl.elem0.loc15_4.2, @Y.WithSelf.YY(%Y.facet.loc15) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc13_16.1 (%T.as_type)) { @@ -813,7 +813,7 @@ constraint N { // CHECK:STDOUT: %T.as_type.loc15: type = facet_access_type %T.ref.loc15 [symbolic = %T.as_type.loc13_16.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc15_4.1: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.as_type.loc13_16.1 (constants.%T.as_type)] // CHECK:STDOUT: %YY.ref.loc15: %Y.assoc_type = name_ref YY, @Y.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc15_4.1: @F.%.loc15_4.2 (%.217) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc15_4.1: @F.%.loc15_4.2 (%.43c) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc15_4.1: = specific_impl_function %impl.elem0.loc15_4.1, @Y.WithSelf.YY(constants.%Y.facet) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %Y.WithSelf.YY.call.loc15: init %empty_tuple.type = call %specific_impl_fn.loc15_4.1() // CHECK:STDOUT: %T.ref.loc16: %Z.type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T)] @@ -822,24 +822,24 @@ constraint N { // CHECK:STDOUT: %T.as_type.loc16: type = facet_access_type %T.ref.loc16 [symbolic = %T.as_type.loc13_16.1 (constants.%T.as_type)] // CHECK:STDOUT: %Y.facet.loc16: %Y.type = facet_value %T.as_type.loc16, (constants.%Y.lookup_impl_witness) [symbolic = %Y.facet.loc15 (constants.%Y.facet)] // CHECK:STDOUT: %.loc16: %Y.type = converted %T.ref.loc16, %Y.facet.loc16 [symbolic = %Y.facet.loc15 (constants.%Y.facet)] -// CHECK:STDOUT: %impl.elem0.loc16: @F.%.loc15_4.2 (%.217) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc16: @F.%.loc15_4.2 (%.43c) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc16: = specific_impl_function %impl.elem0.loc16, @Y.WithSelf.YY(constants.%Y.facet) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %Y.WithSelf.YY.call.loc16: init %empty_tuple.type = call %specific_impl_fn.loc16() // CHECK:STDOUT: %t.ref: @F.%T.as_type.loc13_16.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %YY.ref.loc18: %Y.assoc_type = name_ref YY, @Y.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc18: @F.%.loc15_4.2 (%.217) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc18: @F.%.loc15_4.2 (%.43c) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc18: = specific_impl_function %impl.elem0.loc18, @Y.WithSelf.YY(constants.%Y.facet) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %Y.WithSelf.YY.call.loc18: init %empty_tuple.type = call %specific_impl_fn.loc18() // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.f49) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.d87) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.f49) { -// CHECK:STDOUT: %Self => constants.%Self.f49 +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.d87) { +// CHECK:STDOUT: %Self => constants.%Self.d87 // CHECK:STDOUT: %Self.as_type.loc9_18.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -862,28 +862,28 @@ constraint N { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Y.type.99a: type = generic_interface_type @Y [concrete] +// CHECK:STDOUT: %Y.type.cb4: type = generic_interface_type @Y [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Y.generic: %Y.type.99a = struct_value () [concrete] -// CHECK:STDOUT: %Y.type.c2f: type = facet_type <@Y, @Y(%T.67d)> [symbolic] -// CHECK:STDOUT: %Self.6e3: %Y.type.c2f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Y.generic: %Y.type.cb4 = struct_value () [concrete] +// CHECK:STDOUT: %Y.type.67d: type = facet_type <@Y, @Y(%T.67d)> [symbolic] +// CHECK:STDOUT: %Self.624: %Y.type.67d = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.f49: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.f49 [symbolic] -// CHECK:STDOUT: %Y.type.68a: type = facet_type <@Y, @Y(%Self.as_type)> [symbolic] -// CHECK:STDOUT: %require_complete.3ae: = require_complete_type %Y.type.68a [symbolic] +// CHECK:STDOUT: %Self.d87: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.d87 [symbolic] +// CHECK:STDOUT: %Y.type.f41: type = facet_type <@Y, @Y(%Self.as_type)> [symbolic] +// CHECK:STDOUT: %require_complete.097: = require_complete_type %Y.type.f41 [symbolic] // CHECK:STDOUT: %T.f45: %Z.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f45 [symbolic] // CHECK:STDOUT: %pattern_type.86a: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %Y.type.061: type = facet_type <@Y, @Y(%T.as_type)> [symbolic] -// CHECK:STDOUT: %require_complete.7de: = require_complete_type %Y.type.061 [symbolic] -// CHECK:STDOUT: %Y.assoc_type.b2a: type = assoc_entity_type @Y, @Y(%T.as_type) [symbolic] -// CHECK:STDOUT: %assoc0.322: %Y.assoc_type.b2a = assoc_entity element0, @Y.WithSelf.%Y.WithSelf.YY.decl [symbolic] +// CHECK:STDOUT: %Y.type.40d: type = facet_type <@Y, @Y(%T.as_type)> [symbolic] +// CHECK:STDOUT: %require_complete.4ae: = require_complete_type %Y.type.40d [symbolic] +// CHECK:STDOUT: %Y.assoc_type.0ce: type = assoc_entity_type @Y, @Y(%T.as_type) [symbolic] +// CHECK:STDOUT: %assoc0.cc2: %Y.assoc_type.0ce = assoc_entity element0, @Y.WithSelf.%Y.WithSelf.YY.decl [symbolic] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T.f45, @Y, @Y(%T.as_type) [symbolic] -// CHECK:STDOUT: %Y.facet: %Y.type.061 = facet_value %T.as_type, (%Y.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Y.WithSelf.YY.type.e4e: type = fn_type @Y.WithSelf.YY, @Y.WithSelf(%T.as_type, %Y.facet) [symbolic] -// CHECK:STDOUT: %.39f: type = fn_type_with_self_type %Y.WithSelf.YY.type.e4e, %Y.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.39f = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %Y.facet: %Y.type.40d = facet_value %T.as_type, (%Y.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Y.WithSelf.YY.type.5a5: type = fn_type @Y.WithSelf.YY, @Y.WithSelf(%T.as_type, %Y.facet) [symbolic] +// CHECK:STDOUT: %.44d: type = fn_type_with_self_type %Y.WithSelf.YY.type.5a5, %Y.facet [symbolic] +// CHECK:STDOUT: %impl.elem0: %.44d = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Y.WithSelf.YY(%T.as_type, %Y.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -892,7 +892,7 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: constraint @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f49] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d87] // CHECK:STDOUT: %Z.WithSelf.decl = constraint_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -900,13 +900,13 @@ constraint N { // CHECK:STDOUT: require %Self.as_type.loc9_18.1 impls %Y.type.loc9_30.1 // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.as_type.loc9_18.1: type = facet_access_type @Z.%Self [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %Y.ref: %Y.type.99a = name_ref Y, file.%Y.decl [concrete = constants.%Y.generic] -// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.f49)] +// CHECK:STDOUT: %Y.ref: %Y.type.cb4 = name_ref Y, file.%Y.decl [concrete = constants.%Y.generic] +// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.d87)] // CHECK:STDOUT: %Self.as_type.loc9_30: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type.loc9_30 [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %Y.type.loc9_30.1: type = facet_type <@Y, @Y(constants.%Self.as_type)> [symbolic = %Y.type.loc9_30.2 (constants.%Y.type.68a)] +// CHECK:STDOUT: %Y.type.loc9_30.1: type = facet_type <@Y, @Y(constants.%Self.as_type)> [symbolic = %Y.type.loc9_30.2 (constants.%Y.type.f41)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc9: type = specific_constant @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.type.loc9_30.1, @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.f49) [symbolic = %Y.type (constants.%Y.type.68a)] +// CHECK:STDOUT: %.loc9: type = specific_constant @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.type.loc9_30.1, @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.d87) [symbolic = %Y.type (constants.%Y.type.f41)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -922,9 +922,9 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f49)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.d87)] // CHECK:STDOUT: %Self.as_type.loc9_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %Y.type.loc9_30.2: type = facet_type <@Y, @Y(%Self.as_type.loc9_18.2)> [symbolic = %Y.type.loc9_30.2 (constants.%Y.type.68a)] +// CHECK:STDOUT: %Y.type.loc9_30.2: type = facet_type <@Y, @Y(%Self.as_type.loc9_18.2)> [symbolic = %Y.type.loc9_30.2 (constants.%Y.type.f41)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc13_7.2: %Z.type) { @@ -932,63 +932,63 @@ constraint N { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%T.as_type.loc13_16.1) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.b2a)] -// CHECK:STDOUT: %assoc0: @F.%Y.assoc_type (%Y.assoc_type.b2a) = assoc_entity element0, @Y.WithSelf.%Y.WithSelf.YY.decl [symbolic = %assoc0 (constants.%assoc0.322)] -// CHECK:STDOUT: %Y.type.loc15: type = facet_type <@Y, @Y(%T.as_type.loc13_16.1)> [symbolic = %Y.type.loc15 (constants.%Y.type.061)] +// CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%T.as_type.loc13_16.1) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.0ce)] +// CHECK:STDOUT: %assoc0: @F.%Y.assoc_type (%Y.assoc_type.0ce) = assoc_entity element0, @Y.WithSelf.%Y.WithSelf.YY.decl [symbolic = %assoc0 (constants.%assoc0.cc2)] +// CHECK:STDOUT: %Y.type.loc15: type = facet_type <@Y, @Y(%T.as_type.loc13_16.1)> [symbolic = %Y.type.loc15 (constants.%Y.type.40d)] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T.loc13_7.1, @Y, @Y(%T.as_type.loc13_16.1) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness)] -// CHECK:STDOUT: %Y.facet.loc15: @F.%Y.type.loc15 (%Y.type.061) = facet_value %T.as_type.loc13_16.1, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc15 (constants.%Y.facet)] -// CHECK:STDOUT: %Y.WithSelf.YY.type: type = fn_type @Y.WithSelf.YY, @Y.WithSelf(%T.as_type.loc13_16.1, %Y.facet.loc15) [symbolic = %Y.WithSelf.YY.type (constants.%Y.WithSelf.YY.type.e4e)] -// CHECK:STDOUT: %.loc15_4.3: type = fn_type_with_self_type %Y.WithSelf.YY.type, %Y.facet.loc15 [symbolic = %.loc15_4.3 (constants.%.39f)] -// CHECK:STDOUT: %impl.elem0.loc15_4.2: @F.%.loc15_4.3 (%.39f) = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %Y.facet.loc15: @F.%Y.type.loc15 (%Y.type.40d) = facet_value %T.as_type.loc13_16.1, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc15 (constants.%Y.facet)] +// CHECK:STDOUT: %Y.WithSelf.YY.type: type = fn_type @Y.WithSelf.YY, @Y.WithSelf(%T.as_type.loc13_16.1, %Y.facet.loc15) [symbolic = %Y.WithSelf.YY.type (constants.%Y.WithSelf.YY.type.5a5)] +// CHECK:STDOUT: %.loc15_4.3: type = fn_type_with_self_type %Y.WithSelf.YY.type, %Y.facet.loc15 [symbolic = %.loc15_4.3 (constants.%.44d)] +// CHECK:STDOUT: %impl.elem0.loc15_4.2: @F.%.loc15_4.3 (%.44d) = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc15_4.2: = specific_impl_function %impl.elem0.loc15_4.2, @Y.WithSelf.YY(%T.as_type.loc13_16.1, %Y.facet.loc15) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] -// CHECK:STDOUT: %require_complete.loc16: = require_complete_type %Y.type.loc15 [symbolic = %require_complete.loc16 (constants.%require_complete.7de)] +// CHECK:STDOUT: %require_complete.loc16: = require_complete_type %Y.type.loc15 [symbolic = %require_complete.loc16 (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc13_16.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref.loc15: %Z.type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.f45)] // CHECK:STDOUT: %T.as_type.loc15: type = facet_access_type %T.ref.loc15 [symbolic = %T.as_type.loc13_16.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc15_4.1: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.as_type.loc13_16.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc15_4.2: @F.%Y.assoc_type (%Y.assoc_type.b2a) = specific_constant @Y.WithSelf.%assoc0.loc4_10.1, @Y.WithSelf(constants.%T.as_type, constants.%T.f45) [symbolic = %assoc0 (constants.%assoc0.322)] -// CHECK:STDOUT: %YY.ref.loc15: @F.%Y.assoc_type (%Y.assoc_type.b2a) = name_ref YY, %.loc15_4.2 [symbolic = %assoc0 (constants.%assoc0.322)] -// CHECK:STDOUT: %impl.elem0.loc15_4.1: @F.%.loc15_4.3 (%.39f) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %.loc15_4.2: @F.%Y.assoc_type (%Y.assoc_type.0ce) = specific_constant @Y.WithSelf.%assoc0.loc4_10.1, @Y.WithSelf(constants.%T.as_type, constants.%T.f45) [symbolic = %assoc0 (constants.%assoc0.cc2)] +// CHECK:STDOUT: %YY.ref.loc15: @F.%Y.assoc_type (%Y.assoc_type.0ce) = name_ref YY, %.loc15_4.2 [symbolic = %assoc0 (constants.%assoc0.cc2)] +// CHECK:STDOUT: %impl.elem0.loc15_4.1: @F.%.loc15_4.3 (%.44d) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc15_4.1: = specific_impl_function %impl.elem0.loc15_4.1, @Y.WithSelf.YY(constants.%T.as_type, constants.%Y.facet) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %Y.WithSelf.YY.call.loc15: init %empty_tuple.type = call %specific_impl_fn.loc15_4.1() // CHECK:STDOUT: %T.ref.loc16_3: %Z.type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.f45)] -// CHECK:STDOUT: %Y.ref: %Y.type.99a = name_ref Y, file.%Y.decl [concrete = constants.%Y.generic] +// CHECK:STDOUT: %Y.ref: %Y.type.cb4 = name_ref Y, file.%Y.decl [concrete = constants.%Y.generic] // CHECK:STDOUT: %T.ref.loc16_8: %Z.type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.f45)] // CHECK:STDOUT: %T.as_type.loc16_9: type = facet_access_type %T.ref.loc16_8 [symbolic = %T.as_type.loc13_16.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc16_9: type = converted %T.ref.loc16_8, %T.as_type.loc16_9 [symbolic = %T.as_type.loc13_16.1 (constants.%T.as_type)] -// CHECK:STDOUT: %Y.type.loc16: type = facet_type <@Y, @Y(constants.%T.as_type)> [symbolic = %Y.type.loc15 (constants.%Y.type.061)] -// CHECK:STDOUT: %.loc16_10: @F.%Y.assoc_type (%Y.assoc_type.b2a) = specific_constant @Y.WithSelf.%assoc0.loc4_10.1, @Y.WithSelf(constants.%T.as_type, constants.%Self.6e3) [symbolic = %assoc0 (constants.%assoc0.322)] -// CHECK:STDOUT: %YY.ref.loc16: @F.%Y.assoc_type (%Y.assoc_type.b2a) = name_ref YY, %.loc16_10 [symbolic = %assoc0 (constants.%assoc0.322)] +// CHECK:STDOUT: %Y.type.loc16: type = facet_type <@Y, @Y(constants.%T.as_type)> [symbolic = %Y.type.loc15 (constants.%Y.type.40d)] +// CHECK:STDOUT: %.loc16_10: @F.%Y.assoc_type (%Y.assoc_type.0ce) = specific_constant @Y.WithSelf.%assoc0.loc4_10.1, @Y.WithSelf(constants.%T.as_type, constants.%Self.624) [symbolic = %assoc0 (constants.%assoc0.cc2)] +// CHECK:STDOUT: %YY.ref.loc16: @F.%Y.assoc_type (%Y.assoc_type.0ce) = name_ref YY, %.loc16_10 [symbolic = %assoc0 (constants.%assoc0.cc2)] // CHECK:STDOUT: %T.as_type.loc16_4: type = facet_access_type %T.ref.loc16_3 [symbolic = %T.as_type.loc13_16.1 (constants.%T.as_type)] -// CHECK:STDOUT: %Y.facet.loc16: @F.%Y.type.loc15 (%Y.type.061) = facet_value %T.as_type.loc16_4, (constants.%Y.lookup_impl_witness) [symbolic = %Y.facet.loc15 (constants.%Y.facet)] -// CHECK:STDOUT: %.loc16_4: @F.%Y.type.loc15 (%Y.type.061) = converted %T.ref.loc16_3, %Y.facet.loc16 [symbolic = %Y.facet.loc15 (constants.%Y.facet)] -// CHECK:STDOUT: %impl.elem0.loc16: @F.%.loc15_4.3 (%.39f) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %Y.facet.loc16: @F.%Y.type.loc15 (%Y.type.40d) = facet_value %T.as_type.loc16_4, (constants.%Y.lookup_impl_witness) [symbolic = %Y.facet.loc15 (constants.%Y.facet)] +// CHECK:STDOUT: %.loc16_4: @F.%Y.type.loc15 (%Y.type.40d) = converted %T.ref.loc16_3, %Y.facet.loc16 [symbolic = %Y.facet.loc15 (constants.%Y.facet)] +// CHECK:STDOUT: %impl.elem0.loc16: @F.%.loc15_4.3 (%.44d) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc16: = specific_impl_function %impl.elem0.loc16, @Y.WithSelf.YY(constants.%T.as_type, constants.%Y.facet) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %Y.WithSelf.YY.call.loc16: init %empty_tuple.type = call %specific_impl_fn.loc16() // CHECK:STDOUT: %t.ref: @F.%T.as_type.loc13_16.1 (%T.as_type) = name_ref t, %t -// CHECK:STDOUT: %.loc18: @F.%Y.assoc_type (%Y.assoc_type.b2a) = specific_constant @Y.WithSelf.%assoc0.loc4_10.1, @Y.WithSelf(constants.%T.as_type, constants.%T.f45) [symbolic = %assoc0 (constants.%assoc0.322)] -// CHECK:STDOUT: %YY.ref.loc18: @F.%Y.assoc_type (%Y.assoc_type.b2a) = name_ref YY, %.loc18 [symbolic = %assoc0 (constants.%assoc0.322)] -// CHECK:STDOUT: %impl.elem0.loc18: @F.%.loc15_4.3 (%.39f) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %.loc18: @F.%Y.assoc_type (%Y.assoc_type.0ce) = specific_constant @Y.WithSelf.%assoc0.loc4_10.1, @Y.WithSelf(constants.%T.as_type, constants.%T.f45) [symbolic = %assoc0 (constants.%assoc0.cc2)] +// CHECK:STDOUT: %YY.ref.loc18: @F.%Y.assoc_type (%Y.assoc_type.0ce) = name_ref YY, %.loc18 [symbolic = %assoc0 (constants.%assoc0.cc2)] +// CHECK:STDOUT: %impl.elem0.loc18: @F.%.loc15_4.3 (%.44d) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc18: = specific_impl_function %impl.elem0.loc18, @Y.WithSelf.YY(constants.%T.as_type, constants.%Y.facet) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %Y.WithSelf.YY.call.loc18: init %empty_tuple.type = call %specific_impl_fn.loc18() // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.f49) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.d87) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%Self.f49 +// CHECK:STDOUT: %Self => constants.%Self.d87 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %Y.type => constants.%Y.type.68a -// CHECK:STDOUT: %require_complete => constants.%require_complete.3ae +// CHECK:STDOUT: %Y.type => constants.%Y.type.f41 +// CHECK:STDOUT: %require_complete => constants.%require_complete.097 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.f49) { -// CHECK:STDOUT: %Self => constants.%Self.f49 +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.d87) { +// CHECK:STDOUT: %Self => constants.%Self.d87 // CHECK:STDOUT: %Self.as_type.loc9_18.2 => constants.%Self.as_type -// CHECK:STDOUT: %Y.type.loc9_30.2 => constants.%Y.type.68a +// CHECK:STDOUT: %Y.type.loc9_30.2 => constants.%Y.type.f41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.f45) { @@ -1001,14 +1001,14 @@ constraint N { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%T.f45 // CHECK:STDOUT: %Self.as_type => constants.%T.as_type -// CHECK:STDOUT: %Y.type => constants.%Y.type.061 -// CHECK:STDOUT: %require_complete => constants.%require_complete.7de +// CHECK:STDOUT: %Y.type => constants.%Y.type.40d +// CHECK:STDOUT: %require_complete => constants.%require_complete.4ae // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%T.f45) { // CHECK:STDOUT: %Self => constants.%T.f45 // CHECK:STDOUT: %Self.as_type.loc9_18.2 => constants.%T.as_type -// CHECK:STDOUT: %Y.type.loc9_30.2 => constants.%Y.type.061 +// CHECK:STDOUT: %Y.type.loc9_30.2 => constants.%Y.type.40d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- implicit_self_impls.carbon @@ -1016,8 +1016,8 @@ constraint N { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.f49: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.f49 [symbolic] +// CHECK:STDOUT: %Self.d87: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.d87 [symbolic] // CHECK:STDOUT: %T: %Z.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: } @@ -1027,7 +1027,7 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: constraint @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f49] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d87] // CHECK:STDOUT: %Z.WithSelf.decl = constraint_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -1050,16 +1050,16 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f49)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.d87)] // CHECK:STDOUT: %Self.as_type.loc9_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.f49) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.d87) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.f49) { -// CHECK:STDOUT: %Self => constants.%Self.f49 +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.d87) { +// CHECK:STDOUT: %Self => constants.%Self.d87 // CHECK:STDOUT: %Self.as_type.loc9_11.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1077,8 +1077,8 @@ constraint N { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.f49: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.f49 [symbolic] +// CHECK:STDOUT: %Self.d87: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.d87 [symbolic] // CHECK:STDOUT: %T: %Z.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: } @@ -1088,14 +1088,14 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: constraint @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f49] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d87] // CHECK:STDOUT: %Z.WithSelf.decl = constraint_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Z.WithSelf.Self.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.as_type.impls.Y.type.require [concrete] { // CHECK:STDOUT: require %.loc9 impls %Y.ref // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.f49)] +// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.d87)] // CHECK:STDOUT: %Self.as_type.loc9_11.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type.loc9_11.1 [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] @@ -1113,16 +1113,16 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f49)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.d87)] // CHECK:STDOUT: %Self.as_type.loc9_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.f49) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.d87) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.f49) { -// CHECK:STDOUT: %Self => constants.%Self.f49 +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.d87) { +// CHECK:STDOUT: %Self => constants.%Self.d87 // CHECK:STDOUT: %Self.as_type.loc9_11.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1142,9 +1142,9 @@ constraint N { // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.f49: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.f49 [symbolic] -// CHECK:STDOUT: %C.7bf: type = class_type @C, @C(%Self.as_type) [symbolic] +// CHECK:STDOUT: %Self.d87: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.d87 [symbolic] +// CHECK:STDOUT: %C.e83: type = class_type @C, @C(%Self.as_type) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1152,7 +1152,7 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: constraint @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f49] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d87] // CHECK:STDOUT: %Z.WithSelf.decl = constraint_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -1160,10 +1160,10 @@ constraint N { // CHECK:STDOUT: require %C.loc9_17.1 impls %Y.ref // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] -// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.f49)] +// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.d87)] // CHECK:STDOUT: %Self.as_type.loc9_17.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_17.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type.loc9_17.1 [symbolic = %Self.as_type.loc9_17.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %C.loc9_17.1: type = class_type @C, @C(constants.%Self.as_type) [symbolic = %C.loc9_17.2 (constants.%C.7bf)] +// CHECK:STDOUT: %C.loc9_17.1: type = class_type @C, @C(constants.%Self.as_type) [symbolic = %C.loc9_17.2 (constants.%C.e83)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1181,17 +1181,17 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @Z.WithSelf.C.impls.Y.type.require(@Z.%Self: %Z.type) { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f49)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.d87)] // CHECK:STDOUT: %Self.as_type.loc9_17.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_17.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %C.loc9_17.2: type = class_type @C, @C(%Self.as_type.loc9_17.2) [symbolic = %C.loc9_17.2 (constants.%C.7bf)] +// CHECK:STDOUT: %C.loc9_17.2: type = class_type @C, @C(%Self.as_type.loc9_17.2) [symbolic = %C.loc9_17.2 (constants.%C.e83)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.f49) {} +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.d87) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.C.impls.Y.type.require(constants.%Self.f49) { -// CHECK:STDOUT: %Self => constants.%Self.f49 +// CHECK:STDOUT: specific @Z.WithSelf.C.impls.Y.type.require(constants.%Self.d87) { +// CHECK:STDOUT: %Self => constants.%Self.d87 // CHECK:STDOUT: %Self.as_type.loc9_17.2 => constants.%Self.as_type -// CHECK:STDOUT: %C.loc9_17.2 => constants.%C.7bf +// CHECK:STDOUT: %C.loc9_17.2 => constants.%C.e83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- require_impls_where.carbon @@ -1201,8 +1201,8 @@ constraint N { // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] // CHECK:STDOUT: %assoc0: %Y.assoc_type = assoc_entity element0, @Y.WithSelf.%Y1 [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.f49: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.f49 [symbolic] +// CHECK:STDOUT: %Self.d87: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.d87 [symbolic] // CHECK:STDOUT: %.Self: %Y.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self, @Y [symbolic_self] @@ -1217,7 +1217,7 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: constraint @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f49] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d87] // CHECK:STDOUT: %Z.WithSelf.decl = constraint_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -1252,14 +1252,14 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y_where.type.require(@Z.%Self: %Z.type) { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f49)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.d87)] // CHECK:STDOUT: %Self.as_type.loc7_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.f49) {} +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.d87) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y_where.type.require(constants.%Self.f49) { -// CHECK:STDOUT: %Self => constants.%Self.f49 +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y_where.type.require(constants.%Self.d87) { +// CHECK:STDOUT: %Self => constants.%Self.d87 // CHECK:STDOUT: %Self.as_type.loc7_11.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1295,14 +1295,14 @@ constraint N { // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Z.type.fcf: type = generic_named_constaint_type @Z [concrete] -// CHECK:STDOUT: %empty_struct: %Z.type.fcf = struct_value () [concrete] +// CHECK:STDOUT: %Z.type.8e1: type = generic_named_constaint_type @Z [concrete] +// CHECK:STDOUT: %empty_struct: %Z.type.8e1 = struct_value () [concrete] // CHECK:STDOUT: %Z.type.d68: type = facet_type <@Z, @Z(%T)> [symbolic] -// CHECK:STDOUT: %Self.7f4: %Z.type.d68 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.22b: %Z.type.d68 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { -// CHECK:STDOUT: %Z.decl: %Z.type.fcf = constraint_decl @Z [concrete = constants.%empty_struct] { +// CHECK:STDOUT: %Z.decl: %Z.type.8e1 = constraint_decl @Z [concrete = constants.%empty_struct] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_18.1: type = splice_block %.loc8_18.2 [concrete = type] { @@ -1318,10 +1318,10 @@ constraint N { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%T.loc8_15.1)> [symbolic = %Z.type (constants.%Z.type.d68)] -// CHECK:STDOUT: %Self.loc8_24.2: @Z.%Z.type (%Z.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc8_24.2 (constants.%Self.7f4)] +// CHECK:STDOUT: %Self.loc8_24.2: @Z.%Z.type (%Z.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc8_24.2 (constants.%Self.22b)] // CHECK:STDOUT: // CHECK:STDOUT: constraint { -// CHECK:STDOUT: %Self.loc8_24.1: @Z.%Z.type (%Z.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc8_24.2 (constants.%Self.7f4)] +// CHECK:STDOUT: %Self.loc8_24.1: @Z.%Z.type (%Z.type.d68) = symbolic_binding Self, 1 [symbolic = %Self.loc8_24.2 (constants.%Self.22b)] // CHECK:STDOUT: %Z.WithSelf.decl = constraint_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1339,7 +1339,7 @@ constraint N { // CHECK:STDOUT: %T.loc8_15.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%T, constants.%Self.7f4) {} +// CHECK:STDOUT: specific @Z.WithSelf(constants.%T, constants.%Self.22b) {} // CHECK:STDOUT: // CHECK:STDOUT: --- require_self_in_requirement.carbon // CHECK:STDOUT: @@ -1348,8 +1348,8 @@ constraint N { // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] // CHECK:STDOUT: %assoc0: %Y.assoc_type = assoc_entity element0, @Y.WithSelf.%Y1 [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Self.f49: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.f49 [symbolic] +// CHECK:STDOUT: %Self.d87: %Z.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.d87 [symbolic] // CHECK:STDOUT: %.Self: %Y.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self, @Y [symbolic_self] @@ -1362,7 +1362,7 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: constraint @Z { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f49] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d87] // CHECK:STDOUT: %Z.WithSelf.decl = constraint_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -1377,7 +1377,7 @@ constraint N { // CHECK:STDOUT: %.loc10_25: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Y1.ref: %Y.assoc_type = name_ref Y1, @Y1.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] -// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.f49)] +// CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.d87)] // CHECK:STDOUT: %Self.as_type.loc10_31: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc10_31: type = converted %Self.ref, %Self.as_type.loc10_31 [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc10_19: type = where_expr [symbolic = %Y_where.type (constants.%Y_where.type)] { @@ -1398,15 +1398,15 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y_where.type.require(@Z.%Self: %Z.type) { -// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f49)] +// CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.d87)] // CHECK:STDOUT: %Self.as_type.loc10_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y_where.type: type = facet_type <@Y where constants.%impl.elem0 = %Self.as_type.loc10_11.2> [symbolic = %Y_where.type (constants.%Y_where.type)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.f49) {} +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.d87) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y_where.type.require(constants.%Self.f49) { -// CHECK:STDOUT: %Self => constants.%Self.f49 +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y_where.type.require(constants.%Self.d87) { +// CHECK:STDOUT: %Self => constants.%Self.d87 // CHECK:STDOUT: %Self.as_type.loc10_11.2 => constants.%Self.as_type // CHECK:STDOUT: %Y_where.type => constants.%Y_where.type // CHECK:STDOUT: } @@ -1417,21 +1417,21 @@ constraint N { // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Y.type.99a: type = generic_interface_type @Y [concrete] -// CHECK:STDOUT: %Y.generic: %Y.type.99a = struct_value () [concrete] +// CHECK:STDOUT: %Y.type.cb4: type = generic_interface_type @Y [concrete] +// CHECK:STDOUT: %Y.generic: %Y.type.cb4 = struct_value () [concrete] // CHECK:STDOUT: %N.type: type = facet_type <@N> [concrete] -// CHECK:STDOUT: %Self.f49: %N.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.d1f: type = facet_access_type %Self.f49 [symbolic] -// CHECK:STDOUT: %.Self.46e: %Z.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type.a24: type = facet_access_type %.Self.46e [symbolic_self] -// CHECK:STDOUT: %Y.type.ada: type = facet_type <@Y, @Y(%.Self.as_type.a24)> [symbolic_self] -// CHECK:STDOUT: %Z_where.type.1f8: type = facet_type <@Z where .Self impls @Y, @Y(%.Self.as_type.a24)> [concrete] -// CHECK:STDOUT: %Z_where.type.58e: type = facet_type <@Z where .Self impls @Y, @Y(%Self.as_type.d1f)> [symbolic] +// CHECK:STDOUT: %Self.d87: %N.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type.138: type = facet_access_type %Self.d87 [symbolic] +// CHECK:STDOUT: %.Self.94e: %Z.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.e58: type = facet_access_type %.Self.94e [symbolic_self] +// CHECK:STDOUT: %Y.type.62b: type = facet_type <@Y, @Y(%.Self.as_type.e58)> [symbolic_self] +// CHECK:STDOUT: %Z_where.type.946: type = facet_type <@Z where .Self impls @Y, @Y(%.Self.as_type.e58)> [concrete] +// CHECK:STDOUT: %Z_where.type.0d5: type = facet_type <@Z where .Self impls @Y, @Y(%Self.as_type.138)> [symbolic] // CHECK:STDOUT: %.Self.as_type.246: type = facet_access_type %.Self.c39 [symbolic_self] // CHECK:STDOUT: %facet_type: type = facet_type <@Z & @Y, @Y(%.Self.as_type.246)> [symbolic_self] -// CHECK:STDOUT: %T.086: %facet_type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.086 [symbolic] -// CHECK:STDOUT: %Z_where.type.645: type = facet_type <@Z where .Self impls @Y, @Y(%T.as_type)> [symbolic] +// CHECK:STDOUT: %T.a60: %facet_type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.a60 [symbolic] +// CHECK:STDOUT: %Z_where.type.92a: type = facet_type <@Z where .Self impls @Y, @Y(%T.as_type)> [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1439,29 +1439,29 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: constraint @N { -// CHECK:STDOUT: %Self: %N.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f49] +// CHECK:STDOUT: %Self: %N.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d87] // CHECK:STDOUT: %N.WithSelf.decl = constraint_with_self_decl @N [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %N.WithSelf.Self.as_type.impls.Z_where.type.require.decl = require_decl @N.WithSelf.Self.as_type.impls.Z_where.type.require [concrete] { // CHECK:STDOUT: require %Self.as_type.loc10_11.1 impls %Z_where.type.loc10_19.1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type.loc10_11.1: type = facet_access_type @N.%Self [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type.d1f)] +// CHECK:STDOUT: %Self.as_type.loc10_11.1: type = facet_access_type @N.%Self [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type.138)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] -// CHECK:STDOUT: %.Self: %Z.type = symbolic_binding .Self [symbolic_self = constants.%.Self.46e] -// CHECK:STDOUT: %.Self.ref.loc10_25: %Z.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.46e] -// CHECK:STDOUT: %Y.ref: %Y.type.99a = name_ref Y, file.%Y.decl [concrete = constants.%Y.generic] -// CHECK:STDOUT: %.Self.ref.loc10_39: %Z.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.46e] -// CHECK:STDOUT: %.Self.as_type.loc10_44: type = facet_access_type %.Self.ref.loc10_39 [symbolic_self = constants.%.Self.as_type.a24] -// CHECK:STDOUT: %.loc10_44: type = converted %.Self.ref.loc10_39, %.Self.as_type.loc10_44 [symbolic_self = constants.%.Self.as_type.a24] -// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(constants.%.Self.as_type.a24)> [symbolic_self = constants.%Y.type.ada] -// CHECK:STDOUT: %.Self.as_type.loc10_25: type = facet_access_type %.Self.ref.loc10_25 [symbolic_self = constants.%.Self.as_type.a24] -// CHECK:STDOUT: %.loc10_25: type = converted %.Self.ref.loc10_25, %.Self.as_type.loc10_25 [symbolic_self = constants.%.Self.as_type.a24] -// CHECK:STDOUT: %.loc10_19: type = where_expr [concrete = constants.%Z_where.type.1f8] { +// CHECK:STDOUT: %.Self: %Z.type = symbolic_binding .Self [symbolic_self = constants.%.Self.94e] +// CHECK:STDOUT: %.Self.ref.loc10_25: %Z.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.94e] +// CHECK:STDOUT: %Y.ref: %Y.type.cb4 = name_ref Y, file.%Y.decl [concrete = constants.%Y.generic] +// CHECK:STDOUT: %.Self.ref.loc10_39: %Z.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.94e] +// CHECK:STDOUT: %.Self.as_type.loc10_44: type = facet_access_type %.Self.ref.loc10_39 [symbolic_self = constants.%.Self.as_type.e58] +// CHECK:STDOUT: %.loc10_44: type = converted %.Self.ref.loc10_39, %.Self.as_type.loc10_44 [symbolic_self = constants.%.Self.as_type.e58] +// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(constants.%.Self.as_type.e58)> [symbolic_self = constants.%Y.type.62b] +// CHECK:STDOUT: %.Self.as_type.loc10_25: type = facet_access_type %.Self.ref.loc10_25 [symbolic_self = constants.%.Self.as_type.e58] +// CHECK:STDOUT: %.loc10_25: type = converted %.Self.ref.loc10_25, %.Self.as_type.loc10_25 [symbolic_self = constants.%.Self.as_type.e58] +// CHECK:STDOUT: %.loc10_19: type = where_expr [concrete = constants.%Z_where.type.946] { // CHECK:STDOUT: requirement_base_facet_type %Z.ref // CHECK:STDOUT: requirement_impls %.loc10_25, %Y.type // CHECK:STDOUT: } -// CHECK:STDOUT: %Z_where.type.loc10_19.1: type = facet_type <@Z where .Self impls @Y, @Y(constants.%Self.as_type.d1f)> [symbolic = %Z_where.type.loc10_19.2 (constants.%Z_where.type.58e)] +// CHECK:STDOUT: %Z_where.type.loc10_19.1: type = facet_type <@Z where .Self impls @Y, @Y(constants.%Self.as_type.138)> [symbolic = %Z_where.type.loc10_19.2 (constants.%Z_where.type.0d5)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1478,53 +1478,53 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.Z_where.type.require(@N.%Self: %N.type) { -// CHECK:STDOUT: %Self: %N.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f49)] -// CHECK:STDOUT: %Self.as_type.loc10_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type.d1f)] -// CHECK:STDOUT: %Z_where.type.loc10_19.2: type = facet_type <@Z where .Self impls @Y, @Y(%Self.as_type.loc10_11.2)> [symbolic = %Z_where.type.loc10_19.2 (constants.%Z_where.type.58e)] +// CHECK:STDOUT: %Self: %N.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.d87)] +// CHECK:STDOUT: %Self.as_type.loc10_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type.138)] +// CHECK:STDOUT: %Z_where.type.loc10_19.2: type = facet_type <@Z where .Self impls @Y, @Y(%Self.as_type.loc10_11.2)> [symbolic = %Z_where.type.loc10_19.2 (constants.%Z_where.type.0d5)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf(constants.%Self.f49) { +// CHECK:STDOUT: specific @N.WithSelf(constants.%Self.d87) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.Z_where.type.require(constants.%Self.f49) { -// CHECK:STDOUT: %Self => constants.%Self.f49 -// CHECK:STDOUT: %Self.as_type.loc10_11.2 => constants.%Self.as_type.d1f -// CHECK:STDOUT: %Z_where.type.loc10_19.2 => constants.%Z_where.type.58e +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.Z_where.type.require(constants.%Self.d87) { +// CHECK:STDOUT: %Self => constants.%Self.d87 +// CHECK:STDOUT: %Self.as_type.loc10_11.2 => constants.%Self.as_type.138 +// CHECK:STDOUT: %Z_where.type.loc10_19.2 => constants.%Z_where.type.0d5 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf(constants.%T.086) { +// CHECK:STDOUT: specific @N.WithSelf(constants.%T.a60) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.Z_where.type.require(constants.%T.086) { -// CHECK:STDOUT: %Self => constants.%T.086 +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.Z_where.type.require(constants.%T.a60) { +// CHECK:STDOUT: %Self => constants.%T.a60 // CHECK:STDOUT: %Self.as_type.loc10_11.2 => constants.%T.as_type -// CHECK:STDOUT: %Z_where.type.loc10_19.2 => constants.%Z_where.type.645 +// CHECK:STDOUT: %Z_where.type.loc10_19.2 => constants.%Z_where.type.92a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- require_with_specific_period_self.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] -// CHECK:STDOUT: %Y.type.99a: type = generic_interface_type @Y [concrete] -// CHECK:STDOUT: %Y.generic: %Y.type.99a = struct_value () [concrete] +// CHECK:STDOUT: %Y.type.cb4: type = generic_interface_type @Y [concrete] +// CHECK:STDOUT: %Y.generic: %Y.type.cb4 = struct_value () [concrete] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] // CHECK:STDOUT: %N.type: type = facet_type <@N> [concrete] -// CHECK:STDOUT: %Self.f49: %N.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.f49 [symbolic] -// CHECK:STDOUT: %.Self.46e: %Z.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.46e [symbolic_self] -// CHECK:STDOUT: %C.67e: type = class_type @C, @C(%.Self.as_type) [symbolic_self] -// CHECK:STDOUT: %Y.type.ada: type = facet_type <@Y, @Y(%.Self.as_type)> [symbolic_self] -// CHECK:STDOUT: %Z_where.type.92ccbc.1: type = facet_type <@Z where %C.67e impls @Y, @Y(%.Self.as_type)> [concrete] -// CHECK:STDOUT: %C.7bf: type = class_type @C, @C(%Self.as_type) [symbolic] -// CHECK:STDOUT: %Z_where.type.92ccbc.2: type = facet_type <@Z where %C.7bf impls @Y, @Y(%Self.as_type)> [symbolic] -// CHECK:STDOUT: %T.aa0: %Z.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.aa0 [symbolic] -// CHECK:STDOUT: %C.071: type = class_type @C, @C(%T.as_type) [symbolic] -// CHECK:STDOUT: %Z_where.type.92ccbc.3: type = facet_type <@Z where %C.071 impls @Y, @Y(%T.as_type)> [symbolic] +// CHECK:STDOUT: %Self.d87: %N.type = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.d87 [symbolic] +// CHECK:STDOUT: %.Self.94e: %Z.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.94e [symbolic_self] +// CHECK:STDOUT: %C.328: type = class_type @C, @C(%.Self.as_type) [symbolic_self] +// CHECK:STDOUT: %Y.type.62b: type = facet_type <@Y, @Y(%.Self.as_type)> [symbolic_self] +// CHECK:STDOUT: %Z_where.type.a0f3c6.1: type = facet_type <@Z where %C.328 impls @Y, @Y(%.Self.as_type)> [concrete] +// CHECK:STDOUT: %C.e83: type = class_type @C, @C(%Self.as_type) [symbolic] +// CHECK:STDOUT: %Z_where.type.a0f3c6.2: type = facet_type <@Z where %C.e83 impls @Y, @Y(%Self.as_type)> [symbolic] +// CHECK:STDOUT: %T.013: %Z.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.013 [symbolic] +// CHECK:STDOUT: %C.7bd: type = class_type @C, @C(%T.as_type) [symbolic] +// CHECK:STDOUT: %Z_where.type.a0f3c6.3: type = facet_type <@Z where %C.7bd impls @Y, @Y(%T.as_type)> [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1532,7 +1532,7 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: constraint @N { -// CHECK:STDOUT: %Self: %N.type = symbolic_binding Self, 0 [symbolic = constants.%Self.f49] +// CHECK:STDOUT: %Self: %N.type = symbolic_binding Self, 0 [symbolic = constants.%Self.d87] // CHECK:STDOUT: %N.WithSelf.decl = constraint_with_self_decl @N [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: @@ -1541,22 +1541,22 @@ constraint N { // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.as_type.loc10_11.1: type = facet_access_type @N.%Self [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] -// CHECK:STDOUT: %.Self: %Z.type = symbolic_binding .Self [symbolic_self = constants.%.Self.46e] +// CHECK:STDOUT: %.Self: %Z.type = symbolic_binding .Self [symbolic_self = constants.%.Self.94e] // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] -// CHECK:STDOUT: %.Self.ref.loc10_27: %Z.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.46e] +// CHECK:STDOUT: %.Self.ref.loc10_27: %Z.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.94e] // CHECK:STDOUT: %.Self.as_type.loc10_32: type = facet_access_type %.Self.ref.loc10_27 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_32: type = converted %.Self.ref.loc10_27, %.Self.as_type.loc10_32 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %C.loc10_32: type = class_type @C, @C(constants.%.Self.as_type) [symbolic_self = constants.%C.67e] -// CHECK:STDOUT: %Y.ref: %Y.type.99a = name_ref Y, file.%Y.decl [concrete = constants.%Y.generic] -// CHECK:STDOUT: %.Self.ref.loc10_42: %Z.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.46e] +// CHECK:STDOUT: %C.loc10_32: type = class_type @C, @C(constants.%.Self.as_type) [symbolic_self = constants.%C.328] +// CHECK:STDOUT: %Y.ref: %Y.type.cb4 = name_ref Y, file.%Y.decl [concrete = constants.%Y.generic] +// CHECK:STDOUT: %.Self.ref.loc10_42: %Z.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.94e] // CHECK:STDOUT: %.Self.as_type.loc10_47: type = facet_access_type %.Self.ref.loc10_42 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_47: type = converted %.Self.ref.loc10_42, %.Self.as_type.loc10_47 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(constants.%.Self.as_type)> [symbolic_self = constants.%Y.type.ada] -// CHECK:STDOUT: %.loc10_19: type = where_expr [concrete = constants.%Z_where.type.92ccbc.1] { +// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(constants.%.Self.as_type)> [symbolic_self = constants.%Y.type.62b] +// CHECK:STDOUT: %.loc10_19: type = where_expr [concrete = constants.%Z_where.type.a0f3c6.1] { // CHECK:STDOUT: requirement_base_facet_type %Z.ref // CHECK:STDOUT: requirement_impls %C.loc10_32, %Y.type // CHECK:STDOUT: } -// CHECK:STDOUT: %Z_where.type.loc10_19.1: type = facet_type <@Z where constants.%C.7bf impls @Y, @Y(constants.%Self.as_type)> [symbolic = %Z_where.type.loc10_19.2 (constants.%Z_where.type.92ccbc.2)] +// CHECK:STDOUT: %Z_where.type.loc10_19.1: type = facet_type <@Z where constants.%C.e83 impls @Y, @Y(constants.%Self.as_type)> [symbolic = %Z_where.type.loc10_19.2 (constants.%Z_where.type.a0f3c6.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1575,31 +1575,31 @@ constraint N { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.Z_where.type.require(@N.%Self: %N.type) { -// CHECK:STDOUT: %Self: %N.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f49)] +// CHECK:STDOUT: %Self: %N.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.d87)] // CHECK:STDOUT: %Self.as_type.loc10_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %C.loc10_19: type = class_type @C, @C(%Self.as_type.loc10_11.2) [symbolic = %C.loc10_19 (constants.%C.7bf)] -// CHECK:STDOUT: %Z_where.type.loc10_19.2: type = facet_type <@Z where %C.loc10_19 impls @Y, @Y(%Self.as_type.loc10_11.2)> [symbolic = %Z_where.type.loc10_19.2 (constants.%Z_where.type.92ccbc.2)] +// CHECK:STDOUT: %C.loc10_19: type = class_type @C, @C(%Self.as_type.loc10_11.2) [symbolic = %C.loc10_19 (constants.%C.e83)] +// CHECK:STDOUT: %Z_where.type.loc10_19.2: type = facet_type <@Z where %C.loc10_19 impls @Y, @Y(%Self.as_type.loc10_11.2)> [symbolic = %Z_where.type.loc10_19.2 (constants.%Z_where.type.a0f3c6.2)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf(constants.%Self.f49) { +// CHECK:STDOUT: specific @N.WithSelf(constants.%Self.d87) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.Z_where.type.require(constants.%Self.f49) { -// CHECK:STDOUT: %Self => constants.%Self.f49 +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.Z_where.type.require(constants.%Self.d87) { +// CHECK:STDOUT: %Self => constants.%Self.d87 // CHECK:STDOUT: %Self.as_type.loc10_11.2 => constants.%Self.as_type -// CHECK:STDOUT: %C.loc10_19 => constants.%C.7bf -// CHECK:STDOUT: %Z_where.type.loc10_19.2 => constants.%Z_where.type.92ccbc.2 +// CHECK:STDOUT: %C.loc10_19 => constants.%C.e83 +// CHECK:STDOUT: %Z_where.type.loc10_19.2 => constants.%Z_where.type.a0f3c6.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf(constants.%T.aa0) { +// CHECK:STDOUT: specific @N.WithSelf(constants.%T.013) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.Z_where.type.require(constants.%T.aa0) { -// CHECK:STDOUT: %Self => constants.%T.aa0 +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.Z_where.type.require(constants.%T.013) { +// CHECK:STDOUT: %Self => constants.%T.013 // CHECK:STDOUT: %Self.as_type.loc10_11.2 => constants.%T.as_type -// CHECK:STDOUT: %C.loc10_19 => constants.%C.071 -// CHECK:STDOUT: %Z_where.type.loc10_19.2 => constants.%Z_where.type.92ccbc.3 +// CHECK:STDOUT: %C.loc10_19 => constants.%C.7bd +// CHECK:STDOUT: %Z_where.type.loc10_19.2 => constants.%Z_where.type.a0f3c6.3 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/add_to_import.carbon b/toolchain/check/testdata/namespace/add_to_import.carbon index b491887172db..a216bb29e3fa 100644 --- a/toolchain/check/testdata/namespace/add_to_import.carbon +++ b/toolchain/check/testdata/namespace/add_to_import.carbon @@ -51,27 +51,27 @@ var a: i32 = NS.A(); // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -86,9 +86,9 @@ var a: i32 = NS.A(); // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -101,17 +101,17 @@ var a: i32 = NS.A(); // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc4_14: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc4_14: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.104 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var %a.var_patt [concrete] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -121,12 +121,12 @@ var a: i32 = NS.A(); // CHECK:STDOUT: fn @A() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc4_28.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc4_28.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc4_28.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc4_28: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc4_28.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc4_28: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: return %.loc4_28 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/alias.carbon b/toolchain/check/testdata/namespace/alias.carbon index 06f9aa551a0a..8d3af4756e11 100644 --- a/toolchain/check/testdata/namespace/alias.carbon +++ b/toolchain/check/testdata/namespace/alias.carbon @@ -31,27 +31,27 @@ fn D() -> i32 { return C(); } // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %D.type: type = fn_type @D [concrete] @@ -66,9 +66,9 @@ fn D() -> i32 { return C(); } // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -87,20 +87,20 @@ fn D() -> i32 { return C(); } // CHECK:STDOUT: %NS.ref.loc17: = name_ref NS, %NS [concrete = %NS] // CHECK:STDOUT: %ns: = alias_binding ns, %NS.ref.loc17 [concrete = %NS] // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc19_14: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc19_14: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc21: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc21: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -108,11 +108,11 @@ fn D() -> i32 { return C(); } // CHECK:STDOUT: %A.ref: %A.type = name_ref A, %A.decl [concrete = constants.%A] // CHECK:STDOUT: %C: %A.type = alias_binding C, %A.ref [concrete = constants.%A] // CHECK:STDOUT: %D.decl: %D.type = fn_decl @D [concrete = constants.%D] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -121,12 +121,12 @@ fn D() -> i32 { return C(); } // CHECK:STDOUT: fn @A() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc19_28.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_28.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc19_28.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc19_28: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc19_28.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc19_28: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: return %.loc19_28 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/fail_conflict_after_merge.carbon b/toolchain/check/testdata/namespace/fail_conflict_after_merge.carbon index bb9f5a7a2f94..8983ead586af 100644 --- a/toolchain/check/testdata/namespace/fail_conflict_after_merge.carbon +++ b/toolchain/check/testdata/namespace/fail_conflict_after_merge.carbon @@ -73,10 +73,10 @@ fn NS(); // CHECK:STDOUT: --- fail_conflict.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %NS.type.c965b3.1: type = fn_type @NS.loc18 [concrete] -// CHECK:STDOUT: %NS.a8d52a.1: %NS.type.c965b3.1 = struct_value () [concrete] -// CHECK:STDOUT: %NS.type.c965b3.2: type = fn_type @NS.loc32 [concrete] -// CHECK:STDOUT: %NS.a8d52a.2: %NS.type.c965b3.2 = struct_value () [concrete] +// CHECK:STDOUT: %NS.type.20a02b.1: type = fn_type @NS.loc18 [concrete] +// CHECK:STDOUT: %NS.bab1af.1: %NS.type.20a02b.1 = struct_value () [concrete] +// CHECK:STDOUT: %NS.type.20a02b.2: type = fn_type @NS.loc32 [concrete] +// CHECK:STDOUT: %NS.bab1af.2: %NS.type.20a02b.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -96,9 +96,9 @@ fn NS(); // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %NS.loc8: = namespace imports.%Example.NS, [concrete] {} -// CHECK:STDOUT: %NS.decl.loc18: %NS.type.c965b3.1 = fn_decl @NS.loc18 [concrete = constants.%NS.a8d52a.1] {} {} +// CHECK:STDOUT: %NS.decl.loc18: %NS.type.20a02b.1 = fn_decl @NS.loc18 [concrete = constants.%NS.bab1af.1] {} {} // CHECK:STDOUT: %NS.loc22: = namespace imports.%Example.NS, [concrete] {} -// CHECK:STDOUT: %NS.decl.loc32: %NS.type.c965b3.2 = fn_decl @NS.loc32 [concrete = constants.%NS.a8d52a.2] {} {} +// CHECK:STDOUT: %NS.decl.loc32: %NS.type.20a02b.2 = fn_decl @NS.loc32 [concrete = constants.%NS.bab1af.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @NS.loc18(); diff --git a/toolchain/check/testdata/namespace/fail_conflict_in_imports_namespace_second.carbon b/toolchain/check/testdata/namespace/fail_conflict_in_imports_namespace_second.carbon index 0ad787d191e8..fef9ddfa1121 100644 --- a/toolchain/check/testdata/namespace/fail_conflict_in_imports_namespace_second.carbon +++ b/toolchain/check/testdata/namespace/fail_conflict_in_imports_namespace_second.carbon @@ -110,8 +110,8 @@ fn NS.Bar() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Example.NS.677: = import_ref Example//namespace, NS, loaded -// CHECK:STDOUT: %NS: = namespace %Example.NS.677, [concrete] { +// CHECK:STDOUT: %Example.NS.47a: = import_ref Example//namespace, NS, loaded +// CHECK:STDOUT: %NS: = namespace %Example.NS.47a, [concrete] { // CHECK:STDOUT: .Foo = %Example.Foo // CHECK:STDOUT: .Bar = file.%Bar.decl // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon b/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon index 4de8d9b7d541..aaddbbd267a9 100644 --- a/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon +++ b/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon @@ -33,27 +33,27 @@ fn ns.A() -> i32 { return 0; } // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -64,9 +64,9 @@ fn ns.A() -> i32 { return 0; } // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -80,11 +80,11 @@ fn ns.A() -> i32 { return 0; } // CHECK:STDOUT: %NS.ref: = name_ref NS, %NS [concrete = %NS] // CHECK:STDOUT: %ns: = alias_binding ns, %NS.ref [concrete = %NS] // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc27_14: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc27_14: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -93,12 +93,12 @@ fn ns.A() -> i32 { return 0; } // CHECK:STDOUT: fn @A() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc27_28.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc27_28.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc27_28.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc27_28: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc27_28.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc27_28: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: return %.loc27_28 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/fail_duplicate.carbon b/toolchain/check/testdata/namespace/fail_duplicate.carbon index 3c97a159fcbd..39b486f74833 100644 --- a/toolchain/check/testdata/namespace/fail_duplicate.carbon +++ b/toolchain/check/testdata/namespace/fail_duplicate.carbon @@ -30,10 +30,10 @@ fn Foo.Baz() { // CHECK:STDOUT: --- fail_duplicate.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %Baz.type.c26d77.1: type = fn_type @Baz.loc17 [concrete] -// CHECK:STDOUT: %Baz.6ada30.1: %Baz.type.c26d77.1 = struct_value () [concrete] -// CHECK:STDOUT: %Baz.type.c26d77.2: type = fn_type @Baz.loc27 [concrete] -// CHECK:STDOUT: %Baz.6ada30.2: %Baz.type.c26d77.2 = struct_value () [concrete] +// CHECK:STDOUT: %Baz.type.280a69.1: type = fn_type @Baz.loc17 [concrete] +// CHECK:STDOUT: %Baz.f49bdd.1: %Baz.type.280a69.1 = struct_value () [concrete] +// CHECK:STDOUT: %Baz.type.280a69.2: type = fn_type @Baz.loc27 [concrete] +// CHECK:STDOUT: %Baz.f49bdd.2: %Baz.type.280a69.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -52,8 +52,8 @@ fn Foo.Baz() { // CHECK:STDOUT: %Foo: = namespace [concrete] { // CHECK:STDOUT: .Baz = %Baz.decl.loc17 // CHECK:STDOUT: } -// CHECK:STDOUT: %Baz.decl.loc17: %Baz.type.c26d77.1 = fn_decl @Baz.loc17 [concrete = constants.%Baz.6ada30.1] {} {} -// CHECK:STDOUT: %Baz.decl.loc27: %Baz.type.c26d77.2 = fn_decl @Baz.loc27 [concrete = constants.%Baz.6ada30.2] {} {} +// CHECK:STDOUT: %Baz.decl.loc17: %Baz.type.280a69.1 = fn_decl @Baz.loc17 [concrete = constants.%Baz.f49bdd.1] {} {} +// CHECK:STDOUT: %Baz.decl.loc27: %Baz.type.280a69.2 = fn_decl @Baz.loc27 [concrete = constants.%Baz.f49bdd.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Baz.loc17() { diff --git a/toolchain/check/testdata/namespace/fail_not_top_level.carbon b/toolchain/check/testdata/namespace/fail_not_top_level.carbon index f74910420f73..59d0b12ee53c 100644 --- a/toolchain/check/testdata/namespace/fail_not_top_level.carbon +++ b/toolchain/check/testdata/namespace/fail_not_top_level.carbon @@ -42,19 +42,19 @@ interface I { // CHECK:STDOUT: --- fail_not_top_level.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %F.type.b8d: type = fn_type @F.loc15 [concrete] -// CHECK:STDOUT: %F.736: %F.type.b8d = struct_value () [concrete] +// CHECK:STDOUT: %F.type.eb3: type = fn_type @F.loc15 [concrete] +// CHECK:STDOUT: %F.708: %F.type.eb3 = struct_value () [concrete] // CHECK:STDOUT: %F.type.23e: type = fn_type @F.loc21 [concrete] // CHECK:STDOUT: %F.7e0: %F.type.23e = struct_value () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %F.type.fd1: type = fn_type @F.loc30 [concrete] -// CHECK:STDOUT: %F.969: %F.type.fd1 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.4e3: type = fn_type @F.loc30 [concrete] +// CHECK:STDOUT: %F.57d: %F.type.4e3 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %I.type.404: type = facet_type <@I.loc33> [concrete] -// CHECK:STDOUT: %Self: %I.type.404 = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %I.type.570: type = fn_type @I.loc39, @I.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %I: %I.type.570 = struct_value () [symbolic] +// CHECK:STDOUT: %I.type.8e7: type = facet_type <@I.loc33> [concrete] +// CHECK:STDOUT: %Self: %I.type.8e7 = symbolic_binding Self, 0 [symbolic] +// CHECK:STDOUT: %I.type.a85: type = fn_type @I.loc39, @I.WithSelf(%Self) [symbolic] +// CHECK:STDOUT: %I: %I.type.a85 = struct_value () [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -72,20 +72,20 @@ interface I { // CHECK:STDOUT: .I = %I.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %F.decl: %F.type.b8d = fn_decl @F.loc15 [concrete = constants.%F.736] {} {} +// CHECK:STDOUT: %F.decl: %F.type.eb3 = fn_decl @F.loc15 [concrete = constants.%F.708] {} {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %I.decl: type = interface_decl @I.loc33 [concrete = constants.%I.type.404] {} {} +// CHECK:STDOUT: %I.decl: type = interface_decl @I.loc33 [concrete = constants.%I.type.8e7] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I.loc33 { -// CHECK:STDOUT: %Self: %I.type.404 = symbolic_binding Self, 0 [symbolic = constants.%Self] +// CHECK:STDOUT: %Self: %I.type.8e7 = symbolic_binding Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I.loc33 [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %N: = namespace [concrete] { // CHECK:STDOUT: .I = %I.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %I.decl: @I.WithSelf.%I.type (%I.type.570) = fn_decl @I.loc39 [symbolic = @I.WithSelf.%I (constants.%I)] {} {} +// CHECK:STDOUT: %I.decl: @I.WithSelf.%I.type (%I.type.a85) = fn_decl @I.loc39 [symbolic = @I.WithSelf.%I (constants.%I)] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -99,7 +99,7 @@ interface I { // CHECK:STDOUT: %N: = namespace [concrete] { // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %F.decl: %F.type.fd1 = fn_decl @F.loc30 [concrete = constants.%F.969] {} {} +// CHECK:STDOUT: %F.decl: %F.type.4e3 = fn_decl @F.loc30 [concrete = constants.%F.57d] {} {} // CHECK:STDOUT: %complete_type: = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: @@ -127,7 +127,7 @@ interface I { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @I.loc39(@I.loc33.%Self: %I.type.404) { +// CHECK:STDOUT: generic fn @I.loc39(@I.loc33.%Self: %I.type.8e7) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -139,7 +139,7 @@ interface I { // CHECK:STDOUT: specific @I.WithSelf(constants.%Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %I.type => constants.%I.type.570 +// CHECK:STDOUT: %I.type => constants.%I.type.a85 // CHECK:STDOUT: %I => constants.%I // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/fail_params.carbon b/toolchain/check/testdata/namespace/fail_params.carbon index c7822f0e1da3..921ce5d4b3ef 100644 --- a/toolchain/check/testdata/namespace/fail_params.carbon +++ b/toolchain/check/testdata/namespace/fail_params.carbon @@ -50,14 +50,14 @@ fn D(unused T:! type).F() {} // CHECK:STDOUT: --- fail_params.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %F.type.c1b: type = fn_type @F.loc22 [concrete] -// CHECK:STDOUT: %F.10e: %F.type.c1b = struct_value () [concrete] +// CHECK:STDOUT: %F.type.14e: type = fn_type @F.loc22 [concrete] +// CHECK:STDOUT: %F.19f: %F.type.14e = struct_value () [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %T.67db0b.1: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.67db0b.2: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %F.type.b8d: type = fn_type @F.loc48 [concrete] -// CHECK:STDOUT: %F.736: %F.type.b8d = struct_value () [concrete] +// CHECK:STDOUT: %F.type.eb3: type = fn_type @F.loc48 [concrete] +// CHECK:STDOUT: %F.708: %F.type.eb3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -80,7 +80,7 @@ fn D(unused T:! type).F() {} // CHECK:STDOUT: %A: = namespace [concrete] { // CHECK:STDOUT: .F = %F.decl.loc22 // CHECK:STDOUT: } -// CHECK:STDOUT: %F.decl.loc22: %F.type.c1b = fn_decl @F.loc22 [concrete = constants.%F.10e] {} {} +// CHECK:STDOUT: %F.decl.loc22: %F.type.14e = fn_decl @F.loc22 [concrete = constants.%F.19f] {} {} // CHECK:STDOUT: %n.param: = value_param call_param0 // CHECK:STDOUT: %.loc32: type = type_literal [concrete = ] // CHECK:STDOUT: %n: = value_binding n, [concrete = ] @@ -95,7 +95,7 @@ fn D(unused T:! type).F() {} // CHECK:STDOUT: %x: %T.67db0b.1 = value_binding x, %x.param // CHECK:STDOUT: %C: = namespace [concrete] {} // CHECK:STDOUT: %D: = namespace [concrete] {} -// CHECK:STDOUT: %F.decl.loc48: %F.type.b8d = fn_decl @F.loc48 [concrete = constants.%F.736] {} { +// CHECK:STDOUT: %F.decl.loc48: %F.type.eb3 = fn_decl @F.loc48 [concrete = constants.%F.708] {} { // CHECK:STDOUT: %.loc48_17.1: type = splice_block %.loc48_17.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc48_17.2: type = type_literal type [concrete = type] diff --git a/toolchain/check/testdata/namespace/function.carbon b/toolchain/check/testdata/namespace/function.carbon index a113a893f686..2741fa6ed7a6 100644 --- a/toolchain/check/testdata/namespace/function.carbon +++ b/toolchain/check/testdata/namespace/function.carbon @@ -28,11 +28,11 @@ fn Bar() { // CHECK:STDOUT: --- function.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %Baz.type.ae5: type = fn_type @Baz.loc18 [concrete] +// CHECK:STDOUT: %Baz.type.dc3: type = fn_type @Baz.loc18 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %Baz.6df: %Baz.type.ae5 = struct_value () [concrete] -// CHECK:STDOUT: %Baz.type.c26: type = fn_type @Baz.loc21 [concrete] -// CHECK:STDOUT: %Baz.6ad: %Baz.type.c26 = struct_value () [concrete] +// CHECK:STDOUT: %Baz.29d: %Baz.type.dc3 = struct_value () [concrete] +// CHECK:STDOUT: %Baz.type.280: type = fn_type @Baz.loc21 [concrete] +// CHECK:STDOUT: %Baz.f49: %Baz.type.280 = struct_value () [concrete] // CHECK:STDOUT: %Bar.type: type = fn_type @Bar [concrete] // CHECK:STDOUT: %Bar: %Bar.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -55,8 +55,8 @@ fn Bar() { // CHECK:STDOUT: %Foo: = namespace [concrete] { // CHECK:STDOUT: .Baz = %Baz.decl.loc21 // CHECK:STDOUT: } -// CHECK:STDOUT: %Baz.decl.loc18: %Baz.type.ae5 = fn_decl @Baz.loc18 [concrete = constants.%Baz.6df] {} {} -// CHECK:STDOUT: %Baz.decl.loc21: %Baz.type.c26 = fn_decl @Baz.loc21 [concrete = constants.%Baz.6ad] {} {} +// CHECK:STDOUT: %Baz.decl.loc18: %Baz.type.dc3 = fn_decl @Baz.loc18 [concrete = constants.%Baz.29d] {} {} +// CHECK:STDOUT: %Baz.decl.loc21: %Baz.type.280 = fn_decl @Baz.loc21 [concrete = constants.%Baz.f49] {} {} // CHECK:STDOUT: %Bar.decl: %Bar.type = fn_decl @Bar [concrete = constants.%Bar] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -73,7 +73,7 @@ fn Bar() { // CHECK:STDOUT: fn @Bar() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Foo.ref: = name_ref Foo, file.%Foo [concrete = file.%Foo] -// CHECK:STDOUT: %Baz.ref: %Baz.type.c26 = name_ref Baz, file.%Baz.decl.loc21 [concrete = constants.%Baz.6ad] +// CHECK:STDOUT: %Baz.ref: %Baz.type.280 = name_ref Baz, file.%Baz.decl.loc21 [concrete = constants.%Baz.f49] // CHECK:STDOUT: %Baz.call: init %empty_tuple.type = call %Baz.ref() // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/namespace/imported_indirect.carbon b/toolchain/check/testdata/namespace/imported_indirect.carbon index 79f1a04615c6..d2803cc95417 100644 --- a/toolchain/check/testdata/namespace/imported_indirect.carbon +++ b/toolchain/check/testdata/namespace/imported_indirect.carbon @@ -123,7 +123,7 @@ fn G() { Same.F(); } // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %.fb7: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %.46c: Core.Form = init_form %C [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] @@ -157,7 +157,7 @@ fn G() { Same.F(); } // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: = name_ref A, imports.%A [concrete = imports.%A] // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Same.C [concrete = constants.%C] -// CHECK:STDOUT: %.loc7: Core.Form = init_form %C.ref [concrete = constants.%.fb7] +// CHECK:STDOUT: %.loc7: Core.Form = init_form %C.ref [concrete = constants.%.46c] // CHECK:STDOUT: %return.param: ref %C = out_param call_param0 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/namespace/merging_with_indirections.carbon b/toolchain/check/testdata/namespace/merging_with_indirections.carbon index 68219cec9ba9..ac434d05d9ae 100644 --- a/toolchain/check/testdata/namespace/merging_with_indirections.carbon +++ b/toolchain/check/testdata/namespace/merging_with_indirections.carbon @@ -87,7 +87,7 @@ fn Run() { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %A: type = class_type @A [concrete] -// CHECK:STDOUT: %.4be: Core.Form = init_form %A [concrete] +// CHECK:STDOUT: %.34d: Core.Form = init_form %A [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %A [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] @@ -107,7 +107,7 @@ fn Run() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Other.import_ref.8f2: = import_ref Other//a, loc5_14, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.942 = import_ref Other//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.da2 = import_ref Other//a, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -129,7 +129,7 @@ fn Run() { // CHECK:STDOUT: } { // CHECK:STDOUT: %NS1.ref: = name_ref NS1, imports.%NS1 [concrete = imports.%NS1] // CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Other.A [concrete = constants.%A] -// CHECK:STDOUT: %.loc8_14: Core.Form = init_form %A.ref [concrete = constants.%.4be] +// CHECK:STDOUT: %.loc8_14: Core.Form = init_form %A.ref [concrete = constants.%.34d] // CHECK:STDOUT: %return.param: ref %A = out_param call_param0 // CHECK:STDOUT: %return: ref %A = return_slot %return.param // CHECK:STDOUT: } @@ -147,7 +147,7 @@ fn Run() { // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.942 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.da2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> out %return.param: %A { @@ -169,19 +169,19 @@ fn Run() { // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.690: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.821: type = pattern_type %A [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.6a8: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%A) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.ab2: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%A) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.06d: %T.as.DefaultOrUnformed.impl.Op.type.ab2 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %A, (%DefaultOrUnformed.impl_witness.6a8) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.06d, @T.as.DefaultOrUnformed.impl.Op(%A) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.776: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%A) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.1ef: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%A) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.c80: %T.as.DefaultOrUnformed.impl.Op.type.1ef = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %A, (%DefaultOrUnformed.impl_witness.776) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.c80, @T.as.DefaultOrUnformed.impl.Op(%A) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc10_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -193,23 +193,23 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: %Other: = namespace file.%Other.import, [concrete] { // CHECK:STDOUT: .F = %Other.F -// CHECK:STDOUT: .NS1 = %NS1.311988.2 +// CHECK:STDOUT: .NS1 = %NS1.acfa4a.2 // CHECK:STDOUT: import Other//b // CHECK:STDOUT: import Other//a // CHECK:STDOUT: } // CHECK:STDOUT: %Other.F: %F.type = import_ref Other//b, F, loaded [concrete = constants.%F] // CHECK:STDOUT: %Other.import_ref.8db: = import_ref Other//b, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.ffc = import_ref Other//b, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.975 = import_ref Other//b, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: %Other.NS1: = import_ref Other//b, NS1, loaded -// CHECK:STDOUT: %NS1.311988.2: = namespace %Other.NS1, [concrete] { +// CHECK:STDOUT: %NS1.acfa4a.2: = namespace %Other.NS1, [concrete] { // CHECK:STDOUT: .A = %Other.A // CHECK:STDOUT: import Other//b // CHECK:STDOUT: import Other//a // CHECK:STDOUT: } // CHECK:STDOUT: %Other.A: type = import_ref Other//a, A, loaded [concrete = constants.%A] // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -228,7 +228,7 @@ fn Run() { // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.8db // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.ffc +// CHECK:STDOUT: .Self = imports.%Other.import_ref.975 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() { @@ -239,21 +239,21 @@ fn Run() { // 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: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.690 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.690 = var_pattern %a.patt [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: } // CHECK:STDOUT: %a.var: ref %A = var %a.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%A, (constants.%DefaultOrUnformed.impl_witness.6a8) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%A, (constants.%DefaultOrUnformed.impl_witness.776) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc10_21.1: %DefaultOrUnformed.type = converted constants.%A, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc10_21.1 [concrete = constants.%A] // CHECK:STDOUT: %.loc10_21.2: type = converted %.loc10_21.1, %as_type [concrete = constants.%A] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.06d, @T.as.DefaultOrUnformed.impl.Op(constants.%A) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.c80, @T.as.DefaultOrUnformed.impl.Op(constants.%A) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %.loc10_3: ref %A = splice_block %a.var {} // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %A to %.loc10_3 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign %a.var, %T.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: %.loc10_19: type = splice_block %A.ref [concrete = constants.%A] { // CHECK:STDOUT: %Other.ref.loc10: = name_ref Other, imports.%Other [concrete = imports.%Other] -// CHECK:STDOUT: %NS1.ref: = name_ref NS1, imports.%NS1.311988.2 [concrete = imports.%NS1.311988.2] +// CHECK:STDOUT: %NS1.ref: = name_ref NS1, imports.%NS1.acfa4a.2 [concrete = imports.%NS1.acfa4a.2] // CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Other.A [concrete = constants.%A] // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %A = ref_binding a, %a.var @@ -263,9 +263,9 @@ 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.2dd605.2 +// 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.Op.bound.loc7: = bound_method %.loc7_11.2, constants.%Destroy.Op.2dd605.2 +// 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: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/namespace/shadow.carbon b/toolchain/check/testdata/namespace/shadow.carbon index 73ab84eed59f..3d8d95c35260 100644 --- a/toolchain/check/testdata/namespace/shadow.carbon +++ b/toolchain/check/testdata/namespace/shadow.carbon @@ -34,52 +34,52 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: --- shadow.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %A.type.f92: type = fn_type @A.loc15 [concrete] +// CHECK:STDOUT: %A.type.9f4: type = fn_type @A.loc15 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %A.c9c: %A.type.f92 = struct_value () [concrete] -// CHECK:STDOUT: %A.type.6b6: type = fn_type @A.loc18 [concrete] -// CHECK:STDOUT: %A.993: %A.type.6b6 = struct_value () [concrete] +// CHECK:STDOUT: %A.921: %A.type.9f4 = struct_value () [concrete] +// CHECK:STDOUT: %A.type.038: type = fn_type @A.loc18 [concrete] +// CHECK:STDOUT: %A.6ec: %A.type.038 = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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.790b3b.2: type = fn_type @Destroy.Op.loc26_5.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -92,12 +92,12 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -108,22 +108,22 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: .N = %N // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core -// CHECK:STDOUT: %A.decl.loc15: %A.type.f92 = fn_decl @A.loc15 [concrete = constants.%A.c9c] {} {} +// CHECK:STDOUT: %A.decl.loc15: %A.type.9f4 = fn_decl @A.loc15 [concrete = constants.%A.921] {} {} // CHECK:STDOUT: %N: = namespace [concrete] { // CHECK:STDOUT: .A = %A.decl.loc18 // CHECK:STDOUT: .M = %M // CHECK:STDOUT: } -// CHECK:STDOUT: %A.decl.loc18: %A.type.6b6 = fn_decl @A.loc18 [concrete = constants.%A.993] {} {} +// CHECK:STDOUT: %A.decl.loc18: %A.type.038 = fn_decl @A.loc18 [concrete = constants.%A.6ec] {} {} // CHECK:STDOUT: %M: = namespace [concrete] { // CHECK:STDOUT: .B = %B.decl // CHECK:STDOUT: .A = // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc22 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc22 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc22: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc22: Core.Form = init_form %i32.loc22 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc22: Core.Form = init_form %i32.loc22 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -135,47 +135,47 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: fn @B() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %A.ref.loc24: %A.type.6b6 = name_ref A, file.%A.decl.loc18 [concrete = constants.%A.993] +// CHECK:STDOUT: %A.ref.loc24: %A.type.038 = name_ref A, file.%A.decl.loc18 [concrete = constants.%A.6ec] // CHECK:STDOUT: %A.call: init %empty_tuple.type = call %A.ref.loc24() // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: if %true br !if.then else br !if.else // CHECK:STDOUT: // CHECK:STDOUT: !if.then: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %A.patt: %pattern_type.104 = ref_binding_pattern A [concrete] -// CHECK:STDOUT: %A.var_patt: %pattern_type.104 = var_pattern %A.patt [concrete] +// CHECK:STDOUT: %A.patt: %pattern_type.6b6 = ref_binding_pattern A [concrete] +// CHECK:STDOUT: %A.var_patt: %pattern_type.6b6 = var_pattern %A.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %A.var: ref %i32 = var %A.var_patt // CHECK:STDOUT: %int_0.loc26: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc26: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc26: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc26_5.1: = bound_method %int_0.loc26, %impl.elem0.loc26 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc26: = specific_function %impl.elem0.loc26, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc26_5.2: = bound_method %int_0.loc26, %specific_fn.loc26 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26: init %i32 = call %bound_method.loc26_5.2(%int_0.loc26) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc26: init %i32 = converted %int_0.loc26, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26: init %i32 = call %bound_method.loc26_5.2(%int_0.loc26) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc26: init %i32 = converted %int_0.loc26, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc26 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign %A.var, %.loc26 // CHECK:STDOUT: %i32.loc26: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %A: ref %i32 = ref_binding A, %A.var // CHECK:STDOUT: %A.ref.loc29: ref %i32 = name_ref A, %A // CHECK:STDOUT: %.loc29: %i32 = acquire_value %A.ref.loc29 -// CHECK:STDOUT: %impl.elem0.loc29: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc29: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc29_12.1: = bound_method %.loc29, %impl.elem0.loc29 // 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.loc26_5.1: = bound_method %A.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc26_5.1: = bound_method %A.var, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc26_5.1: init %empty_tuple.type = call %Destroy.Op.bound.loc26_5.1(%A.var) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %int_0.loc31: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc31: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc31: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc31_11.1: = bound_method %int_0.loc31, %impl.elem0.loc31 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc31: = specific_function %impl.elem0.loc31, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc31_11.2: = bound_method %int_0.loc31, %specific_fn.loc31 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31: init %i32 = call %bound_method.loc31_11.2(%int_0.loc31) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc31: init %i32 = converted %int_0.loc31, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %Destroy.Op.bound.loc26_5.2: = bound_method %A.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31: init %i32 = call %bound_method.loc31_11.2(%int_0.loc31) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc31: init %i32 = converted %int_0.loc31, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %Destroy.Op.bound.loc26_5.2: = bound_method %A.var, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc26_5.2: init %empty_tuple.type = call %Destroy.Op.bound.loc26_5.2(%A.var) // CHECK:STDOUT: return %.loc31 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/builtin/and.carbon b/toolchain/check/testdata/operators/builtin/and.carbon index 401e8e56a6f8..18b53ddab3a5 100644 --- a/toolchain/check/testdata/operators/builtin/and.carbon +++ b/toolchain/check/testdata/operators/builtin/and.carbon @@ -42,10 +42,10 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.de3: = impl_witness imports.%Copy.impl_witness_table.34b [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.de3) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.079: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.022: type = fn_type_with_self_type %Copy.WithSelf.Op.type.079, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.713: = impl_witness imports.%Copy.impl_witness_table.1ff [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.713) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.4a4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.15e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.4a4, %Copy.facet [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: %bool.as.Copy.impl.Op.bound: = bound_method %true, %bool.as.Copy.impl.Op [concrete] @@ -59,10 +59,10 @@ fn PartialConstant(x: bool) { // 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.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.loc26 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc23 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: %PartialConstant.type: type = fn_type @PartialConstant [concrete] // CHECK:STDOUT: %PartialConstant: %PartialConstant.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -77,8 +77,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/parts/bool, Bool, loaded [concrete = constants.%Bool] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.f63: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.34b = impl_witness_table (%Core.import_ref.f63), @bool.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.1ff = impl_witness_table (%Core.import_ref.9c3), @bool.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -133,7 +133,7 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: fn @F() -> out %return.param: bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem0: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %true, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] // CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method(%true) [concrete = constants.%true] // CHECK:STDOUT: return %bool.as.Copy.impl.Op.call @@ -142,7 +142,7 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: fn @G() -> out %return.param: bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem0: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %true, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] // CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method(%true) [concrete = constants.%true] // CHECK:STDOUT: return %bool.as.Copy.impl.Op.call @@ -166,7 +166,7 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: // CHECK:STDOUT: !and.result: // CHECK:STDOUT: %.loc19_14.5: bool = block_arg !and.result -// CHECK:STDOUT: %impl.elem0: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc19_14.5, %impl.elem0 // CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method(%.loc19_14.5) // CHECK:STDOUT: return %bool.as.Copy.impl.Op.call @@ -180,7 +180,7 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref bool = var %a.var_patt // CHECK:STDOUT: %true.loc23_54: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem0: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %true.loc23_54, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] // CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method(%true.loc23_54) [concrete = constants.%true] // CHECK:STDOUT: assign %a.var, %bool.as.Copy.impl.Op.call @@ -331,13 +331,13 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: // CHECK:STDOUT: !.loc26_15: // CHECK:STDOUT: %d: ref %empty_tuple.type = ref_binding d, %d.var -// CHECK:STDOUT: %Destroy.Op.bound.loc26: = bound_method %d.var, constants.%Destroy.Op.2dd605.1 +// 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.2dd605.1 +// 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.2dd605.1 +// 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.2dd605.2 +// 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: return // CHECK:STDOUT: } @@ -387,7 +387,7 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: // CHECK:STDOUT: !.loc30_15: // CHECK:STDOUT: %a: ref %empty_tuple.type = ref_binding a, %a.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.1 +// 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: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/builtin/assignment.carbon b/toolchain/check/testdata/operators/builtin/assignment.carbon index e4e7999c2d29..ebb48df814e7 100644 --- a/toolchain/check/testdata/operators/builtin/assignment.carbon +++ b/toolchain/check/testdata/operators/builtin/assignment.carbon @@ -41,88 +41,88 @@ fn Main() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_12.6a3: Core.IntLiteral = int_value 12 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bc9: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.739: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_12.aa5: %i32 = int_value 12 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.87c: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.46b: = bound_method %int_12.6a3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_12.8c7: %i32 = int_value 12 [concrete] // CHECK:STDOUT: %int_9.988: Core.IntLiteral = int_value 9 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aba: = bound_method %int_9.988, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.50b: = bound_method %int_9.988, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_9.7e6: %i32 = int_value 9 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f46: = bound_method %int_9.988, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %bound_method.9bf: = bound_method %int_9.988, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_9.056: %i32 = int_value 9 [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.79d: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] -// CHECK:STDOUT: %pattern_type.7d6: type = pattern_type %tuple.type.e5a [concrete] +// CHECK:STDOUT: %tuple.b59: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %pattern_type.394: type = pattern_type %tuple.type.e55 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [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: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %tuple.cd5: %tuple.type.e5a = tuple_value (%int_1.d9c, %int_2.228) [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] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %tuple.102: %tuple.type.e55 = tuple_value (%int_1.0c6, %int_2.295) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = 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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.9f5: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_4.a4d: %i32 = int_value 4 [concrete] -// CHECK:STDOUT: %struct_type.a.b.b47: type = struct_type {.a: %i32, .b: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.941: type = pattern_type %struct_type.a.b.b47 [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] +// CHECK:STDOUT: %int_4.4eb: %i32 = int_value 4 [concrete] +// CHECK:STDOUT: %struct_type.a.b.b4c: type = struct_type {.a: %i32, .b: %i32} [concrete] +// CHECK:STDOUT: %pattern_type.20e3: type = pattern_type %struct_type.a.b.b4c [concrete] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.4aa: %struct_type.a.b.cfd = struct_value (%int_1.5b8, %int_2.ecc) [concrete] -// CHECK:STDOUT: %struct.8fc: %struct_type.a.b.b47 = struct_value (%int_1.d9c, %int_2.228) [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr.847 [concrete] +// CHECK:STDOUT: %struct.631: %struct_type.a.b.b4c = struct_value (%int_1.0c6, %int_2.295) [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.c37: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ae4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.6e4: %ptr.as.Copy.impl.Op.type.ae4 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.847, (%Copy.impl_witness.c37) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.165: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.cd7: type = fn_type_with_self_type %Copy.WithSelf.Op.type.165, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.6e4, @ptr.as.Copy.impl.Op(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.ce1: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c1c: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.d1c: %ptr.as.Copy.impl.Op.type.c1c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.d08, (%Copy.impl_witness.ce1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.f9d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.ac9: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f9d, %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: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e3e: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_5.354: %i32 = 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] +// CHECK:STDOUT: %int_5.eef: %i32 = int_value 5 [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %int_10.64f: Core.IntLiteral = int_value 10 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.75c: = bound_method %int_10.64f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.2f8: = bound_method %int_10.64f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_10.0d4: %i32 = int_value 10 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.dcb: = bound_method %int_10.64f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.790b3b.1: type = fn_type @Destroy.Op.loc27 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc23_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc23_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.5: type = fn_type @Destroy.Op.loc19 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.5: %Destroy.Op.type.790b3b.5 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -135,12 +135,12 @@ fn Main() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -156,203 +156,203 @@ fn Main() { // CHECK:STDOUT: fn @Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.104 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var %a.var_patt // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] -// CHECK:STDOUT: %impl.elem0.loc16: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc16_3.1: = bound_method %int_12, %impl.elem0.loc16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bc9] +// CHECK:STDOUT: %impl.elem0.loc16: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc16_3.1: = bound_method %int_12, %impl.elem0.loc16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.87c] // CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_3.2: = bound_method %int_12, %specific_fn.loc16 [concrete = constants.%bound_method.739] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16: init %i32 = call %bound_method.loc16_3.2(%int_12) [concrete = constants.%int_12.aa5] -// CHECK:STDOUT: %.loc16: init %i32 = converted %int_12, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16 [concrete = constants.%int_12.aa5] +// CHECK:STDOUT: %bound_method.loc16_3.2: = bound_method %int_12, %specific_fn.loc16 [concrete = constants.%bound_method.46b] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16: init %i32 = call %bound_method.loc16_3.2(%int_12) [concrete = constants.%int_12.8c7] +// CHECK:STDOUT: %.loc16: init %i32 = converted %int_12, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16 [concrete = constants.%int_12.8c7] // CHECK:STDOUT: assign %a.var, %.loc16 // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: ref %i32 = ref_binding a, %a.var // CHECK:STDOUT: %a.ref.loc17: ref %i32 = name_ref a, %a // CHECK:STDOUT: %int_9: Core.IntLiteral = int_value 9 [concrete = constants.%int_9.988] -// CHECK:STDOUT: %impl.elem0.loc17: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %int_9, %impl.elem0.loc17 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aba] +// CHECK:STDOUT: %impl.elem0.loc17: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %int_9, %impl.elem0.loc17 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f46] // CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %int_9, %specific_fn.loc17 [concrete = constants.%bound_method.50b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %i32 = call %bound_method.loc17_5.2(%int_9) [concrete = constants.%int_9.7e6] -// CHECK:STDOUT: %.loc17: init %i32 = converted %int_9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_9.7e6] +// CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %int_9, %specific_fn.loc17 [concrete = constants.%bound_method.9bf] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %i32 = call %bound_method.loc17_5.2(%int_9) [concrete = constants.%int_9.056] +// CHECK:STDOUT: %.loc17: init %i32 = converted %int_9, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_9.056] // CHECK:STDOUT: assign %a.ref.loc17, %.loc17 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.7d6 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.7d6 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.394 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.394 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.var: ref %tuple.type.e5a = var %b.var_patt +// CHECK:STDOUT: %b.var: ref %tuple.type.e55 = var %b.var_patt // CHECK:STDOUT: %int_1.loc19: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc19: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc19_28.1: %tuple.type.f94 = tuple_literal (%int_1.loc19, %int_2.loc19) [concrete = constants.%tuple.ad8] -// CHECK:STDOUT: %impl.elem0.loc19_28.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc19_28.1: = bound_method %int_1.loc19, %impl.elem0.loc19_28.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc19_28.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc19_28.1: = bound_method %int_1.loc19, %impl.elem0.loc19_28.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc19_28.1: = specific_function %impl.elem0.loc19_28.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc19_28.2: = bound_method %int_1.loc19, %specific_fn.loc19_28.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_28.1: init %i32 = call %bound_method.loc19_28.2(%int_1.loc19) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc19_28.2: init %i32 = converted %int_1.loc19, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_28.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc19_28.2: = bound_method %int_1.loc19, %specific_fn.loc19_28.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_28.1: init %i32 = call %bound_method.loc19_28.2(%int_1.loc19) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc19_28.2: init %i32 = converted %int_1.loc19, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_28.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %tuple.elem0.loc19: ref %i32 = tuple_access %b.var, element0 -// CHECK:STDOUT: %.loc19_28.3: init %i32 to %tuple.elem0.loc19 = in_place_init %.loc19_28.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc19_28.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc19_28.3: = bound_method %int_2.loc19, %impl.elem0.loc19_28.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc19_28.3: init %i32 to %tuple.elem0.loc19 = in_place_init %.loc19_28.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc19_28.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc19_28.3: = bound_method %int_2.loc19, %impl.elem0.loc19_28.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc19_28.2: = specific_function %impl.elem0.loc19_28.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc19_28.4: = bound_method %int_2.loc19, %specific_fn.loc19_28.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_28.2: init %i32 = call %bound_method.loc19_28.4(%int_2.loc19) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc19_28.4: init %i32 = converted %int_2.loc19, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_28.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc19_28.4: = bound_method %int_2.loc19, %specific_fn.loc19_28.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_28.2: init %i32 = call %bound_method.loc19_28.4(%int_2.loc19) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc19_28.4: init %i32 = converted %int_2.loc19, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_28.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %tuple.elem1.loc19: ref %i32 = tuple_access %b.var, element1 -// CHECK:STDOUT: %.loc19_28.5: init %i32 to %tuple.elem1.loc19 = in_place_init %.loc19_28.4 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc19_28.6: init %tuple.type.e5a to %b.var = tuple_init (%.loc19_28.3, %.loc19_28.5) [concrete = constants.%tuple.cd5] -// CHECK:STDOUT: %.loc19_3: init %tuple.type.e5a = converted %.loc19_28.1, %.loc19_28.6 [concrete = constants.%tuple.cd5] +// CHECK:STDOUT: %.loc19_28.5: init %i32 to %tuple.elem1.loc19 = in_place_init %.loc19_28.4 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc19_28.6: init %tuple.type.e55 to %b.var = tuple_init (%.loc19_28.3, %.loc19_28.5) [concrete = constants.%tuple.102] +// CHECK:STDOUT: %.loc19_3: init %tuple.type.e55 = converted %.loc19_28.1, %.loc19_28.6 [concrete = constants.%tuple.102] // CHECK:STDOUT: assign %b.var, %.loc19_3 -// CHECK:STDOUT: %.loc19_19.1: type = splice_block %.loc19_19.3 [concrete = constants.%tuple.type.e5a] { +// CHECK:STDOUT: %.loc19_19.1: type = splice_block %.loc19_19.3 [concrete = constants.%tuple.type.e55] { // CHECK:STDOUT: %i32.loc19_11: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc19_16: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc19_19.2: %tuple.type.24b = tuple_literal (%i32.loc19_11, %i32.loc19_16) [concrete = constants.%tuple.79d] -// CHECK:STDOUT: %.loc19_19.3: type = converted %.loc19_19.2, constants.%tuple.type.e5a [concrete = constants.%tuple.type.e5a] +// CHECK:STDOUT: %.loc19_19.2: %tuple.type.24b = tuple_literal (%i32.loc19_11, %i32.loc19_16) [concrete = constants.%tuple.b59] +// CHECK:STDOUT: %.loc19_19.3: type = converted %.loc19_19.2, constants.%tuple.type.e55 [concrete = constants.%tuple.type.e55] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: ref %tuple.type.e5a = ref_binding b, %b.var -// CHECK:STDOUT: %b.ref.loc20: ref %tuple.type.e5a = name_ref b, %b +// CHECK:STDOUT: %b: ref %tuple.type.e55 = ref_binding b, %b.var +// CHECK:STDOUT: %b.ref.loc20: ref %tuple.type.e55 = name_ref b, %b // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %tuple.elem0.loc20: ref %i32 = tuple_access %b.ref.loc20, element0 // CHECK:STDOUT: %int_3.loc20: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc20: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc20_7.1: = bound_method %int_3.loc20, %impl.elem0.loc20 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %impl.elem0.loc20: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc20_7.1: = bound_method %int_3.loc20, %impl.elem0.loc20 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc20_7.2: = bound_method %int_3.loc20, %specific_fn.loc20 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %i32 = call %bound_method.loc20_7.2(%int_3.loc20) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc20: init %i32 = converted %int_3.loc20, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc20_7.2: = bound_method %int_3.loc20, %specific_fn.loc20 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %i32 = call %bound_method.loc20_7.2(%int_3.loc20) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc20: init %i32 = converted %int_3.loc20, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_3.410] // CHECK:STDOUT: assign %tuple.elem0.loc20, %.loc20 -// CHECK:STDOUT: %b.ref.loc21: ref %tuple.type.e5a = name_ref b, %b +// CHECK:STDOUT: %b.ref.loc21: ref %tuple.type.e55 = name_ref b, %b // CHECK:STDOUT: %int_1.loc21: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %tuple.elem1.loc21: ref %i32 = tuple_access %b.ref.loc21, element1 // CHECK:STDOUT: %int_4.loc21: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc21: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc21_7.1: = bound_method %int_4.loc21, %impl.elem0.loc21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe] +// CHECK:STDOUT: %impl.elem0.loc21: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc21_7.1: = bound_method %int_4.loc21, %impl.elem0.loc21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad] // CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc21_7.2: = bound_method %int_4.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.9f5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %i32 = call %bound_method.loc21_7.2(%int_4.loc21) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc21: init %i32 = converted %int_4.loc21, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_4.a4d] +// CHECK:STDOUT: %bound_method.loc21_7.2: = bound_method %int_4.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.b7a] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %i32 = call %bound_method.loc21_7.2(%int_4.loc21) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc21: init %i32 = converted %int_4.loc21, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_4.4eb] // CHECK:STDOUT: assign %tuple.elem1.loc21, %.loc21 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.941 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.941 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.20e3 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.20e3 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %c.var: ref %struct_type.a.b.b47 = var %c.var_patt +// CHECK:STDOUT: %c.var: ref %struct_type.a.b.b4c = var %c.var_patt // CHECK:STDOUT: %int_1.loc23: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc23: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc23_46.1: %struct_type.a.b.cfd = struct_literal (%int_1.loc23, %int_2.loc23) [concrete = constants.%struct.4aa] -// CHECK:STDOUT: %impl.elem0.loc23_46.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc23_46.1: = bound_method %int_1.loc23, %impl.elem0.loc23_46.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc23_46.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc23_46.1: = bound_method %int_1.loc23, %impl.elem0.loc23_46.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc23_46.1: = specific_function %impl.elem0.loc23_46.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc23_46.2: = bound_method %int_1.loc23, %specific_fn.loc23_46.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23_46.1: init %i32 = call %bound_method.loc23_46.2(%int_1.loc23) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc23_46.2: init %i32 = converted %int_1.loc23, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23_46.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc23_46.2: = bound_method %int_1.loc23, %specific_fn.loc23_46.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23_46.1: init %i32 = call %bound_method.loc23_46.2(%int_1.loc23) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc23_46.2: init %i32 = converted %int_1.loc23, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23_46.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc23_46.3: ref %i32 = struct_access %c.var, element0 -// CHECK:STDOUT: %.loc23_46.4: init %i32 to %.loc23_46.3 = in_place_init %.loc23_46.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc23_46.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc23_46.3: = bound_method %int_2.loc23, %impl.elem0.loc23_46.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc23_46.4: init %i32 to %.loc23_46.3 = in_place_init %.loc23_46.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc23_46.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc23_46.3: = bound_method %int_2.loc23, %impl.elem0.loc23_46.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc23_46.2: = specific_function %impl.elem0.loc23_46.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc23_46.4: = bound_method %int_2.loc23, %specific_fn.loc23_46.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23_46.2: init %i32 = call %bound_method.loc23_46.4(%int_2.loc23) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc23_46.5: init %i32 = converted %int_2.loc23, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23_46.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc23_46.4: = bound_method %int_2.loc23, %specific_fn.loc23_46.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23_46.2: init %i32 = call %bound_method.loc23_46.4(%int_2.loc23) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc23_46.5: init %i32 = converted %int_2.loc23, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23_46.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc23_46.6: ref %i32 = struct_access %c.var, element1 -// CHECK:STDOUT: %.loc23_46.7: init %i32 to %.loc23_46.6 = in_place_init %.loc23_46.5 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc23_46.8: init %struct_type.a.b.b47 to %c.var = struct_init (%.loc23_46.4, %.loc23_46.7) [concrete = constants.%struct.8fc] -// CHECK:STDOUT: %.loc23_3: init %struct_type.a.b.b47 = converted %.loc23_46.1, %.loc23_46.8 [concrete = constants.%struct.8fc] +// CHECK:STDOUT: %.loc23_46.7: init %i32 to %.loc23_46.6 = in_place_init %.loc23_46.5 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc23_46.8: init %struct_type.a.b.b4c to %c.var = struct_init (%.loc23_46.4, %.loc23_46.7) [concrete = constants.%struct.631] +// CHECK:STDOUT: %.loc23_3: init %struct_type.a.b.b4c = converted %.loc23_46.1, %.loc23_46.8 [concrete = constants.%struct.631] // CHECK:STDOUT: assign %c.var, %.loc23_3 -// CHECK:STDOUT: %.loc23_27: type = splice_block %struct_type.a.b [concrete = constants.%struct_type.a.b.b47] { +// CHECK:STDOUT: %.loc23_27: type = splice_block %struct_type.a.b [concrete = constants.%struct_type.a.b.b4c] { // CHECK:STDOUT: %i32.loc23_15: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc23_24: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b47] +// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b4c] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: ref %struct_type.a.b.b47 = ref_binding c, %c.var -// CHECK:STDOUT: %c.ref.loc24: ref %struct_type.a.b.b47 = name_ref c, %c +// CHECK:STDOUT: %c: ref %struct_type.a.b.b4c = ref_binding c, %c.var +// CHECK:STDOUT: %c.ref.loc24: ref %struct_type.a.b.b4c = name_ref c, %c // CHECK:STDOUT: %.loc24_4: ref %i32 = struct_access %c.ref.loc24, element0 // CHECK:STDOUT: %int_3.loc24: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc24: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc24_7.1: = bound_method %int_3.loc24, %impl.elem0.loc24 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %impl.elem0.loc24: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc24_7.1: = bound_method %int_3.loc24, %impl.elem0.loc24 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc24: = specific_function %impl.elem0.loc24, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc24_7.2: = bound_method %int_3.loc24, %specific_fn.loc24 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc24: init %i32 = call %bound_method.loc24_7.2(%int_3.loc24) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc24_7: init %i32 = converted %int_3.loc24, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc24 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc24_7.2: = bound_method %int_3.loc24, %specific_fn.loc24 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc24: init %i32 = call %bound_method.loc24_7.2(%int_3.loc24) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc24_7: init %i32 = converted %int_3.loc24, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc24 [concrete = constants.%int_3.410] // CHECK:STDOUT: assign %.loc24_4, %.loc24_7 -// CHECK:STDOUT: %c.ref.loc25: ref %struct_type.a.b.b47 = name_ref c, %c +// CHECK:STDOUT: %c.ref.loc25: ref %struct_type.a.b.b4c = name_ref c, %c // CHECK:STDOUT: %.loc25_4: ref %i32 = struct_access %c.ref.loc25, element1 // CHECK:STDOUT: %int_4.loc25: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc25: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc25_7.1: = bound_method %int_4.loc25, %impl.elem0.loc25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe] +// CHECK:STDOUT: %impl.elem0.loc25: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc25_7.1: = bound_method %int_4.loc25, %impl.elem0.loc25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad] // CHECK:STDOUT: %specific_fn.loc25: = specific_function %impl.elem0.loc25, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc25_7.2: = bound_method %int_4.loc25, %specific_fn.loc25 [concrete = constants.%bound_method.9f5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25: init %i32 = call %bound_method.loc25_7.2(%int_4.loc25) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc25_7: init %i32 = converted %int_4.loc25, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25 [concrete = constants.%int_4.a4d] +// CHECK:STDOUT: %bound_method.loc25_7.2: = bound_method %int_4.loc25, %specific_fn.loc25 [concrete = constants.%bound_method.b7a] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25: init %i32 = call %bound_method.loc25_7.2(%int_4.loc25) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc25_7: init %i32 = converted %int_4.loc25, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25 [concrete = constants.%int_4.4eb] // CHECK:STDOUT: assign %.loc25_4, %.loc25_7 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.7b5 = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.7b5 = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.f00 = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.f00 = var_pattern %p.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %p.var: ref %ptr.847 = var %p.var_patt +// CHECK:STDOUT: %p.var: ref %ptr.d08 = var %p.var_patt // CHECK:STDOUT: %a.ref.loc27: ref %i32 = name_ref a, %a -// CHECK:STDOUT: %addr.loc27: %ptr.847 = addr_of %a.ref.loc27 -// CHECK:STDOUT: %impl.elem0.loc27: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %addr.loc27: %ptr.d08 = addr_of %a.ref.loc27 +// CHECK:STDOUT: %impl.elem0.loc27: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc27_17.1: = bound_method %addr.loc27, %impl.elem0.loc27 // CHECK:STDOUT: %specific_fn.loc27: = specific_function %impl.elem0.loc27, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc27_17.2: = bound_method %addr.loc27, %specific_fn.loc27 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.847 = call %bound_method.loc27_17.2(%addr.loc27) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d08 = call %bound_method.loc27_17.2(%addr.loc27) // CHECK:STDOUT: assign %p.var, %ptr.as.Copy.impl.Op.call -// CHECK:STDOUT: %.loc27: type = splice_block %ptr [concrete = constants.%ptr.847] { +// CHECK:STDOUT: %.loc27: type = splice_block %ptr [concrete = constants.%ptr.d08] { // CHECK:STDOUT: %i32.loc27: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc27 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc27 [concrete = constants.%ptr.d08] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: ref %ptr.847 = ref_binding p, %p.var -// CHECK:STDOUT: %p.ref.loc28: ref %ptr.847 = name_ref p, %p -// CHECK:STDOUT: %.loc28_4: %ptr.847 = acquire_value %p.ref.loc28 +// CHECK:STDOUT: %p: ref %ptr.d08 = ref_binding p, %p.var +// CHECK:STDOUT: %p.ref.loc28: ref %ptr.d08 = name_ref p, %p +// CHECK:STDOUT: %.loc28_4: %ptr.d08 = acquire_value %p.ref.loc28 // CHECK:STDOUT: %.loc28_3: ref %i32 = deref %.loc28_4 // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0.loc28: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc28_6.1: = bound_method %int_5, %impl.elem0.loc28 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c] +// CHECK:STDOUT: %impl.elem0.loc28: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc28_6.1: = bound_method %int_5, %impl.elem0.loc28 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f6c] // CHECK:STDOUT: %specific_fn.loc28: = specific_function %impl.elem0.loc28, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc28_6.2: = bound_method %int_5, %specific_fn.loc28 [concrete = constants.%bound_method.e3e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc28: init %i32 = call %bound_method.loc28_6.2(%int_5) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc28_6: init %i32 = converted %int_5, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc28 [concrete = constants.%int_5.354] +// CHECK:STDOUT: %bound_method.loc28_6.2: = bound_method %int_5, %specific_fn.loc28 [concrete = constants.%bound_method.c9d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc28: init %i32 = call %bound_method.loc28_6.2(%int_5) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc28_6: init %i32 = converted %int_5, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc28 [concrete = constants.%int_5.eef] // CHECK:STDOUT: assign %.loc28_3, %.loc28_6 // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: if %true br !if.expr.then else br !if.expr.else // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.then: -// CHECK:STDOUT: %p.ref.loc30: ref %ptr.847 = name_ref p, %p -// CHECK:STDOUT: %.loc30_18: %ptr.847 = acquire_value %p.ref.loc30 +// CHECK:STDOUT: %p.ref.loc30: ref %ptr.d08 = name_ref p, %p +// CHECK:STDOUT: %.loc30_18: %ptr.d08 = acquire_value %p.ref.loc30 // CHECK:STDOUT: br !if.expr.result(%.loc30_18) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else: // CHECK:STDOUT: %a.ref.loc30: ref %i32 = name_ref a, %a -// CHECK:STDOUT: %addr.loc30: %ptr.847 = addr_of %a.ref.loc30 +// CHECK:STDOUT: %addr.loc30: %ptr.d08 = addr_of %a.ref.loc30 // CHECK:STDOUT: br !if.expr.result(%addr.loc30) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result: -// CHECK:STDOUT: %.loc30_5: %ptr.847 = block_arg !if.expr.result +// CHECK:STDOUT: %.loc30_5: %ptr.d08 = block_arg !if.expr.result // CHECK:STDOUT: %.loc30_3: ref %i32 = deref %.loc30_5 // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [concrete = constants.%int_10.64f] -// CHECK:STDOUT: %impl.elem0.loc30: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc30_29.1: = bound_method %int_10, %impl.elem0.loc30 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.75c] +// CHECK:STDOUT: %impl.elem0.loc30: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc30_29.1: = bound_method %int_10, %impl.elem0.loc30 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.dcb] // CHECK:STDOUT: %specific_fn.loc30: = specific_function %impl.elem0.loc30, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc30_29.2: = bound_method %int_10, %specific_fn.loc30 [concrete = constants.%bound_method.2f8] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc30: init %i32 = call %bound_method.loc30_29.2(%int_10) [concrete = constants.%int_10.0d4] -// CHECK:STDOUT: %.loc30_29: init %i32 = converted %int_10, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc30 [concrete = constants.%int_10.0d4] +// CHECK:STDOUT: %bound_method.loc30_29.2: = bound_method %int_10, %specific_fn.loc30 [concrete = constants.%bound_method.1b6] +// 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.2dd605.1 +// 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.2dd605.4 +// 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.2dd605.5 +// 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.2dd605.3 +// 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: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc27(%self.param: ref %ptr.847) = "no_op"; +// CHECK:STDOUT: fn @Destroy.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: @@ -361,12 +361,12 @@ fn Main() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc23_3.3(%self.param: ref %struct_type.a.b.b47) { +// CHECK:STDOUT: fn @Destroy.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.e5a) { +// CHECK:STDOUT: fn @Destroy.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_and_or_not_in_function.carbon b/toolchain/check/testdata/operators/builtin/fail_and_or_not_in_function.carbon index 85912075dc67..a0732fdb5b27 100644 --- a/toolchain/check/testdata/operators/builtin/fail_and_or_not_in_function.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_and_or_not_in_function.carbon @@ -95,10 +95,10 @@ fn F() { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %f64: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.f49: = impl_witness .inst{{[0-9A-F]+}} [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.f49) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cd0: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.31b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cd0, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.638: = impl_witness .inst{{[0-9A-F]+}} [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.638) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8b3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.524: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8b3, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -118,7 +118,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result: // CHECK:STDOUT: %.loc6: type = block_arg !if.expr.result -// CHECK:STDOUT: %impl.elem0: %.31b = impl_witness_access constants.%Copy.impl_witness.f49, element0 [concrete = constants.%type.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.524 = impl_witness_access constants.%Copy.impl_witness.638, element0 [concrete = constants.%type.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc6, %impl.elem0 // CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method(%.loc6) // CHECK:STDOUT: return %type.as.Copy.impl.Op.call @@ -134,10 +134,10 @@ fn F() { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %f64: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.f49: = impl_witness .inst{{[0-9A-F]+}} [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.f49) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cd0: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.31b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cd0, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.638: = impl_witness .inst{{[0-9A-F]+}} [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.638) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8b3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.524: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8b3, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -157,7 +157,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result: // CHECK:STDOUT: %.loc6: type = block_arg !if.expr.result -// CHECK:STDOUT: %impl.elem0: %.31b = impl_witness_access constants.%Copy.impl_witness.f49, element0 [concrete = constants.%type.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.524 = impl_witness_access constants.%Copy.impl_witness.638, element0 [concrete = constants.%type.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc6, %impl.elem0 // CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method(%.loc6) // CHECK:STDOUT: return %type.as.Copy.impl.Op.call 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 c9191fb03822..5c1367a150e9 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 @@ -69,8 +69,8 @@ fn Main() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] @@ -79,30 +79,30 @@ fn Main() { // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.969: = impl_witness imports.%Copy.impl_witness_table.365 [concrete] -// CHECK:STDOUT: %Copy.facet.78c: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.969) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.535: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.78c) [concrete] -// CHECK:STDOUT: %.b58: type = fn_type_with_self_type %Copy.WithSelf.Op.type.535, %Copy.facet.78c [concrete] +// CHECK:STDOUT: %Copy.impl_witness.6f1: = impl_witness imports.%Copy.impl_witness_table.5e0 [concrete] +// CHECK:STDOUT: %Copy.facet.a02: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.6f1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c52: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.a02) [concrete] +// CHECK:STDOUT: %.c22: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c52, %Copy.facet.a02 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.type: type = fn_type @Core.IntLiteral.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op: %Core.IntLiteral.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.bound.e21: = bound_method %int_2.ecc, %Core.IntLiteral.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] @@ -111,44 +111,44 @@ fn Main() { // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.bound.64e: = bound_method %int_3.1ba, %Core.IntLiteral.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.bound.50f: = bound_method %int_4, %Core.IntLiteral.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %tuple.cd5: %tuple.type.e5a = tuple_value (%int_1.d9c, %int_2.228) [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.f49: = impl_witness imports.%Copy.impl_witness_table.fcf [concrete] -// CHECK:STDOUT: %Copy.facet.717: %Copy.type = facet_value type, (%Copy.impl_witness.f49) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cd0: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.717) [concrete] -// CHECK:STDOUT: %.31b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cd0, %Copy.facet.717 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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: %tuple.type.e55: type = tuple_type (%i32, %i32) [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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %tuple.102: %tuple.type.e55 = tuple_value (%int_1.0c6, %int_2.295) [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.638: = impl_witness imports.%Copy.impl_witness_table.4d6 [concrete] +// CHECK:STDOUT: %Copy.facet.46a: %Copy.type = facet_value type, (%Copy.impl_witness.638) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8b3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.46a) [concrete] +// CHECK:STDOUT: %.524: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8b3, %Copy.facet.46a [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %ptr.847, %type.as.Copy.impl.Op [concrete] +// CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %ptr.d08, %type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %struct_type.x.y: type = struct_type {.x: Core.IntLiteral, .y: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.004: %struct_type.x.y = struct_value (%int_1.5b8, %int_2.ecc) [concrete] // CHECK:STDOUT: %struct.a0d: %struct_type.x.y = struct_value (%int_3.1ba, %int_4) [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = 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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.3a3: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%i32) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.e67: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%i32) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.e54: %T.as.DefaultOrUnformed.impl.Op.type.e67 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %i32, (%DefaultOrUnformed.impl_witness.3a3) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.e54, @T.as.DefaultOrUnformed.impl.Op(%i32) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.e52: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%i32) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.e40: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%i32) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.81c: %T.as.DefaultOrUnformed.impl.Op.type.e40 = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %i32, (%DefaultOrUnformed.impl_witness.e52) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.81c, @T.as.DefaultOrUnformed.impl.Op(%i32) [concrete] // CHECK:STDOUT: %int_10.64f: Core.IntLiteral = int_value 10 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.75c: = bound_method %int_10.64f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.2f8: = bound_method %int_10.64f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_10.0d4: %i32 = int_value 10 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.dcb: = bound_method %int_10.64f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.790b3b.2: type = fn_type @Destroy.Op.loc56_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -163,16 +163,16 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.f63b02.1: %Core.IntLiteral.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.365 = impl_witness_table (%Core.import_ref.f63b02.1), @Core.IntLiteral.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.f63b02.2: %type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.fcf = impl_witness_table (%Core.import_ref.f63b02.2), @type.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3475.1: %Core.IntLiteral.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.5e0 = impl_witness_table (%Core.import_ref.9c3475.1), @Core.IntLiteral.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3475.2: %type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.4d6 = impl_witness_table (%Core.import_ref.9c3475.2), @type.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -184,11 +184,11 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -201,19 +201,19 @@ fn Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1.loc22: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc22: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc22: %.b58 = impl_witness_access constants.%Copy.impl_witness.969, element0 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc22: %.c22 = impl_witness_access constants.%Copy.impl_witness.6f1, element0 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc22: = bound_method %int_2.loc22, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op.bound.e21] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.call.loc22: init Core.IntLiteral = call %bound_method.loc22(%int_2.loc22) [concrete = constants.%int_2.ecc] // CHECK:STDOUT: assign %int_1.loc22, %Core.IntLiteral.as.Copy.impl.Op.call.loc22 // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %F.call: init %i32 = call %F.ref() // CHECK:STDOUT: %int_1.loc27: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc27: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc27_7.1: = bound_method %int_1.loc27, %impl.elem0.loc27 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc27: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc27_7.1: = bound_method %int_1.loc27, %impl.elem0.loc27 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc27: = specific_function %impl.elem0.loc27, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc27_7.2: = bound_method %int_1.loc27, %specific_fn.loc27 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27: init %i32 = call %bound_method.loc27_7.2(%int_1.loc27) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc27: init %i32 = converted %int_1.loc27, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc27_7.2: = bound_method %int_1.loc27, %specific_fn.loc27 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27: init %i32 = call %bound_method.loc27_7.2(%int_1.loc27) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc27: init %i32 = converted %int_1.loc27, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: assign %F.call, %.loc27 // CHECK:STDOUT: %int_1.loc32: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc32: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] @@ -221,12 +221,12 @@ fn Main() { // CHECK:STDOUT: %int_3.loc32: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %int_4.loc32: Core.IntLiteral = int_value 4 [concrete = constants.%int_4] // CHECK:STDOUT: %.loc32_17.1: %tuple.type.f94 = tuple_literal (%int_3.loc32, %int_4.loc32) [concrete = constants.%tuple.302] -// CHECK:STDOUT: %impl.elem0.loc32_13: %.b58 = impl_witness_access constants.%Copy.impl_witness.969, element0 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc32_13: %.c22 = impl_witness_access constants.%Copy.impl_witness.6f1, element0 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc32_13: = bound_method %int_3.loc32, %impl.elem0.loc32_13 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op.bound.64e] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.call.loc32_13: init Core.IntLiteral = call %bound_method.loc32_13(%int_3.loc32) [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %tuple.elem0.loc32: Core.IntLiteral = tuple_access %.loc32_8.1, element0 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc32_17.2: init Core.IntLiteral to %tuple.elem0.loc32 = in_place_init %Core.IntLiteral.as.Copy.impl.Op.call.loc32_13 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc32_16: %.b58 = impl_witness_access constants.%Copy.impl_witness.969, element0 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc32_16: %.c22 = impl_witness_access constants.%Copy.impl_witness.6f1, element0 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc32_16: = bound_method %int_4.loc32, %impl.elem0.loc32_16 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op.bound.50f] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.call.loc32_16: init Core.IntLiteral = call %bound_method.loc32_16(%int_4.loc32) [concrete = constants.%int_4] // CHECK:STDOUT: %tuple.elem1.loc32: Core.IntLiteral = tuple_access %.loc32_8.1, element1 [concrete = constants.%int_2.ecc] @@ -237,55 +237,55 @@ fn Main() { // CHECK:STDOUT: %tuple.loc32: %tuple.type.f94 = tuple_value (%int_1.loc32, %int_2.loc32) [concrete = constants.%tuple.ad8] // CHECK:STDOUT: %.loc32_8.2: %tuple.type.f94 = converted %.loc32_8.1, %tuple.loc32 [concrete = constants.%tuple.ad8] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = ref_binding_pattern n [concrete] -// CHECK:STDOUT: %n.var_patt: %pattern_type.104 = var_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = ref_binding_pattern n [concrete] +// CHECK:STDOUT: %n.var_patt: %pattern_type.6b6 = var_pattern %n.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %n.var: ref %i32 = var %n.var_patt // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc33: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc33_3.1: = bound_method %int_0, %impl.elem0.loc33 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc33: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc33_3.1: = bound_method %int_0, %impl.elem0.loc33 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc33: = specific_function %impl.elem0.loc33, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc33_3.2: = bound_method %int_0, %specific_fn.loc33 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc33: init %i32 = call %bound_method.loc33_3.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc33: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc33 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc33_3.2: = bound_method %int_0, %specific_fn.loc33 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc33: init %i32 = call %bound_method.loc33_3.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc33: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc33 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign %n.var, %.loc33 // CHECK:STDOUT: %i32.loc33: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: ref %i32 = ref_binding n, %n.var // CHECK:STDOUT: %n.ref.loc38_4: ref %i32 = name_ref n, %n // CHECK:STDOUT: %n.ref.loc38_7: ref %i32 = name_ref n, %n -// CHECK:STDOUT: %.loc38_8.1: %tuple.type.e5a = tuple_literal (%n.ref.loc38_4, %n.ref.loc38_7) +// CHECK:STDOUT: %.loc38_8.1: %tuple.type.e55 = tuple_literal (%n.ref.loc38_4, %n.ref.loc38_7) // CHECK:STDOUT: %int_1.loc38: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc38: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc38_17.1: %tuple.type.f94 = tuple_literal (%int_1.loc38, %int_2.loc38) [concrete = constants.%tuple.ad8] -// CHECK:STDOUT: %impl.elem0.loc38_17.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc38_17.1: = bound_method %int_1.loc38, %impl.elem0.loc38_17.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc38_17.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc38_17.1: = bound_method %int_1.loc38, %impl.elem0.loc38_17.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc38_17.1: = specific_function %impl.elem0.loc38_17.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc38_17.2: = bound_method %int_1.loc38, %specific_fn.loc38_17.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc38_17.1: init %i32 = call %bound_method.loc38_17.2(%int_1.loc38) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc38_17.2: init %i32 = converted %int_1.loc38, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc38_17.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc38_17.2: = bound_method %int_1.loc38, %specific_fn.loc38_17.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc38_17.1: init %i32 = call %bound_method.loc38_17.2(%int_1.loc38) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc38_17.2: init %i32 = converted %int_1.loc38, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc38_17.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %tuple.elem0.loc38: %i32 = tuple_access %.loc38_8.1, element0 -// CHECK:STDOUT: %.loc38_17.3: init %i32 to %tuple.elem0.loc38 = in_place_init %.loc38_17.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc38_17.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc38_17.3: = bound_method %int_2.loc38, %impl.elem0.loc38_17.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc38_17.3: init %i32 to %tuple.elem0.loc38 = in_place_init %.loc38_17.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc38_17.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc38_17.3: = bound_method %int_2.loc38, %impl.elem0.loc38_17.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc38_17.2: = specific_function %impl.elem0.loc38_17.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc38_17.4: = bound_method %int_2.loc38, %specific_fn.loc38_17.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc38_17.2: init %i32 = call %bound_method.loc38_17.4(%int_2.loc38) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc38_17.4: init %i32 = converted %int_2.loc38, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc38_17.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc38_17.4: = bound_method %int_2.loc38, %specific_fn.loc38_17.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc38_17.2: init %i32 = call %bound_method.loc38_17.4(%int_2.loc38) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc38_17.4: init %i32 = converted %int_2.loc38, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc38_17.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %tuple.elem1.loc38: %i32 = tuple_access %.loc38_8.1, element1 -// CHECK:STDOUT: %.loc38_17.5: init %i32 to %tuple.elem1.loc38 = in_place_init %.loc38_17.4 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc38_17.6: init %tuple.type.e5a to %.loc38_8.1 = tuple_init (%.loc38_17.3, %.loc38_17.5) [concrete = constants.%tuple.cd5] -// CHECK:STDOUT: %.loc38_10: init %tuple.type.e5a = converted %.loc38_17.1, %.loc38_17.6 [concrete = constants.%tuple.cd5] +// CHECK:STDOUT: %.loc38_17.5: init %i32 to %tuple.elem1.loc38 = in_place_init %.loc38_17.4 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc38_17.6: init %tuple.type.e55 to %.loc38_8.1 = tuple_init (%.loc38_17.3, %.loc38_17.5) [concrete = constants.%tuple.102] +// CHECK:STDOUT: %.loc38_10: init %tuple.type.e55 = converted %.loc38_17.1, %.loc38_17.6 [concrete = constants.%tuple.102] // CHECK:STDOUT: assign %.loc38_8.1, %.loc38_10 // CHECK:STDOUT: %.loc38_4: %i32 = acquire_value %n.ref.loc38_4 // CHECK:STDOUT: %.loc38_7: %i32 = acquire_value %n.ref.loc38_7 -// CHECK:STDOUT: %tuple.loc38: %tuple.type.e5a = tuple_value (%.loc38_4, %.loc38_7) -// CHECK:STDOUT: %.loc38_8.2: %tuple.type.e5a = converted %.loc38_8.1, %tuple.loc38 +// CHECK:STDOUT: %tuple.loc38: %tuple.type.e55 = tuple_value (%.loc38_4, %.loc38_7) +// CHECK:STDOUT: %.loc38_8.2: %tuple.type.e55 = converted %.loc38_8.1, %tuple.loc38 // CHECK:STDOUT: %i32.loc43_3: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc43_9: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc43_9 [concrete = constants.%ptr.847] -// CHECK:STDOUT: %impl.elem0.loc43: %.31b = impl_witness_access constants.%Copy.impl_witness.f49, element0 [concrete = constants.%type.as.Copy.impl.Op] +// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc43_9 [concrete = constants.%ptr.d08] +// CHECK:STDOUT: %impl.elem0.loc43: %.524 = impl_witness_access constants.%Copy.impl_witness.638, element0 [concrete = constants.%type.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc43: = bound_method %ptr, %impl.elem0.loc43 [concrete = constants.%type.as.Copy.impl.Op.bound] -// CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method.loc43(%ptr) [concrete = constants.%ptr.847] +// CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method.loc43(%ptr) [concrete = constants.%ptr.d08] // CHECK:STDOUT: assign %i32.loc43_3, %type.as.Copy.impl.Op.call // CHECK:STDOUT: %int_1.loc48: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc48: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] @@ -293,12 +293,12 @@ fn Main() { // CHECK:STDOUT: %int_3.loc48: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %int_4.loc48: Core.IntLiteral = int_value 4 [concrete = constants.%int_4] // CHECK:STDOUT: %.loc48_37.1: %struct_type.x.y = struct_literal (%int_3.loc48, %int_4.loc48) [concrete = constants.%struct.a0d] -// CHECK:STDOUT: %impl.elem0.loc48_28: %.b58 = impl_witness_access constants.%Copy.impl_witness.969, element0 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc48_28: %.c22 = impl_witness_access constants.%Copy.impl_witness.6f1, element0 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc48_28: = bound_method %int_3.loc48, %impl.elem0.loc48_28 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op.bound.64e] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.call.loc48_28: init Core.IntLiteral = call %bound_method.loc48_28(%int_3.loc48) [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc48_37.2: Core.IntLiteral = struct_access %.loc48_18.1, element0 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc48_37.3: init Core.IntLiteral to %.loc48_37.2 = in_place_init %Core.IntLiteral.as.Copy.impl.Op.call.loc48_28 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc48_36: %.b58 = impl_witness_access constants.%Copy.impl_witness.969, element0 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc48_36: %.c22 = impl_witness_access constants.%Copy.impl_witness.6f1, element0 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc48_36: = bound_method %int_4.loc48, %impl.elem0.loc48_36 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op.bound.50f] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.call.loc48_36: init Core.IntLiteral = call %bound_method.loc48_36(%int_4.loc48) [concrete = constants.%int_4] // CHECK:STDOUT: %.loc48_37.4: Core.IntLiteral = struct_access %.loc48_18.1, element1 [concrete = constants.%int_2.ecc] @@ -313,46 +313,46 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.then.loc53: // CHECK:STDOUT: %int_1.loc53: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc53_12: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc53_12.1: = bound_method %int_1.loc53, %impl.elem0.loc53_12 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc53_12: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc53_12.1: = bound_method %int_1.loc53, %impl.elem0.loc53_12 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc53_12: = specific_function %impl.elem0.loc53_12, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc53_12.2: = bound_method %int_1.loc53, %specific_fn.loc53_12 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53_12: init %i32 = call %bound_method.loc53_12.2(%int_1.loc53) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc53_12.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53_12 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc53_12.2: %i32 = converted %int_1.loc53, %.loc53_12.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc53_12.2: = bound_method %int_1.loc53, %specific_fn.loc53_12 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53_12: init %i32 = call %bound_method.loc53_12.2(%int_1.loc53) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc53_12.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53_12 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc53_12.2: %i32 = converted %int_1.loc53, %.loc53_12.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: br !if.expr.result.loc53(%.loc53_12.2) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else.loc53: // CHECK:STDOUT: %int_2.loc53: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc53_19: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc53_19.1: = bound_method %int_2.loc53, %impl.elem0.loc53_19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %impl.elem0.loc53_19: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc53_19.1: = bound_method %int_2.loc53, %impl.elem0.loc53_19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc53_19: = specific_function %impl.elem0.loc53_19, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc53_19.2: = bound_method %int_2.loc53, %specific_fn.loc53_19 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53_19: init %i32 = call %bound_method.loc53_19.2(%int_2.loc53) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc53_19.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53_19 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc53_19.2: %i32 = converted %int_2.loc53, %.loc53_19.1 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc53_19.2: = bound_method %int_2.loc53, %specific_fn.loc53_19 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53_19: init %i32 = call %bound_method.loc53_19.2(%int_2.loc53) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc53_19.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53_19 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc53_19.2: %i32 = converted %int_2.loc53, %.loc53_19.1 [concrete = constants.%int_2.295] // CHECK:STDOUT: br !if.expr.result.loc53(%.loc53_19.2) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result.loc53: -// CHECK:STDOUT: %.loc53_4: %i32 = block_arg !if.expr.result.loc53 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %.loc53_4: %i32 = block_arg !if.expr.result.loc53 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %int_3.loc53: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc53_27: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc53_27.1: = bound_method %int_3.loc53, %impl.elem0.loc53_27 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %impl.elem0.loc53_27: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc53_27.1: = bound_method %int_3.loc53, %impl.elem0.loc53_27 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc53_27: = specific_function %impl.elem0.loc53_27, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc53_27.2: = bound_method %int_3.loc53, %specific_fn.loc53_27 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53_27: init %i32 = call %bound_method.loc53_27.2(%int_3.loc53) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc53_27: init %i32 = converted %int_3.loc53, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53_27 [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc53_27.2: = bound_method %int_3.loc53, %specific_fn.loc53_27 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53_27: init %i32 = call %bound_method.loc53_27.2(%int_3.loc53) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc53_27: init %i32 = converted %int_3.loc53, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc53_27 [concrete = constants.%int_3.410] // CHECK:STDOUT: assign %.loc53_4, %.loc53_27 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.104 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var %a.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%i32, (constants.%DefaultOrUnformed.impl_witness.3a3) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%i32, (constants.%DefaultOrUnformed.impl_witness.e52) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc56_13.1: %DefaultOrUnformed.type = converted constants.%i32, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc56_13.1 [concrete = constants.%i32] // CHECK:STDOUT: %.loc56_13.2: type = converted %.loc56_13.1, %as_type [concrete = constants.%i32] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.e54, @T.as.DefaultOrUnformed.impl.Op(constants.%i32) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.81c, @T.as.DefaultOrUnformed.impl.Op(constants.%i32) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %i32 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign %a.var, %T.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: %i32.loc56: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -373,16 +373,16 @@ fn Main() { // CHECK:STDOUT: !if.expr.result.loc61: // CHECK:STDOUT: %.loc61_4: %i32 = block_arg !if.expr.result.loc61 // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [concrete = constants.%int_10.64f] -// CHECK:STDOUT: %impl.elem0.loc61: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc61_27.1: = bound_method %int_10, %impl.elem0.loc61 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.75c] +// CHECK:STDOUT: %impl.elem0.loc61: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc61_27.1: = bound_method %int_10, %impl.elem0.loc61 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.dcb] // CHECK:STDOUT: %specific_fn.loc61: = specific_function %impl.elem0.loc61, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc61_27.2: = bound_method %int_10, %specific_fn.loc61 [concrete = constants.%bound_method.2f8] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc61: init %i32 = call %bound_method.loc61_27.2(%int_10) [concrete = constants.%int_10.0d4] -// CHECK:STDOUT: %.loc61_27: init %i32 = converted %int_10, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc61 [concrete = constants.%int_10.0d4] +// CHECK:STDOUT: %bound_method.loc61_27.2: = bound_method %int_10, %specific_fn.loc61 [concrete = constants.%bound_method.1b6] +// 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.2dd605.2 +// 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.2dd605.2 +// 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: 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 bff7c4d69b5c..4a96dab91809 100644 --- a/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon @@ -37,47 +37,47 @@ fn Main() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.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: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = 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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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.790b3b.2: type = fn_type @Destroy.Op.loc18_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -90,12 +90,12 @@ fn Main() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -107,11 +107,11 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15_11: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15_11: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -121,29 +121,29 @@ fn Main() { // CHECK:STDOUT: fn @F() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_25.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_25.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_25.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_25.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc15_25: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc15_25.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_25.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc15_25: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: return %.loc15_25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.104 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var %a.var_patt // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc18: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_3.1: = bound_method %int_3, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %impl.elem0.loc18: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_3.1: = bound_method %int_3, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_3.2: = bound_method %int_3, %specific_fn.loc18 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc18_3.2(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc18: init %i32 = converted %int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %bound_method.loc18_3.2: = bound_method %int_3, %specific_fn.loc18 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc18_3.2(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc18: init %i32 = converted %int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_3.410] // CHECK:STDOUT: assign %a.var, %.loc18 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: ref %i32 = ref_binding a, %a.var @@ -151,7 +151,7 @@ fn Main() { // CHECK:STDOUT: %a.ref.loc23_7: ref %i32 = name_ref a, %a // CHECK:STDOUT: %a.ref.loc23_10: ref %i32 = name_ref a, %a // CHECK:STDOUT: %.loc23: %i32 = acquire_value %a.ref.loc23_10 -// CHECK:STDOUT: %impl.elem0.loc23: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc23: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc23_10.1: = bound_method %.loc23, %impl.elem0.loc23 // CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc23_10.2: = bound_method %.loc23, %specific_fn.loc23 @@ -162,7 +162,7 @@ fn Main() { // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %F.call: init %i32 = call %F.ref() // CHECK:STDOUT: assign %a.ref.loc28_3, %F.call -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.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: 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 be756eb601ca..43884a4d3f06 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon @@ -33,8 +33,8 @@ fn Main() { // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// 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] @@ -49,7 +49,7 @@ fn Main() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/parts/bool, Bool, loaded [concrete = constants.%Bool] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon index d44349ba466e..a786c82a9e88 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon @@ -35,28 +35,28 @@ fn Main() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] +// 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.790b3b.2: type = fn_type @Destroy.Op.loc16_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -68,9 +68,9 @@ fn Main() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -86,17 +86,17 @@ fn Main() { // CHECK:STDOUT: fn @Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.104 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var %a.var_patt // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc16_3.1: = bound_method %int_3, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_3.2: = bound_method %int_3, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_3.2(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc16: init %i32 = converted %int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_3.6cc] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_3.2(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc16: init %i32 = converted %int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_3.410] // CHECK:STDOUT: assign %a.var, %.loc16 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: ref %i32 = ref_binding a, %a.var @@ -104,7 +104,7 @@ 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.2dd605.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: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_once.carbon b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_once.carbon index 3698c55ddf60..d07060a1d71a 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_once.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_once.carbon @@ -29,15 +29,15 @@ fn Main() -> i32 { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 34e-1 [concrete] -// CHECK:STDOUT: %AddWith.type.be4: type = generic_interface_type @AddWith [concrete] -// CHECK:STDOUT: %AddWith.generic: %AddWith.type.be4 = struct_value () [concrete] +// CHECK:STDOUT: %AddWith.type.2ef: type = generic_interface_type @AddWith [concrete] +// CHECK:STDOUT: %AddWith.generic: %AddWith.type.2ef = struct_value () [concrete] // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -49,7 +49,7 @@ fn Main() -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.AddWith: %AddWith.type.be4 = import_ref Core//prelude/operators/arithmetic, AddWith, loaded [concrete = constants.%AddWith.generic] +// CHECK:STDOUT: %Core.AddWith: %AddWith.type.2ef = import_ref Core//prelude/operators/arithmetic, AddWith, loaded [concrete = constants.%AddWith.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -59,11 +59,11 @@ fn Main() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [concrete = constants.%Main] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/builtin/fail_unimplemented_op.carbon b/toolchain/check/testdata/operators/builtin/fail_unimplemented_op.carbon index b862e8719533..bbe83faf036d 100644 --- a/toolchain/check/testdata/operators/builtin/fail_unimplemented_op.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_unimplemented_op.carbon @@ -27,15 +27,15 @@ fn Main() -> i32 { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %int_34: Core.IntLiteral = int_value 34 [concrete] -// CHECK:STDOUT: %AddWith.type.be4: type = generic_interface_type @AddWith [concrete] -// CHECK:STDOUT: %AddWith.generic: %AddWith.type.be4 = struct_value () [concrete] +// CHECK:STDOUT: %AddWith.type.2ef: type = generic_interface_type @AddWith [concrete] +// CHECK:STDOUT: %AddWith.generic: %AddWith.type.2ef = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -46,7 +46,7 @@ fn Main() -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.AddWith: %AddWith.type.be4 = import_ref Core//prelude/operators/arithmetic, AddWith, loaded [concrete = constants.%AddWith.generic] +// CHECK:STDOUT: %Core.AddWith: %AddWith.type.2ef = import_ref Core//prelude/operators/arithmetic, AddWith, loaded [concrete = constants.%AddWith.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -56,11 +56,11 @@ fn Main() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [concrete = constants.%Main] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/builtin/or.carbon b/toolchain/check/testdata/operators/builtin/or.carbon index 95534335487d..1fbf4f8467a5 100644 --- a/toolchain/check/testdata/operators/builtin/or.carbon +++ b/toolchain/check/testdata/operators/builtin/or.carbon @@ -42,10 +42,10 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.de3: = impl_witness imports.%Copy.impl_witness_table.34b [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.de3) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.079: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.022: type = fn_type_with_self_type %Copy.WithSelf.Op.type.079, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.713: = impl_witness imports.%Copy.impl_witness_table.1ff [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.713) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.4a4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.15e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.4a4, %Copy.facet [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: %bool.as.Copy.impl.Op.bound: = bound_method %true, %bool.as.Copy.impl.Op [concrete] @@ -59,10 +59,10 @@ fn PartialConstant(x: bool) { // 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.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.loc26 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc25 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: %PartialConstant.type: type = fn_type @PartialConstant [concrete] // CHECK:STDOUT: %PartialConstant: %PartialConstant.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -77,8 +77,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/parts/bool, Bool, loaded [concrete = constants.%Bool] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.f63: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.34b = impl_witness_table (%Core.import_ref.f63), @bool.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.1ff = impl_witness_table (%Core.import_ref.9c3), @bool.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -133,7 +133,7 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: fn @F() -> out %return.param: bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem0: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %true, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] // CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method(%true) [concrete = constants.%true] // CHECK:STDOUT: return %bool.as.Copy.impl.Op.call @@ -142,7 +142,7 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: fn @G() -> out %return.param: bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem0: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %true, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] // CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method(%true) [concrete = constants.%true] // CHECK:STDOUT: return %bool.as.Copy.impl.Op.call @@ -167,7 +167,7 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: // CHECK:STDOUT: !or.result: // CHECK:STDOUT: %.loc19_14.6: bool = block_arg !or.result -// CHECK:STDOUT: %impl.elem0: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc19_14.6, %impl.elem0 // CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method(%.loc19_14.6) // CHECK:STDOUT: return %bool.as.Copy.impl.Op.call @@ -181,7 +181,7 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref bool = var %a.var_patt // CHECK:STDOUT: %true.loc23_53: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem0.loc23: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc23: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc23: = bound_method %true.loc23_53, %impl.elem0.loc23 [concrete = constants.%bool.as.Copy.impl.Op.bound] // CHECK:STDOUT: %bool.as.Copy.impl.Op.call.loc23: init bool = call %bound_method.loc23(%true.loc23_53) [concrete = constants.%true] // CHECK:STDOUT: assign %a.var, %bool.as.Copy.impl.Op.call.loc23 @@ -222,7 +222,7 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref bool = var %b.var_patt // CHECK:STDOUT: %true.loc24_54: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem0.loc24: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc24: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc24: = bound_method %true.loc24_54, %impl.elem0.loc24 [concrete = constants.%bool.as.Copy.impl.Op.bound] // CHECK:STDOUT: %bool.as.Copy.impl.Op.call.loc24: init bool = call %bound_method.loc24(%true.loc24_54) [concrete = constants.%true] // CHECK:STDOUT: assign %b.var, %bool.as.Copy.impl.Op.call.loc24 @@ -263,7 +263,7 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref bool = var %c.var_patt // CHECK:STDOUT: %true.loc25_54: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem0.loc25: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc25: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc25: = bound_method %true.loc25_54, %impl.elem0.loc25 [concrete = constants.%bool.as.Copy.impl.Op.bound] // CHECK:STDOUT: %bool.as.Copy.impl.Op.call.loc25: init bool = call %bound_method.loc25(%true.loc25_54) [concrete = constants.%true] // CHECK:STDOUT: assign %c.var, %bool.as.Copy.impl.Op.call.loc25 @@ -338,13 +338,13 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: // CHECK:STDOUT: !.loc26_15: // CHECK:STDOUT: %d: ref %empty_tuple.type = ref_binding d, %d.var -// CHECK:STDOUT: %Destroy.Op.bound.loc26: = bound_method %d.var, constants.%Destroy.Op.2dd605.1 +// 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.2dd605.2 +// 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.2dd605.2 +// 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.2dd605.2 +// 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: return // CHECK:STDOUT: } @@ -361,7 +361,7 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref bool = var %a.var_patt // CHECK:STDOUT: %true.loc30_50: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem0: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %true.loc30_50, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] // CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method(%true.loc30_50) [concrete = constants.%true] // CHECK:STDOUT: assign %a.var, %bool.as.Copy.impl.Op.call @@ -396,7 +396,7 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: // CHECK:STDOUT: !.loc30_15: // CHECK:STDOUT: %a: ref bool = ref_binding a, %a.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op.2dd605.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: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/builtin/unary_op.carbon b/toolchain/check/testdata/operators/builtin/unary_op.carbon index 5f531614f568..15e67d653bc2 100644 --- a/toolchain/check/testdata/operators/builtin/unary_op.carbon +++ b/toolchain/check/testdata/operators/builtin/unary_op.carbon @@ -35,10 +35,10 @@ fn Constant() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Not: %Not.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.de3: = impl_witness imports.%Copy.impl_witness_table.34b [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.de3) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.079: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.022: type = fn_type_with_self_type %Copy.WithSelf.Op.type.079, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.713: = impl_witness imports.%Copy.impl_witness_table.1ff [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.713) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.4a4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.15e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.4a4, %Copy.facet [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: %true: bool = bool_literal true [concrete] @@ -49,10 +49,10 @@ fn Constant() { // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [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.790b3b.1: type = fn_type @Destroy.Op.loc24 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc23 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -65,8 +65,8 @@ fn Constant() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/parts/bool, Bool, loaded [concrete = constants.%Bool] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.f63: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.34b = impl_witness_table (%Core.import_ref.f63), @bool.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.1ff = impl_witness_table (%Core.import_ref.9c3), @bool.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -110,7 +110,7 @@ fn Constant() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %b.ref: bool = name_ref b, %b // CHECK:STDOUT: %.loc16: bool = not %b.ref -// CHECK:STDOUT: %impl.elem0: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc16, %impl.elem0 // CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method(%.loc16) // CHECK:STDOUT: return %bool.as.Copy.impl.Op.call @@ -155,7 +155,7 @@ fn Constant() { // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref bool = var %b.var_patt // CHECK:STDOUT: %true.loc24: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem0: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %true.loc24, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] // CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method(%true.loc24) [concrete = constants.%true] // CHECK:STDOUT: assign %b.var, %bool.as.Copy.impl.Op.call @@ -181,9 +181,9 @@ fn Constant() { // CHECK:STDOUT: // CHECK:STDOUT: !.loc24_15: // CHECK:STDOUT: %b: ref bool = ref_binding b, %b.var -// CHECK:STDOUT: %Destroy.Op.bound.loc24: = bound_method %b.var, constants.%Destroy.Op.2dd605.1 +// 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.2dd605.2 +// 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: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/add.carbon b/toolchain/check/testdata/operators/overloaded/add.carbon index a29fa807b996..b322f6e35281 100644 --- a/toolchain/check/testdata/operators/overloaded/add.carbon +++ b/toolchain/check/testdata/operators/overloaded/add.carbon @@ -44,40 +44,40 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %AddWith.type.685: type = facet_type <@AddWith, @AddWith(%C)> [concrete] +// CHECK:STDOUT: %AddWith.type.2bd: type = facet_type <@AddWith, @AddWith(%C)> [concrete] // CHECK:STDOUT: %AddWith.impl_witness: = impl_witness @C.as.AddWith.impl.%AddWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.AddWith.impl.Op.type: type = fn_type @C.as.AddWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.AddWith.impl.Op: %C.as.AddWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %AddWith.facet: %AddWith.type.685 = facet_value %C, (%AddWith.impl_witness) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.703: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%C, %AddWith.facet) [concrete] -// CHECK:STDOUT: %AddAssignWith.type.9ed: type = facet_type <@AddAssignWith, @AddAssignWith(%C)> [concrete] +// CHECK:STDOUT: %AddWith.facet: %AddWith.type.2bd = facet_value %C, (%AddWith.impl_witness) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.c2b: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%C, %AddWith.facet) [concrete] +// CHECK:STDOUT: %AddAssignWith.type.cba: type = facet_type <@AddAssignWith, @AddAssignWith(%C)> [concrete] // CHECK:STDOUT: %AddAssignWith.impl_witness: = impl_witness @C.as.AddAssignWith.impl.%AddAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.AddAssignWith.impl.Op.type: type = fn_type @C.as.AddAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.AddAssignWith.impl.Op: %C.as.AddAssignWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.9ed = facet_value %C, (%AddAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.b93: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%C, %AddAssignWith.facet) [concrete] -// CHECK:STDOUT: %.a2f: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.703, %AddWith.facet [concrete] -// CHECK:STDOUT: %ptr.9a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.389: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.b93, %AddAssignWith.facet [concrete] +// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.cba = facet_value %C, (%AddAssignWith.impl_witness) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.62f: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%C, %AddAssignWith.facet) [concrete] +// CHECK:STDOUT: %.757: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.c2b, %AddWith.facet [concrete] +// CHECK:STDOUT: %ptr.00e: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.fbc: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.62f, %AddAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestOp(%a.param: %C, %b.param: %C) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem1: %.a2f = impl_witness_access constants.%AddWith.impl_witness, element1 [concrete = constants.%C.as.AddWith.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.757 = impl_witness_access constants.%AddWith.impl_witness, element1 [concrete = constants.%C.as.AddWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: // CHECK:STDOUT: %C.as.AddWith.impl.Op.call: init %C to %.loc30_26.1 = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: return %C.as.AddWith.impl.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.9a8, %b.param: %C) { +// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.00e, %b.param: %C) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %ptr.9a8 = name_ref a, %a +// CHECK:STDOUT: %a.ref: %ptr.00e = name_ref a, %a // CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.389 = impl_witness_access constants.%AddAssignWith.impl_witness, element0 [concrete = constants.%C.as.AddAssignWith.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.fbc = impl_witness_access constants.%AddAssignWith.impl_witness, element0 [concrete = constants.%C.as.AddAssignWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 // CHECK:STDOUT: %C.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method(%.loc38, %b.ref) // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/bit_and.carbon b/toolchain/check/testdata/operators/overloaded/bit_and.carbon index 352cdad18796..6466abbb760a 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_and.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_and.carbon @@ -44,40 +44,40 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %BitAndWith.type.82e: type = facet_type <@BitAndWith, @BitAndWith(%C)> [concrete] +// CHECK:STDOUT: %BitAndWith.type.8cc: type = facet_type <@BitAndWith, @BitAndWith(%C)> [concrete] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness @C.as.BitAndWith.impl.%BitAndWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.BitAndWith.impl.Op.type: type = fn_type @C.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.BitAndWith.impl.Op: %C.as.BitAndWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.82e = facet_value %C, (%BitAndWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.ed7: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(%C, %BitAndWith.facet) [concrete] -// CHECK:STDOUT: %BitAndAssignWith.type.99a: type = facet_type <@BitAndAssignWith, @BitAndAssignWith(%C)> [concrete] +// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.8cc = facet_value %C, (%BitAndWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.a71: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(%C, %BitAndWith.facet) [concrete] +// CHECK:STDOUT: %BitAndAssignWith.type.491: type = facet_type <@BitAndAssignWith, @BitAndAssignWith(%C)> [concrete] // CHECK:STDOUT: %BitAndAssignWith.impl_witness: = impl_witness @C.as.BitAndAssignWith.impl.%BitAndAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.BitAndAssignWith.impl.Op.type: type = fn_type @C.as.BitAndAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.BitAndAssignWith.impl.Op: %C.as.BitAndAssignWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %BitAndAssignWith.facet: %BitAndAssignWith.type.99a = facet_value %C, (%BitAndAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.2b2: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%C, %BitAndAssignWith.facet) [concrete] -// CHECK:STDOUT: %.243: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.ed7, %BitAndWith.facet [concrete] -// CHECK:STDOUT: %ptr.9a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.cb5: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.2b2, %BitAndAssignWith.facet [concrete] +// CHECK:STDOUT: %BitAndAssignWith.facet: %BitAndAssignWith.type.491 = facet_value %C, (%BitAndAssignWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.8fc: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%C, %BitAndAssignWith.facet) [concrete] +// CHECK:STDOUT: %.663: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.a71, %BitAndWith.facet [concrete] +// CHECK:STDOUT: %ptr.00e: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.4b9: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.8fc, %BitAndAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestOp(%a.param: %C, %b.param: %C) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem1: %.243 = impl_witness_access constants.%BitAndWith.impl_witness, element1 [concrete = constants.%C.as.BitAndWith.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.663 = impl_witness_access constants.%BitAndWith.impl_witness, element1 [concrete = constants.%C.as.BitAndWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: // CHECK:STDOUT: %C.as.BitAndWith.impl.Op.call: init %C to %.loc30_26.1 = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: return %C.as.BitAndWith.impl.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.9a8, %b.param: %C) { +// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.00e, %b.param: %C) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %ptr.9a8 = name_ref a, %a +// CHECK:STDOUT: %a.ref: %ptr.00e = name_ref a, %a // CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.cb5 = impl_witness_access constants.%BitAndAssignWith.impl_witness, element0 [concrete = constants.%C.as.BitAndAssignWith.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.4b9 = impl_witness_access constants.%BitAndAssignWith.impl_witness, element0 [concrete = constants.%C.as.BitAndAssignWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 // CHECK:STDOUT: %C.as.BitAndAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method(%.loc38, %b.ref) // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/bit_complement.carbon b/toolchain/check/testdata/operators/overloaded/bit_complement.carbon index 893067234e93..aa1ea5beb763 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_complement.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_complement.carbon @@ -39,14 +39,14 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: %C.as.BitComplement.impl.Op.type: type = fn_type @C.as.BitComplement.impl.Op [concrete] // CHECK:STDOUT: %C.as.BitComplement.impl.Op: %C.as.BitComplement.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %BitComplement.facet: %BitComplement.type = facet_value %C, (%BitComplement.impl_witness) [concrete] -// CHECK:STDOUT: %BitComplement.WithSelf.Op.type.0d4: type = fn_type @BitComplement.WithSelf.Op, @BitComplement.WithSelf(%BitComplement.facet) [concrete] -// CHECK:STDOUT: %.ede: type = fn_type_with_self_type %BitComplement.WithSelf.Op.type.0d4, %BitComplement.facet [concrete] +// CHECK:STDOUT: %BitComplement.WithSelf.Op.type.6db: type = fn_type @BitComplement.WithSelf.Op, @BitComplement.WithSelf(%BitComplement.facet) [concrete] +// CHECK:STDOUT: %.827: type = fn_type_with_self_type %BitComplement.WithSelf.Op.type.6db, %BitComplement.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestOp(%a.param: %C) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a -// CHECK:STDOUT: %impl.elem1: %.ede = impl_witness_access constants.%BitComplement.impl_witness, element1 [concrete = constants.%C.as.BitComplement.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.827 = impl_witness_access constants.%BitComplement.impl_witness, element1 [concrete = constants.%C.as.BitComplement.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: // CHECK:STDOUT: %C.as.BitComplement.impl.Op.call: init %C to %.loc27_20.1 = call %bound_method(%a.ref) diff --git a/toolchain/check/testdata/operators/overloaded/bit_or.carbon b/toolchain/check/testdata/operators/overloaded/bit_or.carbon index 788f39742a1b..223383031c0d 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_or.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_or.carbon @@ -44,40 +44,40 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %BitOrWith.type.179: type = facet_type <@BitOrWith, @BitOrWith(%C)> [concrete] +// CHECK:STDOUT: %BitOrWith.type.f57: type = facet_type <@BitOrWith, @BitOrWith(%C)> [concrete] // CHECK:STDOUT: %BitOrWith.impl_witness: = impl_witness @C.as.BitOrWith.impl.%BitOrWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.BitOrWith.impl.Op.type: type = fn_type @C.as.BitOrWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.BitOrWith.impl.Op: %C.as.BitOrWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %BitOrWith.facet: %BitOrWith.type.179 = facet_value %C, (%BitOrWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitOrWith.WithSelf.Op.type.665: type = fn_type @BitOrWith.WithSelf.Op, @BitOrWith.WithSelf(%C, %BitOrWith.facet) [concrete] -// CHECK:STDOUT: %BitOrAssignWith.type.59e: type = facet_type <@BitOrAssignWith, @BitOrAssignWith(%C)> [concrete] +// CHECK:STDOUT: %BitOrWith.facet: %BitOrWith.type.f57 = facet_value %C, (%BitOrWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitOrWith.WithSelf.Op.type.ac5: type = fn_type @BitOrWith.WithSelf.Op, @BitOrWith.WithSelf(%C, %BitOrWith.facet) [concrete] +// CHECK:STDOUT: %BitOrAssignWith.type.d30: type = facet_type <@BitOrAssignWith, @BitOrAssignWith(%C)> [concrete] // CHECK:STDOUT: %BitOrAssignWith.impl_witness: = impl_witness @C.as.BitOrAssignWith.impl.%BitOrAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.BitOrAssignWith.impl.Op.type: type = fn_type @C.as.BitOrAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.BitOrAssignWith.impl.Op: %C.as.BitOrAssignWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %BitOrAssignWith.facet: %BitOrAssignWith.type.59e = facet_value %C, (%BitOrAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.8ff: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%C, %BitOrAssignWith.facet) [concrete] -// CHECK:STDOUT: %.8dc: type = fn_type_with_self_type %BitOrWith.WithSelf.Op.type.665, %BitOrWith.facet [concrete] -// CHECK:STDOUT: %ptr.9a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.278: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.8ff, %BitOrAssignWith.facet [concrete] +// CHECK:STDOUT: %BitOrAssignWith.facet: %BitOrAssignWith.type.d30 = facet_value %C, (%BitOrAssignWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.fa7: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%C, %BitOrAssignWith.facet) [concrete] +// CHECK:STDOUT: %.502: type = fn_type_with_self_type %BitOrWith.WithSelf.Op.type.ac5, %BitOrWith.facet [concrete] +// CHECK:STDOUT: %ptr.00e: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.9d7: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.fa7, %BitOrAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestOp(%a.param: %C, %b.param: %C) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem1: %.8dc = impl_witness_access constants.%BitOrWith.impl_witness, element1 [concrete = constants.%C.as.BitOrWith.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.502 = impl_witness_access constants.%BitOrWith.impl_witness, element1 [concrete = constants.%C.as.BitOrWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: // CHECK:STDOUT: %C.as.BitOrWith.impl.Op.call: init %C to %.loc30_26.1 = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: return %C.as.BitOrWith.impl.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.9a8, %b.param: %C) { +// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.00e, %b.param: %C) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %ptr.9a8 = name_ref a, %a +// CHECK:STDOUT: %a.ref: %ptr.00e = name_ref a, %a // CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.278 = impl_witness_access constants.%BitOrAssignWith.impl_witness, element0 [concrete = constants.%C.as.BitOrAssignWith.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.9d7 = impl_witness_access constants.%BitOrAssignWith.impl_witness, element0 [concrete = constants.%C.as.BitOrAssignWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 // CHECK:STDOUT: %C.as.BitOrAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method(%.loc38, %b.ref) // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/bit_xor.carbon b/toolchain/check/testdata/operators/overloaded/bit_xor.carbon index 4f5ece6a7d3b..6177860c4392 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_xor.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_xor.carbon @@ -44,40 +44,40 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %BitXorWith.type.1eb: type = facet_type <@BitXorWith, @BitXorWith(%C)> [concrete] +// CHECK:STDOUT: %BitXorWith.type.5f3: type = facet_type <@BitXorWith, @BitXorWith(%C)> [concrete] // CHECK:STDOUT: %BitXorWith.impl_witness: = impl_witness @C.as.BitXorWith.impl.%BitXorWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.BitXorWith.impl.Op.type: type = fn_type @C.as.BitXorWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.BitXorWith.impl.Op: %C.as.BitXorWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %BitXorWith.facet: %BitXorWith.type.1eb = facet_value %C, (%BitXorWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitXorWith.WithSelf.Op.type.300: type = fn_type @BitXorWith.WithSelf.Op, @BitXorWith.WithSelf(%C, %BitXorWith.facet) [concrete] -// CHECK:STDOUT: %BitXorAssignWith.type.141: type = facet_type <@BitXorAssignWith, @BitXorAssignWith(%C)> [concrete] +// CHECK:STDOUT: %BitXorWith.facet: %BitXorWith.type.5f3 = facet_value %C, (%BitXorWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitXorWith.WithSelf.Op.type.1cd: type = fn_type @BitXorWith.WithSelf.Op, @BitXorWith.WithSelf(%C, %BitXorWith.facet) [concrete] +// CHECK:STDOUT: %BitXorAssignWith.type.80d: type = facet_type <@BitXorAssignWith, @BitXorAssignWith(%C)> [concrete] // CHECK:STDOUT: %BitXorAssignWith.impl_witness: = impl_witness @C.as.BitXorAssignWith.impl.%BitXorAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.BitXorAssignWith.impl.Op.type: type = fn_type @C.as.BitXorAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.BitXorAssignWith.impl.Op: %C.as.BitXorAssignWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %BitXorAssignWith.facet: %BitXorAssignWith.type.141 = facet_value %C, (%BitXorAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.1d9: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%C, %BitXorAssignWith.facet) [concrete] -// CHECK:STDOUT: %.f46: type = fn_type_with_self_type %BitXorWith.WithSelf.Op.type.300, %BitXorWith.facet [concrete] -// CHECK:STDOUT: %ptr.9a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.3fc: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.1d9, %BitXorAssignWith.facet [concrete] +// CHECK:STDOUT: %BitXorAssignWith.facet: %BitXorAssignWith.type.80d = facet_value %C, (%BitXorAssignWith.impl_witness) [concrete] +// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.741: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%C, %BitXorAssignWith.facet) [concrete] +// CHECK:STDOUT: %.67c: type = fn_type_with_self_type %BitXorWith.WithSelf.Op.type.1cd, %BitXorWith.facet [concrete] +// CHECK:STDOUT: %ptr.00e: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.046: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.741, %BitXorAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestOp(%a.param: %C, %b.param: %C) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem1: %.f46 = impl_witness_access constants.%BitXorWith.impl_witness, element1 [concrete = constants.%C.as.BitXorWith.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.67c = impl_witness_access constants.%BitXorWith.impl_witness, element1 [concrete = constants.%C.as.BitXorWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: // CHECK:STDOUT: %C.as.BitXorWith.impl.Op.call: init %C to %.loc30_26.1 = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: return %C.as.BitXorWith.impl.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.9a8, %b.param: %C) { +// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.00e, %b.param: %C) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %ptr.9a8 = name_ref a, %a +// CHECK:STDOUT: %a.ref: %ptr.00e = name_ref a, %a // CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.3fc = impl_witness_access constants.%BitXorAssignWith.impl_witness, element0 [concrete = constants.%C.as.BitXorAssignWith.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.046 = impl_witness_access constants.%BitXorAssignWith.impl_witness, element0 [concrete = constants.%C.as.BitXorAssignWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 // CHECK:STDOUT: %C.as.BitXorAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method(%.loc38, %b.ref) // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/dec.carbon b/toolchain/check/testdata/operators/overloaded/dec.carbon index 152ef4eb6348..30c3013209c3 100644 --- a/toolchain/check/testdata/operators/overloaded/dec.carbon +++ b/toolchain/check/testdata/operators/overloaded/dec.carbon @@ -39,15 +39,15 @@ fn TestOp() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C.as.Dec.impl.Op: %C.as.Dec.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Dec.facet: %Dec.type = facet_value %C, (%Dec.impl_witness) [concrete] -// CHECK:STDOUT: %Dec.WithSelf.Op.type.907: type = fn_type @Dec.WithSelf.Op, @Dec.WithSelf(%Dec.facet) [concrete] -// CHECK:STDOUT: %.540: type = fn_type_with_self_type %Dec.WithSelf.Op.type.907, %Dec.facet [concrete] +// CHECK:STDOUT: %Dec.WithSelf.Op.type.44a: type = fn_type @Dec.WithSelf.Op, @Dec.WithSelf(%Dec.facet) [concrete] +// CHECK:STDOUT: %.61b: type = fn_type_with_self_type %Dec.WithSelf.Op.type.44a, %Dec.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestOp() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: %c.ref: ref %C = name_ref c, %c -// CHECK:STDOUT: %impl.elem0: %.540 = impl_witness_access constants.%Dec.impl_witness, element0 [concrete = constants.%C.as.Dec.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.61b = impl_witness_access constants.%Dec.impl_witness, element0 [concrete = constants.%C.as.Dec.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %C.as.Dec.impl.Op.call: init %empty_tuple.type = call %bound_method(%c.ref) // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/div.carbon b/toolchain/check/testdata/operators/overloaded/div.carbon index 740c1a633e6b..70557f42c47c 100644 --- a/toolchain/check/testdata/operators/overloaded/div.carbon +++ b/toolchain/check/testdata/operators/overloaded/div.carbon @@ -44,40 +44,40 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %DivWith.type.ba4: type = facet_type <@DivWith, @DivWith(%C)> [concrete] +// CHECK:STDOUT: %DivWith.type.148: type = facet_type <@DivWith, @DivWith(%C)> [concrete] // CHECK:STDOUT: %DivWith.impl_witness: = impl_witness @C.as.DivWith.impl.%DivWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.DivWith.impl.Op.type: type = fn_type @C.as.DivWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.DivWith.impl.Op: %C.as.DivWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %DivWith.facet: %DivWith.type.ba4 = facet_value %C, (%DivWith.impl_witness) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.26a: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%C, %DivWith.facet) [concrete] -// CHECK:STDOUT: %DivAssignWith.type.22d: type = facet_type <@DivAssignWith, @DivAssignWith(%C)> [concrete] +// CHECK:STDOUT: %DivWith.facet: %DivWith.type.148 = facet_value %C, (%DivWith.impl_witness) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.b48: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%C, %DivWith.facet) [concrete] +// CHECK:STDOUT: %DivAssignWith.type.dad: type = facet_type <@DivAssignWith, @DivAssignWith(%C)> [concrete] // CHECK:STDOUT: %DivAssignWith.impl_witness: = impl_witness @C.as.DivAssignWith.impl.%DivAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.DivAssignWith.impl.Op.type: type = fn_type @C.as.DivAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.DivAssignWith.impl.Op: %C.as.DivAssignWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %DivAssignWith.facet: %DivAssignWith.type.22d = facet_value %C, (%DivAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.86a: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%C, %DivAssignWith.facet) [concrete] -// CHECK:STDOUT: %.b0e: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.26a, %DivWith.facet [concrete] -// CHECK:STDOUT: %ptr.9a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.caf: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.86a, %DivAssignWith.facet [concrete] +// CHECK:STDOUT: %DivAssignWith.facet: %DivAssignWith.type.dad = facet_value %C, (%DivAssignWith.impl_witness) [concrete] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.417: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%C, %DivAssignWith.facet) [concrete] +// CHECK:STDOUT: %.713: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.b48, %DivWith.facet [concrete] +// CHECK:STDOUT: %ptr.00e: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.647: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.417, %DivAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestOp(%a.param: %C, %b.param: %C) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem1: %.b0e = impl_witness_access constants.%DivWith.impl_witness, element1 [concrete = constants.%C.as.DivWith.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.713 = impl_witness_access constants.%DivWith.impl_witness, element1 [concrete = constants.%C.as.DivWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: // CHECK:STDOUT: %C.as.DivWith.impl.Op.call: init %C to %.loc30_26.1 = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: return %C.as.DivWith.impl.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.9a8, %b.param: %C) { +// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.00e, %b.param: %C) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %ptr.9a8 = name_ref a, %a +// CHECK:STDOUT: %a.ref: %ptr.00e = name_ref a, %a // CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.caf = impl_witness_access constants.%DivAssignWith.impl_witness, element0 [concrete = constants.%C.as.DivAssignWith.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.647 = impl_witness_access constants.%DivAssignWith.impl_witness, element0 [concrete = constants.%C.as.DivAssignWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 // CHECK:STDOUT: %C.as.DivAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method(%.loc38, %b.ref) // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/eq.carbon b/toolchain/check/testdata/operators/overloaded/eq.carbon index daeaa24b3d76..f395575b646e 100644 --- a/toolchain/check/testdata/operators/overloaded/eq.carbon +++ b/toolchain/check/testdata/operators/overloaded/eq.carbon @@ -87,28 +87,28 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %EqWith.type.05c: type = generic_interface_type @EqWith [concrete] -// CHECK:STDOUT: %EqWith.generic: %EqWith.type.05c = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.type.f77: type = generic_interface_type @EqWith [concrete] +// CHECK:STDOUT: %EqWith.generic: %EqWith.type.f77 = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] // CHECK:STDOUT: %.f34: Core.Form = init_form bool [concrete] -// CHECK:STDOUT: %EqWith.type.3a3: type = facet_type <@EqWith, @EqWith(%C)> [concrete] +// CHECK:STDOUT: %EqWith.type.d1f: type = facet_type <@EqWith, @EqWith(%C)> [concrete] // CHECK:STDOUT: %EqWith.impl_witness: = impl_witness @C.as.EqWith.impl.%EqWith.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.309: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.4a7: type = pattern_type %C [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %C.as.EqWith.impl.Equal.type: type = fn_type @C.as.EqWith.impl.Equal [concrete] // CHECK:STDOUT: %C.as.EqWith.impl.Equal: %C.as.EqWith.impl.Equal.type = struct_value () [concrete] // CHECK:STDOUT: %C.as.EqWith.impl.NotEqual.type: type = fn_type @C.as.EqWith.impl.NotEqual [concrete] // CHECK:STDOUT: %C.as.EqWith.impl.NotEqual: %C.as.EqWith.impl.NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet: %EqWith.type.3a3 = facet_value %C, (%EqWith.impl_witness) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.fd1: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%C, %EqWith.facet) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.72f: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%C, %EqWith.facet) [concrete] +// CHECK:STDOUT: %EqWith.facet: %EqWith.type.d1f = facet_value %C, (%EqWith.impl_witness) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.084: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%C, %EqWith.facet) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.399: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%C, %EqWith.facet) [concrete] // CHECK:STDOUT: %TestEqual.type: type = fn_type @TestEqual [concrete] // CHECK:STDOUT: %TestEqual: %TestEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %.acc: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.fd1, %EqWith.facet [concrete] +// CHECK:STDOUT: %.0e9: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.084, %EqWith.facet [concrete] // CHECK:STDOUT: %TestNotEqual.type: type = fn_type @TestNotEqual [concrete] // CHECK:STDOUT: %TestNotEqual: %TestNotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %.1c6: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.72f, %EqWith.facet [concrete] +// CHECK:STDOUT: %.50c: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.399, %EqWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -118,7 +118,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.EqWith: %EqWith.type.05c = import_ref Core//prelude/operators/comparison, EqWith, loaded [concrete = constants.%EqWith.generic] +// CHECK:STDOUT: %Core.EqWith: %EqWith.type.f77 = import_ref Core//prelude/operators/comparison, EqWith, loaded [concrete = constants.%EqWith.generic] // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/types/bool, Bool, loaded [concrete = constants.%Bool] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -134,15 +134,15 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: impl_decl @C.as.EqWith.impl [concrete] {} { // CHECK:STDOUT: %C.ref.loc6_6: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %EqWith.ref: %EqWith.type.05c = name_ref EqWith, imports.%Core.EqWith [concrete = constants.%EqWith.generic] +// CHECK:STDOUT: %EqWith.ref: %EqWith.type.f77 = name_ref EqWith, imports.%Core.EqWith [concrete = constants.%EqWith.generic] // CHECK:STDOUT: %C.ref.loc6_23: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %EqWith.type: type = facet_type <@EqWith, @EqWith(constants.%C)> [concrete = constants.%EqWith.type.3a3] +// CHECK:STDOUT: %EqWith.type: type = facet_type <@EqWith, @EqWith(constants.%C)> [concrete = constants.%EqWith.type.d1f] // CHECK:STDOUT: } // CHECK:STDOUT: %TestEqual.decl: %TestEqual.type = fn_decl @TestEqual [concrete = constants.%TestEqual] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.309 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.309 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.4a7 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.4a7 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc11_29.1 [concrete] // CHECK:STDOUT: } { @@ -158,10 +158,10 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestNotEqual.decl: %TestNotEqual.type = fn_decl @TestNotEqual [concrete = constants.%TestNotEqual] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.309 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.309 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.4a7 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.4a7 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc15_32.1 [concrete] // CHECK:STDOUT: } { @@ -180,10 +180,10 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.EqWith.impl: %C.ref.loc6_6 as %EqWith.type { // CHECK:STDOUT: %C.as.EqWith.impl.Equal.decl: %C.as.EqWith.impl.Equal.type = fn_decl @C.as.EqWith.impl.Equal [concrete = constants.%C.as.EqWith.impl.Equal] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.309 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.309 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.4a7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.4a7 = at_binding_pattern other, %other.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc7_34.1 [concrete] // CHECK:STDOUT: } { @@ -199,10 +199,10 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.as.EqWith.impl.NotEqual.decl: %C.as.EqWith.impl.NotEqual.type = fn_decl @C.as.EqWith.impl.NotEqual [concrete = constants.%C.as.EqWith.impl.NotEqual] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.309 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.309 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.4a7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.4a7 = at_binding_pattern other, %other.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc8_37.1 [concrete] // CHECK:STDOUT: } { @@ -244,7 +244,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.acc = impl_witness_access constants.%EqWith.impl_witness, element0 [concrete = constants.%C.as.EqWith.impl.Equal] +// CHECK:STDOUT: %impl.elem0: %.0e9 = impl_witness_access constants.%EqWith.impl_witness, element0 [concrete = constants.%C.as.EqWith.impl.Equal] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %C.as.EqWith.impl.Equal.call: init bool = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: return %C.as.EqWith.impl.Equal.call @@ -254,7 +254,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem1: %.1c6 = impl_witness_access constants.%EqWith.impl_witness, element1 [concrete = constants.%C.as.EqWith.impl.NotEqual] +// CHECK:STDOUT: %impl.elem1: %.50c = impl_witness_access constants.%EqWith.impl_witness, element1 [concrete = constants.%C.as.EqWith.impl.NotEqual] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: %C.as.EqWith.impl.NotEqual.call: init bool = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: return %C.as.EqWith.impl.NotEqual.call @@ -266,15 +266,15 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.b4f: type = pattern_type %D [concrete] +// CHECK:STDOUT: %pattern_type.9dc: type = pattern_type %D [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %.f34: Core.Form = init_form bool [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] // CHECK:STDOUT: %TestEqual.type: type = fn_type @TestEqual [concrete] // CHECK:STDOUT: %TestEqual: %TestEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.type.05c: type = generic_interface_type @EqWith [concrete] -// CHECK:STDOUT: %EqWith.generic: %EqWith.type.05c = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.type.f77: type = generic_interface_type @EqWith [concrete] +// CHECK:STDOUT: %EqWith.generic: %EqWith.type.f77 = struct_value () [concrete] // CHECK:STDOUT: %TestNotEqual.type: type = fn_type @TestNotEqual [concrete] // CHECK:STDOUT: %TestNotEqual: %TestNotEqual.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -287,7 +287,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/types/bool, Bool, loaded [concrete = constants.%Bool] -// CHECK:STDOUT: %Core.EqWith: %EqWith.type.05c = import_ref Core//prelude/operators/comparison, EqWith, loaded [concrete = constants.%EqWith.generic] +// CHECK:STDOUT: %Core.EqWith: %EqWith.type.f77 = import_ref Core//prelude/operators/comparison, EqWith, loaded [concrete = constants.%EqWith.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -300,10 +300,10 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %TestEqual.decl: %TestEqual.type = fn_decl @TestEqual [concrete = constants.%TestEqual] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.b4f = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.b4f = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.b4f = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.b4f = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.9dc = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9dc = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.9dc = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.9dc = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc6_29.1 [concrete] // CHECK:STDOUT: } { @@ -319,10 +319,10 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestNotEqual.decl: %TestNotEqual.type = fn_decl @TestNotEqual [concrete = constants.%TestNotEqual] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.b4f = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.b4f = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.b4f = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.b4f = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.9dc = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9dc = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.9dc = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.9dc = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc14_32.1 [concrete] // CHECK:STDOUT: } { @@ -368,20 +368,20 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] -// CHECK:STDOUT: %EqWith.type.05c: type = generic_interface_type @EqWith [concrete] -// CHECK:STDOUT: %EqWith.generic: %EqWith.type.05c = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.type.f77: type = generic_interface_type @EqWith [concrete] +// CHECK:STDOUT: %EqWith.generic: %EqWith.type.f77 = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] // CHECK:STDOUT: %.f34: Core.Form = init_form bool [concrete] -// CHECK:STDOUT: %EqWith.type.33b: type = facet_type <@EqWith, @EqWith(%C)> [concrete] +// CHECK:STDOUT: %EqWith.type.c2a: type = facet_type <@EqWith, @EqWith(%C)> [concrete] // CHECK:STDOUT: %EqWith.impl_witness: = impl_witness @C.as.EqWith.impl.%EqWith.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.88c: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.eae: type = pattern_type %C [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %C.as.EqWith.impl.Equal.type: type = fn_type @C.as.EqWith.impl.Equal [concrete] // CHECK:STDOUT: %C.as.EqWith.impl.Equal: %C.as.EqWith.impl.Equal.type = struct_value () [concrete] // CHECK:STDOUT: %C.as.EqWith.impl.NotEqual.type: type = fn_type @C.as.EqWith.impl.NotEqual [concrete] // CHECK:STDOUT: %C.as.EqWith.impl.NotEqual: %C.as.EqWith.impl.NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.bab: type = pattern_type %D [concrete] +// CHECK:STDOUT: %pattern_type.d59: type = pattern_type %D [concrete] // CHECK:STDOUT: %TestRhsBad.type: type = fn_type @TestRhsBad [concrete] // CHECK:STDOUT: %TestRhsBad: %TestRhsBad.type = struct_value () [concrete] // CHECK:STDOUT: %TestLhsBad.type: type = fn_type @TestLhsBad [concrete] @@ -395,7 +395,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.EqWith: %EqWith.type.05c = import_ref Core//prelude/operators/comparison, EqWith, loaded [concrete = constants.%EqWith.generic] +// CHECK:STDOUT: %Core.EqWith: %EqWith.type.f77 = import_ref Core//prelude/operators/comparison, EqWith, loaded [concrete = constants.%EqWith.generic] // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/types/bool, Bool, loaded [concrete = constants.%Bool] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -413,15 +413,15 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: impl_decl @C.as.EqWith.impl [concrete] {} { // CHECK:STDOUT: %C.ref.loc7_6: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %EqWith.ref: %EqWith.type.05c = name_ref EqWith, imports.%Core.EqWith [concrete = constants.%EqWith.generic] +// CHECK:STDOUT: %EqWith.ref: %EqWith.type.f77 = name_ref EqWith, imports.%Core.EqWith [concrete = constants.%EqWith.generic] // CHECK:STDOUT: %C.ref.loc7_23: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %EqWith.type: type = facet_type <@EqWith, @EqWith(constants.%C)> [concrete = constants.%EqWith.type.33b] +// CHECK:STDOUT: %EqWith.type: type = facet_type <@EqWith, @EqWith(constants.%C)> [concrete = constants.%EqWith.type.c2a] // CHECK:STDOUT: } // CHECK:STDOUT: %TestRhsBad.decl: %TestRhsBad.type = fn_decl @TestRhsBad [concrete = constants.%TestRhsBad] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.88c = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.88c = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.bab = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.bab = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.eae = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.eae = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.d59 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.d59 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc12_30.1 [concrete] // CHECK:STDOUT: } { @@ -437,10 +437,10 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestLhsBad.decl: %TestLhsBad.type = fn_decl @TestLhsBad [concrete = constants.%TestLhsBad] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.bab = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.bab = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.88c = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.88c = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.d59 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.d59 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.eae = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.eae = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc20_30.1 [concrete] // CHECK:STDOUT: } { @@ -459,10 +459,10 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.EqWith.impl: %C.ref.loc7_6 as %EqWith.type { // CHECK:STDOUT: %C.as.EqWith.impl.Equal.decl: %C.as.EqWith.impl.Equal.type = fn_decl @C.as.EqWith.impl.Equal [concrete = constants.%C.as.EqWith.impl.Equal] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.88c = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.88c = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.88c = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.88c = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.eae = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.eae = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.eae = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.eae = at_binding_pattern other, %other.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc8_34.1 [concrete] // CHECK:STDOUT: } { @@ -478,10 +478,10 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.as.EqWith.impl.NotEqual.decl: %C.as.EqWith.impl.NotEqual.type = fn_decl @C.as.EqWith.impl.NotEqual [concrete = constants.%C.as.EqWith.impl.NotEqual] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.88c = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.88c = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.88c = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.88c = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.eae = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.eae = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.eae = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.eae = at_binding_pattern other, %other.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc9_37.1 [concrete] // CHECK:STDOUT: } { diff --git a/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon b/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon index 5294aa1c8b47..095c5b05bc80 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon @@ -53,26 +53,26 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Inc.type: type = facet_type <@Inc> [concrete] // CHECK:STDOUT: %Inc.impl_witness: = impl_witness @C.as.Inc.impl.%Inc.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.309: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.4a7: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.as.Inc.impl.Op.type: type = fn_type @C.as.Inc.impl.Op [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C.as.Inc.impl.Op: %C.as.Inc.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %C, (%Inc.impl_witness) [concrete] -// CHECK:STDOUT: %Inc.WithSelf.Op.type.500: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%Inc.facet) [concrete] -// CHECK:STDOUT: %AddAssignWith.type.b82: type = generic_interface_type @AddAssignWith [concrete] -// CHECK:STDOUT: %AddAssignWith.generic: %AddAssignWith.type.b82 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.type.9ed: type = facet_type <@AddAssignWith, @AddAssignWith(%C)> [concrete] +// CHECK:STDOUT: %Inc.WithSelf.Op.type.445: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%Inc.facet) [concrete] +// CHECK:STDOUT: %AddAssignWith.type.2fb: type = generic_interface_type @AddAssignWith [concrete] +// CHECK:STDOUT: %AddAssignWith.generic: %AddAssignWith.type.2fb = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.type.cba: type = facet_type <@AddAssignWith, @AddAssignWith(%C)> [concrete] // CHECK:STDOUT: %AddAssignWith.impl_witness: = impl_witness @C.as.AddAssignWith.impl.%AddAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.AddAssignWith.impl.Op.type: type = fn_type @C.as.AddAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.AddAssignWith.impl.Op: %C.as.AddAssignWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.9ed = facet_value %C, (%AddAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.b93: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%C, %AddAssignWith.facet) [concrete] +// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.cba = facet_value %C, (%AddAssignWith.impl_witness) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.62f: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%C, %AddAssignWith.facet) [concrete] // CHECK:STDOUT: %TestIncNonRef.type: type = fn_type @TestIncNonRef [concrete] // CHECK:STDOUT: %TestIncNonRef: %TestIncNonRef.type = struct_value () [concrete] -// CHECK:STDOUT: %.6c9: type = fn_type_with_self_type %Inc.WithSelf.Op.type.500, %Inc.facet [concrete] +// CHECK:STDOUT: %.b87: type = fn_type_with_self_type %Inc.WithSelf.Op.type.445, %Inc.facet [concrete] // CHECK:STDOUT: %TestAddAssignNonRef.type: type = fn_type @TestAddAssignNonRef [concrete] // CHECK:STDOUT: %TestAddAssignNonRef: %TestAddAssignNonRef.type = struct_value () [concrete] -// CHECK:STDOUT: %.389: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.b93, %AddAssignWith.facet [concrete] +// CHECK:STDOUT: %.fbc: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.62f, %AddAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -83,7 +83,7 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Inc: type = import_ref Core//prelude/operators/arithmetic, Inc, loaded [concrete = constants.%Inc.type] -// CHECK:STDOUT: %Core.AddAssignWith: %AddAssignWith.type.b82 = import_ref Core//prelude/operators/arithmetic, AddAssignWith, loaded [concrete = constants.%AddAssignWith.generic] +// CHECK:STDOUT: %Core.AddAssignWith: %AddAssignWith.type.2fb = import_ref Core//prelude/operators/arithmetic, AddAssignWith, loaded [concrete = constants.%AddAssignWith.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -103,23 +103,23 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: impl_decl @C.as.AddAssignWith.impl [concrete] {} { // CHECK:STDOUT: %C.ref.loc22_6: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %AddAssignWith.ref: %AddAssignWith.type.b82 = name_ref AddAssignWith, imports.%Core.AddAssignWith [concrete = constants.%AddAssignWith.generic] +// CHECK:STDOUT: %AddAssignWith.ref: %AddAssignWith.type.2fb = name_ref AddAssignWith, imports.%Core.AddAssignWith [concrete = constants.%AddAssignWith.generic] // CHECK:STDOUT: %C.ref.loc22_30: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %AddAssignWith.type: type = facet_type <@AddAssignWith, @AddAssignWith(constants.%C)> [concrete = constants.%AddAssignWith.type.9ed] +// CHECK:STDOUT: %AddAssignWith.type: type = facet_type <@AddAssignWith, @AddAssignWith(constants.%C)> [concrete = constants.%AddAssignWith.type.cba] // CHECK:STDOUT: } // CHECK:STDOUT: %TestIncNonRef.decl: %TestIncNonRef.type = fn_decl @TestIncNonRef [concrete = constants.%TestIncNonRef] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.309 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.4a7 = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestAddAssignNonRef.decl: %TestAddAssignNonRef.type = fn_decl @TestAddAssignNonRef [concrete = constants.%TestAddAssignNonRef] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.309 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.309 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.4a7 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.4a7 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc37_27: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -132,8 +132,8 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.Inc.impl: %C.ref as %Inc.ref { // CHECK:STDOUT: %C.as.Inc.impl.Op.decl: %C.as.Inc.impl.Op.type = fn_decl @C.as.Inc.impl.Op [concrete = constants.%C.as.Inc.impl.Op] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.309 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.309 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.4a7 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.4a7 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -151,10 +151,10 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.AddAssignWith.impl: %C.ref.loc22_6 as %AddAssignWith.type { // CHECK:STDOUT: %C.as.AddAssignWith.impl.Op.decl: %C.as.AddAssignWith.impl.Op.type = fn_decl @C.as.AddAssignWith.impl.Op [concrete = constants.%C.as.AddAssignWith.impl.Op] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.309 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.309 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.309 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.4a7 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.4a7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.4a7 = at_binding_pattern other, %other.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %C = ref_param call_param0 // CHECK:STDOUT: %C.ref.loc23_19: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -188,7 +188,7 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: fn @TestIncNonRef(%a.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a -// CHECK:STDOUT: %impl.elem0: %.6c9 = impl_witness_access constants.%Inc.impl_witness, element0 [concrete = constants.%C.as.Inc.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.b87 = impl_witness_access constants.%Inc.impl_witness, element0 [concrete = constants.%C.as.Inc.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %C.as.Inc.impl.Op.call: init %empty_tuple.type = call %bound_method() // CHECK:STDOUT: return @@ -198,7 +198,7 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.389 = impl_witness_access constants.%AddAssignWith.impl_witness, element0 [concrete = constants.%C.as.AddAssignWith.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.fbc = impl_witness_access constants.%AddAssignWith.impl_witness, element0 [concrete = constants.%C.as.AddAssignWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %C.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method(, %b.ref) // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon b/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon index d44e58f52264..3113d6ebe57b 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon @@ -37,13 +37,13 @@ fn G(n: i32) { // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %AddWith.type.be4: type = generic_interface_type @AddWith [concrete] -// CHECK:STDOUT: %AddWith.generic: %AddWith.type.be4 = struct_value () [concrete] +// CHECK:STDOUT: %AddWith.type.2ef: type = generic_interface_type @AddWith [concrete] +// CHECK:STDOUT: %AddWith.generic: %AddWith.type.2ef = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -55,7 +55,7 @@ fn G(n: i32) { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.AddWith: %AddWith.type.be4 = import_ref Core//prelude/operators/arithmetic, AddWith, loaded [concrete = constants.%AddWith.generic] +// CHECK:STDOUT: %Core.AddWith: %AddWith.type.2ef = import_ref Core//prelude/operators/arithmetic, AddWith, loaded [concrete = constants.%AddWith.generic] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -69,8 +69,8 @@ fn G(n: i32) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon index 1691de99f215..5e3cd2f6d50a 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon @@ -52,26 +52,26 @@ fn TestRef(b: C) { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.309: type = pattern_type %C [concrete] -// CHECK:STDOUT: %.ffa: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %pattern_type.4a7: type = pattern_type %C [concrete] +// CHECK:STDOUT: %.79c: Core.Form = init_form %C [concrete] // CHECK:STDOUT: %TestUnary.type: type = fn_type @TestUnary [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %TestUnary: %TestUnary.type = struct_value () [concrete] // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] // CHECK:STDOUT: %TestBinary.type: type = fn_type @TestBinary [concrete] // CHECK:STDOUT: %TestBinary: %TestBinary.type = struct_value () [concrete] -// CHECK:STDOUT: %AddWith.type.be4: type = generic_interface_type @AddWith [concrete] -// CHECK:STDOUT: %AddWith.generic: %AddWith.type.be4 = struct_value () [concrete] +// CHECK:STDOUT: %AddWith.type.2ef: type = generic_interface_type @AddWith [concrete] +// CHECK:STDOUT: %AddWith.generic: %AddWith.type.2ef = struct_value () [concrete] // CHECK:STDOUT: %TestRef.type: type = fn_type @TestRef [concrete] // CHECK:STDOUT: %TestRef: %TestRef.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.type.b82: type = generic_interface_type @AddAssignWith [concrete] -// CHECK:STDOUT: %AddAssignWith.generic: %AddAssignWith.type.b82 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.type.2fb: type = generic_interface_type @AddAssignWith [concrete] +// 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.790b3b.2: type = fn_type @Destroy.Op.loc36_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -85,8 +85,8 @@ fn TestRef(b: C) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Negate: type = import_ref Core//prelude/operators/arithmetic, Negate, loaded [concrete = constants.%Negate.type] -// CHECK:STDOUT: %Core.AddWith: %AddWith.type.be4 = import_ref Core//prelude/operators/arithmetic, AddWith, loaded [concrete = constants.%AddWith.generic] -// CHECK:STDOUT: %Core.AddAssignWith: %AddAssignWith.type.b82 = import_ref Core//prelude/operators/arithmetic, AddAssignWith, loaded [concrete = constants.%AddAssignWith.generic] +// CHECK:STDOUT: %Core.AddWith: %AddWith.type.2ef = import_ref Core//prelude/operators/arithmetic, AddWith, loaded [concrete = constants.%AddWith.generic] +// CHECK:STDOUT: %Core.AddAssignWith: %AddAssignWith.type.2fb = import_ref Core//prelude/operators/arithmetic, AddAssignWith, loaded [concrete = constants.%AddAssignWith.generic] // CHECK:STDOUT: %Core.Inc: type = import_ref Core//prelude/operators/arithmetic, Inc, loaded [concrete = constants.%Inc.type] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } @@ -102,13 +102,13 @@ fn TestRef(b: C) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %TestUnary.decl: %TestUnary.type = fn_decl @TestUnary [concrete = constants.%TestUnary] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.309 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.309 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.309 = return_slot_pattern %return.param_patt, %C.ref.loc19_23 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.4a7 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.4a7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.4a7 = return_slot_pattern %return.param_patt, %C.ref.loc19_23 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc19_23: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc19: Core.Form = init_form %C.ref.loc19_23 [concrete = constants.%.ffa] +// CHECK:STDOUT: %.loc19: Core.Form = init_form %C.ref.loc19_23 [concrete = constants.%.79c] // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc19_17: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = value_binding a, %a.param @@ -116,15 +116,15 @@ fn TestRef(b: C) { // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestBinary.decl: %TestBinary.type = fn_decl @TestBinary [concrete = constants.%TestBinary] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.309 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.309 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.309 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.309 = return_slot_pattern %return.param_patt, %C.ref.loc27_30 [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.4a7 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.4a7 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.4a7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.4a7 = return_slot_pattern %return.param_patt, %C.ref.loc27_30 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc27_30: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc27: Core.Form = init_form %C.ref.loc27_30 [concrete = constants.%.ffa] +// CHECK:STDOUT: %.loc27: Core.Form = init_form %C.ref.loc27_30 [concrete = constants.%.79c] // CHECK:STDOUT: %a.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc27_18: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = value_binding a, %a.param @@ -135,8 +135,8 @@ fn TestRef(b: C) { // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestRef.decl: %TestRef.type = fn_decl @TestRef [concrete = constants.%TestRef] { -// CHECK:STDOUT: %b.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.309 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.4a7 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %b.param: %C = value_param call_param0 // CHECK:STDOUT: %C.ref.loc35: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -168,8 +168,8 @@ fn TestRef(b: C) { // CHECK:STDOUT: fn @TestRef(%b.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.309 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.309 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.4a7 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.4a7 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %C = var %a.var_patt // CHECK:STDOUT: %.loc36_15.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -181,7 +181,7 @@ 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.2dd605.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: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon index 0df383c3fe03..9ce785dfd7d0 100644 --- a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon +++ b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon @@ -47,39 +47,39 @@ fn Test() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %X.elem: type = unbound_element_type %X, %i32 [concrete] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [concrete] -// CHECK:STDOUT: %complete_type.edf: = complete_type_witness %struct_type.n [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %complete_type.cdf: = complete_type_witness %struct_type.n [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] -// CHECK:STDOUT: %ImplicitAs.type.f56: type = facet_type <@ImplicitAs, @ImplicitAs(%X)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.8d5: = impl_witness @i32.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete] -// CHECK:STDOUT: %.15f: Core.Form = init_form %X [concrete] -// CHECK:STDOUT: %pattern_type.7b3: type = pattern_type %X [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7cc: type = facet_type <@ImplicitAs, @ImplicitAs(%X)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.677: = impl_witness @i32.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete] +// CHECK:STDOUT: %.325: Core.Form = init_form %X [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %X [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: %ImplicitAs.facet.287: %ImplicitAs.type.f56 = facet_value %i32, (%ImplicitAs.impl_witness.8d5) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.d68: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%X, %ImplicitAs.facet.287) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.474: %ImplicitAs.type.7cc = facet_value %i32, (%ImplicitAs.impl_witness.677) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.9de: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%X, %ImplicitAs.facet.474) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] +// 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: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.488: = impl_witness @X.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete] +// CHECK:STDOUT: %Copy.impl_witness.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [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: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.90f: = impl_witness @X.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete] // CHECK:STDOUT: %X.as.ImplicitAs.impl.Convert.type: type = fn_type @X.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %X.as.ImplicitAs.impl.Convert: %X.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.2bd: %ImplicitAs.type.360 = facet_value %X, (%ImplicitAs.impl_witness.488) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f6e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.2bd) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.1cb: %ImplicitAs.type.914 = facet_value %X, (%ImplicitAs.impl_witness.90f) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6bb: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.1cb) [concrete] // CHECK:STDOUT: %Sink_i32.type: type = fn_type @Sink_i32 [concrete] // CHECK:STDOUT: %Sink_i32: %Sink_i32.type = struct_value () [concrete] // CHECK:STDOUT: %Sink_X.type: type = fn_type @Sink_X [concrete] @@ -91,16 +91,16 @@ fn Test() { // CHECK:STDOUT: %Source.type: type = fn_type @Source [concrete] // CHECK:STDOUT: %Source: %Source.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T.67d [symbolic] -// CHECK:STDOUT: %Source.specific_fn.cc0: = specific_function %Source, @Source(%T.67d) [symbolic] +// CHECK:STDOUT: %Source.specific_fn.104: = specific_function %Source, @Source(%T.67d) [symbolic] // CHECK:STDOUT: %Test.type: type = fn_type @Test [concrete] // CHECK:STDOUT: %Test: %Test.type = struct_value () [concrete] -// CHECK:STDOUT: %Source.specific_fn.b43: = specific_function %Source, @Source(%X) [concrete] -// CHECK:STDOUT: %.fbb: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.f6e, %ImplicitAs.facet.2bd [concrete] -// CHECK:STDOUT: %Source.specific_fn.1aa: = specific_function %Source, @Source(%i32) [concrete] -// CHECK:STDOUT: %.4f5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.d68, %ImplicitAs.facet.287 [concrete] +// CHECK:STDOUT: %Source.specific_fn.ca6: = specific_function %Source, @Source(%X) [concrete] +// CHECK:STDOUT: %.094: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6bb, %ImplicitAs.facet.1cb [concrete] +// CHECK:STDOUT: %Source.specific_fn.75e: = specific_function %Source, @Source(%i32) [concrete] +// CHECK:STDOUT: %.015: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.9de, %ImplicitAs.facet.474 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc35_20.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.4: type = fn_type @Destroy.Op.loc35_20.4 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.4: %Destroy.Op.type.1d8f74.4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -113,10 +113,10 @@ fn Test() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -134,28 +134,28 @@ fn Test() { // CHECK:STDOUT: impl_decl @i32.as.ImplicitAs.impl [concrete] {} { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%X)> [concrete = constants.%ImplicitAs.type.f56] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%X)> [concrete = constants.%ImplicitAs.type.7cc] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @X.as.ImplicitAs.impl [concrete] {} { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%i32)> [concrete = constants.%ImplicitAs.type.360] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%i32)> [concrete = constants.%ImplicitAs.type.914] // CHECK:STDOUT: } // CHECK:STDOUT: %Sink_i32.decl: %Sink_i32.type = fn_decl @Sink_i32 [concrete = constants.%Sink_i32] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param // CHECK:STDOUT: } // CHECK:STDOUT: %Sink_X.decl: %Sink_X.type = fn_decl @Sink_X [concrete = constants.%Sink_X] { -// CHECK:STDOUT: %x.param_patt: %pattern_type.7b3 = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: %pattern_type.7b3 = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: %pattern_type.6cb = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6cb = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %X = value_param call_param0 // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] @@ -181,13 +181,13 @@ fn Test() { // CHECK:STDOUT: // CHECK:STDOUT: impl @i32.as.ImplicitAs.impl: %i32 as %ImplicitAs.type { // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.decl: %i32.as.ImplicitAs.impl.Convert.type = fn_decl @i32.as.ImplicitAs.impl.Convert [concrete = constants.%i32.as.ImplicitAs.impl.Convert] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.104 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7b3 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7b3 = return_slot_pattern %return.param_patt, %X.ref [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.6b6 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6cb = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6cb = return_slot_pattern %return.param_patt, %X.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc20_30: Core.Form = init_form %X.ref [concrete = constants.%.15f] +// CHECK:STDOUT: %.loc20_30: Core.Form = init_form %X.ref [concrete = constants.%.325] // CHECK:STDOUT: %self.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %self: %i32 = value_binding self, %self.param @@ -195,7 +195,7 @@ fn Test() { // CHECK:STDOUT: %return: ref %X = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%i32.as.ImplicitAs.impl.Convert.decl), @i32.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.8d5] +// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.677] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .X = @@ -206,13 +206,13 @@ fn Test() { // CHECK:STDOUT: // CHECK:STDOUT: impl @X.as.ImplicitAs.impl: %X.ref as %ImplicitAs.type { // CHECK:STDOUT: %X.as.ImplicitAs.impl.Convert.decl: %X.as.ImplicitAs.impl.Convert.type = fn_decl @X.as.ImplicitAs.impl.Convert [concrete = constants.%X.as.ImplicitAs.impl.Convert] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.7b3 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.7b3 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.6cb = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.6cb = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc24_28: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc24_28: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %self.param: %X = value_param call_param0 // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %self: %X = value_binding self, %self.param @@ -220,7 +220,7 @@ fn Test() { // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%X.as.ImplicitAs.impl.Convert.decl), @X.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.488] +// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.90f] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .X = @@ -231,7 +231,7 @@ fn Test() { // CHECK:STDOUT: // CHECK:STDOUT: class @X { // CHECK:STDOUT: %.loc16: %X.elem = field_decl n, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.edf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.cdf] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -243,7 +243,7 @@ fn Test() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: %i32 = name_ref self, %self // CHECK:STDOUT: %.loc20_51.1: %struct_type.n = struct_literal (%self.ref) -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc20_47.1: = bound_method %self.ref, %impl.elem0 // 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.loc20_47.2: = bound_method %self.ref, %specific_fn @@ -261,7 +261,7 @@ fn Test() { // CHECK:STDOUT: %n.ref: %X.elem = name_ref n, @X.%.loc16 [concrete = @X.%.loc16] // CHECK:STDOUT: %.loc24_45.1: ref %i32 = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc24_45.2: %i32 = acquire_value %.loc24_45.1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc24_45.1: = bound_method %.loc24_45.2, %impl.elem0 // 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.loc24_45.2: = bound_method %.loc24_45.2, %specific_fn @@ -280,13 +280,13 @@ fn Test() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %T.loc31_12.1 [symbolic = %require_complete (constants.%require_complete.944)] -// CHECK:STDOUT: %Source.specific_fn.loc31_35.2: = specific_function constants.%Source, @Source(%T.loc31_12.1) [symbolic = %Source.specific_fn.loc31_35.2 (constants.%Source.specific_fn.cc0)] +// CHECK:STDOUT: %Source.specific_fn.loc31_35.2: = specific_function constants.%Source, @Source(%T.loc31_12.1) [symbolic = %Source.specific_fn.loc31_35.2 (constants.%Source.specific_fn.104)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: @Source.%T.loc31_12.1 (%T.67d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Source.ref: %Source.type = name_ref Source, file.%Source.decl [concrete = constants.%Source] // CHECK:STDOUT: %T.ref.loc31_42: type = name_ref T, %T.loc31_12.2 [symbolic = %T.loc31_12.1 (constants.%T.67d)] -// CHECK:STDOUT: %Source.specific_fn.loc31_35.1: = specific_function %Source.ref, @Source(constants.%T.67d) [symbolic = %Source.specific_fn.loc31_35.2 (constants.%Source.specific_fn.cc0)] +// CHECK:STDOUT: %Source.specific_fn.loc31_35.1: = specific_function %Source.ref, @Source(constants.%T.67d) [symbolic = %Source.specific_fn.loc31_35.2 (constants.%Source.specific_fn.104)] // CHECK:STDOUT: %.loc31_24.1: ref @Source.%T.loc31_12.1 (%T.67d) = splice_block %return.param {} // CHECK:STDOUT: %Source.call: init @Source.%T.loc31_12.1 (%T.67d) to %.loc31_24.1 = call %Source.specific_fn.loc31_35.1() // CHECK:STDOUT: return %Source.call to %return.param @@ -298,10 +298,10 @@ fn Test() { // CHECK:STDOUT: %Sink_i32.ref: %Sink_i32.type = name_ref Sink_i32, file.%Sink_i32.decl [concrete = constants.%Sink_i32] // CHECK:STDOUT: %Source.ref.loc34: %Source.type = name_ref Source, file.%Source.decl [concrete = constants.%Source] // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %Source.specific_fn.loc34: = specific_function %Source.ref.loc34, @Source(constants.%X) [concrete = constants.%Source.specific_fn.b43] +// CHECK:STDOUT: %Source.specific_fn.loc34: = specific_function %Source.ref.loc34, @Source(constants.%X) [concrete = constants.%Source.specific_fn.ca6] // CHECK:STDOUT: %.loc34_20.1: ref %X = temporary_storage // CHECK:STDOUT: %Source.call.loc34: init %X to %.loc34_20.1 = call %Source.specific_fn.loc34() -// CHECK:STDOUT: %impl.elem0.loc34: %.fbb = impl_witness_access constants.%ImplicitAs.impl_witness.488, element0 [concrete = constants.%X.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc34: %.094 = impl_witness_access constants.%ImplicitAs.impl_witness.90f, element0 [concrete = constants.%X.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc34: = bound_method %Source.call.loc34, %impl.elem0.loc34 // CHECK:STDOUT: %.loc34_20.2: ref %X = temporary %.loc34_20.1, %Source.call.loc34 // CHECK:STDOUT: %.loc34_20.3: %X = acquire_value %.loc34_20.2 @@ -312,9 +312,9 @@ fn Test() { // 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] -// CHECK:STDOUT: %Source.specific_fn.loc35: = specific_function %Source.ref.loc35, @Source(constants.%i32) [concrete = constants.%Source.specific_fn.1aa] +// CHECK:STDOUT: %Source.specific_fn.loc35: = specific_function %Source.ref.loc35, @Source(constants.%i32) [concrete = constants.%Source.specific_fn.75e] // CHECK:STDOUT: %Source.call.loc35: init %i32 = call %Source.specific_fn.loc35() -// CHECK:STDOUT: %impl.elem0.loc35: %.4f5 = impl_witness_access constants.%ImplicitAs.impl_witness.8d5, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc35: %.015 = impl_witness_access constants.%ImplicitAs.impl_witness.677, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc35: = bound_method %Source.call.loc35, %impl.elem0.loc35 // CHECK:STDOUT: %.loc35_20.1: ref %X = temporary_storage // CHECK:STDOUT: %.loc35_20.2: %i32 = value_of_initializer %Source.call.loc35 @@ -324,9 +324,9 @@ 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.2dd605.4 +// 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.Op.bound.loc34: = bound_method %.loc34_20.2, constants.%Destroy.Op.2dd605.4 +// 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: return // CHECK:STDOUT: } @@ -355,26 +355,26 @@ fn Test() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.944 -// CHECK:STDOUT: %Source.specific_fn.loc31_35.2 => constants.%Source.specific_fn.cc0 +// CHECK:STDOUT: %Source.specific_fn.loc31_35.2 => constants.%Source.specific_fn.104 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Source(constants.%X) { // CHECK:STDOUT: %T.loc31_12.1 => constants.%X -// CHECK:STDOUT: %.loc31_24.2 => constants.%.15f -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7b3 +// CHECK:STDOUT: %.loc31_24.2 => constants.%.325 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6cb // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%complete_type.edf -// CHECK:STDOUT: %Source.specific_fn.loc31_35.2 => constants.%Source.specific_fn.b43 +// CHECK:STDOUT: %require_complete => constants.%complete_type.cdf +// CHECK:STDOUT: %Source.specific_fn.loc31_35.2 => constants.%Source.specific_fn.ca6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Source(constants.%i32) { // CHECK:STDOUT: %T.loc31_12.1 => constants.%i32 -// CHECK:STDOUT: %.loc31_24.2 => constants.%.7ea -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.104 +// CHECK:STDOUT: %.loc31_24.2 => constants.%.795 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6b6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a -// CHECK:STDOUT: %Source.specific_fn.loc31_35.2 => constants.%Source.specific_fn.1aa +// CHECK:STDOUT: %Source.specific_fn.loc31_35.2 => constants.%Source.specific_fn.75e // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/inc.carbon b/toolchain/check/testdata/operators/overloaded/inc.carbon index a4f9a3791783..079110e8e7aa 100644 --- a/toolchain/check/testdata/operators/overloaded/inc.carbon +++ b/toolchain/check/testdata/operators/overloaded/inc.carbon @@ -39,15 +39,15 @@ fn TestOp() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C.as.Inc.impl.Op: %C.as.Inc.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %C, (%Inc.impl_witness) [concrete] -// CHECK:STDOUT: %Inc.WithSelf.Op.type.500: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%Inc.facet) [concrete] -// CHECK:STDOUT: %.6c9: type = fn_type_with_self_type %Inc.WithSelf.Op.type.500, %Inc.facet [concrete] +// CHECK:STDOUT: %Inc.WithSelf.Op.type.445: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%Inc.facet) [concrete] +// CHECK:STDOUT: %.b87: type = fn_type_with_self_type %Inc.WithSelf.Op.type.445, %Inc.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestOp() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: %c.ref: ref %C = name_ref c, %c -// CHECK:STDOUT: %impl.elem0: %.6c9 = impl_witness_access constants.%Inc.impl_witness, element0 [concrete = constants.%C.as.Inc.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.b87 = impl_witness_access constants.%Inc.impl_witness, element0 [concrete = constants.%C.as.Inc.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %C.as.Inc.impl.Op.call: init %empty_tuple.type = call %bound_method(%c.ref) // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/index.carbon b/toolchain/check/testdata/operators/overloaded/index.carbon index 5b394ec3ea0a..082c3cca2c8c 100644 --- a/toolchain/check/testdata/operators/overloaded/index.carbon +++ b/toolchain/check/testdata/operators/overloaded/index.carbon @@ -119,7 +119,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.IndexWith: type = import_ref Core//core_wrong_index_with, IndexWith, loaded [concrete = constants.%IndexWith] // CHECK:STDOUT: %Core.import_ref.8f2: = import_ref Core//core_wrong_index_with, loc{{\d+_\d+}}, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Core.import_ref.3dd = import_ref Core//core_wrong_index_with, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.f02 = import_ref Core//core_wrong_index_with, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -135,7 +135,7 @@ fn F() { // CHECK:STDOUT: complete_type_witness = imports.%Core.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Core.import_ref.3dd +// CHECK:STDOUT: .Self = imports.%Core.import_ref.f02 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -186,12 +186,12 @@ fn F() { // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %SubscriptType: type = symbolic_binding SubscriptType, 0 [symbolic] // CHECK:STDOUT: %ElementType: type = symbolic_binding ElementType, 1 [symbolic] -// CHECK:STDOUT: %IndexWith.type.579: type = generic_interface_type @IndexWith [concrete] -// CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.579 = struct_value () [concrete] -// CHECK:STDOUT: %IndexWith.type.4f8: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic] -// CHECK:STDOUT: %Self: %IndexWith.type.4f8 = symbolic_binding Self, 2 [symbolic] +// CHECK:STDOUT: %IndexWith.type.df6: type = generic_interface_type @IndexWith [concrete] +// CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.df6 = struct_value () [concrete] +// CHECK:STDOUT: %IndexWith.type.a54: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic] +// CHECK:STDOUT: %Self: %IndexWith.type.a54 = symbolic_binding Self, 2 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.077: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.962: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %SubscriptType [symbolic] // CHECK:STDOUT: %.822: Core.Form = init_form %ElementType [symbolic] // CHECK:STDOUT: %pattern_type.946: type = pattern_type %ElementType [symbolic] @@ -205,7 +205,7 @@ fn F() { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .IndexWith = %IndexWith.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %IndexWith.decl: %IndexWith.type.579 = interface_decl @IndexWith [concrete = constants.%IndexWith.generic] { +// CHECK:STDOUT: %IndexWith.decl: %IndexWith.type.df6 = interface_decl @IndexWith [concrete = constants.%IndexWith.generic] { // CHECK:STDOUT: %SubscriptType.patt: %pattern_type.98f = symbolic_binding_pattern SubscriptType, 0 [concrete] // CHECK:STDOUT: %ElementType.patt: %pattern_type.98f = symbolic_binding_pattern ElementType, 1 [concrete] // CHECK:STDOUT: } { @@ -227,17 +227,17 @@ fn F() { // CHECK:STDOUT: %ElementType.loc4_54.1: type = symbolic_binding ElementType, 1 [symbolic = %ElementType.loc4_54.1 (constants.%ElementType)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.loc4_34.1, %ElementType.loc4_54.1)> [symbolic = %IndexWith.type (constants.%IndexWith.type.4f8)] -// CHECK:STDOUT: %Self.loc4_63.2: @IndexWith.%IndexWith.type (%IndexWith.type.4f8) = symbolic_binding Self, 2 [symbolic = %Self.loc4_63.2 (constants.%Self)] +// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.loc4_34.1, %ElementType.loc4_54.1)> [symbolic = %IndexWith.type (constants.%IndexWith.type.a54)] +// CHECK:STDOUT: %Self.loc4_63.2: @IndexWith.%IndexWith.type (%IndexWith.type.a54) = symbolic_binding Self, 2 [symbolic = %Self.loc4_63.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc4_63.1: @IndexWith.%IndexWith.type (%IndexWith.type.4f8) = symbolic_binding Self, 2 [symbolic = %Self.loc4_63.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc4_63.1: @IndexWith.%IndexWith.type (%IndexWith.type.a54) = symbolic_binding Self, 2 [symbolic = %Self.loc4_63.2 (constants.%Self)] // CHECK:STDOUT: %IndexWith.WithSelf.decl = interface_with_self_decl @IndexWith [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %IndexWith.WithSelf.At.decl: @IndexWith.WithSelf.%IndexWith.WithSelf.At.type (%IndexWith.WithSelf.At.type) = fn_decl @IndexWith.WithSelf.At [symbolic = @IndexWith.WithSelf.%IndexWith.WithSelf.At (constants.%IndexWith.WithSelf.At)] { -// CHECK:STDOUT: %self.param_patt: @IndexWith.WithSelf.At.%pattern_type.loc5_13 (%pattern_type.077) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @IndexWith.WithSelf.At.%pattern_type.loc5_13 (%pattern_type.077) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @IndexWith.WithSelf.At.%pattern_type.loc5_13 (%pattern_type.962) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @IndexWith.WithSelf.At.%pattern_type.loc5_13 (%pattern_type.962) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %subscript.param_patt: @IndexWith.WithSelf.At.%pattern_type.loc5_30 (%pattern_type.51d) = value_param_pattern [concrete] // CHECK:STDOUT: %subscript.patt: @IndexWith.WithSelf.At.%pattern_type.loc5_30 (%pattern_type.51d) = at_binding_pattern subscript, %subscript.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @IndexWith.WithSelf.At.%pattern_type.loc5_50 (%pattern_type.946) = out_param_pattern [concrete] @@ -247,8 +247,8 @@ fn F() { // CHECK:STDOUT: %.loc5_50.2: Core.Form = init_form %ElementType.ref [symbolic = %.loc5_50.1 (constants.%.822)] // CHECK:STDOUT: %self.param: @IndexWith.WithSelf.At.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.3 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %.loc5_15.2: @IndexWith.WithSelf.At.%IndexWith.type (%IndexWith.type.4f8) = specific_constant @IndexWith.%Self.loc4_63.1, @IndexWith(constants.%SubscriptType, constants.%ElementType) [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.ref: @IndexWith.WithSelf.At.%IndexWith.type (%IndexWith.type.4f8) = name_ref Self, %.loc5_15.2 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %.loc5_15.2: @IndexWith.WithSelf.At.%IndexWith.type (%IndexWith.type.a54) = specific_constant @IndexWith.%Self.loc4_63.1, @IndexWith(constants.%SubscriptType, constants.%ElementType) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref: @IndexWith.WithSelf.At.%IndexWith.type (%IndexWith.type.a54) = name_ref Self, %.loc5_15.2 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc5_15.3: type = converted %Self.ref, %Self.as_type.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: } @@ -274,13 +274,13 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @IndexWith.WithSelf.At(@IndexWith.%SubscriptType.loc4_34.2: type, @IndexWith.%ElementType.loc4_54.2: type, @IndexWith.%Self.loc4_63.1: @IndexWith.%IndexWith.type (%IndexWith.type.4f8)) { +// CHECK:STDOUT: generic fn @IndexWith.WithSelf.At(@IndexWith.%SubscriptType.loc4_34.2: type, @IndexWith.%ElementType.loc4_54.2: type, @IndexWith.%Self.loc4_63.1: @IndexWith.%IndexWith.type (%IndexWith.type.a54)) { // CHECK:STDOUT: %SubscriptType: type = symbolic_binding SubscriptType, 0 [symbolic = %SubscriptType (constants.%SubscriptType)] // CHECK:STDOUT: %ElementType: type = symbolic_binding ElementType, 1 [symbolic = %ElementType (constants.%ElementType)] -// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic = %IndexWith.type (constants.%IndexWith.type.4f8)] -// CHECK:STDOUT: %Self: @IndexWith.WithSelf.At.%IndexWith.type (%IndexWith.type.4f8) = symbolic_binding Self, 2 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic = %IndexWith.type (constants.%IndexWith.type.a54)] +// CHECK:STDOUT: %Self: @IndexWith.WithSelf.At.%IndexWith.type (%IndexWith.type.a54) = symbolic_binding Self, 2 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.loc5_13: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type.loc5_13 (constants.%pattern_type.077)] +// CHECK:STDOUT: %pattern_type.loc5_13: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type.loc5_13 (constants.%pattern_type.962)] // CHECK:STDOUT: %pattern_type.loc5_30: type = pattern_type %SubscriptType [symbolic = %pattern_type.loc5_30 (constants.%pattern_type.51d)] // CHECK:STDOUT: %.loc5_50.1: Core.Form = init_form %ElementType [symbolic = %.loc5_50.1 (constants.%.822)] // CHECK:STDOUT: %pattern_type.loc5_50: type = pattern_type %ElementType [symbolic = %pattern_type.loc5_50 (constants.%pattern_type.946)] @@ -298,10 +298,10 @@ fn F() { // CHECK:STDOUT: specific @IndexWith.WithSelf.At(constants.%SubscriptType, constants.%ElementType, constants.%Self) { // CHECK:STDOUT: %SubscriptType => constants.%SubscriptType // CHECK:STDOUT: %ElementType => constants.%ElementType -// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.4f8 +// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.a54 // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.loc5_13 => constants.%pattern_type.077 +// CHECK:STDOUT: %pattern_type.loc5_13 => constants.%pattern_type.962 // CHECK:STDOUT: %pattern_type.loc5_30 => constants.%pattern_type.51d // CHECK:STDOUT: %.loc5_50.1 => constants.%.822 // CHECK:STDOUT: %pattern_type.loc5_50 => constants.%pattern_type.946 @@ -313,45 +313,45 @@ fn F() { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %IndexWith.type.579: type = generic_interface_type @IndexWith [concrete] +// CHECK:STDOUT: %IndexWith.type.df6: type = generic_interface_type @IndexWith [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.579 = struct_value () [concrete] +// CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.df6 = struct_value () [concrete] // CHECK:STDOUT: %ElementType: type = symbolic_binding ElementType, 1 [symbolic] // CHECK:STDOUT: %SubscriptType: type = symbolic_binding SubscriptType, 0 [symbolic] -// CHECK:STDOUT: %IndexWith.type.4f8: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic] -// CHECK:STDOUT: %Self.7d0: %IndexWith.type.4f8 = symbolic_binding Self, 2 [symbolic] -// CHECK:STDOUT: %IndexWith.WithSelf.At.type.c8c: type = fn_type @IndexWith.WithSelf.At, @IndexWith.WithSelf(%SubscriptType, %ElementType, %Self.7d0) [symbolic] -// CHECK:STDOUT: %IndexWith.WithSelf.At.dda: %IndexWith.WithSelf.At.type.c8c = struct_value () [symbolic] +// CHECK:STDOUT: %IndexWith.type.a54: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic] +// CHECK:STDOUT: %Self.799: %IndexWith.type.a54 = symbolic_binding Self, 2 [symbolic] +// CHECK:STDOUT: %IndexWith.WithSelf.At.type.404: type = fn_type @IndexWith.WithSelf.At, @IndexWith.WithSelf(%SubscriptType, %ElementType, %Self.799) [symbolic] +// CHECK:STDOUT: %IndexWith.WithSelf.At.310: %IndexWith.WithSelf.At.type.404 = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.946: type = pattern_type %ElementType [symbolic] -// CHECK:STDOUT: %Self.as_type.930: type = facet_access_type %Self.7d0 [symbolic] -// CHECK:STDOUT: %pattern_type.ca0: type = pattern_type %Self.as_type.930 [symbolic] +// CHECK:STDOUT: %Self.as_type.194: type = facet_access_type %Self.799 [symbolic] +// CHECK:STDOUT: %pattern_type.f87: type = pattern_type %Self.as_type.194 [symbolic] // CHECK:STDOUT: %.822: Core.Form = init_form %ElementType [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %SubscriptType [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %IndexWith.type.9bb: type = facet_type <@IndexWith, @IndexWith(%empty_tuple.type, %empty_tuple.type)> [concrete] +// CHECK:STDOUT: %IndexWith.type.de8: type = facet_type <@IndexWith, @IndexWith(%empty_tuple.type, %empty_tuple.type)> [concrete] // CHECK:STDOUT: %IndexWith.impl_witness: = impl_witness @C.as.IndexWith.impl.%IndexWith.impl_witness_table [concrete] -// CHECK:STDOUT: %Self.1fd: %IndexWith.type.9bb = symbolic_binding Self, 2 [symbolic] -// CHECK:STDOUT: %IndexWith.WithSelf.At.type.9fc: type = fn_type @IndexWith.WithSelf.At, @IndexWith.WithSelf(%empty_tuple.type, %empty_tuple.type, %Self.7d0) [symbolic] -// CHECK:STDOUT: %IndexWith.WithSelf.At.a6a: %IndexWith.WithSelf.At.type.9fc = struct_value () [symbolic] -// CHECK:STDOUT: %IndexWith.assoc_type.f75: type = assoc_entity_type @IndexWith, @IndexWith(%empty_tuple.type, %empty_tuple.type) [concrete] -// CHECK:STDOUT: %assoc0.961: %IndexWith.assoc_type.f75 = assoc_entity element0, imports.%Core.import_ref.a74 [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %Self.121: %IndexWith.type.de8 = symbolic_binding Self, 2 [symbolic] +// CHECK:STDOUT: %IndexWith.WithSelf.At.type.d39: type = fn_type @IndexWith.WithSelf.At, @IndexWith.WithSelf(%empty_tuple.type, %empty_tuple.type, %Self.799) [symbolic] +// CHECK:STDOUT: %IndexWith.WithSelf.At.dd0: %IndexWith.WithSelf.At.type.d39 = struct_value () [symbolic] +// CHECK:STDOUT: %IndexWith.assoc_type.e52: type = assoc_entity_type @IndexWith, @IndexWith(%empty_tuple.type, %empty_tuple.type) [concrete] +// CHECK:STDOUT: %assoc0.a9a: %IndexWith.assoc_type.e52 = assoc_entity element0, imports.%Core.import_ref.dac [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete] // CHECK:STDOUT: %C.as.IndexWith.impl.At.type: type = fn_type @C.as.IndexWith.impl.At [concrete] // CHECK:STDOUT: %C.as.IndexWith.impl.At: %C.as.IndexWith.impl.At.type = struct_value () [concrete] -// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.9bb = facet_value %C, (%IndexWith.impl_witness) [concrete] -// CHECK:STDOUT: %IndexWith.WithSelf.At.type.291: type = fn_type @IndexWith.WithSelf.At, @IndexWith.WithSelf(%empty_tuple.type, %empty_tuple.type, %IndexWith.facet) [concrete] -// CHECK:STDOUT: %IndexWith.WithSelf.At.6b1: %IndexWith.WithSelf.At.type.291 = struct_value () [concrete] +// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.de8 = facet_value %C, (%IndexWith.impl_witness) [concrete] +// CHECK:STDOUT: %IndexWith.WithSelf.At.type.9d6: type = fn_type @IndexWith.WithSelf.At, @IndexWith.WithSelf(%empty_tuple.type, %empty_tuple.type, %IndexWith.facet) [concrete] +// CHECK:STDOUT: %IndexWith.WithSelf.At.a95: %IndexWith.WithSelf.At.type.9d6 = struct_value () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %.7a6: ref %C = temporary invalid, %C.val [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.790b3b.2: type = fn_type @Destroy.Op.loc15_15.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.7a6, %Destroy.Op.2dd605.2 [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -362,14 +362,14 @@ fn F() { // CHECK:STDOUT: import Core//core_wrong_arg_count // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.IndexWith: %IndexWith.type.579 = import_ref Core//core_wrong_arg_count, IndexWith, loaded [concrete = constants.%IndexWith.generic] -// CHECK:STDOUT: %Core.import_ref.22a = import_ref Core//core_wrong_arg_count, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.At: @IndexWith.WithSelf.%IndexWith.WithSelf.At.type (%IndexWith.WithSelf.At.type.c8c) = import_ref Core//core_wrong_arg_count, At, loaded [symbolic = @IndexWith.WithSelf.%IndexWith.WithSelf.At (constants.%IndexWith.WithSelf.At.dda)] -// CHECK:STDOUT: %Core.import_ref.a74 = import_ref Core//core_wrong_arg_count, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.IndexWith: %IndexWith.type.df6 = import_ref Core//core_wrong_arg_count, IndexWith, loaded [concrete = constants.%IndexWith.generic] +// CHECK:STDOUT: %Core.import_ref.f9c = import_ref Core//core_wrong_arg_count, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.At: @IndexWith.WithSelf.%IndexWith.WithSelf.At.type (%IndexWith.WithSelf.At.type.404) = import_ref Core//core_wrong_arg_count, At, loaded [symbolic = @IndexWith.WithSelf.%IndexWith.WithSelf.At (constants.%IndexWith.WithSelf.At.310)] +// CHECK:STDOUT: %Core.import_ref.dac = import_ref Core//core_wrong_arg_count, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.b3bc94.2: type = import_ref Core//core_wrong_arg_count, loc{{\d+_\d+}}, loaded [symbolic = @IndexWith.%SubscriptType (constants.%SubscriptType)] // CHECK:STDOUT: %Core.import_ref.8e8b42.2: type = import_ref Core//core_wrong_arg_count, loc{{\d+_\d+}}, loaded [symbolic = @IndexWith.%ElementType (constants.%ElementType)] -// CHECK:STDOUT: %Core.import_ref.6de3e4.2: @IndexWith.%IndexWith.type (%IndexWith.type.4f8) = import_ref Core//core_wrong_arg_count, loc{{\d+_\d+}}, loaded [symbolic = @IndexWith.%Self (constants.%Self.7d0)] -// CHECK:STDOUT: %Core.import_ref.08e = import_ref Core//core_wrong_arg_count, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.0407af.2: @IndexWith.%IndexWith.type (%IndexWith.type.a54) = import_ref Core//core_wrong_arg_count, loc{{\d+_\d+}}, loaded [symbolic = @IndexWith.%Self (constants.%Self.799)] +// CHECK:STDOUT: %Core.import_ref.740 = import_ref Core//core_wrong_arg_count, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.b3bc94.3: type = import_ref Core//core_wrong_arg_count, loc{{\d+_\d+}}, loaded [symbolic = @IndexWith.%SubscriptType (constants.%SubscriptType)] // CHECK:STDOUT: %Core.import_ref.8e8b42.3: type = import_ref Core//core_wrong_arg_count, loc{{\d+_\d+}}, loaded [symbolic = @IndexWith.%ElementType (constants.%ElementType)] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] @@ -386,12 +386,12 @@ fn F() { // CHECK:STDOUT: impl_decl @C.as.IndexWith.impl [concrete] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %IndexWith.ref: %IndexWith.type.579 = name_ref IndexWith, imports.%Core.IndexWith [concrete = constants.%IndexWith.generic] +// CHECK:STDOUT: %IndexWith.ref: %IndexWith.type.df6 = name_ref IndexWith, imports.%Core.IndexWith [concrete = constants.%IndexWith.generic] // CHECK:STDOUT: %.loc8_27: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_31: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_32.1: type = converted %.loc8_27, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc8_32.2: type = converted %.loc8_31, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(constants.%empty_tuple.type, constants.%empty_tuple.type)> [concrete = constants.%IndexWith.type.9bb] +// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(constants.%empty_tuple.type, constants.%empty_tuple.type)> [concrete = constants.%IndexWith.type.de8] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } @@ -401,13 +401,13 @@ fn F() { // CHECK:STDOUT: %ElementType: type = symbolic_binding ElementType, 1 [symbolic = %ElementType (constants.%ElementType)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic = %IndexWith.type (constants.%IndexWith.type.4f8)] -// CHECK:STDOUT: %Self: @IndexWith.%IndexWith.type (%IndexWith.type.4f8) = symbolic_binding Self, 2 [symbolic = %Self (constants.%Self.7d0)] +// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic = %IndexWith.type (constants.%IndexWith.type.a54)] +// CHECK:STDOUT: %Self: @IndexWith.%IndexWith.type (%IndexWith.type.a54) = symbolic_binding Self, 2 [symbolic = %Self (constants.%Self.799)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Core.import_ref.08e -// CHECK:STDOUT: .At = imports.%Core.import_ref.22a +// CHECK:STDOUT: .Self = imports.%Core.import_ref.740 +// CHECK:STDOUT: .At = imports.%Core.import_ref.f9c // CHECK:STDOUT: witness = (imports.%Core.At) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -416,8 +416,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.IndexWith.impl: %C.ref as %IndexWith.type { // CHECK:STDOUT: %C.as.IndexWith.impl.At.decl: %C.as.IndexWith.impl.At.type = fn_decl @C.as.IndexWith.impl.At [concrete = constants.%C.as.IndexWith.impl.At] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.0d5 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %subscript.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] // CHECK:STDOUT: %subscript.patt: %pattern_type.cb1 = at_binding_pattern subscript, %subscript.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] @@ -455,13 +455,13 @@ fn F() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @IndexWith.WithSelf.At(imports.%Core.import_ref.b3bc94.2: type, imports.%Core.import_ref.8e8b42.2: type, imports.%Core.import_ref.6de3e4.2: @IndexWith.%IndexWith.type (%IndexWith.type.4f8)) [from "core_wrong_arg_count.carbon"] { +// CHECK:STDOUT: generic fn @IndexWith.WithSelf.At(imports.%Core.import_ref.b3bc94.2: type, imports.%Core.import_ref.8e8b42.2: type, imports.%Core.import_ref.0407af.2: @IndexWith.%IndexWith.type (%IndexWith.type.a54)) [from "core_wrong_arg_count.carbon"] { // CHECK:STDOUT: %SubscriptType: type = symbolic_binding SubscriptType, 0 [symbolic = %SubscriptType (constants.%SubscriptType)] // CHECK:STDOUT: %ElementType: type = symbolic_binding ElementType, 1 [symbolic = %ElementType (constants.%ElementType)] -// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic = %IndexWith.type (constants.%IndexWith.type.4f8)] -// CHECK:STDOUT: %Self: @IndexWith.WithSelf.At.%IndexWith.type (%IndexWith.type.4f8) = symbolic_binding Self, 2 [symbolic = %Self (constants.%Self.7d0)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.930)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.ca0)] +// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic = %IndexWith.type (constants.%IndexWith.type.a54)] +// CHECK:STDOUT: %Self: @IndexWith.WithSelf.At.%IndexWith.type (%IndexWith.type.a54) = symbolic_binding Self, 2 [symbolic = %Self (constants.%Self.799)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.194)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.f87)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %SubscriptType [symbolic = %pattern_type.2 (constants.%pattern_type.51d)] // CHECK:STDOUT: %.1: Core.Form = init_form %ElementType [symbolic = %.1 (constants.%.822)] // CHECK:STDOUT: %pattern_type.3: type = pattern_type %ElementType [symbolic = %pattern_type.3 (constants.%pattern_type.946)] @@ -480,19 +480,19 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc15_15.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc15_15.2: ref %C = temporary_storage // CHECK:STDOUT: %.loc15_15.3: init %C to %.loc15_15.2 = class_init () [concrete = constants.%C.val] // CHECK:STDOUT: %.loc15_15.4: init %C = converted %.loc15_15.1, %.loc15_15.3 [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc15_15.5: ref %C = temporary %.loc15_15.2, %.loc15_15.4 [concrete = constants.%.7a6] +// CHECK:STDOUT: %.loc15_15.5: ref %C = temporary %.loc15_15.2, %.loc15_15.4 [concrete = constants.%.115] // CHECK:STDOUT: %.loc15_15.6: %C = acquire_value %.loc15_15.5 [concrete = constants.%C.val] // CHECK:STDOUT: %c: %C = value_binding c, %.loc15_15.6 // 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.%.7a6) +// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.115) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -508,15 +508,15 @@ fn F() { // CHECK:STDOUT: %ElementType => constants.%ElementType // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @IndexWith.WithSelf(constants.%SubscriptType, constants.%ElementType, constants.%Self.7d0) {} +// CHECK:STDOUT: specific @IndexWith.WithSelf(constants.%SubscriptType, constants.%ElementType, constants.%Self.799) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @IndexWith.WithSelf.At(constants.%SubscriptType, constants.%ElementType, constants.%Self.7d0) { +// CHECK:STDOUT: specific @IndexWith.WithSelf.At(constants.%SubscriptType, constants.%ElementType, constants.%Self.799) { // CHECK:STDOUT: %SubscriptType => constants.%SubscriptType // CHECK:STDOUT: %ElementType => constants.%ElementType -// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.4f8 -// CHECK:STDOUT: %Self => constants.%Self.7d0 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.930 -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.ca0 +// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.a54 +// CHECK:STDOUT: %Self => constants.%Self.799 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.194 +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.f87 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d // CHECK:STDOUT: %.1 => constants.%.822 // CHECK:STDOUT: %pattern_type.3 => constants.%pattern_type.946 @@ -527,41 +527,41 @@ fn F() { // CHECK:STDOUT: %ElementType => constants.%empty_tuple.type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.9bb -// CHECK:STDOUT: %Self => constants.%Self.1fd +// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.de8 +// CHECK:STDOUT: %Self => constants.%Self.121 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @IndexWith.WithSelf(constants.%empty_tuple.type, constants.%empty_tuple.type, constants.%Self.7d0) { +// CHECK:STDOUT: specific @IndexWith.WithSelf(constants.%empty_tuple.type, constants.%empty_tuple.type, constants.%Self.799) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %SubscriptType => constants.%empty_tuple.type // CHECK:STDOUT: %ElementType => constants.%empty_tuple.type -// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.9bb -// CHECK:STDOUT: %Self => constants.%Self.7d0 -// CHECK:STDOUT: %IndexWith.WithSelf.At.type => constants.%IndexWith.WithSelf.At.type.9fc -// CHECK:STDOUT: %IndexWith.WithSelf.At => constants.%IndexWith.WithSelf.At.a6a -// CHECK:STDOUT: %IndexWith.assoc_type => constants.%IndexWith.assoc_type.f75 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.961 +// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.de8 +// CHECK:STDOUT: %Self => constants.%Self.799 +// CHECK:STDOUT: %IndexWith.WithSelf.At.type => constants.%IndexWith.WithSelf.At.type.d39 +// CHECK:STDOUT: %IndexWith.WithSelf.At => constants.%IndexWith.WithSelf.At.dd0 +// CHECK:STDOUT: %IndexWith.assoc_type => constants.%IndexWith.assoc_type.e52 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.a9a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IndexWith.WithSelf(constants.%empty_tuple.type, constants.%empty_tuple.type, constants.%IndexWith.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %SubscriptType => constants.%empty_tuple.type // CHECK:STDOUT: %ElementType => constants.%empty_tuple.type -// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.9bb +// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.de8 // CHECK:STDOUT: %Self => constants.%IndexWith.facet -// CHECK:STDOUT: %IndexWith.WithSelf.At.type => constants.%IndexWith.WithSelf.At.type.291 -// CHECK:STDOUT: %IndexWith.WithSelf.At => constants.%IndexWith.WithSelf.At.6b1 -// CHECK:STDOUT: %IndexWith.assoc_type => constants.%IndexWith.assoc_type.f75 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.961 +// CHECK:STDOUT: %IndexWith.WithSelf.At.type => constants.%IndexWith.WithSelf.At.type.9d6 +// CHECK:STDOUT: %IndexWith.WithSelf.At => constants.%IndexWith.WithSelf.At.a95 +// CHECK:STDOUT: %IndexWith.assoc_type => constants.%IndexWith.assoc_type.e52 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.a9a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IndexWith.WithSelf.At(constants.%empty_tuple.type, constants.%empty_tuple.type, constants.%IndexWith.facet) { // CHECK:STDOUT: %SubscriptType => constants.%empty_tuple.type // CHECK:STDOUT: %ElementType => constants.%empty_tuple.type -// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.9bb +// CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.de8 // CHECK:STDOUT: %Self => constants.%IndexWith.facet // CHECK:STDOUT: %Self.as_type => constants.%C -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.0d5 +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.98b // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.cb1 // CHECK:STDOUT: %.1 => constants.%.262 // CHECK:STDOUT: %pattern_type.3 => constants.%pattern_type.cb1 diff --git a/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon b/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon index 2e6a38bb407f..dbf867d070eb 100644 --- a/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon +++ b/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon @@ -89,36 +89,36 @@ let x: i32 = c[0]; // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %ElementType: type = class_type @ElementType.loc5 [concrete] -// CHECK:STDOUT: %SubscriptType.213: type = class_type @SubscriptType [concrete] -// CHECK:STDOUT: %IndexWith.type.579: type = generic_interface_type @IndexWith [concrete] -// CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.579 = struct_value () [concrete] +// CHECK:STDOUT: %SubscriptType.f8f: type = class_type @SubscriptType [concrete] +// CHECK:STDOUT: %IndexWith.type.df6: type = generic_interface_type @IndexWith [concrete] +// CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.df6 = struct_value () [concrete] // CHECK:STDOUT: %SubscriptType.67d: type = symbolic_binding SubscriptType, 0 [symbolic] -// CHECK:STDOUT: %IndexWith.assoc_type.99c: type = assoc_entity_type @IndexWith, @IndexWith(%SubscriptType.67d) [symbolic] -// CHECK:STDOUT: %IndexWith.type.9cf: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.213)> [concrete] -// CHECK:STDOUT: %.Self: %IndexWith.type.9cf = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %IndexWith.assoc_type.10a: type = assoc_entity_type @IndexWith, @IndexWith(%SubscriptType.213) [concrete] -// CHECK:STDOUT: %assoc0.d98: %IndexWith.assoc_type.10a = assoc_entity element0, imports.%Core.import_ref.4df [concrete] +// CHECK:STDOUT: %IndexWith.assoc_type.e15: type = assoc_entity_type @IndexWith, @IndexWith(%SubscriptType.67d) [symbolic] +// CHECK:STDOUT: %IndexWith.type.d74: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.f8f)> [concrete] +// CHECK:STDOUT: %.Self: %IndexWith.type.d74 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %IndexWith.assoc_type.144: type = assoc_entity_type @IndexWith, @IndexWith(%SubscriptType.f8f) [concrete] +// CHECK:STDOUT: %assoc0.c96: %IndexWith.assoc_type.144 = assoc_entity element0, imports.%Core.import_ref.fc2 [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %assoc0.ec2: %IndexWith.assoc_type.99c = assoc_entity element0, imports.%Core.import_ref.d98 [symbolic] -// CHECK:STDOUT: %IndexWith.lookup_impl_witness.c79: = lookup_impl_witness %.Self, @IndexWith, @IndexWith(%SubscriptType.213) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.822: type = impl_witness_access %IndexWith.lookup_impl_witness.c79, element0 [symbolic_self] -// CHECK:STDOUT: %IndexWith_where.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.213) where %impl.elem0.822 = %ElementType> [concrete] +// CHECK:STDOUT: %assoc0.a4e: %IndexWith.assoc_type.e15 = assoc_entity element0, imports.%Core.import_ref.6b6 [symbolic] +// CHECK:STDOUT: %IndexWith.lookup_impl_witness.dea: = lookup_impl_witness %.Self, @IndexWith, @IndexWith(%SubscriptType.f8f) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.8a5: type = impl_witness_access %IndexWith.lookup_impl_witness.dea, element0 [symbolic_self] +// CHECK:STDOUT: %IndexWith_where.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.f8f) where %impl.elem0.8a5 = %ElementType> [concrete] // CHECK:STDOUT: %IndexWith.impl_witness: = impl_witness @C.as.IndexWith.impl.%IndexWith.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] -// CHECK:STDOUT: %pattern_type.9fa: type = pattern_type %SubscriptType.213 [concrete] -// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.9cf = facet_value %C, (%IndexWith.impl_witness) [concrete] -// CHECK:STDOUT: %IndexWith.WithSelf.At.type.208: type = fn_type @IndexWith.WithSelf.At, @IndexWith.WithSelf(%SubscriptType.213, %IndexWith.facet) [concrete] -// CHECK:STDOUT: %.c55: Core.Form = init_form %ElementType [concrete] -// CHECK:STDOUT: %pattern_type.59d: type = pattern_type %ElementType [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.ea5: type = pattern_type %SubscriptType.f8f [concrete] +// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.d74 = facet_value %C, (%IndexWith.impl_witness) [concrete] +// CHECK:STDOUT: %IndexWith.WithSelf.At.type.bb5: type = fn_type @IndexWith.WithSelf.At, @IndexWith.WithSelf(%SubscriptType.f8f, %IndexWith.facet) [concrete] +// CHECK:STDOUT: %.4d0: Core.Form = init_form %ElementType [concrete] +// CHECK:STDOUT: %pattern_type.67c: type = pattern_type %ElementType [concrete] // CHECK:STDOUT: %C.as.IndexWith.impl.At.type: type = fn_type @C.as.IndexWith.impl.At [concrete] // CHECK:STDOUT: %C.as.IndexWith.impl.At: %C.as.IndexWith.impl.At.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %ElementType.val: %ElementType = struct_value () [concrete] -// CHECK:STDOUT: %SubscriptType.val: %SubscriptType.213 = struct_value () [concrete] -// CHECK:STDOUT: %.fa7: ref %SubscriptType.213 = temporary invalid, %SubscriptType.val [concrete] +// CHECK:STDOUT: %SubscriptType.val: %SubscriptType.f8f = struct_value () [concrete] +// CHECK:STDOUT: %.b1d: ref %SubscriptType.f8f = temporary invalid, %SubscriptType.val [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %.7a6: ref %C = temporary invalid, %C.val [concrete] -// CHECK:STDOUT: %.e1b: type = fn_type_with_self_type %IndexWith.WithSelf.At.type.208, %IndexWith.facet [concrete] +// CHECK:STDOUT: %.115: ref %C = temporary invalid, %C.val [concrete] +// CHECK:STDOUT: %.227: type = fn_type_with_self_type %IndexWith.WithSelf.At.type.bb5, %IndexWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -127,10 +127,10 @@ let x: i32 = c[0]; // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.IndexWith: %IndexWith.type.579 = import_ref Core//prelude/operators/index, IndexWith, loaded [concrete = constants.%IndexWith.generic] -// CHECK:STDOUT: %Core.import_ref.182: @IndexWith.WithSelf.%IndexWith.assoc_type (%IndexWith.assoc_type.99c) = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, loaded [symbolic = @IndexWith.WithSelf.%assoc0 (constants.%assoc0.ec2)] -// CHECK:STDOUT: %Core.import_ref.4df: type = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, loaded [concrete = %ElementType] -// CHECK:STDOUT: %Core.import_ref.d98 = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.IndexWith: %IndexWith.type.df6 = import_ref Core//prelude/operators/index, IndexWith, loaded [concrete = constants.%IndexWith.generic] +// CHECK:STDOUT: %Core.import_ref.bc6: @IndexWith.WithSelf.%IndexWith.assoc_type (%IndexWith.assoc_type.e15) = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, loaded [symbolic = @IndexWith.WithSelf.%assoc0 (constants.%assoc0.a4e)] +// CHECK:STDOUT: %Core.import_ref.fc2: type = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, loaded [concrete = %ElementType] +// CHECK:STDOUT: %Core.import_ref.6b6 = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %ElementType: type = assoc_const_decl @ElementType.1 [concrete] {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -147,20 +147,20 @@ let x: i32 = c[0]; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %ElementType.decl: type = class_decl @ElementType.loc5 [concrete = constants.%ElementType] {} {} -// CHECK:STDOUT: %SubscriptType.decl: type = class_decl @SubscriptType [concrete = constants.%SubscriptType.213] {} {} +// CHECK:STDOUT: %SubscriptType.decl: type = class_decl @SubscriptType [concrete = constants.%SubscriptType.f8f] {} {} // CHECK:STDOUT: impl_decl @C.as.IndexWith.impl [concrete] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %IndexWith.ref: %IndexWith.type.579 = name_ref IndexWith, imports.%Core.IndexWith [concrete = constants.%IndexWith.generic] -// CHECK:STDOUT: %SubscriptType.ref: type = name_ref SubscriptType, file.%SubscriptType.decl [concrete = constants.%SubscriptType.213] -// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(constants.%SubscriptType.213)> [concrete = constants.%IndexWith.type.9cf] -// CHECK:STDOUT: %.Self: %IndexWith.type.9cf = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.ref: %IndexWith.type.9cf = name_ref .Self, %.Self [symbolic_self = constants.%.Self] +// CHECK:STDOUT: %IndexWith.ref: %IndexWith.type.df6 = name_ref IndexWith, imports.%Core.IndexWith [concrete = constants.%IndexWith.generic] +// CHECK:STDOUT: %SubscriptType.ref: type = name_ref SubscriptType, file.%SubscriptType.decl [concrete = constants.%SubscriptType.f8f] +// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(constants.%SubscriptType.f8f)> [concrete = constants.%IndexWith.type.d74] +// CHECK:STDOUT: %.Self: %IndexWith.type.d74 = symbolic_binding .Self [symbolic_self = constants.%.Self] +// CHECK:STDOUT: %.Self.ref: %IndexWith.type.d74 = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_47.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc8_47.2: %IndexWith.assoc_type.10a = specific_constant imports.%Core.import_ref.182, @IndexWith.WithSelf(constants.%SubscriptType.213, constants.%.Self) [concrete = constants.%assoc0.d98] -// CHECK:STDOUT: %ElementType.ref.loc8_47: %IndexWith.assoc_type.10a = name_ref ElementType, %.loc8_47.2 [concrete = constants.%assoc0.d98] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%IndexWith.lookup_impl_witness.c79, element0 [symbolic_self = constants.%impl.elem0.822] +// CHECK:STDOUT: %.loc8_47.2: %IndexWith.assoc_type.144 = specific_constant imports.%Core.import_ref.bc6, @IndexWith.WithSelf(constants.%SubscriptType.f8f, constants.%.Self) [concrete = constants.%assoc0.c96] +// CHECK:STDOUT: %ElementType.ref.loc8_47: %IndexWith.assoc_type.144 = name_ref ElementType, %.loc8_47.2 [concrete = constants.%assoc0.c96] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%IndexWith.lookup_impl_witness.dea, element0 [symbolic_self = constants.%impl.elem0.8a5] // CHECK:STDOUT: %ElementType.ref.loc8_62: type = name_ref ElementType, file.%ElementType.decl [concrete = constants.%ElementType] // CHECK:STDOUT: %.loc8_41: type = where_expr [concrete = constants.%IndexWith_where.type] { // CHECK:STDOUT: requirement_base_facet_type %IndexWith.type @@ -168,27 +168,27 @@ let x: i32 = c[0]; // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.9fa = value_binding_pattern s [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.ea5 = value_binding_pattern s [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %SubscriptType.ref: type = name_ref SubscriptType, %SubscriptType.decl [concrete = constants.%SubscriptType.213] -// CHECK:STDOUT: %.loc14_25.1: ref %SubscriptType.213 = temporary_storage -// CHECK:STDOUT: %.loc14_25.2: init %SubscriptType.213 to %.loc14_25.1 = class_init () [concrete = constants.%SubscriptType.val] -// CHECK:STDOUT: %.loc14_25.3: init %SubscriptType.213 = converted @__global_init.%.loc14, %.loc14_25.2 [concrete = constants.%SubscriptType.val] -// CHECK:STDOUT: %.loc14_25.4: ref %SubscriptType.213 = temporary %.loc14_25.1, %.loc14_25.3 [concrete = constants.%.fa7] -// CHECK:STDOUT: %.loc14_25.5: %SubscriptType.213 = acquire_value %.loc14_25.4 [concrete = constants.%SubscriptType.val] -// CHECK:STDOUT: %s: %SubscriptType.213 = value_binding s, %.loc14_25.5 +// CHECK:STDOUT: %SubscriptType.ref: type = name_ref SubscriptType, %SubscriptType.decl [concrete = constants.%SubscriptType.f8f] +// CHECK:STDOUT: %.loc14_25.1: ref %SubscriptType.f8f = temporary_storage +// CHECK:STDOUT: %.loc14_25.2: init %SubscriptType.f8f to %.loc14_25.1 = class_init () [concrete = constants.%SubscriptType.val] +// CHECK:STDOUT: %.loc14_25.3: init %SubscriptType.f8f = converted @__global_init.%.loc14, %.loc14_25.2 [concrete = constants.%SubscriptType.val] +// CHECK:STDOUT: %.loc14_25.4: ref %SubscriptType.f8f = temporary %.loc14_25.1, %.loc14_25.3 [concrete = constants.%.b1d] +// CHECK:STDOUT: %.loc14_25.5: %SubscriptType.f8f = acquire_value %.loc14_25.4 [concrete = constants.%SubscriptType.val] +// CHECK:STDOUT: %s: %SubscriptType.f8f = value_binding s, %.loc14_25.5 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc15_13.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc15_13.2: init %C to %.loc15_13.1 = class_init () [concrete = constants.%C.val] // CHECK:STDOUT: %.loc15_13.3: init %C = converted @__global_init.%.loc15, %.loc15_13.2 [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc15_13.4: ref %C = temporary %.loc15_13.1, %.loc15_13.3 [concrete = constants.%.7a6] +// CHECK:STDOUT: %.loc15_13.4: ref %C = temporary %.loc15_13.1, %.loc15_13.3 [concrete = constants.%.115] // CHECK:STDOUT: %.loc15_13.5: %C = acquire_value %.loc15_13.4 [concrete = constants.%C.val] // CHECK:STDOUT: %c: %C = value_binding c, %.loc15_13.5 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.59d = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.67c = value_binding_pattern x [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %ElementType.ref: type = name_ref ElementType, %ElementType.decl [concrete = constants.%ElementType] // CHECK:STDOUT: %.loc16_25.1: ref %ElementType = temporary @__global_init.%.loc16, @__global_init.%C.as.IndexWith.impl.At.call @@ -198,24 +198,24 @@ let x: i32 = c[0]; // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.IndexWith.impl: %C.ref as %.loc8_41 { // CHECK:STDOUT: %C.as.IndexWith.impl.At.decl: %C.as.IndexWith.impl.At.type = fn_decl @C.as.IndexWith.impl.At [concrete = constants.%C.as.IndexWith.impl.At] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.0d5 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %subscript.param_patt: %pattern_type.9fa = value_param_pattern [concrete] -// CHECK:STDOUT: %subscript.patt: %pattern_type.9fa = at_binding_pattern subscript, %subscript.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.59d = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.59d = return_slot_pattern %return.param_patt, %ElementType.ref [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %subscript.param_patt: %pattern_type.ea5 = value_param_pattern [concrete] +// CHECK:STDOUT: %subscript.patt: %pattern_type.ea5 = at_binding_pattern subscript, %subscript.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.67c = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.67c = return_slot_pattern %return.param_patt, %ElementType.ref [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.9cf = facet_value @C.as.IndexWith.impl.%C.ref, (constants.%IndexWith.impl_witness) [concrete = constants.%IndexWith.facet] -// CHECK:STDOUT: %.loc9_64.1: %IndexWith.type.9cf = converted @C.as.IndexWith.impl.%C.ref, %IndexWith.facet [concrete = constants.%IndexWith.facet] +// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.d74 = facet_value @C.as.IndexWith.impl.%C.ref, (constants.%IndexWith.impl_witness) [concrete = constants.%IndexWith.facet] +// CHECK:STDOUT: %.loc9_64.1: %IndexWith.type.d74 = converted @C.as.IndexWith.impl.%C.ref, %IndexWith.facet [concrete = constants.%IndexWith.facet] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%IndexWith.impl_witness, element0 [concrete = constants.%ElementType] // CHECK:STDOUT: %ElementType.ref: type = name_ref ElementType, %impl.elem0 [concrete = constants.%ElementType] -// CHECK:STDOUT: %.loc9_64.2: Core.Form = init_form %ElementType.ref [concrete = constants.%.c55] +// CHECK:STDOUT: %.loc9_64.2: Core.Form = init_form %ElementType.ref [concrete = constants.%.4d0] // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.IndexWith.impl.%C.ref [concrete = constants.%C] // CHECK:STDOUT: %self: %C = value_binding self, %self.param -// CHECK:STDOUT: %subscript.param: %SubscriptType.213 = value_param call_param1 -// CHECK:STDOUT: %SubscriptType.ref: type = name_ref SubscriptType, file.%SubscriptType.decl [concrete = constants.%SubscriptType.213] -// CHECK:STDOUT: %subscript: %SubscriptType.213 = value_binding subscript, %subscript.param +// CHECK:STDOUT: %subscript.param: %SubscriptType.f8f = value_param call_param1 +// CHECK:STDOUT: %SubscriptType.ref: type = name_ref SubscriptType, file.%SubscriptType.decl [concrete = constants.%SubscriptType.f8f] +// CHECK:STDOUT: %subscript: %SubscriptType.f8f = value_binding subscript, %subscript.param // CHECK:STDOUT: %return.param: ref %ElementType = out_param call_param2 // CHECK:STDOUT: %return: ref %ElementType = return_slot %return.param // CHECK:STDOUT: } @@ -252,10 +252,10 @@ let x: i32 = c[0]; // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%SubscriptType.213 +// CHECK:STDOUT: .Self = constants.%SubscriptType.f8f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @C.as.IndexWith.impl.At(%self.param: %C, %subscript.param: %SubscriptType.213) -> out %return.param: %ElementType { +// CHECK:STDOUT: fn @C.as.IndexWith.impl.At(%self.param: %C, %subscript.param: %SubscriptType.f8f) -> out %return.param: %ElementType { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc10_13.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc10_13.2: init %ElementType to %return.param = class_init () [concrete = constants.%ElementType.val] @@ -268,8 +268,8 @@ let x: i32 = c[0]; // CHECK:STDOUT: %.loc14: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc15: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %c.ref: %C = name_ref c, file.%c -// CHECK:STDOUT: %s.ref: %SubscriptType.213 = name_ref s, file.%s -// CHECK:STDOUT: %impl.elem1: %.e1b = impl_witness_access constants.%IndexWith.impl_witness, element1 [concrete = constants.%C.as.IndexWith.impl.At] +// CHECK:STDOUT: %s.ref: %SubscriptType.f8f = name_ref s, file.%s +// CHECK:STDOUT: %impl.elem1: %.227 = impl_witness_access constants.%IndexWith.impl_witness, element1 [concrete = constants.%C.as.IndexWith.impl.At] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem1 // CHECK:STDOUT: %.loc16: ref %ElementType = temporary_storage // CHECK:STDOUT: %C.as.IndexWith.impl.At.call: init %ElementType to %.loc16 = call %bound_method(%c.ref, %s.ref) @@ -284,36 +284,36 @@ let x: i32 = c[0]; // CHECK:STDOUT: %empty_tuple.af4: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_tuple.type [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.201: %tuple.type.24b = tuple_value (%C, %C) [concrete] -// CHECK:STDOUT: %tuple.type.33d: type = tuple_type (%C, %C) [concrete] -// CHECK:STDOUT: %IndexWith.type.579: type = generic_interface_type @IndexWith [concrete] -// CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.579 = struct_value () [concrete] +// CHECK:STDOUT: %tuple.d95: %tuple.type.24b = tuple_value (%C, %C) [concrete] +// CHECK:STDOUT: %tuple.type.748: type = tuple_type (%C, %C) [concrete] +// CHECK:STDOUT: %IndexWith.type.df6: type = generic_interface_type @IndexWith [concrete] +// CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.df6 = struct_value () [concrete] // CHECK:STDOUT: %SubscriptType: type = symbolic_binding SubscriptType, 0 [symbolic] -// CHECK:STDOUT: %IndexWith.assoc_type.99c: type = assoc_entity_type @IndexWith, @IndexWith(%SubscriptType) [symbolic] +// CHECK:STDOUT: %IndexWith.assoc_type.e15: type = assoc_entity_type @IndexWith, @IndexWith(%SubscriptType) [symbolic] // CHECK:STDOUT: %IntLiteral.type: type = fn_type @IntLiteral [concrete] // CHECK:STDOUT: %IntLiteral: %IntLiteral.type = struct_value () [concrete] -// CHECK:STDOUT: %IndexWith.type.af8: type = facet_type <@IndexWith, @IndexWith(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %.Self: %IndexWith.type.af8 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %IndexWith.assoc_type.176: type = assoc_entity_type @IndexWith, @IndexWith(Core.IntLiteral) [concrete] -// CHECK:STDOUT: %assoc0.f05: %IndexWith.assoc_type.176 = assoc_entity element0, imports.%Core.import_ref.4df [concrete] +// CHECK:STDOUT: %IndexWith.type.385: type = facet_type <@IndexWith, @IndexWith(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %.Self: %IndexWith.type.385 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %IndexWith.assoc_type.ecd: type = assoc_entity_type @IndexWith, @IndexWith(Core.IntLiteral) [concrete] +// CHECK:STDOUT: %assoc0.abe: %IndexWith.assoc_type.ecd = assoc_entity element0, imports.%Core.import_ref.fc2 [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %assoc0.ec2: %IndexWith.assoc_type.99c = assoc_entity element0, imports.%Core.import_ref.d98 [symbolic] -// CHECK:STDOUT: %IndexWith.lookup_impl_witness.136: = lookup_impl_witness %.Self, @IndexWith, @IndexWith(Core.IntLiteral) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.368: type = impl_witness_access %IndexWith.lookup_impl_witness.136, element0 [symbolic_self] -// CHECK:STDOUT: %IndexWith_where.type: type = facet_type <@IndexWith, @IndexWith(Core.IntLiteral) where %impl.elem0.368 = %C> [concrete] +// CHECK:STDOUT: %assoc0.a4e: %IndexWith.assoc_type.e15 = assoc_entity element0, imports.%Core.import_ref.6b6 [symbolic] +// CHECK:STDOUT: %IndexWith.lookup_impl_witness.abf: = lookup_impl_witness %.Self, @IndexWith, @IndexWith(Core.IntLiteral) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.c76: type = impl_witness_access %IndexWith.lookup_impl_witness.abf, element0 [symbolic_self] +// CHECK:STDOUT: %IndexWith_where.type: type = facet_type <@IndexWith, @IndexWith(Core.IntLiteral) where %impl.elem0.c76 = %C> [concrete] // CHECK:STDOUT: %IndexWith.impl_witness: = impl_witness @tuple.type.as.IndexWith.impl.%IndexWith.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.410: type = pattern_type %tuple.type.33d [concrete] +// CHECK:STDOUT: %pattern_type.8b4: type = pattern_type %tuple.type.748 [concrete] // CHECK:STDOUT: %pattern_type.dc0: type = pattern_type Core.IntLiteral [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %tuple.type.as.IndexWith.impl.At.type: type = fn_type @tuple.type.as.IndexWith.impl.At [concrete] // CHECK:STDOUT: %tuple.type.as.IndexWith.impl.At: %tuple.type.as.IndexWith.impl.At.type = struct_value () [concrete] -// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.af8 = facet_value %tuple.type.33d, (%IndexWith.impl_witness) [concrete] -// CHECK:STDOUT: %IndexWith.WithSelf.At.type.1b9: type = fn_type @IndexWith.WithSelf.At, @IndexWith.WithSelf(Core.IntLiteral, %IndexWith.facet) [concrete] +// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.385 = facet_value %tuple.type.748, (%IndexWith.impl_witness) [concrete] +// CHECK:STDOUT: %IndexWith.WithSelf.At.type.6cb: type = fn_type @IndexWith.WithSelf.At, @IndexWith.WithSelf(Core.IntLiteral, %IndexWith.facet) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %empty_tuple.a46: %C = tuple_value () [concrete] -// CHECK:STDOUT: %tuple.afb: %tuple.type.33d = tuple_value (%empty_tuple.a46, %empty_tuple.a46) [concrete] -// CHECK:STDOUT: %.011: type = fn_type_with_self_type %IndexWith.WithSelf.At.type.1b9, %IndexWith.facet [concrete] +// CHECK:STDOUT: %empty_tuple.4db: %C = tuple_value () [concrete] +// CHECK:STDOUT: %tuple.adf: %tuple.type.748 = tuple_value (%empty_tuple.4db, %empty_tuple.4db) [concrete] +// CHECK:STDOUT: %.fdc: type = fn_type_with_self_type %IndexWith.WithSelf.At.type.6cb, %IndexWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -323,11 +323,11 @@ let x: i32 = c[0]; // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.IndexWith: %IndexWith.type.579 = import_ref Core//prelude/operators/index, IndexWith, loaded [concrete = constants.%IndexWith.generic] -// CHECK:STDOUT: %Core.import_ref.182: @IndexWith.WithSelf.%IndexWith.assoc_type (%IndexWith.assoc_type.99c) = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, loaded [symbolic = @IndexWith.WithSelf.%assoc0 (constants.%assoc0.ec2)] -// CHECK:STDOUT: %Core.import_ref.4df: type = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, loaded [concrete = %ElementType] +// CHECK:STDOUT: %Core.IndexWith: %IndexWith.type.df6 = import_ref Core//prelude/operators/index, IndexWith, loaded [concrete = constants.%IndexWith.generic] +// CHECK:STDOUT: %Core.import_ref.bc6: @IndexWith.WithSelf.%IndexWith.assoc_type (%IndexWith.assoc_type.e15) = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, loaded [symbolic = @IndexWith.WithSelf.%assoc0 (constants.%assoc0.a4e)] +// CHECK:STDOUT: %Core.import_ref.fc2: type = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, loaded [concrete = %ElementType] // CHECK:STDOUT: %Core.IntLiteral: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [concrete = constants.%IntLiteral] -// CHECK:STDOUT: %Core.import_ref.d98 = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.6b6 = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %ElementType: type = assoc_const_decl @ElementType [concrete] {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -343,23 +343,23 @@ let x: i32 = c[0]; // CHECK:STDOUT: impl_decl @tuple.type.as.IndexWith.impl [concrete] {} { // CHECK:STDOUT: %C.ref.loc8_7: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_10: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc8_11.1: %tuple.type.24b = tuple_literal (%C.ref.loc8_7, %C.ref.loc8_10) [concrete = constants.%tuple.201] -// CHECK:STDOUT: %.loc8_11.2: type = converted %.loc8_11.1, constants.%tuple.type.33d [concrete = constants.%tuple.type.33d] +// CHECK:STDOUT: %.loc8_11.1: %tuple.type.24b = tuple_literal (%C.ref.loc8_7, %C.ref.loc8_10) [concrete = constants.%tuple.d95] +// CHECK:STDOUT: %.loc8_11.2: type = converted %.loc8_11.1, constants.%tuple.type.748 [concrete = constants.%tuple.type.748] // CHECK:STDOUT: %Core.ref.loc8_16: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %IndexWith.ref: %IndexWith.type.579 = name_ref IndexWith, imports.%Core.IndexWith [concrete = constants.%IndexWith.generic] +// CHECK:STDOUT: %IndexWith.ref: %IndexWith.type.df6 = name_ref IndexWith, imports.%Core.IndexWith [concrete = constants.%IndexWith.generic] // CHECK:STDOUT: %Core.ref.loc8_31: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%Core.IntLiteral [concrete = constants.%IntLiteral] // CHECK:STDOUT: %IntLiteral.call: init type = call %IntLiteral.ref() [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc8_48.1: type = value_of_initializer %IntLiteral.call [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc8_48.2: type = converted %IntLiteral.call, %.loc8_48.1 [concrete = Core.IntLiteral] -// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(Core.IntLiteral)> [concrete = constants.%IndexWith.type.af8] -// CHECK:STDOUT: %.Self: %IndexWith.type.af8 = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.ref: %IndexWith.type.af8 = name_ref .Self, %.Self [symbolic_self = constants.%.Self] +// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(Core.IntLiteral)> [concrete = constants.%IndexWith.type.385] +// CHECK:STDOUT: %.Self: %IndexWith.type.385 = symbolic_binding .Self [symbolic_self = constants.%.Self] +// CHECK:STDOUT: %.Self.ref: %IndexWith.type.385 = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_56.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc8_56.2: %IndexWith.assoc_type.176 = specific_constant imports.%Core.import_ref.182, @IndexWith.WithSelf(Core.IntLiteral, constants.%.Self) [concrete = constants.%assoc0.f05] -// CHECK:STDOUT: %ElementType.ref: %IndexWith.assoc_type.176 = name_ref ElementType, %.loc8_56.2 [concrete = constants.%assoc0.f05] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%IndexWith.lookup_impl_witness.136, element0 [symbolic_self = constants.%impl.elem0.368] +// CHECK:STDOUT: %.loc8_56.2: %IndexWith.assoc_type.ecd = specific_constant imports.%Core.import_ref.bc6, @IndexWith.WithSelf(Core.IntLiteral, constants.%.Self) [concrete = constants.%assoc0.abe] +// CHECK:STDOUT: %ElementType.ref: %IndexWith.assoc_type.ecd = name_ref ElementType, %.loc8_56.2 [concrete = constants.%assoc0.abe] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%IndexWith.lookup_impl_witness.abf, element0 [symbolic_self = constants.%impl.elem0.c76] // CHECK:STDOUT: %C.ref.loc8_71: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc8_50: type = where_expr [concrete = constants.%IndexWith_where.type] { // CHECK:STDOUT: requirement_base_facet_type %IndexWith.type @@ -367,44 +367,44 @@ let x: i32 = c[0]; // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.410 = value_binding_pattern s [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.8b4 = value_binding_pattern s [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc14_13.1: type = splice_block %.loc14_13.3 [concrete = constants.%tuple.type.33d] { +// CHECK:STDOUT: %.loc14_13.1: type = splice_block %.loc14_13.3 [concrete = constants.%tuple.type.748] { // CHECK:STDOUT: %C.ref.loc14_9: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc14_12: type = name_ref C, %C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc14_13.2: %tuple.type.24b = tuple_literal (%C.ref.loc14_9, %C.ref.loc14_12) [concrete = constants.%tuple.201] -// CHECK:STDOUT: %.loc14_13.3: type = converted %.loc14_13.2, constants.%tuple.type.33d [concrete = constants.%tuple.type.33d] +// CHECK:STDOUT: %.loc14_13.2: %tuple.type.24b = tuple_literal (%C.ref.loc14_9, %C.ref.loc14_12) [concrete = constants.%tuple.d95] +// CHECK:STDOUT: %.loc14_13.3: type = converted %.loc14_13.2, constants.%tuple.type.748 [concrete = constants.%tuple.type.748] // CHECK:STDOUT: } -// CHECK:STDOUT: %tuple.loc14: %tuple.type.33d = tuple_value (@__global_init.%.loc14_21.2, @__global_init.%.loc14_30.2) [concrete = constants.%tuple.afb] -// CHECK:STDOUT: %.loc14_34: %tuple.type.33d = converted @__global_init.%.loc14_34, %tuple.loc14 [concrete = constants.%tuple.afb] -// CHECK:STDOUT: %s: %tuple.type.33d = value_binding s, %.loc14_34 +// CHECK:STDOUT: %tuple.loc14: %tuple.type.748 = tuple_value (@__global_init.%.loc14_21.2, @__global_init.%.loc14_30.2) [concrete = constants.%tuple.adf] +// CHECK:STDOUT: %.loc14_34: %tuple.type.748 = converted @__global_init.%.loc14_34, %tuple.loc14 [concrete = constants.%tuple.adf] +// CHECK:STDOUT: %s: %tuple.type.748 = value_binding s, %.loc14_34 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %e.patt: %pattern_type.0d5 = value_binding_pattern e [concrete] +// CHECK:STDOUT: %e.patt: %pattern_type.98b = value_binding_pattern e [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %C.ref.loc15: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc15_15.1: init %empty_tuple.type = as_compatible @__global_init.%tuple.type.as.IndexWith.impl.At.call // CHECK:STDOUT: %.loc15_15.2: ref %empty_tuple.type = temporary_storage // CHECK:STDOUT: %.loc15_15.3: ref %empty_tuple.type = temporary %.loc15_15.2, %.loc15_15.1 // CHECK:STDOUT: %tuple.loc15: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple.af4] -// CHECK:STDOUT: %.loc15_15.4: %C = as_compatible %tuple.loc15 [concrete = constants.%empty_tuple.a46] -// CHECK:STDOUT: %.loc15_15.5: %C = converted @__global_init.%tuple.type.as.IndexWith.impl.At.call, %.loc15_15.4 [concrete = constants.%empty_tuple.a46] +// CHECK:STDOUT: %.loc15_15.4: %C = as_compatible %tuple.loc15 [concrete = constants.%empty_tuple.4db] +// CHECK:STDOUT: %.loc15_15.5: %C = converted @__global_init.%tuple.type.as.IndexWith.impl.At.call, %.loc15_15.4 [concrete = constants.%empty_tuple.4db] // CHECK:STDOUT: %e: %C = value_binding e, %.loc15_15.5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @tuple.type.as.IndexWith.impl: %.loc8_11.2 as %.loc8_50 { // CHECK:STDOUT: %tuple.type.as.IndexWith.impl.At.decl: %tuple.type.as.IndexWith.impl.At.type = fn_decl @tuple.type.as.IndexWith.impl.At [concrete = constants.%tuple.type.as.IndexWith.impl.At] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.410 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.410 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.8b4 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.8b4 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %subscript.param_patt: %pattern_type.dc0 = value_param_pattern [concrete] // CHECK:STDOUT: %subscript.patt: %pattern_type.dc0 = at_binding_pattern subscript, %subscript.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc9_61: Core.Form = init_form %C.ref [concrete = constants.%.8f0] -// CHECK:STDOUT: %self.param: %tuple.type.33d = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @tuple.type.as.IndexWith.impl.%.loc8_11.2 [concrete = constants.%tuple.type.33d] -// CHECK:STDOUT: %self: %tuple.type.33d = value_binding self, %self.param +// CHECK:STDOUT: %.loc9_61: Core.Form = init_form %C.ref [concrete = constants.%.a44] +// CHECK:STDOUT: %self.param: %tuple.type.748 = value_param call_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @tuple.type.as.IndexWith.impl.%.loc8_11.2 [concrete = constants.%tuple.type.748] +// CHECK:STDOUT: %self: %tuple.type.748 = value_binding self, %self.param // CHECK:STDOUT: %subscript.param: Core.IntLiteral = value_param call_param1 // CHECK:STDOUT: %.loc9_55.1: type = splice_block %.loc9_55.3 [concrete = Core.IntLiteral] { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] @@ -439,15 +439,15 @@ let x: i32 = c[0]; // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @tuple.type.as.IndexWith.impl.At(%self.param: %tuple.type.33d, %subscript.param: Core.IntLiteral) -> out %return.param: %C { +// CHECK:STDOUT: fn @tuple.type.as.IndexWith.impl.At(%self.param: %tuple.type.748, %subscript.param: Core.IntLiteral) -> out %return.param: %C { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: %tuple.type.33d = name_ref self, %self +// CHECK:STDOUT: %self.ref: %tuple.type.748 = name_ref self, %self // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %tuple.elem0: %C = tuple_access %self.ref, element0 // CHECK:STDOUT: %.loc10_18.1: %empty_tuple.type = as_compatible %tuple.elem0 // CHECK:STDOUT: %.loc10_18.2: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple.af4] -// CHECK:STDOUT: %.loc10_18.3: init %C = as_compatible %.loc10_18.2 [concrete = constants.%empty_tuple.a46] -// CHECK:STDOUT: %.loc10_18.4: init %C = converted %tuple.elem0, %.loc10_18.3 [concrete = constants.%empty_tuple.a46] +// CHECK:STDOUT: %.loc10_18.3: init %C = as_compatible %.loc10_18.2 [concrete = constants.%empty_tuple.4db] +// CHECK:STDOUT: %.loc10_18.4: init %C = converted %tuple.elem0, %.loc10_18.3 [concrete = constants.%empty_tuple.4db] // CHECK:STDOUT: return %.loc10_18.4 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -456,17 +456,17 @@ let x: i32 = c[0]; // CHECK:STDOUT: %.loc14_19: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple.af4] // CHECK:STDOUT: %C.ref.loc14_24: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %empty_tuple.loc14_19: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple.af4] -// CHECK:STDOUT: %.loc14_21.1: %C = as_compatible %empty_tuple.loc14_19 [concrete = constants.%empty_tuple.a46] -// CHECK:STDOUT: %.loc14_21.2: %C = converted %.loc14_19, %.loc14_21.1 [concrete = constants.%empty_tuple.a46] +// CHECK:STDOUT: %.loc14_21.1: %C = as_compatible %empty_tuple.loc14_19 [concrete = constants.%empty_tuple.4db] +// CHECK:STDOUT: %.loc14_21.2: %C = converted %.loc14_19, %.loc14_21.1 [concrete = constants.%empty_tuple.4db] // CHECK:STDOUT: %.loc14_28: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple.af4] // CHECK:STDOUT: %C.ref.loc14_33: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %empty_tuple.loc14_28: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple.af4] -// CHECK:STDOUT: %.loc14_30.1: %C = as_compatible %empty_tuple.loc14_28 [concrete = constants.%empty_tuple.a46] -// CHECK:STDOUT: %.loc14_30.2: %C = converted %.loc14_28, %.loc14_30.1 [concrete = constants.%empty_tuple.a46] -// CHECK:STDOUT: %.loc14_34: %tuple.type.33d = tuple_literal (%.loc14_21.2, %.loc14_30.2) [concrete = constants.%tuple.afb] -// CHECK:STDOUT: %s.ref: %tuple.type.33d = name_ref s, file.%s +// CHECK:STDOUT: %.loc14_30.1: %C = as_compatible %empty_tuple.loc14_28 [concrete = constants.%empty_tuple.4db] +// CHECK:STDOUT: %.loc14_30.2: %C = converted %.loc14_28, %.loc14_30.1 [concrete = constants.%empty_tuple.4db] +// CHECK:STDOUT: %.loc14_34: %tuple.type.748 = tuple_literal (%.loc14_21.2, %.loc14_30.2) [concrete = constants.%tuple.adf] +// CHECK:STDOUT: %s.ref: %tuple.type.748 = name_ref s, file.%s // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %impl.elem1: %.011 = impl_witness_access constants.%IndexWith.impl_witness, element1 [concrete = constants.%tuple.type.as.IndexWith.impl.At] +// CHECK:STDOUT: %impl.elem1: %.fdc = impl_witness_access constants.%IndexWith.impl_witness, element1 [concrete = constants.%tuple.type.as.IndexWith.impl.At] // CHECK:STDOUT: %bound_method: = bound_method %s.ref, %impl.elem1 // CHECK:STDOUT: %tuple.type.as.IndexWith.impl.At.call: init %C = call %bound_method(%s.ref, %int_0) // CHECK:STDOUT: return @@ -479,32 +479,32 @@ let x: i32 = c[0]; // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %ElementType: type = class_type @ElementType.loc5 [concrete] -// CHECK:STDOUT: %SubscriptType.213: type = class_type @SubscriptType [concrete] -// CHECK:STDOUT: %IndexWith.type.579: type = generic_interface_type @IndexWith [concrete] -// CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.579 = struct_value () [concrete] +// CHECK:STDOUT: %SubscriptType.f8f: type = class_type @SubscriptType [concrete] +// CHECK:STDOUT: %IndexWith.type.df6: type = generic_interface_type @IndexWith [concrete] +// CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.df6 = struct_value () [concrete] // CHECK:STDOUT: %SubscriptType.67d: type = symbolic_binding SubscriptType, 0 [symbolic] -// CHECK:STDOUT: %IndexWith.assoc_type.99c: type = assoc_entity_type @IndexWith, @IndexWith(%SubscriptType.67d) [symbolic] -// CHECK:STDOUT: %IndexWith.type.9cf: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.213)> [concrete] -// CHECK:STDOUT: %.Self: %IndexWith.type.9cf = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %IndexWith.assoc_type.10a: type = assoc_entity_type @IndexWith, @IndexWith(%SubscriptType.213) [concrete] -// CHECK:STDOUT: %assoc0.d98: %IndexWith.assoc_type.10a = assoc_entity element0, imports.%Core.import_ref.4df [concrete] +// CHECK:STDOUT: %IndexWith.assoc_type.e15: type = assoc_entity_type @IndexWith, @IndexWith(%SubscriptType.67d) [symbolic] +// CHECK:STDOUT: %IndexWith.type.d74: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.f8f)> [concrete] +// CHECK:STDOUT: %.Self: %IndexWith.type.d74 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %IndexWith.assoc_type.144: type = assoc_entity_type @IndexWith, @IndexWith(%SubscriptType.f8f) [concrete] +// CHECK:STDOUT: %assoc0.c96: %IndexWith.assoc_type.144 = assoc_entity element0, imports.%Core.import_ref.fc2 [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %assoc0.ec2: %IndexWith.assoc_type.99c = assoc_entity element0, imports.%Core.import_ref.d98 [symbolic] -// CHECK:STDOUT: %IndexWith.lookup_impl_witness.c79: = lookup_impl_witness %.Self, @IndexWith, @IndexWith(%SubscriptType.213) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.822: type = impl_witness_access %IndexWith.lookup_impl_witness.c79, element0 [symbolic_self] -// CHECK:STDOUT: %IndexWith_where.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.213) where %impl.elem0.822 = %ElementType> [concrete] +// CHECK:STDOUT: %assoc0.a4e: %IndexWith.assoc_type.e15 = assoc_entity element0, imports.%Core.import_ref.6b6 [symbolic] +// CHECK:STDOUT: %IndexWith.lookup_impl_witness.dea: = lookup_impl_witness %.Self, @IndexWith, @IndexWith(%SubscriptType.f8f) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.8a5: type = impl_witness_access %IndexWith.lookup_impl_witness.dea, element0 [symbolic_self] +// CHECK:STDOUT: %IndexWith_where.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.f8f) where %impl.elem0.8a5 = %ElementType> [concrete] // CHECK:STDOUT: %IndexWith.impl_witness: = impl_witness @C.as.IndexWith.impl.%IndexWith.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] -// CHECK:STDOUT: %pattern_type.9fa: type = pattern_type %SubscriptType.213 [concrete] -// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.9cf = facet_value %C, (%IndexWith.impl_witness) [concrete] -// CHECK:STDOUT: %.c55: Core.Form = init_form %ElementType [concrete] -// CHECK:STDOUT: %pattern_type.59d: type = pattern_type %ElementType [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.ea5: type = pattern_type %SubscriptType.f8f [concrete] +// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.d74 = facet_value %C, (%IndexWith.impl_witness) [concrete] +// CHECK:STDOUT: %.4d0: Core.Form = init_form %ElementType [concrete] +// CHECK:STDOUT: %pattern_type.67c: type = pattern_type %ElementType [concrete] // CHECK:STDOUT: %C.as.IndexWith.impl.At.type: type = fn_type @C.as.IndexWith.impl.At [concrete] // CHECK:STDOUT: %C.as.IndexWith.impl.At: %C.as.IndexWith.impl.At.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %ElementType.val: %ElementType = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %.7a6: ref %C = temporary invalid, %C.val [concrete] +// CHECK:STDOUT: %.115: ref %C = temporary invalid, %C.val [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -514,10 +514,10 @@ let x: i32 = c[0]; // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.IndexWith: %IndexWith.type.579 = import_ref Core//prelude/operators/index, IndexWith, loaded [concrete = constants.%IndexWith.generic] -// CHECK:STDOUT: %Core.import_ref.182: @IndexWith.WithSelf.%IndexWith.assoc_type (%IndexWith.assoc_type.99c) = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, loaded [symbolic = @IndexWith.WithSelf.%assoc0 (constants.%assoc0.ec2)] -// CHECK:STDOUT: %Core.import_ref.4df: type = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, loaded [concrete = %ElementType] -// CHECK:STDOUT: %Core.import_ref.d98 = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.IndexWith: %IndexWith.type.df6 = import_ref Core//prelude/operators/index, IndexWith, loaded [concrete = constants.%IndexWith.generic] +// CHECK:STDOUT: %Core.import_ref.bc6: @IndexWith.WithSelf.%IndexWith.assoc_type (%IndexWith.assoc_type.e15) = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, loaded [symbolic = @IndexWith.WithSelf.%assoc0 (constants.%assoc0.a4e)] +// CHECK:STDOUT: %Core.import_ref.fc2: type = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, loaded [concrete = %ElementType] +// CHECK:STDOUT: %Core.import_ref.6b6 = import_ref Core//prelude/operators/index, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %ElementType: type = assoc_const_decl @ElementType.1 [concrete] {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -533,20 +533,20 @@ let x: i32 = c[0]; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %ElementType.decl: type = class_decl @ElementType.loc5 [concrete = constants.%ElementType] {} {} -// CHECK:STDOUT: %SubscriptType.decl: type = class_decl @SubscriptType [concrete = constants.%SubscriptType.213] {} {} +// CHECK:STDOUT: %SubscriptType.decl: type = class_decl @SubscriptType [concrete = constants.%SubscriptType.f8f] {} {} // CHECK:STDOUT: impl_decl @C.as.IndexWith.impl [concrete] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %IndexWith.ref: %IndexWith.type.579 = name_ref IndexWith, imports.%Core.IndexWith [concrete = constants.%IndexWith.generic] -// CHECK:STDOUT: %SubscriptType.ref: type = name_ref SubscriptType, file.%SubscriptType.decl [concrete = constants.%SubscriptType.213] -// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(constants.%SubscriptType.213)> [concrete = constants.%IndexWith.type.9cf] -// CHECK:STDOUT: %.Self: %IndexWith.type.9cf = symbolic_binding .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.ref: %IndexWith.type.9cf = name_ref .Self, %.Self [symbolic_self = constants.%.Self] +// CHECK:STDOUT: %IndexWith.ref: %IndexWith.type.df6 = name_ref IndexWith, imports.%Core.IndexWith [concrete = constants.%IndexWith.generic] +// CHECK:STDOUT: %SubscriptType.ref: type = name_ref SubscriptType, file.%SubscriptType.decl [concrete = constants.%SubscriptType.f8f] +// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(constants.%SubscriptType.f8f)> [concrete = constants.%IndexWith.type.d74] +// CHECK:STDOUT: %.Self: %IndexWith.type.d74 = symbolic_binding .Self [symbolic_self = constants.%.Self] +// CHECK:STDOUT: %.Self.ref: %IndexWith.type.d74 = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_47.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc8_47.2: %IndexWith.assoc_type.10a = specific_constant imports.%Core.import_ref.182, @IndexWith.WithSelf(constants.%SubscriptType.213, constants.%.Self) [concrete = constants.%assoc0.d98] -// CHECK:STDOUT: %ElementType.ref.loc8_47: %IndexWith.assoc_type.10a = name_ref ElementType, %.loc8_47.2 [concrete = constants.%assoc0.d98] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%IndexWith.lookup_impl_witness.c79, element0 [symbolic_self = constants.%impl.elem0.822] +// CHECK:STDOUT: %.loc8_47.2: %IndexWith.assoc_type.144 = specific_constant imports.%Core.import_ref.bc6, @IndexWith.WithSelf(constants.%SubscriptType.f8f, constants.%.Self) [concrete = constants.%assoc0.c96] +// CHECK:STDOUT: %ElementType.ref.loc8_47: %IndexWith.assoc_type.144 = name_ref ElementType, %.loc8_47.2 [concrete = constants.%assoc0.c96] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%IndexWith.lookup_impl_witness.dea, element0 [symbolic_self = constants.%impl.elem0.8a5] // CHECK:STDOUT: %ElementType.ref.loc8_62: type = name_ref ElementType, file.%ElementType.decl [concrete = constants.%ElementType] // CHECK:STDOUT: %.loc8_41: type = where_expr [concrete = constants.%IndexWith_where.type] { // CHECK:STDOUT: requirement_base_facet_type %IndexWith.type @@ -554,17 +554,17 @@ let x: i32 = c[0]; // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc14_13.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc14_13.2: init %C to %.loc14_13.1 = class_init () [concrete = constants.%C.val] // CHECK:STDOUT: %.loc14_13.3: init %C = converted @__global_init.%.loc14, %.loc14_13.2 [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc14_13.4: ref %C = temporary %.loc14_13.1, %.loc14_13.3 [concrete = constants.%.7a6] +// CHECK:STDOUT: %.loc14_13.4: ref %C = temporary %.loc14_13.1, %.loc14_13.3 [concrete = constants.%.115] // CHECK:STDOUT: %.loc14_13.5: %C = acquire_value %.loc14_13.4 [concrete = constants.%C.val] // CHECK:STDOUT: %c: %C = value_binding c, %.loc14_13.5 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.59d = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.67c = value_binding_pattern x [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %ElementType.ref: type = name_ref ElementType, %ElementType.decl [concrete = constants.%ElementType] // CHECK:STDOUT: %x: %ElementType = value_binding x, [concrete = ] @@ -572,24 +572,24 @@ let x: i32 = c[0]; // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.IndexWith.impl: %C.ref as %.loc8_41 { // CHECK:STDOUT: %C.as.IndexWith.impl.At.decl: %C.as.IndexWith.impl.At.type = fn_decl @C.as.IndexWith.impl.At [concrete = constants.%C.as.IndexWith.impl.At] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.0d5 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %subscript.param_patt: %pattern_type.9fa = value_param_pattern [concrete] -// CHECK:STDOUT: %subscript.patt: %pattern_type.9fa = at_binding_pattern subscript, %subscript.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.59d = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.59d = return_slot_pattern %return.param_patt, %ElementType.ref [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %subscript.param_patt: %pattern_type.ea5 = value_param_pattern [concrete] +// CHECK:STDOUT: %subscript.patt: %pattern_type.ea5 = at_binding_pattern subscript, %subscript.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.67c = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.67c = return_slot_pattern %return.param_patt, %ElementType.ref [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.9cf = facet_value @C.as.IndexWith.impl.%C.ref, (constants.%IndexWith.impl_witness) [concrete = constants.%IndexWith.facet] -// CHECK:STDOUT: %.loc9_64.1: %IndexWith.type.9cf = converted @C.as.IndexWith.impl.%C.ref, %IndexWith.facet [concrete = constants.%IndexWith.facet] +// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.d74 = facet_value @C.as.IndexWith.impl.%C.ref, (constants.%IndexWith.impl_witness) [concrete = constants.%IndexWith.facet] +// CHECK:STDOUT: %.loc9_64.1: %IndexWith.type.d74 = converted @C.as.IndexWith.impl.%C.ref, %IndexWith.facet [concrete = constants.%IndexWith.facet] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%IndexWith.impl_witness, element0 [concrete = constants.%ElementType] // CHECK:STDOUT: %ElementType.ref: type = name_ref ElementType, %impl.elem0 [concrete = constants.%ElementType] -// CHECK:STDOUT: %.loc9_64.2: Core.Form = init_form %ElementType.ref [concrete = constants.%.c55] +// CHECK:STDOUT: %.loc9_64.2: Core.Form = init_form %ElementType.ref [concrete = constants.%.4d0] // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.IndexWith.impl.%C.ref [concrete = constants.%C] // CHECK:STDOUT: %self: %C = value_binding self, %self.param -// CHECK:STDOUT: %subscript.param: %SubscriptType.213 = value_param call_param1 -// CHECK:STDOUT: %SubscriptType.ref: type = name_ref SubscriptType, file.%SubscriptType.decl [concrete = constants.%SubscriptType.213] -// CHECK:STDOUT: %subscript: %SubscriptType.213 = value_binding subscript, %subscript.param +// CHECK:STDOUT: %subscript.param: %SubscriptType.f8f = value_param call_param1 +// CHECK:STDOUT: %SubscriptType.ref: type = name_ref SubscriptType, file.%SubscriptType.decl [concrete = constants.%SubscriptType.f8f] +// CHECK:STDOUT: %subscript: %SubscriptType.f8f = value_binding subscript, %subscript.param // CHECK:STDOUT: %return.param: ref %ElementType = out_param call_param2 // CHECK:STDOUT: %return: ref %ElementType = return_slot %return.param // CHECK:STDOUT: } @@ -626,10 +626,10 @@ let x: i32 = c[0]; // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%SubscriptType.213 +// CHECK:STDOUT: .Self = constants.%SubscriptType.f8f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @C.as.IndexWith.impl.At(%self.param: %C, %subscript.param: %SubscriptType.213) -> out %return.param: %ElementType { +// CHECK:STDOUT: fn @C.as.IndexWith.impl.At(%self.param: %C, %subscript.param: %SubscriptType.f8f) -> out %return.param: %ElementType { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc10_13.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc10_13.2: init %ElementType to %return.param = class_init () [concrete = constants.%ElementType.val] @@ -651,18 +651,18 @@ let x: i32 = c[0]; // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %.7a6: ref %C = temporary invalid, %C.val [concrete] +// CHECK:STDOUT: %.115: ref %C = temporary invalid, %C.val [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %IndexWith.type.579: type = generic_interface_type @IndexWith [concrete] -// CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.579 = struct_value () [concrete] +// CHECK:STDOUT: %IndexWith.type.df6: type = generic_interface_type @IndexWith [concrete] +// CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.df6 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -673,7 +673,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.IndexWith: %IndexWith.type.579 = import_ref Core//prelude/operators/index, IndexWith, loaded [concrete = constants.%IndexWith.generic] +// CHECK:STDOUT: %Core.IndexWith: %IndexWith.type.df6 = import_ref Core//prelude/operators/index, IndexWith, loaded [concrete = constants.%IndexWith.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -686,17 +686,17 @@ let x: i32 = c[0]; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.98b = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc6_13.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc6_13.2: init %C to %.loc6_13.1 = class_init () [concrete = constants.%C.val] // CHECK:STDOUT: %.loc6_13.3: init %C = converted @__global_init.%.loc6, %.loc6_13.2 [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc6_13.4: ref %C = temporary %.loc6_13.1, %.loc6_13.3 [concrete = constants.%.7a6] +// CHECK:STDOUT: %.loc6_13.4: ref %C = temporary %.loc6_13.1, %.loc6_13.3 [concrete = constants.%.115] // CHECK:STDOUT: %.loc6_13.5: %C = acquire_value %.loc6_13.4 [concrete = constants.%C.val] // CHECK:STDOUT: %c: %C = value_binding c, %.loc6_13.5 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.104 = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = value_binding_pattern x [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %x: %i32 = value_binding x, [concrete = ] diff --git a/toolchain/check/testdata/operators/overloaded/left_shift.carbon b/toolchain/check/testdata/operators/overloaded/left_shift.carbon index 9cfd23ab4d65..0938cb502574 100644 --- a/toolchain/check/testdata/operators/overloaded/left_shift.carbon +++ b/toolchain/check/testdata/operators/overloaded/left_shift.carbon @@ -44,40 +44,40 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %LeftShiftWith.type.7bf: type = facet_type <@LeftShiftWith, @LeftShiftWith(%C)> [concrete] +// CHECK:STDOUT: %LeftShiftWith.type.d38: type = facet_type <@LeftShiftWith, @LeftShiftWith(%C)> [concrete] // CHECK:STDOUT: %LeftShiftWith.impl_witness: = impl_witness @C.as.LeftShiftWith.impl.%LeftShiftWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.LeftShiftWith.impl.Op.type: type = fn_type @C.as.LeftShiftWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.LeftShiftWith.impl.Op: %C.as.LeftShiftWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %LeftShiftWith.facet: %LeftShiftWith.type.7bf = facet_value %C, (%LeftShiftWith.impl_witness) [concrete] -// CHECK:STDOUT: %LeftShiftWith.WithSelf.Op.type.034: type = fn_type @LeftShiftWith.WithSelf.Op, @LeftShiftWith.WithSelf(%C, %LeftShiftWith.facet) [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.type.21e: type = facet_type <@LeftShiftAssignWith, @LeftShiftAssignWith(%C)> [concrete] +// CHECK:STDOUT: %LeftShiftWith.facet: %LeftShiftWith.type.d38 = facet_value %C, (%LeftShiftWith.impl_witness) [concrete] +// CHECK:STDOUT: %LeftShiftWith.WithSelf.Op.type.e66: type = fn_type @LeftShiftWith.WithSelf.Op, @LeftShiftWith.WithSelf(%C, %LeftShiftWith.facet) [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.type.e52: type = facet_type <@LeftShiftAssignWith, @LeftShiftAssignWith(%C)> [concrete] // CHECK:STDOUT: %LeftShiftAssignWith.impl_witness: = impl_witness @C.as.LeftShiftAssignWith.impl.%LeftShiftAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.LeftShiftAssignWith.impl.Op.type: type = fn_type @C.as.LeftShiftAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.LeftShiftAssignWith.impl.Op: %C.as.LeftShiftAssignWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.facet: %LeftShiftAssignWith.type.21e = facet_value %C, (%LeftShiftAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.3b8: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%C, %LeftShiftAssignWith.facet) [concrete] -// CHECK:STDOUT: %.dd4: type = fn_type_with_self_type %LeftShiftWith.WithSelf.Op.type.034, %LeftShiftWith.facet [concrete] -// CHECK:STDOUT: %ptr.9a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.5ea: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.3b8, %LeftShiftAssignWith.facet [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.facet: %LeftShiftAssignWith.type.e52 = facet_value %C, (%LeftShiftAssignWith.impl_witness) [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.049: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%C, %LeftShiftAssignWith.facet) [concrete] +// CHECK:STDOUT: %.ff5: type = fn_type_with_self_type %LeftShiftWith.WithSelf.Op.type.e66, %LeftShiftWith.facet [concrete] +// CHECK:STDOUT: %ptr.00e: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.845: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.049, %LeftShiftAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestOp(%a.param: %C, %b.param: %C) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem1: %.dd4 = impl_witness_access constants.%LeftShiftWith.impl_witness, element1 [concrete = constants.%C.as.LeftShiftWith.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.ff5 = impl_witness_access constants.%LeftShiftWith.impl_witness, element1 [concrete = constants.%C.as.LeftShiftWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: // CHECK:STDOUT: %C.as.LeftShiftWith.impl.Op.call: init %C to %.loc30_26.1 = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: return %C.as.LeftShiftWith.impl.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.9a8, %b.param: %C) { +// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.00e, %b.param: %C) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %ptr.9a8 = name_ref a, %a +// CHECK:STDOUT: %a.ref: %ptr.00e = name_ref a, %a // CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.5ea = impl_witness_access constants.%LeftShiftAssignWith.impl_witness, element0 [concrete = constants.%C.as.LeftShiftAssignWith.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.845 = impl_witness_access constants.%LeftShiftAssignWith.impl_witness, element0 [concrete = constants.%C.as.LeftShiftAssignWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 // CHECK:STDOUT: %C.as.LeftShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method(%.loc38, %b.ref) // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/mod.carbon b/toolchain/check/testdata/operators/overloaded/mod.carbon index 96ceb0062ec2..9728abf16680 100644 --- a/toolchain/check/testdata/operators/overloaded/mod.carbon +++ b/toolchain/check/testdata/operators/overloaded/mod.carbon @@ -44,40 +44,40 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ModWith.type.fee: type = facet_type <@ModWith, @ModWith(%C)> [concrete] +// CHECK:STDOUT: %ModWith.type.6a7: type = facet_type <@ModWith, @ModWith(%C)> [concrete] // CHECK:STDOUT: %ModWith.impl_witness: = impl_witness @C.as.ModWith.impl.%ModWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.ModWith.impl.Op.type: type = fn_type @C.as.ModWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.ModWith.impl.Op: %C.as.ModWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %ModWith.facet: %ModWith.type.fee = facet_value %C, (%ModWith.impl_witness) [concrete] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.db6: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%C, %ModWith.facet) [concrete] -// CHECK:STDOUT: %ModAssignWith.type.e0e: type = facet_type <@ModAssignWith, @ModAssignWith(%C)> [concrete] +// CHECK:STDOUT: %ModWith.facet: %ModWith.type.6a7 = facet_value %C, (%ModWith.impl_witness) [concrete] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.118: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%C, %ModWith.facet) [concrete] +// CHECK:STDOUT: %ModAssignWith.type.6e3: type = facet_type <@ModAssignWith, @ModAssignWith(%C)> [concrete] // CHECK:STDOUT: %ModAssignWith.impl_witness: = impl_witness @C.as.ModAssignWith.impl.%ModAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.ModAssignWith.impl.Op.type: type = fn_type @C.as.ModAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.ModAssignWith.impl.Op: %C.as.ModAssignWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %ModAssignWith.facet: %ModAssignWith.type.e0e = facet_value %C, (%ModAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.623: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%C, %ModAssignWith.facet) [concrete] -// CHECK:STDOUT: %.bb5: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.db6, %ModWith.facet [concrete] -// CHECK:STDOUT: %ptr.9a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.d44: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.623, %ModAssignWith.facet [concrete] +// CHECK:STDOUT: %ModAssignWith.facet: %ModAssignWith.type.6e3 = facet_value %C, (%ModAssignWith.impl_witness) [concrete] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.849: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%C, %ModAssignWith.facet) [concrete] +// CHECK:STDOUT: %.4e6: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.118, %ModWith.facet [concrete] +// CHECK:STDOUT: %ptr.00e: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.da5: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.849, %ModAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestOp(%a.param: %C, %b.param: %C) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem1: %.bb5 = impl_witness_access constants.%ModWith.impl_witness, element1 [concrete = constants.%C.as.ModWith.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.4e6 = impl_witness_access constants.%ModWith.impl_witness, element1 [concrete = constants.%C.as.ModWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: // CHECK:STDOUT: %C.as.ModWith.impl.Op.call: init %C to %.loc30_26.1 = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: return %C.as.ModWith.impl.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.9a8, %b.param: %C) { +// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.00e, %b.param: %C) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %ptr.9a8 = name_ref a, %a +// CHECK:STDOUT: %a.ref: %ptr.00e = name_ref a, %a // CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.d44 = impl_witness_access constants.%ModAssignWith.impl_witness, element0 [concrete = constants.%C.as.ModAssignWith.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.da5 = impl_witness_access constants.%ModAssignWith.impl_witness, element0 [concrete = constants.%C.as.ModAssignWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 // CHECK:STDOUT: %C.as.ModAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method(%.loc38, %b.ref) // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/mul.carbon b/toolchain/check/testdata/operators/overloaded/mul.carbon index 2c15b4778cc7..f4307196a89f 100644 --- a/toolchain/check/testdata/operators/overloaded/mul.carbon +++ b/toolchain/check/testdata/operators/overloaded/mul.carbon @@ -44,40 +44,40 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %MulWith.type.e10: type = facet_type <@MulWith, @MulWith(%C)> [concrete] +// CHECK:STDOUT: %MulWith.type.63d: type = facet_type <@MulWith, @MulWith(%C)> [concrete] // CHECK:STDOUT: %MulWith.impl_witness: = impl_witness @C.as.MulWith.impl.%MulWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.MulWith.impl.Op.type: type = fn_type @C.as.MulWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.MulWith.impl.Op: %C.as.MulWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %MulWith.facet: %MulWith.type.e10 = facet_value %C, (%MulWith.impl_witness) [concrete] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.dc9: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%C, %MulWith.facet) [concrete] -// CHECK:STDOUT: %MulAssignWith.type.9f0: type = facet_type <@MulAssignWith, @MulAssignWith(%C)> [concrete] +// CHECK:STDOUT: %MulWith.facet: %MulWith.type.63d = facet_value %C, (%MulWith.impl_witness) [concrete] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.02d: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%C, %MulWith.facet) [concrete] +// CHECK:STDOUT: %MulAssignWith.type.b55: type = facet_type <@MulAssignWith, @MulAssignWith(%C)> [concrete] // CHECK:STDOUT: %MulAssignWith.impl_witness: = impl_witness @C.as.MulAssignWith.impl.%MulAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.MulAssignWith.impl.Op.type: type = fn_type @C.as.MulAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.MulAssignWith.impl.Op: %C.as.MulAssignWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %MulAssignWith.facet: %MulAssignWith.type.9f0 = facet_value %C, (%MulAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.a05: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%C, %MulAssignWith.facet) [concrete] -// CHECK:STDOUT: %.77f: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.dc9, %MulWith.facet [concrete] -// CHECK:STDOUT: %ptr.9a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.9ed: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.a05, %MulAssignWith.facet [concrete] +// CHECK:STDOUT: %MulAssignWith.facet: %MulAssignWith.type.b55 = facet_value %C, (%MulAssignWith.impl_witness) [concrete] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.1ae: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%C, %MulAssignWith.facet) [concrete] +// CHECK:STDOUT: %.36e: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.02d, %MulWith.facet [concrete] +// CHECK:STDOUT: %ptr.00e: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.822: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.1ae, %MulAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestOp(%a.param: %C, %b.param: %C) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem1: %.77f = impl_witness_access constants.%MulWith.impl_witness, element1 [concrete = constants.%C.as.MulWith.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.36e = impl_witness_access constants.%MulWith.impl_witness, element1 [concrete = constants.%C.as.MulWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: // CHECK:STDOUT: %C.as.MulWith.impl.Op.call: init %C to %.loc30_26.1 = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: return %C.as.MulWith.impl.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.9a8, %b.param: %C) { +// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.00e, %b.param: %C) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %ptr.9a8 = name_ref a, %a +// CHECK:STDOUT: %a.ref: %ptr.00e = name_ref a, %a // CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.9ed = impl_witness_access constants.%MulAssignWith.impl_witness, element0 [concrete = constants.%C.as.MulAssignWith.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.822 = impl_witness_access constants.%MulAssignWith.impl_witness, element0 [concrete = constants.%C.as.MulAssignWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 // CHECK:STDOUT: %C.as.MulAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method(%.loc38, %b.ref) // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/negate.carbon b/toolchain/check/testdata/operators/overloaded/negate.carbon index dc7479a38793..7a707da7ee35 100644 --- a/toolchain/check/testdata/operators/overloaded/negate.carbon +++ b/toolchain/check/testdata/operators/overloaded/negate.carbon @@ -39,14 +39,14 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: %C.as.Negate.impl.Op.type: type = fn_type @C.as.Negate.impl.Op [concrete] // CHECK:STDOUT: %C.as.Negate.impl.Op: %C.as.Negate.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value %C, (%Negate.impl_witness) [concrete] -// CHECK:STDOUT: %Negate.WithSelf.Op.type.a0e: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] -// CHECK:STDOUT: %.456: type = fn_type_with_self_type %Negate.WithSelf.Op.type.a0e, %Negate.facet [concrete] +// CHECK:STDOUT: %Negate.WithSelf.Op.type.0da: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete] +// CHECK:STDOUT: %.962: type = fn_type_with_self_type %Negate.WithSelf.Op.type.0da, %Negate.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestOp(%a.param: %C) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a -// CHECK:STDOUT: %impl.elem1: %.456 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%C.as.Negate.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.962 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%C.as.Negate.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: // CHECK:STDOUT: %C.as.Negate.impl.Op.call: init %C to %.loc27_20.1 = call %bound_method(%a.ref) diff --git a/toolchain/check/testdata/operators/overloaded/ordered.carbon b/toolchain/check/testdata/operators/overloaded/ordered.carbon index 65e7bf1541f1..2f18e9bee51f 100644 --- a/toolchain/check/testdata/operators/overloaded/ordered.carbon +++ b/toolchain/check/testdata/operators/overloaded/ordered.carbon @@ -85,13 +85,13 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %OrderedWith.type.b9f: type = generic_interface_type @OrderedWith [concrete] -// CHECK:STDOUT: %OrderedWith.generic: %OrderedWith.type.b9f = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.type.ad8: type = generic_interface_type @OrderedWith [concrete] +// CHECK:STDOUT: %OrderedWith.generic: %OrderedWith.type.ad8 = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] // CHECK:STDOUT: %.f34: Core.Form = init_form bool [concrete] -// CHECK:STDOUT: %OrderedWith.type.4e3: type = facet_type <@OrderedWith, @OrderedWith(%C)> [concrete] +// CHECK:STDOUT: %OrderedWith.type.108: type = facet_type <@OrderedWith, @OrderedWith(%C)> [concrete] // CHECK:STDOUT: %OrderedWith.impl_witness: = impl_witness @C.as.OrderedWith.impl.%OrderedWith.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.309: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.4a7: type = pattern_type %C [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %C.as.OrderedWith.impl.Less.type: type = fn_type @C.as.OrderedWith.impl.Less [concrete] @@ -102,23 +102,23 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %C.as.OrderedWith.impl.Greater: %C.as.OrderedWith.impl.Greater.type = struct_value () [concrete] // CHECK:STDOUT: %C.as.OrderedWith.impl.GreaterOrEquivalent.type: type = fn_type @C.as.OrderedWith.impl.GreaterOrEquivalent [concrete] // CHECK:STDOUT: %C.as.OrderedWith.impl.GreaterOrEquivalent: %C.as.OrderedWith.impl.GreaterOrEquivalent.type = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet: %OrderedWith.type.4e3 = facet_value %C, (%OrderedWith.impl_witness) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.7a8: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%C, %OrderedWith.facet) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.dbd: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%C, %OrderedWith.facet) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.9ae: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%C, %OrderedWith.facet) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.62a: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%C, %OrderedWith.facet) [concrete] +// CHECK:STDOUT: %OrderedWith.facet: %OrderedWith.type.108 = facet_value %C, (%OrderedWith.impl_witness) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.671: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%C, %OrderedWith.facet) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.392: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%C, %OrderedWith.facet) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.2b0: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%C, %OrderedWith.facet) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.9fb: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%C, %OrderedWith.facet) [concrete] // CHECK:STDOUT: %TestLess.type: type = fn_type @TestLess [concrete] // CHECK:STDOUT: %TestLess: %TestLess.type = struct_value () [concrete] -// CHECK:STDOUT: %.cd9: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.7a8, %OrderedWith.facet [concrete] +// CHECK:STDOUT: %.e71: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.671, %OrderedWith.facet [concrete] // CHECK:STDOUT: %TestLessEqual.type: type = fn_type @TestLessEqual [concrete] // CHECK:STDOUT: %TestLessEqual: %TestLessEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %.3cb: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.dbd, %OrderedWith.facet [concrete] +// CHECK:STDOUT: %.d4d: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.392, %OrderedWith.facet [concrete] // CHECK:STDOUT: %TestGreater.type: type = fn_type @TestGreater [concrete] // CHECK:STDOUT: %TestGreater: %TestGreater.type = struct_value () [concrete] -// CHECK:STDOUT: %.08a: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.9ae, %OrderedWith.facet [concrete] +// CHECK:STDOUT: %.f13: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.2b0, %OrderedWith.facet [concrete] // CHECK:STDOUT: %TestGreaterEqual.type: type = fn_type @TestGreaterEqual [concrete] // CHECK:STDOUT: %TestGreaterEqual: %TestGreaterEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %.9d7: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.62a, %OrderedWith.facet [concrete] +// CHECK:STDOUT: %.909: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.9fb, %OrderedWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -128,7 +128,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.OrderedWith: %OrderedWith.type.b9f = import_ref Core//prelude/operators/comparison, OrderedWith, loaded [concrete = constants.%OrderedWith.generic] +// CHECK:STDOUT: %Core.OrderedWith: %OrderedWith.type.ad8 = import_ref Core//prelude/operators/comparison, OrderedWith, loaded [concrete = constants.%OrderedWith.generic] // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/types/bool, Bool, loaded [concrete = constants.%Bool] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -146,15 +146,15 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: impl_decl @C.as.OrderedWith.impl [concrete] {} { // CHECK:STDOUT: %C.ref.loc6_6: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %OrderedWith.ref: %OrderedWith.type.b9f = name_ref OrderedWith, imports.%Core.OrderedWith [concrete = constants.%OrderedWith.generic] +// CHECK:STDOUT: %OrderedWith.ref: %OrderedWith.type.ad8 = name_ref OrderedWith, imports.%Core.OrderedWith [concrete = constants.%OrderedWith.generic] // CHECK:STDOUT: %C.ref.loc6_28: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %OrderedWith.type: type = facet_type <@OrderedWith, @OrderedWith(constants.%C)> [concrete = constants.%OrderedWith.type.4e3] +// CHECK:STDOUT: %OrderedWith.type: type = facet_type <@OrderedWith, @OrderedWith(constants.%C)> [concrete = constants.%OrderedWith.type.108] // CHECK:STDOUT: } // CHECK:STDOUT: %TestLess.decl: %TestLess.type = fn_decl @TestLess [concrete = constants.%TestLess] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.309 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.309 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.4a7 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.4a7 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc13_28.1 [concrete] // CHECK:STDOUT: } { @@ -170,10 +170,10 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestLessEqual.decl: %TestLessEqual.type = fn_decl @TestLessEqual [concrete = constants.%TestLessEqual] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.309 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.309 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.4a7 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.4a7 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc17_33.1 [concrete] // CHECK:STDOUT: } { @@ -189,10 +189,10 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestGreater.decl: %TestGreater.type = fn_decl @TestGreater [concrete = constants.%TestGreater] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.309 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.309 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.4a7 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.4a7 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc21_31.1 [concrete] // CHECK:STDOUT: } { @@ -208,10 +208,10 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestGreaterEqual.decl: %TestGreaterEqual.type = fn_decl @TestGreaterEqual [concrete = constants.%TestGreaterEqual] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.309 = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.309 = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.4a7 = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.4a7 = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc25_36.1 [concrete] // CHECK:STDOUT: } { @@ -230,10 +230,10 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: // CHECK:STDOUT: impl @C.as.OrderedWith.impl: %C.ref.loc6_6 as %OrderedWith.type { // CHECK:STDOUT: %C.as.OrderedWith.impl.Less.decl: %C.as.OrderedWith.impl.Less.type = fn_decl @C.as.OrderedWith.impl.Less [concrete = constants.%C.as.OrderedWith.impl.Less] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.309 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.309 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.4a7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.4a7 = at_binding_pattern other, %other.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc7_33.1 [concrete] // CHECK:STDOUT: } { @@ -249,10 +249,10 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.as.OrderedWith.impl.LessOrEquivalent.decl: %C.as.OrderedWith.impl.LessOrEquivalent.type = fn_decl @C.as.OrderedWith.impl.LessOrEquivalent [concrete = constants.%C.as.OrderedWith.impl.LessOrEquivalent] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.309 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.309 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.4a7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.4a7 = at_binding_pattern other, %other.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc8_45.1 [concrete] // CHECK:STDOUT: } { @@ -268,10 +268,10 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.as.OrderedWith.impl.Greater.decl: %C.as.OrderedWith.impl.Greater.type = fn_decl @C.as.OrderedWith.impl.Greater [concrete = constants.%C.as.OrderedWith.impl.Greater] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.309 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.309 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.4a7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.4a7 = at_binding_pattern other, %other.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc9_36.1 [concrete] // CHECK:STDOUT: } { @@ -287,10 +287,10 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.as.OrderedWith.impl.GreaterOrEquivalent.decl: %C.as.OrderedWith.impl.GreaterOrEquivalent.type = fn_decl @C.as.OrderedWith.impl.GreaterOrEquivalent [concrete = constants.%C.as.OrderedWith.impl.GreaterOrEquivalent] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.309 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: %pattern_type.309 = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: %pattern_type.309 = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.4a7 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: %pattern_type.4a7 = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: %pattern_type.4a7 = at_binding_pattern other, %other.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc10_48.1 [concrete] // CHECK:STDOUT: } { @@ -338,7 +338,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.cd9 = impl_witness_access constants.%OrderedWith.impl_witness, element0 [concrete = constants.%C.as.OrderedWith.impl.Less] +// CHECK:STDOUT: %impl.elem0: %.e71 = impl_witness_access constants.%OrderedWith.impl_witness, element0 [concrete = constants.%C.as.OrderedWith.impl.Less] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %C.as.OrderedWith.impl.Less.call: init bool = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: return %C.as.OrderedWith.impl.Less.call @@ -348,7 +348,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem1: %.3cb = impl_witness_access constants.%OrderedWith.impl_witness, element1 [concrete = constants.%C.as.OrderedWith.impl.LessOrEquivalent] +// CHECK:STDOUT: %impl.elem1: %.d4d = impl_witness_access constants.%OrderedWith.impl_witness, element1 [concrete = constants.%C.as.OrderedWith.impl.LessOrEquivalent] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: %C.as.OrderedWith.impl.LessOrEquivalent.call: init bool = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: return %C.as.OrderedWith.impl.LessOrEquivalent.call @@ -358,7 +358,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem2: %.08a = impl_witness_access constants.%OrderedWith.impl_witness, element2 [concrete = constants.%C.as.OrderedWith.impl.Greater] +// CHECK:STDOUT: %impl.elem2: %.f13 = impl_witness_access constants.%OrderedWith.impl_witness, element2 [concrete = constants.%C.as.OrderedWith.impl.Greater] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem2 // CHECK:STDOUT: %C.as.OrderedWith.impl.Greater.call: init bool = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: return %C.as.OrderedWith.impl.Greater.call @@ -368,7 +368,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem3: %.9d7 = impl_witness_access constants.%OrderedWith.impl_witness, element3 [concrete = constants.%C.as.OrderedWith.impl.GreaterOrEquivalent] +// CHECK:STDOUT: %impl.elem3: %.909 = impl_witness_access constants.%OrderedWith.impl_witness, element3 [concrete = constants.%C.as.OrderedWith.impl.GreaterOrEquivalent] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem3 // CHECK:STDOUT: %C.as.OrderedWith.impl.GreaterOrEquivalent.call: init bool = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: return %C.as.OrderedWith.impl.GreaterOrEquivalent.call @@ -380,15 +380,15 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.b4f: type = pattern_type %D [concrete] +// CHECK:STDOUT: %pattern_type.9dc: type = pattern_type %D [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %.f34: Core.Form = init_form bool [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] // CHECK:STDOUT: %TestLess.type: type = fn_type @TestLess [concrete] // CHECK:STDOUT: %TestLess: %TestLess.type = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.type.b9f: type = generic_interface_type @OrderedWith [concrete] -// CHECK:STDOUT: %OrderedWith.generic: %OrderedWith.type.b9f = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.type.ad8: type = generic_interface_type @OrderedWith [concrete] +// CHECK:STDOUT: %OrderedWith.generic: %OrderedWith.type.ad8 = struct_value () [concrete] // CHECK:STDOUT: %TestLessEqual.type: type = fn_type @TestLessEqual [concrete] // CHECK:STDOUT: %TestLessEqual: %TestLessEqual.type = struct_value () [concrete] // CHECK:STDOUT: %TestGreater.type: type = fn_type @TestGreater [concrete] @@ -405,7 +405,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/types/bool, Bool, loaded [concrete = constants.%Bool] -// CHECK:STDOUT: %Core.OrderedWith: %OrderedWith.type.b9f = import_ref Core//prelude/operators/comparison, OrderedWith, loaded [concrete = constants.%OrderedWith.generic] +// CHECK:STDOUT: %Core.OrderedWith: %OrderedWith.type.ad8 = import_ref Core//prelude/operators/comparison, OrderedWith, loaded [concrete = constants.%OrderedWith.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -420,10 +420,10 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %TestLess.decl: %TestLess.type = fn_decl @TestLess [concrete = constants.%TestLess] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.b4f = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.b4f = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.b4f = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.b4f = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.9dc = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9dc = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.9dc = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.9dc = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc6_28.1 [concrete] // CHECK:STDOUT: } { @@ -439,10 +439,10 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestLessEqual.decl: %TestLessEqual.type = fn_decl @TestLessEqual [concrete = constants.%TestLessEqual] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.b4f = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.b4f = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.b4f = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.b4f = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.9dc = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9dc = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.9dc = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.9dc = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc14_33.1 [concrete] // CHECK:STDOUT: } { @@ -458,10 +458,10 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestGreater.decl: %TestGreater.type = fn_decl @TestGreater [concrete = constants.%TestGreater] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.b4f = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.b4f = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.b4f = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.b4f = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.9dc = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9dc = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.9dc = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.9dc = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc22_31.1 [concrete] // CHECK:STDOUT: } { @@ -477,10 +477,10 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestGreaterEqual.decl: %TestGreaterEqual.type = fn_decl @TestGreaterEqual [concrete = constants.%TestGreaterEqual] { -// CHECK:STDOUT: %a.param_patt: %pattern_type.b4f = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: %pattern_type.b4f = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: %pattern_type.b4f = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: %pattern_type.b4f = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.9dc = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.9dc = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: %pattern_type.9dc = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.9dc = at_binding_pattern b, %b.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc30_36.1 [concrete] // CHECK:STDOUT: } { diff --git a/toolchain/check/testdata/operators/overloaded/right_shift.carbon b/toolchain/check/testdata/operators/overloaded/right_shift.carbon index a97871e011b8..c2ed374574a1 100644 --- a/toolchain/check/testdata/operators/overloaded/right_shift.carbon +++ b/toolchain/check/testdata/operators/overloaded/right_shift.carbon @@ -44,40 +44,40 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %RightShiftWith.type.4d9: type = facet_type <@RightShiftWith, @RightShiftWith(%C)> [concrete] +// CHECK:STDOUT: %RightShiftWith.type.d7e: type = facet_type <@RightShiftWith, @RightShiftWith(%C)> [concrete] // CHECK:STDOUT: %RightShiftWith.impl_witness: = impl_witness @C.as.RightShiftWith.impl.%RightShiftWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.RightShiftWith.impl.Op.type: type = fn_type @C.as.RightShiftWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.RightShiftWith.impl.Op: %C.as.RightShiftWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %RightShiftWith.facet: %RightShiftWith.type.4d9 = facet_value %C, (%RightShiftWith.impl_witness) [concrete] -// CHECK:STDOUT: %RightShiftWith.WithSelf.Op.type.3bc: type = fn_type @RightShiftWith.WithSelf.Op, @RightShiftWith.WithSelf(%C, %RightShiftWith.facet) [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.type.fd0: type = facet_type <@RightShiftAssignWith, @RightShiftAssignWith(%C)> [concrete] +// CHECK:STDOUT: %RightShiftWith.facet: %RightShiftWith.type.d7e = facet_value %C, (%RightShiftWith.impl_witness) [concrete] +// CHECK:STDOUT: %RightShiftWith.WithSelf.Op.type.0b1: type = fn_type @RightShiftWith.WithSelf.Op, @RightShiftWith.WithSelf(%C, %RightShiftWith.facet) [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.type.245: type = facet_type <@RightShiftAssignWith, @RightShiftAssignWith(%C)> [concrete] // CHECK:STDOUT: %RightShiftAssignWith.impl_witness: = impl_witness @C.as.RightShiftAssignWith.impl.%RightShiftAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.RightShiftAssignWith.impl.Op.type: type = fn_type @C.as.RightShiftAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.RightShiftAssignWith.impl.Op: %C.as.RightShiftAssignWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.facet: %RightShiftAssignWith.type.fd0 = facet_value %C, (%RightShiftAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.703: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%C, %RightShiftAssignWith.facet) [concrete] -// CHECK:STDOUT: %.793: type = fn_type_with_self_type %RightShiftWith.WithSelf.Op.type.3bc, %RightShiftWith.facet [concrete] -// CHECK:STDOUT: %ptr.9a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.d3f: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.703, %RightShiftAssignWith.facet [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.facet: %RightShiftAssignWith.type.245 = facet_value %C, (%RightShiftAssignWith.impl_witness) [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.eea: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%C, %RightShiftAssignWith.facet) [concrete] +// CHECK:STDOUT: %.748: type = fn_type_with_self_type %RightShiftWith.WithSelf.Op.type.0b1, %RightShiftWith.facet [concrete] +// CHECK:STDOUT: %ptr.00e: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.aad: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.eea, %RightShiftAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestOp(%a.param: %C, %b.param: %C) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem1: %.793 = impl_witness_access constants.%RightShiftWith.impl_witness, element1 [concrete = constants.%C.as.RightShiftWith.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.748 = impl_witness_access constants.%RightShiftWith.impl_witness, element1 [concrete = constants.%C.as.RightShiftWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: // CHECK:STDOUT: %C.as.RightShiftWith.impl.Op.call: init %C to %.loc30_26.1 = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: return %C.as.RightShiftWith.impl.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.9a8, %b.param: %C) { +// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.00e, %b.param: %C) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %ptr.9a8 = name_ref a, %a +// CHECK:STDOUT: %a.ref: %ptr.00e = name_ref a, %a // CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.d3f = impl_witness_access constants.%RightShiftAssignWith.impl_witness, element0 [concrete = constants.%C.as.RightShiftAssignWith.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.aad = impl_witness_access constants.%RightShiftAssignWith.impl_witness, element0 [concrete = constants.%C.as.RightShiftAssignWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 // CHECK:STDOUT: %C.as.RightShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method(%.loc38, %b.ref) // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/string_indexing.carbon b/toolchain/check/testdata/operators/overloaded/string_indexing.carbon index 5f6712dc06d7..8bb1008cce60 100644 --- a/toolchain/check/testdata/operators/overloaded/string_indexing.carbon +++ b/toolchain/check/testdata/operators/overloaded/string_indexing.carbon @@ -81,22 +81,22 @@ fn TestStringIndexing() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %str.abf: type = class_type @String [concrete] +// CHECK:STDOUT: %str.3d4: type = class_type @String [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %u64: type = class_type @UInt, @UInt(%int_64) [concrete] // CHECK:STDOUT: %char: type = class_type @Char [concrete] -// CHECK:STDOUT: %ptr.d63: type = ptr_type %char [concrete] -// CHECK:STDOUT: %str.c35: %ptr.d63 = string_literal "Test" [concrete] +// CHECK:STDOUT: %ptr.b46: type = ptr_type %char [concrete] +// CHECK:STDOUT: %str.4f8: %ptr.b46 = string_literal "Test" [concrete] // CHECK:STDOUT: %int_4: %u64 = int_value 4 [concrete] -// CHECK:STDOUT: %String.val: %str.abf = struct_value (%str.c35, %int_4) [concrete] +// CHECK:STDOUT: %String.val: %str.3d4 = struct_value (%str.4f8, %int_4) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestWrongType() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: -// CHECK:STDOUT: %str: %ptr.d63 = string_literal "Test" [concrete = constants.%str.c35] +// CHECK:STDOUT: %str: %ptr.b46 = string_literal "Test" [concrete = constants.%str.4f8] // CHECK:STDOUT: %int_4: %u64 = int_value 4 [concrete = constants.%int_4] -// CHECK:STDOUT: %String.val: %str.abf = struct_value (%str, %int_4) [concrete = constants.%String.val] +// CHECK:STDOUT: %String.val: %str.3d4 = struct_value (%str, %int_4) [concrete = constants.%String.val] // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: // CHECK:STDOUT: } @@ -105,31 +105,31 @@ fn TestStringIndexing() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %char: type = class_type @Char [concrete] -// CHECK:STDOUT: %pattern_type.63d: type = pattern_type %char [concrete] -// CHECK:STDOUT: %str.abf: type = class_type @String [concrete] +// CHECK:STDOUT: %pattern_type.2ff: type = pattern_type %char [concrete] +// CHECK:STDOUT: %str.3d4: type = class_type @String [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %u64: type = class_type @UInt, @UInt(%int_64) [concrete] -// CHECK:STDOUT: %ptr.d63: type = ptr_type %char [concrete] -// CHECK:STDOUT: %str.c35: %ptr.d63 = string_literal "Test" [concrete] +// CHECK:STDOUT: %ptr.b46: type = ptr_type %char [concrete] +// CHECK:STDOUT: %str.4f8: %ptr.b46 = string_literal "Test" [concrete] // CHECK:STDOUT: %int_4: %u64 = int_value 4 [concrete] -// CHECK:STDOUT: %String.val: %str.abf = struct_value (%str.c35, %int_4) [concrete] +// CHECK:STDOUT: %String.val: %str.3d4 = struct_value (%str.4f8, %int_4) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %IndexWith.type.af8: type = facet_type <@IndexWith, @IndexWith(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %IndexWith.type.385: type = facet_type <@IndexWith, @IndexWith(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.08a: type = facet_type <@ImplicitAs, @ImplicitAs(%i64)> [concrete] -// CHECK:STDOUT: %T.61c: %ImplicitAs.type.08a = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %str.as.IndexWith.impl.At.type.c1f: type = fn_type @str.as.IndexWith.impl.At, @str.as.IndexWith.impl(%T.61c) [symbolic] -// CHECK:STDOUT: %str.as.IndexWith.impl.At.2b4: %str.as.IndexWith.impl.At.type.c1f = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.fe0: = impl_witness imports.%ImplicitAs.impl_witness_table.bc4, @Core.IntLiteral.as.ImplicitAs.impl.4e8(%int_64) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.08a = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.fe0) [concrete] -// CHECK:STDOUT: %IndexWith.impl_witness.f69: = impl_witness imports.%IndexWith.impl_witness_table, @str.as.IndexWith.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %str.as.IndexWith.impl.At.type.49d: type = fn_type @str.as.IndexWith.impl.At, @str.as.IndexWith.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %str.as.IndexWith.impl.At.bdf: %str.as.IndexWith.impl.At.type.49d = struct_value () [concrete] -// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.af8 = facet_value %str.abf, (%IndexWith.impl_witness.f69) [concrete] -// CHECK:STDOUT: %IndexWith.WithSelf.At.type.62c: type = fn_type @IndexWith.WithSelf.At, @IndexWith.WithSelf(Core.IntLiteral, %IndexWith.facet) [concrete] -// CHECK:STDOUT: %.886: type = fn_type_with_self_type %IndexWith.WithSelf.At.type.62c, %IndexWith.facet [concrete] -// CHECK:STDOUT: %str.as.IndexWith.impl.At.bound: = bound_method %String.val, %str.as.IndexWith.impl.At.bdf [concrete] -// CHECK:STDOUT: %str.as.IndexWith.impl.At.specific_fn: = specific_function %str.as.IndexWith.impl.At.bdf, @str.as.IndexWith.impl.At(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.221: type = facet_type <@ImplicitAs, @ImplicitAs(%i64)> [concrete] +// CHECK:STDOUT: %T.2f3: %ImplicitAs.type.221 = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %str.as.IndexWith.impl.At.type.314: type = fn_type @str.as.IndexWith.impl.At, @str.as.IndexWith.impl(%T.2f3) [symbolic] +// CHECK:STDOUT: %str.as.IndexWith.impl.At.fa8: %str.as.IndexWith.impl.At.type.314 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.5a9: = impl_witness imports.%ImplicitAs.impl_witness_table.deb, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_64) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.221 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.5a9) [concrete] +// CHECK:STDOUT: %IndexWith.impl_witness.0e3: = impl_witness imports.%IndexWith.impl_witness_table, @str.as.IndexWith.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %str.as.IndexWith.impl.At.type.b0b: type = fn_type @str.as.IndexWith.impl.At, @str.as.IndexWith.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %str.as.IndexWith.impl.At.7f4: %str.as.IndexWith.impl.At.type.b0b = struct_value () [concrete] +// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.385 = facet_value %str.3d4, (%IndexWith.impl_witness.0e3) [concrete] +// CHECK:STDOUT: %IndexWith.WithSelf.At.type.ad6: type = fn_type @IndexWith.WithSelf.At, @IndexWith.WithSelf(Core.IntLiteral, %IndexWith.facet) [concrete] +// CHECK:STDOUT: %.182: type = fn_type_with_self_type %IndexWith.WithSelf.At.type.ad6, %IndexWith.facet [concrete] +// CHECK:STDOUT: %str.as.IndexWith.impl.At.bound: = bound_method %String.val, %str.as.IndexWith.impl.At.7f4 [concrete] +// CHECK:STDOUT: %str.as.IndexWith.impl.At.specific_fn: = specific_function %str.as.IndexWith.impl.At.7f4, @str.as.IndexWith.impl.At(%ImplicitAs.facet) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %String.val, %str.as.IndexWith.impl.At.specific_fn [concrete] // CHECK:STDOUT: %int_84: %char = int_value 84 [concrete] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] @@ -137,26 +137,26 @@ fn TestStringIndexing() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.1f3 = import_ref Core//prelude/types/string, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.c67: @str.as.IndexWith.impl.%str.as.IndexWith.impl.At.type (%str.as.IndexWith.impl.At.type.c1f) = import_ref Core//prelude/types/string, loc{{\d+_\d+}}, loaded [symbolic = @str.as.IndexWith.impl.%str.as.IndexWith.impl.At (constants.%str.as.IndexWith.impl.At.2b4)] -// CHECK:STDOUT: %IndexWith.impl_witness_table = impl_witness_table (%Core.import_ref.1f3, %Core.import_ref.c67), @str.as.IndexWith.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.154 = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.bc4 = impl_witness_table (%Core.import_ref.154), @Core.IntLiteral.as.ImplicitAs.impl.4e8 [concrete] +// CHECK:STDOUT: %Core.import_ref.c1f = import_ref Core//prelude/types/string, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.f33: @str.as.IndexWith.impl.%str.as.IndexWith.impl.At.type (%str.as.IndexWith.impl.At.type.314) = import_ref Core//prelude/types/string, loc{{\d+_\d+}}, loaded [symbolic = @str.as.IndexWith.impl.%str.as.IndexWith.impl.At (constants.%str.as.IndexWith.impl.At.fa8)] +// CHECK:STDOUT: %IndexWith.impl_witness_table = impl_witness_table (%Core.import_ref.c1f, %Core.import_ref.f33), @str.as.IndexWith.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.838 = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.deb = impl_witness_table (%Core.import_ref.838), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestStringIndexing() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.63d = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.2ff = value_binding_pattern c [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %str.loc5: %ptr.d63 = string_literal "Test" [concrete = constants.%str.c35] +// CHECK:STDOUT: %str.loc5: %ptr.b46 = string_literal "Test" [concrete = constants.%str.4f8] // CHECK:STDOUT: %int_4.loc5: %u64 = int_value 4 [concrete = constants.%int_4] -// CHECK:STDOUT: %String.val.loc5: %str.abf = struct_value (%str.loc5, %int_4.loc5) [concrete = constants.%String.val] +// CHECK:STDOUT: %String.val.loc5: %str.3d4 = struct_value (%str.loc5, %int_4.loc5) [concrete = constants.%String.val] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %impl.elem1.loc5: %.886 = impl_witness_access constants.%IndexWith.impl_witness.f69, element1 [concrete = constants.%str.as.IndexWith.impl.At.bdf] +// CHECK:STDOUT: %impl.elem1.loc5: %.182 = impl_witness_access constants.%IndexWith.impl_witness.0e3, element1 [concrete = constants.%str.as.IndexWith.impl.At.7f4] // CHECK:STDOUT: %bound_method.loc5_32.1: = bound_method %String.val.loc5, %impl.elem1.loc5 [concrete = constants.%str.as.IndexWith.impl.At.bound] -// CHECK:STDOUT: %ImplicitAs.facet.loc5: %ImplicitAs.type.08a = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.fe0) [concrete = constants.%ImplicitAs.facet] -// CHECK:STDOUT: %.loc5_32.1: %ImplicitAs.type.08a = converted Core.IntLiteral, %ImplicitAs.facet.loc5 [concrete = constants.%ImplicitAs.facet] +// CHECK:STDOUT: %ImplicitAs.facet.loc5: %ImplicitAs.type.221 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.5a9) [concrete = constants.%ImplicitAs.facet] +// CHECK:STDOUT: %.loc5_32.1: %ImplicitAs.type.221 = converted Core.IntLiteral, %ImplicitAs.facet.loc5 [concrete = constants.%ImplicitAs.facet] // CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem1.loc5, @str.as.IndexWith.impl.At(constants.%ImplicitAs.facet) [concrete = constants.%str.as.IndexWith.impl.At.specific_fn] // CHECK:STDOUT: %bound_method.loc5_32.2: = bound_method %String.val.loc5, %specific_fn.loc5 [concrete = constants.%bound_method] // CHECK:STDOUT: %str.as.IndexWith.impl.At.call.loc5: init %char = call %bound_method.loc5_32.2(%String.val.loc5, %int_0) [concrete = constants.%int_84] @@ -165,16 +165,16 @@ fn TestStringIndexing() { // CHECK:STDOUT: %.loc5_32.3: %char = converted %str.as.IndexWith.impl.At.call.loc5, %.loc5_32.2 [concrete = constants.%int_84] // CHECK:STDOUT: %c: %char = value_binding c, %.loc5_32.3 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.63d = value_binding_pattern d [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.2ff = value_binding_pattern d [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %str.loc6: %ptr.d63 = string_literal "Test" [concrete = constants.%str.c35] +// CHECK:STDOUT: %str.loc6: %ptr.b46 = string_literal "Test" [concrete = constants.%str.4f8] // CHECK:STDOUT: %int_4.loc6: %u64 = int_value 4 [concrete = constants.%int_4] -// CHECK:STDOUT: %String.val.loc6: %str.abf = struct_value (%str.loc6, %int_4.loc6) [concrete = constants.%String.val] +// CHECK:STDOUT: %String.val.loc6: %str.3d4 = struct_value (%str.loc6, %int_4.loc6) [concrete = constants.%String.val] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] -// CHECK:STDOUT: %impl.elem1.loc6: %.886 = impl_witness_access constants.%IndexWith.impl_witness.f69, element1 [concrete = constants.%str.as.IndexWith.impl.At.bdf] +// CHECK:STDOUT: %impl.elem1.loc6: %.182 = impl_witness_access constants.%IndexWith.impl_witness.0e3, element1 [concrete = constants.%str.as.IndexWith.impl.At.7f4] // CHECK:STDOUT: %bound_method.loc6_32.1: = bound_method %String.val.loc6, %impl.elem1.loc6 [concrete = constants.%str.as.IndexWith.impl.At.bound] -// CHECK:STDOUT: %ImplicitAs.facet.loc6: %ImplicitAs.type.08a = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.fe0) [concrete = constants.%ImplicitAs.facet] -// CHECK:STDOUT: %.loc6_32.1: %ImplicitAs.type.08a = converted Core.IntLiteral, %ImplicitAs.facet.loc6 [concrete = constants.%ImplicitAs.facet] +// CHECK:STDOUT: %ImplicitAs.facet.loc6: %ImplicitAs.type.221 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.5a9) [concrete = constants.%ImplicitAs.facet] +// CHECK:STDOUT: %.loc6_32.1: %ImplicitAs.type.221 = converted Core.IntLiteral, %ImplicitAs.facet.loc6 [concrete = constants.%ImplicitAs.facet] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem1.loc6, @str.as.IndexWith.impl.At(constants.%ImplicitAs.facet) [concrete = constants.%str.as.IndexWith.impl.At.specific_fn] // CHECK:STDOUT: %bound_method.loc6_32.2: = bound_method %String.val.loc6, %specific_fn.loc6 [concrete = constants.%bound_method] // CHECK:STDOUT: %str.as.IndexWith.impl.At.call.loc6: init %char = call %bound_method.loc6_32.2(%String.val.loc6, %int_3) [concrete = constants.%int_116] diff --git a/toolchain/check/testdata/operators/overloaded/sub.carbon b/toolchain/check/testdata/operators/overloaded/sub.carbon index bf809523c627..5a366cf4c9cf 100644 --- a/toolchain/check/testdata/operators/overloaded/sub.carbon +++ b/toolchain/check/testdata/operators/overloaded/sub.carbon @@ -44,40 +44,40 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %SubWith.type.b3c: type = facet_type <@SubWith, @SubWith(%C)> [concrete] +// CHECK:STDOUT: %SubWith.type.3b5: type = facet_type <@SubWith, @SubWith(%C)> [concrete] // CHECK:STDOUT: %SubWith.impl_witness: = impl_witness @C.as.SubWith.impl.%SubWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.SubWith.impl.Op.type: type = fn_type @C.as.SubWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.SubWith.impl.Op: %C.as.SubWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %SubWith.facet: %SubWith.type.b3c = facet_value %C, (%SubWith.impl_witness) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.b25: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%C, %SubWith.facet) [concrete] -// CHECK:STDOUT: %SubAssignWith.type.192: type = facet_type <@SubAssignWith, @SubAssignWith(%C)> [concrete] +// CHECK:STDOUT: %SubWith.facet: %SubWith.type.3b5 = facet_value %C, (%SubWith.impl_witness) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.928: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%C, %SubWith.facet) [concrete] +// CHECK:STDOUT: %SubAssignWith.type.bf0: type = facet_type <@SubAssignWith, @SubAssignWith(%C)> [concrete] // CHECK:STDOUT: %SubAssignWith.impl_witness: = impl_witness @C.as.SubAssignWith.impl.%SubAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.SubAssignWith.impl.Op.type: type = fn_type @C.as.SubAssignWith.impl.Op [concrete] // CHECK:STDOUT: %C.as.SubAssignWith.impl.Op: %C.as.SubAssignWith.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %SubAssignWith.facet: %SubAssignWith.type.192 = facet_value %C, (%SubAssignWith.impl_witness) [concrete] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.ba4: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%C, %SubAssignWith.facet) [concrete] -// CHECK:STDOUT: %.0e9: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.b25, %SubWith.facet [concrete] -// CHECK:STDOUT: %ptr.9a8: type = ptr_type %C [concrete] -// CHECK:STDOUT: %.e63: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.ba4, %SubAssignWith.facet [concrete] +// CHECK:STDOUT: %SubAssignWith.facet: %SubAssignWith.type.bf0 = facet_value %C, (%SubAssignWith.impl_witness) [concrete] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.737: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%C, %SubAssignWith.facet) [concrete] +// CHECK:STDOUT: %.d45: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.928, %SubWith.facet [concrete] +// CHECK:STDOUT: %ptr.00e: type = ptr_type %C [concrete] +// CHECK:STDOUT: %.d38: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.737, %SubAssignWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TestOp(%a.param: %C, %b.param: %C) -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem1: %.0e9 = impl_witness_access constants.%SubWith.impl_witness, element1 [concrete = constants.%C.as.SubWith.impl.Op] +// CHECK:STDOUT: %impl.elem1: %.d45 = impl_witness_access constants.%SubWith.impl_witness, element1 [concrete = constants.%C.as.SubWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: // CHECK:STDOUT: %C.as.SubWith.impl.Op.call: init %C to %.loc30_26.1 = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: return %C.as.SubWith.impl.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.9a8, %b.param: %C) { +// CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.00e, %b.param: %C) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: %ptr.9a8 = name_ref a, %a +// CHECK:STDOUT: %a.ref: %ptr.00e = name_ref a, %a // CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.e63 = impl_witness_access constants.%SubAssignWith.impl_witness, element0 [concrete = constants.%C.as.SubAssignWith.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.d38 = impl_witness_access constants.%SubAssignWith.impl_witness, element0 [concrete = constants.%C.as.SubAssignWith.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 // CHECK:STDOUT: %C.as.SubAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method(%.loc38, %b.ref) // CHECK:STDOUT: diff --git a/toolchain/check/testdata/package_expr/fail_not_found.carbon b/toolchain/check/testdata/package_expr/fail_not_found.carbon index 6044675e1cc1..51af46b903d3 100644 --- a/toolchain/check/testdata/package_expr/fail_not_found.carbon +++ b/toolchain/check/testdata/package_expr/fail_not_found.carbon @@ -31,10 +31,10 @@ fn Main() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc20_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -61,8 +61,8 @@ fn Main() { // CHECK:STDOUT: fn @Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.104 = ref_binding_pattern y [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type.104 = var_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.6b6 = ref_binding_pattern y [concrete] +// CHECK:STDOUT: %y.var_patt: %pattern_type.6b6 = var_pattern %y.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %y.var: ref %i32 = var %y.var_patt // CHECK:STDOUT: %package.ref: = name_ref package, package [concrete = package] @@ -70,7 +70,7 @@ fn Main() { // CHECK:STDOUT: assign %y.var, // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %y: ref %i32 = ref_binding y, %y.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %y.var, constants.%Destroy.Op.2dd605.2 +// 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: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/package_expr/syntax.carbon b/toolchain/check/testdata/package_expr/syntax.carbon index cd397db1405b..33f2de04ed8a 100644 --- a/toolchain/check/testdata/package_expr/syntax.carbon +++ b/toolchain/check/testdata/package_expr/syntax.carbon @@ -53,34 +53,34 @@ fn Main() { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -92,12 +92,12 @@ fn Main() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -108,15 +108,15 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.104 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.104 = var_pattern %x.patt [concrete] +// 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: } // CHECK:STDOUT: %x.var: ref %i32 = var %x.var_patt [concrete] // CHECK:STDOUT: %i32.loc4: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %x: ref %i32 = ref_binding x, %x.var [concrete = %x.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.104 = ref_binding_pattern y [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type.104 = var_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.6b6 = ref_binding_pattern y [concrete] +// CHECK:STDOUT: %y.var_patt: %pattern_type.6b6 = var_pattern %y.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %y.var: ref %i32 = var %y.var_patt [concrete] // CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -126,17 +126,17 @@ fn Main() { // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc4: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc4: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc4_1.1: = bound_method %int_0, %impl.elem0.loc4 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc4: = specific_function %impl.elem0.loc4, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc4_1.2: = bound_method %int_0, %specific_fn.loc4 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc4_1.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc4_1.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign file.%x.var, %.loc4 // CHECK:STDOUT: %package.ref: = name_ref package, package [concrete = package] // CHECK:STDOUT: %x.ref: ref %i32 = name_ref x, file.%x [concrete = file.%x.var] // CHECK:STDOUT: %.loc5: %i32 = acquire_value %x.ref -// CHECK:STDOUT: %impl.elem0.loc5: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc5: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc5_21.1: = bound_method %.loc5, %impl.elem0.loc5 // CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc5_21.2: = bound_method %.loc5, %specific_fn.loc5 @@ -155,43 +155,43 @@ fn Main() { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.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: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = 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] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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.790b3b.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -204,12 +204,12 @@ fn Main() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -221,8 +221,8 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.104 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.104 = var_pattern %x.patt [concrete] +// 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: } // CHECK:STDOUT: %x.var: ref %i32 = var %x.var_patt [concrete] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -233,29 +233,29 @@ fn Main() { // CHECK:STDOUT: fn @Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.104 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.104 = var_pattern %x.patt [concrete] +// 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: } // CHECK:STDOUT: %x.var: ref %i32 = var %x.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc7: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %int_1, %impl.elem0.loc7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc7: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %int_1, %impl.elem0.loc7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %int_1, %specific_fn.loc7 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc7_3.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc7: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %int_1, %specific_fn.loc7 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc7_3.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] // CHECK:STDOUT: assign %x.var, %.loc7 // CHECK:STDOUT: %i32.loc7: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %x: ref %i32 = ref_binding x, %x.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.104 = ref_binding_pattern y [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type.104 = var_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.6b6 = ref_binding_pattern y [concrete] +// CHECK:STDOUT: %y.var_patt: %pattern_type.6b6 = var_pattern %y.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %y.var: ref %i32 = var %y.var_patt // CHECK:STDOUT: %package.ref: = name_ref package, package [concrete = package] // CHECK:STDOUT: %x.ref: ref %i32 = name_ref x, file.%x [concrete = file.%x.var] // CHECK:STDOUT: %.loc9: %i32 = acquire_value %x.ref -// CHECK:STDOUT: %impl.elem0.loc9: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc9: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc9_30.1: = bound_method %.loc9, %impl.elem0.loc9 // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9_30.2: = bound_method %.loc9, %specific_fn.loc9 @@ -263,9 +263,9 @@ fn Main() { // CHECK:STDOUT: assign %y.var, %Int.as.Copy.impl.Op.call // CHECK:STDOUT: %i32.loc9: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %y: ref %i32 = ref_binding y, %y.var -// CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %y.var, constants.%Destroy.Op.2dd605.2 +// 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.2dd605.2 +// 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: return // CHECK:STDOUT: } @@ -280,12 +280,12 @@ fn Main() { // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc4_1.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc4_1.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc4_1.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc4_1.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc4_1.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc4_1.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign file.%x.var, %.loc4 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/packages/cross_package_export.carbon b/toolchain/check/testdata/packages/cross_package_export.carbon index 39d0433ac640..16c84e721111 100644 --- a/toolchain/check/testdata/packages/cross_package_export.carbon +++ b/toolchain/check/testdata/packages/cross_package_export.carbon @@ -293,8 +293,8 @@ alias C = Other.C; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other.C: type = import_ref Other//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.56d: = import_ref Other//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.862 = import_ref Other//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Other.import_ref.657 = import_ref Other//base, loc5_8, unloaded +// CHECK:STDOUT: %Other.import_ref.0cc = import_ref Other//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.d54 = import_ref Other//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -309,8 +309,8 @@ alias C = Other.C; // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.862 -// CHECK:STDOUT: .x = imports.%Other.import_ref.657 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.0cc +// CHECK:STDOUT: .x = imports.%Other.import_ref.d54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export_name_copy.carbon @@ -325,8 +325,8 @@ alias C = Other.C; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other.C: type = import_ref Other//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.56d: = import_ref Other//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.862 = import_ref Other//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Other.import_ref.657 = import_ref Other//base, loc5_8, unloaded +// CHECK:STDOUT: %Other.import_ref.0cc = import_ref Other//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.d54 = import_ref Other//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -341,8 +341,8 @@ alias C = Other.C; // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.862 -// CHECK:STDOUT: .x = imports.%Other.import_ref.657 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.0cc +// CHECK:STDOUT: .x = imports.%Other.import_ref.d54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export_name_indirect.carbon @@ -357,8 +357,8 @@ alias C = Other.C; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other.C: type = import_ref Other//export_name, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.ad3: = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.b85 = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Other.import_ref.2e5 = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.4fa = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.625 = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -373,8 +373,8 @@ alias C = Other.C; // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.ad3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.b85 -// CHECK:STDOUT: .x = imports.%Other.import_ref.2e5 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.4fa +// CHECK:STDOUT: .x = imports.%Other.import_ref.625 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_export_import.carbon @@ -387,7 +387,7 @@ alias C = Other.C; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.37a: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.0c9: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -399,8 +399,8 @@ alias C = Other.C; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.56d: = import_ref Other//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.862 = import_ref Other//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Other.import_ref.657 = import_ref Other//base, loc5_8, unloaded +// CHECK:STDOUT: %Other.import_ref.0cc = import_ref Other//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.d54 = import_ref Other//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -425,15 +425,15 @@ alias C = Other.C; // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.862 -// CHECK:STDOUT: .x = imports.%Other.import_ref.657 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.0cc +// CHECK:STDOUT: .x = imports.%Other.import_ref.d54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc6_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_26.1: %struct_type.x = struct_literal (%.loc6_25.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc6_26.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.37a] +// CHECK:STDOUT: %.loc6_26.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.0c9] // CHECK:STDOUT: %.loc6_25.2: init %empty_tuple.type to %.loc6_26.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_26.3: init %empty_tuple.type = converted %.loc6_25.1, %.loc6_25.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_26.4: init %empty_tuple.type to %.loc6_26.2 = in_place_init %.loc6_26.3 [concrete = constants.%empty_tuple] @@ -453,7 +453,7 @@ alias C = Other.C; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.37a: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.0c9: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -466,8 +466,8 @@ alias C = Other.C; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.56d: = import_ref Other//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.862 = import_ref Other//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Other.import_ref.657 = import_ref Other//base, loc5_8, unloaded +// CHECK:STDOUT: %Other.import_ref.0cc = import_ref Other//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.d54 = import_ref Other//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -492,15 +492,15 @@ alias C = Other.C; // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.862 -// CHECK:STDOUT: .x = imports.%Other.import_ref.657 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.0cc +// CHECK:STDOUT: .x = imports.%Other.import_ref.d54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc7_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_26.1: %struct_type.x = struct_literal (%.loc7_25.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc7_26.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.37a] +// CHECK:STDOUT: %.loc7_26.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.0c9] // CHECK:STDOUT: %.loc7_25.2: init %empty_tuple.type to %.loc7_26.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_26.3: init %empty_tuple.type = converted %.loc7_25.1, %.loc7_25.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_26.4: init %empty_tuple.type to %.loc7_26.2 = in_place_init %.loc7_26.3 [concrete = constants.%empty_tuple] @@ -520,7 +520,7 @@ alias C = Other.C; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.37a: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.0c9: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -533,8 +533,8 @@ alias C = Other.C; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.56d: = import_ref Other//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.862 = import_ref Other//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Other.import_ref.657 = import_ref Other//base, loc5_8, unloaded +// CHECK:STDOUT: %Other.import_ref.0cc = import_ref Other//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.d54 = import_ref Other//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -559,15 +559,15 @@ alias C = Other.C; // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.862 -// CHECK:STDOUT: .x = imports.%Other.import_ref.657 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.0cc +// CHECK:STDOUT: .x = imports.%Other.import_ref.d54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc6_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_26.1: %struct_type.x = struct_literal (%.loc6_25.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc6_26.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.37a] +// CHECK:STDOUT: %.loc6_26.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.0c9] // CHECK:STDOUT: %.loc6_25.2: init %empty_tuple.type to %.loc6_26.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_26.3: init %empty_tuple.type = converted %.loc6_25.1, %.loc6_25.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_26.4: init %empty_tuple.type to %.loc6_26.2 = in_place_init %.loc6_26.3 [concrete = constants.%empty_tuple] @@ -587,7 +587,7 @@ alias C = Other.C; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.37a: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.0c9: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -598,8 +598,8 @@ alias C = Other.C; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//export_name, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.ad3: = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.b85 = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Other.import_ref.2e5 = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.4fa = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.625 = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -624,15 +624,15 @@ alias C = Other.C; // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.ad3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.b85 -// CHECK:STDOUT: .x = imports.%Other.import_ref.2e5 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.4fa +// CHECK:STDOUT: .x = imports.%Other.import_ref.625 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc6_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_26.1: %struct_type.x = struct_literal (%.loc6_25.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc6_26.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.37a] +// CHECK:STDOUT: %.loc6_26.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.0c9] // CHECK:STDOUT: %.loc6_25.2: init %empty_tuple.type to %.loc6_26.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_26.3: init %empty_tuple.type = converted %.loc6_25.1, %.loc6_25.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_26.4: init %empty_tuple.type to %.loc6_26.2 = in_place_init %.loc6_26.3 [concrete = constants.%empty_tuple] @@ -652,7 +652,7 @@ alias C = Other.C; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.37a: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.0c9: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -664,8 +664,8 @@ alias C = Other.C; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//export_name, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.ad3: = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.b85 = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Other.import_ref.2e5 = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.4fa = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.625 = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -690,15 +690,15 @@ alias C = Other.C; // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.ad3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.b85 -// CHECK:STDOUT: .x = imports.%Other.import_ref.2e5 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.4fa +// CHECK:STDOUT: .x = imports.%Other.import_ref.625 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc7_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_26.1: %struct_type.x = struct_literal (%.loc7_25.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc7_26.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.37a] +// CHECK:STDOUT: %.loc7_26.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.0c9] // CHECK:STDOUT: %.loc7_25.2: init %empty_tuple.type to %.loc7_26.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_26.3: init %empty_tuple.type = converted %.loc7_25.1, %.loc7_25.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_26.4: init %empty_tuple.type to %.loc7_26.2 = in_place_init %.loc7_26.3 [concrete = constants.%empty_tuple] @@ -718,7 +718,7 @@ alias C = Other.C; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.37a: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.0c9: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -729,8 +729,8 @@ alias C = Other.C; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//export_name_indirect, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.328: = import_ref Other//export_name_indirect, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.187 = import_ref Other//export_name_indirect, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Other.import_ref.4a3 = import_ref Other//export_name_indirect, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.b97 = import_ref Other//export_name_indirect, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.197 = import_ref Other//export_name_indirect, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -755,15 +755,15 @@ alias C = Other.C; // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.328 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.187 -// CHECK:STDOUT: .x = imports.%Other.import_ref.4a3 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.b97 +// CHECK:STDOUT: .x = imports.%Other.import_ref.197 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc6_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_26.1: %struct_type.x = struct_literal (%.loc6_25.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc6_26.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.37a] +// CHECK:STDOUT: %.loc6_26.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.0c9] // CHECK:STDOUT: %.loc6_25.2: init %empty_tuple.type to %.loc6_26.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_26.3: init %empty_tuple.type = converted %.loc6_25.1, %.loc6_25.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_26.4: init %empty_tuple.type to %.loc6_26.2 = in_place_init %.loc6_26.3 [concrete = constants.%empty_tuple] @@ -783,7 +783,7 @@ alias C = Other.C; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.37a: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.0c9: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -800,8 +800,8 @@ alias C = Other.C; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//export_name, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.ad3: = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.b85 = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Other.import_ref.2e5 = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.4fa = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.625 = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -826,15 +826,15 @@ alias C = Other.C; // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.ad3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.b85 -// CHECK:STDOUT: .x = imports.%Other.import_ref.2e5 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.4fa +// CHECK:STDOUT: .x = imports.%Other.import_ref.625 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc11_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc11_26.1: %struct_type.x = struct_literal (%.loc11_25.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc11_26.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.37a] +// CHECK:STDOUT: %.loc11_26.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.0c9] // CHECK:STDOUT: %.loc11_25.2: init %empty_tuple.type to %.loc11_26.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc11_26.3: init %empty_tuple.type = converted %.loc11_25.1, %.loc11_25.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc11_26.4: init %empty_tuple.type to %.loc11_26.2 = in_place_init %.loc11_26.3 [concrete = constants.%empty_tuple] @@ -924,8 +924,8 @@ alias C = Other.C; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//export_name, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.ad3: = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.b85 = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Other.import_ref.2e5 = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.4fa = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.625 = import_ref Other//export_name, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -943,7 +943,7 @@ alias C = Other.C; // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.ad3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.b85 -// CHECK:STDOUT: .x = imports.%Other.import_ref.2e5 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.4fa +// CHECK:STDOUT: .x = imports.%Other.import_ref.625 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/packages/cross_package_import.carbon b/toolchain/check/testdata/packages/cross_package_import.carbon index 495fb8411fdd..fd5efc022218 100644 --- a/toolchain/check/testdata/packages/cross_package_import.carbon +++ b/toolchain/check/testdata/packages/cross_package_import.carbon @@ -480,10 +480,10 @@ fn UseF() { Other.F(); } // CHECK:STDOUT: --- fail_main_namespace_conflict.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %F.type.bae36f.1: type = fn_type @F.1 [concrete] -// CHECK:STDOUT: %F.55fa57.1: %F.type.bae36f.1 = struct_value () [concrete] -// CHECK:STDOUT: %F.type.bae36f.2: type = fn_type @F.loc23 [concrete] -// CHECK:STDOUT: %F.55fa57.2: %F.type.bae36f.2 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.2a8c71.1: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.1be9f8.1: %F.type.2a8c71.1 = struct_value () [concrete] +// CHECK:STDOUT: %F.type.2a8c71.2: type = fn_type @F.loc23 [concrete] +// CHECK:STDOUT: %F.1be9f8.2: %F.type.2a8c71.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -492,7 +492,7 @@ fn UseF() { Other.F(); } // CHECK:STDOUT: .F = %Other.F // CHECK:STDOUT: import Other//other_fn // CHECK:STDOUT: } -// CHECK:STDOUT: %Other.F: %F.type.bae36f.1 = import_ref Other//other_fn, F, loaded [concrete = constants.%F.55fa57.1] +// CHECK:STDOUT: %Other.F: %F.type.2a8c71.1 = import_ref Other//other_fn, F, loaded [concrete = constants.%F.1be9f8.1] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -501,7 +501,7 @@ fn UseF() { Other.F(); } // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %Other.import = import Other -// CHECK:STDOUT: %F.decl: %F.type.bae36f.2 = fn_decl @F.loc23 [concrete = constants.%F.55fa57.2] {} {} +// CHECK:STDOUT: %F.decl: %F.type.2a8c71.2 = fn_decl @F.loc23 [concrete = constants.%F.1be9f8.2] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.1 [from "other_fn.carbon"]; diff --git a/toolchain/check/testdata/packages/export_import.carbon b/toolchain/check/testdata/packages/export_import.carbon index d391ed5f24bf..2318b8651e5d 100644 --- a/toolchain/check/testdata/packages/export_import.carbon +++ b/toolchain/check/testdata/packages/export_import.carbon @@ -298,15 +298,15 @@ export Poison; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -328,15 +328,15 @@ export Poison; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc6_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.1: %struct_type.x = struct_literal (%.loc6_19.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc6_19.2: init %empty_tuple.type to %.loc6_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.3: init %empty_tuple.type = converted %.loc6_19.1, %.loc6_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.4: init %empty_tuple.type to %.loc6_20.2 = in_place_init %.loc6_20.3 [concrete = constants.%empty_tuple] @@ -358,15 +358,15 @@ export Poison; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//export_export, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -389,15 +389,15 @@ export Poison; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc4_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_20.1: %struct_type.x = struct_literal (%.loc4_19.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc4_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc4_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc4_19.2: init %empty_tuple.type to %.loc4_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_20.3: init %empty_tuple.type = converted %.loc4_19.1, %.loc4_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_20.4: init %empty_tuple.type to %.loc4_20.2 = in_place_init %.loc4_20.3 [concrete = constants.%empty_tuple] @@ -417,15 +417,15 @@ export Poison; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -447,15 +447,15 @@ export Poison; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc6_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.1: %struct_type.x = struct_literal (%.loc6_19.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc6_19.2: init %empty_tuple.type to %.loc6_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.3: init %empty_tuple.type = converted %.loc6_19.1, %.loc6_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.4: init %empty_tuple.type to %.loc6_20.2 = in_place_init %.loc6_20.3 [concrete = constants.%empty_tuple] @@ -475,15 +475,15 @@ export Poison; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -505,15 +505,15 @@ export Poison; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc6_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.1: %struct_type.x = struct_literal (%.loc6_19.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc6_19.2: init %empty_tuple.type to %.loc6_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.3: init %empty_tuple.type = converted %.loc6_19.1, %.loc6_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.4: init %empty_tuple.type to %.loc6_20.2 = in_place_init %.loc6_20.3 [concrete = constants.%empty_tuple] @@ -533,15 +533,15 @@ export Poison; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -563,15 +563,15 @@ export Poison; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc6_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.1: %struct_type.x = struct_literal (%.loc6_19.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc6_19.2: init %empty_tuple.type to %.loc6_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.3: init %empty_tuple.type = converted %.loc6_19.1, %.loc6_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.4: init %empty_tuple.type to %.loc6_20.2 = in_place_init %.loc6_20.3 [concrete = constants.%empty_tuple] @@ -591,15 +591,15 @@ export Poison; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -621,15 +621,15 @@ export Poison; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc7_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.1: %struct_type.x = struct_literal (%.loc7_19.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc7_19.2: init %empty_tuple.type to %.loc7_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.3: init %empty_tuple.type = converted %.loc7_19.1, %.loc7_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.4: init %empty_tuple.type to %.loc7_20.2 = in_place_init %.loc7_20.3 [concrete = constants.%empty_tuple] @@ -649,15 +649,15 @@ export Poison; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -679,15 +679,15 @@ export Poison; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc7_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.1: %struct_type.x = struct_literal (%.loc7_19.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc7_19.2: init %empty_tuple.type to %.loc7_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.3: init %empty_tuple.type = converted %.loc7_19.1, %.loc7_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.4: init %empty_tuple.type to %.loc7_20.2 = in_place_init %.loc7_20.3 [concrete = constants.%empty_tuple] @@ -707,15 +707,15 @@ export Poison; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -737,15 +737,15 @@ export Poison; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc7_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.1: %struct_type.x = struct_literal (%.loc7_19.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc7_19.2: init %empty_tuple.type to %.loc7_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.3: init %empty_tuple.type = converted %.loc7_19.1, %.loc7_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.4: init %empty_tuple.type to %.loc7_20.2 = in_place_init %.loc7_20.3 [concrete = constants.%empty_tuple] @@ -777,15 +777,15 @@ export Poison; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -807,15 +807,15 @@ export Poison; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc7_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.1: %struct_type.x = struct_literal (%.loc7_19.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc7_19.2: init %empty_tuple.type to %.loc7_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.3: init %empty_tuple.type = converted %.loc7_19.1, %.loc7_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.4: init %empty_tuple.type to %.loc7_20.2 = in_place_init %.loc7_20.3 [concrete = constants.%empty_tuple] @@ -835,7 +835,7 @@ export Poison; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.df4: ref %empty_tuple.type = class_element_access file.%indirect_c.var, element0 [concrete] +// CHECK:STDOUT: %.ad5: ref %empty_tuple.type = class_element_access file.%indirect_c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -843,8 +843,8 @@ export Poison; // CHECK:STDOUT: %Main.c = import_ref Main//use_non_export_then_base, c, unloaded // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -867,15 +867,15 @@ export Poison; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc6_28.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_29.1: %struct_type.x = struct_literal (%.loc6_28.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc6_29.2: ref %empty_tuple.type = class_element_access file.%indirect_c.var, element0 [concrete = constants.%.df4] +// CHECK:STDOUT: %.loc6_29.2: ref %empty_tuple.type = class_element_access file.%indirect_c.var, element0 [concrete = constants.%.ad5] // CHECK:STDOUT: %.loc6_28.2: init %empty_tuple.type to %.loc6_29.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_29.3: init %empty_tuple.type = converted %.loc6_28.1, %.loc6_28.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_29.4: init %empty_tuple.type to %.loc6_29.2 = in_place_init %.loc6_29.3 [concrete = constants.%empty_tuple] diff --git a/toolchain/check/testdata/packages/export_mixed.carbon b/toolchain/check/testdata/packages/export_mixed.carbon index 37c4a8e3543d..670b5ddd7d2e 100644 --- a/toolchain/check/testdata/packages/export_mixed.carbon +++ b/toolchain/check/testdata/packages/export_mixed.carbon @@ -189,8 +189,8 @@ var d: D = {.y = ()}; // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.D = import_ref Main//base, D, unloaded // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -206,8 +206,8 @@ var d: D = {.y = ()}; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export_name.carbon @@ -223,8 +223,8 @@ var d: D = {.y = ()}; // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.D = import_ref Main//base, D, unloaded // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -240,8 +240,8 @@ var d: D = {.y = ()}; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export_name_then_import.carbon @@ -267,15 +267,15 @@ var d: D = {.y = ()}; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//export_import_then_name, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.0d5 = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.1ec = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -297,15 +297,15 @@ var d: D = {.y = ()}; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.ad3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 -// CHECK:STDOUT: .x = imports.%Main.import_ref.0d5 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 +// CHECK:STDOUT: .x = imports.%Main.import_ref.1ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc6_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.1: %struct_type.x = struct_literal (%.loc6_19.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc6_19.2: init %empty_tuple.type to %.loc6_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.3: init %empty_tuple.type = converted %.loc6_19.1, %.loc6_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.4: init %empty_tuple.type to %.loc6_20.2 = in_place_init %.loc6_20.3 [concrete = constants.%empty_tuple] @@ -325,15 +325,15 @@ var d: D = {.y = ()}; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//export_name, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export_name, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//export_name, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.0d5 = import_ref Main//export_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//export_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.1ec = import_ref Main//export_name, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -355,15 +355,15 @@ var d: D = {.y = ()}; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.ad3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 -// CHECK:STDOUT: .x = imports.%Main.import_ref.0d5 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 +// CHECK:STDOUT: .x = imports.%Main.import_ref.1ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc6_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.1: %struct_type.x = struct_literal (%.loc6_19.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc6_19.2: init %empty_tuple.type to %.loc6_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.3: init %empty_tuple.type = converted %.loc6_19.1, %.loc6_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.4: init %empty_tuple.type to %.loc6_20.2 = in_place_init %.loc6_20.3 [concrete = constants.%empty_tuple] @@ -383,15 +383,15 @@ var d: D = {.y = ()}; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//export_import_then_name, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.0d5 = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.1ec = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -413,15 +413,15 @@ var d: D = {.y = ()}; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.ad3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 -// CHECK:STDOUT: .x = imports.%Main.import_ref.0d5 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 +// CHECK:STDOUT: .x = imports.%Main.import_ref.1ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc7_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.1: %struct_type.x = struct_literal (%.loc7_19.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc7_19.2: init %empty_tuple.type to %.loc7_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.3: init %empty_tuple.type = converted %.loc7_19.1, %.loc7_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.4: init %empty_tuple.type to %.loc7_20.2 = in_place_init %.loc7_20.3 [concrete = constants.%empty_tuple] @@ -478,15 +478,15 @@ var d: D = {.y = ()}; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//export_import_then_name, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.0d5 = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.1ec = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -508,15 +508,15 @@ var d: D = {.y = ()}; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.ad3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 -// CHECK:STDOUT: .x = imports.%Main.import_ref.0d5 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 +// CHECK:STDOUT: .x = imports.%Main.import_ref.1ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc7_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.1: %struct_type.x = struct_literal (%.loc7_19.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc7_19.2: init %empty_tuple.type to %.loc7_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.3: init %empty_tuple.type = converted %.loc7_19.1, %.loc7_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.4: init %empty_tuple.type to %.loc7_20.2 = in_place_init %.loc7_20.3 [concrete = constants.%empty_tuple] @@ -533,17 +533,17 @@ var d: D = {.y = ()}; // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete] // CHECK:STDOUT: %complete_type.9be: = complete_type_witness %struct_type.x [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct.948: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %empty_tuple.type} [concrete] // CHECK:STDOUT: %complete_type.9f4: = complete_type_witness %struct_type.y [concrete] -// CHECK:STDOUT: %pattern_type.f1a: type = pattern_type %D [concrete] +// CHECK:STDOUT: %pattern_type.d8d: type = pattern_type %D [concrete] // CHECK:STDOUT: %struct.8ce: %struct_type.y = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.091: ref %empty_tuple.type = class_element_access file.%d.var, element0 [concrete] +// CHECK:STDOUT: %.15f: ref %empty_tuple.type = class_element_access file.%d.var, element0 [concrete] // CHECK:STDOUT: %D.val: %D = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -551,11 +551,11 @@ var d: D = {.y = ()}; // CHECK:STDOUT: %Main.C: type = import_ref Main//export_import_then_name, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.D: type = import_ref Main//base, D, loaded [concrete = constants.%D] // CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9be] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.0d5 = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.1ec = import_ref Main//export_import_then_name, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: %Main.import_ref.5ab: = import_ref Main//base, loc10_1, loaded [concrete = constants.%complete_type.9f4] -// CHECK:STDOUT: %Main.import_ref.c42 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.be8 = import_ref Main//base, loc9_8, unloaded +// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.053 = import_ref Main//base, loc9_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -567,15 +567,15 @@ var d: D = {.y = ()}; // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.0d5 = var_pattern %c.patt [concrete] +// 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: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt [concrete] // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var [concrete = %c.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.f1a = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.f1a = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.d8d = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.d8d = var_pattern %d.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %d.var: ref %D = var %d.var_patt [concrete] // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%D] @@ -586,23 +586,23 @@ var d: D = {.y = ()}; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.ad3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 -// CHECK:STDOUT: .x = imports.%Main.import_ref.0d5 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 +// CHECK:STDOUT: .x = imports.%Main.import_ref.1ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D [from "base.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.5ab // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.c42 -// CHECK:STDOUT: .y = imports.%Main.import_ref.be8 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.54a +// CHECK:STDOUT: .y = imports.%Main.import_ref.053 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc8_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_20.1: %struct_type.x = struct_literal (%.loc8_19.1) [concrete = constants.%struct.948] -// CHECK:STDOUT: %.loc8_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc8_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc8_19.2: init %empty_tuple.type to %.loc8_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_20.3: init %empty_tuple.type = converted %.loc8_19.1, %.loc8_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_20.4: init %empty_tuple.type to %.loc8_20.2 = in_place_init %.loc8_20.3 [concrete = constants.%empty_tuple] @@ -611,7 +611,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: assign file.%c.var, %.loc8_1 // CHECK:STDOUT: %.loc9_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc9_20.1: %struct_type.y = struct_literal (%.loc9_19.1) [concrete = constants.%struct.8ce] -// CHECK:STDOUT: %.loc9_20.2: ref %empty_tuple.type = class_element_access file.%d.var, element0 [concrete = constants.%.091] +// CHECK:STDOUT: %.loc9_20.2: ref %empty_tuple.type = class_element_access file.%d.var, element0 [concrete = constants.%.15f] // CHECK:STDOUT: %.loc9_19.2: init %empty_tuple.type to %.loc9_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc9_20.3: init %empty_tuple.type = converted %.loc9_19.1, %.loc9_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc9_20.4: init %empty_tuple.type to %.loc9_20.2 = in_place_init %.loc9_20.3 [concrete = constants.%empty_tuple] diff --git a/toolchain/check/testdata/packages/export_name.carbon b/toolchain/check/testdata/packages/export_name.carbon index c4d7597d94ba..58d7ee891ce6 100644 --- a/toolchain/check/testdata/packages/export_name.carbon +++ b/toolchain/check/testdata/packages/export_name.carbon @@ -271,11 +271,11 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC: type = import_ref Main//base, NSC, loaded [concrete = constants.%NSC] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type.9be] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: %Main.import_ref.5ab: = import_ref Main//base, loc11_1, loaded [concrete = constants.%complete_type.9f4] -// CHECK:STDOUT: %Main.import_ref.8da = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.266 = import_ref Main//base, loc10_8, unloaded +// CHECK:STDOUT: %Main.import_ref.8d3 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.307 = import_ref Main//base, loc10_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -292,16 +292,16 @@ private export C; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NSC [from "base.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.5ab // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.8da -// CHECK:STDOUT: .y = imports.%Main.import_ref.266 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.8d3 +// CHECK:STDOUT: .y = imports.%Main.import_ref.307 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- not_reexporting.carbon @@ -343,11 +343,11 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC: type = import_ref Main//export, NSC, loaded [concrete = constants.%NSC] // CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9be] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.0d5 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.1ec = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: %Main.import_ref.63c: = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9f4] -// CHECK:STDOUT: %Main.import_ref.5d2 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.a30 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.17a = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.5c2 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -364,16 +364,16 @@ private export C; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.ad3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 -// CHECK:STDOUT: .x = imports.%Main.import_ref.0d5 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 +// CHECK:STDOUT: .x = imports.%Main.import_ref.1ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NSC [from "export.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.63c // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.5d2 -// CHECK:STDOUT: .y = imports.%Main.import_ref.a30 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.17a +// CHECK:STDOUT: .y = imports.%Main.import_ref.5c2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- export_in_impl.carbon @@ -389,17 +389,17 @@ private export C; // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete] // CHECK:STDOUT: %complete_type.9be: = complete_type_witness %struct_type.x [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct.948: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: %NSC: type = class_type @NSC [concrete] // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %empty_tuple.type} [concrete] // CHECK:STDOUT: %complete_type.9f4: = complete_type_witness %struct_type.y [concrete] -// CHECK:STDOUT: %pattern_type.bc9: type = pattern_type %NSC [concrete] +// CHECK:STDOUT: %pattern_type.533: type = pattern_type %NSC [concrete] // CHECK:STDOUT: %struct.8ce: %struct_type.y = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.bbb: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete] +// CHECK:STDOUT: %.e7e: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete] // CHECK:STDOUT: %NSC.val: %NSC = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -411,11 +411,11 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC: type = import_ref Main//export, NSC, loaded [concrete = constants.%NSC] // CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9be] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.0d5 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.1ec = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: %Main.import_ref.63c: = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9f4] -// CHECK:STDOUT: %Main.import_ref.5d2 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.a30 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.17a = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.5c2 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -427,15 +427,15 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.0d5 = var_pattern %c.patt [concrete] +// 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: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt [concrete] // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var [concrete = %c.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %nsc.patt: %pattern_type.bc9 = ref_binding_pattern nsc [concrete] -// CHECK:STDOUT: %nsc.var_patt: %pattern_type.bc9 = var_pattern %nsc.patt [concrete] +// CHECK:STDOUT: %nsc.patt: %pattern_type.533 = ref_binding_pattern nsc [concrete] +// CHECK:STDOUT: %nsc.var_patt: %pattern_type.533 = var_pattern %nsc.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %nsc.var: ref %NSC = var %nsc.var_patt [concrete] // CHECK:STDOUT: %.loc7: type = splice_block %NSC.ref [concrete = constants.%NSC] { @@ -449,23 +449,23 @@ private export C; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.ad3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 -// CHECK:STDOUT: .x = imports.%Main.import_ref.0d5 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 +// CHECK:STDOUT: .x = imports.%Main.import_ref.1ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NSC [from "export.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.63c // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.5d2 -// CHECK:STDOUT: .y = imports.%Main.import_ref.a30 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.17a +// CHECK:STDOUT: .y = imports.%Main.import_ref.5c2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc6_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.1: %struct_type.x = struct_literal (%.loc6_19.1) [concrete = constants.%struct.948] -// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc6_19.2: init %empty_tuple.type to %.loc6_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.3: init %empty_tuple.type = converted %.loc6_19.1, %.loc6_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.4: init %empty_tuple.type to %.loc6_20.2 = in_place_init %.loc6_20.3 [concrete = constants.%empty_tuple] @@ -474,7 +474,7 @@ private export C; // CHECK:STDOUT: assign file.%c.var, %.loc6_1 // CHECK:STDOUT: %.loc7_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_27.1: %struct_type.y = struct_literal (%.loc7_26.1) [concrete = constants.%struct.8ce] -// CHECK:STDOUT: %.loc7_27.2: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete = constants.%.bbb] +// CHECK:STDOUT: %.loc7_27.2: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete = constants.%.e7e] // CHECK:STDOUT: %.loc7_26.2: init %empty_tuple.type to %.loc7_27.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_27.3: init %empty_tuple.type = converted %.loc7_26.1, %.loc7_26.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_27.4: init %empty_tuple.type to %.loc7_27.2 = in_place_init %.loc7_27.3 [concrete = constants.%empty_tuple] @@ -491,17 +491,17 @@ private export C; // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete] // CHECK:STDOUT: %complete_type.9be: = complete_type_witness %struct_type.x [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct.948: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: %NSC: type = class_type @NSC [concrete] // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %empty_tuple.type} [concrete] // CHECK:STDOUT: %complete_type.9f4: = complete_type_witness %struct_type.y [concrete] -// CHECK:STDOUT: %pattern_type.bc9: type = pattern_type %NSC [concrete] +// CHECK:STDOUT: %pattern_type.533: type = pattern_type %NSC [concrete] // CHECK:STDOUT: %struct.8ce: %struct_type.y = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.bbb: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete] +// CHECK:STDOUT: %.e7e: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete] // CHECK:STDOUT: %NSC.val: %NSC = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -513,11 +513,11 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC: type = import_ref Main//export_export, NSC, loaded [concrete = constants.%NSC] // CHECK:STDOUT: %Main.import_ref.328: = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9be] -// CHECK:STDOUT: %Main.import_ref.a5e = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.c88 = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.045 = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.408 = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: %Main.import_ref.c12: = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9f4] -// CHECK:STDOUT: %Main.import_ref.947 = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.c0e = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.45b = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.4ec = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -530,15 +530,15 @@ private export C; // CHECK:STDOUT: %default.import.loc2_29.1 = import // CHECK:STDOUT: %default.import.loc2_29.2 = import // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.0d5 = var_pattern %c.patt [concrete] +// 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: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt [concrete] // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var [concrete = %c.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %nsc.patt: %pattern_type.bc9 = ref_binding_pattern nsc [concrete] -// CHECK:STDOUT: %nsc.var_patt: %pattern_type.bc9 = var_pattern %nsc.patt [concrete] +// CHECK:STDOUT: %nsc.patt: %pattern_type.533 = ref_binding_pattern nsc [concrete] +// CHECK:STDOUT: %nsc.var_patt: %pattern_type.533 = var_pattern %nsc.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %nsc.var: ref %NSC = var %nsc.var_patt [concrete] // CHECK:STDOUT: %.loc5: type = splice_block %NSC.ref [concrete = constants.%NSC] { @@ -552,23 +552,23 @@ private export C; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.328 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.a5e -// CHECK:STDOUT: .x = imports.%Main.import_ref.c88 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.045 +// CHECK:STDOUT: .x = imports.%Main.import_ref.408 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NSC [from "export_export.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.c12 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.947 -// CHECK:STDOUT: .y = imports.%Main.import_ref.c0e +// CHECK:STDOUT: .Self = imports.%Main.import_ref.45b +// CHECK:STDOUT: .y = imports.%Main.import_ref.4ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc4_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_20.1: %struct_type.x = struct_literal (%.loc4_19.1) [concrete = constants.%struct.948] -// CHECK:STDOUT: %.loc4_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc4_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc4_19.2: init %empty_tuple.type to %.loc4_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_20.3: init %empty_tuple.type = converted %.loc4_19.1, %.loc4_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_20.4: init %empty_tuple.type to %.loc4_20.2 = in_place_init %.loc4_20.3 [concrete = constants.%empty_tuple] @@ -577,7 +577,7 @@ private export C; // CHECK:STDOUT: assign file.%c.var, %.loc4_1 // CHECK:STDOUT: %.loc5_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc5_27.1: %struct_type.y = struct_literal (%.loc5_26.1) [concrete = constants.%struct.8ce] -// CHECK:STDOUT: %.loc5_27.2: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete = constants.%.bbb] +// CHECK:STDOUT: %.loc5_27.2: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete = constants.%.e7e] // CHECK:STDOUT: %.loc5_26.2: init %empty_tuple.type to %.loc5_27.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc5_27.3: init %empty_tuple.type = converted %.loc5_26.1, %.loc5_26.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc5_27.4: init %empty_tuple.type to %.loc5_27.2 = in_place_init %.loc5_27.3 [concrete = constants.%empty_tuple] @@ -594,17 +594,17 @@ private export C; // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete] // CHECK:STDOUT: %complete_type.9be: = complete_type_witness %struct_type.x [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct.948: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: %NSC: type = class_type @NSC [concrete] // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %empty_tuple.type} [concrete] // CHECK:STDOUT: %complete_type.9f4: = complete_type_witness %struct_type.y [concrete] -// CHECK:STDOUT: %pattern_type.bc9: type = pattern_type %NSC [concrete] +// CHECK:STDOUT: %pattern_type.533: type = pattern_type %NSC [concrete] // CHECK:STDOUT: %struct.8ce: %struct_type.y = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.bbb: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete] +// CHECK:STDOUT: %.e7e: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete] // CHECK:STDOUT: %NSC.val: %NSC = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -616,11 +616,11 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC: type = import_ref Main//export_export, NSC, loaded [concrete = constants.%NSC] // CHECK:STDOUT: %Main.import_ref.328: = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9be] -// CHECK:STDOUT: %Main.import_ref.a5e = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.c88 = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.045 = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.408 = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: %Main.import_ref.c12: = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9f4] -// CHECK:STDOUT: %Main.import_ref.947 = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.c0e = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.45b = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.4ec = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -632,15 +632,15 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.0d5 = var_pattern %c.patt [concrete] +// 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: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt [concrete] // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var [concrete = %c.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %nsc.patt: %pattern_type.bc9 = ref_binding_pattern nsc [concrete] -// CHECK:STDOUT: %nsc.var_patt: %pattern_type.bc9 = var_pattern %nsc.patt [concrete] +// CHECK:STDOUT: %nsc.patt: %pattern_type.533 = ref_binding_pattern nsc [concrete] +// CHECK:STDOUT: %nsc.var_patt: %pattern_type.533 = var_pattern %nsc.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %nsc.var: ref %NSC = var %nsc.var_patt [concrete] // CHECK:STDOUT: %.loc7: type = splice_block %NSC.ref [concrete = constants.%NSC] { @@ -654,23 +654,23 @@ private export C; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.328 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.a5e -// CHECK:STDOUT: .x = imports.%Main.import_ref.c88 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.045 +// CHECK:STDOUT: .x = imports.%Main.import_ref.408 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NSC [from "export_export.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.c12 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.947 -// CHECK:STDOUT: .y = imports.%Main.import_ref.c0e +// CHECK:STDOUT: .Self = imports.%Main.import_ref.45b +// CHECK:STDOUT: .y = imports.%Main.import_ref.4ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc6_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.1: %struct_type.x = struct_literal (%.loc6_19.1) [concrete = constants.%struct.948] -// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc6_19.2: init %empty_tuple.type to %.loc6_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.3: init %empty_tuple.type = converted %.loc6_19.1, %.loc6_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.4: init %empty_tuple.type to %.loc6_20.2 = in_place_init %.loc6_20.3 [concrete = constants.%empty_tuple] @@ -679,7 +679,7 @@ private export C; // CHECK:STDOUT: assign file.%c.var, %.loc6_1 // CHECK:STDOUT: %.loc7_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_27.1: %struct_type.y = struct_literal (%.loc7_26.1) [concrete = constants.%struct.8ce] -// CHECK:STDOUT: %.loc7_27.2: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete = constants.%.bbb] +// CHECK:STDOUT: %.loc7_27.2: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete = constants.%.e7e] // CHECK:STDOUT: %.loc7_26.2: init %empty_tuple.type to %.loc7_27.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_27.3: init %empty_tuple.type = converted %.loc7_26.1, %.loc7_26.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_27.4: init %empty_tuple.type to %.loc7_27.2 = in_place_init %.loc7_27.3 [concrete = constants.%empty_tuple] @@ -748,8 +748,8 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC = import_ref Main//base, NSC, unloaded // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -764,8 +764,8 @@ private export C; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- import_both.carbon @@ -775,17 +775,17 @@ private export C; // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete] // CHECK:STDOUT: %complete_type.9be: = complete_type_witness %struct_type.x [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct.948: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: %NSC: type = class_type @NSC [concrete] // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %empty_tuple.type} [concrete] // CHECK:STDOUT: %complete_type.9f4: = complete_type_witness %struct_type.y [concrete] -// CHECK:STDOUT: %pattern_type.bc9: type = pattern_type %NSC [concrete] +// CHECK:STDOUT: %pattern_type.533: type = pattern_type %NSC [concrete] // CHECK:STDOUT: %struct.8ce: %struct_type.y = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.bbb: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete] +// CHECK:STDOUT: %.e7e: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete] // CHECK:STDOUT: %NSC.val: %NSC = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -797,11 +797,11 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC: type = import_ref Main//base, NSC, loaded [concrete = constants.%NSC] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type.9be] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: %Main.import_ref.5ab: = import_ref Main//base, loc11_1, loaded [concrete = constants.%complete_type.9f4] -// CHECK:STDOUT: %Main.import_ref.8da = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.266 = import_ref Main//base, loc10_8, unloaded +// CHECK:STDOUT: %Main.import_ref.8d3 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.307 = import_ref Main//base, loc10_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -813,15 +813,15 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.0d5 = var_pattern %c.patt [concrete] +// 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: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt [concrete] // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var [concrete = %c.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %nsc.patt: %pattern_type.bc9 = ref_binding_pattern nsc [concrete] -// CHECK:STDOUT: %nsc.var_patt: %pattern_type.bc9 = var_pattern %nsc.patt [concrete] +// CHECK:STDOUT: %nsc.patt: %pattern_type.533 = ref_binding_pattern nsc [concrete] +// CHECK:STDOUT: %nsc.var_patt: %pattern_type.533 = var_pattern %nsc.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %nsc.var: ref %NSC = var %nsc.var_patt [concrete] // CHECK:STDOUT: %.loc8: type = splice_block %NSC.ref [concrete = constants.%NSC] { @@ -835,23 +835,23 @@ private export C; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NSC [from "base.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.5ab // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.8da -// CHECK:STDOUT: .y = imports.%Main.import_ref.266 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.8d3 +// CHECK:STDOUT: .y = imports.%Main.import_ref.307 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc7_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.1: %struct_type.x = struct_literal (%.loc7_19.1) [concrete = constants.%struct.948] -// CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc7_19.2: init %empty_tuple.type to %.loc7_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.3: init %empty_tuple.type = converted %.loc7_19.1, %.loc7_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.4: init %empty_tuple.type to %.loc7_20.2 = in_place_init %.loc7_20.3 [concrete = constants.%empty_tuple] @@ -860,7 +860,7 @@ private export C; // CHECK:STDOUT: assign file.%c.var, %.loc7_1 // CHECK:STDOUT: %.loc8_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_27.1: %struct_type.y = struct_literal (%.loc8_26.1) [concrete = constants.%struct.8ce] -// CHECK:STDOUT: %.loc8_27.2: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete = constants.%.bbb] +// CHECK:STDOUT: %.loc8_27.2: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete = constants.%.e7e] // CHECK:STDOUT: %.loc8_26.2: init %empty_tuple.type to %.loc8_27.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_27.3: init %empty_tuple.type = converted %.loc8_26.1, %.loc8_26.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_27.4: init %empty_tuple.type to %.loc8_27.2 = in_place_init %.loc8_27.3 [concrete = constants.%empty_tuple] @@ -877,17 +877,17 @@ private export C; // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete] // CHECK:STDOUT: %complete_type.9be: = complete_type_witness %struct_type.x [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct.948: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: %NSC: type = class_type @NSC [concrete] // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %empty_tuple.type} [concrete] // CHECK:STDOUT: %complete_type.9f4: = complete_type_witness %struct_type.y [concrete] -// CHECK:STDOUT: %pattern_type.bc9: type = pattern_type %NSC [concrete] +// CHECK:STDOUT: %pattern_type.533: type = pattern_type %NSC [concrete] // CHECK:STDOUT: %struct.8ce: %struct_type.y = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.bbb: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete] +// CHECK:STDOUT: %.e7e: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete] // CHECK:STDOUT: %NSC.val: %NSC = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -899,11 +899,11 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC: type = import_ref Main//export, NSC, loaded [concrete = constants.%NSC] // CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9be] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.0d5 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.1ec = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: %Main.import_ref.63c: = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9f4] -// CHECK:STDOUT: %Main.import_ref.5d2 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.a30 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.17a = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.5c2 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -915,15 +915,15 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.0d5 = var_pattern %c.patt [concrete] +// 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: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt [concrete] // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var [concrete = %c.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %nsc.patt: %pattern_type.bc9 = ref_binding_pattern nsc [concrete] -// CHECK:STDOUT: %nsc.var_patt: %pattern_type.bc9 = var_pattern %nsc.patt [concrete] +// CHECK:STDOUT: %nsc.patt: %pattern_type.533 = ref_binding_pattern nsc [concrete] +// CHECK:STDOUT: %nsc.var_patt: %pattern_type.533 = var_pattern %nsc.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %nsc.var: ref %NSC = var %nsc.var_patt [concrete] // CHECK:STDOUT: %.loc8: type = splice_block %NSC.ref [concrete = constants.%NSC] { @@ -937,23 +937,23 @@ private export C; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.ad3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 -// CHECK:STDOUT: .x = imports.%Main.import_ref.0d5 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 +// CHECK:STDOUT: .x = imports.%Main.import_ref.1ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @NSC [from "export.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.63c // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.5d2 -// CHECK:STDOUT: .y = imports.%Main.import_ref.a30 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.17a +// CHECK:STDOUT: .y = imports.%Main.import_ref.5c2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc7_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.1: %struct_type.x = struct_literal (%.loc7_19.1) [concrete = constants.%struct.948] -// CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc7_19.2: init %empty_tuple.type to %.loc7_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.3: init %empty_tuple.type = converted %.loc7_19.1, %.loc7_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_20.4: init %empty_tuple.type to %.loc7_20.2 = in_place_init %.loc7_20.3 [concrete = constants.%empty_tuple] @@ -962,7 +962,7 @@ private export C; // CHECK:STDOUT: assign file.%c.var, %.loc7_1 // CHECK:STDOUT: %.loc8_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_27.1: %struct_type.y = struct_literal (%.loc8_26.1) [concrete = constants.%struct.8ce] -// CHECK:STDOUT: %.loc8_27.2: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete = constants.%.bbb] +// CHECK:STDOUT: %.loc8_27.2: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete = constants.%.e7e] // CHECK:STDOUT: %.loc8_26.2: init %empty_tuple.type to %.loc8_27.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_27.3: init %empty_tuple.type = converted %.loc8_26.1, %.loc8_26.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_27.4: init %empty_tuple.type to %.loc8_27.2 = in_place_init %.loc8_27.3 [concrete = constants.%empty_tuple] @@ -1006,8 +1006,8 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC = import_ref Main//base, NSC, unloaded // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1023,8 +1023,8 @@ private export C; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_repeat_export.carbon @@ -1037,15 +1037,15 @@ private export C; // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.347: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %.eda: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//repeat_export, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//repeat_export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//repeat_export, inst{{[0-9A-F]+}} [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.0d5 = import_ref Main//repeat_export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.0a8 = import_ref Main//repeat_export, inst{{[0-9A-F]+}} [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.1ec = import_ref Main//repeat_export, inst{{[0-9A-F]+}} [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1067,15 +1067,15 @@ private export C; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.ad3 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.e41 -// CHECK:STDOUT: .x = imports.%Main.import_ref.0d5 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.0a8 +// CHECK:STDOUT: .x = imports.%Main.import_ref.1ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc6_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.1: %struct_type.x = struct_literal (%.loc6_19.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.347] +// CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.eda] // CHECK:STDOUT: %.loc6_19.2: init %empty_tuple.type to %.loc6_20.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.3: init %empty_tuple.type = converted %.loc6_19.1, %.loc6_19.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_20.4: init %empty_tuple.type to %.loc6_20.2 = in_place_init %.loc6_20.3 [concrete = constants.%empty_tuple] @@ -1102,8 +1102,8 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC = import_ref Main//base, NSC, unloaded // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.ddd = import_ref Main//base, loc5_8, unloaded +// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c69 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1119,7 +1119,7 @@ private export C; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.91a -// CHECK:STDOUT: .x = imports.%Main.import_ref.ddd +// CHECK:STDOUT: .Self = imports.%Main.import_ref.e47 +// CHECK:STDOUT: .x = imports.%Main.import_ref.c69 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/packages/fail_conflict_no_namespaces.carbon b/toolchain/check/testdata/packages/fail_conflict_no_namespaces.carbon index c94addfd08a7..d141f6e5f696 100644 --- a/toolchain/check/testdata/packages/fail_conflict_no_namespaces.carbon +++ b/toolchain/check/testdata/packages/fail_conflict_no_namespaces.carbon @@ -72,16 +72,16 @@ import library "var"; // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.3a3: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%i32) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.e67: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%i32) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.e54: %T.as.DefaultOrUnformed.impl.Op.type.e67 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %i32, (%DefaultOrUnformed.impl_witness.3a3) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.e54, @T.as.DefaultOrUnformed.impl.Op(%i32) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.e52: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%i32) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.e40: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%i32) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.81c: %T.as.DefaultOrUnformed.impl.Op.type.e40 = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %i32, (%DefaultOrUnformed.impl_witness.e52) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.81c, @T.as.DefaultOrUnformed.impl.Op(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -93,8 +93,8 @@ import library "var"; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -104,8 +104,8 @@ import library "var"; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %Foo.patt: %pattern_type.104 = ref_binding_pattern Foo [concrete] -// CHECK:STDOUT: %Foo.var_patt: %pattern_type.104 = var_pattern %Foo.patt [concrete] +// CHECK:STDOUT: %Foo.patt: %pattern_type.6b6 = ref_binding_pattern Foo [concrete] +// CHECK:STDOUT: %Foo.var_patt: %pattern_type.6b6 = var_pattern %Foo.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.var: ref %i32 = var %Foo.var_patt [concrete] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -114,11 +114,11 @@ import library "var"; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%i32, (constants.%DefaultOrUnformed.impl_witness.3a3) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%i32, (constants.%DefaultOrUnformed.impl_witness.e52) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc4_13.1: %DefaultOrUnformed.type = converted constants.%i32, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc4_13.1 [concrete = constants.%i32] // CHECK:STDOUT: %.loc4_13.2: type = converted %.loc4_13.1, %as_type [concrete = constants.%i32] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.e54, @T.as.DefaultOrUnformed.impl.Op(constants.%i32) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.81c, @T.as.DefaultOrUnformed.impl.Op(constants.%i32) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %i32 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign file.%Foo.var, %T.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/packages/fail_export_name_member.carbon b/toolchain/check/testdata/packages/fail_export_name_member.carbon index 67b0f7a7bc63..4fc0b723dd2b 100644 --- a/toolchain/check/testdata/packages/fail_export_name_member.carbon +++ b/toolchain/check/testdata/packages/fail_export_name_member.carbon @@ -77,8 +77,8 @@ export C.n; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Foo.C: type = import_ref Foo//a, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Foo.import_ref.9fc: = import_ref Foo//a, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Foo.import_ref.b2e = import_ref Foo//a, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %Foo.import_ref.049 = import_ref Foo//a, loc5_8, unloaded +// CHECK:STDOUT: %Foo.import_ref.c61 = import_ref Foo//a, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Foo.import_ref.e5b = import_ref Foo//a, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -92,7 +92,7 @@ export C.n; // CHECK:STDOUT: complete_type_witness = imports.%Foo.import_ref.9fc // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Foo.import_ref.b2e -// CHECK:STDOUT: .n = imports.%Foo.import_ref.049 +// CHECK:STDOUT: .Self = imports.%Foo.import_ref.c61 +// CHECK:STDOUT: .n = imports.%Foo.import_ref.e5b // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/packages/fail_import_type_error.carbon b/toolchain/check/testdata/packages/fail_import_type_error.carbon index cae45eb21adc..d3441bc5091b 100644 --- a/toolchain/check/testdata/packages/fail_import_type_error.carbon +++ b/toolchain/check/testdata/packages/fail_import_type_error.carbon @@ -122,7 +122,7 @@ var d: i32 = d_ref; // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -154,29 +154,29 @@ var d: i32 = d_ref; // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.104 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var %a.var_patt [concrete] // CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a: ref %i32 = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt [concrete] // CHECK:STDOUT: %i32.loc7: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %b: ref %i32 = ref_binding b, %b.var [concrete = %b.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.104 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.104 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.6b6 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.6b6 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %i32 = var %c.var_patt [concrete] // CHECK:STDOUT: %i32.loc8: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %c: ref %i32 = ref_binding c, %c.var [concrete = %c.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.104 = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.104 = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.6b6 = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.6b6 = var_pattern %d.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %d.var: ref %i32 = var %d.var_patt [concrete] // CHECK:STDOUT: %i32.loc9: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/packages/implicit_imports_entities.carbon b/toolchain/check/testdata/packages/implicit_imports_entities.carbon index 56e6408c80a7..a5b081c6089f 100644 --- a/toolchain/check/testdata/packages/implicit_imports_entities.carbon +++ b/toolchain/check/testdata/packages/implicit_imports_entities.carbon @@ -329,11 +329,11 @@ import Other library "o1"; // CHECK:STDOUT: %C1: type = class_type @C1 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.ac5: type = pattern_type %C1 [concrete] +// CHECK:STDOUT: %pattern_type.0b2: type = pattern_type %C1 [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C1.val: %C1 = struct_value () [concrete] // CHECK:STDOUT: %C2: type = class_type @C2 [concrete] -// CHECK:STDOUT: %pattern_type.6a7: type = pattern_type %C2 [concrete] +// CHECK:STDOUT: %pattern_type.5ca: type = pattern_type %C2 [concrete] // CHECK:STDOUT: %C2.val: %C2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -341,9 +341,9 @@ import Other library "o1"; // CHECK:STDOUT: %Main.C1: type = import_ref Main//mix_current_package, C1, loaded [concrete = constants.%C1] // CHECK:STDOUT: %Main.C2: type = import_ref Main//c2, C2, loaded [concrete = constants.%C2] // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//c1, loc4_11, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.9e7 = import_ref Main//c1, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.3af = import_ref Main//c1, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//c2, loc4_11, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a4 = import_ref Main//c2, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.74b = import_ref Main//c2, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -356,15 +356,15 @@ import Other library "o1"; // CHECK:STDOUT: %default.import.loc2_35.1 = import // CHECK:STDOUT: %default.import.loc2_35.2 = import // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.ac5 = ref_binding_pattern c1 [concrete] -// CHECK:STDOUT: %c1.var_patt: %pattern_type.ac5 = var_pattern %c1.patt [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.0b2 = ref_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.var_patt: %pattern_type.0b2 = var_pattern %c1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.var: ref %C1 = var %c1.var_patt [concrete] // CHECK:STDOUT: %C1.ref: type = name_ref C1, imports.%Main.C1 [concrete = constants.%C1] // CHECK:STDOUT: %c1: ref %C1 = ref_binding c1, %c1.var [concrete = %c1.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.6a7 = ref_binding_pattern c2 [concrete] -// CHECK:STDOUT: %c2.var_patt: %pattern_type.6a7 = var_pattern %c2.patt [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.5ca = ref_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.var_patt: %pattern_type.5ca = var_pattern %c2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c2.var: ref %C2 = var %c2.var_patt [concrete] // CHECK:STDOUT: %C2.ref: type = name_ref C2, imports.%Main.C2 [concrete = constants.%C2] @@ -375,14 +375,14 @@ import Other library "o1"; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.9e7 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.3af // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C2 [from "c2.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f24d3.2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.6a4 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.74b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -425,7 +425,7 @@ import Other library "o1"; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C1: type = import_ref Main//dup_c1, C1, loaded [concrete = constants.%C1] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//c1, loc4_11, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.9e7 = import_ref Main//c1, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.3af = import_ref Main//c1, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -448,7 +448,7 @@ import Other library "o1"; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.9e7 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.3af // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -490,17 +490,17 @@ import Other library "o1"; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.NS: = import_ref Main//use_ns, NS, loaded -// CHECK:STDOUT: %NS.aa7: = namespace %Main.NS, [concrete] { +// CHECK:STDOUT: %NS.7ae: = namespace %Main.NS, [concrete] { // CHECK:STDOUT: .C = %Main.C // CHECK:STDOUT: } // CHECK:STDOUT: %Main.C: type = import_ref Main//use_ns, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//ns, loc5_13, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.59d = import_ref Main//ns, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.3e6 = import_ref Main//ns, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .NS = imports.%NS.aa7 +// CHECK:STDOUT: .NS = imports.%NS.7ae // CHECK:STDOUT: .c = %c // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_22.1 = import @@ -511,7 +511,7 @@ import Other library "o1"; // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt [concrete] // CHECK:STDOUT: %.loc4: type = splice_block %C.ref [concrete = constants.%C] { -// CHECK:STDOUT: %NS.ref: = name_ref NS, imports.%NS.aa7 [concrete = imports.%NS.aa7] +// CHECK:STDOUT: %NS.ref: = name_ref NS, imports.%NS.7ae [concrete = imports.%NS.7ae] // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var [concrete = %c.var] @@ -521,7 +521,7 @@ import Other library "o1"; // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.59d +// CHECK:STDOUT: .Self = imports.%Main.import_ref.3e6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -554,11 +554,11 @@ import Other library "o1"; // CHECK:STDOUT: %O1: type = class_type @O1 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.e6b: type = pattern_type %O1 [concrete] +// CHECK:STDOUT: %pattern_type.1e6: type = pattern_type %O1 [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %O1.val: %O1 = struct_value () [concrete] // CHECK:STDOUT: %O2: type = class_type @O2 [concrete] -// CHECK:STDOUT: %pattern_type.2d2: type = pattern_type %O2 [concrete] +// CHECK:STDOUT: %pattern_type.327: type = pattern_type %O2 [concrete] // CHECK:STDOUT: %O2.val: %O2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -571,10 +571,10 @@ import Other library "o1"; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.O1: type = import_ref Other//o1, O1, loaded [concrete = constants.%O1] // CHECK:STDOUT: %Other.import_ref.8f24d3.1: = import_ref Other//o1, loc4_11, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.e88 = import_ref Other//o1, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.382 = import_ref Other//o1, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Other.O2: type = import_ref Other//o2, O2, loaded [concrete = constants.%O2] // CHECK:STDOUT: %Other.import_ref.8f24d3.2: = import_ref Other//o2, loc4_11, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.4dd = import_ref Other//o2, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.28c = import_ref Other//o2, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -587,8 +587,8 @@ import Other library "o1"; // CHECK:STDOUT: %default.import.loc2_25.2 = import // CHECK:STDOUT: %Other.import = import Other // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %o1.patt: %pattern_type.e6b = ref_binding_pattern o1 [concrete] -// CHECK:STDOUT: %o1.var_patt: %pattern_type.e6b = var_pattern %o1.patt [concrete] +// CHECK:STDOUT: %o1.patt: %pattern_type.1e6 = ref_binding_pattern o1 [concrete] +// CHECK:STDOUT: %o1.var_patt: %pattern_type.1e6 = var_pattern %o1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %o1.var: ref %O1 = var %o1.var_patt [concrete] // CHECK:STDOUT: %.loc6: type = splice_block %O1.ref [concrete = constants.%O1] { @@ -597,8 +597,8 @@ import Other library "o1"; // CHECK:STDOUT: } // CHECK:STDOUT: %o1: ref %O1 = ref_binding o1, %o1.var [concrete = %o1.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %o2.patt: %pattern_type.2d2 = ref_binding_pattern o2 [concrete] -// CHECK:STDOUT: %o2.var_patt: %pattern_type.2d2 = var_pattern %o2.patt [concrete] +// CHECK:STDOUT: %o2.patt: %pattern_type.327 = ref_binding_pattern o2 [concrete] +// CHECK:STDOUT: %o2.var_patt: %pattern_type.327 = var_pattern %o2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %o2.var: ref %O2 = var %o2.var_patt [concrete] // CHECK:STDOUT: %.loc7: type = splice_block %O2.ref [concrete = constants.%O2] { @@ -612,14 +612,14 @@ import Other library "o1"; // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.8f24d3.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.e88 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.382 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @O2 [from "o2.carbon"] { // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.8f24d3.2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.4dd +// CHECK:STDOUT: .Self = imports.%Other.import_ref.28c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -668,7 +668,7 @@ import Other library "o1"; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.O1: type = import_ref Other//o1, O1, loaded [concrete = constants.%O1] // CHECK:STDOUT: %Other.import_ref.8f2: = import_ref Other//o1, loc4_11, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.e88 = import_ref Other//o1, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.382 = import_ref Other//o1, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -695,7 +695,7 @@ import Other library "o1"; // CHECK:STDOUT: complete_type_witness = imports.%Other.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Other.import_ref.e88 +// CHECK:STDOUT: .Self = imports.%Other.import_ref.382 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { diff --git a/toolchain/check/testdata/packages/implicit_imports_prelude.carbon b/toolchain/check/testdata/packages/implicit_imports_prelude.carbon index 4dd7aa61767d..654efd5a1b09 100644 --- a/toolchain/check/testdata/packages/implicit_imports_prelude.carbon +++ b/toolchain/check/testdata/packages/implicit_imports_prelude.carbon @@ -33,24 +33,24 @@ var b: i32 = a; // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -61,9 +61,9 @@ var b: i32 = a; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -73,8 +73,8 @@ var b: i32 = a; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.104 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.104 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var %a.var_patt [concrete] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -84,12 +84,12 @@ var b: i32 = a; // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc4_1.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc4_1.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc4_1.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc4_1.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign file.%a.var, %.loc4 // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -102,48 +102,48 @@ var b: i32 = a; // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.c62: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.947: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.c83: %Int.as.Copy.impl.Op.type.947 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.7e7: = impl_witness imports.%Copy.impl_witness_table.53f, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c58: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.59c: %Int.as.Copy.impl.Op.type.c58 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.7e7) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.fae: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.b11: type = fn_type_with_self_type %Copy.WithSelf.Op.type.fae, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.59c, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.a: ref %i32 = import_ref Main//lib, a, loaded [concrete = %a.var] -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import, [concrete] { +// CHECK:STDOUT: %Core.048aa3.1: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .Int = %Core.Int // CHECK:STDOUT: .Copy = %Core.Copy // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %a.patt: %pattern_type.c62 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.c62 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.6b6 = var_pattern %a.patt [concrete] // CHECK:STDOUT: %a.var: ref %i32 = var %a.var_patt [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.3f2: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.947) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.c83)] -// CHECK:STDOUT: %Copy.impl_witness_table.53f = impl_witness_table (%Core.import_ref.3f2), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .a = imports.%Main.a -// CHECK:STDOUT: .Core = imports.%Core.979 +// CHECK:STDOUT: .Core = imports.%Core.048aa3.1 // CHECK:STDOUT: .b = %b // CHECK:STDOUT: } // CHECK:STDOUT: %default.import.loc2_19.1 = import // CHECK:STDOUT: %default.import.loc2_19.2 = import // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.c62 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.c62 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt [concrete] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -154,7 +154,7 @@ var b: i32 = a; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: ref %i32 = name_ref a, imports.%Main.a [concrete = imports.%a.var] // CHECK:STDOUT: %.loc4: %i32 = acquire_value %a.ref -// CHECK:STDOUT: %impl.elem0: %.b11 = impl_witness_access constants.%Copy.impl_witness.7e7, element0 [concrete = constants.%Int.as.Copy.impl.Op.59c] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc4_14.1: = bound_method %.loc4, %impl.elem0 // 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.loc4_14.2: = bound_method %.loc4, %specific_fn diff --git a/toolchain/check/testdata/packages/missing_prelude.carbon b/toolchain/check/testdata/packages/missing_prelude.carbon index 0588265630b0..3176e4f45f16 100644 --- a/toolchain/check/testdata/packages/missing_prelude.carbon +++ b/toolchain/check/testdata/packages/missing_prelude.carbon @@ -193,18 +193,18 @@ let n: type = i32; // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] // CHECK:STDOUT: %N: %T = symbolic_binding N, 1 [symbolic] -// CHECK:STDOUT: %.032: Core.Form = init_form %X [concrete] -// CHECK:STDOUT: %pattern_type.924: type = pattern_type %X [concrete] +// CHECK:STDOUT: %.7b0: Core.Form = init_form %X [concrete] +// CHECK:STDOUT: %pattern_type.e00: type = pattern_type %X [concrete] // CHECK:STDOUT: %Int.type: type = fn_type @Int [concrete] // CHECK:STDOUT: %Int: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %X.val: %X = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6e6: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] -// CHECK:STDOUT: %Self: %ImplicitAs.type.6e6 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.3aa: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] +// CHECK:STDOUT: %Self: %ImplicitAs.type.3aa = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.030: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.701: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%T, %Self) [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert: %ImplicitAs.WithSelf.Convert.type = struct_value () [symbolic] @@ -222,11 +222,11 @@ let n: type = i32; // CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %N.patt: @Int.%pattern_type (%pattern_type.51d) = symbolic_binding_pattern N, 1 [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.924 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.924 = return_slot_pattern %return.param_patt, %X.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.e00 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.e00 = return_slot_pattern %return.param_patt, %X.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc6_35: Core.Form = init_form %X.ref [concrete = constants.%.032] +// CHECK:STDOUT: %.loc6_35: Core.Form = init_form %X.ref [concrete = constants.%.7b0] // CHECK:STDOUT: %.loc6_12.1: type = splice_block %.loc6_12.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc6_9: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc6_12.2: type = type_literal type [concrete = type] @@ -240,7 +240,7 @@ let n: type = i32; // CHECK:STDOUT: %return.param: ref %X = out_param call_param0 // CHECK:STDOUT: %return: ref %X = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %ImplicitAs.decl: %ImplicitAs.type.754 = interface_decl @ImplicitAs [concrete = constants.%ImplicitAs.generic] { +// CHECK:STDOUT: %ImplicitAs.decl: %ImplicitAs.type.0ff = interface_decl @ImplicitAs [concrete = constants.%ImplicitAs.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_26.1: type = splice_block %.loc8_26.2 [concrete = type] { @@ -255,17 +255,17 @@ let n: type = i32; // CHECK:STDOUT: %T.loc8_23.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_23.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T.loc8_23.1)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.6e6)] -// CHECK:STDOUT: %Self.loc8_32.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self.loc8_32.2 (constants.%Self)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T.loc8_23.1)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3aa)] +// CHECK:STDOUT: %Self.loc8_32.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self.loc8_32.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { -// CHECK:STDOUT: %Self.loc8_32.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self.loc8_32.2 (constants.%Self)] +// CHECK:STDOUT: %Self.loc8_32.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self.loc8_32.2 (constants.%Self)] // CHECK:STDOUT: %ImplicitAs.WithSelf.decl = interface_with_self_decl @ImplicitAs [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert)] { -// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_18 (%pattern_type.030) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_18 (%pattern_type.030) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_18 (%pattern_type.701) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_18 (%pattern_type.701) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_31 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { @@ -273,8 +273,8 @@ let n: type = i32; // CHECK:STDOUT: %.loc9_31.2: Core.Form = init_form %T.ref [symbolic = %.loc9_31.1 (constants.%.184)] // CHECK:STDOUT: %self.param: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc9_20.1 (%Self.as_type) = value_param call_param0 // CHECK:STDOUT: %.loc9_20.1: type = splice_block %.loc9_20.3 [symbolic = %Self.as_type.loc9_20.1 (constants.%Self.as_type)] { -// CHECK:STDOUT: %.loc9_20.2: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.6e6) = specific_constant @ImplicitAs.%Self.loc8_32.1, @ImplicitAs(constants.%T) [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.ref: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.6e6) = name_ref Self, %.loc9_20.2 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %.loc9_20.2: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.3aa) = specific_constant @ImplicitAs.%Self.loc8_32.1, @ImplicitAs(constants.%T) [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.ref: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.3aa) = name_ref Self, %.loc9_20.2 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc9_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_20.1 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc9_20.3: type = converted %Self.ref, %Self.as_type.loc9_20.2 [symbolic = %Self.as_type.loc9_20.1 (constants.%Self.as_type)] // CHECK:STDOUT: } @@ -319,12 +319,12 @@ let n: type = i32; // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(@ImplicitAs.%T.loc8_23.2: type, @ImplicitAs.%Self.loc8_32.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6)) { +// CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(@ImplicitAs.%T.loc8_23.2: type, @ImplicitAs.%Self.loc8_32.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.6e6)] -// CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3aa)] +// CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type.loc9_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_20.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.loc9_18: type = pattern_type %Self.as_type.loc9_20.1 [symbolic = %pattern_type.loc9_18 (constants.%pattern_type.030)] +// CHECK:STDOUT: %pattern_type.loc9_18: type = pattern_type %Self.as_type.loc9_20.1 [symbolic = %pattern_type.loc9_18 (constants.%pattern_type.701)] // CHECK:STDOUT: %.loc9_31.1: Core.Form = init_form %T [symbolic = %.loc9_31.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc9_31: type = pattern_type %T [symbolic = %pattern_type.loc9_31 (constants.%pattern_type.51d)] // CHECK:STDOUT: @@ -345,10 +345,10 @@ let n: type = i32; // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(constants.%T, constants.%Self) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.6e6 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.3aa // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type.loc9_20.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.loc9_18 => constants.%pattern_type.030 +// CHECK:STDOUT: %pattern_type.loc9_18 => constants.%pattern_type.701 // CHECK:STDOUT: %.loc9_31.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc9_31 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -359,7 +359,7 @@ let n: type = i32; // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.924: type = pattern_type %X [concrete] +// CHECK:STDOUT: %pattern_type.e00: type = pattern_type %X [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = fn_type @Int [concrete] // CHECK:STDOUT: %Int: %Int.type = struct_value () [concrete] @@ -368,29 +368,29 @@ let n: type = i32; // CHECK:STDOUT: %N: %T = symbolic_binding N, 1 [symbolic] // CHECK:STDOUT: %pattern_type.dc0: type = pattern_type Core.IntLiteral [concrete] // CHECK:STDOUT: %Int.specific_fn: = specific_function %Int, @Int(Core.IntLiteral, %int_32) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.6e6: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] -// CHECK:STDOUT: %Self.b7e: %ImplicitAs.type.6e6 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.bf1: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%T) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c63: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%T, %Self.b7e) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.cba: %ImplicitAs.WithSelf.Convert.type.c63 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.b7e [symbolic] -// CHECK:STDOUT: %pattern_type.cbe: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.3aa: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] +// CHECK:STDOUT: %Self.294: %ImplicitAs.type.3aa = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.fcc: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%T) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.97e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%T, %Self.294) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.945: %ImplicitAs.WithSelf.Convert.type.97e = struct_value () [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.294 [symbolic] +// CHECK:STDOUT: %pattern_type.20e: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.250: type = facet_type <@ImplicitAs, @ImplicitAs(type)> [concrete] -// CHECK:STDOUT: %Self.c69: %ImplicitAs.type.250 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.519: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(type, %Self.b7e) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.29d: %ImplicitAs.WithSelf.Convert.type.519 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.171: type = assoc_entity_type @ImplicitAs, @ImplicitAs(type) [concrete] -// CHECK:STDOUT: %assoc0.8e4: %ImplicitAs.assoc_type.171 = assoc_entity element0, imports.%Core.import_ref.569 [concrete] -// CHECK:STDOUT: %assoc0.bd2: %ImplicitAs.assoc_type.bf1 = assoc_entity element0, imports.%Core.import_ref.cd5 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.07f: type = facet_type <@ImplicitAs, @ImplicitAs(%X)> [concrete] -// CHECK:STDOUT: %Self.186: %ImplicitAs.type.07f = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f81: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%X, %Self.b7e) [symbolic] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.24e: %ImplicitAs.WithSelf.Convert.type.f81 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.f79: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%X) [concrete] -// CHECK:STDOUT: %assoc0.1dd: %ImplicitAs.assoc_type.f79 = assoc_entity element0, imports.%Core.import_ref.569 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.5f1: type = facet_type <@ImplicitAs, @ImplicitAs(type)> [concrete] +// CHECK:STDOUT: %Self.966: %ImplicitAs.type.5f1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.082: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(type, %Self.294) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.016: %ImplicitAs.WithSelf.Convert.type.082 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.5b7: type = assoc_entity_type @ImplicitAs, @ImplicitAs(type) [concrete] +// CHECK:STDOUT: %assoc0.08d: %ImplicitAs.assoc_type.5b7 = assoc_entity element0, imports.%Core.import_ref.cb2 [concrete] +// CHECK:STDOUT: %assoc0.0ac: %ImplicitAs.assoc_type.fcc = assoc_entity element0, imports.%Core.import_ref.f9d [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.52b: type = facet_type <@ImplicitAs, @ImplicitAs(%X)> [concrete] +// CHECK:STDOUT: %Self.ad7: %ImplicitAs.type.52b = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.721: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%X, %Self.294) [symbolic] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.c03: %ImplicitAs.WithSelf.Convert.type.721 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.aff: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%X) [concrete] +// CHECK:STDOUT: %assoc0.894: %ImplicitAs.assoc_type.aff = assoc_entity element0, imports.%Core.import_ref.cb2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -402,19 +402,19 @@ let n: type = i32; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.X: type = import_ref Core//prelude_fake_int, X, loaded [concrete = constants.%X] // CHECK:STDOUT: %Core.import_ref.8f2: = import_ref Core//prelude_fake_int, loc{{\d+_\d+}}, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Core.import_ref.708 = import_ref Core//prelude_fake_int, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.eff = import_ref Core//prelude_fake_int, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude_fake_int, Int, loaded [concrete = constants.%Int] // CHECK:STDOUT: %Core.import_ref.b3bc94.1: type = import_ref Core//prelude_fake_int, loc{{\d+_\d+}}, loaded [symbolic = @Int.%T (constants.%T)] // CHECK:STDOUT: %Core.import_ref.b42: @Int.%T (%T) = import_ref Core//prelude_fake_int, loc{{\d+_\d+}}, loaded [symbolic = @Int.%N (constants.%N)] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude_fake_int, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.195: @ImplicitAs.WithSelf.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.bf1) = import_ref Core//prelude_fake_int, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%assoc0 (constants.%assoc0.bd2)] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude_fake_int, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.484: @ImplicitAs.WithSelf.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.fcc) = import_ref Core//prelude_fake_int, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%assoc0 (constants.%assoc0.0ac)] // CHECK:STDOUT: %Core.Convert = import_ref Core//prelude_fake_int, Convert, unloaded -// CHECK:STDOUT: %Core.import_ref.569: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.c63) = import_ref Core//prelude_fake_int, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.cba)] +// CHECK:STDOUT: %Core.import_ref.cb2: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.97e) = import_ref Core//prelude_fake_int, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.945)] // CHECK:STDOUT: %Core.import_ref.b3bc94.3: type = import_ref Core//prelude_fake_int, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%T (constants.%T)] -// CHECK:STDOUT: %Core.import_ref.81ed31.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6) = import_ref Core//prelude_fake_int, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%Self (constants.%Self.b7e)] -// CHECK:STDOUT: %Core.import_ref.7df = import_ref Core//prelude_fake_int, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.f19eaa.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa) = import_ref Core//prelude_fake_int, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%Self (constants.%Self.294)] +// CHECK:STDOUT: %Core.import_ref.8c8 = import_ref Core//prelude_fake_int, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.b3bc94.4: type = import_ref Core//prelude_fake_int, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%T (constants.%T)] -// CHECK:STDOUT: %Core.import_ref.cd5 = import_ref Core//prelude_fake_int, loc{{\d+_\d+}}, unloaded +// CHECK:STDOUT: %Core.import_ref.f9d = import_ref Core//prelude_fake_int, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -424,7 +424,7 @@ let n: type = i32; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.924 = value_binding_pattern n [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.e00 = value_binding_pattern n [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc21_12: type = splice_block %X.ref [concrete = constants.%X] { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] @@ -438,13 +438,13 @@ let n: type = i32; // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.6e6)] -// CHECK:STDOUT: %Self: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.b7e)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3aa)] +// CHECK:STDOUT: %Self: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.294)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Core.import_ref.7df -// CHECK:STDOUT: .Convert = imports.%Core.import_ref.195 +// CHECK:STDOUT: .Self = imports.%Core.import_ref.8c8 +// CHECK:STDOUT: .Convert = imports.%Core.import_ref.484 // CHECK:STDOUT: witness = (imports.%Core.Convert) // CHECK:STDOUT: // CHECK:STDOUT: !requires: @@ -455,7 +455,7 @@ let n: type = i32; // CHECK:STDOUT: complete_type_witness = imports.%Core.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Core.import_ref.708 +// CHECK:STDOUT: .Self = imports.%Core.import_ref.eff // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Int(imports.%Core.import_ref.b3bc94.1: type, imports.%Core.import_ref.b42: @Int.%T (%T)) [from "prelude_fake_int.carbon"] { @@ -468,12 +468,12 @@ let n: type = i32; // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(imports.%Core.import_ref.b3bc94.3: type, imports.%Core.import_ref.81ed31.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.6e6)) [from "prelude_fake_int.carbon"] { +// CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(imports.%Core.import_ref.b3bc94.3: type, imports.%Core.import_ref.f19eaa.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3aa)) [from "prelude_fake_int.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.6e6)] -// CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.6e6) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.b7e)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3aa)] +// CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.3aa) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.294)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.cbe)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.20e)] // CHECK:STDOUT: %.1: Core.Form = init_form %T [symbolic = %.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %T [symbolic = %pattern_type.2 (constants.%pattern_type.51d)] // CHECK:STDOUT: @@ -508,14 +508,14 @@ let n: type = i32; // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%T, constants.%Self.b7e) {} +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%T, constants.%Self.294) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(constants.%T, constants.%Self.b7e) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf.Convert(constants.%T, constants.%Self.294) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.6e6 -// CHECK:STDOUT: %Self => constants.%Self.b7e +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.3aa +// CHECK:STDOUT: %Self => constants.%Self.294 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.cbe +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.20e // CHECK:STDOUT: %.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -524,38 +524,38 @@ let n: type = i32; // CHECK:STDOUT: %T => type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.250 -// CHECK:STDOUT: %Self => constants.%Self.c69 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.5f1 +// CHECK:STDOUT: %Self => constants.%Self.966 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(type, constants.%Self.b7e) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(type, constants.%Self.294) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => type -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.250 -// CHECK:STDOUT: %Self => constants.%Self.b7e -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.519 -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.29d -// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.171 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.8e4 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.5f1 +// CHECK:STDOUT: %Self => constants.%Self.294 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.082 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.016 +// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.5b7 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.08d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%X) { // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.07f -// CHECK:STDOUT: %Self => constants.%Self.186 +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.52b +// CHECK:STDOUT: %Self => constants.%Self.ad7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%X, constants.%Self.b7e) { +// CHECK:STDOUT: specific @ImplicitAs.WithSelf(constants.%X, constants.%Self.294) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X -// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.07f -// CHECK:STDOUT: %Self => constants.%Self.b7e -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.f81 -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.24e -// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.f79 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.1dd +// CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.52b +// CHECK:STDOUT: %Self => constants.%Self.294 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type => constants.%ImplicitAs.WithSelf.Convert.type.721 +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert => constants.%ImplicitAs.WithSelf.Convert.c03 +// CHECK:STDOUT: %ImplicitAs.assoc_type => constants.%ImplicitAs.assoc_type.aff +// CHECK:STDOUT: %assoc0 => constants.%assoc0.894 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- prelude_use_in_prelude.carbon @@ -569,16 +569,16 @@ let n: type = i32; // CHECK:STDOUT: %N: %T = symbolic_binding N, 1 [symbolic] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] -// CHECK:STDOUT: %Int.30b: type = class_type @Int, @Int(%T, %N) [symbolic] +// CHECK:STDOUT: %Int.a4d: type = class_type @Int, @Int(%T, %N) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %pattern_type.dc0: type = pattern_type Core.IntLiteral [concrete] -// CHECK:STDOUT: %Int.ec1: type = class_type @Int, @Int(Core.IntLiteral, %int_32) [concrete] -// CHECK:STDOUT: %pattern_type.1ff: type = pattern_type %Int.ec1 [concrete] +// CHECK:STDOUT: %Int.382: type = class_type @Int, @Int(Core.IntLiteral, %int_32) [concrete] +// CHECK:STDOUT: %pattern_type.0c6: type = pattern_type %Int.382 [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %Int.val: %Int.ec1 = struct_value () [concrete] -// CHECK:STDOUT: %.c46: ref %Int.ec1 = temporary invalid, %Int.val [concrete] +// CHECK:STDOUT: %Int.val: %Int.382 = struct_value () [concrete] +// CHECK:STDOUT: %.d67: ref %Int.382 = temporary invalid, %Int.val [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -602,15 +602,15 @@ let n: type = i32; // CHECK:STDOUT: %N.loc6_29.2: @Int.%T.loc6_12.1 (%T) = symbolic_binding N, 1 [symbolic = %N.loc6_29.1 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.1ff = value_binding_pattern n [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.0c6 = value_binding_pattern n [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8_8: type = type_literal constants.%Int.ec1 [concrete = constants.%Int.ec1] -// CHECK:STDOUT: %.loc8_15.1: ref %Int.ec1 = temporary_storage -// CHECK:STDOUT: %.loc8_15.2: init %Int.ec1 to %.loc8_15.1 = class_init () [concrete = constants.%Int.val] -// CHECK:STDOUT: %.loc8_15.3: init %Int.ec1 = converted @__global_init.%.loc8, %.loc8_15.2 [concrete = constants.%Int.val] -// CHECK:STDOUT: %.loc8_15.4: ref %Int.ec1 = temporary %.loc8_15.1, %.loc8_15.3 [concrete = constants.%.c46] -// CHECK:STDOUT: %.loc8_15.5: %Int.ec1 = acquire_value %.loc8_15.4 [concrete = constants.%Int.val] -// CHECK:STDOUT: %n: %Int.ec1 = value_binding n, %.loc8_15.5 +// CHECK:STDOUT: %.loc8_8: type = type_literal constants.%Int.382 [concrete = constants.%Int.382] +// CHECK:STDOUT: %.loc8_15.1: ref %Int.382 = temporary_storage +// CHECK:STDOUT: %.loc8_15.2: init %Int.382 to %.loc8_15.1 = class_init () [concrete = constants.%Int.val] +// CHECK:STDOUT: %.loc8_15.3: init %Int.382 = converted @__global_init.%.loc8, %.loc8_15.2 [concrete = constants.%Int.val] +// CHECK:STDOUT: %.loc8_15.4: ref %Int.382 = temporary %.loc8_15.1, %.loc8_15.3 [concrete = constants.%.d67] +// CHECK:STDOUT: %.loc8_15.5: %Int.382 = acquire_value %.loc8_15.4 [concrete = constants.%Int.val] +// CHECK:STDOUT: %n: %Int.382 = value_binding n, %.loc8_15.5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @Int(%T.loc6_12.2: type, %N.loc6_29.2: @Int.%T.loc6_12.1 (%T)) { @@ -625,7 +625,7 @@ let n: type = i32; // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Int.30b +// CHECK:STDOUT: .Self = constants.%Int.a4d // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/packages/raw_core.carbon b/toolchain/check/testdata/packages/raw_core.carbon index 3d3874c7b90e..73e9b06bf08a 100644 --- a/toolchain/check/testdata/packages/raw_core.carbon +++ b/toolchain/check/testdata/packages/raw_core.carbon @@ -96,12 +96,12 @@ var c: r#Core = {.n = 0 as Core.Int(32)}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import.1, [concrete] { +// CHECK:STDOUT: %Core.048aa3.1: = namespace file.%Core.import.1, [concrete] { // CHECK:STDOUT: .Int = %Core.Int // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.164: = namespace file.%Core.import.loc4, [concrete] { +// CHECK:STDOUT: %Core.048aa3.2: = namespace file.%Core.import.loc4, [concrete] { // CHECK:STDOUT: .F = %Core.F // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } @@ -111,8 +111,8 @@ var c: r#Core = {.n = 0 as Core.Int(32)}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .Core = imports.%Core.979 -// CHECK:STDOUT: .r#Core = imports.%Core.164 +// CHECK:STDOUT: .Core = imports.%Core.048aa3.1 +// CHECK:STDOUT: .r#Core = imports.%Core.048aa3.2 // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: .H = %H.decl // CHECK:STDOUT: } @@ -124,7 +124,7 @@ var c: r#Core = {.n = 0 as Core.Int(32)}; // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %Core.ref: = name_ref r#Core, imports.%Core.164 [concrete = imports.%Core.164] +// CHECK:STDOUT: %Core.ref: = name_ref r#Core, imports.%Core.048aa3.2 [concrete = imports.%Core.048aa3.2] // CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%Core.F [concrete = constants.%F] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref() // CHECK:STDOUT: return @@ -134,7 +134,7 @@ var c: r#Core = {.n = 0 as Core.Int(32)}; // CHECK:STDOUT: // CHECK:STDOUT: fn @H() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core.979 [concrete = imports.%Core.979] +// CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core.048aa3.1 [concrete = imports.%Core.048aa3.1] // CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] @@ -152,12 +152,12 @@ var c: r#Core = {.n = 0 as Core.Int(32)}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import.1, [concrete] { +// CHECK:STDOUT: %Core.048aa3.1: = namespace file.%Core.import.1, [concrete] { // CHECK:STDOUT: .F = // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.164: = namespace file.%Core.import.loc4, [concrete] { +// CHECK:STDOUT: %Core.048aa3.2: = namespace file.%Core.import.loc4, [concrete] { // CHECK:STDOUT: .Int = // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } @@ -165,8 +165,8 @@ var c: r#Core = {.n = 0 as Core.Int(32)}; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .Core = imports.%Core.979 -// CHECK:STDOUT: .r#Core = imports.%Core.164 +// CHECK:STDOUT: .Core = imports.%Core.048aa3.1 +// CHECK:STDOUT: .r#Core = imports.%Core.048aa3.2 // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: .H = %H.decl // CHECK:STDOUT: } @@ -178,14 +178,14 @@ var c: r#Core = {.n = 0 as Core.Int(32)}; // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core.979 [concrete = imports.%Core.979] +// CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core.048aa3.1 [concrete = imports.%Core.048aa3.1] // CHECK:STDOUT: %F.ref: = name_ref F, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @H() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %Core.ref: = name_ref r#Core, imports.%Core.164 [concrete = imports.%Core.164] +// CHECK:STDOUT: %Core.ref: = name_ref r#Core, imports.%Core.048aa3.2 [concrete = imports.%Core.048aa3.2] // CHECK:STDOUT: %Int.ref: = name_ref Int, [concrete = ] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: return @@ -202,40 +202,40 @@ var c: r#Core = {.n = 0 as Core.Int(32)}; // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Core.elem: type = unbound_element_type %Core, %i32 [concrete] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %i32} [concrete] -// CHECK:STDOUT: %complete_type.edf: = complete_type_witness %struct_type.n [concrete] -// CHECK:STDOUT: %pattern_type.faa: type = pattern_type %Core [concrete] +// CHECK:STDOUT: %complete_type.cdf: = complete_type_witness %struct_type.n [concrete] +// CHECK:STDOUT: %pattern_type.8dc: type = pattern_type %Core [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %As.type.909: type = generic_interface_type @As [concrete] -// CHECK:STDOUT: %As.generic: %As.type.909 = struct_value () [concrete] -// CHECK:STDOUT: %As.type.c00: type = facet_type <@As, @As(%i32)> [concrete] +// CHECK:STDOUT: %As.type.116: type = generic_interface_type @As [concrete] +// CHECK:STDOUT: %As.generic: %As.type.116 = struct_value () [concrete] +// CHECK:STDOUT: %As.type.155: type = facet_type <@As, @As(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.54d: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.421: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.978: %Core.IntLiteral.as.As.impl.Convert.type.421 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.c00 = facet_value Core.IntLiteral, (%As.impl_witness.54d) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.f0c: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] -// CHECK:STDOUT: %.c18: type = fn_type_with_self_type %As.WithSelf.Convert.type.f0c, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.As.impl.Convert.978 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.978, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.84c: = bound_method %int_0.5c6, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %struct: %struct_type.n = struct_value (%int_0.62d) [concrete] -// CHECK:STDOUT: %.125: ref %i32 = class_element_access file.%c.var, element0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.03e: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.e79: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.8a4: %Core.IntLiteral.as.As.impl.Convert.type.e79 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.155 = facet_value Core.IntLiteral, (%As.impl_witness.03e) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.8ea: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] +// CHECK:STDOUT: %.fbc: type = fn_type_with_self_type %As.WithSelf.Convert.type.8ea, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.As.impl.Convert.8a4 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.8a4, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.0fb: = bound_method %int_0.5c6, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %struct: %struct_type.n = struct_value (%int_0.3c0) [concrete] +// CHECK:STDOUT: %.37f: ref %i32 = class_element_access file.%c.var, element0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_0.62d, %Int.as.Copy.impl.Op.ce7 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.021: = bound_method %int_0.62d, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %Core.val: %Core = struct_value (%int_0.62d) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_0.3c0, %Int.as.Copy.impl.Op.4f6 [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: %bound_method.28e: = bound_method %int_0.3c0, %Int.as.Copy.impl.Op.specific_fn [concrete] +// CHECK:STDOUT: %Core.val: %Core = struct_value (%int_0.3c0) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -247,12 +247,12 @@ var c: r#Core = {.n = 0 as Core.Int(32)}; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.As: %As.type.909 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.As: %As.type.116 = import_ref Core//prelude/parts/as, As, loaded [concrete = constants.%As.generic] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -264,8 +264,8 @@ var c: r#Core = {.n = 0 as Core.Int(32)}; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Core.decl: type = class_decl @Core [concrete = constants.%Core] {} {} // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.faa = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.faa = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.8dc = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.8dc = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %Core = var %c.var_patt [concrete] // CHECK:STDOUT: %Core.ref: type = name_ref r#Core, %Core.decl [concrete = constants.%Core] @@ -274,7 +274,7 @@ var c: r#Core = {.n = 0 as Core.Int(32)}; // CHECK:STDOUT: // CHECK:STDOUT: class @Core { // CHECK:STDOUT: %.loc3: %Core.elem = field_decl n, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.edf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n [concrete = constants.%complete_type.cdf] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -289,21 +289,21 @@ var c: r#Core = {.n = 0 as Core.Int(32)}; // CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc6_25.1: %.c18 = impl_witness_access constants.%As.impl_witness.54d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.978] +// CHECK:STDOUT: %impl.elem0.loc6_25.1: %.fbc = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.8a4] // CHECK:STDOUT: %bound_method.loc6_25.1: = bound_method %int_0, %impl.elem0.loc6_25.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc6_25.1: = specific_function %impl.elem0.loc6_25.1, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_25.2: = bound_method %int_0, %specific_fn.loc6_25.1 [concrete = constants.%bound_method.84c] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc6_25.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc6_25.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc6_25.2: %i32 = converted %int_0, %.loc6_25.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc6_25.2: = bound_method %int_0, %specific_fn.loc6_25.1 [concrete = constants.%bound_method.0fb] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %i32 = call %bound_method.loc6_25.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc6_25.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc6_25.2: %i32 = converted %int_0, %.loc6_25.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc6_40.1: %struct_type.n = struct_literal (%.loc6_25.2) [concrete = constants.%struct] -// CHECK:STDOUT: %impl.elem0.loc6_25.2: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc6_25.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_25.3: = bound_method %.loc6_25.2, %impl.elem0.loc6_25.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc6_25.2: = specific_function %impl.elem0.loc6_25.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_25.4: = bound_method %.loc6_25.2, %specific_fn.loc6_25.2 [concrete = constants.%bound_method.021] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc6_25.4(%.loc6_25.2) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc6_40.2: ref %i32 = class_element_access file.%c.var, element0 [concrete = constants.%.125] -// CHECK:STDOUT: %.loc6_40.3: init %i32 to %.loc6_40.2 = in_place_init %Int.as.Copy.impl.Op.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc6_25.4: = bound_method %.loc6_25.2, %specific_fn.loc6_25.2 [concrete = constants.%bound_method.28e] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc6_25.4(%.loc6_25.2) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc6_40.2: ref %i32 = class_element_access file.%c.var, element0 [concrete = constants.%.37f] +// CHECK:STDOUT: %.loc6_40.3: init %i32 to %.loc6_40.2 = in_place_init %Int.as.Copy.impl.Op.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc6_40.4: init %Core to file.%c.var = class_init (%.loc6_40.3) [concrete = constants.%Core.val] // CHECK:STDOUT: %.loc6_1: init %Core = converted %.loc6_40.1, %.loc6_40.4 [concrete = constants.%Core.val] // CHECK:STDOUT: assign file.%c.var, %.loc6_1 diff --git a/toolchain/check/testdata/pointer/address_of_deref.carbon b/toolchain/check/testdata/pointer/address_of_deref.carbon index c1c6e4de3ff2..c6e429344867 100644 --- a/toolchain/check/testdata/pointer/address_of_deref.carbon +++ b/toolchain/check/testdata/pointer/address_of_deref.carbon @@ -26,42 +26,42 @@ fn F() -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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.790b3b.2: type = fn_type @Destroy.Op.loc16_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -74,12 +74,12 @@ fn F() -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -90,11 +90,11 @@ fn F() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -103,32 +103,32 @@ fn F() -> i32 { // CHECK:STDOUT: fn @F() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = ref_binding_pattern n [concrete] -// CHECK:STDOUT: %n.var_patt: %pattern_type.104 = var_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = ref_binding_pattern n [concrete] +// CHECK:STDOUT: %n.var_patt: %pattern_type.6b6 = var_pattern %n.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %n.var: ref %i32 = var %n.var_patt // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc16: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc16: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc16_3.1: = bound_method %int_0, %impl.elem0.loc16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_3.2: = bound_method %int_0, %specific_fn.loc16 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_3.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc16: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_3.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc16: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign %n.var, %.loc16 // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: ref %i32 = ref_binding n, %n.var // CHECK:STDOUT: %n.ref: ref %i32 = name_ref n, %n -// CHECK:STDOUT: %addr.loc17_13: %ptr.847 = addr_of %n.ref +// CHECK:STDOUT: %addr.loc17_13: %ptr.d08 = addr_of %n.ref // CHECK:STDOUT: %.loc17_12: ref %i32 = deref %addr.loc17_13 -// CHECK:STDOUT: %addr.loc17_11: %ptr.847 = addr_of %.loc17_12 +// CHECK:STDOUT: %addr.loc17_11: %ptr.d08 = addr_of %.loc17_12 // CHECK:STDOUT: %.loc17_10.1: ref %i32 = deref %addr.loc17_11 // CHECK:STDOUT: %.loc17_10.2: %i32 = acquire_value %.loc17_10.1 -// CHECK:STDOUT: %impl.elem0.loc17: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc17: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc17_10.1: = bound_method %.loc17_10.2, %impl.elem0.loc17 // 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.2dd605.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: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/pointer/address_of_lvalue.carbon b/toolchain/check/testdata/pointer/address_of_lvalue.carbon index bfad36326370..047d9679763b 100644 --- a/toolchain/check/testdata/pointer/address_of_lvalue.carbon +++ b/toolchain/check/testdata/pointer/address_of_lvalue.carbon @@ -34,72 +34,72 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %struct_type.a.b.b47: type = struct_type {.a: %i32, .b: %i32} [concrete] +// CHECK:STDOUT: %struct_type.a.b.b4c: type = struct_type {.a: %i32, .b: %i32} [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %ptr.d1a: type = ptr_type %struct_type.a.b.b47 [concrete] -// CHECK:STDOUT: %pattern_type.941: type = pattern_type %struct_type.a.b.b47 [concrete] +// CHECK:STDOUT: %ptr.939: type = ptr_type %struct_type.a.b.b4c [concrete] +// CHECK:STDOUT: %pattern_type.20e3: type = pattern_type %struct_type.a.b.b4c [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.4aa: %struct_type.a.b.cfd = struct_value (%int_1.5b8, %int_2.ecc) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %struct.8fc: %struct_type.a.b.b47 = struct_value (%int_1.d9c, %int_2.228) [concrete] -// CHECK:STDOUT: %pattern_type.2b4: type = pattern_type %ptr.d1a [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %struct.631: %struct_type.a.b.b4c = struct_value (%int_1.0c6, %int_2.295) [concrete] +// CHECK:STDOUT: %pattern_type.88d: type = pattern_type %ptr.939 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.29b: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%struct_type.a.b.b47) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.dd7: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%struct_type.a.b.b47) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.cd8: %ptr.as.Copy.impl.Op.type.dd7 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.52b: %Copy.type = facet_value %ptr.d1a, (%Copy.impl_witness.29b) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.8cb: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.52b) [concrete] -// CHECK:STDOUT: %.dc2: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8cb, %Copy.facet.52b [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.060: = specific_function %ptr.as.Copy.impl.Op.cd8, @ptr.as.Copy.impl.Op(%struct_type.a.b.b47) [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr.847 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.c37: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ae4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.6e4: %ptr.as.Copy.impl.Op.type.ae4 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.17a: %Copy.type = facet_value %ptr.847, (%Copy.impl_witness.c37) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.165: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.17a) [concrete] -// CHECK:STDOUT: %.cd7: type = fn_type_with_self_type %Copy.WithSelf.Op.type.165, %Copy.facet.17a [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.cef: = specific_function %ptr.as.Copy.impl.Op.6e4, @ptr.as.Copy.impl.Op(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.209: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%struct_type.a.b.b4c) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.dbe: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%struct_type.a.b.b4c) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.287: %ptr.as.Copy.impl.Op.type.dbe = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.2c4: %Copy.type = facet_value %ptr.939, (%Copy.impl_witness.209) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.4f7: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.2c4) [concrete] +// CHECK:STDOUT: %.bc9: type = fn_type_with_self_type %Copy.WithSelf.Op.type.4f7, %Copy.facet.2c4 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.867: = specific_function %ptr.as.Copy.impl.Op.287, @ptr.as.Copy.impl.Op(%struct_type.a.b.b4c) [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.ce1: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c1c: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.d1c: %ptr.as.Copy.impl.Op.type.c1c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.b49: %Copy.type = facet_value %ptr.d08, (%Copy.impl_witness.ce1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.f9d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.b49) [concrete] +// CHECK:STDOUT: %.ac9: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f9d, %Copy.facet.b49 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.b3e: = specific_function %ptr.as.Copy.impl.Op.d1c, @ptr.as.Copy.impl.Op(%i32) [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.79d: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] -// CHECK:STDOUT: %pattern_type.7d6: type = pattern_type %tuple.type.e5a [concrete] +// CHECK:STDOUT: %tuple.b59: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %pattern_type.394: type = pattern_type %tuple.type.e55 [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: %tuple.cd5: %tuple.type.e5a = tuple_value (%int_1.d9c, %int_2.228) [concrete] +// CHECK:STDOUT: %tuple.102: %tuple.type.e55 = tuple_value (%int_1.0c6, %int_2.295) [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.790b3b.1: type = fn_type @Destroy.Op.loc24 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc22_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.5: type = fn_type @Destroy.Op.loc18 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.5: %Destroy.Op.type.790b3b.5 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.6: type = fn_type @Destroy.Op.loc16 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -112,12 +112,12 @@ fn F() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -133,188 +133,188 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.941 = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.941 = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.20e3 = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.20e3 = var_pattern %s.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %s.var: ref %struct_type.a.b.b47 = var %s.var_patt +// CHECK:STDOUT: %s.var: ref %struct_type.a.b.b4c = var %s.var_patt // CHECK:STDOUT: %int_1.loc16: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc16: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc16_46.1: %struct_type.a.b.cfd = struct_literal (%int_1.loc16, %int_2.loc16) [concrete = constants.%struct.4aa] -// CHECK:STDOUT: %impl.elem0.loc16_46.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc16_46.1: = bound_method %int_1.loc16, %impl.elem0.loc16_46.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc16_46.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc16_46.1: = bound_method %int_1.loc16, %impl.elem0.loc16_46.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc16_46.1: = specific_function %impl.elem0.loc16_46.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_46.2: = bound_method %int_1.loc16, %specific_fn.loc16_46.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_46.1: init %i32 = call %bound_method.loc16_46.2(%int_1.loc16) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc16_46.2: init %i32 = converted %int_1.loc16, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_46.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc16_46.2: = bound_method %int_1.loc16, %specific_fn.loc16_46.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_46.1: init %i32 = call %bound_method.loc16_46.2(%int_1.loc16) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc16_46.2: init %i32 = converted %int_1.loc16, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_46.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc16_46.3: ref %i32 = struct_access %s.var, element0 -// CHECK:STDOUT: %.loc16_46.4: init %i32 to %.loc16_46.3 = in_place_init %.loc16_46.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc16_46.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc16_46.3: = bound_method %int_2.loc16, %impl.elem0.loc16_46.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc16_46.4: init %i32 to %.loc16_46.3 = in_place_init %.loc16_46.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc16_46.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc16_46.3: = bound_method %int_2.loc16, %impl.elem0.loc16_46.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc16_46.2: = specific_function %impl.elem0.loc16_46.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_46.4: = bound_method %int_2.loc16, %specific_fn.loc16_46.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_46.2: init %i32 = call %bound_method.loc16_46.4(%int_2.loc16) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc16_46.5: init %i32 = converted %int_2.loc16, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_46.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc16_46.4: = bound_method %int_2.loc16, %specific_fn.loc16_46.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_46.2: init %i32 = call %bound_method.loc16_46.4(%int_2.loc16) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc16_46.5: init %i32 = converted %int_2.loc16, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_46.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc16_46.6: ref %i32 = struct_access %s.var, element1 -// CHECK:STDOUT: %.loc16_46.7: init %i32 to %.loc16_46.6 = in_place_init %.loc16_46.5 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc16_46.8: init %struct_type.a.b.b47 to %s.var = struct_init (%.loc16_46.4, %.loc16_46.7) [concrete = constants.%struct.8fc] -// CHECK:STDOUT: %.loc16_3: init %struct_type.a.b.b47 = converted %.loc16_46.1, %.loc16_46.8 [concrete = constants.%struct.8fc] +// CHECK:STDOUT: %.loc16_46.7: init %i32 to %.loc16_46.6 = in_place_init %.loc16_46.5 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc16_46.8: init %struct_type.a.b.b4c to %s.var = struct_init (%.loc16_46.4, %.loc16_46.7) [concrete = constants.%struct.631] +// CHECK:STDOUT: %.loc16_3: init %struct_type.a.b.b4c = converted %.loc16_46.1, %.loc16_46.8 [concrete = constants.%struct.631] // CHECK:STDOUT: assign %s.var, %.loc16_3 -// CHECK:STDOUT: %.loc16_27: type = splice_block %struct_type.a.b.loc16 [concrete = constants.%struct_type.a.b.b47] { +// CHECK:STDOUT: %.loc16_27: type = splice_block %struct_type.a.b.loc16 [concrete = constants.%struct_type.a.b.b4c] { // CHECK:STDOUT: %i32.loc16_15: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc16_24: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b.loc16: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b47] +// CHECK:STDOUT: %struct_type.a.b.loc16: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b4c] // CHECK:STDOUT: } -// CHECK:STDOUT: %s: ref %struct_type.a.b.b47 = ref_binding s, %s.var +// CHECK:STDOUT: %s: ref %struct_type.a.b.b4c = ref_binding s, %s.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.2b4 = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.2b4 = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.88d = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.88d = var_pattern %p.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %p.var: ref %ptr.d1a = var %p.var_patt -// CHECK:STDOUT: %s.ref.loc18: ref %struct_type.a.b.b47 = name_ref s, %s -// CHECK:STDOUT: %addr.loc18: %ptr.d1a = addr_of %s.ref.loc18 -// CHECK:STDOUT: %impl.elem0.loc18: %.dc2 = impl_witness_access constants.%Copy.impl_witness.29b, element0 [concrete = constants.%ptr.as.Copy.impl.Op.cd8] +// CHECK:STDOUT: %p.var: ref %ptr.939 = var %p.var_patt +// CHECK:STDOUT: %s.ref.loc18: ref %struct_type.a.b.b4c = name_ref s, %s +// CHECK:STDOUT: %addr.loc18: %ptr.939 = addr_of %s.ref.loc18 +// CHECK:STDOUT: %impl.elem0.loc18: %.bc9 = impl_witness_access constants.%Copy.impl_witness.209, element0 [concrete = constants.%ptr.as.Copy.impl.Op.287] // CHECK:STDOUT: %bound_method.loc18_39.1: = bound_method %addr.loc18, %impl.elem0.loc18 -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @ptr.as.Copy.impl.Op(constants.%struct_type.a.b.b47) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.060] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @ptr.as.Copy.impl.Op(constants.%struct_type.a.b.b4c) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.867] // CHECK:STDOUT: %bound_method.loc18_39.2: = bound_method %addr.loc18, %specific_fn.loc18 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc18: init %ptr.d1a = call %bound_method.loc18_39.2(%addr.loc18) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc18: init %ptr.939 = call %bound_method.loc18_39.2(%addr.loc18) // CHECK:STDOUT: assign %p.var, %ptr.as.Copy.impl.Op.call.loc18 -// CHECK:STDOUT: %.loc18: type = splice_block %ptr.loc18 [concrete = constants.%ptr.d1a] { +// CHECK:STDOUT: %.loc18: type = splice_block %ptr.loc18 [concrete = constants.%ptr.939] { // CHECK:STDOUT: %i32.loc18_22: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc18_31: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b.loc18: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b47] -// CHECK:STDOUT: %ptr.loc18: type = ptr_type %struct_type.a.b.loc18 [concrete = constants.%ptr.d1a] +// CHECK:STDOUT: %struct_type.a.b.loc18: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b4c] +// CHECK:STDOUT: %ptr.loc18: type = ptr_type %struct_type.a.b.loc18 [concrete = constants.%ptr.939] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: ref %ptr.d1a = ref_binding p, %p.var +// CHECK:STDOUT: %p: ref %ptr.939 = ref_binding p, %p.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %q.patt: %pattern_type.7b5 = ref_binding_pattern q [concrete] -// CHECK:STDOUT: %q.var_patt: %pattern_type.7b5 = var_pattern %q.patt [concrete] +// CHECK:STDOUT: %q.patt: %pattern_type.f00 = ref_binding_pattern q [concrete] +// CHECK:STDOUT: %q.var_patt: %pattern_type.f00 = var_pattern %q.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %q.var: ref %ptr.847 = var %q.var_patt -// CHECK:STDOUT: %s.ref.loc19: ref %struct_type.a.b.b47 = name_ref s, %s +// CHECK:STDOUT: %q.var: ref %ptr.d08 = var %q.var_patt +// CHECK:STDOUT: %s.ref.loc19: ref %struct_type.a.b.b4c = name_ref s, %s // CHECK:STDOUT: %.loc19_26: ref %i32 = struct_access %s.ref.loc19, element0 -// CHECK:STDOUT: %addr.loc19: %ptr.847 = addr_of %.loc19_26 -// CHECK:STDOUT: %impl.elem0.loc19: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %addr.loc19: %ptr.d08 = addr_of %.loc19_26 +// CHECK:STDOUT: %impl.elem0.loc19: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc19_24.1: = bound_method %addr.loc19, %impl.elem0.loc19 -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.cef] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.b3e] // CHECK:STDOUT: %bound_method.loc19_24.2: = bound_method %addr.loc19, %specific_fn.loc19 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc19: init %ptr.847 = call %bound_method.loc19_24.2(%addr.loc19) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc19: init %ptr.d08 = call %bound_method.loc19_24.2(%addr.loc19) // CHECK:STDOUT: assign %q.var, %ptr.as.Copy.impl.Op.call.loc19 -// CHECK:STDOUT: %.loc19_20: type = splice_block %ptr.loc19 [concrete = constants.%ptr.847] { +// CHECK:STDOUT: %.loc19_20: type = splice_block %ptr.loc19 [concrete = constants.%ptr.d08] { // CHECK:STDOUT: %i32.loc19: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr.loc19: type = ptr_type %i32.loc19 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr.loc19: type = ptr_type %i32.loc19 [concrete = constants.%ptr.d08] // CHECK:STDOUT: } -// CHECK:STDOUT: %q: ref %ptr.847 = ref_binding q, %q.var +// CHECK:STDOUT: %q: ref %ptr.d08 = ref_binding q, %q.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %r.patt: %pattern_type.7b5 = ref_binding_pattern r [concrete] -// CHECK:STDOUT: %r.var_patt: %pattern_type.7b5 = var_pattern %r.patt [concrete] +// CHECK:STDOUT: %r.patt: %pattern_type.f00 = ref_binding_pattern r [concrete] +// CHECK:STDOUT: %r.var_patt: %pattern_type.f00 = var_pattern %r.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %r.var: ref %ptr.847 = var %r.var_patt -// CHECK:STDOUT: %s.ref.loc20: ref %struct_type.a.b.b47 = name_ref s, %s +// CHECK:STDOUT: %r.var: ref %ptr.d08 = var %r.var_patt +// CHECK:STDOUT: %s.ref.loc20: ref %struct_type.a.b.b4c = name_ref s, %s // CHECK:STDOUT: %.loc20_26: ref %i32 = struct_access %s.ref.loc20, element1 -// CHECK:STDOUT: %addr.loc20: %ptr.847 = addr_of %.loc20_26 -// CHECK:STDOUT: %impl.elem0.loc20: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %addr.loc20: %ptr.d08 = addr_of %.loc20_26 +// CHECK:STDOUT: %impl.elem0.loc20: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc20_24.1: = bound_method %addr.loc20, %impl.elem0.loc20 -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.cef] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.b3e] // CHECK:STDOUT: %bound_method.loc20_24.2: = bound_method %addr.loc20, %specific_fn.loc20 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc20: init %ptr.847 = call %bound_method.loc20_24.2(%addr.loc20) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc20: init %ptr.d08 = call %bound_method.loc20_24.2(%addr.loc20) // CHECK:STDOUT: assign %r.var, %ptr.as.Copy.impl.Op.call.loc20 -// CHECK:STDOUT: %.loc20_20: type = splice_block %ptr.loc20 [concrete = constants.%ptr.847] { +// CHECK:STDOUT: %.loc20_20: type = splice_block %ptr.loc20 [concrete = constants.%ptr.d08] { // CHECK:STDOUT: %i32.loc20: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr.loc20: type = ptr_type %i32.loc20 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr.loc20: type = ptr_type %i32.loc20 [concrete = constants.%ptr.d08] // CHECK:STDOUT: } -// CHECK:STDOUT: %r: ref %ptr.847 = ref_binding r, %r.var +// CHECK:STDOUT: %r: ref %ptr.d08 = ref_binding r, %r.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %t.patt: %pattern_type.7d6 = ref_binding_pattern t [concrete] -// CHECK:STDOUT: %t.var_patt: %pattern_type.7d6 = var_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.394 = ref_binding_pattern t [concrete] +// CHECK:STDOUT: %t.var_patt: %pattern_type.394 = var_pattern %t.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %t.var: ref %tuple.type.e5a = var %t.var_patt +// CHECK:STDOUT: %t.var: ref %tuple.type.e55 = var %t.var_patt // CHECK:STDOUT: %int_1.loc22: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc22: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc22_28.1: %tuple.type.f94 = tuple_literal (%int_1.loc22, %int_2.loc22) [concrete = constants.%tuple.ad8] -// CHECK:STDOUT: %impl.elem0.loc22_28.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc22_28.1: = bound_method %int_1.loc22, %impl.elem0.loc22_28.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc22_28.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc22_28.1: = bound_method %int_1.loc22, %impl.elem0.loc22_28.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc22_28.1: = specific_function %impl.elem0.loc22_28.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc22_28.2: = bound_method %int_1.loc22, %specific_fn.loc22_28.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_28.1: init %i32 = call %bound_method.loc22_28.2(%int_1.loc22) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc22_28.2: init %i32 = converted %int_1.loc22, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_28.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc22_28.2: = bound_method %int_1.loc22, %specific_fn.loc22_28.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_28.1: init %i32 = call %bound_method.loc22_28.2(%int_1.loc22) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc22_28.2: init %i32 = converted %int_1.loc22, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_28.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %tuple.elem0.loc22: ref %i32 = tuple_access %t.var, element0 -// CHECK:STDOUT: %.loc22_28.3: init %i32 to %tuple.elem0.loc22 = in_place_init %.loc22_28.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc22_28.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc22_28.3: = bound_method %int_2.loc22, %impl.elem0.loc22_28.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc22_28.3: init %i32 to %tuple.elem0.loc22 = in_place_init %.loc22_28.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc22_28.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc22_28.3: = bound_method %int_2.loc22, %impl.elem0.loc22_28.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc22_28.2: = specific_function %impl.elem0.loc22_28.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc22_28.4: = bound_method %int_2.loc22, %specific_fn.loc22_28.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_28.2: init %i32 = call %bound_method.loc22_28.4(%int_2.loc22) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc22_28.4: init %i32 = converted %int_2.loc22, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_28.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc22_28.4: = bound_method %int_2.loc22, %specific_fn.loc22_28.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_28.2: init %i32 = call %bound_method.loc22_28.4(%int_2.loc22) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc22_28.4: init %i32 = converted %int_2.loc22, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_28.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %tuple.elem1.loc22: ref %i32 = tuple_access %t.var, element1 -// CHECK:STDOUT: %.loc22_28.5: init %i32 to %tuple.elem1.loc22 = in_place_init %.loc22_28.4 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc22_28.6: init %tuple.type.e5a to %t.var = tuple_init (%.loc22_28.3, %.loc22_28.5) [concrete = constants.%tuple.cd5] -// CHECK:STDOUT: %.loc22_3: init %tuple.type.e5a = converted %.loc22_28.1, %.loc22_28.6 [concrete = constants.%tuple.cd5] +// CHECK:STDOUT: %.loc22_28.5: init %i32 to %tuple.elem1.loc22 = in_place_init %.loc22_28.4 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc22_28.6: init %tuple.type.e55 to %t.var = tuple_init (%.loc22_28.3, %.loc22_28.5) [concrete = constants.%tuple.102] +// CHECK:STDOUT: %.loc22_3: init %tuple.type.e55 = converted %.loc22_28.1, %.loc22_28.6 [concrete = constants.%tuple.102] // CHECK:STDOUT: assign %t.var, %.loc22_3 -// CHECK:STDOUT: %.loc22_19.1: type = splice_block %.loc22_19.3 [concrete = constants.%tuple.type.e5a] { +// CHECK:STDOUT: %.loc22_19.1: type = splice_block %.loc22_19.3 [concrete = constants.%tuple.type.e55] { // CHECK:STDOUT: %i32.loc22_11: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc22_16: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc22_19.2: %tuple.type.24b = tuple_literal (%i32.loc22_11, %i32.loc22_16) [concrete = constants.%tuple.79d] -// CHECK:STDOUT: %.loc22_19.3: type = converted %.loc22_19.2, constants.%tuple.type.e5a [concrete = constants.%tuple.type.e5a] +// CHECK:STDOUT: %.loc22_19.2: %tuple.type.24b = tuple_literal (%i32.loc22_11, %i32.loc22_16) [concrete = constants.%tuple.b59] +// CHECK:STDOUT: %.loc22_19.3: type = converted %.loc22_19.2, constants.%tuple.type.e55 [concrete = constants.%tuple.type.e55] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: ref %tuple.type.e5a = ref_binding t, %t.var +// CHECK:STDOUT: %t: ref %tuple.type.e55 = ref_binding t, %t.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %t0.patt: %pattern_type.7b5 = ref_binding_pattern t0 [concrete] -// CHECK:STDOUT: %t0.var_patt: %pattern_type.7b5 = var_pattern %t0.patt [concrete] +// CHECK:STDOUT: %t0.patt: %pattern_type.f00 = ref_binding_pattern t0 [concrete] +// CHECK:STDOUT: %t0.var_patt: %pattern_type.f00 = var_pattern %t0.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %t0.var: ref %ptr.847 = var %t0.var_patt -// CHECK:STDOUT: %t.ref.loc23: ref %tuple.type.e5a = name_ref t, %t +// CHECK:STDOUT: %t0.var: ref %ptr.d08 = var %t0.var_patt +// CHECK:STDOUT: %t.ref.loc23: ref %tuple.type.e55 = name_ref t, %t // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %tuple.elem0.loc23: ref %i32 = tuple_access %t.ref.loc23, element0 -// CHECK:STDOUT: %addr.loc23: %ptr.847 = addr_of %tuple.elem0.loc23 -// CHECK:STDOUT: %impl.elem0.loc23: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %addr.loc23: %ptr.d08 = addr_of %tuple.elem0.loc23 +// CHECK:STDOUT: %impl.elem0.loc23: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc23_25.1: = bound_method %addr.loc23, %impl.elem0.loc23 -// CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.cef] +// CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.b3e] // CHECK:STDOUT: %bound_method.loc23_25.2: = bound_method %addr.loc23, %specific_fn.loc23 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc23: init %ptr.847 = call %bound_method.loc23_25.2(%addr.loc23) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc23: init %ptr.d08 = call %bound_method.loc23_25.2(%addr.loc23) // CHECK:STDOUT: assign %t0.var, %ptr.as.Copy.impl.Op.call.loc23 -// CHECK:STDOUT: %.loc23: type = splice_block %ptr.loc23 [concrete = constants.%ptr.847] { +// CHECK:STDOUT: %.loc23: type = splice_block %ptr.loc23 [concrete = constants.%ptr.d08] { // CHECK:STDOUT: %i32.loc23: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr.loc23: type = ptr_type %i32.loc23 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr.loc23: type = ptr_type %i32.loc23 [concrete = constants.%ptr.d08] // CHECK:STDOUT: } -// CHECK:STDOUT: %t0: ref %ptr.847 = ref_binding t0, %t0.var +// CHECK:STDOUT: %t0: ref %ptr.d08 = ref_binding t0, %t0.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %t1.patt: %pattern_type.7b5 = ref_binding_pattern t1 [concrete] -// CHECK:STDOUT: %t1.var_patt: %pattern_type.7b5 = var_pattern %t1.patt [concrete] +// 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: } -// CHECK:STDOUT: %t1.var: ref %ptr.847 = var %t1.var_patt -// CHECK:STDOUT: %t.ref.loc24: ref %tuple.type.e5a = name_ref t, %t +// CHECK:STDOUT: %t1.var: ref %ptr.d08 = var %t1.var_patt +// CHECK:STDOUT: %t.ref.loc24: ref %tuple.type.e55 = name_ref t, %t // CHECK:STDOUT: %int_1.loc24: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %tuple.elem1.loc24: ref %i32 = tuple_access %t.ref.loc24, element1 -// CHECK:STDOUT: %addr.loc24: %ptr.847 = addr_of %tuple.elem1.loc24 -// CHECK:STDOUT: %impl.elem0.loc24: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %addr.loc24: %ptr.d08 = addr_of %tuple.elem1.loc24 +// CHECK:STDOUT: %impl.elem0.loc24: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc24_25.1: = bound_method %addr.loc24, %impl.elem0.loc24 -// CHECK:STDOUT: %specific_fn.loc24: = specific_function %impl.elem0.loc24, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.cef] +// CHECK:STDOUT: %specific_fn.loc24: = specific_function %impl.elem0.loc24, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.b3e] // CHECK:STDOUT: %bound_method.loc24_25.2: = bound_method %addr.loc24, %specific_fn.loc24 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc24: init %ptr.847 = call %bound_method.loc24_25.2(%addr.loc24) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc24: init %ptr.d08 = call %bound_method.loc24_25.2(%addr.loc24) // CHECK:STDOUT: assign %t1.var, %ptr.as.Copy.impl.Op.call.loc24 -// CHECK:STDOUT: %.loc24: type = splice_block %ptr.loc24 [concrete = constants.%ptr.847] { +// CHECK:STDOUT: %.loc24: type = splice_block %ptr.loc24 [concrete = constants.%ptr.d08] { // CHECK:STDOUT: %i32.loc24: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr.loc24: type = ptr_type %i32.loc24 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr.loc24: type = ptr_type %i32.loc24 [concrete = constants.%ptr.d08] // CHECK:STDOUT: } -// CHECK:STDOUT: %t1: ref %ptr.847 = ref_binding t1, %t1.var -// CHECK:STDOUT: %Destroy.Op.bound.loc24: = bound_method %t1.var, constants.%Destroy.Op.2dd605.1 +// CHECK:STDOUT: %t1: ref %ptr.d08 = ref_binding t1, %t1.var +// 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.2dd605.1 +// 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.2dd605.4 +// 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.2dd605.1 +// 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.2dd605.1 +// 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.2dd605.5 +// 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.2dd605.6 +// 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: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc24(%self.param: ref %ptr.847) = "no_op"; +// CHECK:STDOUT: fn @Destroy.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: @@ -323,14 +323,14 @@ fn F() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc22_3.3(%self.param: ref %tuple.type.e5a) { +// CHECK:STDOUT: fn @Destroy.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.d1a) = "no_op"; +// CHECK:STDOUT: fn @Destroy.Op.loc18(%self.param: ref %ptr.939) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc16(%self.param: ref %struct_type.a.b.b47) { +// CHECK:STDOUT: fn @Destroy.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/arrow.carbon b/toolchain/check/testdata/pointer/arrow.carbon index e9831e106846..b4378eb3c768 100644 --- a/toolchain/check/testdata/pointer/arrow.carbon +++ b/toolchain/check/testdata/pointer/arrow.carbon @@ -31,14 +31,14 @@ fn Foo(ptr: C*) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.Member.type: type = fn_type @C.Member [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C.Member: %C.Member.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.6be: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.1c8: type = pattern_type %ptr.6be [concrete] -// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %ptr.6be [concrete] -// CHECK:STDOUT: %struct_type.field: type = struct_type {.field: %ptr.6be} [concrete] +// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete] +// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %ptr.6b6 [concrete] +// CHECK:STDOUT: %struct_type.field: type = struct_type {.field: %ptr.6b6} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.field [concrete] // CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete] // CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete] @@ -60,22 +60,22 @@ fn Foo(ptr: C*) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] { -// CHECK:STDOUT: %ptr.param_patt: %pattern_type.1c8 = value_param_pattern [concrete] -// CHECK:STDOUT: %ptr.patt: %pattern_type.1c8 = at_binding_pattern ptr, %ptr.param_patt [concrete] +// CHECK:STDOUT: %ptr.param_patt: %pattern_type.fcb = value_param_pattern [concrete] +// CHECK:STDOUT: %ptr.patt: %pattern_type.fcb = at_binding_pattern ptr, %ptr.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %ptr.param: %ptr.6be = value_param call_param0 -// CHECK:STDOUT: %.loc20: type = splice_block %ptr.loc20_14 [concrete = constants.%ptr.6be] { +// CHECK:STDOUT: %ptr.param: %ptr.6b6 = value_param call_param0 +// CHECK:STDOUT: %.loc20: type = splice_block %ptr.loc20_14 [concrete = constants.%ptr.6b6] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc20_14: type = ptr_type %C.ref [concrete = constants.%ptr.6be] +// CHECK:STDOUT: %ptr.loc20_14: type = ptr_type %C.ref [concrete = constants.%ptr.6b6] // CHECK:STDOUT: } -// CHECK:STDOUT: %ptr.loc20_11: %ptr.6be = value_binding ptr, %ptr.param +// CHECK:STDOUT: %ptr.loc20_11: %ptr.6b6 = value_binding ptr, %ptr.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: %C.Member.decl: %C.Member.type = fn_decl @C.Member [concrete = constants.%C.Member] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.0d5 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.0d5 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] @@ -94,36 +94,36 @@ fn Foo(ptr: C*) { // CHECK:STDOUT: // CHECK:STDOUT: fn @C.Member(%self.param: %C); // CHECK:STDOUT: -// CHECK:STDOUT: fn @Foo(%ptr.param: %ptr.6be) { +// CHECK:STDOUT: fn @Foo(%ptr.param: %ptr.6b6) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %ptr.ref.loc21: %ptr.6be = name_ref ptr, %ptr.loc20_11 +// CHECK:STDOUT: %ptr.ref.loc21: %ptr.6b6 = name_ref ptr, %ptr.loc20_11 // CHECK:STDOUT: %.loc21_4.1: ref %C = deref %ptr.ref.loc21 // CHECK:STDOUT: %Member.ref.loc21: %C.Member.type = name_ref Member, @C.%C.Member.decl [concrete = constants.%C.Member] // CHECK:STDOUT: %C.Member.bound.loc21: = bound_method %.loc21_4.1, %Member.ref.loc21 // CHECK:STDOUT: %.loc21_4.2: %C = acquire_value %.loc21_4.1 // CHECK:STDOUT: %C.Member.call.loc21: init %empty_tuple.type = call %C.Member.bound.loc21(%.loc21_4.2) -// CHECK:STDOUT: %ptr.ref.loc22: %ptr.6be = name_ref ptr, %ptr.loc20_11 +// CHECK:STDOUT: %ptr.ref.loc22: %ptr.6b6 = name_ref ptr, %ptr.loc20_11 // CHECK:STDOUT: %.loc22_6.1: ref %C = deref %ptr.ref.loc22 // CHECK:STDOUT: %Member.ref.loc22: %C.Member.type = name_ref Member, @C.%C.Member.decl [concrete = constants.%C.Member] // CHECK:STDOUT: %C.Member.bound.loc22: = bound_method %.loc22_6.1, %Member.ref.loc22 // CHECK:STDOUT: %.loc22_6.2: %C = acquire_value %.loc22_6.1 // CHECK:STDOUT: %C.Member.call.loc22: init %empty_tuple.type = call %C.Member.bound.loc22(%.loc22_6.2) -// CHECK:STDOUT: %ptr.ref.loc24: %ptr.6be = name_ref ptr, %ptr.loc20_11 +// CHECK:STDOUT: %ptr.ref.loc24: %ptr.6b6 = name_ref ptr, %ptr.loc20_11 // CHECK:STDOUT: %.loc24_4: ref %C = deref %ptr.ref.loc24 // CHECK:STDOUT: %field.ref.loc24: %C.elem = name_ref field, @C.%.loc17 [concrete = @C.%.loc17] -// CHECK:STDOUT: %.loc24_9: ref %ptr.6be = class_element_access %.loc24_4, element0 -// CHECK:STDOUT: %ptr.ref.loc25: %ptr.6be = name_ref ptr, %ptr.loc20_11 +// CHECK:STDOUT: %.loc24_9: ref %ptr.6b6 = class_element_access %.loc24_4, element0 +// CHECK:STDOUT: %ptr.ref.loc25: %ptr.6b6 = name_ref ptr, %ptr.loc20_11 // CHECK:STDOUT: %.loc25_6.1: ref %C = deref %ptr.ref.loc25 // CHECK:STDOUT: %field.ref.loc25: %C.elem = name_ref field, @C.%.loc17 [concrete = @C.%.loc17] -// CHECK:STDOUT: %.loc25_6.2: ref %ptr.6be = class_element_access %.loc25_6.1, element0 -// CHECK:STDOUT: %ptr.ref.loc27: %ptr.6be = name_ref ptr, %ptr.loc20_11 +// CHECK:STDOUT: %.loc25_6.2: ref %ptr.6b6 = class_element_access %.loc25_6.1, element0 +// CHECK:STDOUT: %ptr.ref.loc27: %ptr.6b6 = name_ref ptr, %ptr.loc20_11 // CHECK:STDOUT: %.loc27_6.1: ref %C = deref %ptr.ref.loc27 // CHECK:STDOUT: %field.ref.loc27_6: %C.elem = name_ref field, @C.%.loc17 [concrete = @C.%.loc17] -// CHECK:STDOUT: %.loc27_6.2: ref %ptr.6be = class_element_access %.loc27_6.1, element0 -// CHECK:STDOUT: %.loc27_6.3: %ptr.6be = acquire_value %.loc27_6.2 +// CHECK:STDOUT: %.loc27_6.2: ref %ptr.6b6 = class_element_access %.loc27_6.1, element0 +// CHECK:STDOUT: %.loc27_6.3: %ptr.6b6 = acquire_value %.loc27_6.2 // CHECK:STDOUT: %.loc27_13.1: ref %C = deref %.loc27_6.3 // CHECK:STDOUT: %field.ref.loc27_13: %C.elem = name_ref field, @C.%.loc17 [concrete = @C.%.loc17] -// CHECK:STDOUT: %.loc27_13.2: ref %ptr.6be = class_element_access %.loc27_13.1, element0 +// CHECK:STDOUT: %.loc27_13.2: ref %ptr.6b6 = class_element_access %.loc27_13.1, element0 // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/basic.carbon b/toolchain/check/testdata/pointer/basic.carbon index 606d19949c37..01fba64e627f 100644 --- a/toolchain/check/testdata/pointer/basic.carbon +++ b/toolchain/check/testdata/pointer/basic.carbon @@ -28,55 +28,55 @@ fn F() -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr.847 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] +// 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: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.c37: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ae4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.6e4: %ptr.as.Copy.impl.Op.type.ae4 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.17a: %Copy.type = facet_value %ptr.847, (%Copy.impl_witness.c37) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.165: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.17a) [concrete] -// CHECK:STDOUT: %.cd7: type = fn_type_with_self_type %Copy.WithSelf.Op.type.165, %Copy.facet.17a [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.6e4, @ptr.as.Copy.impl.Op(%i32) [concrete] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.14d: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet.14d [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.ce1: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c1c: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.d1c: %ptr.as.Copy.impl.Op.type.c1c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.b49: %Copy.type = facet_value %ptr.d08, (%Copy.impl_witness.ce1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.f9d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.b49) [concrete] +// CHECK:STDOUT: %.ac9: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f9d, %Copy.facet.b49 [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: %Copy.impl_witness.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.987: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet.987 [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.790b3b.1: type = fn_type @Destroy.Op.loc17 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc16_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -89,14 +89,14 @@ fn F() -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -107,11 +107,11 @@ fn F() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -120,55 +120,55 @@ fn F() -> i32 { // CHECK:STDOUT: fn @F() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = ref_binding_pattern n [concrete] -// CHECK:STDOUT: %n.var_patt: %pattern_type.104 = var_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = ref_binding_pattern n [concrete] +// CHECK:STDOUT: %n.var_patt: %pattern_type.6b6 = var_pattern %n.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %n.var: ref %i32 = var %n.var_patt // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc16: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc16: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc16_3.1: = bound_method %int_0, %impl.elem0.loc16 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_3.2: = bound_method %int_0, %specific_fn.loc16 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_3.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc16: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_3.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc16: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign %n.var, %.loc16 // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: ref %i32 = ref_binding n, %n.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.7b5 = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.7b5 = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.f00 = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.f00 = var_pattern %p.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %p.var: ref %ptr.847 = var %p.var_patt +// CHECK:STDOUT: %p.var: ref %ptr.d08 = var %p.var_patt // CHECK:STDOUT: %n.ref: ref %i32 = name_ref n, %n -// CHECK:STDOUT: %addr: %ptr.847 = addr_of %n.ref -// CHECK:STDOUT: %impl.elem0.loc17: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %addr: %ptr.d08 = addr_of %n.ref +// CHECK:STDOUT: %impl.elem0.loc17: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc17_17.1: = bound_method %addr, %impl.elem0.loc17 // CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc17_17.2: = bound_method %addr, %specific_fn.loc17 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.847 = call %bound_method.loc17_17.2(%addr) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d08 = call %bound_method.loc17_17.2(%addr) // CHECK:STDOUT: assign %p.var, %ptr.as.Copy.impl.Op.call -// CHECK:STDOUT: %.loc17: type = splice_block %ptr [concrete = constants.%ptr.847] { +// CHECK:STDOUT: %.loc17: type = splice_block %ptr [concrete = constants.%ptr.d08] { // CHECK:STDOUT: %i32.loc17: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc17 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc17 [concrete = constants.%ptr.d08] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: ref %ptr.847 = ref_binding p, %p.var -// CHECK:STDOUT: %p.ref: ref %ptr.847 = name_ref p, %p -// CHECK:STDOUT: %.loc19_11: %ptr.847 = acquire_value %p.ref +// CHECK:STDOUT: %p: ref %ptr.d08 = ref_binding p, %p.var +// CHECK:STDOUT: %p.ref: ref %ptr.d08 = name_ref p, %p +// CHECK:STDOUT: %.loc19_11: %ptr.d08 = acquire_value %p.ref // CHECK:STDOUT: %.loc19_10.1: ref %i32 = deref %.loc19_11 // CHECK:STDOUT: %.loc19_10.2: %i32 = acquire_value %.loc19_10.1 -// CHECK:STDOUT: %impl.elem0.loc19: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc19: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc19_10.1: = bound_method %.loc19_10.2, %impl.elem0.loc19 // 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.2dd605.1 +// 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.2dd605.3 +// 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: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc17(%self.param: ref %ptr.847) = "no_op"; +// CHECK:STDOUT: fn @Destroy.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: diff --git a/toolchain/check/testdata/pointer/convert_qualifiers.carbon b/toolchain/check/testdata/pointer/convert_qualifiers.carbon index 443509a93334..496b57f9f99d 100644 --- a/toolchain/check/testdata/pointer/convert_qualifiers.carbon +++ b/toolchain/check/testdata/pointer/convert_qualifiers.carbon @@ -125,48 +125,48 @@ fn NonConstNonConst(p: X**) { TakeNonConstConst(p); } // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %X: type = class_type @X [concrete] -// CHECK:STDOUT: %const.5b9: type = const_type %X [concrete] -// CHECK:STDOUT: %ptr.2c7: type = ptr_type %const.5b9 [concrete] +// CHECK:STDOUT: %const.435: type = const_type %X [concrete] +// CHECK:STDOUT: %ptr.faf: type = ptr_type %const.435 [concrete] // CHECK:STDOUT: %TakeConst.type: type = fn_type @TakeConst [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %TakeConst: %TakeConst.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.324: type = ptr_type %X [concrete] +// CHECK:STDOUT: %ptr.db8: type = ptr_type %X [concrete] // CHECK:STDOUT: %TakeNonConst.type: type = fn_type @TakeNonConst [concrete] // CHECK:STDOUT: %TakeNonConst: %TakeNonConst.type = struct_value () [concrete] -// CHECK:STDOUT: %const.0f3: type = const_type %ptr.2c7 [concrete] -// CHECK:STDOUT: %ptr.db2: type = ptr_type %const.0f3 [concrete] +// CHECK:STDOUT: %const.95a: type = const_type %ptr.faf [concrete] +// CHECK:STDOUT: %ptr.b53: type = ptr_type %const.95a [concrete] // CHECK:STDOUT: %TakeConstConst.type: type = fn_type @TakeConstConst [concrete] // CHECK:STDOUT: %TakeConstConst: %TakeConstConst.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.366: type = ptr_type %ptr.2c7 [concrete] +// CHECK:STDOUT: %ptr.845: type = ptr_type %ptr.faf [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @NonConst(%p.param: %ptr.324) { +// CHECK:STDOUT: fn @NonConst(%p.param: %ptr.db8) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakeNonConst.ref: %TakeNonConst.type = name_ref TakeNonConst, file.%TakeNonConst.decl [concrete = constants.%TakeNonConst] -// CHECK:STDOUT: %p.ref.loc11: %ptr.324 = name_ref p, %p +// CHECK:STDOUT: %p.ref.loc11: %ptr.db8 = name_ref p, %p // CHECK:STDOUT: %TakeNonConst.call: init %empty_tuple.type = call %TakeNonConst.ref(%p.ref.loc11) // CHECK:STDOUT: %TakeConst.ref: %TakeConst.type = name_ref TakeConst, file.%TakeConst.decl [concrete = constants.%TakeConst] -// CHECK:STDOUT: %p.ref.loc12: %ptr.324 = name_ref p, %p -// CHECK:STDOUT: %.loc12_13.1: %ptr.2c7 = as_compatible %p.ref.loc12 -// CHECK:STDOUT: %.loc12_13.2: %ptr.2c7 = converted %p.ref.loc12, %.loc12_13.1 +// CHECK:STDOUT: %p.ref.loc12: %ptr.db8 = name_ref p, %p +// CHECK:STDOUT: %.loc12_13.1: %ptr.faf = as_compatible %p.ref.loc12 +// CHECK:STDOUT: %.loc12_13.2: %ptr.faf = converted %p.ref.loc12, %.loc12_13.1 // CHECK:STDOUT: %TakeConst.call: init %empty_tuple.type = call %TakeConst.ref(%.loc12_13.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Const(%p.param: %ptr.2c7) { +// CHECK:STDOUT: fn @Const(%p.param: %ptr.faf) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakeConst.ref: %TakeConst.type = name_ref TakeConst, file.%TakeConst.decl [concrete = constants.%TakeConst] -// CHECK:STDOUT: %p.ref: %ptr.2c7 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.faf = name_ref p, %p // CHECK:STDOUT: %TakeConst.call: init %empty_tuple.type = call %TakeConst.ref(%p.ref) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @NonConstConst(%p.param: %ptr.366) { +// CHECK:STDOUT: fn @NonConstConst(%p.param: %ptr.845) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakeConstConst.ref: %TakeConstConst.type = name_ref TakeConstConst, file.%TakeConstConst.decl [concrete = constants.%TakeConstConst] -// CHECK:STDOUT: %p.ref: %ptr.366 = name_ref p, %p -// CHECK:STDOUT: %.loc25_18.1: %ptr.db2 = as_compatible %p.ref -// CHECK:STDOUT: %.loc25_18.2: %ptr.db2 = converted %p.ref, %.loc25_18.1 +// CHECK:STDOUT: %p.ref: %ptr.845 = name_ref p, %p +// CHECK:STDOUT: %.loc25_18.1: %ptr.b53 = as_compatible %p.ref +// CHECK:STDOUT: %.loc25_18.2: %ptr.b53 = converted %p.ref, %.loc25_18.1 // CHECK:STDOUT: %TakeConstConst.call: init %empty_tuple.type = call %TakeConstConst.ref(%.loc25_18.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -175,33 +175,33 @@ fn NonConstNonConst(p: X**) { TakeNonConstConst(p); } // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %X: type = class_type @X [concrete] -// CHECK:STDOUT: %const.5b9: type = const_type %X [concrete] -// CHECK:STDOUT: %ptr.2c7: type = ptr_type %const.5b9 [concrete] -// CHECK:STDOUT: %const.0f3: type = const_type %ptr.2c7 [concrete] -// CHECK:STDOUT: %ptr.db2: type = ptr_type %const.0f3 [concrete] +// CHECK:STDOUT: %const.435: type = const_type %X [concrete] +// CHECK:STDOUT: %ptr.faf: type = ptr_type %const.435 [concrete] +// CHECK:STDOUT: %const.95a: type = const_type %ptr.faf [concrete] +// CHECK:STDOUT: %ptr.b53: type = ptr_type %const.95a [concrete] // CHECK:STDOUT: %TakeConstConst.type: type = fn_type @TakeConstConst [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %TakeConstConst: %TakeConstConst.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.324: type = ptr_type %X [concrete] -// CHECK:STDOUT: %ptr.998: type = ptr_type %ptr.324 [concrete] -// CHECK:STDOUT: %const.0dc: type = const_type %ptr.324 [concrete] -// CHECK:STDOUT: %ptr.f85: type = ptr_type %const.0dc [concrete] +// CHECK:STDOUT: %ptr.db8: type = ptr_type %X [concrete] +// CHECK:STDOUT: %ptr.9ae: type = ptr_type %ptr.db8 [concrete] +// CHECK:STDOUT: %const.d43: type = const_type %ptr.db8 [concrete] +// CHECK:STDOUT: %ptr.060: type = ptr_type %const.d43 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @NonConstNonConst(%p.param: %ptr.998) { +// CHECK:STDOUT: fn @NonConstNonConst(%p.param: %ptr.9ae) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakeConstConst.ref: %TakeConstConst.type = name_ref TakeConstConst, file.%TakeConstConst.decl [concrete = constants.%TakeConstConst] -// CHECK:STDOUT: %p.ref: %ptr.998 = name_ref p, %p -// CHECK:STDOUT: %.loc22: %ptr.db2 = converted %p.ref, [concrete = ] +// CHECK:STDOUT: %p.ref: %ptr.9ae = name_ref p, %p +// CHECK:STDOUT: %.loc22: %ptr.b53 = converted %p.ref, [concrete = ] // CHECK:STDOUT: %TakeConstConst.call: init %empty_tuple.type = call %TakeConstConst.ref() // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConstNonConst(%p.param: %ptr.f85) { +// CHECK:STDOUT: fn @ConstNonConst(%p.param: %ptr.060) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakeConstConst.ref: %TakeConstConst.type = name_ref TakeConstConst, file.%TakeConstConst.decl [concrete = constants.%TakeConstConst] -// CHECK:STDOUT: %p.ref: %ptr.f85 = name_ref p, %p -// CHECK:STDOUT: %.loc38: %ptr.db2 = converted %p.ref, [concrete = ] +// CHECK:STDOUT: %p.ref: %ptr.060 = name_ref p, %p +// CHECK:STDOUT: %.loc38: %ptr.b53 = converted %p.ref, [concrete = ] // CHECK:STDOUT: %TakeConstConst.call: init %empty_tuple.type = call %TakeConstConst.ref() // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/pointer/fail_deref_error.carbon b/toolchain/check/testdata/pointer/fail_deref_error.carbon index d4fd114749d6..f6cb056fb4a3 100644 --- a/toolchain/check/testdata/pointer/fail_deref_error.carbon +++ b/toolchain/check/testdata/pointer/fail_deref_error.carbon @@ -30,7 +30,7 @@ let n2: i32 = undeclared->foo; // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -51,12 +51,12 @@ let n2: i32 = undeclared->foo; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = value_binding_pattern n [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = value_binding_pattern n [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc19: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %n2.patt: %pattern_type.104 = value_binding_pattern n2 [concrete] +// CHECK:STDOUT: %n2.patt: %pattern_type.6b6 = value_binding_pattern n2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc24: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n2: %i32 = value_binding n2, [concrete = ] diff --git a/toolchain/check/testdata/pointer/fail_deref_not_pointer.carbon b/toolchain/check/testdata/pointer/fail_deref_not_pointer.carbon index 6232e52e3d0e..c1d4d9773622 100644 --- a/toolchain/check/testdata/pointer/fail_deref_not_pointer.carbon +++ b/toolchain/check/testdata/pointer/fail_deref_not_pointer.carbon @@ -53,7 +53,7 @@ fn Deref(n: i32) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Deref.type: type = fn_type @Deref [concrete] // CHECK:STDOUT: %Deref: %Deref.type = struct_value () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -77,8 +77,8 @@ fn Deref(n: i32) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Deref.decl: %Deref.type = fn_decl @Deref [concrete = constants.%Deref] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/testdata/pointer/fail_type_mismatch.carbon b/toolchain/check/testdata/pointer/fail_type_mismatch.carbon index 0d331d164403..bfa7b1e21e72 100644 --- a/toolchain/check/testdata/pointer/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/pointer/fail_type_mismatch.carbon @@ -37,8 +37,8 @@ fn ConstMismatch(p: const {}*) -> const ({}*) { // CHECK:STDOUT: %pattern_type.3c6: type = pattern_type %const.987 [concrete] // CHECK:STDOUT: %ConstMismatch.type: type = fn_type @ConstMismatch [concrete] // CHECK:STDOUT: %ConstMismatch: %ConstMismatch.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -47,7 +47,7 @@ fn ConstMismatch(p: const {}*) -> const ({}*) { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/pointer/import.carbon b/toolchain/check/testdata/pointer/import.carbon index ef3b034adbd5..cf9b8239f1b2 100644 --- a/toolchain/check/testdata/pointer/import.carbon +++ b/toolchain/check/testdata/pointer/import.carbon @@ -32,40 +32,40 @@ var a: i32* = a_ref; // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr.847 [concrete] -// CHECK:STDOUT: %addr: %ptr.847 = addr_of file.%a_orig.var [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.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: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete] +// CHECK:STDOUT: %addr: %ptr.d08 = addr_of file.%a_orig.var [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.c37: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ae4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.6e4: %ptr.as.Copy.impl.Op.type.ae4 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.847, (%Copy.impl_witness.c37) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.165: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.cd7: type = fn_type_with_self_type %Copy.WithSelf.Op.type.165, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.6e4 [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.6e4, @ptr.as.Copy.impl.Op(%i32) [concrete] -// CHECK:STDOUT: %bound_method.ea9: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.ce1: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c1c: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.d1c: %ptr.as.Copy.impl.Op.type.c1c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.d08, (%Copy.impl_witness.ce1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.f9d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.ac9: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f9d, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %addr, %ptr.as.Copy.impl.Op.d1c [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: %bound_method.c35: = bound_method %addr, %ptr.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -77,12 +77,12 @@ var a: i32* = a_ref; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -93,41 +93,41 @@ var a: i32* = a_ref; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a_orig.patt: %pattern_type.104 = ref_binding_pattern a_orig [concrete] -// CHECK:STDOUT: %a_orig.var_patt: %pattern_type.104 = var_pattern %a_orig.patt [concrete] +// CHECK:STDOUT: %a_orig.patt: %pattern_type.6b6 = ref_binding_pattern a_orig [concrete] +// CHECK:STDOUT: %a_orig.var_patt: %pattern_type.6b6 = var_pattern %a_orig.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a_orig.var: ref %i32 = var %a_orig.var_patt [concrete] // CHECK:STDOUT: %i32.loc4: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %a_orig: ref %i32 = ref_binding a_orig, %a_orig.var [concrete = %a_orig.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a_ref.patt: %pattern_type.7b5 = ref_binding_pattern a_ref [concrete] -// CHECK:STDOUT: %a_ref.var_patt: %pattern_type.7b5 = var_pattern %a_ref.patt [concrete] +// CHECK:STDOUT: %a_ref.patt: %pattern_type.f00 = ref_binding_pattern a_ref [concrete] +// CHECK:STDOUT: %a_ref.var_patt: %pattern_type.f00 = var_pattern %a_ref.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a_ref.var: ref %ptr.847 = var %a_ref.var_patt [concrete] -// CHECK:STDOUT: %.loc5: type = splice_block %ptr [concrete = constants.%ptr.847] { +// CHECK:STDOUT: %a_ref.var: ref %ptr.d08 = var %a_ref.var_patt [concrete] +// CHECK:STDOUT: %.loc5: type = splice_block %ptr [concrete = constants.%ptr.d08] { // CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc5 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr: type = ptr_type %i32.loc5 [concrete = constants.%ptr.d08] // CHECK:STDOUT: } -// CHECK:STDOUT: %a_ref: ref %ptr.847 = ref_binding a_ref, %a_ref.var [concrete = %a_ref.var] +// CHECK:STDOUT: %a_ref: ref %ptr.d08 = ref_binding a_ref, %a_ref.var [concrete = %a_ref.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc4: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc4: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc4_1.1: = bound_method %int_0, %impl.elem0.loc4 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc4: = specific_function %impl.elem0.loc4, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc4_1.2: = bound_method %int_0, %specific_fn.loc4 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc4_1.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc4_1.2: = bound_method %int_0, %specific_fn.loc4 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc4_1.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc4: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign file.%a_orig.var, %.loc4 // CHECK:STDOUT: %a_orig.ref: ref %i32 = name_ref a_orig, file.%a_orig [concrete = file.%a_orig.var] -// CHECK:STDOUT: %addr: %ptr.847 = addr_of %a_orig.ref [concrete = constants.%addr] -// CHECK:STDOUT: %impl.elem0.loc5: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %addr: %ptr.d08 = addr_of %a_orig.ref [concrete = constants.%addr] +// CHECK:STDOUT: %impl.elem0.loc5: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc5_19.1: = bound_method %addr, %impl.elem0.loc5 [concrete = constants.%ptr.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc5_19.2: = bound_method %addr, %specific_fn.loc5 [concrete = constants.%bound_method.ea9] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.847 = call %bound_method.loc5_19.2(%addr) [concrete = constants.%addr] +// CHECK:STDOUT: %bound_method.loc5_19.2: = bound_method %addr, %specific_fn.loc5 [concrete = constants.%bound_method.c35] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d08 = call %bound_method.loc5_19.2(%addr) [concrete = constants.%addr] // CHECK:STDOUT: assign file.%a_ref.var, %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -139,36 +139,36 @@ var a: i32* = a_ref; // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.05a: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.fad: %ptr.as.Copy.impl.Op.type.05a = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.b07: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %pattern_type.c12: type = pattern_type %ptr.b07 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.22b: = impl_witness imports.%Copy.impl_witness_table.6eb, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.abd: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.958: %ptr.as.Copy.impl.Op.type.abd = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.b07, (%Copy.impl_witness.22b) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.5c2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.227: type = fn_type_with_self_type %Copy.WithSelf.Op.type.5c2, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.958, @ptr.as.Copy.impl.Op(%i32) [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.101: = impl_witness imports.%Copy.impl_witness_table.90e, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c1c: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.d1c: %ptr.as.Copy.impl.Op.type.c1c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.d08, (%Copy.impl_witness.101) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.60a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.335: type = fn_type_with_self_type %Copy.WithSelf.Op.type.60a, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Implicit.a_orig = import_ref Implicit//default, a_orig, unloaded -// CHECK:STDOUT: %Implicit.a_ref: ref %ptr.b07 = import_ref Implicit//default, a_ref, loaded [concrete = %a_ref.var] -// CHECK:STDOUT: %Core.979: = namespace file.%Core.import, [concrete] { +// CHECK:STDOUT: %Implicit.a_ref: ref %ptr.d08 = import_ref Implicit//default, a_ref, loaded [concrete = %a_ref.var] +// CHECK:STDOUT: %Core.048aa3.1: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .Int = %Core.Int // CHECK:STDOUT: .Copy = %Core.Copy // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Implicit.import_ref.33d: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.05a) = import_ref Implicit//default, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.fad)] -// CHECK:STDOUT: %Copy.impl_witness_table.6eb = impl_witness_table (%Implicit.import_ref.33d), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Implicit.import_ref.499: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Implicit//default, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.90e = impl_witness_table (%Implicit.import_ref.499), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %a_ref.patt: %pattern_type.c12 = ref_binding_pattern a_ref [concrete] -// CHECK:STDOUT: %a_ref.var_patt: %pattern_type.c12 = var_pattern %a_ref.patt [concrete] -// CHECK:STDOUT: %a_ref.var: ref %ptr.b07 = var %a_ref.var_patt [concrete] +// CHECK:STDOUT: %a_ref.patt: %pattern_type.f00 = ref_binding_pattern a_ref [concrete] +// CHECK:STDOUT: %a_ref.var_patt: %pattern_type.f00 = var_pattern %a_ref.patt [concrete] +// CHECK:STDOUT: %a_ref.var: ref %ptr.d08 = var %a_ref.var_patt [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -176,33 +176,33 @@ var a: i32* = a_ref; // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .a_orig = imports.%Implicit.a_orig // CHECK:STDOUT: .a_ref = imports.%Implicit.a_ref -// CHECK:STDOUT: .Core = imports.%Core.979 +// CHECK:STDOUT: .Core = imports.%Core.048aa3.1 // CHECK:STDOUT: .a = %a // CHECK:STDOUT: } // CHECK:STDOUT: %Implicit.import = import Implicit // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.c12 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.c12 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.f00 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.f00 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %ptr.b07 = var %a.var_patt [concrete] -// CHECK:STDOUT: %.loc4: type = splice_block %ptr [concrete = constants.%ptr.b07] { +// CHECK:STDOUT: %a.var: ref %ptr.d08 = var %a.var_patt [concrete] +// CHECK:STDOUT: %.loc4: type = splice_block %ptr [concrete = constants.%ptr.d08] { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr: type = ptr_type %i32 [concrete = constants.%ptr.b07] +// CHECK:STDOUT: %ptr: type = ptr_type %i32 [concrete = constants.%ptr.d08] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %ptr.b07 = ref_binding a, %a.var [concrete = %a.var] +// CHECK:STDOUT: %a: ref %ptr.d08 = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a_ref.ref: ref %ptr.b07 = name_ref a_ref, imports.%Implicit.a_ref [concrete = imports.%a_ref.var] -// CHECK:STDOUT: %.loc4: %ptr.b07 = acquire_value %a_ref.ref -// CHECK:STDOUT: %impl.elem0: %.227 = impl_witness_access constants.%Copy.impl_witness.22b, element0 [concrete = constants.%ptr.as.Copy.impl.Op.958] +// CHECK:STDOUT: %a_ref.ref: ref %ptr.d08 = name_ref a_ref, imports.%Implicit.a_ref [concrete = imports.%a_ref.var] +// CHECK:STDOUT: %.loc4: %ptr.d08 = acquire_value %a_ref.ref +// CHECK:STDOUT: %impl.elem0: %.335 = impl_witness_access constants.%Copy.impl_witness.101, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc4_15.1: = bound_method %.loc4, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc4_15.2: = bound_method %.loc4, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.b07 = call %bound_method.loc4_15.2(%.loc4) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d08 = call %bound_method.loc4_15.2(%.loc4) // CHECK:STDOUT: assign file.%a.var, %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/pointer/nested_const.carbon b/toolchain/check/testdata/pointer/nested_const.carbon index 01d4e80e2a2a..0216f3edaed2 100644 --- a/toolchain/check/testdata/pointer/nested_const.carbon +++ b/toolchain/check/testdata/pointer/nested_const.carbon @@ -25,31 +25,31 @@ fn F(p: const (const (const i32*)*)) -> const i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %const.72d: type = const_type %i32 [concrete] -// CHECK:STDOUT: %ptr.9a7: type = ptr_type %const.72d [concrete] -// CHECK:STDOUT: %const.4d4: type = const_type %ptr.9a7 [concrete] -// CHECK:STDOUT: %ptr.47a: type = ptr_type %const.4d4 [concrete] -// CHECK:STDOUT: %const.4bc: type = const_type %ptr.47a [concrete] -// CHECK:STDOUT: %pattern_type.b74: type = pattern_type %const.4bc [concrete] -// CHECK:STDOUT: %.f3b: Core.Form = init_form %const.72d [concrete] -// CHECK:STDOUT: %pattern_type.68c: type = pattern_type %const.72d [concrete] +// CHECK:STDOUT: %const.6a8: type = const_type %i32 [concrete] +// CHECK:STDOUT: %ptr.774: type = ptr_type %const.6a8 [concrete] +// CHECK:STDOUT: %const.8df: type = const_type %ptr.774 [concrete] +// CHECK:STDOUT: %ptr.f93: type = ptr_type %const.8df [concrete] +// CHECK:STDOUT: %const.99e: type = const_type %ptr.f93 [concrete] +// CHECK:STDOUT: %pattern_type.a04: type = pattern_type %const.99e [concrete] +// CHECK:STDOUT: %.242: Core.Form = init_form %const.6a8 [concrete] +// CHECK:STDOUT: %pattern_type.ed1: type = pattern_type %const.6a8 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.f49: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %const.as.Copy.impl.Op.type.6d8: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%T.f49) [symbolic] -// CHECK:STDOUT: %const.as.Copy.impl.Op.e95: %const.as.Copy.impl.Op.type.6d8 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Copy.facet.14d: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.impl_witness.c9a: = impl_witness imports.%Copy.impl_witness_table.b24, @const.as.Copy.impl(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.type.41e: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.8c2: %const.as.Copy.impl.Op.type.41e = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.022: %Copy.type = facet_value %const.72d, (%Copy.impl_witness.c9a) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.dd5: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.022) [concrete] -// CHECK:STDOUT: %.c35: type = fn_type_with_self_type %Copy.WithSelf.Op.type.dd5, %Copy.facet.022 [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.specific_fn: = specific_function %const.as.Copy.impl.Op.8c2, @const.as.Copy.impl.Op(%Copy.facet.14d) [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: %T.f84: %Copy.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %const.as.Copy.impl.Op.type.145: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%T.f84) [symbolic] +// CHECK:STDOUT: %const.as.Copy.impl.Op.093: %const.as.Copy.impl.Op.type.145 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Copy.facet.987: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.0b0: = impl_witness imports.%Copy.impl_witness_table.554, @const.as.Copy.impl(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.type.9b1: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.9cf: %const.as.Copy.impl.Op.type.9b1 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.96e: %Copy.type = facet_value %const.6a8, (%Copy.impl_witness.0b0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.49b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.96e) [concrete] +// CHECK:STDOUT: %.367: type = fn_type_with_self_type %Copy.WithSelf.Op.type.49b, %Copy.facet.96e [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.specific_fn: = specific_function %const.as.Copy.impl.Op.9cf, @const.as.Copy.impl.Op(%Copy.facet.987) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -61,10 +61,10 @@ fn F(p: const (const (const i32*)*)) -> const i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.60b: @const.as.Copy.impl.%const.as.Copy.impl.Op.type (%const.as.Copy.impl.Op.type.6d8) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @const.as.Copy.impl.%const.as.Copy.impl.Op (constants.%const.as.Copy.impl.Op.e95)] -// CHECK:STDOUT: %Copy.impl_witness_table.b24 = impl_witness_table (%Core.import_ref.60b), @const.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.f89: @const.as.Copy.impl.%const.as.Copy.impl.Op.type (%const.as.Copy.impl.Op.type.145) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @const.as.Copy.impl.%const.as.Copy.impl.Op (constants.%const.as.Copy.impl.Op.093)] +// CHECK:STDOUT: %Copy.impl_witness_table.554 = impl_witness_table (%Core.import_ref.f89), @const.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -74,41 +74,41 @@ fn F(p: const (const (const i32*)*)) -> const i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.b74 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.b74 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.68c = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.68c = return_slot_pattern %return.param_patt, %const.loc16_41 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.a04 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.a04 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.ed1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.ed1 = return_slot_pattern %return.param_patt, %const.loc16_41 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc16_47: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %const.loc16_41: type = const_type %i32.loc16_47 [concrete = constants.%const.72d] -// CHECK:STDOUT: %.loc16_41: Core.Form = init_form %const.loc16_41 [concrete = constants.%.f3b] -// CHECK:STDOUT: %p.param: %const.4bc = value_param call_param0 -// CHECK:STDOUT: %.loc16_9: type = splice_block %const.loc16_9 [concrete = constants.%const.4bc] { +// CHECK:STDOUT: %const.loc16_41: type = const_type %i32.loc16_47 [concrete = constants.%const.6a8] +// CHECK:STDOUT: %.loc16_41: Core.Form = init_form %const.loc16_41 [concrete = constants.%.242] +// CHECK:STDOUT: %p.param: %const.99e = value_param call_param0 +// CHECK:STDOUT: %.loc16_9: type = splice_block %const.loc16_9 [concrete = constants.%const.99e] { // CHECK:STDOUT: %i32.loc16_29: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %const.loc16_23: type = const_type %i32.loc16_29 [concrete = constants.%const.72d] -// CHECK:STDOUT: %ptr.loc16_32: type = ptr_type %const.loc16_23 [concrete = constants.%ptr.9a7] -// CHECK:STDOUT: %const.loc16_16: type = const_type %ptr.loc16_32 [concrete = constants.%const.4d4] -// CHECK:STDOUT: %ptr.loc16_34: type = ptr_type %const.loc16_16 [concrete = constants.%ptr.47a] -// CHECK:STDOUT: %const.loc16_9: type = const_type %ptr.loc16_34 [concrete = constants.%const.4bc] +// CHECK:STDOUT: %const.loc16_23: type = const_type %i32.loc16_29 [concrete = constants.%const.6a8] +// CHECK:STDOUT: %ptr.loc16_32: type = ptr_type %const.loc16_23 [concrete = constants.%ptr.774] +// CHECK:STDOUT: %const.loc16_16: type = const_type %ptr.loc16_32 [concrete = constants.%const.8df] +// CHECK:STDOUT: %ptr.loc16_34: type = ptr_type %const.loc16_16 [concrete = constants.%ptr.f93] +// CHECK:STDOUT: %const.loc16_9: type = const_type %ptr.loc16_34 [concrete = constants.%const.99e] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %const.4bc = value_binding p, %p.param -// CHECK:STDOUT: %return.param: ref %const.72d = out_param call_param1 -// CHECK:STDOUT: %return: ref %const.72d = return_slot %return.param +// CHECK:STDOUT: %p: %const.99e = value_binding p, %p.param +// CHECK:STDOUT: %return.param: ref %const.6a8 = out_param call_param1 +// CHECK:STDOUT: %return: ref %const.6a8 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%p.param: %const.4bc) -> out %return.param: %const.72d { +// CHECK:STDOUT: fn @F(%p.param: %const.99e) -> out %return.param: %const.6a8 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %const.4bc = name_ref p, %p -// CHECK:STDOUT: %.loc17_11.1: ref %const.4d4 = deref %p.ref -// CHECK:STDOUT: %.loc17_11.2: %const.4d4 = acquire_value %.loc17_11.1 -// CHECK:STDOUT: %.loc17_10.1: ref %const.72d = deref %.loc17_11.2 -// CHECK:STDOUT: %.loc17_10.2: %const.72d = acquire_value %.loc17_10.1 -// CHECK:STDOUT: %impl.elem0: %.c35 = impl_witness_access constants.%Copy.impl_witness.c9a, element0 [concrete = constants.%const.as.Copy.impl.Op.8c2] +// CHECK:STDOUT: %p.ref: %const.99e = name_ref p, %p +// CHECK:STDOUT: %.loc17_11.1: ref %const.8df = deref %p.ref +// CHECK:STDOUT: %.loc17_11.2: %const.8df = acquire_value %.loc17_11.1 +// CHECK:STDOUT: %.loc17_10.1: ref %const.6a8 = deref %.loc17_11.2 +// CHECK:STDOUT: %.loc17_10.2: %const.6a8 = acquire_value %.loc17_10.1 +// CHECK:STDOUT: %impl.elem0: %.367 = impl_witness_access constants.%Copy.impl_witness.0b0, element0 [concrete = constants.%const.as.Copy.impl.Op.9cf] // CHECK:STDOUT: %bound_method.loc17_10.1: = bound_method %.loc17_10.2, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @const.as.Copy.impl.Op(constants.%Copy.facet.14d) [concrete = constants.%const.as.Copy.impl.Op.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @const.as.Copy.impl.Op(constants.%Copy.facet.987) [concrete = constants.%const.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc17_10.2: = bound_method %.loc17_10.2, %specific_fn -// CHECK:STDOUT: %const.as.Copy.impl.Op.call: init %const.72d = call %bound_method.loc17_10.2(%.loc17_10.2) +// CHECK:STDOUT: %const.as.Copy.impl.Op.call: init %const.6a8 = call %bound_method.loc17_10.2(%.loc17_10.2) // CHECK:STDOUT: return %const.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/types.carbon b/toolchain/check/testdata/pointer/types.carbon index 65b88d5b7316..025df1e2e3fd 100644 --- a/toolchain/check/testdata/pointer/types.carbon +++ b/toolchain/check/testdata/pointer/types.carbon @@ -27,35 +27,35 @@ fn ConstPtr(p: const i32*) -> (const i32)* { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %pattern_type.7b5: type = pattern_type %ptr.847 [concrete] -// CHECK:STDOUT: %.060: Core.Form = init_form %ptr.847 [concrete] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete] +// CHECK:STDOUT: %.952: Core.Form = init_form %ptr.d08 [concrete] // CHECK:STDOUT: %Ptr.type: type = fn_type @Ptr [concrete] // CHECK:STDOUT: %Ptr: %Ptr.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.aa4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.5a1: %ptr.as.Copy.impl.Op.type.aa4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.c37: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ae4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.6e4: %ptr.as.Copy.impl.Op.type.ae4 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.17a: %Copy.type = facet_value %ptr.847, (%Copy.impl_witness.c37) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.165: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.17a) [concrete] -// CHECK:STDOUT: %.cd7: type = fn_type_with_self_type %Copy.WithSelf.Op.type.165, %Copy.facet.17a [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.cef: = specific_function %ptr.as.Copy.impl.Op.6e4, @ptr.as.Copy.impl.Op(%i32) [concrete] -// CHECK:STDOUT: %const.72d: type = const_type %i32 [concrete] -// CHECK:STDOUT: %ptr.9a7: type = ptr_type %const.72d [concrete] -// CHECK:STDOUT: %pattern_type.9ec: type = pattern_type %ptr.9a7 [concrete] -// CHECK:STDOUT: %.cf7: Core.Form = init_form %ptr.9a7 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.ce1: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.c1c: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%i32) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.d1c: %ptr.as.Copy.impl.Op.type.c1c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.b49: %Copy.type = facet_value %ptr.d08, (%Copy.impl_witness.ce1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.f9d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.b49) [concrete] +// CHECK:STDOUT: %.ac9: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f9d, %Copy.facet.b49 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.b3e: = specific_function %ptr.as.Copy.impl.Op.d1c, @ptr.as.Copy.impl.Op(%i32) [concrete] +// CHECK:STDOUT: %const.6a8: type = const_type %i32 [concrete] +// CHECK:STDOUT: %ptr.774: type = ptr_type %const.6a8 [concrete] +// CHECK:STDOUT: %pattern_type.8c1: type = pattern_type %ptr.774 [concrete] +// CHECK:STDOUT: %.af2: Core.Form = init_form %ptr.774 [concrete] // CHECK:STDOUT: %ConstPtr.type: type = fn_type @ConstPtr [concrete] // CHECK:STDOUT: %ConstPtr: %ConstPtr.type = struct_value () [concrete] -// CHECK:STDOUT: %Copy.impl_witness.9d6: = impl_witness imports.%Copy.impl_witness_table.6b9, @ptr.as.Copy.impl(%const.72d) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.af3: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%const.72d) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.dc5: %ptr.as.Copy.impl.Op.type.af3 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.387: %Copy.type = facet_value %ptr.9a7, (%Copy.impl_witness.9d6) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.a88: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.387) [concrete] -// CHECK:STDOUT: %.5d6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.a88, %Copy.facet.387 [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.8aa: = specific_function %ptr.as.Copy.impl.Op.dc5, @ptr.as.Copy.impl.Op(%const.72d) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.1fe: = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%const.6a8) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.17e: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%const.6a8) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.eb7: %ptr.as.Copy.impl.Op.type.17e = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.82e: %Copy.type = facet_value %ptr.774, (%Copy.impl_witness.1fe) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.18a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.82e) [concrete] +// CHECK:STDOUT: %.31f: type = fn_type_with_self_type %Copy.WithSelf.Op.type.18a, %Copy.facet.82e [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.1b4: = specific_function %ptr.as.Copy.impl.Op.eb7, @ptr.as.Copy.impl.Op(%const.6a8) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -67,8 +67,8 @@ fn ConstPtr(p: const i32*) -> (const i32)* { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.aa4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.aa4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.5a1)] -// CHECK:STDOUT: %Copy.impl_witness_table.6b9 = impl_witness_table (%Core.import_ref.aa4), @ptr.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)] +// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -79,64 +79,64 @@ fn ConstPtr(p: const i32*) -> (const i32)* { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Ptr.decl: %Ptr.type = fn_decl @Ptr [concrete = constants.%Ptr] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.7b5 = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.7b5 = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.7b5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7b5 = return_slot_pattern %return.param_patt, %ptr.loc15_23 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.f00 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.f00 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.f00 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.f00 = return_slot_pattern %return.param_patt, %ptr.loc15_23 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_20: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr.loc15_23: type = ptr_type %i32.loc15_20 [concrete = constants.%ptr.847] -// CHECK:STDOUT: %.loc15_23: Core.Form = init_form %ptr.loc15_23 [concrete = constants.%.060] -// CHECK:STDOUT: %p.param: %ptr.847 = value_param call_param0 -// CHECK:STDOUT: %.loc15_14: type = splice_block %ptr.loc15_14 [concrete = constants.%ptr.847] { +// CHECK:STDOUT: %ptr.loc15_23: type = ptr_type %i32.loc15_20 [concrete = constants.%ptr.d08] +// CHECK:STDOUT: %.loc15_23: Core.Form = init_form %ptr.loc15_23 [concrete = constants.%.952] +// CHECK:STDOUT: %p.param: %ptr.d08 = value_param call_param0 +// CHECK:STDOUT: %.loc15_14: type = splice_block %ptr.loc15_14 [concrete = constants.%ptr.d08] { // CHECK:STDOUT: %i32.loc15_11: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %ptr.loc15_14: type = ptr_type %i32.loc15_11 [concrete = constants.%ptr.847] +// CHECK:STDOUT: %ptr.loc15_14: type = ptr_type %i32.loc15_11 [concrete = constants.%ptr.d08] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.847 = value_binding p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.847 = out_param call_param1 -// CHECK:STDOUT: %return: ref %ptr.847 = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.d08 = value_binding p, %p.param +// CHECK:STDOUT: %return.param: ref %ptr.d08 = out_param call_param1 +// CHECK:STDOUT: %return: ref %ptr.d08 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ConstPtr.decl: %ConstPtr.type = fn_decl @ConstPtr [concrete = constants.%ConstPtr] { -// CHECK:STDOUT: %p.param_patt: %pattern_type.9ec = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: %pattern_type.9ec = at_binding_pattern p, %p.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9ec = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.9ec = return_slot_pattern %return.param_patt, %ptr.loc19_42 [concrete] +// CHECK:STDOUT: %p.param_patt: %pattern_type.8c1 = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.8c1 = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.8c1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.8c1 = return_slot_pattern %return.param_patt, %ptr.loc19_42 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc19_38: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %const.loc19_32: type = const_type %i32.loc19_38 [concrete = constants.%const.72d] -// CHECK:STDOUT: %ptr.loc19_42: type = ptr_type %const.loc19_32 [concrete = constants.%ptr.9a7] -// CHECK:STDOUT: %.loc19_42: Core.Form = init_form %ptr.loc19_42 [concrete = constants.%.cf7] -// CHECK:STDOUT: %p.param: %ptr.9a7 = value_param call_param0 -// CHECK:STDOUT: %.loc19_25: type = splice_block %ptr.loc19_25 [concrete = constants.%ptr.9a7] { +// CHECK:STDOUT: %const.loc19_32: type = const_type %i32.loc19_38 [concrete = constants.%const.6a8] +// CHECK:STDOUT: %ptr.loc19_42: type = ptr_type %const.loc19_32 [concrete = constants.%ptr.774] +// CHECK:STDOUT: %.loc19_42: Core.Form = init_form %ptr.loc19_42 [concrete = constants.%.af2] +// CHECK:STDOUT: %p.param: %ptr.774 = value_param call_param0 +// CHECK:STDOUT: %.loc19_25: type = splice_block %ptr.loc19_25 [concrete = constants.%ptr.774] { // CHECK:STDOUT: %i32.loc19_22: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %const.loc19_16: type = const_type %i32.loc19_22 [concrete = constants.%const.72d] -// CHECK:STDOUT: %ptr.loc19_25: type = ptr_type %const.loc19_16 [concrete = constants.%ptr.9a7] +// CHECK:STDOUT: %const.loc19_16: type = const_type %i32.loc19_22 [concrete = constants.%const.6a8] +// CHECK:STDOUT: %ptr.loc19_25: type = ptr_type %const.loc19_16 [concrete = constants.%ptr.774] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.9a7 = value_binding p, %p.param -// CHECK:STDOUT: %return.param: ref %ptr.9a7 = out_param call_param1 -// CHECK:STDOUT: %return: ref %ptr.9a7 = return_slot %return.param +// CHECK:STDOUT: %p: %ptr.774 = value_binding p, %p.param +// CHECK:STDOUT: %return.param: ref %ptr.774 = out_param call_param1 +// CHECK:STDOUT: %return: ref %ptr.774 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Ptr(%p.param: %ptr.847) -> out %return.param: %ptr.847 { +// CHECK:STDOUT: fn @Ptr(%p.param: %ptr.d08) -> out %return.param: %ptr.d08 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.847 = name_ref p, %p -// CHECK:STDOUT: %impl.elem0: %.cd7 = impl_witness_access constants.%Copy.impl_witness.c37, element0 [concrete = constants.%ptr.as.Copy.impl.Op.6e4] +// CHECK:STDOUT: %p.ref: %ptr.d08 = name_ref p, %p +// CHECK:STDOUT: %impl.elem0: %.ac9 = impl_witness_access constants.%Copy.impl_witness.ce1, element0 [concrete = constants.%ptr.as.Copy.impl.Op.d1c] // CHECK:STDOUT: %bound_method.loc16_10.1: = bound_method %p.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.cef] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.b3e] // CHECK:STDOUT: %bound_method.loc16_10.2: = bound_method %p.ref, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.847 = call %bound_method.loc16_10.2(%p.ref) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.d08 = call %bound_method.loc16_10.2(%p.ref) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConstPtr(%p.param: %ptr.9a7) -> out %return.param: %ptr.9a7 { +// CHECK:STDOUT: fn @ConstPtr(%p.param: %ptr.774) -> out %return.param: %ptr.774 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.9a7 = name_ref p, %p -// CHECK:STDOUT: %impl.elem0: %.5d6 = impl_witness_access constants.%Copy.impl_witness.9d6, element0 [concrete = constants.%ptr.as.Copy.impl.Op.dc5] +// CHECK:STDOUT: %p.ref: %ptr.774 = name_ref p, %p +// CHECK:STDOUT: %impl.elem0: %.31f = impl_witness_access constants.%Copy.impl_witness.1fe, element0 [concrete = constants.%ptr.as.Copy.impl.Op.eb7] // CHECK:STDOUT: %bound_method.loc20_10.1: = bound_method %p.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%const.72d) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.8aa] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%const.6a8) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn.1b4] // CHECK:STDOUT: %bound_method.loc20_10.2: = bound_method %p.ref, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.9a7 = call %bound_method.loc20_10.2(%p.ref) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.774 = call %bound_method.loc20_10.2(%p.ref) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/primitives/import_symbolic.carbon b/toolchain/check/testdata/primitives/import_symbolic.carbon index 43fcecc62a93..8d3554f5002d 100644 --- a/toolchain/check/testdata/primitives/import_symbolic.carbon +++ b/toolchain/check/testdata/primitives/import_symbolic.carbon @@ -203,12 +203,12 @@ fn F() -> u32 { // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.96e: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.073 [concrete] +// CHECK:STDOUT: %assoc0.39d: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.5d7 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.de3: = impl_witness imports.%Copy.impl_witness_table.34b [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.de3) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.079: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.022: type = fn_type_with_self_type %Copy.WithSelf.Op.type.079, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.713: = impl_witness imports.%Copy.impl_witness_table.1ff [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value bool, (%Copy.impl_witness.713) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.4a4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.15e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.4a4, %Copy.facet [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: %bool.as.Copy.impl.Op.bound: = bound_method %false, %bool.as.Copy.impl.Op [concrete] @@ -217,13 +217,13 @@ fn F() -> u32 { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//bool, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.C: type = import_ref Main//bool, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.a82: %I.assoc_type = import_ref Main//bool, loc5_12, loaded [concrete = constants.%assoc0.96e] +// CHECK:STDOUT: %Main.import_ref.c71: %I.assoc_type = import_ref Main//bool, loc5_12, loaded [concrete = constants.%assoc0.39d] // CHECK:STDOUT: %Main.import_ref.d18: bool = import_ref Main//bool, loc9_34, loaded [concrete = constants.%false] // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.d18), @C.as.I.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.073: bool = import_ref Main//bool, loc5_12, loaded [concrete = %value] +// CHECK:STDOUT: %Main.import_ref.5d7: bool = import_ref Main//bool, loc5_12, loaded [concrete = %value] // CHECK:STDOUT: %value: bool = assoc_const_decl @value [concrete] {} -// CHECK:STDOUT: %Core.import_ref.f63: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.34b = impl_witness_table (%Core.import_ref.f63), @bool.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.1ff = impl_witness_table (%Core.import_ref.9c3), @bool.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> out %return.param: bool { @@ -234,9 +234,9 @@ fn F() -> u32 { // CHECK:STDOUT: %.loc7_13: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_13 [concrete = constants.%C] // CHECK:STDOUT: %.loc7_18: type = converted %.loc7_13, %as_type [concrete = constants.%C] -// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.a82 [concrete = constants.%assoc0.96e] +// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.c71 [concrete = constants.%assoc0.39d] // CHECK:STDOUT: %impl.elem0.loc7_18.1: bool = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%false] -// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.022 = impl_witness_access constants.%Copy.impl_witness.de3, element0 [concrete = constants.%bool.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.15e = impl_witness_access constants.%Copy.impl_witness.713, element0 [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %impl.elem0.loc7_18.1, %impl.elem0.loc7_18.2 [concrete = constants.%bool.as.Copy.impl.Op.bound] // CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method(%impl.elem0.loc7_18.1) [concrete = constants.%false] // CHECK:STDOUT: return %bool.as.Copy.impl.Op.call @@ -252,12 +252,12 @@ fn F() -> u32 { // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.25c: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.676 [concrete] +// CHECK:STDOUT: %assoc0.3af: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.ed0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.937: = impl_witness imports.%Copy.impl_witness_table.045 [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %char, (%Copy.impl_witness.937) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.386: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.e5e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.386, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.769: = impl_witness imports.%Copy.impl_witness_table.5aa [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %char, (%Copy.impl_witness.769) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.18f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.367: type = fn_type_with_self_type %Copy.WithSelf.Op.type.18f, %Copy.facet [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op.type: type = fn_type @char.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op: %char.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op.bound: = bound_method %int_97, %char.as.Copy.impl.Op [concrete] @@ -266,13 +266,13 @@ fn F() -> u32 { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//char, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.C: type = import_ref Main//char, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.740: %I.assoc_type = import_ref Main//char, loc5_12, loaded [concrete = constants.%assoc0.25c] -// CHECK:STDOUT: %Main.import_ref.118: %char = import_ref Main//char, loc10_32, loaded [concrete = constants.%int_97] -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.118), @C.as.I.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.676: %char = import_ref Main//char, loc5_12, loaded [concrete = %value] +// CHECK:STDOUT: %Main.import_ref.b27: %I.assoc_type = import_ref Main//char, loc5_12, loaded [concrete = constants.%assoc0.3af] +// CHECK:STDOUT: %Main.import_ref.e0f: %char = import_ref Main//char, loc10_32, loaded [concrete = constants.%int_97] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.e0f), @C.as.I.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.ed0: %char = import_ref Main//char, loc5_12, loaded [concrete = %value] // CHECK:STDOUT: %value: %char = assoc_const_decl @value [concrete] {} -// CHECK:STDOUT: %Core.import_ref.f63: %char.as.Copy.impl.Op.type = import_ref Core//prelude/types/char, loc{{\d+_\d+}}, loaded [concrete = constants.%char.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.045 = impl_witness_table (%Core.import_ref.f63), @char.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %char.as.Copy.impl.Op.type = import_ref Core//prelude/types/char, loc{{\d+_\d+}}, loaded [concrete = constants.%char.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.5aa = impl_witness_table (%Core.import_ref.9c3), @char.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> out %return.param: %char { @@ -283,9 +283,9 @@ fn F() -> u32 { // CHECK:STDOUT: %.loc7_13: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_13 [concrete = constants.%C] // CHECK:STDOUT: %.loc7_18: type = converted %.loc7_13, %as_type [concrete = constants.%C] -// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.740 [concrete = constants.%assoc0.25c] +// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.b27 [concrete = constants.%assoc0.3af] // CHECK:STDOUT: %impl.elem0.loc7_18.1: %char = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%int_97] -// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.e5e = impl_witness_access constants.%Copy.impl_witness.937, element0 [concrete = constants.%char.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.367 = impl_witness_access constants.%Copy.impl_witness.769, element0 [concrete = constants.%char.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %impl.elem0.loc7_18.1, %impl.elem0.loc7_18.2 [concrete = constants.%char.as.Copy.impl.Op.bound] // CHECK:STDOUT: %char.as.Copy.impl.Op.call: init %char = call %bound_method(%impl.elem0.loc7_18.1) [concrete = constants.%int_97] // CHECK:STDOUT: return %char.as.Copy.impl.Op.call @@ -300,12 +300,12 @@ fn F() -> u32 { // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.ece: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.aaf [concrete] +// CHECK:STDOUT: %assoc0.ca7: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.a77 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.f9b: = impl_witness imports.%Copy.impl_witness_table.08c [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value Core.CharLiteral, (%Copy.impl_witness.f9b) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.bf4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.840: type = fn_type_with_self_type %Copy.WithSelf.Op.type.bf4, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.5d2: = impl_witness imports.%Copy.impl_witness_table.932 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value Core.CharLiteral, (%Copy.impl_witness.5d2) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.6bf: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.15e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.6bf, %Copy.facet [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.Copy.impl.Op.type: type = fn_type @Core.CharLiteral.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.Copy.impl.Op: %Core.CharLiteral.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.Copy.impl.Op.bound: = bound_method %.54f, %Core.CharLiteral.as.Copy.impl.Op [concrete] @@ -314,13 +314,13 @@ fn F() -> u32 { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//char_literal, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.C: type = import_ref Main//char_literal, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.421: %I.assoc_type = import_ref Main//char_literal, loc5_12, loaded [concrete = constants.%assoc0.ece] +// CHECK:STDOUT: %Main.import_ref.d65: %I.assoc_type = import_ref Main//char_literal, loc5_12, loaded [concrete = constants.%assoc0.ca7] // CHECK:STDOUT: %Main.import_ref.43e: Core.CharLiteral = import_ref Main//char_literal, loc10_32, loaded [concrete = constants.%.54f] // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.43e), @C.as.I.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.aaf: Core.CharLiteral = import_ref Main//char_literal, loc5_12, loaded [concrete = %value] +// CHECK:STDOUT: %Main.import_ref.a77: Core.CharLiteral = import_ref Main//char_literal, loc5_12, loaded [concrete = %value] // CHECK:STDOUT: %value: Core.CharLiteral = assoc_const_decl @value [concrete] {} -// CHECK:STDOUT: %Core.import_ref.f63: %Core.CharLiteral.as.Copy.impl.Op.type = import_ref Core//prelude/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.CharLiteral.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.08c = impl_witness_table (%Core.import_ref.f63), @Core.CharLiteral.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Core.CharLiteral.as.Copy.impl.Op.type = import_ref Core//prelude/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.CharLiteral.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.932 = impl_witness_table (%Core.import_ref.9c3), @Core.CharLiteral.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> out %return.param: Core.CharLiteral { @@ -331,9 +331,9 @@ fn F() -> u32 { // CHECK:STDOUT: %.loc7_13: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_13 [concrete = constants.%C] // CHECK:STDOUT: %.loc7_18: type = converted %.loc7_13, %as_type [concrete = constants.%C] -// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.421 [concrete = constants.%assoc0.ece] +// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.d65 [concrete = constants.%assoc0.ca7] // CHECK:STDOUT: %impl.elem0.loc7_18.1: Core.CharLiteral = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%.54f] -// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.840 = impl_witness_access constants.%Copy.impl_witness.f9b, element0 [concrete = constants.%Core.CharLiteral.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.15e = impl_witness_access constants.%Copy.impl_witness.5d2, element0 [concrete = constants.%Core.CharLiteral.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %impl.elem0.loc7_18.1, %impl.elem0.loc7_18.2 [concrete = constants.%Core.CharLiteral.as.Copy.impl.Op.bound] // CHECK:STDOUT: %Core.CharLiteral.as.Copy.impl.Op.call: init Core.CharLiteral = call %bound_method(%impl.elem0.loc7_18.1) [concrete = constants.%.54f] // CHECK:STDOUT: return %Core.CharLiteral.as.Copy.impl.Op.call @@ -344,41 +344,41 @@ fn F() -> u32 { // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] -// CHECK:STDOUT: %float: %f64.b55 = float_value 0.10000000000000001 [concrete] +// CHECK:STDOUT: %float: %f64.dc1 = float_value 0.10000000000000001 [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.26f: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.1f2 [concrete] +// CHECK:STDOUT: %assoc0.996: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.def [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.125: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bfc: %Float.as.Copy.impl.Op.type.125 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.811: = impl_witness imports.%Copy.impl_witness_table.384, @Float.as.Copy.impl(%int_64) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.7a5: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_64) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bcc: %Float.as.Copy.impl.Op.type.7a5 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f64.b55, (%Copy.impl_witness.811) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.286: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.c7d: type = fn_type_with_self_type %Copy.WithSelf.Op.type.286, %Copy.facet [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float, %Float.as.Copy.impl.Op.bcc [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.bcc, @Float.as.Copy.impl.Op(%int_64) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.ff3: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N) [symbolic] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.d93: %Float.as.Copy.impl.Op.type.ff3 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.873: = impl_witness imports.%Copy.impl_witness_table.4e8, @Float.as.Copy.impl(%int_64) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.7aa: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_64) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.9c2: %Float.as.Copy.impl.Op.type.7aa = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %f64.dc1, (%Copy.impl_witness.873) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.2ca: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.557: type = fn_type_with_self_type %Copy.WithSelf.Op.type.2ca, %Copy.facet [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float, %Float.as.Copy.impl.Op.9c2 [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.9c2, @Float.as.Copy.impl.Op(%int_64) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %float, %Float.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//float, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.C: type = import_ref Main//float, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.276: %I.assoc_type = import_ref Main//float, loc5_12, loaded [concrete = constants.%assoc0.26f] -// CHECK:STDOUT: %Main.import_ref.6ea: %f64.b55 = import_ref Main//float, loc10_32, loaded [concrete = constants.%float] -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.6ea), @C.as.I.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.1f2: %f64.b55 = import_ref Main//float, loc5_12, loaded [concrete = %value] -// CHECK:STDOUT: %value: %f64.b55 = assoc_const_decl @value [concrete] {} -// CHECK:STDOUT: %Core.import_ref.461: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.125) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.bfc)] -// CHECK:STDOUT: %Copy.impl_witness_table.384 = impl_witness_table (%Core.import_ref.461), @Float.as.Copy.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.16f: %I.assoc_type = import_ref Main//float, loc5_12, loaded [concrete = constants.%assoc0.996] +// CHECK:STDOUT: %Main.import_ref.b98: %f64.dc1 = import_ref Main//float, loc10_32, loaded [concrete = constants.%float] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.b98), @C.as.I.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.def: %f64.dc1 = import_ref Main//float, loc5_12, loaded [concrete = %value] +// CHECK:STDOUT: %value: %f64.dc1 = assoc_const_decl @value [concrete] {} +// CHECK:STDOUT: %Core.import_ref.e69: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.ff3) = import_ref Core//prelude/types/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.d93)] +// CHECK:STDOUT: %Copy.impl_witness_table.4e8 = impl_witness_table (%Core.import_ref.e69), @Float.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> out %return.param: %f64.b55 { +// CHECK:STDOUT: fn @F() -> out %return.param: %f64.dc1 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] @@ -386,13 +386,13 @@ fn F() -> u32 { // CHECK:STDOUT: %.loc7_13: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_13 [concrete = constants.%C] // CHECK:STDOUT: %.loc7_18: type = converted %.loc7_13, %as_type [concrete = constants.%C] -// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.276 [concrete = constants.%assoc0.26f] -// CHECK:STDOUT: %impl.elem0.loc7_18.1: %f64.b55 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%float] -// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.c7d = impl_witness_access constants.%Copy.impl_witness.811, element0 [concrete = constants.%Float.as.Copy.impl.Op.bcc] +// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.16f [concrete = constants.%assoc0.996] +// CHECK:STDOUT: %impl.elem0.loc7_18.1: %f64.dc1 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%float] +// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.557 = impl_witness_access constants.%Copy.impl_witness.873, element0 [concrete = constants.%Float.as.Copy.impl.Op.9c2] // CHECK:STDOUT: %bound_method.loc7_18.1: = bound_method %impl.elem0.loc7_18.1, %impl.elem0.loc7_18.2 [concrete = constants.%Float.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc7_18.2, @Float.as.Copy.impl.Op(constants.%int_64) [concrete = constants.%Float.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc7_18.2: = bound_method %impl.elem0.loc7_18.1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.call: init %f64.b55 = call %bound_method.loc7_18.2(%impl.elem0.loc7_18.1) [concrete = constants.%float] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.call: init %f64.dc1 = call %bound_method.loc7_18.2(%impl.elem0.loc7_18.1) [concrete = constants.%float] // CHECK:STDOUT: return %Float.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: @@ -404,13 +404,13 @@ fn F() -> u32 { // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.518: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.08a [concrete] +// CHECK:STDOUT: %assoc0.cf2: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.433 [concrete] // CHECK:STDOUT: %float.d5ab3d.2: Core.FloatLiteral = float_literal_value 1e-1 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.686: = impl_witness imports.%Copy.impl_witness_table.d0c [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value Core.FloatLiteral, (%Copy.impl_witness.686) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.2a0: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.90a: type = fn_type_with_self_type %Copy.WithSelf.Op.type.2a0, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.9be: = impl_witness imports.%Copy.impl_witness_table.cdf [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value Core.FloatLiteral, (%Copy.impl_witness.9be) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.39b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.9cc: type = fn_type_with_self_type %Copy.WithSelf.Op.type.39b, %Copy.facet [concrete] // CHECK:STDOUT: %Core.FloatLiteral.as.Copy.impl.Op.type: type = fn_type @Core.FloatLiteral.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Core.FloatLiteral.as.Copy.impl.Op: %Core.FloatLiteral.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.FloatLiteral.as.Copy.impl.Op.bound: = bound_method %float.d5ab3d.2, %Core.FloatLiteral.as.Copy.impl.Op [concrete] @@ -419,13 +419,13 @@ fn F() -> u32 { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//float_literal, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.C: type = import_ref Main//float_literal, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.5bd: %I.assoc_type = import_ref Main//float_literal, loc5_12, loaded [concrete = constants.%assoc0.518] +// CHECK:STDOUT: %Main.import_ref.da8: %I.assoc_type = import_ref Main//float_literal, loc5_12, loaded [concrete = constants.%assoc0.cf2] // CHECK:STDOUT: %Main.import_ref.78a: Core.FloatLiteral = import_ref Main//float_literal, loc10_32, loaded [concrete = constants.%float.d5ab3d.2] // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.78a), @C.as.I.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.08a: Core.FloatLiteral = import_ref Main//float_literal, loc5_12, loaded [concrete = %value] +// CHECK:STDOUT: %Main.import_ref.433: Core.FloatLiteral = import_ref Main//float_literal, loc5_12, loaded [concrete = %value] // CHECK:STDOUT: %value: Core.FloatLiteral = assoc_const_decl @value [concrete] {} -// CHECK:STDOUT: %Core.import_ref.f63: %Core.FloatLiteral.as.Copy.impl.Op.type = import_ref Core//prelude/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.FloatLiteral.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.d0c = impl_witness_table (%Core.import_ref.f63), @Core.FloatLiteral.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Core.FloatLiteral.as.Copy.impl.Op.type = import_ref Core//prelude/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.FloatLiteral.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.cdf = impl_witness_table (%Core.import_ref.9c3), @Core.FloatLiteral.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> out %return.param: Core.FloatLiteral { @@ -436,9 +436,9 @@ fn F() -> u32 { // CHECK:STDOUT: %.loc7_13: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_13 [concrete = constants.%C] // CHECK:STDOUT: %.loc7_18: type = converted %.loc7_13, %as_type [concrete = constants.%C] -// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.5bd [concrete = constants.%assoc0.518] +// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.da8 [concrete = constants.%assoc0.cf2] // CHECK:STDOUT: %impl.elem0.loc7_18.1: Core.FloatLiteral = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%float.d5ab3d.2] -// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.90a = impl_witness_access constants.%Copy.impl_witness.686, element0 [concrete = constants.%Core.FloatLiteral.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.9cc = impl_witness_access constants.%Copy.impl_witness.9be, element0 [concrete = constants.%Core.FloatLiteral.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %impl.elem0.loc7_18.1, %impl.elem0.loc7_18.2 [concrete = constants.%Core.FloatLiteral.as.Copy.impl.Op.bound] // CHECK:STDOUT: %Core.FloatLiteral.as.Copy.impl.Op.call: init Core.FloatLiteral = call %bound_method(%impl.elem0.loc7_18.1) [concrete = constants.%float.d5ab3d.2] // CHECK:STDOUT: return %Core.FloatLiteral.as.Copy.impl.Op.call @@ -456,31 +456,31 @@ fn F() -> u32 { // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.cb5: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.102 [concrete] +// CHECK:STDOUT: %assoc0.66c: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.5b0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_8, %Int.as.Copy.impl.Op.ce7 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_8, %Int.as.Copy.impl.Op.4f6 [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: %bound_method: = bound_method %int_8, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//int, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.C: type = import_ref Main//int, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.c2e: %I.assoc_type = import_ref Main//int, loc5_12, loaded [concrete = constants.%assoc0.cb5] -// CHECK:STDOUT: %Main.import_ref.4ce: %i32 = import_ref Main//int, loc10_30, loaded [concrete = constants.%int_8] -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.4ce), @C.as.I.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.102: %i32 = import_ref Main//int, loc5_12, loaded [concrete = %value] +// CHECK:STDOUT: %Main.import_ref.850: %I.assoc_type = import_ref Main//int, loc5_12, loaded [concrete = constants.%assoc0.66c] +// CHECK:STDOUT: %Main.import_ref.dfa: %i32 = import_ref Main//int, loc10_30, loaded [concrete = constants.%int_8] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.dfa), @C.as.I.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.5b0: %i32 = import_ref Main//int, loc5_12, loaded [concrete = %value] // CHECK:STDOUT: %value: %i32 = assoc_const_decl @value [concrete] {} -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> out %return.param: %i32 { @@ -491,9 +491,9 @@ fn F() -> u32 { // CHECK:STDOUT: %.loc7_13: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_13 [concrete = constants.%C] // CHECK:STDOUT: %.loc7_18: type = converted %.loc7_13, %as_type [concrete = constants.%C] -// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.c2e [concrete = constants.%assoc0.cb5] +// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.850 [concrete = constants.%assoc0.66c] // CHECK:STDOUT: %impl.elem0.loc7_18.1: %i32 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%int_8] -// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc7_18.1: = bound_method %impl.elem0.loc7_18.1, %impl.elem0.loc7_18.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc7_18.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc7_18.2: = bound_method %impl.elem0.loc7_18.1, %specific_fn [concrete = constants.%bound_method] @@ -510,12 +510,12 @@ fn F() -> u32 { // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.b97: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.ceb [concrete] +// CHECK:STDOUT: %assoc0.fa7: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.c4c [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.969: = impl_witness imports.%Copy.impl_witness_table.365 [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.969) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.535: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.b58: type = fn_type_with_self_type %Copy.WithSelf.Op.type.535, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.6f1: = impl_witness imports.%Copy.impl_witness_table.5e0 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.6f1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.c52: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.c22: type = fn_type_with_self_type %Copy.WithSelf.Op.type.c52, %Copy.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.type: type = fn_type @Core.IntLiteral.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op: %Core.IntLiteral.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.bound: = bound_method %int_7, %Core.IntLiteral.as.Copy.impl.Op [concrete] @@ -524,13 +524,13 @@ fn F() -> u32 { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//int_literal, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.C: type = import_ref Main//int_literal, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.265: %I.assoc_type = import_ref Main//int_literal, loc5_12, loaded [concrete = constants.%assoc0.b97] +// CHECK:STDOUT: %Main.import_ref.07d: %I.assoc_type = import_ref Main//int_literal, loc5_12, loaded [concrete = constants.%assoc0.fa7] // CHECK:STDOUT: %Main.import_ref.bc3: Core.IntLiteral = import_ref Main//int_literal, loc10_30, loaded [concrete = constants.%int_7] // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.bc3), @C.as.I.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.ceb: Core.IntLiteral = import_ref Main//int_literal, loc5_12, loaded [concrete = %value] +// CHECK:STDOUT: %Main.import_ref.c4c: Core.IntLiteral = import_ref Main//int_literal, loc5_12, loaded [concrete = %value] // CHECK:STDOUT: %value: Core.IntLiteral = assoc_const_decl @value [concrete] {} -// CHECK:STDOUT: %Core.import_ref.f63: %Core.IntLiteral.as.Copy.impl.Op.type = import_ref Core//prelude/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.365 = impl_witness_table (%Core.import_ref.f63), @Core.IntLiteral.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %Core.IntLiteral.as.Copy.impl.Op.type = import_ref Core//prelude/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.5e0 = impl_witness_table (%Core.import_ref.9c3), @Core.IntLiteral.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> out %return.param: Core.IntLiteral { @@ -541,9 +541,9 @@ fn F() -> u32 { // CHECK:STDOUT: %.loc7_13: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_13 [concrete = constants.%C] // CHECK:STDOUT: %.loc7_18: type = converted %.loc7_13, %as_type [concrete = constants.%C] -// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.265 [concrete = constants.%assoc0.b97] +// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.07d [concrete = constants.%assoc0.fa7] // CHECK:STDOUT: %impl.elem0.loc7_18.1: Core.IntLiteral = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%int_7] -// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.b58 = impl_witness_access constants.%Copy.impl_witness.969, element0 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.c22 = impl_witness_access constants.%Copy.impl_witness.6f1, element0 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %impl.elem0.loc7_18.1, %impl.elem0.loc7_18.2 [concrete = constants.%Core.IntLiteral.as.Copy.impl.Op.bound] // CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.call: init Core.IntLiteral = call %bound_method(%impl.elem0.loc7_18.1) [concrete = constants.%int_7] // CHECK:STDOUT: return %Core.IntLiteral.as.Copy.impl.Op.call @@ -561,31 +561,31 @@ fn F() -> u32 { // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.0ce: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.078 [concrete] +// CHECK:STDOUT: %assoc0.b19: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.e3a [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.743: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.521: %UInt.as.Copy.impl.Op.type.743 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.cfa: = impl_witness imports.%Copy.impl_witness_table.306, @UInt.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.46f: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.a73: %UInt.as.Copy.impl.Op.type.46f = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %u32, (%Copy.impl_witness.cfa) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7b4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.637: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7b4, %Copy.facet [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.bound: = bound_method %int_8, %UInt.as.Copy.impl.Op.a73 [concrete] -// CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.a73, @UInt.as.Copy.impl.Op(%int_32) [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.0c5: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%N) [symbolic] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.38a: %UInt.as.Copy.impl.Op.type.0c5 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.9d9: = impl_witness imports.%Copy.impl_witness_table.fe3, @UInt.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.type.2fd: type = fn_type @UInt.as.Copy.impl.Op, @UInt.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.46f: %UInt.as.Copy.impl.Op.type.2fd = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %u32, (%Copy.impl_witness.9d9) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.ec6: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.5f1: type = fn_type_with_self_type %Copy.WithSelf.Op.type.ec6, %Copy.facet [concrete] +// CHECK:STDOUT: %UInt.as.Copy.impl.Op.bound: = bound_method %int_8, %UInt.as.Copy.impl.Op.46f [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: %bound_method: = bound_method %int_8, %UInt.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//uint, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.C: type = import_ref Main//uint, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.a42: %I.assoc_type = import_ref Main//uint, loc5_12, loaded [concrete = constants.%assoc0.0ce] -// CHECK:STDOUT: %Main.import_ref.0b5: %u32 = import_ref Main//uint, loc10_30, loaded [concrete = constants.%int_8] -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.0b5), @C.as.I.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.078: %u32 = import_ref Main//uint, loc5_12, loaded [concrete = %value] +// CHECK:STDOUT: %Main.import_ref.1a5: %I.assoc_type = import_ref Main//uint, loc5_12, loaded [concrete = constants.%assoc0.b19] +// CHECK:STDOUT: %Main.import_ref.160: %u32 = import_ref Main//uint, loc10_30, loaded [concrete = constants.%int_8] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.160), @C.as.I.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.e3a: %u32 = import_ref Main//uint, loc5_12, loaded [concrete = %value] // CHECK:STDOUT: %value: %u32 = assoc_const_decl @value [concrete] {} -// CHECK:STDOUT: %Core.import_ref.3cf: @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op.type (%UInt.as.Copy.impl.Op.type.743) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op (constants.%UInt.as.Copy.impl.Op.521)] -// CHECK:STDOUT: %Copy.impl_witness_table.306 = impl_witness_table (%Core.import_ref.3cf), @UInt.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.791: @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op.type (%UInt.as.Copy.impl.Op.type.0c5) = import_ref Core//prelude/types/uint, loc{{\d+_\d+}}, loaded [symbolic = @UInt.as.Copy.impl.%UInt.as.Copy.impl.Op (constants.%UInt.as.Copy.impl.Op.38a)] +// CHECK:STDOUT: %Copy.impl_witness_table.fe3 = impl_witness_table (%Core.import_ref.791), @UInt.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> out %return.param: %u32 { @@ -596,9 +596,9 @@ fn F() -> u32 { // CHECK:STDOUT: %.loc7_13: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_13 [concrete = constants.%C] // CHECK:STDOUT: %.loc7_18: type = converted %.loc7_13, %as_type [concrete = constants.%C] -// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.a42 [concrete = constants.%assoc0.0ce] +// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.1a5 [concrete = constants.%assoc0.b19] // CHECK:STDOUT: %impl.elem0.loc7_18.1: %u32 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%int_8] -// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.637 = impl_witness_access constants.%Copy.impl_witness.cfa, element0 [concrete = constants.%UInt.as.Copy.impl.Op.a73] +// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.5f1 = impl_witness_access constants.%Copy.impl_witness.9d9, element0 [concrete = constants.%UInt.as.Copy.impl.Op.46f] // CHECK:STDOUT: %bound_method.loc7_18.1: = bound_method %impl.elem0.loc7_18.1, %impl.elem0.loc7_18.2 [concrete = constants.%UInt.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc7_18.2, @UInt.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%UInt.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc7_18.2: = bound_method %impl.elem0.loc7_18.1, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/primitives/string_literals.carbon b/toolchain/check/testdata/primitives/string_literals.carbon index 62d068bf56ae..fbe92fa2ab14 100644 --- a/toolchain/check/testdata/primitives/string_literals.carbon +++ b/toolchain/check/testdata/primitives/string_literals.carbon @@ -116,54 +116,54 @@ This string contains 256 characters. Among them are: // CHECK:STDOUT: --- use_small_string.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %str.abf: type = class_type @String [concrete] +// CHECK:STDOUT: %str.3d4: type = class_type @String [concrete] // CHECK:STDOUT: %int_8: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %u8: type = class_type @UInt, @UInt(%int_8) [concrete] -// CHECK:STDOUT: %ptr.9b7: type = ptr_type %u8 [concrete] -// CHECK:STDOUT: %pattern_type.3d7: type = pattern_type %str.abf [concrete] -// CHECK:STDOUT: %str.18a: %ptr.9b7 = string_literal "hello" [concrete] +// CHECK:STDOUT: %ptr.093: type = ptr_type %u8 [concrete] +// CHECK:STDOUT: %pattern_type.adf: type = pattern_type %str.3d4 [concrete] +// CHECK:STDOUT: %str.f81: %ptr.093 = string_literal "hello" [concrete] // CHECK:STDOUT: %int_5: %u8 = int_value 5 [concrete] -// CHECK:STDOUT: %String.val: %str.abf = struct_value (%str.18a, %int_5) [concrete] +// CHECK:STDOUT: %String.val: %str.3d4 = struct_value (%str.f81, %int_5) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.3d7 = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.adf = value_binding_pattern x [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %str: type = type_literal constants.%str.abf [concrete = constants.%str.abf] -// CHECK:STDOUT: %x: %str.abf = value_binding x, @__global_init.%String.val +// CHECK:STDOUT: %str: type = type_literal constants.%str.3d4 [concrete = constants.%str.3d4] +// CHECK:STDOUT: %x: %str.3d4 = value_binding x, @__global_init.%String.val // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %str: %ptr.9b7 = string_literal "hello" [concrete = constants.%str.18a] +// CHECK:STDOUT: %str: %ptr.093 = string_literal "hello" [concrete = constants.%str.f81] // CHECK:STDOUT: %int_5: %u8 = int_value 5 [concrete = constants.%int_5] -// CHECK:STDOUT: %String.val: %str.abf = struct_value (%str, %int_5) [concrete = constants.%String.val] +// CHECK:STDOUT: %String.val: %str.3d4 = struct_value (%str, %int_5) [concrete = constants.%String.val] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_overfill_small_string.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %str.abf: type = class_type @String [concrete] +// CHECK:STDOUT: %str.3d4: type = class_type @String [concrete] // CHECK:STDOUT: %int_8: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %u8: type = class_type @UInt, @UInt(%int_8) [concrete] -// CHECK:STDOUT: %ptr.9b7: type = ptr_type %u8 [concrete] -// CHECK:STDOUT: %pattern_type.3d7: type = pattern_type %str.abf [concrete] -// CHECK:STDOUT: %str.fb8: %ptr.9b7 = string_literal "A string so long its size does not fit in `u8`. This results in an error,\nbecause we can't form a `Core.String` value that describes this string.\n\nThis string contains 256 characters. Among them are:\n\n* 6 `g`s,\n* 21 `s`s,\n* 9 newlines,\n* and only one `p`.\n" [concrete] +// CHECK:STDOUT: %ptr.093: type = ptr_type %u8 [concrete] +// CHECK:STDOUT: %pattern_type.adf: type = pattern_type %str.3d4 [concrete] +// CHECK:STDOUT: %str.9e7: %ptr.093 = string_literal "A string so long its size does not fit in `u8`. This results in an error,\nbecause we can't form a `Core.String` value that describes this string.\n\nThis string contains 256 characters. Among them are:\n\n* 6 `g`s,\n* 21 `s`s,\n* 9 newlines,\n* and only one `p`.\n" [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.3d7 = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.adf = value_binding_pattern x [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %str: type = type_literal constants.%str.abf [concrete = constants.%str.abf] -// CHECK:STDOUT: %x: %str.abf = value_binding x, [concrete = ] +// CHECK:STDOUT: %str: type = type_literal constants.%str.3d4 [concrete = constants.%str.3d4] +// CHECK:STDOUT: %x: %str.3d4 = value_binding x, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %str: %ptr.9b7 = string_literal "A string so long its size does not fit in `u8`. This results in an error,\nbecause we can't form a `Core.String` value that describes this string.\n\nThis string contains 256 characters. Among them are:\n\n* 6 `g`s,\n* 21 `s`s,\n* 9 newlines,\n* and only one `p`.\n" [concrete = constants.%str.fb8] +// CHECK:STDOUT: %str: %ptr.093 = string_literal "A string so long its size does not fit in `u8`. This results in an error,\nbecause we can't form a `Core.String` value that describes this string.\n\nThis string contains 256 characters. Among them are:\n\n* 6 `g`s,\n* 21 `s`s,\n* 9 newlines,\n* and only one `p`.\n" [concrete = constants.%str.9e7] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/primitives/type_literals.carbon b/toolchain/check/testdata/primitives/type_literals.carbon index 773da6a418df..74643c366e0d 100644 --- a/toolchain/check/testdata/primitives/type_literals.carbon +++ b/toolchain/check/testdata/primitives/type_literals.carbon @@ -294,60 +294,60 @@ var test_str: str = (); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_8: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %i8: type = class_type @Int, @Int(%int_8) [concrete] -// CHECK:STDOUT: %pattern_type.6f2: type = pattern_type %i8 [concrete] +// CHECK:STDOUT: %pattern_type.0cf: type = pattern_type %i8 [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.b07: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%i8) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.2f9: %DefaultOrUnformed.type = facet_value %i8, (%DefaultOrUnformed.impl_witness.b07) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.6b7: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%i8) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.89e: %DefaultOrUnformed.type = facet_value %i8, (%DefaultOrUnformed.impl_witness.6b7) [concrete] // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] -// CHECK:STDOUT: %pattern_type.e1b: type = pattern_type %i16 [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.1a1: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%i16) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.763: %DefaultOrUnformed.type = facet_value %i16, (%DefaultOrUnformed.impl_witness.1a1) [concrete] +// CHECK:STDOUT: %pattern_type.203: type = pattern_type %i16 [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.77c: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%i16) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.0f9: %DefaultOrUnformed.type = facet_value %i16, (%DefaultOrUnformed.impl_witness.77c) [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.3a3: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%i32) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.737: %DefaultOrUnformed.type = facet_value %i32, (%DefaultOrUnformed.impl_witness.3a3) [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.e52: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%i32) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.e5a: %DefaultOrUnformed.type = facet_value %i32, (%DefaultOrUnformed.impl_witness.e52) [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.fdd: type = pattern_type %i64 [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.ef3: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%i64) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.cd8: %DefaultOrUnformed.type = facet_value %i64, (%DefaultOrUnformed.impl_witness.ef3) [concrete] +// CHECK:STDOUT: %pattern_type.f57: type = pattern_type %i64 [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.bba: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%i64) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.b9d: %DefaultOrUnformed.type = facet_value %i64, (%DefaultOrUnformed.impl_witness.bba) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %test_i8.patt: %pattern_type.6f2 = ref_binding_pattern test_i8 [concrete] -// CHECK:STDOUT: %test_i8.var_patt: %pattern_type.6f2 = var_pattern %test_i8.patt [concrete] +// CHECK:STDOUT: %test_i8.patt: %pattern_type.0cf = ref_binding_pattern test_i8 [concrete] +// CHECK:STDOUT: %test_i8.var_patt: %pattern_type.0cf = var_pattern %test_i8.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %test_i8.var: ref %i8 = var %test_i8.var_patt [concrete] // CHECK:STDOUT: %i8: type = type_literal constants.%i8 [concrete = constants.%i8] // CHECK:STDOUT: %test_i8: ref %i8 = ref_binding test_i8, %test_i8.var [concrete = %test_i8.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %test_i16.patt: %pattern_type.e1b = ref_binding_pattern test_i16 [concrete] -// CHECK:STDOUT: %test_i16.var_patt: %pattern_type.e1b = var_pattern %test_i16.patt [concrete] +// CHECK:STDOUT: %test_i16.patt: %pattern_type.203 = ref_binding_pattern test_i16 [concrete] +// CHECK:STDOUT: %test_i16.var_patt: %pattern_type.203 = var_pattern %test_i16.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %test_i16.var: ref %i16 = var %test_i16.var_patt [concrete] // CHECK:STDOUT: %i16: type = type_literal constants.%i16 [concrete = constants.%i16] // CHECK:STDOUT: %test_i16: ref %i16 = ref_binding test_i16, %test_i16.var [concrete = %test_i16.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %test_i32.patt: %pattern_type.104 = ref_binding_pattern test_i32 [concrete] -// CHECK:STDOUT: %test_i32.var_patt: %pattern_type.104 = var_pattern %test_i32.patt [concrete] +// CHECK:STDOUT: %test_i32.patt: %pattern_type.6b6 = ref_binding_pattern test_i32 [concrete] +// CHECK:STDOUT: %test_i32.var_patt: %pattern_type.6b6 = var_pattern %test_i32.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %test_i32.var: ref %i32 = var %test_i32.var_patt [concrete] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %test_i32: ref %i32 = ref_binding test_i32, %test_i32.var [concrete = %test_i32.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %test_i64.patt: %pattern_type.fdd = ref_binding_pattern test_i64 [concrete] -// CHECK:STDOUT: %test_i64.var_patt: %pattern_type.fdd = var_pattern %test_i64.patt [concrete] +// CHECK:STDOUT: %test_i64.patt: %pattern_type.f57 = ref_binding_pattern test_i64 [concrete] +// CHECK:STDOUT: %test_i64.var_patt: %pattern_type.f57 = var_pattern %test_i64.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %test_i64.var: ref %i64 = var %test_i64.var_patt [concrete] // CHECK:STDOUT: %i64: type = type_literal constants.%i64 [concrete = constants.%i64] @@ -356,29 +356,29 @@ var test_str: str = (); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc4: %DefaultOrUnformed.type = facet_value constants.%i8, (constants.%DefaultOrUnformed.impl_witness.b07) [concrete = constants.%DefaultOrUnformed.facet.2f9] -// CHECK:STDOUT: %.loc4_16.1: %DefaultOrUnformed.type = converted constants.%i8, %DefaultOrUnformed.facet.loc4 [concrete = constants.%DefaultOrUnformed.facet.2f9] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc4: %DefaultOrUnformed.type = facet_value constants.%i8, (constants.%DefaultOrUnformed.impl_witness.6b7) [concrete = constants.%DefaultOrUnformed.facet.89e] +// CHECK:STDOUT: %.loc4_16.1: %DefaultOrUnformed.type = converted constants.%i8, %DefaultOrUnformed.facet.loc4 [concrete = constants.%DefaultOrUnformed.facet.89e] // CHECK:STDOUT: %as_type.loc4: type = facet_access_type %.loc4_16.1 [concrete = constants.%i8] // CHECK:STDOUT: %.loc4_16.2: type = converted %.loc4_16.1, %as_type.loc4 [concrete = constants.%i8] // CHECK:STDOUT: // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc4: init %i8 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.1() // CHECK:STDOUT: assign file.%test_i8.var, %T.as.DefaultOrUnformed.impl.Op.call.loc4 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc5: %DefaultOrUnformed.type = facet_value constants.%i16, (constants.%DefaultOrUnformed.impl_witness.1a1) [concrete = constants.%DefaultOrUnformed.facet.763] -// CHECK:STDOUT: %.loc5_18.1: %DefaultOrUnformed.type = converted constants.%i16, %DefaultOrUnformed.facet.loc5 [concrete = constants.%DefaultOrUnformed.facet.763] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc5: %DefaultOrUnformed.type = facet_value constants.%i16, (constants.%DefaultOrUnformed.impl_witness.77c) [concrete = constants.%DefaultOrUnformed.facet.0f9] +// CHECK:STDOUT: %.loc5_18.1: %DefaultOrUnformed.type = converted constants.%i16, %DefaultOrUnformed.facet.loc5 [concrete = constants.%DefaultOrUnformed.facet.0f9] // CHECK:STDOUT: %as_type.loc5: type = facet_access_type %.loc5_18.1 [concrete = constants.%i16] // CHECK:STDOUT: %.loc5_18.2: type = converted %.loc5_18.1, %as_type.loc5 [concrete = constants.%i16] // CHECK:STDOUT: // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc5: init %i16 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.2() // CHECK:STDOUT: assign file.%test_i16.var, %T.as.DefaultOrUnformed.impl.Op.call.loc5 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6: %DefaultOrUnformed.type = facet_value constants.%i32, (constants.%DefaultOrUnformed.impl_witness.3a3) [concrete = constants.%DefaultOrUnformed.facet.737] -// CHECK:STDOUT: %.loc6_18.1: %DefaultOrUnformed.type = converted constants.%i32, %DefaultOrUnformed.facet.loc6 [concrete = constants.%DefaultOrUnformed.facet.737] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6: %DefaultOrUnformed.type = facet_value constants.%i32, (constants.%DefaultOrUnformed.impl_witness.e52) [concrete = constants.%DefaultOrUnformed.facet.e5a] +// CHECK:STDOUT: %.loc6_18.1: %DefaultOrUnformed.type = converted constants.%i32, %DefaultOrUnformed.facet.loc6 [concrete = constants.%DefaultOrUnformed.facet.e5a] // CHECK:STDOUT: %as_type.loc6: type = facet_access_type %.loc6_18.1 [concrete = constants.%i32] // CHECK:STDOUT: %.loc6_18.2: type = converted %.loc6_18.1, %as_type.loc6 [concrete = constants.%i32] // CHECK:STDOUT: // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc6: init %i32 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.3() // CHECK:STDOUT: assign file.%test_i32.var, %T.as.DefaultOrUnformed.impl.Op.call.loc6 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7: %DefaultOrUnformed.type = facet_value constants.%i64, (constants.%DefaultOrUnformed.impl_witness.ef3) [concrete = constants.%DefaultOrUnformed.facet.cd8] -// CHECK:STDOUT: %.loc7_18.1: %DefaultOrUnformed.type = converted constants.%i64, %DefaultOrUnformed.facet.loc7 [concrete = constants.%DefaultOrUnformed.facet.cd8] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7: %DefaultOrUnformed.type = facet_value constants.%i64, (constants.%DefaultOrUnformed.impl_witness.bba) [concrete = constants.%DefaultOrUnformed.facet.b9d] +// CHECK:STDOUT: %.loc7_18.1: %DefaultOrUnformed.type = converted constants.%i64, %DefaultOrUnformed.facet.loc7 [concrete = constants.%DefaultOrUnformed.facet.b9d] // CHECK:STDOUT: %as_type.loc7: type = facet_access_type %.loc7_18.1 [concrete = constants.%i64] // CHECK:STDOUT: %.loc7_18.2: type = converted %.loc7_18.1, %as_type.loc7 [concrete = constants.%i64] // CHECK:STDOUT: @@ -392,60 +392,60 @@ var test_str: str = (); // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_8: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %u8: type = class_type @UInt, @UInt(%int_8) [concrete] -// CHECK:STDOUT: %pattern_type.753: type = pattern_type %u8 [concrete] +// CHECK:STDOUT: %pattern_type.186: type = pattern_type %u8 [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.35a: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%u8) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.971: %DefaultOrUnformed.type = facet_value %u8, (%DefaultOrUnformed.impl_witness.35a) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.197: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%u8) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.f9e: %DefaultOrUnformed.type = facet_value %u8, (%DefaultOrUnformed.impl_witness.197) [concrete] // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete] // CHECK:STDOUT: %u16: type = class_type @UInt, @UInt(%int_16) [concrete] -// CHECK:STDOUT: %pattern_type.4d0: type = pattern_type %u16 [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.c73: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%u16) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.513: %DefaultOrUnformed.type = facet_value %u16, (%DefaultOrUnformed.impl_witness.c73) [concrete] +// CHECK:STDOUT: %pattern_type.17c: type = pattern_type %u16 [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.caf: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%u16) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.2f2: %DefaultOrUnformed.type = facet_value %u16, (%DefaultOrUnformed.impl_witness.caf) [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.126: type = pattern_type %u32 [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.091: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%u32) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.b8f: %DefaultOrUnformed.type = facet_value %u32, (%DefaultOrUnformed.impl_witness.091) [concrete] +// CHECK:STDOUT: %pattern_type.668: type = pattern_type %u32 [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.4e1: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%u32) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.4eb: %DefaultOrUnformed.type = facet_value %u32, (%DefaultOrUnformed.impl_witness.4e1) [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %u64: type = class_type @UInt, @UInt(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.597: type = pattern_type %u64 [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.d40: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%u64) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.446: %DefaultOrUnformed.type = facet_value %u64, (%DefaultOrUnformed.impl_witness.d40) [concrete] +// CHECK:STDOUT: %pattern_type.b35: type = pattern_type %u64 [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.4ac: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%u64) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.662: %DefaultOrUnformed.type = facet_value %u64, (%DefaultOrUnformed.impl_witness.4ac) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %test_u8.patt: %pattern_type.753 = ref_binding_pattern test_u8 [concrete] -// CHECK:STDOUT: %test_u8.var_patt: %pattern_type.753 = var_pattern %test_u8.patt [concrete] +// CHECK:STDOUT: %test_u8.patt: %pattern_type.186 = ref_binding_pattern test_u8 [concrete] +// CHECK:STDOUT: %test_u8.var_patt: %pattern_type.186 = var_pattern %test_u8.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %test_u8.var: ref %u8 = var %test_u8.var_patt [concrete] // CHECK:STDOUT: %u8: type = type_literal constants.%u8 [concrete = constants.%u8] // CHECK:STDOUT: %test_u8: ref %u8 = ref_binding test_u8, %test_u8.var [concrete = %test_u8.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %test_u16.patt: %pattern_type.4d0 = ref_binding_pattern test_u16 [concrete] -// CHECK:STDOUT: %test_u16.var_patt: %pattern_type.4d0 = var_pattern %test_u16.patt [concrete] +// CHECK:STDOUT: %test_u16.patt: %pattern_type.17c = ref_binding_pattern test_u16 [concrete] +// CHECK:STDOUT: %test_u16.var_patt: %pattern_type.17c = var_pattern %test_u16.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %test_u16.var: ref %u16 = var %test_u16.var_patt [concrete] // CHECK:STDOUT: %u16: type = type_literal constants.%u16 [concrete = constants.%u16] // CHECK:STDOUT: %test_u16: ref %u16 = ref_binding test_u16, %test_u16.var [concrete = %test_u16.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %test_u32.patt: %pattern_type.126 = ref_binding_pattern test_u32 [concrete] -// CHECK:STDOUT: %test_u32.var_patt: %pattern_type.126 = var_pattern %test_u32.patt [concrete] +// CHECK:STDOUT: %test_u32.patt: %pattern_type.668 = ref_binding_pattern test_u32 [concrete] +// CHECK:STDOUT: %test_u32.var_patt: %pattern_type.668 = var_pattern %test_u32.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %test_u32.var: ref %u32 = var %test_u32.var_patt [concrete] // CHECK:STDOUT: %u32: type = type_literal constants.%u32 [concrete = constants.%u32] // CHECK:STDOUT: %test_u32: ref %u32 = ref_binding test_u32, %test_u32.var [concrete = %test_u32.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %test_u64.patt: %pattern_type.597 = ref_binding_pattern test_u64 [concrete] -// CHECK:STDOUT: %test_u64.var_patt: %pattern_type.597 = var_pattern %test_u64.patt [concrete] +// CHECK:STDOUT: %test_u64.patt: %pattern_type.b35 = ref_binding_pattern test_u64 [concrete] +// CHECK:STDOUT: %test_u64.var_patt: %pattern_type.b35 = var_pattern %test_u64.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %test_u64.var: ref %u64 = var %test_u64.var_patt [concrete] // CHECK:STDOUT: %u64: type = type_literal constants.%u64 [concrete = constants.%u64] @@ -454,29 +454,29 @@ var test_str: str = (); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc4: %DefaultOrUnformed.type = facet_value constants.%u8, (constants.%DefaultOrUnformed.impl_witness.35a) [concrete = constants.%DefaultOrUnformed.facet.971] -// CHECK:STDOUT: %.loc4_16.1: %DefaultOrUnformed.type = converted constants.%u8, %DefaultOrUnformed.facet.loc4 [concrete = constants.%DefaultOrUnformed.facet.971] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc4: %DefaultOrUnformed.type = facet_value constants.%u8, (constants.%DefaultOrUnformed.impl_witness.197) [concrete = constants.%DefaultOrUnformed.facet.f9e] +// CHECK:STDOUT: %.loc4_16.1: %DefaultOrUnformed.type = converted constants.%u8, %DefaultOrUnformed.facet.loc4 [concrete = constants.%DefaultOrUnformed.facet.f9e] // CHECK:STDOUT: %as_type.loc4: type = facet_access_type %.loc4_16.1 [concrete = constants.%u8] // CHECK:STDOUT: %.loc4_16.2: type = converted %.loc4_16.1, %as_type.loc4 [concrete = constants.%u8] // CHECK:STDOUT: // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc4: init %u8 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.1() // CHECK:STDOUT: assign file.%test_u8.var, %T.as.DefaultOrUnformed.impl.Op.call.loc4 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc5: %DefaultOrUnformed.type = facet_value constants.%u16, (constants.%DefaultOrUnformed.impl_witness.c73) [concrete = constants.%DefaultOrUnformed.facet.513] -// CHECK:STDOUT: %.loc5_18.1: %DefaultOrUnformed.type = converted constants.%u16, %DefaultOrUnformed.facet.loc5 [concrete = constants.%DefaultOrUnformed.facet.513] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc5: %DefaultOrUnformed.type = facet_value constants.%u16, (constants.%DefaultOrUnformed.impl_witness.caf) [concrete = constants.%DefaultOrUnformed.facet.2f2] +// CHECK:STDOUT: %.loc5_18.1: %DefaultOrUnformed.type = converted constants.%u16, %DefaultOrUnformed.facet.loc5 [concrete = constants.%DefaultOrUnformed.facet.2f2] // CHECK:STDOUT: %as_type.loc5: type = facet_access_type %.loc5_18.1 [concrete = constants.%u16] // CHECK:STDOUT: %.loc5_18.2: type = converted %.loc5_18.1, %as_type.loc5 [concrete = constants.%u16] // CHECK:STDOUT: // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc5: init %u16 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.2() // CHECK:STDOUT: assign file.%test_u16.var, %T.as.DefaultOrUnformed.impl.Op.call.loc5 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6: %DefaultOrUnformed.type = facet_value constants.%u32, (constants.%DefaultOrUnformed.impl_witness.091) [concrete = constants.%DefaultOrUnformed.facet.b8f] -// CHECK:STDOUT: %.loc6_18.1: %DefaultOrUnformed.type = converted constants.%u32, %DefaultOrUnformed.facet.loc6 [concrete = constants.%DefaultOrUnformed.facet.b8f] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6: %DefaultOrUnformed.type = facet_value constants.%u32, (constants.%DefaultOrUnformed.impl_witness.4e1) [concrete = constants.%DefaultOrUnformed.facet.4eb] +// CHECK:STDOUT: %.loc6_18.1: %DefaultOrUnformed.type = converted constants.%u32, %DefaultOrUnformed.facet.loc6 [concrete = constants.%DefaultOrUnformed.facet.4eb] // CHECK:STDOUT: %as_type.loc6: type = facet_access_type %.loc6_18.1 [concrete = constants.%u32] // CHECK:STDOUT: %.loc6_18.2: type = converted %.loc6_18.1, %as_type.loc6 [concrete = constants.%u32] // CHECK:STDOUT: // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc6: init %u32 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.3() // CHECK:STDOUT: assign file.%test_u32.var, %T.as.DefaultOrUnformed.impl.Op.call.loc6 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7: %DefaultOrUnformed.type = facet_value constants.%u64, (constants.%DefaultOrUnformed.impl_witness.d40) [concrete = constants.%DefaultOrUnformed.facet.446] -// CHECK:STDOUT: %.loc7_18.1: %DefaultOrUnformed.type = converted constants.%u64, %DefaultOrUnformed.facet.loc7 [concrete = constants.%DefaultOrUnformed.facet.446] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7: %DefaultOrUnformed.type = facet_value constants.%u64, (constants.%DefaultOrUnformed.impl_witness.4ac) [concrete = constants.%DefaultOrUnformed.facet.662] +// CHECK:STDOUT: %.loc7_18.1: %DefaultOrUnformed.type = converted constants.%u64, %DefaultOrUnformed.facet.loc7 [concrete = constants.%DefaultOrUnformed.facet.662] // CHECK:STDOUT: %as_type.loc7: type = facet_access_type %.loc7_18.1 [concrete = constants.%u64] // CHECK:STDOUT: %.loc7_18.2: type = converted %.loc7_18.1, %as_type.loc7 [concrete = constants.%u64] // CHECK:STDOUT: @@ -489,96 +489,96 @@ var test_str: str = (); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete] -// CHECK:STDOUT: %f16.6c9: type = class_type @Float, @Float(%int_16) [concrete] -// CHECK:STDOUT: %pattern_type.073: type = pattern_type %f16.6c9 [concrete] +// CHECK:STDOUT: %f16.907: type = class_type @Float, @Float(%int_16) [concrete] +// CHECK:STDOUT: %pattern_type.7cc: type = pattern_type %f16.907 [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.3c4: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%f16.6c9) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.07e: %DefaultOrUnformed.type = facet_value %f16.6c9, (%DefaultOrUnformed.impl_witness.3c4) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.fae: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%f16.907) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.dec: %DefaultOrUnformed.type = facet_value %f16.907, (%DefaultOrUnformed.impl_witness.fae) [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] -// CHECK:STDOUT: %f32.a26: type = class_type @Float, @Float(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.f3b: type = pattern_type %f32.a26 [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.bee: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%f32.a26) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.a50: %DefaultOrUnformed.type = facet_value %f32.a26, (%DefaultOrUnformed.impl_witness.bee) [concrete] +// CHECK:STDOUT: %f32.c73: type = class_type @Float, @Float(%int_32) [concrete] +// CHECK:STDOUT: %pattern_type.240: type = pattern_type %f32.c73 [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.be8: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%f32.c73) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.92c: %DefaultOrUnformed.type = facet_value %f32.c73, (%DefaultOrUnformed.impl_witness.be8) [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.a95: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%f64.b55) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.d33: %DefaultOrUnformed.type = facet_value %f64.b55, (%DefaultOrUnformed.impl_witness.a95) [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: %DefaultOrUnformed.impl_witness.994: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%f64.dc1) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.a01: %DefaultOrUnformed.type = facet_value %f64.dc1, (%DefaultOrUnformed.impl_witness.994) [concrete] // CHECK:STDOUT: %int_128: Core.IntLiteral = int_value 128 [concrete] -// CHECK:STDOUT: %f128.899: type = class_type @Float, @Float(%int_128) [concrete] -// CHECK:STDOUT: %pattern_type.516: type = pattern_type %f128.899 [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.741: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%f128.899) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.6bf: %DefaultOrUnformed.type = facet_value %f128.899, (%DefaultOrUnformed.impl_witness.741) [concrete] +// CHECK:STDOUT: %f128.e39: type = class_type @Float, @Float(%int_128) [concrete] +// CHECK:STDOUT: %pattern_type.847: type = pattern_type %f128.e39 [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.44c: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%f128.e39) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.566: %DefaultOrUnformed.type = facet_value %f128.e39, (%DefaultOrUnformed.impl_witness.44c) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %test_f16.patt: %pattern_type.073 = ref_binding_pattern test_f16 [concrete] -// CHECK:STDOUT: %test_f16.var_patt: %pattern_type.073 = var_pattern %test_f16.patt [concrete] +// CHECK:STDOUT: %test_f16.patt: %pattern_type.7cc = ref_binding_pattern test_f16 [concrete] +// CHECK:STDOUT: %test_f16.var_patt: %pattern_type.7cc = var_pattern %test_f16.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %test_f16.var: ref %f16.6c9 = var %test_f16.var_patt [concrete] -// CHECK:STDOUT: %f16: type = type_literal constants.%f16.6c9 [concrete = constants.%f16.6c9] -// CHECK:STDOUT: %test_f16: ref %f16.6c9 = ref_binding test_f16, %test_f16.var [concrete = %test_f16.var] +// CHECK:STDOUT: %test_f16.var: ref %f16.907 = var %test_f16.var_patt [concrete] +// CHECK:STDOUT: %f16: type = type_literal constants.%f16.907 [concrete = constants.%f16.907] +// CHECK:STDOUT: %test_f16: ref %f16.907 = ref_binding test_f16, %test_f16.var [concrete = %test_f16.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %test_f32.patt: %pattern_type.f3b = ref_binding_pattern test_f32 [concrete] -// CHECK:STDOUT: %test_f32.var_patt: %pattern_type.f3b = var_pattern %test_f32.patt [concrete] +// CHECK:STDOUT: %test_f32.patt: %pattern_type.240 = ref_binding_pattern test_f32 [concrete] +// CHECK:STDOUT: %test_f32.var_patt: %pattern_type.240 = var_pattern %test_f32.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %test_f32.var: ref %f32.a26 = var %test_f32.var_patt [concrete] -// CHECK:STDOUT: %f32: type = type_literal constants.%f32.a26 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %test_f32: ref %f32.a26 = ref_binding test_f32, %test_f32.var [concrete = %test_f32.var] +// CHECK:STDOUT: %test_f32.var: ref %f32.c73 = var %test_f32.var_patt [concrete] +// CHECK:STDOUT: %f32: type = type_literal constants.%f32.c73 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %test_f32: ref %f32.c73 = ref_binding test_f32, %test_f32.var [concrete = %test_f32.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %test_f64.patt: %pattern_type.f3c = ref_binding_pattern test_f64 [concrete] -// CHECK:STDOUT: %test_f64.var_patt: %pattern_type.f3c = var_pattern %test_f64.patt [concrete] +// CHECK:STDOUT: %test_f64.patt: %pattern_type.fb7 = ref_binding_pattern test_f64 [concrete] +// CHECK:STDOUT: %test_f64.var_patt: %pattern_type.fb7 = var_pattern %test_f64.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %test_f64.var: ref %f64.b55 = var %test_f64.var_patt [concrete] -// CHECK:STDOUT: %f64: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %test_f64: ref %f64.b55 = ref_binding test_f64, %test_f64.var [concrete = %test_f64.var] +// CHECK:STDOUT: %test_f64.var: ref %f64.dc1 = var %test_f64.var_patt [concrete] +// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %test_f64: ref %f64.dc1 = ref_binding test_f64, %test_f64.var [concrete = %test_f64.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %test_f128.patt: %pattern_type.516 = ref_binding_pattern test_f128 [concrete] -// CHECK:STDOUT: %test_f128.var_patt: %pattern_type.516 = var_pattern %test_f128.patt [concrete] +// CHECK:STDOUT: %test_f128.patt: %pattern_type.847 = ref_binding_pattern test_f128 [concrete] +// CHECK:STDOUT: %test_f128.var_patt: %pattern_type.847 = var_pattern %test_f128.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %test_f128.var: ref %f128.899 = var %test_f128.var_patt [concrete] -// CHECK:STDOUT: %f128: type = type_literal constants.%f128.899 [concrete = constants.%f128.899] -// CHECK:STDOUT: %test_f128: ref %f128.899 = ref_binding test_f128, %test_f128.var [concrete = %test_f128.var] +// CHECK:STDOUT: %test_f128.var: ref %f128.e39 = var %test_f128.var_patt [concrete] +// CHECK:STDOUT: %f128: type = type_literal constants.%f128.e39 [concrete = constants.%f128.e39] +// CHECK:STDOUT: %test_f128: ref %f128.e39 = ref_binding test_f128, %test_f128.var [concrete = %test_f128.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc4: %DefaultOrUnformed.type = facet_value constants.%f16.6c9, (constants.%DefaultOrUnformed.impl_witness.3c4) [concrete = constants.%DefaultOrUnformed.facet.07e] -// CHECK:STDOUT: %.loc4_18.1: %DefaultOrUnformed.type = converted constants.%f16.6c9, %DefaultOrUnformed.facet.loc4 [concrete = constants.%DefaultOrUnformed.facet.07e] -// CHECK:STDOUT: %as_type.loc4: type = facet_access_type %.loc4_18.1 [concrete = constants.%f16.6c9] -// CHECK:STDOUT: %.loc4_18.2: type = converted %.loc4_18.1, %as_type.loc4 [concrete = constants.%f16.6c9] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc4: %DefaultOrUnformed.type = facet_value constants.%f16.907, (constants.%DefaultOrUnformed.impl_witness.fae) [concrete = constants.%DefaultOrUnformed.facet.dec] +// CHECK:STDOUT: %.loc4_18.1: %DefaultOrUnformed.type = converted constants.%f16.907, %DefaultOrUnformed.facet.loc4 [concrete = constants.%DefaultOrUnformed.facet.dec] +// CHECK:STDOUT: %as_type.loc4: type = facet_access_type %.loc4_18.1 [concrete = constants.%f16.907] +// CHECK:STDOUT: %.loc4_18.2: type = converted %.loc4_18.1, %as_type.loc4 [concrete = constants.%f16.907] // CHECK:STDOUT: -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc4: init %f16.6c9 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.1() +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc4: init %f16.907 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.1() // CHECK:STDOUT: assign file.%test_f16.var, %T.as.DefaultOrUnformed.impl.Op.call.loc4 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc5: %DefaultOrUnformed.type = facet_value constants.%f32.a26, (constants.%DefaultOrUnformed.impl_witness.bee) [concrete = constants.%DefaultOrUnformed.facet.a50] -// CHECK:STDOUT: %.loc5_18.1: %DefaultOrUnformed.type = converted constants.%f32.a26, %DefaultOrUnformed.facet.loc5 [concrete = constants.%DefaultOrUnformed.facet.a50] -// CHECK:STDOUT: %as_type.loc5: type = facet_access_type %.loc5_18.1 [concrete = constants.%f32.a26] -// CHECK:STDOUT: %.loc5_18.2: type = converted %.loc5_18.1, %as_type.loc5 [concrete = constants.%f32.a26] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc5: %DefaultOrUnformed.type = facet_value constants.%f32.c73, (constants.%DefaultOrUnformed.impl_witness.be8) [concrete = constants.%DefaultOrUnformed.facet.92c] +// CHECK:STDOUT: %.loc5_18.1: %DefaultOrUnformed.type = converted constants.%f32.c73, %DefaultOrUnformed.facet.loc5 [concrete = constants.%DefaultOrUnformed.facet.92c] +// CHECK:STDOUT: %as_type.loc5: type = facet_access_type %.loc5_18.1 [concrete = constants.%f32.c73] +// CHECK:STDOUT: %.loc5_18.2: type = converted %.loc5_18.1, %as_type.loc5 [concrete = constants.%f32.c73] // CHECK:STDOUT: -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc5: init %f32.a26 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.2() +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc5: init %f32.c73 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.2() // CHECK:STDOUT: assign file.%test_f32.var, %T.as.DefaultOrUnformed.impl.Op.call.loc5 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6: %DefaultOrUnformed.type = facet_value constants.%f64.b55, (constants.%DefaultOrUnformed.impl_witness.a95) [concrete = constants.%DefaultOrUnformed.facet.d33] -// CHECK:STDOUT: %.loc6_18.1: %DefaultOrUnformed.type = converted constants.%f64.b55, %DefaultOrUnformed.facet.loc6 [concrete = constants.%DefaultOrUnformed.facet.d33] -// CHECK:STDOUT: %as_type.loc6: type = facet_access_type %.loc6_18.1 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc6_18.2: type = converted %.loc6_18.1, %as_type.loc6 [concrete = constants.%f64.b55] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6: %DefaultOrUnformed.type = facet_value constants.%f64.dc1, (constants.%DefaultOrUnformed.impl_witness.994) [concrete = constants.%DefaultOrUnformed.facet.a01] +// CHECK:STDOUT: %.loc6_18.1: %DefaultOrUnformed.type = converted constants.%f64.dc1, %DefaultOrUnformed.facet.loc6 [concrete = constants.%DefaultOrUnformed.facet.a01] +// CHECK:STDOUT: %as_type.loc6: type = facet_access_type %.loc6_18.1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc6_18.2: type = converted %.loc6_18.1, %as_type.loc6 [concrete = constants.%f64.dc1] // CHECK:STDOUT: -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc6: init %f64.b55 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.3() +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc6: init %f64.dc1 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.3() // CHECK:STDOUT: assign file.%test_f64.var, %T.as.DefaultOrUnformed.impl.Op.call.loc6 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7: %DefaultOrUnformed.type = facet_value constants.%f128.899, (constants.%DefaultOrUnformed.impl_witness.741) [concrete = constants.%DefaultOrUnformed.facet.6bf] -// CHECK:STDOUT: %.loc7_20.1: %DefaultOrUnformed.type = converted constants.%f128.899, %DefaultOrUnformed.facet.loc7 [concrete = constants.%DefaultOrUnformed.facet.6bf] -// CHECK:STDOUT: %as_type.loc7: type = facet_access_type %.loc7_20.1 [concrete = constants.%f128.899] -// CHECK:STDOUT: %.loc7_20.2: type = converted %.loc7_20.1, %as_type.loc7 [concrete = constants.%f128.899] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7: %DefaultOrUnformed.type = facet_value constants.%f128.e39, (constants.%DefaultOrUnformed.impl_witness.44c) [concrete = constants.%DefaultOrUnformed.facet.566] +// CHECK:STDOUT: %.loc7_20.1: %DefaultOrUnformed.type = converted constants.%f128.e39, %DefaultOrUnformed.facet.loc7 [concrete = constants.%DefaultOrUnformed.facet.566] +// CHECK:STDOUT: %as_type.loc7: type = facet_access_type %.loc7_20.1 [concrete = constants.%f128.e39] +// CHECK:STDOUT: %.loc7_20.2: type = converted %.loc7_20.1, %as_type.loc7 [concrete = constants.%f128.e39] // CHECK:STDOUT: -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc7: init %f128.899 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.4() +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call.loc7: init %f128.e39 = call %T.as.DefaultOrUnformed.impl.Op.specific_fn.4() // CHECK:STDOUT: assign file.%test_f128.var, %T.as.DefaultOrUnformed.impl.Op.call.loc7 // CHECK:STDOUT: // CHECK:STDOUT: } @@ -587,13 +587,13 @@ var test_str: str = (); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %char: type = class_type @Char [concrete] -// CHECK:STDOUT: %pattern_type.63d: type = pattern_type %char [concrete] +// CHECK:STDOUT: %pattern_type.2ff: type = pattern_type %char [concrete] // CHECK:STDOUT: %.b9b: Core.CharLiteral = char_value U+0063 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.f44: type = facet_type <@ImplicitAs, @ImplicitAs(%char)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.e81: type = facet_type <@ImplicitAs, @ImplicitAs(%char)> [concrete] // CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness imports.%ImplicitAs.impl_witness_table [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.f44 = facet_value Core.CharLiteral, (%ImplicitAs.impl_witness) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b40: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%char, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.dd0: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b40, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.e81 = facet_value Core.CharLiteral, (%ImplicitAs.impl_witness) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.0c6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%char, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1e6: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.0c6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.CharLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert: %Core.CharLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %.b9b, %Core.CharLiteral.as.ImplicitAs.impl.Convert [concrete] @@ -601,16 +601,16 @@ var test_str: str = (); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.ade: %Core.CharLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/parts/char, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.ade), @Core.CharLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.06c: %Core.CharLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/parts/char, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.06c), @Core.CharLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %test_char.patt: %pattern_type.63d = value_binding_pattern test_char [concrete] +// CHECK:STDOUT: %test_char.patt: %pattern_type.2ff = value_binding_pattern test_char [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %char: type = type_literal constants.%char [concrete = constants.%char] -// CHECK:STDOUT: %impl.elem0: %.dd0 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0: %.1e6 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method: = bound_method @__global_init.%.loc5, %impl.elem0 [concrete = constants.%Core.CharLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert.call: init %char = call %bound_method(@__global_init.%.loc5) [concrete = constants.%int_99] // CHECK:STDOUT: %.loc5_23.1: %char = value_of_initializer %Core.CharLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_99] @@ -627,31 +627,31 @@ var test_str: str = (); // CHECK:STDOUT: --- string.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %str.abf: type = class_type @String [concrete] +// CHECK:STDOUT: %str.3d4: type = class_type @String [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %u64: type = class_type @UInt, @UInt(%int_64) [concrete] // CHECK:STDOUT: %int_8: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %u8: type = class_type @UInt, @UInt(%int_8) [concrete] -// CHECK:STDOUT: %ptr.9b7: type = ptr_type %u8 [concrete] -// CHECK:STDOUT: %pattern_type.3d7: type = pattern_type %str.abf [concrete] -// CHECK:STDOUT: %str.de7: %ptr.9b7 = string_literal "Test" [concrete] +// CHECK:STDOUT: %ptr.093: type = ptr_type %u8 [concrete] +// CHECK:STDOUT: %pattern_type.adf: type = pattern_type %str.3d4 [concrete] +// CHECK:STDOUT: %str.16f: %ptr.093 = string_literal "Test" [concrete] // CHECK:STDOUT: %int_4: %u64 = int_value 4 [concrete] -// CHECK:STDOUT: %String.val: %str.abf = struct_value (%str.de7, %int_4) [concrete] +// CHECK:STDOUT: %String.val: %str.3d4 = struct_value (%str.16f, %int_4) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %test_str.patt: %pattern_type.3d7 = value_binding_pattern test_str [concrete] +// CHECK:STDOUT: %test_str.patt: %pattern_type.adf = value_binding_pattern test_str [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %str: type = type_literal constants.%str.abf [concrete = constants.%str.abf] -// CHECK:STDOUT: %test_str: %str.abf = value_binding test_str, @__global_init.%String.val +// CHECK:STDOUT: %str: type = type_literal constants.%str.3d4 [concrete = constants.%str.3d4] +// CHECK:STDOUT: %test_str: %str.3d4 = value_binding test_str, @__global_init.%String.val // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %str: %ptr.9b7 = string_literal "Test" [concrete = constants.%str.de7] +// CHECK:STDOUT: %str: %ptr.093 = string_literal "Test" [concrete = constants.%str.16f] // CHECK:STDOUT: %int_4: %u64 = int_value 4 [concrete = constants.%int_4] -// CHECK:STDOUT: %String.val: %str.abf = struct_value (%str, %int_4) [concrete = constants.%String.val] +// CHECK:STDOUT: %String.val: %str.3d4 = struct_value (%str, %int_4) [concrete = constants.%String.val] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -662,18 +662,18 @@ var test_str: str = (); // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.f49: = impl_witness imports.%Copy.impl_witness_table.fcf [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.f49) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cd0: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.31b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cd0, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.638: = impl_witness imports.%Copy.impl_witness_table.4d6 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.638) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8b3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.524: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8b3, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %i32, %type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.fcf = impl_witness_table (%Core.import_ref.f63), @type.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.4d6 = impl_witness_table (%Core.import_ref.9c3), @type.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -689,7 +689,7 @@ var test_str: str = (); // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.31b = impl_witness_access constants.%Copy.impl_witness.f49, element0 [concrete = constants.%type.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.524 = impl_witness_access constants.%Copy.impl_witness.638, element0 [concrete = constants.%type.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %i32, %impl.elem0 [concrete = constants.%type.as.Copy.impl.Op.bound] // CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method(%i32) [concrete = constants.%i32] // CHECK:STDOUT: assign file.%test_type.var, %type.as.Copy.impl.Op.call diff --git a/toolchain/check/testdata/return/code_after_return.carbon b/toolchain/check/testdata/return/code_after_return.carbon index 34c74c5ca9be..a995c8309f87 100644 --- a/toolchain/check/testdata/return/code_after_return.carbon +++ b/toolchain/check/testdata/return/code_after_return.carbon @@ -24,8 +24,8 @@ fn Main() { // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -36,7 +36,7 @@ fn Main() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/return/code_after_return_value.carbon b/toolchain/check/testdata/return/code_after_return_value.carbon index f1d8da7667c8..69e8c256b543 100644 --- a/toolchain/check/testdata/return/code_after_return_value.carbon +++ b/toolchain/check/testdata/return/code_after_return_value.carbon @@ -34,27 +34,27 @@ fn F(unused b: bool) -> i32 { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.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: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -69,9 +69,9 @@ fn F(unused b: bool) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/parts/bool, Bool, loaded [concrete = constants.%Bool] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -84,11 +84,11 @@ fn F(unused b: bool) -> i32 { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15_25: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15_25: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %b.param: bool = value_param call_param0 // CHECK:STDOUT: %.loc15_16: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %b: bool = value_binding b, %b.param @@ -100,12 +100,12 @@ fn F(unused b: bool) -> i32 { // CHECK:STDOUT: fn @F(%b.param: bool) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc16_11.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc16_11.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_11.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_11.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc16: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc16_11.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_11.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc16: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: return %.loc16 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/fail_call_in_type.carbon b/toolchain/check/testdata/return/fail_call_in_type.carbon index 26a79379755f..23e2de9dd3fd 100644 --- a/toolchain/check/testdata/return/fail_call_in_type.carbon +++ b/toolchain/check/testdata/return/fail_call_in_type.carbon @@ -33,10 +33,10 @@ fn Six() -> ReturnType() { return 6; } // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.f49: = impl_witness imports.%Copy.impl_witness_table.fcf [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.f49) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cd0: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.31b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cd0, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.638: = impl_witness imports.%Copy.impl_witness_table.4d6 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.638) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8b3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.524: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8b3, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %i32, %type.as.Copy.impl.Op [concrete] @@ -54,8 +54,8 @@ fn Six() -> ReturnType() { return 6; } // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.fcf = impl_witness_table (%Core.import_ref.f63), @type.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.4d6 = impl_witness_table (%Core.import_ref.9c3), @type.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -88,7 +88,7 @@ fn Six() -> ReturnType() { return 6; } // CHECK:STDOUT: fn @ReturnType() -> out %return.param: type { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.31b = impl_witness_access constants.%Copy.impl_witness.f49, element0 [concrete = constants.%type.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.524 = impl_witness_access constants.%Copy.impl_witness.638, element0 [concrete = constants.%type.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %i32, %impl.elem0 [concrete = constants.%type.as.Copy.impl.Op.bound] // CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method(%i32) [concrete = constants.%i32] // CHECK:STDOUT: return %type.as.Copy.impl.Op.call diff --git a/toolchain/check/testdata/return/fail_missing_return.carbon b/toolchain/check/testdata/return/fail_missing_return.carbon index 96392d7cda91..ba1a2a0c1ec4 100644 --- a/toolchain/check/testdata/return/fail_missing_return.carbon +++ b/toolchain/check/testdata/return/fail_missing_return.carbon @@ -26,8 +26,8 @@ fn Main() -> i32 { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -48,11 +48,11 @@ fn Main() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [concrete = constants.%Main] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // 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 13ea30817447..c0e20842aa91 100644 --- a/toolchain/check/testdata/return/fail_return_with_returned_var.carbon +++ b/toolchain/check/testdata/return/fail_return_with_returned_var.carbon @@ -45,50 +45,50 @@ fn G() -> C { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.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: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc16_12.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: %C: type = class_type @C [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [concrete] -// CHECK:STDOUT: %struct_type.a.b.b47: type = struct_type {.a: %i32, .b: %i32} [concrete] -// CHECK:STDOUT: %complete_type.abf: = complete_type_witness %struct_type.a.b.b47 [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %struct_type.a.b.b4c: type = struct_type {.a: %i32, .b: %i32} [concrete] +// CHECK:STDOUT: %complete_type.7b9: = complete_type_witness %struct_type.a.b.b4c [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.a.b.cfd = struct_value (%int_1.5b8, %int_2.ecc) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %C.val: %C = struct_value (%int_1.d9c, %int_2.228) [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] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %C.val: %C = struct_value (%int_1.0c6, %int_2.295) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -100,9 +100,9 @@ fn G() -> C { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -115,21 +115,21 @@ fn G() -> C { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref.loc28 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc28 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc28: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc28: Core.Form = init_form %C.ref.loc28 [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc28: Core.Form = init_form %C.ref.loc28 [concrete = constants.%.a44] // CHECK:STDOUT: %return.param: ref %C = out_param call_param0 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } @@ -138,7 +138,7 @@ fn G() -> C { // CHECK:STDOUT: class @C { // CHECK:STDOUT: %.loc27_16: %C.elem = field_decl a, element0 [concrete] // CHECK:STDOUT: %.loc27_28: %C.elem = field_decl b, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.b47 [concrete = constants.%complete_type.abf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.b4c [concrete = constants.%complete_type.7b9] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -150,22 +150,22 @@ fn G() -> C { // CHECK:STDOUT: fn @F() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.104 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.104 = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.6b6 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.6b6 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %i32 = var %v.var_patt // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc16_12.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc16_12.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_12.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_12.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc16: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc16_12.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_12.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc16: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign %v.var, %.loc16 // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %v: ref %i32 = ref_binding v, %v.var // 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.2dd605.2 +// 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: return // CHECK:STDOUT: } @@ -180,28 +180,28 @@ fn G() -> C { // CHECK:STDOUT: fn @G() -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.0d5 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.0d5 = var_pattern %c.patt [concrete] +// 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: } // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc29_38.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) [concrete = constants.%struct] -// CHECK:STDOUT: %impl.elem0.loc29_38.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc29_38.1: = bound_method %int_1, %impl.elem0.loc29_38.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc29_38.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc29_38.1: = bound_method %int_1, %impl.elem0.loc29_38.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc29_38.1: = specific_function %impl.elem0.loc29_38.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc29_38.2: = bound_method %int_1, %specific_fn.loc29_38.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc29_38.1: init %i32 = call %bound_method.loc29_38.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc29_38.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc29_38.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc29_38.2: = bound_method %int_1, %specific_fn.loc29_38.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc29_38.1: init %i32 = call %bound_method.loc29_38.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc29_38.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc29_38.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc29_38.3: ref %i32 = class_element_access %return.param, element0 -// CHECK:STDOUT: %.loc29_38.4: init %i32 to %.loc29_38.3 = in_place_init %.loc29_38.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc29_38.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc29_38.3: = bound_method %int_2, %impl.elem0.loc29_38.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc29_38.4: init %i32 to %.loc29_38.3 = in_place_init %.loc29_38.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc29_38.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc29_38.3: = bound_method %int_2, %impl.elem0.loc29_38.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc29_38.2: = specific_function %impl.elem0.loc29_38.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc29_38.4: = bound_method %int_2, %specific_fn.loc29_38.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc29_38.2: init %i32 = call %bound_method.loc29_38.4(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc29_38.5: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc29_38.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc29_38.4: = bound_method %int_2, %specific_fn.loc29_38.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc29_38.2: init %i32 = call %bound_method.loc29_38.4(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc29_38.5: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc29_38.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc29_38.6: ref %i32 = class_element_access %return.param, element1 -// CHECK:STDOUT: %.loc29_38.7: init %i32 to %.loc29_38.6 = in_place_init %.loc29_38.5 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %.loc29_38.7: init %i32 to %.loc29_38.6 = in_place_init %.loc29_38.5 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc29_38.8: init %C to %return.param = class_init (%.loc29_38.4, %.loc29_38.7) [concrete = constants.%C.val] // CHECK:STDOUT: %.loc29_12: init %C = converted %.loc29_38.1, %.loc29_38.8 [concrete = constants.%C.val] // CHECK:STDOUT: assign %return.param, %.loc29_12 diff --git a/toolchain/check/testdata/return/fail_returned_var_shadow.carbon b/toolchain/check/testdata/return/fail_returned_var_shadow.carbon index 4755da846b84..016c11a13025 100644 --- a/toolchain/check/testdata/return/fail_returned_var_shadow.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_shadow.carbon @@ -52,36 +52,36 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %SameScope.type: type = fn_type @SameScope [concrete] // CHECK:STDOUT: %SameScope: %SameScope.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.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: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = 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] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc25_14.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: %DifferentScopes.type: type = fn_type @DifferentScopes [concrete] // CHECK:STDOUT: %DifferentScopes: %DifferentScopes.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -95,9 +95,9 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -109,20 +109,20 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %SameScope.decl: %SameScope.type = fn_decl @SameScope [concrete = constants.%SameScope] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %DifferentScopes.decl: %DifferentScopes.type = fn_decl @DifferentScopes [concrete = constants.%DifferentScopes] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc30 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc30 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc30: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc30: Core.Form = init_form %i32.loc30 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc30: Core.Form = init_form %i32.loc30 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -135,32 +135,32 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.then: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.104 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.104 = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.6b6 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.6b6 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %i32 = var %v.var_patt // CHECK:STDOUT: %int_0.loc17: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc17: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc17_14.1: = bound_method %int_0.loc17, %impl.elem0.loc17 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc17: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc17_14.1: = bound_method %int_0.loc17, %impl.elem0.loc17 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_14.2: = bound_method %int_0.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %i32 = call %bound_method.loc17_14.2(%int_0.loc17) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc17: init %i32 = converted %int_0.loc17, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc17_14.2: = bound_method %int_0.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %i32 = call %bound_method.loc17_14.2(%int_0.loc17) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc17: init %i32 = converted %int_0.loc17, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign %v.var, %.loc17 // CHECK:STDOUT: %i32.loc17: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %v: ref %i32 = ref_binding v, %v.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %w.patt: %pattern_type.104 = ref_binding_pattern w [concrete] -// CHECK:STDOUT: %w.var_patt: %pattern_type.104 = var_pattern %w.patt [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: } // CHECK:STDOUT: %w.var: ref %i32 = var %w.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc25: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc25_14.1: = bound_method %int_1, %impl.elem0.loc25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc25: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc25_14.1: = bound_method %int_1, %impl.elem0.loc25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc25: = specific_function %impl.elem0.loc25, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc25_14.2: = bound_method %int_1, %specific_fn.loc25 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25: init %i32 = call %bound_method.loc25_14.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc25: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc25_14.2: = bound_method %int_1, %specific_fn.loc25 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25: init %i32 = call %bound_method.loc25_14.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc25: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: assign %w.var, %.loc25 // CHECK:STDOUT: %i32.loc25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %w: ref %i32 = ref_binding w, %w.var @@ -168,15 +168,15 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %int_0.loc27: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc27: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc27_11.1: = bound_method %int_0.loc27, %impl.elem0.loc27 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc27: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc27_11.1: = bound_method %int_0.loc27, %impl.elem0.loc27 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc27: = specific_function %impl.elem0.loc27, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc27_11.2: = bound_method %int_0.loc27, %specific_fn.loc27 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27: init %i32 = call %bound_method.loc27_11.2(%int_0.loc27) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc27: init %i32 = converted %int_0.loc27, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %Destroy.Op.bound.loc25: = bound_method %w.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %bound_method.loc27_11.2: = bound_method %int_0.loc27, %specific_fn.loc27 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27: init %i32 = call %bound_method.loc27_11.2(%int_0.loc27) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc27: init %i32 = converted %int_0.loc27, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27 [concrete = constants.%int_0.3c0] +// 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.2dd605.2 +// 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: return %.loc27 // CHECK:STDOUT: } @@ -195,17 +195,17 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.then.loc31: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.104 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.104 = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.6b6 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.6b6 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %i32 = var %v.var_patt // CHECK:STDOUT: %int_0.loc32: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc32: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc32_14.1: = bound_method %int_0.loc32, %impl.elem0.loc32 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc32: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc32_14.1: = bound_method %int_0.loc32, %impl.elem0.loc32 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc32: = specific_function %impl.elem0.loc32, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc32_14.2: = bound_method %int_0.loc32, %specific_fn.loc32 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32: init %i32 = call %bound_method.loc32_14.2(%int_0.loc32) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc32: init %i32 = converted %int_0.loc32, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc32_14.2: = bound_method %int_0.loc32, %specific_fn.loc32 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32: init %i32 = call %bound_method.loc32_14.2(%int_0.loc32) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc32: init %i32 = converted %int_0.loc32, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc32 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign %v.var, %.loc32 // CHECK:STDOUT: %i32.loc32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %v: ref %i32 = ref_binding v, %v.var @@ -214,17 +214,17 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.then.loc33: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %w.patt: %pattern_type.104 = ref_binding_pattern w [concrete] -// CHECK:STDOUT: %w.var_patt: %pattern_type.104 = var_pattern %w.patt [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: } // CHECK:STDOUT: %w.var: ref %i32 = var %w.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc41: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc41_16.1: = bound_method %int_1, %impl.elem0.loc41 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc41: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc41_16.1: = bound_method %int_1, %impl.elem0.loc41 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc41: = specific_function %impl.elem0.loc41, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc41_16.2: = bound_method %int_1, %specific_fn.loc41 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc41: init %i32 = call %bound_method.loc41_16.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc41: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc41 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc41_16.2: = bound_method %int_1, %specific_fn.loc41 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc41: init %i32 = call %bound_method.loc41_16.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc41: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc41 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: assign %w.var, %.loc41 // CHECK:STDOUT: %i32.loc41: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %w: ref %i32 = ref_binding w, %w.var @@ -235,15 +235,15 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc31: // CHECK:STDOUT: %int_0.loc44: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc44: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc44_11.1: = bound_method %int_0.loc44, %impl.elem0.loc44 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc44: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc44_11.1: = bound_method %int_0.loc44, %impl.elem0.loc44 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc44: = specific_function %impl.elem0.loc44, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc44_11.2: = bound_method %int_0.loc44, %specific_fn.loc44 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc44: init %i32 = call %bound_method.loc44_11.2(%int_0.loc44) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc44: init %i32 = converted %int_0.loc44, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc44 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %Destroy.Op.bound.loc41: = bound_method %w.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %bound_method.loc44_11.2: = bound_method %int_0.loc44, %specific_fn.loc44 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc44: init %i32 = call %bound_method.loc44_11.2(%int_0.loc44) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc44: init %i32 = converted %int_0.loc44, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc44 [concrete = constants.%int_0.3c0] +// 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.Op.bound.loc32: = bound_method %v.var, constants.%Destroy.Op.2dd605.2 +// 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: return %.loc44 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/fail_returned_var_type.carbon b/toolchain/check/testdata/return/fail_returned_var_type.carbon index 4e939aff67a6..63ef0bb334c8 100644 --- a/toolchain/check/testdata/return/fail_returned_var_type.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_type.carbon @@ -32,36 +32,36 @@ fn Mismatch() -> i32 { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Mismatch.type: type = fn_type @Mismatch [concrete] // CHECK:STDOUT: %Mismatch: %Mismatch.type = struct_value () [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %Float.type: type = generic_class_type @Float [concrete] // CHECK:STDOUT: %Float.generic: %Float.type = struct_value () [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %f64.794: type = float_type %int_64, f64 [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [concrete] +// CHECK:STDOUT: %pattern_type.fb7: type = pattern_type %f64.dc1 [concrete] // CHECK:STDOUT: %float.1f7: Core.FloatLiteral = float_literal_value 0e-1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.857: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.b55)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.91e: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.dc1)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.83f: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.857 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.83f) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.096: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.b55, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.119: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.096, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.43c: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.91e = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.43c) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6c5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.dc1, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.2d7: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6c5, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.1af: %f64.b55 = float_value 0 [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.790b3b.2: type = fn_type @Destroy.Op.loc23_12.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -75,9 +75,9 @@ fn Mismatch() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Float: %Float.type = import_ref Core//prelude/parts/float, Float, loaded [concrete = constants.%Float.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.63c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.63c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -88,11 +88,11 @@ fn Mismatch() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Mismatch.decl: %Mismatch.type = fn_decl @Mismatch [concrete = constants.%Mismatch] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -101,29 +101,29 @@ fn Mismatch() -> i32 { // CHECK:STDOUT: fn @Mismatch() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.f3c = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.f3c = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.fb7 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.fb7 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref %f64.b55 = var %v.var_patt +// CHECK:STDOUT: %v.var: ref %f64.dc1 = var %v.var_patt // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 0e-1 [concrete = constants.%float.1f7] -// CHECK:STDOUT: %impl.elem0: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] +// CHECK:STDOUT: %impl.elem0: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] // CHECK:STDOUT: %bound_method.loc23_12.1: = bound_method %float, %impl.elem0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc23_12.2: = bound_method %float, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.b55 = call %bound_method.loc23_12.2(%float) [concrete = constants.%float.1af] -// CHECK:STDOUT: %.loc23_12: init %f64.b55 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.1af] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.dc1 = call %bound_method.loc23_12.2(%float) [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc23_12: init %f64.dc1 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.895] // CHECK:STDOUT: assign %v.var, %.loc23_12 -// CHECK:STDOUT: %f64: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %v: ref %f64.b55 = ref_binding v, %v.var -// CHECK:STDOUT: %.loc23_17: %f64.b55 = acquire_value %v -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %v: ref %f64.dc1 = ref_binding v, %v.var +// 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: return %.loc23_17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.b55) { +// CHECK:STDOUT: fn @Destroy.Op.loc23_12.2(%self.param: ref %f64.dc1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/fail_type_mismatch.carbon b/toolchain/check/testdata/return/fail_type_mismatch.carbon index f60c3f6c1edf..88cf9c740077 100644 --- a/toolchain/check/testdata/return/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/return/fail_type_mismatch.carbon @@ -30,13 +30,13 @@ fn Main() -> i32 { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 10e-1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -47,7 +47,7 @@ fn Main() -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -57,11 +57,11 @@ fn Main() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [concrete = constants.%Main] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/fail_value_missing.carbon b/toolchain/check/testdata/return/fail_value_missing.carbon index 7740dbc6ed13..391da78ae726 100644 --- a/toolchain/check/testdata/return/fail_value_missing.carbon +++ b/toolchain/check/testdata/return/fail_value_missing.carbon @@ -30,8 +30,8 @@ fn Main() -> i32 { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -52,11 +52,11 @@ fn Main() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [concrete = constants.%Main] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/fail_var_in_type.carbon b/toolchain/check/testdata/return/fail_var_in_type.carbon index abde14e11275..394377fa1edb 100644 --- a/toolchain/check/testdata/return/fail_var_in_type.carbon +++ b/toolchain/check/testdata/return/fail_var_in_type.carbon @@ -28,10 +28,10 @@ fn Six() -> x { return 6; } // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.impl_witness.f49: = impl_witness imports.%Copy.impl_witness_table.fcf [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.f49) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.cd0: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.31b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.cd0, %Copy.facet [concrete] +// CHECK:STDOUT: %Copy.impl_witness.638: = impl_witness imports.%Copy.impl_witness_table.4d6 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.638) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8b3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.524: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8b3, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %i32, %type.as.Copy.impl.Op [concrete] @@ -49,8 +49,8 @@ fn Six() -> x { return 6; } // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.f63: %type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.Copy.impl.Op] -// CHECK:STDOUT: %Copy.impl_witness_table.fcf = impl_witness_table (%Core.import_ref.f63), @type.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.Copy.impl.Op] +// CHECK:STDOUT: %Copy.impl_witness_table.4d6 = impl_witness_table (%Core.import_ref.9c3), @type.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -85,7 +85,7 @@ fn Six() -> x { return 6; } // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.31b = impl_witness_access constants.%Copy.impl_witness.f49, element0 [concrete = constants.%type.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0: %.524 = impl_witness_access constants.%Copy.impl_witness.638, element0 [concrete = constants.%type.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %i32, %impl.elem0 [concrete = constants.%type.as.Copy.impl.Op.bound] // CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method(%i32) [concrete = constants.%i32] // CHECK:STDOUT: assign file.%x.var, %type.as.Copy.impl.Op.call diff --git a/toolchain/check/testdata/return/import_convert_function.carbon b/toolchain/check/testdata/return/import_convert_function.carbon index 78f9b253b62b..8fb9b2952896 100644 --- a/toolchain/check/testdata/return/import_convert_function.carbon +++ b/toolchain/check/testdata/return/import_convert_function.carbon @@ -56,110 +56,110 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %N.bbe: %i32 = symbolic_binding N, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %N.37f: %i32 = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %C.d5e: type = class_type @C, @C(%N.bbe) [symbolic] +// CHECK:STDOUT: %C.bf4: type = class_type @C, @C(%N.37f) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %D.elem: type = unbound_element_type %D, %i32 [concrete] -// CHECK:STDOUT: %struct_type.n.m.052: type = struct_type {.n: %i32, .m: %i32} [concrete] -// CHECK:STDOUT: %complete_type.266: = complete_type_witness %struct_type.n.m.052 [concrete] -// CHECK:STDOUT: %.b94: Core.Form = init_form %D [concrete] -// CHECK:STDOUT: %pattern_type.9ff: type = pattern_type %D [concrete] +// CHECK:STDOUT: %struct_type.n.m.fa1: type = struct_type {.n: %i32, .m: %i32} [concrete] +// CHECK:STDOUT: %complete_type.237: = complete_type_witness %struct_type.n.m.fa1 [concrete] +// CHECK:STDOUT: %.128: Core.Form = init_form %D [concrete] +// CHECK:STDOUT: %pattern_type.b22: type = pattern_type %D [concrete] // CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete] // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %struct_type.n.m.819: type = struct_type {.n: Core.IntLiteral, .m: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.n.m.819 = struct_value (%int_0.5c6, %int_0.5c6) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.840: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.840) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet.840 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %D.val: %D = struct_value (%int_0.62d, %int_0.62d) [concrete] -// CHECK:STDOUT: %C.429: type = class_type @C, @C(%int_0.62d) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.59f: type = facet_type <@ImplicitAs, @ImplicitAs(%D)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.07a: = impl_witness @C.as.ImplicitAs.impl.b6b.%ImplicitAs.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.302: type = pattern_type %C.429 [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.5a0a19.1: type = fn_type @C.as.ImplicitAs.impl.Convert.loc8 [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.fcd869.1: %C.as.ImplicitAs.impl.Convert.type.5a0a19.1 = struct_value () [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.9f1: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.9f1) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet.9f1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.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: %D.val: %D = struct_value (%int_0.3c0, %int_0.3c0) [concrete] +// CHECK:STDOUT: %C.771: type = class_type @C, @C(%int_0.3c0) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.24d: type = facet_type <@ImplicitAs, @ImplicitAs(%D)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.4c1: = impl_witness @C.as.ImplicitAs.impl.0e1.%ImplicitAs.impl_witness_table [concrete] +// CHECK:STDOUT: %pattern_type.84d: type = pattern_type %C.771 [concrete] +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.860b0a.1: type = fn_type @C.as.ImplicitAs.impl.Convert.loc8 [concrete] +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.54620a.1: %C.as.ImplicitAs.impl.Convert.type.860b0a.1 = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %C.ef8: type = class_type @C, @C(%int_1.d9c) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.074: = impl_witness @C.as.ImplicitAs.impl.35b.%ImplicitAs.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.ae4: type = pattern_type %C.ef8 [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.5a0a19.2: type = fn_type @C.as.ImplicitAs.impl.Convert.loc9 [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.fcd869.2: %C.as.ImplicitAs.impl.Convert.type.5a0a19.2 = struct_value () [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] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %C.83b: type = class_type @C, @C(%int_1.0c6) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.c46: = impl_witness @C.as.ImplicitAs.impl.f6a.%ImplicitAs.impl_witness_table [concrete] +// CHECK:STDOUT: %pattern_type.91a: type = pattern_type %C.83b [concrete] +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.860b0a.2: type = fn_type @C.as.ImplicitAs.impl.Convert.loc9 [concrete] +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.54620a.2: %C.as.ImplicitAs.impl.Convert.type.860b0a.2 = struct_value () [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %C.834: type = class_type @C, @C(%int_2.228) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.8db: = impl_witness @C.as.ImplicitAs.impl.cc9.%ImplicitAs.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.e3d: type = pattern_type %C.834 [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.5a0a19.3: type = fn_type @C.as.ImplicitAs.impl.Convert.loc10 [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.fcd869.3: %C.as.ImplicitAs.impl.Convert.type.5a0a19.3 = struct_value () [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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %C.5ce: type = class_type @C, @C(%int_2.295) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.430: = impl_witness @C.as.ImplicitAs.impl.aab.%ImplicitAs.impl_witness_table [concrete] +// CHECK:STDOUT: %pattern_type.7dd: type = pattern_type %C.5ce [concrete] +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.860b0a.3: type = fn_type @C.as.ImplicitAs.impl.Convert.loc10 [concrete] +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.54620a.3: %C.as.ImplicitAs.impl.Convert.type.860b0a.3 = struct_value () [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %C.888: type = class_type @C, @C(%int_3.6cc) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.cf6: = impl_witness @C.as.ImplicitAs.impl.e7e.%ImplicitAs.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.c79: type = pattern_type %C.888 [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.5a0a19.4: type = fn_type @C.as.ImplicitAs.impl.Convert.loc11 [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.fcd869.4: %C.as.ImplicitAs.impl.Convert.type.5a0a19.4 = struct_value () [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] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] +// CHECK:STDOUT: %C.b3e: type = class_type @C, @C(%int_3.410) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.b6d: = impl_witness @C.as.ImplicitAs.impl.203.%ImplicitAs.impl_witness_table [concrete] +// CHECK:STDOUT: %pattern_type.26a: type = pattern_type %C.b3e [concrete] +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.860b0a.4: type = fn_type @C.as.ImplicitAs.impl.Convert.loc11 [concrete] +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.54620a.4: %C.as.ImplicitAs.impl.Convert.type.860b0a.4 = struct_value () [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.9f5: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_4.a4d: %i32 = int_value 4 [concrete] -// CHECK:STDOUT: %C.925: type = class_type @C, @C(%int_4.a4d) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.297: = impl_witness @C.as.ImplicitAs.impl.855.%ImplicitAs.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.324: type = pattern_type %C.925 [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.5a0a19.5: type = fn_type @C.as.ImplicitAs.impl.Convert.loc12 [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.fcd869.5: %C.as.ImplicitAs.impl.Convert.type.5a0a19.5 = struct_value () [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] +// CHECK:STDOUT: %int_4.4eb: %i32 = int_value 4 [concrete] +// CHECK:STDOUT: %C.8ee: type = class_type @C, @C(%int_4.4eb) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.c85: = impl_witness @C.as.ImplicitAs.impl.371.%ImplicitAs.impl_witness_table [concrete] +// CHECK:STDOUT: %pattern_type.387: type = pattern_type %C.8ee [concrete] +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.860b0a.5: type = fn_type @C.as.ImplicitAs.impl.Convert.loc12 [concrete] +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.54620a.5: %C.as.ImplicitAs.impl.Convert.type.860b0a.5 = struct_value () [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e3e: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_5.354: %i32 = int_value 5 [concrete] -// CHECK:STDOUT: %C.332: type = class_type @C, @C(%int_5.354) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.91a: = impl_witness @C.as.ImplicitAs.impl.59c.%ImplicitAs.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.040: type = pattern_type %C.332 [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.5a0a19.6: type = fn_type @C.as.ImplicitAs.impl.Convert.loc13 [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.fcd869.6: %C.as.ImplicitAs.impl.Convert.type.5a0a19.6 = struct_value () [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] +// CHECK:STDOUT: %int_5.eef: %i32 = int_value 5 [concrete] +// CHECK:STDOUT: %C.5c1: type = class_type @C, @C(%int_5.eef) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.1af: = impl_witness @C.as.ImplicitAs.impl.c73.%ImplicitAs.impl_witness_table [concrete] +// CHECK:STDOUT: %pattern_type.05e: type = pattern_type %C.5c1 [concrete] +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.860b0a.6: type = fn_type @C.as.ImplicitAs.impl.Convert.loc13 [concrete] +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.54620a.6: %C.as.ImplicitAs.impl.Convert.type.860b0a.6 = struct_value () [concrete] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.6e4: = bound_method %int_6.462, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.50f: = bound_method %int_6.462, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_6.77d: %i32 = int_value 6 [concrete] -// CHECK:STDOUT: %C.771: type = class_type @C, @C(%int_6.77d) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.6c0: = impl_witness @C.as.ImplicitAs.impl.6f8.%ImplicitAs.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.579: type = pattern_type %C.771 [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.5a0a19.7: type = fn_type @C.as.ImplicitAs.impl.Convert.loc14 [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.fcd869.7: %C.as.ImplicitAs.impl.Convert.type.5a0a19.7 = struct_value () [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] +// CHECK:STDOUT: %int_6.439: %i32 = int_value 6 [concrete] +// CHECK:STDOUT: %C.57b: type = class_type @C, @C(%int_6.439) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.c9c: = impl_witness @C.as.ImplicitAs.impl.2f3.%ImplicitAs.impl_witness_table [concrete] +// CHECK:STDOUT: %pattern_type.4b0: type = pattern_type %C.57b [concrete] +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.860b0a.7: type = fn_type @C.as.ImplicitAs.impl.Convert.loc14 [concrete] +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.54620a.7: %C.as.ImplicitAs.impl.Convert.type.860b0a.7 = struct_value () [concrete] // CHECK:STDOUT: %int_7.29f: Core.IntLiteral = int_value 7 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.286: = bound_method %int_7.29f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.936: = bound_method %int_7.29f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_7.c44: %i32 = int_value 7 [concrete] -// CHECK:STDOUT: %C.19e: type = class_type @C, @C(%int_7.c44) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.342: = impl_witness @C.as.ImplicitAs.impl.627.%ImplicitAs.impl_witness_table [concrete] -// CHECK:STDOUT: %pattern_type.c1d: type = pattern_type %C.19e [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.5a0a19.8: type = fn_type @C.as.ImplicitAs.impl.Convert.loc15 [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.fcd869.8: %C.as.ImplicitAs.impl.Convert.type.5a0a19.8 = struct_value () [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] +// CHECK:STDOUT: %int_7.690: %i32 = int_value 7 [concrete] +// CHECK:STDOUT: %C.b0a: type = class_type @C, @C(%int_7.690) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.642: = impl_witness @C.as.ImplicitAs.impl.28a.%ImplicitAs.impl_witness_table [concrete] +// CHECK:STDOUT: %pattern_type.bc2: type = pattern_type %C.b0a [concrete] +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.860b0a.8: type = fn_type @C.as.ImplicitAs.impl.Convert.loc15 [concrete] +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.54620a.8: %C.as.ImplicitAs.impl.Convert.type.860b0a.8 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -170,9 +170,9 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -184,327 +184,171 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { -// CHECK:STDOUT: %N.patt: %pattern_type.104 = symbolic_binding_pattern N, 0 [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.6b6 = symbolic_binding_pattern N, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4: type = splice_block %i32 [concrete = constants.%i32] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_10.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc4_10.1 (constants.%N.bbe)] +// CHECK:STDOUT: %N.loc4_10.2: %i32 = symbolic_binding N, 0 [symbolic = %N.loc4_10.1 (constants.%N.37f)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.9ff = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.9ff = return_slot_pattern %return.param_patt, %D.ref [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b22 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b22 = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %.loc6_14: Core.Form = init_form %D.ref [concrete = constants.%.b94] +// CHECK:STDOUT: %.loc6_14: Core.Form = init_form %D.ref [concrete = constants.%.128] // CHECK:STDOUT: %return.param: ref %D = out_param call_param0 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl.b6b [concrete] {} { +// CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl.0e1 [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_9.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_9.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_9.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_9.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc8_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc8_9.2: %i32 = converted %int_0, %.loc8_9.1 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_0.62d) [concrete = constants.%C.429] +// CHECK:STDOUT: %bound_method.loc8_9.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_9.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc8_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc8_9.2: %i32 = converted %int_0, %.loc8_9.1 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_0.3c0) [concrete = constants.%C.771] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [concrete = constants.%ImplicitAs.type.59f] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [concrete = constants.%ImplicitAs.type.24d] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl.35b [concrete] {} { +// CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl.f6a [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_9.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_9.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_9.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc9_9.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc9_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc9_9.2: %i32 = converted %int_1, %.loc9_9.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_1.d9c) [concrete = constants.%C.ef8] +// CHECK:STDOUT: %bound_method.loc9_9.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc9_9.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc9_9.2: %i32 = converted %int_1, %.loc9_9.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_1.0c6) [concrete = constants.%C.83b] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [concrete = constants.%ImplicitAs.type.59f] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [concrete = constants.%ImplicitAs.type.24d] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl.cc9 [concrete] {} { +// CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl.aab [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_9.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_9.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_9.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc10_9.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc10_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc10_9.2: %i32 = converted %int_2, %.loc10_9.1 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_2.228) [concrete = constants.%C.834] +// CHECK:STDOUT: %bound_method.loc10_9.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc10_9.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc10_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc10_9.2: %i32 = converted %int_2, %.loc10_9.1 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_2.295) [concrete = constants.%C.5ce] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [concrete = constants.%ImplicitAs.type.59f] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [concrete = constants.%ImplicitAs.type.24d] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl.e7e [concrete] {} { +// CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl.203 [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc11_9.1: = bound_method %int_3, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc11_9.1: = bound_method %int_3, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_9.2: = bound_method %int_3, %specific_fn [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc11_9.2(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc11_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc11_9.2: %i32 = converted %int_3, %.loc11_9.1 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_3.6cc) [concrete = constants.%C.888] +// CHECK:STDOUT: %bound_method.loc11_9.2: = bound_method %int_3, %specific_fn [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc11_9.2(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc11_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc11_9.2: %i32 = converted %int_3, %.loc11_9.1 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_3.410) [concrete = constants.%C.b3e] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [concrete = constants.%ImplicitAs.type.59f] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [concrete = constants.%ImplicitAs.type.24d] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl.855 [concrete] {} { +// CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl.371 [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc12_9.1: = bound_method %int_4, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc12_9.1: = bound_method %int_4, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc12_9.2: = bound_method %int_4, %specific_fn [concrete = constants.%bound_method.9f5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc12_9.2(%int_4) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc12_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc12_9.2: %i32 = converted %int_4, %.loc12_9.1 [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_4.a4d) [concrete = constants.%C.925] +// CHECK:STDOUT: %bound_method.loc12_9.2: = bound_method %int_4, %specific_fn [concrete = constants.%bound_method.b7a] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc12_9.2(%int_4) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc12_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc12_9.2: %i32 = converted %int_4, %.loc12_9.1 [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_4.4eb) [concrete = constants.%C.8ee] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [concrete = constants.%ImplicitAs.type.59f] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [concrete = constants.%ImplicitAs.type.24d] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl.59c [concrete] {} { +// CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl.c73 [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc13_9.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc13_9.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f6c] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc13_9.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method.e3e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc13_9.2(%int_5) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc13_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc13_9.2: %i32 = converted %int_5, %.loc13_9.1 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_5.354) [concrete = constants.%C.332] +// CHECK:STDOUT: %bound_method.loc13_9.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method.c9d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc13_9.2(%int_5) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc13_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc13_9.2: %i32 = converted %int_5, %.loc13_9.1 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_5.eef) [concrete = constants.%C.5c1] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [concrete = constants.%ImplicitAs.type.59f] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [concrete = constants.%ImplicitAs.type.24d] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl.6f8 [concrete] {} { +// CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl.2f3 [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [concrete = constants.%int_6.462] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc14_9.1: = bound_method %int_6, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.6e4] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc14_9.1: = bound_method %int_6, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.13d] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc14_9.2: = bound_method %int_6, %specific_fn [concrete = constants.%bound_method.50f] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc14_9.2(%int_6) [concrete = constants.%int_6.77d] -// CHECK:STDOUT: %.loc14_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_6.77d] -// CHECK:STDOUT: %.loc14_9.2: %i32 = converted %int_6, %.loc14_9.1 [concrete = constants.%int_6.77d] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_6.77d) [concrete = constants.%C.771] +// CHECK:STDOUT: %bound_method.loc14_9.2: = bound_method %int_6, %specific_fn [concrete = constants.%bound_method.be9] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc14_9.2(%int_6) [concrete = constants.%int_6.439] +// CHECK:STDOUT: %.loc14_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_6.439] +// CHECK:STDOUT: %.loc14_9.2: %i32 = converted %int_6, %.loc14_9.1 [concrete = constants.%int_6.439] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_6.439) [concrete = constants.%C.57b] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [concrete = constants.%ImplicitAs.type.59f] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [concrete = constants.%ImplicitAs.type.24d] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl.627 [concrete] {} { +// CHECK:STDOUT: impl_decl @C.as.ImplicitAs.impl.28a [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_7: Core.IntLiteral = int_value 7 [concrete = constants.%int_7.29f] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_9.1: = bound_method %int_7, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.286] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_9.1: = bound_method %int_7, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.66b] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_9.2: = bound_method %int_7, %specific_fn [concrete = constants.%bound_method.936] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_9.2(%int_7) [concrete = constants.%int_7.c44] -// CHECK:STDOUT: %.loc15_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_7.c44] -// CHECK:STDOUT: %.loc15_9.2: %i32 = converted %int_7, %.loc15_9.1 [concrete = constants.%int_7.c44] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_7.c44) [concrete = constants.%C.19e] +// CHECK:STDOUT: %bound_method.loc15_9.2: = bound_method %int_7, %specific_fn [concrete = constants.%bound_method.7ff] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_9.2(%int_7) [concrete = constants.%int_7.690] +// CHECK:STDOUT: %.loc15_9.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_7.690] +// CHECK:STDOUT: %.loc15_9.2: %i32 = converted %int_7, %.loc15_9.1 [concrete = constants.%int_7.690] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_7.690) [concrete = constants.%C.b0a] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.754 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.0ff = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [concrete = constants.%ImplicitAs.type.59f] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%D)> [concrete = constants.%ImplicitAs.type.24d] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.b6b: %C as %ImplicitAs.type { -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.5a0a19.1 = fn_decl @C.as.ImplicitAs.impl.Convert.loc8 [concrete = constants.%C.as.ImplicitAs.impl.Convert.fcd869.1] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.302 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.302 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9ff = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.9ff = return_slot_pattern %return.param_patt, %D.ref [concrete] +// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.0e1: %C as %ImplicitAs.type { +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.860b0a.1 = fn_decl @C.as.ImplicitAs.impl.Convert.loc8 [concrete = constants.%C.as.ImplicitAs.impl.Convert.54620a.1] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.84d = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.84d = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b22 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b22 = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %.loc8_70.2: Core.Form = init_form %D.ref [concrete = constants.%.b94] -// CHECK:STDOUT: %self.param: %C.429 = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.ImplicitAs.impl.b6b.%C [concrete = constants.%C.429] -// CHECK:STDOUT: %self: %C.429 = value_binding self, %self.param -// CHECK:STDOUT: %return.param: ref %D = out_param call_param1 -// CHECK:STDOUT: %return: ref %D = return_slot %return.param -// CHECK:STDOUT: } -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl.b6b [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.07a] -// CHECK:STDOUT: -// CHECK:STDOUT: !members: -// CHECK:STDOUT: .D = -// CHECK:STDOUT: .Convert = %C.as.ImplicitAs.impl.Convert.decl -// CHECK:STDOUT: .Make = -// CHECK:STDOUT: extend %ImplicitAs.type -// CHECK:STDOUT: witness = %ImplicitAs.impl_witness -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.35b: %C as %ImplicitAs.type { -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.5a0a19.2 = fn_decl @C.as.ImplicitAs.impl.Convert.loc9 [concrete = constants.%C.as.ImplicitAs.impl.Convert.fcd869.2] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.ae4 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.ae4 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9ff = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.9ff = return_slot_pattern %return.param_patt, %D.ref [concrete] -// CHECK:STDOUT: } { -// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %.loc9_70.2: Core.Form = init_form %D.ref [concrete = constants.%.b94] -// CHECK:STDOUT: %self.param: %C.ef8 = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.ImplicitAs.impl.35b.%C [concrete = constants.%C.ef8] -// CHECK:STDOUT: %self: %C.ef8 = value_binding self, %self.param -// CHECK:STDOUT: %return.param: ref %D = out_param call_param1 -// CHECK:STDOUT: %return: ref %D = return_slot %return.param -// CHECK:STDOUT: } -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl.35b [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.074] -// CHECK:STDOUT: -// CHECK:STDOUT: !members: -// CHECK:STDOUT: .D = -// CHECK:STDOUT: .Convert = %C.as.ImplicitAs.impl.Convert.decl -// CHECK:STDOUT: .Make = -// CHECK:STDOUT: extend %ImplicitAs.type -// CHECK:STDOUT: witness = %ImplicitAs.impl_witness -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.cc9: %C as %ImplicitAs.type { -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.5a0a19.3 = fn_decl @C.as.ImplicitAs.impl.Convert.loc10 [concrete = constants.%C.as.ImplicitAs.impl.Convert.fcd869.3] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.e3d = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.e3d = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9ff = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.9ff = return_slot_pattern %return.param_patt, %D.ref [concrete] -// CHECK:STDOUT: } { -// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %.loc10_70.2: Core.Form = init_form %D.ref [concrete = constants.%.b94] -// CHECK:STDOUT: %self.param: %C.834 = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.ImplicitAs.impl.cc9.%C [concrete = constants.%C.834] -// CHECK:STDOUT: %self: %C.834 = value_binding self, %self.param -// CHECK:STDOUT: %return.param: ref %D = out_param call_param1 -// CHECK:STDOUT: %return: ref %D = return_slot %return.param -// CHECK:STDOUT: } -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl.cc9 [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.8db] -// CHECK:STDOUT: -// CHECK:STDOUT: !members: -// CHECK:STDOUT: .D = -// CHECK:STDOUT: .Convert = %C.as.ImplicitAs.impl.Convert.decl -// CHECK:STDOUT: .Make = -// CHECK:STDOUT: extend %ImplicitAs.type -// CHECK:STDOUT: witness = %ImplicitAs.impl_witness -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.e7e: %C as %ImplicitAs.type { -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.5a0a19.4 = fn_decl @C.as.ImplicitAs.impl.Convert.loc11 [concrete = constants.%C.as.ImplicitAs.impl.Convert.fcd869.4] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.c79 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.c79 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9ff = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.9ff = return_slot_pattern %return.param_patt, %D.ref [concrete] -// CHECK:STDOUT: } { -// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %.loc11_70.2: Core.Form = init_form %D.ref [concrete = constants.%.b94] -// CHECK:STDOUT: %self.param: %C.888 = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.ImplicitAs.impl.e7e.%C [concrete = constants.%C.888] -// CHECK:STDOUT: %self: %C.888 = value_binding self, %self.param -// CHECK:STDOUT: %return.param: ref %D = out_param call_param1 -// CHECK:STDOUT: %return: ref %D = return_slot %return.param -// CHECK:STDOUT: } -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl.e7e [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.cf6] -// CHECK:STDOUT: -// CHECK:STDOUT: !members: -// CHECK:STDOUT: .D = -// CHECK:STDOUT: .Convert = %C.as.ImplicitAs.impl.Convert.decl -// CHECK:STDOUT: .Make = -// CHECK:STDOUT: extend %ImplicitAs.type -// CHECK:STDOUT: witness = %ImplicitAs.impl_witness -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.855: %C as %ImplicitAs.type { -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.5a0a19.5 = fn_decl @C.as.ImplicitAs.impl.Convert.loc12 [concrete = constants.%C.as.ImplicitAs.impl.Convert.fcd869.5] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.324 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.324 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9ff = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.9ff = return_slot_pattern %return.param_patt, %D.ref [concrete] -// CHECK:STDOUT: } { -// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %.loc12_70.2: Core.Form = init_form %D.ref [concrete = constants.%.b94] -// CHECK:STDOUT: %self.param: %C.925 = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.ImplicitAs.impl.855.%C [concrete = constants.%C.925] -// CHECK:STDOUT: %self: %C.925 = value_binding self, %self.param -// CHECK:STDOUT: %return.param: ref %D = out_param call_param1 -// CHECK:STDOUT: %return: ref %D = return_slot %return.param -// CHECK:STDOUT: } -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl.855 [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.297] -// CHECK:STDOUT: -// CHECK:STDOUT: !members: -// CHECK:STDOUT: .D = -// CHECK:STDOUT: .Convert = %C.as.ImplicitAs.impl.Convert.decl -// CHECK:STDOUT: .Make = -// CHECK:STDOUT: extend %ImplicitAs.type -// CHECK:STDOUT: witness = %ImplicitAs.impl_witness -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.59c: %C as %ImplicitAs.type { -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.5a0a19.6 = fn_decl @C.as.ImplicitAs.impl.Convert.loc13 [concrete = constants.%C.as.ImplicitAs.impl.Convert.fcd869.6] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.040 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.040 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9ff = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.9ff = return_slot_pattern %return.param_patt, %D.ref [concrete] -// CHECK:STDOUT: } { -// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %.loc13_70.2: Core.Form = init_form %D.ref [concrete = constants.%.b94] -// CHECK:STDOUT: %self.param: %C.332 = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.ImplicitAs.impl.59c.%C [concrete = constants.%C.332] -// CHECK:STDOUT: %self: %C.332 = value_binding self, %self.param -// CHECK:STDOUT: %return.param: ref %D = out_param call_param1 -// CHECK:STDOUT: %return: ref %D = return_slot %return.param -// CHECK:STDOUT: } -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl.59c [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.91a] -// CHECK:STDOUT: -// CHECK:STDOUT: !members: -// CHECK:STDOUT: .D = -// CHECK:STDOUT: .Convert = %C.as.ImplicitAs.impl.Convert.decl -// CHECK:STDOUT: .Make = -// CHECK:STDOUT: extend %ImplicitAs.type -// CHECK:STDOUT: witness = %ImplicitAs.impl_witness -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.6f8: %C as %ImplicitAs.type { -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.5a0a19.7 = fn_decl @C.as.ImplicitAs.impl.Convert.loc14 [concrete = constants.%C.as.ImplicitAs.impl.Convert.fcd869.7] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.579 = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.579 = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9ff = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.9ff = return_slot_pattern %return.param_patt, %D.ref [concrete] -// CHECK:STDOUT: } { -// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %.loc14_70.2: Core.Form = init_form %D.ref [concrete = constants.%.b94] +// CHECK:STDOUT: %.loc8_70.2: Core.Form = init_form %D.ref [concrete = constants.%.128] // CHECK:STDOUT: %self.param: %C.771 = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.ImplicitAs.impl.6f8.%C [concrete = constants.%C.771] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.ImplicitAs.impl.0e1.%C [concrete = constants.%C.771] // CHECK:STDOUT: %self: %C.771 = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref %D = out_param call_param1 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl.6f8 [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.6c0] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl.0e1 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.4c1] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .D = @@ -514,23 +358,179 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: witness = %ImplicitAs.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.627: %C as %ImplicitAs.type { -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.5a0a19.8 = fn_decl @C.as.ImplicitAs.impl.Convert.loc15 [concrete = constants.%C.as.ImplicitAs.impl.Convert.fcd869.8] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.c1d = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.c1d = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9ff = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.9ff = return_slot_pattern %return.param_patt, %D.ref [concrete] +// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.f6a: %C as %ImplicitAs.type { +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.860b0a.2 = fn_decl @C.as.ImplicitAs.impl.Convert.loc9 [concrete = constants.%C.as.ImplicitAs.impl.Convert.54620a.2] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.91a = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.91a = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b22 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b22 = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %.loc15_70.2: Core.Form = init_form %D.ref [concrete = constants.%.b94] -// CHECK:STDOUT: %self.param: %C.19e = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.ImplicitAs.impl.627.%C [concrete = constants.%C.19e] -// CHECK:STDOUT: %self: %C.19e = value_binding self, %self.param +// CHECK:STDOUT: %.loc9_70.2: Core.Form = init_form %D.ref [concrete = constants.%.128] +// CHECK:STDOUT: %self.param: %C.83b = value_param call_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.ImplicitAs.impl.f6a.%C [concrete = constants.%C.83b] +// CHECK:STDOUT: %self: %C.83b = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref %D = out_param call_param1 // CHECK:STDOUT: %return: ref %D = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl.627 [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.342] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl.f6a [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.c46] +// CHECK:STDOUT: +// CHECK:STDOUT: !members: +// CHECK:STDOUT: .D = +// CHECK:STDOUT: .Convert = %C.as.ImplicitAs.impl.Convert.decl +// CHECK:STDOUT: .Make = +// CHECK:STDOUT: extend %ImplicitAs.type +// CHECK:STDOUT: witness = %ImplicitAs.impl_witness +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.aab: %C as %ImplicitAs.type { +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.860b0a.3 = fn_decl @C.as.ImplicitAs.impl.Convert.loc10 [concrete = constants.%C.as.ImplicitAs.impl.Convert.54620a.3] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.7dd = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.7dd = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b22 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b22 = return_slot_pattern %return.param_patt, %D.ref [concrete] +// CHECK:STDOUT: } { +// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] +// CHECK:STDOUT: %.loc10_70.2: Core.Form = init_form %D.ref [concrete = constants.%.128] +// CHECK:STDOUT: %self.param: %C.5ce = value_param call_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.ImplicitAs.impl.aab.%C [concrete = constants.%C.5ce] +// CHECK:STDOUT: %self: %C.5ce = value_binding self, %self.param +// CHECK:STDOUT: %return.param: ref %D = out_param call_param1 +// CHECK:STDOUT: %return: ref %D = return_slot %return.param +// CHECK:STDOUT: } +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl.aab [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.430] +// CHECK:STDOUT: +// CHECK:STDOUT: !members: +// CHECK:STDOUT: .D = +// CHECK:STDOUT: .Convert = %C.as.ImplicitAs.impl.Convert.decl +// CHECK:STDOUT: .Make = +// CHECK:STDOUT: extend %ImplicitAs.type +// CHECK:STDOUT: witness = %ImplicitAs.impl_witness +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.203: %C as %ImplicitAs.type { +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.860b0a.4 = fn_decl @C.as.ImplicitAs.impl.Convert.loc11 [concrete = constants.%C.as.ImplicitAs.impl.Convert.54620a.4] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.26a = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.26a = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b22 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b22 = return_slot_pattern %return.param_patt, %D.ref [concrete] +// CHECK:STDOUT: } { +// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] +// CHECK:STDOUT: %.loc11_70.2: Core.Form = init_form %D.ref [concrete = constants.%.128] +// CHECK:STDOUT: %self.param: %C.b3e = value_param call_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.ImplicitAs.impl.203.%C [concrete = constants.%C.b3e] +// CHECK:STDOUT: %self: %C.b3e = value_binding self, %self.param +// CHECK:STDOUT: %return.param: ref %D = out_param call_param1 +// CHECK:STDOUT: %return: ref %D = return_slot %return.param +// CHECK:STDOUT: } +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl.203 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.b6d] +// CHECK:STDOUT: +// CHECK:STDOUT: !members: +// CHECK:STDOUT: .D = +// CHECK:STDOUT: .Convert = %C.as.ImplicitAs.impl.Convert.decl +// CHECK:STDOUT: .Make = +// CHECK:STDOUT: extend %ImplicitAs.type +// CHECK:STDOUT: witness = %ImplicitAs.impl_witness +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.371: %C as %ImplicitAs.type { +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.860b0a.5 = fn_decl @C.as.ImplicitAs.impl.Convert.loc12 [concrete = constants.%C.as.ImplicitAs.impl.Convert.54620a.5] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.387 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.387 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b22 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b22 = return_slot_pattern %return.param_patt, %D.ref [concrete] +// CHECK:STDOUT: } { +// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] +// CHECK:STDOUT: %.loc12_70.2: Core.Form = init_form %D.ref [concrete = constants.%.128] +// CHECK:STDOUT: %self.param: %C.8ee = value_param call_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.ImplicitAs.impl.371.%C [concrete = constants.%C.8ee] +// CHECK:STDOUT: %self: %C.8ee = value_binding self, %self.param +// CHECK:STDOUT: %return.param: ref %D = out_param call_param1 +// CHECK:STDOUT: %return: ref %D = return_slot %return.param +// CHECK:STDOUT: } +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl.371 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.c85] +// CHECK:STDOUT: +// CHECK:STDOUT: !members: +// CHECK:STDOUT: .D = +// CHECK:STDOUT: .Convert = %C.as.ImplicitAs.impl.Convert.decl +// CHECK:STDOUT: .Make = +// CHECK:STDOUT: extend %ImplicitAs.type +// CHECK:STDOUT: witness = %ImplicitAs.impl_witness +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.c73: %C as %ImplicitAs.type { +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.860b0a.6 = fn_decl @C.as.ImplicitAs.impl.Convert.loc13 [concrete = constants.%C.as.ImplicitAs.impl.Convert.54620a.6] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.05e = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.05e = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b22 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b22 = return_slot_pattern %return.param_patt, %D.ref [concrete] +// CHECK:STDOUT: } { +// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] +// CHECK:STDOUT: %.loc13_70.2: Core.Form = init_form %D.ref [concrete = constants.%.128] +// CHECK:STDOUT: %self.param: %C.5c1 = value_param call_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.ImplicitAs.impl.c73.%C [concrete = constants.%C.5c1] +// CHECK:STDOUT: %self: %C.5c1 = value_binding self, %self.param +// CHECK:STDOUT: %return.param: ref %D = out_param call_param1 +// CHECK:STDOUT: %return: ref %D = return_slot %return.param +// CHECK:STDOUT: } +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl.c73 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.1af] +// CHECK:STDOUT: +// CHECK:STDOUT: !members: +// CHECK:STDOUT: .D = +// CHECK:STDOUT: .Convert = %C.as.ImplicitAs.impl.Convert.decl +// CHECK:STDOUT: .Make = +// CHECK:STDOUT: extend %ImplicitAs.type +// CHECK:STDOUT: witness = %ImplicitAs.impl_witness +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.2f3: %C as %ImplicitAs.type { +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.860b0a.7 = fn_decl @C.as.ImplicitAs.impl.Convert.loc14 [concrete = constants.%C.as.ImplicitAs.impl.Convert.54620a.7] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.4b0 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.4b0 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b22 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b22 = return_slot_pattern %return.param_patt, %D.ref [concrete] +// CHECK:STDOUT: } { +// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] +// CHECK:STDOUT: %.loc14_70.2: Core.Form = init_form %D.ref [concrete = constants.%.128] +// CHECK:STDOUT: %self.param: %C.57b = value_param call_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.ImplicitAs.impl.2f3.%C [concrete = constants.%C.57b] +// CHECK:STDOUT: %self: %C.57b = value_binding self, %self.param +// CHECK:STDOUT: %return.param: ref %D = out_param call_param1 +// CHECK:STDOUT: %return: ref %D = return_slot %return.param +// CHECK:STDOUT: } +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl.2f3 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.c9c] +// CHECK:STDOUT: +// CHECK:STDOUT: !members: +// CHECK:STDOUT: .D = +// CHECK:STDOUT: .Convert = %C.as.ImplicitAs.impl.Convert.decl +// CHECK:STDOUT: .Make = +// CHECK:STDOUT: extend %ImplicitAs.type +// CHECK:STDOUT: witness = %ImplicitAs.impl_witness +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.28a: %C as %ImplicitAs.type { +// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.decl: %C.as.ImplicitAs.impl.Convert.type.860b0a.8 = fn_decl @C.as.ImplicitAs.impl.Convert.loc15 [concrete = constants.%C.as.ImplicitAs.impl.Convert.54620a.8] { +// CHECK:STDOUT: %self.param_patt: %pattern_type.bc2 = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.bc2 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b22 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b22 = return_slot_pattern %return.param_patt, %D.ref [concrete] +// CHECK:STDOUT: } { +// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] +// CHECK:STDOUT: %.loc15_70.2: Core.Form = init_form %D.ref [concrete = constants.%.128] +// CHECK:STDOUT: %self.param: %C.b0a = value_param call_param0 +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.ImplicitAs.impl.28a.%C [concrete = constants.%C.b0a] +// CHECK:STDOUT: %self: %C.b0a = value_binding self, %self.param +// CHECK:STDOUT: %return.param: ref %D = out_param call_param1 +// CHECK:STDOUT: %return: ref %D = return_slot %return.param +// CHECK:STDOUT: } +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%C.as.ImplicitAs.impl.Convert.decl), @C.as.ImplicitAs.impl.28a [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness: = impl_witness %ImplicitAs.impl_witness_table [concrete = constants.%ImplicitAs.impl_witness.642] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .D = @@ -541,7 +541,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic class @C(%N.loc4_10.2: %i32) { -// CHECK:STDOUT: %N.loc4_10.1: %i32 = symbolic_binding N, 0 [symbolic = %N.loc4_10.1 (constants.%N.bbe)] +// CHECK:STDOUT: %N.loc4_10.1: %i32 = symbolic_binding N, 0 [symbolic = %N.loc4_10.1 (constants.%N.37f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -550,14 +550,14 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%C.d5e +// CHECK:STDOUT: .Self = constants.%C.bf4 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D { // CHECK:STDOUT: %.loc5_16: %D.elem = field_decl n, element0 [concrete] // CHECK:STDOUT: %.loc5_28: %D.elem = field_decl m, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n.m.052 [concrete = constants.%complete_type.266] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.n.m.fa1 [concrete = constants.%complete_type.237] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -571,28 +571,28 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %int_0.loc6_31: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_0.loc6_39: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc6_40.1: %struct_type.n.m.819 = struct_literal (%int_0.loc6_31, %int_0.loc6_39) [concrete = constants.%struct] -// CHECK:STDOUT: %impl.elem0.loc6_40.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc6_40.1: = bound_method %int_0.loc6_31, %impl.elem0.loc6_40.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc6_40.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc6_40.1: = bound_method %int_0.loc6_31, %impl.elem0.loc6_40.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc6_40.1: = specific_function %impl.elem0.loc6_40.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_40.2: = bound_method %int_0.loc6_31, %specific_fn.loc6_40.1 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_40.1: init %i32 = call %bound_method.loc6_40.2(%int_0.loc6_31) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc6_40.2: init %i32 = converted %int_0.loc6_31, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_40.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc6_40.2: = bound_method %int_0.loc6_31, %specific_fn.loc6_40.1 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_40.1: init %i32 = call %bound_method.loc6_40.2(%int_0.loc6_31) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc6_40.2: init %i32 = converted %int_0.loc6_31, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_40.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc6_40.3: ref %i32 = class_element_access %return.param, element0 -// CHECK:STDOUT: %.loc6_40.4: init %i32 to %.loc6_40.3 = in_place_init %.loc6_40.2 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %impl.elem0.loc6_40.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc6_40.3: = bound_method %int_0.loc6_39, %impl.elem0.loc6_40.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %.loc6_40.4: init %i32 to %.loc6_40.3 = in_place_init %.loc6_40.2 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %impl.elem0.loc6_40.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc6_40.3: = bound_method %int_0.loc6_39, %impl.elem0.loc6_40.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc6_40.2: = specific_function %impl.elem0.loc6_40.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_40.4: = bound_method %int_0.loc6_39, %specific_fn.loc6_40.2 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_40.2: init %i32 = call %bound_method.loc6_40.4(%int_0.loc6_39) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc6_40.5: init %i32 = converted %int_0.loc6_39, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_40.2 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc6_40.4: = bound_method %int_0.loc6_39, %specific_fn.loc6_40.2 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_40.2: init %i32 = call %bound_method.loc6_40.4(%int_0.loc6_39) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc6_40.5: init %i32 = converted %int_0.loc6_39, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_40.2 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc6_40.6: ref %i32 = class_element_access %return.param, element1 -// CHECK:STDOUT: %.loc6_40.7: init %i32 to %.loc6_40.6 = in_place_init %.loc6_40.5 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %.loc6_40.7: init %i32 to %.loc6_40.6 = in_place_init %.loc6_40.5 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc6_40.8: init %D to %return.param = class_init (%.loc6_40.4, %.loc6_40.7) [concrete = constants.%D.val] // CHECK:STDOUT: %.loc6_41: init %D = converted %.loc6_40.1, %.loc6_40.8 [concrete = constants.%D.val] // CHECK:STDOUT: return %.loc6_41 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.loc8(%self.param: %C.429) -> out %return.param: %D { +// CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.loc8(%self.param: %C.771) -> out %return.param: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make] // CHECK:STDOUT: %.loc8_70.1: ref %D = splice_block %return.param {} @@ -600,7 +600,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: return %Make.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.loc9(%self.param: %C.ef8) -> out %return.param: %D { +// CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.loc9(%self.param: %C.83b) -> out %return.param: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make] // CHECK:STDOUT: %.loc9_70.1: ref %D = splice_block %return.param {} @@ -608,7 +608,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: return %Make.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.loc10(%self.param: %C.834) -> out %return.param: %D { +// CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.loc10(%self.param: %C.5ce) -> out %return.param: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make] // CHECK:STDOUT: %.loc10_70.1: ref %D = splice_block %return.param {} @@ -616,7 +616,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: return %Make.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.loc11(%self.param: %C.888) -> out %return.param: %D { +// CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.loc11(%self.param: %C.b3e) -> out %return.param: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make] // CHECK:STDOUT: %.loc11_70.1: ref %D = splice_block %return.param {} @@ -624,7 +624,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: return %Make.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.loc12(%self.param: %C.925) -> out %return.param: %D { +// CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.loc12(%self.param: %C.8ee) -> out %return.param: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make] // CHECK:STDOUT: %.loc12_70.1: ref %D = splice_block %return.param {} @@ -632,7 +632,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: return %Make.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.loc13(%self.param: %C.332) -> out %return.param: %D { +// CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.loc13(%self.param: %C.5c1) -> out %return.param: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make] // CHECK:STDOUT: %.loc13_70.1: ref %D = splice_block %return.param {} @@ -640,7 +640,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: return %Make.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.loc14(%self.param: %C.771) -> out %return.param: %D { +// CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.loc14(%self.param: %C.57b) -> out %return.param: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make] // CHECK:STDOUT: %.loc14_70.1: ref %D = splice_block %return.param {} @@ -648,7 +648,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: return %Make.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.loc15(%self.param: %C.19e) -> out %return.param: %D { +// CHECK:STDOUT: fn @C.as.ImplicitAs.impl.Convert.loc15(%self.param: %C.b0a) -> out %return.param: %D { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make] // CHECK:STDOUT: %.loc15_70.1: ref %D = splice_block %return.param {} @@ -656,54 +656,54 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: return %Make.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%N.bbe) { -// CHECK:STDOUT: %N.loc4_10.1 => constants.%N.bbe +// CHECK:STDOUT: specific @C(constants.%N.37f) { +// CHECK:STDOUT: %N.loc4_10.1 => constants.%N.37f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_0.62d) { -// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_0.62d +// CHECK:STDOUT: specific @C(constants.%int_0.3c0) { +// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_0.3c0 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_1.d9c) { -// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_1.d9c +// CHECK:STDOUT: specific @C(constants.%int_1.0c6) { +// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_1.0c6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_2.228) { -// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_2.228 +// CHECK:STDOUT: specific @C(constants.%int_2.295) { +// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_2.295 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_3.6cc) { -// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_3.6cc +// CHECK:STDOUT: specific @C(constants.%int_3.410) { +// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_3.410 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_4.a4d) { -// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_4.a4d +// CHECK:STDOUT: specific @C(constants.%int_4.4eb) { +// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_4.4eb // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_5.354) { -// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_5.354 +// CHECK:STDOUT: specific @C(constants.%int_5.eef) { +// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_5.eef // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_6.77d) { -// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_6.77d +// CHECK:STDOUT: specific @C(constants.%int_6.439) { +// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_6.439 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_7.c44) { -// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_7.c44 +// CHECK:STDOUT: specific @C(constants.%int_7.690) { +// CHECK:STDOUT: %N.loc4_10.1 => constants.%int_7.690 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -716,12 +716,12 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %struct_type.n.m: type = struct_type {.n: %i32, .m: %i32} [concrete] -// CHECK:STDOUT: %complete_type.266: = complete_type_witness %struct_type.n.m [concrete] -// CHECK:STDOUT: %.b94: Core.Form = init_form %D [concrete] -// CHECK:STDOUT: %pattern_type.9ff: type = pattern_type %D [concrete] +// CHECK:STDOUT: %complete_type.237: = complete_type_witness %struct_type.n.m [concrete] +// CHECK:STDOUT: %.128: Core.Form = init_form %D [concrete] +// CHECK:STDOUT: %pattern_type.b22: type = pattern_type %D [concrete] // CHECK:STDOUT: %F0.type: type = fn_type @F0 [concrete] // CHECK:STDOUT: %F0: %F0.type = struct_value () [concrete] // CHECK:STDOUT: %false: bool = bool_literal false [concrete] @@ -730,158 +730,158 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %N.bbe: %i32 = symbolic_binding N, 0 [symbolic] +// CHECK:STDOUT: %N.37f: %i32 = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.840: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.840) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet.840 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %C.429: type = class_type @C, @C(%int_0.62d) [concrete] -// CHECK:STDOUT: %C.val.964: %C.429 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.59f: type = facet_type <@ImplicitAs, @ImplicitAs(%D)> [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %C.ef8: type = class_type @C, @C(%int_1.d9c) [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %C.834: type = class_type @C, @C(%int_2.228) [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %C.888: type = class_type @C, @C(%int_3.6cc) [concrete] -// CHECK:STDOUT: %int_4.a4d: %i32 = int_value 4 [concrete] -// CHECK:STDOUT: %C.925: type = class_type @C, @C(%int_4.a4d) [concrete] -// CHECK:STDOUT: %int_5.354: %i32 = int_value 5 [concrete] -// CHECK:STDOUT: %C.332: type = class_type @C, @C(%int_5.354) [concrete] -// CHECK:STDOUT: %int_6.77d: %i32 = int_value 6 [concrete] -// CHECK:STDOUT: %C.771: type = class_type @C, @C(%int_6.77d) [concrete] -// CHECK:STDOUT: %int_7.c44: %i32 = int_value 7 [concrete] -// CHECK:STDOUT: %C.19e: type = class_type @C, @C(%int_7.c44) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.5cc: = impl_witness imports.%ImplicitAs.impl_witness_table.443 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.bf9: %ImplicitAs.type.59f = facet_value %C.429, (%ImplicitAs.impl_witness.5cc) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.71e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%D, %ImplicitAs.facet.bf9) [concrete] -// CHECK:STDOUT: %.231: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.71e, %ImplicitAs.facet.bf9 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.9f1: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.9f1) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet.9f1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.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: %C.771: type = class_type @C, @C(%int_0.3c0) [concrete] +// CHECK:STDOUT: %C.val.d9b: %C.771 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.24d: type = facet_type <@ImplicitAs, @ImplicitAs(%D)> [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %C.83b: type = class_type @C, @C(%int_1.0c6) [concrete] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %C.5ce: type = class_type @C, @C(%int_2.295) [concrete] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] +// CHECK:STDOUT: %C.b3e: type = class_type @C, @C(%int_3.410) [concrete] +// CHECK:STDOUT: %int_4.4eb: %i32 = int_value 4 [concrete] +// CHECK:STDOUT: %C.8ee: type = class_type @C, @C(%int_4.4eb) [concrete] +// CHECK:STDOUT: %int_5.eef: %i32 = int_value 5 [concrete] +// CHECK:STDOUT: %C.5c1: type = class_type @C, @C(%int_5.eef) [concrete] +// CHECK:STDOUT: %int_6.439: %i32 = int_value 6 [concrete] +// CHECK:STDOUT: %C.57b: type = class_type @C, @C(%int_6.439) [concrete] +// CHECK:STDOUT: %int_7.690: %i32 = int_value 7 [concrete] +// CHECK:STDOUT: %C.b0a: type = class_type @C, @C(%int_7.690) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.39f: = impl_witness imports.%ImplicitAs.impl_witness_table.f81 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.93a: %ImplicitAs.type.24d = facet_value %C.771, (%ImplicitAs.impl_witness.39f) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c58: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%D, %ImplicitAs.facet.93a) [concrete] +// CHECK:STDOUT: %.f28: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c58, %ImplicitAs.facet.93a [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.1: type = fn_type @C.as.ImplicitAs.impl.Convert.1 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.3cefb0.1: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.1 = struct_value () [concrete] -// CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.bound.e0e: = bound_method %C.val.964, %C.as.ImplicitAs.impl.Convert.3cefb0.1 [concrete] -// CHECK:STDOUT: %.34e: ref %C.429 = temporary invalid, %C.val.964 [concrete] +// 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.790b3b.2: type = fn_type @Destroy.Op.loc7_26.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.a0c: = bound_method %.34e, %Destroy.Op.2dd605.2 [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: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %C.val.314: %C.ef8 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.11f: = impl_witness imports.%ImplicitAs.impl_witness_table.8b9 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.d34: %ImplicitAs.type.59f = facet_value %C.ef8, (%ImplicitAs.impl_witness.11f) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.1f6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%D, %ImplicitAs.facet.d34) [concrete] -// CHECK:STDOUT: %.018: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.1f6, %ImplicitAs.facet.d34 [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] +// CHECK:STDOUT: %C.val.399: %C.83b = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.d9f: = impl_witness imports.%ImplicitAs.impl_witness_table.032 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.da3: %ImplicitAs.type.24d = facet_value %C.83b, (%ImplicitAs.impl_witness.d9f) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.0dc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%D, %ImplicitAs.facet.da3) [concrete] +// CHECK:STDOUT: %.a7f: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.0dc, %ImplicitAs.facet.da3 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.2: type = fn_type @C.as.ImplicitAs.impl.Convert.2 [concrete] // 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.535: = bound_method %C.val.314, %C.as.ImplicitAs.impl.Convert.3cefb0.2 [concrete] -// CHECK:STDOUT: %.12d: ref %C.ef8 = temporary invalid, %C.val.314 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc8 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.df7: = bound_method %.12d, %Destroy.Op.2dd605.3 [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: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %C.val.f91: %C.834 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.5bb: = impl_witness imports.%ImplicitAs.impl_witness_table.8a21 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.87f: %ImplicitAs.type.59f = facet_value %C.834, (%ImplicitAs.impl_witness.5bb) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.af0: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%D, %ImplicitAs.facet.87f) [concrete] -// CHECK:STDOUT: %.460: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.af0, %ImplicitAs.facet.87f [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] +// CHECK:STDOUT: %C.val.040: %C.5ce = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.409: = impl_witness imports.%ImplicitAs.impl_witness_table.93f [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.bb4: %ImplicitAs.type.24d = facet_value %C.5ce, (%ImplicitAs.impl_witness.409) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2a1: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%D, %ImplicitAs.facet.bb4) [concrete] +// CHECK:STDOUT: %.8f7: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2a1, %ImplicitAs.facet.bb4 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.3: type = fn_type @C.as.ImplicitAs.impl.Convert.3 [concrete] // 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.37d: = bound_method %C.val.f91, %C.as.ImplicitAs.impl.Convert.3cefb0.3 [concrete] -// CHECK:STDOUT: %.29a: ref %C.834 = temporary invalid, %C.val.f91 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc9 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.852: = bound_method %.29a, %Destroy.Op.2dd605.4 [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: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.655: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %C.val.4fc: %C.888 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e44: = impl_witness imports.%ImplicitAs.impl_witness_table.109 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.ff1: %ImplicitAs.type.59f = facet_value %C.888, (%ImplicitAs.impl_witness.e44) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.72a: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%D, %ImplicitAs.facet.ff1) [concrete] -// CHECK:STDOUT: %.fa8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.72a, %ImplicitAs.facet.ff1 [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] +// CHECK:STDOUT: %C.val.cf1: %C.b3e = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.69a: = impl_witness imports.%ImplicitAs.impl_witness_table.62c [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.7a4: %ImplicitAs.type.24d = facet_value %C.b3e, (%ImplicitAs.impl_witness.69a) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.dfc: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%D, %ImplicitAs.facet.7a4) [concrete] +// CHECK:STDOUT: %.8eb: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.dfc, %ImplicitAs.facet.7a4 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.4: type = fn_type @C.as.ImplicitAs.impl.Convert.4 [concrete] // 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.452: = bound_method %C.val.4fc, %C.as.ImplicitAs.impl.Convert.3cefb0.4 [concrete] -// CHECK:STDOUT: %.160: ref %C.888 = temporary invalid, %C.val.4fc [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.5: type = fn_type @Destroy.Op.loc10 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.5: %Destroy.Op.type.790b3b.5 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.3cd: = bound_method %.160, %Destroy.Op.2dd605.5 [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: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.9f5: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %C.val.ff3: %C.925 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.2e1: = impl_witness imports.%ImplicitAs.impl_witness_table.253 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.2e9: %ImplicitAs.type.59f = facet_value %C.925, (%ImplicitAs.impl_witness.2e1) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.809: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%D, %ImplicitAs.facet.2e9) [concrete] -// CHECK:STDOUT: %.686: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.809, %ImplicitAs.facet.2e9 [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] +// CHECK:STDOUT: %C.val.19e: %C.8ee = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.af6: = impl_witness imports.%ImplicitAs.impl_witness_table.3ac [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.007: %ImplicitAs.type.24d = facet_value %C.8ee, (%ImplicitAs.impl_witness.af6) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.7d2: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%D, %ImplicitAs.facet.007) [concrete] +// CHECK:STDOUT: %.9db: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.7d2, %ImplicitAs.facet.007 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.5: type = fn_type @C.as.ImplicitAs.impl.Convert.5 [concrete] // 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.3f4: = bound_method %C.val.ff3, %C.as.ImplicitAs.impl.Convert.3cefb0.5 [concrete] -// CHECK:STDOUT: %.db5: ref %C.925 = temporary invalid, %C.val.ff3 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.6: type = fn_type @Destroy.Op.loc11 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.6: %Destroy.Op.type.790b3b.6 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.fb1: = bound_method %.db5, %Destroy.Op.2dd605.6 [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: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e3e: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %C.val.5b6: %C.332 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.6f8: = impl_witness imports.%ImplicitAs.impl_witness_table.34c [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.3ca: %ImplicitAs.type.59f = facet_value %C.332, (%ImplicitAs.impl_witness.6f8) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.80f: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%D, %ImplicitAs.facet.3ca) [concrete] -// CHECK:STDOUT: %.1f6: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.80f, %ImplicitAs.facet.3ca [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] +// CHECK:STDOUT: %C.val.6ca: %C.5c1 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.b0e: = impl_witness imports.%ImplicitAs.impl_witness_table.a96 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.930: %ImplicitAs.type.24d = facet_value %C.5c1, (%ImplicitAs.impl_witness.b0e) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.950: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%D, %ImplicitAs.facet.930) [concrete] +// CHECK:STDOUT: %.cf1: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.950, %ImplicitAs.facet.930 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.6: type = fn_type @C.as.ImplicitAs.impl.Convert.6 [concrete] // 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.761: = bound_method %C.val.5b6, %C.as.ImplicitAs.impl.Convert.3cefb0.6 [concrete] -// CHECK:STDOUT: %.c3d: ref %C.332 = temporary invalid, %C.val.5b6 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.7: type = fn_type @Destroy.Op.loc12 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.7: %Destroy.Op.type.790b3b.7 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.d18: = bound_method %.c3d, %Destroy.Op.2dd605.7 [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: %int_6.462: Core.IntLiteral = int_value 6 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.6e4: = bound_method %int_6.462, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.50f: = bound_method %int_6.462, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %C.val.6cb: %C.771 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.c87: = impl_witness imports.%ImplicitAs.impl_witness_table.96b [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.13d: %ImplicitAs.type.59f = facet_value %C.771, (%ImplicitAs.impl_witness.c87) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.cc4: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%D, %ImplicitAs.facet.13d) [concrete] -// CHECK:STDOUT: %.f87: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.cc4, %ImplicitAs.facet.13d [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] +// CHECK:STDOUT: %C.val.225: %C.57b = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.4cc: = impl_witness imports.%ImplicitAs.impl_witness_table.91e [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.9e1: %ImplicitAs.type.24d = facet_value %C.57b, (%ImplicitAs.impl_witness.4cc) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.c1e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%D, %ImplicitAs.facet.9e1) [concrete] +// CHECK:STDOUT: %.68f: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.c1e, %ImplicitAs.facet.9e1 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.7: type = fn_type @C.as.ImplicitAs.impl.Convert.7 [concrete] // 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.17f: = bound_method %C.val.6cb, %C.as.ImplicitAs.impl.Convert.3cefb0.7 [concrete] -// CHECK:STDOUT: %.7c7: ref %C.771 = temporary invalid, %C.val.6cb [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.8: type = fn_type @Destroy.Op.loc13 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.8: %Destroy.Op.type.790b3b.8 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.121: = bound_method %.7c7, %Destroy.Op.2dd605.8 [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: %int_7.29f: Core.IntLiteral = int_value 7 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.286: = bound_method %int_7.29f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.936: = bound_method %int_7.29f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %C.val.793: %C.19e = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.475: = impl_witness imports.%ImplicitAs.impl_witness_table.117 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.df7: %ImplicitAs.type.59f = facet_value %C.19e, (%ImplicitAs.impl_witness.475) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.3ff: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%D, %ImplicitAs.facet.df7) [concrete] -// CHECK:STDOUT: %.b7c: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.3ff, %ImplicitAs.facet.df7 [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] +// CHECK:STDOUT: %C.val.79c: %C.b0a = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.82a: = impl_witness imports.%ImplicitAs.impl_witness_table.990 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.b94: %ImplicitAs.type.24d = facet_value %C.b0a, (%ImplicitAs.impl_witness.82a) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.ff6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%D, %ImplicitAs.facet.b94) [concrete] +// CHECK:STDOUT: %.eb8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.ff6, %ImplicitAs.facet.b94 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.8: type = fn_type @C.as.ImplicitAs.impl.Convert.8 [concrete] // 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.24e: = bound_method %C.val.793, %C.as.ImplicitAs.impl.Convert.3cefb0.8 [concrete] -// CHECK:STDOUT: %.a8b: ref %C.19e = temporary invalid, %C.val.793 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.9: type = fn_type @Destroy.Op.loc14 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.9: %Destroy.Op.type.790b3b.9 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.bound.46d: = bound_method %.a8b, %Destroy.Op.2dd605.9 [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: %Make.type: type = fn_type @Make [concrete] // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -902,58 +902,58 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %P.D: type = import_ref P//library, D, loaded [concrete = constants.%D] -// CHECK:STDOUT: %P.import_ref.e34: = import_ref P//library, loc5_35, loaded [concrete = constants.%complete_type.266] -// CHECK:STDOUT: %P.import_ref.edf = import_ref P//library, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %P.import_ref.843 = import_ref P//library, loc5_16, unloaded -// CHECK:STDOUT: %P.import_ref.cc0 = import_ref P//library, loc5_28, unloaded +// CHECK:STDOUT: %P.import_ref.6bc: = import_ref P//library, loc5_35, loaded [concrete = constants.%complete_type.237] +// CHECK:STDOUT: %P.import_ref.737 = import_ref P//library, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %P.import_ref.9f8 = import_ref P//library, loc5_16, unloaded +// CHECK:STDOUT: %P.import_ref.0cb = import_ref P//library, loc5_28, unloaded // CHECK:STDOUT: %P.C: %C.type = import_ref P//library, C, loaded [concrete = constants.%C.generic] // CHECK:STDOUT: %P.import_ref.8f2: = import_ref P//library, loc4_19, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %P.import_ref.b84 = import_ref P//library, inst{{[0-9A-F]+}} [no loc], unloaded -// CHECK:STDOUT: %P.import_ref.d92: %i32 = import_ref P//library, loc4_10, loaded [symbolic = @C.%N (constants.%N.bbe)] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %P.import_ref.03e: = import_ref P//library, loc8_33, loaded [concrete = constants.%ImplicitAs.impl_witness.5cc] -// CHECK:STDOUT: %P.import_ref.234: type = import_ref P//library, loc8_9, loaded [concrete = constants.%C.429] -// CHECK:STDOUT: %P.import_ref.e4b86c.1: type = import_ref P//library, loc8_31, loaded [concrete = constants.%ImplicitAs.type.59f] -// CHECK:STDOUT: %P.import_ref.5056: = import_ref P//library, loc9_33, loaded [concrete = constants.%ImplicitAs.impl_witness.11f] -// CHECK:STDOUT: %P.import_ref.ffb: type = import_ref P//library, loc9_9, loaded [concrete = constants.%C.ef8] -// CHECK:STDOUT: %P.import_ref.e4b86c.2: type = import_ref P//library, loc9_31, loaded [concrete = constants.%ImplicitAs.type.59f] -// CHECK:STDOUT: %P.import_ref.6f5: = import_ref P//library, loc10_33, loaded [concrete = constants.%ImplicitAs.impl_witness.5bb] -// CHECK:STDOUT: %P.import_ref.d77: type = import_ref P//library, loc10_9, loaded [concrete = constants.%C.834] -// CHECK:STDOUT: %P.import_ref.e4b86c.3: type = import_ref P//library, loc10_31, loaded [concrete = constants.%ImplicitAs.type.59f] -// CHECK:STDOUT: %P.import_ref.765: = import_ref P//library, loc11_33, loaded [concrete = constants.%ImplicitAs.impl_witness.e44] -// CHECK:STDOUT: %P.import_ref.61b: type = import_ref P//library, loc11_9, loaded [concrete = constants.%C.888] -// CHECK:STDOUT: %P.import_ref.e4b86c.4: type = import_ref P//library, loc11_31, loaded [concrete = constants.%ImplicitAs.type.59f] -// CHECK:STDOUT: %P.import_ref.535: = import_ref P//library, loc12_33, loaded [concrete = constants.%ImplicitAs.impl_witness.2e1] -// CHECK:STDOUT: %P.import_ref.4f6: type = import_ref P//library, loc12_9, loaded [concrete = constants.%C.925] -// CHECK:STDOUT: %P.import_ref.e4b86c.5: type = import_ref P//library, loc12_31, loaded [concrete = constants.%ImplicitAs.type.59f] -// CHECK:STDOUT: %P.import_ref.e74: = import_ref P//library, loc13_33, loaded [concrete = constants.%ImplicitAs.impl_witness.6f8] -// CHECK:STDOUT: %P.import_ref.5059: type = import_ref P//library, loc13_9, loaded [concrete = constants.%C.332] -// CHECK:STDOUT: %P.import_ref.e4b86c.6: type = import_ref P//library, loc13_31, loaded [concrete = constants.%ImplicitAs.type.59f] -// CHECK:STDOUT: %P.import_ref.b6e: = import_ref P//library, loc14_33, loaded [concrete = constants.%ImplicitAs.impl_witness.c87] -// CHECK:STDOUT: %P.import_ref.361: type = import_ref P//library, loc14_9, loaded [concrete = constants.%C.771] -// CHECK:STDOUT: %P.import_ref.e4b86c.7: type = import_ref P//library, loc14_31, loaded [concrete = constants.%ImplicitAs.type.59f] -// CHECK:STDOUT: %P.import_ref.71c: = import_ref P//library, loc15_33, loaded [concrete = constants.%ImplicitAs.impl_witness.475] -// CHECK:STDOUT: %P.import_ref.caa: type = import_ref P//library, loc15_9, loaded [concrete = constants.%C.19e] -// CHECK:STDOUT: %P.import_ref.e4b86c.8: type = import_ref P//library, loc15_31, loaded [concrete = constants.%ImplicitAs.type.59f] -// CHECK:STDOUT: %P.import_ref.ef42d7.1: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.1 = import_ref P//library, loc8_72, loaded [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.1] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.443 = impl_witness_table (%P.import_ref.ef42d7.1), @C.as.ImplicitAs.impl.028 [concrete] +// CHECK:STDOUT: %P.import_ref.70e = import_ref P//library, inst{{[0-9A-F]+}} [no loc], unloaded +// CHECK:STDOUT: %P.import_ref.d2a: %i32 = import_ref P//library, loc4_10, loaded [symbolic = @C.%N (constants.%N.37f)] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %P.import_ref.b19: = import_ref P//library, loc8_33, loaded [concrete = constants.%ImplicitAs.impl_witness.39f] +// CHECK:STDOUT: %P.import_ref.5cd: type = import_ref P//library, loc8_9, loaded [concrete = constants.%C.771] +// CHECK:STDOUT: %P.import_ref.4efc12.1: type = import_ref P//library, loc8_31, loaded [concrete = constants.%ImplicitAs.type.24d] +// CHECK:STDOUT: %P.import_ref.7c1: = import_ref P//library, loc9_33, loaded [concrete = constants.%ImplicitAs.impl_witness.d9f] +// CHECK:STDOUT: %P.import_ref.25e: type = import_ref P//library, loc9_9, loaded [concrete = constants.%C.83b] +// CHECK:STDOUT: %P.import_ref.4efc12.2: type = import_ref P//library, loc9_31, loaded [concrete = constants.%ImplicitAs.type.24d] +// CHECK:STDOUT: %P.import_ref.ad3: = import_ref P//library, loc10_33, loaded [concrete = constants.%ImplicitAs.impl_witness.409] +// CHECK:STDOUT: %P.import_ref.30e: type = import_ref P//library, loc10_9, loaded [concrete = constants.%C.5ce] +// CHECK:STDOUT: %P.import_ref.4efc12.3: type = import_ref P//library, loc10_31, loaded [concrete = constants.%ImplicitAs.type.24d] +// CHECK:STDOUT: %P.import_ref.beb: = import_ref P//library, loc11_33, loaded [concrete = constants.%ImplicitAs.impl_witness.69a] +// CHECK:STDOUT: %P.import_ref.edf: type = import_ref P//library, loc11_9, loaded [concrete = constants.%C.b3e] +// CHECK:STDOUT: %P.import_ref.4efc12.4: type = import_ref P//library, loc11_31, loaded [concrete = constants.%ImplicitAs.type.24d] +// CHECK:STDOUT: %P.import_ref.681: = import_ref P//library, loc12_33, loaded [concrete = constants.%ImplicitAs.impl_witness.af6] +// CHECK:STDOUT: %P.import_ref.e77: type = import_ref P//library, loc12_9, loaded [concrete = constants.%C.8ee] +// CHECK:STDOUT: %P.import_ref.4efc12.5: type = import_ref P//library, loc12_31, loaded [concrete = constants.%ImplicitAs.type.24d] +// CHECK:STDOUT: %P.import_ref.cea: = import_ref P//library, loc13_33, loaded [concrete = constants.%ImplicitAs.impl_witness.b0e] +// CHECK:STDOUT: %P.import_ref.c8c: type = import_ref P//library, loc13_9, loaded [concrete = constants.%C.5c1] +// CHECK:STDOUT: %P.import_ref.4efc12.6: type = import_ref P//library, loc13_31, loaded [concrete = constants.%ImplicitAs.type.24d] +// CHECK:STDOUT: %P.import_ref.cdb: = import_ref P//library, loc14_33, loaded [concrete = constants.%ImplicitAs.impl_witness.4cc] +// CHECK:STDOUT: %P.import_ref.847: type = import_ref P//library, loc14_9, loaded [concrete = constants.%C.57b] +// CHECK:STDOUT: %P.import_ref.4efc12.7: type = import_ref P//library, loc14_31, loaded [concrete = constants.%ImplicitAs.type.24d] +// CHECK:STDOUT: %P.import_ref.2b7: = import_ref P//library, loc15_33, loaded [concrete = constants.%ImplicitAs.impl_witness.82a] +// CHECK:STDOUT: %P.import_ref.584: type = import_ref P//library, loc15_9, loaded [concrete = constants.%C.b0a] +// CHECK:STDOUT: %P.import_ref.4efc12.8: type = import_ref P//library, loc15_31, loaded [concrete = constants.%ImplicitAs.type.24d] +// CHECK:STDOUT: %P.import_ref.b89e2b.1: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.1 = import_ref P//library, loc8_72, loaded [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.1] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.f81 = impl_witness_table (%P.import_ref.b89e2b.1), @C.as.ImplicitAs.impl.fa9 [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %P.import_ref.ef42d7.2: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.2 = import_ref P//library, loc9_72, loaded [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.2] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.8b9 = impl_witness_table (%P.import_ref.ef42d7.2), @C.as.ImplicitAs.impl.5fc [concrete] -// CHECK:STDOUT: %P.import_ref.ef42d7.3: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.3 = import_ref P//library, loc10_72, loaded [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.3] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.8a21 = impl_witness_table (%P.import_ref.ef42d7.3), @C.as.ImplicitAs.impl.15f [concrete] -// CHECK:STDOUT: %P.import_ref.ef42d7.4: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.4 = import_ref P//library, loc11_72, loaded [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.4] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.109 = impl_witness_table (%P.import_ref.ef42d7.4), @C.as.ImplicitAs.impl.6c0 [concrete] -// CHECK:STDOUT: %P.import_ref.ef42d7.5: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.5 = import_ref P//library, loc12_72, loaded [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.5] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.253 = impl_witness_table (%P.import_ref.ef42d7.5), @C.as.ImplicitAs.impl.1d7 [concrete] -// CHECK:STDOUT: %P.import_ref.ef42d7.6: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.6 = import_ref P//library, loc13_72, loaded [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.6] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.34c = impl_witness_table (%P.import_ref.ef42d7.6), @C.as.ImplicitAs.impl.a1c [concrete] -// CHECK:STDOUT: %P.import_ref.ef42d7.7: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.7 = import_ref P//library, loc14_72, loaded [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.7] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.96b = impl_witness_table (%P.import_ref.ef42d7.7), @C.as.ImplicitAs.impl.cc5 [concrete] -// CHECK:STDOUT: %P.import_ref.ef42d7.8: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.8 = import_ref P//library, loc15_72, loaded [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.8] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.117 = impl_witness_table (%P.import_ref.ef42d7.8), @C.as.ImplicitAs.impl.1f1 [concrete] +// CHECK:STDOUT: %P.import_ref.b89e2b.2: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.2 = import_ref P//library, loc9_72, loaded [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.2] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.032 = impl_witness_table (%P.import_ref.b89e2b.2), @C.as.ImplicitAs.impl.c89 [concrete] +// CHECK:STDOUT: %P.import_ref.b89e2b.3: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.3 = import_ref P//library, loc10_72, loaded [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.3] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.93f = impl_witness_table (%P.import_ref.b89e2b.3), @C.as.ImplicitAs.impl.cc3 [concrete] +// CHECK:STDOUT: %P.import_ref.b89e2b.4: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.4 = import_ref P//library, loc11_72, loaded [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.4] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.62c = impl_witness_table (%P.import_ref.b89e2b.4), @C.as.ImplicitAs.impl.2a2 [concrete] +// CHECK:STDOUT: %P.import_ref.b89e2b.5: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.5 = import_ref P//library, loc12_72, loaded [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.5] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.3ac = impl_witness_table (%P.import_ref.b89e2b.5), @C.as.ImplicitAs.impl.862 [concrete] +// CHECK:STDOUT: %P.import_ref.b89e2b.6: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.6 = import_ref P//library, loc13_72, loaded [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.6] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a96 = impl_witness_table (%P.import_ref.b89e2b.6), @C.as.ImplicitAs.impl.6ea [concrete] +// CHECK:STDOUT: %P.import_ref.b89e2b.7: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.7 = import_ref P//library, loc14_72, loaded [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.7] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.91e = impl_witness_table (%P.import_ref.b89e2b.7), @C.as.ImplicitAs.impl.36b [concrete] +// CHECK:STDOUT: %P.import_ref.b89e2b.8: %C.as.ImplicitAs.impl.Convert.type.ae6f4c.8 = import_ref P//library, loc15_72, loaded [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.8] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.990 = impl_witness_table (%P.import_ref.b89e2b.8), @C.as.ImplicitAs.impl.550 [concrete] // CHECK:STDOUT: %P.Make: %Make.type = import_ref P//library, Make, loaded [concrete = constants.%Make] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -966,14 +966,14 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %P.import = import P // CHECK:STDOUT: %F0.decl: %F0.type = fn_decl @F0 [concrete = constants.%F0] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.9ff = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.9ff = return_slot_pattern %return.param_patt, %D.ref [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.b22 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.b22 = return_slot_pattern %return.param_patt, %D.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %P.ref.loc6: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%P.D [concrete = constants.%D] -// CHECK:STDOUT: %.loc6_26.10: Core.Form = init_form %D.ref [concrete = constants.%.b94] +// CHECK:STDOUT: %.loc6_26.10: Core.Form = init_form %D.ref [concrete = constants.%.128] // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param @@ -982,57 +982,57 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.028: imports.%P.import_ref.234 as imports.%P.import_ref.e4b86c.1 [from "library.carbon"] { +// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.fa9: imports.%P.import_ref.5cd as imports.%P.import_ref.4efc12.1 [from "library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%P.import_ref.03e +// CHECK:STDOUT: witness = imports.%P.import_ref.b19 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.5fc: imports.%P.import_ref.ffb as imports.%P.import_ref.e4b86c.2 [from "library.carbon"] { +// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.c89: imports.%P.import_ref.25e as imports.%P.import_ref.4efc12.2 [from "library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%P.import_ref.5056 +// CHECK:STDOUT: witness = imports.%P.import_ref.7c1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.15f: imports.%P.import_ref.d77 as imports.%P.import_ref.e4b86c.3 [from "library.carbon"] { +// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.cc3: imports.%P.import_ref.30e as imports.%P.import_ref.4efc12.3 [from "library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%P.import_ref.6f5 +// CHECK:STDOUT: witness = imports.%P.import_ref.ad3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.6c0: imports.%P.import_ref.61b as imports.%P.import_ref.e4b86c.4 [from "library.carbon"] { +// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.2a2: imports.%P.import_ref.edf as imports.%P.import_ref.4efc12.4 [from "library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%P.import_ref.765 +// CHECK:STDOUT: witness = imports.%P.import_ref.beb // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.1d7: imports.%P.import_ref.4f6 as imports.%P.import_ref.e4b86c.5 [from "library.carbon"] { +// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.862: imports.%P.import_ref.e77 as imports.%P.import_ref.4efc12.5 [from "library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%P.import_ref.535 +// CHECK:STDOUT: witness = imports.%P.import_ref.681 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.a1c: imports.%P.import_ref.5059 as imports.%P.import_ref.e4b86c.6 [from "library.carbon"] { +// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.6ea: imports.%P.import_ref.c8c as imports.%P.import_ref.4efc12.6 [from "library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%P.import_ref.e74 +// CHECK:STDOUT: witness = imports.%P.import_ref.cea // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.cc5: imports.%P.import_ref.361 as imports.%P.import_ref.e4b86c.7 [from "library.carbon"] { +// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.36b: imports.%P.import_ref.847 as imports.%P.import_ref.4efc12.7 [from "library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%P.import_ref.b6e +// CHECK:STDOUT: witness = imports.%P.import_ref.cdb // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.1f1: imports.%P.import_ref.caa as imports.%P.import_ref.e4b86c.8 [from "library.carbon"] { +// CHECK:STDOUT: impl @C.as.ImplicitAs.impl.550: imports.%P.import_ref.584 as imports.%P.import_ref.4efc12.8 [from "library.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: witness = imports.%P.import_ref.71c +// CHECK:STDOUT: witness = imports.%P.import_ref.2b7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @D [from "library.carbon"] { -// CHECK:STDOUT: complete_type_witness = imports.%P.import_ref.e34 +// CHECK:STDOUT: complete_type_witness = imports.%P.import_ref.6bc // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%P.import_ref.edf -// CHECK:STDOUT: .n = imports.%P.import_ref.843 -// CHECK:STDOUT: .m = imports.%P.import_ref.cc0 +// CHECK:STDOUT: .Self = imports.%P.import_ref.737 +// CHECK:STDOUT: .n = imports.%P.import_ref.9f8 +// CHECK:STDOUT: .m = imports.%P.import_ref.0cb // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(imports.%P.import_ref.d92: %i32) [from "library.carbon"] { -// CHECK:STDOUT: %N: %i32 = symbolic_binding N, 0 [symbolic = %N (constants.%N.bbe)] +// CHECK:STDOUT: generic class @C(imports.%P.import_ref.d2a: %i32) [from "library.carbon"] { +// CHECK:STDOUT: %N: %i32 = symbolic_binding N, 0 [symbolic = %N (constants.%N.37f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -1040,7 +1040,7 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: complete_type_witness = imports.%P.import_ref.8f2 // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%P.import_ref.b84 +// CHECK:STDOUT: .Self = imports.%P.import_ref.70e // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1054,25 +1054,25 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %P.ref.loc7: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %C.ref.loc7: %C.type = name_ref C, imports.%P.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc7_34: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc7_34.1: = bound_method %int_0, %impl.elem0.loc7_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc7_34: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc7_34.1: = bound_method %int_0, %impl.elem0.loc7_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7_34, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_34.2: = bound_method %int_0, %specific_fn.loc7 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %i32 = call %bound_method.loc7_34.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc7_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc7_34.2: %i32 = converted %int_0, %.loc7_34.1 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %C.loc7: type = class_type @C, @C(constants.%int_0.62d) [concrete = constants.%C.429] -// CHECK:STDOUT: %.loc7_24.2: ref %C.429 = temporary_storage -// CHECK:STDOUT: %.loc7_24.3: init %C.429 to %.loc7_24.2 = class_init () [concrete = constants.%C.val.964] -// CHECK:STDOUT: %.loc7_26.1: init %C.429 = converted %.loc7_24.1, %.loc7_24.3 [concrete = constants.%C.val.964] -// CHECK:STDOUT: %impl.elem0.loc7_35: %.231 = impl_witness_access constants.%ImplicitAs.impl_witness.5cc, element0 [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.1] -// CHECK:STDOUT: %bound_method.loc7_35: = bound_method %.loc7_26.1, %impl.elem0.loc7_35 [concrete = constants.%C.as.ImplicitAs.impl.Convert.bound.e0e] +// CHECK:STDOUT: %bound_method.loc7_34.2: = bound_method %int_0, %specific_fn.loc7 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7: init %i32 = call %bound_method.loc7_34.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc7_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc7_34.2: %i32 = converted %int_0, %.loc7_34.1 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %C.loc7: type = class_type @C, @C(constants.%int_0.3c0) [concrete = constants.%C.771] +// CHECK:STDOUT: %.loc7_24.2: ref %C.771 = temporary_storage +// CHECK:STDOUT: %.loc7_24.3: init %C.771 to %.loc7_24.2 = class_init () [concrete = constants.%C.val.d9b] +// CHECK:STDOUT: %.loc7_26.1: init %C.771 = converted %.loc7_24.1, %.loc7_24.3 [concrete = constants.%C.val.d9b] +// CHECK:STDOUT: %impl.elem0.loc7_35: %.f28 = impl_witness_access constants.%ImplicitAs.impl_witness.39f, element0 [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.1] +// CHECK:STDOUT: %bound_method.loc7_35: = bound_method %.loc7_26.1, %impl.elem0.loc7_35 [concrete = constants.%C.as.ImplicitAs.impl.Convert.bound.d30] // CHECK:STDOUT: %.loc6_26.1: ref %D = splice_block %return.param {} -// CHECK:STDOUT: %.loc7_26.2: ref %C.429 = temporary %.loc7_24.2, %.loc7_26.1 [concrete = constants.%.34e] -// CHECK:STDOUT: %.loc7_26.3: %C.429 = acquire_value %.loc7_26.2 [concrete = constants.%C.val.964] +// CHECK:STDOUT: %.loc7_26.2: ref %C.771 = temporary %.loc7_24.2, %.loc7_26.1 [concrete = constants.%.de3] +// 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_26.1: init %empty_tuple.type = call constants.%Destroy.Op.bound.a0c(constants.%.34e) +// CHECK:STDOUT: %Destroy.Op.call.loc7_26.1: init %empty_tuple.type = call constants.%Destroy.Op.bound.234(constants.%.de3) // CHECK:STDOUT: return %.loc7_35 to %return.param // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc7: @@ -1084,26 +1084,26 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %P.ref.loc8: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %C.ref.loc8: %C.type = name_ref C, imports.%P.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc8_34: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc8_34.1: = bound_method %int_1, %impl.elem0.loc8_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc8_34: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc8_34.1: = bound_method %int_1, %impl.elem0.loc8_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8_34, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_34.2: = bound_method %int_1, %specific_fn.loc8 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %i32 = call %bound_method.loc8_34.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc8_34.2: %i32 = converted %int_1, %.loc8_34.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %C.loc8: type = class_type @C, @C(constants.%int_1.d9c) [concrete = constants.%C.ef8] -// CHECK:STDOUT: %.loc8_24.2: ref %C.ef8 = temporary_storage -// CHECK:STDOUT: %.loc8_24.3: init %C.ef8 to %.loc8_24.2 = class_init () [concrete = constants.%C.val.314] -// CHECK:STDOUT: %.loc8_26.1: init %C.ef8 = converted %.loc8_24.1, %.loc8_24.3 [concrete = constants.%C.val.314] -// CHECK:STDOUT: %impl.elem0.loc8_35: %.018 = impl_witness_access constants.%ImplicitAs.impl_witness.11f, element0 [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.2] -// CHECK:STDOUT: %bound_method.loc8_35: = bound_method %.loc8_26.1, %impl.elem0.loc8_35 [concrete = constants.%C.as.ImplicitAs.impl.Convert.bound.535] +// CHECK:STDOUT: %bound_method.loc8_34.2: = bound_method %int_1, %specific_fn.loc8 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8: init %i32 = call %bound_method.loc8_34.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc8_34.2: %i32 = converted %int_1, %.loc8_34.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %C.loc8: type = class_type @C, @C(constants.%int_1.0c6) [concrete = constants.%C.83b] +// CHECK:STDOUT: %.loc8_24.2: ref %C.83b = temporary_storage +// CHECK:STDOUT: %.loc8_24.3: init %C.83b to %.loc8_24.2 = class_init () [concrete = constants.%C.val.399] +// CHECK:STDOUT: %.loc8_26.1: init %C.83b = converted %.loc8_24.1, %.loc8_24.3 [concrete = constants.%C.val.399] +// CHECK:STDOUT: %impl.elem0.loc8_35: %.a7f = impl_witness_access constants.%ImplicitAs.impl_witness.d9f, element0 [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.2] +// CHECK:STDOUT: %bound_method.loc8_35: = bound_method %.loc8_26.1, %impl.elem0.loc8_35 [concrete = constants.%C.as.ImplicitAs.impl.Convert.bound.b85] // CHECK:STDOUT: %.loc6_26.2: ref %D = splice_block %return.param {} -// CHECK:STDOUT: %.loc8_26.2: ref %C.ef8 = temporary %.loc8_24.2, %.loc8_26.1 [concrete = constants.%.12d] -// CHECK:STDOUT: %.loc8_26.3: %C.ef8 = acquire_value %.loc8_26.2 [concrete = constants.%C.val.314] +// CHECK:STDOUT: %.loc8_26.2: ref %C.83b = temporary %.loc8_24.2, %.loc8_26.1 [concrete = constants.%.027] +// 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_26.1: init %empty_tuple.type = call constants.%Destroy.Op.bound.df7(constants.%.12d) -// CHECK:STDOUT: %Destroy.Op.call.loc7_26.2: init %empty_tuple.type = call constants.%Destroy.Op.bound.a0c(constants.%.34e) +// CHECK:STDOUT: %Destroy.Op.call.loc8_26.1: init %empty_tuple.type = call constants.%Destroy.Op.bound.d6e(constants.%.027) +// CHECK:STDOUT: %Destroy.Op.call.loc7_26.2: init %empty_tuple.type = call constants.%Destroy.Op.bound.234(constants.%.de3) // CHECK:STDOUT: return %.loc8_35 to %return.param // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc8: @@ -1115,27 +1115,27 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %P.ref.loc9: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %C.ref.loc9: %C.type = name_ref C, imports.%P.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc9_34: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc9_34.1: = bound_method %int_2, %impl.elem0.loc9_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %impl.elem0.loc9_34: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc9_34.1: = bound_method %int_2, %impl.elem0.loc9_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9_34, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_34.2: = bound_method %int_2, %specific_fn.loc9 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_34.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc9_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc9_34.2: %i32 = converted %int_2, %.loc9_34.1 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %C.loc9: type = class_type @C, @C(constants.%int_2.228) [concrete = constants.%C.834] -// CHECK:STDOUT: %.loc9_24.2: ref %C.834 = temporary_storage -// CHECK:STDOUT: %.loc9_24.3: init %C.834 to %.loc9_24.2 = class_init () [concrete = constants.%C.val.f91] -// CHECK:STDOUT: %.loc9_26.1: init %C.834 = converted %.loc9_24.1, %.loc9_24.3 [concrete = constants.%C.val.f91] -// CHECK:STDOUT: %impl.elem0.loc9_35: %.460 = impl_witness_access constants.%ImplicitAs.impl_witness.5bb, element0 [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.3] -// CHECK:STDOUT: %bound_method.loc9_35: = bound_method %.loc9_26.1, %impl.elem0.loc9_35 [concrete = constants.%C.as.ImplicitAs.impl.Convert.bound.37d] +// CHECK:STDOUT: %bound_method.loc9_34.2: = bound_method %int_2, %specific_fn.loc9 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_34.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc9_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc9_34.2: %i32 = converted %int_2, %.loc9_34.1 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %C.loc9: type = class_type @C, @C(constants.%int_2.295) [concrete = constants.%C.5ce] +// CHECK:STDOUT: %.loc9_24.2: ref %C.5ce = temporary_storage +// CHECK:STDOUT: %.loc9_24.3: init %C.5ce to %.loc9_24.2 = class_init () [concrete = constants.%C.val.040] +// CHECK:STDOUT: %.loc9_26.1: init %C.5ce = converted %.loc9_24.1, %.loc9_24.3 [concrete = constants.%C.val.040] +// CHECK:STDOUT: %impl.elem0.loc9_35: %.8f7 = impl_witness_access constants.%ImplicitAs.impl_witness.409, element0 [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.3] +// CHECK:STDOUT: %bound_method.loc9_35: = bound_method %.loc9_26.1, %impl.elem0.loc9_35 [concrete = constants.%C.as.ImplicitAs.impl.Convert.bound.468] // CHECK:STDOUT: %.loc6_26.3: ref %D = splice_block %return.param {} -// CHECK:STDOUT: %.loc9_26.2: ref %C.834 = temporary %.loc9_24.2, %.loc9_26.1 [concrete = constants.%.29a] -// CHECK:STDOUT: %.loc9_26.3: %C.834 = acquire_value %.loc9_26.2 [concrete = constants.%C.val.f91] +// CHECK:STDOUT: %.loc9_26.2: ref %C.5ce = temporary %.loc9_24.2, %.loc9_26.1 [concrete = constants.%.ed7] +// 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_26.1: init %empty_tuple.type = call constants.%Destroy.Op.bound.852(constants.%.29a) -// CHECK:STDOUT: %Destroy.Op.call.loc8_26.2: init %empty_tuple.type = call constants.%Destroy.Op.bound.df7(constants.%.12d) -// CHECK:STDOUT: %Destroy.Op.call.loc7_26.3: init %empty_tuple.type = call constants.%Destroy.Op.bound.a0c(constants.%.34e) +// CHECK:STDOUT: %Destroy.Op.call.loc9_26.1: init %empty_tuple.type = call constants.%Destroy.Op.bound.458(constants.%.ed7) +// CHECK:STDOUT: %Destroy.Op.call.loc8_26.2: init %empty_tuple.type = call constants.%Destroy.Op.bound.d6e(constants.%.027) +// CHECK:STDOUT: %Destroy.Op.call.loc7_26.3: init %empty_tuple.type = call constants.%Destroy.Op.bound.234(constants.%.de3) // CHECK:STDOUT: return %.loc9_35 to %return.param // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc9: @@ -1147,28 +1147,28 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %P.ref.loc10: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %C.ref.loc10: %C.type = name_ref C, imports.%P.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc10_34: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc10_34.1: = bound_method %int_3, %impl.elem0.loc10_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.8c0] +// CHECK:STDOUT: %impl.elem0.loc10_34: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc10_34.1: = bound_method %int_3, %impl.elem0.loc10_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485] // CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_34, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_34.2: = bound_method %int_3, %specific_fn.loc10 [concrete = constants.%bound_method.655] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10: init %i32 = call %bound_method.loc10_34.2(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc10_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc10_34.2: %i32 = converted %int_3, %.loc10_34.1 [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %C.loc10: type = class_type @C, @C(constants.%int_3.6cc) [concrete = constants.%C.888] -// CHECK:STDOUT: %.loc10_24.2: ref %C.888 = temporary_storage -// CHECK:STDOUT: %.loc10_24.3: init %C.888 to %.loc10_24.2 = class_init () [concrete = constants.%C.val.4fc] -// CHECK:STDOUT: %.loc10_26.1: init %C.888 = converted %.loc10_24.1, %.loc10_24.3 [concrete = constants.%C.val.4fc] -// CHECK:STDOUT: %impl.elem0.loc10_35: %.fa8 = impl_witness_access constants.%ImplicitAs.impl_witness.e44, element0 [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.4] -// CHECK:STDOUT: %bound_method.loc10_35: = bound_method %.loc10_26.1, %impl.elem0.loc10_35 [concrete = constants.%C.as.ImplicitAs.impl.Convert.bound.452] +// CHECK:STDOUT: %bound_method.loc10_34.2: = bound_method %int_3, %specific_fn.loc10 [concrete = constants.%bound_method.763] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10: init %i32 = call %bound_method.loc10_34.2(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc10_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc10_34.2: %i32 = converted %int_3, %.loc10_34.1 [concrete = constants.%int_3.410] +// CHECK:STDOUT: %C.loc10: type = class_type @C, @C(constants.%int_3.410) [concrete = constants.%C.b3e] +// CHECK:STDOUT: %.loc10_24.2: ref %C.b3e = temporary_storage +// CHECK:STDOUT: %.loc10_24.3: init %C.b3e to %.loc10_24.2 = class_init () [concrete = constants.%C.val.cf1] +// CHECK:STDOUT: %.loc10_26.1: init %C.b3e = converted %.loc10_24.1, %.loc10_24.3 [concrete = constants.%C.val.cf1] +// CHECK:STDOUT: %impl.elem0.loc10_35: %.8eb = impl_witness_access constants.%ImplicitAs.impl_witness.69a, element0 [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.4] +// CHECK:STDOUT: %bound_method.loc10_35: = bound_method %.loc10_26.1, %impl.elem0.loc10_35 [concrete = constants.%C.as.ImplicitAs.impl.Convert.bound.891] // CHECK:STDOUT: %.loc6_26.4: ref %D = splice_block %return.param {} -// CHECK:STDOUT: %.loc10_26.2: ref %C.888 = temporary %.loc10_24.2, %.loc10_26.1 [concrete = constants.%.160] -// CHECK:STDOUT: %.loc10_26.3: %C.888 = acquire_value %.loc10_26.2 [concrete = constants.%C.val.4fc] +// CHECK:STDOUT: %.loc10_26.2: ref %C.b3e = temporary %.loc10_24.2, %.loc10_26.1 [concrete = constants.%.dc8] +// 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_26.1: init %empty_tuple.type = call constants.%Destroy.Op.bound.3cd(constants.%.160) -// CHECK:STDOUT: %Destroy.Op.call.loc9_26.2: init %empty_tuple.type = call constants.%Destroy.Op.bound.852(constants.%.29a) -// CHECK:STDOUT: %Destroy.Op.call.loc8_26.3: init %empty_tuple.type = call constants.%Destroy.Op.bound.df7(constants.%.12d) -// CHECK:STDOUT: %Destroy.Op.call.loc7_26.4: init %empty_tuple.type = call constants.%Destroy.Op.bound.a0c(constants.%.34e) +// CHECK:STDOUT: %Destroy.Op.call.loc10_26.1: init %empty_tuple.type = call constants.%Destroy.Op.bound.5e3(constants.%.dc8) +// CHECK:STDOUT: %Destroy.Op.call.loc9_26.2: init %empty_tuple.type = call constants.%Destroy.Op.bound.458(constants.%.ed7) +// CHECK:STDOUT: %Destroy.Op.call.loc8_26.3: init %empty_tuple.type = call constants.%Destroy.Op.bound.d6e(constants.%.027) +// CHECK:STDOUT: %Destroy.Op.call.loc7_26.4: init %empty_tuple.type = call constants.%Destroy.Op.bound.234(constants.%.de3) // CHECK:STDOUT: return %.loc10_35 to %return.param // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc10: @@ -1180,29 +1180,29 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %P.ref.loc11: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %C.ref.loc11: %C.type = name_ref C, imports.%P.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc11_34: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc11_34.1: = bound_method %int_4, %impl.elem0.loc11_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.afe] +// CHECK:STDOUT: %impl.elem0.loc11_34: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc11_34.1: = bound_method %int_4, %impl.elem0.loc11_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad] // CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11_34, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_34.2: = bound_method %int_4, %specific_fn.loc11 [concrete = constants.%bound_method.9f5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11: init %i32 = call %bound_method.loc11_34.2(%int_4) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc11_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11 [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc11_34.2: %i32 = converted %int_4, %.loc11_34.1 [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %C.loc11: type = class_type @C, @C(constants.%int_4.a4d) [concrete = constants.%C.925] -// CHECK:STDOUT: %.loc11_24.2: ref %C.925 = temporary_storage -// CHECK:STDOUT: %.loc11_24.3: init %C.925 to %.loc11_24.2 = class_init () [concrete = constants.%C.val.ff3] -// CHECK:STDOUT: %.loc11_26.1: init %C.925 = converted %.loc11_24.1, %.loc11_24.3 [concrete = constants.%C.val.ff3] -// CHECK:STDOUT: %impl.elem0.loc11_35: %.686 = impl_witness_access constants.%ImplicitAs.impl_witness.2e1, element0 [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.5] -// CHECK:STDOUT: %bound_method.loc11_35: = bound_method %.loc11_26.1, %impl.elem0.loc11_35 [concrete = constants.%C.as.ImplicitAs.impl.Convert.bound.3f4] +// CHECK:STDOUT: %bound_method.loc11_34.2: = bound_method %int_4, %specific_fn.loc11 [concrete = constants.%bound_method.b7a] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11: init %i32 = call %bound_method.loc11_34.2(%int_4) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc11_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc11 [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc11_34.2: %i32 = converted %int_4, %.loc11_34.1 [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %C.loc11: type = class_type @C, @C(constants.%int_4.4eb) [concrete = constants.%C.8ee] +// CHECK:STDOUT: %.loc11_24.2: ref %C.8ee = temporary_storage +// CHECK:STDOUT: %.loc11_24.3: init %C.8ee to %.loc11_24.2 = class_init () [concrete = constants.%C.val.19e] +// CHECK:STDOUT: %.loc11_26.1: init %C.8ee = converted %.loc11_24.1, %.loc11_24.3 [concrete = constants.%C.val.19e] +// CHECK:STDOUT: %impl.elem0.loc11_35: %.9db = impl_witness_access constants.%ImplicitAs.impl_witness.af6, element0 [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.5] +// CHECK:STDOUT: %bound_method.loc11_35: = bound_method %.loc11_26.1, %impl.elem0.loc11_35 [concrete = constants.%C.as.ImplicitAs.impl.Convert.bound.65e] // CHECK:STDOUT: %.loc6_26.5: ref %D = splice_block %return.param {} -// CHECK:STDOUT: %.loc11_26.2: ref %C.925 = temporary %.loc11_24.2, %.loc11_26.1 [concrete = constants.%.db5] -// CHECK:STDOUT: %.loc11_26.3: %C.925 = acquire_value %.loc11_26.2 [concrete = constants.%C.val.ff3] +// CHECK:STDOUT: %.loc11_26.2: ref %C.8ee = temporary %.loc11_24.2, %.loc11_26.1 [concrete = constants.%.054] +// 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_26.1: init %empty_tuple.type = call constants.%Destroy.Op.bound.fb1(constants.%.db5) -// CHECK:STDOUT: %Destroy.Op.call.loc10_26.2: init %empty_tuple.type = call constants.%Destroy.Op.bound.3cd(constants.%.160) -// CHECK:STDOUT: %Destroy.Op.call.loc9_26.3: init %empty_tuple.type = call constants.%Destroy.Op.bound.852(constants.%.29a) -// CHECK:STDOUT: %Destroy.Op.call.loc8_26.4: init %empty_tuple.type = call constants.%Destroy.Op.bound.df7(constants.%.12d) -// CHECK:STDOUT: %Destroy.Op.call.loc7_26.5: init %empty_tuple.type = call constants.%Destroy.Op.bound.a0c(constants.%.34e) +// CHECK:STDOUT: %Destroy.Op.call.loc11_26.1: init %empty_tuple.type = call constants.%Destroy.Op.bound.670(constants.%.054) +// CHECK:STDOUT: %Destroy.Op.call.loc10_26.2: init %empty_tuple.type = call constants.%Destroy.Op.bound.5e3(constants.%.dc8) +// CHECK:STDOUT: %Destroy.Op.call.loc9_26.3: init %empty_tuple.type = call constants.%Destroy.Op.bound.458(constants.%.ed7) +// CHECK:STDOUT: %Destroy.Op.call.loc8_26.4: init %empty_tuple.type = call constants.%Destroy.Op.bound.d6e(constants.%.027) +// CHECK:STDOUT: %Destroy.Op.call.loc7_26.5: init %empty_tuple.type = call constants.%Destroy.Op.bound.234(constants.%.de3) // CHECK:STDOUT: return %.loc11_35 to %return.param // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc11: @@ -1214,30 +1214,30 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %P.ref.loc12: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %C.ref.loc12: %C.type = name_ref C, imports.%P.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0.loc12_34: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc12_34.1: = bound_method %int_5, %impl.elem0.loc12_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.55c] +// CHECK:STDOUT: %impl.elem0.loc12_34: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc12_34.1: = bound_method %int_5, %impl.elem0.loc12_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f6c] // CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12_34, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc12_34.2: = bound_method %int_5, %specific_fn.loc12 [concrete = constants.%bound_method.e3e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12: init %i32 = call %bound_method.loc12_34.2(%int_5) [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc12_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %.loc12_34.2: %i32 = converted %int_5, %.loc12_34.1 [concrete = constants.%int_5.354] -// CHECK:STDOUT: %C.loc12: type = class_type @C, @C(constants.%int_5.354) [concrete = constants.%C.332] -// CHECK:STDOUT: %.loc12_24.2: ref %C.332 = temporary_storage -// CHECK:STDOUT: %.loc12_24.3: init %C.332 to %.loc12_24.2 = class_init () [concrete = constants.%C.val.5b6] -// CHECK:STDOUT: %.loc12_26.1: init %C.332 = converted %.loc12_24.1, %.loc12_24.3 [concrete = constants.%C.val.5b6] -// CHECK:STDOUT: %impl.elem0.loc12_35: %.1f6 = impl_witness_access constants.%ImplicitAs.impl_witness.6f8, element0 [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.6] -// CHECK:STDOUT: %bound_method.loc12_35: = bound_method %.loc12_26.1, %impl.elem0.loc12_35 [concrete = constants.%C.as.ImplicitAs.impl.Convert.bound.761] +// CHECK:STDOUT: %bound_method.loc12_34.2: = bound_method %int_5, %specific_fn.loc12 [concrete = constants.%bound_method.c9d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12: init %i32 = call %bound_method.loc12_34.2(%int_5) [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc12_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %.loc12_34.2: %i32 = converted %int_5, %.loc12_34.1 [concrete = constants.%int_5.eef] +// CHECK:STDOUT: %C.loc12: type = class_type @C, @C(constants.%int_5.eef) [concrete = constants.%C.5c1] +// CHECK:STDOUT: %.loc12_24.2: ref %C.5c1 = temporary_storage +// CHECK:STDOUT: %.loc12_24.3: init %C.5c1 to %.loc12_24.2 = class_init () [concrete = constants.%C.val.6ca] +// CHECK:STDOUT: %.loc12_26.1: init %C.5c1 = converted %.loc12_24.1, %.loc12_24.3 [concrete = constants.%C.val.6ca] +// CHECK:STDOUT: %impl.elem0.loc12_35: %.cf1 = impl_witness_access constants.%ImplicitAs.impl_witness.b0e, element0 [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.6] +// CHECK:STDOUT: %bound_method.loc12_35: = bound_method %.loc12_26.1, %impl.elem0.loc12_35 [concrete = constants.%C.as.ImplicitAs.impl.Convert.bound.c06] // CHECK:STDOUT: %.loc6_26.6: ref %D = splice_block %return.param {} -// CHECK:STDOUT: %.loc12_26.2: ref %C.332 = temporary %.loc12_24.2, %.loc12_26.1 [concrete = constants.%.c3d] -// CHECK:STDOUT: %.loc12_26.3: %C.332 = acquire_value %.loc12_26.2 [concrete = constants.%C.val.5b6] +// CHECK:STDOUT: %.loc12_26.2: ref %C.5c1 = temporary %.loc12_24.2, %.loc12_26.1 [concrete = constants.%.6f6] +// 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_26.1: init %empty_tuple.type = call constants.%Destroy.Op.bound.d18(constants.%.c3d) -// CHECK:STDOUT: %Destroy.Op.call.loc11_26.2: init %empty_tuple.type = call constants.%Destroy.Op.bound.fb1(constants.%.db5) -// CHECK:STDOUT: %Destroy.Op.call.loc10_26.3: init %empty_tuple.type = call constants.%Destroy.Op.bound.3cd(constants.%.160) -// CHECK:STDOUT: %Destroy.Op.call.loc9_26.4: init %empty_tuple.type = call constants.%Destroy.Op.bound.852(constants.%.29a) -// CHECK:STDOUT: %Destroy.Op.call.loc8_26.5: init %empty_tuple.type = call constants.%Destroy.Op.bound.df7(constants.%.12d) -// CHECK:STDOUT: %Destroy.Op.call.loc7_26.6: init %empty_tuple.type = call constants.%Destroy.Op.bound.a0c(constants.%.34e) +// CHECK:STDOUT: %Destroy.Op.call.loc12_26.1: init %empty_tuple.type = call constants.%Destroy.Op.bound.443(constants.%.6f6) +// CHECK:STDOUT: %Destroy.Op.call.loc11_26.2: init %empty_tuple.type = call constants.%Destroy.Op.bound.670(constants.%.054) +// CHECK:STDOUT: %Destroy.Op.call.loc10_26.3: init %empty_tuple.type = call constants.%Destroy.Op.bound.5e3(constants.%.dc8) +// CHECK:STDOUT: %Destroy.Op.call.loc9_26.4: init %empty_tuple.type = call constants.%Destroy.Op.bound.458(constants.%.ed7) +// CHECK:STDOUT: %Destroy.Op.call.loc8_26.5: init %empty_tuple.type = call constants.%Destroy.Op.bound.d6e(constants.%.027) +// CHECK:STDOUT: %Destroy.Op.call.loc7_26.6: init %empty_tuple.type = call constants.%Destroy.Op.bound.234(constants.%.de3) // CHECK:STDOUT: return %.loc12_35 to %return.param // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc12: @@ -1249,31 +1249,31 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %P.ref.loc13: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %C.ref.loc13: %C.type = name_ref C, imports.%P.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [concrete = constants.%int_6.462] -// CHECK:STDOUT: %impl.elem0.loc13_34: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc13_34.1: = bound_method %int_6, %impl.elem0.loc13_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.6e4] +// CHECK:STDOUT: %impl.elem0.loc13_34: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc13_34.1: = bound_method %int_6, %impl.elem0.loc13_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.13d] // CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_34, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc13_34.2: = bound_method %int_6, %specific_fn.loc13 [concrete = constants.%bound_method.50f] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13: init %i32 = call %bound_method.loc13_34.2(%int_6) [concrete = constants.%int_6.77d] -// CHECK:STDOUT: %.loc13_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13 [concrete = constants.%int_6.77d] -// CHECK:STDOUT: %.loc13_34.2: %i32 = converted %int_6, %.loc13_34.1 [concrete = constants.%int_6.77d] -// CHECK:STDOUT: %C.loc13: type = class_type @C, @C(constants.%int_6.77d) [concrete = constants.%C.771] -// CHECK:STDOUT: %.loc13_24.2: ref %C.771 = temporary_storage -// CHECK:STDOUT: %.loc13_24.3: init %C.771 to %.loc13_24.2 = class_init () [concrete = constants.%C.val.6cb] -// CHECK:STDOUT: %.loc13_26.1: init %C.771 = converted %.loc13_24.1, %.loc13_24.3 [concrete = constants.%C.val.6cb] -// CHECK:STDOUT: %impl.elem0.loc13_35: %.f87 = impl_witness_access constants.%ImplicitAs.impl_witness.c87, element0 [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.7] -// CHECK:STDOUT: %bound_method.loc13_35: = bound_method %.loc13_26.1, %impl.elem0.loc13_35 [concrete = constants.%C.as.ImplicitAs.impl.Convert.bound.17f] +// CHECK:STDOUT: %bound_method.loc13_34.2: = bound_method %int_6, %specific_fn.loc13 [concrete = constants.%bound_method.be9] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13: init %i32 = call %bound_method.loc13_34.2(%int_6) [concrete = constants.%int_6.439] +// CHECK:STDOUT: %.loc13_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13 [concrete = constants.%int_6.439] +// CHECK:STDOUT: %.loc13_34.2: %i32 = converted %int_6, %.loc13_34.1 [concrete = constants.%int_6.439] +// CHECK:STDOUT: %C.loc13: type = class_type @C, @C(constants.%int_6.439) [concrete = constants.%C.57b] +// CHECK:STDOUT: %.loc13_24.2: ref %C.57b = temporary_storage +// CHECK:STDOUT: %.loc13_24.3: init %C.57b to %.loc13_24.2 = class_init () [concrete = constants.%C.val.225] +// CHECK:STDOUT: %.loc13_26.1: init %C.57b = converted %.loc13_24.1, %.loc13_24.3 [concrete = constants.%C.val.225] +// CHECK:STDOUT: %impl.elem0.loc13_35: %.68f = impl_witness_access constants.%ImplicitAs.impl_witness.4cc, element0 [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.7] +// CHECK:STDOUT: %bound_method.loc13_35: = bound_method %.loc13_26.1, %impl.elem0.loc13_35 [concrete = constants.%C.as.ImplicitAs.impl.Convert.bound.edd] // CHECK:STDOUT: %.loc6_26.7: ref %D = splice_block %return.param {} -// CHECK:STDOUT: %.loc13_26.2: ref %C.771 = temporary %.loc13_24.2, %.loc13_26.1 [concrete = constants.%.7c7] -// CHECK:STDOUT: %.loc13_26.3: %C.771 = acquire_value %.loc13_26.2 [concrete = constants.%C.val.6cb] +// CHECK:STDOUT: %.loc13_26.2: ref %C.57b = temporary %.loc13_24.2, %.loc13_26.1 [concrete = constants.%.fa8] +// 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_26.1: init %empty_tuple.type = call constants.%Destroy.Op.bound.121(constants.%.7c7) -// CHECK:STDOUT: %Destroy.Op.call.loc12_26.2: init %empty_tuple.type = call constants.%Destroy.Op.bound.d18(constants.%.c3d) -// CHECK:STDOUT: %Destroy.Op.call.loc11_26.3: init %empty_tuple.type = call constants.%Destroy.Op.bound.fb1(constants.%.db5) -// CHECK:STDOUT: %Destroy.Op.call.loc10_26.4: init %empty_tuple.type = call constants.%Destroy.Op.bound.3cd(constants.%.160) -// CHECK:STDOUT: %Destroy.Op.call.loc9_26.5: init %empty_tuple.type = call constants.%Destroy.Op.bound.852(constants.%.29a) -// CHECK:STDOUT: %Destroy.Op.call.loc8_26.6: init %empty_tuple.type = call constants.%Destroy.Op.bound.df7(constants.%.12d) -// CHECK:STDOUT: %Destroy.Op.call.loc7_26.7: init %empty_tuple.type = call constants.%Destroy.Op.bound.a0c(constants.%.34e) +// CHECK:STDOUT: %Destroy.Op.call.loc13_26.1: init %empty_tuple.type = call constants.%Destroy.Op.bound.742(constants.%.fa8) +// CHECK:STDOUT: %Destroy.Op.call.loc12_26.2: init %empty_tuple.type = call constants.%Destroy.Op.bound.443(constants.%.6f6) +// CHECK:STDOUT: %Destroy.Op.call.loc11_26.3: init %empty_tuple.type = call constants.%Destroy.Op.bound.670(constants.%.054) +// CHECK:STDOUT: %Destroy.Op.call.loc10_26.4: init %empty_tuple.type = call constants.%Destroy.Op.bound.5e3(constants.%.dc8) +// CHECK:STDOUT: %Destroy.Op.call.loc9_26.5: init %empty_tuple.type = call constants.%Destroy.Op.bound.458(constants.%.ed7) +// CHECK:STDOUT: %Destroy.Op.call.loc8_26.6: init %empty_tuple.type = call constants.%Destroy.Op.bound.d6e(constants.%.027) +// CHECK:STDOUT: %Destroy.Op.call.loc7_26.7: init %empty_tuple.type = call constants.%Destroy.Op.bound.234(constants.%.de3) // CHECK:STDOUT: return %.loc13_35 to %return.param // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc13: @@ -1285,32 +1285,32 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %P.ref.loc14: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %C.ref.loc14: %C.type = name_ref C, imports.%P.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_7: Core.IntLiteral = int_value 7 [concrete = constants.%int_7.29f] -// CHECK:STDOUT: %impl.elem0.loc14_34: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc14_34.1: = bound_method %int_7, %impl.elem0.loc14_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.286] +// CHECK:STDOUT: %impl.elem0.loc14_34: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc14_34.1: = bound_method %int_7, %impl.elem0.loc14_34 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.66b] // CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14_34, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc14_34.2: = bound_method %int_7, %specific_fn.loc14 [concrete = constants.%bound_method.936] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14: init %i32 = call %bound_method.loc14_34.2(%int_7) [concrete = constants.%int_7.c44] -// CHECK:STDOUT: %.loc14_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14 [concrete = constants.%int_7.c44] -// CHECK:STDOUT: %.loc14_34.2: %i32 = converted %int_7, %.loc14_34.1 [concrete = constants.%int_7.c44] -// CHECK:STDOUT: %C.loc14: type = class_type @C, @C(constants.%int_7.c44) [concrete = constants.%C.19e] -// CHECK:STDOUT: %.loc14_24.2: ref %C.19e = temporary_storage -// CHECK:STDOUT: %.loc14_24.3: init %C.19e to %.loc14_24.2 = class_init () [concrete = constants.%C.val.793] -// CHECK:STDOUT: %.loc14_26.1: init %C.19e = converted %.loc14_24.1, %.loc14_24.3 [concrete = constants.%C.val.793] -// CHECK:STDOUT: %impl.elem0.loc14_35: %.b7c = impl_witness_access constants.%ImplicitAs.impl_witness.475, element0 [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.8] -// CHECK:STDOUT: %bound_method.loc14_35: = bound_method %.loc14_26.1, %impl.elem0.loc14_35 [concrete = constants.%C.as.ImplicitAs.impl.Convert.bound.24e] +// CHECK:STDOUT: %bound_method.loc14_34.2: = bound_method %int_7, %specific_fn.loc14 [concrete = constants.%bound_method.7ff] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14: init %i32 = call %bound_method.loc14_34.2(%int_7) [concrete = constants.%int_7.690] +// CHECK:STDOUT: %.loc14_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc14 [concrete = constants.%int_7.690] +// CHECK:STDOUT: %.loc14_34.2: %i32 = converted %int_7, %.loc14_34.1 [concrete = constants.%int_7.690] +// CHECK:STDOUT: %C.loc14: type = class_type @C, @C(constants.%int_7.690) [concrete = constants.%C.b0a] +// CHECK:STDOUT: %.loc14_24.2: ref %C.b0a = temporary_storage +// CHECK:STDOUT: %.loc14_24.3: init %C.b0a to %.loc14_24.2 = class_init () [concrete = constants.%C.val.79c] +// CHECK:STDOUT: %.loc14_26.1: init %C.b0a = converted %.loc14_24.1, %.loc14_24.3 [concrete = constants.%C.val.79c] +// CHECK:STDOUT: %impl.elem0.loc14_35: %.eb8 = impl_witness_access constants.%ImplicitAs.impl_witness.82a, element0 [concrete = constants.%C.as.ImplicitAs.impl.Convert.3cefb0.8] +// CHECK:STDOUT: %bound_method.loc14_35: = bound_method %.loc14_26.1, %impl.elem0.loc14_35 [concrete = constants.%C.as.ImplicitAs.impl.Convert.bound.a06] // CHECK:STDOUT: %.loc6_26.8: ref %D = splice_block %return.param {} -// CHECK:STDOUT: %.loc14_26.2: ref %C.19e = temporary %.loc14_24.2, %.loc14_26.1 [concrete = constants.%.a8b] -// CHECK:STDOUT: %.loc14_26.3: %C.19e = acquire_value %.loc14_26.2 [concrete = constants.%C.val.793] +// CHECK:STDOUT: %.loc14_26.2: ref %C.b0a = temporary %.loc14_24.2, %.loc14_26.1 [concrete = constants.%.a0a] +// 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_26.1: init %empty_tuple.type = call constants.%Destroy.Op.bound.46d(constants.%.a8b) -// CHECK:STDOUT: %Destroy.Op.call.loc13_26.2: init %empty_tuple.type = call constants.%Destroy.Op.bound.121(constants.%.7c7) -// CHECK:STDOUT: %Destroy.Op.call.loc12_26.3: init %empty_tuple.type = call constants.%Destroy.Op.bound.d18(constants.%.c3d) -// CHECK:STDOUT: %Destroy.Op.call.loc11_26.4: init %empty_tuple.type = call constants.%Destroy.Op.bound.fb1(constants.%.db5) -// CHECK:STDOUT: %Destroy.Op.call.loc10_26.5: init %empty_tuple.type = call constants.%Destroy.Op.bound.3cd(constants.%.160) -// CHECK:STDOUT: %Destroy.Op.call.loc9_26.6: init %empty_tuple.type = call constants.%Destroy.Op.bound.852(constants.%.29a) -// CHECK:STDOUT: %Destroy.Op.call.loc8_26.7: init %empty_tuple.type = call constants.%Destroy.Op.bound.df7(constants.%.12d) -// CHECK:STDOUT: %Destroy.Op.call.loc7_26.8: init %empty_tuple.type = call constants.%Destroy.Op.bound.a0c(constants.%.34e) +// CHECK:STDOUT: %Destroy.Op.call.loc14_26.1: init %empty_tuple.type = call constants.%Destroy.Op.bound.e4a(constants.%.a0a) +// CHECK:STDOUT: %Destroy.Op.call.loc13_26.2: init %empty_tuple.type = call constants.%Destroy.Op.bound.742(constants.%.fa8) +// CHECK:STDOUT: %Destroy.Op.call.loc12_26.3: init %empty_tuple.type = call constants.%Destroy.Op.bound.443(constants.%.6f6) +// CHECK:STDOUT: %Destroy.Op.call.loc11_26.4: init %empty_tuple.type = call constants.%Destroy.Op.bound.670(constants.%.054) +// CHECK:STDOUT: %Destroy.Op.call.loc10_26.5: init %empty_tuple.type = call constants.%Destroy.Op.bound.5e3(constants.%.dc8) +// CHECK:STDOUT: %Destroy.Op.call.loc9_26.6: init %empty_tuple.type = call constants.%Destroy.Op.bound.458(constants.%.ed7) +// CHECK:STDOUT: %Destroy.Op.call.loc8_26.7: init %empty_tuple.type = call constants.%Destroy.Op.bound.d6e(constants.%.027) +// CHECK:STDOUT: %Destroy.Op.call.loc7_26.8: init %empty_tuple.type = call constants.%Destroy.Op.bound.234(constants.%.de3) // CHECK:STDOUT: return %.loc14_35 to %return.param // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc14: @@ -1318,14 +1318,14 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, imports.%P.Make [concrete = constants.%Make] // CHECK:STDOUT: %.loc6_26.9: ref %D = splice_block %return.param {} // CHECK:STDOUT: %Make.call: init %D to %.loc6_26.9 = call %Make.ref() -// CHECK:STDOUT: %Destroy.Op.call.loc14_26.2: init %empty_tuple.type = call constants.%Destroy.Op.bound.46d(constants.%.a8b) -// CHECK:STDOUT: %Destroy.Op.call.loc13_26.3: init %empty_tuple.type = call constants.%Destroy.Op.bound.121(constants.%.7c7) -// CHECK:STDOUT: %Destroy.Op.call.loc12_26.4: init %empty_tuple.type = call constants.%Destroy.Op.bound.d18(constants.%.c3d) -// CHECK:STDOUT: %Destroy.Op.call.loc11_26.5: init %empty_tuple.type = call constants.%Destroy.Op.bound.fb1(constants.%.db5) -// CHECK:STDOUT: %Destroy.Op.call.loc10_26.6: init %empty_tuple.type = call constants.%Destroy.Op.bound.3cd(constants.%.160) -// CHECK:STDOUT: %Destroy.Op.call.loc9_26.7: init %empty_tuple.type = call constants.%Destroy.Op.bound.852(constants.%.29a) -// CHECK:STDOUT: %Destroy.Op.call.loc8_26.8: init %empty_tuple.type = call constants.%Destroy.Op.bound.df7(constants.%.12d) -// CHECK:STDOUT: %Destroy.Op.call.loc7_26.9: init %empty_tuple.type = call constants.%Destroy.Op.bound.a0c(constants.%.34e) +// CHECK:STDOUT: %Destroy.Op.call.loc14_26.2: init %empty_tuple.type = call constants.%Destroy.Op.bound.e4a(constants.%.a0a) +// CHECK:STDOUT: %Destroy.Op.call.loc13_26.3: init %empty_tuple.type = call constants.%Destroy.Op.bound.742(constants.%.fa8) +// CHECK:STDOUT: %Destroy.Op.call.loc12_26.4: init %empty_tuple.type = call constants.%Destroy.Op.bound.443(constants.%.6f6) +// CHECK:STDOUT: %Destroy.Op.call.loc11_26.5: init %empty_tuple.type = call constants.%Destroy.Op.bound.670(constants.%.054) +// CHECK:STDOUT: %Destroy.Op.call.loc10_26.6: init %empty_tuple.type = call constants.%Destroy.Op.bound.5e3(constants.%.dc8) +// CHECK:STDOUT: %Destroy.Op.call.loc9_26.7: init %empty_tuple.type = call constants.%Destroy.Op.bound.458(constants.%.ed7) +// CHECK:STDOUT: %Destroy.Op.call.loc8_26.8: init %empty_tuple.type = call constants.%Destroy.Op.bound.d6e(constants.%.027) +// CHECK:STDOUT: %Destroy.Op.call.loc7_26.9: init %empty_tuple.type = call constants.%Destroy.Op.bound.234(constants.%.de3) // CHECK:STDOUT: return %Make.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1333,110 +1333,110 @@ fn F0(unused n: i32) -> P.D { // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.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.429) { +// CHECK:STDOUT: fn @Destroy.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.ef8) { +// CHECK:STDOUT: fn @Destroy.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.834) { +// CHECK:STDOUT: fn @Destroy.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.888) { +// CHECK:STDOUT: fn @Destroy.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.925) { +// CHECK:STDOUT: fn @Destroy.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.332) { +// CHECK:STDOUT: fn @Destroy.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.771) { +// CHECK:STDOUT: fn @Destroy.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.19e) { +// CHECK:STDOUT: fn @Destroy.Op.loc14(%self.param: ref %C.b0a) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Make [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%N.bbe) { -// CHECK:STDOUT: %N => constants.%N.bbe +// CHECK:STDOUT: specific @C(constants.%N.37f) { +// CHECK:STDOUT: %N => constants.%N.37f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_0.62d) { -// CHECK:STDOUT: %N => constants.%int_0.62d +// CHECK:STDOUT: specific @C(constants.%int_0.3c0) { +// CHECK:STDOUT: %N => constants.%int_0.3c0 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_1.d9c) { -// CHECK:STDOUT: %N => constants.%int_1.d9c +// CHECK:STDOUT: specific @C(constants.%int_1.0c6) { +// CHECK:STDOUT: %N => constants.%int_1.0c6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_2.228) { -// CHECK:STDOUT: %N => constants.%int_2.228 +// CHECK:STDOUT: specific @C(constants.%int_2.295) { +// CHECK:STDOUT: %N => constants.%int_2.295 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_3.6cc) { -// CHECK:STDOUT: %N => constants.%int_3.6cc +// CHECK:STDOUT: specific @C(constants.%int_3.410) { +// CHECK:STDOUT: %N => constants.%int_3.410 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_4.a4d) { -// CHECK:STDOUT: %N => constants.%int_4.a4d +// CHECK:STDOUT: specific @C(constants.%int_4.4eb) { +// CHECK:STDOUT: %N => constants.%int_4.4eb // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_5.354) { -// CHECK:STDOUT: %N => constants.%int_5.354 +// CHECK:STDOUT: specific @C(constants.%int_5.eef) { +// CHECK:STDOUT: %N => constants.%int_5.eef // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_6.77d) { -// CHECK:STDOUT: %N => constants.%int_6.77d +// CHECK:STDOUT: specific @C(constants.%int_6.439) { +// CHECK:STDOUT: %N => constants.%int_6.439 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%int_7.c44) { -// CHECK:STDOUT: %N => constants.%int_7.c44 +// CHECK:STDOUT: specific @C(constants.%int_7.690) { +// CHECK:STDOUT: %N => constants.%int_7.690 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/returned_var.carbon b/toolchain/check/testdata/return/returned_var.carbon index 7bed0eb559fa..7cb382d1d4d9 100644 --- a/toolchain/check/testdata/return/returned_var.carbon +++ b/toolchain/check/testdata/return/returned_var.carbon @@ -37,48 +37,48 @@ fn G() -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [concrete] -// CHECK:STDOUT: %struct_type.a.b.b47: type = struct_type {.a: %i32, .b: %i32} [concrete] -// CHECK:STDOUT: %complete_type.abf: = complete_type_witness %struct_type.a.b.b47 [concrete] -// CHECK:STDOUT: %.8f0: Core.Form = init_form %C [concrete] -// CHECK:STDOUT: %pattern_type.0d5: type = pattern_type %C [concrete] +// CHECK:STDOUT: %struct_type.a.b.b4c: type = struct_type {.a: %i32, .b: %i32} [concrete] +// CHECK:STDOUT: %complete_type.7b9: = complete_type_witness %struct_type.a.b.b4c [concrete] +// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete] +// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.a.b.cfd = struct_value (%int_1.5b8, %int_2.ecc) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %C.val: %C = struct_value (%int_1.d9c, %int_2.228) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %.795: Core.Form = init_form %i32 [concrete] +// 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.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: %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: %C.val: %C = struct_value (%int_1.0c6, %int_2.295) [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.790b3b.2: type = fn_type @Destroy.Op.loc26_12.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -90,9 +90,9 @@ fn G() -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -106,20 +106,20 @@ fn G() -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.0d5 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.0d5 = return_slot_pattern %return.param_patt, %C.ref.loc20 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc20 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc20: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc20: Core.Form = init_form %C.ref.loc20 [concrete = constants.%.8f0] +// CHECK:STDOUT: %.loc20: Core.Form = init_form %C.ref.loc20 [concrete = constants.%.a44] // CHECK:STDOUT: %return.param: ref %C = out_param call_param0 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc25 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc25: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32.loc25 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc25: Core.Form = init_form %i32.loc25 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -128,7 +128,7 @@ fn G() -> i32 { // CHECK:STDOUT: class @C { // CHECK:STDOUT: %.loc16: %C.elem = field_decl a, element0 [concrete] // CHECK:STDOUT: %.loc17: %C.elem = field_decl b, element1 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.b47 [concrete = constants.%complete_type.abf] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.a.b.b4c [concrete = constants.%complete_type.7b9] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -140,28 +140,28 @@ fn G() -> i32 { // CHECK:STDOUT: fn @F() -> out %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %result.patt: %pattern_type.0d5 = ref_binding_pattern result [concrete] -// CHECK:STDOUT: %result.var_patt: %pattern_type.0d5 = var_pattern %result.patt [concrete] +// CHECK:STDOUT: %result.patt: %pattern_type.98b = ref_binding_pattern result [concrete] +// CHECK:STDOUT: %result.var_patt: %pattern_type.98b = var_pattern %result.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc21_43.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) [concrete = constants.%struct] -// CHECK:STDOUT: %impl.elem0.loc21_43.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc21_43.1: = bound_method %int_1, %impl.elem0.loc21_43.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc21_43.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc21_43.1: = bound_method %int_1, %impl.elem0.loc21_43.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc21_43.1: = specific_function %impl.elem0.loc21_43.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc21_43.2: = bound_method %int_1, %specific_fn.loc21_43.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21_43.1: init %i32 = call %bound_method.loc21_43.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc21_43.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21_43.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc21_43.2: = bound_method %int_1, %specific_fn.loc21_43.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21_43.1: init %i32 = call %bound_method.loc21_43.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc21_43.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21_43.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %.loc21_43.3: ref %i32 = class_element_access %return.param, element0 -// CHECK:STDOUT: %.loc21_43.4: init %i32 to %.loc21_43.3 = in_place_init %.loc21_43.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc21_43.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc21_43.3: = bound_method %int_2, %impl.elem0.loc21_43.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc21_43.4: init %i32 to %.loc21_43.3 = in_place_init %.loc21_43.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc21_43.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc21_43.3: = bound_method %int_2, %impl.elem0.loc21_43.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc21_43.2: = specific_function %impl.elem0.loc21_43.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc21_43.4: = bound_method %int_2, %specific_fn.loc21_43.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21_43.2: init %i32 = call %bound_method.loc21_43.4(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc21_43.5: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21_43.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc21_43.4: = bound_method %int_2, %specific_fn.loc21_43.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21_43.2: init %i32 = call %bound_method.loc21_43.4(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc21_43.5: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21_43.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc21_43.6: ref %i32 = class_element_access %return.param, element1 -// CHECK:STDOUT: %.loc21_43.7: init %i32 to %.loc21_43.6 = in_place_init %.loc21_43.5 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %.loc21_43.7: init %i32 to %.loc21_43.6 = in_place_init %.loc21_43.5 [concrete = constants.%int_2.295] // CHECK:STDOUT: %.loc21_43.8: init %C to %return.param = class_init (%.loc21_43.4, %.loc21_43.7) [concrete = constants.%C.val] // CHECK:STDOUT: %.loc21_12: init %C = converted %.loc21_43.1, %.loc21_43.8 [concrete = constants.%C.val] // CHECK:STDOUT: assign %return.param, %.loc21_12 @@ -174,22 +174,22 @@ fn G() -> i32 { // CHECK:STDOUT: fn @G() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %result.patt: %pattern_type.104 = ref_binding_pattern result [concrete] -// CHECK:STDOUT: %result.var_patt: %pattern_type.104 = var_pattern %result.patt [concrete] +// CHECK:STDOUT: %result.patt: %pattern_type.6b6 = ref_binding_pattern result [concrete] +// CHECK:STDOUT: %result.var_patt: %pattern_type.6b6 = var_pattern %result.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %result.var: ref %i32 = var %result.var_patt // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc26_12.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc26_12.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_12.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc26_12.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc26_12: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc26_12.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc26_12.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc26_12: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign %result.var, %.loc26_12 // CHECK:STDOUT: %i32.loc26: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %result: ref %i32 = ref_binding result, %result.var // CHECK:STDOUT: %.loc26_22: %i32 = acquire_value %result -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %result.var, constants.%Destroy.Op.2dd605.2 +// 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: return %.loc26_22 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/returned_var_scope.carbon b/toolchain/check/testdata/return/returned_var_scope.carbon index 6ccf45c2ab41..4239f20ec490 100644 --- a/toolchain/check/testdata/return/returned_var_scope.carbon +++ b/toolchain/check/testdata/return/returned_var_scope.carbon @@ -39,36 +39,36 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %UnrelatedScopes.type: type = fn_type @UnrelatedScopes [concrete] // CHECK:STDOUT: %UnrelatedScopes: %UnrelatedScopes.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.82d: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.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: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = 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] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc20_14.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc20_14.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] @@ -86,9 +86,9 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/parts/bool, Bool, loaded [concrete = constants.%Bool] // CHECK:STDOUT: } @@ -101,22 +101,22 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %UnrelatedScopes.decl: %UnrelatedScopes.type = fn_decl @UnrelatedScopes [concrete = constants.%UnrelatedScopes] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc15 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32.loc15 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %EnclosingButAfter.decl: %EnclosingButAfter.type = fn_decl @EnclosingButAfter [concrete = constants.%EnclosingButAfter] { // CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete] // CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32.loc25 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc25 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc25: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc25_34: Core.Form = init_form %i32.loc25 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc25_34: Core.Form = init_form %i32.loc25 [concrete = constants.%.795] // CHECK:STDOUT: %b.param: bool = value_param call_param0 // CHECK:STDOUT: %.loc25_25: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %b: bool = value_binding b, %b.param @@ -132,17 +132,17 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.then.loc16: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.104 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.104 = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.6b6 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.6b6 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %i32 = var %v.var_patt // CHECK:STDOUT: %int_0.loc17: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc17: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc17_14.1: = bound_method %int_0.loc17, %impl.elem0.loc17 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc17: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc17_14.1: = bound_method %int_0.loc17, %impl.elem0.loc17 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_14.2: = bound_method %int_0.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %i32 = call %bound_method.loc17_14.2(%int_0.loc17) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc17: init %i32 = converted %int_0.loc17, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc17_14.2: = bound_method %int_0.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %i32 = call %bound_method.loc17_14.2(%int_0.loc17) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc17: init %i32 = converted %int_0.loc17, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign %v.var, %.loc17 // CHECK:STDOUT: %i32.loc17: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %v: ref %i32 = ref_binding v, %v.var @@ -154,17 +154,17 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.then.loc19: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %w.patt: %pattern_type.104 = ref_binding_pattern w [concrete] -// CHECK:STDOUT: %w.var_patt: %pattern_type.104 = var_pattern %w.patt [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: } // CHECK:STDOUT: %w.var: ref %i32 = var %w.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc20: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc20_14.1: = bound_method %int_1, %impl.elem0.loc20 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc20: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc20_14.1: = bound_method %int_1, %impl.elem0.loc20 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc20_14.2: = bound_method %int_1, %specific_fn.loc20 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %i32 = call %bound_method.loc20_14.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc20: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc20_14.2: = bound_method %int_1, %specific_fn.loc20 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %i32 = call %bound_method.loc20_14.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc20: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: assign %w.var, %.loc20 // CHECK:STDOUT: %i32.loc20: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %w: ref %i32 = ref_binding w, %w.var @@ -172,15 +172,15 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc19: // CHECK:STDOUT: %int_0.loc22: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc22: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc22_11.1: = bound_method %int_0.loc22, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc22: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc22_11.1: = bound_method %int_0.loc22, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem0.loc22, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc22_11.2: = bound_method %int_0.loc22, %specific_fn.loc22 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %i32 = call %bound_method.loc22_11.2(%int_0.loc22) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc22: init %i32 = converted %int_0.loc22, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %Destroy.Op.bound.loc20: = bound_method %w.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %bound_method.loc22_11.2: = bound_method %int_0.loc22, %specific_fn.loc22 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %i32 = call %bound_method.loc22_11.2(%int_0.loc22) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc22: init %i32 = converted %int_0.loc22, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_0.3c0] +// 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.Op.bound.loc17: = bound_method %v.var, constants.%Destroy.Op.2dd605.2 +// 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: return %.loc22 // CHECK:STDOUT: } @@ -199,45 +199,45 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.then: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.104 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.104 = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.6b6 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.6b6 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %i32 = var %v.var_patt // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc27: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc27_14.1: = bound_method %int_0, %impl.elem0.loc27 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.638] +// CHECK:STDOUT: %impl.elem0.loc27: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc27_14.1: = bound_method %int_0, %impl.elem0.loc27 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7b4] // CHECK:STDOUT: %specific_fn.loc27: = specific_function %impl.elem0.loc27, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc27_14.2: = bound_method %int_0, %specific_fn.loc27 [concrete = constants.%bound_method.82d] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27: init %i32 = call %bound_method.loc27_14.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc27_14: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %bound_method.loc27_14.2: = bound_method %int_0, %specific_fn.loc27 [concrete = constants.%bound_method.6e0] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27: init %i32 = call %bound_method.loc27_14.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc27_14: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: assign %v.var, %.loc27_14 // CHECK:STDOUT: %i32.loc27: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %v: ref %i32 = ref_binding v, %v.var // CHECK:STDOUT: %.loc27_19: %i32 = acquire_value %v -// CHECK:STDOUT: %Destroy.Op.bound.loc27_14.1: = bound_method %v.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc27_14.1: = bound_method %v.var, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc27_14.1: init %empty_tuple.type = call %Destroy.Op.bound.loc27_14.1(%v.var) // CHECK:STDOUT: return %.loc27_19 // CHECK:STDOUT: // CHECK:STDOUT: !if.else: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %w.patt: %pattern_type.104 = ref_binding_pattern w [concrete] -// CHECK:STDOUT: %w.var_patt: %pattern_type.104 = var_pattern %w.patt [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: } // CHECK:STDOUT: %w.var: ref %i32 = var %w.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc30: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc30_12.1: = bound_method %int_1, %impl.elem0.loc30 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc30: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc30_12.1: = bound_method %int_1, %impl.elem0.loc30 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc30: = specific_function %impl.elem0.loc30, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc30_12.2: = bound_method %int_1, %specific_fn.loc30 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc30: init %i32 = call %bound_method.loc30_12.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc30_12: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc30 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc30_12.2: = bound_method %int_1, %specific_fn.loc30 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc30: init %i32 = call %bound_method.loc30_12.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc30_12: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc30 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: assign %w.var, %.loc30_12 // CHECK:STDOUT: %i32.loc30: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %w: ref %i32 = ref_binding w, %w.var // CHECK:STDOUT: %.loc30_17: %i32 = acquire_value %w -// CHECK:STDOUT: %Destroy.Op.bound.loc30: = bound_method %w.var, constants.%Destroy.Op.2dd605.2 +// 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.Op.bound.loc27_14.2: = bound_method %v.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc27_14.2: = bound_method %v.var, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc27_14.2: init %empty_tuple.type = call %Destroy.Op.bound.loc27_14.2(%v.var) // CHECK:STDOUT: return %.loc30_17 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/struct.carbon b/toolchain/check/testdata/return/struct.carbon index 1494c0b101e1..5833b706d599 100644 --- a/toolchain/check/testdata/return/struct.carbon +++ b/toolchain/check/testdata/return/struct.carbon @@ -23,31 +23,31 @@ fn Main() -> {.a: i32} { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %struct_type.a.1c5: type = struct_type {.a: %i32} [concrete] -// CHECK:STDOUT: %.c00: Core.Form = init_form %struct_type.a.1c5 [concrete] -// CHECK:STDOUT: %pattern_type.d7c: type = pattern_type %struct_type.a.1c5 [concrete] +// CHECK:STDOUT: %struct_type.a.a92: type = struct_type {.a: %i32} [concrete] +// CHECK:STDOUT: %.a89: Core.Form = init_form %struct_type.a.a92 [concrete] +// CHECK:STDOUT: %pattern_type.506: type = pattern_type %struct_type.a.a92 [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %struct_type.a.a6c: type = struct_type {.a: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.001: %struct_type.a.a6c = struct_value (%int_3.1ba) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_3.6cc: %i32 = int_value 3 [concrete] -// CHECK:STDOUT: %struct.d12: %struct_type.a.1c5 = struct_value (%int_3.6cc) [concrete] +// CHECK:STDOUT: %int_3.410: %i32 = int_value 3 [concrete] +// CHECK:STDOUT: %struct.159: %struct_type.a.a92 = struct_value (%int_3.410) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -58,9 +58,9 @@ fn Main() -> {.a: i32} { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -70,29 +70,29 @@ fn Main() -> {.a: i32} { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [concrete = constants.%Main] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.d7c = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.d7c = return_slot_pattern %return.param_patt, %struct_type.a [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.506 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.506 = return_slot_pattern %return.param_patt, %struct_type.a [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a.1c5] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %struct_type.a [concrete = constants.%.c00] -// CHECK:STDOUT: %return.param: ref %struct_type.a.1c5 = out_param call_param0 -// CHECK:STDOUT: %return: ref %struct_type.a.1c5 = return_slot %return.param +// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a.a92] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %struct_type.a [concrete = constants.%.a89] +// CHECK:STDOUT: %return.param: ref %struct_type.a.a92 = out_param call_param0 +// CHECK:STDOUT: %return: ref %struct_type.a.a92 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Main() -> out %return.param: %struct_type.a.1c5 { +// CHECK:STDOUT: fn @Main() -> out %return.param: %struct_type.a.a92 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc16_17.1: %struct_type.a.a6c = struct_literal (%int_3) [concrete = constants.%struct.001] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc16_17.1: = bound_method %int_3, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_17.2: = bound_method %int_3, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_17.2(%int_3) [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc16_17.2: init %i32 = converted %int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_3.6cc] -// CHECK:STDOUT: %.loc16_17.3: init %struct_type.a.1c5 = struct_init (%.loc16_17.2) [concrete = constants.%struct.d12] -// CHECK:STDOUT: %.loc16_18: init %struct_type.a.1c5 = converted %.loc16_17.1, %.loc16_17.3 [concrete = constants.%struct.d12] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_17.2(%int_3) [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc16_17.2: init %i32 = converted %int_3, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_3.410] +// CHECK:STDOUT: %.loc16_17.3: init %struct_type.a.a92 = struct_init (%.loc16_17.2) [concrete = constants.%struct.159] +// CHECK:STDOUT: %.loc16_18: init %struct_type.a.a92 = converted %.loc16_17.1, %.loc16_17.3 [concrete = constants.%struct.159] // CHECK:STDOUT: return %.loc16_18 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/tuple.carbon b/toolchain/check/testdata/return/tuple.carbon index d24abf8a53c5..d384a3621d3a 100644 --- a/toolchain/check/testdata/return/tuple.carbon +++ b/toolchain/check/testdata/return/tuple.carbon @@ -25,36 +25,36 @@ fn Main() -> (i32, i32) { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.79d: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] -// CHECK:STDOUT: %.ac5: Core.Form = init_form %tuple.type.e5a [concrete] -// CHECK:STDOUT: %pattern_type.7d6: type = pattern_type %tuple.type.e5a [concrete] +// CHECK:STDOUT: %tuple.b59: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %.c11: Core.Form = init_form %tuple.type.e55 [concrete] +// CHECK:STDOUT: %pattern_type.394: type = pattern_type %tuple.type.e55 [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %int_15.447: Core.IntLiteral = int_value 15 [concrete] // CHECK:STDOUT: %int_35.c79: Core.IntLiteral = int_value 35 [concrete] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.1b5: %tuple.type.f94 = tuple_value (%int_15.447, %int_35.c79) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5fc: = bound_method %int_15.447, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.52e: = bound_method %int_15.447, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_15.e9f: %i32 = int_value 15 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bd5: = bound_method %int_35.c79, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.0e4: = bound_method %int_35.c79, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_35.b43: %i32 = int_value 35 [concrete] -// CHECK:STDOUT: %tuple.5ce: %tuple.type.e5a = tuple_value (%int_15.e9f, %int_35.b43) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7c5: = bound_method %int_15.447, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.571: = bound_method %int_15.447, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_15.922: %i32 = int_value 15 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.3e5: = bound_method %int_35.c79, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %bound_method.7d7: = bound_method %int_35.c79, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_35.25f: %i32 = int_value 35 [concrete] +// CHECK:STDOUT: %tuple.4fd: %tuple.type.e55 = tuple_value (%int_15.922, %int_35.25f) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -65,9 +65,9 @@ fn Main() -> (i32, i32) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -77,42 +77,42 @@ fn Main() -> (i32, i32) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [concrete = constants.%Main] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.7d6 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.7d6 = return_slot_pattern %return.param_patt, %.loc16_23.2 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.394 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.394 = return_slot_pattern %return.param_patt, %.loc16_23.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc16_15: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc16_20: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16_23.1: %tuple.type.24b = tuple_literal (%i32.loc16_15, %i32.loc16_20) [concrete = constants.%tuple.79d] -// CHECK:STDOUT: %.loc16_23.2: type = converted %.loc16_23.1, constants.%tuple.type.e5a [concrete = constants.%tuple.type.e5a] -// CHECK:STDOUT: %.loc16_23.3: Core.Form = init_form %.loc16_23.2 [concrete = constants.%.ac5] -// CHECK:STDOUT: %return.param: ref %tuple.type.e5a = out_param call_param0 -// CHECK:STDOUT: %return: ref %tuple.type.e5a = return_slot %return.param +// CHECK:STDOUT: %.loc16_23.1: %tuple.type.24b = tuple_literal (%i32.loc16_15, %i32.loc16_20) [concrete = constants.%tuple.b59] +// CHECK:STDOUT: %.loc16_23.2: type = converted %.loc16_23.1, constants.%tuple.type.e55 [concrete = constants.%tuple.type.e55] +// CHECK:STDOUT: %.loc16_23.3: Core.Form = init_form %.loc16_23.2 [concrete = constants.%.c11] +// CHECK:STDOUT: %return.param: ref %tuple.type.e55 = out_param call_param0 +// CHECK:STDOUT: %return: ref %tuple.type.e55 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Main() -> out %return.param: %tuple.type.e5a { +// CHECK:STDOUT: fn @Main() -> out %return.param: %tuple.type.e55 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_15: Core.IntLiteral = int_value 15 [concrete = constants.%int_15.447] // CHECK:STDOUT: %int_35: Core.IntLiteral = int_value 35 [concrete = constants.%int_35.c79] // CHECK:STDOUT: %.loc17_17.1: %tuple.type.f94 = tuple_literal (%int_15, %int_35) [concrete = constants.%tuple.1b5] -// CHECK:STDOUT: %impl.elem0.loc17_17.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc17_17.1: = bound_method %int_15, %impl.elem0.loc17_17.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5fc] +// CHECK:STDOUT: %impl.elem0.loc17_17.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc17_17.1: = bound_method %int_15, %impl.elem0.loc17_17.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.7c5] // CHECK:STDOUT: %specific_fn.loc17_17.1: = specific_function %impl.elem0.loc17_17.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_17.2: = bound_method %int_15, %specific_fn.loc17_17.1 [concrete = constants.%bound_method.52e] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_17.1: init %i32 = call %bound_method.loc17_17.2(%int_15) [concrete = constants.%int_15.e9f] -// CHECK:STDOUT: %.loc17_17.2: init %i32 = converted %int_15, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_17.1 [concrete = constants.%int_15.e9f] +// CHECK:STDOUT: %bound_method.loc17_17.2: = bound_method %int_15, %specific_fn.loc17_17.1 [concrete = constants.%bound_method.571] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_17.1: init %i32 = call %bound_method.loc17_17.2(%int_15) [concrete = constants.%int_15.922] +// CHECK:STDOUT: %.loc17_17.2: init %i32 = converted %int_15, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_17.1 [concrete = constants.%int_15.922] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %return.param, element0 -// CHECK:STDOUT: %.loc17_17.3: init %i32 to %tuple.elem0 = in_place_init %.loc17_17.2 [concrete = constants.%int_15.e9f] -// CHECK:STDOUT: %impl.elem0.loc17_17.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc17_17.3: = bound_method %int_35, %impl.elem0.loc17_17.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bd5] +// CHECK:STDOUT: %.loc17_17.3: init %i32 to %tuple.elem0 = in_place_init %.loc17_17.2 [concrete = constants.%int_15.922] +// CHECK:STDOUT: %impl.elem0.loc17_17.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc17_17.3: = bound_method %int_35, %impl.elem0.loc17_17.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.3e5] // CHECK:STDOUT: %specific_fn.loc17_17.2: = specific_function %impl.elem0.loc17_17.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_17.4: = bound_method %int_35, %specific_fn.loc17_17.2 [concrete = constants.%bound_method.0e4] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_17.2: init %i32 = call %bound_method.loc17_17.4(%int_35) [concrete = constants.%int_35.b43] -// CHECK:STDOUT: %.loc17_17.4: init %i32 = converted %int_35, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_17.2 [concrete = constants.%int_35.b43] +// CHECK:STDOUT: %bound_method.loc17_17.4: = bound_method %int_35, %specific_fn.loc17_17.2 [concrete = constants.%bound_method.7d7] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_17.2: init %i32 = call %bound_method.loc17_17.4(%int_35) [concrete = constants.%int_35.25f] +// CHECK:STDOUT: %.loc17_17.4: init %i32 = converted %int_35, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_17.2 [concrete = constants.%int_35.25f] // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access %return.param, element1 -// CHECK:STDOUT: %.loc17_17.5: init %i32 to %tuple.elem1 = in_place_init %.loc17_17.4 [concrete = constants.%int_35.b43] -// CHECK:STDOUT: %.loc17_17.6: init %tuple.type.e5a to %return.param = tuple_init (%.loc17_17.3, %.loc17_17.5) [concrete = constants.%tuple.5ce] -// CHECK:STDOUT: %.loc17_18: init %tuple.type.e5a = converted %.loc17_17.1, %.loc17_17.6 [concrete = constants.%tuple.5ce] +// CHECK:STDOUT: %.loc17_17.5: init %i32 to %tuple.elem1 = in_place_init %.loc17_17.4 [concrete = constants.%int_35.25f] +// CHECK:STDOUT: %.loc17_17.6: init %tuple.type.e55 to %return.param = tuple_init (%.loc17_17.3, %.loc17_17.5) [concrete = constants.%tuple.4fd] +// CHECK:STDOUT: %.loc17_18: init %tuple.type.e55 = converted %.loc17_17.1, %.loc17_17.6 [concrete = constants.%tuple.4fd] // CHECK:STDOUT: return %.loc17_18 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/value.carbon b/toolchain/check/testdata/return/value.carbon index 1720723be713..ffa5f2fb6267 100644 --- a/toolchain/check/testdata/return/value.carbon +++ b/toolchain/check/testdata/return/value.carbon @@ -23,27 +23,27 @@ fn Main() -> i32 { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -54,9 +54,9 @@ fn Main() -> i32 { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -66,11 +66,11 @@ fn Main() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Main.decl: %Main.type = fn_decl @Main [concrete = constants.%Main] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -79,12 +79,12 @@ fn Main() -> i32 { // CHECK:STDOUT: fn @Main() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc16_11.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_11.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_11.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc16: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc16_11.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc16: init %i32 = converted %int_0, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_0.3c0] // CHECK:STDOUT: return %.loc16 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/struct/fail_assign_empty.carbon b/toolchain/check/testdata/struct/fail_assign_empty.carbon index f95b20c18564..4674f3218a9d 100644 --- a/toolchain/check/testdata/struct/fail_assign_empty.carbon +++ b/toolchain/check/testdata/struct/fail_assign_empty.carbon @@ -26,7 +26,7 @@ var x: {.a: i32} = {}; // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.d7c: type = pattern_type %struct_type.a [concrete] +// CHECK:STDOUT: %pattern_type.506: type = pattern_type %struct_type.a [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: } @@ -47,8 +47,8 @@ var x: {.a: i32} = {}; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.d7c = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.d7c = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.506 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.506 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %struct_type.a = var %x.var_patt [concrete] // CHECK:STDOUT: %.loc19: type = splice_block %struct_type.a [concrete = constants.%struct_type.a] { diff --git a/toolchain/check/testdata/struct/fail_duplicate_name.carbon b/toolchain/check/testdata/struct/fail_duplicate_name.carbon index 13ae85716968..3661e1df12f9 100644 --- a/toolchain/check/testdata/struct/fail_duplicate_name.carbon +++ b/toolchain/check/testdata/struct/fail_duplicate_name.carbon @@ -69,12 +69,12 @@ var y: {.b: i32, .c: i32} = {.b = 3, .b = 4}; // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.a.a6c: type = struct_type {.a: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.a.a6c = struct_value (%int_1) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %struct_type.a.1c5: type = struct_type {.a: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.d7c: type = pattern_type %struct_type.a.1c5 [concrete] +// CHECK:STDOUT: %struct_type.a.a92: type = struct_type {.a: %i32} [concrete] +// CHECK:STDOUT: %pattern_type.506: type = pattern_type %struct_type.a.a92 [concrete] // CHECK:STDOUT: %struct_type.b.c: type = struct_type {.b: %i32, .c: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.16d: type = pattern_type %struct_type.b.c [concrete] +// CHECK:STDOUT: %pattern_type.f19: type = pattern_type %struct_type.b.c [concrete] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: } @@ -117,23 +117,23 @@ var y: {.b: i32, .c: i32} = {.b = 3, .b = 4}; // CHECK:STDOUT: } // CHECK:STDOUT: %v: = value_binding v, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %w.patt: %pattern_type.104 = value_binding_pattern w [concrete] +// CHECK:STDOUT: %w.patt: %pattern_type.6b6 = value_binding_pattern w [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i32.loc40: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %w: %i32 = value_binding w, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.d7c = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.d7c = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.506 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.506 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %x.var: ref %struct_type.a.1c5 = var %x.var_patt [concrete] -// CHECK:STDOUT: %.loc49: type = splice_block %struct_type.a [concrete = constants.%struct_type.a.1c5] { +// CHECK:STDOUT: %x.var: ref %struct_type.a.a92 = var %x.var_patt [concrete] +// CHECK:STDOUT: %.loc49: type = splice_block %struct_type.a [concrete = constants.%struct_type.a.a92] { // CHECK:STDOUT: %i32.loc49: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a.1c5] +// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a.a92] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: ref %struct_type.a.1c5 = ref_binding x, %x.var [concrete = %x.var] +// CHECK:STDOUT: %x: ref %struct_type.a.a92 = ref_binding x, %x.var [concrete = %x.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.16d = ref_binding_pattern y [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type.16d = var_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.f19 = ref_binding_pattern y [concrete] +// CHECK:STDOUT: %y.var_patt: %pattern_type.f19 = var_pattern %y.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %y.var: ref %struct_type.b.c = var %y.var_patt [concrete] // CHECK:STDOUT: %.loc58: type = splice_block %struct_type.b.c [concrete = constants.%struct_type.b.c] { diff --git a/toolchain/check/testdata/struct/fail_field_name_mismatch.carbon b/toolchain/check/testdata/struct/fail_field_name_mismatch.carbon index edec5dae88b2..0298e75ff048 100644 --- a/toolchain/check/testdata/struct/fail_field_name_mismatch.carbon +++ b/toolchain/check/testdata/struct/fail_field_name_mismatch.carbon @@ -39,46 +39,46 @@ var y: {.b: i32} = x; // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %struct_type.a.1c5: type = struct_type {.a: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.d7c: type = pattern_type %struct_type.a.1c5 [concrete] +// CHECK:STDOUT: %struct_type.a.a92: type = struct_type {.a: %i32} [concrete] +// CHECK:STDOUT: %pattern_type.506: type = pattern_type %struct_type.a.a92 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.a.a6c: type = struct_type {.a: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.48c: %struct_type.a.a6c = struct_value (%int_1.5b8) [concrete] -// CHECK:STDOUT: %.8fa: ref %i32 = struct_access file.%a.var, element0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %.68e: ref %i32 = struct_access file.%a.var, element0 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %struct.107: %struct_type.a.1c5 = struct_value (%int_1.d9c) [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %struct.406: %struct_type.a.a92 = struct_value (%int_1.0c6) [concrete] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.941: type = pattern_type %struct_type.a.b [concrete] -// CHECK:STDOUT: %.a23: ref %i32 = struct_access file.%b.var, element0 [concrete] +// CHECK:STDOUT: %pattern_type.20e3: type = pattern_type %struct_type.a.b [concrete] +// CHECK:STDOUT: %.27c: ref %i32 = struct_access file.%b.var, element0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %struct_type.b.a15: type = struct_type {.b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.62b: %struct_type.b.a15 = struct_value (%int_1.5b8) [concrete] -// CHECK:STDOUT: %struct_type.b.676: type = struct_type {.b: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.956: type = pattern_type %struct_type.b.676 [concrete] +// CHECK:STDOUT: %struct_type.b.0bf: type = struct_type {.b: %i32} [concrete] +// CHECK:STDOUT: %pattern_type.b29: type = pattern_type %struct_type.b.0bf [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -90,12 +90,12 @@ var y: {.b: i32} = x; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -108,18 +108,18 @@ var y: {.b: i32} = x; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.d7c = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.d7c = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.506 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.506 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %struct_type.a.1c5 = var %a.var_patt [concrete] -// CHECK:STDOUT: %.loc15: type = splice_block %struct_type.a.loc15 [concrete = constants.%struct_type.a.1c5] { +// CHECK:STDOUT: %a.var: ref %struct_type.a.a92 = var %a.var_patt [concrete] +// CHECK:STDOUT: %.loc15: type = splice_block %struct_type.a.loc15 [concrete = constants.%struct_type.a.a92] { // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.loc15: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a.1c5] +// CHECK:STDOUT: %struct_type.a.loc15: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a.a92] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %struct_type.a.1c5 = ref_binding a, %a.var [concrete = %a.var] +// CHECK:STDOUT: %a: ref %struct_type.a.a92 = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.941 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.941 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.20e3 = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.20e3 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %struct_type.a.b = var %b.var_patt [concrete] // CHECK:STDOUT: %.loc20: type = splice_block %struct_type.a.b [concrete = constants.%struct_type.a.b] { @@ -129,55 +129,55 @@ var y: {.b: i32} = x; // CHECK:STDOUT: } // CHECK:STDOUT: %b: ref %struct_type.a.b = ref_binding b, %b.var [concrete = %b.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.d7c = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.d7c = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.506 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.506 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %x.var: ref %struct_type.a.1c5 = var %x.var_patt [concrete] -// CHECK:STDOUT: %.loc26: type = splice_block %struct_type.a.loc26 [concrete = constants.%struct_type.a.1c5] { +// CHECK:STDOUT: %x.var: ref %struct_type.a.a92 = var %x.var_patt [concrete] +// CHECK:STDOUT: %.loc26: type = splice_block %struct_type.a.loc26 [concrete = constants.%struct_type.a.a92] { // CHECK:STDOUT: %i32.loc26: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.loc26: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a.1c5] +// CHECK:STDOUT: %struct_type.a.loc26: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a.a92] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: ref %struct_type.a.1c5 = ref_binding x, %x.var [concrete = %x.var] +// CHECK:STDOUT: %x: ref %struct_type.a.a92 = ref_binding x, %x.var [concrete = %x.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.956 = ref_binding_pattern y [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type.956 = var_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.b29 = ref_binding_pattern y [concrete] +// CHECK:STDOUT: %y.var_patt: %pattern_type.b29 = var_pattern %y.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %y.var: ref %struct_type.b.676 = var %y.var_patt [concrete] -// CHECK:STDOUT: %.loc32: type = splice_block %struct_type.b [concrete = constants.%struct_type.b.676] { +// CHECK:STDOUT: %y.var: ref %struct_type.b.0bf = var %y.var_patt [concrete] +// CHECK:STDOUT: %.loc32: type = splice_block %struct_type.b [concrete = constants.%struct_type.b.0bf] { // CHECK:STDOUT: %i32.loc32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.b: type = struct_type {.b: %i32} [concrete = constants.%struct_type.b.676] +// CHECK:STDOUT: %struct_type.b: type = struct_type {.b: %i32} [concrete = constants.%struct_type.b.0bf] // CHECK:STDOUT: } -// CHECK:STDOUT: %y: ref %struct_type.b.676 = ref_binding y, %y.var [concrete = %y.var] +// CHECK:STDOUT: %y: ref %struct_type.b.0bf = ref_binding y, %y.var [concrete = %y.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1.loc15: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc15_28.1: %struct_type.a.a6c = struct_literal (%int_1.loc15) [concrete = constants.%struct.48c] -// CHECK:STDOUT: %impl.elem0.loc15: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc15: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc15_28.1: = bound_method %int_1.loc15, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_28.2: = bound_method %int_1.loc15, %specific_fn.loc15 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_28.2(%int_1.loc15) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc15_28.2: init %i32 = converted %int_1.loc15, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc15_28.3: init %struct_type.a.1c5 to file.%a.var = struct_init (%.loc15_28.2) [concrete = constants.%struct.107] -// CHECK:STDOUT: %.loc15_1: init %struct_type.a.1c5 = converted %.loc15_28.1, %.loc15_28.3 [concrete = constants.%struct.107] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_28.2(%int_1.loc15) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc15_28.2: init %i32 = converted %int_1.loc15, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc15_28.3: init %struct_type.a.a92 to file.%a.var = struct_init (%.loc15_28.2) [concrete = constants.%struct.406] +// CHECK:STDOUT: %.loc15_1: init %struct_type.a.a92 = converted %.loc15_28.1, %.loc15_28.3 [concrete = constants.%struct.406] // CHECK:STDOUT: assign file.%a.var, %.loc15_1 -// CHECK:STDOUT: %a.ref: ref %struct_type.a.1c5 = name_ref a, file.%a [concrete = file.%a.var] -// CHECK:STDOUT: %.loc20_29.1: ref %i32 = struct_access %a.ref, element0 [concrete = constants.%.8fa] +// CHECK:STDOUT: %a.ref: ref %struct_type.a.a92 = name_ref a, file.%a [concrete = file.%a.var] +// CHECK:STDOUT: %.loc20_29.1: ref %i32 = struct_access %a.ref, element0 [concrete = constants.%.68e] // CHECK:STDOUT: %.loc20_29.2: %i32 = acquire_value %.loc20_29.1 -// CHECK:STDOUT: %impl.elem0.loc20: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc20: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc20_29.1: = bound_method %.loc20_29.2, %impl.elem0.loc20 // CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc20_29.2: = bound_method %.loc20_29.2, %specific_fn.loc20 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc20_29.2(%.loc20_29.2) -// CHECK:STDOUT: %.loc20_29.3: ref %i32 = struct_access file.%b.var, element0 [concrete = constants.%.a23] +// CHECK:STDOUT: %.loc20_29.3: ref %i32 = struct_access file.%b.var, element0 [concrete = constants.%.27c] // CHECK:STDOUT: %.loc20_29.4: init %i32 to %.loc20_29.3 = in_place_init %Int.as.Copy.impl.Op.call // CHECK:STDOUT: assign file.%b.var, // CHECK:STDOUT: %int_1.loc26: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc26: %struct_type.b.a15 = struct_literal (%int_1.loc26) [concrete = constants.%struct.62b] // CHECK:STDOUT: assign file.%x.var, -// CHECK:STDOUT: %x.ref: ref %struct_type.a.1c5 = name_ref x, file.%x [concrete = file.%x.var] +// CHECK:STDOUT: %x.ref: ref %struct_type.a.a92 = name_ref x, file.%x [concrete = file.%x.var] // CHECK:STDOUT: assign file.%y.var, // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/fail_field_type_mismatch.carbon b/toolchain/check/testdata/struct/fail_field_type_mismatch.carbon index a7b7d8f88dda..71c45a443729 100644 --- a/toolchain/check/testdata/struct/fail_field_type_mismatch.carbon +++ b/toolchain/check/testdata/struct/fail_field_type_mismatch.carbon @@ -26,7 +26,7 @@ var x: {.a: i32} = {.b = 1.0}; // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.d7c: type = pattern_type %struct_type.a [concrete] +// CHECK:STDOUT: %pattern_type.506: type = pattern_type %struct_type.a [concrete] // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 10e-1 [concrete] // CHECK:STDOUT: %struct_type.b: type = struct_type {.b: Core.FloatLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.b = struct_value (%float) [concrete] @@ -48,8 +48,8 @@ var x: {.a: i32} = {.b = 1.0}; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.d7c = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.d7c = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.506 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.506 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %struct_type.a = var %x.var_patt [concrete] // CHECK:STDOUT: %.loc19: type = splice_block %struct_type.a [concrete = constants.%struct_type.a] { diff --git a/toolchain/check/testdata/struct/fail_member_access_type.carbon b/toolchain/check/testdata/struct/fail_member_access_type.carbon index b3ad82a52aa8..591003c6f35f 100644 --- a/toolchain/check/testdata/struct/fail_member_access_type.carbon +++ b/toolchain/check/testdata/struct/fail_member_access_type.carbon @@ -25,34 +25,34 @@ var y: i32 = x.b; // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %Float.type: type = generic_class_type @Float [concrete] // CHECK:STDOUT: %Float.generic: %Float.type = struct_value () [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %struct_type.a.836: type = struct_type {.a: %f64.b55} [concrete] -// CHECK:STDOUT: %pattern_type.d8d: type = pattern_type %struct_type.a.836 [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %struct_type.a.752: type = struct_type {.a: %f64.dc1} [concrete] +// CHECK:STDOUT: %pattern_type.6b7: type = pattern_type %struct_type.a.752 [concrete] // CHECK:STDOUT: %float.a4e: Core.FloatLiteral = float_literal_value 40e-1 [concrete] // CHECK:STDOUT: %struct_type.a.b4b: type = struct_type {.a: Core.FloatLiteral} [concrete] // CHECK:STDOUT: %struct.f91: %struct_type.a.b4b = struct_value (%float.a4e) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.857: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.b55)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.91e: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.dc1)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.83f: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.857 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.83f) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.096: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.b55, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.119: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.096, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.a4e, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.43c: = impl_witness imports.%ImplicitAs.impl_witness_table, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.91e = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.43c) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6c5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.dc1, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.2d7: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6c5, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.a4e, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %float.a4e, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.aa2: %f64.b55 = float_value 4 [concrete] -// CHECK:STDOUT: %struct.982: %struct_type.a.836 = struct_value (%float.aa2) [concrete] +// CHECK:STDOUT: %float.82f: %f64.dc1 = float_value 4 [concrete] +// CHECK:STDOUT: %struct.4c5: %struct_type.a.752 = struct_value (%float.82f) [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -64,9 +64,9 @@ var y: i32 = x.b; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Float: %Float.type = import_ref Core//prelude/parts/float, Float, loaded [concrete = constants.%Float.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.63c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.63c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -78,18 +78,18 @@ var y: i32 = x.b; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.d8d = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.d8d = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6b7 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.6b7 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %x.var: ref %struct_type.a.836 = var %x.var_patt [concrete] -// CHECK:STDOUT: %.loc15: type = splice_block %struct_type.a [concrete = constants.%struct_type.a.836] { -// CHECK:STDOUT: %f64: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %f64.b55} [concrete = constants.%struct_type.a.836] +// CHECK:STDOUT: %x.var: ref %struct_type.a.752 = var %x.var_patt [concrete] +// CHECK:STDOUT: %.loc15: type = splice_block %struct_type.a [concrete = constants.%struct_type.a.752] { +// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %f64.dc1} [concrete = constants.%struct_type.a.752] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: ref %struct_type.a.836 = ref_binding x, %x.var [concrete = %x.var] +// CHECK:STDOUT: %x: ref %struct_type.a.752 = ref_binding x, %x.var [concrete = %x.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.104 = ref_binding_pattern y [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type.104 = var_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.6b6 = ref_binding_pattern y [concrete] +// CHECK:STDOUT: %y.var_patt: %pattern_type.6b6 = var_pattern %y.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %y.var: ref %i32 = var %y.var_patt [concrete] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -100,16 +100,16 @@ var y: i32 = x.b; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 40e-1 [concrete = constants.%float.a4e] // CHECK:STDOUT: %.loc15_29.1: %struct_type.a.b4b = struct_literal (%float) [concrete = constants.%struct.f91] -// CHECK:STDOUT: %impl.elem0: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] +// CHECK:STDOUT: %impl.elem0: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] // CHECK:STDOUT: %bound_method.loc15_29.1: = bound_method %float, %impl.elem0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_29.2: = bound_method %float, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.b55 = call %bound_method.loc15_29.2(%float) [concrete = constants.%float.aa2] -// CHECK:STDOUT: %.loc15_29.2: init %f64.b55 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.aa2] -// CHECK:STDOUT: %.loc15_29.3: init %struct_type.a.836 to file.%x.var = struct_init (%.loc15_29.2) [concrete = constants.%struct.982] -// CHECK:STDOUT: %.loc15_1: init %struct_type.a.836 = converted %.loc15_29.1, %.loc15_29.3 [concrete = constants.%struct.982] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.dc1 = call %bound_method.loc15_29.2(%float) [concrete = constants.%float.82f] +// CHECK:STDOUT: %.loc15_29.2: init %f64.dc1 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.82f] +// CHECK:STDOUT: %.loc15_29.3: init %struct_type.a.752 to file.%x.var = struct_init (%.loc15_29.2) [concrete = constants.%struct.4c5] +// CHECK:STDOUT: %.loc15_1: init %struct_type.a.752 = converted %.loc15_29.1, %.loc15_29.3 [concrete = constants.%struct.4c5] // CHECK:STDOUT: assign file.%x.var, %.loc15_1 -// CHECK:STDOUT: %x.ref: ref %struct_type.a.836 = name_ref x, file.%x [concrete = file.%x.var] +// CHECK:STDOUT: %x.ref: ref %struct_type.a.752 = name_ref x, file.%x [concrete = file.%x.var] // CHECK:STDOUT: assign file.%y.var, // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/fail_non_member_access.carbon b/toolchain/check/testdata/struct/fail_non_member_access.carbon index 7098c3c6bcb7..4ac33b1a67a9 100644 --- a/toolchain/check/testdata/struct/fail_non_member_access.carbon +++ b/toolchain/check/testdata/struct/fail_non_member_access.carbon @@ -26,29 +26,29 @@ var y: i32 = x.b; // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %struct_type.a.1c5: type = struct_type {.a: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.d7c: type = pattern_type %struct_type.a.1c5 [concrete] +// CHECK:STDOUT: %struct_type.a.a92: type = struct_type {.a: %i32} [concrete] +// CHECK:STDOUT: %pattern_type.506: type = pattern_type %struct_type.a.a92 [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %struct_type.a.a6c: type = struct_type {.a: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.2cb: %struct_type.a.a6c = struct_value (%int_4.0c1) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// 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_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_4.a4d: %i32 = int_value 4 [concrete] -// CHECK:STDOUT: %struct.1b4: %struct_type.a.1c5 = struct_value (%int_4.a4d) [concrete] +// CHECK:STDOUT: %int_4.4eb: %i32 = int_value 4 [concrete] +// CHECK:STDOUT: %struct.751: %struct_type.a.a92 = struct_value (%int_4.4eb) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -59,9 +59,9 @@ var y: i32 = x.b; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -72,18 +72,18 @@ var y: i32 = x.b; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.d7c = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.d7c = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.506 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.506 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %x.var: ref %struct_type.a.1c5 = var %x.var_patt [concrete] -// CHECK:STDOUT: %.loc15: type = splice_block %struct_type.a [concrete = constants.%struct_type.a.1c5] { +// CHECK:STDOUT: %x.var: ref %struct_type.a.a92 = var %x.var_patt [concrete] +// CHECK:STDOUT: %.loc15: type = splice_block %struct_type.a [concrete = constants.%struct_type.a.a92] { // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a.1c5] +// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a.a92] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: ref %struct_type.a.1c5 = ref_binding x, %x.var [concrete = %x.var] +// CHECK:STDOUT: %x: ref %struct_type.a.a92 = ref_binding x, %x.var [concrete = %x.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.104 = ref_binding_pattern y [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type.104 = var_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.6b6 = ref_binding_pattern y [concrete] +// CHECK:STDOUT: %y.var_patt: %pattern_type.6b6 = var_pattern %y.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %y.var: ref %i32 = var %y.var_patt [concrete] // CHECK:STDOUT: %i32.loc20: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -94,16 +94,16 @@ var y: i32 = x.b; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %.loc15_27.1: %struct_type.a.a6c = struct_literal (%int_4) [concrete = constants.%struct.2cb] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc15_27.1: = bound_method %int_4, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_27.2: = bound_method %int_4, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_27.2(%int_4) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc15_27.2: init %i32 = converted %int_4, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc15_27.3: init %struct_type.a.1c5 to file.%x.var = struct_init (%.loc15_27.2) [concrete = constants.%struct.1b4] -// CHECK:STDOUT: %.loc15_1: init %struct_type.a.1c5 = converted %.loc15_27.1, %.loc15_27.3 [concrete = constants.%struct.1b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_27.2(%int_4) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc15_27.2: init %i32 = converted %int_4, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc15_27.3: init %struct_type.a.a92 to file.%x.var = struct_init (%.loc15_27.2) [concrete = constants.%struct.751] +// CHECK:STDOUT: %.loc15_1: init %struct_type.a.a92 = converted %.loc15_27.1, %.loc15_27.3 [concrete = constants.%struct.751] // CHECK:STDOUT: assign file.%x.var, %.loc15_1 -// CHECK:STDOUT: %x.ref: ref %struct_type.a.1c5 = name_ref x, file.%x [concrete = file.%x.var] +// CHECK:STDOUT: %x.ref: ref %struct_type.a.a92 = name_ref x, file.%x [concrete = file.%x.var] // CHECK:STDOUT: assign file.%y.var, // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/fail_too_few_values.carbon b/toolchain/check/testdata/struct/fail_too_few_values.carbon index 37d986720a35..ecd07ced68b6 100644 --- a/toolchain/check/testdata/struct/fail_too_few_values.carbon +++ b/toolchain/check/testdata/struct/fail_too_few_values.carbon @@ -26,27 +26,27 @@ var x: {.a: i32, .b: i32} = {.a = 1}; // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.941: type = pattern_type %struct_type.a.b [concrete] +// CHECK:STDOUT: %pattern_type.20e3: type = pattern_type %struct_type.a.b [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.a = struct_value (%int_1.5b8) [concrete] -// CHECK:STDOUT: %.f3e: ref %i32 = struct_access file.%x.var, element0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %.2c1: ref %i32 = struct_access file.%x.var, element0 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -57,9 +57,9 @@ var x: {.a: i32, .b: i32} = {.a = 1}; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -69,8 +69,8 @@ var x: {.a: i32, .b: i32} = {.a = 1}; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.941 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.941 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.20e3 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.20e3 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %struct_type.a.b = var %x.var_patt [concrete] // CHECK:STDOUT: %.loc19: type = splice_block %struct_type.a.b [concrete = constants.%struct_type.a.b] { @@ -85,14 +85,14 @@ var x: {.a: i32, .b: i32} = {.a = 1}; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc19_36.1: %struct_type.a = struct_literal (%int_1) [concrete = constants.%struct] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc19_36.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_36.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc19_36.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc19_36.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc19_36.3: ref %i32 = struct_access file.%x.var, element0 [concrete = constants.%.f3e] -// CHECK:STDOUT: %.loc19_36.4: init %i32 to %.loc19_36.3 = in_place_init %.loc19_36.2 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc19_36.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc19_36.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc19_36.3: ref %i32 = struct_access file.%x.var, element0 [concrete = constants.%.2c1] +// CHECK:STDOUT: %.loc19_36.4: init %i32 to %.loc19_36.3 = in_place_init %.loc19_36.2 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: assign file.%x.var, // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/fail_type_assign.carbon b/toolchain/check/testdata/struct/fail_type_assign.carbon index 54b626699af3..dc1685c6dfd3 100644 --- a/toolchain/check/testdata/struct/fail_type_assign.carbon +++ b/toolchain/check/testdata/struct/fail_type_assign.carbon @@ -29,9 +29,9 @@ var x: {.a: i32} = {.a: i32}; // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.d7c: type = pattern_type %struct_type.a [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.506: type = pattern_type %struct_type.a [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -42,7 +42,7 @@ var x: {.a: i32} = {.a: i32}; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -52,8 +52,8 @@ var x: {.a: i32} = {.a: i32}; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.d7c = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.d7c = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.506 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.506 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %struct_type.a = var %x.var_patt [concrete] // CHECK:STDOUT: %.loc22: type = splice_block %struct_type.a [concrete = constants.%struct_type.a] { diff --git a/toolchain/check/testdata/struct/fail_value_as_type.carbon b/toolchain/check/testdata/struct/fail_value_as_type.carbon index ac7f710c8091..09efdd546256 100644 --- a/toolchain/check/testdata/struct/fail_value_as_type.carbon +++ b/toolchain/check/testdata/struct/fail_value_as_type.carbon @@ -27,8 +27,8 @@ var x: {.a = 1}; // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct: %struct_type.a = struct_value (%int_1) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -37,7 +37,7 @@ var x: {.a = 1}; // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/struct/import.carbon b/toolchain/check/testdata/struct/import.carbon index 5d005b5f8f46..30b33c92193a 100644 --- a/toolchain/check/testdata/struct/import.carbon +++ b/toolchain/check/testdata/struct/import.carbon @@ -84,87 +84,87 @@ fn F() -> {.x: i32} { // CHECK:STDOUT: constants { // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.867: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.c67: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.867 = struct_value () [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.afb: type = pattern_type %struct_type.a [concrete] -// CHECK:STDOUT: %.546: ref %i32 = struct_access imports.%a_ref.var, element0 [concrete] +// CHECK:STDOUT: %pattern_type.506: type = pattern_type %struct_type.a [concrete] +// CHECK:STDOUT: %.802: ref %i32 = struct_access imports.%a_ref.var, element0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.947: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.c83: %Int.as.Copy.impl.Op.type.947 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.7e7: = impl_witness imports.%Copy.impl_witness_table.53f, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c58: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.59c: %Int.as.Copy.impl.Op.type.c58 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.7e7) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.fae: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.b11: type = fn_type_with_self_type %Copy.WithSelf.Op.type.fae, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.59c, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %tuple.type.85c: type = tuple_type (type) [concrete] -// CHECK:STDOUT: %tuple.ef7: %tuple.type.85c = tuple_value (%i32) [concrete] -// CHECK:STDOUT: %tuple.type.e3c: type = tuple_type (%i32) [concrete] -// CHECK:STDOUT: %struct_type.b.c: type = struct_type {.b: %i32, .c: %tuple.type.e3c} [concrete] -// CHECK:STDOUT: %struct_type.a.d.fc7: type = struct_type {.a: %struct_type.b.c, .d: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.451: type = pattern_type %struct_type.a.d.fc7 [concrete] -// CHECK:STDOUT: %.deb: ref %struct_type.b.c = struct_access imports.%b_ref.var, element0 [concrete] -// CHECK:STDOUT: %.605: ref %struct_type.b.c = struct_access file.%b.var, element0 [concrete] -// CHECK:STDOUT: %.3af: ref %i32 = struct_access %.deb, element0 [concrete] -// CHECK:STDOUT: %.e08: ref %i32 = struct_access %.605, element0 [concrete] -// CHECK:STDOUT: %.7f8: ref %tuple.type.e3c = struct_access %.deb, element1 [concrete] -// CHECK:STDOUT: %.df1: ref %tuple.type.e3c = struct_access %.605, element1 [concrete] -// CHECK:STDOUT: %tuple.elem0.11b: ref %i32 = tuple_access %.7f8, element0 [concrete] -// CHECK:STDOUT: %.fef: ref %i32 = struct_access imports.%b_ref.var, element1 [concrete] -// CHECK:STDOUT: %.114: ref %i32 = struct_access file.%b.var, element1 [concrete] +// CHECK:STDOUT: %tuple.19c: %tuple.type.85c = tuple_value (%i32) [concrete] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %struct_type.b.c: type = struct_type {.b: %i32, .c: %tuple.type.a8a} [concrete] +// CHECK:STDOUT: %struct_type.a.d.01c: type = struct_type {.a: %struct_type.b.c, .d: %i32} [concrete] +// CHECK:STDOUT: %pattern_type.1fb: type = pattern_type %struct_type.a.d.01c [concrete] +// CHECK:STDOUT: %.355: ref %struct_type.b.c = struct_access imports.%b_ref.var, element0 [concrete] +// CHECK:STDOUT: %.8dc: ref %struct_type.b.c = struct_access file.%b.var, element0 [concrete] +// CHECK:STDOUT: %.379: ref %i32 = struct_access %.355, element0 [concrete] +// CHECK:STDOUT: %.ef7: ref %i32 = struct_access %.8dc, element0 [concrete] +// CHECK:STDOUT: %.0c8: ref %tuple.type.a8a = struct_access %.355, element1 [concrete] +// CHECK:STDOUT: %.38c: ref %tuple.type.a8a = struct_access %.8dc, element1 [concrete] +// CHECK:STDOUT: %tuple.elem0.3bb: ref %i32 = tuple_access %.0c8, element0 [concrete] +// CHECK:STDOUT: %.59b: ref %i32 = struct_access imports.%b_ref.var, element1 [concrete] +// CHECK:STDOUT: %.bac: ref %i32 = struct_access file.%b.var, element1 [concrete] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.a.b.151: type = struct_type {.a: %i32, .b: %i32} [concrete] +// CHECK:STDOUT: %struct_type.a.b.b4c: type = struct_type {.a: %i32, .b: %i32} [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.4aa: %struct_type.a.b.cfd = struct_value (%int_1.5b8, %int_2.ecc) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.e71: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3bc: = impl_witness imports.%ImplicitAs.impl_witness_table.6a8, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.777: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.6e2: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.777 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.e71 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3bc) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b69: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.7e8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b69, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.927: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.6e2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.6e2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.ff1: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.6b0: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.72f: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.6e2 [concrete] -// CHECK:STDOUT: %bound_method.c30: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.c3d: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %struct.28e: %struct_type.a.b.151 = struct_value (%int_1.6b0, %int_2.c3d) [concrete] -// CHECK:STDOUT: %C.5dc: type = class_type @C, @C(%struct.28e) [concrete] -// CHECK:STDOUT: %pattern_type.e09: type = pattern_type %C.5dc [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.778: = impl_witness imports.%ImplicitAs.impl_witness_table.1f3, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.778) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2eb: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.d74: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2eb, %ImplicitAs.facet [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: %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.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: %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: %struct.631: %struct_type.a.b.b4c = struct_value (%int_1.0c6, %int_2.295) [concrete] +// CHECK:STDOUT: %C.8d3: type = class_type @C, @C(%struct.631) [concrete] +// CHECK:STDOUT: %pattern_type.20c: type = pattern_type %C.8d3 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Implicit.a_ref: ref %struct_type.a = import_ref Implicit//default, a_ref, loaded [concrete = %a_ref.var] -// CHECK:STDOUT: %Implicit.b_ref: ref %struct_type.a.d.fc7 = import_ref Implicit//default, b_ref, loaded [concrete = %b_ref.var] +// CHECK:STDOUT: %Implicit.b_ref: ref %struct_type.a.d.01c = import_ref Implicit//default, b_ref, loaded [concrete = %b_ref.var] // CHECK:STDOUT: %Implicit.C: %C.type = import_ref Implicit//default, C, loaded [concrete = constants.%C.generic] // CHECK:STDOUT: %Implicit.F: %F.type = import_ref Implicit//default, F, loaded [concrete = constants.%F] -// CHECK:STDOUT: %Implicit.import_ref.b8a: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.867) = import_ref Implicit//default, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.c67)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.6a8 = impl_witness_table (%Implicit.import_ref.b8a), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %a_ref.patt: %pattern_type.afb = ref_binding_pattern a_ref [concrete] -// CHECK:STDOUT: %a_ref.var_patt: %pattern_type.afb = var_pattern %a_ref.patt [concrete] +// CHECK:STDOUT: %Implicit.import_ref.717: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Implicit//default, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.1f3 = impl_witness_table (%Implicit.import_ref.717), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %a_ref.patt: %pattern_type.506 = ref_binding_pattern a_ref [concrete] +// CHECK:STDOUT: %a_ref.var_patt: %pattern_type.506 = var_pattern %a_ref.patt [concrete] // CHECK:STDOUT: %a_ref.var: ref %struct_type.a = var %a_ref.var_patt [concrete] -// CHECK:STDOUT: %Core.import_ref.3f2: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.947) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.c83)] -// CHECK:STDOUT: %Copy.impl_witness_table.53f = impl_witness_table (%Core.import_ref.3f2), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %b_ref.patt: %pattern_type.451 = ref_binding_pattern b_ref [concrete] -// CHECK:STDOUT: %b_ref.var_patt: %pattern_type.451 = var_pattern %b_ref.patt [concrete] -// CHECK:STDOUT: %b_ref.var: ref %struct_type.a.d.fc7 = var %b_ref.var_patt [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %b_ref.patt: %pattern_type.1fb = ref_binding_pattern b_ref [concrete] +// CHECK:STDOUT: %b_ref.var_patt: %pattern_type.1fb = var_pattern %b_ref.patt [concrete] +// CHECK:STDOUT: %b_ref.var: ref %struct_type.a.d.01c = var %b_ref.var_patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.afb = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.afb = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.506 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.506 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %struct_type.a = var %a.var_patt [concrete] // CHECK:STDOUT: %.loc5: type = splice_block %struct_type.a [concrete = constants.%struct_type.a] { @@ -173,57 +173,57 @@ fn F() -> {.x: i32} { // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %struct_type.a = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.451 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.451 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.1fb = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.1fb = var_pattern %b.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.var: ref %struct_type.a.d.fc7 = var %b.var_patt [concrete] -// CHECK:STDOUT: %.loc6_43: type = splice_block %struct_type.a.d [concrete = constants.%struct_type.a.d.fc7] { +// CHECK:STDOUT: %b.var: ref %struct_type.a.d.01c = var %b.var_patt [concrete] +// CHECK:STDOUT: %.loc6_43: type = splice_block %struct_type.a.d [concrete = constants.%struct_type.a.d.01c] { // CHECK:STDOUT: %i32.loc6_18: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc6_28: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc6_32.1: %tuple.type.85c = tuple_literal (%i32.loc6_28) [concrete = constants.%tuple.ef7] -// CHECK:STDOUT: %.loc6_32.2: type = converted %.loc6_32.1, constants.%tuple.type.e3c [concrete = constants.%tuple.type.e3c] -// CHECK:STDOUT: %struct_type.b.c: type = struct_type {.b: %i32, .c: %tuple.type.e3c} [concrete = constants.%struct_type.b.c] +// CHECK:STDOUT: %.loc6_32.1: %tuple.type.85c = tuple_literal (%i32.loc6_28) [concrete = constants.%tuple.19c] +// CHECK:STDOUT: %.loc6_32.2: type = converted %.loc6_32.1, constants.%tuple.type.a8a [concrete = constants.%tuple.type.a8a] +// CHECK:STDOUT: %struct_type.b.c: type = struct_type {.b: %i32, .c: %tuple.type.a8a} [concrete = constants.%struct_type.b.c] // CHECK:STDOUT: %i32.loc6_40: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.d: type = struct_type {.a: %struct_type.b.c, .d: %i32} [concrete = constants.%struct_type.a.d.fc7] +// CHECK:STDOUT: %struct_type.a.d: type = struct_type {.a: %struct_type.b.c, .d: %i32} [concrete = constants.%struct_type.a.d.01c] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: ref %struct_type.a.d.fc7 = ref_binding b, %b.var [concrete = %b.var] +// CHECK:STDOUT: %b: ref %struct_type.a.d.01c = ref_binding b, %b.var [concrete = %b.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.e09 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.e09 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.20c = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.20c = var_pattern %c.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %c.var: ref %C.5dc = var %c.var_patt [concrete] -// CHECK:STDOUT: %.loc7_26.1: type = splice_block %C [concrete = constants.%C.5dc] { +// CHECK:STDOUT: %c.var: ref %C.8d3 = var %c.var_patt [concrete] +// CHECK:STDOUT: %.loc7_26.1: type = splice_block %C [concrete = constants.%C.8d3] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Implicit.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc7_25.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) [concrete = constants.%struct.4aa] -// CHECK:STDOUT: %impl.elem0.loc7_25.1: %.7e8 = impl_witness_access constants.%ImplicitAs.impl_witness.3bc, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.6e2] -// CHECK:STDOUT: %bound_method.loc7_25.1: = bound_method %int_1, %impl.elem0.loc7_25.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.927] +// CHECK:STDOUT: %impl.elem0.loc7_25.1: %.d74 = impl_witness_access constants.%ImplicitAs.impl_witness.778, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc7_25.1: = bound_method %int_1, %impl.elem0.loc7_25.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc7_25.1: = specific_function %impl.elem0.loc7_25.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_25.2: = bound_method %int_1, %specific_fn.loc7_25.1 [concrete = constants.%bound_method.ff1] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_25.1: init %i32 = call %bound_method.loc7_25.2(%int_1) [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc7_25.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_25.1 [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc7_25.3: %i32 = converted %int_1, %.loc7_25.2 [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %impl.elem0.loc7_25.2: %.7e8 = impl_witness_access constants.%ImplicitAs.impl_witness.3bc, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.6e2] -// CHECK:STDOUT: %bound_method.loc7_25.3: = bound_method %int_2, %impl.elem0.loc7_25.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.72f] +// CHECK:STDOUT: %bound_method.loc7_25.2: = bound_method %int_1, %specific_fn.loc7_25.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_25.1: init %i32 = call %bound_method.loc7_25.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_25.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_25.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_25.3: %i32 = converted %int_1, %.loc7_25.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc7_25.2: %.d74 = impl_witness_access constants.%ImplicitAs.impl_witness.778, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc7_25.3: = bound_method %int_2, %impl.elem0.loc7_25.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc7_25.2: = specific_function %impl.elem0.loc7_25.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_25.4: = bound_method %int_2, %specific_fn.loc7_25.2 [concrete = constants.%bound_method.c30] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_25.2: init %i32 = call %bound_method.loc7_25.4(%int_2) [concrete = constants.%int_2.c3d] -// CHECK:STDOUT: %.loc7_25.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_25.2 [concrete = constants.%int_2.c3d] -// CHECK:STDOUT: %.loc7_25.5: %i32 = converted %int_2, %.loc7_25.4 [concrete = constants.%int_2.c3d] -// CHECK:STDOUT: %struct: %struct_type.a.b.151 = struct_value (%.loc7_25.3, %.loc7_25.5) [concrete = constants.%struct.28e] -// CHECK:STDOUT: %.loc7_26.2: %struct_type.a.b.151 = converted %.loc7_25.1, %struct [concrete = constants.%struct.28e] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%struct.28e) [concrete = constants.%C.5dc] +// CHECK:STDOUT: %bound_method.loc7_25.4: = bound_method %int_2, %specific_fn.loc7_25.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_25.2: init %i32 = call %bound_method.loc7_25.4(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc7_25.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_25.2 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc7_25.5: %i32 = converted %int_2, %.loc7_25.4 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %struct: %struct_type.a.b.b4c = struct_value (%.loc7_25.3, %.loc7_25.5) [concrete = constants.%struct.631] +// CHECK:STDOUT: %.loc7_26.2: %struct_type.a.b.b4c = converted %.loc7_25.1, %struct [concrete = constants.%struct.631] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%struct.631) [concrete = constants.%C.8d3] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: ref %C.5dc = ref_binding c, %c.var [concrete = %c.var] +// CHECK:STDOUT: %c: ref %C.8d3 = ref_binding c, %c.var [concrete = %c.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a_ref.ref: ref %struct_type.a = name_ref a_ref, imports.%Implicit.a_ref [concrete = imports.%a_ref.var] -// CHECK:STDOUT: %.loc5_20.1: ref %i32 = struct_access %a_ref.ref, element0 [concrete = constants.%.546] +// CHECK:STDOUT: %.loc5_20.1: ref %i32 = struct_access %a_ref.ref, element0 [concrete = constants.%.802] // CHECK:STDOUT: %.loc5_20.2: %i32 = acquire_value %.loc5_20.1 -// CHECK:STDOUT: %impl.elem0.loc5: %.b11 = impl_witness_access constants.%Copy.impl_witness.7e7, element0 [concrete = constants.%Int.as.Copy.impl.Op.59c] +// CHECK:STDOUT: %impl.elem0.loc5: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc5_20.1: = bound_method %.loc5_20.2, %impl.elem0.loc5 // CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc5_20.2: = bound_method %.loc5_20.2, %specific_fn.loc5 @@ -231,47 +231,47 @@ fn F() -> {.x: i32} { // CHECK:STDOUT: %.loc5_20.3: init %struct_type.a to file.%a.var = struct_init (%Int.as.Copy.impl.Op.call.loc5) // CHECK:STDOUT: %.loc5_1: init %struct_type.a = converted %a_ref.ref, %.loc5_20.3 // CHECK:STDOUT: assign file.%a.var, %.loc5_1 -// CHECK:STDOUT: %b_ref.ref: ref %struct_type.a.d.fc7 = name_ref b_ref, imports.%Implicit.b_ref [concrete = imports.%b_ref.var] -// CHECK:STDOUT: %.loc6_47.1: ref %struct_type.b.c = struct_access %b_ref.ref, element0 [concrete = constants.%.deb] -// CHECK:STDOUT: %.loc6_47.2: ref %i32 = struct_access %.loc6_47.1, element0 [concrete = constants.%.3af] +// CHECK:STDOUT: %b_ref.ref: ref %struct_type.a.d.01c = name_ref b_ref, imports.%Implicit.b_ref [concrete = imports.%b_ref.var] +// CHECK:STDOUT: %.loc6_47.1: ref %struct_type.b.c = struct_access %b_ref.ref, element0 [concrete = constants.%.355] +// CHECK:STDOUT: %.loc6_47.2: ref %i32 = struct_access %.loc6_47.1, element0 [concrete = constants.%.379] // CHECK:STDOUT: %.loc6_47.3: %i32 = acquire_value %.loc6_47.2 -// CHECK:STDOUT: %impl.elem0.loc6_47.1: %.b11 = impl_witness_access constants.%Copy.impl_witness.7e7, element0 [concrete = constants.%Int.as.Copy.impl.Op.59c] +// CHECK:STDOUT: %impl.elem0.loc6_47.1: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_47.1: = bound_method %.loc6_47.3, %impl.elem0.loc6_47.1 // CHECK:STDOUT: %specific_fn.loc6_47.1: = specific_function %impl.elem0.loc6_47.1, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc6_47.2: = bound_method %.loc6_47.3, %specific_fn.loc6_47.1 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc6_47.1: init %i32 = call %bound_method.loc6_47.2(%.loc6_47.3) -// CHECK:STDOUT: %.loc6_47.4: ref %struct_type.b.c = struct_access file.%b.var, element0 [concrete = constants.%.605] -// CHECK:STDOUT: %.loc6_47.5: ref %i32 = struct_access %.loc6_47.4, element0 [concrete = constants.%.e08] +// CHECK:STDOUT: %.loc6_47.4: ref %struct_type.b.c = struct_access file.%b.var, element0 [concrete = constants.%.8dc] +// CHECK:STDOUT: %.loc6_47.5: ref %i32 = struct_access %.loc6_47.4, element0 [concrete = constants.%.ef7] // CHECK:STDOUT: %.loc6_47.6: init %i32 to %.loc6_47.5 = in_place_init %Int.as.Copy.impl.Op.call.loc6_47.1 -// CHECK:STDOUT: %.loc6_47.7: ref %tuple.type.e3c = struct_access %.loc6_47.1, element1 [concrete = constants.%.7f8] -// CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %.loc6_47.7, element0 [concrete = constants.%tuple.elem0.11b] +// CHECK:STDOUT: %.loc6_47.7: ref %tuple.type.a8a = struct_access %.loc6_47.1, element1 [concrete = constants.%.0c8] +// CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %.loc6_47.7, element0 [concrete = constants.%tuple.elem0.3bb] // CHECK:STDOUT: %.loc6_47.8: %i32 = acquire_value %tuple.elem0 -// CHECK:STDOUT: %impl.elem0.loc6_47.2: %.b11 = impl_witness_access constants.%Copy.impl_witness.7e7, element0 [concrete = constants.%Int.as.Copy.impl.Op.59c] +// CHECK:STDOUT: %impl.elem0.loc6_47.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_47.3: = bound_method %.loc6_47.8, %impl.elem0.loc6_47.2 // CHECK:STDOUT: %specific_fn.loc6_47.2: = specific_function %impl.elem0.loc6_47.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc6_47.4: = bound_method %.loc6_47.8, %specific_fn.loc6_47.2 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc6_47.2: init %i32 = call %bound_method.loc6_47.4(%.loc6_47.8) -// CHECK:STDOUT: %.loc6_47.9: ref %tuple.type.e3c = struct_access %.loc6_47.4, element1 [concrete = constants.%.df1] -// CHECK:STDOUT: %.loc6_47.10: init %tuple.type.e3c to %.loc6_47.9 = tuple_init (%Int.as.Copy.impl.Op.call.loc6_47.2) -// CHECK:STDOUT: %.loc6_47.11: init %tuple.type.e3c = converted %.loc6_47.7, %.loc6_47.10 -// CHECK:STDOUT: %.loc6_47.12: init %tuple.type.e3c to %.loc6_47.9 = in_place_init %.loc6_47.11 +// CHECK:STDOUT: %.loc6_47.9: ref %tuple.type.a8a = struct_access %.loc6_47.4, element1 [concrete = constants.%.38c] +// CHECK:STDOUT: %.loc6_47.10: init %tuple.type.a8a to %.loc6_47.9 = tuple_init (%Int.as.Copy.impl.Op.call.loc6_47.2) +// CHECK:STDOUT: %.loc6_47.11: init %tuple.type.a8a = converted %.loc6_47.7, %.loc6_47.10 +// CHECK:STDOUT: %.loc6_47.12: init %tuple.type.a8a to %.loc6_47.9 = in_place_init %.loc6_47.11 // CHECK:STDOUT: %.loc6_47.13: init %struct_type.b.c to %.loc6_47.4 = struct_init (%.loc6_47.6, %.loc6_47.12) // CHECK:STDOUT: %.loc6_47.14: init %struct_type.b.c = converted %.loc6_47.1, %.loc6_47.13 -// CHECK:STDOUT: %.loc6_47.15: ref %i32 = struct_access %b_ref.ref, element1 [concrete = constants.%.fef] +// CHECK:STDOUT: %.loc6_47.15: ref %i32 = struct_access %b_ref.ref, element1 [concrete = constants.%.59b] // CHECK:STDOUT: %.loc6_47.16: %i32 = acquire_value %.loc6_47.15 -// CHECK:STDOUT: %impl.elem0.loc6_47.3: %.b11 = impl_witness_access constants.%Copy.impl_witness.7e7, element0 [concrete = constants.%Int.as.Copy.impl.Op.59c] +// CHECK:STDOUT: %impl.elem0.loc6_47.3: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_47.5: = bound_method %.loc6_47.16, %impl.elem0.loc6_47.3 // CHECK:STDOUT: %specific_fn.loc6_47.3: = specific_function %impl.elem0.loc6_47.3, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc6_47.6: = bound_method %.loc6_47.16, %specific_fn.loc6_47.3 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc6_47.3: init %i32 = call %bound_method.loc6_47.6(%.loc6_47.16) -// CHECK:STDOUT: %.loc6_47.17: ref %i32 = struct_access file.%b.var, element1 [concrete = constants.%.114] +// CHECK:STDOUT: %.loc6_47.17: ref %i32 = struct_access file.%b.var, element1 [concrete = constants.%.bac] // CHECK:STDOUT: %.loc6_47.18: init %i32 to %.loc6_47.17 = in_place_init %Int.as.Copy.impl.Op.call.loc6_47.3 -// CHECK:STDOUT: %.loc6_47.19: init %struct_type.a.d.fc7 to file.%b.var = struct_init (%.loc6_47.14, %.loc6_47.18) -// CHECK:STDOUT: %.loc6_1: init %struct_type.a.d.fc7 = converted %b_ref.ref, %.loc6_47.19 +// CHECK:STDOUT: %.loc6_47.19: init %struct_type.a.d.01c to file.%b.var = struct_init (%.loc6_47.14, %.loc6_47.18) +// CHECK:STDOUT: %.loc6_1: init %struct_type.a.d.01c = converted %b_ref.ref, %.loc6_47.19 // CHECK:STDOUT: assign file.%b.var, %.loc6_1 // CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%Implicit.F [concrete = constants.%F] -// CHECK:STDOUT: %.loc7: ref %C.5dc = splice_block file.%c.var [concrete = file.%c.var] {} -// CHECK:STDOUT: %F.call: init %C.5dc to %.loc7 = call %F.ref() +// CHECK:STDOUT: %.loc7: ref %C.8d3 = splice_block file.%c.var [concrete = file.%c.var] {} +// CHECK:STDOUT: %F.call: init %C.8d3 to %.loc7 = call %F.ref() // CHECK:STDOUT: assign file.%c.var, %F.call // CHECK:STDOUT: // CHECK:STDOUT: } @@ -290,31 +290,31 @@ fn F() -> {.x: i32} { // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.a8b: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.1ca [concrete] +// CHECK:STDOUT: %assoc0.d9a: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.a1f [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1, %Int.as.Copy.impl.Op.ce7 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1, %Int.as.Copy.impl.Op.4f6 [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: %bound_method: = bound_method %int_1, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//symbolic_decl, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.C: type = import_ref Main//symbolic_decl, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.7f5: %I.assoc_type = import_ref Main//symbolic_decl, loc5_12, loaded [concrete = constants.%assoc0.a8b] -// CHECK:STDOUT: %Main.import_ref.9d6: %struct_type.x = import_ref Main//symbolic_decl, loc10_37, loaded [concrete = constants.%struct] -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.9d6), @C.as.I.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.1ca: %struct_type.x = import_ref Main//symbolic_decl, loc5_12, loaded [concrete = %value] +// CHECK:STDOUT: %Main.import_ref.a6f: %I.assoc_type = import_ref Main//symbolic_decl, loc5_12, loaded [concrete = constants.%assoc0.d9a] +// CHECK:STDOUT: %Main.import_ref.ac0: %struct_type.x = import_ref Main//symbolic_decl, loc10_37, loaded [concrete = constants.%struct] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.ac0), @C.as.I.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.a1f: %struct_type.x = import_ref Main//symbolic_decl, loc5_12, loaded [concrete = %value] // CHECK:STDOUT: %value: %struct_type.x = assoc_const_decl @value [concrete] {} -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> out %return.param: %struct_type.x { @@ -325,10 +325,10 @@ fn F() -> {.x: i32} { // CHECK:STDOUT: %.loc7_13: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_13 [concrete = constants.%C] // CHECK:STDOUT: %.loc7_18.1: type = converted %.loc7_13, %as_type [concrete = constants.%C] -// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.7f5 [concrete = constants.%assoc0.a8b] +// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.a6f [concrete = constants.%assoc0.d9a] // CHECK:STDOUT: %impl.elem0.loc7_18.1: %struct_type.x = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%struct] // CHECK:STDOUT: %.loc7_18.2: %i32 = struct_access %impl.elem0.loc7_18.1, element0 [concrete = constants.%int_1] -// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc7_18.1: = bound_method %.loc7_18.2, %impl.elem0.loc7_18.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc7_18.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc7_18.2: = bound_method %.loc7_18.2, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/struct/literal_member_access.carbon b/toolchain/check/testdata/struct/literal_member_access.carbon index 0a9b3f0d1847..26d28f7738df 100644 --- a/toolchain/check/testdata/struct/literal_member_access.carbon +++ b/toolchain/check/testdata/struct/literal_member_access.carbon @@ -28,31 +28,31 @@ fn F() -> i32 { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %struct_type.x.y.z: type = struct_type {.x: %i32, .y: %i32, .z: %i32} [concrete] -// CHECK:STDOUT: %.fb8: Core.Form = init_form %struct_type.x.y.z [concrete] -// CHECK:STDOUT: %pattern_type.19f: type = pattern_type %struct_type.x.y.z [concrete] +// CHECK:STDOUT: %.2d9: Core.Form = init_form %struct_type.x.y.z [concrete] +// CHECK:STDOUT: %pattern_type.62c: type = pattern_type %struct_type.x.y.z [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] -// CHECK:STDOUT: %struct_type.a.b.c.d0e: type = struct_type {.a: Core.IntLiteral, .b: %struct_type.x.y.z, .c: Core.IntLiteral} [concrete] +// CHECK:STDOUT: %struct_type.a.b.c.a1d: type = struct_type {.a: Core.IntLiteral, .b: %struct_type.x.y.z, .c: Core.IntLiteral} [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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.790b3b.3: type = fn_type @Destroy.Op.loc18_26.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -65,8 +65,8 @@ fn F() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -78,23 +78,23 @@ fn F() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.19f = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.19f = return_slot_pattern %return.param_patt, %struct_type.x.y.z [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.62c = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.62c = return_slot_pattern %return.param_patt, %struct_type.x.y.z [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc15_25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc15_34: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.x.y.z: type = struct_type {.x: %i32, .y: %i32, .z: %i32} [concrete = constants.%struct_type.x.y.z] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %struct_type.x.y.z [concrete = constants.%.fb8] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %struct_type.x.y.z [concrete = constants.%.2d9] // CHECK:STDOUT: %return.param: ref %struct_type.x.y.z = out_param call_param0 // CHECK:STDOUT: %return: ref %struct_type.x.y.z = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc17: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc17: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -109,7 +109,7 @@ fn F() -> i32 { // CHECK:STDOUT: %.loc18_26.1: ref %struct_type.x.y.z = temporary_storage // CHECK:STDOUT: %G.call: init %struct_type.x.y.z to %.loc18_26.1 = call %G.ref() // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] -// CHECK:STDOUT: %.loc18_35.1: %struct_type.a.b.c.d0e = struct_literal (%int_1, %G.call, %int_3) +// CHECK:STDOUT: %.loc18_35.1: %struct_type.a.b.c.a1d = struct_literal (%int_1, %G.call, %int_3) // CHECK:STDOUT: %.loc18_26.2: ref %struct_type.x.y.z = temporary %.loc18_26.1, %G.call // CHECK:STDOUT: %.loc18_26.3: ref %i32 = struct_access %.loc18_26.2, element0 // CHECK:STDOUT: %.loc18_26.4: %i32 = acquire_value %.loc18_26.3 @@ -119,16 +119,16 @@ fn F() -> i32 { // CHECK:STDOUT: %.loc18_26.8: %i32 = acquire_value %.loc18_26.7 // CHECK:STDOUT: %struct.loc18_26: %struct_type.x.y.z = struct_value (%.loc18_26.4, %.loc18_26.6, %.loc18_26.8) // CHECK:STDOUT: %.loc18_35.2: %struct_type.x.y.z = converted %G.call, %struct.loc18_26 -// CHECK:STDOUT: %struct.loc18_35: %struct_type.a.b.c.d0e = struct_value (%int_1, %.loc18_35.2, %int_3) -// CHECK:STDOUT: %.loc18_35.3: %struct_type.a.b.c.d0e = converted %.loc18_35.1, %struct.loc18_35 +// CHECK:STDOUT: %struct.loc18_35: %struct_type.a.b.c.a1d = struct_value (%int_1, %.loc18_35.2, %int_3) +// CHECK:STDOUT: %.loc18_35.3: %struct_type.a.b.c.a1d = converted %.loc18_35.1, %struct.loc18_35 // CHECK:STDOUT: %.loc18_36: %struct_type.x.y.z = struct_access %.loc18_35.3, element1 // CHECK:STDOUT: %.loc18_38: %i32 = struct_access %.loc18_36, element1 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc18_38.1: = bound_method %.loc18_38, %impl.elem0 // 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.2dd605.3 +// 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: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/member_access.carbon b/toolchain/check/testdata/struct/member_access.carbon index 027b3d7c438a..58302690f4cc 100644 --- a/toolchain/check/testdata/struct/member_access.carbon +++ b/toolchain/check/testdata/struct/member_access.carbon @@ -23,60 +23,60 @@ var z: i32 = y; // CHECK:STDOUT: %Float.type: type = generic_class_type @Float [concrete] // CHECK:STDOUT: %Float.generic: %Float.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %struct_type.a.b.95f: type = struct_type {.a: %f64.b55, .b: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.ef1: type = pattern_type %struct_type.a.b.95f [concrete] +// CHECK:STDOUT: %struct_type.a.b.09c: type = struct_type {.a: %f64.dc1, .b: %i32} [concrete] +// CHECK:STDOUT: %pattern_type.0ed: type = pattern_type %struct_type.a.b.09c [concrete] // CHECK:STDOUT: %float.1f7: Core.FloatLiteral = float_literal_value 0e-1 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.a.b.0cc: type = struct_type {.a: Core.FloatLiteral, .b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.877: %struct_type.a.b.0cc = struct_value (%float.1f7, %int_1.5b8) [concrete] -// CHECK:STDOUT: %.fbd: ref %f64.b55 = struct_access file.%x.var, element0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.857: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.b55)> [concrete] +// CHECK:STDOUT: %.c34: ref %f64.dc1 = struct_access file.%x.var, element0 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.91e: type = facet_type <@ImplicitAs, @ImplicitAs(%f64.dc1)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.539: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.83f: = impl_witness imports.%ImplicitAs.impl_witness_table.234, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5c5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.e52: %ImplicitAs.type.857 = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.83f) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.096: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.b55, %ImplicitAs.facet.e52) [concrete] -// CHECK:STDOUT: %.119: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.096, %ImplicitAs.facet.e52 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881 [concrete] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.881, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] -// CHECK:STDOUT: %bound_method.a29: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %float.1af: %f64.b55 = float_value 0 [concrete] -// CHECK:STDOUT: %.2b7: ref %i32 = struct_access file.%x.var, element1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.840: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.840) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet.840 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %struct.4b2: %struct_type.a.b.95f = struct_value (%float.1af, %int_1.d9c) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.43c: = impl_witness imports.%ImplicitAs.impl_witness_table.393, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0: type = fn_type @Core.FloatLiteral.as.ImplicitAs.impl.Convert, @Core.FloatLiteral.as.ImplicitAs.impl(%int_64) [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.ef0 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.7d2: %ImplicitAs.type.91e = facet_value Core.FloatLiteral, (%ImplicitAs.impl_witness.43c) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6c5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%f64.dc1, %ImplicitAs.facet.7d2) [concrete] +// CHECK:STDOUT: %.2d7: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.6c5, %ImplicitAs.facet.7d2 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0 [concrete] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(%int_64) [concrete] +// CHECK:STDOUT: %bound_method.819: = 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: %.46a: ref %i32 = struct_access file.%x.var, element1 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.9f1: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet.9f1) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet.9f1 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// 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.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: %struct.77f: %struct_type.a.b.09c = struct_value (%float.895, %int_1.0c6) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -90,14 +90,14 @@ var z: i32 = y; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Float: %Float.type = import_ref Core//prelude/parts/float, Float, loaded [concrete = constants.%Float.generic] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.63c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.5e6) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.539)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.234 = impl_witness_table (%Core.import_ref.63c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.c4c: @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type (%Core.FloatLiteral.as.ImplicitAs.impl.Convert.type.063) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Core.FloatLiteral.as.ImplicitAs.impl.%Core.FloatLiteral.as.ImplicitAs.impl.Convert (constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.d4f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.393 = impl_witness_table (%Core.import_ref.c4c), @Core.FloatLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -109,26 +109,26 @@ var z: i32 = y; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.ef1 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.ef1 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.0ed = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.0ed = var_pattern %x.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %x.var: ref %struct_type.a.b.95f = var %x.var_patt [concrete] -// CHECK:STDOUT: %.loc15: type = splice_block %struct_type.a.b [concrete = constants.%struct_type.a.b.95f] { -// CHECK:STDOUT: %f64: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] +// CHECK:STDOUT: %x.var: ref %struct_type.a.b.09c = var %x.var_patt [concrete] +// CHECK:STDOUT: %.loc15: type = splice_block %struct_type.a.b [concrete = constants.%struct_type.a.b.09c] { +// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %f64.b55, .b: %i32} [concrete = constants.%struct_type.a.b.95f] +// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %f64.dc1, .b: %i32} [concrete = constants.%struct_type.a.b.09c] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: ref %struct_type.a.b.95f = ref_binding x, %x.var [concrete = %x.var] +// CHECK:STDOUT: %x: ref %struct_type.a.b.09c = ref_binding x, %x.var [concrete = %x.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.104 = ref_binding_pattern y [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type.104 = var_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.6b6 = ref_binding_pattern y [concrete] +// CHECK:STDOUT: %y.var_patt: %pattern_type.6b6 = var_pattern %y.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %y.var: ref %i32 = var %y.var_patt [concrete] // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %y: ref %i32 = ref_binding y, %y.var [concrete = %y.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %z.patt: %pattern_type.104 = ref_binding_pattern z [concrete] -// CHECK:STDOUT: %z.var_patt: %pattern_type.104 = var_pattern %z.patt [concrete] +// CHECK:STDOUT: %z.patt: %pattern_type.6b6 = ref_binding_pattern z [concrete] +// CHECK:STDOUT: %z.var_patt: %pattern_type.6b6 = var_pattern %z.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %z.var: ref %i32 = var %z.var_patt [concrete] // CHECK:STDOUT: %i32.loc17: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -140,29 +140,29 @@ var z: i32 = y; // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 0e-1 [concrete = constants.%float.1f7] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc15_46.1: %struct_type.a.b.0cc = struct_literal (%float, %int_1) [concrete = constants.%struct.877] -// CHECK:STDOUT: %impl.elem0.loc15_46.1: %.119 = impl_witness_access constants.%ImplicitAs.impl_witness.83f, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.881] +// CHECK:STDOUT: %impl.elem0.loc15_46.1: %.2d7 = impl_witness_access constants.%ImplicitAs.impl_witness.43c, element0 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.cf0] // CHECK:STDOUT: %bound_method.loc15_46.1: = bound_method %float, %impl.elem0.loc15_46.1 [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc15_46.1: = specific_function %impl.elem0.loc15_46.1, @Core.FloatLiteral.as.ImplicitAs.impl.Convert(constants.%int_64) [concrete = constants.%Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_46.2: = bound_method %float, %specific_fn.loc15_46.1 [concrete = constants.%bound_method.a29] -// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.b55 = call %bound_method.loc15_46.2(%float) [concrete = constants.%float.1af] -// CHECK:STDOUT: %.loc15_46.2: init %f64.b55 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.1af] -// CHECK:STDOUT: %.loc15_46.3: ref %f64.b55 = struct_access file.%x.var, element0 [concrete = constants.%.fbd] -// CHECK:STDOUT: %.loc15_46.4: init %f64.b55 to %.loc15_46.3 = in_place_init %.loc15_46.2 [concrete = constants.%float.1af] -// CHECK:STDOUT: %impl.elem0.loc15_46.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %bound_method.loc15_46.2: = bound_method %float, %specific_fn.loc15_46.1 [concrete = constants.%bound_method.819] +// CHECK:STDOUT: %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call: init %f64.dc1 = call %bound_method.loc15_46.2(%float) [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc15_46.2: init %f64.dc1 = converted %float, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%float.895] +// CHECK:STDOUT: %.loc15_46.3: ref %f64.dc1 = struct_access file.%x.var, element0 [concrete = constants.%.c34] +// CHECK:STDOUT: %.loc15_46.4: init %f64.dc1 to %.loc15_46.3 = in_place_init %.loc15_46.2 [concrete = constants.%float.895] +// CHECK:STDOUT: %impl.elem0.loc15_46.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc15_46.3: = bound_method %int_1, %impl.elem0.loc15_46.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc15_46.2: = specific_function %impl.elem0.loc15_46.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_46.4: = bound_method %int_1, %specific_fn.loc15_46.2 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_46.4(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc15_46.5: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc15_46.6: ref %i32 = struct_access file.%x.var, element1 [concrete = constants.%.2b7] -// CHECK:STDOUT: %.loc15_46.7: init %i32 to %.loc15_46.6 = in_place_init %.loc15_46.5 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc15_46.8: init %struct_type.a.b.95f to file.%x.var = struct_init (%.loc15_46.4, %.loc15_46.7) [concrete = constants.%struct.4b2] -// CHECK:STDOUT: %.loc15_1: init %struct_type.a.b.95f = converted %.loc15_46.1, %.loc15_46.8 [concrete = constants.%struct.4b2] +// CHECK:STDOUT: %bound_method.loc15_46.4: = bound_method %int_1, %specific_fn.loc15_46.2 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_46.4(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc15_46.5: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc15_46.6: ref %i32 = struct_access file.%x.var, element1 [concrete = constants.%.46a] +// CHECK:STDOUT: %.loc15_46.7: init %i32 to %.loc15_46.6 = in_place_init %.loc15_46.5 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc15_46.8: init %struct_type.a.b.09c to file.%x.var = struct_init (%.loc15_46.4, %.loc15_46.7) [concrete = constants.%struct.77f] +// CHECK:STDOUT: %.loc15_1: init %struct_type.a.b.09c = converted %.loc15_46.1, %.loc15_46.8 [concrete = constants.%struct.77f] // CHECK:STDOUT: assign file.%x.var, %.loc15_1 -// CHECK:STDOUT: %x.ref: ref %struct_type.a.b.95f = name_ref x, file.%x [concrete = file.%x.var] -// CHECK:STDOUT: %.loc16_15.1: ref %i32 = struct_access %x.ref, element1 [concrete = constants.%.2b7] +// CHECK:STDOUT: %x.ref: ref %struct_type.a.b.09c = name_ref x, file.%x [concrete = file.%x.var] +// CHECK:STDOUT: %.loc16_15.1: ref %i32 = struct_access %x.ref, element1 [concrete = constants.%.46a] // CHECK:STDOUT: %.loc16_15.2: %i32 = acquire_value %.loc16_15.1 -// CHECK:STDOUT: %impl.elem0.loc16: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc16: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc16_15.1: = bound_method %.loc16_15.2, %impl.elem0.loc16 // 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_15.2: = bound_method %.loc16_15.2, %specific_fn.loc16 @@ -170,7 +170,7 @@ var z: i32 = y; // CHECK:STDOUT: assign file.%y.var, %Int.as.Copy.impl.Op.call.loc16 // CHECK:STDOUT: %y.ref: ref %i32 = name_ref y, file.%y [concrete = file.%y.var] // CHECK:STDOUT: %.loc17: %i32 = acquire_value %y.ref -// CHECK:STDOUT: %impl.elem0.loc17: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc17: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc17_14.1: = bound_method %.loc17, %impl.elem0.loc17 // 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_14.2: = bound_method %.loc17, %specific_fn.loc17 diff --git a/toolchain/check/testdata/struct/nested_struct_in_place.carbon b/toolchain/check/testdata/struct/nested_struct_in_place.carbon index 3366c6698543..a7a9653cc2d8 100644 --- a/toolchain/check/testdata/struct/nested_struct_in_place.carbon +++ b/toolchain/check/testdata/struct/nested_struct_in_place.carbon @@ -28,19 +28,19 @@ fn G() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.ff9: type = tuple_type (type, type, type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type.ff9 = tuple_value (%i32, %i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.05f: type = tuple_type (%i32, %i32, %i32) [concrete] -// CHECK:STDOUT: %.fd3: Core.Form = init_form %tuple.type.05f [concrete] -// CHECK:STDOUT: %pattern_type.776: type = pattern_type %tuple.type.05f [concrete] +// CHECK:STDOUT: %tuple.type.555: type = tuple_type (%i32, %i32, %i32) [concrete] +// CHECK:STDOUT: %.718: Core.Form = init_form %tuple.type.555 [concrete] +// CHECK:STDOUT: %pattern_type.777: type = pattern_type %tuple.type.555 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.a.b.120: type = struct_type {.a: %tuple.type.05f, .b: %tuple.type.05f} [concrete] +// CHECK:STDOUT: %struct_type.a.b.2a0: type = struct_type {.a: %tuple.type.555, .b: %tuple.type.555} [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.f0c: type = pattern_type %struct_type.a.b.120 [concrete] +// CHECK:STDOUT: %pattern_type.28f: type = pattern_type %struct_type.a.b.2a0 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc18_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -62,55 +62,55 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.776 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.776 = return_slot_pattern %return.param_patt, %.loc15_25.2 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.777 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.777 = return_slot_pattern %return.param_patt, %.loc15_25.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_12: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc15_17: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc15_22: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc15_25.1: %tuple.type.ff9 = tuple_literal (%i32.loc15_12, %i32.loc15_17, %i32.loc15_22) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc15_25.2: type = converted %.loc15_25.1, constants.%tuple.type.05f [concrete = constants.%tuple.type.05f] -// CHECK:STDOUT: %.loc15_25.3: Core.Form = init_form %.loc15_25.2 [concrete = constants.%.fd3] -// CHECK:STDOUT: %return.param: ref %tuple.type.05f = out_param call_param0 -// CHECK:STDOUT: %return: ref %tuple.type.05f = return_slot %return.param +// CHECK:STDOUT: %.loc15_25.2: type = converted %.loc15_25.1, constants.%tuple.type.555 [concrete = constants.%tuple.type.555] +// CHECK:STDOUT: %.loc15_25.3: Core.Form = init_form %.loc15_25.2 [concrete = constants.%.718] +// CHECK:STDOUT: %return.param: ref %tuple.type.555 = out_param call_param0 +// CHECK:STDOUT: %return: ref %tuple.type.555 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> out %return.param: %tuple.type.05f; +// CHECK:STDOUT: fn @F() -> out %return.param: %tuple.type.555; // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.f0c = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.f0c = var_pattern %v.patt [concrete] +// 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: } -// CHECK:STDOUT: %v.var: ref %struct_type.a.b.120 = var %v.var_patt +// CHECK:STDOUT: %v.var: ref %struct_type.a.b.2a0 = var %v.var_patt // CHECK:STDOUT: %F.ref.loc18_68: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %.loc18_81.1: ref %tuple.type.05f = struct_access %v.var, element0 -// CHECK:STDOUT: %F.call.loc18_70: init %tuple.type.05f to %.loc18_81.1 = call %F.ref.loc18_68() +// CHECK:STDOUT: %.loc18_81.1: ref %tuple.type.555 = struct_access %v.var, element0 +// CHECK:STDOUT: %F.call.loc18_70: init %tuple.type.555 to %.loc18_81.1 = call %F.ref.loc18_68() // CHECK:STDOUT: %F.ref.loc18_78: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %.loc18_81.2: ref %tuple.type.05f = struct_access %v.var, element1 -// CHECK:STDOUT: %F.call.loc18_80: init %tuple.type.05f to %.loc18_81.2 = call %F.ref.loc18_78() -// CHECK:STDOUT: %.loc18_81.3: %struct_type.a.b.120 = struct_literal (%F.call.loc18_70, %F.call.loc18_80) -// CHECK:STDOUT: %.loc18_81.4: init %struct_type.a.b.120 to %v.var = struct_init (%F.call.loc18_70, %F.call.loc18_80) -// CHECK:STDOUT: %.loc18_3: init %struct_type.a.b.120 = converted %.loc18_81.3, %.loc18_81.4 +// CHECK:STDOUT: %.loc18_81.2: ref %tuple.type.555 = struct_access %v.var, element1 +// CHECK:STDOUT: %F.call.loc18_80: init %tuple.type.555 to %.loc18_81.2 = call %F.ref.loc18_78() +// CHECK:STDOUT: %.loc18_81.3: %struct_type.a.b.2a0 = struct_literal (%F.call.loc18_70, %F.call.loc18_80) +// CHECK:STDOUT: %.loc18_81.4: init %struct_type.a.b.2a0 to %v.var = struct_init (%F.call.loc18_70, %F.call.loc18_80) +// CHECK:STDOUT: %.loc18_3: init %struct_type.a.b.2a0 = converted %.loc18_81.3, %.loc18_81.4 // CHECK:STDOUT: assign %v.var, %.loc18_3 -// CHECK:STDOUT: %.loc18_58: type = splice_block %struct_type.a.b [concrete = constants.%struct_type.a.b.120] { +// CHECK:STDOUT: %.loc18_58: type = splice_block %struct_type.a.b [concrete = constants.%struct_type.a.b.2a0] { // CHECK:STDOUT: %i32.loc18_23: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc18_28: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc18_33: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc18_36.1: %tuple.type.ff9 = tuple_literal (%i32.loc18_23, %i32.loc18_28, %i32.loc18_33) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc18_36.2: type = converted %.loc18_36.1, constants.%tuple.type.05f [concrete = constants.%tuple.type.05f] +// CHECK:STDOUT: %.loc18_36.2: type = converted %.loc18_36.1, constants.%tuple.type.555 [concrete = constants.%tuple.type.555] // CHECK:STDOUT: %i32.loc18_44: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc18_49: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc18_54: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc18_57.1: %tuple.type.ff9 = tuple_literal (%i32.loc18_44, %i32.loc18_49, %i32.loc18_54) [concrete = constants.%tuple] -// CHECK:STDOUT: %.loc18_57.2: type = converted %.loc18_57.1, constants.%tuple.type.05f [concrete = constants.%tuple.type.05f] -// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %tuple.type.05f, .b: %tuple.type.05f} [concrete = constants.%struct_type.a.b.120] +// CHECK:STDOUT: %.loc18_57.2: type = converted %.loc18_57.1, constants.%tuple.type.555 [concrete = constants.%tuple.type.555] +// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %tuple.type.555, .b: %tuple.type.555} [concrete = constants.%struct_type.a.b.2a0] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref %struct_type.a.b.120 = ref_binding v, %v.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.2dd605.4 +// CHECK:STDOUT: %v: ref %struct_type.a.b.2a0 = ref_binding v, %v.var +// 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: return // CHECK:STDOUT: } @@ -122,12 +122,12 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc18_3.3(%self.param: ref %tuple.type.05f) { +// CHECK:STDOUT: fn @Destroy.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.120) { +// CHECK:STDOUT: fn @Destroy.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/struct/one_entry.carbon b/toolchain/check/testdata/struct/one_entry.carbon index 26fb1dc526b9..29e4d9fa3303 100644 --- a/toolchain/check/testdata/struct/one_entry.carbon +++ b/toolchain/check/testdata/struct/one_entry.carbon @@ -23,39 +23,39 @@ var y: {.a: i32} = x; // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %struct_type.a.1c5: type = struct_type {.a: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.d7c: type = pattern_type %struct_type.a.1c5 [concrete] +// CHECK:STDOUT: %struct_type.a.a92: type = struct_type {.a: %i32} [concrete] +// CHECK:STDOUT: %pattern_type.506: type = pattern_type %struct_type.a.a92 [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %struct_type.a.a6c: type = struct_type {.a: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.2cb: %struct_type.a.a6c = struct_value (%int_4.0c1) [concrete] -// CHECK:STDOUT: %.5b0: ref %i32 = struct_access file.%x.var, element0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %.587: ref %i32 = struct_access file.%x.var, element0 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_4.a4d: %i32 = int_value 4 [concrete] -// CHECK:STDOUT: %struct.1b4: %struct_type.a.1c5 = struct_value (%int_4.a4d) [concrete] +// CHECK:STDOUT: %int_4.4eb: %i32 = int_value 4 [concrete] +// CHECK:STDOUT: %struct.751: %struct_type.a.a92 = struct_value (%int_4.4eb) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -67,12 +67,12 @@ var y: {.a: i32} = x; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -83,50 +83,50 @@ var y: {.a: i32} = x; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.d7c = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.d7c = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.506 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.506 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %x.var: ref %struct_type.a.1c5 = var %x.var_patt [concrete] -// CHECK:STDOUT: %.loc15: type = splice_block %struct_type.a.loc15 [concrete = constants.%struct_type.a.1c5] { +// CHECK:STDOUT: %x.var: ref %struct_type.a.a92 = var %x.var_patt [concrete] +// CHECK:STDOUT: %.loc15: type = splice_block %struct_type.a.loc15 [concrete = constants.%struct_type.a.a92] { // CHECK:STDOUT: %i32.loc15: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.loc15: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a.1c5] +// CHECK:STDOUT: %struct_type.a.loc15: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a.a92] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: ref %struct_type.a.1c5 = ref_binding x, %x.var [concrete = %x.var] +// CHECK:STDOUT: %x: ref %struct_type.a.a92 = ref_binding x, %x.var [concrete = %x.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.d7c = ref_binding_pattern y [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type.d7c = var_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.506 = ref_binding_pattern y [concrete] +// CHECK:STDOUT: %y.var_patt: %pattern_type.506 = var_pattern %y.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %y.var: ref %struct_type.a.1c5 = var %y.var_patt [concrete] -// CHECK:STDOUT: %.loc16: type = splice_block %struct_type.a.loc16 [concrete = constants.%struct_type.a.1c5] { +// CHECK:STDOUT: %y.var: ref %struct_type.a.a92 = var %y.var_patt [concrete] +// CHECK:STDOUT: %.loc16: type = splice_block %struct_type.a.loc16 [concrete = constants.%struct_type.a.a92] { // CHECK:STDOUT: %i32.loc16: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.loc16: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a.1c5] +// CHECK:STDOUT: %struct_type.a.loc16: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a.a92] // CHECK:STDOUT: } -// CHECK:STDOUT: %y: ref %struct_type.a.1c5 = ref_binding y, %y.var [concrete = %y.var] +// CHECK:STDOUT: %y: ref %struct_type.a.a92 = ref_binding y, %y.var [concrete = %y.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %.loc15_27.1: %struct_type.a.a6c = struct_literal (%int_4) [concrete = constants.%struct.2cb] -// CHECK:STDOUT: %impl.elem0.loc15: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc15: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc15_27.1: = bound_method %int_4, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_27.2: = bound_method %int_4, %specific_fn.loc15 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_27.2(%int_4) [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc15_27.2: init %i32 = converted %int_4, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_4.a4d] -// CHECK:STDOUT: %.loc15_27.3: init %struct_type.a.1c5 to file.%x.var = struct_init (%.loc15_27.2) [concrete = constants.%struct.1b4] -// CHECK:STDOUT: %.loc15_1: init %struct_type.a.1c5 = converted %.loc15_27.1, %.loc15_27.3 [concrete = constants.%struct.1b4] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc15_27.2(%int_4) [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc15_27.2: init %i32 = converted %int_4, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_4.4eb] +// CHECK:STDOUT: %.loc15_27.3: init %struct_type.a.a92 to file.%x.var = struct_init (%.loc15_27.2) [concrete = constants.%struct.751] +// CHECK:STDOUT: %.loc15_1: init %struct_type.a.a92 = converted %.loc15_27.1, %.loc15_27.3 [concrete = constants.%struct.751] // CHECK:STDOUT: assign file.%x.var, %.loc15_1 -// CHECK:STDOUT: %x.ref: ref %struct_type.a.1c5 = name_ref x, file.%x [concrete = file.%x.var] -// CHECK:STDOUT: %.loc16_20.1: ref %i32 = struct_access %x.ref, element0 [concrete = constants.%.5b0] +// CHECK:STDOUT: %x.ref: ref %struct_type.a.a92 = name_ref x, file.%x [concrete = file.%x.var] +// CHECK:STDOUT: %.loc16_20.1: ref %i32 = struct_access %x.ref, element0 [concrete = constants.%.587] // CHECK:STDOUT: %.loc16_20.2: %i32 = acquire_value %.loc16_20.1 -// CHECK:STDOUT: %impl.elem0.loc16: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc16: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc16_20.1: = bound_method %.loc16_20.2, %impl.elem0.loc16 // 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_20.2: = bound_method %.loc16_20.2, %specific_fn.loc16 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc16_20.2(%.loc16_20.2) -// CHECK:STDOUT: %.loc16_20.3: init %struct_type.a.1c5 to file.%y.var = struct_init (%Int.as.Copy.impl.Op.call) -// CHECK:STDOUT: %.loc16_1: init %struct_type.a.1c5 = converted %x.ref, %.loc16_20.3 +// CHECK:STDOUT: %.loc16_20.3: init %struct_type.a.a92 to file.%y.var = struct_init (%Int.as.Copy.impl.Op.call) +// CHECK:STDOUT: %.loc16_1: init %struct_type.a.a92 = converted %x.ref, %.loc16_20.3 // CHECK:STDOUT: assign file.%y.var, %.loc16_1 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/partially_const.carbon b/toolchain/check/testdata/struct/partially_const.carbon index 07f6f823d52b..60f5c2425e31 100644 --- a/toolchain/check/testdata/struct/partially_const.carbon +++ b/toolchain/check/testdata/struct/partially_const.carbon @@ -24,40 +24,40 @@ fn Make(n: i32) -> {.a: i32, .b: i32, .c: i32} { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %struct_type.a.b.c.632: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [concrete] -// CHECK:STDOUT: %.416: Core.Form = init_form %struct_type.a.b.c.632 [concrete] -// CHECK:STDOUT: %pattern_type.5d6: type = pattern_type %struct_type.a.b.c.632 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %struct_type.a.b.c.fde: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [concrete] +// CHECK:STDOUT: %.5b5: Core.Form = init_form %struct_type.a.b.c.fde [concrete] +// CHECK:STDOUT: %pattern_type.9c3: type = pattern_type %struct_type.a.b.c.fde [concrete] // CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete] // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %struct_type.a.b.c.7a3: type = struct_type {.a: Core.IntLiteral, .b: %i32, .c: Core.IntLiteral} [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %struct_type.a.b.c.203: type = struct_type {.a: Core.IntLiteral, .b: %i32, .c: Core.IntLiteral} [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.62d: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -69,12 +69,12 @@ fn Make(n: i32) -> {.a: i32, .b: i32, .c: i32} { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -84,55 +84,55 @@ fn Make(n: i32) -> {.a: i32, .b: i32, .c: i32} { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: %pattern_type.104 = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.5d6 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.5d6 = return_slot_pattern %return.param_patt, %struct_type.a.b.c [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.9c3 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.9c3 = return_slot_pattern %return.param_patt, %struct_type.a.b.c [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc15_25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc15_34: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc15_43: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b.c: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [concrete = constants.%struct_type.a.b.c.632] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %struct_type.a.b.c [concrete = constants.%.416] +// CHECK:STDOUT: %struct_type.a.b.c: type = struct_type {.a: %i32, .b: %i32, .c: %i32} [concrete = constants.%struct_type.a.b.c.fde] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %struct_type.a.b.c [concrete = constants.%.5b5] // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 // CHECK:STDOUT: %i32.loc15_12: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %n: %i32 = value_binding n, %n.param -// CHECK:STDOUT: %return.param: ref %struct_type.a.b.c.632 = out_param call_param1 -// CHECK:STDOUT: %return: ref %struct_type.a.b.c.632 = return_slot %return.param +// CHECK:STDOUT: %return.param: ref %struct_type.a.b.c.fde = out_param call_param1 +// CHECK:STDOUT: %return: ref %struct_type.a.b.c.fde = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Make(%n.param: %i32) -> out %return.param: %struct_type.a.b.c.632 { +// CHECK:STDOUT: fn @Make(%n.param: %i32) -> out %return.param: %struct_type.a.b.c.fde { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0.loc16_16: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: %int_0.loc16_32: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %.loc16_33.1: %struct_type.a.b.c.7a3 = struct_literal (%int_0.loc16_16, %n.ref, %int_0.loc16_32) -// CHECK:STDOUT: %impl.elem0.loc16_33.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %.loc16_33.1: %struct_type.a.b.c.203 = struct_literal (%int_0.loc16_16, %n.ref, %int_0.loc16_32) +// CHECK:STDOUT: %impl.elem0.loc16_33.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc16_33.1: = bound_method %int_0.loc16_16, %impl.elem0.loc16_33.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc16_33.1: = specific_function %impl.elem0.loc16_33.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_33.2: = bound_method %int_0.loc16_16, %specific_fn.loc16_33.1 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_33.1: init %i32 = call %bound_method.loc16_33.2(%int_0.loc16_16) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc16_33.2: init %i32 = converted %int_0.loc16_16, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_33.1 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_33.1: init %i32 = call %bound_method.loc16_33.2(%int_0.loc16_16) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc16_33.2: init %i32 = converted %int_0.loc16_16, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_33.1 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc16_33.3: ref %i32 = struct_access %return.param, element0 -// CHECK:STDOUT: %.loc16_33.4: init %i32 to %.loc16_33.3 = in_place_init %.loc16_33.2 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %impl.elem0.loc16_24: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %.loc16_33.4: init %i32 to %.loc16_33.3 = in_place_init %.loc16_33.2 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %impl.elem0.loc16_24: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc16_24.1: = bound_method %n.ref, %impl.elem0.loc16_24 // CHECK:STDOUT: %specific_fn.loc16_24: = specific_function %impl.elem0.loc16_24, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc16_24.2: = bound_method %n.ref, %specific_fn.loc16_24 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc16_24.2(%n.ref) // CHECK:STDOUT: %.loc16_33.5: ref %i32 = struct_access %return.param, element1 // CHECK:STDOUT: %.loc16_33.6: init %i32 to %.loc16_33.5 = in_place_init %Int.as.Copy.impl.Op.call -// CHECK:STDOUT: %impl.elem0.loc16_33.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0.loc16_33.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc16_33.3: = bound_method %int_0.loc16_32, %impl.elem0.loc16_33.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc16_33.2: = specific_function %impl.elem0.loc16_33.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_33.4: = bound_method %int_0.loc16_32, %specific_fn.loc16_33.2 [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_33.2: init %i32 = call %bound_method.loc16_33.4(%int_0.loc16_32) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc16_33.7: init %i32 = converted %int_0.loc16_32, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_33.2 [concrete = constants.%int_0.62d] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_33.2: init %i32 = call %bound_method.loc16_33.4(%int_0.loc16_32) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc16_33.7: init %i32 = converted %int_0.loc16_32, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc16_33.2 [concrete = constants.%int_0.3c0] // CHECK:STDOUT: %.loc16_33.8: ref %i32 = struct_access %return.param, element2 -// CHECK:STDOUT: %.loc16_33.9: init %i32 to %.loc16_33.8 = in_place_init %.loc16_33.7 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc16_33.10: init %struct_type.a.b.c.632 to %return.param = struct_init (%.loc16_33.4, %.loc16_33.6, %.loc16_33.9) -// CHECK:STDOUT: %.loc16_34: init %struct_type.a.b.c.632 = converted %.loc16_33.1, %.loc16_33.10 +// CHECK:STDOUT: %.loc16_33.9: init %i32 to %.loc16_33.8 = in_place_init %.loc16_33.7 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc16_33.10: init %struct_type.a.b.c.fde to %return.param = struct_init (%.loc16_33.4, %.loc16_33.6, %.loc16_33.9) +// CHECK:STDOUT: %.loc16_34: init %struct_type.a.b.c.fde = converted %.loc16_33.1, %.loc16_33.10 // CHECK:STDOUT: return %.loc16_34 to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/struct/reorder_fields.carbon b/toolchain/check/testdata/struct/reorder_fields.carbon index 66b42a900324..67cd392980b2 100644 --- a/toolchain/check/testdata/struct/reorder_fields.carbon +++ b/toolchain/check/testdata/struct/reorder_fields.carbon @@ -29,44 +29,44 @@ fn F() -> {.a: i32, .b: f64} { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %.7ea: Core.Form = init_form %i32 [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %MakeI32.type: type = fn_type @MakeI32 [concrete] // CHECK:STDOUT: %MakeI32: %MakeI32.type = struct_value () [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %Float.type: type = generic_class_type @Float [concrete] // CHECK:STDOUT: %Float.generic: %Float.type = struct_value () [concrete] -// CHECK:STDOUT: %f64.b55: type = class_type @Float, @Float(%int_64) [concrete] -// CHECK:STDOUT: %.cfe: Core.Form = init_form %f64.b55 [concrete] -// CHECK:STDOUT: %pattern_type.f3c: type = pattern_type %f64.b55 [concrete] +// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete] +// CHECK:STDOUT: %.b6c: Core.Form = init_form %f64.dc1 [concrete] +// CHECK:STDOUT: %pattern_type.fb7: type = pattern_type %f64.dc1 [concrete] // CHECK:STDOUT: %MakeF64.type: type = fn_type @MakeF64 [concrete] // CHECK:STDOUT: %MakeF64: %MakeF64.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %f64.b55} [concrete] -// CHECK:STDOUT: %.99f: Core.Form = init_form %struct_type.a.b [concrete] -// CHECK:STDOUT: %pattern_type.d41: type = pattern_type %struct_type.a.b [concrete] +// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %f64.dc1} [concrete] +// CHECK:STDOUT: %.88b: Core.Form = init_form %struct_type.a.b [concrete] +// CHECK:STDOUT: %pattern_type.3e6: type = pattern_type %struct_type.a.b [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %struct_type.b.a: type = struct_type {.b: %f64.b55, .a: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.061: type = pattern_type %struct_type.b.a [concrete] +// CHECK:STDOUT: %struct_type.b.a: type = struct_type {.b: %f64.dc1, .a: %i32} [concrete] +// CHECK:STDOUT: %pattern_type.cc6: type = pattern_type %struct_type.b.a [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.14d: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.14d) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet.14d [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.125: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bfc: %Float.as.Copy.impl.Op.type.125 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.811: = impl_witness imports.%Copy.impl_witness_table.384, @Float.as.Copy.impl(%int_64) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.7a5: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_64) [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.bcc: %Float.as.Copy.impl.Op.type.7a5 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.fdc: %Copy.type = facet_value %f64.b55, (%Copy.impl_witness.811) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.286: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.fdc) [concrete] -// CHECK:STDOUT: %.c7d: type = fn_type_with_self_type %Copy.WithSelf.Op.type.286, %Copy.facet.fdc [concrete] -// CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.bcc, @Float.as.Copy.impl.Op(%int_64) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.987: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.987) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet.987 [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: %Float.as.Copy.impl.Op.type.ff3: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%N) [symbolic] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.d93: %Float.as.Copy.impl.Op.type.ff3 = struct_value () [symbolic] +// CHECK:STDOUT: %Copy.impl_witness.873: = impl_witness imports.%Copy.impl_witness_table.4e8, @Float.as.Copy.impl(%int_64) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.type.7aa: type = fn_type @Float.as.Copy.impl.Op, @Float.as.Copy.impl(%int_64) [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.9c2: %Float.as.Copy.impl.Op.type.7aa = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.608: %Copy.type = facet_value %f64.dc1, (%Copy.impl_witness.873) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.2ca: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.608) [concrete] +// CHECK:STDOUT: %.557: type = fn_type_with_self_type %Copy.WithSelf.Op.type.2ca, %Copy.facet.608 [concrete] +// CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.9c2, @Float.as.Copy.impl.Op(%int_64) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -80,10 +80,10 @@ fn F() -> {.a: i32, .b: f64} { // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Float: %Float.type = import_ref Core//prelude/parts/float, Float, loaded [concrete = constants.%Float.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.461: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.125) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.bfc)] -// CHECK:STDOUT: %Copy.impl_witness_table.384 = impl_witness_table (%Core.import_ref.461), @Float.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.e69: @Float.as.Copy.impl.%Float.as.Copy.impl.Op.type (%Float.as.Copy.impl.Op.type.ff3) = import_ref Core//prelude/parts/float, loc{{\d+_\d+}}, loaded [symbolic = @Float.as.Copy.impl.%Float.as.Copy.impl.Op (constants.%Float.as.Copy.impl.Op.d93)] +// CHECK:STDOUT: %Copy.impl_witness_table.4e8 = impl_witness_table (%Core.import_ref.e69), @Float.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -95,31 +95,31 @@ fn F() -> {.a: i32, .b: f64} { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %MakeI32.decl: %MakeI32.type = fn_decl @MakeI32 [concrete = constants.%MakeI32] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.104 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.104 = return_slot_pattern %return.param_patt, %i32 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.7ea] +// CHECK:STDOUT: %.loc15: Core.Form = init_form %i32 [concrete = constants.%.795] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %MakeF64.decl: %MakeF64.type = fn_decl @MakeF64 [concrete = constants.%MakeF64] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.f3c = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.f3c = return_slot_pattern %return.param_patt, %f64 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.fb7 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.fb7 = return_slot_pattern %return.param_patt, %f64 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %f64: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %.loc16: Core.Form = init_form %f64 [concrete = constants.%.cfe] -// CHECK:STDOUT: %return.param: ref %f64.b55 = out_param call_param0 -// CHECK:STDOUT: %return: ref %f64.b55 = return_slot %return.param +// CHECK:STDOUT: %f64: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %.loc16: Core.Form = init_form %f64 [concrete = constants.%.b6c] +// CHECK:STDOUT: %return.param: ref %f64.dc1 = out_param call_param0 +// CHECK:STDOUT: %return: ref %f64.dc1 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %return.param_patt: %pattern_type.d41 = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.d41 = return_slot_pattern %return.param_patt, %struct_type.a.b.loc18 [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.3e6 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.3e6 = return_slot_pattern %return.param_patt, %struct_type.a.b.loc18 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32.loc18: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %f64.loc18: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %struct_type.a.b.loc18: type = struct_type {.a: %i32, .b: %f64.b55} [concrete = constants.%struct_type.a.b] -// CHECK:STDOUT: %.loc18: Core.Form = init_form %struct_type.a.b.loc18 [concrete = constants.%.99f] +// CHECK:STDOUT: %f64.loc18: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %struct_type.a.b.loc18: type = struct_type {.a: %i32, .b: %f64.dc1} [concrete = constants.%struct_type.a.b] +// CHECK:STDOUT: %.loc18: Core.Form = init_form %struct_type.a.b.loc18 [concrete = constants.%.88b] // CHECK:STDOUT: %return.param: ref %struct_type.a.b = out_param call_param0 // CHECK:STDOUT: %return: ref %struct_type.a.b = return_slot %return.param // CHECK:STDOUT: } @@ -127,61 +127,61 @@ fn F() -> {.a: i32, .b: f64} { // CHECK:STDOUT: // CHECK:STDOUT: fn @MakeI32() -> out %return.param: %i32; // CHECK:STDOUT: -// CHECK:STDOUT: fn @MakeF64() -> out %return.param: %f64.b55; +// CHECK:STDOUT: fn @MakeF64() -> out %return.param: %f64.dc1; // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> out %return.param: %struct_type.a.b { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.d41 = value_binding_pattern x [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.3e6 = value_binding_pattern x [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %MakeF64.ref: %MakeF64.type = name_ref MakeF64, file.%MakeF64.decl [concrete = constants.%MakeF64] -// CHECK:STDOUT: %MakeF64.call: init %f64.b55 = call %MakeF64.ref() +// CHECK:STDOUT: %MakeF64.call: init %f64.dc1 = call %MakeF64.ref() // CHECK:STDOUT: %MakeI32.ref: %MakeI32.type = name_ref MakeI32, file.%MakeI32.decl [concrete = constants.%MakeI32] // CHECK:STDOUT: %MakeI32.call: init %i32 = call %MakeI32.ref() // CHECK:STDOUT: %.loc19_62.1: %struct_type.b.a = struct_literal (%MakeF64.call, %MakeI32.call) // CHECK:STDOUT: %.loc19_27: type = splice_block %struct_type.a.b.loc19 [concrete = constants.%struct_type.a.b] { // CHECK:STDOUT: %i32.loc19: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %f64.loc19: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] -// CHECK:STDOUT: %struct_type.a.b.loc19: type = struct_type {.a: %i32, .b: %f64.b55} [concrete = constants.%struct_type.a.b] +// CHECK:STDOUT: %f64.loc19: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] +// CHECK:STDOUT: %struct_type.a.b.loc19: type = struct_type {.a: %i32, .b: %f64.dc1} [concrete = constants.%struct_type.a.b] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc19_62.2: %i32 = value_of_initializer %MakeI32.call // CHECK:STDOUT: %.loc19_62.3: %i32 = converted %MakeI32.call, %.loc19_62.2 -// CHECK:STDOUT: %.loc19_62.4: %f64.b55 = value_of_initializer %MakeF64.call -// CHECK:STDOUT: %.loc19_62.5: %f64.b55 = converted %MakeF64.call, %.loc19_62.4 +// CHECK:STDOUT: %.loc19_62.4: %f64.dc1 = value_of_initializer %MakeF64.call +// CHECK:STDOUT: %.loc19_62.5: %f64.dc1 = converted %MakeF64.call, %.loc19_62.4 // CHECK:STDOUT: %struct.loc19: %struct_type.a.b = struct_value (%.loc19_62.3, %.loc19_62.5) // CHECK:STDOUT: %.loc19_62.6: %struct_type.a.b = converted %.loc19_62.1, %struct.loc19 // CHECK:STDOUT: %x: %struct_type.a.b = value_binding x, %.loc19_62.6 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.061 = value_binding_pattern y [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.cc6 = value_binding_pattern y [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.ref: %struct_type.a.b = name_ref x, %x // CHECK:STDOUT: %.loc20_27: type = splice_block %struct_type.b.a [concrete = constants.%struct_type.b.a] { -// CHECK:STDOUT: %f64.loc20: type = type_literal constants.%f64.b55 [concrete = constants.%f64.b55] +// CHECK:STDOUT: %f64.loc20: type = type_literal constants.%f64.dc1 [concrete = constants.%f64.dc1] // CHECK:STDOUT: %i32.loc20: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.b.a: type = struct_type {.b: %f64.b55, .a: %i32} [concrete = constants.%struct_type.b.a] +// CHECK:STDOUT: %struct_type.b.a: type = struct_type {.b: %f64.dc1, .a: %i32} [concrete = constants.%struct_type.b.a] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc20_31.1: %f64.b55 = struct_access %x.ref, element1 +// CHECK:STDOUT: %.loc20_31.1: %f64.dc1 = struct_access %x.ref, element1 // CHECK:STDOUT: %.loc20_31.2: %i32 = struct_access %x.ref, element0 // CHECK:STDOUT: %struct.loc20: %struct_type.b.a = struct_value (%.loc20_31.1, %.loc20_31.2) // CHECK:STDOUT: %.loc20_31.3: %struct_type.b.a = converted %x.ref, %struct.loc20 // CHECK:STDOUT: %y: %struct_type.b.a = value_binding y, %.loc20_31.3 // CHECK:STDOUT: %y.ref: %struct_type.b.a = name_ref y, %y // CHECK:STDOUT: %.loc21_10.1: %i32 = struct_access %y.ref, element1 -// CHECK:STDOUT: %impl.elem0.loc21_10.1: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc21_10.1: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc21_10.1: = bound_method %.loc21_10.1, %impl.elem0.loc21_10.1 // CHECK:STDOUT: %specific_fn.loc21_10.1: = specific_function %impl.elem0.loc21_10.1, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc21_10.2: = bound_method %.loc21_10.1, %specific_fn.loc21_10.1 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc21_10.2(%.loc21_10.1) // CHECK:STDOUT: %.loc21_10.2: ref %i32 = struct_access %return.param, element1 // CHECK:STDOUT: %.loc21_10.3: init %i32 to %.loc21_10.2 = in_place_init %Int.as.Copy.impl.Op.call -// CHECK:STDOUT: %.loc21_10.4: %f64.b55 = struct_access %y.ref, element0 -// CHECK:STDOUT: %impl.elem0.loc21_10.2: %.c7d = impl_witness_access constants.%Copy.impl_witness.811, element0 [concrete = constants.%Float.as.Copy.impl.Op.bcc] +// CHECK:STDOUT: %.loc21_10.4: %f64.dc1 = struct_access %y.ref, element0 +// CHECK:STDOUT: %impl.elem0.loc21_10.2: %.557 = impl_witness_access constants.%Copy.impl_witness.873, element0 [concrete = constants.%Float.as.Copy.impl.Op.9c2] // CHECK:STDOUT: %bound_method.loc21_10.3: = bound_method %.loc21_10.4, %impl.elem0.loc21_10.2 // CHECK:STDOUT: %specific_fn.loc21_10.2: = specific_function %impl.elem0.loc21_10.2, @Float.as.Copy.impl.Op(constants.%int_64) [concrete = constants.%Float.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc21_10.4: = bound_method %.loc21_10.4, %specific_fn.loc21_10.2 -// CHECK:STDOUT: %Float.as.Copy.impl.Op.call: init %f64.b55 = call %bound_method.loc21_10.4(%.loc21_10.4) -// CHECK:STDOUT: %.loc21_10.5: ref %f64.b55 = struct_access %return.param, element0 -// CHECK:STDOUT: %.loc21_10.6: init %f64.b55 to %.loc21_10.5 = in_place_init %Float.as.Copy.impl.Op.call +// CHECK:STDOUT: %Float.as.Copy.impl.Op.call: init %f64.dc1 = call %bound_method.loc21_10.4(%.loc21_10.4) +// CHECK:STDOUT: %.loc21_10.5: ref %f64.dc1 = struct_access %return.param, element0 +// CHECK:STDOUT: %.loc21_10.6: init %f64.dc1 to %.loc21_10.5 = in_place_init %Float.as.Copy.impl.Op.call // CHECK:STDOUT: %.loc21_10.7: init %struct_type.a.b to %return.param = struct_init (%.loc21_10.3, %.loc21_10.6) // CHECK:STDOUT: %.loc21_11: init %struct_type.a.b = converted %y.ref, %.loc21_10.7 // CHECK:STDOUT: return %.loc21_11 to %return.param diff --git a/toolchain/check/testdata/struct/tuple_as_element.carbon b/toolchain/check/testdata/struct/tuple_as_element.carbon index d92fef3dedeb..9968e0fcc3f7 100644 --- a/toolchain/check/testdata/struct/tuple_as_element.carbon +++ b/toolchain/check/testdata/struct/tuple_as_element.carbon @@ -24,52 +24,52 @@ var y: {.a: i32, .b: (i32,)} = x; // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [concrete] -// CHECK:STDOUT: %tuple.4e6: %tuple.type.85c = tuple_value (%i32) [concrete] -// CHECK:STDOUT: %tuple.type.cb3: type = tuple_type (%i32) [concrete] -// CHECK:STDOUT: %struct_type.a.b.96d: type = struct_type {.a: %i32, .b: %tuple.type.cb3} [concrete] -// CHECK:STDOUT: %pattern_type.933: type = pattern_type %struct_type.a.b.96d [concrete] +// CHECK:STDOUT: %tuple.19c: %tuple.type.85c = tuple_value (%i32) [concrete] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %struct_type.a.b.388: type = struct_type {.a: %i32, .b: %tuple.type.a8a} [concrete] +// CHECK:STDOUT: %pattern_type.227: type = pattern_type %struct_type.a.b.388 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.e7e: %tuple.type.985 = tuple_value (%int_2.ecc) [concrete] // CHECK:STDOUT: %struct_type.a.b.057: type = struct_type {.a: Core.IntLiteral, .b: %tuple.type.985} [concrete] // CHECK:STDOUT: %struct.60a: %struct_type.a.b.057 = struct_value (%int_1.5b8, %tuple.e7e) [concrete] -// CHECK:STDOUT: %.2f43: ref %i32 = struct_access file.%x.var, element0 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %.537: ref %i32 = struct_access file.%x.var, element0 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %.0f4: ref %tuple.type.cb3 = struct_access file.%x.var, element1 [concrete] -// CHECK:STDOUT: %tuple.elem0.c57: ref %i32 = tuple_access %.0f4, element0 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %tuple.b3d: %tuple.type.cb3 = tuple_value (%int_2.228) [concrete] -// CHECK:STDOUT: %struct.86e: %struct_type.a.b.96d = struct_value (%int_1.d9c, %tuple.b3d) [concrete] -// CHECK:STDOUT: %.dd0: ref %i32 = struct_access file.%y.var, element0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %.a7f: ref %tuple.type.a8a = struct_access file.%x.var, element1 [concrete] +// CHECK:STDOUT: %tuple.elem0.bfa: ref %i32 = tuple_access %.a7f, element0 [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] +// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete] +// CHECK:STDOUT: %tuple.b60: %tuple.type.a8a = tuple_value (%int_2.295) [concrete] +// CHECK:STDOUT: %struct.390: %struct_type.a.b.388 = struct_value (%int_1.0c6, %tuple.b60) [concrete] +// CHECK:STDOUT: %.377: ref %i32 = struct_access file.%y.var, element0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %.2f47: ref %tuple.type.cb3 = struct_access file.%y.var, element1 [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %.cf0: ref %tuple.type.a8a = struct_access file.%y.var, element1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -81,12 +81,12 @@ var y: {.a: i32, .b: (i32,)} = x; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -97,31 +97,31 @@ var y: {.a: i32, .b: (i32,)} = x; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.933 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.933 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.227 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.227 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %x.var: ref %struct_type.a.b.96d = var %x.var_patt [concrete] -// CHECK:STDOUT: %.loc15_28: type = splice_block %struct_type.a.b.loc15 [concrete = constants.%struct_type.a.b.96d] { +// CHECK:STDOUT: %x.var: ref %struct_type.a.b.388 = var %x.var_patt [concrete] +// CHECK:STDOUT: %.loc15_28: type = splice_block %struct_type.a.b.loc15 [concrete = constants.%struct_type.a.b.388] { // CHECK:STDOUT: %i32.loc15_13: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc15_23: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc15_27.1: %tuple.type.85c = tuple_literal (%i32.loc15_23) [concrete = constants.%tuple.4e6] -// CHECK:STDOUT: %.loc15_27.2: type = converted %.loc15_27.1, constants.%tuple.type.cb3 [concrete = constants.%tuple.type.cb3] -// CHECK:STDOUT: %struct_type.a.b.loc15: type = struct_type {.a: %i32, .b: %tuple.type.cb3} [concrete = constants.%struct_type.a.b.96d] +// CHECK:STDOUT: %.loc15_27.1: %tuple.type.85c = tuple_literal (%i32.loc15_23) [concrete = constants.%tuple.19c] +// CHECK:STDOUT: %.loc15_27.2: type = converted %.loc15_27.1, constants.%tuple.type.a8a [concrete = constants.%tuple.type.a8a] +// CHECK:STDOUT: %struct_type.a.b.loc15: type = struct_type {.a: %i32, .b: %tuple.type.a8a} [concrete = constants.%struct_type.a.b.388] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: ref %struct_type.a.b.96d = ref_binding x, %x.var [concrete = %x.var] +// CHECK:STDOUT: %x: ref %struct_type.a.b.388 = ref_binding x, %x.var [concrete = %x.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.933 = ref_binding_pattern y [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type.933 = var_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.227 = ref_binding_pattern y [concrete] +// CHECK:STDOUT: %y.var_patt: %pattern_type.227 = var_pattern %y.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %y.var: ref %struct_type.a.b.96d = var %y.var_patt [concrete] -// CHECK:STDOUT: %.loc16_28: type = splice_block %struct_type.a.b.loc16 [concrete = constants.%struct_type.a.b.96d] { +// CHECK:STDOUT: %y.var: ref %struct_type.a.b.388 = var %y.var_patt [concrete] +// CHECK:STDOUT: %.loc16_28: type = splice_block %struct_type.a.b.loc16 [concrete = constants.%struct_type.a.b.388] { // CHECK:STDOUT: %i32.loc16_13: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc16_23: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc16_27.1: %tuple.type.85c = tuple_literal (%i32.loc16_23) [concrete = constants.%tuple.4e6] -// CHECK:STDOUT: %.loc16_27.2: type = converted %.loc16_27.1, constants.%tuple.type.cb3 [concrete = constants.%tuple.type.cb3] -// CHECK:STDOUT: %struct_type.a.b.loc16: type = struct_type {.a: %i32, .b: %tuple.type.cb3} [concrete = constants.%struct_type.a.b.96d] +// CHECK:STDOUT: %.loc16_27.1: %tuple.type.85c = tuple_literal (%i32.loc16_23) [concrete = constants.%tuple.19c] +// CHECK:STDOUT: %.loc16_27.2: type = converted %.loc16_27.1, constants.%tuple.type.a8a [concrete = constants.%tuple.type.a8a] +// CHECK:STDOUT: %struct_type.a.b.loc16: type = struct_type {.a: %i32, .b: %tuple.type.a8a} [concrete = constants.%struct_type.a.b.388] // CHECK:STDOUT: } -// CHECK:STDOUT: %y: ref %struct_type.a.b.96d = ref_binding y, %y.var [concrete = %y.var] +// CHECK:STDOUT: %y: ref %struct_type.a.b.388 = ref_binding y, %y.var [concrete = %y.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -130,51 +130,51 @@ var y: {.a: i32, .b: (i32,)} = x; // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc15_49.1: %tuple.type.985 = tuple_literal (%int_2) [concrete = constants.%tuple.e7e] // CHECK:STDOUT: %.loc15_50.1: %struct_type.a.b.057 = struct_literal (%int_1, %.loc15_49.1) [concrete = constants.%struct.60a] -// CHECK:STDOUT: %impl.elem0.loc15_50: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_50.1: = bound_method %int_1, %impl.elem0.loc15_50 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc15_50: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_50.1: = bound_method %int_1, %impl.elem0.loc15_50 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc15_50: = specific_function %impl.elem0.loc15_50, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_50.2: = bound_method %int_1, %specific_fn.loc15_50 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_50: init %i32 = call %bound_method.loc15_50.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc15_50.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_50 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc15_50.3: ref %i32 = struct_access file.%x.var, element0 [concrete = constants.%.2f43] -// CHECK:STDOUT: %.loc15_50.4: init %i32 to %.loc15_50.3 = in_place_init %.loc15_50.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc15_49: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_49.1: = bound_method %int_2, %impl.elem0.loc15_49 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc15_50.2: = bound_method %int_1, %specific_fn.loc15_50 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_50: init %i32 = call %bound_method.loc15_50.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc15_50.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_50 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc15_50.3: ref %i32 = struct_access file.%x.var, element0 [concrete = constants.%.537] +// CHECK:STDOUT: %.loc15_50.4: init %i32 to %.loc15_50.3 = in_place_init %.loc15_50.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc15_49: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_49.1: = bound_method %int_2, %impl.elem0.loc15_49 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc15_49: = specific_function %impl.elem0.loc15_49, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_49.2: = bound_method %int_2, %specific_fn.loc15_49 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_49: init %i32 = call %bound_method.loc15_49.2(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc15_49.2: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_49 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc15_50.5: ref %tuple.type.cb3 = struct_access file.%x.var, element1 [concrete = constants.%.0f4] -// CHECK:STDOUT: %.loc15_49.3: init %tuple.type.cb3 to %.loc15_50.5 = tuple_init (%.loc15_49.2) [concrete = constants.%tuple.b3d] -// CHECK:STDOUT: %.loc15_50.6: init %tuple.type.cb3 = converted %.loc15_49.1, %.loc15_49.3 [concrete = constants.%tuple.b3d] -// CHECK:STDOUT: %.loc15_50.7: init %tuple.type.cb3 to %.loc15_50.5 = in_place_init %.loc15_50.6 [concrete = constants.%tuple.b3d] -// CHECK:STDOUT: %.loc15_50.8: init %struct_type.a.b.96d to file.%x.var = struct_init (%.loc15_50.4, %.loc15_50.7) [concrete = constants.%struct.86e] -// CHECK:STDOUT: %.loc15_1: init %struct_type.a.b.96d = converted %.loc15_50.1, %.loc15_50.8 [concrete = constants.%struct.86e] +// CHECK:STDOUT: %bound_method.loc15_49.2: = bound_method %int_2, %specific_fn.loc15_49 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_49: init %i32 = call %bound_method.loc15_49.2(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc15_49.2: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_49 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc15_50.5: ref %tuple.type.a8a = struct_access file.%x.var, element1 [concrete = constants.%.a7f] +// CHECK:STDOUT: %.loc15_49.3: init %tuple.type.a8a to %.loc15_50.5 = tuple_init (%.loc15_49.2) [concrete = constants.%tuple.b60] +// CHECK:STDOUT: %.loc15_50.6: init %tuple.type.a8a = converted %.loc15_49.1, %.loc15_49.3 [concrete = constants.%tuple.b60] +// CHECK:STDOUT: %.loc15_50.7: init %tuple.type.a8a to %.loc15_50.5 = in_place_init %.loc15_50.6 [concrete = constants.%tuple.b60] +// CHECK:STDOUT: %.loc15_50.8: init %struct_type.a.b.388 to file.%x.var = struct_init (%.loc15_50.4, %.loc15_50.7) [concrete = constants.%struct.390] +// CHECK:STDOUT: %.loc15_1: init %struct_type.a.b.388 = converted %.loc15_50.1, %.loc15_50.8 [concrete = constants.%struct.390] // CHECK:STDOUT: assign file.%x.var, %.loc15_1 -// CHECK:STDOUT: %x.ref: ref %struct_type.a.b.96d = name_ref x, file.%x [concrete = file.%x.var] -// CHECK:STDOUT: %.loc16_32.1: ref %i32 = struct_access %x.ref, element0 [concrete = constants.%.2f43] +// CHECK:STDOUT: %x.ref: ref %struct_type.a.b.388 = name_ref x, file.%x [concrete = file.%x.var] +// CHECK:STDOUT: %.loc16_32.1: ref %i32 = struct_access %x.ref, element0 [concrete = constants.%.537] // CHECK:STDOUT: %.loc16_32.2: %i32 = acquire_value %.loc16_32.1 -// CHECK:STDOUT: %impl.elem0.loc16_32.1: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc16_32.1: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc16_32.1: = bound_method %.loc16_32.2, %impl.elem0.loc16_32.1 // CHECK:STDOUT: %specific_fn.loc16_32.1: = specific_function %impl.elem0.loc16_32.1, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc16_32.2: = bound_method %.loc16_32.2, %specific_fn.loc16_32.1 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc16_32.1: init %i32 = call %bound_method.loc16_32.2(%.loc16_32.2) -// CHECK:STDOUT: %.loc16_32.3: ref %i32 = struct_access file.%y.var, element0 [concrete = constants.%.dd0] +// CHECK:STDOUT: %.loc16_32.3: ref %i32 = struct_access file.%y.var, element0 [concrete = constants.%.377] // CHECK:STDOUT: %.loc16_32.4: init %i32 to %.loc16_32.3 = in_place_init %Int.as.Copy.impl.Op.call.loc16_32.1 -// CHECK:STDOUT: %.loc16_32.5: ref %tuple.type.cb3 = struct_access %x.ref, element1 [concrete = constants.%.0f4] -// CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %.loc16_32.5, element0 [concrete = constants.%tuple.elem0.c57] +// CHECK:STDOUT: %.loc16_32.5: ref %tuple.type.a8a = struct_access %x.ref, element1 [concrete = constants.%.a7f] +// CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %.loc16_32.5, element0 [concrete = constants.%tuple.elem0.bfa] // CHECK:STDOUT: %.loc16_32.6: %i32 = acquire_value %tuple.elem0 -// CHECK:STDOUT: %impl.elem0.loc16_32.2: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc16_32.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc16_32.3: = bound_method %.loc16_32.6, %impl.elem0.loc16_32.2 // CHECK:STDOUT: %specific_fn.loc16_32.2: = specific_function %impl.elem0.loc16_32.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc16_32.4: = bound_method %.loc16_32.6, %specific_fn.loc16_32.2 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc16_32.2: init %i32 = call %bound_method.loc16_32.4(%.loc16_32.6) -// CHECK:STDOUT: %.loc16_32.7: ref %tuple.type.cb3 = struct_access file.%y.var, element1 [concrete = constants.%.2f47] -// CHECK:STDOUT: %.loc16_32.8: init %tuple.type.cb3 to %.loc16_32.7 = tuple_init (%Int.as.Copy.impl.Op.call.loc16_32.2) -// CHECK:STDOUT: %.loc16_32.9: init %tuple.type.cb3 = converted %.loc16_32.5, %.loc16_32.8 -// CHECK:STDOUT: %.loc16_32.10: init %tuple.type.cb3 to %.loc16_32.7 = in_place_init %.loc16_32.9 -// CHECK:STDOUT: %.loc16_32.11: init %struct_type.a.b.96d to file.%y.var = struct_init (%.loc16_32.4, %.loc16_32.10) -// CHECK:STDOUT: %.loc16_1: init %struct_type.a.b.96d = converted %x.ref, %.loc16_32.11 +// CHECK:STDOUT: %.loc16_32.7: ref %tuple.type.a8a = struct_access file.%y.var, element1 [concrete = constants.%.cf0] +// CHECK:STDOUT: %.loc16_32.8: init %tuple.type.a8a to %.loc16_32.7 = tuple_init (%Int.as.Copy.impl.Op.call.loc16_32.2) +// CHECK:STDOUT: %.loc16_32.9: init %tuple.type.a8a = converted %.loc16_32.5, %.loc16_32.8 +// CHECK:STDOUT: %.loc16_32.10: init %tuple.type.a8a to %.loc16_32.7 = in_place_init %.loc16_32.9 +// CHECK:STDOUT: %.loc16_32.11: init %struct_type.a.b.388 to file.%y.var = struct_init (%.loc16_32.4, %.loc16_32.10) +// CHECK:STDOUT: %.loc16_1: init %struct_type.a.b.388 = converted %x.ref, %.loc16_32.11 // CHECK:STDOUT: assign file.%y.var, %.loc16_1 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/struct/two_entries.carbon b/toolchain/check/testdata/struct/two_entries.carbon index ff91ddc565e9..374f81b4ef18 100644 --- a/toolchain/check/testdata/struct/two_entries.carbon +++ b/toolchain/check/testdata/struct/two_entries.carbon @@ -26,46 +26,46 @@ var y: {.a: i32, .b: i32} = x; // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %struct_type.a.b.b47: type = struct_type {.a: %i32, .b: %i32} [concrete] -// CHECK:STDOUT: %pattern_type.941: type = pattern_type %struct_type.a.b.b47 [concrete] +// CHECK:STDOUT: %struct_type.a.b.b4c: type = struct_type {.a: %i32, .b: %i32} [concrete] +// CHECK:STDOUT: %pattern_type.20e3: type = pattern_type %struct_type.a.b.b4c [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %struct_type.a.b.cfd: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.4aa: %struct_type.a.b.cfd = struct_value (%int_1.5b8, %int_2.ecc) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %struct.8fc: %struct_type.a.b.b47 = struct_value (%int_1.d9c, %int_2.228) [concrete] -// CHECK:STDOUT: %.f3e: ref %i32 = struct_access file.%x.var, element0 [concrete] -// CHECK:STDOUT: %.a1a: ref %i32 = struct_access file.%x.var, element1 [concrete] -// CHECK:STDOUT: %.465: ref %i32 = struct_access file.%y.var, element0 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: %struct.631: %struct_type.a.b.b4c = struct_value (%int_1.0c6, %int_2.295) [concrete] +// CHECK:STDOUT: %.2c1: ref %i32 = struct_access file.%x.var, element0 [concrete] +// CHECK:STDOUT: %.38d: ref %i32 = struct_access file.%x.var, element1 [concrete] +// CHECK:STDOUT: %.27d: ref %i32 = struct_access file.%y.var, element0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %.d1d: ref %i32 = struct_access file.%y.var, element1 [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %.67e: ref %i32 = struct_access file.%y.var, element1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -77,12 +77,12 @@ var y: {.a: i32, .b: i32} = x; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -95,61 +95,61 @@ var y: {.a: i32, .b: i32} = x; // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.941 = value_binding_pattern v [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.20e3 = value_binding_pattern v [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc15_25: type = splice_block %struct_type.a.b.loc15 [concrete = constants.%struct_type.a.b.b47] { +// CHECK:STDOUT: %.loc15_25: type = splice_block %struct_type.a.b.loc15 [concrete = constants.%struct_type.a.b.b4c] { // CHECK:STDOUT: %i32.loc15_13: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc15_22: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b.loc15: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b47] +// CHECK:STDOUT: %struct_type.a.b.loc15: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b4c] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc15_44.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_44.1: = bound_method @__global_init.%int_1.loc15, %impl.elem0.loc15_44.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc15_44.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_44.1: = bound_method @__global_init.%int_1.loc15, %impl.elem0.loc15_44.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc15_44.1: = specific_function %impl.elem0.loc15_44.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_44.2: = bound_method @__global_init.%int_1.loc15, %specific_fn.loc15_44.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_44.1: init %i32 = call %bound_method.loc15_44.2(@__global_init.%int_1.loc15) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc15_44.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_44.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc15_44.2: %i32 = converted @__global_init.%int_1.loc15, %.loc15_44.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc15_44.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc15_44.3: = bound_method @__global_init.%int_2.loc15, %impl.elem0.loc15_44.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc15_44.2: = bound_method @__global_init.%int_1.loc15, %specific_fn.loc15_44.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_44.1: init %i32 = call %bound_method.loc15_44.2(@__global_init.%int_1.loc15) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc15_44.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_44.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc15_44.2: %i32 = converted @__global_init.%int_1.loc15, %.loc15_44.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc15_44.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc15_44.3: = bound_method @__global_init.%int_2.loc15, %impl.elem0.loc15_44.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc15_44.2: = specific_function %impl.elem0.loc15_44.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_44.4: = bound_method @__global_init.%int_2.loc15, %specific_fn.loc15_44.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_44.2: init %i32 = call %bound_method.loc15_44.4(@__global_init.%int_2.loc15) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc15_44.3: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_44.2 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc15_44.4: %i32 = converted @__global_init.%int_2.loc15, %.loc15_44.3 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %struct: %struct_type.a.b.b47 = struct_value (%.loc15_44.2, %.loc15_44.4) [concrete = constants.%struct.8fc] -// CHECK:STDOUT: %.loc15_44.5: %struct_type.a.b.b47 = converted @__global_init.%.loc15, %struct [concrete = constants.%struct.8fc] -// CHECK:STDOUT: %v: %struct_type.a.b.b47 = value_binding v, %.loc15_44.5 +// CHECK:STDOUT: %bound_method.loc15_44.4: = bound_method @__global_init.%int_2.loc15, %specific_fn.loc15_44.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_44.2: init %i32 = call %bound_method.loc15_44.4(@__global_init.%int_2.loc15) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc15_44.3: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15_44.2 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc15_44.4: %i32 = converted @__global_init.%int_2.loc15, %.loc15_44.3 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %struct: %struct_type.a.b.b4c = struct_value (%.loc15_44.2, %.loc15_44.4) [concrete = constants.%struct.631] +// CHECK:STDOUT: %.loc15_44.5: %struct_type.a.b.b4c = converted @__global_init.%.loc15, %struct [concrete = constants.%struct.631] +// CHECK:STDOUT: %v: %struct_type.a.b.b4c = value_binding v, %.loc15_44.5 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %w.patt: %pattern_type.941 = value_binding_pattern w [concrete] +// CHECK:STDOUT: %w.patt: %pattern_type.20e3 = value_binding_pattern w [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc16: type = splice_block %struct_type.a.b.loc16 [concrete = constants.%struct_type.a.b.b47] { +// CHECK:STDOUT: %.loc16: type = splice_block %struct_type.a.b.loc16 [concrete = constants.%struct_type.a.b.b4c] { // CHECK:STDOUT: %i32.loc16_13: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc16_22: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b.loc16: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b47] +// CHECK:STDOUT: %struct_type.a.b.loc16: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b4c] // CHECK:STDOUT: } -// CHECK:STDOUT: %w: %struct_type.a.b.b47 = value_binding w, @__global_init.%v.ref +// CHECK:STDOUT: %w: %struct_type.a.b.b4c = value_binding w, @__global_init.%v.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.941 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.941 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.20e3 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.20e3 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %x.var: ref %struct_type.a.b.b47 = var %x.var_patt [concrete] -// CHECK:STDOUT: %.loc18: type = splice_block %struct_type.a.b.loc18 [concrete = constants.%struct_type.a.b.b47] { +// CHECK:STDOUT: %x.var: ref %struct_type.a.b.b4c = var %x.var_patt [concrete] +// CHECK:STDOUT: %.loc18: type = splice_block %struct_type.a.b.loc18 [concrete = constants.%struct_type.a.b.b4c] { // CHECK:STDOUT: %i32.loc18_13: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc18_22: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b.loc18: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b47] +// CHECK:STDOUT: %struct_type.a.b.loc18: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b4c] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: ref %struct_type.a.b.b47 = ref_binding x, %x.var [concrete = %x.var] +// CHECK:STDOUT: %x: ref %struct_type.a.b.b4c = ref_binding x, %x.var [concrete = %x.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.941 = ref_binding_pattern y [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type.941 = var_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.20e3 = ref_binding_pattern y [concrete] +// CHECK:STDOUT: %y.var_patt: %pattern_type.20e3 = var_pattern %y.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %y.var: ref %struct_type.a.b.b47 = var %y.var_patt [concrete] -// CHECK:STDOUT: %.loc19: type = splice_block %struct_type.a.b.loc19 [concrete = constants.%struct_type.a.b.b47] { +// CHECK:STDOUT: %y.var: ref %struct_type.a.b.b4c = var %y.var_patt [concrete] +// CHECK:STDOUT: %.loc19: type = splice_block %struct_type.a.b.loc19 [concrete = constants.%struct_type.a.b.b4c] { // CHECK:STDOUT: %i32.loc19_13: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc19_22: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b.loc19: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b47] +// CHECK:STDOUT: %struct_type.a.b.loc19: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.b4c] // CHECK:STDOUT: } -// CHECK:STDOUT: %y: ref %struct_type.a.b.b47 = ref_binding y, %y.var [concrete = %y.var] +// CHECK:STDOUT: %y: ref %struct_type.a.b.b4c = ref_binding y, %y.var [concrete = %y.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -157,50 +157,50 @@ var y: {.a: i32, .b: i32} = x; // CHECK:STDOUT: %int_1.loc15: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc15: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc15: %struct_type.a.b.cfd = struct_literal (%int_1.loc15, %int_2.loc15) [concrete = constants.%struct.4aa] -// CHECK:STDOUT: %v.ref: %struct_type.a.b.b47 = name_ref v, file.%v +// CHECK:STDOUT: %v.ref: %struct_type.a.b.b4c = name_ref v, file.%v // CHECK:STDOUT: %int_1.loc18: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc18: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc18_44.1: %struct_type.a.b.cfd = struct_literal (%int_1.loc18, %int_2.loc18) [concrete = constants.%struct.4aa] -// CHECK:STDOUT: %impl.elem0.loc18_44.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_44.1: = bound_method %int_1.loc18, %impl.elem0.loc18_44.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %impl.elem0.loc18_44.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_44.1: = bound_method %int_1.loc18, %impl.elem0.loc18_44.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc18_44.1: = specific_function %impl.elem0.loc18_44.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_44.2: = bound_method %int_1.loc18, %specific_fn.loc18_44.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_44.1: init %i32 = call %bound_method.loc18_44.2(%int_1.loc18) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_44.2: init %i32 = converted %int_1.loc18, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_44.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc18_44.3: ref %i32 = struct_access file.%x.var, element0 [concrete = constants.%.f3e] -// CHECK:STDOUT: %.loc18_44.4: init %i32 to %.loc18_44.3 = in_place_init %.loc18_44.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc18_44.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc18_44.3: = bound_method %int_2.loc18, %impl.elem0.loc18_44.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %bound_method.loc18_44.2: = bound_method %int_1.loc18, %specific_fn.loc18_44.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_44.1: init %i32 = call %bound_method.loc18_44.2(%int_1.loc18) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_44.2: init %i32 = converted %int_1.loc18, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_44.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc18_44.3: ref %i32 = struct_access file.%x.var, element0 [concrete = constants.%.2c1] +// CHECK:STDOUT: %.loc18_44.4: init %i32 to %.loc18_44.3 = in_place_init %.loc18_44.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc18_44.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc18_44.3: = bound_method %int_2.loc18, %impl.elem0.loc18_44.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc18_44.2: = specific_function %impl.elem0.loc18_44.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_44.4: = bound_method %int_2.loc18, %specific_fn.loc18_44.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_44.2: init %i32 = call %bound_method.loc18_44.4(%int_2.loc18) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc18_44.5: init %i32 = converted %int_2.loc18, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_44.2 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc18_44.6: ref %i32 = struct_access file.%x.var, element1 [concrete = constants.%.a1a] -// CHECK:STDOUT: %.loc18_44.7: init %i32 to %.loc18_44.6 = in_place_init %.loc18_44.5 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc18_44.8: init %struct_type.a.b.b47 to file.%x.var = struct_init (%.loc18_44.4, %.loc18_44.7) [concrete = constants.%struct.8fc] -// CHECK:STDOUT: %.loc18_1: init %struct_type.a.b.b47 = converted %.loc18_44.1, %.loc18_44.8 [concrete = constants.%struct.8fc] +// CHECK:STDOUT: %bound_method.loc18_44.4: = bound_method %int_2.loc18, %specific_fn.loc18_44.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_44.2: init %i32 = call %bound_method.loc18_44.4(%int_2.loc18) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc18_44.5: init %i32 = converted %int_2.loc18, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_44.2 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc18_44.6: ref %i32 = struct_access file.%x.var, element1 [concrete = constants.%.38d] +// CHECK:STDOUT: %.loc18_44.7: init %i32 to %.loc18_44.6 = in_place_init %.loc18_44.5 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc18_44.8: init %struct_type.a.b.b4c to file.%x.var = struct_init (%.loc18_44.4, %.loc18_44.7) [concrete = constants.%struct.631] +// CHECK:STDOUT: %.loc18_1: init %struct_type.a.b.b4c = converted %.loc18_44.1, %.loc18_44.8 [concrete = constants.%struct.631] // CHECK:STDOUT: assign file.%x.var, %.loc18_1 -// CHECK:STDOUT: %x.ref: ref %struct_type.a.b.b47 = name_ref x, file.%x [concrete = file.%x.var] -// CHECK:STDOUT: %.loc19_29.1: ref %i32 = struct_access %x.ref, element0 [concrete = constants.%.f3e] +// CHECK:STDOUT: %x.ref: ref %struct_type.a.b.b4c = name_ref x, file.%x [concrete = file.%x.var] +// CHECK:STDOUT: %.loc19_29.1: ref %i32 = struct_access %x.ref, element0 [concrete = constants.%.2c1] // CHECK:STDOUT: %.loc19_29.2: %i32 = acquire_value %.loc19_29.1 -// CHECK:STDOUT: %impl.elem0.loc19_29.1: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc19_29.1: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc19_29.1: = bound_method %.loc19_29.2, %impl.elem0.loc19_29.1 // CHECK:STDOUT: %specific_fn.loc19_29.1: = specific_function %impl.elem0.loc19_29.1, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc19_29.2: = bound_method %.loc19_29.2, %specific_fn.loc19_29.1 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc19_29.1: init %i32 = call %bound_method.loc19_29.2(%.loc19_29.2) -// CHECK:STDOUT: %.loc19_29.3: ref %i32 = struct_access file.%y.var, element0 [concrete = constants.%.465] +// CHECK:STDOUT: %.loc19_29.3: ref %i32 = struct_access file.%y.var, element0 [concrete = constants.%.27d] // CHECK:STDOUT: %.loc19_29.4: init %i32 to %.loc19_29.3 = in_place_init %Int.as.Copy.impl.Op.call.loc19_29.1 -// CHECK:STDOUT: %.loc19_29.5: ref %i32 = struct_access %x.ref, element1 [concrete = constants.%.a1a] +// CHECK:STDOUT: %.loc19_29.5: ref %i32 = struct_access %x.ref, element1 [concrete = constants.%.38d] // CHECK:STDOUT: %.loc19_29.6: %i32 = acquire_value %.loc19_29.5 -// CHECK:STDOUT: %impl.elem0.loc19_29.2: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc19_29.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc19_29.3: = bound_method %.loc19_29.6, %impl.elem0.loc19_29.2 // CHECK:STDOUT: %specific_fn.loc19_29.2: = specific_function %impl.elem0.loc19_29.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc19_29.4: = bound_method %.loc19_29.6, %specific_fn.loc19_29.2 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc19_29.2: init %i32 = call %bound_method.loc19_29.4(%.loc19_29.6) -// CHECK:STDOUT: %.loc19_29.7: ref %i32 = struct_access file.%y.var, element1 [concrete = constants.%.d1d] +// CHECK:STDOUT: %.loc19_29.7: ref %i32 = struct_access file.%y.var, element1 [concrete = constants.%.67e] // CHECK:STDOUT: %.loc19_29.8: init %i32 to %.loc19_29.7 = in_place_init %Int.as.Copy.impl.Op.call.loc19_29.2 -// CHECK:STDOUT: %.loc19_29.9: init %struct_type.a.b.b47 to file.%y.var = struct_init (%.loc19_29.4, %.loc19_29.8) -// CHECK:STDOUT: %.loc19_1: init %struct_type.a.b.b47 = converted %x.ref, %.loc19_29.9 +// CHECK:STDOUT: %.loc19_29.9: init %struct_type.a.b.b4c to file.%y.var = struct_init (%.loc19_29.4, %.loc19_29.8) +// CHECK:STDOUT: %.loc19_1: init %struct_type.a.b.b4c = converted %x.ref, %.loc19_29.9 // CHECK:STDOUT: assign file.%y.var, %.loc19_1 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/tuple/basics.carbon b/toolchain/check/testdata/tuple/basics.carbon index 39d92c071a92..90ebca872e3b 100644 --- a/toolchain/check/testdata/tuple/basics.carbon +++ b/toolchain/check/testdata/tuple/basics.carbon @@ -102,10 +102,10 @@ var y: ((), ()) = x; // CHECK:STDOUT: %tuple.type.6e8: type = tuple_type (%tuple.type.bcd, %empty_tuple.type) [concrete] // CHECK:STDOUT: %tuple.0ca: %tuple.type.6e8 = tuple_value (%tuple.d8f, %empty_tuple) [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %tuple.type.6e8 [concrete] -// CHECK:STDOUT: %tuple.elem0.c6f: ref %tuple.type.bcd = tuple_access file.%x.var, element0 [concrete] -// CHECK:STDOUT: %tuple.elem0.ddc: ref %empty_tuple.type = tuple_access %tuple.elem0.c6f, element0 [concrete] -// CHECK:STDOUT: %tuple.elem1.3af: ref %empty_tuple.type = tuple_access %tuple.elem0.c6f, element1 [concrete] -// CHECK:STDOUT: %tuple.elem1.1e7: ref %empty_tuple.type = tuple_access file.%x.var, element1 [concrete] +// CHECK:STDOUT: %tuple.elem0.d36: ref %tuple.type.bcd = tuple_access file.%x.var, element0 [concrete] +// CHECK:STDOUT: %tuple.elem0.b69: ref %empty_tuple.type = tuple_access %tuple.elem0.d36, element0 [concrete] +// CHECK:STDOUT: %tuple.elem1.221: ref %empty_tuple.type = tuple_access %tuple.elem0.d36, element1 [concrete] +// CHECK:STDOUT: %tuple.elem1.7e9: ref %empty_tuple.type = tuple_access file.%x.var, element1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -136,18 +136,18 @@ var y: ((), ()) = x; // CHECK:STDOUT: %.loc4_33.1: %tuple.type.bcd = tuple_literal (%.loc4_28.1, %.loc4_32.1) [concrete = constants.%tuple.d8f] // CHECK:STDOUT: %.loc4_37.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_38.1: %tuple.type.6e8 = tuple_literal (%.loc4_33.1, %.loc4_37.1) [concrete = constants.%tuple.0ca] -// CHECK:STDOUT: %tuple.elem0.loc4_38: ref %tuple.type.bcd = tuple_access file.%x.var, element0 [concrete = constants.%tuple.elem0.c6f] -// CHECK:STDOUT: %tuple.elem0.loc4_33: ref %empty_tuple.type = tuple_access %tuple.elem0.loc4_38, element0 [concrete = constants.%tuple.elem0.ddc] +// CHECK:STDOUT: %tuple.elem0.loc4_38: ref %tuple.type.bcd = tuple_access file.%x.var, element0 [concrete = constants.%tuple.elem0.d36] +// CHECK:STDOUT: %tuple.elem0.loc4_33: ref %empty_tuple.type = tuple_access %tuple.elem0.loc4_38, element0 [concrete = constants.%tuple.elem0.b69] // CHECK:STDOUT: %.loc4_28.2: init %empty_tuple.type to %tuple.elem0.loc4_33 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_33.2: init %empty_tuple.type = converted %.loc4_28.1, %.loc4_28.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_33.3: init %empty_tuple.type to %tuple.elem0.loc4_33 = in_place_init %.loc4_33.2 [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %tuple.elem1.loc4_33: ref %empty_tuple.type = tuple_access %tuple.elem0.loc4_38, element1 [concrete = constants.%tuple.elem1.3af] +// CHECK:STDOUT: %tuple.elem1.loc4_33: ref %empty_tuple.type = tuple_access %tuple.elem0.loc4_38, element1 [concrete = constants.%tuple.elem1.221] // CHECK:STDOUT: %.loc4_32.2: init %empty_tuple.type to %tuple.elem1.loc4_33 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_33.4: init %empty_tuple.type = converted %.loc4_32.1, %.loc4_32.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_33.5: init %empty_tuple.type to %tuple.elem1.loc4_33 = in_place_init %.loc4_33.4 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_33.6: init %tuple.type.bcd to %tuple.elem0.loc4_38 = tuple_init (%.loc4_33.3, %.loc4_33.5) [concrete = constants.%tuple.d8f] // CHECK:STDOUT: %.loc4_38.2: init %tuple.type.bcd = converted %.loc4_33.1, %.loc4_33.6 [concrete = constants.%tuple.d8f] -// CHECK:STDOUT: %tuple.elem1.loc4_38: ref %empty_tuple.type = tuple_access file.%x.var, element1 [concrete = constants.%tuple.elem1.1e7] +// CHECK:STDOUT: %tuple.elem1.loc4_38: ref %empty_tuple.type = tuple_access file.%x.var, element1 [concrete = constants.%tuple.elem1.7e9] // CHECK:STDOUT: %.loc4_37.2: init %empty_tuple.type to %tuple.elem1.loc4_38 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_38.3: init %empty_tuple.type = converted %.loc4_37.1, %.loc4_37.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_38.4: init %empty_tuple.type to %tuple.elem1.loc4_38 = in_place_init %.loc4_38.3 [concrete = constants.%empty_tuple] @@ -165,8 +165,8 @@ var y: ((), ()) = x; // CHECK:STDOUT: %tuple.type: type = tuple_type (%empty_tuple.type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%empty_tuple) [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %tuple.type [concrete] -// CHECK:STDOUT: %tuple.elem0.d56: ref %empty_tuple.type = tuple_access file.%x.var, element0 [concrete] -// CHECK:STDOUT: %tuple.elem0.3d8: ref %empty_tuple.type = tuple_access file.%y.var, element0 [concrete] +// CHECK:STDOUT: %tuple.elem0.750: ref %empty_tuple.type = tuple_access file.%x.var, element0 [concrete] +// CHECK:STDOUT: %tuple.elem0.918: ref %empty_tuple.type = tuple_access file.%y.var, element0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -200,15 +200,15 @@ var y: ((), ()) = x; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc4_18.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_20.1: %tuple.type = tuple_literal (%.loc4_18.1) [concrete = constants.%tuple] -// CHECK:STDOUT: %tuple.elem0.loc4: ref %empty_tuple.type = tuple_access file.%x.var, element0 [concrete = constants.%tuple.elem0.d56] +// CHECK:STDOUT: %tuple.elem0.loc4: ref %empty_tuple.type = tuple_access file.%x.var, element0 [concrete = constants.%tuple.elem0.750] // CHECK:STDOUT: %.loc4_18.2: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_20.2: init %empty_tuple.type = converted %.loc4_18.1, %.loc4_18.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_20.3: init %tuple.type to file.%x.var = tuple_init (%.loc4_20.2) [concrete = constants.%tuple] // CHECK:STDOUT: %.loc4_1: init %tuple.type = converted %.loc4_20.1, %.loc4_20.3 [concrete = constants.%tuple] // CHECK:STDOUT: assign file.%x.var, %.loc4_1 // CHECK:STDOUT: %x.ref: ref %tuple.type = name_ref x, file.%x [concrete = file.%x.var] -// CHECK:STDOUT: %tuple.elem0.loc5_16.1: ref %empty_tuple.type = tuple_access %x.ref, element0 [concrete = constants.%tuple.elem0.d56] -// CHECK:STDOUT: %tuple.elem0.loc5_16.2: ref %empty_tuple.type = tuple_access file.%y.var, element0 [concrete = constants.%tuple.elem0.3d8] +// CHECK:STDOUT: %tuple.elem0.loc5_16.1: ref %empty_tuple.type = tuple_access %x.ref, element0 [concrete = constants.%tuple.elem0.750] +// CHECK:STDOUT: %tuple.elem0.loc5_16.2: ref %empty_tuple.type = tuple_access file.%y.var, element0 [concrete = constants.%tuple.elem0.918] // CHECK:STDOUT: %.loc5_16.1: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc5_16.2: init %empty_tuple.type = converted %tuple.elem0.loc5_16.1, %.loc5_16.1 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc5_16.3: init %tuple.type to file.%y.var = tuple_init (%.loc5_16.2) [concrete = constants.%tuple] @@ -225,10 +225,10 @@ var y: ((), ()) = x; // CHECK:STDOUT: %tuple.type: type = tuple_type (%empty_tuple.type, %empty_tuple.type) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%empty_tuple, %empty_tuple) [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %tuple.type [concrete] -// CHECK:STDOUT: %tuple.elem0.357: ref %empty_tuple.type = tuple_access file.%x.var, element0 [concrete] -// CHECK:STDOUT: %tuple.elem1.e81: ref %empty_tuple.type = tuple_access file.%x.var, element1 [concrete] -// CHECK:STDOUT: %tuple.elem0.011: ref %empty_tuple.type = tuple_access file.%y.var, element0 [concrete] -// CHECK:STDOUT: %tuple.elem1.7c3: ref %empty_tuple.type = tuple_access file.%y.var, element1 [concrete] +// CHECK:STDOUT: %tuple.elem0.475: ref %empty_tuple.type = tuple_access file.%x.var, element0 [concrete] +// CHECK:STDOUT: %tuple.elem1.6cc: ref %empty_tuple.type = tuple_access file.%x.var, element1 [concrete] +// CHECK:STDOUT: %tuple.elem0.9a9: ref %empty_tuple.type = tuple_access file.%y.var, element0 [concrete] +// CHECK:STDOUT: %tuple.elem1.1af: ref %empty_tuple.type = tuple_access file.%y.var, element1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -301,11 +301,11 @@ var y: ((), ()) = x; // CHECK:STDOUT: %.loc7_21.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_26.1: %tuple.type = tuple_literal (%.loc7_21.1, %.loc7_25.1) [concrete = constants.%tuple] -// CHECK:STDOUT: %tuple.elem0.loc7: ref %empty_tuple.type = tuple_access file.%x.var, element0 [concrete = constants.%tuple.elem0.357] +// CHECK:STDOUT: %tuple.elem0.loc7: ref %empty_tuple.type = tuple_access file.%x.var, element0 [concrete = constants.%tuple.elem0.475] // CHECK:STDOUT: %.loc7_21.2: init %empty_tuple.type to %tuple.elem0.loc7 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_26.2: init %empty_tuple.type = converted %.loc7_21.1, %.loc7_21.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_26.3: init %empty_tuple.type to %tuple.elem0.loc7 = in_place_init %.loc7_26.2 [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %tuple.elem1.loc7: ref %empty_tuple.type = tuple_access file.%x.var, element1 [concrete = constants.%tuple.elem1.e81] +// CHECK:STDOUT: %tuple.elem1.loc7: ref %empty_tuple.type = tuple_access file.%x.var, element1 [concrete = constants.%tuple.elem1.6cc] // CHECK:STDOUT: %.loc7_25.2: init %empty_tuple.type to %tuple.elem1.loc7 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_26.4: init %empty_tuple.type = converted %.loc7_25.1, %.loc7_25.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_26.5: init %empty_tuple.type to %tuple.elem1.loc7 = in_place_init %.loc7_26.4 [concrete = constants.%empty_tuple] @@ -313,13 +313,13 @@ var y: ((), ()) = x; // CHECK:STDOUT: %.loc7_1: init %tuple.type = converted %.loc7_26.1, %.loc7_26.6 [concrete = constants.%tuple] // CHECK:STDOUT: assign file.%x.var, %.loc7_1 // CHECK:STDOUT: %x.ref: ref %tuple.type = name_ref x, file.%x [concrete = file.%x.var] -// CHECK:STDOUT: %tuple.elem0.loc8_19.1: ref %empty_tuple.type = tuple_access %x.ref, element0 [concrete = constants.%tuple.elem0.357] -// CHECK:STDOUT: %tuple.elem0.loc8_19.2: ref %empty_tuple.type = tuple_access file.%y.var, element0 [concrete = constants.%tuple.elem0.011] +// CHECK:STDOUT: %tuple.elem0.loc8_19.1: ref %empty_tuple.type = tuple_access %x.ref, element0 [concrete = constants.%tuple.elem0.475] +// CHECK:STDOUT: %tuple.elem0.loc8_19.2: ref %empty_tuple.type = tuple_access file.%y.var, element0 [concrete = constants.%tuple.elem0.9a9] // CHECK:STDOUT: %.loc8_19.1: init %empty_tuple.type to %tuple.elem0.loc8_19.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_19.2: init %empty_tuple.type = converted %tuple.elem0.loc8_19.1, %.loc8_19.1 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_19.3: init %empty_tuple.type to %tuple.elem0.loc8_19.2 = in_place_init %.loc8_19.2 [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %tuple.elem1.loc8_19.1: ref %empty_tuple.type = tuple_access %x.ref, element1 [concrete = constants.%tuple.elem1.e81] -// CHECK:STDOUT: %tuple.elem1.loc8_19.2: ref %empty_tuple.type = tuple_access file.%y.var, element1 [concrete = constants.%tuple.elem1.7c3] +// CHECK:STDOUT: %tuple.elem1.loc8_19.1: ref %empty_tuple.type = tuple_access %x.ref, element1 [concrete = constants.%tuple.elem1.6cc] +// CHECK:STDOUT: %tuple.elem1.loc8_19.2: ref %empty_tuple.type = tuple_access file.%y.var, element1 [concrete = constants.%tuple.elem1.1af] // CHECK:STDOUT: %.loc8_19.4: init %empty_tuple.type to %tuple.elem1.loc8_19.2 = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_19.5: init %empty_tuple.type = converted %tuple.elem1.loc8_19.1, %.loc8_19.4 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_19.6: init %empty_tuple.type to %tuple.elem1.loc8_19.2 = in_place_init %.loc8_19.5 [concrete = constants.%empty_tuple] diff --git a/toolchain/check/testdata/tuple/element_access.carbon b/toolchain/check/testdata/tuple/element_access.carbon index 222db1d35ba6..0439168957eb 100644 --- a/toolchain/check/testdata/tuple/element_access.carbon +++ b/toolchain/check/testdata/tuple/element_access.carbon @@ -207,31 +207,31 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %tuple.type.cb3: type = tuple_type (%i32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %tuple.elem0.5dd: ref %i32 = tuple_access file.%b.var, element0 [concrete] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %tuple.elem0.24b: ref %i32 = tuple_access file.%b.var, element0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.104 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.104 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.6b6 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.6b6 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %i32 = var %c.var_patt [concrete] // CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -241,11 +241,11 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: -// CHECK:STDOUT: %b.ref: ref %tuple.type.cb3 = name_ref b, file.%b [concrete = file.%b.var] +// CHECK:STDOUT: %b.ref: ref %tuple.type.a8a = name_ref b, file.%b [concrete = file.%b.var] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %tuple.elem0.loc6: ref %i32 = tuple_access %b.ref, element0 [concrete = constants.%tuple.elem0.5dd] +// CHECK:STDOUT: %tuple.elem0.loc6: ref %i32 = tuple_access %b.ref, element0 [concrete = constants.%tuple.elem0.24b] // CHECK:STDOUT: %.loc6: %i32 = acquire_value %tuple.elem0.loc6 -// CHECK:STDOUT: %impl.elem0.loc6: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc6: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_15.1: = bound_method %.loc6, %impl.elem0.loc6 // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @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, %specific_fn.loc6 @@ -262,74 +262,74 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %tuple.type.e4f: type = tuple_type (%empty_tuple.type, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.e56: type = tuple_type (%empty_tuple.type, %i32) [concrete] // CHECK:STDOUT: %tuple.elem0: ref %empty_tuple.type = tuple_access file.%a.var, element0 [concrete] // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access file.%a.var, element1 [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.ace: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %From: Core.IntLiteral = symbolic_binding From, 0 [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.f73: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.34b: %Int.as.ImplicitAs.impl.Convert.type.f73 = struct_value () [symbolic] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.48d: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.0f9: %Int.as.ImplicitAs.impl.Convert.type.48d = struct_value () [symbolic] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.index.b1b: type = struct_type {.index: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.972: %struct_type.index.b1b = struct_value (%int_1.5b8) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %As.type.c00: type = facet_type <@As, @As(%i32)> [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.f55: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.44f: %Core.IntLiteral.as.As.impl.Convert.type.f55 = struct_value () [symbolic] -// CHECK:STDOUT: %As.impl_witness.54d: = impl_witness imports.%As.impl_witness_table.2b9, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.421: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.978: %Core.IntLiteral.as.As.impl.Convert.type.421 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.c00 = facet_value Core.IntLiteral, (%As.impl_witness.54d) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.f0c: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] -// CHECK:STDOUT: %.c18: type = fn_type_with_self_type %As.WithSelf.Convert.type.f0c, %As.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.56e: = bound_method %int_0.5c6, %Core.IntLiteral.as.As.impl.Convert.978 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.978, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.84c: = bound_method %int_0.5c6, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_0.62d: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.062: = impl_witness imports.%ImplicitAs.impl_witness_table.eac, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.337: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.64e: %Int.as.ImplicitAs.impl.Convert.type.337 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.89e: %ImplicitAs.type.ace = facet_value %i32, (%ImplicitAs.impl_witness.062) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b68: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.89e) [concrete] -// CHECK:STDOUT: %.7a9: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b68, %ImplicitAs.facet.89e [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound.619: = bound_method %int_0.62d, %Int.as.ImplicitAs.impl.Convert.64e [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.64e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.fb8: = bound_method %int_0.62d, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.62b: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.978 [concrete] -// CHECK:STDOUT: %bound_method.38f: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %struct_type.index.1e8: type = struct_type {.index: %i32} [concrete] -// CHECK:STDOUT: %struct.541: %struct_type.index.1e8 = struct_value (%int_1.d9c) [concrete] -// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound.ee7: = bound_method %int_1.d9c, %Int.as.ImplicitAs.impl.Convert.64e [concrete] -// CHECK:STDOUT: %bound_method.682: = bound_method %int_1.d9c, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %As.type.155: type = facet_type <@As, @As(%i32)> [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.c5d: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.6ee: %Core.IntLiteral.as.As.impl.Convert.type.c5d = struct_value () [symbolic] +// CHECK:STDOUT: %As.impl_witness.03e: = impl_witness imports.%As.impl_witness_table.1c5, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type.e79: type = fn_type @Core.IntLiteral.as.As.impl.Convert, @Core.IntLiteral.as.As.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.8a4: %Core.IntLiteral.as.As.impl.Convert.type.e79 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.155 = facet_value Core.IntLiteral, (%As.impl_witness.03e) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.8ea: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%i32, %As.facet) [concrete] +// CHECK:STDOUT: %.fbc: type = fn_type_with_self_type %As.WithSelf.Convert.type.8ea, %As.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.0e7: = bound_method %int_0.5c6, %Core.IntLiteral.as.As.impl.Convert.8a4 [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.8a4, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.0fb: = bound_method %int_0.5c6, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_0.3c0: %i32 = int_value 0 [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.416: = impl_witness imports.%ImplicitAs.impl_witness_table.b8b, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.683: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.69e: %Int.as.ImplicitAs.impl.Convert.type.683 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.657: %ImplicitAs.type.7cb = facet_value %i32, (%ImplicitAs.impl_witness.416) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.dc6: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %ImplicitAs.facet.657) [concrete] +// CHECK:STDOUT: %.b08: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.dc6, %ImplicitAs.facet.657 [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound.319: = bound_method %int_0.3c0, %Int.as.ImplicitAs.impl.Convert.69e [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Int.as.ImplicitAs.impl.Convert.69e, @Int.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %bound_method.df0: = bound_method %int_0.3c0, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.3a0: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.8a4 [concrete] +// CHECK:STDOUT: %bound_method.18b: = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] +// CHECK:STDOUT: %int_1.0c6: %i32 = int_value 1 [concrete] +// CHECK:STDOUT: %struct_type.index.eeb: type = struct_type {.index: %i32} [concrete] +// CHECK:STDOUT: %struct.1e7: %struct_type.index.eeb = struct_value (%int_1.0c6) [concrete] +// CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound.276: = bound_method %int_1.0c6, %Int.as.ImplicitAs.impl.Convert.69e [concrete] +// CHECK:STDOUT: %bound_method.f53: = bound_method %int_1.0c6, %Int.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.835: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.f73) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.34b)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.eac = impl_witness_table (%Core.import_ref.835), @Int.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.fd7: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.f55) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.44f)] -// CHECK:STDOUT: %As.impl_witness_table.2b9 = impl_witness_table (%Core.import_ref.fd7), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.32e: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.48d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.0f9)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b8b = impl_witness_table (%Core.import_ref.32e), @Int.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.64b: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.c5d) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.6ee)] +// CHECK:STDOUT: %As.impl_witness_table.1c5 = impl_witness_table (%Core.import_ref.64b), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.104 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.104 = var_pattern %b.patt [concrete] +// 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: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt [concrete] // CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -345,8 +345,8 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: } // CHECK:STDOUT: %c: ref %empty_tuple.type = ref_binding c, %c.var [concrete = %c.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %d.patt: %pattern_type.104 = ref_binding_pattern d [concrete] -// CHECK:STDOUT: %d.var_patt: %pattern_type.104 = var_pattern %d.patt [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.6b6 = ref_binding_pattern d [concrete] +// CHECK:STDOUT: %d.var_patt: %pattern_type.6b6 = var_pattern %d.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %d.var: ref %i32 = var %d.var_patt [concrete] // CHECK:STDOUT: %i32.loc7: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -356,7 +356,7 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: -// CHECK:STDOUT: %a.ref.loc5: ref %tuple.type.e4f = name_ref a, file.%a [concrete = file.%a.var] +// CHECK:STDOUT: %a.ref.loc5: ref %tuple.type.e56 = name_ref a, file.%a [concrete = file.%a.var] // CHECK:STDOUT: %int_1.loc5: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc5_28.1: %struct_type.index.b1b = struct_literal (%int_1.loc5) [concrete = constants.%struct.972] // CHECK:STDOUT: %struct.loc5: %struct_type.index.b1b = struct_value (%int_1.loc5) [concrete = constants.%struct.972] @@ -364,26 +364,26 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %.loc5_29: Core.IntLiteral = struct_access %.loc5_28.2, element0 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %tuple.elem1.loc5: ref %i32 = tuple_access %a.ref.loc5, element1 [concrete = constants.%tuple.elem1] // CHECK:STDOUT: %.loc5_15: %i32 = acquire_value %tuple.elem1.loc5 -// CHECK:STDOUT: %impl.elem0.loc5: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc5: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc5_15.1: = bound_method %.loc5_15, %impl.elem0.loc5 // CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc5_15.2: = bound_method %.loc5_15, %specific_fn.loc5 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc5: init %i32 = call %bound_method.loc5_15.2(%.loc5_15) // CHECK:STDOUT: assign file.%b.var, %Int.as.Copy.impl.Op.call.loc5 -// CHECK:STDOUT: %a.ref.loc6: ref %tuple.type.e4f = name_ref a, file.%a [concrete = file.%a.var] +// CHECK:STDOUT: %a.ref.loc6: ref %tuple.type.e56 = name_ref a, file.%a [concrete = file.%a.var] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %i32.loc6: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc6_18.1: %.c18 = impl_witness_access constants.%As.impl_witness.54d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.978] -// CHECK:STDOUT: %bound_method.loc6_18.1: = bound_method %int_0, %impl.elem0.loc6_18.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.56e] +// CHECK:STDOUT: %impl.elem0.loc6_18.1: %.fbc = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.8a4] +// CHECK:STDOUT: %bound_method.loc6_18.1: = bound_method %int_0, %impl.elem0.loc6_18.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.0e7] // CHECK:STDOUT: %specific_fn.loc6_18.1: = specific_function %impl.elem0.loc6_18.1, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_18.2: = bound_method %int_0, %specific_fn.loc6_18.1 [concrete = constants.%bound_method.84c] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc6: init %i32 = call %bound_method.loc6_18.2(%int_0) [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc6_18.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc6 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %.loc6_18.2: %i32 = converted %int_0, %.loc6_18.1 [concrete = constants.%int_0.62d] -// CHECK:STDOUT: %impl.elem0.loc6_18.2: %.7a9 = impl_witness_access constants.%ImplicitAs.impl_witness.062, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.64e] -// CHECK:STDOUT: %bound_method.loc6_18.3: = bound_method %.loc6_18.2, %impl.elem0.loc6_18.2 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.bound.619] +// CHECK:STDOUT: %bound_method.loc6_18.2: = bound_method %int_0, %specific_fn.loc6_18.1 [concrete = constants.%bound_method.0fb] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc6: init %i32 = call %bound_method.loc6_18.2(%int_0) [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc6_18.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc6 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %.loc6_18.2: %i32 = converted %int_0, %.loc6_18.1 [concrete = constants.%int_0.3c0] +// CHECK:STDOUT: %impl.elem0.loc6_18.2: %.b08 = impl_witness_access constants.%ImplicitAs.impl_witness.416, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.69e] +// CHECK:STDOUT: %bound_method.loc6_18.3: = bound_method %.loc6_18.2, %impl.elem0.loc6_18.2 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.bound.319] // CHECK:STDOUT: %specific_fn.loc6_18.2: = specific_function %impl.elem0.loc6_18.2, @Int.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Int.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_18.4: = bound_method %.loc6_18.2, %specific_fn.loc6_18.2 [concrete = constants.%bound_method.fb8] +// CHECK:STDOUT: %bound_method.loc6_18.4: = bound_method %.loc6_18.2, %specific_fn.loc6_18.2 [concrete = constants.%bound_method.df0] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc6: init Core.IntLiteral = call %bound_method.loc6_18.4(%.loc6_18.2) [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc6_18.3: Core.IntLiteral = value_of_initializer %Int.as.ImplicitAs.impl.Convert.call.loc6 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc6_18.4: Core.IntLiteral = converted %.loc6_18.2, %.loc6_18.3 [concrete = constants.%int_0.5c6] @@ -391,30 +391,30 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %.loc6_14: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc6_1: init %empty_tuple.type = converted %tuple.elem0.loc6, %.loc6_14 [concrete = constants.%empty_tuple] // CHECK:STDOUT: assign file.%c.var, %.loc6_1 -// CHECK:STDOUT: %a.ref.loc7: ref %tuple.type.e4f = name_ref a, file.%a [concrete = file.%a.var] +// CHECK:STDOUT: %a.ref.loc7: ref %tuple.type.e56 = name_ref a, file.%a [concrete = file.%a.var] // CHECK:STDOUT: %int_1.loc7: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %i32.loc7: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc7_29: %.c18 = impl_witness_access constants.%As.impl_witness.54d, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.978] -// CHECK:STDOUT: %bound_method.loc7_29.1: = bound_method %int_1.loc7, %impl.elem0.loc7_29 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.62b] +// CHECK:STDOUT: %impl.elem0.loc7_29: %.fbc = impl_witness_access constants.%As.impl_witness.03e, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.8a4] +// CHECK:STDOUT: %bound_method.loc7_29.1: = bound_method %int_1.loc7, %impl.elem0.loc7_29 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound.3a0] // CHECK:STDOUT: %specific_fn.loc7_29: = specific_function %impl.elem0.loc7_29, @Core.IntLiteral.as.As.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_29.2: = bound_method %int_1.loc7, %specific_fn.loc7_29 [concrete = constants.%bound_method.38f] -// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc7: init %i32 = call %bound_method.loc7_29.2(%int_1.loc7) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc7_29.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc7 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc7_29.2: %i32 = converted %int_1.loc7, %.loc7_29.1 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc7_35.1: %struct_type.index.1e8 = struct_literal (%.loc7_29.2) [concrete = constants.%struct.541] -// CHECK:STDOUT: %struct.loc7: %struct_type.index.1e8 = struct_value (%.loc7_29.2) [concrete = constants.%struct.541] -// CHECK:STDOUT: %.loc7_35.2: %struct_type.index.1e8 = converted %.loc7_35.1, %struct.loc7 [concrete = constants.%struct.541] -// CHECK:STDOUT: %.loc7_36.1: %i32 = struct_access %.loc7_35.2, element0 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc7_36: %.7a9 = impl_witness_access constants.%ImplicitAs.impl_witness.062, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.64e] -// CHECK:STDOUT: %bound_method.loc7_36.1: = bound_method %.loc7_36.1, %impl.elem0.loc7_36 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.bound.ee7] +// CHECK:STDOUT: %bound_method.loc7_29.2: = bound_method %int_1.loc7, %specific_fn.loc7_29 [concrete = constants.%bound_method.18b] +// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call.loc7: init %i32 = call %bound_method.loc7_29.2(%int_1.loc7) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_29.1: %i32 = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call.loc7 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_29.2: %i32 = converted %int_1.loc7, %.loc7_29.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_35.1: %struct_type.index.eeb = struct_literal (%.loc7_29.2) [concrete = constants.%struct.1e7] +// CHECK:STDOUT: %struct.loc7: %struct_type.index.eeb = struct_value (%.loc7_29.2) [concrete = constants.%struct.1e7] +// CHECK:STDOUT: %.loc7_35.2: %struct_type.index.eeb = converted %.loc7_35.1, %struct.loc7 [concrete = constants.%struct.1e7] +// CHECK:STDOUT: %.loc7_36.1: %i32 = struct_access %.loc7_35.2, element0 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc7_36: %.b08 = impl_witness_access constants.%ImplicitAs.impl_witness.416, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.69e] +// CHECK:STDOUT: %bound_method.loc7_36.1: = bound_method %.loc7_36.1, %impl.elem0.loc7_36 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.bound.276] // CHECK:STDOUT: %specific_fn.loc7_36: = specific_function %impl.elem0.loc7_36, @Int.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Int.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_36.2: = bound_method %.loc7_36.1, %specific_fn.loc7_36 [concrete = constants.%bound_method.682] +// CHECK:STDOUT: %bound_method.loc7_36.2: = bound_method %.loc7_36.1, %specific_fn.loc7_36 [concrete = constants.%bound_method.f53] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc7: init Core.IntLiteral = call %bound_method.loc7_36.2(%.loc7_36.1) [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc7_36.2: Core.IntLiteral = value_of_initializer %Int.as.ImplicitAs.impl.Convert.call.loc7 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc7_36.3: Core.IntLiteral = converted %.loc7_36.1, %.loc7_36.2 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %tuple.elem1.loc7: ref %i32 = tuple_access %a.ref.loc7, element1 [concrete = constants.%tuple.elem1] // CHECK:STDOUT: %.loc7_15: %i32 = acquire_value %tuple.elem1.loc7 -// CHECK:STDOUT: %impl.elem0.loc7_15: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc7_15: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc7_15.1: = bound_method %.loc7_15, %impl.elem0.loc7_15 // CHECK:STDOUT: %specific_fn.loc7_15: = specific_function %impl.elem0.loc7_15, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc7_15.2: = bound_method %.loc7_15, %specific_fn.loc7_15 @@ -429,36 +429,36 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %tuple.type.cb3: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Run() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %F.call: init %tuple.type.cb3 = call %F.ref() +// CHECK:STDOUT: %F.call: init %tuple.type.a8a = call %F.ref() // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %.loc7_12.1: %tuple.type.cb3 = value_of_initializer %F.call -// CHECK:STDOUT: %.loc7_12.2: %tuple.type.cb3 = converted %F.call, %.loc7_12.1 +// CHECK:STDOUT: %.loc7_12.1: %tuple.type.a8a = value_of_initializer %F.call +// CHECK:STDOUT: %.loc7_12.2: %tuple.type.a8a = converted %F.call, %.loc7_12.1 // CHECK:STDOUT: %tuple.elem0: %i32 = tuple_access %.loc7_12.2, element0 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc7_13.1: = bound_method %tuple.elem0, %impl.elem0 // 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.loc7_13.2: = bound_method %tuple.elem0, %specific_fn diff --git a/toolchain/check/testdata/tuple/import.carbon b/toolchain/check/testdata/tuple/import.carbon index f68ab6c489f1..a2b6cd5a7b02 100644 --- a/toolchain/check/testdata/tuple/import.carbon +++ b/toolchain/check/testdata/tuple/import.carbon @@ -86,222 +86,222 @@ fn F() -> (i32,) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.867: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.c67: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.867 = struct_value () [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [concrete] -// CHECK:STDOUT: %tuple.ef7: %tuple.type.85c = tuple_value (%i32) [concrete] -// CHECK:STDOUT: %tuple.type.e3c: type = tuple_type (%i32) [concrete] -// CHECK:STDOUT: %pattern_type.2c0: type = pattern_type %tuple.type.e3c [concrete] -// CHECK:STDOUT: %tuple.elem0.9e7: ref %i32 = tuple_access imports.%a_ref.var, element0 [concrete] +// CHECK:STDOUT: %tuple.19c: %tuple.type.85c = tuple_value (%i32) [concrete] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %pattern_type.e71: type = pattern_type %tuple.type.a8a [concrete] +// CHECK:STDOUT: %tuple.elem0.8b2: ref %i32 = tuple_access imports.%a_ref.var, element0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.947: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.c83: %Int.as.Copy.impl.Op.type.947 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.7e7: = impl_witness imports.%Copy.impl_witness_table.53f, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.c58: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.59c: %Int.as.Copy.impl.Op.type.c58 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.7e7) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.fae: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.b11: type = fn_type_with_self_type %Copy.WithSelf.Op.type.fae, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.59c, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: %tuple.type.8c7: type = tuple_type (%tuple.type.85c, type) [concrete] -// CHECK:STDOUT: %tuple.255: %tuple.type.8c7 = tuple_value (%tuple.ef7, %i32) [concrete] +// CHECK:STDOUT: %tuple.8ca: %tuple.type.8c7 = tuple_value (%tuple.19c, %i32) [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.70d: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.b59: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] // CHECK:STDOUT: %tuple.type.58c: type = tuple_type (%tuple.type.8c7, %tuple.type.24b) [concrete] -// CHECK:STDOUT: %tuple.7cf: %tuple.type.58c = tuple_value (%tuple.255, %tuple.70d) [concrete] -// CHECK:STDOUT: %tuple.type.e2c: type = tuple_type (%tuple.type.e3c, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.bec: type = tuple_type (%i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.372: type = tuple_type (%tuple.type.e2c, %tuple.type.bec) [concrete] -// CHECK:STDOUT: %pattern_type.206: type = pattern_type %tuple.type.372 [concrete] -// CHECK:STDOUT: %tuple.elem0.6ee: ref %tuple.type.e2c = tuple_access imports.%b_ref.var, element0 [concrete] -// CHECK:STDOUT: %tuple.elem0.d70: ref %tuple.type.e2c = tuple_access file.%b.var, element0 [concrete] -// CHECK:STDOUT: %tuple.elem0.fd1: ref %tuple.type.e3c = tuple_access %tuple.elem0.6ee, element0 [concrete] -// CHECK:STDOUT: %tuple.elem0.649: ref %tuple.type.e3c = tuple_access %tuple.elem0.d70, element0 [concrete] -// CHECK:STDOUT: %tuple.elem0.b5f: ref %i32 = tuple_access %tuple.elem0.fd1, element0 [concrete] -// CHECK:STDOUT: %tuple.elem1.597: ref %i32 = tuple_access %tuple.elem0.6ee, element1 [concrete] -// CHECK:STDOUT: %tuple.elem1.17a: ref %i32 = tuple_access %tuple.elem0.d70, element1 [concrete] -// CHECK:STDOUT: %tuple.elem1.ac3: ref %tuple.type.bec = tuple_access imports.%b_ref.var, element1 [concrete] -// CHECK:STDOUT: %tuple.elem1.273: ref %tuple.type.bec = tuple_access file.%b.var, element1 [concrete] -// CHECK:STDOUT: %tuple.elem0.4bf: ref %i32 = tuple_access %tuple.elem1.ac3, element0 [concrete] -// CHECK:STDOUT: %tuple.elem0.0a0: ref %i32 = tuple_access %tuple.elem1.273, element0 [concrete] -// CHECK:STDOUT: %tuple.elem1.84a: ref %i32 = tuple_access %tuple.elem1.ac3, element1 [concrete] -// CHECK:STDOUT: %tuple.elem1.d83: ref %i32 = tuple_access %tuple.elem1.273, element1 [concrete] +// CHECK:STDOUT: %tuple.368: %tuple.type.58c = tuple_value (%tuple.8ca, %tuple.b59) [concrete] +// CHECK:STDOUT: %tuple.type.cc8: type = tuple_type (%tuple.type.a8a, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.e23: type = tuple_type (%tuple.type.cc8, %tuple.type.e55) [concrete] +// CHECK:STDOUT: %pattern_type.05e: type = pattern_type %tuple.type.e23 [concrete] +// CHECK:STDOUT: %tuple.elem0.383: ref %tuple.type.cc8 = tuple_access imports.%b_ref.var, element0 [concrete] +// CHECK:STDOUT: %tuple.elem0.92c: ref %tuple.type.cc8 = tuple_access file.%b.var, element0 [concrete] +// CHECK:STDOUT: %tuple.elem0.0e5: ref %tuple.type.a8a = tuple_access %tuple.elem0.383, element0 [concrete] +// CHECK:STDOUT: %tuple.elem0.1a7: ref %tuple.type.a8a = tuple_access %tuple.elem0.92c, element0 [concrete] +// CHECK:STDOUT: %tuple.elem0.3c8: ref %i32 = tuple_access %tuple.elem0.0e5, element0 [concrete] +// CHECK:STDOUT: %tuple.elem1.b0c: ref %i32 = tuple_access %tuple.elem0.383, element1 [concrete] +// CHECK:STDOUT: %tuple.elem1.03c: ref %i32 = tuple_access %tuple.elem0.92c, element1 [concrete] +// CHECK:STDOUT: %tuple.elem1.9f7: ref %tuple.type.e55 = tuple_access imports.%b_ref.var, element1 [concrete] +// CHECK:STDOUT: %tuple.elem1.cfa: ref %tuple.type.e55 = tuple_access file.%b.var, element1 [concrete] +// CHECK:STDOUT: %tuple.elem0.c7d: ref %i32 = tuple_access %tuple.elem1.9f7, element0 [concrete] +// CHECK:STDOUT: %tuple.elem0.c91: ref %i32 = tuple_access %tuple.elem1.cfa, element0 [concrete] +// CHECK:STDOUT: %tuple.elem1.576: ref %i32 = tuple_access %tuple.elem1.9f7, element1 [concrete] +// CHECK:STDOUT: %tuple.elem1.c82: ref %i32 = tuple_access %tuple.elem1.cfa, element1 [concrete] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [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: %ImplicitAs.type.e71: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3bc: = impl_witness imports.%ImplicitAs.impl_witness_table.6a8, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.777: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.6e2: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.777 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.e71 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3bc) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b69: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.7e8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b69, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.927: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.6e2 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.6e2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.ff1: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.6b0: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.72f: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.6e2 [concrete] -// CHECK:STDOUT: %bound_method.c30: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.c3d: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %tuple.f55: %tuple.type.bec = tuple_value (%int_1.6b0, %int_2.c3d) [concrete] -// CHECK:STDOUT: %C.332: type = class_type @C, @C(%tuple.f55) [concrete] -// CHECK:STDOUT: %pattern_type.73c: type = pattern_type %C.332 [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.778: = impl_witness imports.%ImplicitAs.impl_witness_table.1f3, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.778) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.2eb: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.d74: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.2eb, %ImplicitAs.facet [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: %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.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: %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: %tuple.102: %tuple.type.e55 = tuple_value (%int_1.0c6, %int_2.295) [concrete] +// CHECK:STDOUT: %C.372: type = class_type @C, @C(%tuple.102) [concrete] +// CHECK:STDOUT: %pattern_type.717: type = pattern_type %C.372 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Implicit.a_ref: ref %tuple.type.e3c = import_ref Implicit//default, a_ref, loaded [concrete = %a_ref.var] -// CHECK:STDOUT: %Implicit.b_ref: ref %tuple.type.372 = import_ref Implicit//default, b_ref, loaded [concrete = %b_ref.var] +// CHECK:STDOUT: %Implicit.a_ref: ref %tuple.type.a8a = import_ref Implicit//default, a_ref, loaded [concrete = %a_ref.var] +// CHECK:STDOUT: %Implicit.b_ref: ref %tuple.type.e23 = import_ref Implicit//default, b_ref, loaded [concrete = %b_ref.var] // CHECK:STDOUT: %Implicit.C: %C.type = import_ref Implicit//default, C, loaded [concrete = constants.%C.generic] // CHECK:STDOUT: %Implicit.F: %F.type = import_ref Implicit//default, F, loaded [concrete = constants.%F] -// CHECK:STDOUT: %Implicit.import_ref.b8a: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.867) = import_ref Implicit//default, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.c67)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.6a8 = impl_witness_table (%Implicit.import_ref.b8a), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %a_ref.patt: %pattern_type.2c0 = ref_binding_pattern a_ref [concrete] -// CHECK:STDOUT: %a_ref.var_patt: %pattern_type.2c0 = var_pattern %a_ref.patt [concrete] -// CHECK:STDOUT: %a_ref.var: ref %tuple.type.e3c = var %a_ref.var_patt [concrete] -// CHECK:STDOUT: %Core.import_ref.3f2: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.947) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.c83)] -// CHECK:STDOUT: %Copy.impl_witness_table.53f = impl_witness_table (%Core.import_ref.3f2), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %b_ref.patt: %pattern_type.206 = ref_binding_pattern b_ref [concrete] -// CHECK:STDOUT: %b_ref.var_patt: %pattern_type.206 = var_pattern %b_ref.patt [concrete] -// CHECK:STDOUT: %b_ref.var: ref %tuple.type.372 = var %b_ref.var_patt [concrete] +// CHECK:STDOUT: %Implicit.import_ref.717: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Implicit//default, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.1f3 = impl_witness_table (%Implicit.import_ref.717), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %a_ref.patt: %pattern_type.e71 = ref_binding_pattern a_ref [concrete] +// CHECK:STDOUT: %a_ref.var_patt: %pattern_type.e71 = var_pattern %a_ref.patt [concrete] +// CHECK:STDOUT: %a_ref.var: ref %tuple.type.a8a = var %a_ref.var_patt [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %b_ref.patt: %pattern_type.05e = ref_binding_pattern b_ref [concrete] +// CHECK:STDOUT: %b_ref.var_patt: %pattern_type.05e = var_pattern %b_ref.patt [concrete] +// CHECK:STDOUT: %b_ref.var: ref %tuple.type.e23 = var %b_ref.var_patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.2c0 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.2c0 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.e71 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.e71 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.var: ref %tuple.type.e3c = var %a.var_patt [concrete] -// CHECK:STDOUT: %.loc5_13.1: type = splice_block %.loc5_13.3 [concrete = constants.%tuple.type.e3c] { +// CHECK:STDOUT: %a.var: ref %tuple.type.a8a = var %a.var_patt [concrete] +// CHECK:STDOUT: %.loc5_13.1: type = splice_block %.loc5_13.3 [concrete = constants.%tuple.type.a8a] { // CHECK:STDOUT: %i32.loc5: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc5_13.2: %tuple.type.85c = tuple_literal (%i32.loc5) [concrete = constants.%tuple.ef7] -// CHECK:STDOUT: %.loc5_13.3: type = converted %.loc5_13.2, constants.%tuple.type.e3c [concrete = constants.%tuple.type.e3c] +// CHECK:STDOUT: %.loc5_13.2: %tuple.type.85c = tuple_literal (%i32.loc5) [concrete = constants.%tuple.19c] +// CHECK:STDOUT: %.loc5_13.3: type = converted %.loc5_13.2, constants.%tuple.type.a8a [concrete = constants.%tuple.type.a8a] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: ref %tuple.type.e3c = ref_binding a, %a.var [concrete = %a.var] +// CHECK:STDOUT: %a: ref %tuple.type.a8a = ref_binding a, %a.var [concrete = %a.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.206 = ref_binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.206 = var_pattern %b.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.05e = ref_binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.05e = var_pattern %b.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.var: ref %tuple.type.372 = var %b.var_patt [concrete] -// CHECK:STDOUT: %.loc6_34.1: type = splice_block %.loc6_34.6 [concrete = constants.%tuple.type.372] { +// CHECK:STDOUT: %b.var: ref %tuple.type.e23 = var %b.var_patt [concrete] +// CHECK:STDOUT: %.loc6_34.1: type = splice_block %.loc6_34.6 [concrete = constants.%tuple.type.e23] { // CHECK:STDOUT: %i32.loc6_11: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc6_15: %tuple.type.85c = tuple_literal (%i32.loc6_11) [concrete = constants.%tuple.ef7] +// CHECK:STDOUT: %.loc6_15: %tuple.type.85c = tuple_literal (%i32.loc6_11) [concrete = constants.%tuple.19c] // CHECK:STDOUT: %i32.loc6_18: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc6_21: %tuple.type.8c7 = tuple_literal (%.loc6_15, %i32.loc6_18) [concrete = constants.%tuple.255] +// CHECK:STDOUT: %.loc6_21: %tuple.type.8c7 = tuple_literal (%.loc6_15, %i32.loc6_18) [concrete = constants.%tuple.8ca] // CHECK:STDOUT: %i32.loc6_25: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc6_30: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc6_33: %tuple.type.24b = tuple_literal (%i32.loc6_25, %i32.loc6_30) [concrete = constants.%tuple.70d] -// CHECK:STDOUT: %.loc6_34.2: %tuple.type.58c = tuple_literal (%.loc6_21, %.loc6_33) [concrete = constants.%tuple.7cf] -// CHECK:STDOUT: %.loc6_34.3: type = converted constants.%tuple.ef7, constants.%tuple.type.e3c [concrete = constants.%tuple.type.e3c] -// CHECK:STDOUT: %.loc6_34.4: type = converted constants.%tuple.255, constants.%tuple.type.e2c [concrete = constants.%tuple.type.e2c] -// CHECK:STDOUT: %.loc6_34.5: type = converted constants.%tuple.70d, constants.%tuple.type.bec [concrete = constants.%tuple.type.bec] -// CHECK:STDOUT: %.loc6_34.6: type = converted %.loc6_34.2, constants.%tuple.type.372 [concrete = constants.%tuple.type.372] +// CHECK:STDOUT: %.loc6_33: %tuple.type.24b = tuple_literal (%i32.loc6_25, %i32.loc6_30) [concrete = constants.%tuple.b59] +// CHECK:STDOUT: %.loc6_34.2: %tuple.type.58c = tuple_literal (%.loc6_21, %.loc6_33) [concrete = constants.%tuple.368] +// CHECK:STDOUT: %.loc6_34.3: type = converted constants.%tuple.19c, constants.%tuple.type.a8a [concrete = constants.%tuple.type.a8a] +// CHECK:STDOUT: %.loc6_34.4: type = converted constants.%tuple.8ca, constants.%tuple.type.cc8 [concrete = constants.%tuple.type.cc8] +// CHECK:STDOUT: %.loc6_34.5: type = converted constants.%tuple.b59, constants.%tuple.type.e55 [concrete = constants.%tuple.type.e55] +// CHECK:STDOUT: %.loc6_34.6: type = converted %.loc6_34.2, constants.%tuple.type.e23 [concrete = constants.%tuple.type.e23] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: ref %tuple.type.372 = ref_binding b, %b.var [concrete = %b.var] +// CHECK:STDOUT: %b: ref %tuple.type.e23 = ref_binding b, %b.var [concrete = %b.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.73c = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.73c = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.717 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.717 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %c.var: ref %C.332 = var %c.var_patt [concrete] -// CHECK:STDOUT: %.loc7_16.1: type = splice_block %C [concrete = constants.%C.332] { +// CHECK:STDOUT: %c.var: ref %C.372 = var %c.var_patt [concrete] +// CHECK:STDOUT: %.loc7_16.1: type = splice_block %C [concrete = constants.%C.372] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Implicit.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc7_15.1: %tuple.type.f94 = tuple_literal (%int_1, %int_2) [concrete = constants.%tuple.ad8] -// CHECK:STDOUT: %impl.elem0.loc7_15.1: %.7e8 = impl_witness_access constants.%ImplicitAs.impl_witness.3bc, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.6e2] -// CHECK:STDOUT: %bound_method.loc7_15.1: = bound_method %int_1, %impl.elem0.loc7_15.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.927] +// CHECK:STDOUT: %impl.elem0.loc7_15.1: %.d74 = impl_witness_access constants.%ImplicitAs.impl_witness.778, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc7_15.1: = bound_method %int_1, %impl.elem0.loc7_15.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc7_15.1: = specific_function %impl.elem0.loc7_15.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_15.2: = bound_method %int_1, %specific_fn.loc7_15.1 [concrete = constants.%bound_method.ff1] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_15.1: init %i32 = call %bound_method.loc7_15.2(%int_1) [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc7_15.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_15.1 [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %.loc7_15.3: %i32 = converted %int_1, %.loc7_15.2 [concrete = constants.%int_1.6b0] -// CHECK:STDOUT: %impl.elem0.loc7_15.2: %.7e8 = impl_witness_access constants.%ImplicitAs.impl_witness.3bc, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.6e2] -// CHECK:STDOUT: %bound_method.loc7_15.3: = bound_method %int_2, %impl.elem0.loc7_15.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.72f] +// CHECK:STDOUT: %bound_method.loc7_15.2: = bound_method %int_1, %specific_fn.loc7_15.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_15.1: init %i32 = call %bound_method.loc7_15.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_15.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_15.1 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc7_15.3: %i32 = converted %int_1, %.loc7_15.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc7_15.2: %.d74 = impl_witness_access constants.%ImplicitAs.impl_witness.778, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc7_15.3: = bound_method %int_2, %impl.elem0.loc7_15.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc7_15.2: = specific_function %impl.elem0.loc7_15.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_15.4: = bound_method %int_2, %specific_fn.loc7_15.2 [concrete = constants.%bound_method.c30] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_15.2: init %i32 = call %bound_method.loc7_15.4(%int_2) [concrete = constants.%int_2.c3d] -// CHECK:STDOUT: %.loc7_15.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_15.2 [concrete = constants.%int_2.c3d] -// CHECK:STDOUT: %.loc7_15.5: %i32 = converted %int_2, %.loc7_15.4 [concrete = constants.%int_2.c3d] -// CHECK:STDOUT: %tuple: %tuple.type.bec = tuple_value (%.loc7_15.3, %.loc7_15.5) [concrete = constants.%tuple.f55] -// CHECK:STDOUT: %.loc7_16.2: %tuple.type.bec = converted %.loc7_15.1, %tuple [concrete = constants.%tuple.f55] -// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%tuple.f55) [concrete = constants.%C.332] +// CHECK:STDOUT: %bound_method.loc7_15.4: = bound_method %int_2, %specific_fn.loc7_15.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_15.2: init %i32 = call %bound_method.loc7_15.4(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc7_15.4: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc7_15.2 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc7_15.5: %i32 = converted %int_2, %.loc7_15.4 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %tuple: %tuple.type.e55 = tuple_value (%.loc7_15.3, %.loc7_15.5) [concrete = constants.%tuple.102] +// CHECK:STDOUT: %.loc7_16.2: %tuple.type.e55 = converted %.loc7_15.1, %tuple [concrete = constants.%tuple.102] +// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%tuple.102) [concrete = constants.%C.372] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: ref %C.332 = ref_binding c, %c.var [concrete = %c.var] +// CHECK:STDOUT: %c: ref %C.372 = ref_binding c, %c.var [concrete = %c.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a_ref.ref: ref %tuple.type.e3c = name_ref a_ref, imports.%Implicit.a_ref [concrete = imports.%a_ref.var] -// CHECK:STDOUT: %tuple.elem0.loc5: ref %i32 = tuple_access %a_ref.ref, element0 [concrete = constants.%tuple.elem0.9e7] +// CHECK:STDOUT: %a_ref.ref: ref %tuple.type.a8a = name_ref a_ref, imports.%Implicit.a_ref [concrete = imports.%a_ref.var] +// CHECK:STDOUT: %tuple.elem0.loc5: ref %i32 = tuple_access %a_ref.ref, element0 [concrete = constants.%tuple.elem0.8b2] // CHECK:STDOUT: %.loc5_17.1: %i32 = acquire_value %tuple.elem0.loc5 -// CHECK:STDOUT: %impl.elem0.loc5: %.b11 = impl_witness_access constants.%Copy.impl_witness.7e7, element0 [concrete = constants.%Int.as.Copy.impl.Op.59c] +// CHECK:STDOUT: %impl.elem0.loc5: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc5_17.1: = bound_method %.loc5_17.1, %impl.elem0.loc5 // CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc5_17.2: = bound_method %.loc5_17.1, %specific_fn.loc5 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc5: init %i32 = call %bound_method.loc5_17.2(%.loc5_17.1) -// CHECK:STDOUT: %.loc5_17.2: init %tuple.type.e3c to file.%a.var = tuple_init (%Int.as.Copy.impl.Op.call.loc5) -// CHECK:STDOUT: %.loc5_1: init %tuple.type.e3c = converted %a_ref.ref, %.loc5_17.2 +// CHECK:STDOUT: %.loc5_17.2: init %tuple.type.a8a to file.%a.var = tuple_init (%Int.as.Copy.impl.Op.call.loc5) +// CHECK:STDOUT: %.loc5_1: init %tuple.type.a8a = converted %a_ref.ref, %.loc5_17.2 // CHECK:STDOUT: assign file.%a.var, %.loc5_1 -// CHECK:STDOUT: %b_ref.ref: ref %tuple.type.372 = name_ref b_ref, imports.%Implicit.b_ref [concrete = imports.%b_ref.var] -// CHECK:STDOUT: %tuple.elem0.loc6_38.1: ref %tuple.type.e2c = tuple_access %b_ref.ref, element0 [concrete = constants.%tuple.elem0.6ee] -// CHECK:STDOUT: %tuple.elem0.loc6_38.2: ref %tuple.type.e3c = tuple_access %tuple.elem0.loc6_38.1, element0 [concrete = constants.%tuple.elem0.fd1] -// CHECK:STDOUT: %tuple.elem0.loc6_38.3: ref %i32 = tuple_access %tuple.elem0.loc6_38.2, element0 [concrete = constants.%tuple.elem0.b5f] +// CHECK:STDOUT: %b_ref.ref: ref %tuple.type.e23 = name_ref b_ref, imports.%Implicit.b_ref [concrete = imports.%b_ref.var] +// CHECK:STDOUT: %tuple.elem0.loc6_38.1: ref %tuple.type.cc8 = tuple_access %b_ref.ref, element0 [concrete = constants.%tuple.elem0.383] +// CHECK:STDOUT: %tuple.elem0.loc6_38.2: ref %tuple.type.a8a = tuple_access %tuple.elem0.loc6_38.1, element0 [concrete = constants.%tuple.elem0.0e5] +// CHECK:STDOUT: %tuple.elem0.loc6_38.3: ref %i32 = tuple_access %tuple.elem0.loc6_38.2, element0 [concrete = constants.%tuple.elem0.3c8] // CHECK:STDOUT: %.loc6_38.1: %i32 = acquire_value %tuple.elem0.loc6_38.3 -// CHECK:STDOUT: %impl.elem0.loc6_38.1: %.b11 = impl_witness_access constants.%Copy.impl_witness.7e7, element0 [concrete = constants.%Int.as.Copy.impl.Op.59c] +// CHECK:STDOUT: %impl.elem0.loc6_38.1: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_38.1: = bound_method %.loc6_38.1, %impl.elem0.loc6_38.1 // CHECK:STDOUT: %specific_fn.loc6_38.1: = specific_function %impl.elem0.loc6_38.1, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc6_38.2: = bound_method %.loc6_38.1, %specific_fn.loc6_38.1 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc6_38.1: init %i32 = call %bound_method.loc6_38.2(%.loc6_38.1) -// CHECK:STDOUT: %tuple.elem0.loc6_38.4: ref %tuple.type.e2c = tuple_access file.%b.var, element0 [concrete = constants.%tuple.elem0.d70] -// CHECK:STDOUT: %tuple.elem0.loc6_38.5: ref %tuple.type.e3c = tuple_access %tuple.elem0.loc6_38.4, element0 [concrete = constants.%tuple.elem0.649] -// CHECK:STDOUT: %.loc6_38.2: init %tuple.type.e3c to %tuple.elem0.loc6_38.5 = tuple_init (%Int.as.Copy.impl.Op.call.loc6_38.1) -// CHECK:STDOUT: %.loc6_38.3: init %tuple.type.e3c = converted %tuple.elem0.loc6_38.2, %.loc6_38.2 -// CHECK:STDOUT: %.loc6_38.4: init %tuple.type.e3c to %tuple.elem0.loc6_38.5 = in_place_init %.loc6_38.3 -// CHECK:STDOUT: %tuple.elem1.loc6_38.1: ref %i32 = tuple_access %tuple.elem0.loc6_38.1, element1 [concrete = constants.%tuple.elem1.597] +// CHECK:STDOUT: %tuple.elem0.loc6_38.4: ref %tuple.type.cc8 = tuple_access file.%b.var, element0 [concrete = constants.%tuple.elem0.92c] +// CHECK:STDOUT: %tuple.elem0.loc6_38.5: ref %tuple.type.a8a = tuple_access %tuple.elem0.loc6_38.4, element0 [concrete = constants.%tuple.elem0.1a7] +// CHECK:STDOUT: %.loc6_38.2: init %tuple.type.a8a to %tuple.elem0.loc6_38.5 = tuple_init (%Int.as.Copy.impl.Op.call.loc6_38.1) +// CHECK:STDOUT: %.loc6_38.3: init %tuple.type.a8a = converted %tuple.elem0.loc6_38.2, %.loc6_38.2 +// CHECK:STDOUT: %.loc6_38.4: init %tuple.type.a8a to %tuple.elem0.loc6_38.5 = in_place_init %.loc6_38.3 +// CHECK:STDOUT: %tuple.elem1.loc6_38.1: ref %i32 = tuple_access %tuple.elem0.loc6_38.1, element1 [concrete = constants.%tuple.elem1.b0c] // CHECK:STDOUT: %.loc6_38.5: %i32 = acquire_value %tuple.elem1.loc6_38.1 -// CHECK:STDOUT: %impl.elem0.loc6_38.2: %.b11 = impl_witness_access constants.%Copy.impl_witness.7e7, element0 [concrete = constants.%Int.as.Copy.impl.Op.59c] +// CHECK:STDOUT: %impl.elem0.loc6_38.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_38.3: = bound_method %.loc6_38.5, %impl.elem0.loc6_38.2 // CHECK:STDOUT: %specific_fn.loc6_38.2: = specific_function %impl.elem0.loc6_38.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc6_38.4: = bound_method %.loc6_38.5, %specific_fn.loc6_38.2 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc6_38.2: init %i32 = call %bound_method.loc6_38.4(%.loc6_38.5) -// CHECK:STDOUT: %tuple.elem1.loc6_38.2: ref %i32 = tuple_access %tuple.elem0.loc6_38.4, element1 [concrete = constants.%tuple.elem1.17a] +// CHECK:STDOUT: %tuple.elem1.loc6_38.2: ref %i32 = tuple_access %tuple.elem0.loc6_38.4, element1 [concrete = constants.%tuple.elem1.03c] // CHECK:STDOUT: %.loc6_38.6: init %i32 to %tuple.elem1.loc6_38.2 = in_place_init %Int.as.Copy.impl.Op.call.loc6_38.2 -// CHECK:STDOUT: %.loc6_38.7: init %tuple.type.e2c to %tuple.elem0.loc6_38.4 = tuple_init (%.loc6_38.4, %.loc6_38.6) -// CHECK:STDOUT: %.loc6_38.8: init %tuple.type.e2c = converted %tuple.elem0.loc6_38.1, %.loc6_38.7 -// CHECK:STDOUT: %tuple.elem1.loc6_38.3: ref %tuple.type.bec = tuple_access %b_ref.ref, element1 [concrete = constants.%tuple.elem1.ac3] -// CHECK:STDOUT: %tuple.elem0.loc6_38.6: ref %i32 = tuple_access %tuple.elem1.loc6_38.3, element0 [concrete = constants.%tuple.elem0.4bf] +// CHECK:STDOUT: %.loc6_38.7: init %tuple.type.cc8 to %tuple.elem0.loc6_38.4 = tuple_init (%.loc6_38.4, %.loc6_38.6) +// CHECK:STDOUT: %.loc6_38.8: init %tuple.type.cc8 = converted %tuple.elem0.loc6_38.1, %.loc6_38.7 +// CHECK:STDOUT: %tuple.elem1.loc6_38.3: ref %tuple.type.e55 = tuple_access %b_ref.ref, element1 [concrete = constants.%tuple.elem1.9f7] +// CHECK:STDOUT: %tuple.elem0.loc6_38.6: ref %i32 = tuple_access %tuple.elem1.loc6_38.3, element0 [concrete = constants.%tuple.elem0.c7d] // CHECK:STDOUT: %.loc6_38.9: %i32 = acquire_value %tuple.elem0.loc6_38.6 -// CHECK:STDOUT: %impl.elem0.loc6_38.3: %.b11 = impl_witness_access constants.%Copy.impl_witness.7e7, element0 [concrete = constants.%Int.as.Copy.impl.Op.59c] +// CHECK:STDOUT: %impl.elem0.loc6_38.3: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_38.5: = bound_method %.loc6_38.9, %impl.elem0.loc6_38.3 // CHECK:STDOUT: %specific_fn.loc6_38.3: = specific_function %impl.elem0.loc6_38.3, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc6_38.6: = bound_method %.loc6_38.9, %specific_fn.loc6_38.3 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc6_38.3: init %i32 = call %bound_method.loc6_38.6(%.loc6_38.9) -// CHECK:STDOUT: %tuple.elem1.loc6_38.4: ref %tuple.type.bec = tuple_access file.%b.var, element1 [concrete = constants.%tuple.elem1.273] -// CHECK:STDOUT: %tuple.elem0.loc6_38.7: ref %i32 = tuple_access %tuple.elem1.loc6_38.4, element0 [concrete = constants.%tuple.elem0.0a0] +// CHECK:STDOUT: %tuple.elem1.loc6_38.4: ref %tuple.type.e55 = tuple_access file.%b.var, element1 [concrete = constants.%tuple.elem1.cfa] +// CHECK:STDOUT: %tuple.elem0.loc6_38.7: ref %i32 = tuple_access %tuple.elem1.loc6_38.4, element0 [concrete = constants.%tuple.elem0.c91] // CHECK:STDOUT: %.loc6_38.10: init %i32 to %tuple.elem0.loc6_38.7 = in_place_init %Int.as.Copy.impl.Op.call.loc6_38.3 -// CHECK:STDOUT: %tuple.elem1.loc6_38.5: ref %i32 = tuple_access %tuple.elem1.loc6_38.3, element1 [concrete = constants.%tuple.elem1.84a] +// CHECK:STDOUT: %tuple.elem1.loc6_38.5: ref %i32 = tuple_access %tuple.elem1.loc6_38.3, element1 [concrete = constants.%tuple.elem1.576] // CHECK:STDOUT: %.loc6_38.11: %i32 = acquire_value %tuple.elem1.loc6_38.5 -// CHECK:STDOUT: %impl.elem0.loc6_38.4: %.b11 = impl_witness_access constants.%Copy.impl_witness.7e7, element0 [concrete = constants.%Int.as.Copy.impl.Op.59c] +// CHECK:STDOUT: %impl.elem0.loc6_38.4: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc6_38.7: = bound_method %.loc6_38.11, %impl.elem0.loc6_38.4 // CHECK:STDOUT: %specific_fn.loc6_38.4: = specific_function %impl.elem0.loc6_38.4, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc6_38.8: = bound_method %.loc6_38.11, %specific_fn.loc6_38.4 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc6_38.4: init %i32 = call %bound_method.loc6_38.8(%.loc6_38.11) -// CHECK:STDOUT: %tuple.elem1.loc6_38.6: ref %i32 = tuple_access %tuple.elem1.loc6_38.4, element1 [concrete = constants.%tuple.elem1.d83] +// CHECK:STDOUT: %tuple.elem1.loc6_38.6: ref %i32 = tuple_access %tuple.elem1.loc6_38.4, element1 [concrete = constants.%tuple.elem1.c82] // CHECK:STDOUT: %.loc6_38.12: init %i32 to %tuple.elem1.loc6_38.6 = in_place_init %Int.as.Copy.impl.Op.call.loc6_38.4 -// CHECK:STDOUT: %.loc6_38.13: init %tuple.type.bec to %tuple.elem1.loc6_38.4 = tuple_init (%.loc6_38.10, %.loc6_38.12) -// CHECK:STDOUT: %.loc6_38.14: init %tuple.type.bec = converted %tuple.elem1.loc6_38.3, %.loc6_38.13 -// CHECK:STDOUT: %.loc6_38.15: init %tuple.type.372 to file.%b.var = tuple_init (%.loc6_38.8, %.loc6_38.14) -// CHECK:STDOUT: %.loc6_1: init %tuple.type.372 = converted %b_ref.ref, %.loc6_38.15 +// CHECK:STDOUT: %.loc6_38.13: init %tuple.type.e55 to %tuple.elem1.loc6_38.4 = tuple_init (%.loc6_38.10, %.loc6_38.12) +// CHECK:STDOUT: %.loc6_38.14: init %tuple.type.e55 = converted %tuple.elem1.loc6_38.3, %.loc6_38.13 +// CHECK:STDOUT: %.loc6_38.15: init %tuple.type.e23 to file.%b.var = tuple_init (%.loc6_38.8, %.loc6_38.14) +// CHECK:STDOUT: %.loc6_1: init %tuple.type.e23 = converted %b_ref.ref, %.loc6_38.15 // CHECK:STDOUT: assign file.%b.var, %.loc6_1 // CHECK:STDOUT: %F.ref: %F.type = name_ref F, imports.%Implicit.F [concrete = constants.%F] -// CHECK:STDOUT: %.loc7: ref %C.332 = splice_block file.%c.var [concrete = file.%c.var] {} -// CHECK:STDOUT: %F.call: init %C.332 to %.loc7 = call %F.ref() +// CHECK:STDOUT: %.loc7: ref %C.372 = splice_block file.%c.var [concrete = file.%c.var] {} +// CHECK:STDOUT: %F.call: init %C.372 to %.loc7 = call %F.ref() // CHECK:STDOUT: assign file.%c.var, %F.call // CHECK:STDOUT: // CHECK:STDOUT: } @@ -312,42 +312,42 @@ fn F() -> (i32,) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %tuple.type.cb3: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %int_1: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %tuple.152: %tuple.type.cb3 = tuple_value (%int_1) [concrete] +// CHECK:STDOUT: %tuple.a1e: %tuple.type.a8a = tuple_value (%int_1) [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.b59: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.dd7 [concrete] +// CHECK:STDOUT: %assoc0.95e: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.823 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1, %Int.as.Copy.impl.Op.ce7 [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1, %Int.as.Copy.impl.Op.4f6 [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: %bound_method: = bound_method %int_1, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//symbolic_decl, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.C: type = import_ref Main//symbolic_decl, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.77a: %I.assoc_type = import_ref Main//symbolic_decl, loc5_12, loaded [concrete = constants.%assoc0.b59] -// CHECK:STDOUT: %Main.import_ref.dac: %tuple.type.cb3 = import_ref Main//symbolic_decl, loc10_33, loaded [concrete = constants.%tuple.152] -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.dac), @C.as.I.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.dd7: %tuple.type.cb3 = import_ref Main//symbolic_decl, loc5_12, loaded [concrete = %value] -// CHECK:STDOUT: %value: %tuple.type.cb3 = assoc_const_decl @value [concrete] {} -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.5c2: %I.assoc_type = import_ref Main//symbolic_decl, loc5_12, loaded [concrete = constants.%assoc0.95e] +// CHECK:STDOUT: %Main.import_ref.415: %tuple.type.a8a = import_ref Main//symbolic_decl, loc10_33, loaded [concrete = constants.%tuple.a1e] +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.415), @C.as.I.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.823: %tuple.type.a8a = import_ref Main//symbolic_decl, loc5_12, loaded [concrete = %value] +// CHECK:STDOUT: %value: %tuple.type.a8a = assoc_const_decl @value [concrete] {} +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F() -> out %return.param: %tuple.type.cb3 { +// CHECK:STDOUT: fn @F() -> out %return.param: %tuple.type.a8a { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] @@ -355,16 +355,16 @@ fn F() -> (i32,) { // CHECK:STDOUT: %.loc7_13: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_13 [concrete = constants.%C] // CHECK:STDOUT: %.loc7_18.1: type = converted %.loc7_13, %as_type [concrete = constants.%C] -// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.77a [concrete = constants.%assoc0.b59] -// CHECK:STDOUT: %impl.elem0.loc7_18.1: %tuple.type.cb3 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%tuple.152] +// CHECK:STDOUT: %value.ref: %I.assoc_type = name_ref value, imports.%Main.import_ref.5c2 [concrete = constants.%assoc0.95e] +// CHECK:STDOUT: %impl.elem0.loc7_18.1: %tuple.type.a8a = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%tuple.a1e] // CHECK:STDOUT: %tuple.elem0: %i32 = tuple_access %impl.elem0.loc7_18.1, element0 [concrete = constants.%int_1] -// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc7_18.1: = bound_method %tuple.elem0, %impl.elem0.loc7_18.2 [concrete = constants.%Int.as.Copy.impl.Op.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc7_18.2, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc7_18.2: = bound_method %tuple.elem0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc7_18.2(%tuple.elem0) [concrete = constants.%int_1] -// CHECK:STDOUT: %.loc7_18.2: init %tuple.type.cb3 = tuple_init (%Int.as.Copy.impl.Op.call) [concrete = constants.%tuple.152] -// CHECK:STDOUT: %.loc7_24: init %tuple.type.cb3 = converted %impl.elem0.loc7_18.1, %.loc7_18.2 [concrete = constants.%tuple.152] +// CHECK:STDOUT: %.loc7_18.2: init %tuple.type.a8a = tuple_init (%Int.as.Copy.impl.Op.call) [concrete = constants.%tuple.a1e] +// CHECK:STDOUT: %.loc7_24: init %tuple.type.a8a = converted %impl.elem0.loc7_18.1, %.loc7_18.2 [concrete = constants.%tuple.a1e] // CHECK:STDOUT: return %.loc7_24 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/tuple/in_place_tuple_init.carbon b/toolchain/check/testdata/tuple/in_place_tuple_init.carbon index 9fb5dfc29ed6..e3a84802e977 100644 --- a/toolchain/check/testdata/tuple/in_place_tuple_init.carbon +++ b/toolchain/check/testdata/tuple/in_place_tuple_init.carbon @@ -54,61 +54,61 @@ fn H() { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.79d: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.e5a: type = tuple_type (%i32, %i32) [concrete] -// CHECK:STDOUT: %pattern_type.7d6: type = pattern_type %tuple.type.e5a [concrete] +// CHECK:STDOUT: %tuple.b59: %tuple.type.24b = tuple_value (%i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete] +// CHECK:STDOUT: %pattern_type.394: type = pattern_type %tuple.type.e55 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.3: type = fn_type @Destroy.Op.loc7_3.3 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.3: %Destroy.Op.type.790b3b.3 = struct_value () [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: %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.2f2: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.a64: %Int.as.Copy.impl.Op.type.2f2 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.1a4: = impl_witness imports.%Copy.impl_witness_table.0ac, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.422: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.ce7: %Int.as.Copy.impl.Op.type.422 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.1a4) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.7e2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.604: type = fn_type_with_self_type %Copy.WithSelf.Op.type.7e2, %Copy.facet [concrete] -// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.ce7, @Int.as.Copy.impl.Op(%int_32) [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.0e0: = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] +// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.55f: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.2f2) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.a64)] -// CHECK:STDOUT: %Copy.impl_witness_table.0ac = impl_witness_table (%Core.import_ref.55f), @Int.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)] +// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G() -> out %return.param: %tuple.type.e5a { +// CHECK:STDOUT: fn @G() -> out %return.param: %tuple.type.e55 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.7d6 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.7d6 = var_pattern %v.patt [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: } -// CHECK:STDOUT: %v.var: ref %tuple.type.e5a = var %v.var_patt +// CHECK:STDOUT: %v.var: ref %tuple.type.e55 = var %v.var_patt // CHECK:STDOUT: %F.ref.loc7: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %.loc7_3: ref %tuple.type.e5a = splice_block %v.var {} -// CHECK:STDOUT: %F.call.loc7: init %tuple.type.e5a to %.loc7_3 = call %F.ref.loc7() +// CHECK:STDOUT: %.loc7_3: ref %tuple.type.e55 = splice_block %v.var {} +// CHECK:STDOUT: %F.call.loc7: init %tuple.type.e55 to %.loc7_3 = call %F.ref.loc7() // CHECK:STDOUT: assign %v.var, %F.call.loc7 -// CHECK:STDOUT: %.loc7_19.1: type = splice_block %.loc7_19.3 [concrete = constants.%tuple.type.e5a] { +// CHECK:STDOUT: %.loc7_19.1: type = splice_block %.loc7_19.3 [concrete = constants.%tuple.type.e55] { // CHECK:STDOUT: %i32.loc7_11: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc7_16: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc7_19.2: %tuple.type.24b = tuple_literal (%i32.loc7_11, %i32.loc7_16) [concrete = constants.%tuple.79d] -// CHECK:STDOUT: %.loc7_19.3: type = converted %.loc7_19.2, constants.%tuple.type.e5a [concrete = constants.%tuple.type.e5a] +// CHECK:STDOUT: %.loc7_19.2: %tuple.type.24b = tuple_literal (%i32.loc7_11, %i32.loc7_16) [concrete = constants.%tuple.b59] +// CHECK:STDOUT: %.loc7_19.3: type = converted %.loc7_19.2, constants.%tuple.type.e55 [concrete = constants.%tuple.type.e55] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref %tuple.type.e5a = ref_binding v, %v.var -// CHECK:STDOUT: %v.ref: ref %tuple.type.e5a = name_ref v, %v +// CHECK:STDOUT: %v: ref %tuple.type.e55 = ref_binding v, %v.var +// CHECK:STDOUT: %v.ref: ref %tuple.type.e55 = name_ref v, %v // CHECK:STDOUT: %F.ref.loc8: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %.loc8: ref %tuple.type.e5a = splice_block %v.ref {} -// CHECK:STDOUT: %F.call.loc8: init %tuple.type.e5a to %.loc8 = call %F.ref.loc8() +// CHECK:STDOUT: %.loc8: ref %tuple.type.e55 = splice_block %v.ref {} +// CHECK:STDOUT: %F.call.loc8: init %tuple.type.e55 to %.loc8 = call %F.ref.loc8() // CHECK:STDOUT: assign %v.ref, %F.call.loc8 // 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.e5a to %.loc5_20.1 = call %F.ref.loc9() -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.2dd605.3 +// 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: return %F.call.loc9 to %return.param // CHECK:STDOUT: } @@ -120,7 +120,7 @@ fn H() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.3(%self.param: ref %tuple.type.e5a) { +// CHECK:STDOUT: fn @Destroy.Op.loc7_3.3(%self.param: ref %tuple.type.e55) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -128,18 +128,18 @@ fn H() { // CHECK:STDOUT: fn @H() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] -// CHECK:STDOUT: %.loc15_12.1: ref %tuple.type.e5a = temporary_storage -// CHECK:STDOUT: %G.call: init %tuple.type.e5a to %.loc15_12.1 = call %G.ref() +// CHECK:STDOUT: %.loc15_12.1: ref %tuple.type.e55 = temporary_storage +// CHECK:STDOUT: %G.call: init %tuple.type.e55 to %.loc15_12.1 = call %G.ref() // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %.loc15_12.2: ref %tuple.type.e5a = temporary %.loc15_12.1, %G.call +// CHECK:STDOUT: %.loc15_12.2: ref %tuple.type.e55 = temporary %.loc15_12.1, %G.call // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %.loc15_12.2, element0 // CHECK:STDOUT: %.loc15_13: %i32 = acquire_value %tuple.elem0 -// CHECK:STDOUT: %impl.elem0: %.604 = impl_witness_access constants.%Copy.impl_witness.1a4, element0 [concrete = constants.%Int.as.Copy.impl.Op.ce7] +// CHECK:STDOUT: %impl.elem0: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6] // CHECK:STDOUT: %bound_method.loc15_13.1: = bound_method %.loc15_13, %impl.elem0 // 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.2dd605.3 +// 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: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } @@ -151,83 +151,83 @@ fn H() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.ff9: type = tuple_type (type, type, type) [concrete] -// CHECK:STDOUT: %tuple.27c: %tuple.type.ff9 = tuple_value (%i32, %i32, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.05f: type = tuple_type (%i32, %i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.04d: %tuple.type.ff9 = tuple_value (%i32, %i32, %i32) [concrete] +// CHECK:STDOUT: %tuple.type.555: type = tuple_type (%i32, %i32, %i32) [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %tuple.type.f9f: type = tuple_type (%tuple.type.ff9, %tuple.type.ff9) [concrete] -// CHECK:STDOUT: %tuple.d3b: %tuple.type.f9f = tuple_value (%tuple.27c, %tuple.27c) [concrete] -// CHECK:STDOUT: %tuple.type.657: type = tuple_type (%tuple.type.05f, %tuple.type.05f) [concrete] +// CHECK:STDOUT: %tuple.6a5: %tuple.type.f9f = tuple_value (%tuple.04d, %tuple.04d) [concrete] +// CHECK:STDOUT: %tuple.type.015: type = tuple_type (%tuple.type.555, %tuple.type.555) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.f75: type = pattern_type %tuple.type.657 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.4: type = fn_type @Destroy.Op.loc7_3.4 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.4: %Destroy.Op.type.790b3b.4 = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.e12: type = pattern_type %tuple.type.015 [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: %tuple.type.3a3: type = tuple_type (type, %tuple.type.ff9, type) [concrete] -// CHECK:STDOUT: %tuple.1c0: %tuple.type.3a3 = tuple_value (%i32, %tuple.27c, %i32) [concrete] -// CHECK:STDOUT: %tuple.type.8e6: type = tuple_type (%i32, %tuple.type.05f, %i32) [concrete] -// CHECK:STDOUT: %pattern_type.f5e: type = pattern_type %tuple.type.8e6 [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] +// CHECK:STDOUT: %pattern_type.f8e: type = pattern_type %tuple.type.b7e [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] -// CHECK:STDOUT: %tuple.type.274: type = tuple_type (Core.IntLiteral, %tuple.type.05f, Core.IntLiteral) [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %tuple.type.c47: type = tuple_type (Core.IntLiteral, %tuple.type.555, Core.IntLiteral) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %bound_method.e5b: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_1.d9c: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %bound_method.7d5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %int_2.228: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.5: type = fn_type @Destroy.Op.loc13 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.5: %Destroy.Op.type.790b3b.5 = struct_value () [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [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: %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.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: %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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.f75 = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.f75 = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.e12 = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.e12 = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref %tuple.type.657 = var %v.var_patt +// CHECK:STDOUT: %v.var: ref %tuple.type.015 = var %v.var_patt // CHECK:STDOUT: %F.ref.loc7_55: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %tuple.elem0: ref %tuple.type.05f = tuple_access %v.var, element0 -// CHECK:STDOUT: %F.call.loc7_57: init %tuple.type.05f to %tuple.elem0 = call %F.ref.loc7_55() +// CHECK:STDOUT: %tuple.elem0: ref %tuple.type.555 = tuple_access %v.var, element0 +// CHECK:STDOUT: %F.call.loc7_57: init %tuple.type.555 to %tuple.elem0 = call %F.ref.loc7_55() // CHECK:STDOUT: %F.ref.loc7_60: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %tuple.elem1: ref %tuple.type.05f = tuple_access %v.var, element1 -// CHECK:STDOUT: %F.call.loc7_62: init %tuple.type.05f to %tuple.elem1 = call %F.ref.loc7_60() -// CHECK:STDOUT: %.loc7_63.1: %tuple.type.657 = tuple_literal (%F.call.loc7_57, %F.call.loc7_62) -// CHECK:STDOUT: %.loc7_63.2: init %tuple.type.657 to %v.var = tuple_init (%F.call.loc7_57, %F.call.loc7_62) -// CHECK:STDOUT: %.loc7_3: init %tuple.type.657 = converted %.loc7_63.1, %.loc7_63.2 +// CHECK:STDOUT: %tuple.elem1: ref %tuple.type.555 = tuple_access %v.var, element1 +// CHECK:STDOUT: %F.call.loc7_62: init %tuple.type.555 to %tuple.elem1 = call %F.ref.loc7_60() +// CHECK:STDOUT: %.loc7_63.1: %tuple.type.015 = tuple_literal (%F.call.loc7_57, %F.call.loc7_62) +// CHECK:STDOUT: %.loc7_63.2: init %tuple.type.015 to %v.var = tuple_init (%F.call.loc7_57, %F.call.loc7_62) +// CHECK:STDOUT: %.loc7_3: init %tuple.type.015 = converted %.loc7_63.1, %.loc7_63.2 // CHECK:STDOUT: assign %v.var, %.loc7_3 -// CHECK:STDOUT: %.loc7_50.1: type = splice_block %.loc7_50.5 [concrete = constants.%tuple.type.657] { +// CHECK:STDOUT: %.loc7_50.1: type = splice_block %.loc7_50.5 [concrete = constants.%tuple.type.015] { // CHECK:STDOUT: %i32.loc7_19: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc7_24: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc7_29: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc7_32: %tuple.type.ff9 = tuple_literal (%i32.loc7_19, %i32.loc7_24, %i32.loc7_29) [concrete = constants.%tuple.27c] +// CHECK:STDOUT: %.loc7_32: %tuple.type.ff9 = tuple_literal (%i32.loc7_19, %i32.loc7_24, %i32.loc7_29) [concrete = constants.%tuple.04d] // CHECK:STDOUT: %i32.loc7_36: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc7_41: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc7_46: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc7_49: %tuple.type.ff9 = tuple_literal (%i32.loc7_36, %i32.loc7_41, %i32.loc7_46) [concrete = constants.%tuple.27c] -// CHECK:STDOUT: %.loc7_50.2: %tuple.type.f9f = tuple_literal (%.loc7_32, %.loc7_49) [concrete = constants.%tuple.d3b] -// CHECK:STDOUT: %.loc7_50.3: type = converted constants.%tuple.27c, constants.%tuple.type.05f [concrete = constants.%tuple.type.05f] -// CHECK:STDOUT: %.loc7_50.4: type = converted constants.%tuple.27c, constants.%tuple.type.05f [concrete = constants.%tuple.type.05f] -// CHECK:STDOUT: %.loc7_50.5: type = converted %.loc7_50.2, constants.%tuple.type.657 [concrete = constants.%tuple.type.657] +// CHECK:STDOUT: %.loc7_49: %tuple.type.ff9 = tuple_literal (%i32.loc7_36, %i32.loc7_41, %i32.loc7_46) [concrete = constants.%tuple.04d] +// CHECK:STDOUT: %.loc7_50.2: %tuple.type.f9f = tuple_literal (%.loc7_32, %.loc7_49) [concrete = constants.%tuple.6a5] +// CHECK:STDOUT: %.loc7_50.3: type = converted constants.%tuple.04d, constants.%tuple.type.555 [concrete = constants.%tuple.type.555] +// CHECK:STDOUT: %.loc7_50.4: type = converted constants.%tuple.04d, constants.%tuple.type.555 [concrete = constants.%tuple.type.555] +// CHECK:STDOUT: %.loc7_50.5: type = converted %.loc7_50.2, constants.%tuple.type.015 [concrete = constants.%tuple.type.015] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref %tuple.type.657 = ref_binding v, %v.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.2dd605.4 +// CHECK:STDOUT: %v: ref %tuple.type.015 = ref_binding v, %v.var +// 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: // CHECK:STDOUT: } @@ -239,12 +239,12 @@ fn H() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc7_3.3(%self.param: ref %tuple.type.05f) { +// CHECK:STDOUT: fn @Destroy.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.657) { +// CHECK:STDOUT: fn @Destroy.Op.loc7_3.4(%self.param: ref %tuple.type.015) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -252,53 +252,53 @@ fn H() { // CHECK:STDOUT: fn @H() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.f5e = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.f5e = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.f8e = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.f8e = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref %tuple.type.8e6 = var %v.var_patt +// CHECK:STDOUT: %v.var: ref %tuple.type.b7e = var %v.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %tuple.elem1: ref %tuple.type.05f = tuple_access %v.var, element1 -// CHECK:STDOUT: %F.call: init %tuple.type.05f to %tuple.elem1 = call %F.ref() +// CHECK:STDOUT: %tuple.elem1: ref %tuple.type.555 = tuple_access %v.var, element1 +// CHECK:STDOUT: %F.call: init %tuple.type.555 to %tuple.elem1 = call %F.ref() // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %.loc13_57.1: %tuple.type.274 = tuple_literal (%int_1, %F.call, %int_2) -// CHECK:STDOUT: %impl.elem0.loc13_57.1: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc13_57.1: = bound_method %int_1, %impl.elem0.loc13_57.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.c1a] +// CHECK:STDOUT: %.loc13_57.1: %tuple.type.c47 = tuple_literal (%int_1, %F.call, %int_2) +// CHECK:STDOUT: %impl.elem0.loc13_57.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc13_57.1: = bound_method %int_1, %impl.elem0.loc13_57.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094] // CHECK:STDOUT: %specific_fn.loc13_57.1: = specific_function %impl.elem0.loc13_57.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc13_57.2: = bound_method %int_1, %specific_fn.loc13_57.1 [concrete = constants.%bound_method.e5b] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_57.1: init %i32 = call %bound_method.loc13_57.2(%int_1) [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %.loc13_57.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_57.1 [concrete = constants.%int_1.d9c] +// CHECK:STDOUT: %bound_method.loc13_57.2: = bound_method %int_1, %specific_fn.loc13_57.1 [concrete = constants.%bound_method.953] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_57.1: init %i32 = call %bound_method.loc13_57.2(%int_1) [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %.loc13_57.2: init %i32 = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_57.1 [concrete = constants.%int_1.0c6] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %v.var, element0 -// CHECK:STDOUT: %.loc13_57.3: init %i32 to %tuple.elem0 = in_place_init %.loc13_57.2 [concrete = constants.%int_1.d9c] -// CHECK:STDOUT: %impl.elem0.loc13_57.2: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] -// CHECK:STDOUT: %bound_method.loc13_57.3: = bound_method %int_2, %impl.elem0.loc13_57.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.bf7] +// CHECK:STDOUT: %.loc13_57.3: init %i32 to %tuple.elem0 = in_place_init %.loc13_57.2 [concrete = constants.%int_1.0c6] +// CHECK:STDOUT: %impl.elem0.loc13_57.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] +// CHECK:STDOUT: %bound_method.loc13_57.3: = bound_method %int_2, %impl.elem0.loc13_57.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3] // CHECK:STDOUT: %specific_fn.loc13_57.2: = specific_function %impl.elem0.loc13_57.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc13_57.4: = bound_method %int_2, %specific_fn.loc13_57.2 [concrete = constants.%bound_method.7d5] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_57.2: init %i32 = call %bound_method.loc13_57.4(%int_2) [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc13_57.4: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_57.2 [concrete = constants.%int_2.228] +// CHECK:STDOUT: %bound_method.loc13_57.4: = bound_method %int_2, %specific_fn.loc13_57.2 [concrete = constants.%bound_method.3cb] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_57.2: init %i32 = call %bound_method.loc13_57.4(%int_2) [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc13_57.4: init %i32 = converted %int_2, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13_57.2 [concrete = constants.%int_2.295] // CHECK:STDOUT: %tuple.elem2: ref %i32 = tuple_access %v.var, element2 -// CHECK:STDOUT: %.loc13_57.5: init %i32 to %tuple.elem2 = in_place_init %.loc13_57.4 [concrete = constants.%int_2.228] -// CHECK:STDOUT: %.loc13_57.6: init %tuple.type.8e6 to %v.var = tuple_init (%.loc13_57.3, %F.call, %.loc13_57.5) -// CHECK:STDOUT: %.loc13_3: init %tuple.type.8e6 = converted %.loc13_57.1, %.loc13_57.6 +// CHECK:STDOUT: %.loc13_57.5: init %i32 to %tuple.elem2 = in_place_init %.loc13_57.4 [concrete = constants.%int_2.295] +// CHECK:STDOUT: %.loc13_57.6: init %tuple.type.b7e to %v.var = tuple_init (%.loc13_57.3, %F.call, %.loc13_57.5) +// CHECK:STDOUT: %.loc13_3: init %tuple.type.b7e = converted %.loc13_57.1, %.loc13_57.6 // CHECK:STDOUT: assign %v.var, %.loc13_3 -// CHECK:STDOUT: %.loc13_43.1: type = splice_block %.loc13_43.4 [concrete = constants.%tuple.type.8e6] { +// CHECK:STDOUT: %.loc13_43.1: type = splice_block %.loc13_43.4 [concrete = constants.%tuple.type.b7e] { // CHECK:STDOUT: %i32.loc13_18: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc13_24: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc13_29: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %i32.loc13_34: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc13_37: %tuple.type.ff9 = tuple_literal (%i32.loc13_24, %i32.loc13_29, %i32.loc13_34) [concrete = constants.%tuple.27c] +// CHECK:STDOUT: %.loc13_37: %tuple.type.ff9 = tuple_literal (%i32.loc13_24, %i32.loc13_29, %i32.loc13_34) [concrete = constants.%tuple.04d] // CHECK:STDOUT: %i32.loc13_40: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.loc13_43.2: %tuple.type.3a3 = tuple_literal (%i32.loc13_18, %.loc13_37, %i32.loc13_40) [concrete = constants.%tuple.1c0] -// CHECK:STDOUT: %.loc13_43.3: type = converted constants.%tuple.27c, constants.%tuple.type.05f [concrete = constants.%tuple.type.05f] -// CHECK:STDOUT: %.loc13_43.4: type = converted %.loc13_43.2, constants.%tuple.type.8e6 [concrete = constants.%tuple.type.8e6] +// CHECK:STDOUT: %.loc13_43.2: %tuple.type.3a3 = tuple_literal (%i32.loc13_18, %.loc13_37, %i32.loc13_40) [concrete = constants.%tuple.82e] +// CHECK:STDOUT: %.loc13_43.3: type = converted constants.%tuple.04d, constants.%tuple.type.555 [concrete = constants.%tuple.type.555] +// CHECK:STDOUT: %.loc13_43.4: type = converted %.loc13_43.2, constants.%tuple.type.b7e [concrete = constants.%tuple.type.b7e] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref %tuple.type.8e6 = ref_binding v, %v.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %v.var, constants.%Destroy.Op.2dd605.5 +// CHECK:STDOUT: %v: ref %tuple.type.b7e = ref_binding v, %v.var +// 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: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13(%self.param: ref %tuple.type.8e6) { +// CHECK:STDOUT: fn @Destroy.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 7da5dcb0b75f..a8b04041d15d 100644 --- a/toolchain/check/testdata/tuple/tuple_pattern.carbon +++ b/toolchain/check/testdata/tuple/tuple_pattern.carbon @@ -105,8 +105,8 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %pattern_type.de4: type = pattern_type %tuple.type.b6b [concrete] // CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%v.param: %tuple.type.b6b) { @@ -199,9 +199,9 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %.loc8_33.3: type = converted %.loc8_33.2, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: } // CHECK:STDOUT: %d: ref %empty_struct_type = ref_binding d, %tuple.elem1.loc8_3 -// CHECK:STDOUT: %Destroy.Op.bound.loc8: = bound_method %.var.loc8, constants.%Destroy.Op.2dd605.2 +// 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.2dd605.2 +// 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: // CHECK:STDOUT: } @@ -223,8 +223,8 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %tuple: %tuple.type.b6b = tuple_value (%empty_struct, %empty_struct) [concrete] // CHECK:STDOUT: %pattern_type.de4: type = pattern_type %tuple.type.b6b [concrete] // CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc7_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: %MakeTuple.type: type = fn_type @MakeTuple [concrete] // CHECK:STDOUT: %MakeTuple: %MakeTuple.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -292,9 +292,9 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %.loc7_33.3: type = converted %.loc7_33.2, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: } // CHECK:STDOUT: %y: ref %empty_struct_type = ref_binding y, %tuple.elem1.loc7_3 -// CHECK:STDOUT: %Destroy.Op.bound.loc7: = bound_method %.var, constants.%Destroy.Op.2dd605.2 +// 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.2dd605.2 +// 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: // CHECK:STDOUT: } @@ -362,7 +362,7 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %.loc14_33.3: type = converted %.loc14_33.2, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: } // CHECK:STDOUT: %y: ref %empty_struct_type = ref_binding y, %tuple.elem1.loc14_3 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.var, constants.%Destroy.Op.2dd605.2 +// 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: // CHECK:STDOUT: } @@ -392,7 +392,7 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %.loc22_33.3: type = converted %.loc22_33.2, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: } // CHECK:STDOUT: %y: ref %empty_struct_type = ref_binding y, %tuple.elem1 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.var, constants.%Destroy.Op.2dd605.2 +// 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: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/var/export_name.carbon b/toolchain/check/testdata/var/export_name.carbon index 62d428901ad9..4d15ea979de7 100644 --- a/toolchain/check/testdata/var/export_name.carbon +++ b/toolchain/check/testdata/var/export_name.carbon @@ -50,13 +50,13 @@ var w: () = v; // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.bbe: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.8f6: %T.as.DefaultOrUnformed.impl.Op.type.bbe = struct_value () [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.bfb: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.597, @T.as.DefaultOrUnformed.impl(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.7d9: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.91c: %T.as.DefaultOrUnformed.impl.Op.type.7d9 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %empty_tuple.type, (%DefaultOrUnformed.impl_witness.bfb) [concrete] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.91c, @T.as.DefaultOrUnformed.impl.Op(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.150: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%T.67d) [symbolic] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.53a: %T.as.DefaultOrUnformed.impl.Op.type.150 = struct_value () [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.de8: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.374, @T.as.DefaultOrUnformed.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.type.e3f: type = fn_type @T.as.DefaultOrUnformed.impl.Op, @T.as.DefaultOrUnformed.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.70a: %T.as.DefaultOrUnformed.impl.Op.type.e3f = struct_value () [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %empty_tuple.type, (%DefaultOrUnformed.impl_witness.de8) [concrete] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function %T.as.DefaultOrUnformed.impl.Op.70a, @T.as.DefaultOrUnformed.impl.Op(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -66,8 +66,8 @@ var w: () = v; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.DefaultOrUnformed: type = import_ref Core//prelude/parts/default, DefaultOrUnformed, loaded [concrete = constants.%DefaultOrUnformed.type] -// CHECK:STDOUT: %Core.import_ref.1d0: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.bbe) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.8f6)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.597 = impl_witness_table (%Core.import_ref.1d0), @T.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.cc8: @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op.type (%T.as.DefaultOrUnformed.impl.Op.type.150) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as.DefaultOrUnformed.impl.%T.as.DefaultOrUnformed.impl.Op (constants.%T.as.DefaultOrUnformed.impl.Op.53a)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.374 = impl_witness_table (%Core.import_ref.cc8), @T.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -90,11 +90,11 @@ var w: () = v; // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%empty_tuple.type, (constants.%DefaultOrUnformed.impl_witness.bfb) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%empty_tuple.type, (constants.%DefaultOrUnformed.impl_witness.de8) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc4_10.1: %DefaultOrUnformed.type = converted constants.%empty_tuple.type, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc4_10.1 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc4_10.2: type = converted %.loc4_10.1, %as_type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.91c, @T.as.DefaultOrUnformed.impl.Op(constants.%empty_tuple.type) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] +// CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.specific_fn: = specific_function constants.%T.as.DefaultOrUnformed.impl.Op.70a, @T.as.DefaultOrUnformed.impl.Op(constants.%empty_tuple.type) [concrete = constants.%T.as.DefaultOrUnformed.impl.Op.specific_fn] // CHECK:STDOUT: %T.as.DefaultOrUnformed.impl.Op.call: init %empty_tuple.type = call %T.as.DefaultOrUnformed.impl.Op.specific_fn() // CHECK:STDOUT: assign file.%v.var, %T.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/var/fail_init_type_mismatch.carbon b/toolchain/check/testdata/var/fail_init_type_mismatch.carbon index 6f81c05966aa..7aeaded5e7b7 100644 --- a/toolchain/check/testdata/var/fail_init_type_mismatch.carbon +++ b/toolchain/check/testdata/var/fail_init_type_mismatch.carbon @@ -29,8 +29,8 @@ var x: {} = (); // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete] +// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -39,7 +39,7 @@ var x: {} = (); // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/var/fail_storage_is_literal.carbon b/toolchain/check/testdata/var/fail_storage_is_literal.carbon index 670647c522c3..c69dc74103a3 100644 --- a/toolchain/check/testdata/var/fail_storage_is_literal.carbon +++ b/toolchain/check/testdata/var/fail_storage_is_literal.carbon @@ -29,8 +29,8 @@ fn Main() { // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.754: type = generic_interface_type @ImplicitAs [concrete] -// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.754 = struct_value () [concrete] +// 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: } // CHECK:STDOUT: @@ -41,7 +41,7 @@ fn Main() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.754 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/global_decl.carbon b/toolchain/check/testdata/var/global_decl.carbon index 0b1695fca97d..75ab7b52534b 100644 --- a/toolchain/check/testdata/var/global_decl.carbon +++ b/toolchain/check/testdata/var/global_decl.carbon @@ -22,7 +22,7 @@ var x: {.v: ()} = {.v = ()}; // CHECK:STDOUT: %struct_type.v: type = struct_type {.v: %empty_tuple.type} [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.v [concrete] // CHECK:STDOUT: %struct: %struct_type.v = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.327: ref %empty_tuple.type = struct_access file.%x.var, element0 [concrete] +// CHECK:STDOUT: %.267: ref %empty_tuple.type = struct_access file.%x.var, element0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -43,7 +43,7 @@ var x: {.v: ()} = {.v = ()}; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc14_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc14_27.1: %struct_type.v = struct_literal (%.loc14_26.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc14_27.2: ref %empty_tuple.type = struct_access file.%x.var, element0 [concrete = constants.%.327] +// CHECK:STDOUT: %.loc14_27.2: ref %empty_tuple.type = struct_access file.%x.var, element0 [concrete = constants.%.267] // CHECK:STDOUT: %.loc14_26.2: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc14_27.3: init %empty_tuple.type = converted %.loc14_26.1, %.loc14_26.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc14_27.4: init %struct_type.v to file.%x.var = struct_init (%.loc14_27.3) [concrete = constants.%struct] diff --git a/toolchain/check/testdata/var/global_decl_import.carbon b/toolchain/check/testdata/var/global_decl_import.carbon index 2ed5764997f2..f9d3ff084fb4 100644 --- a/toolchain/check/testdata/var/global_decl_import.carbon +++ b/toolchain/check/testdata/var/global_decl_import.carbon @@ -35,7 +35,7 @@ fn G() -> {.v: ()} { // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %struct_type.v: type = struct_type {.v: %empty_tuple.type} [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.v [concrete] -// CHECK:STDOUT: %.327: ref %empty_tuple.type = struct_access imports.%x.var, element0 [concrete] +// CHECK:STDOUT: %.267: ref %empty_tuple.type = struct_access imports.%x.var, element0 [concrete] // CHECK:STDOUT: %struct: %struct_type.v = struct_value (%empty_tuple) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -49,7 +49,7 @@ fn G() -> {.v: ()} { // CHECK:STDOUT: fn @G() -> out %return.param: %struct_type.v { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref: ref %struct_type.v = name_ref x, imports.%Main.x [concrete = imports.%x.var] -// CHECK:STDOUT: %.loc8_10.1: ref %empty_tuple.type = struct_access %x.ref, element0 [concrete = constants.%.327] +// CHECK:STDOUT: %.loc8_10.1: ref %empty_tuple.type = struct_access %x.ref, element0 [concrete = constants.%.267] // CHECK:STDOUT: %.loc8_10.2: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_10.3: init %empty_tuple.type = converted %.loc8_10.1, %.loc8_10.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_10.4: init %struct_type.v = struct_init (%.loc8_10.3) [concrete = constants.%struct] diff --git a/toolchain/check/testdata/var/global_decl_with_init.carbon b/toolchain/check/testdata/var/global_decl_with_init.carbon index 4ae3ac4d806a..dc1ff9657163 100644 --- a/toolchain/check/testdata/var/global_decl_with_init.carbon +++ b/toolchain/check/testdata/var/global_decl_with_init.carbon @@ -38,7 +38,7 @@ var (x: (), y: ()) = ((), ()); // CHECK:STDOUT: %struct_type.v: type = struct_type {.v: %empty_tuple.type} [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.v [concrete] // CHECK:STDOUT: %struct: %struct_type.v = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.327: ref %empty_tuple.type = struct_access file.%x.var, element0 [concrete] +// CHECK:STDOUT: %.267: ref %empty_tuple.type = struct_access file.%x.var, element0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -62,7 +62,7 @@ var (x: (), y: ()) = ((), ()); // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc4_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_27.1: %struct_type.v = struct_literal (%.loc4_26.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc4_27.2: ref %empty_tuple.type = struct_access file.%x.var, element0 [concrete = constants.%.327] +// CHECK:STDOUT: %.loc4_27.2: ref %empty_tuple.type = struct_access file.%x.var, element0 [concrete = constants.%.267] // CHECK:STDOUT: %.loc4_26.2: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_27.3: init %empty_tuple.type = converted %.loc4_26.1, %.loc4_26.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc4_27.4: init %struct_type.v to file.%x.var = struct_init (%.loc4_27.3) [concrete = constants.%struct] diff --git a/toolchain/check/testdata/var/global_lookup.carbon b/toolchain/check/testdata/var/global_lookup.carbon index 0047cedfbf7b..11d5c16a3ca4 100644 --- a/toolchain/check/testdata/var/global_lookup.carbon +++ b/toolchain/check/testdata/var/global_lookup.carbon @@ -23,8 +23,8 @@ var y: {.v: ()} = x; // CHECK:STDOUT: %struct_type.v: type = struct_type {.v: %empty_tuple.type} [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.v [concrete] // CHECK:STDOUT: %struct: %struct_type.v = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.327: ref %empty_tuple.type = struct_access file.%x.var, element0 [concrete] -// CHECK:STDOUT: %.5c8: ref %empty_tuple.type = struct_access file.%y.var, element0 [concrete] +// CHECK:STDOUT: %.267: ref %empty_tuple.type = struct_access file.%x.var, element0 [concrete] +// CHECK:STDOUT: %.268: ref %empty_tuple.type = struct_access file.%y.var, element0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -60,15 +60,15 @@ var y: {.v: ()} = x; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc15_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc15_27.1: %struct_type.v = struct_literal (%.loc15_26.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc15_27.2: ref %empty_tuple.type = struct_access file.%x.var, element0 [concrete = constants.%.327] +// CHECK:STDOUT: %.loc15_27.2: ref %empty_tuple.type = struct_access file.%x.var, element0 [concrete = constants.%.267] // CHECK:STDOUT: %.loc15_26.2: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc15_27.3: init %empty_tuple.type = converted %.loc15_26.1, %.loc15_26.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc15_27.4: init %struct_type.v to file.%x.var = struct_init (%.loc15_27.3) [concrete = constants.%struct] // CHECK:STDOUT: %.loc15_1: init %struct_type.v = converted %.loc15_27.1, %.loc15_27.4 [concrete = constants.%struct] // CHECK:STDOUT: assign file.%x.var, %.loc15_1 // CHECK:STDOUT: %x.ref: ref %struct_type.v = name_ref x, file.%x [concrete = file.%x.var] -// CHECK:STDOUT: %.loc16_19.1: ref %empty_tuple.type = struct_access %x.ref, element0 [concrete = constants.%.327] -// CHECK:STDOUT: %.loc16_19.2: ref %empty_tuple.type = struct_access file.%y.var, element0 [concrete = constants.%.5c8] +// CHECK:STDOUT: %.loc16_19.1: ref %empty_tuple.type = struct_access %x.ref, element0 [concrete = constants.%.267] +// CHECK:STDOUT: %.loc16_19.2: ref %empty_tuple.type = struct_access file.%y.var, element0 [concrete = constants.%.268] // CHECK:STDOUT: %.loc16_19.3: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc16_19.4: init %empty_tuple.type = converted %.loc16_19.1, %.loc16_19.3 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc16_19.5: init %struct_type.v to file.%y.var = struct_init (%.loc16_19.4) [concrete = constants.%struct] diff --git a/toolchain/check/testdata/var/global_lookup_in_scope.carbon b/toolchain/check/testdata/var/global_lookup_in_scope.carbon index 1f2007034355..1ccc46716b96 100644 --- a/toolchain/check/testdata/var/global_lookup_in_scope.carbon +++ b/toolchain/check/testdata/var/global_lookup_in_scope.carbon @@ -28,12 +28,12 @@ fn Main() { // CHECK:STDOUT: %struct_type.v: type = struct_type {.v: %empty_tuple.type} [concrete] // CHECK:STDOUT: %pattern_type.c4c: type = pattern_type %struct_type.v [concrete] // CHECK:STDOUT: %struct: %struct_type.v = struct_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %.327: ref %empty_tuple.type = struct_access file.%x.var, element0 [concrete] +// CHECK:STDOUT: %.267: ref %empty_tuple.type = struct_access file.%x.var, element0 [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc5_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -74,7 +74,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %y.var: ref %struct_type.v = var %y.var_patt // CHECK:STDOUT: %x.ref: ref %struct_type.v = name_ref x, file.%x [concrete = file.%x.var] -// CHECK:STDOUT: %.loc5_28.1: ref %empty_tuple.type = struct_access %x.ref, element0 [concrete = constants.%.327] +// CHECK:STDOUT: %.loc5_28.1: ref %empty_tuple.type = struct_access %x.ref, element0 [concrete = constants.%.267] // CHECK:STDOUT: %.loc5_28.2: ref %empty_tuple.type = struct_access %y.var, element0 // CHECK:STDOUT: %.loc5_28.3: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc5_28.4: init %empty_tuple.type = converted %.loc5_28.1, %.loc5_28.3 [concrete = constants.%empty_tuple] @@ -87,7 +87,7 @@ fn Main() { // CHECK:STDOUT: %struct_type.v: type = struct_type {.v: %empty_tuple.type} [concrete = constants.%struct_type.v] // CHECK:STDOUT: } // CHECK:STDOUT: %y: ref %struct_type.v = ref_binding y, %y.var -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %y.var, constants.%Destroy.Op.2dd605.2 +// 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: return // CHECK:STDOUT: } @@ -103,7 +103,7 @@ fn Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc2_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc2_27.1: %struct_type.v = struct_literal (%.loc2_26.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc2_27.2: ref %empty_tuple.type = struct_access file.%x.var, element0 [concrete = constants.%.327] +// CHECK:STDOUT: %.loc2_27.2: ref %empty_tuple.type = struct_access file.%x.var, element0 [concrete = constants.%.267] // CHECK:STDOUT: %.loc2_26.2: init %empty_tuple.type = tuple_init () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc2_27.3: init %empty_tuple.type = converted %.loc2_26.1, %.loc2_26.2 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc2_27.4: init %struct_type.v to file.%x.var = struct_init (%.loc2_27.3) [concrete = constants.%struct] diff --git a/toolchain/check/testdata/var/initialization.carbon b/toolchain/check/testdata/var/initialization.carbon index 0c938359ec9b..f7ded69bf3f7 100644 --- a/toolchain/check/testdata/var/initialization.carbon +++ b/toolchain/check/testdata/var/initialization.carbon @@ -115,8 +115,8 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.f63: %empty_tuple.type.as.DefaultOrUnformed.impl.Op.type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%empty_tuple.type.as.DefaultOrUnformed.impl.Op] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table = impl_witness_table (%Core.import_ref.f63), @empty_tuple.type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9c3: %empty_tuple.type.as.DefaultOrUnformed.impl.Op.type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%empty_tuple.type.as.DefaultOrUnformed.impl.Op] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table = impl_witness_table (%Core.import_ref.9c3), @empty_tuple.type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Main() { diff --git a/toolchain/check/testdata/var/var_pattern.carbon b/toolchain/check/testdata/var/var_pattern.carbon index 6a65eb5c24e9..25c371b99b82 100644 --- a/toolchain/check/testdata/var/var_pattern.carbon +++ b/toolchain/check/testdata/var/var_pattern.carbon @@ -311,8 +311,8 @@ fn Call() { // CHECK:STDOUT: %pattern_type.5b8: type = pattern_type %tuple.type [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.790b3b.2: type = fn_type @Destroy.Op.loc5_3.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -368,7 +368,7 @@ fn Call() { // CHECK:STDOUT: %.loc5_33.3: type = converted %.loc5_33.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: } // CHECK:STDOUT: %y: ref %empty_tuple.type = ref_binding y, %tuple.elem1.loc5_3 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.var, constants.%Destroy.Op.2dd605.2 +// 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: return // CHECK:STDOUT: } @@ -392,8 +392,8 @@ fn Call() { // CHECK:STDOUT: %pattern_type.5b8: type = pattern_type %tuple.type [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.790b3b.2: type = fn_type @Destroy.Op.loc5_7.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -449,7 +449,7 @@ fn Call() { // CHECK:STDOUT: %.loc5_37.3: type = converted %.loc5_37.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: } // CHECK:STDOUT: %y: ref %empty_tuple.type = ref_binding y, %tuple.elem1.loc5_7 -// CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.var, constants.%Destroy.Op.2dd605.2 +// 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: return // CHECK:STDOUT: } @@ -660,16 +660,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.630: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Self) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.821: %Destroy.WithSelf.Op.type.630 = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d3e: type = fn_type @Destroy.WithSelf.Op, @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.818 [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.e20: = custom_witness (%Destroy.Op), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.34b: %Destroy.type = facet_value %empty_tuple.type, (%custom_witness.e20) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.c9b: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.34b) [concrete] -// CHECK:STDOUT: %.be5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.c9b, %Destroy.facet.34b [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -686,8 +686,8 @@ fn Call() { // CHECK:STDOUT: %y.patt: %pattern_type.cb1 = ref_binding_pattern y [concrete] // CHECK:STDOUT: %y.param_patt: %pattern_type.cb1 = var_param_pattern %y.patt [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.8fe: %Destroy.assoc_type = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc0] -// CHECK:STDOUT: %Core.import_ref.818: @Destroy.WithSelf.%Destroy.WithSelf.Op.type (%Destroy.WithSelf.Op.type.630) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @Destroy.WithSelf.%Destroy.WithSelf.Op (constants.%Destroy.WithSelf.Op.821)] +// CHECK:STDOUT: %Core.import_ref.c64: %Destroy.assoc_type = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc0] +// CHECK:STDOUT: %Core.import_ref.918: @Destroy.WithSelf.%Destroy.WithSelf.Op.type (%Destroy.WithSelf.Op.type.d3e) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @Destroy.WithSelf.%Destroy.WithSelf.Op (constants.%Destroy.WithSelf.Op.42b)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -714,8 +714,8 @@ fn Call() { // CHECK:STDOUT: %.1: init %empty_tuple.type = converted %.loc7_12.1, %.loc7_12.2 [concrete = constants.%empty_tuple] // 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.8fe [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.be5 = impl_witness_access constants.%custom_witness.e20, element0 [concrete = constants.%Destroy.Op] +// 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: %bound_method: = bound_method %y.var, %impl.elem0 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %bound_method(%y.var) // CHECK:STDOUT: return @@ -740,10 +740,10 @@ fn Call() { // CHECK:STDOUT: %tuple.d8f: %tuple.type.bcd = tuple_value (%empty_tuple, %empty_tuple) [concrete] // CHECK:STDOUT: %tuple.c9e: %tuple.type.a21 = tuple_value (%empty_tuple, %tuple.d8f) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.1: type = fn_type @Destroy.Op.loc9_22.1 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.1: %Destroy.Op.type.790b3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc9_22.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.Op.type.1d8f74.1: type = fn_type @Destroy.Op.loc9_22.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.loc9_22.2 [concrete] +// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -815,9 +815,9 @@ fn Call() { // CHECK:STDOUT: %.loc9_56.3: type = converted %.loc9_56.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: } // CHECK:STDOUT: %z: ref %empty_tuple.type = ref_binding z, %z.var -// CHECK:STDOUT: %Destroy.Op.bound.loc9_22: = bound_method %.var, constants.%Destroy.Op.2dd605.2 +// CHECK:STDOUT: %Destroy.Op.bound.loc9_22: = bound_method %.var, constants.%Destroy.Op.1a2547.2 // CHECK:STDOUT: %Destroy.Op.call.loc9_22: init %empty_tuple.type = call %Destroy.Op.bound.loc9_22(%.var) -// CHECK:STDOUT: %Destroy.Op.bound.loc9_41: = bound_method %z.var, constants.%Destroy.Op.2dd605.1 +// CHECK:STDOUT: %Destroy.Op.bound.loc9_41: = bound_method %z.var, constants.%Destroy.Op.1a2547.1 // CHECK:STDOUT: %Destroy.Op.call.loc9_41: init %empty_tuple.type = call %Destroy.Op.bound.loc9_41(%z.var) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -989,20 +989,20 @@ fn Call() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.7b3: type = pattern_type %X [concrete] +// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %X [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %TakeVar.type: type = fn_type @TakeVar [concrete] // 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.790b3b.2: type = fn_type @Destroy.Op.loc7_12.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = 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: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %TakeVar.decl: %TakeVar.type = fn_decl @TakeVar [concrete = constants.%TakeVar] { -// CHECK:STDOUT: %a.patt: %pattern_type.7b3 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: %pattern_type.7b3 = var_param_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.6cb = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.param_patt: %pattern_type.6cb = var_param_pattern %a.patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: ref %X = ref_param call_param0 // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] @@ -1020,7 +1020,7 @@ 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.2dd605.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: // CHECK:STDOUT: } @@ -1038,38 +1038,38 @@ fn Call() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %pattern_type.104: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %TakeVar.type: type = fn_type @TakeVar [concrete] // CHECK:STDOUT: %TakeVar: %TakeVar.type = struct_value () [concrete] // CHECK:STDOUT: %int_123.fff: Core.IntLiteral = int_value 123 [concrete] -// CHECK:STDOUT: %ImplicitAs.type.360: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3d6: = impl_witness imports.%ImplicitAs.impl_witness_table.0bd, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.0a4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.360 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.3d6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.da5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.da5, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1 [concrete] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_123.fff, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete] +// 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.5b5: %i32 = int_value 123 [concrete] -// CHECK:STDOUT: %Destroy.Op.type.790b3b.2: type = fn_type @Destroy.Op.loc5_12.2 [concrete] -// CHECK:STDOUT: %Destroy.Op.2dd605.2: %Destroy.Op.type.790b3b.2 = struct_value () [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.b42: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.048) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e2c)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.0bd = impl_witness_table (%Core.import_ref.b42), @Core.IntLiteral.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %TakeVar.decl: %TakeVar.type = fn_decl @TakeVar [concrete = constants.%TakeVar] { -// CHECK:STDOUT: %n.patt: %pattern_type.104 = ref_binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: %pattern_type.104 = var_param_pattern %n.patt [concrete] +// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = ref_binding_pattern n [concrete] +// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = var_param_pattern %n.patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: ref %i32 = ref_param call_param0 // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -1083,16 +1083,16 @@ fn Call() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakeVar.ref: %TakeVar.type = name_ref TakeVar, file.%TakeVar.decl [concrete = constants.%TakeVar] // CHECK:STDOUT: %int_123: Core.IntLiteral = int_value 123 [concrete = constants.%int_123.fff] -// CHECK:STDOUT: %impl.elem0: %.474 = impl_witness_access constants.%ImplicitAs.impl_witness.3d6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ab1] +// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39] // CHECK:STDOUT: %bound_method.loc5_12.1: = bound_method %int_123, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_12.2: = bound_method %int_123, %specific_fn [concrete = constants.%bound_method] -// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc5_12.2(%int_123) [concrete = constants.%int_123.5b5] -// CHECK:STDOUT: %.loc5: init %i32 = converted %int_123, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_123.5b5] +// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc5_12.2(%int_123) [concrete = constants.%int_123.2bf] +// CHECK:STDOUT: %.loc5: init %i32 = converted %int_123, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_123.2bf] // CHECK:STDOUT: %n.var: ref %i32 = var @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.2dd605.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: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/where_expr/constraints.carbon b/toolchain/check/testdata/where_expr/constraints.carbon index 3732592d8283..424cdae509a5 100644 --- a/toolchain/check/testdata/where_expr/constraints.carbon +++ b/toolchain/check/testdata/where_expr/constraints.carbon @@ -190,8 +190,8 @@ fn F() { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.0a6: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.0a6 [symbolic_self] +// CHECK:STDOUT: %.Self.9e9: %I.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.9e9 [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %T: %I.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] @@ -207,8 +207,8 @@ fn F() { // CHECK:STDOUT: %.loc7_12.1: type = splice_block %.loc7_12.2 [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self.loc7_7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %.Self.loc7_12: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.0a6] -// CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.loc7_12 [symbolic_self = constants.%.Self.0a6] +// CHECK:STDOUT: %.Self.loc7_12: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.9e9] +// CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.loc7_12 [symbolic_self = constants.%.Self.9e9] // CHECK:STDOUT: %.loc7_30: type = type_literal type [concrete = type] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc7_18: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] @@ -225,8 +225,8 @@ fn F() { // CHECK:STDOUT: %.loc13_12.1: type = splice_block %.loc13_12.2 [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self.loc13_7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %.Self.loc13_12: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.0a6] -// CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.loc13_12 [symbolic_self = constants.%.Self.0a6] +// CHECK:STDOUT: %.Self.loc13_12: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.9e9] +// CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.loc13_12 [symbolic_self = constants.%.Self.9e9] // CHECK:STDOUT: %Type.ref: type = name_ref Type, file.%Type [concrete = type] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc13_18: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] @@ -265,8 +265,8 @@ fn F() { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.0a6: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.0a6 [symbolic_self] +// CHECK:STDOUT: %.Self.9e9: %I.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.9e9 [symbolic_self] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -278,8 +278,8 @@ fn F() { // CHECK:STDOUT: %.loc14_12.1: type = splice_block %.loc14_12.2 [concrete = ] { // CHECK:STDOUT: %.Self.loc14_7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %.Self.loc14_12: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.0a6] -// CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.loc14_12 [symbolic_self = constants.%.Self.0a6] +// CHECK:STDOUT: %.Self.loc14_12: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.9e9] +// CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.loc14_12 [symbolic_self = constants.%.Self.9e9] // CHECK:STDOUT: %J.ref: = name_ref J, [concrete = ] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc14_18: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] @@ -307,59 +307,59 @@ fn F() { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%Member [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.0a6: %I.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.9e9: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %I_where.type.b05: type = facet_type <@I where TODO> [concrete] -// CHECK:STDOUT: %pattern_type.616: type = pattern_type %I_where.type.b05 [concrete] -// CHECK:STDOUT: %U: %I_where.type.b05 = symbolic_binding U, 0 [symbolic] +// CHECK:STDOUT: %I_where.type.267: type = facet_type <@I where TODO> [concrete] +// CHECK:STDOUT: %pattern_type.603: type = pattern_type %I_where.type.267 [concrete] +// CHECK:STDOUT: %U: %I_where.type.267 = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %EqualEqual.type: type = fn_type @EqualEqual [concrete] // CHECK:STDOUT: %EqualEqual: %EqualEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %.Self.944: %J.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type.454: type = facet_access_type %.Self.944 [symbolic_self] +// CHECK:STDOUT: %.Self.d2f: %J.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.29a: type = facet_access_type %.Self.d2f [symbolic_self] // CHECK:STDOUT: %J_where.type: type = facet_type <@J where .Self impls @I> [concrete] -// CHECK:STDOUT: %pattern_type.563: type = pattern_type %J_where.type [concrete] +// CHECK:STDOUT: %pattern_type.17c: type = pattern_type %J_where.type [concrete] // CHECK:STDOUT: %V: %J_where.type = symbolic_binding V, 0 [symbolic] // CHECK:STDOUT: %Impls.type: type = fn_type @Impls [concrete] // CHECK:STDOUT: %Impls: %Impls.type = struct_value () [concrete] -// CHECK:STDOUT: %.Self.as_type.6e9: type = facet_access_type %.Self.0a6 [symbolic_self] -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.0a6, @I [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.a2f: type = facet_access_type %.Self.9e9 [symbolic_self] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.9e9, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] -// CHECK:STDOUT: %I_where.type.852: type = facet_type <@I where .Self impls @J and TODO> [concrete] -// CHECK:STDOUT: %pattern_type.c2c: type = pattern_type %I_where.type.852 [concrete] -// CHECK:STDOUT: %W: %I_where.type.852 = symbolic_binding W, 0 [symbolic] +// CHECK:STDOUT: %I_where.type.a1d: type = facet_type <@I where .Self impls @J and TODO> [concrete] +// CHECK:STDOUT: %pattern_type.e37: type = pattern_type %I_where.type.a1d [concrete] +// CHECK:STDOUT: %W: %I_where.type.a1d = symbolic_binding W, 0 [symbolic] // CHECK:STDOUT: %And.type: type = fn_type @And [concrete] // CHECK:STDOUT: %And: %And.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %EqualEqual.decl: %EqualEqual.type = fn_decl @EqualEqual [concrete = constants.%EqualEqual] { -// CHECK:STDOUT: %U.patt: %pattern_type.616 = symbolic_binding_pattern U, 0 [concrete] +// CHECK:STDOUT: %U.patt: %pattern_type.603 = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc12_21.1: type = splice_block %.loc12_21.2 [concrete = constants.%I_where.type.b05] { +// CHECK:STDOUT: %.loc12_21.1: type = splice_block %.loc12_21.2 [concrete = constants.%I_where.type.267] { // CHECK:STDOUT: %.Self.loc12_16: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %.Self.loc12_21: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.0a6] -// CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.loc12_21 [symbolic_self = constants.%.Self.0a6] +// CHECK:STDOUT: %.Self.loc12_21: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.9e9] +// CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.loc12_21 [symbolic_self = constants.%.Self.9e9] // CHECK:STDOUT: %.loc12_37: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %.loc12_21.2: type = where_expr [concrete = constants.%I_where.type.b05] { +// CHECK:STDOUT: %.loc12_21.2: type = where_expr [concrete = constants.%I_where.type.267] { // CHECK:STDOUT: requirement_base_facet_type %I.ref // CHECK:STDOUT: requirement_equivalent %.Self.ref, %.loc12_37 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc12_16.2: %I_where.type.b05 = symbolic_binding U, 0 [symbolic = %U.loc12_16.1 (constants.%U)] +// CHECK:STDOUT: %U.loc12_16.2: %I_where.type.267 = symbolic_binding U, 0 [symbolic = %U.loc12_16.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %Impls.decl: %Impls.type = fn_decl @Impls [concrete = constants.%Impls] { -// CHECK:STDOUT: %V.patt: %pattern_type.563 = symbolic_binding_pattern V, 0 [concrete] +// CHECK:STDOUT: %V.patt: %pattern_type.17c = symbolic_binding_pattern V, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14_16.1: type = splice_block %.loc14_16.2 [concrete = constants.%J_where.type] { // CHECK:STDOUT: %.Self.loc14_11: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %.Self.loc14_16: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self.944] -// CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self.loc14_16 [symbolic_self = constants.%.Self.944] +// CHECK:STDOUT: %.Self.loc14_16: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self.d2f] +// CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self.loc14_16 [symbolic_self = constants.%.Self.d2f] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.454] -// CHECK:STDOUT: %.loc14_22: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.454] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.29a] +// CHECK:STDOUT: %.loc14_22: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.29a] // CHECK:STDOUT: %.loc14_16.2: type = where_expr [concrete = constants.%J_where.type] { // CHECK:STDOUT: requirement_base_facet_type %J.ref // CHECK:STDOUT: requirement_impls %.loc14_22, %I.ref @@ -368,34 +368,34 @@ fn F() { // CHECK:STDOUT: %V.loc14_11.2: %J_where.type = symbolic_binding V, 0 [symbolic = %V.loc14_11.1 (constants.%V)] // CHECK:STDOUT: } // CHECK:STDOUT: %And.decl: %And.type = fn_decl @And [concrete = constants.%And] { -// CHECK:STDOUT: %W.patt: %pattern_type.c2c = symbolic_binding_pattern W, 0 [concrete] +// CHECK:STDOUT: %W.patt: %pattern_type.e37 = symbolic_binding_pattern W, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [concrete = constants.%I_where.type.852] { +// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [concrete = constants.%I_where.type.a1d] { // CHECK:STDOUT: %.Self.loc16_9: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %.Self.loc16_14: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.0a6] -// CHECK:STDOUT: %.Self.ref.loc16_20: %I.type = name_ref .Self, %.Self.loc16_14 [symbolic_self = constants.%.Self.0a6] +// CHECK:STDOUT: %.Self.loc16_14: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.9e9] +// CHECK:STDOUT: %.Self.ref.loc16_20: %I.type = name_ref .Self, %.Self.loc16_14 [symbolic_self = constants.%.Self.9e9] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %.Self.as_type.loc16_20: type = facet_access_type %.Self.ref.loc16_20 [symbolic_self = constants.%.Self.as_type.6e9] -// CHECK:STDOUT: %.loc16_20: type = converted %.Self.ref.loc16_20, %.Self.as_type.loc16_20 [symbolic_self = constants.%.Self.as_type.6e9] -// CHECK:STDOUT: %.Self.ref.loc16_38: %I.type = name_ref .Self, %.Self.loc16_14 [symbolic_self = constants.%.Self.0a6] -// CHECK:STDOUT: %.Self.as_type.loc16_38: type = facet_access_type %.Self.ref.loc16_38 [symbolic_self = constants.%.Self.as_type.6e9] -// CHECK:STDOUT: %.loc16_38: type = converted %.Self.ref.loc16_38, %.Self.as_type.loc16_38 [symbolic_self = constants.%.Self.as_type.6e9] +// CHECK:STDOUT: %.Self.as_type.loc16_20: type = facet_access_type %.Self.ref.loc16_20 [symbolic_self = constants.%.Self.as_type.a2f] +// CHECK:STDOUT: %.loc16_20: type = converted %.Self.ref.loc16_20, %.Self.as_type.loc16_20 [symbolic_self = constants.%.Self.as_type.a2f] +// CHECK:STDOUT: %.Self.ref.loc16_38: %I.type = name_ref .Self, %.Self.loc16_14 [symbolic_self = constants.%.Self.9e9] +// CHECK:STDOUT: %.Self.as_type.loc16_38: type = facet_access_type %.Self.ref.loc16_38 [symbolic_self = constants.%.Self.as_type.a2f] +// CHECK:STDOUT: %.loc16_38: type = converted %.Self.ref.loc16_38, %.Self.as_type.loc16_38 [symbolic_self = constants.%.Self.as_type.a2f] // CHECK:STDOUT: %Member.ref: %I.assoc_type = name_ref Member, @Member.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc16_50: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %.loc16_14.2: type = where_expr [concrete = constants.%I_where.type.852] { +// CHECK:STDOUT: %.loc16_14.2: type = where_expr [concrete = constants.%I_where.type.a1d] { // CHECK:STDOUT: requirement_base_facet_type %I.ref // CHECK:STDOUT: requirement_impls %.loc16_20, %J.ref // CHECK:STDOUT: requirement_equivalent %impl.elem0, %.loc16_50 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %W.loc16_9.2: %I_where.type.852 = symbolic_binding W, 0 [symbolic = %W.loc16_9.1 (constants.%W)] +// CHECK:STDOUT: %W.loc16_9.2: %I_where.type.a1d = symbolic_binding W, 0 [symbolic = %W.loc16_9.1 (constants.%W)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @EqualEqual(%U.loc12_16.2: %I_where.type.b05) { -// CHECK:STDOUT: %U.loc12_16.1: %I_where.type.b05 = symbolic_binding U, 0 [symbolic = %U.loc12_16.1 (constants.%U)] +// CHECK:STDOUT: generic fn @EqualEqual(%U.loc12_16.2: %I_where.type.267) { +// CHECK:STDOUT: %U.loc12_16.1: %I_where.type.267 = symbolic_binding U, 0 [symbolic = %U.loc12_16.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -406,8 +406,8 @@ fn F() { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @And(%W.loc16_9.2: %I_where.type.852) { -// CHECK:STDOUT: %W.loc16_9.1: %I_where.type.852 = symbolic_binding W, 0 [symbolic = %W.loc16_9.1 (constants.%W)] +// CHECK:STDOUT: generic fn @And(%W.loc16_9.2: %I_where.type.a1d) { +// CHECK:STDOUT: %W.loc16_9.1: %I_where.type.a1d = symbolic_binding W, 0 [symbolic = %W.loc16_9.1 (constants.%W)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -434,9 +434,9 @@ fn F() { // CHECK:STDOUT: %assoc0: %K.assoc_type = assoc_entity element0, @K.WithSelf.%Associated [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.495: %K.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.495 [symbolic_self] -// CHECK:STDOUT: %K.lookup_impl_witness: = lookup_impl_witness %.Self.495, @K [symbolic_self] +// CHECK:STDOUT: %.Self.613: %K.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.613 [symbolic_self] +// CHECK:STDOUT: %K.lookup_impl_witness: = lookup_impl_witness %.Self.613, @K [symbolic_self] // CHECK:STDOUT: %impl.elem0: %L.type = impl_witness_access %K.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %as_type: type = facet_access_type %impl.elem0 [symbolic_self] // CHECK:STDOUT: %K_where.type: type = facet_type <@K where %impl.elem0 impls @M> [concrete] @@ -453,8 +453,8 @@ fn F() { // CHECK:STDOUT: %.loc12_30.1: type = splice_block %.loc12_30.2 [concrete = constants.%K_where.type] { // CHECK:STDOUT: %.Self.loc12_25: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %K.ref: type = name_ref K, file.%K.decl [concrete = constants.%K.type] -// CHECK:STDOUT: %.Self.loc12_30: %K.type = symbolic_binding .Self [symbolic_self = constants.%.Self.495] -// CHECK:STDOUT: %.Self.ref: %K.type = name_ref .Self, %.Self.loc12_30 [symbolic_self = constants.%.Self.495] +// CHECK:STDOUT: %.Self.loc12_30: %K.type = symbolic_binding .Self [symbolic_self = constants.%.Self.613] +// CHECK:STDOUT: %.Self.ref: %K.type = name_ref .Self, %.Self.loc12_30 [symbolic_self = constants.%.Self.613] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc12_36.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Associated.ref: %K.assoc_type = name_ref Associated, @Associated.%assoc0 [concrete = constants.%assoc0] diff --git a/toolchain/check/testdata/where_expr/designator.carbon b/toolchain/check/testdata/where_expr/designator.carbon index 27819432fd33..cbc0b4ad63ec 100644 --- a/toolchain/check/testdata/where_expr/designator.carbon +++ b/toolchain/check/testdata/where_expr/designator.carbon @@ -358,23 +358,23 @@ fn G(unused T:! Z where C impls (I & J(.Z0))) {} // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%Member [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.0a6: %I.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.9e9: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where TODO> [concrete] -// CHECK:STDOUT: %pattern_type.616: type = pattern_type %I_where.type [concrete] +// CHECK:STDOUT: %pattern_type.603: type = pattern_type %I_where.type [concrete] // CHECK:STDOUT: %T: %I_where.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %PeriodSelf.type: type = fn_type @PeriodSelf [concrete] // CHECK:STDOUT: %PeriodSelf: %PeriodSelf.type = struct_value () [concrete] -// CHECK:STDOUT: %.Self.as_type.6e9: type = facet_access_type %.Self.0a6 [symbolic_self] -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.0a6, @I [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.a2f: type = facet_access_type %.Self.9e9 [symbolic_self] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.9e9, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %U: %I_where.type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %PeriodMember.type: type = fn_type @PeriodMember [concrete] // CHECK:STDOUT: %PeriodMember: %PeriodMember.type = struct_value () [concrete] // CHECK:STDOUT: %.Self.as_type.246: type = facet_access_type %.Self.c39 [symbolic_self] // CHECK:STDOUT: %type_where: type = facet_type [concrete] -// CHECK:STDOUT: %pattern_type.be3: type = pattern_type %type_where [concrete] +// CHECK:STDOUT: %pattern_type.951: type = pattern_type %type_where [concrete] // CHECK:STDOUT: %V: %type_where = symbolic_binding V, 0 [symbolic] // CHECK:STDOUT: %TypeSelfImpls.type: type = fn_type @TypeSelfImpls [concrete] // CHECK:STDOUT: %TypeSelfImpls: %TypeSelfImpls.type = struct_value () [concrete] @@ -382,13 +382,13 @@ fn G(unused T:! Z where C impls (I & J(.Z0))) {} // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %PeriodSelf.decl: %PeriodSelf.type = fn_decl @PeriodSelf [concrete = constants.%PeriodSelf] { -// CHECK:STDOUT: %T.patt: %pattern_type.616 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.603 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_21.1: type = splice_block %.loc9_21.2 [concrete = constants.%I_where.type] { // CHECK:STDOUT: %.Self.loc9_16: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %.Self.loc9_21: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.0a6] -// CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.loc9_21 [symbolic_self = constants.%.Self.0a6] +// CHECK:STDOUT: %.Self.loc9_21: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.9e9] +// CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.loc9_21 [symbolic_self = constants.%.Self.9e9] // CHECK:STDOUT: %.loc9_37: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc9_21.2: type = where_expr [concrete = constants.%I_where.type] { // CHECK:STDOUT: requirement_base_facet_type %I.ref @@ -398,15 +398,15 @@ fn G(unused T:! Z where C impls (I & J(.Z0))) {} // CHECK:STDOUT: %T.loc9_16.2: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc9_16.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %PeriodMember.decl: %PeriodMember.type = fn_decl @PeriodMember [concrete = constants.%PeriodMember] { -// CHECK:STDOUT: %U.patt: %pattern_type.616 = symbolic_binding_pattern U, 0 [concrete] +// CHECK:STDOUT: %U.patt: %pattern_type.603 = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_23.1: type = splice_block %.loc11_23.2 [concrete = constants.%I_where.type] { // CHECK:STDOUT: %.Self.loc11_18: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %.Self.loc11_23: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.0a6] -// CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.loc11_23 [symbolic_self = constants.%.Self.0a6] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.6e9] -// CHECK:STDOUT: %.loc11_29: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.6e9] +// CHECK:STDOUT: %.Self.loc11_23: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.9e9] +// CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.loc11_23 [symbolic_self = constants.%.Self.9e9] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.a2f] +// CHECK:STDOUT: %.loc11_29: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.a2f] // CHECK:STDOUT: %Member.ref: %I.assoc_type = name_ref Member, @Member.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc11_41: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -418,7 +418,7 @@ fn G(unused T:! Z where C impls (I & J(.Z0))) {} // CHECK:STDOUT: %U.loc11_18.2: %I_where.type = symbolic_binding U, 0 [symbolic = %U.loc11_18.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %TypeSelfImpls.decl: %TypeSelfImpls.type = fn_decl @TypeSelfImpls [concrete = constants.%TypeSelfImpls] { -// CHECK:STDOUT: %V.patt: %pattern_type.be3 = symbolic_binding_pattern V, 0 [concrete] +// CHECK:STDOUT: %V.patt: %pattern_type.951 = symbolic_binding_pattern V, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc13_27.1: type = splice_block %.loc13_27.2 [concrete = constants.%type_where] { // CHECK:STDOUT: %.Self.loc13_19: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] diff --git a/toolchain/check/testdata/where_expr/dot_self_index.carbon b/toolchain/check/testdata/where_expr/dot_self_index.carbon index fce67b8a63ae..07a2cbdb6b7b 100644 --- a/toolchain/check/testdata/where_expr/dot_self_index.carbon +++ b/toolchain/check/testdata/where_expr/dot_self_index.carbon @@ -31,45 +31,45 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] -// CHECK:STDOUT: %Empty.type.cdd: type = generic_interface_type @Empty [concrete] -// CHECK:STDOUT: %Empty.generic: %Empty.type.cdd = struct_value () [concrete] +// CHECK:STDOUT: %Empty.type.c52: type = generic_interface_type @Empty [concrete] +// CHECK:STDOUT: %Empty.generic: %Empty.type.c52 = struct_value () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Empty.type.10b59f.2: type = facet_type <@Empty, @Empty(%T)> [symbolic] -// CHECK:STDOUT: %.Self.c0d: %Empty.type.10b59f.2 = symbolic_binding .Self [symbolic] -// CHECK:STDOUT: %Empty.assoc_type.adf754.2: type = assoc_entity_type @Empty, @Empty(%T) [symbolic] -// CHECK:STDOUT: %assoc0.6e5983.2: %Empty.assoc_type.adf754.2 = assoc_entity element0, @Empty.WithSelf.%A [symbolic] -// CHECK:STDOUT: %require_complete.6ec: = require_complete_type %Empty.type.10b59f.2 [symbolic] -// CHECK:STDOUT: %.Self.as_type.91c: type = facet_access_type %.Self.c0d [symbolic] -// CHECK:STDOUT: %Empty.lookup_impl_witness.df5: = lookup_impl_witness %.Self.c0d, @Empty, @Empty(%T) [symbolic] -// CHECK:STDOUT: %impl.elem0.c43: type = impl_witness_access %Empty.lookup_impl_witness.df5, element0 [symbolic] +// CHECK:STDOUT: %Empty.type.95d624.2: type = facet_type <@Empty, @Empty(%T)> [symbolic] +// CHECK:STDOUT: %.Self.b11: %Empty.type.95d624.2 = symbolic_binding .Self [symbolic] +// CHECK:STDOUT: %Empty.assoc_type.c44b55.2: type = assoc_entity_type @Empty, @Empty(%T) [symbolic] +// CHECK:STDOUT: %assoc0.3a7cb1.2: %Empty.assoc_type.c44b55.2 = assoc_entity element0, @Empty.WithSelf.%A [symbolic] +// CHECK:STDOUT: %require_complete.a43: = require_complete_type %Empty.type.95d624.2 [symbolic] +// CHECK:STDOUT: %.Self.as_type.c7e: type = facet_access_type %.Self.b11 [symbolic] +// CHECK:STDOUT: %Empty.lookup_impl_witness.14f: = lookup_impl_witness %.Self.b11, @Empty, @Empty(%T) [symbolic] +// CHECK:STDOUT: %impl.elem0.cd8: type = impl_witness_access %Empty.lookup_impl_witness.14f, element0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %Empty_where.type.db9: type = facet_type <@Empty, @Empty(%T) where %impl.elem0.c43 = %ptr.e8f> [symbolic] -// CHECK:STDOUT: %pattern_type.4c4: type = pattern_type %Empty_where.type.db9 [symbolic] +// CHECK:STDOUT: %Empty_where.type.e78: type = facet_type <@Empty, @Empty(%T) where %impl.elem0.cd8 = %ptr.e8f> [symbolic] +// CHECK:STDOUT: %pattern_type.eb8: type = pattern_type %Empty_where.type.e78 [symbolic] // CHECK:STDOUT: %V: type = symbolic_binding V, 1 [symbolic] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.9d5: = require_complete_type %Empty_where.type.db9 [symbolic] +// CHECK:STDOUT: %require_complete.ee8: = require_complete_type %Empty_where.type.e78 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %Empty.type.e2f: type = facet_type <@Empty, @Empty(%i32)> [concrete] -// CHECK:STDOUT: %.Self.8db: %Empty.type.e2f = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Empty.assoc_type.981: type = assoc_entity_type @Empty, @Empty(%i32) [concrete] -// CHECK:STDOUT: %assoc0.d2e: %Empty.assoc_type.981 = assoc_entity element0, @Empty.WithSelf.%A [concrete] -// CHECK:STDOUT: %.Self.as_type.cb9: type = facet_access_type %.Self.8db [symbolic_self] -// CHECK:STDOUT: %Empty.lookup_impl_witness.f21: = lookup_impl_witness %.Self.8db, @Empty, @Empty(%i32) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.963: type = impl_witness_access %Empty.lookup_impl_witness.f21, element0 [symbolic_self] -// CHECK:STDOUT: %ptr.847: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Empty_where.type.a70: type = facet_type <@Empty, @Empty(%i32) where %impl.elem0.963 = %ptr.847> [concrete] -// CHECK:STDOUT: %pattern_type.8d4: type = pattern_type %Empty_where.type.a70 [concrete] -// CHECK:STDOUT: %complete_type.cd3: = complete_type_witness %Empty.type.e2f [concrete] -// CHECK:STDOUT: %complete_type.4cf: = complete_type_witness %Empty_where.type.a70 [concrete] +// CHECK:STDOUT: %Empty.type.39c: type = facet_type <@Empty, @Empty(%i32)> [concrete] +// CHECK:STDOUT: %.Self.21a: %Empty.type.39c = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Empty.assoc_type.22b: type = assoc_entity_type @Empty, @Empty(%i32) [concrete] +// CHECK:STDOUT: %assoc0.023: %Empty.assoc_type.22b = assoc_entity element0, @Empty.WithSelf.%A [concrete] +// CHECK:STDOUT: %.Self.as_type.22a: type = facet_access_type %.Self.21a [symbolic_self] +// CHECK:STDOUT: %Empty.lookup_impl_witness.873: = lookup_impl_witness %.Self.21a, @Empty, @Empty(%i32) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.1e1: type = impl_witness_access %Empty.lookup_impl_witness.873, element0 [symbolic_self] +// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete] +// CHECK:STDOUT: %Empty_where.type.2e4: type = facet_type <@Empty, @Empty(%i32) where %impl.elem0.1e1 = %ptr.d08> [concrete] +// CHECK:STDOUT: %pattern_type.ce6: type = pattern_type %Empty_where.type.2e4 [concrete] +// CHECK:STDOUT: %complete_type.c56: = complete_type_witness %Empty.type.39c [concrete] +// CHECK:STDOUT: %complete_type.6eb: = complete_type_witness %Empty_where.type.2e4 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %U.param_patt: @H.%pattern_type (%pattern_type.4c4) = value_param_pattern [concrete] -// CHECK:STDOUT: %U.patt: @H.%pattern_type (%pattern_type.4c4) = at_binding_pattern U, %U.param_patt [concrete] +// CHECK:STDOUT: %U.param_patt: @H.%pattern_type (%pattern_type.eb8) = value_param_pattern [concrete] +// CHECK:STDOUT: %U.patt: @H.%pattern_type (%pattern_type.eb8) = at_binding_pattern U, %U.param_patt [concrete] // CHECK:STDOUT: %V.patt: %pattern_type.98f = symbolic_binding_pattern V, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc21_10.1: type = splice_block %.loc21_10.2 [concrete = type] { @@ -77,26 +77,26 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %.loc21_10.2: type = type_literal type [concrete = type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc21_7.2: type = symbolic_binding T, 0 [symbolic = %T.loc21_7.1 (constants.%T)] -// CHECK:STDOUT: %U.param: @H.%Empty_where.type (%Empty_where.type.db9) = value_param call_param0 -// CHECK:STDOUT: %.loc21_35.1: type = splice_block %.loc21_35.2 [symbolic = %Empty_where.type (constants.%Empty_where.type.db9)] { -// CHECK:STDOUT: %Empty.ref: %Empty.type.cdd = name_ref Empty, file.%Empty.decl [concrete = constants.%Empty.generic] +// CHECK:STDOUT: %U.param: @H.%Empty_where.type (%Empty_where.type.e78) = value_param call_param0 +// CHECK:STDOUT: %.loc21_35.1: type = splice_block %.loc21_35.2 [symbolic = %Empty_where.type (constants.%Empty_where.type.e78)] { +// CHECK:STDOUT: %Empty.ref: %Empty.type.c52 = name_ref Empty, file.%Empty.decl [concrete = constants.%Empty.generic] // CHECK:STDOUT: %T.ref.loc21_32: type = name_ref T, %T.loc21_7.2 [symbolic = %T.loc21_7.1 (constants.%T)] -// CHECK:STDOUT: %Empty.type.loc21_33.2: type = facet_type <@Empty, @Empty(constants.%T)> [symbolic = %Empty.type.loc21_33.1 (constants.%Empty.type.10b59f.2)] -// CHECK:STDOUT: %.Self.loc21_35.2: @H.%Empty.type.loc21_33.1 (%Empty.type.10b59f.2) = symbolic_binding .Self [symbolic = %.Self.loc21_35.1 (constants.%.Self.c0d)] -// CHECK:STDOUT: %.Self.ref: @H.%Empty.type.loc21_33.1 (%Empty.type.10b59f.2) = name_ref .Self, %.Self.loc21_35.2 [symbolic = %.Self.loc21_35.1 (constants.%.Self.c0d)] -// CHECK:STDOUT: %.Self.as_type.loc21_41.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc21_41.1 (constants.%.Self.as_type.91c)] -// CHECK:STDOUT: %.loc21_41.1: type = converted %.Self.ref, %.Self.as_type.loc21_41.2 [symbolic = %.Self.as_type.loc21_41.1 (constants.%.Self.as_type.91c)] -// CHECK:STDOUT: %.loc21_41.2: @H.%Empty.assoc_type (%Empty.assoc_type.adf754.2) = specific_constant @A.%assoc0, @Empty.WithSelf(constants.%T, constants.%.Self.c0d) [symbolic = %assoc0 (constants.%assoc0.6e5983.2)] -// CHECK:STDOUT: %A.ref: @H.%Empty.assoc_type (%Empty.assoc_type.adf754.2) = name_ref A, %.loc21_41.2 [symbolic = %assoc0 (constants.%assoc0.6e5983.2)] -// CHECK:STDOUT: %impl.elem0.loc21_41.2: type = impl_witness_access constants.%Empty.lookup_impl_witness.df5, element0 [symbolic = %impl.elem0.loc21_41.1 (constants.%impl.elem0.c43)] +// CHECK:STDOUT: %Empty.type.loc21_33.2: type = facet_type <@Empty, @Empty(constants.%T)> [symbolic = %Empty.type.loc21_33.1 (constants.%Empty.type.95d624.2)] +// CHECK:STDOUT: %.Self.loc21_35.2: @H.%Empty.type.loc21_33.1 (%Empty.type.95d624.2) = symbolic_binding .Self [symbolic = %.Self.loc21_35.1 (constants.%.Self.b11)] +// CHECK:STDOUT: %.Self.ref: @H.%Empty.type.loc21_33.1 (%Empty.type.95d624.2) = name_ref .Self, %.Self.loc21_35.2 [symbolic = %.Self.loc21_35.1 (constants.%.Self.b11)] +// CHECK:STDOUT: %.Self.as_type.loc21_41.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc21_41.1 (constants.%.Self.as_type.c7e)] +// CHECK:STDOUT: %.loc21_41.1: type = converted %.Self.ref, %.Self.as_type.loc21_41.2 [symbolic = %.Self.as_type.loc21_41.1 (constants.%.Self.as_type.c7e)] +// CHECK:STDOUT: %.loc21_41.2: @H.%Empty.assoc_type (%Empty.assoc_type.c44b55.2) = specific_constant @A.%assoc0, @Empty.WithSelf(constants.%T, constants.%.Self.b11) [symbolic = %assoc0 (constants.%assoc0.3a7cb1.2)] +// CHECK:STDOUT: %A.ref: @H.%Empty.assoc_type (%Empty.assoc_type.c44b55.2) = name_ref A, %.loc21_41.2 [symbolic = %assoc0 (constants.%assoc0.3a7cb1.2)] +// CHECK:STDOUT: %impl.elem0.loc21_41.2: type = impl_witness_access constants.%Empty.lookup_impl_witness.14f, element0 [symbolic = %impl.elem0.loc21_41.1 (constants.%impl.elem0.cd8)] // CHECK:STDOUT: %T.ref.loc21_46: type = name_ref T, %T.loc21_7.2 [symbolic = %T.loc21_7.1 (constants.%T)] // CHECK:STDOUT: %ptr.loc21_47.2: type = ptr_type %T.ref.loc21_46 [symbolic = %ptr.loc21_47.1 (constants.%ptr.e8f)] -// CHECK:STDOUT: %.loc21_35.2: type = where_expr [symbolic = %Empty_where.type (constants.%Empty_where.type.db9)] { +// CHECK:STDOUT: %.loc21_35.2: type = where_expr [symbolic = %Empty_where.type (constants.%Empty_where.type.e78)] { // CHECK:STDOUT: requirement_base_facet_type %Empty.type.loc21_33.2 // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc21_41.2, %ptr.loc21_47.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %U: @H.%Empty_where.type (%Empty_where.type.db9) = value_binding U, %U.param +// CHECK:STDOUT: %U: @H.%Empty_where.type (%Empty_where.type.e78) = value_binding U, %U.param // CHECK:STDOUT: %.loc21_61.1: type = splice_block %.loc21_61.2 [concrete = type] { // CHECK:STDOUT: %.Self.loc21_58: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %.loc21_61.2: type = type_literal type [concrete = type] @@ -107,23 +107,23 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @H(%T.loc21_7.2: type, %V.loc21_58.2: type) { // CHECK:STDOUT: %T.loc21_7.1: type = symbolic_binding T, 0 [symbolic = %T.loc21_7.1 (constants.%T)] -// CHECK:STDOUT: %Empty.type.loc21_33.1: type = facet_type <@Empty, @Empty(%T.loc21_7.1)> [symbolic = %Empty.type.loc21_33.1 (constants.%Empty.type.10b59f.2)] -// CHECK:STDOUT: %.Self.loc21_35.1: @H.%Empty.type.loc21_33.1 (%Empty.type.10b59f.2) = symbolic_binding .Self [symbolic = %.Self.loc21_35.1 (constants.%.Self.c0d)] -// CHECK:STDOUT: %require_complete.loc21_41: = require_complete_type %Empty.type.loc21_33.1 [symbolic = %require_complete.loc21_41 (constants.%require_complete.6ec)] -// CHECK:STDOUT: %.Self.as_type.loc21_41.1: type = facet_access_type %.Self.loc21_35.1 [symbolic = %.Self.as_type.loc21_41.1 (constants.%.Self.as_type.91c)] -// CHECK:STDOUT: %Empty.assoc_type: type = assoc_entity_type @Empty, @Empty(%T.loc21_7.1) [symbolic = %Empty.assoc_type (constants.%Empty.assoc_type.adf754.2)] -// CHECK:STDOUT: %assoc0: @H.%Empty.assoc_type (%Empty.assoc_type.adf754.2) = assoc_entity element0, @Empty.WithSelf.%A [symbolic = %assoc0 (constants.%assoc0.6e5983.2)] -// CHECK:STDOUT: %Empty.lookup_impl_witness: = lookup_impl_witness %.Self.loc21_35.1, @Empty, @Empty(%T.loc21_7.1) [symbolic = %Empty.lookup_impl_witness (constants.%Empty.lookup_impl_witness.df5)] -// CHECK:STDOUT: %impl.elem0.loc21_41.1: type = impl_witness_access %Empty.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_41.1 (constants.%impl.elem0.c43)] +// CHECK:STDOUT: %Empty.type.loc21_33.1: type = facet_type <@Empty, @Empty(%T.loc21_7.1)> [symbolic = %Empty.type.loc21_33.1 (constants.%Empty.type.95d624.2)] +// CHECK:STDOUT: %.Self.loc21_35.1: @H.%Empty.type.loc21_33.1 (%Empty.type.95d624.2) = symbolic_binding .Self [symbolic = %.Self.loc21_35.1 (constants.%.Self.b11)] +// CHECK:STDOUT: %require_complete.loc21_41: = require_complete_type %Empty.type.loc21_33.1 [symbolic = %require_complete.loc21_41 (constants.%require_complete.a43)] +// CHECK:STDOUT: %.Self.as_type.loc21_41.1: type = facet_access_type %.Self.loc21_35.1 [symbolic = %.Self.as_type.loc21_41.1 (constants.%.Self.as_type.c7e)] +// CHECK:STDOUT: %Empty.assoc_type: type = assoc_entity_type @Empty, @Empty(%T.loc21_7.1) [symbolic = %Empty.assoc_type (constants.%Empty.assoc_type.c44b55.2)] +// CHECK:STDOUT: %assoc0: @H.%Empty.assoc_type (%Empty.assoc_type.c44b55.2) = assoc_entity element0, @Empty.WithSelf.%A [symbolic = %assoc0 (constants.%assoc0.3a7cb1.2)] +// CHECK:STDOUT: %Empty.lookup_impl_witness: = lookup_impl_witness %.Self.loc21_35.1, @Empty, @Empty(%T.loc21_7.1) [symbolic = %Empty.lookup_impl_witness (constants.%Empty.lookup_impl_witness.14f)] +// CHECK:STDOUT: %impl.elem0.loc21_41.1: type = impl_witness_access %Empty.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_41.1 (constants.%impl.elem0.cd8)] // CHECK:STDOUT: %ptr.loc21_47.1: type = ptr_type %T.loc21_7.1 [symbolic = %ptr.loc21_47.1 (constants.%ptr.e8f)] -// CHECK:STDOUT: %Empty_where.type: type = facet_type <@Empty, @Empty(%T.loc21_7.1) where %impl.elem0.loc21_41.1 = %ptr.loc21_47.1> [symbolic = %Empty_where.type (constants.%Empty_where.type.db9)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Empty_where.type [symbolic = %pattern_type (constants.%pattern_type.4c4)] +// CHECK:STDOUT: %Empty_where.type: type = facet_type <@Empty, @Empty(%T.loc21_7.1) where %impl.elem0.loc21_41.1 = %ptr.loc21_47.1> [symbolic = %Empty_where.type (constants.%Empty_where.type.e78)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Empty_where.type [symbolic = %pattern_type (constants.%pattern_type.eb8)] // CHECK:STDOUT: %V.loc21_58.1: type = symbolic_binding V, 1 [symbolic = %V.loc21_58.1 (constants.%V)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc21_24: = require_complete_type %Empty_where.type [symbolic = %require_complete.loc21_24 (constants.%require_complete.9d5)] +// CHECK:STDOUT: %require_complete.loc21_24: = require_complete_type %Empty_where.type [symbolic = %require_complete.loc21_24 (constants.%require_complete.ee8)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.param: @H.%Empty_where.type (%Empty_where.type.db9)) { +// CHECK:STDOUT: fn(%U.param: @H.%Empty_where.type (%Empty_where.type.e78)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -131,36 +131,36 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%T, constants.%V) { // CHECK:STDOUT: %T.loc21_7.1 => constants.%T -// CHECK:STDOUT: %Empty.type.loc21_33.1 => constants.%Empty.type.10b59f.2 -// CHECK:STDOUT: %.Self.loc21_35.1 => constants.%.Self.c0d -// CHECK:STDOUT: %require_complete.loc21_41 => constants.%require_complete.6ec -// CHECK:STDOUT: %.Self.as_type.loc21_41.1 => constants.%.Self.as_type.91c -// CHECK:STDOUT: %Empty.assoc_type => constants.%Empty.assoc_type.adf754.2 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.6e5983.2 -// CHECK:STDOUT: %Empty.lookup_impl_witness => constants.%Empty.lookup_impl_witness.df5 -// CHECK:STDOUT: %impl.elem0.loc21_41.1 => constants.%impl.elem0.c43 +// CHECK:STDOUT: %Empty.type.loc21_33.1 => constants.%Empty.type.95d624.2 +// CHECK:STDOUT: %.Self.loc21_35.1 => constants.%.Self.b11 +// CHECK:STDOUT: %require_complete.loc21_41 => constants.%require_complete.a43 +// CHECK:STDOUT: %.Self.as_type.loc21_41.1 => constants.%.Self.as_type.c7e +// CHECK:STDOUT: %Empty.assoc_type => constants.%Empty.assoc_type.c44b55.2 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.3a7cb1.2 +// CHECK:STDOUT: %Empty.lookup_impl_witness => constants.%Empty.lookup_impl_witness.14f +// CHECK:STDOUT: %impl.elem0.loc21_41.1 => constants.%impl.elem0.cd8 // CHECK:STDOUT: %ptr.loc21_47.1 => constants.%ptr.e8f -// CHECK:STDOUT: %Empty_where.type => constants.%Empty_where.type.db9 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4c4 +// CHECK:STDOUT: %Empty_where.type => constants.%Empty_where.type.e78 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.eb8 // CHECK:STDOUT: %V.loc21_58.1 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%i32, bool) { // CHECK:STDOUT: %T.loc21_7.1 => constants.%i32 -// CHECK:STDOUT: %Empty.type.loc21_33.1 => constants.%Empty.type.e2f -// CHECK:STDOUT: %.Self.loc21_35.1 => constants.%.Self.8db -// CHECK:STDOUT: %require_complete.loc21_41 => constants.%complete_type.cd3 -// CHECK:STDOUT: %.Self.as_type.loc21_41.1 => constants.%.Self.as_type.cb9 -// CHECK:STDOUT: %Empty.assoc_type => constants.%Empty.assoc_type.981 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.d2e -// CHECK:STDOUT: %Empty.lookup_impl_witness => constants.%Empty.lookup_impl_witness.f21 -// CHECK:STDOUT: %impl.elem0.loc21_41.1 => constants.%impl.elem0.963 -// CHECK:STDOUT: %ptr.loc21_47.1 => constants.%ptr.847 -// CHECK:STDOUT: %Empty_where.type => constants.%Empty_where.type.a70 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.8d4 +// CHECK:STDOUT: %Empty.type.loc21_33.1 => constants.%Empty.type.39c +// CHECK:STDOUT: %.Self.loc21_35.1 => constants.%.Self.21a +// CHECK:STDOUT: %require_complete.loc21_41 => constants.%complete_type.c56 +// CHECK:STDOUT: %.Self.as_type.loc21_41.1 => constants.%.Self.as_type.22a +// CHECK:STDOUT: %Empty.assoc_type => constants.%Empty.assoc_type.22b +// CHECK:STDOUT: %assoc0 => constants.%assoc0.023 +// CHECK:STDOUT: %Empty.lookup_impl_witness => constants.%Empty.lookup_impl_witness.873 +// CHECK:STDOUT: %impl.elem0.loc21_41.1 => constants.%impl.elem0.1e1 +// CHECK:STDOUT: %ptr.loc21_47.1 => constants.%ptr.d08 +// CHECK:STDOUT: %Empty_where.type => constants.%Empty_where.type.2e4 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ce6 // CHECK:STDOUT: %V.loc21_58.1 => bool // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc21_24 => constants.%complete_type.4cf +// CHECK:STDOUT: %require_complete.loc21_24 => constants.%complete_type.6eb // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/where_expr/equal_rewrite.carbon b/toolchain/check/testdata/where_expr/equal_rewrite.carbon index 35b2432065f3..ce8aff1c776d 100644 --- a/toolchain/check/testdata/where_expr/equal_rewrite.carbon +++ b/toolchain/check/testdata/where_expr/equal_rewrite.carbon @@ -229,9 +229,9 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %assoc0: %N.assoc_type = assoc_entity element0, @N.WithSelf.%P [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.a8a: %N.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.a8a [symbolic_self] -// CHECK:STDOUT: %N.lookup_impl_witness: = lookup_impl_witness %.Self.a8a, @N [symbolic_self] +// CHECK:STDOUT: %.Self.b4b: %N.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.b4b [symbolic_self] +// CHECK:STDOUT: %N.lookup_impl_witness: = lookup_impl_witness %.Self.b4b, @N [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %N.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] @@ -249,8 +249,8 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %.loc9_16.1: type = splice_block %.loc9_16.2 [concrete = constants.%N_where.type] { // CHECK:STDOUT: %.Self.loc9_11: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %N.ref: type = name_ref N, file.%N.decl [concrete = constants.%N.type] -// CHECK:STDOUT: %.Self.loc9_16: %N.type = symbolic_binding .Self [symbolic_self = constants.%.Self.a8a] -// CHECK:STDOUT: %.Self.ref: %N.type = name_ref .Self, %.Self.loc9_16 [symbolic_self = constants.%.Self.a8a] +// CHECK:STDOUT: %.Self.loc9_16: %N.type = symbolic_binding .Self [symbolic_self = constants.%.Self.b4b] +// CHECK:STDOUT: %.Self.ref: %N.type = name_ref .Self, %.Self.loc9_16 [symbolic_self = constants.%.Self.b4b] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_22: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %P.ref: %N.assoc_type = name_ref P, @P.%assoc0 [concrete = constants.%assoc0] @@ -285,58 +285,58 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %assoc1: %A.assoc_type = assoc_entity element1, @A.WithSelf.%C [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.357: %A.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.357 [symbolic_self] -// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %.Self.357, @A [symbolic_self] +// CHECK:STDOUT: %.Self.dad: %A.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.dad [symbolic_self] +// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %.Self.dad, @A [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %A.lookup_impl_witness, element0 [symbolic_self] -// CHECK:STDOUT: %A_where.type.c60: type = facet_type <@A where %impl.elem0 = bool> [concrete] +// CHECK:STDOUT: %A_where.type.23b: type = facet_type <@A where %impl.elem0 = bool> [concrete] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access %A.lookup_impl_witness, element1 [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %A_where.type.ef9: type = facet_type <@A where %impl.elem0 = bool and %impl.elem1 = %empty_tuple.type> [concrete] -// CHECK:STDOUT: %pattern_type.e07: type = pattern_type %A_where.type.ef9 [concrete] -// CHECK:STDOUT: %D: %A_where.type.ef9 = symbolic_binding D, 0 [symbolic] +// CHECK:STDOUT: %A_where.type.879: type = facet_type <@A where %impl.elem0 = bool and %impl.elem1 = %empty_tuple.type> [concrete] +// CHECK:STDOUT: %pattern_type.aec: type = pattern_type %A_where.type.879 [concrete] +// CHECK:STDOUT: %D: %A_where.type.879 = symbolic_binding D, 0 [symbolic] // CHECK:STDOUT: %NestedRewrite.type: type = fn_type @NestedRewrite [concrete] // CHECK:STDOUT: %NestedRewrite: %NestedRewrite.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %NestedRewrite.decl: %NestedRewrite.type = fn_decl @NestedRewrite [concrete = constants.%NestedRewrite] { -// CHECK:STDOUT: %D.patt: %pattern_type.e07 = symbolic_binding_pattern D, 0 [concrete] +// CHECK:STDOUT: %D.patt: %pattern_type.aec = symbolic_binding_pattern D, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc10_42.1: type = splice_block %.loc10_42.2 [concrete = constants.%A_where.type.ef9] { +// CHECK:STDOUT: %.loc10_42.1: type = splice_block %.loc10_42.2 [concrete = constants.%A_where.type.879] { // CHECK:STDOUT: %.Self.loc10_19: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %.Self.loc10_25: %A.type = symbolic_binding .Self [symbolic_self = constants.%.Self.357] -// CHECK:STDOUT: %.Self.ref.loc10_31: %A.type = name_ref .Self, %.Self.loc10_25 [symbolic_self = constants.%.Self.357] +// CHECK:STDOUT: %.Self.loc10_25: %A.type = symbolic_binding .Self [symbolic_self = constants.%.Self.dad] +// CHECK:STDOUT: %.Self.ref.loc10_31: %A.type = name_ref .Self, %.Self.loc10_25 [symbolic_self = constants.%.Self.dad] // CHECK:STDOUT: %.Self.as_type.loc10_31: type = facet_access_type %.Self.ref.loc10_31 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_31: type = converted %.Self.ref.loc10_31, %.Self.as_type.loc10_31 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %B.ref: %A.assoc_type = name_ref B, @B.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_36: type = type_literal bool [concrete = bool] -// CHECK:STDOUT: %.loc10_25: type = where_expr [concrete = constants.%A_where.type.c60] { +// CHECK:STDOUT: %.loc10_25: type = where_expr [concrete = constants.%A_where.type.23b] { // CHECK:STDOUT: requirement_base_facet_type %A.ref // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc10_36 // CHECK:STDOUT: } -// CHECK:STDOUT: %.Self.loc10_42: %A.type = symbolic_binding .Self [symbolic_self = constants.%.Self.357] -// CHECK:STDOUT: %.Self.ref.loc10_48: %A.type = name_ref .Self, %.Self.loc10_42 [symbolic_self = constants.%.Self.357] +// CHECK:STDOUT: %.Self.loc10_42: %A.type = symbolic_binding .Self [symbolic_self = constants.%.Self.dad] +// CHECK:STDOUT: %.Self.ref.loc10_48: %A.type = name_ref .Self, %.Self.loc10_42 [symbolic_self = constants.%.Self.dad] // CHECK:STDOUT: %.Self.as_type.loc10_48: type = facet_access_type %.Self.ref.loc10_48 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_48: type = converted %.Self.ref.loc10_48, %.Self.as_type.loc10_48 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %C.ref: %A.assoc_type = name_ref C, @C.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access constants.%A.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.loc10_54.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc10_54.2: type = converted %.loc10_54.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc10_42.2: type = where_expr [concrete = constants.%A_where.type.ef9] { +// CHECK:STDOUT: %.loc10_42.2: type = where_expr [concrete = constants.%A_where.type.879] { // CHECK:STDOUT: requirement_base_facet_type %.loc10_25 // CHECK:STDOUT: requirement_rewrite %impl.elem1, %.loc10_54.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %D.loc10_19.2: %A_where.type.ef9 = symbolic_binding D, 0 [symbolic = %D.loc10_19.1 (constants.%D)] +// CHECK:STDOUT: %D.loc10_19.2: %A_where.type.879 = symbolic_binding D, 0 [symbolic = %D.loc10_19.1 (constants.%D)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @NestedRewrite(%D.loc10_19.2: %A_where.type.ef9) { -// CHECK:STDOUT: %D.loc10_19.1: %A_where.type.ef9 = symbolic_binding D, 0 [symbolic = %D.loc10_19.1 (constants.%D)] +// CHECK:STDOUT: generic fn @NestedRewrite(%D.loc10_19.2: %A_where.type.879) { +// CHECK:STDOUT: %D.loc10_19.1: %A_where.type.879 = symbolic_binding D, 0 [symbolic = %D.loc10_19.1 (constants.%D)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -353,14 +353,14 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %assoc0: %E.assoc_type = assoc_entity element0, @E.WithSelf.%F [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.dc5: %E.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.dc5 [symbolic_self] -// CHECK:STDOUT: %E.lookup_impl_witness: = lookup_impl_witness %.Self.dc5, @E [symbolic_self] +// CHECK:STDOUT: %.Self.2bc: %E.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.2bc [symbolic_self] +// CHECK:STDOUT: %E.lookup_impl_witness: = lookup_impl_witness %.Self.2bc, @E [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %E.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %E_where.type: type = facet_type <@E where %impl.elem0 = %i32> [concrete] -// CHECK:STDOUT: %pattern_type.ed6: type = pattern_type %E_where.type [concrete] +// CHECK:STDOUT: %pattern_type.97c: type = pattern_type %E_where.type [concrete] // CHECK:STDOUT: %G: %E_where.type = symbolic_binding G, 0 [symbolic] // CHECK:STDOUT: %OneRewrite.type: type = fn_type @OneRewrite [concrete] // CHECK:STDOUT: %OneRewrite: %OneRewrite.type = struct_value () [concrete] @@ -368,18 +368,18 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %RepeatedRewrite.type: type = fn_type @RepeatedRewrite [concrete] // CHECK:STDOUT: %RepeatedRewrite: %RepeatedRewrite.type = struct_value () [concrete] // CHECK:STDOUT: %I: %E_where.type = symbolic_binding I, 0 [symbolic] -// CHECK:STDOUT: %OneRewrite.specific_fn.176ca5.2: = specific_function %OneRewrite, @OneRewrite(%I) [symbolic] +// CHECK:STDOUT: %OneRewrite.specific_fn.324e27.2: = specific_function %OneRewrite, @OneRewrite(%I) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %OneRewrite.decl: %OneRewrite.type = fn_decl @OneRewrite [concrete = constants.%OneRewrite] { -// CHECK:STDOUT: %G.patt: %pattern_type.ed6 = symbolic_binding_pattern G, 0 [concrete] +// CHECK:STDOUT: %G.patt: %pattern_type.97c = symbolic_binding_pattern G, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_28.1: type = splice_block %.loc9_28.2 [concrete = constants.%E_where.type] { // CHECK:STDOUT: %.Self.loc9_23: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %E.ref: type = name_ref E, file.%E.decl [concrete = constants.%E.type] -// CHECK:STDOUT: %.Self.loc9_28: %E.type = symbolic_binding .Self [symbolic_self = constants.%.Self.dc5] -// CHECK:STDOUT: %.Self.ref: %E.type = name_ref .Self, %.Self.loc9_28 [symbolic_self = constants.%.Self.dc5] +// CHECK:STDOUT: %.Self.loc9_28: %E.type = symbolic_binding .Self [symbolic_self = constants.%.Self.2bc] +// CHECK:STDOUT: %.Self.ref: %E.type = name_ref .Self, %.Self.loc9_28 [symbolic_self = constants.%.Self.2bc] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_34: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %F.ref: %E.assoc_type = name_ref F, @F.%assoc0 [concrete = constants.%assoc0] @@ -393,19 +393,19 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %G.loc9_23.2: %E_where.type = symbolic_binding G, 0 [symbolic = %G.loc9_23.1 (constants.%G)] // CHECK:STDOUT: } // CHECK:STDOUT: %RepeatedRewrite.decl: %RepeatedRewrite.type = fn_decl @RepeatedRewrite [concrete = constants.%RepeatedRewrite] { -// CHECK:STDOUT: %H.patt: %pattern_type.ed6 = symbolic_binding_pattern H, 0 [concrete] +// CHECK:STDOUT: %H.patt: %pattern_type.97c = symbolic_binding_pattern H, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_26.1: type = splice_block %.loc11_26.2 [concrete = constants.%E_where.type] { // CHECK:STDOUT: %.Self.loc11_21: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %E.ref: type = name_ref E, file.%E.decl [concrete = constants.%E.type] -// CHECK:STDOUT: %.Self.loc11_26: %E.type = symbolic_binding .Self [symbolic_self = constants.%.Self.dc5] -// CHECK:STDOUT: %.Self.ref.loc11_32: %E.type = name_ref .Self, %.Self.loc11_26 [symbolic_self = constants.%.Self.dc5] +// CHECK:STDOUT: %.Self.loc11_26: %E.type = symbolic_binding .Self [symbolic_self = constants.%.Self.2bc] +// CHECK:STDOUT: %.Self.ref.loc11_32: %E.type = name_ref .Self, %.Self.loc11_26 [symbolic_self = constants.%.Self.2bc] // CHECK:STDOUT: %.Self.as_type.loc11_32: type = facet_access_type %.Self.ref.loc11_32 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc11_32: type = converted %.Self.ref.loc11_32, %.Self.as_type.loc11_32 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %F.ref.loc11_32: %E.assoc_type = name_ref F, @F.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc11_32: type = impl_witness_access constants.%E.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %i32.loc11_37: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %.Self.ref.loc11_45: %E.type = name_ref .Self, %.Self.loc11_26 [symbolic_self = constants.%.Self.dc5] +// CHECK:STDOUT: %.Self.ref.loc11_45: %E.type = name_ref .Self, %.Self.loc11_26 [symbolic_self = constants.%.Self.2bc] // CHECK:STDOUT: %.Self.as_type.loc11_45: type = facet_access_type %.Self.ref.loc11_45 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc11_45: type = converted %.Self.ref.loc11_45, %.Self.as_type.loc11_45 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %F.ref.loc11_45: %E.assoc_type = name_ref F, @F.%assoc0 [concrete = constants.%assoc0] @@ -463,7 +463,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %H.loc11_21.1 => constants.%I // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %OneRewrite.specific_fn.loc13_3.2 => constants.%OneRewrite.specific_fn.176ca5.2 +// CHECK:STDOUT: %OneRewrite.specific_fn.loc13_3.2 => constants.%OneRewrite.specific_fn.324e27.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @OneRewrite(constants.%I) { @@ -481,15 +481,15 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %assoc1: %J.assoc_type = assoc_entity element1, @J.WithSelf.%L [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.944: %J.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.944 [symbolic_self] -// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %.Self.944, @J [symbolic_self] +// CHECK:STDOUT: %.Self.d2f: %J.type = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.d2f [symbolic_self] +// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %.Self.d2f, @J [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access %J.lookup_impl_witness, element1 [symbolic_self] // CHECK:STDOUT: %J_where.type: type = facet_type <@J where %impl.elem0 = %empty_tuple.type and %impl.elem1 = bool> [concrete] -// CHECK:STDOUT: %pattern_type.81b: type = pattern_type %J_where.type [concrete] +// CHECK:STDOUT: %pattern_type.026: type = pattern_type %J_where.type [concrete] // CHECK:STDOUT: %M: %J_where.type = symbolic_binding M, 0 [symbolic] // CHECK:STDOUT: %Alphabetical.type: type = fn_type @Alphabetical [concrete] // CHECK:STDOUT: %Alphabetical: %Alphabetical.type = struct_value () [concrete] @@ -500,20 +500,20 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %Alphabetical.decl: %Alphabetical.type = fn_decl @Alphabetical [concrete = constants.%Alphabetical] { -// CHECK:STDOUT: %M.patt: %pattern_type.81b = symbolic_binding_pattern M, 0 [concrete] +// CHECK:STDOUT: %M.patt: %pattern_type.026 = symbolic_binding_pattern M, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10_30.1: type = splice_block %.loc10_30.2 [concrete = constants.%J_where.type] { // CHECK:STDOUT: %.Self.loc10_25: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %.Self.loc10_30: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self.944] -// CHECK:STDOUT: %.Self.ref.loc10_36: %J.type = name_ref .Self, %.Self.loc10_30 [symbolic_self = constants.%.Self.944] +// CHECK:STDOUT: %.Self.loc10_30: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self.d2f] +// CHECK:STDOUT: %.Self.ref.loc10_36: %J.type = name_ref .Self, %.Self.loc10_30 [symbolic_self = constants.%.Self.d2f] // CHECK:STDOUT: %.Self.as_type.loc10_36: type = facet_access_type %.Self.ref.loc10_36 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_36: type = converted %.Self.ref.loc10_36, %.Self.as_type.loc10_36 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %K.ref: %J.assoc_type = name_ref K, @K.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%J.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_42.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc10_42.2: type = converted %.loc10_42.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.Self.ref.loc10_48: %J.type = name_ref .Self, %.Self.loc10_30 [symbolic_self = constants.%.Self.944] +// CHECK:STDOUT: %.Self.ref.loc10_48: %J.type = name_ref .Self, %.Self.loc10_30 [symbolic_self = constants.%.Self.d2f] // CHECK:STDOUT: %.Self.as_type.loc10_48: type = facet_access_type %.Self.ref.loc10_48 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_48: type = converted %.Self.ref.loc10_48, %.Self.as_type.loc10_48 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %L.ref: %J.assoc_type = name_ref L, @L.%assoc1 [concrete = constants.%assoc1] @@ -528,19 +528,19 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %M.loc10_25.2: %J_where.type = symbolic_binding M, 0 [symbolic = %M.loc10_25.1 (constants.%M)] // CHECK:STDOUT: } // CHECK:STDOUT: %Reversed.decl: %Reversed.type = fn_decl @Reversed [concrete = constants.%Reversed] { -// CHECK:STDOUT: %N.patt: %pattern_type.81b = symbolic_binding_pattern N, 0 [concrete] +// CHECK:STDOUT: %N.patt: %pattern_type.026 = symbolic_binding_pattern N, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc12_19.1: type = splice_block %.loc12_19.2 [concrete = constants.%J_where.type] { // CHECK:STDOUT: %.Self.loc12_14: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %.Self.loc12_19: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self.944] -// CHECK:STDOUT: %.Self.ref.loc12_25: %J.type = name_ref .Self, %.Self.loc12_19 [symbolic_self = constants.%.Self.944] +// CHECK:STDOUT: %.Self.loc12_19: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self.d2f] +// CHECK:STDOUT: %.Self.ref.loc12_25: %J.type = name_ref .Self, %.Self.loc12_19 [symbolic_self = constants.%.Self.d2f] // CHECK:STDOUT: %.Self.as_type.loc12_25: type = facet_access_type %.Self.ref.loc12_25 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc12_25: type = converted %.Self.ref.loc12_25, %.Self.as_type.loc12_25 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %L.ref: %J.assoc_type = name_ref L, @L.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access constants.%J.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.loc12_30: type = type_literal bool [concrete = bool] -// CHECK:STDOUT: %.Self.ref.loc12_39: %J.type = name_ref .Self, %.Self.loc12_19 [symbolic_self = constants.%.Self.944] +// CHECK:STDOUT: %.Self.ref.loc12_39: %J.type = name_ref .Self, %.Self.loc12_19 [symbolic_self = constants.%.Self.d2f] // CHECK:STDOUT: %.Self.as_type.loc12_39: type = facet_access_type %.Self.ref.loc12_39 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc12_39: type = converted %.Self.ref.loc12_39, %.Self.as_type.loc12_39 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %K.ref: %J.assoc_type = name_ref K, @K.%assoc0 [concrete = constants.%assoc0] diff --git a/toolchain/check/testdata/where_expr/non_generic.carbon b/toolchain/check/testdata/where_expr/non_generic.carbon index b075891be158..a622de813acd 100644 --- a/toolchain/check/testdata/where_expr/non_generic.carbon +++ b/toolchain/check/testdata/where_expr/non_generic.carbon @@ -30,15 +30,15 @@ fn NotGenericF(unused U: I where .T == i32) {} // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where TODO> [concrete] -// CHECK:STDOUT: %pattern_type.616: type = pattern_type %I_where.type [concrete] +// CHECK:STDOUT: %pattern_type.603: type = pattern_type %I_where.type [concrete] // CHECK:STDOUT: %NotGenericF.type: type = fn_type @NotGenericF [concrete] // CHECK:STDOUT: %NotGenericF: %NotGenericF.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %NotGenericF.decl: %NotGenericF.type = fn_decl @NotGenericF [concrete = constants.%NotGenericF] { -// CHECK:STDOUT: %U.param_patt: %pattern_type.616 = value_param_pattern [concrete] -// CHECK:STDOUT: %U.patt: %pattern_type.616 = at_binding_pattern U, %U.param_patt [concrete] +// CHECK:STDOUT: %U.param_patt: %pattern_type.603 = value_param_pattern [concrete] +// CHECK:STDOUT: %U.patt: %pattern_type.603 = at_binding_pattern U, %U.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.param: %I_where.type = value_param call_param0 // CHECK:STDOUT: %.loc17_28.1: type = splice_block %.loc17_28.2 [concrete = constants.%I_where.type] { diff --git a/toolchain/driver/testdata/compile/optimize/optimize_debug.carbon b/toolchain/driver/testdata/compile/optimize/optimize_debug.carbon index 3fb93541df5e..33ec72d5bcd7 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_debug.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_debug.carbon @@ -84,7 +84,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } @@ -120,7 +120,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !22 = !DILocation(line: 18, column: 9, scope: !16) // CHECK:STDOUT: !23 = !DILocation(line: 19, column: 5, scope: !16) // CHECK:STDOUT: !24 = !DILocation(line: 306, column: 3, scope: !25, inlinedAt: !32) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.07875fab836259ed.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17", scope: null, file: !26, line: 306, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.6f9e8c1abf8bb3ea.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661", scope: null, file: !26, line: 306, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) // CHECK:STDOUT: !26 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") // CHECK:STDOUT: !27 = !DISubroutineType(types: !28) // CHECK:STDOUT: !28 = !{null, !7, !7} @@ -136,7 +136,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !38 = distinct !DILocation(line: 20, column: 5, scope: !16) // CHECK:STDOUT: !39 = !DILocation(line: 18, column: 10, scope: !16) // CHECK:STDOUT: !40 = !DILocation(line: 15, column: 1, scope: !16) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 17, type: !34, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 17, type: !34, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) // CHECK:STDOUT: !42 = !{!43} // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !7) // CHECK:STDOUT: !44 = !DILocation(line: 17, column: 3, scope: !41) diff --git a/toolchain/driver/testdata/compile/optimize/optimize_default.carbon b/toolchain/driver/testdata/compile/optimize/optimize_default.carbon index 696456816c51..fb77b825bd23 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_default.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_default.carbon @@ -84,7 +84,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } @@ -120,7 +120,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !22 = !DILocation(line: 18, column: 9, scope: !16) // CHECK:STDOUT: !23 = !DILocation(line: 19, column: 5, scope: !16) // CHECK:STDOUT: !24 = !DILocation(line: 306, column: 3, scope: !25, inlinedAt: !32) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.07875fab836259ed.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17", scope: null, file: !26, line: 306, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.6f9e8c1abf8bb3ea.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661", scope: null, file: !26, line: 306, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) // CHECK:STDOUT: !26 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") // CHECK:STDOUT: !27 = !DISubroutineType(types: !28) // CHECK:STDOUT: !28 = !{null, !7, !7} @@ -136,7 +136,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !38 = distinct !DILocation(line: 20, column: 5, scope: !16) // CHECK:STDOUT: !39 = !DILocation(line: 18, column: 10, scope: !16) // CHECK:STDOUT: !40 = !DILocation(line: 15, column: 1, scope: !16) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 17, type: !34, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 17, type: !34, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) // CHECK:STDOUT: !42 = !{!43} // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !7) // CHECK:STDOUT: !44 = !DILocation(line: 17, column: 3, scope: !41) diff --git a/toolchain/driver/testdata/compile/optimize/optimize_none.carbon b/toolchain/driver/testdata/compile/optimize/optimize_none.carbon index 0f25868b19b1..b9b9ae782986 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_none.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_none.carbon @@ -79,12 +79,12 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: br label %while.cond, !dbg !26 // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %while.cond -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !20 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !20 // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } @@ -94,13 +94,13 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone // CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !34 { -// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.07875fab836259ed.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17"(ptr %self, i32 1), !dbg !38 +// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.6f9e8c1abf8bb3ea.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661"(ptr %self, i32 1), !dbg !38 // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.07875fab836259ed.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17"(ptr %self, i32 %other) #0 !dbg !40 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc"(i32 %other), !dbg !46 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.6f9e8c1abf8bb3ea.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661"(ptr %self, i32 %other) #0 !dbg !40 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47"(i32 %other), !dbg !46 // CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !47 // CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !47 // CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !47 @@ -108,7 +108,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc"(i32 %self) #0 !dbg !48 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47"(i32 %self) #0 !dbg !48 { // CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !53 // CHECK:STDOUT: ret i32 %1, !dbg !54 // CHECK:STDOUT: } @@ -152,7 +152,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !25 = !DILocation(line: 20, column: 5, scope: !14) // CHECK:STDOUT: !26 = !DILocation(line: 18, column: 3, scope: !14) // CHECK:STDOUT: !27 = !DILocation(line: 15, column: 1, scope: !14) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) // CHECK:STDOUT: !29 = !DISubroutineType(types: !30) // CHECK:STDOUT: !30 = !{null, !7} // CHECK:STDOUT: !31 = !{!32} @@ -164,7 +164,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !34, type: !7) // CHECK:STDOUT: !38 = !DILocation(line: 372, column: 5, scope: !34) // CHECK:STDOUT: !39 = !DILocation(line: 370, column: 3, scope: !34) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.07875fab836259ed.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17", scope: null, file: !35, line: 306, type: !41, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !43) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.6f9e8c1abf8bb3ea.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661", scope: null, file: !35, line: 306, type: !41, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !43) // CHECK:STDOUT: !41 = !DISubroutineType(types: !42) // CHECK:STDOUT: !42 = !{null, !7, !7} // CHECK:STDOUT: !43 = !{!44, !45} @@ -172,7 +172,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !45 = !DILocalVariable(arg: 2, scope: !40, type: !7) // CHECK:STDOUT: !46 = !DILocation(line: 4294967295, scope: !40) // CHECK:STDOUT: !47 = !DILocation(line: 306, column: 3, scope: !40) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc", scope: null, file: !35, line: 63, type: !49, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !51) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47", scope: null, file: !35, line: 63, type: !49, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !51) // CHECK:STDOUT: !49 = !DISubroutineType(types: !50) // CHECK:STDOUT: !50 = !{!7, !7} // CHECK:STDOUT: !51 = !{!52} diff --git a/toolchain/driver/testdata/compile/optimize/optimize_size.carbon b/toolchain/driver/testdata/compile/optimize/optimize_size.carbon index 035f36ce31d0..2ea688cdceab 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_size.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_size.carbon @@ -78,12 +78,12 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: br label %while.cond, !dbg !26 // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %while.cond -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !20 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !20 // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: minsize nounwind optsize -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } @@ -93,13 +93,13 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: minsize nounwind optsize // CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !34 { -// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.07875fab836259ed.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17"(ptr %self, i32 1), !dbg !38 +// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.6f9e8c1abf8bb3ea.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661"(ptr %self, i32 1), !dbg !38 // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline minsize nounwind optsize -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.07875fab836259ed.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17"(ptr %self, i32 %other) #2 !dbg !40 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc"(i32 %other), !dbg !46 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.6f9e8c1abf8bb3ea.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661"(ptr %self, i32 %other) #2 !dbg !40 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47"(i32 %other), !dbg !46 // CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !47 // CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !47 // CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !47 @@ -107,7 +107,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: minsize nounwind optsize -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc"(i32 %self) #0 !dbg !48 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47"(i32 %self) #0 !dbg !48 { // CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !53 // CHECK:STDOUT: ret i32 %1, !dbg !54 // CHECK:STDOUT: } @@ -152,7 +152,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !25 = !DILocation(line: 20, column: 5, scope: !14) // CHECK:STDOUT: !26 = !DILocation(line: 18, column: 3, scope: !14) // CHECK:STDOUT: !27 = !DILocation(line: 15, column: 1, scope: !14) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 17, type: !29, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) // CHECK:STDOUT: !29 = !DISubroutineType(types: !30) // CHECK:STDOUT: !30 = !{null, !7} // CHECK:STDOUT: !31 = !{!32} @@ -164,7 +164,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !34, type: !7) // CHECK:STDOUT: !38 = !DILocation(line: 372, column: 5, scope: !34) // CHECK:STDOUT: !39 = !DILocation(line: 370, column: 3, scope: !34) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.07875fab836259ed.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17", scope: null, file: !35, line: 306, type: !41, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !43) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.6f9e8c1abf8bb3ea.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661", scope: null, file: !35, line: 306, type: !41, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !43) // CHECK:STDOUT: !41 = !DISubroutineType(types: !42) // CHECK:STDOUT: !42 = !{null, !7, !7} // CHECK:STDOUT: !43 = !{!44, !45} @@ -172,7 +172,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !45 = !DILocalVariable(arg: 2, scope: !40, type: !7) // CHECK:STDOUT: !46 = !DILocation(line: 4294967295, scope: !40) // CHECK:STDOUT: !47 = !DILocation(line: 306, column: 3, scope: !40) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc", scope: null, file: !35, line: 63, type: !49, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !51) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47", scope: null, file: !35, line: 63, type: !49, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !51) // CHECK:STDOUT: !49 = !DISubroutineType(types: !50) // CHECK:STDOUT: !50 = !{!7, !7} // CHECK:STDOUT: !51 = !{!52} diff --git a/toolchain/driver/testdata/compile/optimize/optimize_speed.carbon b/toolchain/driver/testdata/compile/optimize/optimize_speed.carbon index b6ed3bafc2aa..47f155e33959 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_speed.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_speed.carbon @@ -100,7 +100,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !43 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) local_unnamed_addr #0 !dbg !43 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } @@ -135,7 +135,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !16, type: !19) // CHECK:STDOUT: !22 = !DILocation(line: 18, column: 9, scope: !16) // CHECK:STDOUT: !23 = !DILocation(line: 306, column: 3, scope: !24, inlinedAt: !31) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.07875fab836259ed.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17", scope: null, file: !25, line: 306, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.6f9e8c1abf8bb3ea.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661", scope: null, file: !25, line: 306, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) // CHECK:STDOUT: !25 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") // CHECK:STDOUT: !26 = !DISubroutineType(types: !27) // CHECK:STDOUT: !27 = !{null, !7, !7} @@ -154,7 +154,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !40 = !{!"llvm.loop.isvectorized", i32 1} // CHECK:STDOUT: !41 = !{!"llvm.loop.unroll.runtime.disable"} // CHECK:STDOUT: !42 = !DILocation(line: 15, column: 1, scope: !16) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 17, type: !33, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !44) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 17, type: !33, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !44) // CHECK:STDOUT: !44 = !{!45} // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !7) // CHECK:STDOUT: !46 = !DILocation(line: 17, column: 3, scope: !43) diff --git a/toolchain/lower/testdata/array/array_in_place.carbon b/toolchain/lower/testdata/array/array_in_place.carbon index 778a6a79cf63..dde3db936297 100644 --- a/toolchain/lower/testdata/array/array_in_place.carbon +++ b/toolchain/lower/testdata/array/array_in_place.carbon @@ -30,24 +30,24 @@ fn G() { // CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_47.6.array.index), !dbg !9 // CHECK:STDOUT: %.loc16_47.5.array.index = getelementptr inbounds [2 x { i32, i32, i32 }], ptr %_.var, i32 0, i64 1, !dbg !8 // CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_47.5.array.index), !dbg !10 -// CHECK:STDOUT: call void @"_COp.12a503238908bcf1:core.Destroy.Core"(ptr %_.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.50f28ea90d1c1a11:core.Destroy.Core"(ptr %_.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !12 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d52e974a95b4c7a0:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // 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.12a503238908bcf1:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.50f28ea90d1c1a11:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } @@ -73,21 +73,21 @@ fn G() { // CHECK:STDOUT: !9 = !DILocation(line: 16, column: 39, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 16, column: 44, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) // CHECK:STDOUT: !13 = !DISubroutineType(types: !14) // CHECK:STDOUT: !14 = !{null, !15} // CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !16 = !{!17} // CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) // CHECK:STDOUT: !18 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d52e974a95b4c7a0:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5784487ae90e2771:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !20 = !DISubroutineType(types: !21) // CHECK:STDOUT: !21 = !{null, !22} // CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) // CHECK:STDOUT: !25 = !DILocation(line: 16, column: 3, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.12a503238908bcf1:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.50f28ea90d1c1a11:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) // CHECK:STDOUT: !27 = !{!28} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !22) // CHECK:STDOUT: !29 = !DILocation(line: 16, column: 3, scope: !26) diff --git a/toolchain/lower/testdata/array/assign_return_value.carbon b/toolchain/lower/testdata/array/assign_return_value.carbon index 269efc8ee2eb..89134185ad2c 100644 --- a/toolchain/lower/testdata/array/assign_return_value.carbon +++ b/toolchain/lower/testdata/array/assign_return_value.carbon @@ -19,14 +19,14 @@ fn Run() { // CHECK:STDOUT: ; ModuleID = 'assign_return_value.carbon' // CHECK:STDOUT: source_filename = "assign_return_value.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @tuple.d4e.loc13_39 = internal constant { i32, i32 } { i32 12, i32 24 } +// CHECK:STDOUT: @tuple.1cd.loc13_39 = internal constant { i32, i32 } { i32 12, i32 24 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !8 // CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @tuple.d4e.loc13_39, i64 8, i1 false), !dbg !9 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @tuple.1cd.loc13_39, i64 8, i1 false), !dbg !9 // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -46,25 +46,25 @@ fn Run() { // CHECK:STDOUT: %.loc16_28.6 = load i32, ptr %tuple.elem1.tuple.elem, align 4, !dbg !15 // CHECK:STDOUT: %.loc16_28.7.array.index = getelementptr inbounds [2 x i32], ptr %_.var, i32 0, i64 1, !dbg !15 // CHECK:STDOUT: store i32 %.loc16_28.6, ptr %.loc16_28.7.array.index, align 4, !dbg !15 -// CHECK:STDOUT: call void @"_COp.11d8dd9278293aa3:core.Destroy.Core"(ptr %.loc16_28.1.temp), !dbg !15 -// CHECK:STDOUT: call void @"_COp.f58d330ca5a9dabc:core.Destroy.Core"(ptr %_.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %.loc16_28.1.temp), !dbg !15 +// CHECK:STDOUT: call void @"_COp.a830cda2fcf179ac:core.Destroy.Core"(ptr %_.var), !dbg !14 // CHECK:STDOUT: ret i32 0, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !17 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.11d8dd9278293aa3:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %self) #0 !dbg !23 { // 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.f58d330ca5a9dabc:core.Destroy.Core"(ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.a830cda2fcf179ac:core.Destroy.Core"(ptr %self) #0 !dbg !29 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } @@ -101,19 +101,19 @@ fn Run() { // CHECK:STDOUT: !14 = !DILocation(line: 16, column: 3, scope: !10) // CHECK:STDOUT: !15 = !DILocation(line: 16, column: 26, scope: !10) // CHECK:STDOUT: !16 = !DILocation(line: 15, column: 1, scope: !10) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 16, type: !18, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 16, type: !18, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) // CHECK:STDOUT: !18 = !DISubroutineType(types: !19) // CHECK:STDOUT: !19 = !{null, !13} // CHECK:STDOUT: !20 = !{!21} // CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !17, type: !13) // CHECK:STDOUT: !22 = !DILocation(line: 16, column: 26, scope: !17) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.11d8dd9278293aa3:core.Destroy.Core", scope: null, file: !3, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eff30dc40f4a53d2:core.Destroy.Core", scope: null, file: !3, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) // CHECK:STDOUT: !24 = !DISubroutineType(types: !25) // CHECK:STDOUT: !25 = !{null, !7} // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !23, type: !7) // CHECK:STDOUT: !28 = !DILocation(line: 16, column: 26, scope: !23) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58d330ca5a9dabc:core.Destroy.Core", scope: null, file: !3, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !30) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a830cda2fcf179ac:core.Destroy.Core", scope: null, file: !3, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !30) // CHECK:STDOUT: !30 = !{!31} // CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !7) // CHECK:STDOUT: !32 = !DILocation(line: 16, column: 3, scope: !29) diff --git a/toolchain/lower/testdata/array/base.carbon b/toolchain/lower/testdata/array/base.carbon index 3a6345ea6b34..65b6dd2b6bb3 100644 --- a/toolchain/lower/testdata/array/base.carbon +++ b/toolchain/lower/testdata/array/base.carbon @@ -21,10 +21,10 @@ fn Run() { // CHECK:STDOUT: ; ModuleID = 'base.carbon' // CHECK:STDOUT: source_filename = "base.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @array.69a.loc14_3 = internal constant [1 x i32] [i32 1] -// CHECK:STDOUT: @array.30f.loc15_3 = internal constant [2 x double] [double 1.110000e+01, double 2.200000e+00] +// CHECK:STDOUT: @array.a00.loc14_3 = internal constant [1 x i32] [i32 1] +// CHECK:STDOUT: @array.541.loc15_3 = internal constant [2 x double] [double 1.110000e+01, double 2.200000e+00] // CHECK:STDOUT: @array.1cb.loc16_3 = internal constant [5 x {}] zeroinitializer -// CHECK:STDOUT: @tuple.282.loc17_3 = internal constant { i32, i32, i32 } { i32 1, i32 2, i32 3 } +// CHECK:STDOUT: @tuple.479.loc17_3 = internal constant { i32, i32, i32 } { i32 1, i32 2, i32 3 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @main() #0 !dbg !4 { @@ -36,11 +36,11 @@ fn Run() { // CHECK:STDOUT: %_.var.loc18 = alloca [3 x i32], align 4, !dbg !12 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc14), !dbg !8 // CHECK:STDOUT: %.loc14_29.3.array.index = getelementptr inbounds [1 x i32], ptr %_.var.loc14, i32 0, i64 0, !dbg !13 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %_.var.loc14, ptr align 4 @array.69a.loc14_3, i64 4, i1 false), !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %_.var.loc14, ptr align 4 @array.a00.loc14_3, i64 4, i1 false), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc15), !dbg !9 // CHECK:STDOUT: %.loc15_37.3.array.index = getelementptr inbounds [2 x double], ptr %_.var.loc15, i32 0, i64 0, !dbg !14 // CHECK:STDOUT: %.loc15_37.6.array.index = getelementptr inbounds [2 x double], ptr %_.var.loc15, i32 0, i64 1, !dbg !14 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc15, ptr align 8 @array.30f.loc15_3, i64 16, i1 false), !dbg !9 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc15, ptr align 8 @array.541.loc15_3, i64 16, i1 false), !dbg !9 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !10 // CHECK:STDOUT: %.loc16_45.2.array.index = getelementptr inbounds [5 x {}], ptr %_.var.loc16, i32 0, i64 0, !dbg !15 // CHECK:STDOUT: %.loc16_45.5.array.index = getelementptr inbounds [5 x {}], ptr %_.var.loc16, i32 0, i64 1, !dbg !15 @@ -52,7 +52,7 @@ fn Run() { // CHECK:STDOUT: %tuple.elem0.loc17.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %d.var, i32 0, i32 0, !dbg !16 // CHECK:STDOUT: %tuple.elem1.loc17.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %d.var, i32 0, i32 1, !dbg !16 // CHECK:STDOUT: %tuple.elem2.loc17.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %d.var, i32 0, i32 2, !dbg !16 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %d.var, ptr align 4 @tuple.282.loc17_3, i64 12, i1 false), !dbg !11 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %d.var, ptr align 4 @tuple.479.loc17_3, i64 12, i1 false), !dbg !11 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc18), !dbg !12 // CHECK:STDOUT: %tuple.elem0.loc18.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %d.var, i32 0, i32 0, !dbg !17 // CHECK:STDOUT: %.loc18_26.1 = load i32, ptr %tuple.elem0.loc18.tuple.elem, align 4, !dbg !17 @@ -66,28 +66,28 @@ fn Run() { // CHECK:STDOUT: %.loc18_26.7 = load i32, ptr %tuple.elem2.loc18.tuple.elem, align 4, !dbg !17 // CHECK:STDOUT: %.loc18_26.8.array.index = getelementptr inbounds [3 x i32], ptr %_.var.loc18, i32 0, i64 2, !dbg !17 // CHECK:STDOUT: store i32 %.loc18_26.7, ptr %.loc18_26.8.array.index, align 4, !dbg !17 -// CHECK:STDOUT: call void @"_COp.56bbd9491002a1aa:core.Destroy.Core"(ptr %_.var.loc18), !dbg !12 -// CHECK:STDOUT: call void @"_COp.d52e974a95b4c7a0:core.Destroy.Core"(ptr %d.var), !dbg !11 +// CHECK:STDOUT: call void @"_COp.412b5e0eb082e888:core.Destroy.Core"(ptr %_.var.loc18), !dbg !12 +// CHECK:STDOUT: call void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %d.var), !dbg !11 // CHECK:STDOUT: call void @"_COp.fd2b1e64e898d326:core.Destroy.Core"(ptr %_.var.loc16), !dbg !10 -// CHECK:STDOUT: call void @"_COp.dd59bb293ac18dc4:core.Destroy.Core"(ptr %_.var.loc15), !dbg !9 -// CHECK:STDOUT: call void @"_COp.43e615b32eb0f320:core.Destroy.Core"(ptr %_.var.loc14), !dbg !8 +// CHECK:STDOUT: call void @"_COp.deb57d70fc43a64e:core.Destroy.Core"(ptr %_.var.loc15), !dbg !9 +// CHECK:STDOUT: call void @"_COp.de24b55dde9ac900:core.Destroy.Core"(ptr %_.var.loc14), !dbg !8 // CHECK:STDOUT: ret i32 0, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // 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.56bbd9491002a1aa:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.412b5e0eb082e888:core.Destroy.Core"(ptr %self) #0 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d52e974a95b4c7a0:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } @@ -99,19 +99,19 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // 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.dd59bb293ac18dc4:core.Destroy.Core"(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define weak_odr void @"_COp.deb57d70fc43a64e:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // 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.43e615b32eb0f320:core.Destroy.Core"(ptr %self) #0 !dbg !48 { +// CHECK:STDOUT: define weak_odr void @"_COp.de24b55dde9ac900:core.Destroy.Core"(ptr %self) #0 !dbg !48 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } @@ -151,20 +151,20 @@ fn Run() { // CHECK:STDOUT: !16 = !DILocation(line: 17, column: 28, scope: !4) // CHECK:STDOUT: !17 = !DILocation(line: 18, column: 26, scope: !4) // CHECK:STDOUT: !18 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 18, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 18, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) // CHECK:STDOUT: !20 = !DISubroutineType(types: !21) // CHECK:STDOUT: !21 = !{null, !7} // CHECK:STDOUT: !22 = !{!23} // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !19, type: !7) // CHECK:STDOUT: !24 = !DILocation(line: 18, column: 3, scope: !19) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.56bbd9491002a1aa:core.Destroy.Core", scope: null, file: !3, line: 18, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.412b5e0eb082e888:core.Destroy.Core", scope: null, file: !3, line: 18, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) // CHECK:STDOUT: !26 = !DISubroutineType(types: !27) // CHECK:STDOUT: !27 = !{null, !28} // CHECK:STDOUT: !28 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !29 = !{!30} // CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !25, type: !28) // CHECK:STDOUT: !31 = !DILocation(line: 18, column: 3, scope: !25) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d52e974a95b4c7a0:core.Destroy.Core", scope: null, file: !3, line: 17, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !33) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5784487ae90e2771:core.Destroy.Core", scope: null, file: !3, line: 17, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !33) // CHECK:STDOUT: !33 = !{!34} // CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !28) // CHECK:STDOUT: !35 = !DILocation(line: 17, column: 3, scope: !32) @@ -172,15 +172,15 @@ fn Run() { // CHECK:STDOUT: !37 = !{!38} // CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !36, type: !28) // CHECK:STDOUT: !39 = !DILocation(line: 16, column: 3, scope: !36) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e4fc30ecea9aa7e:core.Destroy.Core", scope: null, file: !3, line: 15, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !41) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.30d8007fdcc57f83:core.Destroy.Core", scope: null, file: !3, line: 15, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !41) // CHECK:STDOUT: !41 = !{!42} // CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !40, type: !28) // CHECK:STDOUT: !43 = !DILocation(line: 15, column: 3, scope: !40) -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dd59bb293ac18dc4:core.Destroy.Core", scope: null, file: !3, line: 15, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !45) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.deb57d70fc43a64e:core.Destroy.Core", scope: null, file: !3, line: 15, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !45) // CHECK:STDOUT: !45 = !{!46} // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !44, type: !28) // CHECK:STDOUT: !47 = !DILocation(line: 15, column: 3, scope: !44) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.43e615b32eb0f320:core.Destroy.Core", scope: null, file: !3, line: 14, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !49) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.de24b55dde9ac900:core.Destroy.Core", scope: null, file: !3, line: 14, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !49) // CHECK:STDOUT: !49 = !{!50} // CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !48, type: !28) // CHECK:STDOUT: !51 = !DILocation(line: 14, column: 3, scope: !48) diff --git a/toolchain/lower/testdata/array/function_param.carbon b/toolchain/lower/testdata/array/function_param.carbon index 24f6108ac354..c21bb211130a 100644 --- a/toolchain/lower/testdata/array/function_param.carbon +++ b/toolchain/lower/testdata/array/function_param.carbon @@ -41,18 +41,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 !17 // CHECK:STDOUT: %.loc18_20.10.array.index = getelementptr inbounds [3 x i32], ptr %.loc18_20.3.temp, i32 0, i64 2, !dbg !17 // CHECK:STDOUT: %F.call = call i32 @_CF.Main(ptr @array.loc18_20.15, i32 1), !dbg !18 -// CHECK:STDOUT: call void @"_COp.56bbd9491002a1aa:core.Destroy.Core"(ptr @array), !dbg !17 +// CHECK:STDOUT: call void @"_COp.412b5e0eb082e888:core.Destroy.Core"(ptr @array), !dbg !17 // CHECK:STDOUT: ret i32 %F.call, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !20 { // 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.56bbd9491002a1aa:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.412b5e0eb082e888:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } @@ -86,13 +86,13 @@ fn G() -> i32 { // CHECK:STDOUT: !17 = !DILocation(line: 18, column: 12, scope: !14) // CHECK:STDOUT: !18 = !DILocation(line: 18, column: 10, scope: !14) // CHECK:STDOUT: !19 = !DILocation(line: 18, column: 3, scope: !14) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 18, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 18, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !21 = !DISubroutineType(types: !22) // CHECK:STDOUT: !22 = !{null, !7} // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !20, type: !7) // CHECK:STDOUT: !25 = !DILocation(line: 18, column: 12, scope: !20) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.56bbd9491002a1aa:core.Destroy.Core", scope: null, file: !3, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.412b5e0eb082e888:core.Destroy.Core", scope: null, file: !3, line: 18, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) // CHECK:STDOUT: !27 = !DISubroutineType(types: !28) // CHECK:STDOUT: !28 = !{null, !8} // CHECK:STDOUT: !29 = !{!30} diff --git a/toolchain/lower/testdata/array/iterate.carbon b/toolchain/lower/testdata/array/iterate.carbon index efd2969eb4a5..58d0ec4b1c89 100644 --- a/toolchain/lower/testdata/array/iterate.carbon +++ b/toolchain/lower/testdata/array/iterate.carbon @@ -40,61 +40,61 @@ fn F() { // CHECK:STDOUT: %.loc16_43.13.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 3, !dbg !7 // CHECK:STDOUT: %.loc16_43.16.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 4, !dbg !7 // CHECK:STDOUT: %.loc16_43.19.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 5, !dbg !7 -// CHECK:STDOUT: %array_type.as.Iterate.impl.NewCursor.call = call i32 @"_CNewCursor.0afe571147d09361:Iterate.Core.dc501a7f71190c73"(ptr @array.loc16_43.24), !dbg !8 +// CHECK:STDOUT: %array_type.as.Iterate.impl.NewCursor.call = call i32 @"_CNewCursor.e163a239f9fa927c:Iterate.Core.620427d555024fe2"(ptr @array.loc16_43.24), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var), !dbg !8 // CHECK:STDOUT: store i32 %array_type.as.Iterate.impl.NewCursor.call, ptr %var, align 4, !dbg !8 // CHECK:STDOUT: br label %for.next, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.next: ; preds = %for.body, %entry // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_19.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_CNext.0afe571147d09361:Iterate.Core.dc501a7f71190c73"(ptr %.loc17_19.1.temp, ptr @array.loc16_43.24, ptr %var), !dbg !8 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.7ad52311c812a115(ptr %.loc17_19.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_CNext.e163a239f9fa927c:Iterate.Core.620427d555024fe2"(ptr %.loc17_19.1.temp, ptr @array.loc16_43.24, ptr %var), !dbg !8 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.18012f5191ea64dc(ptr %.loc17_19.1.temp), !dbg !8 // CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next -// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.7ad52311c812a115(ptr %.loc17_19.1.temp), !dbg !8 +// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.18012f5191ea64dc(ptr %.loc17_19.1.temp), !dbg !8 // CHECK:STDOUT: call void @_CG.Main(i32 %Optional.Get.call), !dbg !9 // CHECK:STDOUT: br label %for.next, !dbg !10 // CHECK:STDOUT: // CHECK:STDOUT: for.done: ; preds = %for.next -// CHECK:STDOUT: call void @"_COp.d5482613e837c879:core.Destroy.Core"(ptr %.loc17_19.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.1c83906efabe1295:core.Destroy.Core"(ptr @array), !dbg !7 +// CHECK:STDOUT: call void @"_COp.ab782c7eec490fc7:core.Destroy.Core"(ptr %.loc17_19.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.3a5df7cec745952b:core.Destroy.Core"(ptr @array), !dbg !7 // CHECK:STDOUT: ret void, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !12 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.bc4985fcac159a9a:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.0fc9634857315db2:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6d11ad784a4a1da0:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.69700c1fc1b2744c:core.Destroy.Core"(ptr %self) #0 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.46fe0c91b6e369e1:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.f49c06ba556be406:core.Destroy.Core"(ptr %self) #0 !dbg !30 { // 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.d5482613e837c879:core.Destroy.Core"(ptr %self) #0 !dbg !34 { +// CHECK:STDOUT: define weak_odr void @"_COp.ab782c7eec490fc7:core.Destroy.Core"(ptr %self) #0 !dbg !34 { // 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.1c83906efabe1295:core.Destroy.Core"(ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.3a5df7cec745952b:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } @@ -103,12 +103,12 @@ fn F() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.0afe571147d09361:Iterate.Core.dc501a7f71190c73"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.e163a239f9fa927c:Iterate.Core.620427d555024fe2"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: ret i32 0, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNext.0afe571147d09361:Iterate.Core.dc501a7f71190c73"(ptr sret(<{ i32, i1 }>) %return, ptr %self, ptr %cursor) #0 !dbg !49 { +// CHECK:STDOUT: define linkonce_odr void @"_CNext.e163a239f9fa927c:Iterate.Core.620427d555024fe2"(ptr sret(<{ i32, i1 }>) %return, ptr %self, ptr %cursor) #0 !dbg !49 { // CHECK:STDOUT: %1 = load i32, ptr %cursor, align 4, !dbg !55 // CHECK:STDOUT: %2 = icmp slt i32 %1, 6, !dbg !55 // CHECK:STDOUT: br i1 %2, label %3, label %7, !dbg !56 @@ -119,46 +119,46 @@ fn F() { // CHECK:STDOUT: %5 = sub i32 %4, 1, !dbg !58 // CHECK:STDOUT: %array.index = getelementptr inbounds [6 x i32], ptr %self, i32 0, i32 %5, !dbg !59 // CHECK:STDOUT: %6 = load i32, ptr %array.index, align 4, !dbg !59 -// CHECK:STDOUT: call void @_CSome.Optional.Core.7ad52311c812a115(ptr %return, i32 %6), !dbg !60 +// CHECK:STDOUT: call void @_CSome.Optional.Core.18012f5191ea64dc(ptr %return, i32 %6), !dbg !60 // CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: // CHECK:STDOUT: 7: ; preds = %0 -// CHECK:STDOUT: call void @_CNone.Optional.Core.7ad52311c812a115(ptr %return), !dbg !62 +// CHECK:STDOUT: call void @_CNone.Optional.Core.18012f5191ea64dc(ptr %return), !dbg !62 // CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.7ad52311c812a115(ptr %self) #0 !dbg !64 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.2d6936f0ed82c0eb:OptionalStorage.Core.3f49c03818d8362d"(ptr %self), !dbg !70 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.18012f5191ea64dc(ptr %self) #0 !dbg !64 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.58016a73bff04416"(ptr %self), !dbg !70 // CHECK:STDOUT: ret i1 %1, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.7ad52311c812a115(ptr %self) #0 !dbg !72 { -// CHECK:STDOUT: %1 = call i32 @"_CGet.2d6936f0ed82c0eb:OptionalStorage.Core.3f49c03818d8362d"(ptr %self), !dbg !75 +// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.18012f5191ea64dc(ptr %self) #0 !dbg !72 { +// CHECK:STDOUT: %1 = call i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.58016a73bff04416"(ptr %self), !dbg !75 // CHECK:STDOUT: ret i32 %1, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !77 { -// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.07875fab836259ed.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17"(ptr %self, i32 1), !dbg !81 +// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.6f9e8c1abf8bb3ea.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661"(ptr %self, i32 1), !dbg !81 // CHECK:STDOUT: ret void, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.7ad52311c812a115(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !83 { -// CHECK:STDOUT: call void @"_CSome.2d6936f0ed82c0eb:OptionalStorage.Core.3f49c03818d8362d"(ptr %return, i32 %value), !dbg !88 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.18012f5191ea64dc(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !83 { +// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.58016a73bff04416"(ptr %return, i32 %value), !dbg !88 // CHECK:STDOUT: ret void, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.7ad52311c812a115(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !90 { -// CHECK:STDOUT: call void @"_CNone.2d6936f0ed82c0eb:OptionalStorage.Core.3f49c03818d8362d"(ptr %return), !dbg !93 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.18012f5191ea64dc(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !90 { +// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.58016a73bff04416"(ptr %return), !dbg !93 // CHECK:STDOUT: ret void, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.2d6936f0ed82c0eb:OptionalStorage.Core.3f49c03818d8362d"(ptr %value) #0 !dbg !95 { +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.58016a73bff04416"(ptr %value) #0 !dbg !95 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !98 // CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !98 // CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !98 @@ -166,15 +166,15 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.2d6936f0ed82c0eb:OptionalStorage.Core.3f49c03818d8362d"(ptr %value) #0 !dbg !100 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.58016a73bff04416"(ptr %value) #0 !dbg !100 { // CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !103 // CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !103 // CHECK:STDOUT: ret i32 %1, !dbg !104 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.07875fab836259ed.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17"(ptr %self, i32 %other) #2 !dbg !105 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc"(i32 %other), !dbg !111 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.6f9e8c1abf8bb3ea.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661"(ptr %self, i32 %other) #2 !dbg !105 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47"(i32 %other), !dbg !111 // CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !112 // CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !112 // CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !112 @@ -182,7 +182,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.2d6936f0ed82c0eb:OptionalStorage.Core.3f49c03818d8362d"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !113 { +// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.58016a73bff04416"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !113 { // CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !116 // CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !116 // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !117 @@ -191,14 +191,14 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.2d6936f0ed82c0eb:OptionalStorage.Core.3f49c03818d8362d"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !119 { +// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.58016a73bff04416"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !119 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !120 // CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !120 // CHECK:STDOUT: ret void, !dbg !121 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc"(i32 %self) #0 !dbg !122 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47"(i32 %self) #0 !dbg !122 { // CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !127 // CHECK:STDOUT: ret i32 %1, !dbg !128 // CHECK:STDOUT: } @@ -230,44 +230,44 @@ fn F() { // CHECK:STDOUT: !9 = !DILocation(line: 18, column: 5, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 17, column: 3, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) // CHECK:STDOUT: !13 = !DISubroutineType(types: !14) // CHECK:STDOUT: !14 = !{null, !15} // CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !16 = !{!17} // CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) // CHECK:STDOUT: !18 = !DILocation(line: 17, column: 7, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bc4985fcac159a9a:core.Destroy.Core", scope: null, file: !3, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0fc9634857315db2:core.Destroy.Core", scope: null, file: !3, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) // CHECK:STDOUT: !20 = !{!21} // CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !15) // CHECK:STDOUT: !22 = !DILocation(line: 17, column: 7, scope: !19) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6d11ad784a4a1da0:core.Destroy.Core", scope: null, file: !3, line: 17, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.69700c1fc1b2744c:core.Destroy.Core", scope: null, file: !3, line: 17, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) // CHECK:STDOUT: !24 = !DISubroutineType(types: !25) // CHECK:STDOUT: !25 = !{null, !26} // CHECK:STDOUT: !26 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !27 = !{!28} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !23, type: !26) // CHECK:STDOUT: !29 = !DILocation(line: 17, column: 7, scope: !23) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.46fe0c91b6e369e1:core.Destroy.Core", scope: null, file: !3, line: 17, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f49c06ba556be406:core.Destroy.Core", scope: null, file: !3, line: 17, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !26) // CHECK:STDOUT: !33 = !DILocation(line: 17, column: 7, scope: !30) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d5482613e837c879:core.Destroy.Core", scope: null, file: !3, line: 17, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !35) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ab782c7eec490fc7:core.Destroy.Core", scope: null, file: !3, line: 17, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !35) // CHECK:STDOUT: !35 = !{!36} // CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !26) // CHECK:STDOUT: !37 = !DILocation(line: 17, column: 7, scope: !34) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1c83906efabe1295:core.Destroy.Core", scope: null, file: !3, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !39) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3a5df7cec745952b:core.Destroy.Core", scope: null, file: !3, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !39) // CHECK:STDOUT: !39 = !{!40} // CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !38, type: !26) // CHECK:STDOUT: !41 = !DILocation(line: 16, column: 26, scope: !38) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.0afe571147d09361:Iterate.Core.dc501a7f71190c73", scope: null, file: !43, line: 23, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.e163a239f9fa927c:Iterate.Core.620427d555024fe2", scope: null, file: !43, line: 23, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) // CHECK:STDOUT: !43 = !DIFile(filename: "{{.*}}/prelude/iterate.carbon", directory: "") // CHECK:STDOUT: !44 = !DISubroutineType(types: !45) // CHECK:STDOUT: !45 = !{!15, !26} // CHECK:STDOUT: !46 = !{!47} // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !42, type: !26) // CHECK:STDOUT: !48 = !DILocation(line: 23, column: 46, scope: !42) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.0afe571147d09361:Iterate.Core.dc501a7f71190c73", scope: null, file: !43, line: 24, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !52) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.e163a239f9fa927c:Iterate.Core.620427d555024fe2", scope: null, file: !43, line: 24, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !52) // CHECK:STDOUT: !50 = !DISubroutineType(types: !51) // CHECK:STDOUT: !51 = !{!26, !26, !26} // CHECK:STDOUT: !52 = !{!53, !54} @@ -282,7 +282,7 @@ fn F() { // CHECK:STDOUT: !61 = !DILocation(line: 27, column: 7, scope: !49) // CHECK:STDOUT: !62 = !DILocation(line: 29, column: 14, scope: !49) // CHECK:STDOUT: !63 = !DILocation(line: 29, column: 7, scope: !49) -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.7ad52311c812a115", scope: null, file: !65, line: 36, type: !66, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !68) +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.18012f5191ea64dc", scope: null, file: !65, line: 36, type: !66, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !68) // CHECK:STDOUT: !65 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !66 = !DISubroutineType(types: !67) // CHECK:STDOUT: !67 = !{!26, !26} @@ -290,7 +290,7 @@ fn F() { // CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !64, type: !26) // CHECK:STDOUT: !70 = !DILocation(line: 37, column: 12, scope: !64) // CHECK:STDOUT: !71 = !DILocation(line: 37, column: 5, scope: !64) -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.7ad52311c812a115", scope: null, file: !65, line: 39, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !73) +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.18012f5191ea64dc", scope: null, file: !65, line: 39, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !73) // CHECK:STDOUT: !73 = !{!74} // CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !72, type: !26) // CHECK:STDOUT: !75 = !DILocation(line: 40, column: 12, scope: !72) @@ -301,29 +301,29 @@ fn F() { // CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !77, type: !15) // CHECK:STDOUT: !81 = !DILocation(line: 372, column: 5, scope: !77) // CHECK:STDOUT: !82 = !DILocation(line: 370, column: 3, scope: !77) -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.7ad52311c812a115", scope: null, file: !65, line: 33, type: !84, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !86) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.18012f5191ea64dc", scope: null, file: !65, line: 33, type: !84, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !86) // CHECK:STDOUT: !84 = !DISubroutineType(types: !85) // CHECK:STDOUT: !85 = !{!26, !15} // CHECK:STDOUT: !86 = !{!87} // CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !83, type: !15) // CHECK:STDOUT: !88 = !DILocation(line: 34, column: 12, scope: !83) // CHECK:STDOUT: !89 = !DILocation(line: 34, column: 5, scope: !83) -// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.7ad52311c812a115", scope: null, file: !65, line: 30, type: !91, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.18012f5191ea64dc", scope: null, file: !65, line: 30, type: !91, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !91 = !DISubroutineType(types: !92) // CHECK:STDOUT: !92 = !{!26} // CHECK:STDOUT: !93 = !DILocation(line: 31, column: 12, scope: !90) // CHECK:STDOUT: !94 = !DILocation(line: 31, column: 5, scope: !90) -// CHECK:STDOUT: !95 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.2d6936f0ed82c0eb:OptionalStorage.Core.3f49c03818d8362d", scope: null, file: !65, line: 141, type: !66, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !96) +// CHECK:STDOUT: !95 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.58016a73bff04416", scope: null, file: !65, line: 141, type: !66, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !96) // CHECK:STDOUT: !96 = !{!97} // CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !95, type: !26) // CHECK:STDOUT: !98 = !DILocation(line: 142, column: 12, scope: !95) // CHECK:STDOUT: !99 = !DILocation(line: 142, column: 5, scope: !95) -// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.2d6936f0ed82c0eb:OptionalStorage.Core.3f49c03818d8362d", scope: null, file: !65, line: 144, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !101) +// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.58016a73bff04416", scope: null, file: !65, line: 144, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !101) // CHECK:STDOUT: !101 = !{!102} // CHECK:STDOUT: !102 = !DILocalVariable(arg: 1, scope: !100, type: !26) // CHECK:STDOUT: !103 = !DILocation(line: 145, column: 12, scope: !100) // CHECK:STDOUT: !104 = !DILocation(line: 145, column: 5, scope: !100) -// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.07875fab836259ed.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17", scope: null, file: !78, line: 306, type: !106, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !108) +// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.6f9e8c1abf8bb3ea.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661", scope: null, file: !78, line: 306, type: !106, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !108) // CHECK:STDOUT: !106 = !DISubroutineType(types: !107) // CHECK:STDOUT: !107 = !{null, !15, !15} // CHECK:STDOUT: !108 = !{!109, !110} @@ -331,16 +331,16 @@ fn F() { // CHECK:STDOUT: !110 = !DILocalVariable(arg: 2, scope: !105, type: !15) // CHECK:STDOUT: !111 = !DILocation(line: 4294967295, scope: !105) // CHECK:STDOUT: !112 = !DILocation(line: 306, column: 3, scope: !105) -// CHECK:STDOUT: !113 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.2d6936f0ed82c0eb:OptionalStorage.Core.3f49c03818d8362d", scope: null, file: !65, line: 131, type: !84, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !114) +// CHECK:STDOUT: !113 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.58016a73bff04416", scope: null, file: !65, line: 131, type: !84, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !114) // CHECK:STDOUT: !114 = !{!115} // CHECK:STDOUT: !115 = !DILocalVariable(arg: 1, scope: !113, type: !15) // CHECK:STDOUT: !116 = !DILocation(line: 137, column: 5, scope: !113) // CHECK:STDOUT: !117 = !DILocation(line: 138, column: 5, scope: !113) // CHECK:STDOUT: !118 = !DILocation(line: 139, column: 5, scope: !113) -// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "None", linkageName: "_CNone.2d6936f0ed82c0eb:OptionalStorage.Core.3f49c03818d8362d", scope: null, file: !65, line: 125, type: !91, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.58016a73bff04416", scope: null, file: !65, line: 125, type: !91, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !120 = !DILocation(line: 128, column: 5, scope: !119) // CHECK:STDOUT: !121 = !DILocation(line: 129, column: 5, scope: !119) -// CHECK:STDOUT: !122 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc", scope: null, file: !78, line: 63, type: !123, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !125) +// CHECK:STDOUT: !122 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47", scope: null, file: !78, line: 63, type: !123, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !125) // CHECK:STDOUT: !123 = !DISubroutineType(types: !124) // CHECK:STDOUT: !124 = !{!15, !15} // CHECK:STDOUT: !125 = !{!126} diff --git a/toolchain/lower/testdata/array/layout.carbon b/toolchain/lower/testdata/array/layout.carbon index 3875b6546ef5..a9e163dac19c 100644 --- a/toolchain/lower/testdata/array/layout.carbon +++ b/toolchain/lower/testdata/array/layout.carbon @@ -49,24 +49,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 !12 // CHECK:STDOUT: %.loc12_14.b = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %.loc12_13.array.index, i32 0, i32 1, !dbg !12 // CHECK:STDOUT: call void @_CCheck.Main(ptr %.loc12_14.b), !dbg !13 -// CHECK:STDOUT: call void @"_COp.0154c643da095258:core.Destroy.Core"(ptr %v.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.e9b5f64be248720e:core.Destroy.Core"(ptr %v.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !14 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !15 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !15 { // 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.b5e6b9ba1f3e5e4d:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.262c83348679e0a0:core.Destroy.Core"(ptr %self) #0 !dbg !22 { // 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.0154c643da095258:core.Destroy.Core"(ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.e9b5f64be248720e:core.Destroy.Core"(ptr %self) #0 !dbg !29 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } @@ -95,21 +95,21 @@ var c: array(Core.Int(257), 5) = (1, 2, 3, 4, 5); // CHECK:STDOUT: !12 = !DILocation(line: 12, column: 10, scope: !4) // CHECK:STDOUT: !13 = !DILocation(line: 12, column: 3, scope: !4) // CHECK:STDOUT: !14 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 9, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) +// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 9, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) // CHECK:STDOUT: !16 = !DISubroutineType(types: !17) // CHECK:STDOUT: !17 = !{null, !18} // CHECK:STDOUT: !18 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !19 = !{!20} // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !18) // CHECK:STDOUT: !21 = !DILocation(line: 9, column: 3, scope: !15) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b5e6b9ba1f3e5e4d:core.Destroy.Core", scope: null, file: !3, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.262c83348679e0a0:core.Destroy.Core", scope: null, file: !3, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) // CHECK:STDOUT: !23 = !DISubroutineType(types: !24) // CHECK:STDOUT: !24 = !{null, !25} // CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !22, type: !25) // CHECK:STDOUT: !28 = !DILocation(line: 9, column: 3, scope: !22) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0154c643da095258:core.Destroy.Core", scope: null, file: !3, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !30) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e9b5f64be248720e:core.Destroy.Core", scope: null, file: !3, line: 9, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !30) // CHECK:STDOUT: !30 = !{!31} // CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !25) // CHECK:STDOUT: !32 = !DILocation(line: 9, column: 3, scope: !29) diff --git a/toolchain/lower/testdata/builtins/char.carbon b/toolchain/lower/testdata/builtins/char.carbon index 795822085931..e93519a0fcc7 100644 --- a/toolchain/lower/testdata/builtins/char.carbon +++ b/toolchain/lower/testdata/builtins/char.carbon @@ -29,12 +29,12 @@ fn Example() -> char { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !8 // CHECK:STDOUT: store i8 97, ptr %c.var, align 1, !dbg !8 // CHECK:STDOUT: %.loc6 = load i8, ptr %c.var, align 1, !dbg !9 -// CHECK:STDOUT: call void @"_COp.07425633be25c584:core.Destroy.Core"(ptr %c.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.387a2b9c43474daf:core.Destroy.Core"(ptr %c.var), !dbg !8 // CHECK:STDOUT: ret i8 %.loc6, !dbg !10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.07425633be25c584:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.387a2b9c43474daf:core.Destroy.Core"(ptr %self) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } @@ -59,7 +59,7 @@ fn Example() -> char { // CHECK:STDOUT: !8 = !DILocation(line: 5, column: 3, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 6, column: 10, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.07425633be25c584:core.Destroy.Core", scope: null, file: !3, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.387a2b9c43474daf:core.Destroy.Core", scope: null, file: !3, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !12 = !DISubroutineType(types: !13) // CHECK:STDOUT: !13 = !{null, !7} // CHECK:STDOUT: !14 = !{!15} diff --git a/toolchain/lower/testdata/builtins/cpp.carbon b/toolchain/lower/testdata/builtins/cpp.carbon index 3515f4e37dd4..d8552fc9a333 100644 --- a/toolchain/lower/testdata/builtins/cpp.carbon +++ b/toolchain/lower/testdata/builtins/cpp.carbon @@ -80,19 +80,19 @@ 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 !16 // CHECK:STDOUT: store i64 4, ptr %MakePointerSize.call.init_list.size, align 8, !dbg !16 // CHECK:STDOUT: call void @_CTakePointerSize.Main(ptr %.loc26_47.1.temp), !dbg !19 -// CHECK:STDOUT: call void @"_COp.84dc7ec4d03d72e2:core.Destroy.Core"(ptr @array), !dbg !17 -// CHECK:STDOUT: call void @"_COp.84dc7ec4d03d72e2:core.Destroy.Core"(ptr @array), !dbg !15 +// CHECK:STDOUT: call void @"_COp.8ab5ebc4f407c395:core.Destroy.Core"(ptr @array), !dbg !17 +// CHECK:STDOUT: call void @"_COp.8ab5ebc4f407c395:core.Destroy.Core"(ptr @array), !dbg !15 // CHECK:STDOUT: ret void, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !21 { // 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.84dc7ec4d03d72e2:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.8ab5ebc4f407c395:core.Destroy.Core"(ptr %self) #0 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } @@ -101,7 +101,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.84dc7ec4d03d72e2:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.8ab5ebc4f407c395: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,14 +132,14 @@ fn Test() { // CHECK:STDOUT: !18 = !DILocation(line: 25, column: 3, scope: !11) // CHECK:STDOUT: !19 = !DILocation(line: 26, column: 3, scope: !11) // CHECK:STDOUT: !20 = !DILocation(line: 24, column: 1, scope: !11) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !6, line: 26, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !6, line: 26, type: !22, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) // CHECK:STDOUT: !22 = !DISubroutineType(types: !23) // CHECK:STDOUT: !23 = !{null, !24} // CHECK:STDOUT: !24 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !25 = !{!26} // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !21, type: !24) // CHECK:STDOUT: !27 = !DILocation(line: 26, column: 35, scope: !21) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.84dc7ec4d03d72e2:core.Destroy.Core", scope: null, file: !6, line: 26, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !32) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ab5ebc4f407c395:core.Destroy.Core", scope: null, file: !6, line: 26, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !32) // CHECK:STDOUT: !29 = !DISubroutineType(types: !30) // CHECK:STDOUT: !30 = !{null, !31} // CHECK:STDOUT: !31 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) diff --git a/toolchain/lower/testdata/builtins/maybe_unformed.carbon b/toolchain/lower/testdata/builtins/maybe_unformed.carbon index a4b7de567e8d..3d7a5d80594d 100644 --- a/toolchain/lower/testdata/builtins/maybe_unformed.carbon +++ b/toolchain/lower/testdata/builtins/maybe_unformed.carbon @@ -123,18 +123,18 @@ fn PassAdapterBool() { // CHECK:STDOUT: store i32 %MakeAdapterI32.call, ptr %.loc48_33.1.temp, align 4, !dbg !42 // CHECK:STDOUT: %.loc48_33.3 = load i32, ptr %.loc48_33.1.temp, align 4, !dbg !42 // CHECK:STDOUT: call void @_CTakeAdapterI32.Main(i32 %.loc48_33.3), !dbg !43 -// CHECK:STDOUT: call void @"_COp.e91169768c6f6a50:core.Destroy.Core"(ptr %.loc48_33.1.temp), !dbg !42 +// CHECK:STDOUT: call void @"_COp.37bf4066dfa3831f:core.Destroy.Core"(ptr %.loc48_33.1.temp), !dbg !42 // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // 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.e91169768c6f6a50:core.Destroy.Core"(ptr %self) #0 !dbg !49 { +// CHECK:STDOUT: define weak_odr void @"_COp.37bf4066dfa3831f:core.Destroy.Core"(ptr %self) #0 !dbg !49 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } @@ -154,12 +154,12 @@ fn PassAdapterBool() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc55_35.1.temp), !dbg !58 // CHECK:STDOUT: call void @_CMakeAdapterBool.Main(ptr %.loc55_35.1.temp), !dbg !58 // CHECK:STDOUT: call void @_CTakeAdapterBool.Main(ptr %.loc55_35.1.temp), !dbg !59 -// CHECK:STDOUT: call void @"_COp.968f5dbb300aa798:core.Destroy.Core"(ptr %.loc55_35.1.temp), !dbg !58 +// CHECK:STDOUT: call void @"_COp.f633bf9c4580207a:core.Destroy.Core"(ptr %.loc55_35.1.temp), !dbg !58 // CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.968f5dbb300aa798:core.Destroy.Core"(ptr %self) #0 !dbg !61 { +// CHECK:STDOUT: define weak_odr void @"_COp.f633bf9c4580207a:core.Destroy.Core"(ptr %self) #0 !dbg !61 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !64 // CHECK:STDOUT: } @@ -221,11 +221,11 @@ fn PassAdapterBool() { // CHECK:STDOUT: !42 = !DILocation(line: 48, column: 18, scope: !41) // CHECK:STDOUT: !43 = !DILocation(line: 48, column: 3, scope: !41) // CHECK:STDOUT: !44 = !DILocation(line: 45, column: 1, scope: !41) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 48, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 48, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) // CHECK:STDOUT: !46 = !{!47} // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !7) // CHECK:STDOUT: !48 = !DILocation(line: 48, column: 18, scope: !45) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e91169768c6f6a50:core.Destroy.Core", scope: null, file: !3, line: 48, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !50) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.37bf4066dfa3831f:core.Destroy.Core", scope: null, file: !3, line: 48, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !50) // CHECK:STDOUT: !50 = !{!51} // CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !7) // CHECK:STDOUT: !52 = !DILocation(line: 48, column: 18, scope: !49) @@ -237,7 +237,7 @@ fn PassAdapterBool() { // CHECK:STDOUT: !58 = !DILocation(line: 55, column: 19, scope: !57) // CHECK:STDOUT: !59 = !DILocation(line: 55, column: 3, scope: !57) // CHECK:STDOUT: !60 = !DILocation(line: 54, column: 1, scope: !57) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.968f5dbb300aa798:core.Destroy.Core", scope: null, file: !3, line: 55, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !62) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f633bf9c4580207a:core.Destroy.Core", scope: null, file: !3, line: 55, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !62) // CHECK:STDOUT: !62 = !{!63} // CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !61, type: !14) // CHECK:STDOUT: !64 = !DILocation(line: 55, column: 19, scope: !61) diff --git a/toolchain/lower/testdata/choice/basic.carbon b/toolchain/lower/testdata/choice/basic.carbon index 9eb9ced9ae78..29dc5cf5ed22 100644 --- a/toolchain/lower/testdata/choice/basic.carbon +++ b/toolchain/lower/testdata/choice/basic.carbon @@ -25,11 +25,11 @@ fn F() { // CHECK:STDOUT: ; ModuleID = 'basic.carbon' // CHECK:STDOUT: source_filename = "basic.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @VehicleType.val.574 = internal constant { i2 } zeroinitializer -// CHECK:STDOUT: @VehicleType.val.2a8 = internal constant { i2 } { i2 1 } -// CHECK:STDOUT: @VehicleType.val.5d5 = internal constant { i2 } { i2 -2 } -// CHECK:STDOUT: @VehicleType.val.2a8.loc15_6.10 = internal constant { i2 } { i2 1 } -// CHECK:STDOUT: @VehicleType.val.574.loc14_7.10 = internal constant { i2 } zeroinitializer +// CHECK:STDOUT: @VehicleType.val.025 = internal constant { i2 } zeroinitializer +// CHECK:STDOUT: @VehicleType.val.a72 = internal constant { i2 } { i2 1 } +// CHECK:STDOUT: @VehicleType.val.471 = internal constant { i2 } { i2 -2 } +// CHECK:STDOUT: @VehicleType.val.a72.loc15_6.10 = internal constant { i2 } { i2 1 } +// CHECK:STDOUT: @VehicleType.val.025.loc14_7.10 = internal constant { i2 } zeroinitializer // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind diff --git a/toolchain/lower/testdata/class/adapt.carbon b/toolchain/lower/testdata/class/adapt.carbon index 041b293ecca9..03ecb14cf388 100644 --- a/toolchain/lower/testdata/class/adapt.carbon +++ b/toolchain/lower/testdata/class/adapt.carbon @@ -93,24 +93,24 @@ fn DoStuff(a: Int) -> Int { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %pa.var), !dbg !24 // CHECK:STDOUT: call void @_CMake.PairAdapter.Main(ptr %pa.var), !dbg !25 // CHECK:STDOUT: %PairAdapter.GetB.call = call i32 @_CGetB.PairAdapter.Main(ptr %pa.var), !dbg !26 -// CHECK:STDOUT: call void @"_COp.37344f3d2ede7709:core.Destroy.Core"(ptr %pa.var), !dbg !24 +// CHECK:STDOUT: call void @"_COp.d8149a936c4ca850:core.Destroy.Core"(ptr %pa.var), !dbg !24 // CHECK:STDOUT: ret i32 %PairAdapter.GetB.call, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !28 { // 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.15b8ed913d10fa21:core.Destroy.Core"(ptr %self) #0 !dbg !34 { +// CHECK:STDOUT: define weak_odr void @"_COp.f30036b66b652106:core.Destroy.Core"(ptr %self) #0 !dbg !34 { // 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.37344f3d2ede7709:core.Destroy.Core"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.d8149a936c4ca850:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } @@ -155,19 +155,19 @@ fn DoStuff(a: Int) -> Int { // CHECK:STDOUT: !25 = !DILocation(line: 27, column: 25, scope: !21) // CHECK:STDOUT: !26 = !DILocation(line: 28, column: 10, scope: !21) // CHECK:STDOUT: !27 = !DILocation(line: 28, column: 3, scope: !21) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 27, type: !29, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 27, type: !29, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) // CHECK:STDOUT: !29 = !DISubroutineType(types: !30) // CHECK:STDOUT: !30 = !{null, !16} // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !28, type: !16) // CHECK:STDOUT: !33 = !DILocation(line: 27, column: 3, scope: !28) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.15b8ed913d10fa21:core.Destroy.Core", scope: null, file: !3, line: 27, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !37) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f30036b66b652106:core.Destroy.Core", scope: null, file: !3, line: 27, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !37) // CHECK:STDOUT: !35 = !DISubroutineType(types: !36) // CHECK:STDOUT: !36 = !{null, !7} // CHECK:STDOUT: !37 = !{!38} // CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !34, type: !7) // CHECK:STDOUT: !39 = !DILocation(line: 27, column: 3, scope: !34) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.37344f3d2ede7709:core.Destroy.Core", scope: null, file: !3, line: 27, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !41) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d8149a936c4ca850:core.Destroy.Core", scope: null, file: !3, line: 27, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !41) // CHECK:STDOUT: !41 = !{!42} // CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !40, type: !7) // CHECK:STDOUT: !43 = !DILocation(line: 27, column: 3, scope: !40) diff --git a/toolchain/lower/testdata/class/basic.carbon b/toolchain/lower/testdata/class/basic.carbon index 5c36b3d3355c..ef31f8c95812 100644 --- a/toolchain/lower/testdata/class/basic.carbon +++ b/toolchain/lower/testdata/class/basic.carbon @@ -35,25 +35,25 @@ fn Run() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !9 // CHECK:STDOUT: call void @_CF.Main(ptr %_.var, ptr %c.var), !dbg !10 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %c.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %_.var), !dbg !9 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %c.var), !dbg !8 // CHECK:STDOUT: ret i32 0, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !12 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.b05163b368263190:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.ea803f2c6cd45773:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // 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.907c496eccf2294c:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self) #0 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } @@ -62,7 +62,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.907c496eccf2294c:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.807eb4f2d3ed7e54:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -83,20 +83,20 @@ fn Run() { // CHECK:STDOUT: !9 = !DILocation(line: 22, column: 3, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 22, column: 14, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 20, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) // CHECK:STDOUT: !13 = !DISubroutineType(types: !14) // CHECK:STDOUT: !14 = !{null, !7} // CHECK:STDOUT: !15 = !{!16} // CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !12, type: !7) // CHECK:STDOUT: !17 = !DILocation(line: 22, column: 3, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b05163b368263190:core.Destroy.Core", scope: null, file: !3, line: 22, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ea803f2c6cd45773:core.Destroy.Core", scope: null, file: !3, line: 22, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) // CHECK:STDOUT: !19 = !DISubroutineType(types: !20) // CHECK:STDOUT: !20 = !{null, !21} // CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !22 = !{!23} // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) // CHECK:STDOUT: !24 = !DILocation(line: 22, column: 3, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.907c496eccf2294c:core.Destroy.Core", scope: null, file: !3, line: 22, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.807eb4f2d3ed7e54:core.Destroy.Core", scope: null, file: !3, line: 22, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !21) // CHECK:STDOUT: !28 = !DILocation(line: 22, column: 3, scope: !25) diff --git a/toolchain/lower/testdata/class/convert.carbon b/toolchain/lower/testdata/class/convert.carbon index d5bd4bf96b86..1fc54aed8a86 100644 --- a/toolchain/lower/testdata/class/convert.carbon +++ b/toolchain/lower/testdata/class/convert.carbon @@ -31,7 +31,7 @@ fn DoIt() { // CHECK:STDOUT: @IntWrapper.val.loc24_3 = internal constant { i32 } { i32 42 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @"_CConvert.IntWrapper.Main:ImplicitAs.5e5386123d4b6287.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @"_CConvert.IntWrapper.Main:ImplicitAs.84588f41d61dafba.Core"(ptr %self) #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc18_48.1.n = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !11 // CHECK:STDOUT: %.loc18_48.2 = load i32, ptr %.loc18_48.1.n, align 4, !dbg !11 @@ -51,26 +51,26 @@ fn DoIt() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %w.var), !dbg !22 // CHECK:STDOUT: %.loc24_31.3.n = getelementptr inbounds nuw { i32 }, ptr %w.var, i32 0, i32 0, !dbg !23 // 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 !22 -// CHECK:STDOUT: %IntWrapper.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.IntWrapper.Main:ImplicitAs.5e5386123d4b6287.Core"(ptr %w.var), !dbg !24 +// CHECK:STDOUT: %IntWrapper.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.IntWrapper.Main:ImplicitAs.84588f41d61dafba.Core"(ptr %w.var), !dbg !24 // CHECK:STDOUT: call void @_CConsume.Main(i32 %IntWrapper.as.ImplicitAs.impl.Convert.call), !dbg !25 -// CHECK:STDOUT: call void @"_COp.98107f2db2a5497b:core.Destroy.Core"(ptr %w.var), !dbg !22 +// CHECK:STDOUT: call void @"_COp.b7000563f5308067:core.Destroy.Core"(ptr %w.var), !dbg !22 // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !27 { // 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.d79e95ade835faa2:core.Destroy.Core"(ptr %self) #0 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp.37a87c905b8e15fc:core.Destroy.Core"(ptr %self) #0 !dbg !31 { // 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.98107f2db2a5497b:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.b7000563f5308067:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } @@ -91,7 +91,7 @@ fn DoIt() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "convert.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.IntWrapper.Main:ImplicitAs.5e5386123d4b6287.Core", scope: null, file: !3, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !9) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.IntWrapper.Main:ImplicitAs.84588f41d61dafba.Core", scope: null, file: !3, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !9) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{!7, !8} // CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) @@ -114,17 +114,17 @@ fn DoIt() { // CHECK:STDOUT: !24 = !DILocation(line: 25, column: 11, scope: !19) // CHECK:STDOUT: !25 = !DILocation(line: 25, column: 3, scope: !19) // CHECK:STDOUT: !26 = !DILocation(line: 23, column: 1, scope: !19) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 24, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 24, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) // CHECK:STDOUT: !28 = !{!29} // CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !7) // CHECK:STDOUT: !30 = !DILocation(line: 24, column: 3, scope: !27) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d79e95ade835faa2:core.Destroy.Core", scope: null, file: !3, line: 24, type: !32, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.37a87c905b8e15fc:core.Destroy.Core", scope: null, file: !3, line: 24, type: !32, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) // CHECK:STDOUT: !32 = !DISubroutineType(types: !33) // CHECK:STDOUT: !33 = !{null, !8} // CHECK:STDOUT: !34 = !{!35} // CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !31, type: !8) // CHECK:STDOUT: !36 = !DILocation(line: 24, column: 3, scope: !31) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.98107f2db2a5497b:core.Destroy.Core", scope: null, file: !3, line: 24, type: !32, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !38) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b7000563f5308067:core.Destroy.Core", scope: null, file: !3, line: 24, type: !32, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !38) // CHECK:STDOUT: !38 = !{!39} // CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !8) // CHECK:STDOUT: !40 = !DILocation(line: 24, column: 3, scope: !37) diff --git a/toolchain/lower/testdata/class/field.carbon b/toolchain/lower/testdata/class/field.carbon index ebdc5a2567f7..0296736e39b0 100644 --- a/toolchain/lower/testdata/class/field.carbon +++ b/toolchain/lower/testdata/class/field.carbon @@ -91,24 +91,24 @@ fn Run() { // CHECK:STDOUT: %.loc16.b = getelementptr inbounds nuw { i32, ptr }, ptr %c.var, i32 0, i32 1, !dbg !19 // CHECK:STDOUT: store ptr %c.var, ptr %.loc16.b, align 8, !dbg !19 // CHECK:STDOUT: %F.call = call i32 @_CF.Main(ptr %c.var), !dbg !20 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %c.var), !dbg !17 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %c.var), !dbg !17 // CHECK:STDOUT: ret i32 %F.call, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !22 { // 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.b05163b368263190:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.ea803f2c6cd45773:core.Destroy.Core"(ptr %self) #0 !dbg !28 { // 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.907c496eccf2294c:core.Destroy.Core"(ptr %self) #0 !dbg !34 { +// CHECK:STDOUT: define weak_odr void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self) #0 !dbg !34 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } @@ -144,19 +144,19 @@ fn Run() { // CHECK:STDOUT: !19 = !DILocation(line: 16, column: 3, scope: !14) // CHECK:STDOUT: !20 = !DILocation(line: 17, column: 10, scope: !14) // CHECK:STDOUT: !21 = !DILocation(line: 17, column: 3, scope: !14) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 14, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 14, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) // CHECK:STDOUT: !23 = !DISubroutineType(types: !24) // CHECK:STDOUT: !24 = !{null, !7} // CHECK:STDOUT: !25 = !{!26} // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !22, type: !7) // CHECK:STDOUT: !27 = !DILocation(line: 14, column: 3, scope: !22) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b05163b368263190:core.Destroy.Core", scope: null, file: !3, line: 14, type: !29, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ea803f2c6cd45773:core.Destroy.Core", scope: null, file: !3, line: 14, type: !29, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) // CHECK:STDOUT: !29 = !DISubroutineType(types: !30) // CHECK:STDOUT: !30 = !{null, !8} // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !28, type: !8) // CHECK:STDOUT: !33 = !DILocation(line: 14, column: 3, scope: !28) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.907c496eccf2294c:core.Destroy.Core", scope: null, file: !3, line: 14, type: !29, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !35) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.807eb4f2d3ed7e54:core.Destroy.Core", scope: null, file: !3, line: 14, type: !29, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !35) // CHECK:STDOUT: !35 = !{!36} // CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !8) // CHECK:STDOUT: !37 = !DILocation(line: 14, column: 3, scope: !34) @@ -176,25 +176,25 @@ fn Run() { // CHECK:STDOUT: store ptr %o.var, ptr %.loc15_33.2.a, align 8, !dbg !10 // CHECK:STDOUT: %.loc15_33.4.b = getelementptr inbounds nuw { ptr, {} }, ptr %_.var, i32 0, i32 1, !dbg !10 // 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 !10 -// CHECK:STDOUT: call void @"_COp.fc9d194b02d4ec74:core.Destroy.Core"(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.f74ad14b43486009:core.Destroy.Core"(ptr %o.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.de39dc1884f85a7d:core.Destroy.Core"(ptr %_.var), !dbg !9 +// CHECK:STDOUT: call void @"_COp.7de30cbaf2d51cc9:core.Destroy.Core"(ptr %o.var), !dbg !8 // CHECK:STDOUT: ret i32 0, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.f74ad14b43486009:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.7de30cbaf2d51cc9:core.Destroy.Core"(ptr %self) #0 !dbg !12 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6cad9ff218049c22:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.43b4849b6b52200b:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.fc9d194b02d4ec74:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.de39dc1884f85a7d:core.Destroy.Core"(ptr %self) #0 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } @@ -226,18 +226,18 @@ fn Run() { // CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 15, column: 16, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 11, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f74ad14b43486009:core.Destroy.Core", scope: null, file: !3, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7de30cbaf2d51cc9:core.Destroy.Core", scope: null, file: !3, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) // CHECK:STDOUT: !13 = !DISubroutineType(types: !14) // CHECK:STDOUT: !14 = !{null, !15} // CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !16 = !{!17} // CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) // CHECK:STDOUT: !18 = !DILocation(line: 15, column: 3, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6cad9ff218049c22:core.Destroy.Core", scope: null, file: !3, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.43b4849b6b52200b:core.Destroy.Core", scope: null, file: !3, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) // CHECK:STDOUT: !20 = !{!21} // CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !15) // CHECK:STDOUT: !22 = !DILocation(line: 15, column: 3, scope: !19) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fc9d194b02d4ec74:core.Destroy.Core", scope: null, file: !3, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.de39dc1884f85a7d:core.Destroy.Core", scope: null, file: !3, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) // CHECK:STDOUT: !24 = !{!25} // CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !23, type: !15) // CHECK:STDOUT: !26 = !DILocation(line: 15, column: 3, scope: !23) @@ -258,37 +258,37 @@ fn Run() { // CHECK:STDOUT: %.loc17_40.4.b = getelementptr inbounds nuw <{ ptr, { i32 } }>, ptr %_.var, i32 0, i32 1, !dbg !10 // CHECK:STDOUT: %.loc17_39.3.v = getelementptr inbounds nuw { i32 }, ptr %.loc17_40.4.b, i32 0, i32 0, !dbg !11 // 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 !10 -// CHECK:STDOUT: call void @"_COp.fc9d194b02d4ec74:core.Destroy.Core"(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.f74ad14b43486009:core.Destroy.Core"(ptr %o.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.de39dc1884f85a7d:core.Destroy.Core"(ptr %_.var), !dbg !9 +// CHECK:STDOUT: call void @"_COp.7de30cbaf2d51cc9:core.Destroy.Core"(ptr %o.var), !dbg !8 // CHECK:STDOUT: ret i32 0, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !13 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.f858c205cd7ead2a:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.61192482fe52095a:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // 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.f74ad14b43486009:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.7de30cbaf2d51cc9:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6cad9ff218049c22:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.43b4849b6b52200b:core.Destroy.Core"(ptr %self) #0 !dbg !30 { // 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.fc9d194b02d4ec74:core.Destroy.Core"(ptr %self) #0 !dbg !34 { +// CHECK:STDOUT: define weak_odr void @"_COp.de39dc1884f85a7d:core.Destroy.Core"(ptr %self) #0 !dbg !34 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } @@ -321,28 +321,28 @@ fn Run() { // CHECK:STDOUT: !10 = !DILocation(line: 17, column: 16, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 17, column: 31, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 17, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 17, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) // CHECK:STDOUT: !14 = !DISubroutineType(types: !15) // CHECK:STDOUT: !15 = !{null, !7} // CHECK:STDOUT: !16 = !{!17} // CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !13, type: !7) // CHECK:STDOUT: !18 = !DILocation(line: 17, column: 3, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f858c205cd7ead2a:core.Destroy.Core", scope: null, file: !3, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.61192482fe52095a:core.Destroy.Core", scope: null, file: !3, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !20 = !DISubroutineType(types: !21) // CHECK:STDOUT: !21 = !{null, !22} // CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) // CHECK:STDOUT: !25 = !DILocation(line: 17, column: 3, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f74ad14b43486009:core.Destroy.Core", scope: null, file: !3, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7de30cbaf2d51cc9:core.Destroy.Core", scope: null, file: !3, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) // CHECK:STDOUT: !27 = !{!28} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !22) // CHECK:STDOUT: !29 = !DILocation(line: 17, column: 3, scope: !26) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6cad9ff218049c22:core.Destroy.Core", scope: null, file: !3, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.43b4849b6b52200b:core.Destroy.Core", scope: null, file: !3, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !22) // CHECK:STDOUT: !33 = !DILocation(line: 17, column: 3, scope: !30) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fc9d194b02d4ec74:core.Destroy.Core", scope: null, file: !3, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !35) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.de39dc1884f85a7d:core.Destroy.Core", scope: null, file: !3, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !35) // CHECK:STDOUT: !35 = !{!36} // CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !22) // CHECK:STDOUT: !37 = !DILocation(line: 17, column: 3, scope: !34) diff --git a/toolchain/lower/testdata/class/generic.carbon b/toolchain/lower/testdata/class/generic.carbon index 4c30dd7b431a..3adc15e8b538 100644 --- a/toolchain/lower/testdata/class/generic.carbon +++ b/toolchain/lower/testdata/class/generic.carbon @@ -160,31 +160,31 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: ; ModuleID = 'create_generic.carbon' // CHECK:STDOUT: source_filename = "create_generic.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @tuple.cd5.loc22_28.6 = internal constant { i32, i32 } { i32 1, i32 2 } +// CHECK:STDOUT: @tuple.102.loc22_28.6 = internal constant { i32, i32 } { i32 1, i32 2 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CInts.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CMake.Main.4bee6dcdea6ba756(ptr %return, i32 1, i32 2), !dbg !8 +// CHECK:STDOUT: call void @_CMake.Main.5bd8d5767580997a(ptr %return, i32 1, i32 2), !dbg !8 // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CEmpty.Main(ptr sret({ {}, {} }) %return) #0 !dbg !10 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CMake.Main.554b569e0734564b(ptr %return), !dbg !11 +// CHECK:STDOUT: call void @_CMake.Main.b5489de296f1d78c(ptr %return), !dbg !11 // CHECK:STDOUT: ret void, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CTuples.Main(ptr sret({ { i32, i32 }, { i32, i32 } }) %return) #0 !dbg !13 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CMake.Main.3c48a9299655b1b3(ptr %return, ptr @tuple.cd5.loc22_28.6, ptr @tuple.cd5.loc22_28.6), !dbg !14 +// CHECK:STDOUT: call void @_CMake.Main.b40acb5dac24e7cb(ptr %return, ptr @tuple.102.loc22_28.6, ptr @tuple.102.loc22_28.6), !dbg !14 // CHECK:STDOUT: ret void, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CMake.Main.4bee6dcdea6ba756(ptr sret({ i32, i32 }) %return, i32 %x, i32 %y) #0 !dbg !16 { +// CHECK:STDOUT: define linkonce_odr void @_CMake.Main.5bd8d5767580997a(ptr sret({ i32, i32 }) %return, i32 %x, i32 %y) #0 !dbg !16 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc10_25.2.x = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !23 // CHECK:STDOUT: store i32 %x, ptr %.loc10_25.2.x, align 4, !dbg !23 @@ -194,7 +194,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CMake.Main.554b569e0734564b(ptr sret({ {}, {} }) %return) #0 !dbg !25 { +// CHECK:STDOUT: define linkonce_odr void @_CMake.Main.b5489de296f1d78c(ptr sret({ {}, {} }) %return) #0 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc10_25.2.x = getelementptr inbounds nuw { {}, {} }, ptr %return, i32 0, i32 0, !dbg !26 // CHECK:STDOUT: %.loc10_25.4.y = getelementptr inbounds nuw { {}, {} }, ptr %return, i32 0, i32 1, !dbg !26 @@ -202,17 +202,17 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CMake.Main.3c48a9299655b1b3(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %x, ptr %y) #0 !dbg !28 { +// CHECK:STDOUT: define linkonce_odr void @_CMake.Main.b40acb5dac24e7cb(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %x, ptr %y) #0 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc10_25.2.x = getelementptr inbounds nuw { { i32, i32 }, { i32, i32 } }, ptr %return, i32 0, i32 0, !dbg !34 -// CHECK:STDOUT: call void @"_COp.c9b880f9e94f16bf:Copy.Core.993ac60ec7fada7e"(ptr %.loc10_25.2.x, ptr %x), !dbg !35 +// CHECK:STDOUT: call void @"_COp.4e4edddc7580c79b:Copy.Core.58bedf1100cb91a8"(ptr %.loc10_25.2.x, ptr %x), !dbg !35 // CHECK:STDOUT: %.loc10_25.4.y = getelementptr inbounds nuw { { i32, i32 }, { i32, i32 } }, ptr %return, i32 0, i32 1, !dbg !34 -// CHECK:STDOUT: call void @"_COp.c9b880f9e94f16bf:Copy.Core.993ac60ec7fada7e"(ptr %.loc10_25.4.y, ptr %y), !dbg !36 +// CHECK:STDOUT: call void @"_COp.4e4edddc7580c79b:Copy.Core.58bedf1100cb91a8"(ptr %.loc10_25.4.y, ptr %y), !dbg !36 // CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.c9b880f9e94f16bf:Copy.Core.993ac60ec7fada7e"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define linkonce_odr void @"_COp.4e4edddc7580c79b:Copy.Core.58bedf1100cb91a8"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !38 { // CHECK:STDOUT: %tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !44 // CHECK:STDOUT: %tuple.elem.load = load i32, ptr %tuple.elem, align 4, !dbg !44 // CHECK:STDOUT: %tuple.elem1 = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !45 @@ -225,7 +225,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.c9b880f9e94f16bf:Copy.Core.993ac60ec7fada7e", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.4e4edddc7580c79b:Copy.Core.58bedf1100cb91a8", { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: @@ -248,7 +248,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Tuples", linkageName: "_CTuples.Main", scope: null, file: !3, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !14 = !DILocation(line: 23, column: 10, scope: !13) // CHECK:STDOUT: !15 = !DILocation(line: 23, column: 3, scope: !13) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 9, type: !17, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.5bd8d5767580997a", scope: null, file: !3, line: 9, type: !17, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) // CHECK:STDOUT: !17 = !DISubroutineType(types: !18) // CHECK:STDOUT: !18 = !{!7, !19, !19} // CHECK:STDOUT: !19 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) @@ -257,10 +257,10 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: !22 = !DILocalVariable(arg: 2, scope: !16, type: !19) // CHECK:STDOUT: !23 = !DILocation(line: 10, column: 10, scope: !16) // CHECK:STDOUT: !24 = !DILocation(line: 10, column: 3, scope: !16) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.554b569e0734564b", scope: null, file: !3, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.b5489de296f1d78c", scope: null, file: !3, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !26 = !DILocation(line: 10, column: 10, scope: !25) // CHECK:STDOUT: !27 = !DILocation(line: 10, column: 3, scope: !25) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.3c48a9299655b1b3", scope: null, file: !3, line: 9, type: !29, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.b40acb5dac24e7cb", scope: null, file: !3, line: 9, type: !29, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) // CHECK:STDOUT: !29 = !DISubroutineType(types: !30) // CHECK:STDOUT: !30 = !{!7, !7, !7} // CHECK:STDOUT: !31 = !{!32, !33} @@ -270,7 +270,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: !35 = !DILocation(line: 10, column: 16, scope: !28) // CHECK:STDOUT: !36 = !DILocation(line: 10, column: 24, scope: !28) // CHECK:STDOUT: !37 = !DILocation(line: 10, column: 3, scope: !28) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c9b880f9e94f16bf:Copy.Core.993ac60ec7fada7e", scope: null, file: !39, line: 48, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4e4edddc7580c79b:Copy.Core.58bedf1100cb91a8", scope: null, file: !39, line: 48, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) // CHECK:STDOUT: !39 = !DIFile(filename: "min_prelude/parts/copy.carbon", directory: "") // CHECK:STDOUT: !40 = !DISubroutineType(types: !41) // CHECK:STDOUT: !41 = !{!7, !7} @@ -283,9 +283,9 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: ; ModuleID = 'access.carbon' // CHECK:STDOUT: source_filename = "access.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @C.val.f1e.loc16_3 = internal constant { i1, i32 } { i1 true, i32 0 } -// CHECK:STDOUT: @C.val.1bb.loc26_3 = internal constant { i1, {} } { i1 true, {} zeroinitializer } -// CHECK:STDOUT: @C.val.07c.loc31_3 = internal constant { i1, { i32, i32, i32 } } { i1 true, { i32, i32, i32 } { i32 1, i32 2, i32 3 } } +// CHECK:STDOUT: @C.val.590.loc16_3 = internal constant { i1, i32 } { i1 true, i32 0 } +// CHECK:STDOUT: @C.val.5a4.loc26_3 = internal constant { i1, {} } { i1 true, {} zeroinitializer } +// CHECK:STDOUT: @C.val.b69.loc31_3 = internal constant { i1, { i32, i32, i32 } } { i1 true, { i32, i32, i32 } { i32 1, i32 2, i32 3 } } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i1 @_CAccessBool.Main() #0 !dbg !4 { @@ -294,26 +294,26 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !8 // CHECK:STDOUT: %.loc16_37.2.v = getelementptr inbounds nuw { i1, i32 }, ptr %c.var, i32 0, i32 0, !dbg !9 // CHECK:STDOUT: %.loc16_37.5.w = getelementptr inbounds nuw { i1, i32 }, ptr %c.var, i32 0, i32 1, !dbg !9 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.f1e.loc16_3, i64 8, i1 false), !dbg !8 -// CHECK:STDOUT: %C.GetBool.call = call i1 @_CGetBool.C.Main.4bee6dcdea6ba756(ptr %c.var), !dbg !10 -// CHECK:STDOUT: call void @"_COp.4e480b202fa826ad:core.Destroy.Core"(ptr %c.var), !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.590.loc16_3, i64 8, i1 false), !dbg !8 +// CHECK:STDOUT: %C.GetBool.call = call i1 @_CGetBool.C.Main.5bd8d5767580997a(ptr %c.var), !dbg !10 +// CHECK:STDOUT: call void @"_COp.3aba0d07ef538256:core.Destroy.Core"(ptr %c.var), !dbg !8 // CHECK:STDOUT: ret i1 %C.GetBool.call, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !12 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.360392044dc39054:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.4a778eace557e64e:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // 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.4e480b202fa826ad:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.3aba0d07ef538256:core.Destroy.Core"(ptr %self) #0 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } @@ -325,9 +325,9 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !32 // CHECK:STDOUT: %.loc21_37.2.v = getelementptr inbounds nuw { i1, i32 }, ptr %c.var, i32 0, i32 0, !dbg !33 // CHECK:STDOUT: %.loc21_37.5.w = getelementptr inbounds nuw { i1, i32 }, ptr %c.var, i32 0, i32 1, !dbg !33 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.f1e.loc16_3, i64 8, i1 false), !dbg !32 -// CHECK:STDOUT: %C.GetT.call = call i32 @_CGetT.C.Main.4bee6dcdea6ba756(ptr %c.var), !dbg !34 -// CHECK:STDOUT: call void @"_COp.4e480b202fa826ad:core.Destroy.Core"(ptr %c.var), !dbg !32 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.590.loc16_3, i64 8, i1 false), !dbg !32 +// CHECK:STDOUT: %C.GetT.call = call i32 @_CGetT.C.Main.5bd8d5767580997a(ptr %c.var), !dbg !34 +// CHECK:STDOUT: call void @"_COp.3aba0d07ef538256:core.Destroy.Core"(ptr %c.var), !dbg !32 // CHECK:STDOUT: ret i32 %C.GetT.call, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -338,9 +338,9 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !39 // CHECK:STDOUT: %.loc26_37.2.v = getelementptr inbounds nuw { i1, {} }, ptr %c.var, i32 0, i32 0, !dbg !40 // CHECK:STDOUT: %.loc26_37.4.w = getelementptr inbounds nuw { i1, {} }, ptr %c.var, i32 0, i32 1, !dbg !40 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @C.val.1bb.loc26_3, i64 1, i1 false), !dbg !39 -// CHECK:STDOUT: call void @_CGetT.C.Main.554b569e0734564b(ptr %c.var), !dbg !41 -// CHECK:STDOUT: call void @"_COp.49126fa639f3cfa0:core.Destroy.Core"(ptr %c.var), !dbg !39 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @C.val.5a4.loc26_3, i64 1, i1 false), !dbg !39 +// CHECK:STDOUT: call void @_CGetT.C.Main.b5489de296f1d78c(ptr %c.var), !dbg !41 +// CHECK:STDOUT: call void @"_COp.072140aa01ab1557:core.Destroy.Core"(ptr %c.var), !dbg !39 // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -351,7 +351,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.49126fa639f3cfa0:core.Destroy.Core"(ptr %self) #0 !dbg !47 { +// CHECK:STDOUT: define weak_odr void @"_COp.072140aa01ab1557:core.Destroy.Core"(ptr %self) #0 !dbg !47 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } @@ -366,26 +366,26 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc31_57.4.w, i32 0, i32 0, !dbg !54 // CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc31_57.4.w, i32 0, i32 1, !dbg !54 // CHECK:STDOUT: %tuple.elem2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc31_57.4.w, i32 0, i32 2, !dbg !54 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.07c.loc31_3, i64 16, i1 false), !dbg !52 -// CHECK:STDOUT: call void @_CGetT.C.Main.550e786320bb62de(ptr %return, ptr %c.var), !dbg !55 -// CHECK:STDOUT: call void @"_COp.dbdcfec5203a459d:core.Destroy.Core"(ptr %c.var), !dbg !52 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.b69.loc31_3, i64 16, i1 false), !dbg !52 +// CHECK:STDOUT: call void @_CGetT.C.Main.5821f27978434434(ptr %return, ptr %c.var), !dbg !55 +// CHECK:STDOUT: call void @"_COp.15acfaef2fd61051:core.Destroy.Core"(ptr %c.var), !dbg !52 // CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d52e974a95b4c7a0:core.Destroy.Core"(ptr %self) #0 !dbg !57 { +// CHECK:STDOUT: define weak_odr void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %self) #0 !dbg !57 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.25bd601d6340e055:core.Destroy.Core"(ptr %self) #0 !dbg !61 { +// CHECK:STDOUT: define weak_odr void @"_COp.bbcdb878140d0286: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.dbdcfec5203a459d:core.Destroy.Core"(ptr %self) #0 !dbg !65 { +// CHECK:STDOUT: define weak_odr void @"_COp.15acfaef2fd61051:core.Destroy.Core"(ptr %self) #0 !dbg !65 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !68 // CHECK:STDOUT: } @@ -397,7 +397,7 @@ fn AccessTuple() -> (i32, i32, 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: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CGetBool.C.Main.4bee6dcdea6ba756(ptr %self) #0 !dbg !69 { +// CHECK:STDOUT: define linkonce_odr i1 @_CGetBool.C.Main.5bd8d5767580997a(ptr %self) #0 !dbg !69 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc6_16.1.v = getelementptr inbounds nuw { i1, i32 }, ptr %self, i32 0, i32 0, !dbg !74 // CHECK:STDOUT: %.loc6_16.2 = load i8, ptr %.loc6_16.1.v, align 1, !dbg !74 @@ -406,7 +406,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CGetT.C.Main.4bee6dcdea6ba756(ptr %self) #0 !dbg !76 { +// CHECK:STDOUT: define linkonce_odr i32 @_CGetT.C.Main.5bd8d5767580997a(ptr %self) #0 !dbg !76 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc9_16.1.w = getelementptr inbounds nuw { i1, i32 }, ptr %self, i32 0, i32 1, !dbg !81 // CHECK:STDOUT: %.loc9_16.2 = load i32, ptr %.loc9_16.1.w, align 4, !dbg !81 @@ -414,22 +414,22 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CGetT.C.Main.554b569e0734564b(ptr %self) #0 !dbg !83 { +// CHECK:STDOUT: define linkonce_odr void @_CGetT.C.Main.b5489de296f1d78c(ptr %self) #0 !dbg !83 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc9_16.1.w = getelementptr inbounds nuw { i1, {} }, ptr %self, i32 0, i32 1, !dbg !86 // CHECK:STDOUT: ret void, !dbg !87 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CGetT.C.Main.550e786320bb62de(ptr sret({ i32, i32, i32 }) %return, ptr %self) #0 !dbg !88 { +// CHECK:STDOUT: define linkonce_odr void @_CGetT.C.Main.5821f27978434434(ptr sret({ i32, i32, i32 }) %return, ptr %self) #0 !dbg !88 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc9_16.1.w = getelementptr inbounds nuw { i1, { i32, i32, i32 } }, ptr %self, i32 0, i32 1, !dbg !91 -// CHECK:STDOUT: call void @"_COp.b4c2d866f5f8993d:Copy.Core.44b606bcef641408"(ptr %return, ptr %.loc9_16.1.w), !dbg !91 +// CHECK:STDOUT: call void @"_COp.6753b13effab4291:Copy.Core.f23c1a2465d2ad7f"(ptr %return, ptr %.loc9_16.1.w), !dbg !91 // CHECK:STDOUT: ret void, !dbg !92 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.b4c2d866f5f8993d:Copy.Core.44b606bcef641408"(ptr sret({ i32, i32, i32 }) %return, ptr %self) #0 !dbg !93 { +// CHECK:STDOUT: define linkonce_odr void @"_COp.6753b13effab4291:Copy.Core.f23c1a2465d2ad7f"(ptr sret({ i32, i32, i32 }) %return, ptr %self) #0 !dbg !93 { // CHECK:STDOUT: %tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %self, i32 0, i32 0, !dbg !97 // CHECK:STDOUT: %tuple.elem.load = load i32, ptr %tuple.elem, align 4, !dbg !97 // CHECK:STDOUT: %tuple.elem1 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 0, !dbg !98 @@ -467,20 +467,20 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: !9 = !DILocation(line: 16, column: 19, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 17, column: 10, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) // CHECK:STDOUT: !13 = !DISubroutineType(types: !14) // CHECK:STDOUT: !14 = !{null, !15} // CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !16 = !{!17} // CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) // CHECK:STDOUT: !18 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.360392044dc39054:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4a778eace557e64e:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) // CHECK:STDOUT: !20 = !DISubroutineType(types: !21) // CHECK:STDOUT: !21 = !{null, !7} // CHECK:STDOUT: !22 = !{!23} // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !19, type: !7) // CHECK:STDOUT: !24 = !DILocation(line: 16, column: 3, scope: !19) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4e480b202fa826ad:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3aba0d07ef538256:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !7) // CHECK:STDOUT: !28 = !DILocation(line: 16, column: 3, scope: !25) @@ -502,7 +502,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: !44 = !{!45} // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !7) // CHECK:STDOUT: !46 = !DILocation(line: 26, column: 3, scope: !43) -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.49126fa639f3cfa0:core.Destroy.Core", scope: null, file: !3, line: 26, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !48) +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp.072140aa01ab1557:core.Destroy.Core", scope: null, file: !3, line: 26, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !48) // CHECK:STDOUT: !48 = !{!49} // CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !47, type: !7) // CHECK:STDOUT: !50 = !DILocation(line: 26, column: 3, scope: !47) @@ -512,43 +512,43 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: !54 = !DILocation(line: 31, column: 48, scope: !51) // CHECK:STDOUT: !55 = !DILocation(line: 32, column: 10, scope: !51) // CHECK:STDOUT: !56 = !DILocation(line: 32, column: 3, scope: !51) -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d52e974a95b4c7a0:core.Destroy.Core", scope: null, file: !3, line: 31, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !58) +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5784487ae90e2771:core.Destroy.Core", scope: null, file: !3, line: 31, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !58) // CHECK:STDOUT: !58 = !{!59} // CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !57, type: !7) // CHECK:STDOUT: !60 = !DILocation(line: 31, column: 3, scope: !57) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.25bd601d6340e055:core.Destroy.Core", scope: null, file: !3, line: 31, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !62) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bbcdb878140d0286:core.Destroy.Core", scope: null, file: !3, line: 31, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !62) // CHECK:STDOUT: !62 = !{!63} // CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !61, type: !7) // CHECK:STDOUT: !64 = !DILocation(line: 31, column: 3, scope: !61) -// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dbdcfec5203a459d:core.Destroy.Core", scope: null, file: !3, line: 31, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !66) +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.15acfaef2fd61051:core.Destroy.Core", scope: null, file: !3, line: 31, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !66) // CHECK:STDOUT: !66 = !{!67} // CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !65, type: !7) // CHECK:STDOUT: !68 = !DILocation(line: 31, column: 3, scope: !65) -// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "GetBool", linkageName: "_CGetBool.C.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 5, type: !70, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !72) +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "GetBool", linkageName: "_CGetBool.C.Main.5bd8d5767580997a", scope: null, file: !3, line: 5, type: !70, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !72) // CHECK:STDOUT: !70 = !DISubroutineType(types: !71) // CHECK:STDOUT: !71 = !{!7, !7} // CHECK:STDOUT: !72 = !{!73} // CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !69, type: !7) // CHECK:STDOUT: !74 = !DILocation(line: 6, column: 12, scope: !69) // CHECK:STDOUT: !75 = !DILocation(line: 6, column: 5, scope: !69) -// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 8, type: !77, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !79) +// CHECK:STDOUT: !76 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.5bd8d5767580997a", scope: null, file: !3, line: 8, type: !77, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !79) // CHECK:STDOUT: !77 = !DISubroutineType(types: !78) // CHECK:STDOUT: !78 = !{!15, !7} // CHECK:STDOUT: !79 = !{!80} // CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !76, type: !7) // CHECK:STDOUT: !81 = !DILocation(line: 9, column: 12, scope: !76) // CHECK:STDOUT: !82 = !DILocation(line: 9, column: 5, scope: !76) -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.554b569e0734564b", scope: null, file: !3, line: 8, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !84) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.b5489de296f1d78c", scope: null, file: !3, line: 8, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !84) // CHECK:STDOUT: !84 = !{!85} // CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !83, type: !7) // CHECK:STDOUT: !86 = !DILocation(line: 9, column: 12, scope: !83) // CHECK:STDOUT: !87 = !DILocation(line: 9, column: 5, scope: !83) -// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.550e786320bb62de", scope: null, file: !3, line: 8, type: !70, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !89) +// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.5821f27978434434", scope: null, file: !3, line: 8, type: !70, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !89) // CHECK:STDOUT: !89 = !{!90} // CHECK:STDOUT: !90 = !DILocalVariable(arg: 1, scope: !88, type: !7) // CHECK:STDOUT: !91 = !DILocation(line: 9, column: 12, scope: !88) // CHECK:STDOUT: !92 = !DILocation(line: 9, column: 5, scope: !88) -// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b4c2d866f5f8993d:Copy.Core.44b606bcef641408", scope: null, file: !94, line: 54, type: !70, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !95) +// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6753b13effab4291:Copy.Core.f23c1a2465d2ad7f", scope: null, file: !94, line: 54, type: !70, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !95) // CHECK:STDOUT: !94 = !DIFile(filename: "min_prelude/parts/copy.carbon", directory: "") // CHECK:STDOUT: !95 = !{!96} // CHECK:STDOUT: !96 = !DILocalVariable(arg: 1, scope: !93, type: !7) diff --git a/toolchain/lower/testdata/class/static.carbon b/toolchain/lower/testdata/class/static.carbon index f1681dfe0d2c..2fc0aa0319e0 100644 --- a/toolchain/lower/testdata/class/static.carbon +++ b/toolchain/lower/testdata/class/static.carbon @@ -101,12 +101,12 @@ fn Run() -> i32 { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define void @"_C__destroy_thunk:thunk.C.Main"(ptr %self) #1 !dbg !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %self), !dbg !17 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54: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.907c496eccf2294c:core.Destroy.Core"(ptr %self) #2 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self) #2 !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } @@ -151,7 +151,7 @@ fn Run() -> i32 { // CHECK:STDOUT: !15 = !{!16} // CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) // CHECK:STDOUT: !17 = !DILocation(line: 4, column: 1, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.907c496eccf2294c:core.Destroy.Core", scope: null, file: !6, line: 4, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !19) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.807eb4f2d3ed7e54:core.Destroy.Core", scope: null, file: !6, line: 4, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !19) // CHECK:STDOUT: !19 = !{!20} // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !18, type: !14) // CHECK:STDOUT: !21 = !DILocation(line: 4, column: 1, scope: !18) diff --git a/toolchain/lower/testdata/class/virtual.carbon b/toolchain/lower/testdata/class/virtual.carbon index 638d8ae04c12..7104cc9c4b6b 100644 --- a/toolchain/lower/testdata/class/virtual.carbon +++ b/toolchain/lower/testdata/class/virtual.carbon @@ -256,7 +256,7 @@ fn Use() { // CHECK:STDOUT: @"_CIntermediate.Classes.$vtable" = external unnamed_addr constant ptr // CHECK:STDOUT: @"_CDerived.Classes.$vtable" = external unnamed_addr constant ptr // CHECK:STDOUT: @Base.val.loc7_3 = internal constant {} zeroinitializer -// CHECK:STDOUT: @Intermediate.val.511.loc8_3 = internal constant { ptr, {} } { ptr @"_CIntermediate.Classes.$vtable", {} zeroinitializer } +// CHECK:STDOUT: @Intermediate.val.54b.loc8_3 = internal constant { ptr, {} } { ptr @"_CIntermediate.Classes.$vtable", {} zeroinitializer } // CHECK:STDOUT: @Derived.val.loc9_49.5 = internal constant { { ptr, {} } } { { ptr, {} } { ptr poison, {} zeroinitializer } } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind @@ -271,7 +271,7 @@ fn Use() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc8), !dbg !8 // CHECK:STDOUT: %.loc8_44.2.vptr = getelementptr inbounds nuw { ptr, {} }, ptr %_.var.loc8, i32 0, i32 0, !dbg !11 // CHECK:STDOUT: %.loc8_44.4.base = getelementptr inbounds nuw { ptr, {} }, ptr %_.var.loc8, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc8, ptr align 8 @Intermediate.val.511.loc8_3, i64 8, i1 false), !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc8, ptr align 8 @Intermediate.val.54b.loc8_3, i64 8, i1 false), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc9), !dbg !9 // CHECK:STDOUT: %.loc9_49.2.base = getelementptr inbounds nuw { { ptr, {} } }, ptr %_.var.loc9, i32 0, i32 0, !dbg !12 // CHECK:STDOUT: %.loc9_48.2.vptr = getelementptr inbounds nuw { ptr, {} }, ptr %.loc9_49.2.base, i32 0, i32 0, !dbg !13 @@ -281,10 +281,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 !12 // CHECK:STDOUT: store ptr @"_CDerived.Classes.$vtable", ptr %.loc9_49.7.vptr, align 8, !dbg !12 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc12), !dbg !10 -// CHECK:STDOUT: call void @"_COp.4e03d32a20dc20fc:core.Destroy.Core"(ptr %_.var.loc12), !dbg !10 -// CHECK:STDOUT: call void @"_COp.4e03d32a20dc20fc:core.Destroy.Core"(ptr %_.var.loc9), !dbg !9 -// CHECK:STDOUT: call void @"_COp.b969f23b0795c5b7:core.Destroy.Core"(ptr %_.var.loc8), !dbg !8 -// CHECK:STDOUT: call void @"_COp.0f099d3071c91b2a:core.Destroy.Core"(ptr %_.var.loc7), !dbg !7 +// CHECK:STDOUT: call void @"_COp.f466adf434aa51ac:core.Destroy.Core"(ptr %_.var.loc12), !dbg !10 +// CHECK:STDOUT: call void @"_COp.f466adf434aa51ac:core.Destroy.Core"(ptr %_.var.loc9), !dbg !9 +// CHECK:STDOUT: call void @"_COp.e8db4b946118fdd5:core.Destroy.Core"(ptr %_.var.loc8), !dbg !8 +// CHECK:STDOUT: call void @"_COp.599adb417fbfaec7:core.Destroy.Core"(ptr %_.var.loc7), !dbg !7 // CHECK:STDOUT: ret void, !dbg !14 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -293,31 +293,31 @@ fn Use() { // CHECK:STDOUT: declare void @_CFn.Derived.Classes(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.0f099d3071c91b2a:core.Destroy.Core"(ptr %self) #0 !dbg !15 { +// CHECK:STDOUT: define weak_odr void @"_COp.599adb417fbfaec7:core.Destroy.Core"(ptr %self) #0 !dbg !15 { // 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.c8b420ef617bcd12:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.d297a9f344b8c8ea:core.Destroy.Core"(ptr %self) #0 !dbg !22 { // 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.b969f23b0795c5b7:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.e8db4b946118fdd5:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.626457d9603a0bc5:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.2f0c09c888828711:core.Destroy.Core"(ptr %self) #0 !dbg !30 { // 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.4e03d32a20dc20fc:core.Destroy.Core"(ptr %self) #0 !dbg !34 { +// CHECK:STDOUT: define weak_odr void @"_COp.f466adf434aa51ac:core.Destroy.Core"(ptr %self) #0 !dbg !34 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } @@ -341,7 +341,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.4e03d32a20dc20fc:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.f466adf434aa51ac: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: @@ -367,26 +367,26 @@ fn Use() { // CHECK:STDOUT: !12 = !DILocation(line: 9, column: 28, scope: !4) // CHECK:STDOUT: !13 = !DILocation(line: 9, column: 37, scope: !4) // CHECK:STDOUT: !14 = !DILocation(line: 6, column: 1, scope: !4) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0f099d3071c91b2a:core.Destroy.Core", scope: null, file: !3, line: 12, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) +// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.599adb417fbfaec7:core.Destroy.Core", scope: null, file: !3, line: 12, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) // CHECK:STDOUT: !16 = !DISubroutineType(types: !17) // CHECK:STDOUT: !17 = !{null, !18} // CHECK:STDOUT: !18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !19 = !{!20} // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !18) // CHECK:STDOUT: !21 = !DILocation(line: 12, column: 3, scope: !15) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c8b420ef617bcd12:core.Destroy.Core", scope: null, file: !3, line: 12, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d297a9f344b8c8ea:core.Destroy.Core", scope: null, file: !3, line: 12, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !22, type: !18) // CHECK:STDOUT: !25 = !DILocation(line: 12, column: 3, scope: !22) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b969f23b0795c5b7:core.Destroy.Core", scope: null, file: !3, line: 12, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e8db4b946118fdd5:core.Destroy.Core", scope: null, file: !3, line: 12, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) // CHECK:STDOUT: !27 = !{!28} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !18) // CHECK:STDOUT: !29 = !DILocation(line: 12, column: 3, scope: !26) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.626457d9603a0bc5:core.Destroy.Core", scope: null, file: !3, line: 12, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2f0c09c888828711:core.Destroy.Core", scope: null, file: !3, line: 12, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !18) // CHECK:STDOUT: !33 = !DILocation(line: 12, column: 3, scope: !30) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4e03d32a20dc20fc:core.Destroy.Core", scope: null, file: !3, line: 12, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !35) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f466adf434aa51ac:core.Destroy.Core", scope: null, file: !3, line: 12, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !35) // CHECK:STDOUT: !35 = !{!36} // CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !18) // CHECK:STDOUT: !37 = !DILocation(line: 12, column: 3, scope: !34) @@ -400,12 +400,12 @@ fn Use() { // CHECK:STDOUT: // CHECK:STDOUT: @"_CIntermediate.Classes.$vtable" = external unnamed_addr constant ptr // CHECK:STDOUT: @"_CDerived.Classes.$vtable" = external unnamed_addr constant ptr -// CHECK:STDOUT: @empty_struct.1f7.loc7_12 = internal constant {} zeroinitializer +// CHECK:STDOUT: @empty_struct.ac8.loc7_12 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CMakePartialBase.Main(ptr sret({}) %return) #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @empty_struct.1f7.loc7_12, i64 0, i1 false), !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @empty_struct.ac8.loc7_12, i64 0, i1 false), !dbg !8 // CHECK:STDOUT: ret void, !dbg !8 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -529,26 +529,26 @@ fn Use() { // CHECK:STDOUT: %.loc13_24.2.vptr = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %_.var, i32 0, i32 0, !dbg !20 // CHECK:STDOUT: %.loc13_24.5.m = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %_.var, i32 0, i32 1, !dbg !20 // 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 !16 -// CHECK:STDOUT: call void @"_COp.077e416a610fd48e:core.Destroy.Core"(ptr %_.var), !dbg !16 -// CHECK:STDOUT: call void @"_COp.077e416a610fd48e:core.Destroy.Core"(ptr %v.var), !dbg !15 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %i.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.7bb482f1036bd99d:core.Destroy.Core"(ptr %_.var), !dbg !16 +// CHECK:STDOUT: call void @"_COp.7bb482f1036bd99d:core.Destroy.Core"(ptr %v.var), !dbg !15 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %i.var), !dbg !14 // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !22 { // 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.a1fb720f8ee641e9:core.Destroy.Core"(ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.5b82b67c9fafe78b:core.Destroy.Core"(ptr %self) #0 !dbg !29 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.077e416a610fd48e:core.Destroy.Core"(ptr %self) #0 !dbg !33 { +// CHECK:STDOUT: define weak_odr void @"_COp.7bb482f1036bd99d:core.Destroy.Core"(ptr %self) #0 !dbg !33 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } @@ -560,7 +560,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.077e416a610fd48e:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.7bb482f1036bd99d:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -591,18 +591,18 @@ fn Use() { // CHECK:STDOUT: !19 = !DILocation(line: 12, column: 3, scope: !11) // CHECK:STDOUT: !20 = !DILocation(line: 13, column: 17, scope: !11) // CHECK:STDOUT: !21 = !DILocation(line: 9, column: 1, scope: !11) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 13, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 13, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) // CHECK:STDOUT: !23 = !DISubroutineType(types: !24) // CHECK:STDOUT: !24 = !{null, !25} // CHECK:STDOUT: !25 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !22, type: !25) // CHECK:STDOUT: !28 = !DILocation(line: 13, column: 3, scope: !22) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a1fb720f8ee641e9:core.Destroy.Core", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !30) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5b82b67c9fafe78b:core.Destroy.Core", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !30) // CHECK:STDOUT: !30 = !{!31} // CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !7) // CHECK:STDOUT: !32 = !DILocation(line: 13, column: 3, scope: !29) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.077e416a610fd48e:core.Destroy.Core", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7bb482f1036bd99d:core.Destroy.Core", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) // CHECK:STDOUT: !34 = !{!35} // CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !7) // CHECK:STDOUT: !36 = !DILocation(line: 13, column: 3, scope: !33) @@ -626,7 +626,7 @@ fn Use() { // CHECK:STDOUT: %.loc13_32.7.vptr = getelementptr inbounds nuw { ptr }, ptr %.loc13_32.6.base, i32 0, i32 0, !dbg !8 // 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 !8 // CHECK:STDOUT: store ptr @"_CDerived.Main.$vtable", ptr %.loc13_32.7.vptr, align 8, !dbg !8 -// CHECK:STDOUT: call void @"_COp.c734b9cb9ff14c0a:core.Destroy.Core"(ptr %_.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.8185e3504351afa8:core.Destroy.Core"(ptr %_.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !10 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -637,19 +637,19 @@ fn Use() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8fd1c7aa0f654d74:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.a45b619846c20518:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // 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.5e74ca9c0ccdf884:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.4e1364ec5889efef:core.Destroy.Core"(ptr %self) #0 !dbg !22 { // 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.c734b9cb9ff14c0a:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.8185e3504351afa8:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } @@ -684,15 +684,15 @@ fn Use() { // CHECK:STDOUT: !15 = !{!16} // CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) // CHECK:STDOUT: !17 = !DILocation(line: 13, column: 3, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8fd1c7aa0f654d74:core.Destroy.Core", scope: null, file: !3, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a45b619846c20518:core.Destroy.Core", scope: null, file: !3, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) // CHECK:STDOUT: !19 = !{!20} // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !18, type: !14) // CHECK:STDOUT: !21 = !DILocation(line: 13, column: 3, scope: !18) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e74ca9c0ccdf884:core.Destroy.Core", scope: null, file: !3, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4e1364ec5889efef:core.Destroy.Core", scope: null, file: !3, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !22, type: !14) // CHECK:STDOUT: !25 = !DILocation(line: 13, column: 3, scope: !22) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c734b9cb9ff14c0a:core.Destroy.Core", scope: null, file: !3, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8185e3504351afa8:core.Destroy.Core", scope: null, file: !3, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) // CHECK:STDOUT: !27 = !{!28} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !14) // CHECK:STDOUT: !29 = !DILocation(line: 13, column: 3, scope: !26) @@ -759,7 +759,7 @@ fn Use() { // CHECK:STDOUT: %Base.F.call.vtable = load ptr, ptr %.loc15_3.1.base, align 8, !dbg !10 // CHECK:STDOUT: %Base.F.call = call ptr @llvm.load.relative.i32(ptr %Base.F.call.vtable, i32 0), !dbg !10 // CHECK:STDOUT: call void %Base.F.call(ptr %.loc15_3.1.base), !dbg !10 -// CHECK:STDOUT: call void @"_COp.c734b9cb9ff14c0a:core.Destroy.Core"(ptr %v.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.8185e3504351afa8:core.Destroy.Core"(ptr %v.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -770,19 +770,19 @@ fn Use() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8fd1c7aa0f654d74:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.a45b619846c20518:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5e74ca9c0ccdf884:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.4e1364ec5889efef:core.Destroy.Core"(ptr %self) #0 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.c734b9cb9ff14c0a:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.8185e3504351afa8:core.Destroy.Core"(ptr %self) #0 !dbg !27 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } @@ -822,15 +822,15 @@ fn Use() { // CHECK:STDOUT: !16 = !{!17} // CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) // CHECK:STDOUT: !18 = !DILocation(line: 14, column: 3, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8fd1c7aa0f654d74:core.Destroy.Core", scope: null, file: !3, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a45b619846c20518:core.Destroy.Core", scope: null, file: !3, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) // CHECK:STDOUT: !20 = !{!21} // CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !15) // CHECK:STDOUT: !22 = !DILocation(line: 14, column: 3, scope: !19) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e74ca9c0ccdf884:core.Destroy.Core", scope: null, file: !3, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4e1364ec5889efef:core.Destroy.Core", scope: null, file: !3, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) // CHECK:STDOUT: !24 = !{!25} // CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !23, type: !15) // CHECK:STDOUT: !26 = !DILocation(line: 14, column: 3, scope: !23) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c734b9cb9ff14c0a:core.Destroy.Core", scope: null, file: !3, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8185e3504351afa8:core.Destroy.Core", scope: null, file: !3, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) // CHECK:STDOUT: !28 = !{!29} // CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !15) // CHECK:STDOUT: !30 = !DILocation(line: 14, column: 3, scope: !27) @@ -847,10 +847,10 @@ fn Use() { // CHECK:STDOUT: ; ModuleID = 'generic_use.carbon' // CHECK:STDOUT: source_filename = "generic_use.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @"_CBase.Main.$vtable.1029235a698bda6f" = unnamed_addr constant [1 x i32] [i32 trunc (i64 sub (i64 ptrtoint (ptr @_CF.Base.Main.1029235a698bda6f to i64), i64 ptrtoint (ptr @"_CBase.Main.$vtable.1029235a698bda6f" to i64)) to i32)] -// CHECK:STDOUT: @"_CBase.Main.$vtable.48951bdbe95fad10" = unnamed_addr constant [1 x i32] [i32 trunc (i64 sub (i64 ptrtoint (ptr @_CF.Base.Main.48951bdbe95fad10 to i64), i64 ptrtoint (ptr @"_CBase.Main.$vtable.48951bdbe95fad10" to i64)) to i32)] -// CHECK:STDOUT: @Base.val.c48.loc16_3 = internal constant { ptr } { ptr @"_CBase.Main.$vtable.1029235a698bda6f" } -// CHECK:STDOUT: @Base.val.ccb.loc17_3 = internal constant { ptr } { ptr @"_CBase.Main.$vtable.48951bdbe95fad10" } +// 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: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { @@ -859,29 +859,29 @@ fn Use() { // CHECK:STDOUT: %_.var.loc17 = alloca { ptr }, align 8, !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !7 // CHECK:STDOUT: %.loc16_22.2.vptr = getelementptr inbounds nuw { ptr }, ptr %_.var.loc16, i32 0, i32 0, !dbg !9 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc16, ptr align 8 @Base.val.c48.loc16_3, i64 8, i1 false), !dbg !7 +// 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 !7 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc17), !dbg !8 // CHECK:STDOUT: %.loc17_22.2.vptr = getelementptr inbounds nuw { ptr }, ptr %_.var.loc17, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc17, ptr align 8 @Base.val.ccb.loc17_3, i64 8, i1 false), !dbg !8 -// CHECK:STDOUT: call void @"_COp.76a47de3e03479c7:core.Destroy.Core"(ptr %_.var.loc17), !dbg !8 -// CHECK:STDOUT: call void @"_COp.986d28de4a280ac0:core.Destroy.Core"(ptr %_.var.loc16), !dbg !7 +// 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 !8 +// CHECK:STDOUT: call void @"_COp.5a348ab37855d8cb:core.Destroy.Core"(ptr %_.var.loc17), !dbg !8 +// CHECK:STDOUT: call void @"_COp.2fa34c36769abdda:core.Destroy.Core"(ptr %_.var.loc16), !dbg !7 // CHECK:STDOUT: ret void, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.35ab3e6bbc372602:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.8009891161c13655:core.Destroy.Core"(ptr %self) #0 !dbg !12 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.76b79385216abe71:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.065e814291079cc6:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.18c5c3787f491606:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.ba57a0f0b509ae3c:core.Destroy.Core"(ptr %self) #0 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } @@ -893,32 +893,32 @@ fn Use() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.76a47de3e03479c7:core.Destroy.Core"(ptr %self) #0 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp.5a348ab37855d8cb:core.Destroy.Core"(ptr %self) #0 !dbg !31 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.986d28de4a280ac0:core.Destroy.Core"(ptr %self) #0 !dbg !35 { +// CHECK:STDOUT: define weak_odr void @"_COp.2fa34c36769abdda:core.Destroy.Core"(ptr %self) #0 !dbg !35 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.1029235a698bda6f(ptr %self) #0 !dbg !39 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.9203bf580ba2de56(ptr %self) #0 !dbg !39 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !42 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !42 -// CHECK:STDOUT: call void @"_COp.35ab3e6bbc372602:core.Destroy.Core"(ptr %_.var), !dbg !42 +// CHECK:STDOUT: call void @"_COp.8009891161c13655:core.Destroy.Core"(ptr %_.var), !dbg !42 // CHECK:STDOUT: ret void, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.48951bdbe95fad10(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.d35bf058397cdfd9(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca { {} }, align 1, !dbg !47 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !47 -// CHECK:STDOUT: call void @"_COp.18c5c3787f491606:core.Destroy.Core"(ptr %_.var), !dbg !47 +// CHECK:STDOUT: call void @"_COp.ba57a0f0b509ae3c:core.Destroy.Core"(ptr %_.var), !dbg !47 // CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -950,18 +950,18 @@ fn Use() { // CHECK:STDOUT: !9 = !DILocation(line: 16, column: 21, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 17, column: 21, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.35ab3e6bbc372602:core.Destroy.Core", scope: null, file: !3, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8009891161c13655:core.Destroy.Core", scope: null, file: !3, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) // CHECK:STDOUT: !13 = !DISubroutineType(types: !14) // CHECK:STDOUT: !14 = !{null, !15} // CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !16 = !{!17} // CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) // CHECK:STDOUT: !18 = !DILocation(line: 16, column: 10, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.76b79385216abe71:core.Destroy.Core", scope: null, file: !3, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.065e814291079cc6:core.Destroy.Core", scope: null, file: !3, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) // CHECK:STDOUT: !20 = !{!21} // CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !15) // CHECK:STDOUT: !22 = !DILocation(line: 17, column: 10, scope: !19) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.18c5c3787f491606:core.Destroy.Core", scope: null, file: !3, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ba57a0f0b509ae3c:core.Destroy.Core", scope: null, file: !3, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) // CHECK:STDOUT: !24 = !{!25} // CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !23, type: !15) // CHECK:STDOUT: !26 = !DILocation(line: 17, column: 10, scope: !23) @@ -969,20 +969,20 @@ fn Use() { // CHECK:STDOUT: !28 = !{!29} // CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !15) // CHECK:STDOUT: !30 = !DILocation(line: 17, column: 3, scope: !27) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.76a47de3e03479c7:core.Destroy.Core", scope: null, file: !3, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !32) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5a348ab37855d8cb:core.Destroy.Core", scope: null, file: !3, line: 17, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !32) // CHECK:STDOUT: !32 = !{!33} // CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !31, type: !15) // CHECK:STDOUT: !34 = !DILocation(line: 17, column: 3, scope: !31) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.986d28de4a280ac0:core.Destroy.Core", scope: null, file: !3, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !36) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2fa34c36769abdda:core.Destroy.Core", scope: null, file: !3, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !36) // CHECK:STDOUT: !36 = !{!37} // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !15) // CHECK:STDOUT: !38 = !DILocation(line: 16, column: 3, scope: !35) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.1029235a698bda6f", scope: null, file: !3, line: 5, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !40) +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.9203bf580ba2de56", scope: null, file: !3, line: 5, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !40) // CHECK:STDOUT: !40 = !{!41} // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !39, type: !15) // CHECK:STDOUT: !42 = !DILocation(line: 6, column: 5, scope: !39) // CHECK:STDOUT: !43 = !DILocation(line: 5, column: 3, scope: !39) -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.48951bdbe95fad10", scope: null, file: !3, line: 5, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !45) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.d35bf058397cdfd9", scope: null, file: !3, line: 5, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !45) // CHECK:STDOUT: !45 = !{!46} // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !44, type: !15) // CHECK:STDOUT: !47 = !DILocation(line: 6, column: 5, scope: !44) @@ -990,14 +990,14 @@ fn Use() { // CHECK:STDOUT: ; ModuleID = 'generic_base.carbon' // CHECK:STDOUT: source_filename = "generic_base.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @"_CDerived.Main.$vtable" = unnamed_addr constant [1 x i32] [i32 trunc (i64 sub (i64 ptrtoint (ptr @_CF.Base.Main.a32762d93dfe968e to i64), i64 ptrtoint (ptr @"_CDerived.Main.$vtable" to i64)) to i32)] +// CHECK:STDOUT: @"_CDerived.Main.$vtable" = unnamed_addr constant [1 x i32] [i32 trunc (i64 sub (i64 ptrtoint (ptr @_CF.Base.Main.6d6a4a2512463e59 to i64), i64 ptrtoint (ptr @"_CDerived.Main.$vtable" to i64)) to i32)] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CMake.Main() #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca { { ptr } }, align 8, !dbg !7 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !7 -// CHECK:STDOUT: call void @"_COp.c734b9cb9ff14c0a:core.Destroy.Core"(ptr %_.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.8185e3504351afa8:core.Destroy.Core"(ptr %_.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !8 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1008,25 +1008,25 @@ fn Use() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.65a7849e4f4960f8:core.Destroy.Core"(ptr %self) #0 !dbg !16 { +// CHECK:STDOUT: define weak_odr void @"_COp.a6c4a4d5e8c13048:core.Destroy.Core"(ptr %self) #0 !dbg !16 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.36fd9be4fff9be1d:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.85c4c37895334278:core.Destroy.Core"(ptr %self) #0 !dbg !20 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.c734b9cb9ff14c0a:core.Destroy.Core"(ptr %self) #0 !dbg !24 { +// CHECK:STDOUT: define weak_odr void @"_COp.8185e3504351afa8:core.Destroy.Core"(ptr %self) #0 !dbg !24 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.a32762d93dfe968e(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.6d6a4a2512463e59(ptr %self) #0 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } @@ -1056,19 +1056,19 @@ fn Use() { // CHECK:STDOUT: !13 = !{!14} // CHECK:STDOUT: !14 = !DILocalVariable(arg: 1, scope: !9, type: !12) // CHECK:STDOUT: !15 = !DILocation(line: 15, column: 3, scope: !9) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Op", linkageName: "_COp.65a7849e4f4960f8:core.Destroy.Core", scope: null, file: !3, line: 15, type: !10, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a6c4a4d5e8c13048:core.Destroy.Core", scope: null, file: !3, line: 15, type: !10, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) // CHECK:STDOUT: !17 = !{!18} // CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !16, type: !12) // CHECK:STDOUT: !19 = !DILocation(line: 15, column: 3, scope: !16) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.36fd9be4fff9be1d:core.Destroy.Core", scope: null, file: !3, line: 15, type: !10, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !21) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.85c4c37895334278:core.Destroy.Core", scope: null, file: !3, line: 15, type: !10, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !21) // CHECK:STDOUT: !21 = !{!22} // CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !20, type: !12) // CHECK:STDOUT: !23 = !DILocation(line: 15, column: 3, scope: !20) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c734b9cb9ff14c0a:core.Destroy.Core", scope: null, file: !3, line: 15, type: !10, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8185e3504351afa8:core.Destroy.Core", scope: null, file: !3, line: 15, type: !10, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) // CHECK:STDOUT: !25 = !{!26} // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !24, type: !12) // CHECK:STDOUT: !27 = !DILocation(line: 15, column: 3, scope: !24) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.a32762d93dfe968e", scope: null, file: !3, line: 5, type: !10, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.6d6a4a2512463e59", scope: null, file: !3, line: 5, type: !10, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) // CHECK:STDOUT: !29 = !{!30} // CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !12) // CHECK:STDOUT: !31 = !DILocation(line: 5, column: 3, scope: !28) @@ -1081,7 +1081,7 @@ fn Use() { // CHECK:STDOUT: @From.val.loc18_14 = internal constant {} zeroinitializer // CHECK:STDOUT: @Derived.val.loc23_31.5 = internal constant { { ptr } } poison // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_CConvert.From.Main:ImplicitAs.4941293e6556af9a.Core"(ptr sret({}), ptr) +// CHECK:STDOUT: declare void @"_CConvert.From.Main:ImplicitAs.a3bb440f6426a7d6.Core"(ptr sret({}), ptr) // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CF.Base.Main(ptr sret({}), ptr, ptr) // CHECK:STDOUT: @@ -1099,22 +1099,22 @@ fn Use() { // CHECK:STDOUT: %.loc12_33.1.temp = alloca {}, align 1, !dbg !17 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_58.1.temp), !dbg !16 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_33.1.temp), !dbg !17 -// CHECK:STDOUT: call void @"_CConvert.From.Main:ImplicitAs.4941293e6556af9a.Core"(ptr %.loc12_33.1.temp, ptr %n), !dbg !17 +// CHECK:STDOUT: call void @"_CConvert.From.Main:ImplicitAs.a3bb440f6426a7d6.Core"(ptr %.loc12_33.1.temp, ptr %n), !dbg !17 // CHECK:STDOUT: call void @_CF.Derived.Main(ptr %.loc17_58.1.temp, ptr %self, ptr %.loc12_33.1.temp), !dbg !16 -// CHECK:STDOUT: call void @"_CConvert.From.Main:ImplicitAs.4941293e6556af9a.Core"(ptr %return, ptr %.loc17_58.1.temp), !dbg !16 -// CHECK:STDOUT: call void @"_COp.badced2017fb7c37:core.Destroy.Core"(ptr %.loc17_58.1.temp), !dbg !16 -// CHECK:STDOUT: call void @"_COp.82d5d30739e4730b:core.Destroy.Core"(ptr %.loc12_33.1.temp), !dbg !17 +// CHECK:STDOUT: call void @"_CConvert.From.Main:ImplicitAs.a3bb440f6426a7d6.Core"(ptr %return, ptr %.loc17_58.1.temp), !dbg !16 +// CHECK:STDOUT: call void @"_COp.419398171642b7b7:core.Destroy.Core"(ptr %.loc17_58.1.temp), !dbg !16 +// CHECK:STDOUT: call void @"_COp.41ca6508118965ec:core.Destroy.Core"(ptr %.loc12_33.1.temp), !dbg !17 // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.badced2017fb7c37:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.419398171642b7b7:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.82d5d30739e4730b:core.Destroy.Core"(ptr %self) #0 !dbg !24 { +// CHECK:STDOUT: define weak_odr void @"_COp.41ca6508118965ec:core.Destroy.Core"(ptr %self) #0 !dbg !24 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } @@ -1138,9 +1138,9 @@ fn Use() { // CHECK:STDOUT: %Base.F.call.vtable = load ptr, ptr %.loc25_10.1.temp, align 8, !dbg !32 // CHECK:STDOUT: %Base.F.call = call ptr @llvm.load.relative.i32(ptr %Base.F.call.vtable, i32 0), !dbg !32 // CHECK:STDOUT: call void %Base.F.call(ptr %.loc25_10.1.temp, ptr %.loc24_18.2.base, ptr @From.val.loc18_14), !dbg !32 -// CHECK:STDOUT: call void @"_COp.82d5d30739e4730b:core.Destroy.Core"(ptr %.loc25_10.1.temp), !dbg !32 -// CHECK:STDOUT: call void @"_COp.badced2017fb7c37:core.Destroy.Core"(ptr @From.val), !dbg !33 -// CHECK:STDOUT: call void @"_COp.c734b9cb9ff14c0a:core.Destroy.Core"(ptr %d.var), !dbg !31 +// CHECK:STDOUT: call void @"_COp.41ca6508118965ec:core.Destroy.Core"(ptr %.loc25_10.1.temp), !dbg !32 +// CHECK:STDOUT: call void @"_COp.419398171642b7b7:core.Destroy.Core"(ptr @From.val), !dbg !33 +// CHECK:STDOUT: call void @"_COp.8185e3504351afa8:core.Destroy.Core"(ptr %d.var), !dbg !31 // CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1151,19 +1151,19 @@ fn Use() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8fd1c7aa0f654d74:core.Destroy.Core"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: define weak_odr void @"_COp.a45b619846c20518:core.Destroy.Core"(ptr %self) #0 !dbg !42 { // 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.5e74ca9c0ccdf884:core.Destroy.Core"(ptr %self) #0 !dbg !46 { +// CHECK:STDOUT: define weak_odr void @"_COp.4e1364ec5889efef:core.Destroy.Core"(ptr %self) #0 !dbg !46 { // 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.c734b9cb9ff14c0a:core.Destroy.Core"(ptr %self) #0 !dbg !50 { +// CHECK:STDOUT: define weak_odr void @"_COp.8185e3504351afa8:core.Destroy.Core"(ptr %self) #0 !dbg !50 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } @@ -1207,13 +1207,13 @@ fn Use() { // CHECK:STDOUT: !15 = !DILocalVariable(arg: 2, scope: !12, type: !7) // CHECK:STDOUT: !16 = !DILocation(line: 17, column: 3, scope: !12) // CHECK:STDOUT: !17 = !DILocation(line: 12, column: 32, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.badced2017fb7c37:core.Destroy.Core", scope: null, file: !3, line: 17, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !21) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.419398171642b7b7:core.Destroy.Core", scope: null, file: !3, line: 17, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !21) // CHECK:STDOUT: !19 = !DISubroutineType(types: !20) // CHECK:STDOUT: !20 = !{null, !7} // CHECK:STDOUT: !21 = !{!22} // CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !18, type: !7) // CHECK:STDOUT: !23 = !DILocation(line: 17, column: 3, scope: !18) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.82d5d30739e4730b:core.Destroy.Core", scope: null, file: !3, line: 12, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.41ca6508118965ec:core.Destroy.Core", scope: null, file: !3, line: 12, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) // CHECK:STDOUT: !25 = !{!26} // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !24, type: !7) // CHECK:STDOUT: !27 = !DILocation(line: 12, column: 32, scope: !24) @@ -1231,15 +1231,15 @@ fn Use() { // CHECK:STDOUT: !39 = !{!40} // CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !38, type: !7) // CHECK:STDOUT: !41 = !DILocation(line: 23, column: 3, scope: !38) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8fd1c7aa0f654d74:core.Destroy.Core", scope: null, file: !3, line: 23, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !43) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a45b619846c20518:core.Destroy.Core", scope: null, file: !3, line: 23, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !43) // CHECK:STDOUT: !43 = !{!44} // CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !42, type: !7) // CHECK:STDOUT: !45 = !DILocation(line: 23, column: 3, scope: !42) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e74ca9c0ccdf884:core.Destroy.Core", scope: null, file: !3, line: 23, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !47) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4e1364ec5889efef:core.Destroy.Core", scope: null, file: !3, line: 23, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !47) // CHECK:STDOUT: !47 = !{!48} // CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !46, type: !7) // CHECK:STDOUT: !49 = !DILocation(line: 23, column: 3, scope: !46) -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c734b9cb9ff14c0a:core.Destroy.Core", scope: null, file: !3, line: 23, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !51) +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8185e3504351afa8:core.Destroy.Core", scope: null, file: !3, line: 23, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !51) // CHECK:STDOUT: !51 = !{!52} // CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !50, type: !7) // CHECK:STDOUT: !53 = !DILocation(line: 23, column: 3, scope: !50) diff --git a/toolchain/lower/testdata/for/bindings.carbon b/toolchain/lower/testdata/for/bindings.carbon index e90706e5e0db..75d02bcd7e6b 100644 --- a/toolchain/lower/testdata/for/bindings.carbon +++ b/toolchain/lower/testdata/for/bindings.carbon @@ -48,20 +48,20 @@ fn For() { // CHECK:STDOUT: %.loc29_33.8.temp = alloca { i32, i32 }, align 4, !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %r.var), !dbg !7 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %r.var, ptr align 1 @EmptyRange.val.loc27_3, i64 0, i1 false), !dbg !7 -// CHECK:STDOUT: call void @"_CNewCursor.EmptyRange.287e013a6206a934.Main:Iterate.Core.3a9d0e7b9ea8ab0d"(ptr %r.var), !dbg !8 +// CHECK:STDOUT: call void @"_CNewCursor.EmptyRange.a081b942542726db.Main:Iterate.Core.c9f733d9bf35d2e5"(ptr %r.var), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var), !dbg !8 // CHECK:STDOUT: br label %for.next, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.next: ; preds = %for.body, %entry // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_33.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_CNext.EmptyRange.287e013a6206a934.Main:Iterate.Core.3a9d0e7b9ea8ab0d"(ptr %.loc29_33.1.temp, ptr %r.var, ptr %var), !dbg !8 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.98974fba723f09b9(ptr %.loc29_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_CNext.EmptyRange.a081b942542726db.Main:Iterate.Core.c9f733d9bf35d2e5"(ptr %.loc29_33.1.temp, ptr %r.var, ptr %var), !dbg !8 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.66b735e0a187b4e4(ptr %.loc29_33.1.temp), !dbg !8 // CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !9 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_33.8.temp), !dbg !8 -// CHECK:STDOUT: call void @_CGet.Optional.Core.98974fba723f09b9(ptr %.loc29_33.8.temp, ptr %.loc29_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @_CGet.Optional.Core.66b735e0a187b4e4(ptr %.loc29_33.8.temp, ptr %.loc29_33.1.temp), !dbg !8 // CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc29_33.8.temp, i32 0, i32 0, !dbg !8 // CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc29_33.8.temp, i32 0, i32 1, !dbg !8 // CHECK:STDOUT: %.loc29_33.11 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !8 @@ -71,51 +71,51 @@ fn For() { // CHECK:STDOUT: br label %for.next, !dbg !11 // CHECK:STDOUT: // CHECK:STDOUT: for.done: ; preds = %for.next -// CHECK:STDOUT: call void @"_COp.11d8dd9278293aa3:core.Destroy.Core"(ptr %.loc29_33.8.temp), !dbg !8 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.1891809c26fc7e83:core.Destroy.Core"(ptr %.loc29_33.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_COp.766445c24f925942:core.Destroy.Core"(ptr %r.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %.loc29_33.8.temp), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !9 +// CHECK:STDOUT: call void @"_COp.72fec7d6e0df4c57:core.Destroy.Core"(ptr %.loc29_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_COp.88c97397fb274b67:core.Destroy.Core"(ptr %r.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !13 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.11d8dd9278293aa3:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %self) #0 !dbg !20 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.42ca61a2d91a26c4:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.938741932578d142:core.Destroy.Core"(ptr %self) #0 !dbg !27 { // 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.b56bc24bdc8482e7:core.Destroy.Core"(ptr %self) #0 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp.b935d6615b90a01b:core.Destroy.Core"(ptr %self) #0 !dbg !31 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.f9310e30400aa50e:core.Destroy.Core"(ptr %self) #0 !dbg !35 { +// CHECK:STDOUT: define weak_odr void @"_COp.854750c92287bb79:core.Destroy.Core"(ptr %self) #0 !dbg !35 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1891809c26fc7e83:core.Destroy.Core"(ptr %self) #0 !dbg !39 { +// CHECK:STDOUT: define weak_odr void @"_COp.72fec7d6e0df4c57:core.Destroy.Core"(ptr %self) #0 !dbg !39 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.766445c24f925942:core.Destroy.Core"(ptr %self) #0 !dbg !43 { +// CHECK:STDOUT: define weak_odr void @"_COp.88c97397fb274b67:core.Destroy.Core"(ptr %self) #0 !dbg !43 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } @@ -127,38 +127,38 @@ fn For() { // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNewCursor.EmptyRange.287e013a6206a934.Main:Iterate.Core.3a9d0e7b9ea8ab0d"(ptr %self) #0 !dbg !47 { +// CHECK:STDOUT: define linkonce_odr void @"_CNewCursor.EmptyRange.a081b942542726db.Main:Iterate.Core.c9f733d9bf35d2e5"(ptr %self) #0 !dbg !47 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNext.EmptyRange.287e013a6206a934.Main:Iterate.Core.3a9d0e7b9ea8ab0d"(ptr sret(<{ { i32, i32 }, i1 }>) %return, ptr %self, ptr %_) #0 !dbg !51 { +// CHECK:STDOUT: define linkonce_odr void @"_CNext.EmptyRange.a081b942542726db.Main:Iterate.Core.c9f733d9bf35d2e5"(ptr sret(<{ { i32, i32 }, i1 }>) %return, ptr %self, ptr %_) #0 !dbg !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CNone.Optional.Core.98974fba723f09b9(ptr %return), !dbg !57 +// CHECK:STDOUT: call void @_CNone.Optional.Core.66b735e0a187b4e4(ptr %return), !dbg !57 // CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.98974fba723f09b9(ptr %self) #0 !dbg !59 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.2d6936f0ed82c0eb:OptionalStorage.Core.3a9d0e7b9ea8ab0d"(ptr %self), !dbg !65 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.66b735e0a187b4e4(ptr %self) #0 !dbg !59 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.c9f733d9bf35d2e5"(ptr %self), !dbg !65 // CHECK:STDOUT: ret i1 %1, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CGet.Optional.Core.98974fba723f09b9(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !67 { -// CHECK:STDOUT: call void @"_CGet.2d6936f0ed82c0eb:OptionalStorage.Core.3a9d0e7b9ea8ab0d"(ptr %return, ptr %self), !dbg !70 +// CHECK:STDOUT: define linkonce_odr void @_CGet.Optional.Core.66b735e0a187b4e4(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !67 { +// CHECK:STDOUT: call void @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.c9f733d9bf35d2e5"(ptr %return, ptr %self), !dbg !70 // CHECK:STDOUT: ret void, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.98974fba723f09b9(ptr sret(<{ { i32, i32 }, i1 }>) %return) #0 !dbg !72 { -// CHECK:STDOUT: call void @"_CNone.2d6936f0ed82c0eb:OptionalStorage.Core.3a9d0e7b9ea8ab0d"(ptr %return), !dbg !75 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.66b735e0a187b4e4(ptr sret(<{ { i32, i32 }, i1 }>) %return) #0 !dbg !72 { +// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.c9f733d9bf35d2e5"(ptr %return), !dbg !75 // CHECK:STDOUT: ret void, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.2d6936f0ed82c0eb:OptionalStorage.Core.3a9d0e7b9ea8ab0d"(ptr %value) #0 !dbg !77 { +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.c9f733d9bf35d2e5"(ptr %value) #0 !dbg !77 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ { i32, i32 }, i1 }>, ptr %value, i32 0, i32 1, !dbg !80 // CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !80 // CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !80 @@ -166,21 +166,21 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CGet.2d6936f0ed82c0eb:OptionalStorage.Core.3a9d0e7b9ea8ab0d"(ptr sret({ i32, i32 }) %return, ptr %value) #0 !dbg !82 { +// CHECK:STDOUT: define linkonce_odr void @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.c9f733d9bf35d2e5"(ptr sret({ i32, i32 }) %return, ptr %value) #0 !dbg !82 { // CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ { i32, i32 }, i1 }>, ptr %value, i32 0, i32 0, !dbg !85 -// CHECK:STDOUT: call void @"_COp.c9b880f9e94f16bf:Copy.Core.993ac60ec7fada7e"(ptr %return, ptr %value1), !dbg !85 +// CHECK:STDOUT: call void @"_COp.4e4edddc7580c79b:Copy.Core.58bedf1100cb91a8"(ptr %return, ptr %value1), !dbg !85 // CHECK:STDOUT: ret void, !dbg !86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.2d6936f0ed82c0eb:OptionalStorage.Core.3a9d0e7b9ea8ab0d"(ptr sret(<{ { i32, i32 }, i1 }>) %return) #0 !dbg !87 { +// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.c9f733d9bf35d2e5"(ptr sret(<{ { i32, i32 }, i1 }>) %return) #0 !dbg !87 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ { i32, i32 }, i1 }>, ptr %return, i32 0, i32 1, !dbg !88 // CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !88 // CHECK:STDOUT: ret void, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.c9b880f9e94f16bf:Copy.Core.993ac60ec7fada7e"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !90 { +// CHECK:STDOUT: define linkonce_odr void @"_COp.4e4edddc7580c79b:Copy.Core.58bedf1100cb91a8"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !90 { // CHECK:STDOUT: %tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !94 // CHECK:STDOUT: %tuple.elem.load = load i32, ptr %tuple.elem, align 4, !dbg !94 // CHECK:STDOUT: %tuple.elem1 = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !95 @@ -214,45 +214,45 @@ fn For() { // CHECK:STDOUT: !10 = !DILocation(line: 30, column: 5, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 29, column: 3, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 26, column: 1, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 27, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 27, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) // CHECK:STDOUT: !14 = !DISubroutineType(types: !15) // CHECK:STDOUT: !15 = !{null, !16} // CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !17 = !{!18} // CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !13, type: !16) // CHECK:STDOUT: !19 = !DILocation(line: 27, column: 10, scope: !13) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.11d8dd9278293aa3:core.Destroy.Core", scope: null, file: !3, line: 27, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eff30dc40f4a53d2:core.Destroy.Core", scope: null, file: !3, line: 27, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) // CHECK:STDOUT: !21 = !DISubroutineType(types: !22) // CHECK:STDOUT: !22 = !{null, !23} // CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !24 = !{!25} // CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) // CHECK:STDOUT: !26 = !DILocation(line: 27, column: 10, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.42ca61a2d91a26c4:core.Destroy.Core", scope: null, file: !3, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.938741932578d142:core.Destroy.Core", scope: null, file: !3, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) // CHECK:STDOUT: !28 = !{!29} // CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !23) // CHECK:STDOUT: !30 = !DILocation(line: 29, column: 7, scope: !27) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b56bc24bdc8482e7:core.Destroy.Core", scope: null, file: !3, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !32) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b935d6615b90a01b:core.Destroy.Core", scope: null, file: !3, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !32) // CHECK:STDOUT: !32 = !{!33} // CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !31, type: !23) // CHECK:STDOUT: !34 = !DILocation(line: 29, column: 7, scope: !31) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f9310e30400aa50e:core.Destroy.Core", scope: null, file: !3, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !36) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.854750c92287bb79:core.Destroy.Core", scope: null, file: !3, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !36) // CHECK:STDOUT: !36 = !{!37} // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !23) // CHECK:STDOUT: !38 = !DILocation(line: 29, column: 7, scope: !35) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1891809c26fc7e83:core.Destroy.Core", scope: null, file: !3, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !40) +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.72fec7d6e0df4c57:core.Destroy.Core", scope: null, file: !3, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !40) // CHECK:STDOUT: !40 = !{!41} // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !39, type: !23) // CHECK:STDOUT: !42 = !DILocation(line: 29, column: 7, scope: !39) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.766445c24f925942:core.Destroy.Core", scope: null, file: !3, line: 27, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !44) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.88c97397fb274b67:core.Destroy.Core", scope: null, file: !3, line: 27, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !44) // CHECK:STDOUT: !44 = !{!45} // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !23) // CHECK:STDOUT: !46 = !DILocation(line: 27, column: 3, scope: !43) -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.EmptyRange.287e013a6206a934.Main:Iterate.Core.3a9d0e7b9ea8ab0d", scope: null, file: !3, line: 15, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !48) +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.EmptyRange.a081b942542726db.Main:Iterate.Core.c9f733d9bf35d2e5", scope: null, file: !3, line: 15, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !48) // CHECK:STDOUT: !48 = !{!49} // CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !47, type: !23) // CHECK:STDOUT: !50 = !DILocation(line: 16, column: 7, scope: !47) -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.EmptyRange.287e013a6206a934.Main:Iterate.Core.3a9d0e7b9ea8ab0d", scope: null, file: !3, line: 18, type: !52, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !54) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.EmptyRange.a081b942542726db.Main:Iterate.Core.c9f733d9bf35d2e5", scope: null, file: !3, line: 18, type: !52, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !54) // CHECK:STDOUT: !52 = !DISubroutineType(types: !53) // CHECK:STDOUT: !53 = !{!23, !23, !23} // CHECK:STDOUT: !54 = !{!55, !56} @@ -260,7 +260,7 @@ fn For() { // CHECK:STDOUT: !56 = !DILocalVariable(arg: 2, scope: !51, type: !23) // CHECK:STDOUT: !57 = !DILocation(line: 19, column: 14, scope: !51) // CHECK:STDOUT: !58 = !DILocation(line: 19, column: 7, scope: !51) -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.98974fba723f09b9", scope: null, file: !60, line: 36, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !63) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.66b735e0a187b4e4", scope: null, file: !60, line: 36, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !63) // CHECK:STDOUT: !60 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !61 = !DISubroutineType(types: !62) // CHECK:STDOUT: !62 = !{!23, !23} @@ -268,30 +268,30 @@ fn For() { // CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !59, type: !23) // CHECK:STDOUT: !65 = !DILocation(line: 37, column: 12, scope: !59) // CHECK:STDOUT: !66 = !DILocation(line: 37, column: 5, scope: !59) -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.98974fba723f09b9", scope: null, file: !60, line: 39, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !68) +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.66b735e0a187b4e4", scope: null, file: !60, line: 39, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !68) // CHECK:STDOUT: !68 = !{!69} // CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !67, type: !23) // CHECK:STDOUT: !70 = !DILocation(line: 40, column: 12, scope: !67) // CHECK:STDOUT: !71 = !DILocation(line: 40, column: 5, scope: !67) -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.98974fba723f09b9", scope: null, file: !60, line: 30, type: !73, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.66b735e0a187b4e4", scope: null, file: !60, line: 30, type: !73, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !73 = !DISubroutineType(types: !74) // CHECK:STDOUT: !74 = !{!23} // CHECK:STDOUT: !75 = !DILocation(line: 31, column: 12, scope: !72) // CHECK:STDOUT: !76 = !DILocation(line: 31, column: 5, scope: !72) -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.2d6936f0ed82c0eb:OptionalStorage.Core.3a9d0e7b9ea8ab0d", scope: null, file: !60, line: 141, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !78) +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.c9f733d9bf35d2e5", scope: null, file: !60, line: 141, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !78) // CHECK:STDOUT: !78 = !{!79} // CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !77, type: !23) // CHECK:STDOUT: !80 = !DILocation(line: 142, column: 12, scope: !77) // CHECK:STDOUT: !81 = !DILocation(line: 142, column: 5, scope: !77) -// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.2d6936f0ed82c0eb:OptionalStorage.Core.3a9d0e7b9ea8ab0d", scope: null, file: !60, line: 144, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !83) +// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.c9f733d9bf35d2e5", scope: null, file: !60, line: 144, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !83) // CHECK:STDOUT: !83 = !{!84} // CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !82, type: !23) // CHECK:STDOUT: !85 = !DILocation(line: 145, column: 12, scope: !82) // CHECK:STDOUT: !86 = !DILocation(line: 145, column: 5, scope: !82) -// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "None", linkageName: "_CNone.2d6936f0ed82c0eb:OptionalStorage.Core.3a9d0e7b9ea8ab0d", scope: null, file: !60, line: 125, type: !73, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.c9f733d9bf35d2e5", scope: null, file: !60, line: 125, type: !73, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !88 = !DILocation(line: 128, column: 5, scope: !87) // CHECK:STDOUT: !89 = !DILocation(line: 129, column: 5, scope: !87) -// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c9b880f9e94f16bf:Copy.Core.993ac60ec7fada7e", scope: null, file: !91, line: 58, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !92) +// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4e4edddc7580c79b:Copy.Core.58bedf1100cb91a8", scope: null, file: !91, line: 58, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !92) // CHECK:STDOUT: !91 = !DIFile(filename: "{{.*}}/prelude/copy.carbon", directory: "") // CHECK:STDOUT: !92 = !{!93} // CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !90, type: !23) diff --git a/toolchain/lower/testdata/for/break_continue.carbon b/toolchain/lower/testdata/for/break_continue.carbon index 8a646f557dae..e1603295ec94 100644 --- a/toolchain/lower/testdata/for/break_continue.carbon +++ b/toolchain/lower/testdata/for/break_continue.carbon @@ -49,11 +49,11 @@ fn For() { // CHECK:STDOUT: for.next: ; preds = %if.else.loc22, %if.then.loc22, %entry // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_33.1.temp), !dbg !8 // CHECK:STDOUT: call void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc20_33.1.temp, ptr %.loc20_32.1.temp, ptr %var), !dbg !8 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.326a4fc85c2e7ec7(ptr %.loc20_33.1.temp), !dbg !8 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.95ac245efc335d3f(ptr %.loc20_33.1.temp), !dbg !8 // CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next -// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.326a4fc85c2e7ec7(ptr %.loc20_33.1.temp), !dbg !8 +// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.95ac245efc335d3f(ptr %.loc20_33.1.temp), !dbg !8 // CHECK:STDOUT: %F.call = call i1 @_CF.Main(), !dbg !9 // CHECK:STDOUT: br i1 %F.call, label %if.then.loc21, label %if.else.loc21, !dbg !10 // CHECK:STDOUT: @@ -72,52 +72,52 @@ fn For() { // CHECK:STDOUT: br label %for.next, !dbg !16 // CHECK:STDOUT: // CHECK:STDOUT: for.done: ; preds = %if.then.loc21, %for.next -// CHECK:STDOUT: call void @"_COp.995b395658cad602:core.Destroy.Core"(ptr %.loc20_33.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.5695fe2039005267:core.Destroy.Core"(ptr %.loc20_32.1.temp), !dbg !7 +// CHECK:STDOUT: call void @"_COp.ab3effcb00e348a7:core.Destroy.Core"(ptr %.loc20_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.0d5da2659ce22e5f:core.Destroy.Core"(ptr %.loc20_32.1.temp), !dbg !7 // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CRange.Core(ptr sret({ i32, i32 }), i32) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // 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.bc4985fcac159a9a:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.0fc9634857315db2:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6d11ad784a4a1da0:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.69700c1fc1b2744c:core.Destroy.Core"(ptr %self) #0 !dbg !30 { // 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.a57fa900bde45b1f:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.278d9a31079e7ff2:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // 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.995b395658cad602:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.ab3effcb00e348a7:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // 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.e3832517c143d1dd:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.db43fa38232c28dd:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // 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.5695fe2039005267:core.Destroy.Core"(ptr %self) #0 !dbg !49 { +// CHECK:STDOUT: define weak_odr void @"_COp.0d5da2659ce22e5f:core.Destroy.Core"(ptr %self) #0 !dbg !49 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } @@ -147,25 +147,25 @@ fn For() { // CHECK:STDOUT: 6: ; preds = %0 // CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %cursor), !dbg !71 // CHECK:STDOUT: %7 = load i32, ptr %1, align 4, !dbg !72 -// CHECK:STDOUT: call void @_CSome.Optional.Core.326a4fc85c2e7ec7(ptr %return, i32 %7), !dbg !73 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %1), !dbg !66 +// CHECK:STDOUT: call void @_CSome.Optional.Core.95ac245efc335d3f(ptr %return, i32 %7), !dbg !73 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %1), !dbg !66 // CHECK:STDOUT: ret void, !dbg !74 // CHECK:STDOUT: // CHECK:STDOUT: 8: ; preds = %0 -// CHECK:STDOUT: call void @_CNone.Optional.Core.326a4fc85c2e7ec7(ptr %return), !dbg !75 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %1), !dbg !66 +// CHECK:STDOUT: call void @_CNone.Optional.Core.95ac245efc335d3f(ptr %return), !dbg !75 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %1), !dbg !66 // CHECK:STDOUT: ret void, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.326a4fc85c2e7ec7(ptr %self) #0 !dbg !77 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa"(ptr %self), !dbg !83 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.95ac245efc335d3f(ptr %self) #0 !dbg !77 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a"(ptr %self), !dbg !83 // CHECK:STDOUT: ret i1 %1, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.326a4fc85c2e7ec7(ptr %self) #0 !dbg !85 { -// CHECK:STDOUT: %1 = call i32 @"_CGet.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa"(ptr %self), !dbg !88 +// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.95ac245efc335d3f(ptr %self) #0 !dbg !85 { +// CHECK:STDOUT: %1 = call i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a"(ptr %self), !dbg !88 // CHECK:STDOUT: ret i32 %1, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -173,24 +173,24 @@ fn For() { // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !90 { -// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.157a183794b6b3f4.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17"(ptr %self, i32 1), !dbg !94 +// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.d395a13f81aa0e29.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661"(ptr %self, i32 1), !dbg !94 // CHECK:STDOUT: ret void, !dbg !95 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.326a4fc85c2e7ec7(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !96 { -// CHECK:STDOUT: call void @"_CSome.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa"(ptr %return, i32 %value), !dbg !101 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.95ac245efc335d3f(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !96 { +// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a"(ptr %return, i32 %value), !dbg !101 // CHECK:STDOUT: ret void, !dbg !102 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.326a4fc85c2e7ec7(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !103 { -// CHECK:STDOUT: call void @"_CNone.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa"(ptr %return), !dbg !106 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.95ac245efc335d3f(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !103 { +// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a"(ptr %return), !dbg !106 // CHECK:STDOUT: ret void, !dbg !107 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa"(ptr %value) #0 !dbg !108 { +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a"(ptr %value) #0 !dbg !108 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !111 // CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !111 // CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !111 @@ -198,15 +198,15 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa"(ptr %value) #0 !dbg !113 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a"(ptr %value) #0 !dbg !113 { // CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !116 // CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !116 // CHECK:STDOUT: ret i32 %1, !dbg !117 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.157a183794b6b3f4.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17"(ptr %self, i32 %other) #2 !dbg !118 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc"(i32 %other), !dbg !124 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.d395a13f81aa0e29.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661"(ptr %self, i32 %other) #2 !dbg !118 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47"(i32 %other), !dbg !124 // CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !125 // CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !125 // CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !125 @@ -214,7 +214,7 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !126 { +// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !126 { // CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !129 // CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !129 // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !130 @@ -223,14 +223,14 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !132 { +// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !132 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !133 // CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !133 // CHECK:STDOUT: ret void, !dbg !134 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc"(i32 %self) #0 !dbg !135 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47"(i32 %self) #0 !dbg !135 { // CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !140 // CHECK:STDOUT: ret i32 %1, !dbg !141 // CHECK:STDOUT: } @@ -268,7 +268,7 @@ fn For() { // CHECK:STDOUT: !15 = !DILocation(line: 23, column: 5, scope: !4) // CHECK:STDOUT: !16 = !DILocation(line: 20, column: 3, scope: !4) // CHECK:STDOUT: !17 = !DILocation(line: 19, column: 1, scope: !4) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !19, line: 24, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !19, line: 24, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !19 = !DIFile(filename: "{{.*}}/range.carbon", directory: "") // CHECK:STDOUT: !20 = !DISubroutineType(types: !21) // CHECK:STDOUT: !21 = !{null, !22} @@ -276,30 +276,30 @@ fn For() { // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !18, type: !22) // CHECK:STDOUT: !25 = !DILocation(line: 24, column: 39, scope: !18) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bc4985fcac159a9a:core.Destroy.Core", scope: null, file: !3, line: 20, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0fc9634857315db2:core.Destroy.Core", scope: null, file: !3, line: 20, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) // CHECK:STDOUT: !27 = !{!28} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !22) // CHECK:STDOUT: !29 = !DILocation(line: 20, column: 7, scope: !26) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6d11ad784a4a1da0:core.Destroy.Core", scope: null, file: !3, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.69700c1fc1b2744c:core.Destroy.Core", scope: null, file: !3, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) // CHECK:STDOUT: !31 = !DISubroutineType(types: !32) // CHECK:STDOUT: !32 = !{null, !33} // CHECK:STDOUT: !33 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !34 = !{!35} // CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !30, type: !33) // CHECK:STDOUT: !36 = !DILocation(line: 20, column: 7, scope: !30) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a57fa900bde45b1f:core.Destroy.Core", scope: null, file: !3, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !38) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.278d9a31079e7ff2:core.Destroy.Core", scope: null, file: !3, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !38) // CHECK:STDOUT: !38 = !{!39} // CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !33) // CHECK:STDOUT: !40 = !DILocation(line: 20, column: 7, scope: !37) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.995b395658cad602:core.Destroy.Core", scope: null, file: !3, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ab3effcb00e348a7:core.Destroy.Core", scope: null, file: !3, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) // CHECK:STDOUT: !42 = !{!43} // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !33) // CHECK:STDOUT: !44 = !DILocation(line: 20, column: 7, scope: !41) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e3832517c143d1dd:core.Destroy.Core", scope: null, file: !3, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.db43fa38232c28dd:core.Destroy.Core", scope: null, file: !3, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) // CHECK:STDOUT: !46 = !{!47} // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !33) // CHECK:STDOUT: !48 = !DILocation(line: 20, column: 18, scope: !45) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5695fe2039005267:core.Destroy.Core", scope: null, file: !3, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !50) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0d5da2659ce22e5f:core.Destroy.Core", scope: null, file: !3, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !50) // CHECK:STDOUT: !50 = !{!51} // CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !33) // CHECK:STDOUT: !52 = !DILocation(line: 20, column: 18, scope: !49) @@ -327,7 +327,7 @@ fn For() { // CHECK:STDOUT: !74 = !DILocation(line: 30, column: 9, scope: !60) // CHECK:STDOUT: !75 = !DILocation(line: 32, column: 16, scope: !60) // CHECK:STDOUT: !76 = !DILocation(line: 32, column: 9, scope: !60) -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.326a4fc85c2e7ec7", scope: null, file: !78, line: 36, type: !79, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !81) +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.95ac245efc335d3f", scope: null, file: !78, line: 36, type: !79, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !81) // CHECK:STDOUT: !78 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !79 = !DISubroutineType(types: !80) // CHECK:STDOUT: !80 = !{!33, !33} @@ -335,7 +335,7 @@ fn For() { // CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !77, type: !33) // CHECK:STDOUT: !83 = !DILocation(line: 37, column: 12, scope: !77) // CHECK:STDOUT: !84 = !DILocation(line: 37, column: 5, scope: !77) -// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.326a4fc85c2e7ec7", scope: null, file: !78, line: 39, type: !54, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !86) +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.95ac245efc335d3f", scope: null, file: !78, line: 39, type: !54, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !86) // CHECK:STDOUT: !86 = !{!87} // CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !85, type: !33) // CHECK:STDOUT: !88 = !DILocation(line: 40, column: 12, scope: !85) @@ -346,29 +346,29 @@ fn For() { // CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !90, type: !22) // CHECK:STDOUT: !94 = !DILocation(line: 372, column: 5, scope: !90) // CHECK:STDOUT: !95 = !DILocation(line: 370, column: 3, scope: !90) -// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.326a4fc85c2e7ec7", scope: null, file: !78, line: 33, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !99) +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.95ac245efc335d3f", scope: null, file: !78, line: 33, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !99) // CHECK:STDOUT: !97 = !DISubroutineType(types: !98) // CHECK:STDOUT: !98 = !{!33, !22} // CHECK:STDOUT: !99 = !{!100} // CHECK:STDOUT: !100 = !DILocalVariable(arg: 1, scope: !96, type: !22) // CHECK:STDOUT: !101 = !DILocation(line: 34, column: 12, scope: !96) // CHECK:STDOUT: !102 = !DILocation(line: 34, column: 5, scope: !96) -// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.326a4fc85c2e7ec7", scope: null, file: !78, line: 30, type: !104, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.95ac245efc335d3f", scope: null, file: !78, line: 30, type: !104, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !104 = !DISubroutineType(types: !105) // CHECK:STDOUT: !105 = !{!33} // CHECK:STDOUT: !106 = !DILocation(line: 31, column: 12, scope: !103) // CHECK:STDOUT: !107 = !DILocation(line: 31, column: 5, scope: !103) -// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa", scope: null, file: !78, line: 141, type: !79, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !109) +// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a", scope: null, file: !78, line: 141, type: !79, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !109) // CHECK:STDOUT: !109 = !{!110} // CHECK:STDOUT: !110 = !DILocalVariable(arg: 1, scope: !108, type: !33) // CHECK:STDOUT: !111 = !DILocation(line: 142, column: 12, scope: !108) // CHECK:STDOUT: !112 = !DILocation(line: 142, column: 5, scope: !108) -// CHECK:STDOUT: !113 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa", scope: null, file: !78, line: 144, type: !54, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !114) +// CHECK:STDOUT: !113 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a", scope: null, file: !78, line: 144, type: !54, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !114) // CHECK:STDOUT: !114 = !{!115} // CHECK:STDOUT: !115 = !DILocalVariable(arg: 1, scope: !113, type: !33) // CHECK:STDOUT: !116 = !DILocation(line: 145, column: 12, scope: !113) // CHECK:STDOUT: !117 = !DILocation(line: 145, column: 5, scope: !113) -// CHECK:STDOUT: !118 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.157a183794b6b3f4.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17", scope: null, file: !91, line: 306, type: !119, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !121) +// CHECK:STDOUT: !118 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.d395a13f81aa0e29.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661", scope: null, file: !91, line: 306, type: !119, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !121) // CHECK:STDOUT: !119 = !DISubroutineType(types: !120) // CHECK:STDOUT: !120 = !{null, !22, !22} // CHECK:STDOUT: !121 = !{!122, !123} @@ -376,16 +376,16 @@ fn For() { // CHECK:STDOUT: !123 = !DILocalVariable(arg: 2, scope: !118, type: !22) // CHECK:STDOUT: !124 = !DILocation(line: 4294967295, scope: !118) // CHECK:STDOUT: !125 = !DILocation(line: 306, column: 3, scope: !118) -// CHECK:STDOUT: !126 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa", scope: null, file: !78, line: 131, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !127) +// CHECK:STDOUT: !126 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a", scope: null, file: !78, line: 131, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !127) // CHECK:STDOUT: !127 = !{!128} // CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !126, type: !22) // CHECK:STDOUT: !129 = !DILocation(line: 137, column: 5, scope: !126) // CHECK:STDOUT: !130 = !DILocation(line: 138, column: 5, scope: !126) // CHECK:STDOUT: !131 = !DILocation(line: 139, column: 5, scope: !126) -// CHECK:STDOUT: !132 = distinct !DISubprogram(name: "None", linkageName: "_CNone.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa", scope: null, file: !78, line: 125, type: !104, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !132 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a", scope: null, file: !78, line: 125, type: !104, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !133 = !DILocation(line: 128, column: 5, scope: !132) // CHECK:STDOUT: !134 = !DILocation(line: 129, column: 5, scope: !132) -// CHECK:STDOUT: !135 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc", scope: null, file: !91, line: 63, type: !136, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !138) +// CHECK:STDOUT: !135 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47", scope: null, file: !91, line: 63, type: !136, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !138) // CHECK:STDOUT: !136 = !DISubroutineType(types: !137) // CHECK:STDOUT: !137 = !{!22, !22} // CHECK:STDOUT: !138 = !{!139} diff --git a/toolchain/lower/testdata/for/for.carbon b/toolchain/lower/testdata/for/for.carbon index 85d1778b6c03..52855f4af9d0 100644 --- a/toolchain/lower/testdata/for/for.carbon +++ b/toolchain/lower/testdata/for/for.carbon @@ -50,62 +50,62 @@ fn For() { // CHECK:STDOUT: for.next: ; preds = %for.body, %entry // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc21_33.1.temp), !dbg !8 // CHECK:STDOUT: call void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc21_33.1.temp, ptr %.loc21_32.1.temp, ptr %var), !dbg !8 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.326a4fc85c2e7ec7(ptr %.loc21_33.1.temp), !dbg !8 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.95ac245efc335d3f(ptr %.loc21_33.1.temp), !dbg !8 // CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next -// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.326a4fc85c2e7ec7(ptr %.loc21_33.1.temp), !dbg !8 +// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.95ac245efc335d3f(ptr %.loc21_33.1.temp), !dbg !8 // CHECK:STDOUT: call void @_CG.Main(), !dbg !10 // CHECK:STDOUT: br label %for.next, !dbg !11 // CHECK:STDOUT: // CHECK:STDOUT: for.done: ; preds = %for.next // CHECK:STDOUT: call void @_CH.Main(), !dbg !12 -// CHECK:STDOUT: call void @"_COp.995b395658cad602:core.Destroy.Core"(ptr %.loc21_33.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.5695fe2039005267:core.Destroy.Core"(ptr %.loc21_32.1.temp), !dbg !7 +// CHECK:STDOUT: call void @"_COp.ab3effcb00e348a7:core.Destroy.Core"(ptr %.loc21_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.0d5da2659ce22e5f:core.Destroy.Core"(ptr %.loc21_32.1.temp), !dbg !7 // CHECK:STDOUT: ret void, !dbg !13 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CRange.Core(ptr sret({ i32, i32 }), i32) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !14 { // 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.bc4985fcac159a9a:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.0fc9634857315db2:core.Destroy.Core"(ptr %self) #0 !dbg !22 { // 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.6d11ad784a4a1da0:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.69700c1fc1b2744c:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a57fa900bde45b1f:core.Destroy.Core"(ptr %self) #0 !dbg !33 { +// CHECK:STDOUT: define weak_odr void @"_COp.278d9a31079e7ff2:core.Destroy.Core"(ptr %self) #0 !dbg !33 { // 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.995b395658cad602:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.ab3effcb00e348a7:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // 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.e3832517c143d1dd:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.db43fa38232c28dd:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // 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.5695fe2039005267:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.0d5da2659ce22e5f:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } @@ -135,25 +135,25 @@ fn For() { // CHECK:STDOUT: 6: ; preds = %0 // CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %cursor), !dbg !67 // CHECK:STDOUT: %7 = load i32, ptr %1, align 4, !dbg !68 -// CHECK:STDOUT: call void @_CSome.Optional.Core.326a4fc85c2e7ec7(ptr %return, i32 %7), !dbg !69 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %1), !dbg !62 +// CHECK:STDOUT: call void @_CSome.Optional.Core.95ac245efc335d3f(ptr %return, i32 %7), !dbg !69 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %1), !dbg !62 // CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: // CHECK:STDOUT: 8: ; preds = %0 -// CHECK:STDOUT: call void @_CNone.Optional.Core.326a4fc85c2e7ec7(ptr %return), !dbg !71 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %1), !dbg !62 +// CHECK:STDOUT: call void @_CNone.Optional.Core.95ac245efc335d3f(ptr %return), !dbg !71 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %1), !dbg !62 // CHECK:STDOUT: ret void, !dbg !72 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.326a4fc85c2e7ec7(ptr %self) #0 !dbg !73 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa"(ptr %self), !dbg !79 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.95ac245efc335d3f(ptr %self) #0 !dbg !73 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a"(ptr %self), !dbg !79 // CHECK:STDOUT: ret i1 %1, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.326a4fc85c2e7ec7(ptr %self) #0 !dbg !81 { -// CHECK:STDOUT: %1 = call i32 @"_CGet.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa"(ptr %self), !dbg !84 +// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.95ac245efc335d3f(ptr %self) #0 !dbg !81 { +// CHECK:STDOUT: %1 = call i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a"(ptr %self), !dbg !84 // CHECK:STDOUT: ret i32 %1, !dbg !85 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -161,24 +161,24 @@ fn For() { // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !86 { -// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.157a183794b6b3f4.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17"(ptr %self, i32 1), !dbg !90 +// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.d395a13f81aa0e29.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661"(ptr %self, i32 1), !dbg !90 // CHECK:STDOUT: ret void, !dbg !91 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.326a4fc85c2e7ec7(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !92 { -// CHECK:STDOUT: call void @"_CSome.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa"(ptr %return, i32 %value), !dbg !97 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.95ac245efc335d3f(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !92 { +// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a"(ptr %return, i32 %value), !dbg !97 // CHECK:STDOUT: ret void, !dbg !98 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.326a4fc85c2e7ec7(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !99 { -// CHECK:STDOUT: call void @"_CNone.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa"(ptr %return), !dbg !102 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.95ac245efc335d3f(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !99 { +// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a"(ptr %return), !dbg !102 // CHECK:STDOUT: ret void, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa"(ptr %value) #0 !dbg !104 { +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a"(ptr %value) #0 !dbg !104 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !107 // CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !107 // CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !107 @@ -186,15 +186,15 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa"(ptr %value) #0 !dbg !109 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a"(ptr %value) #0 !dbg !109 { // CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !112 // CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !112 // CHECK:STDOUT: ret i32 %1, !dbg !113 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.157a183794b6b3f4.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17"(ptr %self, i32 %other) #2 !dbg !114 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc"(i32 %other), !dbg !120 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.d395a13f81aa0e29.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661"(ptr %self, i32 %other) #2 !dbg !114 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47"(i32 %other), !dbg !120 // CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !121 // CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !121 // CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !121 @@ -202,7 +202,7 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !122 { +// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !122 { // CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !125 // CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !125 // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !126 @@ -211,14 +211,14 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !128 { +// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !128 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !129 // CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !129 // CHECK:STDOUT: ret void, !dbg !130 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc"(i32 %self) #0 !dbg !131 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47"(i32 %self) #0 !dbg !131 { // CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !136 // CHECK:STDOUT: ret i32 %1, !dbg !137 // CHECK:STDOUT: } @@ -252,7 +252,7 @@ fn For() { // CHECK:STDOUT: !11 = !DILocation(line: 21, column: 3, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 24, column: 3, scope: !4) // CHECK:STDOUT: !13 = !DILocation(line: 19, column: 1, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !15, line: 24, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !15, line: 24, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) // CHECK:STDOUT: !15 = !DIFile(filename: "{{.*}}/range.carbon", directory: "") // CHECK:STDOUT: !16 = !DISubroutineType(types: !17) // CHECK:STDOUT: !17 = !{null, !18} @@ -260,30 +260,30 @@ fn For() { // CHECK:STDOUT: !19 = !{!20} // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !14, type: !18) // CHECK:STDOUT: !21 = !DILocation(line: 24, column: 39, scope: !14) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bc4985fcac159a9a:core.Destroy.Core", scope: null, file: !3, line: 21, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0fc9634857315db2:core.Destroy.Core", scope: null, file: !3, line: 21, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !22, type: !18) // CHECK:STDOUT: !25 = !DILocation(line: 21, column: 7, scope: !22) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6d11ad784a4a1da0:core.Destroy.Core", scope: null, file: !3, line: 21, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !30) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.69700c1fc1b2744c:core.Destroy.Core", scope: null, file: !3, line: 21, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !30) // CHECK:STDOUT: !27 = !DISubroutineType(types: !28) // CHECK:STDOUT: !28 = !{null, !29} // CHECK:STDOUT: !29 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !30 = !{!31} // CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !26, type: !29) // CHECK:STDOUT: !32 = !DILocation(line: 21, column: 7, scope: !26) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a57fa900bde45b1f:core.Destroy.Core", scope: null, file: !3, line: 21, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.278d9a31079e7ff2:core.Destroy.Core", scope: null, file: !3, line: 21, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) // CHECK:STDOUT: !34 = !{!35} // CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !29) // CHECK:STDOUT: !36 = !DILocation(line: 21, column: 7, scope: !33) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.995b395658cad602:core.Destroy.Core", scope: null, file: !3, line: 21, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !38) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ab3effcb00e348a7:core.Destroy.Core", scope: null, file: !3, line: 21, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !38) // CHECK:STDOUT: !38 = !{!39} // CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !29) // CHECK:STDOUT: !40 = !DILocation(line: 21, column: 7, scope: !37) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e3832517c143d1dd:core.Destroy.Core", scope: null, file: !3, line: 21, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.db43fa38232c28dd:core.Destroy.Core", scope: null, file: !3, line: 21, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) // CHECK:STDOUT: !42 = !{!43} // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !29) // CHECK:STDOUT: !44 = !DILocation(line: 21, column: 18, scope: !41) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5695fe2039005267:core.Destroy.Core", scope: null, file: !3, line: 21, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0d5da2659ce22e5f:core.Destroy.Core", scope: null, file: !3, line: 21, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) // CHECK:STDOUT: !46 = !{!47} // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !29) // CHECK:STDOUT: !48 = !DILocation(line: 21, column: 18, scope: !45) @@ -311,7 +311,7 @@ fn For() { // CHECK:STDOUT: !70 = !DILocation(line: 30, column: 9, scope: !56) // CHECK:STDOUT: !71 = !DILocation(line: 32, column: 16, scope: !56) // CHECK:STDOUT: !72 = !DILocation(line: 32, column: 9, scope: !56) -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.326a4fc85c2e7ec7", scope: null, file: !74, line: 36, type: !75, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !77) +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.95ac245efc335d3f", scope: null, file: !74, line: 36, type: !75, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !77) // CHECK:STDOUT: !74 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !75 = !DISubroutineType(types: !76) // CHECK:STDOUT: !76 = !{!29, !29} @@ -319,7 +319,7 @@ fn For() { // CHECK:STDOUT: !78 = !DILocalVariable(arg: 1, scope: !73, type: !29) // CHECK:STDOUT: !79 = !DILocation(line: 37, column: 12, scope: !73) // CHECK:STDOUT: !80 = !DILocation(line: 37, column: 5, scope: !73) -// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.326a4fc85c2e7ec7", scope: null, file: !74, line: 39, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !82) +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.95ac245efc335d3f", scope: null, file: !74, line: 39, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !82) // CHECK:STDOUT: !82 = !{!83} // CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !81, type: !29) // CHECK:STDOUT: !84 = !DILocation(line: 40, column: 12, scope: !81) @@ -330,29 +330,29 @@ fn For() { // CHECK:STDOUT: !89 = !DILocalVariable(arg: 1, scope: !86, type: !18) // CHECK:STDOUT: !90 = !DILocation(line: 372, column: 5, scope: !86) // CHECK:STDOUT: !91 = !DILocation(line: 370, column: 3, scope: !86) -// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.326a4fc85c2e7ec7", scope: null, file: !74, line: 33, type: !93, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !95) +// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.95ac245efc335d3f", scope: null, file: !74, line: 33, type: !93, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !95) // CHECK:STDOUT: !93 = !DISubroutineType(types: !94) // CHECK:STDOUT: !94 = !{!29, !18} // CHECK:STDOUT: !95 = !{!96} // CHECK:STDOUT: !96 = !DILocalVariable(arg: 1, scope: !92, type: !18) // CHECK:STDOUT: !97 = !DILocation(line: 34, column: 12, scope: !92) // CHECK:STDOUT: !98 = !DILocation(line: 34, column: 5, scope: !92) -// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.326a4fc85c2e7ec7", scope: null, file: !74, line: 30, type: !100, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.95ac245efc335d3f", scope: null, file: !74, line: 30, type: !100, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !100 = !DISubroutineType(types: !101) // CHECK:STDOUT: !101 = !{!29} // CHECK:STDOUT: !102 = !DILocation(line: 31, column: 12, scope: !99) // CHECK:STDOUT: !103 = !DILocation(line: 31, column: 5, scope: !99) -// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa", scope: null, file: !74, line: 141, type: !75, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !105) +// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a", scope: null, file: !74, line: 141, type: !75, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !105) // CHECK:STDOUT: !105 = !{!106} // CHECK:STDOUT: !106 = !DILocalVariable(arg: 1, scope: !104, type: !29) // CHECK:STDOUT: !107 = !DILocation(line: 142, column: 12, scope: !104) // CHECK:STDOUT: !108 = !DILocation(line: 142, column: 5, scope: !104) -// CHECK:STDOUT: !109 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa", scope: null, file: !74, line: 144, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !110) +// CHECK:STDOUT: !109 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a", scope: null, file: !74, line: 144, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !110) // CHECK:STDOUT: !110 = !{!111} // CHECK:STDOUT: !111 = !DILocalVariable(arg: 1, scope: !109, type: !29) // CHECK:STDOUT: !112 = !DILocation(line: 145, column: 12, scope: !109) // CHECK:STDOUT: !113 = !DILocation(line: 145, column: 5, scope: !109) -// CHECK:STDOUT: !114 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.157a183794b6b3f4.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17", scope: null, file: !87, line: 306, type: !115, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !117) +// CHECK:STDOUT: !114 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.d395a13f81aa0e29.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661", scope: null, file: !87, line: 306, type: !115, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !117) // CHECK:STDOUT: !115 = !DISubroutineType(types: !116) // CHECK:STDOUT: !116 = !{null, !18, !18} // CHECK:STDOUT: !117 = !{!118, !119} @@ -360,16 +360,16 @@ fn For() { // CHECK:STDOUT: !119 = !DILocalVariable(arg: 2, scope: !114, type: !18) // CHECK:STDOUT: !120 = !DILocation(line: 4294967295, scope: !114) // CHECK:STDOUT: !121 = !DILocation(line: 306, column: 3, scope: !114) -// CHECK:STDOUT: !122 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa", scope: null, file: !74, line: 131, type: !93, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !123) +// CHECK:STDOUT: !122 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a", scope: null, file: !74, line: 131, type: !93, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !123) // CHECK:STDOUT: !123 = !{!124} // CHECK:STDOUT: !124 = !DILocalVariable(arg: 1, scope: !122, type: !18) // CHECK:STDOUT: !125 = !DILocation(line: 137, column: 5, scope: !122) // CHECK:STDOUT: !126 = !DILocation(line: 138, column: 5, scope: !122) // CHECK:STDOUT: !127 = !DILocation(line: 139, column: 5, scope: !122) -// CHECK:STDOUT: !128 = distinct !DISubprogram(name: "None", linkageName: "_CNone.2d6936f0ed82c0eb:OptionalStorage.Core.7fca67425e2a63fa", scope: null, file: !74, line: 125, type: !100, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !128 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.39417379e302314a", scope: null, file: !74, line: 125, type: !100, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !129 = !DILocation(line: 128, column: 5, scope: !128) // CHECK:STDOUT: !130 = !DILocation(line: 129, column: 5, scope: !128) -// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc", scope: null, file: !87, line: 63, type: !132, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !134) +// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47", scope: null, file: !87, line: 63, type: !132, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !134) // CHECK:STDOUT: !132 = !DISubroutineType(types: !133) // CHECK:STDOUT: !133 = !{!18, !18} // CHECK:STDOUT: !134 = !{!135} diff --git a/toolchain/lower/testdata/function/call/form.carbon b/toolchain/lower/testdata/function/call/form.carbon index 08430d54854b..317f212a04ae 100644 --- a/toolchain/lower/testdata/function/call/form.carbon +++ b/toolchain/lower/testdata/function/call/form.carbon @@ -77,12 +77,12 @@ fn G() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %y.var), !dbg !7 // CHECK:STDOUT: store i32 0, ptr %y.var, align 4, !dbg !7 // CHECK:STDOUT: call void @_CF.Main(ptr %y.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %y.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %y.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !10 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !10 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } @@ -106,7 +106,7 @@ fn G() { // CHECK:STDOUT: !7 = !DILocation(line: 6, column: 3, scope: !4) // CHECK:STDOUT: !8 = !DILocation(line: 7, column: 3, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 6, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 6, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !11 = !DISubroutineType(types: !12) // CHECK:STDOUT: !12 = !{null, !13} // CHECK:STDOUT: !13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) @@ -125,12 +125,12 @@ fn G() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !7 // CHECK:STDOUT: store i32 0, ptr %x.var, align 4, !dbg !7 // CHECK:STDOUT: call void @_CF.Main(ptr %x.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %x.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %x.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !10 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !10 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } @@ -154,7 +154,7 @@ fn G() { // CHECK:STDOUT: !7 = !DILocation(line: 3, column: 6, scope: !4) // CHECK:STDOUT: !8 = !DILocation(line: 6, column: 3, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 3, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 3, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !11 = !DISubroutineType(types: !12) // CHECK:STDOUT: !12 = !{null, !13} // CHECK:STDOUT: !13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) @@ -225,12 +225,12 @@ fn G() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !7 // CHECK:STDOUT: %F.call = call i32 @_CF.Main(), !dbg !8 // CHECK:STDOUT: store i32 %F.call, ptr %x.var, align 4, !dbg !7 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %x.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %x.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !10 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !10 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } @@ -254,7 +254,7 @@ fn G() { // CHECK:STDOUT: !7 = !DILocation(line: 6, column: 14, scope: !4) // CHECK:STDOUT: !8 = !DILocation(line: 6, column: 27, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 6, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 6, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !11 = !DISubroutineType(types: !12) // CHECK:STDOUT: !12 = !{null, !13} // CHECK:STDOUT: !13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) diff --git a/toolchain/lower/testdata/function/call/i32.carbon b/toolchain/lower/testdata/function/call/i32.carbon index e4b9c8e4d456..6e1c901ee338 100644 --- a/toolchain/lower/testdata/function/call/i32.carbon +++ b/toolchain/lower/testdata/function/call/i32.carbon @@ -34,12 +34,12 @@ fn Main() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !14 // CHECK:STDOUT: %Echo.call = call i32 @_CEcho.Main(i32 1), !dbg !15 // CHECK:STDOUT: store i32 %Echo.call, ptr %_.var, align 4, !dbg !14 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %_.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %_.var), !dbg !14 // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !17 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } @@ -70,7 +70,7 @@ fn Main() { // CHECK:STDOUT: !14 = !DILocation(line: 18, column: 3, scope: !11) // CHECK:STDOUT: !15 = !DILocation(line: 18, column: 16, scope: !11) // CHECK:STDOUT: !16 = !DILocation(line: 17, column: 1, scope: !11) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 18, type: !18, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 18, type: !18, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) // CHECK:STDOUT: !18 = !DISubroutineType(types: !19) // CHECK:STDOUT: !19 = !{null, !7} // CHECK:STDOUT: !20 = !{!21} diff --git a/toolchain/lower/testdata/function/call/ref_param.carbon b/toolchain/lower/testdata/function/call/ref_param.carbon index 3e80e62efa3e..9b829af0f22e 100644 --- a/toolchain/lower/testdata/function/call/ref_param.carbon +++ b/toolchain/lower/testdata/function/call/ref_param.carbon @@ -33,12 +33,12 @@ fn Main() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !14 // CHECK:STDOUT: store i32 0, ptr %a.var, align 4, !dbg !14 // CHECK:STDOUT: call void @_CDoNothing.Main(ptr %a.var), !dbg !15 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %a.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %a.var), !dbg !14 // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !17 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !20 // CHECK:STDOUT: } @@ -69,7 +69,7 @@ fn Main() { // CHECK:STDOUT: !14 = !DILocation(line: 16, column: 3, scope: !11) // CHECK:STDOUT: !15 = !DILocation(line: 17, column: 3, scope: !11) // CHECK:STDOUT: !16 = !DILocation(line: 15, column: 1, scope: !11) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) // CHECK:STDOUT: !18 = !{!19} // CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7) // CHECK:STDOUT: !20 = !DILocation(line: 16, column: 3, scope: !17) diff --git a/toolchain/lower/testdata/function/call/ref_return.carbon b/toolchain/lower/testdata/function/call/ref_return.carbon index 014d05b3963d..1e7cdbb939cf 100644 --- a/toolchain/lower/testdata/function/call/ref_return.carbon +++ b/toolchain/lower/testdata/function/call/ref_return.carbon @@ -36,12 +36,12 @@ fn Main() { // CHECK:STDOUT: store i32 0, ptr %a.var, align 4, !dbg !15 // CHECK:STDOUT: %Echo.call = call ptr @_CEcho.Main(ptr %a.var), !dbg !16 // CHECK:STDOUT: store i32 1, ptr %Echo.call, align 4, !dbg !16 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %a.var), !dbg !15 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %a.var), !dbg !15 // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } @@ -73,7 +73,7 @@ fn Main() { // CHECK:STDOUT: !15 = !DILocation(line: 18, column: 3, scope: !12) // CHECK:STDOUT: !16 = !DILocation(line: 19, column: 3, scope: !12) // CHECK:STDOUT: !17 = !DILocation(line: 17, column: 1, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 18, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !21) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 18, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !21) // CHECK:STDOUT: !19 = !DISubroutineType(types: !20) // CHECK:STDOUT: !20 = !{null, !8} // CHECK:STDOUT: !21 = !{!22} diff --git a/toolchain/lower/testdata/function/call/struct_param.carbon b/toolchain/lower/testdata/function/call/struct_param.carbon index 9a4a6f92dd8b..62219f74c4df 100644 --- a/toolchain/lower/testdata/function/call/struct_param.carbon +++ b/toolchain/lower/testdata/function/call/struct_param.carbon @@ -19,7 +19,7 @@ fn Main() { // CHECK:STDOUT: ; ModuleID = 'struct_param.carbon' // CHECK:STDOUT: source_filename = "struct_param.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @struct.bcc.loc16_34.6 = internal constant { i32, i32 } { i32 2, i32 3 } +// CHECK:STDOUT: @struct.e3f.loc16_34.6 = internal constant { i32, i32 } { i32 2, i32 3 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF.Main({ i32 } %_, ptr %_1) #0 !dbg !4 { @@ -30,7 +30,7 @@ fn Main() { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main({ i32 } { i32 1 }, ptr @struct.bcc.loc16_34.6), !dbg !15 +// CHECK:STDOUT: call void @_CF.Main({ i32 } { i32 1 }, ptr @struct.e3f.loc16_34.6), !dbg !15 // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/function/call/tuple_param.carbon b/toolchain/lower/testdata/function/call/tuple_param.carbon index e6c3700c5b92..2dcbe849b686 100644 --- a/toolchain/lower/testdata/function/call/tuple_param.carbon +++ b/toolchain/lower/testdata/function/call/tuple_param.carbon @@ -19,7 +19,7 @@ fn Main() { // CHECK:STDOUT: ; ModuleID = 'tuple_param.carbon' // CHECK:STDOUT: source_filename = "tuple_param.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @tuple.7e8.loc16_20.6 = internal constant { i32, i32 } { i32 2, i32 3 } +// CHECK:STDOUT: @tuple.97c.loc16_20.6 = internal constant { i32, i32 } { i32 2, i32 3 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF.Main({ i32 } %_, ptr %_1) #0 !dbg !4 { @@ -30,7 +30,7 @@ fn Main() { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CMain.Main() #0 !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main({ i32 } { i32 1 }, ptr @tuple.7e8.loc16_20.6), !dbg !15 +// CHECK:STDOUT: call void @_CF.Main({ i32 } { i32 1 }, ptr @tuple.97c.loc16_20.6), !dbg !15 // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: 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 4215fd5576c2..82b9f443a488 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 @@ -21,7 +21,7 @@ fn Main() { // CHECK:STDOUT: ; ModuleID = 'tuple_param_with_return_slot.carbon' // CHECK:STDOUT: source_filename = "tuple_param_with_return_slot.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @tuple.7e8.loc18_20.6 = internal constant { i32, i32 } { i32 2, i32 3 } +// CHECK:STDOUT: @tuple.97c.loc18_20.6 = internal constant { i32, i32 } { i32 2, i32 3 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF.Main(ptr sret({ i32, i32, i32 }) %return, { i32 } %b, ptr %c) #0 !dbg !4 { @@ -45,19 +45,19 @@ fn Main() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc18_21.1.temp = alloca { i32, i32, i32 }, align 4, !dbg !19 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_21.1.temp), !dbg !19 -// CHECK:STDOUT: call void @_CF.Main(ptr %.loc18_21.1.temp, { i32 } { i32 1 }, ptr @tuple.7e8.loc18_20.6), !dbg !19 -// CHECK:STDOUT: call void @"_COp.d52e974a95b4c7a0:core.Destroy.Core"(ptr %.loc18_21.1.temp), !dbg !19 +// CHECK:STDOUT: call void @_CF.Main(ptr %.loc18_21.1.temp, { i32 } { i32 1 }, ptr @tuple.97c.loc18_20.6), !dbg !19 +// CHECK:STDOUT: call void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %.loc18_21.1.temp), !dbg !19 // CHECK:STDOUT: ret void, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !21 { // 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.d52e974a95b4c7a0:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %self) #0 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } @@ -92,14 +92,14 @@ fn Main() { // CHECK:STDOUT: !18 = !{null} // CHECK:STDOUT: !19 = !DILocation(line: 18, column: 3, scope: !16) // CHECK:STDOUT: !20 = !DILocation(line: 17, column: 1, scope: !16) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 18, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 18, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) // CHECK:STDOUT: !22 = !DISubroutineType(types: !23) // CHECK:STDOUT: !23 = !{null, !24} // CHECK:STDOUT: !24 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !25 = !{!26} // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !21, type: !24) // CHECK:STDOUT: !27 = !DILocation(line: 18, column: 3, scope: !21) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d52e974a95b4c7a0:core.Destroy.Core", scope: null, file: !3, line: 18, type: !29, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5784487ae90e2771:core.Destroy.Core", scope: null, file: !3, line: 18, type: !29, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) // CHECK:STDOUT: !29 = !DISubroutineType(types: !30) // CHECK:STDOUT: !30 = !{null, !7} // CHECK:STDOUT: !31 = !{!32} diff --git a/toolchain/lower/testdata/function/call/var_param.carbon b/toolchain/lower/testdata/function/call/var_param.carbon index c2436f8a3d9d..8a99b8972af2 100644 --- a/toolchain/lower/testdata/function/call/var_param.carbon +++ b/toolchain/lower/testdata/function/call/var_param.carbon @@ -34,12 +34,12 @@ fn Main() { // CHECK:STDOUT: store i32 0, ptr %a.var, align 4, !dbg !14 // CHECK:STDOUT: %.loc17 = load i32, ptr %a.var, align 4, !dbg !15 // CHECK:STDOUT: call void @_CDoNothing.Main(i32 %.loc17), !dbg !16 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %a.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %a.var), !dbg !14 // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } @@ -71,7 +71,7 @@ fn Main() { // CHECK:STDOUT: !15 = !DILocation(line: 17, column: 13, scope: !11) // CHECK:STDOUT: !16 = !DILocation(line: 17, column: 3, scope: !11) // CHECK:STDOUT: !17 = !DILocation(line: 15, column: 1, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) // CHECK:STDOUT: !19 = !{!20} // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !18, type: !7) // CHECK:STDOUT: !21 = !DILocation(line: 16, column: 3, scope: !18) diff --git a/toolchain/lower/testdata/function/definition/destroy.carbon b/toolchain/lower/testdata/function/definition/destroy.carbon index f8da44b94709..fa75f88e7caf 100644 --- a/toolchain/lower/testdata/function/definition/destroy.carbon +++ b/toolchain/lower/testdata/function/definition/destroy.carbon @@ -93,12 +93,12 @@ fn InitLet() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_6.2.temp), !dbg !14 // CHECK:STDOUT: call void @_CF.Main(ptr @C.val.loc12_6.6), !dbg !15 // CHECK:STDOUT: call void @_CG.Main(), !dbg !16 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr @C.val), !dbg !14 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr @C.val), !dbg !14 // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } @@ -130,7 +130,7 @@ fn InitLet() { // CHECK:STDOUT: !15 = !DILocation(line: 12, column: 3, scope: !11) // CHECK:STDOUT: !16 = !DILocation(line: 15, column: 3, scope: !11) // CHECK:STDOUT: !17 = !DILocation(line: 11, column: 1, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.907c496eccf2294c:core.Destroy.Core", scope: null, file: !3, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.807eb4f2d3ed7e54:core.Destroy.Core", scope: null, file: !3, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) // CHECK:STDOUT: !19 = !{!20} // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !18, type: !7) // CHECK:STDOUT: !21 = !DILocation(line: 12, column: 5, scope: !18) @@ -155,12 +155,12 @@ fn InitLet() { // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var, ptr align 1 @C.val.loc6, i64 0, i1 false), !dbg !14 // CHECK:STDOUT: call void @_CF.Main(ptr %_.var), !dbg !15 // CHECK:STDOUT: call void @_CG.Main(), !dbg !16 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %_.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %_.var), !dbg !14 // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } @@ -195,7 +195,7 @@ fn InitLet() { // CHECK:STDOUT: !15 = !DILocation(line: 12, column: 3, scope: !11) // CHECK:STDOUT: !16 = !DILocation(line: 15, column: 3, scope: !11) // CHECK:STDOUT: !17 = !DILocation(line: 11, column: 1, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.907c496eccf2294c:core.Destroy.Core", scope: null, file: !3, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.807eb4f2d3ed7e54:core.Destroy.Core", scope: null, file: !3, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) // CHECK:STDOUT: !19 = !{!20} // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !18, type: !7) // CHECK:STDOUT: !21 = !DILocation(line: 6, column: 6, scope: !18) @@ -227,12 +227,12 @@ fn InitLet() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !15 // CHECK:STDOUT: call void @_CF.Main(ptr %_.var), !dbg !16 // CHECK:STDOUT: call void @_CG.Main(), !dbg !17 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %_.var), !dbg !15 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %_.var), !dbg !15 // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } @@ -244,7 +244,7 @@ fn InitLet() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_16.1.temp), !dbg !26 // CHECK:STDOUT: call void @_CF.Main(ptr %.loc22_16.1.temp), !dbg !26 // CHECK:STDOUT: call void @_CG.Main(), !dbg !27 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %.loc22_16.1.temp), !dbg !26 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %.loc22_16.1.temp), !dbg !26 // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -282,7 +282,7 @@ fn InitLet() { // CHECK:STDOUT: !16 = !DILocation(line: 17, column: 14, scope: !12) // CHECK:STDOUT: !17 = !DILocation(line: 18, column: 3, scope: !12) // CHECK:STDOUT: !18 = !DILocation(line: 16, column: 1, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.907c496eccf2294c:core.Destroy.Core", scope: null, file: !3, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.807eb4f2d3ed7e54:core.Destroy.Core", scope: null, file: !3, line: 17, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) // CHECK:STDOUT: !20 = !DISubroutineType(types: !21) // CHECK:STDOUT: !21 = !{null, !7} // CHECK:STDOUT: !22 = !{!23} diff --git a/toolchain/lower/testdata/function/definition/var_param.carbon b/toolchain/lower/testdata/function/definition/var_param.carbon index b8cf0f897785..0884f64ee35c 100644 --- a/toolchain/lower/testdata/function/definition/var_param.carbon +++ b/toolchain/lower/testdata/function/definition/var_param.carbon @@ -92,24 +92,24 @@ fn Call() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc21), !dbg !44 // 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 !44 // CHECK:STDOUT: call void @_CLetThenVar.Main(i32 1, ptr %_.var.loc21), !dbg !49 -// CHECK:STDOUT: call void @"_COp.e321a4645f519d34:core.Destroy.Core"(ptr %_.var.loc21), !dbg !44 -// CHECK:STDOUT: call void @"_COp.e321a4645f519d34:core.Destroy.Core"(ptr @X.val), !dbg !43 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %_.var.loc20), !dbg !42 -// CHECK:STDOUT: call void @"_COp.e321a4645f519d34:core.Destroy.Core"(ptr %_.var.loc18_24), !dbg !41 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %_.var.loc18_12), !dbg !40 -// CHECK:STDOUT: call void @"_COp.e321a4645f519d34:core.Destroy.Core"(ptr %_.var.loc16), !dbg !39 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %_.var.loc15), !dbg !38 +// CHECK:STDOUT: call void @"_COp.429fc69ea0bf165d:core.Destroy.Core"(ptr %_.var.loc21), !dbg !44 +// CHECK:STDOUT: call void @"_COp.429fc69ea0bf165d:core.Destroy.Core"(ptr @X.val), !dbg !43 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %_.var.loc20), !dbg !42 +// CHECK:STDOUT: call void @"_COp.429fc69ea0bf165d:core.Destroy.Core"(ptr %_.var.loc18_24), !dbg !41 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %_.var.loc18_12), !dbg !40 +// CHECK:STDOUT: call void @"_COp.429fc69ea0bf165d:core.Destroy.Core"(ptr %_.var.loc16), !dbg !39 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %_.var.loc15), !dbg !38 // CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e321a4645f519d34:core.Destroy.Core"(ptr %self) #0 !dbg !51 { +// CHECK:STDOUT: define weak_odr void @"_COp.429fc69ea0bf165d:core.Destroy.Core"(ptr %self) #0 !dbg !51 { // 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.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !55 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !55 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } @@ -121,8 +121,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.e321a4645f519d34:core.Destroy.Core", { 3, 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.1fa36cd3e044ac37:core.Destroy.Core", { 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.429fc69ea0bf165d:core.Destroy.Core", { 3, 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.5e27612b9dd31a14:core.Destroy.Core", { 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: @@ -183,11 +183,11 @@ fn Call() { // CHECK:STDOUT: !48 = !DILocation(line: 27, column: 3, scope: !35) // CHECK:STDOUT: !49 = !DILocation(line: 28, column: 3, scope: !35) // CHECK:STDOUT: !50 = !DILocation(line: 23, column: 1, scope: !35) -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e321a4645f519d34:core.Destroy.Core", scope: null, file: !3, line: 21, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !52) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.429fc69ea0bf165d:core.Destroy.Core", scope: null, file: !3, line: 21, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !52) // CHECK:STDOUT: !52 = !{!53} // CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !51, type: !14) // CHECK:STDOUT: !54 = !DILocation(line: 21, column: 23, scope: !51) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !56) +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !56) // CHECK:STDOUT: !56 = !{!57} // CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !55, type: !7) // CHECK:STDOUT: !58 = !DILocation(line: 20, column: 15, scope: !55) diff --git a/toolchain/lower/testdata/function/generic/call.carbon b/toolchain/lower/testdata/function/generic/call.carbon index bea94cd116ed..198907d1ae70 100644 --- a/toolchain/lower/testdata/function/generic/call.carbon +++ b/toolchain/lower/testdata/function/generic/call.carbon @@ -52,40 +52,40 @@ fn G() { // CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !9 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %m.var), !dbg !10 // CHECK:STDOUT: store double 0.000000e+00, ptr %m.var, align 8, !dbg !10 -// CHECK:STDOUT: call void @_CF.Main.e3776368f2983b35(ptr %c.var), !dbg !11 -// CHECK:STDOUT: call void @_CF.Main.e3776368f2983b35(ptr %d.var), !dbg !12 +// CHECK:STDOUT: call void @_CF.Main.9522ff908e97e267(ptr %c.var), !dbg !11 +// CHECK:STDOUT: call void @_CF.Main.9522ff908e97e267(ptr %d.var), !dbg !12 // CHECK:STDOUT: %.loc27 = load i32, ptr %n.var, align 4, !dbg !13 -// CHECK:STDOUT: call void @_CF.Main.5e5386123d4b6287(i32 %.loc27), !dbg !14 +// CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %.loc27), !dbg !14 // CHECK:STDOUT: %.loc28 = load double, ptr %m.var, align 8, !dbg !15 -// CHECK:STDOUT: call void @_CF.Main.2dca51283dea946e(double %.loc28), !dbg !16 +// CHECK:STDOUT: call void @_CF.Main.073fbce68be6103e(double %.loc28), !dbg !16 // CHECK:STDOUT: call void @_CF.Main.5754c7a55c7cbe4a(%type zeroinitializer), !dbg !17 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %m.var), !dbg !10 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.931a2e35b026b8ba:core.Destroy.Core"(ptr %d.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %c.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %m.var), !dbg !10 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !9 +// CHECK:STDOUT: call void @"_COp.7fd3b6c3a3c15807:core.Destroy.Core"(ptr %d.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %c.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // 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.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.931a2e35b026b8ba:core.Destroy.Core"(ptr %self) #0 !dbg !33 { +// CHECK:STDOUT: define weak_odr void @"_COp.7fd3b6c3a3c15807:core.Destroy.Core"(ptr %self) #0 !dbg !33 { // 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.907c496eccf2294c:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } @@ -97,19 +97,19 @@ fn G() { // 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 @_CF.Main.e3776368f2983b35(ptr %_) #0 !dbg !41 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.9522ff908e97e267(ptr %_) #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.5e5386123d4b6287(i32 %_) #0 !dbg !45 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.84588f41d61dafba(i32 %_) #0 !dbg !45 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.2dca51283dea946e(double %_) #0 !dbg !49 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.073fbce68be6103e(double %_) #0 !dbg !49 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } @@ -123,7 +123,7 @@ fn G() { // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 3, 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.memcpy.p0.p0.i64, { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CF.Main.e3776368f2983b35, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CF.Main.9522ff908e97e267, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } @@ -150,37 +150,37 @@ fn G() { // CHECK:STDOUT: !16 = !DILocation(line: 28, column: 3, scope: !4) // CHECK:STDOUT: !17 = !DILocation(line: 29, column: 3, scope: !4) // CHECK:STDOUT: !18 = !DILocation(line: 19, column: 1, scope: !4) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e4fc30ecea9aa7e:core.Destroy.Core", scope: null, file: !3, line: 23, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.30d8007fdcc57f83:core.Destroy.Core", scope: null, file: !3, line: 23, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !20 = !DISubroutineType(types: !21) // CHECK:STDOUT: !21 = !{null, !22} // CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) // CHECK:STDOUT: !25 = !DILocation(line: 23, column: 3, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 22, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !30) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 22, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !30) // CHECK:STDOUT: !27 = !DISubroutineType(types: !28) // CHECK:STDOUT: !28 = !{null, !29} // CHECK:STDOUT: !29 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !30 = !{!31} // CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !26, type: !29) // CHECK:STDOUT: !32 = !DILocation(line: 22, column: 3, scope: !26) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.931a2e35b026b8ba:core.Destroy.Core", scope: null, file: !3, line: 21, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7fd3b6c3a3c15807:core.Destroy.Core", scope: null, file: !3, line: 21, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) // CHECK:STDOUT: !34 = !{!35} // CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !22) // CHECK:STDOUT: !36 = !DILocation(line: 21, column: 3, scope: !33) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.907c496eccf2294c:core.Destroy.Core", scope: null, file: !3, line: 20, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !38) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.807eb4f2d3ed7e54:core.Destroy.Core", scope: null, file: !3, line: 20, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !38) // CHECK:STDOUT: !38 = !{!39} // CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !22) // CHECK:STDOUT: !40 = !DILocation(line: 20, column: 3, scope: !37) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.e3776368f2983b35", scope: null, file: !3, line: 13, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.9522ff908e97e267", scope: null, file: !3, line: 13, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) // CHECK:STDOUT: !42 = !{!43} // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !22) // CHECK:STDOUT: !44 = !DILocation(line: 13, column: 1, scope: !41) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.5e5386123d4b6287", scope: null, file: !3, line: 13, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.84588f41d61dafba", scope: null, file: !3, line: 13, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) // CHECK:STDOUT: !46 = !{!47} // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !29) // CHECK:STDOUT: !48 = !DILocation(line: 13, column: 1, scope: !45) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2dca51283dea946e", scope: null, file: !3, line: 13, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !50) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.073fbce68be6103e", scope: null, file: !3, line: 13, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !50) // CHECK:STDOUT: !50 = !{!51} // CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !22) // CHECK:STDOUT: !52 = !DILocation(line: 13, column: 1, scope: !49) diff --git a/toolchain/lower/testdata/function/generic/call_basic.carbon b/toolchain/lower/testdata/function/generic/call_basic.carbon index 2b61cee68366..9e41df7b71bb 100644 --- a/toolchain/lower/testdata/function/generic/call_basic.carbon +++ b/toolchain/lower/testdata/function/generic/call_basic.carbon @@ -70,13 +70,13 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %self) #0 !dbg !17 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !20 // CHECK:STDOUT: } @@ -91,20 +91,20 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %p.var), !dbg !25 // CHECK:STDOUT: store double 1.000000e+00, ptr %p.var, align 8, !dbg !25 // CHECK:STDOUT: %.loc52 = load i32, ptr %n.var, align 4, !dbg !26 -// CHECK:STDOUT: call void @_CF.Main.5e5386123d4b6287(i32 %.loc52), !dbg !27 +// CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %.loc52), !dbg !27 // CHECK:STDOUT: %.loc53_18 = load i32, ptr %n.var, align 4, !dbg !28 -// CHECK:STDOUT: %G.call.loc53 = call i32 @_CG.Main.3f49c03818d8362d(i32 %.loc53_18), !dbg !29 +// CHECK:STDOUT: %G.call.loc53 = call i32 @_CG.Main.58016a73bff04416(i32 %.loc53_18), !dbg !29 // CHECK:STDOUT: %.loc54 = load double, ptr %p.var, align 8, !dbg !30 -// CHECK:STDOUT: call void @_CF.Main.2dca51283dea946e(double %.loc54), !dbg !31 +// CHECK:STDOUT: call void @_CF.Main.073fbce68be6103e(double %.loc54), !dbg !31 // CHECK:STDOUT: %.loc55_18 = load double, ptr %p.var, align 8, !dbg !32 -// CHECK:STDOUT: %G.call.loc55 = call double @_CG.Main.654604a4b99ed7de(double %.loc55_18), !dbg !33 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %p.var), !dbg !25 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !24 +// CHECK:STDOUT: %G.call.loc55 = call double @_CG.Main.fa1f0912a5bbe922(double %.loc55_18), !dbg !33 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %p.var), !dbg !25 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !24 // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !35 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !35 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } @@ -116,13 +116,13 @@ 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.5e5386123d4b6287(i32 %_) #0 !dbg !42 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.84588f41d61dafba(i32 %_) #0 !dbg !42 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.3f49c03818d8362d(i32 %x) #0 !dbg !46 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.58016a73bff04416(i32 %x) #0 !dbg !46 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc29_6.2.temp = alloca i32, align 4, !dbg !51 // CHECK:STDOUT: %.loc31_8.2.temp = alloca i32, align 4, !dbg !52 @@ -134,52 +134,52 @@ fn M() { // CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !58 // CHECK:STDOUT: %.loc43_6.2.temp = alloca {}, align 1, !dbg !59 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_6.2.temp), !dbg !51 -// CHECK:STDOUT: %H.call.loc29 = call i32 @_CH.Main.4bee6dcdea6ba756(i32 %x), !dbg !51 +// CHECK:STDOUT: %H.call.loc29 = call i32 @_CH.Main.5bd8d5767580997a(i32 %x), !dbg !51 // CHECK:STDOUT: store i32 %H.call.loc29, ptr %.loc29_6.2.temp, align 4, !dbg !51 -// CHECK:STDOUT: %H.call.loc30 = call %type @_CH.Main.7c9378dab434d9d8(%type zeroinitializer), !dbg !60 +// CHECK:STDOUT: %H.call.loc30 = call %type @_CH.Main.ee509b43cf4eb3c5(%type zeroinitializer), !dbg !60 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_8.2.temp), !dbg !52 -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.3f49c03818d8362d(i32 %x), !dbg !52 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.58016a73bff04416(i32 %x), !dbg !52 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_9.2.temp), !dbg !53 // CHECK:STDOUT: store i32 %G.call, ptr %.loc31_8.2.temp, align 4, !dbg !52 // CHECK:STDOUT: %.loc31_8.4 = load i32, ptr %.loc31_8.2.temp, align 4, !dbg !52 -// CHECK:STDOUT: %H.call.loc31 = call i32 @_CH.Main.4bee6dcdea6ba756(i32 %.loc31_8.4), !dbg !53 +// CHECK:STDOUT: %H.call.loc31 = call i32 @_CH.Main.5bd8d5767580997a(i32 %.loc31_8.4), !dbg !53 // CHECK:STDOUT: store i32 %H.call.loc31, ptr %.loc31_9.2.temp, align 4, !dbg !53 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var_f64.var), !dbg !54 // CHECK:STDOUT: store double poison, ptr %var_f64.var, align 8, !dbg !54 // CHECK:STDOUT: %.loc35_5 = load double, ptr %var_f64.var, align 8, !dbg !61 -// CHECK:STDOUT: %H.call.loc35 = call double @_CH.Main.925563b151bf93f6(double %.loc35_5), !dbg !62 +// CHECK:STDOUT: %H.call.loc35 = call double @_CH.Main.c27b765f2159c9a0(double %.loc35_5), !dbg !62 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !55 // CHECK:STDOUT: store ptr poison, ptr %ptr_i32.var, align 8, !dbg !55 // CHECK:STDOUT: %.loc37_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !63 -// CHECK:STDOUT: %H.call.loc37 = call ptr @_CH.Main.a87c59609561b819(ptr %.loc37_5), !dbg !64 +// CHECK:STDOUT: %H.call.loc37 = call ptr @_CH.Main.2621742a01881e29(ptr %.loc37_5), !dbg !64 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !56 // CHECK:STDOUT: store ptr poison, ptr %ptr_f64.var, align 8, !dbg !56 // CHECK:STDOUT: %.loc39_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !65 -// CHECK:STDOUT: %H.call.loc39 = call ptr @_CH.Main.a87c59609561b819(ptr %.loc39_5), !dbg !66 +// CHECK:STDOUT: %H.call.loc39 = call ptr @_CH.Main.2621742a01881e29(ptr %.loc39_5), !dbg !66 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i8.var), !dbg !57 // CHECK:STDOUT: store ptr poison, ptr %ptr_i8.var, align 8, !dbg !57 // CHECK:STDOUT: %.loc41_5 = load ptr, ptr %ptr_i8.var, align 8, !dbg !67 -// CHECK:STDOUT: %H.call.loc41 = call ptr @_CH.Main.a87c59609561b819(ptr %.loc41_5), !dbg !68 +// CHECK:STDOUT: %H.call.loc41 = call ptr @_CH.Main.2621742a01881e29(ptr %.loc41_5), !dbg !68 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !58 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc43_6.2.temp), !dbg !59 -// CHECK:STDOUT: call void @_CH.Main.23ea5646f3728a97(ptr %.loc43_6.2.temp, ptr %c.var), !dbg !59 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %.loc43_6.2.temp), !dbg !59 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %c.var), !dbg !58 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %var_f64.var), !dbg !54 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %.loc31_9.2.temp), !dbg !53 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %.loc31_8.2.temp), !dbg !52 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %.loc29_6.2.temp), !dbg !51 +// CHECK:STDOUT: call void @_CH.Main.4d597ec621e4ba00(ptr %.loc43_6.2.temp, ptr %c.var), !dbg !59 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %.loc43_6.2.temp), !dbg !59 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %c.var), !dbg !58 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %var_f64.var), !dbg !54 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %.loc31_9.2.temp), !dbg !53 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %.loc31_8.2.temp), !dbg !52 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %.loc29_6.2.temp), !dbg !51 // CHECK:STDOUT: ret i32 %x, !dbg !69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.2dca51283dea946e(double %_) #0 !dbg !70 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.073fbce68be6103e(double %_) #0 !dbg !70 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !73 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CG.Main.654604a4b99ed7de(double %x) #0 !dbg !74 { +// CHECK:STDOUT: define linkonce_odr double @_CG.Main.fa1f0912a5bbe922(double %x) #0 !dbg !74 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc29_6.2.temp = alloca double, align 8, !dbg !77 // CHECK:STDOUT: %.loc31_8.2.temp = alloca double, align 8, !dbg !78 @@ -191,70 +191,70 @@ fn M() { // CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !84 // CHECK:STDOUT: %.loc43_6.2.temp = alloca {}, align 1, !dbg !85 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_6.2.temp), !dbg !77 -// CHECK:STDOUT: %H.call.loc29 = call double @_CH.Main.925563b151bf93f6(double %x), !dbg !77 +// CHECK:STDOUT: %H.call.loc29 = call double @_CH.Main.c27b765f2159c9a0(double %x), !dbg !77 // CHECK:STDOUT: store double %H.call.loc29, ptr %.loc29_6.2.temp, align 8, !dbg !77 -// CHECK:STDOUT: %H.call.loc30 = call %type @_CH.Main.7c9378dab434d9d8(%type zeroinitializer), !dbg !86 +// CHECK:STDOUT: %H.call.loc30 = call %type @_CH.Main.ee509b43cf4eb3c5(%type zeroinitializer), !dbg !86 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_8.2.temp), !dbg !78 -// CHECK:STDOUT: %G.call = call double @_CG.Main.654604a4b99ed7de(double %x), !dbg !78 +// CHECK:STDOUT: %G.call = call double @_CG.Main.fa1f0912a5bbe922(double %x), !dbg !78 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_9.2.temp), !dbg !79 // CHECK:STDOUT: store double %G.call, ptr %.loc31_8.2.temp, align 8, !dbg !78 // CHECK:STDOUT: %.loc31_8.4 = load double, ptr %.loc31_8.2.temp, align 8, !dbg !78 -// CHECK:STDOUT: %H.call.loc31 = call double @_CH.Main.925563b151bf93f6(double %.loc31_8.4), !dbg !79 +// CHECK:STDOUT: %H.call.loc31 = call double @_CH.Main.c27b765f2159c9a0(double %.loc31_8.4), !dbg !79 // CHECK:STDOUT: store double %H.call.loc31, ptr %.loc31_9.2.temp, align 8, !dbg !79 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var_f64.var), !dbg !80 // CHECK:STDOUT: store double poison, ptr %var_f64.var, align 8, !dbg !80 // CHECK:STDOUT: %.loc35_5 = load double, ptr %var_f64.var, align 8, !dbg !87 -// CHECK:STDOUT: %H.call.loc35 = call double @_CH.Main.925563b151bf93f6(double %.loc35_5), !dbg !88 +// CHECK:STDOUT: %H.call.loc35 = call double @_CH.Main.c27b765f2159c9a0(double %.loc35_5), !dbg !88 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !81 // CHECK:STDOUT: store ptr poison, ptr %ptr_i32.var, align 8, !dbg !81 // CHECK:STDOUT: %.loc37_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !89 -// CHECK:STDOUT: %H.call.loc37 = call ptr @_CH.Main.a87c59609561b819(ptr %.loc37_5), !dbg !90 +// CHECK:STDOUT: %H.call.loc37 = call ptr @_CH.Main.2621742a01881e29(ptr %.loc37_5), !dbg !90 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !82 // CHECK:STDOUT: store ptr poison, ptr %ptr_f64.var, align 8, !dbg !82 // CHECK:STDOUT: %.loc39_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !91 -// CHECK:STDOUT: %H.call.loc39 = call ptr @_CH.Main.a87c59609561b819(ptr %.loc39_5), !dbg !92 +// CHECK:STDOUT: %H.call.loc39 = call ptr @_CH.Main.2621742a01881e29(ptr %.loc39_5), !dbg !92 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i8.var), !dbg !83 // CHECK:STDOUT: store ptr poison, ptr %ptr_i8.var, align 8, !dbg !83 // CHECK:STDOUT: %.loc41_5 = load ptr, ptr %ptr_i8.var, align 8, !dbg !93 -// CHECK:STDOUT: %H.call.loc41 = call ptr @_CH.Main.a87c59609561b819(ptr %.loc41_5), !dbg !94 +// CHECK:STDOUT: %H.call.loc41 = call ptr @_CH.Main.2621742a01881e29(ptr %.loc41_5), !dbg !94 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !84 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc43_6.2.temp), !dbg !85 -// CHECK:STDOUT: call void @_CH.Main.23ea5646f3728a97(ptr %.loc43_6.2.temp, ptr %c.var), !dbg !85 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %.loc43_6.2.temp), !dbg !85 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %c.var), !dbg !84 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %var_f64.var), !dbg !80 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %.loc31_9.2.temp), !dbg !79 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %.loc31_8.2.temp), !dbg !78 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %.loc29_6.2.temp), !dbg !77 +// CHECK:STDOUT: call void @_CH.Main.4d597ec621e4ba00(ptr %.loc43_6.2.temp, ptr %c.var), !dbg !85 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %.loc43_6.2.temp), !dbg !85 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %c.var), !dbg !84 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %var_f64.var), !dbg !80 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %.loc31_9.2.temp), !dbg !79 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %.loc31_8.2.temp), !dbg !78 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %.loc29_6.2.temp), !dbg !77 // CHECK:STDOUT: ret double %x, !dbg !95 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CH.Main.4bee6dcdea6ba756(i32 %x) #0 !dbg !96 { +// CHECK:STDOUT: define linkonce_odr i32 @_CH.Main.5bd8d5767580997a(i32 %x) #0 !dbg !96 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret i32 %x, !dbg !99 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr %type @_CH.Main.7c9378dab434d9d8(%type %x) #0 !dbg !100 { +// CHECK:STDOUT: define linkonce_odr %type @_CH.Main.ee509b43cf4eb3c5(%type %x) #0 !dbg !100 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret %type %x, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CH.Main.925563b151bf93f6(double %x) #0 !dbg !104 { +// CHECK:STDOUT: define linkonce_odr double @_CH.Main.c27b765f2159c9a0(double %x) #0 !dbg !104 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret double %x, !dbg !107 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CH.Main.a87c59609561b819(ptr %x) #0 !dbg !108 { +// CHECK:STDOUT: define linkonce_odr ptr @_CH.Main.2621742a01881e29(ptr %x) #0 !dbg !108 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret ptr %x, !dbg !111 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CH.Main.23ea5646f3728a97(ptr sret({}) %return, ptr %x) #0 !dbg !112 { +// CHECK:STDOUT: define linkonce_odr void @_CH.Main.4d597ec621e4ba00(ptr sret({}) %return, ptr %x) #0 !dbg !112 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @"_COp.C.Main:Copy.Core"(ptr %return, ptr %x), !dbg !115 // CHECK:STDOUT: ret void, !dbg !116 @@ -262,11 +262,11 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 18 } -// CHECK:STDOUT: uselistorder ptr @_CH.Main.4bee6dcdea6ba756, { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CH.Main.7c9378dab434d9d8, { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CH.Main.925563b151bf93f6, { 3, 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CH.Main.a87c59609561b819, { 5, 2, 0, 4, 3, 1 } -// CHECK:STDOUT: uselistorder ptr @_CH.Main.23ea5646f3728a97, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CH.Main.5bd8d5767580997a, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CH.Main.ee509b43cf4eb3c5, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CH.Main.c27b765f2159c9a0, { 3, 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CH.Main.2621742a01881e29, { 5, 2, 0, 4, 3, 1 } +// CHECK:STDOUT: uselistorder ptr @_CH.Main.4d597ec621e4ba00, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } @@ -285,13 +285,13 @@ fn M() { // CHECK:STDOUT: !8 = !{!9} // CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) // CHECK:STDOUT: !10 = !DILocation(line: 15, column: 42, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.907c496eccf2294c:core.Destroy.Core", scope: null, file: !3, line: 43, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.807eb4f2d3ed7e54:core.Destroy.Core", scope: null, file: !3, line: 43, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !12 = !DISubroutineType(types: !13) // CHECK:STDOUT: !13 = !{null, !7} // CHECK:STDOUT: !14 = !{!15} // CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !11, type: !7) // CHECK:STDOUT: !16 = !DILocation(line: 43, column: 3, scope: !11) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e4fc30ecea9aa7e:core.Destroy.Core", scope: null, file: !3, line: 34, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.30d8007fdcc57f83:core.Destroy.Core", scope: null, file: !3, line: 34, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) // CHECK:STDOUT: !18 = !{!19} // CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7) // CHECK:STDOUT: !20 = !DILocation(line: 34, column: 3, scope: !17) @@ -309,18 +309,18 @@ fn M() { // CHECK:STDOUT: !32 = !DILocation(line: 55, column: 18, scope: !21) // CHECK:STDOUT: !33 = !DILocation(line: 55, column: 16, scope: !21) // CHECK:STDOUT: !34 = !DILocation(line: 48, column: 1, scope: !21) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 53, type: !36, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !39) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 53, type: !36, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !39) // CHECK:STDOUT: !36 = !DISubroutineType(types: !37) // CHECK:STDOUT: !37 = !{null, !38} // CHECK:STDOUT: !38 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !39 = !{!40} // CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !35, type: !38) // CHECK:STDOUT: !41 = !DILocation(line: 53, column: 16, scope: !35) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.5e5386123d4b6287", scope: null, file: !3, line: 19, type: !36, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !43) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.84588f41d61dafba", scope: null, file: !3, line: 19, type: !36, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !43) // CHECK:STDOUT: !43 = !{!44} // CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !42, type: !38) // CHECK:STDOUT: !45 = !DILocation(line: 19, column: 1, scope: !42) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.3f49c03818d8362d", scope: null, file: !3, line: 28, type: !47, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !49) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.58016a73bff04416", scope: null, file: !3, line: 28, type: !47, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !49) // CHECK:STDOUT: !47 = !DISubroutineType(types: !48) // CHECK:STDOUT: !48 = !{!38, !38} // CHECK:STDOUT: !49 = !{!50} @@ -344,11 +344,11 @@ fn M() { // CHECK:STDOUT: !67 = !DILocation(line: 41, column: 5, scope: !46) // CHECK:STDOUT: !68 = !DILocation(line: 41, column: 3, scope: !46) // CHECK:STDOUT: !69 = !DILocation(line: 45, column: 3, scope: !46) -// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2dca51283dea946e", scope: null, file: !3, line: 19, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !71) +// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.073fbce68be6103e", scope: null, file: !3, line: 19, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !71) // CHECK:STDOUT: !71 = !{!72} // CHECK:STDOUT: !72 = !DILocalVariable(arg: 1, scope: !70, type: !7) // CHECK:STDOUT: !73 = !DILocation(line: 19, column: 1, scope: !70) -// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.654604a4b99ed7de", scope: null, file: !3, line: 28, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !75) +// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.fa1f0912a5bbe922", scope: null, file: !3, line: 28, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !75) // CHECK:STDOUT: !75 = !{!76} // CHECK:STDOUT: !76 = !DILocalVariable(arg: 1, scope: !74, type: !7) // CHECK:STDOUT: !77 = !DILocation(line: 29, column: 3, scope: !74) @@ -370,23 +370,23 @@ fn M() { // CHECK:STDOUT: !93 = !DILocation(line: 41, column: 5, scope: !74) // CHECK:STDOUT: !94 = !DILocation(line: 41, column: 3, scope: !74) // CHECK:STDOUT: !95 = !DILocation(line: 45, column: 3, scope: !74) -// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 22, type: !47, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !97) +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.5bd8d5767580997a", scope: null, file: !3, line: 22, type: !47, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !97) // CHECK:STDOUT: !97 = !{!98} // CHECK:STDOUT: !98 = !DILocalVariable(arg: 1, scope: !96, type: !38) // CHECK:STDOUT: !99 = !DILocation(line: 23, column: 3, scope: !96) -// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.7c9378dab434d9d8", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !101) +// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.ee509b43cf4eb3c5", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !101) // CHECK:STDOUT: !101 = !{!102} // CHECK:STDOUT: !102 = !DILocalVariable(arg: 1, scope: !100, type: !7) // CHECK:STDOUT: !103 = !DILocation(line: 23, column: 3, scope: !100) -// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.925563b151bf93f6", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !105) +// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.c27b765f2159c9a0", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !105) // CHECK:STDOUT: !105 = !{!106} // CHECK:STDOUT: !106 = !DILocalVariable(arg: 1, scope: !104, type: !7) // CHECK:STDOUT: !107 = !DILocation(line: 23, column: 3, scope: !104) -// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.a87c59609561b819", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !109) +// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.2621742a01881e29", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !109) // CHECK:STDOUT: !109 = !{!110} // CHECK:STDOUT: !110 = !DILocalVariable(arg: 1, scope: !108, type: !7) // CHECK:STDOUT: !111 = !DILocation(line: 23, column: 3, scope: !108) -// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.23ea5646f3728a97", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !113) +// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.4d597ec621e4ba00", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !113) // CHECK:STDOUT: !113 = !{!114} // CHECK:STDOUT: !114 = !DILocalVariable(arg: 1, scope: !112, type: !7) // CHECK:STDOUT: !115 = !DILocation(line: 23, column: 10, scope: !112) diff --git a/toolchain/lower/testdata/function/generic/call_basic_depth.carbon b/toolchain/lower/testdata/function/generic/call_basic_depth.carbon index 63c195423b6f..33021c3d6f44 100644 --- a/toolchain/lower/testdata/function/generic/call_basic_depth.carbon +++ b/toolchain/lower/testdata/function/generic/call_basic_depth.carbon @@ -49,18 +49,18 @@ fn M() -> i32 { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %m.var), !dbg !9 // CHECK:STDOUT: store i32 poison, ptr %m.var, align 4, !dbg !9 // CHECK:STDOUT: %.loc34 = load i32, ptr %n.var, align 4, !dbg !10 -// CHECK:STDOUT: call void @_CF.Main.5e5386123d4b6287(i32 %.loc34), !dbg !11 +// CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %.loc34), !dbg !11 // CHECK:STDOUT: %.loc35_9 = load i32, ptr %n.var, align 4, !dbg !12 -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.3f49c03818d8362d(i32 %.loc35_9), !dbg !13 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.58016a73bff04416(i32 %.loc35_9), !dbg !13 // CHECK:STDOUT: store i32 %G.call, ptr %m.var, align 4, !dbg !14 // CHECK:STDOUT: %.loc36 = load i32, ptr %m.var, align 4, !dbg !15 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %m.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %m.var), !dbg !9 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !8 // CHECK:STDOUT: ret i32 %.loc36, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !17 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } @@ -69,32 +69,32 @@ fn M() -> i32 { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.5e5386123d4b6287(i32 %_) #0 !dbg !23 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.84588f41d61dafba(i32 %_) #0 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.3f49c03818d8362d(i32 %x) #0 !dbg !27 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.58016a73bff04416(i32 %x) #0 !dbg !27 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc25_6.2.temp = alloca i32, align 4, !dbg !32 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_6.2.temp), !dbg !32 -// CHECK:STDOUT: %H.call = call i32 @_CH.Main.4bee6dcdea6ba756(i32 %x), !dbg !32 +// CHECK:STDOUT: %H.call = call i32 @_CH.Main.5bd8d5767580997a(i32 %x), !dbg !32 // CHECK:STDOUT: store i32 %H.call, ptr %.loc25_6.2.temp, align 4, !dbg !32 -// CHECK:STDOUT: call void @_CF.Main.5e5386123d4b6287(i32 %x), !dbg !33 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %.loc25_6.2.temp), !dbg !32 +// CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %x), !dbg !33 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %.loc25_6.2.temp), !dbg !32 // CHECK:STDOUT: ret i32 %x, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CH.Main.4bee6dcdea6ba756(i32 %x) #0 !dbg !35 { +// CHECK:STDOUT: define linkonce_odr i32 @_CH.Main.5bd8d5767580997a(i32 %x) #0 !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.5e5386123d4b6287(i32 %x), !dbg !38 +// CHECK:STDOUT: call void @_CF.Main.84588f41d61dafba(i32 %x), !dbg !38 // CHECK:STDOUT: ret i32 %x, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.1fa36cd3e044ac37:core.Destroy.Core", { 0, 2, 1 } +// CHECK:STDOUT: uselistorder ptr @"_COp.5e27612b9dd31a14:core.Destroy.Core", { 0, 2, 1 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 2, 1 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -120,17 +120,17 @@ fn M() -> i32 { // CHECK:STDOUT: !14 = !DILocation(line: 35, column: 3, scope: !4) // CHECK:STDOUT: !15 = !DILocation(line: 36, column: 10, scope: !4) // CHECK:STDOUT: !16 = !DILocation(line: 36, column: 3, scope: !4) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 35, type: !18, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 35, type: !18, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) // CHECK:STDOUT: !18 = !DISubroutineType(types: !19) // CHECK:STDOUT: !19 = !{null, !7} // CHECK:STDOUT: !20 = !{!21} // CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !17, type: !7) // CHECK:STDOUT: !22 = !DILocation(line: 35, column: 7, scope: !17) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.5e5386123d4b6287", scope: null, file: !3, line: 16, type: !18, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.84588f41d61dafba", scope: null, file: !3, line: 16, type: !18, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) // CHECK:STDOUT: !24 = !{!25} // CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !23, type: !7) // CHECK:STDOUT: !26 = !DILocation(line: 16, column: 1, scope: !23) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.3f49c03818d8362d", scope: null, file: !3, line: 24, type: !28, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !30) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.58016a73bff04416", scope: null, file: !3, line: 24, type: !28, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !30) // CHECK:STDOUT: !28 = !DISubroutineType(types: !29) // CHECK:STDOUT: !29 = !{!7, !7} // CHECK:STDOUT: !30 = !{!31} @@ -138,7 +138,7 @@ fn M() -> i32 { // CHECK:STDOUT: !32 = !DILocation(line: 25, column: 3, scope: !27) // CHECK:STDOUT: !33 = !DILocation(line: 26, column: 3, scope: !27) // CHECK:STDOUT: !34 = !DILocation(line: 27, column: 3, scope: !27) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 19, type: !28, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !36) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "H", linkageName: "_CH.Main.5bd8d5767580997a", scope: null, file: !3, line: 19, type: !28, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !36) // CHECK:STDOUT: !36 = !{!37} // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !7) // CHECK:STDOUT: !38 = !DILocation(line: 20, column: 3, scope: !35) diff --git a/toolchain/lower/testdata/function/generic/call_dedup_ptr.carbon b/toolchain/lower/testdata/function/generic/call_dedup_ptr.carbon index e344f6c1ab3c..9fa09b74c70d 100644 --- a/toolchain/lower/testdata/function/generic/call_dedup_ptr.carbon +++ b/toolchain/lower/testdata/function/generic/call_dedup_ptr.carbon @@ -35,15 +35,15 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !7 // CHECK:STDOUT: store ptr poison, ptr %ptr_i32.var, align 8, !dbg !7 // CHECK:STDOUT: %.loc19_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !10 -// CHECK:STDOUT: %F.call.loc19 = call ptr @_CF.Main.a87c59609561b819(ptr %.loc19_5), !dbg !11 +// CHECK:STDOUT: %F.call.loc19 = call ptr @_CF.Main.2621742a01881e29(ptr %.loc19_5), !dbg !11 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !8 // CHECK:STDOUT: store ptr poison, ptr %ptr_f64.var, align 8, !dbg !8 // CHECK:STDOUT: %.loc21_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !12 -// CHECK:STDOUT: %F.call.loc21 = call ptr @_CF.Main.a87c59609561b819(ptr %.loc21_5), !dbg !13 +// CHECK:STDOUT: %F.call.loc21 = call ptr @_CF.Main.2621742a01881e29(ptr %.loc21_5), !dbg !13 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i8.var), !dbg !9 // CHECK:STDOUT: store ptr poison, ptr %ptr_i8.var, align 8, !dbg !9 // CHECK:STDOUT: %.loc23_5 = load ptr, ptr %ptr_i8.var, align 8, !dbg !14 -// CHECK:STDOUT: %F.call.loc23 = call ptr @_CF.Main.a87c59609561b819(ptr %.loc23_5), !dbg !15 +// CHECK:STDOUT: %F.call.loc23 = call ptr @_CF.Main.2621742a01881e29(ptr %.loc23_5), !dbg !15 // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -51,14 +51,14 @@ 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 ptr @_CF.Main.a87c59609561b819(ptr %x) #0 !dbg !17 { +// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.2621742a01881e29(ptr %x) #0 !dbg !17 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret ptr %x, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CF.Main.a87c59609561b819, { 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CF.Main.2621742a01881e29, { 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } @@ -83,7 +83,7 @@ fn M() { // CHECK:STDOUT: !14 = !DILocation(line: 23, column: 5, scope: !4) // CHECK:STDOUT: !15 = !DILocation(line: 23, column: 3, scope: !4) // CHECK:STDOUT: !16 = !DILocation(line: 17, column: 1, scope: !4) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a87c59609561b819", scope: null, file: !3, line: 13, type: !18, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !21) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2621742a01881e29", scope: null, file: !3, line: 13, type: !18, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !21) // CHECK:STDOUT: !18 = !DISubroutineType(types: !19) // CHECK:STDOUT: !19 = !{!20, !20} // CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) diff --git a/toolchain/lower/testdata/function/generic/call_deref_ptr.carbon b/toolchain/lower/testdata/function/generic/call_deref_ptr.carbon index 1117eacb7b68..d8e1eaf66941 100644 --- a/toolchain/lower/testdata/function/generic/call_deref_ptr.carbon +++ b/toolchain/lower/testdata/function/generic/call_deref_ptr.carbon @@ -55,20 +55,20 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !8 // CHECK:STDOUT: store ptr poison, ptr %ptr_f64.var, align 8, !dbg !8 // CHECK:STDOUT: %.loc39_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !9 -// CHECK:STDOUT: call void @_CF.Main.3f49c03818d8362d(ptr %.loc39_5), !dbg !10 +// CHECK:STDOUT: call void @_CF.Main.58016a73bff04416(ptr %.loc39_5), !dbg !10 // CHECK:STDOUT: %.loc40_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !11 -// CHECK:STDOUT: call void @_CF.Main.654604a4b99ed7de(ptr %.loc40_5), !dbg !12 +// CHECK:STDOUT: call void @_CF.Main.fa1f0912a5bbe922(ptr %.loc40_5), !dbg !12 // CHECK:STDOUT: ret void, !dbg !13 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !14 { // 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.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %self) #0 !dbg !21 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } @@ -77,66 +77,66 @@ 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.3f49c03818d8362d(ptr %x) #0 !dbg !28 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.58016a73bff04416(ptr %x) #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %A.call = call %type @_CA.Main.7c9378dab434d9d8(%type zeroinitializer), !dbg !31 -// CHECK:STDOUT: call void @_CB.Main.3f49c03818d8362d(ptr %x), !dbg !32 +// CHECK:STDOUT: %A.call = call %type @_CA.Main.ee509b43cf4eb3c5(%type zeroinitializer), !dbg !31 +// CHECK:STDOUT: call void @_CB.Main.58016a73bff04416(ptr %x), !dbg !32 // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.654604a4b99ed7de(ptr %x) #0 !dbg !34 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.fa1f0912a5bbe922(ptr %x) #0 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %A.call = call %type @_CA.Main.7c9378dab434d9d8(%type zeroinitializer), !dbg !37 -// CHECK:STDOUT: call void @_CB.Main.654604a4b99ed7de(ptr %x), !dbg !38 +// CHECK:STDOUT: %A.call = call %type @_CA.Main.ee509b43cf4eb3c5(%type zeroinitializer), !dbg !37 +// CHECK:STDOUT: call void @_CB.Main.fa1f0912a5bbe922(ptr %x), !dbg !38 // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr %type @_CA.Main.7c9378dab434d9d8(%type %x) #0 !dbg !40 { +// CHECK:STDOUT: define linkonce_odr %type @_CA.Main.ee509b43cf4eb3c5(%type %x) #0 !dbg !40 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret %type %x, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.3f49c03818d8362d(ptr %x) #0 !dbg !46 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.58016a73bff04416(ptr %x) #0 !dbg !46 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc27_7.2.temp = alloca i32, align 4, !dbg !49 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc27_7.2.temp), !dbg !49 // CHECK:STDOUT: %.loc27_5.2 = load i32, ptr %x, align 4, !dbg !50 -// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4bee6dcdea6ba756(i32 %.loc27_5.2), !dbg !49 +// CHECK:STDOUT: %D.call = call i32 @_CD.Main.5bd8d5767580997a(i32 %.loc27_5.2), !dbg !49 // CHECK:STDOUT: store i32 %D.call, ptr %.loc27_7.2.temp, align 4, !dbg !49 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %.loc27_7.2.temp), !dbg !49 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %.loc27_7.2.temp), !dbg !49 // CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.654604a4b99ed7de(ptr %x) #0 !dbg !52 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.fa1f0912a5bbe922(ptr %x) #0 !dbg !52 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc27_7.2.temp = alloca double, align 8, !dbg !55 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc27_7.2.temp), !dbg !55 // CHECK:STDOUT: %.loc27_5.2 = load double, ptr %x, align 8, !dbg !56 -// CHECK:STDOUT: %D.call = call double @_CD.Main.925563b151bf93f6(double %.loc27_5.2), !dbg !55 +// CHECK:STDOUT: %D.call = call double @_CD.Main.c27b765f2159c9a0(double %.loc27_5.2), !dbg !55 // CHECK:STDOUT: store double %D.call, ptr %.loc27_7.2.temp, align 8, !dbg !55 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %.loc27_7.2.temp), !dbg !55 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %.loc27_7.2.temp), !dbg !55 // CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CD.Main.4bee6dcdea6ba756(i32 %x) #0 !dbg !58 { +// CHECK:STDOUT: define linkonce_odr i32 @_CD.Main.5bd8d5767580997a(i32 %x) #0 !dbg !58 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret i32 %x, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CD.Main.925563b151bf93f6(double %x) #0 !dbg !64 { +// CHECK:STDOUT: define linkonce_odr double @_CD.Main.c27b765f2159c9a0(double %x) #0 !dbg !64 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret double %x, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 1, 3, 2 } -// CHECK:STDOUT: uselistorder ptr @_CA.Main.7c9378dab434d9d8, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CA.Main.ee509b43cf4eb3c5, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } @@ -158,57 +158,57 @@ fn M() { // CHECK:STDOUT: !11 = !DILocation(line: 40, column: 5, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 40, column: 3, scope: !4) // CHECK:STDOUT: !13 = !DILocation(line: 35, column: 1, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 39, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 39, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) // CHECK:STDOUT: !15 = !DISubroutineType(types: !16) // CHECK:STDOUT: !16 = !{null, !17} // CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !18 = !{!19} // CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) // CHECK:STDOUT: !20 = !DILocation(line: 39, column: 3, scope: !14) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e4fc30ecea9aa7e:core.Destroy.Core", scope: null, file: !3, line: 40, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.30d8007fdcc57f83:core.Destroy.Core", scope: null, file: !3, line: 40, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) // CHECK:STDOUT: !22 = !DISubroutineType(types: !23) // CHECK:STDOUT: !23 = !{null, !24} // CHECK:STDOUT: !24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !25 = !{!26} // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !21, type: !24) // CHECK:STDOUT: !27 = !DILocation(line: 40, column: 3, scope: !21) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.3f49c03818d8362d", scope: null, file: !3, line: 30, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.58016a73bff04416", scope: null, file: !3, line: 30, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) // CHECK:STDOUT: !29 = !{!30} // CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !24) // CHECK:STDOUT: !31 = !DILocation(line: 31, column: 3, scope: !28) // CHECK:STDOUT: !32 = !DILocation(line: 32, column: 3, scope: !28) // CHECK:STDOUT: !33 = !DILocation(line: 30, column: 1, scope: !28) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.654604a4b99ed7de", scope: null, file: !3, line: 30, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !35) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.fa1f0912a5bbe922", scope: null, file: !3, line: 30, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !35) // CHECK:STDOUT: !35 = !{!36} // CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !24) // CHECK:STDOUT: !37 = !DILocation(line: 31, column: 3, scope: !34) // CHECK:STDOUT: !38 = !DILocation(line: 32, column: 3, scope: !34) // CHECK:STDOUT: !39 = !DILocation(line: 30, column: 1, scope: !34) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.7c9378dab434d9d8", scope: null, file: !3, line: 18, type: !41, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !43) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.ee509b43cf4eb3c5", scope: null, file: !3, line: 18, type: !41, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !43) // CHECK:STDOUT: !41 = !DISubroutineType(types: !42) // CHECK:STDOUT: !42 = !{!24, !24} // CHECK:STDOUT: !43 = !{!44} // CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !40, type: !24) // CHECK:STDOUT: !45 = !DILocation(line: 19, column: 3, scope: !40) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.3f49c03818d8362d", scope: null, file: !3, line: 26, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !47) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.58016a73bff04416", scope: null, file: !3, line: 26, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !47) // CHECK:STDOUT: !47 = !{!48} // CHECK:STDOUT: !48 = !DILocalVariable(arg: 1, scope: !46, type: !24) // CHECK:STDOUT: !49 = !DILocation(line: 27, column: 3, scope: !46) // CHECK:STDOUT: !50 = !DILocation(line: 27, column: 5, scope: !46) // CHECK:STDOUT: !51 = !DILocation(line: 26, column: 1, scope: !46) -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.654604a4b99ed7de", scope: null, file: !3, line: 26, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !53) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.fa1f0912a5bbe922", scope: null, file: !3, line: 26, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !53) // CHECK:STDOUT: !53 = !{!54} // CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !52, type: !24) // CHECK:STDOUT: !55 = !DILocation(line: 27, column: 3, scope: !52) // CHECK:STDOUT: !56 = !DILocation(line: 27, column: 5, scope: !52) // CHECK:STDOUT: !57 = !DILocation(line: 26, column: 1, scope: !52) -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 22, type: !59, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !61) +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.5bd8d5767580997a", scope: null, file: !3, line: 22, type: !59, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !61) // CHECK:STDOUT: !59 = !DISubroutineType(types: !60) // CHECK:STDOUT: !60 = !{!17, !17} // CHECK:STDOUT: !61 = !{!62} // CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !58, type: !17) // CHECK:STDOUT: !63 = !DILocation(line: 23, column: 3, scope: !58) -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.925563b151bf93f6", scope: null, file: !3, line: 22, type: !41, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !65) +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.c27b765f2159c9a0", scope: null, file: !3, line: 22, type: !41, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !65) // CHECK:STDOUT: !65 = !{!66} // CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !64, type: !24) // CHECK:STDOUT: !67 = !DILocation(line: 23, column: 3, scope: !64) diff --git a/toolchain/lower/testdata/function/generic/call_different_associated_const.carbon b/toolchain/lower/testdata/function/generic/call_different_associated_const.carbon index 945cbe2ca357..8f00881bc908 100644 --- a/toolchain/lower/testdata/function/generic/call_different_associated_const.carbon +++ b/toolchain/lower/testdata/function/generic/call_different_associated_const.carbon @@ -43,13 +43,13 @@ fn H() { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CH.Main() #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CG.Main.f40a233150cc4b3d(), !dbg !7 -// CHECK:STDOUT: call void @_CG.Main.b946772249420228(), !dbg !8 +// CHECK:STDOUT: call void @_CG.Main.b78152d23f5a56c7(), !dbg !7 +// CHECK:STDOUT: call void @_CG.Main.1ba7ae4c6ee83247(), !dbg !8 // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CG.Main.f40a233150cc4b3d() #0 !dbg !10 { +// CHECK:STDOUT: define linkonce_odr void @_CG.Main.b78152d23f5a56c7() #0 !dbg !10 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca ptr, align 8, !dbg !11 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !11 @@ -58,7 +58,7 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CG.Main.b946772249420228() #0 !dbg !13 { +// CHECK:STDOUT: define linkonce_odr void @_CG.Main.1ba7ae4c6ee83247() #0 !dbg !13 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca ptr, align 8, !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !14 @@ -88,9 +88,9 @@ fn H() { // CHECK:STDOUT: !7 = !DILocation(line: 36, column: 3, scope: !4) // CHECK:STDOUT: !8 = !DILocation(line: 37, column: 3, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 35, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.f40a233150cc4b3d", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.b78152d23f5a56c7", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !11 = !DILocation(line: 23, column: 3, scope: !10) // CHECK:STDOUT: !12 = !DILocation(line: 22, column: 1, scope: !10) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.b946772249420228", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.1ba7ae4c6ee83247", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !14 = !DILocation(line: 23, column: 3, scope: !13) // CHECK:STDOUT: !15 = !DILocation(line: 22, column: 1, scope: !13) diff --git a/toolchain/lower/testdata/function/generic/call_different_impls.carbon b/toolchain/lower/testdata/function/generic/call_different_impls.carbon index 4d4b3092855a..dfa58aa55234 100644 --- a/toolchain/lower/testdata/function/generic/call_different_impls.carbon +++ b/toolchain/lower/testdata/function/generic/call_different_impls.carbon @@ -55,22 +55,22 @@ fn Run() { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @main() #0 !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CG.Main.6a57547e3d5e7e4b(), !dbg !16 -// CHECK:STDOUT: call void @_CG.Main.904bfec8a416ba3c(), !dbg !17 +// CHECK:STDOUT: call void @_CG.Main.c81631f865470482(), !dbg !16 +// CHECK:STDOUT: call void @_CG.Main.0b241ec84a68877b(), !dbg !17 // CHECK:STDOUT: ret i32 0, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @printf(ptr, ...) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CG.Main.6a57547e3d5e7e4b() #0 !dbg !19 { +// CHECK:STDOUT: define linkonce_odr void @_CG.Main.c81631f865470482() #0 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @"_CF.X.Main:I.Main"(), !dbg !20 // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CG.Main.904bfec8a416ba3c() #0 !dbg !22 { +// CHECK:STDOUT: define linkonce_odr void @_CG.Main.0b241ec84a68877b() #0 !dbg !22 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @"_CF.Y.Main:I.Main"(), !dbg !23 // CHECK:STDOUT: ret void, !dbg !24 @@ -103,9 +103,9 @@ fn Run() { // CHECK:STDOUT: !16 = !DILocation(line: 32, column: 3, scope: !12) // CHECK:STDOUT: !17 = !DILocation(line: 33, column: 3, scope: !12) // CHECK:STDOUT: !18 = !DILocation(line: 31, column: 1, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.6a57547e3d5e7e4b", scope: null, file: !3, line: 29, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c81631f865470482", scope: null, file: !3, line: 29, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !20 = !DILocation(line: 29, column: 15, scope: !19) // CHECK:STDOUT: !21 = !DILocation(line: 29, column: 1, scope: !19) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.904bfec8a416ba3c", scope: null, file: !3, line: 29, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.0b241ec84a68877b", scope: null, file: !3, line: 29, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !23 = !DILocation(line: 29, column: 15, scope: !22) // CHECK:STDOUT: !24 = !DILocation(line: 29, column: 1, scope: !22) 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 61d205e12dd5..0f99c76951fb 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 @@ -55,7 +55,7 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !10 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !10 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } @@ -70,15 +70,15 @@ fn Run() { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @main() #0 !dbg !22 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CG.Main.5a4d21d1578315a8(), !dbg !23 -// CHECK:STDOUT: call void @_CG.Main.758a1d862e17e260(), !dbg !24 +// CHECK:STDOUT: call void @_CG.Main.7329ec068e7cb0e6(), !dbg !23 +// CHECK:STDOUT: call void @_CG.Main.89fa38d00ffc0e46(), !dbg !24 // CHECK:STDOUT: ret i32 0, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @printf(ptr, ...) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CG.Main.5a4d21d1578315a8() #0 !dbg !26 { +// CHECK:STDOUT: define linkonce_odr void @_CG.Main.7329ec068e7cb0e6() #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc37_20.1.temp = alloca i1, align 1, !dbg !29 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc37_20.1.temp), !dbg !29 @@ -91,14 +91,14 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CG.Main.758a1d862e17e260() #0 !dbg !31 { +// CHECK:STDOUT: define linkonce_odr void @_CG.Main.89fa38d00ffc0e46() #0 !dbg !31 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc37_20.1.temp = alloca i32, align 4, !dbg !32 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc37_20.1.temp), !dbg !32 // CHECK:STDOUT: %I.WithSelf.F.call = call i32 @"_CF.Y.Main:I.Main"(), !dbg !32 // CHECK:STDOUT: store i32 %I.WithSelf.F.call, ptr %.loc37_20.1.temp, align 4, !dbg !32 // CHECK:STDOUT: %.loc37_20.3 = load i32, ptr %.loc37_20.1.temp, align 4, !dbg !32 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %.loc37_20.1.temp), !dbg !32 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %.loc37_20.1.temp), !dbg !32 // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -125,7 +125,7 @@ fn Run() { // CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !8 = !DILocation(line: 22, column: 5, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 23, column: 5, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 27, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 27, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !11 = !DISubroutineType(types: !12) // CHECK:STDOUT: !12 = !{null, !13} // CHECK:STDOUT: !13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) @@ -141,11 +141,11 @@ fn Run() { // CHECK:STDOUT: !23 = !DILocation(line: 41, column: 3, scope: !22) // CHECK:STDOUT: !24 = !DILocation(line: 42, column: 3, scope: !22) // CHECK:STDOUT: !25 = !DILocation(line: 40, column: 1, scope: !22) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.5a4d21d1578315a8", scope: null, file: !3, line: 36, type: !27, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.7329ec068e7cb0e6", scope: null, file: !3, line: 36, type: !27, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !27 = !DISubroutineType(types: !28) // CHECK:STDOUT: !28 = !{null} // CHECK:STDOUT: !29 = !DILocation(line: 37, column: 16, scope: !26) // CHECK:STDOUT: !30 = !DILocation(line: 36, column: 1, scope: !26) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.758a1d862e17e260", scope: null, file: !3, line: 36, type: !27, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.89fa38d00ffc0e46", scope: null, file: !3, line: 36, type: !27, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !32 = !DILocation(line: 37, column: 16, scope: !31) // CHECK:STDOUT: !33 = !DILocation(line: 36, column: 1, scope: !31) diff --git a/toolchain/lower/testdata/function/generic/call_different_specific.carbon b/toolchain/lower/testdata/function/generic/call_different_specific.carbon index 6e8d411f55e6..100aa9f675ca 100644 --- a/toolchain/lower/testdata/function/generic/call_different_specific.carbon +++ b/toolchain/lower/testdata/function/generic/call_different_specific.carbon @@ -52,66 +52,66 @@ 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 !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.3f49c03818d8362d(ptr %ptr_i32), !dbg !11 -// CHECK:STDOUT: call void @_CF.Main.654604a4b99ed7de(ptr %ptr_f64), !dbg !12 +// CHECK:STDOUT: call void @_CF.Main.58016a73bff04416(ptr %ptr_i32), !dbg !11 +// CHECK:STDOUT: call void @_CF.Main.fa1f0912a5bbe922(ptr %ptr_f64), !dbg !12 // CHECK:STDOUT: ret void, !dbg !13 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !14 { // 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.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %self) #0 !dbg !21 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.3f49c03818d8362d(ptr %x) #0 !dbg !27 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.58016a73bff04416(ptr %x) #0 !dbg !27 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %A.call = call %type @_CA.Main.7c9378dab434d9d8(%type zeroinitializer), !dbg !30 -// CHECK:STDOUT: call void @_CB.Main.3f49c03818d8362d(ptr %x), !dbg !31 +// CHECK:STDOUT: %A.call = call %type @_CA.Main.ee509b43cf4eb3c5(%type zeroinitializer), !dbg !30 +// CHECK:STDOUT: call void @_CB.Main.58016a73bff04416(ptr %x), !dbg !31 // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.654604a4b99ed7de(ptr %x) #0 !dbg !33 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.fa1f0912a5bbe922(ptr %x) #0 !dbg !33 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %A.call = call %type @_CA.Main.7c9378dab434d9d8(%type zeroinitializer), !dbg !36 -// CHECK:STDOUT: call void @_CB.Main.654604a4b99ed7de(ptr %x), !dbg !37 +// CHECK:STDOUT: %A.call = call %type @_CA.Main.ee509b43cf4eb3c5(%type zeroinitializer), !dbg !36 +// CHECK:STDOUT: call void @_CB.Main.fa1f0912a5bbe922(ptr %x), !dbg !37 // CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr %type @_CA.Main.7c9378dab434d9d8(%type %x) #0 !dbg !39 { +// CHECK:STDOUT: define linkonce_odr %type @_CA.Main.ee509b43cf4eb3c5(%type %x) #0 !dbg !39 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret %type %x, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.3f49c03818d8362d(ptr %x) #0 !dbg !45 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.58016a73bff04416(ptr %x) #0 !dbg !45 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc34_7.2.temp = alloca i32, align 4, !dbg !48 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc34_7.2.temp), !dbg !48 // CHECK:STDOUT: %.loc34_5.2 = load i32, ptr %x, align 4, !dbg !49 -// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4bee6dcdea6ba756(i32 %.loc34_5.2), !dbg !48 +// CHECK:STDOUT: %D.call = call i32 @_CD.Main.5bd8d5767580997a(i32 %.loc34_5.2), !dbg !48 // CHECK:STDOUT: store i32 %D.call, ptr %.loc34_7.2.temp, align 4, !dbg !48 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %.loc34_7.2.temp), !dbg !48 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %.loc34_7.2.temp), !dbg !48 // CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.654604a4b99ed7de(ptr %x) #0 !dbg !51 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.fa1f0912a5bbe922(ptr %x) #0 !dbg !51 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc34_7.2.temp = alloca double, align 8, !dbg !54 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc34_7.2.temp), !dbg !54 // CHECK:STDOUT: %.loc34_5.2 = load double, ptr %x, align 8, !dbg !55 -// CHECK:STDOUT: %D.call = call double @_CD.Main.925563b151bf93f6(double %.loc34_5.2), !dbg !54 +// CHECK:STDOUT: %D.call = call double @_CD.Main.c27b765f2159c9a0(double %.loc34_5.2), !dbg !54 // CHECK:STDOUT: store double %D.call, ptr %.loc34_7.2.temp, align 8, !dbg !54 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %.loc34_7.2.temp), !dbg !54 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %.loc34_7.2.temp), !dbg !54 // CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -119,19 +119,19 @@ fn M(ptr_i32: i32*, ptr_f64: f64*) { // 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 @_CD.Main.4bee6dcdea6ba756(i32 %x) #0 !dbg !57 { +// CHECK:STDOUT: define linkonce_odr i32 @_CD.Main.5bd8d5767580997a(i32 %x) #0 !dbg !57 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret i32 %x, !dbg !62 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CD.Main.925563b151bf93f6(double %x) #0 !dbg !63 { +// CHECK:STDOUT: define linkonce_odr double @_CD.Main.c27b765f2159c9a0(double %x) #0 !dbg !63 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret double %x, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @_CA.Main.7c9378dab434d9d8, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CA.Main.ee509b43cf4eb3c5, { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -154,56 +154,56 @@ fn M(ptr_i32: i32*, ptr_f64: f64*) { // CHECK:STDOUT: !11 = !DILocation(line: 43, column: 3, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 44, column: 3, scope: !4) // CHECK:STDOUT: !13 = !DILocation(line: 42, column: 1, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 43, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 43, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) // CHECK:STDOUT: !15 = !DISubroutineType(types: !16) // CHECK:STDOUT: !16 = !{null, !17} // CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !18 = !{!19} // CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) // CHECK:STDOUT: !20 = !DILocation(line: 43, column: 3, scope: !14) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e4fc30ecea9aa7e:core.Destroy.Core", scope: null, file: !3, line: 44, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.30d8007fdcc57f83:core.Destroy.Core", scope: null, file: !3, line: 44, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) // CHECK:STDOUT: !22 = !DISubroutineType(types: !23) // CHECK:STDOUT: !23 = !{null, !7} // CHECK:STDOUT: !24 = !{!25} // CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !21, type: !7) // CHECK:STDOUT: !26 = !DILocation(line: 44, column: 3, scope: !21) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.3f49c03818d8362d", scope: null, file: !3, line: 37, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.58016a73bff04416", scope: null, file: !3, line: 37, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) // CHECK:STDOUT: !28 = !{!29} // CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !7) // CHECK:STDOUT: !30 = !DILocation(line: 38, column: 3, scope: !27) // CHECK:STDOUT: !31 = !DILocation(line: 39, column: 3, scope: !27) // CHECK:STDOUT: !32 = !DILocation(line: 37, column: 1, scope: !27) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.654604a4b99ed7de", scope: null, file: !3, line: 37, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.fa1f0912a5bbe922", scope: null, file: !3, line: 37, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) // CHECK:STDOUT: !34 = !{!35} // CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !7) // CHECK:STDOUT: !36 = !DILocation(line: 38, column: 3, scope: !33) // CHECK:STDOUT: !37 = !DILocation(line: 39, column: 3, scope: !33) // CHECK:STDOUT: !38 = !DILocation(line: 37, column: 1, scope: !33) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.7c9378dab434d9d8", scope: null, file: !3, line: 25, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.ee509b43cf4eb3c5", scope: null, file: !3, line: 25, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) // CHECK:STDOUT: !40 = !DISubroutineType(types: !41) // CHECK:STDOUT: !41 = !{!7, !7} // CHECK:STDOUT: !42 = !{!43} // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !39, type: !7) // CHECK:STDOUT: !44 = !DILocation(line: 26, column: 3, scope: !39) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.3f49c03818d8362d", scope: null, file: !3, line: 33, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.58016a73bff04416", scope: null, file: !3, line: 33, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) // CHECK:STDOUT: !46 = !{!47} // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !7) // CHECK:STDOUT: !48 = !DILocation(line: 34, column: 3, scope: !45) // CHECK:STDOUT: !49 = !DILocation(line: 34, column: 5, scope: !45) // CHECK:STDOUT: !50 = !DILocation(line: 33, column: 1, scope: !45) -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.654604a4b99ed7de", scope: null, file: !3, line: 33, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !52) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.fa1f0912a5bbe922", scope: null, file: !3, line: 33, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !52) // CHECK:STDOUT: !52 = !{!53} // CHECK:STDOUT: !53 = !DILocalVariable(arg: 1, scope: !51, type: !7) // CHECK:STDOUT: !54 = !DILocation(line: 34, column: 3, scope: !51) // CHECK:STDOUT: !55 = !DILocation(line: 34, column: 5, scope: !51) // CHECK:STDOUT: !56 = !DILocation(line: 33, column: 1, scope: !51) -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 29, type: !58, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !60) +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.5bd8d5767580997a", scope: null, file: !3, line: 29, type: !58, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !60) // CHECK:STDOUT: !58 = !DISubroutineType(types: !59) // CHECK:STDOUT: !59 = !{!17, !17} // CHECK:STDOUT: !60 = !{!61} // CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !57, type: !17) // CHECK:STDOUT: !62 = !DILocation(line: 30, column: 3, scope: !57) -// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.925563b151bf93f6", scope: null, file: !3, line: 29, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !64) +// CHECK:STDOUT: !63 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.c27b765f2159c9a0", scope: null, file: !3, line: 29, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !64) // CHECK:STDOUT: !64 = !{!65} // CHECK:STDOUT: !65 = !DILocalVariable(arg: 1, scope: !63, type: !7) // CHECK:STDOUT: !66 = !DILocation(line: 30, column: 3, scope: !63) diff --git a/toolchain/lower/testdata/function/generic/call_impl_function.carbon b/toolchain/lower/testdata/function/generic/call_impl_function.carbon index 921ff413d038..d3f226582697 100644 --- a/toolchain/lower/testdata/function/generic/call_impl_function.carbon +++ b/toolchain/lower/testdata/function/generic/call_impl_function.carbon @@ -47,7 +47,7 @@ fn G() { // CHECK:STDOUT: source_filename = "call_impl_function.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i32 @"_CF.ImplsSomeInterface.Main:SomeInterface.5e5386123d4b6287.Main"(i32 %x) #0 !dbg !4 { +// CHECK:STDOUT: define i32 @"_CF.ImplsSomeInterface.Main:SomeInterface.84588f41d61dafba.Main"(i32 %x) #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.Negate.impl.Op.call = sub i32 0, %x, !dbg !10 // CHECK:STDOUT: ret i32 %Int.as.Negate.impl.Op.call, !dbg !11 @@ -56,14 +56,14 @@ fn G() { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CG.Main() #0 !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %CallGenericMethod.call = call i32 @_CCallGenericMethod.Main.2fa789f9db36d990(i32 10), !dbg !15 +// CHECK:STDOUT: %CallGenericMethod.call = call i32 @_CCallGenericMethod.Main.a8a4675a2f98891e(i32 10), !dbg !15 // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CCallGenericMethod.Main.2fa789f9db36d990(i32 %x) #0 !dbg !17 { +// CHECK:STDOUT: define linkonce_odr i32 @_CCallGenericMethod.Main.a8a4675a2f98891e(i32 %x) #0 !dbg !17 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %SomeInterface.WithSelf.F.call = call i32 @"_CF.ImplsSomeInterface.Main:SomeInterface.5e5386123d4b6287.Main"(i32 %x), !dbg !20 +// CHECK:STDOUT: %SomeInterface.WithSelf.F.call = call i32 @"_CF.ImplsSomeInterface.Main:SomeInterface.84588f41d61dafba.Main"(i32 %x), !dbg !20 // CHECK:STDOUT: ret i32 %SomeInterface.WithSelf.F.call, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -76,7 +76,7 @@ fn G() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "call_impl_function.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.ImplsSomeInterface.Main:SomeInterface.5e5386123d4b6287.Main", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.ImplsSomeInterface.Main:SomeInterface.84588f41d61dafba.Main", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{!7, !7} // CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) @@ -89,7 +89,7 @@ fn G() { // CHECK:STDOUT: !14 = !{null} // CHECK:STDOUT: !15 = !DILocation(line: 40, column: 3, scope: !12) // CHECK:STDOUT: !16 = !DILocation(line: 39, column: 1, scope: !12) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "CallGenericMethod", linkageName: "_CCallGenericMethod.Main.2fa789f9db36d990", scope: null, file: !3, line: 35, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "CallGenericMethod", linkageName: "_CCallGenericMethod.Main.a8a4675a2f98891e", scope: null, file: !3, line: 35, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) // CHECK:STDOUT: !18 = !{!19} // CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7) // CHECK:STDOUT: !20 = !DILocation(line: 36, column: 10, scope: !17) diff --git a/toolchain/lower/testdata/function/generic/call_method.carbon b/toolchain/lower/testdata/function/generic/call_method.carbon index c7c5edf89179..10825b11b0b1 100644 --- a/toolchain/lower/testdata/function/generic/call_method.carbon +++ b/toolchain/lower/testdata/function/generic/call_method.carbon @@ -37,20 +37,20 @@ fn CallF() -> i32 { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !9 // CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !9 // CHECK:STDOUT: %.loc22_14 = load i32, ptr %n.var, align 4, !dbg !10 -// CHECK:STDOUT: %C.F.call = call i32 @_CF.C.Main.4bee6dcdea6ba756(ptr %c.var, i32 %.loc22_14), !dbg !11 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %c.var), !dbg !8 +// CHECK:STDOUT: %C.F.call = call i32 @_CF.C.Main.5bd8d5767580997a(ptr %c.var, i32 %.loc22_14), !dbg !11 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !9 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %c.var), !dbg !8 // CHECK:STDOUT: ret i32 %C.F.call, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !13 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } @@ -62,7 +62,7 @@ fn CallF() -> 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: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.C.Main.4bee6dcdea6ba756(ptr %self, i32 %x) #0 !dbg !26 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.C.Main.5bd8d5767580997a(ptr %self, i32 %x) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret i32 %x, !dbg !32 // CHECK:STDOUT: } @@ -89,20 +89,20 @@ fn CallF() -> i32 { // CHECK:STDOUT: !10 = !DILocation(line: 22, column: 14, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 22, column: 10, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 22, column: 3, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 21, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 21, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) // CHECK:STDOUT: !14 = !DISubroutineType(types: !15) // CHECK:STDOUT: !15 = !{null, !7} // CHECK:STDOUT: !16 = !{!17} // CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !13, type: !7) // CHECK:STDOUT: !18 = !DILocation(line: 21, column: 3, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.907c496eccf2294c:core.Destroy.Core", scope: null, file: !3, line: 20, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.807eb4f2d3ed7e54:core.Destroy.Core", scope: null, file: !3, line: 20, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !20 = !DISubroutineType(types: !21) // CHECK:STDOUT: !21 = !{null, !22} // CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) // CHECK:STDOUT: !25 = !DILocation(line: 20, column: 3, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 14, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main.5bd8d5767580997a", scope: null, file: !3, line: 14, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) // CHECK:STDOUT: !27 = !DISubroutineType(types: !28) // CHECK:STDOUT: !28 = !{!7, !22, !7} // CHECK:STDOUT: !29 = !{!30, !31} diff --git a/toolchain/lower/testdata/function/generic/call_recursive_basic.carbon b/toolchain/lower/testdata/function/generic/call_recursive_basic.carbon index 6ddc484f2054..4f5c1989714d 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_basic.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_basic.carbon @@ -70,38 +70,38 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !17 // CHECK:STDOUT: store ptr %m.var, ptr %ptr_f64.var, align 8, !dbg !17 // CHECK:STDOUT: %.loc34_5 = load i32, ptr %n.var, align 4, !dbg !20 -// CHECK:STDOUT: %F.call.loc34 = call i32 @_CF.Main.4bee6dcdea6ba756(i32 %.loc34_5, i32 0), !dbg !21 +// CHECK:STDOUT: %F.call.loc34 = call i32 @_CF.Main.5bd8d5767580997a(i32 %.loc34_5, i32 0), !dbg !21 // CHECK:STDOUT: %.loc35_5 = load double, ptr %m.var, align 8, !dbg !22 -// CHECK:STDOUT: %F.call.loc35 = call double @_CF.Main.925563b151bf93f6(double %.loc35_5, i32 0), !dbg !23 +// CHECK:STDOUT: %F.call.loc35 = call double @_CF.Main.c27b765f2159c9a0(double %.loc35_5, i32 0), !dbg !23 // CHECK:STDOUT: %.loc36_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !24 -// CHECK:STDOUT: %F.call.loc36 = call ptr @_CF.Main.a87c59609561b819(ptr %.loc36_5, i32 0), !dbg !25 +// CHECK:STDOUT: %F.call.loc36 = call ptr @_CF.Main.2621742a01881e29(ptr %.loc36_5, i32 0), !dbg !25 // CHECK:STDOUT: %.loc37_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !26 -// CHECK:STDOUT: %F.call.loc37 = call ptr @_CF.Main.a87c59609561b819(ptr %.loc37_5, i32 0), !dbg !27 +// CHECK:STDOUT: %F.call.loc37 = call ptr @_CF.Main.2621742a01881e29(ptr %.loc37_5, i32 0), !dbg !27 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !18 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %c.var, ptr align 1 @C.val.loc15_51, i64 0, i1 false), !dbg !18 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc40_9.2.temp), !dbg !19 -// CHECK:STDOUT: call void @_CF.Main.23ea5646f3728a97(ptr %.loc40_9.2.temp, ptr %c.var, i32 0), !dbg !19 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %.loc40_9.2.temp), !dbg !19 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %c.var), !dbg !18 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %m.var), !dbg !15 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !14 +// CHECK:STDOUT: call void @_CF.Main.4d597ec621e4ba00(ptr %.loc40_9.2.temp, ptr %c.var, i32 0), !dbg !19 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %.loc40_9.2.temp), !dbg !19 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %c.var), !dbg !18 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %m.var), !dbg !15 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !14 // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self) #0 !dbg !29 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %self) #0 !dbg !35 { +// CHECK:STDOUT: define weak_odr void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %self) #0 !dbg !35 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !39 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !39 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !45 // CHECK:STDOUT: } @@ -113,7 +113,7 @@ 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 i32 @_CF.Main.4bee6dcdea6ba756(i32 %x, i32 %count) #0 !dbg !46 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.5bd8d5767580997a(i32 %x, i32 %count) #0 !dbg !46 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !52 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !53 @@ -123,12 +123,12 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !55 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.4bee6dcdea6ba756(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !56 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.5bd8d5767580997a(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !56 // CHECK:STDOUT: ret i32 %F.call, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CF.Main.925563b151bf93f6(double %x, i32 %count) #0 !dbg !58 { +// CHECK:STDOUT: define linkonce_odr double @_CF.Main.c27b765f2159c9a0(double %x, i32 %count) #0 !dbg !58 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !64 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !65 @@ -138,12 +138,12 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !67 -// CHECK:STDOUT: %F.call = call double @_CF.Main.925563b151bf93f6(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !68 +// CHECK:STDOUT: %F.call = call double @_CF.Main.c27b765f2159c9a0(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !68 // CHECK:STDOUT: ret double %F.call, !dbg !69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.a87c59609561b819(ptr %x, i32 %count) #0 !dbg !70 { +// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.2621742a01881e29(ptr %x, i32 %count) #0 !dbg !70 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !74 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !75 @@ -153,12 +153,12 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !77 -// CHECK:STDOUT: %F.call = call ptr @_CF.Main.a87c59609561b819(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !78 +// CHECK:STDOUT: %F.call = call ptr @_CF.Main.2621742a01881e29(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !78 // CHECK:STDOUT: ret ptr %F.call, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.23ea5646f3728a97(ptr sret({}) %return, ptr %x, i32 %count) #0 !dbg !80 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.4d597ec621e4ba00(ptr sret({}) %return, ptr %x, i32 %count) #0 !dbg !80 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !84 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !85 @@ -169,15 +169,15 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !88 -// CHECK:STDOUT: call void @_CF.Main.23ea5646f3728a97(ptr %return, ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !89 +// CHECK:STDOUT: call void @_CF.Main.4d597ec621e4ba00(ptr %return, ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !89 // CHECK:STDOUT: ret void, !dbg !90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.907c496eccf2294c:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.807eb4f2d3ed7e54: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.a87c59609561b819, { 1, 2, 0 } +// CHECK:STDOUT: uselistorder ptr @_CF.Main.2621742a01881e29, { 1, 2, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } @@ -214,24 +214,24 @@ fn M() { // CHECK:STDOUT: !26 = !DILocation(line: 37, column: 5, scope: !11) // CHECK:STDOUT: !27 = !DILocation(line: 37, column: 3, scope: !11) // CHECK:STDOUT: !28 = !DILocation(line: 28, column: 1, scope: !11) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.907c496eccf2294c:core.Destroy.Core", scope: null, file: !3, line: 40, type: !30, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !32) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.807eb4f2d3ed7e54:core.Destroy.Core", scope: null, file: !3, line: 40, type: !30, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !32) // CHECK:STDOUT: !30 = !DISubroutineType(types: !31) // CHECK:STDOUT: !31 = !{null, !7} // CHECK:STDOUT: !32 = !{!33} // CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !29, type: !7) // CHECK:STDOUT: !34 = !DILocation(line: 40, column: 3, scope: !29) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e4fc30ecea9aa7e:core.Destroy.Core", scope: null, file: !3, line: 30, type: !30, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !36) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.30d8007fdcc57f83:core.Destroy.Core", scope: null, file: !3, line: 30, type: !30, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !36) // CHECK:STDOUT: !36 = !{!37} // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !7) // CHECK:STDOUT: !38 = !DILocation(line: 30, column: 3, scope: !35) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 29, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !43) +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 29, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !43) // CHECK:STDOUT: !40 = !DISubroutineType(types: !41) // CHECK:STDOUT: !41 = !{null, !42} // CHECK:STDOUT: !42 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !43 = !{!44} // CHECK:STDOUT: !44 = !DILocalVariable(arg: 1, scope: !39, type: !42) // CHECK:STDOUT: !45 = !DILocation(line: 29, column: 3, scope: !39) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 21, type: !47, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !49) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.5bd8d5767580997a", scope: null, file: !3, line: 21, type: !47, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !49) // CHECK:STDOUT: !47 = !DISubroutineType(types: !48) // CHECK:STDOUT: !48 = !{!42, !42, !42} // CHECK:STDOUT: !49 = !{!50, !51} @@ -243,7 +243,7 @@ fn M() { // CHECK:STDOUT: !55 = !DILocation(line: 25, column: 15, scope: !46) // CHECK:STDOUT: !56 = !DILocation(line: 25, column: 10, scope: !46) // CHECK:STDOUT: !57 = !DILocation(line: 25, column: 3, scope: !46) -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.925563b151bf93f6", scope: null, file: !3, line: 21, type: !59, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !61) +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.c27b765f2159c9a0", scope: null, file: !3, line: 21, type: !59, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !61) // CHECK:STDOUT: !59 = !DISubroutineType(types: !60) // CHECK:STDOUT: !60 = !{!7, !7, !42} // CHECK:STDOUT: !61 = !{!62, !63} @@ -255,7 +255,7 @@ fn M() { // CHECK:STDOUT: !67 = !DILocation(line: 25, column: 15, scope: !58) // CHECK:STDOUT: !68 = !DILocation(line: 25, column: 10, scope: !58) // CHECK:STDOUT: !69 = !DILocation(line: 25, column: 3, scope: !58) -// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a87c59609561b819", scope: null, file: !3, line: 21, type: !59, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !71) +// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2621742a01881e29", scope: null, file: !3, line: 21, type: !59, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !71) // CHECK:STDOUT: !71 = !{!72, !73} // CHECK:STDOUT: !72 = !DILocalVariable(arg: 1, scope: !70, type: !7) // CHECK:STDOUT: !73 = !DILocalVariable(arg: 2, scope: !70, type: !42) @@ -265,7 +265,7 @@ fn M() { // CHECK:STDOUT: !77 = !DILocation(line: 25, column: 15, scope: !70) // CHECK:STDOUT: !78 = !DILocation(line: 25, column: 10, scope: !70) // CHECK:STDOUT: !79 = !DILocation(line: 25, column: 3, scope: !70) -// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.23ea5646f3728a97", scope: null, file: !3, line: 21, type: !59, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !81) +// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4d597ec621e4ba00", scope: null, file: !3, line: 21, type: !59, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !81) // CHECK:STDOUT: !81 = !{!82, !83} // CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !80, type: !7) // CHECK:STDOUT: !83 = !DILocalVariable(arg: 2, scope: !80, type: !42) diff --git a/toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon b/toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon index 1b614bf758cb..332cd8b8d6e8 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon @@ -77,26 +77,26 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !10 // CHECK:STDOUT: store ptr %m.var, ptr %ptr_f64.var, align 8, !dbg !10 // CHECK:STDOUT: %.loc53_5 = load i32, ptr %n.var, align 4, !dbg !11 -// CHECK:STDOUT: %A.call.loc53 = call i32 @_CA.Main.4bee6dcdea6ba756(i32 %.loc53_5, i32 0), !dbg !12 +// CHECK:STDOUT: %A.call.loc53 = call i32 @_CA.Main.5bd8d5767580997a(i32 %.loc53_5, i32 0), !dbg !12 // CHECK:STDOUT: %.loc54_5 = load double, ptr %m.var, align 8, !dbg !13 -// CHECK:STDOUT: %A.call.loc54 = call double @_CA.Main.925563b151bf93f6(double %.loc54_5, i32 0), !dbg !14 +// CHECK:STDOUT: %A.call.loc54 = call double @_CA.Main.c27b765f2159c9a0(double %.loc54_5, i32 0), !dbg !14 // CHECK:STDOUT: %.loc55_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !15 -// CHECK:STDOUT: %A.call.loc55 = call ptr @_CA.Main.a87c59609561b819(ptr %.loc55_5, i32 0), !dbg !16 +// CHECK:STDOUT: %A.call.loc55 = call ptr @_CA.Main.2621742a01881e29(ptr %.loc55_5, i32 0), !dbg !16 // CHECK:STDOUT: %.loc56_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !17 -// CHECK:STDOUT: %A.call.loc56 = call ptr @_CA.Main.a87c59609561b819(ptr %.loc56_5, i32 0), !dbg !18 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %m.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !7 +// CHECK:STDOUT: %A.call.loc56 = call ptr @_CA.Main.2621742a01881e29(ptr %.loc56_5, i32 0), !dbg !18 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %m.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %self) #0 !dbg !20 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !27 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } @@ -105,7 +105,7 @@ 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 i32 @_CA.Main.4bee6dcdea6ba756(i32 %x, i32 %count) #0 !dbg !34 { +// CHECK:STDOUT: define linkonce_odr i32 @_CA.Main.5bd8d5767580997a(i32 %x, i32 %count) #0 !dbg !34 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !40 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc22, label %if.else.loc22, !dbg !41 @@ -119,16 +119,16 @@ fn M() { // CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc25, label %if.else.loc25, !dbg !44 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc25: ; preds = %if.else.loc22 -// CHECK:STDOUT: %B.call = call i32 @_CB.Main.4bee6dcdea6ba756(i32 %x, i32 %count), !dbg !45 +// CHECK:STDOUT: %B.call = call i32 @_CB.Main.5bd8d5767580997a(i32 %x, i32 %count), !dbg !45 // CHECK:STDOUT: ret i32 %B.call, !dbg !46 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc25: ; preds = %if.else.loc22 -// CHECK:STDOUT: %C.call = call i32 @_CC.Main.4bee6dcdea6ba756(i32 %x, i32 %count), !dbg !47 +// CHECK:STDOUT: %C.call = call i32 @_CC.Main.5bd8d5767580997a(i32 %x, i32 %count), !dbg !47 // CHECK:STDOUT: ret i32 %C.call, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CA.Main.925563b151bf93f6(double %x, i32 %count) #0 !dbg !49 { +// CHECK:STDOUT: define linkonce_odr double @_CA.Main.c27b765f2159c9a0(double %x, i32 %count) #0 !dbg !49 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !55 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc22, label %if.else.loc22, !dbg !56 @@ -142,16 +142,16 @@ fn M() { // CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc25, label %if.else.loc25, !dbg !59 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc25: ; preds = %if.else.loc22 -// CHECK:STDOUT: %B.call = call double @_CB.Main.925563b151bf93f6(double %x, i32 %count), !dbg !60 +// CHECK:STDOUT: %B.call = call double @_CB.Main.c27b765f2159c9a0(double %x, i32 %count), !dbg !60 // CHECK:STDOUT: ret double %B.call, !dbg !61 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc25: ; preds = %if.else.loc22 -// CHECK:STDOUT: %C.call = call double @_CC.Main.925563b151bf93f6(double %x, i32 %count), !dbg !62 +// CHECK:STDOUT: %C.call = call double @_CC.Main.c27b765f2159c9a0(double %x, i32 %count), !dbg !62 // CHECK:STDOUT: ret double %C.call, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CA.Main.a87c59609561b819(ptr %x, i32 %count) #0 !dbg !64 { +// CHECK:STDOUT: define linkonce_odr ptr @_CA.Main.2621742a01881e29(ptr %x, i32 %count) #0 !dbg !64 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !68 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc22, label %if.else.loc22, !dbg !69 @@ -165,95 +165,95 @@ fn M() { // CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc25, label %if.else.loc25, !dbg !72 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc25: ; preds = %if.else.loc22 -// CHECK:STDOUT: %B.call = call ptr @_CB.Main.a87c59609561b819(ptr %x, i32 %count), !dbg !73 +// CHECK:STDOUT: %B.call = call ptr @_CB.Main.2621742a01881e29(ptr %x, i32 %count), !dbg !73 // CHECK:STDOUT: ret ptr %B.call, !dbg !74 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc25: ; preds = %if.else.loc22 -// CHECK:STDOUT: %C.call = call ptr @_CC.Main.a87c59609561b819(ptr %x, i32 %count), !dbg !75 +// CHECK:STDOUT: %C.call = call ptr @_CC.Main.2621742a01881e29(ptr %x, i32 %count), !dbg !75 // CHECK:STDOUT: ret ptr %C.call, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CB.Main.4bee6dcdea6ba756(i32 %x, i32 %count) #0 !dbg !77 { +// CHECK:STDOUT: define linkonce_odr i32 @_CB.Main.5bd8d5767580997a(i32 %x, i32 %count) #0 !dbg !77 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !81 -// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4bee6dcdea6ba756(i32 %x, i32 %count), !dbg !82 +// CHECK:STDOUT: %D.call = call i32 @_CD.Main.5bd8d5767580997a(i32 %x, i32 %count), !dbg !82 // CHECK:STDOUT: ret i32 %D.call, !dbg !83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CC.Main.4bee6dcdea6ba756(i32 %x, i32 %count) #0 !dbg !84 { +// CHECK:STDOUT: define linkonce_odr i32 @_CC.Main.5bd8d5767580997a(i32 %x, i32 %count) #0 !dbg !84 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 2), !dbg !88 -// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4bee6dcdea6ba756(i32 %x, i32 %count), !dbg !89 +// CHECK:STDOUT: %D.call = call i32 @_CD.Main.5bd8d5767580997a(i32 %x, i32 %count), !dbg !89 // CHECK:STDOUT: ret i32 %D.call, !dbg !90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CB.Main.925563b151bf93f6(double %x, i32 %count) #0 !dbg !91 { +// CHECK:STDOUT: define linkonce_odr double @_CB.Main.c27b765f2159c9a0(double %x, i32 %count) #0 !dbg !91 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !95 -// CHECK:STDOUT: %D.call = call double @_CD.Main.925563b151bf93f6(double %x, i32 %count), !dbg !96 +// CHECK:STDOUT: %D.call = call double @_CD.Main.c27b765f2159c9a0(double %x, i32 %count), !dbg !96 // CHECK:STDOUT: ret double %D.call, !dbg !97 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CC.Main.925563b151bf93f6(double %x, i32 %count) #0 !dbg !98 { +// CHECK:STDOUT: define linkonce_odr double @_CC.Main.c27b765f2159c9a0(double %x, i32 %count) #0 !dbg !98 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 2), !dbg !102 -// CHECK:STDOUT: %D.call = call double @_CD.Main.925563b151bf93f6(double %x, i32 %count), !dbg !103 +// CHECK:STDOUT: %D.call = call double @_CD.Main.c27b765f2159c9a0(double %x, i32 %count), !dbg !103 // CHECK:STDOUT: ret double %D.call, !dbg !104 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CB.Main.a87c59609561b819(ptr %x, i32 %count) #0 !dbg !105 { +// CHECK:STDOUT: define linkonce_odr ptr @_CB.Main.2621742a01881e29(ptr %x, i32 %count) #0 !dbg !105 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 1), !dbg !109 -// CHECK:STDOUT: %D.call = call ptr @_CD.Main.a87c59609561b819(ptr %x, i32 %count), !dbg !110 +// CHECK:STDOUT: %D.call = call ptr @_CD.Main.2621742a01881e29(ptr %x, i32 %count), !dbg !110 // CHECK:STDOUT: ret ptr %D.call, !dbg !111 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CC.Main.a87c59609561b819(ptr %x, i32 %count) #0 !dbg !112 { +// CHECK:STDOUT: define linkonce_odr ptr @_CC.Main.2621742a01881e29(ptr %x, i32 %count) #0 !dbg !112 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 2), !dbg !116 -// CHECK:STDOUT: %D.call = call ptr @_CD.Main.a87c59609561b819(ptr %x, i32 %count), !dbg !117 +// CHECK:STDOUT: %D.call = call ptr @_CD.Main.2621742a01881e29(ptr %x, i32 %count), !dbg !117 // CHECK:STDOUT: ret ptr %D.call, !dbg !118 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @printf(ptr, ...) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CD.Main.4bee6dcdea6ba756(i32 %x, i32 %count) #0 !dbg !119 { +// CHECK:STDOUT: define linkonce_odr i32 @_CD.Main.5bd8d5767580997a(i32 %x, i32 %count) #0 !dbg !119 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !123 -// CHECK:STDOUT: %A.call = call i32 @_CA.Main.4bee6dcdea6ba756(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !124 +// CHECK:STDOUT: %A.call = call i32 @_CA.Main.5bd8d5767580997a(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !124 // CHECK:STDOUT: ret i32 %A.call, !dbg !125 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CD.Main.925563b151bf93f6(double %x, i32 %count) #0 !dbg !126 { +// CHECK:STDOUT: define linkonce_odr double @_CD.Main.c27b765f2159c9a0(double %x, i32 %count) #0 !dbg !126 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !130 -// CHECK:STDOUT: %A.call = call double @_CA.Main.925563b151bf93f6(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !131 +// CHECK:STDOUT: %A.call = call double @_CA.Main.c27b765f2159c9a0(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !131 // CHECK:STDOUT: ret double %A.call, !dbg !132 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CD.Main.a87c59609561b819(ptr %x, i32 %count) #0 !dbg !133 { +// CHECK:STDOUT: define linkonce_odr ptr @_CD.Main.2621742a01881e29(ptr %x, i32 %count) #0 !dbg !133 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !137 -// CHECK:STDOUT: %A.call = call ptr @_CA.Main.a87c59609561b819(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !138 +// CHECK:STDOUT: %A.call = call ptr @_CA.Main.2621742a01881e29(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !138 // CHECK:STDOUT: ret ptr %A.call, !dbg !139 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 3, 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CA.Main.a87c59609561b819, { 1, 2, 0 } +// CHECK:STDOUT: uselistorder ptr @_CA.Main.2621742a01881e29, { 1, 2, 0 } // CHECK:STDOUT: uselistorder ptr @printf, { 5, 4, 3, 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CD.Main.4bee6dcdea6ba756, { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CD.Main.925563b151bf93f6, { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CD.Main.a87c59609561b819, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CD.Main.5bd8d5767580997a, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CD.Main.c27b765f2159c9a0, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CD.Main.2621742a01881e29, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } @@ -281,21 +281,21 @@ fn M() { // CHECK:STDOUT: !17 = !DILocation(line: 56, column: 5, scope: !4) // CHECK:STDOUT: !18 = !DILocation(line: 56, column: 3, scope: !4) // CHECK:STDOUT: !19 = !DILocation(line: 47, column: 1, scope: !4) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e4fc30ecea9aa7e:core.Destroy.Core", scope: null, file: !3, line: 49, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.30d8007fdcc57f83:core.Destroy.Core", scope: null, file: !3, line: 49, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) // CHECK:STDOUT: !21 = !DISubroutineType(types: !22) // CHECK:STDOUT: !22 = !{null, !23} // CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !24 = !{!25} // CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) // CHECK:STDOUT: !26 = !DILocation(line: 49, column: 3, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 48, type: !28, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 48, type: !28, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) // CHECK:STDOUT: !28 = !DISubroutineType(types: !29) // CHECK:STDOUT: !29 = !{null, !30} // CHECK:STDOUT: !30 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !27, type: !30) // CHECK:STDOUT: !33 = !DILocation(line: 48, column: 3, scope: !27) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 21, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !37) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.5bd8d5767580997a", scope: null, file: !3, line: 21, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !37) // CHECK:STDOUT: !35 = !DISubroutineType(types: !36) // CHECK:STDOUT: !36 = !{!30, !30, !30} // CHECK:STDOUT: !37 = !{!38, !39} @@ -310,7 +310,7 @@ fn M() { // CHECK:STDOUT: !46 = !DILocation(line: 26, column: 5, scope: !34) // CHECK:STDOUT: !47 = !DILocation(line: 28, column: 12, scope: !34) // CHECK:STDOUT: !48 = !DILocation(line: 28, column: 5, scope: !34) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.925563b151bf93f6", scope: null, file: !3, line: 21, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !52) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.c27b765f2159c9a0", scope: null, file: !3, line: 21, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !52) // CHECK:STDOUT: !50 = !DISubroutineType(types: !51) // CHECK:STDOUT: !51 = !{!23, !23, !30} // CHECK:STDOUT: !52 = !{!53, !54} @@ -325,7 +325,7 @@ fn M() { // CHECK:STDOUT: !61 = !DILocation(line: 26, column: 5, scope: !49) // CHECK:STDOUT: !62 = !DILocation(line: 28, column: 12, scope: !49) // CHECK:STDOUT: !63 = !DILocation(line: 28, column: 5, scope: !49) -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.a87c59609561b819", scope: null, file: !3, line: 21, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !65) +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.2621742a01881e29", scope: null, file: !3, line: 21, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !65) // CHECK:STDOUT: !65 = !{!66, !67} // CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !64, type: !23) // CHECK:STDOUT: !67 = !DILocalVariable(arg: 2, scope: !64, type: !30) @@ -338,63 +338,63 @@ fn M() { // CHECK:STDOUT: !74 = !DILocation(line: 26, column: 5, scope: !64) // CHECK:STDOUT: !75 = !DILocation(line: 28, column: 12, scope: !64) // CHECK:STDOUT: !76 = !DILocation(line: 28, column: 5, scope: !64) -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 33, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !78) +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.5bd8d5767580997a", scope: null, file: !3, line: 33, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !78) // CHECK:STDOUT: !78 = !{!79, !80} // CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !77, type: !30) // CHECK:STDOUT: !80 = !DILocalVariable(arg: 2, scope: !77, type: !30) // CHECK:STDOUT: !81 = !DILocation(line: 34, column: 3, scope: !77) // CHECK:STDOUT: !82 = !DILocation(line: 35, column: 10, scope: !77) // CHECK:STDOUT: !83 = !DILocation(line: 35, column: 3, scope: !77) -// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 38, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !85) +// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.5bd8d5767580997a", scope: null, file: !3, line: 38, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !85) // CHECK:STDOUT: !85 = !{!86, !87} // CHECK:STDOUT: !86 = !DILocalVariable(arg: 1, scope: !84, type: !30) // CHECK:STDOUT: !87 = !DILocalVariable(arg: 2, scope: !84, type: !30) // CHECK:STDOUT: !88 = !DILocation(line: 39, column: 3, scope: !84) // CHECK:STDOUT: !89 = !DILocation(line: 40, column: 10, scope: !84) // CHECK:STDOUT: !90 = !DILocation(line: 40, column: 3, scope: !84) -// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.925563b151bf93f6", scope: null, file: !3, line: 33, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !92) +// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.c27b765f2159c9a0", scope: null, file: !3, line: 33, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !92) // CHECK:STDOUT: !92 = !{!93, !94} // CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !91, type: !23) // CHECK:STDOUT: !94 = !DILocalVariable(arg: 2, scope: !91, type: !30) // CHECK:STDOUT: !95 = !DILocation(line: 34, column: 3, scope: !91) // CHECK:STDOUT: !96 = !DILocation(line: 35, column: 10, scope: !91) // CHECK:STDOUT: !97 = !DILocation(line: 35, column: 3, scope: !91) -// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.925563b151bf93f6", scope: null, file: !3, line: 38, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !99) +// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.c27b765f2159c9a0", scope: null, file: !3, line: 38, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !99) // CHECK:STDOUT: !99 = !{!100, !101} // CHECK:STDOUT: !100 = !DILocalVariable(arg: 1, scope: !98, type: !23) // CHECK:STDOUT: !101 = !DILocalVariable(arg: 2, scope: !98, type: !30) // CHECK:STDOUT: !102 = !DILocation(line: 39, column: 3, scope: !98) // CHECK:STDOUT: !103 = !DILocation(line: 40, column: 10, scope: !98) // CHECK:STDOUT: !104 = !DILocation(line: 40, column: 3, scope: !98) -// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.a87c59609561b819", scope: null, file: !3, line: 33, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !106) +// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.2621742a01881e29", scope: null, file: !3, line: 33, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !106) // CHECK:STDOUT: !106 = !{!107, !108} // CHECK:STDOUT: !107 = !DILocalVariable(arg: 1, scope: !105, type: !23) // CHECK:STDOUT: !108 = !DILocalVariable(arg: 2, scope: !105, type: !30) // CHECK:STDOUT: !109 = !DILocation(line: 34, column: 3, scope: !105) // CHECK:STDOUT: !110 = !DILocation(line: 35, column: 10, scope: !105) // CHECK:STDOUT: !111 = !DILocation(line: 35, column: 3, scope: !105) -// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.a87c59609561b819", scope: null, file: !3, line: 38, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !113) +// CHECK:STDOUT: !112 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.2621742a01881e29", scope: null, file: !3, line: 38, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !113) // CHECK:STDOUT: !113 = !{!114, !115} // CHECK:STDOUT: !114 = !DILocalVariable(arg: 1, scope: !112, type: !23) // CHECK:STDOUT: !115 = !DILocalVariable(arg: 2, scope: !112, type: !30) // CHECK:STDOUT: !116 = !DILocation(line: 39, column: 3, scope: !112) // CHECK:STDOUT: !117 = !DILocation(line: 40, column: 10, scope: !112) // CHECK:STDOUT: !118 = !DILocation(line: 40, column: 3, scope: !112) -// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 43, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !120) +// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.5bd8d5767580997a", scope: null, file: !3, line: 43, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !120) // CHECK:STDOUT: !120 = !{!121, !122} // CHECK:STDOUT: !121 = !DILocalVariable(arg: 1, scope: !119, type: !30) // CHECK:STDOUT: !122 = !DILocalVariable(arg: 2, scope: !119, type: !30) // CHECK:STDOUT: !123 = !DILocation(line: 44, column: 15, scope: !119) // CHECK:STDOUT: !124 = !DILocation(line: 44, column: 10, scope: !119) // CHECK:STDOUT: !125 = !DILocation(line: 44, column: 3, scope: !119) -// CHECK:STDOUT: !126 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.925563b151bf93f6", scope: null, file: !3, line: 43, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !127) +// CHECK:STDOUT: !126 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.c27b765f2159c9a0", scope: null, file: !3, line: 43, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !127) // CHECK:STDOUT: !127 = !{!128, !129} // CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !126, type: !23) // CHECK:STDOUT: !129 = !DILocalVariable(arg: 2, scope: !126, type: !30) // CHECK:STDOUT: !130 = !DILocation(line: 44, column: 15, scope: !126) // CHECK:STDOUT: !131 = !DILocation(line: 44, column: 10, scope: !126) // CHECK:STDOUT: !132 = !DILocation(line: 44, column: 3, scope: !126) -// CHECK:STDOUT: !133 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.a87c59609561b819", scope: null, file: !3, line: 43, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !134) +// CHECK:STDOUT: !133 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.2621742a01881e29", scope: null, file: !3, line: 43, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !134) // CHECK:STDOUT: !134 = !{!135, !136} // CHECK:STDOUT: !135 = !DILocalVariable(arg: 1, scope: !133, type: !23) // CHECK:STDOUT: !136 = !DILocalVariable(arg: 2, scope: !133, type: !30) diff --git a/toolchain/lower/testdata/function/generic/call_recursive_impl.carbon b/toolchain/lower/testdata/function/generic/call_recursive_impl.carbon index 5539e0e2df09..cc99e1a72400 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_impl.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_impl.carbon @@ -63,15 +63,15 @@ fn Run() { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @main() #0 !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call.loc40 = call i32 @_CG.Main.6a57547e3d5e7e4b(i32 0), !dbg !16 -// CHECK:STDOUT: %G.call.loc41 = call i32 @_CG.Main.904bfec8a416ba3c(i32 0), !dbg !17 +// CHECK:STDOUT: %G.call.loc40 = call i32 @_CG.Main.c81631f865470482(i32 0), !dbg !16 +// CHECK:STDOUT: %G.call.loc41 = call i32 @_CG.Main.0b241ec84a68877b(i32 0), !dbg !17 // CHECK:STDOUT: ret i32 0, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @printf(ptr, ...) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.6a57547e3d5e7e4b(i32 %count) #0 !dbg !19 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.c81631f865470482(i32 %count) #0 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @"_CF.X.Main:I.Main"(), !dbg !24 // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !25 @@ -82,12 +82,12 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !28 -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.6a57547e3d5e7e4b(i32 %Int.as.AddWith.impl.Op.call), !dbg !29 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.c81631f865470482(i32 %Int.as.AddWith.impl.Op.call), !dbg !29 // CHECK:STDOUT: ret i32 %G.call, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.904bfec8a416ba3c(i32 %count) #0 !dbg !31 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.0b241ec84a68877b(i32 %count) #0 !dbg !31 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @"_CF.Y.Main:I.Main"(), !dbg !34 // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 0, !dbg !35 @@ -98,7 +98,7 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !38 -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.904bfec8a416ba3c(i32 %Int.as.AddWith.impl.Op.call), !dbg !39 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.0b241ec84a68877b(i32 %Int.as.AddWith.impl.Op.call), !dbg !39 // CHECK:STDOUT: ret i32 %G.call, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -129,7 +129,7 @@ fn Run() { // CHECK:STDOUT: !16 = !DILocation(line: 40, column: 3, scope: !12) // CHECK:STDOUT: !17 = !DILocation(line: 41, column: 3, scope: !12) // CHECK:STDOUT: !18 = !DILocation(line: 39, column: 1, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.6a57547e3d5e7e4b", scope: null, file: !3, line: 30, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c81631f865470482", scope: null, file: !3, line: 30, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) // CHECK:STDOUT: !20 = !DISubroutineType(types: !21) // CHECK:STDOUT: !21 = !{!15, !15} // CHECK:STDOUT: !22 = !{!23} @@ -141,7 +141,7 @@ fn Run() { // CHECK:STDOUT: !28 = !DILocation(line: 36, column: 15, scope: !19) // CHECK:STDOUT: !29 = !DILocation(line: 36, column: 10, scope: !19) // CHECK:STDOUT: !30 = !DILocation(line: 36, column: 3, scope: !19) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.904bfec8a416ba3c", scope: null, file: !3, line: 30, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !32) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.0b241ec84a68877b", scope: null, file: !3, line: 30, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !32) // CHECK:STDOUT: !32 = !{!33} // CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !31, type: !15) // CHECK:STDOUT: !34 = !DILocation(line: 31, column: 3, scope: !31) diff --git a/toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon b/toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon index 36da34d5d926..409752c5e86d 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon @@ -60,26 +60,26 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !10 // CHECK:STDOUT: store ptr %m.var, ptr %ptr_f64.var, align 8, !dbg !10 // CHECK:STDOUT: %.loc38_5 = load i32, ptr %n.var, align 4, !dbg !11 -// CHECK:STDOUT: %F.call.loc38 = call i32 @_CF.Main.4bee6dcdea6ba756(i32 %.loc38_5, i32 0), !dbg !12 +// CHECK:STDOUT: %F.call.loc38 = call i32 @_CF.Main.5bd8d5767580997a(i32 %.loc38_5, i32 0), !dbg !12 // CHECK:STDOUT: %.loc39_5 = load double, ptr %m.var, align 8, !dbg !13 -// CHECK:STDOUT: %F.call.loc39 = call double @_CF.Main.925563b151bf93f6(double %.loc39_5, i32 0), !dbg !14 +// CHECK:STDOUT: %F.call.loc39 = call double @_CF.Main.c27b765f2159c9a0(double %.loc39_5, i32 0), !dbg !14 // CHECK:STDOUT: %.loc40_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !15 -// CHECK:STDOUT: %F.call.loc40 = call ptr @_CF.Main.a87c59609561b819(ptr %.loc40_5, i32 0), !dbg !16 +// CHECK:STDOUT: %F.call.loc40 = call ptr @_CF.Main.2621742a01881e29(ptr %.loc40_5, i32 0), !dbg !16 // CHECK:STDOUT: %.loc41_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !17 -// CHECK:STDOUT: %F.call.loc41 = call ptr @_CF.Main.a87c59609561b819(ptr %.loc41_5, i32 0), !dbg !18 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %m.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !7 +// CHECK:STDOUT: %F.call.loc41 = call ptr @_CF.Main.2621742a01881e29(ptr %.loc41_5, i32 0), !dbg !18 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %m.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %self) #0 !dbg !20 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !27 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } @@ -88,7 +88,7 @@ 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 i32 @_CF.Main.4bee6dcdea6ba756(i32 %x, i32 %count) #0 !dbg !34 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.5bd8d5767580997a(i32 %x, i32 %count) #0 !dbg !34 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 3, !dbg !40 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !41 @@ -98,12 +98,12 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !43 -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.4bee6dcdea6ba756(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !44 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.5bd8d5767580997a(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !44 // CHECK:STDOUT: ret i32 %G.call, !dbg !45 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CF.Main.925563b151bf93f6(double %x, i32 %count) #0 !dbg !46 { +// CHECK:STDOUT: define linkonce_odr double @_CF.Main.c27b765f2159c9a0(double %x, i32 %count) #0 !dbg !46 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 3, !dbg !52 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !53 @@ -113,12 +113,12 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !55 -// CHECK:STDOUT: %G.call = call double @_CG.Main.925563b151bf93f6(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !56 +// CHECK:STDOUT: %G.call = call double @_CG.Main.c27b765f2159c9a0(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !56 // CHECK:STDOUT: ret double %G.call, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.a87c59609561b819(ptr %x, i32 %count) #0 !dbg !58 { +// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.2621742a01881e29(ptr %x, i32 %count) #0 !dbg !58 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 3, !dbg !62 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !63 @@ -128,12 +128,12 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !65 -// CHECK:STDOUT: %G.call = call ptr @_CG.Main.a87c59609561b819(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !66 +// CHECK:STDOUT: %G.call = call ptr @_CG.Main.2621742a01881e29(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !66 // CHECK:STDOUT: ret ptr %G.call, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.4bee6dcdea6ba756(i32 %x, i32 %count) #0 !dbg !68 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.5bd8d5767580997a(i32 %x, i32 %count) #0 !dbg !68 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !72 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !73 @@ -143,12 +143,12 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !75 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.4bee6dcdea6ba756(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !76 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.5bd8d5767580997a(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !76 // CHECK:STDOUT: ret i32 %F.call, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CG.Main.925563b151bf93f6(double %x, i32 %count) #0 !dbg !78 { +// CHECK:STDOUT: define linkonce_odr double @_CG.Main.c27b765f2159c9a0(double %x, i32 %count) #0 !dbg !78 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !82 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !83 @@ -158,12 +158,12 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !85 -// CHECK:STDOUT: %F.call = call double @_CF.Main.925563b151bf93f6(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !86 +// CHECK:STDOUT: %F.call = call double @_CF.Main.c27b765f2159c9a0(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !86 // CHECK:STDOUT: ret double %F.call, !dbg !87 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CG.Main.a87c59609561b819(ptr %x, i32 %count) #0 !dbg !88 { +// CHECK:STDOUT: define linkonce_odr ptr @_CG.Main.2621742a01881e29(ptr %x, i32 %count) #0 !dbg !88 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !92 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !93 @@ -173,13 +173,13 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !95 -// CHECK:STDOUT: %F.call = call ptr @_CF.Main.a87c59609561b819(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !96 +// CHECK:STDOUT: %F.call = call ptr @_CF.Main.2621742a01881e29(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !96 // CHECK:STDOUT: ret ptr %F.call, !dbg !97 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 3, 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CF.Main.a87c59609561b819, { 1, 2, 0 } +// CHECK:STDOUT: uselistorder ptr @_CF.Main.2621742a01881e29, { 1, 2, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } @@ -207,21 +207,21 @@ fn M() { // CHECK:STDOUT: !17 = !DILocation(line: 41, column: 5, scope: !4) // CHECK:STDOUT: !18 = !DILocation(line: 41, column: 3, scope: !4) // CHECK:STDOUT: !19 = !DILocation(line: 32, column: 1, scope: !4) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e4fc30ecea9aa7e:core.Destroy.Core", scope: null, file: !3, line: 34, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.30d8007fdcc57f83:core.Destroy.Core", scope: null, file: !3, line: 34, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) // CHECK:STDOUT: !21 = !DISubroutineType(types: !22) // CHECK:STDOUT: !22 = !{null, !23} // CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !24 = !{!25} // CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) // CHECK:STDOUT: !26 = !DILocation(line: 34, column: 3, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 33, type: !28, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 33, type: !28, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) // CHECK:STDOUT: !28 = !DISubroutineType(types: !29) // CHECK:STDOUT: !29 = !{null, !30} // CHECK:STDOUT: !30 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !27, type: !30) // CHECK:STDOUT: !33 = !DILocation(line: 33, column: 3, scope: !27) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 18, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !37) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.5bd8d5767580997a", scope: null, file: !3, line: 18, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !37) // CHECK:STDOUT: !35 = !DISubroutineType(types: !36) // CHECK:STDOUT: !36 = !{!30, !30, !30} // CHECK:STDOUT: !37 = !{!38, !39} @@ -233,7 +233,7 @@ fn M() { // CHECK:STDOUT: !43 = !DILocation(line: 22, column: 15, scope: !34) // CHECK:STDOUT: !44 = !DILocation(line: 22, column: 10, scope: !34) // CHECK:STDOUT: !45 = !DILocation(line: 22, column: 3, scope: !34) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.925563b151bf93f6", scope: null, file: !3, line: 18, type: !47, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !49) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.c27b765f2159c9a0", scope: null, file: !3, line: 18, type: !47, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !49) // CHECK:STDOUT: !47 = !DISubroutineType(types: !48) // CHECK:STDOUT: !48 = !{!23, !23, !30} // CHECK:STDOUT: !49 = !{!50, !51} @@ -245,7 +245,7 @@ fn M() { // CHECK:STDOUT: !55 = !DILocation(line: 22, column: 15, scope: !46) // CHECK:STDOUT: !56 = !DILocation(line: 22, column: 10, scope: !46) // CHECK:STDOUT: !57 = !DILocation(line: 22, column: 3, scope: !46) -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a87c59609561b819", scope: null, file: !3, line: 18, type: !47, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !59) +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2621742a01881e29", scope: null, file: !3, line: 18, type: !47, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !59) // CHECK:STDOUT: !59 = !{!60, !61} // CHECK:STDOUT: !60 = !DILocalVariable(arg: 1, scope: !58, type: !23) // CHECK:STDOUT: !61 = !DILocalVariable(arg: 2, scope: !58, type: !30) @@ -255,7 +255,7 @@ fn M() { // CHECK:STDOUT: !65 = !DILocation(line: 22, column: 15, scope: !58) // CHECK:STDOUT: !66 = !DILocation(line: 22, column: 10, scope: !58) // CHECK:STDOUT: !67 = !DILocation(line: 22, column: 3, scope: !58) -// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 25, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !69) +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.5bd8d5767580997a", scope: null, file: !3, line: 25, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !69) // CHECK:STDOUT: !69 = !{!70, !71} // CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !68, type: !30) // CHECK:STDOUT: !71 = !DILocalVariable(arg: 2, scope: !68, type: !30) @@ -265,7 +265,7 @@ fn M() { // CHECK:STDOUT: !75 = !DILocation(line: 29, column: 15, scope: !68) // CHECK:STDOUT: !76 = !DILocation(line: 29, column: 10, scope: !68) // CHECK:STDOUT: !77 = !DILocation(line: 29, column: 3, scope: !68) -// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.925563b151bf93f6", scope: null, file: !3, line: 25, type: !47, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !79) +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c27b765f2159c9a0", scope: null, file: !3, line: 25, type: !47, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !79) // CHECK:STDOUT: !79 = !{!80, !81} // CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !78, type: !23) // CHECK:STDOUT: !81 = !DILocalVariable(arg: 2, scope: !78, type: !30) @@ -275,7 +275,7 @@ fn M() { // CHECK:STDOUT: !85 = !DILocation(line: 29, column: 15, scope: !78) // CHECK:STDOUT: !86 = !DILocation(line: 29, column: 10, scope: !78) // CHECK:STDOUT: !87 = !DILocation(line: 29, column: 3, scope: !78) -// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.a87c59609561b819", scope: null, file: !3, line: 25, type: !47, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !89) +// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.2621742a01881e29", scope: null, file: !3, line: 25, type: !47, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !89) // CHECK:STDOUT: !89 = !{!90, !91} // CHECK:STDOUT: !90 = !DILocalVariable(arg: 1, scope: !88, type: !23) // CHECK:STDOUT: !91 = !DILocalVariable(arg: 2, scope: !88, type: !30) diff --git a/toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon b/toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon index c8079958b466..457dda9b6b92 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon @@ -57,23 +57,23 @@ fn M() { // CHECK:STDOUT: store ptr %b.var, ptr %ptr_bool.var, align 8, !dbg !12 // CHECK:STDOUT: %.loc30_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !13 // CHECK:STDOUT: %.loc30_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !14 -// CHECK:STDOUT: %F.call.loc30 = call i32 @_CF.Main.eab0d4c937c6d206(ptr %.loc30_5, ptr %.loc30_14, i32 0), !dbg !15 +// CHECK:STDOUT: %F.call.loc30 = call i32 @_CF.Main.369f53a8d4c38871(ptr %.loc30_5, ptr %.loc30_14, i32 0), !dbg !15 // CHECK:STDOUT: %.loc31_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !16 // CHECK:STDOUT: %.loc31_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !17 -// CHECK:STDOUT: %F.call.loc31 = call i32 @_CF.Main.eab0d4c937c6d206(ptr %.loc31_5, ptr %.loc31_14, i32 0), !dbg !18 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %m.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !7 +// CHECK:STDOUT: %F.call.loc31 = call i32 @_CF.Main.369f53a8d4c38871(ptr %.loc31_5, ptr %.loc31_14, i32 0), !dbg !18 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %m.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %self) #0 !dbg !20 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !27 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } @@ -82,7 +82,7 @@ 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 i32 @_CF.Main.eab0d4c937c6d206(ptr %x, ptr %y, i32 %count) #0 !dbg !34 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.369f53a8d4c38871(ptr %x, ptr %y, i32 %count) #0 !dbg !34 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !41 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !42 @@ -92,13 +92,13 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !44 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.eab0d4c937c6d206(ptr %y, ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !45 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.369f53a8d4c38871(ptr %y, ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !45 // CHECK:STDOUT: ret i32 %F.call, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 5, 4, 3, 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CF.Main.eab0d4c937c6d206, { 0, 2, 1 } +// CHECK:STDOUT: uselistorder ptr @_CF.Main.369f53a8d4c38871, { 0, 2, 1 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } @@ -126,21 +126,21 @@ fn M() { // CHECK:STDOUT: !17 = !DILocation(line: 31, column: 14, scope: !4) // CHECK:STDOUT: !18 = !DILocation(line: 31, column: 3, scope: !4) // CHECK:STDOUT: !19 = !DILocation(line: 22, column: 1, scope: !4) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e4fc30ecea9aa7e:core.Destroy.Core", scope: null, file: !3, line: 24, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.30d8007fdcc57f83:core.Destroy.Core", scope: null, file: !3, line: 24, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) // CHECK:STDOUT: !21 = !DISubroutineType(types: !22) // CHECK:STDOUT: !22 = !{null, !23} // CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !24 = !{!25} // CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) // CHECK:STDOUT: !26 = !DILocation(line: 24, column: 3, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 23, type: !28, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 23, type: !28, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) // CHECK:STDOUT: !28 = !DISubroutineType(types: !29) // CHECK:STDOUT: !29 = !{null, !30} // CHECK:STDOUT: !30 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !27, type: !30) // CHECK:STDOUT: !33 = !DILocation(line: 23, column: 3, scope: !27) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.eab0d4c937c6d206", scope: null, file: !3, line: 15, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !37) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.369f53a8d4c38871", scope: null, file: !3, line: 15, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !37) // CHECK:STDOUT: !35 = !DISubroutineType(types: !36) // CHECK:STDOUT: !36 = !{!30, !23, !23, !30} // CHECK:STDOUT: !37 = !{!38, !39, !40} 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 7bfb883a4593..7ac99ab15cab 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_reorder_more.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_reorder_more.carbon @@ -88,80 +88,80 @@ fn M() { // CHECK:STDOUT: %.loc38_5 = load i16, ptr %val_i16.var, align 2, !dbg !16 // CHECK:STDOUT: %.loc38_14 = load ptr, ptr %ptr_i32.var, align 8, !dbg !17 // CHECK:STDOUT: %.loc38_23 = load ptr, ptr %ptr_bool.var, align 8, !dbg !18 -// CHECK:STDOUT: %F.call.loc38 = call i32 @_CF.Main.d849279204376279(i16 %.loc38_5, ptr %.loc38_14, ptr %.loc38_23, i32 0), !dbg !19 +// CHECK:STDOUT: %F.call.loc38 = call i32 @_CF.Main.bb004feba9dd474d(i16 %.loc38_5, ptr %.loc38_14, ptr %.loc38_23, i32 0), !dbg !19 // CHECK:STDOUT: %.loc39_5 = load i32, ptr %val_i32.var, align 4, !dbg !20 // CHECK:STDOUT: %.loc39_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !21 // CHECK:STDOUT: %.loc39_24 = load ptr, ptr %ptr_i64.var, align 8, !dbg !22 -// CHECK:STDOUT: %F.call.loc39 = call i32 @_CF.Main.0bfa9c4f3acc3623(i32 %.loc39_5, ptr %.loc39_14, ptr %.loc39_24, i32 0), !dbg !23 +// CHECK:STDOUT: %F.call.loc39 = call i32 @_CF.Main.f24eb6b05368f488(i32 %.loc39_5, ptr %.loc39_14, ptr %.loc39_24, i32 0), !dbg !23 // CHECK:STDOUT: %.loc40_5 = load i8, ptr %val_bool.var, align 1, !dbg !24 // CHECK:STDOUT: %.loc40_51 = trunc i8 %.loc40_5 to i1, !dbg !24 // CHECK:STDOUT: %.loc40_15 = load ptr, ptr %ptr_bool.var, align 8, !dbg !25 // CHECK:STDOUT: %.loc40_25 = load ptr, ptr %ptr_i16.var, align 8, !dbg !26 -// CHECK:STDOUT: %F.call.loc40 = call i32 @_CF.Main.2d36132e9f6bd679(i1 %.loc40_51, ptr %.loc40_15, ptr %.loc40_25, i32 0), !dbg !27 +// CHECK:STDOUT: %F.call.loc40 = call i32 @_CF.Main.427cba2b3278d1dc(i1 %.loc40_51, ptr %.loc40_15, ptr %.loc40_25, i32 0), !dbg !27 // CHECK:STDOUT: %.loc41_5 = load i64, ptr %val_i64.var, align 8, !dbg !28 // CHECK:STDOUT: %.loc41_14 = load i8, ptr %val_bool.var, align 1, !dbg !29 // CHECK:STDOUT: %.loc41_142 = trunc i8 %.loc41_14 to i1, !dbg !29 // CHECK:STDOUT: %.loc41_24 = load ptr, ptr %ptr_bool.var, align 8, !dbg !30 -// CHECK:STDOUT: %F.call.loc41 = call i32 @_CF.Main.a45f082176f4b21e(i64 %.loc41_5, i1 %.loc41_142, ptr %.loc41_24, i32 0), !dbg !31 +// CHECK:STDOUT: %F.call.loc41 = call i32 @_CF.Main.ea32bb7f769e7967(i64 %.loc41_5, i1 %.loc41_142, ptr %.loc41_24, i32 0), !dbg !31 // CHECK:STDOUT: %.loc42_5 = load double, ptr %val_f64.var, align 8, !dbg !32 // CHECK:STDOUT: %.loc42_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !33 // CHECK:STDOUT: %.loc42_24 = load ptr, ptr %ptr_bool.var, align 8, !dbg !34 -// CHECK:STDOUT: %F.call.loc42 = call i32 @_CF.Main.791584c811c6ce9b(double %.loc42_5, ptr %.loc42_14, ptr %.loc42_24, i32 0), !dbg !35 +// CHECK:STDOUT: %F.call.loc42 = call i32 @_CF.Main.6eab5c6411742e70(double %.loc42_5, ptr %.loc42_14, ptr %.loc42_24, i32 0), !dbg !35 // CHECK:STDOUT: %.loc46_5 = load ptr, ptr %ptr_bool.var, align 8, !dbg !36 // CHECK:STDOUT: %.loc46_15 = load ptr, ptr %ptr_i16.var, align 8, !dbg !37 // CHECK:STDOUT: %.loc46_24 = load ptr, ptr %ptr_i32.var, align 8, !dbg !38 -// CHECK:STDOUT: %F.call.loc46 = call i32 @_CF.Main.6a474ec237d64741(ptr %.loc46_5, ptr %.loc46_15, ptr %.loc46_24, i32 0), !dbg !39 +// CHECK:STDOUT: %F.call.loc46 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc46_5, ptr %.loc46_15, ptr %.loc46_24, i32 0), !dbg !39 // CHECK:STDOUT: %.loc47_5 = load ptr, ptr %ptr_bool.var, align 8, !dbg !40 // CHECK:STDOUT: %.loc47_15 = load ptr, ptr %ptr_i16.var, align 8, !dbg !41 // CHECK:STDOUT: %.loc47_24 = load ptr, ptr %ptr_i64.var, align 8, !dbg !42 -// CHECK:STDOUT: %F.call.loc47 = call i32 @_CF.Main.6a474ec237d64741(ptr %.loc47_5, ptr %.loc47_15, ptr %.loc47_24, i32 0), !dbg !43 +// CHECK:STDOUT: %F.call.loc47 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc47_5, ptr %.loc47_15, ptr %.loc47_24, i32 0), !dbg !43 // CHECK:STDOUT: %.loc48_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !44 // CHECK:STDOUT: %.loc48_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !45 // CHECK:STDOUT: %.loc48_24 = load ptr, ptr %ptr_i16.var, align 8, !dbg !46 -// CHECK:STDOUT: %F.call.loc48 = call i32 @_CF.Main.6a474ec237d64741(ptr %.loc48_5, ptr %.loc48_14, ptr %.loc48_24, i32 0), !dbg !47 +// CHECK:STDOUT: %F.call.loc48 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc48_5, ptr %.loc48_14, ptr %.loc48_24, i32 0), !dbg !47 // CHECK:STDOUT: %.loc49_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !48 // CHECK:STDOUT: %.loc49_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !49 // CHECK:STDOUT: %.loc49_24 = load ptr, ptr %ptr_i64.var, align 8, !dbg !50 -// CHECK:STDOUT: %F.call.loc49 = call i32 @_CF.Main.6a474ec237d64741(ptr %.loc49_5, ptr %.loc49_14, ptr %.loc49_24, i32 0), !dbg !51 +// CHECK:STDOUT: %F.call.loc49 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc49_5, ptr %.loc49_14, ptr %.loc49_24, i32 0), !dbg !51 // CHECK:STDOUT: %.loc50_5 = load ptr, ptr %ptr_i16.var, align 8, !dbg !52 // CHECK:STDOUT: %.loc50_14 = load ptr, ptr %ptr_i32.var, align 8, !dbg !53 // CHECK:STDOUT: %.loc50_23 = load ptr, ptr %ptr_i64.var, align 8, !dbg !54 -// CHECK:STDOUT: %F.call.loc50 = call i32 @_CF.Main.6a474ec237d64741(ptr %.loc50_5, ptr %.loc50_14, ptr %.loc50_23, i32 0), !dbg !55 +// CHECK:STDOUT: %F.call.loc50 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc50_5, ptr %.loc50_14, ptr %.loc50_23, i32 0), !dbg !55 // CHECK:STDOUT: %.loc51_5 = load ptr, ptr %ptr_i64.var, align 8, !dbg !56 // CHECK:STDOUT: %.loc51_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !57 // CHECK:STDOUT: %.loc51_24 = load ptr, ptr %ptr_i16.var, align 8, !dbg !58 -// CHECK:STDOUT: %F.call.loc51 = call i32 @_CF.Main.6a474ec237d64741(ptr %.loc51_5, ptr %.loc51_14, ptr %.loc51_24, i32 0), !dbg !59 +// CHECK:STDOUT: %F.call.loc51 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc51_5, ptr %.loc51_14, ptr %.loc51_24, i32 0), !dbg !59 // CHECK:STDOUT: %.loc52_5 = load ptr, ptr %ptr_bool.var, align 8, !dbg !60 // CHECK:STDOUT: %.loc52_15 = load ptr, ptr %ptr_bool.var, align 8, !dbg !61 // CHECK:STDOUT: %.loc52_25 = load ptr, ptr %ptr_bool.var, align 8, !dbg !62 -// CHECK:STDOUT: %F.call.loc52 = call i32 @_CF.Main.6a474ec237d64741(ptr %.loc52_5, ptr %.loc52_15, ptr %.loc52_25, i32 0), !dbg !63 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %val_f64.var), !dbg !10 -// CHECK:STDOUT: call void @"_COp.70c270bcca3b30d3:core.Destroy.Core"(ptr %val_i64.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %val_i32.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.0166e16952428d48:core.Destroy.Core"(ptr %val_i16.var), !dbg !7 +// CHECK:STDOUT: %F.call.loc52 = call i32 @_CF.Main.732da705e71cd359(ptr %.loc52_5, ptr %.loc52_15, ptr %.loc52_25, i32 0), !dbg !63 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %val_f64.var), !dbg !10 +// CHECK:STDOUT: call void @"_COp.fbec46972c1998a0:core.Destroy.Core"(ptr %val_i64.var), !dbg !9 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %val_i32.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.eb6702152d47e49f:core.Destroy.Core"(ptr %val_i16.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !64 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %self) #0 !dbg !65 { +// CHECK:STDOUT: define weak_odr void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %self) #0 !dbg !65 { // 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.70c270bcca3b30d3:core.Destroy.Core"(ptr %self) #0 !dbg !72 { +// CHECK:STDOUT: define weak_odr void @"_COp.fbec46972c1998a0:core.Destroy.Core"(ptr %self) #0 !dbg !72 { // 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.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !79 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !79 { // 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.0166e16952428d48:core.Destroy.Core"(ptr %self) #0 !dbg !86 { +// CHECK:STDOUT: define weak_odr void @"_COp.eb6702152d47e49f:core.Destroy.Core"(ptr %self) #0 !dbg !86 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !92 // CHECK:STDOUT: } @@ -170,7 +170,7 @@ 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 i32 @_CF.Main.d849279204376279(i16 %x, ptr %y, ptr %z, i32 %count) #0 !dbg !93 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.bb004feba9dd474d(i16 %x, ptr %y, ptr %z, i32 %count) #0 !dbg !93 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !101 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !102 @@ -180,12 +180,12 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !104 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.d849279204376279(i16 %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !105 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.bb004feba9dd474d(i16 %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !105 // CHECK:STDOUT: ret i32 %F.call, !dbg !106 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.0bfa9c4f3acc3623(i32 %x, ptr %y, ptr %z, i32 %count) #0 !dbg !107 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.f24eb6b05368f488(i32 %x, ptr %y, ptr %z, i32 %count) #0 !dbg !107 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !115 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !116 @@ -195,12 +195,12 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !118 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.0bfa9c4f3acc3623(i32 %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !119 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.f24eb6b05368f488(i32 %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !119 // CHECK:STDOUT: ret i32 %F.call, !dbg !120 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.2d36132e9f6bd679(i1 %x, ptr %y, ptr %z, i32 %count) #0 !dbg !121 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.427cba2b3278d1dc(i1 %x, ptr %y, ptr %z, i32 %count) #0 !dbg !121 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !129 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !130 @@ -210,12 +210,12 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !132 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.2d36132e9f6bd679(i1 %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !133 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.427cba2b3278d1dc(i1 %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !133 // CHECK:STDOUT: ret i32 %F.call, !dbg !134 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.a45f082176f4b21e(i64 %x, i1 %y, ptr %z, i32 %count) #0 !dbg !135 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.ea32bb7f769e7967(i64 %x, i1 %y, ptr %z, i32 %count) #0 !dbg !135 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !143 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !144 @@ -225,12 +225,12 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !146 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.46eab09c3b5daff1(i64 %x, ptr %z, i1 %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !147 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.b1f6aa8c7fcac0ca(i64 %x, ptr %z, i1 %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !147 // CHECK:STDOUT: ret i32 %F.call, !dbg !148 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.791584c811c6ce9b(double %x, ptr %y, ptr %z, i32 %count) #0 !dbg !149 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.6eab5c6411742e70(double %x, ptr %y, ptr %z, i32 %count) #0 !dbg !149 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !155 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !156 @@ -240,12 +240,12 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !158 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.791584c811c6ce9b(double %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !159 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.6eab5c6411742e70(double %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !159 // CHECK:STDOUT: ret i32 %F.call, !dbg !160 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.6a474ec237d64741(ptr %x, ptr %y, ptr %z, i32 %count) #0 !dbg !161 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.732da705e71cd359(ptr %x, ptr %y, ptr %z, i32 %count) #0 !dbg !161 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !167 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !168 @@ -255,12 +255,12 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !170 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.6a474ec237d64741(ptr %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !171 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.732da705e71cd359(ptr %x, ptr %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !171 // CHECK:STDOUT: ret i32 %F.call, !dbg !172 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.46eab09c3b5daff1(i64 %x, ptr %y, i1 %z, i32 %count) #0 !dbg !173 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.b1f6aa8c7fcac0ca(i64 %x, ptr %y, i1 %z, i32 %count) #0 !dbg !173 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 2, !dbg !179 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then, label %if.else, !dbg !180 @@ -270,13 +270,13 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !182 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.a45f082176f4b21e(i64 %x, i1 %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !183 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.ea32bb7f769e7967(i64 %x, i1 %z, ptr %y, i32 %Int.as.AddWith.impl.Op.call), !dbg !183 // CHECK:STDOUT: ret i32 %F.call, !dbg !184 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 8, 7, 6, 5, 4, 3, 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CF.Main.6a474ec237d64741, { 5, 7, 6, 4, 0, 1, 2, 3 } +// CHECK:STDOUT: uselistorder ptr @_CF.Main.732da705e71cd359, { 5, 7, 6, 4, 0, 1, 2, 3 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } @@ -349,35 +349,35 @@ fn M() { // CHECK:STDOUT: !62 = !DILocation(line: 52, column: 25, scope: !4) // CHECK:STDOUT: !63 = !DILocation(line: 52, column: 3, scope: !4) // CHECK:STDOUT: !64 = !DILocation(line: 22, column: 1, scope: !4) -// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e4fc30ecea9aa7e:core.Destroy.Core", scope: null, file: !3, line: 26, type: !66, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !69) +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.30d8007fdcc57f83:core.Destroy.Core", scope: null, file: !3, line: 26, type: !66, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !69) // CHECK:STDOUT: !66 = !DISubroutineType(types: !67) // CHECK:STDOUT: !67 = !{null, !68} // CHECK:STDOUT: !68 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !69 = !{!70} // CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !65, type: !68) // CHECK:STDOUT: !71 = !DILocation(line: 26, column: 3, scope: !65) -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70c270bcca3b30d3:core.Destroy.Core", scope: null, file: !3, line: 25, type: !73, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !76) +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fbec46972c1998a0:core.Destroy.Core", scope: null, file: !3, line: 25, type: !73, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !76) // CHECK:STDOUT: !73 = !DISubroutineType(types: !74) // CHECK:STDOUT: !74 = !{null, !75} // CHECK:STDOUT: !75 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) // CHECK:STDOUT: !76 = !{!77} // CHECK:STDOUT: !77 = !DILocalVariable(arg: 1, scope: !72, type: !75) // CHECK:STDOUT: !78 = !DILocation(line: 25, column: 3, scope: !72) -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 24, type: !80, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !83) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 24, type: !80, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !83) // CHECK:STDOUT: !80 = !DISubroutineType(types: !81) // CHECK:STDOUT: !81 = !{null, !82} // CHECK:STDOUT: !82 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !83 = !{!84} // CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !79, type: !82) // CHECK:STDOUT: !85 = !DILocation(line: 24, column: 3, scope: !79) -// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0166e16952428d48:core.Destroy.Core", scope: null, file: !3, line: 23, type: !87, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !90) +// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eb6702152d47e49f:core.Destroy.Core", scope: null, file: !3, line: 23, type: !87, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !90) // CHECK:STDOUT: !87 = !DISubroutineType(types: !88) // CHECK:STDOUT: !88 = !{null, !89} // CHECK:STDOUT: !89 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) // CHECK:STDOUT: !90 = !{!91} // CHECK:STDOUT: !91 = !DILocalVariable(arg: 1, scope: !86, type: !89) // CHECK:STDOUT: !92 = !DILocation(line: 23, column: 3, scope: !86) -// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.d849279204376279", scope: null, file: !3, line: 15, type: !94, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !96) +// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.bb004feba9dd474d", scope: null, file: !3, line: 15, type: !94, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !96) // CHECK:STDOUT: !94 = !DISubroutineType(types: !95) // CHECK:STDOUT: !95 = !{!82, !89, !68, !68, !82} // CHECK:STDOUT: !96 = !{!97, !98, !99, !100} @@ -391,7 +391,7 @@ fn M() { // CHECK:STDOUT: !104 = !DILocation(line: 19, column: 21, scope: !93) // CHECK:STDOUT: !105 = !DILocation(line: 19, column: 10, scope: !93) // CHECK:STDOUT: !106 = !DILocation(line: 19, column: 3, scope: !93) -// CHECK:STDOUT: !107 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.0bfa9c4f3acc3623", scope: null, file: !3, line: 15, type: !108, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !110) +// CHECK:STDOUT: !107 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.f24eb6b05368f488", scope: null, file: !3, line: 15, type: !108, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !110) // CHECK:STDOUT: !108 = !DISubroutineType(types: !109) // CHECK:STDOUT: !109 = !{!82, !82, !68, !68, !82} // CHECK:STDOUT: !110 = !{!111, !112, !113, !114} @@ -405,7 +405,7 @@ fn M() { // CHECK:STDOUT: !118 = !DILocation(line: 19, column: 21, scope: !107) // CHECK:STDOUT: !119 = !DILocation(line: 19, column: 10, scope: !107) // CHECK:STDOUT: !120 = !DILocation(line: 19, column: 3, scope: !107) -// CHECK:STDOUT: !121 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2d36132e9f6bd679", scope: null, file: !3, line: 15, type: !122, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !124) +// CHECK:STDOUT: !121 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.427cba2b3278d1dc", scope: null, file: !3, line: 15, type: !122, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !124) // CHECK:STDOUT: !122 = !DISubroutineType(types: !123) // CHECK:STDOUT: !123 = !{!82, !68, !68, !68, !82} // CHECK:STDOUT: !124 = !{!125, !126, !127, !128} @@ -419,7 +419,7 @@ fn M() { // CHECK:STDOUT: !132 = !DILocation(line: 19, column: 21, scope: !121) // CHECK:STDOUT: !133 = !DILocation(line: 19, column: 10, scope: !121) // CHECK:STDOUT: !134 = !DILocation(line: 19, column: 3, scope: !121) -// CHECK:STDOUT: !135 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a45f082176f4b21e", scope: null, file: !3, line: 15, type: !136, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !138) +// CHECK:STDOUT: !135 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.ea32bb7f769e7967", scope: null, file: !3, line: 15, type: !136, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !138) // CHECK:STDOUT: !136 = !DISubroutineType(types: !137) // CHECK:STDOUT: !137 = !{!82, !75, !68, !68, !82} // CHECK:STDOUT: !138 = !{!139, !140, !141, !142} @@ -433,7 +433,7 @@ fn M() { // CHECK:STDOUT: !146 = !DILocation(line: 19, column: 21, scope: !135) // CHECK:STDOUT: !147 = !DILocation(line: 19, column: 10, scope: !135) // CHECK:STDOUT: !148 = !DILocation(line: 19, column: 3, scope: !135) -// CHECK:STDOUT: !149 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.791584c811c6ce9b", scope: null, file: !3, line: 15, type: !122, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !150) +// CHECK:STDOUT: !149 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.6eab5c6411742e70", scope: null, file: !3, line: 15, type: !122, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !150) // CHECK:STDOUT: !150 = !{!151, !152, !153, !154} // CHECK:STDOUT: !151 = !DILocalVariable(arg: 1, scope: !149, type: !68) // CHECK:STDOUT: !152 = !DILocalVariable(arg: 2, scope: !149, type: !68) @@ -445,7 +445,7 @@ fn M() { // CHECK:STDOUT: !158 = !DILocation(line: 19, column: 21, scope: !149) // CHECK:STDOUT: !159 = !DILocation(line: 19, column: 10, scope: !149) // CHECK:STDOUT: !160 = !DILocation(line: 19, column: 3, scope: !149) -// CHECK:STDOUT: !161 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.6a474ec237d64741", scope: null, file: !3, line: 15, type: !122, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !162) +// CHECK:STDOUT: !161 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.732da705e71cd359", scope: null, file: !3, line: 15, type: !122, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !162) // CHECK:STDOUT: !162 = !{!163, !164, !165, !166} // CHECK:STDOUT: !163 = !DILocalVariable(arg: 1, scope: !161, type: !68) // CHECK:STDOUT: !164 = !DILocalVariable(arg: 2, scope: !161, type: !68) @@ -457,7 +457,7 @@ fn M() { // CHECK:STDOUT: !170 = !DILocation(line: 19, column: 21, scope: !161) // CHECK:STDOUT: !171 = !DILocation(line: 19, column: 10, scope: !161) // CHECK:STDOUT: !172 = !DILocation(line: 19, column: 3, scope: !161) -// CHECK:STDOUT: !173 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.46eab09c3b5daff1", scope: null, file: !3, line: 15, type: !136, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !174) +// CHECK:STDOUT: !173 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.b1f6aa8c7fcac0ca", scope: null, file: !3, line: 15, type: !136, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !174) // CHECK:STDOUT: !174 = !{!175, !176, !177, !178} // CHECK:STDOUT: !175 = !DILocalVariable(arg: 1, scope: !173, type: !75) // CHECK:STDOUT: !176 = !DILocalVariable(arg: 2, scope: !173, type: !68) 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 07700c747896..8069784c3b5e 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_sccs_deep.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_sccs_deep.carbon @@ -103,26 +103,26 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !10 // CHECK:STDOUT: store ptr %m.var, ptr %ptr_f64.var, align 8, !dbg !10 // CHECK:STDOUT: %.loc79_5 = load i32, ptr %n.var, align 4, !dbg !11 -// CHECK:STDOUT: %A.call.loc79 = call i32 @_CA.Main.4bee6dcdea6ba756(i32 %.loc79_5, i32 0), !dbg !12 +// CHECK:STDOUT: %A.call.loc79 = call i32 @_CA.Main.5bd8d5767580997a(i32 %.loc79_5, i32 0), !dbg !12 // CHECK:STDOUT: %.loc80_5 = load double, ptr %m.var, align 8, !dbg !13 -// CHECK:STDOUT: %A.call.loc80 = call double @_CA.Main.925563b151bf93f6(double %.loc80_5, i32 0), !dbg !14 +// CHECK:STDOUT: %A.call.loc80 = call double @_CA.Main.c27b765f2159c9a0(double %.loc80_5, i32 0), !dbg !14 // CHECK:STDOUT: %.loc81_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !15 -// CHECK:STDOUT: %A.call.loc81 = call ptr @_CA.Main.a87c59609561b819(ptr %.loc81_5, i32 0), !dbg !16 +// CHECK:STDOUT: %A.call.loc81 = call ptr @_CA.Main.2621742a01881e29(ptr %.loc81_5, i32 0), !dbg !16 // CHECK:STDOUT: %.loc82_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !17 -// CHECK:STDOUT: %A.call.loc82 = call ptr @_CA.Main.a87c59609561b819(ptr %.loc82_5, i32 0), !dbg !18 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %m.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !7 +// CHECK:STDOUT: %A.call.loc82 = call ptr @_CA.Main.2621742a01881e29(ptr %.loc82_5, i32 0), !dbg !18 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %m.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %self) #0 !dbg !20 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !27 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } @@ -131,38 +131,38 @@ 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 i32 @_CA.Main.4bee6dcdea6ba756(i32 %x, i32 %count) #0 !dbg !34 { +// CHECK:STDOUT: define linkonce_odr i32 @_CA.Main.5bd8d5767580997a(i32 %x, i32 %count) #0 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CB.Main.4bee6dcdea6ba756(i32 %x, i32 %count), !dbg !40 -// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4bee6dcdea6ba756(i32 %x, i32 %count), !dbg !41 +// CHECK:STDOUT: call void @_CB.Main.5bd8d5767580997a(i32 %x, i32 %count), !dbg !40 +// CHECK:STDOUT: %D.call = call i32 @_CD.Main.5bd8d5767580997a(i32 %x, i32 %count), !dbg !41 // CHECK:STDOUT: ret i32 %D.call, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CA.Main.925563b151bf93f6(double %x, i32 %count) #0 !dbg !43 { +// CHECK:STDOUT: define linkonce_odr double @_CA.Main.c27b765f2159c9a0(double %x, i32 %count) #0 !dbg !43 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CB.Main.925563b151bf93f6(double %x, i32 %count), !dbg !49 -// CHECK:STDOUT: %D.call = call double @_CD.Main.925563b151bf93f6(double %x, i32 %count), !dbg !50 +// CHECK:STDOUT: call void @_CB.Main.c27b765f2159c9a0(double %x, i32 %count), !dbg !49 +// CHECK:STDOUT: %D.call = call double @_CD.Main.c27b765f2159c9a0(double %x, i32 %count), !dbg !50 // CHECK:STDOUT: ret double %D.call, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CA.Main.a87c59609561b819(ptr %x, i32 %count) #0 !dbg !52 { +// CHECK:STDOUT: define linkonce_odr ptr @_CA.Main.2621742a01881e29(ptr %x, i32 %count) #0 !dbg !52 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CB.Main.a87c59609561b819(ptr %x, i32 %count), !dbg !56 -// CHECK:STDOUT: %D.call = call ptr @_CD.Main.a87c59609561b819(ptr %x, i32 %count), !dbg !57 +// CHECK:STDOUT: call void @_CB.Main.2621742a01881e29(ptr %x, i32 %count), !dbg !56 +// CHECK:STDOUT: %D.call = call ptr @_CD.Main.2621742a01881e29(ptr %x, i32 %count), !dbg !57 // CHECK:STDOUT: ret ptr %D.call, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.4bee6dcdea6ba756(i32 %x, i32 %count) #0 !dbg !59 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.5bd8d5767580997a(i32 %x, i32 %count) #0 !dbg !59 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CC.Main.4bee6dcdea6ba756(i32 %x, i32 %count), !dbg !65 +// CHECK:STDOUT: call void @_CC.Main.5bd8d5767580997a(i32 %x, i32 %count), !dbg !65 // CHECK:STDOUT: ret void, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CD.Main.4bee6dcdea6ba756(i32 %x, i32 %count) #0 !dbg !67 { +// CHECK:STDOUT: define linkonce_odr i32 @_CD.Main.5bd8d5767580997a(i32 %x, i32 %count) #0 !dbg !67 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !71 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc48, label %if.else.loc48, !dbg !72 @@ -176,23 +176,23 @@ fn M() { // CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc51, label %if.else.loc51, !dbg !75 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc51: ; preds = %if.else.loc48 -// CHECK:STDOUT: %E.call = call i32 @_CE.Main.4bee6dcdea6ba756(i32 %x, i32 %count), !dbg !76 +// CHECK:STDOUT: %E.call = call i32 @_CE.Main.5bd8d5767580997a(i32 %x, i32 %count), !dbg !76 // CHECK:STDOUT: ret i32 %E.call, !dbg !77 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc51: ; preds = %if.else.loc48 -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.4bee6dcdea6ba756(i32 %x, i32 %count), !dbg !78 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.5bd8d5767580997a(i32 %x, i32 %count), !dbg !78 // CHECK:STDOUT: ret i32 %F.call, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.925563b151bf93f6(double %x, i32 %count) #0 !dbg !80 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.c27b765f2159c9a0(double %x, i32 %count) #0 !dbg !80 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CC.Main.925563b151bf93f6(double %x, i32 %count), !dbg !86 +// CHECK:STDOUT: call void @_CC.Main.c27b765f2159c9a0(double %x, i32 %count), !dbg !86 // CHECK:STDOUT: ret void, !dbg !87 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CD.Main.925563b151bf93f6(double %x, i32 %count) #0 !dbg !88 { +// CHECK:STDOUT: define linkonce_odr double @_CD.Main.c27b765f2159c9a0(double %x, i32 %count) #0 !dbg !88 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !92 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc48, label %if.else.loc48, !dbg !93 @@ -206,23 +206,23 @@ fn M() { // CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc51, label %if.else.loc51, !dbg !96 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc51: ; preds = %if.else.loc48 -// CHECK:STDOUT: %E.call = call double @_CE.Main.925563b151bf93f6(double %x, i32 %count), !dbg !97 +// CHECK:STDOUT: %E.call = call double @_CE.Main.c27b765f2159c9a0(double %x, i32 %count), !dbg !97 // CHECK:STDOUT: ret double %E.call, !dbg !98 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc51: ; preds = %if.else.loc48 -// CHECK:STDOUT: %F.call = call double @_CF.Main.925563b151bf93f6(double %x, i32 %count), !dbg !99 +// CHECK:STDOUT: %F.call = call double @_CF.Main.c27b765f2159c9a0(double %x, i32 %count), !dbg !99 // CHECK:STDOUT: ret double %F.call, !dbg !100 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.a87c59609561b819(ptr %x, i32 %count) #0 !dbg !101 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.2621742a01881e29(ptr %x, i32 %count) #0 !dbg !101 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CC.Main.a87c59609561b819(ptr %x, i32 %count), !dbg !105 +// CHECK:STDOUT: call void @_CC.Main.2621742a01881e29(ptr %x, i32 %count), !dbg !105 // CHECK:STDOUT: ret void, !dbg !106 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CD.Main.a87c59609561b819(ptr %x, i32 %count) #0 !dbg !107 { +// CHECK:STDOUT: define linkonce_odr ptr @_CD.Main.2621742a01881e29(ptr %x, i32 %count) #0 !dbg !107 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.Greater.call = icmp sgt i32 %count, 4, !dbg !111 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.Greater.call, label %if.then.loc48, label %if.else.loc48, !dbg !112 @@ -236,16 +236,16 @@ fn M() { // CHECK:STDOUT: br i1 %Int.as.EqWith.impl.Equal.call, label %if.then.loc51, label %if.else.loc51, !dbg !115 // CHECK:STDOUT: // CHECK:STDOUT: if.then.loc51: ; preds = %if.else.loc48 -// CHECK:STDOUT: %E.call = call ptr @_CE.Main.a87c59609561b819(ptr %x, i32 %count), !dbg !116 +// CHECK:STDOUT: %E.call = call ptr @_CE.Main.2621742a01881e29(ptr %x, i32 %count), !dbg !116 // CHECK:STDOUT: ret ptr %E.call, !dbg !117 // CHECK:STDOUT: // CHECK:STDOUT: if.else.loc51: ; preds = %if.else.loc48 -// CHECK:STDOUT: %F.call = call ptr @_CF.Main.a87c59609561b819(ptr %x, i32 %count), !dbg !118 +// CHECK:STDOUT: %F.call = call ptr @_CF.Main.2621742a01881e29(ptr %x, i32 %count), !dbg !118 // CHECK:STDOUT: ret ptr %F.call, !dbg !119 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CC.Main.4bee6dcdea6ba756(i32 %x, i32 %count) #0 !dbg !120 { +// CHECK:STDOUT: define linkonce_odr void @_CC.Main.5bd8d5767580997a(i32 %x, i32 %count) #0 !dbg !120 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.LessOrEquivalent.call = icmp sle i32 %count, 2, !dbg !124 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.LessOrEquivalent.call, label %if.then, label %if.else, !dbg !125 @@ -253,7 +253,7 @@ fn M() { // CHECK:STDOUT: if.then: ; preds = %entry // CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 %count), !dbg !126 // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !127 -// CHECK:STDOUT: call void @_CB.Main.4bee6dcdea6ba756(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !128 +// CHECK:STDOUT: call void @_CB.Main.5bd8d5767580997a(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !128 // CHECK:STDOUT: br label %if.else, !dbg !129 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %if.then, %entry @@ -261,21 +261,21 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CE.Main.4bee6dcdea6ba756(i32 %x, i32 %count) #0 !dbg !131 { +// CHECK:STDOUT: define linkonce_odr i32 @_CE.Main.5bd8d5767580997a(i32 %x, i32 %count) #0 !dbg !131 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.4bee6dcdea6ba756(i32 %x, i32 %count), !dbg !135 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.5bd8d5767580997a(i32 %x, i32 %count), !dbg !135 // CHECK:STDOUT: ret i32 %G.call, !dbg !136 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.4bee6dcdea6ba756(i32 %x, i32 %count) #0 !dbg !137 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.5bd8d5767580997a(i32 %x, i32 %count) #0 !dbg !137 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.4bee6dcdea6ba756(i32 %x, i32 %count), !dbg !141 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.5bd8d5767580997a(i32 %x, i32 %count), !dbg !141 // CHECK:STDOUT: ret i32 %G.call, !dbg !142 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CC.Main.925563b151bf93f6(double %x, i32 %count) #0 !dbg !143 { +// CHECK:STDOUT: define linkonce_odr void @_CC.Main.c27b765f2159c9a0(double %x, i32 %count) #0 !dbg !143 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.LessOrEquivalent.call = icmp sle i32 %count, 2, !dbg !147 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.LessOrEquivalent.call, label %if.then, label %if.else, !dbg !148 @@ -283,7 +283,7 @@ fn M() { // CHECK:STDOUT: if.then: ; preds = %entry // CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 %count), !dbg !149 // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !150 -// CHECK:STDOUT: call void @_CB.Main.925563b151bf93f6(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !151 +// CHECK:STDOUT: call void @_CB.Main.c27b765f2159c9a0(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !151 // CHECK:STDOUT: br label %if.else, !dbg !152 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %if.then, %entry @@ -291,21 +291,21 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CE.Main.925563b151bf93f6(double %x, i32 %count) #0 !dbg !154 { +// CHECK:STDOUT: define linkonce_odr double @_CE.Main.c27b765f2159c9a0(double %x, i32 %count) #0 !dbg !154 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call double @_CG.Main.925563b151bf93f6(double %x, i32 %count), !dbg !158 +// CHECK:STDOUT: %G.call = call double @_CG.Main.c27b765f2159c9a0(double %x, i32 %count), !dbg !158 // CHECK:STDOUT: ret double %G.call, !dbg !159 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CF.Main.925563b151bf93f6(double %x, i32 %count) #0 !dbg !160 { +// CHECK:STDOUT: define linkonce_odr double @_CF.Main.c27b765f2159c9a0(double %x, i32 %count) #0 !dbg !160 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call double @_CG.Main.925563b151bf93f6(double %x, i32 %count), !dbg !164 +// CHECK:STDOUT: %G.call = call double @_CG.Main.c27b765f2159c9a0(double %x, i32 %count), !dbg !164 // CHECK:STDOUT: ret double %G.call, !dbg !165 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CC.Main.a87c59609561b819(ptr %x, i32 %count) #0 !dbg !166 { +// CHECK:STDOUT: define linkonce_odr void @_CC.Main.2621742a01881e29(ptr %x, i32 %count) #0 !dbg !166 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.OrderedWith.impl.LessOrEquivalent.call = icmp sle i32 %count, 2, !dbg !170 // CHECK:STDOUT: br i1 %Int.as.OrderedWith.impl.LessOrEquivalent.call, label %if.then, label %if.else, !dbg !171 @@ -313,7 +313,7 @@ fn M() { // CHECK:STDOUT: if.then: ; preds = %entry // CHECK:STDOUT: %Print.call = call i32 (ptr, ...) @printf(ptr @printf.int.format, i32 %count), !dbg !172 // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !173 -// CHECK:STDOUT: call void @_CB.Main.a87c59609561b819(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !174 +// CHECK:STDOUT: call void @_CB.Main.2621742a01881e29(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !174 // CHECK:STDOUT: br label %if.else, !dbg !175 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %if.then, %entry @@ -321,52 +321,52 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CE.Main.a87c59609561b819(ptr %x, i32 %count) #0 !dbg !177 { +// CHECK:STDOUT: define linkonce_odr ptr @_CE.Main.2621742a01881e29(ptr %x, i32 %count) #0 !dbg !177 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call ptr @_CG.Main.a87c59609561b819(ptr %x, i32 %count), !dbg !181 +// CHECK:STDOUT: %G.call = call ptr @_CG.Main.2621742a01881e29(ptr %x, i32 %count), !dbg !181 // CHECK:STDOUT: ret ptr %G.call, !dbg !182 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.a87c59609561b819(ptr %x, i32 %count) #0 !dbg !183 { +// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.2621742a01881e29(ptr %x, i32 %count) #0 !dbg !183 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call ptr @_CG.Main.a87c59609561b819(ptr %x, i32 %count), !dbg !187 +// CHECK:STDOUT: %G.call = call ptr @_CG.Main.2621742a01881e29(ptr %x, i32 %count), !dbg !187 // CHECK:STDOUT: ret ptr %G.call, !dbg !188 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @printf(ptr, ...) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.4bee6dcdea6ba756(i32 %x, i32 %count) #0 !dbg !189 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.5bd8d5767580997a(i32 %x, i32 %count) #0 !dbg !189 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !193 -// CHECK:STDOUT: %D.call = call i32 @_CD.Main.4bee6dcdea6ba756(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !194 +// CHECK:STDOUT: %D.call = call i32 @_CD.Main.5bd8d5767580997a(i32 %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !194 // CHECK:STDOUT: ret i32 %D.call, !dbg !195 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CG.Main.925563b151bf93f6(double %x, i32 %count) #0 !dbg !196 { +// CHECK:STDOUT: define linkonce_odr double @_CG.Main.c27b765f2159c9a0(double %x, i32 %count) #0 !dbg !196 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !200 -// CHECK:STDOUT: %D.call = call double @_CD.Main.925563b151bf93f6(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !201 +// CHECK:STDOUT: %D.call = call double @_CD.Main.c27b765f2159c9a0(double %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !201 // CHECK:STDOUT: ret double %D.call, !dbg !202 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CG.Main.a87c59609561b819(ptr %x, i32 %count) #0 !dbg !203 { +// CHECK:STDOUT: define linkonce_odr ptr @_CG.Main.2621742a01881e29(ptr %x, i32 %count) #0 !dbg !203 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %Int.as.AddWith.impl.Op.call = add i32 %count, 1, !dbg !207 -// CHECK:STDOUT: %D.call = call ptr @_CD.Main.a87c59609561b819(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !208 +// CHECK:STDOUT: %D.call = call ptr @_CD.Main.2621742a01881e29(ptr %x, i32 %Int.as.AddWith.impl.Op.call), !dbg !208 // CHECK:STDOUT: ret ptr %D.call, !dbg !209 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 3, 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CA.Main.a87c59609561b819, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CA.Main.2621742a01881e29, { 1, 0 } // CHECK:STDOUT: uselistorder ptr @printf, { 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CG.Main.4bee6dcdea6ba756, { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CG.Main.925563b151bf93f6, { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CG.Main.a87c59609561b819, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CG.Main.5bd8d5767580997a, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CG.Main.c27b765f2159c9a0, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CG.Main.2621742a01881e29, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } @@ -394,21 +394,21 @@ fn M() { // CHECK:STDOUT: !17 = !DILocation(line: 82, column: 5, scope: !4) // CHECK:STDOUT: !18 = !DILocation(line: 82, column: 3, scope: !4) // CHECK:STDOUT: !19 = !DILocation(line: 73, column: 1, scope: !4) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e4fc30ecea9aa7e:core.Destroy.Core", scope: null, file: !3, line: 75, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.30d8007fdcc57f83:core.Destroy.Core", scope: null, file: !3, line: 75, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) // CHECK:STDOUT: !21 = !DISubroutineType(types: !22) // CHECK:STDOUT: !22 = !{null, !23} // CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !24 = !{!25} // CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) // CHECK:STDOUT: !26 = !DILocation(line: 75, column: 3, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 74, type: !28, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 74, type: !28, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) // CHECK:STDOUT: !28 = !DISubroutineType(types: !29) // CHECK:STDOUT: !29 = !{null, !30} // CHECK:STDOUT: !30 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !27, type: !30) // CHECK:STDOUT: !33 = !DILocation(line: 74, column: 3, scope: !27) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 31, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !37) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.5bd8d5767580997a", scope: null, file: !3, line: 31, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !37) // CHECK:STDOUT: !35 = !DISubroutineType(types: !36) // CHECK:STDOUT: !36 = !{!30, !30, !30} // CHECK:STDOUT: !37 = !{!38, !39} @@ -417,7 +417,7 @@ fn M() { // CHECK:STDOUT: !40 = !DILocation(line: 32, column: 3, scope: !34) // CHECK:STDOUT: !41 = !DILocation(line: 33, column: 10, scope: !34) // CHECK:STDOUT: !42 = !DILocation(line: 33, column: 3, scope: !34) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.925563b151bf93f6", scope: null, file: !3, line: 31, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.c27b765f2159c9a0", scope: null, file: !3, line: 31, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) // CHECK:STDOUT: !44 = !DISubroutineType(types: !45) // CHECK:STDOUT: !45 = !{!23, !23, !30} // CHECK:STDOUT: !46 = !{!47, !48} @@ -426,14 +426,14 @@ fn M() { // CHECK:STDOUT: !49 = !DILocation(line: 32, column: 3, scope: !43) // CHECK:STDOUT: !50 = !DILocation(line: 33, column: 10, scope: !43) // CHECK:STDOUT: !51 = !DILocation(line: 33, column: 3, scope: !43) -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.a87c59609561b819", scope: null, file: !3, line: 31, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !53) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.2621742a01881e29", scope: null, file: !3, line: 31, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !53) // CHECK:STDOUT: !53 = !{!54, !55} // CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !52, type: !23) // CHECK:STDOUT: !55 = !DILocalVariable(arg: 2, scope: !52, type: !30) // CHECK:STDOUT: !56 = !DILocation(line: 32, column: 3, scope: !52) // CHECK:STDOUT: !57 = !DILocation(line: 33, column: 10, scope: !52) // CHECK:STDOUT: !58 = !DILocation(line: 33, column: 3, scope: !52) -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 36, type: !60, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !62) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.5bd8d5767580997a", scope: null, file: !3, line: 36, type: !60, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !62) // CHECK:STDOUT: !60 = !DISubroutineType(types: !61) // CHECK:STDOUT: !61 = !{null, !30, !30} // CHECK:STDOUT: !62 = !{!63, !64} @@ -441,7 +441,7 @@ fn M() { // CHECK:STDOUT: !64 = !DILocalVariable(arg: 2, scope: !59, type: !30) // CHECK:STDOUT: !65 = !DILocation(line: 37, column: 3, scope: !59) // CHECK:STDOUT: !66 = !DILocation(line: 36, column: 1, scope: !59) -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 47, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !68) +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.5bd8d5767580997a", scope: null, file: !3, line: 47, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !68) // CHECK:STDOUT: !68 = !{!69, !70} // CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !67, type: !30) // CHECK:STDOUT: !70 = !DILocalVariable(arg: 2, scope: !67, type: !30) @@ -454,7 +454,7 @@ fn M() { // CHECK:STDOUT: !77 = !DILocation(line: 52, column: 5, scope: !67) // CHECK:STDOUT: !78 = !DILocation(line: 54, column: 12, scope: !67) // CHECK:STDOUT: !79 = !DILocation(line: 54, column: 5, scope: !67) -// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.925563b151bf93f6", scope: null, file: !3, line: 36, type: !81, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !83) +// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.c27b765f2159c9a0", scope: null, file: !3, line: 36, type: !81, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !83) // CHECK:STDOUT: !81 = !DISubroutineType(types: !82) // CHECK:STDOUT: !82 = !{null, !23, !30} // CHECK:STDOUT: !83 = !{!84, !85} @@ -462,7 +462,7 @@ fn M() { // CHECK:STDOUT: !85 = !DILocalVariable(arg: 2, scope: !80, type: !30) // CHECK:STDOUT: !86 = !DILocation(line: 37, column: 3, scope: !80) // CHECK:STDOUT: !87 = !DILocation(line: 36, column: 1, scope: !80) -// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.925563b151bf93f6", scope: null, file: !3, line: 47, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !89) +// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.c27b765f2159c9a0", scope: null, file: !3, line: 47, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !89) // CHECK:STDOUT: !89 = !{!90, !91} // CHECK:STDOUT: !90 = !DILocalVariable(arg: 1, scope: !88, type: !23) // CHECK:STDOUT: !91 = !DILocalVariable(arg: 2, scope: !88, type: !30) @@ -475,13 +475,13 @@ fn M() { // CHECK:STDOUT: !98 = !DILocation(line: 52, column: 5, scope: !88) // CHECK:STDOUT: !99 = !DILocation(line: 54, column: 12, scope: !88) // CHECK:STDOUT: !100 = !DILocation(line: 54, column: 5, scope: !88) -// CHECK:STDOUT: !101 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.a87c59609561b819", scope: null, file: !3, line: 36, type: !81, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !102) +// CHECK:STDOUT: !101 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.2621742a01881e29", scope: null, file: !3, line: 36, type: !81, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !102) // CHECK:STDOUT: !102 = !{!103, !104} // CHECK:STDOUT: !103 = !DILocalVariable(arg: 1, scope: !101, type: !23) // CHECK:STDOUT: !104 = !DILocalVariable(arg: 2, scope: !101, type: !30) // CHECK:STDOUT: !105 = !DILocation(line: 37, column: 3, scope: !101) // CHECK:STDOUT: !106 = !DILocation(line: 36, column: 1, scope: !101) -// CHECK:STDOUT: !107 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.a87c59609561b819", scope: null, file: !3, line: 47, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !108) +// CHECK:STDOUT: !107 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.2621742a01881e29", scope: null, file: !3, line: 47, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !108) // CHECK:STDOUT: !108 = !{!109, !110} // CHECK:STDOUT: !109 = !DILocalVariable(arg: 1, scope: !107, type: !23) // CHECK:STDOUT: !110 = !DILocalVariable(arg: 2, scope: !107, type: !30) @@ -494,7 +494,7 @@ fn M() { // CHECK:STDOUT: !117 = !DILocation(line: 52, column: 5, scope: !107) // CHECK:STDOUT: !118 = !DILocation(line: 54, column: 12, scope: !107) // CHECK:STDOUT: !119 = !DILocation(line: 54, column: 5, scope: !107) -// CHECK:STDOUT: !120 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 40, type: !60, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !121) +// CHECK:STDOUT: !120 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.5bd8d5767580997a", scope: null, file: !3, line: 40, type: !60, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !121) // CHECK:STDOUT: !121 = !{!122, !123} // CHECK:STDOUT: !122 = !DILocalVariable(arg: 1, scope: !120, type: !30) // CHECK:STDOUT: !123 = !DILocalVariable(arg: 2, scope: !120, type: !30) @@ -505,19 +505,19 @@ fn M() { // CHECK:STDOUT: !128 = !DILocation(line: 43, column: 5, scope: !120) // CHECK:STDOUT: !129 = !DILocation(line: 41, column: 3, scope: !120) // CHECK:STDOUT: !130 = !DILocation(line: 40, column: 1, scope: !120) -// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 60, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !132) +// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.5bd8d5767580997a", scope: null, file: !3, line: 60, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !132) // CHECK:STDOUT: !132 = !{!133, !134} // CHECK:STDOUT: !133 = !DILocalVariable(arg: 1, scope: !131, type: !30) // CHECK:STDOUT: !134 = !DILocalVariable(arg: 2, scope: !131, type: !30) // CHECK:STDOUT: !135 = !DILocation(line: 61, column: 10, scope: !131) // CHECK:STDOUT: !136 = !DILocation(line: 61, column: 3, scope: !131) -// CHECK:STDOUT: !137 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 64, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !138) +// CHECK:STDOUT: !137 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.5bd8d5767580997a", scope: null, file: !3, line: 64, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !138) // CHECK:STDOUT: !138 = !{!139, !140} // CHECK:STDOUT: !139 = !DILocalVariable(arg: 1, scope: !137, type: !30) // CHECK:STDOUT: !140 = !DILocalVariable(arg: 2, scope: !137, type: !30) // CHECK:STDOUT: !141 = !DILocation(line: 65, column: 10, scope: !137) // CHECK:STDOUT: !142 = !DILocation(line: 65, column: 3, scope: !137) -// CHECK:STDOUT: !143 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.925563b151bf93f6", scope: null, file: !3, line: 40, type: !81, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !144) +// CHECK:STDOUT: !143 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.c27b765f2159c9a0", scope: null, file: !3, line: 40, type: !81, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !144) // CHECK:STDOUT: !144 = !{!145, !146} // CHECK:STDOUT: !145 = !DILocalVariable(arg: 1, scope: !143, type: !23) // CHECK:STDOUT: !146 = !DILocalVariable(arg: 2, scope: !143, type: !30) @@ -528,19 +528,19 @@ fn M() { // CHECK:STDOUT: !151 = !DILocation(line: 43, column: 5, scope: !143) // CHECK:STDOUT: !152 = !DILocation(line: 41, column: 3, scope: !143) // CHECK:STDOUT: !153 = !DILocation(line: 40, column: 1, scope: !143) -// CHECK:STDOUT: !154 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.925563b151bf93f6", scope: null, file: !3, line: 60, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !155) +// CHECK:STDOUT: !154 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.c27b765f2159c9a0", scope: null, file: !3, line: 60, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !155) // CHECK:STDOUT: !155 = !{!156, !157} // CHECK:STDOUT: !156 = !DILocalVariable(arg: 1, scope: !154, type: !23) // CHECK:STDOUT: !157 = !DILocalVariable(arg: 2, scope: !154, type: !30) // CHECK:STDOUT: !158 = !DILocation(line: 61, column: 10, scope: !154) // CHECK:STDOUT: !159 = !DILocation(line: 61, column: 3, scope: !154) -// CHECK:STDOUT: !160 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.925563b151bf93f6", scope: null, file: !3, line: 64, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !161) +// CHECK:STDOUT: !160 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.c27b765f2159c9a0", scope: null, file: !3, line: 64, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !161) // CHECK:STDOUT: !161 = !{!162, !163} // CHECK:STDOUT: !162 = !DILocalVariable(arg: 1, scope: !160, type: !23) // CHECK:STDOUT: !163 = !DILocalVariable(arg: 2, scope: !160, type: !30) // CHECK:STDOUT: !164 = !DILocation(line: 65, column: 10, scope: !160) // CHECK:STDOUT: !165 = !DILocation(line: 65, column: 3, scope: !160) -// CHECK:STDOUT: !166 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.a87c59609561b819", scope: null, file: !3, line: 40, type: !81, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !167) +// CHECK:STDOUT: !166 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.2621742a01881e29", scope: null, file: !3, line: 40, type: !81, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !167) // CHECK:STDOUT: !167 = !{!168, !169} // CHECK:STDOUT: !168 = !DILocalVariable(arg: 1, scope: !166, type: !23) // CHECK:STDOUT: !169 = !DILocalVariable(arg: 2, scope: !166, type: !30) @@ -551,33 +551,33 @@ fn M() { // CHECK:STDOUT: !174 = !DILocation(line: 43, column: 5, scope: !166) // CHECK:STDOUT: !175 = !DILocation(line: 41, column: 3, scope: !166) // CHECK:STDOUT: !176 = !DILocation(line: 40, column: 1, scope: !166) -// CHECK:STDOUT: !177 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.a87c59609561b819", scope: null, file: !3, line: 60, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !178) +// CHECK:STDOUT: !177 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.2621742a01881e29", scope: null, file: !3, line: 60, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !178) // CHECK:STDOUT: !178 = !{!179, !180} // CHECK:STDOUT: !179 = !DILocalVariable(arg: 1, scope: !177, type: !23) // CHECK:STDOUT: !180 = !DILocalVariable(arg: 2, scope: !177, type: !30) // CHECK:STDOUT: !181 = !DILocation(line: 61, column: 10, scope: !177) // CHECK:STDOUT: !182 = !DILocation(line: 61, column: 3, scope: !177) -// CHECK:STDOUT: !183 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a87c59609561b819", scope: null, file: !3, line: 64, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !184) +// CHECK:STDOUT: !183 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2621742a01881e29", scope: null, file: !3, line: 64, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !184) // CHECK:STDOUT: !184 = !{!185, !186} // CHECK:STDOUT: !185 = !DILocalVariable(arg: 1, scope: !183, type: !23) // CHECK:STDOUT: !186 = !DILocalVariable(arg: 2, scope: !183, type: !30) // CHECK:STDOUT: !187 = !DILocation(line: 65, column: 10, scope: !183) // CHECK:STDOUT: !188 = !DILocation(line: 65, column: 3, scope: !183) -// CHECK:STDOUT: !189 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 68, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !190) +// CHECK:STDOUT: !189 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.5bd8d5767580997a", scope: null, file: !3, line: 68, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !190) // CHECK:STDOUT: !190 = !{!191, !192} // CHECK:STDOUT: !191 = !DILocalVariable(arg: 1, scope: !189, type: !30) // CHECK:STDOUT: !192 = !DILocalVariable(arg: 2, scope: !189, type: !30) // CHECK:STDOUT: !193 = !DILocation(line: 69, column: 15, scope: !189) // CHECK:STDOUT: !194 = !DILocation(line: 69, column: 10, scope: !189) // CHECK:STDOUT: !195 = !DILocation(line: 69, column: 3, scope: !189) -// CHECK:STDOUT: !196 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.925563b151bf93f6", scope: null, file: !3, line: 68, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !197) +// CHECK:STDOUT: !196 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c27b765f2159c9a0", scope: null, file: !3, line: 68, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !197) // CHECK:STDOUT: !197 = !{!198, !199} // CHECK:STDOUT: !198 = !DILocalVariable(arg: 1, scope: !196, type: !23) // CHECK:STDOUT: !199 = !DILocalVariable(arg: 2, scope: !196, type: !30) // CHECK:STDOUT: !200 = !DILocation(line: 69, column: 15, scope: !196) // CHECK:STDOUT: !201 = !DILocation(line: 69, column: 10, scope: !196) // CHECK:STDOUT: !202 = !DILocation(line: 69, column: 3, scope: !196) -// CHECK:STDOUT: !203 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.a87c59609561b819", scope: null, file: !3, line: 68, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !204) +// CHECK:STDOUT: !203 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.2621742a01881e29", scope: null, file: !3, line: 68, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !204) // CHECK:STDOUT: !204 = !{!205, !206} // CHECK:STDOUT: !205 = !DILocalVariable(arg: 1, scope: !203, type: !23) // CHECK:STDOUT: !206 = !DILocalVariable(arg: 2, scope: !203, type: !30) 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 7e2d22f75a9b..2baeb35aa081 100644 --- a/toolchain/lower/testdata/function/generic/call_specific_in_class.carbon +++ b/toolchain/lower/testdata/function/generic/call_specific_in_class.carbon @@ -50,7 +50,7 @@ fn M() { // CHECK:STDOUT: %type = type {} // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define weak_odr void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self) #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !10 // CHECK:STDOUT: } @@ -67,39 +67,39 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !14 // CHECK:STDOUT: store ptr poison, ptr %ptr_i32.var, align 8, !dbg !14 // CHECK:STDOUT: %.loc34_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !20 -// CHECK:STDOUT: %F.call.loc34 = call ptr @_CF.Main.a87c59609561b819(ptr %.loc34_5), !dbg !21 +// CHECK:STDOUT: %F.call.loc34 = call ptr @_CF.Main.2621742a01881e29(ptr %.loc34_5), !dbg !21 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !15 // CHECK:STDOUT: store ptr poison, ptr %ptr_f64.var, align 8, !dbg !15 // CHECK:STDOUT: %.loc36_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !22 -// CHECK:STDOUT: %F.call.loc36 = call ptr @_CF.Main.a87c59609561b819(ptr %.loc36_5), !dbg !23 +// CHECK:STDOUT: %F.call.loc36 = call ptr @_CF.Main.2621742a01881e29(ptr %.loc36_5), !dbg !23 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i8.var), !dbg !16 // CHECK:STDOUT: store ptr poison, ptr %ptr_i8.var, align 8, !dbg !16 // CHECK:STDOUT: %.loc38_5 = load ptr, ptr %ptr_i8.var, align 8, !dbg !24 -// CHECK:STDOUT: %F.call.loc38 = call ptr @_CF.Main.a87c59609561b819(ptr %.loc38_5), !dbg !25 +// CHECK:STDOUT: %F.call.loc38 = call ptr @_CF.Main.2621742a01881e29(ptr %.loc38_5), !dbg !25 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var_i32.var), !dbg !17 // CHECK:STDOUT: store i32 0, ptr %var_i32.var, align 4, !dbg !17 // CHECK:STDOUT: %.loc40_5 = load i32, ptr %var_i32.var, align 4, !dbg !26 -// CHECK:STDOUT: %F.call.loc40 = call i32 @_CF.Main.4bee6dcdea6ba756(i32 %.loc40_5), !dbg !27 +// CHECK:STDOUT: %F.call.loc40 = call i32 @_CF.Main.5bd8d5767580997a(i32 %.loc40_5), !dbg !27 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var_f64.var), !dbg !18 // CHECK:STDOUT: store double 0.000000e+00, ptr %var_f64.var, align 8, !dbg !18 // CHECK:STDOUT: %.loc42_5 = load double, ptr %var_f64.var, align 8, !dbg !28 -// CHECK:STDOUT: %F.call.loc42 = call double @_CF.Main.925563b151bf93f6(double %.loc42_5), !dbg !29 +// CHECK:STDOUT: %F.call.loc42 = call double @_CF.Main.c27b765f2159c9a0(double %.loc42_5), !dbg !29 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !19 -// CHECK:STDOUT: %F.call.loc44 = call %type @_CF.Main.7c9378dab434d9d8(%type zeroinitializer), !dbg !30 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %_.var), !dbg !19 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %var_f64.var), !dbg !18 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %var_i32.var), !dbg !17 +// CHECK:STDOUT: %F.call.loc44 = call %type @_CF.Main.ee509b43cf4eb3c5(%type zeroinitializer), !dbg !30 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %_.var), !dbg !19 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %var_f64.var), !dbg !18 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %var_i32.var), !dbg !17 // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !36 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !36 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } @@ -108,100 +108,100 @@ 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 ptr @_CF.Main.a87c59609561b819(ptr %x) #0 !dbg !43 { +// CHECK:STDOUT: define linkonce_odr ptr @_CF.Main.2621742a01881e29(ptr %x) #0 !dbg !43 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call ptr @_CG.Main.a87c59609561b819(ptr %x), !dbg !48 +// CHECK:STDOUT: %G.call = call ptr @_CG.Main.2621742a01881e29(ptr %x), !dbg !48 // CHECK:STDOUT: ret ptr %G.call, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.4bee6dcdea6ba756(i32 %x) #0 !dbg !50 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.5bd8d5767580997a(i32 %x) #0 !dbg !50 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.4bee6dcdea6ba756(i32 %x), !dbg !55 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.5bd8d5767580997a(i32 %x), !dbg !55 // CHECK:STDOUT: ret i32 %G.call, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CF.Main.925563b151bf93f6(double %x) #0 !dbg !57 { +// CHECK:STDOUT: define linkonce_odr double @_CF.Main.c27b765f2159c9a0(double %x) #0 !dbg !57 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call double @_CG.Main.925563b151bf93f6(double %x), !dbg !60 +// CHECK:STDOUT: %G.call = call double @_CG.Main.c27b765f2159c9a0(double %x), !dbg !60 // CHECK:STDOUT: ret double %G.call, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr %type @_CF.Main.7c9378dab434d9d8(%type %x) #0 !dbg !62 { +// CHECK:STDOUT: define linkonce_odr %type @_CF.Main.ee509b43cf4eb3c5(%type %x) #0 !dbg !62 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call %type @_CG.Main.7c9378dab434d9d8(%type %x), !dbg !65 +// CHECK:STDOUT: %G.call = call %type @_CG.Main.ee509b43cf4eb3c5(%type %x), !dbg !65 // CHECK:STDOUT: ret %type %G.call, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CG.Main.a87c59609561b819(ptr %x) #0 !dbg !67 { +// CHECK:STDOUT: define linkonce_odr ptr @_CG.Main.2621742a01881e29(ptr %x) #0 !dbg !67 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !70 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !70 -// CHECK:STDOUT: %C.Cfn.call = call ptr @_CCfn.C.Main.a87c59609561b819(ptr %c.var, ptr %x), !dbg !71 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %c.var), !dbg !70 +// CHECK:STDOUT: %C.Cfn.call = call ptr @_CCfn.C.Main.2621742a01881e29(ptr %c.var, ptr %x), !dbg !71 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %c.var), !dbg !70 // CHECK:STDOUT: ret ptr %C.Cfn.call, !dbg !72 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.4bee6dcdea6ba756(i32 %x) #0 !dbg !73 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.5bd8d5767580997a(i32 %x) #0 !dbg !73 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !76 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !76 -// CHECK:STDOUT: %C.Cfn.call = call i32 @_CCfn.C.Main.4bee6dcdea6ba756(ptr %c.var, i32 %x), !dbg !77 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %c.var), !dbg !76 +// CHECK:STDOUT: %C.Cfn.call = call i32 @_CCfn.C.Main.5bd8d5767580997a(ptr %c.var, i32 %x), !dbg !77 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %c.var), !dbg !76 // CHECK:STDOUT: ret i32 %C.Cfn.call, !dbg !78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CG.Main.925563b151bf93f6(double %x) #0 !dbg !79 { +// CHECK:STDOUT: define linkonce_odr double @_CG.Main.c27b765f2159c9a0(double %x) #0 !dbg !79 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !82 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !82 -// CHECK:STDOUT: %C.Cfn.call = call double @_CCfn.C.Main.925563b151bf93f6(ptr %c.var, double %x), !dbg !83 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %c.var), !dbg !82 +// CHECK:STDOUT: %C.Cfn.call = call double @_CCfn.C.Main.c27b765f2159c9a0(ptr %c.var, double %x), !dbg !83 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %c.var), !dbg !82 // CHECK:STDOUT: ret double %C.Cfn.call, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr %type @_CG.Main.7c9378dab434d9d8(%type %x) #0 !dbg !85 { +// CHECK:STDOUT: define linkonce_odr %type @_CG.Main.ee509b43cf4eb3c5(%type %x) #0 !dbg !85 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %c.var = alloca {}, align 1, !dbg !88 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !88 -// CHECK:STDOUT: %C.Cfn.call = call %type @_CCfn.C.Main.7c9378dab434d9d8(ptr %c.var, %type %x), !dbg !89 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %c.var), !dbg !88 +// CHECK:STDOUT: %C.Cfn.call = call %type @_CCfn.C.Main.ee509b43cf4eb3c5(ptr %c.var, %type %x), !dbg !89 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %c.var), !dbg !88 // CHECK:STDOUT: ret %type %C.Cfn.call, !dbg !90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CCfn.C.Main.a87c59609561b819(ptr %self, ptr %x) #0 !dbg !91 { +// CHECK:STDOUT: define linkonce_odr ptr @_CCfn.C.Main.2621742a01881e29(ptr %self, ptr %x) #0 !dbg !91 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret ptr %x, !dbg !97 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CCfn.C.Main.4bee6dcdea6ba756(ptr %self, i32 %x) #0 !dbg !98 { +// CHECK:STDOUT: define linkonce_odr i32 @_CCfn.C.Main.5bd8d5767580997a(ptr %self, i32 %x) #0 !dbg !98 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret i32 %x, !dbg !104 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr double @_CCfn.C.Main.925563b151bf93f6(ptr %self, double %x) #0 !dbg !105 { +// CHECK:STDOUT: define linkonce_odr double @_CCfn.C.Main.c27b765f2159c9a0(ptr %self, double %x) #0 !dbg !105 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret double %x, !dbg !109 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr %type @_CCfn.C.Main.7c9378dab434d9d8(ptr %self, %type %x) #0 !dbg !110 { +// CHECK:STDOUT: define linkonce_odr %type @_CCfn.C.Main.ee509b43cf4eb3c5(ptr %self, %type %x) #0 !dbg !110 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret %type %x, !dbg !114 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 1, 2, 3, 9, 8, 7, 6, 5, 4 } -// CHECK:STDOUT: uselistorder ptr @_CF.Main.a87c59609561b819, { 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CF.Main.2621742a01881e29, { 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } @@ -213,7 +213,7 @@ fn M() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "call_specific_in_class.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.907c496eccf2294c:core.Destroy.Core", scope: null, file: !3, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.807eb4f2d3ed7e54:core.Destroy.Core", scope: null, file: !3, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{null, !7} // CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -241,85 +241,85 @@ fn M() { // CHECK:STDOUT: !29 = !DILocation(line: 42, column: 3, scope: !11) // CHECK:STDOUT: !30 = !DILocation(line: 44, column: 3, scope: !11) // CHECK:STDOUT: !31 = !DILocation(line: 32, column: 1, scope: !11) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e4fc30ecea9aa7e:core.Destroy.Core", scope: null, file: !3, line: 41, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !33) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.30d8007fdcc57f83:core.Destroy.Core", scope: null, file: !3, line: 41, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !33) // CHECK:STDOUT: !33 = !{!34} // CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !7) // CHECK:STDOUT: !35 = !DILocation(line: 41, column: 3, scope: !32) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 39, type: !37, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !40) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 39, type: !37, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !40) // CHECK:STDOUT: !37 = !DISubroutineType(types: !38) // CHECK:STDOUT: !38 = !{null, !39} // CHECK:STDOUT: !39 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !40 = !{!41} // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !36, type: !39) // CHECK:STDOUT: !42 = !DILocation(line: 39, column: 3, scope: !36) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a87c59609561b819", scope: null, file: !3, line: 28, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2621742a01881e29", scope: null, file: !3, line: 28, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) // CHECK:STDOUT: !44 = !DISubroutineType(types: !45) // CHECK:STDOUT: !45 = !{!7, !7} // CHECK:STDOUT: !46 = !{!47} // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !43, type: !7) // CHECK:STDOUT: !48 = !DILocation(line: 29, column: 10, scope: !43) // CHECK:STDOUT: !49 = !DILocation(line: 29, column: 3, scope: !43) -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 28, type: !51, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !53) +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.5bd8d5767580997a", scope: null, file: !3, line: 28, type: !51, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !53) // CHECK:STDOUT: !51 = !DISubroutineType(types: !52) // CHECK:STDOUT: !52 = !{!39, !39} // CHECK:STDOUT: !53 = !{!54} // CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !50, type: !39) // CHECK:STDOUT: !55 = !DILocation(line: 29, column: 10, scope: !50) // CHECK:STDOUT: !56 = !DILocation(line: 29, column: 3, scope: !50) -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.925563b151bf93f6", scope: null, file: !3, line: 28, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !58) +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.c27b765f2159c9a0", scope: null, file: !3, line: 28, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !58) // CHECK:STDOUT: !58 = !{!59} // CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !57, type: !7) // CHECK:STDOUT: !60 = !DILocation(line: 29, column: 10, scope: !57) // CHECK:STDOUT: !61 = !DILocation(line: 29, column: 3, scope: !57) -// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.7c9378dab434d9d8", scope: null, file: !3, line: 28, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !63) +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.ee509b43cf4eb3c5", scope: null, file: !3, line: 28, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !63) // CHECK:STDOUT: !63 = !{!64} // CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !62, type: !7) // CHECK:STDOUT: !65 = !DILocation(line: 29, column: 10, scope: !62) // CHECK:STDOUT: !66 = !DILocation(line: 29, column: 3, scope: !62) -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.a87c59609561b819", scope: null, file: !3, line: 23, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !68) +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.2621742a01881e29", scope: null, file: !3, line: 23, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !68) // CHECK:STDOUT: !68 = !{!69} // CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !67, type: !7) // CHECK:STDOUT: !70 = !DILocation(line: 24, column: 3, scope: !67) // CHECK:STDOUT: !71 = !DILocation(line: 25, column: 10, scope: !67) // CHECK:STDOUT: !72 = !DILocation(line: 25, column: 3, scope: !67) -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 23, type: !51, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !74) +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.5bd8d5767580997a", scope: null, file: !3, line: 23, type: !51, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !74) // CHECK:STDOUT: !74 = !{!75} // CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !73, type: !39) // CHECK:STDOUT: !76 = !DILocation(line: 24, column: 3, scope: !73) // CHECK:STDOUT: !77 = !DILocation(line: 25, column: 10, scope: !73) // CHECK:STDOUT: !78 = !DILocation(line: 25, column: 3, scope: !73) -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.925563b151bf93f6", scope: null, file: !3, line: 23, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !80) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c27b765f2159c9a0", scope: null, file: !3, line: 23, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !80) // CHECK:STDOUT: !80 = !{!81} // CHECK:STDOUT: !81 = !DILocalVariable(arg: 1, scope: !79, type: !7) // CHECK:STDOUT: !82 = !DILocation(line: 24, column: 3, scope: !79) // CHECK:STDOUT: !83 = !DILocation(line: 25, column: 10, scope: !79) // CHECK:STDOUT: !84 = !DILocation(line: 25, column: 3, scope: !79) -// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.7c9378dab434d9d8", scope: null, file: !3, line: 23, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !86) +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.ee509b43cf4eb3c5", scope: null, file: !3, line: 23, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !86) // CHECK:STDOUT: !86 = !{!87} // CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !85, type: !7) // CHECK:STDOUT: !88 = !DILocation(line: 24, column: 3, scope: !85) // CHECK:STDOUT: !89 = !DILocation(line: 25, column: 10, scope: !85) // CHECK:STDOUT: !90 = !DILocation(line: 25, column: 3, scope: !85) -// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "Cfn", linkageName: "_CCfn.C.Main.a87c59609561b819", scope: null, file: !3, line: 18, type: !92, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !94) +// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "Cfn", linkageName: "_CCfn.C.Main.2621742a01881e29", scope: null, file: !3, line: 18, type: !92, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !94) // CHECK:STDOUT: !92 = !DISubroutineType(types: !93) // CHECK:STDOUT: !93 = !{!7, !7, !7} // CHECK:STDOUT: !94 = !{!95, !96} // CHECK:STDOUT: !95 = !DILocalVariable(arg: 1, scope: !91, type: !7) // CHECK:STDOUT: !96 = !DILocalVariable(arg: 2, scope: !91, type: !7) // CHECK:STDOUT: !97 = !DILocation(line: 19, column: 5, scope: !91) -// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "Cfn", linkageName: "_CCfn.C.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 18, type: !99, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !101) +// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "Cfn", linkageName: "_CCfn.C.Main.5bd8d5767580997a", scope: null, file: !3, line: 18, type: !99, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !101) // CHECK:STDOUT: !99 = !DISubroutineType(types: !100) // CHECK:STDOUT: !100 = !{!39, !7, !39} // CHECK:STDOUT: !101 = !{!102, !103} // CHECK:STDOUT: !102 = !DILocalVariable(arg: 1, scope: !98, type: !7) // CHECK:STDOUT: !103 = !DILocalVariable(arg: 2, scope: !98, type: !39) // CHECK:STDOUT: !104 = !DILocation(line: 19, column: 5, scope: !98) -// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "Cfn", linkageName: "_CCfn.C.Main.925563b151bf93f6", scope: null, file: !3, line: 18, type: !92, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !106) +// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "Cfn", linkageName: "_CCfn.C.Main.c27b765f2159c9a0", scope: null, file: !3, line: 18, type: !92, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !106) // CHECK:STDOUT: !106 = !{!107, !108} // CHECK:STDOUT: !107 = !DILocalVariable(arg: 1, scope: !105, type: !7) // CHECK:STDOUT: !108 = !DILocalVariable(arg: 2, scope: !105, type: !7) // CHECK:STDOUT: !109 = !DILocation(line: 19, column: 5, scope: !105) -// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "Cfn", linkageName: "_CCfn.C.Main.7c9378dab434d9d8", scope: null, file: !3, line: 18, type: !92, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !111) +// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "Cfn", linkageName: "_CCfn.C.Main.ee509b43cf4eb3c5", scope: null, file: !3, line: 18, type: !92, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !111) // CHECK:STDOUT: !111 = !{!112, !113} // CHECK:STDOUT: !112 = !DILocalVariable(arg: 1, scope: !110, type: !7) // CHECK:STDOUT: !113 = !DILocalVariable(arg: 2, scope: !110, type: !7) diff --git a/toolchain/lower/testdata/function/generic/cross_library_name_collision_private.carbon b/toolchain/lower/testdata/function/generic/cross_library_name_collision_private.carbon index d0ca280a9174..5d6196b428cf 100644 --- a/toolchain/lower/testdata/function/generic/cross_library_name_collision_private.carbon +++ b/toolchain/lower/testdata/function/generic/cross_library_name_collision_private.carbon @@ -77,30 +77,30 @@ fn Run() { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @main() #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Lib1CallF.call = call i32 @_CLib1CallF.Main.d5b7cd930e635b09(i32 1, i32 2), !dbg !8 -// CHECK:STDOUT: %Lib2CallF.call = call i32 @_CLib2CallF.Main.d5b7cd930e635b09(i32 1, i32 2), !dbg !9 +// CHECK:STDOUT: %Lib1CallF.call = call i32 @_CLib1CallF.Main.5bd8d5767580997a(i32 1, i32 2), !dbg !8 +// CHECK:STDOUT: %Lib2CallF.call = call i32 @_CLib2CallF.Main.5bd8d5767580997a(i32 1, i32 2), !dbg !9 // CHECK:STDOUT: ret i32 0, !dbg !10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CLib1CallF.Main.d5b7cd930e635b09(i32 %a, i32 %b) #0 !dbg !11 { -// CHECK:STDOUT: %1 = call i32 @_CF.Main.d5b7cd930e635b09(i32 %a, i32 %b), !dbg !18 +// CHECK:STDOUT: define linkonce_odr i32 @_CLib1CallF.Main.5bd8d5767580997a(i32 %a, i32 %b) #0 !dbg !11 { +// CHECK:STDOUT: %1 = call i32 @_CF.Main.5bd8d5767580997a(i32 %a, i32 %b), !dbg !18 // CHECK:STDOUT: ret i32 %1, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CLib2CallF.Main.d5b7cd930e635b09(i32 %a, i32 %b) #0 !dbg !20 { -// CHECK:STDOUT: %1 = call i32 @_CF.Main.d5b7cd930e635b09(i32 %a, i32 %b), !dbg !25 +// CHECK:STDOUT: define linkonce_odr i32 @_CLib2CallF.Main.5bd8d5767580997a(i32 %a, i32 %b) #0 !dbg !20 { +// CHECK:STDOUT: %1 = call i32 @_CF.Main.5bd8d5767580997a(i32 %a, i32 %b), !dbg !25 // CHECK:STDOUT: ret i32 %1, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.d5b7cd930e635b09(i32 %a, i32 %_) #0 !dbg !27 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.5bd8d5767580997a(i32 %a, i32 %_) #0 !dbg !27 { // CHECK:STDOUT: ret i32 %a, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @_CF.Main.d5b7cd930e635b09, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CF.Main.5bd8d5767580997a, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: @@ -118,7 +118,7 @@ fn Run() { // CHECK:STDOUT: !8 = !DILocation(line: 10, column: 16, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 11, column: 16, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 9, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Lib1CallF", linkageName: "_CLib1CallF.Main.d5b7cd930e635b09", scope: null, file: !12, line: 8, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Lib1CallF", linkageName: "_CLib1CallF.Main.5bd8d5767580997a", scope: null, file: !12, line: 8, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) // CHECK:STDOUT: !12 = !DIFile(filename: "lib1.carbon", directory: "") // CHECK:STDOUT: !13 = !DISubroutineType(types: !14) // CHECK:STDOUT: !14 = !{!7, !7, !7} @@ -127,14 +127,14 @@ fn Run() { // CHECK:STDOUT: !17 = !DILocalVariable(arg: 2, scope: !11, type: !7) // CHECK:STDOUT: !18 = !DILocation(line: 9, column: 10, scope: !11) // CHECK:STDOUT: !19 = !DILocation(line: 9, column: 3, scope: !11) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Lib2CallF", linkageName: "_CLib2CallF.Main.d5b7cd930e635b09", scope: null, file: !21, line: 11, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Lib2CallF", linkageName: "_CLib2CallF.Main.5bd8d5767580997a", scope: null, file: !21, line: 11, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) // CHECK:STDOUT: !21 = !DIFile(filename: "lib2.carbon", directory: "") // CHECK:STDOUT: !22 = !{!23, !24} // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !20, type: !7) // CHECK:STDOUT: !24 = !DILocalVariable(arg: 2, scope: !20, type: !7) // CHECK:STDOUT: !25 = !DILocation(line: 12, column: 10, scope: !20) // CHECK:STDOUT: !26 = !DILocation(line: 12, column: 3, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.d5b7cd930e635b09", scope: null, file: !12, line: 4, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.5bd8d5767580997a", scope: null, file: !12, line: 4, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) // CHECK:STDOUT: !28 = !{!29, !30} // CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !7) // CHECK:STDOUT: !30 = !DILocalVariable(arg: 2, scope: !27, type: !7) diff --git a/toolchain/lower/testdata/function/generic/import.carbon b/toolchain/lower/testdata/function/generic/import.carbon index 063163c92f30..50c882b8d7c6 100644 --- a/toolchain/lower/testdata/function/generic/import.carbon +++ b/toolchain/lower/testdata/function/generic/import.carbon @@ -115,16 +115,16 @@ fn Call() -> i32 { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !8 // CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %p.var), !dbg !9 -// CHECK:STDOUT: %DirectGeneric.call = call ptr @_CDirectGeneric.Main.5e5386123d4b6287(ptr %n.var), !dbg !10 +// CHECK:STDOUT: %DirectGeneric.call = call ptr @_CDirectGeneric.Main.84588f41d61dafba(ptr %n.var), !dbg !10 // CHECK:STDOUT: store ptr %DirectGeneric.call, ptr %p.var, align 8, !dbg !9 // CHECK:STDOUT: %.loc9_11 = load ptr, ptr %p.var, align 8, !dbg !11 // CHECK:STDOUT: %.loc9_10.2 = load i32, ptr %.loc9_11, align 4, !dbg !12 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !8 // CHECK:STDOUT: ret i32 %.loc9_10.2, !dbg !13 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !14 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } @@ -133,10 +133,10 @@ fn Call() -> i32 { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CDirectGeneric.Main.5e5386123d4b6287(ptr %y) #0 !dbg !20 { +// CHECK:STDOUT: define linkonce_odr ptr @_CDirectGeneric.Main.84588f41d61dafba(ptr %y) #0 !dbg !20 { // CHECK:STDOUT: call void @_CDirectDeclared.Main(), !dbg !27 // CHECK:STDOUT: call void @_CDirectDefined.Main(), !dbg !28 -// CHECK:STDOUT: %1 = call ptr @_CIndirectGeneric.Main.5e5386123d4b6287(ptr %y), !dbg !29 +// CHECK:STDOUT: %1 = call ptr @_CIndirectGeneric.Main.84588f41d61dafba(ptr %y), !dbg !29 // CHECK:STDOUT: ret ptr %1, !dbg !30 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -145,7 +145,7 @@ fn Call() -> i32 { // CHECK:STDOUT: declare void @_CDirectDefined.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CIndirectGeneric.Main.5e5386123d4b6287(ptr %x) #0 !dbg !31 { +// CHECK:STDOUT: define linkonce_odr ptr @_CIndirectGeneric.Main.84588f41d61dafba(ptr %x) #0 !dbg !31 { // CHECK:STDOUT: call void @_CIndirectDeclared.Main(), !dbg !35 // CHECK:STDOUT: call void @_CIndirectDefined.Main(), !dbg !36 // CHECK:STDOUT: ret ptr %x, !dbg !37 @@ -178,13 +178,13 @@ fn Call() -> i32 { // CHECK:STDOUT: !11 = !DILocation(line: 9, column: 11, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 9, column: 10, scope: !4) // CHECK:STDOUT: !13 = !DILocation(line: 9, column: 3, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 7, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 7, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) // CHECK:STDOUT: !15 = !DISubroutineType(types: !16) // CHECK:STDOUT: !16 = !{null, !7} // CHECK:STDOUT: !17 = !{!18} // CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !14, type: !7) // CHECK:STDOUT: !19 = !DILocation(line: 7, column: 3, scope: !14) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "DirectGeneric", linkageName: "_CDirectGeneric.Main.5e5386123d4b6287", scope: null, file: !21, line: 10, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "DirectGeneric", linkageName: "_CDirectGeneric.Main.84588f41d61dafba", scope: null, file: !21, line: 10, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) // CHECK:STDOUT: !21 = !DIFile(filename: "directly_imported.carbon", directory: "") // CHECK:STDOUT: !22 = !DISubroutineType(types: !23) // CHECK:STDOUT: !23 = !{!24, !24} @@ -195,7 +195,7 @@ fn Call() -> i32 { // CHECK:STDOUT: !28 = !DILocation(line: 12, column: 3, scope: !20) // CHECK:STDOUT: !29 = !DILocation(line: 13, column: 10, scope: !20) // CHECK:STDOUT: !30 = !DILocation(line: 13, column: 3, scope: !20) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "IndirectGeneric", linkageName: "_CIndirectGeneric.Main.5e5386123d4b6287", scope: null, file: !32, line: 8, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !33) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "IndirectGeneric", linkageName: "_CIndirectGeneric.Main.84588f41d61dafba", scope: null, file: !32, line: 8, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !33) // CHECK:STDOUT: !32 = !DIFile(filename: "indirectly_imported.carbon", directory: "") // CHECK:STDOUT: !33 = !{!34} // CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !31, type: !24) diff --git a/toolchain/lower/testdata/function/generic/import_core_witness.carbon b/toolchain/lower/testdata/function/generic/import_core_witness.carbon index 0ebbe282bb32..ac575e26226e 100644 --- a/toolchain/lower/testdata/function/generic/import_core_witness.carbon +++ b/toolchain/lower/testdata/function/generic/import_core_witness.carbon @@ -32,7 +32,7 @@ fn Run() { // CHECK:STDOUT: source_filename = "lib.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !10 // CHECK:STDOUT: } @@ -46,7 +46,7 @@ fn Run() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "lib.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{null, !7} // CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) @@ -59,20 +59,20 @@ fn Run() { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @main() #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.c583422fbd7ef3aa(), !dbg !8 +// CHECK:STDOUT: call void @_CF.Main.79e272ab3b2c3188(), !dbg !8 // CHECK:STDOUT: ret i32 0, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.c583422fbd7ef3aa() #0 !dbg !10 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.79e272ab3b2c3188() #0 !dbg !10 { // CHECK:STDOUT: %1 = alloca i32, align 4, !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !14 // CHECK:STDOUT: store i32 0, ptr %1, align 4, !dbg !14 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %1), !dbg !14 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %1), !dbg !14 // CHECK:STDOUT: ret void, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr) +// CHECK:STDOUT: declare void @"_COp.5e27612b9dd31a14: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 @@ -93,7 +93,7 @@ fn Run() { // CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !8 = !DILocation(line: 5, column: 3, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 4, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.c583422fbd7ef3aa", scope: null, file: !11, line: 4, type: !12, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.79e272ab3b2c3188", scope: null, file: !11, line: 4, type: !12, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !11 = !DIFile(filename: "lib.carbon", directory: "") // CHECK:STDOUT: !12 = !DISubroutineType(types: !13) // CHECK:STDOUT: !13 = !{null} diff --git a/toolchain/lower/testdata/function/generic/import_unused_def.carbon b/toolchain/lower/testdata/function/generic/import_unused_def.carbon index 8e9df9b41729..3de51ff73863 100644 --- a/toolchain/lower/testdata/function/generic/import_unused_def.carbon +++ b/toolchain/lower/testdata/function/generic/import_unused_def.carbon @@ -50,7 +50,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.52f59d9a55c34030:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.7a21de4d15dcb5df:core.Destroy.Core"(ptr %self) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } @@ -71,7 +71,7 @@ fn Main() { // CHECK:STDOUT: !8 = !{!9} // CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) // CHECK:STDOUT: !10 = !DILocation(line: 13, column: 5, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.52f59d9a55c34030:core.Destroy.Core", scope: null, file: !3, line: 18, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7a21de4d15dcb5df:core.Destroy.Core", scope: null, file: !3, line: 18, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !12 = !DISubroutineType(types: !13) // CHECK:STDOUT: !13 = !{null, !7} // CHECK:STDOUT: !14 = !{!15} @@ -95,13 +95,13 @@ fn Main() { // CHECK:STDOUT: store i32 %2, ptr %1, align 4, !dbg !17 // CHECK:STDOUT: %3 = load i32, ptr %1, align 4, !dbg !19 // CHECK:STDOUT: %4 = call i32 @"_COp.Foo.Main:Copy.Core"(i32 %3), !dbg !19 -// CHECK:STDOUT: call void @"_COp.52f59d9a55c34030:core.Destroy.Core"(ptr %1), !dbg !17 +// CHECK:STDOUT: call void @"_COp.7a21de4d15dcb5df:core.Destroy.Core"(ptr %1), !dbg !17 // CHECK:STDOUT: ret i32 %4, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @"_COp.Foo.Main:Copy.Core"(i32) // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.52f59d9a55c34030:core.Destroy.Core"(ptr) +// CHECK:STDOUT: declare void @"_COp.7a21de4d15dcb5df: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/local_function.carbon b/toolchain/lower/testdata/function/generic/local_function.carbon index 7c27030b817f..a33b1baca617 100644 --- a/toolchain/lower/testdata/function/generic/local_function.carbon +++ b/toolchain/lower/testdata/function/generic/local_function.carbon @@ -29,19 +29,19 @@ fn Run() -> i32 { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @main() #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.4bee6dcdea6ba756(i32 0), !dbg !8 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.5bd8d5767580997a(i32 0), !dbg !8 // CHECK:STDOUT: ret i32 %F.call, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.4bee6dcdea6ba756(i32 %y) #0 !dbg !10 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.5bd8d5767580997a(i32 %y) #0 !dbg !10 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call = call i32 @"_CG:enclosed.4bee6dcdea6ba756"(i32 %y), !dbg !15 +// CHECK:STDOUT: %G.call = call i32 @"_CG:enclosed.5bd8d5767580997a"(i32 %y), !dbg !15 // CHECK:STDOUT: ret i32 %G.call, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CG:enclosed.4bee6dcdea6ba756"(i32 %x) #0 !dbg !17 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CG:enclosed.5bd8d5767580997a"(i32 %x) #0 !dbg !17 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret i32 %x, !dbg !20 // CHECK:STDOUT: } @@ -61,14 +61,14 @@ fn Run() -> i32 { // CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !8 = !DILocation(line: 23, column: 10, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 23, column: 3, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.4bee6dcdea6ba756", scope: null, file: !3, line: 17, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !13) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.5bd8d5767580997a", scope: null, file: !3, line: 17, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !13) // CHECK:STDOUT: !11 = !DISubroutineType(types: !12) // CHECK:STDOUT: !12 = !{!7, !7} // CHECK:STDOUT: !13 = !{!14} // CHECK:STDOUT: !14 = !DILocalVariable(arg: 1, scope: !10, type: !7) // CHECK:STDOUT: !15 = !DILocation(line: 19, column: 10, scope: !10) // CHECK:STDOUT: !16 = !DILocation(line: 19, column: 3, scope: !10) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "G", linkageName: "_CG:enclosed.4bee6dcdea6ba756", scope: null, file: !3, line: 18, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "G", linkageName: "_CG:enclosed.5bd8d5767580997a", scope: null, file: !3, line: 18, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) // CHECK:STDOUT: !18 = !{!19} // CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7) // CHECK:STDOUT: !20 = !DILocation(line: 18, column: 21, scope: !17) diff --git a/toolchain/lower/testdata/function/generic/reverse_canonical.carbon b/toolchain/lower/testdata/function/generic/reverse_canonical.carbon index c642efa3de40..bb0d41c00a81 100644 --- a/toolchain/lower/testdata/function/generic/reverse_canonical.carbon +++ b/toolchain/lower/testdata/function/generic/reverse_canonical.carbon @@ -78,98 +78,98 @@ fn Main() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !22 // CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !22 // CHECK:STDOUT: %.loc23 = load ptr, ptr %local_name.var, align 8, !dbg !23 -// CHECK:STDOUT: call void @_Csecond.Main.74f823cd843d38ef(i1 %arg2, i1 %arg2, ptr %.loc23), !dbg !24 +// CHECK:STDOUT: call void @_Csecond.Main.0f29a29bf45af723(i1 %arg2, i1 %arg2, ptr %.loc23), !dbg !24 // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Csecond.Main.74f823cd843d38ef(i1 %arg1, i1 %arg2, ptr %arg3) #0 !dbg !26 { +// CHECK:STDOUT: define linkonce_odr void @_Csecond.Main.0f29a29bf45af723(i1 %arg1, i1 %arg2, ptr %arg3) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !31 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !31 // CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !31 -// CHECK:STDOUT: call void @_Cfirst.Main.a8c84376d8fe3cd2(ptr %arg3, ptr %arg3, i1 %arg1), !dbg !32 +// CHECK:STDOUT: call void @_Cfirst.Main.81f1c9de445b895c(ptr %arg3, ptr %arg3, i1 %arg1), !dbg !32 // CHECK:STDOUT: %.loc30 = load ptr, ptr %local_name.var, align 8, !dbg !33 -// CHECK:STDOUT: call void @_Cthird.Main.74f823cd843d38ef(i1 %arg2, i1 %arg2, ptr %.loc30), !dbg !34 +// CHECK:STDOUT: call void @_Cthird.Main.0f29a29bf45af723(i1 %arg2, i1 %arg2, ptr %.loc30), !dbg !34 // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cfirst.Main.a8c84376d8fe3cd2(ptr %arg1, ptr %arg2, i1 %arg3) #0 !dbg !36 { +// CHECK:STDOUT: define linkonce_odr void @_Cfirst.Main.81f1c9de445b895c(ptr %arg1, ptr %arg2, i1 %arg3) #0 !dbg !36 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !41 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !41 // CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !41 // CHECK:STDOUT: %.loc23 = load ptr, ptr %local_name.var, align 8, !dbg !42 -// CHECK:STDOUT: call void @_Csecond.Main.6485d988ba5bfa31(ptr %arg2, ptr %arg2, ptr %.loc23), !dbg !43 +// CHECK:STDOUT: call void @_Csecond.Main.e1ce67f3c23ab61f(ptr %arg2, ptr %arg2, ptr %.loc23), !dbg !43 // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cthird.Main.74f823cd843d38ef(i1 %arg1, i1 %arg2, ptr %arg3) #0 !dbg !45 { +// CHECK:STDOUT: define linkonce_odr void @_Cthird.Main.0f29a29bf45af723(i1 %arg1, i1 %arg2, ptr %arg3) #0 !dbg !45 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !50 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !50 // CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !50 // CHECK:STDOUT: %.loc36_10 = load ptr, ptr %local_name.var, align 8, !dbg !51 // CHECK:STDOUT: %.loc36_22 = load ptr, ptr %local_name.var, align 8, !dbg !52 -// CHECK:STDOUT: call void @_Cfourth.Main.c3fb0c35c5907496(ptr %.loc36_10, ptr %.loc36_22, i1 %arg1), !dbg !53 -// CHECK:STDOUT: call void @_Cfourth.Main.c3fb0c35c5907496(ptr %arg3, ptr %arg3, i1 %arg2), !dbg !54 +// CHECK:STDOUT: call void @_Cfourth.Main.c6787c0e2572c86c(ptr %.loc36_10, ptr %.loc36_22, i1 %arg1), !dbg !53 +// CHECK:STDOUT: call void @_Cfourth.Main.c6787c0e2572c86c(ptr %arg3, ptr %arg3, i1 %arg2), !dbg !54 // CHECK:STDOUT: ret void, !dbg !55 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Csecond.Main.6485d988ba5bfa31(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !56 { +// CHECK:STDOUT: define linkonce_odr void @_Csecond.Main.e1ce67f3c23ab61f(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !56 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !61 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !61 // CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !61 -// CHECK:STDOUT: call void @_Cfirst.Main.6485d988ba5bfa31(ptr %arg3, ptr %arg3, ptr %arg1), !dbg !62 +// CHECK:STDOUT: call void @_Cfirst.Main.e1ce67f3c23ab61f(ptr %arg3, ptr %arg3, ptr %arg1), !dbg !62 // CHECK:STDOUT: %.loc30 = load ptr, ptr %local_name.var, align 8, !dbg !63 -// CHECK:STDOUT: call void @_Cthird.Main.6485d988ba5bfa31(ptr %arg2, ptr %arg2, ptr %.loc30), !dbg !64 +// CHECK:STDOUT: call void @_Cthird.Main.e1ce67f3c23ab61f(ptr %arg2, ptr %arg2, ptr %.loc30), !dbg !64 // CHECK:STDOUT: ret void, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cfourth.Main.c3fb0c35c5907496(ptr %arg1, ptr %arg2, i1 %arg3) #0 !dbg !66 { +// CHECK:STDOUT: define linkonce_odr void @_Cfourth.Main.c6787c0e2572c86c(ptr %arg1, ptr %arg2, i1 %arg3) #0 !dbg !66 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cfirst.Main.6485d988ba5bfa31(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !72 { +// CHECK:STDOUT: define linkonce_odr void @_Cfirst.Main.e1ce67f3c23ab61f(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !72 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !77 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !77 // CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !77 // CHECK:STDOUT: %.loc23 = load ptr, ptr %local_name.var, align 8, !dbg !78 -// CHECK:STDOUT: call void @_Csecond.Main.6485d988ba5bfa31(ptr %arg2, ptr %arg2, ptr %.loc23), !dbg !79 +// CHECK:STDOUT: call void @_Csecond.Main.e1ce67f3c23ab61f(ptr %arg2, ptr %arg2, ptr %.loc23), !dbg !79 // CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cthird.Main.6485d988ba5bfa31(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !81 { +// CHECK:STDOUT: define linkonce_odr void @_Cthird.Main.e1ce67f3c23ab61f(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !81 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %local_name.var = alloca ptr, align 8, !dbg !86 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local_name.var), !dbg !86 // CHECK:STDOUT: store ptr poison, ptr %local_name.var, align 8, !dbg !86 // CHECK:STDOUT: %.loc36_10 = load ptr, ptr %local_name.var, align 8, !dbg !87 // CHECK:STDOUT: %.loc36_22 = load ptr, ptr %local_name.var, align 8, !dbg !88 -// CHECK:STDOUT: call void @_Cfourth.Main.995aa3b70e2c63a5(ptr %.loc36_10, ptr %.loc36_22, ptr %arg1), !dbg !89 -// CHECK:STDOUT: call void @_Cfourth.Main.995aa3b70e2c63a5(ptr %arg3, ptr %arg3, ptr %arg2), !dbg !90 +// CHECK:STDOUT: call void @_Cfourth.Main.901b24db5c2cfe42(ptr %.loc36_10, ptr %.loc36_22, ptr %arg1), !dbg !89 +// CHECK:STDOUT: call void @_Cfourth.Main.901b24db5c2cfe42(ptr %arg3, ptr %arg3, ptr %arg2), !dbg !90 // CHECK:STDOUT: ret void, !dbg !91 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cfourth.Main.995aa3b70e2c63a5(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !92 { +// CHECK:STDOUT: define linkonce_odr void @_Cfourth.Main.901b24db5c2cfe42(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !92 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !97 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 1, 2, 3, 4, 5, 6, 8, 7 } -// CHECK:STDOUT: uselistorder ptr @_Cfourth.Main.c3fb0c35c5907496, { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_Cfourth.Main.995aa3b70e2c63a5, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_Cfourth.Main.c6787c0e2572c86c, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_Cfourth.Main.901b24db5c2cfe42, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } @@ -203,7 +203,7 @@ fn Main() { // CHECK:STDOUT: !23 = !DILocation(line: 23, column: 22, scope: !14) // CHECK:STDOUT: !24 = !DILocation(line: 23, column: 3, scope: !14) // CHECK:STDOUT: !25 = !DILocation(line: 20, column: 1, scope: !14) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "second", linkageName: "_Csecond.Main.74f823cd843d38ef", scope: null, file: !3, line: 26, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "second", linkageName: "_Csecond.Main.0f29a29bf45af723", scope: null, file: !3, line: 26, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) // CHECK:STDOUT: !27 = !{!28, !29, !30} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !17) // CHECK:STDOUT: !29 = !DILocalVariable(arg: 2, scope: !26, type: !17) @@ -213,7 +213,7 @@ fn Main() { // CHECK:STDOUT: !33 = !DILocation(line: 30, column: 21, scope: !26) // CHECK:STDOUT: !34 = !DILocation(line: 30, column: 3, scope: !26) // CHECK:STDOUT: !35 = !DILocation(line: 26, column: 1, scope: !26) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "first", linkageName: "_Cfirst.Main.a8c84376d8fe3cd2", scope: null, file: !3, line: 20, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !37) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "first", linkageName: "_Cfirst.Main.81f1c9de445b895c", scope: null, file: !3, line: 20, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !37) // CHECK:STDOUT: !37 = !{!38, !39, !40} // CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !36, type: !17) // CHECK:STDOUT: !39 = !DILocalVariable(arg: 2, scope: !36, type: !17) @@ -222,7 +222,7 @@ fn Main() { // CHECK:STDOUT: !42 = !DILocation(line: 23, column: 22, scope: !36) // CHECK:STDOUT: !43 = !DILocation(line: 23, column: 3, scope: !36) // CHECK:STDOUT: !44 = !DILocation(line: 20, column: 1, scope: !36) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "third", linkageName: "_Cthird.Main.74f823cd843d38ef", scope: null, file: !3, line: 33, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "third", linkageName: "_Cthird.Main.0f29a29bf45af723", scope: null, file: !3, line: 33, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) // CHECK:STDOUT: !46 = !{!47, !48, !49} // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !17) // CHECK:STDOUT: !48 = !DILocalVariable(arg: 2, scope: !45, type: !17) @@ -233,7 +233,7 @@ fn Main() { // CHECK:STDOUT: !53 = !DILocation(line: 36, column: 3, scope: !45) // CHECK:STDOUT: !54 = !DILocation(line: 37, column: 3, scope: !45) // CHECK:STDOUT: !55 = !DILocation(line: 33, column: 1, scope: !45) -// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "second", linkageName: "_Csecond.Main.6485d988ba5bfa31", scope: null, file: !3, line: 26, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !57) +// CHECK:STDOUT: !56 = distinct !DISubprogram(name: "second", linkageName: "_Csecond.Main.e1ce67f3c23ab61f", scope: null, file: !3, line: 26, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !57) // CHECK:STDOUT: !57 = !{!58, !59, !60} // CHECK:STDOUT: !58 = !DILocalVariable(arg: 1, scope: !56, type: !17) // CHECK:STDOUT: !59 = !DILocalVariable(arg: 2, scope: !56, type: !17) @@ -243,13 +243,13 @@ fn Main() { // CHECK:STDOUT: !63 = !DILocation(line: 30, column: 21, scope: !56) // CHECK:STDOUT: !64 = !DILocation(line: 30, column: 3, scope: !56) // CHECK:STDOUT: !65 = !DILocation(line: 26, column: 1, scope: !56) -// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "fourth", linkageName: "_Cfourth.Main.c3fb0c35c5907496", scope: null, file: !3, line: 40, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !67) +// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "fourth", linkageName: "_Cfourth.Main.c6787c0e2572c86c", scope: null, file: !3, line: 40, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !67) // CHECK:STDOUT: !67 = !{!68, !69, !70} // CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !66, type: !17) // CHECK:STDOUT: !69 = !DILocalVariable(arg: 2, scope: !66, type: !17) // CHECK:STDOUT: !70 = !DILocalVariable(arg: 3, scope: !66, type: !17) // CHECK:STDOUT: !71 = !DILocation(line: 40, column: 1, scope: !66) -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "first", linkageName: "_Cfirst.Main.6485d988ba5bfa31", scope: null, file: !3, line: 20, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !73) +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "first", linkageName: "_Cfirst.Main.e1ce67f3c23ab61f", scope: null, file: !3, line: 20, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !73) // CHECK:STDOUT: !73 = !{!74, !75, !76} // CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !72, type: !17) // CHECK:STDOUT: !75 = !DILocalVariable(arg: 2, scope: !72, type: !17) @@ -258,7 +258,7 @@ fn Main() { // CHECK:STDOUT: !78 = !DILocation(line: 23, column: 22, scope: !72) // CHECK:STDOUT: !79 = !DILocation(line: 23, column: 3, scope: !72) // CHECK:STDOUT: !80 = !DILocation(line: 20, column: 1, scope: !72) -// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "third", linkageName: "_Cthird.Main.6485d988ba5bfa31", scope: null, file: !3, line: 33, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !82) +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "third", linkageName: "_Cthird.Main.e1ce67f3c23ab61f", scope: null, file: !3, line: 33, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !82) // CHECK:STDOUT: !82 = !{!83, !84, !85} // CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !81, type: !17) // CHECK:STDOUT: !84 = !DILocalVariable(arg: 2, scope: !81, type: !17) @@ -269,7 +269,7 @@ fn Main() { // CHECK:STDOUT: !89 = !DILocation(line: 36, column: 3, scope: !81) // CHECK:STDOUT: !90 = !DILocation(line: 37, column: 3, scope: !81) // CHECK:STDOUT: !91 = !DILocation(line: 33, column: 1, scope: !81) -// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "fourth", linkageName: "_Cfourth.Main.995aa3b70e2c63a5", scope: null, file: !3, line: 40, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !93) +// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "fourth", linkageName: "_Cfourth.Main.901b24db5c2cfe42", scope: null, file: !3, line: 40, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !93) // CHECK:STDOUT: !93 = !{!94, !95, !96} // CHECK:STDOUT: !94 = !DILocalVariable(arg: 1, scope: !92, type: !17) // CHECK:STDOUT: !95 = !DILocalVariable(arg: 2, scope: !92, type: !17) diff --git a/toolchain/lower/testdata/function/generic/self_canonical.carbon b/toolchain/lower/testdata/function/generic/self_canonical.carbon index f94dcaa32bd8..ec88fc5c7ff2 100644 --- a/toolchain/lower/testdata/function/generic/self_canonical.carbon +++ b/toolchain/lower/testdata/function/generic/self_canonical.carbon @@ -92,7 +92,7 @@ fn Main_method_no_template () { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local1.var), !dbg !7 // CHECK:STDOUT: store ptr poison, ptr %local1.var, align 8, !dbg !7 // CHECK:STDOUT: %.loc82 = load ptr, ptr %local1.var, align 8, !dbg !8 -// CHECK:STDOUT: call void @_Cfirst_function.Main.0a1f00779ce59bc9(ptr %.loc82), !dbg !9 +// CHECK:STDOUT: call void @_Cfirst_function.Main.ee57965601b4d646(ptr %.loc82), !dbg !9 // CHECK:STDOUT: ret void, !dbg !10 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -100,7 +100,7 @@ fn Main_method_no_template () { // 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 @_Cfourth_function.Main.b15a93ab6441ad84(ptr %arg) #0 !dbg !11 { +// CHECK:STDOUT: define linkonce_odr void @_Cfourth_function.Main.4da09b2222fc2513(ptr %arg) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %local1.var = alloca ptr, align 8, !dbg !17 // CHECK:STDOUT: %local2.var = alloca ptr, align 8, !dbg !18 @@ -109,14 +109,14 @@ fn Main_method_no_template () { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local2.var), !dbg !18 // CHECK:STDOUT: store ptr poison, ptr %local2.var, align 8, !dbg !18 // CHECK:STDOUT: %.loc53 = load ptr, ptr %local1.var, align 8, !dbg !19 -// CHECK:STDOUT: call void @_Cfirst_function.Main.0a1f00779ce59bc9(ptr %.loc53), !dbg !20 +// CHECK:STDOUT: call void @_Cfirst_function.Main.ee57965601b4d646(ptr %.loc53), !dbg !20 // CHECK:STDOUT: %.loc54 = load ptr, ptr %local2.var, align 8, !dbg !21 -// CHECK:STDOUT: call void @_Cfirst_function.Main.0a1f00779ce59bc9(ptr %.loc54), !dbg !22 +// CHECK:STDOUT: call void @_Cfirst_function.Main.ee57965601b4d646(ptr %.loc54), !dbg !22 // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cfirst_function.Main.0a1f00779ce59bc9(ptr %arg) #0 !dbg !24 { +// CHECK:STDOUT: define linkonce_odr void @_Cfirst_function.Main.ee57965601b4d646(ptr %arg) #0 !dbg !24 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %local1.var = alloca ptr, align 8, !dbg !27 // CHECK:STDOUT: %local2.var = alloca ptr, align 8, !dbg !28 @@ -126,12 +126,12 @@ fn Main_method_no_template () { // CHECK:STDOUT: store ptr poison, ptr %local2.var, align 8, !dbg !28 // CHECK:STDOUT: %.loc61_19 = load ptr, ptr %local2.var, align 8, !dbg !29 // CHECK:STDOUT: %.loc61_27 = load ptr, ptr %local1.var, align 8, !dbg !30 -// CHECK:STDOUT: call void @_Csecond_function.Main.b4fd373088afa7c7(ptr %.loc61_19, ptr %.loc61_27, ptr %arg), !dbg !31 +// CHECK:STDOUT: call void @_Csecond_function.Main.efd9fcdf727c9de5(ptr %.loc61_19, ptr %.loc61_27, ptr %arg), !dbg !31 // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Csecond_function.Main.b4fd373088afa7c7(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !33 { +// CHECK:STDOUT: define linkonce_odr void @_Csecond_function.Main.efd9fcdf727c9de5(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !33 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %local1.var = alloca ptr, align 8, !dbg !40 // CHECK:STDOUT: %local2.var = alloca ptr, align 8, !dbg !41 @@ -144,14 +144,14 @@ fn Main_method_no_template () { // CHECK:STDOUT: store ptr poison, ptr %local3.var, align 8, !dbg !42 // CHECK:STDOUT: %.loc75_25 = load ptr, ptr %local3.var, align 8, !dbg !43 // CHECK:STDOUT: %.loc75_33 = load ptr, ptr %local2.var, align 8, !dbg !44 -// CHECK:STDOUT: call void @_Csecond_function.Main.b4fd373088afa7c7(ptr %arg3, ptr %.loc75_25, ptr %.loc75_33), !dbg !45 +// CHECK:STDOUT: call void @_Csecond_function.Main.efd9fcdf727c9de5(ptr %arg3, ptr %.loc75_25, ptr %.loc75_33), !dbg !45 // CHECK:STDOUT: %.loc76 = load ptr, ptr %local1.var, align 8, !dbg !46 -// CHECK:STDOUT: call void @_Cthird_function.Main.028fd49e6bc54d2d(ptr %.loc76, ptr %arg3, ptr %arg1), !dbg !47 +// CHECK:STDOUT: call void @_Cthird_function.Main.1c39a3b349bf66b6(ptr %.loc76, ptr %arg3, ptr %arg1), !dbg !47 // CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_Cthird_function.Main.028fd49e6bc54d2d(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !49 { +// CHECK:STDOUT: define linkonce_odr void @_Cthird_function.Main.1c39a3b349bf66b6(ptr %arg1, ptr %arg2, ptr %arg3) #0 !dbg !49 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %local1.var = alloca ptr, align 8, !dbg !54 // CHECK:STDOUT: %local2.var = alloca ptr, align 8, !dbg !55 @@ -160,14 +160,14 @@ fn Main_method_no_template () { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local2.var), !dbg !55 // CHECK:STDOUT: store ptr poison, ptr %local2.var, align 8, !dbg !55 // CHECK:STDOUT: %.loc39 = load ptr, ptr %local2.var, align 8, !dbg !56 -// CHECK:STDOUT: call void @_Cthird_function.Main.028fd49e6bc54d2d(ptr %arg1, ptr %arg2, ptr %.loc39), !dbg !57 +// CHECK:STDOUT: call void @_Cthird_function.Main.1c39a3b349bf66b6(ptr %arg1, ptr %arg2, ptr %.loc39), !dbg !57 // CHECK:STDOUT: %.loc40 = load ptr, ptr %local1.var, align 8, !dbg !58 -// CHECK:STDOUT: call void @_Cfourth_function.Main.b15a93ab6441ad84(ptr %.loc40), !dbg !59 +// CHECK:STDOUT: call void @_Cfourth_function.Main.4da09b2222fc2513(ptr %.loc40), !dbg !59 // CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @_Cfirst_function.Main.0a1f00779ce59bc9, { 1, 2, 0 } +// CHECK:STDOUT: uselistorder ptr @_Cfirst_function.Main.ee57965601b4d646, { 1, 2, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } @@ -186,7 +186,7 @@ fn Main_method_no_template () { // CHECK:STDOUT: !8 = !DILocation(line: 82, column: 18, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 82, column: 3, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 79, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "fourth_function", linkageName: "_Cfourth_function.Main.b15a93ab6441ad84", scope: null, file: !3, line: 49, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "fourth_function", linkageName: "_Cfourth_function.Main.4da09b2222fc2513", scope: null, file: !3, line: 49, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) // CHECK:STDOUT: !12 = !DISubroutineType(types: !13) // CHECK:STDOUT: !13 = !{null, !14} // CHECK:STDOUT: !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -199,7 +199,7 @@ fn Main_method_no_template () { // CHECK:STDOUT: !21 = !DILocation(line: 54, column: 18, scope: !11) // CHECK:STDOUT: !22 = !DILocation(line: 54, column: 3, scope: !11) // CHECK:STDOUT: !23 = !DILocation(line: 49, column: 1, scope: !11) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "first_function", linkageName: "_Cfirst_function.Main.0a1f00779ce59bc9", scope: null, file: !3, line: 57, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "first_function", linkageName: "_Cfirst_function.Main.ee57965601b4d646", scope: null, file: !3, line: 57, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) // CHECK:STDOUT: !25 = !{!26} // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !24, type: !14) // CHECK:STDOUT: !27 = !DILocation(line: 58, column: 3, scope: !24) @@ -208,7 +208,7 @@ fn Main_method_no_template () { // CHECK:STDOUT: !30 = !DILocation(line: 61, column: 27, scope: !24) // CHECK:STDOUT: !31 = !DILocation(line: 61, column: 3, scope: !24) // CHECK:STDOUT: !32 = !DILocation(line: 57, column: 1, scope: !24) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "second_function", linkageName: "_Csecond_function.Main.b4fd373088afa7c7", scope: null, file: !3, line: 70, type: !34, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !36) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "second_function", linkageName: "_Csecond_function.Main.efd9fcdf727c9de5", scope: null, file: !3, line: 70, type: !34, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !36) // CHECK:STDOUT: !34 = !DISubroutineType(types: !35) // CHECK:STDOUT: !35 = !{null, !14, !14, !14} // CHECK:STDOUT: !36 = !{!37, !38, !39} @@ -224,7 +224,7 @@ fn Main_method_no_template () { // CHECK:STDOUT: !46 = !DILocation(line: 76, column: 18, scope: !33) // CHECK:STDOUT: !47 = !DILocation(line: 76, column: 3, scope: !33) // CHECK:STDOUT: !48 = !DILocation(line: 70, column: 1, scope: !33) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "third_function", linkageName: "_Cthird_function.Main.028fd49e6bc54d2d", scope: null, file: !3, line: 35, type: !34, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !50) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "third_function", linkageName: "_Cthird_function.Main.1c39a3b349bf66b6", scope: null, file: !3, line: 35, type: !34, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !50) // CHECK:STDOUT: !50 = !{!51, !52, !53} // CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !14) // CHECK:STDOUT: !52 = !DILocalVariable(arg: 2, scope: !49, type: !14) diff --git a/toolchain/lower/testdata/function/generic/type_representation.carbon b/toolchain/lower/testdata/function/generic/type_representation.carbon index df1070a1bf9d..16cd28f48f20 100644 --- a/toolchain/lower/testdata/function/generic/type_representation.carbon +++ b/toolchain/lower/testdata/function/generic/type_representation.carbon @@ -86,12 +86,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 !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.a50b3cb3efeec588(i32 %a), !dbg !14 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.349b91811add80c8(i32 %a), !dbg !14 // CHECK:STDOUT: ret i32 %F.call, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !16 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !16 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } @@ -113,18 +113,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 !32 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.2aaeb350085ea2e6(ptr %return, ptr %a), !dbg !35 +// CHECK:STDOUT: call void @_CF.Main.883765f2473e3a79(ptr %return, ptr %a), !dbg !35 // CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.15b8ed913d10fa21:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.f30036b66b652106:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // 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.e321a4645f519d34:core.Destroy.Core"(ptr %self) #0 !dbg !43 { +// CHECK:STDOUT: define weak_odr void @"_COp.429fc69ea0bf165d:core.Destroy.Core"(ptr %self) #0 !dbg !43 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } @@ -138,12 +138,12 @@ 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 !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.0267fe28ecc79212(), !dbg !52 +// CHECK:STDOUT: call void @_CF.Main.c3a325b0fb5d5a1b(), !dbg !52 // CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_COp.e5a1c84cf77c507a:Copy.Main"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !54 { +// CHECK:STDOUT: define void @"_COp.e554695bf635d9c1:Copy.Main"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !54 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %tuple.elem0.loc59_12.1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !57 // CHECK:STDOUT: %tuple.elem0.loc59_12.1.tuple.elem.load = load i32, ptr %tuple.elem0.loc59_12.1.tuple.elem, align 4, !dbg !57 @@ -159,23 +159,23 @@ 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 !59 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.35482d298885c6ca(ptr %return, ptr %a), !dbg !62 +// CHECK:STDOUT: call void @_CF.Main.57a2a7fa41a2abe5(ptr %return, ptr %a), !dbg !62 // CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.11d8dd9278293aa3:core.Destroy.Core"(ptr %self) #0 !dbg !64 { +// CHECK:STDOUT: define weak_odr void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %self) #0 !dbg !64 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !67 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_COp.a981a3a4fe4d0b63:Copy.Main"(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %self) #0 !dbg !68 { +// CHECK:STDOUT: define void @"_COp.ae1e3622d7875d32:Copy.Main"(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %self) #0 !dbg !68 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %tuple.elem0.loc69_17.tuple.elem = getelementptr inbounds nuw { ptr, ptr }, ptr %self, i32 0, i32 0, !dbg !71 // CHECK:STDOUT: %tuple.elem0.loc69_17.tuple.elem.load = load ptr, ptr %tuple.elem0.loc69_17.tuple.elem, align 8, !dbg !71 // CHECK:STDOUT: %tuple.elem0.loc69_51.tuple.elem = getelementptr inbounds nuw { { i32, i32 }, { i32, i32 } }, ptr %return, i32 0, i32 0, !dbg !72 -// CHECK:STDOUT: call void @"_COp.e5a1c84cf77c507a:Copy.Main"(ptr %tuple.elem0.loc69_51.tuple.elem, ptr %tuple.elem0.loc69_17.tuple.elem.load), !dbg !71 +// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:Copy.Main"(ptr %tuple.elem0.loc69_51.tuple.elem, ptr %tuple.elem0.loc69_17.tuple.elem.load), !dbg !71 // CHECK:STDOUT: %tuple.elem1.loc69_37.tuple.elem = getelementptr inbounds nuw { ptr, ptr }, ptr %self, i32 0, i32 1, !dbg !73 // CHECK:STDOUT: %tuple.elem1.loc69_37.tuple.elem.load = load ptr, ptr %tuple.elem1.loc69_37.tuple.elem, align 8, !dbg !73 // CHECK:STDOUT: %tuple.elem1.loc69_51.tuple.elem = getelementptr inbounds nuw { { i32, i32 }, { i32, i32 } }, ptr %return, i32 0, i32 1, !dbg !72 @@ -186,41 +186,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 !75 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.358bed78ec84cff6(ptr %return, ptr %a), !dbg !78 +// CHECK:STDOUT: call void @_CF.Main.7d44c5ea0170e82e(ptr %return, ptr %a), !dbg !78 // CHECK:STDOUT: ret void, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.26bb13cd27018de2:core.Destroy.Core"(ptr %self) #0 !dbg !80 { +// CHECK:STDOUT: define weak_odr void @"_COp.48dc0f9faa274ddd:core.Destroy.Core"(ptr %self) #0 !dbg !80 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.a50b3cb3efeec588(i32 %a) #0 !dbg !84 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.349b91811add80c8(i32 %a) #0 !dbg !84 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca i32, align 4, !dbg !87 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !87 // CHECK:STDOUT: %Copy.WithSelf.Op.call.loc18 = call i32 @"_COp.Int.be1e879c1ad406d8.Core:Copy.Main"(i32 %a), !dbg !88 // CHECK:STDOUT: store i32 %Copy.WithSelf.Op.call.loc18, ptr %_.var, align 4, !dbg !87 // CHECK:STDOUT: %Copy.WithSelf.Op.call.loc19 = call i32 @"_COp.Int.be1e879c1ad406d8.Core:Copy.Main"(i32 %a), !dbg !89 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %_.var), !dbg !87 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %_.var), !dbg !87 // CHECK:STDOUT: ret i32 %Copy.WithSelf.Op.call.loc19, !dbg !90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.2aaeb350085ea2e6(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !91 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.883765f2473e3a79(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !91 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca { i32, i32 }, align 4, !dbg !94 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !94 // CHECK:STDOUT: call void @"_COp.X.Main:Copy.Main"(ptr %_.var, ptr %a), !dbg !95 // CHECK:STDOUT: call void @"_COp.X.Main:Copy.Main"(ptr %return, ptr %a), !dbg !96 -// CHECK:STDOUT: call void @"_COp.e321a4645f519d34:core.Destroy.Core"(ptr %_.var), !dbg !94 +// CHECK:STDOUT: call void @"_COp.429fc69ea0bf165d:core.Destroy.Core"(ptr %_.var), !dbg !94 // CHECK:STDOUT: ret void, !dbg !97 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.0267fe28ecc79212() #0 !dbg !98 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.c3a325b0fb5d5a1b() #0 !dbg !98 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca {}, align 1, !dbg !99 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !99 @@ -230,24 +230,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.35482d298885c6ca(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !103 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.57a2a7fa41a2abe5(ptr sret({ i32, i32 }) %return, ptr %a) #0 !dbg !103 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca { i32, i32 }, align 4, !dbg !106 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !106 -// CHECK:STDOUT: call void @"_COp.e5a1c84cf77c507a:Copy.Main"(ptr %_.var, ptr %a), !dbg !107 -// CHECK:STDOUT: call void @"_COp.e5a1c84cf77c507a:Copy.Main"(ptr %return, ptr %a), !dbg !108 -// CHECK:STDOUT: call void @"_COp.11d8dd9278293aa3:core.Destroy.Core"(ptr %_.var), !dbg !106 +// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:Copy.Main"(ptr %_.var, ptr %a), !dbg !107 +// CHECK:STDOUT: call void @"_COp.e554695bf635d9c1:Copy.Main"(ptr %return, ptr %a), !dbg !108 +// CHECK:STDOUT: call void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %_.var), !dbg !106 // CHECK:STDOUT: ret void, !dbg !109 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.358bed78ec84cff6(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %a) #0 !dbg !110 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.7d44c5ea0170e82e(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %a) #0 !dbg !110 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca { { i32, i32 }, { i32, i32 } }, align 4, !dbg !113 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !113 -// CHECK:STDOUT: call void @"_COp.a981a3a4fe4d0b63:Copy.Main"(ptr %_.var, ptr %a), !dbg !114 -// CHECK:STDOUT: call void @"_COp.a981a3a4fe4d0b63:Copy.Main"(ptr %return, ptr %a), !dbg !115 -// CHECK:STDOUT: call void @"_COp.26bb13cd27018de2:core.Destroy.Core"(ptr %_.var), !dbg !113 +// CHECK:STDOUT: call void @"_COp.ae1e3622d7875d32:Copy.Main"(ptr %_.var, ptr %a), !dbg !114 +// CHECK:STDOUT: call void @"_COp.ae1e3622d7875d32:Copy.Main"(ptr %return, ptr %a), !dbg !115 +// CHECK:STDOUT: call void @"_COp.48dc0f9faa274ddd:core.Destroy.Core"(ptr %_.var), !dbg !113 // CHECK:STDOUT: ret void, !dbg !116 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -279,7 +279,7 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: !13 = !DILocalVariable(arg: 1, scope: !11, type: !7) // CHECK:STDOUT: !14 = !DILocation(line: 29, column: 10, scope: !11) // CHECK:STDOUT: !15 = !DILocation(line: 29, column: 3, scope: !11) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 29, type: !17, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 29, type: !17, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) // CHECK:STDOUT: !17 = !DISubroutineType(types: !18) // CHECK:STDOUT: !18 = !{null, !7} // CHECK:STDOUT: !19 = !{!20} @@ -300,13 +300,13 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !25) // CHECK:STDOUT: !35 = !DILocation(line: 44, column: 10, scope: !32) // CHECK:STDOUT: !36 = !DILocation(line: 44, column: 3, scope: !32) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.15b8ed913d10fa21:core.Destroy.Core", scope: null, file: !3, line: 44, type: !38, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !40) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f30036b66b652106:core.Destroy.Core", scope: null, file: !3, line: 44, type: !38, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !40) // CHECK:STDOUT: !38 = !DISubroutineType(types: !39) // CHECK:STDOUT: !39 = !{null, !25} // CHECK:STDOUT: !40 = !{!41} // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !37, type: !25) // CHECK:STDOUT: !42 = !DILocation(line: 44, column: 10, scope: !37) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e321a4645f519d34:core.Destroy.Core", scope: null, file: !3, line: 44, type: !38, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !44) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.429fc69ea0bf165d:core.Destroy.Core", scope: null, file: !3, line: 44, type: !38, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !44) // CHECK:STDOUT: !44 = !{!45} // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !25) // CHECK:STDOUT: !46 = !DILocation(line: 44, column: 10, scope: !43) @@ -317,7 +317,7 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: !51 = distinct !DISubprogram(name: "F_empty_tuple", linkageName: "_CF_empty_tuple.Main", scope: null, file: !3, line: 53, type: !48, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !52 = !DILocation(line: 54, column: 10, scope: !51) // CHECK:STDOUT: !53 = !DILocation(line: 54, column: 3, scope: !51) -// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e5a1c84cf77c507a:Copy.Main", scope: null, file: !3, line: 58, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !55) +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e554695bf635d9c1:Copy.Main", scope: null, file: !3, line: 58, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !55) // CHECK:STDOUT: !55 = !{!56} // CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !54, type: !25) // CHECK:STDOUT: !57 = !DILocation(line: 59, column: 12, scope: !54) @@ -327,11 +327,11 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !59, type: !25) // CHECK:STDOUT: !62 = !DILocation(line: 64, column: 10, scope: !59) // CHECK:STDOUT: !63 = !DILocation(line: 64, column: 3, scope: !59) -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Op", linkageName: "_COp.11d8dd9278293aa3:core.Destroy.Core", scope: null, file: !3, line: 64, type: !38, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !65) +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eff30dc40f4a53d2:core.Destroy.Core", scope: null, file: !3, line: 64, type: !38, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !65) // CHECK:STDOUT: !65 = !{!66} // CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !64, type: !25) // CHECK:STDOUT: !67 = !DILocation(line: 64, column: 10, scope: !64) -// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a981a3a4fe4d0b63:Copy.Main", scope: null, file: !3, line: 68, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !69) +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ae1e3622d7875d32:Copy.Main", scope: null, file: !3, line: 68, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !69) // CHECK:STDOUT: !69 = !{!70} // CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !68, type: !25) // CHECK:STDOUT: !71 = !DILocation(line: 69, column: 13, scope: !68) @@ -343,37 +343,37 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: !77 = !DILocalVariable(arg: 1, scope: !75, type: !25) // CHECK:STDOUT: !78 = !DILocation(line: 74, column: 10, scope: !75) // CHECK:STDOUT: !79 = !DILocation(line: 74, column: 3, scope: !75) -// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "Op", linkageName: "_COp.26bb13cd27018de2:core.Destroy.Core", scope: null, file: !3, line: 74, type: !38, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !81) +// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "Op", linkageName: "_COp.48dc0f9faa274ddd:core.Destroy.Core", scope: null, file: !3, line: 74, type: !38, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !81) // CHECK:STDOUT: !81 = !{!82} // CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !80, type: !25) // CHECK:STDOUT: !83 = !DILocation(line: 74, column: 10, scope: !80) -// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a50b3cb3efeec588", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !85) +// CHECK:STDOUT: !84 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.349b91811add80c8", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !85) // CHECK:STDOUT: !85 = !{!86} // CHECK:STDOUT: !86 = !DILocalVariable(arg: 1, scope: !84, type: !7) // CHECK:STDOUT: !87 = !DILocation(line: 18, column: 3, scope: !84) // CHECK:STDOUT: !88 = !DILocation(line: 18, column: 14, scope: !84) // CHECK:STDOUT: !89 = !DILocation(line: 19, column: 10, scope: !84) // CHECK:STDOUT: !90 = !DILocation(line: 19, column: 3, scope: !84) -// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2aaeb350085ea2e6", scope: null, file: !3, line: 17, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !92) +// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.883765f2473e3a79", scope: null, file: !3, line: 17, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !92) // CHECK:STDOUT: !92 = !{!93} // CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !91, type: !25) // CHECK:STDOUT: !94 = !DILocation(line: 18, column: 3, scope: !91) // CHECK:STDOUT: !95 = !DILocation(line: 18, column: 14, scope: !91) // CHECK:STDOUT: !96 = !DILocation(line: 19, column: 10, scope: !91) // CHECK:STDOUT: !97 = !DILocation(line: 19, column: 3, scope: !91) -// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.0267fe28ecc79212", scope: null, file: !3, line: 17, type: !48, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.c3a325b0fb5d5a1b", scope: null, file: !3, line: 17, type: !48, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !99 = !DILocation(line: 18, column: 3, scope: !98) // CHECK:STDOUT: !100 = !DILocation(line: 18, column: 14, scope: !98) // CHECK:STDOUT: !101 = !DILocation(line: 19, column: 10, scope: !98) // CHECK:STDOUT: !102 = !DILocation(line: 19, column: 3, scope: !98) -// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.35482d298885c6ca", scope: null, file: !3, line: 17, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !104) +// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.57a2a7fa41a2abe5", scope: null, file: !3, line: 17, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !104) // CHECK:STDOUT: !104 = !{!105} // CHECK:STDOUT: !105 = !DILocalVariable(arg: 1, scope: !103, type: !25) // CHECK:STDOUT: !106 = !DILocation(line: 18, column: 3, scope: !103) // CHECK:STDOUT: !107 = !DILocation(line: 18, column: 14, scope: !103) // CHECK:STDOUT: !108 = !DILocation(line: 19, column: 10, scope: !103) // CHECK:STDOUT: !109 = !DILocation(line: 19, column: 3, scope: !103) -// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.358bed78ec84cff6", scope: null, file: !3, line: 17, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !111) +// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.7d44c5ea0170e82e", scope: null, file: !3, line: 17, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !111) // CHECK:STDOUT: !111 = !{!112} // CHECK:STDOUT: !112 = !DILocalVariable(arg: 1, scope: !110, type: !25) // CHECK:STDOUT: !113 = !DILocation(line: 18, column: 3, scope: !110) diff --git a/toolchain/lower/testdata/impl/impl.carbon b/toolchain/lower/testdata/impl/impl.carbon index 3907fc42eb4f..cc34719222b8 100644 --- a/toolchain/lower/testdata/impl/impl.carbon +++ b/toolchain/lower/testdata/impl/impl.carbon @@ -131,14 +131,14 @@ impl C(B) as I { // CHECK:STDOUT: @B.val.loc17_42 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.C.Main:I.5e1c331498176a81.Main"(ptr sret({}) %return, ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CF.C.Main:I.bd4fb75a414fe858.Main"(ptr sret({}) %return, ptr %self) #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @A.val.loc13_42, i64 0, i1 false), !dbg !10 // CHECK:STDOUT: ret void, !dbg !10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.C.Main:I.a021841d47c697fb.Main"(ptr sret({}) %return, ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define void @"_CF.C.Main:I.a6a60dfee2d7d273.Main"(ptr sret({}) %return, ptr %self) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @B.val.loc17_42, i64 0, i1 false), !dbg !14 // CHECK:STDOUT: ret void, !dbg !14 @@ -150,22 +150,22 @@ impl C(B) as I { // CHECK:STDOUT: %a.var = alloca {}, align 1, !dbg !21 // CHECK:STDOUT: %b.var = alloca {}, align 1, !dbg !22 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !21 -// CHECK:STDOUT: call void @"_CF.C.Main:I.5e1c331498176a81.Main"(ptr %a.var, ptr %x), !dbg !23 +// CHECK:STDOUT: call void @"_CF.C.Main:I.bd4fb75a414fe858.Main"(ptr %a.var, ptr %x), !dbg !23 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !22 -// CHECK:STDOUT: call void @"_CF.C.Main:I.a021841d47c697fb.Main"(ptr %b.var, ptr %y), !dbg !24 -// CHECK:STDOUT: call void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %b.var), !dbg !22 -// CHECK:STDOUT: call void @"_COp.ac7d25d81711af23:core.Destroy.Core"(ptr %a.var), !dbg !21 +// CHECK:STDOUT: call void @"_CF.C.Main:I.a6a60dfee2d7d273.Main"(ptr %b.var, ptr %y), !dbg !24 +// CHECK:STDOUT: call void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %b.var), !dbg !22 +// CHECK:STDOUT: call void @"_COp.68011419f123494e:core.Destroy.Core"(ptr %a.var), !dbg !21 // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ac7d25d81711af23:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.68011419f123494e:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } @@ -190,14 +190,14 @@ impl C(B) as I { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "generic_impls.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:I.5e1c331498176a81.Main", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:I.bd4fb75a414fe858.Main", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{!7, !7} // CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !8 = !{!9} // CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) // CHECK:STDOUT: !10 = !DILocation(line: 13, column: 33, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:I.a021841d47c697fb.Main", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !12) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:I.a6a60dfee2d7d273.Main", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !12) // CHECK:STDOUT: !12 = !{!13} // CHECK:STDOUT: !13 = !DILocalVariable(arg: 1, scope: !11, type: !7) // CHECK:STDOUT: !14 = !DILocation(line: 17, column: 33, scope: !11) @@ -212,13 +212,13 @@ impl C(B) as I { // CHECK:STDOUT: !23 = !DILocation(line: 21, column: 21, scope: !15) // CHECK:STDOUT: !24 = !DILocation(line: 22, column: 21, scope: !15) // CHECK:STDOUT: !25 = !DILocation(line: 20, column: 1, scope: !15) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.07f54489d6d26b29:core.Destroy.Core", scope: null, file: !3, line: 22, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6c3865e9cbd9f6de:core.Destroy.Core", scope: null, file: !3, line: 22, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) // CHECK:STDOUT: !27 = !DISubroutineType(types: !28) // CHECK:STDOUT: !28 = !{null, !7} // CHECK:STDOUT: !29 = !{!30} // CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !26, type: !7) // CHECK:STDOUT: !31 = !DILocation(line: 22, column: 3, scope: !26) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ac7d25d81711af23:core.Destroy.Core", scope: null, file: !3, line: 21, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !33) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.68011419f123494e:core.Destroy.Core", scope: null, file: !3, line: 21, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !33) // CHECK:STDOUT: !33 = !{!34} // CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !7) // CHECK:STDOUT: !35 = !DILocation(line: 21, column: 3, scope: !32) @@ -226,13 +226,13 @@ impl C(B) as I { // CHECK:STDOUT: source_filename = "generic_class_impls.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.C.5e1c331498176a81.Main:I.Main"() #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CF.C.bd4fb75a414fe858.Main:I.Main"() #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.C.a021841d47c697fb.Main:I.Main"() #0 !dbg !8 { +// CHECK:STDOUT: define void @"_CF.C.a6a60dfee2d7d273.Main:I.Main"() #0 !dbg !8 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } @@ -246,9 +246,9 @@ impl C(B) as I { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "generic_class_impls.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.5e1c331498176a81.Main:I.Main", scope: null, file: !3, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.bd4fb75a414fe858.Main:I.Main", scope: null, file: !3, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{null} // CHECK:STDOUT: !7 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.a021841d47c697fb.Main:I.Main", scope: null, file: !3, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.a6a60dfee2d7d273.Main:I.Main", scope: null, file: !3, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !9 = !DILocation(line: 18, column: 3, scope: !8) diff --git a/toolchain/lower/testdata/impl/import_facet.carbon b/toolchain/lower/testdata/impl/import_facet.carbon index 52e21eee68cc..14acdd10bcf6 100644 --- a/toolchain/lower/testdata/impl/import_facet.carbon +++ b/toolchain/lower/testdata/impl/import_facet.carbon @@ -85,21 +85,21 @@ fn F(d: D(i32)) -> i32* { // CHECK:STDOUT: ; ModuleID = 'd.carbon' // CHECK:STDOUT: source_filename = "d.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @C.val.aa7.anon = internal constant {} zeroinitializer +// CHECK:STDOUT: @C.val.506.anon = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define ptr @_CF.Main(ptr %d) #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc5_21.1.temp = alloca {}, align 1, !dbg !10 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc5_21.1.temp), !dbg !10 -// CHECK:STDOUT: call void @"_CGetI.D.eb057aa32837c84e.Main:I.Main.5e5386123d4b6287"(ptr %.loc5_21.1.temp, ptr %d), !dbg !10 -// CHECK:STDOUT: %C.GetC.call = call ptr @_CGetC.C.Main.8eadad4626f26136(ptr %.loc5_21.1.temp), !dbg !10 -// CHECK:STDOUT: call void @"_COp.5c8b738fa9da18b0:core.Destroy.Core"(ptr %.loc5_21.1.temp), !dbg !10 +// CHECK:STDOUT: call void @"_CGetI.D.eb057aa32837c84e.Main:I.Main.84588f41d61dafba"(ptr %.loc5_21.1.temp, ptr %d), !dbg !10 +// CHECK:STDOUT: %C.GetC.call = call ptr @_CGetC.C.Main.4d89da762a733471(ptr %.loc5_21.1.temp), !dbg !10 +// CHECK:STDOUT: call void @"_COp.589d3e688fca3583:core.Destroy.Core"(ptr %.loc5_21.1.temp), !dbg !10 // CHECK:STDOUT: ret ptr %C.GetC.call, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5c8b738fa9da18b0:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.589d3e688fca3583:core.Destroy.Core"(ptr %self) #0 !dbg !12 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } @@ -108,13 +108,13 @@ fn F(d: D(i32)) -> i32* { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CGetI.D.eb057aa32837c84e.Main:I.Main.5e5386123d4b6287"(ptr sret({}) %return, ptr %self) #0 !dbg !18 { -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @C.val.aa7.anon, i64 0, i1 false), !dbg !22 +// CHECK:STDOUT: define linkonce_odr void @"_CGetI.D.eb057aa32837c84e.Main:I.Main.84588f41d61dafba"(ptr sret({}) %return, ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @C.val.506.anon, i64 0, i1 false), !dbg !22 // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CGetC.C.Main.8eadad4626f26136(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define linkonce_odr ptr @_CGetC.C.Main.4d89da762a733471(ptr %self) #0 !dbg !23 { // CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !27 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !27 // CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !27 @@ -143,18 +143,18 @@ fn F(d: D(i32)) -> i32* { // CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) // CHECK:STDOUT: !10 = !DILocation(line: 5, column: 10, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 5, column: 3, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5c8b738fa9da18b0:core.Destroy.Core", scope: null, file: !3, line: 5, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.589d3e688fca3583:core.Destroy.Core", scope: null, file: !3, line: 5, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) // CHECK:STDOUT: !13 = !DISubroutineType(types: !14) // CHECK:STDOUT: !14 = !{null, !7} // CHECK:STDOUT: !15 = !{!16} // CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !12, type: !7) // CHECK:STDOUT: !17 = !DILocation(line: 5, column: 10, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "GetI", linkageName: "_CGetI.D.eb057aa32837c84e.Main:I.Main.5e5386123d4b6287", scope: null, file: !19, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "GetI", linkageName: "_CGetI.D.eb057aa32837c84e.Main:I.Main.84588f41d61dafba", scope: null, file: !19, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) // CHECK:STDOUT: !19 = !DIFile(filename: "c.carbon", directory: "") // CHECK:STDOUT: !20 = !{!21} // CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !18, type: !7) // CHECK:STDOUT: !22 = !DILocation(line: 7, column: 7, scope: !18) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "GetC", linkageName: "_CGetC.C.Main.8eadad4626f26136", scope: null, file: !24, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "GetC", linkageName: "_CGetC.C.Main.4d89da762a733471", scope: null, file: !24, line: 4, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) // CHECK:STDOUT: !24 = !DIFile(filename: "a.carbon", directory: "") // CHECK:STDOUT: !25 = !{!26} // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !23, type: !7) diff --git a/toolchain/lower/testdata/impl/import_thunk.carbon b/toolchain/lower/testdata/impl/import_thunk.carbon index 59fd55fd626a..df76ddff46b4 100644 --- a/toolchain/lower/testdata/impl/import_thunk.carbon +++ b/toolchain/lower/testdata/impl/import_thunk.carbon @@ -70,7 +70,7 @@ fn Test(a: A) -> C { // CHECK:STDOUT: source_filename = "thunk.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CConvert.A.Main:ImplicitAs.a021841d47c697fb.Core"(ptr sret({ i32 }) %return, ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr sret({ i32 }) %return, ptr %self) #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc9_49.1.a = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !10 // CHECK:STDOUT: %.loc9_49.2 = load i32, ptr %.loc9_49.1.a, align 4, !dbg !10 @@ -80,7 +80,7 @@ fn Test(a: A) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CConvert.B.Main:ImplicitAs.e3776368f2983b35.Core"(ptr sret({ i32 }) %return, ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr sret({ i32 }) %return, ptr %self) #0 !dbg !13 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc12_49.1.b = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !16 // CHECK:STDOUT: %.loc12_49.2 = load i32, ptr %.loc12_49.1.b, align 4, !dbg !16 @@ -100,34 +100,34 @@ fn Test(a: A) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_CF:thunk:I.0e6274c454a3de1f.Main:61ea2aba74ab3bf1:I.Main"(ptr sret({ i32 }) %return, ptr %a) #1 !dbg !25 { +// CHECK:STDOUT: define void @"_CF:thunk:I.4b54445be9b10a0e.Main:61ea2aba74ab3bf1:I.Main"(ptr sret({ i32 }) %return, ptr %a) #1 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc20_19.1.temp = alloca { i32 }, align 4, !dbg !28 // CHECK:STDOUT: %.loc16_9.1.temp = alloca { i32 }, align 4, !dbg !29 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_19.1.temp), !dbg !28 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc16_9.1.temp), !dbg !29 -// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a021841d47c697fb.Core"(ptr %.loc16_9.1.temp, ptr %a), !dbg !29 +// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.loc16_9.1.temp, ptr %a), !dbg !29 // CHECK:STDOUT: call void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr %.loc20_19.1.temp, ptr %.loc16_9.1.temp), !dbg !28 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.e3776368f2983b35.Core"(ptr %return, ptr %.loc20_19.1.temp), !dbg !28 -// CHECK:STDOUT: call void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %.loc20_19.1.temp), !dbg !28 -// CHECK:STDOUT: call void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %.loc16_9.1.temp), !dbg !29 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc20_19.1.temp), !dbg !28 +// CHECK:STDOUT: call void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %.loc20_19.1.temp), !dbg !28 +// CHECK:STDOUT: call void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %.loc16_9.1.temp), !dbg !29 // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !30 { // 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.c47d7252ef93446b:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.464513ac92508f77:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // 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.07f54489d6d26b29:core.Destroy.Core"(ptr %self) #0 !dbg !43 { +// CHECK:STDOUT: define weak_odr void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %self) #0 !dbg !43 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } @@ -136,7 +136,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.07f54489d6d26b29:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.6c3865e9cbd9f6de:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -150,7 +150,7 @@ fn Test(a: A) -> C { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "thunk.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.A.Main:ImplicitAs.a021841d47c697fb.Core", scope: null, file: !3, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core", scope: null, file: !3, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{!7, !7} // CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -159,7 +159,7 @@ fn Test(a: A) -> C { // CHECK:STDOUT: !10 = !DILocation(line: 9, column: 45, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 9, column: 39, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 9, column: 32, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.B.Main:ImplicitAs.e3776368f2983b35.Core", scope: null, file: !3, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core", scope: null, file: !3, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !14 = !{!15} // CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !13, type: !7) // CHECK:STDOUT: !16 = !DILocation(line: 12, column: 45, scope: !13) @@ -171,25 +171,25 @@ fn Test(a: A) -> C { // CHECK:STDOUT: !22 = !DILocation(line: 20, column: 34, scope: !19) // CHECK:STDOUT: !23 = !DILocation(line: 20, column: 28, scope: !19) // CHECK:STDOUT: !24 = !DILocation(line: 20, column: 21, scope: !19) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:I.0e6274c454a3de1f.Main:61ea2aba74ab3bf1:I.Main", scope: null, file: !3, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:I.4b54445be9b10a0e.Main:61ea2aba74ab3bf1:I.Main", scope: null, file: !3, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !7) // CHECK:STDOUT: !28 = !DILocation(line: 20, column: 3, scope: !25) // CHECK:STDOUT: !29 = !DILocation(line: 16, column: 8, scope: !25) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) // CHECK:STDOUT: !31 = !DISubroutineType(types: !32) // CHECK:STDOUT: !32 = !{null, !33} // CHECK:STDOUT: !33 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !34 = !{!35} // CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !30, type: !33) // CHECK:STDOUT: !36 = !DILocation(line: 20, column: 3, scope: !30) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c47d7252ef93446b:core.Destroy.Core", scope: null, file: !3, line: 20, type: !38, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !40) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.464513ac92508f77:core.Destroy.Core", scope: null, file: !3, line: 20, type: !38, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !40) // CHECK:STDOUT: !38 = !DISubroutineType(types: !39) // CHECK:STDOUT: !39 = !{null, !7} // CHECK:STDOUT: !40 = !{!41} // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !37, type: !7) // CHECK:STDOUT: !42 = !DILocation(line: 20, column: 3, scope: !37) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.07f54489d6d26b29:core.Destroy.Core", scope: null, file: !3, line: 20, type: !38, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !44) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6c3865e9cbd9f6de:core.Destroy.Core", scope: null, file: !3, line: 20, type: !38, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !44) // CHECK:STDOUT: !44 = !{!45} // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !7) // CHECK:STDOUT: !46 = !DILocation(line: 20, column: 3, scope: !43) @@ -205,36 +205,36 @@ fn Test(a: A) -> C { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_20.1.temp), !dbg !10 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_20.2.temp), !dbg !10 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_19.1.temp), !dbg !11 -// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a021841d47c697fb.Core"(ptr %.loc7_19.1.temp, ptr %a), !dbg !11 +// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.loc7_19.1.temp, ptr %a), !dbg !11 // CHECK:STDOUT: call void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr %.loc7_20.2.temp, ptr %.loc7_19.1.temp), !dbg !10 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.e3776368f2983b35.Core"(ptr %return, ptr %.loc7_20.2.temp), !dbg !12 -// CHECK:STDOUT: call void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %.loc7_20.2.temp), !dbg !10 -// CHECK:STDOUT: call void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %.loc7_19.1.temp), !dbg !11 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc7_20.2.temp), !dbg !12 +// CHECK:STDOUT: call void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %.loc7_20.2.temp), !dbg !10 +// CHECK:STDOUT: call void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %.loc7_19.1.temp), !dbg !11 // CHECK:STDOUT: ret void, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_CF:thunk:I.f86f181d01066bd8.Main:61ea2aba74ab3bf1:I.Main"(ptr sret({ i32 }), ptr) +// CHECK:STDOUT: declare void @"_CF:thunk:I.81762ab15bc0c2ed.Main:61ea2aba74ab3bf1:I.Main"(ptr sret({ i32 }), ptr) // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr sret({ i32 }), ptr) // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_CConvert.A.Main:ImplicitAs.a021841d47c697fb.Core"(ptr sret({ i32 }), ptr) +// CHECK:STDOUT: declare void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr sret({ i32 }), ptr) // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_CConvert.B.Main:ImplicitAs.e3776368f2983b35.Core"(ptr sret({ i32 }), ptr) +// 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.859f345957a7d0c5:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !13 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.be9d1837fc51df72:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.464513ac92508f77:core.Destroy.Core"(ptr %self) #0 !dbg !20 { // 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.07f54489d6d26b29:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } @@ -243,7 +243,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.07f54489d6d26b29:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.6c3865e9cbd9f6de:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -265,20 +265,20 @@ fn Test(a: A) -> C { // CHECK:STDOUT: !10 = !DILocation(line: 7, column: 10, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 7, column: 19, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 7, column: 3, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.859f345957a7d0c5:core.Destroy.Core", scope: null, file: !3, line: 7, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 7, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) // CHECK:STDOUT: !14 = !DISubroutineType(types: !15) // CHECK:STDOUT: !15 = !{null, !16} // CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !17 = !{!18} // CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !13, type: !16) // CHECK:STDOUT: !19 = !DILocation(line: 7, column: 10, scope: !13) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.be9d1837fc51df72:core.Destroy.Core", scope: null, file: !3, line: 7, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.464513ac92508f77:core.Destroy.Core", scope: null, file: !3, line: 7, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !21 = !DISubroutineType(types: !22) // CHECK:STDOUT: !22 = !{null, !7} // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !20, type: !7) // CHECK:STDOUT: !25 = !DILocation(line: 7, column: 10, scope: !20) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.07f54489d6d26b29:core.Destroy.Core", scope: null, file: !3, line: 7, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6c3865e9cbd9f6de:core.Destroy.Core", scope: null, file: !3, line: 7, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) // CHECK:STDOUT: !27 = !{!28} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !7) // CHECK:STDOUT: !29 = !DILocation(line: 7, column: 10, scope: !26) @@ -296,38 +296,38 @@ fn Test(a: A) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_CF:thunk:I.6a57547e3d5e7e4b.Main:X.Main:I.Main"(ptr sret({ i32 }) %return, ptr %a) #1 !dbg !13 { +// CHECK:STDOUT: define void @"_CF:thunk:I.c81631f865470482.Main:X.Main:I.Main"(ptr sret({ i32 }) %return, ptr %a) #1 !dbg !13 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc9_19.1.temp = alloca { i32 }, align 4, !dbg !16 // CHECK:STDOUT: %.2.temp = alloca { i32 }, align 4 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_19.1.temp), !dbg !16 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.2.temp) -// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a021841d47c697fb.Core"(ptr %.2.temp, ptr %a), !dbg !17 +// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.2.temp, ptr %a), !dbg !17 // CHECK:STDOUT: call void @"_CF.X.Main:I.Main"(ptr %.loc9_19.1.temp, ptr %.2.temp), !dbg !16 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.e3776368f2983b35.Core"(ptr %return, ptr %.loc9_19.1.temp), !dbg !16 -// CHECK:STDOUT: call void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %.loc9_19.1.temp), !dbg !16 -// CHECK:STDOUT: call void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %.2.temp), !dbg !17 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc9_19.1.temp), !dbg !16 +// CHECK:STDOUT: call void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %.loc9_19.1.temp), !dbg !16 +// CHECK:STDOUT: call void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %.2.temp), !dbg !17 // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_CConvert.A.Main:ImplicitAs.a021841d47c697fb.Core"(ptr sret({ i32 }), ptr) +// CHECK:STDOUT: declare void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr sret({ i32 }), ptr) // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_CConvert.B.Main:ImplicitAs.e3776368f2983b35.Core"(ptr sret({ i32 }), ptr) +// 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.859f345957a7d0c5:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // 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.be9d1837fc51df72:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.464513ac92508f77:core.Destroy.Core"(ptr %self) #0 !dbg !25 { // 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.07f54489d6d26b29:core.Destroy.Core"(ptr %self) #0 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %self) #0 !dbg !31 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } @@ -336,7 +336,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.07f54489d6d26b29:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.6c3865e9cbd9f6de:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -359,25 +359,25 @@ fn Test(a: A) -> C { // CHECK:STDOUT: !10 = !DILocation(line: 9, column: 34, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 9, column: 28, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 9, column: 21, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:I.6a57547e3d5e7e4b.Main:X.Main:I.Main", scope: null, file: !3, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:I.c81631f865470482.Main:X.Main:I.Main", scope: null, file: !3, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !14 = !{!15} // CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !13, type: !7) // CHECK:STDOUT: !16 = !DILocation(line: 9, column: 3, scope: !13) // CHECK:STDOUT: !17 = !DILocation(line: 4294967295, scope: !13) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.859f345957a7d0c5:core.Destroy.Core", scope: null, file: !3, line: 9, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 9, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) // CHECK:STDOUT: !19 = !DISubroutineType(types: !20) // CHECK:STDOUT: !20 = !{null, !21} // CHECK:STDOUT: !21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !22 = !{!23} // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) // CHECK:STDOUT: !24 = !DILocation(line: 9, column: 3, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.be9d1837fc51df72:core.Destroy.Core", scope: null, file: !3, line: 9, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.464513ac92508f77:core.Destroy.Core", scope: null, file: !3, line: 9, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) // CHECK:STDOUT: !26 = !DISubroutineType(types: !27) // CHECK:STDOUT: !27 = !{null, !7} // CHECK:STDOUT: !28 = !{!29} // CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !25, type: !7) // CHECK:STDOUT: !30 = !DILocation(line: 9, column: 3, scope: !25) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.07f54489d6d26b29:core.Destroy.Core", scope: null, file: !3, line: 9, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !32) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6c3865e9cbd9f6de:core.Destroy.Core", scope: null, file: !3, line: 9, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !32) // CHECK:STDOUT: !32 = !{!33} // CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !31, type: !7) // CHECK:STDOUT: !34 = !DILocation(line: 9, column: 3, scope: !31) @@ -393,36 +393,36 @@ fn Test(a: A) -> C { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_19.1.temp), !dbg !10 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_19.2.temp), !dbg !10 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_18.1.temp), !dbg !11 -// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a021841d47c697fb.Core"(ptr %.loc8_18.1.temp, ptr %a), !dbg !11 +// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.loc8_18.1.temp, ptr %a), !dbg !11 // CHECK:STDOUT: call void @"_CF.X.Main:I.Main"(ptr %.loc8_19.2.temp, ptr %.loc8_18.1.temp), !dbg !10 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.e3776368f2983b35.Core"(ptr %return, ptr %.loc8_19.2.temp), !dbg !12 -// CHECK:STDOUT: call void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %.loc8_19.2.temp), !dbg !10 -// CHECK:STDOUT: call void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %.loc8_18.1.temp), !dbg !11 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc8_19.2.temp), !dbg !12 +// CHECK:STDOUT: call void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %.loc8_19.2.temp), !dbg !10 +// CHECK:STDOUT: call void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %.loc8_18.1.temp), !dbg !11 // CHECK:STDOUT: ret void, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_CF:thunk:I.5465bb7475bd9b22.Main:X.Main:I.Main"(ptr sret({ i32 }), ptr) +// CHECK:STDOUT: declare void @"_CF:thunk:I.7538afb22b3edcf0.Main:X.Main:I.Main"(ptr sret({ i32 }), ptr) // CHECK:STDOUT: // CHECK:STDOUT: declare void @"_CF.X.Main:I.Main"(ptr sret({ i32 }), ptr) // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_CConvert.A.Main:ImplicitAs.a021841d47c697fb.Core"(ptr sret({ i32 }), ptr) +// CHECK:STDOUT: declare void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr sret({ i32 }), ptr) // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_CConvert.B.Main:ImplicitAs.e3776368f2983b35.Core"(ptr sret({ i32 }), ptr) +// 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.859f345957a7d0c5:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !13 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.be9d1837fc51df72:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.464513ac92508f77:core.Destroy.Core"(ptr %self) #0 !dbg !20 { // 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.07f54489d6d26b29:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } @@ -431,7 +431,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.07f54489d6d26b29:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.6c3865e9cbd9f6de:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -453,20 +453,20 @@ fn Test(a: A) -> C { // CHECK:STDOUT: !10 = !DILocation(line: 8, column: 10, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 8, column: 18, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 8, column: 3, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.859f345957a7d0c5:core.Destroy.Core", scope: null, file: !3, line: 8, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 8, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) // CHECK:STDOUT: !14 = !DISubroutineType(types: !15) // CHECK:STDOUT: !15 = !{null, !16} // CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !17 = !{!18} // CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !13, type: !16) // CHECK:STDOUT: !19 = !DILocation(line: 8, column: 10, scope: !13) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.be9d1837fc51df72:core.Destroy.Core", scope: null, file: !3, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.464513ac92508f77:core.Destroy.Core", scope: null, file: !3, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !21 = !DISubroutineType(types: !22) // CHECK:STDOUT: !22 = !{null, !7} // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !20, type: !7) // CHECK:STDOUT: !25 = !DILocation(line: 8, column: 10, scope: !20) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.07f54489d6d26b29:core.Destroy.Core", scope: null, file: !3, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6c3865e9cbd9f6de:core.Destroy.Core", scope: null, file: !3, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) // CHECK:STDOUT: !27 = !{!28} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !7) // CHECK:STDOUT: !29 = !DILocation(line: 8, column: 10, scope: !26) diff --git a/toolchain/lower/testdata/impl/period_self.carbon b/toolchain/lower/testdata/impl/period_self.carbon index 56b59ba69924..0ab5016ef989 100644 --- a/toolchain/lower/testdata/impl/period_self.carbon +++ b/toolchain/lower/testdata/impl/period_self.carbon @@ -57,19 +57,19 @@ fn G(a: A(B)) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CG.Main(ptr %a) #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.a021841d47c697fb(ptr %a), !dbg !10 +// CHECK:STDOUT: call void @_CF.Main.a6a60dfee2d7d273(ptr %a), !dbg !10 // CHECK:STDOUT: ret void, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.a021841d47c697fb(ptr %x) #0 !dbg !12 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.A.5d7343568c0b5715.Main:As.00d5ad878904f3d1.Core.a4f2cad14c3ff374"(ptr %x), !dbg !16 +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.a6a60dfee2d7d273(ptr %x) #0 !dbg !12 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.A.5d7343568c0b5715.Main:As.00d5ad878904f3d1.Core.8c89b09ee520ceaa"(ptr %x), !dbg !16 // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.A.5d7343568c0b5715.Main:As.00d5ad878904f3d1.Core.a4f2cad14c3ff374"(ptr %self) #0 !dbg !18 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.A.5d7343568c0b5715.Main:As.00d5ad878904f3d1.Core.a4f2cad14c3ff374"(ptr %self), !dbg !23 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.A.5d7343568c0b5715.Main:As.00d5ad878904f3d1.Core.8c89b09ee520ceaa"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.A.5d7343568c0b5715.Main:As.00d5ad878904f3d1.Core.8c89b09ee520ceaa"(ptr %self), !dbg !23 // CHECK:STDOUT: ret ptr %1, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -90,13 +90,13 @@ fn G(a: A(B)) { // CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) // CHECK:STDOUT: !10 = !DILocation(line: 7, column: 3, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 6, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a021841d47c697fb", scope: null, file: !13, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.a6a60dfee2d7d273", scope: null, file: !13, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !13 = !DIFile(filename: "library_with_period_self_in_impl.carbon", directory: "") // CHECK:STDOUT: !14 = !{!15} // CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !12, type: !7) // CHECK:STDOUT: !16 = !DILocation(line: 18, column: 3, scope: !12) // CHECK:STDOUT: !17 = !DILocation(line: 17, column: 1, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.A.5d7343568c0b5715.Main:As.00d5ad878904f3d1.Core.a4f2cad14c3ff374", scope: null, file: !13, line: 12, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !21) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.A.5d7343568c0b5715.Main:As.00d5ad878904f3d1.Core.8c89b09ee520ceaa", scope: null, file: !13, line: 12, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !21) // CHECK:STDOUT: !19 = !DISubroutineType(types: !20) // CHECK:STDOUT: !20 = !{!7, !7} // CHECK:STDOUT: !21 = !{!22} diff --git a/toolchain/lower/testdata/impl/thunk.carbon b/toolchain/lower/testdata/impl/thunk.carbon index ad2878d73b97..7910509c6865 100644 --- a/toolchain/lower/testdata/impl/thunk.carbon +++ b/toolchain/lower/testdata/impl/thunk.carbon @@ -74,7 +74,7 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: source_filename = "thunk.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CConvert.A.Main:ImplicitAs.a021841d47c697fb.Core"(ptr sret({ i32 }) %return, ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr sret({ i32 }) %return, ptr %self) #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc9_49.1.a = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !10 // CHECK:STDOUT: %.loc9_49.2 = load i32, ptr %.loc9_49.1.a, align 4, !dbg !10 @@ -84,7 +84,7 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CConvert.B.Main:ImplicitAs.e3776368f2983b35.Core"(ptr sret({ i32 }) %return, ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr sret({ i32 }) %return, ptr %self) #0 !dbg !13 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc12_49.1.b = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !16 // CHECK:STDOUT: %.loc12_49.2 = load i32, ptr %.loc12_49.1.b, align 4, !dbg !16 @@ -104,34 +104,34 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_CF:thunk:I.0e6274c454a3de1f.Main:61ea2aba74ab3bf1:I.Main"(ptr sret({ i32 }) %return, ptr %a) #1 !dbg !25 { +// CHECK:STDOUT: define void @"_CF:thunk:I.4b54445be9b10a0e.Main:61ea2aba74ab3bf1:I.Main"(ptr sret({ i32 }) %return, ptr %a) #1 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc20_19.1.temp = alloca { i32 }, align 4, !dbg !28 // CHECK:STDOUT: %.loc16_9.1.temp = alloca { i32 }, align 4, !dbg !29 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_19.1.temp), !dbg !28 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc16_9.1.temp), !dbg !29 -// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a021841d47c697fb.Core"(ptr %.loc16_9.1.temp, ptr %a), !dbg !29 +// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.loc16_9.1.temp, ptr %a), !dbg !29 // CHECK:STDOUT: call void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr %.loc20_19.1.temp, ptr %.loc16_9.1.temp), !dbg !28 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.e3776368f2983b35.Core"(ptr %return, ptr %.loc20_19.1.temp), !dbg !28 -// CHECK:STDOUT: call void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %.loc20_19.1.temp), !dbg !28 -// CHECK:STDOUT: call void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %.loc16_9.1.temp), !dbg !29 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc20_19.1.temp), !dbg !28 +// CHECK:STDOUT: call void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %.loc20_19.1.temp), !dbg !28 +// CHECK:STDOUT: call void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %.loc16_9.1.temp), !dbg !29 // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !30 { // 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.c47d7252ef93446b:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.464513ac92508f77:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // 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.07f54489d6d26b29:core.Destroy.Core"(ptr %self) #0 !dbg !43 { +// CHECK:STDOUT: define weak_odr void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %self) #0 !dbg !43 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } @@ -145,11 +145,11 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc24_20.1.temp), !dbg !50 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc24_20.2.temp), !dbg !50 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc24_19.1.temp), !dbg !51 -// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a021841d47c697fb.Core"(ptr %.loc24_19.1.temp, ptr %a), !dbg !51 +// CHECK:STDOUT: call void @"_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core"(ptr %.loc24_19.1.temp, ptr %a), !dbg !51 // CHECK:STDOUT: call void @"_CF.61ea2aba74ab3bf1:I.Main"(ptr %.loc24_20.2.temp, ptr %.loc24_19.1.temp), !dbg !50 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.e3776368f2983b35.Core"(ptr %return, ptr %.loc24_20.2.temp), !dbg !52 -// CHECK:STDOUT: call void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %.loc24_20.2.temp), !dbg !50 -// CHECK:STDOUT: call void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %.loc24_19.1.temp), !dbg !51 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core"(ptr %return, ptr %.loc24_20.2.temp), !dbg !52 +// CHECK:STDOUT: call void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %.loc24_20.2.temp), !dbg !50 +// CHECK:STDOUT: call void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %.loc24_19.1.temp), !dbg !51 // CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -157,7 +157,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.07f54489d6d26b29:core.Destroy.Core", { 0, 1, 3, 2 } +// CHECK:STDOUT: uselistorder ptr @"_COp.6c3865e9cbd9f6de: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 } @@ -171,7 +171,7 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "thunk.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.A.Main:ImplicitAs.a021841d47c697fb.Core", scope: null, file: !3, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.A.Main:ImplicitAs.a6a60dfee2d7d273.Core", scope: null, file: !3, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{!7, !7} // CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -180,7 +180,7 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: !10 = !DILocation(line: 9, column: 45, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 9, column: 39, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 9, column: 32, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.B.Main:ImplicitAs.e3776368f2983b35.Core", scope: null, file: !3, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.B.Main:ImplicitAs.9522ff908e97e267.Core", scope: null, file: !3, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !14 = !{!15} // CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !13, type: !7) // CHECK:STDOUT: !16 = !DILocation(line: 12, column: 45, scope: !13) @@ -192,25 +192,25 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: !22 = !DILocation(line: 20, column: 34, scope: !19) // CHECK:STDOUT: !23 = !DILocation(line: 20, column: 28, scope: !19) // CHECK:STDOUT: !24 = !DILocation(line: 20, column: 21, scope: !19) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:I.0e6274c454a3de1f.Main:61ea2aba74ab3bf1:I.Main", scope: null, file: !3, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:I.4b54445be9b10a0e.Main:61ea2aba74ab3bf1:I.Main", scope: null, file: !3, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !7) // CHECK:STDOUT: !28 = !DILocation(line: 20, column: 3, scope: !25) // CHECK:STDOUT: !29 = !DILocation(line: 16, column: 8, scope: !25) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) // CHECK:STDOUT: !31 = !DISubroutineType(types: !32) // CHECK:STDOUT: !32 = !{null, !33} // CHECK:STDOUT: !33 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !34 = !{!35} // CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !30, type: !33) // CHECK:STDOUT: !36 = !DILocation(line: 20, column: 3, scope: !30) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c47d7252ef93446b:core.Destroy.Core", scope: null, file: !3, line: 20, type: !38, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !40) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.464513ac92508f77:core.Destroy.Core", scope: null, file: !3, line: 20, type: !38, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !40) // CHECK:STDOUT: !38 = !DISubroutineType(types: !39) // CHECK:STDOUT: !39 = !{null, !7} // CHECK:STDOUT: !40 = !{!41} // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !37, type: !7) // CHECK:STDOUT: !42 = !DILocation(line: 20, column: 3, scope: !37) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.07f54489d6d26b29:core.Destroy.Core", scope: null, file: !3, line: 20, type: !38, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !44) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6c3865e9cbd9f6de:core.Destroy.Core", scope: null, file: !3, line: 20, type: !38, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !44) // CHECK:STDOUT: !44 = !{!45} // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !7) // CHECK:STDOUT: !46 = !DILocation(line: 20, column: 3, scope: !43) @@ -227,20 +227,20 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: @B.val.loc18_49 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CConvert.B.Main:ImplicitAs.5e1c331498176a81.Core"(ptr sret({}) %return, ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr sret({}) %return, ptr %self) #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @A.val.loc7_53, i64 0, i1 false), !dbg !10 // CHECK:STDOUT: ret void, !dbg !10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %self) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ac7d25d81711af23:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.68011419f123494e:core.Destroy.Core"(ptr %self) #0 !dbg !17 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !20 // CHECK:STDOUT: } @@ -254,18 +254,18 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_23.1.temp), !dbg !27 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_23.3.temp), !dbg !27 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_22.1.temp), !dbg !28 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.5e1c331498176a81.Core"(ptr %.loc22_22.1.temp, ptr %b), !dbg !28 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %.loc22_22.1.temp, ptr %b), !dbg !28 // 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 !27 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.5e1c331498176a81.Core"(ptr %return, ptr %.loc22_23.3.temp), !dbg !29 -// CHECK:STDOUT: call void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %.loc22_23.3.temp), !dbg !27 -// CHECK:STDOUT: call void @"_COp.ac7d25d81711af23:core.Destroy.Core"(ptr %.loc22_22.1.temp), !dbg !28 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %return, ptr %.loc22_23.3.temp), !dbg !29 +// CHECK:STDOUT: call void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %.loc22_23.3.temp), !dbg !27 +// CHECK:STDOUT: call void @"_COp.68011419f123494e:core.Destroy.Core"(ptr %.loc22_22.1.temp), !dbg !28 // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CCallCallGeneric.Main(ptr sret({}) %return, ptr %c, ptr %b) #0 !dbg !30 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CCallGeneric.Main.9165f5c135fb7a91(ptr %return, ptr %c, ptr %b), !dbg !34 +// CHECK:STDOUT: call void @_CCallGeneric.Main.311465f47f92d67a(ptr %return, ptr %c, ptr %b), !dbg !34 // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -283,24 +283,24 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCallGeneric.Main.9165f5c135fb7a91(ptr sret({}) %return, ptr %c, ptr %b) #0 !dbg !41 { +// CHECK:STDOUT: define linkonce_odr void @_CCallGeneric.Main.311465f47f92d67a(ptr sret({}) %return, ptr %c, ptr %b) #0 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CF:thunk:I.6292b465f58b1b5c.Main:C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr %return, ptr %c, ptr %b), !dbg !45 +// CHECK:STDOUT: call void @"_CF:thunk:I.eb750e4e5cfbbe32.Main:C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr %return, ptr %c, ptr %b), !dbg !45 // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CF:thunk:I.6292b465f58b1b5c.Main:C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr sret({}) %return, ptr %self, ptr %x) #2 !dbg !47 { +// CHECK:STDOUT: define linkonce_odr void @"_CF:thunk:I.eb750e4e5cfbbe32.Main:C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr sret({}) %return, ptr %self, ptr %x) #2 !dbg !47 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc18_38.2.temp = alloca {}, align 1, !dbg !51 // CHECK:STDOUT: %.loc12_21.1.temp = alloca {}, align 1, !dbg !52 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc18_38.2.temp), !dbg !51 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_21.1.temp), !dbg !52 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.5e1c331498176a81.Core"(ptr %.loc12_21.1.temp, ptr %x), !dbg !52 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %.loc12_21.1.temp, ptr %x), !dbg !52 // CHECK:STDOUT: call void @"_CF.C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f"(ptr %.loc18_38.2.temp, ptr %self, ptr %.loc12_21.1.temp), !dbg !51 -// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.5e1c331498176a81.Core"(ptr %return, ptr %.loc18_38.2.temp), !dbg !51 -// CHECK:STDOUT: call void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %.loc18_38.2.temp), !dbg !51 -// CHECK:STDOUT: call void @"_COp.ac7d25d81711af23:core.Destroy.Core"(ptr %.loc12_21.1.temp), !dbg !52 +// CHECK:STDOUT: call void @"_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core"(ptr %return, ptr %.loc18_38.2.temp), !dbg !51 +// CHECK:STDOUT: call void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %.loc18_38.2.temp), !dbg !51 +// CHECK:STDOUT: call void @"_COp.68011419f123494e:core.Destroy.Core"(ptr %.loc12_21.1.temp), !dbg !52 // CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -318,20 +318,20 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "generic_thunk.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.B.Main:ImplicitAs.5e1c331498176a81.Core", scope: null, file: !3, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.B.Main:ImplicitAs.bd4fb75a414fe858.Core", scope: null, file: !3, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{!7, !7} // CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !8 = !{!9} // CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) // CHECK:STDOUT: !10 = !DILocation(line: 7, column: 44, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.07f54489d6d26b29:core.Destroy.Core", scope: null, file: !3, line: 18, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6c3865e9cbd9f6de:core.Destroy.Core", scope: null, file: !3, line: 18, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !12 = !DISubroutineType(types: !13) // CHECK:STDOUT: !13 = !{null, !7} // CHECK:STDOUT: !14 = !{!15} // CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !11, type: !7) // CHECK:STDOUT: !16 = !DILocation(line: 18, column: 3, scope: !11) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ac7d25d81711af23:core.Destroy.Core", scope: null, file: !3, line: 12, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.68011419f123494e:core.Destroy.Core", scope: null, file: !3, line: 12, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) // CHECK:STDOUT: !18 = !{!19} // CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7) // CHECK:STDOUT: !20 = !DILocation(line: 12, column: 20, scope: !17) @@ -355,13 +355,13 @@ fn CallCallGeneric(c: C(()), b: B) -> A { // CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !36, type: !7) // CHECK:STDOUT: !39 = !DILocalVariable(arg: 2, scope: !36, type: !7) // CHECK:STDOUT: !40 = !DILocation(line: 18, column: 40, scope: !36) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "CallGeneric", linkageName: "_CCallGeneric.Main.9165f5c135fb7a91", scope: null, file: !3, line: 25, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "CallGeneric", linkageName: "_CCallGeneric.Main.311465f47f92d67a", scope: null, file: !3, line: 25, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) // CHECK:STDOUT: !42 = !{!43, !44} // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !7) // CHECK:STDOUT: !44 = !DILocalVariable(arg: 2, scope: !41, type: !7) // CHECK:STDOUT: !45 = !DILocation(line: 26, column: 10, scope: !41) // CHECK:STDOUT: !46 = !DILocation(line: 26, column: 3, scope: !41) -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:I.6292b465f58b1b5c.Main:C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f", scope: null, file: !3, line: 18, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !48) +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "F", linkageName: "_CF:thunk:I.eb750e4e5cfbbe32.Main:C.eb057aa32837c84e.Main:I.eb057aa32837c84e.Main.e43630e9a6c38c3f", scope: null, file: !3, line: 18, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !48) // CHECK:STDOUT: !48 = !{!49, !50} // CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !47, type: !7) // CHECK:STDOUT: !50 = !DILocalVariable(arg: 2, scope: !47, type: !7) diff --git a/toolchain/lower/testdata/index/array_element_access.carbon b/toolchain/lower/testdata/index/array_element_access.carbon index abe5727f46f5..8667bf964726 100644 --- a/toolchain/lower/testdata/index/array_element_access.carbon +++ b/toolchain/lower/testdata/index/array_element_access.carbon @@ -23,7 +23,7 @@ fn Run() { // CHECK:STDOUT: ; ModuleID = 'array_element_access.carbon' // CHECK:STDOUT: source_filename = "array_element_access.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @tuple.cd5.loc12_37 = internal constant { i32, i32 } { i32 1, i32 2 } +// CHECK:STDOUT: @tuple.102.loc12_37 = internal constant { i32, i32 } { i32 1, i32 2 } // CHECK:STDOUT: @array.loc14_40 = internal constant [2 x i32] [i32 1, i32 2] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind @@ -31,7 +31,7 @@ fn Run() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !8 // CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @tuple.cd5.loc12_37, i64 8, i1 false), !dbg !9 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @tuple.102.loc12_37, i64 8, i1 false), !dbg !9 // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -77,29 +77,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 !22 // CHECK:STDOUT: %.loc20_21.2 = load i32, ptr %.loc20_21.1.array.index, align 4, !dbg !22 // CHECK:STDOUT: store i32 %.loc20_21.2, ptr %_.var.loc20, align 4, !dbg !21 -// CHECK:STDOUT: call void @"_COp.f58d330ca5a9dabc:core.Destroy.Core"(ptr %.loc20_18.1.temp), !dbg !22 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %_.var.loc20), !dbg !21 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %_.var.loc19), !dbg !20 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %b.var), !dbg !19 -// CHECK:STDOUT: call void @"_COp.11d8dd9278293aa3:core.Destroy.Core"(ptr %.loc17_28.1.temp), !dbg !18 -// CHECK:STDOUT: call void @"_COp.f58d330ca5a9dabc:core.Destroy.Core"(ptr %a.var), !dbg !17 +// CHECK:STDOUT: call void @"_COp.a830cda2fcf179ac:core.Destroy.Core"(ptr %.loc20_18.1.temp), !dbg !22 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %_.var.loc20), !dbg !21 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %_.var.loc19), !dbg !20 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %b.var), !dbg !19 +// CHECK:STDOUT: call void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %.loc17_28.1.temp), !dbg !18 +// CHECK:STDOUT: call void @"_COp.a830cda2fcf179ac:core.Destroy.Core"(ptr %a.var), !dbg !17 // CHECK:STDOUT: ret i32 0, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.f58d330ca5a9dabc:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.a830cda2fcf179ac:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // 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.11d8dd9278293aa3:core.Destroy.Core"(ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } @@ -111,8 +111,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.1fa36cd3e044ac37:core.Destroy.Core", { 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.f58d330ca5a9dabc:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.5e27612b9dd31a14:core.Destroy.Core", { 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.a830cda2fcf179ac: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: @@ -148,19 +148,19 @@ fn Run() { // CHECK:STDOUT: !23 = !DILocation(line: 19, column: 18, scope: !13) // CHECK:STDOUT: !24 = !DILocation(line: 19, column: 16, scope: !13) // CHECK:STDOUT: !25 = !DILocation(line: 16, column: 1, scope: !13) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 20, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) // CHECK:STDOUT: !27 = !DISubroutineType(types: !28) // CHECK:STDOUT: !28 = !{null, !16} // CHECK:STDOUT: !29 = !{!30} // CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !26, type: !16) // CHECK:STDOUT: !31 = !DILocation(line: 20, column: 16, scope: !26) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f58d330ca5a9dabc:core.Destroy.Core", scope: null, file: !3, line: 20, type: !33, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !35) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a830cda2fcf179ac:core.Destroy.Core", scope: null, file: !3, line: 20, type: !33, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !35) // CHECK:STDOUT: !33 = !DISubroutineType(types: !34) // CHECK:STDOUT: !34 = !{null, !7} // CHECK:STDOUT: !35 = !{!36} // CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !32, type: !7) // CHECK:STDOUT: !37 = !DILocation(line: 20, column: 16, scope: !32) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.11d8dd9278293aa3:core.Destroy.Core", scope: null, file: !3, line: 17, type: !33, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !39) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eff30dc40f4a53d2:core.Destroy.Core", scope: null, file: !3, line: 17, type: !33, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !39) // CHECK:STDOUT: !39 = !{!40} // CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !38, type: !7) // CHECK:STDOUT: !41 = !DILocation(line: 17, column: 26, scope: !38) diff --git a/toolchain/lower/testdata/interface/where.carbon b/toolchain/lower/testdata/interface/where.carbon index c8deeadecee2..304a9f59b3fd 100644 --- a/toolchain/lower/testdata/interface/where.carbon +++ b/toolchain/lower/testdata/interface/where.carbon @@ -83,7 +83,7 @@ fn G() { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF.Main(ptr %a) #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CF.C.Main:I.5d7343568c0b5715.Main.a557ebdd5991dda9"(ptr %a), !dbg !10 +// CHECK:STDOUT: call void @"_CF.C.Main:I.5d7343568c0b5715.Main.776dc56337046b6c"(ptr %a), !dbg !10 // CHECK:STDOUT: ret void, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -94,7 +94,7 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CF.C.Main:I.5d7343568c0b5715.Main.a557ebdd5991dda9"(ptr %self) #0 !dbg !16 { +// CHECK:STDOUT: define linkonce_odr void @"_CF.C.Main:I.5d7343568c0b5715.Main.776dc56337046b6c"(ptr %self) #0 !dbg !16 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } @@ -120,7 +120,7 @@ fn G() { // CHECK:STDOUT: !13 = !DISubroutineType(types: !14) // CHECK:STDOUT: !14 = !{null} // CHECK:STDOUT: !15 = !DILocation(line: 23, column: 1, scope: !12) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:I.5d7343568c0b5715.Main.a557ebdd5991dda9", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main:I.5d7343568c0b5715.Main.776dc56337046b6c", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) // CHECK:STDOUT: !17 = !{!18} // CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !16, type: !7) // CHECK:STDOUT: !19 = !DILocation(line: 16, column: 3, scope: !16) diff --git a/toolchain/lower/testdata/interop/cpp/class/import/alignment.carbon b/toolchain/lower/testdata/interop/cpp/class/import/alignment.carbon index 39d412fd0a01..030b11321455 100644 --- a/toolchain/lower/testdata/interop/cpp/class/import/alignment.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/import/alignment.carbon @@ -66,7 +66,7 @@ fn Packed(n: i32) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %a.var = alloca [4 x i8], align 4, !dbg !17 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !17 -// CHECK:STDOUT: call void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.8290f4fee0d0690a"(ptr %a.var), !dbg !17 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.d4cda66b3640b619"(ptr %a.var), !dbg !17 // CHECK:STDOUT: %.loc25.n = getelementptr inbounds nuw [4 x i8], ptr %a.var, i32 0, i32 0, !dbg !18 // CHECK:STDOUT: store i32 %n, ptr %.loc25.n, align 4, !dbg !18 // CHECK:STDOUT: call void @_Z4TakeI16NaturallyAlignedEvRT_(ptr %a.var), !dbg !19 @@ -83,7 +83,7 @@ fn Packed(n: i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Default.cd11e5926d8f9d3b.Core:NaturallyAligned.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !24 { +// CHECK:STDOUT: define void @"_COp:thunk:Default.c846b89dd79c7366.Core:NaturallyAligned.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !24 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN16NaturallyAlignedC1Ev.carbon_thunk.(ptr %return), !dbg !28 // CHECK:STDOUT: ret void, !dbg !28 @@ -96,7 +96,7 @@ fn Packed(n: i32) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %a.var = alloca [16 x i8], align 16, !dbg !32 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !32 -// CHECK:STDOUT: call void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.47191496f2f0576c"(ptr %a.var), !dbg !32 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.34933c1c343bd645"(ptr %a.var), !dbg !32 // CHECK:STDOUT: %.loc33.n = getelementptr inbounds nuw [16 x i8], ptr %a.var, i32 0, i32 0, !dbg !33 // CHECK:STDOUT: store i32 %n, ptr %.loc33.n, align 4, !dbg !33 // CHECK:STDOUT: call void @_Z4TakeI14ExtraAlignmentEvRT_(ptr %a.var), !dbg !34 @@ -113,7 +113,7 @@ fn Packed(n: i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Default.3d0f8075cbddb98d.Core:ExtraAlignment.Cpp"(ptr sret([16 x i8]) %return) #2 !dbg !38 { +// CHECK:STDOUT: define void @"_COp:thunk:Default.52e7708693d29223.Core:ExtraAlignment.Cpp"(ptr sret([16 x i8]) %return) #2 !dbg !38 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN14ExtraAlignmentC1Ev.carbon_thunk.(ptr %return), !dbg !39 // CHECK:STDOUT: ret void, !dbg !39 @@ -126,7 +126,7 @@ fn Packed(n: i32) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %a.var = alloca [4 x i8], align 1, !dbg !43 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !43 -// CHECK:STDOUT: call void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.06c36f3376c8e786"(ptr %a.var), !dbg !43 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.3e10857902c69c1a"(ptr %a.var), !dbg !43 // CHECK:STDOUT: %.loc42.n = getelementptr inbounds nuw [4 x i8], ptr %a.var, i32 0, i32 0, !dbg !44 // CHECK:STDOUT: store i32 %n, ptr %.loc42.n, align 4, !dbg !44 // CHECK:STDOUT: call void @_Z4TakeI6PackedEvRT_(ptr %a.var), !dbg !45 @@ -143,7 +143,7 @@ fn Packed(n: i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Default.590916adff69158b.Core:Packed.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !49 { +// CHECK:STDOUT: define void @"_COp:thunk:Default.ca2b917a39954a06.Core:Packed.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !49 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN6PackedC1Ev.carbon_thunk.(ptr %return), !dbg !50 // CHECK:STDOUT: ret void, !dbg !50 @@ -155,20 +155,20 @@ fn Packed(n: i32) { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #4 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.8290f4fee0d0690a"(ptr sret([4 x i8]) %return) #0 !dbg !51 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.cd11e5926d8f9d3b.Core:NaturallyAligned.Cpp"(ptr %return), !dbg !53 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.d4cda66b3640b619"(ptr sret([4 x i8]) %return) #0 !dbg !51 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.c846b89dd79c7366.Core:NaturallyAligned.Cpp"(ptr %return), !dbg !53 // CHECK:STDOUT: ret void, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.47191496f2f0576c"(ptr sret([16 x i8]) %return) #0 !dbg !55 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.3d0f8075cbddb98d.Core:ExtraAlignment.Cpp"(ptr %return), !dbg !56 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.34933c1c343bd645"(ptr sret([16 x i8]) %return) #0 !dbg !55 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.52e7708693d29223.Core:ExtraAlignment.Cpp"(ptr %return), !dbg !56 // CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.06c36f3376c8e786"(ptr sret([4 x i8]) %return) #0 !dbg !58 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.590916adff69158b.Core:Packed.Cpp"(ptr %return), !dbg !59 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.3e10857902c69c1a"(ptr sret([4 x i8]) %return) #0 !dbg !58 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.ca2b917a39954a06.Core:Packed.Cpp"(ptr %return), !dbg !59 // CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -209,7 +209,7 @@ fn Packed(n: i32) { // CHECK:STDOUT: !21 = !{!22, !22, i64 0} // CHECK:STDOUT: !22 = !{!"p1 _ZTS16NaturallyAligned", !23, i64 0} // CHECK:STDOUT: !23 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.cd11e5926d8f9d3b.Core:NaturallyAligned.Cpp", scope: null, file: !6, line: 7, type: !25, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.c846b89dd79c7366.Core:NaturallyAligned.Cpp", scope: null, file: !6, line: 7, type: !25, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !25 = !DISubroutineType(types: !26) // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -223,7 +223,7 @@ fn Packed(n: i32) { // CHECK:STDOUT: !35 = !DILocation(line: 29, column: 1, scope: !29) // CHECK:STDOUT: !36 = !{!37, !37, i64 0} // CHECK:STDOUT: !37 = !{!"p1 _ZTS14ExtraAlignment", !23, i64 0} -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.3d0f8075cbddb98d.Core:ExtraAlignment.Cpp", scope: null, file: !6, line: 11, type: !25, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.52e7708693d29223.Core:ExtraAlignment.Cpp", scope: null, file: !6, line: 11, type: !25, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !39 = !DILocation(line: 11, column: 20, scope: !38) // CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Packed", linkageName: "_CPacked.Main", scope: null, file: !6, line: 37, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) // CHECK:STDOUT: !41 = !{!42} @@ -234,15 +234,15 @@ fn Packed(n: i32) { // CHECK:STDOUT: !46 = !DILocation(line: 37, column: 1, scope: !40) // CHECK:STDOUT: !47 = !{!48, !48, i64 0} // CHECK:STDOUT: !48 = !{!"p1 _ZTS6Packed", !23, i64 0} -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.590916adff69158b.Core:Packed.Cpp", scope: null, file: !6, line: 15, type: !25, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.ca2b917a39954a06.Core:Packed.Cpp", scope: null, file: !6, line: 15, type: !25, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !50 = !DILocation(line: 15, column: 32, scope: !49) -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.218d57fc466b073f:DefaultOrUnformed.Core.8290f4fee0d0690a", scope: null, file: !52, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.d4cda66b3640b619", scope: null, file: !52, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !52 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") // CHECK:STDOUT: !53 = !DILocation(line: 9, column: 28, scope: !51) // CHECK:STDOUT: !54 = !DILocation(line: 9, column: 21, scope: !51) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.218d57fc466b073f:DefaultOrUnformed.Core.47191496f2f0576c", scope: null, file: !52, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.34933c1c343bd645", scope: null, file: !52, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !56 = !DILocation(line: 9, column: 28, scope: !55) // CHECK:STDOUT: !57 = !DILocation(line: 9, column: 21, scope: !55) -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Op", linkageName: "_COp.218d57fc466b073f:DefaultOrUnformed.Core.06c36f3376c8e786", scope: null, file: !52, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.3e10857902c69c1a", scope: null, file: !52, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !59 = !DILocation(line: 9, column: 28, scope: !58) // CHECK:STDOUT: !60 = !DILocation(line: 9, column: 21, scope: !58) diff --git a/toolchain/lower/testdata/interop/cpp/class/import/dynamic.carbon b/toolchain/lower/testdata/interop/cpp/class/import/dynamic.carbon index 273e713fd330..d7024540e0ca 100644 --- a/toolchain/lower/testdata/interop/cpp/class/import/dynamic.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/import/dynamic.carbon @@ -166,18 +166,18 @@ auto DoThing() -> void { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define void @"_C__destroy_thunk:thunk.Derived.Main"(ptr %self) #6 !dbg !29 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.c734b9cb9ff14c0a:core.Destroy.Core"(ptr %self), !dbg !32 +// CHECK:STDOUT: call void @"_COp.8185e3504351afa8:core.Destroy.Core"(ptr %self), !dbg !32 // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.47e6e98bb48502be:core.Destroy.Core"(ptr %self) #5 !dbg !33 { +// CHECK:STDOUT: define weak_odr void @"_COp.13b019890e86b6be:core.Destroy.Core"(ptr %self) #5 !dbg !33 { // 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.c734b9cb9ff14c0a:core.Destroy.Core"(ptr %self) #5 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.8185e3504351afa8:core.Destroy.Core"(ptr %self) #5 !dbg !37 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } @@ -297,11 +297,11 @@ auto DoThing() -> void { // CHECK:STDOUT: !30 = !{!31} // CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !21) // CHECK:STDOUT: !32 = !DILocation(line: 22, column: 1, scope: !29) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.47e6e98bb48502be:core.Destroy.Core", scope: null, file: !6, line: 22, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !34) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.13b019890e86b6be:core.Destroy.Core", scope: null, file: !6, line: 22, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !34) // CHECK:STDOUT: !34 = !{!35} // CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !21) // CHECK:STDOUT: !36 = !DILocation(line: 22, column: 1, scope: !33) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c734b9cb9ff14c0a:core.Destroy.Core", scope: null, file: !6, line: 22, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !38) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8185e3504351afa8:core.Destroy.Core", scope: null, file: !6, line: 22, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !38) // CHECK:STDOUT: !38 = !{!39} // CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !21) // CHECK:STDOUT: !40 = !DILocation(line: 22, column: 1, scope: !37) diff --git a/toolchain/lower/testdata/interop/cpp/class/virtual_fn.carbon b/toolchain/lower/testdata/interop/cpp/class/virtual_fn.carbon index a1b2d9d832c3..47bf0b532c52 100644 --- a/toolchain/lower/testdata/interop/cpp/class/virtual_fn.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/virtual_fn.carbon @@ -201,7 +201,7 @@ void delete_new_Base() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define void @"_C__destroy_thunk:thunk.Final.Main"(ptr %self) #6 !dbg !22 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.8fb57eaeb076daef:core.Destroy.Core"(ptr %self), !dbg !28 +// CHECK:STDOUT: call void @"_COp.6622c02ec7a967c3:core.Destroy.Core"(ptr %self), !dbg !28 // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -209,13 +209,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.6a9ecc3bdf183bcf:core.Destroy.Core"(ptr %self) #8 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.4fc2347fc019a955:core.Destroy.Core"(ptr %self) #8 !dbg !29 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8fb57eaeb076daef:core.Destroy.Core"(ptr %self) #8 !dbg !33 { +// CHECK:STDOUT: define weak_odr void @"_COp.6622c02ec7a967c3:core.Destroy.Core"(ptr %self) #8 !dbg !33 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } @@ -232,12 +232,12 @@ void delete_new_Base() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define void @"_C__destroy_thunk:thunk.Base.Main"(ptr %self) #6 !dbg !41 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.8fd1c7aa0f654d74:core.Destroy.Core"(ptr %self), !dbg !44 +// CHECK:STDOUT: call void @"_COp.a45b619846c20518:core.Destroy.Core"(ptr %self), !dbg !44 // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8fd1c7aa0f654d74:core.Destroy.Core"(ptr %self) #8 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.a45b619846c20518:core.Destroy.Core"(ptr %self) #8 !dbg !45 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } @@ -380,11 +380,11 @@ void delete_new_Base() { // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !22, type: !25) // CHECK:STDOUT: !28 = !DILocation(line: 12, column: 1, scope: !22) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a9ecc3bdf183bcf:core.Destroy.Core", scope: null, file: !6, line: 12, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4fc2347fc019a955:core.Destroy.Core", scope: null, file: !6, line: 12, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) // CHECK:STDOUT: !30 = !{!31} // CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !25) // CHECK:STDOUT: !32 = !DILocation(line: 12, column: 1, scope: !29) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8fb57eaeb076daef:core.Destroy.Core", scope: null, file: !6, line: 12, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !34) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6622c02ec7a967c3:core.Destroy.Core", scope: null, file: !6, line: 12, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !34) // CHECK:STDOUT: !34 = !{!35} // CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !25) // CHECK:STDOUT: !36 = !DILocation(line: 12, column: 1, scope: !33) @@ -396,7 +396,7 @@ void delete_new_Base() { // CHECK:STDOUT: !42 = !{!43} // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !25) // CHECK:STDOUT: !44 = !DILocation(line: 17, column: 1, scope: !41) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8fd1c7aa0f654d74:core.Destroy.Core", scope: null, file: !6, line: 17, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a45b619846c20518:core.Destroy.Core", scope: null, file: !6, line: 17, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) // CHECK:STDOUT: !46 = !{!47} // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !25) // CHECK:STDOUT: !48 = !DILocation(line: 17, column: 1, scope: !45) diff --git a/toolchain/lower/testdata/interop/cpp/constructor.carbon b/toolchain/lower/testdata/interop/cpp/constructor.carbon index 94d2e632b9b0..6ddb4b3728f5 100644 --- a/toolchain/lower/testdata/interop/cpp/constructor.carbon +++ b/toolchain/lower/testdata/interop/cpp/constructor.carbon @@ -281,7 +281,7 @@ fn Four() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca [8 x i8], align 4, !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !14 -// CHECK:STDOUT: call void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.1afc54683c199dfb"(ptr %_.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr %_.var), !dbg !14 // CHECK:STDOUT: ret void, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -296,7 +296,7 @@ fn Four() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Default.e22dc72f1b535a46.Core:C.Cpp"(ptr sret([8 x i8]) %return) #2 !dbg !19 { +// CHECK:STDOUT: define void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr sret([8 x i8]) %return) #2 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN1CC1Ev.carbon_thunk.(ptr %return), !dbg !24 // CHECK:STDOUT: ret void, !dbg !24 @@ -306,8 +306,8 @@ fn Four() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.1afc54683c199dfb"(ptr sret([8 x i8]) %return) #0 !dbg !25 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.e22dc72f1b535a46.Core:C.Cpp"(ptr %return), !dbg !27 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr sret([8 x i8]) %return) #0 !dbg !25 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr %return), !dbg !27 // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -353,13 +353,13 @@ fn Four() { // CHECK:STDOUT: !16 = !{!17, !17, i64 0} // CHECK:STDOUT: !17 = !{!"p1 _ZTS1C", !18, i64 0} // CHECK:STDOUT: !18 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.e22dc72f1b535a46.Core:C.Cpp", scope: null, file: !20, line: 4, type: !21, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp", scope: null, file: !20, line: 4, type: !21, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !20 = !DIFile(filename: "./default.h", directory: "") // CHECK:STDOUT: !21 = !DISubroutineType(types: !22) // CHECK:STDOUT: !22 = !{!23} // CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !24 = !DILocation(line: 4, column: 3, scope: !19) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.218d57fc466b073f:DefaultOrUnformed.Core.1afc54683c199dfb", scope: null, file: !26, line: 9, type: !21, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c", scope: null, file: !26, line: 9, type: !21, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !26 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") // CHECK:STDOUT: !27 = !DILocation(line: 9, column: 28, scope: !25) // CHECK:STDOUT: !28 = !DILocation(line: 9, column: 21, scope: !25) @@ -388,11 +388,11 @@ fn Four() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_65.1.temp), !dbg !14 // CHECK:STDOUT: call void @_ZN26ImplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr %.loc8_65.1.temp), !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc9), !dbg !15 -// CHECK:STDOUT: call void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.774cef0582dbdb58"(ptr %_.var.loc9), !dbg !15 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.c20bae04b665a8c9"(ptr %_.var.loc9), !dbg !15 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_65.1.temp), !dbg !16 // CHECK:STDOUT: call void @_ZN26ExplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr %.loc12_65.1.temp), !dbg !16 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc13), !dbg !17 -// CHECK:STDOUT: call void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.6431fe01d50bd335"(ptr %_.var.loc13), !dbg !17 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.055ae7235dade271"(ptr %_.var.loc13), !dbg !17 // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -407,7 +407,7 @@ fn Four() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Default.32bfc14b1bd3f644.Core:ImplicitlyDefaultedDefault.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !22 { +// CHECK:STDOUT: define void @"_COp:thunk:Default.48fb4c4d31b7d0bf.Core:ImplicitlyDefaultedDefault.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !22 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN26ImplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr %return), !dbg !27 // CHECK:STDOUT: ret void, !dbg !27 @@ -424,7 +424,7 @@ fn Four() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Default.3ee0b34aa3c731be.Core:ExplicitlyDefaultedDefault.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !30 { +// CHECK:STDOUT: define void @"_COp:thunk:Default.f7ca6602362234ee.Core:ExplicitlyDefaultedDefault.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !30 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN26ExplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr %return), !dbg !31 // CHECK:STDOUT: ret void, !dbg !31 @@ -434,14 +434,14 @@ fn Four() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.774cef0582dbdb58"(ptr sret([4 x i8]) %return) #0 !dbg !32 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.32bfc14b1bd3f644.Core:ImplicitlyDefaultedDefault.Cpp"(ptr %return), !dbg !34 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.c20bae04b665a8c9"(ptr sret([4 x i8]) %return) #0 !dbg !32 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.48fb4c4d31b7d0bf.Core:ImplicitlyDefaultedDefault.Cpp"(ptr %return), !dbg !34 // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.6431fe01d50bd335"(ptr sret([4 x i8]) %return) #0 !dbg !36 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.3ee0b34aa3c731be.Core:ExplicitlyDefaultedDefault.Cpp"(ptr %return), !dbg !37 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.055ae7235dade271"(ptr sret([4 x i8]) %return) #0 !dbg !36 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.f7ca6602362234ee.Core:ExplicitlyDefaultedDefault.Cpp"(ptr %return), !dbg !37 // CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -503,7 +503,7 @@ fn Four() { // CHECK:STDOUT: !19 = !{!20, !20, i64 0} // CHECK:STDOUT: !20 = !{!"p1 _ZTS26ImplicitlyDefaultedDefault", !21, i64 0} // CHECK:STDOUT: !21 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.32bfc14b1bd3f644.Core:ImplicitlyDefaultedDefault.Cpp", scope: null, file: !23, line: 2, type: !24, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.48fb4c4d31b7d0bf.Core:ImplicitlyDefaultedDefault.Cpp", scope: null, file: !23, line: 2, type: !24, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !23 = !DIFile(filename: "./defaulted_default.h", directory: "") // CHECK:STDOUT: !24 = !DISubroutineType(types: !25) // CHECK:STDOUT: !25 = !{!26} @@ -511,13 +511,13 @@ fn Four() { // CHECK:STDOUT: !27 = !DILocation(line: 2, column: 8, scope: !22) // CHECK:STDOUT: !28 = !{!29, !29, i64 0} // CHECK:STDOUT: !29 = !{!"p1 _ZTS26ExplicitlyDefaultedDefault", !21, i64 0} -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.3ee0b34aa3c731be.Core:ExplicitlyDefaultedDefault.Cpp", scope: null, file: !23, line: 7, type: !24, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.f7ca6602362234ee.Core:ExplicitlyDefaultedDefault.Cpp", scope: null, file: !23, line: 7, type: !24, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !31 = !DILocation(line: 7, column: 3, scope: !30) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.218d57fc466b073f:DefaultOrUnformed.Core.774cef0582dbdb58", scope: null, file: !33, line: 9, type: !24, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.c20bae04b665a8c9", scope: null, file: !33, line: 9, type: !24, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !33 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") // CHECK:STDOUT: !34 = !DILocation(line: 9, column: 28, scope: !32) // CHECK:STDOUT: !35 = !DILocation(line: 9, column: 21, scope: !32) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.218d57fc466b073f:DefaultOrUnformed.Core.6431fe01d50bd335", scope: null, file: !33, line: 9, type: !24, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.055ae7235dade271", scope: null, file: !33, line: 9, type: !24, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !37 = !DILocation(line: 9, column: 28, scope: !36) // CHECK:STDOUT: !38 = !DILocation(line: 9, column: 21, scope: !36) // CHECK:STDOUT: !39 = !{!40, !8, i64 0} @@ -552,7 +552,7 @@ fn Four() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Copy.a9063bcbb8997555.Core:Copy.Cpp"(ptr sret([4 x i8]) %return, ptr %self) #2 !dbg !22 { +// CHECK:STDOUT: define void @"_COp:thunk:Copy.58fe21e3ef78b0d7.Core:Copy.Cpp"(ptr sret([4 x i8]) %return, ptr %self) #2 !dbg !22 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN4CopyC1ERKS_.carbon_thunk._(ptr %self, ptr %return), !dbg !26 // CHECK:STDOUT: ret void, !dbg !26 @@ -595,7 +595,7 @@ fn Four() { // CHECK:STDOUT: !19 = !{!20, !20, i64 0} // CHECK:STDOUT: !20 = !{!"p1 _ZTS4Copy", !21, i64 0} // CHECK:STDOUT: !21 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.a9063bcbb8997555.Core:Copy.Cpp", scope: null, file: !23, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !24) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.58fe21e3ef78b0d7.Core:Copy.Cpp", scope: null, file: !23, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !24) // CHECK:STDOUT: !23 = !DIFile(filename: "./copy.h", directory: "") // CHECK:STDOUT: !24 = !{!25} // CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !22, type: !14) diff --git a/toolchain/lower/testdata/interop/cpp/function_decl.carbon b/toolchain/lower/testdata/interop/cpp/function_decl.carbon index b4a83a2d1364..3aa42285e712 100644 --- a/toolchain/lower/testdata/interop/cpp/function_decl.carbon +++ b/toolchain/lower/testdata/interop/cpp/function_decl.carbon @@ -396,7 +396,7 @@ fn MyF() -> i32 { // CHECK:STDOUT: %SimpleReturnValue.call = call i32 @_Z17SimpleReturnValueii(i32 3, i32 4), !dbg !22 // CHECK:STDOUT: store i32 %SimpleReturnValue.call, ptr %value.var, align 4, !dbg !23 // CHECK:STDOUT: %.loc14 = load i32, ptr %value.var, align 4, !dbg !24 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %value.var), !dbg !15 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %value.var), !dbg !15 // CHECK:STDOUT: ret i32 %.loc14, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -439,7 +439,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.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } @@ -486,7 +486,7 @@ fn MyF() -> i32 { // CHECK:STDOUT: !23 = !DILocation(line: 13, column: 3, scope: !11) // CHECK:STDOUT: !24 = !DILocation(line: 14, column: 10, scope: !11) // CHECK:STDOUT: !25 = !DILocation(line: 14, column: 3, scope: !11) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !6, line: 11, type: !27, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !6, line: 11, type: !27, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) // CHECK:STDOUT: !27 = !DISubroutineType(types: !28) // CHECK:STDOUT: !28 = !{null, !14} // CHECK:STDOUT: !29 = !{!30} diff --git a/toolchain/lower/testdata/interop/cpp/import_inline.carbon b/toolchain/lower/testdata/interop/cpp/import_inline.carbon index e4c35c17f79f..20a35ed8493e 100644 --- a/toolchain/lower/testdata/interop/cpp/import_inline.carbon +++ b/toolchain/lower/testdata/interop/cpp/import_inline.carbon @@ -47,12 +47,12 @@ fn Call() -> i32 { // CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !18 // CHECK:STDOUT: call void @_Z1FPi(ptr %n.var), !dbg !19 // CHECK:STDOUT: %.loc24 = load i32, ptr %n.var, align 4, !dbg !20 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !18 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !18 // CHECK:STDOUT: ret i32 %.loc24, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #1 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #1 !dbg !22 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } @@ -90,7 +90,7 @@ fn Call() -> i32 { // CHECK:STDOUT: !19 = !DILocation(line: 23, column: 3, scope: !14) // CHECK:STDOUT: !20 = !DILocation(line: 24, column: 10, scope: !14) // CHECK:STDOUT: !21 = !DILocation(line: 24, column: 3, scope: !14) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !6, line: 22, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !6, line: 22, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) // CHECK:STDOUT: !23 = !DISubroutineType(types: !24) // CHECK:STDOUT: !24 = !{null, !17} // CHECK:STDOUT: !25 = !{!26} diff --git a/toolchain/lower/testdata/interop/cpp/method.carbon b/toolchain/lower/testdata/interop/cpp/method.carbon index e30e92e0b9bc..5022e9c5408e 100644 --- a/toolchain/lower/testdata/interop/cpp/method.carbon +++ b/toolchain/lower/testdata/interop/cpp/method.carbon @@ -291,7 +291,7 @@ fn F(ref r: Cpp.A) { // CHECK:STDOUT: // CHECK:STDOUT: %struct.NeedThunk = type { i8 } // CHECK:STDOUT: -// CHECK:STDOUT: @int_1.b30 = internal constant i8 1 +// CHECK:STDOUT: @int_1.f1e = internal constant i8 1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CCall.Main(ptr %n) #0 !dbg !11 { @@ -299,11 +299,11 @@ fn F(ref r: Cpp.A) { // CHECK:STDOUT: %.loc7_14.3.temp = alloca i8, align 1, !dbg !17 // CHECK:STDOUT: %.loc8_14.3.temp = alloca i8, align 1, !dbg !18 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_14.3.temp), !dbg !17 -// CHECK:STDOUT: call void @_ZNK9NeedThunk8ImplicitEa.carbon_thunk.__(ptr %n, ptr @int_1.b30), !dbg !19 +// CHECK:STDOUT: call void @_ZNK9NeedThunk8ImplicitEa.carbon_thunk.__(ptr %n, ptr @int_1.f1e), !dbg !19 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_14.3.temp), !dbg !18 -// CHECK:STDOUT: call void @_ZNH9NeedThunk8ExplicitES_a.carbon_thunk.__(ptr %n, ptr @int_1.b30), !dbg !20 -// CHECK:STDOUT: call void @"_COp.57082aeb2e97180b:core.Destroy.Core"(ptr @int_1.b30), !dbg !18 -// CHECK:STDOUT: call void @"_COp.57082aeb2e97180b:core.Destroy.Core"(ptr @int_1.b30), !dbg !17 +// CHECK:STDOUT: call void @_ZNH9NeedThunk8ExplicitES_a.carbon_thunk.__(ptr %n, ptr @int_1.f1e), !dbg !20 +// CHECK:STDOUT: call void @"_COp.578b3934f85dbca6:core.Destroy.Core"(ptr @int_1.f1e), !dbg !18 +// CHECK:STDOUT: call void @"_COp.578b3934f85dbca6:core.Destroy.Core"(ptr @int_1.f1e), !dbg !17 // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -337,7 +337,7 @@ fn F(ref r: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.57082aeb2e97180b:core.Destroy.Core"(ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.578b3934f85dbca6:core.Destroy.Core"(ptr %self) #0 !dbg !29 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } @@ -350,7 +350,7 @@ fn F(ref r: Cpp.A) { // CHECK:STDOUT: declare void @_ZNH9NeedThunk8ExplicitES_a(i8 noundef signext) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.57082aeb2e97180b:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.578b3934f85dbca6:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -391,7 +391,7 @@ fn F(ref r: Cpp.A) { // CHECK:STDOUT: !26 = !{!"p1 omnipotent char", !24, i64 0} // CHECK:STDOUT: !27 = !{} // CHECK:STDOUT: !28 = !{!9, !9, i64 0} -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.57082aeb2e97180b:core.Destroy.Core", scope: null, file: !6, line: 8, type: !30, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !33) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.578b3934f85dbca6:core.Destroy.Core", scope: null, file: !6, line: 8, type: !30, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !33) // CHECK:STDOUT: !30 = !DISubroutineType(types: !31) // CHECK:STDOUT: !31 = !{null, !32} // CHECK:STDOUT: !32 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_signed) diff --git a/toolchain/lower/testdata/interop/cpp/nullptr.carbon b/toolchain/lower/testdata/interop/cpp/nullptr.carbon index 042a0f6822ce..e90bfae25fca 100644 --- a/toolchain/lower/testdata/interop/cpp/nullptr.carbon +++ b/toolchain/lower/testdata/interop/cpp/nullptr.carbon @@ -59,7 +59,7 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc12_18.2.temp = alloca ptr, align 8, !dbg !14 // CHECK:STDOUT: %.loc14_22.1.temp = alloca ptr, align 8, !dbg !15 -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.2a40ba20f337efc9.Core.5e5386123d4b6287"(ptr poison), !dbg !14 +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.269b9b75d033aabb.Core.84588f41d61dafba"(ptr poison), !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_18.2.temp), !dbg !14 // CHECK:STDOUT: store ptr %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call, ptr %.loc12_18.2.temp, align 8, !dbg !14 // CHECK:STDOUT: %.loc12_18.4 = load ptr, ptr %.loc12_18.2.temp, align 8, !dbg !14 @@ -68,8 +68,8 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc14_22.1.temp), !dbg !15 // CHECK:STDOUT: store ptr %Cpp.nullptr_t.as.Copy.impl.Op.call, ptr %.loc14_22.1.temp, align 8, !dbg !15 // CHECK:STDOUT: call void @_Z11TakeNullptrDn.carbon_thunk._(ptr %.loc14_22.1.temp), !dbg !17 -// CHECK:STDOUT: call void @"_COp.daac099ab8e55c4a:core.Destroy.Core"(ptr %.loc14_22.1.temp), !dbg !15 -// CHECK:STDOUT: call void @"_COp.af734bd7f390a6ac:core.Destroy.Core"(ptr %.loc12_18.2.temp), !dbg !14 +// CHECK:STDOUT: call void @"_COp.37a0be3fec6961f4:core.Destroy.Core"(ptr %.loc14_22.1.temp), !dbg !15 +// CHECK:STDOUT: call void @"_COp.197d85846f87d79f:core.Destroy.Core"(ptr %.loc12_18.2.temp), !dbg !14 // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -88,19 +88,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.daac099ab8e55c4a:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.37a0be3fec6961f4:core.Destroy.Core"(ptr %self) #0 !dbg !22 { // 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.1d217782bf2cd2d8:core.Destroy.Core"(ptr %self) #0 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.958634845f762cfe:core.Destroy.Core"(ptr %self) #0 !dbg !29 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.af734bd7f390a6ac:core.Destroy.Core"(ptr %self) #0 !dbg !33 { +// CHECK:STDOUT: define weak_odr void @"_COp.197d85846f87d79f:core.Destroy.Core"(ptr %self) #0 !dbg !33 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } @@ -121,7 +121,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 !43 // CHECK:STDOUT: %.loc23 = load ptr, ptr %a.var, align 8, !dbg !45 // CHECK:STDOUT: %Cpp.nullptr_t.as.Copy.impl.Op.call.loc23 = call ptr @"_COp.NullptrT.CppCompat.Core:Copy.Core"(ptr %.loc23), !dbg !45 -// CHECK:STDOUT: call void @"_COp.daac099ab8e55c4a:core.Destroy.Core"(ptr %a.var), !dbg !43 +// CHECK:STDOUT: call void @"_COp.37a0be3fec6961f4:core.Destroy.Core"(ptr %a.var), !dbg !43 // CHECK:STDOUT: ret ptr %Cpp.nullptr_t.as.Copy.impl.Op.call.loc23, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -132,8 +132,8 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !48 // CHECK:STDOUT: call void @_Z13ReturnNullptrv.carbon_thunk.(ptr %a.var), !dbg !49 // CHECK:STDOUT: %.loc28_10 = load ptr, ptr %a.var, align 8, !dbg !50 -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.2a40ba20f337efc9.Core.5e5386123d4b6287"(ptr %.loc28_10), !dbg !51 -// CHECK:STDOUT: call void @"_COp.daac099ab8e55c4a:core.Destroy.Core"(ptr %a.var), !dbg !48 +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.269b9b75d033aabb.Core.84588f41d61dafba"(ptr %.loc28_10), !dbg !51 +// CHECK:STDOUT: call void @"_COp.37a0be3fec6961f4:core.Destroy.Core"(ptr %a.var), !dbg !48 // CHECK:STDOUT: ret ptr %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -155,21 +155,21 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc32_28.1.temp), !dbg !55 // CHECK:STDOUT: call void @_Z13ReturnNullptrv.carbon_thunk.(ptr %.loc32_28.1.temp), !dbg !55 // CHECK:STDOUT: %.loc32_28.4 = load ptr, ptr %.loc32_28.1.temp, align 8, !dbg !55 -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.2a40ba20f337efc9.Core.5e5386123d4b6287"(ptr %.loc32_28.4), !dbg !56 -// CHECK:STDOUT: call void @"_COp.daac099ab8e55c4a:core.Destroy.Core"(ptr %.loc32_28.1.temp), !dbg !55 +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.269b9b75d033aabb.Core.84588f41d61dafba"(ptr %.loc32_28.4), !dbg !56 +// CHECK:STDOUT: call void @"_COp.37a0be3fec6961f4:core.Destroy.Core"(ptr %.loc32_28.1.temp), !dbg !55 // CHECK:STDOUT: ret ptr %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define ptr @_CConvertNullptrConstant.Main() #0 !dbg !57 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.2a40ba20f337efc9.Core.5e5386123d4b6287"(ptr poison), !dbg !58 +// CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.269b9b75d033aabb.Core.84588f41d61dafba"(ptr poison), !dbg !58 // CHECK:STDOUT: ret ptr %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.call, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.2a40ba20f337efc9.Core.5e5386123d4b6287"(ptr %self) #0 !dbg !59 { -// CHECK:STDOUT: %1 = call ptr @_CNone.Optional.Core.8271477eb7e40d10(), !dbg !65 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.269b9b75d033aabb.Core.84588f41d61dafba"(ptr %self) #0 !dbg !59 { +// CHECK:STDOUT: %1 = call ptr @_CNone.Optional.Core.a636f8d928e21310(), !dbg !65 // CHECK:STDOUT: ret ptr %1, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -179,7 +179,7 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: declare ptr @_CMake.NullptrT.CppCompat.Core() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CNone.Optional.Core.8271477eb7e40d10() #0 !dbg !67 { +// CHECK:STDOUT: define linkonce_odr ptr @_CNone.Optional.Core.a636f8d928e21310() #0 !dbg !67 { // CHECK:STDOUT: ret ptr null, !dbg !69 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -188,7 +188,7 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: declare ptr @_Z13ReturnNullptrv() #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.2a40ba20f337efc9.Core.5e5386123d4b6287", { 3, 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_CConvert.NullptrT.CppCompat.Core:ImplicitAs.269b9b75d033aabb.Core.84588f41d61dafba", { 3, 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 4, 3, 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -222,18 +222,18 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: !19 = !{!20, !20, i64 0} // CHECK:STDOUT: !20 = !{!"p1 std::nullptr_t", !21, i64 0} // CHECK:STDOUT: !21 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.daac099ab8e55c4a:core.Destroy.Core", scope: null, file: !6, line: 14, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !26) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.37a0be3fec6961f4:core.Destroy.Core", scope: null, file: !6, line: 14, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !26) // CHECK:STDOUT: !23 = !DISubroutineType(types: !24) // CHECK:STDOUT: !24 = !{null, !25} // CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !22, type: !25) // CHECK:STDOUT: !28 = !DILocation(line: 14, column: 19, scope: !22) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1d217782bf2cd2d8:core.Destroy.Core", scope: null, file: !6, line: 12, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.958634845f762cfe:core.Destroy.Core", scope: null, file: !6, line: 12, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) // CHECK:STDOUT: !30 = !{!31} // CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !25) // CHECK:STDOUT: !32 = !DILocation(line: 12, column: 15, scope: !29) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.af734bd7f390a6ac:core.Destroy.Core", scope: null, file: !6, line: 12, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !34) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.197d85846f87d79f:core.Destroy.Core", scope: null, file: !6, line: 12, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !34) // CHECK:STDOUT: !34 = !{!35} // CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !25) // CHECK:STDOUT: !36 = !DILocation(line: 12, column: 15, scope: !33) @@ -259,7 +259,7 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: !56 = !DILocation(line: 32, column: 3, scope: !54) // CHECK:STDOUT: !57 = distinct !DISubprogram(name: "ConvertNullptrConstant", linkageName: "_CConvertNullptrConstant.Main", scope: null, file: !6, line: 35, type: !38, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !58 = !DILocation(line: 36, column: 3, scope: !57) -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.NullptrT.CppCompat.Core:ImplicitAs.2a40ba20f337efc9.Core.5e5386123d4b6287", scope: null, file: !60, line: 51, type: !61, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !63) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.NullptrT.CppCompat.Core:ImplicitAs.269b9b75d033aabb.Core.84588f41d61dafba", scope: null, file: !60, line: 51, type: !61, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !63) // CHECK:STDOUT: !60 = !DIFile(filename: "{{.*}}/prelude/types/cpp/nullptr.carbon", directory: "") // CHECK:STDOUT: !61 = !DISubroutineType(types: !62) // CHECK:STDOUT: !62 = !{!25, !25} @@ -267,6 +267,6 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !59, type: !25) // CHECK:STDOUT: !65 = !DILocation(line: 52, column: 14, scope: !59) // CHECK:STDOUT: !66 = !DILocation(line: 52, column: 7, scope: !59) -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.8271477eb7e40d10", scope: null, file: !68, line: 30, type: !38, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.a636f8d928e21310", scope: null, file: !68, line: 30, type: !38, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !68 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !69 = !DILocation(line: 31, column: 5, scope: !67) diff --git a/toolchain/lower/testdata/interop/cpp/operators.carbon b/toolchain/lower/testdata/interop/cpp/operators.carbon index dd5850a52147..5c88f3496334 100644 --- a/toolchain/lower/testdata/interop/cpp/operators.carbon +++ b/toolchain/lower/testdata/interop/cpp/operators.carbon @@ -88,7 +88,7 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CDriver.Main(ptr %x, ptr %y) #0 !dbg !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CCheckEqWith.Main.6ab761e2a9b48074(ptr %x, ptr %y), !dbg !18 +// CHECK:STDOUT: call void @_CCheckEqWith.Main.bdef5a2ed02e32a1(ptr %x, ptr %y), !dbg !18 // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -145,7 +145,7 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define i1 @"_CEqual:thunk:EqWith.f7e9d96179555419.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !28 { +// CHECK:STDOUT: define i1 @"_CEqual:thunk:EqWith.ffb401eeee8c4872.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.3.temp = alloca i1, align 1, !dbg !34 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.3.temp), !dbg !34 @@ -155,7 +155,7 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define i1 @"_CNotEqual:thunk:EqWith.f7e9d96179555419.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !35 { +// CHECK:STDOUT: define i1 @"_CNotEqual:thunk:EqWith.ffb401eeee8c4872.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !35 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.3.temp = alloca i1, align 1, !dbg !39 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.3.temp), !dbg !39 @@ -165,10 +165,10 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCheckEqWith.Main.6ab761e2a9b48074(ptr %x, ptr %y) #0 !dbg !40 { +// CHECK:STDOUT: define linkonce_odr void @_CCheckEqWith.Main.bdef5a2ed02e32a1(ptr %x, ptr %y) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.f7e9d96179555419.Core:Cpp"(ptr %x, ptr %y), !dbg !44 -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.call = call i1 @"_CNotEqual:thunk:EqWith.f7e9d96179555419.Core:Cpp"(ptr %x, ptr %y), !dbg !45 +// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.ffb401eeee8c4872.Core:Cpp"(ptr %x, ptr %y), !dbg !44 +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.call = call i1 @"_CNotEqual:thunk:EqWith.ffb401eeee8c4872.Core:Cpp"(ptr %x, ptr %y), !dbg !45 // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -259,19 +259,19 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: !25 = !{i64 0, i64 4, !7} // CHECK:STDOUT: !26 = !{!27, !27, i64 0} // CHECK:STDOUT: !27 = !{!"bool", !9, i64 0} -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.f7e9d96179555419.Core:Cpp", scope: null, file: !6, line: 8, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !31) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.ffb401eeee8c4872.Core:Cpp", scope: null, file: !6, line: 8, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !31) // CHECK:STDOUT: !29 = !DISubroutineType(types: !30) // CHECK:STDOUT: !30 = !{!14, !14, !14} // CHECK:STDOUT: !31 = !{!32, !33} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !28, type: !14) // CHECK:STDOUT: !33 = !DILocalVariable(arg: 2, scope: !28, type: !14) // CHECK:STDOUT: !34 = !DILocation(line: 8, column: 15, scope: !28) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.f7e9d96179555419.Core:Cpp", scope: null, file: !6, line: 12, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.ffb401eeee8c4872.Core:Cpp", scope: null, file: !6, line: 12, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) // CHECK:STDOUT: !36 = !{!37, !38} // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !14) // CHECK:STDOUT: !38 = !DILocalVariable(arg: 2, scope: !35, type: !14) // CHECK:STDOUT: !39 = !DILocation(line: 12, column: 15, scope: !35) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "CheckEqWith", linkageName: "_CCheckEqWith.Main.6ab761e2a9b48074", scope: null, file: !6, line: 18, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "CheckEqWith", linkageName: "_CCheckEqWith.Main.bdef5a2ed02e32a1", scope: null, file: !6, line: 18, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) // CHECK:STDOUT: !41 = !{!42, !43} // CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !40, type: !14) // CHECK:STDOUT: !43 = !DILocalVariable(arg: 2, scope: !40, type: !14) @@ -298,7 +298,7 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CDriver.Main(ptr %x, ptr %y) #0 !dbg !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CCheckOrderedWith.Main.0f985f7a29cc1248(ptr %x, ptr %y), !dbg !18 +// CHECK:STDOUT: call void @_CCheckOrderedWith.Main.c49adfa90bd18905(ptr %x, ptr %y), !dbg !18 // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -407,7 +407,7 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define i1 @"_CLess:thunk:OrderedWith.18a9b63c26b058c9.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !28 { +// CHECK:STDOUT: define i1 @"_CLess:thunk:OrderedWith.92c0df05bd55f97a.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.3.temp = alloca i1, align 1, !dbg !34 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.3.temp), !dbg !34 @@ -417,7 +417,7 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define i1 @"_CLessOrEquivalent:thunk:OrderedWith.18a9b63c26b058c9.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !35 { +// CHECK:STDOUT: define i1 @"_CLessOrEquivalent:thunk:OrderedWith.92c0df05bd55f97a.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !35 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.3.temp = alloca i1, align 1, !dbg !39 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.3.temp), !dbg !39 @@ -427,7 +427,7 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define i1 @"_CGreater:thunk:OrderedWith.18a9b63c26b058c9.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !40 { +// CHECK:STDOUT: define i1 @"_CGreater:thunk:OrderedWith.92c0df05bd55f97a.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !40 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.3.temp = alloca i1, align 1, !dbg !44 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.3.temp), !dbg !44 @@ -437,7 +437,7 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define i1 @"_CGreaterOrEquivalent:thunk:OrderedWith.18a9b63c26b058c9.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !45 { +// CHECK:STDOUT: define i1 @"_CGreaterOrEquivalent:thunk:OrderedWith.92c0df05bd55f97a.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !45 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.3.temp = alloca i1, align 1, !dbg !49 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.3.temp), !dbg !49 @@ -447,12 +447,12 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCheckOrderedWith.Main.0f985f7a29cc1248(ptr %x, ptr %y) #0 !dbg !50 { +// CHECK:STDOUT: define linkonce_odr void @_CCheckOrderedWith.Main.c49adfa90bd18905(ptr %x, ptr %y) #0 !dbg !50 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.call = call i1 @"_CLess:thunk:OrderedWith.18a9b63c26b058c9.Core:Cpp"(ptr %x, ptr %y), !dbg !54 -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.call = call i1 @"_CGreater:thunk:OrderedWith.18a9b63c26b058c9.Core:Cpp"(ptr %x, ptr %y), !dbg !55 -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.call = call i1 @"_CLessOrEquivalent:thunk:OrderedWith.18a9b63c26b058c9.Core:Cpp"(ptr %x, ptr %y), !dbg !56 -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.call = call i1 @"_CGreaterOrEquivalent:thunk:OrderedWith.18a9b63c26b058c9.Core:Cpp"(ptr %x, ptr %y), !dbg !57 +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.call = call i1 @"_CLess:thunk:OrderedWith.92c0df05bd55f97a.Core:Cpp"(ptr %x, ptr %y), !dbg !54 +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.call = call i1 @"_CGreater:thunk:OrderedWith.92c0df05bd55f97a.Core:Cpp"(ptr %x, ptr %y), !dbg !55 +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.call = call i1 @"_CLessOrEquivalent:thunk:OrderedWith.92c0df05bd55f97a.Core:Cpp"(ptr %x, ptr %y), !dbg !56 +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.call = call i1 @"_CGreaterOrEquivalent:thunk:OrderedWith.92c0df05bd55f97a.Core:Cpp"(ptr %x, ptr %y), !dbg !57 // CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -586,29 +586,29 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: !25 = !{i64 0, i64 4, !7} // CHECK:STDOUT: !26 = !{!27, !27, i64 0} // CHECK:STDOUT: !27 = !{!"bool", !9, i64 0} -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Less", linkageName: "_CLess:thunk:OrderedWith.18a9b63c26b058c9.Core:Cpp", scope: null, file: !6, line: 8, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !31) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Less", linkageName: "_CLess:thunk:OrderedWith.92c0df05bd55f97a.Core:Cpp", scope: null, file: !6, line: 8, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !31) // CHECK:STDOUT: !29 = !DISubroutineType(types: !30) // CHECK:STDOUT: !30 = !{!14, !14, !14} // CHECK:STDOUT: !31 = !{!32, !33} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !28, type: !14) // CHECK:STDOUT: !33 = !DILocalVariable(arg: 2, scope: !28, type: !14) // CHECK:STDOUT: !34 = !DILocation(line: 8, column: 15, scope: !28) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "LessOrEquivalent", linkageName: "_CLessOrEquivalent:thunk:OrderedWith.18a9b63c26b058c9.Core:Cpp", scope: null, file: !6, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "LessOrEquivalent", linkageName: "_CLessOrEquivalent:thunk:OrderedWith.92c0df05bd55f97a.Core:Cpp", scope: null, file: !6, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) // CHECK:STDOUT: !36 = !{!37, !38} // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !14) // CHECK:STDOUT: !38 = !DILocalVariable(arg: 2, scope: !35, type: !14) // CHECK:STDOUT: !39 = !DILocation(line: 16, column: 15, scope: !35) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Greater", linkageName: "_CGreater:thunk:OrderedWith.18a9b63c26b058c9.Core:Cpp", scope: null, file: !6, line: 12, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Greater", linkageName: "_CGreater:thunk:OrderedWith.92c0df05bd55f97a.Core:Cpp", scope: null, file: !6, line: 12, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) // CHECK:STDOUT: !41 = !{!42, !43} // CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !40, type: !14) // CHECK:STDOUT: !43 = !DILocalVariable(arg: 2, scope: !40, type: !14) // CHECK:STDOUT: !44 = !DILocation(line: 12, column: 15, scope: !40) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "GreaterOrEquivalent", linkageName: "_CGreaterOrEquivalent:thunk:OrderedWith.18a9b63c26b058c9.Core:Cpp", scope: null, file: !6, line: 20, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "GreaterOrEquivalent", linkageName: "_CGreaterOrEquivalent:thunk:OrderedWith.92c0df05bd55f97a.Core:Cpp", scope: null, file: !6, line: 20, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) // CHECK:STDOUT: !46 = !{!47, !48} // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !14) // CHECK:STDOUT: !48 = !DILocalVariable(arg: 2, scope: !45, type: !14) // CHECK:STDOUT: !49 = !DILocation(line: 20, column: 15, scope: !45) -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "CheckOrderedWith", linkageName: "_CCheckOrderedWith.Main.0f985f7a29cc1248", scope: null, file: !6, line: 26, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !51) +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "CheckOrderedWith", linkageName: "_CCheckOrderedWith.Main.c49adfa90bd18905", scope: null, file: !6, line: 26, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !51) // CHECK:STDOUT: !51 = !{!52, !53} // CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !50, type: !14) // CHECK:STDOUT: !53 = !DILocalVariable(arg: 2, scope: !50, type: !14) diff --git a/toolchain/lower/testdata/interop/cpp/parameters.carbon b/toolchain/lower/testdata/interop/cpp/parameters.carbon index 0bc855b49c8e..07f421b9d8d9 100644 --- a/toolchain/lower/testdata/interop/cpp/parameters.carbon +++ b/toolchain/lower/testdata/interop/cpp/parameters.carbon @@ -113,10 +113,10 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" // CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" // CHECK:STDOUT: -// CHECK:STDOUT: @int_1.b30 = internal constant i8 1 -// CHECK:STDOUT: @int_2.022 = internal constant i16 2 -// CHECK:STDOUT: @int_1.96a = internal constant i8 1 -// CHECK:STDOUT: @int_2.acb = internal constant i16 2 +// CHECK:STDOUT: @int_1.f1e = internal constant i8 1 +// CHECK:STDOUT: @int_2.5c2 = internal constant i16 2 +// CHECK:STDOUT: @int_1.067 = internal constant i8 1 +// CHECK:STDOUT: @int_2.ec3 = internal constant i16 2 // CHECK:STDOUT: @_Cc.Main = global i16 0 // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: @@ -129,14 +129,14 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: %.loc9_24.3.temp = alloca i16, align 2, !dbg !17 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_19.3.temp), !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_22.3.temp), !dbg !15 -// CHECK:STDOUT: call void @_Z11pass_signedasil.carbon_thunk.____(ptr @int_1.b30, ptr @int_2.022, i32 3, i64 4), !dbg !18 +// CHECK:STDOUT: call void @_Z11pass_signedasil.carbon_thunk.____(ptr @int_1.f1e, ptr @int_2.5c2, i32 3, i64 4), !dbg !18 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_21.3.temp), !dbg !16 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_24.3.temp), !dbg !17 -// CHECK:STDOUT: call void @_Z13pass_unsignedhtjm.carbon_thunk.____(ptr @int_1.96a, ptr @int_2.acb, i32 3, i64 4), !dbg !19 -// CHECK:STDOUT: call void @"_COp.05392eeae6591ae7:core.Destroy.Core"(ptr @int_2.acb), !dbg !17 -// CHECK:STDOUT: call void @"_COp.31853ecf8c1ccb9b:core.Destroy.Core"(ptr @int_1.96a), !dbg !16 -// CHECK:STDOUT: call void @"_COp.0166e16952428d48:core.Destroy.Core"(ptr @int_2.022), !dbg !15 -// CHECK:STDOUT: call void @"_COp.57082aeb2e97180b:core.Destroy.Core"(ptr @int_1.b30), !dbg !14 +// CHECK:STDOUT: call void @_Z13pass_unsignedhtjm.carbon_thunk.____(ptr @int_1.067, ptr @int_2.ec3, i32 3, i64 4), !dbg !19 +// CHECK:STDOUT: call void @"_COp.6fd0ed7da7a22bb4:core.Destroy.Core"(ptr @int_2.ec3), !dbg !17 +// CHECK:STDOUT: call void @"_COp.c3b9dc9c7e0d5d3d:core.Destroy.Core"(ptr @int_1.067), !dbg !16 +// CHECK:STDOUT: call void @"_COp.eb6702152d47e49f:core.Destroy.Core"(ptr @int_2.5c2), !dbg !15 +// CHECK:STDOUT: call void @"_COp.578b3934f85dbca6:core.Destroy.Core"(ptr @int_1.f1e), !dbg !14 // CHECK:STDOUT: ret void, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -183,25 +183,25 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.05392eeae6591ae7:core.Destroy.Core"(ptr %self) #0 !dbg !31 { +// CHECK:STDOUT: define weak_odr void @"_COp.6fd0ed7da7a22bb4:core.Destroy.Core"(ptr %self) #0 !dbg !31 { // 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.31853ecf8c1ccb9b:core.Destroy.Core"(ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.c3b9dc9c7e0d5d3d:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // 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.0166e16952428d48:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.eb6702152d47e49f:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // 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.57082aeb2e97180b:core.Destroy.Core"(ptr %self) #0 !dbg !52 { +// CHECK:STDOUT: define weak_odr void @"_COp.578b3934f85dbca6:core.Destroy.Core"(ptr %self) #0 !dbg !52 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } @@ -230,10 +230,10 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_28.3.temp), !dbg !69 // CHECK:STDOUT: store i16 %MakeShort.call, ptr %.loc20_28.3.temp, align 2, !dbg !69 // CHECK:STDOUT: call void @_Z10pass_shorts.carbon_thunk._(ptr %.loc20_28.3.temp), !dbg !73 -// CHECK:STDOUT: call void @"_COp.0166e16952428d48:core.Destroy.Core"(ptr %.loc20_28.3.temp), !dbg !69 -// CHECK:STDOUT: call void @"_COp.0166e16952428d48:core.Destroy.Core"(ptr %.loc19_18.2.temp), !dbg !68 -// CHECK:STDOUT: call void @"_COp.0166e16952428d48:core.Destroy.Core"(ptr %.loc18_18.3.temp), !dbg !67 -// CHECK:STDOUT: call void @"_COp.0166e16952428d48:core.Destroy.Core"(ptr %.loc17_18.1.temp), !dbg !66 +// CHECK:STDOUT: call void @"_COp.eb6702152d47e49f:core.Destroy.Core"(ptr %.loc20_28.3.temp), !dbg !69 +// CHECK:STDOUT: call void @"_COp.eb6702152d47e49f:core.Destroy.Core"(ptr %.loc19_18.2.temp), !dbg !68 +// CHECK:STDOUT: call void @"_COp.eb6702152d47e49f:core.Destroy.Core"(ptr %.loc18_18.3.temp), !dbg !67 +// CHECK:STDOUT: call void @"_COp.eb6702152d47e49f:core.Destroy.Core"(ptr %.loc17_18.1.temp), !dbg !66 // CHECK:STDOUT: ret void, !dbg !74 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -308,28 +308,28 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: !28 = !{!9, !9, i64 0} // CHECK:STDOUT: !29 = !{!30, !30, i64 0} // CHECK:STDOUT: !30 = !{!"short", !9, i64 0} -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.05392eeae6591ae7:core.Destroy.Core", scope: null, file: !6, line: 9, type: !32, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !35) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6fd0ed7da7a22bb4:core.Destroy.Core", scope: null, file: !6, line: 9, type: !32, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !35) // CHECK:STDOUT: !32 = !DISubroutineType(types: !33) // CHECK:STDOUT: !33 = !{null, !34} // CHECK:STDOUT: !34 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_unsigned) // CHECK:STDOUT: !35 = !{!36} // CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !31, type: !34) // CHECK:STDOUT: !37 = !DILocation(line: 9, column: 24, scope: !31) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.31853ecf8c1ccb9b:core.Destroy.Core", scope: null, file: !6, line: 9, type: !39, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !42) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c3b9dc9c7e0d5d3d:core.Destroy.Core", scope: null, file: !6, line: 9, type: !39, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !42) // CHECK:STDOUT: !39 = !DISubroutineType(types: !40) // CHECK:STDOUT: !40 = !{null, !41} // CHECK:STDOUT: !41 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_unsigned) // CHECK:STDOUT: !42 = !{!43} // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !38, type: !41) // CHECK:STDOUT: !44 = !DILocation(line: 9, column: 21, scope: !38) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0166e16952428d48:core.Destroy.Core", scope: null, file: !6, line: 7, type: !46, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !49) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eb6702152d47e49f:core.Destroy.Core", scope: null, file: !6, line: 7, type: !46, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !49) // CHECK:STDOUT: !46 = !DISubroutineType(types: !47) // CHECK:STDOUT: !47 = !{null, !48} // CHECK:STDOUT: !48 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed) // CHECK:STDOUT: !49 = !{!50} // CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !45, type: !48) // CHECK:STDOUT: !51 = !DILocation(line: 7, column: 22, scope: !45) -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.57082aeb2e97180b:core.Destroy.Core", scope: null, file: !6, line: 7, type: !53, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !56) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.578b3934f85dbca6:core.Destroy.Core", scope: null, file: !6, line: 7, type: !53, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !56) // CHECK:STDOUT: !53 = !DISubroutineType(types: !54) // CHECK:STDOUT: !54 = !{null, !55} // CHECK:STDOUT: !55 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_signed) @@ -367,7 +367,7 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %x.var = alloca [12 x i8], align 4, !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !14 -// CHECK:STDOUT: call void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.2b54a6c79ab6fefb"(ptr %x.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.102476b7ae87d0a1"(ptr %x.var), !dbg !14 // CHECK:STDOUT: %.loc8_4.a = getelementptr inbounds nuw [12 x i8], ptr %x.var, i32 0, i32 0, !dbg !15 // CHECK:STDOUT: store i32 1, ptr %.loc8_4.a, align 4, !dbg !15 // CHECK:STDOUT: %.loc9_4.b = getelementptr inbounds nuw [12 x i8], ptr %x.var, i32 0, i32 4, !dbg !16 @@ -388,7 +388,7 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Default.ce6fb8e54042cd69.Core:X.Cpp"(ptr sret([12 x i8]) %return) #2 !dbg !23 { +// CHECK:STDOUT: define void @"_COp:thunk:Default.eed9ddf3aaac414a.Core:X.Cpp"(ptr sret([12 x i8]) %return) #2 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN1XC1Ev.carbon_thunk.(ptr %return), !dbg !28 // CHECK:STDOUT: ret void, !dbg !28 @@ -416,8 +416,8 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #4 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.2b54a6c79ab6fefb"(ptr sret([12 x i8]) %return) #0 !dbg !30 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.ce6fb8e54042cd69.Core:X.Cpp"(ptr %return), !dbg !32 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.102476b7ae87d0a1"(ptr sret([12 x i8]) %return) #0 !dbg !30 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.eed9ddf3aaac414a.Core:X.Cpp"(ptr %return), !dbg !32 // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -463,14 +463,14 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: !20 = !{!21, !21, i64 0} // CHECK:STDOUT: !21 = !{!"p1 _ZTS1X", !22, i64 0} // CHECK:STDOUT: !22 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.ce6fb8e54042cd69.Core:X.Cpp", scope: null, file: !24, line: 2, type: !25, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.eed9ddf3aaac414a.Core:X.Cpp", scope: null, file: !24, line: 2, type: !25, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !24 = !DIFile(filename: "./struct.h", directory: "") // CHECK:STDOUT: !25 = !DISubroutineType(types: !26) // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !28 = !DILocation(line: 2, column: 8, scope: !23) // CHECK:STDOUT: !29 = !{i64 0, i64 4, !7, i64 4, i64 4, !7, i64 8, i64 4, !7} -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.218d57fc466b073f:DefaultOrUnformed.Core.2b54a6c79ab6fefb", scope: null, file: !31, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.102476b7ae87d0a1", scope: null, file: !31, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !31 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") // CHECK:STDOUT: !32 = !DILocation(line: 9, column: 28, scope: !30) // CHECK:STDOUT: !33 = !DILocation(line: 9, column: 21, scope: !30) diff --git a/toolchain/lower/testdata/interop/cpp/pointer.carbon b/toolchain/lower/testdata/interop/cpp/pointer.carbon index 95a033635124..8ef1c744c540 100644 --- a/toolchain/lower/testdata/interop/cpp/pointer.carbon +++ b/toolchain/lower/testdata/interop/cpp/pointer.carbon @@ -218,25 +218,25 @@ fn Convert() { // CHECK:STDOUT: define void @_CPassNonnullPtr.Main(ptr %p) #0 !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc22_15.2.temp = alloca ptr, align 8, !dbg !21 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.4cfbb4dda981c144"(ptr %p), !dbg !21 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.0df7ee04ac3e2bca"(ptr %p), !dbg !21 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_15.2.temp), !dbg !21 // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc22_15.2.temp, align 8, !dbg !21 // CHECK:STDOUT: %.loc22_15.4 = load ptr, ptr %.loc22_15.2.temp, align 8, !dbg !21 // CHECK:STDOUT: call void @_Z7TakePtrP1C(ptr %.loc22_15.4), !dbg !22 -// CHECK:STDOUT: call void @"_COp.5bfd342192c37568:core.Destroy.Core"(ptr %.loc22_15.2.temp), !dbg !21 +// CHECK:STDOUT: call void @"_COp.f38d07f92d84f295:core.Destroy.Core"(ptr %.loc22_15.2.temp), !dbg !21 // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z7TakePtrP1C(ptr noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e8eb5ed054c58d8b:core.Destroy.Core"(ptr %self) #0 !dbg !24 { +// CHECK:STDOUT: define weak_odr void @"_COp.0eaa291c18f0461d:core.Destroy.Core"(ptr %self) #0 !dbg !24 { // 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.5bfd342192c37568:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.f38d07f92d84f295:core.Destroy.Core"(ptr %self) #0 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } @@ -260,12 +260,12 @@ fn Convert() { // CHECK:STDOUT: define void @_CPassNonnullPtrWithThunk.Main(ptr %p) #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc35_24.2.temp = alloca ptr, align 8, !dbg !44 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.4cfbb4dda981c144"(ptr %p), !dbg !44 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.0df7ee04ac3e2bca"(ptr %p), !dbg !44 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc35_24.2.temp), !dbg !44 // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc35_24.2.temp, align 8, !dbg !44 // CHECK:STDOUT: %.loc35_24.4 = load ptr, ptr %.loc35_24.2.temp, align 8, !dbg !44 // CHECK:STDOUT: call void @_Z16TakePtrWithThunkP1Ci.carbon_thunk._(ptr %.loc35_24.4), !dbg !45 -// CHECK:STDOUT: call void @"_COp.5bfd342192c37568:core.Destroy.Core"(ptr %.loc35_24.2.temp), !dbg !44 +// CHECK:STDOUT: call void @"_COp.f38d07f92d84f295:core.Destroy.Core"(ptr %.loc35_24.2.temp), !dbg !44 // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -294,8 +294,8 @@ fn Convert() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.4cfbb4dda981c144"(ptr %self) #0 !dbg !53 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.a0c6f87edec590a2:OptionalAs.3a7c842b5a6bca51.Core.101bf8ddc20b47aa"(ptr %self), !dbg !59 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.0df7ee04ac3e2bca"(ptr %self) #0 !dbg !53 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.ce205433e72b0023"(ptr %self), !dbg !59 // CHECK:STDOUT: ret ptr %1, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -303,25 +303,25 @@ fn Convert() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.a0c6f87edec590a2:OptionalAs.3a7c842b5a6bca51.Core.101bf8ddc20b47aa"(ptr %self) #0 !dbg !61 { -// CHECK:STDOUT: %1 = call ptr @_CSome.Optional.Core.101bf8ddc20b47aa(ptr %self), !dbg !64 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.ce205433e72b0023"(ptr %self) #0 !dbg !61 { +// CHECK:STDOUT: %1 = call ptr @_CSome.Optional.Core.ce205433e72b0023(ptr %self), !dbg !64 // CHECK:STDOUT: ret ptr %1, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.101bf8ddc20b47aa(ptr %value) #0 !dbg !66 { -// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2"(ptr %value), !dbg !69 +// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.ce205433e72b0023(ptr %value) #0 !dbg !66 { +// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.fc8b3e0dc71c345e"(ptr %value), !dbg !69 // CHECK:STDOUT: ret ptr %1, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2"(ptr %self) #0 !dbg !71 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.fc8b3e0dc71c345e"(ptr %self) #0 !dbg !71 { // CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !74 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !74 // CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !74 // CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !75 // CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !76 -// CHECK:STDOUT: call void @"_COp.e8eb5ed054c58d8b:core.Destroy.Core"(ptr %1), !dbg !74 +// CHECK:STDOUT: call void @"_COp.0eaa291c18f0461d:core.Destroy.Core"(ptr %1), !dbg !74 // CHECK:STDOUT: ret ptr %2, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -330,7 +330,7 @@ fn Convert() { // CHECK:STDOUT: declare noundef ptr @_Z18ReturnPtrWithThunki(i32 noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.4cfbb4dda981c144", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.0df7ee04ac3e2bca", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 2, 1 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -366,11 +366,11 @@ fn Convert() { // CHECK:STDOUT: !21 = !DILocation(line: 22, column: 15, scope: !18) // CHECK:STDOUT: !22 = !DILocation(line: 22, column: 3, scope: !18) // CHECK:STDOUT: !23 = !DILocation(line: 19, column: 1, scope: !18) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e8eb5ed054c58d8b:core.Destroy.Core", scope: null, file: !6, line: 22, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0eaa291c18f0461d:core.Destroy.Core", scope: null, file: !6, line: 22, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) // CHECK:STDOUT: !25 = !{!26} // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !24, type: !14) // CHECK:STDOUT: !27 = !DILocation(line: 22, column: 15, scope: !24) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5bfd342192c37568:core.Destroy.Core", scope: null, file: !6, line: 22, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f38d07f92d84f295:core.Destroy.Core", scope: null, file: !6, line: 22, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) // CHECK:STDOUT: !29 = !{!30} // CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !14) // CHECK:STDOUT: !31 = !DILocation(line: 22, column: 15, scope: !28) @@ -395,7 +395,7 @@ fn Convert() { // CHECK:STDOUT: !50 = distinct !DISubprogram(name: "ReturnPtrWithThunk", linkageName: "_CReturnPtrWithThunk.Main", scope: null, file: !6, line: 38, type: !33, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !51 = !DILocation(line: 39, column: 10, scope: !50) // CHECK:STDOUT: !52 = !DILocation(line: 39, column: 3, scope: !50) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.4cfbb4dda981c144", scope: null, file: !54, line: 105, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !57) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.0df7ee04ac3e2bca", scope: null, file: !54, line: 105, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !57) // CHECK:STDOUT: !54 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !55 = !DISubroutineType(types: !56) // CHECK:STDOUT: !56 = !{!14, !14} @@ -403,17 +403,17 @@ fn Convert() { // CHECK:STDOUT: !58 = !DILocalVariable(arg: 1, scope: !53, type: !14) // CHECK:STDOUT: !59 = !DILocation(line: 106, column: 12, scope: !53) // CHECK:STDOUT: !60 = !DILocation(line: 106, column: 5, scope: !53) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.a0c6f87edec590a2:OptionalAs.3a7c842b5a6bca51.Core.101bf8ddc20b47aa", scope: null, file: !54, line: 80, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !62) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.ce205433e72b0023", scope: null, file: !54, line: 80, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !62) // CHECK:STDOUT: !62 = !{!63} // CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !61, type: !14) // CHECK:STDOUT: !64 = !DILocation(line: 81, column: 12, scope: !61) // CHECK:STDOUT: !65 = !DILocation(line: 81, column: 5, scope: !61) -// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.101bf8ddc20b47aa", scope: null, file: !54, line: 33, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !67) +// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.ce205433e72b0023", scope: null, file: !54, line: 33, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !67) // CHECK:STDOUT: !67 = !{!68} // CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !66, type: !14) // CHECK:STDOUT: !69 = !DILocation(line: 34, column: 12, scope: !66) // CHECK:STDOUT: !70 = !DILocation(line: 34, column: 5, scope: !66) -// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2", scope: null, file: !54, line: 166, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !72) +// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.fc8b3e0dc71c345e", scope: null, file: !54, line: 166, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !72) // CHECK:STDOUT: !72 = !{!73} // CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !71, type: !14) // CHECK:STDOUT: !74 = !DILocation(line: 167, column: 14, scope: !71) @@ -434,13 +434,13 @@ fn Convert() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_21.1.temp), !dbg !14 // CHECK:STDOUT: store ptr %make.call, ptr %.loc9_21.1.temp, align 8, !dbg !14 // CHECK:STDOUT: %.loc9_21.3 = load ptr, ptr %.loc9_21.1.temp, align 8, !dbg !14 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.e2a0131d36fb5025"(ptr %.loc9_21.3), !dbg !14 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.26284956f90c5004"(ptr %.loc9_21.3), !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_21.5.temp), !dbg !14 // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc9_21.5.temp, align 8, !dbg !14 // CHECK:STDOUT: %.loc9_21.7 = load ptr, ptr %.loc9_21.5.temp, align 8, !dbg !14 // CHECK:STDOUT: call void @_Z4takePK1C(ptr %.loc9_21.7), !dbg !15 -// CHECK:STDOUT: call void @"_COp.bf94a0bd5c960746:core.Destroy.Core"(ptr %.loc9_21.5.temp), !dbg !14 -// CHECK:STDOUT: call void @"_COp.8a092eaa967aef42:core.Destroy.Core"(ptr %.loc9_21.1.temp), !dbg !14 +// CHECK:STDOUT: call void @"_COp.4713799e8769f265:core.Destroy.Core"(ptr %.loc9_21.5.temp), !dbg !14 +// CHECK:STDOUT: call void @"_COp.2b115399396a8344:core.Destroy.Core"(ptr %.loc9_21.1.temp), !dbg !14 // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -449,25 +449,25 @@ fn Convert() { // CHECK:STDOUT: declare void @_Z4takePK1C(ptr noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.904ecb459d1cdbcd:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.95d54adfec6e2c8e:core.Destroy.Core"(ptr %self) #0 !dbg !17 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.bf94a0bd5c960746:core.Destroy.Core"(ptr %self) #0 !dbg !24 { +// CHECK:STDOUT: define weak_odr void @"_COp.4713799e8769f265:core.Destroy.Core"(ptr %self) #0 !dbg !24 { // 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.e8eb5ed054c58d8b:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.0eaa291c18f0461d:core.Destroy.Core"(ptr %self) #0 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8a092eaa967aef42:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.2b115399396a8344:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } @@ -476,77 +476,77 @@ 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.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.e2a0131d36fb5025"(ptr %self) #0 !dbg !36 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.Optional.91c61ccd5c87946d.Core:OptionalAs.db69f09c2307f298.Core.c668d01a19d764bb"(ptr %self), !dbg !42 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.26284956f90c5004"(ptr %self) #0 !dbg !36 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.Optional.c661605f12aa337a.Core:OptionalAs.1dac4564233fecd1.Core.ba0bf13f1b5bc657"(ptr %self), !dbg !42 // CHECK:STDOUT: ret ptr %1, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.Optional.91c61ccd5c87946d.Core:OptionalAs.db69f09c2307f298.Core.c668d01a19d764bb"(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.Optional.c661605f12aa337a.Core:OptionalAs.1dac4564233fecd1.Core.ba0bf13f1b5bc657"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: %temp = alloca ptr, align 8, !dbg !47 // CHECK:STDOUT: %temp1 = alloca ptr, align 8, !dbg !47 -// CHECK:STDOUT: %1 = call i1 @_CHasValue.Optional.Core.d9e0e29c89ce3067(ptr %self), !dbg !48 +// CHECK:STDOUT: %1 = call i1 @_CHasValue.Optional.Core.0d555305d9583d05(ptr %self), !dbg !48 // CHECK:STDOUT: br i1 %1, label %2, label %7, !dbg !49 // CHECK:STDOUT: // CHECK:STDOUT: 2: ; preds = %0 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !47 -// CHECK:STDOUT: %3 = call ptr @_CGet.Optional.Core.d9e0e29c89ce3067(ptr %self), !dbg !47 +// CHECK:STDOUT: %3 = call ptr @_CGet.Optional.Core.0d555305d9583d05(ptr %self), !dbg !47 // CHECK:STDOUT: store ptr %3, ptr %temp, align 8, !dbg !47 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp1), !dbg !47 // CHECK:STDOUT: %4 = load ptr, ptr %temp, align 8, !dbg !47 // CHECK:STDOUT: store ptr %4, ptr %temp1, align 8, !dbg !47 // CHECK:STDOUT: %5 = load ptr, ptr %temp1, align 8, !dbg !47 -// CHECK:STDOUT: %6 = call ptr @_CSome.Optional.Core.11841628b566c930(ptr %5), !dbg !50 +// CHECK:STDOUT: %6 = call ptr @_CSome.Optional.Core.deb37f08ddf50b30(ptr %5), !dbg !50 // CHECK:STDOUT: ret ptr %6, !dbg !51 // CHECK:STDOUT: // CHECK:STDOUT: 7: ; preds = %0 -// CHECK:STDOUT: %8 = call ptr @_CNone.Optional.Core.11841628b566c930(), !dbg !52 +// CHECK:STDOUT: %8 = call ptr @_CNone.Optional.Core.deb37f08ddf50b30(), !dbg !52 // CHECK:STDOUT: ret ptr %8, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.d9e0e29c89ce3067(ptr %self) #0 !dbg !54 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2"(ptr %self), !dbg !57 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.0d555305d9583d05(ptr %self) #0 !dbg !54 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.fc8b3e0dc71c345e"(ptr %self), !dbg !57 // CHECK:STDOUT: ret i1 %1, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CGet.Optional.Core.d9e0e29c89ce3067(ptr %self) #0 !dbg !59 { -// CHECK:STDOUT: %1 = call ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2"(ptr %self), !dbg !62 +// CHECK:STDOUT: define linkonce_odr ptr @_CGet.Optional.Core.0d555305d9583d05(ptr %self) #0 !dbg !59 { +// CHECK:STDOUT: %1 = call ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.fc8b3e0dc71c345e"(ptr %self), !dbg !62 // CHECK:STDOUT: ret ptr %1, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.11841628b566c930(ptr %value) #0 !dbg !64 { -// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.0e66b20f8d4f0663"(ptr %value), !dbg !67 +// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.deb37f08ddf50b30(ptr %value) #0 !dbg !64 { +// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.8753681fdb639539"(ptr %value), !dbg !67 // CHECK:STDOUT: ret ptr %1, !dbg !68 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CNone.Optional.Core.11841628b566c930() #0 !dbg !69 { +// CHECK:STDOUT: define linkonce_odr ptr @_CNone.Optional.Core.deb37f08ddf50b30() #0 !dbg !69 { // CHECK:STDOUT: ret ptr null, !dbg !72 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2"(ptr %value) #0 !dbg !73 { +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.fc8b3e0dc71c345e"(ptr %value) #0 !dbg !73 { // CHECK:STDOUT: %1 = icmp eq ptr %value, null, !dbg !76 // CHECK:STDOUT: %2 = xor i1 %1, true, !dbg !77 // CHECK:STDOUT: ret i1 %2, !dbg !78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2"(ptr %value) #0 !dbg !79 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.fc8b3e0dc71c345e"(ptr %value) #0 !dbg !79 { // CHECK:STDOUT: ret ptr %value, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.0e66b20f8d4f0663"(ptr %self) #0 !dbg !83 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.8753681fdb639539"(ptr %self) #0 !dbg !83 { // CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !86 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !86 // CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !86 // CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !87 // CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !88 -// CHECK:STDOUT: call void @"_COp.904ecb459d1cdbcd:core.Destroy.Core"(ptr %1), !dbg !86 +// CHECK:STDOUT: call void @"_COp.95d54adfec6e2c8e:core.Destroy.Core"(ptr %1), !dbg !86 // CHECK:STDOUT: ret ptr %2, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -578,26 +578,26 @@ fn Convert() { // CHECK:STDOUT: !14 = !DILocation(line: 9, column: 12, scope: !11) // CHECK:STDOUT: !15 = !DILocation(line: 9, column: 3, scope: !11) // CHECK:STDOUT: !16 = !DILocation(line: 8, column: 1, scope: !11) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.904ecb459d1cdbcd:core.Destroy.Core", scope: null, file: !6, line: 9, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !21) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.95d54adfec6e2c8e:core.Destroy.Core", scope: null, file: !6, line: 9, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !21) // CHECK:STDOUT: !18 = !DISubroutineType(types: !19) // CHECK:STDOUT: !19 = !{null, !20} // CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !21 = !{!22} // CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !17, type: !20) // CHECK:STDOUT: !23 = !DILocation(line: 9, column: 12, scope: !17) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bf94a0bd5c960746:core.Destroy.Core", scope: null, file: !6, line: 9, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4713799e8769f265:core.Destroy.Core", scope: null, file: !6, line: 9, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) // CHECK:STDOUT: !25 = !{!26} // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !24, type: !20) // CHECK:STDOUT: !27 = !DILocation(line: 9, column: 12, scope: !24) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e8eb5ed054c58d8b:core.Destroy.Core", scope: null, file: !6, line: 9, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0eaa291c18f0461d:core.Destroy.Core", scope: null, file: !6, line: 9, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) // CHECK:STDOUT: !29 = !{!30} // CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !20) // CHECK:STDOUT: !31 = !DILocation(line: 9, column: 12, scope: !28) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a092eaa967aef42:core.Destroy.Core", scope: null, file: !6, line: 9, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !33) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.2b115399396a8344:core.Destroy.Core", scope: null, file: !6, line: 9, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !33) // CHECK:STDOUT: !33 = !{!34} // CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !20) // CHECK:STDOUT: !35 = !DILocation(line: 9, column: 12, scope: !32) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.e2a0131d36fb5025", scope: null, file: !37, line: 105, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !40) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.26284956f90c5004", scope: null, file: !37, line: 105, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !40) // CHECK:STDOUT: !37 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !38 = !DISubroutineType(types: !39) // CHECK:STDOUT: !39 = !{!20, !20} @@ -605,7 +605,7 @@ fn Convert() { // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !36, type: !20) // CHECK:STDOUT: !42 = !DILocation(line: 106, column: 12, scope: !36) // CHECK:STDOUT: !43 = !DILocation(line: 106, column: 5, scope: !36) -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Optional.91c61ccd5c87946d.Core:OptionalAs.db69f09c2307f298.Core.c668d01a19d764bb", scope: null, file: !37, line: 95, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Optional.c661605f12aa337a.Core:OptionalAs.1dac4564233fecd1.Core.ba0bf13f1b5bc657", scope: null, file: !37, line: 95, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) // CHECK:STDOUT: !45 = !{!46} // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !44, type: !20) // CHECK:STDOUT: !47 = !DILocation(line: 97, column: 31, scope: !44) @@ -615,36 +615,36 @@ fn Convert() { // CHECK:STDOUT: !51 = !DILocation(line: 97, column: 7, scope: !44) // CHECK:STDOUT: !52 = !DILocation(line: 99, column: 12, scope: !44) // CHECK:STDOUT: !53 = !DILocation(line: 99, column: 5, scope: !44) -// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.d9e0e29c89ce3067", scope: null, file: !37, line: 36, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !55) +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.0d555305d9583d05", scope: null, file: !37, line: 36, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !55) // CHECK:STDOUT: !55 = !{!56} // CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !54, type: !20) // CHECK:STDOUT: !57 = !DILocation(line: 37, column: 12, scope: !54) // CHECK:STDOUT: !58 = !DILocation(line: 37, column: 5, scope: !54) -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.d9e0e29c89ce3067", scope: null, file: !37, line: 39, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !60) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.0d555305d9583d05", scope: null, file: !37, line: 39, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !60) // CHECK:STDOUT: !60 = !{!61} // CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !59, type: !20) // CHECK:STDOUT: !62 = !DILocation(line: 40, column: 12, scope: !59) // CHECK:STDOUT: !63 = !DILocation(line: 40, column: 5, scope: !59) -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.11841628b566c930", scope: null, file: !37, line: 33, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !65) +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.deb37f08ddf50b30", scope: null, file: !37, line: 33, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !65) // CHECK:STDOUT: !65 = !{!66} // CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !64, type: !20) // CHECK:STDOUT: !67 = !DILocation(line: 34, column: 12, scope: !64) // CHECK:STDOUT: !68 = !DILocation(line: 34, column: 5, scope: !64) -// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.11841628b566c930", scope: null, file: !37, line: 30, type: !70, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.deb37f08ddf50b30", scope: null, file: !37, line: 30, type: !70, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !70 = !DISubroutineType(types: !71) // CHECK:STDOUT: !71 = !{!20} // CHECK:STDOUT: !72 = !DILocation(line: 31, column: 5, scope: !69) -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2", scope: null, file: !37, line: 172, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !74) +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.e8f8f92d3d08d149:OptionalStorage.Core.fc8b3e0dc71c345e", scope: null, file: !37, line: 172, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !74) // CHECK:STDOUT: !74 = !{!75} // CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !73, type: !20) // CHECK:STDOUT: !76 = !DILocation(line: 173, column: 16, scope: !73) // CHECK:STDOUT: !77 = !DILocation(line: 173, column: 12, scope: !73) // CHECK:STDOUT: !78 = !DILocation(line: 173, column: 5, scope: !73) -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2", scope: null, file: !37, line: 175, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !80) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.e8f8f92d3d08d149:OptionalStorage.Core.fc8b3e0dc71c345e", scope: null, file: !37, line: 175, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !80) // CHECK:STDOUT: !80 = !{!81} // CHECK:STDOUT: !81 = !DILocalVariable(arg: 1, scope: !79, type: !20) // CHECK:STDOUT: !82 = !DILocation(line: 176, column: 5, scope: !79) -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.0e66b20f8d4f0663", scope: null, file: !37, line: 166, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !84) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.8753681fdb639539", scope: null, file: !37, line: 166, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !84) // CHECK:STDOUT: !84 = !{!85} // CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !83, type: !20) // CHECK:STDOUT: !86 = !DILocation(line: 167, column: 14, scope: !83) diff --git a/toolchain/lower/testdata/interop/cpp/reference.carbon b/toolchain/lower/testdata/interop/cpp/reference.carbon index 1c73dd212ec4..00c5fc0ed6cd 100644 --- a/toolchain/lower/testdata/interop/cpp/reference.carbon +++ b/toolchain/lower/testdata/interop/cpp/reference.carbon @@ -144,7 +144,7 @@ fn GetRefs() { // CHECK:STDOUT: %_.var.2 = alloca i32, align 4, !dbg !17 // CHECK:STDOUT: %.loc25_23.2.temp = alloca i32, align 4, !dbg !18 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !14 -// CHECK:STDOUT: call void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.1afc54683c199dfb"(ptr %c.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr %c.var), !dbg !14 // CHECK:STDOUT: call void @_Z8TakeCRefR1C(ptr %c.var), !dbg !19 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.1), !dbg !15 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.1, ptr align 1 @C.val.loc19_20, i64 0, i1 false), !dbg !15 @@ -160,9 +160,9 @@ fn GetRefs() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_23.2.temp), !dbg !18 // CHECK:STDOUT: store i32 %.loc25_23.1, ptr %.loc25_23.2.temp, align 4, !dbg !18 // CHECK:STDOUT: call void @_Z15TakeConstIntRefRKi.carbon_thunk._(ptr %.loc25_23.2.temp), !dbg !24 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %.loc25_23.2.temp), !dbg !18 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %_.var.2), !dbg !17 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !16 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %.loc25_23.2.temp), !dbg !18 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %_.var.2), !dbg !17 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !16 // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -176,7 +176,7 @@ fn GetRefs() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Default.e22dc72f1b535a46.Core:C.Cpp"(ptr sret({}) %return) #2 !dbg !29 { +// CHECK:STDOUT: define void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr sret({}) %return) #2 !dbg !29 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN1CC1Ev.carbon_thunk.(ptr %return), !dbg !33 // CHECK:STDOUT: ret void, !dbg !33 @@ -227,7 +227,7 @@ fn GetRefs() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !36 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !36 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } @@ -236,8 +236,8 @@ fn GetRefs() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #5 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.1afc54683c199dfb"(ptr sret({}) %return) #0 !dbg !43 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.e22dc72f1b535a46.Core:C.Cpp"(ptr %return), !dbg !45 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr sret({}) %return) #0 !dbg !43 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr %return), !dbg !45 // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -253,7 +253,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.1fa36cd3e044ac37:core.Destroy.Core", { 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.5e27612b9dd31a14: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,21 +296,21 @@ fn GetRefs() { // CHECK:STDOUT: !26 = !{!27, !27, i64 0} // CHECK:STDOUT: !27 = !{!"p1 _ZTS1C", !28, i64 0} // CHECK:STDOUT: !28 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.e22dc72f1b535a46.Core:C.Cpp", scope: null, file: !6, line: 5, type: !30, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp", scope: null, file: !6, line: 5, type: !30, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !30 = !DISubroutineType(types: !31) // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !33 = !DILocation(line: 5, column: 7, scope: !29) // CHECK:STDOUT: !34 = !{!35, !35, i64 0} // CHECK:STDOUT: !35 = !{!"p1 int", !28, i64 0} -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !6, line: 25, type: !37, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !40) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !6, line: 25, type: !37, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !40) // CHECK:STDOUT: !37 = !DISubroutineType(types: !38) // CHECK:STDOUT: !38 = !{null, !39} // CHECK:STDOUT: !39 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !40 = !{!41} // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !36, type: !39) // CHECK:STDOUT: !42 = !DILocation(line: 25, column: 23, scope: !36) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.218d57fc466b073f:DefaultOrUnformed.Core.1afc54683c199dfb", scope: null, file: !44, line: 9, type: !30, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c", scope: null, file: !44, line: 9, type: !30, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !44 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") // CHECK:STDOUT: !45 = !DILocation(line: 9, column: 28, scope: !43) // CHECK:STDOUT: !46 = !DILocation(line: 9, column: 21, scope: !43) @@ -333,7 +333,7 @@ fn GetRefs() { // CHECK:STDOUT: %_.var = alloca i32, align 4, !dbg !17 // CHECK:STDOUT: %.loc26_23.2.temp = alloca i32, align 4, !dbg !18 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !14 -// CHECK:STDOUT: call void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.1afc54683c199dfb"(ptr %c.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr %c.var), !dbg !14 // CHECK:STDOUT: call void @_Z8TakeCRefR1C10ForceThunk.carbon_thunk.r(ptr %c.var), !dbg !19 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_18.2.temp), !dbg !15 // CHECK:STDOUT: call void @_Z9TakeCRRefRK1C10ForceThunk.carbon_thunk._(ptr @C.val.loc20_20.3), !dbg !20 @@ -348,9 +348,9 @@ fn GetRefs() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc26_23.2.temp), !dbg !18 // CHECK:STDOUT: store i32 %.loc26_23.1, ptr %.loc26_23.2.temp, align 4, !dbg !18 // CHECK:STDOUT: call void @_Z15TakeConstIntRefRKi10ForceThunk.carbon_thunk._(ptr %.loc26_23.2.temp), !dbg !24 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %.loc26_23.2.temp), !dbg !18 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %_.var), !dbg !17 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !16 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %.loc26_23.2.temp), !dbg !18 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %_.var), !dbg !17 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !16 // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -364,7 +364,7 @@ fn GetRefs() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Default.e22dc72f1b535a46.Core:C.Cpp"(ptr sret({}) %return) #2 !dbg !29 { +// CHECK:STDOUT: define void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr sret({}) %return) #2 !dbg !29 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN1CC1Ev.carbon_thunk.(ptr %return), !dbg !33 // CHECK:STDOUT: ret void, !dbg !33 @@ -437,7 +437,7 @@ fn GetRefs() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !38 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } @@ -446,8 +446,8 @@ fn GetRefs() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #4 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.218d57fc466b073f:DefaultOrUnformed.Core.1afc54683c199dfb"(ptr sret({}) %return) #0 !dbg !45 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.e22dc72f1b535a46.Core:C.Cpp"(ptr %return), !dbg !47 +// CHECK:STDOUT: define linkonce_odr void @"_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c"(ptr sret({}) %return) #0 !dbg !45 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp"(ptr %return), !dbg !47 // CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -464,7 +464,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.1fa36cd3e044ac37:core.Destroy.Core", { 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.5e27612b9dd31a14: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 } @@ -507,7 +507,7 @@ fn GetRefs() { // CHECK:STDOUT: !26 = !{!27, !27, i64 0} // CHECK:STDOUT: !27 = !{!"p1 _ZTS1C", !28, i64 0} // CHECK:STDOUT: !28 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.e22dc72f1b535a46.Core:C.Cpp", scope: null, file: !6, line: 5, type: !30, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.dc3dd9c349162a91.Core:C.Cpp", scope: null, file: !6, line: 5, type: !30, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !30 = !DISubroutineType(types: !31) // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -516,14 +516,14 @@ fn GetRefs() { // CHECK:STDOUT: !35 = !{!36, !36, i64 0} // CHECK:STDOUT: !36 = !{!"p1 int", !28, i64 0} // CHECK:STDOUT: !37 = !{i64 4} -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !6, line: 26, type: !39, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !42) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !6, line: 26, type: !39, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !42) // CHECK:STDOUT: !39 = !DISubroutineType(types: !40) // CHECK:STDOUT: !40 = !{null, !41} // CHECK:STDOUT: !41 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !42 = !{!43} // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !38, type: !41) // CHECK:STDOUT: !44 = !DILocation(line: 26, column: 23, scope: !38) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.218d57fc466b073f:DefaultOrUnformed.Core.1afc54683c199dfb", scope: null, file: !46, line: 9, type: !30, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.51f3fb62cb986374:DefaultOrUnformed.Core.67b28f83c7cfd60c", scope: null, file: !46, line: 9, type: !30, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !46 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") // CHECK:STDOUT: !47 = !DILocation(line: 9, column: 28, scope: !45) // CHECK:STDOUT: !48 = !DILocation(line: 9, column: 21, scope: !45) diff --git a/toolchain/lower/testdata/interop/cpp/return.carbon b/toolchain/lower/testdata/interop/cpp/return.carbon index df6197b350c7..d142f6fa5d65 100644 --- a/toolchain/lower/testdata/interop/cpp/return.carbon +++ b/toolchain/lower/testdata/interop/cpp/return.carbon @@ -263,33 +263,33 @@ fn Call(x: Cpp.D) -> Cpp.C { // CHECK:STDOUT: %ReturnI32.call = call i32 @_Z9ReturnI32v(), !dbg !76 // CHECK:STDOUT: %ReturnI64.call = call i64 @_Z9ReturnI64v(), !dbg !77 // 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 !78 -// CHECK:STDOUT: call void @"_COp.0166e16952428d48:core.Destroy.Core"(ptr %.loc25_35.1.temp), !dbg !73 -// CHECK:STDOUT: call void @"_COp.57082aeb2e97180b:core.Destroy.Core"(ptr %.loc24_32.1.temp), !dbg !72 -// CHECK:STDOUT: call void @"_COp.05392eeae6591ae7:core.Destroy.Core"(ptr %.loc20_35.1.temp), !dbg !71 -// CHECK:STDOUT: call void @"_COp.31853ecf8c1ccb9b:core.Destroy.Core"(ptr %.loc19_32.1.temp), !dbg !70 +// CHECK:STDOUT: call void @"_COp.eb6702152d47e49f:core.Destroy.Core"(ptr %.loc25_35.1.temp), !dbg !73 +// CHECK:STDOUT: call void @"_COp.578b3934f85dbca6:core.Destroy.Core"(ptr %.loc24_32.1.temp), !dbg !72 +// CHECK:STDOUT: call void @"_COp.6fd0ed7da7a22bb4:core.Destroy.Core"(ptr %.loc20_35.1.temp), !dbg !71 +// CHECK:STDOUT: call void @"_COp.c3b9dc9c7e0d5d3d:core.Destroy.Core"(ptr %.loc19_32.1.temp), !dbg !70 // CHECK:STDOUT: ret void, !dbg !79 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.0166e16952428d48:core.Destroy.Core"(ptr %self) #0 !dbg !80 { +// CHECK:STDOUT: define weak_odr void @"_COp.eb6702152d47e49f:core.Destroy.Core"(ptr %self) #0 !dbg !80 { // 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.57082aeb2e97180b:core.Destroy.Core"(ptr %self) #0 !dbg !86 { +// CHECK:STDOUT: define weak_odr void @"_COp.578b3934f85dbca6:core.Destroy.Core"(ptr %self) #0 !dbg !86 { // 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.05392eeae6591ae7:core.Destroy.Core"(ptr %self) #0 !dbg !92 { +// CHECK:STDOUT: define weak_odr void @"_COp.6fd0ed7da7a22bb4:core.Destroy.Core"(ptr %self) #0 !dbg !92 { // 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.31853ecf8c1ccb9b:core.Destroy.Core"(ptr %self) #0 !dbg !98 { +// CHECK:STDOUT: define weak_odr void @"_COp.c3b9dc9c7e0d5d3d:core.Destroy.Core"(ptr %self) #0 !dbg !98 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !103 // CHECK:STDOUT: } @@ -334,37 +334,37 @@ fn Call(x: Cpp.D) -> Cpp.C { // CHECK:STDOUT: %.loc43_53 = load i32, ptr %my_i32.var, align 4, !dbg !127 // CHECK:STDOUT: %.loc43_61 = load i64, ptr %my_i64.var, align 8, !dbg !128 // 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 !129 -// CHECK:STDOUT: call void @"_COp.70c270bcca3b30d3:core.Destroy.Core"(ptr %my_i64.var), !dbg !112 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %my_i32.var), !dbg !111 -// CHECK:STDOUT: call void @"_COp.0166e16952428d48:core.Destroy.Core"(ptr %my_i16.var), !dbg !110 -// CHECK:STDOUT: call void @"_COp.57082aeb2e97180b:core.Destroy.Core"(ptr %my_i8.var), !dbg !109 -// CHECK:STDOUT: call void @"_COp.d82cc23ffbd4feeb:core.Destroy.Core"(ptr %my_u64.var), !dbg !108 -// CHECK:STDOUT: call void @"_COp.6b76bad2b4c50899:core.Destroy.Core"(ptr %my_u32.var), !dbg !107 -// CHECK:STDOUT: call void @"_COp.05392eeae6591ae7:core.Destroy.Core"(ptr %my_u16.var), !dbg !106 -// CHECK:STDOUT: call void @"_COp.31853ecf8c1ccb9b:core.Destroy.Core"(ptr %my_u8.var), !dbg !105 +// CHECK:STDOUT: call void @"_COp.fbec46972c1998a0:core.Destroy.Core"(ptr %my_i64.var), !dbg !112 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %my_i32.var), !dbg !111 +// CHECK:STDOUT: call void @"_COp.eb6702152d47e49f:core.Destroy.Core"(ptr %my_i16.var), !dbg !110 +// CHECK:STDOUT: call void @"_COp.578b3934f85dbca6:core.Destroy.Core"(ptr %my_i8.var), !dbg !109 +// CHECK:STDOUT: call void @"_COp.df57f49075d1fe6b:core.Destroy.Core"(ptr %my_u64.var), !dbg !108 +// CHECK:STDOUT: call void @"_COp.45ecfb19e8cc5ab3:core.Destroy.Core"(ptr %my_u32.var), !dbg !107 +// CHECK:STDOUT: call void @"_COp.6fd0ed7da7a22bb4:core.Destroy.Core"(ptr %my_u16.var), !dbg !106 +// CHECK:STDOUT: call void @"_COp.c3b9dc9c7e0d5d3d:core.Destroy.Core"(ptr %my_u8.var), !dbg !105 // CHECK:STDOUT: ret void, !dbg !130 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70c270bcca3b30d3:core.Destroy.Core"(ptr %self) #0 !dbg !131 { +// CHECK:STDOUT: define weak_odr void @"_COp.fbec46972c1998a0:core.Destroy.Core"(ptr %self) #0 !dbg !131 { // 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.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !137 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !137 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !142 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d82cc23ffbd4feeb:core.Destroy.Core"(ptr %self) #0 !dbg !143 { +// CHECK:STDOUT: define weak_odr void @"_COp.df57f49075d1fe6b:core.Destroy.Core"(ptr %self) #0 !dbg !143 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !148 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.6b76bad2b4c50899:core.Destroy.Core"(ptr %self) #0 !dbg !149 { +// CHECK:STDOUT: define weak_odr void @"_COp.45ecfb19e8cc5ab3:core.Destroy.Core"(ptr %self) #0 !dbg !149 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !154 // CHECK:STDOUT: } @@ -472,25 +472,25 @@ fn Call(x: Cpp.D) -> Cpp.C { // CHECK:STDOUT: !77 = !DILocation(line: 27, column: 21, scope: !67) // CHECK:STDOUT: !78 = !DILocation(line: 29, column: 3, scope: !67) // CHECK:STDOUT: !79 = !DILocation(line: 18, column: 1, scope: !67) -// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0166e16952428d48:core.Destroy.Core", scope: null, file: !6, line: 25, type: !81, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !83) +// CHECK:STDOUT: !80 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eb6702152d47e49f:core.Destroy.Core", scope: null, file: !6, line: 25, type: !81, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !83) // CHECK:STDOUT: !81 = !DISubroutineType(types: !82) // CHECK:STDOUT: !82 = !{null, !52} // CHECK:STDOUT: !83 = !{!84} // CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !80, type: !52) // CHECK:STDOUT: !85 = !DILocation(line: 25, column: 21, scope: !80) -// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Op", linkageName: "_COp.57082aeb2e97180b:core.Destroy.Core", scope: null, file: !6, line: 24, type: !87, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !89) +// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "Op", linkageName: "_COp.578b3934f85dbca6:core.Destroy.Core", scope: null, file: !6, line: 24, type: !87, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !89) // CHECK:STDOUT: !87 = !DISubroutineType(types: !88) // CHECK:STDOUT: !88 = !{null, !46} // CHECK:STDOUT: !89 = !{!90} // CHECK:STDOUT: !90 = !DILocalVariable(arg: 1, scope: !86, type: !46) // CHECK:STDOUT: !91 = !DILocation(line: 24, column: 19, scope: !86) -// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "Op", linkageName: "_COp.05392eeae6591ae7:core.Destroy.Core", scope: null, file: !6, line: 20, type: !93, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !95) +// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6fd0ed7da7a22bb4:core.Destroy.Core", scope: null, file: !6, line: 20, type: !93, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !95) // CHECK:STDOUT: !93 = !DISubroutineType(types: !94) // CHECK:STDOUT: !94 = !{null, !24} // CHECK:STDOUT: !95 = !{!96} // CHECK:STDOUT: !96 = !DILocalVariable(arg: 1, scope: !92, type: !24) // CHECK:STDOUT: !97 = !DILocation(line: 20, column: 21, scope: !92) -// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "Op", linkageName: "_COp.31853ecf8c1ccb9b:core.Destroy.Core", scope: null, file: !6, line: 19, type: !99, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !101) +// CHECK:STDOUT: !98 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c3b9dc9c7e0d5d3d:core.Destroy.Core", scope: null, file: !6, line: 19, type: !99, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !101) // CHECK:STDOUT: !99 = !DISubroutineType(types: !100) // CHECK:STDOUT: !100 = !{null, !14} // CHECK:STDOUT: !101 = !{!102} @@ -523,25 +523,25 @@ fn Call(x: Cpp.D) -> Cpp.C { // CHECK:STDOUT: !128 = !DILocation(line: 43, column: 61, scope: !104) // CHECK:STDOUT: !129 = !DILocation(line: 43, column: 3, scope: !104) // CHECK:STDOUT: !130 = !DILocation(line: 32, column: 1, scope: !104) -// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70c270bcca3b30d3:core.Destroy.Core", scope: null, file: !6, line: 41, type: !132, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !134) +// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fbec46972c1998a0:core.Destroy.Core", scope: null, file: !6, line: 41, type: !132, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !134) // CHECK:STDOUT: !132 = !DISubroutineType(types: !133) // CHECK:STDOUT: !133 = !{null, !64} // CHECK:STDOUT: !134 = !{!135} // CHECK:STDOUT: !135 = !DILocalVariable(arg: 1, scope: !131, type: !64) // CHECK:STDOUT: !136 = !DILocation(line: 41, column: 3, scope: !131) -// CHECK:STDOUT: !137 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !6, line: 40, type: !138, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !140) +// CHECK:STDOUT: !137 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !6, line: 40, type: !138, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !140) // CHECK:STDOUT: !138 = !DISubroutineType(types: !139) // CHECK:STDOUT: !139 = !{null, !58} // CHECK:STDOUT: !140 = !{!141} // CHECK:STDOUT: !141 = !DILocalVariable(arg: 1, scope: !137, type: !58) // CHECK:STDOUT: !142 = !DILocation(line: 40, column: 3, scope: !137) -// CHECK:STDOUT: !143 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d82cc23ffbd4feeb:core.Destroy.Core", scope: null, file: !6, line: 36, type: !144, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !146) +// CHECK:STDOUT: !143 = distinct !DISubprogram(name: "Op", linkageName: "_COp.df57f49075d1fe6b:core.Destroy.Core", scope: null, file: !6, line: 36, type: !144, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !146) // CHECK:STDOUT: !144 = !DISubroutineType(types: !145) // CHECK:STDOUT: !145 = !{null, !40} // CHECK:STDOUT: !146 = !{!147} // CHECK:STDOUT: !147 = !DILocalVariable(arg: 1, scope: !143, type: !40) // CHECK:STDOUT: !148 = !DILocation(line: 36, column: 3, scope: !143) -// CHECK:STDOUT: !149 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6b76bad2b4c50899:core.Destroy.Core", scope: null, file: !6, line: 35, type: !150, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !152) +// CHECK:STDOUT: !149 = distinct !DISubprogram(name: "Op", linkageName: "_COp.45ecfb19e8cc5ab3:core.Destroy.Core", scope: null, file: !6, line: 35, type: !150, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !152) // CHECK:STDOUT: !150 = !DISubroutineType(types: !151) // CHECK:STDOUT: !151 = !{null, !34} // CHECK:STDOUT: !152 = !{!153} diff --git a/toolchain/lower/testdata/interop/cpp/reverse/class.carbon b/toolchain/lower/testdata/interop/cpp/reverse/class.carbon index f16ea822835c..59ce9543ffb4 100644 --- a/toolchain/lower/testdata/interop/cpp/reverse/class.carbon +++ b/toolchain/lower/testdata/interop/cpp/reverse/class.carbon @@ -272,24 +272,24 @@ fn G() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define void @"_C__destroy_thunk:thunk.A.Main"(ptr %self) #4 !dbg !18 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.ac7d25d81711af23:core.Destroy.Core"(ptr %self), !dbg !24 +// CHECK:STDOUT: call void @"_COp.68011419f123494e:core.Destroy.Core"(ptr %self), !dbg !24 // CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #5 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #5 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.dc0c17d58493b612:core.Destroy.Core"(ptr %self) #5 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.b0e8b846ec8794f3:core.Destroy.Core"(ptr %self) #5 !dbg !32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ac7d25d81711af23:core.Destroy.Core"(ptr %self) #5 !dbg !36 { +// CHECK:STDOUT: define weak_odr void @"_COp.68011419f123494e:core.Destroy.Core"(ptr %self) #5 !dbg !36 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } @@ -305,18 +305,18 @@ fn G() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define void @"_C__destroy_thunk:thunk.B.Main"(ptr %self) #4 !dbg !44 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.07f54489d6d26b29:core.Destroy.Core"(ptr %self), !dbg !47 +// CHECK:STDOUT: call void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %self), !dbg !47 // CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8ba4e8b29fabd0b2:core.Destroy.Core"(ptr %self) #5 !dbg !48 { +// CHECK:STDOUT: define weak_odr void @"_COp.470dcacdfb83e588:core.Destroy.Core"(ptr %self) #5 !dbg !48 { // 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.07f54489d6d26b29:core.Destroy.Core"(ptr %self) #5 !dbg !52 { +// CHECK:STDOUT: define weak_odr void @"_COp.6c3865e9cbd9f6de:core.Destroy.Core"(ptr %self) #5 !dbg !52 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !55 // CHECK:STDOUT: } @@ -332,18 +332,18 @@ fn G() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define void @"_C__destroy_thunk:thunk.C.Main"(ptr %self) #4 !dbg !60 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %self), !dbg !63 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self), !dbg !63 // CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ee5895450fbd172f:core.Destroy.Core"(ptr %self) #5 !dbg !64 { +// CHECK:STDOUT: define weak_odr void @"_COp.67ca81f926811f5a:core.Destroy.Core"(ptr %self) #5 !dbg !64 { // 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.907c496eccf2294c:core.Destroy.Core"(ptr %self) #5 !dbg !68 { +// CHECK:STDOUT: define weak_odr void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self) #5 !dbg !68 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !71 // CHECK:STDOUT: } @@ -395,18 +395,18 @@ fn G() { // CHECK:STDOUT: !22 = !{!23} // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) // CHECK:STDOUT: !24 = !DILocation(line: 6, column: 1, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !6, line: 6, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !6, line: 6, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) // CHECK:STDOUT: !26 = !DISubroutineType(types: !27) // CHECK:STDOUT: !27 = !{null, !28} // CHECK:STDOUT: !28 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !29 = !{!30} // CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !25, type: !28) // CHECK:STDOUT: !31 = !DILocation(line: 6, column: 1, scope: !25) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.dc0c17d58493b612:core.Destroy.Core", scope: null, file: !6, line: 6, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !33) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b0e8b846ec8794f3:core.Destroy.Core", scope: null, file: !6, line: 6, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !33) // CHECK:STDOUT: !33 = !{!34} // CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !21) // CHECK:STDOUT: !35 = !DILocation(line: 6, column: 1, scope: !32) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ac7d25d81711af23:core.Destroy.Core", scope: null, file: !6, line: 6, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !37) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.68011419f123494e:core.Destroy.Core", scope: null, file: !6, line: 6, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !37) // CHECK:STDOUT: !37 = !{!38} // CHECK:STDOUT: !38 = !DILocalVariable(arg: 1, scope: !36, type: !21) // CHECK:STDOUT: !39 = !DILocation(line: 6, column: 1, scope: !36) @@ -418,11 +418,11 @@ fn G() { // CHECK:STDOUT: !45 = !{!46} // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !44, type: !21) // CHECK:STDOUT: !47 = !DILocation(line: 11, column: 1, scope: !44) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ba4e8b29fabd0b2:core.Destroy.Core", scope: null, file: !6, line: 11, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !49) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Op", linkageName: "_COp.470dcacdfb83e588:core.Destroy.Core", scope: null, file: !6, line: 11, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !49) // CHECK:STDOUT: !49 = !{!50} // CHECK:STDOUT: !50 = !DILocalVariable(arg: 1, scope: !48, type: !21) // CHECK:STDOUT: !51 = !DILocation(line: 11, column: 1, scope: !48) -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.07f54489d6d26b29:core.Destroy.Core", scope: null, file: !6, line: 11, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !53) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6c3865e9cbd9f6de:core.Destroy.Core", scope: null, file: !6, line: 11, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !53) // CHECK:STDOUT: !53 = !{!54} // CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !52, type: !21) // CHECK:STDOUT: !55 = !DILocation(line: 11, column: 1, scope: !52) @@ -434,11 +434,11 @@ fn G() { // CHECK:STDOUT: !61 = !{!62} // CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !60, type: !21) // CHECK:STDOUT: !63 = !DILocation(line: 16, column: 1, scope: !60) -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ee5895450fbd172f:core.Destroy.Core", scope: null, file: !6, line: 16, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !65) +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Op", linkageName: "_COp.67ca81f926811f5a:core.Destroy.Core", scope: null, file: !6, line: 16, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !65) // CHECK:STDOUT: !65 = !{!66} // CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !64, type: !21) // CHECK:STDOUT: !67 = !DILocation(line: 16, column: 1, scope: !64) -// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.907c496eccf2294c:core.Destroy.Core", scope: null, file: !6, line: 16, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !69) +// CHECK:STDOUT: !68 = distinct !DISubprogram(name: "Op", linkageName: "_COp.807eb4f2d3ed7e54:core.Destroy.Core", scope: null, file: !6, line: 16, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !69) // CHECK:STDOUT: !69 = !{!70} // CHECK:STDOUT: !70 = !DILocalVariable(arg: 1, scope: !68, type: !21) // CHECK:STDOUT: !71 = !DILocation(line: 16, column: 1, scope: !68) @@ -472,24 +472,24 @@ fn G() { // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define void @"_C__destroy_thunk:thunk.C.Main"(ptr %self) #1 !dbg !19 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %self), !dbg !25 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self), !dbg !25 // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #2 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #2 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.15b8ed913d10fa21:core.Destroy.Core"(ptr %self) #2 !dbg !33 { +// CHECK:STDOUT: define weak_odr void @"_COp.f30036b66b652106:core.Destroy.Core"(ptr %self) #2 !dbg !33 { // 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.907c496eccf2294c:core.Destroy.Core"(ptr %self) #2 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self) #2 !dbg !37 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } @@ -503,7 +503,7 @@ fn G() { // CHECK:STDOUT: %.loc19_29.6.b = getelementptr inbounds nuw { i32, i32 }, ptr %c.var, i32 0, i32 1, !dbg !45 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.loc19_3, i64 8, i1 false), !dbg !44 // CHECK:STDOUT: call void @_Z1FRN6Carbon1CE(ptr %c.var), !dbg !46 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %c.var), !dbg !44 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %c.var), !dbg !44 // CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -548,18 +548,18 @@ fn G() { // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) // CHECK:STDOUT: !25 = !DILocation(line: 6, column: 1, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !6, line: 6, type: !27, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !6, line: 6, type: !27, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) // CHECK:STDOUT: !27 = !DISubroutineType(types: !28) // CHECK:STDOUT: !28 = !{null, !29} // CHECK:STDOUT: !29 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !30 = !{!31} // CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !26, type: !29) // CHECK:STDOUT: !32 = !DILocation(line: 6, column: 1, scope: !26) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.15b8ed913d10fa21:core.Destroy.Core", scope: null, file: !6, line: 6, type: !20, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !34) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f30036b66b652106:core.Destroy.Core", scope: null, file: !6, line: 6, type: !20, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !34) // CHECK:STDOUT: !34 = !{!35} // CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !22) // CHECK:STDOUT: !36 = !DILocation(line: 6, column: 1, scope: !33) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.907c496eccf2294c:core.Destroy.Core", scope: null, file: !6, line: 6, type: !20, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !38) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.807eb4f2d3ed7e54:core.Destroy.Core", scope: null, file: !6, line: 6, type: !20, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !38) // CHECK:STDOUT: !38 = !{!39} // CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !22) // CHECK:STDOUT: !40 = !DILocation(line: 6, column: 1, scope: !37) diff --git a/toolchain/lower/testdata/interop/cpp/reverse/method.carbon b/toolchain/lower/testdata/interop/cpp/reverse/method.carbon index cf693ee2001a..9c4049034abe 100644 --- a/toolchain/lower/testdata/interop/cpp/reverse/method.carbon +++ b/toolchain/lower/testdata/interop/cpp/reverse/method.carbon @@ -118,12 +118,12 @@ fn CallCallF() { Cpp.CallF(); } // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define void @"_C__destroy_thunk:thunk.A.Main"(ptr %self) #5 !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.ac7d25d81711af23:core.Destroy.Core"(ptr %self), !dbg !24 +// CHECK:STDOUT: call void @"_COp.68011419f123494e:core.Destroy.Core"(ptr %self), !dbg !24 // CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ac7d25d81711af23:core.Destroy.Core"(ptr %self) #4 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.68011419f123494e:core.Destroy.Core"(ptr %self) #4 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } @@ -171,7 +171,7 @@ fn CallCallF() { Cpp.CallF(); } // CHECK:STDOUT: !22 = !{!23} // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !21, type: !17) // CHECK:STDOUT: !24 = !DILocation(line: 5, column: 1, scope: !21) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ac7d25d81711af23:core.Destroy.Core", scope: null, file: !6, line: 5, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !26) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.68011419f123494e:core.Destroy.Core", scope: null, file: !6, line: 5, type: !15, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !26) // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !17) // CHECK:STDOUT: !28 = !DILocation(line: 5, column: 1, scope: !25) @@ -238,12 +238,12 @@ fn CallCallF() { Cpp.CallF(); } // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define void @"_C__destroy_thunk:thunk.A.Main"(ptr %self) #5 !dbg !23 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.ac7d25d81711af23:core.Destroy.Core"(ptr %self), !dbg !28 +// CHECK:STDOUT: call void @"_COp.68011419f123494e:core.Destroy.Core"(ptr %self), !dbg !28 // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ac7d25d81711af23:core.Destroy.Core"(ptr %self) #4 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.68011419f123494e:core.Destroy.Core"(ptr %self) #4 !dbg !29 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } @@ -304,7 +304,7 @@ fn CallCallF() { Cpp.CallF(); } // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !23, type: !18) // CHECK:STDOUT: !28 = !DILocation(line: 5, column: 1, scope: !23) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ac7d25d81711af23:core.Destroy.Core", scope: null, file: !6, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.68011419f123494e:core.Destroy.Core", scope: null, file: !6, line: 5, type: !24, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) // CHECK:STDOUT: !30 = !{!31} // CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !18) // CHECK:STDOUT: !32 = !DILocation(line: 5, column: 1, scope: !29) @@ -349,12 +349,12 @@ fn CallCallF() { Cpp.CallF(); } // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind // CHECK:STDOUT: define void @"_C__destroy_thunk:thunk.A.Main"(ptr %self) #3 !dbg !15 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.ac7d25d81711af23:core.Destroy.Core"(ptr %self), !dbg !21 +// CHECK:STDOUT: call void @"_COp.68011419f123494e:core.Destroy.Core"(ptr %self), !dbg !21 // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ac7d25d81711af23:core.Destroy.Core"(ptr %self) #2 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.68011419f123494e:core.Destroy.Core"(ptr %self) #2 !dbg !22 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } @@ -404,7 +404,7 @@ fn CallCallF() { Cpp.CallF(); } // CHECK:STDOUT: !19 = !{!20} // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !18) // CHECK:STDOUT: !21 = !DILocation(line: 5, column: 1, scope: !15) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ac7d25d81711af23:core.Destroy.Core", scope: null, file: !6, line: 5, type: !16, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !23) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.68011419f123494e:core.Destroy.Core", scope: null, file: !6, line: 5, type: !16, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !23) // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !22, type: !18) // CHECK:STDOUT: !25 = !DILocation(line: 5, column: 1, scope: !22) diff --git a/toolchain/lower/testdata/interop/cpp/std_initializer_list.carbon b/toolchain/lower/testdata/interop/cpp/std_initializer_list.carbon index 76e4983f8ea8..d69a020959fb 100644 --- a/toolchain/lower/testdata/interop/cpp/std_initializer_list.carbon +++ b/toolchain/lower/testdata/interop/cpp/std_initializer_list.carbon @@ -146,18 +146,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 !14 // 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 !14 // CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !16 -// CHECK:STDOUT: call void @"_COp.56bbd9491002a1aa:core.Destroy.Core"(ptr @array), !dbg !15 +// CHECK:STDOUT: call void @"_COp.412b5e0eb082e888:core.Destroy.Core"(ptr @array), !dbg !15 // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // 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.56bbd9491002a1aa:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.412b5e0eb082e888:core.Destroy.Core"(ptr %self) #0 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } @@ -180,7 +180,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 !34 // CHECK:STDOUT: call void @_ZN11vector_likeC1ESt16initializer_listIiE.carbon_thunk._(ptr %.loc18_36.2.temp, ptr %_.var), !dbg !33 // CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !35 -// CHECK:STDOUT: call void @"_COp.56bbd9491002a1aa:core.Destroy.Core"(ptr @array), !dbg !34 +// CHECK:STDOUT: call void @"_COp.412b5e0eb082e888:core.Destroy.Core"(ptr @array), !dbg !34 // CHECK:STDOUT: call void @_ZN11vector_likeD2Ev(ptr %_.var), !dbg !33 // CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } @@ -232,7 +232,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 !46 // CHECK:STDOUT: store ptr %initializer_list.initializer_list.call.array.end, ptr %initializer_list.initializer_list.call.init_list.end, align 8, !dbg !46 // CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !48 -// CHECK:STDOUT: call void @"_COp.87f8b42e7b26a00a:core.Destroy.Core"(ptr %.loc23_69.17.temp), !dbg !47 +// CHECK:STDOUT: call void @"_COp.8fea30d0bd4d6e84:core.Destroy.Core"(ptr %.loc23_69.17.temp), !dbg !47 // CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -256,7 +256,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.87f8b42e7b26a00a:core.Destroy.Core"(ptr %self) #0 !dbg !52 { +// CHECK:STDOUT: define weak_odr void @"_COp.8fea30d0bd4d6e84:core.Destroy.Core"(ptr %self) #0 !dbg !52 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !55 // CHECK:STDOUT: } @@ -321,14 +321,14 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: !15 = !DILocation(line: 13, column: 42, scope: !11) // CHECK:STDOUT: !16 = !DILocation(line: 14, column: 3, scope: !11) // CHECK:STDOUT: !17 = !DILocation(line: 12, column: 1, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !6, line: 13, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !22) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !6, line: 13, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !22) // CHECK:STDOUT: !19 = !DISubroutineType(types: !20) // CHECK:STDOUT: !20 = !{null, !21} // CHECK:STDOUT: !21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !22 = !{!23} // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) // CHECK:STDOUT: !24 = !DILocation(line: 13, column: 42, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.56bbd9491002a1aa:core.Destroy.Core", scope: null, file: !6, line: 13, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.412b5e0eb082e888:core.Destroy.Core", scope: null, file: !6, line: 13, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) // CHECK:STDOUT: !26 = !DISubroutineType(types: !27) // CHECK:STDOUT: !27 = !{null, !28} // CHECK:STDOUT: !28 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -355,7 +355,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: !49 = !DILocation(line: 22, column: 1, scope: !45) // CHECK:STDOUT: !50 = !{!51, !51, i64 0} // CHECK:STDOUT: !51 = !{!"p1 _ZTS15nontrivial_dtor", !39, i64 0} -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.87f8b42e7b26a00a:core.Destroy.Core", scope: null, file: !6, line: 23, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !53) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8fea30d0bd4d6e84:core.Destroy.Core", scope: null, file: !6, line: 23, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !53) // CHECK:STDOUT: !53 = !{!54} // CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !52, type: !28) // CHECK:STDOUT: !55 = !DILocation(line: 23, column: 58, scope: !52) @@ -394,18 +394,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 !14 // CHECK:STDOUT: store i64 3, ptr %initializer_list.initializer_list.call.init_list.size, align 8, !dbg !14 // CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !16 -// CHECK:STDOUT: call void @"_COp.56bbd9491002a1aa:core.Destroy.Core"(ptr @array), !dbg !15 +// CHECK:STDOUT: call void @"_COp.412b5e0eb082e888:core.Destroy.Core"(ptr @array), !dbg !15 // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // 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.56bbd9491002a1aa:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.412b5e0eb082e888:core.Destroy.Core"(ptr %self) #0 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } @@ -428,7 +428,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: store i64 3, ptr %initializer_list.initializer_list.call.init_list.size, align 8, !dbg !34 // CHECK:STDOUT: call void @_ZN11vector_likeC1ESt16initializer_listIiE.carbon_thunk._(ptr %.loc18_36.2.temp, ptr %_.var), !dbg !33 // CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !35 -// CHECK:STDOUT: call void @"_COp.56bbd9491002a1aa:core.Destroy.Core"(ptr @array), !dbg !34 +// CHECK:STDOUT: call void @"_COp.412b5e0eb082e888:core.Destroy.Core"(ptr @array), !dbg !34 // CHECK:STDOUT: call void @_ZN11vector_likeD2Ev(ptr %_.var), !dbg !33 // CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } @@ -479,7 +479,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 !48 // CHECK:STDOUT: store i64 3, ptr %initializer_list.initializer_list.call.init_list.size, align 8, !dbg !48 // CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !50 -// CHECK:STDOUT: call void @"_COp.87f8b42e7b26a00a:core.Destroy.Core"(ptr %.loc23_69.17.temp), !dbg !49 +// CHECK:STDOUT: call void @"_COp.8fea30d0bd4d6e84:core.Destroy.Core"(ptr %.loc23_69.17.temp), !dbg !49 // CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -503,7 +503,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.87f8b42e7b26a00a:core.Destroy.Core"(ptr %self) #0 !dbg !54 { +// CHECK:STDOUT: define weak_odr void @"_COp.8fea30d0bd4d6e84:core.Destroy.Core"(ptr %self) #0 !dbg !54 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } @@ -568,14 +568,14 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: !15 = !DILocation(line: 13, column: 42, scope: !11) // CHECK:STDOUT: !16 = !DILocation(line: 14, column: 3, scope: !11) // CHECK:STDOUT: !17 = !DILocation(line: 12, column: 1, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !6, line: 13, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !22) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !6, line: 13, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !22) // CHECK:STDOUT: !19 = !DISubroutineType(types: !20) // CHECK:STDOUT: !20 = !{null, !21} // CHECK:STDOUT: !21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !22 = !{!23} // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) // CHECK:STDOUT: !24 = !DILocation(line: 13, column: 42, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.56bbd9491002a1aa:core.Destroy.Core", scope: null, file: !6, line: 13, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.412b5e0eb082e888:core.Destroy.Core", scope: null, file: !6, line: 13, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) // CHECK:STDOUT: !26 = !DISubroutineType(types: !27) // CHECK:STDOUT: !27 = !{null, !28} // CHECK:STDOUT: !28 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -604,7 +604,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: !51 = !DILocation(line: 22, column: 1, scope: !47) // CHECK:STDOUT: !52 = !{!53, !53, i64 0} // CHECK:STDOUT: !53 = !{!"p1 _ZTS15nontrivial_dtor", !39, i64 0} -// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.87f8b42e7b26a00a:core.Destroy.Core", scope: null, file: !6, line: 23, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !55) +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8fea30d0bd4d6e84:core.Destroy.Core", scope: null, file: !6, line: 23, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !55) // CHECK:STDOUT: !55 = !{!56} // CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !54, type: !28) // CHECK:STDOUT: !57 = !DILocation(line: 23, column: 58, scope: !54) diff --git a/toolchain/lower/testdata/interop/cpp/thunks.carbon b/toolchain/lower/testdata/interop/cpp/thunks.carbon index 4600e6214367..c331ef83bf37 100644 --- a/toolchain/lower/testdata/interop/cpp/thunks.carbon +++ b/toolchain/lower/testdata/interop/cpp/thunks.carbon @@ -127,14 +127,14 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Copy.701313661dc9b6bf.Core:NeedThunk.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !23 { +// CHECK:STDOUT: define void @"_COp:thunk:Copy.60e3c6e2415a2ad6.Core:NeedThunk.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN9NeedThunkC1ERKS_.carbon_thunk._(ptr %self, ptr %return), !dbg !29 // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Destroy.65bae3c5c999c45d.Core:NeedThunk.Cpp"(ptr %self) #2 !dbg !30 { +// CHECK:STDOUT: define void @"_COp:thunk:Destroy.092ad14c7174f642.Core:NeedThunk.Cpp"(ptr %self) #2 !dbg !30 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } @@ -180,14 +180,14 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: !20 = !{!21, !21, i64 0} // CHECK:STDOUT: !21 = !{!"p1 _ZTS9NeedThunk", !22, i64 0} // CHECK:STDOUT: !22 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.701313661dc9b6bf.Core:NeedThunk.Cpp", scope: null, file: !24, line: 4, type: !25, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !27) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.60e3c6e2415a2ad6.Core:NeedThunk.Cpp", scope: null, file: !24, line: 4, type: !25, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !27) // CHECK:STDOUT: !24 = !DIFile(filename: "./need_thunk.h", directory: "") // CHECK:STDOUT: !25 = !DISubroutineType(types: !26) // CHECK:STDOUT: !26 = !{!14, !14} // CHECK:STDOUT: !27 = !{!28} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !23, type: !14) // CHECK:STDOUT: !29 = !DILocation(line: 4, column: 3, scope: !23) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Destroy.65bae3c5c999c45d.Core:NeedThunk.Cpp", scope: null, file: !24, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !31) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Destroy.092ad14c7174f642.Core:NeedThunk.Cpp", scope: null, file: !24, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !31) // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !14) // CHECK:STDOUT: !33 = !DILocation(line: 5, column: 3, scope: !30) @@ -228,7 +228,7 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Copy.b478b4410958a2a4.Core:Box.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !26 { +// CHECK:STDOUT: define void @"_COp:thunk:Copy.c0735c73762b4d1c.Core:Box.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN3BoxI1AEC1ERKS1_.carbon_thunk._(ptr %self, ptr %return), !dbg !32 // CHECK:STDOUT: ret void, !dbg !32 @@ -248,7 +248,7 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Copy.accff7ae190285b7.Core:Box.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !35 { +// CHECK:STDOUT: define void @"_COp:thunk:Copy.2c1dd62357f2b914.Core:Box.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !35 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN3BoxI1BEC1ERKS1_.carbon_thunk._(ptr %self, ptr %return), !dbg !38 // CHECK:STDOUT: ret void, !dbg !38 @@ -307,7 +307,7 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: !23 = !{!24, !24, i64 0} // CHECK:STDOUT: !24 = !{!"p1 _ZTS3BoxI1AE", !25, i64 0} // CHECK:STDOUT: !25 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.b478b4410958a2a4.Core:Box.Cpp", scope: null, file: !27, line: 8, type: !28, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.c0735c73762b4d1c.Core:Box.Cpp", scope: null, file: !27, line: 8, type: !28, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) // CHECK:STDOUT: !27 = !DIFile(filename: "./box.h", directory: "") // CHECK:STDOUT: !28 = !DISubroutineType(types: !29) // CHECK:STDOUT: !29 = !{!14, !14} @@ -316,7 +316,7 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: !32 = !DILocation(line: 8, column: 3, scope: !26) // CHECK:STDOUT: !33 = !{!34, !34, i64 0} // CHECK:STDOUT: !34 = !{!"p1 _ZTS3BoxI1BE", !25, i64 0} -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.accff7ae190285b7.Core:Box.Cpp", scope: null, file: !27, line: 8, type: !28, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.2c1dd62357f2b914.Core:Box.Cpp", scope: null, file: !27, line: 8, type: !28, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) // CHECK:STDOUT: !36 = !{!37} // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !14) // CHECK:STDOUT: !38 = !DILocation(line: 8, column: 3, scope: !35) @@ -361,7 +361,7 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Copy.e7718e93fc2b984e.Core:Collide.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !26 { +// CHECK:STDOUT: define void @"_COp:thunk:Copy.9e522bb4dbf82e5c.Core:Collide.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN7CollideC1ERKS_.carbon_thunk._(ptr %self, ptr %return), !dbg !32 // CHECK:STDOUT: ret void, !dbg !32 @@ -381,7 +381,7 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Copy.5ea391f5d7c54e11.Core:Collide..Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !35 { +// CHECK:STDOUT: define void @"_COp:thunk:Copy.d1fe27f3241437fa.Core:Collide..Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !35 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN12_GLOBAL__N_17CollideC1ERKS0_.carbon_thunk._(ptr %self, ptr %return), !dbg !38 // CHECK:STDOUT: ret void, !dbg !38 @@ -469,7 +469,7 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: !23 = !{!24, !24, i64 0} // CHECK:STDOUT: !24 = !{!"p1 _ZTS7Collide", !25, i64 0} // CHECK:STDOUT: !25 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.e7718e93fc2b984e.Core:Collide.Cpp", scope: null, file: !27, line: 17, type: !28, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.9e522bb4dbf82e5c.Core:Collide.Cpp", scope: null, file: !27, line: 17, type: !28, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) // CHECK:STDOUT: !27 = !DIFile(filename: "./anonymous_namespace_collision.h", directory: "") // CHECK:STDOUT: !28 = !DISubroutineType(types: !29) // CHECK:STDOUT: !29 = !{!14, !14} @@ -478,7 +478,7 @@ fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { // CHECK:STDOUT: !32 = !DILocation(line: 17, column: 3, scope: !26) // CHECK:STDOUT: !33 = !{!34, !34, i64 0} // CHECK:STDOUT: !34 = !{!"p1 _ZTSN12_GLOBAL__N_17CollideE", !25, i64 0} -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.5ea391f5d7c54e11.Core:Collide..Cpp", scope: null, file: !27, line: 8, type: !28, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.d1fe27f3241437fa.Core:Collide..Cpp", scope: null, file: !27, line: 8, type: !28, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) // CHECK:STDOUT: !36 = !{!37} // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !14) // CHECK:STDOUT: !38 = !DILocation(line: 8, column: 3, scope: !35) diff --git a/toolchain/lower/testdata/interop/cpp/void.carbon b/toolchain/lower/testdata/interop/cpp/void.carbon index 395ca0c30ae7..88ac0d4fa321 100644 --- a/toolchain/lower/testdata/interop/cpp/void.carbon +++ b/toolchain/lower/testdata/interop/cpp/void.carbon @@ -65,25 +65,25 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: define void @_CPassVoidPtr.Main(ptr %a) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc7_21.2.temp = alloca ptr, align 8, !dbg !17 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.e2eb6345a0817262"(ptr %a), !dbg !17 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.52f71e11dc373f9a"(ptr %a), !dbg !17 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_21.2.temp), !dbg !17 // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc7_21.2.temp, align 8, !dbg !17 // CHECK:STDOUT: %.loc7_21.4 = load ptr, ptr %.loc7_21.2.temp, align 8, !dbg !17 // CHECK:STDOUT: call void @_Z13take_void_ptrPv(ptr %.loc7_21.4), !dbg !18 -// CHECK:STDOUT: call void @"_COp.ef40c1ad0063352d:core.Destroy.Core"(ptr %.loc7_21.2.temp), !dbg !17 +// CHECK:STDOUT: call void @"_COp.801be0c493a24c71:core.Destroy.Core"(ptr %.loc7_21.2.temp), !dbg !17 // CHECK:STDOUT: ret void, !dbg !19 // 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.3e109d927282ba62:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.125695b29f2cf97c:core.Destroy.Core"(ptr %self) #0 !dbg !20 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ef40c1ad0063352d:core.Destroy.Core"(ptr %self) #0 !dbg !24 { +// CHECK:STDOUT: define weak_odr void @"_COp.801be0c493a24c71:core.Destroy.Core"(ptr %self) #0 !dbg !24 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } @@ -92,12 +92,12 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: define void @_CPassIntPtr.Main(ptr %a) #0 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc11_21.2.temp = alloca ptr, align 8, !dbg !31 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.92bc13198414a0a5"(ptr %a), !dbg !31 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.ed3bde3932287ced"(ptr %a), !dbg !31 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_21.2.temp), !dbg !31 // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc11_21.2.temp, align 8, !dbg !31 // CHECK:STDOUT: %.loc11_21.4 = load ptr, ptr %.loc11_21.2.temp, align 8, !dbg !31 // CHECK:STDOUT: call void @_Z13take_void_ptrPv(ptr %.loc11_21.4), !dbg !32 -// CHECK:STDOUT: call void @"_COp.ef40c1ad0063352d:core.Destroy.Core"(ptr %.loc11_21.2.temp), !dbg !31 +// CHECK:STDOUT: call void @"_COp.801be0c493a24c71:core.Destroy.Core"(ptr %.loc11_21.2.temp), !dbg !31 // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -105,25 +105,25 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: define void @_CPassIntPtrToConstVoidPtr.Main(ptr %a) #0 !dbg !34 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc15_27.2.temp = alloca ptr, align 8, !dbg !37 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.e8abce1df9e7383b"(ptr %a), !dbg !37 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.0dc2e35b064d71e9"(ptr %a), !dbg !37 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc15_27.2.temp), !dbg !37 // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc15_27.2.temp, align 8, !dbg !37 // CHECK:STDOUT: %.loc15_27.4 = load ptr, ptr %.loc15_27.2.temp, align 8, !dbg !37 // CHECK:STDOUT: call void @_Z19take_const_void_ptrPKv(ptr %.loc15_27.4), !dbg !38 -// CHECK:STDOUT: call void @"_COp.ded630241aa40147:core.Destroy.Core"(ptr %.loc15_27.2.temp), !dbg !37 +// CHECK:STDOUT: call void @"_COp.d7b9c2d58a39f2df:core.Destroy.Core"(ptr %.loc15_27.2.temp), !dbg !37 // CHECK:STDOUT: ret void, !dbg !39 // 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.a704aa97233bbaa6:core.Destroy.Core"(ptr %self) #0 !dbg !40 { +// CHECK:STDOUT: define weak_odr void @"_COp.b8b38d4701ca7f8c:core.Destroy.Core"(ptr %self) #0 !dbg !40 { // 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.ded630241aa40147:core.Destroy.Core"(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define weak_odr void @"_COp.d7b9c2d58a39f2df:core.Destroy.Core"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } @@ -132,18 +132,18 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: define void @_CPassConstIntPtrToConstVoidPtr.Main(ptr %a) #0 !dbg !48 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc19_27.2.temp = alloca ptr, align 8, !dbg !51 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.e8abce1df9e7383b"(ptr %a), !dbg !51 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.0dc2e35b064d71e9"(ptr %a), !dbg !51 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_27.2.temp), !dbg !51 // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc19_27.2.temp, align 8, !dbg !51 // CHECK:STDOUT: %.loc19_27.4 = load ptr, ptr %.loc19_27.2.temp, align 8, !dbg !51 // CHECK:STDOUT: call void @_Z19take_const_void_ptrPKv(ptr %.loc19_27.4), !dbg !52 -// CHECK:STDOUT: call void @"_COp.ded630241aa40147:core.Destroy.Core"(ptr %.loc19_27.2.temp), !dbg !51 +// CHECK:STDOUT: call void @"_COp.d7b9c2d58a39f2df:core.Destroy.Core"(ptr %.loc19_27.2.temp), !dbg !51 // CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.e2eb6345a0817262"(ptr %self) #0 !dbg !54 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.a0c6f87edec590a2:OptionalAs.3a7c842b5a6bca51.Core.16518ec96f303f23"(ptr %self), !dbg !60 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.52f71e11dc373f9a"(ptr %self) #0 !dbg !54 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.258ff42e9fd73c28"(ptr %self), !dbg !60 // CHECK:STDOUT: ret ptr %1, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -151,87 +151,87 @@ 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.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.92bc13198414a0a5"(ptr %self) #0 !dbg !62 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.6bb01b3b35e74e55:OptionalAs.db69f09c2307f298.Core.5efd019d705c0b26"(ptr %self), !dbg !65 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.ed3bde3932287ced"(ptr %self) #0 !dbg !62 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.ff6ab29b5872c34c"(ptr %self), !dbg !65 // CHECK:STDOUT: ret ptr %1, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.e8abce1df9e7383b"(ptr %self) #0 !dbg !67 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.6bb01b3b35e74e55:OptionalAs.db69f09c2307f298.Core.ff5aadc808ace668"(ptr %self), !dbg !70 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.0dc2e35b064d71e9"(ptr %self) #0 !dbg !67 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.e316e6328124c0b3"(ptr %self), !dbg !70 // CHECK:STDOUT: ret ptr %1, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.a0c6f87edec590a2:OptionalAs.3a7c842b5a6bca51.Core.16518ec96f303f23"(ptr %self) #0 !dbg !72 { -// CHECK:STDOUT: %1 = call ptr @_CSome.Optional.Core.16518ec96f303f23(ptr %self), !dbg !75 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.258ff42e9fd73c28"(ptr %self) #0 !dbg !72 { +// CHECK:STDOUT: %1 = call ptr @_CSome.Optional.Core.258ff42e9fd73c28(ptr %self), !dbg !75 // CHECK:STDOUT: ret ptr %1, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.6bb01b3b35e74e55:OptionalAs.db69f09c2307f298.Core.5efd019d705c0b26"(ptr %self) #0 !dbg !77 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.ff6ab29b5872c34c"(ptr %self) #0 !dbg !77 { // CHECK:STDOUT: %temp = alloca ptr, align 8, !dbg !80 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !80 // CHECK:STDOUT: store ptr %self, ptr %temp, align 8, !dbg !80 // CHECK:STDOUT: %1 = load ptr, ptr %temp, align 8, !dbg !80 -// CHECK:STDOUT: %2 = call ptr @_CSome.Optional.Core.16518ec96f303f23(ptr %1), !dbg !81 +// CHECK:STDOUT: %2 = call ptr @_CSome.Optional.Core.258ff42e9fd73c28(ptr %1), !dbg !81 // CHECK:STDOUT: ret ptr %2, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.6bb01b3b35e74e55:OptionalAs.db69f09c2307f298.Core.ff5aadc808ace668"(ptr %self) #0 !dbg !83 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.e316e6328124c0b3"(ptr %self) #0 !dbg !83 { // CHECK:STDOUT: %temp = alloca ptr, align 8, !dbg !86 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !86 -// CHECK:STDOUT: %1 = call ptr @"_CConvert:thunk:ImplicitAs.9ec76089d908647a.Core:e8f8f92d3d08d149:ImplicitAs.37effc28ee11587a.Core.5e5386123d4b6287"(ptr %self), !dbg !86 +// CHECK:STDOUT: %1 = call ptr @"_CConvert:thunk:ImplicitAs.d035546bf1a99743.Core:e8f8f92d3d08d149:ImplicitAs.01c4a560c986e7d1.Core.84588f41d61dafba"(ptr %self), !dbg !86 // CHECK:STDOUT: store ptr %1, ptr %temp, align 8, !dbg !86 // CHECK:STDOUT: %2 = load ptr, ptr %temp, align 8, !dbg !86 -// CHECK:STDOUT: %3 = call ptr @_CSome.Optional.Core.15cb76de18318062(ptr %2), !dbg !87 +// CHECK:STDOUT: %3 = call ptr @_CSome.Optional.Core.e5c5bc28e9d686cf(ptr %2), !dbg !87 // CHECK:STDOUT: ret ptr %3, !dbg !88 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.16518ec96f303f23(ptr %value) #0 !dbg !89 { -// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.b38e2ff2a271a787"(ptr %value), !dbg !92 +// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.258ff42e9fd73c28(ptr %value) #0 !dbg !89 { +// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.7a595a06c724a271"(ptr %value), !dbg !92 // CHECK:STDOUT: ret ptr %1, !dbg !93 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert:thunk:ImplicitAs.9ec76089d908647a.Core:e8f8f92d3d08d149:ImplicitAs.37effc28ee11587a.Core.5e5386123d4b6287"(ptr %self) #3 !dbg !94 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert:thunk:ImplicitAs.d035546bf1a99743.Core:e8f8f92d3d08d149:ImplicitAs.01c4a560c986e7d1.Core.84588f41d61dafba"(ptr %self) #3 !dbg !94 { // CHECK:STDOUT: ret ptr %self, !dbg !98 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.15cb76de18318062(ptr %value) #0 !dbg !99 { -// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.430391d0f8a776a2"(ptr %value), !dbg !102 +// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.e5c5bc28e9d686cf(ptr %value) #0 !dbg !99 { +// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.8f1054b47505c137"(ptr %value), !dbg !102 // CHECK:STDOUT: ret ptr %1, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.b38e2ff2a271a787"(ptr %self) #0 !dbg !104 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.7a595a06c724a271"(ptr %self) #0 !dbg !104 { // CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !107 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !107 // CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !107 // CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !108 // CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !109 -// CHECK:STDOUT: call void @"_COp.3e109d927282ba62:core.Destroy.Core"(ptr %1), !dbg !107 +// CHECK:STDOUT: call void @"_COp.125695b29f2cf97c:core.Destroy.Core"(ptr %1), !dbg !107 // CHECK:STDOUT: ret ptr %2, !dbg !110 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.430391d0f8a776a2"(ptr %self) #0 !dbg !111 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.8f1054b47505c137"(ptr %self) #0 !dbg !111 { // CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !114 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !114 // CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !114 // CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !115 // CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !116 -// CHECK:STDOUT: call void @"_COp.a704aa97233bbaa6:core.Destroy.Core"(ptr %1), !dbg !114 +// CHECK:STDOUT: call void @"_COp.b8b38d4701ca7f8c:core.Destroy.Core"(ptr %1), !dbg !114 // CHECK:STDOUT: ret ptr %2, !dbg !117 // 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.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.e8abce1df9e7383b", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CSome.Optional.Core.16518ec96f303f23, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.0dc2e35b064d71e9", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CSome.Optional.Core.258ff42e9fd73c28, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // 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" } @@ -262,11 +262,11 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: !17 = !DILocation(line: 7, column: 21, scope: !11) // CHECK:STDOUT: !18 = !DILocation(line: 7, column: 3, scope: !11) // CHECK:STDOUT: !19 = !DILocation(line: 6, column: 1, scope: !11) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3e109d927282ba62:core.Destroy.Core", scope: null, file: !6, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !21) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.125695b29f2cf97c:core.Destroy.Core", scope: null, file: !6, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !21) // CHECK:STDOUT: !21 = !{!22} // CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !20, type: !14) // CHECK:STDOUT: !23 = !DILocation(line: 7, column: 21, scope: !20) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ef40c1ad0063352d:core.Destroy.Core", scope: null, file: !6, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.801be0c493a24c71:core.Destroy.Core", scope: null, file: !6, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) // CHECK:STDOUT: !25 = !{!26} // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !24, type: !14) // CHECK:STDOUT: !27 = !DILocation(line: 7, column: 21, scope: !24) @@ -282,11 +282,11 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: !37 = !DILocation(line: 15, column: 27, scope: !34) // CHECK:STDOUT: !38 = !DILocation(line: 15, column: 3, scope: !34) // CHECK:STDOUT: !39 = !DILocation(line: 14, column: 1, scope: !34) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a704aa97233bbaa6:core.Destroy.Core", scope: null, file: !6, line: 15, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b8b38d4701ca7f8c:core.Destroy.Core", scope: null, file: !6, line: 15, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) // CHECK:STDOUT: !41 = !{!42} // CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !40, type: !14) // CHECK:STDOUT: !43 = !DILocation(line: 15, column: 27, scope: !40) -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ded630241aa40147:core.Destroy.Core", scope: null, file: !6, line: 15, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d7b9c2d58a39f2df:core.Destroy.Core", scope: null, file: !6, line: 15, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) // CHECK:STDOUT: !45 = !{!46} // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !44, type: !14) // CHECK:STDOUT: !47 = !DILocation(line: 15, column: 27, scope: !44) @@ -296,7 +296,7 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: !51 = !DILocation(line: 19, column: 27, scope: !48) // CHECK:STDOUT: !52 = !DILocation(line: 19, column: 3, scope: !48) // CHECK:STDOUT: !53 = !DILocation(line: 18, column: 1, scope: !48) -// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.e2eb6345a0817262", scope: null, file: !55, line: 105, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !58) +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.52f71e11dc373f9a", scope: null, file: !55, line: 105, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !58) // CHECK:STDOUT: !55 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !56 = !DISubroutineType(types: !57) // CHECK:STDOUT: !57 = !{!14, !14} @@ -304,56 +304,56 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !54, type: !14) // CHECK:STDOUT: !60 = !DILocation(line: 106, column: 12, scope: !54) // CHECK:STDOUT: !61 = !DILocation(line: 106, column: 5, scope: !54) -// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.92bc13198414a0a5", scope: null, file: !55, line: 105, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !63) +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.ed3bde3932287ced", scope: null, file: !55, line: 105, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !63) // CHECK:STDOUT: !63 = !{!64} // CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !62, type: !14) // CHECK:STDOUT: !65 = !DILocation(line: 106, column: 12, scope: !62) // CHECK:STDOUT: !66 = !DILocation(line: 106, column: 5, scope: !62) -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.e8abce1df9e7383b", scope: null, file: !55, line: 105, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !68) +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.0dc2e35b064d71e9", scope: null, file: !55, line: 105, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !68) // CHECK:STDOUT: !68 = !{!69} // CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !67, type: !14) // CHECK:STDOUT: !70 = !DILocation(line: 106, column: 12, scope: !67) // CHECK:STDOUT: !71 = !DILocation(line: 106, column: 5, scope: !67) -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.a0c6f87edec590a2:OptionalAs.3a7c842b5a6bca51.Core.16518ec96f303f23", scope: null, file: !55, line: 80, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !73) +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.258ff42e9fd73c28", scope: null, file: !55, line: 80, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !73) // CHECK:STDOUT: !73 = !{!74} // CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !72, type: !14) // CHECK:STDOUT: !75 = !DILocation(line: 81, column: 12, scope: !72) // CHECK:STDOUT: !76 = !DILocation(line: 81, column: 5, scope: !72) -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.6bb01b3b35e74e55:OptionalAs.db69f09c2307f298.Core.5efd019d705c0b26", scope: null, file: !55, line: 87, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !78) +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.ff6ab29b5872c34c", scope: null, file: !55, line: 87, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !78) // CHECK:STDOUT: !78 = !{!79} // CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !77, type: !14) // CHECK:STDOUT: !80 = !DILocation(line: 88, column: 29, scope: !77) // CHECK:STDOUT: !81 = !DILocation(line: 88, column: 12, scope: !77) // CHECK:STDOUT: !82 = !DILocation(line: 88, column: 5, scope: !77) -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.6bb01b3b35e74e55:OptionalAs.db69f09c2307f298.Core.ff5aadc808ace668", scope: null, file: !55, line: 87, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !84) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.e316e6328124c0b3", scope: null, file: !55, line: 87, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !84) // CHECK:STDOUT: !84 = !{!85} // CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !83, type: !14) // CHECK:STDOUT: !86 = !DILocation(line: 88, column: 29, scope: !83) // CHECK:STDOUT: !87 = !DILocation(line: 88, column: 12, scope: !83) // CHECK:STDOUT: !88 = !DILocation(line: 88, column: 5, scope: !83) -// CHECK:STDOUT: !89 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.16518ec96f303f23", scope: null, file: !55, line: 33, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !90) +// CHECK:STDOUT: !89 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.258ff42e9fd73c28", scope: null, file: !55, line: 33, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !90) // CHECK:STDOUT: !90 = !{!91} // CHECK:STDOUT: !91 = !DILocalVariable(arg: 1, scope: !89, type: !14) // CHECK:STDOUT: !92 = !DILocation(line: 34, column: 12, scope: !89) // CHECK:STDOUT: !93 = !DILocation(line: 34, column: 5, scope: !89) -// CHECK:STDOUT: !94 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert:thunk:ImplicitAs.9ec76089d908647a.Core:e8f8f92d3d08d149:ImplicitAs.37effc28ee11587a.Core.5e5386123d4b6287", scope: null, file: !95, line: 40, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !96) +// CHECK:STDOUT: !94 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert:thunk:ImplicitAs.d035546bf1a99743.Core:e8f8f92d3d08d149:ImplicitAs.01c4a560c986e7d1.Core.84588f41d61dafba", scope: null, file: !95, line: 40, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !96) // CHECK:STDOUT: !95 = !DIFile(filename: "{{.*}}/prelude/types/cpp/void.carbon", directory: "") // CHECK:STDOUT: !96 = !{!97} // CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !94, type: !14) // CHECK:STDOUT: !98 = !DILocation(line: 40, column: 3, scope: !94) -// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.15cb76de18318062", scope: null, file: !55, line: 33, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !100) +// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.e5c5bc28e9d686cf", scope: null, file: !55, line: 33, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !100) // CHECK:STDOUT: !100 = !{!101} // CHECK:STDOUT: !101 = !DILocalVariable(arg: 1, scope: !99, type: !14) // CHECK:STDOUT: !102 = !DILocation(line: 34, column: 12, scope: !99) // CHECK:STDOUT: !103 = !DILocation(line: 34, column: 5, scope: !99) -// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.b38e2ff2a271a787", scope: null, file: !55, line: 166, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !105) +// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.7a595a06c724a271", scope: null, file: !55, line: 166, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !105) // CHECK:STDOUT: !105 = !{!106} // CHECK:STDOUT: !106 = !DILocalVariable(arg: 1, scope: !104, type: !14) // CHECK:STDOUT: !107 = !DILocation(line: 167, column: 14, scope: !104) // CHECK:STDOUT: !108 = !DILocation(line: 169, column: 5, scope: !104) // CHECK:STDOUT: !109 = !DILocation(line: 167, column: 18, scope: !104) // CHECK:STDOUT: !110 = !DILocation(line: 170, column: 5, scope: !104) -// CHECK:STDOUT: !111 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.430391d0f8a776a2", scope: null, file: !55, line: 166, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !112) +// CHECK:STDOUT: !111 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.8f1054b47505c137", scope: null, file: !55, line: 166, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !112) // CHECK:STDOUT: !112 = !{!113} // CHECK:STDOUT: !113 = !DILocalVariable(arg: 1, scope: !111, type: !14) // CHECK:STDOUT: !114 = !DILocation(line: 167, column: 14, scope: !111) diff --git a/toolchain/lower/testdata/let/copy_value_rep.carbon b/toolchain/lower/testdata/let/copy_value_rep.carbon index 649e22712e4f..4200e1c69fb6 100644 --- a/toolchain/lower/testdata/let/copy_value_rep.carbon +++ b/toolchain/lower/testdata/let/copy_value_rep.carbon @@ -38,24 +38,24 @@ fn Run() -> i32 { // CHECK:STDOUT: %.loc19_17.2 = load i32, ptr %.loc19_17.1.a, align 4, !dbg !10 // CHECK:STDOUT: %.loc20_4.a = getelementptr inbounds nuw { i32 }, ptr %x.var, i32 0, i32 0, !dbg !11 // CHECK:STDOUT: store i32 2, ptr %.loc20_4.a, align 4, !dbg !11 -// CHECK:STDOUT: call void @"_COp.e321a4645f519d34:core.Destroy.Core"(ptr %x.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.429fc69ea0bf165d:core.Destroy.Core"(ptr %x.var), !dbg !8 // CHECK:STDOUT: ret i32 %.loc19_17.2, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !13 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.901120de26305892:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.9ba7bda1866a9bea:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // 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.e321a4645f519d34:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.429fc69ea0bf165d:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } @@ -85,20 +85,20 @@ fn Run() -> i32 { // CHECK:STDOUT: !10 = !DILocation(line: 19, column: 16, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 20, column: 3, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 22, column: 3, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 18, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 18, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) // CHECK:STDOUT: !14 = !DISubroutineType(types: !15) // CHECK:STDOUT: !15 = !{null, !7} // CHECK:STDOUT: !16 = !{!17} // CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !13, type: !7) // CHECK:STDOUT: !18 = !DILocation(line: 18, column: 3, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.901120de26305892:core.Destroy.Core", scope: null, file: !3, line: 18, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9ba7bda1866a9bea:core.Destroy.Core", scope: null, file: !3, line: 18, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !20 = !DISubroutineType(types: !21) // CHECK:STDOUT: !21 = !{null, !22} // CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) // CHECK:STDOUT: !25 = !DILocation(line: 18, column: 3, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e321a4645f519d34:core.Destroy.Core", scope: null, file: !3, line: 18, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.429fc69ea0bf165d:core.Destroy.Core", scope: null, file: !3, line: 18, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) // CHECK:STDOUT: !27 = !{!28} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !22) // CHECK:STDOUT: !29 = !DILocation(line: 18, column: 3, scope: !26) diff --git a/toolchain/lower/testdata/let/tuple.carbon b/toolchain/lower/testdata/let/tuple.carbon index f06240d10bce..69f21a8dab63 100644 --- a/toolchain/lower/testdata/let/tuple.carbon +++ b/toolchain/lower/testdata/let/tuple.carbon @@ -20,8 +20,8 @@ fn F() -> i32 { // CHECK:STDOUT: ; ModuleID = 'tuple.carbon' // CHECK:STDOUT: source_filename = "tuple.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @tuple.282.loc14_3 = internal constant { i32, i32, i32 } { i32 1, i32 2, i32 3 } -// CHECK:STDOUT: @tuple.c5f.loc15_3 = internal constant { i32, i32 } { i32 4, i32 5 } +// CHECK:STDOUT: @tuple.479.loc14_3 = internal constant { i32, i32, i32 } { i32 1, i32 2, i32 3 } +// CHECK:STDOUT: @tuple.8a1.loc15_3 = internal constant { i32, i32 } { i32 4, i32 5 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !4 { @@ -35,11 +35,11 @@ fn F() -> i32 { // CHECK:STDOUT: %tuple.elem0.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !13 // CHECK:STDOUT: %tuple.elem1.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 1, !dbg !13 // CHECK:STDOUT: %tuple.elem2.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 2, !dbg !13 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a.var, ptr align 4 @tuple.282.loc14_3, i64 12, i1 false), !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a.var, ptr align 4 @tuple.479.loc14_3, i64 12, i1 false), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !9 // CHECK:STDOUT: %tuple.elem0.loc15.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 0, !dbg !14 // CHECK:STDOUT: %tuple.elem1.loc15.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 1, !dbg !14 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %b.var, ptr align 4 @tuple.c5f.loc15_3, i64 8, i1 false), !dbg !9 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %b.var, ptr align 4 @tuple.8a1.loc15_3, i64 8, i1 false), !dbg !9 // CHECK:STDOUT: %tuple.elem0.loc16_43.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !10 // CHECK:STDOUT: %.loc16_43.1 = load i32, ptr %tuple.elem0.loc16_43.tuple.elem, align 4, !dbg !10 // CHECK:STDOUT: %tuple.elem1.loc16_43.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 1, !dbg !10 @@ -71,25 +71,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 !15 // 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 !15 // CHECK:STDOUT: %tuple.elem1.loc17_13.tuple.elem.load = load i32, ptr %tuple.elem1.loc17_13.tuple.elem, align 4, !dbg !15 -// CHECK:STDOUT: call void @"_COp.11d8dd9278293aa3:core.Destroy.Core"(ptr %b.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.d52e974a95b4c7a0:core.Destroy.Core"(ptr %a.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %b.var), !dbg !9 +// CHECK:STDOUT: call void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %a.var), !dbg !8 // CHECK:STDOUT: ret i32 %tuple.elem1.loc17_13.tuple.elem.load, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !17 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.11d8dd9278293aa3:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %self) #0 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d52e974a95b4c7a0:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %self) #0 !dbg !30 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } @@ -127,20 +127,20 @@ fn F() -> i32 { // CHECK:STDOUT: !14 = !DILocation(line: 15, column: 23, scope: !4) // CHECK:STDOUT: !15 = !DILocation(line: 17, column: 10, scope: !4) // CHECK:STDOUT: !16 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 15, type: !18, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 15, type: !18, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) // CHECK:STDOUT: !18 = !DISubroutineType(types: !19) // CHECK:STDOUT: !19 = !{null, !7} // CHECK:STDOUT: !20 = !{!21} // CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !17, type: !7) // CHECK:STDOUT: !22 = !DILocation(line: 15, column: 3, scope: !17) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.11d8dd9278293aa3:core.Destroy.Core", scope: null, file: !3, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eff30dc40f4a53d2:core.Destroy.Core", scope: null, file: !3, line: 15, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) // CHECK:STDOUT: !24 = !DISubroutineType(types: !25) // CHECK:STDOUT: !25 = !{null, !26} // CHECK:STDOUT: !26 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !27 = !{!28} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !23, type: !26) // CHECK:STDOUT: !29 = !DILocation(line: 15, column: 3, scope: !23) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d52e974a95b4c7a0:core.Destroy.Core", scope: null, file: !3, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5784487ae90e2771:core.Destroy.Core", scope: null, file: !3, line: 14, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !26) // CHECK:STDOUT: !33 = !DILocation(line: 14, column: 3, scope: !30) diff --git a/toolchain/lower/testdata/operators/assignment.carbon b/toolchain/lower/testdata/operators/assignment.carbon index 13c043ccbf7a..c93f0372d3a6 100644 --- a/toolchain/lower/testdata/operators/assignment.carbon +++ b/toolchain/lower/testdata/operators/assignment.carbon @@ -25,7 +25,7 @@ fn G() -> (i32, i32) { // CHECK:STDOUT: ; ModuleID = 'assignment.carbon' // CHECK:STDOUT: source_filename = "assignment.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @tuple.cd5.loc21_5 = internal constant { i32, i32 } { i32 1, i32 2 } +// CHECK:STDOUT: @tuple.102.loc21_5 = internal constant { i32, i32 } { i32 1, i32 2 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @_CF.Main() #0 !dbg !4 { @@ -35,12 +35,12 @@ fn G() -> (i32, i32) { // CHECK:STDOUT: store i32 12, ptr %a.var, align 4, !dbg !8 // CHECK:STDOUT: store i32 9, ptr %a.var, align 4, !dbg !9 // CHECK:STDOUT: %.loc16 = load i32, ptr %a.var, align 4, !dbg !10 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %a.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %a.var), !dbg !8 // CHECK:STDOUT: ret i32 %.loc16, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !12 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } @@ -52,7 +52,7 @@ fn G() -> (i32, i32) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b.var), !dbg !22 // CHECK:STDOUT: %tuple.elem0.loc21.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 0, !dbg !23 // CHECK:STDOUT: %tuple.elem1.loc21.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 1, !dbg !23 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %b.var, ptr align 4 @tuple.cd5.loc21_5, i64 8, i1 false), !dbg !24 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %b.var, ptr align 4 @tuple.102.loc21_5, i64 8, i1 false), !dbg !24 // CHECK:STDOUT: %tuple.elem0.loc22_10.1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %b.var, i32 0, i32 0, !dbg !25 // CHECK:STDOUT: %.loc22_10.1 = load i32, ptr %tuple.elem0.loc22_10.1.tuple.elem, align 4, !dbg !25 // CHECK:STDOUT: %tuple.elem0.loc22_10.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !25 @@ -61,12 +61,12 @@ fn G() -> (i32, i32) { // CHECK:STDOUT: %.loc22_10.3 = load i32, ptr %tuple.elem1.loc22_10.1.tuple.elem, align 4, !dbg !25 // CHECK:STDOUT: %tuple.elem1.loc22_10.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !25 // CHECK:STDOUT: store i32 %.loc22_10.3, ptr %tuple.elem1.loc22_10.2.tuple.elem, align 4, !dbg !25 -// CHECK:STDOUT: call void @"_COp.11d8dd9278293aa3:core.Destroy.Core"(ptr %b.var), !dbg !22 +// CHECK:STDOUT: call void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %b.var), !dbg !22 // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.11d8dd9278293aa3:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %self) #0 !dbg !27 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } @@ -98,7 +98,7 @@ fn G() -> (i32, i32) { // CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 16, column: 10, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 14, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) // CHECK:STDOUT: !13 = !DISubroutineType(types: !14) // CHECK:STDOUT: !14 = !{null, !7} // CHECK:STDOUT: !15 = !{!16} @@ -113,7 +113,7 @@ fn G() -> (i32, i32) { // CHECK:STDOUT: !24 = !DILocation(line: 21, column: 3, scope: !18) // CHECK:STDOUT: !25 = !DILocation(line: 22, column: 10, scope: !18) // CHECK:STDOUT: !26 = !DILocation(line: 22, column: 3, scope: !18) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.11d8dd9278293aa3:core.Destroy.Core", scope: null, file: !3, line: 20, type: !28, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !30) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eff30dc40f4a53d2:core.Destroy.Core", scope: null, file: !3, line: 20, type: !28, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !30) // CHECK:STDOUT: !28 = !DISubroutineType(types: !29) // CHECK:STDOUT: !29 = !{null, !21} // CHECK:STDOUT: !30 = !{!31} diff --git a/toolchain/lower/testdata/operators/increment.carbon b/toolchain/lower/testdata/operators/increment.carbon index eecedd1d723d..7caeb31141e1 100644 --- a/toolchain/lower/testdata/operators/increment.carbon +++ b/toolchain/lower/testdata/operators/increment.carbon @@ -29,12 +29,12 @@ fn IncrSigned() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %from.var), !dbg !7 // CHECK:STDOUT: store i32 0, ptr %from.var, align 4, !dbg !7 // CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %from.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %from.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %from.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !10 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !10 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } @@ -44,13 +44,13 @@ fn IncrSigned() { // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !17 { -// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.07875fab836259ed.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17"(ptr %self, i32 1), !dbg !21 +// CHECK:STDOUT: call void @"_COp:thunk:AddAssignWith.6f9e8c1abf8bb3ea.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661"(ptr %self, i32 1), !dbg !21 // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.07875fab836259ed.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17"(ptr %self, i32 %other) #2 !dbg !23 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc"(i32 %other), !dbg !29 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk:AddAssignWith.6f9e8c1abf8bb3ea.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661"(ptr %self, i32 %other) #2 !dbg !23 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47"(i32 %other), !dbg !29 // CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !30 // CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !30 // CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !30 @@ -58,7 +58,7 @@ fn IncrSigned() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc"(i32 %self) #0 !dbg !31 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47"(i32 %self) #0 !dbg !31 { // CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !36 // CHECK:STDOUT: ret i32 %1, !dbg !37 // CHECK:STDOUT: } @@ -85,7 +85,7 @@ fn IncrSigned() { // CHECK:STDOUT: !7 = !DILocation(line: 5, column: 3, scope: !4) // CHECK:STDOUT: !8 = !DILocation(line: 6, column: 3, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 4, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 5, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 5, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !11 = !DISubroutineType(types: !12) // CHECK:STDOUT: !12 = !{null, !13} // CHECK:STDOUT: !13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) @@ -98,7 +98,7 @@ fn IncrSigned() { // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !17, type: !13) // CHECK:STDOUT: !21 = !DILocation(line: 372, column: 5, scope: !17) // CHECK:STDOUT: !22 = !DILocation(line: 370, column: 3, scope: !17) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.07875fab836259ed.Core:Int.9452f4c51951679b.Core:AddAssignWith.f8737c9507fb115f.Core.4f441e6d456a6b17", scope: null, file: !18, line: 306, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:AddAssignWith.6f9e8c1abf8bb3ea.Core:Int.9452f4c51951679b.Core:AddAssignWith.bcc2a64c00f3554f.Core.44914b6ff6901661", scope: null, file: !18, line: 306, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) // CHECK:STDOUT: !24 = !DISubroutineType(types: !25) // CHECK:STDOUT: !25 = !{null, !13, !13} // CHECK:STDOUT: !26 = !{!27, !28} @@ -106,7 +106,7 @@ fn IncrSigned() { // CHECK:STDOUT: !28 = !DILocalVariable(arg: 2, scope: !23, type: !13) // CHECK:STDOUT: !29 = !DILocation(line: 4294967295, scope: !23) // CHECK:STDOUT: !30 = !DILocation(line: 306, column: 3, scope: !23) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc", scope: null, file: !18, line: 63, type: !32, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47", scope: null, file: !18, line: 63, type: !32, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) // CHECK:STDOUT: !32 = !DISubroutineType(types: !33) // CHECK:STDOUT: !33 = !{!13, !13} // CHECK:STDOUT: !34 = !{!35} diff --git a/toolchain/lower/testdata/operators/overloaded.carbon b/toolchain/lower/testdata/operators/overloaded.carbon index b1b7617d75ab..121f325cda4f 100644 --- a/toolchain/lower/testdata/operators/overloaded.carbon +++ b/toolchain/lower/testdata/operators/overloaded.carbon @@ -47,7 +47,7 @@ fn Calculate(a: Number, b: Number) -> Number { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_COp.Number.Main:MulWith.3a589fb197ee16d7.Core"(ptr sret({ i1 }) %return, ptr %self, ptr %other) #0 !dbg !14 { +// CHECK:STDOUT: define void @"_COp.Number.Main:MulWith.124acaad20680602.Core"(ptr sret({ i1 }) %return, ptr %self, ptr %other) #0 !dbg !14 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc24_33.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %self, i32 0, i32 0, !dbg !20 // CHECK:STDOUT: %.loc24_33.2 = load i8, ptr %.loc24_33.1.is_positive, align 1, !dbg !20 @@ -97,8 +97,8 @@ fn Calculate(a: Number, b: Number) -> Number { // CHECK:STDOUT: %.loc30_10.1.temp = alloca { i1 }, align 1, !dbg !33 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc30_10.1.temp), !dbg !33 // CHECK:STDOUT: call void @"_COp.Number.Main:Negate.Core"(ptr %.loc30_10.1.temp, ptr %a), !dbg !33 -// CHECK:STDOUT: call void @"_COp.Number.Main:MulWith.3a589fb197ee16d7.Core"(ptr %return, ptr %.loc30_10.1.temp, ptr %b), !dbg !33 -// CHECK:STDOUT: call void @"_COp.e6e9beaafe530d3a:core.Destroy.Core"(ptr %.loc30_10.1.temp), !dbg !33 +// CHECK:STDOUT: call void @"_COp.Number.Main:MulWith.124acaad20680602.Core"(ptr %return, ptr %.loc30_10.1.temp, ptr %b), !dbg !33 +// CHECK:STDOUT: call void @"_COp.494b68f9219b33ab:core.Destroy.Core"(ptr %.loc30_10.1.temp), !dbg !33 // CHECK:STDOUT: ret void, !dbg !34 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -109,7 +109,7 @@ fn Calculate(a: Number, b: Number) -> Number { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e6e9beaafe530d3a:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.494b68f9219b33ab:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } @@ -137,7 +137,7 @@ fn Calculate(a: Number, b: Number) -> Number { // CHECK:STDOUT: !11 = !DILocation(line: 19, column: 28, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 19, column: 12, scope: !4) // CHECK:STDOUT: !13 = !DILocation(line: 19, column: 5, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Number.Main:MulWith.3a589fb197ee16d7.Core", scope: null, file: !3, line: 23, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Number.Main:MulWith.124acaad20680602.Core", scope: null, file: !3, line: 23, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) // CHECK:STDOUT: !15 = !DISubroutineType(types: !16) // CHECK:STDOUT: !16 = !{!7, !7, !7} // CHECK:STDOUT: !17 = !{!18, !19} @@ -164,7 +164,7 @@ fn Calculate(a: Number, b: Number) -> Number { // CHECK:STDOUT: !38 = !{!39} // CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !35, type: !7) // CHECK:STDOUT: !40 = !DILocation(line: 30, column: 10, scope: !35) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e6e9beaafe530d3a:core.Destroy.Core", scope: null, file: !3, line: 30, type: !36, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.494b68f9219b33ab:core.Destroy.Core", scope: null, file: !3, line: 30, type: !36, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) // CHECK:STDOUT: !42 = !{!43} // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !7) // CHECK:STDOUT: !44 = !DILocation(line: 30, column: 10, scope: !41) diff --git a/toolchain/lower/testdata/packages/imported_package_mangle.carbon b/toolchain/lower/testdata/packages/imported_package_mangle.carbon index 810171f211fb..94936a525835 100644 --- a/toolchain/lower/testdata/packages/imported_package_mangle.carbon +++ b/toolchain/lower/testdata/packages/imported_package_mangle.carbon @@ -93,7 +93,7 @@ fn G() { // CHECK:STDOUT: source_filename = "a.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.ce7776749ca81571:I.A"() #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CF.f327915d949d024f:I.A"() #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !7 // CHECK:STDOUT: } @@ -107,7 +107,7 @@ fn G() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "a.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.ce7776749ca81571:I.A", scope: null, file: !3, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.f327915d949d024f:I.A", scope: null, file: !3, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{null} // CHECK:STDOUT: !7 = !DILocation(line: 10, column: 3, scope: !4) @@ -117,15 +117,15 @@ fn G() { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CG.B() #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CF.ce7776749ca81571:I.A"(), !dbg !7 -// CHECK:STDOUT: call void @"_CF.f094d4704a666a3f:I.A.91a8a89714fbc21c"(), !dbg !8 +// CHECK:STDOUT: call void @"_CF.f327915d949d024f:I.A"(), !dbg !7 +// CHECK:STDOUT: call void @"_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c"(), !dbg !8 // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_CF.ce7776749ca81571:I.A"() +// CHECK:STDOUT: declare void @"_CF.f327915d949d024f:I.A"() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CF.f094d4704a666a3f:I.A.91a8a89714fbc21c"() #0 !dbg !10 { +// CHECK:STDOUT: define linkonce_odr void @"_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c"() #0 !dbg !10 { // CHECK:STDOUT: ret void, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -144,26 +144,26 @@ fn G() { // CHECK:STDOUT: !7 = !DILocation(line: 7, column: 3, scope: !4) // CHECK:STDOUT: !8 = !DILocation(line: 10, column: 3, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 4, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "F", linkageName: "_CF.f094d4704a666a3f:I.A.91a8a89714fbc21c", scope: null, file: !11, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "F", linkageName: "_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c", scope: null, file: !11, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !11 = !DIFile(filename: "a.carbon", directory: "") // CHECK:STDOUT: !12 = !DILocation(line: 14, column: 3, scope: !10) // CHECK:STDOUT: ; ModuleID = 'c.carbon' // CHECK:STDOUT: source_filename = "c.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.8fce14c07716906c:I.C"() #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CF.f6938aeb3cf77e6f:I.C"() #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.8fce14c07716906c:I.A"() #0 !dbg !8 { +// CHECK:STDOUT: define void @"_CF.f6938aeb3cf77e6f:I.A"() #0 !dbg !8 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.ce7776749ca81571:I.C"() #0 !dbg !10 { +// CHECK:STDOUT: define void @"_CF.f327915d949d024f:I.C"() #0 !dbg !10 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !11 // CHECK:STDOUT: } @@ -171,38 +171,38 @@ fn G() { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CG.C() #0 !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CF.ce7776749ca81571:I.A"(), !dbg !13 -// CHECK:STDOUT: call void @"_CF.8fce14c07716906c:I.A"(), !dbg !14 -// CHECK:STDOUT: call void @"_CF.ce7776749ca81571:I.C"(), !dbg !15 -// CHECK:STDOUT: call void @"_CF.8fce14c07716906c:I.C"(), !dbg !16 -// CHECK:STDOUT: call void @"_CF.f094d4704a666a3f:I.A.91a8a89714fbc21c"(), !dbg !17 -// CHECK:STDOUT: call void @"_CF.3af10a4f384a52b9:I.A.91a8a89714fbc21c"(), !dbg !18 -// CHECK:STDOUT: call void @"_CF.f094d4704a666a3f:I.C.91a8a89714fbc21c"(), !dbg !19 -// CHECK:STDOUT: call void @"_CF.3af10a4f384a52b9:I.C.91a8a89714fbc21c"(), !dbg !20 +// CHECK:STDOUT: call void @"_CF.f327915d949d024f:I.A"(), !dbg !13 +// CHECK:STDOUT: call void @"_CF.f6938aeb3cf77e6f:I.A"(), !dbg !14 +// CHECK:STDOUT: call void @"_CF.f327915d949d024f:I.C"(), !dbg !15 +// CHECK:STDOUT: call void @"_CF.f6938aeb3cf77e6f:I.C"(), !dbg !16 +// CHECK:STDOUT: call void @"_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c"(), !dbg !17 +// CHECK:STDOUT: call void @"_CF.c2375ae0b92fd5ec:I.A.91a8a89714fbc21c"(), !dbg !18 +// CHECK:STDOUT: call void @"_CF.b11ad1d729c16944:I.C.91a8a89714fbc21c"(), !dbg !19 +// CHECK:STDOUT: call void @"_CF.c2375ae0b92fd5ec:I.C.91a8a89714fbc21c"(), !dbg !20 // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_CF.ce7776749ca81571:I.A"() +// CHECK:STDOUT: declare void @"_CF.f327915d949d024f:I.A"() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CF.f094d4704a666a3f:I.A.91a8a89714fbc21c"() #0 !dbg !22 { +// CHECK:STDOUT: define linkonce_odr void @"_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c"() #0 !dbg !22 { // CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CF.3af10a4f384a52b9:I.A.91a8a89714fbc21c"() #0 !dbg !25 { +// CHECK:STDOUT: define linkonce_odr void @"_CF.c2375ae0b92fd5ec:I.A.91a8a89714fbc21c"() #0 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CF.f094d4704a666a3f:I.C.91a8a89714fbc21c"() #0 !dbg !27 { +// CHECK:STDOUT: define linkonce_odr void @"_CF.b11ad1d729c16944:I.C.91a8a89714fbc21c"() #0 !dbg !27 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CF.3af10a4f384a52b9:I.C.91a8a89714fbc21c"() #0 !dbg !29 { +// CHECK:STDOUT: define linkonce_odr void @"_CF.c2375ae0b92fd5ec:I.C.91a8a89714fbc21c"() #0 !dbg !29 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } @@ -216,13 +216,13 @@ fn G() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "c.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.8fce14c07716906c:I.C", scope: null, file: !3, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.f6938aeb3cf77e6f:I.C", scope: null, file: !3, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{null} // CHECK:STDOUT: !7 = !DILocation(line: 12, column: 3, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "F", linkageName: "_CF.8fce14c07716906c:I.A", scope: null, file: !3, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "F", linkageName: "_CF.f6938aeb3cf77e6f:I.A", scope: null, file: !3, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !9 = !DILocation(line: 20, column: 3, scope: !8) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "F", linkageName: "_CF.ce7776749ca81571:I.C", scope: null, file: !3, line: 28, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "F", linkageName: "_CF.f327915d949d024f:I.C", scope: null, file: !3, line: 28, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !11 = !DILocation(line: 28, column: 3, scope: !10) // CHECK:STDOUT: !12 = distinct !DISubprogram(name: "G", linkageName: "_CG.C", scope: null, file: !3, line: 35, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !13 = !DILocation(line: 37, column: 3, scope: !12) @@ -234,12 +234,12 @@ fn G() { // CHECK:STDOUT: !19 = !DILocation(line: 45, column: 3, scope: !12) // CHECK:STDOUT: !20 = !DILocation(line: 46, column: 3, scope: !12) // CHECK:STDOUT: !21 = !DILocation(line: 35, column: 1, scope: !12) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "F", linkageName: "_CF.f094d4704a666a3f:I.A.91a8a89714fbc21c", scope: null, file: !23, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "F", linkageName: "_CF.b11ad1d729c16944:I.A.91a8a89714fbc21c", scope: null, file: !23, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !23 = !DIFile(filename: "a.carbon", directory: "") // CHECK:STDOUT: !24 = !DILocation(line: 14, column: 3, scope: !22) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF.3af10a4f384a52b9:I.A.91a8a89714fbc21c", scope: null, file: !3, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "F", linkageName: "_CF.c2375ae0b92fd5ec:I.A.91a8a89714fbc21c", scope: null, file: !3, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !26 = !DILocation(line: 24, column: 3, scope: !25) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "F", linkageName: "_CF.f094d4704a666a3f:I.C.91a8a89714fbc21c", scope: null, file: !3, line: 32, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "F", linkageName: "_CF.b11ad1d729c16944:I.C.91a8a89714fbc21c", scope: null, file: !3, line: 32, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !28 = !DILocation(line: 32, column: 3, scope: !27) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "F", linkageName: "_CF.3af10a4f384a52b9:I.C.91a8a89714fbc21c", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "F", linkageName: "_CF.c2375ae0b92fd5ec:I.C.91a8a89714fbc21c", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !30 = !DILocation(line: 16, column: 3, scope: !29) diff --git a/toolchain/lower/testdata/packages/imported_package_mangle_string.carbon b/toolchain/lower/testdata/packages/imported_package_mangle_string.carbon index ee22da645b93..036871d0f9c0 100644 --- a/toolchain/lower/testdata/packages/imported_package_mangle_string.carbon +++ b/toolchain/lower/testdata/packages/imported_package_mangle_string.carbon @@ -45,13 +45,13 @@ fn G() { // CHECK:STDOUT: source_filename = "a.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,C,,A,!invalid,!invalid}}:I.A"() #0 !dbg !4 { +// CHECK:STDOUT: define void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,C,A,,!invalid,!invalid}}:I.A"() #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,D,N,,A,!invalid,!invalid}}:I.A"() #0 !dbg !8 { +// CHECK:STDOUT: define void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,D,N,A,!invalid,!invalid}}:I.A"() #0 !dbg !8 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } @@ -65,11 +65,11 @@ fn G() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "a.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,C,,A,!invalid,!invalid}}:I.A", scope: null, file: !3, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,C,A,,!invalid,!invalid}}:I.A", scope: null, file: !3, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{null} // CHECK:STDOUT: !7 = !DILocation(line: 10, column: 3, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "F", linkageName: "_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,D,N,,A,!invalid,!invalid}}:I.A", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "F", linkageName: "_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,D,N,A,!invalid,!invalid}}:I.A", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !9 = !DILocation(line: 17, column: 3, scope: !8) // CHECK:STDOUT: ; ModuleID = 'b.carbon' // CHECK:STDOUT: source_filename = "b.carbon" @@ -77,14 +77,14 @@ fn G() { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CG.B() #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,C,,A,!invalid,!invalid}}:I.A"(), !dbg !7 -// CHECK:STDOUT: call void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,D,N,,A,!invalid,!invalid}}:I.A"(), !dbg !8 +// CHECK:STDOUT: call void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,C,A,,!invalid,!invalid}}:I.A"(), !dbg !7 +// CHECK:STDOUT: call void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,D,N,A,!invalid,!invalid}}:I.A"(), !dbg !8 // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,C,,A,!invalid,!invalid}}:I.A"() +// CHECK:STDOUT: declare void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,C,A,,!invalid,!invalid}}:I.A"() // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,D,N,,A,!invalid,!invalid}}:I.A"() +// CHECK:STDOUT: declare void @"_CF.{array_type,{int_value,{Core.IntLiteral},1},{class_type,D,N,A,!invalid,!invalid}}:I.A"() // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/packages/imported_type_completeness.carbon b/toolchain/lower/testdata/packages/imported_type_completeness.carbon index 901aeecbf55c..86fd167b0ae0 100644 --- a/toolchain/lower/testdata/packages/imported_type_completeness.carbon +++ b/toolchain/lower/testdata/packages/imported_type_completeness.carbon @@ -105,7 +105,7 @@ fn CallF() { // CHECK:STDOUT: ; ModuleID = 'use_without_completion_in_call.carbon' // CHECK:STDOUT: source_filename = "use_without_completion_in_call.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @C.val.c83 = internal constant {} zeroinitializer +// CHECK:STDOUT: @C.val.eeb = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CI.Main() #0 !dbg !4 { @@ -115,7 +115,7 @@ fn CallF() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1934bd570a7cf9ba:core.Destroy.Core"(ptr %self) #0 !dbg !9 { +// CHECK:STDOUT: define weak_odr void @"_COp.493fde38be547afd:core.Destroy.Core"(ptr %self) #0 !dbg !9 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } @@ -128,8 +128,8 @@ fn CallF() { // CHECK:STDOUT: %1 = call i123 @_CF.C.Main.e43630e9a6c38c3f(), !dbg !20 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp1), !dbg !19 // CHECK:STDOUT: %2 = call i456 @_CG.C.Main.e43630e9a6c38c3f(), !dbg !21 -// CHECK:STDOUT: call void @"_COp.1934bd570a7cf9ba:core.Destroy.Core"(ptr @C.val.c83), !dbg !19 -// CHECK:STDOUT: call void @"_COp.1934bd570a7cf9ba:core.Destroy.Core"(ptr @C.val.c83), !dbg !18 +// CHECK:STDOUT: call void @"_COp.493fde38be547afd:core.Destroy.Core"(ptr @C.val.eeb), !dbg !19 +// CHECK:STDOUT: call void @"_COp.493fde38be547afd:core.Destroy.Core"(ptr @C.val.eeb), !dbg !18 // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -164,7 +164,7 @@ fn CallF() { // CHECK:STDOUT: !6 = !{null} // CHECK:STDOUT: !7 = !DILocation(line: 9, column: 3, scope: !4) // CHECK:STDOUT: !8 = !DILocation(line: 6, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1934bd570a7cf9ba:core.Destroy.Core", scope: null, file: !10, line: 22, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Op", linkageName: "_COp.493fde38be547afd:core.Destroy.Core", scope: null, file: !10, line: 22, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !10 = !DIFile(filename: "require_completion_in_call.carbon", directory: "") // CHECK:STDOUT: !11 = !DISubroutineType(types: !12) // CHECK:STDOUT: !12 = !{null, !13} @@ -259,23 +259,23 @@ fn CallF() { // CHECK:STDOUT: ; ModuleID = 'use_without_completion_in_virtual_call.carbon' // CHECK:STDOUT: source_filename = "use_without_completion_in_virtual_call.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @C.val.28a = internal constant {} zeroinitializer -// CHECK:STDOUT: @"_CC.Main.$vtable.e3776368f2983b35" = external unnamed_addr constant ptr -// CHECK:STDOUT: @C.val.28a.loc9_11.3 = internal constant {} zeroinitializer -// CHECK:STDOUT: @C.val.e81.anon = internal constant { ptr } { ptr @"_CC.Main.$vtable.e3776368f2983b35" } +// CHECK:STDOUT: @C.val.d1d = internal constant {} zeroinitializer +// CHECK:STDOUT: @"_CC.Main.$vtable.9522ff908e97e267" = external unnamed_addr constant ptr +// CHECK:STDOUT: @C.val.d1d.loc9_11.3 = internal constant {} zeroinitializer +// CHECK:STDOUT: @C.val.9ff.anon = internal constant { ptr } { ptr @"_CC.Main.$vtable.9522ff908e97e267" } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CCallF.Main() #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc9_9.2.temp = alloca {}, align 1, !dbg !7 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_9.2.temp), !dbg !7 -// CHECK:STDOUT: call void @_CF.Main.e3776368f2983b35(ptr @C.val.28a.loc9_11.3), !dbg !8 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr @C.val.28a), !dbg !7 +// CHECK:STDOUT: call void @_CF.Main.9522ff908e97e267(ptr @C.val.d1d.loc9_11.3), !dbg !8 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr @C.val.d1d), !dbg !7 // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %self) #0 !dbg !10 { +// CHECK:STDOUT: define weak_odr void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self) #0 !dbg !10 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } @@ -287,7 +287,7 @@ fn CallF() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7750144ed108260e:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.749982fce5080bfe:core.Destroy.Core"(ptr %self) #0 !dbg !22 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } @@ -296,18 +296,18 @@ fn CallF() { // 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.e3776368f2983b35(ptr %t) #0 !dbg !26 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.9522ff908e97e267(ptr %t) #0 !dbg !26 { // CHECK:STDOUT: %1 = alloca { ptr }, align 8, !dbg !29 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !29 // CHECK:STDOUT: %vptr = getelementptr inbounds nuw { ptr }, ptr %1, i32 0, i32 0, !dbg !30 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1, ptr align 8 @C.val.e81.anon, i64 8, i1 false), !dbg !29 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1, ptr align 8 @C.val.9ff.anon, i64 8, i1 false), !dbg !29 // CHECK:STDOUT: %vtable = load ptr, ptr %1, align 8, !dbg !31 // CHECK:STDOUT: %2 = call ptr @llvm.load.relative.i32(ptr %vtable, i32 0), !dbg !31 // CHECK:STDOUT: %3 = call i11 %2(ptr %1), !dbg !31 // CHECK:STDOUT: %vtable1 = load ptr, ptr %1, align 8, !dbg !32 // CHECK:STDOUT: %4 = call ptr @llvm.load.relative.i32(ptr %vtable1, i32 4), !dbg !32 // CHECK:STDOUT: %5 = call i12 %4(ptr %1, ptr %t), !dbg !32 -// CHECK:STDOUT: call void @"_COp.7750144ed108260e:core.Destroy.Core"(ptr %1), !dbg !29 +// CHECK:STDOUT: call void @"_COp.749982fce5080bfe:core.Destroy.Core"(ptr %1), !dbg !29 // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -315,7 +315,7 @@ fn CallF() { // 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 i11 @_CF.C.Main.e3776368f2983b35(ptr %self) #0 !dbg !34 { +// CHECK:STDOUT: define linkonce_odr i11 @_CF.C.Main.9522ff908e97e267(ptr %self) #0 !dbg !34 { // CHECK:STDOUT: ret i11 11, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -323,7 +323,7 @@ fn CallF() { // CHECK:STDOUT: declare ptr @llvm.load.relative.i32(ptr, i32) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i12 @_CG.C.Main.e3776368f2983b35(ptr %self, ptr %t) #0 !dbg !42 { +// CHECK:STDOUT: define linkonce_odr i12 @_CG.C.Main.9522ff908e97e267(ptr %self, ptr %t) #0 !dbg !42 { // CHECK:STDOUT: ret i12 12, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -347,7 +347,7 @@ fn CallF() { // CHECK:STDOUT: !7 = !DILocation(line: 9, column: 8, scope: !4) // CHECK:STDOUT: !8 = !DILocation(line: 9, column: 3, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 8, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.907c496eccf2294c:core.Destroy.Core", scope: null, file: !3, line: 9, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.807eb4f2d3ed7e54:core.Destroy.Core", scope: null, file: !3, line: 9, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !11 = !DISubroutineType(types: !12) // CHECK:STDOUT: !12 = !{null, !13} // CHECK:STDOUT: !13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -359,11 +359,11 @@ fn CallF() { // CHECK:STDOUT: !19 = !{!20} // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !17, type: !13) // CHECK:STDOUT: !21 = !DILocation(line: 7, column: 3, scope: !17) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7750144ed108260e:core.Destroy.Core", scope: null, file: !18, line: 7, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.749982fce5080bfe:core.Destroy.Core", scope: null, file: !18, line: 7, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !22, type: !13) // CHECK:STDOUT: !25 = !DILocation(line: 7, column: 3, scope: !22) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.e3776368f2983b35", scope: null, file: !18, line: 6, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.9522ff908e97e267", scope: null, file: !18, line: 6, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) // CHECK:STDOUT: !27 = !{!28} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !13) // CHECK:STDOUT: !29 = !DILocation(line: 7, column: 3, scope: !26) @@ -371,7 +371,7 @@ fn CallF() { // CHECK:STDOUT: !31 = !DILocation(line: 8, column: 3, scope: !26) // CHECK:STDOUT: !32 = !DILocation(line: 9, column: 3, scope: !26) // CHECK:STDOUT: !33 = !DILocation(line: 6, column: 1, scope: !26) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main.e3776368f2983b35", scope: null, file: !35, line: 6, type: !36, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !39) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.C.Main.9522ff908e97e267", scope: null, file: !35, line: 6, type: !36, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !39) // CHECK:STDOUT: !35 = !DIFile(filename: "require_completion_in_vtable.carbon", directory: "") // CHECK:STDOUT: !36 = !DISubroutineType(types: !37) // CHECK:STDOUT: !37 = !{!38, !13} @@ -379,7 +379,7 @@ fn CallF() { // CHECK:STDOUT: !39 = !{!40} // CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !34, type: !13) // CHECK:STDOUT: !41 = !DILocation(line: 6, column: 55, scope: !34) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "G", linkageName: "_CG.C.Main.e3776368f2983b35", scope: null, file: !35, line: 7, type: !43, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "G", linkageName: "_CG.C.Main.9522ff908e97e267", scope: null, file: !35, line: 7, type: !43, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) // CHECK:STDOUT: !43 = !DISubroutineType(types: !44) // CHECK:STDOUT: !44 = !{!45, !13, !13} // CHECK:STDOUT: !45 = !DIBasicType(name: "int", size: 12, encoding: DW_ATE_signed) diff --git a/toolchain/lower/testdata/packages/private_external_mangle.carbon b/toolchain/lower/testdata/packages/private_external_mangle.carbon index 703dbdb467ad..d617e6232c39 100644 --- a/toolchain/lower/testdata/packages/private_external_mangle.carbon +++ b/toolchain/lower/testdata/packages/private_external_mangle.carbon @@ -71,14 +71,14 @@ fn F() { // CHECK:STDOUT: declare void @_CA.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall.Main.5bef28f1fba0ae94() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CCall.Main.c14f6fa2d8939391() #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_CA.Main(), !dbg !7 // CHECK:STDOUT: ret void, !dbg !8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall.C.Main.210474cb27d468f8() #0 !dbg !9 { +// CHECK:STDOUT: define void @_CCall.C.Main.df01d416cc5a0873() #0 !dbg !9 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_CA.Main(), !dbg !10 // CHECK:STDOUT: ret void, !dbg !11 @@ -93,12 +93,12 @@ fn F() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "private_call_a.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main.5bef28f1fba0ae94", scope: null, file: !3, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main.c14f6fa2d8939391", scope: null, file: !3, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{null} // CHECK:STDOUT: !7 = !DILocation(line: 7, column: 3, scope: !4) // CHECK:STDOUT: !8 = !DILocation(line: 6, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.C.Main.210474cb27d468f8", scope: null, file: !3, line: 11, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.C.Main.df01d416cc5a0873", scope: null, file: !3, line: 11, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !10 = !DILocation(line: 12, column: 5, scope: !9) // CHECK:STDOUT: !11 = !DILocation(line: 11, column: 3, scope: !9) // CHECK:STDOUT: ; ModuleID = 'private_call_b.carbon' @@ -107,14 +107,14 @@ fn F() { // CHECK:STDOUT: declare void @_CB.Main() // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall.Main.64199eeee1465ed1() #0 !dbg !4 { +// CHECK:STDOUT: define void @_CCall.Main.d20b101f33acb508() #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_CB.Main(), !dbg !7 // CHECK:STDOUT: ret void, !dbg !8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @_CCall.C.Main.210474cb27d468f8() #0 !dbg !9 { +// CHECK:STDOUT: define void @_CCall.C.Main.df01d416cc5a0873() #0 !dbg !9 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_CB.Main(), !dbg !10 // CHECK:STDOUT: ret void, !dbg !11 @@ -129,12 +129,12 @@ fn F() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "private_call_b.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main.64199eeee1465ed1", scope: null, file: !3, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main.d20b101f33acb508", scope: null, file: !3, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{null} // CHECK:STDOUT: !7 = !DILocation(line: 7, column: 3, scope: !4) // CHECK:STDOUT: !8 = !DILocation(line: 6, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.C.Main.210474cb27d468f8", scope: null, file: !3, line: 11, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.C.Main.df01d416cc5a0873", scope: null, file: !3, line: 11, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !10 = !DILocation(line: 12, column: 5, scope: !9) // CHECK:STDOUT: !11 = !DILocation(line: 11, column: 3, scope: !9) // CHECK:STDOUT: ; ModuleID = 'use_a_and_b.carbon' @@ -150,30 +150,30 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define linkonce_odr void @_CCallInA.Main.6944efcfbb6a8360() #0 !dbg !10 { -// CHECK:STDOUT: call void @_CCall.Main.5bef28f1fba0ae94(), !dbg !12 -// CHECK:STDOUT: call void @_CCall.C.Main.210474cb27d468f8(), !dbg !13 +// CHECK:STDOUT: call void @_CCall.Main.c14f6fa2d8939391(), !dbg !12 +// CHECK:STDOUT: call void @_CCall.C.Main.df01d416cc5a0873(), !dbg !13 // CHECK:STDOUT: ret void, !dbg !14 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define linkonce_odr void @_CCallInB.Main.6944efcfbb6a8360() #0 !dbg !15 { -// CHECK:STDOUT: call void @_CCall.Main.64199eeee1465ed1(), !dbg !17 -// CHECK:STDOUT: call void @_CCall.C.Main.210474cb27d468f8(), !dbg !18 +// CHECK:STDOUT: call void @_CCall.Main.d20b101f33acb508(), !dbg !17 +// CHECK:STDOUT: call void @_CCall.C.Main.df01d416cc5a0873(), !dbg !18 // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CA.Main() // CHECK:STDOUT: -// CHECK:STDOUT: declare void @_CCall.Main.5bef28f1fba0ae94() +// CHECK:STDOUT: declare void @_CCall.Main.c14f6fa2d8939391() // CHECK:STDOUT: -// CHECK:STDOUT: declare void @_CCall.C.Main.210474cb27d468f8() +// CHECK:STDOUT: declare void @_CCall.C.Main.df01d416cc5a0873() // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CB.Main() // CHECK:STDOUT: -// CHECK:STDOUT: declare void @_CCall.Main.64199eeee1465ed1() +// CHECK:STDOUT: declare void @_CCall.Main.d20b101f33acb508() // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @_CCall.C.Main.210474cb27d468f8, { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CCall.C.Main.df01d416cc5a0873, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/packages/separate_compilation_witness.carbon b/toolchain/lower/testdata/packages/separate_compilation_witness.carbon index cfa8d58f5db7..15413272586a 100644 --- a/toolchain/lower/testdata/packages/separate_compilation_witness.carbon +++ b/toolchain/lower/testdata/packages/separate_compilation_witness.carbon @@ -11,7 +11,8 @@ // TIP: bazel run //toolchain/testing:file_test -- --dump_output --file_tests=toolchain/lower/testdata/packages/separate_compilation_witness.carbon // This test ensures that we get the same mangled name for the below `(Vector as -// Add).Op` function for various calls from different contexts. +// Add).Op` and `(Vector as MulWith(i32)).Op` functions for various calls from +// different contexts. // --- owner.carbon package OwningPackage library "[[@TEST_NAME]]"; @@ -26,12 +27,18 @@ impl Vector as Core.AddWith(Vector) where .Result = Vector { } } +impl Vector as Core.MulWith(i32) where .Result = Vector { + fn Op[self: Vector](n: i32) -> Vector { + return {.x = self.x * n}; + } +} + // --- owner.impl.carbon impl package OwningPackage library "[[@TEST_NAME]]"; fn DirectInImplFile(v1: Vector, v2: Vector) -> Vector { // Direct call, same package, same library. - return v1 + v2; + return v1 + v2 * (2 as i32); } // --- direct_same_package.carbon @@ -41,7 +48,7 @@ import library "owner"; fn Direct(v1: Vector, v2: Vector) -> Vector { // Direct call, same package, different library. - return v1 + v2; + return v1 + v2 * (2 as i32); } // --- generic_same_package.carbon @@ -50,7 +57,7 @@ package OwningPackage library "[[@TEST_NAME]]"; import library "owner"; fn Generic(unused T:! type, v1: Vector, v2: Vector) -> Vector { - return v1 + v2; + return v1 + v2 * (2 as i32); } fn Make() -> Vector; @@ -72,7 +79,7 @@ import OwningPackage library "owner"; fn Direct(v1: OwningPackage.Vector, v2: OwningPackage.Vector) -> OwningPackage.Vector { // Direct call, different package. - return v1 + v2; + return v1 + v2 * (2 as i32); } // --- indirect_different_package_via_generic_in_same_package.carbon @@ -91,7 +98,7 @@ package OtherPackage library "[[@TEST_NAME]]"; import OwningPackage library "owner"; fn Generic(unused T:! type, v1: OwningPackage.Vector, v2: OwningPackage.Vector) -> OwningPackage.Vector { - return v1 + v2; + return v1 + v2 * (2 as i32); } fn Make() -> OwningPackage.Vector; @@ -110,7 +117,7 @@ fn CallGeneric() { // CHECK:STDOUT: source_filename = "owner.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define void @"_COp.Vector.OwningPackage:AddWith.385c807b97fbcdff.Core"(ptr sret({ i32 }) %return, ptr %self, ptr %other) #0 !dbg !4 { +// CHECK:STDOUT: define void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr sret({ i32 }) %return, ptr %self, ptr %other) #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc9_22.1.x = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !11 // CHECK:STDOUT: %.loc9_22.2 = load i32, ptr %.loc9_22.1.x, align 4, !dbg !11 @@ -122,6 +129,17 @@ fn CallGeneric() { // CHECK:STDOUT: ret void, !dbg !14 // CHECK:STDOUT: } // CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }) %return, ptr %self, i32 %n) #0 !dbg !15 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %.loc15_22.1.x = getelementptr inbounds nuw { i32 }, ptr %self, i32 0, i32 0, !dbg !22 +// CHECK:STDOUT: %.loc15_22.2 = load i32, ptr %.loc15_22.1.x, align 4, !dbg !22 +// CHECK:STDOUT: %Int.as.MulWith.impl.Op.call = mul i32 %.loc15_22.2, %n, !dbg !22 +// CHECK:STDOUT: %.loc15_28.2.x = getelementptr inbounds nuw { i32 }, ptr %return, i32 0, i32 0, !dbg !23 +// CHECK:STDOUT: store i32 %Int.as.MulWith.impl.Op.call, ptr %.loc15_28.2.x, align 4, !dbg !23 +// CHECK:STDOUT: ret void, !dbg !24 +// CHECK:STDOUT: } +// CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: // CHECK:STDOUT: !llvm.module.flags = !{!0, !1} @@ -131,7 +149,7 @@ fn CallGeneric() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "owner.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Vector.OwningPackage:AddWith.385c807b97fbcdff.Core", scope: null, file: !3, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Vector.OwningPackage:AddWith.f941828044620367.Core", scope: null, file: !3, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{!7, !7, !7} // CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -142,19 +160,57 @@ fn CallGeneric() { // CHECK:STDOUT: !12 = !DILocation(line: 9, column: 27, scope: !4) // CHECK:STDOUT: !13 = !DILocation(line: 9, column: 12, scope: !4) // CHECK:STDOUT: !14 = !DILocation(line: 9, column: 5, scope: !4) +// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core", scope: null, file: !3, line: 14, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) +// CHECK:STDOUT: !16 = !DISubroutineType(types: !17) +// CHECK:STDOUT: !17 = !{!7, !7, !18} +// CHECK:STDOUT: !18 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !19 = !{!20, !21} +// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !7) +// CHECK:STDOUT: !21 = !DILocalVariable(arg: 2, scope: !15, type: !18) +// CHECK:STDOUT: !22 = !DILocation(line: 15, column: 18, scope: !15) +// CHECK:STDOUT: !23 = !DILocation(line: 15, column: 12, scope: !15) +// CHECK:STDOUT: !24 = !DILocation(line: 15, column: 5, scope: !15) // CHECK:STDOUT: ; ModuleID = 'owner.impl.carbon' // CHECK:STDOUT: source_filename = "owner.impl.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CDirectInImplFile.OwningPackage(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.385c807b97fbcdff.Core"(ptr %return, ptr %v1, ptr %v2), !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %.loc5_18.1.temp = alloca { i32 }, align 4, !dbg !11 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc5_18.1.temp), !dbg !11 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %.loc5_18.1.temp, ptr %v2, i32 2), !dbg !11 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %.loc5_18.1.temp), !dbg !12 +// CHECK:STDOUT: call void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %.loc5_18.1.temp), !dbg !11 +// CHECK:STDOUT: ret void, !dbg !13 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.385c807b97fbcdff.Core"(ptr sret({ i32 }), ptr, ptr) +// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }), ptr, i32) +// CHECK:STDOUT: +// 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.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// 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.f5a3a9313c43d291:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !30 +// 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: attributes #0 = { nounwind } +// CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: // CHECK:STDOUT: !llvm.module.flags = !{!0, !1} // CHECK:STDOUT: !llvm.dbg.cu = !{!2} @@ -170,21 +226,67 @@ fn CallGeneric() { // CHECK:STDOUT: !8 = !{!9, !10} // CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) // CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 5, column: 10, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 5, column: 3, scope: !4) +// CHECK:STDOUT: !11 = !DILocation(line: 5, column: 15, scope: !4) +// CHECK:STDOUT: !12 = !DILocation(line: 5, column: 10, scope: !4) +// CHECK:STDOUT: !13 = !DILocation(line: 5, column: 3, scope: !4) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 5, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !16 = !{null, !17} +// CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !18 = !{!19} +// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) +// CHECK:STDOUT: !20 = !DILocation(line: 5, column: 15, scope: !14) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f5a3a9313c43d291:core.Destroy.Core", scope: null, file: !3, line: 5, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) +// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !23 = !{null, !7} +// CHECK:STDOUT: !24 = !{!25} +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !21, type: !7) +// CHECK:STDOUT: !26 = !DILocation(line: 5, column: 15, scope: !21) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4985a3280848ef19:core.Destroy.Core", scope: null, file: !3, line: 5, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) +// CHECK:STDOUT: !28 = !{!29} +// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !7) +// CHECK:STDOUT: !30 = !DILocation(line: 5, column: 15, scope: !27) // CHECK:STDOUT: ; ModuleID = 'direct_same_package.carbon' // CHECK:STDOUT: source_filename = "direct_same_package.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CDirect.OwningPackage(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.385c807b97fbcdff.Core"(ptr %return, ptr %v1, ptr %v2), !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %.loc7_18.1.temp = alloca { i32 }, align 4, !dbg !11 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_18.1.temp), !dbg !11 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %.loc7_18.1.temp, ptr %v2, i32 2), !dbg !11 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %.loc7_18.1.temp), !dbg !12 +// CHECK:STDOUT: call void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %.loc7_18.1.temp), !dbg !11 +// CHECK:STDOUT: ret void, !dbg !13 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.385c807b97fbcdff.Core"(ptr sret({ i32 }), ptr, ptr) +// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }), ptr, i32) +// CHECK:STDOUT: +// 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.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// 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.f5a3a9313c43d291:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !30 +// 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: attributes #0 = { nounwind } +// CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: // CHECK:STDOUT: !llvm.module.flags = !{!0, !1} // CHECK:STDOUT: !llvm.dbg.cu = !{!2} @@ -200,15 +302,55 @@ fn CallGeneric() { // CHECK:STDOUT: !8 = !{!9, !10} // CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) // CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 7, column: 10, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 7, column: 3, scope: !4) +// CHECK:STDOUT: !11 = !DILocation(line: 7, column: 15, scope: !4) +// CHECK:STDOUT: !12 = !DILocation(line: 7, column: 10, scope: !4) +// CHECK:STDOUT: !13 = !DILocation(line: 7, column: 3, scope: !4) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 7, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !16 = !{null, !17} +// CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !18 = !{!19} +// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) +// CHECK:STDOUT: !20 = !DILocation(line: 7, column: 15, scope: !14) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f5a3a9313c43d291:core.Destroy.Core", scope: null, file: !3, line: 7, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) +// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !23 = !{null, !7} +// CHECK:STDOUT: !24 = !{!25} +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !21, type: !7) +// CHECK:STDOUT: !26 = !DILocation(line: 7, column: 15, scope: !21) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4985a3280848ef19:core.Destroy.Core", scope: null, file: !3, line: 7, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) +// CHECK:STDOUT: !28 = !{!29} +// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !7) +// CHECK:STDOUT: !30 = !DILocation(line: 7, column: 15, scope: !27) // CHECK:STDOUT: ; ModuleID = 'generic_same_package.carbon' // CHECK:STDOUT: source_filename = "generic_same_package.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.385c807b97fbcdff.Core"(ptr sret({ i32 }), ptr, ptr) +// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }), ptr, i32) +// CHECK:STDOUT: +// 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.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.f5a3a9313c43d291:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CMake.OwningPackage(ptr sret({ i32 })) // CHECK:STDOUT: +// CHECK:STDOUT: attributes #0 = { nounwind } +// CHECK:STDOUT: // CHECK:STDOUT: !llvm.module.flags = !{!0, !1} // CHECK:STDOUT: !llvm.dbg.cu = !{!2} // CHECK:STDOUT: @@ -216,6 +358,24 @@ fn CallGeneric() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "generic_same_package.carbon", directory: "") +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) +// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) +// CHECK:STDOUT: !6 = !{null, !7} +// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !8 = !{!9} +// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) +// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 15, scope: !4) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f5a3a9313c43d291:core.Destroy.Core", scope: null, file: !3, line: 6, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) +// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) +// CHECK:STDOUT: !13 = !{null, !14} +// CHECK:STDOUT: !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !15 = !{!16} +// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) +// CHECK:STDOUT: !17 = !DILocation(line: 6, column: 15, scope: !11) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4985a3280848ef19:core.Destroy.Core", scope: null, file: !3, line: 6, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) +// CHECK:STDOUT: !19 = !{!20} +// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !18, type: !14) +// CHECK:STDOUT: !21 = !DILocation(line: 6, column: 15, scope: !18) // CHECK:STDOUT: ; ModuleID = 'indirect_same_package.carbon' // CHECK:STDOUT: source_filename = "indirect_same_package.carbon" // CHECK:STDOUT: @@ -231,28 +391,28 @@ fn CallGeneric() { // CHECK:STDOUT: call void @_CMake.OwningPackage(ptr %.loc7_28.1.temp), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_29.2.temp), !dbg !9 // CHECK:STDOUT: call void @_CGeneric.OwningPackage.e43630e9a6c38c3f(ptr %.loc7_29.2.temp, ptr %.loc7_20.1.temp, ptr %.loc7_28.1.temp), !dbg !9 -// CHECK:STDOUT: call void @"_COp.612ae9d0511601d0:core.Destroy.Core"(ptr %.loc7_29.2.temp), !dbg !9 -// CHECK:STDOUT: call void @"_COp.612ae9d0511601d0:core.Destroy.Core"(ptr %.loc7_28.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_COp.612ae9d0511601d0:core.Destroy.Core"(ptr %.loc7_20.1.temp), !dbg !7 +// CHECK:STDOUT: call void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %.loc7_29.2.temp), !dbg !9 +// CHECK:STDOUT: call void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %.loc7_28.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %.loc7_20.1.temp), !dbg !7 // CHECK:STDOUT: ret void, !dbg !10 // 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.859f345957a7d0c5:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cb7ee2a340edf7b8:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.f5a3a9313c43d291:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // 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.612ae9d0511601d0:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %self) #0 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } @@ -262,16 +422,22 @@ fn CallGeneric() { // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define linkonce_odr void @_CGeneric.OwningPackage.e43630e9a6c38c3f(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !29 { -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.385c807b97fbcdff.Core"(ptr %return, ptr %v1, ptr %v2), !dbg !36 -// CHECK:STDOUT: ret void, !dbg !37 +// CHECK:STDOUT: %temp = alloca { i32 }, align 4, !dbg !36 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !36 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %temp, ptr %v2, i32 2), !dbg !36 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %temp), !dbg !37 +// CHECK:STDOUT: call void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %temp), !dbg !36 +// CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.385c807b97fbcdff.Core"(ptr sret({ i32 }), ptr, ptr) +// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }), ptr, i32) +// CHECK:STDOUT: +// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr sret({ i32 }), ptr, ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @_CMake.OwningPackage, { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.612ae9d0511601d0:core.Destroy.Core", { 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.4985a3280848ef19: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 } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } @@ -290,21 +456,21 @@ fn CallGeneric() { // CHECK:STDOUT: !8 = !DILocation(line: 7, column: 23, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 7, column: 3, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.859f345957a7d0c5:core.Destroy.Core", scope: null, file: !3, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) // CHECK:STDOUT: !12 = !DISubroutineType(types: !13) // CHECK:STDOUT: !13 = !{null, !14} // CHECK:STDOUT: !14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !15 = !{!16} // CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) // CHECK:STDOUT: !17 = !DILocation(line: 7, column: 3, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cb7ee2a340edf7b8:core.Destroy.Core", scope: null, file: !3, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f5a3a9313c43d291:core.Destroy.Core", scope: null, file: !3, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) // CHECK:STDOUT: !19 = !DISubroutineType(types: !20) // CHECK:STDOUT: !20 = !{null, !21} // CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !22 = !{!23} // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) // CHECK:STDOUT: !24 = !DILocation(line: 7, column: 3, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.612ae9d0511601d0:core.Destroy.Core", scope: null, file: !3, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4985a3280848ef19:core.Destroy.Core", scope: null, file: !3, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !21) // CHECK:STDOUT: !28 = !DILocation(line: 7, column: 3, scope: !25) @@ -315,21 +481,50 @@ fn CallGeneric() { // CHECK:STDOUT: !33 = !{!34, !35} // CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !29, type: !21) // CHECK:STDOUT: !35 = !DILocalVariable(arg: 2, scope: !29, type: !21) -// CHECK:STDOUT: !36 = !DILocation(line: 6, column: 10, scope: !29) -// CHECK:STDOUT: !37 = !DILocation(line: 6, column: 3, scope: !29) +// CHECK:STDOUT: !36 = !DILocation(line: 6, column: 15, scope: !29) +// CHECK:STDOUT: !37 = !DILocation(line: 6, column: 10, scope: !29) +// CHECK:STDOUT: !38 = !DILocation(line: 6, column: 3, scope: !29) // CHECK:STDOUT: ; ModuleID = 'direct_different_package.carbon' // CHECK:STDOUT: source_filename = "direct_different_package.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CDirect.OtherPackage(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.385c807b97fbcdff.Core"(ptr %return, ptr %v1, ptr %v2), !dbg !11 -// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: %.loc7_18.1.temp = alloca { i32 }, align 4, !dbg !11 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_18.1.temp), !dbg !11 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %.loc7_18.1.temp, ptr %v2, i32 2), !dbg !11 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %.loc7_18.1.temp), !dbg !12 +// CHECK:STDOUT: call void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %.loc7_18.1.temp), !dbg !11 +// CHECK:STDOUT: ret void, !dbg !13 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.385c807b97fbcdff.Core"(ptr sret({ i32 }), ptr, ptr) +// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }), ptr, i32) +// CHECK:STDOUT: +// 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.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// 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.f5a3a9313c43d291:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !26 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !30 +// 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: attributes #0 = { nounwind } +// CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } // CHECK:STDOUT: // CHECK:STDOUT: !llvm.module.flags = !{!0, !1} // CHECK:STDOUT: !llvm.dbg.cu = !{!2} @@ -345,8 +540,26 @@ fn CallGeneric() { // CHECK:STDOUT: !8 = !{!9, !10} // CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) // CHECK:STDOUT: !10 = !DILocalVariable(arg: 2, scope: !4, type: !7) -// CHECK:STDOUT: !11 = !DILocation(line: 7, column: 10, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 7, column: 3, scope: !4) +// CHECK:STDOUT: !11 = !DILocation(line: 7, column: 15, scope: !4) +// CHECK:STDOUT: !12 = !DILocation(line: 7, column: 10, scope: !4) +// CHECK:STDOUT: !13 = !DILocation(line: 7, column: 3, scope: !4) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 7, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +// CHECK:STDOUT: !15 = !DISubroutineType(types: !16) +// CHECK:STDOUT: !16 = !{null, !17} +// CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !18 = !{!19} +// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) +// CHECK:STDOUT: !20 = !DILocation(line: 7, column: 15, scope: !14) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f5a3a9313c43d291:core.Destroy.Core", scope: null, file: !3, line: 7, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) +// CHECK:STDOUT: !22 = !DISubroutineType(types: !23) +// CHECK:STDOUT: !23 = !{null, !7} +// CHECK:STDOUT: !24 = !{!25} +// CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !21, type: !7) +// CHECK:STDOUT: !26 = !DILocation(line: 7, column: 15, scope: !21) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4985a3280848ef19:core.Destroy.Core", scope: null, file: !3, line: 7, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) +// CHECK:STDOUT: !28 = !{!29} +// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !7) +// CHECK:STDOUT: !30 = !DILocation(line: 7, column: 15, scope: !27) // CHECK:STDOUT: ; ModuleID = 'indirect_different_package_via_generic_in_same_package.carbon' // CHECK:STDOUT: source_filename = "indirect_different_package_via_generic_in_same_package.carbon" // CHECK:STDOUT: @@ -362,28 +575,28 @@ fn CallGeneric() { // CHECK:STDOUT: call void @_CMake.OwningPackage(ptr %.loc7_70.1.temp), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_71.2.temp), !dbg !9 // CHECK:STDOUT: call void @_CGeneric.OwningPackage.e43630e9a6c38c3f(ptr %.loc7_71.2.temp, ptr %.loc7_48.1.temp, ptr %.loc7_70.1.temp), !dbg !9 -// CHECK:STDOUT: call void @"_COp.612ae9d0511601d0:core.Destroy.Core"(ptr %.loc7_71.2.temp), !dbg !9 -// CHECK:STDOUT: call void @"_COp.612ae9d0511601d0:core.Destroy.Core"(ptr %.loc7_70.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_COp.612ae9d0511601d0:core.Destroy.Core"(ptr %.loc7_48.1.temp), !dbg !7 +// CHECK:STDOUT: call void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %.loc7_71.2.temp), !dbg !9 +// CHECK:STDOUT: call void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %.loc7_70.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %.loc7_48.1.temp), !dbg !7 // CHECK:STDOUT: ret void, !dbg !10 // 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.5fc112a8dca30040:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.8a5586996f8a2aa7:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.f5a3a9313c43d291:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // 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.612ae9d0511601d0:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %self) #0 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } @@ -393,16 +606,22 @@ fn CallGeneric() { // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define linkonce_odr void @_CGeneric.OwningPackage.e43630e9a6c38c3f(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !29 { -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.385c807b97fbcdff.Core"(ptr %return, ptr %v1, ptr %v2), !dbg !36 -// CHECK:STDOUT: ret void, !dbg !37 +// CHECK:STDOUT: %temp = alloca { i32 }, align 4, !dbg !36 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !36 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %temp, ptr %v2, i32 2), !dbg !36 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %temp), !dbg !37 +// CHECK:STDOUT: call void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %temp), !dbg !36 +// CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.385c807b97fbcdff.Core"(ptr sret({ i32 }), ptr, ptr) +// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }), ptr, i32) +// CHECK:STDOUT: +// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr sret({ i32 }), ptr, ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @_CMake.OwningPackage, { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.612ae9d0511601d0:core.Destroy.Core", { 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.4985a3280848ef19: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 } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } @@ -421,21 +640,21 @@ fn CallGeneric() { // CHECK:STDOUT: !8 = !DILocation(line: 7, column: 51, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 7, column: 3, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5fc112a8dca30040:core.Destroy.Core", scope: null, file: !3, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) // CHECK:STDOUT: !12 = !DISubroutineType(types: !13) // CHECK:STDOUT: !13 = !{null, !14} // CHECK:STDOUT: !14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !15 = !{!16} // CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) // CHECK:STDOUT: !17 = !DILocation(line: 7, column: 3, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8a5586996f8a2aa7:core.Destroy.Core", scope: null, file: !3, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f5a3a9313c43d291:core.Destroy.Core", scope: null, file: !3, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) // CHECK:STDOUT: !19 = !DISubroutineType(types: !20) // CHECK:STDOUT: !20 = !{null, !21} // CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !22 = !{!23} // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) // CHECK:STDOUT: !24 = !DILocation(line: 7, column: 3, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.612ae9d0511601d0:core.Destroy.Core", scope: null, file: !3, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4985a3280848ef19:core.Destroy.Core", scope: null, file: !3, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !21) // CHECK:STDOUT: !28 = !DILocation(line: 7, column: 3, scope: !25) @@ -446,15 +665,38 @@ fn CallGeneric() { // CHECK:STDOUT: !33 = !{!34, !35} // CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !29, type: !21) // CHECK:STDOUT: !35 = !DILocalVariable(arg: 2, scope: !29, type: !21) -// CHECK:STDOUT: !36 = !DILocation(line: 6, column: 10, scope: !29) -// CHECK:STDOUT: !37 = !DILocation(line: 6, column: 3, scope: !29) +// CHECK:STDOUT: !36 = !DILocation(line: 6, column: 15, scope: !29) +// CHECK:STDOUT: !37 = !DILocation(line: 6, column: 10, scope: !29) +// CHECK:STDOUT: !38 = !DILocation(line: 6, column: 3, scope: !29) // CHECK:STDOUT: ; ModuleID = 'generic_different_package.carbon' // CHECK:STDOUT: source_filename = "generic_different_package.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.385c807b97fbcdff.Core"(ptr sret({ i32 }), ptr, ptr) +// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }), ptr, i32) +// CHECK:STDOUT: +// 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.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !10 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.f5a3a9313c43d291:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !17 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define weak_odr void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: ret void, !dbg !21 +// CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CMake.OtherPackage(ptr sret({ i32 })) // CHECK:STDOUT: +// CHECK:STDOUT: attributes #0 = { nounwind } +// CHECK:STDOUT: // CHECK:STDOUT: !llvm.module.flags = !{!0, !1} // CHECK:STDOUT: !llvm.dbg.cu = !{!2} // CHECK:STDOUT: @@ -462,6 +704,24 @@ fn CallGeneric() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "generic_different_package.carbon", directory: "") +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) +// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) +// CHECK:STDOUT: !6 = !{null, !7} +// CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +// CHECK:STDOUT: !8 = !{!9} +// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) +// CHECK:STDOUT: !10 = !DILocation(line: 6, column: 15, scope: !4) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f5a3a9313c43d291:core.Destroy.Core", scope: null, file: !3, line: 6, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) +// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) +// CHECK:STDOUT: !13 = !{null, !14} +// CHECK:STDOUT: !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !15 = !{!16} +// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) +// CHECK:STDOUT: !17 = !DILocation(line: 6, column: 15, scope: !11) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4985a3280848ef19:core.Destroy.Core", scope: null, file: !3, line: 6, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) +// CHECK:STDOUT: !19 = !{!20} +// CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !18, type: !14) +// CHECK:STDOUT: !21 = !DILocation(line: 6, column: 15, scope: !18) // CHECK:STDOUT: ; ModuleID = 'indirect_different_package_via_generic_in_different_package.carbon' // CHECK:STDOUT: source_filename = "indirect_different_package_via_generic_in_different_package.carbon" // CHECK:STDOUT: @@ -477,28 +737,28 @@ fn CallGeneric() { // CHECK:STDOUT: call void @_CMake.OtherPackage(ptr %.loc7_28.1.temp), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_29.2.temp), !dbg !9 // CHECK:STDOUT: call void @_CGeneric.OtherPackage.e43630e9a6c38c3f(ptr %.loc7_29.2.temp, ptr %.loc7_20.1.temp, ptr %.loc7_28.1.temp), !dbg !9 -// CHECK:STDOUT: call void @"_COp.d23c6db4b3ff5cda:core.Destroy.Core"(ptr %.loc7_29.2.temp), !dbg !9 -// CHECK:STDOUT: call void @"_COp.d23c6db4b3ff5cda:core.Destroy.Core"(ptr %.loc7_28.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_COp.d23c6db4b3ff5cda:core.Destroy.Core"(ptr %.loc7_20.1.temp), !dbg !7 +// CHECK:STDOUT: call void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %.loc7_29.2.temp), !dbg !9 +// CHECK:STDOUT: call void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %.loc7_28.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %.loc7_20.1.temp), !dbg !7 // CHECK:STDOUT: ret void, !dbg !10 // 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.157098875033be5e:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3106d0a000a1327b:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.f5a3a9313c43d291:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // 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.d23c6db4b3ff5cda:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %self) #0 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } @@ -508,16 +768,22 @@ fn CallGeneric() { // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define linkonce_odr void @_CGeneric.OtherPackage.e43630e9a6c38c3f(ptr sret({ i32 }) %return, ptr %v1, ptr %v2) #0 !dbg !29 { -// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.385c807b97fbcdff.Core"(ptr %return, ptr %v1, ptr %v2), !dbg !36 -// CHECK:STDOUT: ret void, !dbg !37 +// CHECK:STDOUT: %temp = alloca { i32 }, align 4, !dbg !36 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !36 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr %temp, ptr %v2, i32 2), !dbg !36 +// CHECK:STDOUT: call void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr %return, ptr %v1, ptr %temp), !dbg !37 +// CHECK:STDOUT: call void @"_COp.4985a3280848ef19:core.Destroy.Core"(ptr %temp), !dbg !36 +// CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.385c807b97fbcdff.Core"(ptr sret({ i32 }), ptr, ptr) +// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:MulWith.84588f41d61dafba.Core"(ptr sret({ i32 }), ptr, i32) +// CHECK:STDOUT: +// CHECK:STDOUT: declare void @"_COp.Vector.OwningPackage:AddWith.f941828044620367.Core"(ptr sret({ i32 }), ptr, ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @_CMake.OtherPackage, { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.d23c6db4b3ff5cda:core.Destroy.Core", { 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.4985a3280848ef19: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 } // CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } @@ -536,21 +802,21 @@ fn CallGeneric() { // CHECK:STDOUT: !8 = !DILocation(line: 7, column: 23, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 7, column: 3, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.157098875033be5e:core.Destroy.Core", scope: null, file: !3, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) // CHECK:STDOUT: !12 = !DISubroutineType(types: !13) // CHECK:STDOUT: !13 = !{null, !14} // CHECK:STDOUT: !14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !15 = !{!16} // CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) // CHECK:STDOUT: !17 = !DILocation(line: 7, column: 3, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3106d0a000a1327b:core.Destroy.Core", scope: null, file: !3, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f5a3a9313c43d291:core.Destroy.Core", scope: null, file: !3, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) // CHECK:STDOUT: !19 = !DISubroutineType(types: !20) // CHECK:STDOUT: !20 = !{null, !21} // CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !22 = !{!23} // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) // CHECK:STDOUT: !24 = !DILocation(line: 7, column: 3, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d23c6db4b3ff5cda:core.Destroy.Core", scope: null, file: !3, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4985a3280848ef19:core.Destroy.Core", scope: null, file: !3, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !21) // CHECK:STDOUT: !28 = !DILocation(line: 7, column: 3, scope: !25) @@ -561,5 +827,6 @@ fn CallGeneric() { // CHECK:STDOUT: !33 = !{!34, !35} // CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !29, type: !21) // CHECK:STDOUT: !35 = !DILocalVariable(arg: 2, scope: !29, type: !21) -// CHECK:STDOUT: !36 = !DILocation(line: 6, column: 10, scope: !29) -// CHECK:STDOUT: !37 = !DILocation(line: 6, column: 3, scope: !29) +// CHECK:STDOUT: !36 = !DILocation(line: 6, column: 15, scope: !29) +// CHECK:STDOUT: !37 = !DILocation(line: 6, column: 10, scope: !29) +// CHECK:STDOUT: !38 = !DILocation(line: 6, column: 3, scope: !29) diff --git a/toolchain/lower/testdata/pointer/address_of_field.carbon b/toolchain/lower/testdata/pointer/address_of_field.carbon index c2f0b8ae9c9b..0809a0495806 100644 --- a/toolchain/lower/testdata/pointer/address_of_field.carbon +++ b/toolchain/lower/testdata/pointer/address_of_field.carbon @@ -20,7 +20,7 @@ fn F() { // CHECK:STDOUT: ; ModuleID = 'address_of_field.carbon' // CHECK:STDOUT: source_filename = "address_of_field.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @struct.8fc.loc16_3 = internal constant { i32, i32 } { i32 1, i32 2 } +// CHECK:STDOUT: @struct.631.loc16_3 = internal constant { i32, i32 } { i32 1, i32 2 } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CG.Main(ptr) // CHECK:STDOUT: @@ -31,21 +31,21 @@ fn F() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %s.var), !dbg !7 // CHECK:STDOUT: %.loc16_46.3.a = getelementptr inbounds nuw { i32, i32 }, ptr %s.var, i32 0, i32 0, !dbg !8 // CHECK:STDOUT: %.loc16_46.6.b = getelementptr inbounds nuw { i32, i32 }, ptr %s.var, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %s.var, ptr align 4 @struct.8fc.loc16_3, i64 8, i1 false), !dbg !7 +// 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 !7 // CHECK:STDOUT: %.loc17.b = getelementptr inbounds nuw { i32, i32 }, ptr %s.var, i32 0, i32 1, !dbg !9 // CHECK:STDOUT: call void @_CG.Main(ptr %.loc17.b), !dbg !10 -// CHECK:STDOUT: call void @"_COp.15b8ed913d10fa21:core.Destroy.Core"(ptr %s.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.f30036b66b652106:core.Destroy.Core"(ptr %s.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !12 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.15b8ed913d10fa21:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.f30036b66b652106:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } @@ -74,14 +74,14 @@ fn F() { // CHECK:STDOUT: !9 = !DILocation(line: 17, column: 6, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 17, column: 3, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) // CHECK:STDOUT: !13 = !DISubroutineType(types: !14) // CHECK:STDOUT: !14 = !{null, !15} // CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !16 = !{!17} // CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) // CHECK:STDOUT: !18 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.15b8ed913d10fa21:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f30036b66b652106:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !20 = !DISubroutineType(types: !21) // CHECK:STDOUT: !21 = !{null, !22} // CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) diff --git a/toolchain/lower/testdata/pointer/address_of_unused.carbon b/toolchain/lower/testdata/pointer/address_of_unused.carbon index 579e3b4408d9..dcfd6830ffc8 100644 --- a/toolchain/lower/testdata/pointer/address_of_unused.carbon +++ b/toolchain/lower/testdata/pointer/address_of_unused.carbon @@ -24,12 +24,12 @@ fn F() { // CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !7 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !7 // CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !7 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !9 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !9 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !15 // CHECK:STDOUT: } @@ -52,7 +52,7 @@ fn F() { // CHECK:STDOUT: !6 = !{null} // CHECK:STDOUT: !7 = !DILocation(line: 14, column: 3, scope: !4) // CHECK:STDOUT: !8 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 14, type: !10, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !13) +// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 14, type: !10, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !13) // CHECK:STDOUT: !10 = !DISubroutineType(types: !11) // CHECK:STDOUT: !11 = !{null, !12} // CHECK:STDOUT: !12 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) diff --git a/toolchain/lower/testdata/pointer/basic.carbon b/toolchain/lower/testdata/pointer/basic.carbon index 332d39a53cb3..eb300b6ed896 100644 --- a/toolchain/lower/testdata/pointer/basic.carbon +++ b/toolchain/lower/testdata/pointer/basic.carbon @@ -36,12 +36,12 @@ fn F() -> i32 { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !16 // CHECK:STDOUT: store i32 0, ptr %n.var, align 4, !dbg !16 // CHECK:STDOUT: %G.call = call i32 @_CG.Main(ptr %n.var), !dbg !17 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %n.var), !dbg !16 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %n.var), !dbg !16 // CHECK:STDOUT: ret i32 %G.call, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } @@ -74,7 +74,7 @@ fn F() -> i32 { // CHECK:STDOUT: !16 = !DILocation(line: 18, column: 3, scope: !13) // CHECK:STDOUT: !17 = !DILocation(line: 19, column: 10, scope: !13) // CHECK:STDOUT: !18 = !DILocation(line: 19, column: 3, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 18, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 18, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) // CHECK:STDOUT: !20 = !DISubroutineType(types: !21) // CHECK:STDOUT: !21 = !{null, !7} // CHECK:STDOUT: !22 = !{!23} diff --git a/toolchain/lower/testdata/primitives/char.carbon b/toolchain/lower/testdata/primitives/char.carbon index 286bf5e26999..dde44fd6eb35 100644 --- a/toolchain/lower/testdata/primitives/char.carbon +++ b/toolchain/lower/testdata/primitives/char.carbon @@ -108,7 +108,7 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: source_filename = "char.carbon" // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define i8 @"_CConvert.CharLike.Main:ImplicitAs.581702079bc8179f.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %self) #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret i8 120, !dbg !11 // CHECK:STDOUT: } @@ -116,32 +116,32 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CConvert.Main(i8 %c, i8 %u) #0 !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %c), !dbg !18 -// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc23 = call i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.c1ed30af95a64e0c"(i8 %c), !dbg !19 -// CHECK:STDOUT: call void @_CDiscard.Main.8e01d725ab473947(i16 %char.as.As.impl.Convert.call.loc23), !dbg !20 -// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc24 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.f1521e968cbfdd46"(i8 %c), !dbg !21 -// CHECK:STDOUT: call void @_CDiscard.Main.57ab4597fefa1aeb(i32 %char.as.As.impl.Convert.call.loc24), !dbg !22 -// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc26 = call i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.43adb8639c4d0a28"(i8 %c), !dbg !23 -// CHECK:STDOUT: call void @_CDiscard.Main.8e01d725ab473947(i16 %char.as.As.impl.Convert.call.loc26), !dbg !24 -// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc27 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.2f75af91db35e3a4"(i8 %c), !dbg !25 -// CHECK:STDOUT: call void @_CDiscard.Main.57ab4597fefa1aeb(i32 %char.as.As.impl.Convert.call.loc27), !dbg !26 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %u), !dbg !27 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %c), !dbg !18 +// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc23 = call i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.dbe0a954f4d47a23"(i8 %c), !dbg !19 +// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 %char.as.As.impl.Convert.call.loc23), !dbg !20 +// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc24 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.691b43fb97812586"(i8 %c), !dbg !21 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.As.impl.Convert.call.loc24), !dbg !22 +// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc26 = call i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.48e83ee0f3ef2ee8"(i8 %c), !dbg !23 +// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 %char.as.As.impl.Convert.call.loc26), !dbg !24 +// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc27 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.8da8ddbe24cfd39a"(i8 %c), !dbg !25 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.As.impl.Convert.call.loc27), !dbg !26 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %u), !dbg !27 // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CConvertConstant.Main() #0 !dbg !29 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 120), !dbg !32 -// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc33 = call i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.c1ed30af95a64e0c"(i8 120), !dbg !33 -// CHECK:STDOUT: call void @_CDiscard.Main.8e01d725ab473947(i16 %char.as.As.impl.Convert.call.loc33), !dbg !34 -// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc34 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.f1521e968cbfdd46"(i8 120), !dbg !35 -// CHECK:STDOUT: call void @_CDiscard.Main.57ab4597fefa1aeb(i32 %char.as.As.impl.Convert.call.loc34), !dbg !36 -// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc35 = call i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.43adb8639c4d0a28"(i8 120), !dbg !37 -// CHECK:STDOUT: call void @_CDiscard.Main.8e01d725ab473947(i16 %char.as.As.impl.Convert.call.loc35), !dbg !38 -// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc36 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.2f75af91db35e3a4"(i8 120), !dbg !39 -// CHECK:STDOUT: call void @_CDiscard.Main.57ab4597fefa1aeb(i32 %char.as.As.impl.Convert.call.loc36), !dbg !40 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 123), !dbg !41 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 120), !dbg !32 +// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc33 = call i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.dbe0a954f4d47a23"(i8 120), !dbg !33 +// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 %char.as.As.impl.Convert.call.loc33), !dbg !34 +// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc34 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.691b43fb97812586"(i8 120), !dbg !35 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.As.impl.Convert.call.loc34), !dbg !36 +// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc35 = call i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.48e83ee0f3ef2ee8"(i8 120), !dbg !37 +// CHECK:STDOUT: call void @_CDiscard.Main.147e0bd019a31663(i16 %char.as.As.impl.Convert.call.loc35), !dbg !38 +// CHECK:STDOUT: %char.as.As.impl.Convert.call.loc36 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.8da8ddbe24cfd39a"(i8 120), !dbg !39 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.As.impl.Convert.call.loc36), !dbg !40 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 123), !dbg !41 // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -166,40 +166,40 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CCompareCharCharLike.Main(i8 %a, ptr %b) #0 !dbg !60 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc50 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.581702079bc8179f.Core"(ptr %b), !dbg !66 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc50 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !66 // CHECK:STDOUT: %char.as.EqWith.impl.Equal.call = icmp eq i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc50, !dbg !67 // CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.EqWith.impl.Equal.call), !dbg !68 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc51 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.581702079bc8179f.Core"(ptr %b), !dbg !69 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc51 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !69 // CHECK:STDOUT: %char.as.EqWith.impl.NotEqual.call = icmp ne i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc51, !dbg !70 // CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.EqWith.impl.NotEqual.call), !dbg !71 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc52 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.581702079bc8179f.Core"(ptr %b), !dbg !72 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc52 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !72 // CHECK:STDOUT: %char.as.OrderedWith.impl.Less.call = icmp ult i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc52, !dbg !73 // CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.Less.call), !dbg !74 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc53 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.581702079bc8179f.Core"(ptr %b), !dbg !75 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc53 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !75 // CHECK:STDOUT: %char.as.OrderedWith.impl.LessOrEquivalent.call = icmp ule i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc53, !dbg !76 // CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.LessOrEquivalent.call), !dbg !77 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc54 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.581702079bc8179f.Core"(ptr %b), !dbg !78 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc54 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !78 // CHECK:STDOUT: %char.as.OrderedWith.impl.Greater.call = icmp ugt i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc54, !dbg !79 // CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.Greater.call), !dbg !80 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc55 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.581702079bc8179f.Core"(ptr %b), !dbg !81 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc55 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !81 // CHECK:STDOUT: %char.as.OrderedWith.impl.GreaterOrEquivalent.call = icmp uge i8 %a, %CharLike.as.ImplicitAs.impl.Convert.call.loc55, !dbg !82 // CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %char.as.OrderedWith.impl.GreaterOrEquivalent.call), !dbg !83 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc57 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.581702079bc8179f.Core"(ptr %b), !dbg !84 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc57 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !84 // CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.call = icmp eq i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc57, %a, !dbg !84 // CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.EqWith.impl.Equal.call), !dbg !85 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc58 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.581702079bc8179f.Core"(ptr %b), !dbg !86 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc58 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !86 // CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.call = icmp ne i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc58, %a, !dbg !86 // CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.EqWith.impl.NotEqual.call), !dbg !87 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc59 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.581702079bc8179f.Core"(ptr %b), !dbg !88 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc59 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !88 // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.call = icmp ult i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc59, %a, !dbg !88 // CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.Less.call), !dbg !89 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc60 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.581702079bc8179f.Core"(ptr %b), !dbg !90 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc60 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !90 // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call = icmp ule i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc60, %a, !dbg !90 // CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call), !dbg !91 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc61 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.581702079bc8179f.Core"(ptr %b), !dbg !92 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc61 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !92 // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.call = icmp ugt i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc61, %a, !dbg !92 // CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.Greater.call), !dbg !93 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc62 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.581702079bc8179f.Core"(ptr %b), !dbg !94 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc62 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %b), !dbg !94 // CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call = icmp uge i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc62, %a, !dbg !94 // CHECK:STDOUT: call void @_CDiscard.Main.a4c7fafe8a72cac4(i1 %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call), !dbg !95 // CHECK:STDOUT: ret void, !dbg !96 @@ -208,130 +208,130 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CSubCharChar.Main(i8 %c, ptr %d) #0 !dbg !97 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call.loc66 = call i32 @"_COp.Char.Core:SubWith.581702079bc8179f.Core"(i8 %c, i8 %c), !dbg !101 -// CHECK:STDOUT: call void @_CDiscard.Main.57ab4597fefa1aeb(i32 %char.as.SubWith.impl.Op.call.loc66), !dbg !102 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc67 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.581702079bc8179f.Core"(ptr %d), !dbg !103 -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call.loc67 = call i32 @"_COp.Char.Core:SubWith.f2f193b02ea5e339.Core.0865d5021629acbc"(i8 %c, i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc67), !dbg !104 -// CHECK:STDOUT: call void @_CDiscard.Main.57ab4597fefa1aeb(i32 %char.as.SubWith.impl.Op.call.loc67), !dbg !105 -// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc68 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.581702079bc8179f.Core"(ptr %d), !dbg !106 -// CHECK:STDOUT: %T.as_type.as.SubWith.impl.Op.call = call i32 @"_COp.1e5a32f96c66d7d0:SubWith.581702079bc8179f.Core.0865d5021629acbc"(i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc68, i8 %c), !dbg !106 -// CHECK:STDOUT: call void @_CDiscard.Main.57ab4597fefa1aeb(i32 %T.as_type.as.SubWith.impl.Op.call), !dbg !107 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call.loc66 = call i32 @"_COp.Char.Core:SubWith.295cf9b677564c5c.Core"(i8 %c, i8 %c), !dbg !101 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.SubWith.impl.Op.call.loc66), !dbg !102 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc67 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %d), !dbg !103 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call.loc67 = call i32 @"_COp.Char.Core:SubWith.7c3e388e0087434a.Core.ab8531ca840d1501"(i8 %c, i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc67), !dbg !104 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %char.as.SubWith.impl.Op.call.loc67), !dbg !105 +// CHECK:STDOUT: %CharLike.as.ImplicitAs.impl.Convert.call.loc68 = call i8 @"_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core"(ptr %d), !dbg !106 +// CHECK:STDOUT: %T.as_type.as.SubWith.impl.Op.call = call i32 @"_COp.b27934686504f96c:SubWith.295cf9b677564c5c.Core.ab8531ca840d1501"(i8 %CharLike.as.ImplicitAs.impl.Convert.call.loc68, i8 %c), !dbg !106 +// CHECK:STDOUT: call void @_CDiscard.Main.eadca4a969cf6f21(i32 %T.as_type.as.SubWith.impl.Op.call), !dbg !107 // CHECK:STDOUT: ret void, !dbg !108 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare i32 @"_COp.Char.Core:SubWith.581702079bc8179f.Core"(i8, i8) +// CHECK:STDOUT: declare i32 @"_COp.Char.Core:SubWith.295cf9b677564c5c.Core"(i8, i8) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CAddSubInt8.Main(i8 %c, i8 %i) #0 !dbg !109 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.6286bedac2f127aa.Core.12dc8c542d91665e"(i8 %c, i8 %i), !dbg !116 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %char.as.AddWith.impl.Op.call), !dbg !117 -// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.12dc8c542d91665e"(i8 %i, i8 %c), !dbg !118 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !119 -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.6286bedac2f127aa.Core.12dc8c542d91665e"(i8 %c, i8 %i), !dbg !120 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %char.as.SubWith.impl.Op.call), !dbg !121 +// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.852ed75bdc952b41"(i8 %c, i8 %i), !dbg !116 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !117 +// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.852ed75bdc952b41"(i8 %i, i8 %c), !dbg !118 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !119 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.852ed75bdc952b41"(i8 %c, i8 %i), !dbg !120 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !121 // CHECK:STDOUT: ret void, !dbg !122 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CAddSubInt16.Main(i8 %c, i16 %i) #0 !dbg !123 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.6286bedac2f127aa.Core.e4167ff86be21d2e"(i8 %c, i16 %i), !dbg !130 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %char.as.AddWith.impl.Op.call), !dbg !131 -// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.e4167ff86be21d2e"(i16 %i, i8 %c), !dbg !132 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !133 -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.6286bedac2f127aa.Core.e4167ff86be21d2e"(i8 %c, i16 %i), !dbg !134 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %char.as.SubWith.impl.Op.call), !dbg !135 +// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.4de33f895b808f69"(i8 %c, i16 %i), !dbg !130 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !131 +// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.4de33f895b808f69"(i16 %i, i8 %c), !dbg !132 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !133 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.4de33f895b808f69"(i8 %c, i16 %i), !dbg !134 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !135 // CHECK:STDOUT: ret void, !dbg !136 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CAddSubInt32.Main(i8 %c, i32 %i) #0 !dbg !137 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.6286bedac2f127aa.Core.34acc399edfc4a7c"(i8 %c, i32 %i), !dbg !144 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %char.as.AddWith.impl.Op.call), !dbg !145 -// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.34acc399edfc4a7c"(i32 %i, i8 %c), !dbg !146 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !147 -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.6286bedac2f127aa.Core.34acc399edfc4a7c"(i8 %c, i32 %i), !dbg !148 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %char.as.SubWith.impl.Op.call), !dbg !149 +// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.ae42bf297a1ee9b6"(i8 %c, i32 %i), !dbg !144 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !145 +// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.ae42bf297a1ee9b6"(i32 %i, i8 %c), !dbg !146 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !147 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.ae42bf297a1ee9b6"(i8 %c, i32 %i), !dbg !148 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !149 // CHECK:STDOUT: ret void, !dbg !150 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CAddSubUInt8.Main(i8 %c, i8 %i) #0 !dbg !151 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.6286bedac2f127aa.Core.4b76c4a1fafe4833"(i8 %c, i8 %i), !dbg !155 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %char.as.AddWith.impl.Op.call), !dbg !156 -// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.4b76c4a1fafe4833"(i8 %i, i8 %c), !dbg !157 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !158 -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.6286bedac2f127aa.Core.4b76c4a1fafe4833"(i8 %c, i8 %i), !dbg !159 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %char.as.SubWith.impl.Op.call), !dbg !160 +// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.3ff23939bf07ad5f"(i8 %c, i8 %i), !dbg !155 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !156 +// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.3ff23939bf07ad5f"(i8 %i, i8 %c), !dbg !157 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !158 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.3ff23939bf07ad5f"(i8 %c, i8 %i), !dbg !159 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !160 // CHECK:STDOUT: ret void, !dbg !161 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CAddSubUInt16.Main(i8 %c, i16 %i) #0 !dbg !162 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.6286bedac2f127aa.Core.2506e29f5fc9869c"(i8 %c, i16 %i), !dbg !169 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %char.as.AddWith.impl.Op.call), !dbg !170 -// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.2506e29f5fc9869c"(i16 %i, i8 %c), !dbg !171 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !172 -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.6286bedac2f127aa.Core.2506e29f5fc9869c"(i8 %c, i16 %i), !dbg !173 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %char.as.SubWith.impl.Op.call), !dbg !174 +// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.a374c478e4368fa7"(i8 %c, i16 %i), !dbg !169 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !170 +// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.a374c478e4368fa7"(i16 %i, i8 %c), !dbg !171 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !172 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.a374c478e4368fa7"(i8 %c, i16 %i), !dbg !173 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !174 // CHECK:STDOUT: ret void, !dbg !175 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CAddSubUInt32.Main(i8 %c, i32 %i) #0 !dbg !176 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.6286bedac2f127aa.Core.31921d9f2a6d409b"(i8 %c, i32 %i), !dbg !183 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %char.as.AddWith.impl.Op.call), !dbg !184 -// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.31921d9f2a6d409b"(i32 %i, i8 %c), !dbg !185 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !186 -// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.6286bedac2f127aa.Core.31921d9f2a6d409b"(i8 %c, i32 %i), !dbg !187 -// CHECK:STDOUT: call void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %char.as.SubWith.impl.Op.call), !dbg !188 +// CHECK:STDOUT: %char.as.AddWith.impl.Op.call = call i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.bca5dfe49de51c76"(i8 %c, i32 %i), !dbg !183 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.AddWith.impl.Op.call), !dbg !184 +// CHECK:STDOUT: %T.as_type.as.AddWith.impl.Op.call = call i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.bca5dfe49de51c76"(i32 %i, i8 %c), !dbg !185 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %T.as_type.as.AddWith.impl.Op.call), !dbg !186 +// CHECK:STDOUT: %char.as.SubWith.impl.Op.call = call i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.bca5dfe49de51c76"(i8 %c, i32 %i), !dbg !187 +// CHECK:STDOUT: call void @_CDiscard.Main.15688e19507865c6(i8 %char.as.SubWith.impl.Op.call), !dbg !188 // CHECK:STDOUT: ret void, !dbg !189 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.53bbd1b3eb3d0d9c(i8 %x) #0 !dbg !190 { +// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.15688e19507865c6(i8 %x) #0 !dbg !190 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !195 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.c1ed30af95a64e0c"(i8 %self) #0 !dbg !196 { -// CHECK:STDOUT: %1 = call i16 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.5fc30b52fc63534e"(i8 %self), !dbg !202 +// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.dbe0a954f4d47a23"(i8 %self) #0 !dbg !196 { +// CHECK:STDOUT: %1 = call i16 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.b906c5940adce8f0"(i8 %self), !dbg !202 // CHECK:STDOUT: ret i16 %1, !dbg !202 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.8e01d725ab473947(i16 %x) #0 !dbg !203 { +// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.147e0bd019a31663(i16 %x) #0 !dbg !203 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !208 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.f1521e968cbfdd46"(i8 %self) #0 !dbg !209 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.5f7c4ef1aceb8644"(i8 %self), !dbg !214 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.691b43fb97812586"(i8 %self) #0 !dbg !209 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.dbd6eca082a732b7"(i8 %self), !dbg !214 // CHECK:STDOUT: ret i32 %1, !dbg !214 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.57ab4597fefa1aeb(i32 %x) #0 !dbg !215 { +// CHECK:STDOUT: define linkonce_odr void @_CDiscard.Main.eadca4a969cf6f21(i32 %x) #0 !dbg !215 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !220 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.43adb8639c4d0a28"(i8 %self) #0 !dbg !221 { -// CHECK:STDOUT: %1 = call i16 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.8d4760853758c835"(i8 %self), !dbg !226 +// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.48e83ee0f3ef2ee8"(i8 %self) #0 !dbg !221 { +// CHECK:STDOUT: %1 = call i16 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.dc14f658d346b3e8"(i8 %self), !dbg !226 // CHECK:STDOUT: ret i16 %1, !dbg !226 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.2f75af91db35e3a4"(i8 %self) #0 !dbg !227 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.3b9ab92f0d7dee42"(i8 %self), !dbg !232 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.8da8ddbe24cfd39a"(i8 %self) #0 !dbg !227 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.b26071071fee62b9"(i8 %self), !dbg !232 // CHECK:STDOUT: ret i32 %1, !dbg !232 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -342,194 +342,194 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_COp.Char.Core:SubWith.f2f193b02ea5e339.Core.0865d5021629acbc"(i8 %self, i8 %other) #0 !dbg !239 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.9e499631a839b430"(i8 %self), !dbg !245 -// CHECK:STDOUT: %2 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.9e499631a839b430"(i8 %other), !dbg !246 +// CHECK:STDOUT: define linkonce_odr i32 @"_COp.Char.Core:SubWith.7c3e388e0087434a.Core.ab8531ca840d1501"(i8 %self, i8 %other) #0 !dbg !239 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.db6d5218df1134ee"(i8 %self), !dbg !245 +// CHECK:STDOUT: %2 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.db6d5218df1134ee"(i8 %other), !dbg !246 // CHECK:STDOUT: %3 = sub i32 %1, %2, !dbg !247 // CHECK:STDOUT: ret i32 %3, !dbg !248 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_COp.1e5a32f96c66d7d0:SubWith.581702079bc8179f.Core.0865d5021629acbc"(i8 %self, i8 %other) #0 !dbg !249 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.9e499631a839b430"(i8 %self), !dbg !253 -// CHECK:STDOUT: %2 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.9e499631a839b430"(i8 %other), !dbg !254 +// CHECK:STDOUT: define linkonce_odr i32 @"_COp.b27934686504f96c:SubWith.295cf9b677564c5c.Core.ab8531ca840d1501"(i8 %self, i8 %other) #0 !dbg !249 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.db6d5218df1134ee"(i8 %self), !dbg !253 +// CHECK:STDOUT: %2 = call i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.db6d5218df1134ee"(i8 %other), !dbg !254 // CHECK:STDOUT: %3 = sub i32 %1, %2, !dbg !255 // CHECK:STDOUT: ret i32 %3, !dbg !256 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.6286bedac2f127aa.Core.12dc8c542d91665e"(i8 %self, i8 %other) #0 !dbg !257 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.852ed75bdc952b41"(i8 %self, i8 %other) #0 !dbg !257 { // CHECK:STDOUT: %1 = add i8 %self, %other, !dbg !263 // CHECK:STDOUT: ret i8 %1, !dbg !264 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.12dc8c542d91665e"(i8 %self, i8 %other) #0 !dbg !265 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.852ed75bdc952b41"(i8 %self, i8 %other) #0 !dbg !265 { // CHECK:STDOUT: %1 = add i8 %self, %other, !dbg !271 // CHECK:STDOUT: ret i8 %1, !dbg !272 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.6286bedac2f127aa.Core.12dc8c542d91665e"(i8 %self, i8 %other) #0 !dbg !273 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.852ed75bdc952b41"(i8 %self, i8 %other) #0 !dbg !273 { // CHECK:STDOUT: %1 = sub i8 %self, %other, !dbg !277 // CHECK:STDOUT: ret i8 %1, !dbg !278 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.6286bedac2f127aa.Core.e4167ff86be21d2e"(i8 %self, i16 %other) #0 !dbg !279 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.4de33f895b808f69"(i8 %self, i16 %other) #0 !dbg !279 { // CHECK:STDOUT: %1 = trunc i16 %other to i8, !dbg !285 // CHECK:STDOUT: %2 = add i8 %self, %1, !dbg !286 // CHECK:STDOUT: ret i8 %2, !dbg !287 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.e4167ff86be21d2e"(i16 %self, i8 %other) #0 !dbg !288 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.4de33f895b808f69"(i16 %self, i8 %other) #0 !dbg !288 { // CHECK:STDOUT: %1 = trunc i16 %self to i8, !dbg !294 // CHECK:STDOUT: %2 = add i8 %1, %other, !dbg !295 // CHECK:STDOUT: ret i8 %2, !dbg !296 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.6286bedac2f127aa.Core.e4167ff86be21d2e"(i8 %self, i16 %other) #0 !dbg !297 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.4de33f895b808f69"(i8 %self, i16 %other) #0 !dbg !297 { // CHECK:STDOUT: %1 = trunc i16 %other to i8, !dbg !301 // CHECK:STDOUT: %2 = sub i8 %self, %1, !dbg !302 // CHECK:STDOUT: ret i8 %2, !dbg !303 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.6286bedac2f127aa.Core.34acc399edfc4a7c"(i8 %self, i32 %other) #0 !dbg !304 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.ae42bf297a1ee9b6"(i8 %self, i32 %other) #0 !dbg !304 { // CHECK:STDOUT: %1 = trunc i32 %other to i8, !dbg !310 // CHECK:STDOUT: %2 = add i8 %self, %1, !dbg !311 // CHECK:STDOUT: ret i8 %2, !dbg !312 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.34acc399edfc4a7c"(i32 %self, i8 %other) #0 !dbg !313 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.ae42bf297a1ee9b6"(i32 %self, i8 %other) #0 !dbg !313 { // CHECK:STDOUT: %1 = trunc i32 %self to i8, !dbg !319 // CHECK:STDOUT: %2 = add i8 %1, %other, !dbg !320 // CHECK:STDOUT: ret i8 %2, !dbg !321 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.6286bedac2f127aa.Core.34acc399edfc4a7c"(i8 %self, i32 %other) #0 !dbg !322 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.ae42bf297a1ee9b6"(i8 %self, i32 %other) #0 !dbg !322 { // CHECK:STDOUT: %1 = trunc i32 %other to i8, !dbg !326 // CHECK:STDOUT: %2 = sub i8 %self, %1, !dbg !327 // CHECK:STDOUT: ret i8 %2, !dbg !328 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.6286bedac2f127aa.Core.4b76c4a1fafe4833"(i8 %self, i8 %other) #0 !dbg !329 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.3ff23939bf07ad5f"(i8 %self, i8 %other) #0 !dbg !329 { // CHECK:STDOUT: %1 = add i8 %self, %other, !dbg !335 // CHECK:STDOUT: ret i8 %1, !dbg !336 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.4b76c4a1fafe4833"(i8 %self, i8 %other) #0 !dbg !337 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.3ff23939bf07ad5f"(i8 %self, i8 %other) #0 !dbg !337 { // CHECK:STDOUT: %1 = add i8 %self, %other, !dbg !341 // CHECK:STDOUT: ret i8 %1, !dbg !342 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.6286bedac2f127aa.Core.4b76c4a1fafe4833"(i8 %self, i8 %other) #0 !dbg !343 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.3ff23939bf07ad5f"(i8 %self, i8 %other) #0 !dbg !343 { // CHECK:STDOUT: %1 = sub i8 %self, %other, !dbg !347 // CHECK:STDOUT: ret i8 %1, !dbg !348 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.6286bedac2f127aa.Core.2506e29f5fc9869c"(i8 %self, i16 %other) #0 !dbg !349 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.a374c478e4368fa7"(i8 %self, i16 %other) #0 !dbg !349 { // CHECK:STDOUT: %1 = trunc i16 %other to i8, !dbg !355 // CHECK:STDOUT: %2 = add i8 %self, %1, !dbg !356 // CHECK:STDOUT: ret i8 %2, !dbg !357 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.2506e29f5fc9869c"(i16 %self, i8 %other) #0 !dbg !358 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.a374c478e4368fa7"(i16 %self, i8 %other) #0 !dbg !358 { // CHECK:STDOUT: %1 = trunc i16 %self to i8, !dbg !364 // CHECK:STDOUT: %2 = add i8 %1, %other, !dbg !365 // CHECK:STDOUT: ret i8 %2, !dbg !366 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.6286bedac2f127aa.Core.2506e29f5fc9869c"(i8 %self, i16 %other) #0 !dbg !367 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.a374c478e4368fa7"(i8 %self, i16 %other) #0 !dbg !367 { // CHECK:STDOUT: %1 = trunc i16 %other to i8, !dbg !371 // CHECK:STDOUT: %2 = sub i8 %self, %1, !dbg !372 // CHECK:STDOUT: ret i8 %2, !dbg !373 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.6286bedac2f127aa.Core.31921d9f2a6d409b"(i8 %self, i32 %other) #0 !dbg !374 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.bca5dfe49de51c76"(i8 %self, i32 %other) #0 !dbg !374 { // CHECK:STDOUT: %1 = trunc i32 %other to i8, !dbg !380 // CHECK:STDOUT: %2 = add i8 %self, %1, !dbg !381 // CHECK:STDOUT: ret i8 %2, !dbg !382 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.31921d9f2a6d409b"(i32 %self, i8 %other) #0 !dbg !383 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.bca5dfe49de51c76"(i32 %self, i8 %other) #0 !dbg !383 { // CHECK:STDOUT: %1 = trunc i32 %self to i8, !dbg !389 // CHECK:STDOUT: %2 = add i8 %1, %other, !dbg !390 // CHECK:STDOUT: ret i8 %2, !dbg !391 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.6286bedac2f127aa.Core.31921d9f2a6d409b"(i8 %self, i32 %other) #0 !dbg !392 { +// CHECK:STDOUT: define linkonce_odr i8 @"_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.bca5dfe49de51c76"(i8 %self, i32 %other) #0 !dbg !392 { // CHECK:STDOUT: %1 = trunc i32 %other to i8, !dbg !396 // CHECK:STDOUT: %2 = sub i8 %self, %1, !dbg !397 // CHECK:STDOUT: ret i8 %2, !dbg !398 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.5fc30b52fc63534e"(i8 %self) #0 !dbg !399 { -// CHECK:STDOUT: %1 = call i16 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.1fcb3ce533adb4f1.Core.c80d3ca7428a249b"(i8 %self), !dbg !403 +// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.b906c5940adce8f0"(i8 %self) #0 !dbg !399 { +// CHECK:STDOUT: %1 = call i16 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.c3acaf94968d88d2"(i8 %self), !dbg !403 // CHECK:STDOUT: ret i16 %1, !dbg !404 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.5f7c4ef1aceb8644"(i8 %self) #0 !dbg !405 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.1fcb3ce533adb4f1.Core.9502038ec13cc220"(i8 %self), !dbg !408 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.dbd6eca082a732b7"(i8 %self) #0 !dbg !405 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.d93106ca8c7912cd"(i8 %self), !dbg !408 // CHECK:STDOUT: ret i32 %1, !dbg !409 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.8d4760853758c835"(i8 %self) #0 !dbg !410 { -// CHECK:STDOUT: %1 = call i16 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.319e5feddb0783f6.Core.22cb66a8380dd428"(i8 %self), !dbg !413 +// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.dc14f658d346b3e8"(i8 %self) #0 !dbg !410 { +// CHECK:STDOUT: %1 = call i16 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.8d84eea89906cfec"(i8 %self), !dbg !413 // CHECK:STDOUT: ret i16 %1, !dbg !414 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.3b9ab92f0d7dee42"(i8 %self) #0 !dbg !415 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.319e5feddb0783f6.Core.de9dae3cdf77ed49"(i8 %self), !dbg !418 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.b26071071fee62b9"(i8 %self) #0 !dbg !415 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.1d53f86bcab954ee"(i8 %self), !dbg !418 // CHECK:STDOUT: ret i32 %1, !dbg !419 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.9e499631a839b430"(i8 %self) #0 !dbg !420 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.3b9ab92f0d7dee42"(i8 %self), !dbg !423 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.db6d5218df1134ee"(i8 %self) #0 !dbg !420 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.b26071071fee62b9"(i8 %self), !dbg !423 // CHECK:STDOUT: ret i32 %1, !dbg !423 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.1fcb3ce533adb4f1.Core.c80d3ca7428a249b"(i8 %from) #0 !dbg !424 { +// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.c3acaf94968d88d2"(i8 %from) #0 !dbg !424 { // CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !427 // CHECK:STDOUT: %2 = zext i8 %1 to i16, !dbg !428 // CHECK:STDOUT: ret i16 %2, !dbg !429 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.1fcb3ce533adb4f1.Core.9502038ec13cc220"(i8 %from) #0 !dbg !430 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.d93106ca8c7912cd"(i8 %from) #0 !dbg !430 { // CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !433 // CHECK:STDOUT: %2 = zext i8 %1 to i32, !dbg !434 // CHECK:STDOUT: ret i32 %2, !dbg !435 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.319e5feddb0783f6.Core.22cb66a8380dd428"(i8 %from) #0 !dbg !436 { +// CHECK:STDOUT: define linkonce_odr i16 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.8d84eea89906cfec"(i8 %from) #0 !dbg !436 { // CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !439 // CHECK:STDOUT: %2 = zext i8 %1 to i16, !dbg !440 // CHECK:STDOUT: ret i16 %2, !dbg !441 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.319e5feddb0783f6.Core.de9dae3cdf77ed49"(i8 %from) #0 !dbg !442 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.1d53f86bcab954ee"(i8 %from) #0 !dbg !442 { // CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !445 // CHECK:STDOUT: %2 = zext i8 %1 to i32, !dbg !446 // CHECK:STDOUT: ret i32 %2, !dbg !447 @@ -541,15 +541,15 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @_CDiscard.Main.53bbd1b3eb3d0d9c, { 21, 0, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 } -// CHECK:STDOUT: uselistorder ptr @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.c1ed30af95a64e0c", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CDiscard.Main.8e01d725ab473947, { 3, 0, 2, 1 } -// CHECK:STDOUT: uselistorder ptr @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.f1521e968cbfdd46", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @_CDiscard.Main.57ab4597fefa1aeb, { 6, 0, 5, 1, 2, 3, 4 } -// CHECK:STDOUT: uselistorder ptr @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.43adb8639c4d0a28", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.2f75af91db35e3a4", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CDiscard.Main.15688e19507865c6, { 21, 0, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 } +// CHECK:STDOUT: uselistorder ptr @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.dbe0a954f4d47a23", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CDiscard.Main.147e0bd019a31663, { 3, 0, 2, 1 } +// CHECK:STDOUT: uselistorder ptr @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.691b43fb97812586", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @_CDiscard.Main.eadca4a969cf6f21, { 6, 0, 5, 1, 2, 3, 4 } +// CHECK:STDOUT: uselistorder ptr @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.48e83ee0f3ef2ee8", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.8da8ddbe24cfd39a", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @_CDiscard.Main.a4c7fafe8a72cac4, { 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.9e499631a839b430", { 3, 2, 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_CConvert.Char.Core:As.5d7343568c0b5715.Core.db6d5218df1134ee", { 3, 2, 1, 0 } // CHECK:STDOUT: uselistorder ptr @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8", { 3, 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -561,7 +561,7 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "char.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.CharLike.Main:ImplicitAs.581702079bc8179f.Core", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !9) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.CharLike.Main:ImplicitAs.295cf9b677564c5c.Core", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !9) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{!7, !8} // CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 8, encoding: DW_ATE_unsigned) @@ -747,44 +747,44 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: !187 = !DILocation(line: 104, column: 11, scope: !176) // CHECK:STDOUT: !188 = !DILocation(line: 104, column: 3, scope: !176) // CHECK:STDOUT: !189 = !DILocation(line: 101, column: 1, scope: !176) -// CHECK:STDOUT: !190 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.53bbd1b3eb3d0d9c", scope: null, file: !3, line: 19, type: !191, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !193) +// CHECK:STDOUT: !190 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.15688e19507865c6", scope: null, file: !3, line: 19, type: !191, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !193) // CHECK:STDOUT: !191 = !DISubroutineType(types: !192) // CHECK:STDOUT: !192 = !{null, !7} // CHECK:STDOUT: !193 = !{!194} // CHECK:STDOUT: !194 = !DILocalVariable(arg: 1, scope: !190, type: !7) // CHECK:STDOUT: !195 = !DILocation(line: 19, column: 1, scope: !190) -// CHECK:STDOUT: !196 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.c1ed30af95a64e0c", scope: null, file: !197, line: 46, type: !198, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !200) +// CHECK:STDOUT: !196 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.dbe0a954f4d47a23", scope: null, file: !197, line: 46, type: !198, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !200) // CHECK:STDOUT: !197 = !DIFile(filename: "{{.*}}/prelude/types/char.carbon", directory: "") // CHECK:STDOUT: !198 = !DISubroutineType(types: !199) // CHECK:STDOUT: !199 = !{!165, !7} // CHECK:STDOUT: !200 = !{!201} // CHECK:STDOUT: !201 = !DILocalVariable(arg: 1, scope: !196, type: !7) // CHECK:STDOUT: !202 = !DILocation(line: 47, column: 5, scope: !196) -// CHECK:STDOUT: !203 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.8e01d725ab473947", scope: null, file: !3, line: 19, type: !204, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !206) +// CHECK:STDOUT: !203 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.147e0bd019a31663", scope: null, file: !3, line: 19, type: !204, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !206) // CHECK:STDOUT: !204 = !DISubroutineType(types: !205) // CHECK:STDOUT: !205 = !{null, !165} // CHECK:STDOUT: !206 = !{!207} // CHECK:STDOUT: !207 = !DILocalVariable(arg: 1, scope: !203, type: !165) // CHECK:STDOUT: !208 = !DILocation(line: 19, column: 1, scope: !203) -// CHECK:STDOUT: !209 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.f1521e968cbfdd46", scope: null, file: !197, line: 46, type: !210, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !212) +// CHECK:STDOUT: !209 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.691b43fb97812586", scope: null, file: !197, line: 46, type: !210, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !212) // CHECK:STDOUT: !210 = !DISubroutineType(types: !211) // CHECK:STDOUT: !211 = !{!179, !7} // CHECK:STDOUT: !212 = !{!213} // CHECK:STDOUT: !213 = !DILocalVariable(arg: 1, scope: !209, type: !7) // CHECK:STDOUT: !214 = !DILocation(line: 47, column: 5, scope: !209) -// CHECK:STDOUT: !215 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.57ab4597fefa1aeb", scope: null, file: !3, line: 19, type: !216, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !218) +// CHECK:STDOUT: !215 = distinct !DISubprogram(name: "Discard", linkageName: "_CDiscard.Main.eadca4a969cf6f21", scope: null, file: !3, line: 19, type: !216, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !218) // CHECK:STDOUT: !216 = !DISubroutineType(types: !217) // CHECK:STDOUT: !217 = !{null, !179} // CHECK:STDOUT: !218 = !{!219} // CHECK:STDOUT: !219 = !DILocalVariable(arg: 1, scope: !215, type: !179) // CHECK:STDOUT: !220 = !DILocation(line: 19, column: 1, scope: !215) -// CHECK:STDOUT: !221 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.43adb8639c4d0a28", scope: null, file: !197, line: 46, type: !222, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !224) +// CHECK:STDOUT: !221 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.48e83ee0f3ef2ee8", scope: null, file: !197, line: 46, type: !222, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !224) // CHECK:STDOUT: !222 = !DISubroutineType(types: !223) // CHECK:STDOUT: !223 = !{!126, !7} // CHECK:STDOUT: !224 = !{!225} // CHECK:STDOUT: !225 = !DILocalVariable(arg: 1, scope: !221, type: !7) // CHECK:STDOUT: !226 = !DILocation(line: 47, column: 5, scope: !221) -// CHECK:STDOUT: !227 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.2f75af91db35e3a4", scope: null, file: !197, line: 46, type: !228, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !230) +// CHECK:STDOUT: !227 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.8da8ddbe24cfd39a", scope: null, file: !197, line: 46, type: !228, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !230) // CHECK:STDOUT: !228 = !DISubroutineType(types: !229) // CHECK:STDOUT: !229 = !{!140, !7} // CHECK:STDOUT: !230 = !{!231} @@ -796,7 +796,7 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: !236 = !{!237} // CHECK:STDOUT: !237 = !DILocalVariable(arg: 1, scope: !233, type: !8) // CHECK:STDOUT: !238 = !DILocation(line: 19, column: 1, scope: !233) -// CHECK:STDOUT: !239 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.f2f193b02ea5e339.Core.0865d5021629acbc", scope: null, file: !197, line: 133, type: !240, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !242) +// CHECK:STDOUT: !239 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.7c3e388e0087434a.Core.ab8531ca840d1501", scope: null, file: !197, line: 133, type: !240, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !242) // CHECK:STDOUT: !240 = !DISubroutineType(types: !241) // CHECK:STDOUT: !241 = !{!140, !7, !7} // CHECK:STDOUT: !242 = !{!243, !244} @@ -806,7 +806,7 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: !246 = !DILocation(line: 134, column: 29, scope: !239) // CHECK:STDOUT: !247 = !DILocation(line: 134, column: 12, scope: !239) // CHECK:STDOUT: !248 = !DILocation(line: 134, column: 5, scope: !239) -// CHECK:STDOUT: !249 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e5a32f96c66d7d0:SubWith.581702079bc8179f.Core.0865d5021629acbc", scope: null, file: !197, line: 127, type: !240, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !250) +// CHECK:STDOUT: !249 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b27934686504f96c:SubWith.295cf9b677564c5c.Core.ab8531ca840d1501", scope: null, file: !197, line: 127, type: !240, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !250) // CHECK:STDOUT: !250 = !{!251, !252} // CHECK:STDOUT: !251 = !DILocalVariable(arg: 1, scope: !249, type: !7) // CHECK:STDOUT: !252 = !DILocalVariable(arg: 2, scope: !249, type: !7) @@ -814,7 +814,7 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: !254 = !DILocation(line: 128, column: 29, scope: !249) // CHECK:STDOUT: !255 = !DILocation(line: 128, column: 12, scope: !249) // CHECK:STDOUT: !256 = !DILocation(line: 128, column: 5, scope: !249) -// CHECK:STDOUT: !257 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.6286bedac2f127aa.Core.12dc8c542d91665e", scope: null, file: !197, line: 98, type: !258, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !260) +// CHECK:STDOUT: !257 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.852ed75bdc952b41", scope: null, file: !197, line: 98, type: !258, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !260) // CHECK:STDOUT: !258 = !DISubroutineType(types: !259) // CHECK:STDOUT: !259 = !{!7, !7, !112} // CHECK:STDOUT: !260 = !{!261, !262} @@ -822,7 +822,7 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: !262 = !DILocalVariable(arg: 2, scope: !257, type: !112) // CHECK:STDOUT: !263 = !DILocation(line: 100, column: 13, scope: !257) // CHECK:STDOUT: !264 = !DILocation(line: 100, column: 5, scope: !257) -// CHECK:STDOUT: !265 = distinct !DISubprogram(name: "Op", linkageName: "_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.12dc8c542d91665e", scope: null, file: !197, line: 106, type: !266, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !268) +// CHECK:STDOUT: !265 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.852ed75bdc952b41", scope: null, file: !197, line: 106, type: !266, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !268) // CHECK:STDOUT: !266 = !DISubroutineType(types: !267) // CHECK:STDOUT: !267 = !{!7, !112, !7} // CHECK:STDOUT: !268 = !{!269, !270} @@ -830,13 +830,13 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: !270 = !DILocalVariable(arg: 2, scope: !265, type: !7) // CHECK:STDOUT: !271 = !DILocation(line: 108, column: 13, scope: !265) // CHECK:STDOUT: !272 = !DILocation(line: 108, column: 5, scope: !265) -// CHECK:STDOUT: !273 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.6286bedac2f127aa.Core.12dc8c542d91665e", scope: null, file: !197, line: 114, type: !258, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !274) +// CHECK:STDOUT: !273 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.852ed75bdc952b41", scope: null, file: !197, line: 114, type: !258, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !274) // CHECK:STDOUT: !274 = !{!275, !276} // CHECK:STDOUT: !275 = !DILocalVariable(arg: 1, scope: !273, type: !7) // CHECK:STDOUT: !276 = !DILocalVariable(arg: 2, scope: !273, type: !112) // CHECK:STDOUT: !277 = !DILocation(line: 116, column: 13, scope: !273) // CHECK:STDOUT: !278 = !DILocation(line: 116, column: 5, scope: !273) -// CHECK:STDOUT: !279 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.6286bedac2f127aa.Core.e4167ff86be21d2e", scope: null, file: !197, line: 98, type: !280, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !282) +// CHECK:STDOUT: !279 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.4de33f895b808f69", scope: null, file: !197, line: 98, type: !280, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !282) // CHECK:STDOUT: !280 = !DISubroutineType(types: !281) // CHECK:STDOUT: !281 = !{!7, !7, !126} // CHECK:STDOUT: !282 = !{!283, !284} @@ -845,7 +845,7 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: !285 = !DILocation(line: 100, column: 29, scope: !279) // CHECK:STDOUT: !286 = !DILocation(line: 100, column: 13, scope: !279) // CHECK:STDOUT: !287 = !DILocation(line: 100, column: 5, scope: !279) -// CHECK:STDOUT: !288 = distinct !DISubprogram(name: "Op", linkageName: "_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.e4167ff86be21d2e", scope: null, file: !197, line: 106, type: !289, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !291) +// CHECK:STDOUT: !288 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.4de33f895b808f69", scope: null, file: !197, line: 106, type: !289, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !291) // CHECK:STDOUT: !289 = !DISubroutineType(types: !290) // CHECK:STDOUT: !290 = !{!7, !126, !7} // CHECK:STDOUT: !291 = !{!292, !293} @@ -854,14 +854,14 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: !294 = !DILocation(line: 108, column: 14, scope: !288) // CHECK:STDOUT: !295 = !DILocation(line: 108, column: 13, scope: !288) // CHECK:STDOUT: !296 = !DILocation(line: 108, column: 5, scope: !288) -// CHECK:STDOUT: !297 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.6286bedac2f127aa.Core.e4167ff86be21d2e", scope: null, file: !197, line: 114, type: !280, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !298) +// CHECK:STDOUT: !297 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.4de33f895b808f69", scope: null, file: !197, line: 114, type: !280, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !298) // CHECK:STDOUT: !298 = !{!299, !300} // CHECK:STDOUT: !299 = !DILocalVariable(arg: 1, scope: !297, type: !7) // CHECK:STDOUT: !300 = !DILocalVariable(arg: 2, scope: !297, type: !126) // CHECK:STDOUT: !301 = !DILocation(line: 116, column: 29, scope: !297) // CHECK:STDOUT: !302 = !DILocation(line: 116, column: 13, scope: !297) // CHECK:STDOUT: !303 = !DILocation(line: 116, column: 5, scope: !297) -// CHECK:STDOUT: !304 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.6286bedac2f127aa.Core.34acc399edfc4a7c", scope: null, file: !197, line: 98, type: !305, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !307) +// CHECK:STDOUT: !304 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.ae42bf297a1ee9b6", scope: null, file: !197, line: 98, type: !305, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !307) // CHECK:STDOUT: !305 = !DISubroutineType(types: !306) // CHECK:STDOUT: !306 = !{!7, !7, !140} // CHECK:STDOUT: !307 = !{!308, !309} @@ -870,7 +870,7 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: !310 = !DILocation(line: 100, column: 29, scope: !304) // CHECK:STDOUT: !311 = !DILocation(line: 100, column: 13, scope: !304) // CHECK:STDOUT: !312 = !DILocation(line: 100, column: 5, scope: !304) -// CHECK:STDOUT: !313 = distinct !DISubprogram(name: "Op", linkageName: "_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.34acc399edfc4a7c", scope: null, file: !197, line: 106, type: !314, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !316) +// CHECK:STDOUT: !313 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.ae42bf297a1ee9b6", scope: null, file: !197, line: 106, type: !314, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !316) // CHECK:STDOUT: !314 = !DISubroutineType(types: !315) // CHECK:STDOUT: !315 = !{!7, !140, !7} // CHECK:STDOUT: !316 = !{!317, !318} @@ -879,14 +879,14 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: !319 = !DILocation(line: 108, column: 14, scope: !313) // CHECK:STDOUT: !320 = !DILocation(line: 108, column: 13, scope: !313) // CHECK:STDOUT: !321 = !DILocation(line: 108, column: 5, scope: !313) -// CHECK:STDOUT: !322 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.6286bedac2f127aa.Core.34acc399edfc4a7c", scope: null, file: !197, line: 114, type: !305, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !323) +// CHECK:STDOUT: !322 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.ae42bf297a1ee9b6", scope: null, file: !197, line: 114, type: !305, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !323) // CHECK:STDOUT: !323 = !{!324, !325} // CHECK:STDOUT: !324 = !DILocalVariable(arg: 1, scope: !322, type: !7) // CHECK:STDOUT: !325 = !DILocalVariable(arg: 2, scope: !322, type: !140) // CHECK:STDOUT: !326 = !DILocation(line: 116, column: 29, scope: !322) // CHECK:STDOUT: !327 = !DILocation(line: 116, column: 13, scope: !322) // CHECK:STDOUT: !328 = !DILocation(line: 116, column: 5, scope: !322) -// CHECK:STDOUT: !329 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.6286bedac2f127aa.Core.4b76c4a1fafe4833", scope: null, file: !197, line: 98, type: !330, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !332) +// CHECK:STDOUT: !329 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.3ff23939bf07ad5f", scope: null, file: !197, line: 98, type: !330, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !332) // CHECK:STDOUT: !330 = !DISubroutineType(types: !331) // CHECK:STDOUT: !331 = !{!7, !7, !7} // CHECK:STDOUT: !332 = !{!333, !334} @@ -894,19 +894,19 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: !334 = !DILocalVariable(arg: 2, scope: !329, type: !7) // CHECK:STDOUT: !335 = !DILocation(line: 100, column: 13, scope: !329) // CHECK:STDOUT: !336 = !DILocation(line: 100, column: 5, scope: !329) -// CHECK:STDOUT: !337 = distinct !DISubprogram(name: "Op", linkageName: "_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.4b76c4a1fafe4833", scope: null, file: !197, line: 106, type: !330, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !338) +// CHECK:STDOUT: !337 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.3ff23939bf07ad5f", scope: null, file: !197, line: 106, type: !330, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !338) // CHECK:STDOUT: !338 = !{!339, !340} // CHECK:STDOUT: !339 = !DILocalVariable(arg: 1, scope: !337, type: !7) // CHECK:STDOUT: !340 = !DILocalVariable(arg: 2, scope: !337, type: !7) // CHECK:STDOUT: !341 = !DILocation(line: 108, column: 13, scope: !337) // CHECK:STDOUT: !342 = !DILocation(line: 108, column: 5, scope: !337) -// CHECK:STDOUT: !343 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.6286bedac2f127aa.Core.4b76c4a1fafe4833", scope: null, file: !197, line: 114, type: !330, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !344) +// CHECK:STDOUT: !343 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.3ff23939bf07ad5f", scope: null, file: !197, line: 114, type: !330, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !344) // CHECK:STDOUT: !344 = !{!345, !346} // CHECK:STDOUT: !345 = !DILocalVariable(arg: 1, scope: !343, type: !7) // CHECK:STDOUT: !346 = !DILocalVariable(arg: 2, scope: !343, type: !7) // CHECK:STDOUT: !347 = !DILocation(line: 116, column: 13, scope: !343) // CHECK:STDOUT: !348 = !DILocation(line: 116, column: 5, scope: !343) -// CHECK:STDOUT: !349 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.6286bedac2f127aa.Core.2506e29f5fc9869c", scope: null, file: !197, line: 98, type: !350, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !352) +// CHECK:STDOUT: !349 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.a374c478e4368fa7", scope: null, file: !197, line: 98, type: !350, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !352) // CHECK:STDOUT: !350 = !DISubroutineType(types: !351) // CHECK:STDOUT: !351 = !{!7, !7, !165} // CHECK:STDOUT: !352 = !{!353, !354} @@ -915,7 +915,7 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: !355 = !DILocation(line: 100, column: 29, scope: !349) // CHECK:STDOUT: !356 = !DILocation(line: 100, column: 13, scope: !349) // CHECK:STDOUT: !357 = !DILocation(line: 100, column: 5, scope: !349) -// CHECK:STDOUT: !358 = distinct !DISubprogram(name: "Op", linkageName: "_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.2506e29f5fc9869c", scope: null, file: !197, line: 106, type: !359, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !361) +// CHECK:STDOUT: !358 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.a374c478e4368fa7", scope: null, file: !197, line: 106, type: !359, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !361) // CHECK:STDOUT: !359 = !DISubroutineType(types: !360) // CHECK:STDOUT: !360 = !{!7, !165, !7} // CHECK:STDOUT: !361 = !{!362, !363} @@ -924,14 +924,14 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: !364 = !DILocation(line: 108, column: 14, scope: !358) // CHECK:STDOUT: !365 = !DILocation(line: 108, column: 13, scope: !358) // CHECK:STDOUT: !366 = !DILocation(line: 108, column: 5, scope: !358) -// CHECK:STDOUT: !367 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.6286bedac2f127aa.Core.2506e29f5fc9869c", scope: null, file: !197, line: 114, type: !350, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !368) +// CHECK:STDOUT: !367 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.a374c478e4368fa7", scope: null, file: !197, line: 114, type: !350, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !368) // CHECK:STDOUT: !368 = !{!369, !370} // CHECK:STDOUT: !369 = !DILocalVariable(arg: 1, scope: !367, type: !7) // CHECK:STDOUT: !370 = !DILocalVariable(arg: 2, scope: !367, type: !165) // CHECK:STDOUT: !371 = !DILocation(line: 116, column: 29, scope: !367) // CHECK:STDOUT: !372 = !DILocation(line: 116, column: 13, scope: !367) // CHECK:STDOUT: !373 = !DILocation(line: 116, column: 5, scope: !367) -// CHECK:STDOUT: !374 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.6286bedac2f127aa.Core.31921d9f2a6d409b", scope: null, file: !197, line: 98, type: !375, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !377) +// CHECK:STDOUT: !374 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:AddWith.d9344a06b22b3b94.Core.bca5dfe49de51c76", scope: null, file: !197, line: 98, type: !375, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !377) // CHECK:STDOUT: !375 = !DISubroutineType(types: !376) // CHECK:STDOUT: !376 = !{!7, !7, !179} // CHECK:STDOUT: !377 = !{!378, !379} @@ -940,7 +940,7 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: !380 = !DILocation(line: 100, column: 29, scope: !374) // CHECK:STDOUT: !381 = !DILocation(line: 100, column: 13, scope: !374) // CHECK:STDOUT: !382 = !DILocation(line: 100, column: 5, scope: !374) -// CHECK:STDOUT: !383 = distinct !DISubprogram(name: "Op", linkageName: "_COp.afe7588199a9091d:AddWith.581702079bc8179f.Core.31921d9f2a6d409b", scope: null, file: !197, line: 106, type: !384, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !386) +// CHECK:STDOUT: !383 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fdd9948a9ef8c6e5:AddWith.295cf9b677564c5c.Core.bca5dfe49de51c76", scope: null, file: !197, line: 106, type: !384, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !386) // CHECK:STDOUT: !384 = !DISubroutineType(types: !385) // CHECK:STDOUT: !385 = !{!7, !179, !7} // CHECK:STDOUT: !386 = !{!387, !388} @@ -949,57 +949,57 @@ fn AddSubUInt32(c: char, i: u32) { // CHECK:STDOUT: !389 = !DILocation(line: 108, column: 14, scope: !383) // CHECK:STDOUT: !390 = !DILocation(line: 108, column: 13, scope: !383) // CHECK:STDOUT: !391 = !DILocation(line: 108, column: 5, scope: !383) -// CHECK:STDOUT: !392 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.6286bedac2f127aa.Core.31921d9f2a6d409b", scope: null, file: !197, line: 114, type: !375, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !393) +// CHECK:STDOUT: !392 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Char.Core:SubWith.d9344a06b22b3b94.Core.bca5dfe49de51c76", scope: null, file: !197, line: 114, type: !375, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !393) // CHECK:STDOUT: !393 = !{!394, !395} // CHECK:STDOUT: !394 = !DILocalVariable(arg: 1, scope: !392, type: !7) // CHECK:STDOUT: !395 = !DILocalVariable(arg: 2, scope: !392, type: !179) // CHECK:STDOUT: !396 = !DILocation(line: 116, column: 29, scope: !392) // CHECK:STDOUT: !397 = !DILocation(line: 116, column: 13, scope: !392) // CHECK:STDOUT: !398 = !DILocation(line: 116, column: 5, scope: !392) -// CHECK:STDOUT: !399 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.5fc30b52fc63534e", scope: null, file: !400, line: 87, type: !198, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !401) +// CHECK:STDOUT: !399 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.b906c5940adce8f0", scope: null, file: !400, line: 87, type: !198, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !401) // CHECK:STDOUT: !400 = !DIFile(filename: "{{.*}}/prelude/types/uint.carbon", directory: "") // CHECK:STDOUT: !401 = !{!402} // CHECK:STDOUT: !402 = !DILocalVariable(arg: 1, scope: !399, type: !7) // CHECK:STDOUT: !403 = !DILocation(line: 88, column: 12, scope: !399) // CHECK:STDOUT: !404 = !DILocation(line: 88, column: 5, scope: !399) -// CHECK:STDOUT: !405 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.5f7c4ef1aceb8644", scope: null, file: !400, line: 87, type: !210, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !406) +// CHECK:STDOUT: !405 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.dbd6eca082a732b7", scope: null, file: !400, line: 87, type: !210, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !406) // CHECK:STDOUT: !406 = !{!407} // CHECK:STDOUT: !407 = !DILocalVariable(arg: 1, scope: !405, type: !7) // CHECK:STDOUT: !408 = !DILocation(line: 88, column: 12, scope: !405) // CHECK:STDOUT: !409 = !DILocation(line: 88, column: 5, scope: !405) -// CHECK:STDOUT: !410 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.8d4760853758c835", scope: null, file: !400, line: 87, type: !222, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !411) +// CHECK:STDOUT: !410 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.dc14f658d346b3e8", scope: null, file: !400, line: 87, type: !222, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !411) // CHECK:STDOUT: !411 = !{!412} // CHECK:STDOUT: !412 = !DILocalVariable(arg: 1, scope: !410, type: !7) // CHECK:STDOUT: !413 = !DILocation(line: 88, column: 12, scope: !410) // CHECK:STDOUT: !414 = !DILocation(line: 88, column: 5, scope: !410) -// CHECK:STDOUT: !415 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.3b9ab92f0d7dee42", scope: null, file: !400, line: 87, type: !228, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !416) +// CHECK:STDOUT: !415 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.b26071071fee62b9", scope: null, file: !400, line: 87, type: !228, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !416) // CHECK:STDOUT: !416 = !{!417} // CHECK:STDOUT: !417 = !DILocalVariable(arg: 1, scope: !415, type: !7) // CHECK:STDOUT: !418 = !DILocation(line: 88, column: 12, scope: !415) // CHECK:STDOUT: !419 = !DILocation(line: 88, column: 5, scope: !415) -// CHECK:STDOUT: !420 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.9e499631a839b430", scope: null, file: !197, line: 46, type: !228, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !421) +// CHECK:STDOUT: !420 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Char.Core:As.5d7343568c0b5715.Core.db6d5218df1134ee", scope: null, file: !197, line: 46, type: !228, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !421) // CHECK:STDOUT: !421 = !{!422} // CHECK:STDOUT: !422 = !DILocalVariable(arg: 1, scope: !420, type: !7) // CHECK:STDOUT: !423 = !DILocation(line: 47, column: 5, scope: !420) -// CHECK:STDOUT: !424 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.1fcb3ce533adb4f1.Core.c80d3ca7428a249b", scope: null, file: !400, line: 71, type: !198, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !425) +// CHECK:STDOUT: !424 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.c3acaf94968d88d2", scope: null, file: !400, line: 71, type: !198, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !425) // CHECK:STDOUT: !425 = !{!426} // CHECK:STDOUT: !426 = !DILocalVariable(arg: 1, scope: !424, type: !7) // CHECK:STDOUT: !427 = !DILocation(line: 73, column: 17, scope: !424) // CHECK:STDOUT: !428 = !DILocation(line: 73, column: 12, scope: !424) // CHECK:STDOUT: !429 = !DILocation(line: 73, column: 5, scope: !424) -// CHECK:STDOUT: !430 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.1fcb3ce533adb4f1.Core.9502038ec13cc220", scope: null, file: !400, line: 71, type: !210, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !431) +// CHECK:STDOUT: !430 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.d93106ca8c7912cd", scope: null, file: !400, line: 71, type: !210, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !431) // CHECK:STDOUT: !431 = !{!432} // CHECK:STDOUT: !432 = !DILocalVariable(arg: 1, scope: !430, type: !7) // CHECK:STDOUT: !433 = !DILocation(line: 73, column: 17, scope: !430) // CHECK:STDOUT: !434 = !DILocation(line: 73, column: 12, scope: !430) // CHECK:STDOUT: !435 = !DILocation(line: 73, column: 5, scope: !430) -// CHECK:STDOUT: !436 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Int.9452f4c51951679b.Core:FromUInt.319e5feddb0783f6.Core.22cb66a8380dd428", scope: null, file: !400, line: 79, type: !222, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !437) +// CHECK:STDOUT: !436 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.8d84eea89906cfec", scope: null, file: !400, line: 79, type: !222, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !437) // CHECK:STDOUT: !437 = !{!438} // CHECK:STDOUT: !438 = !DILocalVariable(arg: 1, scope: !436, type: !7) // CHECK:STDOUT: !439 = !DILocation(line: 81, column: 17, scope: !436) // CHECK:STDOUT: !440 = !DILocation(line: 81, column: 12, scope: !436) // CHECK:STDOUT: !441 = !DILocation(line: 81, column: 5, scope: !436) -// CHECK:STDOUT: !442 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Int.9452f4c51951679b.Core:FromUInt.319e5feddb0783f6.Core.de9dae3cdf77ed49", scope: null, file: !400, line: 79, type: !228, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !443) +// CHECK:STDOUT: !442 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.1d53f86bcab954ee", scope: null, file: !400, line: 79, type: !228, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !443) // CHECK:STDOUT: !443 = !{!444} // CHECK:STDOUT: !444 = !DILocalVariable(arg: 1, scope: !442, type: !7) // CHECK:STDOUT: !445 = !DILocation(line: 81, column: 17, scope: !442) diff --git a/toolchain/lower/testdata/primitives/int_types.carbon b/toolchain/lower/testdata/primitives/int_types.carbon index 87797f6096da..ae77951087b8 100644 --- a/toolchain/lower/testdata/primitives/int_types.carbon +++ b/toolchain/lower/testdata/primitives/int_types.carbon @@ -166,67 +166,67 @@ fn ImplicitWidenUnsignedCustom(a: Core.UInt(4)) -> Core.UInt(5) { return a; } // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @_CImplicitWidenSigned.Main(i8 %a) #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.ddcb82e6e9ddd8c9"(i8 %a), !dbg !11 +// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.211c7f442b391488"(i8 %a), !dbg !11 // CHECK:STDOUT: ret i32 %From.as_type.as.ImplicitAs.impl.Convert.call, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @_CImplicitWidenUnsigned.Main(i8 %a) #0 !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.5f7c4ef1aceb8644"(i8 %a), !dbg !19 +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.dbd6eca082a732b7"(i8 %a), !dbg !19 // CHECK:STDOUT: ret i32 %UInt.as.ImplicitAs.impl.Convert.call, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @_CImplicitWidenUnsignedToSigned.Main(i8 %a) #0 !dbg !20 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.3b9ab92f0d7dee42"(i8 %a), !dbg !25 +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.b26071071fee62b9"(i8 %a), !dbg !25 // CHECK:STDOUT: ret i32 %UInt.as.ImplicitAs.impl.Convert.call, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i5 @_CImplicitWidenCustom.Main(i4 %a) #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.call = call i5 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.380b88eae23462db"(i4 %a), !dbg !33 +// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.call = call i5 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.913488c3cb524db0"(i4 %a), !dbg !33 // CHECK:STDOUT: ret i5 %From.as_type.as.ImplicitAs.impl.Convert.call, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i5 @_CImplicitWidenUnsignedCustom.Main(i4 %a) #0 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i5 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.983e4a1f66495cbc"(i4 %a), !dbg !41 +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i5 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.4c1b8e556dc24c05"(i4 %a), !dbg !41 // CHECK:STDOUT: ret i5 %UInt.as.ImplicitAs.impl.Convert.call, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.ddcb82e6e9ddd8c9"(i8 %self) #0 !dbg !42 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.211c7f442b391488"(i8 %self) #0 !dbg !42 { // CHECK:STDOUT: %1 = call i8 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.ca1ac10d3fc7c1a8"(i8 %self), !dbg !46 // CHECK:STDOUT: %2 = sext i8 %1 to i32, !dbg !47 // CHECK:STDOUT: ret i32 %2, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.5f7c4ef1aceb8644"(i8 %self) #0 !dbg !49 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.1fcb3ce533adb4f1.Core.9502038ec13cc220"(i8 %self), !dbg !53 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.dbd6eca082a732b7"(i8 %self) #0 !dbg !49 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.d93106ca8c7912cd"(i8 %self), !dbg !53 // CHECK:STDOUT: ret i32 %1, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.3b9ab92f0d7dee42"(i8 %self) #0 !dbg !55 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.319e5feddb0783f6.Core.de9dae3cdf77ed49"(i8 %self), !dbg !58 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.b26071071fee62b9"(i8 %self) #0 !dbg !55 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.1d53f86bcab954ee"(i8 %self), !dbg !58 // CHECK:STDOUT: ret i32 %1, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.380b88eae23462db"(i4 %self) #0 !dbg !60 { +// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.913488c3cb524db0"(i4 %self) #0 !dbg !60 { // CHECK:STDOUT: %1 = call i4 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.044c7d430ddd4fd6"(i4 %self), !dbg !63 // CHECK:STDOUT: %2 = sext i4 %1 to i5, !dbg !64 // CHECK:STDOUT: ret i5 %2, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.983e4a1f66495cbc"(i4 %self) #0 !dbg !66 { -// CHECK:STDOUT: %1 = call i5 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.1fcb3ce533adb4f1.Core.53bd1b576efef5e7"(i4 %self), !dbg !69 +// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.4c1b8e556dc24c05"(i4 %self) #0 !dbg !66 { +// CHECK:STDOUT: %1 = call i5 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.cc82cccb0d5a8ccf"(i4 %self), !dbg !69 // CHECK:STDOUT: ret i5 %1, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -236,14 +236,14 @@ fn ImplicitWidenUnsignedCustom(a: Core.UInt(4)) -> Core.UInt(5) { return a; } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.1fcb3ce533adb4f1.Core.9502038ec13cc220"(i8 %from) #0 !dbg !77 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.d93106ca8c7912cd"(i8 %from) #0 !dbg !77 { // CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !80 // CHECK:STDOUT: %2 = zext i8 %1 to i32, !dbg !81 // CHECK:STDOUT: ret i32 %2, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.319e5feddb0783f6.Core.de9dae3cdf77ed49"(i8 %from) #0 !dbg !83 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.1d53f86bcab954ee"(i8 %from) #0 !dbg !83 { // CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !86 // CHECK:STDOUT: %2 = zext i8 %1 to i32, !dbg !87 // CHECK:STDOUT: ret i32 %2, !dbg !88 @@ -255,7 +255,7 @@ fn ImplicitWidenUnsignedCustom(a: Core.UInt(4)) -> Core.UInt(5) { return a; } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.1fcb3ce533adb4f1.Core.53bd1b576efef5e7"(i4 %from) #0 !dbg !95 { +// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.cc82cccb0d5a8ccf"(i4 %from) #0 !dbg !95 { // CHECK:STDOUT: %1 = call i4 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.044c7d430ddd4fd6"(i4 %from), !dbg !98 // CHECK:STDOUT: %2 = zext i4 %1 to i5, !dbg !99 // CHECK:STDOUT: ret i5 %2, !dbg !100 @@ -321,31 +321,31 @@ fn ImplicitWidenUnsignedCustom(a: Core.UInt(4)) -> Core.UInt(5) { return a; } // CHECK:STDOUT: !39 = !{!40} // CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !34, type: !38) // CHECK:STDOUT: !41 = !DILocation(line: 8, column: 67, scope: !34) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.ddcb82e6e9ddd8c9", scope: null, file: !43, line: 63, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !44) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.211c7f442b391488", scope: null, file: !43, line: 63, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !44) // CHECK:STDOUT: !43 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") // CHECK:STDOUT: !44 = !{!45} // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !42, type: !8) // CHECK:STDOUT: !46 = !DILocation(line: 65, column: 17, scope: !42) // CHECK:STDOUT: !47 = !DILocation(line: 65, column: 12, scope: !42) // CHECK:STDOUT: !48 = !DILocation(line: 65, column: 5, scope: !42) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.5f7c4ef1aceb8644", scope: null, file: !50, line: 87, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !51) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.dbd6eca082a732b7", scope: null, file: !50, line: 87, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !51) // CHECK:STDOUT: !50 = !DIFile(filename: "{{.*}}/prelude/types/uint.carbon", directory: "") // CHECK:STDOUT: !51 = !{!52} // CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !49, type: !16) // CHECK:STDOUT: !53 = !DILocation(line: 88, column: 12, scope: !49) // CHECK:STDOUT: !54 = !DILocation(line: 88, column: 5, scope: !49) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.3b9ab92f0d7dee42", scope: null, file: !50, line: 87, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !56) +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.b26071071fee62b9", scope: null, file: !50, line: 87, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !56) // CHECK:STDOUT: !56 = !{!57} // CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !55, type: !16) // CHECK:STDOUT: !58 = !DILocation(line: 88, column: 12, scope: !55) // CHECK:STDOUT: !59 = !DILocation(line: 88, column: 5, scope: !55) -// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.380b88eae23462db", scope: null, file: !43, line: 63, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !61) +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.913488c3cb524db0", scope: null, file: !43, line: 63, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !61) // CHECK:STDOUT: !61 = !{!62} // CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !60, type: !30) // CHECK:STDOUT: !63 = !DILocation(line: 65, column: 17, scope: !60) // CHECK:STDOUT: !64 = !DILocation(line: 65, column: 12, scope: !60) // CHECK:STDOUT: !65 = !DILocation(line: 65, column: 5, scope: !60) -// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.b0c8f4aca61b1cc8.Core.983e4a1f66495cbc", scope: null, file: !50, line: 87, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !67) +// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.f48df0d8add56b17.Core.4c1b8e556dc24c05", scope: null, file: !50, line: 87, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !67) // CHECK:STDOUT: !67 = !{!68} // CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !66, type: !38) // CHECK:STDOUT: !69 = !DILocation(line: 88, column: 12, scope: !66) @@ -356,13 +356,13 @@ fn ImplicitWidenUnsignedCustom(a: Core.UInt(4)) -> Core.UInt(5) { return a; } // CHECK:STDOUT: !74 = !{!75} // CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !71, type: !8) // CHECK:STDOUT: !76 = !DILocation(line: 58, column: 36, scope: !71) -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.1fcb3ce533adb4f1.Core.9502038ec13cc220", scope: null, file: !50, line: 71, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !78) +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.d93106ca8c7912cd", scope: null, file: !50, line: 71, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !78) // CHECK:STDOUT: !78 = !{!79} // CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !77, type: !16) // CHECK:STDOUT: !80 = !DILocation(line: 73, column: 17, scope: !77) // CHECK:STDOUT: !81 = !DILocation(line: 73, column: 12, scope: !77) // CHECK:STDOUT: !82 = !DILocation(line: 73, column: 5, scope: !77) -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Int.9452f4c51951679b.Core:FromUInt.319e5feddb0783f6.Core.de9dae3cdf77ed49", scope: null, file: !50, line: 79, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !84) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Int.9452f4c51951679b.Core:FromUInt.94db85caea4a44af.Core.1d53f86bcab954ee", scope: null, file: !50, line: 79, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !84) // CHECK:STDOUT: !84 = !{!85} // CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !83, type: !16) // CHECK:STDOUT: !86 = !DILocation(line: 81, column: 17, scope: !83) @@ -374,7 +374,7 @@ fn ImplicitWidenUnsignedCustom(a: Core.UInt(4)) -> Core.UInt(5) { return a; } // CHECK:STDOUT: !92 = !{!93} // CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !89, type: !30) // CHECK:STDOUT: !94 = !DILocation(line: 58, column: 36, scope: !89) -// CHECK:STDOUT: !95 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.1fcb3ce533adb4f1.Core.53bd1b576efef5e7", scope: null, file: !50, line: 71, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !96) +// CHECK:STDOUT: !95 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.a1a82301830d1e08.Core.cc82cccb0d5a8ccf", scope: null, file: !50, line: 71, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !96) // CHECK:STDOUT: !96 = !{!97} // CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !95, type: !38) // CHECK:STDOUT: !98 = !DILocation(line: 73, column: 17, scope: !95) diff --git a/toolchain/lower/testdata/primitives/numeric_literals.carbon b/toolchain/lower/testdata/primitives/numeric_literals.carbon index 2732fbb99ccd..e44fc9fe8090 100644 --- a/toolchain/lower/testdata/primitives/numeric_literals.carbon +++ b/toolchain/lower/testdata/primitives/numeric_literals.carbon @@ -32,8 +32,8 @@ fn F() { // CHECK:STDOUT: ; ModuleID = 'numeric_literals.carbon' // CHECK:STDOUT: source_filename = "numeric_literals.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @array.afa.loc16_3 = internal constant [4 x i32] [i32 8, i32 9, i32 8, i32 8] -// CHECK:STDOUT: @array.f7c.loc22_3 = internal constant [6 x double] [double 9.000000e-01, double 8.000000e+00, double 8.000000e+01, double 1.000000e+07, double 1.000000e+08, double 1.000000e-08] +// CHECK:STDOUT: @array.f6b.loc16_3 = internal constant [4 x i32] [i32 8, i32 9, i32 8, i32 8] +// CHECK:STDOUT: @array.69b.loc22_3 = internal constant [6 x double] [double 9.000000e-01, double 8.000000e+00, double 8.000000e+01, double 1.000000e+07, double 1.000000e+08, double 1.000000e-08] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF.Main() #0 !dbg !4 { @@ -45,7 +45,7 @@ fn F() { // CHECK:STDOUT: %.loc21_3.6.array.index = getelementptr inbounds [4 x i32], ptr %_.var.loc16, i32 0, i64 1, !dbg !9 // CHECK:STDOUT: %.loc21_3.9.array.index = getelementptr inbounds [4 x i32], ptr %_.var.loc16, i32 0, i64 2, !dbg !9 // CHECK:STDOUT: %.loc21_3.12.array.index = getelementptr inbounds [4 x i32], ptr %_.var.loc16, i32 0, i64 3, !dbg !9 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %_.var.loc16, ptr align 4 @array.afa.loc16_3, i64 16, i1 false), !dbg !7 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %_.var.loc16, ptr align 4 @array.f6b.loc16_3, i64 16, i1 false), !dbg !7 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc22), !dbg !8 // CHECK:STDOUT: %.loc29_3.3.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 0, !dbg !10 // CHECK:STDOUT: %.loc29_3.6.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 1, !dbg !10 @@ -53,32 +53,32 @@ fn F() { // CHECK:STDOUT: %.loc29_3.12.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 3, !dbg !10 // CHECK:STDOUT: %.loc29_3.15.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 4, !dbg !10 // CHECK:STDOUT: %.loc29_3.18.array.index = getelementptr inbounds [6 x double], ptr %_.var.loc22, i32 0, i64 5, !dbg !10 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %_.var.loc22, ptr align 8 @array.f7c.loc22_3, i64 48, i1 false), !dbg !8 -// CHECK:STDOUT: call void @"_COp.fa359bd889c8e0c3:core.Destroy.Core"(ptr %_.var.loc22), !dbg !8 -// CHECK:STDOUT: call void @"_COp.84dc7ec4d03d72e2:core.Destroy.Core"(ptr %_.var.loc16), !dbg !7 +// 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 !8 +// CHECK:STDOUT: call void @"_COp.e3fd6065b3f4357c:core.Destroy.Core"(ptr %_.var.loc22), !dbg !8 +// CHECK:STDOUT: call void @"_COp.8ab5ebc4f407c395:core.Destroy.Core"(ptr %_.var.loc16), !dbg !7 // CHECK:STDOUT: ret void, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %self) #0 !dbg !12 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.fa359bd889c8e0c3:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.e3fd6065b3f4357c:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.84dc7ec4d03d72e2:core.Destroy.Core"(ptr %self) #0 !dbg !30 { +// CHECK:STDOUT: define weak_odr void @"_COp.8ab5ebc4f407c395:core.Destroy.Core"(ptr %self) #0 !dbg !30 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } @@ -111,25 +111,25 @@ fn F() { // CHECK:STDOUT: !9 = !DILocation(line: 16, column: 26, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 22, column: 26, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e4fc30ecea9aa7e:core.Destroy.Core", scope: null, file: !3, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.30d8007fdcc57f83:core.Destroy.Core", scope: null, file: !3, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) // CHECK:STDOUT: !13 = !DISubroutineType(types: !14) // CHECK:STDOUT: !14 = !{null, !15} // CHECK:STDOUT: !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !16 = !{!17} // CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) // CHECK:STDOUT: !18 = !DILocation(line: 22, column: 3, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fa359bd889c8e0c3:core.Destroy.Core", scope: null, file: !3, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e3fd6065b3f4357c:core.Destroy.Core", scope: null, file: !3, line: 22, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) // CHECK:STDOUT: !20 = !{!21} // CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !19, type: !15) // CHECK:STDOUT: !22 = !DILocation(line: 22, column: 3, scope: !19) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) // CHECK:STDOUT: !24 = !DISubroutineType(types: !25) // CHECK:STDOUT: !25 = !{null, !26} // CHECK:STDOUT: !26 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !27 = !{!28} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !23, type: !26) // CHECK:STDOUT: !29 = !DILocation(line: 16, column: 3, scope: !23) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.84dc7ec4d03d72e2:core.Destroy.Core", scope: null, file: !3, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.8ab5ebc4f407c395:core.Destroy.Core", scope: null, file: !3, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !15) // CHECK:STDOUT: !33 = !DILocation(line: 16, column: 3, scope: !30) diff --git a/toolchain/lower/testdata/primitives/optional.carbon b/toolchain/lower/testdata/primitives/optional.carbon index 080a7b29dbd8..45430fc87865 100644 --- a/toolchain/lower/testdata/primitives/optional.carbon +++ b/toolchain/lower/testdata/primitives/optional.carbon @@ -61,7 +61,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.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !10 // CHECK:STDOUT: } @@ -69,17 +69,17 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CConvert.Main(ptr sret(<{ i32, i1 }>) %return, ptr %o) #0 !dbg !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.8e119863da11ee41(ptr %o), !dbg !17 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.b79ac2ab1b7701d6(ptr %o), !dbg !17 // CHECK:STDOUT: br i1 %Optional.HasValue.call, label %if.then, label %if.else, !dbg !18 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %entry -// CHECK:STDOUT: %Optional.Get.call = call ptr @_CGet.Optional.Core.8e119863da11ee41(ptr %o), !dbg !19 +// CHECK:STDOUT: %Optional.Get.call = call ptr @_CGet.Optional.Core.b79ac2ab1b7701d6(ptr %o), !dbg !19 // CHECK:STDOUT: %.loc5_12.2 = load i32, ptr %Optional.Get.call, align 4, !dbg !20 -// CHECK:STDOUT: call void @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.d584e9c3abeb69c0"(ptr %return, i32 %.loc5_12.2), !dbg !21 +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.a77ff6e8edaf9e8d"(ptr %return, i32 %.loc5_12.2), !dbg !21 // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: call void @_CNone.Optional.Core.8abaa694b657a602(ptr %return), !dbg !22 +// CHECK:STDOUT: call void @_CNone.Optional.Core.70a0b54a75854b7a(ptr %return), !dbg !22 // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -95,119 +95,119 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: %_.var.loc17 = alloca <{ i32, i1 }>, align 4, !dbg !36 // CHECK:STDOUT: %_.var.loc18 = alloca <{ i32, i1 }>, align 4, !dbg !37 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc11), !dbg !30 -// CHECK:STDOUT: call void @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.d584e9c3abeb69c0"(ptr %_.var.loc11, i32 %a), !dbg !30 +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.a77ff6e8edaf9e8d"(ptr %_.var.loc11, i32 %a), !dbg !30 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc12), !dbg !31 -// CHECK:STDOUT: call void @"_CConvert.8c14fbb190d2c4a2:ImplicitAs.ad22d1bbc0605210.Core.4462757cf1994b1f"(ptr %_.var.loc12, i32 %a), !dbg !31 +// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.36d191ed69f42abb"(ptr %_.var.loc12, i32 %a), !dbg !31 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc13), !dbg !32 -// CHECK:STDOUT: call void @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.5301bd2e5265063e"(ptr %_.var.loc13, i32 %a), !dbg !32 +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.6f97602f44c068f9"(ptr %_.var.loc13, i32 %a), !dbg !32 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc14), !dbg !33 -// CHECK:STDOUT: call void @"_CConvert.8c14fbb190d2c4a2:ImplicitAs.ad22d1bbc0605210.Core.bae947e6cb644eb3"(ptr %_.var.loc14, i32 %a), !dbg !33 +// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.7e715d26c6bb9daa"(ptr %_.var.loc14, i32 %a), !dbg !33 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc15), !dbg !34 -// CHECK:STDOUT: call void @"_CConvert.874935b394d32264:ImplicitAs.eb057aa32837c84e.Core.4462757cf1994b1f"(ptr %_.var.loc15, i32 %b), !dbg !34 +// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.36d191ed69f42abb"(ptr %_.var.loc15, i32 %b), !dbg !34 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc16), !dbg !35 -// CHECK:STDOUT: call void @"_CConvert.874935b394d32264:ImplicitAs.eb057aa32837c84e.Core.d312635c3eabfce6"(ptr %_.var.loc16, i32 %b), !dbg !35 +// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.bd2b2818aef220bf"(ptr %_.var.loc16, i32 %b), !dbg !35 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc17), !dbg !36 -// CHECK:STDOUT: call void @"_CConvert.874935b394d32264:ImplicitAs.eb057aa32837c84e.Core.bae947e6cb644eb3"(ptr %_.var.loc17, i32 %b), !dbg !36 +// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.7e715d26c6bb9daa"(ptr %_.var.loc17, i32 %b), !dbg !36 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc18), !dbg !37 -// CHECK:STDOUT: call void @"_CConvert.874935b394d32264:ImplicitAs.eb057aa32837c84e.Core.4e32707a29fe420f"(ptr %_.var.loc18, i32 %b), !dbg !37 -// CHECK:STDOUT: call void @"_COp.40c46f69cfcfbfe0:core.Destroy.Core"(ptr %_.var.loc18), !dbg !37 -// CHECK:STDOUT: call void @"_COp.482d7f78e894e7e4:core.Destroy.Core"(ptr %_.var.loc17), !dbg !36 -// CHECK:STDOUT: call void @"_COp.772e6391bfdaa681:core.Destroy.Core"(ptr %_.var.loc16), !dbg !35 -// CHECK:STDOUT: call void @"_COp.06418948197cfd5d:core.Destroy.Core"(ptr %_.var.loc15), !dbg !34 -// CHECK:STDOUT: call void @"_COp.40c46f69cfcfbfe0:core.Destroy.Core"(ptr %_.var.loc14), !dbg !33 -// CHECK:STDOUT: call void @"_COp.482d7f78e894e7e4:core.Destroy.Core"(ptr %_.var.loc13), !dbg !32 -// CHECK:STDOUT: call void @"_COp.772e6391bfdaa681:core.Destroy.Core"(ptr %_.var.loc12), !dbg !31 -// CHECK:STDOUT: call void @"_COp.06418948197cfd5d:core.Destroy.Core"(ptr %_.var.loc11), !dbg !30 +// CHECK:STDOUT: call void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.7f331ac9d2b85055"(ptr %_.var.loc18, i32 %b), !dbg !37 +// CHECK:STDOUT: call void @"_COp.56bc00fa6756ea9e:core.Destroy.Core"(ptr %_.var.loc18), !dbg !37 +// CHECK:STDOUT: call void @"_COp.bc7b205814bb8542:core.Destroy.Core"(ptr %_.var.loc17), !dbg !36 +// CHECK:STDOUT: call void @"_COp.49575b3ccc332429:core.Destroy.Core"(ptr %_.var.loc16), !dbg !35 +// CHECK:STDOUT: call void @"_COp.30688d383ae72bab:core.Destroy.Core"(ptr %_.var.loc15), !dbg !34 +// CHECK:STDOUT: call void @"_COp.56bc00fa6756ea9e:core.Destroy.Core"(ptr %_.var.loc14), !dbg !33 +// CHECK:STDOUT: call void @"_COp.bc7b205814bb8542:core.Destroy.Core"(ptr %_.var.loc13), !dbg !32 +// CHECK:STDOUT: call void @"_COp.49575b3ccc332429:core.Destroy.Core"(ptr %_.var.loc12), !dbg !31 +// CHECK:STDOUT: call void @"_COp.30688d383ae72bab:core.Destroy.Core"(ptr %_.var.loc11), !dbg !30 // CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.e3bae0f289bcf878:core.Destroy.Core"(ptr %self) #0 !dbg !39 { +// CHECK:STDOUT: define weak_odr void @"_COp.05c48b3d4126597e:core.Destroy.Core"(ptr %self) #0 !dbg !39 { // 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.15c3613c1fae3fe8:core.Destroy.Core"(ptr %self) #0 !dbg !45 { +// CHECK:STDOUT: define weak_odr void @"_COp.eb54d7735089d035:core.Destroy.Core"(ptr %self) #0 !dbg !45 { // 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.7a29c69bca4c0f8d:core.Destroy.Core"(ptr %self) #0 !dbg !49 { +// CHECK:STDOUT: define weak_odr void @"_COp.33aade76ef369ae0:core.Destroy.Core"(ptr %self) #0 !dbg !49 { // 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.4430ba11e9d8c243:core.Destroy.Core"(ptr %self) #0 !dbg !53 { +// CHECK:STDOUT: define weak_odr void @"_COp.4352d4717a4da3c5:core.Destroy.Core"(ptr %self) #0 !dbg !53 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.482d7f78e894e7e4:core.Destroy.Core"(ptr %self) #0 !dbg !57 { +// CHECK:STDOUT: define weak_odr void @"_COp.bc7b205814bb8542:core.Destroy.Core"(ptr %self) #0 !dbg !57 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.40c46f69cfcfbfe0:core.Destroy.Core"(ptr %self) #0 !dbg !61 { +// CHECK:STDOUT: define weak_odr void @"_COp.56bc00fa6756ea9e: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.bc4985fcac159a9a:core.Destroy.Core"(ptr %self) #0 !dbg !65 { +// CHECK:STDOUT: define weak_odr void @"_COp.0fc9634857315db2:core.Destroy.Core"(ptr %self) #0 !dbg !65 { // 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.6d11ad784a4a1da0:core.Destroy.Core"(ptr %self) #0 !dbg !69 { +// CHECK:STDOUT: define weak_odr void @"_COp.69700c1fc1b2744c:core.Destroy.Core"(ptr %self) #0 !dbg !69 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !72 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.084abe736cf37c46:core.Destroy.Core"(ptr %self) #0 !dbg !73 { +// CHECK:STDOUT: define weak_odr void @"_COp.36bd54c278c044c5:core.Destroy.Core"(ptr %self) #0 !dbg !73 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.06418948197cfd5d:core.Destroy.Core"(ptr %self) #0 !dbg !77 { +// CHECK:STDOUT: define weak_odr void @"_COp.30688d383ae72bab:core.Destroy.Core"(ptr %self) #0 !dbg !77 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.772e6391bfdaa681:core.Destroy.Core"(ptr %self) #0 !dbg !81 { +// CHECK:STDOUT: define weak_odr void @"_COp.49575b3ccc332429:core.Destroy.Core"(ptr %self) #0 !dbg !81 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.8e119863da11ee41(ptr %self) #0 !dbg !85 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.5e5386123d4b6287"(ptr %self), !dbg !89 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.b79ac2ab1b7701d6(ptr %self) #0 !dbg !85 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba"(ptr %self), !dbg !89 // CHECK:STDOUT: ret i1 %1, !dbg !90 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CGet.Optional.Core.8e119863da11ee41(ptr %self) #0 !dbg !91 { -// CHECK:STDOUT: %1 = call ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.5e5386123d4b6287"(ptr %self), !dbg !94 +// CHECK:STDOUT: define linkonce_odr ptr @_CGet.Optional.Core.b79ac2ab1b7701d6(ptr %self) #0 !dbg !91 { +// CHECK:STDOUT: %1 = call ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba"(ptr %self), !dbg !94 // CHECK:STDOUT: ret ptr %1, !dbg !95 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.d584e9c3abeb69c0"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !96 { -// CHECK:STDOUT: call void @"_CConvert.a0c6f87edec590a2:OptionalAs.3a7c842b5a6bca51.Core.8abaa694b657a602"(ptr %return, i32 %self), !dbg !101 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.a77ff6e8edaf9e8d"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !96 { +// CHECK:STDOUT: call void @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.70a0b54a75854b7a"(ptr %return, i32 %self), !dbg !101 // CHECK:STDOUT: ret void, !dbg !102 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.8abaa694b657a602(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !103 { -// CHECK:STDOUT: call void @"_CNone.c70f21296ce3b72c:OptionalStorage.Core.7ddaa82882073726"(ptr %return), !dbg !106 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.70a0b54a75854b7a(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !103 { +// CHECK:STDOUT: call void @"_CNone.74becf39533834ee:OptionalStorage.Core.b99f4a084b13a83f"(ptr %return), !dbg !106 // CHECK:STDOUT: ret void, !dbg !107 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -215,104 +215,104 @@ 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.8c14fbb190d2c4a2:ImplicitAs.ad22d1bbc0605210.Core.4462757cf1994b1f"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !108 { -// CHECK:STDOUT: call void @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.d584e9c3abeb69c0"(ptr %return, i32 %self), !dbg !112 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.36d191ed69f42abb"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !108 { +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.a77ff6e8edaf9e8d"(ptr %return, i32 %self), !dbg !112 // CHECK:STDOUT: ret void, !dbg !113 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.5301bd2e5265063e"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !114 { -// CHECK:STDOUT: call void @"_CConvert.6bb01b3b35e74e55:OptionalAs.db69f09c2307f298.Core.5c5ece92cc304396"(ptr %return, i32 %self), !dbg !117 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.6f97602f44c068f9"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !114 { +// CHECK:STDOUT: call void @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.04776faa19f4241b"(ptr %return, i32 %self), !dbg !117 // CHECK:STDOUT: ret void, !dbg !118 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.8c14fbb190d2c4a2:ImplicitAs.ad22d1bbc0605210.Core.bae947e6cb644eb3"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !119 { -// CHECK:STDOUT: call void @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.5301bd2e5265063e"(ptr %return, i32 %self), !dbg !122 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.7e715d26c6bb9daa"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !119 { +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.6f97602f44c068f9"(ptr %return, i32 %self), !dbg !122 // CHECK:STDOUT: ret void, !dbg !123 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.874935b394d32264:ImplicitAs.eb057aa32837c84e.Core.4462757cf1994b1f"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !124 { -// CHECK:STDOUT: call void @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.d584e9c3abeb69c0"(ptr %return, i32 %self), !dbg !127 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.36d191ed69f42abb"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !124 { +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.a77ff6e8edaf9e8d"(ptr %return, i32 %self), !dbg !127 // CHECK:STDOUT: ret void, !dbg !128 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.874935b394d32264:ImplicitAs.eb057aa32837c84e.Core.d312635c3eabfce6"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !129 { -// CHECK:STDOUT: call void @"_CConvert.8c14fbb190d2c4a2:ImplicitAs.ad22d1bbc0605210.Core.4462757cf1994b1f"(ptr %return, i32 %self), !dbg !132 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.bd2b2818aef220bf"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !129 { +// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.36d191ed69f42abb"(ptr %return, i32 %self), !dbg !132 // CHECK:STDOUT: ret void, !dbg !133 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.874935b394d32264:ImplicitAs.eb057aa32837c84e.Core.bae947e6cb644eb3"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !134 { -// CHECK:STDOUT: call void @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.5301bd2e5265063e"(ptr %return, i32 %self), !dbg !137 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.7e715d26c6bb9daa"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !134 { +// CHECK:STDOUT: call void @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.6f97602f44c068f9"(ptr %return, i32 %self), !dbg !137 // CHECK:STDOUT: ret void, !dbg !138 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.874935b394d32264:ImplicitAs.eb057aa32837c84e.Core.4e32707a29fe420f"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !139 { -// CHECK:STDOUT: call void @"_CConvert.8c14fbb190d2c4a2:ImplicitAs.ad22d1bbc0605210.Core.bae947e6cb644eb3"(ptr %return, i32 %self), !dbg !142 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.7f331ac9d2b85055"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !139 { +// CHECK:STDOUT: call void @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.7e715d26c6bb9daa"(ptr %return, i32 %self), !dbg !142 // CHECK:STDOUT: ret void, !dbg !143 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.5e5386123d4b6287"(ptr %value) #0 !dbg !144 { +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba"(ptr %value) #0 !dbg !144 { // CHECK:STDOUT: %1 = icmp eq ptr %value, null, !dbg !147 // CHECK:STDOUT: %2 = xor i1 %1, true, !dbg !148 // CHECK:STDOUT: ret i1 %2, !dbg !149 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.5e5386123d4b6287"(ptr %value) #0 !dbg !150 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba"(ptr %value) #0 !dbg !150 { // CHECK:STDOUT: ret ptr %value, !dbg !153 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.a0c6f87edec590a2:OptionalAs.3a7c842b5a6bca51.Core.8abaa694b657a602"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !154 { -// CHECK:STDOUT: call void @_CSome.Optional.Core.8abaa694b657a602(ptr %return, i32 %self), !dbg !157 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.70a0b54a75854b7a"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !154 { +// CHECK:STDOUT: call void @_CSome.Optional.Core.70a0b54a75854b7a(ptr %return, i32 %self), !dbg !157 // CHECK:STDOUT: ret void, !dbg !158 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.c70f21296ce3b72c:OptionalStorage.Core.7ddaa82882073726"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !159 { +// CHECK:STDOUT: define linkonce_odr void @"_CNone.74becf39533834ee:OptionalStorage.Core.b99f4a084b13a83f"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !159 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !160 // CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !160 // CHECK:STDOUT: ret void, !dbg !161 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.6bb01b3b35e74e55:OptionalAs.db69f09c2307f298.Core.5c5ece92cc304396"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !162 { +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.04776faa19f4241b"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !162 { // CHECK:STDOUT: %temp = alloca i32, align 4, !dbg !165 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !165 -// CHECK:STDOUT: %1 = call i32 @"_CConvert.8c14fbb190d2c4a2:ImplicitAs.ad22d1bbc0605210.Core.8c6f821d602abaa4"(i32 %self), !dbg !165 +// CHECK:STDOUT: %1 = call i32 @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.a1e92423fb5cda0f"(i32 %self), !dbg !165 // CHECK:STDOUT: store i32 %1, ptr %temp, align 4, !dbg !165 // CHECK:STDOUT: %2 = load i32, ptr %temp, align 4, !dbg !165 -// CHECK:STDOUT: call void @_CSome.Optional.Core.664c9635efe58704(ptr %return, i32 %2), !dbg !166 -// CHECK:STDOUT: call void @"_COp.e3bae0f289bcf878:core.Destroy.Core"(ptr %temp), !dbg !165 +// CHECK:STDOUT: call void @_CSome.Optional.Core.442ff502447e2586(ptr %return, i32 %2), !dbg !166 +// CHECK:STDOUT: call void @"_COp.05c48b3d4126597e:core.Destroy.Core"(ptr %temp), !dbg !165 // CHECK:STDOUT: ret void, !dbg !167 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.8abaa694b657a602(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !168 { -// CHECK:STDOUT: call void @"_CSome.c70f21296ce3b72c:OptionalStorage.Core.7ddaa82882073726"(ptr %return, i32 %value), !dbg !171 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.70a0b54a75854b7a(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !168 { +// CHECK:STDOUT: call void @"_CSome.74becf39533834ee:OptionalStorage.Core.b99f4a084b13a83f"(ptr %return, i32 %value), !dbg !171 // CHECK:STDOUT: ret void, !dbg !172 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.8c14fbb190d2c4a2:ImplicitAs.ad22d1bbc0605210.Core.8c6f821d602abaa4"(i32 %self) #0 !dbg !173 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc"(i32 %self), !dbg !176 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.a1e92423fb5cda0f"(i32 %self) #0 !dbg !173 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47"(i32 %self), !dbg !176 // CHECK:STDOUT: ret i32 %1, !dbg !177 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.664c9635efe58704(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !178 { -// CHECK:STDOUT: call void @"_CSome.c70f21296ce3b72c:OptionalStorage.Core.66877768e8b2b97c"(ptr %return, i32 %value), !dbg !181 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.442ff502447e2586(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !178 { +// CHECK:STDOUT: call void @"_CSome.74becf39533834ee:OptionalStorage.Core.9e376a14fbf8fb3d"(ptr %return, i32 %value), !dbg !181 // CHECK:STDOUT: ret void, !dbg !182 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.c70f21296ce3b72c:OptionalStorage.Core.7ddaa82882073726"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !183 { +// CHECK:STDOUT: define linkonce_odr void @"_CSome.74becf39533834ee:OptionalStorage.Core.b99f4a084b13a83f"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !183 { // CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !186 // CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !186 // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !187 @@ -321,15 +321,15 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc"(i32 %self) #0 !dbg !189 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47"(i32 %self) #0 !dbg !189 { // CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !195 // CHECK:STDOUT: ret i32 %1, !dbg !196 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.c70f21296ce3b72c:OptionalStorage.Core.66877768e8b2b97c"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !197 { +// CHECK:STDOUT: define linkonce_odr void @"_CSome.74becf39533834ee:OptionalStorage.Core.9e376a14fbf8fb3d"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !197 { // CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !200 -// CHECK:STDOUT: %1 = call i32 @"_COp.99377c0e95f681c6:Copy.Core.4bee6dcdea6ba756"(i32 %self), !dbg !201 +// CHECK:STDOUT: %1 = call i32 @"_COp.a7c16f707f533a23:Copy.Core.5bd8d5767580997a"(i32 %self), !dbg !201 // CHECK:STDOUT: store i32 %1, ptr %value, align 4, !dbg !200 // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !202 // CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !202 @@ -342,16 +342,16 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_COp.99377c0e95f681c6:Copy.Core.4bee6dcdea6ba756"(i32 %self) #0 !dbg !208 { +// CHECK:STDOUT: define linkonce_odr i32 @"_COp.a7c16f707f533a23:Copy.Core.5bd8d5767580997a"(i32 %self) #0 !dbg !208 { // CHECK:STDOUT: ret i32 %self, !dbg !212 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.482d7f78e894e7e4:core.Destroy.Core", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.40c46f69cfcfbfe0:core.Destroy.Core", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.06418948197cfd5d:core.Destroy.Core", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.772e6391bfdaa681:core.Destroy.Core", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.d584e9c3abeb69c0", { 0, 1, 3, 2 } +// CHECK:STDOUT: uselistorder ptr @"_COp.bc7b205814bb8542:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.56bc00fa6756ea9e:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.30688d383ae72bab:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.49575b3ccc332429:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.a77ff6e8edaf9e8d", { 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 } @@ -364,7 +364,7 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "convert.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 3, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 3, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{null, !7} // CHECK:STDOUT: !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) @@ -399,157 +399,157 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !36 = !DILocation(line: 17, column: 3, scope: !24) // CHECK:STDOUT: !37 = !DILocation(line: 18, column: 3, scope: !24) // CHECK:STDOUT: !38 = !DILocation(line: 10, column: 1, scope: !24) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e3bae0f289bcf878:core.Destroy.Core", scope: null, file: !3, line: 13, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.05c48b3d4126597e:core.Destroy.Core", scope: null, file: !3, line: 13, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) // CHECK:STDOUT: !40 = !DISubroutineType(types: !41) // CHECK:STDOUT: !41 = !{null, !14} // CHECK:STDOUT: !42 = !{!43} // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !39, type: !14) // CHECK:STDOUT: !44 = !DILocation(line: 13, column: 10, scope: !39) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.15c3613c1fae3fe8:core.Destroy.Core", scope: null, file: !3, line: 18, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eb54d7735089d035:core.Destroy.Core", scope: null, file: !3, line: 18, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) // CHECK:STDOUT: !46 = !{!47} // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !14) // CHECK:STDOUT: !48 = !DILocation(line: 18, column: 3, scope: !45) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7a29c69bca4c0f8d:core.Destroy.Core", scope: null, file: !3, line: 18, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !50) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Op", linkageName: "_COp.33aade76ef369ae0:core.Destroy.Core", scope: null, file: !3, line: 18, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !50) // CHECK:STDOUT: !50 = !{!51} // CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !14) // CHECK:STDOUT: !52 = !DILocation(line: 18, column: 3, scope: !49) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4430ba11e9d8c243:core.Destroy.Core", scope: null, file: !3, line: 18, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !54) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4352d4717a4da3c5:core.Destroy.Core", scope: null, file: !3, line: 18, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !54) // CHECK:STDOUT: !54 = !{!55} // CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !53, type: !14) // CHECK:STDOUT: !56 = !DILocation(line: 18, column: 3, scope: !53) -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.482d7f78e894e7e4:core.Destroy.Core", scope: null, file: !3, line: 18, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !58) +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bc7b205814bb8542:core.Destroy.Core", scope: null, file: !3, line: 18, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !58) // CHECK:STDOUT: !58 = !{!59} // CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !57, type: !14) // CHECK:STDOUT: !60 = !DILocation(line: 18, column: 3, scope: !57) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.40c46f69cfcfbfe0:core.Destroy.Core", scope: null, file: !3, line: 18, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !62) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.56bc00fa6756ea9e:core.Destroy.Core", scope: null, file: !3, line: 18, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !62) // CHECK:STDOUT: !62 = !{!63} // CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !61, type: !14) // CHECK:STDOUT: !64 = !DILocation(line: 18, column: 3, scope: !61) -// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bc4985fcac159a9a:core.Destroy.Core", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !66) +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0fc9634857315db2:core.Destroy.Core", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !66) // CHECK:STDOUT: !66 = !{!67} // CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !65, type: !7) // CHECK:STDOUT: !68 = !DILocation(line: 16, column: 3, scope: !65) -// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6d11ad784a4a1da0:core.Destroy.Core", scope: null, file: !3, line: 16, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !70) +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "Op", linkageName: "_COp.69700c1fc1b2744c:core.Destroy.Core", scope: null, file: !3, line: 16, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !70) // CHECK:STDOUT: !70 = !{!71} // CHECK:STDOUT: !71 = !DILocalVariable(arg: 1, scope: !69, type: !14) // CHECK:STDOUT: !72 = !DILocation(line: 16, column: 3, scope: !69) -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Op", linkageName: "_COp.084abe736cf37c46:core.Destroy.Core", scope: null, file: !3, line: 16, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !74) +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Op", linkageName: "_COp.36bd54c278c044c5:core.Destroy.Core", scope: null, file: !3, line: 16, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !74) // CHECK:STDOUT: !74 = !{!75} // CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !73, type: !14) // CHECK:STDOUT: !76 = !DILocation(line: 16, column: 3, scope: !73) -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Op", linkageName: "_COp.06418948197cfd5d:core.Destroy.Core", scope: null, file: !3, line: 16, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !78) +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Op", linkageName: "_COp.30688d383ae72bab:core.Destroy.Core", scope: null, file: !3, line: 16, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !78) // CHECK:STDOUT: !78 = !{!79} // CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !77, type: !14) // CHECK:STDOUT: !80 = !DILocation(line: 16, column: 3, scope: !77) -// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Op", linkageName: "_COp.772e6391bfdaa681:core.Destroy.Core", scope: null, file: !3, line: 16, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !82) +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Op", linkageName: "_COp.49575b3ccc332429:core.Destroy.Core", scope: null, file: !3, line: 16, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !82) // CHECK:STDOUT: !82 = !{!83} // CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !81, type: !14) // CHECK:STDOUT: !84 = !DILocation(line: 16, column: 3, scope: !81) -// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.8e119863da11ee41", scope: null, file: !86, line: 36, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !87) +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.b79ac2ab1b7701d6", scope: null, file: !86, line: 36, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !87) // CHECK:STDOUT: !86 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !87 = !{!88} // CHECK:STDOUT: !88 = !DILocalVariable(arg: 1, scope: !85, type: !14) // CHECK:STDOUT: !89 = !DILocation(line: 37, column: 12, scope: !85) // CHECK:STDOUT: !90 = !DILocation(line: 37, column: 5, scope: !85) -// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.8e119863da11ee41", scope: null, file: !86, line: 39, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !92) +// CHECK:STDOUT: !91 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.b79ac2ab1b7701d6", scope: null, file: !86, line: 39, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !92) // CHECK:STDOUT: !92 = !{!93} // CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !91, type: !14) // CHECK:STDOUT: !94 = !DILocation(line: 40, column: 12, scope: !91) // CHECK:STDOUT: !95 = !DILocation(line: 40, column: 5, scope: !91) -// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.d584e9c3abeb69c0", scope: null, file: !86, line: 105, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !99) +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.a77ff6e8edaf9e8d", scope: null, file: !86, line: 105, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !99) // CHECK:STDOUT: !97 = !DISubroutineType(types: !98) // CHECK:STDOUT: !98 = !{!14, !7} // CHECK:STDOUT: !99 = !{!100} // CHECK:STDOUT: !100 = !DILocalVariable(arg: 1, scope: !96, type: !7) // CHECK:STDOUT: !101 = !DILocation(line: 106, column: 12, scope: !96) // CHECK:STDOUT: !102 = !DILocation(line: 106, column: 5, scope: !96) -// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.8abaa694b657a602", scope: null, file: !86, line: 30, type: !104, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.70a0b54a75854b7a", scope: null, file: !86, line: 30, type: !104, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !104 = !DISubroutineType(types: !105) // CHECK:STDOUT: !105 = !{!14} // CHECK:STDOUT: !106 = !DILocation(line: 31, column: 12, scope: !103) // CHECK:STDOUT: !107 = !DILocation(line: 31, column: 5, scope: !103) -// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.8c14fbb190d2c4a2:ImplicitAs.ad22d1bbc0605210.Core.4462757cf1994b1f", scope: null, file: !109, line: 42, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !110) +// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.36d191ed69f42abb", scope: null, file: !109, line: 42, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !110) // CHECK:STDOUT: !109 = !DIFile(filename: "{{.*}}/prelude/operators/as.carbon", directory: "") // CHECK:STDOUT: !110 = !{!111} // CHECK:STDOUT: !111 = !DILocalVariable(arg: 1, scope: !108, type: !7) // CHECK:STDOUT: !112 = !DILocation(line: 42, column: 45, scope: !108) // CHECK:STDOUT: !113 = !DILocation(line: 42, column: 38, scope: !108) -// CHECK:STDOUT: !114 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.0a82a05610538fbd:ImplicitAs.dfe7f37cd2946174.Core.5301bd2e5265063e", scope: null, file: !86, line: 105, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !115) +// CHECK:STDOUT: !114 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.538322f9fda4254f:ImplicitAs.a276ba298c70ba87.Core.6f97602f44c068f9", scope: null, file: !86, line: 105, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !115) // CHECK:STDOUT: !115 = !{!116} // CHECK:STDOUT: !116 = !DILocalVariable(arg: 1, scope: !114, type: !7) // CHECK:STDOUT: !117 = !DILocation(line: 106, column: 12, scope: !114) // CHECK:STDOUT: !118 = !DILocation(line: 106, column: 5, scope: !114) -// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.8c14fbb190d2c4a2:ImplicitAs.ad22d1bbc0605210.Core.bae947e6cb644eb3", scope: null, file: !109, line: 42, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !120) +// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.7e715d26c6bb9daa", scope: null, file: !109, line: 42, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !120) // CHECK:STDOUT: !120 = !{!121} // CHECK:STDOUT: !121 = !DILocalVariable(arg: 1, scope: !119, type: !7) // CHECK:STDOUT: !122 = !DILocation(line: 42, column: 45, scope: !119) // CHECK:STDOUT: !123 = !DILocation(line: 42, column: 38, scope: !119) -// CHECK:STDOUT: !124 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.874935b394d32264:ImplicitAs.eb057aa32837c84e.Core.4462757cf1994b1f", scope: null, file: !109, line: 46, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !125) +// CHECK:STDOUT: !124 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.36d191ed69f42abb", scope: null, file: !109, line: 46, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !125) // CHECK:STDOUT: !125 = !{!126} // CHECK:STDOUT: !126 = !DILocalVariable(arg: 1, scope: !124, type: !7) // CHECK:STDOUT: !127 = !DILocation(line: 46, column: 45, scope: !124) // CHECK:STDOUT: !128 = !DILocation(line: 46, column: 38, scope: !124) -// CHECK:STDOUT: !129 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.874935b394d32264:ImplicitAs.eb057aa32837c84e.Core.d312635c3eabfce6", scope: null, file: !109, line: 46, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !130) +// CHECK:STDOUT: !129 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.bd2b2818aef220bf", scope: null, file: !109, line: 46, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !130) // CHECK:STDOUT: !130 = !{!131} // CHECK:STDOUT: !131 = !DILocalVariable(arg: 1, scope: !129, type: !7) // CHECK:STDOUT: !132 = !DILocation(line: 46, column: 45, scope: !129) // CHECK:STDOUT: !133 = !DILocation(line: 46, column: 38, scope: !129) -// CHECK:STDOUT: !134 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.874935b394d32264:ImplicitAs.eb057aa32837c84e.Core.bae947e6cb644eb3", scope: null, file: !109, line: 46, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !135) +// CHECK:STDOUT: !134 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.7e715d26c6bb9daa", scope: null, file: !109, line: 46, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !135) // CHECK:STDOUT: !135 = !{!136} // CHECK:STDOUT: !136 = !DILocalVariable(arg: 1, scope: !134, type: !7) // CHECK:STDOUT: !137 = !DILocation(line: 46, column: 45, scope: !134) // CHECK:STDOUT: !138 = !DILocation(line: 46, column: 38, scope: !134) -// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.874935b394d32264:ImplicitAs.eb057aa32837c84e.Core.4e32707a29fe420f", scope: null, file: !109, line: 46, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !140) +// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.c18e58a62bf591fb:ImplicitAs.eb057aa32837c84e.Core.7f331ac9d2b85055", scope: null, file: !109, line: 46, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !140) // CHECK:STDOUT: !140 = !{!141} // CHECK:STDOUT: !141 = !DILocalVariable(arg: 1, scope: !139, type: !7) // CHECK:STDOUT: !142 = !DILocation(line: 46, column: 45, scope: !139) // CHECK:STDOUT: !143 = !DILocation(line: 46, column: 38, scope: !139) -// CHECK:STDOUT: !144 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.e8f8f92d3d08d149:OptionalStorage.Core.5e5386123d4b6287", scope: null, file: !86, line: 172, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !145) +// CHECK:STDOUT: !144 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba", scope: null, file: !86, line: 172, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !145) // CHECK:STDOUT: !145 = !{!146} // CHECK:STDOUT: !146 = !DILocalVariable(arg: 1, scope: !144, type: !14) // CHECK:STDOUT: !147 = !DILocation(line: 173, column: 16, scope: !144) // CHECK:STDOUT: !148 = !DILocation(line: 173, column: 12, scope: !144) // CHECK:STDOUT: !149 = !DILocation(line: 173, column: 5, scope: !144) -// CHECK:STDOUT: !150 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.e8f8f92d3d08d149:OptionalStorage.Core.5e5386123d4b6287", scope: null, file: !86, line: 175, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !151) +// CHECK:STDOUT: !150 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.e8f8f92d3d08d149:OptionalStorage.Core.84588f41d61dafba", scope: null, file: !86, line: 175, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !151) // CHECK:STDOUT: !151 = !{!152} // CHECK:STDOUT: !152 = !DILocalVariable(arg: 1, scope: !150, type: !14) // CHECK:STDOUT: !153 = !DILocation(line: 176, column: 5, scope: !150) -// CHECK:STDOUT: !154 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.a0c6f87edec590a2:OptionalAs.3a7c842b5a6bca51.Core.8abaa694b657a602", scope: null, file: !86, line: 80, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !155) +// CHECK:STDOUT: !154 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.9fdaf39d07a1dc4e:OptionalAs.24b7347a93330e68.Core.70a0b54a75854b7a", scope: null, file: !86, line: 80, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !155) // CHECK:STDOUT: !155 = !{!156} // CHECK:STDOUT: !156 = !DILocalVariable(arg: 1, scope: !154, type: !7) // CHECK:STDOUT: !157 = !DILocation(line: 81, column: 12, scope: !154) // CHECK:STDOUT: !158 = !DILocation(line: 81, column: 5, scope: !154) -// CHECK:STDOUT: !159 = distinct !DISubprogram(name: "None", linkageName: "_CNone.c70f21296ce3b72c:OptionalStorage.Core.7ddaa82882073726", scope: null, file: !86, line: 125, type: !104, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !159 = distinct !DISubprogram(name: "None", linkageName: "_CNone.74becf39533834ee:OptionalStorage.Core.b99f4a084b13a83f", scope: null, file: !86, line: 125, type: !104, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !160 = !DILocation(line: 128, column: 5, scope: !159) // CHECK:STDOUT: !161 = !DILocation(line: 129, column: 5, scope: !159) -// CHECK:STDOUT: !162 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.6bb01b3b35e74e55:OptionalAs.db69f09c2307f298.Core.5c5ece92cc304396", scope: null, file: !86, line: 87, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !163) +// CHECK:STDOUT: !162 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.d62727437df45535:OptionalAs.1dac4564233fecd1.Core.04776faa19f4241b", scope: null, file: !86, line: 87, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !163) // CHECK:STDOUT: !163 = !{!164} // CHECK:STDOUT: !164 = !DILocalVariable(arg: 1, scope: !162, type: !7) // CHECK:STDOUT: !165 = !DILocation(line: 88, column: 29, scope: !162) // CHECK:STDOUT: !166 = !DILocation(line: 88, column: 12, scope: !162) // CHECK:STDOUT: !167 = !DILocation(line: 88, column: 5, scope: !162) -// CHECK:STDOUT: !168 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.8abaa694b657a602", scope: null, file: !86, line: 33, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !169) +// CHECK:STDOUT: !168 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.70a0b54a75854b7a", scope: null, file: !86, line: 33, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !169) // CHECK:STDOUT: !169 = !{!170} // CHECK:STDOUT: !170 = !DILocalVariable(arg: 1, scope: !168, type: !7) // CHECK:STDOUT: !171 = !DILocation(line: 34, column: 12, scope: !168) // CHECK:STDOUT: !172 = !DILocation(line: 34, column: 5, scope: !168) -// CHECK:STDOUT: !173 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.8c14fbb190d2c4a2:ImplicitAs.ad22d1bbc0605210.Core.8c6f821d602abaa4", scope: null, file: !109, line: 42, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !174) +// CHECK:STDOUT: !173 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.ef077c075a7e2432:ImplicitAs.ad22d1bbc0605210.Core.a1e92423fb5cda0f", scope: null, file: !109, line: 42, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !174) // CHECK:STDOUT: !174 = !{!175} // CHECK:STDOUT: !175 = !DILocalVariable(arg: 1, scope: !173, type: !7) // CHECK:STDOUT: !176 = !DILocation(line: 42, column: 45, scope: !173) // CHECK:STDOUT: !177 = !DILocation(line: 42, column: 38, scope: !173) -// CHECK:STDOUT: !178 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.664c9635efe58704", scope: null, file: !86, line: 33, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !179) +// CHECK:STDOUT: !178 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.442ff502447e2586", scope: null, file: !86, line: 33, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !179) // CHECK:STDOUT: !179 = !{!180} // CHECK:STDOUT: !180 = !DILocalVariable(arg: 1, scope: !178, type: !7) // CHECK:STDOUT: !181 = !DILocation(line: 34, column: 12, scope: !178) // CHECK:STDOUT: !182 = !DILocation(line: 34, column: 5, scope: !178) -// CHECK:STDOUT: !183 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.c70f21296ce3b72c:OptionalStorage.Core.7ddaa82882073726", scope: null, file: !86, line: 131, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !184) +// CHECK:STDOUT: !183 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.74becf39533834ee:OptionalStorage.Core.b99f4a084b13a83f", scope: null, file: !86, line: 131, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !184) // CHECK:STDOUT: !184 = !{!185} // CHECK:STDOUT: !185 = !DILocalVariable(arg: 1, scope: !183, type: !7) // CHECK:STDOUT: !186 = !DILocation(line: 137, column: 5, scope: !183) // CHECK:STDOUT: !187 = !DILocation(line: 138, column: 5, scope: !183) // CHECK:STDOUT: !188 = !DILocation(line: 139, column: 5, scope: !183) -// CHECK:STDOUT: !189 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.667d1d3a0ad99849:ImplicitAs.8b551f392b5250ee.Core.4a088ada889550fc", scope: null, file: !190, line: 63, type: !191, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !193) +// CHECK:STDOUT: !189 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.45e1f8de18643ddf:ImplicitAs.0bc6489996802dd4.Core.40372ba0ea03ef47", scope: null, file: !190, line: 63, type: !191, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !193) // CHECK:STDOUT: !190 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") // CHECK:STDOUT: !191 = !DISubroutineType(types: !192) // CHECK:STDOUT: !192 = !{!7, !7} @@ -557,7 +557,7 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !194 = !DILocalVariable(arg: 1, scope: !189, type: !7) // CHECK:STDOUT: !195 = !DILocation(line: 65, column: 17, scope: !189) // CHECK:STDOUT: !196 = !DILocation(line: 65, column: 5, scope: !189) -// CHECK:STDOUT: !197 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.c70f21296ce3b72c:OptionalStorage.Core.66877768e8b2b97c", scope: null, file: !86, line: 131, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !198) +// CHECK:STDOUT: !197 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.74becf39533834ee:OptionalStorage.Core.9e376a14fbf8fb3d", scope: null, file: !86, line: 131, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !198) // CHECK:STDOUT: !198 = !{!199} // CHECK:STDOUT: !199 = !DILocalVariable(arg: 1, scope: !197, type: !7) // CHECK:STDOUT: !200 = !DILocation(line: 137, column: 5, scope: !197) @@ -568,7 +568,7 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !205 = !{!206} // CHECK:STDOUT: !206 = !DILocalVariable(arg: 1, scope: !204, type: !7) // CHECK:STDOUT: !207 = !DILocation(line: 58, column: 36, scope: !204) -// CHECK:STDOUT: !208 = distinct !DISubprogram(name: "Op", linkageName: "_COp.99377c0e95f681c6:Copy.Core.4bee6dcdea6ba756", scope: null, file: !209, line: 19, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !210) +// CHECK:STDOUT: !208 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a7c16f707f533a23:Copy.Core.5bd8d5767580997a", scope: null, file: !209, line: 19, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !210) // CHECK:STDOUT: !209 = !DIFile(filename: "{{.*}}/prelude/copy.carbon", directory: "") // CHECK:STDOUT: !210 = !{!211} // CHECK:STDOUT: !211 = !DILocalVariable(arg: 1, scope: !208, type: !7) @@ -579,7 +579,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.d1d1365d61e0d059:core.Destroy.Core"(ptr %self) #0 !dbg !4 { +// CHECK:STDOUT: define weak_odr void @"_COp.e8cfefb1bcff6750:core.Destroy.Core"(ptr %self) #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !10 // CHECK:STDOUT: } @@ -587,33 +587,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 !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.Optional.3a7c842b5a6bca51.Core:Copy.Core.b21360622e65ae5d"(ptr %return, ptr %c), !dbg !16 +// CHECK:STDOUT: call void @"_COp.Optional.24b7347a93330e68.Core:Copy.Core.da424a1efa3a0e0f"(ptr %return, ptr %c), !dbg !16 // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.Optional.3a7c842b5a6bca51.Core:Copy.Core.b21360622e65ae5d"(ptr sret({ {}, i1 }) %return, ptr %self) #0 !dbg !18 { -// CHECK:STDOUT: call void @"_CCopy.2d6936f0ed82c0eb:OptionalStorage.Core.000de1c4710e9987"(ptr %return, ptr %self), !dbg !22 +// CHECK:STDOUT: define linkonce_odr void @"_COp.Optional.24b7347a93330e68.Core:Copy.Core.da424a1efa3a0e0f"(ptr sret({ {}, i1 }) %return, ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: call void @"_CCopy.5d6f3f3a4b44a8f1:OptionalStorage.Core.49fa0e4cc21a3ef6"(ptr %return, ptr %self), !dbg !22 // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CCopy.2d6936f0ed82c0eb:OptionalStorage.Core.000de1c4710e9987"(ptr sret({ {}, i1 }) %return, ptr %value) #0 !dbg !24 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.2d6936f0ed82c0eb:OptionalStorage.Core.000de1c4710e9987"(ptr %value), !dbg !27 +// CHECK:STDOUT: define linkonce_odr void @"_CCopy.5d6f3f3a4b44a8f1:OptionalStorage.Core.49fa0e4cc21a3ef6"(ptr sret({ {}, i1 }) %return, ptr %value) #0 !dbg !24 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.49fa0e4cc21a3ef6"(ptr %value), !dbg !27 // CHECK:STDOUT: br i1 %1, label %2, label %3, !dbg !28 // CHECK:STDOUT: // CHECK:STDOUT: 2: ; preds = %0 // CHECK:STDOUT: %value1 = getelementptr inbounds nuw { {}, i1 }, ptr %value, i32 0, i32 0, !dbg !29 -// CHECK:STDOUT: call void @"_CSome.2d6936f0ed82c0eb:OptionalStorage.Core.000de1c4710e9987"(ptr %return, ptr %value1), !dbg !30 +// CHECK:STDOUT: call void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.49fa0e4cc21a3ef6"(ptr %return, ptr %value1), !dbg !30 // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: // CHECK:STDOUT: 3: ; preds = %0 -// CHECK:STDOUT: call void @"_CNone.2d6936f0ed82c0eb:OptionalStorage.Core.000de1c4710e9987"(ptr %return), !dbg !32 +// CHECK:STDOUT: call void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.49fa0e4cc21a3ef6"(ptr %return), !dbg !32 // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.2d6936f0ed82c0eb:OptionalStorage.Core.000de1c4710e9987"(ptr %value) #0 !dbg !34 { +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.49fa0e4cc21a3ef6"(ptr %value) #0 !dbg !34 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw { {}, i1 }, ptr %value, i32 0, i32 1, !dbg !37 // CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !37 // CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !37 @@ -621,7 +621,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.2d6936f0ed82c0eb:OptionalStorage.Core.000de1c4710e9987"(ptr sret({ {}, i1 }) %return, ptr %self) #0 !dbg !39 { +// CHECK:STDOUT: define linkonce_odr void @"_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.49fa0e4cc21a3ef6"(ptr sret({ {}, i1 }) %return, ptr %self) #0 !dbg !39 { // CHECK:STDOUT: %value = getelementptr inbounds nuw { {}, i1 }, ptr %return, i32 0, i32 0, !dbg !42 // CHECK:STDOUT: call void @"_COp.Copyable.Main:Copy.Core"(ptr %value, ptr %self), !dbg !43 // CHECK:STDOUT: %has_value = getelementptr inbounds nuw { {}, i1 }, ptr %return, i32 0, i32 1, !dbg !44 @@ -630,7 +630,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.2d6936f0ed82c0eb:OptionalStorage.Core.000de1c4710e9987"(ptr sret({ {}, i1 }) %return) #0 !dbg !46 { +// CHECK:STDOUT: define linkonce_odr void @"_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.49fa0e4cc21a3ef6"(ptr sret({ {}, i1 }) %return) #0 !dbg !46 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw { {}, i1 }, ptr %return, i32 0, i32 1, !dbg !49 // CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !49 // CHECK:STDOUT: ret void, !dbg !50 @@ -645,7 +645,7 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "copy.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d1d1365d61e0d059:core.Destroy.Core", scope: null, file: !3, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e8cfefb1bcff6750:core.Destroy.Core", scope: null, file: !3, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !8) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{null, !7} // CHECK:STDOUT: !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -659,13 +659,13 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !11, type: !7) // CHECK:STDOUT: !16 = !DILocation(line: 11, column: 10, scope: !11) // CHECK:STDOUT: !17 = !DILocation(line: 11, column: 3, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Optional.3a7c842b5a6bca51.Core:Copy.Core.b21360622e65ae5d", scope: null, file: !19, line: 50, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Optional.24b7347a93330e68.Core:Copy.Core.da424a1efa3a0e0f", scope: null, file: !19, line: 50, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) // CHECK:STDOUT: !19 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !20 = !{!21} // CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !18, type: !7) // CHECK:STDOUT: !22 = !DILocation(line: 51, column: 12, scope: !18) // CHECK:STDOUT: !23 = !DILocation(line: 51, column: 5, scope: !18) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Copy", linkageName: "_CCopy.2d6936f0ed82c0eb:OptionalStorage.Core.000de1c4710e9987", scope: null, file: !19, line: 147, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Copy", linkageName: "_CCopy.5d6f3f3a4b44a8f1:OptionalStorage.Core.49fa0e4cc21a3ef6", scope: null, file: !19, line: 147, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) // CHECK:STDOUT: !25 = !{!26} // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !24, type: !7) // CHECK:STDOUT: !27 = !DILocation(line: 148, column: 9, scope: !24) @@ -675,19 +675,19 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !31 = !DILocation(line: 149, column: 7, scope: !24) // CHECK:STDOUT: !32 = !DILocation(line: 151, column: 14, scope: !24) // CHECK:STDOUT: !33 = !DILocation(line: 151, column: 7, scope: !24) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.2d6936f0ed82c0eb:OptionalStorage.Core.000de1c4710e9987", scope: null, file: !19, line: 141, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !35) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.5d6f3f3a4b44a8f1:OptionalStorage.Core.49fa0e4cc21a3ef6", scope: null, file: !19, line: 141, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !35) // CHECK:STDOUT: !35 = !{!36} // CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !7) // CHECK:STDOUT: !37 = !DILocation(line: 142, column: 12, scope: !34) // CHECK:STDOUT: !38 = !DILocation(line: 142, column: 5, scope: !34) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.2d6936f0ed82c0eb:OptionalStorage.Core.000de1c4710e9987", scope: null, file: !19, line: 131, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !40) +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.5d6f3f3a4b44a8f1:OptionalStorage.Core.49fa0e4cc21a3ef6", scope: null, file: !19, line: 131, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !40) // CHECK:STDOUT: !40 = !{!41} // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !39, type: !7) // CHECK:STDOUT: !42 = !DILocation(line: 137, column: 5, scope: !39) // CHECK:STDOUT: !43 = !DILocation(line: 137, column: 28, scope: !39) // CHECK:STDOUT: !44 = !DILocation(line: 138, column: 5, scope: !39) // CHECK:STDOUT: !45 = !DILocation(line: 139, column: 5, scope: !39) -// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "None", linkageName: "_CNone.2d6936f0ed82c0eb:OptionalStorage.Core.000de1c4710e9987", scope: null, file: !19, line: 125, type: !47, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !46 = distinct !DISubprogram(name: "None", linkageName: "_CNone.5d6f3f3a4b44a8f1:OptionalStorage.Core.49fa0e4cc21a3ef6", scope: null, file: !19, line: 125, type: !47, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !47 = !DISubroutineType(types: !48) // CHECK:STDOUT: !48 = !{!7} // CHECK:STDOUT: !49 = !DILocation(line: 128, column: 5, scope: !46) @@ -698,12 +698,12 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define ptr @_CF.Main(ptr %c) #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %Optional.as.Copy.impl.Op.call = call ptr @"_COp.Optional.3a7c842b5a6bca51.Core:Copy.Core.12f52bd835165b7d"(ptr %c), !dbg !10 +// CHECK:STDOUT: %Optional.as.Copy.impl.Op.call = call ptr @"_COp.Optional.24b7347a93330e68.Core:Copy.Core.4791ff83c858ed65"(ptr %c), !dbg !10 // CHECK:STDOUT: ret ptr %Optional.as.Copy.impl.Op.call, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_COp.Optional.3a7c842b5a6bca51.Core:Copy.Core.12f52bd835165b7d"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define linkonce_odr ptr @"_COp.Optional.24b7347a93330e68.Core:Copy.Core.4791ff83c858ed65"(ptr %self) #0 !dbg !12 { // CHECK:STDOUT: ret ptr %self, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -724,7 +724,7 @@ fn F(c: Core.Optional(C*)) -> Core.Optional(C*) { // CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7) // CHECK:STDOUT: !10 = !DILocation(line: 6, column: 10, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Optional.3a7c842b5a6bca51.Core:Copy.Core.12f52bd835165b7d", scope: null, file: !13, line: 50, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Optional.24b7347a93330e68.Core:Copy.Core.4791ff83c858ed65", scope: null, file: !13, line: 50, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !13 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !14 = !{!15} // CHECK:STDOUT: !15 = !DILocalVariable(arg: 1, scope: !12, type: !7) diff --git a/toolchain/lower/testdata/primitives/string.carbon b/toolchain/lower/testdata/primitives/string.carbon index cd0448cc55af..402149222ba8 100644 --- a/toolchain/lower/testdata/primitives/string.carbon +++ b/toolchain/lower/testdata/primitives/string.carbon @@ -40,29 +40,29 @@ fn Copy(s: str) -> str { // CHECK:STDOUT: // CHECK:STDOUT: @0 = private unnamed_addr constant [6 x i8] c"Hello\00", align 1 // CHECK:STDOUT: @1 = private unnamed_addr constant [6 x i8] c"World\00", align 1 -// CHECK:STDOUT: @String.val.c68.String.val = internal constant { ptr, i64 } { ptr @0, i64 5 } -// CHECK:STDOUT: @String.val.7d9.String.val = internal constant { ptr, i64 } { ptr @1, i64 5 } +// CHECK:STDOUT: @String.val.75d.String.val = internal constant { ptr, i64 } { ptr @0, i64 5 } +// CHECK:STDOUT: @String.val.2f1.String.val = internal constant { ptr, i64 } { ptr @1, i64 5 } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CF.Main(ptr) // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CG.Main() #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main(ptr @String.val.c68.String.val), !dbg !7 +// CHECK:STDOUT: call void @_CF.Main(ptr @String.val.75d.String.val), !dbg !7 // CHECK:STDOUT: ret void, !dbg !8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CH.Main() #0 !dbg !9 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main(ptr @String.val.c68.String.val), !dbg !10 +// CHECK:STDOUT: call void @_CF.Main(ptr @String.val.75d.String.val), !dbg !10 // CHECK:STDOUT: ret void, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CI.Main() #0 !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main(ptr @String.val.7d9.String.val), !dbg !13 +// CHECK:STDOUT: call void @_CF.Main(ptr @String.val.2f1.String.val), !dbg !13 // CHECK:STDOUT: ret void, !dbg !14 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/return/return_var_byval.carbon b/toolchain/lower/testdata/return/return_var_byval.carbon index 85c91ccd8f81..c40c6d38bb21 100644 --- a/toolchain/lower/testdata/return/return_var_byval.carbon +++ b/toolchain/lower/testdata/return/return_var_byval.carbon @@ -25,12 +25,12 @@ fn Main() -> i32 { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 // CHECK:STDOUT: store i32 0, ptr %x.var, align 4, !dbg !8 // CHECK:STDOUT: %.loc14_17 = load i32, ptr %x.var, align 4, !dbg !9 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %x.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %x.var), !dbg !8 // CHECK:STDOUT: ret i32 %.loc14_17, !dbg !10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } @@ -55,7 +55,7 @@ fn Main() -> i32 { // CHECK:STDOUT: !8 = !DILocation(line: 14, column: 12, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 14, column: 16, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 14, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 14, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !12 = !DISubroutineType(types: !13) // CHECK:STDOUT: !13 = !{null, !7} // CHECK:STDOUT: !14 = !{!15} diff --git a/toolchain/lower/testdata/return/var.carbon b/toolchain/lower/testdata/return/var.carbon index eff751bc4c3a..b348330ccede 100644 --- a/toolchain/lower/testdata/return/var.carbon +++ b/toolchain/lower/testdata/return/var.carbon @@ -25,12 +25,12 @@ fn Main() -> i32 { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 // CHECK:STDOUT: store i32 0, ptr %x.var, align 4, !dbg !8 // CHECK:STDOUT: %.loc15 = load i32, ptr %x.var, align 4, !dbg !9 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %x.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %x.var), !dbg !8 // CHECK:STDOUT: ret i32 %.loc15, !dbg !10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } @@ -55,7 +55,7 @@ fn Main() -> i32 { // CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 15, column: 10, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 15, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 14, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 14, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !12 = !DISubroutineType(types: !13) // CHECK:STDOUT: !13 = !{null, !7} // CHECK:STDOUT: !14 = !{!15} diff --git a/toolchain/lower/testdata/struct/layout.carbon b/toolchain/lower/testdata/struct/layout.carbon index 93a474c1f016..f3ea68d719b7 100644 --- a/toolchain/lower/testdata/struct/layout.carbon +++ b/toolchain/lower/testdata/struct/layout.carbon @@ -89,18 +89,18 @@ fn F() { // CHECK:STDOUT: call void @_CG.Main(ptr %.loc9.y), !dbg !11 // CHECK:STDOUT: %.loc10.z = getelementptr inbounds nuw { i32, i32, i32 }, ptr %no_padding.var, i32 0, i32 2, !dbg !12 // CHECK:STDOUT: call void @_CG.Main(ptr %.loc10.z), !dbg !13 -// CHECK:STDOUT: call void @"_COp.b1cca9cff4beb8c6:core.Destroy.Core"(ptr %no_padding.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.95808ad559cb17b5:core.Destroy.Core"(ptr %no_padding.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !14 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !15 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !15 { // 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.b1cca9cff4beb8c6:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.95808ad559cb17b5:core.Destroy.Core"(ptr %self) #0 !dbg !22 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } @@ -129,14 +129,14 @@ fn F() { // CHECK:STDOUT: !12 = !DILocation(line: 10, column: 6, scope: !4) // CHECK:STDOUT: !13 = !DILocation(line: 10, column: 3, scope: !4) // CHECK:STDOUT: !14 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 7, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) +// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 7, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) // CHECK:STDOUT: !16 = !DISubroutineType(types: !17) // CHECK:STDOUT: !17 = !{null, !18} // CHECK:STDOUT: !18 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !19 = !{!20} // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !18) // CHECK:STDOUT: !21 = !DILocation(line: 7, column: 3, scope: !15) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b1cca9cff4beb8c6:core.Destroy.Core", scope: null, file: !3, line: 7, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.95808ad559cb17b5:core.Destroy.Core", scope: null, file: !3, line: 7, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) // CHECK:STDOUT: !23 = !DISubroutineType(types: !24) // CHECK:STDOUT: !24 = !{null, !25} // CHECK:STDOUT: !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -155,18 +155,18 @@ fn F() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %avoid_tail_padding.var), !dbg !7 // CHECK:STDOUT: %.loc8.y = getelementptr inbounds nuw <{ ptr, i32 }>, ptr %avoid_tail_padding.var, i32 0, i32 1, !dbg !8 // CHECK:STDOUT: call void @_CG.Main(ptr %.loc8.y), !dbg !9 -// CHECK:STDOUT: call void @"_COp.242c311b2dbb618e:core.Destroy.Core"(ptr %avoid_tail_padding.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.6e3a24383a9179dd:core.Destroy.Core"(ptr %avoid_tail_padding.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.242c311b2dbb618e:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.6e3a24383a9179dd:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } @@ -191,14 +191,14 @@ fn F() { // CHECK:STDOUT: !8 = !DILocation(line: 8, column: 6, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 8, column: 3, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 7, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) // CHECK:STDOUT: !12 = !DISubroutineType(types: !13) // CHECK:STDOUT: !13 = !{null, !14} // CHECK:STDOUT: !14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !15 = !{!16} // CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) // CHECK:STDOUT: !17 = !DILocation(line: 7, column: 3, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.242c311b2dbb618e:core.Destroy.Core", scope: null, file: !3, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6e3a24383a9179dd:core.Destroy.Core", scope: null, file: !3, line: 7, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) // CHECK:STDOUT: !19 = !DISubroutineType(types: !20) // CHECK:STDOUT: !20 = !{null, !21} // CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -220,24 +220,24 @@ fn F() { // CHECK:STDOUT: call void @_CG.Main(ptr %.loc9_24.y), !dbg !9 // CHECK:STDOUT: %.loc10.b = getelementptr inbounds nuw { <{ ptr, i32 }>, i32 }, ptr %use_tail_padding.var, i32 0, i32 1, !dbg !10 // CHECK:STDOUT: call void @_CG.Main(ptr %.loc10.b), !dbg !11 -// CHECK:STDOUT: call void @"_COp.7bae0104f84eacb1:core.Destroy.Core"(ptr %use_tail_padding.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.a68f8a656015afed:core.Destroy.Core"(ptr %use_tail_padding.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !13 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.242c311b2dbb618e:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.6e3a24383a9179dd:core.Destroy.Core"(ptr %self) #0 !dbg !20 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.7bae0104f84eacb1:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.a68f8a656015afed:core.Destroy.Core"(ptr %self) #0 !dbg !27 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } @@ -264,21 +264,21 @@ fn F() { // CHECK:STDOUT: !10 = !DILocation(line: 10, column: 6, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 10, column: 3, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 8, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 8, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) // CHECK:STDOUT: !14 = !DISubroutineType(types: !15) // CHECK:STDOUT: !15 = !{null, !16} // CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !17 = !{!18} // CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !13, type: !16) // CHECK:STDOUT: !19 = !DILocation(line: 8, column: 3, scope: !13) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.242c311b2dbb618e:core.Destroy.Core", scope: null, file: !3, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6e3a24383a9179dd:core.Destroy.Core", scope: null, file: !3, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) // CHECK:STDOUT: !21 = !DISubroutineType(types: !22) // CHECK:STDOUT: !22 = !{null, !23} // CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !24 = !{!25} // CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) // CHECK:STDOUT: !26 = !DILocation(line: 8, column: 3, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.7bae0104f84eacb1:core.Destroy.Core", scope: null, file: !3, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a68f8a656015afed:core.Destroy.Core", scope: null, file: !3, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) // CHECK:STDOUT: !28 = !{!29} // CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !23) // CHECK:STDOUT: !30 = !DILocation(line: 8, column: 3, scope: !27) @@ -297,24 +297,24 @@ fn F() { // CHECK:STDOUT: call void @_CG.Main(ptr %.loc9_24.x), !dbg !9 // CHECK:STDOUT: %.loc10.b = getelementptr inbounds nuw { <{ ptr, i32 }>, ptr }, ptr %implicit_padding.var, i32 0, i32 1, !dbg !10 // CHECK:STDOUT: call void @_CG.Main(ptr %.loc10.b), !dbg !11 -// CHECK:STDOUT: call void @"_COp.c5038610750918ae:core.Destroy.Core"(ptr %implicit_padding.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.c54455699b83e3bd:core.Destroy.Core"(ptr %implicit_padding.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !13 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.242c311b2dbb618e:core.Destroy.Core"(ptr %self) #0 !dbg !20 { +// CHECK:STDOUT: define weak_odr void @"_COp.6e3a24383a9179dd:core.Destroy.Core"(ptr %self) #0 !dbg !20 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.c5038610750918ae:core.Destroy.Core"(ptr %self) #0 !dbg !27 { +// CHECK:STDOUT: define weak_odr void @"_COp.c54455699b83e3bd:core.Destroy.Core"(ptr %self) #0 !dbg !27 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !30 // CHECK:STDOUT: } @@ -341,21 +341,21 @@ fn F() { // CHECK:STDOUT: !10 = !DILocation(line: 10, column: 6, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 10, column: 3, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 8, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 8, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !17) // CHECK:STDOUT: !14 = !DISubroutineType(types: !15) // CHECK:STDOUT: !15 = !{null, !16} // CHECK:STDOUT: !16 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !17 = !{!18} // CHECK:STDOUT: !18 = !DILocalVariable(arg: 1, scope: !13, type: !16) // CHECK:STDOUT: !19 = !DILocation(line: 8, column: 3, scope: !13) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.242c311b2dbb618e:core.Destroy.Core", scope: null, file: !3, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6e3a24383a9179dd:core.Destroy.Core", scope: null, file: !3, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) // CHECK:STDOUT: !21 = !DISubroutineType(types: !22) // CHECK:STDOUT: !22 = !{null, !23} // CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !24 = !{!25} // CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !20, type: !23) // CHECK:STDOUT: !26 = !DILocation(line: 8, column: 3, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c5038610750918ae:core.Destroy.Core", scope: null, file: !3, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "Op", linkageName: "_COp.c54455699b83e3bd:core.Destroy.Core", scope: null, file: !3, line: 8, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) // CHECK:STDOUT: !28 = !{!29} // CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !23) // CHECK:STDOUT: !30 = !DILocation(line: 8, column: 3, scope: !27) @@ -371,24 +371,24 @@ fn F() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %insert_padding.var), !dbg !7 // CHECK:STDOUT: %.loc10.b = getelementptr inbounds nuw <{ <{ { i32, i32, i32 }, [4 x i8] }>, ptr, i32 }>, ptr %insert_padding.var, i32 0, i32 1, !dbg !8 // CHECK:STDOUT: call void @_CG.Main(ptr %.loc10.b), !dbg !9 -// CHECK:STDOUT: call void @"_COp.0c483178ee6d0035:core.Destroy.Core"(ptr %insert_padding.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.383dc994920f31dc:core.Destroy.Core"(ptr %insert_padding.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.b1cca9cff4beb8c6:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.95808ad559cb17b5:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // 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.0c483178ee6d0035:core.Destroy.Core"(ptr %self) #0 !dbg !25 { +// CHECK:STDOUT: define weak_odr void @"_COp.383dc994920f31dc:core.Destroy.Core"(ptr %self) #0 !dbg !25 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } @@ -413,21 +413,21 @@ fn F() { // CHECK:STDOUT: !8 = !DILocation(line: 10, column: 6, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 10, column: 3, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 9, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 9, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) // CHECK:STDOUT: !12 = !DISubroutineType(types: !13) // CHECK:STDOUT: !13 = !{null, !14} // CHECK:STDOUT: !14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !15 = !{!16} // CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) // CHECK:STDOUT: !17 = !DILocation(line: 9, column: 3, scope: !11) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b1cca9cff4beb8c6:core.Destroy.Core", scope: null, file: !3, line: 9, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.95808ad559cb17b5:core.Destroy.Core", scope: null, file: !3, line: 9, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) // CHECK:STDOUT: !19 = !DISubroutineType(types: !20) // CHECK:STDOUT: !20 = !{null, !21} // CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !22 = !{!23} // CHECK:STDOUT: !23 = !DILocalVariable(arg: 1, scope: !18, type: !21) // CHECK:STDOUT: !24 = !DILocation(line: 9, column: 3, scope: !18) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0c483178ee6d0035:core.Destroy.Core", scope: null, file: !3, line: 9, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.383dc994920f31dc:core.Destroy.Core", scope: null, file: !3, line: 9, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !25, type: !21) // CHECK:STDOUT: !28 = !DILocation(line: 9, column: 3, scope: !25) diff --git a/toolchain/lower/testdata/struct/member_access.carbon b/toolchain/lower/testdata/struct/member_access.carbon index 9baeac86f9d5..809c2a232cda 100644 --- a/toolchain/lower/testdata/struct/member_access.carbon +++ b/toolchain/lower/testdata/struct/member_access.carbon @@ -20,7 +20,7 @@ fn Run() -> i32 { // CHECK:STDOUT: ; ModuleID = 'member_access.carbon' // CHECK:STDOUT: source_filename = "member_access.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @struct.4b2.loc14_3 = internal constant <{ double, i32 }> <{ double 0.000000e+00, i32 1 }> +// CHECK:STDOUT: @struct.77f.loc14_3 = internal constant <{ double, i32 }> <{ double 0.000000e+00, i32 1 }> // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @main() #0 !dbg !4 { @@ -31,7 +31,7 @@ fn Run() -> i32 { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 // CHECK:STDOUT: %.loc14_48.3.a = getelementptr inbounds nuw <{ double, i32 }>, ptr %x.var, i32 0, i32 0, !dbg !11 // CHECK:STDOUT: %.loc14_48.6.b = getelementptr inbounds nuw <{ double, i32 }>, ptr %x.var, i32 0, i32 1, !dbg !11 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %x.var, ptr align 8 @struct.4b2.loc14_3, i64 12, i1 false), !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %x.var, ptr align 8 @struct.77f.loc14_3, i64 12, i1 false), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %y.var), !dbg !9 // CHECK:STDOUT: %.loc15_17.1.b = getelementptr inbounds nuw <{ double, i32 }>, ptr %x.var, i32 0, i32 1, !dbg !12 // CHECK:STDOUT: %.loc15_17.2 = load i32, ptr %.loc15_17.1.b, align 4, !dbg !12 @@ -39,26 +39,26 @@ fn Run() -> i32 { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !10 // CHECK:STDOUT: %.loc16 = load i32, ptr %y.var, align 4, !dbg !13 // CHECK:STDOUT: store i32 %.loc16, ptr %_.var, align 4, !dbg !10 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %_.var), !dbg !10 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %y.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.bb728f3861d6c330:core.Destroy.Core"(ptr %x.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %_.var), !dbg !10 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %y.var), !dbg !9 +// CHECK:STDOUT: call void @"_COp.50b1ebab712608de:core.Destroy.Core"(ptr %x.var), !dbg !8 // CHECK:STDOUT: ret i32 0, !dbg !14 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !15 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !15 { // 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.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %self) #0 !dbg !21 { // 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.bb728f3861d6c330:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.50b1ebab712608de:core.Destroy.Core"(ptr %self) #0 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } @@ -70,7 +70,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.1fa36cd3e044ac37:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.5e27612b9dd31a14:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -94,20 +94,20 @@ fn Run() -> i32 { // CHECK:STDOUT: !12 = !DILocation(line: 15, column: 16, scope: !4) // CHECK:STDOUT: !13 = !DILocation(line: 16, column: 16, scope: !4) // CHECK:STDOUT: !14 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 16, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 16, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) // CHECK:STDOUT: !16 = !DISubroutineType(types: !17) // CHECK:STDOUT: !17 = !{null, !7} // CHECK:STDOUT: !18 = !{!19} // CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !15, type: !7) // CHECK:STDOUT: !20 = !DILocation(line: 16, column: 3, scope: !15) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e4fc30ecea9aa7e:core.Destroy.Core", scope: null, file: !3, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.30d8007fdcc57f83:core.Destroy.Core", scope: null, file: !3, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) // CHECK:STDOUT: !22 = !DISubroutineType(types: !23) // CHECK:STDOUT: !23 = !{null, !24} // CHECK:STDOUT: !24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !25 = !{!26} // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !21, type: !24) // CHECK:STDOUT: !27 = !DILocation(line: 14, column: 3, scope: !21) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bb728f3861d6c330:core.Destroy.Core", scope: null, file: !3, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.50b1ebab712608de:core.Destroy.Core", scope: null, file: !3, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) // CHECK:STDOUT: !29 = !{!30} // CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !24) // CHECK:STDOUT: !31 = !DILocation(line: 14, column: 3, scope: !28) diff --git a/toolchain/lower/testdata/struct/nested_struct_in_place.carbon b/toolchain/lower/testdata/struct/nested_struct_in_place.carbon index 034e3f9a6cef..27c56dc9fbc9 100644 --- a/toolchain/lower/testdata/struct/nested_struct_in_place.carbon +++ b/toolchain/lower/testdata/struct/nested_struct_in_place.carbon @@ -30,24 +30,24 @@ fn G() { // CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_74.1.a), !dbg !9 // CHECK:STDOUT: %.loc16_74.2.b = getelementptr inbounds nuw { { i32, i32, i32 }, { i32, i32, i32 } }, ptr %_.var, i32 0, i32 1, !dbg !8 // CHECK:STDOUT: call void @_CF.Main(ptr %.loc16_74.2.b), !dbg !10 -// CHECK:STDOUT: call void @"_COp.baefb8026f39c96f:core.Destroy.Core"(ptr %_.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.330320b9ccdd4880:core.Destroy.Core"(ptr %_.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !12 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d52e974a95b4c7a0:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // 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.baefb8026f39c96f:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.330320b9ccdd4880:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } @@ -73,21 +73,21 @@ fn G() { // CHECK:STDOUT: !9 = !DILocation(line: 16, column: 61, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 16, column: 71, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) // CHECK:STDOUT: !13 = !DISubroutineType(types: !14) // CHECK:STDOUT: !14 = !{null, !15} // CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !16 = !{!17} // CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) // CHECK:STDOUT: !18 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d52e974a95b4c7a0:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5784487ae90e2771:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !20 = !DISubroutineType(types: !21) // CHECK:STDOUT: !21 = !{null, !22} // CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) // CHECK:STDOUT: !25 = !DILocation(line: 16, column: 3, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.baefb8026f39c96f:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.330320b9ccdd4880:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) // CHECK:STDOUT: !27 = !{!28} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !22) // CHECK:STDOUT: !29 = !DILocation(line: 16, column: 3, scope: !26) diff --git a/toolchain/lower/testdata/struct/one_entry.carbon b/toolchain/lower/testdata/struct/one_entry.carbon index 4dd525f3521f..dcfb1a20872d 100644 --- a/toolchain/lower/testdata/struct/one_entry.carbon +++ b/toolchain/lower/testdata/struct/one_entry.carbon @@ -31,19 +31,19 @@ fn Run() -> i32 { // CHECK:STDOUT: %.loc15_22.2 = load i32, ptr %.loc15_22.1.a, align 4, !dbg !10 // CHECK:STDOUT: %.loc15_22.3.struct.init = insertvalue { i32 } poison, i32 %.loc15_22.2, 0, !dbg !10 // CHECK:STDOUT: store { i32 } %.loc15_22.3.struct.init, ptr %_.var, align 4, !dbg !9 -// CHECK:STDOUT: call void @"_COp.901120de26305892:core.Destroy.Core"(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.901120de26305892:core.Destroy.Core"(ptr %x.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.9ba7bda1866a9bea:core.Destroy.Core"(ptr %_.var), !dbg !9 +// CHECK:STDOUT: call void @"_COp.9ba7bda1866a9bea:core.Destroy.Core"(ptr %x.var), !dbg !8 // CHECK:STDOUT: ret i32 0, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !12 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.901120de26305892:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.9ba7bda1866a9bea:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } @@ -52,7 +52,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.901120de26305892:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.9ba7bda1866a9bea:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -73,13 +73,13 @@ fn Run() -> i32 { // CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 15, column: 22, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) // CHECK:STDOUT: !13 = !DISubroutineType(types: !14) // CHECK:STDOUT: !14 = !{null, !7} // CHECK:STDOUT: !15 = !{!16} // CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !12, type: !7) // CHECK:STDOUT: !17 = !DILocation(line: 15, column: 3, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.901120de26305892:core.Destroy.Core", scope: null, file: !3, line: 15, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9ba7bda1866a9bea:core.Destroy.Core", scope: null, file: !3, line: 15, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) // CHECK:STDOUT: !19 = !DISubroutineType(types: !20) // CHECK:STDOUT: !20 = !{null, !21} // CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) diff --git a/toolchain/lower/testdata/struct/two_entries.carbon b/toolchain/lower/testdata/struct/two_entries.carbon index 57419ade0e94..30c45c530e41 100644 --- a/toolchain/lower/testdata/struct/two_entries.carbon +++ b/toolchain/lower/testdata/struct/two_entries.carbon @@ -19,7 +19,7 @@ fn Run() -> i32 { // CHECK:STDOUT: ; ModuleID = 'two_entries.carbon' // CHECK:STDOUT: source_filename = "two_entries.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @struct.8fc.loc14_3 = internal constant { i32, i32 } { i32 1, i32 2 } +// CHECK:STDOUT: @struct.631.loc14_3 = internal constant { i32, i32 } { i32 1, i32 2 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @main() #0 !dbg !4 { @@ -29,7 +29,7 @@ fn Run() -> i32 { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 // CHECK:STDOUT: %.loc14_46.3.a = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 0, !dbg !10 // CHECK:STDOUT: %.loc14_46.6.b = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %x.var, ptr align 4 @struct.8fc.loc14_3, i64 8, i1 false), !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %x.var, ptr align 4 @struct.631.loc14_3, i64 8, i1 false), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !9 // CHECK:STDOUT: %.loc15_31.1.a = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 0, !dbg !11 // CHECK:STDOUT: %.loc15_31.2 = load i32, ptr %.loc15_31.1.a, align 4, !dbg !11 @@ -39,19 +39,19 @@ fn Run() -> i32 { // CHECK:STDOUT: %.loc15_31.6 = load i32, ptr %.loc15_31.5.b, align 4, !dbg !11 // CHECK:STDOUT: %.loc15_31.7.b = getelementptr inbounds nuw { i32, i32 }, ptr %_.var, i32 0, i32 1, !dbg !11 // CHECK:STDOUT: store i32 %.loc15_31.6, ptr %.loc15_31.7.b, align 4, !dbg !11 -// CHECK:STDOUT: call void @"_COp.15b8ed913d10fa21:core.Destroy.Core"(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.15b8ed913d10fa21:core.Destroy.Core"(ptr %x.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.f30036b66b652106:core.Destroy.Core"(ptr %_.var), !dbg !9 +// CHECK:STDOUT: call void @"_COp.f30036b66b652106:core.Destroy.Core"(ptr %x.var), !dbg !8 // CHECK:STDOUT: ret i32 0, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !13 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.15b8ed913d10fa21:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.f30036b66b652106:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } @@ -63,7 +63,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.15b8ed913d10fa21:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.f30036b66b652106:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -85,13 +85,13 @@ fn Run() -> i32 { // CHECK:STDOUT: !10 = !DILocation(line: 14, column: 31, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 15, column: 31, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 15, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 15, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) // CHECK:STDOUT: !14 = !DISubroutineType(types: !15) // CHECK:STDOUT: !15 = !{null, !7} // CHECK:STDOUT: !16 = !{!17} // CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !13, type: !7) // CHECK:STDOUT: !18 = !DILocation(line: 15, column: 3, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.15b8ed913d10fa21:core.Destroy.Core", scope: null, file: !3, line: 15, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f30036b66b652106:core.Destroy.Core", scope: null, file: !3, line: 15, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !20 = !DISubroutineType(types: !21) // CHECK:STDOUT: !21 = !{null, !22} // CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) diff --git a/toolchain/lower/testdata/tuple/access/element_access.carbon b/toolchain/lower/testdata/tuple/access/element_access.carbon index 7b4fcb7c2d4d..b6f99f6f18e2 100644 --- a/toolchain/lower/testdata/tuple/access/element_access.carbon +++ b/toolchain/lower/testdata/tuple/access/element_access.carbon @@ -20,7 +20,7 @@ fn Run() -> i32 { // CHECK:STDOUT: ; ModuleID = 'element_access.carbon' // CHECK:STDOUT: source_filename = "element_access.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @tuple.e7d.loc14_3 = internal constant { i32, i32, i32 } { i32 0, i32 1, i32 2 } +// CHECK:STDOUT: @tuple.32e.loc14_3 = internal constant { i32, i32, i32 } { i32 0, i32 1, i32 2 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @main() #0 !dbg !4 { @@ -32,7 +32,7 @@ fn Run() -> i32 { // CHECK:STDOUT: %tuple.elem0.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !11 // CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 1, !dbg !11 // CHECK:STDOUT: %tuple.elem2.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 2, !dbg !11 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a.var, ptr align 4 @tuple.e7d.loc14_3, i64 12, i1 false), !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a.var, ptr align 4 @tuple.32e.loc14_3, i64 12, i1 false), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc15), !dbg !9 // CHECK:STDOUT: %tuple.elem0.loc15.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !12 // CHECK:STDOUT: %.loc15 = load i32, ptr %tuple.elem0.loc15.tuple.elem, align 4, !dbg !12 @@ -41,20 +41,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 !13 // CHECK:STDOUT: %.loc16 = load i32, ptr %tuple.elem2.loc16.tuple.elem, align 4, !dbg !13 // CHECK:STDOUT: store i32 %.loc16, ptr %_.var.loc16, align 4, !dbg !10 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %_.var.loc16), !dbg !10 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %_.var.loc15), !dbg !9 -// CHECK:STDOUT: call void @"_COp.d52e974a95b4c7a0:core.Destroy.Core"(ptr %a.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %_.var.loc16), !dbg !10 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %_.var.loc15), !dbg !9 +// CHECK:STDOUT: call void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %a.var), !dbg !8 // CHECK:STDOUT: ret i32 0, !dbg !14 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !15 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !15 { // 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.d52e974a95b4c7a0:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %self) #0 !dbg !21 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } @@ -66,7 +66,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.1fa36cd3e044ac37:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.5e27612b9dd31a14:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 2, 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -90,13 +90,13 @@ fn Run() -> i32 { // CHECK:STDOUT: !12 = !DILocation(line: 15, column: 16, scope: !4) // CHECK:STDOUT: !13 = !DILocation(line: 16, column: 16, scope: !4) // CHECK:STDOUT: !14 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 16, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 16, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) // CHECK:STDOUT: !16 = !DISubroutineType(types: !17) // CHECK:STDOUT: !17 = !{null, !7} // CHECK:STDOUT: !18 = !{!19} // CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !15, type: !7) // CHECK:STDOUT: !20 = !DILocation(line: 16, column: 3, scope: !15) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d52e974a95b4c7a0:core.Destroy.Core", scope: null, file: !3, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5784487ae90e2771:core.Destroy.Core", scope: null, file: !3, line: 14, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) // CHECK:STDOUT: !22 = !DISubroutineType(types: !23) // CHECK:STDOUT: !23 = !{null, !24} // CHECK:STDOUT: !24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) diff --git a/toolchain/lower/testdata/tuple/access/return_value_access.carbon b/toolchain/lower/testdata/tuple/access/return_value_access.carbon index 8505eb8336aa..5ef31f8d03aa 100644 --- a/toolchain/lower/testdata/tuple/access/return_value_access.carbon +++ b/toolchain/lower/testdata/tuple/access/return_value_access.carbon @@ -19,14 +19,14 @@ fn Run() { // CHECK:STDOUT: ; ModuleID = 'return_value_access.carbon' // CHECK:STDOUT: source_filename = "return_value_access.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @tuple.d4e.loc13_39 = internal constant { i32, i32 } { i32 12, i32 24 } +// CHECK:STDOUT: @tuple.1cd.loc13_39 = internal constant { i32, i32 } { i32 12, i32 24 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF.Main(ptr sret({ i32, i32 }) %return) #0 !dbg !4 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !8 // CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @tuple.d4e.loc13_39, i64 8, i1 false), !dbg !9 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @tuple.1cd.loc13_39, i64 8, i1 false), !dbg !9 // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -41,19 +41,19 @@ fn Run() { // CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc16_18.1.temp, i32 0, i32 1, !dbg !15 // CHECK:STDOUT: %.loc16_19 = load i32, ptr %tuple.elem1.tuple.elem, align 4, !dbg !15 // CHECK:STDOUT: store i32 %.loc16_19, ptr %_.var, align 4, !dbg !14 -// CHECK:STDOUT: call void @"_COp.11d8dd9278293aa3:core.Destroy.Core"(ptr %.loc16_18.1.temp), !dbg !15 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %_.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %.loc16_18.1.temp), !dbg !15 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %_.var), !dbg !14 // CHECK:STDOUT: ret i32 0, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !17 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.11d8dd9278293aa3:core.Destroy.Core"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: define weak_odr void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %self) #0 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } @@ -90,13 +90,13 @@ fn Run() { // CHECK:STDOUT: !14 = !DILocation(line: 16, column: 3, scope: !10) // CHECK:STDOUT: !15 = !DILocation(line: 16, column: 16, scope: !10) // CHECK:STDOUT: !16 = !DILocation(line: 15, column: 1, scope: !10) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 16, type: !18, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 16, type: !18, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) // CHECK:STDOUT: !18 = !DISubroutineType(types: !19) // CHECK:STDOUT: !19 = !{null, !13} // CHECK:STDOUT: !20 = !{!21} // CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !17, type: !13) // CHECK:STDOUT: !22 = !DILocation(line: 16, column: 16, scope: !17) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.11d8dd9278293aa3:core.Destroy.Core", scope: null, file: !3, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eff30dc40f4a53d2:core.Destroy.Core", scope: null, file: !3, line: 16, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) // CHECK:STDOUT: !24 = !DISubroutineType(types: !25) // CHECK:STDOUT: !25 = !{null, !7} // CHECK:STDOUT: !26 = !{!27} diff --git a/toolchain/lower/testdata/tuple/nested_tuple_in_place.carbon b/toolchain/lower/testdata/tuple/nested_tuple_in_place.carbon index c2ce484df5bf..04356d3e191d 100644 --- a/toolchain/lower/testdata/tuple/nested_tuple_in_place.carbon +++ b/toolchain/lower/testdata/tuple/nested_tuple_in_place.carbon @@ -30,24 +30,24 @@ fn G() { // CHECK:STDOUT: call void @_CF.Main(ptr %tuple.elem0.tuple.elem), !dbg !9 // CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { { i32, i32, i32 }, { i32, i32, i32 } }, ptr %_.var, i32 0, i32 1, !dbg !8 // CHECK:STDOUT: call void @_CF.Main(ptr %tuple.elem1.tuple.elem), !dbg !10 -// CHECK:STDOUT: call void @"_COp.1e0ba6005fe1fd10:core.Destroy.Core"(ptr %_.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.de30152328a91377:core.Destroy.Core"(ptr %_.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !12 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d52e974a95b4c7a0:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // 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.1e0ba6005fe1fd10:core.Destroy.Core"(ptr %self) #0 !dbg !26 { +// CHECK:STDOUT: define weak_odr void @"_COp.de30152328a91377:core.Destroy.Core"(ptr %self) #0 !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } @@ -73,21 +73,21 @@ fn G() { // CHECK:STDOUT: !9 = !DILocation(line: 16, column: 48, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 16, column: 53, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 16, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) // CHECK:STDOUT: !13 = !DISubroutineType(types: !14) // CHECK:STDOUT: !14 = !{null, !15} // CHECK:STDOUT: !15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !16 = !{!17} // CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !12, type: !15) // CHECK:STDOUT: !18 = !DILocation(line: 16, column: 3, scope: !12) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d52e974a95b4c7a0:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5784487ae90e2771:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !20 = !DISubroutineType(types: !21) // CHECK:STDOUT: !21 = !{null, !22} // CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !23 = !{!24} // CHECK:STDOUT: !24 = !DILocalVariable(arg: 1, scope: !19, type: !22) // CHECK:STDOUT: !25 = !DILocation(line: 16, column: 3, scope: !19) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e0ba6005fe1fd10:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.de30152328a91377:core.Destroy.Core", scope: null, file: !3, line: 16, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) // CHECK:STDOUT: !27 = !{!28} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !26, type: !22) // CHECK:STDOUT: !29 = !DILocation(line: 16, column: 3, scope: !26) diff --git a/toolchain/lower/testdata/tuple/one_entry.carbon b/toolchain/lower/testdata/tuple/one_entry.carbon index ed38f88af328..005f738af3e6 100644 --- a/toolchain/lower/testdata/tuple/one_entry.carbon +++ b/toolchain/lower/testdata/tuple/one_entry.carbon @@ -31,19 +31,19 @@ fn Run() -> i32 { // CHECK:STDOUT: %.loc15_20.1 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !10 // CHECK:STDOUT: %.loc15_20.2.tuple.init = insertvalue { i32 } poison, i32 %.loc15_20.1, 0, !dbg !10 // CHECK:STDOUT: store { i32 } %.loc15_20.2.tuple.init, ptr %_.var, align 4, !dbg !9 -// CHECK:STDOUT: call void @"_COp.cd78ae17b508d73d:core.Destroy.Core"(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.cd78ae17b508d73d:core.Destroy.Core"(ptr %x.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.b56e66ed2f8c6490:core.Destroy.Core"(ptr %_.var), !dbg !9 +// CHECK:STDOUT: call void @"_COp.b56e66ed2f8c6490:core.Destroy.Core"(ptr %x.var), !dbg !8 // CHECK:STDOUT: ret i32 0, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !12 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !12 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.cd78ae17b508d73d:core.Destroy.Core"(ptr %self) #0 !dbg !18 { +// CHECK:STDOUT: define weak_odr void @"_COp.b56e66ed2f8c6490:core.Destroy.Core"(ptr %self) #0 !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } @@ -52,7 +52,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.cd78ae17b508d73d:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.b56e66ed2f8c6490:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -73,13 +73,13 @@ fn Run() -> i32 { // CHECK:STDOUT: !9 = !DILocation(line: 15, column: 3, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 15, column: 20, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 15, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) // CHECK:STDOUT: !13 = !DISubroutineType(types: !14) // CHECK:STDOUT: !14 = !{null, !7} // CHECK:STDOUT: !15 = !{!16} // CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !12, type: !7) // CHECK:STDOUT: !17 = !DILocation(line: 15, column: 3, scope: !12) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cd78ae17b508d73d:core.Destroy.Core", scope: null, file: !3, line: 15, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b56e66ed2f8c6490:core.Destroy.Core", scope: null, file: !3, line: 15, type: !19, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) // CHECK:STDOUT: !19 = !DISubroutineType(types: !20) // CHECK:STDOUT: !20 = !{null, !21} // CHECK:STDOUT: !21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) diff --git a/toolchain/lower/testdata/tuple/two_entries.carbon b/toolchain/lower/testdata/tuple/two_entries.carbon index 97233bff8041..58fd2c191fd8 100644 --- a/toolchain/lower/testdata/tuple/two_entries.carbon +++ b/toolchain/lower/testdata/tuple/two_entries.carbon @@ -19,7 +19,7 @@ fn Run() -> i32 { // CHECK:STDOUT: ; ModuleID = 'two_entries.carbon' // CHECK:STDOUT: source_filename = "two_entries.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @tuple.074.loc14_3 = internal constant { i32, i32 } { i32 12, i32 7 } +// CHECK:STDOUT: @tuple.328.loc14_3 = internal constant { i32, i32 } { i32 12, i32 7 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @main() #0 !dbg !4 { @@ -29,7 +29,7 @@ fn Run() -> i32 { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 // CHECK:STDOUT: %tuple.elem0.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 0, !dbg !10 // CHECK:STDOUT: %tuple.elem1.loc14.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 1, !dbg !10 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %x.var, ptr align 4 @tuple.074.loc14_3, i64 8, i1 false), !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %x.var, ptr align 4 @tuple.328.loc14_3, i64 8, i1 false), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !9 // CHECK:STDOUT: %tuple.elem0.loc15_23.1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %x.var, i32 0, i32 0, !dbg !11 // CHECK:STDOUT: %.loc15_23.1 = load i32, ptr %tuple.elem0.loc15_23.1.tuple.elem, align 4, !dbg !11 @@ -39,19 +39,19 @@ fn Run() -> i32 { // CHECK:STDOUT: %.loc15_23.3 = load i32, ptr %tuple.elem1.loc15_23.1.tuple.elem, align 4, !dbg !11 // CHECK:STDOUT: %tuple.elem1.loc15_23.2.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %_.var, i32 0, i32 1, !dbg !11 // CHECK:STDOUT: store i32 %.loc15_23.3, ptr %tuple.elem1.loc15_23.2.tuple.elem, align 4, !dbg !11 -// CHECK:STDOUT: call void @"_COp.11d8dd9278293aa3:core.Destroy.Core"(ptr %_.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.11d8dd9278293aa3:core.Destroy.Core"(ptr %x.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %_.var), !dbg !9 +// CHECK:STDOUT: call void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %x.var), !dbg !8 // CHECK:STDOUT: ret i32 0, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !13 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.11d8dd9278293aa3:core.Destroy.Core"(ptr %self) #0 !dbg !19 { +// CHECK:STDOUT: define weak_odr void @"_COp.eff30dc40f4a53d2:core.Destroy.Core"(ptr %self) #0 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } @@ -63,7 +63,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.11d8dd9278293aa3:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.eff30dc40f4a53d2:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -85,13 +85,13 @@ fn Run() -> i32 { // CHECK:STDOUT: !10 = !DILocation(line: 14, column: 23, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 15, column: 23, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 16, column: 3, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 15, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 15, type: !14, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !16) // CHECK:STDOUT: !14 = !DISubroutineType(types: !15) // CHECK:STDOUT: !15 = !{null, !7} // CHECK:STDOUT: !16 = !{!17} // CHECK:STDOUT: !17 = !DILocalVariable(arg: 1, scope: !13, type: !7) // CHECK:STDOUT: !18 = !DILocation(line: 15, column: 3, scope: !13) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.11d8dd9278293aa3:core.Destroy.Core", scope: null, file: !3, line: 15, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp.eff30dc40f4a53d2:core.Destroy.Core", scope: null, file: !3, line: 15, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !23) // CHECK:STDOUT: !20 = !DISubroutineType(types: !21) // CHECK:STDOUT: !21 = !{null, !22} // CHECK:STDOUT: !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) diff --git a/toolchain/lower/testdata/tuple/value_formation.carbon b/toolchain/lower/testdata/tuple/value_formation.carbon index 77b76f7fa13c..77d9d33cc47a 100644 --- a/toolchain/lower/testdata/tuple/value_formation.carbon +++ b/toolchain/lower/testdata/tuple/value_formation.carbon @@ -65,19 +65,19 @@ fn F() { // CHECK:STDOUT: %tuple.loc18_108 = getelementptr inbounds nuw { ptr, ptr }, ptr %tuple.loc18_10, i32 0, i32 1, !dbg !11 // CHECK:STDOUT: store ptr %tuple.loc18_9, ptr %tuple.loc18_108, align 8, !dbg !11 // CHECK:STDOUT: call void @_CG.Main(ptr %tuple.loc18_10), !dbg !12 -// CHECK:STDOUT: call void @"_COp.d52e974a95b4c7a0:core.Destroy.Core"(ptr %b.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.d52e974a95b4c7a0:core.Destroy.Core"(ptr %a.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %b.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %a.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !13 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !14 { // 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.d52e974a95b4c7a0:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %self) #0 !dbg !21 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } @@ -86,7 +86,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.d52e974a95b4c7a0:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.5784487ae90e2771: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 } @@ -109,14 +109,14 @@ fn F() { // CHECK:STDOUT: !11 = !DILocation(line: 18, column: 5, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 18, column: 3, scope: !4) // CHECK:STDOUT: !13 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 17, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 17, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) // CHECK:STDOUT: !15 = !DISubroutineType(types: !16) // CHECK:STDOUT: !16 = !{null, !17} // CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !18 = !{!19} // CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) // CHECK:STDOUT: !20 = !DILocation(line: 17, column: 3, scope: !14) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d52e974a95b4c7a0:core.Destroy.Core", scope: null, file: !3, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5784487ae90e2771:core.Destroy.Core", scope: null, file: !3, line: 17, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) // CHECK:STDOUT: !22 = !DISubroutineType(types: !23) // CHECK:STDOUT: !23 = !{null, !24} // CHECK:STDOUT: !24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) diff --git a/toolchain/lower/testdata/var/global.carbon b/toolchain/lower/testdata/var/global.carbon index ba36d4ed355a..356dfb07d627 100644 --- a/toolchain/lower/testdata/var/global.carbon +++ b/toolchain/lower/testdata/var/global.carbon @@ -135,7 +135,7 @@ var (_: i32, _: i32) = (3, 4); // CHECK:STDOUT: source_filename = "tuple_in_var.carbon" // CHECK:STDOUT: // CHECK:STDOUT: @_Cd.Main = global { i32, i32 } zeroinitializer -// CHECK:STDOUT: @tuple.c5f.loc4_1 = internal constant { i32, i32 } { i32 4, i32 5 } +// CHECK:STDOUT: @tuple.8a1.loc4_1 = internal constant { i32, i32 } { i32 4, i32 5 } // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind @@ -153,7 +153,7 @@ var (_: i32, _: i32) = (3, 4); // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cd.Main, ptr align 4 @tuple.c5f.loc4_1, i64 8, i1 false), !dbg !14 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cd.Main, ptr align 4 @tuple.8a1.loc4_1, i64 8, i1 false), !dbg !14 // CHECK:STDOUT: ret void, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -190,15 +190,15 @@ var (_: i32, _: i32) = (3, 4); // CHECK:STDOUT: // CHECK:STDOUT: @_Cx.Main = global { i32, i32 } zeroinitializer // CHECK:STDOUT: @var.anon.var_patt.loc5 = internal global { i32, i32 } zeroinitializer -// CHECK:STDOUT: @tuple.cd5.loc4_1 = internal constant { i32, i32 } { i32 1, i32 2 } -// CHECK:STDOUT: @tuple.30d.loc5_1 = internal constant { i32, i32 } { i32 3, i32 4 } +// CHECK:STDOUT: @tuple.102.loc4_1 = internal constant { i32, i32 } { i32 1, i32 2 } +// CHECK:STDOUT: @tuple.e16.loc5_1 = internal constant { i32, i32 } { i32 3, i32 4 } // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cx.Main, ptr align 4 @tuple.cd5.loc4_1, i64 8, i1 false), !dbg !7 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @var.anon.var_patt.loc5, ptr align 4 @tuple.30d.loc5_1, i64 8, i1 false), !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cx.Main, ptr align 4 @tuple.102.loc4_1, i64 8, i1 false), !dbg !7 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @var.anon.var_patt.loc5, ptr align 4 @tuple.e16.loc5_1, i64 8, i1 false), !dbg !8 // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/var/import.carbon b/toolchain/lower/testdata/var/import.carbon index 2d1cd2120c2b..88cc5e1a9d9f 100644 --- a/toolchain/lower/testdata/var/import.carbon +++ b/toolchain/lower/testdata/var/import.carbon @@ -108,16 +108,16 @@ fn Z() -> i32 { return z; } // CHECK:STDOUT: @_Cv.Main = global { i32, i32 } zeroinitializer // CHECK:STDOUT: @_Cy.Main = global i32 0 // CHECK:STDOUT: @_Cz.Main = global { i32, i32 } zeroinitializer -// CHECK:STDOUT: @tuple.cd5.loc4_1 = internal constant { i32, i32 } { i32 1, i32 2 } -// CHECK:STDOUT: @tuple.c0e.loc8_1 = internal constant { i32, i32 } { i32 5, i32 6 } +// CHECK:STDOUT: @tuple.102.loc4_1 = internal constant { i32, i32 } { i32 1, i32 2 } +// CHECK:STDOUT: @tuple.54c.loc8_1 = internal constant { i32, i32 } { i32 5, i32 6 } // CHECK:STDOUT: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @_C__global_init.Main, ptr null }] // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define internal void @_C__global_init.Main() #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cv.Main, ptr align 4 @tuple.cd5.loc4_1, i64 8, i1 false), !dbg !7 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cv.Main, ptr align 4 @tuple.102.loc4_1, i64 8, i1 false), !dbg !7 // CHECK:STDOUT: store i32 4, ptr @_Cy.Main, align 4, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cz.Main, ptr align 4 @tuple.c0e.loc8_1, i64 8, i1 false), !dbg !9 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_Cz.Main, ptr align 4 @tuple.54c.loc8_1, i64 8, i1 false), !dbg !9 // CHECK:STDOUT: ret void, !dbg !10 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/var/local.carbon b/toolchain/lower/testdata/var/local.carbon index 6312c6fd2810..94b746fe55b9 100644 --- a/toolchain/lower/testdata/var/local.carbon +++ b/toolchain/lower/testdata/var/local.carbon @@ -40,12 +40,12 @@ fn G() -> (i32, i32, i32) { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !8 // CHECK:STDOUT: store i32 1, ptr %x.var, align 4, !dbg !8 // CHECK:STDOUT: %.loc6 = load i32, ptr %x.var, align 4, !dbg !9 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %x.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %x.var), !dbg !8 // CHECK:STDOUT: ret i32 %.loc6, !dbg !10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } @@ -70,7 +70,7 @@ fn G() -> (i32, i32, i32) { // CHECK:STDOUT: !8 = !DILocation(line: 5, column: 3, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 6, column: 10, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !12 = !DISubroutineType(types: !13) // CHECK:STDOUT: !13 = !{null, !7} // CHECK:STDOUT: !14 = !{!15} @@ -79,7 +79,7 @@ fn G() -> (i32, i32, i32) { // CHECK:STDOUT: ; ModuleID = 'eval_init_in_place.carbon' // CHECK:STDOUT: source_filename = "eval_init_in_place.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @tuple.282.loc4_50 = internal constant { i32, i32, i32 } { i32 1, i32 2, i32 3 } +// CHECK:STDOUT: @tuple.479.loc4_50 = internal constant { i32, i32, i32 } { i32 1, i32 2, i32 3 } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CF.Main(ptr sret({ i32, i32, i32 }) %return) #0 !dbg !4 { @@ -87,7 +87,7 @@ fn G() -> (i32, i32, i32) { // CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 0, !dbg !8 // CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 1, !dbg !8 // CHECK:STDOUT: %tuple.elem2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 2, !dbg !8 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @tuple.282.loc4_50, i64 12, i1 false), !dbg !9 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %return, ptr align 4 @tuple.479.loc4_50, i64 12, i1 false), !dbg !9 // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -96,7 +96,7 @@ fn G() -> (i32, i32, i32) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %a.var = alloca { i32, i32, i32 }, align 4, !dbg !11 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a.var), !dbg !11 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a.var, ptr align 4 @tuple.282.loc4_50, i64 12, i1 false), !dbg !11 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %a.var, ptr align 4 @tuple.479.loc4_50, i64 12, i1 false), !dbg !11 // CHECK:STDOUT: %tuple.elem0.loc8_10.1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %a.var, i32 0, i32 0, !dbg !12 // CHECK:STDOUT: %.loc8_10.1 = load i32, ptr %tuple.elem0.loc8_10.1.tuple.elem, align 4, !dbg !12 // CHECK:STDOUT: %tuple.elem0.loc8_10.2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 0, !dbg !12 @@ -109,18 +109,18 @@ fn G() -> (i32, i32, i32) { // CHECK:STDOUT: %.loc8_10.5 = load i32, ptr %tuple.elem2.loc8_10.1.tuple.elem, align 4, !dbg !12 // CHECK:STDOUT: %tuple.elem2.loc8_10.2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 2, !dbg !12 // CHECK:STDOUT: store i32 %.loc8_10.5, ptr %tuple.elem2.loc8_10.2.tuple.elem, align 4, !dbg !12 -// CHECK:STDOUT: call void @"_COp.d52e974a95b4c7a0:core.Destroy.Core"(ptr %a.var), !dbg !11 +// CHECK:STDOUT: call void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %a.var), !dbg !11 // CHECK:STDOUT: ret void, !dbg !13 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !14 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !14 { // 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.d52e974a95b4c7a0:core.Destroy.Core"(ptr %self) #0 !dbg !21 { +// CHECK:STDOUT: define weak_odr void @"_COp.5784487ae90e2771:core.Destroy.Core"(ptr %self) #0 !dbg !21 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } @@ -154,14 +154,14 @@ fn G() -> (i32, i32, i32) { // CHECK:STDOUT: !11 = !DILocation(line: 7, column: 3, scope: !10) // CHECK:STDOUT: !12 = !DILocation(line: 8, column: 10, scope: !10) // CHECK:STDOUT: !13 = !DILocation(line: 8, column: 3, scope: !10) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 7, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 7, type: !15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) // CHECK:STDOUT: !15 = !DISubroutineType(types: !16) // CHECK:STDOUT: !16 = !{null, !17} // CHECK:STDOUT: !17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) // CHECK:STDOUT: !18 = !{!19} // CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !14, type: !17) // CHECK:STDOUT: !20 = !DILocation(line: 7, column: 3, scope: !14) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d52e974a95b4c7a0:core.Destroy.Core", scope: null, file: !3, line: 7, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5784487ae90e2771:core.Destroy.Core", scope: null, file: !3, line: 7, type: !22, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !24) // CHECK:STDOUT: !22 = !DISubroutineType(types: !23) // CHECK:STDOUT: !23 = !{null, !7} // CHECK:STDOUT: !24 = !{!25} diff --git a/toolchain/lower/testdata/var/nested.carbon b/toolchain/lower/testdata/var/nested.carbon index 862cfd3b477b..5590190e6d28 100644 --- a/toolchain/lower/testdata/var/nested.carbon +++ b/toolchain/lower/testdata/var/nested.carbon @@ -44,13 +44,13 @@ fn Run() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: while.done: ; preds = %while.cond // CHECK:STDOUT: %.loc19 = load i32, ptr %a.var, align 4, !dbg !15 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %b.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %a.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %b.var), !dbg !9 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %a.var), !dbg !8 // CHECK:STDOUT: ret i32 %.loc19, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !17 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } @@ -59,7 +59,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.1fa36cd3e044ac37:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.5e27612b9dd31a14:core.Destroy.Core", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -85,7 +85,7 @@ fn Run() -> i32 { // CHECK:STDOUT: !14 = !DILocation(line: 15, column: 3, scope: !4) // CHECK:STDOUT: !15 = !DILocation(line: 19, column: 10, scope: !4) // CHECK:STDOUT: !16 = !DILocation(line: 19, column: 3, scope: !4) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 16, type: !18, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 16, type: !18, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) // CHECK:STDOUT: !18 = !DISubroutineType(types: !19) // CHECK:STDOUT: !19 = !{null, !7} // CHECK:STDOUT: !20 = !{!21} diff --git a/toolchain/lower/testdata/var/param.carbon b/toolchain/lower/testdata/var/param.carbon index 6fc6f2f6e7ed..6a6f97f14b54 100644 --- a/toolchain/lower/testdata/var/param.carbon +++ b/toolchain/lower/testdata/var/param.carbon @@ -62,12 +62,12 @@ fn G() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !7 // CHECK:STDOUT: call void @_CMake.C.Main(ptr %c.var), !dbg !8 // CHECK:STDOUT: call void @_CF.Main(ptr %c.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %c.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %c.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %self) #0 !dbg !11 { +// CHECK:STDOUT: define weak_odr void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } @@ -92,7 +92,7 @@ fn G() { // CHECK:STDOUT: !8 = !DILocation(line: 16, column: 5, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 16, column: 3, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.907c496eccf2294c:core.Destroy.Core", scope: null, file: !3, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.807eb4f2d3ed7e54:core.Destroy.Core", scope: null, file: !3, line: 13, type: !12, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !15) // CHECK:STDOUT: !12 = !DISubroutineType(types: !13) // CHECK:STDOUT: !13 = !{null, !14} // CHECK:STDOUT: !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -115,12 +115,12 @@ fn G() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !7 // 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 !7 // CHECK:STDOUT: call void @_CF.Main(ptr %c.var), !dbg !8 -// CHECK:STDOUT: call void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %c.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %c.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.907c496eccf2294c:core.Destroy.Core"(ptr %self) #0 !dbg !10 { +// CHECK:STDOUT: define weak_odr void @"_COp.807eb4f2d3ed7e54:core.Destroy.Core"(ptr %self) #0 !dbg !10 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } @@ -147,7 +147,7 @@ fn G() { // CHECK:STDOUT: !7 = !DILocation(line: 11, column: 6, scope: !4) // CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) // CHECK:STDOUT: !9 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.907c496eccf2294c:core.Destroy.Core", scope: null, file: !3, line: 11, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "Op", linkageName: "_COp.807eb4f2d3ed7e54:core.Destroy.Core", scope: null, file: !3, line: 11, type: !11, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !14) // CHECK:STDOUT: !11 = !DISubroutineType(types: !12) // CHECK:STDOUT: !12 = !{null, !13} // CHECK:STDOUT: !13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) diff --git a/toolchain/lower/testdata/var/uninitialized.carbon b/toolchain/lower/testdata/var/uninitialized.carbon index c82440d64433..ce78f58d4593 100644 --- a/toolchain/lower/testdata/var/uninitialized.carbon +++ b/toolchain/lower/testdata/var/uninitialized.carbon @@ -41,19 +41,19 @@ fn Run() { // CHECK:STDOUT: store i8 poison, ptr %e.var, align 1, !dbg !12 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %f.var), !dbg !13 // CHECK:STDOUT: store ptr poison, ptr %f.var, align 8, !dbg !13 -// CHECK:STDOUT: call void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %b.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.1fa36cd3e044ac37:core.Destroy.Core"(ptr %a.var), !dbg !8 +// CHECK:STDOUT: call void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %b.var), !dbg !9 +// CHECK:STDOUT: call void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %a.var), !dbg !8 // CHECK:STDOUT: ret i32 0, !dbg !14 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.1e4fc30ecea9aa7e:core.Destroy.Core"(ptr %self) #0 !dbg !15 { +// CHECK:STDOUT: define weak_odr void @"_COp.30d8007fdcc57f83:core.Destroy.Core"(ptr %self) #0 !dbg !15 { // 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.1fa36cd3e044ac37:core.Destroy.Core"(ptr %self) #0 !dbg !22 { +// CHECK:STDOUT: define weak_odr void @"_COp.5e27612b9dd31a14:core.Destroy.Core"(ptr %self) #0 !dbg !22 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } @@ -85,14 +85,14 @@ fn Run() { // CHECK:STDOUT: !12 = !DILocation(line: 18, column: 3, scope: !4) // CHECK:STDOUT: !13 = !DILocation(line: 19, column: 3, scope: !4) // CHECK:STDOUT: !14 = !DILocation(line: 13, column: 1, scope: !4) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1e4fc30ecea9aa7e:core.Destroy.Core", scope: null, file: !3, line: 15, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) +// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Op", linkageName: "_COp.30d8007fdcc57f83:core.Destroy.Core", scope: null, file: !3, line: 15, type: !16, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !19) // CHECK:STDOUT: !16 = !DISubroutineType(types: !17) // CHECK:STDOUT: !17 = !{null, !18} // CHECK:STDOUT: !18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !19 = !{!20} // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !15, type: !18) // CHECK:STDOUT: !21 = !DILocation(line: 15, column: 3, scope: !15) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.1fa36cd3e044ac37:core.Destroy.Core", scope: null, file: !3, line: 14, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5e27612b9dd31a14:core.Destroy.Core", scope: null, file: !3, line: 14, type: !23, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !25) // CHECK:STDOUT: !23 = !DISubroutineType(types: !24) // CHECK:STDOUT: !24 = !{null, !7} // CHECK:STDOUT: !25 = !{!26} diff --git a/toolchain/sem_ir/inst_fingerprinter.cpp b/toolchain/sem_ir/inst_fingerprinter.cpp index 56783f7596af..266165a538d8 100644 --- a/toolchain/sem_ir/inst_fingerprinter.cpp +++ b/toolchain/sem_ir/inst_fingerprinter.cpp @@ -360,25 +360,11 @@ struct Worklist { } } - auto AddPackage(const SemIR::File* file) -> void { - llvm::SaveAndRestore in_file(sem_ir, file); - Add(file->package_id()); - } - auto AddPackage(NameScopeId name_scope_id) -> void { - if (name_scope_id == NameScopeId::Package) { - AddPackage(sem_ir); - return; - } - - const auto& scope = sem_ir->name_scopes().Get(name_scope_id); - CARBON_CHECK(scope.is_imported_package()); - if (!scope.import_ir_scopes().empty()) { - auto import_ir_id = scope.import_ir_scopes().front().first; - AddPackage(sem_ir->import_irs().Get(import_ir_id).sem_ir); - } else { - AddInvalid(); - } + CARBON_CHECK(sem_ir->name_scopes().IsPackage(name_scope_id)); + Add(name_scope_id == NameScopeId::Package + ? NameId::ForPackageName(sem_ir->package_id()) + : sem_ir->name_scopes().Get(name_scope_id).name_id()); } auto Add(NameScopeId name_scope_id) -> void { @@ -388,9 +374,12 @@ struct Worklist { } // If this is the current package or an imported package, add the package - // and library name. + // name. if (sem_ir->name_scopes().IsPackage(name_scope_id)) { AddPackage(name_scope_id); + // Add a placeholder parent scope to match the fingerprinting we'd use for + // a non-package scope. + AddString(""); return; } @@ -575,15 +564,7 @@ struct Worklist { } auto Add(PackageNameId package_id) -> void { - if (auto ident_id = package_id.AsIdentifierId(); ident_id.has_value()) { - // Add a marker to prevent collisions between user package names and - // special package names, and to delimit `NameScopeId` fingerprints. - AddString(""); - AddString(sem_ir->identifiers().Get(ident_id)); - } else { - AddString(""); - AddString(package_id.AsSpecialName()); - } + Add(NameId::ForPackageName(package_id)); } auto Add(LibraryNameId lib_name_id) -> void { @@ -612,8 +593,9 @@ struct Worklist { // TODO: Is the ImportIRId for an ImportRef always the same IR for the same // entity (eg, always the owning IR, or always the first-declaring IR)? const auto* file = sem_ir->import_irs().Get(ir_id).sem_ir; - AddPackage(file); - AddLibrary(file); + llvm::SaveAndRestore in_file(sem_ir, file); + AddPackage(NameScopeId::Package); + Add(file->library_id()); } auto Add(ImportIRInstId ir_inst_id) -> void {